From 90d09ff1b4e68b3ea68f2fd926b2d307068e0e1d Mon Sep 17 00:00:00 2001 From: Eric Wing Date: Sun, 3 Feb 2008 01:12:53 -0800 Subject: [PATCH] Initial commit. --- CMakeLua.tailor | 20 + CMakeLua/.hg/00changelog.i | Bin 0 -> 57 bytes CMakeLua/.hg/branch | 1 + CMakeLua/.hg/branch.cache | 2 + CMakeLua/.hg/dirstate | Bin 0 -> 105899 bytes CMakeLua/.hg/requires | 2 + CMakeLua/.hg/store/00changelog.i | Bin 0 -> 129021 bytes CMakeLua/.hg/store/00manifest.d | Bin 0 -> 135868 bytes CMakeLua/.hg/store/00manifest.i | Bin 0 -> 28544 bytes CMakeLua/.hg/store/data/.hgignore.i | Bin 0 -> 386 bytes CMakeLua/.hg/store/data/_c_make_c_pack.cmake.i | Bin 0 -> 1455 bytes .../store/data/_c_make_c_pack_options.cmake.in.i | Bin 0 -> 1208 bytes .../store/data/_c_make_graph_viz_options.cmake.i | Bin 0 -> 197 bytes CMakeLua/.hg/store/data/_c_make_lists.txt.i | Bin 0 -> 4889 bytes CMakeLua/.hg/store/data/_c_make_logo.gif.i | Bin 0 -> 4510 bytes CMakeLua/.hg/store/data/_c_test_config.cmake.i | Bin 0 -> 415 bytes CMakeLua/.hg/store/data/_c_test_custom.cmake.in.i | Bin 0 -> 736 bytes CMakeLua/.hg/store/data/_c_test_custom.ctest.in.i | Bin 0 -> 195 bytes CMakeLua/.hg/store/data/_change_log.txt.d | Bin 0 -> 291102 bytes CMakeLua/.hg/store/data/_change_log.txt.i | Bin 0 -> 64 bytes CMakeLua/.hg/store/data/_compile_flags.cmake.i | Bin 0 -> 734 bytes CMakeLua/.hg/store/data/_copyright.txt.i | Bin 0 -> 1248 bytes CMakeLua/.hg/store/data/_dart_config.cmake.i | Bin 0 -> 992 bytes CMakeLua/.hg/store/data/_dart_local.conf.in.i | Bin 0 -> 1279 bytes CMakeLua/.hg/store/data/_docs/cmake-indent.vim.i | Bin 0 -> 1652 bytes CMakeLua/.hg/store/data/_docs/cmake-mode.el.i | Bin 0 -> 2451 bytes CMakeLua/.hg/store/data/_docs/cmake-syntax.vim.i | Bin 0 -> 4306 bytes .../.hg/store/data/_example/_c_make_lists.txt.i | Bin 0 -> 350 bytes .../store/data/_example/_demo/_c_make_lists.txt.i | Bin 0 -> 343 bytes CMakeLua/.hg/store/data/_example/_demo/demo.cxx.i | Bin 0 -> 146 bytes .../.hg/store/data/_example/_demo/demo__b.cxx.i | Bin 0 -> 98 bytes .../store/data/_example/_hello/_c_make_lists.txt.i | Bin 0 -> 206 bytes .../.hg/store/data/_example/_hello/hello.cxx.i | Bin 0 -> 149 bytes CMakeLua/.hg/store/data/_example/_hello/hello.h.i | Bin 0 -> 145 bytes .../data/_modules/_add_file_dependencies.cmake.i | Bin 0 -> 279 bytes CMakeLua/.hg/store/data/_modules/_c_make.cmake.i | Bin 0 -> 197 bytes .../_c_make_a_s_m-_a_t_t_information.cmake.i | Bin 0 -> 176 bytes .../_modules/_c_make_a_s_m_compiler.cmake.in.i | Bin 0 -> 245 bytes .../_modules/_c_make_a_s_m_information.cmake.i | Bin 0 -> 684 bytes .../data/_modules/_c_make_add_new_language.txt.i | Bin 0 -> 412 bytes .../_c_make_backward_compatibility_c.cmake.i | Bin 0 -> 845 bytes .../_c_make_backward_compatibility_c_x_x.cmake.i | Bin 0 -> 667 bytes .../_modules/_c_make_borland_find_make.cmake.i | Bin 0 -> 173 bytes .../_modules/_c_make_build_settings.cmake.in.i | Bin 0 -> 535 bytes .../data/_modules/_c_make_c_compiler.cmake.in.i | Bin 0 -> 656 bytes .../data/_modules/_c_make_c_compiler_a_b_i.c.i | Bin 0 -> 348 bytes .../store/data/_modules/_c_make_c_compiler_id.c.i | Bin 0 -> 803 bytes .../data/_modules/_c_make_c_information.cmake.i | Bin 0 -> 2521 bytes .../_modules/_c_make_c_x_x_compiler.cmake.in.i | Bin 0 -> 687 bytes .../_modules/_c_make_c_x_x_compiler_a_b_i.cpp.i | Bin 0 -> 332 bytes .../data/_modules/_c_make_c_x_x_compiler_id.cpp.i | Bin 0 -> 773 bytes .../_modules/_c_make_c_x_x_information.cmake.i | Bin 0 -> 3211 bytes .../_c_make_common_language_include.cmake.i | Bin 0 -> 853 bytes .../store/data/_modules/_c_make_compiler_a_b_i.h.i | Bin 0 -> 601 bytes .../data/_modules/_c_make_configurable_file.in.i | Bin 0 -> 100 bytes .../data/_modules/_c_make_dependent_option.cmake.i | Bin 0 -> 703 bytes ..._c_make_determine_a_s_m-_a_t_t_compiler.cmake.i | Bin 0 -> 234 bytes .../_c_make_determine_a_s_m_compiler.cmake.i | Bin 0 -> 1248 bytes .../_modules/_c_make_determine_c_compiler.cmake.i | Bin 0 -> 1935 bytes .../_c_make_determine_c_x_x_compiler.cmake.i | Bin 0 -> 2161 bytes .../_c_make_determine_compiler_a_b_i.cmake.i | Bin 0 -> 807 bytes .../_modules/_c_make_determine_compiler_id.cmake.i | Bin 0 -> 4811 bytes .../_c_make_determine_fortran_compiler.cmake.i | Bin 0 -> 2304 bytes .../_c_make_determine_java_compiler.cmake.i | Bin 0 -> 1011 bytes .../_c_make_determine_r_c_compiler.cmake.i | Bin 0 -> 799 bytes .../data/_modules/_c_make_determine_system.cmake.i | Bin 0 -> 2098 bytes .../_modules/_c_make_export_build_settings.cmake.i | Bin 0 -> 374 bytes .../data/_modules/_c_make_find_bin_utils.cmake.i | Bin 0 -> 2130 bytes .../data/_modules/_c_make_find_frameworks.cmake.i | Bin 0 -> 302 bytes .../data/_modules/_c_make_find_w_make.cmake.i | Bin 0 -> 175 bytes .../data/_modules/_c_make_find_x_code.cmake.i | Bin 0 -> 154 bytes .../data/_modules/_c_make_force_compiler.cmake.i | Bin 0 -> 910 bytes .../_modules/_c_make_fortran_compiler.cmake.in.i | Bin 0 -> 389 bytes .../_modules/_c_make_fortran_compiler_id._f90.i | Bin 0 -> 1097 bytes .../_modules/_c_make_fortran_information.cmake.i | Bin 0 -> 2702 bytes .../data/_modules/_c_make_generic_system.cmake.i | Bin 0 -> 1466 bytes .../_modules/_c_make_import_build_settings.cmake.i | Bin 0 -> 2012 bytes .../data/_modules/_c_make_java_compiler.cmake.in.i | Bin 0 -> 377 bytes .../data/_modules/_c_make_java_information.cmake.i | Bin 0 -> 674 bytes .../.hg/store/data/_modules/_c_make_lists.txt.i | Bin 0 -> 354 bytes .../_modules/_c_make_m_s_y_s_find_make.cmake.i | Bin 0 -> 275 bytes .../_modules/_c_make_min_g_w_find_make.cmake.i | Bin 0 -> 437 bytes .../data/_modules/_c_make_n_make_find_make.cmake.i | Bin 0 -> 175 bytes .../store/data/_modules/_c_make_platform_id.h.i | Bin 0 -> 594 bytes .../_c_make_print_system_information.cmake.i | Bin 0 -> 498 bytes .../data/_modules/_c_make_r_c_compiler.cmake.in.i | Bin 0 -> 180 bytes .../data/_modules/_c_make_r_c_information.cmake.i | Bin 0 -> 569 bytes .../store/data/_modules/_c_make_system.cmake.in.i | Bin 0 -> 225 bytes .../_c_make_system_specific_information.cmake.i | Bin 0 -> 974 bytes .../_c_make_test_a_s_m-_a_t_t_compiler.cmake.i | Bin 0 -> 313 bytes .../_modules/_c_make_test_a_s_m_compiler.cmake.i | Bin 0 -> 351 bytes .../data/_modules/_c_make_test_c_compiler.cmake.i | Bin 0 -> 1326 bytes .../_modules/_c_make_test_c_x_x_compiler.cmake.i | Bin 0 -> 1051 bytes .../data/_modules/_c_make_test_for_free_v_c.cxx.i | Bin 0 -> 107 bytes .../_modules/_c_make_test_fortran_compiler.cmake.i | Bin 0 -> 969 bytes .../.hg/store/data/_modules/_c_make_test_g_n_u.c.i | Bin 0 -> 175 bytes .../_modules/_c_make_test_java_compiler.cmake.i | Bin 0 -> 317 bytes .../_modules/_c_make_test_n_make_c_l_version.c.i | Bin 0 -> 83 bytes .../_modules/_c_make_test_r_c_compiler.cmake.i | Bin 0 -> 360 bytes .../data/_modules/_c_make_unix_find_make.cmake.i | Bin 0 -> 134 bytes .../data/_modules/_c_make_v_c_manifest.cmake.i | Bin 0 -> 596 bytes .../data/_modules/_c_make_v_c_manifest_exe.cmake.i | Bin 0 -> 596 bytes .../_c_make_v_s6_backward_compatibility.cmake.i | Bin 0 -> 398 bytes .../data/_modules/_c_make_v_s6_find_make.cmake.i | Bin 0 -> 275 bytes .../data/_modules/_c_make_v_s71_find_make.cmake.i | Bin 0 -> 299 bytes .../_c_make_v_s7_backward_compatibility.cmake.i | Bin 0 -> 398 bytes .../data/_modules/_c_make_v_s7_find_make.cmake.i | Bin 0 -> 286 bytes .../data/_modules/_c_make_v_s8_find_make.cmake.i | Bin 0 -> 351 bytes .../data/_modules/_c_make_v_s9_find_make.cmake.i | Bin 0 -> 352 bytes .../_c_o_p_y_i_n_g-_c_m_a_k_e-_s_c_r_i_p_t_s.i | Bin 0 -> 773 bytes .../store/data/_modules/_c_pack._d_s___store.in.i | Bin 0 -> 842 bytes .../data/_modules/_c_pack._description.plist.in.i | Bin 0 -> 321 bytes .../store/data/_modules/_c_pack._info.plist.in.i | Bin 0 -> 680 bytes .../_modules/_c_pack._o_s_x_script_launcher.in.d | Bin 0 -> 314311 bytes .../_modules/_c_pack._o_s_x_script_launcher.in.i | Bin 0 -> 64 bytes .../_modules/_c_pack._o_s_x_x11._info.plist.in.i | Bin 0 -> 536 bytes .../data/_modules/_c_pack._runtime_script.in.i | Bin 0 -> 630 bytes .../_modules/_c_pack._s_t_g_z___header.sh.in.i | Bin 0 -> 1473 bytes .../data/_modules/_c_pack._volume_icon.icns.in.i | Bin 0 -> 23800 bytes .../data/_modules/_c_pack.background.png.in.i | Bin 0 -> 50508 bytes CMakeLua/.hg/store/data/_modules/_c_pack.cmake.i | Bin 0 -> 2492 bytes .../.hg/store/data/_modules/_c_pack_deb.cmake.i | Bin 0 -> 1319 bytes .../.hg/store/data/_modules/_c_pack_r_p_m.cmake.i | Bin 0 -> 2686 bytes .../.hg/store/data/_modules/_c_pack_z_i_p.cmake.i | Bin 0 -> 408 bytes CMakeLua/.hg/store/data/_modules/_c_test.cmake.i | Bin 0 -> 2532 bytes .../store/data/_modules/_c_test_targets.cmake.i | Bin 0 -> 957 bytes .../data/_modules/_check_c_compiler_flag.cmake.i | Bin 0 -> 479 bytes .../data/_modules/_check_c_source_compiles.cmake.i | Bin 0 -> 866 bytes .../data/_modules/_check_c_source_runs.cmake.i | Bin 0 -> 1066 bytes .../_modules/_check_c_x_x_compiler_flag.cmake.i | Bin 0 -> 485 bytes .../_modules/_check_c_x_x_source_compiles.cmake.i | Bin 0 -> 872 bytes .../data/_modules/_check_c_x_x_source_runs.cmake.i | Bin 0 -> 1078 bytes .../store/data/_modules/_check_for_pthreads.c.i | Bin 0 -> 448 bytes .../_check_fortran_function_exists.cmake.i | Bin 0 -> 718 bytes .../store/data/_modules/_check_function_exists.c.i | Bin 0 -> 273 bytes .../data/_modules/_check_function_exists.cmake.i | Bin 0 -> 828 bytes .../store/data/_modules/_check_include_file.c.in.i | Bin 0 -> 176 bytes .../data/_modules/_check_include_file.cmake.i | Bin 0 -> 905 bytes .../data/_modules/_check_include_file.cxx.in.i | Bin 0 -> 130 bytes .../_modules/_check_include_file_c_x_x.cmake.i | Bin 0 -> 904 bytes .../data/_modules/_check_include_files.cmake.i | Bin 0 -> 913 bytes .../data/_modules/_check_library_exists.cmake.i | Bin 0 -> 840 bytes .../data/_modules/_check_library_exists.lists.in.i | Bin 0 -> 224 bytes .../.hg/store/data/_modules/_check_size_of.cmake.i | Bin 0 -> 212 bytes .../data/_modules/_check_struct_has_member.cmake.i | Bin 0 -> 697 bytes .../data/_modules/_check_symbol_exists.cmake.i | Bin 0 -> 1034 bytes .../store/data/_modules/_check_type_size.cmake.i | Bin 0 -> 1309 bytes .../store/data/_modules/_check_type_size_c.c.in.i | Bin 0 -> 465 bytes .../store/data/_modules/_check_variable_exists.c.i | Bin 0 -> 264 bytes .../data/_modules/_check_variable_exists.cmake.i | Bin 0 -> 760 bytes CMakeLua/.hg/store/data/_modules/_dart.cmake.i | Bin 0 -> 2178 bytes .../data/_modules/_dart_configuration.tcl.in.i | Bin 0 -> 955 bytes .../.hg/store/data/_modules/_documentation.cmake.i | Bin 0 -> 479 bytes .../store/data/_modules/_dummy_c_x_x_file.cxx.i | Bin 0 -> 92 bytes .../data/_modules/_f_l_t_k_compatibility.cmake.i | Bin 0 -> 91 bytes .../store/data/_modules/_feature_summary.cmake.i | Bin 0 -> 1302 bytes .../store/data/_modules/_find_a_s_p_e_l_l.cmake.i | Bin 0 -> 623 bytes .../store/data/_modules/_find_a_v_i_file.cmake.i | Bin 0 -> 538 bytes .../.hg/store/data/_modules/_find_b_l_a_s.cmake.i | Bin 0 -> 1713 bytes .../.hg/store/data/_modules/_find_b_zip2.cmake.i | Bin 0 -> 703 bytes .../.hg/store/data/_modules/_find_boost.cmake.i | Bin 0 -> 2403 bytes .../store/data/_modules/_find_c_a_b_l_e.cmake.i | Bin 0 -> 787 bytes .../.hg/store/data/_modules/_find_c_u_r_l.cmake.i | Bin 0 -> 463 bytes .../.hg/store/data/_modules/_find_cups.cmake.i | Bin 0 -> 738 bytes .../.hg/store/data/_modules/_find_curses.cmake.i | Bin 0 -> 1381 bytes .../.hg/store/data/_modules/_find_cygwin.cmake.i | Bin 0 -> 264 bytes .../store/data/_modules/_find_d_c_m_t_k.cmake.i | Bin 0 -> 847 bytes .../.hg/store/data/_modules/_find_dart.cmake.i | Bin 0 -> 357 bytes .../.hg/store/data/_modules/_find_doxygen.cmake.i | Bin 0 -> 1576 bytes .../store/data/_modules/_find_e_x_p_a_t.cmake.i | Bin 0 -> 484 bytes .../.hg/store/data/_modules/_find_f_l_t_k.cmake.i | Bin 0 -> 2563 bytes .../.hg/store/data/_modules/_find_f_l_t_k2.cmake.i | Bin 0 -> 2709 bytes .../store/data/_modules/_find_free_type.cmake.i | Bin 0 -> 1048 bytes .../store/data/_modules/_find_g_c_c_x_m_l.cmake.i | Bin 0 -> 242 bytes .../.hg/store/data/_modules/_find_g_d_a_l.cmake.i | Bin 0 -> 1042 bytes .../.hg/store/data/_modules/_find_g_i_f.cmake.i | Bin 0 -> 1422 bytes .../store/data/_modules/_find_g_i_f_l_i_b.cmake.i | Bin 0 -> 632 bytes .../.hg/store/data/_modules/_find_g_l_u.cmake.i | Bin 0 -> 275 bytes .../.hg/store/data/_modules/_find_g_l_u_t.cmake.i | Bin 0 -> 894 bytes .../.hg/store/data/_modules/_find_g_t_k.cmake.i | Bin 0 -> 1002 bytes .../.hg/store/data/_modules/_find_gettext.cmake.i | Bin 0 -> 948 bytes .../.hg/store/data/_modules/_find_gnuplot.cmake.i | Bin 0 -> 433 bytes .../store/data/_modules/_find_h_s_p_e_l_l.cmake.i | Bin 0 -> 616 bytes .../store/data/_modules/_find_h_t_m_l_help.cmake.i | Bin 0 -> 763 bytes .../.hg/store/data/_modules/_find_i_t_k.cmake.i | Bin 0 -> 1265 bytes .../store/data/_modules/_find_image_magick.cmake.i | Bin 0 -> 915 bytes .../.hg/store/data/_modules/_find_j_n_i.cmake.i | Bin 0 -> 1626 bytes .../.hg/store/data/_modules/_find_j_p_e_g.cmake.i | Bin 0 -> 543 bytes .../.hg/store/data/_modules/_find_jasper.cmake.i | Bin 0 -> 661 bytes .../.hg/store/data/_modules/_find_java.cmake.i | Bin 0 -> 547 bytes .../.hg/store/data/_modules/_find_k_d_e.cmake.i | Bin 0 -> 258 bytes .../.hg/store/data/_modules/_find_k_d_e3.cmake.i | Bin 0 -> 3224 bytes .../.hg/store/data/_modules/_find_k_d_e4.cmake.i | Bin 0 -> 897 bytes .../store/data/_modules/_find_l_a_p_a_c_k.cmake.i | Bin 0 -> 1486 bytes .../store/data/_modules/_find_l_a_t_e_x.cmake.i | Bin 0 -> 885 bytes .../.hg/store/data/_modules/_find_lib_xml2.cmake.i | Bin 0 -> 786 bytes .../.hg/store/data/_modules/_find_lib_xslt.cmake.i | Bin 0 -> 762 bytes .../.hg/store/data/_modules/_find_lua50.cmake.i | Bin 0 -> 1058 bytes .../.hg/store/data/_modules/_find_lua51.cmake.i | Bin 0 -> 825 bytes .../.hg/store/data/_modules/_find_m_f_c.cmake.i | Bin 0 -> 330 bytes .../.hg/store/data/_modules/_find_m_p_e_g.cmake.i | Bin 0 -> 517 bytes .../.hg/store/data/_modules/_find_m_p_e_g2.cmake.i | Bin 0 -> 600 bytes .../.hg/store/data/_modules/_find_m_p_i.cmake.i | Bin 0 -> 734 bytes .../.hg/store/data/_modules/_find_matlab.cmake.i | Bin 0 -> 932 bytes .../.hg/store/data/_modules/_find_motif.cmake.i | Bin 0 -> 443 bytes .../.hg/store/data/_modules/_find_open_a_l.cmake.i | Bin 0 -> 2908 bytes .../.hg/store/data/_modules/_find_open_g_l.cmake.i | Bin 0 -> 1317 bytes .../store/data/_modules/_find_open_s_s_l.cmake.i | Bin 0 -> 940 bytes .../store/data/_modules/_find_open_threads.cmake.i | Bin 0 -> 1794 bytes .../.hg/store/data/_modules/_find_p_h_p4.cmake.i | Bin 0 -> 822 bytes .../.hg/store/data/_modules/_find_p_n_g.cmake.i | Bin 0 -> 777 bytes .../_find_package_handle_standard_args.cmake.i | Bin 0 -> 909 bytes .../.hg/store/data/_modules/_find_perl.cmake.i | Bin 0 -> 1087 bytes .../store/data/_modules/_find_perl_libs.cmake.i | Bin 0 -> 974 bytes .../.hg/store/data/_modules/_find_phys_f_s.cmake.i | Bin 0 -> 1776 bytes .../.hg/store/data/_modules/_find_pike.cmake.i | Bin 0 -> 402 bytes .../store/data/_modules/_find_pkg_config.cmake.i | Bin 0 -> 4420 bytes .../.hg/store/data/_modules/_find_producer.cmake.i | Bin 0 -> 1216 bytes .../data/_modules/_find_python_interp.cmake.i | Bin 0 -> 531 bytes .../store/data/_modules/_find_python_libs.cmake.i | Bin 0 -> 2250 bytes CMakeLua/.hg/store/data/_modules/_find_qt.cmake.i | Bin 0 -> 1528 bytes CMakeLua/.hg/store/data/_modules/_find_qt3.cmake.i | Bin 0 -> 2694 bytes CMakeLua/.hg/store/data/_modules/_find_qt4.cmake.i | Bin 0 -> 15644 bytes .../store/data/_modules/_find_quick_time.cmake.i | Bin 0 -> 646 bytes .../.hg/store/data/_modules/_find_ruby.cmake.i | Bin 0 -> 1894 bytes .../.hg/store/data/_modules/_find_s_d_l.cmake.i | Bin 0 -> 4258 bytes .../store/data/_modules/_find_s_d_l__image.cmake.i | Bin 0 -> 1764 bytes .../store/data/_modules/_find_s_d_l__mixer.cmake.i | Bin 0 -> 1764 bytes .../store/data/_modules/_find_s_d_l__net.cmake.i | Bin 0 -> 1740 bytes .../store/data/_modules/_find_s_d_l__sound.cmake.i | Bin 0 -> 6960 bytes .../store/data/_modules/_find_s_d_l__ttf.cmake.i | Bin 0 -> 1760 bytes .../.hg/store/data/_modules/_find_s_w_i_g.cmake.i | Bin 0 -> 1490 bytes .../store/data/_modules/_find_self_packers.cmake.i | Bin 0 -> 511 bytes .../store/data/_modules/_find_subversion.cmake.i | Bin 0 -> 2298 bytes .../.hg/store/data/_modules/_find_t_c_l.cmake.i | Bin 0 -> 5352 bytes .../.hg/store/data/_modules/_find_t_i_f_f.cmake.i | Bin 0 -> 461 bytes .../.hg/store/data/_modules/_find_tcl_stub.cmake.i | Bin 0 -> 1984 bytes .../.hg/store/data/_modules/_find_tclsh.cmake.i | Bin 0 -> 2899 bytes .../.hg/store/data/_modules/_find_threads.cmake.i | Bin 0 -> 1376 bytes .../data/_modules/_find_unix_commands.cmake.i | Bin 0 -> 320 bytes .../.hg/store/data/_modules/_find_v_t_k.cmake.i | Bin 0 -> 1843 bytes .../.hg/store/data/_modules/_find_wget.cmake.i | Bin 0 -> 446 bytes .../.hg/store/data/_modules/_find_wish.cmake.i | Bin 0 -> 2537 bytes CMakeLua/.hg/store/data/_modules/_find_x11.cmake.i | Bin 0 -> 3940 bytes .../store/data/_modules/_find_x_m_l_r_p_c.cmake.i | Bin 0 -> 1436 bytes .../.hg/store/data/_modules/_find_z_l_i_b.cmake.i | Bin 0 -> 483 bytes CMakeLua/.hg/store/data/_modules/_findosg.cmake.i | Bin 0 -> 1153 bytes .../.hg/store/data/_modules/_findosg_d_b.cmake.i | Bin 0 -> 1165 bytes .../.hg/store/data/_modules/_findosg_f_x.cmake.i | Bin 0 -> 1164 bytes .../.hg/store/data/_modules/_findosg_g_a.cmake.i | Bin 0 -> 1167 bytes .../data/_modules/_findosg_introspection.cmake.i | Bin 0 -> 1186 bytes .../data/_modules/_findosg_manipulator.cmake.i | Bin 0 -> 1185 bytes .../store/data/_modules/_findosg_particle.cmake.i | Bin 0 -> 1173 bytes .../store/data/_modules/_findosg_producer.cmake.i | Bin 0 -> 1176 bytes .../store/data/_modules/_findosg_shadow.cmake.i | Bin 0 -> 1172 bytes .../.hg/store/data/_modules/_findosg_sim.cmake.i | Bin 0 -> 1166 bytes .../store/data/_modules/_findosg_terrain.cmake.i | Bin 0 -> 1168 bytes .../.hg/store/data/_modules/_findosg_text.cmake.i | Bin 0 -> 1161 bytes .../.hg/store/data/_modules/_findosg_util.cmake.i | Bin 0 -> 1164 bytes .../store/data/_modules/_findosg_viewer.cmake.i | Bin 0 -> 1167 bytes .../store/data/_modules/_findwx_widgets.cmake.i | Bin 0 -> 11461 bytes .../store/data/_modules/_findwx_windows.cmake.i | Bin 0 -> 5874 bytes .../data/_modules/_i_t_k_compatibility.cmake.i | Bin 0 -> 145 bytes .../_install_required_system_libraries.cmake.i | Bin 0 -> 1324 bytes .../.hg/store/data/_modules/_k_d_e3_macros.cmake.i | Bin 0 -> 3281 bytes .../_modules/_mac_o_s_x_bundle_info.plist.in.i | Bin 0 -> 545 bytes .../_modules/_mac_o_s_x_framework_info.plist.in.i | Bin 0 -> 493 bytes .../_modules/_macro_add_file_dependencies.cmake.i | Bin 0 -> 282 bytes .../_modules/_n_s_i_s._install_options.ini.in.i | Bin 0 -> 351 bytes .../.hg/store/data/_modules/_n_s_i_s.template.in.i | Bin 0 -> 4867 bytes .../_platform/_a_i_x-_visual_age-_fortran.cmake.i | Bin 0 -> 175 bytes .../store/data/_modules/_platform/_a_i_x.cmake.i | Bin 0 -> 1642 bytes .../data/_modules/_platform/_b_s_d_o_s.cmake.i | Bin 0 -> 94 bytes .../store/data/_modules/_platform/_be_o_s.cmake.i | Bin 0 -> 299 bytes .../data/_modules/_platform/_blue_gene_l.cmake.i | Bin 0 -> 761 bytes .../data/_modules/_platform/_c_make_lists.txt.i | Bin 0 -> 162 bytes .../_modules/_platform/_c_y_g_w_i_n-g77.cmake.i | Bin 0 -> 193 bytes .../data/_modules/_platform/_c_y_g_w_i_n.cmake.i | Bin 0 -> 918 bytes .../data/_modules/_platform/_catamount.cmake.i | Bin 0 -> 602 bytes .../data/_modules/_platform/_darwin-xlc.cmake.i | Bin 0 -> 217 bytes .../store/data/_modules/_platform/_darwin.cmake.i | Bin 0 -> 2654 bytes .../data/_modules/_platform/_dragon_fly.cmake.i | Bin 0 -> 234 bytes .../data/_modules/_platform/_free_b_s_d.cmake.i | Bin 0 -> 674 bytes .../store/data/_modules/_platform/_g_n_u.cmake.i | Bin 0 -> 269 bytes .../_platform/_generic-_a_d_s_p-_a_s_m.cmake.i | Bin 0 -> 264 bytes .../_platform/_generic-_a_d_s_p-_c.cmake.i | Bin 0 -> 363 bytes .../_platform/_generic-_a_d_s_p-_c_x_x.cmake.i | Bin 0 -> 365 bytes .../_platform/_generic-_a_d_s_p-_common.cmake.i | Bin 0 -> 1299 bytes .../_platform/_generic-_s_d_c_c-_c.cmake.i | Bin 0 -> 1196 bytes .../store/data/_modules/_platform/_generic.cmake.i | Bin 0 -> 556 bytes .../data/_modules/_platform/_h_p-_u_x.cmake.i | Bin 0 -> 1918 bytes .../store/data/_modules/_platform/_i_r_i_x.cmake.i | Bin 0 -> 1083 bytes .../data/_modules/_platform/_i_r_i_x64.cmake.i | Bin 0 -> 1453 bytes .../_platform/_linux-_g_n_u-_fortran.cmake.i | Bin 0 -> 99 bytes .../_modules/_platform/_linux-_p_g_i-_c.cmake.i | Bin 0 -> 198 bytes .../_platform/_linux-_p_g_i-_c_x_x.cmake.i | Bin 0 -> 200 bytes .../_modules/_platform/_linux-_sun_pro-_c.cmake.i | Bin 0 -> 634 bytes .../_platform/_linux-_sun_pro-_c_x_x.cmake.i | Bin 0 -> 510 bytes .../_platform/_linux-_sun_pro-_fortran.cmake.i | Bin 0 -> 420 bytes .../_platform/_linux-_visual_age-_c.cmake.i | Bin 0 -> 218 bytes .../_platform/_linux-_visual_age-_fortran.cmake.i | Bin 0 -> 319 bytes .../data/_modules/_platform/_linux-como.cmake.i | Bin 0 -> 323 bytes .../data/_modules/_platform/_linux-icpc.cmake.i | Bin 0 -> 189 bytes .../data/_modules/_platform/_linux-ifort.cmake.i | Bin 0 -> 339 bytes .../store/data/_modules/_platform/_linux.cmake.i | Bin 0 -> 1383 bytes .../data/_modules/_platform/_m_p-_r_a_s.cmake.i | Bin 0 -> 211 bytes .../data/_modules/_platform/_net_b_s_d.cmake.i | Bin 0 -> 491 bytes .../store/data/_modules/_platform/_o_s_f1.cmake.i | Bin 0 -> 540 bytes .../data/_modules/_platform/_open_b_s_d.cmake.i | Bin 0 -> 115 bytes .../store/data/_modules/_platform/_q_n_x.cmake.i | Bin 0 -> 945 bytes .../data/_modules/_platform/_r_i_s_cos.cmake.i | Bin 0 -> 185 bytes .../data/_modules/_platform/_s_c_o___s_v.cmake.i | Bin 0 -> 191 bytes .../data/_modules/_platform/_s_i_n_i_x.cmake.i | Bin 0 -> 136 bytes .../_platform/_sun_o_s-_sun_pro-_fortran.cmake.i | Bin 0 -> 126 bytes .../store/data/_modules/_platform/_sun_o_s.cmake.i | Bin 0 -> 1325 bytes .../store/data/_modules/_platform/_tru64.cmake.i | Bin 0 -> 94 bytes .../data/_modules/_platform/_u_l_t_r_i_x.cmake.i | Bin 0 -> 187 bytes .../data/_modules/_platform/_u_n_i_x___s_v.cmake.i | Bin 0 -> 165 bytes .../data/_modules/_platform/_unix_paths.cmake.i | Bin 0 -> 1192 bytes .../data/_modules/_platform/_unix_ware.cmake.i | Bin 0 -> 166 bytes .../data/_modules/_platform/_windows-bcc32.cmake.i | Bin 0 -> 1778 bytes .../data/_modules/_platform/_windows-cl.cmake.i | Bin 0 -> 3414 bytes .../data/_modules/_platform/_windows-cl.cmake.in.i | Bin 0 -> 324 bytes .../data/_modules/_platform/_windows-df.cmake.i | Bin 0 -> 1063 bytes .../data/_modules/_platform/_windows-g++.cmake.i | Bin 0 -> 123 bytes .../data/_modules/_platform/_windows-g77.cmake.i | Bin 0 -> 337 bytes .../data/_modules/_platform/_windows-gcc.cmake.i | Bin 0 -> 1195 bytes .../data/_modules/_platform/_windows-icl.cmake.i | Bin 0 -> 1192 bytes .../data/_modules/_platform/_windows-ifort.cmake.i | Bin 0 -> 1459 bytes .../_modules/_platform/_windows-wcl386.cmake.i | Bin 0 -> 1271 bytes .../store/data/_modules/_platform/_windows.cmake.i | Bin 0 -> 480 bytes .../data/_modules/_platform/_windows_paths.cmake.i | Bin 0 -> 819 bytes .../store/data/_modules/_platform/_xenix.cmake.i | Bin 0 -> 94 bytes .../.hg/store/data/_modules/_platform/cl.cmake.i | Bin 0 -> 1161 bytes .../store/data/_modules/_platform/e_cos.cmake.i | Bin 0 -> 1183 bytes .../.hg/store/data/_modules/_platform/g77.cmake.i | Bin 0 -> 199 bytes .../.hg/store/data/_modules/_platform/gas.cmake.i | Bin 0 -> 314 bytes .../.hg/store/data/_modules/_platform/gcc.cmake.i | Bin 0 -> 389 bytes .../data/_modules/_platform/k_free_b_s_d.cmake.i | Bin 0 -> 408 bytes .../store/data/_modules/_platform/syllable.cmake.i | Bin 0 -> 967 bytes .../.hg/store/data/_modules/_platform/xlf.cmake.i | Bin 0 -> 210 bytes .../data/_modules/_system_information.cmake.i | Bin 0 -> 751 bytes .../store/data/_modules/_system_information.in.i | Bin 0 -> 843 bytes .../store/data/_modules/_test_big_endian.cmake.i | Bin 0 -> 1192 bytes .../data/_modules/_test_c_x_x_accepts_flag.cmake.i | Bin 0 -> 542 bytes .../.hg/store/data/_modules/_test_endianess.c.in.i | Bin 0 -> 461 bytes .../_modules/_test_for_a_n_s_i_for_scope.cmake.i | Bin 0 -> 631 bytes .../_test_for_a_n_s_i_stream_headers.cmake.i | Bin 0 -> 375 bytes .../_test_for_a_n_s_i_stream_headers.cxx.i | Bin 0 -> 125 bytes .../data/_modules/_test_for_ansi_for_scope.cxx.i | Bin 0 -> 149 bytes .../data/_modules/_test_for_s_s_t_r_e_a_m.cmake.i | Bin 0 -> 507 bytes .../data/_modules/_test_for_s_s_t_r_e_a_m.cxx.i | Bin 0 -> 196 bytes .../_modules/_test_for_s_t_d_namespace.cmake.i | Bin 0 -> 504 bytes .../data/_modules/_test_for_s_t_d_namespace.cxx.i | Bin 0 -> 141 bytes .../store/data/_modules/_use__wx_windows.cmake.i | Bin 0 -> 811 bytes CMakeLua/.hg/store/data/_modules/_use_ecos.cmake.i | Bin 0 -> 3018 bytes .../store/data/_modules/_use_pkg_config.cmake.i | Bin 0 -> 844 bytes CMakeLua/.hg/store/data/_modules/_use_qt4.cmake.i | Bin 0 -> 1144 bytes .../.hg/store/data/_modules/_use_s_w_i_g.cmake.i | Bin 0 -> 2557 bytes .../.hg/store/data/_modules/_use_v_t_k40.cmake.i | Bin 0 -> 442 bytes .../_modules/_use_v_t_k_build_settings40.cmake.i | Bin 0 -> 375 bytes .../data/_modules/_use_v_t_k_config40.cmake.i | Bin 0 -> 2781 bytes .../.hg/store/data/_modules/_usewx_widgets.cmake.i | Bin 0 -> 1047 bytes .../data/_modules/_v_t_k_compatibility.cmake.i | Bin 0 -> 869 bytes .../.hg/store/data/_modules/ecos__clean.cmake.i | Bin 0 -> 321 bytes .../store/data/_modules/kde3init__dummy.cpp.in.i | Bin 0 -> 180 bytes CMakeLua/.hg/store/data/_modules/kde3uic.cmake.i | Bin 0 -> 386 bytes CMakeLua/.hg/store/data/_modules/readme.txt.i | Bin 0 -> 3157 bytes CMakeLua/.hg/store/data/_readme.txt.i | Bin 0 -> 967 bytes CMakeLua/.hg/store/data/_source/.cvsignore.i | Bin 0 -> 124 bytes .../.hg/store/data/_source/_c_make_lists.txt.i | Bin 0 -> 3519 bytes .../_source/_c_pack/_o_s_x_script_launcher.cxx.i | Bin 0 -> 1697 bytes .../data/_source/_c_pack/bills-comments.txt.i | Bin 0 -> 933 bytes .../_source/_c_pack/cm_c_pack_configure.h.in.i | Bin 0 -> 472 bytes .../cm_c_pack_cygwin_binary_generator.cxx.i | Bin 0 -> 1449 bytes .../_c_pack/cm_c_pack_cygwin_binary_generator.h.i | Bin 0 -> 729 bytes .../cm_c_pack_cygwin_source_generator.cxx.i | Bin 0 -> 2101 bytes .../_c_pack/cm_c_pack_cygwin_source_generator.h.i | Bin 0 -> 752 bytes .../_source/_c_pack/cm_c_pack_deb_generator.cxx.i | Bin 0 -> 5631 bytes .../_source/_c_pack/cm_c_pack_deb_generator.h.i | Bin 0 -> 732 bytes .../data/_source/_c_pack/cm_c_pack_generator.cxx.i | Bin 0 -> 6895 bytes .../data/_source/_c_pack/cm_c_pack_generator.h.i | Bin 0 -> 1519 bytes .../_c_pack/cm_c_pack_generator_factory.cxx.i | Bin 0 -> 1316 bytes .../_c_pack/cm_c_pack_generator_factory.h.i | Bin 0 -> 868 bytes .../store/data/_source/_c_pack/cm_c_pack_log.cxx.i | Bin 0 -> 1472 bytes .../store/data/_source/_c_pack/cm_c_pack_log.h.i | Bin 0 -> 1537 bytes .../_c_pack/cm_c_pack_n_s_i_s_generator.cxx.i | Bin 0 -> 3859 bytes .../_c_pack/cm_c_pack_n_s_i_s_generator.h.i | Bin 0 -> 846 bytes .../_c_pack/cm_c_pack_o_s_x_x11_generator.cxx.i | Bin 0 -> 2659 bytes .../_c_pack/cm_c_pack_o_s_x_x11_generator.h.i | Bin 0 -> 836 bytes .../cm_c_pack_package_maker_generator.cxx.i | Bin 0 -> 3146 bytes .../_c_pack/cm_c_pack_package_maker_generator.h.i | Bin 0 -> 852 bytes .../_c_pack/cm_c_pack_r_p_m_generator.cxx.i | Bin 0 -> 783 bytes .../_source/_c_pack/cm_c_pack_r_p_m_generator.h.i | Bin 0 -> 831 bytes .../_c_pack/cm_c_pack_s_t_g_z_generator.cxx.i | Bin 0 -> 1497 bytes .../_c_pack/cm_c_pack_s_t_g_z_generator.h.i | Bin 0 -> 752 bytes .../_c_pack/cm_c_pack_t_g_z_generator.cxx.i | Bin 0 -> 2637 bytes .../_source/_c_pack/cm_c_pack_t_g_z_generator.h.i | Bin 0 -> 805 bytes .../_c_pack/cm_c_pack_tar_b_zip2_generator.cxx.i | Bin 0 -> 2080 bytes .../_c_pack/cm_c_pack_tar_b_zip2_generator.h.i | Bin 0 -> 776 bytes .../_c_pack/cm_c_pack_tar_compress_generator.cxx.i | Bin 0 -> 2068 bytes .../_c_pack/cm_c_pack_tar_compress_generator.h.i | Bin 0 -> 781 bytes .../_c_pack/cm_c_pack_z_i_p_generator.cxx.i | Bin 0 -> 1331 bytes .../_source/_c_pack/cm_c_pack_z_i_p_generator.h.i | Bin 0 -> 750 bytes .../.hg/store/data/_source/_c_pack/cpack.cxx.i | Bin 0 -> 4397 bytes .../.hg/store/data/_source/_c_pack/cygwin.readme.i | Bin 0 -> 674 bytes .../_c_test/cm_c_test_build_and_test_handler.cxx.i | Bin 0 -> 3466 bytes .../_c_test/cm_c_test_build_and_test_handler.h.i | Bin 0 -> 1052 bytes .../_source/_c_test/cm_c_test_build_command.cxx.i | Bin 0 -> 1384 bytes .../_source/_c_test/cm_c_test_build_command.h.i | Bin 0 -> 965 bytes .../_source/_c_test/cm_c_test_build_handler.cxx.i | Bin 0 -> 8201 bytes .../_source/_c_test/cm_c_test_build_handler.h.i | Bin 0 -> 1688 bytes .../data/_source/_c_test/cm_c_test_command.h.i | Bin 0 -> 686 bytes .../_c_test/cm_c_test_configure_command.cxx.i | Bin 0 -> 1176 bytes .../_c_test/cm_c_test_configure_command.h.i | Bin 0 -> 984 bytes .../_c_test/cm_c_test_configure_handler.cxx.i | Bin 0 -> 1728 bytes .../_c_test/cm_c_test_configure_handler.h.i | Bin 0 -> 661 bytes .../_c_test/cm_c_test_coverage_command.cxx.i | Bin 0 -> 692 bytes .../_source/_c_test/cm_c_test_coverage_command.h.i | Bin 0 -> 995 bytes .../_c_test/cm_c_test_coverage_handler.cxx.i | Bin 0 -> 11673 bytes .../_source/_c_test/cm_c_test_coverage_handler.h.i | Bin 0 -> 1560 bytes .../cm_c_test_empty_binary_directory_command.cxx.i | Bin 0 -> 974 bytes .../cm_c_test_empty_binary_directory_command.h.i | Bin 0 -> 1298 bytes .../_c_test/cm_c_test_generic_handler.cxx.i | Bin 0 -> 1300 bytes .../_source/_c_test/cm_c_test_generic_handler.h.i | Bin 0 -> 1197 bytes .../_c_test/cm_c_test_handler_command.cxx.i | Bin 0 -> 1983 bytes .../_source/_c_test/cm_c_test_handler_command.h.i | Bin 0 -> 1130 bytes .../_c_test/cm_c_test_mem_check_command.cxx.i | Bin 0 -> 698 bytes .../_c_test/cm_c_test_mem_check_command.h.i | Bin 0 -> 1020 bytes .../_c_test/cm_c_test_mem_check_handler.cxx.i | Bin 0 -> 6599 bytes .../_c_test/cm_c_test_mem_check_handler.h.i | Bin 0 -> 1414 bytes .../cm_c_test_read_custom_files_command.cxx.i | Bin 0 -> 891 bytes .../cm_c_test_read_custom_files_command.h.i | Bin 0 -> 1181 bytes .../_c_test/cm_c_test_run_script_command.cxx.i | Bin 0 -> 953 bytes .../_c_test/cm_c_test_run_script_command.h.i | Bin 0 -> 1352 bytes .../_source/_c_test/cm_c_test_script_handler.cxx.i | Bin 0 -> 7537 bytes .../_source/_c_test/cm_c_test_script_handler.h.i | Bin 0 -> 1903 bytes .../_source/_c_test/cm_c_test_sleep_command.cxx.i | Bin 0 -> 1108 bytes .../_source/_c_test/cm_c_test_sleep_command.h.i | Bin 0 -> 1274 bytes .../_source/_c_test/cm_c_test_start_command.cxx.i | Bin 0 -> 1472 bytes .../_source/_c_test/cm_c_test_start_command.h.i | Bin 0 -> 1333 bytes .../_source/_c_test/cm_c_test_submit_command.cxx.i | Bin 0 -> 1307 bytes .../_source/_c_test/cm_c_test_submit_command.h.i | Bin 0 -> 920 bytes .../_source/_c_test/cm_c_test_submit_handler.cxx.i | Bin 0 -> 5969 bytes .../_source/_c_test/cm_c_test_submit_handler.h.i | Bin 0 -> 935 bytes .../_source/_c_test/cm_c_test_test_command.cxx.i | Bin 0 -> 929 bytes .../_source/_c_test/cm_c_test_test_command.h.i | Bin 0 -> 1025 bytes .../_source/_c_test/cm_c_test_test_handler.cxx.i | Bin 0 -> 14874 bytes .../_source/_c_test/cm_c_test_test_handler.h.i | Bin 0 -> 2322 bytes .../_source/_c_test/cm_c_test_update_command.cxx.i | Bin 0 -> 1165 bytes .../_source/_c_test/cm_c_test_update_command.h.i | Bin 0 -> 1009 bytes .../_source/_c_test/cm_c_test_update_handler.cxx.i | Bin 0 -> 8024 bytes .../_source/_c_test/cm_c_test_update_handler.h.i | Bin 0 -> 937 bytes .../_source/_curses_dialog/._no_dart_coverage.i | Bin 0 -> 104 bytes .../_source/_curses_dialog/_c_make_lists.txt.i | Bin 0 -> 430 bytes .../store/data/_source/_curses_dialog/ccmake.cxx.i | Bin 0 -> 2308 bytes .../_curses_dialog/cm_curses_bool_widget.cxx.i | Bin 0 -> 867 bytes .../_curses_dialog/cm_curses_bool_widget.h.i | Bin 0 -> 778 bytes .../cm_curses_cache_entry_composite.cxx.i | Bin 0 -> 1096 bytes .../cm_curses_cache_entry_composite.h.i | Bin 0 -> 738 bytes .../_curses_dialog/cm_curses_dummy_widget.cxx.i | Bin 0 -> 624 bytes .../_curses_dialog/cm_curses_dummy_widget.h.i | Bin 0 -> 739 bytes .../cm_curses_file_path_widget.cxx.i | Bin 0 -> 578 bytes .../_curses_dialog/cm_curses_file_path_widget.h.i | Bin 0 -> 607 bytes .../_source/_curses_dialog/cm_curses_form.cxx.i | Bin 0 -> 688 bytes .../data/_source/_curses_dialog/cm_curses_form.h.i | Bin 0 -> 1004 bytes .../_curses_dialog/cm_curses_label_widget.cxx.i | Bin 0 -> 714 bytes .../_curses_dialog/cm_curses_label_widget.h.i | Bin 0 -> 773 bytes .../cm_curses_long_message_form.cxx.i | Bin 0 -> 1747 bytes .../_curses_dialog/cm_curses_long_message_form.h.i | Bin 0 -> 903 bytes .../_curses_dialog/cm_curses_main_form.cxx.i | Bin 0 -> 8548 bytes .../_source/_curses_dialog/cm_curses_main_form.h.i | Bin 0 -> 2106 bytes .../_curses_dialog/cm_curses_path_widget.cxx.i | Bin 0 -> 1091 bytes .../_curses_dialog/cm_curses_path_widget.h.i | Bin 0 -> 788 bytes .../_curses_dialog/cm_curses_standard_includes.h.i | Bin 0 -> 1054 bytes .../_curses_dialog/cm_curses_string_widget.cxx.i | Bin 0 -> 1925 bytes .../_curses_dialog/cm_curses_string_widget.h.i | Bin 0 -> 1138 bytes .../_source/_curses_dialog/cm_curses_widget.cxx.i | Bin 0 -> 797 bytes .../_source/_curses_dialog/cm_curses_widget.h.i | Bin 0 -> 1161 bytes .../_curses_dialog/form/._no_dart_coverage.i | Bin 0 -> 104 bytes .../_curses_dialog/form/_c_make_lists.txt.i | Bin 0 -> 497 bytes .../_source/_curses_dialog/form/_r_e_a_d._m_e.i | Bin 0 -> 344 bytes .../_curses_dialog/form/cm_form_configure.h.in.i | Bin 0 -> 535 bytes .../store/data/_source/_curses_dialog/form/eti.h.i | Bin 0 -> 1135 bytes .../data/_source/_curses_dialog/form/fld__arg.c.i | Bin 0 -> 1668 bytes .../data/_source/_curses_dialog/form/fld__attr.c.i | Bin 0 -> 1671 bytes .../_source/_curses_dialog/form/fld__current.c.i | Bin 0 -> 1778 bytes .../data/_source/_curses_dialog/form/fld__def.c.i | Bin 0 -> 3157 bytes .../data/_source/_curses_dialog/form/fld__dup.c.i | Bin 0 -> 1687 bytes .../_source/_curses_dialog/form/fld__ftchoice.c.i | Bin 0 -> 1342 bytes .../_source/_curses_dialog/form/fld__ftlink.c.i | Bin 0 -> 1532 bytes .../data/_source/_curses_dialog/form/fld__info.c.i | Bin 0 -> 1453 bytes .../data/_source/_curses_dialog/form/fld__just.c.i | Bin 0 -> 1422 bytes .../data/_source/_curses_dialog/form/fld__link.c.i | Bin 0 -> 1646 bytes .../data/_source/_curses_dialog/form/fld__max.c.i | Bin 0 -> 1440 bytes .../data/_source/_curses_dialog/form/fld__move.c.i | Bin 0 -> 1306 bytes .../_source/_curses_dialog/form/fld__newftyp.c.i | Bin 0 -> 1866 bytes .../data/_source/_curses_dialog/form/fld__opts.c.i | Bin 0 -> 1539 bytes .../data/_source/_curses_dialog/form/fld__pad.c.i | Bin 0 -> 1417 bytes .../data/_source/_curses_dialog/form/fld__page.c.i | Bin 0 -> 1394 bytes .../data/_source/_curses_dialog/form/fld__stat.c.i | Bin 0 -> 1359 bytes .../data/_source/_curses_dialog/form/fld__type.c.i | Bin 0 -> 1199 bytes .../data/_source/_curses_dialog/form/fld__user.c.i | Bin 0 -> 1323 bytes .../data/_source/_curses_dialog/form/form.h.i | Bin 0 -> 4220 bytes .../data/_source/_curses_dialog/form/form.priv.h.i | Bin 0 -> 2302 bytes .../_source/_curses_dialog/form/frm__cursor.c.i | Bin 0 -> 1413 bytes .../data/_source/_curses_dialog/form/frm__data.c.i | Bin 0 -> 2055 bytes .../data/_source/_curses_dialog/form/frm__def.c.i | Bin 0 -> 3310 bytes .../_source/_curses_dialog/form/frm__driver.c.i | Bin 0 -> 23663 bytes .../data/_source/_curses_dialog/form/frm__hook.c.i | Bin 0 -> 1579 bytes .../data/_source/_curses_dialog/form/frm__opts.c.i | Bin 0 -> 1449 bytes .../data/_source/_curses_dialog/form/frm__page.c.i | Bin 0 -> 1612 bytes .../data/_source/_curses_dialog/form/frm__post.c.i | Bin 0 -> 1734 bytes .../_source/_curses_dialog/form/frm__req__name.c.i | Bin 0 -> 2005 bytes .../_source/_curses_dialog/form/frm__scale.c.i | Bin 0 -> 1294 bytes .../data/_source/_curses_dialog/form/frm__sub.c.i | Bin 0 -> 1331 bytes .../data/_source/_curses_dialog/form/frm__user.c.i | Bin 0 -> 1321 bytes .../data/_source/_curses_dialog/form/frm__win.c.i | Bin 0 -> 1345 bytes .../_source/_curses_dialog/form/fty__alnum.c.i | Bin 0 -> 1289 bytes .../_source/_curses_dialog/form/fty__alpha.c.i | Bin 0 -> 1269 bytes .../data/_source/_curses_dialog/form/fty__enum.c.i | Bin 0 -> 2264 bytes .../data/_source/_curses_dialog/form/fty__int.c.i | Bin 0 -> 1444 bytes .../data/_source/_curses_dialog/form/fty__ipv4.c.i | Bin 0 -> 1121 bytes .../data/_source/_curses_dialog/form/fty__num.c.i | Bin 0 -> 1595 bytes .../_source/_curses_dialog/form/fty__regex.c.i | Bin 0 -> 2026 bytes .../data/_source/_curses_dialog/form/llib-lform.i | Bin 0 -> 2957 bytes .../_source/_curses_dialog/form/mf__common.h.i | Bin 0 -> 1523 bytes .../data/_source/_curses_dialog/form/nc__alloc.h.i | Bin 0 -> 1386 bytes .../_source/_f_l_t_k_dialog/_c_make_lists.txt.i | Bin 0 -> 295 bytes .../_f_l_t_k_dialog/_c_make_setup_g_u_i.fl.i | Bin 0 -> 1094 bytes .../_c_make_setup_g_u_i_implementation.cxx.i | Bin 0 -> 4349 bytes .../_c_make_setup_g_u_i_implementation.h.i | Bin 0 -> 1074 bytes .../_source/_f_l_t_k_dialog/_f_l_t_k_dialog.cxx.i | Bin 0 -> 886 bytes .../_source/_f_l_t_k_dialog/_f_l_t_k_dialog.dsp.i | Bin 0 -> 1226 bytes .../_f_l_t_k_property_item_row.cxx.i | Bin 0 -> 2705 bytes .../_f_l_t_k_dialog/_f_l_t_k_property_item_row.h.i | Bin 0 -> 888 bytes .../_f_l_t_k_dialog/_f_l_t_k_property_list.cxx.i | Bin 0 -> 1352 bytes .../_f_l_t_k_dialog/_f_l_t_k_property_list.h.i | Bin 0 -> 1216 bytes .../store/data/_source/_m_f_c_dialog/.cvsignore.i | Bin 0 -> 71 bytes .../_m_f_c_dialog/_c_make_command_line_info.cpp.i | Bin 0 -> 1250 bytes .../_m_f_c_dialog/_c_make_command_line_info.h.i | Bin 0 -> 1002 bytes .../_source/_m_f_c_dialog/_c_make_gen_dialog.cpp.i | Bin 0 -> 1322 bytes .../_source/_m_f_c_dialog/_c_make_gen_dialog.h.i | Bin 0 -> 1040 bytes .../data/_source/_m_f_c_dialog/_c_make_lists.txt.i | Bin 0 -> 1543 bytes .../data/_source/_m_f_c_dialog/_c_make_setup.cpp.i | Bin 0 -> 2089 bytes .../data/_source/_m_f_c_dialog/_c_make_setup.h.i | Bin 0 -> 1024 bytes .../data/_source/_m_f_c_dialog/_c_make_setup.rc.i | Bin 0 -> 2339 bytes .../_m_f_c_dialog/_c_make_setup_dialog.cpp.i | Bin 0 -> 10903 bytes .../_source/_m_f_c_dialog/_c_make_setup_dialog.h.i | Bin 0 -> 1969 bytes .../_m_f_c_dialog/_c_make_setup_manifest.xml.i | Bin 0 -> 267 bytes .../data/_source/_m_f_c_dialog/_make_help.cpp.i | Bin 0 -> 973 bytes .../data/_source/_m_f_c_dialog/_make_help.h.i | Bin 0 -> 1011 bytes .../data/_source/_m_f_c_dialog/_path_dialog.cpp.i | Bin 0 -> 2900 bytes .../data/_source/_m_f_c_dialog/_path_dialog.h.i | Bin 0 -> 1271 bytes .../_source/_m_f_c_dialog/_property_list.cpp.i | Bin 0 -> 5304 bytes .../data/_source/_m_f_c_dialog/_property_list.h.i | Bin 0 -> 1880 bytes .../data/_source/_m_f_c_dialog/_std_afx.cpp.i | Bin 0 -> 205 bytes .../store/data/_source/_m_f_c_dialog/_std_afx.h.i | Bin 0 -> 958 bytes .../_m_f_c_dialog/res/_c_make_setup_dialog.ico.i | Bin 0 -> 3105 bytes .../_m_f_c_dialog/res/_c_make_setup_dialog.rc2.i | Bin 0 -> 243 bytes .../store/data/_source/_m_f_c_dialog/resource.h.i | Bin 0 -> 624 bytes .../data/_source/_qt_dialog/_add_cache_entry.cxx.i | Bin 0 -> 1034 bytes .../data/_source/_qt_dialog/_add_cache_entry.h.i | Bin 0 -> 651 bytes .../data/_source/_qt_dialog/_add_cache_entry.ui.i | Bin 0 -> 693 bytes .../data/_source/_qt_dialog/_c_make_lists.txt.i | Bin 0 -> 591 bytes .../data/_source/_qt_dialog/_c_make_setup.cxx.i | Bin 0 -> 2361 bytes .../data/_source/_qt_dialog/_c_make_setup.icns.i | Bin 0 -> 6932 bytes .../data/_source/_qt_dialog/_c_make_setup.ico.i | Bin 0 -> 3105 bytes .../data/_source/_qt_dialog/_c_make_setup.png.i | Bin 0 -> 423 bytes .../data/_source/_qt_dialog/_c_make_setup.qrc.i | Bin 0 -> 163 bytes .../data/_source/_qt_dialog/_c_make_setup.rc.i | Bin 0 -> 113 bytes .../_source/_qt_dialog/_c_make_setup_dialog.cxx.i | Bin 0 -> 7262 bytes .../_source/_qt_dialog/_c_make_setup_dialog.h.i | Bin 0 -> 1377 bytes .../_source/_qt_dialog/_c_make_setup_dialog.ui.i | Bin 0 -> 1607 bytes .../store/data/_source/_qt_dialog/_delete16.png.i | Bin 0 -> 796 bytes .../store/data/_source/_qt_dialog/_plus16.png.i | Bin 0 -> 423 bytes .../store/data/_source/_qt_dialog/_q_c_make.cxx.i | Bin 0 -> 2813 bytes .../store/data/_source/_qt_dialog/_q_c_make.h.i | Bin 0 -> 1603 bytes .../_source/_qt_dialog/_q_c_make_cache_view.cxx.i | Bin 0 -> 3805 bytes .../_source/_qt_dialog/_q_c_make_cache_view.h.i | Bin 0 -> 1456 bytes .../store/data/_source/_qt_dialog/_r_e_a_d_m_e.i | Bin 0 -> 379 bytes .../data/_source/_w_x_dialog/_c_make_icon.xpm.i | Bin 0 -> 958 bytes .../data/_source/_w_x_dialog/_c_make_lists.txt.i | Bin 0 -> 1177 bytes .../data/_source/_w_x_dialog/_c_make_setup.cpp.i | Bin 0 -> 1272 bytes .../data/_source/_w_x_dialog/_c_make_setup.h.i | Bin 0 -> 923 bytes .../data/_source/_w_x_dialog/_c_make_setup.pjd.i | Bin 0 -> 13365 bytes .../data/_source/_w_x_dialog/_c_make_setup.rc.i | Bin 0 -> 243 bytes .../_source/_w_x_dialog/_c_make_setup_frame.cpp.i | Bin 0 -> 13862 bytes .../_source/_w_x_dialog/_c_make_setup_frame.h.i | Bin 0 -> 3616 bytes .../_source/_w_x_dialog/_command_line_info.cpp.i | Bin 0 -> 1881 bytes .../_source/_w_x_dialog/_command_line_info.h.i | Bin 0 -> 1001 bytes .../_source/_w_x_dialog/_n_g_dialog.exe.manifest.i | Bin 0 -> 392 bytes .../data/_source/_w_x_dialog/_n_g_dialog.ico.i | Bin 0 -> 3105 bytes .../data/_source/_w_x_dialog/_property_list.cpp.i | Bin 0 -> 6285 bytes .../data/_source/_w_x_dialog/_property_list.h.i | Bin 0 -> 2984 bytes .../store/data/_source/_w_x_dialog/about.html.i | Bin 0 -> 569 bytes .../store/data/_source/_w_x_dialog/aboutdlg.cpp.i | Bin 0 -> 2508 bytes .../store/data/_source/_w_x_dialog/aboutdlg.h.i | Bin 0 -> 1374 bytes .../data/_source/_w_x_dialog/app__resources.cpp.i | Bin 0 -> 1033 bytes .../data/_source/_w_x_dialog/app__resources.h.i | Bin 0 -> 815 bytes .../_source/_w_x_dialog/bin/_find_u_p_x.cmake.i | Bin 0 -> 301 bytes .../data/_source/_w_x_dialog/bin/_findwx_w.cmake.i | Bin 0 -> 3764 bytes .../_source/_w_x_dialog/bin/_findwx_win.cmake.i | Bin 0 -> 4468 bytes .../data/_source/_w_x_dialog/bin/_usewx_w.cmake.i | Bin 0 -> 1168 bytes .../store/data/_source/_w_x_dialog/changelog.txt.i | Bin 0 -> 1022 bytes .../data/_source/_w_x_dialog/cmake__icon.gif.i | Bin 0 -> 209 bytes .../data/_source/_w_x_dialog/cmake__icon.xpm.i | Bin 0 -> 949 bytes .../data/_source/_w_x_dialog/cmake__logo.xpm.i | Bin 0 -> 352 bytes .../data/_source/_w_x_dialog/cmakesetup.done.xml.i | Bin 0 -> 2186 bytes .../data/_source/_w_x_dialog/cmakesetup.xml.i | Bin 0 -> 5970 bytes .../.hg/store/data/_source/_w_x_dialog/config.h.i | Bin 0 -> 1056 bytes .../data/_source/_w_x_dialog/optionsdlg.cpp.i | Bin 0 -> 1889 bytes .../store/data/_source/_w_x_dialog/optionsdlg.h.i | Bin 0 -> 1420 bytes .../data/_source/_w_x_dialog/progressdlg.cpp.i | Bin 0 -> 1679 bytes .../store/data/_source/_w_x_dialog/progressdlg.h.i | Bin 0 -> 1454 bytes .../_source/cm_add_custom_command_command.cxx.i | Bin 0 -> 3814 bytes .../data/_source/cm_add_custom_command_command.h.i | Bin 0 -> 3168 bytes .../_source/cm_add_custom_target_command.cxx.i | Bin 0 -> 2007 bytes .../data/_source/cm_add_custom_target_command.h.i | Bin 0 -> 1948 bytes .../data/_source/cm_add_definitions_command.cxx.i | Bin 0 -> 905 bytes .../data/_source/cm_add_definitions_command.h.i | Bin 0 -> 1847 bytes .../data/_source/cm_add_dependencies_command.cxx.i | Bin 0 -> 1300 bytes .../data/_source/cm_add_dependencies_command.h.i | Bin 0 -> 1375 bytes .../data/_source/cm_add_executable_command.cxx.i | Bin 0 -> 2065 bytes .../data/_source/cm_add_executable_command.h.i | Bin 0 -> 2523 bytes .../data/_source/cm_add_library_command.cxx.i | Bin 0 -> 2589 bytes .../store/data/_source/cm_add_library_command.h.i | Bin 0 -> 2163 bytes .../_source/cm_add_sub_directory_command.cxx.i | Bin 0 -> 1658 bytes .../data/_source/cm_add_sub_directory_command.h.i | Bin 0 -> 1673 bytes .../store/data/_source/cm_add_test_command.cxx.i | Bin 0 -> 1121 bytes .../.hg/store/data/_source/cm_add_test_command.h.i | Bin 0 -> 1355 bytes .../_source/cm_aux_source_directory_command.cxx.i | Bin 0 -> 1761 bytes .../_source/cm_aux_source_directory_command.h.i | Bin 0 -> 1904 bytes .../store/data/_source/cm_bootstrap_commands.cxx.i | Bin 0 -> 2382 bytes .../.hg/store/data/_source/cm_break_command.cxx.i | Bin 0 -> 582 bytes .../.hg/store/data/_source/cm_break_command.h.i | Bin 0 -> 942 bytes .../.hg/store/data/_source/cm_build_command.cxx.i | Bin 0 -> 1153 bytes .../.hg/store/data/_source/cm_build_command.h.i | Bin 0 -> 1554 bytes .../store/data/_source/cm_build_name_command.cxx.i | Bin 0 -> 1340 bytes .../store/data/_source/cm_build_name_command.h.i | Bin 0 -> 1318 bytes .../data/_source/cm_c_make_minimum_required.cxx.i | Bin 0 -> 1562 bytes .../data/_source/cm_c_make_minimum_required.h.i | Bin 0 -> 1365 bytes .../.hg/store/data/_source/cm_c_plugin_a_p_i.cxx.i | Bin 0 -> 5741 bytes .../.hg/store/data/_source/cm_c_plugin_a_p_i.h.i | Bin 0 -> 3042 bytes CMakeLua/.hg/store/data/_source/cm_c_test.cxx.i | Bin 0 -> 16620 bytes CMakeLua/.hg/store/data/_source/cm_c_test.h.i | Bin 0 -> 4513 bytes .../.hg/store/data/_source/cm_cache_manager.cxx.i | Bin 0 -> 6745 bytes .../.hg/store/data/_source/cm_cache_manager.h.i | Bin 0 -> 2493 bytes .../data/_source/cm_call_visual_studio_macro.cxx.i | Bin 0 -> 3138 bytes .../data/_source/cm_call_visual_studio_macro.h.i | Bin 0 -> 827 bytes CMakeLua/.hg/store/data/_source/cm_command.h.i | Bin 0 -> 2026 bytes .../data/_source/cm_command_argument_lexer.cxx.i | Bin 0 -> 15145 bytes .../data/_source/cm_command_argument_lexer.h.i | Bin 0 -> 3122 bytes .../data/_source/cm_command_argument_lexer.in.l.i | Bin 0 -> 1506 bytes .../data/_source/cm_command_argument_parser.cxx.i | Bin 0 -> 12667 bytes .../data/_source/cm_command_argument_parser.y.i | Bin 0 -> 1764 bytes .../cm_command_argument_parser_helper.cxx.i | Bin 0 -> 2370 bytes .../_source/cm_command_argument_parser_helper.h.i | Bin 0 -> 1333 bytes .../_source/cm_command_argument_parser_tokens.h.i | Bin 0 -> 1290 bytes .../data/_source/cm_command_arguments_helper.cxx.i | Bin 0 -> 1674 bytes .../data/_source/cm_command_arguments_helper.h.i | Bin 0 -> 2258 bytes CMakeLua/.hg/store/data/_source/cm_commands.cxx.i | Bin 0 -> 1287 bytes CMakeLua/.hg/store/data/_source/cm_commands.h.i | Bin 0 -> 672 bytes .../data/_source/cm_compute_link_depends.cxx.i | Bin 0 -> 8719 bytes .../store/data/_source/cm_compute_link_depends.h.i | Bin 0 -> 2030 bytes .../data/_source/cm_compute_link_information.cxx.i | Bin 0 -> 20927 bytes .../data/_source/cm_compute_link_information.h.i | Bin 0 -> 4608 bytes .../store/data/_source/cm_configure.cmake.h.in.i | Bin 0 -> 690 bytes .../data/_source/cm_configure_file_command.cxx.i | Bin 0 -> 1530 bytes .../data/_source/cm_configure_file_command.h.i | Bin 0 -> 1776 bytes .../store/data/_source/cm_core_try_compile.cxx.i | Bin 0 -> 4075 bytes .../.hg/store/data/_source/cm_core_try_compile.h.i | Bin 0 -> 996 bytes .../data/_source/cm_create_test_source_list.cxx.i | Bin 0 -> 2088 bytes .../data/_source/cm_create_test_source_list.h.i | Bin 0 -> 2384 bytes .../.hg/store/data/_source/cm_custom_command.cxx.i | Bin 0 -> 1133 bytes .../.hg/store/data/_source/cm_custom_command.h.i | Bin 0 -> 1144 bytes CMakeLua/.hg/store/data/_source/cm_data.h.i | Bin 0 -> 803 bytes .../data/_source/cm_define_property_command.cxx.i | Bin 0 -> 1099 bytes .../data/_source/cm_define_property_command.h.i | Bin 0 -> 1339 bytes CMakeLua/.hg/store/data/_source/cm_depends.cxx.i | Bin 0 -> 3212 bytes CMakeLua/.hg/store/data/_source/cm_depends.h.i | Bin 0 -> 2412 bytes CMakeLua/.hg/store/data/_source/cm_depends_c.cxx.i | Bin 0 -> 4141 bytes CMakeLua/.hg/store/data/_source/cm_depends_c.h.i | Bin 0 -> 1352 bytes .../store/data/_source/cm_depends_fortran.cxx.i | Bin 0 -> 18976 bytes .../.hg/store/data/_source/cm_depends_fortran.h.i | Bin 0 -> 3208 bytes .../data/_source/cm_depends_fortran_lexer.cxx.i | Bin 0 -> 17778 bytes .../data/_source/cm_depends_fortran_lexer.h.i | Bin 0 -> 3097 bytes .../data/_source/cm_depends_fortran_lexer.in.l.i | Bin 0 -> 2079 bytes .../data/_source/cm_depends_fortran_parser.cxx.i | Bin 0 -> 18547 bytes .../data/_source/cm_depends_fortran_parser.h.i | Bin 0 -> 1108 bytes .../data/_source/cm_depends_fortran_parser.y.i | Bin 0 -> 3769 bytes .../_source/cm_depends_fortran_parser_tokens.h.i | Bin 0 -> 1466 bytes .../.hg/store/data/_source/cm_depends_java.cxx.i | Bin 0 -> 711 bytes .../.hg/store/data/_source/cm_depends_java.h.i | Bin 0 -> 844 bytes .../store/data/_source/cm_depends_java_lexer.cxx.i | Bin 0 -> 18473 bytes .../store/data/_source/cm_depends_java_lexer.h.i | Bin 0 -> 3074 bytes .../data/_source/cm_depends_java_lexer.in.l.i | Bin 0 -> 2281 bytes .../data/_source/cm_depends_java_parser.cxx.i | Bin 0 -> 30620 bytes .../store/data/_source/cm_depends_java_parser.y.i | Bin 0 -> 5548 bytes .../_source/cm_depends_java_parser_helper.cxx.i | Bin 0 -> 2699 bytes .../data/_source/cm_depends_java_parser_helper.h.i | Bin 0 -> 1359 bytes .../data/_source/cm_depends_java_parser_tokens.h.i | Bin 0 -> 2245 bytes .../store/data/_source/cm_document_variables.cxx.i | Bin 0 -> 10601 bytes .../store/data/_source/cm_document_variables.h.i | Bin 0 -> 546 bytes .../.hg/store/data/_source/cm_documentation.cxx.i | Bin 0 -> 9258 bytes .../.hg/store/data/_source/cm_documentation.h.i | Bin 0 -> 1949 bytes .../data/_source/cm_documentation_formatter.cxx.i | Bin 0 -> 825 bytes .../data/_source/cm_documentation_formatter.h.i | Bin 0 -> 1106 bytes .../cm_documentation_formatter_h_t_m_l.cxx.i | Bin 0 -> 1797 bytes .../_source/cm_documentation_formatter_h_t_m_l.h.i | Bin 0 -> 748 bytes .../_source/cm_documentation_formatter_man.cxx.i | Bin 0 -> 984 bytes .../_source/cm_documentation_formatter_man.h.i | Bin 0 -> 728 bytes .../_source/cm_documentation_formatter_text.cxx.i | Bin 0 -> 1587 bytes .../_source/cm_documentation_formatter_text.h.i | Bin 0 -> 760 bytes .../_source/cm_documentation_formatter_usage.cxx.i | Bin 0 -> 886 bytes .../_source/cm_documentation_formatter_usage.h.i | Bin 0 -> 686 bytes .../data/_source/cm_documentation_section.cxx.i | Bin 0 -> 846 bytes .../data/_source/cm_documentation_section.h.i | Bin 0 -> 1135 bytes .../store/data/_source/cm_dump_documentation.cxx.i | Bin 0 -> 1568 bytes .../.hg/store/data/_source/cm_dynamic_loader.cxx.i | Bin 0 -> 1019 bytes .../.hg/store/data/_source/cm_dynamic_loader.h.i | Bin 0 -> 827 bytes .../.hg/store/data/_source/cm_else_command.cxx.i | Bin 0 -> 862 bytes .../.hg/store/data/_source/cm_else_command.h.i | Bin 0 -> 1149 bytes .../store/data/_source/cm_else_if_command.cxx.i | Bin 0 -> 833 bytes .../.hg/store/data/_source/cm_else_if_command.h.i | Bin 0 -> 1149 bytes .../data/_source/cm_enable_language_command.cxx.i | Bin 0 -> 987 bytes .../data/_source/cm_enable_language_command.h.i | Bin 0 -> 1619 bytes .../data/_source/cm_enable_testing_command.cxx.i | Bin 0 -> 889 bytes .../data/_source/cm_enable_testing_command.h.i | Bin 0 -> 1681 bytes .../data/_source/cm_end_for_each_command.cxx.i | Bin 0 -> 879 bytes .../store/data/_source/cm_end_for_each_command.h.i | Bin 0 -> 1278 bytes .../data/_source/cm_end_function_command.cxx.i | Bin 0 -> 881 bytes .../store/data/_source/cm_end_function_command.h.i | Bin 0 -> 1272 bytes .../.hg/store/data/_source/cm_end_if_command.cxx.i | Bin 0 -> 990 bytes .../.hg/store/data/_source/cm_end_if_command.h.i | Bin 0 -> 1147 bytes .../store/data/_source/cm_end_macro_command.cxx.i | Bin 0 -> 876 bytes .../store/data/_source/cm_end_macro_command.h.i | Bin 0 -> 1266 bytes .../store/data/_source/cm_end_while_command.cxx.i | Bin 0 -> 874 bytes .../store/data/_source/cm_end_while_command.h.i | Bin 0 -> 1269 bytes .../data/_source/cm_exec_program_command.cxx.i | Bin 0 -> 1510 bytes .../store/data/_source/cm_exec_program_command.h.i | Bin 0 -> 1630 bytes .../data/_source/cm_execute_process_command.cxx.i | Bin 0 -> 3121 bytes .../data/_source/cm_execute_process_command.h.i | Bin 0 -> 1987 bytes .../.hg/store/data/_source/cm_execution_status.h.i | Bin 0 -> 772 bytes .../_source/cm_export_build_file_generator.cxx.i | Bin 0 -> 2864 bytes .../_source/cm_export_build_file_generator.h.i | Bin 0 -> 1712 bytes .../.hg/store/data/_source/cm_export_command.cxx.i | Bin 0 -> 4174 bytes .../.hg/store/data/_source/cm_export_command.h.i | Bin 0 -> 2858 bytes .../data/_source/cm_export_file_generator.cxx.i | Bin 0 -> 6645 bytes .../data/_source/cm_export_file_generator.h.i | Bin 0 -> 2982 bytes .../_source/cm_export_install_file_generator.cxx.i | Bin 0 -> 4358 bytes .../_source/cm_export_install_file_generator.h.i | Bin 0 -> 1828 bytes .../_source/cm_export_library_dependencies.cxx.i | Bin 0 -> 1695 bytes .../_source/cm_export_library_dependencies.h.i | Bin 0 -> 1774 bytes .../.hg/store/data/_source/cm_expr_lexer.cxx.i | Bin 0 -> 14051 bytes CMakeLua/.hg/store/data/_source/cm_expr_lexer.h.i | Bin 0 -> 2995 bytes .../.hg/store/data/_source/cm_expr_lexer.in.l.i | Bin 0 -> 1136 bytes .../.hg/store/data/_source/cm_expr_parser.cxx.i | Bin 0 -> 10870 bytes CMakeLua/.hg/store/data/_source/cm_expr_parser.y.i | Bin 0 -> 1575 bytes .../store/data/_source/cm_expr_parser_helper.cxx.i | Bin 0 -> 1165 bytes .../store/data/_source/cm_expr_parser_helper.h.i | Bin 0 -> 999 bytes .../store/data/_source/cm_expr_parser_tokens.h.i | Bin 0 -> 1078 bytes .../cm_external_makefile_project_generator.cxx.i | Bin 0 -> 914 bytes .../cm_external_makefile_project_generator.h.i | Bin 0 -> 1187 bytes .../_source/cm_extra_code_blocks_generator.cxx.i | Bin 0 -> 3876 bytes .../_source/cm_extra_code_blocks_generator.h.i | Bin 0 -> 1042 bytes .../cm_extra_eclipse_c_d_t4_generator.cxx.i | Bin 0 -> 5629 bytes .../_source/cm_extra_eclipse_c_d_t4_generator.h.i | Bin 0 -> 1250 bytes .../data/_source/cm_f_l_t_k_wrap_u_i_command.cxx.i | Bin 0 -> 2552 bytes .../data/_source/cm_f_l_t_k_wrap_u_i_command.h.i | Bin 0 -> 1461 bytes .../.hg/store/data/_source/cm_file_command.cxx.i | Bin 0 -> 13288 bytes .../.hg/store/data/_source/cm_file_command.h.i | Bin 0 -> 3404 bytes .../data/_source/cm_file_time_comparison.cxx.i | Bin 0 -> 2578 bytes .../store/data/_source/cm_file_time_comparison.h.i | Bin 0 -> 1075 bytes CMakeLua/.hg/store/data/_source/cm_find_base.cxx.i | Bin 0 -> 9496 bytes CMakeLua/.hg/store/data/_source/cm_find_base.h.i | Bin 0 -> 1670 bytes .../.hg/store/data/_source/cm_find_common.cxx.i | Bin 0 -> 3473 bytes CMakeLua/.hg/store/data/_source/cm_find_common.h.i | Bin 0 -> 1153 bytes .../store/data/_source/cm_find_file_command.cxx.i | Bin 0 -> 645 bytes .../store/data/_source/cm_find_file_command.h.i | Bin 0 -> 849 bytes .../data/_source/cm_find_library_command.cxx.i | Bin 0 -> 6749 bytes .../store/data/_source/cm_find_library_command.h.i | Bin 0 -> 1945 bytes .../data/_source/cm_find_package_command.cxx.i | Bin 0 -> 20141 bytes .../store/data/_source/cm_find_package_command.h.i | Bin 0 -> 3513 bytes .../store/data/_source/cm_find_path_command.cxx.i | Bin 0 -> 3427 bytes .../store/data/_source/cm_find_path_command.h.i | Bin 0 -> 1255 bytes .../data/_source/cm_find_program_command.cxx.i | Bin 0 -> 2610 bytes .../store/data/_source/cm_find_program_command.h.i | Bin 0 -> 1266 bytes .../store/data/_source/cm_for_each_command.cxx.i | Bin 0 -> 2417 bytes .../.hg/store/data/_source/cm_for_each_command.h.i | Bin 0 -> 1767 bytes .../.hg/store/data/_source/cm_function_blocker.h.i | Bin 0 -> 1103 bytes .../store/data/_source/cm_function_command.cxx.i | Bin 0 -> 3700 bytes .../.hg/store/data/_source/cm_function_command.h.i | Bin 0 -> 2032 bytes .../data/_source/cm_generated_file_stream.cxx.i | Bin 0 -> 2620 bytes .../data/_source/cm_generated_file_stream.h.i | Bin 0 -> 1830 bytes .../_source/cm_get_c_make_property_command.cxx.i | Bin 0 -> 1148 bytes .../_source/cm_get_c_make_property_command.h.i | Bin 0 -> 1219 bytes .../cm_get_directory_property_command.cxx.i | Bin 0 -> 1502 bytes .../_source/cm_get_directory_property_command.h.i | Bin 0 -> 1408 bytes .../cm_get_filename_component_command.cxx.i | Bin 0 -> 1567 bytes .../_source/cm_get_filename_component_command.h.i | Bin 0 -> 1606 bytes .../data/_source/cm_get_property_command.cxx.i | Bin 0 -> 4675 bytes .../store/data/_source/cm_get_property_command.h.i | Bin 0 -> 2348 bytes .../cm_get_source_file_property_command.cxx.i | Bin 0 -> 1823 bytes .../cm_get_source_file_property_command.h.i | Bin 0 -> 1224 bytes .../_source/cm_get_target_property_command.cxx.i | Bin 0 -> 1266 bytes .../_source/cm_get_target_property_command.h.i | Bin 0 -> 1610 bytes .../_source/cm_get_test_property_command.cxx.i | Bin 0 -> 1007 bytes .../data/_source/cm_get_test_property_command.h.i | Bin 0 -> 1169 bytes .../cm_global_borland_makefile_generator.cxx.i | Bin 0 -> 1070 bytes .../cm_global_borland_makefile_generator.h.i | Bin 0 -> 935 bytes .../store/data/_source/cm_global_generator.cxx.i | Bin 0 -> 19535 bytes .../.hg/store/data/_source/cm_global_generator.h.i | Bin 0 -> 5910 bytes .../_source/cm_global_kdevelop_generator.cxx.i | Bin 0 -> 5577 bytes .../data/_source/cm_global_kdevelop_generator.h.i | Bin 0 -> 1516 bytes .../cm_global_m_s_y_s_makefile_generator.cxx.i | Bin 0 -> 1430 bytes .../cm_global_m_s_y_s_makefile_generator.h.i | Bin 0 -> 962 bytes .../cm_global_min_g_w_makefile_generator.cxx.i | Bin 0 -> 1328 bytes .../cm_global_min_g_w_makefile_generator.h.i | Bin 0 -> 935 bytes .../cm_global_n_make_makefile_generator.cxx.i | Bin 0 -> 1143 bytes .../cm_global_n_make_makefile_generator.h.i | Bin 0 -> 932 bytes .../cm_global_unix_makefile_generator3.cxx.i | Bin 0 -> 12027 bytes .../_source/cm_global_unix_makefile_generator3.h.i | Bin 0 -> 4099 bytes .../cm_global_visual_studio6_generator.cxx.i | Bin 0 -> 4501 bytes .../_source/cm_global_visual_studio6_generator.h.i | Bin 0 -> 1470 bytes .../cm_global_visual_studio71_generator.cxx.i | Bin 0 -> 5138 bytes .../cm_global_visual_studio71_generator.h.i | Bin 0 -> 1288 bytes .../cm_global_visual_studio7_generator.cxx.i | Bin 0 -> 10025 bytes .../_source/cm_global_visual_studio7_generator.h.i | Bin 0 -> 2417 bytes .../cm_global_visual_studio8_generator.cxx.i | Bin 0 -> 4840 bytes .../_source/cm_global_visual_studio8_generator.h.i | Bin 0 -> 1424 bytes .../cm_global_visual_studio8_win64_generator.cxx.i | Bin 0 -> 931 bytes .../cm_global_visual_studio8_win64_generator.h.i | Bin 0 -> 944 bytes .../cm_global_visual_studio9_generator.cxx.i | Bin 0 -> 1591 bytes .../_source/cm_global_visual_studio9_generator.h.i | Bin 0 -> 1267 bytes .../cm_global_visual_studio9_win64_generator.cxx.i | Bin 0 -> 868 bytes .../cm_global_visual_studio9_win64_generator.h.i | Bin 0 -> 941 bytes .../cm_global_visual_studio_generator.cxx.i | Bin 0 -> 6942 bytes .../_source/cm_global_visual_studio_generator.h.i | Bin 0 -> 1355 bytes .../cm_global_watcom_w_make_generator.cxx.i | Bin 0 -> 1135 bytes .../_source/cm_global_watcom_w_make_generator.h.i | Bin 0 -> 937 bytes .../_source/cm_global_x_code21_generator.cxx.i | Bin 0 -> 743 bytes .../data/_source/cm_global_x_code21_generator.h.i | Bin 0 -> 792 bytes .../data/_source/cm_global_x_code_generator.cxx.i | Bin 0 -> 24428 bytes .../data/_source/cm_global_x_code_generator.h.i | Bin 0 -> 2704 bytes .../store/data/_source/cm_hex_file_converter.cxx.i | Bin 0 -> 1916 bytes .../store/data/_source/cm_hex_file_converter.h.i | Bin 0 -> 657 bytes .../.hg/store/data/_source/cm_if_command.cxx.i | Bin 0 -> 5010 bytes CMakeLua/.hg/store/data/_source/cm_if_command.h.i | Bin 0 -> 2688 bytes .../store/data/_source/cm_include_command.cxx.i | Bin 0 -> 1534 bytes .../.hg/store/data/_source/cm_include_command.h.i | Bin 0 -> 1498 bytes .../_source/cm_include_directory_command.cxx.i | Bin 0 -> 1795 bytes .../data/_source/cm_include_directory_command.h.i | Bin 0 -> 1420 bytes .../cm_include_external_m_s_project_command.cxx.i | Bin 0 -> 1533 bytes .../cm_include_external_m_s_project_command.h.i | Bin 0 -> 1233 bytes .../cm_include_regular_expression_command.cxx.i | Bin 0 -> 906 bytes .../cm_include_regular_expression_command.h.i | Bin 0 -> 1346 bytes .../store/data/_source/cm_install_command.cxx.i | Bin 0 -> 8979 bytes .../.hg/store/data/_source/cm_install_command.h.i | Bin 0 -> 7405 bytes .../_source/cm_install_command_arguments.cxx.i | Bin 0 -> 1875 bytes .../data/_source/cm_install_command_arguments.h.i | Bin 0 -> 1197 bytes .../_source/cm_install_directory_generator.cxx.i | Bin 0 -> 1074 bytes .../_source/cm_install_directory_generator.h.i | Bin 0 -> 762 bytes .../data/_source/cm_install_export_generator.cxx.i | Bin 0 -> 4256 bytes .../data/_source/cm_install_export_generator.h.i | Bin 0 -> 1830 bytes .../data/_source/cm_install_files_command.cxx.i | Bin 0 -> 2305 bytes .../data/_source/cm_install_files_command.h.i | Bin 0 -> 1896 bytes .../data/_source/cm_install_files_generator.cxx.i | Bin 0 -> 1048 bytes .../data/_source/cm_install_files_generator.h.i | Bin 0 -> 770 bytes .../store/data/_source/cm_install_generator.cxx.i | Bin 0 -> 2546 bytes .../store/data/_source/cm_install_generator.h.i | Bin 0 -> 1521 bytes .../data/_source/cm_install_programs_command.cxx.i | Bin 0 -> 2044 bytes .../data/_source/cm_install_programs_command.h.i | Bin 0 -> 1817 bytes .../data/_source/cm_install_script_generator.cxx.i | Bin 0 -> 758 bytes .../data/_source/cm_install_script_generator.h.i | Bin 0 -> 663 bytes .../data/_source/cm_install_target_generator.cxx.i | Bin 0 -> 8124 bytes .../data/_source/cm_install_target_generator.h.i | Bin 0 -> 1798 bytes .../data/_source/cm_install_targets_command.cxx.i | Bin 0 -> 1181 bytes .../data/_source/cm_install_targets_command.h.i | Bin 0 -> 1476 bytes .../data/_source/cm_link_directories_command.cxx.i | Bin 0 -> 904 bytes .../data/_source/cm_link_directories_command.h.i | Bin 0 -> 1560 bytes .../data/_source/cm_link_libraries_command.cxx.i | Bin 0 -> 1093 bytes .../data/_source/cm_link_libraries_command.h.i | Bin 0 -> 1452 bytes .../.hg/store/data/_source/cm_list_command.cxx.i | Bin 0 -> 2809 bytes .../.hg/store/data/_source/cm_list_command.h.i | Bin 0 -> 2365 bytes .../store/data/_source/cm_list_file_cache.cxx.i | Bin 0 -> 1868 bytes .../.hg/store/data/_source/cm_list_file_cache.h.i | Bin 0 -> 931 bytes .../.hg/store/data/_source/cm_list_file_lexer.c.i | Bin 0 -> 16626 bytes .../.hg/store/data/_source/cm_list_file_lexer.h.i | Bin 0 -> 786 bytes .../store/data/_source/cm_list_file_lexer.in.l.i | Bin 0 -> 2550 bytes .../store/data/_source/cm_load_cache_command.cxx.i | Bin 0 -> 2491 bytes .../store/data/_source/cm_load_cache_command.h.i | Bin 0 -> 1588 bytes .../data/_source/cm_load_command_command.cxx.i | Bin 0 -> 2986 bytes .../store/data/_source/cm_load_command_command.h.i | Bin 0 -> 1358 bytes .../store/data/_source/cm_local_generator.cxx.i | Bin 0 -> 31827 bytes .../.hg/store/data/_source/cm_local_generator.h.i | Bin 0 -> 8197 bytes .../cm_local_unix_makefile_generator3.cxx.i | Bin 0 -> 22506 bytes .../_source/cm_local_unix_makefile_generator3.h.i | Bin 0 -> 5585 bytes .../cm_local_visual_studio6_generator.cxx.i | Bin 0 -> 14619 bytes .../_source/cm_local_visual_studio6_generator.h.i | Bin 0 -> 1845 bytes .../cm_local_visual_studio7_generator.cxx.i | Bin 0 -> 20256 bytes .../_source/cm_local_visual_studio7_generator.h.i | Bin 0 -> 3306 bytes .../_source/cm_local_visual_studio_generator.cxx.i | Bin 0 -> 2714 bytes .../_source/cm_local_visual_studio_generator.h.i | Bin 0 -> 939 bytes .../data/_source/cm_local_x_code_generator.cxx.i | Bin 0 -> 778 bytes .../data/_source/cm_local_x_code_generator.h.i | Bin 0 -> 754 bytes .../.hg/store/data/_source/cm_macro_command.cxx.i | Bin 0 -> 3782 bytes .../.hg/store/data/_source/cm_macro_command.h.i | Bin 0 -> 2263 bytes .../.hg/store/data/_source/cm_make_depend.cxx.i | Bin 0 -> 3463 bytes CMakeLua/.hg/store/data/_source/cm_make_depend.h.i | Bin 0 -> 1673 bytes .../data/_source/cm_make_directory_command.cxx.i | Bin 0 -> 996 bytes .../data/_source/cm_make_directory_command.h.i | Bin 0 -> 1428 bytes CMakeLua/.hg/store/data/_source/cm_makefile.cxx.i | Bin 0 -> 26479 bytes CMakeLua/.hg/store/data/_source/cm_makefile.h.i | Bin 0 -> 8443 bytes .../cm_makefile_executable_target_generator.cxx.i | Bin 0 -> 5969 bytes .../cm_makefile_executable_target_generator.h.i | Bin 0 -> 642 bytes .../cm_makefile_library_target_generator.cxx.i | Bin 0 -> 9619 bytes .../cm_makefile_library_target_generator.h.i | Bin 0 -> 819 bytes .../_source/cm_makefile_target_generator.cxx.i | Bin 0 -> 16569 bytes .../data/_source/cm_makefile_target_generator.h.i | Bin 0 -> 3295 bytes .../cm_makefile_utility_target_generator.cxx.i | Bin 0 -> 1453 bytes .../cm_makefile_utility_target_generator.h.i | Bin 0 -> 627 bytes .../data/_source/cm_mark_as_advanced_command.cxx.i | Bin 0 -> 1184 bytes .../data/_source/cm_mark_as_advanced_command.h.i | Bin 0 -> 1506 bytes .../.hg/store/data/_source/cm_math_command.cxx.i | Bin 0 -> 1159 bytes .../.hg/store/data/_source/cm_math_command.h.i | Bin 0 -> 1300 bytes .../store/data/_source/cm_message_command.cxx.i | Bin 0 -> 1120 bytes .../.hg/store/data/_source/cm_message_command.h.i | Bin 0 -> 1371 bytes CMakeLua/.hg/store/data/_source/cm_object.h.i | Bin 0 -> 844 bytes .../.hg/store/data/_source/cm_option_command.cxx.i | Bin 0 -> 1352 bytes .../.hg/store/data/_source/cm_option_command.h.i | Bin 0 -> 1643 bytes .../data/_source/cm_order_link_directories.cxx.i | Bin 0 -> 5048 bytes .../data/_source/cm_order_link_directories.h.i | Bin 0 -> 2476 bytes .../_source/cm_order_runtime_directories.cxx.i | Bin 0 -> 3245 bytes .../data/_source/cm_order_runtime_directories.h.i | Bin 0 -> 1262 bytes .../_source/cm_output_required_files_command.cxx.i | Bin 0 -> 2523 bytes .../_source/cm_output_required_files_command.h.i | Bin 0 -> 1332 bytes .../store/data/_source/cm_project_command.cxx.i | Bin 0 -> 1307 bytes .../.hg/store/data/_source/cm_project_command.h.i | Bin 0 -> 1378 bytes CMakeLua/.hg/store/data/_source/cm_property.cxx.i | Bin 0 -> 897 bytes CMakeLua/.hg/store/data/_source/cm_property.h.i | Bin 0 -> 943 bytes .../data/_source/cm_property_definition.cxx.i | Bin 0 -> 732 bytes .../store/data/_source/cm_property_definition.h.i | Bin 0 -> 838 bytes .../data/_source/cm_property_definition_map.cxx.i | Bin 0 -> 1194 bytes .../data/_source/cm_property_definition_map.h.i | Bin 0 -> 740 bytes .../.hg/store/data/_source/cm_property_map.cxx.i | Bin 0 -> 1401 bytes .../.hg/store/data/_source/cm_property_map.h.i | Bin 0 -> 927 bytes .../data/_source/cm_q_t_wrap_c_p_p_command.cxx.i | Bin 0 -> 1768 bytes .../data/_source/cm_q_t_wrap_c_p_p_command.h.i | Bin 0 -> 1228 bytes .../data/_source/cm_q_t_wrap_u_i_command.cxx.i | Bin 0 -> 1970 bytes .../store/data/_source/cm_q_t_wrap_u_i_command.h.i | Bin 0 -> 1275 bytes .../data/_source/cm_raise_scope_command.cxx.i | Bin 0 -> 965 bytes .../store/data/_source/cm_raise_scope_command.h.i | Bin 0 -> 1505 bytes .../.hg/store/data/_source/cm_remove_command.cxx.i | Bin 0 -> 1218 bytes .../.hg/store/data/_source/cm_remove_command.h.i | Bin 0 -> 1318 bytes .../_source/cm_remove_definitions_command.cxx.i | Bin 0 -> 885 bytes .../data/_source/cm_remove_definitions_command.h.i | Bin 0 -> 1549 bytes .../.hg/store/data/_source/cm_return_command.cxx.i | Bin 0 -> 580 bytes .../.hg/store/data/_source/cm_return_command.h.i | Bin 0 -> 1252 bytes .../_source/cm_separate_arguments_command.cxx.i | Bin 0 -> 948 bytes .../data/_source/cm_separate_arguments_command.h.i | Bin 0 -> 1257 bytes .../.hg/store/data/_source/cm_set_command.cxx.i | Bin 0 -> 2795 bytes CMakeLua/.hg/store/data/_source/cm_set_command.h.i | Bin 0 -> 2711 bytes .../cm_set_directory_properties_command.cxx.i | Bin 0 -> 1206 bytes .../cm_set_directory_properties_command.h.i | Bin 0 -> 1384 bytes .../data/_source/cm_set_properties_command.cxx.i | Bin 0 -> 1804 bytes .../data/_source/cm_set_properties_command.h.i | Bin 0 -> 988 bytes .../data/_source/cm_set_property_command.cxx.i | Bin 0 -> 3635 bytes .../store/data/_source/cm_set_property_command.h.i | Bin 0 -> 1900 bytes .../cm_set_source_files_properties_command.cxx.i | Bin 0 -> 1933 bytes .../cm_set_source_files_properties_command.h.i | Bin 0 -> 1850 bytes .../_source/cm_set_target_properties_command.cxx.i | Bin 0 -> 1751 bytes .../_source/cm_set_target_properties_command.h.i | Bin 0 -> 3382 bytes .../_source/cm_set_tests_properties_command.cxx.i | Bin 0 -> 1642 bytes .../_source/cm_set_tests_properties_command.h.i | Bin 0 -> 1442 bytes .../store/data/_source/cm_site_name_command.cxx.i | Bin 0 -> 1492 bytes .../store/data/_source/cm_site_name_command.h.i | Bin 0 -> 1169 bytes .../.hg/store/data/_source/cm_source_file.cxx.i | Bin 0 -> 6933 bytes CMakeLua/.hg/store/data/_source/cm_source_file.h.i | Bin 0 -> 2132 bytes .../data/_source/cm_source_file_location.cxx.i | Bin 0 -> 1537 bytes .../store/data/_source/cm_source_file_location.h.i | Bin 0 -> 1332 bytes .../.hg/store/data/_source/cm_source_group.cxx.i | Bin 0 -> 1165 bytes .../.hg/store/data/_source/cm_source_group.h.i | Bin 0 -> 1296 bytes .../data/_source/cm_source_group_command.cxx.i | Bin 0 -> 1739 bytes .../store/data/_source/cm_source_group_command.h.i | Bin 0 -> 1494 bytes .../store/data/_source/cm_standard_includes.h.i | Bin 0 -> 3974 bytes .../.hg/store/data/_source/cm_standard_lexer.h.i | Bin 0 -> 986 bytes .../.hg/store/data/_source/cm_string_command.cxx.i | Bin 0 -> 4604 bytes .../.hg/store/data/_source/cm_string_command.h.i | Bin 0 -> 2698 bytes .../.hg/store/data/_source/cm_subdir_command.cxx.i | Bin 0 -> 1339 bytes .../.hg/store/data/_source/cm_subdir_command.h.i | Bin 0 -> 1608 bytes .../data/_source/cm_subdir_depends_command.cxx.i | Bin 0 -> 791 bytes .../data/_source/cm_subdir_depends_command.h.i | Bin 0 -> 1306 bytes .../.hg/store/data/_source/cm_system_tools.cxx.i | Bin 0 -> 15231 bytes .../.hg/store/data/_source/cm_system_tools.h.i | Bin 0 -> 5807 bytes CMakeLua/.hg/store/data/_source/cm_target.cxx.i | Bin 0 -> 36242 bytes CMakeLua/.hg/store/data/_source/cm_target.h.i | Bin 0 -> 8353 bytes .../_source/cm_target_link_libraries_command.cxx.i | Bin 0 -> 1561 bytes .../_source/cm_target_link_libraries_command.h.i | Bin 0 -> 1367 bytes CMakeLua/.hg/store/data/_source/cm_test.cxx.i | Bin 0 -> 2183 bytes CMakeLua/.hg/store/data/_source/cm_test.h.i | Bin 0 -> 1181 bytes .../data/_source/cm_try_compile_command.cxx.i | Bin 0 -> 948 bytes .../store/data/_source/cm_try_compile_command.h.i | Bin 0 -> 2158 bytes .../store/data/_source/cm_try_run_command.cxx.i | Bin 0 -> 3804 bytes .../.hg/store/data/_source/cm_try_run_command.h.i | Bin 0 -> 2153 bytes .../data/_source/cm_use_mangled_mesa_command.cxx.i | Bin 0 -> 1839 bytes .../data/_source/cm_use_mangled_mesa_command.h.i | Bin 0 -> 1422 bytes .../data/_source/cm_utility_source_command.cxx.i | Bin 0 -> 2017 bytes .../data/_source/cm_utility_source_command.h.i | Bin 0 -> 1609 bytes .../_source/cm_variable_requires_command.cxx.i | Bin 0 -> 1433 bytes .../data/_source/cm_variable_requires_command.h.i | Bin 0 -> 1421 bytes .../.hg/store/data/_source/cm_variable_watch.cxx.i | Bin 0 -> 1078 bytes .../.hg/store/data/_source/cm_variable_watch.h.i | Bin 0 -> 1028 bytes .../data/_source/cm_variable_watch_command.cxx.i | Bin 0 -> 1997 bytes .../data/_source/cm_variable_watch_command.h.i | Bin 0 -> 1642 bytes CMakeLua/.hg/store/data/_source/cm_version.cxx.i | Bin 0 -> 722 bytes CMakeLua/.hg/store/data/_source/cm_version.h.i | Bin 0 -> 716 bytes .../.hg/store/data/_source/cm_while_command.cxx.i | Bin 0 -> 1843 bytes .../.hg/store/data/_source/cm_while_command.h.i | Bin 0 -> 1853 bytes .../data/_source/cm_win32_process_execution.cxx.i | Bin 0 -> 8196 bytes .../data/_source/cm_win32_process_execution.h.i | Bin 0 -> 2572 bytes .../store/data/_source/cm_write_file_command.cxx.i | Bin 0 -> 1499 bytes .../store/data/_source/cm_write_file_command.h.i | Bin 0 -> 1474 bytes .../store/data/_source/cm_x_code21_object.cxx.i | Bin 0 -> 1165 bytes .../.hg/store/data/_source/cm_x_code21_object.h.i | Bin 0 -> 630 bytes .../.hg/store/data/_source/cm_x_code_object.cxx.i | Bin 0 -> 2105 bytes .../.hg/store/data/_source/cm_x_code_object.h.i | Bin 0 -> 1632 bytes .../.hg/store/data/_source/cm_x_m_l_parser.cxx.i | Bin 0 -> 1596 bytes .../.hg/store/data/_source/cm_x_m_l_parser.h.i | Bin 0 -> 1562 bytes CMakeLua/.hg/store/data/_source/cmake.cxx.i | Bin 0 -> 34433 bytes CMakeLua/.hg/store/data/_source/cmake.h.i | Bin 0 -> 6141 bytes CMakeLua/.hg/store/data/_source/cmakemain.cxx.i | Bin 0 -> 5119 bytes CMakeLua/.hg/store/data/_source/cmaketest.h.in.i | Bin 0 -> 568 bytes CMakeLua/.hg/store/data/_source/cmakewizard.cxx.i | Bin 0 -> 1721 bytes CMakeLua/.hg/store/data/_source/cmakewizard.h.i | Bin 0 -> 804 bytes CMakeLua/.hg/store/data/_source/cmakexbuild.cxx.i | Bin 0 -> 1269 bytes CMakeLua/.hg/store/data/_source/cmw9xcom.cxx.i | Bin 0 -> 806 bytes CMakeLua/.hg/store/data/_source/ctest.cxx.i | Bin 0 -> 5151 bytes CMakeLua/.hg/store/data/_source/kwsys/_base64.c.i | Bin 0 -> 2263 bytes .../.hg/store/data/_source/kwsys/_base64.h.in.i | Bin 0 -> 1514 bytes .../_source/kwsys/_c_make_empty_input_file.in.i | Bin 0 -> 98 bytes .../store/data/_source/kwsys/_c_make_lists.txt.i | Bin 0 -> 9622 bytes .../data/_source/kwsys/_c_test_config.cmake.i | Bin 0 -> 158 bytes .../_source/kwsys/_check_c_x_x_source_runs.cmake.i | Bin 0 -> 949 bytes .../_source/kwsys/_command_line_arguments.cxx.i | Bin 0 -> 5033 bytes .../_source/kwsys/_command_line_arguments.hxx.in.i | Bin 0 -> 2880 bytes .../.hg/store/data/_source/kwsys/_configure.h.in.i | Bin 0 -> 1665 bytes .../store/data/_source/kwsys/_configure.hxx.in.i | Bin 0 -> 1700 bytes .../.hg/store/data/_source/kwsys/_copyright.txt.i | Bin 0 -> 927 bytes .../store/data/_source/kwsys/_date_stamp.h.in.i | Bin 0 -> 655 bytes .../.hg/store/data/_source/kwsys/_directory.cxx.i | Bin 0 -> 1646 bytes .../store/data/_source/kwsys/_directory.hxx.in.i | Bin 0 -> 1003 bytes .../store/data/_source/kwsys/_dynamic_loader.cxx.i | Bin 0 -> 3838 bytes .../data/_source/kwsys/_dynamic_loader.hxx.in.i | Bin 0 -> 1539 bytes .../data/_source/kwsys/_encode_executable.c.i | Bin 0 -> 1321 bytes .../data/_source/kwsys/_extra_test.cmake.in.i | Bin 0 -> 163 bytes .../data/_source/kwsys/_fundamental_type.h.in.i | Bin 0 -> 1550 bytes CMakeLua/.hg/store/data/_source/kwsys/_glob.cxx.i | Bin 0 -> 3273 bytes .../.hg/store/data/_source/kwsys/_glob.hxx.in.i | Bin 0 -> 1434 bytes .../.hg/store/data/_source/kwsys/_i_o_stream.cxx.i | Bin 0 -> 2438 bytes .../store/data/_source/kwsys/_i_o_stream.hxx.in.i | Bin 0 -> 1335 bytes CMakeLua/.hg/store/data/_source/kwsys/_m_d5.c.i | Bin 0 -> 5654 bytes CMakeLua/.hg/store/data/_source/kwsys/_m_d5.h.in.i | Bin 0 -> 1230 bytes .../.hg/store/data/_source/kwsys/_process.h.in.i | Bin 0 -> 4241 bytes .../store/data/_source/kwsys/_process_fwd9x.c.i | Bin 0 -> 2317 bytes .../store/data/_source/kwsys/_process_u_n_i_x.c.i | Bin 0 -> 17832 bytes .../store/data/_source/kwsys/_process_win32.c.i | Bin 0 -> 18734 bytes .../store/data/_source/kwsys/_r_e_a_d_m_e.txt.i | Bin 0 -> 383 bytes .../.hg/store/data/_source/kwsys/_registry.cxx.i | Bin 0 -> 3927 bytes .../store/data/_source/kwsys/_registry.hxx.in.i | Bin 0 -> 1222 bytes .../data/_source/kwsys/_regular_expression.cxx.i | Bin 0 -> 10623 bytes .../_source/kwsys/_regular_expression.hxx.in.i | Bin 0 -> 4102 bytes .../data/_source/kwsys/_shared_forward.h.in.i | Bin 0 -> 5394 bytes CMakeLua/.hg/store/data/_source/kwsys/_string.c.i | Bin 0 -> 1477 bytes .../.hg/store/data/_source/kwsys/_string.h.in.i | Bin 0 -> 1009 bytes .../.hg/store/data/_source/kwsys/_string.hxx.in.i | Bin 0 -> 1196 bytes CMakeLua/.hg/store/data/_source/kwsys/_system.c.i | Bin 0 -> 4013 bytes .../.hg/store/data/_source/kwsys/_system.h.in.i | Bin 0 -> 1828 bytes .../data/_source/kwsys/_system_information.cxx.i | Bin 0 -> 27772 bytes .../_source/kwsys/_system_information.hxx.in.i | Bin 0 -> 4624 bytes .../store/data/_source/kwsys/_system_tools.cxx.i | Bin 0 -> 29121 bytes .../data/_source/kwsys/_system_tools.hxx.in.i | Bin 0 -> 9374 bytes .../.hg/store/data/_source/kwsys/_terminal.c.i | Bin 0 -> 2971 bytes .../.hg/store/data/_source/kwsys/_terminal.h.in.i | Bin 0 -> 1804 bytes .../store/data/_source/kwsys/auto__ptr.hxx.in.i | Bin 0 -> 1931 bytes .../store/data/_source/kwsys/hash__fun.hxx.in.i | Bin 0 -> 1030 bytes .../store/data/_source/kwsys/hash__map.hxx.in.i | Bin 0 -> 2829 bytes .../store/data/_source/kwsys/hash__set.hxx.in.i | Bin 0 -> 2444 bytes .../store/data/_source/kwsys/hashtable.hxx.in.i | Bin 0 -> 7643 bytes .../data/_source/kwsys/kwsys__cstddef.hxx.in.i | Bin 0 -> 592 bytes .../data/_source/kwsys/kwsys__ios__fstream.h.in.i | Bin 0 -> 638 bytes .../data/_source/kwsys/kwsys__ios__iosfwd.h.in.i | Bin 0 -> 618 bytes .../data/_source/kwsys/kwsys__ios__iostream.h.in.i | Bin 0 -> 1091 bytes .../data/_source/kwsys/kwsys__ios__sstream.h.in.i | Bin 0 -> 1825 bytes .../store/data/_source/kwsys/kwsys__stl.hxx.in.i | Bin 0 -> 882 bytes .../data/_source/kwsys/kwsys__stl__string.hxx.in.i | Bin 0 -> 1495 bytes .../data/_source/kwsys/kwsys_date_stamp.cmake.i | Bin 0 -> 7642 bytes .../store/data/_source/kwsys/kwsys_date_stamp.py.i | Bin 0 -> 499 bytes .../data/_source/kwsys/kwsys_header_dump.pl.i | Bin 0 -> 750 bytes .../_source/kwsys/kwsys_platform_tests.cmake.i | Bin 0 -> 879 bytes .../data/_source/kwsys/kwsys_platform_tests_c.c.i | Bin 0 -> 437 bytes .../_source/kwsys/kwsys_platform_tests_c_x_x.cxx.i | Bin 0 -> 3062 bytes .../.hg/store/data/_source/kwsys/kwsys_private.h.i | Bin 0 -> 716 bytes .../store/data/_source/kwsys/test_auto_ptr.cxx.i | Bin 0 -> 1363 bytes .../kwsys/test_command_line_arguments.cxx.i | Bin 0 -> 2291 bytes .../kwsys/test_command_line_arguments1.cxx.i | Bin 0 -> 1244 bytes .../data/_source/kwsys/test_dynamic_loader.cxx.i | Bin 0 -> 1723 bytes .../.hg/store/data/_source/kwsys/test_dynload.c.i | Bin 0 -> 200 bytes .../.hg/store/data/_source/kwsys/test_encode.c.i | Bin 0 -> 982 bytes .../.hg/store/data/_source/kwsys/test_fail.c.i | Bin 0 -> 357 bytes .../store/data/_source/kwsys/test_hash_s_t_l.cxx.i | Bin 0 -> 1023 bytes .../.hg/store/data/_source/kwsys/test_i_o_s.cxx.i | Bin 0 -> 679 bytes .../.hg/store/data/_source/kwsys/test_process.c.i | Bin 0 -> 3881 bytes .../store/data/_source/kwsys/test_registry.cxx.i | Bin 0 -> 1203 bytes .../_source/kwsys/test_system_information.cxx.i | Bin 0 -> 634 bytes .../data/_source/kwsys/test_system_tools.bin.i | Bin 0 -> 299 bytes .../data/_source/kwsys/test_system_tools.cxx.i | Bin 0 -> 2349 bytes .../data/_source/kwsys/test_system_tools.h.in.i | Bin 0 -> 510 bytes .../.hg/store/data/_source/kwsys/test_terminal.c.i | Bin 0 -> 645 bytes .../.hg/store/data/_templates/_apple_info.plist.i | Bin 0 -> 534 bytes .../.hg/store/data/_templates/_c_make_lists.txt.i | Bin 0 -> 183 bytes .../data/_templates/_c_make_v_s_macros1.vsmacros.i | Bin 0 -> 15897 bytes .../_c_make_visual_studio6_configurations.cmake.i | Bin 0 -> 222 bytes .../_templates/_c_pack._generic_description.txt.i | Bin 0 -> 187 bytes .../data/_templates/_c_pack._generic_license.txt.i | Bin 0 -> 168 bytes .../data/_templates/_c_pack._generic_welcome.txt.i | Bin 0 -> 148 bytes .../data/_templates/_c_pack_config.cmake.in.i | Bin 0 -> 688 bytes .../data/_templates/_c_test_script.cmake.in.i | Bin 0 -> 521 bytes .../data/_templates/_d_l_l_footer.dsptemplate.i | Bin 0 -> 163 bytes .../data/_templates/_d_l_l_header.dsptemplate.i | Bin 0 -> 1534 bytes .../data/_templates/_e_x_e_footer.dsptemplate.i | Bin 0 -> 163 bytes .../data/_templates/_e_x_e_header.dsptemplate.i | Bin 0 -> 1523 bytes .../_templates/_e_x_e_win_header.dsptemplate.i | Bin 0 -> 1481 bytes .../store/data/_templates/_test_driver.cxx.in.i | Bin 0 -> 1245 bytes .../data/_templates/_utility_footer.dsptemplate.i | Bin 0 -> 92 bytes .../data/_templates/_utility_header.dsptemplate.i | Bin 0 -> 828 bytes .../store/data/_templates/cygwin-package.sh.in.i | Bin 0 -> 781 bytes .../_templates/static_lib_footer.dsptemplate.i | Bin 0 -> 163 bytes .../_templates/static_lib_header.dsptemplate.i | Bin 0 -> 1341 bytes .../.hg/store/data/_tests/._no_dart_coverage.i | Bin 0 -> 104 bytes .../data/_tests/_assembler/_c_make_lists.txt.i | Bin 0 -> 531 bytes .../data/_tests/_assembler/main-linux-x86-gas.s.i | Bin 0 -> 390 bytes CMakeLua/.hg/store/data/_tests/_assembler/main.c.i | Bin 0 -> 226 bytes .../data/_tests/_build_depends/_c_make_lists.txt.i | Bin 0 -> 1589 bytes .../_build_depends/_project/_c_make_lists.txt.i | Bin 0 -> 956 bytes .../data/_tests/_build_depends/_project/bar.cxx.i | Bin 0 -> 369 bytes .../data/_tests/_build_depends/_project/dep.cxx.i | Bin 0 -> 87 bytes .../_build_depends/_project/dep__custom.cxx.i | Bin 0 -> 94 bytes .../_tests/_build_depends/_project/generator.cxx.i | Bin 0 -> 332 bytes .../data/_tests/_build_depends/_project/zot.cxx.i | Bin 0 -> 306 bytes .../data/_tests/_bundle_test/_bundle_lib.cxx.i | Bin 0 -> 608 bytes .../_bundle_sub_dir/_c_make_lists.txt.i | Bin 0 -> 562 bytes .../data/_tests/_bundle_test/_bundle_test.cxx.i | Bin 0 -> 199 bytes .../data/_tests/_bundle_test/_c_make_lists.txt.i | Bin 0 -> 1101 bytes .../_tests/_bundle_test/_some_random_file.txt.i | Bin 0 -> 64 bytes .../_bundle_test/random_resource_file.plist.in.i | Bin 0 -> 256 bytes CMakeLua/.hg/store/data/_tests/_c_make_lists.txt.i | Bin 0 -> 7175 bytes .../data/_tests/_c_make_tests/_c_make_lists.txt.i | Bin 0 -> 324 bytes .../_tests/_c_make_tests/_dummy_toolchain.cmake.i | Bin 0 -> 206 bytes .../_c_make_tests/_find_base_test.cmake.in.i | Bin 0 -> 646 bytes .../_tests/_c_make_tests/_include_test.cmake.in.i | Bin 0 -> 472 bytes .../_tests/_c_make_tests/_list_test.cmake.in.i | Bin 0 -> 765 bytes .../_c_make_tests/_toolchain_test.cmake.in.i | Bin 0 -> 1469 bytes .../_c_make_tests/_variable_watch_test.cmake.in.i | Bin 0 -> 292 bytes .../cmake__i__do__not__exist__in__the__system.h.i | Bin 0 -> 89 bytes .../store/data/_tests/_c_only/_c_make_lists.txt.i | Bin 0 -> 890 bytes CMakeLua/.hg/store/data/_tests/_c_only/conly.c.i | Bin 0 -> 250 bytes CMakeLua/.hg/store/data/_tests/_c_only/foo.c.i | Bin 0 -> 84 bytes CMakeLua/.hg/store/data/_tests/_c_only/foo.h.i | Bin 0 -> 83 bytes CMakeLua/.hg/store/data/_tests/_c_only/libc1.c.i | Bin 0 -> 101 bytes CMakeLua/.hg/store/data/_tests/_c_only/libc1.h.i | Bin 0 -> 91 bytes CMakeLua/.hg/store/data/_tests/_c_only/libc2.c.i | Bin 0 -> 121 bytes CMakeLua/.hg/store/data/_tests/_c_only/libc2.h.i | Bin 0 -> 201 bytes .../data/_tests/_c_test_test/_c_make_lists.txt.i | Bin 0 -> 280 bytes .../store/data/_tests/_c_test_test/test.cmake.in.i | Bin 0 -> 1113 bytes .../data/_tests/_c_test_test2/_c_make_lists.txt.i | Bin 0 -> 282 bytes .../data/_tests/_c_test_test2/test.cmake.in.i | Bin 0 -> 719 bytes .../data/_tests/_c_test_test3/test.cmake.in.i | Bin 0 -> 1204 bytes .../_tests/_command_line_test/_c_make_lists.txt.i | Bin 0 -> 1002 bytes .../_command_line_test/_command_line_test.cxx.i | Bin 0 -> 92 bytes .../_tests/_command_line_test/_pre_load.cmake.i | Bin 0 -> 119 bytes .../store/data/_tests/_complex/_c_make_lists.txt.i | Bin 0 -> 5616 bytes .../_tests/_complex/_cache/_c_make_cache.txt.i | Bin 0 -> 477 bytes .../data/_tests/_complex/_executable/_a.cxx.i | Bin 0 -> 173 bytes .../store/data/_tests/_complex/_executable/_a.h.i | Bin 0 -> 178 bytes .../store/data/_tests/_complex/_executable/_a.hh.i | Bin 0 -> 153 bytes .../data/_tests/_complex/_executable/_a.txt.i | Bin 0 -> 99 bytes .../_complex/_executable/_c_make_lists.txt.i | Bin 0 -> 1816 bytes .../_tests/_complex/_executable/_included.cmake.i | Bin 0 -> 114 bytes .../_executable/_sub1/_name_conflict_test.c.i | Bin 0 -> 105 bytes .../_executable/_sub2/_name_conflict_test.c.i | Bin 0 -> 105 bytes .../_complex/_executable/_temp/_c_make_lists.txt.i | Bin 0 -> 285 bytes .../_tests/_complex/_executable/cm_version.h.in.i | Bin 0 -> 119 bytes .../data/_tests/_complex/_executable/complex.cxx.i | Bin 0 -> 7349 bytes .../_tests/_complex/_executable/complex.file.cxx.i | Bin 0 -> 147 bytes .../_complex/_executable/complex__nobuild.cxx.i | Bin 0 -> 108 bytes .../_complex/_executable/not_in_all_exe.cxx.i | Bin 0 -> 185 bytes .../_complex/_executable/test_system_dir.cxx.i | Bin 0 -> 122 bytes .../_tests/_complex/_executable/testcflags.c.i | Bin 0 -> 335 bytes .../_tests/_complex/_library/_c_make_lists.txt.i | Bin 0 -> 1705 bytes .../_complex/_library/_extra_sources/file1.cxx.i | Bin 0 -> 93 bytes .../_complex/_library/_extra_sources/file1.h.i | Bin 0 -> 78 bytes .../_library/_system_dir/test_system_dir.h.i | Bin 0 -> 145 bytes .../data/_tests/_complex/_library/_test_link.c.i | Bin 0 -> 153 bytes .../_tests/_complex/_library/create__file.cxx.i | Bin 0 -> 334 bytes .../store/data/_tests/_complex/_library/dummy.i | Bin 0 -> 64 bytes .../store/data/_tests/_complex/_library/empty.h.i | Bin 0 -> 64 bytes .../data/_tests/_complex/_library/file2.cxx.i | Bin 0 -> 206 bytes .../store/data/_tests/_complex/_library/file2.h.i | Bin 0 -> 78 bytes .../data/_tests/_complex/_library/module_file.c.i | Bin 0 -> 127 bytes .../data/_tests/_complex/_library/module_file.h.i | Bin 0 -> 236 bytes .../_tests/_complex/_library/not_in_all_lib.cxx.i | Bin 0 -> 168 bytes .../_tests/_complex/_library/shared_file.cxx.i | Bin 0 -> 127 bytes .../data/_tests/_complex/_library/shared_file.h.i | Bin 0 -> 242 bytes .../_complex/_library/test__preprocess.cmake.i | Bin 0 -> 242 bytes .../data/_tests/_complex/_library/test_conly.c.i | Bin 0 -> 219 bytes .../data/_tests/_complex/_library/test_conly.h.i | Bin 0 -> 245 bytes .../store/data/_tests/_complex/_var_tests.cmake.i | Bin 0 -> 1095 bytes .../data/_tests/_complex/cm_test_configure.h.in.i | Bin 0 -> 821 bytes .../_complex/cm_test_configure_escape.h.in.i | Bin 0 -> 107 bytes .../_complex/cm_test_generated_header.h.in.i | Bin 0 -> 99 bytes .../_tests/_complex_one_config/_c_make_lists.txt.i | Bin 0 -> 5616 bytes .../_complex_one_config/_cache/_c_make_cache.txt.i | Bin 0 -> 477 bytes .../_complex_one_config/_executable/_a.cxx.i | Bin 0 -> 173 bytes .../_tests/_complex_one_config/_executable/_a.h.i | Bin 0 -> 178 bytes .../_tests/_complex_one_config/_executable/_a.hh.i | Bin 0 -> 153 bytes .../_complex_one_config/_executable/_a.txt.i | Bin 0 -> 99 bytes .../_executable/_c_make_lists.txt.i | Bin 0 -> 1816 bytes .../_executable/_included.cmake.i | Bin 0 -> 114 bytes .../_executable/_sub1/_name_conflict_test.c.i | Bin 0 -> 105 bytes .../_executable/_sub2/_name_conflict_test.c.i | Bin 0 -> 105 bytes .../_executable/_temp/_c_make_lists.txt.i | Bin 0 -> 285 bytes .../_executable/cm_version.h.in.i | Bin 0 -> 119 bytes .../_complex_one_config/_executable/complex.cxx.i | Bin 0 -> 7349 bytes .../_executable/complex.file.cxx.i | Bin 0 -> 147 bytes .../_executable/complex__nobuild.cxx.i | Bin 0 -> 108 bytes .../_executable/not_in_all_exe.cxx.i | Bin 0 -> 185 bytes .../_executable/test_system_dir.cxx.i | Bin 0 -> 122 bytes .../_complex_one_config/_executable/testcflags.c.i | Bin 0 -> 335 bytes .../_library/_c_make_lists.txt.i | Bin 0 -> 1705 bytes .../_library/_extra_sources/file1.cxx.i | Bin 0 -> 93 bytes .../_library/_extra_sources/file1.h.i | Bin 0 -> 78 bytes .../_library/_system_dir/test_system_dir.h.i | Bin 0 -> 145 bytes .../_complex_one_config/_library/_test_link.c.i | Bin 0 -> 153 bytes .../_library/create__file.cxx.i | Bin 0 -> 334 bytes .../_tests/_complex_one_config/_library/dummy.i | Bin 0 -> 64 bytes .../_tests/_complex_one_config/_library/empty.h.i | Bin 0 -> 64 bytes .../_complex_one_config/_library/file2.cxx.i | Bin 0 -> 206 bytes .../_tests/_complex_one_config/_library/file2.h.i | Bin 0 -> 78 bytes .../_complex_one_config/_library/module_file.c.i | Bin 0 -> 127 bytes .../_complex_one_config/_library/module_file.h.i | Bin 0 -> 236 bytes .../_library/not_in_all_lib.cxx.i | Bin 0 -> 168 bytes .../_complex_one_config/_library/shared_file.cxx.i | Bin 0 -> 127 bytes .../_complex_one_config/_library/shared_file.h.i | Bin 0 -> 242 bytes .../_library/test__preprocess.cmake.i | Bin 0 -> 242 bytes .../_complex_one_config/_library/test_conly.c.i | Bin 0 -> 219 bytes .../_complex_one_config/_library/test_conly.h.i | Bin 0 -> 245 bytes .../_tests/_complex_one_config/_var_tests.cmake.i | Bin 0 -> 1095 bytes .../_complex_one_config/cm_test_configure.h.in.i | Bin 0 -> 821 bytes .../cm_test_configure_escape.h.in.i | Bin 0 -> 107 bytes .../cm_test_generated_header.h.in.i | Bin 0 -> 99 bytes .../_complex_relative_paths/_c_make_lists.txt.i | Bin 0 -> 5616 bytes .../_cache/_c_make_cache.txt.i | Bin 0 -> 477 bytes .../_complex_relative_paths/_executable/_a.cxx.i | Bin 0 -> 173 bytes .../_complex_relative_paths/_executable/_a.h.i | Bin 0 -> 178 bytes .../_complex_relative_paths/_executable/_a.hh.i | Bin 0 -> 153 bytes .../_complex_relative_paths/_executable/_a.txt.i | Bin 0 -> 99 bytes .../_executable/_c_make_lists.txt.i | Bin 0 -> 1816 bytes .../_executable/_included.cmake.i | Bin 0 -> 114 bytes .../_executable/_sub1/_name_conflict_test.c.i | Bin 0 -> 105 bytes .../_executable/_sub2/_name_conflict_test.c.i | Bin 0 -> 105 bytes .../_executable/_temp/_c_make_lists.txt.i | Bin 0 -> 285 bytes .../_executable/cm_version.h.in.i | Bin 0 -> 119 bytes .../_executable/complex.cxx.i | Bin 0 -> 7349 bytes .../_executable/complex.file.cxx.i | Bin 0 -> 147 bytes .../_executable/complex__nobuild.cxx.i | Bin 0 -> 108 bytes .../_executable/not_in_all_exe.cxx.i | Bin 0 -> 185 bytes .../_executable/test_system_dir.cxx.i | Bin 0 -> 122 bytes .../_executable/testcflags.c.i | Bin 0 -> 335 bytes .../_library/_c_make_lists.txt.i | Bin 0 -> 1705 bytes .../_library/_extra_sources/file1.cxx.i | Bin 0 -> 93 bytes .../_library/_extra_sources/file1.h.i | Bin 0 -> 78 bytes .../_library/_system_dir/test_system_dir.h.i | Bin 0 -> 145 bytes .../_library/_test_link.c.i | Bin 0 -> 153 bytes .../_library/create__file.cxx.i | Bin 0 -> 334 bytes .../_complex_relative_paths/_library/dummy.i | Bin 0 -> 64 bytes .../_complex_relative_paths/_library/empty.h.i | Bin 0 -> 64 bytes .../_complex_relative_paths/_library/file2.cxx.i | Bin 0 -> 206 bytes .../_complex_relative_paths/_library/file2.h.i | Bin 0 -> 78 bytes .../_library/module_file.c.i | Bin 0 -> 127 bytes .../_library/module_file.h.i | Bin 0 -> 236 bytes .../_library/not_in_all_lib.cxx.i | Bin 0 -> 168 bytes .../_library/shared_file.cxx.i | Bin 0 -> 127 bytes .../_library/shared_file.h.i | Bin 0 -> 242 bytes .../_library/test__preprocess.cmake.i | Bin 0 -> 242 bytes .../_library/test_conly.c.i | Bin 0 -> 219 bytes .../_library/test_conly.h.i | Bin 0 -> 245 bytes .../_complex_relative_paths/_var_tests.cmake.i | Bin 0 -> 1095 bytes .../cm_test_configure.h.in.i | Bin 0 -> 821 bytes .../cm_test_configure_escape.h.in.i | Bin 0 -> 107 bytes .../cm_test_generated_header.h.in.i | Bin 0 -> 99 bytes .../data/_tests/_conv_library/_c_make_lists.txt.i | Bin 0 -> 437 bytes .../.hg/store/data/_tests/_conv_library/bar.c.i | Bin 0 -> 92 bytes .../store/data/_tests/_conv_library/bartest.cxx.i | Bin 0 -> 260 bytes .../.hg/store/data/_tests/_conv_library/foo.cxx.i | Bin 0 -> 92 bytes .../store/data/_tests/_conv_library/sub1/car.cxx.i | Bin 0 -> 92 bytes .../_tests/_cust_com_depend/_c_make_lists.txt.i | Bin 0 -> 320 bytes .../.hg/store/data/_tests/_cust_com_depend/bar.h.i | Bin 0 -> 168 bytes .../store/data/_tests/_cust_com_depend/foo.cxx.i | Bin 0 -> 257 bytes .../_tests/_custom_command/_c_make_lists.txt.i | Bin 0 -> 3271 bytes .../_generated_header/_c_make_lists.txt.i | Bin 0 -> 291 bytes .../_generated_header/generated.h.in.i | Bin 0 -> 73 bytes .../_custom_command/_generated_header/main.cpp.i | Bin 0 -> 115 bytes .../_generator_in_extra_dir/_c_make_lists.txt.i | Bin 0 -> 263 bytes .../_custom_command/check__command__line.c.in.i | Bin 0 -> 438 bytes .../_tests/_custom_command/check__mark.cmake.i | Bin 0 -> 206 bytes .../data/_tests/_custom_command/config.h.in.i | Bin 0 -> 106 bytes .../store/data/_tests/_custom_command/doc1.tex.i | Bin 0 -> 88 bytes .../store/data/_tests/_custom_command/foo.h.in.i | Bin 0 -> 126 bytes .../.hg/store/data/_tests/_custom_command/foo.in.i | Bin 0 -> 292 bytes .../data/_tests/_custom_command/generator.cxx.i | Bin 0 -> 257 bytes .../store/data/_tests/_custom_command/main.cxx.i | Bin 0 -> 120 bytes .../store/data/_tests/_custom_command/wrapped.h.i | Bin 0 -> 82 bytes .../data/_tests/_custom_command/wrapper.cxx.i | Bin 0 -> 293 bytes .../_c_make_lists.txt.i | Bin 0 -> 344 bytes .../custom_target.c.i | Bin 0 -> 100 bytes .../working.c.in.i | Bin 0 -> 118 bytes .../data/_tests/_cxx_only/_c_make_lists.txt.i | Bin 0 -> 248 bytes .../.hg/store/data/_tests/_cxx_only/cxxonly.cxx.i | Bin 0 -> 226 bytes .../.hg/store/data/_tests/_cxx_only/libcxx1.cxx.i | Bin 0 -> 134 bytes .../.hg/store/data/_tests/_cxx_only/libcxx1.h.i | Bin 0 -> 122 bytes .../.hg/store/data/_tests/_cxx_only/libcxx2.cxx.i | Bin 0 -> 134 bytes .../.hg/store/data/_tests/_cxx_only/libcxx2.h.i | Bin 0 -> 232 bytes .../data/_tests/_dependency/1/_c_make_lists.txt.i | Bin 0 -> 154 bytes .../store/data/_tests/_dependency/1/_one_src.c.i | Bin 0 -> 88 bytes .../data/_tests/_dependency/_c_make_lists.txt.i | Bin 0 -> 523 bytes .../_tests/_dependency/_eight/_c_make_lists.txt.i | Bin 0 -> 124 bytes .../data/_tests/_dependency/_eight/_eight_src.c.i | Bin 0 -> 113 bytes .../_tests/_dependency/_exec/_c_make_lists.txt.i | Bin 0 -> 275 bytes .../data/_tests/_dependency/_exec/_exec_main.c.i | Bin 0 -> 214 bytes .../_tests/_dependency/_exec2/_c_make_lists.txt.i | Bin 0 -> 418 bytes .../data/_tests/_dependency/_exec2/_exec_main.c.i | Bin 0 -> 198 bytes .../_tests/_dependency/_exec3/_c_make_lists.txt.i | Bin 0 -> 250 bytes .../data/_tests/_dependency/_exec3/_exec_main.c.i | Bin 0 -> 198 bytes .../_tests/_dependency/_exec4/_c_make_lists.txt.i | Bin 0 -> 234 bytes .../data/_tests/_dependency/_exec4/_exec_main.c.i | Bin 0 -> 197 bytes .../_tests/_dependency/_five/_c_make_lists.txt.i | Bin 0 -> 121 bytes .../data/_tests/_dependency/_five/_five_src.c.i | Bin 0 -> 110 bytes .../_tests/_dependency/_four/_c_make_lists.txt.i | Bin 0 -> 132 bytes .../data/_tests/_dependency/_four/_four_src.c.i | Bin 0 -> 177 bytes .../_dependency/_no_dep_a/_c_make_lists.txt.i | Bin 0 -> 99 bytes .../_tests/_dependency/_no_dep_a/_no_dep_a_src.c.i | Bin 0 -> 91 bytes .../_dependency/_no_dep_b/_c_make_lists.txt.i | Bin 0 -> 174 bytes .../_tests/_dependency/_no_dep_b/_no_dep_b_src.c.i | Bin 0 -> 110 bytes .../_dependency/_no_dep_c/_c_make_lists.txt.i | Bin 0 -> 174 bytes .../_tests/_dependency/_no_dep_c/_no_dep_c_src.c.i | Bin 0 -> 110 bytes .../_tests/_dependency/_seven/_c_make_lists.txt.i | Bin 0 -> 122 bytes .../data/_tests/_dependency/_seven/_seven_src.c.i | Bin 0 -> 111 bytes .../_tests/_dependency/_six/_c_make_lists.txt.i | Bin 0 -> 254 bytes .../data/_tests/_dependency/_six/_six_a_src.c.i | Bin 0 -> 120 bytes .../data/_tests/_dependency/_six/_six_b_src.c.i | Bin 0 -> 128 bytes .../_tests/_dependency/_three/_c_make_lists.txt.i | Bin 0 -> 127 bytes .../data/_tests/_dependency/_three/_three_src.c.i | Bin 0 -> 167 bytes .../_tests/_dependency/_two/_c_make_lists.txt.i | Bin 0 -> 461 bytes .../_tests/_dependency/_two/_two_custom_src.c.i | Bin 0 -> 268 bytes .../data/_tests/_dependency/_two/_two_src.c.i | Bin 0 -> 172 bytes .../data/_tests/_dependency/_two/two-test.h.in.i | Bin 0 -> 94 bytes .../data/_tests/_doc_test/_c_make_lists.txt.i | Bin 0 -> 346 bytes .../store/data/_tests/_doc_test/_doc_test.cxx.i | Bin 0 -> 525 bytes .../data/_tests/_export_import/_c_make_lists.txt.i | Bin 0 -> 1410 bytes .../_export_import/_export/_c_make_lists.txt.i | Bin 0 -> 2304 bytes .../_tests/_export_import/_export/test_exe1.c.i | Bin 0 -> 427 bytes .../_tests/_export_import/_export/test_exe1lib.c.i | Bin 0 -> 97 bytes .../_tests/_export_import/_export/test_exe2.c.i | Bin 0 -> 212 bytes .../_tests/_export_import/_export/test_exe2lib.c.i | Bin 0 -> 217 bytes .../_export_import/_export/test_exe2lib_imp.c.i | Bin 0 -> 196 bytes .../_tests/_export_import/_export/test_exe3.c.i | Bin 0 -> 301 bytes .../_tests/_export_import/_export/test_lib1.c.i | Bin 0 -> 94 bytes .../_tests/_export_import/_export/test_lib2.c.i | Bin 0 -> 116 bytes .../_tests/_export_import/_export/test_lib3.c.i | Bin 0 -> 376 bytes .../_export_import/_export/test_lib3_imp.c.i | Bin 0 -> 193 bytes .../_tests/_export_import/_export/test_lib4.c.i | Bin 0 -> 190 bytes .../_export_import/_import/_c_make_lists.txt.i | Bin 0 -> 917 bytes .../_tests/_export_import/_import/imp__mod1.c.i | Bin 0 -> 350 bytes .../_export_import/_import/imp__test_exe1.c.i | Bin 0 -> 472 bytes .../.hg/store/data/_tests/_export_import/main.c.i | Bin 0 -> 92 bytes .../_tests/_external_o_b_j/_c_make_lists.txt.i | Bin 0 -> 1141 bytes .../_external_o_b_j/_object/_c_make_lists.txt.i | Bin 0 -> 306 bytes .../_external_o_b_j/_object/external__main.cxx.i | Bin 0 -> 92 bytes .../_external_o_b_j/_object/external__object.cxx.i | Bin 0 -> 112 bytes .../data/_tests/_external_o_b_j/executable.cxx.i | Bin 0 -> 129 bytes .../_tests/_find_package_test/_c_make_lists.txt.i | Bin 0 -> 2314 bytes .../_find_package_test/_find_package_test.cxx.i | Bin 0 -> 92 bytes .../_find_version_test_a.cmake.i | Bin 0 -> 244 bytes .../_find_version_test_b.cmake.i | Bin 0 -> 259 bytes .../_find_version_test_c.cmake.i | Bin 0 -> 248 bytes .../_contents/_resources/_t_app_config.cmake.i | Bin 0 -> 85 bytes .../_contents/_resources/cmake/tapp-config.cmake.i | Bin 0 -> 85 bytes .../_resources/_c_make/_t_framework_config.cmake.i | Bin 0 -> 85 bytes .../_a/_resources/tframework-config.cmake.i | Bin 0 -> 85 bytes .../data/_tests/_find_package_test/include/foo.h.i | Bin 0 -> 89 bytes .../lib/_bar/_bar_config.cmake.i | Bin 0 -> 85 bytes .../lib/_bar/cmake/bar-config.cmake.i | Bin 0 -> 85 bytes .../lib/_t_app/_t_app_config.cmake.i | Bin 0 -> 157 bytes .../lib/foo-1.2/_c_make/_foo_config.cmake.i | Bin 0 -> 85 bytes .../lib/foo-1.2/foo-config.cmake.i | Bin 0 -> 85 bytes .../lib/suffix/test/_suffix_test_config.cmake.i | Bin 0 -> 85 bytes .../test/_suffix_test_config_version.cmake.i | Bin 0 -> 176 bytes .../lib/zot-1.0/zot-config.cmake.i | Bin 0 -> 85 bytes .../lib/zot-2.0/zot-config-version.cmake.i | Bin 0 -> 155 bytes .../lib/zot-2.0/zot-config.cmake.i | Bin 0 -> 85 bytes .../lib/zot-3.0/zot-config-version.cmake.i | Bin 0 -> 155 bytes .../lib/zot-3.0/zot-config.cmake.i | Bin 0 -> 85 bytes .../lib/zot-3.1/zot-config-version.cmake.i | Bin 0 -> 178 bytes .../lib/zot-3.1/zot-config.cmake.i | Bin 0 -> 85 bytes .../store/data/_tests/_fortran/_c_make_lists.txt.i | Bin 0 -> 1634 bytes .../_fortran/_executable/_c_make_lists.txt.i | Bin 0 -> 338 bytes .../data/_tests/_fortran/_executable/main.f90.i | Bin 0 -> 156 bytes .../_tests/_fortran/_external/_c_make_lists.txt.i | Bin 0 -> 117 bytes .../store/data/_tests/_fortran/_external/a.f90.i | Bin 0 -> 180 bytes .../_tests/_fortran/_library/_c_make_lists.txt.i | Bin 0 -> 399 bytes .../store/data/_tests/_fortran/_library/a.f90.i | Bin 0 -> 110 bytes .../store/data/_tests/_fortran/_library/b.f90.i | Bin 0 -> 98 bytes .../store/data/_tests/_fortran/_library/main.f90.i | Bin 0 -> 116 bytes CMakeLua/.hg/store/data/_tests/_fortran/hello.f.i | Bin 0 -> 136 bytes .../data/_tests/_fortran/in__interface/main.f90.i | Bin 0 -> 114 bytes .../_tests/_fortran/in__interface/module.f90.i | Bin 0 -> 163 bytes .../_fortran/test__module__implementation.f90.i | Bin 0 -> 153 bytes .../_tests/_fortran/test__module__interface.f90.i | Bin 0 -> 167 bytes .../data/_tests/_fortran/test__module__main.f90.i | Bin 0 -> 151 bytes .../data/_tests/_fortran/test__preprocess._f90.i | Bin 0 -> 367 bytes .../_fortran/test__use__in__comment__fixedform.f.i | Bin 0 -> 154 bytes .../test__use__in__comment__freeform.f90.i | Bin 0 -> 151 bytes .../data/_tests/_framework/_c_make_lists.txt.i | Bin 0 -> 962 bytes .../.hg/store/data/_tests/_framework/bar.cxx.i | Bin 0 -> 113 bytes .../.hg/store/data/_tests/_framework/foo.cxx.i | Bin 0 -> 218 bytes CMakeLua/.hg/store/data/_tests/_framework/foo.h.i | Bin 0 -> 70 bytes CMakeLua/.hg/store/data/_tests/_framework/foo2.h.i | Bin 0 -> 71 bytes .../.hg/store/data/_tests/_framework/foo_both.h.i | Bin 0 -> 74 bytes .../store/data/_tests/_framework/foo_neither.h.i | Bin 0 -> 77 bytes .../store/data/_tests/_framework/foo_private.h.i | Bin 0 -> 77 bytes .../store/data/_tests/_framework/foo_public.h.i | Bin 0 -> 76 bytes .../.hg/store/data/_tests/_framework/test.lua.i | Bin 0 -> 74 bytes .../data/_tests/_function_test/_c_make_lists.txt.i | Bin 0 -> 1849 bytes .../_sub_dir_scope/_c_make_lists.txt.i | Bin 0 -> 375 bytes .../store/data/_tests/_function_test/_util.cmake.i | Bin 0 -> 288 bytes .../data/_tests/_function_test/function_test.c.i | Bin 0 -> 189 bytes CMakeLua/.hg/store/data/_tests/_java/_a.java.i | Bin 0 -> 153 bytes .../store/data/_tests/_java/_c_make_lists.txt.i | Bin 0 -> 503 bytes .../store/data/_tests/_java/_hello_world.java.i | Bin 0 -> 198 bytes .../store/data/_tests/_jump/_c_make_lists.txt.i | Bin 0 -> 166 bytes .../_tests/_jump/_executable/_c_make_lists.txt.i | Bin 0 -> 226 bytes .../_tests/_jump/_executable/jump_executable.cxx.i | Bin 0 -> 205 bytes .../data/_tests/_jump/_library/_c_make_lists.txt.i | Bin 0 -> 107 bytes .../_jump/_library/_shared/_c_make_lists.txt.i | Bin 0 -> 375 bytes .../_jump/_library/_shared/jump_shared.cxx.i | Bin 0 -> 176 bytes .../_jump/_library/_static/_c_make_lists.txt.i | Bin 0 -> 110 bytes .../_jump/_library/_static/jump_static.cxx.i | Bin 0 -> 96 bytes .../data/_tests/_lib_name/_c_make_lists.txt.i | Bin 0 -> 288 bytes CMakeLua/.hg/store/data/_tests/_lib_name/bar.c.i | Bin 0 -> 135 bytes CMakeLua/.hg/store/data/_tests/_lib_name/foo.c.i | Bin 0 -> 160 bytes .../.hg/store/data/_tests/_lib_name/foobar.c.i | Bin 0 -> 165 bytes .../data/_tests/_link_line/_c_make_lists.txt.i | Bin 0 -> 292 bytes .../.hg/store/data/_tests/_link_line/_exec.c.i | Bin 0 -> 129 bytes CMakeLua/.hg/store/data/_tests/_link_line/_one.c.i | Bin 0 -> 147 bytes CMakeLua/.hg/store/data/_tests/_link_line/_two.c.i | Bin 0 -> 147 bytes .../_tests/_link_line_order/_c_make_lists.txt.i | Bin 0 -> 546 bytes .../store/data/_tests/_link_line_order/_exec1.c.i | Bin 0 -> 146 bytes .../store/data/_tests/_link_line_order/_exec2.c.i | Bin 0 -> 146 bytes .../data/_tests/_link_line_order/_no_dep_a.c.i | Bin 0 -> 123 bytes .../data/_tests/_link_line_order/_no_dep_b.c.i | Bin 0 -> 110 bytes .../data/_tests/_link_line_order/_no_dep_c.c.i | Bin 0 -> 123 bytes .../data/_tests/_link_line_order/_no_dep_e.c.i | Bin 0 -> 171 bytes .../data/_tests/_link_line_order/_no_dep_f.c.i | Bin 0 -> 171 bytes .../data/_tests/_link_line_order/_no_dep_x.c.i | Bin 0 -> 122 bytes .../data/_tests/_link_line_order/_no_dep_y.c.i | Bin 0 -> 110 bytes .../data/_tests/_link_line_order/_no_dep_z.c.i | Bin 0 -> 123 bytes .../store/data/_tests/_link_line_order/_one.c.i | Bin 0 -> 165 bytes .../store/data/_tests/_link_line_order/_two.c.i | Bin 0 -> 118 bytes .../_c_make_commands/_c_make_lists.txt.i | Bin 0 -> 325 bytes .../_c_make_commands/cm_test_command.c.i | Bin 0 -> 1987 bytes .../data/_tests/_load_command/_c_make_lists.txt.i | Bin 0 -> 845 bytes .../_tests/_load_command/_loaded_command.cxx.in.i | Bin 0 -> 422 bytes .../_tests/_load_command/_loaded_command.h.in.i | Bin 0 -> 220 bytes .../_c_make_commands/_c_make_lists.txt.i | Bin 0 -> 325 bytes .../_c_make_commands/cm_test_command.c.i | Bin 0 -> 1987 bytes .../_load_command_one_config/_c_make_lists.txt.i | Bin 0 -> 845 bytes .../_loaded_command.cxx.in.i | Bin 0 -> 422 bytes .../_loaded_command.h.in.i | Bin 0 -> 220 bytes .../data/_tests/_macro_test/_c_make_lists.txt.i | Bin 0 -> 776 bytes .../store/data/_tests/_macro_test/macro_test.c.i | Bin 0 -> 189 bytes .../data/_tests/_make_clean/_c_make_lists.txt.i | Bin 0 -> 778 bytes .../_make_clean/_to_clean/_c_make_lists.txt.i | Bin 0 -> 736 bytes .../_to_clean/_to_clean_files.cmake.in.i | Bin 0 -> 102 bytes .../_tests/_make_clean/_to_clean/toclean.cxx.i | Bin 0 -> 92 bytes .../data/_tests/_make_clean/check__clean.c.in.i | Bin 0 -> 317 bytes .../data/_tests/_math_test/_c_make_lists.txt.i | Bin 0 -> 380 bytes .../data/_tests/_math_test/_math_test_exec.cxx.i | Bin 0 -> 361 bytes .../data/_tests/_math_test/_math_test_tests.h.in.i | Bin 0 -> 84 bytes .../data/_tests/_newline_args/_c_make_lists.txt.i | Bin 0 -> 302 bytes .../store/data/_tests/_newline_args/cxxonly.cxx.i | Bin 0 -> 260 bytes .../store/data/_tests/_newline_args/libcxx1.cxx.i | Bin 0 -> 169 bytes .../store/data/_tests/_newline_args/libcxx1.h.i | Bin 0 -> 156 bytes .../store/data/_tests/_newline_args/libcxx2.h.in.i | Bin 0 -> 114 bytes .../store/data/_tests/_obj_c++/_c_make_lists.txt.i | Bin 0 -> 198 bytes .../.hg/store/data/_tests/_obj_c++/objc++.mm.i | Bin 0 -> 351 bytes .../data/_tests/_out_of_binary/_c_make_lists.txt.i | Bin 0 -> 95 bytes .../store/data/_tests/_out_of_binary/outlib.c.i | Bin 0 -> 95 bytes .../data/_tests/_out_of_source/_c_make_lists.txt.i | Bin 0 -> 358 bytes .../_out_of_source_subdir/_c_make_lists.txt.i | Bin 0 -> 1105 bytes .../_out_of_source_subdir/simple.cxx.i | Bin 0 -> 355 bytes .../_out_of_source_subdir/simple.cxx.in.i | Bin 0 -> 95 bytes .../_out_of_source_subdir/testlib.cxx.i | Bin 0 -> 121 bytes .../_out_of_source_subdir/testlib.h.i | Bin 0 -> 199 bytes .../_out_of_source/_sub_dir/_c_make_lists.txt.i | Bin 0 -> 233 bytes .../store/data/_tests/_out_of_source/simple.cxx.i | Bin 0 -> 94 bytes .../store/data/_tests/_out_of_source/testdp.h.in.i | Bin 0 -> 93 bytes .../store/data/_tests/_plugin/_c_make_lists.txt.i | Bin 0 -> 747 bytes .../store/data/_tests/_plugin/include/example.h.i | Bin 0 -> 260 bytes .../data/_tests/_plugin/src/example__exe.cxx.i | Bin 0 -> 667 bytes .../data/_tests/_plugin/src/example__exe.h.in.i | Bin 0 -> 166 bytes .../data/_tests/_plugin/src/example__mod__1.c.i | Bin 0 -> 282 bytes .../data/_tests/_pre_order/_c_make_lists.txt.i | Bin 0 -> 216 bytes .../_tests/_pre_order/_library/_c_make_lists.txt.i | Bin 0 -> 104 bytes .../_tests/_pre_order/_library/simple_lib.cxx.i | Bin 0 -> 86 bytes .../.hg/store/data/_tests/_pre_order/simple.cxx.i | Bin 0 -> 127 bytes .../_tests/_precompiled_header/_c_make_lists.txt.i | Bin 0 -> 893 bytes .../store/data/_tests/_precompiled_header/foo1.c.i | Bin 0 -> 171 bytes .../store/data/_tests/_precompiled_header/foo2.c.i | Bin 0 -> 178 bytes .../_tests/_precompiled_header/foo__precompile.c.i | Bin 0 -> 252 bytes .../_tests/_precompiled_header/include/foo.h.i | Bin 0 -> 116 bytes .../include/foo__precompiled.h.i | Bin 0 -> 82 bytes .../data/_tests/_preprocess/_c_make_lists.txt.i | Bin 0 -> 3794 bytes .../store/data/_tests/_preprocess/file__def.h.i | Bin 0 -> 87 bytes .../store/data/_tests/_preprocess/preprocess.c.i | Bin 0 -> 988 bytes .../store/data/_tests/_preprocess/preprocess.cxx.i | Bin 0 -> 1079 bytes .../data/_tests/_preprocess/preprocess.h.in.i | Bin 0 -> 301 bytes .../data/_tests/_preprocess/preprocess__vs6.cxx.i | Bin 0 -> 195 bytes .../store/data/_tests/_preprocess/target__def.h.i | Bin 0 -> 89 bytes .../data/_tests/_properties/_c_make_lists.txt.i | Bin 0 -> 1627 bytes .../_tests/_properties/_sub_dir/properties3.cxx.i | Bin 0 -> 175 bytes .../data/_tests/_properties/properties.h.in.i | Bin 0 -> 91 bytes .../store/data/_tests/_properties/properties2.h.i | Bin 0 -> 92 bytes .../data/_tests/_return_test/_c_make_lists.txt.i | Bin 0 -> 938 bytes .../store/data/_tests/_return_test/return_test.c.i | Bin 0 -> 189 bytes .../_tests/_return_test/subdir/_c_make_lists.txt.i | Bin 0 -> 103 bytes .../data/_tests/_runtime_path/_c_make_lists.txt.i | Bin 0 -> 570 bytes .../.hg/store/data/_tests/_runtime_path/bar1.c.i | Bin 0 -> 111 bytes .../.hg/store/data/_tests/_runtime_path/bar2.c.i | Bin 0 -> 111 bytes .../.hg/store/data/_tests/_runtime_path/foo1.c.i | Bin 0 -> 90 bytes .../.hg/store/data/_tests/_runtime_path/foo2.c.i | Bin 0 -> 90 bytes .../.hg/store/data/_tests/_runtime_path/main.c.i | Bin 0 -> 113 bytes .../data/_tests/_same_name/_c_make_lists.txt.i | Bin 0 -> 151 bytes .../_tests/_same_name/_exe1/_c_make_lists.txt.i | Bin 0 -> 269 bytes .../store/data/_tests/_same_name/_exe1/conly.c.i | Bin 0 -> 197 bytes .../_tests/_same_name/_lib1/_c_make_lists.txt.i | Bin 0 -> 93 bytes .../store/data/_tests/_same_name/_lib1/libc1.c.i | Bin 0 -> 101 bytes .../store/data/_tests/_same_name/_lib1/libc1.h.i | Bin 0 -> 91 bytes .../data/_tests/_set_lang/_c_make_lists.txt.i | Bin 0 -> 312 bytes CMakeLua/.hg/store/data/_tests/_set_lang/bar.c.i | Bin 0 -> 228 bytes CMakeLua/.hg/store/data/_tests/_set_lang/foo.c.i | Bin 0 -> 121 bytes .../store/data/_tests/_simple/_c_make_lists.txt.i | Bin 0 -> 286 bytes .../.hg/store/data/_tests/_simple/simple.cxx.i | Bin 0 -> 158 bytes .../.hg/store/data/_tests/_simple/simple_c_lib.c.i | Bin 0 -> 205 bytes .../.hg/store/data/_tests/_simple/simple_lib.cxx.i | Bin 0 -> 86 bytes .../.hg/store/data/_tests/_simple/simple_we.cpp.i | Bin 0 -> 214 bytes .../data/_tests/_simple_c_only/_c_make_lists.txt.i | Bin 0 -> 381 bytes .../.hg/store/data/_tests/_simple_c_only/bar.c.i | Bin 0 -> 87 bytes .../.hg/store/data/_tests/_simple_c_only/foo.c.i | Bin 0 -> 89 bytes .../.hg/store/data/_tests/_simple_c_only/main.c.i | Bin 0 -> 160 bytes .../_tests/_simple_exclude/_c_make_lists.txt.i | Bin 0 -> 279 bytes .../_simple_exclude/dir_c/_c_make_lists.txt.i | Bin 0 -> 118 bytes .../dir_c/dir_a/_c_make_lists.txt.i | Bin 0 -> 160 bytes .../data/_tests/_simple_exclude/dir_c/dir_a/t1.c.i | Bin 0 -> 197 bytes .../data/_tests/_simple_exclude/dir_c/dir_a/t2.c.i | Bin 0 -> 143 bytes .../data/_tests/_simple_exclude/dir_c/dir_a/t3.c.i | Bin 0 -> 187 bytes .../data/_tests/_simple_exclude/dir_c/dir_a/t4.c.i | Bin 0 -> 241 bytes .../data/_tests/_simple_exclude/dir_c/dir_a/t5.c.i | Bin 0 -> 187 bytes .../dir_c/dir_b/_c_make_lists.txt.i | Bin 0 -> 130 bytes .../data/_tests/_simple_exclude/dir_c/dir_b/t6.c.i | Bin 0 -> 194 bytes .../data/_tests/_simple_exclude/dir_c/dir_b/t7.c.i | Bin 0 -> 216 bytes .../_simple_exclude/dir_d/_c_make_lists.txt.i | Bin 0 -> 178 bytes .../store/data/_tests/_simple_exclude/dir_d/t8.c.i | Bin 0 -> 143 bytes .../store/data/_tests/_simple_exclude/dir_d/t9.c.i | Bin 0 -> 310 bytes .../data/_tests/_simple_exclude/run.cmake.in.i | Bin 0 -> 347 bytes .../_tests/_simple_install/_c_make_lists.txt.i | Bin 0 -> 4761 bytes .../_simple_install/_install_script1.cmake.i | Bin 0 -> 201 bytes .../_simple_install/_install_script2.cmake.i | Bin 0 -> 308 bytes .../_simple_install/_install_script3.cmake.i | Bin 0 -> 319 bytes .../_simple_install/_install_script4.cmake.i | Bin 0 -> 411 bytes .../_tests/_simple_install/_package_script.cmake.i | Bin 0 -> 278 bytes .../_tests/_simple_install/_post_install.cmake.i | Bin 0 -> 194 bytes .../_tests/_simple_install/_pre_install.cmake.i | Bin 0 -> 126 bytes .../_test_sub_dir/_c_make_lists.txt.i | Bin 0 -> 159 bytes .../_simple_install/_test_sub_dir/_t_s_d.cxx.i | Bin 0 -> 174 bytes .../_simple_install/_test_sub_dir/_t_s_d.h.i | Bin 0 -> 87 bytes .../_test_sub_dir/_t_s_d__utils.cxx.i | Bin 0 -> 174 bytes .../.hg/store/data/_tests/_simple_install/foo.c.i | Bin 0 -> 125 bytes .../.hg/store/data/_tests/_simple_install/foo.h.i | Bin 0 -> 154 bytes .../store/data/_tests/_simple_install/inst.cxx.i | Bin 0 -> 325 bytes .../store/data/_tests/_simple_install/inst2.cxx.i | Bin 0 -> 101 bytes .../store/data/_tests/_simple_install/lib1.cxx.i | Bin 0 -> 119 bytes .../.hg/store/data/_tests/_simple_install/lib1.h.i | Bin 0 -> 90 bytes .../store/data/_tests/_simple_install/lib2.cxx.i | Bin 0 -> 119 bytes .../.hg/store/data/_tests/_simple_install/lib2.h.i | Bin 0 -> 199 bytes .../store/data/_tests/_simple_install/lib3.cxx.i | Bin 0 -> 119 bytes .../.hg/store/data/_tests/_simple_install/lib3.h.i | Bin 0 -> 199 bytes .../store/data/_tests/_simple_install/lib4.cxx.i | Bin 0 -> 120 bytes .../.hg/store/data/_tests/_simple_install/lib4.h.i | Bin 0 -> 200 bytes .../_simple_install/scripts/_c_make_lists.txt.i | Bin 0 -> 129 bytes .../_simple_install/scripts/sample__script.bat.i | Bin 0 -> 92 bytes .../_simple_install/scripts/sample__script.i | Bin 0 -> 103 bytes .../_tests/_simple_install_s2/_c_make_lists.txt.i | Bin 0 -> 4761 bytes .../_simple_install_s2/_install_script1.cmake.i | Bin 0 -> 201 bytes .../_simple_install_s2/_install_script2.cmake.i | Bin 0 -> 308 bytes .../_simple_install_s2/_install_script3.cmake.i | Bin 0 -> 319 bytes .../_simple_install_s2/_install_script4.cmake.i | Bin 0 -> 411 bytes .../_simple_install_s2/_package_script.cmake.i | Bin 0 -> 278 bytes .../_simple_install_s2/_post_install.cmake.i | Bin 0 -> 194 bytes .../_tests/_simple_install_s2/_pre_install.cmake.i | Bin 0 -> 126 bytes .../_test_sub_dir/_c_make_lists.txt.i | Bin 0 -> 159 bytes .../_simple_install_s2/_test_sub_dir/_t_s_d.cxx.i | Bin 0 -> 174 bytes .../_simple_install_s2/_test_sub_dir/_t_s_d.h.i | Bin 0 -> 87 bytes .../_test_sub_dir/_t_s_d__utils.cxx.i | Bin 0 -> 174 bytes .../store/data/_tests/_simple_install_s2/foo.c.i | Bin 0 -> 125 bytes .../store/data/_tests/_simple_install_s2/foo.h.i | Bin 0 -> 154 bytes .../data/_tests/_simple_install_s2/inst.cxx.i | Bin 0 -> 325 bytes .../data/_tests/_simple_install_s2/inst2.cxx.i | Bin 0 -> 101 bytes .../data/_tests/_simple_install_s2/lib1.cxx.i | Bin 0 -> 119 bytes .../store/data/_tests/_simple_install_s2/lib1.h.i | Bin 0 -> 90 bytes .../data/_tests/_simple_install_s2/lib2.cxx.i | Bin 0 -> 119 bytes .../store/data/_tests/_simple_install_s2/lib2.h.i | Bin 0 -> 199 bytes .../data/_tests/_simple_install_s2/lib3.cxx.i | Bin 0 -> 119 bytes .../store/data/_tests/_simple_install_s2/lib3.h.i | Bin 0 -> 199 bytes .../data/_tests/_simple_install_s2/lib4.cxx.i | Bin 0 -> 120 bytes .../store/data/_tests/_simple_install_s2/lib4.h.i | Bin 0 -> 200 bytes .../_simple_install_s2/scripts/_c_make_lists.txt.i | Bin 0 -> 129 bytes .../scripts/sample__script.bat.i | Bin 0 -> 92 bytes .../_simple_install_s2/scripts/sample__script.i | Bin 0 -> 103 bytes .../data/_tests/_source_groups/_c_make_lists.txt.i | Bin 0 -> 647 bytes .../.hg/store/data/_tests/_source_groups/bar.c.i | Bin 0 -> 98 bytes .../.hg/store/data/_tests/_source_groups/baz.c.i | Bin 0 -> 96 bytes .../.hg/store/data/_tests/_source_groups/foo.c.i | Bin 0 -> 96 bytes .../.hg/store/data/_tests/_source_groups/main.c.i | Bin 0 -> 207 bytes .../store/data/_tests/_source_groups/sub1/foo.c.i | Bin 0 -> 96 bytes .../data/_tests/_source_groups/sub1/foobar.c.i | Bin 0 -> 101 bytes .../_tests/_string_file_test/_c_make_lists.txt.i | Bin 0 -> 2617 bytes .../_tests/_string_file_test/_input_file.h.in.i | Bin 0 -> 489 bytes .../_tests/_string_file_test/_string_file.cxx.i | Bin 0 -> 408 bytes .../store/data/_tests/_string_file_test/main.ihx.i | Bin 0 -> 319 bytes .../data/_tests/_string_file_test/main.srec.i | Bin 0 -> 314 bytes .../_sub_dir/_another_subdir/pair+int.int.c.i | Bin 0 -> 168 bytes .../_sub_dir/_another_subdir/pair__int.int.c.i | Bin 0 -> 168 bytes .../_tests/_sub_dir/_another_subdir/secondone.c.i | Bin 0 -> 133 bytes .../_sub_dir/_another_subdir/testfromsubdir.c.i | Bin 0 -> 193 bytes .../store/data/_tests/_sub_dir/_c_make_lists.txt.i | Bin 0 -> 546 bytes .../_tests/_sub_dir/_examples/_c_make_lists.txt.i | Bin 0 -> 107 bytes .../_examples/example1/_c_make_lists.txt.i | Bin 0 -> 260 bytes .../_sub_dir/_examples/example1/example1.cxx.i | Bin 0 -> 136 bytes .../_examples/example2/_c_make_lists.txt.i | Bin 0 -> 114 bytes .../_sub_dir/_examples/example2/example2.cxx.i | Bin 0 -> 136 bytes .../_sub_dir/_executable/_c_make_lists.txt.i | Bin 0 -> 95 bytes .../data/_tests/_sub_dir/_executable/test.cxx.i | Bin 0 -> 431 bytes .../_sub_dir/_third_sub_dir/pair+int.int1.c.i | Bin 0 -> 168 bytes .../_sub_dir/_third_sub_dir/pair__int.int1.c.i | Bin 0 -> 168 bytes .../_sub_dir/_third_sub_dir/pair__p__int.int1.c.i | Bin 0 -> 173 bytes .../_sub_dir/_third_sub_dir/testfromauxsubdir.c.i | Bin 0 -> 197 bytes .../_tests/_sub_dir/_third_sub_dir/thirdone.c.i | Bin 0 -> 133 bytes .../vcl__algorithm+vcl__pair+double.foo.c.i | Bin 0 -> 162 bytes .../vcl__algorithm__vcl__pair__double.foo.c.i | Bin 0 -> 162 bytes .../_another _subdir/pair+int.int.c.i | Bin 0 -> 168 bytes .../_another _subdir/pair__int.int.c.i | Bin 0 -> 168 bytes .../_sub_dir_spaces/_another _subdir/secondone.c.i | Bin 0 -> 133 bytes .../_another _subdir/testfromsubdir.c.i | Bin 0 -> 193 bytes .../_tests/_sub_dir_spaces/_c_make_lists.txt.i | Bin 0 -> 810 bytes .../_executable _sources/_c_make_lists.txt.i | Bin 0 -> 95 bytes .../_executable _sources/test.cxx.i | Bin 0 -> 431 bytes .../_executable/_c_make_lists.txt.i | Bin 0 -> 95 bytes .../_tests/_sub_dir_spaces/_executable/test.cxx.i | Bin 0 -> 431 bytes .../_some _examples/_c_make_lists.txt.i | Bin 0 -> 107 bytes .../_some _examples/example1/_c_make_lists.txt.i | Bin 0 -> 260 bytes .../_some _examples/example1/example1.cxx.i | Bin 0 -> 136 bytes .../_some _examples/example2/_c_make_lists.txt.i | Bin 0 -> 114 bytes .../_some _examples/example2/example2.cxx.i | Bin 0 -> 136 bytes .../_some(x86) _sources/_c_make_lists.txt.i | Bin 0 -> 97 bytes .../_sub_dir_spaces/_some(x86) _sources/test.c.i | Bin 0 -> 84 bytes .../_third_sub_dir/pair+int.int1.c.i | Bin 0 -> 168 bytes .../_third_sub_dir/pair__int.int1.c.i | Bin 0 -> 168 bytes .../_third_sub_dir/pair__p__int.int1.c.i | Bin 0 -> 173 bytes .../_third_sub_dir/testfromauxsubdir.c.i | Bin 0 -> 235 bytes .../_sub_dir_spaces/_third_sub_dir/thirdone.c.i | Bin 0 -> 133 bytes .../vcl__algorithm+vcl__pair+double.foo.c.i | Bin 0 -> 162 bytes .../vcl__algorithm__vcl__pair__double.foo.c.i | Bin 0 -> 162 bytes .../data/_tests/_sub_project/_c_make_lists.txt.i | Bin 0 -> 186 bytes .../.hg/store/data/_tests/_sub_project/bar.cxx.i | Bin 0 -> 92 bytes .../.hg/store/data/_tests/_sub_project/car.cxx.i | Bin 0 -> 128 bytes .../_tests/_sub_project/foo/_c_make_lists.txt.i | Bin 0 -> 136 bytes .../store/data/_tests/_sub_project/foo/foo.cxx.i | Bin 0 -> 203 bytes .../data/_tests/_swig_test/_c_make_lists.txt.i | Bin 0 -> 519 bytes .../.hg/store/data/_tests/_swig_test/example.cxx.i | Bin 0 -> 312 bytes .../.hg/store/data/_tests/_swig_test/example.h.i | Bin 0 -> 308 bytes .../.hg/store/data/_tests/_swig_test/example.i.i | Bin 0 -> 177 bytes .../.hg/store/data/_tests/_swig_test/runme.php4.i | Bin 0 -> 746 bytes .../.hg/store/data/_tests/_swig_test/runme.pike.i | Bin 0 -> 602 bytes .../.hg/store/data/_tests/_swig_test/runme.pl.i | Bin 0 -> 743 bytes .../.hg/store/data/_tests/_swig_test/runme.py.i | Bin 0 -> 568 bytes .../.hg/store/data/_tests/_swig_test/runme.rb.i | Bin 0 -> 662 bytes .../.hg/store/data/_tests/_swig_test/runme.tcl.i | Bin 0 -> 618 bytes .../.hg/store/data/_tests/_swig_test/runme2.tcl.i | Bin 0 -> 862 bytes .../_tests/_system_information/_c_make_lists.txt.i | Bin 0 -> 599 bytes .../_system_information/_dump_information.cxx.i | Bin 0 -> 801 bytes .../_system_information/_dump_information.h.in.i | Bin 0 -> 136 bytes .../_system_information/_system_information.in.i | Bin 0 -> 779 bytes .../data/_tests/_tar_test/_c_make_lists.txt.i | Bin 0 -> 799 bytes .../data/_tests/_tar_test/_test_tar_exec.cxx.i | Bin 0 -> 93 bytes .../data/_tests/_target_name/_c_make_lists.txt.i | Bin 0 -> 130 bytes .../_target_name/executables/_c_make_lists.txt.i | Bin 0 -> 107 bytes .../_target_name/executables/hello__world.c.i | Bin 0 -> 124 bytes .../_target_name/scripts/_c_make_lists.txt.i | Bin 0 -> 258 bytes .../_tests/_target_name/scripts/hello__world.i | Bin 0 -> 95 bytes .../data/_tests/_test_driver/_c_make_lists.txt.i | Bin 0 -> 294 bytes .../data/_tests/_test_driver/subdir/test3.cxx.i | Bin 0 -> 199 bytes .../.hg/store/data/_tests/_test_driver/test1.cxx.i | Bin 0 -> 247 bytes .../.hg/store/data/_tests/_test_driver/test2.cxx.i | Bin 0 -> 194 bytes .../store/data/_tests/_test_driver/test_args.h.i | Bin 0 -> 264 bytes .../_tests/_test_driver/test_extra_stuff.cxx.i | Bin 0 -> 102 bytes .../_tests/_test_driver/test_extra_stuff2.cxx.i | Bin 0 -> 103 bytes .../_tests/_test_driver/test_extra_stuff3.cxx.i | Bin 0 -> 103 bytes .../.hg/store/data/_tests/_test_install.sh.in.i | Bin 0 -> 480 bytes .../store/data/_tests/_testing/_c_make_lists.txt.i | Bin 0 -> 520 bytes .../data/_tests/_testing/_dart_config.cmake.i | Bin 0 -> 414 bytes .../_tests/_testing/_sub/_sub2/_c_make_lists.txt.i | Bin 0 -> 149 bytes .../data/_tests/_testing/_sub/_sub2/testing2.cxx.i | Bin 0 -> 93 bytes .../.hg/store/data/_tests/_testing/testing.cxx.i | Bin 0 -> 93 bytes .../data/_tests/_try_compile/_c_make_lists.txt.i | Bin 0 -> 1563 bytes .../data/_tests/_try_compile/exit__success.c.i | Bin 0 -> 139 bytes .../data/_tests/_try_compile/exit__with__error.c.i | Bin 0 -> 140 bytes .../.hg/store/data/_tests/_try_compile/fail.c.i | Bin 0 -> 78 bytes .../.hg/store/data/_tests/_try_compile/pass.c.i | Bin 0 -> 98 bytes .../_tests/_tutorial/_step1/_c_make_lists.txt.i | Bin 0 -> 348 bytes .../_tutorial/_step1/_tutorial_config.h.in.i | Bin 0 -> 163 bytes .../data/_tests/_tutorial/_step1/tutorial.cxx.i | Bin 0 -> 373 bytes .../_tests/_tutorial/_step2/_c_make_lists.txt.i | Bin 0 -> 497 bytes .../_step2/_math_functions/_c_make_lists.txt.i | Bin 0 -> 103 bytes .../_step2/_math_functions/_math_functions.h.i | Bin 0 -> 90 bytes .../_tutorial/_step2/_math_functions/mysqrt.cxx.i | Bin 0 -> 353 bytes .../_tutorial/_step2/_tutorial_config.h.in.i | Bin 0 -> 181 bytes .../data/_tests/_tutorial/_step2/tutorial.cxx.i | Bin 0 -> 423 bytes .../_tests/_tutorial/_step3/_c_make_lists.txt.i | Bin 0 -> 773 bytes .../_step3/_math_functions/_c_make_lists.txt.i | Bin 0 -> 167 bytes .../_step3/_math_functions/_math_functions.h.i | Bin 0 -> 90 bytes .../_tutorial/_step3/_math_functions/mysqrt.cxx.i | Bin 0 -> 353 bytes .../_tutorial/_step3/_tutorial_config.h.in.i | Bin 0 -> 181 bytes .../data/_tests/_tutorial/_step3/tutorial.cxx.i | Bin 0 -> 423 bytes .../_tests/_tutorial/_step4/_c_make_lists.txt.i | Bin 0 -> 890 bytes .../_step4/_math_functions/_c_make_lists.txt.i | Bin 0 -> 167 bytes .../_step4/_math_functions/_math_functions.h.i | Bin 0 -> 90 bytes .../_tutorial/_step4/_math_functions/mysqrt.cxx.i | Bin 0 -> 471 bytes .../_tutorial/_step4/_tutorial_config.h.in.i | Bin 0 -> 230 bytes .../data/_tests/_tutorial/_step4/tutorial.cxx.i | Bin 0 -> 423 bytes .../_tests/_tutorial/_step5/_c_make_lists.txt.i | Bin 0 -> 926 bytes .../_step5/_math_functions/_c_make_lists.txt.i | Bin 0 -> 438 bytes .../_step5/_math_functions/_make_table.cxx.i | Bin 0 -> 423 bytes .../_step5/_math_functions/_math_functions.h.i | Bin 0 -> 90 bytes .../_tutorial/_step5/_math_functions/mysqrt.cxx.i | Bin 0 -> 485 bytes .../_tutorial/_step5/_tutorial_config.h.in.i | Bin 0 -> 230 bytes .../data/_tests/_tutorial/_step5/tutorial.cxx.i | Bin 0 -> 423 bytes .../_tests/_tutorial/_step6/_c_make_lists.txt.i | Bin 0 -> 1039 bytes .../data/_tests/_tutorial/_step6/_license.txt.i | Bin 0 -> 150 bytes .../_step6/_math_functions/_c_make_lists.txt.i | Bin 0 -> 438 bytes .../_step6/_math_functions/_make_table.cxx.i | Bin 0 -> 423 bytes .../_step6/_math_functions/_math_functions.h.i | Bin 0 -> 90 bytes .../_tutorial/_step6/_math_functions/mysqrt.cxx.i | Bin 0 -> 485 bytes .../_tutorial/_step6/_tutorial_config.h.in.i | Bin 0 -> 230 bytes .../data/_tests/_tutorial/_step6/tutorial.cxx.i | Bin 0 -> 423 bytes .../_tests/_tutorial/_step7/_c_make_lists.txt.i | Bin 0 -> 1296 bytes .../_tests/_tutorial/_step7/_c_test_config.cmake.i | Bin 0 -> 201 bytes .../data/_tests/_tutorial/_step7/_license.txt.i | Bin 0 -> 150 bytes .../_step7/_math_functions/_c_make_lists.txt.i | Bin 0 -> 438 bytes .../_step7/_math_functions/_make_table.cxx.i | Bin 0 -> 423 bytes .../_step7/_math_functions/_math_functions.h.i | Bin 0 -> 90 bytes .../_tutorial/_step7/_math_functions/mysqrt.cxx.i | Bin 0 -> 485 bytes .../_tutorial/_step7/_tutorial_config.h.in.i | Bin 0 -> 230 bytes .../data/_tests/_tutorial/_step7/build1.cmake.i | Bin 0 -> 226 bytes .../data/_tests/_tutorial/_step7/build2.cmake.i | Bin 0 -> 278 bytes .../data/_tests/_tutorial/_step7/tutorial.cxx.i | Bin 0 -> 423 bytes .../store/data/_tests/_use_w_x/_c_make_lists.txt.i | Bin 0 -> 205 bytes CMakeLua/.hg/store/data/_tests/_use_w_x/_w_x.cxx.i | Bin 0 -> 770 bytes .../_v_s_external_include/_c_make_lists.txt.i | Bin 0 -> 539 bytes .../_lib1/_c_make_lists.txt.i | Bin 0 -> 129 bytes .../_tests/_v_s_external_include/_lib1/lib1.cpp.i | Bin 0 -> 125 bytes .../_tests/_v_s_external_include/_lib1/lib1.h.i | Bin 0 -> 124 bytes .../_lib2/_c_make_lists.txt.i | Bin 0 -> 177 bytes .../_tests/_v_s_external_include/_lib2/lib2.cpp.i | Bin 0 -> 156 bytes .../_tests/_v_s_external_include/_lib2/lib2.h.i | Bin 0 -> 151 bytes .../data/_tests/_v_s_external_include/main.cpp.i | Bin 0 -> 161 bytes .../data/_tests/_wrapping/_c_make_lists.txt.i | Bin 0 -> 1136 bytes CMakeLua/.hg/store/data/_tests/_wrapping/_wrap.c.i | Bin 0 -> 305 bytes CMakeLua/.hg/store/data/_tests/_wrapping/dummy.i | Bin 0 -> 64 bytes .../store/data/_tests/_wrapping/fakefluid.cxx.i | Bin 0 -> 299 bytes .../.hg/store/data/_tests/_wrapping/fltk1.fl.i | Bin 0 -> 64 bytes .../.hg/store/data/_tests/_wrapping/foo.ui.in.i | Bin 0 -> 402 bytes CMakeLua/.hg/store/data/_tests/_wrapping/hints.i | Bin 0 -> 64 bytes .../data/_tests/_wrapping/itk_wrapper_config.cxx.i | Bin 0 -> 64 bytes .../store/data/_tests/_wrapping/qtnoqtmain.cxx.i | Bin 0 -> 112 bytes .../store/data/_tests/_wrapping/qtwrapping.ui.i | Bin 0 -> 398 bytes .../data/_tests/_wrapping/qtwrappingmain.cxx.i | Bin 0 -> 390 bytes .../store/data/_tests/_wrapping/vtk_excluded.cxx.i | Bin 0 -> 64 bytes .../store/data/_tests/_wrapping/vtk_excluded.h.i | Bin 0 -> 97 bytes .../store/data/_tests/_wrapping/vtk_included.cxx.i | Bin 0 -> 64 bytes .../store/data/_tests/_wrapping/vtk_included.h.i | Bin 0 -> 112 bytes .../store/data/_tests/_wrapping/vtk_test_moc.h.i | Bin 0 -> 148 bytes .../.hg/store/data/_tests/_wrapping/wrapping.cxx.i | Bin 0 -> 93 bytes .../.hg/store/data/_tests/_x11/_c_make_lists.txt.i | Bin 0 -> 461 bytes CMakeLua/.hg/store/data/_tests/_x11/_x11.c.i | Bin 0 -> 215 bytes .../.hg/store/data/_utilities/._no_dart_coverage.i | Bin 0 -> 104 bytes .../.hg/store/data/_utilities/_c_make_lists.txt.i | Bin 0 -> 840 bytes .../data/_utilities/_doxygen/_c_make_lists.txt.i | Bin 0 -> 381 bytes .../store/data/_utilities/_doxygen/authors.txt.i | Bin 0 -> 491 bytes .../data/_utilities/_doxygen/doc__makeall.sh.in.i | Bin 0 -> 2801 bytes .../store/data/_utilities/_doxygen/doxyfile.in.i | Bin 0 -> 863 bytes .../_utilities/_k_w_style/_c_make.kws.xml.in.i | Bin 0 -> 256 bytes .../_utilities/_k_w_style/_c_make_files.txt.in.i | Bin 0 -> 192 bytes .../data/_utilities/_k_w_style/_c_make_lists.txt.i | Bin 0 -> 710 bytes .../_k_w_style/_c_make_more_checks.kws.xml.in.i | Bin 0 -> 461 bytes .../_utilities/_k_w_style/_c_make_overwrite.txt.i | Bin 0 -> 64 bytes .../_k_w_style/_headers/_c_make_header.h.i | Bin 0 -> 466 bytes .../data/_utilities/_release/_c_make_install.bmp.i | Bin 0 -> 11690 bytes .../data/_utilities/_release/_c_make_logo.ico.i | Bin 0 -> 3105 bytes .../_release/_cygwin/_c_make_lists.txt.i | Bin 0 -> 526 bytes .../_release/_cygwin/_r_e_a_d_m_e.cygwin.in.i | Bin 0 -> 626 bytes .../_release/_cygwin/cygwin-package.sh.in.i | Bin 0 -> 683 bytes .../_release/_cygwin/cygwin-patch.diff.in.i | Bin 0 -> 64 bytes .../_release/_cygwin/cygwin-setup.hint.in.i | Bin 0 -> 378 bytes .../store/data/_utilities/_release/_r_e_a_d_m_e.i | Bin 0 -> 382 bytes .../_release/create-cmake-release.cmake.i | Bin 0 -> 585 bytes .../_release/dashmacmini2__release.cmake.i | Bin 0 -> 378 bytes .../_utilities/_release/dashsgi1__release.cmake.i | Bin 0 -> 352 bytes .../_release/dashsgi1__release64.cmake.i | Bin 0 -> 381 bytes .../_utilities/_release/dashsun1__release.cmake.i | Bin 0 -> 477 bytes .../_utilities/_release/destiny__release.cmake.i | Bin 0 -> 416 bytes .../_utilities/_release/hythloth__release.cmake.i | Bin 0 -> 283 bytes .../_utilities/_release/magrathea__release.cmake.i | Bin 0 -> 352 bytes .../data/_utilities/_release/muse__release.cmake.i | Bin 0 -> 327 bytes .../_utilities/_release/muse__release64.cmake.i | Bin 0 -> 363 bytes .../_release/r15n65__aix__release.cmake.i | Bin 0 -> 453 bytes .../_release/r36n11__aix__release.cmake.i | Bin 0 -> 452 bytes .../_utilities/_release/release__cmake.cmake.i | Bin 0 -> 1607 bytes .../_utilities/_release/release__cmake.sh.in.i | Bin 0 -> 1063 bytes .../_utilities/_release/upload__release.cmake.i | Bin 0 -> 463 bytes .../_release/v60n177__aix__release.cmake.i | Bin 0 -> 449 bytes .../data/_utilities/_release/vogon__cygwin.cmake.i | Bin 0 -> 326 bytes .../_utilities/_release/vogon__release.cmake.i | Bin 0 -> 432 bytes CMakeLua/.hg/store/data/_utilities/cm__curl.h.i | Bin 0 -> 579 bytes CMakeLua/.hg/store/data/_utilities/cm__expat.h.i | Bin 0 -> 580 bytes CMakeLua/.hg/store/data/_utilities/cm__xmlrpc.h.i | Bin 0 -> 595 bytes CMakeLua/.hg/store/data/_utilities/cm__zlib.h.i | Bin 0 -> 579 bytes .../store/data/_utilities/cm_third_party.h.in.i | Bin 0 -> 576 bytes .../data/_utilities/cmcompress/_c_make_lists.txt.i | Bin 0 -> 116 bytes .../data/_utilities/cmcompress/cmcompress.c.i | Bin 0 -> 5216 bytes .../data/_utilities/cmcompress/cmcompress.h.i | Bin 0 -> 2350 bytes .../_utilities/cmcompress/compress.c.original.i | Bin 0 -> 11666 bytes .../cmcurl/_c_make/_c_make_configurable_file.in.i | Bin 0 -> 100 bytes .../_c_make/_check_c_source_compiles.cmake.i | Bin 0 -> 1131 bytes .../cmcurl/_c_make/_check_c_source_runs.cmake.i | Bin 0 -> 1249 bytes .../cmcurl/_c_make/_check_type_size.c.in.i | Bin 0 -> 360 bytes .../cmcurl/_c_make/_check_type_size.cmake.i | Bin 0 -> 846 bytes .../data/_utilities/cmcurl/_c_make/_curl_tests.c.i | Bin 0 -> 1935 bytes .../_utilities/cmcurl/_c_make/_other_tests.cmake.i | Bin 0 -> 2231 bytes .../data/_utilities/cmcurl/_c_make_lists.txt.i | Bin 0 -> 5881 bytes .../cmcurl/_platforms/_windows_cache.cmake.i | Bin 0 -> 787 bytes .../_utilities/cmcurl/_platforms/config-aix.h.i | Bin 0 -> 2750 bytes .../_utilities/cmcurl/_testing/_c_make_lists.txt.i | Bin 0 -> 306 bytes .../data/_utilities/cmcurl/_testing/curlgtk.c.i | Bin 0 -> 1106 bytes .../data/_utilities/cmcurl/_testing/curltest.c.i | Bin 0 -> 1010 bytes .../data/_utilities/cmcurl/_testing/ftpget.c.i | Bin 0 -> 1107 bytes .../data/_utilities/cmcurl/_testing/ftpgetresp.c.i | Bin 0 -> 870 bytes .../data/_utilities/cmcurl/_testing/ftpupload.c.i | Bin 0 -> 1210 bytes .../_utilities/cmcurl/_testing/getinmemory.c.i | Bin 0 -> 1051 bytes .../data/_utilities/cmcurl/_testing/http-post.c.i | Bin 0 -> 552 bytes .../data/_utilities/cmcurl/_testing/httpput.c.i | Bin 0 -> 1171 bytes .../_utilities/cmcurl/_testing/multithread.c.i | Bin 0 -> 778 bytes .../data/_utilities/cmcurl/_testing/persistant.c.i | Bin 0 -> 756 bytes .../data/_utilities/cmcurl/_testing/postit2.c.i | Bin 0 -> 1250 bytes .../data/_utilities/cmcurl/_testing/sepheaders.c.i | Bin 0 -> 891 bytes .../data/_utilities/cmcurl/_testing/simple.c.i | Bin 0 -> 420 bytes .../data/_utilities/cmcurl/_testing/simplessl.c.i | Bin 0 -> 1465 bytes .../_utilities/cmcurl/_testing/testconfig.h.in.i | Bin 0 -> 163 bytes .../_utilities/cmcurl/_testing/win32sockets.c.i | Bin 0 -> 637 bytes .../.hg/store/data/_utilities/cmcurl/amigaos.c.i | Bin 0 -> 993 bytes .../.hg/store/data/_utilities/cmcurl/amigaos.h.i | Bin 0 -> 865 bytes .../store/data/_utilities/cmcurl/arpa__telnet.h.i | Bin 0 -> 1633 bytes .../.hg/store/data/_utilities/cmcurl/base64.c.i | Bin 0 -> 3460 bytes .../.hg/store/data/_utilities/cmcurl/base64.h.i | Bin 0 -> 680 bytes .../.hg/store/data/_utilities/cmcurl/ca-bundle.h.i | Bin 0 -> 97 bytes .../.hg/store/data/_utilities/cmcurl/config.h.in.i | Bin 0 -> 4731 bytes .../.hg/store/data/_utilities/cmcurl/connect.c.i | Bin 0 -> 7975 bytes .../.hg/store/data/_utilities/cmcurl/connect.h.i | Bin 0 -> 875 bytes .../data/_utilities/cmcurl/content__encoding.c.i | Bin 0 -> 3999 bytes .../data/_utilities/cmcurl/content__encoding.h.i | Bin 0 -> 788 bytes .../.hg/store/data/_utilities/cmcurl/cookie.c.i | Bin 0 -> 8762 bytes .../.hg/store/data/_utilities/cmcurl/cookie.h.i | Bin 0 -> 1609 bytes .../store/data/_utilities/cmcurl/curl.copyright.i | Bin 0 -> 787 bytes .../.hg/store/data/_utilities/cmcurl/curl/curl.h.i | Bin 0 -> 18248 bytes .../store/data/_utilities/cmcurl/curl/curlver.h.i | Bin 0 -> 1136 bytes .../.hg/store/data/_utilities/cmcurl/curl/easy.h.i | Bin 0 -> 1324 bytes .../store/data/_utilities/cmcurl/curl/mprintf.h.i | Bin 0 -> 1173 bytes .../store/data/_utilities/cmcurl/curl/multi.h.i | Bin 0 -> 4013 bytes .../data/_utilities/cmcurl/curl/stdcheaders.h.i | Bin 0 -> 694 bytes .../store/data/_utilities/cmcurl/curl/types.h.i | Bin 0 -> 80 bytes .../.hg/store/data/_utilities/cmcurl/curlx.h.i | Bin 0 -> 1394 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/dict.c.i | Bin 0 -> 2229 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/dict.h.i | Bin 0 -> 656 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/easy.c.i | Bin 0 -> 6985 bytes .../.hg/store/data/_utilities/cmcurl/easyif.h.i | Bin 0 -> 765 bytes .../.hg/store/data/_utilities/cmcurl/escape.c.i | Bin 0 -> 1923 bytes .../.hg/store/data/_utilities/cmcurl/escape.h.i | Bin 0 -> 670 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/file.c.i | Bin 0 -> 4158 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/file.h.i | Bin 0 -> 668 bytes .../.hg/store/data/_utilities/cmcurl/formdata.c.i | Bin 0 -> 12302 bytes .../.hg/store/data/_utilities/cmcurl/formdata.h.i | Bin 0 -> 1386 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.c.i | Bin 0 -> 29555 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.h.i | Bin 0 -> 816 bytes .../.hg/store/data/_utilities/cmcurl/getenv.c.i | Bin 0 -> 933 bytes .../.hg/store/data/_utilities/cmcurl/getinfo.c.i | Bin 0 -> 2299 bytes .../.hg/store/data/_utilities/cmcurl/getinfo.h.i | Bin 0 -> 656 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.c.i | Bin 0 -> 6428 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.h.i | Bin 0 -> 954 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/hash.c.i | Bin 0 -> 2404 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/hash.h.i | Bin 0 -> 882 bytes .../.hg/store/data/_utilities/cmcurl/hostares.c.i | Bin 0 -> 3315 bytes .../.hg/store/data/_utilities/cmcurl/hostasyn.c.i | Bin 0 -> 1919 bytes .../.hg/store/data/_utilities/cmcurl/hostip.c.i | Bin 0 -> 5910 bytes .../.hg/store/data/_utilities/cmcurl/hostip.h.i | Bin 0 -> 3276 bytes .../.hg/store/data/_utilities/cmcurl/hostip4.c.i | Bin 0 -> 4768 bytes .../.hg/store/data/_utilities/cmcurl/hostip6.c.i | Bin 0 -> 3177 bytes .../.hg/store/data/_utilities/cmcurl/hostsyn.c.i | Bin 0 -> 1468 bytes .../.hg/store/data/_utilities/cmcurl/hostthre.c.i | Bin 0 -> 6851 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/http.c.i | Bin 0 -> 20481 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/http.h.i | Bin 0 -> 1562 bytes .../store/data/_utilities/cmcurl/http__chunks.c.i | Bin 0 -> 3836 bytes .../store/data/_utilities/cmcurl/http__chunks.h.i | Bin 0 -> 1647 bytes .../store/data/_utilities/cmcurl/http__digest.c.i | Bin 0 -> 4433 bytes .../store/data/_utilities/cmcurl/http__digest.h.i | Bin 0 -> 986 bytes .../data/_utilities/cmcurl/http__negotiate.c.i | Bin 0 -> 3085 bytes .../data/_utilities/cmcurl/http__negotiate.h.i | Bin 0 -> 741 bytes .../store/data/_utilities/cmcurl/http__ntlm.c.i | Bin 0 -> 8838 bytes .../store/data/_utilities/cmcurl/http__ntlm.h.i | Bin 0 -> 1854 bytes .../.hg/store/data/_utilities/cmcurl/if2ip.c.i | Bin 0 -> 1431 bytes .../.hg/store/data/_utilities/cmcurl/if2ip.h.i | Bin 0 -> 1057 bytes .../store/data/_utilities/cmcurl/inet__ntoa__r.h.i | Bin 0 -> 824 bytes .../store/data/_utilities/cmcurl/inet__ntop.c.i | Bin 0 -> 2464 bytes .../store/data/_utilities/cmcurl/inet__ntop.h.i | Bin 0 -> 711 bytes .../store/data/_utilities/cmcurl/inet__pton.c.i | Bin 0 -> 2417 bytes .../store/data/_utilities/cmcurl/inet__pton.h.i | Bin 0 -> 730 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/krb4.c.i | Bin 0 -> 3995 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/krb4.h.i | Bin 0 -> 1026 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/ldap.c.i | Bin 0 -> 5558 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/ldap.h.i | Bin 0 -> 656 bytes .../.hg/store/data/_utilities/cmcurl/llist.c.i | Bin 0 -> 1157 bytes .../.hg/store/data/_utilities/cmcurl/llist.h.i | Bin 0 -> 813 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/md5.c.i | Bin 0 -> 3983 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/md5.h.i | Bin 0 -> 640 bytes .../.hg/store/data/_utilities/cmcurl/memdebug.c.i | Bin 0 -> 2572 bytes .../.hg/store/data/_utilities/cmcurl/memdebug.h.i | Bin 0 -> 1621 bytes .../.hg/store/data/_utilities/cmcurl/memory.h.i | Bin 0 -> 852 bytes .../.hg/store/data/_utilities/cmcurl/mprintf.c.i | Bin 0 -> 7995 bytes .../.hg/store/data/_utilities/cmcurl/multi.c.i | Bin 0 -> 15938 bytes .../.hg/store/data/_utilities/cmcurl/multiif.h.i | Bin 0 -> 881 bytes .../.hg/store/data/_utilities/cmcurl/netrc.c.i | Bin 0 -> 2455 bytes .../.hg/store/data/_utilities/cmcurl/netrc.h.i | Bin 0 -> 736 bytes .../.hg/store/data/_utilities/cmcurl/nwlib.c.i | Bin 0 -> 3112 bytes .../.hg/store/data/_utilities/cmcurl/parsedate.c.i | Bin 0 -> 4233 bytes .../.hg/store/data/_utilities/cmcurl/parsedate.h.i | Bin 0 -> 640 bytes .../.hg/store/data/_utilities/cmcurl/progress.c.i | Bin 0 -> 4566 bytes .../.hg/store/data/_utilities/cmcurl/progress.h.i | Bin 0 -> 1047 bytes .../.hg/store/data/_utilities/cmcurl/security.c.i | Bin 0 -> 3919 bytes .../.hg/store/data/_utilities/cmcurl/select.c.i | Bin 0 -> 2602 bytes .../.hg/store/data/_utilities/cmcurl/select.h.i | Bin 0 -> 883 bytes .../.hg/store/data/_utilities/cmcurl/sendf.c.i | Bin 0 -> 6108 bytes .../.hg/store/data/_utilities/cmcurl/sendf.h.i | Bin 0 -> 1171 bytes .../.hg/store/data/_utilities/cmcurl/setup.h.i | Bin 0 -> 3629 bytes .../store/data/_utilities/cmcurl/setup__once.h.i | Bin 0 -> 1638 bytes .../.hg/store/data/_utilities/cmcurl/share.c.i | Bin 0 -> 1714 bytes .../.hg/store/data/_utilities/cmcurl/share.h.i | Bin 0 -> 916 bytes .../.hg/store/data/_utilities/cmcurl/sockaddr.h.i | Bin 0 -> 723 bytes .../.hg/store/data/_utilities/cmcurl/socks.c.i | Bin 0 -> 4555 bytes .../.hg/store/data/_utilities/cmcurl/socks.h.i | Bin 0 -> 727 bytes .../store/data/_utilities/cmcurl/speedcheck.c.i | Bin 0 -> 1200 bytes .../store/data/_utilities/cmcurl/speedcheck.h.i | Bin 0 -> 691 bytes .../.hg/store/data/_utilities/cmcurl/splay.c.i | Bin 0 -> 3389 bytes .../.hg/store/data/_utilities/cmcurl/splay.h.i | Bin 0 -> 877 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/ssh.c.i | Bin 0 -> 7589 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/ssh.h.i | Bin 0 -> 765 bytes .../.hg/store/data/_utilities/cmcurl/sslgen.c.i | Bin 0 -> 4501 bytes .../.hg/store/data/_utilities/cmcurl/sslgen.h.i | Bin 0 -> 1274 bytes .../.hg/store/data/_utilities/cmcurl/ssluse.c.i | Bin 0 -> 16912 bytes .../.hg/store/data/_utilities/cmcurl/ssluse.h.i | Bin 0 -> 1168 bytes .../.hg/store/data/_utilities/cmcurl/strdup.c.i | Bin 0 -> 726 bytes .../.hg/store/data/_utilities/cmcurl/strdup.h.i | Bin 0 -> 653 bytes .../.hg/store/data/_utilities/cmcurl/strequal.c.i | Bin 0 -> 1626 bytes .../.hg/store/data/_utilities/cmcurl/strequal.h.i | Bin 0 -> 825 bytes .../.hg/store/data/_utilities/cmcurl/strerror.c.i | Bin 0 -> 6060 bytes .../.hg/store/data/_utilities/cmcurl/strerror.h.i | Bin 0 -> 678 bytes .../.hg/store/data/_utilities/cmcurl/strtok.c.i | Bin 0 -> 1098 bytes .../.hg/store/data/_utilities/cmcurl/strtok.h.i | Bin 0 -> 689 bytes .../.hg/store/data/_utilities/cmcurl/strtoofft.c.i | Bin 0 -> 1711 bytes .../.hg/store/data/_utilities/cmcurl/strtoofft.h.i | Bin 0 -> 1217 bytes .../.hg/store/data/_utilities/cmcurl/telnet.c.i | Bin 0 -> 8115 bytes .../.hg/store/data/_utilities/cmcurl/telnet.h.i | Bin 0 -> 669 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/tftp.c.i | Bin 0 -> 6007 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/tftp.h.i | Bin 0 -> 670 bytes .../.hg/store/data/_utilities/cmcurl/timeval.c.i | Bin 0 -> 1472 bytes .../.hg/store/data/_utilities/cmcurl/timeval.h.i | Bin 0 -> 1084 bytes .../.hg/store/data/_utilities/cmcurl/transfer.c.i | Bin 0 -> 24785 bytes .../.hg/store/data/_utilities/cmcurl/transfer.h.i | Bin 0 -> 1032 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/url.c.i | Bin 0 -> 35708 bytes CMakeLua/.hg/store/data/_utilities/cmcurl/url.h.i | Bin 0 -> 1168 bytes .../.hg/store/data/_utilities/cmcurl/urldata.h.i | Bin 0 -> 16905 bytes .../.hg/store/data/_utilities/cmcurl/version.c.i | Bin 0 -> 1966 bytes .../data/_utilities/cmexpat/._no_dart_coverage.i | Bin 0 -> 104 bytes .../data/_utilities/cmexpat/_c_make_lists.txt.i | Bin 0 -> 424 bytes .../store/data/_utilities/cmexpat/_c_o_p_y_i_n_g.i | Bin 0 -> 724 bytes .../.hg/store/data/_utilities/cmexpat/ascii.h.i | Bin 0 -> 558 bytes .../.hg/store/data/_utilities/cmexpat/asciitab.h.i | Bin 0 -> 459 bytes .../data/_utilities/cmexpat/cm__expat__mangle.h.i | Bin 0 -> 996 bytes .../.hg/store/data/_utilities/cmexpat/expat.h.i | Bin 0 -> 7720 bytes .../data/_utilities/cmexpat/expat_config.h.in.i | Bin 0 -> 404 bytes .../_utilities/cmexpat/expat_dll_config.h.in.i | Bin 0 -> 137 bytes .../store/data/_utilities/cmexpat/iasciitab.h.i | Bin 0 -> 508 bytes .../store/data/_utilities/cmexpat/latin1tab.h.i | Bin 0 -> 318 bytes .../.hg/store/data/_utilities/cmexpat/nametab.h.i | Bin 0 -> 983 bytes .../.hg/store/data/_utilities/cmexpat/utf8tab.h.i | Bin 0 -> 328 bytes .../.hg/store/data/_utilities/cmexpat/xmlparse.c.i | Bin 0 -> 24665 bytes .../.hg/store/data/_utilities/cmexpat/xmlrole.c.i | Bin 0 -> 3312 bytes .../.hg/store/data/_utilities/cmexpat/xmlrole.h.i | Bin 0 -> 848 bytes .../.hg/store/data/_utilities/cmexpat/xmltok.c.i | Bin 0 -> 8087 bytes .../.hg/store/data/_utilities/cmexpat/xmltok.h.i | Bin 0 -> 2765 bytes .../store/data/_utilities/cmexpat/xmltok__impl.c.i | Bin 0 -> 5680 bytes .../store/data/_utilities/cmexpat/xmltok__impl.h.i | Bin 0 -> 415 bytes .../store/data/_utilities/cmexpat/xmltok__ns.c.i | Bin 0 -> 848 bytes .../data/_utilities/cmtar/_c_make_lists.txt.i | Bin 0 -> 2963 bytes .../data/_utilities/cmtar/_c_o_p_y_r_i_g_h_t.i | Bin 0 -> 967 bytes .../.hg/store/data/_utilities/cmtar/append.c.i | Bin 0 -> 2112 bytes CMakeLua/.hg/store/data/_utilities/cmtar/block.c.i | Bin 0 -> 2051 bytes .../data/_utilities/cmtar/compat/_r_e_a_d_m_e.i | Bin 0 -> 316 bytes .../data/_utilities/cmtar/compat/basename.c.i | Bin 0 -> 1369 bytes .../store/data/_utilities/cmtar/compat/compat.h.i | Bin 0 -> 2487 bytes .../store/data/_utilities/cmtar/compat/dirname.c.i | Bin 0 -> 1377 bytes .../store/data/_utilities/cmtar/compat/fnmatch.c.i | Bin 0 -> 2632 bytes .../_utilities/cmtar/compat/gethostbyname__r.c.i | Bin 0 -> 518 bytes .../data/_utilities/cmtar/compat/gethostname.c.i | Bin 0 -> 732 bytes .../_utilities/cmtar/compat/getservbyname__r.c.i | Bin 0 -> 516 bytes .../store/data/_utilities/cmtar/compat/glob.c.i | Bin 0 -> 7024 bytes .../data/_utilities/cmtar/compat/inet__aton.c.i | Bin 0 -> 391 bytes .../data/_utilities/cmtar/compat/snprintf.c.i | Bin 0 -> 5071 bytes .../store/data/_utilities/cmtar/compat/strdup.c.i | Bin 0 -> 1304 bytes .../store/data/_utilities/cmtar/compat/strlcat.c.i | Bin 0 -> 1419 bytes .../store/data/_utilities/cmtar/compat/strlcpy.c.i | Bin 0 -> 1373 bytes .../store/data/_utilities/cmtar/compat/strmode.c.i | Bin 0 -> 1702 bytes .../store/data/_utilities/cmtar/compat/strrstr.c.i | Bin 0 -> 476 bytes .../store/data/_utilities/cmtar/compat/strsep.c.i | Bin 0 -> 1603 bytes .../.hg/store/data/_utilities/cmtar/config.h.in.i | Bin 0 -> 1499 bytes .../.hg/store/data/_utilities/cmtar/decode.c.i | Bin 0 -> 1049 bytes .../.hg/store/data/_utilities/cmtar/encode.c.i | Bin 0 -> 1929 bytes .../.hg/store/data/_utilities/cmtar/extract.c.i | Bin 0 -> 2997 bytes .../.hg/store/data/_utilities/cmtar/filesystem.c.i | Bin 0 -> 876 bytes .../.hg/store/data/_utilities/cmtar/filesystem.h.i | Bin 0 -> 377 bytes .../.hg/store/data/_utilities/cmtar/handle.c.i | Bin 0 -> 1253 bytes .../.hg/store/data/_utilities/cmtar/internal.h.i | Bin 0 -> 564 bytes .../.hg/store/data/_utilities/cmtar/libtar.c.i | Bin 0 -> 2420 bytes .../.hg/store/data/_utilities/cmtar/libtar.h.i | Bin 0 -> 2690 bytes .../data/_utilities/cmtar/listhash/hash.c.in.i | Bin 0 -> 1905 bytes .../data/_utilities/cmtar/listhash/list.c.in.i | Bin 0 -> 2371 bytes .../data/_utilities/cmtar/listhash/listhash.h.in.i | Bin 0 -> 1530 bytes .../.hg/store/data/_utilities/cmtar/output.c.i | Bin 0 -> 1432 bytes CMakeLua/.hg/store/data/_utilities/cmtar/tar.h.i | Bin 0 -> 1437 bytes CMakeLua/.hg/store/data/_utilities/cmtar/util.c.i | Bin 0 -> 1513 bytes .../.hg/store/data/_utilities/cmtar/wrapper.c.i | Bin 0 -> 1487 bytes .../_c_make/_try_compile_from_source.cmake.i | Bin 0 -> 720 bytes .../data/_utilities/cmxmlrpc/_c_make_lists.txt.i | Bin 0 -> 1427 bytes .../data/_utilities/cmxmlrpc/_xml_rpc_cpp.cpp.i | Bin 0 -> 2808 bytes .../data/_utilities/cmxmlrpc/_xml_rpc_cpp.h.i | Bin 0 -> 4267 bytes .../.hg/store/data/_utilities/cmxmlrpc/bool.h.i | Bin 0 -> 185 bytes .../store/data/_utilities/cmxmlrpc/casprintf.c.i | Bin 0 -> 413 bytes .../store/data/_utilities/cmxmlrpc/casprintf.h.i | Bin 0 -> 367 bytes .../.hg/store/data/_utilities/cmxmlrpc/inline.h.i | Bin 0 -> 270 bytes .../store/data/_utilities/cmxmlrpc/linklist.h.i | Bin 0 -> 1121 bytes .../store/data/_utilities/cmxmlrpc/mallocvar.h.i | Bin 0 -> 929 bytes .../data/_utilities/cmxmlrpc/synch__client.c.i | Bin 0 -> 770 bytes .../data/_utilities/cmxmlrpc/transport__config.h.i | Bin 0 -> 222 bytes .../data/_utilities/cmxmlrpc/win32__pthreads.c.i | Bin 0 -> 1493 bytes .../.hg/store/data/_utilities/cmxmlrpc/xmlrpc.h.i | Bin 0 -> 7428 bytes .../_utilities/cmxmlrpc/xmlrpc__amconfig.h.in.i | Bin 0 -> 561 bytes .../data/_utilities/cmxmlrpc/xmlrpc__array.c.i | Bin 0 -> 2057 bytes .../_utilities/cmxmlrpc/xmlrpc__authcookie.c.i | Bin 0 -> 1388 bytes .../data/_utilities/cmxmlrpc/xmlrpc__base64.c.i | Bin 0 -> 3428 bytes .../store/data/_utilities/cmxmlrpc/xmlrpc__cgi.c.i | Bin 0 -> 3249 bytes .../store/data/_utilities/cmxmlrpc/xmlrpc__cgi.h.i | Bin 0 -> 1435 bytes .../data/_utilities/cmxmlrpc/xmlrpc__client.c.i | Bin 0 -> 6619 bytes .../data/_utilities/cmxmlrpc/xmlrpc__client.h.i | Bin 0 -> 3346 bytes .../_utilities/cmxmlrpc/xmlrpc__client__int.h.i | Bin 0 -> 1647 bytes .../data/_utilities/cmxmlrpc/xmlrpc__config.h.in.i | Bin 0 -> 1119 bytes .../cmxmlrpc/xmlrpc__curl__transport.c.i | Bin 0 -> 5383 bytes .../cmxmlrpc/xmlrpc__curl__transport.h.i | Bin 0 -> 189 bytes .../data/_utilities/cmxmlrpc/xmlrpc__data.c.i | Bin 0 -> 8108 bytes .../data/_utilities/cmxmlrpc/xmlrpc__expat.c.i | Bin 0 -> 3612 bytes .../store/data/_utilities/cmxmlrpc/xmlrpc__int.h.i | Bin 0 -> 1601 bytes .../data/_utilities/cmxmlrpc/xmlrpc__libxml2.c.i | Bin 0 -> 3645 bytes .../data/_utilities/cmxmlrpc/xmlrpc__parse.c.i | Bin 0 -> 6188 bytes .../data/_utilities/cmxmlrpc/xmlrpc__pthreads.h.i | Bin 0 -> 1317 bytes .../data/_utilities/cmxmlrpc/xmlrpc__registry.c.i | Bin 0 -> 5696 bytes .../data/_utilities/cmxmlrpc/xmlrpc__serialize.c.i | Bin 0 -> 4581 bytes .../data/_utilities/cmxmlrpc/xmlrpc__server.h.i | Bin 0 -> 2894 bytes .../_utilities/cmxmlrpc/xmlrpc__server__abyss.c.i | Bin 0 -> 7187 bytes .../_utilities/cmxmlrpc/xmlrpc__server__abyss.h.i | Bin 0 -> 2862 bytes .../cmxmlrpc/xmlrpc__server__abyss__int.h.i | Bin 0 -> 1413 bytes .../data/_utilities/cmxmlrpc/xmlrpc__struct.c.i | Bin 0 -> 4290 bytes .../data/_utilities/cmxmlrpc/xmlrpc__strutil.c.i | Bin 0 -> 673 bytes .../data/_utilities/cmxmlrpc/xmlrpc__support.c.i | Bin 0 -> 3239 bytes .../data/_utilities/cmxmlrpc/xmlrpc__transport.c.i | Bin 0 -> 1954 bytes .../data/_utilities/cmxmlrpc/xmlrpc__transport.h.i | Bin 0 -> 1644 bytes .../data/_utilities/cmxmlrpc/xmlrpc__utf8.c.i | Bin 0 -> 4206 bytes .../data/_utilities/cmxmlrpc/xmlrpc__xmlparser.h.i | Bin 0 -> 1653 bytes .../data/_utilities/cmzlib/._no_dart_coverage.i | Bin 0 -> 104 bytes .../data/_utilities/cmzlib/_c_make_lists.txt.i | Bin 0 -> 589 bytes .../.hg/store/data/_utilities/cmzlib/_change_log.i | Bin 0 -> 16254 bytes CMakeLua/.hg/store/data/_utilities/cmzlib/_f_a_q.i | Bin 0 -> 6156 bytes .../.hg/store/data/_utilities/cmzlib/_i_n_d_e_x.i | Bin 0 -> 660 bytes .../_utilities/cmzlib/_r_e_a_d_m_e._kitware.txt.i | Bin 0 -> 711 bytes .../store/data/_utilities/cmzlib/_r_e_a_d_m_e.i | Bin 0 -> 2714 bytes .../.hg/store/data/_utilities/cmzlib/adler32.c.i | Bin 0 -> 1466 bytes .../data/_utilities/cmzlib/cm__zlib__mangle.h.i | Bin 0 -> 931 bytes .../.hg/store/data/_utilities/cmzlib/compress.c.i | Bin 0 -> 1065 bytes .../.hg/store/data/_utilities/cmzlib/crc32.c.i | Bin 0 -> 4079 bytes .../.hg/store/data/_utilities/cmzlib/crc32.h.i | Bin 0 -> 12574 bytes .../.hg/store/data/_utilities/cmzlib/deflate.c.i | Bin 0 -> 15380 bytes .../.hg/store/data/_utilities/cmzlib/deflate.h.i | Bin 0 -> 4528 bytes CMakeLua/.hg/store/data/_utilities/cmzlib/gzio.c.i | Bin 0 -> 7983 bytes .../.hg/store/data/_utilities/cmzlib/inffast.c.i | Bin 0 -> 3335 bytes .../.hg/store/data/_utilities/cmzlib/inffast.h.i | Bin 0 -> 340 bytes .../.hg/store/data/_utilities/cmzlib/inffixed.h.i | Bin 0 -> 1635 bytes .../.hg/store/data/_utilities/cmzlib/inflate.c.i | Bin 0 -> 11663 bytes .../.hg/store/data/_utilities/cmzlib/inflate.h.i | Bin 0 -> 2053 bytes .../.hg/store/data/_utilities/cmzlib/inftrees.c.i | Bin 0 -> 4494 bytes .../.hg/store/data/_utilities/cmzlib/inftrees.h.i | Bin 0 -> 1112 bytes .../.hg/store/data/_utilities/cmzlib/trees.c.i | Bin 0 -> 12022 bytes .../.hg/store/data/_utilities/cmzlib/trees.h.i | Bin 0 -> 1480 bytes .../.hg/store/data/_utilities/cmzlib/uncompr.c.i | Bin 0 -> 1010 bytes .../.hg/store/data/_utilities/cmzlib/zconf.h.i | Bin 0 -> 3404 bytes .../.hg/store/data/_utilities/cmzlib/zlib.def.i | Bin 0 -> 479 bytes CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.h.i | Bin 0 -> 18409 bytes .../.hg/store/data/_utilities/cmzlib/zlib.rc.i | Bin 0 -> 579 bytes .../data/_utilities/cmzlib/zlib_dll_config.h.in.i | Bin 0 -> 129 bytes .../.hg/store/data/_utilities/cmzlib/zutil.c.i | Bin 0 -> 2675 bytes .../.hg/store/data/_utilities/cmzlib/zutil.h.i | Bin 0 -> 2662 bytes CMakeLua/.hg/store/data/bootstrap.i | Bin 0 -> 10667 bytes CMakeLua/.hg/store/data/cmake.1.i | Bin 0 -> 1703 bytes .../.hg/store/data/cmake__uninstall.cmake.in.i | Bin 0 -> 447 bytes CMakeLua/.hg/store/data/configure.i | Bin 0 -> 169 bytes CMakeLua/.hg/store/data/doxygen.config.i | Bin 0 -> 7361 bytes CMakeLua/.hg/store/undo | Bin 0 -> 106 bytes CMakeLua/.hg/undo.dirstate | Bin 0 -> 105899 bytes CMakeLua/.hgignore | 14 + CMakeLua/CMakeCPack.cmake | 87 + CMakeLua/CMakeCPackOptions.cmake.in | 40 + CMakeLua/CMakeGraphVizOptions.cmake | 1 + CMakeLua/CMakeLists.txt | 478 + CMakeLua/CMakeLogo.gif | Bin 0 -> 4481 bytes CMakeLua/CTestConfig.cmake | 23 + CMakeLua/CTestCustom.cmake.in | 41 + CMakeLua/CTestCustom.ctest.in | 3 + CMakeLua/CVS/Entries | 26 + CMakeLua/CVS/Repository | 1 + CMakeLua/CVS/Root | 1 + CMakeLua/CVS/Tag | 1 + CMakeLua/CVS/Template | 22 + CMakeLua/ChangeLog.txt | 45604 +++++++++++++++++++ CMakeLua/CompileFlags.cmake | 44 + CMakeLua/Copyright.txt | 50 + CMakeLua/DartConfig.cmake | 61 + CMakeLua/DartLocal.conf.in | 121 + CMakeLua/Docs/CVS/Entries | 4 + CMakeLua/Docs/CVS/Repository | 1 + CMakeLua/Docs/CVS/Root | 1 + CMakeLua/Docs/CVS/Tag | 1 + CMakeLua/Docs/CVS/Template | 22 + CMakeLua/Docs/cmake-indent.vim | 93 + CMakeLua/Docs/cmake-mode.el | 221 + CMakeLua/Docs/cmake-syntax.vim | 89 + CMakeLua/Example/CMakeLists.txt | 10 + CMakeLua/Example/CVS/Entries | 3 + CMakeLua/Example/CVS/Repository | 1 + CMakeLua/Example/CVS/Root | 1 + CMakeLua/Example/CVS/Tag | 1 + CMakeLua/Example/CVS/Template | 22 + CMakeLua/Example/Demo/CMakeLists.txt | 12 + CMakeLua/Example/Demo/CVS/Entries | 4 + CMakeLua/Example/Demo/CVS/Repository | 1 + CMakeLua/Example/Demo/CVS/Root | 1 + CMakeLua/Example/Demo/CVS/Tag | 1 + CMakeLua/Example/Demo/CVS/Template | 22 + CMakeLua/Example/Demo/demo.cxx | 10 + CMakeLua/Example/Demo/demo_b.cxx | 3 + CMakeLua/Example/Hello/CMakeLists.txt | 3 + CMakeLua/Example/Hello/CVS/Entries | 4 + CMakeLua/Example/Hello/CVS/Repository | 1 + CMakeLua/Example/Hello/CVS/Root | 1 + CMakeLua/Example/Hello/CVS/Tag | 1 + CMakeLua/Example/Hello/CVS/Template | 22 + CMakeLua/Example/Hello/hello.cxx | 7 + CMakeLua/Example/Hello/hello.h | 11 + CMakeLua/Modules/AddFileDependencies.cmake | 16 + CMakeLua/Modules/CMake.cmake | 4 + CMakeLua/Modules/CMakeASM-ATTInformation.cmake | 4 + CMakeLua/Modules/CMakeASMCompiler.cmake.in | 11 + CMakeLua/Modules/CMakeASMInformation.cmake | 61 + CMakeLua/Modules/CMakeAddNewLanguage.txt | 17 + CMakeLua/Modules/CMakeBackwardCompatibilityC.cmake | 71 + .../Modules/CMakeBackwardCompatibilityCXX.cmake | 40 + CMakeLua/Modules/CMakeBorlandFindMake.cmake | 3 + CMakeLua/Modules/CMakeBuildSettings.cmake.in | 29 + CMakeLua/Modules/CMakeCCompiler.cmake.in | 36 + CMakeLua/Modules/CMakeCCompilerABI.c | 28 + CMakeLua/Modules/CMakeCCompilerId.c | 81 + CMakeLua/Modules/CMakeCInformation.cmake | 173 + CMakeLua/Modules/CMakeCXXCompiler.cmake.in | 36 + CMakeLua/Modules/CMakeCXXCompilerABI.cpp | 24 + CMakeLua/Modules/CMakeCXXCompilerId.cpp | 72 + CMakeLua/Modules/CMakeCXXInformation.cmake | 242 + CMakeLua/Modules/CMakeCommonLanguageInclude.cmake | 94 + CMakeLua/Modules/CMakeCompilerABI.h | 26 + CMakeLua/Modules/CMakeConfigurableFile.in | 2 + CMakeLua/Modules/CMakeDependentOption.cmake | 37 + .../Modules/CMakeDetermineASM-ATTCompiler.cmake | 6 + CMakeLua/Modules/CMakeDetermineASMCompiler.cmake | 78 + CMakeLua/Modules/CMakeDetermineCCompiler.cmake | 137 + CMakeLua/Modules/CMakeDetermineCXXCompiler.cmake | 147 + CMakeLua/Modules/CMakeDetermineCompilerABI.cmake | 49 + CMakeLua/Modules/CMakeDetermineCompilerId.cmake | 223 + .../Modules/CMakeDetermineFortranCompiler.cmake | 139 + CMakeLua/Modules/CMakeDetermineJavaCompiler.cmake | 85 + CMakeLua/Modules/CMakeDetermineRCCompiler.cmake | 48 + CMakeLua/Modules/CMakeDetermineSystem.cmake | 154 + CMakeLua/Modules/CMakeExportBuildSettings.cmake | 12 + CMakeLua/Modules/CMakeFindBinUtils.cmake | 89 + CMakeLua/Modules/CMakeFindFrameworks.cmake | 19 + CMakeLua/Modules/CMakeFindWMake.cmake | 3 + CMakeLua/Modules/CMakeFindXCode.cmake | 6 + CMakeLua/Modules/CMakeForceCompiler.cmake | 62 + CMakeLua/Modules/CMakeFortranCompiler.cmake.in | 29 + CMakeLua/Modules/CMakeFortranCompilerId.F90 | 78 + CMakeLua/Modules/CMakeFortranInformation.cmake | 182 + CMakeLua/Modules/CMakeGenericSystem.cmake | 80 + CMakeLua/Modules/CMakeImportBuildSettings.cmake | 242 + CMakeLua/Modules/CMakeJavaCompiler.cmake.in | 13 + CMakeLua/Modules/CMakeJavaInformation.cmake | 34 + CMakeLua/Modules/CMakeLists.txt | 12 + CMakeLua/Modules/CMakeMSYSFindMake.cmake | 6 + CMakeLua/Modules/CMakeMinGWFindMake.cmake | 10 + CMakeLua/Modules/CMakeNMakeFindMake.cmake | 3 + CMakeLua/Modules/CMakePlatformId.h | 79 + CMakeLua/Modules/CMakePrintSystemInformation.cmake | 33 + CMakeLua/Modules/CMakeRCCompiler.cmake.in | 6 + CMakeLua/Modules/CMakeRCInformation.cmake | 30 + CMakeLua/Modules/CMakeSystem.cmake.in | 15 + .../Modules/CMakeSystemSpecificInformation.cmake | 50 + CMakeLua/Modules/CMakeTestASM-ATTCompiler.cmake | 9 + CMakeLua/Modules/CMakeTestASMCompiler.cmake | 11 + CMakeLua/Modules/CMakeTestCCompiler.cmake | 54 + CMakeLua/Modules/CMakeTestCXXCompiler.cmake | 46 + CMakeLua/Modules/CMakeTestForFreeVC.cxx | 3 + CMakeLua/Modules/CMakeTestFortranCompiler.cmake | 66 + CMakeLua/Modules/CMakeTestGNU.c | 9 + CMakeLua/Modules/CMakeTestJavaCompiler.cmake | 7 + CMakeLua/Modules/CMakeTestNMakeCLVersion.c | 2 + CMakeLua/Modules/CMakeTestRCCompiler.cmake | 10 + CMakeLua/Modules/CMakeUnixFindMake.cmake | 2 + .../Modules/CMakeVS6BackwardCompatibility.cmake | 13 + CMakeLua/Modules/CMakeVS6FindMake.cmake | 10 + CMakeLua/Modules/CMakeVS71FindMake.cmake | 11 + .../Modules/CMakeVS7BackwardCompatibility.cmake | 13 + CMakeLua/Modules/CMakeVS7FindMake.cmake | 10 + CMakeLua/Modules/CMakeVS8FindMake.cmake | 16 + CMakeLua/Modules/CMakeVS9FindMake.cmake | 16 + CMakeLua/Modules/COPYING-CMAKE-SCRIPTS | 22 + CMakeLua/Modules/CPack.DS_Store.in | Bin 0 -> 12292 bytes CMakeLua/Modules/CPack.Description.plist.in | 12 + CMakeLua/Modules/CPack.Info.plist.in | 37 + CMakeLua/Modules/CPack.OSXScriptLauncher.in | Bin 0 -> 1345804 bytes CMakeLua/Modules/CPack.OSXX11.Info.plist.in | 36 + CMakeLua/Modules/CPack.RuntimeScript.in | 45 + CMakeLua/Modules/CPack.STGZ_Header.sh.in | 141 + CMakeLua/Modules/CPack.VolumeIcon.icns.in | Bin 0 -> 45739 bytes CMakeLua/Modules/CPack.background.png.in | Bin 0 -> 50482 bytes CMakeLua/Modules/CPack.cmake | 218 + CMakeLua/Modules/CPackDeb.cmake | 94 + CMakeLua/Modules/CPackRPM.cmake | 227 + CMakeLua/Modules/CPackZIP.cmake | 27 + CMakeLua/Modules/CTest.cmake | 205 + CMakeLua/Modules/CTestTargets.cmake | 66 + CMakeLua/Modules/CVS/Entries | 261 + CMakeLua/Modules/CVS/Repository | 1 + CMakeLua/Modules/CVS/Root | 1 + CMakeLua/Modules/CVS/Tag | 1 + CMakeLua/Modules/CVS/Template | 22 + CMakeLua/Modules/CheckCCompilerFlag.cmake | 21 + CMakeLua/Modules/CheckCSourceCompiles.cmake | 60 + CMakeLua/Modules/CheckCSourceRuns.cmake | 74 + CMakeLua/Modules/CheckCXXCompilerFlag.cmake | 21 + CMakeLua/Modules/CheckCXXSourceCompiles.cmake | 60 + CMakeLua/Modules/CheckCXXSourceRuns.cmake | 74 + CMakeLua/Modules/CheckForPthreads.c | 38 + CMakeLua/Modules/CheckFortranFunctionExists.cmake | 50 + CMakeLua/Modules/CheckFunctionExists.c | 23 + CMakeLua/Modules/CheckFunctionExists.cmake | 54 + CMakeLua/Modules/CheckIncludeFile.c.in | 13 + CMakeLua/Modules/CheckIncludeFile.cmake | 63 + CMakeLua/Modules/CheckIncludeFile.cxx.in | 6 + CMakeLua/Modules/CheckIncludeFileCXX.cmake | 63 + CMakeLua/Modules/CheckIncludeFiles.cmake | 59 + CMakeLua/Modules/CheckLibraryExists.cmake | 52 + CMakeLua/Modules/CheckLibraryExists.lists.in | 8 + CMakeLua/Modules/CheckSizeOf.cmake | 4 + CMakeLua/Modules/CheckStructHasMember.cmake | 39 + CMakeLua/Modules/CheckSymbolExists.cmake | 70 + CMakeLua/Modules/CheckTypeSize.cmake | 86 + CMakeLua/Modules/CheckTypeSizeC.c.in | 47 + CMakeLua/Modules/CheckVariableExists.c | 20 + CMakeLua/Modules/CheckVariableExists.cmake | 48 + CMakeLua/Modules/Dart.cmake | 110 + CMakeLua/Modules/DartConfiguration.tcl.in | 61 + CMakeLua/Modules/Documentation.cmake | 39 + CMakeLua/Modules/DummyCXXFile.cxx | 4 + CMakeLua/Modules/FLTKCompatibility.cmake | 1 + CMakeLua/Modules/FeatureSummary.cmake | 64 + CMakeLua/Modules/FindASPELL.cmake | 30 + CMakeLua/Modules/FindAVIFile.cmake | 39 + CMakeLua/Modules/FindBLAS.cmake | 273 + CMakeLua/Modules/FindBZip2.cmake | 35 + CMakeLua/Modules/FindBoost.cmake | 149 + CMakeLua/Modules/FindCABLE.cmake | 68 + CMakeLua/Modules/FindCURL.cmake | 27 + CMakeLua/Modules/FindCups.cmake | 48 + CMakeLua/Modules/FindCurses.cmake | 120 + CMakeLua/Modules/FindCygwin.cmake | 14 + CMakeLua/Modules/FindDCMTK.cmake | 129 + CMakeLua/Modules/FindDart.cmake | 16 + CMakeLua/Modules/FindDoxygen.cmake | 102 + CMakeLua/Modules/FindEXPAT.cmake | 28 + CMakeLua/Modules/FindFLTK.cmake | 244 + CMakeLua/Modules/FindFLTK2.cmake | 268 + CMakeLua/Modules/FindFreetype.cmake | 94 + CMakeLua/Modules/FindGCCXML.cmake | 8 + CMakeLua/Modules/FindGDAL.cmake | 84 + CMakeLua/Modules/FindGIF.cmake | 67 + CMakeLua/Modules/FindGLU.cmake | 14 + CMakeLua/Modules/FindGLUT.cmake | 95 + CMakeLua/Modules/FindGTK.cmake | 152 + CMakeLua/Modules/FindGettext.cmake | 65 + CMakeLua/Modules/FindGnuplot.cmake | 28 + CMakeLua/Modules/FindHSPELL.cmake | 32 + CMakeLua/Modules/FindHTMLHelp.cmake | 41 + CMakeLua/Modules/FindITK.cmake | 87 + CMakeLua/Modules/FindImageMagick.cmake | 82 + CMakeLua/Modules/FindJNI.cmake | 145 + CMakeLua/Modules/FindJPEG.cmake | 28 + CMakeLua/Modules/FindJasper.cmake | 38 + CMakeLua/Modules/FindJava.cmake | 51 + CMakeLua/Modules/FindKDE.cmake | 9 + CMakeLua/Modules/FindKDE3.cmake | 272 + CMakeLua/Modules/FindKDE4.cmake | 61 + CMakeLua/Modules/FindLAPACK.cmake | 180 + CMakeLua/Modules/FindLATEX.cmake | 113 + CMakeLua/Modules/FindLibXml2.cmake | 46 + CMakeLua/Modules/FindLibXslt.cmake | 45 + CMakeLua/Modules/FindLua50.cmake | 100 + CMakeLua/Modules/FindLua51.cmake | 72 + CMakeLua/Modules/FindMFC.cmake | 19 + CMakeLua/Modules/FindMPEG.cmake | 29 + CMakeLua/Modules/FindMPEG2.cmake | 39 + CMakeLua/Modules/FindMPI.cmake | 43 + CMakeLua/Modules/FindMatlab.cmake | 106 + CMakeLua/Modules/FindMotif.cmake | 31 + CMakeLua/Modules/FindOpenAL.cmake | 100 + CMakeLua/Modules/FindOpenGL.cmake | 136 + CMakeLua/Modules/FindOpenSSL.cmake | 70 + CMakeLua/Modules/FindOpenThreads.cmake | 164 + CMakeLua/Modules/FindPHP4.cmake | 70 + CMakeLua/Modules/FindPNG.cmake | 44 + .../Modules/FindPackageHandleStandardArgs.cmake | 54 + CMakeLua/Modules/FindPerl.cmake | 37 + CMakeLua/Modules/FindPerlLibs.cmake | 64 + CMakeLua/Modules/FindPhysFS.cmake | 59 + CMakeLua/Modules/FindPike.cmake | 24 + CMakeLua/Modules/FindPkgConfig.cmake | 360 + CMakeLua/Modules/FindProducer.cmake | 82 + CMakeLua/Modules/FindPythonInterp.cmake | 28 + CMakeLua/Modules/FindPythonLibs.cmake | 161 + CMakeLua/Modules/FindQt.cmake | 148 + CMakeLua/Modules/FindQt3.cmake | 319 + CMakeLua/Modules/FindQt4.cmake | 1429 + CMakeLua/Modules/FindQuickTime.cmake | 41 + CMakeLua/Modules/FindRuby.cmake | 94 + CMakeLua/Modules/FindSDL.cmake | 192 + CMakeLua/Modules/FindSDL_image.cmake | 72 + CMakeLua/Modules/FindSDL_mixer.cmake | 72 + CMakeLua/Modules/FindSDL_net.cmake | 72 + CMakeLua/Modules/FindSDL_sound.cmake | 413 + CMakeLua/Modules/FindSDL_ttf.cmake | 73 + CMakeLua/Modules/FindSWIG.cmake | 56 + CMakeLua/Modules/FindSelfPackers.cmake | 55 + CMakeLua/Modules/FindSubversion.cmake | 126 + CMakeLua/Modules/FindTCL.cmake | 214 + CMakeLua/Modules/FindTIFF.cmake | 22 + CMakeLua/Modules/FindTclStub.cmake | 107 + CMakeLua/Modules/FindTclsh.cmake | 81 + CMakeLua/Modules/FindThreads.cmake | 119 + CMakeLua/Modules/FindUnixCommands.cmake | 80 + CMakeLua/Modules/FindVTK.cmake | 140 + CMakeLua/Modules/FindWget.cmake | 23 + CMakeLua/Modules/FindWish.cmake | 75 + CMakeLua/Modules/FindX11.cmake | 420 + CMakeLua/Modules/FindXMLRPC.cmake | 135 + CMakeLua/Modules/FindZLIB.cmake | 30 + CMakeLua/Modules/Findosg.cmake | 79 + CMakeLua/Modules/FindosgDB.cmake | 81 + CMakeLua/Modules/FindosgFX.cmake | 81 + CMakeLua/Modules/FindosgGA.cmake | 81 + CMakeLua/Modules/FindosgIntrospection.cmake | 81 + CMakeLua/Modules/FindosgManipulator.cmake | 81 + CMakeLua/Modules/FindosgParticle.cmake | 81 + CMakeLua/Modules/FindosgProducer.cmake | 81 + CMakeLua/Modules/FindosgShadow.cmake | 81 + CMakeLua/Modules/FindosgSim.cmake | 81 + CMakeLua/Modules/FindosgTerrain.cmake | 81 + CMakeLua/Modules/FindosgText.cmake | 81 + CMakeLua/Modules/FindosgUtil.cmake | 81 + CMakeLua/Modules/FindosgViewer.cmake | 81 + CMakeLua/Modules/FindwxWidgets.cmake | 957 + CMakeLua/Modules/FindwxWindows.cmake | 693 + CMakeLua/Modules/ITKCompatibility.cmake | 3 + .../Modules/InstallRequiredSystemLibraries.cmake | 134 + CMakeLua/Modules/KDE3Macros.cmake | 393 + CMakeLua/Modules/MacOSXBundleInfo.plist.in | 36 + CMakeLua/Modules/MacOSXFrameworkInfo.plist.in | 28 + CMakeLua/Modules/MacroAddFileDependencies.cmake | 15 + CMakeLua/Modules/NSIS.InstallOptions.ini.in | 46 + CMakeLua/Modules/NSIS.template.in | 649 + .../Modules/Platform/AIX-VisualAge-Fortran.cmake | 1 + CMakeLua/Modules/Platform/AIX.cmake | 69 + CMakeLua/Modules/Platform/BSDOS.cmake | 2 + CMakeLua/Modules/Platform/BeOS.cmake | 14 + CMakeLua/Modules/Platform/BlueGeneL.cmake | 40 + CMakeLua/Modules/Platform/CMakeLists.txt | 3 + CMakeLua/Modules/Platform/CVS/Entries | 72 + CMakeLua/Modules/Platform/CVS/Repository | 1 + CMakeLua/Modules/Platform/CVS/Root | 1 + CMakeLua/Modules/Platform/CVS/Tag | 1 + CMakeLua/Modules/Platform/CVS/Template | 22 + CMakeLua/Modules/Platform/CYGWIN-g77.cmake | 6 + CMakeLua/Modules/Platform/CYGWIN.cmake | 54 + CMakeLua/Modules/Platform/Catamount.cmake | 26 + CMakeLua/Modules/Platform/Darwin-xlc.cmake | 6 + CMakeLua/Modules/Platform/Darwin.cmake | 158 + CMakeLua/Modules/Platform/DragonFly.cmake | 5 + CMakeLua/Modules/Platform/FreeBSD.cmake | 24 + CMakeLua/Modules/Platform/GNU.cmake | 10 + CMakeLua/Modules/Platform/Generic-ADSP-ASM.cmake | 7 + CMakeLua/Modules/Platform/Generic-ADSP-C.cmake | 20 + CMakeLua/Modules/Platform/Generic-ADSP-CXX.cmake | 18 + .../Modules/Platform/Generic-ADSP-Common.cmake | 120 + CMakeLua/Modules/Platform/Generic-SDCC-C.cmake | 54 + CMakeLua/Modules/Platform/Generic.cmake | 11 + CMakeLua/Modules/Platform/HP-UX.cmake | 118 + CMakeLua/Modules/Platform/IRIX.cmake | 46 + CMakeLua/Modules/Platform/IRIX64.cmake | 75 + CMakeLua/Modules/Platform/Linux-GNU-Fortran.cmake | 1 + CMakeLua/Modules/Platform/Linux-PGI-C.cmake | 5 + CMakeLua/Modules/Platform/Linux-PGI-CXX.cmake | 4 + CMakeLua/Modules/Platform/Linux-SunPro-C.cmake | 24 + CMakeLua/Modules/Platform/Linux-SunPro-CXX.cmake | 24 + .../Modules/Platform/Linux-SunPro-Fortran.cmake | 16 + CMakeLua/Modules/Platform/Linux-VisualAge-C.cmake | 2 + .../Modules/Platform/Linux-VisualAge-Fortran.cmake | 3 + CMakeLua/Modules/Platform/Linux-como.cmake | 18 + CMakeLua/Modules/Platform/Linux-icpc.cmake | 12 + CMakeLua/Modules/Platform/Linux-ifort.cmake | 8 + CMakeLua/Modules/Platform/Linux.cmake | 57 + CMakeLua/Modules/Platform/MP-RAS.cmake | 10 + CMakeLua/Modules/Platform/NetBSD.cmake | 15 + CMakeLua/Modules/Platform/OSF1.cmake | 45 + CMakeLua/Modules/Platform/OpenBSD.cmake | 2 + CMakeLua/Modules/Platform/QNX.cmake | 34 + CMakeLua/Modules/Platform/RISCos.cmake | 6 + CMakeLua/Modules/Platform/SCO_SV.cmake | 5 + CMakeLua/Modules/Platform/SINIX.cmake | 2 + .../Modules/Platform/SunOS-SunPro-Fortran.cmake | 2 + CMakeLua/Modules/Platform/SunOS.cmake | 106 + CMakeLua/Modules/Platform/Tru64.cmake | 2 + CMakeLua/Modules/Platform/ULTRIX.cmake | 5 + CMakeLua/Modules/Platform/UNIX_SV.cmake | 3 + CMakeLua/Modules/Platform/UnixPaths.cmake | 57 + CMakeLua/Modules/Platform/UnixWare.cmake | 3 + CMakeLua/Modules/Platform/Windows-bcc32.cmake | 123 + CMakeLua/Modules/Platform/Windows-cl.cmake | 279 + CMakeLua/Modules/Platform/Windows-cl.cmake.in | 13 + CMakeLua/Modules/Platform/Windows-df.cmake | 68 + CMakeLua/Modules/Platform/Windows-g++.cmake | 1 + CMakeLua/Modules/Platform/Windows-g77.cmake | 16 + CMakeLua/Modules/Platform/Windows-gcc.cmake | 66 + CMakeLua/Modules/Platform/Windows-icl.cmake | 77 + CMakeLua/Modules/Platform/Windows-ifort.cmake | 67 + CMakeLua/Modules/Platform/Windows-wcl386.cmake | 70 + CMakeLua/Modules/Platform/Windows.cmake | 36 + CMakeLua/Modules/Platform/WindowsPaths.cmake | 31 + CMakeLua/Modules/Platform/Xenix.cmake | 2 + CMakeLua/Modules/Platform/cl.cmake | 61 + CMakeLua/Modules/Platform/eCos.cmake | 56 + CMakeLua/Modules/Platform/g77.cmake | 7 + CMakeLua/Modules/Platform/gas.cmake | 19 + CMakeLua/Modules/Platform/gcc.cmake | 27 + CMakeLua/Modules/Platform/kFreeBSD.cmake | 12 + CMakeLua/Modules/Platform/syllable.cmake | 33 + CMakeLua/Modules/Platform/xlf.cmake | 1 + CMakeLua/Modules/SystemInformation.cmake | 88 + CMakeLua/Modules/SystemInformation.in | 92 + CMakeLua/Modules/TestBigEndian.cmake | 99 + CMakeLua/Modules/TestCXXAcceptsFlag.cmake | 30 + CMakeLua/Modules/TestEndianess.c.in | 20 + CMakeLua/Modules/TestForANSIForScope.cmake | 31 + CMakeLua/Modules/TestForANSIStreamHeaders.cmake | 20 + CMakeLua/Modules/TestForANSIStreamHeaders.cxx | 6 + CMakeLua/Modules/TestForAnsiForScope.cxx | 7 + CMakeLua/Modules/TestForSSTREAM.cmake | 29 + CMakeLua/Modules/TestForSSTREAM.cxx | 11 + CMakeLua/Modules/TestForSTDNamespace.cmake | 29 + CMakeLua/Modules/TestForSTDNamespace.cxx | 6 + CMakeLua/Modules/UseEcos.cmake | 223 + CMakeLua/Modules/UsePkgConfig.cmake | 57 + CMakeLua/Modules/UseQt4.cmake | 102 + CMakeLua/Modules/UseSWIG.cmake | 207 + CMakeLua/Modules/UseVTK40.cmake | 22 + CMakeLua/Modules/UseVTKBuildSettings40.cmake | 25 + CMakeLua/Modules/UseVTKConfig40.cmake | 396 + CMakeLua/Modules/Use_wxWindows.cmake | 50 + CMakeLua/Modules/UsewxWidgets.cmake | 71 + CMakeLua/Modules/VTKCompatibility.cmake | 43 + CMakeLua/Modules/ecos_clean.cmake | 12 + CMakeLua/Modules/kde3init_dummy.cpp.in | 6 + CMakeLua/Modules/kde3uic.cmake | 20 + CMakeLua/Modules/readme.txt | 102 + CMakeLua/Readme.txt | 55 + CMakeLua/Source/.cvsignore | 5 + CMakeLua/Source/CMakeLists.txt | 434 + CMakeLua/Source/CPack/CVS/Entries | 36 + CMakeLua/Source/CPack/CVS/Repository | 1 + CMakeLua/Source/CPack/CVS/Root | 1 + CMakeLua/Source/CPack/CVS/Tag | 1 + CMakeLua/Source/CPack/CVS/Template | 22 + CMakeLua/Source/CPack/OSXScriptLauncher.cxx | 153 + CMakeLua/Source/CPack/bills-comments.txt | 68 + CMakeLua/Source/CPack/cmCPackConfigure.h.in | 16 + .../Source/CPack/cmCPackCygwinBinaryGenerator.cxx | 104 + .../Source/CPack/cmCPackCygwinBinaryGenerator.h | 44 + .../Source/CPack/cmCPackCygwinSourceGenerator.cxx | 183 + .../Source/CPack/cmCPackCygwinSourceGenerator.h | 46 + CMakeLua/Source/CPack/cmCPackDebGenerator.cxx | 462 + CMakeLua/Source/CPack/cmCPackDebGenerator.h | 47 + CMakeLua/Source/CPack/cmCPackGenerator.cxx | 1060 + CMakeLua/Source/CPack/cmCPackGenerator.h | 137 + CMakeLua/Source/CPack/cmCPackGeneratorFactory.cxx | 136 + CMakeLua/Source/CPack/cmCPackGeneratorFactory.h | 64 + CMakeLua/Source/CPack/cmCPackLog.cxx | 224 + CMakeLua/Source/CPack/cmCPackLog.h | 160 + CMakeLua/Source/CPack/cmCPackNSISGenerator.cxx | 417 + CMakeLua/Source/CPack/cmCPackNSISGenerator.h | 53 + CMakeLua/Source/CPack/cmCPackOSXX11Generator.cxx | 267 + CMakeLua/Source/CPack/cmCPackOSXX11Generator.h | 52 + .../Source/CPack/cmCPackPackageMakerGenerator.cxx | 311 + .../Source/CPack/cmCPackPackageMakerGenerator.h | 54 + CMakeLua/Source/CPack/cmCPackRPMGenerator.cxx | 52 + CMakeLua/Source/CPack/cmCPackRPMGenerator.h | 51 + CMakeLua/Source/CPack/cmCPackSTGZGenerator.cxx | 133 + CMakeLua/Source/CPack/cmCPackSTGZGenerator.h | 47 + CMakeLua/Source/CPack/cmCPackTGZGenerator.cxx | 298 + CMakeLua/Source/CPack/cmCPackTGZGenerator.h | 52 + CMakeLua/Source/CPack/cmCPackTarBZip2Generator.cxx | 180 + CMakeLua/Source/CPack/cmCPackTarBZip2Generator.h | 47 + .../Source/CPack/cmCPackTarCompressGenerator.cxx | 255 + .../Source/CPack/cmCPackTarCompressGenerator.h | 48 + CMakeLua/Source/CPack/cmCPackZIPGenerator.cxx | 103 + CMakeLua/Source/CPack/cmCPackZIPGenerator.h | 49 + CMakeLua/Source/CPack/cpack.cxx | 477 + CMakeLua/Source/CPack/cygwin.readme | 69 + CMakeLua/Source/CTest/CVS/Entries | 48 + CMakeLua/Source/CTest/CVS/Repository | 1 + CMakeLua/Source/CTest/CVS/Root | 1 + CMakeLua/Source/CTest/CVS/Tag | 1 + CMakeLua/Source/CTest/CVS/Template | 22 + .../Source/CTest/cmCTestBuildAndTestHandler.cxx | 504 + CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.h | 83 + CMakeLua/Source/CTest/cmCTestBuildCommand.cxx | 134 + CMakeLua/Source/CTest/cmCTestBuildCommand.h | 79 + CMakeLua/Source/CTest/cmCTestBuildHandler.cxx | 1021 + CMakeLua/Source/CTest/cmCTestBuildHandler.h | 141 + CMakeLua/Source/CTest/cmCTestCommand.h | 45 + CMakeLua/Source/CTest/cmCTestConfigureCommand.cxx | 108 + CMakeLua/Source/CTest/cmCTestConfigureCommand.h | 77 + CMakeLua/Source/CTest/cmCTestConfigureHandler.cxx | 136 + CMakeLua/Source/CTest/cmCTestConfigureHandler.h | 44 + CMakeLua/Source/CTest/cmCTestCoverageCommand.cxx | 38 + CMakeLua/Source/CTest/cmCTestCoverageCommand.h | 77 + CMakeLua/Source/CTest/cmCTestCoverageHandler.cxx | 1691 + CMakeLua/Source/CTest/cmCTestCoverageHandler.h | 142 + .../CTest/cmCTestEmptyBinaryDirectoryCommand.cxx | 41 + .../CTest/cmCTestEmptyBinaryDirectoryCommand.h | 83 + CMakeLua/Source/CTest/cmCTestGenericHandler.cxx | 172 + CMakeLua/Source/CTest/cmCTestGenericHandler.h | 105 + CMakeLua/Source/CTest/cmCTestHandlerCommand.cxx | 170 + CMakeLua/Source/CTest/cmCTestHandlerCommand.h | 64 + CMakeLua/Source/CTest/cmCTestMemCheckCommand.cxx | 37 + CMakeLua/Source/CTest/cmCTestMemCheckCommand.h | 79 + CMakeLua/Source/CTest/cmCTestMemCheckHandler.cxx | 966 + CMakeLua/Source/CTest/cmCTestMemCheckHandler.h | 136 + .../Source/CTest/cmCTestReadCustomFilesCommand.cxx | 40 + .../Source/CTest/cmCTestReadCustomFilesCommand.h | 80 + CMakeLua/Source/CTest/cmCTestRunScriptCommand.cxx | 45 + CMakeLua/Source/CTest/cmCTestRunScriptCommand.h | 84 + CMakeLua/Source/CTest/cmCTestScriptHandler.cxx | 1005 + CMakeLua/Source/CTest/cmCTestScriptHandler.h | 171 + CMakeLua/Source/CTest/cmCTestSleepCommand.cxx | 60 + CMakeLua/Source/CTest/cmCTestSleepCommand.h | 83 + CMakeLua/Source/CTest/cmCTestStartCommand.cxx | 109 + CMakeLua/Source/CTest/cmCTestStartCommand.h | 83 + CMakeLua/Source/CTest/cmCTestSubmitCommand.cxx | 112 + CMakeLua/Source/CTest/cmCTestSubmitCommand.h | 75 + CMakeLua/Source/CTest/cmCTestSubmitHandler.cxx | 1088 + CMakeLua/Source/CTest/cmCTestSubmitHandler.h | 82 + CMakeLua/Source/CTest/cmCTestTestCommand.cxx | 78 + CMakeLua/Source/CTest/cmCTestTestCommand.h | 85 + CMakeLua/Source/CTest/cmCTestTestHandler.cxx | 1968 + CMakeLua/Source/CTest/cmCTestTestHandler.h | 218 + CMakeLua/Source/CTest/cmCTestUpdateCommand.cxx | 95 + CMakeLua/Source/CTest/cmCTestUpdateCommand.h | 76 + CMakeLua/Source/CTest/cmCTestUpdateHandler.cxx | 1115 + CMakeLua/Source/CTest/cmCTestUpdateHandler.h | 73 + CMakeLua/Source/CVS/Entries | 427 + CMakeLua/Source/CVS/Repository | 1 + CMakeLua/Source/CVS/Root | 1 + CMakeLua/Source/CVS/Tag | 1 + CMakeLua/Source/CVS/Template | 22 + CMakeLua/Source/CursesDialog/.NoDartCoverage | 1 + CMakeLua/Source/CursesDialog/CMakeLists.txt | 26 + CMakeLua/Source/CursesDialog/CVS/Entries | 27 + CMakeLua/Source/CursesDialog/CVS/Repository | 1 + CMakeLua/Source/CursesDialog/CVS/Root | 1 + CMakeLua/Source/CursesDialog/CVS/Tag | 1 + CMakeLua/Source/CursesDialog/CVS/Template | 22 + CMakeLua/Source/CursesDialog/ccmake.cxx | 221 + .../Source/CursesDialog/cmCursesBoolWidget.cxx | 79 + CMakeLua/Source/CursesDialog/cmCursesBoolWidget.h | 45 + .../CursesDialog/cmCursesCacheEntryComposite.cxx | 107 + .../CursesDialog/cmCursesCacheEntryComposite.h | 47 + .../Source/CursesDialog/cmCursesDummyWidget.cxx | 31 + CMakeLua/Source/CursesDialog/cmCursesDummyWidget.h | 41 + .../Source/CursesDialog/cmCursesFilePathWidget.cxx | 25 + .../Source/CursesDialog/cmCursesFilePathWidget.h | 33 + CMakeLua/Source/CursesDialog/cmCursesForm.cxx | 62 + CMakeLua/Source/CursesDialog/cmCursesForm.h | 80 + .../Source/CursesDialog/cmCursesLabelWidget.cxx | 38 + CMakeLua/Source/CursesDialog/cmCursesLabelWidget.h | 43 + .../CursesDialog/cmCursesLongMessageForm.cxx | 213 + .../Source/CursesDialog/cmCursesLongMessageForm.h | 63 + CMakeLua/Source/CursesDialog/cmCursesMainForm.cxx | 1295 + CMakeLua/Source/CursesDialog/cmCursesMainForm.h | 170 + .../Source/CursesDialog/cmCursesPathWidget.cxx | 99 + CMakeLua/Source/CursesDialog/cmCursesPathWidget.h | 45 + .../Source/CursesDialog/cmCursesStandardIncludes.h | 88 + .../Source/CursesDialog/cmCursesStringWidget.cxx | 247 + .../Source/CursesDialog/cmCursesStringWidget.h | 81 + CMakeLua/Source/CursesDialog/cmCursesWidget.cxx | 63 + CMakeLua/Source/CursesDialog/cmCursesWidget.h | 92 + CMakeLua/Source/CursesDialog/form/.NoDartCoverage | 1 + CMakeLua/Source/CursesDialog/form/CMakeLists.txt | 55 + CMakeLua/Source/CursesDialog/form/CVS/Entries | 50 + CMakeLua/Source/CursesDialog/form/CVS/Repository | 1 + CMakeLua/Source/CursesDialog/form/CVS/Root | 1 + CMakeLua/Source/CursesDialog/form/CVS/Tag | 1 + CMakeLua/Source/CursesDialog/form/CVS/Template | 22 + CMakeLua/Source/CursesDialog/form/READ.ME | 15 + .../Source/CursesDialog/form/cmFormConfigure.h.in | 26 + CMakeLua/Source/CursesDialog/form/eti.h | 52 + CMakeLua/Source/CursesDialog/form/fld_arg.c | 91 + CMakeLua/Source/CursesDialog/form/fld_attr.c | 116 + CMakeLua/Source/CursesDialog/form/fld_current.c | 124 + CMakeLua/Source/CursesDialog/form/fld_def.c | 346 + CMakeLua/Source/CursesDialog/form/fld_dup.c | 97 + CMakeLua/Source/CursesDialog/form/fld_ftchoice.c | 62 + CMakeLua/Source/CursesDialog/form/fld_ftlink.c | 83 + CMakeLua/Source/CursesDialog/form/fld_info.c | 91 + CMakeLua/Source/CursesDialog/form/fld_just.c | 81 + CMakeLua/Source/CursesDialog/form/fld_link.c | 90 + CMakeLua/Source/CursesDialog/form/fld_max.c | 74 + CMakeLua/Source/CursesDialog/form/fld_move.c | 62 + CMakeLua/Source/CursesDialog/form/fld_newftyp.c | 125 + CMakeLua/Source/CursesDialog/form/fld_opts.c | 124 + CMakeLua/Source/CursesDialog/form/fld_pad.c | 78 + CMakeLua/Source/CursesDialog/form/fld_page.c | 76 + CMakeLua/Source/CursesDialog/form/fld_stat.c | 73 + CMakeLua/Source/CursesDialog/form/fld_type.c | 51 + CMakeLua/Source/CursesDialog/form/fld_user.c | 67 + CMakeLua/Source/CursesDialog/form/form.h | 401 + CMakeLua/Source/CursesDialog/form/form.priv.h | 134 + CMakeLua/Source/CursesDialog/form/frm_cursor.c | 66 + CMakeLua/Source/CursesDialog/form/frm_data.c | 183 + CMakeLua/Source/CursesDialog/form/frm_def.c | 376 + CMakeLua/Source/CursesDialog/form/frm_driver.c | 3880 ++ CMakeLua/Source/CursesDialog/form/frm_hook.c | 140 + CMakeLua/Source/CursesDialog/form/frm_opts.c | 116 + CMakeLua/Source/CursesDialog/form/frm_page.c | 100 + CMakeLua/Source/CursesDialog/form/frm_post.c | 117 + CMakeLua/Source/CursesDialog/form/frm_req_name.c | 169 + CMakeLua/Source/CursesDialog/form/frm_scale.c | 63 + CMakeLua/Source/CursesDialog/form/frm_sub.c | 69 + CMakeLua/Source/CursesDialog/form/frm_user.c | 67 + CMakeLua/Source/CursesDialog/form/frm_win.c | 70 + CMakeLua/Source/CursesDialog/form/fty_alnum.c | 138 + CMakeLua/Source/CursesDialog/form/fty_alpha.c | 139 + CMakeLua/Source/CursesDialog/form/fty_enum.c | 295 + CMakeLua/Source/CursesDialog/form/fty_int.c | 161 + CMakeLua/Source/CursesDialog/form/fty_ipv4.c | 84 + CMakeLua/Source/CursesDialog/form/fty_num.c | 192 + CMakeLua/Source/CursesDialog/form/fty_regex.c | 264 + CMakeLua/Source/CursesDialog/form/llib-lform | 694 + CMakeLua/Source/CursesDialog/form/mf_common.h | 93 + CMakeLua/Source/CursesDialog/form/nc_alloc.h | 83 + CMakeLua/Source/FLTKDialog/CMakeLists.txt | 20 + CMakeLua/Source/FLTKDialog/CMakeSetupGUI.fl | 116 + .../FLTKDialog/CMakeSetupGUIImplementation.cxx | 844 + .../FLTKDialog/CMakeSetupGUIImplementation.h | 85 + CMakeLua/Source/FLTKDialog/CVS/Entries | 11 + CMakeLua/Source/FLTKDialog/CVS/Repository | 1 + CMakeLua/Source/FLTKDialog/CVS/Root | 1 + CMakeLua/Source/FLTKDialog/CVS/Tag | 1 + CMakeLua/Source/FLTKDialog/CVS/Template | 22 + CMakeLua/Source/FLTKDialog/FLTKDialog.cxx | 44 + CMakeLua/Source/FLTKDialog/FLTKDialog.dsp | 116 + CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.cxx | 387 + CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.h | 83 + CMakeLua/Source/FLTKDialog/FLTKPropertyList.cxx | 184 + CMakeLua/Source/FLTKDialog/FLTKPropertyList.h | 143 + CMakeLua/Source/MFCDialog/.cvsignore | 1 + CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.cpp | 142 + CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.h | 70 + CMakeLua/Source/MFCDialog/CMakeGenDialog.cpp | 122 + CMakeLua/Source/MFCDialog/CMakeGenDialog.h | 70 + CMakeLua/Source/MFCDialog/CMakeLists.txt | 109 + CMakeLua/Source/MFCDialog/CMakeSetup.cpp | 158 + CMakeLua/Source/MFCDialog/CMakeSetup.h | 65 + CMakeLua/Source/MFCDialog/CMakeSetup.rc | 256 + CMakeLua/Source/MFCDialog/CMakeSetupDialog.cpp | 1523 + CMakeLua/Source/MFCDialog/CMakeSetupDialog.h | 148 + CMakeLua/Source/MFCDialog/CMakeSetupManifest.xml | 10 + CMakeLua/Source/MFCDialog/CVS/Entries | 22 + CMakeLua/Source/MFCDialog/CVS/Repository | 1 + CMakeLua/Source/MFCDialog/CVS/Root | 1 + CMakeLua/Source/MFCDialog/CVS/Tag | 1 + CMakeLua/Source/MFCDialog/CVS/Template | 22 + CMakeLua/Source/MFCDialog/MakeHelp.cpp | 43 + CMakeLua/Source/MFCDialog/MakeHelp.h | 62 + CMakeLua/Source/MFCDialog/PathDialog.cpp | 377 + CMakeLua/Source/MFCDialog/PathDialog.h | 90 + CMakeLua/Source/MFCDialog/PropertyList.cpp | 847 + CMakeLua/Source/MFCDialog/PropertyList.h | 179 + CMakeLua/Source/MFCDialog/StdAfx.cpp | 8 + CMakeLua/Source/MFCDialog/StdAfx.h | 45 + CMakeLua/Source/MFCDialog/res/CMakeSetupDialog.ico | Bin 0 -> 24542 bytes CMakeLua/Source/MFCDialog/res/CMakeSetupDialog.rc2 | 13 + CMakeLua/Source/MFCDialog/res/CVS/Entries | 3 + CMakeLua/Source/MFCDialog/res/CVS/Repository | 1 + CMakeLua/Source/MFCDialog/res/CVS/Root | 1 + CMakeLua/Source/MFCDialog/res/CVS/Tag | 1 + CMakeLua/Source/MFCDialog/res/CVS/Template | 22 + CMakeLua/Source/MFCDialog/resource.h | 46 + CMakeLua/Source/QtDialog/AddCacheEntry.cxx | 86 + CMakeLua/Source/QtDialog/AddCacheEntry.h | 40 + CMakeLua/Source/QtDialog/AddCacheEntry.ui | 97 + CMakeLua/Source/QtDialog/CMakeLists.txt | 54 + CMakeLua/Source/QtDialog/CMakeSetup.cxx | 134 + CMakeLua/Source/QtDialog/CMakeSetup.icns | Bin 0 -> 33452 bytes CMakeLua/Source/QtDialog/CMakeSetup.ico | Bin 0 -> 24542 bytes CMakeLua/Source/QtDialog/CMakeSetup.png | Bin 0 -> 358 bytes CMakeLua/Source/QtDialog/CMakeSetup.qrc | 7 + CMakeLua/Source/QtDialog/CMakeSetup.rc | 1 + CMakeLua/Source/QtDialog/CMakeSetupDialog.cxx | 806 + CMakeLua/Source/QtDialog/CMakeSetupDialog.h | 111 + CMakeLua/Source/QtDialog/CMakeSetupDialog.ui | 306 + CMakeLua/Source/QtDialog/CVS/Entries | 21 + CMakeLua/Source/QtDialog/CVS/Repository | 1 + CMakeLua/Source/QtDialog/CVS/Root | 1 + CMakeLua/Source/QtDialog/CVS/Tag | 1 + CMakeLua/Source/QtDialog/CVS/Template | 22 + CMakeLua/Source/QtDialog/Delete16.png | Bin 0 -> 731 bytes CMakeLua/Source/QtDialog/Plus16.png | Bin 0 -> 358 bytes CMakeLua/Source/QtDialog/QCMake.cxx | 349 + CMakeLua/Source/QtDialog/QCMake.h | 137 + CMakeLua/Source/QtDialog/QCMakeCacheView.cxx | 523 + CMakeLua/Source/QtDialog/QCMakeCacheView.h | 142 + CMakeLua/Source/QtDialog/README | 3 + CMakeLua/Source/WXDialog/CMakeIcon.xpm | 276 + CMakeLua/Source/WXDialog/CMakeLists.txt | 87 + CMakeLua/Source/WXDialog/CMakeSetup.cpp | 123 + CMakeLua/Source/WXDialog/CMakeSetup.h | 92 + CMakeLua/Source/WXDialog/CMakeSetup.pjd | 3514 ++ CMakeLua/Source/WXDialog/CMakeSetup.rc | 12 + CMakeLua/Source/WXDialog/CMakeSetupFrame.cpp | 1778 + CMakeLua/Source/WXDialog/CMakeSetupFrame.h | 360 + CMakeLua/Source/WXDialog/CVS/Entries | 31 + CMakeLua/Source/WXDialog/CVS/Repository | 1 + CMakeLua/Source/WXDialog/CVS/Root | 1 + CMakeLua/Source/WXDialog/CVS/Tag | 1 + CMakeLua/Source/WXDialog/CVS/Template | 22 + CMakeLua/Source/WXDialog/CommandLineInfo.cpp | 191 + CMakeLua/Source/WXDialog/CommandLineInfo.h | 67 + CMakeLua/Source/WXDialog/NGDialog.exe.manifest | 22 + CMakeLua/Source/WXDialog/NGDialog.ico | Bin 0 -> 24542 bytes CMakeLua/Source/WXDialog/PropertyList.cpp | 856 + CMakeLua/Source/WXDialog/PropertyList.h | 339 + CMakeLua/Source/WXDialog/about.html | 21 + CMakeLua/Source/WXDialog/aboutdlg.cpp | 210 + CMakeLua/Source/WXDialog/aboutdlg.h | 117 + CMakeLua/Source/WXDialog/app_resources.cpp | 86 + CMakeLua/Source/WXDialog/app_resources.h | 60 + CMakeLua/Source/WXDialog/bin/CVS/Entries | 5 + CMakeLua/Source/WXDialog/bin/CVS/Repository | 1 + CMakeLua/Source/WXDialog/bin/CVS/Root | 1 + CMakeLua/Source/WXDialog/bin/CVS/Tag | 1 + CMakeLua/Source/WXDialog/bin/CVS/Template | 22 + CMakeLua/Source/WXDialog/bin/FindUPX.cmake | 18 + CMakeLua/Source/WXDialog/bin/FindwxW.cmake | 438 + CMakeLua/Source/WXDialog/bin/FindwxWin.cmake | 469 + CMakeLua/Source/WXDialog/bin/UsewxW.cmake | 80 + CMakeLua/Source/WXDialog/changelog.txt | 22 + CMakeLua/Source/WXDialog/cmake_icon.gif | Bin 0 -> 892 bytes CMakeLua/Source/WXDialog/cmake_icon.xpm | 276 + CMakeLua/Source/WXDialog/cmake_logo.xpm | 50 + CMakeLua/Source/WXDialog/cmakesetup.done.xml | 2 + CMakeLua/Source/WXDialog/cmakesetup.xml | 104 + CMakeLua/Source/WXDialog/config.h | 43 + CMakeLua/Source/WXDialog/optionsdlg.cpp | 199 + CMakeLua/Source/WXDialog/optionsdlg.h | 125 + CMakeLua/Source/WXDialog/progressdlg.cpp | 177 + CMakeLua/Source/WXDialog/progressdlg.h | 139 + CMakeLua/Source/cmAddCustomCommandCommand.cxx | 378 + CMakeLua/Source/cmAddCustomCommandCommand.h | 169 + CMakeLua/Source/cmAddCustomTargetCommand.cxx | 168 + CMakeLua/Source/cmAddCustomTargetCommand.h | 103 + CMakeLua/Source/cmAddDefinitionsCommand.cxx | 36 + CMakeLua/Source/cmAddDefinitionsCommand.h | 87 + CMakeLua/Source/cmAddDependenciesCommand.cxx | 55 + CMakeLua/Source/cmAddDependenciesCommand.h | 81 + CMakeLua/Source/cmAddExecutableCommand.cxx | 139 + CMakeLua/Source/cmAddExecutableCommand.h | 118 + CMakeLua/Source/cmAddLibraryCommand.cxx | 168 + CMakeLua/Source/cmAddLibraryCommand.h | 102 + CMakeLua/Source/cmAddSubDirectoryCommand.cxx | 128 + CMakeLua/Source/cmAddSubDirectoryCommand.h | 96 + CMakeLua/Source/cmAddTestCommand.cxx | 50 + CMakeLua/Source/cmAddTestCommand.h | 81 + CMakeLua/Source/cmAuxSourceDirectoryCommand.cxx | 94 + CMakeLua/Source/cmAuxSourceDirectoryCommand.h | 91 + CMakeLua/Source/cmBootstrapCommands.cxx | 147 + CMakeLua/Source/cmBreakCommand.cxx | 26 + CMakeLua/Source/cmBreakCommand.h | 78 + CMakeLua/Source/cmBuildCommand.cxx | 57 + CMakeLua/Source/cmBuildCommand.h | 77 + CMakeLua/Source/cmBuildNameCommand.cxx | 82 + CMakeLua/Source/cmBuildNameCommand.h | 87 + CMakeLua/Source/cmCMakeMinimumRequired.cxx | 126 + CMakeLua/Source/cmCMakeMinimumRequired.h | 82 + CMakeLua/Source/cmCPluginAPI.cxx | 950 + CMakeLua/Source/cmCPluginAPI.h | 248 + CMakeLua/Source/cmCTest.cxx | 2609 ++ CMakeLua/Source/cmCTest.h | 445 + CMakeLua/Source/cmCacheManager.cxx | 993 + CMakeLua/Source/cmCacheManager.h | 180 + CMakeLua/Source/cmCallVisualStudioMacro.cxx | 470 + CMakeLua/Source/cmCallVisualStudioMacro.h | 49 + CMakeLua/Source/cmCommand.h | 187 + CMakeLua/Source/cmCommandArgumentLexer.cxx | 2006 + CMakeLua/Source/cmCommandArgumentLexer.h | 344 + CMakeLua/Source/cmCommandArgumentLexer.in.l | 157 + CMakeLua/Source/cmCommandArgumentParser.cxx | 1658 + CMakeLua/Source/cmCommandArgumentParser.y | 229 + CMakeLua/Source/cmCommandArgumentParserHelper.cxx | 320 + CMakeLua/Source/cmCommandArgumentParserHelper.h | 113 + CMakeLua/Source/cmCommandArgumentParserTokens.h | 88 + CMakeLua/Source/cmCommandArgumentsHelper.cxx | 312 + CMakeLua/Source/cmCommandArgumentsHelper.h | 212 + CMakeLua/Source/cmCommands.cxx | 105 + CMakeLua/Source/cmCommands.h | 33 + CMakeLua/Source/cmComputeLinkDepends.cxx | 630 + CMakeLua/Source/cmComputeLinkDepends.h | 125 + CMakeLua/Source/cmComputeLinkInformation.cxx | 1371 + CMakeLua/Source/cmComputeLinkInformation.h | 169 + CMakeLua/Source/cmConfigure.cmake.h.in | 32 + CMakeLua/Source/cmConfigureFileCommand.cxx | 114 + CMakeLua/Source/cmConfigureFileCommand.h | 95 + CMakeLua/Source/cmCoreTryCompile.cxx | 426 + CMakeLua/Source/cmCoreTryCompile.h | 65 + CMakeLua/Source/cmCreateTestSourceList.cxx | 194 + CMakeLua/Source/cmCreateTestSourceList.h | 95 + CMakeLua/Source/cmCustomCommand.cxx | 156 + CMakeLua/Source/cmCustomCommand.h | 89 + CMakeLua/Source/cmData.h | 43 + CMakeLua/Source/cmDefinePropertyCommand.cxx | 72 + CMakeLua/Source/cmDefinePropertyCommand.h | 75 + CMakeLua/Source/cmDepends.cxx | 234 + CMakeLua/Source/cmDepends.h | 116 + CMakeLua/Source/cmDependsC.cxx | 429 + CMakeLua/Source/cmDependsC.h | 98 + CMakeLua/Source/cmDependsFortran.cxx | 1253 + CMakeLua/Source/cmDependsFortran.h | 100 + CMakeLua/Source/cmDependsFortranLexer.cxx | 2295 + CMakeLua/Source/cmDependsFortranLexer.h | 336 + CMakeLua/Source/cmDependsFortranLexer.in.l | 184 + CMakeLua/Source/cmDependsFortranParser.cxx | 1966 + CMakeLua/Source/cmDependsFortranParser.h | 101 + CMakeLua/Source/cmDependsFortranParser.y | 304 + CMakeLua/Source/cmDependsFortranParserTokens.h | 113 + CMakeLua/Source/cmDependsJava.cxx | 49 + CMakeLua/Source/cmDependsJava.h | 46 + CMakeLua/Source/cmDependsJavaLexer.cxx | 2547 ++ CMakeLua/Source/cmDependsJavaLexer.h | 339 + CMakeLua/Source/cmDependsJavaLexer.in.l | 193 + CMakeLua/Source/cmDependsJavaParser.cxx | 6026 +++ CMakeLua/Source/cmDependsJavaParser.y | 3231 ++ CMakeLua/Source/cmDependsJavaParserHelper.cxx | 434 + CMakeLua/Source/cmDependsJavaParserHelper.h | 110 + CMakeLua/Source/cmDependsJavaParserTokens.h | 254 + CMakeLua/Source/cmDocumentVariables.cxx | 1115 + CMakeLua/Source/cmDocumentVariables.h | 26 + CMakeLua/Source/cmDocumentation.cxx | 1407 + CMakeLua/Source/cmDocumentation.h | 187 + CMakeLua/Source/cmDocumentationFormatter.cxx | 73 + CMakeLua/Source/cmDocumentationFormatter.h | 64 + CMakeLua/Source/cmDocumentationFormatterHTML.cxx | 206 + CMakeLua/Source/cmDocumentationFormatterHTML.h | 44 + CMakeLua/Source/cmDocumentationFormatterMan.cxx | 87 + CMakeLua/Source/cmDocumentationFormatterMan.h | 41 + CMakeLua/Source/cmDocumentationFormatterText.cxx | 185 + CMakeLua/Source/cmDocumentationFormatterText.h | 45 + CMakeLua/Source/cmDocumentationFormatterUsage.cxx | 68 + CMakeLua/Source/cmDocumentationFormatterUsage.h | 36 + CMakeLua/Source/cmDocumentationSection.cxx | 86 + CMakeLua/Source/cmDocumentationSection.h | 73 + CMakeLua/Source/cmDumpDocumentation.cxx | 155 + CMakeLua/Source/cmDynamicLoader.cxx | 117 + CMakeLua/Source/cmDynamicLoader.h | 52 + CMakeLua/Source/cmElseCommand.cxx | 26 + CMakeLua/Source/cmElseCommand.h | 77 + CMakeLua/Source/cmElseIfCommand.cxx | 25 + CMakeLua/Source/cmElseIfCommand.h | 77 + CMakeLua/Source/cmEnableLanguageCommand.cxx | 48 + CMakeLua/Source/cmEnableLanguageCommand.h | 81 + CMakeLua/Source/cmEnableTestingCommand.cxx | 27 + CMakeLua/Source/cmEnableTestingCommand.h | 84 + CMakeLua/Source/cmEndForEachCommand.cxx | 28 + CMakeLua/Source/cmEndForEachCommand.h | 84 + CMakeLua/Source/cmEndFunctionCommand.cxx | 28 + CMakeLua/Source/cmEndFunctionCommand.h | 84 + CMakeLua/Source/cmEndIfCommand.cxx | 34 + CMakeLua/Source/cmEndIfCommand.h | 77 + CMakeLua/Source/cmEndMacroCommand.cxx | 28 + CMakeLua/Source/cmEndMacroCommand.h | 84 + CMakeLua/Source/cmEndWhileCommand.cxx | 28 + CMakeLua/Source/cmEndWhileCommand.h | 84 + CMakeLua/Source/cmExecProgramCommand.cxx | 150 + CMakeLua/Source/cmExecProgramCommand.h | 100 + CMakeLua/Source/cmExecuteProcessCommand.cxx | 427 + CMakeLua/Source/cmExecuteProcessCommand.h | 118 + CMakeLua/Source/cmExecutionStatus.h | 53 + CMakeLua/Source/cmExportBuildFileGenerator.cxx | 140 + CMakeLua/Source/cmExportBuildFileGenerator.h | 66 + CMakeLua/Source/cmExportCommand.cxx | 186 + CMakeLua/Source/cmExportCommand.h | 104 + CMakeLua/Source/cmExportFileGenerator.cxx | 390 + CMakeLua/Source/cmExportFileGenerator.h | 108 + CMakeLua/Source/cmExportInstallFileGenerator.cxx | 275 + CMakeLua/Source/cmExportInstallFileGenerator.h | 123 + CMakeLua/Source/cmExportLibraryDependencies.cxx | 118 + CMakeLua/Source/cmExportLibraryDependencies.h | 91 + CMakeLua/Source/cmExprLexer.cxx | 1934 + CMakeLua/Source/cmExprLexer.h | 339 + CMakeLua/Source/cmExprLexer.in.l | 78 + CMakeLua/Source/cmExprParser.cxx | 1438 + CMakeLua/Source/cmExprParser.y | 174 + CMakeLua/Source/cmExprParserHelper.cxx | 123 + CMakeLua/Source/cmExprParserHelper.h | 79 + CMakeLua/Source/cmExprParserTokens.h | 76 + .../Source/cmExternalMakefileProjectGenerator.cxx | 70 + .../Source/cmExternalMakefileProjectGenerator.h | 75 + CMakeLua/Source/cmExtraCodeBlocksGenerator.cxx | 440 + CMakeLua/Source/cmExtraCodeBlocksGenerator.h | 68 + CMakeLua/Source/cmExtraEclipseCDT4Generator.cxx | 813 + CMakeLua/Source/cmExtraEclipseCDT4Generator.h | 96 + CMakeLua/Source/cmFLTKWrapUICommand.cxx | 166 + CMakeLua/Source/cmFLTKWrapUICommand.h | 98 + CMakeLua/Source/cmFileCommand.cxx | 1873 + CMakeLua/Source/cmFileCommand.h | 196 + CMakeLua/Source/cmFileTimeComparison.cxx | 279 + CMakeLua/Source/cmFileTimeComparison.h | 56 + CMakeLua/Source/cmFindBase.cxx | 595 + CMakeLua/Source/cmFindBase.h | 78 + CMakeLua/Source/cmFindCommon.cxx | 479 + CMakeLua/Source/cmFindCommon.h | 95 + CMakeLua/Source/cmFindFileCommand.cxx | 30 + CMakeLua/Source/cmFindFileCommand.h | 56 + CMakeLua/Source/cmFindLibraryCommand.cxx | 290 + CMakeLua/Source/cmFindLibraryCommand.h | 76 + CMakeLua/Source/cmFindPackageCommand.cxx | 1838 + CMakeLua/Source/cmFindPackageCommand.h | 126 + CMakeLua/Source/cmFindPathCommand.cxx | 229 + CMakeLua/Source/cmFindPathCommand.h | 77 + CMakeLua/Source/cmFindProgramCommand.cxx | 189 + CMakeLua/Source/cmFindProgramCommand.h | 80 + CMakeLua/Source/cmForEachCommand.cxx | 214 + CMakeLua/Source/cmForEachCommand.h | 121 + CMakeLua/Source/cmFunctionBlocker.h | 56 + CMakeLua/Source/cmFunctionCommand.cxx | 298 + CMakeLua/Source/cmFunctionCommand.h | 115 + CMakeLua/Source/cmGeneratedFileStream.cxx | 313 + CMakeLua/Source/cmGeneratedFileStream.h | 157 + CMakeLua/Source/cmGetCMakePropertyCommand.cxx | 65 + CMakeLua/Source/cmGetCMakePropertyCommand.h | 73 + CMakeLua/Source/cmGetDirectoryPropertyCommand.cxx | 101 + CMakeLua/Source/cmGetDirectoryPropertyCommand.h | 79 + CMakeLua/Source/cmGetFilenameComponentCommand.cxx | 128 + CMakeLua/Source/cmGetFilenameComponentCommand.h | 95 + CMakeLua/Source/cmGetPropertyCommand.cxx | 342 + CMakeLua/Source/cmGetPropertyCommand.h | 116 + CMakeLua/Source/cmGetSourceFilePropertyCommand.cxx | 57 + CMakeLua/Source/cmGetSourceFilePropertyCommand.h | 69 + CMakeLua/Source/cmGetTargetPropertyCommand.cxx | 44 + CMakeLua/Source/cmGetTargetPropertyCommand.h | 85 + CMakeLua/Source/cmGetTestPropertyCommand.cxx | 47 + CMakeLua/Source/cmGetTestPropertyCommand.h | 68 + .../Source/cmGlobalBorlandMakefileGenerator.cxx | 68 + CMakeLua/Source/cmGlobalBorlandMakefileGenerator.h | 53 + CMakeLua/Source/cmGlobalGenerator.cxx | 1992 + CMakeLua/Source/cmGlobalGenerator.h | 337 + CMakeLua/Source/cmGlobalKdevelopGenerator.cxx | 623 + CMakeLua/Source/cmGlobalKdevelopGenerator.h | 98 + CMakeLua/Source/cmGlobalMSYSMakefileGenerator.cxx | 110 + CMakeLua/Source/cmGlobalMSYSMakefileGenerator.h | 56 + CMakeLua/Source/cmGlobalMinGWMakefileGenerator.cxx | 90 + CMakeLua/Source/cmGlobalMinGWMakefileGenerator.h | 52 + CMakeLua/Source/cmGlobalNMakeMakefileGenerator.cxx | 62 + CMakeLua/Source/cmGlobalNMakeMakefileGenerator.h | 52 + CMakeLua/Source/cmGlobalUnixMakefileGenerator3.cxx | 997 + CMakeLua/Source/cmGlobalUnixMakefileGenerator3.h | 181 + CMakeLua/Source/cmGlobalVisualStudio6Generator.cxx | 505 + CMakeLua/Source/cmGlobalVisualStudio6Generator.h | 103 + .../Source/cmGlobalVisualStudio71Generator.cxx | 270 + CMakeLua/Source/cmGlobalVisualStudio71Generator.h | 68 + CMakeLua/Source/cmGlobalVisualStudio7Generator.cxx | 748 + CMakeLua/Source/cmGlobalVisualStudio7Generator.h | 156 + CMakeLua/Source/cmGlobalVisualStudio8Generator.cxx | 326 + CMakeLua/Source/cmGlobalVisualStudio8Generator.h | 75 + .../Source/cmGlobalVisualStudio8Win64Generator.cxx | 56 + .../Source/cmGlobalVisualStudio8Win64Generator.h | 54 + CMakeLua/Source/cmGlobalVisualStudio9Generator.cxx | 94 + CMakeLua/Source/cmGlobalVisualStudio9Generator.h | 63 + .../Source/cmGlobalVisualStudio9Win64Generator.cxx | 53 + .../Source/cmGlobalVisualStudio9Win64Generator.h | 54 + CMakeLua/Source/cmGlobalVisualStudioGenerator.cxx | 696 + CMakeLua/Source/cmGlobalVisualStudioGenerator.h | 77 + CMakeLua/Source/cmGlobalWatcomWMakeGenerator.cxx | 71 + CMakeLua/Source/cmGlobalWatcomWMakeGenerator.h | 51 + CMakeLua/Source/cmGlobalXCode21Generator.cxx | 47 + CMakeLua/Source/cmGlobalXCode21Generator.h | 41 + CMakeLua/Source/cmGlobalXCodeGenerator.cxx | 2975 ++ CMakeLua/Source/cmGlobalXCodeGenerator.h | 206 + CMakeLua/Source/cmHexFileConverter.cxx | 267 + CMakeLua/Source/cmHexFileConverter.h | 33 + CMakeLua/Source/cmIfCommand.cxx | 695 + CMakeLua/Source/cmIfCommand.h | 197 + CMakeLua/Source/cmIncludeCommand.cxx | 106 + CMakeLua/Source/cmIncludeCommand.h | 89 + CMakeLua/Source/cmIncludeDirectoryCommand.cxx | 141 + CMakeLua/Source/cmIncludeDirectoryCommand.h | 86 + .../Source/cmIncludeExternalMSProjectCommand.cxx | 67 + .../Source/cmIncludeExternalMSProjectCommand.h | 77 + .../Source/cmIncludeRegularExpressionCommand.cxx | 37 + .../Source/cmIncludeRegularExpressionCommand.h | 80 + CMakeLua/Source/cmInstallCommand.cxx | 1207 + CMakeLua/Source/cmInstallCommand.h | 333 + CMakeLua/Source/cmInstallCommandArguments.cxx | 176 + CMakeLua/Source/cmInstallCommandArguments.h | 67 + CMakeLua/Source/cmInstallDirectoryGenerator.cxx | 58 + CMakeLua/Source/cmInstallDirectoryGenerator.h | 46 + CMakeLua/Source/cmInstallExportGenerator.cxx | 211 + CMakeLua/Source/cmInstallExportGenerator.h | 64 + CMakeLua/Source/cmInstallFilesCommand.cxx | 177 + CMakeLua/Source/cmInstallFilesCommand.h | 118 + CMakeLua/Source/cmInstallFilesGenerator.cxx | 58 + CMakeLua/Source/cmInstallFilesGenerator.h | 47 + CMakeLua/Source/cmInstallGenerator.cxx | 277 + CMakeLua/Source/cmInstallGenerator.h | 109 + CMakeLua/Source/cmInstallProgramsCommand.cxx | 138 + CMakeLua/Source/cmInstallProgramsCommand.h | 111 + CMakeLua/Source/cmInstallScriptGenerator.cxx | 52 + CMakeLua/Source/cmInstallScriptGenerator.h | 38 + CMakeLua/Source/cmInstallTargetGenerator.cxx | 564 + CMakeLua/Source/cmInstallTargetGenerator.h | 77 + CMakeLua/Source/cmInstallTargetsCommand.cxx | 67 + CMakeLua/Source/cmInstallTargetsCommand.h | 86 + CMakeLua/Source/cmLinkDirectoriesCommand.cxx | 37 + CMakeLua/Source/cmLinkDirectoriesCommand.h | 77 + CMakeLua/Source/cmLinkLibrariesCommand.cxx | 64 + CMakeLua/Source/cmLinkLibrariesCommand.h | 88 + CMakeLua/Source/cmListCommand.cxx | 499 + CMakeLua/Source/cmListCommand.h | 122 + CMakeLua/Source/cmListFileCache.cxx | 222 + CMakeLua/Source/cmListFileCache.h | 71 + CMakeLua/Source/cmListFileLexer.c | 2321 + CMakeLua/Source/cmListFileLexer.h | 64 + CMakeLua/Source/cmListFileLexer.in.l | 422 + CMakeLua/Source/cmLoadCacheCommand.cxx | 235 + CMakeLua/Source/cmLoadCacheCommand.h | 95 + CMakeLua/Source/cmLoadCommandCommand.cxx | 318 + CMakeLua/Source/cmLoadCommandCommand.h | 80 + CMakeLua/Source/cmLocalGenerator.cxx | 2734 ++ CMakeLua/Source/cmLocalGenerator.h | 377 + CMakeLua/Source/cmLocalUnixMakefileGenerator3.cxx | 2198 + CMakeLua/Source/cmLocalUnixMakefileGenerator3.h | 384 + CMakeLua/Source/cmLocalVisualStudio6Generator.cxx | 1683 + CMakeLua/Source/cmLocalVisualStudio6Generator.h | 112 + CMakeLua/Source/cmLocalVisualStudio7Generator.cxx | 2050 + CMakeLua/Source/cmLocalVisualStudio7Generator.h | 157 + CMakeLua/Source/cmLocalVisualStudioGenerator.cxx | 211 + CMakeLua/Source/cmLocalVisualStudioGenerator.h | 57 + CMakeLua/Source/cmLocalXCodeGenerator.cxx | 53 + CMakeLua/Source/cmLocalXCodeGenerator.h | 44 + CMakeLua/Source/cmMacroCommand.cxx | 374 + CMakeLua/Source/cmMacroCommand.h | 122 + CMakeLua/Source/cmMakeDepend.cxx | 398 + CMakeLua/Source/cmMakeDepend.h | 172 + CMakeLua/Source/cmMakeDirectoryCommand.cxx | 39 + CMakeLua/Source/cmMakeDirectoryCommand.h | 90 + CMakeLua/Source/cmMakefile.cxx | 3125 ++ CMakeLua/Source/cmMakefile.h | 854 + .../Source/cmMakefileExecutableTargetGenerator.cxx | 507 + .../Source/cmMakefileExecutableTargetGenerator.h | 36 + .../Source/cmMakefileLibraryTargetGenerator.cxx | 951 + CMakeLua/Source/cmMakefileLibraryTargetGenerator.h | 52 + CMakeLua/Source/cmMakefileTargetGenerator.cxx | 1624 + CMakeLua/Source/cmMakefileTargetGenerator.h | 211 + .../Source/cmMakefileUtilityTargetGenerator.cxx | 99 + CMakeLua/Source/cmMakefileUtilityTargetGenerator.h | 36 + CMakeLua/Source/cmMarkAsAdvancedCommand.cxx | 67 + CMakeLua/Source/cmMarkAsAdvancedCommand.h | 90 + CMakeLua/Source/cmMathCommand.cxx | 66 + CMakeLua/Source/cmMathCommand.h | 84 + CMakeLua/Source/cmMessageCommand.cxx | 82 + CMakeLua/Source/cmMessageCommand.h | 84 + CMakeLua/Source/cmObject.h | 56 + CMakeLua/Source/cmOptionCommand.cxx | 77 + CMakeLua/Source/cmOptionCommand.h | 80 + CMakeLua/Source/cmOrderRuntimeDirectories.cxx | 325 + CMakeLua/Source/cmOrderRuntimeDirectories.h | 88 + CMakeLua/Source/cmOutputRequiredFilesCommand.cxx | 238 + CMakeLua/Source/cmOutputRequiredFilesCommand.h | 84 + CMakeLua/Source/cmProjectCommand.cxx | 79 + CMakeLua/Source/cmProjectCommand.h | 82 + CMakeLua/Source/cmProperty.cxx | 45 + CMakeLua/Source/cmProperty.h | 46 + CMakeLua/Source/cmPropertyDefinition.cxx | 52 + CMakeLua/Source/cmPropertyDefinition.h | 64 + CMakeLua/Source/cmPropertyDefinitionMap.cxx | 127 + CMakeLua/Source/cmPropertyDefinitionMap.h | 46 + CMakeLua/Source/cmPropertyMap.cxx | 128 + CMakeLua/Source/cmPropertyMap.h | 48 + CMakeLua/Source/cmQTWrapCPPCommand.cxx | 120 + CMakeLua/Source/cmQTWrapCPPCommand.h | 79 + CMakeLua/Source/cmQTWrapUICommand.cxx | 171 + CMakeLua/Source/cmQTWrapUICommand.h | 80 + CMakeLua/Source/cmRemoveCommand.cxx | 81 + CMakeLua/Source/cmRemoveCommand.h | 86 + CMakeLua/Source/cmRemoveDefinitionsCommand.cxx | 36 + CMakeLua/Source/cmRemoveDefinitionsCommand.h | 76 + CMakeLua/Source/cmReturnCommand.cxx | 26 + CMakeLua/Source/cmReturnCommand.h | 82 + CMakeLua/Source/cmSeparateArgumentsCommand.cxx | 38 + CMakeLua/Source/cmSeparateArgumentsCommand.h | 81 + CMakeLua/Source/cmSetCommand.cxx | 193 + CMakeLua/Source/cmSetCommand.h | 105 + .../Source/cmSetDirectoryPropertiesCommand.cxx | 75 + CMakeLua/Source/cmSetDirectoryPropertiesCommand.h | 83 + CMakeLua/Source/cmSetPropertyCommand.cxx | 361 + CMakeLua/Source/cmSetPropertyCommand.h | 110 + .../Source/cmSetSourceFilesPropertiesCommand.cxx | 199 + .../Source/cmSetSourceFilesPropertiesCommand.h | 100 + CMakeLua/Source/cmSetTargetPropertiesCommand.cxx | 114 + CMakeLua/Source/cmSetTargetPropertiesCommand.h | 172 + CMakeLua/Source/cmSetTestsPropertiesCommand.cxx | 135 + CMakeLua/Source/cmSetTestsPropertiesCommand.h | 84 + CMakeLua/Source/cmSiteNameCommand.cxx | 100 + CMakeLua/Source/cmSiteNameCommand.h | 77 + CMakeLua/Source/cmSourceFile.cxx | 512 + CMakeLua/Source/cmSourceFile.h | 123 + CMakeLua/Source/cmSourceFileLocation.cxx | 212 + CMakeLua/Source/cmSourceFileLocation.h | 104 + CMakeLua/Source/cmSourceGroup.cxx | 160 + CMakeLua/Source/cmSourceGroup.h | 126 + CMakeLua/Source/cmSourceGroupCommand.cxx | 137 + CMakeLua/Source/cmSourceGroupCommand.h | 86 + CMakeLua/Source/cmStandardIncludes.h | 384 + CMakeLua/Source/cmStandardLexer.h | 78 + CMakeLua/Source/cmStringCommand.cxx | 764 + CMakeLua/Source/cmStringCommand.h | 172 + CMakeLua/Source/cmSubdirCommand.cxx | 79 + CMakeLua/Source/cmSubdirCommand.h | 96 + CMakeLua/Source/cmSubdirDependsCommand.cxx | 25 + CMakeLua/Source/cmSubdirDependsCommand.h | 82 + CMakeLua/Source/cmSystemTools.cxx | 2152 + CMakeLua/Source/cmSystemTools.h | 395 + CMakeLua/Source/cmTarget.cxx | 3321 ++ CMakeLua/Source/cmTarget.h | 499 + CMakeLua/Source/cmTargetLinkLibrariesCommand.cxx | 105 + CMakeLua/Source/cmTargetLinkLibrariesCommand.h | 83 + CMakeLua/Source/cmTest.cxx | 144 + CMakeLua/Source/cmTest.h | 79 + CMakeLua/Source/cmTryCompileCommand.cxx | 40 + CMakeLua/Source/cmTryCompileCommand.h | 110 + CMakeLua/Source/cmTryRunCommand.cxx | 384 + CMakeLua/Source/cmTryRunCommand.h | 120 + CMakeLua/Source/cmUseMangledMesaCommand.cxx | 136 + CMakeLua/Source/cmUseMangledMesaCommand.h | 89 + CMakeLua/Source/cmUtilitySourceCommand.cxx | 132 + CMakeLua/Source/cmUtilitySourceCommand.h | 95 + CMakeLua/Source/cmVariableRequiresCommand.cxx | 81 + CMakeLua/Source/cmVariableRequiresCommand.h | 87 + CMakeLua/Source/cmVariableWatch.cxx | 98 + CMakeLua/Source/cmVariableWatch.h | 85 + CMakeLua/Source/cmVariableWatchCommand.cxx | 145 + CMakeLua/Source/cmVariableWatchCommand.h | 99 + CMakeLua/Source/cmVersion.cxx | 46 + CMakeLua/Source/cmVersion.h | 41 + CMakeLua/Source/cmWhileCommand.cxx | 132 + CMakeLua/Source/cmWhileCommand.h | 117 + CMakeLua/Source/cmWin32ProcessExecution.cxx | 946 + CMakeLua/Source/cmWin32ProcessExecution.h | 174 + CMakeLua/Source/cmWriteFileCommand.cxx | 104 + CMakeLua/Source/cmWriteFileCommand.h | 90 + CMakeLua/Source/cmXCode21Object.cxx | 110 + CMakeLua/Source/cmXCode21Object.h | 33 + CMakeLua/Source/cmXCodeObject.cxx | 254 + CMakeLua/Source/cmXCodeObject.h | 163 + CMakeLua/Source/cmXMLParser.cxx | 220 + CMakeLua/Source/cmXMLParser.h | 111 + CMakeLua/Source/cmake.cxx | 3997 ++ CMakeLua/Source/cmake.h | 467 + CMakeLua/Source/cmakemain.cxx | 503 + CMakeLua/Source/cmaketest.h.in | 21 + CMakeLua/Source/cmakewizard.cxx | 159 + CMakeLua/Source/cmakewizard.h | 47 + CMakeLua/Source/cmakexbuild.cxx | 97 + CMakeLua/Source/cmw9xcom.cxx | 50 + CMakeLua/Source/ctest.cxx | 279 + CMakeLua/Source/kwsys/Base64.c | 281 + CMakeLua/Source/kwsys/Base64.h.in | 118 + CMakeLua/Source/kwsys/CMakeEmptyInputFile.in | 1 + CMakeLua/Source/kwsys/CMakeLists.txt | 989 + CMakeLua/Source/kwsys/CTestConfig.cmake | 3 + CMakeLua/Source/kwsys/CVS/Entries | 82 + CMakeLua/Source/kwsys/CVS/Repository | 1 + CMakeLua/Source/kwsys/CVS/Root | 1 + CMakeLua/Source/kwsys/CVS/Tag | 1 + CMakeLua/Source/kwsys/CVS/Template | 22 + CMakeLua/Source/kwsys/CheckCXXSourceRuns.cmake | 62 + CMakeLua/Source/kwsys/CommandLineArguments.cxx | 861 + CMakeLua/Source/kwsys/CommandLineArguments.hxx.in | 288 + CMakeLua/Source/kwsys/Configure.h.in | 124 + CMakeLua/Source/kwsys/Configure.hxx.in | 168 + CMakeLua/Source/kwsys/Copyright.txt | 33 + CMakeLua/Source/kwsys/DateStamp.h.in | 44 + CMakeLua/Source/kwsys/Directory.cxx | 252 + CMakeLua/Source/kwsys/Directory.hxx.in | 82 + CMakeLua/Source/kwsys/DynamicLoader.cxx | 560 + CMakeLua/Source/kwsys/DynamicLoader.hxx.in | 103 + CMakeLua/Source/kwsys/EncodeExecutable.c | 115 + CMakeLua/Source/kwsys/ExtraTest.cmake.in | 1 + CMakeLua/Source/kwsys/FundamentalType.h.in | 143 + CMakeLua/Source/kwsys/Glob.cxx | 503 + CMakeLua/Source/kwsys/Glob.hxx.in | 106 + CMakeLua/Source/kwsys/IOStream.cxx | 270 + CMakeLua/Source/kwsys/IOStream.hxx.in | 148 + CMakeLua/Source/kwsys/MD5.c | 510 + CMakeLua/Source/kwsys/MD5.h.in | 105 + CMakeLua/Source/kwsys/Process.h.in | 426 + CMakeLua/Source/kwsys/ProcessFwd9x.c | 213 + CMakeLua/Source/kwsys/ProcessUNIX.c | 2904 ++ CMakeLua/Source/kwsys/ProcessWin32.c | 2941 ++ CMakeLua/Source/kwsys/README.txt | 10 + CMakeLua/Source/kwsys/Registry.cxx | 819 + CMakeLua/Source/kwsys/Registry.hxx.in | 109 + CMakeLua/Source/kwsys/RegularExpression.cxx | 1217 + CMakeLua/Source/kwsys/RegularExpression.hxx.in | 399 + CMakeLua/Source/kwsys/SharedForward.h.in | 720 + CMakeLua/Source/kwsys/String.c | 107 + CMakeLua/Source/kwsys/String.h.in | 65 + CMakeLua/Source/kwsys/String.hxx.in | 67 + CMakeLua/Source/kwsys/System.c | 568 + CMakeLua/Source/kwsys/System.h.in | 128 + CMakeLua/Source/kwsys/SystemInformation.cxx | 3164 ++ CMakeLua/Source/kwsys/SystemInformation.hxx.in | 91 + CMakeLua/Source/kwsys/SystemTools.cxx | 4540 ++ CMakeLua/Source/kwsys/SystemTools.hxx.in | 882 + CMakeLua/Source/kwsys/Terminal.c | 413 + CMakeLua/Source/kwsys/Terminal.h.in | 157 + CMakeLua/Source/kwsys/auto_ptr.hxx.in | 203 + CMakeLua/Source/kwsys/hash_fun.hxx.in | 117 + CMakeLua/Source/kwsys/hash_map.hxx.in | 463 + CMakeLua/Source/kwsys/hash_set.hxx.in | 447 + CMakeLua/Source/kwsys/hashtable.hxx.in | 1263 + CMakeLua/Source/kwsys/kwsysDateStamp.cmake | 10 + CMakeLua/Source/kwsys/kwsysDateStamp.py | 32 + CMakeLua/Source/kwsys/kwsysHeaderDump.pl | 50 + CMakeLua/Source/kwsys/kwsysPlatformTests.cmake | 153 + CMakeLua/Source/kwsys/kwsysPlatformTestsC.c | 51 + CMakeLua/Source/kwsys/kwsysPlatformTestsCXX.cxx | 442 + CMakeLua/Source/kwsys/kwsysPrivate.h | 43 + CMakeLua/Source/kwsys/kwsys_cstddef.hxx.in | 37 + CMakeLua/Source/kwsys/kwsys_ios_fstream.h.in | 48 + CMakeLua/Source/kwsys/kwsys_ios_iosfwd.h.in | 51 + CMakeLua/Source/kwsys/kwsys_ios_iostream.h.in | 101 + CMakeLua/Source/kwsys/kwsys_ios_sstream.h.in | 201 + CMakeLua/Source/kwsys/kwsys_stl.hxx.in | 51 + CMakeLua/Source/kwsys/kwsys_stl_string.hxx.in | 125 + CMakeLua/Source/kwsys/testAutoPtr.cxx | 165 + CMakeLua/Source/kwsys/testCommandLineArguments.cxx | 189 + .../Source/kwsys/testCommandLineArguments1.cxx | 108 + CMakeLua/Source/kwsys/testDynamicLoader.cxx | 131 + CMakeLua/Source/kwsys/testDynload.c | 11 + CMakeLua/Source/kwsys/testEncode.c | 78 + CMakeLua/Source/kwsys/testFail.c | 24 + CMakeLua/Source/kwsys/testHashSTL.cxx | 77 + CMakeLua/Source/kwsys/testIOS.cxx | 123 + CMakeLua/Source/kwsys/testProcess.c | 524 + CMakeLua/Source/kwsys/testRegistry.cxx | 112 + CMakeLua/Source/kwsys/testSystemInformation.cxx | 51 + CMakeLua/Source/kwsys/testSystemTools.bin | Bin 0 -> 766 bytes CMakeLua/Source/kwsys/testSystemTools.cxx | 362 + CMakeLua/Source/kwsys/testSystemTools.h.in | 22 + CMakeLua/Source/kwsys/testTerminal.c | 33 + CMakeLua/Templates/AppleInfo.plist | 36 + CMakeLua/Templates/CMakeLists.txt | 6 + CMakeLua/Templates/CMakeVSMacros1.vsmacros | Bin 0 -> 88064 bytes .../CMakeVisualStudio6Configurations.cmake | 3 + CMakeLua/Templates/CPack.GenericDescription.txt | 5 + CMakeLua/Templates/CPack.GenericLicense.txt | 5 + CMakeLua/Templates/CPack.GenericWelcome.txt | 1 + CMakeLua/Templates/CPackConfig.cmake.in | 29 + CMakeLua/Templates/CTestScript.cmake.in | 33 + CMakeLua/Templates/CVS/Entries | 21 + CMakeLua/Templates/CVS/Repository | 1 + CMakeLua/Templates/CVS/Root | 1 + CMakeLua/Templates/CVS/Tag | 1 + CMakeLua/Templates/CVS/Template | 22 + CMakeLua/Templates/DLLFooter.dsptemplate | 4 + CMakeLua/Templates/DLLHeader.dsptemplate | 184 + CMakeLua/Templates/EXEFooter.dsptemplate | 4 + CMakeLua/Templates/EXEHeader.dsptemplate | 175 + CMakeLua/Templates/EXEWinHeader.dsptemplate | 179 + CMakeLua/Templates/TestDriver.cxx.in | 139 + CMakeLua/Templates/UtilityFooter.dsptemplate | 2 + CMakeLua/Templates/UtilityHeader.dsptemplate | 99 + CMakeLua/Templates/cygwin-package.sh.in | 101 + CMakeLua/Templates/staticLibFooter.dsptemplate | 4 + CMakeLua/Templates/staticLibHeader.dsptemplate | 165 + CMakeLua/Tests/.NoDartCoverage | 1 + CMakeLua/Tests/Assembler/CMakeLists.txt | 25 + CMakeLua/Tests/Assembler/CVS/Entries | 4 + CMakeLua/Tests/Assembler/CVS/Repository | 1 + CMakeLua/Tests/Assembler/CVS/Root | 1 + CMakeLua/Tests/Assembler/CVS/Tag | 1 + CMakeLua/Tests/Assembler/CVS/Template | 22 + CMakeLua/Tests/Assembler/main-linux-x86-gas.s | 28 + CMakeLua/Tests/Assembler/main.c | 12 + CMakeLua/Tests/BuildDepends/CMakeLists.txt | 153 + CMakeLua/Tests/BuildDepends/CVS/Entries | 2 + CMakeLua/Tests/BuildDepends/CVS/Repository | 1 + CMakeLua/Tests/BuildDepends/CVS/Root | 1 + CMakeLua/Tests/BuildDepends/CVS/Tag | 1 + CMakeLua/Tests/BuildDepends/CVS/Template | 22 + CMakeLua/Tests/BuildDepends/Project/CMakeLists.txt | 61 + CMakeLua/Tests/BuildDepends/Project/CVS/Entries | 7 + CMakeLua/Tests/BuildDepends/Project/CVS/Repository | 1 + CMakeLua/Tests/BuildDepends/Project/CVS/Root | 1 + CMakeLua/Tests/BuildDepends/Project/CVS/Tag | 1 + CMakeLua/Tests/BuildDepends/Project/CVS/Template | 22 + CMakeLua/Tests/BuildDepends/Project/bar.cxx | 25 + CMakeLua/Tests/BuildDepends/Project/dep.cxx | 1 + CMakeLua/Tests/BuildDepends/Project/dep_custom.cxx | 1 + CMakeLua/Tests/BuildDepends/Project/generator.cxx | 24 + CMakeLua/Tests/BuildDepends/Project/zot.cxx | 10 + CMakeLua/Tests/BundleTest/BundleLib.cxx | 63 + .../Tests/BundleTest/BundleSubDir/CMakeLists.txt | 36 + CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Entries | 2 + .../Tests/BundleTest/BundleSubDir/CVS/Repository | 1 + CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Root | 1 + CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Tag | 1 + .../Tests/BundleTest/BundleSubDir/CVS/Template | 22 + CMakeLua/Tests/BundleTest/BundleTest.cxx | 9 + CMakeLua/Tests/BundleTest/CMakeLists.txt | 92 + CMakeLua/Tests/BundleTest/CVS/Entries | 6 + CMakeLua/Tests/BundleTest/CVS/Repository | 1 + CMakeLua/Tests/BundleTest/CVS/Root | 1 + CMakeLua/Tests/BundleTest/CVS/Tag | 1 + CMakeLua/Tests/BundleTest/CVS/Template | 22 + CMakeLua/Tests/BundleTest/SomeRandomFile.txt | 0 .../Tests/BundleTest/randomResourceFile.plist.in | 9 + CMakeLua/Tests/CMakeLists.txt | 891 + CMakeLua/Tests/CMakeTests/CMakeLists.txt | 14 + CMakeLua/Tests/CMakeTests/CVS/Entries | 8 + CMakeLua/Tests/CMakeTests/CVS/Repository | 1 + CMakeLua/Tests/CMakeTests/CVS/Root | 1 + CMakeLua/Tests/CMakeTests/CVS/Tag | 1 + CMakeLua/Tests/CMakeTests/CVS/Template | 22 + CMakeLua/Tests/CMakeTests/DummyToolchain.cmake | 8 + CMakeLua/Tests/CMakeTests/FindBaseTest.cmake.in | 44 + CMakeLua/Tests/CMakeTests/IncludeTest.cmake.in | 37 + CMakeLua/Tests/CMakeTests/ListTest.cmake.in | 84 + CMakeLua/Tests/CMakeTests/ToolchainTest.cmake.in | 137 + .../Tests/CMakeTests/VariableWatchTest.cmake.in | 22 + CMakeLua/Tests/CMakeTests/include/CVS/Entries | 2 + CMakeLua/Tests/CMakeTests/include/CVS/Repository | 1 + CMakeLua/Tests/CMakeTests/include/CVS/Root | 1 + CMakeLua/Tests/CMakeTests/include/CVS/Tag | 1 + CMakeLua/Tests/CMakeTests/include/CVS/Template | 22 + .../include/cmake_i_do_not_exist_in_the_system.h | 1 + CMakeLua/Tests/COnly/CMakeLists.txt | 20 + CMakeLua/Tests/COnly/CVS/Entries | 9 + CMakeLua/Tests/COnly/CVS/Repository | 1 + CMakeLua/Tests/COnly/CVS/Root | 1 + CMakeLua/Tests/COnly/CVS/Tag | 1 + CMakeLua/Tests/COnly/CVS/Template | 22 + CMakeLua/Tests/COnly/conly.c | 23 + CMakeLua/Tests/COnly/foo.c | 1 + CMakeLua/Tests/COnly/foo.h | 1 + CMakeLua/Tests/COnly/libc1.c | 4 + CMakeLua/Tests/COnly/libc1.h | 1 + CMakeLua/Tests/COnly/libc2.c | 6 + CMakeLua/Tests/COnly/libc2.h | 11 + CMakeLua/Tests/CTestTest/CMakeLists.txt | 11 + CMakeLua/Tests/CTestTest/CVS/Entries | 3 + CMakeLua/Tests/CTestTest/CVS/Repository | 1 + CMakeLua/Tests/CTestTest/CVS/Root | 1 + CMakeLua/Tests/CTestTest/CVS/Tag | 1 + CMakeLua/Tests/CTestTest/CVS/Template | 22 + CMakeLua/Tests/CTestTest/test.cmake.in | 71 + CMakeLua/Tests/CTestTest2/CMakeLists.txt | 12 + CMakeLua/Tests/CTestTest2/CVS/Entries | 3 + CMakeLua/Tests/CTestTest2/CVS/Repository | 1 + CMakeLua/Tests/CTestTest2/CVS/Root | 1 + CMakeLua/Tests/CTestTest2/CVS/Tag | 1 + CMakeLua/Tests/CTestTest2/CVS/Template | 22 + CMakeLua/Tests/CTestTest2/test.cmake.in | 44 + CMakeLua/Tests/CTestTest3/CVS/Entries | 2 + CMakeLua/Tests/CTestTest3/CVS/Repository | 1 + CMakeLua/Tests/CTestTest3/CVS/Root | 1 + CMakeLua/Tests/CTestTest3/CVS/Tag | 1 + CMakeLua/Tests/CTestTest3/CVS/Template | 22 + CMakeLua/Tests/CTestTest3/test.cmake.in | 107 + CMakeLua/Tests/CVS/Entries | 67 + CMakeLua/Tests/CVS/Repository | 1 + CMakeLua/Tests/CVS/Root | 1 + CMakeLua/Tests/CVS/Tag | 1 + CMakeLua/Tests/CVS/Template | 22 + CMakeLua/Tests/CommandLineTest/CMakeLists.txt | 88 + CMakeLua/Tests/CommandLineTest/CVS/Entries | 4 + CMakeLua/Tests/CommandLineTest/CVS/Repository | 1 + CMakeLua/Tests/CommandLineTest/CVS/Root | 1 + CMakeLua/Tests/CommandLineTest/CVS/Tag | 1 + CMakeLua/Tests/CommandLineTest/CVS/Template | 22 + CMakeLua/Tests/CommandLineTest/CommandLineTest.cxx | 4 + CMakeLua/Tests/CommandLineTest/PreLoad.cmake | 1 + CMakeLua/Tests/Complex/CMakeLists.txt | 374 + CMakeLua/Tests/Complex/CVS/Entries | 8 + CMakeLua/Tests/Complex/CVS/Repository | 1 + CMakeLua/Tests/Complex/CVS/Root | 1 + CMakeLua/Tests/Complex/CVS/Tag | 1 + CMakeLua/Tests/Complex/CVS/Template | 22 + CMakeLua/Tests/Complex/Cache/CMakeCache.txt | 34 + CMakeLua/Tests/Complex/Cache/CVS/Entries | 2 + CMakeLua/Tests/Complex/Cache/CVS/Repository | 1 + CMakeLua/Tests/Complex/Cache/CVS/Root | 1 + CMakeLua/Tests/Complex/Cache/CVS/Tag | 1 + CMakeLua/Tests/Complex/Cache/CVS/Template | 22 + CMakeLua/Tests/Complex/Executable/A.cxx | 7 + CMakeLua/Tests/Complex/Executable/A.h | 4 + CMakeLua/Tests/Complex/Executable/A.hh | 2 + CMakeLua/Tests/Complex/Executable/A.txt | 1 + CMakeLua/Tests/Complex/Executable/CMakeLists.txt | 157 + CMakeLua/Tests/Complex/Executable/CVS/Entries | 16 + CMakeLua/Tests/Complex/Executable/CVS/Repository | 1 + CMakeLua/Tests/Complex/Executable/CVS/Root | 1 + CMakeLua/Tests/Complex/Executable/CVS/Tag | 1 + CMakeLua/Tests/Complex/Executable/CVS/Template | 22 + CMakeLua/Tests/Complex/Executable/Included.cmake | 2 + CMakeLua/Tests/Complex/Executable/Sub1/CVS/Entries | 2 + .../Tests/Complex/Executable/Sub1/CVS/Repository | 1 + CMakeLua/Tests/Complex/Executable/Sub1/CVS/Root | 1 + CMakeLua/Tests/Complex/Executable/Sub1/CVS/Tag | 1 + .../Tests/Complex/Executable/Sub1/CVS/Template | 22 + .../Complex/Executable/Sub1/NameConflictTest.c | 4 + CMakeLua/Tests/Complex/Executable/Sub2/CVS/Entries | 2 + .../Tests/Complex/Executable/Sub2/CVS/Repository | 1 + CMakeLua/Tests/Complex/Executable/Sub2/CVS/Root | 1 + CMakeLua/Tests/Complex/Executable/Sub2/CVS/Tag | 1 + .../Tests/Complex/Executable/Sub2/CVS/Template | 22 + .../Complex/Executable/Sub2/NameConflictTest.c | 4 + .../Tests/Complex/Executable/Temp/CMakeLists.txt | 8 + CMakeLua/Tests/Complex/Executable/Temp/CVS/Entries | 2 + .../Tests/Complex/Executable/Temp/CVS/Repository | 1 + CMakeLua/Tests/Complex/Executable/Temp/CVS/Root | 1 + CMakeLua/Tests/Complex/Executable/Temp/CVS/Tag | 1 + .../Tests/Complex/Executable/Temp/CVS/Template | 22 + CMakeLua/Tests/Complex/Executable/cmVersion.h.in | 1 + CMakeLua/Tests/Complex/Executable/complex.cxx | 1220 + CMakeLua/Tests/Complex/Executable/complex.file.cxx | 8 + .../Tests/Complex/Executable/complex_nobuild.cxx | 1 + CMakeLua/Tests/Complex/Executable/notInAllExe.cxx | 10 + .../Tests/Complex/Executable/testSystemDir.cxx | 3 + CMakeLua/Tests/Complex/Executable/testcflags.c | 26 + CMakeLua/Tests/Complex/Library/CMakeLists.txt | 134 + CMakeLua/Tests/Complex/Library/CVS/Entries | 17 + CMakeLua/Tests/Complex/Library/CVS/Repository | 1 + CMakeLua/Tests/Complex/Library/CVS/Root | 1 + CMakeLua/Tests/Complex/Library/CVS/Tag | 1 + CMakeLua/Tests/Complex/Library/CVS/Template | 22 + .../Tests/Complex/Library/ExtraSources/CVS/Entries | 3 + .../Complex/Library/ExtraSources/CVS/Repository | 1 + .../Tests/Complex/Library/ExtraSources/CVS/Root | 1 + .../Tests/Complex/Library/ExtraSources/CVS/Tag | 1 + .../Complex/Library/ExtraSources/CVS/Template | 22 + .../Tests/Complex/Library/ExtraSources/file1.cxx | 4 + .../Tests/Complex/Library/ExtraSources/file1.h | 1 + .../Tests/Complex/Library/SystemDir/CVS/Entries | 2 + .../Tests/Complex/Library/SystemDir/CVS/Repository | 1 + CMakeLua/Tests/Complex/Library/SystemDir/CVS/Root | 1 + CMakeLua/Tests/Complex/Library/SystemDir/CVS/Tag | 1 + .../Tests/Complex/Library/SystemDir/CVS/Template | 22 + .../Complex/Library/SystemDir/testSystemDir.h | 2 + CMakeLua/Tests/Complex/Library/TestLink.c | 8 + CMakeLua/Tests/Complex/Library/create_file.cxx | 28 + CMakeLua/Tests/Complex/Library/dummy | 0 CMakeLua/Tests/Complex/Library/empty.h | 0 CMakeLua/Tests/Complex/Library/file2.cxx | 10 + CMakeLua/Tests/Complex/Library/file2.h | 1 + CMakeLua/Tests/Complex/Library/moduleFile.c | 6 + CMakeLua/Tests/Complex/Library/moduleFile.h | 12 + CMakeLua/Tests/Complex/Library/notInAllLib.cxx | 5 + CMakeLua/Tests/Complex/Library/sharedFile.cxx | 6 + CMakeLua/Tests/Complex/Library/sharedFile.h | 12 + CMakeLua/Tests/Complex/Library/testConly.c | 13 + CMakeLua/Tests/Complex/Library/testConly.h | 13 + .../Tests/Complex/Library/test_preprocess.cmake | 7 + CMakeLua/Tests/Complex/VarTests.cmake | 198 + CMakeLua/Tests/Complex/cmTestConfigure.h.in | 83 + CMakeLua/Tests/Complex/cmTestConfigureEscape.h.in | 1 + CMakeLua/Tests/Complex/cmTestGeneratedHeader.h.in | 1 + CMakeLua/Tests/ComplexOneConfig/CMakeLists.txt | 374 + CMakeLua/Tests/ComplexOneConfig/CVS/Entries | 8 + CMakeLua/Tests/ComplexOneConfig/CVS/Repository | 1 + CMakeLua/Tests/ComplexOneConfig/CVS/Root | 1 + CMakeLua/Tests/ComplexOneConfig/CVS/Tag | 1 + CMakeLua/Tests/ComplexOneConfig/CVS/Template | 22 + .../Tests/ComplexOneConfig/Cache/CMakeCache.txt | 34 + CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Entries | 2 + .../Tests/ComplexOneConfig/Cache/CVS/Repository | 1 + CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Root | 1 + CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Tag | 1 + CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Template | 22 + CMakeLua/Tests/ComplexOneConfig/Executable/A.cxx | 7 + CMakeLua/Tests/ComplexOneConfig/Executable/A.h | 4 + CMakeLua/Tests/ComplexOneConfig/Executable/A.hh | 2 + CMakeLua/Tests/ComplexOneConfig/Executable/A.txt | 1 + .../ComplexOneConfig/Executable/CMakeLists.txt | 157 + .../Tests/ComplexOneConfig/Executable/CVS/Entries | 16 + .../ComplexOneConfig/Executable/CVS/Repository | 1 + .../Tests/ComplexOneConfig/Executable/CVS/Root | 1 + CMakeLua/Tests/ComplexOneConfig/Executable/CVS/Tag | 1 + .../Tests/ComplexOneConfig/Executable/CVS/Template | 22 + .../ComplexOneConfig/Executable/Included.cmake | 2 + .../ComplexOneConfig/Executable/Sub1/CVS/Entries | 2 + .../Executable/Sub1/CVS/Repository | 1 + .../ComplexOneConfig/Executable/Sub1/CVS/Root | 1 + .../Tests/ComplexOneConfig/Executable/Sub1/CVS/Tag | 1 + .../ComplexOneConfig/Executable/Sub1/CVS/Template | 22 + .../Executable/Sub1/NameConflictTest.c | 4 + .../ComplexOneConfig/Executable/Sub2/CVS/Entries | 2 + .../Executable/Sub2/CVS/Repository | 1 + .../ComplexOneConfig/Executable/Sub2/CVS/Root | 1 + .../Tests/ComplexOneConfig/Executable/Sub2/CVS/Tag | 1 + .../ComplexOneConfig/Executable/Sub2/CVS/Template | 22 + .../Executable/Sub2/NameConflictTest.c | 4 + .../Executable/Temp/CMakeLists.txt | 8 + .../ComplexOneConfig/Executable/Temp/CVS/Entries | 2 + .../Executable/Temp/CVS/Repository | 1 + .../ComplexOneConfig/Executable/Temp/CVS/Root | 1 + .../Tests/ComplexOneConfig/Executable/Temp/CVS/Tag | 1 + .../ComplexOneConfig/Executable/Temp/CVS/Template | 22 + .../ComplexOneConfig/Executable/cmVersion.h.in | 1 + .../Tests/ComplexOneConfig/Executable/complex.cxx | 1220 + .../ComplexOneConfig/Executable/complex.file.cxx | 8 + .../Executable/complex_nobuild.cxx | 1 + .../ComplexOneConfig/Executable/notInAllExe.cxx | 10 + .../ComplexOneConfig/Executable/testSystemDir.cxx | 3 + .../Tests/ComplexOneConfig/Executable/testcflags.c | 26 + .../Tests/ComplexOneConfig/Library/CMakeLists.txt | 134 + .../Tests/ComplexOneConfig/Library/CVS/Entries | 17 + .../Tests/ComplexOneConfig/Library/CVS/Repository | 1 + CMakeLua/Tests/ComplexOneConfig/Library/CVS/Root | 1 + CMakeLua/Tests/ComplexOneConfig/Library/CVS/Tag | 1 + .../Tests/ComplexOneConfig/Library/CVS/Template | 22 + .../Library/ExtraSources/CVS/Entries | 3 + .../Library/ExtraSources/CVS/Repository | 1 + .../ComplexOneConfig/Library/ExtraSources/CVS/Root | 1 + .../ComplexOneConfig/Library/ExtraSources/CVS/Tag | 1 + .../Library/ExtraSources/CVS/Template | 22 + .../Library/ExtraSources/file1.cxx | 4 + .../ComplexOneConfig/Library/ExtraSources/file1.h | 1 + .../ComplexOneConfig/Library/SystemDir/CVS/Entries | 2 + .../Library/SystemDir/CVS/Repository | 1 + .../ComplexOneConfig/Library/SystemDir/CVS/Root | 1 + .../ComplexOneConfig/Library/SystemDir/CVS/Tag | 1 + .../Library/SystemDir/CVS/Template | 22 + .../Library/SystemDir/testSystemDir.h | 2 + CMakeLua/Tests/ComplexOneConfig/Library/TestLink.c | 8 + .../Tests/ComplexOneConfig/Library/create_file.cxx | 28 + CMakeLua/Tests/ComplexOneConfig/Library/dummy | 0 CMakeLua/Tests/ComplexOneConfig/Library/empty.h | 0 CMakeLua/Tests/ComplexOneConfig/Library/file2.cxx | 10 + CMakeLua/Tests/ComplexOneConfig/Library/file2.h | 1 + .../Tests/ComplexOneConfig/Library/moduleFile.c | 6 + .../Tests/ComplexOneConfig/Library/moduleFile.h | 12 + .../Tests/ComplexOneConfig/Library/notInAllLib.cxx | 5 + .../Tests/ComplexOneConfig/Library/sharedFile.cxx | 6 + .../Tests/ComplexOneConfig/Library/sharedFile.h | 12 + .../Tests/ComplexOneConfig/Library/testConly.c | 13 + .../Tests/ComplexOneConfig/Library/testConly.h | 13 + .../ComplexOneConfig/Library/test_preprocess.cmake | 7 + CMakeLua/Tests/ComplexOneConfig/VarTests.cmake | 198 + .../Tests/ComplexOneConfig/cmTestConfigure.h.in | 83 + .../ComplexOneConfig/cmTestConfigureEscape.h.in | 1 + .../ComplexOneConfig/cmTestGeneratedHeader.h.in | 1 + CMakeLua/Tests/ComplexRelativePaths/CMakeLists.txt | 374 + CMakeLua/Tests/ComplexRelativePaths/CVS/Entries | 8 + CMakeLua/Tests/ComplexRelativePaths/CVS/Repository | 1 + CMakeLua/Tests/ComplexRelativePaths/CVS/Root | 1 + CMakeLua/Tests/ComplexRelativePaths/CVS/Tag | 1 + CMakeLua/Tests/ComplexRelativePaths/CVS/Template | 22 + .../ComplexRelativePaths/Cache/CMakeCache.txt | 34 + .../Tests/ComplexRelativePaths/Cache/CVS/Entries | 2 + .../ComplexRelativePaths/Cache/CVS/Repository | 1 + CMakeLua/Tests/ComplexRelativePaths/Cache/CVS/Root | 1 + CMakeLua/Tests/ComplexRelativePaths/Cache/CVS/Tag | 1 + .../Tests/ComplexRelativePaths/Cache/CVS/Template | 22 + .../Tests/ComplexRelativePaths/Executable/A.cxx | 7 + CMakeLua/Tests/ComplexRelativePaths/Executable/A.h | 4 + .../Tests/ComplexRelativePaths/Executable/A.hh | 2 + .../Tests/ComplexRelativePaths/Executable/A.txt | 1 + .../ComplexRelativePaths/Executable/CMakeLists.txt | 157 + .../ComplexRelativePaths/Executable/CVS/Entries | 16 + .../ComplexRelativePaths/Executable/CVS/Repository | 1 + .../Tests/ComplexRelativePaths/Executable/CVS/Root | 1 + .../Tests/ComplexRelativePaths/Executable/CVS/Tag | 1 + .../ComplexRelativePaths/Executable/CVS/Template | 22 + .../ComplexRelativePaths/Executable/Included.cmake | 2 + .../Executable/Sub1/CVS/Entries | 2 + .../Executable/Sub1/CVS/Repository | 1 + .../ComplexRelativePaths/Executable/Sub1/CVS/Root | 1 + .../ComplexRelativePaths/Executable/Sub1/CVS/Tag | 1 + .../Executable/Sub1/CVS/Template | 22 + .../Executable/Sub1/NameConflictTest.c | 4 + .../Executable/Sub2/CVS/Entries | 2 + .../Executable/Sub2/CVS/Repository | 1 + .../ComplexRelativePaths/Executable/Sub2/CVS/Root | 1 + .../ComplexRelativePaths/Executable/Sub2/CVS/Tag | 1 + .../Executable/Sub2/CVS/Template | 22 + .../Executable/Sub2/NameConflictTest.c | 4 + .../Executable/Temp/CMakeLists.txt | 8 + .../Executable/Temp/CVS/Entries | 2 + .../Executable/Temp/CVS/Repository | 1 + .../ComplexRelativePaths/Executable/Temp/CVS/Root | 1 + .../ComplexRelativePaths/Executable/Temp/CVS/Tag | 1 + .../Executable/Temp/CVS/Template | 22 + .../ComplexRelativePaths/Executable/cmVersion.h.in | 1 + .../ComplexRelativePaths/Executable/complex.cxx | 1220 + .../Executable/complex.file.cxx | 8 + .../Executable/complex_nobuild.cxx | 1 + .../Executable/notInAllExe.cxx | 10 + .../Executable/testSystemDir.cxx | 3 + .../ComplexRelativePaths/Executable/testcflags.c | 26 + .../ComplexRelativePaths/Library/CMakeLists.txt | 134 + .../Tests/ComplexRelativePaths/Library/CVS/Entries | 17 + .../ComplexRelativePaths/Library/CVS/Repository | 1 + .../Tests/ComplexRelativePaths/Library/CVS/Root | 1 + .../Tests/ComplexRelativePaths/Library/CVS/Tag | 1 + .../ComplexRelativePaths/Library/CVS/Template | 22 + .../Library/ExtraSources/CVS/Entries | 3 + .../Library/ExtraSources/CVS/Repository | 1 + .../Library/ExtraSources/CVS/Root | 1 + .../Library/ExtraSources/CVS/Tag | 1 + .../Library/ExtraSources/CVS/Template | 22 + .../Library/ExtraSources/file1.cxx | 4 + .../Library/ExtraSources/file1.h | 1 + .../Library/SystemDir/CVS/Entries | 2 + .../Library/SystemDir/CVS/Repository | 1 + .../Library/SystemDir/CVS/Root | 1 + .../ComplexRelativePaths/Library/SystemDir/CVS/Tag | 1 + .../Library/SystemDir/CVS/Template | 22 + .../Library/SystemDir/testSystemDir.h | 2 + .../Tests/ComplexRelativePaths/Library/TestLink.c | 8 + .../ComplexRelativePaths/Library/create_file.cxx | 28 + CMakeLua/Tests/ComplexRelativePaths/Library/dummy | 0 .../Tests/ComplexRelativePaths/Library/empty.h | 0 .../Tests/ComplexRelativePaths/Library/file2.cxx | 10 + .../Tests/ComplexRelativePaths/Library/file2.h | 1 + .../ComplexRelativePaths/Library/moduleFile.c | 6 + .../ComplexRelativePaths/Library/moduleFile.h | 12 + .../ComplexRelativePaths/Library/notInAllLib.cxx | 5 + .../ComplexRelativePaths/Library/sharedFile.cxx | 6 + .../ComplexRelativePaths/Library/sharedFile.h | 12 + .../Tests/ComplexRelativePaths/Library/testConly.c | 13 + .../Tests/ComplexRelativePaths/Library/testConly.h | 13 + .../Library/test_preprocess.cmake | 7 + CMakeLua/Tests/ComplexRelativePaths/VarTests.cmake | 198 + .../ComplexRelativePaths/cmTestConfigure.h.in | 83 + .../cmTestConfigureEscape.h.in | 1 + .../cmTestGeneratedHeader.h.in | 1 + CMakeLua/Tests/ConvLibrary/CMakeLists.txt | 19 + CMakeLua/Tests/ConvLibrary/CVS/Entries | 5 + CMakeLua/Tests/ConvLibrary/CVS/Repository | 1 + CMakeLua/Tests/ConvLibrary/CVS/Root | 1 + CMakeLua/Tests/ConvLibrary/CVS/Tag | 1 + CMakeLua/Tests/ConvLibrary/CVS/Template | 22 + CMakeLua/Tests/ConvLibrary/bar.c | 4 + CMakeLua/Tests/ConvLibrary/bartest.cxx | 37 + CMakeLua/Tests/ConvLibrary/foo.cxx | 4 + CMakeLua/Tests/ConvLibrary/sub1/CVS/Entries | 2 + CMakeLua/Tests/ConvLibrary/sub1/CVS/Repository | 1 + CMakeLua/Tests/ConvLibrary/sub1/CVS/Root | 1 + CMakeLua/Tests/ConvLibrary/sub1/CVS/Tag | 1 + CMakeLua/Tests/ConvLibrary/sub1/CVS/Template | 22 + CMakeLua/Tests/ConvLibrary/sub1/car.cxx | 4 + CMakeLua/Tests/CustComDepend/CMakeLists.txt | 13 + CMakeLua/Tests/CustComDepend/CVS/Entries | 4 + CMakeLua/Tests/CustComDepend/CVS/Repository | 1 + CMakeLua/Tests/CustComDepend/CVS/Root | 1 + CMakeLua/Tests/CustComDepend/CVS/Tag | 1 + CMakeLua/Tests/CustComDepend/CVS/Template | 22 + CMakeLua/Tests/CustComDepend/bar.h | 9 + CMakeLua/Tests/CustComDepend/foo.cxx | 15 + CMakeLua/Tests/CustomCommand/CMakeLists.txt | 355 + CMakeLua/Tests/CustomCommand/CVS/Entries | 13 + CMakeLua/Tests/CustomCommand/CVS/Repository | 1 + CMakeLua/Tests/CustomCommand/CVS/Root | 1 + CMakeLua/Tests/CustomCommand/CVS/Tag | 1 + CMakeLua/Tests/CustomCommand/CVS/Template | 22 + .../CustomCommand/GeneratedHeader/CMakeLists.txt | 13 + .../CustomCommand/GeneratedHeader/CVS/Entries | 4 + .../CustomCommand/GeneratedHeader/CVS/Repository | 1 + .../Tests/CustomCommand/GeneratedHeader/CVS/Root | 1 + .../Tests/CustomCommand/GeneratedHeader/CVS/Tag | 1 + .../CustomCommand/GeneratedHeader/CVS/Template | 22 + .../CustomCommand/GeneratedHeader/generated.h.in | 1 + .../Tests/CustomCommand/GeneratedHeader/main.cpp | 5 + .../GeneratorInExtraDir/CMakeLists.txt | 6 + .../CustomCommand/GeneratorInExtraDir/CVS/Entries | 2 + .../GeneratorInExtraDir/CVS/Repository | 1 + .../CustomCommand/GeneratorInExtraDir/CVS/Root | 1 + .../CustomCommand/GeneratorInExtraDir/CVS/Tag | 1 + .../CustomCommand/GeneratorInExtraDir/CVS/Template | 22 + .../Tests/CustomCommand/check_command_line.c.in | 36 + CMakeLua/Tests/CustomCommand/check_mark.cmake | 5 + CMakeLua/Tests/CustomCommand/config.h.in | 1 + CMakeLua/Tests/CustomCommand/doc1.tex | 1 + CMakeLua/Tests/CustomCommand/foo.h.in | 1 + CMakeLua/Tests/CustomCommand/foo.in | 28 + CMakeLua/Tests/CustomCommand/generator.cxx | 15 + CMakeLua/Tests/CustomCommand/main.cxx | 6 + CMakeLua/Tests/CustomCommand/wrapped.h | 1 + CMakeLua/Tests/CustomCommand/wrapper.cxx | 18 + .../CustomCommandWorkingDirectory/CMakeLists.txt | 24 + .../CustomCommandWorkingDirectory/CVS/Entries | 4 + .../CustomCommandWorkingDirectory/CVS/Repository | 1 + .../Tests/CustomCommandWorkingDirectory/CVS/Root | 1 + .../Tests/CustomCommandWorkingDirectory/CVS/Tag | 1 + .../CustomCommandWorkingDirectory/CVS/Template | 22 + .../CustomCommandWorkingDirectory/customTarget.c | 4 + .../CustomCommandWorkingDirectory/working.c.in | 7 + CMakeLua/Tests/CxxOnly/CMakeLists.txt | 8 + CMakeLua/Tests/CxxOnly/CVS/Entries | 7 + CMakeLua/Tests/CxxOnly/CVS/Repository | 1 + CMakeLua/Tests/CxxOnly/CVS/Root | 1 + CMakeLua/Tests/CxxOnly/CVS/Tag | 1 + CMakeLua/Tests/CxxOnly/CVS/Template | 22 + CMakeLua/Tests/CxxOnly/cxxonly.cxx | 19 + CMakeLua/Tests/CxxOnly/libcxx1.cxx | 6 + CMakeLua/Tests/CxxOnly/libcxx1.h | 5 + CMakeLua/Tests/CxxOnly/libcxx2.cxx | 6 + CMakeLua/Tests/CxxOnly/libcxx2.h | 15 + CMakeLua/Tests/Dependency/1/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/1/CVS/Entries | 3 + CMakeLua/Tests/Dependency/1/CVS/Repository | 1 + CMakeLua/Tests/Dependency/1/CVS/Root | 1 + CMakeLua/Tests/Dependency/1/CVS/Tag | 1 + CMakeLua/Tests/Dependency/1/CVS/Template | 22 + CMakeLua/Tests/Dependency/1/OneSrc.c | 3 + CMakeLua/Tests/Dependency/CMakeLists.txt | 45 + CMakeLua/Tests/Dependency/CVS/Entries | 16 + CMakeLua/Tests/Dependency/CVS/Repository | 1 + CMakeLua/Tests/Dependency/CVS/Root | 1 + CMakeLua/Tests/Dependency/CVS/Tag | 1 + CMakeLua/Tests/Dependency/CVS/Template | 22 + CMakeLua/Tests/Dependency/Eight/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/Eight/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Eight/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Eight/CVS/Root | 1 + CMakeLua/Tests/Dependency/Eight/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Eight/CVS/Template | 22 + CMakeLua/Tests/Dependency/Eight/EightSrc.c | 6 + CMakeLua/Tests/Dependency/Exec/CMakeLists.txt | 7 + CMakeLua/Tests/Dependency/Exec/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Exec/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Exec/CVS/Root | 1 + CMakeLua/Tests/Dependency/Exec/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Exec/CVS/Template | 22 + CMakeLua/Tests/Dependency/Exec/ExecMain.c | 18 + CMakeLua/Tests/Dependency/Exec2/CMakeLists.txt | 12 + CMakeLua/Tests/Dependency/Exec2/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Exec2/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Exec2/CVS/Root | 1 + CMakeLua/Tests/Dependency/Exec2/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Exec2/CVS/Template | 22 + CMakeLua/Tests/Dependency/Exec2/ExecMain.c | 14 + CMakeLua/Tests/Dependency/Exec3/CMakeLists.txt | 6 + CMakeLua/Tests/Dependency/Exec3/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Exec3/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Exec3/CVS/Root | 1 + CMakeLua/Tests/Dependency/Exec3/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Exec3/CVS/Template | 22 + CMakeLua/Tests/Dependency/Exec3/ExecMain.c | 14 + CMakeLua/Tests/Dependency/Exec4/CMakeLists.txt | 6 + CMakeLua/Tests/Dependency/Exec4/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Exec4/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Exec4/CVS/Root | 1 + CMakeLua/Tests/Dependency/Exec4/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Exec4/CVS/Template | 22 + CMakeLua/Tests/Dependency/Exec4/ExecMain.c | 14 + CMakeLua/Tests/Dependency/Five/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/Five/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Five/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Five/CVS/Root | 1 + CMakeLua/Tests/Dependency/Five/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Five/CVS/Template | 22 + CMakeLua/Tests/Dependency/Five/FiveSrc.c | 6 + CMakeLua/Tests/Dependency/Four/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/Four/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Four/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Four/CVS/Root | 1 + CMakeLua/Tests/Dependency/Four/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Four/CVS/Template | 22 + CMakeLua/Tests/Dependency/Four/FourSrc.c | 14 + CMakeLua/Tests/Dependency/NoDepA/CMakeLists.txt | 1 + CMakeLua/Tests/Dependency/NoDepA/CVS/Entries | 3 + CMakeLua/Tests/Dependency/NoDepA/CVS/Repository | 1 + CMakeLua/Tests/Dependency/NoDepA/CVS/Root | 1 + CMakeLua/Tests/Dependency/NoDepA/CVS/Tag | 1 + CMakeLua/Tests/Dependency/NoDepA/CVS/Template | 22 + CMakeLua/Tests/Dependency/NoDepA/NoDepASrc.c | 3 + CMakeLua/Tests/Dependency/NoDepB/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/NoDepB/CVS/Entries | 3 + CMakeLua/Tests/Dependency/NoDepB/CVS/Repository | 1 + CMakeLua/Tests/Dependency/NoDepB/CVS/Root | 1 + CMakeLua/Tests/Dependency/NoDepB/CVS/Tag | 1 + CMakeLua/Tests/Dependency/NoDepB/CVS/Template | 22 + CMakeLua/Tests/Dependency/NoDepB/NoDepBSrc.c | 6 + CMakeLua/Tests/Dependency/NoDepC/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/NoDepC/CVS/Entries | 3 + CMakeLua/Tests/Dependency/NoDepC/CVS/Repository | 1 + CMakeLua/Tests/Dependency/NoDepC/CVS/Root | 1 + CMakeLua/Tests/Dependency/NoDepC/CVS/Tag | 1 + CMakeLua/Tests/Dependency/NoDepC/CVS/Template | 22 + CMakeLua/Tests/Dependency/NoDepC/NoDepCSrc.c | 6 + CMakeLua/Tests/Dependency/Seven/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/Seven/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Seven/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Seven/CVS/Root | 1 + CMakeLua/Tests/Dependency/Seven/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Seven/CVS/Template | 22 + CMakeLua/Tests/Dependency/Seven/SevenSrc.c | 6 + CMakeLua/Tests/Dependency/Six/CMakeLists.txt | 12 + CMakeLua/Tests/Dependency/Six/CVS/Entries | 4 + CMakeLua/Tests/Dependency/Six/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Six/CVS/Root | 1 + CMakeLua/Tests/Dependency/Six/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Six/CVS/Template | 22 + CMakeLua/Tests/Dependency/Six/SixASrc.c | 8 + CMakeLua/Tests/Dependency/Six/SixBSrc.c | 10 + CMakeLua/Tests/Dependency/Three/CMakeLists.txt | 3 + CMakeLua/Tests/Dependency/Three/CVS/Entries | 3 + CMakeLua/Tests/Dependency/Three/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Three/CVS/Root | 1 + CMakeLua/Tests/Dependency/Three/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Three/CVS/Template | 22 + CMakeLua/Tests/Dependency/Three/ThreeSrc.c | 12 + CMakeLua/Tests/Dependency/Two/CMakeLists.txt | 20 + CMakeLua/Tests/Dependency/Two/CVS/Entries | 5 + CMakeLua/Tests/Dependency/Two/CVS/Repository | 1 + CMakeLua/Tests/Dependency/Two/CVS/Root | 1 + CMakeLua/Tests/Dependency/Two/CVS/Tag | 1 + CMakeLua/Tests/Dependency/Two/CVS/Template | 22 + CMakeLua/Tests/Dependency/Two/TwoCustomSrc.c | 10 + CMakeLua/Tests/Dependency/Two/TwoSrc.c | 10 + CMakeLua/Tests/Dependency/Two/two-test.h.in | 1 + CMakeLua/Tests/DocTest/CMakeLists.txt | 6 + CMakeLua/Tests/DocTest/CVS/Entries | 3 + CMakeLua/Tests/DocTest/CVS/Repository | 1 + CMakeLua/Tests/DocTest/CVS/Root | 1 + CMakeLua/Tests/DocTest/CVS/Tag | 1 + CMakeLua/Tests/DocTest/CVS/Template | 22 + CMakeLua/Tests/DocTest/DocTest.cxx | 33 + CMakeLua/Tests/ExportImport/CMakeLists.txt | 82 + CMakeLua/Tests/ExportImport/CVS/Entries | 4 + CMakeLua/Tests/ExportImport/CVS/Repository | 1 + CMakeLua/Tests/ExportImport/CVS/Root | 1 + CMakeLua/Tests/ExportImport/Export/CMakeLists.txt | 68 + CMakeLua/Tests/ExportImport/Export/CVS/Entries | 13 + CMakeLua/Tests/ExportImport/Export/CVS/Repository | 1 + CMakeLua/Tests/ExportImport/Export/CVS/Root | 1 + CMakeLua/Tests/ExportImport/Export/testExe1.c | 26 + CMakeLua/Tests/ExportImport/Export/testExe1lib.c | 1 + CMakeLua/Tests/ExportImport/Export/testExe2.c | 12 + CMakeLua/Tests/ExportImport/Export/testExe2lib.c | 10 + .../Tests/ExportImport/Export/testExe2libImp.c | 7 + CMakeLua/Tests/ExportImport/Export/testExe3.c | 24 + CMakeLua/Tests/ExportImport/Export/testLib1.c | 1 + CMakeLua/Tests/ExportImport/Export/testLib2.c | 4 + CMakeLua/Tests/ExportImport/Export/testLib3.c | 10 + CMakeLua/Tests/ExportImport/Export/testLib3Imp.c | 7 + CMakeLua/Tests/ExportImport/Export/testLib4.c | 7 + CMakeLua/Tests/ExportImport/Import/CMakeLists.txt | 62 + CMakeLua/Tests/ExportImport/Import/CVS/Entries | 4 + CMakeLua/Tests/ExportImport/Import/CVS/Repository | 1 + CMakeLua/Tests/ExportImport/Import/CVS/Root | 1 + CMakeLua/Tests/ExportImport/Import/imp_mod1.c | 13 + CMakeLua/Tests/ExportImport/Import/imp_testExe1.c | 11 + CMakeLua/Tests/ExportImport/main.c | 4 + CMakeLua/Tests/ExternalOBJ/CMakeLists.txt | 53 + CMakeLua/Tests/ExternalOBJ/CVS/Entries | 3 + CMakeLua/Tests/ExternalOBJ/CVS/Repository | 1 + CMakeLua/Tests/ExternalOBJ/CVS/Root | 1 + CMakeLua/Tests/ExternalOBJ/CVS/Tag | 1 + CMakeLua/Tests/ExternalOBJ/CVS/Template | 22 + CMakeLua/Tests/ExternalOBJ/Object/CMakeLists.txt | 12 + CMakeLua/Tests/ExternalOBJ/Object/CVS/Entries | 4 + CMakeLua/Tests/ExternalOBJ/Object/CVS/Repository | 1 + CMakeLua/Tests/ExternalOBJ/Object/CVS/Root | 1 + CMakeLua/Tests/ExternalOBJ/Object/CVS/Tag | 1 + CMakeLua/Tests/ExternalOBJ/Object/CVS/Template | 22 + .../Tests/ExternalOBJ/Object/external_main.cxx | 4 + .../Tests/ExternalOBJ/Object/external_object.cxx | 4 + CMakeLua/Tests/ExternalOBJ/executable.cxx | 5 + CMakeLua/Tests/FindPackageTest/CMakeLists.txt | 137 + CMakeLua/Tests/FindPackageTest/CVS/Entries | 6 + CMakeLua/Tests/FindPackageTest/CVS/Repository | 1 + CMakeLua/Tests/FindPackageTest/CVS/Root | 1 + CMakeLua/Tests/FindPackageTest/CVS/Tag | 1 + CMakeLua/Tests/FindPackageTest/CVS/Template | 22 + CMakeLua/Tests/FindPackageTest/FindPackageTest.cxx | 4 + .../Tests/FindPackageTest/FindVersionTestA.cmake | 12 + .../Tests/FindPackageTest/FindVersionTestB.cmake | 12 + .../Tests/FindPackageTest/FindVersionTestC.cmake | 12 + .../Tests/FindPackageTest/TApp.app/CVS/Entries | 0 .../Tests/FindPackageTest/TApp.app/CVS/Repository | 1 + CMakeLua/Tests/FindPackageTest/TApp.app/CVS/Root | 1 + .../FindPackageTest/TApp.app/Contents/CVS/Entries | 0 .../TApp.app/Contents/CVS/Repository | 1 + .../FindPackageTest/TApp.app/Contents/CVS/Root | 1 + .../TApp.app/Contents/Resources/CVS/Entries | 2 + .../TApp.app/Contents/Resources/CVS/Repository | 1 + .../TApp.app/Contents/Resources/CVS/Root | 1 + .../TApp.app/Contents/Resources/TAppConfig.cmake | 1 + .../TApp.app/Contents/Resources/cmake/CVS/Entries | 2 + .../Contents/Resources/cmake/CVS/Repository | 1 + .../TApp.app/Contents/Resources/cmake/CVS/Root | 1 + .../Contents/Resources/cmake/tapp-config.cmake | 1 + .../TFramework.framework/CVS/Entries | 0 .../TFramework.framework/CVS/Repository | 1 + .../FindPackageTest/TFramework.framework/CVS/Root | 1 + .../TFramework.framework/Versions/A/CVS/Entries | 0 .../TFramework.framework/Versions/A/CVS/Repository | 1 + .../TFramework.framework/Versions/A/CVS/Root | 1 + .../Versions/A/Resources/CMake/CVS/Entries | 2 + .../Versions/A/Resources/CMake/CVS/Repository | 1 + .../Versions/A/Resources/CMake/CVS/Root | 1 + .../A/Resources/CMake/TFrameworkConfig.cmake | 1 + .../Versions/A/Resources/CVS/Entries | 2 + .../Versions/A/Resources/CVS/Repository | 1 + .../Versions/A/Resources/CVS/Root | 1 + .../Versions/A/Resources/tframework-config.cmake | 1 + .../TFramework.framework/Versions/CVS/Entries | 0 .../TFramework.framework/Versions/CVS/Repository | 1 + .../TFramework.framework/Versions/CVS/Root | 1 + CMakeLua/Tests/FindPackageTest/include/CVS/Entries | 2 + .../Tests/FindPackageTest/include/CVS/Repository | 1 + CMakeLua/Tests/FindPackageTest/include/CVS/Root | 1 + CMakeLua/Tests/FindPackageTest/include/CVS/Tag | 1 + .../Tests/FindPackageTest/include/CVS/Template | 22 + CMakeLua/Tests/FindPackageTest/include/foo.h | 1 + .../Tests/FindPackageTest/lib/Bar/BarConfig.cmake | 1 + CMakeLua/Tests/FindPackageTest/lib/Bar/CVS/Entries | 2 + .../Tests/FindPackageTest/lib/Bar/CVS/Repository | 1 + CMakeLua/Tests/FindPackageTest/lib/Bar/CVS/Root | 1 + .../FindPackageTest/lib/Bar/cmake/CVS/Entries | 2 + .../FindPackageTest/lib/Bar/cmake/CVS/Repository | 1 + .../Tests/FindPackageTest/lib/Bar/cmake/CVS/Root | 1 + .../FindPackageTest/lib/Bar/cmake/bar-config.cmake | 1 + CMakeLua/Tests/FindPackageTest/lib/CVS/Entries | 0 CMakeLua/Tests/FindPackageTest/lib/CVS/Repository | 1 + CMakeLua/Tests/FindPackageTest/lib/CVS/Root | 1 + .../Tests/FindPackageTest/lib/TApp/CVS/Entries | 2 + .../Tests/FindPackageTest/lib/TApp/CVS/Repository | 1 + CMakeLua/Tests/FindPackageTest/lib/TApp/CVS/Root | 1 + .../FindPackageTest/lib/TApp/TAppConfig.cmake | 2 + .../FindPackageTest/lib/foo-1.2/CMake/CVS/Entries | 2 + .../lib/foo-1.2/CMake/CVS/Repository | 1 + .../FindPackageTest/lib/foo-1.2/CMake/CVS/Root | 1 + .../lib/foo-1.2/CMake/FooConfig.cmake | 1 + .../Tests/FindPackageTest/lib/foo-1.2/CVS/Entries | 2 + .../FindPackageTest/lib/foo-1.2/CVS/Repository | 1 + .../Tests/FindPackageTest/lib/foo-1.2/CVS/Root | 1 + .../FindPackageTest/lib/foo-1.2/foo-config.cmake | 1 + .../Tests/FindPackageTest/lib/suffix/CVS/Entries | 0 .../FindPackageTest/lib/suffix/CVS/Repository | 1 + CMakeLua/Tests/FindPackageTest/lib/suffix/CVS/Root | 1 + .../FindPackageTest/lib/suffix/test/CVS/Entries | 3 + .../FindPackageTest/lib/suffix/test/CVS/Repository | 1 + .../Tests/FindPackageTest/lib/suffix/test/CVS/Root | 1 + .../lib/suffix/test/SuffixTestConfig.cmake | 1 + .../lib/suffix/test/SuffixTestConfigVersion.cmake | 7 + .../Tests/FindPackageTest/lib/zot-1.0/CVS/Entries | 2 + .../FindPackageTest/lib/zot-1.0/CVS/Repository | 1 + .../Tests/FindPackageTest/lib/zot-1.0/CVS/Root | 1 + .../FindPackageTest/lib/zot-1.0/zot-config.cmake | 1 + .../Tests/FindPackageTest/lib/zot-2.0/CVS/Entries | 3 + .../FindPackageTest/lib/zot-2.0/CVS/Repository | 1 + .../Tests/FindPackageTest/lib/zot-2.0/CVS/Root | 1 + .../lib/zot-2.0/zot-config-version.cmake | 5 + .../FindPackageTest/lib/zot-2.0/zot-config.cmake | 1 + .../Tests/FindPackageTest/lib/zot-3.0/CVS/Entries | 3 + .../FindPackageTest/lib/zot-3.0/CVS/Repository | 1 + .../Tests/FindPackageTest/lib/zot-3.0/CVS/Root | 1 + .../lib/zot-3.0/zot-config-version.cmake | 5 + .../FindPackageTest/lib/zot-3.0/zot-config.cmake | 1 + .../Tests/FindPackageTest/lib/zot-3.1/CVS/Entries | 3 + .../FindPackageTest/lib/zot-3.1/CVS/Repository | 1 + .../Tests/FindPackageTest/lib/zot-3.1/CVS/Root | 1 + .../lib/zot-3.1/zot-config-version.cmake | 8 + .../FindPackageTest/lib/zot-3.1/zot-config.cmake | 1 + CMakeLua/Tests/Fortran/CMakeLists.txt | 70 + CMakeLua/Tests/Fortran/CVS/Entries | 9 + CMakeLua/Tests/Fortran/CVS/Repository | 1 + CMakeLua/Tests/Fortran/CVS/Root | 1 + CMakeLua/Tests/Fortran/CVS/Tag | 1 + CMakeLua/Tests/Fortran/CVS/Template | 22 + CMakeLua/Tests/Fortran/Executable/CMakeLists.txt | 8 + CMakeLua/Tests/Fortran/Executable/CVS/Entries | 3 + CMakeLua/Tests/Fortran/Executable/CVS/Repository | 1 + CMakeLua/Tests/Fortran/Executable/CVS/Root | 1 + CMakeLua/Tests/Fortran/Executable/main.f90 | 6 + CMakeLua/Tests/Fortran/External/CMakeLists.txt | 4 + CMakeLua/Tests/Fortran/External/CVS/Entries | 3 + CMakeLua/Tests/Fortran/External/CVS/Repository | 1 + CMakeLua/Tests/Fortran/External/CVS/Root | 1 + CMakeLua/Tests/Fortran/External/a.f90 | 7 + CMakeLua/Tests/Fortran/Library/CMakeLists.txt | 11 + CMakeLua/Tests/Fortran/Library/CVS/Entries | 5 + CMakeLua/Tests/Fortran/Library/CVS/Repository | 1 + CMakeLua/Tests/Fortran/Library/CVS/Root | 1 + CMakeLua/Tests/Fortran/Library/a.f90 | 3 + CMakeLua/Tests/Fortran/Library/b.f90 | 2 + CMakeLua/Tests/Fortran/Library/main.f90 | 3 + CMakeLua/Tests/Fortran/hello.f | 6 + CMakeLua/Tests/Fortran/in_interface/CVS/Entries | 3 + CMakeLua/Tests/Fortran/in_interface/CVS/Repository | 1 + CMakeLua/Tests/Fortran/in_interface/CVS/Root | 1 + CMakeLua/Tests/Fortran/in_interface/CVS/Tag | 1 + CMakeLua/Tests/Fortran/in_interface/CVS/Template | 22 + CMakeLua/Tests/Fortran/in_interface/main.f90 | 3 + CMakeLua/Tests/Fortran/in_interface/module.f90 | 12 + .../Tests/Fortran/test_module_implementation.f90 | 6 + CMakeLua/Tests/Fortran/test_module_interface.f90 | 9 + CMakeLua/Tests/Fortran/test_module_main.f90 | 4 + CMakeLua/Tests/Fortran/test_preprocess.F90 | 55 + .../Tests/Fortran/test_use_in_comment_fixedform.f | 7 + .../Tests/Fortran/test_use_in_comment_freeform.f90 | 7 + CMakeLua/Tests/Framework/CMakeLists.txt | 67 + CMakeLua/Tests/Framework/CVS/Entries | 11 + CMakeLua/Tests/Framework/CVS/Repository | 1 + CMakeLua/Tests/Framework/CVS/Root | 1 + CMakeLua/Tests/Framework/CVS/Tag | 1 + CMakeLua/Tests/Framework/CVS/Template | 22 + CMakeLua/Tests/Framework/bar.cxx | 6 + CMakeLua/Tests/Framework/foo.cxx | 10 + CMakeLua/Tests/Framework/foo.h | 1 + CMakeLua/Tests/Framework/foo2.h | 1 + CMakeLua/Tests/Framework/fooBoth.h | 1 + CMakeLua/Tests/Framework/fooNeither.h | 1 + CMakeLua/Tests/Framework/fooPrivate.h | 1 + CMakeLua/Tests/Framework/fooPublic.h | 1 + CMakeLua/Tests/Framework/test.lua | 1 + CMakeLua/Tests/FunctionTest/CMakeLists.txt | 134 + CMakeLua/Tests/FunctionTest/CVS/Entries | 4 + CMakeLua/Tests/FunctionTest/CVS/Repository | 1 + CMakeLua/Tests/FunctionTest/CVS/Root | 1 + .../Tests/FunctionTest/SubDirScope/CMakeLists.txt | 4 + .../Tests/FunctionTest/SubDirScope/CVS/Entries | 2 + .../Tests/FunctionTest/SubDirScope/CVS/Repository | 1 + CMakeLua/Tests/FunctionTest/SubDirScope/CVS/Root | 1 + CMakeLua/Tests/FunctionTest/Util.cmake | 3 + CMakeLua/Tests/FunctionTest/functionTest.c | 7 + CMakeLua/Tests/Java/A.java | 11 + CMakeLua/Tests/Java/CMakeLists.txt | 41 + CMakeLua/Tests/Java/CVS/Entries | 4 + CMakeLua/Tests/Java/CVS/Repository | 1 + CMakeLua/Tests/Java/CVS/Root | 1 + CMakeLua/Tests/Java/CVS/Tag | 1 + CMakeLua/Tests/Java/CVS/Template | 22 + CMakeLua/Tests/Java/HelloWorld.java | 11 + CMakeLua/Tests/Jump/CMakeLists.txt | 5 + CMakeLua/Tests/Jump/CVS/Entries | 3 + CMakeLua/Tests/Jump/CVS/Repository | 1 + CMakeLua/Tests/Jump/CVS/Root | 1 + CMakeLua/Tests/Jump/CVS/Tag | 1 + CMakeLua/Tests/Jump/CVS/Template | 22 + CMakeLua/Tests/Jump/Executable/CMakeLists.txt | 6 + CMakeLua/Tests/Jump/Executable/CVS/Entries | 3 + CMakeLua/Tests/Jump/Executable/CVS/Repository | 1 + CMakeLua/Tests/Jump/Executable/CVS/Root | 1 + CMakeLua/Tests/Jump/Executable/CVS/Tag | 1 + CMakeLua/Tests/Jump/Executable/CVS/Template | 22 + CMakeLua/Tests/Jump/Executable/jumpExecutable.cxx | 12 + CMakeLua/Tests/Jump/Library/CMakeLists.txt | 2 + CMakeLua/Tests/Jump/Library/CVS/Entries | 3 + CMakeLua/Tests/Jump/Library/CVS/Repository | 1 + CMakeLua/Tests/Jump/Library/CVS/Root | 1 + CMakeLua/Tests/Jump/Library/CVS/Tag | 1 + CMakeLua/Tests/Jump/Library/CVS/Template | 22 + CMakeLua/Tests/Jump/Library/Shared/CMakeLists.txt | 26 + CMakeLua/Tests/Jump/Library/Shared/CVS/Entries | 3 + CMakeLua/Tests/Jump/Library/Shared/CVS/Repository | 1 + CMakeLua/Tests/Jump/Library/Shared/CVS/Root | 1 + CMakeLua/Tests/Jump/Library/Shared/CVS/Tag | 1 + CMakeLua/Tests/Jump/Library/Shared/CVS/Template | 22 + CMakeLua/Tests/Jump/Library/Shared/jumpShared.cxx | 7 + CMakeLua/Tests/Jump/Library/Static/CMakeLists.txt | 1 + CMakeLua/Tests/Jump/Library/Static/CVS/Entries | 3 + CMakeLua/Tests/Jump/Library/Static/CVS/Repository | 1 + CMakeLua/Tests/Jump/Library/Static/CVS/Root | 1 + CMakeLua/Tests/Jump/Library/Static/CVS/Tag | 1 + CMakeLua/Tests/Jump/Library/Static/CVS/Template | 22 + CMakeLua/Tests/Jump/Library/Static/jumpStatic.cxx | 1 + CMakeLua/Tests/LibName/CMakeLists.txt | 13 + CMakeLua/Tests/LibName/CVS/Entries | 5 + CMakeLua/Tests/LibName/CVS/Repository | 1 + CMakeLua/Tests/LibName/CVS/Root | 1 + CMakeLua/Tests/LibName/CVS/Tag | 1 + CMakeLua/Tests/LibName/CVS/Template | 22 + CMakeLua/Tests/LibName/bar.c | 7 + CMakeLua/Tests/LibName/foo.c | 11 + CMakeLua/Tests/LibName/foobar.c | 10 + CMakeLua/Tests/LinkLine/CMakeLists.txt | 12 + CMakeLua/Tests/LinkLine/CVS/Entries | 5 + CMakeLua/Tests/LinkLine/CVS/Repository | 1 + CMakeLua/Tests/LinkLine/CVS/Root | 1 + CMakeLua/Tests/LinkLine/CVS/Tag | 1 + CMakeLua/Tests/LinkLine/CVS/Template | 22 + CMakeLua/Tests/LinkLine/Exec.c | 9 + CMakeLua/Tests/LinkLine/One.c | 10 + CMakeLua/Tests/LinkLine/Two.c | 10 + CMakeLua/Tests/LinkLineOrder/CMakeLists.txt | 36 + CMakeLua/Tests/LinkLineOrder/CVS/Entries | 14 + CMakeLua/Tests/LinkLineOrder/CVS/Repository | 1 + CMakeLua/Tests/LinkLineOrder/CVS/Root | 1 + CMakeLua/Tests/LinkLineOrder/CVS/Tag | 1 + CMakeLua/Tests/LinkLineOrder/CVS/Template | 22 + CMakeLua/Tests/LinkLineOrder/Exec1.c | 8 + CMakeLua/Tests/LinkLineOrder/Exec2.c | 8 + CMakeLua/Tests/LinkLineOrder/NoDepA.c | 7 + CMakeLua/Tests/LinkLineOrder/NoDepB.c | 4 + CMakeLua/Tests/LinkLineOrder/NoDepC.c | 7 + CMakeLua/Tests/LinkLineOrder/NoDepE.c | 11 + CMakeLua/Tests/LinkLineOrder/NoDepF.c | 11 + CMakeLua/Tests/LinkLineOrder/NoDepX.c | 7 + CMakeLua/Tests/LinkLineOrder/NoDepY.c | 4 + CMakeLua/Tests/LinkLineOrder/NoDepZ.c | 7 + CMakeLua/Tests/LinkLineOrder/One.c | 10 + CMakeLua/Tests/LinkLineOrder/Two.c | 8 + .../Tests/LoadCommand/CMakeCommands/CMakeLists.txt | 18 + .../Tests/LoadCommand/CMakeCommands/CVS/Entries | 3 + .../Tests/LoadCommand/CMakeCommands/CVS/Repository | 1 + CMakeLua/Tests/LoadCommand/CMakeCommands/CVS/Root | 1 + CMakeLua/Tests/LoadCommand/CMakeCommands/CVS/Tag | 1 + .../Tests/LoadCommand/CMakeCommands/CVS/Template | 22 + .../LoadCommand/CMakeCommands/cmTestCommand.c | 219 + CMakeLua/Tests/LoadCommand/CMakeLists.txt | 68 + CMakeLua/Tests/LoadCommand/CVS/Entries | 4 + CMakeLua/Tests/LoadCommand/CVS/Repository | 1 + CMakeLua/Tests/LoadCommand/CVS/Root | 1 + CMakeLua/Tests/LoadCommand/CVS/Tag | 1 + CMakeLua/Tests/LoadCommand/CVS/Template | 22 + CMakeLua/Tests/LoadCommand/LoadedCommand.cxx.in | 41 + CMakeLua/Tests/LoadCommand/LoadedCommand.h.in | 13 + .../CMakeCommands/CMakeLists.txt | 18 + .../LoadCommandOneConfig/CMakeCommands/CVS/Entries | 3 + .../CMakeCommands/CVS/Repository | 1 + .../LoadCommandOneConfig/CMakeCommands/CVS/Root | 1 + .../LoadCommandOneConfig/CMakeCommands/CVS/Tag | 1 + .../CMakeCommands/CVS/Template | 22 + .../CMakeCommands/cmTestCommand.c | 219 + CMakeLua/Tests/LoadCommandOneConfig/CMakeLists.txt | 68 + CMakeLua/Tests/LoadCommandOneConfig/CVS/Entries | 4 + CMakeLua/Tests/LoadCommandOneConfig/CVS/Repository | 1 + CMakeLua/Tests/LoadCommandOneConfig/CVS/Root | 1 + CMakeLua/Tests/LoadCommandOneConfig/CVS/Tag | 1 + CMakeLua/Tests/LoadCommandOneConfig/CVS/Template | 22 + .../LoadCommandOneConfig/LoadedCommand.cxx.in | 41 + .../Tests/LoadCommandOneConfig/LoadedCommand.h.in | 13 + CMakeLua/Tests/MacroTest/CMakeLists.txt | 87 + CMakeLua/Tests/MacroTest/CVS/Entries | 3 + CMakeLua/Tests/MacroTest/CVS/Repository | 1 + CMakeLua/Tests/MacroTest/CVS/Root | 1 + CMakeLua/Tests/MacroTest/CVS/Tag | 1 + CMakeLua/Tests/MacroTest/CVS/Template | 22 + CMakeLua/Tests/MacroTest/macroTest.c | 7 + CMakeLua/Tests/MakeClean/CMakeLists.txt | 63 + CMakeLua/Tests/MakeClean/CVS/Entries | 3 + CMakeLua/Tests/MakeClean/CVS/Repository | 1 + CMakeLua/Tests/MakeClean/CVS/Root | 1 + CMakeLua/Tests/MakeClean/CVS/Tag | 1 + CMakeLua/Tests/MakeClean/CVS/Template | 22 + CMakeLua/Tests/MakeClean/ToClean/CMakeLists.txt | 30 + CMakeLua/Tests/MakeClean/ToClean/CVS/Entries | 4 + CMakeLua/Tests/MakeClean/ToClean/CVS/Repository | 1 + CMakeLua/Tests/MakeClean/ToClean/CVS/Root | 1 + CMakeLua/Tests/MakeClean/ToClean/CVS/Tag | 1 + CMakeLua/Tests/MakeClean/ToClean/CVS/Template | 22 + .../Tests/MakeClean/ToClean/ToCleanFiles.cmake.in | 1 + CMakeLua/Tests/MakeClean/ToClean/toclean.cxx | 4 + CMakeLua/Tests/MakeClean/check_clean.c.in | 26 + CMakeLua/Tests/MathTest/CMakeLists.txt | 28 + CMakeLua/Tests/MathTest/CVS/Entries | 4 + CMakeLua/Tests/MathTest/CVS/Repository | 1 + CMakeLua/Tests/MathTest/CVS/Root | 1 + CMakeLua/Tests/MathTest/CVS/Tag | 1 + CMakeLua/Tests/MathTest/CVS/Template | 22 + CMakeLua/Tests/MathTest/MathTestExec.cxx | 26 + CMakeLua/Tests/MathTest/MathTestTests.h.in | 1 + CMakeLua/Tests/NewlineArgs/CMakeLists.txt | 15 + CMakeLua/Tests/NewlineArgs/CVS/Entries | 6 + CMakeLua/Tests/NewlineArgs/CVS/Repository | 1 + CMakeLua/Tests/NewlineArgs/CVS/Root | 1 + CMakeLua/Tests/NewlineArgs/CVS/Tag | 1 + CMakeLua/Tests/NewlineArgs/CVS/Template | 22 + CMakeLua/Tests/NewlineArgs/cxxonly.cxx | 19 + CMakeLua/Tests/NewlineArgs/libcxx1.cxx | 10 + CMakeLua/Tests/NewlineArgs/libcxx1.h | 9 + CMakeLua/Tests/NewlineArgs/libcxx2.h.in | 6 + CMakeLua/Tests/ObjC++/CMakeLists.txt | 6 + CMakeLua/Tests/ObjC++/CVS/Entries | 3 + CMakeLua/Tests/ObjC++/CVS/Repository | 1 + CMakeLua/Tests/ObjC++/CVS/Root | 1 + CMakeLua/Tests/ObjC++/CVS/Tag | 1 + CMakeLua/Tests/ObjC++/CVS/Template | 22 + CMakeLua/Tests/ObjC++/objc++.mm | 22 + CMakeLua/Tests/OutOfBinary/CMakeLists.txt | 2 + CMakeLua/Tests/OutOfBinary/CVS/Entries | 3 + CMakeLua/Tests/OutOfBinary/CVS/Repository | 1 + CMakeLua/Tests/OutOfBinary/CVS/Root | 1 + CMakeLua/Tests/OutOfBinary/CVS/Tag | 1 + CMakeLua/Tests/OutOfBinary/CVS/Template | 22 + CMakeLua/Tests/OutOfBinary/outlib.c | 2 + CMakeLua/Tests/OutOfSource/CMakeLists.txt | 17 + CMakeLua/Tests/OutOfSource/CVS/Entries | 5 + CMakeLua/Tests/OutOfSource/CVS/Repository | 1 + CMakeLua/Tests/OutOfSource/CVS/Root | 1 + CMakeLua/Tests/OutOfSource/CVS/Tag | 1 + CMakeLua/Tests/OutOfSource/CVS/Template | 22 + .../OutOfSource/OutOfSourceSubdir/CMakeLists.txt | 53 + .../OutOfSource/OutOfSourceSubdir/CVS/Entries | 6 + .../OutOfSource/OutOfSourceSubdir/CVS/Repository | 1 + .../Tests/OutOfSource/OutOfSourceSubdir/CVS/Root | 1 + .../Tests/OutOfSource/OutOfSourceSubdir/CVS/Tag | 1 + .../OutOfSource/OutOfSourceSubdir/CVS/Template | 22 + .../Tests/OutOfSource/OutOfSourceSubdir/simple.cxx | 39 + .../OutOfSource/OutOfSourceSubdir/simple.cxx.in | 1 + .../OutOfSource/OutOfSourceSubdir/testlib.cxx | 6 + .../Tests/OutOfSource/OutOfSourceSubdir/testlib.h | 11 + CMakeLua/Tests/OutOfSource/SubDir/CMakeLists.txt | 8 + CMakeLua/Tests/OutOfSource/SubDir/CVS/Entries | 2 + CMakeLua/Tests/OutOfSource/SubDir/CVS/Repository | 1 + CMakeLua/Tests/OutOfSource/SubDir/CVS/Root | 1 + CMakeLua/Tests/OutOfSource/SubDir/CVS/Tag | 1 + CMakeLua/Tests/OutOfSource/SubDir/CVS/Template | 22 + CMakeLua/Tests/OutOfSource/simple.cxx | 1 + CMakeLua/Tests/OutOfSource/testdp.h.in | 1 + CMakeLua/Tests/Plugin/CMakeLists.txt | 46 + CMakeLua/Tests/Plugin/CVS/Entries | 3 + CMakeLua/Tests/Plugin/CVS/Repository | 1 + CMakeLua/Tests/Plugin/CVS/Root | 1 + CMakeLua/Tests/Plugin/CVS/Tag | 1 + CMakeLua/Tests/Plugin/CVS/Template | 22 + CMakeLua/Tests/Plugin/include/CVS/Entries | 2 + CMakeLua/Tests/Plugin/include/CVS/Repository | 1 + CMakeLua/Tests/Plugin/include/CVS/Root | 1 + CMakeLua/Tests/Plugin/include/CVS/Tag | 1 + CMakeLua/Tests/Plugin/include/CVS/Template | 22 + CMakeLua/Tests/Plugin/include/example.h | 25 + CMakeLua/Tests/Plugin/src/CVS/Entries | 4 + CMakeLua/Tests/Plugin/src/CVS/Repository | 1 + CMakeLua/Tests/Plugin/src/CVS/Root | 1 + CMakeLua/Tests/Plugin/src/CVS/Tag | 1 + CMakeLua/Tests/Plugin/src/CVS/Template | 22 + CMakeLua/Tests/Plugin/src/example_exe.cxx | 60 + CMakeLua/Tests/Plugin/src/example_exe.h.in | 6 + CMakeLua/Tests/Plugin/src/example_mod_1.c | 22 + CMakeLua/Tests/PreOrder/CMakeLists.txt | 6 + CMakeLua/Tests/PreOrder/CVS/Entries | 3 + CMakeLua/Tests/PreOrder/CVS/Repository | 1 + CMakeLua/Tests/PreOrder/CVS/Root | 1 + CMakeLua/Tests/PreOrder/CVS/Tag | 1 + CMakeLua/Tests/PreOrder/CVS/Template | 22 + CMakeLua/Tests/PreOrder/Library/CMakeLists.txt | 2 + CMakeLua/Tests/PreOrder/Library/CVS/Entries | 3 + CMakeLua/Tests/PreOrder/Library/CVS/Repository | 1 + CMakeLua/Tests/PreOrder/Library/CVS/Root | 1 + CMakeLua/Tests/PreOrder/Library/CVS/Tag | 1 + CMakeLua/Tests/PreOrder/Library/CVS/Template | 22 + CMakeLua/Tests/PreOrder/Library/simpleLib.cxx | 3 + CMakeLua/Tests/PreOrder/simple.cxx | 6 + CMakeLua/Tests/PrecompiledHeader/CMakeLists.txt | 54 + CMakeLua/Tests/PrecompiledHeader/CVS/Entries | 5 + CMakeLua/Tests/PrecompiledHeader/CVS/Repository | 1 + CMakeLua/Tests/PrecompiledHeader/CVS/Root | 1 + CMakeLua/Tests/PrecompiledHeader/CVS/Tag | 1 + CMakeLua/Tests/PrecompiledHeader/CVS/Template | 22 + CMakeLua/Tests/PrecompiledHeader/foo1.c | 8 + CMakeLua/Tests/PrecompiledHeader/foo2.c | 9 + CMakeLua/Tests/PrecompiledHeader/foo_precompile.c | 5 + .../Tests/PrecompiledHeader/include/CVS/Entries | 3 + .../Tests/PrecompiledHeader/include/CVS/Repository | 1 + CMakeLua/Tests/PrecompiledHeader/include/CVS/Root | 1 + CMakeLua/Tests/PrecompiledHeader/include/CVS/Tag | 1 + .../Tests/PrecompiledHeader/include/CVS/Template | 22 + CMakeLua/Tests/PrecompiledHeader/include/foo.h | 4 + .../PrecompiledHeader/include/foo_precompiled.h | 1 + CMakeLua/Tests/Preprocess/CMakeLists.txt | 206 + CMakeLua/Tests/Preprocess/CVS/Entries | 8 + CMakeLua/Tests/Preprocess/CVS/Repository | 1 + CMakeLua/Tests/Preprocess/CVS/Root | 1 + CMakeLua/Tests/Preprocess/file_def.h | 1 + CMakeLua/Tests/Preprocess/preprocess.c | 200 + CMakeLua/Tests/Preprocess/preprocess.cxx | 227 + CMakeLua/Tests/Preprocess/preprocess.h.in | 16 + CMakeLua/Tests/Preprocess/preprocess_vs6.cxx | 3 + CMakeLua/Tests/Preprocess/target_def.h | 1 + CMakeLua/Tests/Properties/CMakeLists.txt | 64 + CMakeLua/Tests/Properties/CVS/Entries | 4 + CMakeLua/Tests/Properties/CVS/Repository | 1 + CMakeLua/Tests/Properties/CVS/Root | 1 + CMakeLua/Tests/Properties/CVS/Tag | 1 + CMakeLua/Tests/Properties/CVS/Template | 22 + CMakeLua/Tests/Properties/SubDir/CVS/Entries | 2 + CMakeLua/Tests/Properties/SubDir/CVS/Repository | 1 + CMakeLua/Tests/Properties/SubDir/CVS/Root | 1 + CMakeLua/Tests/Properties/SubDir/CVS/Tag | 1 + CMakeLua/Tests/Properties/SubDir/CVS/Template | 22 + CMakeLua/Tests/Properties/SubDir/properties3.cxx | 9 + CMakeLua/Tests/Properties/properties.h.in | 1 + CMakeLua/Tests/Properties/properties2.h | 1 + CMakeLua/Tests/ReturnTest/CMakeLists.txt | 140 + CMakeLua/Tests/ReturnTest/CVS/Entries | 3 + CMakeLua/Tests/ReturnTest/CVS/Repository | 1 + CMakeLua/Tests/ReturnTest/CVS/Root | 1 + CMakeLua/Tests/ReturnTest/returnTest.c | 7 + CMakeLua/Tests/ReturnTest/subdir/CMakeLists.txt | 3 + CMakeLua/Tests/ReturnTest/subdir/CVS/Entries | 2 + CMakeLua/Tests/ReturnTest/subdir/CVS/Repository | 1 + CMakeLua/Tests/ReturnTest/subdir/CVS/Root | 1 + CMakeLua/Tests/RuntimePath/CMakeLists.txt | 36 + CMakeLua/Tests/RuntimePath/CVS/Entries | 7 + CMakeLua/Tests/RuntimePath/CVS/Repository | 1 + CMakeLua/Tests/RuntimePath/CVS/Root | 1 + CMakeLua/Tests/RuntimePath/bar1.c | 2 + CMakeLua/Tests/RuntimePath/bar2.c | 2 + CMakeLua/Tests/RuntimePath/foo1.c | 1 + CMakeLua/Tests/RuntimePath/foo2.c | 1 + CMakeLua/Tests/RuntimePath/main.c | 5 + CMakeLua/Tests/SameName/CMakeLists.txt | 6 + CMakeLua/Tests/SameName/CVS/Entries | 3 + CMakeLua/Tests/SameName/CVS/Repository | 1 + CMakeLua/Tests/SameName/CVS/Root | 1 + CMakeLua/Tests/SameName/CVS/Tag | 1 + CMakeLua/Tests/SameName/CVS/Template | 22 + CMakeLua/Tests/SameName/Exe1/CMakeLists.txt | 11 + CMakeLua/Tests/SameName/Exe1/CVS/Entries | 3 + CMakeLua/Tests/SameName/Exe1/CVS/Repository | 1 + CMakeLua/Tests/SameName/Exe1/CVS/Root | 1 + CMakeLua/Tests/SameName/Exe1/CVS/Tag | 1 + CMakeLua/Tests/SameName/Exe1/CVS/Template | 22 + CMakeLua/Tests/SameName/Exe1/conly.c | 12 + CMakeLua/Tests/SameName/Lib1/CMakeLists.txt | 1 + CMakeLua/Tests/SameName/Lib1/CVS/Entries | 4 + CMakeLua/Tests/SameName/Lib1/CVS/Repository | 1 + CMakeLua/Tests/SameName/Lib1/CVS/Root | 1 + CMakeLua/Tests/SameName/Lib1/CVS/Tag | 1 + CMakeLua/Tests/SameName/Lib1/CVS/Template | 22 + CMakeLua/Tests/SameName/Lib1/libc1.c | 4 + CMakeLua/Tests/SameName/Lib1/libc1.h | 1 + CMakeLua/Tests/SetLang/CMakeLists.txt | 9 + CMakeLua/Tests/SetLang/CVS/Entries | 4 + CMakeLua/Tests/SetLang/CVS/Repository | 1 + CMakeLua/Tests/SetLang/CVS/Root | 1 + CMakeLua/Tests/SetLang/CVS/Tag | 1 + CMakeLua/Tests/SetLang/CVS/Template | 22 + CMakeLua/Tests/SetLang/bar.c | 21 + CMakeLua/Tests/SetLang/foo.c | 7 + CMakeLua/Tests/Simple/CMakeLists.txt | 17 + CMakeLua/Tests/Simple/CVS/Entries | 6 + CMakeLua/Tests/Simple/CVS/Repository | 1 + CMakeLua/Tests/Simple/CVS/Root | 1 + CMakeLua/Tests/Simple/CVS/Tag | 1 + CMakeLua/Tests/Simple/CVS/Template | 22 + CMakeLua/Tests/Simple/simple.cxx | 11 + CMakeLua/Tests/Simple/simpleCLib.c | 12 + CMakeLua/Tests/Simple/simpleLib.cxx | 3 + CMakeLua/Tests/Simple/simpleWe.cpp | 17 + CMakeLua/Tests/SimpleCOnly/CMakeLists.txt | 17 + CMakeLua/Tests/SimpleCOnly/CVS/Entries | 5 + CMakeLua/Tests/SimpleCOnly/CVS/Repository | 1 + CMakeLua/Tests/SimpleCOnly/CVS/Root | 1 + CMakeLua/Tests/SimpleCOnly/CVS/Tag | 1 + CMakeLua/Tests/SimpleCOnly/CVS/Template | 22 + CMakeLua/Tests/SimpleCOnly/bar.c | 1 + CMakeLua/Tests/SimpleCOnly/foo.c | 1 + CMakeLua/Tests/SimpleCOnly/main.c | 12 + CMakeLua/Tests/SimpleExclude/CMakeLists.txt | 10 + CMakeLua/Tests/SimpleExclude/CVS/Entries | 4 + CMakeLua/Tests/SimpleExclude/CVS/Repository | 1 + CMakeLua/Tests/SimpleExclude/CVS/Root | 1 + CMakeLua/Tests/SimpleExclude/CVS/Tag | 1 + CMakeLua/Tests/SimpleExclude/CVS/Template | 22 + CMakeLua/Tests/SimpleExclude/dirC/CMakeLists.txt | 3 + CMakeLua/Tests/SimpleExclude/dirC/CVS/Entries | 3 + CMakeLua/Tests/SimpleExclude/dirC/CVS/Repository | 1 + CMakeLua/Tests/SimpleExclude/dirC/CVS/Root | 1 + CMakeLua/Tests/SimpleExclude/dirC/CVS/Tag | 1 + CMakeLua/Tests/SimpleExclude/dirC/CVS/Template | 22 + .../Tests/SimpleExclude/dirC/dirA/CMakeLists.txt | 10 + CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Entries | 7 + .../Tests/SimpleExclude/dirC/dirA/CVS/Repository | 1 + CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Root | 1 + CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Tag | 1 + .../Tests/SimpleExclude/dirC/dirA/CVS/Template | 22 + CMakeLua/Tests/SimpleExclude/dirC/dirA/t1.c | 8 + CMakeLua/Tests/SimpleExclude/dirC/dirA/t2.c | 7 + CMakeLua/Tests/SimpleExclude/dirC/dirA/t3.c | 7 + CMakeLua/Tests/SimpleExclude/dirC/dirA/t4.c | 17 + CMakeLua/Tests/SimpleExclude/dirC/dirA/t5.c | 7 + .../Tests/SimpleExclude/dirC/dirB/CMakeLists.txt | 5 + CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Entries | 4 + .../Tests/SimpleExclude/dirC/dirB/CVS/Repository | 1 + CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Root | 1 + CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Tag | 1 + .../Tests/SimpleExclude/dirC/dirB/CVS/Template | 22 + CMakeLua/Tests/SimpleExclude/dirC/dirB/t6.c | 8 + CMakeLua/Tests/SimpleExclude/dirC/dirB/t7.c | 16 + CMakeLua/Tests/SimpleExclude/dirD/CMakeLists.txt | 7 + CMakeLua/Tests/SimpleExclude/dirD/CVS/Entries | 4 + CMakeLua/Tests/SimpleExclude/dirD/CVS/Repository | 1 + CMakeLua/Tests/SimpleExclude/dirD/CVS/Root | 1 + CMakeLua/Tests/SimpleExclude/dirD/CVS/Tag | 1 + CMakeLua/Tests/SimpleExclude/dirD/CVS/Template | 22 + CMakeLua/Tests/SimpleExclude/dirD/t8.c | 7 + CMakeLua/Tests/SimpleExclude/dirD/t9.c | 24 + CMakeLua/Tests/SimpleExclude/run.cmake.in | 13 + CMakeLua/Tests/SimpleInstall/CMakeLists.txt | 394 + CMakeLua/Tests/SimpleInstall/CVS/Entries | 22 + CMakeLua/Tests/SimpleInstall/CVS/Repository | 1 + CMakeLua/Tests/SimpleInstall/CVS/Root | 1 + CMakeLua/Tests/SimpleInstall/CVS/Tag | 1 + CMakeLua/Tests/SimpleInstall/CVS/Template | 22 + CMakeLua/Tests/SimpleInstall/InstallScript1.cmake | 5 + CMakeLua/Tests/SimpleInstall/InstallScript2.cmake | 14 + CMakeLua/Tests/SimpleInstall/InstallScript3.cmake | 12 + CMakeLua/Tests/SimpleInstall/InstallScript4.cmake | 22 + CMakeLua/Tests/SimpleInstall/PackageScript.cmake | 10 + CMakeLua/Tests/SimpleInstall/PostInstall.cmake | 6 + CMakeLua/Tests/SimpleInstall/PreInstall.cmake | 2 + .../Tests/SimpleInstall/TestSubDir/CMakeLists.txt | 3 + .../Tests/SimpleInstall/TestSubDir/CVS/Entries | 5 + .../Tests/SimpleInstall/TestSubDir/CVS/Repository | 1 + CMakeLua/Tests/SimpleInstall/TestSubDir/CVS/Root | 1 + CMakeLua/Tests/SimpleInstall/TestSubDir/CVS/Tag | 1 + .../Tests/SimpleInstall/TestSubDir/CVS/Template | 22 + CMakeLua/Tests/SimpleInstall/TestSubDir/TSD.cxx | 10 + CMakeLua/Tests/SimpleInstall/TestSubDir/TSD.h | 1 + .../Tests/SimpleInstall/TestSubDir/TSD_utils.cxx | 10 + CMakeLua/Tests/SimpleInstall/foo.c | 6 + CMakeLua/Tests/SimpleInstall/foo.h | 11 + CMakeLua/Tests/SimpleInstall/inst.cxx | 37 + CMakeLua/Tests/SimpleInstall/inst2.cxx | 2 + CMakeLua/Tests/SimpleInstall/lib1.cxx | 6 + CMakeLua/Tests/SimpleInstall/lib1.h | 1 + CMakeLua/Tests/SimpleInstall/lib2.cxx | 6 + CMakeLua/Tests/SimpleInstall/lib2.h | 11 + CMakeLua/Tests/SimpleInstall/lib3.cxx | 6 + CMakeLua/Tests/SimpleInstall/lib3.h | 11 + CMakeLua/Tests/SimpleInstall/lib4.cxx | 7 + CMakeLua/Tests/SimpleInstall/lib4.h | 12 + .../Tests/SimpleInstall/scripts/CMakeLists.txt | 1 + CMakeLua/Tests/SimpleInstall/scripts/CVS/Entries | 4 + .../Tests/SimpleInstall/scripts/CVS/Repository | 1 + CMakeLua/Tests/SimpleInstall/scripts/CVS/Root | 1 + CMakeLua/Tests/SimpleInstall/scripts/CVS/Tag | 1 + CMakeLua/Tests/SimpleInstall/scripts/CVS/Template | 22 + CMakeLua/Tests/SimpleInstall/scripts/sample_script | 2 + .../Tests/SimpleInstall/scripts/sample_script.bat | 1 + CMakeLua/Tests/SimpleInstallS2/CMakeLists.txt | 394 + CMakeLua/Tests/SimpleInstallS2/CVS/Entries | 22 + CMakeLua/Tests/SimpleInstallS2/CVS/Repository | 1 + CMakeLua/Tests/SimpleInstallS2/CVS/Root | 1 + CMakeLua/Tests/SimpleInstallS2/CVS/Tag | 1 + CMakeLua/Tests/SimpleInstallS2/CVS/Template | 22 + .../Tests/SimpleInstallS2/InstallScript1.cmake | 5 + .../Tests/SimpleInstallS2/InstallScript2.cmake | 14 + .../Tests/SimpleInstallS2/InstallScript3.cmake | 12 + .../Tests/SimpleInstallS2/InstallScript4.cmake | 22 + CMakeLua/Tests/SimpleInstallS2/PackageScript.cmake | 10 + CMakeLua/Tests/SimpleInstallS2/PostInstall.cmake | 6 + CMakeLua/Tests/SimpleInstallS2/PreInstall.cmake | 2 + .../SimpleInstallS2/TestSubDir/CMakeLists.txt | 3 + .../Tests/SimpleInstallS2/TestSubDir/CVS/Entries | 5 + .../SimpleInstallS2/TestSubDir/CVS/Repository | 1 + CMakeLua/Tests/SimpleInstallS2/TestSubDir/CVS/Root | 1 + CMakeLua/Tests/SimpleInstallS2/TestSubDir/CVS/Tag | 1 + .../Tests/SimpleInstallS2/TestSubDir/CVS/Template | 22 + CMakeLua/Tests/SimpleInstallS2/TestSubDir/TSD.cxx | 10 + CMakeLua/Tests/SimpleInstallS2/TestSubDir/TSD.h | 1 + .../Tests/SimpleInstallS2/TestSubDir/TSD_utils.cxx | 10 + CMakeLua/Tests/SimpleInstallS2/foo.c | 6 + CMakeLua/Tests/SimpleInstallS2/foo.h | 11 + CMakeLua/Tests/SimpleInstallS2/inst.cxx | 37 + CMakeLua/Tests/SimpleInstallS2/inst2.cxx | 2 + CMakeLua/Tests/SimpleInstallS2/lib1.cxx | 6 + CMakeLua/Tests/SimpleInstallS2/lib1.h | 1 + CMakeLua/Tests/SimpleInstallS2/lib2.cxx | 6 + CMakeLua/Tests/SimpleInstallS2/lib2.h | 11 + CMakeLua/Tests/SimpleInstallS2/lib3.cxx | 6 + CMakeLua/Tests/SimpleInstallS2/lib3.h | 11 + CMakeLua/Tests/SimpleInstallS2/lib4.cxx | 7 + CMakeLua/Tests/SimpleInstallS2/lib4.h | 12 + .../Tests/SimpleInstallS2/scripts/CMakeLists.txt | 1 + CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Entries | 4 + .../Tests/SimpleInstallS2/scripts/CVS/Repository | 1 + CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Root | 1 + CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Tag | 1 + .../Tests/SimpleInstallS2/scripts/CVS/Template | 22 + .../Tests/SimpleInstallS2/scripts/sample_script | 2 + .../SimpleInstallS2/scripts/sample_script.bat | 1 + CMakeLua/Tests/SourceGroups/CMakeLists.txt | 41 + CMakeLua/Tests/SourceGroups/CVS/Entries | 6 + CMakeLua/Tests/SourceGroups/CVS/Repository | 1 + CMakeLua/Tests/SourceGroups/CVS/Root | 1 + CMakeLua/Tests/SourceGroups/CVS/Tag | 1 + CMakeLua/Tests/SourceGroups/CVS/Template | 22 + CMakeLua/Tests/SourceGroups/bar.c | 4 + CMakeLua/Tests/SourceGroups/baz.c | 4 + CMakeLua/Tests/SourceGroups/foo.c | 4 + CMakeLua/Tests/SourceGroups/main.c | 13 + CMakeLua/Tests/SourceGroups/sub1/CVS/Entries | 3 + CMakeLua/Tests/SourceGroups/sub1/CVS/Repository | 1 + CMakeLua/Tests/SourceGroups/sub1/CVS/Root | 1 + CMakeLua/Tests/SourceGroups/sub1/CVS/Tag | 1 + CMakeLua/Tests/SourceGroups/sub1/CVS/Template | 22 + CMakeLua/Tests/SourceGroups/sub1/foo.c | 4 + CMakeLua/Tests/SourceGroups/sub1/foobar.c | 4 + CMakeLua/Tests/StringFileTest/CMakeLists.txt | 211 + CMakeLua/Tests/StringFileTest/CVS/Entries | 6 + CMakeLua/Tests/StringFileTest/CVS/Repository | 1 + CMakeLua/Tests/StringFileTest/CVS/Root | 1 + CMakeLua/Tests/StringFileTest/CVS/Tag | 1 + CMakeLua/Tests/StringFileTest/CVS/Template | 22 + CMakeLua/Tests/StringFileTest/InputFile.h.in | 38 + CMakeLua/Tests/StringFileTest/StringFile.cxx | 31 + CMakeLua/Tests/StringFileTest/main.ihx | 21 + CMakeLua/Tests/StringFileTest/main.srec | 21 + CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Entries | 5 + CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Repository | 1 + CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Root | 1 + CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Tag | 1 + CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Template | 22 + CMakeLua/Tests/SubDir/AnotherSubdir/pair+int.int.c | 6 + CMakeLua/Tests/SubDir/AnotherSubdir/pair_int.int.c | 6 + CMakeLua/Tests/SubDir/AnotherSubdir/secondone.c | 6 + .../Tests/SubDir/AnotherSubdir/testfromsubdir.c | 14 + CMakeLua/Tests/SubDir/CMakeLists.txt | 45 + CMakeLua/Tests/SubDir/CVS/Entries | 7 + CMakeLua/Tests/SubDir/CVS/Repository | 1 + CMakeLua/Tests/SubDir/CVS/Root | 1 + CMakeLua/Tests/SubDir/CVS/Tag | 1 + CMakeLua/Tests/SubDir/CVS/Template | 22 + CMakeLua/Tests/SubDir/Examples/CMakeLists.txt | 2 + CMakeLua/Tests/SubDir/Examples/CVS/Entries | 3 + CMakeLua/Tests/SubDir/Examples/CVS/Repository | 1 + CMakeLua/Tests/SubDir/Examples/CVS/Root | 1 + CMakeLua/Tests/SubDir/Examples/CVS/Tag | 1 + CMakeLua/Tests/SubDir/Examples/CVS/Template | 22 + .../Tests/SubDir/Examples/example1/CMakeLists.txt | 6 + .../Tests/SubDir/Examples/example1/CVS/Entries | 3 + .../Tests/SubDir/Examples/example1/CVS/Repository | 1 + CMakeLua/Tests/SubDir/Examples/example1/CVS/Root | 1 + CMakeLua/Tests/SubDir/Examples/example1/CVS/Tag | 1 + .../Tests/SubDir/Examples/example1/CVS/Template | 22 + .../Tests/SubDir/Examples/example1/example1.cxx | 7 + .../Tests/SubDir/Examples/example2/CMakeLists.txt | 2 + .../Tests/SubDir/Examples/example2/CVS/Entries | 3 + .../Tests/SubDir/Examples/example2/CVS/Repository | 1 + CMakeLua/Tests/SubDir/Examples/example2/CVS/Root | 1 + CMakeLua/Tests/SubDir/Examples/example2/CVS/Tag | 1 + .../Tests/SubDir/Examples/example2/CVS/Template | 22 + .../Tests/SubDir/Examples/example2/example2.cxx | 7 + CMakeLua/Tests/SubDir/Executable/CMakeLists.txt | 1 + CMakeLua/Tests/SubDir/Executable/CVS/Entries | 3 + CMakeLua/Tests/SubDir/Executable/CVS/Repository | 1 + CMakeLua/Tests/SubDir/Executable/CVS/Root | 1 + CMakeLua/Tests/SubDir/Executable/CVS/Tag | 1 + CMakeLua/Tests/SubDir/Executable/CVS/Template | 22 + CMakeLua/Tests/SubDir/Executable/test.cxx | 49 + CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Entries | 6 + CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Repository | 1 + CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Root | 1 + CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Tag | 1 + CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Template | 22 + CMakeLua/Tests/SubDir/ThirdSubDir/pair+int.int1.c | 6 + CMakeLua/Tests/SubDir/ThirdSubDir/pair_int.int1.c | 6 + .../Tests/SubDir/ThirdSubDir/pair_p_int.int1.c | 6 + .../Tests/SubDir/ThirdSubDir/testfromauxsubdir.c | 16 + CMakeLua/Tests/SubDir/ThirdSubDir/thirdone.c | 6 + .../SubDir/vcl_algorithm+vcl_pair+double.foo.c | 6 + .../SubDir/vcl_algorithm_vcl_pair_double.foo.c | 6 + .../Tests/SubDirSpaces/Another Subdir/CVS/Entries | 5 + .../SubDirSpaces/Another Subdir/CVS/Repository | 1 + .../Tests/SubDirSpaces/Another Subdir/CVS/Root | 1 + CMakeLua/Tests/SubDirSpaces/Another Subdir/CVS/Tag | 1 + .../Tests/SubDirSpaces/Another Subdir/CVS/Template | 22 + .../SubDirSpaces/Another Subdir/pair+int.int.c | 6 + .../SubDirSpaces/Another Subdir/pair_int.int.c | 6 + .../Tests/SubDirSpaces/Another Subdir/secondone.c | 6 + .../SubDirSpaces/Another Subdir/testfromsubdir.c | 14 + CMakeLua/Tests/SubDirSpaces/CMakeLists.txt | 68 + CMakeLua/Tests/SubDirSpaces/CVS/Entries | 9 + CMakeLua/Tests/SubDirSpaces/CVS/Repository | 1 + CMakeLua/Tests/SubDirSpaces/CVS/Root | 1 + CMakeLua/Tests/SubDirSpaces/CVS/Tag | 1 + CMakeLua/Tests/SubDirSpaces/CVS/Template | 22 + .../SubDirSpaces/Executable Sources/CMakeLists.txt | 1 + .../SubDirSpaces/Executable Sources/CVS/Entries | 3 + .../SubDirSpaces/Executable Sources/CVS/Repository | 1 + .../Tests/SubDirSpaces/Executable Sources/CVS/Root | 1 + .../Tests/SubDirSpaces/Executable Sources/CVS/Tag | 1 + .../SubDirSpaces/Executable Sources/CVS/Template | 22 + .../Tests/SubDirSpaces/Executable Sources/test.cxx | 49 + .../Tests/SubDirSpaces/Executable/CMakeLists.txt | 1 + CMakeLua/Tests/SubDirSpaces/Executable/CVS/Entries | 3 + .../Tests/SubDirSpaces/Executable/CVS/Repository | 1 + CMakeLua/Tests/SubDirSpaces/Executable/CVS/Root | 1 + CMakeLua/Tests/SubDirSpaces/Executable/CVS/Tag | 1 + .../Tests/SubDirSpaces/Executable/CVS/Template | 22 + CMakeLua/Tests/SubDirSpaces/Executable/test.cxx | 49 + .../SubDirSpaces/Some Examples/CMakeLists.txt | 2 + .../Tests/SubDirSpaces/Some Examples/CVS/Entries | 3 + .../SubDirSpaces/Some Examples/CVS/Repository | 1 + CMakeLua/Tests/SubDirSpaces/Some Examples/CVS/Root | 1 + CMakeLua/Tests/SubDirSpaces/Some Examples/CVS/Tag | 1 + .../Tests/SubDirSpaces/Some Examples/CVS/Template | 22 + .../Some Examples/example1/CMakeLists.txt | 6 + .../Some Examples/example1/CVS/Entries | 3 + .../Some Examples/example1/CVS/Repository | 1 + .../SubDirSpaces/Some Examples/example1/CVS/Root | 1 + .../SubDirSpaces/Some Examples/example1/CVS/Tag | 1 + .../Some Examples/example1/CVS/Template | 22 + .../Some Examples/example1/example1.cxx | 7 + .../Some Examples/example2/CMakeLists.txt | 2 + .../Some Examples/example2/CVS/Entries | 3 + .../Some Examples/example2/CVS/Repository | 1 + .../SubDirSpaces/Some Examples/example2/CVS/Root | 1 + .../SubDirSpaces/Some Examples/example2/CVS/Tag | 1 + .../Some Examples/example2/CVS/Template | 22 + .../Some Examples/example2/example2.cxx | 7 + .../SubDirSpaces/Some(x86) Sources/CMakeLists.txt | 1 + .../SubDirSpaces/Some(x86) Sources/CVS/Entries | 3 + .../SubDirSpaces/Some(x86) Sources/CVS/Repository | 1 + .../Tests/SubDirSpaces/Some(x86) Sources/CVS/Root | 1 + .../Tests/SubDirSpaces/Some(x86) Sources/CVS/Tag | 1 + .../SubDirSpaces/Some(x86) Sources/CVS/Template | 22 + .../Tests/SubDirSpaces/Some(x86) Sources/test.c | 3 + .../Tests/SubDirSpaces/ThirdSubDir/CVS/Entries | 6 + .../Tests/SubDirSpaces/ThirdSubDir/CVS/Repository | 1 + CMakeLua/Tests/SubDirSpaces/ThirdSubDir/CVS/Root | 1 + CMakeLua/Tests/SubDirSpaces/ThirdSubDir/CVS/Tag | 1 + .../Tests/SubDirSpaces/ThirdSubDir/CVS/Template | 22 + .../Tests/SubDirSpaces/ThirdSubDir/pair+int.int1.c | 6 + .../Tests/SubDirSpaces/ThirdSubDir/pair_int.int1.c | 6 + .../SubDirSpaces/ThirdSubDir/pair_p_int.int1.c | 6 + .../SubDirSpaces/ThirdSubDir/testfromauxsubdir.c | 21 + CMakeLua/Tests/SubDirSpaces/ThirdSubDir/thirdone.c | 6 + .../vcl_algorithm+vcl_pair+double.foo.c | 6 + .../vcl_algorithm_vcl_pair_double.foo.c | 6 + CMakeLua/Tests/SubProject/CMakeLists.txt | 5 + CMakeLua/Tests/SubProject/CVS/Entries | 4 + CMakeLua/Tests/SubProject/CVS/Repository | 1 + CMakeLua/Tests/SubProject/CVS/Root | 1 + CMakeLua/Tests/SubProject/bar.cxx | 4 + CMakeLua/Tests/SubProject/car.cxx | 6 + CMakeLua/Tests/SubProject/foo/CMakeLists.txt | 3 + CMakeLua/Tests/SubProject/foo/CVS/Entries | 3 + CMakeLua/Tests/SubProject/foo/CVS/Repository | 1 + CMakeLua/Tests/SubProject/foo/CVS/Root | 1 + CMakeLua/Tests/SubProject/foo/foo.cxx | 15 + CMakeLua/Tests/SwigTest/CMakeLists.txt | 49 + CMakeLua/Tests/SwigTest/CVS/Entries | 12 + CMakeLua/Tests/SwigTest/CVS/Repository | 1 + CMakeLua/Tests/SwigTest/CVS/Root | 1 + CMakeLua/Tests/SwigTest/CVS/Tag | 1 + CMakeLua/Tests/SwigTest/CVS/Template | 22 + CMakeLua/Tests/SwigTest/example.cxx | 28 + CMakeLua/Tests/SwigTest/example.h | 39 + CMakeLua/Tests/SwigTest/example.i | 10 + CMakeLua/Tests/SwigTest/runme.php4 | 58 + CMakeLua/Tests/SwigTest/runme.pike | 53 + CMakeLua/Tests/SwigTest/runme.pl | 57 + CMakeLua/Tests/SwigTest/runme.py | 51 + CMakeLua/Tests/SwigTest/runme.rb | 49 + CMakeLua/Tests/SwigTest/runme.tcl | 50 + CMakeLua/Tests/SwigTest/runme2.tcl | 70 + CMakeLua/Tests/SystemInformation/CMakeLists.txt | 60 + CMakeLua/Tests/SystemInformation/CVS/Entries | 5 + CMakeLua/Tests/SystemInformation/CVS/Repository | 1 + CMakeLua/Tests/SystemInformation/CVS/Root | 1 + CMakeLua/Tests/SystemInformation/CVS/Tag | 1 + CMakeLua/Tests/SystemInformation/CVS/Template | 22 + .../Tests/SystemInformation/DumpInformation.cxx | 78 + .../Tests/SystemInformation/DumpInformation.h.in | 6 + .../Tests/SystemInformation/SystemInformation.in | 88 + CMakeLua/Tests/TarTest/CMakeLists.txt | 58 + CMakeLua/Tests/TarTest/CVS/Entries | 3 + CMakeLua/Tests/TarTest/CVS/Repository | 1 + CMakeLua/Tests/TarTest/CVS/Root | 1 + CMakeLua/Tests/TarTest/CVS/Tag | 1 + CMakeLua/Tests/TarTest/CVS/Template | 22 + CMakeLua/Tests/TarTest/TestTarExec.cxx | 5 + CMakeLua/Tests/TargetName/CMakeLists.txt | 4 + CMakeLua/Tests/TargetName/CVS/Entries | 3 + CMakeLua/Tests/TargetName/CVS/Repository | 1 + CMakeLua/Tests/TargetName/CVS/Root | 1 + CMakeLua/Tests/TargetName/CVS/Tag | 1 + CMakeLua/Tests/TargetName/CVS/Template | 22 + .../Tests/TargetName/executables/CMakeLists.txt | 1 + CMakeLua/Tests/TargetName/executables/CVS/Entries | 3 + .../Tests/TargetName/executables/CVS/Repository | 1 + CMakeLua/Tests/TargetName/executables/CVS/Root | 1 + CMakeLua/Tests/TargetName/executables/CVS/Tag | 1 + CMakeLua/Tests/TargetName/executables/CVS/Template | 22 + .../Tests/TargetName/executables/hello_world.c | 5 + CMakeLua/Tests/TargetName/scripts/CMakeLists.txt | 13 + CMakeLua/Tests/TargetName/scripts/CVS/Entries | 3 + CMakeLua/Tests/TargetName/scripts/CVS/Repository | 1 + CMakeLua/Tests/TargetName/scripts/CVS/Root | 1 + CMakeLua/Tests/TargetName/scripts/CVS/Tag | 1 + CMakeLua/Tests/TargetName/scripts/CVS/Template | 22 + CMakeLua/Tests/TargetName/scripts/hello_world | 2 + CMakeLua/Tests/TestDriver/CMakeLists.txt | 14 + CMakeLua/Tests/TestDriver/CVS/Entries | 8 + CMakeLua/Tests/TestDriver/CVS/Repository | 1 + CMakeLua/Tests/TestDriver/CVS/Root | 1 + CMakeLua/Tests/TestDriver/CVS/Tag | 1 + CMakeLua/Tests/TestDriver/CVS/Template | 22 + CMakeLua/Tests/TestDriver/subdir/CVS/Entries | 2 + CMakeLua/Tests/TestDriver/subdir/CVS/Repository | 1 + CMakeLua/Tests/TestDriver/subdir/CVS/Root | 1 + CMakeLua/Tests/TestDriver/subdir/CVS/Tag | 1 + CMakeLua/Tests/TestDriver/subdir/CVS/Template | 22 + CMakeLua/Tests/TestDriver/subdir/test3.cxx | 8 + CMakeLua/Tests/TestDriver/test1.cxx | 25 + CMakeLua/Tests/TestDriver/test2.cxx | 8 + CMakeLua/Tests/TestDriver/testArgs.h | 20 + CMakeLua/Tests/TestDriver/testExtraStuff.cxx | 4 + CMakeLua/Tests/TestDriver/testExtraStuff2.cxx | 4 + CMakeLua/Tests/TestDriver/testExtraStuff3.cxx | 4 + CMakeLua/Tests/TestInstall.sh.in | 63 + CMakeLua/Tests/Testing/CMakeLists.txt | 53 + CMakeLua/Tests/Testing/CVS/Entries | 4 + CMakeLua/Tests/Testing/CVS/Repository | 1 + CMakeLua/Tests/Testing/CVS/Root | 1 + CMakeLua/Tests/Testing/CVS/Tag | 1 + CMakeLua/Tests/Testing/CVS/Template | 22 + CMakeLua/Tests/Testing/DartConfig.cmake | 24 + CMakeLua/Tests/Testing/Sub/CVS/Entries | 1 + CMakeLua/Tests/Testing/Sub/CVS/Repository | 1 + CMakeLua/Tests/Testing/Sub/CVS/Root | 1 + CMakeLua/Tests/Testing/Sub/CVS/Tag | 1 + CMakeLua/Tests/Testing/Sub/CVS/Template | 22 + CMakeLua/Tests/Testing/Sub/Sub2/CMakeLists.txt | 5 + CMakeLua/Tests/Testing/Sub/Sub2/CVS/Entries | 3 + CMakeLua/Tests/Testing/Sub/Sub2/CVS/Repository | 1 + CMakeLua/Tests/Testing/Sub/Sub2/CVS/Root | 1 + CMakeLua/Tests/Testing/Sub/Sub2/CVS/Tag | 1 + CMakeLua/Tests/Testing/Sub/Sub2/CVS/Template | 22 + CMakeLua/Tests/Testing/Sub/Sub2/testing2.cxx | 4 + CMakeLua/Tests/Testing/testing.cxx | 4 + CMakeLua/Tests/TryCompile/CMakeLists.txt | 193 + CMakeLua/Tests/TryCompile/CVS/Entries | 6 + CMakeLua/Tests/TryCompile/CVS/Repository | 1 + CMakeLua/Tests/TryCompile/CVS/Root | 1 + CMakeLua/Tests/TryCompile/CVS/Tag | 1 + CMakeLua/Tests/TryCompile/CVS/Template | 22 + CMakeLua/Tests/TryCompile/exit_success.c | 7 + CMakeLua/Tests/TryCompile/exit_with_error.c | 7 + CMakeLua/Tests/TryCompile/fail.c | 1 + CMakeLua/Tests/TryCompile/pass.c | 6 + CMakeLua/Tests/Tutorial/CVS/Entries | 7 + CMakeLua/Tests/Tutorial/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/CVS/Root | 1 + CMakeLua/Tests/Tutorial/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/CVS/Template | 22 + CMakeLua/Tests/Tutorial/Step1/CMakeLists.txt | 19 + CMakeLua/Tests/Tutorial/Step1/CVS/Entries | 4 + CMakeLua/Tests/Tutorial/Step1/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/Step1/CVS/Root | 1 + CMakeLua/Tests/Tutorial/Step1/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/Step1/CVS/Template | 22 + CMakeLua/Tests/Tutorial/Step1/TutorialConfig.h.in | 4 + CMakeLua/Tests/Tutorial/Step1/tutorial.cxx | 23 + CMakeLua/Tests/Tutorial/Step2/CMakeLists.txt | 30 + CMakeLua/Tests/Tutorial/Step2/CVS/Entries | 4 + CMakeLua/Tests/Tutorial/Step2/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/Step2/CVS/Root | 1 + CMakeLua/Tests/Tutorial/Step2/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/Step2/CVS/Template | 22 + .../Tutorial/Step2/MathFunctions/CMakeLists.txt | 1 + .../Tests/Tutorial/Step2/MathFunctions/CVS/Entries | 4 + .../Tutorial/Step2/MathFunctions/CVS/Repository | 1 + .../Tests/Tutorial/Step2/MathFunctions/CVS/Root | 1 + .../Tests/Tutorial/Step2/MathFunctions/CVS/Tag | 1 + .../Tutorial/Step2/MathFunctions/CVS/Template | 22 + .../Tutorial/Step2/MathFunctions/MathFunctions.h | 1 + .../Tests/Tutorial/Step2/MathFunctions/mysqrt.cxx | 29 + CMakeLua/Tests/Tutorial/Step2/TutorialConfig.h.in | 5 + CMakeLua/Tests/Tutorial/Step2/tutorial.cxx | 34 + CMakeLua/Tests/Tutorial/Step3/CMakeLists.txt | 67 + CMakeLua/Tests/Tutorial/Step3/CVS/Entries | 4 + CMakeLua/Tests/Tutorial/Step3/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/Step3/CVS/Root | 1 + CMakeLua/Tests/Tutorial/Step3/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/Step3/CVS/Template | 22 + .../Tutorial/Step3/MathFunctions/CMakeLists.txt | 4 + .../Tests/Tutorial/Step3/MathFunctions/CVS/Entries | 4 + .../Tutorial/Step3/MathFunctions/CVS/Repository | 1 + .../Tests/Tutorial/Step3/MathFunctions/CVS/Root | 1 + .../Tests/Tutorial/Step3/MathFunctions/CVS/Tag | 1 + .../Tutorial/Step3/MathFunctions/CVS/Template | 22 + .../Tutorial/Step3/MathFunctions/MathFunctions.h | 1 + .../Tests/Tutorial/Step3/MathFunctions/mysqrt.cxx | 29 + CMakeLua/Tests/Tutorial/Step3/TutorialConfig.h.in | 5 + CMakeLua/Tests/Tutorial/Step3/tutorial.cxx | 34 + CMakeLua/Tests/Tutorial/Step4/CMakeLists.txt | 67 + CMakeLua/Tests/Tutorial/Step4/CVS/Entries | 4 + CMakeLua/Tests/Tutorial/Step4/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/Step4/CVS/Root | 1 + CMakeLua/Tests/Tutorial/Step4/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/Step4/CVS/Template | 22 + .../Tutorial/Step4/MathFunctions/CMakeLists.txt | 4 + .../Tests/Tutorial/Step4/MathFunctions/CVS/Entries | 4 + .../Tutorial/Step4/MathFunctions/CVS/Repository | 1 + .../Tests/Tutorial/Step4/MathFunctions/CVS/Root | 1 + .../Tests/Tutorial/Step4/MathFunctions/CVS/Tag | 1 + .../Tutorial/Step4/MathFunctions/CVS/Template | 22 + .../Tutorial/Step4/MathFunctions/MathFunctions.h | 1 + .../Tests/Tutorial/Step4/MathFunctions/mysqrt.cxx | 39 + CMakeLua/Tests/Tutorial/Step4/TutorialConfig.h.in | 9 + CMakeLua/Tests/Tutorial/Step4/tutorial.cxx | 34 + CMakeLua/Tests/Tutorial/Step5/CMakeLists.txt | 71 + CMakeLua/Tests/Tutorial/Step5/CVS/Entries | 4 + CMakeLua/Tests/Tutorial/Step5/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/Step5/CVS/Root | 1 + CMakeLua/Tests/Tutorial/Step5/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/Step5/CVS/Template | 22 + .../Tutorial/Step5/MathFunctions/CMakeLists.txt | 26 + .../Tests/Tutorial/Step5/MathFunctions/CVS/Entries | 5 + .../Tutorial/Step5/MathFunctions/CVS/Repository | 1 + .../Tests/Tutorial/Step5/MathFunctions/CVS/Root | 1 + .../Tests/Tutorial/Step5/MathFunctions/CVS/Tag | 1 + .../Tutorial/Step5/MathFunctions/CVS/Template | 22 + .../Tutorial/Step5/MathFunctions/MakeTable.cxx | 35 + .../Tutorial/Step5/MathFunctions/MathFunctions.h | 1 + .../Tests/Tutorial/Step5/MathFunctions/mysqrt.cxx | 44 + CMakeLua/Tests/Tutorial/Step5/TutorialConfig.h.in | 9 + CMakeLua/Tests/Tutorial/Step5/tutorial.cxx | 34 + CMakeLua/Tests/Tutorial/Step6/CMakeLists.txt | 77 + CMakeLua/Tests/Tutorial/Step6/CVS/Entries | 5 + CMakeLua/Tests/Tutorial/Step6/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/Step6/CVS/Root | 1 + CMakeLua/Tests/Tutorial/Step6/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/Step6/CVS/Template | 22 + CMakeLua/Tests/Tutorial/Step6/License.txt | 2 + .../Tutorial/Step6/MathFunctions/CMakeLists.txt | 26 + .../Tests/Tutorial/Step6/MathFunctions/CVS/Entries | 5 + .../Tutorial/Step6/MathFunctions/CVS/Repository | 1 + .../Tests/Tutorial/Step6/MathFunctions/CVS/Root | 1 + .../Tests/Tutorial/Step6/MathFunctions/CVS/Tag | 1 + .../Tutorial/Step6/MathFunctions/CVS/Template | 22 + .../Tutorial/Step6/MathFunctions/MakeTable.cxx | 35 + .../Tutorial/Step6/MathFunctions/MathFunctions.h | 1 + .../Tests/Tutorial/Step6/MathFunctions/mysqrt.cxx | 44 + CMakeLua/Tests/Tutorial/Step6/TutorialConfig.h.in | 9 + CMakeLua/Tests/Tutorial/Step6/tutorial.cxx | 34 + CMakeLua/Tests/Tutorial/Step7/CMakeLists.txt | 80 + CMakeLua/Tests/Tutorial/Step7/CTestConfig.cmake | 1 + CMakeLua/Tests/Tutorial/Step7/CVS/Entries | 8 + CMakeLua/Tests/Tutorial/Step7/CVS/Repository | 1 + CMakeLua/Tests/Tutorial/Step7/CVS/Root | 1 + CMakeLua/Tests/Tutorial/Step7/CVS/Tag | 1 + CMakeLua/Tests/Tutorial/Step7/CVS/Template | 22 + CMakeLua/Tests/Tutorial/Step7/License.txt | 2 + .../Tutorial/Step7/MathFunctions/CMakeLists.txt | 26 + .../Tests/Tutorial/Step7/MathFunctions/CVS/Entries | 5 + .../Tutorial/Step7/MathFunctions/CVS/Repository | 1 + .../Tests/Tutorial/Step7/MathFunctions/CVS/Root | 1 + .../Tests/Tutorial/Step7/MathFunctions/CVS/Tag | 1 + .../Tutorial/Step7/MathFunctions/CVS/Template | 22 + .../Tutorial/Step7/MathFunctions/MakeTable.cxx | 35 + .../Tutorial/Step7/MathFunctions/MathFunctions.h | 1 + .../Tests/Tutorial/Step7/MathFunctions/mysqrt.cxx | 44 + CMakeLua/Tests/Tutorial/Step7/TutorialConfig.h.in | 9 + CMakeLua/Tests/Tutorial/Step7/build1.cmake | 5 + CMakeLua/Tests/Tutorial/Step7/build2.cmake | 9 + CMakeLua/Tests/Tutorial/Step7/tutorial.cxx | 34 + CMakeLua/Tests/UseWX/CMakeLists.txt | 7 + CMakeLua/Tests/UseWX/CVS/Entries | 3 + CMakeLua/Tests/UseWX/CVS/Repository | 1 + CMakeLua/Tests/UseWX/CVS/Root | 1 + CMakeLua/Tests/UseWX/CVS/Tag | 1 + CMakeLua/Tests/UseWX/CVS/Template | 22 + CMakeLua/Tests/UseWX/WX.cxx | 82 + CMakeLua/Tests/VSExternalInclude/CMakeLists.txt | 39 + CMakeLua/Tests/VSExternalInclude/CVS/Entries | 4 + CMakeLua/Tests/VSExternalInclude/CVS/Repository | 1 + CMakeLua/Tests/VSExternalInclude/CVS/Root | 1 + CMakeLua/Tests/VSExternalInclude/CVS/Tag | 1 + CMakeLua/Tests/VSExternalInclude/CVS/Template | 22 + .../Tests/VSExternalInclude/Lib1/CMakeLists.txt | 5 + CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Entries | 4 + .../Tests/VSExternalInclude/Lib1/CVS/Repository | 1 + CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Root | 1 + CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Tag | 1 + CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Template | 22 + CMakeLua/Tests/VSExternalInclude/Lib1/lib1.cpp | 7 + CMakeLua/Tests/VSExternalInclude/Lib1/lib1.h | 8 + .../Tests/VSExternalInclude/Lib2/CMakeLists.txt | 7 + CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Entries | 4 + .../Tests/VSExternalInclude/Lib2/CVS/Repository | 1 + CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Root | 1 + CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Tag | 1 + CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Template | 22 + CMakeLua/Tests/VSExternalInclude/Lib2/lib2.cpp | 9 + CMakeLua/Tests/VSExternalInclude/Lib2/lib2.h | 10 + CMakeLua/Tests/VSExternalInclude/main.cpp | 9 + CMakeLua/Tests/Wrapping/CMakeLists.txt | 106 + CMakeLua/Tests/Wrapping/CVS/Entries | 18 + CMakeLua/Tests/Wrapping/CVS/Repository | 1 + CMakeLua/Tests/Wrapping/CVS/Root | 1 + CMakeLua/Tests/Wrapping/CVS/Tag | 1 + CMakeLua/Tests/Wrapping/CVS/Template | 22 + CMakeLua/Tests/Wrapping/Wrap.c | 23 + CMakeLua/Tests/Wrapping/dummy | 0 CMakeLua/Tests/Wrapping/fakefluid.cxx | 17 + CMakeLua/Tests/Wrapping/fltk1.fl | 0 CMakeLua/Tests/Wrapping/foo.ui.in | 44 + CMakeLua/Tests/Wrapping/hints | 0 CMakeLua/Tests/Wrapping/itkWrapperConfig.cxx | 0 CMakeLua/Tests/Wrapping/qtnoqtmain.cxx | 5 + CMakeLua/Tests/Wrapping/qtwrapping.ui | 44 + CMakeLua/Tests/Wrapping/qtwrappingmain.cxx | 29 + CMakeLua/Tests/Wrapping/vtkExcluded.cxx | 0 CMakeLua/Tests/Wrapping/vtkExcluded.h | 2 + CMakeLua/Tests/Wrapping/vtkIncluded.cxx | 0 CMakeLua/Tests/Wrapping/vtkIncluded.h | 2 + CMakeLua/Tests/Wrapping/vtkTestMoc.h | 8 + CMakeLua/Tests/Wrapping/wrapping.cxx | 4 + CMakeLua/Tests/X11/CMakeLists.txt | 25 + CMakeLua/Tests/X11/CVS/Entries | 3 + CMakeLua/Tests/X11/CVS/Repository | 1 + CMakeLua/Tests/X11/CVS/Root | 1 + CMakeLua/Tests/X11/CVS/Tag | 1 + CMakeLua/Tests/X11/CVS/Template | 22 + CMakeLua/Tests/X11/X11.c | 21 + CMakeLua/Utilities/.NoDartCoverage | 1 + CMakeLua/Utilities/CMakeLists.txt | 89 + CMakeLua/Utilities/CVS/Entries | 16 + CMakeLua/Utilities/CVS/Repository | 1 + CMakeLua/Utilities/CVS/Root | 1 + CMakeLua/Utilities/CVS/Tag | 1 + CMakeLua/Utilities/CVS/Template | 22 + CMakeLua/Utilities/Doxygen/CMakeLists.txt | 29 + CMakeLua/Utilities/Doxygen/CVS/Entries | 5 + CMakeLua/Utilities/Doxygen/CVS/Repository | 1 + CMakeLua/Utilities/Doxygen/CVS/Root | 1 + CMakeLua/Utilities/Doxygen/CVS/Tag | 1 + CMakeLua/Utilities/Doxygen/CVS/Template | 22 + CMakeLua/Utilities/Doxygen/authors.txt | 17 + CMakeLua/Utilities/Doxygen/doc_makeall.sh.in | 248 + CMakeLua/Utilities/Doxygen/doxyfile.in | 78 + CMakeLua/Utilities/KWStyle/CMake.kws.xml.in | 11 + CMakeLua/Utilities/KWStyle/CMakeFiles.txt.in | 15 + CMakeLua/Utilities/KWStyle/CMakeLists.txt | 50 + .../Utilities/KWStyle/CMakeMoreChecks.kws.xml.in | 30 + CMakeLua/Utilities/KWStyle/CMakeOverwrite.txt | 0 CMakeLua/Utilities/KWStyle/CVS/Entries | 6 + CMakeLua/Utilities/KWStyle/CVS/Repository | 1 + CMakeLua/Utilities/KWStyle/CVS/Root | 1 + CMakeLua/Utilities/KWStyle/CVS/Tag | 1 + CMakeLua/Utilities/KWStyle/CVS/Template | 22 + CMakeLua/Utilities/KWStyle/Headers/CMakeHeader.h | 16 + CMakeLua/Utilities/KWStyle/Headers/CVS/Entries | 2 + CMakeLua/Utilities/KWStyle/Headers/CVS/Repository | 1 + CMakeLua/Utilities/KWStyle/Headers/CVS/Root | 1 + CMakeLua/Utilities/KWStyle/Headers/CVS/Tag | 1 + CMakeLua/Utilities/KWStyle/Headers/CVS/Template | 22 + CMakeLua/Utilities/Release/CMakeInstall.bmp | Bin 0 -> 25820 bytes CMakeLua/Utilities/Release/CMakeLogo.ico | Bin 0 -> 24542 bytes CMakeLua/Utilities/Release/CVS/Entries | 22 + CMakeLua/Utilities/Release/CVS/Repository | 1 + CMakeLua/Utilities/Release/CVS/Root | 1 + CMakeLua/Utilities/Release/CVS/Tag | 1 + CMakeLua/Utilities/Release/CVS/Template | 22 + CMakeLua/Utilities/Release/Cygwin/CMakeLists.txt | 25 + CMakeLua/Utilities/Release/Cygwin/CVS/Entries | 6 + CMakeLua/Utilities/Release/Cygwin/CVS/Repository | 1 + CMakeLua/Utilities/Release/Cygwin/CVS/Root | 1 + CMakeLua/Utilities/Release/Cygwin/CVS/Tag | 1 + CMakeLua/Utilities/Release/Cygwin/CVS/Template | 22 + CMakeLua/Utilities/Release/Cygwin/README.cygwin.in | 42 + .../Utilities/Release/Cygwin/cygwin-package.sh.in | 90 + .../Utilities/Release/Cygwin/cygwin-patch.diff.in | 0 .../Utilities/Release/Cygwin/cygwin-setup.hint.in | 5 + CMakeLua/Utilities/Release/README | 26 + .../Utilities/Release/create-cmake-release.cmake | 30 + .../Utilities/Release/dashmacmini2_release.cmake | 14 + CMakeLua/Utilities/Release/dashsgi1_release.cmake | 11 + .../Utilities/Release/dashsgi1_release64.cmake | 15 + CMakeLua/Utilities/Release/dashsun1_release.cmake | 18 + CMakeLua/Utilities/Release/destiny_release.cmake | 12 + CMakeLua/Utilities/Release/hythloth_release.cmake | 10 + CMakeLua/Utilities/Release/magrathea_release.cmake | 13 + CMakeLua/Utilities/Release/muse_release.cmake | 10 + CMakeLua/Utilities/Release/muse_release64.cmake | 14 + .../Utilities/Release/r15n65_aix_release.cmake | 22 + .../Utilities/Release/r36n11_aix_release.cmake | 22 + CMakeLua/Utilities/Release/release_cmake.cmake | 139 + CMakeLua/Utilities/Release/release_cmake.sh.in | 123 + CMakeLua/Utilities/Release/upload_release.cmake | 24 + .../Utilities/Release/v60n177_aix_release.cmake | 21 + CMakeLua/Utilities/Release/vogon_cygwin.cmake | 10 + CMakeLua/Utilities/Release/vogon_release.cmake | 15 + CMakeLua/Utilities/cmThirdParty.h.in | 26 + CMakeLua/Utilities/cm_curl.h | 28 + CMakeLua/Utilities/cm_expat.h | 28 + CMakeLua/Utilities/cm_xmlrpc.h | 30 + CMakeLua/Utilities/cm_zlib.h | 28 + CMakeLua/Utilities/cmcompress/CMakeLists.txt | 3 + CMakeLua/Utilities/cmcompress/CVS/Entries | 5 + CMakeLua/Utilities/cmcompress/CVS/Repository | 1 + CMakeLua/Utilities/cmcompress/CVS/Root | 1 + CMakeLua/Utilities/cmcompress/CVS/Tag | 1 + CMakeLua/Utilities/cmcompress/CVS/Template | 22 + CMakeLua/Utilities/cmcompress/cmcompress.c | 551 + CMakeLua/Utilities/cmcompress/cmcompress.h | 195 + CMakeLua/Utilities/cmcompress/compress.c.original | 1308 + .../cmcurl/CMake/CMakeConfigurableFile.in | 2 + CMakeLua/Utilities/cmcurl/CMake/CVS/Entries | 8 + CMakeLua/Utilities/cmcurl/CMake/CVS/Repository | 1 + CMakeLua/Utilities/cmcurl/CMake/CVS/Root | 1 + CMakeLua/Utilities/cmcurl/CMake/CVS/Tag | 1 + CMakeLua/Utilities/cmcurl/CMake/CVS/Template | 22 + .../cmcurl/CMake/CheckCSourceCompiles.cmake | 75 + .../Utilities/cmcurl/CMake/CheckCSourceRuns.cmake | 83 + CMakeLua/Utilities/cmcurl/CMake/CheckTypeSize.c.in | 34 + .../Utilities/cmcurl/CMake/CheckTypeSize.cmake | 56 + CMakeLua/Utilities/cmcurl/CMake/CurlTests.c | 526 + CMakeLua/Utilities/cmcurl/CMake/OtherTests.cmake | 250 + CMakeLua/Utilities/cmcurl/CMakeLists.txt | 707 + CMakeLua/Utilities/cmcurl/CVS/Entries | 129 + CMakeLua/Utilities/cmcurl/CVS/Repository | 1 + CMakeLua/Utilities/cmcurl/CVS/Root | 1 + CMakeLua/Utilities/cmcurl/CVS/Tag | 1 + CMakeLua/Utilities/cmcurl/CVS/Template | 22 + CMakeLua/Utilities/cmcurl/Platforms/CVS/Entries | 3 + CMakeLua/Utilities/cmcurl/Platforms/CVS/Repository | 1 + CMakeLua/Utilities/cmcurl/Platforms/CVS/Root | 1 + CMakeLua/Utilities/cmcurl/Platforms/CVS/Tag | 1 + CMakeLua/Utilities/cmcurl/Platforms/CVS/Template | 22 + .../Utilities/cmcurl/Platforms/WindowsCache.cmake | 121 + CMakeLua/Utilities/cmcurl/Platforms/config-aix.h | 486 + CMakeLua/Utilities/cmcurl/Testing/CMakeLists.txt | 19 + CMakeLua/Utilities/cmcurl/Testing/CVS/Entries | 18 + CMakeLua/Utilities/cmcurl/Testing/CVS/Repository | 1 + CMakeLua/Utilities/cmcurl/Testing/CVS/Root | 1 + CMakeLua/Utilities/cmcurl/Testing/CVS/Tag | 1 + CMakeLua/Utilities/cmcurl/Testing/CVS/Template | 22 + CMakeLua/Utilities/cmcurl/Testing/curlgtk.c | 95 + CMakeLua/Utilities/cmcurl/Testing/curltest.c | 143 + CMakeLua/Utilities/cmcurl/Testing/ftpget.c | 84 + CMakeLua/Utilities/cmcurl/Testing/ftpgetresp.c | 64 + CMakeLua/Utilities/cmcurl/Testing/ftpupload.c | 93 + CMakeLua/Utilities/cmcurl/Testing/getinmemory.c | 83 + CMakeLua/Utilities/cmcurl/Testing/http-post.c | 35 + CMakeLua/Utilities/cmcurl/Testing/httpput.c | 100 + CMakeLua/Utilities/cmcurl/Testing/multithread.c | 70 + CMakeLua/Utilities/cmcurl/Testing/persistant.c | 53 + CMakeLua/Utilities/cmcurl/Testing/postit2.c | 92 + CMakeLua/Utilities/cmcurl/Testing/sepheaders.c | 78 + CMakeLua/Utilities/cmcurl/Testing/simple.c | 28 + CMakeLua/Utilities/cmcurl/Testing/simplessl.c | 118 + CMakeLua/Utilities/cmcurl/Testing/testconfig.h.in | 7 + CMakeLua/Utilities/cmcurl/Testing/win32sockets.c | 49 + CMakeLua/Utilities/cmcurl/amigaos.c | 74 + CMakeLua/Utilities/cmcurl/amigaos.h | 58 + CMakeLua/Utilities/cmcurl/arpa_telnet.h | 101 + CMakeLua/Utilities/cmcurl/base64.c | 366 + CMakeLua/Utilities/cmcurl/base64.h | 28 + CMakeLua/Utilities/cmcurl/ca-bundle.h | 1 + CMakeLua/Utilities/cmcurl/config.h.in | 719 + CMakeLua/Utilities/cmcurl/connect.c | 905 + CMakeLua/Utilities/cmcurl/connect.h | 46 + CMakeLua/Utilities/cmcurl/content_encoding.c | 424 + CMakeLua/Utilities/cmcurl/content_encoding.h | 41 + CMakeLua/Utilities/cmcurl/cookie.c | 1017 + CMakeLua/Utilities/cmcurl/cookie.h | 107 + CMakeLua/Utilities/cmcurl/curl.copyright | 25 + CMakeLua/Utilities/cmcurl/curl/CVS/Entries | 8 + CMakeLua/Utilities/cmcurl/curl/CVS/Repository | 1 + CMakeLua/Utilities/cmcurl/curl/CVS/Root | 1 + CMakeLua/Utilities/cmcurl/curl/CVS/Tag | 1 + CMakeLua/Utilities/cmcurl/curl/CVS/Template | 22 + CMakeLua/Utilities/cmcurl/curl/curl.h | 1644 + CMakeLua/Utilities/cmcurl/curl/curlver.h | 56 + CMakeLua/Utilities/cmcurl/curl/easy.h | 81 + CMakeLua/Utilities/cmcurl/curl/mprintf.h | 80 + CMakeLua/Utilities/cmcurl/curl/multi.h | 327 + CMakeLua/Utilities/cmcurl/curl/stdcheaders.h | 34 + CMakeLua/Utilities/cmcurl/curl/types.h | 1 + CMakeLua/Utilities/cmcurl/curlx.h | 107 + CMakeLua/Utilities/cmcurl/dict.c | 280 + CMakeLua/Utilities/cmcurl/dict.h | 30 + CMakeLua/Utilities/cmcurl/easy.c | 895 + CMakeLua/Utilities/cmcurl/easyif.h | 40 + CMakeLua/Utilities/cmcurl/escape.c | 181 + CMakeLua/Utilities/cmcurl/escape.h | 30 + CMakeLua/Utilities/cmcurl/file.c | 407 + CMakeLua/Utilities/cmcurl/file.h | 31 + CMakeLua/Utilities/cmcurl/formdata.c | 1694 + CMakeLua/Utilities/cmcurl/formdata.h | 97 + CMakeLua/Utilities/cmcurl/ftp.c | 3865 ++ CMakeLua/Utilities/cmcurl/ftp.h | 43 + CMakeLua/Utilities/cmcurl/getenv.c | 69 + CMakeLua/Utilities/cmcurl/getinfo.c | 234 + CMakeLua/Utilities/cmcurl/getinfo.h | 28 + CMakeLua/Utilities/cmcurl/gtls.c | 640 + CMakeLua/Utilities/cmcurl/gtls.h | 46 + CMakeLua/Utilities/cmcurl/hash.c | 315 + CMakeLua/Utilities/cmcurl/hash.h | 61 + CMakeLua/Utilities/cmcurl/hostares.c | 307 + CMakeLua/Utilities/cmcurl/hostasyn.c | 174 + CMakeLua/Utilities/cmcurl/hostip.c | 636 + CMakeLua/Utilities/cmcurl/hostip.h | 271 + CMakeLua/Utilities/cmcurl/hostip4.c | 389 + CMakeLua/Utilities/cmcurl/hostip6.c | 306 + CMakeLua/Utilities/cmcurl/hostsyn.c | 138 + CMakeLua/Utilities/cmcurl/hostthre.c | 840 + CMakeLua/Utilities/cmcurl/http.c | 2422 + CMakeLua/Utilities/cmcurl/http.h | 85 + CMakeLua/Utilities/cmcurl/http_chunks.c | 360 + CMakeLua/Utilities/cmcurl/http_chunks.h | 104 + CMakeLua/Utilities/cmcurl/http_digest.c | 504 + CMakeLua/Utilities/cmcurl/http_digest.h | 58 + CMakeLua/Utilities/cmcurl/http_negotiate.c | 327 + CMakeLua/Utilities/cmcurl/http_negotiate.h | 39 + CMakeLua/Utilities/cmcurl/http_ntlm.c | 1111 + CMakeLua/Utilities/cmcurl/http_ntlm.h | 146 + CMakeLua/Utilities/cmcurl/if2ip.c | 134 + CMakeLua/Utilities/cmcurl/if2ip.h | 67 + CMakeLua/Utilities/cmcurl/inet_ntoa_r.h | 44 + CMakeLua/Utilities/cmcurl/inet_ntop.c | 224 + CMakeLua/Utilities/cmcurl/inet_ntop.h | 37 + CMakeLua/Utilities/cmcurl/inet_pton.c | 241 + CMakeLua/Utilities/cmcurl/inet_pton.h | 42 + CMakeLua/Utilities/cmcurl/krb4.c | 425 + CMakeLua/Utilities/cmcurl/krb4.h | 70 + CMakeLua/Utilities/cmcurl/ldap.c | 702 + CMakeLua/Utilities/cmcurl/ldap.h | 29 + CMakeLua/Utilities/cmcurl/llist.c | 138 + CMakeLua/Utilities/cmcurl/llist.h | 60 + CMakeLua/Utilities/cmcurl/md5.c | 352 + CMakeLua/Utilities/cmcurl/md5.h | 29 + CMakeLua/Utilities/cmcurl/memdebug.c | 298 + CMakeLua/Utilities/cmcurl/memdebug.h | 125 + CMakeLua/Utilities/cmcurl/memory.h | 50 + CMakeLua/Utilities/cmcurl/mprintf.c | 1222 + CMakeLua/Utilities/cmcurl/multi.c | 1988 + CMakeLua/Utilities/cmcurl/multiif.h | 46 + CMakeLua/Utilities/cmcurl/netrc.c | 247 + CMakeLua/Utilities/cmcurl/netrc.h | 34 + CMakeLua/Utilities/cmcurl/nwlib.c | 300 + CMakeLua/Utilities/cmcurl/parsedate.c | 425 + CMakeLua/Utilities/cmcurl/parsedate.h | 28 + CMakeLua/Utilities/cmcurl/progress.c | 424 + CMakeLua/Utilities/cmcurl/progress.h | 70 + CMakeLua/Utilities/cmcurl/security.c | 493 + CMakeLua/Utilities/cmcurl/select.c | 315 + CMakeLua/Utilities/cmcurl/select.h | 60 + CMakeLua/Utilities/cmcurl/sendf.c | 663 + CMakeLua/Utilities/cmcurl/sendf.h | 72 + CMakeLua/Utilities/cmcurl/setup.h | 382 + CMakeLua/Utilities/cmcurl/setup_once.h | 153 + CMakeLua/Utilities/cmcurl/share.c | 219 + CMakeLua/Utilities/cmcurl/share.h | 56 + CMakeLua/Utilities/cmcurl/sockaddr.h | 38 + CMakeLua/Utilities/cmcurl/socks.c | 585 + CMakeLua/Utilities/cmcurl/socks.h | 41 + CMakeLua/Utilities/cmcurl/speedcheck.c | 75 + CMakeLua/Utilities/cmcurl/speedcheck.h | 34 + CMakeLua/Utilities/cmcurl/splay.c | 425 + CMakeLua/Utilities/cmcurl/splay.h | 54 + CMakeLua/Utilities/cmcurl/ssh.c | 979 + CMakeLua/Utilities/cmcurl/ssh.h | 49 + CMakeLua/Utilities/cmcurl/sslgen.c | 618 + CMakeLua/Utilities/cmcurl/sslgen.h | 84 + CMakeLua/Utilities/cmcurl/ssluse.c | 1945 + CMakeLua/Utilities/cmcurl/ssluse.h | 71 + CMakeLua/Utilities/cmcurl/strdup.c | 46 + CMakeLua/Utilities/cmcurl/strdup.h | 34 + CMakeLua/Utilities/cmcurl/strequal.c | 143 + CMakeLua/Utilities/cmcurl/strequal.h | 43 + CMakeLua/Utilities/cmcurl/strerror.c | 748 + CMakeLua/Utilities/cmcurl/strerror.h | 34 + CMakeLua/Utilities/cmcurl/strtok.c | 68 + CMakeLua/Utilities/cmcurl/strtok.h | 38 + CMakeLua/Utilities/cmcurl/strtoofft.c | 165 + CMakeLua/Utilities/cmcurl/strtoofft.h | 73 + CMakeLua/Utilities/cmcurl/telnet.c | 1403 + CMakeLua/Utilities/cmcurl/telnet.h | 30 + CMakeLua/Utilities/cmcurl/tftp.c | 816 + CMakeLua/Utilities/cmcurl/tftp.h | 31 + CMakeLua/Utilities/cmcurl/timeval.c | 116 + CMakeLua/Utilities/cmcurl/timeval.h | 76 + CMakeLua/Utilities/cmcurl/transfer.c | 2494 + CMakeLua/Utilities/cmcurl/transfer.h | 51 + CMakeLua/Utilities/cmcurl/url.c | 4252 ++ CMakeLua/Utilities/cmcurl/url.h | 85 + CMakeLua/Utilities/cmcurl/urldata.h | 1340 + CMakeLua/Utilities/cmcurl/version.c | 249 + CMakeLua/Utilities/cmexpat/.NoDartCoverage | 1 + CMakeLua/Utilities/cmexpat/CMakeLists.txt | 34 + CMakeLua/Utilities/cmexpat/COPYING | 21 + CMakeLua/Utilities/cmexpat/CVS/Entries | 22 + CMakeLua/Utilities/cmexpat/CVS/Repository | 1 + CMakeLua/Utilities/cmexpat/CVS/Root | 1 + CMakeLua/Utilities/cmexpat/CVS/Tag | 1 + CMakeLua/Utilities/cmexpat/CVS/Template | 22 + CMakeLua/Utilities/cmexpat/ascii.h | 86 + CMakeLua/Utilities/cmexpat/asciitab.h | 37 + CMakeLua/Utilities/cmexpat/cm_expat_mangle.h | 87 + CMakeLua/Utilities/cmexpat/expat.h | 740 + CMakeLua/Utilities/cmexpat/expatConfig.h.in | 43 + CMakeLua/Utilities/cmexpat/expatDllConfig.h.in | 6 + CMakeLua/Utilities/cmexpat/iasciitab.h | 38 + CMakeLua/Utilities/cmexpat/latin1tab.h | 37 + CMakeLua/Utilities/cmexpat/nametab.h | 150 + CMakeLua/Utilities/cmexpat/utf8tab.h | 38 + CMakeLua/Utilities/cmexpat/xmlparse.c | 4622 ++ CMakeLua/Utilities/cmexpat/xmlrole.c | 1401 + CMakeLua/Utilities/cmexpat/xmlrole.h | 100 + CMakeLua/Utilities/cmexpat/xmltok.c | 1584 + CMakeLua/Utilities/cmexpat/xmltok.h | 299 + CMakeLua/Utilities/cmexpat/xmltok_impl.c | 1775 + CMakeLua/Utilities/cmexpat/xmltok_impl.h | 46 + CMakeLua/Utilities/cmexpat/xmltok_ns.c | 98 + CMakeLua/Utilities/cmtar/CMakeLists.txt | 389 + CMakeLua/Utilities/cmtar/COPYRIGHT | 35 + CMakeLua/Utilities/cmtar/CVS/Entries | 20 + CMakeLua/Utilities/cmtar/CVS/Repository | 1 + CMakeLua/Utilities/cmtar/CVS/Root | 1 + CMakeLua/Utilities/cmtar/CVS/Tag | 1 + CMakeLua/Utilities/cmtar/CVS/Template | 22 + CMakeLua/Utilities/cmtar/append.c | 295 + CMakeLua/Utilities/cmtar/block.c | 384 + CMakeLua/Utilities/cmtar/compat/CVS/Entries | 18 + CMakeLua/Utilities/cmtar/compat/CVS/Repository | 1 + CMakeLua/Utilities/cmtar/compat/CVS/Root | 1 + CMakeLua/Utilities/cmtar/compat/CVS/Tag | 1 + CMakeLua/Utilities/cmtar/compat/CVS/Template | 22 + CMakeLua/Utilities/cmtar/compat/README | 12 + CMakeLua/Utilities/cmtar/compat/basename.c | 76 + CMakeLua/Utilities/cmtar/compat/compat.h | 332 + CMakeLua/Utilities/cmtar/compat/dirname.c | 79 + CMakeLua/Utilities/cmtar/compat/fnmatch.c | 234 + CMakeLua/Utilities/cmtar/compat/gethostbyname_r.c | 41 + CMakeLua/Utilities/cmtar/compat/gethostname.c | 36 + CMakeLua/Utilities/cmtar/compat/getservbyname_r.c | 41 + CMakeLua/Utilities/cmtar/compat/glob.c | 874 + CMakeLua/Utilities/cmtar/compat/inet_aton.c | 27 + CMakeLua/Utilities/cmtar/compat/snprintf.c | 793 + CMakeLua/Utilities/cmtar/compat/strdup.c | 62 + CMakeLua/Utilities/cmtar/compat/strlcat.c | 72 + CMakeLua/Utilities/cmtar/compat/strlcpy.c | 67 + CMakeLua/Utilities/cmtar/compat/strmode.c | 185 + CMakeLua/Utilities/cmtar/compat/strrstr.c | 40 + CMakeLua/Utilities/cmtar/compat/strsep.c | 87 + CMakeLua/Utilities/cmtar/config.h.in | 213 + CMakeLua/Utilities/cmtar/decode.c | 138 + CMakeLua/Utilities/cmtar/encode.c | 231 + CMakeLua/Utilities/cmtar/extract.c | 895 + CMakeLua/Utilities/cmtar/filesystem.c | 87 + CMakeLua/Utilities/cmtar/filesystem.h | 30 + CMakeLua/Utilities/cmtar/handle.c | 163 + CMakeLua/Utilities/cmtar/internal.h | 35 + CMakeLua/Utilities/cmtar/libtar.c | 422 + CMakeLua/Utilities/cmtar/libtar.h | 290 + CMakeLua/Utilities/cmtar/listhash/CVS/Entries | 4 + CMakeLua/Utilities/cmtar/listhash/CVS/Repository | 1 + CMakeLua/Utilities/cmtar/listhash/CVS/Root | 1 + CMakeLua/Utilities/cmtar/listhash/CVS/Tag | 1 + CMakeLua/Utilities/cmtar/listhash/CVS/Template | 22 + CMakeLua/Utilities/cmtar/listhash/hash.c.in | 344 + CMakeLua/Utilities/cmtar/listhash/list.c.in | 461 + CMakeLua/Utilities/cmtar/listhash/listhash.h.in | 196 + CMakeLua/Utilities/cmtar/output.c | 151 + CMakeLua/Utilities/cmtar/tar.h | 71 + CMakeLua/Utilities/cmtar/util.c | 177 + CMakeLua/Utilities/cmtar/wrapper.c | 241 + CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Entries | 2 + CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Repository | 1 + CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Root | 1 + CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Tag | 1 + CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Template | 22 + .../cmxmlrpc/CMake/TryCompileFromSource.cmake | 46 + CMakeLua/Utilities/cmxmlrpc/CMakeLists.txt | 128 + CMakeLua/Utilities/cmxmlrpc/CVS/Entries | 45 + CMakeLua/Utilities/cmxmlrpc/CVS/Repository | 1 + CMakeLua/Utilities/cmxmlrpc/CVS/Root | 1 + CMakeLua/Utilities/cmxmlrpc/CVS/Tag | 1 + CMakeLua/Utilities/cmxmlrpc/CVS/Template | 22 + CMakeLua/Utilities/cmxmlrpc/XmlRpcCpp.cpp | 391 + CMakeLua/Utilities/cmxmlrpc/XmlRpcCpp.h | 428 + CMakeLua/Utilities/cmxmlrpc/bool.h | 18 + CMakeLua/Utilities/cmxmlrpc/casprintf.c | 35 + CMakeLua/Utilities/cmxmlrpc/casprintf.h | 19 + CMakeLua/Utilities/cmxmlrpc/inline.h | 19 + CMakeLua/Utilities/cmxmlrpc/linklist.h | 193 + CMakeLua/Utilities/cmxmlrpc/mallocvar.h | 80 + CMakeLua/Utilities/cmxmlrpc/synch_client.c | 68 + CMakeLua/Utilities/cmxmlrpc/transport_config.h | 5 + CMakeLua/Utilities/cmxmlrpc/win32_pthreads.c | 109 + CMakeLua/Utilities/cmxmlrpc/xmlrpc.h | 784 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_amconfig.h.in | 37 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_array.c | 206 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_authcookie.c | 71 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_base64.c | 262 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_cgi.c | 295 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_cgi.h | 81 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_client.c | 977 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_client.h | 261 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_client_int.h | 102 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_config.h.in | 88 + .../Utilities/cmxmlrpc/xmlrpc_curl_transport.c | 759 + .../Utilities/cmxmlrpc/xmlrpc_curl_transport.h | 8 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_data.c | 1334 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_expat.c | 390 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_int.h | 112 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_libxml2.c | 406 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_parse.c | 767 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_pthreads.h | 74 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_registry.c | 819 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_serialize.c | 620 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_server.h | 179 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_server_abyss.c | 799 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_server_abyss.h | 182 + .../Utilities/cmxmlrpc/xmlrpc_server_abyss_int.h | 79 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_struct.c | 608 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_strutil.c | 75 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_support.c | 367 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_transport.c | 142 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_transport.h | 129 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_utf8.c | 372 + CMakeLua/Utilities/cmxmlrpc/xmlrpc_xmlparser.h | 82 + CMakeLua/Utilities/cmzlib/.NoDartCoverage | 1 + CMakeLua/Utilities/cmzlib/CMakeLists.txt | 44 + CMakeLua/Utilities/cmzlib/CVS/Entries | 33 + CMakeLua/Utilities/cmzlib/CVS/Repository | 1 + CMakeLua/Utilities/cmzlib/CVS/Root | 1 + CMakeLua/Utilities/cmzlib/CVS/Tag | 1 + CMakeLua/Utilities/cmzlib/CVS/Template | 22 + CMakeLua/Utilities/cmzlib/ChangeLog | 855 + CMakeLua/Utilities/cmzlib/FAQ | 339 + CMakeLua/Utilities/cmzlib/INDEX | 51 + CMakeLua/Utilities/cmzlib/README | 125 + CMakeLua/Utilities/cmzlib/README.Kitware.txt | 40 + CMakeLua/Utilities/cmzlib/adler32.c | 149 + CMakeLua/Utilities/cmzlib/cm_zlib_mangle.h | 93 + CMakeLua/Utilities/cmzlib/compress.c | 79 + CMakeLua/Utilities/cmzlib/crc32.c | 423 + CMakeLua/Utilities/cmzlib/crc32.h | 441 + CMakeLua/Utilities/cmzlib/deflate.c | 1736 + CMakeLua/Utilities/cmzlib/deflate.h | 331 + CMakeLua/Utilities/cmzlib/gzio.c | 1026 + CMakeLua/Utilities/cmzlib/inffast.c | 318 + CMakeLua/Utilities/cmzlib/inffast.h | 11 + CMakeLua/Utilities/cmzlib/inffixed.h | 94 + CMakeLua/Utilities/cmzlib/inflate.c | 1368 + CMakeLua/Utilities/cmzlib/inflate.h | 115 + CMakeLua/Utilities/cmzlib/inftrees.c | 329 + CMakeLua/Utilities/cmzlib/inftrees.h | 55 + CMakeLua/Utilities/cmzlib/trees.c | 1219 + CMakeLua/Utilities/cmzlib/trees.h | 128 + CMakeLua/Utilities/cmzlib/uncompr.c | 61 + CMakeLua/Utilities/cmzlib/zconf.h | 351 + CMakeLua/Utilities/cmzlib/zlib.def | 47 + CMakeLua/Utilities/cmzlib/zlib.h | 1357 + CMakeLua/Utilities/cmzlib/zlib.rc | 32 + CMakeLua/Utilities/cmzlib/zlibDllConfig.h.in | 6 + CMakeLua/Utilities/cmzlib/zutil.c | 318 + CMakeLua/Utilities/cmzlib/zutil.h | 269 + CMakeLua/bootstrap | 1345 + CMakeLua/cmake.1 | 112 + CMakeLua/cmake_uninstall.cmake.in | 22 + CMakeLua/configure | 3 + CMakeLua/doxygen.config | 697 + README.txt | 2 + project.log | 9957 ++++ tailor.state | 69 + tailor.state.old | 358 + 5468 files changed, 426983 insertions(+) create mode 100644 CMakeLua.tailor create mode 100644 CMakeLua/.hg/00changelog.i create mode 100644 CMakeLua/.hg/branch create mode 100644 CMakeLua/.hg/branch.cache create mode 100644 CMakeLua/.hg/dirstate create mode 100644 CMakeLua/.hg/requires create mode 100644 CMakeLua/.hg/store/00changelog.i create mode 100644 CMakeLua/.hg/store/00manifest.d create mode 100644 CMakeLua/.hg/store/00manifest.i create mode 100644 CMakeLua/.hg/store/data/.hgignore.i create mode 100644 CMakeLua/.hg/store/data/_c_make_c_pack.cmake.i create mode 100644 CMakeLua/.hg/store/data/_c_make_c_pack_options.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_c_make_graph_viz_options.cmake.i create mode 100644 CMakeLua/.hg/store/data/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_c_make_logo.gif.i create mode 100644 CMakeLua/.hg/store/data/_c_test_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_c_test_custom.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_c_test_custom.ctest.in.i create mode 100644 CMakeLua/.hg/store/data/_change_log.txt.d create mode 100644 CMakeLua/.hg/store/data/_change_log.txt.i create mode 100644 CMakeLua/.hg/store/data/_compile_flags.cmake.i create mode 100644 CMakeLua/.hg/store/data/_copyright.txt.i create mode 100644 CMakeLua/.hg/store/data/_dart_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_dart_local.conf.in.i create mode 100644 CMakeLua/.hg/store/data/_docs/cmake-indent.vim.i create mode 100644 CMakeLua/.hg/store/data/_docs/cmake-mode.el.i create mode 100644 CMakeLua/.hg/store/data/_docs/cmake-syntax.vim.i create mode 100644 CMakeLua/.hg/store/data/_example/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_example/_demo/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_example/_demo/demo.cxx.i create mode 100644 CMakeLua/.hg/store/data/_example/_demo/demo__b.cxx.i create mode 100644 CMakeLua/.hg/store/data/_example/_hello/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_example/_hello/hello.cxx.i create mode 100644 CMakeLua/.hg/store/data/_example/_hello/hello.h.i create mode 100644 CMakeLua/.hg/store/data/_modules/_add_file_dependencies.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_a_s_m-_a_t_t_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_a_s_m_compiler.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_a_s_m_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_add_new_language.txt.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_backward_compatibility_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_backward_compatibility_c_x_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_borland_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_build_settings.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_compiler.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_compiler_a_b_i.c.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_compiler_id.c.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler_a_b_i.cpp.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler_id.cpp.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_common_language_include.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_compiler_a_b_i.h.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_configurable_file.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_dependent_option.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_a_s_m-_a_t_t_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_a_s_m_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_c_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_c_x_x_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_compiler_a_b_i.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_compiler_id.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_fortran_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_java_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_r_c_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_determine_system.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_export_build_settings.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_find_bin_utils.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_find_frameworks.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_find_w_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_find_x_code.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_force_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_fortran_compiler.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_fortran_compiler_id._f90.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_fortran_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_generic_system.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_import_build_settings.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_java_compiler.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_java_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_m_s_y_s_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_min_g_w_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_n_make_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_platform_id.h.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_print_system_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_r_c_compiler.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_r_c_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_system.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_system_specific_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_a_s_m-_a_t_t_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_a_s_m_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_c_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_c_x_x_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_for_free_v_c.cxx.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_fortran_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_g_n_u.c.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_java_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_n_make_c_l_version.c.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_test_r_c_compiler.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_unix_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_c_manifest.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_c_manifest_exe.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_s6_backward_compatibility.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_s6_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_s71_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_s7_backward_compatibility.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_s7_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_s8_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_make_v_s9_find_make.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_o_p_y_i_n_g-_c_m_a_k_e-_s_c_r_i_p_t_s.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._d_s___store.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._description.plist.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._info.plist.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_script_launcher.in.d create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_script_launcher.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_x11._info.plist.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._runtime_script.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._s_t_g_z___header.sh.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack._volume_icon.icns.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack.background.png.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack_deb.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack_r_p_m.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_pack_z_i_p.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_test.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_c_test_targets.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_c_compiler_flag.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_c_source_compiles.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_c_source_runs.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_c_x_x_compiler_flag.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_c_x_x_source_compiles.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_c_x_x_source_runs.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_for_pthreads.c.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_fortran_function_exists.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_function_exists.c.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_function_exists.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_include_file.c.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_include_file.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_include_file.cxx.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_include_file_c_x_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_include_files.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_library_exists.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_library_exists.lists.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_size_of.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_struct_has_member.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_symbol_exists.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_type_size.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_type_size_c.c.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_variable_exists.c.i create mode 100644 CMakeLua/.hg/store/data/_modules/_check_variable_exists.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_dart.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_dart_configuration.tcl.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_documentation.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_dummy_c_x_x_file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_modules/_f_l_t_k_compatibility.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_feature_summary.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_a_s_p_e_l_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_a_v_i_file.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_b_l_a_s.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_b_zip2.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_boost.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_c_a_b_l_e.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_c_u_r_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_cups.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_curses.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_cygwin.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_d_c_m_t_k.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_dart.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_doxygen.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_e_x_p_a_t.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_f_l_t_k.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_f_l_t_k2.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_free_type.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_g_c_c_x_m_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_g_d_a_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_g_i_f.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_g_i_f_l_i_b.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_g_l_u.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_g_l_u_t.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_g_t_k.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_gettext.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_gnuplot.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_h_s_p_e_l_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_h_t_m_l_help.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_i_t_k.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_image_magick.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_j_n_i.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_j_p_e_g.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_jasper.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_java.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_k_d_e.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_k_d_e3.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_k_d_e4.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_l_a_p_a_c_k.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_l_a_t_e_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_lib_xml2.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_lib_xslt.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_lua50.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_lua51.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_m_f_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_m_p_e_g.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_m_p_e_g2.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_m_p_i.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_matlab.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_motif.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_open_a_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_open_g_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_open_s_s_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_open_threads.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_p_h_p4.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_p_n_g.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_package_handle_standard_args.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_perl.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_perl_libs.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_phys_f_s.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_pike.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_pkg_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_producer.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_python_interp.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_python_libs.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_qt.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_qt3.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_qt4.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_quick_time.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_ruby.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_s_d_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_s_d_l__image.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_s_d_l__mixer.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_s_d_l__net.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_s_d_l__sound.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_s_d_l__ttf.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_s_w_i_g.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_self_packers.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_subversion.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_t_c_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_t_i_f_f.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_tcl_stub.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_tclsh.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_threads.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_unix_commands.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_v_t_k.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_wget.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_wish.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_x11.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_x_m_l_r_p_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_find_z_l_i_b.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_d_b.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_f_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_g_a.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_introspection.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_manipulator.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_particle.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_producer.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_shadow.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_sim.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_terrain.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_text.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_util.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findosg_viewer.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findwx_widgets.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_findwx_windows.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_i_t_k_compatibility.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_install_required_system_libraries.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_k_d_e3_macros.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_mac_o_s_x_bundle_info.plist.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_mac_o_s_x_framework_info.plist.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_macro_add_file_dependencies.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_n_s_i_s._install_options.ini.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_n_s_i_s.template.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_a_i_x-_visual_age-_fortran.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_a_i_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_b_s_d_o_s.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_be_o_s.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_blue_gene_l.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_c_y_g_w_i_n-g77.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_c_y_g_w_i_n.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_catamount.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_darwin-xlc.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_darwin.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_dragon_fly.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_free_b_s_d.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_g_n_u.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_generic-_a_d_s_p-_a_s_m.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_generic-_a_d_s_p-_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_generic-_a_d_s_p-_c_x_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_generic-_a_d_s_p-_common.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_generic-_s_d_c_c-_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_generic.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_h_p-_u_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_i_r_i_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_i_r_i_x64.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_g_n_u-_fortran.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_p_g_i-_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_p_g_i-_c_x_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_c_x_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_fortran.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_visual_age-_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-_visual_age-_fortran.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-como.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-icpc.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux-ifort.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_linux.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_m_p-_r_a_s.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_net_b_s_d.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_o_s_f1.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_open_b_s_d.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_q_n_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_r_i_s_cos.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_s_c_o___s_v.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_s_i_n_i_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_sun_o_s-_sun_pro-_fortran.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_sun_o_s.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_tru64.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_u_l_t_r_i_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_u_n_i_x___s_v.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_unix_paths.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_unix_ware.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-bcc32.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-cl.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-cl.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-df.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-g++.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-g77.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-gcc.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-icl.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-ifort.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows-wcl386.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_windows_paths.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/_xenix.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/cl.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/e_cos.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/g77.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/gas.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/gcc.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/k_free_b_s_d.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/syllable.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_platform/xlf.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_system_information.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_system_information.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_big_endian.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_c_x_x_accepts_flag.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_endianess.c.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_a_n_s_i_for_scope.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_a_n_s_i_stream_headers.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_a_n_s_i_stream_headers.cxx.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_ansi_for_scope.cxx.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_s_s_t_r_e_a_m.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_s_s_t_r_e_a_m.cxx.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_s_t_d_namespace.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_test_for_s_t_d_namespace.cxx.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use__wx_windows.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use_ecos.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use_pkg_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use_qt4.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use_s_w_i_g.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use_v_t_k40.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use_v_t_k_build_settings40.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_use_v_t_k_config40.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_usewx_widgets.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/_v_t_k_compatibility.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/ecos__clean.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/kde3init__dummy.cpp.in.i create mode 100644 CMakeLua/.hg/store/data/_modules/kde3uic.cmake.i create mode 100644 CMakeLua/.hg/store/data/_modules/readme.txt.i create mode 100644 CMakeLua/.hg/store/data/_readme.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/.cvsignore.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/_o_s_x_script_launcher.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/bills-comments.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_configure.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_binary_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_binary_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_source_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_source_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_deb_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_deb_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator_factory.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator_factory.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_log.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_log.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_n_s_i_s_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_n_s_i_s_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_o_s_x_x11_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_o_s_x_x11_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_package_maker_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_package_maker_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_r_p_m_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_r_p_m_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_s_t_g_z_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_s_t_g_z_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_t_g_z_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_t_g_z_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_b_zip2_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_b_zip2_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_compress_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_compress_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_z_i_p_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_z_i_p_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cpack.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_pack/cygwin.readme.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_and_test_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_and_test_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_empty_binary_directory_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_empty_binary_directory_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_generic_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_generic_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_handler_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_handler_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_read_custom_files_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_read_custom_files_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_run_script_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_run_script_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_script_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_script_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_sleep_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_sleep_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_start_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_start_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_handler.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_handler.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/._no_dart_coverage.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/ccmake.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_bool_widget.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_bool_widget.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_cache_entry_composite.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_cache_entry_composite.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_dummy_widget.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_dummy_widget.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_file_path_widget.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_file_path_widget.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_form.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_form.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_label_widget.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_label_widget.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_long_message_form.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_long_message_form.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_main_form.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_main_form.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_path_widget.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_path_widget.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_standard_includes.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_string_widget.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_string_widget.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_widget.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_widget.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/._no_dart_coverage.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/_r_e_a_d._m_e.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/cm_form_configure.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/eti.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__arg.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__attr.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__current.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__def.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__dup.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__ftchoice.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__ftlink.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__info.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__just.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__link.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__max.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__move.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__newftyp.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__opts.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__pad.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__page.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__stat.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__type.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__user.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/form.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/form.priv.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__cursor.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__data.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__def.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__driver.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__hook.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__opts.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__page.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__post.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__req__name.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__scale.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__sub.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__user.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__win.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__alnum.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__alpha.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__enum.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__int.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__ipv4.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__num.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__regex.c.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/llib-lform.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/mf__common.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_curses_dialog/form/nc__alloc.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_setup_g_u_i.fl.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_setup_g_u_i_implementation.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_setup_g_u_i_implementation.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_dialog.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_dialog.dsp.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_item_row.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_item_row.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_list.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_list.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/.cvsignore.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_command_line_info.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_command_line_info.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_gen_dialog.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_gen_dialog.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup.rc.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_dialog.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_dialog.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_manifest.xml.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_make_help.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_make_help.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_path_dialog.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_path_dialog.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_property_list.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_property_list.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_std_afx.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_std_afx.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/res/_c_make_setup_dialog.ico.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/res/_c_make_setup_dialog.rc2.i create mode 100644 CMakeLua/.hg/store/data/_source/_m_f_c_dialog/resource.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.ui.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.icns.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.ico.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.png.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.qrc.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.rc.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup_dialog.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup_dialog.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup_dialog.ui.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_delete16.png.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_plus16.png.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make_cache_view.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make_cache_view.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_qt_dialog/_r_e_a_d_m_e.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_icon.xpm.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup.pjd.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup.rc.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup_frame.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup_frame.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_command_line_info.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_command_line_info.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_n_g_dialog.exe.manifest.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_n_g_dialog.ico.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_property_list.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/_property_list.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/about.html.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/aboutdlg.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/aboutdlg.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/app__resources.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/app__resources.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_find_u_p_x.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_findwx_w.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_findwx_win.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_usewx_w.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/changelog.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__icon.gif.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__icon.xpm.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__logo.xpm.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/cmakesetup.done.xml.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/cmakesetup.xml.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/config.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/optionsdlg.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/optionsdlg.h.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/progressdlg.cpp.i create mode 100644 CMakeLua/.hg/store/data/_source/_w_x_dialog/progressdlg.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_custom_command_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_custom_command_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_custom_target_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_custom_target_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_definitions_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_definitions_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_dependencies_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_dependencies_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_executable_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_executable_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_library_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_library_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_sub_directory_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_sub_directory_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_test_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_add_test_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_aux_source_directory_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_aux_source_directory_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_bootstrap_commands.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_break_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_break_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_build_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_build_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_build_name_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_build_name_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_c_make_minimum_required.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_c_make_minimum_required.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_c_plugin_a_p_i.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_c_plugin_a_p_i.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_c_test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_c_test.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_cache_manager.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_cache_manager.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_call_visual_studio_macro.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_call_visual_studio_macro.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_lexer.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_lexer.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_lexer.in.l.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_parser.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_parser.y.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_parser_helper.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_parser_helper.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_argument_parser_tokens.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_arguments_helper.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_command_arguments_helper.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_commands.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_commands.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_compute_link_depends.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_compute_link_depends.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_compute_link_information.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_compute_link_information.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_configure.cmake.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_configure_file_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_configure_file_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_core_try_compile.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_core_try_compile.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_create_test_source_list.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_create_test_source_list.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_custom_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_custom_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_data.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_define_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_define_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_c.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_c.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.in.l.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser.y.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser_tokens.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.in.l.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_parser.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_parser.y.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_parser_helper.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_parser_helper.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_depends_java_parser_tokens.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_document_variables.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_document_variables.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_h_t_m_l.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_h_t_m_l.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_man.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_man.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_text.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_text.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_usage.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_formatter_usage.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_section.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_documentation_section.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_dump_documentation.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_dynamic_loader.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_dynamic_loader.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_else_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_else_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_else_if_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_else_if_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_enable_language_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_enable_language_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_enable_testing_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_enable_testing_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_for_each_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_for_each_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_function_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_function_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_if_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_if_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_macro_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_macro_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_while_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_end_while_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_exec_program_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_exec_program_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_execute_process_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_execute_process_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_execution_status.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_build_file_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_build_file_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_file_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_file_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_install_file_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_install_file_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_library_dependencies.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_export_library_dependencies.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_lexer.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_lexer.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_lexer.in.l.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_parser.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_parser.y.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_parser_helper.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_parser_helper.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_expr_parser_tokens.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_external_makefile_project_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_external_makefile_project_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_extra_code_blocks_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_extra_code_blocks_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_extra_eclipse_c_d_t4_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_extra_eclipse_c_d_t4_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_f_l_t_k_wrap_u_i_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_f_l_t_k_wrap_u_i_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_file_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_file_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_file_time_comparison.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_file_time_comparison.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_base.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_base.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_common.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_common.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_file_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_file_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_library_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_library_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_package_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_package_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_path_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_path_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_program_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_find_program_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_for_each_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_for_each_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_function_blocker.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_function_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_function_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_generated_file_stream.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_generated_file_stream.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_c_make_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_c_make_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_directory_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_directory_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_filename_component_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_filename_component_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_source_file_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_source_file_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_target_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_target_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_test_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_get_test_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_borland_makefile_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_borland_makefile_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_kdevelop_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_kdevelop_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_m_s_y_s_makefile_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_m_s_y_s_makefile_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_min_g_w_makefile_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_min_g_w_makefile_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_n_make_makefile_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_n_make_makefile_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_unix_makefile_generator3.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_unix_makefile_generator3.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio6_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio6_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio71_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio71_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio7_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio7_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio8_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio8_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio8_win64_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio8_win64_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_win64_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_win64_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_visual_studio_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_watcom_w_make_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_watcom_w_make_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_x_code21_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_x_code21_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_x_code_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_global_x_code_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_hex_file_converter.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_hex_file_converter.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_if_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_if_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_directory_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_directory_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_external_m_s_project_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_external_m_s_project_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_regular_expression_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_include_regular_expression_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_command_arguments.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_command_arguments.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_directory_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_directory_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_export_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_export_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_files_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_files_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_files_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_files_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_programs_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_programs_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_script_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_script_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_target_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_target_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_targets_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_install_targets_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_link_directories_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_link_directories_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_link_libraries_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_link_libraries_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_list_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_list_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_list_file_cache.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_list_file_cache.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_list_file_lexer.c.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_list_file_lexer.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_list_file_lexer.in.l.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_load_cache_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_load_cache_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_load_command_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_load_command_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_unix_makefile_generator3.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_unix_makefile_generator3.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_visual_studio6_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_visual_studio6_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_visual_studio7_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_visual_studio7_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_visual_studio_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_visual_studio_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_x_code_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_local_x_code_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_macro_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_macro_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_make_depend.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_make_depend.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_make_directory_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_make_directory_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_executable_target_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_executable_target_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_library_target_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_library_target_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_target_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_target_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_utility_target_generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_makefile_utility_target_generator.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_mark_as_advanced_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_mark_as_advanced_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_math_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_math_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_message_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_message_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_object.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_option_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_option_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_order_link_directories.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_order_link_directories.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_order_runtime_directories.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_order_runtime_directories.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_output_required_files_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_output_required_files_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_project_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_project_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property_definition.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property_definition.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property_definition_map.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property_definition_map.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property_map.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_property_map.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_q_t_wrap_c_p_p_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_q_t_wrap_c_p_p_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_q_t_wrap_u_i_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_q_t_wrap_u_i_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_raise_scope_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_raise_scope_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_remove_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_remove_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_remove_definitions_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_remove_definitions_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_return_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_return_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_separate_arguments_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_separate_arguments_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_directory_properties_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_directory_properties_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_properties_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_properties_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_property_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_property_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_source_files_properties_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_source_files_properties_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_target_properties_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_target_properties_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_tests_properties_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_set_tests_properties_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_site_name_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_site_name_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_file.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_file_location.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_file_location.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_group.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_group.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_group_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_source_group_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_standard_includes.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_standard_lexer.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_string_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_string_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_subdir_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_subdir_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_subdir_depends_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_subdir_depends_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_system_tools.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_system_tools.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_target.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_target.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_target_link_libraries_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_target_link_libraries_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_test.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_try_compile_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_try_compile_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_try_run_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_try_run_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_use_mangled_mesa_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_use_mangled_mesa_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_utility_source_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_utility_source_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_variable_requires_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_variable_requires_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_variable_watch.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_variable_watch.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_variable_watch_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_variable_watch_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_version.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_version.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_while_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_while_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_win32_process_execution.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_win32_process_execution.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_write_file_command.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_write_file_command.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_x_code21_object.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_x_code21_object.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_x_code_object.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_x_code_object.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_x_m_l_parser.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cm_x_m_l_parser.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cmake.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cmake.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cmakemain.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cmaketest.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/cmakewizard.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cmakewizard.h.i create mode 100644 CMakeLua/.hg/store/data/_source/cmakexbuild.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/cmw9xcom.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/ctest.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_base64.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_base64.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_c_make_empty_input_file.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_c_test_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_check_c_x_x_source_runs.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_command_line_arguments.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_command_line_arguments.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_configure.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_configure.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_copyright.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_date_stamp.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_directory.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_directory.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_dynamic_loader.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_dynamic_loader.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_encode_executable.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_extra_test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_fundamental_type.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_glob.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_glob.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_i_o_stream.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_i_o_stream.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_m_d5.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_m_d5.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_process.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_process_fwd9x.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_process_u_n_i_x.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_process_win32.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_r_e_a_d_m_e.txt.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_registry.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_registry.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_regular_expression.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_regular_expression.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_shared_forward.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_string.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_string.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_string.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_system.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_system.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_system_information.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_system_information.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_system_tools.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_system_tools.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_terminal.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/_terminal.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/auto__ptr.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/hash__fun.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/hash__map.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/hash__set.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/hashtable.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys__cstddef.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__fstream.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__iosfwd.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__iostream.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__sstream.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys__stl.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys__stl__string.hxx.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys_date_stamp.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys_date_stamp.py.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys_header_dump.pl.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys_platform_tests.cmake.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys_platform_tests_c.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys_platform_tests_c_x_x.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/kwsys_private.h.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_auto_ptr.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_command_line_arguments.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_command_line_arguments1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_dynamic_loader.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_dynload.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_encode.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_fail.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_hash_s_t_l.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_i_o_s.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_process.c.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_registry.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_system_information.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_system_tools.bin.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_system_tools.cxx.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_system_tools.h.in.i create mode 100644 CMakeLua/.hg/store/data/_source/kwsys/test_terminal.c.i create mode 100644 CMakeLua/.hg/store/data/_templates/_apple_info.plist.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_make_v_s_macros1.vsmacros.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_make_visual_studio6_configurations.cmake.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_pack._generic_description.txt.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_pack._generic_license.txt.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_pack._generic_welcome.txt.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_pack_config.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_templates/_c_test_script.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_templates/_d_l_l_footer.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/_d_l_l_header.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/_e_x_e_footer.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/_e_x_e_header.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/_e_x_e_win_header.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/_test_driver.cxx.in.i create mode 100644 CMakeLua/.hg/store/data/_templates/_utility_footer.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/_utility_header.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/cygwin-package.sh.in.i create mode 100644 CMakeLua/.hg/store/data/_templates/static_lib_footer.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_templates/static_lib_header.dsptemplate.i create mode 100644 CMakeLua/.hg/store/data/_tests/._no_dart_coverage.i create mode 100644 CMakeLua/.hg/store/data/_tests/_assembler/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_assembler/main-linux-x86-gas.s.i create mode 100644 CMakeLua/.hg/store/data/_tests/_assembler/main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_build_depends/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_build_depends/_project/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_build_depends/_project/bar.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_build_depends/_project/dep.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_build_depends/_project/dep__custom.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_build_depends/_project/generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_build_depends/_project/zot.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_bundle_test/_bundle_lib.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_bundle_test/_bundle_sub_dir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_bundle_test/_bundle_test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_bundle_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_bundle_test/_some_random_file.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_bundle_test/random_resource_file.plist.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/_dummy_toolchain.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/_find_base_test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/_include_test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/_list_test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/_toolchain_test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/_variable_watch_test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_make_tests/include/cmake__i__do__not__exist__in__the__system.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/conly.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/foo.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/libc1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/libc1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/libc2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_only/libc2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_test_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_test_test/test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_test_test2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_test_test2/test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_c_test_test3/test.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_command_line_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_command_line_test/_command_line_test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_command_line_test/_pre_load.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_cache/_c_make_cache.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.hh.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_included.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_sub1/_name_conflict_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_sub2/_name_conflict_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/_temp/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/cm_version.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/complex.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/complex.file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/complex__nobuild.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/not_in_all_exe.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/test_system_dir.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_executable/testcflags.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/_extra_sources/file1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/_extra_sources/file1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/_system_dir/test_system_dir.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/_test_link.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/create__file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/dummy.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/empty.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/file2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/file2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/module_file.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/module_file.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/not_in_all_lib.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/shared_file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/shared_file.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/test__preprocess.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/test_conly.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_library/test_conly.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/_var_tests.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/cm_test_configure.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/cm_test_configure_escape.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex/cm_test_generated_header.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_cache/_c_make_cache.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.hh.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_included.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_sub1/_name_conflict_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_sub2/_name_conflict_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_temp/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/cm_version.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex.file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex__nobuild.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/not_in_all_exe.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/test_system_dir.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/testcflags.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_extra_sources/file1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_extra_sources/file1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_system_dir/test_system_dir.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_test_link.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/create__file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/dummy.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/empty.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/file2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/file2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/module_file.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/module_file.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/not_in_all_lib.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/shared_file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/shared_file.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/test__preprocess.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/test_conly.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/test_conly.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/_var_tests.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/cm_test_configure.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/cm_test_configure_escape.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_one_config/cm_test_generated_header.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_cache/_c_make_cache.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.hh.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_included.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_sub1/_name_conflict_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_sub2/_name_conflict_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_temp/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/cm_version.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex.file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex__nobuild.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/not_in_all_exe.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/test_system_dir.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/testcflags.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_extra_sources/file1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_extra_sources/file1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_system_dir/test_system_dir.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_test_link.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/create__file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/dummy.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/empty.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/file2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/file2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/module_file.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/module_file.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/not_in_all_lib.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/shared_file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/shared_file.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/test__preprocess.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/test_conly.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/test_conly.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_var_tests.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/cm_test_configure.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/cm_test_configure_escape.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_complex_relative_paths/cm_test_generated_header.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_conv_library/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_conv_library/bar.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_conv_library/bartest.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_conv_library/foo.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_conv_library/sub1/car.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cust_com_depend/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cust_com_depend/bar.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cust_com_depend/foo.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/generated.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/main.cpp.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/_generator_in_extra_dir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/check__command__line.c.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/check__mark.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/doc1.tex.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/foo.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/foo.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/generator.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/main.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/wrapped.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command/wrapper.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command_working_directory/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command_working_directory/custom_target.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_custom_command_working_directory/working.c.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cxx_only/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cxx_only/cxxonly.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cxx_only/libcxx1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cxx_only/libcxx1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cxx_only/libcxx2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_cxx_only/libcxx2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/1/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/1/_one_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_eight/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_eight/_eight_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec/_exec_main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec2/_exec_main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec3/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec3/_exec_main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec4/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_exec4/_exec_main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_five/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_five/_five_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_four/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_four/_four_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_a/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_a/_no_dep_a_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_b/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_b/_no_dep_b_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_c/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_c/_no_dep_c_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_seven/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_seven/_seven_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_six/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_six/_six_a_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_six/_six_b_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_three/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_three/_three_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_two/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_two/_two_custom_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_two/_two_src.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_dependency/_two/two-test.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_doc_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_doc_test/_doc_test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe1lib.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2lib.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2lib_imp.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe3.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib3.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib3_imp.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib4.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_import/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_import/imp__mod1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/_import/imp__test_exe1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_export_import/main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_external_o_b_j/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_external_o_b_j/_object/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_external_o_b_j/_object/external__main.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_external_o_b_j/_object/external__object.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_external_o_b_j/executable.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_find_package_test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_find_version_test_a.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_find_version_test_b.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_find_version_test_c.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_t_app.app/_contents/_resources/_t_app_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_t_app.app/_contents/_resources/cmake/tapp-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_t_framework.framework/_versions/_a/_resources/_c_make/_t_framework_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/_t_framework.framework/_versions/_a/_resources/tframework-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/include/foo.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_bar/_bar_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_bar/cmake/bar-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_t_app/_t_app_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/foo-1.2/_c_make/_foo_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/foo-1.2/foo-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/suffix/test/_suffix_test_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/suffix/test/_suffix_test_config_version.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-1.0/zot-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-2.0/zot-config-version.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-2.0/zot-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-3.0/zot-config-version.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-3.0/zot-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-3.1/zot-config-version.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-3.1/zot-config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_executable/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_executable/main.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_external/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_external/a.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_library/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_library/a.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_library/b.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/_library/main.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/hello.f.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/in__interface/main.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/in__interface/module.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/test__module__implementation.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/test__module__interface.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/test__module__main.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/test__preprocess._f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/test__use__in__comment__fixedform.f.i create mode 100644 CMakeLua/.hg/store/data/_tests/_fortran/test__use__in__comment__freeform.f90.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/bar.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/foo.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/foo.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/foo2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/foo_both.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/foo_neither.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/foo_private.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/foo_public.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_framework/test.lua.i create mode 100644 CMakeLua/.hg/store/data/_tests/_function_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_function_test/_sub_dir_scope/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_function_test/_util.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_function_test/function_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_java/_a.java.i create mode 100644 CMakeLua/.hg/store/data/_tests/_java/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_java/_hello_world.java.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_executable/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_executable/jump_executable.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_library/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_library/_shared/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_library/_shared/jump_shared.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_library/_static/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_jump/_library/_static/jump_static.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_lib_name/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_lib_name/bar.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_lib_name/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_lib_name/foobar.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line/_exec.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line/_one.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line/_two.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_exec1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_exec2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_a.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_b.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_c.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_e.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_f.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_x.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_y.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_z.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_one.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_link_line_order/_two.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command/_c_make_commands/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command/_c_make_commands/cm_test_command.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command/_loaded_command.cxx.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command/_loaded_command.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command_one_config/_c_make_commands/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command_one_config/_c_make_commands/cm_test_command.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command_one_config/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command_one_config/_loaded_command.cxx.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_load_command_one_config/_loaded_command.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_macro_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_macro_test/macro_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_make_clean/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_make_clean/_to_clean/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_make_clean/_to_clean/_to_clean_files.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_make_clean/_to_clean/toclean.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_make_clean/check__clean.c.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_math_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_math_test/_math_test_exec.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_math_test/_math_test_tests.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_newline_args/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_newline_args/cxxonly.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_newline_args/libcxx1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_newline_args/libcxx1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_newline_args/libcxx2.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_obj_c++/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_obj_c++/objc++.mm.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_binary/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_binary/outlib.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/simple.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/simple.cxx.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/testlib.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/testlib.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/_sub_dir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/simple.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_out_of_source/testdp.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_plugin/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_plugin/include/example.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_plugin/src/example__exe.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_plugin/src/example__exe.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_plugin/src/example__mod__1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_pre_order/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_pre_order/_library/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_pre_order/_library/simple_lib.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_pre_order/simple.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_precompiled_header/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_precompiled_header/foo1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_precompiled_header/foo2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_precompiled_header/foo__precompile.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_precompiled_header/include/foo.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_precompiled_header/include/foo__precompiled.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_preprocess/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_preprocess/file__def.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_preprocess/preprocess.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_preprocess/preprocess.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_preprocess/preprocess.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_preprocess/preprocess__vs6.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_preprocess/target__def.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_properties/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_properties/_sub_dir/properties3.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_properties/properties.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_properties/properties2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_return_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_return_test/return_test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_return_test/subdir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_runtime_path/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_runtime_path/bar1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_runtime_path/bar2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_runtime_path/foo1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_runtime_path/foo2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_runtime_path/main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_same_name/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_same_name/_exe1/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_same_name/_exe1/conly.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_same_name/_lib1/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_same_name/_lib1/libc1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_same_name/_lib1/libc1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_set_lang/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_set_lang/bar.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_set_lang/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple/simple.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple/simple_c_lib.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple/simple_lib.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple/simple_we.cpp.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_c_only/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_c_only/bar.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_c_only/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_c_only/main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t2.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t3.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t4.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t5.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_b/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_b/t6.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_b/t7.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_d/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_d/t8.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_d/t9.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_exclude/run.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_install_script1.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_install_script2.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_install_script3.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_install_script4.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_package_script.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_post_install.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_pre_install.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_t_s_d.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_t_s_d.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_t_s_d__utils.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/foo.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/inst.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/inst2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib3.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib3.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib4.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/lib4.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/scripts/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/scripts/sample__script.bat.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install/scripts/sample__script.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script1.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script2.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script3.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script4.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_package_script.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_post_install.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_pre_install.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_t_s_d.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_t_s_d.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_t_s_d__utils.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/foo.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/inst.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/inst2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib3.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib3.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib4.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib4.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/scripts/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/scripts/sample__script.bat.i create mode 100644 CMakeLua/.hg/store/data/_tests/_simple_install_s2/scripts/sample__script.i create mode 100644 CMakeLua/.hg/store/data/_tests/_source_groups/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_source_groups/bar.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_source_groups/baz.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_source_groups/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_source_groups/main.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_source_groups/sub1/foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_source_groups/sub1/foobar.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_string_file_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_string_file_test/_input_file.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_string_file_test/_string_file.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_string_file_test/main.ihx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_string_file_test/main.srec.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/pair+int.int.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/pair__int.int.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/secondone.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/testfromsubdir.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/example1/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/example1/example1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/example2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/example2/example2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_executable/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_executable/test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/pair+int.int1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/pair__int.int1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/pair__p__int.int1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/testfromauxsubdir.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/thirdone.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/vcl__algorithm+vcl__pair+double.foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir/vcl__algorithm__vcl__pair__double.foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_another _subdir/pair+int.int.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_another _subdir/pair__int.int.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_another _subdir/secondone.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_another _subdir/testfromsubdir.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable _sources/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable _sources/test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable/test.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/example1/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/example1/example1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/example2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/example2/example2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some(x86) _sources/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some(x86) _sources/test.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/pair+int.int1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/pair__int.int1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/pair__p__int.int1.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/testfromauxsubdir.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/thirdone.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/vcl__algorithm+vcl__pair+double.foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/vcl__algorithm__vcl__pair__double.foo.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_project/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_project/bar.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_project/car.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_project/foo/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_sub_project/foo/foo.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/example.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/example.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/example.i.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/runme.php4.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/runme.pike.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/runme.pl.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/runme.py.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/runme.rb.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/runme.tcl.i create mode 100644 CMakeLua/.hg/store/data/_tests/_swig_test/runme2.tcl.i create mode 100644 CMakeLua/.hg/store/data/_tests/_system_information/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_system_information/_dump_information.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_system_information/_dump_information.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_system_information/_system_information.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tar_test/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tar_test/_test_tar_exec.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_target_name/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_target_name/executables/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_target_name/executables/hello__world.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_target_name/scripts/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_target_name/scripts/hello__world.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/subdir/test3.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/test1.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/test2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/test_args.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/test_extra_stuff.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/test_extra_stuff2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_driver/test_extra_stuff3.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_test_install.sh.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_testing/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_testing/_dart_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_testing/_sub/_sub2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_testing/_sub/_sub2/testing2.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_testing/testing.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_try_compile/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_try_compile/exit__success.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_try_compile/exit__with__error.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_try_compile/fail.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_try_compile/pass.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step1/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step1/_tutorial_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step1/tutorial.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_math_functions/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_math_functions/_math_functions.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_math_functions/mysqrt.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_tutorial_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step2/tutorial.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/_math_functions.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/mysqrt.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_tutorial_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step3/tutorial.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/_math_functions.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/mysqrt.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_tutorial_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step4/tutorial.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/_make_table.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/_math_functions.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/mysqrt.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_tutorial_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step5/tutorial.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_license.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_make_table.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_math_functions.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/mysqrt.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_tutorial_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step6/tutorial.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_c_test_config.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_license.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_make_table.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_math_functions.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/mysqrt.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_tutorial_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/build1.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/build2.cmake.i create mode 100644 CMakeLua/.hg/store/data/_tests/_tutorial/_step7/tutorial.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_use_w_x/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_use_w_x/_w_x.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib1/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib1/lib1.cpp.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib1/lib1.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/lib2.cpp.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/lib2.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_v_s_external_include/main.cpp.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/_wrap.c.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/dummy.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/fakefluid.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/fltk1.fl.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/foo.ui.in.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/hints.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/itk_wrapper_config.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/qtnoqtmain.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/qtwrapping.ui.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/qtwrappingmain.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/vtk_excluded.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/vtk_excluded.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/vtk_included.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/vtk_included.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/vtk_test_moc.h.i create mode 100644 CMakeLua/.hg/store/data/_tests/_wrapping/wrapping.cxx.i create mode 100644 CMakeLua/.hg/store/data/_tests/_x11/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_tests/_x11/_x11.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/._no_dart_coverage.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_doxygen/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_doxygen/authors.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_doxygen/doc__makeall.sh.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_doxygen/doxyfile.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make.kws.xml.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_files.txt.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_more_checks.kws.xml.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_overwrite.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_k_w_style/_headers/_c_make_header.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_c_make_install.bmp.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_c_make_logo.ico.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_cygwin/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_cygwin/_r_e_a_d_m_e.cygwin.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_cygwin/cygwin-package.sh.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_cygwin/cygwin-patch.diff.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_cygwin/cygwin-setup.hint.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/_r_e_a_d_m_e.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/create-cmake-release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/dashmacmini2__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/dashsgi1__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/dashsgi1__release64.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/dashsun1__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/destiny__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/hythloth__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/magrathea__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/muse__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/muse__release64.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/r15n65__aix__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/r36n11__aix__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/release__cmake.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/release__cmake.sh.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/upload__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/v60n177__aix__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/vogon__cygwin.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/_release/vogon__release.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cm__curl.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cm__expat.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cm__xmlrpc.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cm__zlib.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cm_third_party.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcompress/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcompress/cmcompress.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcompress/cmcompress.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcompress/compress.c.original.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_c_make_configurable_file.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_c_source_compiles.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_c_source_runs.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_type_size.c.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_type_size.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_curl_tests.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_other_tests.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_platforms/_windows_cache.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_platforms/config-aix.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/curlgtk.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/curltest.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/ftpget.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/ftpgetresp.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/ftpupload.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/getinmemory.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/http-post.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/httpput.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/multithread.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/persistant.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/postit2.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/sepheaders.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/simple.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/simplessl.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/testconfig.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/win32sockets.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/amigaos.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/amigaos.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/arpa__telnet.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/base64.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/base64.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ca-bundle.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/connect.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/connect.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/content__encoding.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/content__encoding.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/cookie.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/cookie.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl.copyright.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl/curl.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl/curlver.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl/easy.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl/mprintf.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl/multi.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl/stdcheaders.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curl/types.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/curlx.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/dict.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/dict.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/easy.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/easyif.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/escape.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/escape.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/file.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/file.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/formdata.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/formdata.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/getenv.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/getinfo.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/getinfo.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hash.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hash.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostares.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostasyn.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostip.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostip.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostip4.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostip6.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostsyn.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/hostthre.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__chunks.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__chunks.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__digest.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__digest.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__negotiate.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__negotiate.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__ntlm.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/http__ntlm.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/if2ip.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/if2ip.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/inet__ntoa__r.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/inet__ntop.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/inet__ntop.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/inet__pton.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/inet__pton.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/krb4.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/krb4.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ldap.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ldap.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/llist.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/llist.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/md5.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/md5.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/memdebug.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/memdebug.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/memory.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/mprintf.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/multi.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/multiif.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/netrc.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/netrc.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/nwlib.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/parsedate.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/parsedate.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/progress.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/progress.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/security.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/select.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/select.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/sendf.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/sendf.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/setup.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/setup__once.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/share.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/share.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/sockaddr.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/socks.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/socks.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/speedcheck.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/speedcheck.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/splay.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/splay.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ssh.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ssh.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/sslgen.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/sslgen.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ssluse.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/ssluse.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strdup.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strdup.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strequal.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strequal.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strerror.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strerror.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strtok.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strtok.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strtoofft.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/strtoofft.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/telnet.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/telnet.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/tftp.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/tftp.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/timeval.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/timeval.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/transfer.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/transfer.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/url.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/url.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/urldata.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmcurl/version.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/._no_dart_coverage.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/_c_o_p_y_i_n_g.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/ascii.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/asciitab.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/cm__expat__mangle.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/expat.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/expat_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/expat_dll_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/iasciitab.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/latin1tab.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/nametab.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/utf8tab.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmlparse.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmlrole.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmlrole.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok__impl.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok__impl.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok__ns.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/_c_o_p_y_r_i_g_h_t.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/append.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/block.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/_r_e_a_d_m_e.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/basename.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/compat.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/dirname.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/fnmatch.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/gethostbyname__r.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/gethostname.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/getservbyname__r.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/glob.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/inet__aton.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/snprintf.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/strdup.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/strlcat.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/strlcpy.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/strmode.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/strrstr.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/compat/strsep.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/decode.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/encode.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/extract.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/filesystem.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/filesystem.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/handle.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/internal.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/libtar.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/libtar.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/listhash/hash.c.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/listhash/list.c.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/listhash/listhash.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/output.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/tar.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/util.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmtar/wrapper.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_c_make/_try_compile_from_source.cmake.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_xml_rpc_cpp.cpp.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_xml_rpc_cpp.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/bool.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/casprintf.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/casprintf.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/inline.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/linklist.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/mallocvar.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/synch__client.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/transport__config.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/win32__pthreads.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__amconfig.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__array.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__authcookie.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__base64.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__cgi.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__cgi.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__client.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__client.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__client__int.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__curl__transport.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__curl__transport.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__data.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__expat.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__int.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__libxml2.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__parse.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__pthreads.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__registry.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__serialize.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server__abyss.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server__abyss.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server__abyss__int.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__struct.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__strutil.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__support.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__transport.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__transport.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__utf8.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__xmlparser.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/._no_dart_coverage.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/_c_make_lists.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/_change_log.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/_f_a_q.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/_i_n_d_e_x.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/_r_e_a_d_m_e._kitware.txt.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/_r_e_a_d_m_e.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/adler32.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/cm__zlib__mangle.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/compress.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/crc32.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/crc32.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/deflate.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/deflate.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/gzio.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/inffast.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/inffast.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/inffixed.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/inflate.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/inflate.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/inftrees.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/inftrees.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/trees.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/trees.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/uncompr.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/zconf.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.def.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.h.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.rc.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/zlib_dll_config.h.in.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/zutil.c.i create mode 100644 CMakeLua/.hg/store/data/_utilities/cmzlib/zutil.h.i create mode 100644 CMakeLua/.hg/store/data/bootstrap.i create mode 100644 CMakeLua/.hg/store/data/cmake.1.i create mode 100644 CMakeLua/.hg/store/data/cmake__uninstall.cmake.in.i create mode 100644 CMakeLua/.hg/store/data/configure.i create mode 100644 CMakeLua/.hg/store/data/doxygen.config.i create mode 100644 CMakeLua/.hg/store/undo create mode 100644 CMakeLua/.hg/undo.dirstate create mode 100644 CMakeLua/.hgignore create mode 100755 CMakeLua/CMakeCPack.cmake create mode 100755 CMakeLua/CMakeCPackOptions.cmake.in create mode 100644 CMakeLua/CMakeGraphVizOptions.cmake create mode 100644 CMakeLua/CMakeLists.txt create mode 100644 CMakeLua/CMakeLogo.gif create mode 100644 CMakeLua/CTestConfig.cmake create mode 100644 CMakeLua/CTestCustom.cmake.in create mode 100644 CMakeLua/CTestCustom.ctest.in create mode 100644 CMakeLua/CVS/Entries create mode 100644 CMakeLua/CVS/Repository create mode 100644 CMakeLua/CVS/Root create mode 100644 CMakeLua/CVS/Tag create mode 100644 CMakeLua/CVS/Template create mode 100644 CMakeLua/ChangeLog.txt create mode 100755 CMakeLua/CompileFlags.cmake create mode 100644 CMakeLua/Copyright.txt create mode 100644 CMakeLua/DartConfig.cmake create mode 100755 CMakeLua/DartLocal.conf.in create mode 100644 CMakeLua/Docs/CVS/Entries create mode 100644 CMakeLua/Docs/CVS/Repository create mode 100644 CMakeLua/Docs/CVS/Root create mode 100644 CMakeLua/Docs/CVS/Tag create mode 100644 CMakeLua/Docs/CVS/Template create mode 100644 CMakeLua/Docs/cmake-indent.vim create mode 100644 CMakeLua/Docs/cmake-mode.el create mode 100644 CMakeLua/Docs/cmake-syntax.vim create mode 100644 CMakeLua/Example/CMakeLists.txt create mode 100644 CMakeLua/Example/CVS/Entries create mode 100644 CMakeLua/Example/CVS/Repository create mode 100644 CMakeLua/Example/CVS/Root create mode 100644 CMakeLua/Example/CVS/Tag create mode 100644 CMakeLua/Example/CVS/Template create mode 100644 CMakeLua/Example/Demo/CMakeLists.txt create mode 100644 CMakeLua/Example/Demo/CVS/Entries create mode 100644 CMakeLua/Example/Demo/CVS/Repository create mode 100644 CMakeLua/Example/Demo/CVS/Root create mode 100644 CMakeLua/Example/Demo/CVS/Tag create mode 100644 CMakeLua/Example/Demo/CVS/Template create mode 100644 CMakeLua/Example/Demo/demo.cxx create mode 100644 CMakeLua/Example/Demo/demo_b.cxx create mode 100644 CMakeLua/Example/Hello/CMakeLists.txt create mode 100644 CMakeLua/Example/Hello/CVS/Entries create mode 100644 CMakeLua/Example/Hello/CVS/Repository create mode 100644 CMakeLua/Example/Hello/CVS/Root create mode 100644 CMakeLua/Example/Hello/CVS/Tag create mode 100644 CMakeLua/Example/Hello/CVS/Template create mode 100644 CMakeLua/Example/Hello/hello.cxx create mode 100644 CMakeLua/Example/Hello/hello.h create mode 100644 CMakeLua/Modules/AddFileDependencies.cmake create mode 100755 CMakeLua/Modules/CMake.cmake create mode 100644 CMakeLua/Modules/CMakeASM-ATTInformation.cmake create mode 100644 CMakeLua/Modules/CMakeASMCompiler.cmake.in create mode 100644 CMakeLua/Modules/CMakeASMInformation.cmake create mode 100755 CMakeLua/Modules/CMakeAddNewLanguage.txt create mode 100644 CMakeLua/Modules/CMakeBackwardCompatibilityC.cmake create mode 100644 CMakeLua/Modules/CMakeBackwardCompatibilityCXX.cmake create mode 100755 CMakeLua/Modules/CMakeBorlandFindMake.cmake create mode 100644 CMakeLua/Modules/CMakeBuildSettings.cmake.in create mode 100644 CMakeLua/Modules/CMakeCCompiler.cmake.in create mode 100644 CMakeLua/Modules/CMakeCCompilerABI.c create mode 100644 CMakeLua/Modules/CMakeCCompilerId.c create mode 100755 CMakeLua/Modules/CMakeCInformation.cmake create mode 100644 CMakeLua/Modules/CMakeCXXCompiler.cmake.in create mode 100644 CMakeLua/Modules/CMakeCXXCompilerABI.cpp create mode 100644 CMakeLua/Modules/CMakeCXXCompilerId.cpp create mode 100755 CMakeLua/Modules/CMakeCXXInformation.cmake create mode 100755 CMakeLua/Modules/CMakeCommonLanguageInclude.cmake create mode 100644 CMakeLua/Modules/CMakeCompilerABI.h create mode 100644 CMakeLua/Modules/CMakeConfigurableFile.in create mode 100644 CMakeLua/Modules/CMakeDependentOption.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineASM-ATTCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineASMCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineCCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineCXXCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineCompilerABI.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineCompilerId.cmake create mode 100755 CMakeLua/Modules/CMakeDetermineFortranCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineJavaCompiler.cmake create mode 100755 CMakeLua/Modules/CMakeDetermineRCCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeDetermineSystem.cmake create mode 100644 CMakeLua/Modules/CMakeExportBuildSettings.cmake create mode 100644 CMakeLua/Modules/CMakeFindBinUtils.cmake create mode 100644 CMakeLua/Modules/CMakeFindFrameworks.cmake create mode 100755 CMakeLua/Modules/CMakeFindWMake.cmake create mode 100755 CMakeLua/Modules/CMakeFindXCode.cmake create mode 100644 CMakeLua/Modules/CMakeForceCompiler.cmake create mode 100755 CMakeLua/Modules/CMakeFortranCompiler.cmake.in create mode 100644 CMakeLua/Modules/CMakeFortranCompilerId.F90 create mode 100755 CMakeLua/Modules/CMakeFortranInformation.cmake create mode 100755 CMakeLua/Modules/CMakeGenericSystem.cmake create mode 100644 CMakeLua/Modules/CMakeImportBuildSettings.cmake create mode 100644 CMakeLua/Modules/CMakeJavaCompiler.cmake.in create mode 100755 CMakeLua/Modules/CMakeJavaInformation.cmake create mode 100644 CMakeLua/Modules/CMakeLists.txt create mode 100755 CMakeLua/Modules/CMakeMSYSFindMake.cmake create mode 100755 CMakeLua/Modules/CMakeMinGWFindMake.cmake create mode 100755 CMakeLua/Modules/CMakeNMakeFindMake.cmake create mode 100644 CMakeLua/Modules/CMakePlatformId.h create mode 100644 CMakeLua/Modules/CMakePrintSystemInformation.cmake create mode 100755 CMakeLua/Modules/CMakeRCCompiler.cmake.in create mode 100755 CMakeLua/Modules/CMakeRCInformation.cmake create mode 100644 CMakeLua/Modules/CMakeSystem.cmake.in create mode 100644 CMakeLua/Modules/CMakeSystemSpecificInformation.cmake create mode 100644 CMakeLua/Modules/CMakeTestASM-ATTCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeTestASMCompiler.cmake create mode 100755 CMakeLua/Modules/CMakeTestCCompiler.cmake create mode 100755 CMakeLua/Modules/CMakeTestCXXCompiler.cmake create mode 100755 CMakeLua/Modules/CMakeTestForFreeVC.cxx create mode 100755 CMakeLua/Modules/CMakeTestFortranCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeTestGNU.c create mode 100755 CMakeLua/Modules/CMakeTestJavaCompiler.cmake create mode 100644 CMakeLua/Modules/CMakeTestNMakeCLVersion.c create mode 100755 CMakeLua/Modules/CMakeTestRCCompiler.cmake create mode 100755 CMakeLua/Modules/CMakeUnixFindMake.cmake create mode 100755 CMakeLua/Modules/CMakeVS6BackwardCompatibility.cmake create mode 100755 CMakeLua/Modules/CMakeVS6FindMake.cmake create mode 100644 CMakeLua/Modules/CMakeVS71FindMake.cmake create mode 100755 CMakeLua/Modules/CMakeVS7BackwardCompatibility.cmake create mode 100755 CMakeLua/Modules/CMakeVS7FindMake.cmake create mode 100755 CMakeLua/Modules/CMakeVS8FindMake.cmake create mode 100755 CMakeLua/Modules/CMakeVS9FindMake.cmake create mode 100644 CMakeLua/Modules/COPYING-CMAKE-SCRIPTS create mode 100755 CMakeLua/Modules/CPack.DS_Store.in create mode 100644 CMakeLua/Modules/CPack.Description.plist.in create mode 100644 CMakeLua/Modules/CPack.Info.plist.in create mode 100755 CMakeLua/Modules/CPack.OSXScriptLauncher.in create mode 100644 CMakeLua/Modules/CPack.OSXX11.Info.plist.in create mode 100755 CMakeLua/Modules/CPack.RuntimeScript.in create mode 100644 CMakeLua/Modules/CPack.STGZ_Header.sh.in create mode 100644 CMakeLua/Modules/CPack.VolumeIcon.icns.in create mode 100644 CMakeLua/Modules/CPack.background.png.in create mode 100644 CMakeLua/Modules/CPack.cmake create mode 100644 CMakeLua/Modules/CPackDeb.cmake create mode 100644 CMakeLua/Modules/CPackRPM.cmake create mode 100644 CMakeLua/Modules/CPackZIP.cmake create mode 100644 CMakeLua/Modules/CTest.cmake create mode 100644 CMakeLua/Modules/CTestTargets.cmake create mode 100644 CMakeLua/Modules/CVS/Entries create mode 100644 CMakeLua/Modules/CVS/Repository create mode 100644 CMakeLua/Modules/CVS/Root create mode 100644 CMakeLua/Modules/CVS/Tag create mode 100644 CMakeLua/Modules/CVS/Template create mode 100644 CMakeLua/Modules/CheckCCompilerFlag.cmake create mode 100755 CMakeLua/Modules/CheckCSourceCompiles.cmake create mode 100755 CMakeLua/Modules/CheckCSourceRuns.cmake create mode 100644 CMakeLua/Modules/CheckCXXCompilerFlag.cmake create mode 100755 CMakeLua/Modules/CheckCXXSourceCompiles.cmake create mode 100755 CMakeLua/Modules/CheckCXXSourceRuns.cmake create mode 100644 CMakeLua/Modules/CheckForPthreads.c create mode 100644 CMakeLua/Modules/CheckFortranFunctionExists.cmake create mode 100644 CMakeLua/Modules/CheckFunctionExists.c create mode 100644 CMakeLua/Modules/CheckFunctionExists.cmake create mode 100644 CMakeLua/Modules/CheckIncludeFile.c.in create mode 100644 CMakeLua/Modules/CheckIncludeFile.cmake create mode 100644 CMakeLua/Modules/CheckIncludeFile.cxx.in create mode 100644 CMakeLua/Modules/CheckIncludeFileCXX.cmake create mode 100644 CMakeLua/Modules/CheckIncludeFiles.cmake create mode 100644 CMakeLua/Modules/CheckLibraryExists.cmake create mode 100644 CMakeLua/Modules/CheckLibraryExists.lists.in create mode 100644 CMakeLua/Modules/CheckSizeOf.cmake create mode 100644 CMakeLua/Modules/CheckStructHasMember.cmake create mode 100755 CMakeLua/Modules/CheckSymbolExists.cmake create mode 100644 CMakeLua/Modules/CheckTypeSize.cmake create mode 100644 CMakeLua/Modules/CheckTypeSizeC.c.in create mode 100644 CMakeLua/Modules/CheckVariableExists.c create mode 100644 CMakeLua/Modules/CheckVariableExists.cmake create mode 100644 CMakeLua/Modules/Dart.cmake create mode 100644 CMakeLua/Modules/DartConfiguration.tcl.in create mode 100644 CMakeLua/Modules/Documentation.cmake create mode 100755 CMakeLua/Modules/DummyCXXFile.cxx create mode 100644 CMakeLua/Modules/FLTKCompatibility.cmake create mode 100644 CMakeLua/Modules/FeatureSummary.cmake create mode 100644 CMakeLua/Modules/FindASPELL.cmake create mode 100644 CMakeLua/Modules/FindAVIFile.cmake create mode 100644 CMakeLua/Modules/FindBLAS.cmake create mode 100644 CMakeLua/Modules/FindBZip2.cmake create mode 100644 CMakeLua/Modules/FindBoost.cmake create mode 100644 CMakeLua/Modules/FindCABLE.cmake create mode 100644 CMakeLua/Modules/FindCURL.cmake create mode 100644 CMakeLua/Modules/FindCups.cmake create mode 100644 CMakeLua/Modules/FindCurses.cmake create mode 100644 CMakeLua/Modules/FindCygwin.cmake create mode 100755 CMakeLua/Modules/FindDCMTK.cmake create mode 100644 CMakeLua/Modules/FindDart.cmake create mode 100644 CMakeLua/Modules/FindDoxygen.cmake create mode 100644 CMakeLua/Modules/FindEXPAT.cmake create mode 100644 CMakeLua/Modules/FindFLTK.cmake create mode 100755 CMakeLua/Modules/FindFLTK2.cmake create mode 100644 CMakeLua/Modules/FindFreetype.cmake create mode 100644 CMakeLua/Modules/FindGCCXML.cmake create mode 100644 CMakeLua/Modules/FindGDAL.cmake create mode 100644 CMakeLua/Modules/FindGIF.cmake create mode 100644 CMakeLua/Modules/FindGLU.cmake create mode 100644 CMakeLua/Modules/FindGLUT.cmake create mode 100644 CMakeLua/Modules/FindGTK.cmake create mode 100644 CMakeLua/Modules/FindGettext.cmake create mode 100644 CMakeLua/Modules/FindGnuplot.cmake create mode 100644 CMakeLua/Modules/FindHSPELL.cmake create mode 100644 CMakeLua/Modules/FindHTMLHelp.cmake create mode 100644 CMakeLua/Modules/FindITK.cmake create mode 100644 CMakeLua/Modules/FindImageMagick.cmake create mode 100644 CMakeLua/Modules/FindJNI.cmake create mode 100644 CMakeLua/Modules/FindJPEG.cmake create mode 100644 CMakeLua/Modules/FindJasper.cmake create mode 100644 CMakeLua/Modules/FindJava.cmake create mode 100755 CMakeLua/Modules/FindKDE.cmake create mode 100644 CMakeLua/Modules/FindKDE3.cmake create mode 100644 CMakeLua/Modules/FindKDE4.cmake create mode 100644 CMakeLua/Modules/FindLAPACK.cmake create mode 100644 CMakeLua/Modules/FindLATEX.cmake create mode 100644 CMakeLua/Modules/FindLibXml2.cmake create mode 100644 CMakeLua/Modules/FindLibXslt.cmake create mode 100644 CMakeLua/Modules/FindLua50.cmake create mode 100644 CMakeLua/Modules/FindLua51.cmake create mode 100644 CMakeLua/Modules/FindMFC.cmake create mode 100644 CMakeLua/Modules/FindMPEG.cmake create mode 100644 CMakeLua/Modules/FindMPEG2.cmake create mode 100644 CMakeLua/Modules/FindMPI.cmake create mode 100755 CMakeLua/Modules/FindMatlab.cmake create mode 100755 CMakeLua/Modules/FindMotif.cmake create mode 100755 CMakeLua/Modules/FindOpenAL.cmake create mode 100644 CMakeLua/Modules/FindOpenGL.cmake create mode 100644 CMakeLua/Modules/FindOpenSSL.cmake create mode 100644 CMakeLua/Modules/FindOpenThreads.cmake create mode 100644 CMakeLua/Modules/FindPHP4.cmake create mode 100644 CMakeLua/Modules/FindPNG.cmake create mode 100644 CMakeLua/Modules/FindPackageHandleStandardArgs.cmake create mode 100644 CMakeLua/Modules/FindPerl.cmake create mode 100644 CMakeLua/Modules/FindPerlLibs.cmake create mode 100755 CMakeLua/Modules/FindPhysFS.cmake create mode 100644 CMakeLua/Modules/FindPike.cmake create mode 100755 CMakeLua/Modules/FindPkgConfig.cmake create mode 100644 CMakeLua/Modules/FindProducer.cmake create mode 100644 CMakeLua/Modules/FindPythonInterp.cmake create mode 100644 CMakeLua/Modules/FindPythonLibs.cmake create mode 100644 CMakeLua/Modules/FindQt.cmake create mode 100755 CMakeLua/Modules/FindQt3.cmake create mode 100644 CMakeLua/Modules/FindQt4.cmake create mode 100644 CMakeLua/Modules/FindQuickTime.cmake create mode 100644 CMakeLua/Modules/FindRuby.cmake create mode 100644 CMakeLua/Modules/FindSDL.cmake create mode 100755 CMakeLua/Modules/FindSDL_image.cmake create mode 100755 CMakeLua/Modules/FindSDL_mixer.cmake create mode 100755 CMakeLua/Modules/FindSDL_net.cmake create mode 100755 CMakeLua/Modules/FindSDL_sound.cmake create mode 100755 CMakeLua/Modules/FindSDL_ttf.cmake create mode 100644 CMakeLua/Modules/FindSWIG.cmake create mode 100644 CMakeLua/Modules/FindSelfPackers.cmake create mode 100644 CMakeLua/Modules/FindSubversion.cmake create mode 100644 CMakeLua/Modules/FindTCL.cmake create mode 100644 CMakeLua/Modules/FindTIFF.cmake create mode 100644 CMakeLua/Modules/FindTclStub.cmake create mode 100644 CMakeLua/Modules/FindTclsh.cmake create mode 100644 CMakeLua/Modules/FindThreads.cmake create mode 100644 CMakeLua/Modules/FindUnixCommands.cmake create mode 100644 CMakeLua/Modules/FindVTK.cmake create mode 100644 CMakeLua/Modules/FindWget.cmake create mode 100644 CMakeLua/Modules/FindWish.cmake create mode 100644 CMakeLua/Modules/FindX11.cmake create mode 100644 CMakeLua/Modules/FindXMLRPC.cmake create mode 100644 CMakeLua/Modules/FindZLIB.cmake create mode 100644 CMakeLua/Modules/Findosg.cmake create mode 100644 CMakeLua/Modules/FindosgDB.cmake create mode 100644 CMakeLua/Modules/FindosgFX.cmake create mode 100644 CMakeLua/Modules/FindosgGA.cmake create mode 100644 CMakeLua/Modules/FindosgIntrospection.cmake create mode 100644 CMakeLua/Modules/FindosgManipulator.cmake create mode 100644 CMakeLua/Modules/FindosgParticle.cmake create mode 100644 CMakeLua/Modules/FindosgProducer.cmake create mode 100644 CMakeLua/Modules/FindosgShadow.cmake create mode 100644 CMakeLua/Modules/FindosgSim.cmake create mode 100644 CMakeLua/Modules/FindosgTerrain.cmake create mode 100644 CMakeLua/Modules/FindosgText.cmake create mode 100644 CMakeLua/Modules/FindosgUtil.cmake create mode 100644 CMakeLua/Modules/FindosgViewer.cmake create mode 100755 CMakeLua/Modules/FindwxWidgets.cmake create mode 100644 CMakeLua/Modules/FindwxWindows.cmake create mode 100755 CMakeLua/Modules/ITKCompatibility.cmake create mode 100644 CMakeLua/Modules/InstallRequiredSystemLibraries.cmake create mode 100644 CMakeLua/Modules/KDE3Macros.cmake create mode 100644 CMakeLua/Modules/MacOSXBundleInfo.plist.in create mode 100755 CMakeLua/Modules/MacOSXFrameworkInfo.plist.in create mode 100644 CMakeLua/Modules/MacroAddFileDependencies.cmake create mode 100755 CMakeLua/Modules/NSIS.InstallOptions.ini.in create mode 100755 CMakeLua/Modules/NSIS.template.in create mode 100755 CMakeLua/Modules/Platform/AIX-VisualAge-Fortran.cmake create mode 100644 CMakeLua/Modules/Platform/AIX.cmake create mode 100644 CMakeLua/Modules/Platform/BSDOS.cmake create mode 100644 CMakeLua/Modules/Platform/BeOS.cmake create mode 100644 CMakeLua/Modules/Platform/BlueGeneL.cmake create mode 100644 CMakeLua/Modules/Platform/CMakeLists.txt create mode 100644 CMakeLua/Modules/Platform/CVS/Entries create mode 100644 CMakeLua/Modules/Platform/CVS/Repository create mode 100644 CMakeLua/Modules/Platform/CVS/Root create mode 100644 CMakeLua/Modules/Platform/CVS/Tag create mode 100644 CMakeLua/Modules/Platform/CVS/Template create mode 100755 CMakeLua/Modules/Platform/CYGWIN-g77.cmake create mode 100644 CMakeLua/Modules/Platform/CYGWIN.cmake create mode 100644 CMakeLua/Modules/Platform/Catamount.cmake create mode 100644 CMakeLua/Modules/Platform/Darwin-xlc.cmake create mode 100644 CMakeLua/Modules/Platform/Darwin.cmake create mode 100644 CMakeLua/Modules/Platform/DragonFly.cmake create mode 100644 CMakeLua/Modules/Platform/FreeBSD.cmake create mode 100644 CMakeLua/Modules/Platform/GNU.cmake create mode 100644 CMakeLua/Modules/Platform/Generic-ADSP-ASM.cmake create mode 100644 CMakeLua/Modules/Platform/Generic-ADSP-C.cmake create mode 100644 CMakeLua/Modules/Platform/Generic-ADSP-CXX.cmake create mode 100644 CMakeLua/Modules/Platform/Generic-ADSP-Common.cmake create mode 100644 CMakeLua/Modules/Platform/Generic-SDCC-C.cmake create mode 100755 CMakeLua/Modules/Platform/Generic.cmake create mode 100644 CMakeLua/Modules/Platform/HP-UX.cmake create mode 100644 CMakeLua/Modules/Platform/IRIX.cmake create mode 100644 CMakeLua/Modules/Platform/IRIX64.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-GNU-Fortran.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-PGI-C.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-PGI-CXX.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-SunPro-C.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-SunPro-CXX.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-SunPro-Fortran.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-VisualAge-C.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-VisualAge-Fortran.cmake create mode 100644 CMakeLua/Modules/Platform/Linux-como.cmake create mode 100755 CMakeLua/Modules/Platform/Linux-icpc.cmake create mode 100755 CMakeLua/Modules/Platform/Linux-ifort.cmake create mode 100644 CMakeLua/Modules/Platform/Linux.cmake create mode 100644 CMakeLua/Modules/Platform/MP-RAS.cmake create mode 100644 CMakeLua/Modules/Platform/NetBSD.cmake create mode 100644 CMakeLua/Modules/Platform/OSF1.cmake create mode 100644 CMakeLua/Modules/Platform/OpenBSD.cmake create mode 100644 CMakeLua/Modules/Platform/QNX.cmake create mode 100644 CMakeLua/Modules/Platform/RISCos.cmake create mode 100644 CMakeLua/Modules/Platform/SCO_SV.cmake create mode 100644 CMakeLua/Modules/Platform/SINIX.cmake create mode 100644 CMakeLua/Modules/Platform/SunOS-SunPro-Fortran.cmake create mode 100644 CMakeLua/Modules/Platform/SunOS.cmake create mode 100644 CMakeLua/Modules/Platform/Tru64.cmake create mode 100644 CMakeLua/Modules/Platform/ULTRIX.cmake create mode 100644 CMakeLua/Modules/Platform/UNIX_SV.cmake create mode 100755 CMakeLua/Modules/Platform/UnixPaths.cmake create mode 100644 CMakeLua/Modules/Platform/UnixWare.cmake create mode 100644 CMakeLua/Modules/Platform/Windows-bcc32.cmake create mode 100644 CMakeLua/Modules/Platform/Windows-cl.cmake create mode 100755 CMakeLua/Modules/Platform/Windows-cl.cmake.in create mode 100755 CMakeLua/Modules/Platform/Windows-df.cmake create mode 100755 CMakeLua/Modules/Platform/Windows-g++.cmake create mode 100755 CMakeLua/Modules/Platform/Windows-g77.cmake create mode 100755 CMakeLua/Modules/Platform/Windows-gcc.cmake create mode 100755 CMakeLua/Modules/Platform/Windows-icl.cmake create mode 100755 CMakeLua/Modules/Platform/Windows-ifort.cmake create mode 100755 CMakeLua/Modules/Platform/Windows-wcl386.cmake create mode 100644 CMakeLua/Modules/Platform/Windows.cmake create mode 100755 CMakeLua/Modules/Platform/WindowsPaths.cmake create mode 100644 CMakeLua/Modules/Platform/Xenix.cmake create mode 100644 CMakeLua/Modules/Platform/cl.cmake create mode 100644 CMakeLua/Modules/Platform/eCos.cmake create mode 100755 CMakeLua/Modules/Platform/g77.cmake create mode 100644 CMakeLua/Modules/Platform/gas.cmake create mode 100644 CMakeLua/Modules/Platform/gcc.cmake create mode 100755 CMakeLua/Modules/Platform/kFreeBSD.cmake create mode 100644 CMakeLua/Modules/Platform/syllable.cmake create mode 100755 CMakeLua/Modules/Platform/xlf.cmake create mode 100755 CMakeLua/Modules/SystemInformation.cmake create mode 100755 CMakeLua/Modules/SystemInformation.in create mode 100644 CMakeLua/Modules/TestBigEndian.cmake create mode 100755 CMakeLua/Modules/TestCXXAcceptsFlag.cmake create mode 100644 CMakeLua/Modules/TestEndianess.c.in create mode 100644 CMakeLua/Modules/TestForANSIForScope.cmake create mode 100644 CMakeLua/Modules/TestForANSIStreamHeaders.cmake create mode 100644 CMakeLua/Modules/TestForANSIStreamHeaders.cxx create mode 100644 CMakeLua/Modules/TestForAnsiForScope.cxx create mode 100755 CMakeLua/Modules/TestForSSTREAM.cmake create mode 100755 CMakeLua/Modules/TestForSSTREAM.cxx create mode 100644 CMakeLua/Modules/TestForSTDNamespace.cmake create mode 100644 CMakeLua/Modules/TestForSTDNamespace.cxx create mode 100644 CMakeLua/Modules/UseEcos.cmake create mode 100644 CMakeLua/Modules/UsePkgConfig.cmake create mode 100755 CMakeLua/Modules/UseQt4.cmake create mode 100644 CMakeLua/Modules/UseSWIG.cmake create mode 100644 CMakeLua/Modules/UseVTK40.cmake create mode 100644 CMakeLua/Modules/UseVTKBuildSettings40.cmake create mode 100644 CMakeLua/Modules/UseVTKConfig40.cmake create mode 100644 CMakeLua/Modules/Use_wxWindows.cmake create mode 100755 CMakeLua/Modules/UsewxWidgets.cmake create mode 100644 CMakeLua/Modules/VTKCompatibility.cmake create mode 100644 CMakeLua/Modules/ecos_clean.cmake create mode 100644 CMakeLua/Modules/kde3init_dummy.cpp.in create mode 100644 CMakeLua/Modules/kde3uic.cmake create mode 100644 CMakeLua/Modules/readme.txt create mode 100644 CMakeLua/Readme.txt create mode 100644 CMakeLua/Source/.cvsignore create mode 100644 CMakeLua/Source/CMakeLists.txt create mode 100644 CMakeLua/Source/CPack/CVS/Entries create mode 100644 CMakeLua/Source/CPack/CVS/Repository create mode 100644 CMakeLua/Source/CPack/CVS/Root create mode 100644 CMakeLua/Source/CPack/CVS/Tag create mode 100644 CMakeLua/Source/CPack/CVS/Template create mode 100644 CMakeLua/Source/CPack/OSXScriptLauncher.cxx create mode 100755 CMakeLua/Source/CPack/bills-comments.txt create mode 100755 CMakeLua/Source/CPack/cmCPackConfigure.h.in create mode 100755 CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.cxx create mode 100755 CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.h create mode 100755 CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.cxx create mode 100755 CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.h create mode 100644 CMakeLua/Source/CPack/cmCPackDebGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackDebGenerator.h create mode 100755 CMakeLua/Source/CPack/cmCPackGenerator.cxx create mode 100755 CMakeLua/Source/CPack/cmCPackGenerator.h create mode 100755 CMakeLua/Source/CPack/cmCPackGeneratorFactory.cxx create mode 100755 CMakeLua/Source/CPack/cmCPackGeneratorFactory.h create mode 100644 CMakeLua/Source/CPack/cmCPackLog.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackLog.h create mode 100644 CMakeLua/Source/CPack/cmCPackNSISGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackNSISGenerator.h create mode 100644 CMakeLua/Source/CPack/cmCPackOSXX11Generator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackOSXX11Generator.h create mode 100644 CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.h create mode 100644 CMakeLua/Source/CPack/cmCPackRPMGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackRPMGenerator.h create mode 100644 CMakeLua/Source/CPack/cmCPackSTGZGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackSTGZGenerator.h create mode 100644 CMakeLua/Source/CPack/cmCPackTGZGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackTGZGenerator.h create mode 100644 CMakeLua/Source/CPack/cmCPackTarBZip2Generator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackTarBZip2Generator.h create mode 100644 CMakeLua/Source/CPack/cmCPackTarCompressGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackTarCompressGenerator.h create mode 100644 CMakeLua/Source/CPack/cmCPackZIPGenerator.cxx create mode 100644 CMakeLua/Source/CPack/cmCPackZIPGenerator.h create mode 100644 CMakeLua/Source/CPack/cpack.cxx create mode 100755 CMakeLua/Source/CPack/cygwin.readme create mode 100644 CMakeLua/Source/CTest/CVS/Entries create mode 100644 CMakeLua/Source/CTest/CVS/Repository create mode 100644 CMakeLua/Source/CTest/CVS/Root create mode 100644 CMakeLua/Source/CTest/CVS/Tag create mode 100644 CMakeLua/Source/CTest/CVS/Template create mode 100644 CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.h create mode 100755 CMakeLua/Source/CTest/cmCTestBuildCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestBuildCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestBuildHandler.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestBuildHandler.h create mode 100755 CMakeLua/Source/CTest/cmCTestCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestConfigureCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestConfigureCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestConfigureHandler.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestConfigureHandler.h create mode 100644 CMakeLua/Source/CTest/cmCTestCoverageCommand.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestCoverageCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestCoverageHandler.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestCoverageHandler.h create mode 100755 CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.h create mode 100644 CMakeLua/Source/CTest/cmCTestGenericHandler.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestGenericHandler.h create mode 100644 CMakeLua/Source/CTest/cmCTestHandlerCommand.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestHandlerCommand.h create mode 100644 CMakeLua/Source/CTest/cmCTestMemCheckCommand.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestMemCheckCommand.h create mode 100644 CMakeLua/Source/CTest/cmCTestMemCheckHandler.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestMemCheckHandler.h create mode 100755 CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestRunScriptCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestRunScriptCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestScriptHandler.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestScriptHandler.h create mode 100755 CMakeLua/Source/CTest/cmCTestSleepCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestSleepCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestStartCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestStartCommand.h create mode 100644 CMakeLua/Source/CTest/cmCTestSubmitCommand.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestSubmitCommand.h create mode 100644 CMakeLua/Source/CTest/cmCTestSubmitHandler.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestSubmitHandler.h create mode 100644 CMakeLua/Source/CTest/cmCTestTestCommand.cxx create mode 100644 CMakeLua/Source/CTest/cmCTestTestCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestTestHandler.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestTestHandler.h create mode 100755 CMakeLua/Source/CTest/cmCTestUpdateCommand.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestUpdateCommand.h create mode 100755 CMakeLua/Source/CTest/cmCTestUpdateHandler.cxx create mode 100755 CMakeLua/Source/CTest/cmCTestUpdateHandler.h create mode 100644 CMakeLua/Source/CVS/Entries create mode 100644 CMakeLua/Source/CVS/Repository create mode 100644 CMakeLua/Source/CVS/Root create mode 100644 CMakeLua/Source/CVS/Tag create mode 100644 CMakeLua/Source/CVS/Template create mode 100644 CMakeLua/Source/CursesDialog/.NoDartCoverage create mode 100644 CMakeLua/Source/CursesDialog/CMakeLists.txt create mode 100644 CMakeLua/Source/CursesDialog/CVS/Entries create mode 100644 CMakeLua/Source/CursesDialog/CVS/Repository create mode 100644 CMakeLua/Source/CursesDialog/CVS/Root create mode 100644 CMakeLua/Source/CursesDialog/CVS/Tag create mode 100644 CMakeLua/Source/CursesDialog/CVS/Template create mode 100644 CMakeLua/Source/CursesDialog/ccmake.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesBoolWidget.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesBoolWidget.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesDummyWidget.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesDummyWidget.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesForm.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesForm.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesLabelWidget.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesLabelWidget.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesMainForm.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesMainForm.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesPathWidget.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesPathWidget.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesStandardIncludes.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesStringWidget.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesStringWidget.h create mode 100644 CMakeLua/Source/CursesDialog/cmCursesWidget.cxx create mode 100644 CMakeLua/Source/CursesDialog/cmCursesWidget.h create mode 100644 CMakeLua/Source/CursesDialog/form/.NoDartCoverage create mode 100644 CMakeLua/Source/CursesDialog/form/CMakeLists.txt create mode 100644 CMakeLua/Source/CursesDialog/form/CVS/Entries create mode 100644 CMakeLua/Source/CursesDialog/form/CVS/Repository create mode 100644 CMakeLua/Source/CursesDialog/form/CVS/Root create mode 100644 CMakeLua/Source/CursesDialog/form/CVS/Tag create mode 100644 CMakeLua/Source/CursesDialog/form/CVS/Template create mode 100644 CMakeLua/Source/CursesDialog/form/READ.ME create mode 100644 CMakeLua/Source/CursesDialog/form/cmFormConfigure.h.in create mode 100644 CMakeLua/Source/CursesDialog/form/eti.h create mode 100644 CMakeLua/Source/CursesDialog/form/fld_arg.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_attr.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_current.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_def.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_dup.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_ftchoice.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_ftlink.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_info.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_just.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_link.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_max.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_move.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_newftyp.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_opts.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_pad.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_page.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_stat.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_type.c create mode 100644 CMakeLua/Source/CursesDialog/form/fld_user.c create mode 100644 CMakeLua/Source/CursesDialog/form/form.h create mode 100644 CMakeLua/Source/CursesDialog/form/form.priv.h create mode 100644 CMakeLua/Source/CursesDialog/form/frm_cursor.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_data.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_def.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_driver.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_hook.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_opts.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_page.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_post.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_req_name.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_scale.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_sub.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_user.c create mode 100644 CMakeLua/Source/CursesDialog/form/frm_win.c create mode 100644 CMakeLua/Source/CursesDialog/form/fty_alnum.c create mode 100644 CMakeLua/Source/CursesDialog/form/fty_alpha.c create mode 100644 CMakeLua/Source/CursesDialog/form/fty_enum.c create mode 100644 CMakeLua/Source/CursesDialog/form/fty_int.c create mode 100644 CMakeLua/Source/CursesDialog/form/fty_ipv4.c create mode 100644 CMakeLua/Source/CursesDialog/form/fty_num.c create mode 100644 CMakeLua/Source/CursesDialog/form/fty_regex.c create mode 100644 CMakeLua/Source/CursesDialog/form/llib-lform create mode 100644 CMakeLua/Source/CursesDialog/form/mf_common.h create mode 100644 CMakeLua/Source/CursesDialog/form/nc_alloc.h create mode 100644 CMakeLua/Source/FLTKDialog/CMakeLists.txt create mode 100644 CMakeLua/Source/FLTKDialog/CMakeSetupGUI.fl create mode 100644 CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx create mode 100644 CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.h create mode 100644 CMakeLua/Source/FLTKDialog/CVS/Entries create mode 100644 CMakeLua/Source/FLTKDialog/CVS/Repository create mode 100644 CMakeLua/Source/FLTKDialog/CVS/Root create mode 100644 CMakeLua/Source/FLTKDialog/CVS/Tag create mode 100644 CMakeLua/Source/FLTKDialog/CVS/Template create mode 100644 CMakeLua/Source/FLTKDialog/FLTKDialog.cxx create mode 100644 CMakeLua/Source/FLTKDialog/FLTKDialog.dsp create mode 100644 CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.cxx create mode 100644 CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.h create mode 100644 CMakeLua/Source/FLTKDialog/FLTKPropertyList.cxx create mode 100644 CMakeLua/Source/FLTKDialog/FLTKPropertyList.h create mode 100644 CMakeLua/Source/MFCDialog/.cvsignore create mode 100644 CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.cpp create mode 100644 CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.h create mode 100755 CMakeLua/Source/MFCDialog/CMakeGenDialog.cpp create mode 100755 CMakeLua/Source/MFCDialog/CMakeGenDialog.h create mode 100644 CMakeLua/Source/MFCDialog/CMakeLists.txt create mode 100644 CMakeLua/Source/MFCDialog/CMakeSetup.cpp create mode 100644 CMakeLua/Source/MFCDialog/CMakeSetup.h create mode 100644 CMakeLua/Source/MFCDialog/CMakeSetup.rc create mode 100644 CMakeLua/Source/MFCDialog/CMakeSetupDialog.cpp create mode 100644 CMakeLua/Source/MFCDialog/CMakeSetupDialog.h create mode 100644 CMakeLua/Source/MFCDialog/CMakeSetupManifest.xml create mode 100644 CMakeLua/Source/MFCDialog/CVS/Entries create mode 100644 CMakeLua/Source/MFCDialog/CVS/Repository create mode 100644 CMakeLua/Source/MFCDialog/CVS/Root create mode 100644 CMakeLua/Source/MFCDialog/CVS/Tag create mode 100644 CMakeLua/Source/MFCDialog/CVS/Template create mode 100644 CMakeLua/Source/MFCDialog/MakeHelp.cpp create mode 100644 CMakeLua/Source/MFCDialog/MakeHelp.h create mode 100644 CMakeLua/Source/MFCDialog/PathDialog.cpp create mode 100644 CMakeLua/Source/MFCDialog/PathDialog.h create mode 100644 CMakeLua/Source/MFCDialog/PropertyList.cpp create mode 100644 CMakeLua/Source/MFCDialog/PropertyList.h create mode 100644 CMakeLua/Source/MFCDialog/StdAfx.cpp create mode 100644 CMakeLua/Source/MFCDialog/StdAfx.h create mode 100644 CMakeLua/Source/MFCDialog/res/CMakeSetupDialog.ico create mode 100644 CMakeLua/Source/MFCDialog/res/CMakeSetupDialog.rc2 create mode 100644 CMakeLua/Source/MFCDialog/res/CVS/Entries create mode 100644 CMakeLua/Source/MFCDialog/res/CVS/Repository create mode 100644 CMakeLua/Source/MFCDialog/res/CVS/Root create mode 100644 CMakeLua/Source/MFCDialog/res/CVS/Tag create mode 100644 CMakeLua/Source/MFCDialog/res/CVS/Template create mode 100644 CMakeLua/Source/MFCDialog/resource.h create mode 100644 CMakeLua/Source/QtDialog/AddCacheEntry.cxx create mode 100644 CMakeLua/Source/QtDialog/AddCacheEntry.h create mode 100644 CMakeLua/Source/QtDialog/AddCacheEntry.ui create mode 100644 CMakeLua/Source/QtDialog/CMakeLists.txt create mode 100644 CMakeLua/Source/QtDialog/CMakeSetup.cxx create mode 100644 CMakeLua/Source/QtDialog/CMakeSetup.icns create mode 100644 CMakeLua/Source/QtDialog/CMakeSetup.ico create mode 100644 CMakeLua/Source/QtDialog/CMakeSetup.png create mode 100644 CMakeLua/Source/QtDialog/CMakeSetup.qrc create mode 100644 CMakeLua/Source/QtDialog/CMakeSetup.rc create mode 100644 CMakeLua/Source/QtDialog/CMakeSetupDialog.cxx create mode 100644 CMakeLua/Source/QtDialog/CMakeSetupDialog.h create mode 100644 CMakeLua/Source/QtDialog/CMakeSetupDialog.ui create mode 100644 CMakeLua/Source/QtDialog/CVS/Entries create mode 100644 CMakeLua/Source/QtDialog/CVS/Repository create mode 100644 CMakeLua/Source/QtDialog/CVS/Root create mode 100644 CMakeLua/Source/QtDialog/CVS/Tag create mode 100644 CMakeLua/Source/QtDialog/CVS/Template create mode 100644 CMakeLua/Source/QtDialog/Delete16.png create mode 100644 CMakeLua/Source/QtDialog/Plus16.png create mode 100644 CMakeLua/Source/QtDialog/QCMake.cxx create mode 100644 CMakeLua/Source/QtDialog/QCMake.h create mode 100644 CMakeLua/Source/QtDialog/QCMakeCacheView.cxx create mode 100644 CMakeLua/Source/QtDialog/QCMakeCacheView.h create mode 100755 CMakeLua/Source/QtDialog/README create mode 100644 CMakeLua/Source/WXDialog/CMakeIcon.xpm create mode 100644 CMakeLua/Source/WXDialog/CMakeLists.txt create mode 100644 CMakeLua/Source/WXDialog/CMakeSetup.cpp create mode 100644 CMakeLua/Source/WXDialog/CMakeSetup.h create mode 100644 CMakeLua/Source/WXDialog/CMakeSetup.pjd create mode 100644 CMakeLua/Source/WXDialog/CMakeSetup.rc create mode 100644 CMakeLua/Source/WXDialog/CMakeSetupFrame.cpp create mode 100644 CMakeLua/Source/WXDialog/CMakeSetupFrame.h create mode 100644 CMakeLua/Source/WXDialog/CVS/Entries create mode 100644 CMakeLua/Source/WXDialog/CVS/Repository create mode 100644 CMakeLua/Source/WXDialog/CVS/Root create mode 100644 CMakeLua/Source/WXDialog/CVS/Tag create mode 100644 CMakeLua/Source/WXDialog/CVS/Template create mode 100644 CMakeLua/Source/WXDialog/CommandLineInfo.cpp create mode 100644 CMakeLua/Source/WXDialog/CommandLineInfo.h create mode 100644 CMakeLua/Source/WXDialog/NGDialog.exe.manifest create mode 100644 CMakeLua/Source/WXDialog/NGDialog.ico create mode 100644 CMakeLua/Source/WXDialog/PropertyList.cpp create mode 100644 CMakeLua/Source/WXDialog/PropertyList.h create mode 100644 CMakeLua/Source/WXDialog/about.html create mode 100644 CMakeLua/Source/WXDialog/aboutdlg.cpp create mode 100644 CMakeLua/Source/WXDialog/aboutdlg.h create mode 100644 CMakeLua/Source/WXDialog/app_resources.cpp create mode 100644 CMakeLua/Source/WXDialog/app_resources.h create mode 100644 CMakeLua/Source/WXDialog/bin/CVS/Entries create mode 100644 CMakeLua/Source/WXDialog/bin/CVS/Repository create mode 100644 CMakeLua/Source/WXDialog/bin/CVS/Root create mode 100644 CMakeLua/Source/WXDialog/bin/CVS/Tag create mode 100644 CMakeLua/Source/WXDialog/bin/CVS/Template create mode 100644 CMakeLua/Source/WXDialog/bin/FindUPX.cmake create mode 100644 CMakeLua/Source/WXDialog/bin/FindwxW.cmake create mode 100644 CMakeLua/Source/WXDialog/bin/FindwxWin.cmake create mode 100644 CMakeLua/Source/WXDialog/bin/UsewxW.cmake create mode 100644 CMakeLua/Source/WXDialog/changelog.txt create mode 100644 CMakeLua/Source/WXDialog/cmake_icon.gif create mode 100644 CMakeLua/Source/WXDialog/cmake_icon.xpm create mode 100644 CMakeLua/Source/WXDialog/cmake_logo.xpm create mode 100644 CMakeLua/Source/WXDialog/cmakesetup.done.xml create mode 100644 CMakeLua/Source/WXDialog/cmakesetup.xml create mode 100644 CMakeLua/Source/WXDialog/config.h create mode 100644 CMakeLua/Source/WXDialog/optionsdlg.cpp create mode 100644 CMakeLua/Source/WXDialog/optionsdlg.h create mode 100644 CMakeLua/Source/WXDialog/progressdlg.cpp create mode 100644 CMakeLua/Source/WXDialog/progressdlg.h create mode 100644 CMakeLua/Source/cmAddCustomCommandCommand.cxx create mode 100644 CMakeLua/Source/cmAddCustomCommandCommand.h create mode 100644 CMakeLua/Source/cmAddCustomTargetCommand.cxx create mode 100644 CMakeLua/Source/cmAddCustomTargetCommand.h create mode 100644 CMakeLua/Source/cmAddDefinitionsCommand.cxx create mode 100644 CMakeLua/Source/cmAddDefinitionsCommand.h create mode 100644 CMakeLua/Source/cmAddDependenciesCommand.cxx create mode 100644 CMakeLua/Source/cmAddDependenciesCommand.h create mode 100644 CMakeLua/Source/cmAddExecutableCommand.cxx create mode 100644 CMakeLua/Source/cmAddExecutableCommand.h create mode 100644 CMakeLua/Source/cmAddLibraryCommand.cxx create mode 100644 CMakeLua/Source/cmAddLibraryCommand.h create mode 100644 CMakeLua/Source/cmAddSubDirectoryCommand.cxx create mode 100644 CMakeLua/Source/cmAddSubDirectoryCommand.h create mode 100644 CMakeLua/Source/cmAddTestCommand.cxx create mode 100644 CMakeLua/Source/cmAddTestCommand.h create mode 100644 CMakeLua/Source/cmAuxSourceDirectoryCommand.cxx create mode 100644 CMakeLua/Source/cmAuxSourceDirectoryCommand.h create mode 100644 CMakeLua/Source/cmBootstrapCommands.cxx create mode 100755 CMakeLua/Source/cmBreakCommand.cxx create mode 100755 CMakeLua/Source/cmBreakCommand.h create mode 100644 CMakeLua/Source/cmBuildCommand.cxx create mode 100644 CMakeLua/Source/cmBuildCommand.h create mode 100644 CMakeLua/Source/cmBuildNameCommand.cxx create mode 100644 CMakeLua/Source/cmBuildNameCommand.h create mode 100644 CMakeLua/Source/cmCMakeMinimumRequired.cxx create mode 100644 CMakeLua/Source/cmCMakeMinimumRequired.h create mode 100644 CMakeLua/Source/cmCPluginAPI.cxx create mode 100644 CMakeLua/Source/cmCPluginAPI.h create mode 100644 CMakeLua/Source/cmCTest.cxx create mode 100644 CMakeLua/Source/cmCTest.h create mode 100644 CMakeLua/Source/cmCacheManager.cxx create mode 100644 CMakeLua/Source/cmCacheManager.h create mode 100644 CMakeLua/Source/cmCallVisualStudioMacro.cxx create mode 100644 CMakeLua/Source/cmCallVisualStudioMacro.h create mode 100644 CMakeLua/Source/cmCommand.h create mode 100644 CMakeLua/Source/cmCommandArgumentLexer.cxx create mode 100644 CMakeLua/Source/cmCommandArgumentLexer.h create mode 100644 CMakeLua/Source/cmCommandArgumentLexer.in.l create mode 100644 CMakeLua/Source/cmCommandArgumentParser.cxx create mode 100644 CMakeLua/Source/cmCommandArgumentParser.y create mode 100644 CMakeLua/Source/cmCommandArgumentParserHelper.cxx create mode 100644 CMakeLua/Source/cmCommandArgumentParserHelper.h create mode 100644 CMakeLua/Source/cmCommandArgumentParserTokens.h create mode 100644 CMakeLua/Source/cmCommandArgumentsHelper.cxx create mode 100644 CMakeLua/Source/cmCommandArgumentsHelper.h create mode 100644 CMakeLua/Source/cmCommands.cxx create mode 100644 CMakeLua/Source/cmCommands.h create mode 100644 CMakeLua/Source/cmComputeLinkDepends.cxx create mode 100644 CMakeLua/Source/cmComputeLinkDepends.h create mode 100644 CMakeLua/Source/cmComputeLinkInformation.cxx create mode 100644 CMakeLua/Source/cmComputeLinkInformation.h create mode 100644 CMakeLua/Source/cmConfigure.cmake.h.in create mode 100644 CMakeLua/Source/cmConfigureFileCommand.cxx create mode 100644 CMakeLua/Source/cmConfigureFileCommand.h create mode 100644 CMakeLua/Source/cmCoreTryCompile.cxx create mode 100644 CMakeLua/Source/cmCoreTryCompile.h create mode 100644 CMakeLua/Source/cmCreateTestSourceList.cxx create mode 100644 CMakeLua/Source/cmCreateTestSourceList.h create mode 100644 CMakeLua/Source/cmCustomCommand.cxx create mode 100644 CMakeLua/Source/cmCustomCommand.h create mode 100644 CMakeLua/Source/cmData.h create mode 100755 CMakeLua/Source/cmDefinePropertyCommand.cxx create mode 100755 CMakeLua/Source/cmDefinePropertyCommand.h create mode 100644 CMakeLua/Source/cmDepends.cxx create mode 100644 CMakeLua/Source/cmDepends.h create mode 100644 CMakeLua/Source/cmDependsC.cxx create mode 100644 CMakeLua/Source/cmDependsC.h create mode 100644 CMakeLua/Source/cmDependsFortran.cxx create mode 100644 CMakeLua/Source/cmDependsFortran.h create mode 100644 CMakeLua/Source/cmDependsFortranLexer.cxx create mode 100644 CMakeLua/Source/cmDependsFortranLexer.h create mode 100644 CMakeLua/Source/cmDependsFortranLexer.in.l create mode 100644 CMakeLua/Source/cmDependsFortranParser.cxx create mode 100644 CMakeLua/Source/cmDependsFortranParser.h create mode 100644 CMakeLua/Source/cmDependsFortranParser.y create mode 100644 CMakeLua/Source/cmDependsFortranParserTokens.h create mode 100644 CMakeLua/Source/cmDependsJava.cxx create mode 100644 CMakeLua/Source/cmDependsJava.h create mode 100644 CMakeLua/Source/cmDependsJavaLexer.cxx create mode 100644 CMakeLua/Source/cmDependsJavaLexer.h create mode 100644 CMakeLua/Source/cmDependsJavaLexer.in.l create mode 100644 CMakeLua/Source/cmDependsJavaParser.cxx create mode 100644 CMakeLua/Source/cmDependsJavaParser.y create mode 100644 CMakeLua/Source/cmDependsJavaParserHelper.cxx create mode 100644 CMakeLua/Source/cmDependsJavaParserHelper.h create mode 100644 CMakeLua/Source/cmDependsJavaParserTokens.h create mode 100755 CMakeLua/Source/cmDocumentVariables.cxx create mode 100755 CMakeLua/Source/cmDocumentVariables.h create mode 100644 CMakeLua/Source/cmDocumentation.cxx create mode 100644 CMakeLua/Source/cmDocumentation.h create mode 100644 CMakeLua/Source/cmDocumentationFormatter.cxx create mode 100644 CMakeLua/Source/cmDocumentationFormatter.h create mode 100644 CMakeLua/Source/cmDocumentationFormatterHTML.cxx create mode 100644 CMakeLua/Source/cmDocumentationFormatterHTML.h create mode 100644 CMakeLua/Source/cmDocumentationFormatterMan.cxx create mode 100644 CMakeLua/Source/cmDocumentationFormatterMan.h create mode 100644 CMakeLua/Source/cmDocumentationFormatterText.cxx create mode 100644 CMakeLua/Source/cmDocumentationFormatterText.h create mode 100644 CMakeLua/Source/cmDocumentationFormatterUsage.cxx create mode 100644 CMakeLua/Source/cmDocumentationFormatterUsage.h create mode 100755 CMakeLua/Source/cmDocumentationSection.cxx create mode 100755 CMakeLua/Source/cmDocumentationSection.h create mode 100644 CMakeLua/Source/cmDumpDocumentation.cxx create mode 100644 CMakeLua/Source/cmDynamicLoader.cxx create mode 100644 CMakeLua/Source/cmDynamicLoader.h create mode 100644 CMakeLua/Source/cmElseCommand.cxx create mode 100644 CMakeLua/Source/cmElseCommand.h create mode 100755 CMakeLua/Source/cmElseIfCommand.cxx create mode 100755 CMakeLua/Source/cmElseIfCommand.h create mode 100644 CMakeLua/Source/cmEnableLanguageCommand.cxx create mode 100644 CMakeLua/Source/cmEnableLanguageCommand.h create mode 100644 CMakeLua/Source/cmEnableTestingCommand.cxx create mode 100644 CMakeLua/Source/cmEnableTestingCommand.h create mode 100644 CMakeLua/Source/cmEndForEachCommand.cxx create mode 100644 CMakeLua/Source/cmEndForEachCommand.h create mode 100755 CMakeLua/Source/cmEndFunctionCommand.cxx create mode 100755 CMakeLua/Source/cmEndFunctionCommand.h create mode 100644 CMakeLua/Source/cmEndIfCommand.cxx create mode 100644 CMakeLua/Source/cmEndIfCommand.h create mode 100755 CMakeLua/Source/cmEndMacroCommand.cxx create mode 100755 CMakeLua/Source/cmEndMacroCommand.h create mode 100644 CMakeLua/Source/cmEndWhileCommand.cxx create mode 100644 CMakeLua/Source/cmEndWhileCommand.h create mode 100644 CMakeLua/Source/cmExecProgramCommand.cxx create mode 100644 CMakeLua/Source/cmExecProgramCommand.h create mode 100644 CMakeLua/Source/cmExecuteProcessCommand.cxx create mode 100644 CMakeLua/Source/cmExecuteProcessCommand.h create mode 100755 CMakeLua/Source/cmExecutionStatus.h create mode 100644 CMakeLua/Source/cmExportBuildFileGenerator.cxx create mode 100644 CMakeLua/Source/cmExportBuildFileGenerator.h create mode 100644 CMakeLua/Source/cmExportCommand.cxx create mode 100644 CMakeLua/Source/cmExportCommand.h create mode 100644 CMakeLua/Source/cmExportFileGenerator.cxx create mode 100644 CMakeLua/Source/cmExportFileGenerator.h create mode 100644 CMakeLua/Source/cmExportInstallFileGenerator.cxx create mode 100644 CMakeLua/Source/cmExportInstallFileGenerator.h create mode 100644 CMakeLua/Source/cmExportLibraryDependencies.cxx create mode 100644 CMakeLua/Source/cmExportLibraryDependencies.h create mode 100644 CMakeLua/Source/cmExprLexer.cxx create mode 100644 CMakeLua/Source/cmExprLexer.h create mode 100644 CMakeLua/Source/cmExprLexer.in.l create mode 100644 CMakeLua/Source/cmExprParser.cxx create mode 100644 CMakeLua/Source/cmExprParser.y create mode 100644 CMakeLua/Source/cmExprParserHelper.cxx create mode 100644 CMakeLua/Source/cmExprParserHelper.h create mode 100644 CMakeLua/Source/cmExprParserTokens.h create mode 100644 CMakeLua/Source/cmExternalMakefileProjectGenerator.cxx create mode 100644 CMakeLua/Source/cmExternalMakefileProjectGenerator.h create mode 100644 CMakeLua/Source/cmExtraCodeBlocksGenerator.cxx create mode 100644 CMakeLua/Source/cmExtraCodeBlocksGenerator.h create mode 100644 CMakeLua/Source/cmExtraEclipseCDT4Generator.cxx create mode 100644 CMakeLua/Source/cmExtraEclipseCDT4Generator.h create mode 100644 CMakeLua/Source/cmFLTKWrapUICommand.cxx create mode 100644 CMakeLua/Source/cmFLTKWrapUICommand.h create mode 100644 CMakeLua/Source/cmFileCommand.cxx create mode 100644 CMakeLua/Source/cmFileCommand.h create mode 100644 CMakeLua/Source/cmFileTimeComparison.cxx create mode 100644 CMakeLua/Source/cmFileTimeComparison.h create mode 100755 CMakeLua/Source/cmFindBase.cxx create mode 100755 CMakeLua/Source/cmFindBase.h create mode 100644 CMakeLua/Source/cmFindCommon.cxx create mode 100644 CMakeLua/Source/cmFindCommon.h create mode 100644 CMakeLua/Source/cmFindFileCommand.cxx create mode 100644 CMakeLua/Source/cmFindFileCommand.h create mode 100644 CMakeLua/Source/cmFindLibraryCommand.cxx create mode 100644 CMakeLua/Source/cmFindLibraryCommand.h create mode 100644 CMakeLua/Source/cmFindPackageCommand.cxx create mode 100644 CMakeLua/Source/cmFindPackageCommand.h create mode 100644 CMakeLua/Source/cmFindPathCommand.cxx create mode 100644 CMakeLua/Source/cmFindPathCommand.h create mode 100644 CMakeLua/Source/cmFindProgramCommand.cxx create mode 100644 CMakeLua/Source/cmFindProgramCommand.h create mode 100644 CMakeLua/Source/cmForEachCommand.cxx create mode 100644 CMakeLua/Source/cmForEachCommand.h create mode 100644 CMakeLua/Source/cmFunctionBlocker.h create mode 100755 CMakeLua/Source/cmFunctionCommand.cxx create mode 100755 CMakeLua/Source/cmFunctionCommand.h create mode 100644 CMakeLua/Source/cmGeneratedFileStream.cxx create mode 100644 CMakeLua/Source/cmGeneratedFileStream.h create mode 100644 CMakeLua/Source/cmGetCMakePropertyCommand.cxx create mode 100644 CMakeLua/Source/cmGetCMakePropertyCommand.h create mode 100644 CMakeLua/Source/cmGetDirectoryPropertyCommand.cxx create mode 100644 CMakeLua/Source/cmGetDirectoryPropertyCommand.h create mode 100644 CMakeLua/Source/cmGetFilenameComponentCommand.cxx create mode 100644 CMakeLua/Source/cmGetFilenameComponentCommand.h create mode 100755 CMakeLua/Source/cmGetPropertyCommand.cxx create mode 100755 CMakeLua/Source/cmGetPropertyCommand.h create mode 100644 CMakeLua/Source/cmGetSourceFilePropertyCommand.cxx create mode 100644 CMakeLua/Source/cmGetSourceFilePropertyCommand.h create mode 100644 CMakeLua/Source/cmGetTargetPropertyCommand.cxx create mode 100644 CMakeLua/Source/cmGetTargetPropertyCommand.h create mode 100644 CMakeLua/Source/cmGetTestPropertyCommand.cxx create mode 100644 CMakeLua/Source/cmGetTestPropertyCommand.h create mode 100644 CMakeLua/Source/cmGlobalBorlandMakefileGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalBorlandMakefileGenerator.h create mode 100644 CMakeLua/Source/cmGlobalGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalGenerator.h create mode 100644 CMakeLua/Source/cmGlobalKdevelopGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalKdevelopGenerator.h create mode 100644 CMakeLua/Source/cmGlobalMSYSMakefileGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalMSYSMakefileGenerator.h create mode 100644 CMakeLua/Source/cmGlobalMinGWMakefileGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalMinGWMakefileGenerator.h create mode 100644 CMakeLua/Source/cmGlobalNMakeMakefileGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalNMakeMakefileGenerator.h create mode 100644 CMakeLua/Source/cmGlobalUnixMakefileGenerator3.cxx create mode 100644 CMakeLua/Source/cmGlobalUnixMakefileGenerator3.h create mode 100644 CMakeLua/Source/cmGlobalVisualStudio6Generator.cxx create mode 100644 CMakeLua/Source/cmGlobalVisualStudio6Generator.h create mode 100644 CMakeLua/Source/cmGlobalVisualStudio71Generator.cxx create mode 100644 CMakeLua/Source/cmGlobalVisualStudio71Generator.h create mode 100644 CMakeLua/Source/cmGlobalVisualStudio7Generator.cxx create mode 100644 CMakeLua/Source/cmGlobalVisualStudio7Generator.h create mode 100644 CMakeLua/Source/cmGlobalVisualStudio8Generator.cxx create mode 100644 CMakeLua/Source/cmGlobalVisualStudio8Generator.h create mode 100644 CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.cxx create mode 100644 CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.h create mode 100755 CMakeLua/Source/cmGlobalVisualStudio9Generator.cxx create mode 100755 CMakeLua/Source/cmGlobalVisualStudio9Generator.h create mode 100755 CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.cxx create mode 100755 CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.h create mode 100755 CMakeLua/Source/cmGlobalVisualStudioGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalVisualStudioGenerator.h create mode 100644 CMakeLua/Source/cmGlobalWatcomWMakeGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalWatcomWMakeGenerator.h create mode 100644 CMakeLua/Source/cmGlobalXCode21Generator.cxx create mode 100644 CMakeLua/Source/cmGlobalXCode21Generator.h create mode 100644 CMakeLua/Source/cmGlobalXCodeGenerator.cxx create mode 100644 CMakeLua/Source/cmGlobalXCodeGenerator.h create mode 100644 CMakeLua/Source/cmHexFileConverter.cxx create mode 100644 CMakeLua/Source/cmHexFileConverter.h create mode 100644 CMakeLua/Source/cmIfCommand.cxx create mode 100644 CMakeLua/Source/cmIfCommand.h create mode 100644 CMakeLua/Source/cmIncludeCommand.cxx create mode 100644 CMakeLua/Source/cmIncludeCommand.h create mode 100644 CMakeLua/Source/cmIncludeDirectoryCommand.cxx create mode 100644 CMakeLua/Source/cmIncludeDirectoryCommand.h create mode 100644 CMakeLua/Source/cmIncludeExternalMSProjectCommand.cxx create mode 100644 CMakeLua/Source/cmIncludeExternalMSProjectCommand.h create mode 100644 CMakeLua/Source/cmIncludeRegularExpressionCommand.cxx create mode 100644 CMakeLua/Source/cmIncludeRegularExpressionCommand.h create mode 100644 CMakeLua/Source/cmInstallCommand.cxx create mode 100644 CMakeLua/Source/cmInstallCommand.h create mode 100644 CMakeLua/Source/cmInstallCommandArguments.cxx create mode 100644 CMakeLua/Source/cmInstallCommandArguments.h create mode 100644 CMakeLua/Source/cmInstallDirectoryGenerator.cxx create mode 100644 CMakeLua/Source/cmInstallDirectoryGenerator.h create mode 100644 CMakeLua/Source/cmInstallExportGenerator.cxx create mode 100644 CMakeLua/Source/cmInstallExportGenerator.h create mode 100644 CMakeLua/Source/cmInstallFilesCommand.cxx create mode 100644 CMakeLua/Source/cmInstallFilesCommand.h create mode 100644 CMakeLua/Source/cmInstallFilesGenerator.cxx create mode 100644 CMakeLua/Source/cmInstallFilesGenerator.h create mode 100644 CMakeLua/Source/cmInstallGenerator.cxx create mode 100644 CMakeLua/Source/cmInstallGenerator.h create mode 100644 CMakeLua/Source/cmInstallProgramsCommand.cxx create mode 100644 CMakeLua/Source/cmInstallProgramsCommand.h create mode 100644 CMakeLua/Source/cmInstallScriptGenerator.cxx create mode 100644 CMakeLua/Source/cmInstallScriptGenerator.h create mode 100644 CMakeLua/Source/cmInstallTargetGenerator.cxx create mode 100644 CMakeLua/Source/cmInstallTargetGenerator.h create mode 100644 CMakeLua/Source/cmInstallTargetsCommand.cxx create mode 100644 CMakeLua/Source/cmInstallTargetsCommand.h create mode 100644 CMakeLua/Source/cmLinkDirectoriesCommand.cxx create mode 100644 CMakeLua/Source/cmLinkDirectoriesCommand.h create mode 100644 CMakeLua/Source/cmLinkLibrariesCommand.cxx create mode 100644 CMakeLua/Source/cmLinkLibrariesCommand.h create mode 100644 CMakeLua/Source/cmListCommand.cxx create mode 100644 CMakeLua/Source/cmListCommand.h create mode 100644 CMakeLua/Source/cmListFileCache.cxx create mode 100644 CMakeLua/Source/cmListFileCache.h create mode 100644 CMakeLua/Source/cmListFileLexer.c create mode 100644 CMakeLua/Source/cmListFileLexer.h create mode 100644 CMakeLua/Source/cmListFileLexer.in.l create mode 100644 CMakeLua/Source/cmLoadCacheCommand.cxx create mode 100644 CMakeLua/Source/cmLoadCacheCommand.h create mode 100644 CMakeLua/Source/cmLoadCommandCommand.cxx create mode 100644 CMakeLua/Source/cmLoadCommandCommand.h create mode 100644 CMakeLua/Source/cmLocalGenerator.cxx create mode 100644 CMakeLua/Source/cmLocalGenerator.h create mode 100644 CMakeLua/Source/cmLocalUnixMakefileGenerator3.cxx create mode 100644 CMakeLua/Source/cmLocalUnixMakefileGenerator3.h create mode 100644 CMakeLua/Source/cmLocalVisualStudio6Generator.cxx create mode 100644 CMakeLua/Source/cmLocalVisualStudio6Generator.h create mode 100644 CMakeLua/Source/cmLocalVisualStudio7Generator.cxx create mode 100644 CMakeLua/Source/cmLocalVisualStudio7Generator.h create mode 100755 CMakeLua/Source/cmLocalVisualStudioGenerator.cxx create mode 100644 CMakeLua/Source/cmLocalVisualStudioGenerator.h create mode 100644 CMakeLua/Source/cmLocalXCodeGenerator.cxx create mode 100644 CMakeLua/Source/cmLocalXCodeGenerator.h create mode 100644 CMakeLua/Source/cmMacroCommand.cxx create mode 100644 CMakeLua/Source/cmMacroCommand.h create mode 100644 CMakeLua/Source/cmMakeDepend.cxx create mode 100644 CMakeLua/Source/cmMakeDepend.h create mode 100644 CMakeLua/Source/cmMakeDirectoryCommand.cxx create mode 100644 CMakeLua/Source/cmMakeDirectoryCommand.h create mode 100644 CMakeLua/Source/cmMakefile.cxx create mode 100644 CMakeLua/Source/cmMakefile.h create mode 100644 CMakeLua/Source/cmMakefileExecutableTargetGenerator.cxx create mode 100644 CMakeLua/Source/cmMakefileExecutableTargetGenerator.h create mode 100644 CMakeLua/Source/cmMakefileLibraryTargetGenerator.cxx create mode 100644 CMakeLua/Source/cmMakefileLibraryTargetGenerator.h create mode 100644 CMakeLua/Source/cmMakefileTargetGenerator.cxx create mode 100644 CMakeLua/Source/cmMakefileTargetGenerator.h create mode 100644 CMakeLua/Source/cmMakefileUtilityTargetGenerator.cxx create mode 100644 CMakeLua/Source/cmMakefileUtilityTargetGenerator.h create mode 100644 CMakeLua/Source/cmMarkAsAdvancedCommand.cxx create mode 100644 CMakeLua/Source/cmMarkAsAdvancedCommand.h create mode 100644 CMakeLua/Source/cmMathCommand.cxx create mode 100644 CMakeLua/Source/cmMathCommand.h create mode 100644 CMakeLua/Source/cmMessageCommand.cxx create mode 100644 CMakeLua/Source/cmMessageCommand.h create mode 100644 CMakeLua/Source/cmObject.h create mode 100644 CMakeLua/Source/cmOptionCommand.cxx create mode 100644 CMakeLua/Source/cmOptionCommand.h create mode 100644 CMakeLua/Source/cmOrderRuntimeDirectories.cxx create mode 100644 CMakeLua/Source/cmOrderRuntimeDirectories.h create mode 100644 CMakeLua/Source/cmOutputRequiredFilesCommand.cxx create mode 100644 CMakeLua/Source/cmOutputRequiredFilesCommand.h create mode 100644 CMakeLua/Source/cmProjectCommand.cxx create mode 100644 CMakeLua/Source/cmProjectCommand.h create mode 100755 CMakeLua/Source/cmProperty.cxx create mode 100755 CMakeLua/Source/cmProperty.h create mode 100755 CMakeLua/Source/cmPropertyDefinition.cxx create mode 100755 CMakeLua/Source/cmPropertyDefinition.h create mode 100755 CMakeLua/Source/cmPropertyDefinitionMap.cxx create mode 100755 CMakeLua/Source/cmPropertyDefinitionMap.h create mode 100755 CMakeLua/Source/cmPropertyMap.cxx create mode 100755 CMakeLua/Source/cmPropertyMap.h create mode 100644 CMakeLua/Source/cmQTWrapCPPCommand.cxx create mode 100644 CMakeLua/Source/cmQTWrapCPPCommand.h create mode 100644 CMakeLua/Source/cmQTWrapUICommand.cxx create mode 100644 CMakeLua/Source/cmQTWrapUICommand.h create mode 100644 CMakeLua/Source/cmRemoveCommand.cxx create mode 100644 CMakeLua/Source/cmRemoveCommand.h create mode 100644 CMakeLua/Source/cmRemoveDefinitionsCommand.cxx create mode 100644 CMakeLua/Source/cmRemoveDefinitionsCommand.h create mode 100755 CMakeLua/Source/cmReturnCommand.cxx create mode 100755 CMakeLua/Source/cmReturnCommand.h create mode 100644 CMakeLua/Source/cmSeparateArgumentsCommand.cxx create mode 100644 CMakeLua/Source/cmSeparateArgumentsCommand.h create mode 100644 CMakeLua/Source/cmSetCommand.cxx create mode 100644 CMakeLua/Source/cmSetCommand.h create mode 100644 CMakeLua/Source/cmSetDirectoryPropertiesCommand.cxx create mode 100644 CMakeLua/Source/cmSetDirectoryPropertiesCommand.h create mode 100644 CMakeLua/Source/cmSetPropertyCommand.cxx create mode 100644 CMakeLua/Source/cmSetPropertyCommand.h create mode 100644 CMakeLua/Source/cmSetSourceFilesPropertiesCommand.cxx create mode 100644 CMakeLua/Source/cmSetSourceFilesPropertiesCommand.h create mode 100644 CMakeLua/Source/cmSetTargetPropertiesCommand.cxx create mode 100644 CMakeLua/Source/cmSetTargetPropertiesCommand.h create mode 100644 CMakeLua/Source/cmSetTestsPropertiesCommand.cxx create mode 100644 CMakeLua/Source/cmSetTestsPropertiesCommand.h create mode 100644 CMakeLua/Source/cmSiteNameCommand.cxx create mode 100644 CMakeLua/Source/cmSiteNameCommand.h create mode 100644 CMakeLua/Source/cmSourceFile.cxx create mode 100644 CMakeLua/Source/cmSourceFile.h create mode 100644 CMakeLua/Source/cmSourceFileLocation.cxx create mode 100644 CMakeLua/Source/cmSourceFileLocation.h create mode 100644 CMakeLua/Source/cmSourceGroup.cxx create mode 100644 CMakeLua/Source/cmSourceGroup.h create mode 100644 CMakeLua/Source/cmSourceGroupCommand.cxx create mode 100644 CMakeLua/Source/cmSourceGroupCommand.h create mode 100644 CMakeLua/Source/cmStandardIncludes.h create mode 100644 CMakeLua/Source/cmStandardLexer.h create mode 100644 CMakeLua/Source/cmStringCommand.cxx create mode 100644 CMakeLua/Source/cmStringCommand.h create mode 100644 CMakeLua/Source/cmSubdirCommand.cxx create mode 100644 CMakeLua/Source/cmSubdirCommand.h create mode 100644 CMakeLua/Source/cmSubdirDependsCommand.cxx create mode 100644 CMakeLua/Source/cmSubdirDependsCommand.h create mode 100644 CMakeLua/Source/cmSystemTools.cxx create mode 100644 CMakeLua/Source/cmSystemTools.h create mode 100644 CMakeLua/Source/cmTarget.cxx create mode 100644 CMakeLua/Source/cmTarget.h create mode 100644 CMakeLua/Source/cmTargetLinkLibrariesCommand.cxx create mode 100644 CMakeLua/Source/cmTargetLinkLibrariesCommand.h create mode 100644 CMakeLua/Source/cmTest.cxx create mode 100644 CMakeLua/Source/cmTest.h create mode 100644 CMakeLua/Source/cmTryCompileCommand.cxx create mode 100644 CMakeLua/Source/cmTryCompileCommand.h create mode 100644 CMakeLua/Source/cmTryRunCommand.cxx create mode 100644 CMakeLua/Source/cmTryRunCommand.h create mode 100644 CMakeLua/Source/cmUseMangledMesaCommand.cxx create mode 100644 CMakeLua/Source/cmUseMangledMesaCommand.h create mode 100644 CMakeLua/Source/cmUtilitySourceCommand.cxx create mode 100644 CMakeLua/Source/cmUtilitySourceCommand.h create mode 100644 CMakeLua/Source/cmVariableRequiresCommand.cxx create mode 100644 CMakeLua/Source/cmVariableRequiresCommand.h create mode 100644 CMakeLua/Source/cmVariableWatch.cxx create mode 100644 CMakeLua/Source/cmVariableWatch.h create mode 100644 CMakeLua/Source/cmVariableWatchCommand.cxx create mode 100644 CMakeLua/Source/cmVariableWatchCommand.h create mode 100644 CMakeLua/Source/cmVersion.cxx create mode 100644 CMakeLua/Source/cmVersion.h create mode 100644 CMakeLua/Source/cmWhileCommand.cxx create mode 100644 CMakeLua/Source/cmWhileCommand.h create mode 100644 CMakeLua/Source/cmWin32ProcessExecution.cxx create mode 100644 CMakeLua/Source/cmWin32ProcessExecution.h create mode 100644 CMakeLua/Source/cmWriteFileCommand.cxx create mode 100644 CMakeLua/Source/cmWriteFileCommand.h create mode 100644 CMakeLua/Source/cmXCode21Object.cxx create mode 100644 CMakeLua/Source/cmXCode21Object.h create mode 100644 CMakeLua/Source/cmXCodeObject.cxx create mode 100644 CMakeLua/Source/cmXCodeObject.h create mode 100644 CMakeLua/Source/cmXMLParser.cxx create mode 100644 CMakeLua/Source/cmXMLParser.h create mode 100644 CMakeLua/Source/cmake.cxx create mode 100644 CMakeLua/Source/cmake.h create mode 100644 CMakeLua/Source/cmakemain.cxx create mode 100644 CMakeLua/Source/cmaketest.h.in create mode 100644 CMakeLua/Source/cmakewizard.cxx create mode 100644 CMakeLua/Source/cmakewizard.h create mode 100755 CMakeLua/Source/cmakexbuild.cxx create mode 100644 CMakeLua/Source/cmw9xcom.cxx create mode 100644 CMakeLua/Source/ctest.cxx create mode 100644 CMakeLua/Source/kwsys/Base64.c create mode 100644 CMakeLua/Source/kwsys/Base64.h.in create mode 100644 CMakeLua/Source/kwsys/CMakeEmptyInputFile.in create mode 100644 CMakeLua/Source/kwsys/CMakeLists.txt create mode 100644 CMakeLua/Source/kwsys/CTestConfig.cmake create mode 100644 CMakeLua/Source/kwsys/CVS/Entries create mode 100644 CMakeLua/Source/kwsys/CVS/Repository create mode 100644 CMakeLua/Source/kwsys/CVS/Root create mode 100644 CMakeLua/Source/kwsys/CVS/Tag create mode 100644 CMakeLua/Source/kwsys/CVS/Template create mode 100644 CMakeLua/Source/kwsys/CheckCXXSourceRuns.cmake create mode 100644 CMakeLua/Source/kwsys/CommandLineArguments.cxx create mode 100644 CMakeLua/Source/kwsys/CommandLineArguments.hxx.in create mode 100644 CMakeLua/Source/kwsys/Configure.h.in create mode 100644 CMakeLua/Source/kwsys/Configure.hxx.in create mode 100644 CMakeLua/Source/kwsys/Copyright.txt create mode 100644 CMakeLua/Source/kwsys/DateStamp.h.in create mode 100644 CMakeLua/Source/kwsys/Directory.cxx create mode 100644 CMakeLua/Source/kwsys/Directory.hxx.in create mode 100644 CMakeLua/Source/kwsys/DynamicLoader.cxx create mode 100644 CMakeLua/Source/kwsys/DynamicLoader.hxx.in create mode 100644 CMakeLua/Source/kwsys/EncodeExecutable.c create mode 100644 CMakeLua/Source/kwsys/ExtraTest.cmake.in create mode 100644 CMakeLua/Source/kwsys/FundamentalType.h.in create mode 100644 CMakeLua/Source/kwsys/Glob.cxx create mode 100644 CMakeLua/Source/kwsys/Glob.hxx.in create mode 100644 CMakeLua/Source/kwsys/IOStream.cxx create mode 100644 CMakeLua/Source/kwsys/IOStream.hxx.in create mode 100644 CMakeLua/Source/kwsys/MD5.c create mode 100644 CMakeLua/Source/kwsys/MD5.h.in create mode 100644 CMakeLua/Source/kwsys/Process.h.in create mode 100644 CMakeLua/Source/kwsys/ProcessFwd9x.c create mode 100644 CMakeLua/Source/kwsys/ProcessUNIX.c create mode 100644 CMakeLua/Source/kwsys/ProcessWin32.c create mode 100644 CMakeLua/Source/kwsys/README.txt create mode 100644 CMakeLua/Source/kwsys/Registry.cxx create mode 100644 CMakeLua/Source/kwsys/Registry.hxx.in create mode 100644 CMakeLua/Source/kwsys/RegularExpression.cxx create mode 100644 CMakeLua/Source/kwsys/RegularExpression.hxx.in create mode 100644 CMakeLua/Source/kwsys/SharedForward.h.in create mode 100644 CMakeLua/Source/kwsys/String.c create mode 100644 CMakeLua/Source/kwsys/String.h.in create mode 100644 CMakeLua/Source/kwsys/String.hxx.in create mode 100644 CMakeLua/Source/kwsys/System.c create mode 100644 CMakeLua/Source/kwsys/System.h.in create mode 100755 CMakeLua/Source/kwsys/SystemInformation.cxx create mode 100755 CMakeLua/Source/kwsys/SystemInformation.hxx.in create mode 100644 CMakeLua/Source/kwsys/SystemTools.cxx create mode 100644 CMakeLua/Source/kwsys/SystemTools.hxx.in create mode 100644 CMakeLua/Source/kwsys/Terminal.c create mode 100644 CMakeLua/Source/kwsys/Terminal.h.in create mode 100644 CMakeLua/Source/kwsys/auto_ptr.hxx.in create mode 100644 CMakeLua/Source/kwsys/hash_fun.hxx.in create mode 100644 CMakeLua/Source/kwsys/hash_map.hxx.in create mode 100644 CMakeLua/Source/kwsys/hash_set.hxx.in create mode 100644 CMakeLua/Source/kwsys/hashtable.hxx.in create mode 100644 CMakeLua/Source/kwsys/kwsysDateStamp.cmake create mode 100755 CMakeLua/Source/kwsys/kwsysDateStamp.py create mode 100755 CMakeLua/Source/kwsys/kwsysHeaderDump.pl create mode 100644 CMakeLua/Source/kwsys/kwsysPlatformTests.cmake create mode 100644 CMakeLua/Source/kwsys/kwsysPlatformTestsC.c create mode 100644 CMakeLua/Source/kwsys/kwsysPlatformTestsCXX.cxx create mode 100644 CMakeLua/Source/kwsys/kwsysPrivate.h create mode 100644 CMakeLua/Source/kwsys/kwsys_cstddef.hxx.in create mode 100644 CMakeLua/Source/kwsys/kwsys_ios_fstream.h.in create mode 100644 CMakeLua/Source/kwsys/kwsys_ios_iosfwd.h.in create mode 100644 CMakeLua/Source/kwsys/kwsys_ios_iostream.h.in create mode 100644 CMakeLua/Source/kwsys/kwsys_ios_sstream.h.in create mode 100644 CMakeLua/Source/kwsys/kwsys_stl.hxx.in create mode 100644 CMakeLua/Source/kwsys/kwsys_stl_string.hxx.in create mode 100644 CMakeLua/Source/kwsys/testAutoPtr.cxx create mode 100644 CMakeLua/Source/kwsys/testCommandLineArguments.cxx create mode 100644 CMakeLua/Source/kwsys/testCommandLineArguments1.cxx create mode 100644 CMakeLua/Source/kwsys/testDynamicLoader.cxx create mode 100644 CMakeLua/Source/kwsys/testDynload.c create mode 100644 CMakeLua/Source/kwsys/testEncode.c create mode 100644 CMakeLua/Source/kwsys/testFail.c create mode 100644 CMakeLua/Source/kwsys/testHashSTL.cxx create mode 100644 CMakeLua/Source/kwsys/testIOS.cxx create mode 100644 CMakeLua/Source/kwsys/testProcess.c create mode 100644 CMakeLua/Source/kwsys/testRegistry.cxx create mode 100755 CMakeLua/Source/kwsys/testSystemInformation.cxx create mode 100644 CMakeLua/Source/kwsys/testSystemTools.bin create mode 100644 CMakeLua/Source/kwsys/testSystemTools.cxx create mode 100644 CMakeLua/Source/kwsys/testSystemTools.h.in create mode 100644 CMakeLua/Source/kwsys/testTerminal.c create mode 100644 CMakeLua/Templates/AppleInfo.plist create mode 100644 CMakeLua/Templates/CMakeLists.txt create mode 100644 CMakeLua/Templates/CMakeVSMacros1.vsmacros create mode 100644 CMakeLua/Templates/CMakeVisualStudio6Configurations.cmake create mode 100644 CMakeLua/Templates/CPack.GenericDescription.txt create mode 100644 CMakeLua/Templates/CPack.GenericLicense.txt create mode 100644 CMakeLua/Templates/CPack.GenericWelcome.txt create mode 100644 CMakeLua/Templates/CPackConfig.cmake.in create mode 100644 CMakeLua/Templates/CTestScript.cmake.in create mode 100644 CMakeLua/Templates/CVS/Entries create mode 100644 CMakeLua/Templates/CVS/Repository create mode 100644 CMakeLua/Templates/CVS/Root create mode 100644 CMakeLua/Templates/CVS/Tag create mode 100644 CMakeLua/Templates/CVS/Template create mode 100644 CMakeLua/Templates/DLLFooter.dsptemplate create mode 100644 CMakeLua/Templates/DLLHeader.dsptemplate create mode 100644 CMakeLua/Templates/EXEFooter.dsptemplate create mode 100644 CMakeLua/Templates/EXEHeader.dsptemplate create mode 100644 CMakeLua/Templates/EXEWinHeader.dsptemplate create mode 100644 CMakeLua/Templates/TestDriver.cxx.in create mode 100644 CMakeLua/Templates/UtilityFooter.dsptemplate create mode 100644 CMakeLua/Templates/UtilityHeader.dsptemplate create mode 100755 CMakeLua/Templates/cygwin-package.sh.in create mode 100644 CMakeLua/Templates/staticLibFooter.dsptemplate create mode 100644 CMakeLua/Templates/staticLibHeader.dsptemplate create mode 100644 CMakeLua/Tests/.NoDartCoverage create mode 100644 CMakeLua/Tests/Assembler/CMakeLists.txt create mode 100644 CMakeLua/Tests/Assembler/CVS/Entries create mode 100644 CMakeLua/Tests/Assembler/CVS/Repository create mode 100644 CMakeLua/Tests/Assembler/CVS/Root create mode 100644 CMakeLua/Tests/Assembler/CVS/Tag create mode 100644 CMakeLua/Tests/Assembler/CVS/Template create mode 100644 CMakeLua/Tests/Assembler/main-linux-x86-gas.s create mode 100644 CMakeLua/Tests/Assembler/main.c create mode 100755 CMakeLua/Tests/BuildDepends/CMakeLists.txt create mode 100644 CMakeLua/Tests/BuildDepends/CVS/Entries create mode 100644 CMakeLua/Tests/BuildDepends/CVS/Repository create mode 100644 CMakeLua/Tests/BuildDepends/CVS/Root create mode 100644 CMakeLua/Tests/BuildDepends/CVS/Tag create mode 100644 CMakeLua/Tests/BuildDepends/CVS/Template create mode 100755 CMakeLua/Tests/BuildDepends/Project/CMakeLists.txt create mode 100644 CMakeLua/Tests/BuildDepends/Project/CVS/Entries create mode 100644 CMakeLua/Tests/BuildDepends/Project/CVS/Repository create mode 100644 CMakeLua/Tests/BuildDepends/Project/CVS/Root create mode 100644 CMakeLua/Tests/BuildDepends/Project/CVS/Tag create mode 100644 CMakeLua/Tests/BuildDepends/Project/CVS/Template create mode 100755 CMakeLua/Tests/BuildDepends/Project/bar.cxx create mode 100644 CMakeLua/Tests/BuildDepends/Project/dep.cxx create mode 100644 CMakeLua/Tests/BuildDepends/Project/dep_custom.cxx create mode 100644 CMakeLua/Tests/BuildDepends/Project/generator.cxx create mode 100644 CMakeLua/Tests/BuildDepends/Project/zot.cxx create mode 100644 CMakeLua/Tests/BundleTest/BundleLib.cxx create mode 100644 CMakeLua/Tests/BundleTest/BundleSubDir/CMakeLists.txt create mode 100644 CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Entries create mode 100644 CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Repository create mode 100644 CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Root create mode 100644 CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Tag create mode 100644 CMakeLua/Tests/BundleTest/BundleSubDir/CVS/Template create mode 100644 CMakeLua/Tests/BundleTest/BundleTest.cxx create mode 100644 CMakeLua/Tests/BundleTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/BundleTest/CVS/Entries create mode 100644 CMakeLua/Tests/BundleTest/CVS/Repository create mode 100644 CMakeLua/Tests/BundleTest/CVS/Root create mode 100644 CMakeLua/Tests/BundleTest/CVS/Tag create mode 100644 CMakeLua/Tests/BundleTest/CVS/Template create mode 100644 CMakeLua/Tests/BundleTest/SomeRandomFile.txt create mode 100644 CMakeLua/Tests/BundleTest/randomResourceFile.plist.in create mode 100755 CMakeLua/Tests/CMakeLists.txt create mode 100644 CMakeLua/Tests/CMakeTests/CMakeLists.txt create mode 100644 CMakeLua/Tests/CMakeTests/CVS/Entries create mode 100644 CMakeLua/Tests/CMakeTests/CVS/Repository create mode 100644 CMakeLua/Tests/CMakeTests/CVS/Root create mode 100644 CMakeLua/Tests/CMakeTests/CVS/Tag create mode 100644 CMakeLua/Tests/CMakeTests/CVS/Template create mode 100644 CMakeLua/Tests/CMakeTests/DummyToolchain.cmake create mode 100644 CMakeLua/Tests/CMakeTests/FindBaseTest.cmake.in create mode 100644 CMakeLua/Tests/CMakeTests/IncludeTest.cmake.in create mode 100644 CMakeLua/Tests/CMakeTests/ListTest.cmake.in create mode 100644 CMakeLua/Tests/CMakeTests/ToolchainTest.cmake.in create mode 100644 CMakeLua/Tests/CMakeTests/VariableWatchTest.cmake.in create mode 100644 CMakeLua/Tests/CMakeTests/include/CVS/Entries create mode 100644 CMakeLua/Tests/CMakeTests/include/CVS/Repository create mode 100644 CMakeLua/Tests/CMakeTests/include/CVS/Root create mode 100644 CMakeLua/Tests/CMakeTests/include/CVS/Tag create mode 100644 CMakeLua/Tests/CMakeTests/include/CVS/Template create mode 100644 CMakeLua/Tests/CMakeTests/include/cmake_i_do_not_exist_in_the_system.h create mode 100644 CMakeLua/Tests/COnly/CMakeLists.txt create mode 100644 CMakeLua/Tests/COnly/CVS/Entries create mode 100644 CMakeLua/Tests/COnly/CVS/Repository create mode 100644 CMakeLua/Tests/COnly/CVS/Root create mode 100644 CMakeLua/Tests/COnly/CVS/Tag create mode 100644 CMakeLua/Tests/COnly/CVS/Template create mode 100644 CMakeLua/Tests/COnly/conly.c create mode 100644 CMakeLua/Tests/COnly/foo.c create mode 100644 CMakeLua/Tests/COnly/foo.h create mode 100644 CMakeLua/Tests/COnly/libc1.c create mode 100644 CMakeLua/Tests/COnly/libc1.h create mode 100644 CMakeLua/Tests/COnly/libc2.c create mode 100644 CMakeLua/Tests/COnly/libc2.h create mode 100644 CMakeLua/Tests/CTestTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/CTestTest/CVS/Entries create mode 100644 CMakeLua/Tests/CTestTest/CVS/Repository create mode 100644 CMakeLua/Tests/CTestTest/CVS/Root create mode 100644 CMakeLua/Tests/CTestTest/CVS/Tag create mode 100644 CMakeLua/Tests/CTestTest/CVS/Template create mode 100644 CMakeLua/Tests/CTestTest/test.cmake.in create mode 100644 CMakeLua/Tests/CTestTest2/CMakeLists.txt create mode 100644 CMakeLua/Tests/CTestTest2/CVS/Entries create mode 100644 CMakeLua/Tests/CTestTest2/CVS/Repository create mode 100644 CMakeLua/Tests/CTestTest2/CVS/Root create mode 100644 CMakeLua/Tests/CTestTest2/CVS/Tag create mode 100644 CMakeLua/Tests/CTestTest2/CVS/Template create mode 100644 CMakeLua/Tests/CTestTest2/test.cmake.in create mode 100644 CMakeLua/Tests/CTestTest3/CVS/Entries create mode 100644 CMakeLua/Tests/CTestTest3/CVS/Repository create mode 100644 CMakeLua/Tests/CTestTest3/CVS/Root create mode 100644 CMakeLua/Tests/CTestTest3/CVS/Tag create mode 100644 CMakeLua/Tests/CTestTest3/CVS/Template create mode 100644 CMakeLua/Tests/CTestTest3/test.cmake.in create mode 100644 CMakeLua/Tests/CVS/Entries create mode 100644 CMakeLua/Tests/CVS/Repository create mode 100644 CMakeLua/Tests/CVS/Root create mode 100644 CMakeLua/Tests/CVS/Tag create mode 100644 CMakeLua/Tests/CVS/Template create mode 100644 CMakeLua/Tests/CommandLineTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/CommandLineTest/CVS/Entries create mode 100644 CMakeLua/Tests/CommandLineTest/CVS/Repository create mode 100644 CMakeLua/Tests/CommandLineTest/CVS/Root create mode 100644 CMakeLua/Tests/CommandLineTest/CVS/Tag create mode 100644 CMakeLua/Tests/CommandLineTest/CVS/Template create mode 100644 CMakeLua/Tests/CommandLineTest/CommandLineTest.cxx create mode 100644 CMakeLua/Tests/CommandLineTest/PreLoad.cmake create mode 100644 CMakeLua/Tests/Complex/CMakeLists.txt create mode 100644 CMakeLua/Tests/Complex/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/CVS/Root create mode 100644 CMakeLua/Tests/Complex/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/CVS/Template create mode 100644 CMakeLua/Tests/Complex/Cache/CMakeCache.txt create mode 100644 CMakeLua/Tests/Complex/Cache/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Cache/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Cache/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Cache/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Cache/CVS/Template create mode 100755 CMakeLua/Tests/Complex/Executable/A.cxx create mode 100644 CMakeLua/Tests/Complex/Executable/A.h create mode 100644 CMakeLua/Tests/Complex/Executable/A.hh create mode 100644 CMakeLua/Tests/Complex/Executable/A.txt create mode 100644 CMakeLua/Tests/Complex/Executable/CMakeLists.txt create mode 100644 CMakeLua/Tests/Complex/Executable/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Executable/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Executable/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Executable/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Executable/CVS/Template create mode 100755 CMakeLua/Tests/Complex/Executable/Included.cmake create mode 100644 CMakeLua/Tests/Complex/Executable/Sub1/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Executable/Sub1/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Executable/Sub1/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Executable/Sub1/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Executable/Sub1/CVS/Template create mode 100755 CMakeLua/Tests/Complex/Executable/Sub1/NameConflictTest.c create mode 100644 CMakeLua/Tests/Complex/Executable/Sub2/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Executable/Sub2/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Executable/Sub2/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Executable/Sub2/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Executable/Sub2/CVS/Template create mode 100755 CMakeLua/Tests/Complex/Executable/Sub2/NameConflictTest.c create mode 100644 CMakeLua/Tests/Complex/Executable/Temp/CMakeLists.txt create mode 100644 CMakeLua/Tests/Complex/Executable/Temp/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Executable/Temp/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Executable/Temp/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Executable/Temp/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Executable/Temp/CVS/Template create mode 100644 CMakeLua/Tests/Complex/Executable/cmVersion.h.in create mode 100644 CMakeLua/Tests/Complex/Executable/complex.cxx create mode 100755 CMakeLua/Tests/Complex/Executable/complex.file.cxx create mode 100644 CMakeLua/Tests/Complex/Executable/complex_nobuild.cxx create mode 100644 CMakeLua/Tests/Complex/Executable/notInAllExe.cxx create mode 100644 CMakeLua/Tests/Complex/Executable/testSystemDir.cxx create mode 100755 CMakeLua/Tests/Complex/Executable/testcflags.c create mode 100644 CMakeLua/Tests/Complex/Library/CMakeLists.txt create mode 100644 CMakeLua/Tests/Complex/Library/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Library/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Library/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Library/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Library/CVS/Template create mode 100644 CMakeLua/Tests/Complex/Library/ExtraSources/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Library/ExtraSources/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Library/ExtraSources/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Library/ExtraSources/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Library/ExtraSources/CVS/Template create mode 100644 CMakeLua/Tests/Complex/Library/ExtraSources/file1.cxx create mode 100644 CMakeLua/Tests/Complex/Library/ExtraSources/file1.h create mode 100644 CMakeLua/Tests/Complex/Library/SystemDir/CVS/Entries create mode 100644 CMakeLua/Tests/Complex/Library/SystemDir/CVS/Repository create mode 100644 CMakeLua/Tests/Complex/Library/SystemDir/CVS/Root create mode 100644 CMakeLua/Tests/Complex/Library/SystemDir/CVS/Tag create mode 100644 CMakeLua/Tests/Complex/Library/SystemDir/CVS/Template create mode 100644 CMakeLua/Tests/Complex/Library/SystemDir/testSystemDir.h create mode 100644 CMakeLua/Tests/Complex/Library/TestLink.c create mode 100644 CMakeLua/Tests/Complex/Library/create_file.cxx create mode 100644 CMakeLua/Tests/Complex/Library/dummy create mode 100644 CMakeLua/Tests/Complex/Library/empty.h create mode 100644 CMakeLua/Tests/Complex/Library/file2.cxx create mode 100644 CMakeLua/Tests/Complex/Library/file2.h create mode 100755 CMakeLua/Tests/Complex/Library/moduleFile.c create mode 100755 CMakeLua/Tests/Complex/Library/moduleFile.h create mode 100644 CMakeLua/Tests/Complex/Library/notInAllLib.cxx create mode 100644 CMakeLua/Tests/Complex/Library/sharedFile.cxx create mode 100644 CMakeLua/Tests/Complex/Library/sharedFile.h create mode 100644 CMakeLua/Tests/Complex/Library/testConly.c create mode 100644 CMakeLua/Tests/Complex/Library/testConly.h create mode 100644 CMakeLua/Tests/Complex/Library/test_preprocess.cmake create mode 100644 CMakeLua/Tests/Complex/VarTests.cmake create mode 100644 CMakeLua/Tests/Complex/cmTestConfigure.h.in create mode 100644 CMakeLua/Tests/Complex/cmTestConfigureEscape.h.in create mode 100644 CMakeLua/Tests/Complex/cmTestGeneratedHeader.h.in create mode 100644 CMakeLua/Tests/ComplexOneConfig/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexOneConfig/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/CVS/Template create mode 100644 CMakeLua/Tests/ComplexOneConfig/Cache/CMakeCache.txt create mode 100644 CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Cache/CVS/Template create mode 100755 CMakeLua/Tests/ComplexOneConfig/Executable/A.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/A.h create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/A.hh create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/A.txt create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/CVS/Template create mode 100755 CMakeLua/Tests/ComplexOneConfig/Executable/Included.cmake create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub1/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub1/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub1/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub1/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub1/CVS/Template create mode 100755 CMakeLua/Tests/ComplexOneConfig/Executable/Sub1/NameConflictTest.c create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub2/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub2/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub2/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub2/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Sub2/CVS/Template create mode 100755 CMakeLua/Tests/ComplexOneConfig/Executable/Sub2/NameConflictTest.c create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Temp/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Temp/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Temp/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Temp/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Temp/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/Temp/CVS/Template create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/cmVersion.h.in create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/complex.cxx create mode 100755 CMakeLua/Tests/ComplexOneConfig/Executable/complex.file.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/complex_nobuild.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/notInAllExe.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Executable/testSystemDir.cxx create mode 100755 CMakeLua/Tests/ComplexOneConfig/Executable/testcflags.c create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/CVS/Template create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/ExtraSources/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/ExtraSources/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/ExtraSources/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/ExtraSources/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/ExtraSources/CVS/Template create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/ExtraSources/file1.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/ExtraSources/file1.h create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/SystemDir/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/SystemDir/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/SystemDir/CVS/Root create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/SystemDir/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/SystemDir/CVS/Template create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/SystemDir/testSystemDir.h create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/TestLink.c create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/create_file.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/dummy create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/empty.h create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/file2.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/file2.h create mode 100755 CMakeLua/Tests/ComplexOneConfig/Library/moduleFile.c create mode 100755 CMakeLua/Tests/ComplexOneConfig/Library/moduleFile.h create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/notInAllLib.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/sharedFile.cxx create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/sharedFile.h create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/testConly.c create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/testConly.h create mode 100644 CMakeLua/Tests/ComplexOneConfig/Library/test_preprocess.cmake create mode 100644 CMakeLua/Tests/ComplexOneConfig/VarTests.cmake create mode 100644 CMakeLua/Tests/ComplexOneConfig/cmTestConfigure.h.in create mode 100644 CMakeLua/Tests/ComplexOneConfig/cmTestConfigureEscape.h.in create mode 100644 CMakeLua/Tests/ComplexOneConfig/cmTestGeneratedHeader.h.in create mode 100644 CMakeLua/Tests/ComplexRelativePaths/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexRelativePaths/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/CVS/Template create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Cache/CMakeCache.txt create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Cache/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Cache/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Cache/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Cache/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Cache/CVS/Template create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Executable/A.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/A.h create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/A.hh create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/A.txt create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/CVS/Template create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Executable/Included.cmake create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub1/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub1/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub1/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub1/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub1/CVS/Template create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub1/NameConflictTest.c create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub2/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub2/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub2/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub2/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub2/CVS/Template create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Executable/Sub2/NameConflictTest.c create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Temp/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Temp/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Temp/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Temp/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Temp/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/Temp/CVS/Template create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/cmVersion.h.in create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/complex.cxx create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Executable/complex.file.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/complex_nobuild.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/notInAllExe.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Executable/testSystemDir.cxx create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Executable/testcflags.c create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/CMakeLists.txt create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/CVS/Template create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/ExtraSources/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/ExtraSources/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/ExtraSources/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/ExtraSources/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/ExtraSources/CVS/Template create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/ExtraSources/file1.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/ExtraSources/file1.h create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/SystemDir/CVS/Entries create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/SystemDir/CVS/Repository create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/SystemDir/CVS/Root create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/SystemDir/CVS/Tag create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/SystemDir/CVS/Template create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/SystemDir/testSystemDir.h create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/TestLink.c create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/create_file.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/dummy create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/empty.h create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/file2.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/file2.h create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Library/moduleFile.c create mode 100755 CMakeLua/Tests/ComplexRelativePaths/Library/moduleFile.h create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/notInAllLib.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/sharedFile.cxx create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/sharedFile.h create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/testConly.c create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/testConly.h create mode 100644 CMakeLua/Tests/ComplexRelativePaths/Library/test_preprocess.cmake create mode 100644 CMakeLua/Tests/ComplexRelativePaths/VarTests.cmake create mode 100644 CMakeLua/Tests/ComplexRelativePaths/cmTestConfigure.h.in create mode 100644 CMakeLua/Tests/ComplexRelativePaths/cmTestConfigureEscape.h.in create mode 100644 CMakeLua/Tests/ComplexRelativePaths/cmTestGeneratedHeader.h.in create mode 100644 CMakeLua/Tests/ConvLibrary/CMakeLists.txt create mode 100644 CMakeLua/Tests/ConvLibrary/CVS/Entries create mode 100644 CMakeLua/Tests/ConvLibrary/CVS/Repository create mode 100644 CMakeLua/Tests/ConvLibrary/CVS/Root create mode 100644 CMakeLua/Tests/ConvLibrary/CVS/Tag create mode 100644 CMakeLua/Tests/ConvLibrary/CVS/Template create mode 100644 CMakeLua/Tests/ConvLibrary/bar.c create mode 100644 CMakeLua/Tests/ConvLibrary/bartest.cxx create mode 100644 CMakeLua/Tests/ConvLibrary/foo.cxx create mode 100644 CMakeLua/Tests/ConvLibrary/sub1/CVS/Entries create mode 100644 CMakeLua/Tests/ConvLibrary/sub1/CVS/Repository create mode 100644 CMakeLua/Tests/ConvLibrary/sub1/CVS/Root create mode 100644 CMakeLua/Tests/ConvLibrary/sub1/CVS/Tag create mode 100644 CMakeLua/Tests/ConvLibrary/sub1/CVS/Template create mode 100644 CMakeLua/Tests/ConvLibrary/sub1/car.cxx create mode 100755 CMakeLua/Tests/CustComDepend/CMakeLists.txt create mode 100644 CMakeLua/Tests/CustComDepend/CVS/Entries create mode 100644 CMakeLua/Tests/CustComDepend/CVS/Repository create mode 100644 CMakeLua/Tests/CustComDepend/CVS/Root create mode 100644 CMakeLua/Tests/CustComDepend/CVS/Tag create mode 100644 CMakeLua/Tests/CustComDepend/CVS/Template create mode 100755 CMakeLua/Tests/CustComDepend/bar.h create mode 100755 CMakeLua/Tests/CustComDepend/foo.cxx create mode 100644 CMakeLua/Tests/CustomCommand/CMakeLists.txt create mode 100644 CMakeLua/Tests/CustomCommand/CVS/Entries create mode 100644 CMakeLua/Tests/CustomCommand/CVS/Repository create mode 100644 CMakeLua/Tests/CustomCommand/CVS/Root create mode 100644 CMakeLua/Tests/CustomCommand/CVS/Tag create mode 100644 CMakeLua/Tests/CustomCommand/CVS/Template create mode 100755 CMakeLua/Tests/CustomCommand/GeneratedHeader/CMakeLists.txt create mode 100644 CMakeLua/Tests/CustomCommand/GeneratedHeader/CVS/Entries create mode 100644 CMakeLua/Tests/CustomCommand/GeneratedHeader/CVS/Repository create mode 100644 CMakeLua/Tests/CustomCommand/GeneratedHeader/CVS/Root create mode 100644 CMakeLua/Tests/CustomCommand/GeneratedHeader/CVS/Tag create mode 100644 CMakeLua/Tests/CustomCommand/GeneratedHeader/CVS/Template create mode 100644 CMakeLua/Tests/CustomCommand/GeneratedHeader/generated.h.in create mode 100644 CMakeLua/Tests/CustomCommand/GeneratedHeader/main.cpp create mode 100644 CMakeLua/Tests/CustomCommand/GeneratorInExtraDir/CMakeLists.txt create mode 100644 CMakeLua/Tests/CustomCommand/GeneratorInExtraDir/CVS/Entries create mode 100644 CMakeLua/Tests/CustomCommand/GeneratorInExtraDir/CVS/Repository create mode 100644 CMakeLua/Tests/CustomCommand/GeneratorInExtraDir/CVS/Root create mode 100644 CMakeLua/Tests/CustomCommand/GeneratorInExtraDir/CVS/Tag create mode 100644 CMakeLua/Tests/CustomCommand/GeneratorInExtraDir/CVS/Template create mode 100644 CMakeLua/Tests/CustomCommand/check_command_line.c.in create mode 100644 CMakeLua/Tests/CustomCommand/check_mark.cmake create mode 100644 CMakeLua/Tests/CustomCommand/config.h.in create mode 100644 CMakeLua/Tests/CustomCommand/doc1.tex create mode 100644 CMakeLua/Tests/CustomCommand/foo.h.in create mode 100644 CMakeLua/Tests/CustomCommand/foo.in create mode 100644 CMakeLua/Tests/CustomCommand/generator.cxx create mode 100644 CMakeLua/Tests/CustomCommand/main.cxx create mode 100644 CMakeLua/Tests/CustomCommand/wrapped.h create mode 100644 CMakeLua/Tests/CustomCommand/wrapper.cxx create mode 100755 CMakeLua/Tests/CustomCommandWorkingDirectory/CMakeLists.txt create mode 100644 CMakeLua/Tests/CustomCommandWorkingDirectory/CVS/Entries create mode 100644 CMakeLua/Tests/CustomCommandWorkingDirectory/CVS/Repository create mode 100644 CMakeLua/Tests/CustomCommandWorkingDirectory/CVS/Root create mode 100644 CMakeLua/Tests/CustomCommandWorkingDirectory/CVS/Tag create mode 100644 CMakeLua/Tests/CustomCommandWorkingDirectory/CVS/Template create mode 100755 CMakeLua/Tests/CustomCommandWorkingDirectory/customTarget.c create mode 100755 CMakeLua/Tests/CustomCommandWorkingDirectory/working.c.in create mode 100644 CMakeLua/Tests/CxxOnly/CMakeLists.txt create mode 100644 CMakeLua/Tests/CxxOnly/CVS/Entries create mode 100644 CMakeLua/Tests/CxxOnly/CVS/Repository create mode 100644 CMakeLua/Tests/CxxOnly/CVS/Root create mode 100644 CMakeLua/Tests/CxxOnly/CVS/Tag create mode 100644 CMakeLua/Tests/CxxOnly/CVS/Template create mode 100644 CMakeLua/Tests/CxxOnly/cxxonly.cxx create mode 100644 CMakeLua/Tests/CxxOnly/libcxx1.cxx create mode 100644 CMakeLua/Tests/CxxOnly/libcxx1.h create mode 100644 CMakeLua/Tests/CxxOnly/libcxx2.cxx create mode 100644 CMakeLua/Tests/CxxOnly/libcxx2.h create mode 100644 CMakeLua/Tests/Dependency/1/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/1/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/1/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/1/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/1/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/1/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/1/OneSrc.c create mode 100644 CMakeLua/Tests/Dependency/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Eight/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Eight/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Eight/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Eight/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Eight/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Eight/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Eight/EightSrc.c create mode 100644 CMakeLua/Tests/Dependency/Exec/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Exec/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Exec/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Exec/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Exec/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Exec/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Exec/ExecMain.c create mode 100644 CMakeLua/Tests/Dependency/Exec2/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Exec2/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Exec2/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Exec2/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Exec2/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Exec2/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Exec2/ExecMain.c create mode 100644 CMakeLua/Tests/Dependency/Exec3/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Exec3/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Exec3/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Exec3/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Exec3/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Exec3/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Exec3/ExecMain.c create mode 100644 CMakeLua/Tests/Dependency/Exec4/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Exec4/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Exec4/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Exec4/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Exec4/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Exec4/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Exec4/ExecMain.c create mode 100644 CMakeLua/Tests/Dependency/Five/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Five/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Five/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Five/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Five/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Five/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Five/FiveSrc.c create mode 100644 CMakeLua/Tests/Dependency/Four/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Four/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Four/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Four/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Four/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Four/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Four/FourSrc.c create mode 100644 CMakeLua/Tests/Dependency/NoDepA/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/NoDepA/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/NoDepA/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/NoDepA/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/NoDepA/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/NoDepA/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/NoDepA/NoDepASrc.c create mode 100644 CMakeLua/Tests/Dependency/NoDepB/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/NoDepB/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/NoDepB/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/NoDepB/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/NoDepB/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/NoDepB/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/NoDepB/NoDepBSrc.c create mode 100644 CMakeLua/Tests/Dependency/NoDepC/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/NoDepC/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/NoDepC/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/NoDepC/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/NoDepC/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/NoDepC/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/NoDepC/NoDepCSrc.c create mode 100644 CMakeLua/Tests/Dependency/Seven/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Seven/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Seven/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Seven/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Seven/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Seven/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Seven/SevenSrc.c create mode 100644 CMakeLua/Tests/Dependency/Six/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Six/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Six/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Six/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Six/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Six/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Six/SixASrc.c create mode 100644 CMakeLua/Tests/Dependency/Six/SixBSrc.c create mode 100644 CMakeLua/Tests/Dependency/Three/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Three/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Three/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Three/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Three/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Three/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Three/ThreeSrc.c create mode 100644 CMakeLua/Tests/Dependency/Two/CMakeLists.txt create mode 100644 CMakeLua/Tests/Dependency/Two/CVS/Entries create mode 100644 CMakeLua/Tests/Dependency/Two/CVS/Repository create mode 100644 CMakeLua/Tests/Dependency/Two/CVS/Root create mode 100644 CMakeLua/Tests/Dependency/Two/CVS/Tag create mode 100644 CMakeLua/Tests/Dependency/Two/CVS/Template create mode 100644 CMakeLua/Tests/Dependency/Two/TwoCustomSrc.c create mode 100644 CMakeLua/Tests/Dependency/Two/TwoSrc.c create mode 100644 CMakeLua/Tests/Dependency/Two/two-test.h.in create mode 100755 CMakeLua/Tests/DocTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/DocTest/CVS/Entries create mode 100644 CMakeLua/Tests/DocTest/CVS/Repository create mode 100644 CMakeLua/Tests/DocTest/CVS/Root create mode 100644 CMakeLua/Tests/DocTest/CVS/Tag create mode 100644 CMakeLua/Tests/DocTest/CVS/Template create mode 100755 CMakeLua/Tests/DocTest/DocTest.cxx create mode 100644 CMakeLua/Tests/ExportImport/CMakeLists.txt create mode 100644 CMakeLua/Tests/ExportImport/CVS/Entries create mode 100644 CMakeLua/Tests/ExportImport/CVS/Repository create mode 100644 CMakeLua/Tests/ExportImport/CVS/Root create mode 100644 CMakeLua/Tests/ExportImport/Export/CMakeLists.txt create mode 100644 CMakeLua/Tests/ExportImport/Export/CVS/Entries create mode 100644 CMakeLua/Tests/ExportImport/Export/CVS/Repository create mode 100644 CMakeLua/Tests/ExportImport/Export/CVS/Root create mode 100644 CMakeLua/Tests/ExportImport/Export/testExe1.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testExe1lib.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testExe2.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testExe2lib.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testExe2libImp.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testExe3.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testLib1.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testLib2.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testLib3.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testLib3Imp.c create mode 100644 CMakeLua/Tests/ExportImport/Export/testLib4.c create mode 100644 CMakeLua/Tests/ExportImport/Import/CMakeLists.txt create mode 100644 CMakeLua/Tests/ExportImport/Import/CVS/Entries create mode 100644 CMakeLua/Tests/ExportImport/Import/CVS/Repository create mode 100644 CMakeLua/Tests/ExportImport/Import/CVS/Root create mode 100644 CMakeLua/Tests/ExportImport/Import/imp_mod1.c create mode 100644 CMakeLua/Tests/ExportImport/Import/imp_testExe1.c create mode 100644 CMakeLua/Tests/ExportImport/main.c create mode 100644 CMakeLua/Tests/ExternalOBJ/CMakeLists.txt create mode 100644 CMakeLua/Tests/ExternalOBJ/CVS/Entries create mode 100644 CMakeLua/Tests/ExternalOBJ/CVS/Repository create mode 100644 CMakeLua/Tests/ExternalOBJ/CVS/Root create mode 100644 CMakeLua/Tests/ExternalOBJ/CVS/Tag create mode 100644 CMakeLua/Tests/ExternalOBJ/CVS/Template create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/CMakeLists.txt create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/CVS/Entries create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/CVS/Repository create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/CVS/Root create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/CVS/Tag create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/CVS/Template create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/external_main.cxx create mode 100644 CMakeLua/Tests/ExternalOBJ/Object/external_object.cxx create mode 100644 CMakeLua/Tests/ExternalOBJ/executable.cxx create mode 100644 CMakeLua/Tests/FindPackageTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/FindPackageTest/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/CVS/Tag create mode 100644 CMakeLua/Tests/FindPackageTest/CVS/Template create mode 100644 CMakeLua/Tests/FindPackageTest/FindPackageTest.cxx create mode 100644 CMakeLua/Tests/FindPackageTest/FindVersionTestA.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/FindVersionTestB.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/FindVersionTestC.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/TAppConfig.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/cmake/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/cmake/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/cmake/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TApp.app/Contents/Resources/cmake/tapp-config.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/CMake/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/CMake/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/CMake/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/CMake/TFrameworkConfig.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/A/Resources/tframework-config.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/TFramework.framework/Versions/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/include/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/include/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/include/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/include/CVS/Tag create mode 100644 CMakeLua/Tests/FindPackageTest/include/CVS/Template create mode 100644 CMakeLua/Tests/FindPackageTest/include/foo.h create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/BarConfig.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/cmake/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/cmake/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/cmake/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/Bar/cmake/bar-config.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/TApp/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/TApp/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/TApp/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/TApp/TAppConfig.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/CMake/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/CMake/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/CMake/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/CMake/FooConfig.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/foo-1.2/foo-config.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/test/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/test/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/test/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/test/SuffixTestConfig.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/suffix/test/SuffixTestConfigVersion.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-1.0/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-1.0/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-1.0/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-1.0/zot-config.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-2.0/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-2.0/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-2.0/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-2.0/zot-config-version.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-2.0/zot-config.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.0/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.0/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.0/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.0/zot-config-version.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.0/zot-config.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.1/CVS/Entries create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.1/CVS/Repository create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.1/CVS/Root create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.1/zot-config-version.cmake create mode 100644 CMakeLua/Tests/FindPackageTest/lib/zot-3.1/zot-config.cmake create mode 100755 CMakeLua/Tests/Fortran/CMakeLists.txt create mode 100644 CMakeLua/Tests/Fortran/CVS/Entries create mode 100644 CMakeLua/Tests/Fortran/CVS/Repository create mode 100644 CMakeLua/Tests/Fortran/CVS/Root create mode 100644 CMakeLua/Tests/Fortran/CVS/Tag create mode 100644 CMakeLua/Tests/Fortran/CVS/Template create mode 100644 CMakeLua/Tests/Fortran/Executable/CMakeLists.txt create mode 100644 CMakeLua/Tests/Fortran/Executable/CVS/Entries create mode 100644 CMakeLua/Tests/Fortran/Executable/CVS/Repository create mode 100644 CMakeLua/Tests/Fortran/Executable/CVS/Root create mode 100644 CMakeLua/Tests/Fortran/Executable/main.f90 create mode 100644 CMakeLua/Tests/Fortran/External/CMakeLists.txt create mode 100644 CMakeLua/Tests/Fortran/External/CVS/Entries create mode 100644 CMakeLua/Tests/Fortran/External/CVS/Repository create mode 100644 CMakeLua/Tests/Fortran/External/CVS/Root create mode 100644 CMakeLua/Tests/Fortran/External/a.f90 create mode 100644 CMakeLua/Tests/Fortran/Library/CMakeLists.txt create mode 100644 CMakeLua/Tests/Fortran/Library/CVS/Entries create mode 100644 CMakeLua/Tests/Fortran/Library/CVS/Repository create mode 100644 CMakeLua/Tests/Fortran/Library/CVS/Root create mode 100644 CMakeLua/Tests/Fortran/Library/a.f90 create mode 100644 CMakeLua/Tests/Fortran/Library/b.f90 create mode 100644 CMakeLua/Tests/Fortran/Library/main.f90 create mode 100755 CMakeLua/Tests/Fortran/hello.f create mode 100644 CMakeLua/Tests/Fortran/in_interface/CVS/Entries create mode 100644 CMakeLua/Tests/Fortran/in_interface/CVS/Repository create mode 100644 CMakeLua/Tests/Fortran/in_interface/CVS/Root create mode 100644 CMakeLua/Tests/Fortran/in_interface/CVS/Tag create mode 100644 CMakeLua/Tests/Fortran/in_interface/CVS/Template create mode 100644 CMakeLua/Tests/Fortran/in_interface/main.f90 create mode 100644 CMakeLua/Tests/Fortran/in_interface/module.f90 create mode 100644 CMakeLua/Tests/Fortran/test_module_implementation.f90 create mode 100644 CMakeLua/Tests/Fortran/test_module_interface.f90 create mode 100644 CMakeLua/Tests/Fortran/test_module_main.f90 create mode 100644 CMakeLua/Tests/Fortran/test_preprocess.F90 create mode 100644 CMakeLua/Tests/Fortran/test_use_in_comment_fixedform.f create mode 100644 CMakeLua/Tests/Fortran/test_use_in_comment_freeform.f90 create mode 100644 CMakeLua/Tests/Framework/CMakeLists.txt create mode 100644 CMakeLua/Tests/Framework/CVS/Entries create mode 100644 CMakeLua/Tests/Framework/CVS/Repository create mode 100644 CMakeLua/Tests/Framework/CVS/Root create mode 100644 CMakeLua/Tests/Framework/CVS/Tag create mode 100644 CMakeLua/Tests/Framework/CVS/Template create mode 100644 CMakeLua/Tests/Framework/bar.cxx create mode 100644 CMakeLua/Tests/Framework/foo.cxx create mode 100644 CMakeLua/Tests/Framework/foo.h create mode 100644 CMakeLua/Tests/Framework/foo2.h create mode 100644 CMakeLua/Tests/Framework/fooBoth.h create mode 100644 CMakeLua/Tests/Framework/fooNeither.h create mode 100644 CMakeLua/Tests/Framework/fooPrivate.h create mode 100644 CMakeLua/Tests/Framework/fooPublic.h create mode 100755 CMakeLua/Tests/Framework/test.lua create mode 100755 CMakeLua/Tests/FunctionTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/FunctionTest/CVS/Entries create mode 100644 CMakeLua/Tests/FunctionTest/CVS/Repository create mode 100644 CMakeLua/Tests/FunctionTest/CVS/Root create mode 100644 CMakeLua/Tests/FunctionTest/SubDirScope/CMakeLists.txt create mode 100644 CMakeLua/Tests/FunctionTest/SubDirScope/CVS/Entries create mode 100644 CMakeLua/Tests/FunctionTest/SubDirScope/CVS/Repository create mode 100644 CMakeLua/Tests/FunctionTest/SubDirScope/CVS/Root create mode 100755 CMakeLua/Tests/FunctionTest/Util.cmake create mode 100644 CMakeLua/Tests/FunctionTest/functionTest.c create mode 100755 CMakeLua/Tests/Java/A.java create mode 100755 CMakeLua/Tests/Java/CMakeLists.txt create mode 100644 CMakeLua/Tests/Java/CVS/Entries create mode 100644 CMakeLua/Tests/Java/CVS/Repository create mode 100644 CMakeLua/Tests/Java/CVS/Root create mode 100644 CMakeLua/Tests/Java/CVS/Tag create mode 100644 CMakeLua/Tests/Java/CVS/Template create mode 100755 CMakeLua/Tests/Java/HelloWorld.java create mode 100644 CMakeLua/Tests/Jump/CMakeLists.txt create mode 100644 CMakeLua/Tests/Jump/CVS/Entries create mode 100644 CMakeLua/Tests/Jump/CVS/Repository create mode 100644 CMakeLua/Tests/Jump/CVS/Root create mode 100644 CMakeLua/Tests/Jump/CVS/Tag create mode 100644 CMakeLua/Tests/Jump/CVS/Template create mode 100644 CMakeLua/Tests/Jump/Executable/CMakeLists.txt create mode 100644 CMakeLua/Tests/Jump/Executable/CVS/Entries create mode 100644 CMakeLua/Tests/Jump/Executable/CVS/Repository create mode 100644 CMakeLua/Tests/Jump/Executable/CVS/Root create mode 100644 CMakeLua/Tests/Jump/Executable/CVS/Tag create mode 100644 CMakeLua/Tests/Jump/Executable/CVS/Template create mode 100644 CMakeLua/Tests/Jump/Executable/jumpExecutable.cxx create mode 100644 CMakeLua/Tests/Jump/Library/CMakeLists.txt create mode 100644 CMakeLua/Tests/Jump/Library/CVS/Entries create mode 100644 CMakeLua/Tests/Jump/Library/CVS/Repository create mode 100644 CMakeLua/Tests/Jump/Library/CVS/Root create mode 100644 CMakeLua/Tests/Jump/Library/CVS/Tag create mode 100644 CMakeLua/Tests/Jump/Library/CVS/Template create mode 100644 CMakeLua/Tests/Jump/Library/Shared/CMakeLists.txt create mode 100644 CMakeLua/Tests/Jump/Library/Shared/CVS/Entries create mode 100644 CMakeLua/Tests/Jump/Library/Shared/CVS/Repository create mode 100644 CMakeLua/Tests/Jump/Library/Shared/CVS/Root create mode 100644 CMakeLua/Tests/Jump/Library/Shared/CVS/Tag create mode 100644 CMakeLua/Tests/Jump/Library/Shared/CVS/Template create mode 100644 CMakeLua/Tests/Jump/Library/Shared/jumpShared.cxx create mode 100644 CMakeLua/Tests/Jump/Library/Static/CMakeLists.txt create mode 100644 CMakeLua/Tests/Jump/Library/Static/CVS/Entries create mode 100644 CMakeLua/Tests/Jump/Library/Static/CVS/Repository create mode 100644 CMakeLua/Tests/Jump/Library/Static/CVS/Root create mode 100644 CMakeLua/Tests/Jump/Library/Static/CVS/Tag create mode 100644 CMakeLua/Tests/Jump/Library/Static/CVS/Template create mode 100644 CMakeLua/Tests/Jump/Library/Static/jumpStatic.cxx create mode 100755 CMakeLua/Tests/LibName/CMakeLists.txt create mode 100644 CMakeLua/Tests/LibName/CVS/Entries create mode 100644 CMakeLua/Tests/LibName/CVS/Repository create mode 100644 CMakeLua/Tests/LibName/CVS/Root create mode 100644 CMakeLua/Tests/LibName/CVS/Tag create mode 100644 CMakeLua/Tests/LibName/CVS/Template create mode 100755 CMakeLua/Tests/LibName/bar.c create mode 100755 CMakeLua/Tests/LibName/foo.c create mode 100755 CMakeLua/Tests/LibName/foobar.c create mode 100644 CMakeLua/Tests/LinkLine/CMakeLists.txt create mode 100644 CMakeLua/Tests/LinkLine/CVS/Entries create mode 100644 CMakeLua/Tests/LinkLine/CVS/Repository create mode 100644 CMakeLua/Tests/LinkLine/CVS/Root create mode 100644 CMakeLua/Tests/LinkLine/CVS/Tag create mode 100644 CMakeLua/Tests/LinkLine/CVS/Template create mode 100644 CMakeLua/Tests/LinkLine/Exec.c create mode 100644 CMakeLua/Tests/LinkLine/One.c create mode 100644 CMakeLua/Tests/LinkLine/Two.c create mode 100644 CMakeLua/Tests/LinkLineOrder/CMakeLists.txt create mode 100644 CMakeLua/Tests/LinkLineOrder/CVS/Entries create mode 100644 CMakeLua/Tests/LinkLineOrder/CVS/Repository create mode 100644 CMakeLua/Tests/LinkLineOrder/CVS/Root create mode 100644 CMakeLua/Tests/LinkLineOrder/CVS/Tag create mode 100644 CMakeLua/Tests/LinkLineOrder/CVS/Template create mode 100644 CMakeLua/Tests/LinkLineOrder/Exec1.c create mode 100644 CMakeLua/Tests/LinkLineOrder/Exec2.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepA.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepB.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepC.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepE.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepF.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepX.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepY.c create mode 100644 CMakeLua/Tests/LinkLineOrder/NoDepZ.c create mode 100644 CMakeLua/Tests/LinkLineOrder/One.c create mode 100644 CMakeLua/Tests/LinkLineOrder/Two.c create mode 100644 CMakeLua/Tests/LoadCommand/CMakeCommands/CMakeLists.txt create mode 100644 CMakeLua/Tests/LoadCommand/CMakeCommands/CVS/Entries create mode 100644 CMakeLua/Tests/LoadCommand/CMakeCommands/CVS/Repository create mode 100644 CMakeLua/Tests/LoadCommand/CMakeCommands/CVS/Root create mode 100644 CMakeLua/Tests/LoadCommand/CMakeCommands/CVS/Tag create mode 100644 CMakeLua/Tests/LoadCommand/CMakeCommands/CVS/Template create mode 100644 CMakeLua/Tests/LoadCommand/CMakeCommands/cmTestCommand.c create mode 100644 CMakeLua/Tests/LoadCommand/CMakeLists.txt create mode 100644 CMakeLua/Tests/LoadCommand/CVS/Entries create mode 100644 CMakeLua/Tests/LoadCommand/CVS/Repository create mode 100644 CMakeLua/Tests/LoadCommand/CVS/Root create mode 100644 CMakeLua/Tests/LoadCommand/CVS/Tag create mode 100644 CMakeLua/Tests/LoadCommand/CVS/Template create mode 100755 CMakeLua/Tests/LoadCommand/LoadedCommand.cxx.in create mode 100644 CMakeLua/Tests/LoadCommand/LoadedCommand.h.in create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeCommands/CMakeLists.txt create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeCommands/CVS/Entries create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeCommands/CVS/Repository create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeCommands/CVS/Root create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeCommands/CVS/Tag create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeCommands/CVS/Template create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeCommands/cmTestCommand.c create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CMakeLists.txt create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CVS/Entries create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CVS/Repository create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CVS/Root create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CVS/Tag create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/CVS/Template create mode 100755 CMakeLua/Tests/LoadCommandOneConfig/LoadedCommand.cxx.in create mode 100644 CMakeLua/Tests/LoadCommandOneConfig/LoadedCommand.h.in create mode 100644 CMakeLua/Tests/MacroTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/MacroTest/CVS/Entries create mode 100644 CMakeLua/Tests/MacroTest/CVS/Repository create mode 100644 CMakeLua/Tests/MacroTest/CVS/Root create mode 100644 CMakeLua/Tests/MacroTest/CVS/Tag create mode 100644 CMakeLua/Tests/MacroTest/CVS/Template create mode 100644 CMakeLua/Tests/MacroTest/macroTest.c create mode 100644 CMakeLua/Tests/MakeClean/CMakeLists.txt create mode 100644 CMakeLua/Tests/MakeClean/CVS/Entries create mode 100644 CMakeLua/Tests/MakeClean/CVS/Repository create mode 100644 CMakeLua/Tests/MakeClean/CVS/Root create mode 100644 CMakeLua/Tests/MakeClean/CVS/Tag create mode 100644 CMakeLua/Tests/MakeClean/CVS/Template create mode 100644 CMakeLua/Tests/MakeClean/ToClean/CMakeLists.txt create mode 100644 CMakeLua/Tests/MakeClean/ToClean/CVS/Entries create mode 100644 CMakeLua/Tests/MakeClean/ToClean/CVS/Repository create mode 100644 CMakeLua/Tests/MakeClean/ToClean/CVS/Root create mode 100644 CMakeLua/Tests/MakeClean/ToClean/CVS/Tag create mode 100644 CMakeLua/Tests/MakeClean/ToClean/CVS/Template create mode 100644 CMakeLua/Tests/MakeClean/ToClean/ToCleanFiles.cmake.in create mode 100644 CMakeLua/Tests/MakeClean/ToClean/toclean.cxx create mode 100644 CMakeLua/Tests/MakeClean/check_clean.c.in create mode 100644 CMakeLua/Tests/MathTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/MathTest/CVS/Entries create mode 100644 CMakeLua/Tests/MathTest/CVS/Repository create mode 100644 CMakeLua/Tests/MathTest/CVS/Root create mode 100644 CMakeLua/Tests/MathTest/CVS/Tag create mode 100644 CMakeLua/Tests/MathTest/CVS/Template create mode 100644 CMakeLua/Tests/MathTest/MathTestExec.cxx create mode 100644 CMakeLua/Tests/MathTest/MathTestTests.h.in create mode 100755 CMakeLua/Tests/NewlineArgs/CMakeLists.txt create mode 100644 CMakeLua/Tests/NewlineArgs/CVS/Entries create mode 100644 CMakeLua/Tests/NewlineArgs/CVS/Repository create mode 100644 CMakeLua/Tests/NewlineArgs/CVS/Root create mode 100644 CMakeLua/Tests/NewlineArgs/CVS/Tag create mode 100644 CMakeLua/Tests/NewlineArgs/CVS/Template create mode 100755 CMakeLua/Tests/NewlineArgs/cxxonly.cxx create mode 100755 CMakeLua/Tests/NewlineArgs/libcxx1.cxx create mode 100755 CMakeLua/Tests/NewlineArgs/libcxx1.h create mode 100755 CMakeLua/Tests/NewlineArgs/libcxx2.h.in create mode 100644 CMakeLua/Tests/ObjC++/CMakeLists.txt create mode 100644 CMakeLua/Tests/ObjC++/CVS/Entries create mode 100644 CMakeLua/Tests/ObjC++/CVS/Repository create mode 100644 CMakeLua/Tests/ObjC++/CVS/Root create mode 100644 CMakeLua/Tests/ObjC++/CVS/Tag create mode 100644 CMakeLua/Tests/ObjC++/CVS/Template create mode 100644 CMakeLua/Tests/ObjC++/objc++.mm create mode 100644 CMakeLua/Tests/OutOfBinary/CMakeLists.txt create mode 100644 CMakeLua/Tests/OutOfBinary/CVS/Entries create mode 100644 CMakeLua/Tests/OutOfBinary/CVS/Repository create mode 100644 CMakeLua/Tests/OutOfBinary/CVS/Root create mode 100644 CMakeLua/Tests/OutOfBinary/CVS/Tag create mode 100644 CMakeLua/Tests/OutOfBinary/CVS/Template create mode 100644 CMakeLua/Tests/OutOfBinary/outlib.c create mode 100755 CMakeLua/Tests/OutOfSource/CMakeLists.txt create mode 100644 CMakeLua/Tests/OutOfSource/CVS/Entries create mode 100644 CMakeLua/Tests/OutOfSource/CVS/Repository create mode 100644 CMakeLua/Tests/OutOfSource/CVS/Root create mode 100644 CMakeLua/Tests/OutOfSource/CVS/Tag create mode 100644 CMakeLua/Tests/OutOfSource/CVS/Template create mode 100755 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt create mode 100644 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/CVS/Entries create mode 100644 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/CVS/Repository create mode 100644 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/CVS/Root create mode 100644 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/CVS/Tag create mode 100644 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/CVS/Template create mode 100755 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/simple.cxx create mode 100755 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/simple.cxx.in create mode 100755 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/testlib.cxx create mode 100755 CMakeLua/Tests/OutOfSource/OutOfSourceSubdir/testlib.h create mode 100755 CMakeLua/Tests/OutOfSource/SubDir/CMakeLists.txt create mode 100644 CMakeLua/Tests/OutOfSource/SubDir/CVS/Entries create mode 100644 CMakeLua/Tests/OutOfSource/SubDir/CVS/Repository create mode 100644 CMakeLua/Tests/OutOfSource/SubDir/CVS/Root create mode 100644 CMakeLua/Tests/OutOfSource/SubDir/CVS/Tag create mode 100644 CMakeLua/Tests/OutOfSource/SubDir/CVS/Template create mode 100644 CMakeLua/Tests/OutOfSource/simple.cxx create mode 100755 CMakeLua/Tests/OutOfSource/testdp.h.in create mode 100644 CMakeLua/Tests/Plugin/CMakeLists.txt create mode 100644 CMakeLua/Tests/Plugin/CVS/Entries create mode 100644 CMakeLua/Tests/Plugin/CVS/Repository create mode 100644 CMakeLua/Tests/Plugin/CVS/Root create mode 100644 CMakeLua/Tests/Plugin/CVS/Tag create mode 100644 CMakeLua/Tests/Plugin/CVS/Template create mode 100644 CMakeLua/Tests/Plugin/include/CVS/Entries create mode 100644 CMakeLua/Tests/Plugin/include/CVS/Repository create mode 100644 CMakeLua/Tests/Plugin/include/CVS/Root create mode 100644 CMakeLua/Tests/Plugin/include/CVS/Tag create mode 100644 CMakeLua/Tests/Plugin/include/CVS/Template create mode 100644 CMakeLua/Tests/Plugin/include/example.h create mode 100644 CMakeLua/Tests/Plugin/src/CVS/Entries create mode 100644 CMakeLua/Tests/Plugin/src/CVS/Repository create mode 100644 CMakeLua/Tests/Plugin/src/CVS/Root create mode 100644 CMakeLua/Tests/Plugin/src/CVS/Tag create mode 100644 CMakeLua/Tests/Plugin/src/CVS/Template create mode 100644 CMakeLua/Tests/Plugin/src/example_exe.cxx create mode 100644 CMakeLua/Tests/Plugin/src/example_exe.h.in create mode 100644 CMakeLua/Tests/Plugin/src/example_mod_1.c create mode 100755 CMakeLua/Tests/PreOrder/CMakeLists.txt create mode 100644 CMakeLua/Tests/PreOrder/CVS/Entries create mode 100644 CMakeLua/Tests/PreOrder/CVS/Repository create mode 100644 CMakeLua/Tests/PreOrder/CVS/Root create mode 100644 CMakeLua/Tests/PreOrder/CVS/Tag create mode 100644 CMakeLua/Tests/PreOrder/CVS/Template create mode 100755 CMakeLua/Tests/PreOrder/Library/CMakeLists.txt create mode 100644 CMakeLua/Tests/PreOrder/Library/CVS/Entries create mode 100644 CMakeLua/Tests/PreOrder/Library/CVS/Repository create mode 100644 CMakeLua/Tests/PreOrder/Library/CVS/Root create mode 100644 CMakeLua/Tests/PreOrder/Library/CVS/Tag create mode 100644 CMakeLua/Tests/PreOrder/Library/CVS/Template create mode 100644 CMakeLua/Tests/PreOrder/Library/simpleLib.cxx create mode 100755 CMakeLua/Tests/PreOrder/simple.cxx create mode 100644 CMakeLua/Tests/PrecompiledHeader/CMakeLists.txt create mode 100644 CMakeLua/Tests/PrecompiledHeader/CVS/Entries create mode 100644 CMakeLua/Tests/PrecompiledHeader/CVS/Repository create mode 100644 CMakeLua/Tests/PrecompiledHeader/CVS/Root create mode 100644 CMakeLua/Tests/PrecompiledHeader/CVS/Tag create mode 100644 CMakeLua/Tests/PrecompiledHeader/CVS/Template create mode 100644 CMakeLua/Tests/PrecompiledHeader/foo1.c create mode 100644 CMakeLua/Tests/PrecompiledHeader/foo2.c create mode 100644 CMakeLua/Tests/PrecompiledHeader/foo_precompile.c create mode 100644 CMakeLua/Tests/PrecompiledHeader/include/CVS/Entries create mode 100644 CMakeLua/Tests/PrecompiledHeader/include/CVS/Repository create mode 100644 CMakeLua/Tests/PrecompiledHeader/include/CVS/Root create mode 100644 CMakeLua/Tests/PrecompiledHeader/include/CVS/Tag create mode 100644 CMakeLua/Tests/PrecompiledHeader/include/CVS/Template create mode 100644 CMakeLua/Tests/PrecompiledHeader/include/foo.h create mode 100644 CMakeLua/Tests/PrecompiledHeader/include/foo_precompiled.h create mode 100644 CMakeLua/Tests/Preprocess/CMakeLists.txt create mode 100644 CMakeLua/Tests/Preprocess/CVS/Entries create mode 100644 CMakeLua/Tests/Preprocess/CVS/Repository create mode 100644 CMakeLua/Tests/Preprocess/CVS/Root create mode 100644 CMakeLua/Tests/Preprocess/file_def.h create mode 100644 CMakeLua/Tests/Preprocess/preprocess.c create mode 100644 CMakeLua/Tests/Preprocess/preprocess.cxx create mode 100644 CMakeLua/Tests/Preprocess/preprocess.h.in create mode 100644 CMakeLua/Tests/Preprocess/preprocess_vs6.cxx create mode 100644 CMakeLua/Tests/Preprocess/target_def.h create mode 100755 CMakeLua/Tests/Properties/CMakeLists.txt create mode 100644 CMakeLua/Tests/Properties/CVS/Entries create mode 100644 CMakeLua/Tests/Properties/CVS/Repository create mode 100644 CMakeLua/Tests/Properties/CVS/Root create mode 100644 CMakeLua/Tests/Properties/CVS/Tag create mode 100644 CMakeLua/Tests/Properties/CVS/Template create mode 100644 CMakeLua/Tests/Properties/SubDir/CVS/Entries create mode 100644 CMakeLua/Tests/Properties/SubDir/CVS/Repository create mode 100644 CMakeLua/Tests/Properties/SubDir/CVS/Root create mode 100644 CMakeLua/Tests/Properties/SubDir/CVS/Tag create mode 100644 CMakeLua/Tests/Properties/SubDir/CVS/Template create mode 100755 CMakeLua/Tests/Properties/SubDir/properties3.cxx create mode 100755 CMakeLua/Tests/Properties/properties.h.in create mode 100755 CMakeLua/Tests/Properties/properties2.h create mode 100755 CMakeLua/Tests/ReturnTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/ReturnTest/CVS/Entries create mode 100644 CMakeLua/Tests/ReturnTest/CVS/Repository create mode 100644 CMakeLua/Tests/ReturnTest/CVS/Root create mode 100755 CMakeLua/Tests/ReturnTest/returnTest.c create mode 100755 CMakeLua/Tests/ReturnTest/subdir/CMakeLists.txt create mode 100644 CMakeLua/Tests/ReturnTest/subdir/CVS/Entries create mode 100644 CMakeLua/Tests/ReturnTest/subdir/CVS/Repository create mode 100644 CMakeLua/Tests/ReturnTest/subdir/CVS/Root create mode 100644 CMakeLua/Tests/RuntimePath/CMakeLists.txt create mode 100644 CMakeLua/Tests/RuntimePath/CVS/Entries create mode 100644 CMakeLua/Tests/RuntimePath/CVS/Repository create mode 100644 CMakeLua/Tests/RuntimePath/CVS/Root create mode 100644 CMakeLua/Tests/RuntimePath/bar1.c create mode 100644 CMakeLua/Tests/RuntimePath/bar2.c create mode 100644 CMakeLua/Tests/RuntimePath/foo1.c create mode 100644 CMakeLua/Tests/RuntimePath/foo2.c create mode 100644 CMakeLua/Tests/RuntimePath/main.c create mode 100755 CMakeLua/Tests/SameName/CMakeLists.txt create mode 100644 CMakeLua/Tests/SameName/CVS/Entries create mode 100644 CMakeLua/Tests/SameName/CVS/Repository create mode 100644 CMakeLua/Tests/SameName/CVS/Root create mode 100644 CMakeLua/Tests/SameName/CVS/Tag create mode 100644 CMakeLua/Tests/SameName/CVS/Template create mode 100755 CMakeLua/Tests/SameName/Exe1/CMakeLists.txt create mode 100644 CMakeLua/Tests/SameName/Exe1/CVS/Entries create mode 100644 CMakeLua/Tests/SameName/Exe1/CVS/Repository create mode 100644 CMakeLua/Tests/SameName/Exe1/CVS/Root create mode 100644 CMakeLua/Tests/SameName/Exe1/CVS/Tag create mode 100644 CMakeLua/Tests/SameName/Exe1/CVS/Template create mode 100755 CMakeLua/Tests/SameName/Exe1/conly.c create mode 100755 CMakeLua/Tests/SameName/Lib1/CMakeLists.txt create mode 100644 CMakeLua/Tests/SameName/Lib1/CVS/Entries create mode 100644 CMakeLua/Tests/SameName/Lib1/CVS/Repository create mode 100644 CMakeLua/Tests/SameName/Lib1/CVS/Root create mode 100644 CMakeLua/Tests/SameName/Lib1/CVS/Tag create mode 100644 CMakeLua/Tests/SameName/Lib1/CVS/Template create mode 100644 CMakeLua/Tests/SameName/Lib1/libc1.c create mode 100644 CMakeLua/Tests/SameName/Lib1/libc1.h create mode 100755 CMakeLua/Tests/SetLang/CMakeLists.txt create mode 100644 CMakeLua/Tests/SetLang/CVS/Entries create mode 100644 CMakeLua/Tests/SetLang/CVS/Repository create mode 100644 CMakeLua/Tests/SetLang/CVS/Root create mode 100644 CMakeLua/Tests/SetLang/CVS/Tag create mode 100644 CMakeLua/Tests/SetLang/CVS/Template create mode 100755 CMakeLua/Tests/SetLang/bar.c create mode 100755 CMakeLua/Tests/SetLang/foo.c create mode 100644 CMakeLua/Tests/Simple/CMakeLists.txt create mode 100644 CMakeLua/Tests/Simple/CVS/Entries create mode 100644 CMakeLua/Tests/Simple/CVS/Repository create mode 100644 CMakeLua/Tests/Simple/CVS/Root create mode 100644 CMakeLua/Tests/Simple/CVS/Tag create mode 100644 CMakeLua/Tests/Simple/CVS/Template create mode 100644 CMakeLua/Tests/Simple/simple.cxx create mode 100644 CMakeLua/Tests/Simple/simpleCLib.c create mode 100644 CMakeLua/Tests/Simple/simpleLib.cxx create mode 100755 CMakeLua/Tests/Simple/simpleWe.cpp create mode 100644 CMakeLua/Tests/SimpleCOnly/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleCOnly/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleCOnly/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleCOnly/CVS/Root create mode 100644 CMakeLua/Tests/SimpleCOnly/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleCOnly/CVS/Template create mode 100644 CMakeLua/Tests/SimpleCOnly/bar.c create mode 100644 CMakeLua/Tests/SimpleCOnly/foo.c create mode 100644 CMakeLua/Tests/SimpleCOnly/main.c create mode 100644 CMakeLua/Tests/SimpleExclude/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleExclude/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleExclude/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleExclude/CVS/Root create mode 100644 CMakeLua/Tests/SimpleExclude/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleExclude/CVS/Template create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/CVS/Root create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/CVS/Template create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Root create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/CVS/Template create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/t1.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/t2.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/t3.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/t4.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirA/t5.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Root create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/CVS/Template create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/t6.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirC/dirB/t7.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/CVS/Root create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/CVS/Template create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/t8.c create mode 100644 CMakeLua/Tests/SimpleExclude/dirD/t9.c create mode 100644 CMakeLua/Tests/SimpleExclude/run.cmake.in create mode 100644 CMakeLua/Tests/SimpleInstall/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleInstall/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleInstall/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleInstall/CVS/Root create mode 100644 CMakeLua/Tests/SimpleInstall/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleInstall/CVS/Template create mode 100644 CMakeLua/Tests/SimpleInstall/InstallScript1.cmake create mode 100644 CMakeLua/Tests/SimpleInstall/InstallScript2.cmake create mode 100644 CMakeLua/Tests/SimpleInstall/InstallScript3.cmake create mode 100644 CMakeLua/Tests/SimpleInstall/InstallScript4.cmake create mode 100644 CMakeLua/Tests/SimpleInstall/PackageScript.cmake create mode 100644 CMakeLua/Tests/SimpleInstall/PostInstall.cmake create mode 100644 CMakeLua/Tests/SimpleInstall/PreInstall.cmake create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/CVS/Root create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/CVS/Template create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/TSD.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/TSD.h create mode 100644 CMakeLua/Tests/SimpleInstall/TestSubDir/TSD_utils.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/foo.c create mode 100644 CMakeLua/Tests/SimpleInstall/foo.h create mode 100644 CMakeLua/Tests/SimpleInstall/inst.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/inst2.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/lib1.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/lib1.h create mode 100644 CMakeLua/Tests/SimpleInstall/lib2.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/lib2.h create mode 100644 CMakeLua/Tests/SimpleInstall/lib3.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/lib3.h create mode 100644 CMakeLua/Tests/SimpleInstall/lib4.cxx create mode 100644 CMakeLua/Tests/SimpleInstall/lib4.h create mode 100644 CMakeLua/Tests/SimpleInstall/scripts/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleInstall/scripts/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleInstall/scripts/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleInstall/scripts/CVS/Root create mode 100644 CMakeLua/Tests/SimpleInstall/scripts/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleInstall/scripts/CVS/Template create mode 100755 CMakeLua/Tests/SimpleInstall/scripts/sample_script create mode 100755 CMakeLua/Tests/SimpleInstall/scripts/sample_script.bat create mode 100644 CMakeLua/Tests/SimpleInstallS2/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleInstallS2/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleInstallS2/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleInstallS2/CVS/Root create mode 100644 CMakeLua/Tests/SimpleInstallS2/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleInstallS2/CVS/Template create mode 100644 CMakeLua/Tests/SimpleInstallS2/InstallScript1.cmake create mode 100644 CMakeLua/Tests/SimpleInstallS2/InstallScript2.cmake create mode 100644 CMakeLua/Tests/SimpleInstallS2/InstallScript3.cmake create mode 100644 CMakeLua/Tests/SimpleInstallS2/InstallScript4.cmake create mode 100644 CMakeLua/Tests/SimpleInstallS2/PackageScript.cmake create mode 100644 CMakeLua/Tests/SimpleInstallS2/PostInstall.cmake create mode 100644 CMakeLua/Tests/SimpleInstallS2/PreInstall.cmake create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/CVS/Root create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/CVS/Template create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/TSD.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/TSD.h create mode 100644 CMakeLua/Tests/SimpleInstallS2/TestSubDir/TSD_utils.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/foo.c create mode 100644 CMakeLua/Tests/SimpleInstallS2/foo.h create mode 100644 CMakeLua/Tests/SimpleInstallS2/inst.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/inst2.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib1.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib1.h create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib2.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib2.h create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib3.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib3.h create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib4.cxx create mode 100644 CMakeLua/Tests/SimpleInstallS2/lib4.h create mode 100644 CMakeLua/Tests/SimpleInstallS2/scripts/CMakeLists.txt create mode 100644 CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Entries create mode 100644 CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Repository create mode 100644 CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Root create mode 100644 CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Tag create mode 100644 CMakeLua/Tests/SimpleInstallS2/scripts/CVS/Template create mode 100755 CMakeLua/Tests/SimpleInstallS2/scripts/sample_script create mode 100755 CMakeLua/Tests/SimpleInstallS2/scripts/sample_script.bat create mode 100644 CMakeLua/Tests/SourceGroups/CMakeLists.txt create mode 100644 CMakeLua/Tests/SourceGroups/CVS/Entries create mode 100644 CMakeLua/Tests/SourceGroups/CVS/Repository create mode 100644 CMakeLua/Tests/SourceGroups/CVS/Root create mode 100644 CMakeLua/Tests/SourceGroups/CVS/Tag create mode 100644 CMakeLua/Tests/SourceGroups/CVS/Template create mode 100644 CMakeLua/Tests/SourceGroups/bar.c create mode 100644 CMakeLua/Tests/SourceGroups/baz.c create mode 100644 CMakeLua/Tests/SourceGroups/foo.c create mode 100644 CMakeLua/Tests/SourceGroups/main.c create mode 100644 CMakeLua/Tests/SourceGroups/sub1/CVS/Entries create mode 100644 CMakeLua/Tests/SourceGroups/sub1/CVS/Repository create mode 100644 CMakeLua/Tests/SourceGroups/sub1/CVS/Root create mode 100644 CMakeLua/Tests/SourceGroups/sub1/CVS/Tag create mode 100644 CMakeLua/Tests/SourceGroups/sub1/CVS/Template create mode 100644 CMakeLua/Tests/SourceGroups/sub1/foo.c create mode 100644 CMakeLua/Tests/SourceGroups/sub1/foobar.c create mode 100644 CMakeLua/Tests/StringFileTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/StringFileTest/CVS/Entries create mode 100644 CMakeLua/Tests/StringFileTest/CVS/Repository create mode 100644 CMakeLua/Tests/StringFileTest/CVS/Root create mode 100644 CMakeLua/Tests/StringFileTest/CVS/Tag create mode 100644 CMakeLua/Tests/StringFileTest/CVS/Template create mode 100644 CMakeLua/Tests/StringFileTest/InputFile.h.in create mode 100644 CMakeLua/Tests/StringFileTest/StringFile.cxx create mode 100644 CMakeLua/Tests/StringFileTest/main.ihx create mode 100644 CMakeLua/Tests/StringFileTest/main.srec create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Entries create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Repository create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Root create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Tag create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/CVS/Template create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/pair+int.int.c create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/pair_int.int.c create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/secondone.c create mode 100644 CMakeLua/Tests/SubDir/AnotherSubdir/testfromsubdir.c create mode 100755 CMakeLua/Tests/SubDir/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDir/CVS/Entries create mode 100644 CMakeLua/Tests/SubDir/CVS/Repository create mode 100644 CMakeLua/Tests/SubDir/CVS/Root create mode 100644 CMakeLua/Tests/SubDir/CVS/Tag create mode 100644 CMakeLua/Tests/SubDir/CVS/Template create mode 100755 CMakeLua/Tests/SubDir/Examples/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDir/Examples/CVS/Entries create mode 100644 CMakeLua/Tests/SubDir/Examples/CVS/Repository create mode 100644 CMakeLua/Tests/SubDir/Examples/CVS/Root create mode 100644 CMakeLua/Tests/SubDir/Examples/CVS/Tag create mode 100644 CMakeLua/Tests/SubDir/Examples/CVS/Template create mode 100755 CMakeLua/Tests/SubDir/Examples/example1/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDir/Examples/example1/CVS/Entries create mode 100644 CMakeLua/Tests/SubDir/Examples/example1/CVS/Repository create mode 100644 CMakeLua/Tests/SubDir/Examples/example1/CVS/Root create mode 100644 CMakeLua/Tests/SubDir/Examples/example1/CVS/Tag create mode 100644 CMakeLua/Tests/SubDir/Examples/example1/CVS/Template create mode 100755 CMakeLua/Tests/SubDir/Examples/example1/example1.cxx create mode 100755 CMakeLua/Tests/SubDir/Examples/example2/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDir/Examples/example2/CVS/Entries create mode 100644 CMakeLua/Tests/SubDir/Examples/example2/CVS/Repository create mode 100644 CMakeLua/Tests/SubDir/Examples/example2/CVS/Root create mode 100644 CMakeLua/Tests/SubDir/Examples/example2/CVS/Tag create mode 100644 CMakeLua/Tests/SubDir/Examples/example2/CVS/Template create mode 100755 CMakeLua/Tests/SubDir/Examples/example2/example2.cxx create mode 100755 CMakeLua/Tests/SubDir/Executable/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDir/Executable/CVS/Entries create mode 100644 CMakeLua/Tests/SubDir/Executable/CVS/Repository create mode 100644 CMakeLua/Tests/SubDir/Executable/CVS/Root create mode 100644 CMakeLua/Tests/SubDir/Executable/CVS/Tag create mode 100644 CMakeLua/Tests/SubDir/Executable/CVS/Template create mode 100755 CMakeLua/Tests/SubDir/Executable/test.cxx create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Entries create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Repository create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Root create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Tag create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/CVS/Template create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/pair+int.int1.c create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/pair_int.int1.c create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/pair_p_int.int1.c create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/testfromauxsubdir.c create mode 100644 CMakeLua/Tests/SubDir/ThirdSubDir/thirdone.c create mode 100644 CMakeLua/Tests/SubDir/vcl_algorithm+vcl_pair+double.foo.c create mode 100644 CMakeLua/Tests/SubDir/vcl_algorithm_vcl_pair_double.foo.c create mode 100644 CMakeLua/Tests/SubDirSpaces/Another Subdir/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/Another Subdir/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/Another Subdir/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/Another Subdir/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/Another Subdir/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Another Subdir/pair+int.int.c create mode 100755 CMakeLua/Tests/SubDirSpaces/Another Subdir/pair_int.int.c create mode 100755 CMakeLua/Tests/SubDirSpaces/Another Subdir/secondone.c create mode 100755 CMakeLua/Tests/SubDirSpaces/Another Subdir/testfromsubdir.c create mode 100755 CMakeLua/Tests/SubDirSpaces/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDirSpaces/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Executable Sources/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable Sources/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable Sources/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable Sources/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable Sources/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable Sources/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Executable Sources/test.cxx create mode 100755 CMakeLua/Tests/SubDirSpaces/Executable/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/Executable/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Executable/test.cxx create mode 100755 CMakeLua/Tests/SubDirSpaces/Some Examples/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Some Examples/example1/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example1/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example1/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example1/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example1/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example1/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Some Examples/example1/example1.cxx create mode 100755 CMakeLua/Tests/SubDirSpaces/Some Examples/example2/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example2/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example2/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example2/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example2/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/Some Examples/example2/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Some Examples/example2/example2.cxx create mode 100755 CMakeLua/Tests/SubDirSpaces/Some(x86) Sources/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubDirSpaces/Some(x86) Sources/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/Some(x86) Sources/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/Some(x86) Sources/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/Some(x86) Sources/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/Some(x86) Sources/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/Some(x86) Sources/test.c create mode 100644 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/CVS/Entries create mode 100644 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/CVS/Repository create mode 100644 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/CVS/Root create mode 100644 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/CVS/Tag create mode 100644 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/CVS/Template create mode 100755 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/pair+int.int1.c create mode 100755 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/pair_int.int1.c create mode 100755 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/pair_p_int.int1.c create mode 100755 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/testfromauxsubdir.c create mode 100755 CMakeLua/Tests/SubDirSpaces/ThirdSubDir/thirdone.c create mode 100755 CMakeLua/Tests/SubDirSpaces/vcl_algorithm+vcl_pair+double.foo.c create mode 100755 CMakeLua/Tests/SubDirSpaces/vcl_algorithm_vcl_pair_double.foo.c create mode 100755 CMakeLua/Tests/SubProject/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubProject/CVS/Entries create mode 100644 CMakeLua/Tests/SubProject/CVS/Repository create mode 100644 CMakeLua/Tests/SubProject/CVS/Root create mode 100755 CMakeLua/Tests/SubProject/bar.cxx create mode 100755 CMakeLua/Tests/SubProject/car.cxx create mode 100755 CMakeLua/Tests/SubProject/foo/CMakeLists.txt create mode 100644 CMakeLua/Tests/SubProject/foo/CVS/Entries create mode 100644 CMakeLua/Tests/SubProject/foo/CVS/Repository create mode 100644 CMakeLua/Tests/SubProject/foo/CVS/Root create mode 100755 CMakeLua/Tests/SubProject/foo/foo.cxx create mode 100644 CMakeLua/Tests/SwigTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/SwigTest/CVS/Entries create mode 100644 CMakeLua/Tests/SwigTest/CVS/Repository create mode 100644 CMakeLua/Tests/SwigTest/CVS/Root create mode 100644 CMakeLua/Tests/SwigTest/CVS/Tag create mode 100644 CMakeLua/Tests/SwigTest/CVS/Template create mode 100644 CMakeLua/Tests/SwigTest/example.cxx create mode 100644 CMakeLua/Tests/SwigTest/example.h create mode 100644 CMakeLua/Tests/SwigTest/example.i create mode 100644 CMakeLua/Tests/SwigTest/runme.php4 create mode 100755 CMakeLua/Tests/SwigTest/runme.pike create mode 100644 CMakeLua/Tests/SwigTest/runme.pl create mode 100644 CMakeLua/Tests/SwigTest/runme.py create mode 100644 CMakeLua/Tests/SwigTest/runme.rb create mode 100644 CMakeLua/Tests/SwigTest/runme.tcl create mode 100644 CMakeLua/Tests/SwigTest/runme2.tcl create mode 100644 CMakeLua/Tests/SystemInformation/CMakeLists.txt create mode 100644 CMakeLua/Tests/SystemInformation/CVS/Entries create mode 100644 CMakeLua/Tests/SystemInformation/CVS/Repository create mode 100644 CMakeLua/Tests/SystemInformation/CVS/Root create mode 100644 CMakeLua/Tests/SystemInformation/CVS/Tag create mode 100644 CMakeLua/Tests/SystemInformation/CVS/Template create mode 100644 CMakeLua/Tests/SystemInformation/DumpInformation.cxx create mode 100644 CMakeLua/Tests/SystemInformation/DumpInformation.h.in create mode 100644 CMakeLua/Tests/SystemInformation/SystemInformation.in create mode 100644 CMakeLua/Tests/TarTest/CMakeLists.txt create mode 100644 CMakeLua/Tests/TarTest/CVS/Entries create mode 100644 CMakeLua/Tests/TarTest/CVS/Repository create mode 100644 CMakeLua/Tests/TarTest/CVS/Root create mode 100644 CMakeLua/Tests/TarTest/CVS/Tag create mode 100644 CMakeLua/Tests/TarTest/CVS/Template create mode 100644 CMakeLua/Tests/TarTest/TestTarExec.cxx create mode 100755 CMakeLua/Tests/TargetName/CMakeLists.txt create mode 100644 CMakeLua/Tests/TargetName/CVS/Entries create mode 100644 CMakeLua/Tests/TargetName/CVS/Repository create mode 100644 CMakeLua/Tests/TargetName/CVS/Root create mode 100644 CMakeLua/Tests/TargetName/CVS/Tag create mode 100644 CMakeLua/Tests/TargetName/CVS/Template create mode 100755 CMakeLua/Tests/TargetName/executables/CMakeLists.txt create mode 100644 CMakeLua/Tests/TargetName/executables/CVS/Entries create mode 100644 CMakeLua/Tests/TargetName/executables/CVS/Repository create mode 100644 CMakeLua/Tests/TargetName/executables/CVS/Root create mode 100644 CMakeLua/Tests/TargetName/executables/CVS/Tag create mode 100644 CMakeLua/Tests/TargetName/executables/CVS/Template create mode 100755 CMakeLua/Tests/TargetName/executables/hello_world.c create mode 100755 CMakeLua/Tests/TargetName/scripts/CMakeLists.txt create mode 100644 CMakeLua/Tests/TargetName/scripts/CVS/Entries create mode 100644 CMakeLua/Tests/TargetName/scripts/CVS/Repository create mode 100644 CMakeLua/Tests/TargetName/scripts/CVS/Root create mode 100644 CMakeLua/Tests/TargetName/scripts/CVS/Tag create mode 100644 CMakeLua/Tests/TargetName/scripts/CVS/Template create mode 100755 CMakeLua/Tests/TargetName/scripts/hello_world create mode 100644 CMakeLua/Tests/TestDriver/CMakeLists.txt create mode 100644 CMakeLua/Tests/TestDriver/CVS/Entries create mode 100644 CMakeLua/Tests/TestDriver/CVS/Repository create mode 100644 CMakeLua/Tests/TestDriver/CVS/Root create mode 100644 CMakeLua/Tests/TestDriver/CVS/Tag create mode 100644 CMakeLua/Tests/TestDriver/CVS/Template create mode 100644 CMakeLua/Tests/TestDriver/subdir/CVS/Entries create mode 100644 CMakeLua/Tests/TestDriver/subdir/CVS/Repository create mode 100644 CMakeLua/Tests/TestDriver/subdir/CVS/Root create mode 100644 CMakeLua/Tests/TestDriver/subdir/CVS/Tag create mode 100644 CMakeLua/Tests/TestDriver/subdir/CVS/Template create mode 100644 CMakeLua/Tests/TestDriver/subdir/test3.cxx create mode 100644 CMakeLua/Tests/TestDriver/test1.cxx create mode 100644 CMakeLua/Tests/TestDriver/test2.cxx create mode 100644 CMakeLua/Tests/TestDriver/testArgs.h create mode 100644 CMakeLua/Tests/TestDriver/testExtraStuff.cxx create mode 100644 CMakeLua/Tests/TestDriver/testExtraStuff2.cxx create mode 100644 CMakeLua/Tests/TestDriver/testExtraStuff3.cxx create mode 100644 CMakeLua/Tests/TestInstall.sh.in create mode 100644 CMakeLua/Tests/Testing/CMakeLists.txt create mode 100644 CMakeLua/Tests/Testing/CVS/Entries create mode 100644 CMakeLua/Tests/Testing/CVS/Repository create mode 100644 CMakeLua/Tests/Testing/CVS/Root create mode 100644 CMakeLua/Tests/Testing/CVS/Tag create mode 100644 CMakeLua/Tests/Testing/CVS/Template create mode 100644 CMakeLua/Tests/Testing/DartConfig.cmake create mode 100644 CMakeLua/Tests/Testing/Sub/CVS/Entries create mode 100644 CMakeLua/Tests/Testing/Sub/CVS/Repository create mode 100644 CMakeLua/Tests/Testing/Sub/CVS/Root create mode 100644 CMakeLua/Tests/Testing/Sub/CVS/Tag create mode 100644 CMakeLua/Tests/Testing/Sub/CVS/Template create mode 100644 CMakeLua/Tests/Testing/Sub/Sub2/CMakeLists.txt create mode 100644 CMakeLua/Tests/Testing/Sub/Sub2/CVS/Entries create mode 100644 CMakeLua/Tests/Testing/Sub/Sub2/CVS/Repository create mode 100644 CMakeLua/Tests/Testing/Sub/Sub2/CVS/Root create mode 100644 CMakeLua/Tests/Testing/Sub/Sub2/CVS/Tag create mode 100644 CMakeLua/Tests/Testing/Sub/Sub2/CVS/Template create mode 100644 CMakeLua/Tests/Testing/Sub/Sub2/testing2.cxx create mode 100644 CMakeLua/Tests/Testing/testing.cxx create mode 100755 CMakeLua/Tests/TryCompile/CMakeLists.txt create mode 100644 CMakeLua/Tests/TryCompile/CVS/Entries create mode 100644 CMakeLua/Tests/TryCompile/CVS/Repository create mode 100644 CMakeLua/Tests/TryCompile/CVS/Root create mode 100644 CMakeLua/Tests/TryCompile/CVS/Tag create mode 100644 CMakeLua/Tests/TryCompile/CVS/Template create mode 100755 CMakeLua/Tests/TryCompile/exit_success.c create mode 100755 CMakeLua/Tests/TryCompile/exit_with_error.c create mode 100755 CMakeLua/Tests/TryCompile/fail.c create mode 100755 CMakeLua/Tests/TryCompile/pass.c create mode 100644 CMakeLua/Tests/Tutorial/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step1/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step1/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step1/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step1/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step1/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step1/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step1/TutorialConfig.h.in create mode 100755 CMakeLua/Tests/Tutorial/Step1/tutorial.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step2/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step2/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step2/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step2/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step2/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step2/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step2/MathFunctions/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step2/MathFunctions/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step2/MathFunctions/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step2/MathFunctions/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step2/MathFunctions/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step2/MathFunctions/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step2/MathFunctions/MathFunctions.h create mode 100755 CMakeLua/Tests/Tutorial/Step2/MathFunctions/mysqrt.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step2/TutorialConfig.h.in create mode 100755 CMakeLua/Tests/Tutorial/Step2/tutorial.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step3/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step3/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step3/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step3/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step3/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step3/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step3/MathFunctions/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step3/MathFunctions/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step3/MathFunctions/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step3/MathFunctions/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step3/MathFunctions/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step3/MathFunctions/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step3/MathFunctions/MathFunctions.h create mode 100755 CMakeLua/Tests/Tutorial/Step3/MathFunctions/mysqrt.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step3/TutorialConfig.h.in create mode 100755 CMakeLua/Tests/Tutorial/Step3/tutorial.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step4/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step4/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step4/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step4/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step4/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step4/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step4/MathFunctions/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step4/MathFunctions/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step4/MathFunctions/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step4/MathFunctions/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step4/MathFunctions/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step4/MathFunctions/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step4/MathFunctions/MathFunctions.h create mode 100755 CMakeLua/Tests/Tutorial/Step4/MathFunctions/mysqrt.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step4/TutorialConfig.h.in create mode 100755 CMakeLua/Tests/Tutorial/Step4/tutorial.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step5/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step5/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step5/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step5/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step5/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step5/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step5/MathFunctions/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step5/MathFunctions/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step5/MathFunctions/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step5/MathFunctions/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step5/MathFunctions/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step5/MathFunctions/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step5/MathFunctions/MakeTable.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step5/MathFunctions/MathFunctions.h create mode 100755 CMakeLua/Tests/Tutorial/Step5/MathFunctions/mysqrt.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step5/TutorialConfig.h.in create mode 100755 CMakeLua/Tests/Tutorial/Step5/tutorial.cxx create mode 100644 CMakeLua/Tests/Tutorial/Step6/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step6/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step6/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step6/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step6/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step6/CVS/Template create mode 100644 CMakeLua/Tests/Tutorial/Step6/License.txt create mode 100755 CMakeLua/Tests/Tutorial/Step6/MathFunctions/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step6/MathFunctions/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step6/MathFunctions/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step6/MathFunctions/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step6/MathFunctions/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step6/MathFunctions/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step6/MathFunctions/MakeTable.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step6/MathFunctions/MathFunctions.h create mode 100755 CMakeLua/Tests/Tutorial/Step6/MathFunctions/mysqrt.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step6/TutorialConfig.h.in create mode 100755 CMakeLua/Tests/Tutorial/Step6/tutorial.cxx create mode 100644 CMakeLua/Tests/Tutorial/Step7/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step7/CTestConfig.cmake create mode 100644 CMakeLua/Tests/Tutorial/Step7/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step7/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step7/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step7/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step7/CVS/Template create mode 100644 CMakeLua/Tests/Tutorial/Step7/License.txt create mode 100755 CMakeLua/Tests/Tutorial/Step7/MathFunctions/CMakeLists.txt create mode 100644 CMakeLua/Tests/Tutorial/Step7/MathFunctions/CVS/Entries create mode 100644 CMakeLua/Tests/Tutorial/Step7/MathFunctions/CVS/Repository create mode 100644 CMakeLua/Tests/Tutorial/Step7/MathFunctions/CVS/Root create mode 100644 CMakeLua/Tests/Tutorial/Step7/MathFunctions/CVS/Tag create mode 100644 CMakeLua/Tests/Tutorial/Step7/MathFunctions/CVS/Template create mode 100755 CMakeLua/Tests/Tutorial/Step7/MathFunctions/MakeTable.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step7/MathFunctions/MathFunctions.h create mode 100755 CMakeLua/Tests/Tutorial/Step7/MathFunctions/mysqrt.cxx create mode 100755 CMakeLua/Tests/Tutorial/Step7/TutorialConfig.h.in create mode 100644 CMakeLua/Tests/Tutorial/Step7/build1.cmake create mode 100644 CMakeLua/Tests/Tutorial/Step7/build2.cmake create mode 100755 CMakeLua/Tests/Tutorial/Step7/tutorial.cxx create mode 100644 CMakeLua/Tests/UseWX/CMakeLists.txt create mode 100644 CMakeLua/Tests/UseWX/CVS/Entries create mode 100644 CMakeLua/Tests/UseWX/CVS/Repository create mode 100644 CMakeLua/Tests/UseWX/CVS/Root create mode 100644 CMakeLua/Tests/UseWX/CVS/Tag create mode 100644 CMakeLua/Tests/UseWX/CVS/Template create mode 100644 CMakeLua/Tests/UseWX/WX.cxx create mode 100755 CMakeLua/Tests/VSExternalInclude/CMakeLists.txt create mode 100644 CMakeLua/Tests/VSExternalInclude/CVS/Entries create mode 100644 CMakeLua/Tests/VSExternalInclude/CVS/Repository create mode 100644 CMakeLua/Tests/VSExternalInclude/CVS/Root create mode 100644 CMakeLua/Tests/VSExternalInclude/CVS/Tag create mode 100644 CMakeLua/Tests/VSExternalInclude/CVS/Template create mode 100755 CMakeLua/Tests/VSExternalInclude/Lib1/CMakeLists.txt create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Entries create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Repository create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Root create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Tag create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib1/CVS/Template create mode 100755 CMakeLua/Tests/VSExternalInclude/Lib1/lib1.cpp create mode 100755 CMakeLua/Tests/VSExternalInclude/Lib1/lib1.h create mode 100755 CMakeLua/Tests/VSExternalInclude/Lib2/CMakeLists.txt create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Entries create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Repository create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Root create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Tag create mode 100644 CMakeLua/Tests/VSExternalInclude/Lib2/CVS/Template create mode 100755 CMakeLua/Tests/VSExternalInclude/Lib2/lib2.cpp create mode 100755 CMakeLua/Tests/VSExternalInclude/Lib2/lib2.h create mode 100755 CMakeLua/Tests/VSExternalInclude/main.cpp create mode 100644 CMakeLua/Tests/Wrapping/CMakeLists.txt create mode 100644 CMakeLua/Tests/Wrapping/CVS/Entries create mode 100644 CMakeLua/Tests/Wrapping/CVS/Repository create mode 100644 CMakeLua/Tests/Wrapping/CVS/Root create mode 100644 CMakeLua/Tests/Wrapping/CVS/Tag create mode 100644 CMakeLua/Tests/Wrapping/CVS/Template create mode 100644 CMakeLua/Tests/Wrapping/Wrap.c create mode 100644 CMakeLua/Tests/Wrapping/dummy create mode 100755 CMakeLua/Tests/Wrapping/fakefluid.cxx create mode 100644 CMakeLua/Tests/Wrapping/fltk1.fl create mode 100644 CMakeLua/Tests/Wrapping/foo.ui.in create mode 100644 CMakeLua/Tests/Wrapping/hints create mode 100644 CMakeLua/Tests/Wrapping/itkWrapperConfig.cxx create mode 100755 CMakeLua/Tests/Wrapping/qtnoqtmain.cxx create mode 100644 CMakeLua/Tests/Wrapping/qtwrapping.ui create mode 100644 CMakeLua/Tests/Wrapping/qtwrappingmain.cxx create mode 100644 CMakeLua/Tests/Wrapping/vtkExcluded.cxx create mode 100644 CMakeLua/Tests/Wrapping/vtkExcluded.h create mode 100644 CMakeLua/Tests/Wrapping/vtkIncluded.cxx create mode 100644 CMakeLua/Tests/Wrapping/vtkIncluded.h create mode 100644 CMakeLua/Tests/Wrapping/vtkTestMoc.h create mode 100644 CMakeLua/Tests/Wrapping/wrapping.cxx create mode 100644 CMakeLua/Tests/X11/CMakeLists.txt create mode 100644 CMakeLua/Tests/X11/CVS/Entries create mode 100644 CMakeLua/Tests/X11/CVS/Repository create mode 100644 CMakeLua/Tests/X11/CVS/Root create mode 100644 CMakeLua/Tests/X11/CVS/Tag create mode 100644 CMakeLua/Tests/X11/CVS/Template create mode 100644 CMakeLua/Tests/X11/X11.c create mode 100644 CMakeLua/Utilities/.NoDartCoverage create mode 100644 CMakeLua/Utilities/CMakeLists.txt create mode 100644 CMakeLua/Utilities/CVS/Entries create mode 100644 CMakeLua/Utilities/CVS/Repository create mode 100644 CMakeLua/Utilities/CVS/Root create mode 100644 CMakeLua/Utilities/CVS/Tag create mode 100644 CMakeLua/Utilities/CVS/Template create mode 100644 CMakeLua/Utilities/Doxygen/CMakeLists.txt create mode 100644 CMakeLua/Utilities/Doxygen/CVS/Entries create mode 100644 CMakeLua/Utilities/Doxygen/CVS/Repository create mode 100644 CMakeLua/Utilities/Doxygen/CVS/Root create mode 100644 CMakeLua/Utilities/Doxygen/CVS/Tag create mode 100644 CMakeLua/Utilities/Doxygen/CVS/Template create mode 100644 CMakeLua/Utilities/Doxygen/authors.txt create mode 100644 CMakeLua/Utilities/Doxygen/doc_makeall.sh.in create mode 100644 CMakeLua/Utilities/Doxygen/doxyfile.in create mode 100755 CMakeLua/Utilities/KWStyle/CMake.kws.xml.in create mode 100755 CMakeLua/Utilities/KWStyle/CMakeFiles.txt.in create mode 100755 CMakeLua/Utilities/KWStyle/CMakeLists.txt create mode 100755 CMakeLua/Utilities/KWStyle/CMakeMoreChecks.kws.xml.in create mode 100755 CMakeLua/Utilities/KWStyle/CMakeOverwrite.txt create mode 100644 CMakeLua/Utilities/KWStyle/CVS/Entries create mode 100644 CMakeLua/Utilities/KWStyle/CVS/Repository create mode 100644 CMakeLua/Utilities/KWStyle/CVS/Root create mode 100644 CMakeLua/Utilities/KWStyle/CVS/Tag create mode 100644 CMakeLua/Utilities/KWStyle/CVS/Template create mode 100755 CMakeLua/Utilities/KWStyle/Headers/CMakeHeader.h create mode 100644 CMakeLua/Utilities/KWStyle/Headers/CVS/Entries create mode 100644 CMakeLua/Utilities/KWStyle/Headers/CVS/Repository create mode 100644 CMakeLua/Utilities/KWStyle/Headers/CVS/Root create mode 100644 CMakeLua/Utilities/KWStyle/Headers/CVS/Tag create mode 100644 CMakeLua/Utilities/KWStyle/Headers/CVS/Template create mode 100755 CMakeLua/Utilities/Release/CMakeInstall.bmp create mode 100755 CMakeLua/Utilities/Release/CMakeLogo.ico create mode 100644 CMakeLua/Utilities/Release/CVS/Entries create mode 100644 CMakeLua/Utilities/Release/CVS/Repository create mode 100644 CMakeLua/Utilities/Release/CVS/Root create mode 100644 CMakeLua/Utilities/Release/CVS/Tag create mode 100644 CMakeLua/Utilities/Release/CVS/Template create mode 100755 CMakeLua/Utilities/Release/Cygwin/CMakeLists.txt create mode 100644 CMakeLua/Utilities/Release/Cygwin/CVS/Entries create mode 100644 CMakeLua/Utilities/Release/Cygwin/CVS/Repository create mode 100644 CMakeLua/Utilities/Release/Cygwin/CVS/Root create mode 100644 CMakeLua/Utilities/Release/Cygwin/CVS/Tag create mode 100644 CMakeLua/Utilities/Release/Cygwin/CVS/Template create mode 100755 CMakeLua/Utilities/Release/Cygwin/README.cygwin.in create mode 100755 CMakeLua/Utilities/Release/Cygwin/cygwin-package.sh.in create mode 100755 CMakeLua/Utilities/Release/Cygwin/cygwin-patch.diff.in create mode 100755 CMakeLua/Utilities/Release/Cygwin/cygwin-setup.hint.in create mode 100755 CMakeLua/Utilities/Release/README create mode 100644 CMakeLua/Utilities/Release/create-cmake-release.cmake create mode 100644 CMakeLua/Utilities/Release/dashmacmini2_release.cmake create mode 100644 CMakeLua/Utilities/Release/dashsgi1_release.cmake create mode 100644 CMakeLua/Utilities/Release/dashsgi1_release64.cmake create mode 100755 CMakeLua/Utilities/Release/dashsun1_release.cmake create mode 100644 CMakeLua/Utilities/Release/destiny_release.cmake create mode 100755 CMakeLua/Utilities/Release/hythloth_release.cmake create mode 100644 CMakeLua/Utilities/Release/magrathea_release.cmake create mode 100644 CMakeLua/Utilities/Release/muse_release.cmake create mode 100644 CMakeLua/Utilities/Release/muse_release64.cmake create mode 100644 CMakeLua/Utilities/Release/r15n65_aix_release.cmake create mode 100644 CMakeLua/Utilities/Release/r36n11_aix_release.cmake create mode 100755 CMakeLua/Utilities/Release/release_cmake.cmake create mode 100755 CMakeLua/Utilities/Release/release_cmake.sh.in create mode 100644 CMakeLua/Utilities/Release/upload_release.cmake create mode 100644 CMakeLua/Utilities/Release/v60n177_aix_release.cmake create mode 100755 CMakeLua/Utilities/Release/vogon_cygwin.cmake create mode 100755 CMakeLua/Utilities/Release/vogon_release.cmake create mode 100644 CMakeLua/Utilities/cmThirdParty.h.in create mode 100644 CMakeLua/Utilities/cm_curl.h create mode 100644 CMakeLua/Utilities/cm_expat.h create mode 100644 CMakeLua/Utilities/cm_xmlrpc.h create mode 100644 CMakeLua/Utilities/cm_zlib.h create mode 100644 CMakeLua/Utilities/cmcompress/CMakeLists.txt create mode 100644 CMakeLua/Utilities/cmcompress/CVS/Entries create mode 100644 CMakeLua/Utilities/cmcompress/CVS/Repository create mode 100644 CMakeLua/Utilities/cmcompress/CVS/Root create mode 100644 CMakeLua/Utilities/cmcompress/CVS/Tag create mode 100644 CMakeLua/Utilities/cmcompress/CVS/Template create mode 100644 CMakeLua/Utilities/cmcompress/cmcompress.c create mode 100644 CMakeLua/Utilities/cmcompress/cmcompress.h create mode 100644 CMakeLua/Utilities/cmcompress/compress.c.original create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CMakeConfigurableFile.in create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CVS/Entries create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CVS/Repository create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CVS/Root create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CVS/Tag create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CVS/Template create mode 100755 CMakeLua/Utilities/cmcurl/CMake/CheckCSourceCompiles.cmake create mode 100755 CMakeLua/Utilities/cmcurl/CMake/CheckCSourceRuns.cmake create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CheckTypeSize.c.in create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CheckTypeSize.cmake create mode 100644 CMakeLua/Utilities/cmcurl/CMake/CurlTests.c create mode 100644 CMakeLua/Utilities/cmcurl/CMake/OtherTests.cmake create mode 100644 CMakeLua/Utilities/cmcurl/CMakeLists.txt create mode 100644 CMakeLua/Utilities/cmcurl/CVS/Entries create mode 100644 CMakeLua/Utilities/cmcurl/CVS/Repository create mode 100644 CMakeLua/Utilities/cmcurl/CVS/Root create mode 100644 CMakeLua/Utilities/cmcurl/CVS/Tag create mode 100644 CMakeLua/Utilities/cmcurl/CVS/Template create mode 100644 CMakeLua/Utilities/cmcurl/Platforms/CVS/Entries create mode 100644 CMakeLua/Utilities/cmcurl/Platforms/CVS/Repository create mode 100644 CMakeLua/Utilities/cmcurl/Platforms/CVS/Root create mode 100644 CMakeLua/Utilities/cmcurl/Platforms/CVS/Tag create mode 100644 CMakeLua/Utilities/cmcurl/Platforms/CVS/Template create mode 100755 CMakeLua/Utilities/cmcurl/Platforms/WindowsCache.cmake create mode 100644 CMakeLua/Utilities/cmcurl/Platforms/config-aix.h create mode 100644 CMakeLua/Utilities/cmcurl/Testing/CMakeLists.txt create mode 100644 CMakeLua/Utilities/cmcurl/Testing/CVS/Entries create mode 100644 CMakeLua/Utilities/cmcurl/Testing/CVS/Repository create mode 100644 CMakeLua/Utilities/cmcurl/Testing/CVS/Root create mode 100644 CMakeLua/Utilities/cmcurl/Testing/CVS/Tag create mode 100644 CMakeLua/Utilities/cmcurl/Testing/CVS/Template create mode 100644 CMakeLua/Utilities/cmcurl/Testing/curlgtk.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/curltest.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/ftpget.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/ftpgetresp.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/ftpupload.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/getinmemory.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/http-post.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/httpput.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/multithread.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/persistant.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/postit2.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/sepheaders.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/simple.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/simplessl.c create mode 100644 CMakeLua/Utilities/cmcurl/Testing/testconfig.h.in create mode 100644 CMakeLua/Utilities/cmcurl/Testing/win32sockets.c create mode 100644 CMakeLua/Utilities/cmcurl/amigaos.c create mode 100644 CMakeLua/Utilities/cmcurl/amigaos.h create mode 100644 CMakeLua/Utilities/cmcurl/arpa_telnet.h create mode 100644 CMakeLua/Utilities/cmcurl/base64.c create mode 100644 CMakeLua/Utilities/cmcurl/base64.h create mode 100644 CMakeLua/Utilities/cmcurl/ca-bundle.h create mode 100644 CMakeLua/Utilities/cmcurl/config.h.in create mode 100644 CMakeLua/Utilities/cmcurl/connect.c create mode 100644 CMakeLua/Utilities/cmcurl/connect.h create mode 100644 CMakeLua/Utilities/cmcurl/content_encoding.c create mode 100644 CMakeLua/Utilities/cmcurl/content_encoding.h create mode 100644 CMakeLua/Utilities/cmcurl/cookie.c create mode 100644 CMakeLua/Utilities/cmcurl/cookie.h create mode 100644 CMakeLua/Utilities/cmcurl/curl.copyright create mode 100644 CMakeLua/Utilities/cmcurl/curl/CVS/Entries create mode 100644 CMakeLua/Utilities/cmcurl/curl/CVS/Repository create mode 100644 CMakeLua/Utilities/cmcurl/curl/CVS/Root create mode 100644 CMakeLua/Utilities/cmcurl/curl/CVS/Tag create mode 100644 CMakeLua/Utilities/cmcurl/curl/CVS/Template create mode 100644 CMakeLua/Utilities/cmcurl/curl/curl.h create mode 100644 CMakeLua/Utilities/cmcurl/curl/curlver.h create mode 100644 CMakeLua/Utilities/cmcurl/curl/easy.h create mode 100644 CMakeLua/Utilities/cmcurl/curl/mprintf.h create mode 100644 CMakeLua/Utilities/cmcurl/curl/multi.h create mode 100644 CMakeLua/Utilities/cmcurl/curl/stdcheaders.h create mode 100644 CMakeLua/Utilities/cmcurl/curl/types.h create mode 100644 CMakeLua/Utilities/cmcurl/curlx.h create mode 100644 CMakeLua/Utilities/cmcurl/dict.c create mode 100644 CMakeLua/Utilities/cmcurl/dict.h create mode 100644 CMakeLua/Utilities/cmcurl/easy.c create mode 100644 CMakeLua/Utilities/cmcurl/easyif.h create mode 100644 CMakeLua/Utilities/cmcurl/escape.c create mode 100644 CMakeLua/Utilities/cmcurl/escape.h create mode 100644 CMakeLua/Utilities/cmcurl/file.c create mode 100644 CMakeLua/Utilities/cmcurl/file.h create mode 100644 CMakeLua/Utilities/cmcurl/formdata.c create mode 100644 CMakeLua/Utilities/cmcurl/formdata.h create mode 100644 CMakeLua/Utilities/cmcurl/ftp.c create mode 100644 CMakeLua/Utilities/cmcurl/ftp.h create mode 100644 CMakeLua/Utilities/cmcurl/getenv.c create mode 100644 CMakeLua/Utilities/cmcurl/getinfo.c create mode 100644 CMakeLua/Utilities/cmcurl/getinfo.h create mode 100644 CMakeLua/Utilities/cmcurl/gtls.c create mode 100644 CMakeLua/Utilities/cmcurl/gtls.h create mode 100644 CMakeLua/Utilities/cmcurl/hash.c create mode 100644 CMakeLua/Utilities/cmcurl/hash.h create mode 100644 CMakeLua/Utilities/cmcurl/hostares.c create mode 100644 CMakeLua/Utilities/cmcurl/hostasyn.c create mode 100644 CMakeLua/Utilities/cmcurl/hostip.c create mode 100644 CMakeLua/Utilities/cmcurl/hostip.h create mode 100644 CMakeLua/Utilities/cmcurl/hostip4.c create mode 100644 CMakeLua/Utilities/cmcurl/hostip6.c create mode 100644 CMakeLua/Utilities/cmcurl/hostsyn.c create mode 100644 CMakeLua/Utilities/cmcurl/hostthre.c create mode 100644 CMakeLua/Utilities/cmcurl/http.c create mode 100644 CMakeLua/Utilities/cmcurl/http.h create mode 100644 CMakeLua/Utilities/cmcurl/http_chunks.c create mode 100644 CMakeLua/Utilities/cmcurl/http_chunks.h create mode 100644 CMakeLua/Utilities/cmcurl/http_digest.c create mode 100644 CMakeLua/Utilities/cmcurl/http_digest.h create mode 100644 CMakeLua/Utilities/cmcurl/http_negotiate.c create mode 100644 CMakeLua/Utilities/cmcurl/http_negotiate.h create mode 100644 CMakeLua/Utilities/cmcurl/http_ntlm.c create mode 100644 CMakeLua/Utilities/cmcurl/http_ntlm.h create mode 100644 CMakeLua/Utilities/cmcurl/if2ip.c create mode 100644 CMakeLua/Utilities/cmcurl/if2ip.h create mode 100644 CMakeLua/Utilities/cmcurl/inet_ntoa_r.h create mode 100644 CMakeLua/Utilities/cmcurl/inet_ntop.c create mode 100644 CMakeLua/Utilities/cmcurl/inet_ntop.h create mode 100644 CMakeLua/Utilities/cmcurl/inet_pton.c create mode 100644 CMakeLua/Utilities/cmcurl/inet_pton.h create mode 100644 CMakeLua/Utilities/cmcurl/krb4.c create mode 100644 CMakeLua/Utilities/cmcurl/krb4.h create mode 100644 CMakeLua/Utilities/cmcurl/ldap.c create mode 100644 CMakeLua/Utilities/cmcurl/ldap.h create mode 100644 CMakeLua/Utilities/cmcurl/llist.c create mode 100644 CMakeLua/Utilities/cmcurl/llist.h create mode 100644 CMakeLua/Utilities/cmcurl/md5.c create mode 100644 CMakeLua/Utilities/cmcurl/md5.h create mode 100644 CMakeLua/Utilities/cmcurl/memdebug.c create mode 100644 CMakeLua/Utilities/cmcurl/memdebug.h create mode 100644 CMakeLua/Utilities/cmcurl/memory.h create mode 100644 CMakeLua/Utilities/cmcurl/mprintf.c create mode 100644 CMakeLua/Utilities/cmcurl/multi.c create mode 100644 CMakeLua/Utilities/cmcurl/multiif.h create mode 100644 CMakeLua/Utilities/cmcurl/netrc.c create mode 100644 CMakeLua/Utilities/cmcurl/netrc.h create mode 100644 CMakeLua/Utilities/cmcurl/nwlib.c create mode 100644 CMakeLua/Utilities/cmcurl/parsedate.c create mode 100644 CMakeLua/Utilities/cmcurl/parsedate.h create mode 100644 CMakeLua/Utilities/cmcurl/progress.c create mode 100644 CMakeLua/Utilities/cmcurl/progress.h create mode 100644 CMakeLua/Utilities/cmcurl/security.c create mode 100644 CMakeLua/Utilities/cmcurl/select.c create mode 100644 CMakeLua/Utilities/cmcurl/select.h create mode 100644 CMakeLua/Utilities/cmcurl/sendf.c create mode 100644 CMakeLua/Utilities/cmcurl/sendf.h create mode 100644 CMakeLua/Utilities/cmcurl/setup.h create mode 100644 CMakeLua/Utilities/cmcurl/setup_once.h create mode 100644 CMakeLua/Utilities/cmcurl/share.c create mode 100644 CMakeLua/Utilities/cmcurl/share.h create mode 100644 CMakeLua/Utilities/cmcurl/sockaddr.h create mode 100644 CMakeLua/Utilities/cmcurl/socks.c create mode 100644 CMakeLua/Utilities/cmcurl/socks.h create mode 100644 CMakeLua/Utilities/cmcurl/speedcheck.c create mode 100644 CMakeLua/Utilities/cmcurl/speedcheck.h create mode 100644 CMakeLua/Utilities/cmcurl/splay.c create mode 100644 CMakeLua/Utilities/cmcurl/splay.h create mode 100644 CMakeLua/Utilities/cmcurl/ssh.c create mode 100644 CMakeLua/Utilities/cmcurl/ssh.h create mode 100644 CMakeLua/Utilities/cmcurl/sslgen.c create mode 100644 CMakeLua/Utilities/cmcurl/sslgen.h create mode 100644 CMakeLua/Utilities/cmcurl/ssluse.c create mode 100644 CMakeLua/Utilities/cmcurl/ssluse.h create mode 100644 CMakeLua/Utilities/cmcurl/strdup.c create mode 100644 CMakeLua/Utilities/cmcurl/strdup.h create mode 100644 CMakeLua/Utilities/cmcurl/strequal.c create mode 100644 CMakeLua/Utilities/cmcurl/strequal.h create mode 100644 CMakeLua/Utilities/cmcurl/strerror.c create mode 100644 CMakeLua/Utilities/cmcurl/strerror.h create mode 100644 CMakeLua/Utilities/cmcurl/strtok.c create mode 100644 CMakeLua/Utilities/cmcurl/strtok.h create mode 100644 CMakeLua/Utilities/cmcurl/strtoofft.c create mode 100644 CMakeLua/Utilities/cmcurl/strtoofft.h create mode 100644 CMakeLua/Utilities/cmcurl/telnet.c create mode 100644 CMakeLua/Utilities/cmcurl/telnet.h create mode 100644 CMakeLua/Utilities/cmcurl/tftp.c create mode 100644 CMakeLua/Utilities/cmcurl/tftp.h create mode 100644 CMakeLua/Utilities/cmcurl/timeval.c create mode 100644 CMakeLua/Utilities/cmcurl/timeval.h create mode 100644 CMakeLua/Utilities/cmcurl/transfer.c create mode 100644 CMakeLua/Utilities/cmcurl/transfer.h create mode 100644 CMakeLua/Utilities/cmcurl/url.c create mode 100644 CMakeLua/Utilities/cmcurl/url.h create mode 100644 CMakeLua/Utilities/cmcurl/urldata.h create mode 100644 CMakeLua/Utilities/cmcurl/version.c create mode 100644 CMakeLua/Utilities/cmexpat/.NoDartCoverage create mode 100644 CMakeLua/Utilities/cmexpat/CMakeLists.txt create mode 100644 CMakeLua/Utilities/cmexpat/COPYING create mode 100644 CMakeLua/Utilities/cmexpat/CVS/Entries create mode 100644 CMakeLua/Utilities/cmexpat/CVS/Repository create mode 100644 CMakeLua/Utilities/cmexpat/CVS/Root create mode 100644 CMakeLua/Utilities/cmexpat/CVS/Tag create mode 100644 CMakeLua/Utilities/cmexpat/CVS/Template create mode 100644 CMakeLua/Utilities/cmexpat/ascii.h create mode 100644 CMakeLua/Utilities/cmexpat/asciitab.h create mode 100644 CMakeLua/Utilities/cmexpat/cm_expat_mangle.h create mode 100644 CMakeLua/Utilities/cmexpat/expat.h create mode 100644 CMakeLua/Utilities/cmexpat/expatConfig.h.in create mode 100644 CMakeLua/Utilities/cmexpat/expatDllConfig.h.in create mode 100644 CMakeLua/Utilities/cmexpat/iasciitab.h create mode 100644 CMakeLua/Utilities/cmexpat/latin1tab.h create mode 100644 CMakeLua/Utilities/cmexpat/nametab.h create mode 100644 CMakeLua/Utilities/cmexpat/utf8tab.h create mode 100644 CMakeLua/Utilities/cmexpat/xmlparse.c create mode 100644 CMakeLua/Utilities/cmexpat/xmlrole.c create mode 100644 CMakeLua/Utilities/cmexpat/xmlrole.h create mode 100644 CMakeLua/Utilities/cmexpat/xmltok.c create mode 100644 CMakeLua/Utilities/cmexpat/xmltok.h create mode 100644 CMakeLua/Utilities/cmexpat/xmltok_impl.c create mode 100644 CMakeLua/Utilities/cmexpat/xmltok_impl.h create mode 100644 CMakeLua/Utilities/cmexpat/xmltok_ns.c create mode 100644 CMakeLua/Utilities/cmtar/CMakeLists.txt create mode 100644 CMakeLua/Utilities/cmtar/COPYRIGHT create mode 100644 CMakeLua/Utilities/cmtar/CVS/Entries create mode 100644 CMakeLua/Utilities/cmtar/CVS/Repository create mode 100644 CMakeLua/Utilities/cmtar/CVS/Root create mode 100644 CMakeLua/Utilities/cmtar/CVS/Tag create mode 100644 CMakeLua/Utilities/cmtar/CVS/Template create mode 100644 CMakeLua/Utilities/cmtar/append.c create mode 100644 CMakeLua/Utilities/cmtar/block.c create mode 100644 CMakeLua/Utilities/cmtar/compat/CVS/Entries create mode 100644 CMakeLua/Utilities/cmtar/compat/CVS/Repository create mode 100644 CMakeLua/Utilities/cmtar/compat/CVS/Root create mode 100644 CMakeLua/Utilities/cmtar/compat/CVS/Tag create mode 100644 CMakeLua/Utilities/cmtar/compat/CVS/Template create mode 100644 CMakeLua/Utilities/cmtar/compat/README create mode 100644 CMakeLua/Utilities/cmtar/compat/basename.c create mode 100644 CMakeLua/Utilities/cmtar/compat/compat.h create mode 100644 CMakeLua/Utilities/cmtar/compat/dirname.c create mode 100644 CMakeLua/Utilities/cmtar/compat/fnmatch.c create mode 100644 CMakeLua/Utilities/cmtar/compat/gethostbyname_r.c create mode 100644 CMakeLua/Utilities/cmtar/compat/gethostname.c create mode 100644 CMakeLua/Utilities/cmtar/compat/getservbyname_r.c create mode 100644 CMakeLua/Utilities/cmtar/compat/glob.c create mode 100644 CMakeLua/Utilities/cmtar/compat/inet_aton.c create mode 100644 CMakeLua/Utilities/cmtar/compat/snprintf.c create mode 100644 CMakeLua/Utilities/cmtar/compat/strdup.c create mode 100644 CMakeLua/Utilities/cmtar/compat/strlcat.c create mode 100644 CMakeLua/Utilities/cmtar/compat/strlcpy.c create mode 100644 CMakeLua/Utilities/cmtar/compat/strmode.c create mode 100644 CMakeLua/Utilities/cmtar/compat/strrstr.c create mode 100644 CMakeLua/Utilities/cmtar/compat/strsep.c create mode 100644 CMakeLua/Utilities/cmtar/config.h.in create mode 100644 CMakeLua/Utilities/cmtar/decode.c create mode 100644 CMakeLua/Utilities/cmtar/encode.c create mode 100644 CMakeLua/Utilities/cmtar/extract.c create mode 100644 CMakeLua/Utilities/cmtar/filesystem.c create mode 100644 CMakeLua/Utilities/cmtar/filesystem.h create mode 100644 CMakeLua/Utilities/cmtar/handle.c create mode 100644 CMakeLua/Utilities/cmtar/internal.h create mode 100644 CMakeLua/Utilities/cmtar/libtar.c create mode 100644 CMakeLua/Utilities/cmtar/libtar.h create mode 100644 CMakeLua/Utilities/cmtar/listhash/CVS/Entries create mode 100644 CMakeLua/Utilities/cmtar/listhash/CVS/Repository create mode 100644 CMakeLua/Utilities/cmtar/listhash/CVS/Root create mode 100644 CMakeLua/Utilities/cmtar/listhash/CVS/Tag create mode 100644 CMakeLua/Utilities/cmtar/listhash/CVS/Template create mode 100644 CMakeLua/Utilities/cmtar/listhash/hash.c.in create mode 100644 CMakeLua/Utilities/cmtar/listhash/list.c.in create mode 100644 CMakeLua/Utilities/cmtar/listhash/listhash.h.in create mode 100644 CMakeLua/Utilities/cmtar/output.c create mode 100644 CMakeLua/Utilities/cmtar/tar.h create mode 100644 CMakeLua/Utilities/cmtar/util.c create mode 100644 CMakeLua/Utilities/cmtar/wrapper.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Entries create mode 100644 CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Repository create mode 100644 CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Root create mode 100644 CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Tag create mode 100644 CMakeLua/Utilities/cmxmlrpc/CMake/CVS/Template create mode 100644 CMakeLua/Utilities/cmxmlrpc/CMake/TryCompileFromSource.cmake create mode 100644 CMakeLua/Utilities/cmxmlrpc/CMakeLists.txt create mode 100644 CMakeLua/Utilities/cmxmlrpc/CVS/Entries create mode 100644 CMakeLua/Utilities/cmxmlrpc/CVS/Repository create mode 100644 CMakeLua/Utilities/cmxmlrpc/CVS/Root create mode 100644 CMakeLua/Utilities/cmxmlrpc/CVS/Tag create mode 100644 CMakeLua/Utilities/cmxmlrpc/CVS/Template create mode 100644 CMakeLua/Utilities/cmxmlrpc/XmlRpcCpp.cpp create mode 100644 CMakeLua/Utilities/cmxmlrpc/XmlRpcCpp.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/bool.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/casprintf.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/casprintf.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/inline.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/linklist.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/mallocvar.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/synch_client.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/transport_config.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/win32_pthreads.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_amconfig.h.in create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_array.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_authcookie.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_base64.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_cgi.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_cgi.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_client.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_client.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_client_int.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_config.h.in create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_curl_transport.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_curl_transport.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_data.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_expat.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_int.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_libxml2.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_parse.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_pthreads.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_registry.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_serialize.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_server.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_server_abyss.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_server_abyss.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_server_abyss_int.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_struct.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_strutil.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_support.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_transport.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_transport.h create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_utf8.c create mode 100644 CMakeLua/Utilities/cmxmlrpc/xmlrpc_xmlparser.h create mode 100644 CMakeLua/Utilities/cmzlib/.NoDartCoverage create mode 100644 CMakeLua/Utilities/cmzlib/CMakeLists.txt create mode 100644 CMakeLua/Utilities/cmzlib/CVS/Entries create mode 100644 CMakeLua/Utilities/cmzlib/CVS/Repository create mode 100644 CMakeLua/Utilities/cmzlib/CVS/Root create mode 100644 CMakeLua/Utilities/cmzlib/CVS/Tag create mode 100644 CMakeLua/Utilities/cmzlib/CVS/Template create mode 100644 CMakeLua/Utilities/cmzlib/ChangeLog create mode 100644 CMakeLua/Utilities/cmzlib/FAQ create mode 100644 CMakeLua/Utilities/cmzlib/INDEX create mode 100644 CMakeLua/Utilities/cmzlib/README create mode 100644 CMakeLua/Utilities/cmzlib/README.Kitware.txt create mode 100644 CMakeLua/Utilities/cmzlib/adler32.c create mode 100644 CMakeLua/Utilities/cmzlib/cm_zlib_mangle.h create mode 100644 CMakeLua/Utilities/cmzlib/compress.c create mode 100644 CMakeLua/Utilities/cmzlib/crc32.c create mode 100644 CMakeLua/Utilities/cmzlib/crc32.h create mode 100644 CMakeLua/Utilities/cmzlib/deflate.c create mode 100644 CMakeLua/Utilities/cmzlib/deflate.h create mode 100644 CMakeLua/Utilities/cmzlib/gzio.c create mode 100644 CMakeLua/Utilities/cmzlib/inffast.c create mode 100644 CMakeLua/Utilities/cmzlib/inffast.h create mode 100644 CMakeLua/Utilities/cmzlib/inffixed.h create mode 100644 CMakeLua/Utilities/cmzlib/inflate.c create mode 100644 CMakeLua/Utilities/cmzlib/inflate.h create mode 100644 CMakeLua/Utilities/cmzlib/inftrees.c create mode 100644 CMakeLua/Utilities/cmzlib/inftrees.h create mode 100644 CMakeLua/Utilities/cmzlib/trees.c create mode 100644 CMakeLua/Utilities/cmzlib/trees.h create mode 100644 CMakeLua/Utilities/cmzlib/uncompr.c create mode 100644 CMakeLua/Utilities/cmzlib/zconf.h create mode 100644 CMakeLua/Utilities/cmzlib/zlib.def create mode 100644 CMakeLua/Utilities/cmzlib/zlib.h create mode 100644 CMakeLua/Utilities/cmzlib/zlib.rc create mode 100644 CMakeLua/Utilities/cmzlib/zlibDllConfig.h.in create mode 100644 CMakeLua/Utilities/cmzlib/zutil.c create mode 100644 CMakeLua/Utilities/cmzlib/zutil.h create mode 100755 CMakeLua/bootstrap create mode 100644 CMakeLua/cmake.1 create mode 100644 CMakeLua/cmake_uninstall.cmake.in create mode 100755 CMakeLua/configure create mode 100644 CMakeLua/doxygen.config create mode 100644 README.txt create mode 100644 project.log create mode 100644 tailor.state create mode 100644 tailor.state.old diff --git a/CMakeLua.tailor b/CMakeLua.tailor new file mode 100644 index 0000000..d1cc6f3 --- /dev/null +++ b/CMakeLua.tailor @@ -0,0 +1,20 @@ +[DEFAULT] +verbose = True +encoding = iso-8859-15 + +[project] +target = hg:target +start-revision = 2007-12-03 00:00:00 +root-directory = . +state-file = tailor.state +source = cvs:source +subdir = CMakeLua +patch-name-format = %(revision)s + +[hg:target] +encoding = utf-8 + +[cvs:source] +module = CMake +repository = :pserver:anonymous@www.cmake.org:/cvsroot/CMake + diff --git a/CMakeLua/.hg/00changelog.i b/CMakeLua/.hg/00changelog.i new file mode 100644 index 0000000000000000000000000000000000000000..d3a8311050e54c57c5be7cfe169e60a95768812c GIT binary patch literal 57 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/00manifest.d b/CMakeLua/.hg/store/00manifest.d new file mode 100644 index 0000000000000000000000000000000000000000..4f3f0e9ca4766e326c4eee86bf75abdf05fe622e GIT binary patch literal 135868 zcwPVvK=QwJE@)?IXKrtDWdJo{H)UgDFfcY|Ha0kAGc+<~GBY?iGh<>jHD+NoWi>Q1 zI59CcG-V2SoUFasc3sDnu8C2XeujF3GbBf|qPvu-#>^CDrYOrkd7}|6i82WAfS^sC zr?2ndAez0g0n(=`ohB*DYhta4+5CURY)(#2{E7bifBpIYe)gjNV?KLX`#-+!Z~5a% zE!DQxYS`+m%{1F>az6U$?X0WBGKcfa&yRn&d-N~wu1+t`-(O4k`te{m6fwB^BuO;ZuZTujU7#GIo3Ef8`tKoTRn$S47+>r z?)S^n*Ke+NKhxXIZ+0vER5M4M!EZUTP3+Lxir%-OWo`W7+j_abz-G0y4L_C}!Q?f& z>%oVu)m6Kz%duvwr;r+1H)twLT?v?vva;hD`_I1r{rswa-2Lb{SIT)c6mj-4CU3rc zuy%|bJKJ7c+%lH>hwnbtx9`s89}f(nEkDNMCrxYZT7?~QsKb`KG0Dv3w^C8Cb^H9c z^Xy5Li4(_sR$NvGCiKkyOu#_lXZ`-Ur*0zjCGcEsQ|M22sd^nr$|M<-q-(z;)&UaI~ z*iYw;_2DJzO2vDhWThy>KJu5KRi11i~1HAHE*$C`~#R!jyJJe##L0@UtDENoEDJWH3@Nym- z6-)>XB{Gk`-#taX#(Ql7=*;v)vRc9U#KsZ{lO_PsOOL=+Z+w45-uD-mSC{qt;3a3N z#QZg&5X*qd4dH60Mo4g2$_j!wzNPZ<5vl)C|5*=2;!SKtiBVn8_F6n0dk(yLW1VY8&AOm_S^d}8twG6Joq)=*tLpn5)TY;~Be}6UK-t6)QMu2vK zlmkE|nj+riYX~?Tpnn><G@x;PS0)xg$mt>L?los?+C&r%;pL^iz79hA5Llml{^&m{bhYS|8;Ts zj~h|g6<}kPHUnJEiSLy?Sr21P+&bPS)d0Q61n0sy&0^_H zYcOEIB>}a}bntFJ%=3A9+V?abBn9~fQJ_%h6*Ru&B#s3%Z^g^zx8ff}<>zl7Q+c9Z z3kHo?X;kYWtOin*JF3A?TBAZ_W9qg)NOjQU0WUNlh*Rgud z&sKRUly)7M;EPxP^VI=ZgcUCwj7c4C)|$d4o?6H#50;L-bF5iDL<%oX&wu#aA?_4C zFt}u)jSyV+zhVSpp{Q4>n>i5m(~T+K7X?Nv9hw~A=mUmiaR}^TKnc8#vH+mC z!b6>Uc~-Bq)F}EJlnHiUTfm<~WKi{~6Pl2-A0=k;>SmF?3Um8&r(qT*81S9*MZ2xD6u;;iWr|qrAnw4&*BsxEDm7Qw@H+5Y4P}Bn~<`;Al%Ij0#GNu0+9zvna4 zp=JN|{Pg3Y6J(onZiS!hQVCE?5NZj$XRywUIfAJ!v_nb1^6UBO((&@O9Gpq@Tg=-6 z)-H>}Tk8|PB5Vl2_@FbRF8i36?>^qV5y1tT%WIiN0PS!Z(FA@>Tb+#9te8sJAqm_dYm-I z(iJIj{5sc~VGwTX%q|<3(xJj4_2BKGX|@ngT}RWKP747Nx=c~{&vCfi#*E?6uz!7( z4?lB+(Xd1u7x)VA46CfDKUf^x4`s~v{qpqs zXyM)2>GkEzTm%Jp1$vJzSosDZrJoCz({u(^z)7Lh16hiLcS7KV;A4-o!XHndT7x}7 zwibAA0FU@Ts7{IpLjLmV@2_@m^ke;S-rwM01VU4brIw|OpT!n;q4$a>ukaO%Rv2~w zoOSqh2>ZLW2QNnWED)7B<*HDbEb_V{9z4ac7Gk5vv-$&BKYuvCI(<8@Urut`1m%^H zb{B)bo8qDsJRJkKP#yea2)C8PmwNTf5C8q!pJyF>+xs_?gxN3lI(QR1?7L2Y2PlE) zsy7Sz9DA|+W;X&$AVRJAm|e|%is$UYhWIZ zXVbM)AZ!u?5~~zJc?O1gpwHjVc8h~E9t=Q;k4`K@;DeIaxj(ML=8V&{_{O>a{Le36 ze0n~E=5&l;D^9fN$jPFuZY~F9)4>+D$A3icmh)=)&)^9&ts;nNt=xe^O?XWs2p%gn66GNO$yfIx>5ua z0V1GO z1)l)mAf96>nV^&V0EAn1o4q;|bO##mec=ce7*$Kw$rbP#W?5I)5mMez`Hg=E1Ow&=V|Y&Dh5UkY5fgRe**!r%FTQ-uhp+bFEBPX~g^=n*WCONG-e(M72#63U z;%V}5$HV0Uguc9bbBPKf=p@9LV%KS>1E8bEz^aU!M=$2)2zRBqrOVVq83MB3<3Z)w zzx%jj&^OfA>-rh~G`-RNmnUE~R=&15boZWG$7u3_!~;<$g=h|xnnK16!(81EgLqYA z8`diRj4L(vX))L8P;n8^wxr`M=wENZ(oM(BJ46G=9K2mE`=UOb)9+5#`;J_0V|Q3s zff~Ex7|ioqg`v$uQ`%Evu7Me>5>!3Gn7Ci?3Wx|R+KBMF!rwq!aLdx4kn{1Q zUZ^hsPDIeK*5s|%)pQ^p7lxQC>}2Z#*yd3|_b$pR>>J&2&ekL!QX5<-=zPZ)V^Fo2 zCcN!YQMXD7#*bBS9}MdPt_?GU-{YW0vl)x@E&4-2Kc2SBdindl9_hds0Eat)Cnz-Y zkHdqUl9>dE5!wF|!&8#ZcE7SzX@WPUc+ z7fv>0IDcydB_(PU+~!z$dCU%Fx_1(xG?^RdZ8x3dgG#H?ET*e=;Fr_DILi_ewzh5e zPSEd?b3R;NAJts-v)w(WXJfK1R@sTovd969%kJkQd}mo0@N~KZyWd`PVAuK8{R1C( z7i>8UW#!;ULjr*}6bQUfmIDSPzczF4l=RyVZ{O-7{Kj9Lc<>Y$1=S_Svbm66-!R7N zak3~7ae5A<-f7DBKmPKc#|Rez6ge=zIf;N(K}`2r8&tZZi!f;&*_1m6|NX32A1>!B zUJ28@kpd}lc$#IR!{zkmedo`a#lZtEFP0BLy(a~3^v$c6-~IUGEo~lzO)yL$Iz)#Z z49ps)jG7Sldy2MZi1@yQU!UJ|#n71Pc&c~7r)ekXOUV{(_)Opf*G>5dyC>pLKYsJ- z_MRmz=&yXH%P}{+p9gmn_hJVsB)&&CCt?5j|2}=^Zub>z5x^B$blYtS-R%AI z``z;&-re3MKpS&!E|sX;A#9}K6Q2G4`d_EF)+LJPFs=q0$`%OJbP^qOcntT#y%W*;fhK+X?8Ptt zd2=y4(&8n6^nJkl`4D)X$Dc#>gG0&Zs5$og#w7`N?#4xSy$ztewX0)7!0?=nG6LgL z7Sg~rgX#OvUwr)i^}Ic>Hcg3u6`dZ*o20Zr+Y|BK-(P<7%Z(<$ zC9np}A&J6lxZaIb0PNx_U~2=I19IB8NI8j{Z}5a3LttjT6-tI~8~h-&Zq`GWAdAwh z_~7{)V}Sja+Lf;0Izhy=ob3YBL|lUh!Px>>1MTjw;t$WB{r$y_HtN`!$0zO?Tjs~3 z#}HLFvW*Zt=(yr++}EZbe*EhVv5U*XiGUnZyM{k2z%qQc%)%(3CY($yhmYSZp-1?p z&Ev-mU@Gx^Btk3PMQ{vAljG#i`_JF5U=+XwsBB8htlnW*8FZeo!raS%g4m8SnEl7+ z)z$oX%MP(Pl(x7ku!Eqc#}tn*8-VPwr+}!AlQ_af`@iVIp3T|XEVs-}-{#kFf0h+88FLhx} zXrhi?jBX8WF?K~B7nj~&fdBmVCc5xLl-8{KXQCnN4SVJnUGvTn;GJj|dTKr%KJRaj zdZ4&00ju3W{GgoSdIQTh3y2P7ZF$(f?BVmxZw>I6zrQ`Z@r;QGy+tEtRsl}nK*G$NXr4zY@r&73Sh1$}AMew?FN?;j^&eiMm2Lhho`o)k9=sRtZ#p3h%6o53VNPGd_>smvpw)>CQtFwA@ zXlQ2*yHjGPygK5-965V8<)iuv%2Bmw=(exQFD|Z5Zy4mp*6C_zOGKz@1@ZWZ%6>;*QB-?> zFJAun<*iXFe_>`2LQFlQNn`b#lHZ`ub173yJ9^-hUjB5WOBP55?&?1Lqpz~bHiT+heZe09Zd^>Tc3d7IN>S-~g>WapBmfrH}oTLe$$3gIyc z(lrlIahy~-Y68}a2`C5nclpEa;)4cE+GWfUMJVt%ctbm`6#Z%wao zJu`tO!$4OK-s1PGHy7v6&#&g?4G1VkhY=e@yG9*$CAc!Hx$vL(J{=iags zDoQ2<@_(w#v7Kje2Z6=P7@rO(cW7cy%75L$AvT@YSD-*0fY>lJ9U&BeR8k5n5_vs) z@U*{m-E3K69jq~J1+dS=_E6q{whX*?4@|p;!KUDhAr)pzeFmzxwvZ)X`)&fC*mL zZJ8ek)o%emzT@e-eN&mloQIG9b}B4&<8s({JXXvxxPm6TreoNkq*z#+6@_IY<$I|edT!G~fG z=Lyg*qToSi%;BMo_q*GxPgcg#jkT?))IKbQ5CUjtA&Ag|c%ykkkZcd7TwUD+gARC5 zE=ru!gV2djLRZEqO-yGafNdyaJJ5?)e|vu81=FS?js;_4Z(RWa-fIt803H#6j!RmcZSsMz`>o-dqFnti3lrtORQ(EfRo<#Fvcu%QN$ z0qSC_9i`EVMrR-}T}Q~MG0uJ;ZvXP^M#~5v)v}W4#?1KO!$4B`F{5P&8=<$Dkj(v^KLkO@HTJ} z{|yiK%3mHHH*~QF^j z%Wz**bMN_oef-<$xOc%iSg#;|*V%J^Eo-%2yYU#AQ+389uK7cpCMoCR;$OFcOZ8OX zv?Y8$tVO8F_)eV#)u>PgPRsY$=kwzywkQzm=*z@0;W7irmv{ui@yfj=xbg2{CHFk% z^Yiyt_3Z5D`M*A#Ue0lyk9d8za#wQKHy!uS4Zxwe00n6|SYk2&qTuNXst#Cnx7Ffx zFKWNMxV4#`S?8|vfjoCfE|^g2c;{H_a*2HeZrt%>p8m_LzyIljK-_-TMKcg&FjBM) zx53*uU|7c)1N*bHc3T;(vi(5RZR-5KG!;b?u#zFLD+ioN1=Ht);nTqF1nKU&_4{~V z+~vjN<%yULyiIqi_~%v1#KXazA^;CK1xAF()8*U1~PtQ+xW#kD( zLNj8ALAy=orai(Py2E4Xv{HxX?DEHbVeH_$vwC%%`JRSy-lI}7i99wBtUIF}8NZv% zGLWpnKHQ18Ndo@kH_vZ~Ep8;psw()ZVp_n{)^Oy7lqHO6-^iI6U}bb_u)w@Tl>)gh1K&8>mJBFbg``ImdzaRGEu*11 z75ET4zGzDjnFhRpx-WR0a#DPq)gD>rPlX^~ee>Lzt5mWrRrEwyQh1OdE= zzp(fs+#{@AKWh)D9T#{LY;7yb0)vulx=2gPC2V~(C8kT^;RmbM)ITTgE)f9^y+Tn@ z4;)f$2ss*Mq^ydAOXKfnCyuYbP&iEAVvh%(trHrQTG0WV8E;Bd$_d-9;I1RODk1TPtfq#JH{X*?3u6NcIz!@$Pu?NhU%U1AUz(@`%kj?^X+|C183qBEI72UtUf6= z!e59;s^Y?};XtN8W<)z-x5vY)^sJm7xoqs3&E>6>d#lrr=s|(-rz4T^#mldLzRd^7 zsxa@m7ia+p#nNC&0f^LXM+1%7P+xQJwB%OIPxI<7a_o{)yT{9Tz>mjS4G$0wNXvF6 z6It<^<`IYWmsj84FsUtUu+zTl4^UOKr92!^vibqA_!CS7De6b;M~A(4FQdc~zhbn7 za6GYY-2@rYL5n&RH*w0I*z{1&fBkf$-9dRCXizp*ZGWaSR$Y)>CvX&ac1ssjdZ3hBz$vO?RKC-c$)eUw6N;6T^pxz8b$RvdFTcI|_4YyrV$g_pY%Nhm zxnST%vsqWWGoTq91vu@pG(;fQNom2+oE~nhGZ8qN(3$Zk)d#qbg|C4^ixUkh* z;F@z+wbevjCZPydS%JOEAAt}-zX3FSRyl$af4Tf{>v#XpG4x-5{N*kRq|S=Mp=QNr z8{MCW!s<4>8tBqn12EQg(!gvblI-zXQy1a3fNQ~U}8BSK&yhyCg323w)_$EmZ-ng%iHRXygT{BujU>_gyCVP zS1>*tNJ(_twbywl=o2UZs$r5hw^1#tvJJAed`NK3BuCl_0k{j@PqFTepnODyZlv{_ zivxINS`DY?f@x~QwW+&8#3@Eq2yPJr0rr&7ixRN|Pl!5iN^S#vRhAkK?M&ZPn`~4R ziBq`G4IhXbH%F9(0A42!!x1w5=uly0Hh_O{ks+y}4k)|MCuF_;AOGWK{rifo08+LH zaZSLB3fXT>x%}#nwPDh@tYaMJR@f~e@7Qhs$srG7vv+>{?uol-tMN=i5q|b)U&Cn8tzdEjD!w#V*$E^ z>8JJfDPi}*n*(L6%~=&AgHeW{aqf^U+4BZEw6@L7geS!PtDpHCZ@^-OF(j*syeg`d zaP2!lfT~sHqAlH!)F*b&4@v3BV;S(Ih1M>0ePyunvZMkeJfv~b`&?N zg9*Sqwvpgo8F!-tlQ5Nk52HJ_1Am{G`Tu7xc)NWtgScWEslnA%#S!hchB7{D28z$1 zo(T1rhu?>QX-ivO zcUi!6z7L)Z8a}cluj}mr-AH`4#jwT{Wn6O_NQbVzv16Zrl-SR`^u#+E{T^D29Zw08 zuNInASydJD#(^Wp11MuL#(ZQ&{;^Mo-Dd29hoq$hKjYTYebP)@iu{^&mNfC}$B^3l z-_OpJ-Fti0IwmlgrOCXM$1R1b=6c0UUdt;_!NU{oSjJ<8=VE>8abq{-TQ^k&Z^;d1 zb>j>+mtju?^n20ep(Od-o;}!qMWe)u8kD1f>DQ1{Y1hTW{Ni2j#Hb?YPp7ZHJ0GXF zV10%VQFlBKSSClnQZd9|?2H%0V8IqG`g{3%pX!{y>3zPtdVjBCWd)nXk($yJfFaA4 zXmyB8WPt6)mXrfM=KlL!zs!99{yLo-?7M%7~x%UrnpPvQ3@4YGc??+Kp;_dSA6B}T|wRx_3G+!*0v=)XdVjr z<=da?+xh+-@$U8pc)2Y=_I3xW9zSLPc1a0D%GRCAuY{B2r$zBnVlgm3Tswj~2qLB> z4414<=I|qS>Js)275?@8{I1{K732^GZxPfo(y1ZbNU3$qL*+Qes(!zOd(|#Hewdg5 zI*SQDNEqEvxY%Jt(RV?mT7d6euB_c75XiW@iU(=H^_Lpx@b-W#fZk|oH@K^P&<#6V zcfUT3$M4*Qeba zKwCg>4rj5;%!Z&N>EQXj4lcLCA`sXqp={}tshGw`#{T7HaX6J$KOZn~anyV0@2+$FCw?%ng6HTq9s6UNPkQRXp zl9lfZIlOQqB&jwTsz23OtZcYmJYDWhDf&(=M+3p`UUd2Ok-M_7S=Ab1bWzzSUN=e> z9N~28XSyI^w>oAN`I@D^1M>8IbCdRn4=_o|!!ff1da zpI-eoRJ5U{b-N;IHMMdo!?cPh#1p0AM0J(4qKR1hK^H$VQE~B$s z5)jC9Qy*LJoe~c+?&rllDZ;}AEwwKob@bld> zVarMP)@wyI)lk!`z9}CA_!_gy_EhO$;vcT-82|Wn|L6PD*XI|PSY=RdcFn=6BS0o7 zsLMk$2I9D>djub%0<@b)4=!4QlJkR=H!2YW@*uA6oC@wc!E}Jbo$rK$o5z&^@yCaC z;5)~O(u~#!#ZVtOnO;08KT-*ku@{}|P22sxEEMSMy-v$iw)3gU>@3Si=(1NKv+-E@ zngwRv)C{pje2Th?y-xLzfuXpv^YB>`u-U2N&P~wr`gLtk!f(=etD6Q!b z@)2RXQingCp4ZFYcPG&G>f-uq%M82-n$=WcF>p<|MnVJlX@JP);J+ZG^zX=hbAnsx zxvN5wpaEV`?>F`mWCLV?M<$iKMem=Idi`(q-!`P?VHZ#|Hg$NyfNsQ+ph;ujKo)*N zYQn!G_YI6l_twn^qODpXsqRZRB1R3L#l+R?D2Om0lltv!`!6}-2*7POTvu}~-D*RU z0lNXi9l78rcj=~|m-gla&~N1zaU4Mxhw9Osl!c8;Q67C!9^}@|QCa)1<+W6sIz?HP zmRMkSnIg*S@*8*Aj>OaLk*~b}QuqM~gk33Nv`R@sRL+1CbkvLNxCT2Y?K6_Tubp3i zzXk?d1%gL36@l7@TG{kK#VFke;G21O~VTM-Kp z?h8hquc%-z8T)UD#pQ(#q3Eutfxek)#2*j@{@LQ%l!4&46(3p4pI^Q>+-4mgv36a3 zWtHMz^sc?CVHgq}CIQvmJ}(UoBn(+%b5mwFt`2;sRzrpTP~t4hNvyS@9hId{A_uQ# z42IsvU@J^i9s@)rsuN%yV8^WbcM!mF_qH$Y&51g_>Brpm5Zu?mX7WA&KK+I1lQytFqb5CMEfOD(BMC8QEx0!M_& zd-X*Pn;HWSf86u_QZIKUo(FoDlm?ls4x4qLzgdVcU_17`@Hik{*~7ebAS~qxkICEdeg5y~FArcqM_pCaIh%SN5N?!6 zY^%C%*`f?-gCBcDYxblO%vdwS2SzqxD%l=uMYRj@K_!!5qH05QhYt1Kt`&{oqC*it z;X@b8MAQvV>y#UyRy2^+tga}@96oIXZJ@310gl^$}u>~we zxAgIe&%P0dy@HE0!(yoIFab?)q~b9#ue$lD19NC$FHZ=&zjy}Mje*Yr-HTg!5$zg;KI|Ob z$W<+x?MS;6bX$DZ?ewg!J@SpWjN<+t=#Eh*M47c#Qm|$U;5|y!@i0^#%3+1ezEI?w z6Swmc%34rAZm?JAC8}+eN_gP}@Oju-S)UPje=lk`tP@cy&l#g8=xB_KO3-XZwV^~= zod_OXz5|hORI5!iaGT1XtlBjZB0v+YtLh9XmgH z@@ftRQAZ7%)O3$9l;SWg0czX!sOIcTd~?#2S+}V|oz1OQa|#Mxm{klaGFdt~fZ#nM z@4L6}u71B}jo+SL&K+jIznY0H#UHB2|5TSx)6s3+52#UbP%_vGyzKb*rN23`Wm|+r zqT`7CS>4jXkZ8{$sJjNE4E)sch%$Xj-`evOnnqydNoVoAcyAz<3asfMKq234sRUwu zi98_rwq17_Ru_M-L}SDO4}cm~$J<#YqqfbX(msjVQ%n%Nwl>e);Rw|yr_vYQ&N~}I z@WzBtzDyn8U};y_*p?%{&);M6iECuM9u&;P;>oV)6yx|vpiHZ;?fg0zfdIc zrV&ulY;nb9h}e$*0HyKpOARP|21fw>j|;q(c7MlJHc(cQiO* z?%gAvZC~D-6L1_nM#bK9nbfmdf#b?>K`db$HM{K0ATFeM3pu7&Ut^vo>@HJjy0Lf;wMa?YbS^ z(?O#tIC+4Q)VwjP0Y}Os3>*34pfqM8Ld#zu4nqM0qa-Z{F#c5jz4#W~spp8bm@fBN z`(y9+p}jrbdpV=SBwb+@9q)l@GzHI%zWSz9991)-*C~I2IDGVC8~fCmMkDlrJ3VAQ z;w!+6ea_wNo4C~{gx%LT5E#@P=3J%@{FT+cDJN6t2b*`r>3EEraskWp{mZKW{AWiuJf<&M!niYg5Kx|V)!WBR@H+9l!^AI zMI1L!Y9%OI_lU*s%X`BPc*vS6BUmncdfL3Y1iOVO=mQS1Gu!i%_m}mSJeZ{s*82+Dg!k(xTC@jE`(;) z00HH3cyI~6*R!{Oj=w5BHV~Y8BSrYZ($z0gXKXd+ z-NET`Id8B3@lO{QXV+Ji*V-F_&1ynuijv~9nQ_~tc&MAaX9FxmaqIm{Wx@+vzy=nJ zjnbK>7EnZJ>&w+@>s?&;OtwYj^uyul=8 znPMDRaVapL%_nsOwx~RqO?egS#`MKPvBIt~Gb0rtEUe8=;+lqvRAh|`O7Ii^n4c6W zY^991d#|c;3S}z;!&T5igaq>rtN#DJIqNqKC(F(LJ96Kg3|%j5Mae%Vs-tiiLH!zR z0c@dYL@!;i`lqE{T)w?dX@S+K6JptH*wo2dvpW4!ZQ!nXqHb6cnDz70bVjaI3b2aW zV9jBDSG!4!UZpC71x(6LYEQq}kG0MF=A^l*M-7;IE1FIcreA9Y=iF>W*VLBUDq)fF<(A%f&vUD0ch)3jx3ib7Rq-|gwe+_M~`;Yg~NSf-~nm3F#q(5ksI zp2|c&P+OJSJtgs`vCOB=xbNkkHERZyGir}gR8)#d5= z>wDkN8>QV~(+S42pyj1zi9)sjtPWxeOYIEfmrLbMHRO1z)t|b074*?gbsmgSbDwi5 zFa==I)6VnWJA$rK0(CDu*~EibyDJug4=fwXRMY*419^JiZ{IF@4Q@dn)ipf ziTX@iT^buDJ9>NEf9%po|9{0C$4Y)R%tsXqaMBjNftBfAaBbpdy5Z`&QR(-<`~!hM zfA`I|U%&Y71hhfuD@y}58l`f`Ipb$d~O$RPrL;kXAh}!j{dkC(r4IMK1U4@TRw`(XvenROa zZ_I@(54bi-T+ad=7pAJh`vp13(QTTCgFZuOJ|pYHJ5AOBulw#Xh6ZhnDQu~$p`ckY zTaaMr>Mow2&=1L4SN+Y!snRn~rdjG(0(DXg*|;>QSUos(YqE8?D1=gp)}Ir2c6$B~ ziPMcsRRK;^ zLl9-t^CKwaR@ndZK}~aaooccUR#kXgG{P%{(REW)hFZ;!2pjd|Gdud}GXawcB%~X4 zc5vWM0EnAWV%9Vwl}Z}J**z`nZT*O>*wjOW-9*+}u zvT$ztO5GB4_0gS6mHpnT?}Xo-sW;`3${ujOPYXMr|5{hSOW$DFiVMc7UNc1%BH-b4 zoT{#lYJlA4z@fTfE>el|Wuy<9Xi+8gN z!B0&yUqhHsVpUi|s~qnPOvO@Lt)DUYce`FyC+eqVmXi5>uEDUkpypunZlKeyYy;F* z*Jp&izp7HS8IxaXyt(1PLjpd5yqoP!U6P@D!&gcFjH0ppdb8}+ z?ovaQCQ-T$V>M#P=49hA3w9Js{hXk8m#6;}09$q&%2Ur8%{IIGoa#yeMB*n9$;;wH zcXpd-^*z&yEp(8(vc3HJ}1qI?COTOt+e^PL)#E|{A7Ph%Os0M z+wCSguFAvOH7|45O>K*<+10AXOW;$Mrf9~`yxNNuSI{c2&IPdFFx~T?{=NjPt=PH@<9+uc_vkbIrYC$vS-OUq%%`9yFRl8m-B!9 zc3$7^>=Q1#I+&n#+s(j1R>L;-(Ut!f`W8(sFqEeSzVB5HgP6VCnAq#@T3DeP<#-p&Vx&x59Q!TVR=+rd41ASUvU#%&;1tggte=~+x7R3A`#FPV&xD38f{a$GMm1h28;B6FmY%ZqowRpv>P~a(aA7z06G{mc zW*2Y)mhWa`2`a3fO^=-X-AbF+uNHjiYh{ZrXlPpiAQZI;-;(es(XV^8f_f@;BJ6aB zN2gAl0yYr9-)x`GsnHc8iAIEND(~9B&Y$_r(|7;e6z<^5%@#XW1AaDL-vg)&-&Mg# zt_(=|1`2sv*!4$F-O{Y3_AMLm#cnJ3h;Ard21=ggAXP2@w5-eddI}4HiF?(Ya8?Qq zBz&hz1OUBV7K-b^-0B7WxU{pg)ArSw{&+IffG0SGwP!s40By9y&i}QuBY4X7n z#{PEw)~_4NC<_WMp@NyHLMGKvsvT#VU59}-S^S9-o1WN#^NyaKU3A^TWnC6otFvXz zEF@-WEJ<&wl>qhW7#CM`YXj<*fBei_r7rw0YiH@i?gn_aW9v&-EJZ~d`WGubCh66@ z`ta_DzdrwZot+e=*a)5htTuIrf&m#Nq$wlH02_*$f!+nE$7DT!`|fPsn`EM_FAe-8 z`i5kiS*Cle9HrTIOX#u!d}c4kzbX37iMo=)k5yXUt&$hnVs!xn{<-TJ-;jAI^bx^# zfBbYw?KL1Y&!CCrS&o`9tDw$=6^4Pj z1kGV**N*Lp{`m6p;@!Nw`u+LUeEajozpmHMmg|d517HqVJy>}vBp`fqZN*LG`R@AQ zGa_N~5d&+RDnntpR&AlxMh}9k8cMa#>SLO_Q}{;&N)fM5wOJ^Y6JQ!JP?R{Uvdr?j z#2T!In3j6F^TSWcdvlV($Li(++bDH{XtJGQKmZ%ofeNW{wxacov=`q$ySZPwD=)IU zW}GP5gh?s$nXQaj?E#G{l8VR4@E7x;ke$kXx{v$u^!&QxV1M`S1pCH$SGE4ta0?BZ z?zK%fW{E`|zWS^SApM0RLDHH|PE@GCT%tSJ16OA?eMOB_Mdo*n%i|*gf0*Yt8qC{i z?(cFM95Sk^4PNO;9+dh*IhrvqFXDdZ0|dtUg}fAZpR*fe0z4HQL(rSr)hqgaI`ea zd|IV`7!A2njWXtRWYHw=db|f8Y1JadZXy-g0T~SVwg`IEzM5EM#wy|RPl$P=Qmcgv z$XK+6G6r=e>1$|yi)O`bc1yUlJCJrKMCbnZmVB|Sn;IIX97H6t)x0?e`fkE6LCxix zjYn4Lo}f1;R>u|vTDd~*_`FGAb1DED>i-1(2TqAA9uc$WMR_A^R6UobhR>K7mxhn2 zzEzFLr_jHc3sCnnqTawHK*T{cN10#~m20=F?A5^3O;gHu^JH^-DCpJI_-1{)_9qoA z4f)k!8MJ(^`a+SH-QigXVFb z#<;sFzrKD&n`+dS&+OPJ5Ub9|HK{h~Mp8L%A-M7xQAGJ`uElHn4EX#uTNB%5~>Z#AMQG!!!c&v5Evch zB2A+z%z9GJ{~|mY9pe+^>YU9k^;p#$c$|WA4ZKnJ69{;DQVwEvrD8Izn@{JsYQ1`?el=v2W+u zydn_p_D+Lht+I!V7XwgZ&kDirN>1e+HI~pQIp=|tmuDZ|f0ChYy2S*8$52Zpt7}uJ zB|${}>WcatZL`LQGX87#U7uz?s*9+GJ+HNtII0$o_*&3}vf6Zpgo4h8OY=zvAPM|F zV3TdvKrFPyCuDK*nh4#Rm=i`ycOLOT!p?X6dOEMkOMsNZiK0sUrktXN4r@|r)wI6~ zv@tMO^U&rGg%N9`rbNz?n^DuMrLl8;6TgZBW(kqBZS(fwm+6A_#dk{W-U6si!`}U7 zE%3z{oyfYeOGkG~9I5rLJpXThzppjBndl$iy*&Y4WA28oacWMWf5Mg*3WcCBe2 z759G<7jLCJ1jqP_o+D%-x9F3mI#dXfvesc08eZay?&_bGBmxM$XS=(yLiypzCqhp) zZlr91x4Q|JzNH6pYP%$hb6mWn@T@FNAF6&^wn11e#fVT*f%NCLoUJ z42SAdQ@!BZu7EWO&bp6A)3d6`%ep&+c_>9E2>SY*qsIFZV?tk!5U(b54s6|%pF!h> zAIf<5?zbEG`u>^^>E5O_&C_vd!yL-C0n?O-5>pn)euf>wfZ76jmCO8)$jhLW&FEzzknq6YXLo@4d>iO#_J5wa7 zQv-y8Qww}dG&%(+ytemV{gsK6)~VOaLos@b-%b_TUY{;;k7^gBeyCkV9KN&ON))QP zKpkp5q9%{ zD**vJt13aTIS}}Xv@9};ITjK0xSaR9STZio=k6Gz5xk~)E9VC4wAKJ{etvDs6W;cDGXAU0%Fa+5gS!thDQumciia7t4R}u(RrZ z8aE4IG-a0!@uVQtPWNq_Ui0E~NJqHAD}(kX3~f`%b5U!rJDcclMOb&$Y@fp7{pyUl zsi+Ai9yN5+Ep@b-ng3UJ88z6{(elb)Annab%bExhmA1TqooOSWmE2YE+%@}F86K_8 zctqAO_44)HFSY49{nFSG;4uJFxV$(&fG0(%Sg4S?YJ6UpI#-0IMtK`gjSTk66Y`3k z%9r5q)LasE+ZXliTwB%pJ5ru&#I_Hj5P zDpoJ2mh#{Xo*)6rH^SVO*Kb%0*XigEVY{ff5`DN?pBKHGV3M ztdTf`%3=U&m+v<=(WvddwP{b#^=PKOI%)$) zij&|dN`%jZVE_wSQGec~i)~_p4uPJMqY$q7RjN)Y5U!=F;fO)!%|(5&8Uz?+JM2k$ z^`RXt?e;pziiY4?1HaFv5)F8lW3|n;fS53z9{gv8y@BX}(p;@&Wwmr_>dJ`wSJ&Z) zmd4Evb*SCfsKXMsC_YOhz!!<0j}V&>Nl-ue>!F0+u-K0aQTs4hqdp1nsk^RlF=%ND zT@(o%8YlwX(uf_6&j`E2{0z*yllG^Ji>vonm-VJp^iz*ih&cua3{?R%JiREjSsJSXw<^eMCe|de?p9UQ?=O) zyPW_qyp3ur&DsY01F2NHa_)Ggd?#eb9$(-Y-+p*|Gga-n$P7+yhFK_dRI5uh$Z?1% zf{yBpZhWzM+0Tg5QNL45_R8W;Wpihf2GAXjt1fiADm^7o+*9UfFV8-_K0W_NLy~v3 zUYdH}quPRkKgF*y*{P z{D`=Gb!j(T5ADFUeNGlJ7aD0Iktgu{BKB{lCA+H)2KT6iSWB>$?VhB&UNf4wU?9JF zp^i$(f|aTa*}`Q|3T5J{mGgsVzqx$2oGcrpkT>dT!2&7T#f z7Cf~#oi|3c%vmPXx*MW|*jzVEy)TUq?Fs*; zkbdNGkj+rLelVmf&1>s46l{6nq@}L0{524F&yU^~`CQj7?@E12%T@JdN}bjSwWX84 zCF5CHgR`YiVe`ktsHk+WjZBU$c!Pu2Ft-SBvn>kWHf0p3&*`!d>HZl}gb3A??` zm$6!pH&OwyGD6g&VW^`Jf%Cqg%lXT7-SFwz^`(XyB7;ZM*!Y>7S4OP*h-d`MRG!!H zyTh0Gs1TiR&!_?IZm82@FzWU(umcz&l-nU99Rc~ipiR9TX074B{AjwsHXGui#m=&0-#24QR0 zHNtJ%T7;1Wfn1wO;5Pi=-Q~<UtMdjA(Ln;khAL`@G%j0Fd`;RH5#fk(MdZ#bb=hFdchX)5|zKD@c7Hzpoq2e z%{b=(xl8iVn{qN#sWqC@QTv8gZ1HJ1I}oAsL!)LsK%(8G56v9KU>o>tCJ{m4V6yWu zQTH&!?Af4UqXhtVS3Z+E@oKmgIw$G{!JWN4-0Xc(Z%$yo)>Jr|s=YE1bXEL4d?q@% zOf@rXXk`72Ag~CS+FPN|GOA|WEBsgw&f!zDcRN3Vc|I-ZHqc`#4wowew;*||L6V_5 zIk&W%a#EAp1;&Tl_aF72^;23d^ul!Dr0S)i{J!I8Gr=AAXqC{`z1sO6mmrf6cEJyU zXd_Oo!gfmIH}+dKVpFGiHXeWeP7fgnN-+!Bs94QyKo+Pza9^Rm;pI@UWFL8r8zsbp zz)f_a$`74N*dFTDmDX-54_Hn8Fa7pVbMA!fG*GH%T~l(VhqmcVwV4f+&kv|018J2z zQXje)$+@R~F>PuY1{Ukn$+zvyYwXI^hpN?Qt7;J6X4yjQ@d2PX&*(vKmQwM{EJ=yQrg|EcVdMeFt*UckuGp zdU>j&zU$DU;$iTll6s5=p-j~ZSv8-==kKy&Tvolq$EO6re~AlfA#63j%R~9_X0lPQ z`9*z#74xnh;E0&JtbCn?xLwmzELuGm{btlknb&f9F{RPK&CO#nKva-AC0Kh*h=olG zFuM|8mkDuIL!vuc>K>8s{cfDn)u*jjAG~F(#^pHOr*_r+IvIy*wtRyyE)8Y)tS}v> z);?i#S-lOWR|h4w&nw+i@UL&1W*ptWKsYYy&%eC*@j4~1suY$l6sI7>s-KDSa|Xaz z=NE(~2j=@SfrKMXVbj=wz{Zu(HM`6d;H{67_ifWdnR_~-P5a_re2Uo(NbPdaL8K)# zTAT5esZ6hV?j_32Hj{n&5_#Comhr5>TTKofU43qFnMva=m)G#=VqxX$v%C7s{P^jd zCjkOy)VO#}`&0j0^raM?b?nBk)-=_)=8FXC{bayFW43i2pa|zwV~8i#JUN(P)KG)Z ziu>#PU5(-HAWBzx8*s~blcO?&nhl1J72@$(E28A`FO#Uo!~ogVoJnz;%HaStszgYY zZcdqn=q6myKO*nd?6*d$`~0M_Yb8w;JrvL4>3WA3gp^{XFvlFyW0rm+>&;2CwkA#e zNkOC6P3#Stou;tNs=+xGR@Bk%OZxEk-9x{jufgjp4OK-|IQ=4EoT~CnbgNmrT4>yl zKfnLKw0+rjWXF*tp66F|M8&>5a#J^FB$1<{nw)v56Dt7;1>gWE66~)Zv$%=G-7>3G zg;6(a0hyk6iEuZI@G!ec@2<*UZt1@@iOqDd$kKU8Qq%;Pkl0|ZbxOg5I!N#|JC~AJ z$GE(xT;8S zfSfvtME_qq-v^jSxa6W8Ua5*y3kUeq^s~pbpr&xdKD2o>369EOohQTWy1hIoRh<8_J@=pk7Drebz~o66U@n|)w zuq0(HA{e|b51=dBi4b@qrJ+{R{U_4erHXElC+OwjD#j2n01)@AnQa6ZYt4(xpd&B9 zKKuQu@nD+t#I@`kV3&5FBv)(QKb;P9c@Z(2QR3UA`w5`T4I+nVoi}G);!%9z#4^ZF zm#bwfhNxu|g^tv$N??q%;6SIner zPz>xiibKaM;2~;{u-plHx-7%If8^3gX%CBi^qK_THpn<|qcdy|mgOK|LgOpL-ptUA z{ZK3#713wD7;sB3D(=x*=_oH76NL?F#2#gDTIvO}kk?ZqjrBOLa;=N$smSxdlq_9jVS z%_auusdy%>I-XdisU>iSuJU8zAvyc8V2*(c0@J{YQ0a^}rZlff95W5$TB(a@_b6f&;gxDJo!Fk3x!br5Fyok*gsx-yM8eO;Gb6OsWQvHq zr|xirC=hWs!0#6c0~^%VV)jyt#ZzWg7D5+%Ke9jOL&xB$dmo>%N>tehGRPzHAl$^o z9jGVK^bu7`)6Ee~vFS5mxD#y^szu;}2#W@SBw)C}k&1EV0SAVr(_WAxj~v$XsVKa@ zz(25cE6cIh7l1ne8Uk{aUc65L%bRq~?cYw_$NSrV0@JN*W~j)6A{i-&n1CoE&5Xh8 zfQ-1~R;iifWBxb7US4RbM zwXwdhgMC}BukL{1zWLFtoYFd-NHH2QLJIZ%GKC=Nb)_8$HHFj70)L zOp3whct)SCUD+7XsJx2{p1ozBg8u0~-TmXcd3NlIA`}?l!)#kSAOgJBz;o7kB?>8A zC;Bj*i$jH-hML7rE4s=fBXvVdqRKxyltLOq013|~@p>z$(%D!bfhjfxV(6-t1Kj|S z6@{NEXQ$*jOdZSpa59WpTyMHo>}~k(9$?_2u|^BxU4dWIsGY9?y|{dh|JM zJnhA`GL#4hLgH4RUcVDFT%}qE@C1~gDj-$rG#4egi-kHm3Zp+A1+yry9WQn|UOCSr z2bw*8AVJ*f#k>lfw8AZ8>~x)VSE&XTk>Qogs4240Uc1EHT&>_V5g4$FbT-f>1wf)A z3gmxV;;jC?AaD=N0=!wgE3H;z|a#6jJ&EwZB!3($o*o3 zHD?1|UI3C89>bT+bGFbek1}#JFJ>9Cl4`gumvxxO1zS*TJ;y`~l4~C!bKx0l*d;6AJ`*BkZDN+r zdeyb4$e&bm?7)9=4v%*NVdPXMBuQUlN#2B9&h_I!n?yy2Jq>DI=j?8WM%CgaDm?NE z1tS{jUSfAYF2c6}#6rnR;*FC*fI)e@oj4zXa^y;;)Sh0CY!cIm#iK{D&Y$i3o3SD? zYRV|=n0;(_P60(Av-QvM$V?JaTTRWXl&CT?e?Ny@-^O&Byu}Z##xaKMTJ{de9K4Wn zLKb|4mRu6$NsfbR=6oc~0}ZUHaW@6@r8~e3)TW+%qvoB+F2+(hGUss~M}yej#;T^r zfJZ{}bg{^wdsb^2c%~wQ!vm)ZXD<4~(ZGx_c2W{Cvju?r15_Qilm^y4rIG~quRu~3 zv5qZ@dsl}?lK?Z>gVU(%WybD)EIJeHfk#N?l$fssor}nB1KOTZG`6AUb<8~)1#tbp z_e7P&gsc+!^4am}-%P!Jcegj~X2DT#XB{x!(6qtf5mI(ta#I(e6baAu0H6`XM@HnT zIT(-iSx}EGB;{nrFz$FmiAWonllS14?_=-L~x~=&SbxgGyVC`6L#EOTf?JwW3R0apG|T( zQiw*2ANB_}`qHg#@^r|{aayX;0}F{KWmTF}27@nY)G4;7mBd*a>LTFOC%<=niO0r~ zhq>nfc8`8}=N}Oc*)Xx0trELi&2<;d_G}I4l^^ORv`ImV3(H{b zVfV_|N|Hf$g0caL9nTQBjX#kn)IHEv7PELx`A!4_?yB4r;;t=4ABqER6E|2wWl0H%o?4fi! zwlpAkik4phYy~Ak&ySv*iiRtTR8Dl38O+c`JfY@OHiqWTfHhVik*c8AvHtqz|Ge3M zkqP94K2L_;^agYU9EV$YxJbYPI~<=t-ZxjbACWT@S2)~F13)OA7Tx3v)32!>6pFo) zGR@KCA>P%^fBdw6iR4Qe)voL8ZHTf7#cncVxK>CZPXKKViuI8pQCSs_!IRCm4z$E*1veaIHKT%TlE8_OY)+$uY@-uGkVu;V&bWWNE8`u9&Q(0{gS5#9 z^MHQkb{&zZ(J0fTj;#w@+Zl%^Oz z=8TSsn$q%Y#N|bzz&gR!lAh?^(Ex_LXf%Ax#_;G=kOJ&|Gk{Kn1nO(-m)5c&OXIyp zioMxlI;k(GI6HQU*3ShDtJNTU)Pg2j+&Kuni9S`27sidDW{1%?&5t&-=0wQL3qj{& zu8)=kf~2XdpsF5OQwNg(ujaOCks98Q6ag{7lRl5UJXgs6P z_->GfyQVw}ccVL!9}@n@hNPBeqy(?07SJSXR(KjWgM&qjuNb?8ZTotDN{{9C-A@PM zyZK7sVe?7oZg^xA^q-QUkrwK{7nPzBJYe!s0V!7oreHcn#+2<544$+}(Babo^)( zrN}vgqTwly8!&VpYKB+0Sz5a%Z-IKv97ldjttMv!rE34qTKT2%xRD6myfdbw>v z?4EMWH2#UE7OB`gOW{7`CadYei?ZYs1z+HGvJkkO! zmryq6D~^X)$BmCShb@n#lb@o?k@P$;$(3?IFS?zx*&vFhz^py4JAQmro@VEn;yC-t-^Q+QY-u?ah+=Yt)IxH3-ZL%$DZ4Na%slu`|2dkn;q0{JNx+SjM;Tki+8rJUpiB>-mLAs^}@I zi|dgD@b^Tqo^iw~(!7v%%-Wp{!cL`bT@)HnwGE$@K?S|RfL4e>_dGq9S6PQRp6r?G zVyAJ==o4!h6wGmN7imF)K&WB(>d5@XhogZ|XP^O$VboYI?_ogeSb~UMX1wFdUdX`J zolUIc2wtX6lxX4Eo$Op3%3f?#6kI{o;O4E?&ayaPB{?0B+fKMB_Gu$Ob;|4k=3xZK zGLBuRE{3#=OPgrZ4)!Xmt8roexfCfP_uDb8l^wBO;wnJiLdR#p)F)g6D>6Ch+GfYI7$W;zx7S%0Vea-nufL}b^ z6{!ZsiVP$t2yJ+1iq2_#PMEPKZJ*SLvwTqasPWy5M($uGo|f;{>%jA%5!n$>5YIoH zxVr^mp|Vk+NrDJ5vBYFW0Z>n)stP8odW+U?=ilmraQO{v2W1drkwQt1%6L@h=XvcU zEfq%9c2F&@1!UGr?=aqZBDkUsf{qzU>+VYC2VN>;kDDNet%AjCGgQzkw9XAq6@Xg= z<6?@)DER`jFiG%TWj`1Ubvc2%0ftMi83W|fet~X+ph_Z#1U!{08+|vSCY$EM;X{!{9rIP z6FH0987lSk+Cnn51c1c|lx`z1p=%6s6>8eYTwN6=aIHKcP%&O93WCAFCKRr3AP~4j zr-@JcKqzjCR-V)_MFZ?0%}_8GBaDZ!B|U;`0=bj(WjdZMTwu{ug0Y2)B8qmsWvDg- z*iezX@kkd+b2eo^0>)5k96{U@*X#k8O-4?C9z8H7)J$l+;4u9BK-4@kKf!_uCWQhL zU83w!$xQx&nVVt-1ZA&4`PJKcSV&jEL_`?I2=%#Yc#>3KYcg&+<2Xf-c8WKuZ_T zrffC>ilBNom6-8q5Wpsyz}KS|bHfY|JQkoMeKH8BC>{kjtH8lzQ96K}u!&i67tyhE zz9=B~`MI$X;@lD}xL?9^zz}I91V{i9!&iII$HF& zZ%Qeg+%tO=sA1FmD&Cm|STG+R8bMCdAnXa8J-OA_8QwY=Pc^ zecF~#Mr(_7iK(=irB;)mBcfP8!!rw;5tjhy21=Sea#oEg8&-X4V@o!`CQGNN^)o!V zt|=XLjuIQ*`9CVcSU--6>T&Kmack8%btc{lG~*%=hc=cxKA)B0rb6x*ZanFYvRR8l zCV%>uEz*Q>_uRL~=z? zTF)bxHR4~hILx`jb5@y%6`gPilnS7kL8?MwP;95+AxwZez)?%l-JOpE&2=Ojz};%> zba;X0Wkv#s(VPv)g3Vit?SbbHzbK*Y!QeudN3OgAe_-Sqq+B}c*bGG6z)XTw3W>`9 zJ8_YgK)5sII*~DeB_uL%>oLZrgvB5bxcZ6_zH_UGezmV}YeGR4S33mm#)otbaUSU0*%! zK0zKu>n>=zE(9Jy_a0>t1qW#!p_C zog#AnVshR8>&u5P>#ymiv<1GQ<_R4Xn&g2AkV6CXg-PZN&snC_G3tGC^+T~PFL-LG zRip6HS`eYpYB(9L3$t}0mt=93c`^Q$4TXjF+9=H(L|ipX&j5Bg08baT3bO{c8QK49d6+?o(R1OO z2f=spWDp*cL;`i=82zyBu{qNHIY^QXZxT(kxEK5q;`_|C)p2&pu`4OC{i-t?R3mx3 zv^d?UV9e9LR?qR-_e1e?!O*xk(vVhYqBSHoveLrEs0mpx8cn5o^~o5x0hVK6LS6Vm zxmPP`g_C1R6gfxT?wF(Vj+5{2Yr9|3&%@RZ{RfCwZKaW?i;%}ujwz$TtB;Kar# zrC4_D&Q~x$uBbLmx#^Dzh+@&S8wV!v_Bv^7qs6ww2nwD6o2rVf&D)!H*6AJ9R1C$@ zD4MRhHAmat%pN!-I)S-FE!B832sL8xt(3|Kd>Y3m)UVE*@4pN%V3R0JZ&0opd(vR5n!%XbNu`zfh@N`dc^q7QX|1(f zt+Pq)eELOcb$SwD6P2Pvc&Q0|m>v_gn}A_Zt(Po6vSa9+k95iW#`n=d>p5>U9)qS$ zpP}cfQISp(D3SSWoWG{Yo<#w{G#!)!t-}1L2 zc#Udk>9MML(uNBbV3k4?D*LM4P|sHrhc^_+c8OpN7`aGVk#`xGECSb61E@+m5dv?^ z<6H3{0bGG`qYo{ysmVuL3b4_UVn1Vc_-tgUc6qZ|SAf_BdfZ$%wPrgh+Rwqjg%1<*Q zVxYMisaT&df@3rxWV(9Mlq1je`PNa`6+&n1hLqjJ*bN1ppjsg%XcX1`0bsd_@e53=df{b7cGe-TU-6i&eA2*#AbzcM57wgDy@R9}PP(-K39QD*uYZG{T znaez!3<}q>;27AzS?@8A)sVpV!l(>;DvYP z#%$x^Qi5R-{s^eQeCJ4Pqi!z))W*iZE~^_pnu~p=C`eF-l@2w}`lZaqQhF zY;G#lpZ1Xs;+;z@+|ntLO|_e}RVYA1{FNx`j3$DOsvT^9;2e#RMye;?-ib#7g*<8cy1BzOrJ{skP1)0R56YSZT?rb<42vd;VWjX_}QY4)`pSpfr(a&65Gm-w0qHn_d z$NlZW!j5}iaX8)bup91zMt@atjZZ44$1XB5OWlt^2Bg@~$1{5sgxMOdJ*AKVk`nDX zMOL039J`-i3=f_rleD1@9zask&JR-ou&YH$e`|Wt1$#aag%4?hs-^N6qLk?4T7U^! z5O%Rahe}LxEY5KK@ngJamRa(+%L-B4nJTqk8r=z8;P`;>418L#_IsBDuDpu_B>_mjFWiA zD8cenjLUKCogV5a|MY?blZ}=%vsoztR;i7Np}$C_?{mGnU!)Qv=qVm(tFC#H0V&gn zgw$U==79iB5lC0vflw$26uC8E6vnf0#^B9%TuG;-5g@ek9Z)*ddBXku z;jz8@@%Hxmpw0=XN}*JpLGpwFuRuzq*s0LWh>GX!*gUfz0cf5l4Y`fU-9Qj`b`+Y* z?Wy3woM^)AQ<$fcseDYURHzKx8`etkP_}c4TIGWQlmJewY2KUW$A%6cM#@kLJc?FW zj z9}4^Yr1oA@6(SV84XTkh_E>-tNa^sFX3zB~o0=)D5H~s|@apA6N7AWF0spMW8I4$4-TQ+A&@I}#gao!jC7L1iGE3FhqZQ+V2 z#=wqfO5iXq%L|YlQ0QED`5zCI zrT^u+)xWlfw3xOTX_pIgtx0J>TLaw*DUgEy(WML=Z>dqgAB$ct$U>Q2(d+<}z=|}i zV>5E$4*U>$@om21a#)s~{=OKujWAr$%#Yp2d1{H&(t~kGs?<`i(a-fOcS9k|Qb?YC zH*|qf^yHBs@?PkMI*Rh+g99<1y8t|EC?3|PmdsC@jmZN?&cX63# zezf&eGw3H-d=HRUIunLRL4gt#B@MaBi?j*KgpaD8Jf>ejp)I6+vml4V4Tr6PF<3#)sVHRt zd}0S-q4BY$H3t(P_&*CnpZ6{>4mr2p=QWVsZD{2GkYd!r;117_M1bPtw8UQR7ZmOydvXE`V)5|=?WMZWj zpVf0&-Jk#ZmznSqb z8wGHK#DgSj*<)U2wvv+r!GHp-tI1@Me&DWw0t4vODll;~ScSmrG;Tf!Cd*-wwG%%$TP8GZR@$uS#sbo}my~$D|m5tL?<%p?D36ebIy-+dY zGQv={`1al1pn3HD;>42Xs- zG4d&EB&Iu%gymV@25LZW7%(T9*Fh$8vEdDQa0QJ#1W)wF)5Dnv8a1ki&Lcyfa!iI! z%y|{(vXy^*{qxV$4*@D44&j2Psvh19NRQ-rRG~Ks@Kmeg+wypdz=dHIZc56u7+#*J zpp{tiz{XZo@Q;R+Ml}IXFwZ@FGKnxV7(Wy4^67~W9|7(lMF!$g@pWy7&N`_5_gQo1l72_VnV`b)=NsmodIc zkL}H4dUrS74`q1}L*!iXR4GVA&P*;6{Ei6m+jP%#lYMMZ%; z@MK87CE!~R8SwpNjKebl(&kzt7o?C*DPI^2x70HCd$`1DQI>mOJ(I2MFY|FHs>{ine zNg1%DtZt6SDyO%Od<6{FXs>8^m=k%KyM&nT0(X+B*<9`J#}7|;Y)&BiSL%kyLIGY9 z$R21FV|bFjfSnHZ7~30Rhnw26CxsSD-VM<8A0aYVYLupQi=2ywU&lmZ}a z;PX(lp-Oeqs5n zB6}8F#gOAD(dnhvY!Twmzt#AJ+lat_sbf$}>MbfsnSTsa>nYj=q(nm{B+0TH)M`Lo;tSw8oQ^kB@DLMSm^{zrMT$f1-^<_)2tr93P%fY}3fcw)qJ%g(lcXgt zMc*nYS5m8^DB0DRE;fZ`=2@0OD|oCt9kRjJ!%J$-Iy&7*jry?J_@MxJv-xsc<)zuZJw z9-W-Fu*p4TNRNAcO$$k8Dnta=Esr=9xcy7$wu`P z>i8PX{b8CLhBHx~iw>YAGDbI2w@UD%HMh()h29L!k{wlkU*xiIXKk?4#uwDkJlW0OOf-?wLC()B`FFhrmvjoNAJ6XasE5+337V zD(U^>?c2M@WBo*J^TsN#X*jHd?0D0lA1GEJ?SQIbDVushipO{f zJ5e6EwtfI9AdP_ErI7F1l!-4WuHxAn&LhkXNJsa)jWR)jLl_!Jq|$u=m!p4Lq{ayd zShb)=9q>m4iR!burSa$a%ojst94!T#Qoayhnp~ABmaBVfIv7f{mn4JAwYQ5jD}t;fuTL3lVa%9aV?s0y1l=CsTMP z4!iaSOsQ#9==UQ1aGf6e?fqE0e`Xf6oyE+yHqk;GUj^VpgJ3ZCOcQ&~Sv%WKJr(Zj zaXc%qyeS?KmKMb(2#2B_*dGDl&J_Z-IjIlE`uXRH7iUatKy~^y^{!BufK$zApB~3O zY@v^o*n5#b++Y2Q7r^x>B;8Uv<$+xWh4N*b@>GKS9N3keh(h?h6Xb1qc&wP5&jTxG z44gnDZSaX24QrkwZKwS-4{N8499i~4UEMys?GFcJG;ooUnG7}1X|)2?^N=Bu88;m& z9zU)Pbz1LU7lYxS{@bBa(0zkl1v1dVumS~FLup80g@D=Za9No*!sXNTkC{9ItmbQ$KBwD`D?a=J{)py+~x1x$iOgBcUJbsE`l zWa%9vd~05BV{Yl6=bEIp9IKK_)}61mS;YmrodExdYV+pD$yBP)FrJ%T8W5{{HwU#KwonrD}TDa!pcD{%jlJnWX@urA{*nmsLxE zHlDSC)Cw~n06&0Rxe{mR5?^90aCyRe>)@OC;>soi3~lb{MUBbZ=)OtU<(cpFOPD## z%A@`w>5FDTVrjYn_Qb{!Bw+&p%mX#JoaXJ$AX&q{o=NXKW@&a9xJbArvNw#2s|63< zP;kHO&C><+n`kI5Kg!P2-xd?hXdmfSY^j1thf|N_srAkqpMk$z1bZg{rm1Me9bE1>qpfBe|q-Jznjhd+IJcX!>syXm(m-gwv-&2k5k{ry9%Nm6i5f?{Hz zxbA>aG*CY{`z*w2iL%krSl~Ybw8w+tsWWTXUKNo#cq)h|!nu*Vitt}=#wk2xgOisI9bLE*7Q47-U@J#9mF?gqoiieO`YXomJ1ULRWlN(C#W@nraRQ zLoij@yd#JzbYauhJTle0zZl1VuF5yh zV5rGc@&0mE+Ra0oV$rORr$ZaYxMCk-VLvXQv*HeWW*1c_cRUg6r*>U#-%YWM?UJpV z^oG^QrEDCNIsvL^o|05-SI4-I>sa%};!)qIayOYTjwa;>?8N1Kkm4p2{w15d0WRio zh8OX8N-uE$_~~Cq*jt?Ir5;i0Cz=_PRQjo zg!vQt_UCV3=ZX+$=Zb>kMn|KbBv4mr;4CqLYb0t z7@MI}ZOQdSlS-=vs9B~WVy0mDODw*&ZvaoHk~&DKbb&o5TnD1mBf(qdnoh9O@r_Pi znCEwPXsFnEOr9qTgr@#9#*Yup8JRHC*#6Kd0D&Uo1*q62*v{<<6vqHI7D1H3CMCikGl{TfB;(Ms)+UwJ$mS=By&{L6=j_6~gYex2Ei*U9p< zPQl=@9=OO0hfzUIU$9}LoM{r&WfO^D# z;U2((8o-Wgre^kEXcJ`FkH*D9mlMdEbfw|eO|^zy9$e>_bTDAisacL`!q0!j?aV{B z;QGcu|G4A<(oit7S_M@37?s8F zBsOYtr6LNd#o3rS-5*Y|;Ps{EBi_4mV^Oxy_YqKr8V?2KiwfNFY_Qty4oC_tlh$n% z>z9;?!QEzAdZCHKLR&FLAeyQv`g2ArBsYbNI!fh1JKou7;N z-?!7IF9V>a2SUz*;g0LV@N~Wv1-#j4a;Z@RWX*(JPuD^!{f2Zb$UWzmX?qx@ir@$5XybX3g0{y)`40t*M z4nR4IzM(5tVDFt%N+yiEkSVg`!HYfZ5mP1OIYeDgBn&Qa2l`GmWavhTiWaiQD9ff{ z0wDcoyppH+$9E&)xu8~c?(z77@y`?CN>Z@OSGE@N=p61mZv%bv{@uIZiPp>INInBY zwv>llD*nggxdE9^br4rti*l8gqL{gPvkmub*0bE+6Os}wfNL@W^Ma~T5y=UFZBPp* z=$K2<&bWDxwuh?%XY(*fN&G_(XmY?DC-X zatqX(jDdc7f-7ir8V7{h#yUQ<)xDyQDO7wdJLYDmjG)Ur=AkOZPXYFo=jQk};G*qs z88q@tfohnF>Jru2@bC6==ESP5y z6tL}7dJcFB)cEMNBg3>sjB<-#QTeFf-RT%j@r=r*Z{*p{q8;BtKm22xX3nNde) z0gi_ao=H1m?KB2~)wEsgAxBImnu}3?F_^v%qc$A9kEWqyHTQ&&j6-9iMUg%>YVOf} zhD-n3K+6j%PEcH3Rt!gsi_Sf4iuamkVk_Jz;aMNKxi7tn<3UCu#%)K=0&^}X)_rsn zdrSq4kqDR)!m%3878CcLc1L=X+|6VMjA08`<-Q`OiNwpaCYOZt(DJEh%fBBq3NXv@ z{sDm-Mz1%V?+{44z`C4Um-X?Bt>`vrueRrZRa!B3MVEKHC&)626P(!~s{_ArsK#TDI44?J z1nS5&(EUyc0}xp@JNnZB4;BA;MAe~+rD?e+WTNM3rMhII;=i+a{M-l}M}JR71m2Z@ zn$Be2^y{l~KmZqt;s;2z7*{|K;E4f9pE~TJSBZ=h5>E$F+~8bjwHLYwnov`rpSCXC zoW}cBB3s?Mb)Y)FN-0x66Po;aGyR>)T*FTtq=CmR*dSooA8s2^5XNRfzH(=t?yReS zY+p&D@g%)S8mzR5F$i6yDLW=i*%hr<0L6RmEf)yr6)ek6HS4`i0vSJP_HF^0-35 zG2?UK*^fZ^=ZJ)aY2|}6e*G*DGFuyZhO$pfcy0|NzvCiv6+DC(MW$CRPyqO-k|&~# zF2HHY|KU%3-}0a@MAp4W5Lk&DpR74`Ys}_pW~URbi9qU20^CQ8Q8Yb z!7(#&WJ>RbCK}}kf;tiN_)=D{=<*`*aGL1>U@g=5JBEnt=IO`McpQ&PkSM6@>GK?z zKjn!+VmT)$vc-c&wRkFQ5q_$sI&L{h6Ikh22T#q+$9%Wzy`eSxlnZ-wTQByr-D7F zq~~=aV~Af{bDX6%cOLJg+hpJ|2aI{{aUk!Xy3vQJFYcI$y|k3{GT`rBC>!wP0m+a@ zsm@7*YEKvXb?w=SMgbK%)k>5qhg3vQO-f_Zd0WSdxrk|R*pGN37N_CY2gaCE5)=rf zZZ%RjO)EX%xl=Tp58Su!fHv{e+5*MbY23#D&^UReO2!BQQ<$81Z{)AHXGW0!)Mc?ZOGT*N87lcLzK4BK94bN z<9#l5Iu-F#In*}ZYmlk4Q9qegZKJ*pz1qfo6`plA?57g0ZP3qWUgu(dDh1n*`C44; zCHkw7vX^kL$j(j%{d}6X4*iOJ?eFb6Jzo9Ven^j(o0f)8<7}&tugBY#fnSTeor(IX z{Ow%GPvvlDVtzW0I~nvX6p4a1cC%@uV_}%H~pUv?; z82WR0-iN;66}aBXuXr84cQX8IalW%(@VUHi8T?hb-+t&<<$oXj6`#rh_rKt^dEoxH zd^Q){5BoZNa6k6vaKinFpT`ULV}33-JQwv-`Qd)d*WidBjQq(waX<3waK-)Dufi8U z82VE=<9^`J=ZznV`>EXVbllhCkIQd(6%M%!`HDR9Y~au5l6&D_hfm)8dZKI>YK=10 zsOUAPpDtC1ZcDZJ7aGu?qJc8(L>fm_F7lAPM?H>->gO7BDzF<`RgrnTF5=z0FiVe% z0FUj^W+{B(@oZ4o!qE&tIj(-oMax6(ZA2ICW^e^NrZFbPi;^t)JKO`fB*Lb(QB zN*En@z z=8FY+XX~nInEoWKqU<`$^Jl$#x+0&r z&~@-%p8tMO&FWPDjP$Fd%zjO(7d%=XZ^m%1$~N5qp~^?ao{pp4-CYzW{T@(x1$*~J z&@^{ffF6ns`Ba+GM!&S>??t`6|L$gh(w(zM;NYpTXP>@}sbcV`V8GC9V&A{M{GmPq4N4ji!q^8(G{<`SH0@j6q=Ml~XeV6Y4bx72v zg=7lPt%KX8;%h+aXS4|Rn4+yj=Sc(%B1CsKF$OaMsE&|shwk5`e^Wlen*f=!$f?(G~|heK*QD^)Sw=)D)d%8KA_O zPLxaUVBQTN*gF9(O!suP|A-ic2Tbu;o28?!4^mM|5Yz=vT^k@9J@k7iC?0oXEDzf; zyR)+%Hz1^z!X*kwCX_`aBtzQ-gM8rZZm6T6ZR<5;)CSCTkXCvrQZXEOvr*?3%$Cyj zh`k%-xBGN=*M>P3z?xtVs?10{L}@7k2;4>ohv9|PfH(KYMa4Y?B3N+xA*_Ly7}cOD!ExC?Lt}$un;50A)qCwixJcgb40@+MBVw; z^KLHL1TW*?K3g{6!nFtfL!|vFQNr+Yx-F6rsCUf%I|-Y zo0FtMDu>~b6+vg=QK*Pmu>hfHt$Ch?x(|6T)b}^-&3(b(a}ojY-)EF<6x@)zrALs$ zyXc`L*}I`cdf5h9BNUB$2~neb<4trsPW6>s#&S;Q2~vZ{Y{fRvx74KF47p63E4&kp z+jbEo*40zZzC7nVyB?|8{t}D`;CVFK8*Hw|Ggx?AE z)XMt8H2s3`Sv+o&QR}-bJl7>C?%Xg5Fu5uPy-q~qFMpkmpCg@AX>!73a@3_slz9b< z!uzDKYQ?`SbeY(Xv^kNL=@yMr%t78fvQz;>)m|fcbg+?%0onwn>8WtDE2HhYsj67r z02zH6O0y0;mC2NHwjm*?IB}19lRZ66&y2=p$d1w;dMXv~6Ewr9R;cEYo6PQ1xL3O} zvjIe+q|&rfJisfFh+7HZ9splX_{0SYA8crQgLZ_QU6}y1)&^`rS%n;4wWs+djpTIc zh7wnet1@aE>d#WDsf>w7jW$Nr_fR2FgYG!ZDj%fVlFu!YzwIM+z zU^^mgdJKA_0VJ4(L)93`z??gQZr^Y98>k9shHQHyR7cH2WfZ{a^bB(J)uKuF&f_1^ z_{(%zU2&U)8m|)6IZK*efOY{n1BW0D8*1&BymMK9yTxC=+-zQX51MSEp*=KxRcPj_ zBFzUwD0l?;C6wba%Wb^rx9Q>p<{eRd1EkQQC2EL+u(?!u<{nH`#_BOhP6YdEBMzY( zR}xX^D3pzxl|wxMh@KK&R%MzYwX`!c5Amkori-HkaPpQuNGYZg8r`6Ur_COX2aTaf z3#!_QU|+8<&J{eZgd7Q~jsoT@XDGlImFBIciyqQr?K|W45O4Zzx;Q-cNYSI9XoOCC zITMk6Ky^{5vjB+lKxDOVgS~0LwwukhX+vu@FlGh%o>~PT;5p$EGOm{r%ewLm^Qmy- z*XhbI8C5bJ$*^E*J6iFeOrlgKuvH0~skAOF?u^_wSDS;AnBK7p;F0Q4>_7u(0cC-& zy!Bc|WO5N{7rP$}{~QKdBC|0KY0*(-hKgdvaC4j9HIahQMPf?rq@P2a!Y)ad5f^1b=?|2RwRm9kE|1agjENsF@7pH%bPQKeIsuH8r4b-=-cd4(9uSr9(;{QW zxbqgLaO2nM$}DCy>S8dpjA95)G z2HqYeAn306>vE9pIu;Qw(@0%SdNE7fxK$<8QZr97|V&CIXuidTHQL3dGv(t24Mto?h-o zW1w4%lXi@CTlj~~q^ZaP**J*=F{I=qXiMW+b5spvMedg>SB^?A&tVR~Ph3i&9&12i z+)bpYH?mC(7}^ohXf)Q4$B&rN2Q-1?%B5$#%(l)g*+i5nkL z`XFdj1gt7{B27*+8x0N`h0#hKya*tXLV}d6r|L@-$g(uqW6QF)2{ariRvIfO!8EFBZQLL*-`~`$S4Cmc^W<>S`rK|7TT|gBL`VWTmAi0 z9^g9UvwFs)6Y+1#WBmE{{_#F-iicr3#uQgvJT1azUA;HM#fBVK!*eFv`W+e%#M^ z4mb8&rZ8`>xK%J*9fk%WquK_9g4+V)D}3U>#1{N7)Af*QxsKLOqK0!(pRaZV47Fp1 zd*2(Ll%R)(rJ_>C_{%g!K>6A8T%C&&Ve)Jz4t?5m(#66Slaz0r<)Sj9JA;_fZK zf8dpk#Y^1q+kW+gCx3hYj;|TCP}E9wOsXfz23imPB-p!^wQ$?ns;#Z%cxk9`WuC9 zbzFcu?u)#{c~<_SN{B8XN3FI(6Z$N4*BHlmqrkL{u80~~Zxi5o#UIbKf^=E1haB-5 zbrM{cstFXBdWTiy0N|K+1JD<_U=mU9yiqGI$gw#DgsD(n@wf$-f{aXiALoh*(xgE~ zQ7Fcd`$L_^HAQCGhVf=s6~H=bv-kP0ZXf9~h_VUXr{ySH3Y0tJ%?iehmdhUrAPlLw z?S=STyL!AFj$;uN4s?k+&6(cqIUttEi3^M-%~`LT-8 z(M9ziWS&l&Lf^yUv+MO8E%T9h|^7!rE)+yX~1$QW|V{jT0%^`aXRTL*SR-rPel7C{{HQ<^n?B*7m132(XBNB zbx0%e8%4*?0zwL$rrNOya6~+@M~e{_2(>`g@sN<20K9OO$k0mL;c19h0AjuuYI5(` zU`En|(a0c#2?gLEi1J*-agF1T6B;uZFHIGL zLECk+9;__{{!OCPbt`jG9iZh95y99%x>cp)$9uzY4K=b8T1Re!R86ICqwoa*1o4Qm zpTkVs<(+;*!6BOhnNSTENQY*#%6OD5TLJg^Qq%g=2N5rfLQ%Z3fC`cg$==WdlAE{q zxr~&oQYce9pPs%Ra8}XYN;*s96=Y~t9Uf}-^w{C%50&O$Ishj_=bOz#P_0C3X;*?b zlQEJ&JXAxSNxCZCNvJ6op4VYGNydFph_BP1w|kE&)kJb;J!(yt$Z2RqgeaOtJVZ98xW2}^KQV7lR+qURy5r6ZhW5aaUm{%2!;t2UCiPJ%W-_nUae)C=5gr z#R%(V&v<=0osL4!jt0yQP>0WfBoW6pR0gd)DqI11>a^`jFC8H}QNHDJf#rvRL!`k| zk*L>fz$lWQD=3-(U@{>)>(f#G%!L{nPOvXmDV?d`S~~a^kcp`o6&!^RnaG*_F*Bn4 zJUTSFaE^o_y24jtw1}KMudAw(XmsNu<@HZT`9B=}vH*hQ5+$3qkaL{q$h3~62x(lQ zkkP>SOqBmSEHW|kQFM`2t;sYu2fIl$gX;8dPDDgbA5RS|qfFBfi5SxejEqn@apyy2 zgOLZ0UH}1+O-plQtIDpK|-JCM`(kkPX(@@K%7F+ zv|_^qX(a(po(eo$tP`0>R8Sd#jsf71QMt@tsY?$W=fLx+->-Kf4cm))yr_e>kXBBj zj^mjl`!)7C2$@@q0NKC~!e{HGtH<5w(*X~<*r*BKl!o+%sjpJy{;@+w0p#Yozb=LN zW*cp#GV%Ja=+qay-n%*}l=0~=ZFUClmEYc}$e;2WhY!Q<(oG5J^zVWl>4sC*(g;l6$`E)QE8(Ipk;~nYeAOW$}tFD?seN)A(EZR zp(GbnCI8_egN6*2suUpA&D4TFwN0EKZ+GK46q$%(fNI^x3O-HGz_L*qKnWa`!9j73 zDx=$Yhu_&4{O}@e309>7*W(J^aR9jKXCK(L&?tTj$U`Y!n@@&)ye<6wQx@u8f*snw zra+_btI@J2Hi?&jr)Glc+}f$&DULM>??tqi`tjHFc)2$snyx?_*|E`CHCnTHEmPMh zi1Z%GrqFW6>UEgsKTJrFT}_yesEfjNP%a?JiYswE4$*3&XF(Q$jS=-!pz-6wLOi{^ z8W0Blzgb-|)t$xv;g*}=NTU_EG|vy|Z|%41$(3l6om^(Sp|tGOO375Mf(Jk}1=zo0 z^59YBj<@i%6Kc^u6B-^VDx)v84X=y9LED;(26M3>HKEq(wijpKL&FV)9@sGA8AYSQ z*JSAS=~HO2IAl6DUZ0C|d6A7*rP3plwkoCsyu=1(iPsd_&B=8U+E|^AqNWF}qVh;p zf=i61&@m=}Bx3-QNCr$AJdvu9{^m%??k$N|9H()44_tu&M{FcOCRH?7(~z- zuG4|5gQyATl%B^pSo*AwQUTZ+@G_~{suo=}0+_Bk&TkM*w&YYVURJ>8p=N)6^FG&Y zFKMO=JrYtIPPrgJGTK6ykl?D1T!XHj$EiLp_`_I@o(@{XF2M4EBZmR>X!#dfAc@kt z#Bn_3h%BS9K5(l#WKkAu2XwT`R;2iAYl?Gcrf>n7t^7 zQL`ptG}$)Hm~3%QI~qM}aXQqy+xk`x;uwL^0+*N+*far3_DM)!0y6cCnrov!HbMMw zzrR{h1+Jmevfk18$8oh6WR`~4i545#(tGG-h92XbSeHx{92C!q>vAN(Rz_OBG4Y0? zyr!WgP3lj^n}+4{A+QEC6l4&9MC>bObDq!@D6c0>OeE2mdrZdzRmW(v!QI&%pE6Gb zp*ka+iYbGv27F=N_O zqu!;+Eo(N|0P>e}ad>d+@KZKT^^Qz}(nrwe3nq!8P5JOrc+(!Z|V*dRV8-0VWxajqR^wvI@5+C`cfM?A8~?o}BqW|_9A zzxCMD|HJ+5UAuq0+WOR)j0mMFASz5qb`M!(Qp`s-(MwBP-=2j`Puoa`)O>gRi9Yny zx7Iv4Rz0Vo2IB({!HLKObx6oAj>jt#{YpG#F$BDbnDiuK8S1 zi{0R0fchRd)Yg{^I>rIQ-}FASy^<6I9|Pk9Kq%FKaXE?dqZ%q>tXinz_Jcj!V8|f7 z!S{nQ;B_UH6xWY&aS=G*$t*E3Kv4503R2DHlE6DH=$T01e~G^B5xKNx+ElBqqY_~kUZvg6YN3+o_tz` znRW<(e?3aM9gTXXVKhsrkQul_89=;IOcT#vu0K6(Q0T6r1ls~S5kNTJu|Xdf(Z@M4 z)tbt5`8$@FHzRj%+Iy1)p{Lzs0t7a$AcHg)z%4OSf{rbFz>VY9_aVrv4zz%$=n6&z z$^fn-fvoa?awMB$) zpQe(sUem%@YJe!16OyN2)3EFX1f@x=))~+bL+$9PvWx|^ziG)WT)pZbk|hEAP@XA= zM#pA7+zl-#w@^y#U)%_YUp6h$WP0?fVP2riG_cID9b?waJo5^i37%^{5cN@xv*nmg zmwbbYnEqjd5T3Sg5ifD5WTVzWZAJ50rwktiZCUO=h;}K zlmAdGJx;T5%IDz#TBFC5Ah^N&AkzVgYZ~yzXYrv}hMBnZUO*rcjVU?*K*$?GE|m&A zkBxYMeD}e7v}}WIv59D<<@Q-hG(kcl2nMv-2)08>`rYaCZ*<#N?gVY*yrb!FRz*y| zL=o6pUhe0Ocz|mZvW%;Aj^GKU+ll?&je!U0-hog9Pc) zw8V_U^H_moy9wsE)|{Zg&9MO8?8iF%K6&lRXLq`a#Fda8O$|VKlx!mL~W?lxYqRHh~^NnB=CXc$5C|FXLd;;{eZa#36fpuVC-w_yAcmPt#i-f z3rDlO&ItsFo2v!#!K6(i<+cWN0A-|XX zXSj-YdEsc(h^LO^%l=~RaD%m5gL&76m&YDBb{cG6kX*T2Z4G zbRJ{Jdt~Yl^~4w*QK)@UKsk|SG!ng|VR3G?rq2G=CTR(;xK681#hC7gz2{USW3Lr% zfSgs}|A*~l1T`>tcO~cjS3II%@S!}gGaFTm)67)*9vY--gBiyYvPlGXah{4XEfiqF z*JPwso_lsEr`-gQ8?fq%N!xYvfaNmmzvdC;@*=a#QF4UjGOT-nzA$`PhsLQYBt4BH za`JA>#7#^gp>LSuwt*Y*h`cnxa!;>}J|cqs;!j7pybzX2&1D`EiuBw@(JS2T9L{~@ zoSJr)`|09gB-_p6Oy+U}GGv!|w9_G*iR##E3?r0nmf=+HnWgf@I@eXpQ%PiqW1vKIRuW;ZoVGE2!*fC1ySkegzuVcJ9oLl;;B{ z&u-i|n}figg9H%m)v>@j=4+sVbLb5a?Bq!gHL@!wOTB&qoW-aXt?( zOi?}`F+9ilJj^gf`Fzyy9Ov_J1ETzYKn}C0uZSH^Mg27NFgD@;OxfldP!f_5GH>t-847QzMV^T(g?)3!r}B7z zb@K}w3HkTU3Vw*}{*$$Ml-f?|rikiZJ7U@%V@*6k?cIK`?{4niKThJMqcv2q!@nkp zp`lxey;F|GSR@Hd%AP`^HTO%pTn2mj>y#Jph+7M^76-KCfeZ|1iGr3x=}|{a6-=FD zYv(H1czIWss7xBwpQ>xztHjM9Lun4Y$Pp>nWXP>wed3x%n1}nuvjY?n$vnW?jn2Jg zt{w7t9#XII+48hZKdKNN>i(BEw>&a<=;gUfSNDIox_SJ9|6pWM#4lRRj|NOZsb-mw z0I3`$1>03T71)kCNhd?Tecg}`t=!(!+o>VnCY!k$j2t@j3@~Nz+>(|^3cs z=i)u$U-kRjcMs#Qqsu?a+>rBqRKija$p63E-mJNfB+1gmbNz~XoRN`?vdwLIY{{(Z zDe10dGP5Uho+!2wkN^P|0LD_kzQ5xa07<|vA|{d*BEbNddG)&6qI!;*>e10y&8tOS z*H|Z^C-a==d5j*dYW*bW@7X)JmJTk6tqrHjT0dHF)926E!D%}!WAQYgjZZmXnMT?X&|g4I`i(fSY*kxg|rFf!A$br?s$ z3URcSNN91k{nFFA=O0d3Oo=Lmm1w=$RO}6uGMRX~>{t;NHB45*3M4}q6cuht=<+esY&BbX9J0E<8PRB&CIhBKX9pHvj%_ixxlqO4Gj~YWy10za@J78oR$aiX0k$RjWNx_Y#2e&Vza(XcqesxbJ&5 zDlK8*mT+k6vs?N5r|u8m#9y5^|2KNCSBC$Kp7$F)=bvsr%)kG(ar@Bnw+-QMf5kV5 z=5Kw$Hwx@;f5kV5@n3ww|M63f|L3_4Bod1Qf!0HllgU$scw4s}-0hVI4ZYZ0KR?S~ zTR*MKi(MMkOxFlVMj75dsMiPd7Cc{-S-X_$n+~mh3k2}14F47&@aqi!COq(qrjKBO zj`WIE+}mc8B(yY6N>qLjgI!bcwM&oemyQ4bM+b*Cza>ccNg0Z+1DqF_C7eIDHNlHbhq~jcWBT%{&!5>_rMa;q#XovIVGBR8eYOEGG#ZTGm15 zLHlRm_R_}XMKU(E;zIJ9jVlj72&TQ_(WFNvncmc6Sn-^NtBch~PtlfLa|&XYrJ|c9 zSQMI$phDEaiA^sp+AEG zqN-OHlf~Gr)?Lb(Za@MQVU(&F|2BJ@UHK8X1ckLpj)_H4Jk|g$)QTe_f z!DPo2Zgu%K2nEk7-7gG0^y`bDLoS007`RnDdsDXP;5$oS7MPTyiUdBV^?hZ*?IyC_ zl&H`6b(Mgz?PHL~vVyAbhJ@8Uj!vF+mKyl`Q0As&zwj(j_S)*Jzme76;;z%uvmbk|x)lFdk1R0l+l6Z- zWqWpxrbLBHs$vRW{aB8Sp1EK+WjedbFnaI?es`1w62pP=>}C%2SBsx3Dh@1u@rW0M z4A41S%S)wAEke~!%^Noe40CKiZ7VtBXLJ1dhr6pEURNnK15lUrKq(=3pphA)XU$Jn zr^__DM9*epi_!{ehGb=Ck_K z3md9fR+IzW#vqukyzrnRe;*e!hl^A418aGN{;U=I!pNyb;KQf2PEX_|fjq}h5z^|A zSxF_~f_#*>UK4I)Ki{#OHFkQx)q>hB;s{)-I2~ftv=T&YQpcTsu(wkT+b>x=&019Y zsZ%%2U{rlI6|yqxJi(8h}&=rEvR4d+@5(tc-3Gq2= z?&0(o?y;LiN;5Uk1$akwn?TD6KhEcJ**wadIG;J|JfUVwlsgbdU$vLsh`@nU6^U>0;QCUH=ngTLe-{+ z^vpYZ5QvDIGwqzEA3@IV=G~n-)m#8OaA|~0mlko3|1{I#4%WDB&*l+Kg!CU6TlMPt zq?DwNEoBkV@!oi9V^$FL^F!V0q*fulu>%Vq>;6J{^l6eIqSVwI(bDjLk9&t-b;@;w zLLNXl|mN#CTt+_mCjgu`t|o; z^f_v5idJ2TPWoExbW?Dbz(oQ=1JLn}!`JN2n0$Er_3^|eSpkX^tlNb(;Z}7`DF!zE zrv7`-`*~>V)pl`wl2MBIB8WB~CB!M+fv8LY9G&z)JtKR@nshn->C;UY5PB6tH%ODm zm5<_8wydTXrUru6;H|q4M%|fAIrpSr+y3geoz!IYb!1{PU^eOsoPi}K0w=tMQ!t+3 zh~puBY5c>__y2KsIuNr}E;NCA)=ElMNHCNPJt)Nk&lr(y;CqkPk~^IJX(n)c&Jri2 zu^KhlaH=^{Aum2yr&VmabC3Gf>?fg*shZ9jcOgRuo?s`lN}(YvuORaMSsdXjTd$ga zB*-70GR3Y=g_&3$eMn9!oeb%!@Ch{=JAPUJ_UtZg9!NZfC6h z*UkP*+uwBdUmE{n_Lt5QAb*ggMQH76Wxyavs|y|wqz({6H}Q+T z*$+bnX;qy`n@^I8m}#3VgfL?U1f?9L8gaa`UfP!FKR-+D_6qy2Q7KHDi**-hRf9a8 z3VX2Mo;{sH{gtM_;lg@p{ELN^>(~VwRJzu?6sqz9qZlPjb*UzdsxAcfjNNa(u(ofw zu;Q!i;WYOCN|Q|^Il7)ynGMVtdquI-jeVNW-Hcus`=3{R-rUcp+b(bS<{d3cMnHNR zMua@TIhcI-&%)RlOaFB%^rh`@xI$l>{)Q{`rSWgILgTkzq4688(DaJBdfST>Afybk zpsm)dT^Ga~;=Ud+dz+sXiC-Gi-+o15tt;7k;w2AKaxuH?$>yqJYEmTa)_eb)8vVlF zw_5S(zi`FBwEYcN{A<(SaK*ng{;gJg`t~b6{X_e7bv>Snd6;|)!7sC_$F_1wi_P8G z%~z-94!WkWz^FG&J=O5^O*&9@jVBjvXJCHie`&_%yl((|Z0c{?hyUw-{^hT) zuwj}JXq~}U5{eJHJJAke0~HTqjGo8(+?nfS<1c@GY#^+8&|L>ok8utA2&7m$tm-Y_Nyn=e#v6i;jb+B8uXqGeCSerxqd=~QB;E~J> zR`>43#bP0LpQF`9xys+o%#4v*l5VU1g4I*agoHt)%q`KTCC`NQ0VQv)m9<48X_MHX zX{G-fd+ew>q7ES89#L9UOI27nDv4=$CLs2pfc>_$S0@RfO$&T1>h#f!uPk{eWL~T= z>A6%Jr297VFIYWQX7J9Yb~S2fMMuANnO^;3EY;*a*0IK>YBZaEmA%W0URv1l)|PS; zx|h(7_b`$$mhIV_xH+YIkMq`^8-Uw7vQ+0`GeI>UwbW#0DX!p_@(SvP3XOU;^%wO& zJ~%+NUagOegn~dv!FT1CV0kp#D^5DA2||0WVR|;BAND(H-*VjL{d6GBzjmo~M3pg9 zzDuoLah)$eK0bZ;@UsfChEgiLnjUTeH?<7Dd#l5Sz}zkN*s#yVZO@-xyu!NvbaiS3 zp^SYygLKJtqZx@&-F5y6#qlQ6_ug1b?bT4M>xb{{ckBAMKgaFucb~5I8@;Jxxiq_L zQR+6sM745k>Y7PVj;v-zdX1MBF0XDL?tk<5Up;*Pms4NsCnRvHa{Eoj{^Q~1_CFq; z8=Y-9N7t-677{&D97S4c$y9YvU^}grw>dsXrZ4RL`1m7ZbJ0|zgTs$3jpbo@UfLQS zhsnxP2_nmWwC9q@11rx@6ygeMsIFd-iSX|6AN*aD*a|dxi(xKTp6|_{P5toj{iCMF z_?rgkOFQgko7J>0@hStK-7BHTj+#q!15cxik>=tI2UZ?8^WXe5&vq^^oY&O_J1yX% z9GJ=mwWM*<69!*}BCWE|or}M;qQCiKb(##`08w=r$oa%vHlKR0ub1^$&(lQq$(RU2MM zO5-6)@n(PsO#xsTwYUHR<-hx14_DV$yMWzy|9X463;JQ+)%R0fyLs3el-oeyv|9H@ z-P5#tn=1U6ZT#C8CSKkwtFgE`U8x!{sA|VZTDq(p1b7((w~}A=3k!d^{psiTuX~y< zuZ9y~Z3%!H)75~Rc#AUw^yJd8UWe2?Ut6l59xiY19uL47ZyO@3)Ty`gy5(M?&Ss zD<{u`(n3<&M+({L_PliNYb^zif3h17T7|9Jo1Pam%LvI!6XY3@R&QR?y2>Ag(`^9?CTdYi#^S;EG>gtk}Gr7#7 zi;XkZzHE6^t=iXoFCHw<*>_gPla&~sLF{=mORqpS@Ldq^&h|U-$zYlK>;sj+BcHc zh)tGyt$L^C18T;j6=YC7(OkJVKMu}$?mE%FGjiXn4)qoNmZTQWL1*=)c38IV zEWAhI_wvK@uC|}c_XGd9Jh!e@=D@5_h}g6?-vN| zy}fsJK>JcpiBrJM+$W;bBK&13$E>JP$ER(*yUJ}pU9Bo=?~48oU-fi84w8Rxb~3jr zvi_s9gz?3hdela4b>EzcPlK-Y#v0a?e#y~?`?DP5W>2x>hwLa#Ye#Qisv6361y&cQ zM3#(N#DF^?Z(;BZ{IK45a$zp}_xJesXURzQpANN?6vG2Q9c15_(O!UfJw>e(wnD}Y zzey>K{a)N$>uWimcKme9z`djAiy7(1>$$^f7^KEUfrNqPOuGD&- zR?fg;?{7W% zymQ{0U?QV>r{7!vb^87>=+TP&f*)xcq&y3cml<9j6r&D|_QandEiz4W z-8e_IszvGeZ?_o#iG3TB%Uf zX)R3_PB9~C#k>NVdwCdJWHh(s96P^M_g`y7P#});*4!ze?yBbfAFADZY6^njAMeh{ zVCJq_z%ixzO}k#$Z852OKX=9L8=@T8WM^jOp`zHydhcc{L{sABz6!ZJ*US2DXJ;Ix z&3a8`u3sDCie6;?I2+8#Om%P4`<0lcHds5RRgT9twBw@4c6~g;`A-YaG7ba`0hxQeXJRlL~5K{T&Ofa7Zx50^FVB zmS~;k{^8XZ>pxXjDSyhm|GoY$$}%}bBKd7WsZUdPM@8{DKjA6+yf2(rJL@io-=xBv zHT}pyNl^~}elCV<+=A2b8d8&u(%=?LZEw)8#Z%UJBYwVl#x1WQ@^7o!KL={wnTY?4 zAojhvV@vYg9}jM6isdIh`ek>i+-W#E^jQf$H#sL<@%eGU<55J1InSSAWBmvr%F{d( ziTRHGZqB$j@5sFCA7Ac&q}k}>E?t6y?5Mr8On5>AFOWIULN3$&Jl{NDT#EFcS__rUZxOa6@B`#zIdKd+wbgg zv-CjJm+MoWj~f=59Odk`7EDsl?66$*8Aaw5@P&dCgqcp_u3n2mJ#G?jH`S|9La>9z4o3FwG4TVar&4a zers|0T*Mgk;`$i<&2txWe(!gcJ4<3;woS)-RMk1$WG6qc{oY=l->)lPuTdnvNiZbu zTC8W6$qSg?BaQYptYxn0-Bj`a?CXD0WEc}@wPsSZusmO6QJZQzh4GM|velpPeO;Ex ze9*O%eND7oJ<(eFvW`Wd)rQtAL5hk2P%DTdB0NQYe>hmc-SU8ZX4iU18s3G|U4=;%4$?myW?Yb|f%{Lf zv-+SDKd#o5J`4IV_NyhKsbcBFL{_Mxv1!QW=xr;A9q*IP;3T`LIX|cAonQS{n}tZK zYjsIloL!n<<-}}EeAss%OnjXs4Ovn^0`5PYX?q?p!XdemOHM0mtzBh1k(I8?m_Pb` z{Pp8-FKQdka-PchNz2bSAHAi1dp&G*%S*si@QljidTUx?lU7`Q?Yc|xtK{}rF~v=6 zA1`#@rxT}qS%-`hbftYEB)Tc~aIUMlHC?I2k`_$st88w!ZObcmDTAWmYf^W^n_Hi( zFz!=3@e$u|MuJdySLv+H;Gn|_J#_7O^K?Y1RP?p;EZ9BTr3|q~y%kfk6BEw0+l_~n zIujR)n_gLK?bbfEc{nLQ7uDi*d44A2M%3a9M}CtC(vxDXx0~B~jZS7)S0~L{Z$k%) zj;X4aK>`n|@zL78WA&fL>WJ-&Y8li)lwznFr-QQQm&NZxeP4BZceUE$ny>|+kA*iy zrSE?Ud+r=DSjBbieOh$7FN5YvS)wRJjR+?q1X;LL#hqmbGN0T(c)1Yst970K(JOPa zFORi2QXLr*PK-M{yf%Beo@7MvFb_`lN=ki!mB$w5N6PZ+*P_ z?{ofZeAW^oV8-4aU0B@=iZ{M{P+0ddhyA0|)6Xl9s=nJR)!VB6yq-i|61;~Ny9f35 zc?_v$O&L^v+CVL&a`k-Y-E-`vRL4f!e$tGP67-9oL&;X*f`IJTG&NrA#>~a-bLZ%2 zifPZ0w6D!23=H$F#f)Ou;9GW|$f!@|@`(pO-Z7t7KZx~>BXj$Rtq?s9q3^!aJS1>71YeG5hg$(`r^DK=+Q~PdjJMV#%b9&(qyci!&EJ zA3gX3J~IZfI?ug{t%Yb6?}ZU@6GK_z~~_zrf?aU5)n0_&UR&Z`YVa3vN^+o3Rb>5 z8)Ousa+fbeq~uz3XpQB$<&xH!gaT0Re$`J{E|;?Eeh;c|rW~RB!5?0k0_(R3eCI@d zu0*EhQrrIH_IY4;p1*kbmFr_IeWhbl21SnQ5Ob=^H!5|dYH7ZEyo({=y{21&Tb9%f z6E;uSE```p3+)E{Lf_ZndS})o>iGf@aM!8rVsQ;EIw^N3GCS9gWr$msMfqA;p7hBd zEw$Q_zMx`du8NuNx(ITol`kR_B@5Qi!isOmYyNyHVZtklRaprWRHewQEyW*jkf&ZH zh1N#%hueL3|E3(+IJWZPYMxv_-Fob@JQ#%FJbaNOoz@{9`Z~W^`n9CCGl6BVT2yYq zaz4%XP2Kb8DpB`P#VniKCbyDXyKh*Qkx7)sN=vI?aT zfH?h|GDal>S+HdbU#!9~m0(I!d5}2&nD!^e_8_;Au3IY_*5OH=Kh6%SV*L&t8H7geuI11;$8m&=li z;6uH4cdv4GQ@hSM<~;6uyK&})Zo1`5Tci9r_eI8oAJ?EBe+~xcg$HO(p?@wt4`J4+ zntC7ShL8~(EW@TsPzRW(Rlcbkw|;M#r@vJw7RdCH%;9+R?WPOaA4%Ew(zkEN3i(8{ zT~ExrM? zT)y&%oZ8YF*`0Iz+n~3y0`1@?@Xc(0f~FCTtlFqp;V_x>A*^8Uqd#{hbi5~@%zQHV z={9W?xc^Z+(Q4W8Z5z2p11E2aHeCu|@!muFjoZ0atjgWmQy&GV^HNCryqEghn}SX^ z)&eR%sf-A1E^XlI4dShC;m;C}9|@|GP4v0B&0wFdfKMYbC`t_yZswZx#lMJnOqS2E z0B=;Vv$JYZ$hN#V{rQg~{nPx=tgOV+D7TL)heq#{?K;J{U0S5J_hfyYZd1ImF?VH> z2GgXuzj+~sL$Yc2^5BlgBpK2TkVP&D(Bca1gs zGx?GY;zCV!ZTzK_QkO=ErufH8TEfgS%|@~H=3a#3(_~X6^|aBH7bnV)s_G5zjx8;3?_9rEhH`?1LOh(wp z$9QiYy`-0J?)uzJ47-PbMdwkCaKfjM>Iy}SFq(GO| zbD53VyDZcpp%OZ6lkF5CV#QP|TG66hFe|go#bC1?sy$<^uK4fLNdsR;A{6t?)0!g* zVls&-T^}u4xQldLox-*B8SxN0ZKIur#Agp@#VxH&pGY2jRrEoD?Cvx}BYC&RghCyl zY4w_hDoiYg4}EOnemM5s|vN1Ud<2I72ATyMCOT}4;O}6 zI?JgtDI=#iqiNt2ls^hKgZD_f1M!guE1d8p2J9qa2)ATz?*B?a4I!{Y%JJwexU%ARq^GsFiFU1Px+>S!V4Zjfx=B$b$j z=1dN8vf`SnsCVgd=mmVi^15#PkM`~x{lWuduTffDYO7ook|H{5m({6A5=Y&idI)lg zmxM!K&196+<}b^HzLl1^&qa3y7dhx%`d*PJy&M&mt)X^^bnVBuGseu8kT(b{n>yYo zVK1V%?%Z0}!QHkclMzyRL4Yq&F}LzUY0^PxHr3DjTSH4p#o&V!awlVV>bY5bR=D{9S#wL`ht;u%*rt|jEcx?8=auhDa zkFUCGgRZ*hsWbP5Y&zb?C#z7K1-PsPeSco|q@@LQ?w{#6Lny0^$3G4Vah~$XY*e7m zZ)Of)(cWD@+^|R1_ja!p+Kfx5N$^qi?>@?5>5pgt3nXu3A@2E+;jv1_%eQ2GOFQg6 z?fi`^Sn{Qn@g*#tu{yI1F7>qwo|YR`X`&5qyU6v(irpJewc>L@Kjm(}6sG47dkyyb zl`WV>Z&@ilE4CTP&DIC1_TzSMeD`xOl27m^Ys8&)0p@5p%g;PB;}G|_^c|9uOyh?s ziRPx34GS#OgEoN~Z^!;_7NHL7RbjFud})g|>YKfd)RrFi_v>166O1Wuk=0#m+jF3> z5;y&@wsXhMjv&k(TbD)m!ZMo9XbM4kGuK8G`%ork-0?xj%wUMjWDk?GMVjWjGNa|c(IJik`lZ?D+?QxO)$u<9)=;bTkgnJXA z7Uan(h4@~p(yu-i2w!R@;m56(RK89P;8N<;WI2LmfNs zOAhyqATu4|zd9LiTwnkjT$W8wEarI&%4+|#JB0GSSs(7FrS7!7>^&Y-@xTm4pSj3+ z>!!`Mdm+9vG;S_SJi zBS&wlI=QF^efxcu=<&nro`Ya*t6f9&V3K>-fn=1!NCnq>_2}u?yDCCcB<&}oGJDy^ zc8~aFY+u#U@rDbM{rLKu#(!R6Hd>$O_qD|R^uNinsupn{owXvOPr($9`#|zO3pErFx zyWFmA3-zK?LKK268MG$&nTg^Pg4gUOS9gtXz*m@_knO=hn{=y$qB+!{Y$EkiFW=<= z{hrrZh7H3Uto2Si!ra|n)}RXy^1;hvx-CBfIPKqVRJoGt4wB#g^|`O`iUoBJ_|4wQ zHR)F=Nr|-r`2~q5rR5#@GDq*q?j2Pa$JR^QDf@E9q-Aw?cFcGxBK!`$`9}y4PKylrBlYlk@+39^?t(b z)9-}vS+n5dPaE>rBGfrUkBk`fdPTljc5b_mJ6i}&r5!8 zqq1rA2w7164}I-gkBrixfgEJ_DXfngp4jO9s?L1ksESrMV zArH|GCx19``+DEky9Vre*Tn?M1BNqvi?ue*GF}`$KGuCie`zT37c;RvHf_->qWhWW zL3^LE#aR>c;o2|FlomCqQ^wr5N}pS6Pe0#fIlwkC8NIaF;U1bW4s8VO zdSgK2*o zf(;|l0$YN)i=4Lp6$1VOk008ujCS=2-|!W2aPQL6CSGM!YxvIdD*y75mZ6yK$jV3X zpC60<3N#}hb)NdJ8zj|z_9kySEUH;9OHn)>37BVrIFGDstCWTy-3)I zluNVmMBY-3rXI(bV*A&GPe&P0{qsK2j#tf&JYPCt`QM#22K0NL(HD?&aEqtY8I-iM z8T=03zjIThf7c$^oJI`Sc=z=d!=@WFJg)Z>dCW6zbUdWL!c=`Q^=d$N%)D{&27$ix z$u`5&?@ayvoCOp|genKsZY@{y9?zfCwm%CGTi*vtuKunb$n6lR)}Y!#Y=ysf zb8OJ~3YUTg5tNiTP<`*cM@xvTkQ^zy$Aa{>O|PO1c+d=7zRtDl=2xZzy4k;LiWE&*xSab|7%n?) z>Vam~KQgq2SxbAnLWZtgGru1jTW|p9XnPLCe_b)uyGqLias!4gF z#{F3Li)^r|giBa%63xci8D(UwTc1pixCn()-4M;{dsa<4E&nl_LN)^-&OXkG-Ss)< zyRtm?PWa2i9cfR-Va^ki0v+pDlC`Tg-rjF6jy?OdbXcJmW$krqYPQ6CtCu8|=_
l0*@%Bf(;t{g7v&VN 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%0Dtuu#%*@eEa&KBk<6 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 LfhLyZ7H|Oo7o}}G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_c_make_c_pack.cmake.i b/CMakeLua/.hg/store/data/_c_make_c_pack.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..002042ff5d47a70f3bdb476de5901fbe7139d72b GIT binary patch literal 1455 zcwPao1yK3`0RRC20000000nOV01=G<0000000061|NsC0|NsA~p}V?NuB!_i7b9ci z9{Q$r7(B=|ZP1RRbU)Q56=ip93%qe7x^e2T!T60#Fz{;#> za>^lFrrFPr&~OS&oVmjba_>fQ1lDi=I-Y$?k}wG3b>FMo78E|DBnT?h)8^)AzVL-?a?UlhE6hauR}X@Nd&)ZvEVLt z1Ak9)K(5C(Te3^O2HNsayn^dP_&-F6BBcAJangL!O$K>M4R*M z@HVld#2$RNeTNL5H>`DB-x-YuwS_aoT}{God@4oNa} zN94jf=Ab%J_Z%z*=8DnpvC>k(bxPN+Z-)=hDp_z9_@f7DTHWrQ?c64JVepMOaiX13 zp1cio4-Ws>H|RWxoX}Otkwjw;@9hCB1p$mh3X_HvIf$w%P5^vIs)G=$TPB{;`ZZ=Y zuFE@d#$ibOc$ds-xvJT0E_&jZ*h377k(4l)LJskx{{goNBaEbTp8ZWm(-OOLynad7 z^^fYxW2t)%Y})mbJQa#!PKE3=rD`T(o(f30YCX$TWOLBnVi#~=$7HMckNR?F$If4e zzDQLa2Ekf=KU{TefK}-oM?S>uI)WQwb_bj6JAMPbljLrLo6B!)s7&!~kLXHN<#72X ze0hADj&d;ISXXFd#$MCj&4x9-^3d3iiOw z%_nH|^^l)Gy$EUe-@(*}uMPAlZwFa$szf`1*Cf(0m#pWm@2DGxPT+Wo zZ6`KWcBO}4RnOWI8T;=2LB7Q}8Wb?j>Ip0RnNs^h{oMSLZ!Y~yP%f+!#kB)=Ak?}^ z?uj#w?Q12KnW?Kg&lU^X*>lKNGfV;COPaAM%RqXP&R97EE}H4o6#v7`57*ZQRi}TV zfCCY**Bkw`%we8B()RhN+WxevGpZWC(afvtqnr+@l3%1aDp-vpp@OU`QF@_%8jr-P zpz=G-L?vG>dr!ha;KYrcHgfq9r{QB-G$teuD-8`^;IN3tcx4e4%~DE(qnYTg#2DFE2ypJ! zEJyCs3@z`{^JmxQ%*pyqC@o7{Fy`n@I4xrv7<1C181}e|U2P}Zu~R711wE1Psx5S{ z<6RV~2G!I&Iy97I)}ZTg`KkA%_xYv9vp>hSt*_sI;>s|j)4XbA4b9ENiOYCYQ04%8 zMq004Ig8B?p?!GxBarRp(9Yuy5}d0NhJTiUSNc`x64C{b3p zW6^1Wb&ToXEV)1%3kjvj+4Ehu8cjvwkG*RWwtL<=#Hx0t3|AZlU7P&|CM&bjs^vh} zO{A#1p(U+T>>#S;NFk+e0GEwGN3iM04>c{Q3NEd+Q17^J*JF1yNc5v0w({a&UAa2J z_SNOp$zZQ~e16c{cjVNL@&0Djo4m_C^X~wibj_se!z=S|1If>JCCS@1s%(4_nOH#;Q{IaQ2$beE0t) J{{i)aJE9k4)^`8^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_c_make_c_pack_options.cmake.in.i b/CMakeLua/.hg/store/data/_c_make_c_pack_options.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..17a93928c157723a9ae7f33a35b050ebe7c7fab5 GIT binary patch literal 1208 zcwS>*WME_f17;ou298t+n}P8^6xeP%tr1zBds_Rzxpt>7dk^e;BQ}Wv2~^Bk8|vFX z+e2XQ`SltTWy~)1?Rk!8<80g?QrtJS+zQwh%_eoxS0?_`?OUT-IZmi~m4ez!sVP^4r72~WJ=%{P@rXqF<$LziY z&i~RTG4Dl8*5+)`?H5*9(z4WfkJ^r$eLR~E^g9(S`#0ykq4%QHH=Exmb}WAv)E$)3 zc&c}!%esQCucoFIX{(Er&%ed-z=)@g|Fci{;m@}BmEKGcZxe8y_OSC#%nvjD_nm+L z$1r(+ONljY&hB-I&y#7MHeve-Qzy+=dyVd^t#Ep_K~Qzo#4nLM&ZIg1m~=t5!Fg3) z+{F366_8h(#!pBi8OgXqPVme&OR+7W6uRcF^H+nL{8o`qFt%kNyH zrS#-fr@cr1gQFpzIBOD5{Zc&{Me+o!=D z;J$RD)aP$!(#)1W>|gg{=bz=uZl^2UCfc~o{B9YwEPPt^LjFBRIj26Kq5E-SRUKD& zC-0+|Hlx6+YFxujH=R`^Kya zF5kLo!F%~v*|~ksN;2$jU1l#%kGpSgwcqEz)>iq(_SrLGxd;eyfO+W$G>bHY2vA;9 zG>`Wzu-|K5w*H~_zUN-^lsCD_qUNRKga;m}49RULV`gSbd1+le$Jlr7-p6ee~- zDgJZZ>cw?X(Q#el!ah4LFUHQ3H#=Xh+}C+?rK{Jh7%r}Z>lCE~cohy^ynFe)?Y+zT z7Dp}~SGQ9*arLaRlcVSUEfPyCO!Zq+xEVO_=?H<{S^>7Ufq{XO3+e=ro56YCD0jsI zm+gOlKHr@5KVXf|752-?_i>^p$_);rme7 z)APOfOKE68(Kp{SexU&?*)D%fT<3Uj-oLt!`}*R5{;85UG_TGfvDKyZ$)Z1xlI}Lm vIWlR>pG7gUt$&)X*xY^e=hC7lA+1X;otY!j`smc7NmpW2ef1d19JQJN4>U4J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_c_make_graph_viz_options.cmake.i b/CMakeLua/.hg/store/data/_c_make_graph_viz_options.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..6865a9232d85a392a3632356c603a1666c79a4f5 GIT binary patch literal 197 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 L&qev4*}<&;3vX=b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_c_make_logo.gif.i b/CMakeLua/.hg/store/data/_c_make_logo.gif.i new file mode 100644 index 0000000000000000000000000000000000000000..4a610e70abc7f64a2da783745cf3c740e3b7c7fc GIT binary patch literal 4510 zcwPaX5n=8C0RRC20000001;jQ01<%z0000000061|NsC0|NsAhhf?~AxqHUJ7yF7F zkmF>=?2U)y|B&D55A<;~tX65z$s7l2n>5KRUJ{+e#O$wpe+7yPrQke}4XWzuq68 z&EAeqQD=Y)_zD1M1V%>J%*_W->um)E1*g%pg@pyM3{q25(I57J*B~Y)=Aor!q_%cp zAzD^emYJEEl$7M@`RK!k5C4RQv}RoB?fs|qd%@^v+kmd_AAkID4S3t$+wwY@(% zIXN*gaqZe~Sy>sTd)1ykecEEb0gc=_J3HH_p&=HFeSODld>dcBd?}Sm8yXt=`g%bh zSYBQRBY<28d3bm{OxwF-#|t8nI5ac_27sldWm{X@=;)}E)2vhA?S~10VOyu;;#O>J zZ4Vzt8H`(#9_*2kk?QK|gspooU%srX+XFg4O-;>fGt-1%gQcaV@QArfZKn+l4g34$ zU2)scpW?s-c)WU*v$OLMnIr{ZJiups9337X2fu^z^75}=zd{&)9i24~A3nTzamCwb zwluahG<3qrY4od;bE#C?lP1{em)z0OaqZe$yE2*2(r-zL?~97W zrKP!R&0geLS$+5O%faKv5aerca6rJA6KaLJ?Oa+?e&q4~aO1pmZ~#D1Arsqs9o;}8 z0niFSY1OZdm_0hWhN}e+>+M_a@A%K}+jOZ@ZS(#p>$Q_6~j~ z&esrfs2g`u4};-Zmd>tst*oqE3ETGNhrpGUl^Zv1T)lerjX>}|jsF@!_U~VO`t)9B zXZNR1Z)`Zv1M*#3rjJ+4#rK}0nwpwZQBhTAt2vy9RGI3#q#t{F+Hc*vw-#Lkqm(gQ zlM5Fv3=9rhTMrv={MEz#5FFN1c+>l>Yb)U_4S%-|7GmRXDVPO;FO;uYmLxO&opj%`&ZgQ$= zZa#W6`O>9J@q*O75p!+Tbw0f1&8X9^tQ}Lzewl1#$4@au!c!WS^=N3szwVU%wFK_g>NPIEeUgvYn(mrO1*HM3` zRP8(I-2pY~NI4R{)yi9~RCAlnf!P=4g2>9?idgo!p-yS=DLc`bEm_mj$4!i@UHu+8 zKC3qrk~l9%p0dn{Z&T-I>b;@Sw)mRHL=TIyaT`O~Y;gi0s;a3^u{0QYV>_?uydIpv zPI`okTy>S?pJwi`HY7c%@@h6XbIc@qsD8VA5aAkxX+3dv7eimteUCtm$_urXPj{EG>w`|jzbC^4$3j&Zte_Hp_o z!UL%Or;~$_xczWx@p@!bVRY!aL6l#3KD7H@-gwSKqK@&o+FWx?%3$68=;awj>B<%48E2F=U+IT`h#k;; z5Gi`bHQ{W>arNs9vI_8`-~rpsh1*Y&``*J|&Tk_fRGfnf&D^P{ME$|);Y+su-qh8| z(0*Pj8`d^o@qSYGxSlzHjwZ zKT0lxPRI@D>wHXk1{l5f9hIZi*G!uU%r@ED62fujImpwZFzPOG!#m~dq*dO{AwB29-n*2L@Wf2F_ zJ^2oddt~D|?GinoZ*H#3S|XSa(Y$+p+}U12juOZQK5z8=XkeF>Uef!kgPok6{sM_vH2|66~?*yZE@2VO&Oik@iBYHjGdiN~P{A35~Ma=z*BI zaFY2#)zQ|7M9rwXIbSc@r^)8Jd{(HCc^oD_MsFj!vlwr=Y%aFytd28u_b}FeU~sHb zOmLM+vvO33CJR1z)Bwk9mQcC{-q+ul!mG_F{DG)ZGF`Dj_1LAUN3=uO__UgvRatrWw= zgIR%BR%&wGy@b@%c(KK{=8>0PgV4cr5j(cPCz=<1^8Fm%^bD5k9t)sX!=A_W43S?n zqE0-j^|-Q zki#RIRaLut(0_qmh-Xf^hUSCtYR{3rdHjabIgWB&|OzUahd72g_YR# zm||u`I%c!qv%s{ru7<3xCYRN~AD&S+RJ%C2|IJN1R1G51C@(o04SM16wpG#TXB^s3 zvo#f}UN`3Ba)#=x0u$@EVuuGPgU(w^tDk5eR1!55bAFfGPGd5Lv;9|Li6@GP+02=p zkK;{?ze+iKKi&PG#zJjq5vpmMwB<{Y8(LCh@pCHkUD7ke$Oe}f%Izrq^?lf1{72iz z1{jCuu*@eT!dV-M?kh7Q*>npI@{iKy2{p+q1*E=11R0xgKM)uqGba*e#!DDA1@gA4 z4Wz~(0GrzmVM)hS-oW@CKM;SyP5(%oZ!X~Ld`rcCKSbE zl+PHH;z7+sF2Tlba?PG`@AhCxf|l`BMm4{`i5&2W9466;faR?{A3p3Go`g>!B2~gZ z%1`e_+VR6(jV0gr`O5h8dyNh??H9>MB7Pf7{yoJy9Rux6jnsKCKCrGk`F%{Ma+-=Z zWv_Kda&nabQ@Q$sr)iKFRh!1CC%QAI!|3{UX5>*$ETorVO$m*nV0eAkOINS~_b|At z-?H@^1AmTq-%onZcj$O|Bt5x}(j>+lVMPY+d%(;~)*D~X zF(6c6vD#Xj#M;8xjHtbtXOs+0soXm8_<*)+EKtXMGO$(Tn4St;tl!A}pSCoIR@J{a zy3t5)8#;9J>L}LounQ#JHE0}J1g|ON?$r+i8Od{5=Jf_-M#N1!Q^DE1qu@|D)zzra30wtC$!9DjPx*`O)c%49qgAu|8KIH&_C%gpVp!{rHBjy+T7cgaH|F1kidIqYok} z#Za^alPnLmkl@s1Ac4Q`8@gND_#4dxv2v9`-9h;%ayVIn{lX?ZV6F2C!X^Yk2{48! z173)#AV}?c3Ec!CO2<y%_O z#n1fmT&$z8RDkV}kZc6-o6oNL9Pr$W5~5^$`-?VF3%dv*8o(us@#h=y2Vi1?1V5K! z?XNuC9ispJM~7Wy1hE*HD2u{25Y=tgZ&qR{98kr>9@|23E+)MFLL+=uy)1VmC6ns- z$FE3_rwA~2=LjkSkSzhX1++97W@-*RM$~9BY@UJ^o1P(ETlCnmXe|e$F_()M0Uj#J zdIn?A&)Lq7Vu}o!2bg6K!i#C_B@&U35dCF*iV%7VT-^}pdv3(;gGTs zNGMlJV^RO%09yfRu$Z!oD14NTwK;_C6yT1rOdvYZO$bH-p?l74!3#(yiLju^6<~;A z4qhDKW(e&F!Z}KCu1een*1znC$x78r7^XAdsGGmZU4m!BL|2%&LFtMriE$}K0es4; zVaQE^TjNP_llZp-Obp^n;DRXr@k71jF;r15zEiS)ju0m=$rcc9%cyBcp|g2HNldQz^K5mTfS@;5t^z|s7A>t9 zWbpCUPG`TqC9za$E1cZ0i5d_`3XN++Q7c@RdUt1xsuTE20F9GKCv#M1@eWV!x;n*4zvpaI0enl ziQ*Mr-@(CjpaPr&qPnL=y(x%TDU^%_fuoxn*oh4r&NXazh7L2KS|${!Z1MnLmoq5g zOAAJ%g^7fZ^3W2d`eQ!P@|;@55+OCb$@W-NbzjrrXHE4Zc))2r%7nx!l#*iL(CH4sVtuK0~65gs9#DZqi=ky&)H6sD=&g|kPb!96{^zL+o&R&SH==7Cz)`ef*dbMF#1;2+? w&fQ2~5~!NP-F9%dIno`I*&Scmop`l-PiA*)5_N}8PYOjHg8>`=4*>dLP4I}=r~m)} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_c_test_config.cmake.i b/CMakeLua/.hg/store/data/_c_test_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f3d9426061567dcc966155a976a91ceec1a8110d GIT binary patch literal 415 zcwS>*WME_f1IBm;24+D9DCa*E#4k{}{m)J6s;~Q7lXtsXX9VZ)onSx$6?1xncIO>3 z5V`wVH0%h2Ge?P2PG-^p(azxCMkSk=T&^hTKfM^@^rw2Rkj7Gx36Gx6Yd>$xcf4Vj zSpwgo^e?Qp6>Lr)_1JzlLHd<#?|%UsqqztF_!exC;85Uwn`t4(bESO)bJyCP)6Qmu zce2dn=x@sSBJa4)@5*HXrOE4NDY5%^w976jFXOuNnzv=bqq6?V%p$T1Z!G_FiI%+$ zn)>wng4jceSH$(&BtzBSr_R*me)?DZ$$<~A56zk%asTH9%gMq4qA6F6CawM#Hm!6* z``=Khc-8YOa~T)PT{?T!P0D-b3}c4+iLRL&%9{4fIpML={8JEbkI(WMTeq7g9$R+v zX6%z2^J6Nv_M~Rk*e_sA3_O)`_|T%RQ;W9RU-^09)c09GdluV7-+i&nH~M<1J!enE z)hW+rf6OqDy7%(MkKcDQlsvsdL?8a@agCjyc#bvRW_QcyW1Us~Z>pnQelxjzfAAFm Dkv+r2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_c_test_custom.cmake.in.i b/CMakeLua/.hg/store/data/_c_test_custom.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..7244c9abcb1722d98837329d28b78b2af2abbac7 GIT binary patch literal 736 zcwPbE0w4VV0RRC20000000N)@00mM20000000061|NsC0|NsBk0y?0l@w<3t+-=`1X{D$yTUbRqYL9$Pd^ zG*pf+xm2F$ZKVc0Jssa^Dw*lh7bz{D1`2}#AFb|e>Mp=5zsI8bsda#0$^q8Yb@0K3V@TG?>w6YN%oReD8zQ05#k zlg_iRq*5f*mTKFsb!wF1&l1_Jaei?bVnZhtq0ustzfd)H5MAfWEW|cG(4`T`;uNi8 zG08eWi+ykpEsaInl3eL2BZu;Ecvf0-HkQSi%2>2BgGHx|MVT}xoHiR)@Elo0APQ=< z!5v&nyX~cq84AS>cTyLiC%`Ng8S@YI?PkEq@yP@Y7UU5T`ngeprRgtF$caRAARgBX z?zWxEZNacYez0VtR!i?HFE+a&1YoSRn1h|;3Nm!0eK$FSIX81!pIW_od0>C7`enPm z_niDOOsv;$jHuUYwbK@htm6)I-+|xeKR04qxWnf-Kvyn0ypR(=5gHYX^4&k+rJHFJ z7GY03Bo3jcg?yp55*4^T*~!sS`}(-sOQCWVcbd1!=qBkV{bt(hUsa&fOyjS~04fjR zCZ15j;Qe*WME`~fMy_`2xT+=hk~He3|3nPmiWux-mw^!HFO+rSf$K>1S;mJ_W1HO8Hlib zpYw=2r{pqg_zFFfQ(XK3x7>dv)pOK(?AY78PHm>ovcoTSCOmUk5p(TNqB~!4Tw-xd z&xa$8PY;}Xv~d12-xs0$lVzOlWrq5;{|;lBlXFAH(dJ;-#K-m4vI&|VTa;&dtlG)@ b>*KB%|Fv=}JN_*_b*w7y{8@3worVek`$AEG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_change_log.txt.d b/CMakeLua/.hg/store/data/_change_log.txt.d new file mode 100644 index 0000000000000000000000000000000000000000..59a3fb784908cf70d628664b2bf21f6837f75cbb GIT binary patch literal 291102 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⪻Kpq1gkKB)) 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

`u+4SC&^vIi?3%d+KC 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_change_log.txt.i b/CMakeLua/.hg/store/data/_change_log.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..301b8bf77ea03366ece00c8aaa850c5ba7777991 GIT binary patch literal 64 ycwS>*U|?hb0hU5J1`+4g3=qKh9}2QJsON1~Jl!|_rb*WME_f112p72Da@GHUr~-D0r0>J?V|}moMA*t9;BB`(mhnB6b1;5~!H7HN?07 zmVva<#0l(&$`Y~AWjPLE2~nsOfM3|rmx{~qW44cxETUoTF7 zwzo3hX5DtZ$~9IJkqsx83!U*frgdq;s~5`~P3Ai*DVL`omR{S!Ao1`uQ<-=BAqA2&SZWHNKJ{F=bZ60?7lHR&K0XdM z@s}wv)Vku58ERwwxX^lD(w5AJA~C6pI;TxIaWm%Fj4A02sxwbr+ic)EMYV&GZ%L|H zIOnpx#tSDov#W^6uV24=YRv7@R`04S%jdA!Wp9aj*b-y#sK-g^4@2|e2^MDR8~A?C zI2QX{p)BKsU}vcL54BAayYyVJnkgXvS>Or?bGcvZLhVT5j(}Qx|=X`Mt`2 zYfY30@BdKIIN8%T;}-VG|8jn<>3@0s`~_2=Drt4ctkAiZs+9dd^#a?D%X>RqqnZ7x zMK;7OFa55jCz=&y>mJH6_xO&rQ$ugB-Wof-lB-&&pxs+}VZ{W2R5!+Jd39%>_V0>$ zshaWhQTO5m-kje(VN%nC`07`GPBIT?XXuU+PPqDmvq}8Qdcpk*YUh5jc`Eh8 zJl*r@I#?P50ux|L+Xzi)O&}7K(t;H{1Kn5XpS{@d?qZy6va?|ltHT}M5QT@Yo;QW^G8E6|i2wl51w<|Y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_copyright.txt.i b/CMakeLua/.hg/store/data/_copyright.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..82e7ce71209809d231cf4511ec89be63fd59036b GIT binary patch literal 1248 zcwPbE1RwhV0RRC20000000f`_00{g50000000061|NsC0|Ns9nLqSPyuEp~_FxS8b8^hA-cgb78e0BOg! zKqM?-LJ}GRw8s7Q-31j{PCM8Z&56 zKBS*x_~5+plh=;IR$6s_9{~VDIjGUoBE@5v+3h_@z3cVhLpG?P1)+Dw`Eg#TtnI!V z4_CbUa(xrP)baw4+B&$(t%Iafy>&4neAZ)cM;(L2YDQf{B2(C?5hc(a5R!Z2Ce@ig z=N3HZ<1z2%E!m{&j2aqJW}N8~yI$=yq_#gyp0v6uk~L4S!8mxDhIZB#`B9&Ll>~!E zJMCue3%&wjRokn>n{Glot;S{_Q@Q1+1`qY8kH8kUx1WCf_}dKlG|3p-G`Lb>y);a} zv4@v2h>Yk^{&~Uuo-|m&o2idb4+u#PM#MEf>lWJygo@)b z+vz;P$!T;QI6IA~9<6N6K(;|@JNGB%|BwmUKb+#z<})9332@oFyO?lwas)sVBs7N?Rym8;^qjw z@_NME!MzH7z7Q@6%%sR#gX(7+|74iUGyQ6snC9#+(q;rN#NreJz3#VqbRiV$o_6Qf zmezaqLTbQPleLhtr7C)8aaU6oV(+cjFw2SlY>^b&6P|EmR?pd|*ZYo4hZWpGH)K4_ zGi1k+EH}*NbMDM~9qftKPA0+&#s&Gq5E0Y?6(8_^?bY}l!|KHu#km{0E`DI8!@S}WWO-LTB!U5cZ$x>|GnT>P5vmn~wA?%jzFbwX zD)Wp9NQw*>i%RfCU6n$@w{MBW%y;i1+DeK?U|%An-d#vU^UjPr*2H$xrqO zlBFw{FaK`J;u=oD(`ThIj@p#kpxOHR4U3e?$vB%4fu2nT( KReu3BOXV?|3uW2> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_dart_config.cmake.i b/CMakeLua/.hg/store/data/_dart_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..d5d5d9a8fc2e669480b98376c71c5df5c43e689a GIT binary patch literal 992 zcwPbE10VbV0RRC20000000W=^00}ez0000000061|NsC0|Ns9Fw@p3r)d>E=#WhQ> ztSa)XpU3zB00000000000001ZoUK*cZlg#LefL+in2YQOnC$x}NjxwGLIYmVo<)ujHC@Nd;P`Ti!$apMf0tkF(IC39D$_&Cn z=6H4wF|p*e#6C!*J4z5(MrE%>ZHC%4m>r>!c5{7ubp=0UTTJV;K+pnpRPg+X=ctq_ z-4f-zsFJck?WzEU$r{Cp;Az=uIfJ&38L|i-hn~$w*y^+p0=@RZBeW>Xtkbf6>s&ZI zJB;-V)*sn)gK4;s3ZM>yl(TA*h`9Gnl&dJ`y;v@_<1iQZ4d!4UX?i>t-HAx`5o6;Z zOJp>yuQw10;N}8wwoC07)h{IXeVOE0Tn9W)u!i31`f9c6rBQbYxypQg`{nA(wRQ^F zr`q?TZ~X9mAA4hBQyS91^c+g-DD2k(7ju3osS8!RP&bi60C@0OOidOB)Fw!ql^K{J zKOZtSD1E@h+6p&Os{b!#emO$*Lm8P7XE?Npx*70pEB^k+E`guB*3-to-KM@>#*2Ei zh;sAB17P}bF8|?iiAEBJX&lYD5*icym)&P!K-{CY#!DcpyZU@&Vwujwyvm~zCLAdm zf?YQlAF-TGwW00iGD)heJKgS&Uas#z5lT-qUrbsc?>Ow{M0wlo~o9HIxWv2Uqge2hIMcFecL+DWaJ zc3Bl4KARstTX)yT$CJ0e9Ung(AAkQSv%9HmM3lSwG6m08vMLZ?Mj}B|o(Qno8a+k1 zh$aayHVwu;bNm1YG#n7@Ax-&dXQV&R?tlhLJq8nJIPM5jc41kZYIxXp7$%|X)R14- zI-oEOXu-KUZ{}3nw#u?y=N=~BB={>dT6x2+6Am97HVTcKzzj6m;`|5KP_*dN7FZ_`_d^HN}UodPoBQ Oji|$Wwf+M*lE;Szqu=KM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_dart_local.conf.in.i b/CMakeLua/.hg/store/data/_dart_local.conf.in.i new file mode 100644 index 0000000000000000000000000000000000000000..5a82436f168fa48c01289bb93fe4116171cffd53 GIT binary patch literal 1279 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_docs/cmake-mode.el.i b/CMakeLua/.hg/store/data/_docs/cmake-mode.el.i new file mode 100644 index 0000000000000000000000000000000000000000..3d65d042ddf1d9566321d9d7f82fbc76b9d96d31 GIT binary patch literal 2451 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 REeKm6CTalf0su^vRwfxXq5l8? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_docs/cmake-syntax.vim.i b/CMakeLua/.hg/store/data/_docs/cmake-syntax.vim.i new file mode 100644 index 0000000000000000000000000000000000000000..3081691143f53381513fbcfa7faaf07f2abfbe85 GIT binary patch literal 4306 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_example/_demo/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_example/_demo/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..b95a55c6477e2d970f388c6f7152e0c62341d450 GIT binary patch literal 343 zcwS>*WME_f14eNm{?7pA{D*?Ii{%{c*fuGDQ}5%w^`tjIJmA_B1|(21CwIbGzrzLs zE${2PLQgG>Ib$pmwQ?%cR3;e<*S@`(;iWlGbZZ@(ir<6wLDnt z%;C*s%8fA#RPxc95h?_RSzHK&mET8dxsn+?B@GGwbTu`2NUs>oVMoBS7kU+%y9 z)!SJ+g19!gOEzbeoYLCj#(K2SA|g4x+eK9Pfl!&jqu?aVunGS}v}B8KerN4SG3_s% zEH3jvm2(4shE3#S$0ZF)Y_~fdm_PEY?R6_uo3biBZ<@W?gWtA3{hR+AJw02OwkhF% c*wILVcMS{AvBpl@IgitD+9%dmjvG$_04uMQWdHyG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_example/_demo/demo.cxx.i b/CMakeLua/.hg/store/data/_example/_demo/demo.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b6aa9a4bceb8d43136fce449b9658e5ad3728adb GIT binary patch literal 146 zcwS>*WME`~fFK}_fU+6?L&1xcH&vRwpH<}kt6X_1P+g^DhQwP2Bv3IY_}m%qbDF-M zp#i5n&YnDZ{dB;iM_y|+Jatb6e_-I$XlPx#bBEDqFOec)zloRK|plrv?)wqB_oQj7BMnBoh!8o0L*na(f|Me literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_example/_demo/demo__b.cxx.i b/CMakeLua/.hg/store/data/_example/_demo/demo__b.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f86270cc2a750951e6fcbc31a72fd104ec4faf0e GIT binary patch literal 98 zcwS>*WME`~03{$+gt8g`LqW%CJ*oc&yN*WME`~fIcAJ4P`U_hl2asKO(A+E`JnUzE45@wQj&a<$Q4lBv3KOw$GaHkbwxx z?>R|NO)mW4>u6)XpnN=EIlAh`BzvWuwLDC(V$YuG$zGV<(tK>`j!lQHL%GiMuDba^ zbP<2Y$!zhkEe==ibgN%m(ZczD_Sf5KZ%iKBrRDXmJT^x_dk){eHxb4DNsZpOCjKf; obd1}-glqn8F0sCjTWvNQF8KL9`MBDuw&=t5xyzXk2RL#A0F?7ukN^Mx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_example/_hello/hello.cxx.i b/CMakeLua/.hg/store/data/_example/_hello/hello.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e6f7a1988fca3c54963392296548991a61359ace GIT binary patch literal 149 zcwS>*WME`~fKVWgfwCF@L%{^gEy4E^b)vr2iB;|uv~mypm5|7Q1S;kPpF87yPSe*j zG~krS*^?))pAL8w)W&&JWcrd6rq(w*cAWZT94unvptWWVQ*WME`~fIuJ)g|Zp{L&1U>YhQ>;m^?^2c-n7G)_!K2g?9y0?wA?mm$pfCdXrORU0RouLtt85 aXWKH<@U^Dm(~Gj=ywaq^8BW+rYXJb^Rx`W+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_add_file_dependencies.cmake.i b/CMakeLua/.hg/store/data/_modules/_add_file_dependencies.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..060826b4b4755a745cf56be7fce490a4fb8cecc6 GIT binary patch literal 279 zcwS>*WME`~fa?qlj4PpR#{W=IFZF%0amj*T+aA5*o2y!$qP2f>00R=Jm{U99EMJp> zK+F5uuFi^v<~_`pt|o|hbhG>SPF$tJ)*GtdR=!=NzQgd_rMqv)YFwO{Cn6gd8urx+*(;SzLpQe5_m$)Z;TS5A~hTc3gql~2| zS!ADDRjY`~M^>9}>o{VPE8|$~SubL1@YFW{TH)U*pF}su-nV{~{%xvQbNIZ*t(zy? N@8-P0ocF0l2LL{Mc}f5P literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..01ecd4959664cbabd3ae4fc36e5cd41f853dadc2 GIT binary patch literal 197 zcwS>*WME`~fL0)00%bG)hk^%LSr@L@Cy76r5NmEzZR*wXk>xJ~5~!FHde)Kakbwxx zg<3zu3$^bRUU@B1xa&RZ-;4_?`&I0>-n*xH z%zyJGO7vxmHd!3{ShZu$`|XJmf;Tcg&Z)Zk@Q8=b36aX*BK1qo$|P=US}uM(G~oKq e-b;`FD;ntgZk)5wusT~ac#{6b)#ksLEfN8`-BuI; literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_a_s_m-_a_t_t_information.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_a_s_m-_a_t_t_information.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..6de6a6148ebc3275f22c33cccd1c80e22f7370e8 GIT binary patch literal 176 zcwS>*WME`~fC3*C^_x{&B$_>1UF>;QQROeo-z~d#Fnv`|Th3Hk^=#==@uzCjQl33`*WME`~fUOJ+jQ5~y#{W?8_ISoC`v9FK&6;bzoYBxoR;t}mz<>lQ=JW>G@;4a> z-2E%cJ2}tjzLO^Znkmz^wCphbsC}&U$bWkdAp;55Ht%=u_Ex`tC$nm+Mg`ybSi!9i zg-?pQh*lN)rE z+6&XYzlXG`dqnK$;f?)0>wm@BhO%qLSw@$S9eNz#Xq~ww+5A?ZbK9)PbA9$K|NPX8 eGpK6LiLRSxey<% z8xx%Oo^2oi00000000000001ZoV8X>kJ>O0z2{eqvU>ojY1Q*0v?dv-yG~4Pr)5u8 zwxks;5JXt1(u)6HCn4b@K?#-00YNh=;QG<;m`MNr z&Ae%k5{9nY)Af&JyNY&;WDO3~jv;;BY?AE`7Ad5=#c~PppG~}7tm5@9TE2tLGLF(1 zw(%h-eT`GQZ&`HQ3j;dqTL2PO&-KX@>KeP|p_+zD<4j>7DG%U%(zlRF{8#kLFM|)f zD!p~Y)4*k+hkDG&q)rC5L+w5kuRCz4Wld1&F=ZGKAGOQfD)jYKaM#=>E;2n=xemcOn^RBVT*OtR$J8KDhD_ zYue0Fz*P-&t7Nxon5N#|F|F(%z0}qu;ClI6O4hwF|IKX6fWkm z$0?PyvF-wb^g%vE>FQL?jah4Ao2OOt(P#6$ZTXx>gFR?l0z(*Nt49vONnlXG%(Fu6 z&~7x=qOjGGK%z{?%?|-}HKQXz#B-~$CJ2eWJn4hKgE{lb zzJLi57{cKZ*UfgbjW+kWB%Gles%&)Hd|!lHr@FJV(+*y3_E{O4Ym&GByl#ahin7}^ zs2Q{FV3)v44D)0icfAy!h%j?}V7;~Rw S3sN&q%tC~Z2J#o1-LPwc3PUdd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_add_new_language.txt.i b/CMakeLua/.hg/store/data/_modules/_c_make_add_new_language.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..e2f9d3239ffe1d46ff6f9c44903673199fa2708f GIT binary patch literal 412 zcwS>*WME_f1I8Ez2By0VP|klS2>tNpam=X~-Zu+vGxphap5RsJ)nGsZ6?0kxPv;#n z5ZLovJ8aGahM@JfAx6ivG%G_6u6V1-)fv1-NZQg*``B z#)+*fmk1qha5=BMYW3VZT*fE0Ss0J`Czx+)t6DremvLzbD<8`fTYj(H1$SF`CdRA| zsxxzA$lbc$({IVAJ=H5d=VS#QsJeghPVWoGx;?!Sj|4uvFI(GoE2~&6M5`w%H7x7t zCMDzR)}42p{%f=p9-U=taj=e?E7PUVDky=qBj4z?hi%+rJ&jz)&U2SL3JX16$E;bg zR(nnFJ^6EmWn15Fd&B&H#_rISt+gdPr}gk>dWh+~WeJjMUtf1%(idGnG4BcnuNQL~ zN?o|BcM{QA^&;y(p?4Z1QnWe5=oMX8`sqxs3n- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_backward_compatibility_c.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_backward_compatibility_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..790b1b79df1d82c302f93a186443f1b33dc3d62f GIT binary patch literal 845 zcwPZb1G4-80RRC20000000RvG0100J0000000061|NsC0|NsAg=sBrL#P2tq?<8iw z{PV%lFdi%b00000000000001ZoV`_DZ<{a_edkwPu|8yzwyLevJ?zN=6RZ$G*vZ;G z%%XuNRw+c-*_KWF?=ysC1jw{a(~u$&eD3+M?*-!p_=Q@Fd9PLKGX!{10IQ7L47r(`dQ#`;I?l8%h*)~ZXk+n9tfpCX-dNVTdER=k+Hle-WE?Qvjkr`o>yXQ)`xsWOuES>v= zGW&e#My<;<{#n~94VfEZRM-A0j~u3^BUA3=rP8gXL%pl+H|0`gjZ#a8-cue%7W2AF zER||3Rya>YoL4GU`|>fF@MnaIy&aJ!cUMjWoeRx&|nVh(7^SvqJhsl`%YK@k+j_ zYq3Z1zm4METu8$O-1YeH77eBOLk21Cz*_Brc0>o>UawW?*%@ z%X*2+=TW?Ko5@DTeP=_=3#E{hicXgyjza=xL$FZVanfBVL&Nv9X{SKOQ znSxrU(2T7-=nYG~C;rVfKkA)GovfYHYbkyf`OP(`lazf`H|*wvgJ^4MFE^ad4Ugf5 zL(wn_tYdRSJ5#;XBZn5d)a|vb?APS`8Tg$qrZGd&l!?Xg@yyUALS0$G)8+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_backward_compatibility_c_x_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_backward_compatibility_c_x_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..67cb432c7dbcb0c96e7c243d4805bd60b6424256 GIT binary patch literal 667 zcwPaU0%ZLF0RRC20000000LV800z(i0000000061|NsC0|NsAz9P3+0PBM|$NE|Z6 zJ|>{^Kr;RS00000000000001ZoQ+h`j@mE~eCI1x&<7}m52&h2Zb-l)1cZGpJVnMB zum}l_O{-IN|9*B70vx14LJG2HXJ>cT+kzgf#YV;g7_3e)-$Am0732HAEL|($$>GSf zT**l4SNOwH$ySk2jTV42L1Q;W0l}fOSa?1f5<|9$*cLWP3M^Ij#02e_f^SNv<|o+UyN$qs zwdN3UE{^Ob^VcQ+FO9A4;y~uN~9H zqhhImRQx{4)D*IM&C4^JrYzCOJ+Qs7&&8jtLH4C(6f7Yze`{;b#KVMzeA6v`E4p%SZ#yg-a_Bqk{ BE>8de literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_borland_find_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_borland_find_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f5ad63d9767a6e21e2ae9d47259a503e6aab58a7 GIT binary patch literal 173 zcwS>*WME`~fLtK1hq4*}LqYI-*JFP#UD>d@bq=@GwQPC$($|L>kU+(p+}@2`4GI!$ zXCjh5RLoAbzBBXV6wOOpRg*R4R|p#Y-?`)sqZz-d F766tENxA?4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_build_settings.cmake.in.i b/CMakeLua/.hg/store/data/_modules/_c_make_build_settings.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..b3ceb400af211509d2d6bc48172651f871688108 GIT binary patch literal 535 zcwPY)0_gn!0RRC20000000Gwk00uAs0000000061|NsC0|NsAIA;B7R#XFVquEsG< z60ThE_LheL00000000000001ZoQ+XUbDJ;}y!%(YCYR*GZ!obHR|y~wkk;vikwL_? zAa#&P$N#>MV22N5!iizu+kLy*TL=%ChBV6s9Jq$P5E6K0RKZOa^E^Mon~;IR$4}a3M0>U z$r5!!T#i*yaG9XY%C(Yk^THaQ2EO zPO0#QEfsny;cuyaix{19S&Mw$qwdvvMnSH4axD`|q@^l)*P2Aq2x&B^w4Fi0kNCcj zWN9i&90QL_r8SDYi&CT9$Nu?+Yn^wVS3-jp1~7mCeNYv8z&y3k`62LIqDZU~VJ#LI z;I7Hl3lue&Yd2tWX$SWPb)1n|v|%NEe4fNbEyKw?nXzg{hO<45)^lZHvY_TK ZeBHJYTWHG8X^SyuNJOY6{s&TR)Y1dA`+xud literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_c_compiler.cmake.in.i b/CMakeLua/.hg/store/data/_modules/_c_make_c_compiler.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..932b5407cc478370641eb90997c8d6497870aae3 GIT binary patch literal 656 zcwS>*WME_f1I7df2Id0{P|klSSmVh1U)m*T@ey`QU(xq6<&P#rykkHD6?1AQ`Q|qp z@U*@ED|)RgvRvwU%z}d()=XG%Vf|YnLl4&AaFrKUnfvQB*TgzrkluFx`1-d3j~_L* zos$s_4QUbN4mdRTuK&&Q%bqq0p?zQ0GS*I(Z=GS?Vz8axrE&9z7M|S)Lbq{S{GV*S zw{z)XX0zQ>Zf{60pQ#*X7azp+&Eue4q_#j`w_ZeYtn;zIUjwc$OXyGhay8!A?#NbA zW~2Nmv;7!m?aLK^Eu(LFdydkRcfM5>p-;58THT!;RD2}yf7+-NeYvkw7-#^(z|3CMMQ+(H9 zF#`k}7#LVqLZin7M1tby-4W*r?h{z$n~G+O#6ADH_Hlp13e@;XPDn6IO-QgiaNt11 zqBR0@BBrgHFlT=Bgqf40mOOazWaWgJ)2GExnH@1{=KSTyMc+s*didt`i?>qmW#r#T zK7I9G?ENE&M-uV^LQ57rX>dN~=qc>Fc=P`JhUNX)0X8QpTJ%y9Cy43!o5z%87HMiI z__TPn{jA<~gk3{pWys?Tq1+}{uAXO|zwtzw(r)&vPX7A^t}EEP&;P+7e_X))ze0S6 Uzkrx>_R%e(R}&bfF=pKY0He1ew*UYD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_c_compiler_a_b_i.c.i b/CMakeLua/.hg/store/data/_modules/_c_make_c_compiler_a_b_i.c.i new file mode 100644 index 0000000000000000000000000000000000000000..69ecd7a57116aafe477176c0cb3cf5bb96b92a95 GIT binary patch literal 348 zcwS>*WME_f14bDJ1||b2+vGnKoQW$gOpv*eR_#_GWOLZ$YrwjaJq$>oV$RyY^WKLI zMD{&j|08FiiFDrXe%Z7;3m34P+jO?9soi=|Z?3*3&(Z&Puaq`@XBCpGyx)KPdr)+E zi1X`DH@?;FP+~PK?@8e`oxA7_pZjg0#fEa#O6>l+QyaCe2rfX9d2tI`}&mL*HwK6|-%a#)J01IS zFI jz2cKZuim?-Cr)nqZ?bv&r%h{&o%D`w|G{|d@6=!b*c6}o literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_c_compiler_id.c.i b/CMakeLua/.hg/store/data/_modules/_c_make_c_compiler_id.c.i new file mode 100644 index 0000000000000000000000000000000000000000..780ce4151e08117658bcca28d3d8f5c5e20115bc GIT binary patch literal 803 zcwPY`1Kj)o0RRC20000000QFx00&(F0000000061|NsC0|Ns9NvNEdgzZ}W#93zof zH$u>#fdYR300000000000001ZoP|{1Z`wc%e&?_7f;2%}1-8dleF%ZB(fAP&+G?7r z=$aUEYPhhwOBq`Czt5KdgEpZL2(bNqwm;j~LfSk?#!$(>A=m9y(pO{hwwR6ncHIJfShQhz-*tzTRXybjE$kUx(~vGG!vJ zz&w?ks||AD%d7%;>xWTPhr0DE5dA^DC@xKm{i*a348%FzCan=I#U;Dd7uFR<-bYo0XjiYOO~b-zt!h- z#TRf;vf;2*mdgk!c7e8_G7Eu@Dh&Gd>uh}Q2fq)Yl?lAbxOQzkKUft&jQHDS77(M1jl62$X@`- zO4TlOfhr$#rKy<+qJ+uvsRu6RS-9i)`3TpvUgMj|<=$i+lRa8j4@s0H5 zN^J$>TYyz8zrTfev7MA-H&(h7SyGy^O3C{aWhm$Y1HnlKlwcH<9? hO`^`FfY#^Zwz`k-=^9Gou2?d*uNr?F{{Vp2Ov>&FciI2| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_c_information.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_c_information.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..af417f10ba2eaaffefc138c03a0ad3bd61ec58f5 GIT binary patch literal 2521 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 SI!E!#f$~j!Sb!ThS@td9Hu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler.cmake.in.i b/CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..1c1916ad3079170e33c200d8dbe720a22f3ed4b7 GIT binary patch literal 687 zcwS>*WME_f1I8K#2Iij(P|klS@J#3Jh~08@y{{9qlHr+(`XeW#-ZLP9iaE8D4i+^T z2(-Pg?dsWkrE2Bn$8ioECZa-W9hc&aL>@V?A7RX%YgelrwwmMKrr+xy&tJplGkrN(`_fC&}M1nXQodqf1OFXlk1%R)7#_! zedqk0&#g*NJW-K9bnV1s@%S4i0h1?OTb{9(+sem$W9PBjxv@@fUBe%{UHE12_-vfO zt)sFctU{}&OW#wx^2N49QvPwnqyqWGtb0p-Pdi$o_w4uT)oXU8Zf{N7`1r`-U*>NA zLciC^A7s9@Yn_&YS*i@T%sGRvoQv&Fg;_57z@%!RVQ<&y8>cwY+h8MWD9@dY?H?i! z@apK8KHt;NsCQ(s;1R!Cl_yOf3#xS3+t&Y9Ifde-dt`V3MF>Td^IrF0@%$yvx_j8F*E#mTI2u#=s!0O literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler_a_b_i.cpp.i b/CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler_a_b_i.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..7f200277a0a657788c35a95f20c3112181d5320c GIT binary patch literal 332 zcwS>*WME_f14bSO1}0W0+vGnKOy_vBal-xMhq6LBFIuze85o+Myvl$CD(0*Wbj&(z zAh74PXs~q8(+eu!Cpf=)Ho=*n_e)4u;F{3AS0-Mb%Cm53{rXEwTJLRM;JU$h*3H0k z=c0=;W_`QR|F9&4Pe_vGCYR~0#QF#GSmtux5UgZ*wX!$mq0q8Sx5USRlzgVSd@2*(aQ%ths()XPBJk z)YnquUB;!7Hcu(V|HeA``DV9EE3asDKmPoO)!bXe>Af;{=F%JPZ+L$Pt@dx7vX);k zH=RYCXW9(?OD-CHk1n%n)LZ?#XIGiURDa=tRCULqU@yLO=50O~O=efuJ`_1xKkMek Te}C5)JLzAU{)_EMXNMF3PG6Op literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler_id.cpp.i b/CMakeLua/.hg/store/data/_modules/_c_make_c_x_x_compiler_id.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..42e9bbff613a86f883488f71c1fac4805b65aa74 GIT binary patch literal 773 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_compiler_a_b_i.h.i b/CMakeLua/.hg/store/data/_modules/_c_make_compiler_a_b_i.h.i new file mode 100644 index 0000000000000000000000000000000000000000..fdf296f87012794b220c6630d26e8cfb8d026c16 GIT binary patch literal 601 zcwS>*WME_f14e%a24-C-+vGnK_$WqZRzI9&A0>T?i*w-?OS5D8nhZ#wV$Rx0f!T)) zL|X5E*47jCz5Vi)*+<8l&5K$OWgNeAc}~j>wP=S~m)aWp{(gTNb$5#IHg@Kp3g*w{ zCLQMebMEFec>$px2Eo#dQB3VltM7DdN-j}<+}3<5ai`g$T`U`Jxv4EV#d>DZ@=T#k zC;vWX-Z3@z+NIjdTAywEmsqXmS+ai5ma{>df6Yp5)qKvqgSA4P!DLbH0z)Mil@7*5 zP8vtp6a}Od1$ibaa4>9EX=j-Fno8Po7u&d#7=^}6d@Zd*?{F!9JbwKt+Aj<>(; z^tNxCarWkBInkqDOYdmRJsk0LPmFWRMDKZBv8TM8WJ{hIh3(bgk6QcwRECVI`E|L> zH(m+cIx*JjYJ0w49mArMWV5X5~svsgECzvUa+j zOr16>=2U*WME`~02LrshO!y|L&3VZ!16xcY@SaB%?ubp;%; literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_dependent_option.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_dependent_option.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..c16d95b8c86a826be85302f74e344b119e550c3a GIT binary patch literal 703 zcwPa&0zmx$0RRC20000000Msi00znc0000000061|NsC0|NsA;s)+W6COS$}I%_+) zyO9S-^eVdm00000000000001ZoSjomkJ>O4yz?ubyc|GfQG4y4LNL2gAx0tFRy`D% z#91O`V-y=GTJhiaIp5Gtg_@IN&zqSy&%T3uSnwc|pe5`wd5A*+JO#Pau}mQpJCTMW z)qp=zZ$(y~sB!NO{B5k@HLu=fLLp4GYLO5NV6RM3nw%hxfP)gq6%|}a5y&)*b3)*m z0G;i{7~scNqM@hKlac^)4ZPzc20yX92bcL^*1wpKC9~NOi<}6`V`I%Eg#CpT%ncEH=EPhKotcpwW5X0{6P#)aq%ngSCn~d2n(MtXldQa9 zmX#%Oz@&pMPhW%@wT5Bx#^RQfCUV8iM3gMd9sj-nnYb4z-(V+b4=FOCaWo2l&_)s# z664;&vOPBVcr5j;mO<5idBc_Q7KmXFTbvF0Zw2tYc2+Cu!@~0IC%OXi`|6}mOa%Zg zTSeA)%b8n~IfXC9@r-%YvY!Sa^xsOob8&*DzUR1)1CKt^pWxBu+_EVU_(Xs_kdEtR zHh>`4nN&2n>uz){N9QYg8?w8r&o!Aly-gSQ>kNvWiY~GNd7rWFd^XPQa_W990=##5tZ^GW>*>Qd9xmM%*I`*5SE`|DU l`8{vO(mjW(Wd7$RT=Z4oiY~5&Zy?8#e?9GC?;WNZ4}w5*Oez2X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_determine_a_s_m-_a_t_t_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_determine_a_s_m-_a_t_t_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..110db585ba7049725aa6845ec9ffa76bd97822a0 GIT binary patch literal 234 zcwS>*WME`~fK@>J7RqM)4+W90|0JIC5Mzwj%UL-`fPdj5znV`BNT6a)ZU1SmLk1!) z-+y*>iy3m;D=iUhe%btu>z&hui0*Au)tZ8Sy=RkG(7VH1%$AnMRsA~m{*|??^;lgW4^R8#jBv@WRs%bi_6bBqq$`> zOln-+&Tdwj?j;hnOh{4ci*`rkvL9V1L!P%roO&A}`Mq7rz0+ssts_b%Gbi`j%R5Qd Q+b`J9tXauWq3US`0Pv_`i~s-t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_determine_a_s_m_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_determine_a_s_m_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e7a75765f60bbe6c7a1c458d7b64c2e3f63ba35c GIT binary patch literal 1248 zcwPbE1RwhV0RRC20000000f`_01r6;0000000061|NsC0|NsB~i80!A1i9aKVQWof zye)p_vvOkq00000000000001ZoV8bNkD^Er{_d}+u#=o-)y>}KE|>dq$3W|l6_^0d zI?3ip4>r2k$mmO+ui zI%g238K|xat1Mk)beVTL#;9xA9%!cemH2pc^^6Z+H`EEyywcZf^VXOUr`G}afNCrh zV2I3;4bReK$&vy#G~@IkW&#@J5b}yxch9fTN-$MVyCE(p!;gx91aOJhy=2@sEW-ok z1gHcemfqT|3?<|VjpHYXd0sSW%0-@v?5PT(m0RzKVq&-+Ts^mfEoD#>m;5X*{7TTX z?TL1y8kT?SkdZMfX@2H#LGyjGTRJAQJ>tpypdp7c#n9bZnz|^j&1QS$Th+S(+kpdt z!{aLGkzwiRpFMU|^P*2+sV4S8iz0|Ll_1Qx`-HsZMR|OD97PGbt%0KEIa}h8WC~ce zual8Fop?ZXiy>?{g`i-0(Gwau8sZ5YxAO=M z2_312KF~c;9$J5Rl3k0`nZd)lfGsbg6n|H=i25MalXNR6Loi1ux|~;1QZHP`v6QV1 z;UUkFh1bcvFUUAx@>L>eM@)wZXori^Nm}$_o+iH(kZxGE&3IAKI)+tq85d;uq zX`VNu*B8V1RGqK$wOnQLbjjq3#vl8**Zg3BIFb}s>6T@yU=Z_U{Ww6hKG1AAU~wq^ z2%_Y_{qg$%*T%*6%dg9P6NvYyEhaw2hgcxfIES>N5Ai36C^BnpTRI}Ci8fB0PIt9V zoJn@m7uTvQ&sru~!h9pW-FERBrr8Al=?*^*dW*kkUN54aV_4&^L&jtV4!NDE8aWUH zP`-cvtelEQdU$N_#d6x-n{z!RnTjv(aLLko<`2s$ucn!>ce+Q|wyoYo*sLcUnzUR8gQ<@E+sL}Kqi z=8#u|6 z#SkrEt!kBP!&04lbk`~CR|3)%Z_t0+xi1@_!^jR{!7xpNM;?K{ZEJGhJ6XK*Wx1H^ KUguw*-GfXMP+>#> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_determine_c_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_determine_c_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f9a4a679df0f0263efc1b89585b24938a000cc8e GIT binary patch literal 1935 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_determine_compiler_a_b_i.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_determine_compiler_a_b_i.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b372dd343b013c1deebf20230acfee2a08fbd073 GIT binary patch literal 807 zcwPY~1K9ik0RRC20000000QR#00|EO0000000A`r|NsC0|NsBt)bKoL*aVW5UjFG* zEpZu(0J#AG00000000000001ZoUK;NZlgdDy!$I!#0P9?y^mvV6Bs9G%|kGbHftP& z4UW+gCgPzeYw_>f1LH>$%ZsB(zA$uES5-sf-UW=SY*{8egObCNKRzXC3?US}%9k;$ z#1-C1qBtv))eDsCcw3bNxiUt*3t;P{0Q^-&96^$mah`=~`T~m=(9G};(q$18YhI-h zWW0n$j8)6Dim)7O5SAm$l1K5V*BehQjTyG3Y9{$f1D!JJnubLK%{ColLfrtnLK;g0ylL$kok?ADMunDrwZqyWel&M#S1xkO@3d0NH-UYhh*4v{oO7g@B)tK$x z)nA*`gqr*@$zs_p7Y3xT(IUx|)&xT`Y3p5N$E-IXfFpA73=^$ofjwo;lm)lMHOSS3 z%4>O3vz@y}w(x}%wIXlqBAW0pYVyhBqDq@kMTYsKjHt}4d+VweWQh^7{UAK=n!`U@1p8rzq%``LWx`?Ecn?NXxMsEw%p z=76Oh?A+iiu#YIgMkZm}4aLr*VMAFYe`CH1qNg%P;%`HBc0ZpF2fjZa4V66yKJ^W+ z+RAaMGa(x7#sZ4(f0q`G-_#xly2D)9Y1((e`F)1ilN{k9LF~tD9>E@%vxrGQ;_8GV zgdUDqzKV^*H*xOUiS^Vz@7p(STSgcOWb$v&sLCNOwOHWc9-zm_Wc96W=z-InqBZ|c z>}ww)xl;ySeJ5mVf$1RIuyFraWD?*c8D?pA?xo5o*NgaiNp literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_determine_compiler_id.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_determine_compiler_id.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..4387e448a26b4785397daa4afb0fb577463dc9c8 GIT binary patch literal 4811 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 F{{Vv7-b(;|sBB46;p< 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_determine_r_c_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_determine_r_c_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..5d8074706e7781fef8782654025e9073236eb133 GIT binary patch literal 799 zcwPY?1K|7s0RRC20000000Q3t00;K~0000000061|NsC0|NsBy+NDU4ry{`QhtL!I zGP`Y+^8s-H00000000000001ZoSjv{Zks?5z4H|#l7pj0j(Y8FyDS97K(tV+kt(5$ zz1XN2q6Me5BL2Oz*ccpx6V(?>?9Q7v^WN+jSFn_oRGT!HP^~2_ip@)!Nd;8_+fqVO zD4_77ij@+Z(zpUYh}bO%Sjk)}QQ`4M?4XntP>(#Yn8q~l9^Dz^@GLP}VoX+uWty)r zL0UqB@ERS@77~Hlj8nX*Gs^rmRYks$c?GXRrQ#XyQ%W&Vl@+83GER{05}tQDK;1$v z|5i;bLNrBe#BbRPZiqR|XPiUwNd_5_=7 zK;>P%HwM5Jwn`?tee2Om@ESr~Gk^ZZX$>BU=sgR;oPIGi1c1Y$*hWO3c&tGWeC9`! zvxKqhyAd3L9(mw!;4s4Vz0@bos1I1PkbUwhfXBj+IBa5* zh|FTfdBDM>#Wq_)UR3D1eA!Kf_Ia8QE6eG(UwNy>)VzUSU7sPdzd7oQ#$AomE4Ay} ztRwd#7ip62ovcqfFZZw(bQ&ZclAY_;%D3St@tp-=i#8Ag<&h{ z+%;GM1@rxYjS>OkTQK^bjZ}Fu{HLvJXJ0>Hk0iQ3r2=-qDf_57mpEN86!z33{2?Y` zOsqNaDYMQK+~6b`__i;KJV{qu)$NJ0o$hW;>Ft*Yw4IWAhe0NAS3;2+H1KWL`N3K9 zP*0BC2!g1-^NQsb;qIu1Ylu_YO53cZDJD2f)bZDbe|LStpJL19b^A%fhx!YnI22Fy dFetd5$1Imb*xF%R>X&p*xK;!G@DE*>SRTh%hUWkP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_determine_system.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_determine_system.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..736a6bb611efad414ff357bb8998cc90aedf29c0 GIT binary patch literal 2098 zcwPZA2+j8Z0RRC20000000;5_02`A1K zq!JqlAgra8MVR8MeApHOefQ2jNbw=c&RvQIK_KqT&d%(-ezWPlgJ2V;u;r^fVt~K$ zl&#=?57~ynls>X`i0cn5W(m!B0vU%D%UH4vW684SQN*9a_yL}164LvKr5}3lz?z!> zAq)S`56E=km{S5*z+=ec@CCQwG2*0{ZW&yqmnb9wl(FK^NXP{3v-)aE`b0e6cAaiv z$thuMyUX?sQ7GbvuhoUaRsFj->rj*Up}DK~4g~{w*|BAY7gyK>JkNG{_Cb#3XMJqic+kR5!g^JEvw~-4GuPnPY}xKXdf<4M*cXi}=3l^$JgUB$#^+ z?wQO9R`W>PH}T2$(rfn}^^*5x{O}bQ4hCF%#0-cBKV6jDzVq#L>p`5+8C4YZTP_gu zZ^M?4vb`oO%aa)RT7E?|&59PY1?)5=Te^o0ePXcUIid&nJ?9w$5rrg7XA(8ln@nY!gJ(Lx!~TT;8?_z#J(uc62Ny7rdc}3Ub2CN zNHNeT0*>s7)FV}zZ#br;3{aXpuncw)%@8kcL7)Y}kYWfAj%_V)-HCN$V*ec56WK!E z0Y>&ZOi)gi?1lXiM+*_U(iCkrH#o~8 zGe1wM3 z)Pk;^sI#h?;$vn8H(&%ZhJ{D#QEtH4^(>{as1oOunPLi?*Q7r-19P$`s6x2Ou!9yzgMh@is66*XfIDa$T_ zg))UPy|BPwC6Fo9tWGGAOP*)UC)@^4A%&|^>xh3127{iCX`20*%D@%X0h?Bu=Gge2 znXCk|q^XLAv+}VVG~lET!4W~gOGerx%X57kEv7Sjf^Dc7W_2nA-nPW|%4@ zShTNDiK{fEhQdcZs=MT$lg&?J1mon+Vz%$tS&ZYSH-B5t?YzCQiI%>4DVnPqleKH< z^`<5Y?wh0E=6*v!QH*>*rO-3C6}MxBP-}UrlyXXBX#={jjMRI!O=a%f-gETrr>!6 zm5^=)kM#2z7JO1ek@2<1BHegfzV0;-1$05oKZz z8MO(rp-WX2@x0aEb~t%4rA!gx-xSKdvwXE&xp)(AC5a`HlrXTsk2FI3#$MPm7f)}p zkS}+1`FN>r@>$Fj0$_--LAX%AV#>fz6$DA42`@`0#T=TL=~%aqYs$ONNr-Y;tPz|X z*7$?!CDLVG#Y8zyG_t-qo8f)K38+>q2{vD>ARKqSyTed+RaZVW4#attX;l|t(R(#C z)sHP<>k(6hY3oI_43akGSWmwcL*t)of`r*83~2S1ims=+M+doOkL-AVrO*CMXQ_nm zwyvmG-7{NQpT)y?8RaWAJ4pn@<8}CuCn76x-=!+5T-4PJ;ZG{^vdAOV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_export_build_settings.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_export_build_settings.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1e0f4d883e794445c2f8f9f217ec380c62c36a3b GIT binary patch literal 374 zcwS>*WME_f14c6j2Br!IDCa*Eym@9np>S*emorsodLQK-kyyL*o;?E+sF>3`@nT++ zfkf;3+AjND+|yHka5=A8C)v96Xv%ISj?i6>*1${s8N2NlAsqNm~4WA#V6q+pW zR#o52y#L3^2ZeLqsGkwZRh{j5U{kr}+kcUN!oGZxQuTi+S5$N^N&b;W4eKe1nSu5% zZ%+)E@c&D)3rD@ZKB literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_find_bin_utils.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_find_bin_utils.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f014d7d3a69e620a525ff604d78b9bc2a7556673 GIT binary patch literal 2130 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_find_frameworks.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_find_frameworks.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ac828ffe29a9d43bef9157657ed28cb465413c60 GIT binary patch literal 302 zcwS>*WME`~fOiZGOx;j6<9{g7OHTW_FMfv_Kj%8@y*I-wmKg-xWij_{0waWdzf zoFY@NFK*b?w8tX#Kn2szJJS}eeDW|!Le5aL`yl59uH{D-=XoiKJmBpPv-!H>@%q>| zQEUvyH~yU6`*_t nH}mangJti`)2~Y9gszr)Z@&JNJb$L7)c@ztZ5U5o-TfB;CLoNE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_find_w_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_find_w_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f8c22a92c8c24b91af37063220a94e32b35f402e GIT binary patch literal 175 zcwS>*WME`~fP5fsfU+6?L&4e1c@J6j9z2Q7l@4p(I!)l$4yDNqNT6a4cNuTsg@SLT zU&?yfg&7_Hy>sl_$K~~OXXnk8UR>w;&dIIgI;iM4ukKw8m%;*(fGP9irp#C!5H)Ak zqJT;3CxpzJIeF29uqpFbGhCWHZRX^tHOrTreEM4AiR^m`nfEV*p1pYf=2g>CDPKK? IoIR=w0c&1Mp8x;= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_find_x_code.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_find_x_code.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a475addeff75d1b49d7a982dc78f9316ee45c1d1 GIT binary patch literal 154 zcwS>*WME`~fG8l&hq4*}L&3}|Q+MU-#x3Gm=HjomO~*-2K0#~0=P004*UKD__{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_force_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_force_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..5180db72139cd9947faf124f75ae1c05fad99c87 GIT binary patch literal 910 zcwPaH19AKS0RRC20000000T|{00`m$0000000061|NsC0|NsAN+&*S=b$p0yW2p%A zklYQGkLNA`00000000000001ZoRw5fZ<|06z57>;NDo*_thC48EP@l17$R^|w->Zt z*6}L9y1U@kjq=|+v)}|0oT?{(@aD~%H*Xl7z+xke0Hy^LjB8~;mX#cef8G0W5=5c( zuJ_dsB(x?7%o_ zN(niEnbP0^%T3dp2Bb0uG~?M;QHZrA+c486d8-A6N|qv<9P@Fx{MgCHy9ITmT_g4I z8ctz_Ia`y+<#Ga7LW`cx#y9+f!=k{~MKYwxFR&)Xb z;BvyiOba|TmJ9F7!=LcwT~Wu{;iBL>&Zj4WKRd&i z!<8YdB|L_FIXl8qQv&+o#W9uRp#eH>y}ko`CrQm;dw1~I^-$7C975q0rtw_}i}=p} z00W<%WcGX%@GXk3la>Q9C-(iIFkQX3z&2+UhPt2uc1%lpSDOjqgPDtB2iiV6FrO~G zD?b6}GQ4Yy?n-!pCMiDmJoroyH2FU$dqX9`4?miv_YwMXi&J-ueg*WME_f14dT{1{N6xDCa*E%yo@xU2WRrU0d=b`0tT7`%m6|?8ATrD&|a`bkO^- zfylAE;;&JtU{mS^H z4SNzT?=E`k`}?L{eZ;a)PAMx++I-{wSYv4HcqVA>x~81v{}L4@8R!Yw$E0j|;`Q9_ zN4r_u%Tl*r*;>A-YG&d)^^fabx0alJN~>2%sC`OB(F320EW(?(c0PAnRz1H`{fJ_Z z?b2$++L-kg0Us2$&k(%y^PAr4h3l4B%+a25QpMKP;MCl^b1y$X*WME_f1EwI%%S5U|F@|+DxCX8o3K9FEQ0u^)iPK))w zZ6MP2{jaJm+z7j&_~H@`E>=`^4{l?DYCSr%s zIIIagbKU9Fk6ei)qw@5H&bIRB?>vyLs;m2Zq3~X>$qD`~ynFvQ@EOj$u)g|=?lepP zI+;Gcic5`~SU)mL`R%JQX?WXwK1@%0$$Tva8&z&~p0yiqUE;s9UVl#+bDQQyA)7aw zW2f%Rdt9TvXZvb`>pD+0`Gm z((2liFDpyBuNU7^4cr&@axY)s#bpm>vgI$X;Xk$7=a#zZtB0v;jz61p{Kv5jyA?0; z%C>s^d8N&4yI(9)Q1vk{yW6zfmV=kOW={3}DBpMFNPc;1WWFY^NX^shD|&9nOm#n& zWZT4dr7qxDqgTtD(2&eyv$EwU)ScfucPd}P$#dUd3JF)V=5F}BrBXzw`y%nn7{5CFE_-5pF@XD?imxUJ_PfaUX_U)#TPHWHAWVS2jo|gL)rtgit`ywps zG2@Ds=K@=%tvz##N#SLmcZX-~bRNgq5id4~ZaS>}|F*}kMN8M5|H)tO9^Lfp&*SLD zu8$c~{$HJX@zA%m z${1w9FZMj0ne$ny%mgLTn_j7G8^qW<7}NTi{7ThQ^3y}3)|>K7&WevRuYJk5N#|5R znXSOx9SuL`N80Rgsm)nvSY2oE?%krOjd2(MP29#%x*{jH#8sQQG|=ql6?en-S4+zh z8kVR_r}2NA79QxZ)^*bIy%(=7vb=pXXWjYDwPsUUJ&GSs`d1p-DZ4T(M>226z0zsr z?bm*MdiP+G_uEx**WLFsPG{P37M2TuzzdicoEoNZg;euLljRBf7&#|Ta zyXdj`(}VI$2?4jAl8#?}6olcDkOYS0wuGlw=A1EUopNQ%nLSrTdVf^-tKa`o;oCY( zD#S2-fx`5rCMSmp%i}wmru8-LT0VdF{?MYjJjXP@tiY0pw8G4!zT~Q`HCE!x%##fS i^qHjQH>B-ZoX#@qW`wIj%!C<{jhakFLJU#MZR`L-Z||)D literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_fortran_information.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_fortran_information.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..dedcdaec40835b7ebb563dbaa2ced9240b1cfb78 GIT binary patch literal 2702 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_generic_system.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_generic_system.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..6d06315ae45725413ceb4e1519f2ae930bae6bbd GIT binary patch literal 1466 zcwPaz1x5M*0RRC20000000i#<01Za~0000000061|NsC0|NsBq{Z#P#Uo(k&m~j9q zV7WDz1e5##00000000000001ZoUK+{bLut_e&<*0IC;pK5|~ck&YNQk;>OsFZPK*U zsYhS|YJ}yn>~Lr%|Gg_;zz|6Ca2SS*y!!UrZ!c0vq8n>sK9D%PHv?kFu5%Zd!Jn}e zk6d#cf?<4v&g%+pGroXccyV7q%!nMe->NmuS+Yk#fO_RJgzI<@XZ>HnFRBkqL07Pp zIj|oL1W%u#kWeZHH7+jAFJlKYFLEX=zYaR`$}?K5zq&OJ$+X#i1>Zr_*<{78v)%D5 zcV?5?+Cn9qt~2MNWd~VX_RnFroTg@U-$Zij8s9EiL?oCvo*DT;4SZGUSF9P>e8meY zU_x^RHZ0^O_d9elx#?Ux&jM;0wH`D}DyJQm1 zMkD7*^Xf_;nUP~1f(S@ugQ@+ zT0I|}X&mTs1jF+UuuSWoz@6{Ay-FIxS%P9kAM!FS_=Yu=hkPKF1<)kX6}M(7_Bu~j z9jZCaIa7mU{T$DU;z!e+5g3_nh-92m^Jq*w5>(AFF(V{_dOg_eg$bGch9CfEQR;|@ zXMYvvfbvL!J3l0`{xfo10@tsn@NXSGDk+LJSMWkb$pC-Iv=1Bl%$C@k3i}Szh^<&> zvh74!7FF90LUiFpkno%>3jV_SK+~j3J+}7-e;*LoVl8nycDCNRkg1Y_K~m;gVZEfC z4gey}2H!Ylm!+ttN5baiYNhRDDs}_-Ll1*Tu1YMeuqYEQ!LbQsx%?MtsAK;+tBFk6 zp7=18Larnx5qckHYSOB3k}1n~{otUm@0}KyK~g#wY-n?(zmbc;DA0F??wg3`B^SxS zsO&ZT#0(x{GmK69(ex~0pY`==QFJL|H--$W8B?3{iU(@X(**moV7k0f^m_W%xtB|5 zO9h9W>o%hRVYU=AlJbI6!T-Y?&Ue+exsZ!zOs$aH^LfLcId0$Q1^qA9G+nW3d%~8q z6a_v;%0G}0@&;Ata=`@3ZBrKr(Bx8|5>*iLh2=Rv>QN@sD)Y5X-K(;lV+04*IU-2U zxF+7?>ok|EoNh+Cs@{x4sr_?ZwMEA=+^K?X>>TI7S;KC0Rqf(=iZgy3n3GsnH`-d? zhmAiN?K=;kBKgytyu&%~v&#NgoOalKD%RJ?9m7;UI&401a;b#s(bS#?XWhRIuU~QD zcVb1cXHLl5Pc5}iqsLa#_ZB_G@S2d8M_L{r;&9s>rL$v(X`yabT>8$_&000E<00000080P>4MP9` z000000SW*B00960|NoFHB~w(*%qu_sxjf;}ITC6UlVSh>0000000000004NLV_;yB zW?*26V_;yg4|WZS4+!!Pa19EH)NuFlcXISmfbkVV9E03}^1-120scWD!STT!jzO+2 U@jjkT!3rTkp{|--0E%)G7g)ZywEzGB literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_import_build_settings.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_import_build_settings.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..2e7d1119c609c2a7490fad52c1443dda6575ac4a GIT binary patch literal 2012 zcwPbA2P60Z0RRC20000000*1^05hNf0000000061|NsC0|NsB|8&D2UeW5ip3-gRt zkJbIF4r<2$00000000000001Zob6j}Z`(Ey{+?fPPzy9cQ)A754cIrwQBrlbl}Sp| z4aE#bq7$vM{h=@>=srYqbU@pk?&M}WJaDc`^?0=!NFuWGW5e1_se!39RO(Ohi`wBMxS9a zv__v)6O_Swh0OtY1LJ@=+=VFHjeVd^N8_tAwT5wYkgOZsQTsbz$jyd(8b)s5;|Pf% zii40!VVPCJkCFp3F*X@~){WU0)i5=E`aEczs!a=1IXM2gFw~)?8j!AR04y&)N>)!) z(;Qx?D5dGyOf?MMNMVydirk<}L;tLftl4xpL6RRx#N`#kDniE-dX#QZThee`-{)q< z6pzBizuc6KsKFqpAzpfvL=;xb+mJZv@uSuWEb!DJq&D^AR1bqhXh`Y*^z3VT7P%n~ z0#9fb_dYDzV(I$$BPfYu=vDQ@R8JSG#e;_FVm8t-Zl~(h0tr~zSvK|zeATs@f|-_q z1RPrWSidefSwMM)+E9^uxs@{KPMVxcPocl7Cm=u9Z5%(TJATsSc#{XoCd~4op~6(R z)IY9c+x`CUVghY;0C>`S9zaO|GVU61pU2#n#*-X=SzE z>!RDU^YIV^?o2(sx@hyeJg=VKN)sxs_p-=P$Li2jJJ^)XY_=+yvJ1PgYB06GR7C7x zT5)o-b@{9v5qGUwpYR~G>ABvGztVzM8VfV4_gFQp?o6W?3>{TkohfmpJY_4wGpG() ztL8R<|hL`Wz|sW_QC(7 z<86(K#v*5v3#`IsZeR<4#Yt7DMnB7!*mka!F2aQV)9kGUi&YehVhJ#7T)Vy#Jmg)2 zD$6a^b?VgG=R8tqv6pdHy}kWWddeSzLzmQdBH(=un$>O|MelH;mQYl!5SoD5dD`x z#O{JM$~?Ar-7(QpW5>RVL?g51ygH~5A2~ac9+3gvmhEQLIRSqw-I03=hm36cNESHOwa#7ns7&hdX+g$2OIWe!vhO*47vRq`-=GSofmD>8mNi(f-O+p{n z{+2WaQSEFK(FLudu*0bJ7OSa6`T+Z;u(jf<;2KMx=yg2a*zXh-U?ok`kp8=JLmAi& zwF!n`@x`B{D>j-1ZuZWX^iDDMcoJC9C?c4s$Z|Ba$ z1i%aEG*~ju_oL1-*3k+#<~a+}_kFRb6AUl(#^8inNT^ zH+2>}xUXW}EQ1#5--zh;d|HIvXIgD-$XELk-Kx^oAMb3~py*whR(=fis_HJPt`Odh z+SZQ2zADs4jWua;`zo~x)l-kJm1-|VuBlaP^tP&UfAwmM-kOxTlbTh6)>EIab!%UV zuCH8WB)1B6uhnb20$UR4ZYtOY#QtgZwTj&)yLPB!o5)_5Yxi5rcKUh=|88Q3-@&MV uPXWDX{+0#*-4g1EpBVZ9knnc3pnfdaPQPd0x+_jv`x_-k2mb-s;&fJ%xZG_3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_java_compiler.cmake.in.i b/CMakeLua/.hg/store/data/_modules/_c_make_java_compiler.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..76d8979bc26873dafe3d9321d4b707dbfe3b24c0 GIT binary patch literal 377 zcwS>*WME`~fI|!njPIdr#{W0{p@*2hiA|jtC26+gW_+yjRn4iTEuunNjX9hDHE-EGck_F_u$Xm)GWM3q2fZe~ zDq|^`_bbKzX3uBI3p-x%iaGB&8`E=&o&ROGX+_0R&kBYscl+I8eg^_`1_mZ6sK<_i z2v7(d*)Vl?w8xqL1+ocEyT7E$?C0P*&42Zu!`au-+cn-Ru`Ds(KQtsD cG$h_NBE;1%*wf!HKFBq|$I;nU!BCS60Qzz2{eaf*n9=Ic&ELA%)qPFPis!Mf+?UibNbLIL}`gTxaL&wuPr#CNzO(9Au_cqbtBk|-MBTUdsNC`D`fIT zfh-NKxGHf`U1HAX}JZWahhpXTfIt9jou5$I0`EX zNlwchv&2Y%*n+0aSl78!#+qoD8aa-CHSn(8PbA)iB#7-(uvwBYUf+@+@MmP`0D!;p zmYW$Fy!rNb@b{rZRJDh+SSAa{sfQqD0Z?tB-C83BWQIO2#dXdxDkoN$c=n2Ui#C(4erfEA&CaB z;mqLp>5X3i-N5_k-;xPjCK-$)H<*(Me|RunPZz|C;+Y>zVALC$x;?ks&e%c132Yk; zi7YC?%N@>b=d`6U6-;VIHFl-F1-KxwilanOr7Xx0OPfR~A7RHdP;8>iY+bwP&x@gN zO&DDYi-QMVVndDW_JJk3l{`VYzP|C7ByMLq73mSc`7O!re@qKte6@7vn9Dd^ZvxMx zn;r$)8~$OgUrd;2Fb|t&_d>D70a-w5A#(G%*&9(7Y0dcMw!m=gN7W zr)z&~Tv}o1UE1?7KtOZo?6bdm_ZHmM46MidIW8Qha>Npnn~v#&8EzSp|7UoAi03rL I535_JTnfuOh5!Hn literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_modules/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..53b55d5c307135a63fb1593ee902387919f82167 GIT binary patch literal 354 zcwS>*WME`~fW-_9jC-MM#{V$T<@rzAYuT#6b;1rIzwLJ2x7+)f0SQ#hnR@mjSCfH6 z+r!VXNBJug1j~4}c~yEd%G6F2?B987*%?o#lJ~v4n&#G@|Gw^lp+Db}nKI#AG5rhJ z4YlW-;Nsc0U@})DcViOw-GpeC?lLpCS=L)-*$Z+cZm*pcA6XN4=Vx!+Klo*WME`~fXfUFjL}dw<9{g7KOY=WvnF~=zt=PovEHqW&sDfv7?424oUIeQvkw~x zw7mZ(s* zTPtrt#AT*U0e8;(yR7?r+(X7GD?@l&$JOXbt<@95MT)vFspvYNixk}|YZ4|}G-GO5 z`r%6Tk4x-KpMNnsuRQCnMfS=GpTnoD@U7n&G3V{g$^Z8V2L0C8T%?p^vOUu~VV1|; z+25PXr|kIEp43^GF8$st+&N$8W3*Y$-qrsu&HJ0vc|!iV6|2ci1~r8nj-H1f94uP* KnRn{#LOB4qT6%5( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_min_g_w_find_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_min_g_w_find_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..65160cad602a934433596f239cca1c6016cdcd1a GIT binary patch literal 437 zcwS>*WME_f1IAJY2Bt^`DCa*EgtqTk;yQnI;Z5z7aw+rJ#bU~{92k&5#hl#0yZKE9 z0`&`bE)0z_%!?cVk0qdLAJ5Fk6>SnIvTh6dM zDwE@o#I-kTeocFod?Kn$?TB<>SESvD7@CGF>#d?N+9rV?oW^{k{?AF)V)P4>f*%UNx*WME`~fP5fsfU+6?LqW95oExdfdAB{>d%rf))cCQO;X88%Bv3JjyNoyRLczDv zFJ-;#!ijgZ&GIEDpT3rOBKuxK=KTwyXD^<=dDV1O%2$se IQ&x2b05!%+XaE2J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_platform_id.h.i b/CMakeLua/.hg/store/data/_modules/_c_make_platform_id.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8bf2726703af97b57acc34c7e5292a28e6df324e GIT binary patch literal 594 zcwPZg0kn_LaQ9yDW-Yw0X|!p8@fgqj1iHRYa$xx2%di&+E&5 zOFp?@Y$&rPBsV!d9hC-xE6Ns|>nl9DQhKogf+OEw&hXeY&cOw3m)BR$F4WA~h2}X# zzEL{Kjt1yzo=Z6vQ%Cl}G2yuk2$?J(UxP7SQw41NAT^}p{)~O%JI4T_DRoO#{YE6B z)Le8GBf52(0ZFIjSh>S&2|f>20k!|69Em0FQer_dD-A&H^PzLoDuj3U%fDDdqOs({ z5shbDxE)puQ&$SWe8;+5Y8eYT-leSrrXnwIZ`vjRMPabMy}{jK6#?wIGP}$;t_I?= zfQm^5T~DKQXKZTL*$Y8gJ#^SGS7l& gQ98|{|BgQoltGPc ztb#+JGo6m_-XL}qNgy}a{q~p5mt=?V1c#ib1&AL}us!f}ljZxQ;8{8tLiEW6Z1|4B zDoJ6#`+p<*wMFxT~_)c=3 zl|tqUmZ!-Mu$z1_SzINO<&KHx!N4V9h$iIW4!dYdXt)R?;(~1E{`Wd^y!odda!D)r zPJ+<(z2n`ZhI`s!3r=m%@~LGzL{W(;_T8Dx1=od_sH!B6)kRnFs;s^HR}_#jb?i}q zf(69^K~c4q<)BH}=(|g(+P+#Z`!PlTOBL|3Q>hz}bEvDSEjbQ*>~&ys6@Iu*wDKEc9erkh*dZ@97D24*WME`~fD$170%bG)hk|RRpJO|tqy&|nah;&zy1Ik&{?#4iay^;x>W{NClasT6m&li{pzgw(PhW|P$v@-x5@3ob4IPWVbk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_r_c_information.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_r_c_information.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..53d118d9e9dadfc2b4eef9b32304a628d293f68a GIT binary patch literal 569 zcwPZH0>=FS0RRC20000000H>`00Y7R0000000061|NsC0|NsAyAw$yHR;flDX)1cF zZ#&Z85~0ih00000000000001ZoRw2wZ`v>rfA^<2K_B1&(B2V}n>Z{haZr+W+EZkL zL%oH#iUVw_^4)hfgwj>hw7lhfcfUV(M~09+D+8sfBpBHmXrCo)gi!^QmDu5nZd@$T zP1}eXDpBtaVkbe>;6>txoRT4gEr`l!sI=IgTZp4jmDpg{mrAtQWPir!+nHacmHSDd z_b(W3u!kx^wIF{g)0!zEOP1w9xMG|}EcfDQ9dpLBkr&YimfzEq<@N>cUeA%lb4gf` zbl_^fvN1_nUy*)GGZy8P`?sli$b;Cy5O`}9$5}Uv^!89mGh1Ki&-&*}CyUWd`rwsN zH!b#P%9w=QTRr-0^uP5Gud^`bbTuZ#@`uq?V6dXg6b5&UKfNZN`|EBEa1oRgX59ch z>V0OAW=Y7GC=S0ta2;qr%-;U#z@p(0YJGyOELAPtluBJy`lRX|G-w7KMWgIY4QBpn zdmi6^VP1A)`NaW83lm{52@z)4gMxrW8hvOAd0q`ww;GU?-h7uu>tZAfMm)~`1~x`v zZ+IWMIMwqH3$lQ@vuXh_EA{-GjKMU1Ogy$gl8pQRLM9PS9&(!I)PJJfWB!P|9|W;l z@ubj5Jh0w6z$-aPC{U+3YPEGIV-0p$d)-*$tqFC3m-SAZ-PI(bc02M_Onv6Vr!n~r HFHIxc*`^Dp literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_system.cmake.in.i b/CMakeLua/.hg/store/data/_modules/_c_make_system.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..eafd21439ec98673e07a87d0c3693dc9398558cf GIT binary patch literal 225 zcwS>*WME`~fQ1YUOp;JG<9{f4wn6#o`GUpvQ~zlGldL>G->2_XAp;Vqm{Z#C$k(hO z;QD>up&hGE-(z4(o+~18I$`p<9shM_MI|R3QT@N4y{7fxj;l^)arTPpO6h66ivBMY z9#2u;6V{UudfjlzZTZLi>L30tIJH>nnDC_LZwfnfvk&EW^oXeJKkl2_nbI(G(UiVN z%SG?`%z5&^drjREjaRChc3gY1%&lB^{&mx6!;3CSW>3URB;?wojvudteA1ZE2d@j_~;0>DY(Z(RUs4?-tedCT}8J9OE1!Z|&~^x_+~{x*NyVAwk6*+ODGm{;`wS@(M}+oEwW8f)!#Pv55IBiP zSywp5Vw-1Yk$VUx@2A7z&~(C*RYo(I>uv&BN?YGC98x7%uJhTAmJxI;pIqM#*YU&+ zPan((j9IedmVVK9CfPXfr|xVOI;Muv&%>@Lo~j9u?~E1-Q+&&zLqt7 z=V>H4;Q31AK5xprg=nGDJx0UDmBxC<^jX{+dRj&_aQw;d3D*StY_Mp(=s=XT>&*z@ zL2EA-4Vl>|b7tvxwZnUr;w9cxtU6*WHoF#hlp4qGs6s<;9!yrA6St&k#&ALZ!%K;Q zDA}=%DQY@u6`oIe_S~lsi@F?WbT$J@?+KI$hss>x%bVo&LAktB3dwK)yA``Zi^RRU z34hrk>ePBHLT8F6Zg}3N#@aG$&8Oj85YcM-7DQuy8zNl!OLy+X<9O=XGxz~g-|O`2 wfN|t3ehrj7PuGKWQ_jKb6B{j@u{(9gX7IwfO-C~J0vksXKHd$!0mXQw_)kyV6aWAK literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_test_a_s_m-_a_t_t_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_test_a_s_m-_a_t_t_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b406288fd27266e3248c045d081b9e388bb069ea GIT binary patch literal 313 zcwS>*WME`~fS(Kuj9E}N<9{ePBP=`jwwBS1s7VuTKQQgK_!FV4!hi%S=EP1oop;EA z$MyTqF6|o)S3dCvb_fWSIPY3F=O8EZ=Z<4;qV@6Yw|vcwFWq>4D}9yfu5NK2JA*g- zxaVKAzo7PtSze>JTx#v42aoig%sbR4EPg3w!Oo~hXHKd9I&y*gcoUH-WD zoz)H*b?JZy8jW-AX|^1{zq&QRO8G~L@f^X;8dXB?C$Rgd_O~v|VR*y7WKF&T&k~UX zOP?g|c&oeSyomVAV*+O$d*ku)%$8WiUp2MKb76go>uaYz44@EjVb5N zkmcK=XP&rT7B7Em+2N$Hs5Ptqx)=Yrvu*XWjF{t#u3h=lweElL>sRdiIIH*ophuCF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_test_a_s_m_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_test_a_s_m_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7f5c29dfc3f382b005d7a13df2a21e01baa4db40 GIT binary patch literal 351 zcwS>*WME_f14elU1}1R^DCa*E6x_GVJrMJGSGK_JGcLhD-dLQutH*!@D(0-6;O~9d zLEz~7pCbL&nwv!aawx`TXWa4<{ve@t+jCdh|0#EMgO0p^x9sTb1?>8pHyH2#{><0R zb#pl5-b+1S<}tm$FjrBhbe8s}!<}tcHcm)e80%hjaGI^_bHP}%qkYQNi*=OWX~uac zoHbHgxF^ohs@Ug|+$0^3W5SuW|Ni+hrIcSdB`0*sK+mN_WJ=5H!Y_FrQV#Jr+&sLi zg5Sx1qREZw=fd;K_+<38E?sC8Tx8uQI8~-;)8UNNAnTa4dsDA17HG@vdCivI^P-}; zK}6?ZzNW*B)TftoH=dfl$k#K^E-3SPYFy`{pE=!UUoBm8?7YSC5ltPl8upk5 zheio!96pi&00000000000001ZoV`{}bK*D2L*~? z+0C+GTXR%Tn7&vWtNsZJ=?ys3J7_MxBp zqm0CH6hnPC_EF~Eku%S|HWpqQ+gEJUv^S@5!yBaeW^325&TU8Q&qZh)Vcohr+HdfM zmxOBvm!^F`Td;%BN@4rLF55Oa1m?PJYkfR1871T=azMSj)LGBP{Us`K1@mga|0I*h zrRZ5F?^Mc`YW-3v@79XFg7szlF*)HR7|jL*x-I88iqhTrSS~9ZEaxs$>Eo6q{4dsb z!^(P{K%GJxU!%nizI(}+r#SW8V0Hr;%Ze5DtN~6vSX2gho&)=H>qeV(KJ6n~@EZxP zv-EaKvLyVSbe#t}G=;Wn(J=cOg@bI`Yum~3Hg^Gmk8pUbl*AK%1fEy(RqQO6qTs7a zHOg}D4z3^vovfb5vVI}pcH$cC{4LpgT2{=-<_IyjYaimCDsHu1PbGX2*~hd11;vY{ zSScyKNTApiNMSP(O@`ssEUu;VR!xp@?qh_1*Un!bJ{*t9AoNr6t_J-#bvpAL00000 z1H}LU0002#000RK000000003r00000|NsC0-U9EU7b8!H_QLE08)aSj09m>5$2)nhRJo4hrdjP~Mz@ ztD_E;Duk!=ulqlnvDqVIvmX}Eb;{UH!`M}r1KdK{f5Fg!uQ3e1q4^CVTS?f48g^Z1 z{Oh4d@B{cjYg}#Lk@K$o@O$jjT}xMDq~^sY7s=f>SJ{(r)|hf!s;)ll@pBnVIS$yj zKH#ZLk4*gq0aGm(rLanB;kZ%HvJlqMR>I*Am!EmjGI}i^HdeSb5eX&mFJSsj>cd%M kC3R*imrFaIq9glqOaw2Dt;UN^MDC3)syHp?zk=&@Z!+3@zW@LL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_test_c_x_x_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_test_c_x_x_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..34070380eed0b8c3930ab328ebdd75ccd5be654f GIT binary patch literal 1051 zcwS>*WME_f1Ewtu4D1RJHUr~-D6s$JcfeMLvH&$ zHV~+NAKt^nzc%93r&D&V2{$_KP1(WiF;&UD^j40n^`=-xr@!B2p9du{GDdCT-}}QT z{hZAFndjs#gyt!nW@Z0#S7KkoPg{YL&zksW#N^!&@>f}Mv^AhuO>f7OS&>T*t~w{D zv*YQm6RPaHleYaciurIwDWIT$VWpNA%k>FHoH|>j)sEEe?q=}Ob9hqJyHJKJRp-pi zlfeO!Q=)WDwSD9n4)HA6bicvzn2zv)tzlA!CvJYY&B>E{+p~ll=&^bL^^oBU-E}0QUB``6wj=^lJ>63?Pv^aNEZ%)l zXy5-Ek5+0=Ofuvx_^ulmuf1>GZ{}+#J?eJpWg7i_1lerdxIX z?8nYjZ~Zj$`ZMSBU14RDPu<+i=`wrP9*w(lcD2?nzl>qdN!|oRg3|n+i{Bj!nl7gvJj<%}*(B(`=y|j2sA;~pZ)4se1A(^7OPT!(gREOv z;~F2#IF*$Xo;Tq{ieixn_ahfYp4_SC?=Kt{46<&J@U!~+YyW$_F1h+e2K@2L4eBRu z`@hI4Q2li-H}k%tN-<-0{GnyvqQ4hr3C6IW3+_GnRqkfi(O0Vq*>luqcQFZZ9^I6B z>hbe@waMXmz1J%3r*WME`~0Bs=Fg0dO^L&3|G>E2HjbSt>GrFvZ9O+2y6sVtEJ36v^l<|XHprli_r l<`-%`JOJI@nf+$wn{V2A2H`rDkfa#{{M|~ngvA4pf-W*P zqQz=USGZF^oZn`AL9<&{FhLa;pm^sQESX{=PYVWWO;z#VhLGVY|xxR&ZU9{m1zt-fl~05pt-aGz)hgw>J?B(sG=D#A-F(u z#4VXJUgDf?7)ZrSsZC=hWm>HCRXJ`;bLKwHGVKUfRVWpL2hgTE4-zmqH2#V~NW0?> zyAv;j{@D3MqB^3e?~SMKi1^W+=YI;WIsju51kNq#2B8zq0Bib z@fMzcZ}<9WX^%tv+r9JMkn9eAa3_xcB^tQ?<9H~2zCQX}pj%T615 zFb*#lmT~9J!s#rGK0Chad>E1XSwjs-*d2O)=sS~0ha25FLFCUS@aC$65uH@x|3U<~ zzJ`V18&>?JgfpEY=JS(Bbi3FYUzucCgSvAyqBJqB_glYe#3&9FA9UZSbxj{jpH4V3 z<6fKdttz+b?YwyYy~_FHyqH&rn`{i7&>2O<_dOr1u{H3;**}QTQin$Il1Xw%aX-ug7Yrsg;ZjT z?5RjGAVYUT28RFzv*{F55Jbb9p2>>l+nF{8_@&X^uNf9Z93fL3klYJ$pI4WiT?p95 zZ0*?6GQMtl^`3qKfcIGEcd+Cbh}MX1wQ93(HuT^Mw-~+*EO}=)*bcg^gF0d0?Weab z^7^t1=cM*}c>WnSoy>?!b3%*G18XGb(xP*s?6l!(6QOftNPmuq%@Z=TYK|eE?%Mxa rn}T1aG*4eJ{;D#+zjFM$%JdFa#!Q4$#n&7@OMQ>}uV={*f37t*Tgue4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_test_g_n_u.c.i b/CMakeLua/.hg/store/data/_modules/_c_make_test_g_n_u.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4db3ba388bd793019179ec08039efab846aa97ed GIT binary patch literal 175 zcwS>*WME`~fP5fc4`nm{hk~6CWwxjLe>@?)rcr)oy70W256^97KmrwWg3tK`dwBYu zKI83sv7^8IJ9lYc|Mif7;NSq4j;dd+JANIp{{5S+;@1wg%%Z7J)0b(qR8+7XXBG_T zZd+zLy(lZrD@|&8QJPf1e5aZ{>zB{3-mx*T#%5L41_QIN=O(^;IIr%-DaAz|uNYm@ HO*R4m`EE-U literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_test_java_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_test_java_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..bbba39970d34d8a89495aba4e6268ac9d32425ff GIT binary patch literal 317 zcwS>*WME`~fWHh3jA2kV<9{en4-RmAd}g17`<4$LK?edhh$YnKFd%`7Ii?fN<}n%a zw7mZwve{->FrvRd!f#?_6r|_(-dXc*eS87MqGX?F_%T{L(noICs{CXuYTt zH)QnF0v^0^@>?%*=ZyKjUF5@X#(K#beT9-GA_tZ} zN!oE%cTKsd_{%c_XT>E0jw{)HZ4TYC?au!{zXaG6zw~SLbLL50NaSbYPXDmIb%N*C z>~H>Gvvy_h$$xQfuiE@;j{fYo53@JNzWLBq6}8`d#`^DP%WPwlOsdxXV~FG|X#@Z& C=Z+5m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_test_n_make_c_l_version.c.i b/CMakeLua/.hg/store/data/_modules/_c_make_test_n_make_c_l_version.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8c76b2564d43eb577f539fa01db36e9a698dd7ff GIT binary patch literal 83 zcwS>*WME`~0AU~&g0dO^LxEC=kJFD9fsF?amrt1+SM(Aw0JXLlZ2$lO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_test_r_c_compiler.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_test_r_c_compiler.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..50d9bce69a07da00d1f78a86b86fd899fc3a9c9b GIT binary patch literal 360 zcwS>*WME_f14a!XUe5sK{D*=yFPav7Wid9o8xg9nzH)!DpXIy)1|(21$2Q<})?ovI zJ-@Zvo?UV>{36^`czHs2A(L&}RwZk{l-vuaSpL_Bo4s{ynmhOA%#&gkvDS{4ExG@) zZxp|x?B&08bM&XT4r`Uq z_AGXZPYS~9MR|W_Yt8?|y6$s%YSb4UK~vB41H5vLw;lFAVYtR?bG%$Ys_RLD^MeH? zTXoF*w3aR3-Re^3u}Dh$(oeIwuSBP1KEG)>z2(9=%`|ppA=6NW3o%~%R@R?1cC{~k z@N?#y)|HCqD=w{gSeUp~_;9_{hU2*xSXyjmtPBzrnAg5*ZTtF@leW#g^65>)ytwYW vMZxn{KZ=nlyZ<^ja&A4})n^_2BBvj%K2lY$wfb*S_w?!8--!DknWzr{vB0CG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_unix_find_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_unix_find_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..199ee43fd82abfd376d11c5531202867b07464b7 GIT binary patch literal 134 zcwS>*WME`~05>3xg|Zp{LqVi($Ii7$l`&B>B}0w`D%`uurMiIu2~^A}{`{r5lb_>L zIe*cYs|DXmzm)Z|3kN8&+PlYJPiXye=g6B7R)atuCDWZXvdw!Q%QiojjXfmucTQ~V Ph8I_#FfoYhNrwOcnX57` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_v_c_manifest.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_v_c_manifest.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..abf30359c7941a0af9ec3c891ac4f2a3d7336a30 GIT binary patch literal 596 zcwPZi0;~N10RRC20000000I;M00ZX$0000000061|NsC0|Ns9G+B9fS$_B%tO-PlvT@I+o zBo0_4F^V17s^Z`K?4&JdtFE}1$Gn+&!#D#7IXiODI}U|tl!j8&9AtqLp>R}k;MGAt zgOc5-l6i~6lPF85rG^c61|aIJY;&ID!&2okYb#!BriH9M2NBfls;m(Q4fqoEQSK36 zG_ry}qR!<>ealKOtJt0ct8+Lor4V4)sGrOTMUo?H1lypx>|`=oRR(K3Ta`f8xiFfn zET7T%re{EuC^%l%`{RFk)@n;73J@9xLTTkW^XZ5z=P6CW9lmtBXYXy>y>S4nh|*1) z>1%4MmWz7(X3Il#O6VwvCinuVGz?#Y$p1~&LAYMTVLXe^aQja1ub^GKm90Lsy5UN; zO~!w`!|bm&j`ftZ{b8S(AWITFP_n*H;((;-D2SuTUrel<$$2$i4elTz=|f1@kA5=u ze}<(0-m?cgp6%hZ<0#QwC0{UXh!w%)7BMxkb*pC=BA*7o2uAtzeQ2{YT=dFiw+{`k zWZy!~nl0D10+;c6c6~Yz$tWRF{763H`Xo5(+o(;r>D;C-IEu9mHziW6ERBynQr0PeIqNXx!`m(BZd i+^UPe2v$A&cyPCJ-JZ!Pk;UZyv38&@Tl)&kb~9|trX2m^U+T7-s+>XGact$Dt67(ol+;gDh|&6pl&`ygKM- zP_i3UGH-Es5@iXs)Ue^s07RXYZO(IiSgKrRZN+QNw2-yuAcC4*l{Mm^0bim%%01$X zMpp1g)VVyVZ&~SO729)Qbq)un6aowz^^+N)NOEM2U>j7IolGXH%3zIWs}jgM7e|3Z=v*p@W;4)s%u21J786_l&AIV2tp9E)p8?^~Ho!j&UN3piyrUVQst`ytyjyI*r zd@)1j8Cl}#_n{vUaK|o~4~AsUGFkOkM3|yKBcrKL{cuf^Bu?xcz@2snY1y~$vUwkl iTXpdl!K!B;5AIg3+cOy@vY7lo)(-S#YhMA%Kr?C};Srty literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_v_s6_backward_compatibility.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_v_s6_backward_compatibility.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a7afccf2f4c8e4c24b0cc390eaa977b9883ba50e GIT binary patch literal 398 zcwS>*WME_f14cgv24-^xDCa*E>@)vev3=Pz_TOLow%=6DbO?JIk`C3TDC>+qf>^r?8a%!45t5jojO-;j+KW8hYJ6PXLIKq zbo(MYW!Izx^GhBpO8K`Mh;aq(dv|AH;qv^s8&(DMZeoteTr<;P&cVtL4et!oKN>Id zmYdAO_xRdb23A3~?d`!$LNkoMDmq?Y5XC)p1Jj!eCtn_w_j5XV>b=RX+K&$YCVW2^ z^H*J8wd;$AW6Pz(lk@yMmUdra-q^9MeM*|T!sd&6^_QkP1wQj#nYZPGr{Y<0&U@bF z>Px)xyWRe|3!V~8G>pGAWpjgFlK7R0CXMe6dAFMU-qw3GsQ1mmoZWf<(=SSynq8Q( zYjU`~{z=JauVY-M$APcw-=E$Vv?zC};ctPigH!Jd&i{Gv4I2PELAt&G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_v_s6_find_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_v_s6_find_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..556b02dd98c8cdca6fd77b9a52d3620ec2175e8f GIT binary patch literal 275 zcwS>*WME`~fXfUFjGa(6<9{g7e7z<}DBkU(NvWSt<)M%rTAae)8IVB5oV61U_B9y@ zw7s`+ee9`sZLdK2cav?Yh5-sw63&!emT8Y40E&fLdxxDa7XpO*WPnYJbk{bUBSJX z#oO}(SIoZk$X;<)O@`1T&yVu+_cqmceY53rUE`p!Ky*pVMfUk$Z4aKZ6c^>3_TudK JyjLbQPXG#EdSU*WME`~fY%HRj7Ont#{W=|XMFQM=fhq%o}g_JnMWp^_Ds5WfB^|q%-K58H~X-H zM8o@^qCr&|dQ;~x-S)g^|xTl>!j!*BP~?Qg7Heo$}U{PUmX&T#pK z+zr{ywvjh&#gbQ_?nDVP$QWuJ2-Lr&w{T71>~4YhPm}Cc*S21?6R^;?m>Luk`MYJ- z1jEbK=DW6go;ug_`Ju|PpBZzeyfoviu9{_k$i*gTx5WE53*Nf)T>tyz&-3gH>#t2I zkKbDU{+~h0vn9v#f4pW1SKVQCaN1?DBy*l~%Qh&Kls@~-Ua|Nf>wo!QdVh`|{=jow k(Ajt8gn*8cj%2TQf4pQkZ{^K+Q824PrLT@*qRNDu015t#i~s-t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_v_s7_backward_compatibility.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_v_s7_backward_compatibility.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..d9f9c7e8aecc97ed2904a581055ca314d9c6044b GIT binary patch literal 398 zcwS>*WME_f14cgv24-^xDCa*EEL9W=TM~YJ$HIjhnVwz|Ti4W}Uc-O{D(19aa`Zo} zAi?(FciqwHRe}6&=KOKHr>*T3^~sEV)Oul>Rg$i6qTbi*-qyAjr4uFyc*s3CYi-@E z`(9fkRP{hkt60ElxvX`(B717?-geIQzi*Y7q9~ooX5b`kyI7<7^Mix?-FuFm?^qMj zV{FkAZOv@oA#lTXN|HTe|0#aPRctqDPM^ zd-ByKMb?S)<>r+XJ89)k;p=cyv0Y+f&-ilft60soLXXnVO?l;3I9+5?&CCUXyQ~#M zv%*at*>ed$OP1O!>M6;4Lb>U6awgmT!`xFZB;Q_^bkgn1g7R4Ne>1m7`SD&^`s&El z^WH^WH`I=GTb^Dd@>7xZ#3h;9*exn5Grz?6hqmp_5ij2Tigo>hiLU2=KlHdW!DLB} i?1iB&sX` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_v_s7_find_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_v_s7_find_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1a0451888ac6d76128a06b9d6f3e9b23db6235b8 GIT binary patch literal 286 zcwS>*WME`~fO`xKjIB^M<9{glJ8_nw&VlItn^%@Exe)RrS7Yz9Kn5gGF=y@s-|WK* z5)JQvie3sXUU^q@!`!$lI*O*8hAC4lmn_NS=;cdh`u)B5^^KL&-#+^N(?);Bbkoq> z>o#QvwzoJRz4HC@WiNqMjmC}Vs;-vxrgGORCe`R^m4&po9Z(cnqLHn(G~?4h&RsJK zjjPOeUsrgV@a$=cV4|h8dg`{@$8BY&eYX(gKeO(bwRNWSijP%1=j!*k{7u_)d~JFD zKa+)bV!rg$_rB0_30J;#bS^Bo)4GrI|7U}LO_y7o!!-rCUND#@emS;& WS!crEY2A$})g{x_=6A?dCj$Tk$b{Aa literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_v_s8_find_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_v_s8_find_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b9b7c0858d9da9843eeff45119c5df1134580ad5 GIT binary patch literal 351 zcwS>*WME_f14elU24)5*VEhjSxv~2{#tZCxvaxc(#`uj}l~dkbddPqTD(0-6^J|tz;??8-ET%SPd@pb z##dPTXoE%PJ0Xcz8ZC@z#|!pdVo)$RB9g-KKKkTtzMLN?W(%(H;|cCx_4y+A2j*y3 zj&&kEHuE3YET1_0-eH&2#GTU?3G3I+OHVZy5q;b4tNH29yy#c5@7u#lUkI5eYq|!1 zURLgP^7`Hh>;3;Pinls{TXucaHL<_%7R-rFoV537P)=&#?$o2Z%RgUc_LD03)L?mV zWv5GQ_p@tXWNm&c=leJ4CpPZep5L?b_5Y-q`%aWMS1vm!xIbr0r2?;Ri{}A_)C(sS n9B=%5_*_cr=t{XuJU7K6YC?4mbADB361zSvHADXPi=R#aQ>>*n literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_make_v_s9_find_make.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_make_v_s9_find_make.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f70b0fd999e511a4759f82a40ae04359eef8555e GIT binary patch literal 352 zcwS>*WME_f14ab~24)5*VEhjSrw{E|XPkP|k*BqzN$cNaVX+%+_6$g%V$Rx0*7?l_ z0uAMLt)it3suLFWYfMh{ab#&WShUJ3_2Lm<9Y(ij3qwNxSD$cxd%?@sb^7PI=kJ%B z-}u;Zc9F%N{=@}~8Gg->J^a&)x#0jq@C2njt3~srHaxRkUu96DG-F4J#rzm~`%S4G z4~iNlz80L5YEm+ZU4lPSAx#9e>yAFivPg&y? zw{=@U%~h|j-~QxYRJ2-G|f9 zN9A--*!E@Vk59_~{K@e{NbJS#-O|Z#e(jGqrvK?~!o19aBl^<0avsjy32%%&B)0^6 n2yCnWv9rysa1pzSYccnkeOl8V&8Sjj+?;*dXp8OB#-H8*(}JEy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_o_p_y_i_n_g-_c_m_a_k_e-_s_c_r_i_p_t_s.i b/CMakeLua/.hg/store/data/_modules/_c_o_p_y_i_n_g-_c_m_a_k_e-_s_c_r_i_p_t_s.i new file mode 100644 index 0000000000000000000000000000000000000000..b671cddaf5b427e1f400d27e107732b37b163169 GIT binary patch literal 773 zcwPYo1N!^`0RRC20000000PAT00l1q0000000061|NsC0|Ns9IrsoiH13>-G<8Mk| zaCG*qmhsF000000000000001ZoUKyLa@sHuzWXWmmS)C7r|qph30q*z7|WGp2)8)4 zNHl{j#+H-G+jrNH3AEQ90HIxdf4j=IZVZEanu7B^)O`!nXuTDnCkD+|Uyge2N z=;~kxS0BgEZ0CUx>b3Mm^kV@AFZ;T)q=Fji2}ed4@1zu-EDakKd9Z!!2OK6)Ar9z#mG*wFapou_<$bPY^?~!U(Qo5Ji$# zsVLSlEGq+rG?0spFxX~fJVXEcERrkOaFt~Emn}su%zoxu2~!Z)3Y9P@nKB}&a;BiH zR4Fy8MDeN6NzTNEr;A7w$OwGP3j;c1d4BC>$x#Yh=KPF@UQ(fWVo3Dmga8SqfGYAB zbjcGz2mZiOGE@5)T|*)Z&3{+eghfc%hON1VFSo{{zl~$QNu~IPl%ZQ)EwvG*G91=Y zrW7Y=uC^lK`WNJq0$xF-c^sw8u$dSkFc2)0mr9E{8c`UoR8<-wi+jlA4$Y%RhELNu zLs^hj95|P1PoR{+9B~Z0jN`pR5OQS{qcF5lA~Dx($Y-Q7(Wgf!_&OJBUL>5Vl2CR+ z^Lw0#(9|GiTAVR*Re%EiT(IN0wxlxEIkMxF($( DX=rLN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack._d_s___store.in.i b/CMakeLua/.hg/store/data/_modules/_c_pack._d_s___store.in.i new file mode 100644 index 0000000000000000000000000000000000000000..867b2ba688a544625133d7c2a1ee3e683a9f4ade GIT binary patch literal 842 zcwPZY1GW4B0RRC20000000RmD05Ajq0000000061|NsC0|Ns9C#dHa1A7atC1tq2R z9>5@S4j_T-g|;o?OPy>c;L{R=#ae}FOgW@i>lX;D0ABJYz- zzdOI)yqUKug=Lg#O7lmWGC>?G+$qkM{Py#E-z|WzHCa1%W8rRzbDzoV%DOkH z8fV}UJZEm=sb^Q4%4F0cT=#jkjJd72q`4Zd@<2VQSmN1buB^mw7m{&JGp;$0*H>V< z%ByaP*DHH&$D4*|TbFj@snk5XE_;h9M4z}r<6>)wjz23k&^(Wj;(Gp#T0 zTemO431Hic>5^ryl>^?WI(jXdz!72Fk6SyhmgDR$0&qIf(P~itIgVIGT!Gfk_$1bx zmDk@tg4`U@C-gtp-F>sojM?dV8ZKfgfdw|KK^X$z(10p9phFF{3}^6a42oFJG3SGe zo9;Yb*TI7oOfL4(Acw7HFipWU48sMZZA_zc%n=wj7P#N2xS`Q&#Yfp@v{0KOF8xI- zz*b$CvNfT-!?*yP`|M>qtu69kO?N849ieAiZ!s=Q`{Od8b+kHp-}PN9bmN#zyu8{L zlMhi$Muk6c>Qf)41Pr`+4gE{sa4y&6RLqB=8-%7~H9f}^UYdo5=R2XPOq;!Dl7`EW z{bf8Bu_VBV>KMsN6vZ_3V=oI!Wv^kFj+`(eCk!!wA)PRk69 zBoNQmb-ZV4Xx+oR$%;JUcn^hhKDYPw0$@*2U+nJ6)dg`s96lQzZK2)$R-pE0R=Vvd z^!-l|-RYB(73cq(z2E;61o0oklCuwH#b0);M+5QeRl~F#cYwoR1hBS04CzGxK@bE% U5ClOG1VIo4LHvDw04@9=Z&-?l!2kdN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack._description.plist.in.i b/CMakeLua/.hg/store/data/_modules/_c_pack._description.plist.in.i new file mode 100644 index 0000000000000000000000000000000000000000..df4c9d8ab26e8d7c09702dfb7ad4560855834bef GIT binary patch literal 321 zcwS>*WME_f14batxQzkI`40u}v*iSS_j8H}>_2Gt=k)&ll47m17?424oYo1k-iHlD z+Sb2a-?1~lze!vva{H{bpf#}(n;XNOZy6l^B{(VL?tb&FyJr~O@a3@dpZ9%^^E3P0 z=6y>yu6m#L!*17MkFwDC)p_=Zr8n}(f3)E{k-KZrqq)XQq*G-d&3u1wsm zRGG}pv^=Tdg6rinFWa3qC6U`wUmHb>Uaw8Ro_%i0)RMV{AMbl7NX*WME_f1ICLC3@nBWP|klS$X#h}9FQ_^sr2-$TR&G^FBB9_E@MCf6?3KrC-%>B z5cvCU{eqh5Qz>-V;>UV=Cy8eC@xJ+!VzbnKY1BJGxtB?{{hTdaQ|x&*EBx8_ z%I@Iximg4Lcc)BSx9s5dNV_j51i$%rb^f2`b*Ve(<}#_`DAqZr-*$-2mXYi4%06W} z!8oOxKWL-9i0{V*2hzn%w2Jxb0Lt8Z(yO=w&-^WCmh{X8LWEfv}CMJ}_qhzUP;&?2;Aqwh+al=$Cg zW4vO#?p-qwt|{MpVUechp@oJ4ek)c)MK#tnFFm*?%j@eiu7Fju9-Z8xx!{hx#k++6 zJLK*7W4EZcsy9Qpmj+Pbac s*Kf-kFPue-3=Ist<8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_script_launcher.in.d b/CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_script_launcher.in.d new file mode 100644 index 0000000000000000000000000000000000000000..5455b1c475562a4f9644e872651feefea9ffb144 GIT binary patch literal 314311 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

!d$L6A3 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∋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 a-R)LY6>30kAMWRB>k9m#{{2722+rtoEs*#C literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_script_launcher.in.i b/CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_script_launcher.in.i new file mode 100644 index 0000000000000000000000000000000000000000..56fca59f396e425d422e9e9032768e06f4f758a1 GIT binary patch literal 64 ycwS>*U|?hb0hZIp8ALjH7$AW0KNN&-n>9ag^S8i59kW(>y;781U>2s#fCK=Bt`su> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_x11._info.plist.in.i b/CMakeLua/.hg/store/data/_modules/_c_pack._o_s_x_x11._info.plist.in.i new file mode 100644 index 0000000000000000000000000000000000000000..9446d2bda9cb1de136e3b29d7306355ec63efaa4 GIT binary patch literal 536 zcwPY*0_Xhz0RRC20000000Gzl00i6s0000000061|NsC0|NsA(S!~|r1Uuf1s$XEQ zc3=9cW4;pr00000000000001ZoRyScZ<{a_#h;f?!FW&Hy-d?YNeTaAjT!``QlAio zTY?HUGo~ruex}K$G?7Ke0}}Y0pU=G)Y^>kfMtcR`*Nook-&Qxe2DD&hO{-gdmwL+| z`r2F=U!BlSA0t=mnz|QSwA%#O*7PMpR@XJ4*{tmb0URMGb+jnJNvcU0LN3uYeJ@1! z6QRT5u*xU-s$lIT>`}y72V9JSq%NglRfq3}|FUAXurtNJ8S~lRo zD>STYfr=O^sW#BGELFYWvI^6sm4xjLbb7w4Hm82BfzNXs zm!#OkZmg!s5*;}R+3K8+562N*g1@hBRQ`a`>g4)lr-G39*@GJ=I3#l&BY8XDt<8=& zbHj}C;w7&j9lI;u1X9_OJ>%m4%1gFkoPM^xq^@W#27VQ4EiaWxF(g%APEoEiBr)`C z;05&4M|m&*Whnna1s?$Yl?GD!d#E||cFv#9w*H_Z$#!US8be-AKcLOJk=NB;%m%f? a=rP9rHa*K|pyTmip!dVWT>JrHsh3JL2?BQj literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack._runtime_script.in.i b/CMakeLua/.hg/store/data/_modules/_c_pack._runtime_script.in.i new file mode 100644 index 0000000000000000000000000000000000000000..6d1710437eacd479f3c3e57a5e57b15c9f8a8d60 GIT binary patch literal 630 zcwPZ^0*UvefO`pHPLvOg2^8CzzBmuHldadwRB}F zT}Ts$SWE24HYJtNe*2sNDTsaK#j$kmxjyHf+qfW4j1!fh25P`WL@Z`Bf>?^I1A{;c z4&MY*j8o_a<+cC3yS9W}^$;4~k6gTrnB+l5VS%mo0xvO|O{Ol4X%04p=EMBaaauv1H=ze4qR)h{(-g579spY(F%BXEBQfMkO(tzFB1hQ6= z%pK?EJxSS9`A4cMa%k2&VTu_-*-v8w*g056JqiO2-7fgPcRljIe)hk3v(fl=dNug& z-wtoa)0yv^$KVo6R#Zn!8A*YBICe0e~ z-WGRR&ic5-EWrOWevxo_{@f;?F_SQ%(s-i9vYaOD;W%cw6~hIMl*nh=$aKu2 zF(`p+slqfh8jMG25!1RXZjF|EM`#Ks?JuqNpMn0>I`e~1oeMwcwm$nOV5KdzfuRq} zFz)>&FgjvdktsOvo;(*>8jVGuKf37Zcc>jKNiK47PjiVubGq)Ws!3Lyv3_)HKrr%O zt;*r5(_j7mpwsJ~>_b~*vz(2_3U;Htb+PVguYW?USLc{C#7qhv=~U{_V|HN5cr2z8 zvQUj>!}*FEflNa=rV^GMt{o8g0g}e>S~jn*o7c_e=(Wa20#KxlV)yiT*uV50ki27A zkg|w!Nsm9ZE(Ya>%WPnSeoTm$h#W%A3{rFFXbpow=d61|jvyB30!v)LL-b*k(+tSp zbCwbK0L_@*H+hk!@UHT5r1Q=_%|L70Y6RNu%>qy#ipb^yvDqXy8?@G=L~4(#Voydr zVH-WyW%L5KOAo{KY6aH_5DHb zvfp+$&qb&0cL#pZ?sbQLcX;A$(l*tJN1HEzoCYf^$>Ky6pan$rPQ%h zVLqa2F^sOX9V_au_ljxAl%a0fYjCDg;hjxw+1E0Wo8d|%b{tMvikm!!jAh6*LkV<1 ztD;u-^0VLXv~l*z!wJ>1HjY0=FA|f9R+D2GImf>PIikEo|zx}3J0}lz* z_q6$y|3-j($;E9-CzwyYQwDxZ$&@8AmrodHILRXA3hdZYCV0}Bmecrey`B26KbRcz b4Dbv}vvt_&H_rZY{QMulN1pdDkVv|$kx|l4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack._volume_icon.icns.in.i b/CMakeLua/.hg/store/data/_modules/_c_pack._volume_icon.icns.in.i new file mode 100644 index 0000000000000000000000000000000000000000..0581e7feabaf1cb46a6a9963abddf7fca83c9fd1 GIT binary patch literal 23800 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

>+q3;aezJQf1fZ{o`N_&)$ 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 G`ELHfF}D{0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack_deb.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_pack_deb.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..9c5e2544a5162f5183b5fb13b95c6f331a10c6f0 GIT binary patch literal 1319 zcwPY~1=#uk0RRC20000000a{N01Wv60000000061|NsC0|NsA6g-#Ok;(P2|uyY}P zfFX!@u~m)$00000000000001ZoUK;dj^a2FedjAmFw%n5z(~6@8u2hvfWSnbA^eSRkYtLs;w&r{FQciJ1`lR<%*FC;h8gOzz3lhsTNY*SmA3afm7laZYs(N_31c z`AtKJOCBR65kes2L`eZlE|7?(0E8F93z9p=v&&fFs5n<5QN;(Ndu-aD~|&# zh}p)}#6j5()Hf^+St8ZGaU{4mvwGj>d78QTO)SqR*4Q?zd%o*ThIM~Bn*M1M;UE6V z&5L$Ft7S3Hq?Z^G#2=_Mm+|W%{;*xonNAGK3$rWxH>&5dbwJ_YDOae0otB<+P*oG; zqQ-`X1fW1sXM=}+m=`i5GlP!;Rf-IzPW15dWBMB#@TmwsBX#4Y-JDu6C|5PVUQ$cH^Y1bN&j#hVM_vZuK zGTvU}!5m$a`~)-BK*7u)AWj0*dYK9sIFtS{bG<=LCWL-4!)AfGYd}>Lq1c*s#Vy96 z?v!fLw`X)duQ=8`pU`+_qTRM9sS?nbJY)cmHM-+M1SuP8r@nkJEL_h6WOoN@X*U<(-YnO1s9zfT z;C{cMi_B$Zli%%cnt*-V>$%R%FPnk|o4NNm9@G8$E-7@n*_iw8t`1ic-qfUETPn(p zL);XoVE>CkS7O~)>w;;L%cGf=OQkT7n~mwYuv{#UhSj}m;$Q>S5T8-pZ{Jf)bHytz z6;JkW!8CK7sq6UVWFC#6Dzo}zuK;%P$)LGMJlZ^yp3XN2RZr)70N3tK$73^_GP={% z3U%^&ckgjHv^}4k$%Edr$48Tvsd+3N$~TLb?-brw|MeM{=Xm*yYlS-aAA;vr*Hd&; zPL|En4OA;rsQc)Q`ri2hsFhT}rL8dqQ=$uV<udl3000CN000000F(d#4FLcE000000So{D00960 z|Npi9ttfSc*dZv&PNypYZrr;YEZzVB0000000000004NLHOoN?fW8*# zTI%{!JhOPWTGeE#!apO`Dyt|T3R3;CqeGI05ia&BIP>D?QPyA-Zw!lEyu)Hw=R>Qu ddsR}LpwZ4rig*1w^Y1fyM9c0GegTtMFEj*OZ4dwe literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack_r_p_m.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_pack_r_p_m.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..9bccbef447900775c9688a635f496962db4d7a23 GIT binary patch literal 2686 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_pack_z_i_p.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_pack_z_i_p.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e2c2bec4b375985ff196b1add05bfea05e1231f7 GIT binary patch literal 408 zcwS>*WME_f1I7pj2If@^P|klSxVLup_e>}GR+e=axeo}xD|y-{bd>=KRLogB$+!EE zfk4~)e_e_dE81UO>^_lpIixxFmhYlXC=S$o+EB)dnQ_nq?W^HP+vr8w&xy-NEy*@o8Qsu~!<)_Vse%L+ZTfn(W z?%eEtVU{uu;VXxlN^Ul6>pm2GI#urLjF8-txyLk1zj)gRgft1&{$j1z>AF*rUnC~K zynpx3{mgf__@4<#xpU;7Vg<{$ZCn1BS2f)JGyiHdo7_yzw5i+OKm9znq`#%seloLU wX0@J zXw!Yyx#q?I00000000000001ZoW)sfZ`(K${+?e!I05PcYb9;(ZWp~T=SWJTtt}an zoENk?L6(@98(Grn#c5FZzweL~B}$eZr@O!bZDNx%4`+tMnTO0V8X+}_AIM{wVdSGU zOa8z?fgX|!6*w~B0*)2QL)5rwF>Yw z^z-E+@w1R>1USzX#35HnSORFiOv)%k3yeq{L}iFWP$n@4ocd3ALh>S4ithzC!Y|lV zk)$YjXzZYk!jvDyf@VAA$=8wFXg=79@!gxEW-afh}H|7zy7Yb|EfswjwbGnCB%1 zk!COQGEI}LkV1rGe-Yu3g%E@8gI`7kUBxn$qa$nP8kX5M4-L*s0?I6A6>gDXtPDWs z{n633J2V;&F3J?;$qM3KekYNiy`YsJWJwOw)3It>Lq~T#(5d!(47~_+XnB)Q8r3|xui-Q{-tNJVw3xTAoUg-`R{P#qx zI&t)U^9Pu`Q@d;PE_=PPsqKvBU$tEd*5BubY%z1`7_kGB)9NB}4RW(eS_U#cpXegh zhD-?-)o%^Qb*Mcv+xlHs0nwV;ZRd4R-c8@+AKNw^- zcAOi_?s_5S=+wbjQ%mb}h>aftGO^S#t#2I+G5iXIYa5rBy4?w@Jo*a2e5Q@TTK8@y z=}Uukh5D(4W~YbNXwg;!KSoP`P1`hWsIoZggNK})uHs<_r&o(rnK!R?#Cxk&Qvj$2 zNs41=hm>>V_SFliO>iwcT{C{J-f9tePJA4~2n%ho~-lM)Oid1%+_HLZ5X-iMIw*`=k z9C~(+hQOK_D+nTjoN0J=#LT#LX2^ki>skJ9e;tup+CTsOM5(p>O+DhtWbKG z8uw3~+qQ0Y=)<+sx|Ybq1Wc0Z*IUsJG(Z7IYMpHxn45g6n~4Wu9-GItC%>^p#0zldP5 z1R}af z%G$sRpt8`!3!gxZrjKU8v71{(*GQc8RB3fqSLq;SPVxnWr*yRK8MG(9sr5~!s2&eF zzXv5>rWuX9?G|NS>o%04`dB;$$-2h?)^HNQ@gJLB%RH~@O^&&{aCM@$9KIEmJj5mC zQ5ROQew$Y$9ts^svA?31N=EW%rVZ(*_bs^vdr7PWs~W~052<`pZ`h%s{0sKVmMZw| zZ9TeaY6yGllQrZ*unTGnNP0Ki#(Lu_W&9K;&+&oCH-`D?;}#l?2$Qu;=vrvNzTfEb z?c#97mL-y!yaim*xpQ27>NWepk^3c@cuIrY0o@1R=l`z7ZbYwRuPCTb$mhTFcbE zYL$n0J=o4*Avjp)|2k`5&Rz%FEd??-Udt?zI|dwlf0xIr6@y^pkGfq zJaNm;U(ad@whcdp{1%IlV#3wt(L9 zO;y*1%;avL<%2a}=5Ez=RLpibr;zF!md&c}82vPEFVo=^Zf+YFcP-0me!{=fSCg7g z9HS;v#=dx4oyGWqbc(`X`~x zr~m)}000RS0000008sz{9$5eY0000007n1-00960|Nj!3ZGSSmO^Y_XaukR#zWgJr zk}d!M0000000000004NLV_;zV&cMKI%D}*&qyPk-ZW@06Aqq+=)n$n}wMq)Ujv>w- uuE7dQaVkohTtJmUKwJz|tqM}@>gPgG!)74mc6+E literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_c_test_targets.cmake.i b/CMakeLua/.hg/store/data/_modules/_c_test_targets.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ec14f00f5a3a0de9f5c0867dfdb37f7ea41d7a51 GIT binary patch literal 957 zcwPa$148@&0RRC20000000Vsh00{#C0000000061|NsC0|Ns9!#MFtTqI^aA{* z`;uJUb?uM<00000000000001ZoV`^|Z`(K!z3W#D;vDQl9W3_N8za$LMYkOY*wQLu_a8nUTt@tz_qXGPc(;&mr@BOsx70&_ZZ z5;|OEBsNg}W%@UD*Ni+qQy#6^YTdm!&9K(c<5=1c|;)^H_h}GDQ!iB$F z$J8=3#S<9Ih@*&|9s-rOi16U0wRU^dR7+LObymz})rVZu!WMHGBP$8$i|2&?|K(f_ zfx)G(%W)=1WP-NDtMKQ0`{=ffRwd}p@t_qPM7>pY33=M=H!7`j*tD|98%V1hns!sl zra^#aj?ru{P@`tA+9C%t7L^dW0oe#BRW7#@AGb9oIMnJN%xn{MKQZ31X5`$6%k}Yq zvvP-1W{U5f+p$NOABCK~tY~6LoxmqCW;&!zW5+8yX95fwsBZAAJu_97rh`IOVvZoM zGQV@-ZXB7#lKUYuERR$Fi;|FuG|z1w9MyqL)5id4|MW9-0#w6&qKVxUrXduF68C9} zlnJ0;Q2|+sN~Z;ca<|9T11K{>x2kQ1qd=6ZKDv96eV$p55YOZ8I$^kzx_QIo2Jpui zUQC!dKJWho?>y)u3?MdrURLk%+xnRRItYA^q5@dFT;6rQl|^ z>`W(^MZ@}#r&@qJeia@~3NZT_55I^y-3dV9t?H1Nt)&O?@e6HM7!K;8t>yOkJ5Sty f8*WME_f1IGCb3`|cMpq&3uklcGv(K+hheqoITrNW1{r|`D;9brHM6?0kx9rJD* z2<&++%DtPNvx9eWdt8)AsD_oOlJ~j{_7|QBOSbyBsIgA+l4AK+?Q!$mN>4rRNt>;W zt>+x#IU)C&z2es5yNlVv8ywd1?R|0QDo^eDEv5$+iuP+HUjJAo=hOIS*^_NbqMBi^ zO%|taJ@aVx1@Rr-r%m>q%MkI2Rqn~(Jn={Gwapc8F1`BTzK(VOdx14f$y1LNIxUv8 zlCE&PYM*`aoo-7hOT2h@ez-vSkN(rg1fN-)aC>=I^v{InkJq=eJ@?vf?=G!sb|^yk z9lQ1v7IW5SM}fS}>w^7nFs#pBDyXlacys65X9bQ+b5d@%v?YIQS?PG)!|&k? z4URBFO>U0=vkm8Dd)_p=?ZU`lu!}Qt&yuSe&nDR4-m=7V>V?!<%V%#nA?dSk&z^oc z^?V!o;GSF0-*sDu<#;>kt3_G}UOLpsE$Q~*k=+Hps6&r_7c%Ajd-AJdVzd7jyPK!1 R7gl}>jL|zAZnF0Nasb`Z*mwW{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_c_source_compiles.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_c_source_compiles.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..2818c30d5f37797afbd929238c67d3a31246b33a GIT binary patch literal 866 zcwPZw1D*T;0RRC20000000SZb017k!0000000061|NsC0|NsA{lVXdpL3^$W3}-8L z2fYQXai%Z;00000000000001ZoV``SZlf>|z2_@NGzWS}tG!n0fr8UTC6EQOt4gay z1WbZTLS#szs^Z^wY)l{uNweM6aCU26N1#B@PLPi^449G37EX@T z%%H{`&upDr&~;-_mxD4g>RcGU_c>olNTfZrw`&Q-Sx@XC(2P!kj2GmVX+O0qcb@N> z_T&ALmVHE{hgcr@cZwvYZG5=RQdB860;NH zdDB1J61hj)>6HsrO907t@WLD&R%fvx zmK@?)8yP()?a6<1hpX1Vi^{xGE=y=jOvXDie>(F6G}hD}EF%B+H=?$@TWs=8`2xCz zL}1!Jac#{4<@oF_J!8Hd7VMv&r?V|L+wvyM7wt{#Fzd~`%d-!3 z6kG*w{=2kXiZ0f+#aw{iVHvle!}r>*>R{HZ`)tBH*)A+FbW0mus39XtdtM3C+PzLttf^-&|aR_QlX1JRh442-beUGT1KTU^(BAQEDK*#p$B7=gx@JAg7w?zsNzY+ZOS?oV0!Z0r~ zMg;+*d6^W~a0^k!ATNV}=J_?y^`>|cN0A>VB||WTBj^xiNs?{j^tl1dG5!~L!eD8E zkBCDDev)vTVj1UkdPRl^>nx0;7s0&st7lM^JLmb01r2C3^$|;D{If6}L-!_A^}&TZ zjGA%GERq@W=b9HAxiGTCf6jZ{bz@>$CNXV`gCucYa0n4p&WjP!h`SF*`oy;Ho_u!I z17cd*bfFt+W$=oBb_&c?f(|YyKdO^~!YxoB1{n%Gufm%wERCn%sl-L43uUBN&M#Z#;*c zJemjwnbo)5CvE1hC|PelVq+KiAolz@i}EUS=M|2 z5Q=S7H$fE+L0)W@VRh&k|CvOyb)zOpnv1(`31hj(MD z_frF^|J7Aq^3@j?I8{SPvu3H{yk5zTRg^5n?UR&LY^Q4d;aI(u9ctO+@ao&0aHx{o zw(L*(Udo-^31I8z@R=W{Jm_u4Ry34hV0jLxaA>0l)G2&Ejt5t;reZn4w20wYXrvqq z{oKC5eeYJgym1sQtIp?`=Erqzm&K+mZj$U7_H(O6t;sdT-8+GZPYV9gw2h0UsNenz zA`_@%Z2CRu;I&f2u5;?NYCZ;8*RG9QeGElhEqE;m+Z`*-usr8pngNK-=DL*U~C z>h=1|Wemzh<)ZP3%|}vG{?1kRAxOj4JpVh~%2_&VFM*9pV6+tSjK)w kx{(OtZwPl^v=1q`HKyLvaAS4)QxQ#0esv<(FGIMr_O96kCjbBd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_c_x_x_compiler_flag.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_c_x_x_compiler_flag.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..581ec899cec7190e0323d76d4064131eb7be69f5 GIT binary patch literal 485 zcwS>*WME_f1IDEc3``#xpq&3ua8;~uWmCzTU*cVVjCop;QwkR*H8UWAiaD(l59ZG{ z5IOe#kEs7iJ_XajEr<1HFAIEJvVz5Ej?Z1rogbXm2ua^u790Ase!lOdcUQiBO8GOd z{{DBnWd_Wfj{jnu_buc5ii4sG<>djZo%OBC6WjKM-;#Q8q04>BhSwF={L38bf{LPd z-s}=tT{`RHrl_=!zAw1{^qn@@cP>N3=dMOi`DVd?T;F8w@9x?4Px*S&{c?`5#*JQ& ze>g3cw34pyylS6)@ttlMH(%;q0w``|+H&o`1wBK~`Ro-G-9bbHA$kD2StdCKyBR|>FX`fbW}I&4@kt{mLF zZsMFrhJgZWl7hqp_DwXNlkIua?6wOdgTXG&$URH0YP_)8zb(^qvev@WCjRD`6OCuo zR8{V-p0lUuo_o)&=P&>Ni`b~kx%WoOLl+NjcD)pdgWbP-%Pt6s#rF#rv`l{g*j2zT X;7@}7`_^YCe^1=$^Ph1;(BtC(Lhj)5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_c_x_x_source_compiles.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_c_x_x_source_compiles.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..41d9fd4140bbc7906e889edfc18ce95f79b469fa GIT binary patch literal 872 zcwPZ$1DE^&0RRC20000000Srh018R~0000000061|NsC0|NsAzUmc1-*LWB|G3}iI zEyI%t`>y@~00000000000001ZoV`|CZ<{a_e$THsqIpPFrPW?5^?`!vP!q_2Y^^j6 z5ikiV36UX9tBC);V`CCfF3q}Wc|qXwUHtjj&IR;Ao6+zEk{F5^g*;oakV2S66qYP| zO(GgWvJhjgJ$5t#0h_MobWvc@e3_&)zwTUs_LXRlzV`IwS5>}d4@c&JxIKybt~!@k z*N1r!vJBR{F{2@zuC5iz4`tTaCB$%Y4EH5%fQIMhr zJ0=u$E|9>(!8l9PY@IBoTap|-zrzG^w7^Hq>B1mQc}+1(ayg|ULxy=4CGopZSqIfK ztn$r)troXJ2DG92NPLHU8=DT%ePf_LxNwI~8RyL6+7*A!gGB_Wh0fAonje7c#4s(> zGi{5Lq)A?I3Slbe0Yo(B@LpdxZ2N8!u*(A^rlk$WI%zT_i!fbbL{Y+Mh#@BQkov&9 zcT~r0A=6~S0$$JM(fdoMGgLLl?j3CtXtoJ}Y4nut246}AhN_1!7nEPsm#)Gquq}w! z6Rdv4YK$$7htSMJ6apxHy~09wb13^#Qljj!*xvE+-xgqM`YlVf9XlGTKb1m-7lzHq^L6CZJo{uEHU3l@pLca4i*|{D z(B2Qn^av=m$9vOKoo7Cavi@WUg?e7k<&8EBUZ^);-sCL24&UCCx*fZl%2)Ywfin|d zhs1T&2hwvr)f;28k0`@~X3oz8kK(S9yP-1Vp|YG(uNsid2izSWIor3SkczGIW^c(F zgSE6&5r_=UKPt#ah+z<-JWbHYgbqG zNzCyrCpq`Q{|>B^VkU03-Bp8H2nG0-EQafvz{jqgaakI4K!IAs9i2C`*!T8>jbsz#QX$ggXqD z7Wj!cbl@imw<(r!ULUW>5MiB#ar7vdw|?~vs)Xk}XJbJF+DyH{R2knFreo;dWU5}f zaEVbfj+sUBeEhrS=|(P$Eb;I29(UcCn3hRQ+u|TeoEIEI1eNn-gf!yr!;wC*?aMo# zo%Mj2mNs4JMjIhcgQUc?hcTl8CN!pf>{Ii~Q6016nZ$R@=k}Z)V_%(|%v8;>hrM!v zwp;+r$xs`y>f=ZQ(xkD zH74@DbhNV?iqjq(L9=Ibb85Jrs<&Kf4?#aQt(#_N>=MVct}hRw*;~knjHzq<&6sLb zOMmmIhXzs~$J0uWb|&gIPe)9R*srET`oETqk4N=NF1jWYbRGWdn8W}@#&~5~s`G=N zVkeg-fa{U+iAolz_BmzP zW!AhI5Q-&LmqQg0L1rwQVYTQPww?%*Cc*l90hxmq@Pu7Gw? zJQvGFTmLWmp2{)Z31I8z@Rcv8Jm_u4Ry34hV1}MiVHZaws8jfQ7!OWmO~s6YX%WM* z&`3Gd`?2MLPXMVXt-!QjmxZnwegTjw!Xvu}o2 zbgo;80qYP{Okl6S9MGUlRIVG3*t|LIZ=iGAeF)O9)!qLeZsjPcwFkm~kK?`ionUFx w@bAdiU@T)FQ*R`~_>gwr6mOHb_p4ak&08|wTfO{(M3YyZqj+t90C=pwCNSFwkpKVy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_for_pthreads.c.i b/CMakeLua/.hg/store/data/_modules/_check_for_pthreads.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7e477c29b88ad25a27513a5064662981f057199f GIT binary patch literal 448 zcwS>*WME_f1I7jh2BrfHP|klS2usgt_EK>bo!Z(kZBd=mv&c=qmogxMiaDi0r~M8a z2<&;T&9*AcPg8a6kyeHv>8}kfM;6X$IA!#4nW>gvs`}oLKi03m=pH;8dH&p*^zzF_ zX7Sf%6};EZJ@xOAVV3NI(5(eazF0;?AHLGy`ufrfy_j5G%Zo9OOuBm3J~;81(eu9liQ)c*4k?%w|HkEUI=Hj22ZwA%OJ zrn$b63ypr&T6p_!m~+0%MLlIwB)@0=^X=_(A3Oe$um7N4f8&F5@`H0ds=7;L{Nt7d z9eYtyQ0Q`BZT;egN6**}O8Uw;_?O&zr(TfsfAy0@*(%%DZzf2|1T7QLI@%xv8@F_z1}S) m?k-$w|3)m|(0kS3;$N<%j>yIZMJ z6{^$;xdt0CReGL zZs8hrzQGFz%?*B%A~0rIR$$C5)pZ$0VuoB!(&VkoyJFQht{l{$mg1_U0q4QKCs9DY zj=g}m(a^gIP$dcB8Zs=iC?`u_6!IfEibbk9Ms`Y~-XE=o16BjN+Ve*gTr%){;zD=b z9BztJfSha1ro0zYn~p=UhEmRp^03yesoiyxdSg{lnDtmC6#xp$8oj^kjBK|Buh9Tj z-yM4X{qE!{q=Dz(UU%2Ws2Vjq)BIoQsWXbnhb0cYA?bY&JW9%CBlE`d?cgbLyQ@iZQe352cT_j~XtCqb`a;jJkl!UZK)+hX@;YzTq z-Ja%1Oj=1QxkkN3amCSV-GXD<|3^)A{^zMERP4>pwvcLk!h&hdC$LJ*tc31{oh*}IJqv4>ySuI|-aHH3Z@sbu zE`Qz`A*WME`~fQt+aj5Sa;<9{faS~JzpX5#i2e;Cf>G)QkKSK(g;Qx66eb87p~b{#Sh zY5o3PldtUZG{(of3=CMddS~@mO6G>R zuCZDjGw+{S;PUddbxpRPKdLM;x|o;kJ7q6V|2?&-T=Qob9NTn*dHU_wr507~=elyc zZolyAH`IRN^_TO2g*=~wT_4Yaz4pi~+b#7E IU*rk^0MlZ5l>h($ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_function_exists.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_function_exists.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..d3dc8037969c56cf64b6dcbde43f50a4af55f369 GIT binary patch literal 828 zcwPZK1H=3P0RRC20000000R5~012-E0000000061|NsC0|Ns9=benH>ndFhnR74&m zCG=@f-HNFI00000000000001ZoUK(&Z=)~}z2{eqXb#CCt@c_e2MSJ$N+1hlwUw$x z1f0eS!4)6PRuTVw$9#n(G>zIlA?!DAp5Kf;S1^2i1O%8=7!>Ers0y`n(f$w`X7GDmL}inWQfoaY&<{auw5~K1->9oK43;PG#sM> z5qTR5{17c*bq0jJc`@@AA%&DflJb}q;Fu;^nD(v^?1)$%hJ4GSmj<4ou6I~aNN9?m zr3m!BFcg?{#ga;P%8_Bi1GaoGc(-2p^-G5mh_mRnNCV1Lek86%e$F+EsP06U?`;^P zrdV*|A$-1hWhfNC8!rj~bD^@(dr3ONRWi{GO;{mFLi9&a6rvJw)POEU_+X??Omn>O z;$a7gW+?hxC2a;4`C%4N2v|&gw2RTM?7DVmp~VN0AzQ?rz>D;#eckI#WyLZFo!tN( z-2k9X22y`lujCR;We3A;kp8rm`;x!{*u)tWDcqwJZF34FfHYD&b&UJFdL@VcuB%9S zm2OIGTfQd)+mW3)O42!Bi_&3lK#Qe9<54~`ZCGg%`a4Crvf6@I=;92zW<2h9Zf(cX zjQjD4?gmk-A-YZem!68zP(MB5DWLAS%Tm_pwgc6gt0JG`m}hOMvX}n>P$bLL1+e*rz39nv~&;Yh9U6t5o)bWD-_BoRF}* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_include_file.c.in.i b/CMakeLua/.hg/store/data/_modules/_check_include_file.c.in.i new file mode 100644 index 0000000000000000000000000000000000000000..486adea7c9154a3abcbfcfe4579224737cab8bb0 GIT binary patch literal 176 zcwS>*WME`~fC3rapT89L@)z^0+WPoW&^aG(Pv78<{_<~yJbd3u`pWzI zpPxFT9eBd`%$dse$QWVqIpOk(rVjVr9Mz_GPDpnAeAOn zi(D{`Re~b}>#B#zB}7FfhkxU7Cit@px7|rS(KJBgM_CH z*iW7p`Pt|Mtk1;yvUZl%Vr7%{%vq30^8q)e@0eE$a*A$K*wRP}c--)41CavGUxS4f z1S2!LWgwCRSLM>;qstE}IlV)KLV#pNDKlL1GA)!J;1A6}>~;i|axXRp~&uO=iy02_0{#KvL|5g3zS2FfmJ1_+)C&Jn!<3 z%F_Xmrg43QwsA3+EGmTL46~11)AGH^@%+H?{NOmuCdT-=wNwVUW{9By7~gy5v7vmm z_Y17*eSm<31F6?m_h~ymf=}(98@7sAo_^fp@-O+qb0W189nU>8B?JIgs9q}OM*#Z{8N zbyO;&arRc>^(tI*2gHXNQL%q?pu7&@z@x-?*5oHz|eO5g*_yCrP zTHqxa5`T$VjnDMQ{uw_b#a^Zg2vBv`>NXv?Y-OeUlh(n@rKHV@qc9|QVRK= fDkl_O{!Qg(!VhGwjeqzOqw`B|{ORZy*<1HvRRFl) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_include_file.cxx.in.i b/CMakeLua/.hg/store/data/_modules/_check_include_file.cxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..3008b6d98a5964967eb5b5c93708e24de4ee01da GIT binary patch literal 130 zcwS>*WME`~04E@Jgt8g`L&15+w0*IH96sy!b(;Nu-KC&%`qTvmBv7iHnU|bXnv$wu zqf+hc;p*%i@9F346YAm`@8;>_8Xx8uRBOk@m6=zfkeis9r=iJJ&847Flv+|+l&4@| I%~i_<0HSXucmMzZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_include_file_c_x_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_include_file_c_x_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1ead7de23d1b0025efe7c363102879bd653a672d GIT binary patch literal 904 zcwPaB19$uY0RRC20000000T$>01A5m0000000061|NsC0|NsA*)vePa8h71#y;EO( zqmTnrXY9=Y00000000000001ZoV`}xPunmMe(zs#3VkR-6m5G$;vpn%7p-Ynk|HKe zt4!lSL~2(~GC)=S_nn;|4QdKQLwl&Kp6|ZpjA{d1o4#XS&dBlLNO?DAMCWwPK*TSA zl}i(WF2AWv=q={U1xS_`lH-yUX|DY6XL1mmJQ19x$T5)-P;(z{H> z(K0@GJ^gQ4U3hF|PTIEPe8Q;rPT}PG;sb7;E|=2FD^z#bd(n zT6P(%=`-9i$XJd`EF`9&X{vmXmD*lO%q$RLEutiT)+`=rwXQ0aGmr&8uT<(|02h$u zQemQIO$E5FDUYg3VpVESxJ@R`+zB0Tu0T@koPyA#v@#KkRru)Co_OBHEtSVTAa&!q z2u`w)b#AIX)w~eJVz%@e*55V}H3KpW$Omz#0q6ExRVh3z?6L>78jn5R+Fb79 zdm>R?jH^wxtL4on&UE2dE~6IK^TP7X6;Xi$f2MB+r|SO%2XVZ5dKxFZuD*%6bmpf2 zLseQfCWRTadjBZTESEm8aJ}h;1jluW?U*5{xVa<<%qbZKp&2f)gEJu>)QP|&2iD0+ zJCVDZc2hIln*P)(0p&4g@a09PG&R*6t=Td#uSr`(Yc5|20b}1CbjIt??cC@#@6phE zA;*ra&>=;Heqi-Jc+mt_YTK7nPT zI(Vsu#GfMr<178m4j%#leWJ~)E2RJa(ea9WQ{>}R+%+x6{@5&Ma-DEhO5cY!}86*|}XPu>X{ZmV{dKRMbvckxH5%|-r(;)d~mB_~n}`H_mp e6kYyJ@p|%KNM0HL@)bwt*S-;s2Y&#gum47oX0Lz% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_include_files.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_include_files.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..c6c867e476afcf5f4d03513715b0adad33232148 GIT binary patch literal 913 zcwPaK18)2P0RRC20000000U6~01A5m0000000061|NsC0|Ns9y3~GcBYGPFc(DD0y z?XizpJ7diN00000000000001ZoUK;hPnr&rr2vO6>1ely?BEIY6d_7zL6foD)%G01q%N=RY>7Yw*a z@;YVdWM{Gi_6f1SEnVN9FC4O*xpNYk-3oqKp=*7elfBjx`fUWyd0BzXI^0V3n98k> zLbuzv;PFMylt;m;x)As&>%3|KsUjxxT;6eUIrx^aitiQ8l2!Q0WWkVlo-3c~iYs$c zNJK=0l}ved-)49h>u;jdE}^K!q2_IS);F>Y$@hgD5@$J^TgMR`L0J_F6SGL<>IM^0 z-&HJ9%uXP)JiaW~gga#B`Yv??UxD<6Xi2q|NLi-B&3$JU1V&UJYYj2+TMXar#q}1H$*!7&S*_+8iX#1j&>h5fH&RoWFC?K zL7+qPo!9c&1h%0(%Dq)=xh_cGyJtzZ+l>a81tGEQ6H^7CXBXc*%I#&vI!^$jKWL+C zv(sO>PrDDw(0m>;!P<n zs`49IJL+qgZ??QCrw*>8@MyF>yQd>#Poq1rz1Q8=zOx4GFruOBA7g{R(jCo6v{!n# z=>-lJ^mIX&!>gm$!@L@mwQr+0DTc3ECTo!z<7OP&KY)$xLU1rs68hF0jFb3wcx=~* zkL|8>w@y#7+x|wZYy^a(M}VhJnK>R;;*CY4U8yt{*U9{BdQ!)Pr;rmnBQ# zj#pRu2V!`qWs84!E{yT4(N%A|dOWQEWA%lsv;qekB`}N^HCWeyZx%rpn-qmC{0000000061|NsC0|Ns9a8R2S*2E6v`o*h2Y zaN?iV`l)3A00000000000001ZoV`^|Z=)~}z2{eqXb#CCt@c`}2MSJWl|UBAYAaP6 zIfOJQ1Xp}C8%6y09orDthHj(%I)Uw(H*aR1#}_aHV;u$?h*prVLs%6_kVia$@OzZy z*=6qnjC*1{%q@EB>h9y5e5Ic6!Jt~hcxD?ub!@O4Lzh2abeHP478&*~&>Lz)j3fdi zY#Rbs!QyCi0CnII0t8I5->pN$Ysbjeyoi^u zKwn-YOW{}(MaNf`Mr;wI3x_P{m2VnmMV!ktd=Zq#G2aP-wRr|xwilRLnB!+990L}| z!X{rw;y6e-f+E6}FQe67;_jIG2CDKIq(ySAs%1>{2Qqib=NWa0IUig4od-9_DHWKQ zeZaRb5fa7kmL*HfFF|H8d(JxCO){o76~z%CF?LiyNK%3vIW z!NH{N+Y{Gu{PJqTmj&LhD>r3>`TGwSD5+x&_)jdu`_L$%VlAE+nE)r>LqfUDR8`%sZCz zvAi-SY!f;~{!-+ZF@J6pu9;yTrrRhH*}Q$w+L@`xO(ZBxT1jdR)(gwBa0$C8Un`*F z^yf14^;6Qa?jKa)%clhQtJ`9E*WME`~fCUT;j9O4O<9{fq3sIZ5eVy>Hd8wyaCK)s`O+8(}fD9_;^!9G#I%FWw z_T8qn+1cs`2j9!5tJ0m7ri;81*}@^V{hFiT{kvDh)Vcf0YyN+Kd-JV8Q;V*XB=6HT zKLj?a$=9g01Vp*_vPN<}Su*WME`~fGI$H2Fhmq4+Tlw32&sP9DgS6k#a2Q&hiV#E*YvZAc2ZGp=S^BH5mx7 zT(FMcSagZIuKD6I;Yk5DvzPK@GB0fjQ?A>qdT>SYEuU|xMT$=!>TC;&@iPyc<~sAj zER*uHd)x2Jn}(>L<#wH|d0N(E^KvPPjHXh4lgK~+cCBXrdoxRJytDW}f<}OYVlZ*q#NA|H-=Uj^Y#CH6F12+Ju9$F>< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_struct_has_member.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_struct_has_member.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..9394fa5c48071688477ac4e0d38f79a96f8e6e0c GIT binary patch literal 697 zcwPay0!IA+0RRC20000000Mac00hhc0000000061|NsC0|NsB@fKo0qyiflPmuW}( zv=4JQ5zH?D00000000000001ZoQ0E3Z`&{ohVT9rMACyZAluIETEMlH#b`b@+sSEw zp~y@v%pZXyCk=x9_ffXfwOhNL1X1L}m#^s|jKR-Q`~>KzKXm6$<^p+zYKh;*cB(eDIqpbIUN=Ps8-xr=j>60WE~60QVux*@ zP2B@XXH%GV(1fnrx+v;{tRA1!HI)2lu^J5>TU#i2QP>=lOZzNTO;93~btbpRmV4mc zDY_4+K{eHN=chmS9#|T&@2fCkK{}avUt_qnZdxXJE9!D5NhqBquQH%sq^#hN`i=5{ zO~OT(gv*766lAAGw4$^fHN&kfcgMkGxxC$QHF^UQF8tXlU@r->5=E1dn^K`5yCmvX zK6~QjuE6W}cFG;}Yhh%GdtMB{>{E>b^ihA(SP<-E4pVQ<(j=U-wKq$Xbs95&eLsW+ov~+U_e=~BIn`7u`gFAY0h^)szF=N7QqWTO>qIf8l#h(#>-XYv(#S( z30RRC20000000YVZ01T-B0000000061|NsC0|Ns9-ls@)Y@=x(YoAS(h zsPsBKlo2Ta00000000000001ZoYhuqPvb@u{hnWO<)F%0Ey?yPTUIsp1S}kz+Rmy- zQ6t9>u&`&SA5et+-+O2Lh(jD;OI4{-Br7v#&OP@zGlpYOZ$tkM;s}b{5b~#V!x9Mp zit{3enBvb*${>U&PQrXN2K9odmuu&Gab_87^1JT1j$HqPxo!{#zALt_oEc;?8Y3K< zJwQV>H(#ugVsVEb3I;xx!$B<(f*!mq_BKh#_p`7lGm4+QObTJcMcolg680F=n+}^p z>OH{*T?z~QL@W!z_mYHTirbiP`x!$!{?AmGq=`MO`SDWNnk* zmby)}_1sX-9XN%&$T%m9z-Q?_y1~DxM*~1xs4Ver@`2+Tnd_$R>Xyk#5{x&e5TZmJ zf-vI8n+%ZXrfMuT(r0J`8pK)X7c7gzA?t>IW@CJJPA2gt^EjTHN9}i` z(LzyeOCHEM9LPCs7DY^RGGmqgr0^ zdlxddY@(malmw@vp;ZK(RzRVym(D|vU-kKS#3MITrk zfS-DIp&kBNV&6Mr(#kO{ASl!H>GO0tojl7NHxUb8@f6=py_m|A6@6aOaU4;cIT)%s z@Q8pR(l4KX>L8P^crK(kJUO_T%wKS^68;MxTH&>7xpT<2EVr61SWx1uo~a8oq%s=C zH)Y1h_Z$c5G^WzaIGpLGVqf#}tJ)=z+O8n4tD4MB?`Ps_t927`qfLDYezi>Fx)HY^ zj-#9t*>M$ji6hEj?2Zp}ye+nYXfo-dS=CxxaW8t4tPwb%@9@q)Qr^%t5_ay7z0T`x zwlW%vVmvlW$JzkdwwvD=vQ;lN2ZmI&m%ibq?r_%9y;{2K?&`1qcXO;4_O_GXl|g($ zM69HN)bIZu8T+8Qgn$9tQ9j7q&17z1`&MlwK*C64e))V E`<^}ZdH?_b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_type_size.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_type_size.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b2ec8d9c54081d8545221e0adb2bd7e0b9b44be1 GIT binary patch literal 1309 zcwPY=1>*Vu0RRC20000000i9t01){A0000000061|NsC0|NsA*9Il`4)F%&-;$MhZ z9-6;Akp5l(00000000000001ZoUK<|Q>#c2e$TI%#XKa|8h7{6DytS@Vx|s(EKE+B zJ$NV#pp*nGAnUqT{`>aKa1#*q9G?=PFJFJ%J=1-JPLOivZ|_kS{^utFa#8;D;E#?F zQWjYG;?T_sI~MsHPuM^7RW^xyq2Vb=2)!^s`JKr@JurxnTsB znZyh=<-vx~_?5rnf{$Sop&NL}lhpT6p72lqxM}F#ME;BcD=`4{@;#H|8p22y6IWcw zU$HZOF7*#!z)Sq>g@-bRBt>zOgBFF4K@vsDV;J97Vj0@GPaLP8!%x6mZ`~+jGWlJ| zK5tXNo`8j2;)THz_wwk9->sl7L+L&~8y#`Fm+}|vnE0tD~kyvLDZzRvA8A6Srjj*N_5(If_yrQXyB9>4%?$&3C|~hfsi1ETr^?d3_v!ATV^Bh5xx^}wDMo)9 zy0$4gpJ9SpP(RB}0lL%4V8H<@DAuX)Ou>g@ELRLb`@k%W^dS0NPD-!>#)~_ull#WU z5=G&UUyLVekCnQRhR(M}OhfH;kcI{8;wmuL z)HyUlJB?*K@*)#dSU>BoYF(khiQqRCqoMSnktLx}U2C19Kahzp@fDJYJ~z(9P$?Cd zi<6?q(wvwUh2&dnjUq`rX@;??uAuS+4dWoGilrCLp}rEurNva5^TO=70nN6*{dPS0 z_Wk<$cxv0%v*X5%3UIl}iHOL=D@|7Ln+A|%+rLYwIcHWVYU9V&9 z(ckv{;AR;tiH~7^$JeTQPfNI^GdmtXi*xv3$Mr;}S=~$UqfrMgEMwm1#EsK5N#7r~ zaQ)t}+t)DvIy5jesS<}nhbB>?{S>woI#r1js6&ikzrm)?s@CM~#sX}ilGw4Y@Wr7x TV?MeDf?DsAIUW5Eg)`U9!#sfT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_type_size_c.c.in.i b/CMakeLua/.hg/store/data/_modules/_check_type_size_c.c.in.i new file mode 100644 index 0000000000000000000000000000000000000000..1a46a15c26b211ce674b8f6d75c85ac2fbaf478b GIT binary patch literal 465 zcwS>*WME_f1ICFA49sU3pq&3uAhaXFwCn6_v4=Y)v-5TzocU2^p*I5(sF+h5oa=qq zK;YlJ_>V6xY$@LH>*~s!lBuGleAcXUm8a;XI_552c}V2{?&<4xyfk7iZ?Vz$d^gGM zlaT$%nLeRv5BZt?JN3MGZ|peKzF^kE?C7_f+Ppkdry6WqD0!FV;f4Ks-mah0d{4IV zd*IQoBMqhuQ&rFB8+Qutz3{f^qt@4le|k()%z`y{vH1I$NSTs`lK#B zyE5%|&aZ<%m+=a|F%#XrX=Ci)RpNZR?X5W;#(!I+@ugLtEW*Bqs# zGd_qh%e*U;IZ(LDcuV1viv{2NY_8vB```VKJue|5$>dvrqe74W%YuHn|F1UaUR`4M zST$_s<2s|uyMziaEu5+8Yg{+q$2#O;x^DOp)#Y20CTz-M3OMm;?TH6()`wr6o%CF! ze%c+r-$~y2GujjXdR;YUP6>R%TDEpd<(j}}7uFjEzGQkDbLdZV?6z+&wpG?MhyLV# F3jj=J;*S6T literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_variable_exists.c.i b/CMakeLua/.hg/store/data/_modules/_check_variable_exists.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c81ae09b8560e9e6f1aa4625f1ce79dd69964a4b GIT binary patch literal 264 zcwS>*WME`~fD;T1jM-2&<9{e{k63a_X69k;b%}*VPb?keW;kC|WIzHHb862W$f9s3wRDLT(wkR=FA)IoJ$LL1#F5}Sgv%O^<1+;!Tecgu18D{dSt z;JNty7;n`+(~c#jiwlkNye=-v+^{!b-4kYC&kEtF&R|#JA0>aQAF}4(&t3rln80`z literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_check_variable_exists.cmake.i b/CMakeLua/.hg/store/data/_modules/_check_variable_exists.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3b7bf03db541c4d5f8225e05bdf9b95aff2098c9 GIT binary patch literal 760 zcwPbc0tfv70RRC20000000OuG00M zs6!moTeI6WG3cFh&pmVQo#70|ps(3-191e!n!$6J#o;1hz<$Mf zk)IFF0Q4K8-v)P@XKGg#3CIuAr@o5+p^1$IOngO9e#Vk54Yv&VA#)9rc?jDVEI8x^ z&zJ;fEZ-%?;0(cZ9p|tOml+5A!PDdwBA$W1&lDmhj^RR*@RvA!Y!@;06&4I~R^THN z1(sow2u#s37aSS3d=*Epvi?h0J(ra?Ib^%^QkDVT)^17Qk?(WUBStW_v}+$Gs67*$ zxY;G&KE=2pd~U;Z1y~D}CE;V6p}X9YK7KwCqY)oBuvIw(L z4~b=7dFUwVQY7&rLl2l_K?$3|z}9rnReQS$hus7)r>Zi1Ya*orwnj122jyocJX8c0 zz$a9d?7(J?;VBK7VA-L+?? zMbu8$>T-?hE7Q>sXqevdis!ntys-IdhX?6G-V=BAxgyo|u&gucDhK`k;7Vt)sZ=4V zGlX;Tk)^fxv-xT$acoa8u~cffJEyZb-Gl4@`x)xk)@@TK4BtT4up*caC7z>MpxlJd zotyMvEKiwWycHw9OIQ1psc4`!n_e5?E`A5x5WX8!~q73Dt| qneyT*%_LdIv%mH-3h}-0Z(hn%e`IDAJn_0l@E_g-qrp2?fKh0nt7mWk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_dart.cmake.i b/CMakeLua/.hg/store/data/_modules/_dart.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..436f1692cff43efa839a1b3f3fe342297430fce2 GIT binary patch literal 2178 zcwPa52z~be0RRC20000000)x*03%TV0000000061|NsC0|NsBNM9h2>qT#M89j^D= zub*@Y5wzO?00000000000001ZoXuKWbDK&Me)q5FlJj6!CGt8sPkGtG5_UL|zzZmQ z&c09xM%J7lP%%RsZ_59DyJv=*WJ}6!)e=`(GDFkzb@$g7z~}G|CPlvD4^_z^hHY8= z#S#gtq6Eo=avw38LC=i&6@x1no{z&7Rk4*F^2A zFs3E{Mp9`k*2@C-Lmi@8Zn&Ub1jGU!S(efFzByyixb^lR))0(c8JnQJo@cAvRSLix7nblD7lgMj~sIcXi zEBW2}V$~}CioeBu1!~2F@vR2lEd?5xvPBgNSj$Z|R+||9ksG5gwtwRVcBIG!qhMV; zDjjhmE39}$CAXEVtGf!|Tgn{1!nGAukVmWoW91+gCu_L=+xy=T2eJg2tNiTU-tKOy znQZ&M=SRMM@8QzSnL8njW_-idb|s?{g*LIWEK2bf-d&qDEIb(+LJOAwFKYg$<-3?8 zM|ERE%Q4XoXgAdBd+E)Oeb+tLEPd5BbJc6-cNDy6LQlm@615VznA$T30Y($g#d5Lm z7C~gsEoTNJZ?zi1#F~7v;l}f3D&|$)kPT}D!*pevm}k^Ha+A3_6cA%#uZjvKu$f{# z#adMrl`tjl?<19(bIbo6SwUn?zgX_Xo?a*}?B}RX#e<}vpIxyR-O~!0A{m9w-1Zh> zd!iRJz5I%!)X82NtCem}s)fs%BcH4&(8GTc1&vO0+oW_E~fJw9- zh+?A17^69Y8jyii)91s--tx}mLrqiz}cfAnlsJkytq&Ug) z701KZh7p6ssEX6H9h)?wCY_Y0>_6^pAFF{ITC<4!4)%A%%QxtOAlzSqqBGBxeY@ddQzp+;MA?H=`@-wf)EFx(DLsP#;e;IsBeBW8T1SXnPcKM zk8`}yDTxj66U^zk6aq;NWwA|Z_-My&J?7SP-A|bl5QQWRYn8&#q%6%nIp&5lwec2N z&0w1HxvEh_eDz0%rZ`_vu|npv?>JL72~<Fop(HR(fAI(o%U}NF_Rq!Jg({I$+)!cBsYEkE&?Eh~= zXY->IK+{c+TQX3C+O_5ssM_E`u^#J4t!NXLLGhl@gj(t0T2Ke^k=D~n4%B!$P!G4A zE)@oAIz1{JYdM{w(7PcRs4R4E2&h22{9!G#r&r;d^8=u+cmCh&ve7h9QSRAs6y#9l zxJG%b78|(%3vrF~geq)AhbzG~)+6=Thz(SHYmkR4Zxi^z%5EF@V>P!<_@N4Jlk%q( zrorz-YP_f3gzVxT=Kf<3wYv2n2_5sUHSGWZ000M*000000B-;Q4s8Gc z000000h|B;00960|Np>QLnr^>(@T|+d2 zLjB_1g8Y5sokLuML*o5|zzP%$K}tORoP9!FTs53SQj1GM5{uGPONuq|>eJ)`0NVm3 E8T+O#*8l(j literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_dart_configuration.tcl.in.i b/CMakeLua/.hg/store/data/_modules/_dart_configuration.tcl.in.i new file mode 100644 index 0000000000000000000000000000000000000000..df039443242d716b68743665887be59eaa2c3f57 GIT binary patch literal 955 zcwPa!14R4)0RRC20000000Vmf00$5N0000000061|NsC0|Ns9(Px!waK@=bETl-Qd zly{Mz6481900000000000001ZoOM-AbE7yAz4I$np5w$!Rchz5CleqJGv=cZ_LfhS zEM!|1K&&K^<=<~hVB>hbCu6DK>!+vg);Cm~xk5)?GX%d>v`2pGC9BY3Kz>Z#86v$F z4bhyEx*iZwC?Hb%Qy{F1*44CjzM<%d2GJvW7D6%93XQZtJ$zc8C#0{L8Zw{*Lub-f zHz}VWC(uAd&D#^=Eg%?@?C+i%K_5hNa;TYd9S6d`C_oj2P%R{93K>?DMmbpYlCogh z8~#MAEKh%heo^9doBLrIMES~j>3Ll}3VMkWFW-+rkP&ljO;Vy^a2AkQ^LKL?3V)be zflIu7LfmC8>LfW?(_AVm#~^_hM@49vY(~_Q#_|bezLt`Ga0O>sQqgoEUrtmT-uC}2 zpWQ#)=jF3%x+VSoebk%)3}|1r(I!Z|c;v?Yq2bC9frCdO8*7jgNYPC)f;`R2QHxpK z2x>zvJDb$^iYQH1SIky1d5bHzILznmj41UfWc4K^^DzD^&4W2C7S)&RWt;|+gc$r3 zS9}~6Zz%u^$xkOHC)GtBt=C~b3CFbaMbp4l8(;m*Pvh820_#9P)cGKYtdP=Bsz~#O zISD_VbvZEM*tOYI&xx8)=PdI z=G56Xk6!oJ%sWz_ByX!ZVCQYtd6Wd@|HaHQ??Y$7F>7F&_-97nZ*Dq_(|qs0h5qlE z{J)Vi{{z6o6u9p?$!y!d!tA(1;%%1YA;tz)zD65x&7a)4DWY^2=HB||PQcj$s@_bx zxg1UNq`fUi(;TD`eXEf;+BP#oTQL~v&^|EyKM6F8X`@aG3hJ04fORwBY6jI&!PNk} z9<#Uzc}LCUHOE9{o(=}ci3NSa3t`?5)q{2pj}l-S-a>s;u4$iMO4dTN1Kz$t&p#1t d_mIVzn9ZoMO&{VSO4hdd(`~VG{sq*WME_f1IGCb49qPIP|klSaQl-T`}^1Gr?t|X^n_o2N_Dq)&}2XY6?1BX4i+^T z2<-hVYW-Eocv}36fCHyiyx5YFUX_>><9*CwhDyZW-)bATMtSiU+?f9T+uL{22W*ct zZ4$exY3i>mfWFK?%im-2UWnGmkrD*!5g(X&L#`6t(pB?s_#AV-d zhuux_s=`ELXOoUY%wC5axeto+Bp2H3O}1@P^|E8Sa)sX}KOv%D_i?m(z4qUP3rCIo z#czHnoOR! z^fRYv&r61~{<)7{TW6*J$SyRWEE2YQhRSBu8R7+d9lINHi}?;1%sQk0`ggc4|NQ%T zS2zL!O@*d9Df_AjczTyP2<)Ek_beg&)!g3}d*xo&&M*WME`~02v^bhO!y|LxB<3ES2MCsy}85@3dYV@;>#3-(8p*FeuH;D^bWz%*@l! W*WME`~0BInWg0dO^L&4==Dk1w`xUG<|&Ps`ivHR+C^y3T$Bv9(<=j;>e;;P}C Vk(!+CnU|bXnv&|4nUku?1pttT8>RpN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_feature_summary.cmake.i b/CMakeLua/.hg/store/data/_modules/_feature_summary.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..af816fa2983759342069fd7f99c3870439ad97cc GIT binary patch literal 1302 zcwS>*WME_f17=GG2F_*(n}P8^6kM!SzxyF+dCg{<4;j&4UVnBrezSuC2~^D48y1~^ z%Rr>=dAQ8dT87@nEqg;RFA?GCbz|~AbYyhLoN1`N^|I;#Is4qR&qQt4LI>hV^IzJNv;SVamCNS>n5y}-;fmYWKQbZ z+1Gf_9 zxhZFA`@%z#lGiTGe%YM=YsMDq4M&V6_pnqZB3-~8$ z94MWkvtd(KoZ@mDPf79JauV7F9ntTq+DvCHYFE&1Ir-#hTi2xh(I?Kk&gwp-l+{`E zWnseN7GsX2HC-D*>m%N;;dDNn`KHNPdCTP3+)#0`6RNFOqIzDrN^;!hI@9=*E4b^7 z$~*46D<{-Uy^v~<$`%kDc4FPpq?c-qiiK?342yeLvicWSGx;~K%oI9Z+m@~&bI>N) zqearKs7^Ka7|WBFnzK~cb{&wII!|KiujMV>J10C8%cyX%borg>QSN$M|I#b-lxQD; z3A(+PCfvPx*Qe=dvPd1%+lzBf=sfW_J>gKo!H;HNOfHx?Eh+!|&x~txifR>S{CCqW zH?p?+)F$}f4)yu4MD#<=G+k@m33GDwpDSi;U%$)t-^a}LveTz~iagvgEqZ=`^u06l z&UL(%dXZ!^^WJM=i?s*du6}f*`gyGb&(WRN7ch4u^>9T6m$UOnEct4u@n!pi)7QLW zj%X%!n(k@Sx$f=$|4`Ko)uS~BR&Oxh{2;B^+v<2)<v{+&NL)k`X(`%Zlqmbv5UuX;FcTJJKmi|qWNOqJ`JHrg*M3-zt7 z{I9)k?R);8@mkZSe{f1$`l4n_SJlkjYqaLwTf?(!k}K1cCceEkiTeT-`JPv6{toi` z{mbtbpYosjNr#VX7ps>0KC<{U`^^rE&*#1#wA}A7HM?k+{n`8KOIHP5URPV}s65qP zwEX#;>kIT(X6yed0%p7tXujhDk)Vth^LXpR zb9D!uR6f4UV5?guu{N#E7B%A~CnWqkbKpSI$pZ%-tXLrMMoLIt;EDVLDG{NS58pk0 z|K!DDhR50~LXJOIeYWh{vE4h^tl2BsS}K11*3@8h4G!v_oIO>fu`S)*^l15fBpKEIFp&CrM3WtNDF)AV))inM z>;^k#HqZxCpg!PXfEFL^|1a;prO4C%CF5IR$h?(nQ>#m)F?{egAtB-J`2z8ap#s58bF6;dFSrw&fZWwA>E;4`F{BuXQFv{-Z(iJ%W4=H jo19=z5v!II$Y+}M)TuG@+`oPM*3~J_ieacPjpPOZRWMIS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_a_s_p_e_l_l.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_a_s_p_e_l_l.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b91def035e3e536ed0a5a92f3041f4047ce4e104 GIT binary patch literal 623 zcwPZ-0+9Ux0RRC20000000J)n00b8R0000000061|NsC0|Ns9_-2j?N==LN&+2(DO z0hxSu8iG3j00000000000001ZoRw2eui7vWyysV}#04Zkua(+URn;#s5D@}RLM2X- zi5Fr$<51g_^6$F|pnkxmmpHa(XLo1TJs3e@FW?*4DI~xwIVNaF zxQ09M8oB8|Oh?KV^u6M5%jn&Qc3hrp2Cc_6*`lvv-dkvm$~f&Z9)Ym?(}7xc-LXUe z_pFm|ZO5Q?KxE`A(bMcp_(9_-wwgvvSnM#tt)>2ip4LiKZ(@(LE_?225mqw0cZ0hW z;har*IU~IiUgia@EQ?B(P4ipZK(o!(Nl`BH>Ek literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_a_v_i_file.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_a_v_i_file.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..0bd47a3663cd28c729217c4f069fbe7993ea7390 GIT binary patch literal 538 zcwPY-0_FVx0RRC20000000G(n00apD0000000061|NsC0|Ns9RjxC00000000000001ZoOM!5kDD+MzVj?AXQ$q0-@%% zG|t1@j#pY+e~BV~l!dG?G`ekaEOfKSP@#={X@G-43%VExB^sawAQt)Y^Cvj)yp#$% zR;!^k2uE7dt?5J{*8+1B!m6!n-B=*LN*<&|0nd2SWG$7d{T;#&sf2#%Sn5U}r63i> ztvvR5z`VkPK8(>IG#d5Zf@VB^4raE= c%Dpw7yb*BSzQ#V;eQTHFi%gF54?n3kx!{xnjsO4v literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_b_l_a_s.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_b_l_a_s.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..90ddb55457ca140ccf9bf0f0416ebc442417557a GIT binary patch literal 1713 zcwPaq22S|^0RRC20000000waY02nI(0000000061|NsC0|Ns9ke<}f|a)ygM1Fho( zY|p0#j^O1000000000000001ZoXuEUZ{kK2e&<&lW%mK31f*@WD{Zu@oCH#|{sb?G#t@7V{&Wt@a7)a7?+D0PaxqRn4*E!>Na0CO9gm60YCLqNuW7%Wt z9ZVNOL7axU3QbBl;jQY4&ZM@-H+ zE=CZ|vxo&8+KO{nXubU0>#bI+Zo)ODPGtiN~KI!BALTIQfD*C)n{C5?BfrvZ?DeL z2e=w^3OdUAgB=a8zV^rdVB}p)5Is)MKDn=B`ld!P{pG9^4IVqzzD(7HQIdKvAmGY8kKEC4RBSA35$%`w7wO$9SoEwzC{31%!VcF$qPk(iN$q^`+0E1~#y=z%wy^t&yx_Eq<^>w-nt%q^bSaw!Ey zdBKGYqm0!swu=OCnO#z08QPL3JY!T{Ou8nx{?TY3v+Ry)PI%8Sz(O)(6%5^03)!`O zXE}eBW_K_h-}XCZ=KXi4%99=OtVY9&8)xjF3~NuSu=X$O@Em{ zFIQPlrU8>ZoGl*Rk8=Fuv75o4{j1;L{M+cf6yg($i_fqV<_m7$HTiTvSf*}qRn%`5 z;>J7sTICMXFFHkKPcsp?ivl(XQ%YI(ra@^+w^gQjA=(069ZXG_7aHemQgbM@Cl|xsS;ih=5(v7! zMVLFb@I1b0)&%NRF1;9DQlIf}qzU!zc)wS3QF-n~B!{P$(4W-J`yZAiJcH!R>QSq% z16=_m#CNi$gj(P=A$&`+DDPyRi;$lz^#Yr#@Oi86C9JW(3J&3?4>O^6^4`gMgR^05 z`6655>I?SMhfTu&oGy<)9&7k`{6?e={Hs`3v{?|>82?~$1pXWo3{em7w|wmd;Eyc> z+Zq)w2)H!2eDUsi;+9%=4ewC^A7%LTd;KfiXZPj85;(-;h|&V9U`^rxe5^)uSw6gSwSqn}K@ z=`9}2o_n#g5_(}R>D>&A_c`{Ib}VZ+4w^)kHzGS#2^n}(Z{+vKO0z2{eqmL5RbU9C9uR8{pR1}s8glTaeS zsfC6Y(KJwTEa6@cA7dR`471UE83l--58Ch@)VclxaH?RDA1(u$1uVuoQ}bg12w65= zg(HOGrD@gSZ%fD?V-ho(U_&V6)^=%b8Frdq;s(CG_<1|Hxmp=sY~nxPdz_OxU) z4OfuHOFHmq6#NIA=MWYooxIagyfvb@ui;#F>|6COQxlOHeiv^;{Me`stU)zu+8mWQ z6SOMF6#vCEKx;SMj!UE6ZR`GNC6{p2+^%C2fmrAXs*Q=S;76`RUNroe4O`=#DECKr zoECYx%{P4Fh9?FuxvGfT=)rkYe@ezQo1hvY&5{(aBn~nXkCUUOfB`4VFwJJk`09LI zX*BrPJV)JGbf)CjyxfMOP`NtLSKL6m$Nq%+)3clzeP&6T^gsN(nD)zsy?C={OmVH5 l6b5c?u20d0=_eZAjKtH7BpC_5lE|mQI}Tsx;WraUXC+BMNrC_X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_boost.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_boost.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..188be90de749b351937a7fa52bbb09e4d84a253c GIT binary patch literal 2403 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 R1C@0tsJ*T<-EWrmq-Te{b_@Uj literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_c_u_r_l.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_c_u_r_l.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..2c69eba0053a3ddaa9d26d5c0e1ffe58f6f981ca GIT binary patch literal 463 zcwS>*WME_f1IB&^24)8aDCa*EC`F$=bR_kj$Ykk#42ivaO8S<_XfhyyiaD)8XY&>t z2<-bTqMXX_l651!AbIivt1Vj>2Kh~sp3`uuDaB{?s$1pv4_@H)+#V%w(3Zb%zNCHv zYvEOqf)}~6I>*Yxr82gxj^kZZd~l)3E`x2%z5idmx|tO{Q;$om<2%FDCE4?Wmt`oa z2<@ACOsYUv#(ri!U;m0djF0&)-Zz?ehf7IFjqy5H#Z}9U{`Ahq6^;8=&zhWW8Gh`0 zrB`B<_KBSQ1y)r8GPn0>E@IfYCpZ2>M(qMamZ(*}B1b&Et}>t8_Hb*x$4Nfkvp)LG zvV!GZ9-#pVyrcp7wFCe0xHL zP*2mg<^QH<-mzGEZb#+f0+E>~ZeCDYa;dcUpH(_n#ZkN0&!wW*7A7&P%}8oJ>|1f6 zUA)#PdcCe}-Yu~s^L9N=XTM&aa`?)$B~y%5jqh|W=<4YGBG|BL#uJ-h>z$3=U;bw# z3bm)7Kh5BWTb>w(oWT!^=}FcGEsoYE@Oez_~$junV|q zo)Cd`IE8?9cho^u|9kfihd6Qip{lZVvUR(&voix@m_Q;s&<(6bU4SkTymq5tBSo!6 zeGRHp8gHF3Eb1JgXlkS)p7=+WHMsc^ygoU3a}2D)yR0ryLWpf$G;)0m@9W*q zk2eKQ8+rY~3K(G_l$PSEwR5P;E=RMos%o}|Wu7;(Fs9HBMmvr2Rzb72e@J6;l8r>@X~!^Xvi+;G_|HOn86_$qcA=0I&y%F z=83x(H)AIu(8Up2Gwz+=lTP{9 zAWmY}(tHMdH0lYSvH01zS;S$t-v-kx8!nQ+z&n&+#^!N<$3y?Wj&nF6!#{hoBeu`# zPaqFbun>cSmMqzj+ECGEJegnK>p@Y9*(dJC2}@QnjAjizW48Pqy!ifj#E;RwQon$; zYd@tiEccM&2ZINUo$UToZZnp!dCH?`5y8l7+N!Vy*cY$qenjgzxP27|Qs#TXqVtq2 UWd0WxdfY!0`p_xoC%~h^fc`pK#{d8T literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_curses.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_curses.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..56c3cc18a8ca0dc8f6b657249f3a01626324ab25 GIT binary patch literal 1381 zcwPZz1)BN*0RRC20000000kug01_Pl0000000061|NsC0|Ns9;nITC;0w=H?G{&}1 z#>Jvkw;Xi<00000000000001ZoUK?(bJ|D{zUx;^;XOdg0ap%NwYe#1FjTN$C6SF! zszD5B%0gl_gB@zi|9!jlLQi9o_+lGPe_!|45A|?EK9Y$DH$?fIc*j_BNkr%c#|Oii%;5(c094ajePNu6S2*r8u~;? z!k(E3*gD{KJF~?wyvp(ogwb_KZvb`R0FupB4rWqnc!{T{OnG-j3`z}p@}Pl+gGflw!;i}}AtNY`elX$e4@r^kNP>FiTt>JLDk z71W^J#B8+*&qg+N^0O1Pw3bd2T7hkEUA*GV1y2$%ks2eM*-R|LN5(8H_DRmQsUdX9XdjGrA zs1qj>g$nT7q@{s3i?J+U5hFZ-5EH%F9%scN=3DWDWFqEDy|6+m0F_DvK^?k)Oawq< zK-=&wI|eG(_rR1dhozQkEBdwpgT0i^`TiKwJx?8@KZH~gpN^+={51!1>GzrK*!|ug z|Fsgm_KMQ$^=b_^)ou45`w@tj&}2Y+b&FOI2)XE+`3~pIE^Kh`;+YF`2oI#Q=mOGD z4Xmo36^Qp|KN-Ua-V6dAOXmJ$HmCi9wEUJXO0zh-)SYR~i)r#<^=wJDe9K4


ug ze(fa{Q?klK>n=p3xu;IzJ-(XU@#0~*FsbSE-P9K-bwk8&KoI1DXivMjPbXLQ8bIN~;N!eXO&9$qsY+W`!6W154chqk2Qxs+r zs9jQ^P~~-$t-L*GMAx7beKmL7T-s}i&RUkc#cb<`^E25R!cK?V=ZEqoS!*eAygL_6mBLQod|0!CGy{LHX4IKKCX2U4 z;XjKSgvGn#9vU*;$L0BwnBL#>+aauu0LEZ<3}9`8>^{Sl8}F822Wv8((ef=1zb;rZ z?+MoIX~J$R_{HLl9`9sUN7?NX2AOHhscSp%Tel2Xx9;tJc1Ov}@4>z&wcczAH;EQX z5U;DStctb3t4*R4Kt-d(5pYAeh nn@Y{64YNwc;>0Y4Q+E-YuI*cwhI6HrujxYdAqe(A`o4rXa;m7n literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_cygwin.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_cygwin.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8f174e1e1b3921fee906493fa6ecd10b6d95738a GIT binary patch literal 264 zcwS>*WME`~fD;T1jBHRg<9{e{lw5Rww{?VQ>#onN+8epwEMMVc&42_d=H&MKavw6_ zX?y=yG%;>lGgsB+;1_1$b3*SFbWDA;{qW7Ew<7=dE{(IP;5<2bPyQsnl7n&C%;mK? zvxQBf?(@v~%KYN@r&Xda1r7yqXdi2D?qFEbbG)cARqWE&BY`I?0+Z%dKl{bNuK(t3 z`L*ecvS0VdG1eSZo2`~T^StJ>qBfIc8^J|0mZ!FQPv4n%RZ64e@~tTC$DNb83$L%; y#5Rvv@mKQJ&0jxn;hmH25;Nmrk=Diu66+^iR^j`*>A$<1%EOQ6qvb=Ty%_;pgmn}E literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_d_c_m_t_k.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_d_c_m_t_k.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..4a47e438269211c3ef4936c1a5b50a25a9bd14ca GIT binary patch literal 847 zcwPZd1F-x60RRC20000000R#I01T}F0000000061|NsC0|Ns9Df0--y&GB7c|D#9t zPEy_e+J?&j00000000000001ZoZVN^ZksR^edjB#(n)QkHI=q6V1cNtEv=HYU7sQc zOyZT`$e3=?lz*R%fnc!droAmsaPPV2+LZlF8cX(As_f7!2ErjHyM2n843*CDErvH?8ZGkL3PBUMJVF8$(cNB59-k}* zlE8r$=WiIk7s7%DAv8!PX$4KLn&k}R34E2X9CL{f>Qb0d%7G^3wFJSBEoNBq0{+Pv zia3r1jZ7=5Njc;*Bb?)`9R2CrEvygV?g-x^co5|b2^2WaEC{{TgS))Gs9cF?mXM9M z9%!zDldS{r;aB6{@k+(7>eZp;YM;gi5t`&Y)-_~Al=L;q%%FsVG(u`MzUW$2Q0bT@ z#8b;zG?crV;}oMD4`MvLE;eSwV7akQaLT#*4#v?gMjUA##t}d4ao)GE0ymEY%r;gq zn~}9-ZDkF&h?(uwvo=RMD5Ets<{gT^ww3HQDem|xf@p({#+L9uaJIw^SgT}P-l_td zpw-=WdcYeEX7g8p-Xj@uSQ}QQODp4bGir4Yj_#a{Mm+0IG6)*Zsy@w4iD5F#+xCmw zPD?5{*pLoUf&+kZ4Fww)dtHP>s>a8D1F{gtfl6H*ApFNHHM5!e3r! zr~T-~UyMXfOLbXm-}*WME_f14dOKKEVLx{D%TH?e1Fvf`39zPwL>?@a*&Py>~@<7?424oZ0|i|7Hh) zy`Qz!*0TGGyo)=-Hce!y&do)~IuxZNPr03vD%)V_`+qn0YG40znQ8Zq?>Qrsrw~@l zEBLT=d&{Cwwz6Gv)|_*%$+Jn>GHesdGE`V#vf`Jn#N7vRJVGr~r8?8Dh0ob|lEt(p z>+0hxZ=y3Zxz?V~*vVC!|FW`hl5416*VU(<>~kh%`2JP7Eu!LkkU3i1q}pnZhWmEw zCv)yz-mt>#&BXRCT|#v{i!|@`I2+7TG+5hPzKu8k?t^7VbLQ|@S$D*)vC5ot_|U>> zf4UFySn>R`eE&Ordt5mGm!)2j9+$Fw4~0&;xarP@9TjSK%7i!SOuo0^#jcoy-)5_o s#11KCK8WtW(5270d0~-BWc>fVmwfKO`Lf#~^8U^P;rICOv~)ND05?6Lh5!Hn literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_doxygen.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_doxygen.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..0d18adf5ce32b6d3fd7c5ee4aa14116611da1322 GIT binary patch literal 1576 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 ZTe57H>Gky@8av!77qvWu{sf_=EPt$l?O6Z- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_f_l_t_k2.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_f_l_t_k2.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a8b14c9b6147a330229b6fb6aa960b8563be2b98 GIT binary patch literal 2709 zcwPaO3TpKL0RRC200000018zA03`bwS@1}p z+xKp-Ac&^nW=2x*aW)L@6F=ED-hhYe=5ZLtPeHVRlw=wHkBbrlGcpe%GQ&lj#H8CF zTb+q{XSTfbS$UND^~}du)G^H^IUI{*rCmg_L;8(w$l3??0OWZE6m_NYEC1gmwNWFM}8?=kzX`5jcA z(s=rSM9|NsSy)oDJ5{0hfGjv4$eH3~Kg{QJMmEfC!Q>7)j!o zVJZDgMM8v62)Tebfstc&t-BT?LW|-H!exS24B}y$`C-VsNY~i$xx`PVONgUzOF@>> z3S;hPlpRG=agq;F{1oYpJPHe4sFB}5k7R6fx=k~(LR4mC8OWj8de1dUIcXxZ35WQ4!c*zC(*VBc)wS*9-3vmXSDdt(a#0I9B=>b;Hst z^?ZHTvO5!MZz-bp+?`2WrA(s7Ac>+4yQM)J`G8xPS)}cQo2Mtbs zCDTpD$kuERDm&GQqu$ZXPi8=UN7$i=q?FTXZPKJg$HKz4SJH%Hh^@`Ds&aU5fUm1< z#v9A|saTuK>tH0qJc(CKcLrWA$u?^=%K{@5aR@C;a|nbSE29Vy1`hGIp_(7k#kx*uMN?vJlT_s_3H_or8)`QsaJB_Vi7_YkQ)hJHU zrh$?`Fb^ z61XfaaUwy^T}`gej+N1zhg=UGWx(*Ab_+yV$lD9;;b1`PFp%mxb^C#7A#K?~8*>H| zU8ZkR2LO#XBg*?$lgdXmH|}oEu;&J?BHuGm-J+~q>5yt_NPpyiP8Gp5=d za&JZR`1pEUxLKS;miQ?t7TUv!`^ELl0gDc~^sSnLpUuEx=AuAZhQ{BG{Qp;H`TU(!EtG%E614u6*InT~DrbNMv0>WQq(kzH3bgISecfTJ4u zb0@D{U91bLxV{*^)1+WtLt$OI*iS-QRUf9s<_d|%snkqhO<&%Ih9yl>>YWn8+PiAl zkur!P1jF(&4hi0l!Hvm`V`l+98?B-IV~F@mrQlV(TKrHH=E&X9{P*4 zpaU=*d!w;8`D8d2L)fahJKes~b4$LJP;e0#JjZBz6W)*2^mom$a%GtyJ-*lQjECJlig zg%x{>(@`JVKct)dD19P{F01;7lPvysFx66IT7|>2OX>gQGx80m2(Zc{Vs-U?swdCp z{SigYFB?JKCCbs#7(5Y_Uw&U^ ze&7*ySGz*!3v=kB_VoSWBn2tQU?SgNWD z-+2SH7bfz#_APn^!dyV2S-7qDL)oIA$Cl~!ztpP@I^~!+>6pc@Aw(>64bSLLOvf2I z6{te6;x-e%-?)G^YZpPfCevWPWiRJNMa3*%V1Zukqa77O#ACH)WFc9Ql5_Jqt$Mq* PYK+QOZrjH1rbD(N^&LVv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_free_type.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_free_type.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..d84e0c970accc2bb2e670b91d62a4a186e8e67ea GIT binary patch literal 1048 zcwPY*1n2tz0RRC20000000Y7gCPG^{xe* zKAE*NvKC9bVs{nSg#7oLkuAl(SaE36a$xIacjuXBo_TiBDKz0q`@$jg4dP^-BE)iT zgjv^4VG>CTi4L+DA;3^7v@{C+k>^eBZoS#n;IC0KU87QLicW-$vCK9KteeZ>K(5Dx}25EXqr{*fm2v!F#xF`=P1>p zBARV(1IGxOczn(sl^sCv7DCB!0H6yR4PBt0^&$0FlG;OkMgV(N(hSE=h#FP_QX%qTcSxKo1!m6s&do)4LtMRn=FwpN{By;4sP{s zhi(JWiaym_x$h}?Xmr9f4Cek`gF?((WzkWhd8SAnvefBjXPjHkZ8fZQ20rOS)@Ef% zH);~A!j>yJ^e3~jv7fm=D%8ehrQS)18;m$ zCy)W~=~-&$Fi9Oh z`qWHKe|BmjgCNF)s$}3ulcgvU?+JKQuXU1gGd69?{$SXf-F7CQFJ9bmyH=?IoO#24 z9(K+DNQ1+hS))A}1IBRn(7o>b?agjS9zo|Q zkHCG>A=yfb_yc@F5M;H~=v3$ZVuf3;XZd3c>E6z)X|uuO?aSU+`|IW9=>4;yVqkA} zJ8oBe)v0?zy%;aO%CFW;pFV$#RQLkR4pj*A5ZEvZ`gYirnTB0)BMXHPKGy>Vi&*YcopRMS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_g_c_c_x_m_l.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_g_c_c_x_m_l.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a3da53859fea601d9b026900fd035739c2e5e4e1 GIT binary patch literal 242 zcwS>*WME`~fK5RB2+C&s4+Xgg81y*h-g#O$KYMgT%t&}|*_3<+Bv3KOwf7)blY>Cp zd%L3vvac50d#$o9YsTy~Qm)cTx3ijdZII-=xO@B5t8>!+z5hK^P~t(@Th3j^?B@%6 za(6U2b!{`=;Z=G5=GN2wrsk&Qo#K%$*W@-H?hKl`k}<*B#c)c`SKqbg&d*r3w8cmA zTE9!#qvIRCGjBOPXNo|}WSw5Yg(hOI<)>Abo2+O{%{ZTZkZ;xMe!+Wplr_C(n&*Xn aKK=N&Lw#a;8n3{;FZ|1I34i*WME_f1Lg__299SCHbd@zD46p{o#WBdCk|r8(>{MtknWzDt*6F-1S;li4fD;v zZ6UDtcR0@^2H%D&`*gl-=(b(4?GDG*rw2A|=e@?=Jk3okah8aO)~djg`rmw-r~P8e zC)VZgO*A?D{n^>a9iLQtLQd%%vPxc5%(=Nq`o^j?LL8FMViqlYaof=#s&A3`<%C}s z?D*6_R}^sDw9nye-abKd!l|aK)*HB3rc0NX?zxb(XovkQ{zFd{X5Dj&UEsF8WmQT7 zcMDTw+bph2zqHvGlsZ(+V42b%qrKBL^WntIb73kM#LhUa)tV@%5E`{ubL!)udFyU_ zPd)Q<*CM0!@zZDB`uU^%c_|Y|kmQ*L?}*Ttl$dpUZ>-b5f8AqU%7$BxD=N9(Yu;^r zarN5w6SKB)tk37nO$=J(6Ex*V*yc?IoXmH2?JHjDIP)vd*0hjQ8XYT&hhPU1qNG+H6{7zIXe|T$cFVZJu(*H&!Ul5-rTx zv%r%{Ug3I9_ts0&2HQ>*t9P%`N;i~rc)Psy_VrtD<5OoH<9T$=;`oZVgD2!GFTa&h zo0Pjk`MCe>j8(ZWt@6IrFV|W><8(+!r16QnP0#Y1TlVD~7We(L=(42S$An7xGw;^< zrx*3VWr%70IDh^v&!0Yx6`N#Q4ky^ns?>00xO3KMCV%_Ic7x2<<#};o3mer7zOJ{DE3_AS+yog0cjE}!z!xG|r_cw1Wkjb-Np z=PtIKJK?Wo{ogMa%Il6Cobl|W^|toyhd(uKfBG|kYu~T0;@{_Y)%l z?pQw&j_;LU_UFTmJ2Q6elw*7OV}{*HStQ(- z2&5Po*f&D6<8KfF%D2X6@0Ioox*smpJk0+kG0sX}K+>H71u%yK@oON1k&A(WtqEv| HGMEDZxS#Ng literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_g_i_f.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_g_i_f.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..53d5bd9a3304ea0b7575ddb3a05ce8b381a119b6 GIT binary patch literal 1422 zcwSZ1do&XY90%}uWrWR^O?g{+?Ru0juXbgL%|uy7@<@!jmw9cP*~!JM+*?sHu1Aqq zEN#=9@=7U|S5%%ciXqR)^V02}bNin2`<>tKpWk1f^8<(h!~owTjsgI-#r-=29&P+c zFI;%d_xu|g7&U|Ci?SWY)LtqB{+F2SYWJql9usi22)T_5lDR_6$WMmZ>OseNFvsD`(yImF>G-;}w9_*=mguWRp$?zkM++0px3reOJmC$%`hct+Yx77{{pvrs4 zDSINl-iz2d5xCA4uexRWY4@^gIKGHQQYXm69~|9TZQex9Hb&mY+iSdEj)9KMEy!mE z`A=B+n@9DEG_^yroUiWPSyXxg!A%S=G{GL1F)g9>707pF;Zp0a$XbyM@J-B;FT+9u zmFF`{uNiTLr^;)4xQnrUw%m?Bxb!5)(!NS%!m=|zhdbBDOWU}_V$FWVTW>tUT*9^? zge#wflZhU@sk@OW$$ekZ8G+w61zK>F|xPLH?RmOExQ<&C1`=#%lQ^$g{aHQxacG3sY`g~#w= z9lwH4erQkl2!IO^du~HYoj}#@nhLmTCyq`iHwSC$*%OmPjHZ;`>oAwK)E2Oix(ch3 zE~?)^tAKSeV0d5`1s!ZTtvD7!8a@|BAq{{Jsw*D!(eCfOA&RQYoog=0t)~auWvPbT zfu`EsAtNrgWI4K8K|VBeI4h?Sj#|e`bo(UlX0nSjiOG)f?v_FtMc=j1YKju($8V)n zMWa-<8#+5=zXZ;5&vOTfTKs8Z1=v^7O@5qtLC$gCASBTSUzrBgibOpRm@U{rXtYT- zHNzvy_q%(gOkj2r2*3vxOl)IQ@I|Q;9H`-taCI!{PSV0uFVe2-Osj_*MAtr77aK(0 zFOhXI(x|2H~0riB;R<)utnKzl=`Mx=(99BIW!rJ6;H_ ztRL=Tj__}ApTSKm$ic?t<-@+NE&I~n7RiB?Eey+0XUF*Ujp?5hYQ@PR8XS+jf#c?D zp6iKAt1JDSa&2Ws&oXr_9mM*wQ5?RgqE)tZ=`?>^Ciq6%YiOI`&0K!qGXXJ<(?Rvvefk$^wgr8Sq0#yh&|kNkKGzJk4b88 I)~oN!Kcl3B)c^nh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_g_i_f_l_i_b.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_g_i_f_l_i_b.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..cbaab284757c8d658b283bd9c01d9885b00ce0a3 GIT binary patch literal 632 zcwPZ`0*Czo0RRC20000000KAw00w;k00000003?O|NsC0|NsBo7vz**fX{jmIPpre z>zqdE9mp5}00000000000001ZoV`@ZZrd;rz3VFmu@4E5SeK%Q7Ck5ul?aigz_Obf zRUyz4WfM_IgQTJcLHg|-IWoMVMK|}rWrj0v7Cy2E;|167Ad9+UP_U8&NxdZz8`!d32>2Db-}E&-wg--XLsn_knDCu z5NhT40zH@rS(ZHKw0Z}33@8@9RB|ab7KJV0dT`9FaQ$Y7e5R;+vVBD#SR>WFM)eQ0 zwN`c|b6VN!n4NM<)XiGL`g~+mtCUN#>xgF_RSg%nQW?EA$#RHAKChN6Xo;u z4Vh+P>^fmKblmG8B59gTlQ9{lsaqqlgmI-XN>&LosCwO_4bz%Sk;0G)I%g_P$%d%! z*WME`~fXfUFjM`8(<9{e<`?zGqg5AAa4^O!%|Kw}H7puCPD;bbL#hl#Ui&@PM z0Ax63%<2KAG1#7sF z3YM6nVj{O@3cr`=HpX2{5AY)oX^{y5Yi1G)Zw1w2>=U_PWu@b5o@8^vk?;Lpb>uKC z{G6Z<%|AhSdC_tlfS}*(J`Cubp8)zn*qhyW)2rrDPxeiKs`2jj=7|c}!{tS83h?FM z=*ABR!$NBzx4Dkc=-VGo{7=MEqUR>#(P)~xY~3BliW}Y=@2hxY6v#BbCmTv8>{Tmk zbE{V!n%>RL&~H&6rwI~|o|wppx0YVsdMywlnTZ(IO3v9_JX@Y_IJK0oNc4m&Oiky_ zD%DElPM)>FmAj*Y+gEIb8>t?(n^S&KoZUNAn#)wXo_mEXrqesJwx1J!+B`06t6XVnT~^S01YcE$Ac}vXma0ZK^-xYkz^+!yH<0EnG0cWRKo6 z3UX25s#3Yebi-3uCo~mm1UxV}P|3A%mx`?u9%*+(HgxAZOd^>Y#pf=Su4L}VnO+Nw zpx%I~%$s}uNr=j_wbdt5HSld+RjKQtrfk|4>YCcKI(*8tvOf3|TUY07 zYFCUDLQ?|CBW7&AXbg#To{)WTa~3^rn2I$GvlT5QKIej)=a)g&y=IU2wezjG z4Vsm-ABy USohBHB6p5fw9|6_0}Y9$-XsRG(*OVf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_g_t_k.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_g_t_k.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..214da8051ace0fd80283929d86468cc5f95e7113 GIT binary patch literal 1002 zcwPbO0~P!L0RRC20000000XK301pTN0000000061|NsC0|NsAN#>GNUC2BIf*mlQm z$jRA)96WFU00000000000001ZoXuBRZ`wc*e&<(=N~M657$tqJsyZ@01#fGGF@kpP!*2Zpmd=n#DHe75QW zNkzkv8Bo${L-J#3k8ehEtG~4D2>{|P7SMGh0!G8c4&!S-c4+b#hcrRtz>$4DF(-C^ z3Lt?4=BE&!@huRKFdjx4+~CW6Y(f6IkWN065L^*+Ctoxisq5sTvk-iMX;(a zDa0=7d0afI>!rVKn4%O$jK?qFurLbPDvp@oA#|wW88D#^+>)pZ8}dYDrq_bI%#*&i zAy2=t!CayN*Tul`2%m~PpF=1xp1>)ZN)jloQUjYhc<6 z!zFcFZmus}P(1urrJcU9n%40An&$BQp8P~wqGs$hx6;=uE~F>RgX%>lN~x>+$31GY zQ?!sQ-`R%3#`SMcvNi&-^vpU4-6OtlwMCQ*ohzt0jt@^_P{oi_&U#Wfh13Z zlel<%H0YhJ#6odd!{+GOoNe+hu{F`1&i5#s*r!^~RF!}K1MZ|{bi^pHbi?1FT(F|X z6vhREhAcvD8dFUd>I!FrZR6;RN2>DgKiww|KHZQ@fhLaEhLgFvs7Za)3uRoUkuD{z zXog{oGYuOs0_Mt&$;Xs3*Ux2N%4weA!g!aoC*vMoGFAbRmlQenh>s&|MREK~sF5;F z`?HR6=Xm$fpT5JulvJhr&-a(9KLGE|xt^O%=cQx$QE3pBm_ottR_L@s_&f?c8O2m0M>&(;ZHQH`5-V z6-L!+d8d_utMu1l3aY-8Z_8?hH`ll#YAn)2$sM`2uhQrW_2Bis8mZjEy*asCn$x9e zeKW^5eXCP=RI#GbR8J)UsAl=p*tU*f|INv%kCN_gP*1C!uCHyS?mAF6%gQybEY-wP Y7lMY=>goZ5lO`0RRC20000000VRY00|ZV0000000061|NsC0|NsA|NU;ejp0`gc4>g5L z79~cYPt*kf00000000000001ZoV8V5Z`(E$eebWhaQC19vxB|{=mTR>u26k=5{-2j z27$I{TPQ8MB9*Kd^xtM$g@>as>iC{!2_4A(06zS3(6S%!iqRw z#57ybf_|a%6(jc%z3UCPt(0)&W{(Q}!9nj1qS=XFarTTOh}lmuY!Bu~`ygE<{vEKU z6;N$2k?pyLwGcH1(AFhdpbaU@%2cZ6QhtZZz_C#eRq0}V3iQA?jp_qEYs@oB7%f;v zk~|_TOp_cuP^~$(Ca5rJf08Kr3%2^Xl+bWGGIj&)nf(k96oVyp008W+v%9X>&r_{B0y z7a57YD{XRVh@01K#%QZd0Mw_LwA83gI^H1Ovo3?30?Z6lY z$red>R=E=RIqH%9F!nbYiX~y6EQMq1z#hD1C^@#}&}dkwXO&0XJSLyfewAftUEGHW z$^Iz(FzarS!*X>q1fP;(hsXC3oU=5xnlVXy58M?#>545^%&I$qZgA=Fczb0aI+#ws zwG}Rf>9jqTc1=vDYrgr~9zWKq#xFez?)2`Otb0RjJV_{}My?KcpNM?A#IDJo35|Sk z;7g9eBxl%3o~=$kQt)ZcFvE5_LGO7ZZl&6ADK5Fbjpjv6^PDWuGV5#WCg(hZ-3+S% zFVs>Glyo<7r!W}V!m1c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_gnuplot.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_gnuplot.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..61f03fbb6ea7768d8b3d84d8cfc3622769466347 GIT binary patch literal 433 zcwS>*WME_f1I9uI2BvrhDCa*El+8Syu_Yk0&*-kyBGG%zKJvHr=P@9GiaEJ~r}GXO z2<-W-9k!^wV1?G!_y@<-TvXbgU7R*KwS!aam}94=tLXo@$7W8tbN1YuJNM>X*#ovW zw!TWZ9a639XnuBCbLeHK+;7%*BTO8aXUtmKvdZuidv!pRvugM$kNCEZshd-xK3v?A za>TIg__$?}+YYa=o`1I`>;qGBSU8QgmO*Mc(w z3j@z^%ul_naX7QUx1B-4FOyI2#c}o3QdC*DG96c&^DxRXSo?>-TC3-Ws+eCl?k=*`pO z*K!xbcC6j~aDBDKoCh7B4AWE=-g$e5;~dBF$SLf96**)d8fjL{ayMW1?3;I?*+Yxx VGxj8j1qt1;T6egX*}Qm{C;-L9#}WVl literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_h_s_p_e_l_l.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_h_s_p_e_l_l.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8f8ccd40382b8fb4b9825e4b686ef841c856ef68 GIT binary patch literal 616 zcwPZ$0+;;&0RRC20000000Jlg00a2|0000000061|NsC0|NsAcQ796@XMmX+7h?Fk zIG=5jb1|;~00000000000001ZoRw2eui7vWyysV}#04ZCdg`I4s;XaNAR+{sgi4$u z6EDPi#-X+;<==M`g8BiMUh?Ic+1;7V0A8T5SMUw&m60&d*E~sr0jx}gARB|=Yvtgg zv<8WU!C*kgJ+PdvHfcl}?&>@qp%(79#2pi-VX}#M8O0ePeU1GAC{yXPq%z84YOA5*y?iwT#Hm9pqhuXui8o`Ix*N%!R_1{|I(Hejl&7aO{qhP zUMTIrA$E{f;CK?|+G>QW^)^mtFX56c_)8vU@w&(8&PSTbb)Oyjzn7VUX-5LJ z2NI*;C=yz32|sB6#7@%=35y*j=vy96>EBt4>RlXg-c`>%-Gr6Q9^B|YYPeuCUe3vo zgqL|ica}vZ%Vv2$7SQstO;VK0eD?SwJlfRSxMbO)WO>P=Z!8UY^vumC_WuHZ95!=s CtRg%B literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_h_t_m_l_help.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_h_t_m_l_help.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7a92ec5fdb1f2d4823bd10b19357f866b41936e3 GIT binary patch literal 763 zcwS>*WME_f1I7&u3@ncrpq&3uaC+h-$=lCeuSGNco^x<(dt8+1xd{wNpkmJ2$p`Zu z83?q!uj~^1GC^*e$8PhgBH_yszCI~VtFwY5BMoM+U{h9Kv3pg;cd5y291Dsv^a73k z|C#qQ?M|!wgeR_?#ip^Ij6o}}3#EBEhxlyKy1J%Gq0@<@C8lZlv(rvoZ%Z0O3`934 zDW2N*lS%s#BVY16-o-OoW*mI>@^Fr-s?KJub}z@N-N#t&*v!AvQU7RHs>2HLzS=X% zQ&^5Ii12xmrNw6x;Nw$eI(?_+YqfmqmM49R-*}#TO*kq)_vQa;v1k2;g)&AA-#ahF z+pm{pPjFaqKG|$fx(3tt9j@t*^LK4{fA0MQM*HIYGZM=<<@*i1FHdCrF)efAGT!qh zcNuGger-K-_0u$+Q(BWR>3{J~e_hu4@^ST=tMPNsvbTlrd?)+-YSjAstEVO`T|OmY z>9)1ib3Qb#oWF?Uc3j()keXEo-}0=x*RPy?qve}MZp*uwig}i%kDGQK7Ty-N|J_yN z_chu#roDD;h_)1O$TRxZ5bZSI`=#9bmyGlEAI^yVn`U5r{Pco1U#2r;UYX|Fa)a4j zx$lp=i|w1{?BsO4>n~fgTC;lQrzgC6AN!bJ#;aTl7Slj*8W`Vqq0wCdB0=%Jc{8_P z#m|2SR>!yczP=IW%kH8Yj~d^(6KuH-IS90>XNd~vyx9`r)OF((W6GqvD&4zhZ*V)B zC4KN(oX%11DyH=hSm%6YXO7zQY;V3?KO+Yl!$A%Pra++$p_b>qJ(SMJ~-=+4A*^?1E;O@E*}cg_b|rwpJKT6zOk%XJ%){7wj|Z$av0p%)Id(lW}5r6mcU} z%#>!cR7P`Vv=H@5<%0dS5V>5!LY2nz8Z!$)CoL6+^0^+Y_)@S?MuJ2VmFhr1U$I1( zbWOrQiBymo;4mCm#Z>1eLjtQaHjD&M1k-{;eL?1cS%XW^FPW>$n1x!c3RiNo)@yjF z?Rl6+5sPGEU;+?x5z1JS$ppp*AzO28WRON&g99V9fF!H}ZaNvc(~j43YmBqjJ;j$B zAeVq;7TmA^1kMn297O4S8?rT>pRu{rA}~rzk<{SIOmqEqa0o17WUa+ot3V_Pd|&ZE zEAr6;UGuqhnZOD7g=@)Ykw`L{h=XHxY6X2jUa5JC%s`6-1!tzd@FWF!r713L$m zdP0RRHi`tdxH59b)jX!@XzY9aTjqRY&i_Y}5yH@SJKjU%L}DpGT$ufCQ+F<@!;A#i z!6Hkk%uu)O0)}H4;}Mnn8(YTeHLh2@PPIQ67g@TjFm}Oi^Q)JmM5x)1EWIc{~Ey&iME{`1?@cMjV!<~IFS_lh~6-2R{M!{)fV zaY*0ojogpGe0SJuwp`{s;^#1@@eOeO_MUU6(Hb|vx+!B_vrq3O^bM#bT9C~IH6DON z+nrQsIidbRNq7-O;U4owY#kJiMP`n5wlnbEW~*C86&)GB-sFTFE0;w#VBsAYn?}8U zqG}3W_N--b+1PqYEl<@|d5UH79k1V>65EAOoXUorEJh)wOuWeM0Y`?u$W2P1R1%NG=8LF%8HZ!!}={&gCXTtsdOt?Rs3HQe{;r?_c+@H^c`^%Yde?1fK)t9H@dUr)+7j%{;80~gn z#H7XyeigLcV)ABpvpr}rht{3Fwq(cC#=-l`N;bI;Mlx-s;o;(i4OrRLUX;E7?6(7Y z<8wa3?Ixb>7l29fXzbYE8~Md_$(FqM8MKE-@&F!yWpAUDf z+|+@1W}w);Fz)Os@S$^GF0;iW)5jR{-9ILt@3yl!dGC%!&0DwHX^xw{sq6a#pE>#0 b5Y6mjUghKCI0?J$;e>_V3+vl|=}2<>93OGf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_image_magick.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_image_magick.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..87559082d3524f54b527fdf5abdd5caf16fb4d84 GIT binary patch literal 915 zcwPaM18n>N0RRC20000000UD1015;E0000000061|NsC0|NsBio4Fo&R*XuDb-AuVcwDzMwD zwkza-6Rd(=*`{oCy8nJ-AU)DFNvl0wBqA`LZ@!uNX3Qa+!Gwz({E99Z1a!f(M{)>B z!8KGeuS*7Ve6NAeyFJ|&FjAHpsA9l{Hnc2R4is^6W|*qDU>XpnDH!fB1q1ezWwoKR zlC@T&&O;`12AUb&?wQN7lnoaPc&3WCd(X)s!hjz*mmXfed!4#b_|2OpsrRSneodT< z8xH`!Sa0^%;?!jcPt+91vRydJqExjm)fxENP~^L1!LmbHiq4(8C6+<{uK1mwi!7EiI%G28oSZ}_SZt%ZbE}6+twE3 z4(lKrgq4k0x3%57lr>az2^z13l=<0g*%HHbg=x@_gECFAWt`x6cWbse4xPY@SI*iM z8&eFQ{@POJzdN%ijql^c3(`IXuc|eu)RA7n4+=8^6hY{Rm**g)v15oD{KK@^;dKgv zRyefQa)1x>l4m%N8jel^o++v2-0VnOQ*f*Vg4P<*kk*RG#7R)u%5cM_us$J7Cb6wq zg*<-40f<__C&ZY&mWi!JWksRuets&xD9q3^6jY-j6K!qTi|o9c*c*0W>?N?ZoemC8 z{>OrTta__>!trpV9CpW5KL<{so0q51k2qVxek>8PHLT5PPgX(oz~o&a?FgvHSr6!B z2d9n0;)PNd;x9AmVBSw?^Pm|dsZI8Okfavp{hZ!9r^vs0Tvh&8dA%TQFbkaNb?U^a pGydj;t~Wj=>j&w;2if=8LiT-vkUgIh8vt(F}IQHu(_M& z+GNC3LXs3JI+pvTvs&; z>`M_AnAiHyLrqUJ6_<%~)AJw1WDGr2NF1!ksNN8lx4#*-@U8nc;bmCFn$UcB=&{dq z;>iSRQ`VaJAtj<5h@o&%bVH&XzOQ@@M}J_3G`c3;qy&#jC0Xna%1UG)kE>CJBc+-L z@_Iy2>MljVTZTF|e|VdvU2-5=V^=Ou8Po~7+vpZR;9(0o`JA+( zX{68)LR%%Bumn~E%dC!_;c+u_KePQx`nTlpO&P=OR%7v}r*D2RVMj1gv%$v)4lY-D zQDE+YD+TP=f@lil@0f1KQS;m{ndV(RBf>)Bo(P2R_<=-vew0t(3I~(E_-X={^1k|U zO0JDE@O7>^ZsQe<${Xm0U42K!O%63$wcT2?=6;HDc%+DvP$cO2#{ z7^&iTL204u;Tn3{n@p3fCMn)G5DK5cQQT^sMCh@q06*L0j|9jsN|?mWlO zu*+{`pkCcC)=EysT(0OVif^|s+>u<-8L(=fd3d@CA;)zRrqq)Nai%Y|v6_9dFLjSV zeCvDUXg+ZYe5MnF3@`8g^IPel^??bNZVznkO|KP?i%onOpQ8Z^^8xHwOnCx)5C$ob z&^MVk%bn{ypUJs!Y*p@?rVHMNBgg28OFxJR(}O9!wnM0N=&`~Ya%Zaw<8|cT=vGuk z5;!|6rL%l*d+a;{V%(I;_S$)!=GBwpbqFQ4MNf2U&K`ca-GJyviFSl_H6}s2C}>3} ze$CxYN2MV8b$&kH##lwHQd{zwZ`)yW=b5E|LiC3+>Six4U>LQgl?BeuThX$eSV*HL zIaSj89fD1}Sr1;;aw2Bi`Xoa;It>8-gY)w4`>_Jy89MzV5Bf!?JIz*f_`YjrrR3s; zk#@-58$0KniU936ZU0IO|C}ue$I3c%^UK_{y=Tk2Qdt;ci-u1s@q$2lXrMUy60US* z-$xG51`C z)!^NK__;6HRvQdTkr$SWuiBqfOEowt9789Zo$Vj@E1zkV?vlKv|Dtvua_C6Nsl20S z#CUuiOuF#lV0sdqh@X$Mws8grv^;O{el%AH<5+p~$R9cf7mZ3&M`tofMcBLN$LBfs zXOK&oVXHNog$r-{seYG8hCz}JPn%D8^?H~#=o6K;k?J-MbC_D_d751! zRH=RUJl!4VZYW=oxGBCD?BMy;Q&GI}5v8xoc6sx_*n83SLrU+;0Q1?sME%DaYp-!H**WF3-so~+Ms>oV`YXgnX&9iB!$m2$`vkB+UarhT4 z>RdqaAH{lQGO`^+aqznQl!8&AtdKRDtRCc%f-y{$*(1`A1AW0KLy$F|z8_gKvT7{0 zr+Sf{3%Az6GBJiso`7!EaYaqWGNAjHFt_bOgk!9>$uU<|xCp}SYy|eMb1)`7Ej0t3 zPA_g1190+DV?XMMQGd3Q_} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_j_p_e_g.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_j_p_e_g.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..0f14a445a14ecb8ab1ab6db18e4dc30a7b4a8974 GIT binary patch literal 543 zcwPY?0^t1s0RRC20000000G|s00XlC0000000061|NsC0|NsBo-=xauB2zi1osW*2 zM1oFbZ~lG&00000000000001ZoPAQ;Zlf>|edjAi%03W@%|Cc!lh6{91yZR`mJ^1A zT?&_E|D zUG22e?^K%~s}5e;;#4CPSXK>obn9AVl+5ET7m`P50Dq3C5ljoEMgR4R2LhQL13f*0UOk+cGXJbh|%*{fMw@=8LXIjUKk}@Zdktb$LgZ7EJbrdTrGoxa!Aa8L^n#7)^Xt&uSZ77$ z=~h5hg7c^*Rh=Qb-^hHmt8MC}-PU-6EZ;84M(uyA11{a{%+R59!Stb00000000000001ZoUK$%kJ>O0z2{eqL=PYVMLqOXRrMwY!bdhuLM2X- zi3e~uILHp&qH6zpCkd#q(8H=d*|BHdoA+j%7W5!7M<@$eD=neiB20wcqk&1tM;``* z0px0BggH7bc+?q!EHqM_vhb|(93)aAIxV_}35!D>rNhTX;1RGr+7frL750RA5#tB$ zY~k_L^COD9pjA4{50Yq?+`Pc=P<4>U_aRqqLvM}o|eA1`wmnVt+!fZa*iXxQCmPV}(r7AQ~R*g^E zMV=SW#3-_?FjDDF#a+oL(d;Y~>-ys%_Nd4VwZ%Tc4GTkll|tnfEMgr}0qpidA1e&^ zFmd`_7Q3)Qutcg$x{rC%ZVXN90=_PMp3IhzL<`<=c;NkO31?l&_#Vvn zn)-dS^tb2mCV$z!Vpu}J=ETwjSL4y_-r&>nFD^AUyq5Fs*LCtsb#j&a0&nu@K0S@j zmS!(+Cg$9LY8oR>UlI2}n9X5F4YT#J#q#)O}3TzMQhY*VFNo;Ujv&SVZ!boN|wsSR&>6pr%@ib0oWs#S%XcV8O20T7wi&>J+ vl*Nb8{>r3K1(QZj;e zpcjblDi489^Fl_9kpxAMNQfjNqd6(iLrMfeG9^HudCba0r5QMCBcodp392eV^!kXH z!+Vh$0LcIV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_k_d_e.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_k_d_e.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e0bd9ab136992eff359530a658c4be4261538df0 GIT binary patch literal 258 zcwS>*WME`~fI|!nj7(5A<9{fqS@xR$s#igXV}*;Dz`m;|Y^7coFd%`7IktU{-iI9o zTHpWHmOJandUC04mqdnEQul7Hem^di$$tQ|kUKkN1S>)!X(HsKFglmL|hQ%>S-FM{o&j6^$vWlE8# zje~9>(Bw#BO>tBntf)cWz284GJcy)ir6{m_(O|I&XXZbjXY`60>?(+SmTow^8CsVt zh`ccKIdicX2KTWWADAD+$vJJaUCei}@OYAlIFV<3z6v57XNlNywspN&B%N2CSIpT2 z3EK)k3%Nd&NGdB4hGHK?Yxd~IfqNhFdT>ZHL^#}XkyP<{>NaR*zSUm#|lr7 z1|mvW%>R`IG53Km)+Y!lahZr!x_4t$-3&;F0wh9qEu?zf=@vq#=QnGg)=-psCtpXmwz4LavHrSiN)%D1s!&7C>O^GE_oBY=(jEC_vR?UW~} z=O$bR7Jx^vN0=AX|7^X0GRjDd(7?%jjJkjEnY zEbum^571s1Bq=E(5n1ek7?hewM>}AFxw~B$crFRbu%;cOFBz3WnhR%gI~nu{?k(&0 z`x1jKeUY&NX<3R4jRPUuyOFfQ#)Zb+EEQYe_K-BT!Ht4=Hm+}dv2tB zXd}(N<8gXm^PACB>A<|P;2~tCx#cY9lf`UcEw4snYrdS$CR1zX6fw$31N^HJL}pf{ zbuEdsh&1s%Cww|5bHA$g;cyAHD+0a3>@_PeO>U%g=Zol1sZ1bwK`6|3rhMzXP?6+F zK@&gFi%e0uDwBrVdXc-uU%6dK|J}1=hAAT~=Qq~4!m%>NTiAiPR$n&0H0O(?44E~L zcnn&M@UY~8hg=1q)K#uI$tht;`fb#m#fQ_WKSw^z?oXw>7`57|p9Q6<=%YnuB!N6h z`#cHOV1ePJG6DAML3+^=q2Pe>X*&-O-fHbt*ihe3a6;)yC*ZPd{|GN5d+wOyF_k4} zG8s#jdZ`<)d3sifc)kNOoboyBD^uQK|qn`3Iu9L34sKaZS` z$Pj3a?*8#4Us@HaOAE6#koRt;Zk(R8hd?ADvgtYFsnUgmDTj_ z@@M+|rCBl{BYbm9K3eu8y4s?gJ;?Y7v{zDBp?U`;t7VgHhy~jm%gUfS1t2qm$Pnni zRjg@gC@V(-+(&CfUy|*1B2IO2z?PY%8xg-}X2`#SFC4Ks`WX?g*w2yv*WVydU&QNQ zI-Su~&z?AJVUO<4I*|O$SoZLUWT%62*+bWQ>nvy1rv>`iq3qFM)qH1UFMqXWbIc8_d)a@}e*-+7 zS28h$G@j_5Ad$n)r&P5==UV*QP}81M2|2Bc{x5dZfqndvR)kQ(gZ6MUB+kpw-Z5>^4NgO zVTLh2@9{S`k~D^g(m{%JH#HIjB6bc~*#-%V`rxPXNhICURWzR9Lr5%p5hIV4?sqPI zlBO4AKrGul#j1>}$&N?(H~f=5gB&OR?@XsV(;rLBAM&sly#Vfo`3_Z0=1_E9ay(8C zJ5DtuL8tGfbOA#7)|k9w7}cQ*7oCc%q}$-%vKmQ;Bd=8C^Z@>4`ol?U^6rNXC_%Ke z?JRUuMboPIXrhQL=@Q49<#-MEQ3SqG7*sbZ#^>}5Is_sS9@K1eV0w3IRx^8qaKL;_U=oE!s*5}->c5b>!)cu*f`H9!r7M(up z+7qgS=3?wDiA)z*62W94#zAzr3X<-6q^oluC)CYGqB(&O_Xp|&IfBxcGQ1!HP*81G zBUZ3g7keV33%Ns15Sa4S8jm>xReG{B^#!$E8|v4Bm7eBF8}fu3qG|OH`7IZ^BxsA; zcf?dE!~;Pglg%<{3?@rz}`ic0G|GT5eg91qX~=~k-cCO zsAWYL)6zB%G(^dksj8};yu!4vM%UGQK-n}AgrUb!QpB7>^|fXHO8v}mH2Z#WA4FKY zKyJ9e*~{9u{;aE$F^bWbc_^vp?JKoWYMMHuo~#W@rW5sP5&8l8?A~B9FRX$-(hbuY`xMbsv(#?fPUk4?w7os3r-z4~n2F(R6e=BuST`vQrxmI1Gh}NI9l`qL4 zuWhsj*GcRbdE)3b@h4k%h)W4{0@Y2+Gd2<;V*(!n{O;O((Wx>zOlubb10>DugVe zXYm|HUdjPZhkUyvd2m1(fB8vAU@`1gkgyARLMl?FzwzAqAE2xt%p>wejODdMQ&i<{ zy1eC=iS$6lvNQ;T6g90;6E0+cUxzo$qq za@Pvncu3S?Sbs(QT_ih^IoTE0U;D~OJoUs@yMoeB^*Y1$O6YtHsl1fRsi~2WsazkW zl47C7$Lf1^V-@>#k@G35S9!Qqw||r@{!naPnc%1x@qRbPI-Of{Fq>!&rs#X<;&cvQ zn;&KE3U7Irl;7>n9n)E$xw)bd;P{6jD6;SKqEW%{y<1D*Ctx22J~cA3&zCgxZELrl zx{q*GMbMf&f&EI4P_VC|8?3*8wZV4v7ZDBK3uINkn+88YguHB2e}q%W(!|&h>vW=3 z35#C_wUKW~+eV{B@R~QDF1#!<&ncjW`6(rw$iQ=oXt45>G8(jwTBo+W^1Lb2hZ}*P((|P!tOI!s#8`RSrm(RA4+>gk0!IOr1k3F4MIjYAi+vr8K}FB zy(=drb&cDIzojw->+a&(Hz$r1p^ zEoc1Y>`Cq`_lYe~>itQ*ZIb`!Uvf1jPkk?w3VGI3kKDx(x@RgMtB!sYCufmr8E7jF K;Nw3sEJV=*gF!O@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_k_d_e4.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_k_d_e4.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..25a7a2c5f8fa996ba9b65877eb34128059274437 GIT binary patch literal 897 zcwPa41AhDf0RRC20000000Th)00;>H0000000061|NsC0|NsAqK!Sc3W?p<=ov3`A z{lHs6cv$@a00000000000001ZoSjuoZ{jczz2{eqN)PlJK^dv9h;2V7pHaPN>CpmJ~^{ftf3UVQqr7>Z8xB*^(TIf4@ zE?#-@1Sywnu7u>6xOP7A7gm6fDU-LD1qLJgo+Mrn#kTJ!laRRHqqbv4#|tBU?2EPP zFH?47b@1mTXS8Idw$7>9X>wknm@H`Co3H4S85-I=GE{1#M!FKnf){vPQN=}}sl*HR z2GrO~g~G5DUb$KrycM&Y&m?VVT-Mn7u!mZ?+K)8?2SpwaLwnTK!8+q$9Jt;vA&+D*jqRU4 zfxsS-=pYaPG@>M$y4WCe&QOTMPsiw0ZnBL31zydCwyddIlzNi%L}XH|+TPYl&Eax; zY7%yRtW&ug?mPXn9f`&tj1z~r_SBD!a@urd{Wo15>$z|~>i_ z*VH3%b1RBNZ<55J?fG6XOn%>aF^MMj0MTnWC+BV3X4K=>oU4GE?|i}LOT(~bXE>kU z#Hx~R0~V+Rb?n$Sm=Blc%qH(cYH;ujAEEbQ&jc=0uh-Mgwrx$7Dh59hiMtio(b$># zHRX2j_KZ8IJJRIX9qxCVvMpv98u9%=}-IA5ys8U*85qQm$cHX` zkr-}bq|3M%=qF~X;lg~~er;X~p{ju}Pxbyhe?g)n@7@gUaXR}Td`|8&W&^Rw(+Ya~ XZ@u@XTzo)wRAJwB8lLqJe1uoZy5p^c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_l_a_p_a_c_k.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_l_a_p_a_c_k.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..df49209ca14825422824ae35fad3c14e9b265a9a GIT binary patch literal 1486 zcwPa{1u^;n0RRC20000000oW!020gq0000000061|NsC0|Ns9_1@|9Koa!2;Y26?- zUJCg?-9RG%00000000000001ZoXuBFZ`(!?z4KQLq#Pt5mM%dL0fK^#snoC{yRzIO zCt^j7Btk1v<&u_-!2i87yGwE@QF7WEL34=3{dn`{&ByL`;Q~f+vVgIF=YPHd8P7A3 zJ$qf4tz!k-bWuozC9O~(5{MI(3n_5{%QVX~8nGK7UyB^#?M~trlU&g^T1>){ae^Yd z5ORgInox4gmLfvvDMVQ3`R?OzxZm#w3FZViNVC;Yik*ly!~VeQYBmUBx64uyt;x2O z>0TL|x!7RBbhJrPO4CYChNuOt^^Nq=S7q^{3ZCE3ly+BY_o)ftH1ouoL+j z60yZTJ8F>GGKiJnl;Y7s)d}Nyal%Zn_j!%cW@K`0MAq^+O@b#frurV~)@w*P^2hf< z-}7|r&DLX(Xfz15C*fQQvQWlV=TgLYs>(EE7MM^HliNHH zrQ3O&2xiDb%>p6IgtnptN?`tMtPB9IkGGc5d`~lnwymbTh0u(HR-CX@Cp7YyjeXd! zk(Or=X)3PdTs(ETyA*0GTA7q{GD{0eLv&owbM;b_NrYr{tk>!9c3&F_Q#!75ZYPw| zl9kYqqsreq(WB*M;pinM{|KFGCdaCVIQ2}YAh5M~M3|%Q7i5V@-Lg3QSYbP~&ZvRM zYEK52gDPcWQ{eWC8k3Bv2rL&CMrqY3^=*Ar4WOhVGSU(g%mgR?7yKZ7$#R`icLQg5k{S z(K~`RDEQ=Dz=mYdn7@NnSxc7u^$E+m&jh+owa7 zJ397l@#UaTZfDRE_@gYg*8zjnx{2q`T^4ACd&_WdRsH5frLJaJ-b$_~S0M!;n2o=| z?G%`UJ5@%9+3QBb)>);?u}@ICAH4+>)U!s6e+)bJ})h?fK z63oTfoD7aNSHH3p%+fk!J@5DiS`C?9_(*>{9sX~-krshII~A#_)dFIq}LVE z_9v2NYiH=5C))*|t|55vko(m;x#ev*`%#2a-(vLVzfu}Niwiwyo404(X|k=BP=#}m~&3Z2z`2EbEJ={abx@sSi z3V3zZw%x5xKWv2j==EkUux`^kzrNAlTPmWNZf>u$S5p_wMB~s&zj{XOV|u|_pZ&XQ z`+m?TccV?$SO;y^ZP2c%kw5dtVKALi|Fu(O)_I?|+fUNGe8b#H6!dmhJB;GxbG3sn olzfF4bS$iM$^8*xMuVEt+cP;jid-tqStILF4`~MVZ*5oH%?VuOBLDyZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_l_a_t_e_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_l_a_t_e_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7e0febc929200e8998e86784557122cb9f1b399a GIT binary patch literal 885 zcwPZ@1B(0r0RRC20000000T7u01B)C0000000061|NsC0|NsBp=%q|suVra*9edT6 z7i1V11K#fd00000000000001ZoUK+{Z=ygHe&<(A>^|6sMb|cI(>|f161fG4ZL>B6 zWvmmqm|^TC8~^*B8Pp=;c56$bkYT=a`ObGZbB2DR9!Wx^2MoVTXULnA48>`jA}bZgZN37-g7c zd>5LfQIx)r;5>X1jnfN2=phIuknp zlRRU}Hi@|{$gPapOHAz8M+q)k1JBTl$O8&n0~SZ`NMK)*v>vM8Y34=iT#^t1LC`mj z;abRZBMT1_n~)@cH^O8+O49|Dlp+G$P<`-qtE1??p>zhCsgB34)${HY2c8Tv6n_x?c-&c0iW4@% zG$U!UUBA_Gl_Doi*<&Ln3s7$Z0X_aYbtH@}tvhM``11)8*Pny%9M?N}?J29G{{JDbBYyvpx~{dIUGB@Q zwG3y!F62qTafbVe{qW^Q*DSDDQTuZ2MqF?92mI-{PS(PImSuWbzHx59iL#K@0O0z4I$Zq6d%`x}s7~Rn=@h*a!$T3GMDF zGOGfeLa|X1M z4C<0=c;Z3;Wf;VIef$mc@a|zTpJc&u9eIeNPr7D%D2cuTxkQDLJ70T#=7llF)+K9$ zfXiGQDVE}j<#nY_*J=2UojCN9CQ0y(B8oE&k}=At>HDZzS4Gbc!YE9`Wn_}wYJcE@ zDbP>6&PxPP?AH-XQrK1sF}N%)CVJ~|$Ji7277z^u$42p{qG%Vz$wnA2 zDQ06@THTp5^|O04?cC3j6yHwlWllUzTKfY^=B(#wwn(NOmsN)-ILpF`XPJ{^j`zcf QT;J=|uIrTi1!;x1*Gg4^1ONa4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_lib_xslt.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_lib_xslt.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8d52a87e644fe612586b5fb12ebda8ca0dd65636 GIT binary patch literal 762 zcwPbe0tNj50RRC20000000O!I00nda0000000061|NsC0|NsAO;nT?ViOT*9PAN!O zLZyV#A>ro$00000000000001ZoRw5jZ`v>re$THsse1rvbX6zqX`1FHfkuSDlCZT; zkx5LjFb=cLS~T^)?`#sr+Pv%~;f}lSK7aScS1^KH9lMQ=c*|2<7E&QL6l;x*|4q% zxGcq?!cknY(lqLL*@o|wq*0h*Q_SVoc4}tX_RI*vag;=PG*4`~-|Y5WFa`RFn-beV zv7ZMVQo*`WaL`=VXB33-oBdJodShTv4&nCZ=F@v1f<04NAxOdwvTD@&J$#n!&#&8x zT{o)!;`B&a#kEm*`FPYTr z8sWxBv0{dDp+Pg|N-V%`Pvy~K`18eMluSncj7-B(=BLpj&v1tV+dVHD!=O)kf~$I? z?a%{&D_jJWw6t@CVzfHiY!>E&R-*#N4T^8eD9qzW$kSyw^ui?g&q+sa?PDQH8bwWohdl3&q|6p>B>(&_(jEm=`(%X;aDz6em@wx4i}#YJYuTE zZMcS(>tLzbVq5!evZJ$@PW*W?jwS=aSI^d=MXNw0%YdtMX#My)9t&FQbH-oWaCjE7 z$EWXp|6BZW7WG0T@9&}dq;7eBu#fAFopu3xBK?Bd4yP02?KhT?89v>aTTBOL2WPKf z+rziGotR_1LKd{#(wg0)_=05yUsP2@Ssl>V8<%#Q>a1k9l!h3kVE|OshaHpVv~G~x5uL03;naC9HoeHg>I9&^(z sb=C&l2w9>Ovux6H_4H_tXYpnvofaf3NbsE`ei-!brtcH@10JBTM%n6l&j0`b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_lua50.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_lua50.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..400a3280f5e365827c1110a43c49aa6feb674dc3 GIT binary patch literal 1058 zcwS>*WME_f1LkT52A&KEn<4i<6r^6h_I49*kI|adI%OGc+b>wcG4&j9DmK>8gEGNA=JT6{#(M z61Cr4O*DNhsm^ASV`82rZT2Bx>1Cy0WizjQh1Ap8&g(5jL&UXt)aM(Tm_I(SUc6?` zXHE`Fzv;q!$*T2*Gr3hA0|G>=A4)mvP4ckbwY&1CsQ&D>hqGJR|GU?mnI6+!Mq?;~(-1t4-&bhn5+i7x<;`KjL0^ai`-kv04Dtnys&<@i#Rev|X;&WhC z;$w(a+adS!V}Eqgq0`nj$LA)V=HKIZ#r%`%a|1~h$BKvQVq9I%AOBt(ocw!7<%a6z zWh>GPN~$k?+xPo$-g)=KZjbo13?^h*i6$SsbiUwR3DyUmnSS;6p?xw!@(gATH?$R@h=j-~nHm+5la-(;_&j9*!om^h zz21kLQY}}kd|8^UcqP>LsA&7;3cko@y;^s(uRj7G*&lupeBP@Yi#D&A_{nQFUY#)anH`oFg}Eoq+4um z4(vEzcp_LkSK@Y#&*4Qi)0>~%C@Ww)!l-xj%IWvJFUr-p&D8vLys(;6V!hNB`R#JG z4<5a{Fh^?#|J&jp?hjCTwUN9V@=y^`+6fC89If%qqo!N|qHz*5V= Qz^V)7uy12v;HU+20C^AJ?EnA( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_lua51.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_lua51.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..78f3695952a11c7335e2cb5a389c697e4aca3751 GIT binary patch literal 825 zcwS>*WME_f1E%>54D8DwY=+$bP{80eKd0fI)M}LubK!}qz0>Y||MZ^$2~^BE8XA~? z*+8J~{CbO}Q*SKE6czfwz@eEfBsMWE^zw$cnxBNGM|r>1DtqY_T4!DEx!JUJ6XWCw ztE`^?{&Tl{`sbz03s22>D4-`H@@QGg(^IbwRA`x;3E8J%@uWsc<@ye3H9sk~bmerB zijUX6=}$Ug%V^lhscmB47}FTS=ChM&@r0mzm%P5*7IwVCFMQqmZbAvuX-$1gMgup# zqfK-D1lvz|EYvVgJz?_n!24%5#y0GVo0BFMpP2IJ)KWpOCWXwo#}dP3%<>FXTvT_T z`~KohXam3Rq#wHYT@~{?s+<6~52E zZqE)))~BC;rJlCRoq2Y1>7Nk83$fqX&#CLn_Sy7=&b{HlF0@ijcp_)mo>p%@p8I$9 zgcL7r{nO;hUHdCO_3^L0;@52NeD*eb>>YY9>yF)q-4{~(@5OF3&A908bLIFtRp+z5 zya#NjPxV%8UuCkZFje%&nuJ?AH^cYct?TP~J>~W8vf3{N@7FbIz2TX#HSPAM2cO*M zZqXOa|2I4Q%l(kw>z)1w-?y25X1T}<%UesX%3I5Ryui9YIG^?3x);eUmb z@5a7AadXe>b@i?rHZFYs<-Bdj@x=z(m^7b@84_{zirQMS#j?dV>GY(LRi8E0x1RtHZN$Z{S6{O$y-x9JH_8s@tBb3 hmqV(W8osLG37iZlfbkvBgry(`7Xt%}Fc9woa{wsCYyAKK literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_m_f_c.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_m_f_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..46a4e6f71d49219f657ffcb41d859917d6c083d4 GIT binary patch literal 330 zcwS>*WME_f14b?&e$D{p{D%TR&S&Rt=FC}En$*(zrMSE5k1FFd1|(21C%5mQ-(dp* zm-qj=0;?9-ny~+9nxq!0^2lR}z|)pXH+01gu1lJIX@B};Cn_R5*BNi{^nnd7F0;=*rR!o|L1^{zQk+%oqk&&wU*`&E7l z$6xl1y#4Ujug4cl_^KaoRR~PAX}M_57v*)zC}3Bnt>yJ!KIeWhTwWOZ>n)eZ6J6Kc z6DA%$74_eb_w1GVq94obGzC7`99R_2{c$z>S9{Ica_@IdHZrq5Hy-$LcjmgKGnbx} zNj>GcBf;VSMga7~l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_m_p_e_g.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_m_p_e_g.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e683af3e9ed38daee7ef4f85e388ac01ba7ea51c GIT binary patch literal 517 zcwS>*WME_f1ID8a49x2opq&3u@VK&aj`4EI6YpNnVfwgm`TmCFmX{1jpkhvIP;CEf z1A&_7;cKQ;D+uvk`paB3gJtSsO?m$BEi!u=LYtzKSNL81`(5fVYv-IQe~I_!&b+HA z`@qU{&oF@3$z4=laNhYR9DB5HHzx9jh)35=4A~cDeM0Kq;m{2WT@xZc@>SPnE4WJ7 zyYBSoviFhsae0AD0Mn|@+EwyW>;Y5Tqw7WLeD|oRtW3U=F1Sur^`G1h7qf%yb#fW4 ztoJ|PC|6jsU{P*Ap8@0CfCW!pi!FGaBstl#KypgvnwAzR>nU4I?}j|;{qu|a_3_kA z)8C3+o^ou?(f-n9fq(doyF?RN6W@rZ>s#N9zI>p=Sm*B1n(`++u8M4>89EH*FP7f! znzSwNbm_@k`Z?WOYWE-X`N?=~Z|2LBXKvcQ2(CZA^RB=CXUV%7Ve4c~tQ@R#CiB~W znvim_yEDY;OT1If+dA8rjlsp2szTg87S=sGc}(Xd=LfDc)!S~JjC+~UW2N=wk{{#M zJb&A3NlR^?{`5ILf6KASg8ozg1)Q{r{Qmnpd&RG3vYv&XlI)dSXT4lM{YUF`nc&CD zKU6+^($JoF`El$X`x9OFOnKgzE~tJR!uAvHA&Q<>72 zr&~OdHcI0F00000000000001ZoP|`uZlf>|z4H|#rH4dfgVaA@i<6+zY!=9&C*)ug ztP-5H4OO+uzwa1GNSkQO#b%f{^XB=P3H*SCs2P}&LrslnIlOGh@)1OxR}JGDD1NQP zPEqyYOdu_VhJ$2H#ewlc)Ldh<$7JF9DcS}k3&PliBQ+%$35O%!KQf+s-DY08z)e0M zK~eZK_T!KwZbzbTC9tvLe;T1Uvqc&`@VWvner?x*3t<5Ttu%LmNvNd(qdsmRm>>tf z%!OTJy39f<*z=kzT6O7E@v(eIcVPGG!h6XTw{?rNT)j?%G*`S@`9D-EM~Jfs*Fm=N z)7A7wKp5n50K7&kuaY^fyh^l!IkN#dw3*%^+{5pHy~}wZjc)JFai?#J-b{nkzpK~E zu^0+cqIb|IcI@BVkfhOT=cbt8TTBAfd*2**ZF-YwZmv((s+PuE0-}KK1S=Fy8}vhq z{-C?cdK1O9InE&5)OvYC^EbNZtFC!saG{F%YOiN!y`P@_CCOI)I*3S?q`3NVkooa4 z>7|5#Ec|VhW-rO|o*QoMj`N0#=@t7KN|lgw`qkv{@b^x^6JYxN=bS&D!wH)KOtd^) zu54EfudFsG6NY51;a#9&j30T;Y`Uzi?~)*Lt)PW$YP<-PF%SlUb4)pF*!>VNah@OO m8wWcH&W3?;vTtU)L{1p8z>zrsSqGoX^?^^?IsX9grDB+JX(8DF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_m_p_i.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_m_p_i.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..2d90f6c8f14f62603220c36a0dfdc0ffe3efba05 GIT binary patch literal 734 zcwPbC0wMhX0RRC20000000N!>00u|^0000000061|NsC0|NsA|SOgz*WP$z+?W^w| zzG~v}H0{R#00000000000001ZoW)d4Z{jczz2{eq(jGwVg2Zv99^Ax%s3B#OP_?JX zBnGS+hqXg1RQ12_I0ed=+TPX@#2;_o%shMM0)9atR0+dT=v+WH7X}tpxsn`YRXrP+ zR@$CHYsigZGY%tWj8HQORn7I36}$~*wOm%ZMtf1itB?{(J{5{XJ?BUuW%X(;UYJ~Q zgD6Xwhp`upeVUI*Hh>#=opa4$u@s#-6imUyTCP;Ng-79SLXs!IantZhG0{w~p{{VM zoX}a;}z;4*HJRJu?`1o;be_f#pxhnY)F5O$Z zmo$EO8|iAM*&+~u}A&W QetArAa8+&RAMD@G-$ro5L(rVq zcgE5lDD1`ySky%kG%^~JQ(M)0!wZGlifVSj3tT^$Ft~H#nb4fG`^M}LSTIGs#;l+> zR8LJ}s?_QNK*)Y3UdSfkd*jdvJ-i|nQ5$t*x1grcFS+X1Zgx$~b7%uUMPvc^2>BF9 z^|MM!G+H1f$)clr4(=Nlx&qAuN$uCKRQ=uYfdqi^{zFeA=hQx%uC@3~svj4ayaYeZb~WsoJZ=O(PGuz=yG@qMd^y8CZgzDs`#6cS}_}wN$Y_OI4e)RP_(Q`cPQD{#CRNwCgVw G>V-$T&dPlN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_motif.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_motif.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e89fae9bee2849f9a4866bc5485aee044036d512 GIT binary patch literal 443 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 RS;#;D0IlIaCIY{Y{{UB&Ub+AP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_open_g_l.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_open_g_l.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..01f7f8d4b0d52420eaf4c843d615a0b13ecc9909 GIT binary patch literal 1317 zcwPY|1={)m0RRC20000000iX#01t`)0000000061|NsC0|Ns9kA>-16#Hk<3bYl## zv1q5gdrHlmh{%&pd%~L0cWBV{Ike~v?k9ZoT)R7^orAhVMep93dDxv9XT-mf?f&FDa#Ps zAOAqn@Laec>%pi&?tcGcEvW=ng-5XtA98;RJO|I8uFoXu~*! zCcC@sw8ItO!;{Hy2~5&|C)-nyeh^z7#D73F9NCd|%!w6zeHSKUOv<>kS>U}d3ydeD z>CpB{@qlzREWVc-Zi(PtR=B%Uf!sTqEz zF~un6RJIK0qq)FoO5%RS?h)ifT~ge2^z_SA&>E15FKv;p6p9|EGZ&YqqScUZ^Ic(-2^LG1zjvPiT}6OcvTA zmpbkn_>Y?`)#3ku=*2=eV4(}EgdEE<9bo&=r_#MeyCFyp2U)Kg-PVVBQXZcQ6z1?M zqi6G32;*qcQnVp&WD zjBcn!y@0?*_E8|C44awSUZ4}ekFg?nK}vLAK=wo7sYBCb`sFxlnFeKZhmIUhmy)O6 z!g{A5n5^iIq3qys`9OE^Rvl@m4G4~pg5bd*)b`am0??`zNFX=Ut(dA zD89*}C2;R2av@+ffU{85ojA>U=qWMT!&t-u_J*7YAty4N%Ee`kqn88bv6{qK&^1k| zIO=_1C@1Vq|L2pXMnONd2j6K>wiy2yI@0IH43;HZv9U5r@_BIQzdyT+XLt134Ts*S b>$H9GtPao8(rNof=d^q+bb8L;T7+$=Q*?%9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_open_s_s_l.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_open_s_s_l.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ce7a9f18fbfc9b61f2378bdf8468b0bd7a1d4191 GIT binary patch literal 940 zcwPal15^9}0RRC20000000V3Q013SS0000000061|NsC0|NsBt{u8S<4atLd#@Llbvo9wEvy6oAg)Ou?aR!UEF)`?%um|PT>L~xr9={BK2I5Bf-{WG72M}V0U1Lu!*6u}_yg)8KJNKL&qjW=R3)3k zEKxi3Tbyf%<5}*|rm^h=2;7d&d0H$o%$!S>mSPX*I#&S+92)9&5VhjYnF7vO#xmXC zLao`_EseIs?Na8`SqYu=3|?PezC8z0u%8Lfm;{e4cqZiJ96s{u-_JiX))jL4sp>Rf zS*}W%j~7NH#F-?hN>UW!9@8diDrA=PsV+dbQ!+VMASUMFDzvfElySwnny)7$N?9g( zp+GTaVl>12HsMQ6V)=uS<6U1^eR4xDLMw0vQHaJB8n1tyUZ)|+S-S-QA&oj!_i@kh z?D*@@p^-a+C>T- z(U;Dlc@S8=QpHRB>&~Dq?7QQ=d2JZ`;Wukl#VNe(+r|$3L=)snN>$=fA~U#4iUp3w z1>_S@Vy_~tKyjXUGDplTxnnvkoh5wA03-CHs36+?q)-B|Mw1^u zS+c|ebB@lA7gN9`nBa7blk^8n(C?}%_z0KX_uY46-4=2gDON6w_SEx8ALqPg)(vWW z{d{&DUP;{`*vA_NlvWEGJ9cI5>gDs_a6A65^3{=$@8!# zrEW-{R|B>hl55)Ok%(YW5cmO{SYlCRz(u*a^eT7oNitLdjl4tm^;+YyRwkWn>Ui>0 z*F`tP45I*7xfA)W|D6WdvRUf*YUsFj9E}Dj#{NlM1#cU2EC%`{vc90)rm?@f^0?&x zKTGZSo}|x7v_k9(+b6+IOv0Gh--u^Xd(We$Kc>CLCDL4?W-seC+HCpOP8pI_g$LNT zuG;M@PRBfUfA73l>x)}A@XusD;)d(j06dFNcLTe0XVnz~9nX*8&}(OHd%d4wM518` zCq04h+8Xi!2d0to;bhDHM>A+?j#jpV2`HihYB$O{aBb*>=Gv$jcFQ?NyC-a2OuN;X O*hAVM*8LA(z`aK@ZPAke literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_open_threads.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_open_threads.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..fef972a7676fb9cceef106e0c35006d51c0c1906 GIT binary patch literal 1794 zcwPYl2mSZ}0RRC20000000ve702Z1600000003?O|NsC0|Ns9|s&&V|8f1g?rouSV zLwu1`S6QO%=q1@)ImziHoWT&{%{1UC)|08u;M=m_NW|lnhzqw8z6JaUnERY_)ToiB z%Gj-Bi-}J1RI&s7ZR(iy3jjjc<1B+3B@($vmbNdWR`0wMRchUSvvJy~bgnm~_4ZY( zc0_7OLy=l}M2Tj+$eB4uPgQoigm)FJ=%CT6Hm_&c(dsrmcBUv za*(UkGYX9>`(&yp#^G=iZ8<}*uy1JoElm@S|>uDz>t-rR{amt<$k#beYpkg)(ZoRi9Io+7^W z+5t0TX=wC>;<3mubDY6M%ok;3VI*v9)YSQ5aRlyY%*T)|1(0zLIZQOr8>aGu8Yqb7 z+|&$&cMe!{f{0hWsJxB(FZ-93-Z@!7DLGgSJ;&qj$WCRfhG@|GAf4+OLvrMufbb$u z9h`B3134CV3J}j!nj)Mqm>@d`*pmPl%m;GF$%$-^T0jd4?iX>?zz|JASYIw@Wc@@1 zhVz^v2suoo8imlB;bIqHp8tzWwD z!-J(`-XXAOmzdtLT)!P{N**u{1}40 z3YMX>%MIsg!CQcP71oTNYRl*hxZ)5SnR>G_opS$8=6@cs8bjkih!NV$#L&jWc)vh1 zF=02X5~di-&G()2JlL_p>ER07Bm7~TuK)BRYQ6io!}`;94L&(pEXmy(g_G{tF0VM* z;caoUCfTWaui0w%Yf-&&)$Dm#_70zm(NK3!!?8hCcC_nUiJ-kQ(SZ@+t0hr6h| z{PlTOrhlI_!@cUHZorb6HW*z#*eTDgIZ1KtNY~)>;x&PtEx)5?+>>sD7`K^qbDY+M znW^kj8)sKa@tT9v6kBVCL0l;mqy2gQHoERN+to_5e^IHPH(JrnP4~Lni!N?%syVI< znX85s*_95W@EJPN^0vL93z6YB)!f`ftBv(*0knRn-R}MMO@e~I>%q|A(BZ|s?O@AY zjsj^a7a&IQK3({XYt2tT(qlus@b}md<2wG!&!0bk>VWTvxE%1!NCo**hW?@XR_jOi zz*oZl+pGp(H2?dx(=SrzIlE)km33i3w4t#)!&)dDg>RdyrJ%4TT;DDmTJZy48(tP? z-)z_X*8%VM%z`J65(TU~y*k@Lm*fFo9=$JkcTZS2|F5Kfy^_AXRo~ZcdM4%m-#Fj* z#%a{IHT@7t;H1^=ZF_4KC~@c$CE5okx|Or&pmcmp@9|W`bgaoiK3e-N;|H+CV`k2b zeGQs#@%^cE@3$NEK10aTBj#UbO;vy$;eopu`IjK2P{{HT3d0rn3JP>P5=M^00000000000C=2ZU|^fZz`$P0 k00tbh7#KL6fec121_qu*3=F&pP>!G}5dQ&l0Co5Tmf5v@z5oCK literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_p_h_p4.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_p_h_p4.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..bb7ec5d03c949ecf7f4470b57bc65c0c1aa24203 GIT binary patch literal 822 zcwPZE1IhdV0RRC20000000Q;^00$}n0000000061|NsC0|NsAnM}CdlXUJA9{D*Tv zChz1KTRegQ00000000000001ZoQ+gXZ{jczz4I$Zw1-wI<drR^4>Bz~SZ^E@-23+TWg7b(n#^Sjms#96LkE7OuQSR<|> zU%Nd(JQvzf&RGf+87VVNZF9ji>@ubpn2e!G!pqchIn(IR8uEOlsLIifDs~Ga1C(po zjKT3U^1Ha#>;+4 z=0Q9J|N9CBH5nLLDK4_&HiLu;SXpNS$PHnCD)28>l5Cj45-ALYBS{mg6y3iv;kh=%PQ)5~qMRhM*ptLa$GJ*^T?w+VGCvoB69b_&(| zRO6XSVX8fwt5UO+U{kpQIsD}+f3mwi-C#GJ<;~@@@1nD7?&112R_)*V2i^%gO8)bX A!2kdN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_p_n_g.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_p_n_g.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..75c34b8d546e2331557f21590a740e9ac02ee4b3 GIT binary patch literal 777 zcwPYs1NQs?0RRC20000000PMX00s{L0000000061|NsC0|Ns9R?0HUfF=Ye^YK?BW zSgao0BB|edjAi%1WC^+2kAC*hx?+?P9X4^aVL! zz$༏P~{r4Rk$W7g9c>z4PbI#0o0^eY*bOvoHL5o(sN_Yr2pmbVwnQTCytx|_t z)W5umH-WfR4LqByt0ZJHS6ViBYGV>VTm?JI66!~Dcq?Tsp*4`(>@T`llyi`6x){9! z|0W`l&-mQc?rSKlh%uGYPaq1Rbko}Zu5qZ2v6QX-(2xE5kR$%R>7Xf1S7ksb9gS$4 ze))6d{XT<(%nc$-&GU=GIt6}Z2(%RKi8R6;NhAJBHpj~A`&~%q;OCHws*!WZ3}}NO z(en~0n$4h4HitvkIzOxph19YZm2(!gycA@AEu9s|c4WX~Q-?-NFu5~{gTa=)sj5O| zV?F3Jf`;E11F6u~lABIvHrVFM?+N16NV%M)MN1Y@A%lqa$4;-KmBk_WzVKJJ3pWa-;#(qjrhsxn1wj15{IK5 z=h6wW;|MDVzz!YGsZ52POVxgDte5DjerQ*}iZ`Vf$BZoC?DL99ub2K}Td6(aF^T=v z$(e=pGyKkcqU;?{{;RQGpZ$EAaSckm*edB(==;uRaj*Hb;-Luqfe*-qM zJ*~eLFphQ%R1R*@D;&_KMP*;{1``Lndbrol=VG-UMEWEOxpk#^i!V`Uq%NA7H*DAH zmTXwEMJ@reDut9pG$GN3Tdsggl3frdcYJexW&DHp9f@ue!V^M&kZ{H5hl_ijX6F3` HU9-iJ>IZqJ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_package_handle_standard_args.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_package_handle_standard_args.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..6f183099b978bb863efa11988bc45e7129b0f6c6 GIT binary patch literal 909 zcwPaG19JQT0RRC20000000T_`00^!C0000000061|NsC0|Ns9On`=o?@6FTQmg7dS z7_XuSSKf6100000000000001ZoTXG@Z<{a>{hnWOqLW6XD%JY2nkIR{v}lxchD_Nf z5rAx+~1zX|hF z!Y*SsBG(jLkNRXDCh2v2`Nx?yx>g%laalB#fQ`_a-wJ08KM4B-lgR|eqZ7ctWGyvp zcvdOE2U*sl%ta2hf~9~)uOxnq;mqR1L}p%rLRw>Y2YH#d|`Nld-ebonLqXY{B%qQrFlIM?DfYr`=up$T!+n3qZ$?-^jQSWVRow|_3hf8^z_qo*sYx@o z((oXWpHC7Jrj)T6JMCzpS;W@Z2#5W!7C6VM^FR**sxoz+m+o3OgD+IZYpF_eT#2o! z%;Xv^%Uc_^F76$53fN)`g{1`W-tOS|wvkTm3pi_Zbymow`8?vuL@Ni|K$oEK+se2f zxite~rkEBur2JrDq%;_P%eSwH%VK`^dzW!7+5#;imT{)4DRPKr2`(nYe9*s~9-*rCx-iLM$#EG#73BeiY;fzOySWFYQ%cXIQ^1@DPL4{D`M ztpV-3ApF_$1L#KRq7{>Q+;44v=>ng6L3Yl7?;F_0Qg4xadbxkuy<|3c%MFay2KStX j^S+7%jn($0348HU2F&_N|*&BeVhYrE9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_perl.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_perl.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..df2a721e16aaaa76384b1998352143def57ed7de GIT binary patch literal 1087 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_phys_f_s.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_phys_f_s.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..bb9a5ec3707e0b8e586694e5ea0c220b4ab86ab6 GIT binary patch literal 1776 zcwSYNX*e5*7KTHKrm@yKq-s}7HFiov%}^Az6;(?_D@jqYRBLN1)K=@oxVBza7AK`XkJ1 zDphP7jqPy6Bh>!gXvj0>@~5(_rzkDb=+OT2?p9COCS$pPpl@}%UzwLSvdjSzBAaP; z?iLug2>_dvYr(wwo}fV30=;orEHY zI#xBUDY9^4N=X4ZnwT{r3G-+O9D-NObde}_s8J#2_YB)fm{4bI~NC+;AoH` zY`$x%At9L+zwojDuloKTg?KoIyPjSTGJKEZOn6>g=(7#p<*~ka{NpdN@sKt~o_-7!z zQBnBM7Yk}4-b=I~XJ&5fwIX@-W@ftd4YNV@`F(nm<|_RCww@H11YiYCi3(rC9k> zh@J40lT^|;^Y7>W+n05(RMnF%>K^?n(0)2Q?AaU~IffcrLT^2}WjcF+K~YRK8~;=_ zF)H*}^EKh+cr3=0g@?OOEnx8ran57QaPw$%$6i%00$LEm_zQuWH!?|mI(s}=F(oox zehfp-UA{|89C_u~0xgUP_YY5-3Si7hFozOFQz}>*7J-N4iOH7(7R|yGB45W_Eq4#O z^_=xXZH~^-uCZ4l`~MRO0Km=#0C1N6u!R4&@l7Z7>&EB{^EmEgzN?v)Sz)ULpKz;x z>ZH@rI$+9}-+h&x#YsRN&{h(u_=B4m$$}oru zVc40w@nhDXL0Ok9B!oGu;AlhocK)0$vtOaCO|tZwU$mn4ufbxYIeEbJB=5J=lY~Y^ zl;=3C5&i_qgW?aPvWVi=*2GPS20bsv3b&~M4oXa$Q>qhG&?uDX()=iO;4kl5S3nC~SSH7J=+W}(Ds zE9LjAJUZu0ESF>z0U2*U&LvA+Sg)mHmuRe#!=A)ASuXJHFwt==G}A%`(LK2dT_fxX ziCC(Y^)K%+UQk&EHd`z74%cPL+poiU+_=656;Kye=b2RzdJLczxkD}Dp_rGXz5ntcT0{kOvvtJSP`&P~Y0B5?t9`X9V F{0G2wPtpJY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_pike.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_pike.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..d83d6c86f764f9223f84911b6f3e3773bbe00d25 GIT binary patch literal 402 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_producer.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_producer.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..4605e0733abe23b933d8d6e7d820d29173e6efae GIT binary patch literal 1216 zcwPa(1V8%#0RRC20000000brg01B1>00000003?O|NsC0|NsAC_rR$@e4%=S#k&IN z6X7=v=lW9s00000000000001ZoV``sZX!nzeV?x=tu5I^UU-S}kgHf2Y_u3GF4>?E zp=PFFS{}M5-94~qwfXj(o(l%YQMB5~5`vlTu2ZK@ooX&5)s>@I z8jf6gpiCG?dQGE@)g)rYw?<^i4M}GyGjc1;fpW_xxIiS0CbwiY^(oTI${27i!Ez1a z5~iM1v9_CU$mY_qkB!M`T4R|2a-Ih`+e|A~&NgYT^Q$x^rJalzSi&KZh$7CMPu%T~ zNmvpJD6DqUXthNklDnjdHGD!5oj`iRmcdPchd}y+&S{%lPz9n?o)-IvEu=}gAW-fD zN~EZ>JcnbR_3ePJJ&J#xCWb|9e`$C|sM@lRDRC_Abs@2ah_u$m=WU`7po0(4M4IY- z!3Huqqf^p5E{++}d*z|*!8+bjCK*z!4%GuVM*_KgsNzys&r#=v{AjNe{>)KSAR&L0 z2({s3cWA|l*hy@7a-!&-jPg{Nssg&s*d!veI2j3a(1!vl=C#OESAdj?G^4F}b_TOx^a7ua#!eV1R<(9}ou@IPB5e#?IHd58$85GB_gZdpXce z$*kAw{}xW_>VwADaHGplo%{CtaQQF}0b8JarVE-Wymiu8N>z?Jwq)7C5EFYV@Q zF~l#?U#)>$8T^^FdIm@Q4PlFoe_hY5X{DINv{kb>E}t#fef^HAG1rgfGOoq*aO`%4 z*-Q1Hjk8aOqBDSZsjzM@cKmeUG~4fY@5A|WFzU1i%lmfcu0ISHi^+U44eu9=PL8=! zu2bIW6LwfCpK*q*m0B(6UMR6)vsi>r&i&!!FJ(C%ji!IRN>Uj2JXs?s`&`{;*Uv9F z@|J1e!x+bV>;ImR=MGHe>br0KckRJ1=k`?-@=6?oQ^Qv;L1FIT)XTw>XRF8mpc72O z>Gk=a61^FY-ZX-K@1OMA*nMfd8_4n!&^(*~DI9jc3@ix#2G{ImjQ{`u00brg00000 z8UO$ZQUCw|00000`v3p{0RR90|AvXaFd{1)`u(s2njow+f}+4o1^@s60000000000 e00005rT_p2NB{r;0SW*B2+RNg32*=a009c}+D_*H literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_python_interp.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_python_interp.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..4892d1b629ab81dd2614914df2ce46035522ab69 GIT binary patch literal 531 zcwPY$0_^<&0RRC20000000Gkg00i{_0000000061|NsC0|NsAx50Ohvrt}tn5{y6B zx;yY*kN$@M00000000000001ZoUN2iZ<|06hVT4}k$iCujbbP5p|>q82AQueOH!*; ztF2iZR16lZoAlpz0GFhqr-}>nvYL5khSkFY-ho|I8JvIVysn_Av}(?c!l$tSo);~g z>g-Y~IAB%_#Q~y8CSX=kwOW>?%0Qx9)*YXUO11Eut44v&75b?cwZCZjy~K0bsN12z zzRnc1O1E7W9O|;HpNr}UKV?(&xgU)M7DKe-P8hfWrz{e7m;@FM|0IX9>r}5D(CAWS zuXTccp=QF#CyxTwou$q}*Kce8+TAd0H?Ty+!VM$-a^hhC1jMKD^~0@iKaA@As2)aj zKdSYpR-?MRs@3SS8eOnaM7R@U{OWA!PI#e7JmC}5aRZvBacJ`=!cYxs{E24Ws5HfC z($pR9Cc>4!{jbf#JT~|9*sSNVSSij>1{>+?|V)aV0`OzW|D1*Hc;nQU!5yGcmv}ki(&Irt?~@glz&I*+%hfF;tDkSt-Q=x`;;$|_7#5krXlv8Y6`PBKx#<4P0)s+B+)NfxEs znD|p%A;MMzgoPM@RY91R`5}K;5j$kzT0p);G4!MupHTHcnHJ?JxD-_>mzQ~(=8sAC z5k8~%@B#JxQ|low%)6({&&TfE83FzM2CMM1w6fU}$}izThzvz-vv|+Rk<~Li zi}^L@CahLa<&yaTx2F!1<(T$-#Q4kzCS4|lj?y_;5s=5~M(lci(@}b;FcuHnk9&QZ zRx9e8)9{m^vm6(Q+hbmQDz8wgFTx^Pp^~C&@3Nr*d@wefR17q8YTPnDwww_kd&ZRA zx!$ecSC(FB+Sv7&VNUwooO>Q~0{)(PzU4abZtxGhe!=T!yne##9bRwo`a8VEwYP&` zt~3BY@GR%1@3EO}m<;rR4!RD<(zxUDksJ8%w=c&_JCb6J`*)V}(>uBckj5&c?)zup zyO&e|4sOS<_kJq4(YfPI9Mo)dc7A>T`{b70bK5lyn@vlM5tspd@qVJ$+L2J4$nH*4=*CF>_I2&7`}JQZv>!mUwZ1Fq3Aep zlWb4C@daD|Ar4z3_3b_@9ST6}V0cV}$V?5~h~aZ%^xkkxHtK677mht2&IkwZ-*6Xy*=>w$TG?iS+wgvx1A1CBQPiEC3Zv_PNPK6jj+9?W9@1wqU!yY|ZAZH7SxXydi^2&1i>#^};Rg|g zBnQ`?sB49_kX0auawDQ-`K0>OJPIpJj@YrHQ-gc=-QDRn9ZWy0nvbGub1N=3-5jVV>rgyZd{TQ*aF}DLg^>0qw>hlR+ zyI}zjP!RsiJa@*t;J&Z=(@slo*q8@L_YLz1IG1*}swX1dhysH98TwQ0N?(;io@b0k zm|Xq9oz_Zkiy(`tI}5OUHYCh3uF;-6H8-RxxZLrL#BQ&n2tQ$1(RVWZfPQpA9|uRAx}XMa(g^5G+bbB-;0 zvvVuEJzU?<^V=TuC7aVu_I6bHS^Dc%&7Xs@zi(l-UJ!=6XccSr*lBMMbFYl^m=(pn|KdUL3BkYrL0nb?=RfzC3LV{#b2 zG7Ayb#XO=8^)=RWEc+FRIH_Jkv0#Pe@@xg<8uqfNRk>C&+Hh$4f9ZZ35AqV)t0y-OIr>Jq`L zp{D6-%xWf$Xj>H6nM|9kbs<2TPcxTyqt_P5nLEjns`bIz!)6}Cd1!}x2Re6s;<);C zk=2lO=b#r`_Y$a&A=`Zgr5^)Rf?cNktY_z8-F7Ic`~ott$i6HxX!0GpTOq%q{{F{r z3;m@aFZ5rb5Y-kBX!c~SH+fNUW3$2iTXX3hihCD&xW-^W@oHRLwb7wYJsnc=@iVR Ypy2M~@8syC08_4jN3|vw0A1S~;40uyj{pDw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_qt.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_qt.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a239ec5b72534273a9eef72e91f6371d713f0e00 GIT binary patch literal 1528 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 AMgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_qt4.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_qt4.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ddbe8b0e0a37842cc4633dc5a9ff0e96b692849a GIT binary patch literal 15644 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 Za0>-}2?b^A)M1~W1Rg2_g!D^M{(qzmg|Pqt literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_quick_time.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_quick_time.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..27733c23c7c7b5990573fd10b09642397d9a713e GIT binary patch literal 646 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_s_d_l__image.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_s_d_l__image.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8d31433abba8323f295745bcdd7cb1eb6c2f5a81 GIT binary patch literal 1764 zcwSYNc`zFY8^%MNrLJz>;%rx3>!`B{qDzR7jk?y^R2@;)mHJej(IoC+8%l+uTd}N0 z5h_6tVYTjC&>crhs}yY)sq(e``pxV`*^KU5p|2_p1NFFwdjGt6kcg+S z?C;q_)$#nRe%>Xo{vazGTT5sAl79`yO}3v>6&`<4Yr^9S+@%e7W0TxRyK9izoAKg2 zHuK4>fKj^WonmwK$;uXBTQKPaojRbG&CFm19L(i7xRk6fMo;u68BbtWqjYKIm4jgG zYMCosB%jw0y?SYG~^y2p4p)yJi;rB8l+ozPPk zm>R&a&zRT~zm2E5{fVpvbD|E%{Mpj|;uW$|iiN#$kVp@aky87zEWLJw?&<8Qf%k(} z<&Q%pHmdj;SzSi3>V`a1mI+EZ+m)^=lMkONR-%Oz zr*k>I%f*}g=nn?5f3GN+1l3)0Gf*2Yy%+n|Bp7_0j1j>LLaVOr4`d<-nbHb0nP$H| z@@wog550J+V=I@oIZ$)eq|-tKK*by_v=xCsEII)ZT)NxP4BZXff|;_mZhUC%++`3M z$-_Sr=??}|8?_s-&TD0U_UALEd!)zHw>c;qYew1`?|8*ikre1kLJ%wH=G3c-^PSwo zRu#^r{%z1$nZY6^rFJPO#9(SmrwvFiGK6NvflF`1QD~YvjlXX3JvrAqE9C0;9{X}O z?_B(6VN-a{bcXx51(|pK5E8v94v;p)grxo;)n}5l=7$! zOmH88Lk1f)7rWJ}k^TBPMxEQd8DE4~#wBh$W z9d5E3Wq`9jNy@r*8Fx1qj!yDWC3r1Eb9)zHR3*EgqRLIV4b3EyzD~;szX%9qfN#*n zOtp)$#Nn)jc$<87nePD%O1AP;icnE~oFb-OwKK~c0pK;2PmhUx5{K^?pt7QNZ7d=V zPM*wCst%<=)*WU)gJae#Ot9OJYkX13v6UA4vl7dR&-eSCEFP);!MRfZZu66jZCggC z|5eGJm%QiNm#NXuJ{FTQw2oBO;d;=kV@bkcpHiKqtp#SD?4!>d_SAYp-XbU$QC?H} zW`VHcE@lO;b!VuRQsTdmu_teman=?Mk$@YW!&^)p;X3~#cBq>?Ph$)5G_DS*&Ep21 zX_xlds06$_IL(M_(p+RL$J^J-b-2xpmNBt#GH63DP>~+~-E(2PNV#a96;TbeBFf;B zev28aM4VhN5vboGnbBE%8r6^9{vSf0>B9m5gpR!8kaGwkVfto;-MI8zeR~bIT;5a)qq$*f z=})bBvGMyTSL@#W=^sNBfZi%^idrtQ>)lW17UM|;Kyz}}4~lrfi_t^rnD`~f_+Y(W z*%^;Mg3Wp2$KY|0DJ{%lZoDgZB77hC?49g|($m@A6uf^9u=|NG+s1!h~&c&_>;%pljLOl`fxP^TQ4_VwHUi zy!nP_`c!2E)?>_?oK;R<5pylv*G6S78Y(AS?I`8Cx=DViQ0UaxCKW$B+i$IY1bq8O sNfIQw*x%0dK;OhHo#X0KDf8b%0sj(z8UO%P_;UX_M)3CM5b)RKzl3Bn_y7O^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_s_d_l__mixer.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_s_d_l__mixer.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e0e2e8d5e62ddfdfb5cebb7d9fd92552af8ba70e GIT binary patch literal 1764 zcwSYNc{mh^AI4{fWgC=hCrjigx0EAip=^VUA;-uOV;qxXqS+b55L=EJmfXj%gNR%$ zqTEs=<30w3n4!iv+Huvo##X<6&$Ijf@qOO!Kkq;9^L$2tB-^NVWbsv^@pdhbiyWBM+SAVe-%d*Gl-$b4g!hoXH{%(}HN*fHTpyTv~u1E-QSpN5zDV{dnDxTT&? z4}SDgpg%X?rTnuHD_aFL+lG`6zaof<746^4FfH|3Aoyl_I0vIfq{k~z&9>n@ zIyBRgyg!}wXKr7BI<%2gT>qx_=cwjnsJ$+;hS5f7&T-Ml1Vs<>jAFi))0d^!)dWYx=hCAbX4WL zM!g$z6pRNp3$=#cIH?W}cq_W2Sozx9R{Dg9^wN#}t%VW+{TSRMWKD8C^u(>zQ1ukU z*|CR+mYK$qu-8+wJa@*hp*bi0Kj&Nr<6Ph4DNaY~f78!SyWaG2$FLZb8F;KyL!|wD zFtZr0-GNd6QwnMbGAf0c1|-B3Y+B1=wR{ubpn@pcJq(Q5BDzHQAX9wEt%jz-ylyKx zP*b%~uba8=Ra_LE4}_Z+_np2i#k0U5#!f`1?2z^@lCj$ds_lCUxJd5vk%zX=&pgc% zY&vdWG#A!QOUQh7X`AITUi(Ls(G?=%89S+Y5()0|mHds*D+I(KX{)PA+hZcw%xmVN zqZ6P?q~(@l!=9;r3Tf!kF;uVO(i!Q~c9D+o7nK~DG!A~49Va~Q>X(dPS!Eze;Ocrn zY+#~+#vaVUQlj*e*fh7V;6Mt8!^rFfCo1&h_Lj*6G;fb9@e{GpYr-`w!Yy)K$!?d6V58w- zqX%dS|D-8kRc^{{R?25t91}jb5u6%#sIZt&3Kh)z3s8Nisq!MeQ}Xjge|ZxLdK$|; z5zAr|n>Pm#sil9_C>7Ki*J~*GPJW^oQ~N0(Wg-+QYA>H~c>q2c(UjUTI(c9iNYRw1 z3XZ};Ta(f(55^d}DRUGfC8HPBQW%6o+kEE6r`G5Bc=I{7`v)$CTLXN zT3Ki5=@{hqb2fJW%c3^>0jq9P;TzF5D+*yhSHwfCNV4E}Ug_ww$)|O>uT z%nLM0Ze1cXw-sp@XgHg9h-B0N9)_BBT1}Tf6~tFG=_9+pMP|r~gb5nWKQ)%29x3Qt z-ut~260g=$2eYrSq#RxC7?M@hVWNNPr)aXuj?{>`@hh}gMf zuFeRVY;KOk$KyWOnbtZPB$Qu%`6as0_q6wVqHwbU$;~wRqiEf)iJ4J0hh!L(yZP*{ z^`#1VdMMwo)QQL%;NTp!*=_DIN8pUMF1y2mTZKfg_1GD7`pI|`XP7Z=zi93}dtkLN z%M}V=-TjHCF=*C1+%bw!$1MxkJP1`zNpKre-}akFFv}b|zBb4Q{#K;q7iapt)IGrW vHTodmvh4zk{plLIJE`VW-3goq#Rc#mf$jnTJYUxd_$B6tdtX9SzCHf{mrgx@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_s_d_l__net.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_s_d_l__net.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1ade5ec1e04ceb090fe4787d97a9b756cc3d9747 GIT binary patch literal 1740 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_s_w_i_g.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_s_w_i_g.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3f5f9b1862e8392c0f375948b330ae147c56e7ef GIT binary patch literal 1490 zcwPb01ugmj0RRC20000000Kq;00wIS0000000061|NsC0|NsAV2d4R~)S{Rgg&}-D zq|MN1r)FvZ00000000000001ZoUK$%kDD+Mz2{eq*dEAXp{w3{V}nUi6WH>h?kysT z304VSVbdh4_P^I3z$S#WtEy2Bc;_B!B-xKNYpl38o6X$V(+N&=aFI1|cy@ro? z({RaaGKo=Qp7HX+@X?8;6VDIa)svHaF*_a;9ezfuob0U4KKp@%$!=I}vm&dpEki$8 zpE_en)>kIF$;wOgjZD&OvBU1aWbi!`J^OJI!-rp8j@PNUA{@r?%yu*&P9pRzbrv8U zv!(MDt)ehYUhSnC0CqIwMSvxWV`q*`qnC*lv?;exQ4VX|&I<$9tlyNQIn0)#Zz=`~ z+<(lknO~P=5B1Sh{b068U1a_pIhch9MRO6O_vg}LM&UeimgZm@6#yV`MDLWq_d*@@ z(R$<%TqL)< zT^)$5_f1dLp#2}Gw}ftW9lE*-TmJ~+O^hBhuDbkS$I=m zUzs~kow3hq^;#Vi-v=+8L~-Dx7?FSzGjJo{XKu=FVG>6HkL6{^6;UlydDkP5M41^A z6s6J##tbIWJiG}iTo0lrd~MRtb-hJoxdgN z;2XYQ8pLdHL`Sy`T&%JA8g> zolQ`)1|a@OmPaLq(NOh%U%`4uj~n16oMt(FZ;Vj@x@8V6b9AXtjo0Jo959OJ>HR$A zI6|pTD_|^+qnM*8F|1xywwNVzKW)|!S*&5xmF4IoeWgnp2En%QvLLJZ6l{6VdTbdc zj_2d_7G637LH>;$<{@irmoje}&Z3%#VNz|-ZBWuBSGclaPf-cT*LG;fHzzX4Z{=Ox zf{k**x)dqvsJ7T;Tv_)Hk`xj|ks$_&Gsi`n7cdk!N;26N@ytmIk+uZOLSJo-Lh*4r z&`qv4QC28SF)vogj9x2QOd&HHdr23=!Z2Yd6&0dB-?Cc<8Fe(|d-SOGmG@*sb=_Q^ z^`qOl&yq7MVHvFD2F@KTg8xRs`4-M2D`cF5$}+B!as_m!o(pVQE2}Q;_Wp~k^Gwgk zdY!q@HDBeEwyPNJ)_3bT3xZ1#bp83&>Fd_bvE8`lA18LRb&T4#?Q{7l5$x(A$j=Zg zsin9Jc1M7!s23!s3$l@22{}ZDj!sqbwB|v3-xx~nT+1cP<_S=8l~39l8gX;MO8rf7 zo~?}8X8T}i#O!@q-$2|$3Hm5$7n}=SbQDwR6~f>nSm0I{!77CzqTq0Uqy#Doua3I0O#LzSayc2OaK4? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_self_packers.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_self_packers.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7cc9120145c2e9ab325deba0c005d2bcda20d5f3 GIT binary patch literal 511 zcwPbj0Ra900RRC20000000F-M00o2q0000000061|NsC0|NsA3rMhoe=>lg`aQ96CVKc$R1Gq^~j10nP zB0g$~nzYmZ-i6fT91=I4G`eUtZ$I8X?M}f2Pt-YdZEs8=DTRWn$veqGHqE1gqB($S zDh|BoS*O_!k(OnT{GebaEN&rM=p#FD1-fJ!lVnZR;#0i{Q81(_(JKcjb_ztT8)#}% zm)tDm6DTeVllS_-GA-&oW_df4^&%oXb_k^iu|T9{JQ zKP{G7Oxsn_+t{X6>Pi}hA3DL-rL&=X=V^Zw_1rK#KXlVgbhnJidKS~bOE<*1rBUkL zMJaut&Nd-80X1OM3*gHy=iBn$4^uyk6A}dIo~(Y`J5eKex;k|jOgP!H$(THWYPkPZ zIbM;7x@q9wd_v_liEdL8r^NkALWjCD1TVIJfgPrs;*Z2!Lm}B-;mh~nf|9T%iL;_H zOt7uVe9WF)3P`S^m1rjX&&PoU}be B^@RWc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_subversion.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_subversion.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e52d4142634debf75340ec11ea07ade27946e6df GIT binary patch literal 2298 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 AfdBvi literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_tcl_stub.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_tcl_stub.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8c49f66d074225c5ef82b19f3a701dad48de5844 GIT binary patch literal 1984 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 YlNTD&dd|sR(@aBLdE^CbJUB1;Z%&M?TmS$7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_threads.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_threads.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..9db6d23b4052b36985d40b5a3ecb75f4b05113c8 GIT binary patch literal 1376 zcwPZu1)ur=0RRC20000000kfb024j{0000000061|NsC0|Ns9>N-lBG*LZA>8Z~p{ zb>xx^tJ5z400000000000001ZoV{3iZ{k)E|39B%1d&RrU?6GLCRJ5AV1l(=vP}*t zs%7k#wH0Gq_9HA><-2#D4}2ST6*Uq8{O0`4@n&d47ZlS9VB;EFn}9(m@i&%30-z?r zmrpbUY-{an{vO=d@M*9QDA{mlZDb|z>e{xuvz)K+uKAX>wvku!k%~~HfZ>e)BB;tl z68Moi74KwKoQn#uzix$&lw~Cgs=SmI!<2!sFwr{#+kj~dJm1y-$@4sl^XscvVXUkh zlZQvK!l1ym%yE=ec`;kcHCdLKid?3bGMz4eL{#dGEL3Sr-Z~4J`!%B(@pB;9I-uEso5|;{orAFk$QVa_tHuzmD`As&po-!c zekJ%$2e1OdvIPx&u7F@f*<8QbDnHf?SUkj6R_BIgU>~6vi>+g%S$&!PmrURfbecsGId3c9=T@ZR!4({_smR=ys0+NR1 z>O7a{KNAETLiQxci3u;*|3k6k7NoF?xx+7)SUHe8s0?xPD7?igF&~I?N)f z&uNV(6?@~IR_vFj_>f*c&DTop&`=oZ^P_e;%NNbPC{6GAy=RaYTV}7_Ra%dhW4ODh zSLIbytZ{?JjU*#0)mJh$w*eF-OqSi%Q#ZNm+pr448DHOMEO#vmBwWZq!y8)H99Xk8 zj~E<^q=0MAyJZlzO8X=h5bQT=*JiskQnRe~Y|V0#F*Mm9xbSjJg`RcYSl!@80zLH-nyT4z7a!HD}U| z-8TAUFu1RR++N&o4_Djx;3hf)K>F+n&xa%W-sLNp!<+yc9X(>k)-7OF^f`NO%@HG i@3F+yxpIn8gOiLpp@sC18J{yNOIXoK&i(`b0bY_+*`lfd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_unix_commands.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_unix_commands.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8ffd0c0c69036cae700a9e4846b892e9bed4fca7 GIT binary patch literal 320 zcwS>*WME_f0}#cW&j988hl1l8L6PyfiVV{G4xDE%IKJU`QQss6Bv3JD>p9=NW&;7% z2YdYug(43uIx88Yz#ktL`p>+z{|zgOSeo2;_rM0HsH6ZP}va(52o&8afD z{DXC_$fCJby!u{TFZQ*cFI1AdGCi<)!rq7J4}$h3>5FD)o=e!0X(_YL{=QKEgek2z z6}xJ8ThIB<(()!q%+&SggefN9-)C%9XILHA*GfsrYH~k5aXfEXjJ?i=m-nu1n^^etiRIRBAB@+n zJ3r<1bN8Gh$8VV#t&4f~W8INkMnJ}8A#S(NJ2t((7oD1X;K+t=x6E%cGkxMe5%lF5 E0Cy~t!TE=b~%u(b=72WMvbboZIQjb4#+(&f>ZQ1Z#YAv{V24MQq; z9FaI7ql|}RA`-?Ll~=@{GBSz7FkbTLi7aTs=_q6=p$Q`?6NFC`ND8O2Xxt#g-mFBi z00g;S$F*U%KX5v@gOVa96B?#cOJUdi&WWcEi6moWIb~5cZ`tI(9V>E)hflEPZ5`t=^Ww`>|Y4-*l zYuK?}4>_`sMe zDoCt?;+c!I4iQJ%tvm0aPqlXc_O|cT?SB1?FcED0=(U`yLF>x$wxE{@ozK~rgfx1} z=o8Cz98}@Adv$X6aP5PhjgoS(2Q+~Hvq(sPXBp@ksh}UNh=45!t^|WDi~}m zbr`Otxe)o4tr|Hd?r%#);i};9>X_8W2pG}ec}bHo_%?%ZqGVz>_S~xRZJxvnJ_b!C z>-Gqg3c(Iy#0O%WJ##osTJBJu*g)4+;!}JJ;&k_e~QCXbX)>N10?QDhiQnqUQC>9;Vlz z25!z{G=a)0gPu>y?y9~;XqdoFugG&0FQZ1q?$(^XZ?v9O2zf=Wv?=KdqGARqAwgy2 zQpgfW!BjNhB*+dN`yPeBe&4m7tD0+FS@-0&<+ra}y&kE4`Ro1HpQ;9b=vghdeSJx) zuPx`(%U#RAM#~AYdY*L%%(d=%tu|2h2)`<+HjjXFItAnQqcuMO)`xAZH-PoB1uw}( zV)DeGvQR)=AS)?>&Icqfn7N}}=8&&q94Kf~mF9N)uGMN^*C1QSw)Qt`P06nC_R)1k zW%KJ709rR24U;10?;3Buvv>KOy^BM8dR?-DwXC}6MiXgo@*K4&|g59w1rs28oye=)IQO1?T! zRJ1l%TekTaTkx*ref8paZyDU4zt#D!?Q|rraiUa^rKwQUviUqt1dNMMG%&p!BP4B9 za!2-fs^yC&v1q}QIGSNcGkxC_0F8!)M6Z+~AXMie4cNhKXWv+m2?@EC_`62#Km%3L z7&|%^EkoU=cxzXiS(-F)Ei7fBTGk61*M%ZaCP_TY^9wpmHV5OMpnO9+(eocZYy>uk zkUz5!=RYbm2DYdr2Q#L0fvp~1Dv-G#2gmR-g|h0)^^Nr~Y!6)5a(o;!+{Z^Ro(LFF z*yH03*MH?G5;PHaz|)7%nAsmOMlQde2KUX0aDP4#?%NaLzB>`_FDJtN z^+dS8oe1~$6X9N7d^PEP&BA&9RFl1s%WoD-oEak+^i*zk`fXD64^NF1?BJ@_m&QPt zCH3cyB~8tjjxdIrf=UC~bF)O1cJoQ%Nso;QOU=lPZzb)L95qX0ru?3fX4uZv+*@qr z3YC3>TD6%H^2daE4CyJ_00(?N=*gI?$FrH?_FHGbWpw@+{m{7`=B2fzNIYQDjyd^Iq?6?Q z|NNN*k?NFT_$VxWNhm)4&(%wx>X*JYxO806U|#;~g6{<-rI%&+wZFp!}K hH(U$0T&rWk>Ubr^(RK%_TnWo26vPyF{{ZdQ%F^l~chvv@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_wget.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_wget.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e8b83794080edc2226234e190ee3e6fdd7886042 GIT binary patch literal 446 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_x11.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_x11.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a2838b84583615a3690817cce15a5f034f3a5ebf GIT binary patch literal 3940 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 m(-u(_V8^# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_find_x_m_l_r_p_c.cmake.i b/CMakeLua/.hg/store/data/_modules/_find_x_m_l_r_p_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e05bacf45fb565adce04d0a9a83ef074aa96795d GIT binary patch literal 1436 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 RG8nlS7}&o74VeJu0033q7H9wf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_d_b.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_d_b.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..29689e06e9575bfa0677bf6bfa9d00d958981318 GIT binary patch literal 1165 zcwS>*WME_f1Ln^R44m&EY=+$bP{8%4V@Axmsu#Ceb{aEIa*2+Zox79)2~^D48=9N{ z$W7qiyLiK0F1wbTIyilm{I4RRgU_1!7?>_)hiIAHcw8a6`SrVX9~WN!y1o3ES&K^V zmALAu0&m`(vH5)F%;wXaIz~?$>{+Au)mY~X@=WpT+5MX>W~GheOAW?+g{R3gM3y`^ z%&bb^ctXK!_MwbR_ez_DI}Gfsgd*H|dU%>-b{nhacpb0gGRr!s(s^UXk~1rrw^v&` zC%*G}eLQc{*Sjm&CO%c#+|t=>Y&j!}um5C|m!q)ilsU{+nnxxon7-iCS{z^P!K1;y za^s<8#TxUA6Xwlc^-Mzg?b?$Eb5@pZPSDZ~$a`*+yC6VBcuo1+Chg9N#hxn!1Pl`M zPVHLkb9V6$nW&>4bL`Ir+`qW+;f7^A+q-z3_+B@z*m36KHqir-j%J4sZA|a65#dZ- z(GsLn9N%nG`|61Fp5?U>Nhds?PTlxDKy$vS>ej6V%L9zLYLEC%yu7ogaK^Q*At#KV zM5%}x%~E}NX4;lX54XLrbDkMEXFBKi89S1#=WEuMAGFXt&b*oZ?iQY@X?!zmuHIGt zw{^o0W222PI^I51&3}FHt+vWEHP2}E&*cxFW|{1n^EGXI``?5jV?KQsdCk*ZdM+%t z3UbTTzdrT4f898H;p_zuci8XZTpVgKC)Q!AVEF$1%!f>q@1CVdES4{W3X?sz4Ry?7rJmtREr&bfQ)$x44Z`r=; zSbE?4k@mi2AuO%CCUOh#FB9fzdt6}pR(IXGdAyAOlp+}v&K3W&?LB5+pVf5Z=jV$j zFW2st^$$xld2zQ#tn`prmg#;;p0@oipKF_&KI^NpE}#GF`rhvsv#h!$Ho5)aQ7>5R zJ8M-$;y>G(1!ZQ-9`qGU?~v5_@xM{_KhvL!vMaZ`?taauljjk~5iT8Pqd)iUvl`*g zhqp!U=+b`tyZV04&!5?MewesKYucJ#+s&RF!yfbOMNMn8mBg!~>%-qKzI`?0()-@9 z>wEuQEs)Wj{`vM#rCo7)zg6Sq-u^x-ZL5CX{p_sT6P96bh1LanZ#!QYcrn}A8U#i#ovb?8g>%Vu=KkuD>IX~c6 zxY7StZ}z!7>vy^5HHTGB=CxJDg~Ea*cc#x||C~`+_NAO<{jtg6&kq)SSkfamdtU65 zVzzp*dg-&03R3O$;>tgS&&R3XgB2D)AjQDIu?1QZ{00%ABIDEI_qqW`#5h~)8C<_< dgiiKsmVd&40$5dn_%M*c$OSY&2#7a;IRLfOBG>=` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_f_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_f_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b36912d58fac0b0435951145dd86a9a7fac4d597 GIT binary patch literal 1164 zcwPaF1atcU0RRC20000000Z&>014&*00000003?O|NsC0|Ns9{e=0fgX{D!zuXXyb zK^+EHBimg700000000000001ZoV8W&Z`(Ey{jR^_&;)2Qr1qC#AG)o8V@r)u{|I7d zO)w7zEuA7FGO3Z2Rio(s_B~3n<0J^MbqiqFB=7FsySqpFh~}BJgij%iBb}1Vm?EhX zZSQ^{TS~`NT29DmN^wlng4HZ$#UG6*GK%%O(2A9_o#2Q<5g#0RSjzww01=4Y>XO!_ zMV|RqImTK!qjS<5uH6jjN_i-|wT{O_ zALB5sYpDcgh+2Fq0W`zDGaFXY54S~knea1;^D;q?86DfYOscyx;Itg~%pP>pGL#A& zMDkR3kNDTZ!e^vouOrx_8*J;r?J8tQlYLvKvyaiuax^@@>RsLL_tErvGC1@4NFgge z^CD0hwVAE2FPG}Ro>>ds1Pv$s(e)r)4u)4}RAr3ncXz;Z&A^)taw6au5peT55{g)D zq|s{ao3s%|iq)=7l`iuH{;@WOEyPeu#iMn)=xi$QN@RKWt}rO*%dahL)5yfjY*orU zL32ITPMx}si{M~{7(*jt`V4C)fZ?L%2fkkV0? zsjYNUtDbYx;dE|$iiGr~7t0nJx!m)Vm(d z>vS#Da&{d>!<%rnYffM1OTha%F_sb|WL!>|X|38(uswt?A~tf%$&hENq3kaBuIMEuOu`4W|QP zDyc5DarVI&*8%6bu&xpt-W%%0?-!rK+vRB5?~Rt@UjJe^2^Wjm?Q9;77mI$0OQT%B zd7EeKaMY~f!`4Er3mOY0?$|6A;e+UYKKRF2UQMU-KVCH%M7K-w(%_oOwXf94qc@AZ z0(xV(H?PtED)Og{a=H5HNB_MO)4!qgpG5xZ?7m0lk3`-|90CsxbsaqDI5<%5%glpW zI6pb~8=^Op>6_DF7(FSY2h+1_d00000 z8UO$Yt^fc400000`v3p{0RR90{{{;tw@vjMp)2mDWz9Of5U=A|`2YX_0000000000 e00005Apigcy#N3J0SW*B2nqlI2&e!6009bK^)Gt> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_g_a.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_g_a.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e9bc5734473f7ed286289e0a8d0d8df9dd3f9e23 GIT binary patch literal 1167 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 zJO?g*2ehz{&%GJ|00000000000000000n{o00uJv0003B000QK000SU000013SM&> ATL1t6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_manipulator.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_manipulator.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..946f5ae0499825b240955016885ec07aa5c3311f GIT binary patch literal 1185 zcwPaa1YY|90RRC20000000ajB01DXv00000003?O|NsC0|Ns9%1Je5%kqA-Q(oPUe zG7!FF$}E`x00000000000001ZoW)gZkJ?5Q{m!qr%C3~9+Q65pANq(y!0e*%5|5^< zQlY`V;1OoVof+exDE;j{V;h!5LY0z6kr3E3cg{Wc+;fK;n#Ix*KB+K{^qO4E)RijI zcJl+-Ogg5_azswk8p||FSxrM${9r^HQ>b^TR;-+D)NUvc;n|XhwG3bZ5P`D?ozX6{ z$dh7Ic}(^vb~?%uZqUXt@HY_4bcYa}Pa6Du~a!rak;;2r- z`a&#wq!QgyuGMQtktXSAt&L~XIF*kaB1v>!a16C_Mkl2AT!b0Yx$;o)x$l^imy z4%GuH2?cWbqn>~V^UQTtC<@*h_49a-wL646{U-ssg%8 z*~B8Xhztdq;*SC<;&8^T~EPRi`B#WRiL$QO4rP|yBr{Z{G_UxOAp;X`? zqD$Ys;9nREpS}*gkFY-wN~RFTX@m8mgU3=C9%ZlZX!@}1_ufrflc(}+&>Hr}^L}eK znk>7c`LJ{E{j!G5_}-gBY1C>CzTQNtZPCNaR2MM4VY@%?1j|lua!+~8(C0WMzM2@7 zu>l#Jyv0$3d8Y|QtoG7qwevFWg^^-)6f)OY5+Od+#;}E53Nv}MMibhv{}wsrYly$(mqPS9=5`?G>hg}I#0yWQR&!SpC)t^U7KrrS^LLF;|698Ut|DPTX- z4b7EauVpAj@-uzlsr!=N1W!$f^A%J?Pvr`eY)Bg~=MHDbs9Ub4l;)%DDpW`g-o zPOs&I%~39HjcxggOScTeYDbt{s|pE*E<~Z4?iGKE4m0mi$TLT!R)ez;?I*_4M(r)wO;pHg)PKfzb@*?dmZ{Im;yT( zcD@|G_Ag;teGUKs000CB0000002%-Q33vbi000000Q&#{00960|Nrp0wvL&BeNBvw zdo2c#BB17a=zahI0000000000000001#tiX1|$Fg009aB00^T100~n70003Bpb|De literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_particle.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_particle.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..43e8a83f457a33d1a1953464857bb72caac07b5e GIT binary patch literal 1173 zcwS>*WME_f1Lofh3|w^(Hbd@zD9HDyJ(}m{G;eCUt43r@pRH!yBt8ZtP%&q3Xm0;4 zH-Ufe;tfyD6ApnPT6iaEIz<`23byy-~P722R6;JA-{?m@lHBI--MkIpzDXDyq?X_ip9M_prL zMC{FplJ0xoi!1!G=;rOZ;MB{1tnCi7iGp%Khhkf)z%=fSCp=VlwZ^Qz&gaB?$#Ds9 z`elo${)R4-UhFwxc;S@f+=hF}iD?ecyB5AVXm!U?%g`Z0eii#F6#$7f2z z47^ra9yC*5#nJhQePe*MjUZok&(XL`tm^7rZ6_4GTUKf{M0Kf&tyDej5DH?=8 zmuWkgmONQ0_~wXMf8Ij3(^H?{%2AxIr{}#YOL19?lE@#OvdpH^ykvc?tdp!?CuBVg zXu7~-WLzCGX?FC&-4O--O)A`-$tuVA^rmGMyIX|zEk7ey8l0*j`c&bN_g&kQ`vt^m ze_18SUi`ZwLG9tK?r*ZMU4%4@b}oMTcZccBueWOJufDIHu|=)B`|`UCyEk_>CMgL? z-P@=$Wm(qQMs2?(x5Q#=gx<(3Fwgn^T(zbP2DzBCPOr<-^kI!{@T@%(A_*u7r7B|0~7~*QeCw|9v<={@mV^ zuV3H%`Lz10mCRbJy6vX#&v*S0eUN4KzO1_b=Vj&8xWBuLTW;&Wb$q>ezm$K?A-x6r z4)LCu+NUJxF>z0;f5cYb{yj$FI)2S$$wq2JeZNHPin#B;}dLj=Ga0B7zW761SM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_producer.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_producer.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a1ae4dedea65597aedf3cfe4d123b1fba37be430 GIT binary patch literal 1176 zcwPaR1ZVpI0RRC20000000aI201A=-00000003?O|NsC0|Ns9Kn)1(%vq-cd=PjI> z<%O(+G{GJK00000000000001ZoV`_TkJ?5M{_bBf%AFLhy1=1tasxQgddlQK@nMKv0-K?JVXOB289@5bOXY2 zBNiE{Lbp(8_1ZzCK{|-F;cD8a_9=%*Q(crbhFUqJQ_u%2-3;hLF_b-8hkM8*h6vkZ z{Xm_Bf^u;v7rb=U!@YRGCM?oux${Ds2PmXVs+Q_rh$*261wV>?mf{VM zaTJ%m6oO_*y>Kc)Xa<>?11ibGt%}?hx;>+~t(z&6~_nqaS~%VJn&= z7U4FRX++d>+3hlQkJiM|AxYIYGK3Fw+V<#RSk_1N@?r>rB~Y91EA4Kv8E8aIJg~;D zY6JXC*qxcS(n+nl&Phksr4h=KYWHuSyEg1~0=p}xKctOK(Y)m%mP~e1-Y@30eZq{v zKXasuV2d%!PN+&$fHbVOHyBO(n^|``Y+V=${7Y&NfI}Dbd+kqu{d5jNp`Xv}&)@6U zX|U=0gYIg)EQ_cCH;dI^F#643G~{_V|4*TC{i!$UzV|n?xlaj7yw7k2E2ZODhEk+I z!UwFUs56=k5k+*-;(YU3=@;Oy&RA}ZFvrfoh&}SXW6Oh!_S~9IO8cFjUaJRNP@i-w zJXEiAsa9@e?F&;#HPgn~$HTA;c$W(63UR>GLHY3e@V$S(83(=Ycr)qthNG#!UN7z! zOMkLn_i|b~<$Bf4zd%Q(>Y04dT2lKOCPIlFn)TX$lw){O_EE4 ztR`9Cd#x|rg}}P#PAKU7e)|e*@w~=VZh!cmzZ3>p z0Pj)p-kHWPci}DkW$Pb*f$(Y?yt?s5gD*DLC5H=_!40LmfOzjO2-2VSUxMoW4bnDa zjsO4v00aI2000008UO$ZJ^%m!00000`v3p{0RR90|Ma1{2CMjqWtCa@0ce!p&l4uJ q^Z)<=000000000000005UjP6G3jhEB0SW*B2zmej2_ygj009buha@!s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_shadow.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_shadow.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..927b3ffabce52149ec5f54a112a1395f68764f17 GIT binary patch literal 1172 zcwS>*WME_f1Lj{03|wIlHbd@zC^+@xj7p68JdV|sbKNq0UL3c~_kX~E1S;n24ZWRr z+fAVMc{ooJ^G0s>D$QRPyct{< z;}V;IN>SSLGiPQRuU4LwdP&Hx)u6A$OD|cYHN^>x*SuBn^nKIm`~l%HX3i{O-ctYy27$ zqwmf;Y&idGO-%ETap<4H@Ei7D4j12y)KdcwC9}X`ki)Z9^t2)Z}yh%S>#l7X3L!|{4Z3*PCRw4Wt2M; zzV7s_z$wpK>^Cpw@;D)%?sWHaUqMun+BG4*_&F=sl^z?3FMHeI$7MECL&xtJlk>-g z4PF+asqeBTv@Q4BBgDUl*V`oee&y1$%%PW3eZ6z_6TCDQd{`VIYB~RxVc(@))4dYf zUL0L6TPEJs-&RTx4vgD$)Prmr$i|w!PeZ4DuyP(Qga!%#i zB@-m(S2}9++MPZ2eU|svfb;Ja&e~O&yzI|sdzfUf%Wkn&vcaai-0}5oaW@vQvB)ZO z9pAI9MJX&hb4yg^qicseHr@#ee`(}jV0Z1Xl*hI_7($99CJ>MfQ8&&b1dq(A?&A;3X z^WO@G@%)c83adZ4QhZiGZ%>Ee51adO74+&=dPhy4#H}v#K#>IS5R9EFIPvzi9ui4I{jKn zaZdie>Rh>;R=$m&`Oj*vJM&Cp4RfN_%5_@`%ij0AZs6a!VVzL+Jq zxi77+SN*s9qRO1}i+5*;#hrWpSLpQ8nEgAiE0-CVp0_xB&FO0KE)lOgn`fRsyjQ2* z>c{rT82{y)?f+d*5qM;FGFv$(?Z&+v_5V9wpLo5nymP`|-f#2u4}N}CwDZry>i>JE z-k3h+d#Lt@v#b7060O+8u=bDQzXt)I55_${*tjbGy+X&Kn=MCB#B5 kasMR&_P|e^C#=5wW;vZlR0Ce6YTL1t6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_sim.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_sim.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..d05f08269ca4255aaa657342122fc087a573329f GIT binary patch literal 1166 zcwS>*WME_f1LiLb3|u@AHbd@zC|GiQ_npr%9v;SvtvpuxnyyxUdn|wf2~^D48=9Mc z+f3l!yZFKkCKJh^-={b5S8G1FRg`okzhh46K^uuJC0!jJOWcCOdKdkETdi@jZ?evT zZF#Ibv!C3x{eI`J^RJd^E4Q@xEA}YQo!~vwE$Ha2d$rEnru41cA~X5&lm|1Ov92~q zIy&7=MAOwue@oKSobAO=ROc5i3) zN(tLuSMWJfU){7LUN88t(zcRk{9c+ zn$7e59$;70p>sL(tl_0ol5;2CD|(ye5q`?~=G@Xb!HSkix8B@h)#_v^`WfJVpt$A}cTDC+&AM?9hXgomC1(TE>aDxL&MDnA~;fkg2ji|yMsEF*vbT4JtlG`}V2cd@8M%_nMpL+CT>gZV_y4$l z=urA1<@L%poM$G-`{%_gInRFc+lpWR@W&Ec$^E3L?p`C;pH52nXKb`_~)aUgX}WFq?6Qr}=9^O|4_-sf>gFlqwEsp4jXd=Q2l$B`?m$NpSUA zlc=Zrf}<0c+;~$R`qHTTp?qfY4JW~^aW+xg+rO!OTIVv&JfEw1k=?&5hs^Hw?7e2T z^h{F8jmdAXtz_T9%jc$HWMH(2e?ytILCn=Z2d=-4XAoPk?TmD1UWNU3iLdvoHRo<& z|DwF1nmc#tY^ifNll^;z zdRx7|q|_2 zoA>Va+njxJY>WS$O^H;`-FWTc*$k6^svO^QU(Km!G_?9_GUMBQ_SZ*C8Lmh@F`j#& z_mZcQvgW4uFPXPHUvl_x*TG-m|9WSE{Vw%i)QXZ@Zhm!hd-7&JPqcKLjsDt~sXJ!f zOuVg=)B31j;rrRT_YNQ9UGAKywNmVs#qWfkR}JMeH>?wiwv%{ubba{y=G$LW>|Xd^ zyZrA#mJN5<>JMfyY?rTQ1w2yHG|!NGJ3+Q@mTAq6D2)o&;DtwIXJ6H-5O~P%Ua$K4 z_0O80xBt)L`E*;oGPCOJk6XuIzxf#L7RUZq^UrPfSNlW%1P9H$Q}cc8|9jo9=5PF^ zw6mVI?!VjH{w?>kWUb!IoZkIe;rY3V4e`(JaW+4_`EkC;-dShk=awH^ynO1H#Ok`0 z=NtdaJTl{G6g<;bFTd=wx}>*x4y?2Q0x1Rtjl^L1|)4lq(in+hNx8~h3 eH;(xX;Z}+aD1g-fh%W*ej9fqi)PVRHm;(T|lq+fg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_terrain.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_terrain.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b6bd7f2c470b3fb31053cffaf8f2a1800a8236b0 GIT binary patch literal 1168 zcwPaJ1aJEQ0RRC20000000Z^_018+D00000003?O|NsC0|NsBXFEgUg-!)QVP|Vjs z5wmJF?2KCg00000000000001ZoV`_1Z`w!@e)q2!HIbT}Qg}JtL$6nff=N&bMBrR6 zI!?i&+L3N^UXKQ5k;A_gij%iBb}1Vn1)g% z+TQ*|wv>*kw49LBl)_BYg4H}`#pgy88O3^CXvNCePH;q_h!0F2)-r$vKm=m9x}7>#yBeh7sS~fo9q+;t&DM8bX>&)FbXn6<+Y6Wy3Ml+htc#pa z{TN4S-Ag4fL-gWP37{GF%xqXmKin4GWx~%W&dUTGGZ@>tOsd;6;IuXFE4$ZCTcK2_ zK_riL_n`h-Son-}>~#cx#KwS7*y`!++GOaHJ-5^Oc@)lOz0qVj9=)6OW;YLw!|C;8 zaOUNbLS=mBHK8!>x*8(?>@w3SY3)pJfdSR*5pg<#ijA0KVG>$bmdeeTFJoYgmqd1)UIV)*ZpvHB}c zz0ibeWJHV!b%Nn&GFV>qqKlKK2SHya42XQd9KXlmmT{KYJ1(`oeA|C$T}+$DK#e9ipY%k1Rq z`;EL9dY6bfxU~Lz{XZ@+m#bfX_TM{&eOra!wF5t}&TrX-2Yb+N0d^oblzwn8_259< z&-W0_!|3Gk9~!-wOkbP^qv2Cs_27Sc^G}iMX}Ftk4!m$O`1g>(7g@GWXaE2J00Z^_ z000008UO$Z5C8xG00000`v3p{0RR90|4bZ;aK)8(b0=l}o!0SW*B2uc6|2=V{`009at@-ct_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_text.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_text.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..199e565ce0cad9257f7b305686c74ac74e536b88 GIT binary patch literal 1161 zcwS>*WME_f1LpS(44nTUY=+$bP{4kD!MDDpvzPZJwz&V9{^G+EF6WmFNT6cQ-q76s zTW$jX-o+c9nmc9jt^?Co$zL)PVk~YyH2Z*w<5H(?+hePZcfWflCEs=F{yoY41$Vx_ zbH21ph^abm-ptBpH=i;!xkN4SSLh^nYdc72;ZTbmbj}=ECPz z`jShp&3Q0GIJCv(>tUA_vhz6Fb=4jzoIH58vq;hCOmN~W&Iek~lRM4?rD$Ym&hZKm zJf`Fy%Ng|X3g7ofe6zQBEPi^DJNMm!33@BtR;4R0Yf%!}BmP_GsMz{KiRqg~n#w#j z7icaOvCA&}e*t%P7&aUIZ>HND^T2JY!61W(A*Y?$Z z5wTh~s}$LZ_6Mrn+lorh_INyUQ7hZEgY%F7!8DT^`}gO<)2AIQv3wc7*(*s%JZ`hd zlx3V}CocC{x=Y)sh)yrNh^oZPU+u-y()8*qrGdA6mi$r)AZ?!&Bs8enkTKQSc*yP6F^`<$lnMay# zKQrp>NXy$EJMG=Yi3LwoB7eEHeVDi>w_j#^YW)>`c_zmVELopxmtNL2JKf#UXnpOn zYi>h4$8O`xVOA?cuUo!6AtkX;N3-PryG)JE*B-7fk1DTw%o;t>VuX>(b<0yW^({n@lKKHhgJsIcMzFboB@6zS$uL;~z zU4Cz4zj{rN6Lq_`&!9ELICoBML0jsf-ysp<9nAA&o*sU`UH;G2G?TZb?z0QGms`*I z@%n4hR*pX(tL~nDxj^Ik>bz&HRz{)cMVhZoa=LCH=Jn>nn(P0XZ`IlT-hboF^2-nU z-$wx*AX1r`ef8F>-!EUCtYy_{csE06R`m;ev7eXs1?~L%(*0lFmoHm;|7x%OuP-` zzovvgp8vBa?Ag!A_1RDZR!{(e6axdtQD`af8$^JLi*WME_f1LjW*3|vAGHbd@zD6rjgDQ?=s1%dBU-4ccWd^*q}w=0nW2~^D48+yA> z%3Yv#{(6nd@J~W(AF7^mPKrKc@J6XvSln8}WyQ>uiBUXvC%=Kj`Umgy~D!7Dg3an7PytSdg8 z>o93^cptnr!1DH&bqB-`&g@Lo722R6;JDL$?m@fFA?m8jlYE}^?B(0cGJC_CzbvXk zt5;iaJziDb%+w<$zL5NvovKDYMCEMxU=&d zm)lBHb&F>%qKbik6~wZ-)ej{$Z?y0zDkxqQ(ZRFHWkwd$4$q56l(vdUazt@07YgZ^ zctR+=VTz4u^WGbYbH%c@*i^1N%UAUBQPGktu_P}Ir-S}U^VM!VF#WbTXEb*l{-aub+f+L@YpoL!Y%2|i=>s?wzmX-t$6ju(LA(0D3D)i&y~B2|8XZ? zOkco!P4K6A6T{^8rL_Q<=!XzE8iw04fU1i*hW(Q6UUmxV$Tw4`{D{p^|E;ne&%ddP zvR`@KbaWPa-DJ3wH7jnt{i}8AZ-4$hE9~8{zN?Z!#%A&T?D{Vci|4u=j6at%{r%O~ z8GGLS+WRfZK;J7Y;q}c$*I)mCcRs6W&#~{@Sg+5wKK!k^-gf3MmPmz~M(qd!RjZw4~g}qzny8iw&h$(QI)QI zj^E^qp7*A%FAj8;161~Sx0LR*cyKb%=1<}Od-3boANy5rklSYc z{qMy6QD>)Z-f17R)=E-V?y1$&Tw7=NWuImyU5E;L%hl%8sXOcHsd|C?`RV@^U%#xd z`Tx0I*X_{iZkz49ipsCfEiEo=XI#C&c1g>xykGrK>u!cCneYE|=Kj_d`?hYZSN$P> z>EZW|e-oc*ADnz=Z}HS>{#D=3mHesse(%iu`!>J2o5UA?>~6dMzSh)d_8fniw`@}@ zm{MP!=Qt)`x}WvrZ}#dB7EG|R0tloS7&xv#3xeMu0#srI+|c`aQ0d0v6DQ^f-rFGR b!tL#OodE@~>I3mvAcK($Xn+zB9|3a!8DA9V literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findosg_viewer.cmake.i b/CMakeLua/.hg/store/data/_modules/_findosg_viewer.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..14eb87dda44af6b2991fc5abaf64dcaecbdb3613 GIT binary patch literal 1167 zcwPaI1aSKR0RRC20000000Z>^017$)00000003?O|NsC0|NsBKRI#sTW43FN*^J5u zl*l`)nr|!s00000000000001ZoV`_TZ{kJ}{_bBfx+Y`cq0{xZ_gUM#geD)FwkIL5XJ?+7dFGkrgl4IA=05gnL3tYrWTfC$8HbU~}a zB2SJ(jy&pY`Lg0`ZTt)Ub#xoq5BxL3qT5WI~EL=J=e1 z^^I8eNHw~pQmeO)VolOfqK&VnwQCs7x6>EtDU!150BBLS`rs;sr zayF^REj%NEq4-ch#hi#Da}`L&>C(ETrWY_J6j1oHSmha? z`!NoZs+Uq=hUmqo5lsoOx5tVT{7g!p4##BFsUEBO9i-U@4@TYLO)p&Z29paaQwAg3z3}y?=!FexK+q|o z;O4a@6tP-Mqt(h2w-!c<<(9fq7g-GdNE^cz0;%NV(OPY=oydm*S>CnTl<6#!+#WvonLa| z6(&@zA7V_W74!$A-r~A5yF7b#3Ur(;AoAW*{GNuR+b{blcz->x9=|uQqw%5__B%Jj zS(UYcTTE~I{lTx{bW2fi{_4u;^h@`u^C?_hPeNc;5MSwpZj??E8A*}-NO#(+PolpRdJp28BO$O<0le{#$dU(z4b@sRW zjJyy!R|whPQvbQ^kE_e%@`vyJ_f}i4Deqrt|C?3$niY7m0FC@1{@_sa!CvFRfvR8b zAee@;v!lN*dNUfoIS&T?XIkpu_}OhgN1|u3?!zg-!cp&^;st*JY?4Io000001N8s^ z0000Q000R0000000002{00000|NsC0Yl%x8-E^W{pIY`O`RgO>4l>kF0000000000 h00000000F$000Hr000013IG5IHUIz!+yDRo0SayYH-7*C literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_findwx_widgets.cmake.i b/CMakeLua/.hg/store/data/_modules/_findwx_widgets.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..c758780db7dd02a69275c58f8001392741c02a64 GIT binary patch literal 11461 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�_;Z0_GeZd&VZRC3ovsBOBfX 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 X_#jVrkC6B<*Pviee?J97O)f3~^usMB literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_install_required_system_libraries.cmake.i b/CMakeLua/.hg/store/data/_modules/_install_required_system_libraries.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..2aa56e8d224647d841b4216dfe61561b52e22278 GIT binary patch literal 1324 zcwPZ41=IQf0RRC20000000is+02C7d0000000061|NsC0|NsBQ16brMp!;EA}a!T#zC5_VTC`V zOyb^Ld^6R#1^YZigB7Ut!U%oWjqA?{2WvF&=?c_{#UKoReWk(mX9ekAYT3He?{o9! z!%PEB3^BqHsI$!n4QzufIfMhs3IRb3Ng$~Xjb) z5cGm0idTM>2B8v*4ZKxZCEc7^v;z0OKHv|E#5%><7%rfMK zv2bAxe=+!nITgY0#0q2$`~Y1b-JbDc2$HwN$yT8(V^XvfO+rmIo;6v;PlW(*R4Ok4 z!!MZnA}>ml{rPlUx1OtqT|tzj38atN!N42==5XTf*tB!0gN)Ma>C+1l%4H9ssXo&# z?1htfbFbRBsDG{*k8er2n2UwI@1w(mkV(bAUWo^UEX}@foYV`)0Ygl#BhXY-GhjQ$ z$>#d=V8dSA?bj=1?fd->(5MU*RyAW%@*;Z}e$1s|cbA4OE)5GVjZ&7*(3CjfqT5s?IUBiEi1>L^qM4&Y@aJi3Mw}n;<_5ZlN(|$O!#aM+pRL8fvp)HrzVrqX^P571TSuP(bi?MHUm|Ed- zIa02E(-V#-H2QO(DB|Dac#s5CBnP3nYTh}j<*1WK)fj7&dNhaBrCZ>!j1m%21MdgT zQTH!+cfMXgYZytik zPvXWr>E)BEqxj#!ql8_x)d( z{7`#gqw4V(yF3=@l%U39fg{no>jh-~pCyw9+f+5Mb*gZ3X;~HSGiynB70WwgNzhhr z6)f9!#;!?syB{c9U^#{L~fT^glnT-MG9(}k(Qq5nc$Y9z{zR!rV}+V9W> z764&)UwoyXymH7rK7Tuj-Ioj`!PG3nav_4t-hl%+FNp?B#zJypsC;_S!=+IgFP2|m z)RPw+@No?q*p|4|qtKbF-RUb8rB`FT0hONIjD>w#qr6YbnU}Xv`3a_SV|5`ftGY0o iQaZD=QyPJ(_h^*t=PHxO_k`J0vW*1xdj9}D)zB_1J%if- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_k_d_e3_macros.cmake.i b/CMakeLua/.hg/store/data/_modules/_k_d_e3_macros.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7f6e9cbef9821368ef3350a4f9c4d75a0200f8dd GIT binary patch literal 3281 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 Pb+<#?7H#@pKh>jNzB_Do literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_mac_o_s_x_bundle_info.plist.in.i b/CMakeLua/.hg/store/data/_modules/_mac_o_s_x_bundle_info.plist.in.i new file mode 100644 index 0000000000000000000000000000000000000000..04973e3fd4418f2127c3c0f67758e2a8857ae42a GIT binary patch literal 545 zcwPY^0^a=q0RRC20000000H3u00iU!0000000061|NsC0|NsB6Q#J)*y&|>}Cp=@= z1cDJyk6;`C00000000000001ZoRw5vZ<{a_eO`VALwgPGUZ!cHL<9`6L;&$owNHq` zEkOmF8PhbX_TOikY-$rRI$rqjIp>~xF1EgUZX4wZcwaMmt$x+6R0U|k%9>W!YMMC9 z@9N4}=%4MtO723ebWPn0B}~^Iu@rTQklA$&C>CqGK>$a{PHZLgNSr8A3?b~Rinwt@cCsmh{pp~LjWxZpWcfRD;vMz+N_@qC=!LXe5K+6Vf zc!Gv?El?3bCDA$>mnEtfTy|k#T1l~;j!y4qeEbZ>AoBYL&WT@Mwx$)tx7j-NZ4YPo z7F%gzuH~a|Zt<@vMHd924=jFNoD(I!6J&7`5#OB@Bn6{RJ#Ua$fuA|Vo3=(u8B_gG z1E14!Q<4!I`w4Lfj-~}=qqdxi%suCao8!FBwZCasQ+$un>csk3US8n4*$s|jB72?5 z&ClD}%ucs|4m8Y*$Gn2%&|S!xVdzcK;vM7SznY6TL6m&7yST1sE(U(#X(g{I(!_)& zQaL%fv=B$ovw;`TkN@RXZfYq1Y6?C8`UCYO^yg4>=&hXJzp4BV<;R<$&1nRAIqpP@ jbq8KoJ2B_e3c|aHxSQmSMI9ZF2_3y2BF5r3HcOo9bEy4g literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_mac_o_s_x_framework_info.plist.in.i b/CMakeLua/.hg/store/data/_modules/_mac_o_s_x_framework_info.plist.in.i new file mode 100644 index 0000000000000000000000000000000000000000..2d1f138cb00b3848acc691acc9a053afabca7408 GIT binary patch literal 493 zcwPbR0TTWI0RRC20000000FH400Yth0000000061|NsC0|Ns9fE7oTUVcp{&s~W@w zbqE*!e2XOj00000000000001ZoQ;!TZ<{a_#h;f?;i0_-cQ4a4QKE!DiPZ#Eyo5md{ixU|087Zw7M%YuvY(psnC z_@^~-N6uG2_R`xVKuyJ4jgs|jNjzkYF`hO}1;~?i(`ir``>BtTC1EKtFpPu9Le^I6 z<`>4h-OkST<#sOXePN3eB^yw>UmEJz2<$=^mg#qB^N%m{x8S*UM_-%==v^lCN{jsTPwK7w)`kOkv@2WywllT1;@f~&#S2yv)`MLPFKNA zOs_VP`FI&3%|R1!FWKAS888xs@rI?8MDsx=Da>5_o`X6E=m$|sLK4tno-yc~6irT< z>aP#^9;1KQ7eo3a%OA25(!M!~D_q@N4awM6D*fK=?0ncFrs?K7pp3-PXF)MuicELv z#MZ>DA<@A6|M4HvR~Mr_g5nV^sr`%CA^ jrdPb&>N8AuadJz^e3Aau-@%7R;o!F?*WME`~fLjaP2JF9 zXnj^ZL(=OBkLB6GfHQV^rRZ1d;>2}kMGZSW2_xM?5 zS2jqCs?|%C*WKK;`z!wc5Cas#s24y QS3dpUHR%P{rft=|01rcbj{pDw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_n_s_i_s._install_options.ini.in.i b/CMakeLua/.hg/store/data/_modules/_n_s_i_s._install_options.ini.in.i new file mode 100644 index 0000000000000000000000000000000000000000..bee75e4dc56b40f4a5cebc43731c10259a84b8b0 GIT binary patch literal 351 zcwS>*WME_f14elU2Bu{UP|klSFh5}YA}6NF?dqE>i$f3mP8B;_#4;d(iaBd9T+C`V z5NUY$+vaFxBX4eLjyU7mx7&=Kd%ZrZu{5H1O_1p%nT7lQ#@t@I!Scq@yhD~MAL>)~ zIxSjs?=^4ttydcl1ZBK4+Gf|AkRNf!^u+0ucGd2W9yOO559nliGwDbCIC%Qo=MVGK zZdY#U`fG5<@A>ISf&IGoZ3To(uS`-9Wa7G{z}2ehd6m&~fsAAMtPM@A^7i*P2^c>T zix&Gm=ST0^q?=z}y9k}^>eo3e6&s-?*m`H{-_qJ+zDrlu9(Mir`iyi3pV@J>R}nd` zoQm6hYyL#v`Clz+v{FISJHu4VHlv{D;9sK{`vX7qoo{Kin$DGJ=DBY0uFmKVxAF-? mTc0N%b2vo4oo|y2zQR6<_sr!un=8A`_qJ!hXO51({t^J5aG^l} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_n_s_i_s.template.in.i b/CMakeLua/.hg/store/data/_modules/_n_s_i_s.template.in.i new file mode 100644 index 0000000000000000000000000000000000000000..8500ebd2894a84644e8dcfb5ca705c180b57ab77 GIT binary patch literal 4867 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 YPGU(~eo?M|XkKPTKw?Qou_hN603fCvp#T5? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_be_o_s.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_be_o_s.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..c482bd2f78c9d802003ed84446ff46c4961f286c GIT binary patch literal 299 zcwS>*WME`~fY%HRj8~y-#{W<-VZj}(cEi8dmw6~;^^4DLwR;oU#DD}U=JZ~4^ge7L z!v3M!{^;VW8wt@LU+MZj*4gIk8Fj}`@pVwR&+LgQ3LW?FcI609eDw2w-B0^CiEzs;TO47aIQEc==S5q(az~^-Wt2M9!UX^R4x{i^76EmtHBK zI{R*WME_f113EN2KF@&HUr~-C{UQF(6im-@mlu_)fXMlTbJipxZhwv0u^)4hWhr; zHW1kRS=;U8!pPLk)$12cJz%(UH=m=~iZ3l3g?1tA0u$7Jzt48M@!&0+>s>iB_M{Kh zk1LJy7sThW9C@jCdpgsk5=|}-;SEpXd|Z{}G<7aN@#Z{gcluJy-~2@}I*xhbtP(QS z3r|1OOOrcTW3aUN^pb)~rgfG|-X6HEcVYAK4KE*-zvzlwUO(5n^Yfo~2Wut7zHgXxQ7SBx z?~z6b@1*#EWgGNeR_k0(HopJy#2QbZ^V;VZ6%}inKDl9g`S%CWRV8JSKQHM$^>jb{ zY+vr=1xZ`{Klt=72=6)lfpf7)$-!9x{1f{wUB241)%tqm{IZ<2_xS_6TbO%l&TrAk zdwJ=?Ds$aGE!WCke|0dP?K@{Xr}p80OXHibvWIP$Tz6Q3Z_z&%{us%rr^I%<+uxLn zy?V;&tx~ErLYmwu!s4aQ+n#KrYi&ZPw86)TEEo!Z?+#k*t7!>Awh3B$n^ZDp` z(Oi#xc3IWm6?6P>Ox*E;ZtUCpD*HM=7yfkJ+0%abf6C;j_0J~1iVmq}{X09{uJEK? z#@tm=^$d>3bg#hD84!2_Q`-t?V&ejlpwzZnV43lH@nj|SEry4D?*) bC$EIwKYl5)=E1WU!f#fcWMx?UN4O3ED8XEO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_modules/_platform/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..b57242609d942d7bd250a98734e7fcc41239ead8 GIT binary patch literal 162 zcwS>*WME`~fFvNE0%bG)hk~0^Qa%|pX}T$0`e`ry<-oT6a>)q{NT6a)aM%egUA@2) zXSDS^&zua@IO!33;;g^sSx?<(pT2PO6@K~HS^oJ;A@8+-m1W;bzm)Zs7xEPLlz-$| sb@hAeip%^bJas%z>z@j}aJj4VqW3x9Gk&2LRf5aYpF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_c_y_g_w_i_n-g77.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_c_y_g_w_i_n-g77.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1913dc4ef40344e2ec5249c83ff600ec6a7fefc0 GIT binary patch literal 193 zcwS>*WME`~fJPwx0A(}&hk}aRVHbt^H=S%QpMKC|X;5$frdS~cBv3JjyNvf@!MD;c zWxf303V4c2JHLM{;VRfz@oD*fCO5OC_GPtc_&T*sE`SX|*<74suTxhogT+3Cm9IDr3 zW?!ln>CFtiYpK@lOtXmUkeN2?8|uJ@rV_1b$Xrlvyi-MCk9R>R6zX|OwA;)BFUmH2 zI`^1Dw<1vZMuM8H!yv;^Z(@-B7{^b4k;!w>UC)pxnVq+C`T1EBDuQKx#un-8Q)n)B ztE!wbm_6you(s=YHMwWrJU*{Mz3NOKjz^YrklVhuJy_9Qn#O#F`37`w%M?wF^Pgf|IFkJN8~{_jPl> z4TzmI!ePlv;DnUf)(v8H;KESN!9*sT zeoNHGjmm?X?;5&!T@Njt)($8Eq{(;k171<9XSf)3uZZU4K@tgcVs}dN$i{q&r-Xcz zY1a4e;re3pIc#f0O&jyyRNcD?YN=M=!eypOlLuQNuY5dDdAs8Eh4x=1d_^rjqWr;? z_pW+WYyX86DK$sD{cnU(+vV1xLD&5V?2cPVh4Y_nX|C{`XDydp&XsgWtK!d+m1l@x!}~}zZqy4 z+5ZJ%cgG-N9$N_MdFjzr)CO?YEMmzDFiqG-GLtp)(aC(vJ(v3{9J*1F!|pU&Z{pE> z3i!Ohp}yD(`MgU8u?!la6A?gwq{0G!{FEdj1I2sz1p`a+5D6;q#eyD_80aFc1{Q7^ zLvl~;Mt_6{O}jja*_CSprP~;=fm+x)FO@ugl19%-i`b6p=vv`DEBm0E)oOP shlcJBC5IV;^?MkOnT&G>`{U5vdy=N&mYHBtfN-r4^h=)#Ba>Rv;Y7A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_catamount.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_catamount.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3f7682b40bfd9ca8f03de5912d7bb40165b1eeea GIT binary patch literal 602 zcwS>*WME_f1IB&^1{Qt>DCa*Eyp`K{VyEt+<s!Q_t^`!lu2jQZcI6U=G>dS^TJV2 zR%w0_xOX{cs?${w(-ll5T8T?PZMrDLwRPIFLgqMCz6sr-vqU$^HOb_GAt6P)yWebW<2!7_`O@gf6!sZkm#0{|vFwX)P_{Ca5Nmxnsc71U zbeE4RiU(&j_H!I=J{P#;{n?8=(fdU%PCw#Z)3l6d*ImYlaN=8MU z4UA51Xl!zUNKkZ2tF&&Hf7`_7`zPXa&qvAxVcXt2$`s}z2_BnMVPp}TKvoKLOV6UNKVRz%O;fbrN_l{rIj5v7qqWX={ M$=nRb8-#BG01-U{;s5{u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_darwin-xlc.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_darwin-xlc.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..549b09f8e36cf0ce359e562c8999be8a85968de4 GIT binary patch literal 217 zcwS>*WME`~fSC*ojOMjOZOen_R^|?AgO~$};f>L(m(8_Lxh5 zXC>E7Y+=@O6xzA4LOWoV?XBt@r{(!Cl?0QIcKvZl?D}&0`nfMkGZjC0SvMywZdy5U zv(<_Zj`_li-tPH&{i=!enT|&tH!r;1oWA|cntuPMbH1!H-9PQvwpIUL=<}xrm;(So Ccw?&o literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_darwin.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_darwin.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..29d79c26bd16088fb49562b0f03b53f24f9e157a GIT binary patch literal 2654 zcwSYOc{CJ!7sp4UEQM@Yr(_wjlXdWjAz_SV>`V4+ks&n7?m@ys#=Z=S$~KdVjIk3U z`zT9{VT>$8Br?2h?>W!&Ip=rJ{rz$8J@d2}*Z$PrJStns~h3otRf#yixh-)Pt#j2*nYm!Z7<9PS|XC z=heo_+Z|={5q}#40+DRgF*EsKE%|D`!dA+?%ac)44#&{yWA8v35_7aTchKs93h-SV zcx5Ep$7-TD;+YV=gZxfVodrgHw;?Y-v58!}hmeX1K_FyfqzZs9F-nkNdNk1(`c1vbjZH02sz(C>JY#-L(jIjhCxpqj$c#0H*qtXQb$77o_p~Qt4)P6#&kBLpc5p1Fj0bf zDX3jVM?FO$|E31zWrHiyf2uSSts*Yv*au8f8ecN*6~R7rROkGF#}=Z!?C(@E+(5H| z4e0~bxD_Ew1sPG9^P{3zQhwyEvf9ODk_ErO&7 zgwwUulFox^mUN_s96!cZG=ogJc~acxYqVy1UwiNp81bvLGa zzah#^2F2qM1tPw0i(-hu%9m=r2`3Q;4lF@cE+yzeE-yvyq93n1tRPFG_}+z;V?l< zh*oeCya&3x`;9P&-Rs!hn4>Fj*EmCA#63nDqFe0b1KTa{p5PmsIe+$bqPsxiTuiu- zID5i;B0GcjGJj&!Sgr*rg%$LqOzN+*%bS3)yRkMsc;5Z-&3QYZ;wU}g29fPJnWDpW zr4!M@;Qc;bOp+zm(Ya*5(02nHoh5b2Q4l)}tPe`@Fp{(Jt1P8*DnMj3P9&Nh` z5kp;j8p3GQ#Wy#afJ_fZ$9_8_){(8gyr`5xe*lv+`x`c!+{&oD`dSs99EUTzkygrO zQpJY4Thx%4J3pQCMgbt9nVkKhU1%o{e|^)3z2@c&xq=obIwXpw+-0Z|sMhN#5Lby%R*(;h>KR=UdWcm7j%@nGABn#*nSBu8JZ2v5W%GJ zH3jfJamvA1`sc?JV8KDhnQKJ}s;1)-o)UVUNFKw5%m<0$_966}P z@4@*ZAdIPJyx1gw9Ov)5{g=cU92NR zKKv*$6B{$`gEhRUtvF4YPxH)OFu#4XF;qPxS5xU_(>t7=CMhKL)N*#n0<+;X={P|h zHsI)jI&yzMgq!hIF<*OXBz;OL9z5Y^E$30EcM$u1Gl<9VdCah;Ad}`PzqA9vLpf@M zwybmG&dIG$ZN9TBucY-;UoVmEk_yn=zVJoniWpE1F569VcQiD$DXToKw;%5#rr{Cwg}9SnD(9fA_h<#HSv~p9t9-)jmP2Qqwx&MXT@@U3U%*VA zYD@DjGnK0Bcf7r_E%MK(7!8*1hKsQ#qJMO(}>*rOe*dv4zeMC{j&PNaqb~kYB#<3$F+2P@oo`q;p_RfmShVQ3WN~K&KmZT zIalJ1$y;Ftwo(x@@i>ZYx6c80mGTUh%`BpmM>qlr1=$_r@3}nNpx)Oxe&`lE#=u;^ zW~TR5ej#wEi1vV`gh;r${`%SK9Oq8f;AHpLZ;x89D^s6tct!@1RvM024p6t${%<6H zpaK90Q2w|C+RyOQPBb;{->E`*;JNW86(a#8S29{k2k;*RTL0J(DH9`0E08V>27&5d z&@Vk77IrQMMkWx;3ks6V{{xTn-dO+u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_dragon_fly.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_dragon_fly.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..4627cdbeda07e36c9b4b89dd4d46fc628ecd38c7 GIT binary patch literal 234 zcwS>*WME`~fK@KzZqI+ Q{wwpF@a$@N#sl_q06w;3!2kdN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_free_b_s_d.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_free_b_s_d.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3c6e61e1d24c633b8a9907459a0f6514201fa11d GIT binary patch literal 674 zcwS>*WME_f1IDWi3@oV(P|klSnAg3GD?0z0md|{txtXzB3L+0(*~NeaD(3VCAMBfL zAhPGV_Phn{F0D`YnTyTQi*gbWFs*jtn{jj%GskSR%&Yb9nJ4L%sBZJ{_;J%X|HGN$ z?cPNti!GXbwP*9{2VYFfncQikd;Mq@qrk+9%=c^3Ct1Wj+SxCdachg5ZKPu1uDuty z;)SelR$UXfNqg3qovkflYc<2vKT%9hNLx)=Eb>BIYQBw!VaPKNo9p%eybUicIGmp8 zp!Y)iNhtH1Lk=H4Nw46FI+>7g>{4c*t<8^(yLV^1bjG(Pnwf^S8cw?z{%^i|rw79= z=kp5=Gnafiw{_P!Lzn9Nzrs7#cvYnx+v8dO;NuU&DKfjwZ?qShyiM8U9cy~(%sP(8 zFJ*FWJ-40kqwlw)h`7}b)$lo7|0XxqetsLZINN7K$j4Q0dZ%VL>_~W#wx6kF%V)D@ zc~4?xRlk-Ac^c?X)ru%ST%@-9 zlERYgEAQ_*wcb|{4V9=#+0z={{(jBG6_HL;zq{X?ajpBUT>F8#sBiV=rSJCLc{{h+ zok72{>h=7((gpVqv$$*&-Tf_N+OE^}GFvi?EuOPp{wQa$F?)^R*}~e}))py}9IFa8 zoty1^QlF8pAx8HfgN0#07c4mdfiEyoEQ6+r)gTg-C~AyPIbZHn7jX)n{O6PXs_Ny( zL@zR+0LCQ{%;2b?5bPSF;q2?^?HV8K;TYuV67S>b6yz8b86Onj7~%os`FY1X$GiDB bx+^H@hUe($78N9xWa#E(=4ItJoY}Ffz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_g_n_u.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_g_n_u.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..4ff5ed1d8ec710a2e61bff2c8b99d68dccbace5c GIT binary patch literal 269 zcwS>*WME`~fU^t?jK`sD#{W<-drH=mX~((Te|DcUKJqbQhPu@&K?WpHF{k(3*{(wd zBCHSg`WLR0X08ABE=ele;Mk-s5#fq6rifh%yTohs4fi#-h5cC|0u zl#sJ>eqKZMb(^eo+Y((BoBML}@8zUTO5v_?Q(u&{OyaJ0M^E>($-8Zo93Or6S11gQ zkd^Q{c4L>1CZ8IsqvXtneV6Xd5=fjfU+uu``C;Z?ZCzZ>8CU(g((~d~SoZ%5&Rc)Y z)AS7LC{t9>m-)N)*WME`~fD;T1j0#XT<9{f~Tp!e3{qRL-ja9MGm;M~}b)MTw7?424oYa2D)rSlO zTHd$*YhPM%!TAgS6sP!IUR!dV%mnitw>TX&yVNCK`Ty_MDuKA~R`<`G>zMT1?C{QA zvhw2hO;`I~4U4T!%5>{0yl=8Ew#89GV3wu+CD~n5xZE#g_2uanl~fo+Oq!s2aAUsM z|G>=NP0zd?x7hs7W)Yrn+NrnlQ+oHE7DgWNqr$Q30_#7QICE~Oe(rBj-5Wdi(j?`H xSN0$HHLLXM=6Bim{ZibO#A9w8%DmIP@nXUUf%*WME_f14eBI2BsngDCa*ENY86!+vuk|{oC3-w=aBGx@5|~s)hjxRLp6;aN6&% zfdK1;+I@$*BDQcJ=69JYlRk^D^w9}^jU1g@Y$8{#X|S4g)E}>1ZNj1dcJj>G(upTq z&n^hpop*13?e0A%Ux(f`Gd^V$8~ARz_x@MzflCg4sW^D-!H&t-LatfNkkBwaHR;Ip z;{Q_L&tDDL5VM;nXtuS^#R)U^u@rl9@dV2`Hs09nCpxb&^GExg#geU4Blw*WME_f14dm22BsbcDCa*E%nkoKYeHv`)}}PAM`uKzcrD)_o5+9!D(19aJn47X zK!EK*^}It}7E_uZvaa&#Gxlw_Dtxk(MNcf&!7;Zt=s{CO`5o1)mrQoI=Gz+Y-}vCr zvJ0Be{okM87kMXb^V2me)u$}owd9VzSY4&8tCUas^Bj)8@TrrpO}S>Vf=5Iu)$!5n zmG!;;G4UIGc8dtjw$!;WVa7g|Qog4WaaAm=N$UDL7#cEvh~Hf-*>Wi2%hP*uiR&69 z3vL-S-{JHT3FcQ(dM#ScKj)0M$bzbtKKoZcr<{9jxG=wW{)E-*Oa0b`OlrOsR4cq| zRi^RpHQ`(1=gC<2GFjfT*oU0gbCw+jz#^Lf`Geb;(!;^75M zdA!~%f3DVSuYKz@akFUs_U($d7YLl&dfCk?f$NglrN{oa7RD?KJ0Rz3fB4c4Jpd+( BqUZns literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_generic-_a_d_s_p-_common.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_generic-_a_d_s_p-_common.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..10e8b26223d98478c3e00577c8a5bea48b91cb66 GIT binary patch literal 1299 zcwPY$1?>6&0RRC20000000h$j026Ki0000000061|NsC0|Ns9G0a3ix?NUBHtx8Bs zfP52gA$#)6QdsuLG-PU7h6%0{Ll7n~QkMzj!{6 z&;^ooBnTNQQ1G{#7HRINESX>asP?lFJLph3KTtJOwxw#Std4ctq+eA_HHH=3iDac9 z47ik~cjGaEw zRqd%DcFWl2rueK%?_bpaj-`{@;Gu9TWZC3sJZ61F5@vO7&y)lYsH5Hj=L{V&cY%wEcM8`(6nQL#1*=WqLX|0O1IhfCaZSu{zFSM#ozSv)Z zYXeuJH7~aAx@5SDy{ibXSFslc2g`@;ByQ049FIarSVq=QqUMHq!Tmzk({k}cXU?Oa zR}9tqnjr#|i-!A)d~a3V`p6Nl}5ND`-~jwrHF;H~T@v zt@IOXa*AeK3UIu@aYh6V{`Tg0g}MBZQi9{KK1zQcm9ocs0!Y2J=g-BVEbdKt*@#P% zbhOz2rF5tCx7DG_YIp)+rxH#5i!fxX)_3av!Z=+RaODMFf?F#1-TaEG`Iz91{m!-3 J_y>CfXOvyYisb+R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_generic-_s_d_c_c-_c.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_generic-_s_d_c_c-_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a2f5828b5d8e23e22a5116c01a192b1450d89b9e GIT binary patch literal 1196 zcwPal1XKF}0RRC20000000Yqg00`0m0000000061|NsC0|NsB+#gY9~B)d{XbTW|H zi+>vca2Fo{00000000000001ZoRw8=kDEpi{_bBf;wsfv0@qaPiz4SF4%T-x7%W&z zi4+N8Sch$Rad+3(J5~AbodwK+>q}dIuhSjZTK}Gj+X~T|o+a!5BD@HPrzzMVtF8 zq;(E&euf=aQ1MJOSyL;~lo%i_Ors4PB@$4;xGFF!1=TcVR;0Y{xk(W0k0Tc>2Sm)O z^b3O`l^6#*2I5#l$?-^GH*XQK3ou=0ZNDdplQ`jeYFH&Z}3i_1AD9i{@D7noG`Qx+{?r&6$5|s8 zpGzez^{B8_UVqk)U=xME5r@tfdR`R{NmD-^R!_-6G{3V9t1V`;n9zC8n%dNJ65qRx z?C4{%iO9?GlqZnhLT zP!hym7+|horH;D7N+@tG6hs45WtU?|_(--Q>hxHpPmq>^rTG(z_W`xVQjry?6>SqE z6~^lUr586M>_%~aqCe0bIp6P@K&!$-D!7&#)M>?F9=nc%^hc9gXbA1U>L`^~U9ADJ zUe-z!OK2r#DZ;=TVP;fB=7>jUJ$}p=clRv!y)2y1Dm8PuHQtOcf?tj3&T>D~IJqeh9tMdtqmr1-( zK(FlX%Fq+*cfJ;9T0^sIm*AP32lXZ4t=^Xa#`0X3H?VAr+<@7@vWvstxa8w-i*Na+ zb8pG(FXJk$@vty^WZ6+^cTMWHdt@ZRZ`JLKY6fO=ROY@?CT=Xv2bR>1&~X?vK|W>v z^G~GwzL7wZSW>nP7#gY89ALG~c01B-}F&+mp=w>OPX&%O@VYddhi zelox$cxns`mwjpXAx?7)2 zqGo>sCBK*x000001JM8g00016000Qw000000002#00000|NsC07{L&Wkg+Q}UN`00 zQ&=9s0@giE000000000000000c${NkVB5&Rz|PFTzz`Gc8lvIs>*(zo?;P*!?;GIh z;~MYpgMU^8VqE)`8c`*Y2ADU8;A}dJ6XXd*grJL+0{-- KlM4U=I2mXSCN{PJ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_generic.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_generic.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..87bf4c27b0d7a11c3143aed01ed9771f117de7b5 GIT binary patch literal 556 zcwS>*WME_f1I7df1}1+7DCa*E8+3niF#92R*F8^;DN|O~%&tv2 z469i-^K6zbd?ewWwe;JytNg55GuHnp7yGO)w=wk3!}Srjw|O{7RdI)8q}=-aOEy@` z>8jN3j4M}q4tPyf((rZ7KDw~XOJ2lclE<9D1x(iB!VjcANc$GMi67b)#o4shaO%z@ zXFe{mns_eSH#qjH9$PWj;X{Yd&wc&)$4jm*;l#jBuKDVjs%1BJ1>C%%`Xm0{5B>t- zbUeWGwC}-lX&39yvF5PRtbZX{TkA&}~YkPllC*BeDnkkW}64k$X z#nf9H45EzeB3NF}ls~YRX`;NIOj~`P*=vJGhV`GFzX`FQmTV8Ve~|N{a(_Y9$w{!7 z0RkUj{CGj5hYLi4;zxY#u0?N5HrDcIKQ*~DQ)9vAZipU4{3ItNJW5JP_>`WIP{2{f z+sV)IiNAoCtMf|1_mAa8UjiFGiaN2IqCX@R}a=tX?ObUg}F|`$GuA0eg z?$9hz6j_m@G{^h)zP-=$zMtp$eV^~||IhRJ0yqF1fWP5J0{~*d|Lg#cz269i$Kbkg zGxE)Zp5@UN7RcC{t_AoH(d8_+uiutzml2u0xWH?n*KL+dZk%g;6K`!6wLoL&Jr36cqG$3ub}_JWRb~w{GuUJD zS;8rlC8)0Me6-IYlb3<}LG77~8@yQyT9UkECM1=H$H`YAFRXY}PKyp3(rVT4|)*jk8 zJkS1KtDD?od#X_Vvn*vHKIj(HAv=pkG)~n5`M{YE^6+y!*{%C%j@|AB^)jQ!PxRDp zXnBp|PuIxrH!%--38?_opE-6qHKr>p4cOI*+P^)ne(MH4Q~&-3R}$jfv1T+vk)n-w z?B^t1g}HFAn zFt+99lo~~)8Ur({@NA$uzc`uTxsieR)E~$fVl76+__c61dCYX({-{lSSjwx%`}N)w(Jv8oxEIc>WR!o!&Btp^tLA7m zyuDY#*acFL*x3h5`&9Hn>!m=R2vGQIWc=8;V0KA0G{I2t{B$< zgyd>U!oRGSObxbA@Wr@9(KpYlG0Cl z^Ih8StpIDPkDydb=u<#+|2}cPtqa~guKM|pGUq$sd(GKiZQ5i9>zbU{ifX%~oZ0kv5kq(b=xnm&6{CeliY)(LY=6y-~*!}X%j6S9WkW;Y1| z0(-egMRz8WuuIa(8=O+I9>XvnM3sSUDf?DM4#^nCiGT|cg>I$EVm2R}SzN)!wotiC zY|*+fj-UVL3IO0d2mnZ={%)4RulXxlk+JiejT=AEHmFY`$Wx(Y9rfH-|Bu!8iF6LR-WabwUTf| z9kiD5o$pu9NIk?^-GaN}$S|6(zq(GgxAyF-P07%a=E~GW@#2TMTca$I8PSS8k4hIc5>L7=)@|dFr5WUK0k;x&j9dIj zQ6U|4o`wOxGXZxD0&vtKBk*++l}Bp*%G%LI(Npmcfo(*3^aa(^7Rd}@>&_s;AT_6V zXl2FO|7WpIfwgWX+tI#;_2K$!PR+;loHarb-7m6|-3y0DpnxZ*K}&4TBH?r-4bIo8 zGV>G~(cLZIaY$$YwM%zPW<7n$Zo^*O0H?umc}s`w8M{SD*BU0NP+*|GRlEVm#g?+t zjo0|)1#jlxdg%V;RKstlaDd;(Fzzm2N?7hZeoiGuPV;grPrjP9JK%qCApUs(2;9O& p`HX|9orR~p4b0Bd+~TYS%-jOz^4HhQ+0@zH)7-`xE~^RQ{}WwOjKcr` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_i_r_i_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_i_r_i_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..4cd3b3771e9498ee7072349d1e91a8c22fa74cc5 GIT binary patch literal 1083 zcwS>*WME_f1IDWi46Iuipq&3u;InwMXWgFKZNJvAR~UX(Y`K6kNsF-s!INJZV zfkf^3^*=-=WC&(1d7Im%we;NeN4n-W`x@5HHZ&1gGA+#0Eca5KO`cxv!thS^Ph!7g z{>)7-7SR>jaX+AH-*K^L_csQm^nbSFZfy$=$yP12pesZ6>RC&Xu ziCRGP`hEUTs_hpHT}Fs$g+V`deEMD_5FUG;yZ@;qhen$8C z2R|K}w14)pk1vX1itJ>M?_BgKXmQ4k{;(^&$8HN6e&L%|z*HG^;IK)%Hfw+P0R z?!LArxNniPTY*-D_?K5=ztXPvPG249cz*xN#$&6ix18np6|9m<4w%zWxPaf>~xb`UDbw|FXyJ}1}{LK2s_WRYv zJ?gin-oIC{{daA_p6)Mk3@h3DFT#=okd$U%U=M_*i76lwlqj}8-J)#!nnkqixJS&6 z>CI*0H|@$$6Gd(RMZabPk+zSAq~|?KsoJQT^ZtV4^AioK4Hsi4GNmuxn9ZyE%EYcK z{~>eK0ZCzD{i=`ii}(Hi|Jq{u{Bs}l?CxlDsG85={MYrM`N1c~GcN@l7aurPpqi+E z!%?5%6PsxtS48)P%ry^pI%fKw>g%3$n%Uq&Z|t>eD{~^NKb`xv;+5Y5_EoGk2Ui)d z5#d;tn8tDS+7XR_We2~_e!AlK#fT;RQe|aH&AJ)dQfU=et@|XeJ>rbcwayOs{qV{0 z%!li?X{!FKvihSJJ$VY7tB79kq<80x?y+qbWUcZ~*K=_Dyi$HLukO10RWI(&Q=hGL z+EeaVYy29eqR9tS>eToAEP7+~vz@z)v-5w`SId1FiQ&GjzdK?qN)B?h+VG!Fc)imGEx*b39OPnB6k*uQT6eTruTqui zTo|*yg#`KLw+Pi9yRa$x+fQc3^d$`?{t>s-1h16c;xYIwwY_FaS*b?dbTJFyJ&+v^?I}89n^YHrs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_i_r_i_x64.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_i_r_i_x64.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..054f4d1a299332d09da3d06797490a885f39c208 GIT binary patch literal 1453 zcwSYMc{tPw9EX1+GziNQW<$z2a*e_`l3cOInJYpV$*7dHC)|jE0h<+~a1M zqA^+|ix`b5XYMph&I!A<_IbAVkI(b{`+c7G3xEI+@SOt|0KmWa?+t+V_KED`c(wky zXQ0lPTHWpn$?l$dq6YkrFf!fwDq`xa*v@iQlb^tF5z3e@j1VdAa;lwiIGH@WCh|(B zzFmPJpMu>U+n5=;;@(q9fr|Ohuo!w9Z(xB#P(0be!bRG79`;ilRa)o$<)?4{%nR4gX&G*|cq z7@8Lq7r$Fdc!5O4CZe`(930KSEq`l?|mS zC5KV?OgLhQfj(HH;4{>xM<8v}hM_f?+R{uBZn>n1cFci}qdOLajshBvi|rf6_F_E- zY1Yu>ZiQPd>~yG=SZx`j;~_(RV}+`n2dA-^C`?KBmKA`%FraJ`S%(pigCFF4wn&V0 zJLh!y3)Z8k{#Rru8~g#Bu6Z~{HnG6;uMY@{$Y#OlYwzqk`NHem>t)Q`aH^+%iFl>v z;F(Nv9*Uf8R+e^pIyPGuUEhepqRg_4+9(xy*Y##QoGdMhDASbNa0YZxHE!VDZ2#KPM>yK2PEmP}GiIL!vF&ZcSsu;vDT;}19p?*Ij;VKxGeept8w_~~Q@x@lqc0uu zhc)Z)Z|qLEEj6_^c$?dk&`S@}A0@8o+VqoFusKd@?VX^cn!I;aaMROJobC1X#@c54 zaz``e2u3#PiFqZxGx1zMbcl$e!Y8_va9@eiVO55A9HywbYF;H6M zBuxjZ|Fd`ME}Cf6eKtRrmI?}0dF{%hj1)0LNw3ua%c@D9;#eCbpWaARbW5a6%Y4rv zhDmsYTARUhP16zlMFyj{Y}9{oCbD8U@Y4rvWPk=;jeMQH>F>hX;m>cBL+97-#WUSn z@zXA^IDKD=mv%tC66@&y0{o{u2ml;P-mfs@+kVS%Swjh_94Vb7G6iqFLa0+%S)1XZ|WN=Q;B_1c>J870+Q{(1`- zt;6%N3Awo=-U7^&1SzleRAfSZ*voUHZy;}jb+>}u^%p%&k{d~aFA#9~e2fflS)6<# z7Kh&Tw2WS!XMrqHI;+QOine+$3R6c{!yZ1B>f+MaSozH|$T3@eIlkor-m`e`=B}JV z|0T+Tyn(PherHU2Hg%P!MJ0vjn;mYS?~-r;ASkeJwhY*Ra;@%l&L2qwLfjg%%##Qsbgh}$Al8~K@Ro7SA1P}RvD~tz(^fLo6D0>V-l-m_P#vH#%YY#S2 zeLk7C`BqXPreQnIV%)$SMzH(Cj>Q!@J*OLg#4Ap#+48wx*4*STdH%k3cLXy^A<={$ t)O#OvIMay=A#zLyOREQqrHk}W9M6*WME`~0A(Ong0iRlhXUSfnkh9q`}ak8>)x8coXLOZUdlxVBv2ac8lvIs>*(zo d@0MRwQk0k%@9Xd4;u#e0=HuwDpzEc{1psQv9P$7F literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-_p_g_i-_c.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-_p_g_i-_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..15bf89c903952066390c6aa2cbea0fc362260153 GIT binary patch literal 198 zcwS>*WME`~fHolh31u_>hXTjW8xIA8{+?-H`%g_kV3F^dQ&*ldAc2ZGy}gEfhYWaJ zzt1^zip4o!z_qBiaTRCh8-tQhf;;}ZHLUVj!8}>@_1^zeZZ{g8%c*jGIC*KN$dsk` zZ|9^uZxLsG-+xZiJR;Ia=-9Ea*3}|OSJ!3j*WME`~fDQ&YlY#L+6de1TZtZw6W7jH^r>Uu(amffTW_iEg_*Ror?2ca_D*xL*ty<6`JUcG%M@pd#OKN82 z?4CC=9~V8iv+?y5?Hrx6n#82|j%b~yha+`u8b hoX_d<+uIugGdoVtSNl8T7yFO-U%fxGOg-!70{|NfSC0Sy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_c.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..feb00437fe747132ba618cf50dad035dcb3dc37d GIT binary patch literal 634 zcwS>*WME_f1IC>U49rg$pq&3uaO8yhDa*@ZvpF7r+N9#D@VG;&_&oy>sF>3`*|C4N zfk5l~pQ4L%_@y&%I#<8$ZI~RPD3Iv>_FI$82e#EZeH$`8SO5FIRZ(Y2)I~Xq8=v=@ z8^8F;#}s&tcf~H2rLTQFJRIk3ov?J4pv(Kcb9cLT%BwKO3C&19T4T6NUE17j-`b;j zf2LHN)GD~nR=lnHjqfDGB26jIYr!QAhuH9zazie4xd&b_M(?eue z^7lV%Zt-uo_a}L=9eH>*GVIn#J=JQ#m4ZDY*XIh!B>lRcRD06>^xg%JOmk zYfBRO5+hv8vOF+-T2aBD4PPt5vrJB?W?ZQKrT(AwaxY`Sj;?#hm~LNOSH`|WBx-}x zpGOZI6;Hiipr6jyC2q5IW7G4dxmT1K&hC74mowt%!Z4fW`Ih>bGj$Z(G+??{#H0*;Yv=M;#PJB6u{^V#3ew6X|QXEhO@7uw`;s>1PBNC o2ZaR3JIA~EIJzq+>4xX%=<23c6yz6`=%!TWCFW)(D`|280Pg${TL1t6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_c_x_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_c_x_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..344ac069af071dcfc2db7d0a7133e11bb38b0159 GIT binary patch literal 510 zcwPbi0RjF10RRC20000000F)L00aU60000000061|NsC0|NsB-XSW(b1gP0fqMcl+ z^?r9-hzJ`100000000000001ZoRyQoZ<{a_#_#znp3)u~we+yvb|c^SRe&6qV@1f5(;EBAdK~_0PRVAW;`2HS>lM+QPCj`+u zXJfBXi5Pw}QR*WTf0^btW@n0^~WNZ{MU4(ULS_U79LAtim0#p_d1Dl0kX>_x;H=`q*s zBJ5-OZpE(XqWNz5Cb5nmh&I?K_y-D+cTv{C7qDu1VlfBH^&6KDU`-*LppN|dAH;V| zS6YJoMQ|MsOjony4d7fT!7}lOg9Dk!e}X!nI7puH*u)KfcCj!^ECj^%r-3mfv?{(Q5^KOzh?dUHth A*Z=?k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_fortran.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-_sun_pro-_fortran.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b97ee786913c4f28212aa96d860e622d29890710 GIT binary patch literal 420 zcwS>*WME`~fcp##OleRy<9{e{x$}49l!+4;{gqCs_B~PNIcIz9e+DE_F=uL@VSclL zK&K_3*O1#M^SeoUc0Ue*b#gOF5BO%MFq>XLU&XH8SOYeyXeYF6*R<+hu>FpJ|Vh z8#*n$b>1vzZPl}za>C?ZM(62=DwnbkA3YtEaq5}sHs^oW4Y{~K#Kq1!#kxE9*OpVQ z#WTR0ay|p)g&Dm2SFZjFNl3=p^igJ&z$*Hb_QD0pg`W}NR5w^O{oRlg?sYD(0^ z?@F$y!IPYj;FZjf%=SOwx&Uu_ynFujitT?EOKn*^`g#x4c}Mu}bkx&yC) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-_visual_age-_c.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-_visual_age-_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..0ca78097ede022a461365413e4bc0b5e44b3a9d5 GIT binary patch literal 218 zcwS>*WME`~06!ouhO)2zhXPaCSw1}t=hrGScrd*9(sME?($9ne2~^DCF5|se@U8Sq zSug*$0-mDM&hH;fxQckXddmCCKNptphXn*(3Ta?kmk`rcYx8$cU}?eAWn$v$%a&(p zXht|TI=N*9u9~DK&TxOP93R{r3=BL#90|4L28aN;hLzp1K<`7`+=%Ac=e^}k@5wf% MFfpJ4kRGrv01YcbYXATM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-_visual_age-_fortran.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-_visual_age-_fortran.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..dff776cbafd9faf04cf7b54dc9062c780cc0636c GIT binary patch literal 319 zcwS>*WME`~04pGlgtD*xhXUru%qBbP1Vpc`F+KaaI>zD3rn#>fkU+&8?lRts1>Z`) zl=bp|E8rFJC$S_g zzbLm@zal41lMAdU7ECGuaXwVrBOqo3S&=w5+xN%wWuLpIl;|f-?L4~h+1B4!tN=Mp J4BZNd4FEQ4U7!E} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-como.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-como.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..65d4e147209fcdd5ba003bee7b767e13d8bea817 GIT binary patch literal 323 zcwS>*WME_f14d>B24*G(DCa*E6isLNv?_nfwDXruUMBojebFhy!@+0H&eE&j)Dx;s5D-ju!V+>Y-ai*_wy)d{@3>Qab;#+6TeEcY_b6)`3W3;sX)vLi~A zzi06Yk4bwhcW1}Nf2sSO^Lm}?ORfFxt5U?`C9MC=IX34|^_OXfovQja7gbiNR8P_p z;0}rOuvBUn<*9vBDsr}|aQ&^aW!bOddqg$d{$G-?iP?SeWb*Wa|0Ny{Fa1v(3R!P# zTM^MLdTDFZoX7j8ex6ynuKUaE<6Gt#FJ*WME`~fLaCy#w}1b<9{f4r+V^h{0ip@B65OCb5mk(O^>;Ki~$K$%;7HM4ZKkB zt@KM-Z+Tz&=fV>HzVBZ?^8^M2U3$WGY)WxqDOYLxstdly*B!flS^tLdDbo{I*_U0| zAK`fYDE}Jq-C_%(!jC6}@2E;X^y;v!vrU7R&EGqJ9^UE^IgsacQBbh)d~`wN9=Yb# XN=LH`d|j&fBH8WUGcvr|UtA9Wq9RfS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_linux-ifort.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_linux-ifort.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8bb752e27ffb9f7e7c5a68ff93e979104529d952 GIT binary patch literal 339 zcwS>*WME`~fVm6|jAc+Z<9{evtr@;w;>r1D>5B=sD(j^EJ=F3{7?4249PTpSiv{0G zzm)Zsf9(AJv4kru!0Tk-r6*i%-R#vCY&&-~JZX|?R(gE*Q@2-_(C0^YYh>;=c9mXc zvY9*8M05eecDv^a;l~BSdEOqC>~vkJ`9tT+$1k6cU6>|0KWOIk8M9~dY?9i3Z$ZF* z0sr`r=*C@#i%UwnxrDrpN(M zKD^IsMKT3KUxKlK?5Zou|KKfctO4~RWRvK;SN>J^Y zE{DK~+VDi%7ZxIO-<(fUwC35MGfCdpLhj&sy8PLj3-i=d@^R}U#yRv{c}g*|wwc@8 zuB{r<&)&HcpTk5!mL=c82=&M;?UY;nH-Y6ZF9yJ_=P!i~texxrlTX!(*&$taFVD-J zZfCp4c~%=2;6$ke;5<@>?pO>1P3f!#v_heDgCOlJXU+{nWW>Y0?yx*o9PIMStg7N| zbAwb#b;yPpCm7=lOY&fC^!Qq_$_l#z{G9S`TbPP1yJapqixR3}!((p`+mvEfqjyOw zAk9@wW^5TWA)O|XHj~JH+P+SQ{ZTTdtbOF8ccCfsDOSPGX!4dHL&Y8pAyPTxqXwJS z0a_wC`1wUQlp4h*@NlGp73YbtjFjPCi!i@O_cmtI4)MOH)uBmT9&K_W@)%gf;=Q5( zw>6P3zqNe7fP#X^uOFl43f5~vF0{!vT5S#gX6P2v9n^@?=}YUEtSHN7b(!AVc$mi;oSl?&dBUzR>6RhW2EbkaqW zl8n{E%4Wd(z7sR;nwbp$Aru~f69z-Y=E0Fw~zWlFwF<2XAfk`5O*0qB}Viw$aPVRV?-w{UF9Fy zDdjrO@nm1Uk0zQpi&}Z#r8dxf8B)@E4pl*U64yE#QtO=I6fzcB6tE%@s1SEDsM zpz(->fqLSCISKV{2=w^puH;6O*bd*`=#wd$`SlwWgF{+x!qm*uA`zU>8n4~(*wLb~ z9-58*hHgZ>P>wL4nE$!QJZi{^VEV!dzP0^R)lN*1jZ+;NKEvCq%(=2*U_$TbQxG#Tr4lN9S35Fdt(qiA zp%O|wI$M&NB3FsH>h2H=nNpHci6B2LLcMLR${H!`E$xj|9bLGf;hmw$Z*K)SP*bDK zUNjc-Ld*a2$UaW{HW3`i1oZFx*Cx3$jY%GcyoO&CRgf4HE4krklSALy#LHtGw4c1* zrlxVuUByLJu!iE4#<;2ym_4yP`F?7y7%&O14c~gwwjE|Bc~;7{BTkAR{gQIxBQWJS zv>6nba<2J7o;zULQc3ws8}~1dvHNX4AGBcu4*VAVrVA~U{T*#`$lgM}+>f-tR%Lz+HlQE7cJ54PFF+d-2 SJ;*b}2NB>K=&!G(2l@wfNOE!j literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_m_p-_r_a_s.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_m_p-_r_a_s.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..66994a4fbefb3ee8ee7c0e7a42ded4f59fd1a917 GIT binary patch literal 211 zcwS>*WME`~fXNIDjM`8(<9{e<+CL|bYb%rdru?N_Vq}heU`b?n$AAPX=6o)>T=1>* zOIa^}9}i#Q*U%58JcZv1c*6od@m}C9;<;vOaOqO;r6)lF9A&(XE58)*6qR;<|5(CR z#M9MN-dFy)u!Q~9g|A^8A4=G?%D!@zE#0@WLgaVFuS(^Y9Oo}yEcIHeaYA2*WME_f14cOp2Bs4XP|klSP~UgPbfWQhTd&KUtZF~x3X4jUUCH*uwJz};;d93KUqU}i_prYH)GD*7C$w-x!OX> zWI;k-ZThs*Q^$K|N}j*`YvTnKhA!r-R*RVXa@EUD2(w1Uz5c@b^TxdQHBa^*4ck+G zVRMFYQGdiHw(i9Z7pH0F+^X$i+Oyz`>!povW-AMXr*c0M`2L|eA|>F#!t099PqIJp zWzR`EaQc^U8{4sY2dC;R`L4T5eix(VJ)^FU^)cqV%p|#LB|k6vGhaCPP2-;30wOmK z%B;_7|18!xFXoH2$NejwN58yPz1tI5a=&Zw&OMXmFML&L_RYP_>sBVV&FJo?wa@>U zCS6x6-?zvm<}_#SnkpN~BcHU4*PK2noPQ_#lK5exlU%TH1p;3N24+rZ;O+*IpwKnm zb}8JUW%i}78&6&-OtXG-cvpuY0}5bV0>KQ93JSrlAsWuUj^3{E!5)r5t}gLDo=!oI sL6Px60gfRaK%Sp>ymP#pkE6SSl5Tj8j&4ywVo8Q>PG(-Vj*=!90P0u9y8r+H literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_o_s_f1.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_o_s_f1.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..180179cea76ac220c6bd738d7af90296cb44b628 GIT binary patch literal 540 zcwPY<0^|Jv0RRC20000000GyUPVB z1@&H2?}Enw00000000000001ZoUK&LZlgdDyz><;=Mr0xEZ*DR2sHL+0b2~@vB?S{ z7;GerEgn`re}_kiR|y73InH!dbyrXKP;{{Nh#y`Q|4?*?w0Yq0HlS18C?X_-P0s z%i^P7#7CBk5T`*>hE-hA=3IbwmgrKkQLAj(iv8rNo^B`$o>7VpaZsg$DxJg+aF+M@ z_>tN0#x!77HFT(@_ciQX5jH9go_NT&e#SzO9uiSvuLl+sUYTYr-zP^FiZ3s-)?i&~ z10JJ);`M78I-lywToVIrk5F%6xm>w2c%}r~wH#u;*T74tQfCLh*oy6Rph58)^=oaY zJAe9;pG)_K)v<}cV(Vh@k)G7EjzMc1hUS73p%b?gY*aQJYiNDD~ zs5$`y)G}xM3yAzODeB)L*zXQ;!m>uAvDIlb`O&`i67A1es zM&k{-nuDZSHM@_*(Wp?ojPXF6CC3m;U%eAQ;NNz&&s-NDu-D-(GuY8Cuz1SpGdZ-0 e#8M4c!|Qe87tuc3-MVS~y5>WlPlbQ=C)xWe_W?ry literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_open_b_s_d.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_open_b_s_d.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3dd0cb757b07b91e30fb1869d001e1f898bb43fc GIT binary patch literal 115 zcwS>*WME`~0AnCFg0dO^LxH`6eVSyj-tVX{6V_SCYfXBx%3uit5-1IJ4bgD+b@X

*WME_f115h4238>mn}P8^6vWf3A-?^$ z3QbUODM;^yCu#}lNTJ)H0oqr?dOxcnS1T8`__I790G6Jx_mlb z{W;A>UwHD8zos+TJUQN5Py5RDE>?U8)83>Bn_2I2@Xpk^7PEmXg|nlze=oo7Y3`VM zBbB!s7gQ;(estI9^eYBVBi>Uir&NOjym-4dGHq!QtxZZO-Wn{$Kc%HhRH(n_j?;zI z^Ie9D)At*U(_KD84 zmC?oVOuoz4H@P11JYl$GZP=EipQc_WoI?2}4-}rxesSyStXHAmziu&6OU|g><<@cd zz|U~Elas{WtUA}YZT)|)i9Tn|`4+3#g>SrBrmLO%+*;-1oBvCSd%dN8oz~v@Eaby{ zo*02WfB34lr@b&ZXms}CqGRr>*pGFrDxAuc!8 z|GHItm~pIga>ct&#j~gRX2nE>R~(ky_IFan8&=M?<(6d|WMo((gI6zjTI4+a%oY3e z33u-_JW`GOr?K6_{Rp3XBhws7htqrH1if2km^#_dzi~L?5U+dkdG$<-A5M2zg7d!W z>n)DnuzjoF{&V8ng?{leUzhyyxIk#w={!U)5&LKc{vVu*p ze`t`itDTZ27uZ?Lz~*}cofQqSig6_aG^eot&#LT*WME`~fJz|V17$P*hXP^urFn{GuKZtj|CqUO_sjoP{qDjHNT6a4cNy=+f^Vf? z%6j>~74Q_5c7Fd@!d1l6)l=SA{<*M(KP=!Bh>G|8I&kqm}?`@cKWYU&Di(>v>*mI_< Q;mD+(Bwsy-6)TNR0o9O9LI3~& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_s_c_o___s_v.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_s_c_o___s_v.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..b8817a179bb2e35eb0fd6dd1adc0fe7893794cb2 GIT binary patch literal 191 zcwS>*WME`~fO;Ul0%bG)hl0B{+5Ne!qA#CC6tf7eQP3(YwwGf-0u^((%Xlvqd@KD@ z*318`fTyUm^ZUmVt|FeUp7Or(&xIxYVF8!E>YeZjyWs0})-(9h6Ru+`?Ub4(@QKS$ z$XdX(=NZdRtF|3Vk^Dw(j^;M*?$hUP!o@S#vGMff^EcJ691T@gP~WJcyI&*R W-b8=1lEOxn#SxRa8Mx=!1_1yTOGldk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_s_i_n_i_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_s_i_n_i_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f72dee0f1fd24ade5dd8682a95abdf6e6fed22c9 GIT binary patch literal 136 zcwS>*WME`~01qH`hq4*}L&2UvjaU4tPARW#UIa*re#`P)QhJ^N36uuAhG;nZI(oat z2YWaMxw^#rcsd0+21Uj@$GiDBx(6#L>3S;!cseU-a(VhW`-Hl*WME`~06QS|hq9;shk^|=(;U(}a&yl#t>e76DQD}Pw4#d)NT6a4cNy=+f^Vf? z%6iLB>uYIxo$3DmwY=~nPgnWp!jkZSOJ~ped!E$U6ng0i*Rf?r2MmueFS{bXf`j2= Hka!*d1z0l5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_sun_o_s.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_sun_o_s.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1349e74fe76bb8a967408483f489071b970f6a04 GIT binary patch literal 1325 zcwS>*WME_f1LheF41ymaYzD^vP|$HAYF>ceL2H>6JS;gG4;otYt0piYfr>eM!*A!^ zauBF}uI=V0KS?8C<@D)Xkw$5axiyY)mmT7D*rz2NeQ?T5H}h)!`(JrH`zCIy?7Ck3 ztmxU9H3t`G2a3I$=qTpmZgiqa&rg7{?@hVZ%eohLi_B#i6g>QS)SKGc+FICWEzsq; zDB*c%2IH<^og(vq+%<}h?v_2<4P$pTy=$($Ui$jNEuV`U=Nyoz9ODcj7`wCq4_ z(!^EHf}w(+CYqTB3jO|R)9-Lf!2IF%;N-6#w}~IiztHk~3-{UC2J6b|oOWM3W|z8$ zt7zW4X*uCjWumvGXtZaY3Y-=cJT1v(-trK>MOywFTTGaRlh>SaF$_r*mR++sGsm_s z#&^mp%RL1Gv%Qr&L`$VTS+0I!>2wWQ+$g$+`S{d*@{11U$V8XUKlL_cjldt#Ob@Rf z{#Vs6_@-WPwCrP?;1Ix8b)Dx+!&lDDhfaB%O;naEihiaexHSLyXDi#MY73?=D%vq^ z)+x3Xb60gGUkM36{xNIn)Wte)gMxB)?g;9Rs$4p4E$cL;+nzf7y8}`f)xU`zHm03OM92u_ig;|?k(F;HdnX9$Xed*_`&^B)t`@+ z=zhMqEG~a%s{7twra{)ik`@_0IYLXrE}6z&*ckC5>el8t!fsa%mU!QI#O2@{FvH!> z*mmmsz`D{y$GSAmw!Nszn*Hxq;r9G=>(>URe|yC{BLhoUyf}T)te<;+R>rE8N=hx6 ztt*UuU7l~1TD`h^f&9#m2mH<-s9dKr?ZBERjaxEA+EWUdHgQMT{av(n&CXduf7!%edPm@%_g8UiM}s$LH9*)2&W@JMTct5BDj#w!4=7E}CwWKUZ}27wdwU z1?;=-{62V~dB5RbgB8c;{NS_r*S5>>+M>7u5mg};uKOE>#bz)@cI|r^efmJMNb}Ag zezE;e-!yLK^9}Of`zci3@0dqwtbqFU#J9)0jVq^Iedy!V@NC77KllG|CG77l2tC%V z^1FvO?~~({*C)Rp7A)G4(EUSXSJlm#w_s%U?Wnbg^<321$1AzxpzWxp(K>6Bzz3IyphhNQd+-IBe zRcgl}m%Z_;Q1f+iLP8D@$DBQIV8N@G%O1XY{o<{Zyo{vGqgSgRyq0+M=AqP@1tKxC zp3ASvUbTGbl9NXd9C*lhgw=spYF(Y4%S%QEkH=yqV0SzK8`;aiAXEx5opCh-w2Z0r zh)c8VWb+o#YyWSbdsCS2%xY#-cgXe_axobSFa$6E%+75VrSYTX@)C=8Jd>7ekuZjns*WME`~068F*g|Zp{L&3$w4|&ID_U47mJ90w4;gE&$_j$V*kU*)YpR-S>i>pRJ YPGU(~eo?M|XkKPTKw?Qou_hN603fCvp#T5? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_u_l_t_r_i_x.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_u_l_t_r_i_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..80c9a09558181b027a9f5aa4bcc86218bd3e9994 GIT binary patch literal 187 zcwS>*WME`~fNCJ#17$P*hk}}~+gM+{7I^0wIdip&uaF@V$C6VFNT6a4cNy=+f^Vf? z%6j>~74Q_5c7Fd@!d1l6)l=SA{<*M(KP=!FU7h8qkRm>0PD+o#VD5D)Kdm~&*(mOqPP{$AK~ SrmNw|q@E;SJ%$CxjlBW=_e`Jw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_u_n_i_x___s_v.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_u_n_i_x___s_v.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..91cec6f1ff4b0f743feca3668eee006e29d0341a GIT binary patch literal 165 zcwS>*WME`~fK(u^g|Zp{L&0w@E4jt@tJbEUzwRx%ERK6=w&ZLEBv3JjyNvf@!MD;c zWxf303V4c2JHLM{;VRM8Fl|6EwY9~N-wYZ%9elCVopxQ;Eoa{TgnY0uh*WME_f1119o2G-LMHUr~-D44S=SLe{L?zytltEM0Lb-^!9E&4M95~!FnH6%8F zwt-0P^Y9qcYL6wE8o5);z2@*t)o)z9)c*vd`NmT`hXO==f4<+WIAO!3oX0QkRiFF& zVdpW$LzjEAa}(_@Z{eH}lHxFl*-jL6J+kE`{HKAK30#YHjRsr^~{vUV5q{R8*Y|4;vK zce!83$%13w5~BSZ1^4v4dnomL zNBfkw4z+8)FfYI8*!C}xeNt(3edx~gdzbdAYn=`Kti4xy%|fro{xhTBsSA03Shgp< z#wW`D!?nhTJzmwlnwei^AHNORdvV^X@~bPQ+}}ujwVN5&BLyytn4L!b3c--HX{K}(;So9?-E!JToM?DFi})kZlxToO`up8m&_@3iF2(d5PD z92Peg%={)@eC&W9ETsXHSS~QVr9+d^Ul0LGZ|^rPvFN$V`%3Azs70Z2<=ct>4_2b4 zx7vw&{SF(5wBD5$JHNpoc56dIrrHsiOCoEmGN-U~`UTF~amB=U)s2Vl93SmIu<7{d z>|wC>Z@R28)j`Dj`mSl`%WF$|0v@w0bn6q?^^)nSlhYJku}Cf(Q6ry80Y#+|&vH(^ zpYek6hq0Q(olh!_oXt)fB$h?;d3Ehph?wDSJmI_d(xX!<{w;iGvFtAU;Y;ml4|;9y zZ(%xa%KpTtpya>I>g)4EY_-{MGe~8$o(P{kEhTWql<)eX3-ue;Nr{|`e9PzM`%-|p zCG(HqO(VRJm#&t5O?&Si*|b#o5i6YEN^%O7rlD*ZpX6d z`5arzwRY`Y{VLY<`2U(CFV0+D+tsG^?dcz{*&jl9v+EVMZ2kY8q5ajrgeO|Rr#W{z z);v8TH*MnVHv6K^mk;wlWv$=>1vv9uaJYK|BP$sa1&knZZ~-AIJMo!=Z}NoM^;}aV z9*WME`~fHWYkhq4*}L&1-EXF_iEy0N~?9FaQ7m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_windows-bcc32.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_windows-bcc32.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a6fb3b520be688fc9b6ca6f8bfbaa777a4272d23 GIT binary patch literal 1778 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_windows-g++.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_windows-g++.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..aaa046a497a0227f5ca88ee4846654928a44d0ba GIT binary patch literal 123 zcwS>*WME`~0Baz&g0dO^L&2YKI}a|&$f-K8(rNdMXJTKRQ(T=GkU*)YpR-S>i>ro8 zwX?6Iw`+Wmzkf)rzHfd?X-;afen3uQNm_nUu6}rCUP^v>v2J>DvR-m-Vs@$~7XUBt BC;k8c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_windows-g77.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_windows-g77.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..8414de9d7cc54d9e729f40e64a8d71917eb89bba GIT binary patch literal 337 zcwS>*WME_f14cmx24)QgDCa*ESbDq>IuNdTkIduH3JZ?nxUi)5H(!%>h~c!ua%%s-pWkoX?P9v6 zcH4mo)u&lygAX3b)?mK=^;&|2azo=4sg*N6<*be3v{^an@iB?7r_ZH5Ua@+XapSpM z;|udSLtZT3@?Fn!*Nq(>(Gu$}@`=nY+N1EX{15xWQ>EJfk8*PSj^D>tWis#ZYUz_% z5B`>Kb)LR?=9=x7zHQp{SnOQ^)67HMd7|wa{pGh>d0u(#Kl-xp&a3=G!5?{kt5h}D z&SK`B@a*GHzErMwSDvl!|B7}cthD(*XZ=&Zou72H`1=Mu078V3OV#+{)6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_windows-gcc.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_windows-gcc.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..9766dce5c884f3bb4da4f4cd85aa8b41e8144a0f GIT binary patch literal 1195 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 DdM7XG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_windows.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_windows.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..fbb91420bd4cede9757bc4a24e50478f8a5cf096 GIT binary patch literal 480 zcwS>*WME_f1I7gm3@l3-pq&3u5U5kMK1M{GKP35o#oHTVSxRE-UNRtoiaBRPE@mAv z5UG719wU-+=-G^YzcxfY7R$-be0|4Z!Yw!5ZcY$Oz- zdhdSxdd@jIx#>>$N}EG@wkjf5&V(DNGxln#^r)?=VDp}Lu|su3?>)|dbJqkuzYPn| zIMvahp*&%t%2^K`Po_!EEUTvox!zx1#9ZVYBJcInE;Q!j!IY96td1OKf~I}gyCeEo z;riR1#f)or2p>7H_|RkFqKWx!!tyf4Tjp)ufAHkQO&kH0_OFzjo>XM%NjpB?c-87$ zBya1LBdTZS$cj3M{$CdEa;Rwae|3TDfhSfMe))a<@{8~5kAGa6mT-O3a_5rA7d^CQ z-~N4Qzxc`C6NhgZ%JL=#@#}JYn0uvCC1q!{xaO-nr~G}?RePT4H*36nc2saxyZ#Az TAEqrAX8(z)_nyx@GlB~Mr?TLf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/_windows_paths.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/_windows_paths.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1cbaaaa67fcb6cd5fd48d68175980c8ee64ced62 GIT binary patch literal 819 zcwS>*WME_f1I8Ez2IdR~DCa*Ed|mS|ZC#v~+umB$28BAOxOAz2a|}qJV$Re__w$+z zB#yqX?9xBO?K|xUk59Mq<9M&_XS9PFJvU#{6L}dp?pC}_Fi1aMC(O>6>BFJ>X_tXn|Bw9g^Uo#x z1D;Cil>68mp0rsuVB(=koh{ch*)+99FBmm986EupzdO+lwPGvdcKKY{UvMH-+o68%+aIs_l=9Y_DY-n`E0C+)WFwpZbl>{G<%bw-7nw4! zy*NHc@&99qX+`mu4qelnvdn6`>47$ho9EJv1!k82+VSFW^!2lyQ@Iwzcs}r{VZQrX zFN9U|xtH=LmHj+#j1nGQNi$#neAOJy6-)N0mdzE2Nv(yThJa^f3DN5 zzzq8(AA!^*zPCOsfY#?wfdGALN>$UCI zoPYChY%yX=W%&Q)NC1bb)Fi)2ey>Yv7|!o&%3sp|hpj9cC8oj8lue;f z?Gx9P&r#2%=1HqN8}rOPz;@a^e~wAqkp}<=~v0DU0Qo6?YqGht<$`%xvi2*WME`~068F*g|Zp{L&3$w4|&ID_U47mJ90w4;gE&$_j$V*kU*)YpR-S>i>pRJ YPGU(~eo?M|XkKPTKw?Qou_hN603fCvp#T5? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/cl.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/cl.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a4b4c987f38c088a5153695fd04ef3ff6fdcefc2 GIT binary patch literal 1161 zcwPaC1a|uX0RRC20000000S=o01T7>0000000061|NsC0|NsBm*7kjSFO^?r6#e=4 zsEbZq)|$Ei00000000000001ZoYhrbZ=z5TefL*P>?T{&53;X~F+sevw0s4yX`cwf zb-i1J2C&`D#{a%^K|~bLHhtL_^$v4q&N<8+ZQ`6un)pCmRT*2N_3WCWbLYyccnke2 zjPc`5f6%jc67`2|c9FPwuGxfnO3@|-_;%SAASisWg zdj>3mY(c^I`~@$=bJL84;Ra2>0-iPZSjbZ)4TCa^f-#Gxn3i5|K+mY}A!K0LrfxzJ z?I0&v0I4_6;bd`+_Y%^WU!2i}_lB$yJ)W>LM&@xsFF_3H@17!`>xKgpA}czX)XEKd z08kend+^$W9?>VAH+kJ6@<^<)VH1}hWJM*sYE@KHUENTPTLVj~Hu=~c=nGLC#y{hJ z38?M*8TbkHGKw>iqI5I>>EZ&Z%n~p8vom1Q(~~P%M0AL2--#BPl+%U)`omp{Blz}r z56*fUvK`TKT!(0;%lofEh*#Oo5Tm!m8G*o-uh_c`xQb?C8;rjORnVO9NPsgVywN0O zakPDe{A|V0k>9;xjjj*EijH9z=G(%z#Kwa$z9*7nm*IkzLhOnMD!2o=ws(iJXvSo! zl1hU%-PZX^ZpD{M`5UBfE&%=GJ^C$8mT|BOX-AI@i;fmW#z6-ho;33^<{z0MM|2cv zOXXmM1ialeN3~a1pPlMO96STdjUpDaS3;g&i3Mg1&~?Q39Y zCQg!D0Onq@<-hY7RcK$EMr}5-fZ&)Q$ni!H)JYC%yL08k&^D%)L`JP6Ugvfavrb++ ztXfHRaO$FS8lM`{e2T~uk*1C~R>@JQr#RX0z)%F4R?fEn4)TA_R=@kCvDNsMcn%Mh z$F=KKAK6a9YBT$vN>+0GGSN!gFfC$QhD2-|O|zKN)^WpD4e6iTm@9I^QZ#z=QN*?P z{gs%xaeWkbiCV<&+E{%)rt#<8M@+c|=~ETIyy0FiOgP1X8pZB}-MCmE74&Ps{{w-S zrIG*u0009o000000NMZm47dOQ000000O8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/e_cos.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/e_cos.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..018999f626e9ea668d53003800e82e795a45e935 GIT binary patch literal 1183 zcwPaY1Yr9B0RRC20000000Ywi01Bu80000000061|NsC0|NsBGaQYwwmga=_+8f`T zSp0>q+RFm~00000000000001ZoW)jcZ{kJ}{?4x$L8XEkK=<{OJIUA!anIP6y;MoR zSR1p3RgBm5E+weC|K9Nn!A=M{sjV6z#p|7C=9za7K<)Ef78(*+05_$At=9SH>6FJ( zO_bahF+Z?^Ph_#_g@g{xrSXkK;hhl>D{|~vU<4158OWJ0!O0g-^qc~_EHxGQ7#y5h_~gNoZ;}33GhF8ajX;D7n#y5#ncO#^${&J z9OOP-SLxBg@X%=KIYK0o&7uU=FxASZAE^`R%wx@sA!)(W%7{Soc+Mjwk|cc>v}lq zRY%{TcSB-&VH7@ulq@k^?%ZBPcf_zTX5}@w2Brz}r%f!gWU7uz^W9{N!NW9^@xBg! zH_c`hw@l)K5!t$q?`tCym|+h!mx(Bp28Oa27r?-@+BNVzTC2cDkkZ?#Xgrs=w2lo1jT%8IVc7vOsTVwyMRr{$R$HyQnHVovn}ov;!K0pGS&@Y^ z%C)KOx#4hZMNtKczI=ky;mfCba(zhi!rk|2J^8R`RL*0;(s~=la<{`MtMlT=MH%lk z!%|hPIazjBwW7|`9DDEfZR>r7+iDl%|5wP<>(0TO{fY$fX)NKkCXLUTRCnCi@ zL?9g)J69ZpF>RU;YpAhOHvs0~YiH=2Z(V6Q({csgIMZptR(M*WME`~fOZB3MoTE0@jn#U_4Jl?Y|PiOyg2*M#-E;*y$XJ63`n42PVWUn?n4Fw zZ4d9p7nWRF*ez>y{MjTqHSw2AIrQ2m&vyFyKUs5YazXw4$B$3E-JNl6MQoQimxV@W zm0ay@xiW?($!iDpE<0aRzl!@*WME`~fL{y@Omm@Z#{W=ow#Y)v<(`fIzXu0v-mbiE-oaY*lmQ7;%$Ymktlwb+ zftL4`U7-&y$UNX&dD{ggg$pukemtLjQ*z$< zribfJFxZ^**}7v<$G*LFzTPw-g`2CWX%72 zO#Ak_$lxtsV{bXf`Pr0+PATr?jz8$j|5VO9{T|!$6{nWJky#k*WME_f14dT{239r(DCa*Eyi+^H^I(?LkENbxTyh`m{(a+bS{DNnsF<^LlCA$? z1A(^h|GI)BZYgrF2~@ehbBVf)`X+Q7ESH2V!?XrzB5m4LY{oAR}ZCRnuowJ@c6K-0x zr9|}{jGj>?8GeH2R#4(fuD+<?hyDI!Sk*}Nv?YLjK!a} z-Z=N_V*9)gvWq6?#5=tV5@U;q7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/k_free_b_s_d.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/k_free_b_s_d.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..98eac11ed24d078ca599a0bd7e2ce60eb86fba19 GIT binary patch literal 408 zcwS>*WME`~fU^t?j3=RN#{W>D!uZdq{$Lo>{}~6KyC*zv3)QP(VL$>Eb864|ayJ=B z9Qe344(+1INW-o`gK zz=8n?ycrmnIG|y%8$^NvgK_CU{TGWx^OtuVsf#mN;TIX#!^VID7;PY!!9LhEM8nzF z(c3jX*uyc%)g|7?(<#U?C^9}Mz%j%F$n*1#caC@SadcNu(hbki(Jd-SEXmN#$;`{v IQPSiB0AG`!{r~^~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/syllable.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/syllable.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..de064853109e28642709c6aa3d0f85ec1617d4f3 GIT binary patch literal 967 zcwS>*WME_f17;2e2DT#*HUr~-DDb~0;L+VM%S<*(|HOnRxt7lktI0ATfr>e`A-D4$ z83@!q*LGXVzu@Vod&`$i*tUXE$!Y5s&Y4FP!(^?qtz*ir*5BWFST$F3MMu@K;qXg!sn0@om1<33O1u%}(P|$4TWgO<+f(gvzC@H45quA>za}&#)e%tAHf|^(QbxQZ1n7^GZ z`Tfy&zUEYes*VS056$1svaR}-_V2>4w0m!IEhFsM?g_`eUiL7f;Bwoo<(zk$juxm^ zJgY9=-xhfGZA%lw)Tikk2_}`6%vU~{KNNqZ{xs#Sh+p|s8=b{VmzlQy>5=tSzxN|T zF6{g4@?B9}lP;e#_3BIPKKk^)Gs{cyH}Wm!o?U!Cb5}{YN9wMVa*HEsR9_WOdtbPs zX<`Cf>B)aV5;7h)#61|Fnwa@;9iQ}$@r-fTl^v5Wvk6Uoz`Wqw$+cd`gjbgYJ@yma z`d;SzP9HBn>wt~2(~s?CRCk{pa{IZyav$ob6UNy5+_$t*OeC6_kolkfDwwdy{&_;G2o1H@QTebr;FWs&;d$D*@u*vsl ziyeKZO}p8?YT9h=!o%h=f4(31tn=sOhB#%ubQ4LI_0Ic6<-&^ohi-`NI32M2q@=lk zb=T!$MW5*VOwIAjCC#fHSlsi0>s4s}GxqTe4$*K72ypdtQE>Kk^mdI8jtmZQ^^Fe* da&_~Jh!1cK@len&EiTf}%u7kFNG;an0sw$Ow>kg- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_platform/xlf.cmake.i b/CMakeLua/.hg/store/data/_modules/_platform/xlf.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..77375c5e7945b5c7ca7d696081f50e7c953e804f GIT binary patch literal 210 zcwS>*WME`~08Jp)fU+O{hk}e<#}x0+;SH^y8=mejegDJ(d5Jj;NT9ShwM4_&*U{TG z-o@3;)6X^D&BxI_-YvhVq$n{@K}k2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_system_information.cmake.i b/CMakeLua/.hg/store/data/_modules/_system_information.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..d20f012079aaeef40afb07da4aad78279dc9b17b GIT binary patch literal 751 zcwPbT0ucQG0RRC20000000OT701OrY0000000061|NsC0|NsB5i1vmQfgG^7WOCL_ zY)(Rf15gtH00000000000001ZoaI*EPunmMe$QWV%6Lensol$7nD!777d)CDa*_?C zN>SDt8m&z##~C2h|9xkNmQqsM0YXg6)5Ul9-RHZreIX0J5hu3XdN!xUMJZ;P%*&!< z7$4vw7nOudER5B~ZnHWQUZw4r#66VuPszrnP&LD9~>QaWN0iz_c%y^PlFfMro zMJa(_=asC?j&V%lmECz7vLGZZKDY8>G=&zNjuEvvs0jCBnz|RDX)6bO(pqk4W^qHri#r- zlni3+tKkfdVuvB|-A8&b0L)?W^`+miz)(8_p&@*?8MTiFB--2M6_}~oH%VO8U0{E# zxFC^$5!*SjerEy>Zc(}DVE8BL;R0GOV2DB^E{3KKhvsc~@2nC|;CZ(1zK23Asl22P z|4`;V+hM_*=3R&R!Dviid7U^3W5kcw@1~wToqE|wlvP(=OE9+=tl7bTQm!CAA?&SB zNy}5E65sk#J*NtrK<9_BwJ=zbCnyc5fBJGhn<&qwv)mXX$H~BEDLD%2RRRP|^ASp`=UUVx}^f)V8m zu5vla3uTU2Kl36JHy{P)hCWu7n|Prn1=x66Q0b$6u*eyWVm)CjHR_26*pXaq@rtKr z?||y`ta1Ho=U3r+9}zpqeV9DGp5nw6<5d`8D|~?#Om;K^SHkxpC38PPoy01E}5rbOJYuTNampe^~5T)45vKcPBqZ!JogDA4Q9z|6WR#C6SsTr^(9UoO?MWM`O{^&;54Io==IX53)`tS92S)^U+7%nYT)jROOXumIT&Xd(4oUd6F3aHFWMuD!y# zt%loM7PI5G)nT({yY16qb@dI0*shw}kle!;y8(aac1Cs40 zifPe>`yip@5EN^S6sv#-r92Rn=tyjhzS@8q9%1dI$^d&F)!bJX!A1#Af>NGl={Ev% zyfBqC?}+WE(kw~p;*po7NbEOe4C)gy|IZ4^TW0ct?go3+tP*LW)pB9;!?5-8Jzd{) zWBL)D@L6>S)0Y^a$wV&27hdud5e@*LHlsX}9FcZWSoc||dy`aig~8<`XgEITThje% zjqxpkHzcqfp3U%W1-21{Z9q4{JZDem?QYEurtuy}TidlyyOB??Z4hPO_$=b`+y`tf z(D)`8&LxxyA&)>7qcp9bNzlbu6p)F>CFC(&m~}Dx#AAisr@QdLv?LWlGrOESFtA+po literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_test_big_endian.cmake.i b/CMakeLua/.hg/store/data/_modules/_test_big_endian.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f314ee9698b5e42bb216b2ba7d6544cfeef10e84 GIT binary patch literal 1192 zcwPah1Xue20RRC20000000d|N01@N>0000000061|NsC0|NsBxR(?eAzL;rvkd=`v zh7$PbTVu2U00000000000001ZoW)pMZ`w!{e&<)5b@D)@Hreb$ANo{d2C(W2Ymck4 ziq>*qfKeSA+2f)%;=k{)2ZJ#fhfQ`Hkq2hJbNOb@ZMcH>&}VZVF?b55Nem)}851md z%9mI)<3R-C$BK2XKwGluH{f#+O9ttWRIn%DDLnE;35*j6xe#F~i9$e$OZ}cc^oiBi zRjd0&b#%37keht7{DNM54-y_cq9}Thia23~nS`ZTC~&QF)#;e3=GfhuLf9(=&<9;* zq<$g(^>ewrQNUEGHX<%4f7kb}m0SwIB(AFtN!O(+^$^%fwL#8hK{8$PXaV;h5G{a5 zf-P85zzYf8(hRRpx`hRb2kY{m?50!fp_AHYpH9ZaclEzWSIMH3FCsRBbQvc?0nJoD z%RPJGdzPyYEz#Pp5^OQ1?)R ziQ$q<{AlKl$EW0gle%<^mKqv)S1_%7b7OmO3ttJ|qR$ZCIqFL1dW_UZ*PCIxP z2Awu!EkMhw(`;*?4?TzY1Kq$|yMC79j&0M;of*%vkfnE&rGgaofu-r~^p-~oR1RVH zw-fK_mg-FWzV2+wrCh(8uMmye&SZ0^nZY+kpH_A4$|=pDnP5KId??D9y?^bp?a{GE{ax>o-^*HL zk0*u7%WNK+ddx3=R~<0c>XdhT+k0`TqgzAwwKfkTLQ2){W^2eteui#hhHJKGQMd<( z49Qne=ty?~KZZ^zVx*w*%iZm@xQpY!316=uj`FeQ-L{kCOcCIJ7V+;aNrMnObc9m} z!^WO*oH8C`v4k}baRUodlCg@Wgo!MPsx!%qt@2p_>uD_4(b6)Xn(*s-$)`)0K4Bn2 zg5~qLayJtN)#|t2UbVLFYuUu5#Pr9GtsxpKY&rO>;x$WF)0=|>-`DzPU#R1e3#Bk> z1}Zj&s#vvAyt$7@)?Vgho!UWDxWLJJi>;5RMNfknpU*M=BC(C0^c_rNY^yVtK+1&3 z!${h;-LJmtXd|6s;$XvZ^Qn4EW?w{4z;JGk^XN+e`)V1rK~wQ~aW}S>E^m zJMW_h%!@UfMexOgHVNfIZw zVZ5l&Rr=evcAo#|u5J~iDGuOkjvXoo&EqhP*G2Qm#3~aXAEN7LImm1tqT1k7Y@Qj? zP~xEoi0X6Zcw~7^;LQUbvg&C6>yA>o@?Rh2>69-wWSpKlV!3nij~FO+^4Aee+s;2r GMFUGZU{t#R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_test_c_x_x_accepts_flag.cmake.i b/CMakeLua/.hg/store/data/_modules/_test_c_x_x_accepts_flag.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..86acb151e0de8fc63622dea223cb37dfefadcb58 GIT binary patch literal 542 zcwPY>0^$7t0RRC20000000G_r00jpC0000000061|NsC0|NsB>7!abiX+)awmK^ke zY7>UHX)@jb00000000000001ZoV8O;Z=*02yysUu(H_Vl&Arkds4-d8@FDE1S}78u z)Fh|`N4D7}s`&3~^U>^X(_S{q0f{&BX5Jg@E0_UgQUQ8+fSm94WyJ&(TtEgzm2DI4mL6!>+=sQODsV1imLO7-*^_I@UHZKA{oWytTmUs#? z)1jZ-Sjf?%XzE;*yaskCrILozH_m!kdr43nlsFn}l+*CfOqAJE#SAJH7p!X#Og5F$ z<4pnwC6Rr8xWVHz-2}k*>@cF>V$Tn;3)gQW*cwzXiwSWS*e2AWD*{#*RatL3f5yy0 zX9F`UXtmCTI;80ic4@btPyHw)w}d8sxcD{>H}pj-8n0;j9(Dgcg$~v!eMsg) z+30_IWYQWnJrj--$2fG)B{G%_jhG5XG)f-ZISR5D7By<$sGEv!1~mZ7Wr~SiS(~}O zI^pBFI}Ntaq-4+VTB*WME_f1IAtk24)ckDCa*EaPWIH@az>#m9*3_ezZ(-*2YD$>llzg#hkU1Zf6~G z5NLbP|)|$F)byD;7sSWx-(`g30<>zb!o?~6kCyxcXyv`%Zk>ox+w6&c(&!= z_#o|OUN`1tJ`9hU#3dNJ6%T#a?JfvwE%FtXm!9)bX4kpNe{X#6bvysH=Ka^D_gfQO z?+09y?A^BP>ZuQB8l6tGa0pH~FY$E4qJxtP*EB>V^%RAfX|>sMJ4bAgbvjpF;I8n# z@pWah-Iw z+z}C;XAu88>+(kyD+c$!4zt8oHq>o+wPdPB=FF-^%kr*<`ZRs94Xg}eTB_AA(6mx& z)jb!{*PpC39bUiA`{%a&`Mv*c#Z$lSzc4Xd%Vff(jU1U;TwQG|wWo*K7U!p3$=iJ6 zRK|oicLFwcJ~P**WME_f1IB|43@mpTpq&3uaNIhtY{^l9STF17+kzU=XEqco9c4fQ6?4vp_~tJ* z5ZL=XyeEV2W#Z(!*?H>>cV`@K-w?btXbVSUW&S|a5f*Eax4^CP2G-21a&|7-z&P`axR{bPk)$(nEG5&ST$HH#w zYP{rQ@(PqVeD+o=W8Ve;Nyk0?X3jsZp=9DZW5*nKRW0UOv;8do9aZ89yT|b^`$V(K zX-&VNM~*EL{~R?c_CNdM{l1FvL51cozpyEa+sZGPcd?l=Pe}c4>9@$_&cv%SvIjnu zZn@uLSd?IY#_s`>exHu#jZEQ{tAy|5NSK=iNO@k~A^ui)?dj>$6_svoE;;`xdP?hy zH1~7&Yb6sIHosiozT^9fLfti?>e~4{3tN19*4@lEsb%en;a2RCJejmb`YS`lzDH?g zivlccr@KbX-^@~bJ7CtN8}naZPI;BMWxK$cNpJpbIT-ly#N>0^=Eib={h)5UJ;vU2 z(?tHuSr2#b_BQmByM9dUQtqkytdbeOWmiAgxzYWD+M#(1!<<$;pBKc-xt)DyjjVOO z)rn@AB@<*-=NmAteDizxhqwD@FkOs#d0xsX*5btRc7fmj_pvvBe!Rcs;ZNRjr;^#Q zs0RWwU;?-cjaNSq0ZIT96#P!Dm6*HbD^ENRbMb7s6KM;NFrb1MAZ`U>EoB7-XJ1Ee n*LXkwct^ir&v-Zgp!i^C{{UA7U4@MNoRngPqSWHjoDwboIa&_g literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_test_for_a_n_s_i_stream_headers.cmake.i b/CMakeLua/.hg/store/data/_modules/_test_for_a_n_s_i_stream_headers.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3319a9a8cbdffdd10febed9db1ec09854679acbd GIT binary patch literal 375 zcwS>*WME_f14eTO2BvQeP|klSuo979_>=7)TjEZUOU4)e>@H@xwuu1=RLq$>@orYL zfynXqpGDfgxg~1fR&J5Vys&IR-WNTKUWqJU&qrSO>n>is+p}v^OzVgLKjzLcwQ*Kl z+w3O2;>*i5R+$I*o^LkeD`B4ToM(;kCL2fX(@|2~UiJ1ijU`vv)-KFSEoHfSz_ls+ zspzdw#k(rgZ(d)za^ah`vx=qSlN5JoTz_@YcbBj9FBt{vIROX1C#?~!oEW%AIJ!%D z*3)@gruDu`<(0pFGG&RZRr*CKL%&PgJJ?cK5^JyWZtbb%wv=&diIDkFyHP?;DSqEl z6~XNqf}5vsz2|?Hng7o^P0V?N2E&O=!|ZoHKbTmmxf1p)kUXyGv+v~^rMLfc=KQ)o z?b+6nR~q$Yn*WME`~09zoofwCF@L%}4A*WME`~fKVWgfU+6?LqTKH1;xLHlA+;l8&)V}A3k_iZ=os!5~!GS`iyqq3Ewkk zE}uA~eKFAEoQKY(uD+{JR)swX3Si*UOo?Ka%>3ypmC(1gajVm^rrxH7Tbs6(EmQOG fTdZSm>?*uwjmFj`TQvL+9+XS)9-ywk>^Ky1-_{LRgI~W1rLZpz6iu!**H#5#gude}PBIizl2MkD_}V=% zifrAISGC|J{Cf6j71v#3tZqb>)1a5$AbLa_K!jL$gDC_*PsL4wvk^dqDMi4@P4MnWlY|{+ku1B0>zSjw zl#2H9^Wy2r2PYf0-mvTkN(s7J;kR$s30cC)4$i#(!>KIbN_L_Q`gn@jkoNd}TtJ8{ zQy?+JX^d9=O#TE5$@S5z{{tbw($PcfHI5g@FbyUbMx6zREJ^PUvoOjZc+#1+Gv|%G z9}Q)>;c8!tTHFu27vA2!H?hn0?`d1NbR|62W(UELz$q%(H1g4N0NDE=zyLYjXgfB84^|A#wPN~+IduX1bpJob3;@wWS*ulpgm^9uU2d{7@{^5Osh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_test_for_s_s_t_r_e_a_m.cxx.i b/CMakeLua/.hg/store/data/_modules/_test_for_s_s_t_r_e_a_m.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e13f60641438aba578862e0b31bddef1e62100ac GIT binary patch literal 196 zcwS>*WME`~fEFO04P`U_hk~zc(*4eFUfOT8IUhcElIHY7-*_)EAc2ZGwq1^VO$H(^ z-~WpU-`V2UxgsayqtY?f##Qzc&0gwDbCz#UdX#4L`C0Cb@9Q%QHYjQC%G)FGyJchY z`l6c)>&ptO_h!y=Y*?}|)5+|neVtv?j2f24ts1Kyzl;%&KTs~ZHg#dE-E=h_7XUwiRzv^* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_test_for_s_t_d_namespace.cmake.i b/CMakeLua/.hg/store/data/_modules/_test_for_s_t_d_namespace.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3435eb43b1ea48704b47c43007081cf503790cff GIT binary patch literal 504 zcwPbc0SEp70RRC20000000FoF00h7Q0000000061|NsC0|Ns9p@Z<{a_hVSz$j%Y5@izVA_?p)(+XyHTPRIL;Z zF)$4(v5{@mPF4Q4!KP)M=_VPZ;F ztZq1~;QJ5fD4FV8Z6vc`v+xGhZxRneMDZ7rf%k19Jom0=0A`b+&t#ENM0X|=yGz@~ zO!B2ImrK+89LHf2Y{_E65Mcf?9Nz>HGP!<`p1|lXfi#ZkX%&j9Z<$(Ih8rP`Ni^13 zme0>l5$|ZSqxmgL19Y<`=e@l}uz{)S*G~4vb_~s0^t|#0RYvIO`3LupfRTX+K}1O! zq3zI+Tb?hNnta{iahGTNjRl61ghc)nqVdS4W%h(%8mITC6%LC>7WcaA^|BQYv#~1E zOdcEF@P~1_@ZH_z4u`@G*Du|6cDO2dYV-lT(Z=d((YE5r8VOfsz320n0rhFm_uMr= uwi)>+$hpvO#{TIw?EeKiky6ONV_p{~@P6iz|LUB(*n9tYyM6-1@M!?akMt-2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_test_for_s_t_d_namespace.cxx.i b/CMakeLua/.hg/store/data/_modules/_test_for_s_t_d_namespace.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1359e1dce215238f63040b234973a7d808e98fb8 GIT binary patch literal 141 zcwS>*WME`~0AC>XfwCF@LxI<2)#I1`-eC%>zu;H6<=~BvPkpo*kU*(&W?phmX-cYs zO-^QUi5*vFUWr0(VrHHOkfEcHoRL_h6&ve$THsfQqXOR`MA7I{mz5aA_^SNS_ z%UGuRFAwJRJ-bP2dJuruRH{APzGT53sWqC>DceMG0n0c|0P(%Dk&;kvqp!uKl9qZ? z7~^*8t-eD{xOlI(?MD){yH3AFf+ySmxwTU91f>VIWid(;tGd5SlH`s=y$R z_~zhw;C7tuzzg~w3D9?2S*KqP8Ir{=*Lgc2N((yX5wkGnKbX3`vl?t@A?IIeFq%;D zf^%)5f{LMmBO%24BND2=6GlTAC-DqY$r1_iLV$=xRW7AsGx)#^nAsh87-&cvjqhq$ zY>{wWB`TqT%xV6@7pAuSUBQ&i6(DvP($RE5lMq*UHpi_Q@<=VQnqjnwr?oac-}d_+ zl!^pKrX2FrBX!#+js?F&$tXQVj7p|K|zHjVTpwF%ifptO@SBjP!QONT+ucFPT#(R?$B?KoMZd1^t5Q0Iz~mPbCG pJb?YRg4qG-^}0PM9S*FB^|h4Z{V-e>ol69H+;w-R{{k;wH4BKad~N^$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_use_ecos.cmake.i b/CMakeLua/.hg/store/data/_modules/_use_ecos.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..74d49779a5f25d980b0ae30229f9c9ac57f24c80 GIT binary patch literal 3018 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 M`_C)?1)wHFp&Kx*kpKVy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_use_pkg_config.cmake.i b/CMakeLua/.hg/store/data/_modules/_use_pkg_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..2cdcaf7fc02603fa2a5c4e0b857059ea10a71991 GIT binary patch literal 844 zcwPZa1GD@90RRC20000000RsF00=q&0000000061|NsC0|Ns9D26k@slq^=u%VWr{ocRg1eFR>X{TwQD(yp>1Qrzn3ZbjC zPLWBR)FRj@PRgo^|9xlY2N|@T+O0?hpM7`ly?b^S1|XJFq%^0nStWx|@R%jA7EzH> zh(!kGgskXE_oNFJjTxsB@&~n(ree!D9wlKW7Gt&IHHbxzL+mAYqS` z1IdzNO?fWQu_C=lE?R)FJIV6F=ZjA;cCHQ24;}k0fJc ziMng$syUcoGFD1q-QsqR2JI zJ!?9jm3G8K6o!mPvsGeh=p8jORD zO{X0#iD3johkkiLzbq-vRT~BmIKvlbppyYqpqbU_^GhdpV0b7e_N~O(=RU7bI0RZTz6yq@sa)(cdXgd@@i(}sR^Qsx<2qUYHo z`wm5%jSbU=&X4=-p8xEC`W$9_) zzhf@%&<9Xgi7nh^4vsRD|gO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_use_qt4.cmake.i b/CMakeLua/.hg/store/data/_modules/_use_qt4.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1ee0d73af4dffd3bc72f106ff98195055f7799ba GIT binary patch literal 1144 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 TH_8t}pHJYQ`IG1yP$iwSncdxQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_use_v_t_k40.cmake.i b/CMakeLua/.hg/store/data/_modules/_use_v_t_k40.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a7e92d464f5b37cf48d394a1100c429a53aeed3f GIT binary patch literal 442 zcwS>*WME_f1I8)_2BvQeP|klSXzq91y(L5Eq0?{X`*xS)v|1LfW@kVG6?0lAp3OUC zAkgx@vP-m}!TXAHJcCfP4$~IT6)!Z6Dl&Csq*eU{o%U4c{_|?w7UcJOZho4X@A+(} zS>0T3j*E08>27pLogo;-=zh4RWvSl6buGUdwwG|6|0kT&a`NDljH|T^cgX(kZdxnA zbvC=x&S8aPCbN@n%2~l38ik2Z#GXY5tSOLYzpZtB>k~2KkA=3dIY{zAyP zt4B{P<2?DxMCrpxuY=Dnr5Z|Ii_&1Woc3aO-o&&&3Xw08bXBJDCFM*#Wwt47-7Mn| z8T;R^*sIxlNJlZ#>v;2%gbN=TURZQ2Q_N&np4}{#9Xl&dSH<7YV7qY7F6T)XFP>KM z%eQ!Y?Vb3KeUB#={+PZ~_u|t(*8hWyq~jEKdEY#=?byb~t6Tdeo7TvevU8e5?Urx0 zl_@^*q|_@}DDGMBxvf=ZyD!go|K4)i`?1j1=l0i^9%!%hH$Usd&2`Ds=j2bnaQ&12 enx;Cf{g>=kVpGG=lcE3a*!%Pc;#bzan+^b|y39cU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_use_v_t_k_build_settings40.cmake.i b/CMakeLua/.hg/store/data/_modules/_use_v_t_k_build_settings40.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f1767606e3a96bb5db14dbf2948cc3a7c0945c67 GIT binary patch literal 375 zcwS>*WME_f14eTO238#gDCa*EnFbg}4B|N=7H1QYMK+b>HfZ0fnj|b&F2CT6$`Cxpa^tQ(5hn{WCwVOMhok z?D8sEHT&j@n5ntVTq{3qa*}_`$(kDc=I6EA^`HGaL%OwA2CTgB@k-s)Ru{`1jonxK zT(S=uJXhhI$>GtWUzd>aQZME>daxE9HmY&sVdro2@=PcWr=E9vbnx5ah zTpy`on8LeIQ~T@-w%;)-aXlA#lpI#qNBl7HOMLm}-`;r=?Bb43T61#t#Y9^im0Dl6 z@YsFF*;9DjZzM-dFFtDK`Qd!ep2UI|hpJkirs%iWA68T0T#6Hw71_n&lCs&@%OZv--Zh>&)D-y6e)#S++mF L{%3Gwspkd&q-U(C literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_use_v_t_k_config40.cmake.i b/CMakeLua/.hg/store/data/_modules/_use_v_t_k_config40.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f37384934bb2c0428b77ac95d441e7bae5af34cf GIT binary patch literal 2781 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/_usewx_widgets.cmake.i b/CMakeLua/.hg/store/data/_modules/_usewx_widgets.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..17b7a1adc491a5462225a6b316b57da8585cbd64 GIT binary patch literal 1047 zcwPY)1nBz!0RRC20000000Y+m0174m0000000061|NsC0|NsBYNoW@1;1&5z&W5S zRWhE!>)RbmQYuQw*s6$&_rVCJj3*_qO~=Ua#Y+)q8BG9PVxB-r1&Buq@orb-yMo1n zN|5qGrb$?V|7@~2ErE))E`w~xoQD>PEZZYy;CeRkFJNvvx7`y3ZCF-hk*V$2f$ciJ zOjuA@tMvL{gr7s-m=Syjp9I>0XcYP+n%mbtK$^kZ7JrL1j9~=%POzLK!uu6$b3_x5 zF~>kCMWSd+FwAI0OT)ZHaP4q=k9-S}p*5C1?JYF;^y4V&)SiWkE$9VMJ=N9q$UQN`z_^~1&+0Rh_6+Yq#!865@Ma{4RCOAYO*~(NFB0?a&7wQX zlbDM@p??Krb11?-z^^48d|70P1vUa=N$ev~U-p*gqOC6W4mR-%&PTqHcaSrZsAM=m zjFzyY`ztk#Fv8#u*ORa}SkJqhioa+EU!Gp!G8UJxWjmd5oVRT(*t1@7cKOU`rYH34 zV1Q8xT~#S;X<5c8RlU#hG{vlHV%GU~OSu}el0seyHMt2ZMZs2;Z0NwA0{&=@8^GM1 z$tGYA0NTme9}PeKSbFXa4q0?+&Gmj>W{eHMH*I(roT(c+)}%X1>O@AWI%_8e$@A3EdCGlhmmX)# zk>f`GgCCGZ;|P5cp>^qWqw6M!%zg5o@EZ^KT^czU|1i%x9DyZ5=Wq9ab?1XIBV{$gMm+Uc@9W&_63$3hWbZNVVBF RdBqcbzuZ2;{0(*WME_f114Dp1~yv=n}P8^6zp}p5T)~t;iqZh#y3t!C-PWddn3bu1S;liof4Qo z+d!b<{!h{6Is9K*ORoNF@b*cX%1|`NtkS8ZP$+~=(9C<$%Kx?L3Y=FbEqk>^e8Tzi z`?YoxW~NWp`1G=u)nMVFvg1!0kG;zg+dW6f@$t!y0;`VNvh$qto!`HHZ}zn2Q1*MN zOc}mqc6)iUzD4&v(2=-x;N^sKA0&SsIeIBM(V}mLe1-)mEJu0#OYRj znPtznSw889Oe8iuZr^-ni~P}M^|rd2^Gs(t*?Xi#+^i>F{}-}6a#irkU*3C9Wra@P zq0FTtFopd{yWAyy8^4t^+`l|N6Xdn`{)z0E$CjMS?<|ddruixIJiqb!3b_LxFDy3} ztX}goR-bwCk`SXKZ|1&RpSo$n(pT$^c3wWW>+<0OB_%htOP{;tJN>$4x>R3mZ7ERx zypTUaxwy5Em6u~$rrN>0O!IRuZ)BKTzl!`Ic{q0Uk8AJe$bG9ip8I|Koy+^rpkV&qS-b&L08j)r|epK-|B2>@jIVu@^j1XXuy&c5S(CO zU>Aa>Ee{Y0N?gapy>o6Bo%hi)__Euklr>@VHKe_7CaB&&`yTPihu7 zhAn%0K+IL<@xmPkGuCk*d-AfmXn$;~=QiKZ*EvM5KDsA(js0Sf#WAHQCyAHEx$+ad z4n-V0do#|H$=pQYbQ3#A)x#+(Ok5AlOz3!W;lq@~`7%~Q>+%YO|2gEYzZbex^#7xF nmiw}*WME_f14batIEMks`40tq56Skw`Q$CNT=JNWww=l5Q<6@z7?424oYww}UWXk7 zTy!I))kFjZpJzUpx3f53S=6nZ z|0iz>JyIwkY(JU8*$T)!6KA zEqq5&eae(Pfp{c z#LD?>3<|R|438weG}52v|Ei%^>nz*f1KIZyReiRb&T8mTs^9#<;{1)D4Kjz7Puiw@ zPOUocHDk}ZpKm@t)tWO$a@OSZkPSNV8@uM&i>m(qD^vP+{oNCPLYuD4|GWI4`1Sow Fh5*g%jcfn_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/kde3init__dummy.cpp.in.i b/CMakeLua/.hg/store/data/_modules/kde3init__dummy.cpp.in.i new file mode 100644 index 0000000000000000000000000000000000000000..6709a56da814e04dfb6be126ab6cecd9da0ebdf3 GIT binary patch literal 180 zcwS>*WME`~fD#~n3}rL^hk~b{nc{AW-n#XxZ&P~V$Bn1#bDM1$kU+(p$Cs`LY3Ta- z270Ut`A}A9`pwrz@09*E?{mIq{6a5Wdj803t%j%Wso;R3u%HuXv;$B0d7kw>bLKL` zM&a&DlS@S=84Go9ad@-oMTBp*&MV{3M&2J@2CfLx@Y2;}&1#b53uBpdbxYWar%aiP MUF;ctD|jyg0PpWhQvd(} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_modules/kde3uic.cmake.i b/CMakeLua/.hg/store/data/_modules/kde3uic.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f0c7b7bf64ee41744d46b632896487e53719f4c6 GIT binary patch literal 386 zcwS>*WME_f14btX1}0YqDCa*EJbYQRGv;i6n0sSNpKrdfk=wg&E(Rn}F=y$-gWiV? zM2@}xsV#StPj*LR)kMXlxATl|Y>k}timx@`w$~-yw=Ut~!sd2SiH^N#tWUl(DkG7rjc%qoO9&(%V zOP+dWrJypQsWRC6frz-mgx%Yk9sC&=o#@IaUc|_1#lOnP{Pf2gSE4Q#n_T$!&gaHu zwtwQ^SpTFmWya_2ta(OeC4 zRTGn2a$mpi=llD7ACK?%`N#Y5{{Qv-;|X8@FaZ9|SquQcP5A#Gz;OBxEh?Nr&H7iL zi`qg51WoF&Yo)y{fd3-2u+`2PDfsbH#LmgNGm(kxq%)I5XKsZ+geIKiA6_v0*=&)goEF~{)ADmKQz-{>D1MdOI*il4R5o?sr?-I~fhV}o>~QA+ayKhu+{ZwVqt2_qcm~HNo*WW=(?91|p$@}EfdjG! z{)GO`n;^V)(jjX?H1QL)Er%hplyNXrY<0?j|H36xT7#_mc{4M!H|wndEZDttGvP;K zxY%Gd<`UblSUw@gM@#7bHs!`aRoLq2X*9CG`~F=N>!z}u}ys+ug~(?vj#!!mvc2FrCfQOriy%^ zk-YhC;*skae3D<4hOW#94?8g%cdI|BWiVQU zt&G!`CGA^tlOj*HpDx=kblib9hQnoQgqzE^Izz=q#w;{I7JZ@lpIJ2uoRIiWhTspP z+NU#?x9sw+B{?(N*IJ*A)JQvwNKDqC2?0#cwIEvvNE3mCILJK^5 zNS)0CXJ2l`+$ysd0~y;us}Jd>udwSn<2OA?A}DkFa>o9+A9)Aw1A2E;gvrZx&^{>q zFxJPv|6@sD;;W&xt{oH9h0c)a=*7ifY~d~%2Zs#Smmla4=RmPel!@C~Ofu3!4Mly^ z98D$N?5>^)m$m4Z){`wgJsqPHrnTPo=C0)OEMQiSD#Rv>4U8V$v^wN;36|M{bfc`U ztO~?^G9%pQ{%E+jJvb`pwK=OB9CZ()x#6v7IY2S_bpDO(U~pt$M1 z%GDVoj3&lGyXhzIAvt}usyyW(Or_mRNnt}r^t>*1%}83JlVc@M z*(nE77;&KsSr^2bX+abCSd+T@pyir8-=Bd4uI}VjMJBM}>6cwvAdB~P;DadM%op-O z*&fa^T1IE@Izr8d#>$gkZtNa|_AF*}&}K~jFbvs>GDO4c)6~cLzg?EL)LHwLtw{nI zNF3>a@3+4!JTnx?GR34doL-;Cp$6?3L>?~HO)7{%JvTk@PTv%Hl_j|!4joMo)`2Lv|PvLp2A!U z>%o`e>4rQi7p$uQxapV3#~r|tA2JGji!DHBuDN*P8<;g2Qf8&~9&?A1SVr~~7)3aV zlTopy$~*qcw;vH8N+-(?)QnF1eFy}Fx4-@H0$;|m=KbIPq+h2>E#5T6Jdp(<>B9RofLwBVICOXR_n}@ z0PI`*Q3<=U?-Sqq39w%a5d2Te{3~L<008{H{{)TF-}mpLVY<0e9q?H(uhf1~1?c4v zVU-8j``@A|vUEm{Dsi)`Z+r(uc0>THe~NCH`%-y16due#Ws_ey(%)Z`48|4N95EE{ zfseG0hEw5Op7~Nn=|ur+P4sEW$JT%}LVtH>>yr?hPm14=>rF$$@GXzU%`h!4&Bx03Tuzu9NqqG5wUxP}>)~^TT7QLI z85OHDW(=^lKL4ur$Uh5Fd#+DB04uJRfT^vw#Z-X3@@*)NpMRVGc6lMxoThfhJEmwN z3s@UtnGpDvA|@}SI~8+zd7UakID6}0Hg=?(K_v7%m_tZ_GE2|bGt+Q z4-R!@a~$4k!%Rm~K>b@5up=Uz*#W-+}lvi_lCd!{;UV-)g71U|8e z(0oJY9IYy?E43CR`SzUNs;oy8U@+5m@$W&; z!Tv44jep5N{zryKfPWGOPVJa n3hwM^qI&j?cpAwKmD=6`Wf1w9==S(?ZH21YBv`f?PW=A>kxKv` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_readme.txt.i b/CMakeLua/.hg/store/data/_readme.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..04d3a95f35f4e87ffe271166c1fc28c06e01dd8c GIT binary patch literal 967 zcwPa=133Hu0RRC20000000V~r00*T20000000061|NsC0|Ns9~hlM5oWwEWL+)JV# zLTJbVXB7qj00000000000001ZoSjuoZ`&{oz3W%-Fkrxt*!S$?&=%VYEbBIRXm=VE zS&p^Iq9Mw4{qIM8Bu&xouo*!D$E5i9-Xne88v_2EZ{=^jg3xPF9*NeYm7zmFtN=&t z)`XK+8U~I6S}5qD5-BGpcV6?q*o9eo4U=oN2MK4*#o8K7`{?55%`}eagKptVX`96Q=_SOrfg9smoM{DHso<)C z+ZB8=Zn|H=d!~V#UO|Iadcz?fzpTIW^UH6S{C%dcniYKgd@IBiH|XK}=gZs75L4{A zdj^=fB_?`-8U1evh=5Z7>=G+Gy;3{2k{oCxl;r>HeIl?zMjwQLuzNkLkx+vn*2hf9c8iQYPk#J|RUxT&|zkET9f z_Oo#tA$~AIr&)BSCSwGJ!)R=@uWJ*Z(clM6mH0Nfq5=jAUXDP@n=zzjJ2pmoYI0B+ znG*+>ZmU#TNe2^Uudmm=wjHW{oh*eJfAZgwn`4jfcN>1LK8*wn|5lT4?Pp6XdK0Unn@~P2+aYuF9d+wl2T+(Z=UEI**WME`~02?3fae&^1g^*!U= z+27B9{*19%SGlLJmhbbX2`6`U-dvesbW(NYQPqs3bNd`h53W>Q%38IvlQo9n&o9{p E0CguWfdBvi literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_source/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2e9d4b917d3f4825cf4d03a856265294a78863d5 GIT binary patch literal 3519 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 rm5R~d$vDSPc_M`SUeSbyYDw#+) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/bills-comments.txt.i b/CMakeLua/.hg/store/data/_source/_c_pack/bills-comments.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..15eedaea939cfceb7568f137efb8a7e71f7b05f0 GIT binary patch literal 933 zcwPae16uq50RRC20000000U(J010>i0000000061|NsC0|NsBKpEd}iVhRIhkLg~k zBh$84!eUMU00000000000001ZoYhsyZrd;rz3VIH*5qKP%gsd#xUyWR^&-el(VPsL z9>;8C(jciM?bmmPTD-(bdn(YAVQS{hdvAtAxfAlPD<2;t0Epx^&glPV)M$k_)&X=n zAT0`y4i3L6*#^CGaIXYR@S!~dLhFEdE(6v=($CK*ik^w+^-`_85{3GO%*=0;>wMgw zrP`y_qTp`;an_H&F49Rnx*jBp`7|3P-;&W{kmgA|pXN940bYYIt#)A6YoM}MSFluC z*q^}q#Vvv@_48yhYa}|i7XUyA1Cv$B#Nvfi+zE>lvBk$gpthIo2sW_6ek1&WyKSU2JMwyCToX&a zbE4nw&NO8aNRy*mq%P>&f7!{ubxb)Z9j;(a-CG(0tNSnXs=kj=JqoT1kcI?lw6~_9 ztfk;wqv2i@CDCEWNmXS!9a<%p#HUMyj_b0bH{IjzEaK^S+@B0)wb{I`8d=h8w?wHX zOCB}GvG!(GBSwAOeW~Y+S~rn|9JyX)&69C9&HMSyepdz9cTdQU`(KkqmQTM>)U4jE zeAgRhPFl6|?dVVh?}n3g0H@#2Y=C`86&A)iRByOsc`{7Dx5J1ujjgoP>`KL_>vS|A z!zaV^Gsq3nmD47>S?`R~HWfCmpMYm-SSVou|+yA0O#*_%Jnr zOre&R#)z+FvlC|XJk1uvbVThW%Jcj>iJ}~NL{P7US4O*D6j{`?T;R+DN@`9|ht2bM zChPE-3=8H-_Mg(uZA!v9h3WP7t22t0^v2&oxjPefa)%vvC%h)ET4Sat%mXc)UfAgD zFYBJ3?2)-JG*VdMxtkUyq>=cXqIgV+b%|M(c5zAAQ78Hh H7)>W1k}kt( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_configure.h.in.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_configure.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..17d26904e0f576e59e4ca1f81bbd39e39696fae4 GIT binary patch literal 472 zcwS>*WME_f1I8H)3`}Pkpq&3uu`%cv+ZnPP(sq~%nb}kpkmJ2NvHFc z7znt2|0}xnMA9cCPwhYzx6KK2&Y8@rQ&^z>YAG{o1mo^h@ditE_ zALu-tdA>cM#76L__VrbhO7ka}`m9>bcur=6;Hr17Zw2crU-HSZp4}5X{{?PB=1(oIt|6hn$8EUb&wRw*D_A}|RvtD1`J+ajJ!(xl?O5Q)TGey|eD}=Fr zUOo5Ixfxg6QtlfztjJ9~q$9BSE>mC9JDgpA_7&W6HFinwOm36@8z-{+r;u#rjb3lw}w7 z?Ekd{1}&~;k_kAt#;G@Xcd)kXla`)K^ue%<(@^c*hZ>HtD$-!Fma%O(i&whmyU+;!~&AtC# MDWZl!;s50s0B_LV^#A|> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_binary_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_binary_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..003495e10cdd6ddcf30bd62b7a6c1162094984fe GIT binary patch literal 1449 zcwPai1y=e10RRC20000000n6P01lP_0000000061|NsC0|NsANOFHfl5hUQ{Eijp ztRUiHV`C@x_XoG|4sCm+m@mm(Tl@R_DELfNiJ~+om&ii9HK5_p%a*sb4 z)2~!W#tYYMOK(~AacsXwEvkK9J_t5nC}<}g?c@Z$Fm*=+J%F%CZ2gu-@AE=(q1ZCF z0lX{&VG?iFwW3#CfeaqjN!>?Fs`*j&t=%edcjo|Z0Do&n|# zQmP2cq^+^x6EBzq$!7);;O~@4CD?SSXbRV1d^x;|!5iGbwHHO+AintscT6q#QUSfC zMdd^-&@?YIhBoL&kU~8GpFux}{7W?Q&cj|9-)O8CVLS-NW4IVb;K9g?;?Te9c~RwP zbQO(;lo9U)#0AgYW>cNBwMBwtesV~ zu$oKt381Vl>SlaOvW7`r-Q&p)?f5||n#Y{uscos&eelzMl`ooJpmMAPCHeLe6Ht%O zoA6JQTs}yrvE}{!r&h~x4&UTy?MkKV?$Wk9t?w;eY)l@0@_AljV@NoI8ObF5*!uCm zf&BMXly8ZJ6>2Aoxo%i6#Yn~;X;>&K3X(NaHKuA<>i!641FrC^ZTTb5|1!}puNw}! zlW;JOyqsoU= zsq5a-1mT{V-j0qPYR?OnBkUi{X}xW$y=I}V3~pB?IsKzerFMqBjw9Th&2v|U@<+3u>G6l_K@6K7R(I}-Cm zos=hzfw<8lzM7wHmF4ukL3k02W9y|I^pSumv=<|dgZ^k3dC^UcEevAE!BLOm%>@M3 z8<`VAPekdn#ObAwKyW<50Ygs+=KOFBsI0X_5n-fT_%LH-$^@dSBdrH$knca~SBR1o zq5|l>5(FfUBe)CKLr7AMDbn1rD+qjTv4#gzI@7a?S*g1VOnd2Z3orhRrmc#cp1rs+ zPT8&_Y!C(dZNF68c%ACnpDU7ytI%h?D#bQXB@Y`C0q=0hR-)D8w#IOX- z^(bZ%jF|+TN`mAgXqgdAgB}Y(SC%nA(3)r3d#q#2XbCWv0Et$zyZi91&| zn{uly_)(>nq^SY0SyGh-H^K}jS6vjkHcTwLE*`Vs8X@YoQuebRWwk!52-?dju**{_k%t<~$^(4qeaM{$Ax D=~l!b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_binary_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_binary_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5d7d18178a547f13882ac28ec2548deb79921197 GIT binary patch literal 729 zcwPb70w(5?#ARLoB3dayC zsrB)U6SI`60DHS+oWdm)R1qT;(#A5aIJGP|h{Cyz`;Zjjj3jsACR;Oc&ID1LM~<6! zR&apK5fNEMGRqB*j_~3mF^v#PHRpb}d+PPN-boL7egAFO@154v&s1q9gJ-wRW+MeU=v!zJs@>#EZ%bk71FhO5}p`1u~l~UOIgN%tf|H8`tj`8*!$7{FY zYr=`v&nh~Au!Uk+UjW&|Z9SI?oCe|JV?BU2B^{GQ z$<}k)ohLO9&#VuzW&8eZw6;L^Rf*YlR0q6m#{VX0p$@=`DN_*+zg~itN*bD=!~Go= z69!k08Adq!PKUx!B?xbnZ7h^UiL0nD>`+^YtrU`+s5am-*vkniaC>(HMwT46gm-Fp zHxX@8-(O*NsovFRyKW-;@TPgKzZ%)qx};`WnX)p2dqai&J84SW(SUydXU-eN LTROi1YP86@ZZA~2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_source_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_cygwin_source_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cb19081a1caec56975064bc4a67bfdcb6d9fb574 GIT binary patch literal 2101 zcwPZD2+H>W0RRC20000000;E|02+e;0000000061|NsC0|NsA2v)zDt3*9{&(Gqr1 zoBn|XKB)Bo00000000000001ZoW)rEZ`w#2{+++#J$H42HZe(dS1XaWC*qJ4EdgXm ztL*iJj2XZe)e z0RYa8chBG$9KoeL?uVY5a4_xyY3 zakdJg0Z)X_)@N-0;o)crKj7Jp7tIoHMyH*3@9@E;rwkN=nZM6YPJXGMp45Llh10Xf z&nJ!3U-Z$>Ovr#o4Sg+J2Ij}9{S&U@vcuy?5zOWas(y_?&fwQTtvtbwpdI-(eM`OW z@JMo@f@EO>G{X?|F$sc6CYEesBiewm4Wg|c6mS7^rQ$}tzFMtpe}R^mpj})usV2@iYGJV+HfkZUIA9zX_%jHiglbcK64#${ScKhK`%?6{_%^*^BZgFyMq{bD^j`l>nJ}7tgxFK_^#=10;`>=2AEQ$W5!z^6A<@zbR<*|8 zg7^%tAcQ01K7Ca%g=z+2vqh{Pt2L21j-UR53iR$K8qtWSIk6NzVb5U@|izsTQ zcqLr?Mpwc6_eM-4bEvNZEFdZo5uBJ`e>}%pgJHANX}P1m+q-s~H>5!-tUp2nRBIag zu#lfy?gb`u6!VHFDBzmMaaP|gEf7jv0?!`j6{)QCNQF;gCj8KoayKhpH%gvnW~Low zK3Vm#mg9-JC*A_qN_yDEw0J~D%PlF6>2Arwqx9)M2L9b-JVSNNe-37Jg~bt+C-f3! zUMiPTizUlkMX|BDxeP=mh_>*D)Rfm54>JD`TQ~il+jQ@8VWJ(r4FvB#fMuf?RyjaW z?Kn~AMqqg##K0ql2m-S^Br&CPk~p>M@cOs4F=@#+8fNl?}W~@9iJxb1L#wmrk-HtVsugh1UGeOQrdDVhxH5E_?Fj#_#j zydY6vLKgFJ+8368B@kDo(mlLhv{ zrU`GW+t3^w7z%E+uwq3oF|wg=H8NRr;J3hNm?Fw zx?(cFE+a?fGN3yN{ibR2y|1ymK$o%}%-}-k#=)`*q^L;H&1Nu-pvq{A_efXWsni`-E7jwgt)1 zArUo|S?{l1Lw7vYMDLQkcDP;NZWHq$=R0=j2`JYzlBhxli)jxvXE_8)(x8rHip&6J z29uIG2Iewv54|wL6_1R ftV{XsqefQNAOs6ph z*7r#IwdGv^00000000000001ZoUK${PunmQeb2AB8fYq|ByG`z6t+nrDaj+i%}>GH5{qUdWTvJ4{saB~bxeoy0h}5in zJemq(mP+SfZOFZg_Zz7oUh}gixwE_q*K_uh;dCd(i9q@49~Pq^5ply5vgwwNtj@%}>ug zMk|^_Rctg*GXpJpU`6`yg_||etOJpxE(AhA4JbjglIayoT;$Ce+j3oVYd~qpj46E2 zTd&tH&9MTm(y4b5kA~hBnweYx)(8@22p6SmqrflDcnPIi*1iGH2``Q2i^{MBuA=y2 zav4J~zJ{w{HVek_^(m~m$y8;4t(a^?Oor6F5F9zEqlq*dP)isMX5j^rg0pBC#n(30 z^C%t<=5sio%pibiFpHz`av01Sq3PvpI++jLCQ&O(7HY+S-j_=%!znB4RB~lQmbUZ6 zV0|&CSDUxC=Qw+ODHFDQc2<65&K_d8WG}%`PEt`N4Bq@h#zdce<3)dG@ZLC%*KWgi zDo9yAtLOm27Mf#x0i<`gbzNwU$F5oe*m*Az?Kv-tf)7Qt5S+qOAv(XD2H|7J?m(M@ zjR@7M^_+I+NzH>(JB*mO9fCH_x5N>wsM)4f8@#Q@|2k-)4#0|QQxO4wUV;`{8Afr; z>rAXqpc&C^d^?OKl9bCd!fPVLRAY;8A3EUD;Hq-NiQqq3Bn{J&hz4VAp~?$f-SXVl zzqRWCm&aa?NsimTYcQ%1xK*N4Z$o1#P2&423{>g&_1UhcOh3MD8v7umM_EiNQ&eVf iYnZgpPZQdX20X~_vGEc6)cK8V+G8@|OXn}0t>nETjArxz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_deb_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_deb_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b67cedac89d63c8a047cd509a67f239f793afd9a GIT binary patch literal 5631 zcwPbj6#(i00RRC20000002K%T06x0_0000000061|NsC0|NsBi)kM9? zKMX_|#a^;*GS>5bMqq+PT=3|YyG_7mah_vr#&9jYReK=-YFJ6U7%=j%2B$9XqpzDqA0Sw@Y>>$2p;euTn)BXhj_1>C8bM^sgJu_z` z!?M`fc*=Tg(wolA{?)KIm53%+)5+K}nvzjOYtO@5&YVn$K^S`u7sSdsM3Muv1Um+? z15e+~{tjCQ-+6)KCoX4|ea5q@928bq_af%&Sr~$BVNRb)t+YI@ka716CapN)_PV@; z_8o@H;&yMGwYV3p!j^Y;r#lPI{ctX44q7cX8qbU_e&~S_%so3`8$b?L&zkTZbuUnf z_Y7v9+0ip*N6yN-fTxdK*2v=uk0NmqQ|UyWLyvfR((V&*)IW^7JV~BM`M? z)JEf*{2c7D%x-tjV6}Ge+rj5Qd*lE4D|SXL?A_fAyx6mS?-MtJm`8!_)7}`KJkdC{ zcs$;qZq3CgjNx0g(x3GDKVRdo-nltCzcxqKtT!B9Po~D1`AenFDy>9B71S7mFdQdQ zkRnSqJaT+ni2eH>|1~W4!}SKzgTMeHbc+PDj&X2guX!Da*QeqTEd7@I`S_PCR+HkC z+wKq?7LlU>B}p>xprDFd(XesHog}vB5Cu*Ymh)5>fa0?EvvJ)YUtab`10`zkRq5#H z;C6IRWWcya8*}G47yy5`Y5ooOPz;tPo}Yj|3wSHXly-i@4KZQ~$TO4#1I}H@Wf(#B zhG_!ZJA;C+=9@O1YoNDUtI3@(ZN7QKDo4$Br7%LAK~(XNk(P-6cj85gfLkyvw-m7n z^s^Eb2pr<4zfVX`?CVm}zLvzK&ybuH(n?VuY!mvPbI&*?U57J2+;R|+EjW>y<`YCC z!Pa)*qNySXkivo5@Pan3aGFd1*^0RAU=eB(Q_*+J0R&xdw$)P?~JKsjz_y*qU|Zb3BTo@meHSmY0pjMg^>pp z+ZQ+ex;-aTb3BD|@6k;$Wj?;)*KO8=3e%hcmse9`cf+*}p%eark)C`l#><`w6{|Ti zru!HW4r2Np1P%LqjB3XVbyRxp%&kbv4DKY*Daa)Um4+QRsjBs66!LQ}ug)4pyijlpNHHc-9G`{SG zvSc9Gg-RpDUZ{z38~)8U~A@TXPnl7-Vd_ z316DaPpnB5@NsDypk|ZAIEtkyRL1WhmYuLhCm#}&$_rV1ngkX=`y9$vEDWl!ed=d* z_EaLR6Jt*$&U#*~Wkwt z#*?A(&KO<~Oo(%{@l+)?-&S%IZ`Id05r)I z)UFIpg1rx;8>*q8R>aypb^BCi4?~Vg)ZNMhE2Jj&5|FZ*9!xBGRL#FZr8YjlHm1|@ zw2sjz1Up-^C{pes(tpQICbkOITcpQkhB zcwCHR>B#B|CiTL0p$~O&=up|hR%?I2lXH8*o;0vO7WV!Rp)aK5VE?&H9zkK!jdNPU~@>+ zIb^&_1Vg!O$i^3m??dMouUHjNhG{HT=D`HoM=g_bQ7(Mr+YXvJtgI?Ae7V1S%o204 zRw|inRO&3MP^N6)hTBlw00K^ZG-PQI8RMbfWa)}Qh^NjVP?va9HbvJC#PB_jnGGve zkl(9bK>d0xjWB;W8LLJ-&&O%I-_)YcAGf^!B;5Zb+`lB@;t7Am8WFn>lc=Fij2e{L z@D`$Y?pHE?tuU3CgcmrxbT%f^%~`}bEr!t%kMW~eL3ooF z5jDInNI)1i-9zEkz!J(E_A7Qj3HG7Y!QWP&G6_ZPrLbrLNk~P zw{SJ)+=?xqw?yP%7uUogJ8B^yR9Y)rusH|B!pECc|DLTw*IRhpCDaW?8+kX8BA~N_ zt0y>Tm1cFXNWpC_yq0EqGYn(625K!HK)2?cLVT(D$8<&Lvm$=qE zTEcfIv_c$Y&fT3n;l{}zWVY*i>JUwyra?`TZ15hCyQwIFYAQnL1`_xUp2d>ol+z|i z{jhPs4olbco!771b^QH;e!s*O^n+NZdTm>GTkAMWEP~E4x z@-8?o8FC<%B@he3t$EzV&z)w8G!m<#iNv!`1eMxQneBTJpfn?&1<0BOsyP4wH2Jo~ zUXdo))bVW(%nW73j&=!w4K<0RgaDsz;_Q8#@C|5Tl1qij4V@&vk_NaI=tCBoYlvNu zXZs=-d{%wyY!GuVnvm8!g2Q?0TX(HD2=i%DgBOe32qDEQs@68xAZ0|dO9*f<$I(=P zlyw->-8#r9E*W;LKQ&Rf(zhgH!yPm&M(31l8=+AJ(!7LFe30K@*jV)RY?VEkeLE4}H5x z2?jw}S8uJEIlGz}?0h^PScnSHTgLRA**C0XHXK_du`A1{!zQyHZ4X#LTrdrv-(FcJ z3Cy#RW!SQ>L3=rD`=m80NJR+V!NKgzQUX%yvpw8Z37%)CXnUd6cC<_au z*PkIaZ6)jq@|Ar4_f+DAbjT&-*2EuTb-7M@!1NF>cg0s zODn0+Dv!CoH54_U_F?EqRCMSg zRs?T!UNt+f#N+S>Kng@ttf*IRL^U#Av*C9P)gL>r{&Bo3$xIv+?SY9L3MzJhI(igJ zPxUPJ$|w@g{rJeXgaQ%-fEF_J@QCXd`SF%B=z^M3IwS zJF~+`()tjV+!1sFwqGCsOOf4XJ~8!Sc&eMAO`MJgTbnDx)3DT9AGO@|`1dLgOH0-c34 zQq@QCpjf^q(?`7kk4V8pAfrT8TvNvz1$CT2eP|We)Ywl9|2}6O)}=$|V`YBnTUAL; z$>>z%gaCY;QL5Z|HUEgt9xkddTSLUTYfHoN*-9n`jnDKYsE>wqf33<@DHZgAYdqp= zWL;yQ+yY~Y3@B6%V^d3J1vPYfeB8iZpE@RNl45)m8@N8#S^|dYEwTv_tK#un=(-ZO ze5;2qYy&cQ?Q}vm9Y`h(2K$hC3l?yP3xOREA;A_KmJ?p0GJOwB?ItAYC3c953>h{L z;rw45B<{&4zWafU(Vo9!S$)T4J5I8-2m762o+9GWg z(*A&cki3ne-V>xm{~k;}GXNxp0Y)D4YPc_DR!Tl=S)~w)u|c3GV*Hwj2$|QO&z4PxQ@vVrFZLYhT-Fc zJ^MAFD?+vM6FNLBr*l#G3u6Ir8ElW!WIIn5AAdaTw2xl?BfD@wuoKpRr>C7S|4tBGwo0lER_LZnZh<`+-ZAfk*3O05D7b=IjPxo;Ft*A7VY4RLW= zRj~t>)oS~%u6`T=WxboPdq+Mjej$B8 zk+}d@Am;=+#5^yQ>Uq4DDS>Rk^~4Q0|2daiR*#VDL;XLz)WJtQAJEBgh%t?_s@z|N zC5#_*=1vE1xX>j$^Lvb4Uc`JGBVf4RKt=*)(sMQy>}#t0)t>jM+Az=W#t=Cxc7c%cep297*Lmq$+N!5HDk3=)Pi0?`4qyqqP{Z6-E092ZG-?H*cJZ7@HfMS<=i>pIOQoG;V}Ag~tA3I=jB?{gV2q zM3fB|U1hl+X89P5r290D6<|$`Q`Py^@a7fx!J0|R_!)bqB8XDL2AbG-QKdqsPW@{= z>!RyYCiOjGt4d-A(3)a=jV)juxvL|&^;96(ls$|9f2A0d+siFg7p`tsxDRSf8-r9& z?ewPpAx@6!Oyb%bc7GoSkKrgYQ6fHj{g)-c++1XSQ;JmKOfi5tC9gZ{T4JIIr_B{( zT_?lmOB0ZC(>9Po$+TO>EWr+nA^k}5vKy0`0?2JLi*;!UAVVW2etBcK2Sr<}<0X7n zw$l}%s@k*fdhOhkBUuru#U?11)kThg5aBI7ybMa`FlOK#9T!^h74U7g0P9^0hS`7{ z0v>wlaR<#izW*p@guVaui~YX;`<0~(eoIe>+If9qr(HbWU^}Q=W4m7etAoDdQPyh0MJmtXF^ME4Q6@XPSG< z6;Dn|@6Y6LO*@~^m8`u3lnWcD>Vh~&tqM?Gi76OpF`8GjwWJPOdBSvE${%GL`Li-b z4y4M2>tmnyo&tHkwn#q%(%v>IGW6OdFL<6hPzOGxe4T|t3c?G=4+SU6OUy_tPfptV zIXTj)o`YN7>}MnWl>RMbh8*3CV(3+5>GqBj8gL5uQjcTudK+di82v9Cv4`9M0000L z2mk;8004IY06yIS0000000B|}00030|NsBCx;WJTKQx;qXe&GUlGW?=X6~#200000 z000000001ZoMT{MIKjZcD9FIT;HjYCl30>zr2qyh5VnzlfrY+-p}vucf}xR>v7wcz zrGg5VfK`uYl?!5%>&@xG1`TmTL89xQYRm@ohU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_deb_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_deb_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bcce249ffde4f7b29840340272e24175dc945d56 GIT binary patch literal 732 zcwPbA0wetZ0RRC20000000Nu<00l4r0000000061|NsC0|NsBPkqjm)HIwmNP;`@e zr-}BP>~z2Y00000000000001ZoUK%CPunmM{+?fPDrhRDBot9i3frVCyjAO)+AxGP zX>t>{v2g6jzO*pJe*4ZTqh*6{MET(Ox#zh%=Q#(h&+qkk9>Cb>g<(Yq0P%p`ayWq4 zXloC~lHpvN0^IIgNDdcVal=p>q78IbN$yy%JBgXqr=0GL8lWOcHyWKcDvzmx2AsQ#tN;%Iu~Dx^+(4)CY0b< zm-j|2a)f5O=R}U+o4^$_ybV2-`VdJ8b$|uKEjLS^`NW%YzTx_KhoBAQh-DZAtJTU+ z3u@fgW)WN_gMP3H&9RU`M*|s0CZzRU74#&zuweDP&JDEAgheA}74i(Od&%YKDuHNt z1J}`H5)G4^6Icn%b%nr}T)|oebK(}I6htB+!xY|wp2Og55?>N4`r7OFk{eg-c`q5B zO{Z`^nm`2OXp;2et9~?jQW{@P#-r((zi!p(vYB3TNS_Z(X%s29bu)!_MJxBq8PW+; zSMO%DR^WL%Vy-eif6XL6b8m+rq4*o9W2;nF8HdJG#FoPvo)@%Q@FSJX+Se33AarH~ zWshL-cen1E!UR)L5`)ZXDU#m6ds7NRD65$iDg0Z9_u#FOkWT*zOzulQV5!l~SESni zN$j0CCs8l%|Fy`Riu_ZhxT(1Yf=z;Ly(ZBCmcn4gB>a9O!YhqNo{}ZQt!SZ;W<{W2 zQvBjQh1@76Un;toSQjPDkUgh)x6RZQ2x-nt3&_Q8bI1xByKMko#kSli&H22_vrWz}wpy6kH);NJj&wHds Oceu*L-1`IDFrepS<6blX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cea1552e6c6eeed15a5128b78183ea0ba8c71ccf GIT binary patch literal 6895 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..43d6b742e08363de130f5418252d2d2f0acd26bc GIT binary patch literal 1519 zcwPbT1rYiG0RRC20000000plA01qAj0000000061|NsC0|Ns9~$Ic&jV<;tVbcj@@ z^EQO?yhNJ-00000000000001ZoV8csj@md7{?Aj)ZL10>1$IyBouIA6vAZoQ3kYbd zN|lgFoZzctN45jys@}8T*bXFt?cPb(q7@`F^UZk1-;BMT=F1=Tsnq~xO2&#LJpdTq zk+7F*TMZq;O9*l7ReAVs#*15dwbf3fJuf40^dsojL^gUIYNzrqG=$84H z%k~v&Q9YFDUa@#%pdK`=lPh@3%#JA9f{_T?FyI`Vfd)l2Ra+Xi5x1bUz_!g715&}p zn6%gF>~_0$kYLtrsp8I?<=wbbm~KqM0qX)GHH2~9wyVI;a>F!e8M)Yi&mq%Bv2|u> z2p>kvH`8}Z7)(CGhrxV4m@Gf`VaLoyW(Me%3h-Xc2C+%X8G_J}BEsxJMsRmCAHG4< z;E&OGwESondplZAZWar;oz7tZv%!2h8onD3=DDZYyZLOoxM}-TtzWX1TMEIkU_u%e zQ0tRkCH=L{aUTlY{I9Cyfn~IwN?y+4@%UqokwtfIOAgcX*9>bPVIhY(1SEvb4Mmm z+S=Eem-J4_cmi!5A&owo;)?BlHDMINma4VXu9HQjU73->&YKi@WM_>no&|OAdn;Lp z{cqlTaD6Q$hb`fj!=5xuKD^ZCGS$Uxf|PU?kv( zQHo*5GSl|hx$l)Oun16xr$Vtjrkq1uIEJv5z%!zbsaJ9r%rL^)Uliif0pvYcWMNPb zq|gR}4Z*$@B%!SmCz_B%_+GLgD&BTaq7AKHWr4XT*y(Q7-6kE9`1?M!b=~>JZUGPx zqEF)rDN{RSb!msDPEtugrq$)*zGT#gtbj(*L>heikKnTO^>+e0Lr0d8KJ{$t+VEbg z`C+5j+_pq9vgTCh+jGlAIM0MYy0{BQ{bUQe)iPNZ+)cAmqWLT>+PP_M3Kn}kau=ls z?xMeIrc+M#$KEL&aJX&cBu;LfH^MYCX;#e~Cu0jDE{U-%5aV@1yFwjmHK!yT1UPpxMha&h} zM7>lxzvL$v3U{tml}Wdq6?fG^I>M7g3Bp}1@@B#wMk`k+Tv?LfJkxfj>y!p8!VBw} zw=#dErRXD};5QBt1oex&ztTC%PE2hpjE Vv;6RMN78=n8=~|3;y*CO@pyY7_hA44 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator_factory.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator_factory.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0db422d72cea94c2d17ea381733fd4e612129a6f GIT binary patch literal 1316 zcwPY{1>5=n0RRC20000000iU!01?Ol0000000061|NsC0|Ns9)sJNCA%*9*zBo5L7mM4MK%1h(hhzjw^IbpH9hu1p4?&pn%ysR{sEhkT(> z1dV&XU+g*72;lL!}ga)HOrWRWPSopO{}Ze0Rje|2M^a zeJw2DBZ{?&YtM--1+|L{T(~77)Pj1#=gQ^fPo;9Xba@4pvU+u;{&*FL{z|#eJXZ}Y z(gh1&%1Q;PNY=dB8)x=JK+eodB^CIYi6!B*04>*4@x*v4fr7i13OdUYjz@maM$5*6p zcnv1Z2j3e99sxdE%om)E=7L)A*c#mT9tKeBKEq>8*K6Iua}}0MOuV@Ox}YwETEqlp zr!$A45Gvxt6>s2;q0`W{dz7lxTkY21Svq^y8gv_m0e3weYS6FggO>KtuIVdH{Rh3@ zGa5=5s?K^G;cb?>hRMUUt0Zi2IHtlU87~hIK~zo!*E#Z_uGx(F!KQ* zE+l{0QnF3?uJAr@&v<$&mv_0SYq4==Yf5`=KDN5awzM~U$=o_~34c3gE95o2IXCGc zi*SZEnMJEC6w7Xt!^bA~0a_E+hj`^(jJBhCD zr>gDQK~a`U#do0~Rn<7fF}zvGSJP}5DMN7tBZ!*Qd=Kd>shL|X06ad;azQ{`wE z#BnI!HL}xANk;Z-KE-Ub_NDpo9m0h@7m}~EHaZc7XnRH62^ap3JF!kp#B0?KDQ@8u zl-}SCf__Li z^rS;f!1)cU_268_ae^h5e&VKZA^_oL5jBmkFq*rTLwBvkww099IdSHnIP_D3xoy;C zB)A7K;=(M1$KMSjxc0-J>CxJj_xce_&Ov)(xLFH24uR{C*-ixqO7<#q&8^^sv0~Yhm3~+tsOTg9u2ynP6mNWr!CQIk zf_F{I!eiE9T=oZ8JOhPTR_rzBE%i;#X7Vdg^27$2hFcNlKQ`Us+5Gkm&SE?}h^_n{ zV)5>jaRIi6Z&hvgn!|>!_w@A%C#w+`zgiLAFuJYNS-8Fq#~P-`$yXzJIoM+BjQ%EF a{sT)S=5cjjB!bOWED1T8>%RbB;)sQO+l6)j literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator_factory.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_generator_factory.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d00cdaea3225eaa14702e4840f2225b4db1127fa GIT binary patch literal 868 zcwPZy1DpH+0RRC20000000Sfd00)8q0000000061|NsC0|NsAP^AFJ8B%uPMAAe2A z3H1=LQLpF#00000000000001ZoUK)DPuoZk{_bBfSE^G;!3K2bB&S941t?Jyh#Yej z(n-~3J+b#{?^?T?qzJXYy|Z?3QZVh8Mp5LQd7gQBX1odd?|#?E^8lt=Wtx>C01PMW zGr}PZwKC>#S}?m%x&&ukhyvj~O4Q6MO|*$hmjyZ&ypD%6=MRCG!ztsRTihk%^n35; z2P=3@q%o7(l4XuIeDj73=gc-SC`$8ua&+`}aC{sbox;g+czPQCby`#ZMQwzVVVw_G zqB$JlF2yOLUUUdK=MF}mWjgnt_u1jxiDbVqRtKUoC;&Lm@h4+ z@Ntw}-P|S+UEjgSD2}7+<5f7cZ^Jr`+2kw~+V~1O<`2Sf&WCczHAbA34q9mFMw- z8S}^+t8DP2rHwT3yrAEQ|GK@KJRT5Yt_9T^kyer>On_RW8V}hc!4Qw8C)8w|)Xx9q#>C!>A6J*GWVpDIO zBgTwgB-Ah0b5O7RuC;CM91Yi^ay#9iI+FE)|7hGvK0`|@m0{Z&o%&GJrhRxIC51UW zYasA$;~2o#-Hwe-!?0x4TVBp=I-@&5W^StO;S6@lG!s@ieVcZkIR13wYwI*)5~jD` zKm02I{#0000000061|NsC0|Ns9d)G`)s8uJ%MsUoex z=AHNlKeV#|00000000000001ZoXuEmZ`w!@{?4zM&?<$z0Le+c6Eu|wAt^dSI3SIx zUR62vVyxP`XuXEy(%f&q*+0+3`Zbz1v6-2X1qRt4`mRCTU6Wwo5E#x)cJry?bBYrH~A!OJ?~8h-SHUCuSU>@VS6;`b*}sEkp>!G zkA_#{ZcRHXVXa%XAYdm!q)d1=36(1WlO|J{e@kH0(Whsty1ja-^va{QA2|fdshXLU z*9oh7BhEQi*I0031&XI$KYW%?$>?r2&2yz%dML@rd*R`GEWukA5;%dW<%gt|5YEVL z~cn>ulqG(A=UDlVo=JYD|U0@aH1 z=QuAZ8k##Nsu$+@7ujB~J-L|?3QO(@iRIB%7%fM-gwexcjFApuiEKExxqOo$r7j8O zUZI+X9Q-Jaq_KKRbW%c`Nqm~NsHm%?+R18c?3^fd>H5qf#sw(rG{HrgUFct3e8nAP zh-*k1fW@7}NSYj*GX=D+Oryj&MwcenWN}rh@E#gag$F}`{Szo3lw0Z|sih}ne)(f} zbc%~hxwRrbuHSs)3a(Lu-r!=*7gGW+!sURM6yJ1BoH%Rg$Q$k(QNRf9#oLU|<%^3`}KXXuJZpGMfCe5LbA>i$oYQj+PVh0RP~gYVyynvA&&-^RMz+!syhH zhd%?I>7N@sdPw!5v?H5aQ4#OdkHT3c)vFS}3h=k}xP|fH7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_log.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_log.h.i new file mode 100644 index 0000000000000000000000000000000000000000..412c1f1697edd29e4c17a4a782267e01892a6291 GIT binary patch literal 1537 zcwPYk2LAZ~0RRC20000000qGS01&DG0000000061|NsC0|NsB0CRra1O1nnjq9C1d z2ry#G_>wsQ00000000000001ZoUK=FZyGre{=UCruB|GdbRoH_s-QiI5|W}LzyWDg zsS+}aciHQ%jchL@7xjMojqQbfVcYboMpeNx&ph*D&)BpY?|#*v;{Z$r4+M!j0MNfC zUnsnUzTi^6oJK_XT*RQIei%`>qKpcnxInXOzD^>lt>D?LKiB#WcyWJ9ye}gjxSQq< zo*`~TSdfrFBl|C2px}ZiYlepQ`+2+ly4C)@b=HQnH=XwD&iQL&`jHA5a@H{}=q|L2 zGxrs0QQha;dl3d31vRg(NzUQVQ04Nnx%9c7k8ZO}B{Mj_fDk04Cl1NY&2FzbIn zqu%@BXt?;KW4#eI^R)i#h$W)75A>&ePCmYwG7t#&Y94MM=nLQHW6HMai1N6EB{u{-z#Q z{E1TrFA-hy)SO0s6Cxfg?zgz#u?*_)84IxH@L;|m#~e3-1^7QDao!h#yD26wgST(t zs7hVbU;d%}9sMkqm&4IuxzyiA!?F2RWN~rpYjxLKn$LPylYNE#M)yw*+E6z&F(siw zI8Ol*maQmThklka%5b-q`g55`y3Exeqrr2OqcN)zjXr6b20u?}oK~X&pS_4knM=h1 z6s|;wlszP1c;K=3&52oAGAA{76%oH7M;V4JL>(1XK%IuDMObWHJeNw0|~cr7z( z9>MjlQ`n*!3IP5s3Q$5>660>*7A+MCBs`cl7*7_xD|iR(rdf_AS4-@|DK;X??#?pl z$HDA9wu=#;XX1;&`x|3__bL-&|Bi=aD}IxS2eTP=qTy}p-8NyhTED?ZB0`?vYzPBJ zR3g%z!%zb}n0glNc(?|0qB)ZaybTcz(6h9OO{pNlqBkM0(+Ax+wrMIHJ@$xZ88%Y_ zYpe~r2K)6V{WUTEf9Mjmlm%+@zuh+vh81CGr?_iHpFfqqVL9=PO^D8G+Ui%ixBFf! z$#KW$ROxGL#U(xXNtY8=tK(?00V6CG*OW+Ty_j>WW)|fnjPN8d3oR#6jXf$Vk}!(OB&^9v5=LA~Lf`2)%C|VxrMcX4o+n0b@4T8+ z>rRJTOar*g7t<$6l%g>nE-QTCt%K9*#Kl01f7F8kf6D<5!fz&m?fLy&y5C{bE$rgE zEdRv7Hy6GKmAD7R!9yBFQ{2#pP#H4t2*cMAcE7T4LAP8eAj}rSJ#1J$z)K`4&QnHW zdK%v@y$!YkujRY+E=U76_kl)EjS?iqN2}JEYc}+3bk-8(1mCQ9g!Up-3W?%SN+bZz zsC08Rv}Cq)(maM>>)&O2lsbE-rNskmGkeTFkE&ux2gzeJ1y~i2>Ey>)a-b@XTOt_R zJjPOhRq>bu{TNFQlyNv)5$^O4p2HzJ%-O@*4y?n0awxBD_gf&s5@*&mHKZr?9 z>+4Mz8BHw(z=Ii?c^(Zm30o$Mw*iJszgG&Scn*APU+MVUrdHC(F#YJ?u7~8b4S@r4z+%i$c=rMrj literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_n_s_i_s_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_n_s_i_s_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..d96abe11b95c79065e2749bfc23a5128d8f5ef27 GIT binary patch literal 3859 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_n_s_i_s_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_n_s_i_s_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..31fe2ec7467ffdf2a44728c067cb3fd59d93e982 GIT binary patch literal 846 zcwPZc1F`%70RRC20000000RyH00vS30000000061|NsC0|NsB-IpNkkYXtmJYoWwn zAk`r@k;J?J00000000000001ZoUK&vPuw^V{hq&K1XZDD*6Nv7RJ89z#}5RwBDzB-7+OHY^WY zc)^UB(A!3AJ!kUj6)*fFs25;~etvv(^m{ZKMMo!aJc>_F;@?g>>U*?K8Xb4Zu$BGK zC>)JA%<+k-Z>`*x1cU6rs~p2SNjqWj5T-f{VXPE%00$Nw+7|PWc?se@H>4W^W1%Ff z<0#tgc41br_0ZUDbdkA zVtJXucyR?E#_RQXkzSp`PEu(a0&G$DB2+T9s+D98>sX=b7EA&2v-RYHN#nn#vuS$e zYdxQ)i?bww^W_@Guo|z^>Ev=YUiU()%k^rRoQ1tnFDo{tMaaHymo_9bbe)yT_>#3h zazVVo?CF;^+As=&eOc%nizl1p-!jG&&0Ijst2nAoCg9NoTgc)~n`~WUB@%54Q2(goF5Y8dp$?p z%%r|{11@2i@O{u*{-UT}0vCJOH|rDQCv=Vq3Hh%};nPn{Rr8H@=l=KxnRgFaDeMsV zPWi=!sQ3|h7$ASDEvi0mA90k&amxmc{iB<^F7ID2`@VRzNe{K&A}t%L8#=oo)c#o- z9KdIOW2mtj_CmbDy;Jz|f9#cURLGl0+?~{Kjyp25H^wLrpYe0DERtrEOWRc|e{jv~ Yy|3pTF~l4C!l$~AI+sQ84UXRa>+#f|XaE2J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_o_s_x_x11_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_o_s_x_x11_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..fe143e4424ddce22c53dadcfafb006181126ba92 GIT binary patch literal 2659 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 Rsa+t=o)*5h{tvXsJhk0=7ghiO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_o_s_x_x11_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_o_s_x_x11_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5b80a0c3b112157b057d25fd4a3159d12e4e85ac GIT binary patch literal 836 zcwPZS1H1eH0RRC20000000RU700v?J0000000061|NsC0|NsAa%d$>)ahH+Nb>(o( z+lz)2DK9tx00000000000001ZoUK%CZ__Xk{+?fP+7RkWm#h;LQpS)%*h|H_R%r%I zLPBnGO)MNcvYmEgg5SsHT5$IU(EQx2%A3|2eQUMwc$#JZ8%)=?q}#b zFS%n?-)LTx7JAu^6WNFN+^(3$0gPnkLnH*W00SBg>Lunr@n(o?u5Yg`C=I2xbr=Mz z)ymH*s@+$*2+q>+d9a3-wh}UL+V0@g!XGDtLj?PEvmCN;H zlwKUqW^gh|AcAR>q@(!qJW4vD>18sV%#Qu8P$$dgYKf5DwM#0?Gc;`}m2xRdcjwGf zf2pSbHfjC9^S1dy=D2ubO1_ldHhH94LB9{5Gr^2`Lc;?B z%r&PhA}D@a+v*7k1f?#x!8U|+;J3`sB`67}bRj;gYcdAj-$FnLbu$+{gNG@4w_fK7 z>2`iO)0-N{EYqs@XSKm2m7PO3YE-Ga;yz8UqycL(yDq171nU?NBzvR)u;kh{Ou&z) zL0+wu#f&C5+#qmi=}B?Rnc&}WBrR&mL?`Nev8rl%V&;T4g6U;0J;+L?`#?kPj2En; zSGno1sunc;V$e=)=P@=9!zD#m`gMDD&qx+;o`YL8=3Wh(TBm4TIjkV?h|Elgsiv{I z?){B2X>8rt<7jnk)(vY(N literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_package_maker_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_package_maker_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5d2c43eefa6e47dc226e8413bbfbdd9c2bbeca22 GIT binary patch literal 3146 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_r_p_m_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_r_p_m_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4436c5f3970dbd8042b4330d454cbb367f09ab69 GIT binary patch literal 783 zcwPYy1MvI+0RRC20000000Ped00xo(0000000061|NsC0|NsBtxa(Uibt<#PoyTmf zdHqHtnGQq%00000000000001ZoV`?APunmQe($e1%h1%8lC(@4Qea3SOG`xBMrk_W zsWOS1SR{62J1q>c-#$ChDAW4L@PlQa%XcpJcdY)mw_2SJK*(9fQE3B!J4N>xj=<$i zh@-GTa?N-NTDm3$h6$#aBgwdOo3gYnu=aw3$X#f?4N2*SD7lZq>5HkEJUk3GaG+cQ zM6()Y+Q~gURD$nFwg?KNJs%H;C)Q|aeICK+*#0uKM<oT4O*3LASWdW*XkYb5QAxxc{T5(PU2)1rA0(DM_ zkeuAr5~pzO$CvYE49@HpuAL}yX7TMQY>CWSEdg&ZZ9!zNT+6B;%17aFMCBu}HB7z8 zy;M%lg&+9wtOBANz`x!jGNE!GS8dy;L=sexpV+4obBc;4w*GxY9Gx$)oLBl6`0E*y>ee;f&~dL; zdUGcJY_jrai`WT*RTz0=|Hc@AVby{gy;IEvj%Cg1AF#T@JSmV6`{SOzPsuJTE5&{> zRufEg6Ez={VUBnotiEEP7SB+L`_@1e@V8pBs!#+iUh9NRZF_?gg?-kXHPdN!{z=*E zAu0OS>yAbkrGc6TI*e{+n_fF&bkhLH8oD1^V_!5aR|XeLKlr}#ZajCXh#z=HuLljg zpPGF~l??Ol?q=J;e6sSQXdbDDaS>Hahc%%o@T$D4Ns$_GcGlK_X<9T1ygb{my*=+9 Na@4$0=Qp~j-!~CPa?$_* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_r_p_m_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_r_p_m_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..73e525b9c62f374cd4069633b83713dba945179e GIT binary patch literal 831 zcwPZN1Hk+M0RRC20000000RF200sR30000000061|NsC0|NsA~^A$+Ar`j4?=vhg} zFX(p+^#NM|00000000000001ZoUK${Z`3*veb28Lwdk^4+N7n>y-FB5t zL6wk@H<{g7b?nHV?6w!dZ)cnoxfrKL??Y zayT{3ot4XqU{LIMkwf@T(pp&Dg^?~oNR)yO;J~6oyTUSL-VE`98`3R-u}~2;aTKlB z>#(S~@X*+0be>Pf(F3%iS^>8PN+cnb3w;*+<&|{c%%VFRcwI_IR?b_(5=){T-(Vj(Lu-GN!a@l!?Yn;pzDgMjZa$pD;LBa z=BobMpbeuS*p>@j;^MI(`BVkl9FiKJh8K;Rn0JH7|xUFJS_L!FH!i8`;K*59qNI{H%kUuhn^rD)Kbe@C_mTSTh5X9 z8n%#}D-1nm#DYrQ^@0p)grz?m;3;d#Lu)jXp5rYRJVMW5AZ`Tgy~$9NW1g&2_S_CQ z9vv%`=k)%qMZx|B??~rQkAf%r0x>l0T*(4{ZEEm2=p!+Y(tR+$YjEPl2aibY{wA?= z>}|mp`1Ihh)CNokSV>DQclPTOh@i2CuwZ}18)&JCjW0()8hx-&`+ocKtZ40@eXpld0T^a%k_Cwl0LEqT zk-z~M8RPt57zZL^Spt$8(U?Gwq$CRj%TVo-jps3uTJXX#T*=oVOpIX=essOwpDS4{ zyuWWQ;05Z~K{}ZS6RBl18c65{A~%6X^7B!<{adU3s&#k-hrjE`$NJH+Qhi4<5|YY?l`%j;m8>d zTvN+0D$NGBY(XGgB{5}!hJ>rDBus{!%2o&jrXBC}-5PMeRjKUJG>qqC0@a=EGp&|I zWag2!PU^+%Hi%0q>uj5a&v4xbE=b}rhSl0&EgOH6uA;Qrq#WC6nD7VQqKvmV7MBFc z>ouliiH8|MC!1t00wJlDR_oxqJe6IE)b(A|TD|hA^7(&v{m&2aO;fQGf^^+Vsh~kj z|0Y%{NR|e%axQ0z@`Kkd5rdiRZ7b?Cfp4{{G3*#`eXDQSqps+0Aws_(3dfM6b2XoS zI6Ymu34M$j-5^EXfu!SD#R3S2VxFbY&fh+NJyrRw%ud&I{Bz4TF+pW7%J5f=bUfd+ zdVQJPKZ@iQffS1K8Og#p;Cy#YPkvB887!IM!r=0LycXh0LCI;5?E^x#B=&=ZG%@;h zmSD3O(L8PzRF(1t3DM%|S_{4YMb(Sv4XV20r|sL9BUtyk<|nsP>Z0ws7L*ba>N*x> zNV0@-xoOJ|5WXT@aM)sGTm%2oHT-v`19fyhsl{#_qur_+T;dAf2e z&&-eJwP{rLNL(`NzZp1or{6V7>Lb@F)K{l#JV|X%z9t2aD~X;nEF@N^Yjs*l47`g% zVs*O46M9O=G(xc-)@sF(Ic|t>?H%A})3Ahpz2&4YC)_dJ!N@U8g%Q4O8D`%#a{yeo z6k{K(Xf!IqpmD@&D<>sjDJzF0<-{ZRLbC3rGNRgMhhu0qdO6Qn;wtksX}+mkmuF_p z9yHFB05qWbA+3HhI_|u-Zw&gL+4m6c3TWQ-ta)F%aS2|L;}X zU9>HuUnpIX36@55GFM-^Dj$m=o)f+iC<5-&5?iUbidoxo*p%}1Rj%dSDAO_szOfr- zLQWLQFO#&Mf_=$dznfYLih6biFF&L&3+|E+t0`?XP72Cr^}o@W<)fSv%3|MyB3qqW z?az~2w1K}w)XnfiLn6!4^ft)IhP|Cf5y{>kwvUegQtdFq9Ezxx(-EtF9#@-78wEC% z`oJOhX%jAUkBMt;4nebUvZ{cDKUH737Ll~ixQuQi>0kWb*Z^Y2)e86*n7W}M^uyH8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_s_t_g_z_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_s_t_g_z_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7935685ec2a8e209874df62010f86d8da2709654 GIT binary patch literal 752 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_b_zip2_generator.cxx.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_b_zip2_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3b1ca2e84a94597a6da1fe6c1951609afebe38e5 GIT binary patch literal 2080 zcwPY@2;cVr0RRC20000000-az02a^y0000000061|NsC0|Ns9dqmXewlzNas%(!hG zZilZ^PZbaV00000000000001ZoV{58Z{j!>|DC_$9bHvnhCk~H1$xN^8y?>7b=R{dGsL1|4JwE=aeSC_4aC*}D@w9V# zY?j_oArsCz#w1-P_Ti-UFPz2c9$!3)WHwjeL=COv6n;t6iU`^Sk3}v0EzNw7Gs%TY z@~j2WO;a$-BnT?0SkkzK+D4RaG`7@(0xn>#)S}aFuU4y8lp!iDE@tg7;Z?uA5uK|n z1;h_&ZLd63HZ2G=^I*{Ni7S&>h^tZ8r$IgYfPQR*9PP zTmfBDW|gQpF3lEcf@@HZAWS_1pTdg?HN53ojhFqY+&A0d!&54MMMX z-R}lg(eOGL`Xjex1J!EDgfA&XYY-V%NkpXyCF9yJLh1t=gR5S}Y$BgYvmHdBV&+4M_1x}8Xpd{NB zF~Rittm^)UD3gz}T`~Fa@Tpd7w>49>j08q$j9J$3>x|QkGG)Nm`3@)}8P#@M1+(xE zGloghN~F;YN~?wmjYuvre`+mM>O=j4Pjac!N1%-7vpKH8Y%i(SqGOgoBHay;t%62~ zTSAf12gx+1QyAZRgMXgZ4qzSFDq%5SVK|?*M|H3goj1dj#mQ8Mdh{lr+CIi~I{Rjv zM(y{SuBAjCed_USfpst8BTPvu=~?aD-{Rb#FM9WuJ|s--ZOomH#}bv0H2F$Bbx=03GiUrYmHMCc!{ehYugDn@HT$ zm;&4=R4y1C+ox}@L2DFt`+YYU4+H-)=w9gv3TLA+0^l@^>X)6oaf8p;w9(BAo}+_n z?k>tbylxyqk9U-p!`p$>)^QZh=L;&Llt}qJE8ey;US_3v*6q!SaIZ$mIT7zL=g~bL z9nKS>rv}&oEmgHH4CRKTNSNnZ%X}Zo;9} z)il-*t<5GJH`mb>;NmH2!X=)GjyHAl4{iC6KT1!x%VyhKl`V9P=;I#5o@oX}#gt3m ze}sCwcW{ z8u~#uxZ7p=Q$>dIEk#8Ah2l3w__PgI!FZ~BUHt_aHaOTgE0w&PUt`xPtZo|aek+Za zv;piy7ZtwyHf@OIbJ!p>ldq@s4G25kZ&Vy}ogHgK@wDov%LQq^}C zxHg9Jkunq&pB%+9@5UCAXu8oWf7s zu8YYAe8e-$Hf_=0aG!}=3Uh+aBTq_a@md!VL8p0|KAOuQEg`(ZFtrKyVI3^Q9C!NF z9GzQHbH#*7zP=ZdB}r0(1P0DZC5YS44`pxw{s<4DBhMdrg9{(HTv~3O-}=Eh5T%4X ztCdlhw@ES=^a*5zJ>1@7G-doQ^cxk}E3o5g*So5CMIuY&3UVW!R`d`qyuLf`hGF1+ zz7E}S;C9dbLH};IfJgf@Hlft?=RQ@N0xDy(Y|wEPS6*1!w^P9KY(m8*BE+Z_uMjso z@3AQ#;kg=Pl=zQN9TX@GV9``{dI#uFoiTFO^)UaVPjqfe&&Zg}AbSC;Mi``o`B z?Z$2>WnU7M`9z-B*HDaa6Q%m9!7y%9k&(R|{gx+++7@S1YhDgwb!SOLEDQgWV`auP zrOHTbRBW>V&pdjP*?KG$ZIDA+84adaRMWq1V5RF$**{=c&^A4a_r(36=%`9yuBG+m zB~aE5?s$P|+x4RfSN@G_h!wb)t)4q}fAvP8H@Ix<_T?=%_qGC4z}jEa6H2J}Aoxm< zzSRy2!?ssm54>M>e=x0vFf95bykRaA{XR-(Sht^;o3l|h?Z#|j)biu0Nz?Dn%J)E6 KQU3={oYc8M0u3bq literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_b_zip2_generator.h.i b/CMakeLua/.hg/store/data/_source/_c_pack/cm_c_pack_tar_b_zip2_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b2c6d4c042fec2c4f69f995f4b488ef0d94e7cea GIT binary patch literal 776 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_pack/cygwin.readme.i b/CMakeLua/.hg/store/data/_source/_c_pack/cygwin.readme.i new file mode 100644 index 0000000000000000000000000000000000000000..f37044a1ba04b697be7a4444b796d9b3f64d85e0 GIT binary patch literal 674 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_and_test_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_and_test_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3fcb5c6ecafbe4d4c8de9ca3fbece79c9be8deed GIT binary patch literal 1052 zcwPY<1mpVv0RRC20000000Z0r012G{0000000061|NsC0|NsA3$c|X60c0h!xQ-wc zPd-adL+wxi00000000000001ZoUK)1Z`(Ey{jOheYYM}49n0y46_d9Cs+u&$?AWlB z6#)hmGSN~;{L7rb6Xv9$-lizva;e5gd8hBCGL zYbMhi^&sol@S6N4Os*@oww}@3xAfv8Gffx@)a>64hwuI2xBkTsaPdAEeivK}o$Ift zOQB@oj>K9t4;O>)$x7x(ZFX9$GXq`z#s+x@zX-Es8v8Jod;npdg9DVHu|!>CIv~Fo z@yT~!?hPmnnK7Hd_qW^afEQH%K$fz5(el8F*ZwQ^?z z?Nd=2EtZwR6h4oW>)CAr;msX<4i}5?Cb=8IR+vmx2Czm6O%#)nZ?VY*IZ+_Zq}hR5 z!Sr$wU6WV%VLTZpcQ)CpadLAR$8a@UKnU}2k&L6;Nw{bu&2Ja;S$sKYO0{v>Qq>6j zkua%@;8?n13T2a)w)4yo!&KE*(_7E?yfd+qDXxxawNM8mRO_|l$(k250 z0Y?ba>#CsmHc~CLsaU=rD^f*4*aIG3~H32eX9( zxK_MGf6L87!L<@8-9^F(mQ&u&y3xu|o|p!XL}GDK$@VI??6o|$ELu7^AK;BM3cSJaHPEv~dS$_;yt8yFOcv{l_oV=mB~_0}XVxaieL0OQmu+v>Y(m zsz}L|SdUH~Z)t45r$@m}yqMATjz@v9sx-%sLLWa{NTzouQ8q)$?ssD3D9|dVoyXJc z+^8r=CQqMCGCP&w)Y;VANLZqBYnE(3Ee_y{zuQLs;T=X0HlhpTs#0w WM1jhx@^2F68Ol_wJntX<^YF%Z-t`Xv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cfe5094213f878d2ad7a260d0dc4bfb16d477574 GIT binary patch literal 1384 zcwPZ$1(*5&0RRC20000000k%j01*xV0000000061|NsC0|Ns9M1i$BQQT~`d`tf5{ z4s%a&JF2Dt00000000000001ZoV{0VZ`(Ey{_bCKQHw%O9XTmFbaR>kimW(Z{RUZS zQDA_bkhe}ChwkmXJni1~j3Zh?FDSI1M)um0a-DbLMit2SM!kG!vH_7KKh4 z$0P}@;N!>6Jv>F05lL1XvXV^B^XItGCqg42hW>tWditt+`djzx6`Z~7y*%yx@=CG3 zr95M4(o@ptJ=1^Atg~Nn8~2^`?h|LLwE#0{OOzMzhKUElX$OW$V99r;_MJ4zQZCpg zwgBuX0>zdAry1qh=J-zY4p1g;5w&&Rs|NS{UFtJWI z0_Z(WG>BLuYkU_m(ya zQ@QH(h6xjlMC@;x)8+Obz*y@KrTRr~n<7LLsn~&qTQuWViZj~hTb~}~5EVCSpg9#T z=P5F=L{OfP2oyF@xoUw!5>fnV?Jl|J`-E&mH@O-PZqSh7bnpW~)&PDD=ZpTnwZ0FRU^Iv_I55%RQ-qFLM z7^2CBhgFnh)HpAQzm&y%tqfOXD01vIg80sCSG58DCXU$G<{>%@{x zxLH-Hz^R>+5>FxO+b2a8E%n0kGVtuNQAl7*6SE|uiFqI^+i-y)YE0v@a*9O<^9fsq zbO~DOaN_reUYSSJm3NVaCLvpvlGi-al!tPzz%lytcC#{?Q|RzP)BN>tSh^IBjFihPY$I;#B`R!?5-*{?m1A#bYJom!E7G*ZQJ9T0qjlhu;o4ZBNH z-5`z9m07ySJAkuEf8=_Lx2|`IW5)t#o!O1wAlbkhzjV9zj5^8d*OfR}!2+XWw&l9< zXR=G@?{6fUU<){%7DYd?%fTR?&Q*Hgo01q(3m6pCpI0#!fZ|uKBv!t8RU-de(d^Z*J94)cP0t-Su^PWvMU# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_command.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bd3f1bba7090cf37f3b780c4ec95f273d1629ef3 GIT binary patch literal 965 zcwPa;13LTw0RRC20000000V^p00-s(0000000061|NsC0|NsBsbgEp@phLz~rl)Le z8bfSxUIEDf00000000000001ZoUK*wZyGre{l0(2i1Y){WJz+rbfBI@Hl#rZ1T9Oe zsI4O79l&>98+pA@F6#a5H}*mZ%~sV(MG@@!`Hg3u-%MJ~H$UnV1OQ{B7lvhR0EmX{ zZ-g_5jL!43v1E3xO$KgtE+oQRRA`vhhG;{b77`r`Ud7SG;cehqlwfYJ3L(=-XBksz zxIA6MDiK zEJY5vp8Je|o>P%qBW8ug6yEof+q-E3-O)X~@5XU=l-ze=yJKhP^ntB~tgQKjr}6l1(hJK% zU062LYXtrzqS97y%zY`Db}1`o17=Bes_BQBuh|Mt#9XB~uky{qGB_bfDEtOWWW{BX zBGh&pZV8ZRo{U!u0xnseQ-HTp&zOAjZzl*^%_e-@!-x0*(DKX(N-8cCFyNLT$hi?K zOQ6Fm@_{ndH1~?~-J;bnbDR9)%ILq4Te27x{_@~`pf;?EnG_rYhi4`B&Ds$m<1<+{N+C@CG?yYeLro^c5#~!Nv*Kn@cw%A z-xbF2Tqaxr)9CR8~X2h_H19#m-Igaf{0rb#o>jwoWi0gwB$Yf;jhBo9~9{@}XS zInH2Ga85q9kZN9JsO+xIzH>xE6A`bUQ;ziCAM7PAJ!x>Ib3s?T4Qo|W3|*)Hza(x7 zDZiIPIdq^#Q~Dr6{e%B0o8uuB<`aB~d&x8&J-q70KQ%t8+MfNaj)kC^xN9q7 zqI2sO+@a5HCgxb-Jaz nFl`@t)Z>EhVm9eNlCXkF@el5nTzh^Ya&Uqw74zUfOlEl8K;+Fr literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_handler.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_handler.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f9dbad143cf19b3b978f5e9f59eced863b5b6df5 GIT binary patch literal 8201 zcwPYsAokw?0RRC20000003MwH0Dc4j0000000061|NsC0|Ns9Ey00000000000001Zob5epR~yHY-}x1da@R;gNWyWPM8@2MW!dJ0hcCz> zSs>ccsD)-3&1h#vJQ90<`&RY4duAkoaX#F$I*CCu)z#J2_3j6)`s=6qtgR99F^R7d zZ`vV*bPv62O14NhiPLoJW9Vh$IGGZBIu1fg-qVOCUKS_N>@Xh9LyE1)KTf)*_`XB@ zX}3?)?9Ds~M<2Xs6w;*W-`zEC$UmUTffrrPy(?_g-Q0u+Z@r9T037`H=k4~7t@g{- z_6xH8W2gN?r~NZ)`YTP+AdWh$H+mEBFWb$RZFmjuyYcKk39cp?srog<@|^qI z8)QH7oA__a-go0Djgu^xPn(47g&|?hQj*Y=CO34{1Z=02YK+b7E+cV5CRsM?v|6{f zw@rTv9BIbMRqI3l@SvqZC)qS4z%w$UnHPj<6KR7_e-fl5jmL~40>6)fG)scvJfkCW zw%`A7{Hag&j(#U+dnYG*NB!Slk=r1f#Pf{M8yayW*#w$SXJG(s08ipY**%HJkZ=@ zN_@q{D9!?(rfewF7)g#$61)u94r6*U`K!0q*1iiOKb(&!sT4`iq*4HZPtAuo8_pvs zv+nbQ*!Myu$L`zrVLV*)n!liD|phu25K; zle@d!H5UwY57?YGC%cG*%u|?JpqNZ2#!{=LR9SK{SeQQ$`()M#0!% z(N3C;!eEFP^|LIPQu_%^<-~q64r4E4gh00-zvCdHqv~Mr=J@1b@91rJFsQA4M`nq4 zHT6*ZBC_>U8`Q5=Co`}X!7#iBDe>bZp?*d@cybj@X_OI|V@YM2fdu&=XHl9Ff8r%| zX)$_95+{dV=1*vPeo0=Fzd%$gf1JM=Ud~f;-lLZYP-*a|r|BiVLgY*!$@#B0mq8q| zFJ&O_#+Tka%=qi-`5&ZnxmoK}&)Zu+<1YjsU0h_BH3h){2*rNS*{eDS7GFA|Cq_9@ zh{V%(Ugm`+M2A@L{0nPDdM78xC+hu0`5)cO zdbiu*tqBSwa1F?A02K{#fGuAuvP83R#Ku*t!@&7y>#VtaD!@SfG{D70bsh5@ZHJgtF_{SLad5q)cO#AG^?_lNP*#zdCJ#v{_<*fP4;dM6&9n*wHKK(p}ISXbW zTH=+B0ceBYfE@PwL&^BVfFfPNX8x)JBL&g96E7v#<1hr_e%>J=(wNN?BzBw7yC5Sd z+w+t|eu`2MyL22VmZg%npCT{_aR`p4BVldk8j#`zpNY+Jkbu@G){F!g_t~70f_UD* z_aZRk1W=6J=Nr~zcv|QGk)xO-;MGYM6EvzM^O7r?0lXuR{y_kw@POc_ zbAQ6dg|j*e(EY{9y(_?Smc$hGfhDsf{%`b^LQ!E>h7kE=5_@~?%d4d>vv=oHCbEXt z3;+~j!vF&nGEU;D;4kzu3P$iW1!}0Wbm+@rqO?+1&-fE1#vPOzsu^xf;-URjn3&D8 z2~|B5INLL`%PsaHEb2omngH1y5-$Y8TmVtfw-|0YaX40`N!rgsWPY@N^#1Xl zRv@r_t#XBetXv>b9u7b>Q00w2!;g7%<$70va#8Rir~31mK#}V|55ZrE(Ma7jA^}UD zTw)$>P)&RK2jr4UdIW{dIyasmFcU9Dha>!Gd8p?ONty``0;&!`37vY$HTjM|l4OIO zap!>pT8)Le`Ft34g5q=1JKQ_@MM_Vzt^~*EU_~h}()rdrO$mOg)^Fe$fTa^< z!GQP8dI$2$(|yvtxBz}{qNf}NBS=K44|$3aI$N0LSr9%EsuKu%=7~=qk4|dfPcKNv ze)8f+(pkkkN!=%;8^-=MNw4WGrs`mY!5I?rJ5b1s@Cc%od$h=y(Ll-#AWdUT=(`~a zYl-Bk_5Ps6eo}b;L)&U3WJkVHuMRvBupLX81PK0$quPr`vTc(_ zqiPKre|bU%-NX=t7IJAHjRVA}e^QG%r}G(2zyhbK4Wfs8im@6G+g_7OMZf4pqoT*% zd78yjv(nS_L+T|aP6I}}xiT<2>RSS}2%Tvwq)`CFMDH}H4a>T8AS?jYTM3X!`eKk} zm>8!;9TC9)HK%jB6pGQf2=thxYX|YwDNH)dW835^WO-4hks-GV7Ve8Q_QI6r1gse75ytNCF;^es83YU&<;wjl z%eK?1F8GuBbZpu&h5{!v->fakd)k(;$ zqQHj)Ys`8lw~*(MVG>`{h|Fgg>c_+*W600aDP%%40VLyj4C7l0o`>v^?dR)I653ZN%CDb zecr69#Pack*95JSTHst$WsSg@6);;#CdZ)C%+)X$S*fW}<#FW<^8Ufl^RKH(O}6>M zeo}D1&Vb6qRXD5O>FM74o>uV+$ow#*Q^F?)MZ`O0s$hUNQN<3`keN4 zKX%XLNqNL2yqi#P;^4O+ZO(*Dhw&AYxq`hTBp#=TU=+_mUqSP|SxQF(^dbYc5W3y2fX+OrL;SMkr{YF)@ZQV%5fhmYxFuBse4r-6!p5mL&2c$;A*0~n&#bHDkq*;np z$GrU!%Z+@C5nF#t8)CJcssOIRvE9l%gRNqUR8B+Tjx9#W4V&2=U|BZe)@c_67UXD< z-OniTeeE}WpE=FK?I*r}`3eER8JessEn;X}UV^QrHL1LJqpH6u0Y*uqmy9 zQUFfH2g8_PxSXd@vqDe3(L_OgSt|@_i#Wbe?;FJhK{Ld79DXgKRu^_5@Tp4*{|89=3p57Dmhq^m_vxsJ#tskADuN^mE1#$Op$mcJ1MZarsKb(h&* zpKNXAGAYIb-Uf{&24fqo4F#qFiSASPB6W3Bc-}lqHvrq_ zc1;5gA=bFoU%yznN4XGiwAvl5Jl}2ryV7*ylJEnk+wG@pwmIse+2(H^Hru?-ve{OB z>RyUx+XPgz?NF@Y44R){whfi$Se38mmge}nK|-2sq*%g1+rh$I@$!UD>2ydFz9UIQ zz!;fp%V92mSraN&NQ^)|!i}5RuU;riHT+4+0{rwo6;-MM;LPZtcL#C8$c^x|w46@j z+v6y_uiCLa$H#$B=8=&OR?WmyOjLtB<0Q#k$;rPISevI2T2oYoVsT0#eL80mZXJ*r zKYDdLabBKLsQI9(TEMDptP<#jK66Mig|a8gSdLsgO->%hdSThvf;^0D736Jl>TpKZ z7fdnv{8`GyW0Eu$7E~b)yq(a9GX)KTELX0Ora{aY;l5fKaEWx7=VNBNm9kupxz#~# z@r;K6Ms!PWg3J})oDFW$=`3?)SX4D{SfE+9Rwn~bF+c{rzQWQTez3xc@UHQ5=J$lo zLeHl>aMxu@Y`V4Er*~PS%(ZC6VfL<7QC&Zz3%ykMtvk|-m5=DjDDV}{wY0$hUQ?|` z^^IrxiTf#^=;a+bh1?*8j_%16?3s7PPLItq63v-?j>kpjW9PiTqsK9;s}US%^k~cW1rn<+i_P8^eMjFgAd;;tV|_F{^^wB_)l|Tw&TJ^tQ1mj49X_ z!DbsLIpz^w%&S5>4EgRwBxVPnU1U298V~AX?6Yf#y%7tu<}Dl2!m}fHX=32Ft6x}j zVekrMoqA)vNciBzo|@5V%kI?@H>No&aoDZkF@=jE6bJd4#gHdp^u!Np{m{1S*6Jyh zwrq|klG(wp2{r}$Da4g83X_~kdsWy-igrOW`RdhLQGwvGWrtUM*zABL$5YpgB7o!Rx&rzg0DlD7 zs$FtmB#O41uVvb7lrZV78(9!h#e_F3h#=3Nk!o&AAYRXNoK--b+H{!&k-9&H{-0Ir zK~~d?ojel6O1l+pF|_po42+%NZE#(h>o8&y4@^CmFvVyvs57lsfz3g@2v&2NM>{Ru z+Ats-q`-z0Z;&tzNy2j_{BQ|P+=#ev2SHAL@ss4j@!CsQ!GhWS)XdJhBb09Cwm!R z)R@IsTe+nqqF4x!2U)qB(ufm^=f!c)PHf{bj9C&x&=QZ?Bau`$;2rUAQg%!+)XOC z!N#Q`{|3gMwrm*=#9URKksLvSU>5<5Y_<~l?f?p;!oeZRg-$C%W}DlM94s$~&K&Br z#maxP3}Bu<%Nc?~ffRb$kMYu%>kge6$_;O^yIaT}%L|%7t0ap>2pdjCzd$&?I4X>` z=7=YRuL+pBpz7$c+A&otB-bhPnjOgBc)`ILx-2w+b9Bhq)f-9d8Dw}0Wdw`mrG`rR zHH?c@OYN16`4l0s0c7#6$dlMZE+Db*1>xh##MVWm;&Ycai*(&^Rg%l6U>TvhrQz$< zvr;nMW=jao#VOFguF0$rCTL(MSlDS9c#0ztqbRdVPa0Y&3)mhoH_Y>)iD4U$t6MTV#^>x<$}H}YIB4?WFkl}wHBy!+I<3#Rj_Q7Ga`6E&*LYBLZ! z%sZqsBBrub5`Io$eSIAmS{iHu=MBadvmWdp_4whA-S$q){F-a9(|TC!>LSRApsc5v z;W5Olq!;-y*6?3nREFRrUcR{CbsrI5!Q<92h+0>F2D1y+QMS{9cDY2o7mbS2bhQ$~ z2W3LpDSD6B4i1B8p3zk55gxT1fb+_BAjI0O<_iq1m$lY*yV*ALZWmQ9Coj-aOACNX zRiI$CneU$D^Y4u4=?Yk-`|6zqM(eaXe}<(fXkHg9Tn+2kFGLd!wg`%16VEZOW>v4T zDtnDnUakTI_l}iLu4G-4hf;d)u)JDh(bg*jO7nr$M=wd~o@`$gSa~TG!c}Y}o$L2xYfTNFYEtC6d|hR`@>k1fl3WM44x8q8N|aNnmtx|oM)1TT^W0zJYx%# zGCK}Tn-6(e(L1*p8l*ri>hh4Vi~&Z%>+yt_C%Ya?b{RQpKbgm~SoTmAW9rxpQ&vx< ztc#1#r9_j93Ntx~ksC}E&VG3W6Y>@Kqxe?Vx@UaVS8NVppeAjK(tuo#;8*BeTO^LZw|m%Ar&`_Wy%K?s4vYqH&b{(=iOH#%PC z$;}r4aFtCSu+qci16O-`5P^t0MlgWEdn3Vih(#dTH(Rk8-s4?65a)@TdnYHkWqx_)nnAvqkH<8ra*j)eqqa7b z&a!Pz`V`Q!LXFS|=a(Pb`X&Sv_5DSk*0y`&mu(dFvK0Hn(5T2GRilr zsXFEj;uo9vBqfFC|FAeQ2FDe}5&4rQv5cA-0;3L5w?}E(5cFMab`lEy&v1*$JYq!- znQiD5STDo1MrdLp8F}es7<&o3-`V0yevOWGAe^l>TISQHTyw$?#2F<}xaMIV2z*T{ z^?F_1&ID}P%CQC4PJM_QGIn(zaCs4K@!90T@_GBR1lYK(LTzv_0<&(eC6tY#cOH4D^w7w<25{IophM0)Y z!XvdSkA4Ojz-X0xsgPV5%@^#DdI%MI^;yL>kJf5el^>wS%T>5k#f0ke+mbXcYbAp7ha`{b)(F*Fif~qc1Qwa8jmOe^D^KrY>%~dyn^>eeW&!DsF{z5L5ZezCE zy`^|npK`gvu5#J@|LWn2i2jyae5}CIstmFSS*Pf1_Zv&@pNY_ue={P`eCZGyWrL#N zwtqjPb@D$f9yKl_Tv$s0Dte843}vtki1PCyZjE1 z%CkcNcu)11;ougal%LM7I0QEKT8SY#`&D>}PrP%tZ5M3XW+`AjU>*jO$>L*4Wru_0 z;EpkG_GyxNz>nO9M7F^BaIo?K{c=zJo9I6Fw z#S7;I=ql3byIZaNA_-+rVJN)b?3e72T119@)EgPvF zra5nxSPULBOAB9-RchOrfIS6teBW3VK`eB=1UGd`Wc;3S{Kl9mz@#uBXw~L&1NTgB zTNvNc8UCFRT)2)jVzk2ztfPrX&N z6m#-Y!1lEc)vaX*`$xTwBOq>7vTl^Y3Zk`KIwff{HFJ5cWEnz1C6C8ep>cf~jW#h$ zNpu3n9D&ZB9*(c17$9nzI%63Gj!h$hrY5%@$j2Px3*mzWjBo4qb%8aZ72fP z{tJ|$Y4IR#5VobCRXo+5du*TL4Cqj@WcURuz{rnEtcpK-=3IDH%AjSZ_5f88rW~7g zba-PbN|}U}U@>h`Inh=_7IIt4ZL#Pvgt{9^SEj>N3VQ>l{@vNQYW9ZFFlGz40eFX$ zDT!%SWHc7x7baYJrfSX8dL!b5VixHJYUiTnk=Fj@EHX_F3ogp6mV5DKvBladpkl!W z*Zk(evUO1{W~Hk{mM65&S>iqdR`}AH8|tjsQ-I0INS?$DSm?*{Rd(@Y#PefuQqx}T zl&N27Zn;aUY_+|va%}tLE_=DG{No;!%!eAXvgFXI!w4=q*x7%$nKR#|G=B-@4SO(rhBEMHK+Rio2`&);rUyr`{31k9*u&TnWkj8nO; zrR9TfnF5iF)M6J~WnFvR+K_H@mOxBlt!mcPV%uJL>)ofqw&;aj@du&s>?gp*}F%TLT-4_;uia}Sc z3*mtRcIbpnQeo;~GRBC-mdzy*e>05FshU#5888*EPWe?@9rG-B{>rd(&a6w;s8+GD zvN#{(wQS~A zSI*)F-)sgSuAu68%2&_c->;+EG!^UxH%n}<>~<#43R{{bMBP@sKIy&3Ki@50gH-(= zSL-_9000009-ROH0002&004hO000000004m00000|NsC0Q5dpQ81=xNi~MVg(~x}D z(b?@Q000000000000000c$|%o(Q3jl6o$`kd$%_@lwRn?*2Y3NvaA=P$Y57m6hRoJ z4KrXc;CB~itw&;rTqr~xpabc8{eMa!T;j66CG-&$})cdY$JeZv!BHn literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_build_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..127cdfbc192748692cb3f1a6d1aabef681654d59 GIT binary patch literal 1688 zcwPaR250#I0RRC20000000p4{01*QK0000000061|NsC0|NsApV2k;(-#2@geGR&; zSrty5pt$@100000000000001ZoUK=FZ`w!@{_bBf*H#sw6w+2YouC(qx+Fmdgfq0g zN++R>J;18A*WFzca#jEP&F&g7Yu-Ac^<$}ikW0d69D`^ z`-1Qid?}QAIgFW}3Ymb}o$?sr3R9F!3rVoPi1HW>3Z4c2$jF-zCjJey(TfqeUaTuKAUT(glEReYxs-nJ0`IP-88I2JC4CBD3GX7E-U$7V z=ywADnn3M$-ClS6*~EI;9S=IA5nSE`(1u|<7{RX4L=0Kn^C9k4rJ3lth@2Q*+}?Q-bMCzl>+qhUY!y(=@{AK8{T0-cu6s6c0!ZIt}AILU>YW zST6E#&9Wz3Dm}{kB~j96;T(-{BYhht>RvShoaHf-on=OhFodelm&*&!3uC4fg|Q-i z%kvu5D*U_J-wDqHlHN*AM{9%A(sQO^Zp8%A1b~+#%I!jgHnoZ{^w;nX8igig`EATY z*n3>>o9Dz$y6G?(-)Goop%j%prfU05oV5&R8&yM`ZU;tiw$5g=r|pRO2@Y@{~BABxC_phN07p9P3TTGlEd0Q$EWj z)*(Qh%Tz(;4hc##ohxh1s!G%!$ul?2#Aw2T#W|XK#AS$?D;}38a&3<1JMR^8LR<*v zOjcJB)oiVjZndymgR)k{=>m-<%@d?P;nbCmnoTjK-hwQ7PR&8N#9^8z@Xe~+PJ+&r z=>?NschIR7d(?LZ-NDt?UMC1{oEB|-cQ;w)B?X_+^>m~Z@)MIOPiFxxE!eo)5D|_e zDrfNR`|7k{s&RHJ3CI_g-$uiL%qetavUD4@*_kH#j*;U zI997CW+tT8CgrA?r!yGiQt$4LL@qQ@Y&lwYk7_ID)QD5txg&hI^K_=j&wA#fD3T_$VS{}n&yRSov7Yf zmHR1(A{(c>C;-Qt9I3VoC~p|%8IDounDW{&w7=2{8#d$u`6%Ez^hbirsrotSkDdvy zX-Jy)4{ImFuQ|RoE%pNR#FC^KX$1Z|#~jT}EzK?`e3wtBG}N{lG}Fv==or(Pp4ULp zaGB`m)Um@aMZ2~;c4I?KCR(lzX9aH+Mj|6~&IuQE0Qtwfpu1^C_pa z)w@|mbo${-6U(0dbY!0`w@2aWuX?f~Vs`$M25U*7h#KD@?4v)HAu^*B)Z77X7X zhM8L!Q%mtl+lE+vr8&Hc5+$Djny(`}K~IAgF>ZrTJ|3gLOFN9CWK?CXJ`zRW?3652BtHrXk zu$%2UlVkWH?3!ylfU(Rx_ct9LD`}LrqOCoEsH&io8PI4@uQ2z>ZI1Zt=-Iy(l!nsU zCiMOFdhKO3O~O-p>5tOs#DAuiwyuC?1vy$SD&x7@=u1msz^J0D2z}x=3$^uokvdtp!}6>`iP*(z>YxX~;)&X>UOlFg;7+5s9L&r?vdy|y5Prd?DbgQuCXJJyFn zx22o(-95Oow6up`x+t7NFoYL@jaEDK{)Gt)9-aW+9sdLT`biu)y=`#HGp%+v>p6HX UdvD0@iOsfA=AvN#0G9ofS-VS19{>OV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9370e196f769bb12fef9698c141a4252682a3842 GIT binary patch literal 1176 zcwPaR1ZVpI0RRC20000000dY701g@e0000000061|NsC0|NsBSjy}$TJBww^DDa7@ zoqE0-p^0Gt00000000000001ZoV{0VZ{j!*{?4zM%T*P$CA2Hu?jBVur6Hx!mKTMv ztLpZI+%SOek{Ha>J)#U>Od*+$(<7dXEadh!sPo)CT=WNPJ)C2&# zL;gglgUy)`^?pd?gz*UU=!Av{ZH$o<$+&XsuyGQi_JRY?9_aZd1d;8dkT#1abeeFq zSrn0YYzB{yCkr@GZnq?!CS}KJQ8?NAhtt!Kjnhw!vokpRwfW2E=IN)@ z^(%5gS=>w`;(}&B&P-)@pci7Z`I6J=OhPrNX_OD}g~|uQ@dVsBF!iTM=T&}!aY>WN z1hB#oQa1q{1@Z-sO@%fOva~;8^3egC`@NE3PJG( zW0Zu3!qmB`$DdIFf=$wlK)sKtkeuEp636h(^>2DZAFS>je6u{y>iT!*@Id8^B@%Ff zaRwr1$~BsYRQV_zPGY$PHi3@g**D6`x^iz_|4!$6?fPA3Fo5fx2Nv`#&v)(Nt>tAv z{h`r?Y=IE0NsO7K0g7}f5z{HhS`9=h+SQugO@l{`%Fi?o!eoqK>=Mw- zsBBy5(XGK$qcpftULo?-v2^BWmsp!kH>Q%3kp6|aZM9Z;Qnb+tR25ZJ)Gxo1FhTKK zAV*h2_qO#r)KXfXD%mD!lN7vuIY9X$Ov+!?xJqa^Zc&bbDyOA!lI@DhX|NO$BcHKQ zG@CXHLoye5orGbZ$XPWvgB@wq%wVKMRjt*|Q_COf6GMUjZ*p0PRoAFrwo$g!t7cWB z+rBgKM^|pw^6o}0*K=&Y=iM2#vgAuCAM}Qv?Yy1y0ZVv*??`%{$UCwAPU*eEdzSMX zc+Zn=?y#13FQC%>+laJ>-xGgjCjGX?ua z%!qClvZPg{rWgD1zD`uVbvjnJl?6_TE(M3fLpUm*d8_a@0SalA!S7b_3qthyx4sZ` zNrXA(zI=47FV3j#bREx9JG0t`jE^nsjEwE!S|0RiwV*UZAypUGhig1NR7b8ZtC3RM zx==3mlJ;gj<{9QW7O)$Vf1b{^^fS=Cw4YV#TCxAG05;40CER8aY!|{x3Ho_PYqmvO z!n^?EyJ4(6%WaNJ*w6+wl8??%1-daP~H>RsbY7; z*l6LaJzLjrA<0cau94RIQCHIqQM!}VP0x`0PeLIhW6s$hO3Wv@#}Y~l{6y=L7C<`0 z-cXyp(<}tLDc2v*`gi%gZKaege;-%}S|z#bbXt$(cIOqf;>zDHfmS4dtwHqw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_command.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..08572fed573bf8da56059bc4d22cdfcfea40932c GIT binary patch literal 984 zcwPb611J0d0RRC20000000Wo+00BTj3l?JI)_m}7AzeeXjMVG(B#c!SSi_YcGCG{g3E41pA z=iypZ4;SGtgc2O<)z*l`(m|8AyvQZ|Dcpt`JcYjEp}*P^C+Dm-P84|v(3KKOngxRv z%^I_i)Fz0}ilO`BKpR*(x9UXEX0r)-PALhsSwy$#a1cG4E?q8xk_H(%CZr9$Z}dx- z!h+TF(j%bzOju{ctZ)sIN($nT zj$z7eLC;~>OX6E1b>H^~{q)}Zdecuwy~zY_?h@$2xSOQ?csl4NmC$&ajPEABunN@6 zvYB2Z@Ldv>c7mfVL&>#wS@~9AjbetHE?%3{>H*tgt+Dw;u87)9*r@pUc`6wA>M&&#SYn$Z<z9$rZ$E=8Z3UHj8#WH5Wax+d|2c9~NclZKs(k|uTG0E+XuhBJ z2iGtwgv=f?VIb+H(`5AUu{)Ud{4Q>NR*fh2t5_C-R$@h^J!;T*@D_XlE!|@D|l_(rcan~f=TfY)~}kL`IY{I6I7X)2mb0Y7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_handler.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_handler.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..26014c01facbeee9fc9ebf65331833e522b0d1d6 GIT binary patch literal 1728 zcwPa(20!@#0RRC20000000lz;01veQ0000000061|NsC0|NsB21(B|Z?q)rGE zN|n&YUSO}b7wxV?xHkX&X4fy+2HM^!#|N-?cb=Vj_L-T*d2{wsAIk!`6MQa68bSyuhDEs;(0>m+OYTbEe>1~m7*X{`uwile($tToZ~h=y6qFU{kt*! zNQGoPcFm6Tk)KEXO%|k&m?}7}wo1 z(LA)iSBLCh2*A^V$}jkUU%JUSmIODg=3NLgKS`l7BmjvrDY!Zk1j zE1rY_JWz;Ha=>QB6IfAH-Gks?X$;8{^`|%xn9&u;h=dpdg3OZG*NT*YQK5RHh{h-Y z+qNxSzd!cuz{|u#zIw>#&6EoB+5*h1%VFP}Vus$`Pg>9@@L(zUU({C(=yX7;z;!7C zB2|#S=?stO;P=om+{)zM8I-_}&abGd_-GQWx!EE!Z5U9brdgob(wqyNok1H84fZ$l zy)TZw=iPeK5mtrnRlk)M0t|-4nCmcONMLri*P-E?}M`aQ!bm-5~uq5V23r%w19Qs#Jq&N${#ERe-IjHX*Inz72 zF4#WK-=EEInK#3;p}elbULph*m7MM$u`$c&C=r1%=@m5&W-@c_XC>!j-@Cv*y{q)- z+kvTgn5Qn3q*l}iAJv1kZMXbnJx(u)^-V7`Zq`v+aFA*%&y0gqT&;TAAJ=Z)^ND{OYX5+eOxErih~GwEx8Pjql(fPtL;v?pyJcx}GjLEk>XB z1(qFE>iw?c#~8L3?@XD~pQPkv|Kk1%b=b$2v^&>w@6a@JD1~xeEiXKyF`3b3s-@hy zV(pe6^JT zTlqH)CH;kFo9k$AJu6Fje;a+y`q(Rzao@jJlj^_p`@RrdG_gso7Utd=5Z%U1kKcdU z+tJU9p|-v_{{uM2o@oF8000F;000000Q~>}5d{DM000000fYbm00960|NqWIyxRuR z5=g{3kjUfM5FY2{3LXFe0000000000004NLV_;x7!@$5O%D}+jsi5GJSdwa`00t@$ zwvmB>g}#BIzOjLVp_!GTxs|b*f(n;{LRe~1ab|uVNU=&#YFQ?PW2k3n0+eQ8;H-yW zhIo)!rFq4f>3OLs3YmE&3dJRfMJ4einYpQ8Lcta!Qj(b*pPX1+VuP&IPJ;{LmgL;v z%HopL+>reIoMJ00_tcUQpiT`3Z4+|58d3uslN0u0#L0L@IXvP#WM$>Bm4Rf;LG z2?p8koS&DLnO<6y3Npw}38DkVU8wqO^s#7*$y2gMC{s`XI)-;S1T(awTkD#ag2hs} WcHCir)AQ&q#IOPAJ}v-Il!E{}_fInb literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_configure_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..cd08d839ea9132936b0a5e92d89211ea6d8941c4 GIT binary patch literal 661 zcwPaO0&4vL0RRC20000000LD200glB0000000061|NsC0|Ns9De8wa^N*!pYpoS6E zT1-4@%w0+V00000000000001ZoUK${PunmQeb2AB0v@11(lU){L3_wDSSwnn(lCTH zX>y&L#+qYSwv(=#_TP7%AkZYr6Hyd7J|DimK1nqA^j2380L+bE8CJ&tkj~gogi}b3 zw)S)`nJcxa!OxaLB78-KhB<9WHq%8T(W~GfOBWuGf!Aq{)}>mNV$~QNGgU}5VRh2N z0g0wets1uSvh?_vCcZG&dyq>%J{u0tqv5+~_z_0u@#sT58g|leXspmG?$*Or^e?0E zJ)s1rdc8GbRXI51N8aQNu7%q$gC{UiJcL9_=m-`JS~M*dA?X%~&)U%aa-a=V&aLAp z+H5uHqY5Y`#7Y#bJFKgq|p zcR3_C4{)DkS#pyA1`OWh*yr*M!l-&7wAlf?!{is=#trOny|sKEXoaD-7?VxNHi9y+>9TOTnMQw)Y=pO8vj0bf%0~ z=)oWw4B$JL%-UV+1VD_X5majeJ=0apLDj(|b0mV(1vRVHyz7-E4c$@jsxic{ZkAGT zc(L~2Pte0L9Urgr?HXr{8-2LL?&M{gqYEF#Xy7w2phP0nOejF*%of&KDAygg^HJ@} v?T8UQJw!hQ3WR<1I_%AM6!3_)S`_q|2`88oztPYBC14*_A0RRC20000000MLX00h$j0000000061|NsC0|NsBWyEIIYB(5Bgd3Tn| zo|ZxnJAual00000000000001ZoUK#aPTN2befL*PQyvmX>;P3SMj*K+kf^!IF(96* z#oolL+Pi3XoInx(-r02kwUjsZ!P=dfbLQeR!S3;U9nS-pYqip>3IQOVuwNW{5Nl;j zZ(cH7DqVrKE=9@VoJ+15DowD7%IlI_6znAN!umtVsyO8aW3{HZ6^~U_F`4_>-CcJL zJA@iDxvI%SxOi`m45thm5~6AD2mSu%pnn(~e1rWj;o)KUY2QIFxi&({&?V$+(LDD3 zujD0ntZwhMSQQBEtYb+I;D^8s)4U5Knfdl>oIh65D2<}7e1NDd!NCk@Zn$3a+$XjL z=P!&t-XSOr1>$WO1e?vq&nlXUuk!U_(fI?NpMQfnEl6en literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_command.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3eab54c22a7f4410c1ec775fb3a77399ac3568ab GIT binary patch literal 995 zcwPbH104JS0RRC20000000W}{00<5M0000000061|NsC0|NsAkM(-$Dgp=*H;&#R3 zM@W$^TEfBr00000000000001ZoUK)DZ`w!@{_bBfBK<&UVkfy%Pe;^~T!%F1fFNU1 zMQs%=>jCfGdKazNP%i3!@2qV|h={6_ijZaR%=66qY|wfCtA3sbFgAK&Sl$JIXvqFW zIEBdQqBtE(X6M@E;7;d4B78)JhFNV0Hq>b;(V^f?98H|O3p|e!ENrA#q_@CG=Q&fU zpPj7W4PgdMElN5kRP^>O9b7S6QxHl0esOm8E;#!wxcC#!|LC5bcQ1agpm%5rp;fms zhbvKkocm5n;z%zyMl3Q5ZGP-XF5qur*UaDv^cDBrv#8{eR)scJl(`QON(mLL0D}dZ z6{bG1O%R_Lef!OVHjr7n>;}Plz4m!d8S%AQ1UJcW5Im`7HkUv-gA^?jvhba6^h+{P zK%wWAM?mkXD6A2)(qamq`pM1hG=Xq*51+y~4oAuTC9H+bbZG%ssA>|M5j0;)K^WpO zOxX?SIShMobVH!`y%kzRx2flF0isB`a2PBypK|aK#0tVcY6bf#{(vr~058H;?v$Uvk$eTl} zp(1c+OQZimZmFjz(u3BwR9#q>GbuP648eQ!YH`;!)M1MDF+6^EVhYvOxl?x?{TZx; zu_cq_qoTemIgM~t+h>0J6(*qPPC0LwI}k~&uzg&$&tvsG>_Z2XfcKzq{ffe61yQ$|Z6!cQYkay#NO^ zn{Mb2WW=Qpc*abJcA*^+qs#i%b}LGHljI?~z3au{$6o7l--$`dId!UqRP!=NWt(yO ziIs#lA6`9&>=j~b+oh#$M1xCR2rBW$Zyid;&<*te^WnOb@@Fp8y9HXbjQ7&e{`_Iu zA6&t#6f%8Ch4~7f<6bh2M-O-5VA^w=_v`T&)!Gt_(Nxz?U8uT!wuM^=T8A|i?NEcR zlQ-Z>Sd90H)oinXYbF!5ifc-CDv5CdGf)9JLAg Roxt7^s#MH9?+0$`g+{%B;qCwc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_handler.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_coverage_handler.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5dff59049d51be45ecb3135855fcdc64e16d466a GIT binary patch literal 11673 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_empty_binary_directory_command.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_empty_binary_directory_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5ae8f20ac04c723c9690d3b876658011e0bb9fa4 GIT binary patch literal 1298 zcwPY#1?~C(0RRC20000000Zd&00|BN0000000061|NsC0|Ns9PPm=_z))`0B2`}!? z5>m0vSbm%U00000000000001ZoUK)1Z`w!@{qA2eBGn0KVrV0sbmUrzIOKv35@ejK zkSayXdcdo$cdgwu6h-~-H)}%zxv1o%T433pd2eTD-pqE|pMKR91OOAGmxkp%0Eouy z8^RexMq7I}k<2Z$$-#eJ2#N3)Dm2V#L$I+(JJcXg+p}*V89%*H@aiYva zfWDMa!7LcGXjYhp#5P5IW(?hT2iid9T+!=v*6Vf1bIMMr&9ZZoj7Obk*UaS-D1VTm zV?x@{$3|C@2@6&)s)&G|Q(>JE^U`4oUxvxe-F*W6+ZlZ6$8rBQnO(qIxJ;K0aD}QS zaT!7LLJGnVk73GfKrdiCh@%?<^)H8`VKVcvUJsMo!E_4OcQN!~(vOp2bU*6HHPPfg zp4?3bVZBjL%jSB8z@L(+v=ba{wUu1^kd;>jbCh-3(=XFvyAzyQ2vYQ<%lA~d%CPkL+wL8sk@uUs-~f5sL7dCiTW0OL{t1MbKZEH|QXWb}5PkHp*% z%5M3gj?$95q&oW=;dkVvV{>Y#rU;Sr=y_TmUevv4!D-+IsS8Mgl$fKj?N;kSQO>2{ zaJb9hF{r=yyathwe|# z`Ifm2k<<#CtxA56)%|!pZBU}tD|`Zl>o-6yDt{%;K3ATEbF_u++Y95gD&Y;GB$`9d z15*t%=t`pqUBAAbC(fkwy_uof&x|)MgrRs)aa}5hhP;HT!QQc&!6TB2t%i-CtN%^s zTx&^FOgO>hgrw25F75SJRRaF3p8ZHs%g=R{egkHfwsr9$QUt|v^pf0e*$f5ha6Z@-P@rlG(%M@U|b%9xg` zdDD_}>Qe`)=4Fn`ZHLT}H4{1y@M<4&Ag^5{NMaGxiGH*5N;5Qix1wphR?D%UcKr%>Nk!*$Bpp)t+xoJKJ2d%HFu|vg}(|q=g_;L?nExuhH*MbhT0!?*kwVUBkO*DwF%b=;(xraaa*v@Vro8Rv zm*>f*z%k=SH;?!6>5Eb3Rs4hg!3nBVEP{UlSx4Xg000001L*(&0001~000R@00000 z0003&00000|NsC0+j#AoHu`H~d$qg~0DU0Vvovs_000000000000000c${@ju?oU4 z6nqXk^dE#bl%gQoRE3g?lY(xd;2vWrftocm&_LjTjjynK&1B|8sa6&vN zHWGWpgU-@4U!`J|tx;@cmdjLN93kFKAnV<)9A8ai2P2l7E(I8W047DZ*&;SJaIGqQ zcwgb!S+=UWD54qhQ_99@_F>m+;$U65N9`SPf-01>i10u3>)0Ayb9a4X#Wi6~DHd-lc z6Ij$#@YsI<00000000000001ZoXu8kZ{kJ}{?4zMb59i{V3Mf4oXjN>r6fTmAp)n@ zsH&oky};^hueH18rKjs}@9eH2ye9NY+Vcl&c4ua1o_S_=st0HLdI|-ATfql{#2x@N zuE{3~6=(=9W#u*^s?S9XdbQ6Y3YRpYf+#Lf?V5*KM70*Y?KXOP--94-_*5z*$AT-8 zgb@{PFqxD`@D`QYBpGC6pw$|Ohq&-FQPu`pvEL_0N2k@J_tlg4aD3|h@Xq`3)TsVS zg=9SO%z1Rg?4M)z_#JNJeuJk|!3IMG#h|3EoWL(kjftRTXeEKGf2G-P@I-Q)w%Pbesd2W>)mes#=oz@n5iMp6wnb( ztPwRt)i{k9>YyD#5;XSZXs1^#}u_TDHkb<+B zKSO6pq&Jm{#y;nWE^e)>o7HNyvX`f@(I?N_xLhn1J{NSJn5>-VYe?KjE-9QrpG1<@ z=KDq;mye#7df8*lR4WPT#BO|f{XqWO9?3pWA8{6L?hl^VqpFi?W)%ahO$EV_hy&nh z85aMKNR&|vFzZ7R-tZJkhR>hPub?UuNzHtJnF|@MCAlq5sD~aFWHRu%eS02Lw%eg) z%!;iXOp8sGby&K6mV`x~mh8FaOd}3&RwXG4mU2&KzQC%CAd(i1f!v~vWi`6OisJ7) z{R3Sy!S0teFXZi3w`HuyWLpOFAa;MYq&zQ>Ia9Q4yIuP>2(gO9F4S1pd5$C-r2i>h z)=d0A#Azi=F%q#q=~Bm>g%w1UUjlfFtmFSHHCx zZFQdJ^^xTqj+P>wsW}gheyu4y9XywGCvoJMN@e{;cq->e=td?4)~Zhi#ga?oR85Pe zuSRzMIJsFsyI`!AjjIroDa4c{&YA|?=pi|p8lw0N6FeqT&&(hx=8B`e0JmLd3Hu!S zr3uztq8CJws3`;&ogl~rowuOPSwdvs%@Q`9lqQ`_rJ2%9d=|G^_!@E7)YYuM%7(fa zyTD8J6&dS+fo0u+4Rn1LhovyEEai4|g#U3jLF|lU-%2Bi_~6C%vB$>Y zw24&CtF{me(k?CI&?p|iA KMe{eQ>Rlynd3QAc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_generic_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_generic_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e16a53420e790d8380ec0dd00b81cea0b9889288 GIT binary patch literal 1197 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 wlxnPDAGWxh71g-?L5h1w<@4D@4W>pa1{> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b4e6157e68aba3fcf7b886266393baa981dabc8e GIT binary patch literal 698 zcwPaz0!94*0RRC20000000Mdd00n~p0000000061|NsC0|NsAM2GYO$2nY3(xq_QS zp|+3U{%LFg00000000000001ZoV8TnPoqE(e&?^4^nCC~h3Z9f!Dzy*ttFO1fNJ{G ztS~Jbfo*n|R_}8E`|X0BcTw+2_kk=k^L;b(F@v*z{!z!W03yLxf>tg7kbvGJ90Czs z%EPFnYRN?f#=2xB!WGsisNzDy0-iS|8WilrBr$#$vWlcARe%*KFuNzbs%V|t*~3GB z13MZuq4lbvD}y5k2ikB+RY#&}y8H29aOw=cI!7mPbm|U{-NCmOdV@kTUb}5V+_3KD z$Uf0t?IwKvDA=k{u$%1}l4H1LYD)$7!LKvhJZ0-Ayp~)j)>JltSC-JiBnXr!HkjL* zEkS%?wAF(GE}&3q?K;kOyS1}QYhrV;a>i*eab7|TRh6JsgB%rQrL;|L`lJPuAo;Sb z2=qN?QVDj~D9qv3Psiab1#dcsTQ82iX*xfHEmH+=6yOHyjzkq2TCGc_F`7rvT0H_^ zLNJWUScAOp{=`q`rq+?4PKQYXqc8>!A}>yTGMjjDM-C=M5E%-j%r9VV;+>-zM+rezwr^)9PlQiqKUT^cu80mnwt4U^2 g6ziQar7TANWcc)L1gb{V&)@jW`ej+a0W@sAHY0ybLI3~& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_command.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4fe1bf20da2d5edcfec7773c357892f3c9f49c51 GIT binary patch literal 1020 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 FPY)Rrp9TN` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_mem_check_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..60c8efbf67a91289cf35d3be2c6142529d9a94ff GIT binary patch literal 1414 zcwPa91$p`a0RRC20000000l+>01iC>0000000061|NsC0|Ns9`s|8^6&x^00000000000001ZoUK-UZ<{z6|DR9s>_t_VWnpj9ozmMRLP(1WNkmAy z>h2T~a1u1Y$TsP6(|z}Qj7>_nwCim}iS*dd`-^|J+4=BTpJ4z@8C|m|?*oACN1qA2 z0-I6JUrn<}tSHMt?yk~|z$qyRiv(q;=F_Cgh}44TfjyJ_KE$~l5-xm_+Zz&pK8uPZ zBdoXSZs9rVcu}#gqP5hrU%teRVI-6ZG@|IYuV4RW;_vNyc=LPz{k#6VH?`^oVLYWp zzjjBqsam}0y+(- zzn`?HxA-0we}t21NAZS8rV(cm=V-o}=@Y{+J019|*+1mg02ElV6a%+F35rc5U{kYE zOP~(CnqlR(G_DKBQ3rpfai3l2Ls>1eG=}dpF}@m#*T+7_dAKWyAH|FwA2!uJVB*Dz zoXIUs6PVJn!qZIbiVK=wkQmP}Kfb8~bn+F71JuqAIXG@vbBk1@QI`HgS?NAsqLqw_1$b5W0o?MRM1HA6m8yA*$8o1-3 zTHy(DM^}m-Oy=X^Y+;`{_PG<_*1spMHht%26;+u~POL$2nR?g>v(_9Re*^J%V# z(a6_?+YtVq2pU2g8qGD!odyk|S-v&Wgmop z2p8lI18cajC%$hrO~u93b3$jRq6er4N+NZ!hFjl& zRz<>XH88{JU^uE#O}-CuaGKF&lm&##lk(>`qxE-Oh$1vE5x|!SiL_3p7Bm~=YZRocN>(8e z!Wbh_egu>&7k9Q$AuvK?gRl2CTuaj%IMx+;0(IlzBFfe%nwZmyrK_E(W)Jl6$)^t1 zRi+|e4>HSrR;H=CiBF@IkfK#l;Ia!DUBiZE32(^*Vy-sEYo_GYMv`>3B8*_Gu`P99 z2xEA;?0cc%y@_8}O<{IxsE%-fx0rEwV)S=Q9^>rF8S6BG)i=i>pG}c|$@eeDp!)L& z5&We8TcGqPg?MN*`_l$NRRG1uoqR6coU8U#uY;Zx^<{tDdeb1MBuu3E-0I+qqvYKm zM0w|#Ix6u+Mv|Y`U*UWI$NCceVl29-O9CS22uJF1qh4hDmya5aZxdFKcqB`CQ0rDh U?^nhP&Ui)&JgSEAA1!1*7Kx9d#Q*>R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_read_custom_files_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_read_custom_files_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1932a91e277aba41d6ec79373e08a03a8644ff48 GIT binary patch literal 891 zcwS>*WME_f1Ey9629}c$HUr~-C|GimDO~f52&ieb**cwA;Xg5Z^DTzDgu`WJ8Y5{y^F|w`Le*{ zKzLe}ZqV!J?TdehZHNjOp8gE59$O*lYM; zdZVai%lkWTW*n+L;Ual!ecA7oB2ik0cblJIhD@;;J&^uitK30!8! z?i>x=a{KL}O{&>WD__0XGvoZC=ZmE;n>jplY;F7K)^27db+j$}LeX0#rdi=J(nrJR z9^_iL`O%+Gs~Vm>Vp})a#$T^%cJhtF%@gM`-dXg*^-SA}x3Pyiovpe!KQk2Ze$JdX zPgwKkq_dkI9XnPvO;r5yQ=xNu#U2S0pSVtoJ3DEQcvQ^O?$b|A-Ux5ql%u+x}UPcSV!>z=UcTH|*Q^`BBTySYsNx7IPJ7YJC0%kSN% z7SpfhZ4$h6$tQNzY^i8DExF1tuca@91Y&nPrDnSZ#daTh;aKp7MP!yAXT)Z=SV+$-6{Fv1+SX;!y}3xvLENG{?4*!g^r1g)t6McbB8WIx#?1+ zlO0!nO7xypl!nXv6N^17y%m2Rth*oN&s1M8d9Z$^O=?DnJEzd2zl`096&en=X_Rx`OV4NJhbFb{+@>AAY027! zQ!I~#-jICFd-mHi)nn$V*Xw@W-m^L9`Gn9j(;I3xKhED%qrsm(wS6%^_vyrcOn+u; GgaH7F?U$7R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_read_custom_files_command.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_read_custom_files_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6f72d4f6ab515c45b5f2feaea8f0dc456b49eb9f GIT binary patch literal 1181 zcwPaW1Y-LD0RRC20000000Xc900>6_0000000061|NsC0|Ns9qQi32z?A14&DN`_4 zgjk!YnQ3tV00000000000001ZoUK)VYuiW={a>GAaLQr3iR7kmaLTpdQ|ya5J2A3y zB~S?K)yP^-+BLf?yC&qj->l>xahh{EsIY~!JM;F<%$rfr{q(ag&jXlhwa}~#0U(;N ze-JJp(#n{NX~Ar!bO~-X69vMbC{Z)3G`USwS{3NL;9VTe+ zvWZk#GMW1M`3l~V>zK(!#TL#vdjFmlu9!g zjZiYIPsNpJUOxDjv`gEOT5hyh$Y^U7ihUq;Ez-F*W6+Xwj4kK_Jr@^A%fVRKbkz!gepP;5@V z<+2duL_nHJy8)HKWDrL;@ zHt?HJ9WI-z6$0O)Qlnf_`ZX;0P=&yvf6)Q*zk|bJjYWi9PP9%Jr$J!^L``)VS|9?V)-$9bDooKrtpNENS2ly*A;esEku z^BS*Tx*Tg_$AZ+KLL=n5g zbrCn<`#yBO%GS=w$rVUcjYtlW_|4p));U^qpN=L-$TY>f$8qip;imomtV0^=o=!GP zoG`9c`(&q_zZwlrUeEOR&QPWz^Zo@oF_e4&00003umAu6003*WME_f1Ey{U29|peHUr~-D9}uJRFGa+5pZ(Qz?dG&9F&R>=;^vKTUQLcha2l>Kyl?=}yxU7I}vS>{v3#Yf-Dq z4VRQqM_w+zM+J$W?3Sd?2w3{KOF!u3H7k)+&x&WuzJH&~E2EI(^JA5gHZ#xdT%H=m zU1^T1?6;46VXh@Ad}q7)CEnHi?(a0y3}w5%Hm9tPX`Z}| z=cHjxYL&OjTZbdT*Z)jC+uo$DXu8@$uw_o=j|c%`V_QgXeKU%Yp~R zCVi8n7k^dqT6Xv-lU|x3ivj;56|VKi9Akvfu7C71$FSseyHr$>x|ztObm5&Bbe5j7 zTPosaWPaGeWLIB))n-APFH-L%{kydmU#Q8g`;_)LH8j@fP>thK-JQaVDstIs?H~CV z2c78*;@h>rUK%bE$Ub-gx(HZQ``-a?b4S|L?Iqs8rDAo3g}GLz}O8 z*>yj8eXHiZ?B5sOP5Zs)|L6PP=ku0-<9T^ta)9|>*ZR3(?DsyFW-os%uYIBInEb(% z@^Dxp27-0Kr2G+@k{v-LC@C9H+FD@W=J0ISrX4HJ_az;!iWJ&`nv_+24{{wc5UGBY zo9;jFULp_c#ayL6rMP7a%nKjwEh`n-7WV7jk^V1>*GO@wsHiY}V3X)!c+jw8@*38E z0{=_rEjy}oR_v$H=BX#RC#FfbcZ9z^Y4Kb4c=}(H`pIXnE3!)TG4I|`x!>~oqF1N7 z)$G1+3%X~sqa;>6SC+GIOIvS_|D+73819c(y5`>hW3thF+s#Eq(<~fcO3!Lt``3H* UyuHr;1q-HCUTM$+u*DPJk@E8*^VJA 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_script_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_script_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..03e085130e2053bb911d7cc659402f7af7ec205a GIT binary patch literal 1903 zcwPZ-2axyx0RRC20000000%Ds01^)X0000000061|NsC0|NsAINdX;u?+3`NTPJk+ zMJMcO3?ZWc00000000000001ZoUK@GZ{s!+{_bBf=oW?7P3&X~w0F+k0*b6`g!LOF zIeP&P5NL_Ec`K1FMLC-u?tc3XNlCVBrMLnO7K@0(dFF+~XNDOK{{CnE^m+hGDYla2 zV*qext#mNM#voW>V{<$K2c63Q9`2HOr&K-wHACIxS^JhA<5l{7Aj06 z+p9;y(~QdD?&<*FqsEl*ZArFT$Nlj~T$m7L0T9Ce{^924m(k77qnp3ruj8Aa$3OjK zRG+9UnBZe$j2@W%xEY?M^{Id9P7Ez-Ojjh@@BG^JEB4mVwz&fTRVL z2bvC1FQoLSJ5=8k2njo-_T$m$<>h6VL89JT)l$Wz|0HWM^tj|{iz>4YhNGyXzqm}JS+lmVCe*r@2;j!V1bsaV7Umrp$$~S zlC?NcNSbtUp;$r-6G|?$%UmBhQJ7$i=}#-P!Kl}J$2L5ro6aJMcfEHgW1PMv*7`ij z%9O%))fQ8ZENSZOyVjN|X8r-I(k01`YGE(QNKqhuUC(#T%2XsIYpVOW{wWjdP5~ku zKa4Z3$a8e$uGbq42Jp|8tQAWSP`s85GvR>UrglWZ&WKS*p$1%scoYY8OP@r6I$F(u zL1EBzaV3H)DY6Xfq%0WULV-mjNd^ZZ8Ch#I16^tC2!0C zrr@*~LO_2lnM7Fq30TTwt%dh2^1>(%7puVa;)x%4ZnOxVkugG1%7kLIOPXM!Ou6cM z+e`5;TshUg_vcRV+|s^hoS@GCqwOwcGiN@5=I0u8QgrZ%J%Kt|i#nuZGR_0Jcihjb zWsG=nfZvP2YnhrkpS{}Pr2ud8auvl7{?v=-&aADvm`DD6wOEDmWED7(znH%vp80cs zwwlHMJo17kXWH8K6vpnO=YB?07wea9t(Frf>U4PGgpc4b z62f6kvDT5jk!mUMGG9|!uiswZ-V9sO{UZvTDlcJt`?lzV6%B{Kr+(9Q3$COC&%hY=tbkb$--#sfv zpKwR?x~DUeNYU@Yy6VPwf2Z3X@||us18~w5NSzoZK$iT8>wkojAWvO08YBLE- zN+~f*Iz8Bg3WGAj{||zt8qF1a!?vX~BxoJ#Bj;g4lO2&TxPrA18SD#eX!OjP0L>6c zNwHfCB5Q&q74_-XnrQS2yz;v7fT34Q>s1wNzs5g>Khr7{f+f}|+)#ULQ#Y{8eg&ry zSb!=HpI0W)lyw0?T$`f`tL=oB?{PAy*mF{|XQw-6tKHdbY~>Qkw+$ZZzCbgw$J+*q z;fLu^I*XfnR`Y>Y%-MD4by%FTjQ)^$DV{djMsX^I8405#K8 z*DdmAUOe?@el!GsQ+H__w4R)hb0{~;Orb;C!2)jSFSVT}JENlB0sGREC+L1TG&`J`=9C_({GUWRGQZh0qnPU zNoev_kLlHDQZxfk1?1`ti&EK12=7=25`VS+L2@XdG&NsMXfIUin*O!KW2R|MKvvJV zXm7}gdux(>E%%0A@kOKb?2gXVVci>Pebbp$tSTU|+dH?M@Xnju+d7CAfi*Rtli-S0XGo}dnfqMfyPjlsM+qK3 zz6?rH7L%$5>biR|JwrDV#+$Z~V%;h8fVXskO-(A@Kr~?=QEjP&TBupPI_u_-B!lDg p5-y&WFgSl|!sRm)1{d#6uy0Nnm=xai{)1NEQJ%6*?|(cQ%$N9}s9692 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_sleep_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_sleep_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..01af4305910acf31c57e81dabde80058bed0c9ab GIT binary patch literal 1108 zcwPZi1grZ10RRC20000000Sog00&M00000000061|NsC0|NsAHDWF>1$)q|O2z~2A zTh<8b6rqOz00000000000001ZoUK%CZ`(Ey{_bCK$cn*kYROK30aFqKp5`t_^J3V_ zil7(UTY=wQNrmtmYP5okW!R-D8igJOujc8(pC^!4X@-s#3b9U2RS8{0 z`Q6={4ZLE=h0yCptUV|_JmigE1+@&!(XNjMgP-ETaXcLGG8r5vgP#NRceG9#orG+- zk?qGYI_6V8PEGyM%5_Q5&3m5Y2;NEB3X5-Gs`JRdT{usTcE*xyst91L6a<(9iw^Au zi-_44h);|W-4PfIB~hKk@pik7@`?qCj9tg)+2uw26k1ZHfF*+hNl4`)UmHJJDIGYo z3Kapb3+c$pWkXoN`)PK5eUriX>K5LQ=kxJZc6$O_Nu_BBaDy6J7AhHA)k-pmiLB7{ z5zGoMC-d~2QR82x7t`$47yEXaT}>7XczZpEG0evEY?|I&jOX`Evzz(sdNGOGRz0s+ znhiq!D5Ewcb9AAZ%J`zSw}K$nox6H51HO(sKS-Ucra(B@=brMQvnL|AvZixBS7?36 zW5lVWLdj)Rjv$VCsDC%ovRu9m_O0x6md2=kHcgVLmL!Fm3Fo>j6B8xL26J}%X;}M- z>Gg<3(vE%vVb`wL`OJ}W1zrCYIr#~@JvfD7FX;Ta(~eEL{%CMjthwaW6?(Vmed3!D;&aEP$5+NVem(k|H(~tdm)cp?KE+A219t>#y;tjBuF^bi#BODWVtV! z>uc(QZ*?#jDp5PG#YceSzS&a5S~jYHQn2^9mzvr^!M5bT$usf3&DVyRT`l)$f3y>S^v`(jp>{-vPZ>rnvMuGI z7ahR+z-ijm@QH;Ka_)r~bYkp<_rUpHlc(rjU zz;y5UcAG_EZG&Z--4$`(DD}*2+e%Y;LR^eyEt{((niE$-4602o z2o%bCHMW*p?V8<{-4OEMZ+7LEIB_WlHMWp6^E~^^t2^yazv>f3028AZhLt@4NXG16 zgfmEtw)SiynVV}R%q1=XW>fJ z59jd(S;?H}<)aac!a(JJcXg+vA^12PqebyI8l``KwnA-Fbf7Pnib|T zv89N6#@Ky#pbZqxEqk5LdcBT$N$H5SS#++m@u;(REnF#q5(YUsCZvtMHu_|RuweB( zC<40Ag>^>EDu+4T53}pryA1j_4{+a~PWw06!zHYRD|F=mSE!(7aRp(^r4$4rBEyt> z1U-lGV47SLs{iM3G|V2n*sEc7Ge}dox}8EFCjDtPOzuYg>4s@?H=W$3gSZaW^Rk&< zA@E%qm3D%o4Z)P!i&nl7n4`Q?RKKkK+MVb`%vFx_W1aJ@h)&2P6#l?UV8vyXBQ!P+ zyPj)AQK#L8uUs-~58x5d>zNUB=Co44fIBjQPf`88=UeFr zu-SsAXEM>3!u92C*X<^})Ri!+Nl>W?D(Ydwd&GJ!fgUL5$})5->#7hmI`0feJHPX93>0U>?{3*k4qs>&I4IHh27atwz& zt}wV~vOB6Zqq{J|;rz3Wth2qa9nY4z@nSr9nLRFX%(&6bBeQz?YW?_5eWqV@f+`pD z=s%{foss|m000Be000000IL812(JJD000000YLx&00960|No;=wX)kI50Cu6wPAS+ zxX>Eq-TD9k0000000000004NLb&W9#!Y~kp&%vdGzu|^b6vQSiLW$y}pqnVT#~4bW zHjulPj{Y_Wf0wnL{ouHFyyHCp_yA010B}UyYqkmp;!$Tp6seGDmZMy&tWZK?93kFp zAm{7fb9}L_8xOh4dlz8(>gU~Oc8IMD+~^AL-dA|49Xnl}HPM{-p;T)P`>-7}ad36H kL*r}W1a&BB8R37-^Uzt-a9@38%?)8f!(MEnFE(yD5^6wSssI20 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_start_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_start_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..63593cee3a342829566862676443288478d72c5c GIT binary patch literal 1472 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..eb6067a993da5ce13318925af5be17313bc803f1 GIT binary patch literal 1307 zcwPY;1?2hw0RRC20000000i3r01k%$0000000061|NsC0|Ns9AY4lS$)fBoDeiGdL zPk?otGcb4n00000000000001ZoUK>ibJ{o%e&?^)`uYF~n54P6ncOvx1Qr`c?ZJ838++lHcOatc#@EG zZif#K&3kx@Is=kM8Hu!(b9#ykJ)&|51j(P@ot^#BKD%hY`wPzh>|9)Qem^&=pQw2N03x~1HOQv>p8cm)cx2W^n)+j*6V(7=lVWek38tYxa$RdXENw|Ina3G zjYqy~=ZoY}Pjq3LU_a~SG z9-73x8h0>qxAgL47pehq4b~>3Xy- zjr2zqLtAwm!AMYlmCa%n+F$cFVTU|<8f_E8* z@vu>J{D_@MR!=w#Gi;p4W>ocIdw$ODmWN#CNlWvcrIANv7Av`9Nl^;}9@X>gnb#&@ zL+K4LOW2sklb{LK2}~r#zP2EU04g^MB-35nDhzx7zGAXolM2g=VohB(HtyE|c8+UZ z`Ba%F?9K}oWrF04DKl<0t1K{RFNM*@7?1-hyb5HKX#}cd|HVK%(a{DSMl3Ih=Yg&T zPt1+|i3mn!F|F^HU(pNyo;Bkk2V>-(QaUhfwl z?T4$Pp_hmH&UosKhC^g@(QkHJ8D4c%>hhEu>DNx*q5J0167g&`Q=kkJ)Ume5ok zF{)WEHL54>n%3!HHqGP*OyyhkWKhR93{(kY&uGNbdVvO7{AN#%O`w#Xp6U&a;_b2c z-E+=fWpX*4k??E%gsH9Ok6Jzt?U1IJP3cy*z6aDO`|fV?>4OsFKPTV)C-AycfAVqI z4-Pp{MSc+nO10-X;2!LKo&!~*n&r~};y?*=oC7=ZmvNwU?x!5cFVX$>VJ^N>zrKgo zI6N!Y#h&8|!A0F#3660|KpGf*Y39bm!Wd(14G>giB89VkgUr?T#N4^eANDA=rLQXI z&-rEmwQ?g$R>7MBV{c42bb+Oqsg%TEz=7&j8yu2iCE_G675;NzSSy8(8@o2H?K`I3 RDprbpmo;><_AhlInro$Me?9;J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_command.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d666edd17add72a8878d74bae389078adc80adf9 GIT binary patch literal 920 zcwPaR184jI0RRC20000000US600)Tx0000000061|NsC0|NsC0tX$+;dlr{UIO}g> zeSzFAMtLcch%e4m1=4DhPta=bqMTzh$O4Q6MO|*$B>Jl9b-lR$9@ILS=$*X$4TD4rG*d7HUcEkykDN5{}`Wt7hnDi7eDpSFZ!3?d+JBjMkv|$ z&TuQ5kBjIBLJ3aP=0S_q+CrE2oX92oChU%BJcW_uk$W1CCrTQnt*EOAU{IFeX$CYJ z)LSefQp*ru6eIh$1*Kta?WP~cyWKA071bkBdKKT~lX3iFy0%pbR52*fGEthy#YR`Y z76y!3`iOwu3t_Ali`rrVpGNu3?L3FU^bS4^(sVG*@2+4c>{`_paEr1Lv1_7Mn^F*m zbTpIp0n`#E!!)@e(%}7QJj(A}tk&;)hkg?)ur`ibXsnGqt&0tEp-{?-V)Q3i#}}XMJYJ6rWHH}4cvDP)+W&H!Q&SP zQu1!s!=?x6X0R37)~uw+C3RuVX`KB|A7m4GPE5~d<7%%QLQ*P;-JWlzNB?Y#AOtDk z9Z1}@!dIRs#n~?&BTGvG?!R7vnctCp363p~poXT=)>;y~`Fvdk1j#CNgLAlhjOKHL zTrAym3E3QkW13Po{w>vTr31cZI;1nvPD#;K{KTn>Iog6J&rOk=*3`IBM$q;?M4h%`Ox$SyzbLNjviw>Q%_##N zI+hR0(EU9f=JRxV|8X#$58Z71(fcerPsWFFzaE~W$vMn~SNX#RCyZ;=ZELdA_VMXm u1p&!flEb3^GC}_DCivbsq<@C6f|cSQ+%I*B`Gv^A3Ccn&gMR_@!diK&SiXM% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_handler.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_handler.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8faac28a0e2aec16c613757139bde9f027fcd3bb GIT binary patch literal 5969 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_submit_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..01dc2607068aef414c6638b3cd5503e42955be0b GIT binary patch literal 935 zcwPag16ce30RRC20000000UZJTRol!FxP6OSrGz2 zG-H1t97Cj)F~@Vk>{96h-0qSKgm)-WGpjVgW-6})IutyOqr}-m$ciXMW0Pu8a64u) z7pVPpZv#&WF=cX9v6aI_FJ92b&&)OiMA58Y_50rk{nx?EJ}txk>#+Yr4gD3h;Yx<} zVYuPVkC*;;WF>Q?%AMw`wS`Xh+>yM3U%1^ejXjvi%y-|Wwns`Dr7f=tA7Cg1)Gz}Y z4eAZ%KCvZ;*Nncsw4gMstu4bK*lxFeR!}~CrB}f?olS#l*R?GKP{trf%eXMU(?(Ca z<_3&f){21EIX71GMP)IE_mgydcAmoU^a9=w<9K+QUJPK%?OIh9aDx&W7P}^FQ3_5V zBGOFS9jGPDPU2`xsNqkO=_I{yVn>to^dw1ObQZ%9=EFFhMCa3C+%nD2 zUbavhglwNisVvXX)WHK^6UzWJVbUeN8r@0no69HjAp%nQv)#27`18X8|0eCsrA3|6yK#-v#|QQ=B71abUlUsr9SqH6<%dia z1@+%oB>q2E>8o_4G_F^u@7DTJHG6!~{$A&evi&xj#`Ea^(Ub&el+?TQ_o$t(ar0`J z*Swvp*}R7nr7IRq%FErL9h=wB-sD~cgNKpB%C7I5M-TFj?$F*IvF%hHc%Mk^5z3q| Jy)UhhAJ%)s&=UXv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_command.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..da03d9c0b40294187f9e806fefe8fa39decbc738 GIT binary patch literal 929 zcwPaa177?90RRC20000000UtF00`Cq0000000061|NsC0|Ns9*Z>j<#&^DwWY)?vZ zJ!L?3&PhZ700000000000001ZoUK)1Z`w!@{m!o#`T7CU#3rdOI+>)B>(It31Y|p{ zqEi)Z>;95a=f|RM9 zJUkpO;0+>1q?}h|t}*`Gx43aZR84>s_4=gWKXv-=oZ~;?_|)y6xc$Ej^a~Y|@zOQU z=z`Thj_u<<9^<*s?;i!5X9~JWPqUoBXQq}!&_f8y#MVz~&V61=E)=T@8^FtRFfa*% zN-7pKwUI5Nv}Lr_g90ufQ|jJzoaJ(9Cj|;(b1`==sU;cF0IPOf9{u5RF~7lz(dd^3P0QyH%m&;>1P5|tsexX&44 zkVlYGJp!M>co_PZ2=YDzqaeP~v3?BVt6>zu$4LktOuaA;{Ogey)GCY6HgkV{<%M4{}M({C%k1E=!`E0erRDOj)6PG)s>4fO8Lrm0Mp zTp}u`!T@*qTz7Y`+w1)7XmOc5dhdyORnSt&zZ0cyqZozz2IpXzl{MI7H@vzqR`}j) z6UAY0F&dm9YRBbQ)kxQv@>XcXMECJ(hZQITqDm=$ra`L9Kdnl z!y`87j8wUTO19BrKjBO%Sc$DESJrJ1r~Uq5wfWq5-%2lP(^DI9?zye3UNjoDH{~U& zB6)LPjZ(GU7m`m8{+?ekqWu7LH|*}6dOFaalm_+|9k3{b zR;#u`#u>nOj*T1#%B}j}Z=CR2kX9!Z1uOP5&&+t<(x~76te@ur42_-}mNo$(?6ZFm zt|2r!%dUr#*_k#exYL=C2!EnN!>l$$>+2+!=veSJ3P%oa0#CyjGwc4LPE)25e{r>f zwWB_q&^$_l=uh8h5|L?QhMS+veS`1@$AEOlZ|COyNqD zn_K@qp#+C|xiMnCuu$bSr{oU)5_ZiDUO`uJ->q4JhgxOYSdphbKp-U)vDY?ZRU-~xZi6WL>D%dK=FbEEfX^Hop1Du7b1g9 z&kB!#-V>2oBc{2<1U_}+$ER@&!QdG_1yK|X;^!8ugfkRHR7 z-GH7!zY~RzL<&B1d)@fi`TEd}2c6Lf9-blyU>HPkHyrnZs8lo@N5iL4$1gAH)Uv5w zA@F?=m9~OoR$L|3&SmAQfLV$<-RY;*UcKSH5i^zG>_XX07Ty~|gu=@pQ5BbYf>7Dw zj|50G`?9NeUZY-zFI=)LJ67TWolcD)yHT!y0k?Dt88>3-K!=~(gwmTND`LjChgL&D zc4teY|3+@9hUjKzR(EQeu*|1YaJcBU_u`ds(-qG-y;^HIfG*~;Submg9tJC6Y|bQk zrl`7dPEA^5@W@-g;52C63#VJXbqJ+aSgjRB@=~nl*6W}I+=IgP1+Z0+l(_z*KuFG# zbKBhy;HZf8_UfmSCs0W8UocarDQ5?yv08(do$X2(cSiBVEtS@(1EZXCsznQl=6Q`nYhP4lM?TzQE@-5cM4E#JU7c>gB`l*iEJkrINtjaRSpK(E z`bCoW$}*&DP=d|8aC}?-%m_A>ZlW4O$G9` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_handler.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_handler.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ed524aab4d33b00fe4bd8ce4a88c7fdfdba8f740 GIT binary patch literal 14874 zcwU{mQ*bVA_wM_|wrx8zd}7aV#n3)vmS1!Bu_O z*ROkwy1MSs01yBO;6FvL1OTj`{jX~P$oGG%n$b}ekt_uE`ocuNh>7oNdAx@Y@c$|I z>`R|_x4*54H`iZu`dc-0eFqZjTUvdd_*#;mHF^?_f45{C`J2JlWT+L>iVeN8KCZW? zcZ2}okM{U&n?1l9vV?wp=5(BCK+wSY!j+QG(GfP!+(H&TzBS7zqTC=-c1>dt{mlLH zJs16(1&97iGto$P&k@YrAn8p0y5u_E2)gpX%_rtLA|j)^?#{PBm?YDYMw6Fc z-(A8d)DjnBQkH^ykPBjJ+U|gXIy3+v?7gk6_x-*;I=cQQusSNxx}s;@^TMO@8Di#< zOsTbm{f!+#gf~O9vdi8r@G}fa!`VrzUfd0(z`F4}IPmS?TbZyx z+qTzvx*twin_?q2Kw9kYaWs(P_K?aT1AHL@|D+Jf+x`W99*Y(v-%zP{rnuNR#;=I> zUSKDejSKK%StIMR>HhO+WPafA)>jJv?6c0xbJ3KYR{+P;EhFMSw}RbouGivO2|lEZ}Vh;(wIVulzf5@tk=@ z@t~JquFGhPus8@Le#B?PV;qjZ{il*XXOuRN$9zOd;*`YW9<#iqHn+zLtT3 z1da(NAn;rGiDfcU0UPX|l31~b5jl1hbFGt(M%-m(r;f2YpQ#~;OV-^efqdWX?Oen< z!exz7`X%T2vbDUe)2yBmoe3a$o?PbB5s$AIJY37y?k6xH{k-rH1-GcWh^8w%})mn`yiWqZ<|B4BCcF{ zH$R#rz1c_Q=SZwMdr(?#C{ zLhA;2)5&-PR|LAvjr23P0ec4Nn&LC<~^WIqzBy^Yaw(Q zH=2y?DT&^O6r}jM)!;c3%uR0afq7brIRBY4{}eON-w47JL+F~g>(SS+Z>yAf*+0Mt z{;?WgdyK#+y$yI*T-7gip0H8jnLHB z*im+<2EcU?Y?x2HvLMJvCI(FdPrjR!I$Oi!8Kf}!0hsmRUBOOh10oJt%oQYvGV?gbPOVpGz>KXZ zAmvxx@u^Q>96}Gnb}gxoo7-CFIgFqm;O1;p)J_&1K8np!@W)POQBK^aA?%mo$O~3~ zxdm-Yw?V~yjN{uff@O6BN+ZBh!4Gz$M)eFxJg=j6@}>3GEBe-N5KBZ8@N!zB|8gT4 z$R$)wsCWO1I{ve-UQpHEuUe45KtZ>Gv9+~w4mS{KxY{S8wS!OMJlEu;B;fnHcU zak>QBu8gyC{d6`FBdrrrJA}UMI1a6*b3m*(OEuWR2ZT5%J0lAG$D%)FW|u4E!jFSu+yful z^N2%~OQSk2Q|(Z&HP^6JJ(bKbHwi(u2Gj&j@5CWqD-UKSPWZdJdettUm0qBQ3-G;8 zD^doe842>)-@y`6WtDlqs$Hv8wE;?FMgu zx;h-dXWVLenNAZu3xbPM!@G|YV|i1W(1C1fHQmMPtnITm|_YfHTbAD zE<_p>5zJhfVpB8y#Y?ZCXL5h7dQ&ILo~97O1a~LYlNO*+omB~ewS?ve4{Iupve2ln z71@t@%38Fpyyss?aauMN2O%33IqrukAH#uYutdT0{@Wmb4Tk{%cLs-0#>{}v)ZQ^! za?}YNP#4;KYX?jz3Dsc)MCYpYq^JxE%No>=WY!Uf|#zS^I8rOJh{)S;vd@<8XPL{)FJY0tJMW3|mzF z0Sl=F3dMk@MTLc|ygZ~M%Qevnkr`mLq0IzG-^~SZhFeQr9}{IKAb1&jpV8-yZB$k> zyLCzm;AhdIm+PV_g*@e(k%M4QSDiQN;2GvrkRK!HGsOd?c%xMmo7CFsT)ye0y@bjp zzv~bx+B^2h^{Oc`*~4U_%49gRF|%VM6wcJcnR)Ljicpt# zv$^+pBQ_s@3;n9w9qRsz+5k#S=Ek?70%}Xaw=+ zmaa%k<8_hAMBQu^4fKxhQZQf>v>Vaos{74N$5|u^5$P?{hXh z@k0{Y=;sUf04!-+c|#M0-Nkx&dW&qv1r{klHG<`?;>pK z0-51+0G3+}R;#2!5VV#FBCX|`cDF4!Bf8D)d@e^qxxs?8vUc@uo}x*(-E4LVJ%Jlz zh-44v+1<8WEM6_oAzJ*q&_Z;D7E9J-#B%uaWM>)rBOc@YNa=&DmggrWk^zDxKl4tc)b zrm=%M;=Lc*5c(Aqulnk|yr`aJm8kKDYTTMv z*rIe(G-Te^z)6@tyvC9;aJNDflPJn7&L?{_93b_tDV7bAeq}Lxnh*D=>lth}+Ev^o z);LzP*h|tlY$lFYTIbU`)>g=KnyG%wt(lj3nxunW1>ZrC?F+W0IiC6Bx9aNlGD@f* z!?p}$J-W57Em(6L-UJBAm7y|M2B*r7C|bG`IGNcGF@};?wriO1_6APsQ?@xXz!rHm z-OdVc1}oVUjLYOyX8!^HOp42oVN_(vD(vU19%cAlh;$|ji}*-j)-%p!FVyhEv~GN! zsiFTdl9<^ee=>EzBrt_VJ4`?IrWKwwt>=PLuD^6u`Bt(P%Y%*mFsp2i+W4Ecerrx#-VG+=q->JaJ175e_rWCg!l52R8`UTu;wP$OHLy;!M6DL`}l@{Kr z@vA3l0|Uc)Bb>i632sHg;zy761te1PR)a&V&3`kpc5*Z^AXZ*NRJs0`WGPL1C#CHq z1Av5+zXIMMV{2~W)l1~^-%MrfOEVuT6L2UMu0?4~Rm`Lw&k+1X1_DMsHWHgrPR91s z9jVO|)T04kT}Ji6@QQ!)v8JZ111){=s1fMT`Xct-?n3rX=P)jgwG}I&0$OP)H0Y%l z^~4N!$cRZvgeBnW^HX|P&cPJ}CT)<|8VNejIf5HqS8^Wyj&&Idg`k#1A4my`>QkSO zT09S7xR{B3`M;7*+D&LP>UqxTN6ltnt{q5g1P>#x0fQ;HqP`Cm zef?&jlP4P@1y&yl%ioHttiRpA-KaQgPmr|* zN=*o+BI$2OlTV`V(V#Fl6t!+um+3e9apVb&gLKcfma8KB+kh0DZe@L@ULekd6TV2M z_+f3m@?wB-MY>J~UO%`~GS*QO5$Iusew9x0`cj-i9hS=0w= z2hSo(`G8PuM4ZK7v$@!c$$K;_xcB)=xTeNx-7ZPut-7mu5FwOFrpqQNOV}=sMLtZk zKU2p?lkM{h-PCsaikWJGX}`x52!bV+M40JRutMs>1v3X)wJ@yptG$P=-L}F1QXB~E zLa!>*->Qj_IA6B5$=q$G1aL?m(#ugMOC?i!|H!Ly9@iml4|Otel(O zrcgqa;*UkA*LhY(&mmP2K9Q8O-KR9)Rh-%~r3xoY-i7 zS#K`b#T$zd$%N`PmI*2;p*W>qx;l^(f8RSPhCu!VFGY~Up| z9JiOg9ehiskk(>0_Hpvk{^vLKLma@e5j(eNGE0ou=16? zc!hklDpJ_{1yHpHb~w06N~$aYd!!Y}s1v(!(nFZX##`3ecHXjcCn9fFQ^ur+@>brL z6HxqMW;ad_nT&=%41c|`!*mz{Y)k7FFiHgtsLIpI%(EpbzHHET^aGnNuFV^TF^vK1 z4r(+mOQ+b=xjBYRE*GK!9^uqpgA8fOrZC4n_!?NnEH=Mc21Dm z&={R(Q!2jx965!kJ$}y^R+Fn837z6nHO=sDr3@F9imWL?ehmkQs-^K>b(E%`$7~S` zgI-fo;#DE=_1VkJKc7oMEk}pqYHF$$kpy`2ZeSkDV?ddc2>;?P$_@7B;QqsGcKPhX zfW5g@j5q>4B`E=c__z@MhQ3WXJHLKH-?*&W-w;K(a&#PrRVma+eohUz)+CpBb5LZg z_=!ShiiqulLfKD1Wtt)(XKztTaGFz57U9C~LEH zjVtM9S1|)+kUSnu`tJS^B;qyz+*;K(r;q~k!ji^BrHZ!2(12=@}LQ&tG){rwTFP1CB40} zl~r)mJffN?I-KIszFa@~O5RU~l$9zL<4D%dbn}O6Qn*9oIYYydmW++86Xp?sT0v2+ zSfhz}J6&8vRk5fls0V>ySQMRB9+lb6PEa?e7lY8ZBRbGQfr3A)8L|uyOD~<46rYs= zZqK{#OQt?im{vCB2sWtNF!bE(5sB~5|6<5q;TugI+#=d!rn&X9_{N1j)ZhitlQ-9q zKLypinu|Hw0Sz${FZ&qpb1ZxcI|)7wQPP~+V~SB#1$|A0C~DzuG2aY#~E zTlK*MFL|x1cv}@CSqqgv|KgD>wH3?lsmnV9Cy$eFQCp=ZD=6X%UFLf;7Pm5C8l$u-{ZOuz+?X71)I>Q|ox zK3dPa1bD8e-0fr76JhwknX4Kn)vFvHZ z;_u8<_d<3dc1Qg5Yjsvw3+|b(x3Q{*>5(0-z0FkrY68lfDLkr+_p`ELdG~N2Hx8Ll zJ*Wh<7eaB^zqE`9@BvW|LyGnp~bWe+|osMryT{ z1rlCTyE3WaxQN0Rs+>x%P1fyAg362T8EfJgl>v8`=xx>hDv!V6u4~}MP0nU!f^NDQ z$?8o#K}f6|FJgZ&xRB(J#_7EqIM^8Vbl3uP?u8j-J<;Ol{_op=RSdI`E+LMAGMisVP6tmV zs3M@0yZLb{As6YvqU2(z+C`0EB=sHyqXy%tm{b1_WW4P|f{;ZMc-yDp>w9R&)ObhZa5EvLSzAW3r3VvvXI;_NsO z*4ui7p`S3<`KybM4WG~tv?>O*rtm-m3imYDVw7l$p+Z9zowCZbL>)Rq)i5(DSk2QC z)95EBvHS|w3xX8i;FN;6b*&jKgwjBg`}+jP`|CPHm7&bbil6PBQw(YBX+ADo?lnw{ zZTwGiIw4c9^s2@&rz@YZDkdK1UL$)oTxfBnxIxk%Z5>S`oh*^TUHP-9(_O0jCWXnS zJS63xijp|{us~(>HLxkA?n=1}RM|NWp{y}|gS)yJjLMvTg20Axg1hti88wL*%?t#V zdTEw?c;Mr516@`of>`;DmGXx0G4tNO^t`dm6`35iQPG4(m?w4_(#a9;kb70Bsn{)9 z+~O`#@IIPe#sh}+L`P)A5jM#(%oZDal%vRk(n2E`Yl?K^N^ljY{HUh=lZjOcw)Pv_Fnm`_XzcphmLBX$l)Zs~7HWwN$Ou-h8f1J34uC91Ud5~ncJra2>eyL|WZv63c*>|6RLC*&`Q)8O%WX^G<*hewFb)k%s}`uUAScEt#6{5y zF^?t_;19_TtK#a`FoTkX^v@^5PqV0_{JxdvR znjF0v8&I$nt*sk7szXqhX@x@Cl_`&wUSxeD`yl7l&ySfw$b1_~bVCn+5AFNPn#=MU z>dE7!B1^3&3apn#1o}(!;P?!2T`K0WyuoB#XsdT)ejXZ)^pzLvv3=%)mWCh4+elBb zbjt}iHgp?1sbgQBsl*_^R%g#R4=3CHHr6)oV`g1TLj^G{KDZ5s(2b5@Nn@TNzP|%+ zQ$46m@G^k9lRPJ6@~}O5+74F80F_T5DEiIo5*KanCg49gPqap%ch{e;O0GA7$_|(+ zA+ZW9j6$<<9kP5{ElMSRhEj&uB%(!w2Rh$b=c&oj$4Jc9yH*FLJTJ4^)ZOwUv-h;2 z>mFVWtO_aH)9rIEL#tZ8yDFMt_rrEO(%HApXSsjPIptTkT0D;@PSS=q%}eC+p|??= zqn8%!-!83Da7^BIYOs838|ga*wt+p)L`VvD!QCJHEnEV(q`mveCixajGpQ^h!t^-L z$oro|WwzumC(k%&`NLOM8&k=Vvv_bJ8tZ0bbS>k1p;fW$FmiSCuPm~a>`Mu#crs&^*g-?(0?D%J{6Vtw0`?1R~utf=mq50e$;i{{sS=DB%Z4N z48ewAV}p&So2&nFfeb)Msk5bif+%%OhL3T&T;IRhU{vof1@NNpwGey+o7}hSOVWw4 zJ9(omI~*OHi5Z^jCPX8LngVMpFB5i${9NX%=Rx8wB|+n~nTUd$lhY&U>9xMr!_Udl z)%m#B)=@keRnxHQI+TazgU?^9(N}4_e?}TP3_HXYf+3T4i=g;G?6m{*-puGh-=>a; zCKsSX;+Qc2x5=$EFNP-uThv|tb7Co-{hxDMZfcu#Y7G;qXb!Uh^CrTgl@XQWi$OmPb+mY8`;~+zPjC0+ABZLgKR~Fj zqFBZ|#KsI&1GKv6bzyEX&oIQ=W`+nW{UWW0eN2iH931w}E?kyhM(8ojHm|7n`MT|_ zteaoSFfK_5XHI4dZSp9D`#h}*e6l*P4b2jqPdk1)U9mLJ-)~aaI0`SLCt^v(o$mf3 zHG=s22Fu6pA|7L61n!`ise;l^({|4CGODeIVdwF6L~y7Q5(|@yAU6smyJjbpk*=3P9=pS(Mh`PAmPDNAG9|%q6~}NtB}W^V z$xv||Cvz!jkC7rZ6@e|#Fmwohd5g^oh zs4nJVP@+kI;lDL?oX7}*r%ZVtD~W`_s-&+ph(<6d3h~ni3{9i`62-H6Td#K%2E9F< zRqG*EyAqIp9}K(Rdl9iR@ju#Rkn>!8d?XvydA+Gmf>1%EPnE_!?5W>VqP)uJRJ3Wu zZ1}_UYXGto`1bZKt_W5@IOO2Kp%h2Qyye@(?z`eW3eFim_oQRF=O2hrR^s z64Az`XpSw~+vfbv%Uqa=5E< zuYIUgj#P{OAMK>E)B&-HCwgT3KQ!ey&>v~xoVMa?qAT8-(-NA#IVa&9XFJ{J$=Vp_69!WA?i+=WD-w<(EU>-8bd@7gr_HWMOmWF%?fO#K#CQ zmRjk!;@NC4Pzeh?=uNm%-t${m>Y3yuIWjdA{1ftehp9Kgi6aZkg_h=oUWG~#mel_& zMtilF<9HMwxiJoOf)A|#X^AbG@Dn(mRiUwGU%O?bh=XLxWO| z+(VA6sNs~xrfn!a$q&4U&rC|s*2(S^UhX$#M|kNezm{9qOdNr|t-<}V4XqN}rJfM0 zQ6Kz|YqNmwAvW*Bn%C#LehoPhl`ThD^Q$|x>O&?k{twNI!)Dghu5Obt*0eTp1UrwZ zSQ7@j7~I*r)Ea|omfzp}U=MyW1Fc(;0{nb`fS1bYD;{<3D|$7lCIm)?_;a4#FjTII zQWZ&s$sj66lP+2c`?h*S3Vj$#5mh%wxZz4Nn`3Bt(c;r_9*#;IDRwk3T|cq^F+8mC4+B{S<%L>yLhJ>_;4y$f!t6hyCai#)jm#8kek`TdCio8JDy zC|MlJPE*3z)>=uHv{}m54sMsMtfX}|UrkRe0i{!26?tf+mdxB^-fsMNgRflxJBtN3OTx~DKcmUJ>!PJ-Rj5+84bdc z^c%K}cde!CTmG)M$CHPV(vaf!S7YVw*hFTp^mjb!_Hw)BMs;;4kH~N@(L*U+2&&eB zOHjL?zth$rz0BbLX@izy@lmqwWsvSnVfv+rY6Ao?MrS1bXpz9sq-SFfI5z>gloTOR z#|Rs?J}6~_Oz$?nW2+c+JxG%r%JGn4HZK8hw`EdonGcvx3{$d>L5>f;LJnrWKWNfQ zIZxGc>y5fON7=+7E}c%JuDmNTwqx;IR-~P3zLyMFEE!nCV@Wk|66>?mCH$?X!@EK+ zPta*N9ZM4CdyJdP6<}n$ZCTL|ZpUqb*ArZ1{CUS`z8>5XW=9o8zk?4rT~6(8zECzC zP3*QZ(A)>vitrH@d}~tp z5BVlUi%K@xuA9!(wj}IE3hNV+XsP{@n+z{v8gZq)<3Y$tiVo}$G$itKN8xO|OMWZm)woi_ZIla3sFtR)qy@Hx#&~XW4%Wj}K?e9g6u49n1S84DU+-_AuE|QGRucd_!dDDfE z84Th?9li_ArY~qYLSWjX-gQ>FkF*pO9x$^jm&Zy5`+3skc-)>^t1g-FP2&-&I?mF6fYKn(-MI~51SzBH{$Jak3)VT(Y?{3u`_4|#jGTG`>Rc}gB z(_|303j*7Dgv$G`QP#GfUeC#DxAA3@3dZQ(-yFLtZXy#-4&Iidktxd*P%7R@&R(rj zFi?=I)sDZ?otMfULwVSWIB_LYL4j?5PPTBBEY@DcU*%`&I%n=k!3V`u2FDRqjP2Zj z-IE26Y+RI6=jc5Zhzq)(#2$)F7C@xOW!=J5OFnasEW-WQz=f-0VA)Th?U5EixBO%X z9Zw*;GVzs9By(g3-BtLYW~Mb@bdvH!K1GJ>!h010323L9lre!m@@7an1nWTlp^1X) z;O~YJrw5Ly|Ckbw(REENAk9p<*mS0cSYPJhv3bK5GqvLgRLFWFTEuomD4(;DGqeYe??2Gj`QHN6=gT3-lfqj+G^g%FZH+wN zSJAlqM`L&qBM!H!lkTG^oT%D2&(OpNm7H2AOUhsCu!Z4@$ zC-aX-EVo?PDRldMe>AhUhKuUHi~>&J@NPgTurgRk8vWQexm(_^3*IY5sM!0{5dUT$ z@~89)42%uF*xf5r(}-by;+rmL(=vTt{BDnS81?d_vgk#`qH37TBFBI*mcuN%g(X4v z?UjC>E*exHwJ%`fS%_Nb(Won5Jv%k15V#a2k5kRxuXkHPbvFKM{3-Bljn)tU!eiT- zp-#ipeQxwkG$oQK`Ts5>|5FhFz*^mZH3FThI|$(2)`mky23-2%8ot ztZu2`VCqZwvq4JUQiC$ssNBpHI@wfzr`Aw^C&3f|Mo2)62*t`qOnH7z_i{+b6;_Oy z=5McQDp%Pf>@MCb>}aT9*^rw{DF02*O}quWfB?YBC5ifvk&S;9bm$)=+W$3z1NiTL z_2Xv5g9C+P=0|SVnPGPf^T%L_!T&UpqCEEtO$eP3)vqBU!i^~|^aQh@L{@o23Z~VZ zIk1!gH7FRqtI2uq3O*wP0&j36C_-XCpvy1VY+vZpC|a$qcdew}CjZ1#ukpwIk=OQn z?;1()2eI)5B#ALjz9hmuu@7a__1VRRwnwXC?X=Kgty&9{3=qJSv7il`#k*$c#fzsb z^<3F5GhR}M-G}nfOQcXU5Qj%lI%A03oOJ0=cZ65riGVYv48Aj9+eqNBU238P?cf2n zk0#99;w%m-6M%G2y!v(0j9aMt8hQ(*a1QX&&IlIYkuE@Z(Wxxmf%#FzW@?LqD9DmT z4FZ7+t_6frD<>dbSboOVLp}{K`Ez>Nh;c@D8e7clvu-%Q(BXK#^H`muCAb{RxQ^NfjnfxFF>25Jg}YCN$gj0&q15T4n^ew z%_swp;WJIv`jBc>wCTJkDOSHU7T1Wa)g+Ox9jXH3L57*nV9+NmTcPY|J=tI+PEnmI zhY!Sh;#U7-JCz3&!bN>i7u;`*EfHIQ!_Tp78*n z69==6w;Ju6dX({juvkC)@rYT=zrV)e=8p2+EnbL@c0^vnb=faAhx7Eg-61YP#k%g1 zbyvnG*ODfQ?jH{+9IJ+j<(mu+Pw$2ls}o+sXrLGG`)y;Inw&Tp19g^rLZHYts|zUs zy3g~K-Lu5k4FTwYLQz7Nf{2^h7!vD4a)xSOQZwu(G*BB6%0D#T5m+`T#`FJY3)HB}+Wr+s zHx00@REfKx$A+L7OC-P&7a8F|m9&K*Zy=dK=&TS-__acO5Y6(Vc^|h|JWKikUFShg z=Wzy}A^|m}Ul2Nic>DU=(s_4+z6@ar;Y=xG#4r$Vcavm`_1SS1$WPjO?BjL*waspI`ShjMVX1&h3!$)1P_$5Fjr(H_ z!vgmX8?=3*6ebG(Pl6>9y96w>b=O)k51Rq68SDwxAVU%m4lNv9P17_16V>$Lj}v(& z`+OtNrjscIYbEQqEVx9Uf#}Y_R+T?HNg&#eyV}GhSI?)?&}#@Zj1=l0@J3N5M^qO| zZqcjD22~6-bV`^}drk@6=;3-(8CryKvIK{i#A0l>N%8u3jt_sk^o7b20ZUXl`yU?_ z$T09+i}W_~vX4#*pYl3UX6G8M)jZ%ZbRP|$}hmd-2jq&LiB$W5q&@&TO#;WO!C zt)Rv?%F2UW{^o>}lpoP=1R4)`H}yXib=G*RJjV_z5Y%{;jJd`5uo~8FEo6LR_)tt} z90@GX&Js60!&v)NUU{VxnNC(@ilVRWZfvk6chy=(npE;S4i1GwV)J=1|L!LY_pYa} z(W>pj22%a$H5Ct<@xEVByg*VaPP2y|>2SE@7v4-${MpxgVo-X#1f39{m<^a)ppk`g zL0D^qQGFD*U^X=xn1&Sv^+V;(M)yZ|d=49L;9atki9){2fbjdBAqiP;haHW9Z?Q?Co+)(l?p{ z2D%hU89Zxuz=E|qd%>H7y&8K8?L{ST_va6_ELsgk1J1yvhLg9P)AqOdiocyos;*Nr zT(@iS7L2{ok$mpJ&)-KdE>+8uA=HbRxAb+9Ra00&3_P=L#s;%&k0k>Z!$1$}ug-a4 z;>W|A)f&u_X7#fakP*<7zoA*U{-e0rhYMoJ$!}6bhvf;KO{`%Q%Rk%&u$o6HDur?L z)(QTyerJrXPFHS%p$@G+J&@Y+RGV_*HNTgM>}4_7D1W*fSsJI3#+Y>!%;}~u+$@pH zt6gxtoR=^n{<5s1Y9xnboDQ4wX7EThW?8S(2TTD=DStJo1ahdVbt;6;EH_h!bR25~ zeUa}I5r_Po||~^5-m1n2tc#n_xEBgtwcQIQ`@=E zr|G<#YM!3U=d#&tzHZ(uA2x@HoT)Z+vw0(B-_}K_kRwT zk;EyfVP^EuIJ^|wr5t$O*}`b7;nsbdaME#V)~jEJ|m}VIgw6=u6g8#h*@}HGI=^iD2w}%IAuA~hvj)ls5U&5 zvL>nS!XGa*dUx2I&;6cnOigfc)oHAKFq)dy^|tQjz}}LE4K`DCHF!CGakoVB!#lV& zh8|G*cNf>Jfaft=wJm_^T!t;bkFwa|p6AL2t+ZxG1fCz1?JCoM#xmRg`af(605~N5 zFYVxe1pHsxHZc)j7QK!uG%RO#^2$$dHXhk5|C9FrZ!BvF2rS4*`6rn*Wc=@98SFo? zZ2T-lACe3rBr$s0P^W7rakwxserYc;etJV0LM!B8V`p+NacLv|<0IRUj_z5xJ~*_L zUEb}M2HKR_|I~FxnnclV4IJ9^2K04sR9uLrbQp5Pk%uClnL{l=`R_>)ZR~^+Xy$r0 zU;w@r_U9;R2ke@>@tAP5s46roGJre4V)9=*>@ELs)$|Vv_5Y#>`$r)DMWLElo)*K7 zw7ffq7nX9cG&y^RzVUyBqT-)~TJgU_0r?*k5PP43B0d=CQmm{|E|-DQs8LeFic!+S ztWHW8))nuS$;e{C9`3$VYCz5R)j9R zy}{DFR*b+>;8eh#oM9*mLDH;>q@)5$1V@i4j!J1)Y4vgK5LDFRoNLDUpiR>eQAoB& zw4sktFV#u2C;RJ_aRPBDY2ZoSgaY9JNNN?e|C;3d&$kO8;U7TM{{>X^k3jtkXcXMF ztVxM>u#SyWiM22usISnj|9=iBp&+H9Atj*We+LNUA3*AuV8coNp_+8m#s7DRIsms% HGz|X_@QhQ( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_test_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1d63272368894c5d24dfaedc9936285a9b5f72c4 GIT binary patch literal 2322 zcwPY#3GMa(0RRC20000000+W zB?xeUu_jm2q9m8yUCMTYe)pT%B}GyX+d1@z#2|O)u`~0V$Ew@@?VoyDEr6+#OU05N z01U?L4-RKAP*Ur&Y0S(*ssw0tAz}`nc*+$sQX$(|MtRJM3x4zmGurP#m<$504gJ4i zX%utSS)H!oN2DLIbeXdyaSVR?2^X%IaqK9-y}vs@|D}8WYxmvH@b-Q0?RoG0d&~Nn zD=lQ&v#R)7xR1A;cmKw1+#ks7Nr~mkz;Sp&Qr^Mu!aOj=Phpsb9q7j~SON`-Yp&Kj z>LA~Y^NP1)9t}tZD`T==xBKw$&ssC{}8U|nKtk=Wf)|<`Xdg4PLrhPvc4(6l2?*vWf{&X_)I?hlM z%kJfxL%4BQDvb!awx%SKj+|1!nL!7mP5&6o+TB*`jaZ}+U+jU%-KzBlcSOqfZxU}B z#(Biyhl0QYQG^?e{ZNs72owFJyFOp$F;m`Sh7l*gbXJd#m#tP9Gp$iiiRp`0tJ`kF zf6Dc3{Vl-FdnNGXeQ-o(#SEZq@Sn5ss`00ww=RvQ(yy67rlNISydKvU1k%v^4 zH<7b2L2eRV=+!3b_0~3gAM867^K^N6L{{jgUNoVQpDCGfWdzqv*`<-w&Hi_&v2Gfs z!Uz_Nzj$FZ66T?)J7ro|{>}D*FqxTXW<|m+OZdgk>XlGd`;*%`bROvAaSo7VOej}* zd%c~~d+Pep-lw795O~ae{WiWP?7` z!}KG=$~Z}VZ<3ixrrrJ`;`kaT2)7hTEc+Y+k#HOdXzlLrD$HU|LJv_) za+5jxo9h^!A}+%OCrQ1llYBFfd1^|K?@5d{RPU9KyIo*dIxr&_Vwo!@3`UA-1q02Q z3RhUgu;o$LWNA@7*uAa%8qL67Zc`Ks$e8W=uWAS4X;&sdoD>oyLbM1FX*c&PSXcVKweMO9(m$bkV!y|G&HYbA= zJfhihEtJVwT+DoYckJ6Dkv5GE(%1wju82ISJb7F{SgoU14bCO8iz6?%bd#-CYmWdI zOC;g=6mtZM?f23a4#JPlcqkThg+kyh&8lp|mYB}wYRqxXPe%p&DdO@kerF0!r>I^O z>yH<+468dyL=mn^BDuktoh~~~6Sm6tB~9ZJ}vfc=VQ+w4$9q0aO3%RHQwv~aO7RN_mBOnyTN2U z?%x&*_%R)Mfp=AO*?LUNI$;O&D}*81oM2}Wlx8jw_eZ*9B%XQ_V{yXkS%O)tw=S%N zp7KiIe(PWml_Rgc!LsxTbbenh)<^d`x;At2!P4|HMqWb4$!qFIh3QKe;pJwsunB+B zbg6#uyIlt>Uhmko?u&AYTVB;9=nSOY z&5FmA5f13pJru`v=4#aL1(N77Q?PYuLY5^uc})eye%L6C&rnKT)X*(j)O}foy*iyG zvxRi~a(*4Nfh<-jKb$*zF{59{0_HE ze^t;<8TrTVVE_OC00000000000C=2ZU|=}Pz`)4Iz`)?Cpx}~Nl4_*@1}YG?k%57Q zzJZ~>v4Mi2nU$frm9d$E3YUUHSZYymW_}(>u}V;CStf*IsApsjlxAQMsDNOG00o88 syyDFCywnth%)Al>BoJJZSX2^{T3iy6nVV|Og{eR8nz66Bna}l&&JW>P`U{kSaCrwA;70w{DzcN?a~x?Xzfb-d>reD$f9u z1_@P!WzyBy@Drs>g5*6kYRq#?S}j2vVp8@F@)Xfp>;Z-9P+uKf2UdPyA@u4?{Q^1<-|YH;8<1a^4MW zpz$OakHWrdiR!TAn%_`}ACg#b#bPQAm7HtHg_Z(Qn0Dm!VglT0H-2G7oRtX$r&c|w z)7Ui8vm28}oh&{>uZ#-gSi7=QE7MNLFPLH^W8Z0I*lacKF=1>9O-vG#d&d_fE2;c5 zR#)L@5_tW;pk*?8->~PSZA|FBl5K_31 zisljLne22to@Hb%=}DPoW1`Y#Wd_@TwA}a#71eCD4vp#G_)RlO{~vhEim`WmN>vYs zI<-2!7xlxa!hF^9gT5Dyf=j1W2VW{Y6n#sI8D1TY>ndTwEFZ0tIei`(jNN!n8cqby zO)0z}f|2WtHrH9%q&RExadx31HyQW3QUA&t4F=s|&oP8vc+b&XyU2|_N8`vJ4Z|1S z)4K>aNaEZpF~rDQNa{Ubm1uY|+#rf`uS66hZy~Dp+$4%#F`6leQ-U>&*=psbH2#Kd zq5{5lJO1MqdS`v_3-+CLex};JsgJ%^?Y5X4LE|SXfzeTg!+E&-nreOJPVHbz5m;65 zWLd(U(&YFtw<<Bi&i3&GKg6^e?2WMF~=)w3>mq`=0A%%#HK%P=n3@Jn1v3WBOq z6tKT4W|e`Jj7^o1#R}J|#JMz|t3|W*uL!L@L56DG=s+&AJ=Px{~400+r(dY!%gY~J!%YQyXKoGJ?R8h*1yANm2B3)gdaaD zUDo;e@_}WYv*qya-LvjRoR31&wD6mf9NU<%&~X5tKjU-7stB(_0#8q|1CF-Y#9%yK z$40U`{yF}wivE4|yF>%$oPU#$F?{(mrJtr6T&xM=GgCi67gRmS$qH-%&O^iBQcRXm f?TKy37k76JuqS~VN5hRU%300000000000001ZoUK)DZyGre{=UCrMEZfyWJz+pI~`F^;x?o~2Lvrk ztEjCa;~l^{uZ?Uklt%sUH}(<&)t;)8iqLA;GtV>c<96%q&-z6Xz}V=8VMPZ3k|FyC z;T#g9tvw%0=H}WI;7{j5BD_O|hB<8rHq?13(WBs1noPXB1H4Ewv~Ie}nZraE1ygyv zJX^ynLJXK%lx*QK$?Mm2a6?LgfGDc>tBZ@@+84jHul|6`-#ZtVovSwi`W}rHT6Kak zT#M@CGX9mMBu?~dYs6ydpvg}?$rb!9+=dxEgTCUif7&2Vw6fYbQ5G>kS4s#l3kEHk zHRds~O%PugWB0{@Hn4PV)oHgkn@!9M%15ltqJ5VQ2kjTtr7I**#vn(>gtW2ujeglu zSg?8?JOX;pg>^>EN{2ao=x2BL(+s+!2l&uU)9xsHxQ2~zOIouaN-D<%nE}6B*G!fAG%m}icmI@efM>4S7h?OIum)F^a%BS3h-0|I^ z(@+Mj>e%2)TS1eurH-OFYwSPMbzoJ_q~K5+Li7|>;*M{oI)dgYJbm**3e;D)RrMSF z8LWkIC6nZ(qK+#$ITWgT;CUP{ZF=sNiydj9g2GL$_&NZU zIR7)qNYjynyRYwrlaT#g3XV08L>0`SD~%#__4$1k5ELuW56NMr7|r4extRM&5~^By z1DZ%b>NVN$sRO=brbYYDjfl}_{MmLR$$FFQaXP-~X1&Jsu?v%ubLvnBx#neo%I!wz z2R1U=c6f6LIV!=kt^Wm$2U}ZE>6=wmxXAYz@x^RB+=AD=654W)3 fJLMMLZNdpA#aG-NH3|8Rz|jdRazFYPIJl89y+7>& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_handler.cxx.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_handler.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e0220e92981c3fdde9e4f28372e6c5ce03da6afe GIT binary patch literal 8024 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_handler.h.i b/CMakeLua/.hg/store/data/_source/_c_test/cm_c_test_update_handler.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e22dfc514bda395abfb8cfb348ef947fab480638 GIT binary patch literal 937 zcwPai16KS10RRC20000000U_N00&b50000000061|NsC0|Ns9fGq>UFrGn|AfPtxZ z5fKSIOstFm00000000000001ZoUK$*Z`(Eye%G(KHAUgLj^#9Hx2f#_O-&l3wqsaw zf&c>yS~^?ABvK$Ld0DXkz9XgB3E(~qs~>EdclX_QcOTF1fBsP)&jXk%xmBzT03e#O zKM~F#Qc~-)dBMy^suJw&h8GB5QJ`W*Dhiv*tS-<-!Rtj7TYCU$86~LAvdWmjYbLS+ z)i574@R}kfOl)hmwK37#w{-D^oE!i_wC8uD(FcEY;h&G_7>q80(XTG_7M12w1TGmi zy!~@N{DrJ!j%4+q_%=7tOHVDxJNU-Ujwu|#SfoP;ivpa3289|`gV~VcV#Gu2(EMdU zD#(qg0^i^5cEhx!%7;>I{p(~p@ei)KDGQ+9K!%3#LJutq`Xo8mpykHp20CY48^zbP z!3^%k$@R@LfpB&Ycj00Y&XW6&u;V6|wE=8Uv>+y@(6TBx#So5S!aRW7!1QtvT~ko_ z`*<==?k(4=aWcD%W4O9mKnU}2k&L6|BwVyW^W|cG6JHM7LM<#?%LXCcw@XOFQ`D}M zQd-KwPMjI)FV*zJbk_Gh?}TqehMS`rS>@gd*|@;(nQgpCi#kJi)wwt|@^mk=S1(*9 z)cGqCWyI1Pt~q2n|=JW(82CCnz$$@jSoZhd)~9V?}vD=C$I~lCZ-xIWv$u zGsPH+fU}rp(#X_}L{p4sQ+yv40;uYB!BaTeCGXK|%>hXyEt7`|rz};ncMNNA9OLw( zRlDD}BI}dn5lY4dpfKtID#?X$dNTGcIHJzcr*CVbbwi5N9agUeJC?mOp{PrEbb`j! za`tU@b2o#}FdB4M(QW*6jBjU8$4M9`bo{5I+HoBVZa6FW-`I6o?WsM@uaP`^=I2OM ziZ^yWStuW3St7KvuW6ZpK+Nc++LCL>pWIqA#Ps&XcFs7B#S!a9qfHhB6yc@I%{B%h4GBB)ZxhS2;7C}#0b%aUDs+UBb<#Tv#;a||8 zD(xG!tHh9W>{e>p)l5r;<}ZtG%6ng{upZe+%4yD2pGKVx;Q56GqAuGs|NVv9ZT^4W LX!rXsdx1`amygJE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/._no_dart_coverage.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/._no_dart_coverage.i new file mode 100644 index 0000000000000000000000000000000000000000..006ba46be0e9e03257c257780c3d779995f5476d GIT binary patch literal 104 zcwS>*WME`~01Y5khq4*}LqXZR)+HYjcM6u>MQ9FicQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ecad95a32c8020c40e6cf340bdc0595687a026a2 GIT binary patch literal 430 zcwS>*WME_f14bnV2Il@B zAkg;y4;R1fi<9>oPHbE9B9GznHR3NUYI*!bN)K>=5Lzb z?%DqTg3Fd&WH*&D57}|907DoWdW^mx m5){HO@3Cw?GC}FuyZnV8yJk#kx%YJC4h9s!bP%Wy%mM(@IK09D literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/ccmake.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/ccmake.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..915ca30c16b68c2b3cf35b6188002989a8d1cba3 GIT binary patch literal 2308 zcwPYn3H$Z{0RRC20000000;a402Xfm0000000061|NsC0|NsBr)kCH9hxuM6Og{oz z+wNg867g|S z)mD+Q2bje6urp%<+s*%e@6Fg?AY{8zrJhTuXXd>(@B4%5(Z!E?3I%{WDW=kkY5>r> z@tzn|pe2P;mAlZ>6Cop@-3bpFT(X!+PYa1?HzG(vMp*Dmzcrxq8u)&Mu&%#cmKX2~ zLS1|DH1Vbc*E&ANjkc#P5~A7nvy+p5R!>i=XJ>HwYwaKZs=fQSLH#e2ii@~rE?^68 z7pLyKU-1~vTVlSFd^*$M_$8up1|PY8_9QDqH}+lnR_44VVkM;JN#p`F!w?Lb0?8DU z3l_LYZNS)uqN|r0goK&a^IEm~{QT@%!GxSvuZB0*)eY!OMl~ge13taGm&Uu3l@W=qGyO3%|nhz zNJx6IUV)gvO{d?wLagTd?sa$giJ1M+9rikd0eraaLlf?r{b9E?x^DJUN_V6F-R+>` zT2YCvHx>&9{#uQ((A;Or2oninIwtdb8WoRH{V=CHsuupnV?Rs+21VDc`ccdCXY9s{ z(NUy3EAAc-R!XyICqzuOjm60ulY?(uvBaE@LPd!ajPy3nvB<=~kUEy-%iTp4@F30m7?8zASx zeRG5r7Mj<@UFxk=m+}0tING5TNjBVVnb<_OVc^C|vy>_$Te(3gw{oD4aHSFH@ ze!lH)joDP*Zae(m-VvvR2Ta%3ouAJz7Jz1`#Ezp;HbW=M2Lx_uru5bpeJtZy@}sm! zcWhR*8oo=sjusau2+Nje@ED4%B3@Tm2p)i->g=GWl?(@bf_3~5jgqNh-^@3QgJ&K) zrMg-1m}?9jTtf8-a~Rj$3;FNX!H=r8_{DKHmapI5`4fL?Dz(qZtH-H)qX=x!lN5 zAazGr-pLm+e@*?eW$=g=i;R!02!cTPb>p-SzPYU#^Pkc*;8+R60zB5Z)?dV$W-Wb+fegBrEF-gp;ba`4_GE%OoOq#P zrSHPaahBp)BHP&O`C=P?!($3gIv+4iy^WJr#p3qSfSG#a6bYtSex)fo0B>52Jp{9R z03%nr_waIO2e8*7t77?(oNM6J#rCdA_YYvDibt%}0*B$yOnl5kjzdOfE`ydc-!8H# zCD+(fIj>il6kal&NE0{ioy0)vv)>XdEo{eCjKlgk1eN{+C$-Zw2?3=^{7|aEIcuCu zF$)+kB7lU_QEa;w;3h2b<*?N$EnUd*4lps|&J#6z7<>Lx zc139$@1>B*V)+N32BtQbc+1v!RI5=8+Pr=*{+<%kreej~0JTNU`zy!!7O(EG2 zT17+82!t|*TPf{y?OTQYE3x%i(e!UDWM457V)ncTN#Ue6W^ycWrEx91!2CYqWTE8x z4-`YC?e@YDd+*h_1#GjEttQ(}e+eQjl$TVAXxo_s=$4nw(xeqb`+UIST9nX=w}uysXs?y0!aScf$mb)AjpXUDB{4rb1& zOG6MP!kzr2qyh5Vnzlfw{h+k-nj^f{~GxshO3jfr1K`freIoMJ00x6Hg0*NW8S(vrla eoK%<0qSWM){Gv*Y#G>@FXoFZyYc2qE$0ie0!fW^d literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_bool_widget.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_bool_widget.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..45d22e948847a5c9d73d97b675dc809835254945 GIT binary patch literal 867 zcwPZx1DyN-0RRC20000000Scc00$%h0000000061|NsC0|NsA{l83GkoE3NuWD>|_ zAS1z%n#27NMsMx}Cy6@hR;R`cO01DCU-ya@+3JyO6N1x#6IQ;lAJU({RZ>ThvB6P`c z&6~rK|Czkx?#k7@;)}vSD{b2#@8K&qHB;Dufk=J()Xv|PLQ7?Mwe$g^vIIxdpirY) zW9Cz|8R9mgZ|)381%)xIFbL|p_R}Tl;Y+m$E|SqO*g^}lEP)h*3=QL@_HAvnl7ef{ zGItdL?K7^8;y0DS46X*r#pE)9XnYMeJqL_lX%T>vVM1d3& z<{o4Yqh8#-AXaoX7!HzaTWo)jjC->g^d~VyFpc75(7hZ+@g~yrGM-LmJ-@lCjmvK2 z8XQAop6)b27%X^R$i5||;~=~jPj{`Ld!4Hs!yWe9sahNsxu;U6(B`c#eedap@g z_}bRu!jPt!DLP=c1=?$NHhTQ`vYZlg)3A+PwIL+#&qSLfn*=|DHv|jz9z5GWt`GiA z?pFw>mdVlrM@-NMp~CQNG8vu_NTZqO9LsD@dSk2M^sS*o^Ew|-;!!kgKS$oM^!62U zmPF$(G*=GW;N;5axybDZ t8Sk}s)daiI{r(pIr`dSfnx}%Ah|Xs_?DD@>;de^GZ>4(legI4O9N+vKs;mG2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_bool_widget.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_bool_widget.h.i new file mode 100644 index 0000000000000000000000000000000000000000..02e86583e92a858a107bc6a769c8a39031036337 GIT binary patch literal 778 zcwPYt1NHm>0RRC20000000PPY00pQ30000000061|NsC0|NsA+TJQAAlidYyV@I~rY_-~d-?77GS+;LPZ8h=Cnai2u`n`*UT;}!i49ANyI zh;>cY77-mEg3wf66l$=H7nElkM)`GSlZ!npQqZ}=ny)1YPUIs&varj25& z+RzM^qvUROpFlW$gk>1V;WT+XhlZI#)&}T?3TU&K0bw zzbSG;n7F|q&O84&-V;IqRlVXYg^$TPzdG%CfCPSqb(t`@vCI^Gux3FmiLK3P{$d$f z9i1Z{KfVuFRHuqnme8O*xg#RO8&;zbF}|ve2NB^Mx4qiBC8biJtnmKXtsASUrtQwb zn*x>c*C`al?k}yi2Qf9Z5*m!Eag}*1C0hc8q+595syqE}m@+ltu)+afx*FMFJLVxg z({29~r#;BaK1z9dHCy(e!8vzLxuC|s#qMki8^W=lt`xq^^CMSUvdo4&SWoCE?z%Qy zsH4xl-hK?R^(rL|P4PzU*b%a)&3_z+kSkfb)ULX$+CR99-3VLmH-7i2$dFB(YKJ=i I0B>{5h+sW=v;Y7A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_cache_entry_composite.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_cache_entry_composite.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2e1e85dacf67896f7e1f0f06a3ad2a899587ddf2 GIT binary patch literal 1096 zcwPZW1h@MD0RRC20000000amC01b-(0000000061|NsC0|NsB|J-|lYvQvi#Ms0H< zK(uIZiO<~t00000000000001ZoXu8IZ{kP{e&<(M-0Bp%G--FYt5dkGlv3J8O94T; zRqy3A1VctmGH7N3MOE*&pOXLyl%rL*D_w*_GPXZ|wkP&j2jAZ7s#E}aQcNU^YyfCp zvwMU?XiA~fVJ~EQEMx@f>X?TJml&gDT1Yax7NaD@)CxZIn}bwtgC8{$sZceUA7Cri za?upgR4A^|^dBDTGx$KJZ5B@wHc5?}A3xHIV%%LZJ23wygPlZu$`=#uRd5U3u4St56Me6au9V zMyMGNm6>v*%L}*yCB_*epyv@+TJm9{aRj%nch$Y|!0Ftx+*V>;f=nB;7j zo~*0&C4ml$GXFW!a~5REl2ET)Sr&NR^Dg!JDV-wexENDV5TR1U4+50<9D=&sOH=Hh zePb*i4;vhzHl@BO(b=5CGNrU-pL3Jk1 zWF72zUpUL@NKY3=PBMbcc*}|G!=iL_+oxFk&AwmrJIx*kE;yMxZF!ab6|} zpFGcJtV4B$;=was_UT!AsnZc-%x`5fL2`gboC|ALO?2Z&V_J@L83*j=3fyMQ(?$?y z!ZhIl7cI7tAa}>jWkOjUqvKTZ*71Mp)t~d#^$34qK@e0?o9g?#0g_tqhR#^)oX56@ z^LKUdYgG$%kI(uzN4gPtS!Fnt8i^`_m*1c(q&nmIW5m>G!k914JH3A$vB78QqN-=6 zWdeFyTXOOaYF+C;2B-;DaQs@f?Ogl|vdmVexP+x72;4tHP2du%Eobynin8TS#dzHL U$wjTPc`^mxfAgOF1_oIJUH!IUE&u=k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_dummy_widget.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_dummy_widget.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..76b8ed5235a7ffb717d864ad499a48cc67931654 GIT binary patch literal 624 zcwPZ;0+0Ow0RRC20000000J-o00b%k0000000061|NsC0|Ns9`dljL07s;Q>LvWBm ze*mfRF5p@K00000000000001ZoUN1JPunmM$KUf;oHjH;DG4y(!H7v&C~LI-QW{qA zXp(DV&9N){(o#+P-)AQUUiz>H{17>J{(SF;&r$F0qgD_A%#2-9nTrq_B8->2Ki3 zAtSC<4PSXEIX!iTdrqB#)9Ch>=jS)k`Pb;;1}?7I)fKzGZqZ+8tk8zxs+ir~07@gkS-Q_z+h>_e)G(0^^~PqebykZ9@3`!&}qz!#;ZsnD*VD+-i2;9CD zmW+6A2uoO``EdG}Lp*tcMVw{vB!9Yvt)NOb1h_#3oeEWst=CdG$O##)Xa{-;<3W}T z9Tk61M``}#lYL0@$zVQ*hiL{e%;GFhlgCk|V_*SM0ZKKN~gzLx&J z=>J=ulenZ#f%N(WnB!lg?E~$Dyawn1e>nIP_=^(u>|4HDBiwnC7Zr}Va+7ZuODFjt zo5Z8r;BOEF&sxhvuZFQ9SEa;Mt(&&4Fa5V;V=mN#yNq7n&CcY0y68a{*B~`U!IDdh Kt^7YxfkBn011)y| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_dummy_widget.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_dummy_widget.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6fa071c98ad3e6e5c55585e0d3a92c7e6586d340 GIT binary patch literal 739 zcwPbH0v!DS0RRC20000000N@`00lw-0000000061|NsC0|Ns9?hQ`;Ga+P6 z678nqJ~pTT00000000000001ZoUK&bPTN2befL+403is$4xv&dBOY7_ny9(SF-1I~ zjlGUntaq)w#Eq){duMHKZJ|$CNi^Bnb9Uy;SqHt#k9s^0V5#Irktzg$ct##5oIX!dEJ&B1S5N&17ylbtpJU;+4yXkX5l&n(C3Qs@*NiH`MrLe+vf) zm=dwEWaA+5$q6oui0Sai(8a^SU>KYYg5fy~hvDEn9DZ)0->K3}im*M4Zdv!|%>RU0 zOvkd`DYhvM9A(EX34CLwA&T~4A~N6o>NX!sp`|j+Rz5()IkYehifXF1H20BhMd=Hp zZ+;k%3QA+@FbJBa@v{o$@TJ-W<8(F+UbdE|;(&rdP7PsP`>r;8(voS=vS=#;jB}=q zVry$?4!4tZytqjrn%}`~lqAtSy}N*hnNnHXhtaPK(FL z$olvK3GfpHFrqqBtahq~-O8AV9PgP$H{$-<8Xsc9IgWh2YbTXSf!@Mf=tggxv6`;D z7T%O-mshJ$5;w%mY9A76tP&cGvN+G8^OHLQ-K0Bs*`D5Bf-O_V5)NxA`D0ZRx7oFM z2oH4E|3}px6jdMnJRdD?d(dE?Uah2|8QT0k(XbtD-pU+8p=8x+wUsOfS$8j<%l|;! ViNEl>PeqOmVngql<~LRWt-?#yU}OLQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_file_path_widget.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_file_path_widget.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7e239937cb15ae3e98ac68f39bf629ae53094e9a GIT binary patch literal 578 zcwPZQ0=@kJ0RRC20000000II400Y|q0000000061|NsC0|NsBW`t)&CHP#!Hwv8O+ zT(T2E2-vXz00000000000001ZoUM~fZ<|06$M1ZKQJO;@HrQ#L15qkbYS*ZKAdGAI zxPh@*6?U!N!4Fma?%f5a=^>SR$R5z_48Q+87`&UO_d1RP5G%P=tnvXMoU$JXT?m!b zx*L~_Hd0k!y&GO4d_{qZkyHko%DgVoQgE4s3mf+#tHN4o)FX3?85Jv@Z;{;WcifkSS6%<4}-}4TKgPT=mCazRlZ=6mi-s`IcRVA3IL5{?Dsa;!}IcdQ)Xt`-B0%PY~ zlj6@cVGgS(9nY631hX})f+PuM>G}~4oC;YJ;2s6EDpVM@+LhcuMo2M1Cy*PM4wG)2%L6Sz{auOtGrFfad^Tp6@TeZ6ES?&?CKVuY0RRC20000000JKX00d+J0000000061|NsC0|NsBe3DlY^U|_rj)tiDD z$+0Z@$S6|)00000000000001ZoUK#ePunmMe$QWV0yOb6Y0G#C;vvi0QLTk44MRL3 zH@P&{5<9Xl?a;LUedmOYNrOINDbd;AeV@;t&%yE4dkxP6SQx!Fq7DHdo{R4YXAm20 z?b)IdRA^I!TP3kNvq?S}yz@9;lBxGfMR~wJCloqTmx{83~Tv{@6 z)e`1#KTWT1?^1|v9^gJolISLVxP+~wQnv)SK?S`EmCUW1N-~Lsj8OChx`6pOiLaRz zeVWdu>4PhFGEHyB%Oy;16Nq3DCFwN2n?=d9(&8>z+%Cs{e^jR{R(gYw{k2hPk{R0W zFtv6?E7uEx*mpkFyLI4k;O)yoeQw|9qcA&t)fzG%lflL#~IHnAz zj$*HEO>HS7trHlA{`N`^ErCgTLI+vW+qZiAytcP{{!znm047T2id8-Ugk$y#;Q&G< zwLX}Xj54Vzu%{U>5iU`nVkDKJjb&PwXj!lmg;R_BkW^u&gWP$`Try289~c0#nyynz^+B$G%nL60Ca826*_%CLfO z!_hFlw_*pw__{xx!r&%?046~c55wD05WQrY+(wg|Y2RIyYV)$0Tp%R>Y!s4sg1RZD zl2){^J;2ELZmRmQ&fE2z&s-#Bog%c}v`x`+98Ib3%glI%ta{T`zJGzUIv<#J>p3$i z%S|YpL&i#NBAmDA`mWt^o*Zi~*9Twifnjxf&hvZD?+qlLLHm{1Y0Q0U=3309rk~cc z^@v^rW(si&^j?NNd$wX0lBb($oDx&?B4@J&q-yMKMy-9WoTF&BlBTIkncIGEb$b81 zvoF#$13qntShqqU)k^#=Wvk4WH?>`7Qc8{Ot;$9+AEVah_tH+xH%^cgOzlFY^N*Ek WwZPe#O>7@ci=s$NtLqQE6SpSx$4oZ> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_form.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_form.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7f4402bdfc9e285f28d006175130e029605401ae GIT binary patch literal 1004 zcwPbQ0~7oJ0RRC20000000XQ500=7p0000000061|NsC0|Ns9rlY%w0Bp%T`?$qdB z%{^*|Y7?^n00000000000001ZoUK)DZ`(Ey{_bCKXo|sc9VzLW0+W#eu9Gyz?8LC0 z1^E=v;z=S#kpfBC^@8rV?W`(&J8OQ02oc# zUkFDqGTPdsnPe{0rUbv635oC#6&mKWA=p&&TB1k6>-lKm?Fppis5TbuCBdSizlPW3 zIbkZVS?+yDZ{E(6D}ceEdE>{xv>%4=1O|yLZXyX#@QejTKrYO%hy-@Ng3S zMpiP9bhR}iFC28!Lm%WV{2|Mu4H@8a|Uf;vra6TViFYgDi5w6g+16-qm5XBXQEh{MqM1c%bZVNht z>BW3>MX2G2@npQb_r+e0m)94I1zg_DVFklp*~H(tSN?6qX$a6gx!QhU=DSopg$vWl)T$3m0UG1m zHITlmn{giYZGburEA(CHxuj#T%%P#4;&!j7A?Ft!*-dG3I7ka-dVOd;9Kz%0uX9)% zMblta=ee(ynkUe@5j1*IgLGa2gX1dDKWtDTaleYjVe z)SDwoQ&H}u+1!{%^ysbRLN_*3?lH_d65B4Yut&dp`=Bv2cebm#-OD|owL#^cTsxi0 zXoo4y>ZFCSjwgxEXpSQ*1AmwF>KisAVmd4ixS0v*AKe%fKA%{`m0l%s>3(ADzL`X>f89oSrt&Ycy7B6*Q;eTDCt& z-e>l*JJPF1BbNn1H|;r+WB4IyBMkN-R;lN{w(&<=S#3zxl?M=(B{VP#1}&O3W*)OG z5MLQRdLYmS3Zhlu`&bpNEs=_8c~n3SAT68WprGR4}$$m6AbBWQ3we&^e3; z^XQUM;kS4cC$~=QFis|e#R7)YIfO6^=Sdu0jl%g8)9h+Kn=S@ko2ug#_j-+xzLZgE zk}29InMym+%8h~`t~+P-ZUeaIcRos$mUV{kVcYZ+A3B{a_8{0|>`FykxQvQExNU(h zm;O`IZ&?miVooid^s4`MY|4{GU?~d%*Ic#S1tlu%LBJf(YM+EYiF_8=9?8e`I=?tL zmsnpsabc9i*Mql2E|QQ3q={@@3#4mN*4T9! zcLBhaGu>b%7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_label_widget.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_label_widget.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1401a50525b6bcd307753c65b338a940b90cd3ca GIT binary patch literal 773 zcwPYo1N!^`0RRC20000000PAT00p-I0000000061|NsC0|Ns9%#Wm*+{534>I|ARJ z4nqned&DaM00000000000001ZoUK$#PuoBczUNnr3PKQq4dGD9h(l_iiJCys@PioD@~{gx%ARdYuly)S9IgWds26MBF1BKx~b3 z2U8^|H?{!i_9lM7d}{c#j{E1P3e zJy^Lc2zJxGCJ20!v=$b7Fw$w@zg=UGjdsS8tjhpkpcFJP2NoUL6=nfPn<2hL4Cn`e zu}~0IQ5de*>mV(89D%XRa5$fg!xz_rN(DSH$dH6oF7UPSn-|i7GkH@Hu$)OpRxWD7 z3~omA;nnpV2A8*RGf0xb<^1*p){+WS6W|Ipv{9&FY*{JEAP!`OrUx)NOwN;d$f&`W z(Reh!^~GL{=9lNQ8C+Z?Fo5YGnUCV@@gRAOG`&uySF`h=ZPmvW3$sET$rN4F zOlf@4+7m$#&z-yaF#2`F&X&w|hB@5bZQ#yb(b;07)cCHQ1L#!M8N#P0hbP{B+F+ZJ z(3!B=s5Ln6)k&3b?wPw2A@v1!d-AX0Rbq&ssuxP8@ORSA&rYk4c+?wkyHXP`H>08l zUM$ehyOkB@j}n=x*RJZ#OPRm~j6ZT(8OSMq&dsE`ZgFj&iXXsKZ zE5FRB)eLzkeBL!50T)o!6hJJLVx}z~8iH_IrZgYFXB>GxuiJhb__|=0zS2S=Ja^LC z1&|=sRy!bDGmY|=#y$m;*tPJY$)3IHU}21UENbL^{n&Qk9v^ydw$z2Z?C}*{o?YE^ zVa;uJDr*Q+KCbtc&<=5fWe0L=%66DWW?-uJ@9y+J5cdAXNw-jE+#a{{9#j7S6^zk0 DQ5JJS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_long_message_form.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_long_message_form.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9895275deda459935e931ecd649b35a7ef2c1856 GIT binary patch literal 1747 zcwPb11}ymi0RRC20000000xr)0249*0000000061|NsC0|NsAVK=GaTb}bTl{Qe0l zzjv!Qob0{;00000000000001ZoUK=FbJ|7_{?4!1(8LBCiW;T0?r-njodn|5jvIynvAg%|-tMz|NA{@nvtEe=Kr8SEfjQIxpwciO z2%JDA@EJR4xhC)X!4QPBPhA3+#3O;p{Q#FWe0%H?u?k+dD;=TN!5UV^0VAyLdxHjH z%p8ylM9{3+EHi=ExU6n^gE5M6VdeN31?MJLD2St;3%T5BHlNQHeuqLqFTB^^oyw(u zl7La))1^l;q3TCo%L_H?EBewb4t@X*=OaCvold8kHN>oFelW;hbsP2U($wKY7cg&N z6K+zMX(Bd!bsfrp`F$A?;ImB`4`^@9i4C{4?$z~87s|~$xGlHab35j2==1ZZB{!SxVUaZ8CvCbw^q5S zm)jvy>!#hh?o>6kRe@{v{0RYTkw(ww)FMo7X6TEcJ;4W)W8!gFKaGV)*~Bl@v)r*w zAgO6tWRYn(q+xnUlt6Qm>*~&&aWd@sK4y1QE9$Z-4cW7**~QnbMh%mCkv2g+mwF;2 z94sEVDe>?%o%kkm8xTGYJV<>#$i4kFT}(VeBC*4juJ2H!7`JtOLM&{z5As>C#T$GK z%l9KM3;E6uV5rbpMhU=j%;4w+aGY|NsJ&*hP#%qlXM>4t6gd!S@xk|?M+cz7M%!H* z!W4*b49eAT0m_SLj#NugUWzca9vM(Cl`f(hUX>QUG<2?{$H!^87gYm}?RN695k+)d zg47Y^>7rDMux%S7B+zqB?*U{n%|1o|1i2TX??6g^_C9+_1@)MSEV?2sP*UkBF2om< zxHh}beL+=jL!1xAk9!#M?=Fg{8qhwZ)?CFC(GLhQ`a-i|73~0>Cni3%cg=5IzZuy$ zn>*a(V|Hc+k!K|REHf7{1Hy;qY(5jTWmb@Zc?M?a09Ar!&@+Sk^+wY5M)@z}wszjV z`ce$x82u`8h}3Y2mx?7;vkVlb(lThVWo7!Y1bbj1o`?{7kNHV{SyOc8S)+Lh1JA&g zI5HA1y}!#)jxzonI{1;r8ak>9nRpxvo|LfBG_!X1L88W z#bRG%;adC>(a9Au!q2(GWhp0Wl0I3^$e0gD_xZwaQpQHu^1Po?;!INAIKtTsZ*1+2 zjrWf?EQvEJ8riyjNqEEj+YdqkCO4 zNytPMaC)uYIZ^7xqOh>v78zQUS21e2ccDFAtjj=B?l|-zTto<4N+5G?4DqN=%}?HC za?;-9Jir~5jZU}RJja`aluCzFLE)uQzrSJyuz~qD#0*!5p(v5h3~>c8#0tzpI8acM zmLqKc5NQd(Ph`%XKR&`%-_Z%RX4nbv{rln^oA0!}s@5*Ax+`s?PU>aPNY3_Yz<3=` zg!}jT!U}B{nhZd)h1W#}_v8!UVMk_oEIGs-CDU8VR9H>v0_N$YVtt;>Ya5S1A}N`H zm5(2p(y>!Sc#h?0>|umlhPWPEbh>O+Ed|lZ7tWUW?PJIW;>cV%VxzWsjYR+V zz}s;yhtX|nJu(gP<|n6^Ff1qJsKrd&*>S8Axh!2wWg znbRD;;%O9F4oyqK)RU%Ca-3f*Pls*yE&SdWOtX4x)N9RZSO(Q`v2*Ha6cx|fdK|jT z27Ycb7B$$o*(|SUv3Vth{@8M+cn4L@gR?Us1_;uPIg*)AHtLn>*)FMhqcM-&-Ck{P zyVcPY%_f`l#t~?Es)i?0vA9w_EbbZg{+D!G^=p3ml$3*I~0&zN~Jzv|qAE pf%F`gt*tJ{FWKdq%h)8|+JZZpa7P>BY>PT^Rs1O0@;{n?xrMpCNag?l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_long_message_form.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_long_message_form.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e3eab43992c3b50ec32c8ef1ea277d50141b4691 GIT binary patch literal 903 zcwPaA19k6G z7GDrvLu!q4uO~{-!q^JDbs-hPZ>Z48n?4xDeE0FiJZ@1}Ij@C(| zldvAHWIH*DyqDdnsW(TdmSj^!06nE3q&cwY z(5|qE7;TF99WkPN0%M^hs*^Zguh&staZ4g&m+|FnJc_@EmQ*R=ra^%uq;iq3jh|U5 z9XPWH6#B!2vhOmH7!`bEad;m<5dcS$fG?y${3DaCYO19Smnz{pl12*BSI+(#vMUbUx~3TcpW6n_N%(QM*-- zEAGq+A^+A!ZAj+m!e%Pti`JeDg1GOzs~<+eqquV*7rMX&+}=LHpWCu?zyVU@-WUeb zxoQf8XHgXA)s%!Tge``x)kWpAosh3MEkPgiJeJ?dm2mDG(NmF^*wA*lYb&l3o79rO7uMKf+N9d*2@+^5Rj?6 zpm6cuA~Iy2*+Z!*_`BdoA>0oFa64?V_tY8mTp=s80LL;_1q+7Nq11*u%s;G9qj_?- z3F->_`I?HY3-5CbnBhKX{7Ld|`5NL~hSGh>6E@RF+_-&R`zh7zHgaAUd|9(TsBs^J z4Yk$Q5K|M2eGJ}`?{V)7SXfiFbo8s3y8X9#_djWEXLbYuTdzBRV4r!uhv>nuKe{-A dfkaif&!>N|@o)YfFhk_RH)h{O^DmcBY1Fwkwk-ev literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_main_form.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_main_form.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..6820c2a0e1f4051943120da2432f16a0682ee7f1 GIT binary patch literal 8548 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_main_form.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_main_form.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c22d337542f0d8f9784981ff4c76546ad77a124e GIT binary patch literal 2106 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_path_widget.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_path_widget.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b8b0773123d6c7fb2c8d2467457ee22b8c3b0a82 GIT binary patch literal 1091 zcwPZR1ibqI0RRC20000000aX7018w90000000061|NsC0|NsAcuceI)D%Zs2kL9aA z8Rn15^l45200000000000001ZoUK(`bJ{o*e&<)5vYoBD8EBh6I8Am~LK0?yu*PXN z({vbP%UDxe%1APV?c~4rNQQ7tnuq$q7fIiD&iT&8_43K@x(Wq=q2N>Drw#zL`~G(V zHE0ViWo?-FD&isqy&BPkzy)DM_=*dJ^?8^jM5ExX+aBqC2ZFSn2}$J8SMd!Er$pJo z!$WljZxPY+*);Q~8q=;+aN*2XIRR4S@9!IpPxZ!!dh-)BkDQMmoueZI{X&GKoH@oA znbG{CX*V0Vjr(nWzYug9E3kr+W_b_)P&M}jsX~_pw!TZV-{wqmp=g%c0Iehe1Ct<# zBw|KF8`(yLtQl?fpnwaAmAZH8_4#~m2Pq0-b1|)7di`E~eKb~S0w@`TMENw4w)PD# zFQyVCkBmov?;({+&`G992sd5t^6J`y*5DRyTCUp~c(=zerz+-|0x}~EauyXMHoZ?M zf{;k~Of7&%(C@hIOGLH)?)JLgt#kT@i5u9JS(1Kyh^}6lrUdvrF4X@qd)u?0V zp=w@#!e<16Cm9)6G$7IhlXC4e)1}}m6dt4cZ3S4a7yh6uNV1SX@j&&&#lnFDeV?*( zbVqM*?v55xk<{ZHrPs)PLdV%(vnW%jcc|hj=+~HN393u2UUz9+LL!wjD1Ki82k|Ro zBg{6NF3l}Xt<2;w4JrI6=qyuNJM|X#1Wq*G4`R~y8TO5EoMFqmJbpUVUId9g75RxI z8_SsxgsCnI$ph{-jth^4!i>}KKzlmQ71Oq~27khLvZ%tY$YqGqDpu*>?CPcr^Gz>b z?Z9fM=Sy{w@CmLKi|ge>GCg@_oYF4LOTUc7pIEPQpGIK8o80&XQMp~K1SOO6ALcHI z$^<($?~i!LUh0>@3`C4LH9&2^D(N$NeH;opBf`?}Rd751jt8CpyzzOr(>r_N(9rFC z**GLs=s41N1OYzL+Mc8O+;UGpY?)2)VKu7xXGB>zPEhMH_VJiURuS&h9lI07Ql)9Y zMu2rra$b0o({0J{Or~GT^|RT|h1?8qirYK>@hRv4rf3j18%M|PFulvAn>%a`PKK(T>2SZhBe$!sPE5AELdZ=zzxYCOGiF#X> zbNtzNp46ZB*H&*y!t-e zNS(piMj!3f;HuX4%03rkf37N#JvY@Vm6tMldh%>aU+S92UyL``Or+OMxR(d(l4(6v Je*&o0B{soe92@`u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_path_widget.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_path_widget.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b9b7cdcf200c6cf883f849588f27131b52e98a9a GIT binary patch literal 788 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 L9?#N$fPTdSZ!5n9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_string_widget.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_string_widget.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d4a43897db2d739dcb02842c847b2c105a54c2e1 GIT binary patch literal 1138 zcwPZ=1daOu0RRC20000000c4s0121?0000000061|NsC0|NsA%ZEi3p@Q0Im9(&zp zyljb{`xmMJ00000000000001ZoUK-EZ`w!@{_bBfYO0FR#7=rmK7eu(N8V7AfPgfL zbW*g~W4x-pYwfO~T-E=6GiyW0+nrPuA>{1LGcV6Pvrg1L`CXqN02moPH=^hOK>u2N zL)eGD(bn#da^X^K3gFXJ<_H(4&#sWBMOI(!r^4bpQ%cKYuznIF1hfhz^h8@Tl|obLZ&DL%*W2Qmc+n zh6`E$aTp$xmCSuzu8f>#4qEXp2l)hFq+1GudoWOO$iLRx`&wCToUDovpqJ<1VHONp zGz&~ZiZ(%fj2OD_4zz*Hxv~>Q%jGhR3*sZxW*%Kmudkv<*US|;5Mz*_6Ee3U*G8Xd zCM{T<`ig*_6KRQ{S>-T+yTSBwcsqsO%{|=p#^c`2^u7yA=`vk8zy&I(qqvN)MVU(i zQ6M9fTY*mD`fS|4BvkLO!PQ`T&&8e(rZ;Dk37ikd(1THLJRS6JuX^Jq(&%b%VW_p1TZ)jB7$r!C~rqEopVkHPiyi-@dO@Hku*paD9FolPQ*TnOX1v_Mw3g331 z5Gu~A1mWGtBEeUaxRwb{xmB-V;FP3zB+b1dj( zLleW78Oe0(6f(i$i7Okz7+qzQ1!pSKQCjPmQ;>>n4bOabzkEy$z(N{Vi5zBH=S^(` zhH!%);2W;?UQDzNX|YG!baOhqqk^cz?fxd{q6?~vlUvW&Rx&LUcBq+bQK!~HoC(v0 zg~%)PWNn{bY<#_GUF0}ypS^vXv@?V&S zyXeUk)6`D#BStn$vzBzDTQ1P=>yX}iQi;5d+g-bzYK7h4C&k}EMbhOYZ@!2A1w@__ EVwP?t+5i9m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_widget.cxx.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/cm_curses_widget.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..556d5db3c4cdcd119f1e3d5528047d881406adb3 GIT binary patch literal 797 zcwPY=1LFJu0RRC20000000P|r00u4q0000000061|NsC0|NsBB7jrrB2;>zJ53*Nv z@mb}2X5K9T00000000000001ZoUK$%PuoBcz57>8DTf4t6DV*9rIPCsh)77}I3P}u zvB&YMwl~^cCqan*_Rj8x<^v)1fE79GnR#z!-#)u}aQRu6;{Xf=pNgnx1AyO;ej^-# zFSwLP!#q+c7X|2O%5sEjEKx*?3xf4|Qst;oupjs%oo_>2_?3_-A6PO)<;KfpV-EXN z-HXa;6-{-$e|SiNUy-t4g4^{;t99ONeQO?{!|_@B^t63;W}x>dB;#etAX*dpsgVB|1x2k!gCq74r|H)W# z#bT6ZGX>W}m)Zr9BHd|MpXR-Trt_7Rab6_|dppL-_8ezB)NXG-*I21YsYGQB(8~<< z@OGVJx>_kdt2-}_7LduKA038y0+&$YVv_20?G3hKqWZ=P-lAXqf}j$WEuK{5lbI5= z4YCHghZ<2_P+1&F^*zoaaqz9(aMETZ;{tDuJKVL(0FU^#iZKJ`ON*|3r%NfPDv0*U2s=xIB zz+B>g;W}P#v<7~p!U)xUlvh}b>64y4S64y35|@@X+CmYe zTlJ|ji9@U=c4Rwb(W?8~@7PW$>4)yiqN+F^pP4f=#}oYi>7V*^IskJi){+zf0F0;P zfx;n-rBLc{o)eu4S%BG1Sx(`Caw>@y5@A!3R5>*$__!D^jXi+47*|qJb<2`9)m}E( zz(+iLMfkcRYjb-1`7>^u5$&J|cIz)kN8kLTzx?BGaC{Pc{TiH{Sm+Nb6%#zLVd#dr zhhy(=w4!+|%B^JUOhY&B87E)hJJU6hbO0fbJ@a2#`&e)#q-Is&0gUn-EKGrG@)OiKx-P;Z+#j8M2cwnw>9~Fu7j92g{RpXbe z#D+q=D1u1F5QUpTQw{PX*L)2KdNB4xaA z6>1Y5l$G{iO!6EBu-e+b#e$>K@H!eHXd|=QQMK?oL-FkGLPktW<4Sq3pt_P=ftD3^ zH+AYVAy8Y&!802@u@C+p?UfLDLoGB2ll&)mpxeQ#O7A@)+4LkcO zjxoyGiLexk8G*T6XhYgVk!rj&Gg{AyIVmh>hi0v;p&;@>S?r3g8Rv|zjWYtA)=(na zdzH*aumq>rhT0bXbdADHY?8aEy*6oNPs6KO+otYBABtxdS+Es`q%u}x3ynnk&8 zs@o))GMZyMt2Cvu_YOS__rtjCq6ejoPuX`tT5{UAUOYiwFn?mLw=zvjDZ0q_gwsgaj$&f!1CGK9w#k2ZDT^_&qCmMdg=5@hfDKv^iP&Tp4Rztcweedsg|olePq7t^V9aT& zH4N*ntcg@Jd=uFCuRCCcFgLdEbgP~cbc3`NU}*Oq-xW$})w`!wTrs{EuxYi?n-!x0 zw8Ob_+G}uX%}+7G%J!lGzsd0#yGJyYjABLJ9fPG5n#TB=dSm1@a%*jVLXVm;xuQHGnFFi_&J^_W#yjUfn+)>hn*WME`~01Y5khq4*}LqXZR)+HYjcM6u>MQ9FicQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d65e985639e0a78adca8829886e6cfbee31b5290 GIT binary patch literal 497 zcwPbV0S^8E0RRC20000000FT800o}_0000000061|NsC0|Ns9?j-0xCyJHL1T&?s7 z>R;pr{v0*O8KCwe7T+@8*^K)8l-Q;an-o0^fHHF-jup`9FWbuIX&F`t^hfmj{D2TAc- zns=}d)tDCI4d1|c3sz_i2OF?e!T7Ef!~N*m?Wa|svf+k<99Wyfx;nrmc1jIrYB@Lw z%fXf%SHR9J*W!gqUV}Mp!S}GxJwkYFOs|z3VDrxSUUoGsG`r#StRO}bD&RljaC5kT z_=t-ZThV{0v)}62lSQ_>$OT(O(vS`f<7nN9&%2WQj5xl-%@@ n&hZr6pS0e?I^sppGjx}c@LO@u{GZjYG;4^Gc+~R~Oz3Kp-1_pG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/_r_e_a_d._m_e.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/_r_e_a_d._m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..41b43afe03a95fb90b1a1d4d97046b6ac865ad4d GIT binary patch literal 344 zcwS>*WME_f14aoTUdjOF{D*?6FIDH?*Vfyl^Fk;jf@?wk$1l<67?424oY)D5{)Y_& zTFd`;Nw0L-+#ryYv|wseSC>b~#$6{ZEmP(z-}ancfBq;Vn+pH8&p)f*?|i4(q{G|$ zwdVov61jsv9vrx2`NE)kLGZkpCXuzn|02|G|(h%NjJ- z?%jXMuK3WpJT8W%uUh+rqwICQH`oMznDbp+w|B?cqY`E9fB8Q-*u*J53z}55Kkb3u zx|2yt*^Pl}(fXfsU5>;ow#$p}OYr#DZlQgWKYI6#<}A&G$u%=re_AEInDFqff+UaE d!`U@&glpDT8Ls(N{Cpj2a?mU3+ZQG|008Orn8N@7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/cm_form_configure.h.in.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/cm_form_configure.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..0d1702d7d3c9c4c1a494ef3f7500ecdfbb75039b GIT binary patch literal 535 zcwPY)0_gn!0RRC20000000Gwk00X1|0000000061|NsC0|NsAn$t+#4Bm+{% zMyiqK&mlkn00000000000001ZoUKwzZ<|06zVj`Ci|tlQMb!hPI7anLfD`#- zZD4>^Vb|JS?B?Hh7B|VIm0Br#K+Aj&z8S{9{PI@E^8hwl)tYw!07Ogv1K|cDt&F+Z zwA@xoci^g(Xc6vEqUKg2j8tv~+cPj6xJAsA1B$;Ux@kJ<<&gW*$n6z7)-n-EHHqz+G7 z)QyFA#d~Kmh3~?ixW;QpWWn6i3^)ZdN?Xx)3?OV<7-R-C8q`ND8M$SMua3D>Dr&?%Z2|+ZEV*9%?nDjT(pL{Y;^KQ7%-|D5&_*yVXPL9y~Pq9 zl6=12<`AxS@DQeHxXO2*;UsLMdJA|&31=7EkhVLtf<$DbxwKE9DpE`84%iAt7O(dtp$Wwc(+lDlmh@8{l#%0l8F5N|a6glBx4W^uNkhxhUR Z`Tlpt>fb5Ch(Nbh;a-D27wLMJ z+0LHPy1=#G=(e^6atBjc_+5nzEdviWCeyk7s~qj^Zn@Ug%Il$J+Ll}HYIHyU?}{|p zI(0QF4=S6Ts=~sf6qlxiO0Cy@rdU;@3QoCaZZ6z*wzY>;x3arl_banG)By$W(DGeb zV7toYW(E(!HStlUwYAu^+^pATZv{$Ck!jcIhyUZgNi3c$%_rrQZl_S*T(BdFr89}`9$6kL4n0E z6a1F>)Q1xin2c<(3DzMnBSNzAJRkyQ zb1~yF#lC#36tQR`urLj2BriHN7NHC1E!rTSk|1zRkP*M7Fy^y+!LFwgrabVeh+#yr zT`~%2Qw;fz1HwYDL-R>Uu5IT6IN}Hw-L`o*rOt#E3BJaX@yJpf^GFK(=%E5a+SCrs zLEN#JdO!q=t!NX$v6>YgGr0r9{D?Ma_D~Mbu7_sr^O!#O=2H?NW^6(FN#9)IKkmNK z&#BthxM=N2+r^Ai;+7>&R5M1N8-pU*sI%(4n~LLMY|&O`o#DD^ClB-O^x=kdm`V0Y z;cQiQf8fv=#3}c>Qf^n3W@B&@b_?C1RmmEwWBOCLTjrQwJ@xp-M&FhiqxYq*YgP1_ zCOZr$^}lYxeoyJ|>Gp!p<#2fUl6cJ>A&%___-kjsj0%|LO6Mrx?;jh(#kMj0`LOwX zQK#ivbMIetOgQj)=b?;(Bg(j`RN9_u_WK&FAdD^zH3Px2|800b@xdb*{I47j`Q+ z51r$;Lx=22q3d1WHIHs0eivcIFvK;9?)OKKA(7*$&AU2=jA?*P+HGiAzdm;NNVE?| z9f%|7-*Xzvg-;{=Zm=K+>age*7nHx4Fd7_y9BMTe!isCtQK{jn!ruh>@IS6c$^3K4 BH(me$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__arg.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__arg.c.i new file mode 100644 index 0000000000000000000000000000000000000000..48b6c45e048404a537f2b58935641790b5d42a5a GIT binary patch literal 1668 zcwPa727CDc0RRC20000000u+=01{jP0000000061|NsC0|NsB`%uC}KG|BF7)F4|q z*Up@x0lk?300000000000001ZoXuEmbJ|7_{v3YAhGwSV$~ex9+s0`!l|dLaSYjj* z*Pj?!I?N?Pr_r5oNZtS5-O~#=0VkbtI@Nfv(d|CF`|OKWK00{Bs|5$p7uh=JHwy)w zs0+t0U;YZioH6jlT-}B_gP|zWI8gbrM7wgR**pCEVmc42w_5lWb6_Sg=t3>eyhL&k<^$ApRL1$KWr zHa(b3y@~5v=+^)(Ikq$O(6Du3IYF;RvmHDF>mA+$e`Jow+6nW_eP==6om_eL`6z&q zJ04h`4`&v-Yo3j*(iq0uADi}tQKJpa3-g>j_rOIQPfJ&BUXCn%3oV-X(+_Odp%DA7 z6L|R5KnA>kRBJR1acTRO0j6jBMB31E(Haqtnyv;zea9-%C@J@Iw}nRcr@poEZD5&W z#PkVdTWRkI|9y68PKu z@5@zL`WIR5$c2uZ!DGyChaUc^RIm&`XdB(mDxBfAq2QqVFCnOjONjD&dHzi(utA}nuX3c+hpq(#sysAQmwx!+gEl9ZUwUkqzZD4HV(< z>FJ$e72-4~Bhhb}N{;c%!{dox`$_`k|7F^w61($9s6X5(VnuI|sf& z0Lkg3G}O`3*hIzWuolIhnrI9+B@_!L(;rn6cf$i>?#Iy(T+xH8s(GnI9^SC3gmv2- zbbA#O9>YYY@GeXWEH3OAYv#V)f;+^WHKNYgZOxjUnS+_>olj}yLTR3^@WB~3CEoh! z@kS+1_1$xCYqEhJZBL$*?tR-7+b6wuVBJ%AXf}0Qf3<+}-hrp+7~I{#(63*2sy-tqLVDc<)*O-VfJP(9%C>t-@KFV?g`> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__attr.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__attr.c.i new file mode 100644 index 0000000000000000000000000000000000000000..29fdd2247655e0eb760b10cbbae67c951b33382c GIT binary patch literal 1671 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__def.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__def.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7da8cb87d4041056dce4e85558fbed743106095a GIT binary patch literal 3157 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__dup.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__dup.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f4330820bb08a2c0f943b8537958c5a4e52764d6 GIT binary patch literal 1687 zcwPaQ259*J0RRC20000000vh801-q00000000061|NsC0|Ns9fWIQ=mvodE?d|)vT zXdJ0rTL6v#00000000000001ZoV{3WbDKsG{%rkpYdwJA@oK5Sn#_=37x15 zCvV>T4#R>m@I_Lt!h*q2R9PIBTx15=S=56kF2(k2mtvc+V#%dM)4(MxSi$Cxa94y` z$zlT%a#JJ_EyCiC8Bhucvq#8TAyGlh%aCV0yMwT1i!f5cmkT75>+r%XhEPfo@eo-d z7E!fiS*Zesgr`hGr(CeFd~2^0)b1+NF$+`R84z}pyA>}NqAHGBXgcN}ROA+&g{xTJIUd>Z37sd`-%*oumDsg#xuZ(DI9w{5r z07=>r%ZMIRaU=?mEKPSKMXMaMpfb0OO~J{toL*8{r(OBFT8QO-9x&l+wxlXDbeAdJ zSm29LPP}7LNfJ^^M4E~fB`6YE%$297|3|$AXgr*Y2c|NuyCM@M=0^uhg_Cb+}OdDI}HF4p6LX);10obZsBj+85m&wGx03nui0D=?D1q|TexC7{n2z_ zJC|^Q+KwB*$R67PQU|UwTNB!rPm~S5jV-T#g$VP)9@)XI0Yf`*$k-6=m@qND!0t~+ zrU#R$H*tLn{TiSp$99Gu8n(uk6ZF<>wu4JxU84;AD|0kbPM8<&wFP~5a_iZbR{>nP zqk-l5aABdl=Eca;#xUOg$h61Cnr&c?%}es!0~dKbg|6Maxw4c9Et>e#4{X<=5c{qZ zc=%{w2E2e&*KCU7#`Y}(OwaZyX+zINYm|7@bQKxuJC7gP?^kcu`-tTw4q9qy8qC-wYFJ`N={7P{8)V^#_OonI(kk%T_dK7_7wiAXfw)Sk}#fN0{?iY z1-)Dg{=8eh?`5ofODBxi2LAf(`^NfXJ&d89h+^5p*Y(g_v|FvQJD85FnLX&VU)b>} zBxyX0tGpK(4{*{ufuE0$PmWGbj*ef$$*-rce>puq#^NgOv4V4W(e6?fUp?Q|`h?LB z!-%K6eAKzXoi63`jNAs$>s6+X4x9C%ZH)$Sh$_b9db5(k8(dXPDb@U(!9l?%yrMVo1=h`zekn)Pu*)_W#{ zd6gv8uGBwjH;jAD40eJ#z>0zzF^Z}J4=DJQ2|7SXMhApu#b&8ByD$ec)4QC~jsUMP z9S_*o=worG4tYU>}*&J=eYotLCeYCVzI=&y$p7~IxT_z~#QLG7Q`+eu(fNL2yYRy~Xw=am(DC>l6RD;x z9+z3E%Q0q2SfyoM6c}zzxN-Y@!>jeQ&m8gSXx@2#K# z7uSY2xcCXfacy}Ee8TcFe1AvAH^5rZrgtFk3J6od*JtueST`hcW9ei%-n|hXP{nImpKJM#zw(B~s`BtC@ h2+fo(CAT)RJH0;BKE2)Cfn~A&2Lg?de*r8KjK|JjEbagR literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__ftchoice.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__ftchoice.c.i new file mode 100644 index 0000000000000000000000000000000000000000..59c523789fe7f27794b531111e68605cae447651 GIT binary patch literal 1342 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__info.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__info.c.i new file mode 100644 index 0000000000000000000000000000000000000000..67b59048111d361bbda3b09faeda2fd8055a68b4 GIT binary patch literal 1453 zcwPam1ycF|0RRC20000000nIT01)s10000000061|NsC0|NsBWHVJ1f2CzUDe%ic) zK)ek86)2|w00000000000001ZoXuBlZ`(Ey{#^fxo7WF^raJM4Zfm*~Q*1fbYDy^wIzBq!)qo@D@#VdsH}e8o zNgKLv-uw&$K?sCAD^{@}FyJLi%(Feie{?%_tn ztRSfcnWD)vNanG)Ar=%IVs;NpA|yKSSrJo4*$u=MT7sD>`(ln@vQ95%Da2CpgvN*p zDNo7;VTDc@GMW_wyevQvSqPe#B2t#*WvZBM z&}ze+E@%~70qKR23ci$>p~}F51y5qH*Kz%E!83wRoOMy)toPO>wpEX(Xvu7q)W7K z%5fnyi4PDp0~%N;T8dud&}E3?9$;Ezy-Ws$jgp`j}+Z##wImWHlw{ zF&1n_s)fbO3>t0*HBpyOs5E7Po0sBFS#qKC+Ar&4@_LR;hYp1PAiA^z2iy=Qfq&ul zojx?}5TBbCT)NTFpGJTdf$c?C;19s|uHe1v^(}Dzm;_E3R%m_z?szhC9h`B!-e}r) zy>mE2Z_kflx$;((9uH}(Z;`C=&4jEpQT0~RkxOSWrO?2EBNoAW%yc2g-2 z{gwK#Lu$-8y(OqEsrmK5`4k26V?q~qschO=;*#S*UcRL<(lJzj=mHW ztyh8;1!3En#w8jE`j>97pR4re>UO~ExY0O1B%awLw$AnxelOKw#9)#UnqdKd`CtY* zOEd7>&El@ZNbyd+VZ65R=cnh*_1mf$Lo?%I(ZS`q?aZ5v#@O#qN6xj|Z#7@K=_zD+ zdQDlzJBf7*-A)(2KRM|hce}?Yuc7FXa(Pfl=mi9c}*FX3ggt;+c7a986aray=i zn$zOm6a$aCoX(iy4PfR=rr#ab^OP0%ZbB;VE!31OuuVFnJ{;+BOZ$E9QZPq?ucT#e z6Q0X2@XXM)^32fn3q0Azlg-Mktv&TmpU6beWtA%ep zPXsaVOUqbb^C++{bQ&Ku7P{ig23*8>i3c!ZIoJOCEh?|@L{1VS<>SPi>odE5Z3pL5 zb)cX%Ww+QCQWF_ZaO6)!tTD=X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__just.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__just.c.i new file mode 100644 index 0000000000000000000000000000000000000000..07c88667bc7ac565cae2032b80e7b5a8595caedf GIT binary patch literal 1422 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__max.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__max.c.i new file mode 100644 index 0000000000000000000000000000000000000000..fee35568dfcf43f265931dfc5c875bcadba784f5 GIT binary patch literal 1440 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__opts.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__opts.c.i new file mode 100644 index 0000000000000000000000000000000000000000..29acbbce9a5de50104d921e4a224da2c4e897aa9 GIT binary patch literal 1539 zcwPYm2K@N|0RRC20000000qMU02X!t0000000061|NsC0|NsB@m5ULxRlDS3q2$eO zdppy|Q$lF~00000000000001Zob6a`bJ|7_{#<^=mUcRj%Gk7%wsD$FWjKr)kQhnW z^(RJ1Cv&N|)7%L=&P#uL_f8VVFF1W6nY0s)2dul@XLp}{xwH2l?eJ;9Bj}0zO0x4s z0j;NVR;iKrmH@7x4rlr9{jk zM1@4et0m=y2^dnAQ3b7HLGSq1tO;tijp>9&888l7cFo--D;8o^fTXIBEG|i8JkC~$ z_Usz17R=a^Rkk&dNsQ9)D}@p22rO8Ngr)kMny~ZLJY#BMZJ;Ggo13o++`j(Z7%8<` zY-}hCl-7A_n#?!-(QEwp{kLKcn8m7yx;G#f&%3yWj zZK*|sgw1J{Sd6Sh!(z}IHGNWtsR}G!hLw^FY2vy~>wWF@AtD_T2)sdfYWoD704Bb7 z;`B)$ns$KiO$$z)aOh1#KndS=!!z&(V7q7V!g2c+kl!Xg34#jE^T8QUMh?Lp$L)=# zeaAh9Bh+@i5Jt|}2@yK?$(LRT9bpdA|~wjVmZ z>B#nBGW923K+vx~T5=tC;G-U)%8H#zg2<6#Ix zZ`3D#07nGfwU0)mG=}l^Mz%AyYP7yRwvV;vK6r@Z8|li;(;+cSXwk->Ug&tP4zcIC zp^vW?GT?_=wMH`#r%pgDuze@cqz!xzt!d&>(=%YG?~)QtC*@}DHqi9?G$7Z$^@%+~ z%s_)|Ds3I%AFkfWtC;2m4qDyPdN5;`m|=+>Rko33+JHw(+EVShD{ePqg|-k`g5##@ zJk;0ShZE9ZM#%-m-covgVABc2k(W$SGpnRn3Y>)XKsRVA%FsHhuf@$UM}4*S@yT9HeHd|=q?Dyd;Lk71 zg-%{B{Bpj0)#0>wu5TERE&TZLgU0$*HH)E{3c2iHwk|r0W}`9o`qL4aIsI1iYbQB` zG)rb8FH|SCE}+}#!gmJ;-TiKN|KKrne>i;n{oz3ui%b5F6`aG@&9-K7Z--949xNly@>N#e0VI|h_KHHO-I**)VRv|YjklP>K@_u$6<1|K@wm>|oNMv{%Ka5L z_n-AX;{{$didm||H%Vv>95U*|BePK#wfCNDyiX;ItnPOcMqLXJ&d51e7P`zgz*?`V$fr*kyXw^%VdB literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__pad.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fld__pad.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b41cc74e9f0cfd20688fda6e83e143200638a971 GIT binary patch literal 1417 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 R97l% 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/form.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/form.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a21dfeaec393ef8dd06351a47d2734f4f54b0807 GIT binary patch literal 4220 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 S-)zHze|;HuCjJY)dn(tX+8z=B literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/form.priv.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/form.priv.h.i new file mode 100644 index 0000000000000000000000000000000000000000..334fd0082ad1d5c2d785b5ec0c26f19b5023d2a1 GIT binary patch literal 2302 zcwPbi2m$v10RRC20000000_PS02pfk0000000061|NsC0|Ns9F6w}Q3C(rEo=}9W% z1Lc`J$Td&^00000000000001ZoV{54bK=Mm{++*~IQTOkoWY;(E%@A-O00)a8EO6`Vn88OrS^<(-qdVBm0KP@_@Ub;hCQ(qxH0hF+gm37Hk3#!qAB8p+*+S+yM3c;EE;2D$ z(JTv+LPTAfvYP3X!g-L*M3;(`f@DQYk>y}WCq*C=nan7t&_YhL=@zC z8p;5u6s2Lg5J{m7rm2iYPVHhY9_e;eJLssRL`NcsNhZX!Yv0|=VxE=-Wg;&!8EPlW zB#g_5HQS)ogt1)6N;U(jgUK1b%wZv0(4|Eh$tiyeW%jb1#4?|E8)%Vaag(yZ_U2g$ z(cCgrGV(6v%pHn^;o*w6X-2t-mbg}IRIJ`!i zmRSOIh2o7;9E4KhHxU-R!fewtj?;T~P?#o>RGNPJf5e*y;lU)m6Ux&%E0VN;f3&e2 zILl2;R$KWzfWs!DI#^hy(GU#0QM)f=GxGw$D-kKnG*fo%x^-WAeGf~|O>*slcVjpv zSuTwo``YT8eL6B+{66Z^jpd!&R~~`FF-G1k*#k00w{&5R`du>rF?LMXtb*b2}xU54DF+okFB&Ou?ET0_gb?b5*VMl5Uq zIR=dl$Fq7@L&Kr*l{2V?0~77uR{QT)mi#!p@R`}6m;^+i>T>1Z+a!*sF0Va$&j%hNPl z@Cv*_Gl9^|c+R0TifB?Iau7(po+|rj$cZc$1lSjHirAQP__lq2zAPU)^zvn6Nd`av z*lE4c3yix69v;Z|tEZiv)p}>udLhv2rb-=FjR>uxD08|C;u7tHg;%`3eLcLi`{vqv z?RO9Fe(Vr92h1r|*dlSVI9PGN7mq@#0d|9WZr}I-v<4{P4EFw=0_&AohDiuRkccA$ zeiEhkG)D?g1WsDd5lFcv*r0cA_AY$K{QH&VXs{3az!D)MWt!BJWm7Zd0Y&w+2e?0+ z0l(>i_u2!BbFC$2!(_%C`G5yT=8b2MX$$Ow0=woy5~5q@VTPGRRg^F+vmL-4urWHs zp0m+5O~g#1>nGx#mcdNTull(6fn6H6{+VOnG{JsRV9^SdQic`i0_U6;618xa;f%Jx z*6u7;OL4%Z=oA-b-}i3E=8j7}W<*d0m`;zCJAK19Y#DLX~(#NXe2wIJg8x27t{6;?h zE_^N`ZQky{J^JB9e|^zkpZp~B`x-}4Z&c9c?dqUb_bQ=w_G`ggZAGB zTNSmWba4bOJ>pK=pV!5!A?QqK)%_c_RoVN`*4pIPzhYef(s=%~-T>N{#`CAVh)^Ip zT5>Ol!!i!4AtQ$=tOG{@$_FA~Qck%+@|v0~9=YID5%@!q%!+yKfZG1ozedP#LZw3OYX^++!ZUQo#jltpIz5+SJ~w-77++fJ*OQt+h%Zt3z6? zVLC&pQg`HnZ%>eOKNo7yf+9S=1)IpJ+!U)3v7wo(*8L%#w_`(VwsDa1&#R4p5-fD+ zWY2yk}hv*`HhgQMJ&h^7Zqk-l--Km5aryu2q=LF?bjbZzJK@A&+t)Ag=?UX3*Mz~k3E;;dgr5J zYVXJPM?(x?rZcn+%pZRoqC9mQl(Z|}GKYOFzbXC@URCf93#}T&VWRQX=@6bdOl0;g z)g})T-8jbhS)$XSF}iq;$hh)s_re+;kwTfxt`&%3;0~t2h*!m{ega1 zugTn>#6j|vUyru&@8qPS0;71~(B?ZWB2=9y&riqns4H;5T5z|cMbHBRhR4q#JZHP6qHkON;Z>XZSpLp#_tE!*=_4>ZFOWV|X Yj|NX_J+4ZvHWi$Cnys<_3o@e6#{@QyasU7T literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__cursor.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__cursor.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3eaf48731efda3fa89c8fe07254b6d4081227f55 GIT binary patch literal 1413 zcwPa81$z1b0RRC20000000l(=01dDJ0000000061|NsC0|Ns9**sw3I2wvW7*nZ{~ zBvpd*k)E*t00000000000001ZoV{0FbJ|7}eJ;P^mS#GTDqz}4+c<5eGAy~(hsFbkHZl_{^U1B-+iIB$y>@P)Wx}XiRwcG?zFQ@=v`DQE z?T|LoDK88>sOU>Yn&g>@*?$kXtmWLDoC$y&eR1j1Aga<{8ROlX;Lg z*@p^gF_Y|)Be%4vA4ob09JLdg+ghdMMxqk#3%W(qNe=B0zdmk@Ipp=Vjh|KYtr9rB zQ=%++aof|R!T}}zwFUM|On-^DCw%&?R{tsS>KJjYw}dZD+i z7yh`|yzdpfd}AhzmkwUPd{tk+YicpIS5j?yxUI|Hy4`9`gVB7#7T&1Se&%I|m?1Wc zv_j`nz0|p+L2p1m9vlq%gF*k`B@KQ)eEHMi!2sc<{zeRM=~=sLczp46PwON6A1A5E zMR`@TfnJx3WnnBQs`snH4iDG+qCf~ry)b7Q2Rf)&Q`2Cv)U{IfHR3u|V%tbVbc&SH zO`nAV^w~`AsK(fL;9S-N0tT0VDxr90p+0*sja}nppqN_#3_BR1>Qy9M%C*VG9=a0p7moRT~}U11Loe= z4^J1-NWU+J=Z97u!-$pFE%SXvop0+cScp~n{T>gmvB7iA%|3l-)vj2vj*)xu2BTG3 zY5JZTr@P(O-s3&q4I{6cJ&X8Fy}u~Z#jFX6g`sFMtSz^8)e@iZ4p}@8{SJh%_{o%m TJ7t7;k=6gK5SaK6_~(Htyhpb5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__data.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__data.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2f615bd4fac122bcb1f47e1591e49184306bdaa9 GIT binary patch literal 2055 zcwPYq2>AB^0RRC20000000+ka02r140000000061|NsC0|Ns9>!%6Bvn~8Y0b;)vR zxvb#57Jxbc00000000000001ZoXuEmQ{q?_{w%-Zv@_KU8WCq|cYCyPH%e%;gFppr zw|8rc3du$8bjYQWAUZw$-{(2^CK6h)ood~hRF@6+-1D6Gm$1L{j8BDj=v2*b6L~ew zs2bGh;HRJ7P&*NV25OQm{X|e(E#lD6q>3$aFk4Ec@WG2%TqDiJS6^R(% z(pBQenFuYKu$pQ@!PHN#ghiPmKfa~8NK!DUapucd##iL$XaOwc``Hv=XNG;hxfr>+^H9h=)>b1%4exRS-Zp$L)-+j*+405!dNA7vQ z<2s+MW6(G# z>#-}L@%hETS?Sht><%yo3{qy=*uq~f-<+F3%ri7vE@^Jes1n^QQBkIhEL{e%KNHoo zR#e58#h9Z_RTQG#Ki0=1QL|3J|x;3P|#3f-#`HB;z>MMKwUsUJZ) z*zd0EW)A-JPRDy4eV$0%UM4cjL|nGiU*JL_f7K24Yo7j^-=6W=uT=J*6VK#`t*t$z ze=T?z#nhh&Ie`P;{$dX5b93;|tJzIG7TGax7=N|!=kG6T>vwrGrtOJJW_5(?x<1{m zRL*;?i;gpLTh;CF-S7}g#B7A^#;*s~H67G{q#qiMANCu6+dp`NkB2`t4jT>n$hqX) z%<22>TBRaxGLc{-i8EwF9AmszFVPfxm$YN)WrY6+wRXfV-+R8N@*7;$_5&Ho?AACA zV=RsfgIb(O67n99B_*X~zBSoOYP8rup=rmPms{&U1b+pH4;a z5d#^8F`4XvC=g@@BLh~)%tU!`6$?L!ZV9`_HRhW}yZ4Mmpi)zPV{wJrLYezmvP2Xz z#6;eRuwMC1GkYS#raHZIi45`vK=uSp zV$|`|Y}8fpsPBiPzDo5jTYWe|zkCePcriiyw4TPoEh!T5AGkgD!^g_ME%n+fD1sr_ zS&ae3YmU(kAN>rQyh!7}WDiTuXFh5j^7NYz8|Mdb(dKf8fVqN>EJ5YFccH*D7pU9C zp5##F=^qQZ&-J&Q;9{ z6jih8js8^l&o!Jh)@nA*6uLcLd-2|jjOAV+^L3rW$R4zP|^#8q|v%7TgzoQ2SS{^~xFXG>VMh0Vz0J*73 zMl-xnge&#){$#3ozW#l}KYWe2ca`U2toz{8hG<^ohPI?vP2vL2iDgao3}hrgs3@i5 z`z2c|Pv$Z&hVgjL07mQD4DUoLs8&vZl?(SouDA&a|1fvA=v~ax2!|})5yt(-KXK*O8YAk%G l>^9t4_tdIasnQo%kXQP~9lP|l%!APUBu^M1zXRUOheVA67eW94 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__def.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__def.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0fb0f6509ce210895ab378d4e229a74d38c2c2d9 GIT binary patch literal 3310 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__driver.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__driver.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f40ffb32db0d6857810f9776b926228d300b13b6 GIT binary patch literal 23663 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 KL;nEJFj-|s02qA$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__post.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__post.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d14c90ac1ed7d3e55fc24237582b406a12ad66f1 GIT binary patch literal 1734 zcwPa<208fv0RRC20000000xEt020>#0000000061|NsC0|NsB1X9ex6c<1+?Ba4Xo zxsIst;d!C}00000000000001ZoXuEmQ{%`H{_bDVORny$jWCd_O>z*nB5WCSXIm~w zK=`B*(iqRJtZ_y%UhYVKd!8Q2Ha2iqTVYdiQC?fq{q*}Y?LBz^hOZXAr>>emXn8lS zsGVAL^urH-rM?z|LN%$Di5ApXiy})ZsS2CCBJI#CFN5}GFM~D~dM3*frb(7G6&|VYP|MbG76IrK-rJ@$~qA(QgrqC%5Wem`vAGQK$;}se|Rl znQwZsIVz_K5_T(^!XmO74b8v@tMq9Ov#ij(5}h(v+QhY+)|bZXYeahCQt0=iYbS8Y z3uzqqS6j6m?c;-UvtJUf~&q7tUZ{oN&(kE0?CA<@&e_1NjUnFd!10Fm3a#f1opbg)ARjn^k#5|)zHrSWSak5$ zjXZzEA$I*y6yU3k3;WWz|XTdphbI(Vq?vj}DHG4h}!i(Vve$e1ClSJ(^2@LI=<3n>~xO zxc_#q)+3_tC#lS3^-$*mH(f4o3-+6+K3^1Oby%Ov0u2bSV-{+IsfK*9;XeJYT0Q$8k9g(xUcCd$rsQCiW~bsZTIOu zw9-_RrBQhHa^o|n7dyfECDU@PAd7pDC|LuB|WuztJPVw$Kf@#{Fx0&rjg>NvrNEc(VF9PwvD?i@!{$ z{jSzzuLC!_3`Xtkx>{>V7To`cJ*Qff^er{@v$!p{w43J}3yr3!juTB09l96KI1~*lCNgwG>RI}vs=XRrPS@ih0a$2k9M&w~5V$rTQrXgzI z58m^3FDh!xEHo#s{xMQFdPes=J{_!=xJe*}VWDv4@)*(vzS)O)J`DnXyzr*j+$314 zWjf_WT8n=!q(X)&KGo3t#zC4&?VfQLG>154=K_HreC0Im z)^5ao7TJ_~T^)FK()!o`4NotMFJ@|2CuKv@6D%zMJxPBdMSmGV^K5QNx*{#6S<9#DOv#GnUE9gcQ%YQM;tMmrNZ`m6D5X>HhJ37TlHE)MJPWOv-Z cJ*9uI=l#Wre6nwmD6;zhbeOpQ1GFsmXG=p}BLDyZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__req__name.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__req__name.c.i new file mode 100644 index 0000000000000000000000000000000000000000..634e1ac1c4ea2d3482e8f1066a0df385ec306ac0 GIT binary patch literal 2005 zcwPb32P*gg0RRC20000000)%-02VL+0000000061|NsC0|NsAv?fhn{!NAtPpxWHr zWszJ)3Yh)?00000000000001ZoYh!+bDKyK|2uq&US(?|IYhQ|b-RfZZ!MNa7JCR( zfb8UQE()QMHG2~181Q40eD~`fKmy6$R9$(m?kJa~>FNIUWBM`Z@Zbp_4Gy4}tnX8C zy~v;)b>R5z+cz*sIR`J9XSZR>VUXnUEX+g_>tM!F7an;O+LJvBZOqe^kP=mckg(t> zpWefD8pau)=`bfVlQ~3-FumqFWC?`vJ*;^uQ6QOSp@>C%4Pl8Ep{K;3Ef7pr?uGFT zLMf9-gop~WB+6Gj&XmJ27fUXooh|sDZLKOmt&UPXuRg5=9(-BZ*mFbXPiTi+BrS+=G_%F3`STW=T1su>3i zc!f64(-_U=N_LjuK`0}B<55Nw5}PN>WpYaaijsIHl%*&CjePS_c{ojOxQcX96>*Yb zdqE=%aNW}3()5SU#0TVX4cq?+&HxPiBmB*@`#P`>W0!eeiRQRq zj>eYBaL2TJ)}(LR=WvG7w&R0kj!Yk+eMhM+0Zrx+%kdAbB!~L70S@xo@JOLy+Z37BjcPbcfmm%S8=t8* zwn&yUY&T`)p*&R|c1VR8&Tcr?mZbiHMVBB>dMhMXy(&#s33kG&p(`{QE>Sy*Z`f5c zM|ruiaj&DVQ-R#KsmL-O*F6n$WJtyDs=8g3w(TgkP>#ciot0Khq84uR8ww>Ho)94SP~D%a=5n(p8Z1f8{vO1IpF^ z;8YL5#RS3%P_uG@g9U;4UB=TG=K_JMp@5f=97U*Flf)k98-Tz)!7b$#X7(1 zXz;wCK=8pCGdu8{iQ8iV``|Mh2Zr{X209UN7G5+61Jm`IES6CxY)}R!v-%B~2BpAhkQ7jZ;_V}O`%qpTt0e7XS!}RF zQS-4$nv9$4zH@2UC>!T+in|Tp>IB7sGiXckJ5T2AM&sxlK1BU= zbk*t5_<8kokM;%q8HABoitN7V{P;Sw6w{b`EkLoK$LjrZvtRFc4-Brhh_hxml!|o;g*fLtQ}?CDh@uG&oz z_j?1R17E&u_kZ4-IUU3y2S00tqaO1E=DK*5Z?oXc=m&;-KB4y-JgR~tE#lm+o7y=l zcE93(zLZ?6G42e#%9ICY-PJqotM)&U!W8F5_^0<}^47hUS^9?w?C~&-76gPTTluYi z3n^Yd=sxjS^13CvIjd*jA0{pfY$q5Qes8!Dsg%;2%A9^qd*XC`EKY6Mi4$cjU{)L+ z;2TpE(mM~8b{0;T>PH%xfL!4_l@20bf=AR&&{_ibd=@w;9& zTU>TFHE_ESOLVd=-q&~GhaZ5xeG*sj-6_2I$I%NauVn=G-i!h7&&7|WbPWFn7VDIm*QwP# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__scale.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__scale.c.i new file mode 100644 index 0000000000000000000000000000000000000000..37d8cef1e797ea4620c8601325f721caeecd6b9b GIT binary patch literal 1294 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__user.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__user.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7733c8ef56aa034dfa5e45356589648ba2a67ec8 GIT binary patch literal 1321 zcwPZ11=jii0RRC20000000ij(01gKL0000000061|NsC0|Ns92ZVw$Gw7DW|=*Bs6 z78!dWZOfJb00000000000001ZoXuBlbK*7-{?4!1q4xn&hlJjw?d95=Iv|32U^BK! znok*Hi&$4=7Lnv22#S|mMq;<0Eudo0?F$rV=$T?1E;G07I!a3$kH zv($m5p(&P-WU;(r4rl>!aSbJt3Jt_U$GqUh6~ql%f{~i_IzuqE4KFTIh?Novj}aA8 zkyI;IXd5srdCnAcbjBWVYi|W=cdhG`#X0Z-%-S36He6?-(jb}Ak|(u@yh!pYHOy|& zwhME<;*D!h~kiS?lz zP{ul8g@H#Y4uk~7^89Y3=#`@iR=L~Q>~h1bG@GOw*)7*iCRX=#K*6_Y%SskVms#6X z;6_*ypID;Jh%sA=JQo`yP$G(yTc*eVMZQJoJYI-3vr5-hQ3#Ft)WMp>DQ|PKnNnGd zf-P9Hu^3s6hRI+iw(?06rqY(jGQE!VzJ)8n^hGP(p-O0p~a8LX*0t0_`5zy0d1Y>_PBtZx# z1nIgb6H+_Fcn1@gPMs~<(4D%chIs%!;skbeL-Tx0>=1f%@ox}O-!mZ&d@l;{r-KRv zkulw(S%`BQ5(nIXhDNke;G;JqJX-n|4DCHqqnS;)zjt@g%=kPcx7>!rogijtK<*kn z*}`8h-^k~Ll^PqZDQVM~u}W;S#EPoR$gyQm#4FZO-ECETTZ|1_Ch`>9O;dSjZ>kSF zq{WQWHN)Ccrhj133B-{bu9)prQmh1a!fivhXe!RpJDT4tx6K^w)eXl79lewsS8pWO zniY2=jVoLr`4`(@UsC!d-FEmKv|0zd#H(|}wb35K@0B@>3YaY!U!s7&e5wa}Wj*lQ z)#`JvVETi(VH`R5@zd+Z`d!nEp}iDx)x+&t_p)}YHT8${3Av=hPWuf_kMR<*y2P!Q zy~J5Vzt@K!4iEbW{r5%hmNK6-n6_!hHE{)s7E!kc#2$hg0|r}Y)XAH@mJxxTK& zz@skbi^A{*sOPJ~-W_h{d7<%`)|Y0DrC(~~sEw zU5@arW0rOIKh!JWSEyg!m^xY&J_hTBYeE;pKu`WNZ( zcw*R`c{x3LPvwVwGbcjBq6c(|P2XfmcEc>gqh-Oc1K|!kkMr>6c=%iL#sN!roL(=e f4Yk}RscHhx=2nwJciI!MBCY=i0(ABduW+Tczd3*P literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__win.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/frm__win.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2b27ee5bb65b1978f0784ead9f1faab758f3af20 GIT binary patch literal 1345 zcwPZP1-|+K0RRC20000000jX601e3i0000000061|NsC0|NsA?L^-%}O*Mj)!Odv= z&1K&KL)?e}00000000000001ZoXuBlbJ|7_{v3YA4$Wl1m9c4?wsG1tG92L=kQhmr z`jbaUhq+Yf7~RRlY5U*1dyw;!c%Jm&fybg9?6GJwQEa5vXd0x3wJ5~$7Osmp zHzIXlMQ*AUB{?bg@bT5aCv0SRx=R%MZ+yTai1W@|vsLW2B+Z&MZw#wg*Q^9heG9T@S*BV!}9J=_9zfol+s-O0o{;hy^!3LClaq?khbw z!oOav> zV#eu>z~0g{Kd|W(;uJfng`HJ}+9;fa%|N$kI?m8Ks^5v*VUGIx&c}}?`nHfLy(^?K zBEKJLT%tfB-`N5CC8oc`+X0`GR_o-DcvX$KHrg}zy`;k^huKQV6%zQ%n`)uAtrlKh zZ{GHDVP4P;+|Qn)<`}gkAArr~R0xXLyO&T;WmE zOPm|%_xkYN>1qF@-#FJ`U4hM@h4XB79O{|#NzScp4Q(O{U}akCe3Zd z1)g-7T;}99K($}y_UdrAFLQ&Zw7DV~^1g$^Y6?g6(^=qr_7`x3%U!E&KZZglh1}LC z2oVZny8y*fwQKs#8l@8)89_y>8VG|&HeAG6iN_eKvMc{}ows8=(~?AJZ6!Z?*cFav z8vP_`vFQL+8ZTO{Zx2Tz=KBFgtWi44Do((X@>dHPTtUY=^yEqPa{L01W>ac-0=3iK z?xPk35wK_;c%3Ge?(-Hdd#HjV;+?n};ajH)u6z6f4ZyEt=6UO$rvDnX{(1DjsGWw3 zJEm|TYXcQupQ{+GgF=cM@j%)19x4~QRBaU|2**Nw!CTbYcqK9^nxS;i+_e|QT;-y7 z;PUuv(ANE`EcVN|ii!MmnklzM6=r8u<@`6OU(V`~DB+av{eS_Hr`10(Km+PuFlB^i Dum_nV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__alnum.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__alnum.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2134109034eb6358284a9cbb292edf4fe6c8d668 GIT binary patch literal 1289 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

_c{VijW2{;*DqfY}z z-r_oEm#5V2AjkN)I~-%s4B<|F?;W4_dk#HaIK%#-b2e%qS-bH_wp05{Hw*Z;NQFBI zSOa)Ohknnc`!PJEDR0PQay7RF+pI?ENbyHN8Y%wBKqJM=U`exaa-uQ%8AN`X>P`=Z m%(JM`%Pgn?y^pnrJ{WJwUU2QFY`Q7nAg?QMQU3!lRRN8$C|=M2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__int.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__int.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f9847de53f2d86a6e64afaef670cecfc9c9e3547 GIT binary patch literal 1444 zcwPad1zY+60RRC20000000m?K027)30000000061|NsC0|NsB)+GPgy+V`xj7h>w1 zzC213gaxqx00000000000001ZoXuEmZ{kJ}{v7{`X?jg;&H<82)fFyxMPL$Ik{}>e zqqaiEtYI5tTi!JZP4eG6vuoZ$$R#aT#S$21=WS=6nH}3GP5`~ymwko zwNYr_nPnxcx6vplp z{DiS!3SJaXflKhC1X97k72two<2Z07Q`BjcCJ^0(;ByuXKu%*Ol%|GHYcOCF7DO?M zEf_$KTnS@797*UihWme}x@ zCgfvH_-Q!4&4)}rr)-O!ZSN`=#1+GW$}HEQPWyT+gd zzMS?jy?M``z+wIfj*7*jLh*;f;RiT6EFJz>`u+o4^Kb~xZ4B>rEyEyO4VVu?CaEXk z&H%)Lgg9XyCj^v{5JV^uL^t!_BZOetcpy$TWJ#rcQZ^7J2iv=hdyHb;^?1PLRL8W0 z#(6)a008LqH1s4PceXC1E4c@ghz}rl=3cX2Lwnfk;xooc)z{qA!NP~iseXHMway~myknuV>kwLnP!b$3W_QC-z@T%mMjaC zkMcg4Bxf0vj5|Xog(wG~=4e8tXc>uS&W&xYxD(JXwhAWA`2&$xD8(__UO|-r!7z8j)UIDIx?K(Zn z{3^;5CelEz;k@_^oHvL(R~lN7)M;VM*jZRchc|*%GrdK))^W&r)J|T8Qxg17E%o3l z;_eH(x?2VXsHD-br~kjPEcK%(fa-{O*Yge4X^J$J)T^(0!)ewq5NZ;&|DBFk^)pO3 zAJFmJPko%+NLW%s!sdi?uZs;I*XPig5Ii;^rrW-B5I5Nr&4reIdJpwVv*RrD@=$Ys z70_)=(rUP$irj|gmkjwA+TU!FTkQFmRC0Clu8enU40`5UOo!_#R%XUD6nq%60eB-f zfm~lT=0`+J?XahlZ0hY6Rm;@t0+x-KnNWYR6U@$>8@2p?SSHL+#SVMMu91;^2{nG>LcaCA_6(TvrvH&A1S-{_av-RX3dTj1@5xu zexRGcr-)GcCI-&l{Vtyi2D`RNIs8=oOt(_evQdk+EST&)l`R|pYL3hd)!TgUOQ%|9 z{;jvkDniNia1eTNtE77HUfdL4H`bAB*zUZUQ|iQ|XY}P$bK_w-Ykdpxm$knY{{OoL zE)t*vyQ%%ruj67F3OVRtd4(RsmXiwXEioz>GjjjNO+tLw#iil(nZkBCZY7L|hwn6zBR; yv`(IZXpdJP8=OUvSqGVj+MMb88 zFz&~B#uAQig&_SdVTsE)rx4YQTIG1dsKC*NHrCB$gkiK{L!CAq`)29A8?+&m>lsUzE!(dy zp}C*EY&)=BjEYM!*%n9 z3L9EzQrjC-nG3G0_Xp^(w@atGS$KY|d$*7lTF>f+k*Pc(u+A zTvr}C^>e6IV8T$xr>KI&7eGn`Sx|`?UlGBvx@}OjrTl~@%K|oM(lpVmWg;%ivi4Jp z1}}1q1Y;KxR!l~qRg?|2es2_V1>h|62@g##twQNTZf}1dc&Q3y1-q*~($;wI~0dGT8GjY_j_Xd;MdU z*{S(0)%cdGSJUrwPV5s))vL}|yGTP(uN#<}Qm3~gM`vCkMT${4W@BgK_MOXV75^Zs zygd-9j8r=DY?n*o#ds9VkRB)?HJs>^ViBtbYd(9dSoP|wGnd!H;cL&AAA}ckPbq$> nYdj)>KY77pH{NHPSj*eE&s7ia9AE&Cu^B{EXr}oaqtfSF-{cpW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__num.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__num.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b62f3f22eceb3318a05891e635725fa08fc3f7c7 GIT binary patch literal 1595 zcwPZJ2E_RQ0RRC20000000sL102Ocm0000000061|NsC0|NsB(2T%FcbP#b*Q)tFO zbm5r27AWcf00000000000001ZoXuEmZ{kJ}{)~UcG zgXJ@3&%t!PIdB1%>q8hYFaj_@u&HMof<@H18~WhhI$&{Tk3h^l7DSp_7OlaE&6w?a zD3&mQm>2@4d^`~_WZ+sbW)AZWoA$_qXEOu$3Yaq@MY#RYFmFJ(D96AtLqA{vTFD)O zALa*1+TFyO9(|0E;(CSZokNF$4iN-?*;OUc3Bu1Hxe6cao~8Ga3!kN$v;#kj@% zJp3&Q1y2%w8Bf0z944MpwnxkMcNG=oO%$aOg98lNwBY%CR+twBvGlQc{0ZJ4mydrgfA|D9+!=%Z&4afG8fmuRtoBtO zv@a3)`rs_t>$B~ehRq6-6XgwJid%|8C>${h0^x_IfI9^cHIYX>pP8H>Q$gCu4Tm-Z z+r3TQO%S(qyO6a_*O}#@T~QtYO=dnfYu(d|f@nM1-=*B6ZB4`EHWzaln=*jShYmRs zK(2?5DJTQt^*|Vcn=o_v2y*Af4I5lY3kQ94fI2e;hgld)K zm>saKycDxaoK-}6z;9oMUX|X~ND7nV^(90do7*Z5@X&|?xk{&fGAl@Yr;H#4`^bsH zOD4rm&LA91@=AVqlpULNio91@OD3NMp)EGjsg%wdZ#8SSh&+{nQjpY1VNJ=zJEI=7 zxUvnclIu0%wTUCyTG`qSs3iEGO83zV0`EJgx=W)1qM*@eD(_!el!mTrLw&-`o8^I; zH1n#>mfmjQk)jDWAL)4Z^{mo_q2nWJ*u&7miIIc_)fTKXIBy%+AaH#Nf*A#RTkQMY zD;*KAnBI9HWgkC7v)1nEXPG59Y?wY1 zMk>uyDwLKAQ1KrhfBGvb(YF(BGnFiP_l^vzROVvofQ!-NS2Of<0n2U&x`}oYbsnDX7%si~`p*}L|WHM@->}?;NjL^H- zIR+lJUJbrLPTi!I;jEv9R!f|}3L`0qG%)rWtUvavxF zGsKO+{ugMK*kuUB&xEwcj6;dfgkFpS{*3^s#Vs&O-^4hqYxsQT2usEI=MR1?eW9OnNz0=WxpBb6;4v8H@m6vycABj1$<@fD(nkYeKaOShC0sE2N_h(hC$I(oL*U zz{;sqS-2_cc>U{+9>x3O>Rj)(>R1`b4}-H>Z-8B_2lp`O>b+J&zv$<2;W+;U4AE<1 zLeULi8VUm&L>>YcZW)+{lZ{^6Nxw&qQxgMll+Qm(*?8(E;>J@45jRG{h;y^iZ<3eT tpe1^Cihq>{Y+g%~azNjM#82;1Zj0XBBrl)<;}F1v;oyu%{TJ_puy@w)2$}!@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__regex.c.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/fty__regex.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7d5d9114ef782cfd58f23ed1aba149f37599753b GIT binary patch literal 2026 zcwPbO2Nn1L0RRC20000000*i702_t?0000000061|NsC0|NsBD{G_kYnf?A1By#b= z9~a_181wW100000000000001ZoZVS%bKAxd{tWzzjh(Rp3Zy8d$+%+Vl%*hv2}N;0 zDv_t{U?A{Fq5=U7aL`L_{rB$P0U$tujHJk&OgUqlyuEvFU!HvdtnM~cXu#yOKZf4< zkqP+kcx3ka$NgS+F!%)KrFk}*m`8AIouA=86NbGDYiy2T)b0J!Ju&gv=#$kyIi0i! z=~I}((z%CO%$R=6(~B9Qts zlEIYSFh7j&*lGjtg~MU#%@-W57=$yJvw+2pPj?s)`OLw)5*ADe2(Q0#+-u+=o?{TW zX`HYGwe$jxe^{IdMZCcE)5Hq{{3bWDI}SG}#x>GtSKV#A-bZb~t9=AmH{}a7;{bk6 zS&aUG(TsUB78~$yxzLK_!r$i0yH>#XHn3OJ?Damos`^$$Y0BUYhHTl2V(+H4c%!Ok z=SLR<)9xQ>Z@%qM4`9ac?U>EkUCT9YV6U|g`|bArZu^Jby$`Uzcd+-@gYQ1TwHM66 zyo=!5H#%X@;I#XzXij4#TYOYi zBIuOOAmMT9a`m$ca=*=?5m{`G_jPbB4H9o2uqpTJO)hu= zDv!R=QG2C028Yn@&~Ki`lq7NwDqIU^#&H;Hbgvsu*&`%cT!FO(%3IVM^AY;P{sa`- z?j;n`MFY9SNj< z_^ptcmUV8eL{PTYeZ->CDlAp1M8p-0ZNeT&Vkruy-mI2Q(j9KNj69!BZ92gcDpJp( z6|(xwx$~Ck5(X@o^99^ub@u)6Run@Aa(tpq>f?>8dj#_{cbs)EZR^q=m_y8VZNL4O z4<$EV+WleAGSAH61ZCg%x+HEvn@1uUf%a0w`^F4kq3(o<7?_C8{C8RVBTu!>@ z(u}eKQ-0U}x#J?BzOlW|I8 z+1zBI5G~7z=joCKyp=&%l0LsWeu~WqAx0r43$h*CRKB-_hG4^s!2s|=MqE>OUeA3P z&KG*)^M;~Xur$8Iq{TC6k=Ae`L$2z?)D<1EE~2B5lt5*6jwiI0u%R!Bmadj~|6$>* zB+&&7-mlRqU8TT&R%L)`RTJyYk6F? z$$G?SXjK#)VfIk+kZCR|jJz)QRH3_0s~|?THGzOG*5%K-(6o!29z>fH#Zr?j(zBz_ zZeY*ljx1=XApNW;_{f7*^5pEHpH=o?G_HIcp$;oGtdoi9K=Wfw0ml85q}6?YAimiQ zrB#8l5NFb9h-xd+H&^M5Zpj>#fs-K=K{6FLh@h|M?W#=)Mo0kPNw^(_iRjkCR!ogM z0}#Z3clh@|2>M?Jy#HtWy$m!?-Pl;_qDnpE`Pc$gGz=xr>SBn<*h|JJir^|)hlVPZ zZHI^7V;WP2iiqy4hg4ByiYO9jl@P>=PPUR!O9odiUB%3~mOmbHO|mZ%aHZTfzM#$o zlB1Py@(g}}+XbG}r2ao1mRoMdk%tnKMXB0&W0mJ+Lsyiouy~c%P~^2pI61ojwt>TT zhoU~ls{)td1cDD?Q;3|{Su$#9w@w`3oYn&3K!MgSLi_M%n+AIL(7LJriQ`ZBxFL?G z86NfX&7%X|_CFgNT3>T+*ygtyf5;-FJ)Rz_jp29N1u?u~;7YkR?}*|oWd)=YZOkUQr<6~q;Qw1j9b=u@I8Z(zMdj_3+cYXai|lKok7Ri*zw4+i{e@?>}m%XIq6tjY`r2Ohu5NYyhWQv|D9f_6_dF<2f*zQ^< zW IzaCG<0YUBh$p8QV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/llib-lform.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/llib-lform.i new file mode 100644 index 0000000000000000000000000000000000000000..6389300e1452afd58f77d997389b696c12b0e51d GIT binary patch literal 2957 zcwPaG3v%=T0RRC20000001Hh305e7a0000000061|NsC0|NsBqQr8(=Z&3YwUg7+? z#>~jeq>_RF00000000000001ZoV{9YZ{s!+{v7`bBKIXWjHFu>ch{y@oDwS=;T+qL zolWzVt?y# za%K<7ho67`H@S%^B}?Y=y%ke(!_v^PxX;2dF+%&CbbN%icl!u!3mWhIBmvXJPl!ij zx_Ken*a|sy#>7Q8nM-WXinnx3I3rg0LLwR`Aiy@<@ST@OOS@8x@JfB&a@303jk6lO1z>7ynWLJ4!c!pLpYnHpfSEo0J2) z{9hQ6(!MQhBx91Gv`s@)523hVF-d3;RFQ&JAEF>4S7H;>(X$AX#IvvqU-ur{sd0dS z=i1yf4#8b2WE}>H5KjC-ZH^Qab6F6uJqE~Tq2mirfB8Gs+X{?Z8}>v+q-9lvj6-}R zSX?+!xh6AK;#m-|4b2h@$fPz{49LjC7bDDs!{YT}r9>Y>1nz=Hr@28qc7Wd|2zSP0530RsLvl|l(>v#HWb)IW8X22r)C!mq# ztu~zsC$y{iC!Ji+7oSbzV6IR!*Ctdv7)yOjG}BmO&~D5*Si``B z}JvI+v)VD%9D+zu$V(pKTg(XtY?;*qEV8M6-m7 zl4Ud&We{3BdX^0Hs;C!Zrp;r41MMcOJdnrggAOTlTFw)N+Dfp0K+!SK6Yu?mie447 z9fMAoH*}#bu>!CT;>C2)%t1aWd~9^|DE49YKK41MVHK&B!i3oWOElPHkvcU3I*RD?khrdJ= z#Rh)JPa4#-!O6*up-(5P&kLQ5fIKEZdSbqFGCCWm%JSo0l8@8-MEulSy;f3@#LF6=ap;Vj!sN5+si3RDVJ0Gpe4fD39vz^dZxflD=# z2{&wH=)e*YmTHPK*zGa%;s0mher4P%WQxBkPo`mbV&LD*_FNOqAemQHP|o~oG7G9Svv_YS3i;FM@ekg5TcGo2^0u~ z85LB`Ol6g}dK}WdT1f@rEDL+g_DPWgn+4^-1y(r#Rxt>xoN$x6JF&QExznON+pbxQWz-b`A#X+zh_z!= zLFx41HM!ft6R&C&DHW6D@Xd(ZEyIT5Le(BQ0g0Wgu?e?MBmW^^e)xLX+`{VJMPZ!P zd!JlOwny#9x3o^Y9s`UZj4H1hJ6g-CaJQ8;3oET6qkIoIYv#HQORoD4ri#QxmeZ9tVAawFl+Mbv zz24Ar#fs85cG}3=wj6-4ERj?ApA%Z$7e$xPSi6C>?E$4Qp-A^aq8_*lC<(VZ_devM z^(vCYZb*{fJ1vLQErg|M#G4i%6v3Q5~DhaEBi&%n}Q#n&WtI^aOnB#Q} zf{w+l+M^Uu)*I^ip(EF1h0x>rrS+*+sIWY0RaJ`dt2LIMAG~@2H3J!nI=ObbC@1E_ z%JPs&tCzC$w0(<5b>;4!YwMMh>LSLRO55cUE@|C2ZS4-XF5rrZLRdA?^P;W2G;EfJ z)swv#_t4t0Ok@A4UhSCJ1xv)+UXj`Lby*o*%vYxa6`2&$nRuu|Tt(g#N9#`Ro9rxK zLfea3=>J968qZ$BCxxMQ_G>OsI&5X9msUd=ugBR3>Zj*POW1%V-5$>dr+c~M1IQ~d z8zHB0Xa(y}R^ZETsFXK(EzE;S?7qJ9k%gTGXj02BSJ7<`6%AuGr_)4x|3-QA( zgxY17YA2EfF8f6}?(n~UliJxvu)YRRrV^Wifg89iA+O8dW{k%mz; zKOB^158Ug>NsU)F=s>eGdW=1Gor3((uixAtsjZ$c=C`1VxM|oYycGi#S;fS$?V}Lu zP90R_u6|Ud^*!}l00;wh0J({81AtsL0XgMe+%MEuM5_kA-FY?mIpy7)uZO;B;PuWI z_0Vx6!ZMZ$sJIVl0rcA2gTjI$t(fTptMeKpS5(}BR0!{lp}YX8Qohwnk)!s@17S?sWN`Uvt3O8T;tcHYVSyxWTg}| zBYRNY;TqiHU7@7accqGGYuIyDn-^)T$Uu!zCPOMq4nKt#7!%tH>T3x}Wem$qHySORL*5f1f Dq_wSW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/mf__common.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/mf__common.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ad5fcc4e3e999c5c78b42adc8149f52d9f266693 GIT binary patch literal 1523 zcwPbX1q}KC0RRC20000000pxE01iF?0000000061|NsC0|NsA3np24eeJ?kNu?l{| z?V)jwa7*z300000000000001ZoV`}-Z<|OE|9t){Mu}9}6;0Agr|T=#5qlkTXM+Ve zX>>hV7#6cFX02VQlY9N`H?x2rNvnQIi=reuJM){z&g=B)BYqut3Vpf0Q(~Ew(2aZW z{MDVGZ-q)A&_agi4=#StcoNmg)A&^iueQ`eg^H)K7%&pY9+KrtspdHT=B&n zELBvLJh31p3uOv%7O5q-pp+05cd+J4qkvqLktjs5gs4G_(Np3tGX&GEXHk(rq_vDi zgs70nxLWa|G`>PAa;~9UX8eI|M{R75dPa4^qZ~v5#JdgKMwFSXN>E&vO2l>iL=opz zLYD2&TE<+gM5CL4%)@AcuQYl{9$2uFiAd=$H*T-1MJ{w^?V%-t)GewKuXq0&CAGAO zjSg*rCh3?L1dpLOl?pV^^L}1)R9;s}?ZfxCTa&;I740wx{R;oaA zxsgpIK7=viBacg>kXS17Ty7{pu`Ci{EPeeW@-0N=(L#RaCen3P6tcwl)Xq}ktamxt zTU&qt zfDPct4)A$WwBlXeYpddZF*azK%oA)kP356H zRUdXpgBc~CIo6h@{((g&5l3x==B8IExsuok+lFq?bd;lZ6yLI&W{&cDYvY5CzE%Rc zH%gQxFZMl+Dr8XNFVkSZ73puq?GeAzPUrM7@#-A0jkmAiw~B^Q0n?O=6a)D7V@)_& z*Mwh}tJ{-;m+xr9_}Ri=zkF|BakE*iXmh}AK^53?Gag~q;B-+qI*ZD*bUdtZ=q^;G z?ttWuMG7PPip{a=hR)@D)H#N>vBTRUu9W6_9;eHb>|N)W<9JF*sAbS)f@tP$N4wLf z<=vX=LozNMn5Xwxaa0$}Lt0F-ha|34A&F$n9kBj*&V1kXI{cP=C6~eQyxE#~YUWWK zX|pmVd{Hd{>%`2l4UVp5Ayr)$x>~PsUokhxTAOJ`6~+hkB|HV{XUs NhuCm|fBt z0QbZLO0EB4q>6Zs#Vg~j8`!$$em|HygP?Pa7}z6V;tghFhNP}YdZ1}Dim8L>(rkU; zB)F>m@h6;vNXXY*^RLLBKE*bXVQ|Tb#uy69B)S!=YK0rxvdR(h<+FvT!J`;siOSGe zl4()x_j8|J()gL+o2I?amMdT(y@=;`NxlbN^BU*%skddj+_JSSyE~tS zGv96G6)$mZ>OR2j86RkEN%;nCH3|PY$}6thU6g`WY20Lap6G4z>uvVyeedQtPH9xP zANqCnyayP)x@4rPD~9$UscBz+*tYi29CtqOoh#<=&|Z86P05&Y4tsVc?UJ}jyo))^BkC51HI4sD}xf~y_2Ol~>NeW%))|Wka@&vl=;n}-}6+>xQ|NhYV zX?NMg?w|8LSKb_OG~zAc&6mWVoWp+y@~G$EU9LDT4ryj;ptx6C(C^PjHkO28nGa`f ZKiIFbM$}La(D3nbe(?wO_dmM=-9va={5t>u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_curses_dialog/form/nc__alloc.h.i b/CMakeLua/.hg/store/data/_source/_curses_dialog/form/nc__alloc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f9bbd32eb4a042fefd5b6cd4be3f60cb7dd26028 GIT binary patch literal 1386 zcwPZ&1(o^$0RRC20000000k-l01f#70000000061|NsC0|NsB!aK;f{Cb0rV-#z@c zab1-{j}90B00000000000001ZoV`|2Z{kJ}e$TI%CMOjlD}+>S@6zg2W0qhY*vK|X z^Ms7Ogl&x1S}#dB-H-3g+74U@y*}g)MZxUOeDlq>Gvn=?zTxKxPQj7IMv1$nhE~#s z?uQTWVW2pNP%iXitT+thI!|LQWNv|*CueZrW6<90W6&mCtwdR3Xb>eVx#IH;+^IO% zJhfm!H01)4WvuSF1zJL!Z=m3+LBV^paaqbl#E1&1 zOx7!&Ym+c6M8->K=_TLecH9Vb+%}<89%mqOAlql{9)(`YwFbpYtwd6ZDDos*r^IZF z));1DCFol*l|4hUw*xsJ94%$8-6>jnY+DV0*Xl$@Tgcu)ik(3&R@C55OHyMlQo0*K;rLwhtbB#j9}=G`YZ^c z$B?ew8?h=F=Ie}XcWgCieS2(Q5%U0i#0iXbP4i~R%o0Yl@z04|-=h>A--`nLX`uo^ zM6L~*fw*x)W`P~JA&E8!e2hlIqo;4c(BESf8Xd~lXSah!>(h{Jx%HVnLd=jrcAXB6 z@b6b|>?z@e#z9LhO@kS`#0*R9sH%-D(*}9G;;pjXbj8bNtkIS-OL5%PornI^eK;Wv zW}H57?5&dK2R5BV9Q7zlZf2E|D~Xe^8R!PBj5Cam?$73Cn4^FB%yDm`7fPV@qY_&4 zd^gj0jRs15HUsusN`FhYH~e&tjyi9NXKKVY$zI~%lq)=2tgOCB?)e7(OwIRSNfxX7 zvz+UXbhY@+!hgU2h+I3T@Xk#yAx~ylA~HE!S`W}YyMT-H^KPfx?VP`di;K(iUoL;W zz~WK&SfK^H1Cr@PEb^2uz;k9eE_`R!%=M!aT*lJf-+``igQ0!RW+S)PADew#s|-+& zRn6lg<%{&LRJ?(kSmR6c=Mvxha}}!%#XsR$$&XIfhQmH$P2t5loTDGUD;F<#^!AC& zcbRnP0+?eZJMmIv+5ckFJ4B`T8kb5+e>P(Fr*Nxaz3>g*@a4;1rns~RXKe6P1_5I< z;=4z9=~>f_0^inpQ}92I_!BQ4%k(t5zaY-hPFMS>My|MSchK-dBDn z=6~=|T;sJ2=*KexmPRV8Qc0*9cC$St;`MH;TESbK_>2NkzIc*98ERn^^rsVoYGUKL zr0c>YUO#T3=^|f2S6fIfFLk|4xJ_;~79H%k;y{lU&osU|%rn|oW!`F;)l(uT7iO>B s{tCf4h>+|eScee;{sO`(wA#Y#YK0pXyh^FgjyiIGyr4$^0(ef;8-hrr+yDRo literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2552146ad5a29961b1a7dc419553e9d42a4762ce GIT binary patch literal 295 zcwS>*WME`~faeShjPsyu#{W=|-NPq!x<2aUUCHA!er)bsyL|iC?+i$wVot9AUcbWz z0{1?PNJ?B<`u@SK=?O<$9>{O?S>C|2$z#?E(?uL#@4mKJ$)$0c_x}HDbpD(;_3M1+M2q)r*UHM?OTYj1_t)1FuC9w`VlIDs zzrW$v1^#aj_V3(2_sxDWiHCi4ZO@NQJbIyNXZBmc>1=E6-|{@Kt;NHfl4y9fe^T?Q zcXdgJrmpJTXV0F=vVGE(jEWaKo-W<|F#ly^{3$=>QtDj~)O3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_setup_g_u_i.fl.i b/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_setup_g_u_i.fl.i new file mode 100644 index 0000000000000000000000000000000000000000..ab0189dff15e0f552e1a3cb64edc95c83e1d1252 GIT binary patch literal 1094 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_setup_g_u_i_implementation.h.i b/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_c_make_setup_g_u_i_implementation.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f829f72794faf38b587338c36553e7d86a29955a GIT binary patch literal 1074 zcwPZA1kL*Z0RRC20000000Z&>01G|<0000000061|NsC0|NsALwIxVwd=vHV;d*30 zVpZr`GuRRU00000000000001ZoUK+}Z`w!{efO`pYN{1USCG(Ft2Nz9#DN5bgvdA> za?MraQW;jMumFKsEK~d(o zQfg+u&*420hfGW>Hnr5?!w34~jG0=8ljEi$#;0SyQTM>ms@uwtfOLQ$R|{1P$Z4ZdzaHi88K1%hW8GLZEeG z6Uir)!36FG(Z%RCg6{P_+;zjSdmY_(V8Kl$D+4%30kw+Bh)b#DL?R)@gjs@2;i?w~ z7sTqG4u*s1-g?>}MAyCX82Y0Sx^UACqd{;x?1oQDH@D%m1uDA1PQCC zN?bS)?N3XCDrGU&nk`!hua=Apa3)&f`rGc;7s)Hu$djw<|ObI|TUQ z^uK!}=aMH7vR7>F~bs9+`i^*Uu;crOZ@W5D7J`$`s+)2;3dB}-PoGp=Wm z+y(FRJa=#cS%zC*F+r!NdYkkFToIq`R6ox{w?Rj;_lR+2*d)jO5@6#BF{Um$;|gOV z6-V8$rq`3TH%JP4Bjm>T$3q&nVqD0|AZqY$WLV zO8K->xEnUQd_#tb81pTduoCWMc$(EI3Zz>f>BRhpoTRp*i@~wn$puH}XdIrdSYve? zhwx3&siFiF4;z*aeD_Ml=k-Ouwy)cWZgrk6Uyi9ZiSOGBQ%vbIr0%@h)OlUv<=E~g zv5x9JmP{m8qbm{@gXvDR%<0a4U6hNma#QnDc@-<|k>+OR`|Gz34IQP&4rEUlTY3AZ zb!T07^%M_x87e%jc%Hlks^i~*dOqA+p%#2z*I%k2lk`zAb`Z;O8Grs156(rqLy*xI s9y)JV`e?pv?DUlgTL!zc2kFIZueIg#-t)dwMZ5zP2~WNM0MKKy^46gS&;S4c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_dialog.cxx.i b/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_dialog.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..32cddbb54d383b72d87f8a58f37d457e15e42ab4 GIT binary patch literal 886 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 OM`YzII{X8%BUni}*rZzk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_list.cxx.i b/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_list.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..68f6354bcb9c642bf1eaff12dfc96f7b0a7f8a6b GIT binary patch literal 1352 zcwPZW1-JSD0RRC20000000jsD01sgR0000000061|NsC0|NsBa)zjTCHLw-f3pfzu ztO$^Vx5se+00000000000001ZoYhuKbK5u!zUx<@-A+b!64}XRca_JC>n4q-d5!I~ zlaoi0Xqyv>^iY(YG?V@93y`uNw$n7TxvUPhL;@i2;RA?P^XR=E#{sxja-xF72Y{YP z`DChLz$OV3I?!AS*n&Qr@Kh`NIg~QK=Nc6+WR%5>^x#v!I~a5NI6WVJLyI$}^y4{d zdEvvu&Ky3W{COZISui1u?)Ek=d{+{3d+o*nLD#gQn za}=9%`?2TkwQ(EwyK?rZjO%XLAS?StEL|y5sWi_L4?1xSMl1!zQl{oC@=$xg81#nU z3L~C=&>$5|wVwH{)?%^nxW4zKnzYV_7w4@~aHqVd# z;Cn>)@w-g32!8a2XID2v=v>~yk50eexg6dez=G?k%rvk$6JV|ADe5M(n4=OJQi0Hq zAjfcV((j(3R_Al?yf?fhPfvTp%ag$XPOtjVf$L6x*z4Y$clx=d>zn@d)!@Xlp_1L; zPR<#G1#CiU9)1j#0fE;hHU{)!IlB@J+C+Bpwk8r5)!FF2XpA7<^n) zoPMnAdR{9`xjK;6!%8msg%f^P5WIL zOZB3_I35M*{U*K7nbwGMZKrz?+_M4G+3f30uUEr`e0CgiGMxn>gK@0y;mJXy-tnO< zRe^S#>X+|Vzg+l*x6p(zS?)r^c|t}eqf!BmD*Fev9aS^r`?yoH@74?+7<*qhYM`lc z5U1?Gc}9R%9R8=~vGoHP?xs5O{gmm$>bcEh-{+cP$HQ{qXg3*Ew^Q#9JECyS;q-9$ zur9+ygc7j5%^ODS$^1qvW|~2hTis{ttHXtcy2G6)B0DZv53zlS31DNgu9LjziHJSG zQJYLDghPpZEk|IZQCcvDYXO5<+krdm?r3X{{gz#+h$%X5?L2BLeC*cc${3e|&|U@! zz%VhJL{?Et`A@b4_L)u=Y_ZA-*LsV|2c#)dg1RDgHIkj>vY_O`G32Npzy(&Pc8vu* z=dIAuf*azUq9L3HstHtxJ2?+te5wlbAkN;VF=g>=Ueje5R%jXe@|+~dL)zaxPDYga zOH2nG9htN=@@Ss&|D{(XUzG0HQi1ftOns;1P&Jz@H3~SMinn#?T=-yJ>3YA$b zC3^x@d4#i1*-UJ`(32CBFL$1cYC_ucF~&i&1zz0ruTdN-| z;VT#~(O4}o*DyM#X_b4HSQWN3%JR-#wJEB08QWKCjIkv)mpoc2u|7+1DtWQW%BKCF z*tCqh-T)hr6AK5?;99FHzlwamMzFOjKm{o)T8)*-F95T60JTi7=GkmTO)EJw0c~J(+fvVujznx^t8KL$5Vgwk`S6*VC^}~6=VF{D K*8B@hH=k4q4Vx1H literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_list.h.i b/CMakeLua/.hg/store/data/_source/_f_l_t_k_dialog/_f_l_t_k_property_list.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ea61f07a5dc3da91d43ecc37fd17327309a46f91 GIT binary patch literal 1216 zcwPa(1V8%#0RRC20000000e*l01Q9?0000000061|NsC0|NsAqQ()T5xvshh9$f)z zU6&igx2W&{00000000000001ZoUK+{Z`(E$e%G%!Xp6y41367MY_ppJisRHm9LtcD zc6kb9iMEMIltEHdZJ(VbUohL;~lpK8UhrxoX!{sErLXB&}<--J}?A7rG zJ|KD$v1Ji06@K{fBN8qmX@pVS{GXnj{Lwr4yLb8-PCxa3|Fi%3REvHmT%hT`Hbgem z96s59As5-heEq<+-<`Otl$_Rq409%OE@_e3;G`*Nm;g=$;Tw|JC>;<2Zg^EIvE@$* zIfs>$>wd4d-EM6v@9mr~d*kqW(%S)7GJ^#o6Cxv;3S0StU$~+IM81&Qh!ep7L?w^T z3rQ0A;f7=HCIn}C3qKs+cc$U(0Jc=F@2X>7^S^M?nCWo(~Sp96xl2HxtJ%HO+4PnHP*~6ROf1&GQX`xK10(C5?&D z!DP8|n&EGz>y1&pS+^batoL-m60$ID;(N1^AKp&fAiNt}?~zU!ImALS7N_F$YTBN#&t2Lq;Bp30K!<55wVV9 z0*h4M!y}S5!6#z`8KDcRNn-O+eMk-H_%T8^4O<3jj@vEp+osxZ=3bqdQSJuk7p{rq!CAgV$fU}0VL5-;5 zQKvI#*1_$}lBwTGmA?lhG1< zvYrN({@!{bpfwU(%94C*JsS$mGDD#@IrtCC;;X zuKV>6QZEmV_a7I;;|bw9yiHCMFirhph~3@lBJxXf*&Kbvx63yowb4$u-5ne&#TmAK zQ$kctU)gpUW{4*EI?+W|w4Gx+reP=pMm-i(-z1zQJlb}&$dhUSlP>gWm=~-I{_9HBT_Ok{bQAnfJ?Z-Jc^0@*WME`~0Cpf|gR&X_LxDt2-&{Y1D|2e2Gn9(iML7*-ZtG(}0;MjgNu}vr07=IZ A0{{R3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_command_line_info.cpp.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_command_line_info.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..2fc348f6589af5e34316688986a24da0d71d9341 GIT binary patch literal 1250 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 KS^oi%I9K7yC-{E= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..fd1b4f0b4d1a6cc6f290981601181623a978bbdf GIT binary patch literal 1543 zcwPYq2Ke~^0RRC20000000qYY01l)80000000061|NsC0|NsA%T*kSVvB$WmYZ*tN zo%@?$fNm`S00000000000001ZoSjzRliD^Ae&?^);qC!CIg-1i&CK=52Zp#Y=4zWu z`@{%afTp%ZZ5hJc@V|FgvcYiVl7IXBs@>*+8&FE|2oZtp?60&7+g`xny(G$UZW)YM>g+>O7Zgo~xZJ z3RP_dDz+A1HN5&X`#CRUnMeF+t}oM+Ww9$V?qmz8aotwy3RoONp~}Sql!UV2Fdp_n zWS~}}0RELnrDF4hx2(ZnHn4||=Y-D03pzK0nKk@t;JRAN6b0o1OpxLMy)s~ zfnF_St~ZuE<2h3@CvYLMh?Bko1J6^QsRA&*z&A)F?!@@TGXx-3WQB-PDVj_Q5+bvF z2WeTL=ZYL!vm8&*T{K1#3#j;cw8H+U*^})Dm`yP9Z7Z~W_|Vl?P!h3p54Z%@>hVSx zjg~X)Tt8QgTYpUa8ng%34gz@J#r#K%Hwi%}uRXY=l2BMdhvYf6_l}N{=O58yVBc|x zE{Cxn2Ty%i=3Fy~bY}4J7Fbb~$W4kwQ{ZKp#T8s)Y#T|0%*m}jAVMP+5v{~Dk%;+% zOl^f)Av?sJVY~7wY!n0K2c?QuR~-C8Pe@rQlDN^Xbkd=O&Na$fZ5#WFSa3}_wGmRW ztx9`?t%?yz`mUBY0E!?jetUPa{CKv!rIau=MW+-&#S zuw4o4SGd65qE#U6BBEAe+S5*!x_MAdzh<5;c~voh2|mY`pU%jBqkJnTCf?8)O?`_V zp;`F%qaB!Ne_4ZLOKOb!CmK$A%D&MYE9iwlLA!RnU87E0(d#;2Yg<2XgP#jQ?L#97 z-@n(-czR-}_LXw#MXu3rj9uCq*_~q>nEJl$(NqwGv!UbK`_9E9oEq$X_a4(F&oIRf zWL4{X2(hY8GmLsA4HErn5KhLJ-QzL!tCa01X>DRT4ln@LPR43W%p9;sya=3wIR zo0rF`s}jA+*#8$YQ`xb^p^S>xJmc!z|K3Xnrt4+SV*L~~Dh2SKW>TT6Bq9|VuFT6* zg{OBy@I`ixN3S%4s*TJH#PO(6`gSmx`h6SPHzHe?sveK;ub(ll``@o_wQ)V4q{Swp z*KdVW4n;D;PC+5a`8r{d2|_KeW$KUqVutM2|X z(K}||ZcG?D5RVhAriZEH;*eEWgwiKilNTejZ|mcmgTF6|*WhMnPwcqD_r9iyQPIAU trMjFV`uzI&BrW&2Sq~!@$BLHY1)=4-Gjr9T^LAc8BHDv)>p$5dY`s|m`+fib literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup.cpp.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..848a99b75a3167880121dc8b901ed8842b512b79 GIT binary patch literal 2089 zcwPZ12-f!i0RRC20000000$rd029jq0000000061|NsC0|NsAY6%zr?rGip#CiAge z4w1g}X4a_y00000000000001ZoXuEmZyHGw{yx8=4of*$VeH)QC!F|1fH)`yEJHRc zITmVWdZ5q4^xSlhU)JmYzE5=zcz}2}CvCKcB?H}6HPug5Jyp%o5p{>+Moy$HvPg+U zFIr)iQJZ=)R;e^(my*In7(;Wp6t_y}hGLz&b&+L>3WZfVZ3Rb1L2#hbFexHQHDec?w(8$1R?kH<~?ry5njr$hgRKC3j+cZSYB z4O+D(9X~a_2L7Icr<1?K|4&9N{`>$}I%8pT{Uxpa!7jbYgk2t5eQ0!%hw}7W#pS&+ zR;7!>d7+Z%^#25#o-|>uoU>m;Xo@oVQpxZyHInx-EUcI(l9aEn{lF7l=~OEp@Wq~E-B0P zt%{%}taD?ot<@{ivHRv#@0?R~x0I<{h0Y=uEA~7u(iC1iCuw)s`PiRLrkzo*bJ?2> zM$^l2?^Aa=7?1w`IE{TiZN;c|*tyc_Z#s^zafn(!<)9oz%DCX*Jxc&E@DS0hNJAhM ziVz^&ilmSR2VaL6U^1ZgPD8@Vg$Ce;6@6r@T5U>odblwNQY(>OFCl6}jbju>f@<$n zl0d^!Dj{t(pDtZUPrqv;Wvy)DJzeLNuO%cDLt};Fz{7$JZ|3@*t;rXUyzNxw5z{4N zA9_Bf1cXd+A{M1zhLklF$ygMLUFT`5wpXVIDuxivdi{5w&Vqx;H5;7qj@-&@)c+hD z6e-J0KMW?b_k;8PCdwS&&FU4RNi+9xHaiIpWE!cM6YMX1!CD2+Ab8h58;oYd{$$cQ z>(7Rri~93!le#G6PL?%r9t&6(Qmar!|f&inqTw*^7tB>1kd`|2(U zEO=gTx1T@P8?LaSHy!uJZ3kgh&7Igm*Ysi+i3m|hK-;KA3JwiLY5|(Em_!f@rvwZK zSQ)?$7eny$9nQ%mt5E_RaGfR()r0FfcY>gDW{xSsaq@iu--ZEcKOUb`75FMDCG?&6 z-qUCogp=!}>v>1!E<{);d%WTT5R~SxtpTV&dw#Y#-jM1GkOD3>f zMn&l9(5PQ!SrFP;$qB3?l1jsE`np)^BH7ecoTKNleyo#3qu(t`BhIGptl@4-f56VCS1g<|ZOzrHD8su>Bm~f@fM!kKE6MacsIXG_aq1G8M1S(mIp2lP|jU2A$Gt zdi5%ButKioPFIc@`{GU7Ui!J-Xf&MiW3Ud)nyFldXE}yBB>$=h(mkB6=L7RU$Yad!?rWjzy>TCa3}V;ZQJ+Z9>pz_GWSU{m zxMcg5XO?{s7usj|7y$3YmPUPjo+cqcppjUh*c#uYS2@ z^=u4mATqV)9xg0@k;^TGvKIHAR<6I`=Q>zWD?hy~h}f!Rt`cR@us3=;+5A;?Qw^2d z&(Tx!l2HVFC3cAZ)A%#u+w8hN@ z_k##mjLl8b|JsC$w#+}-Vx#veB)CeDMYzzb~#;CemjGX;I7A_DL3HU?*6>? zPu%sTaV;w=RvFWO^*JY)Nq+}QHyMTi00007AOHXW004;q02CDf00000001Wd00030 z|NsA6cV|VW{T^I0ht1giBDG-U-q;8L00000000000001ZoMT{M_{0Fga>|)`$vLGd zsR~MZdiu$^!Ii}&sktHf`8maU8A@CX3_KYS%;2D)fFf;W<(8S3;#!fKTw0Qtl#}X` zS(KVwl3!G*k(`_2nU|KY=bl>PSd<>7p&4xut7#21i}xfDe*>B&sQ?5S$+>!tDJjmr TiP@mCeb2AB?NloCBYch871gekhA>161cfkk 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 JzW^h0fdz>Xa|-|f literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_dialog.cpp.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_dialog.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..fa47462e67786339360ecea90026f14cb6cf61a9 GIT binary patch literal 10903 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_dialog.h.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_dialog.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1e52d2825d6e6a1a735492ce71578ccc623dbfcb GIT binary patch literal 1969 zcwPaq2Tu3^0RRC20000000(gZ01|=#0000000061|NsC0|Ns9*jsCRkdtF94@p-wX z;u3tt?(LcY00000000000001ZoV8e6bK6){yZ@XO4ZD{9AxdjmywvSn(MO- z{9+ABx+=&@aXTMBS}u`B5Jk=Ji+1~St9{wJ_zLG=I~VQF=g%m1Lq*Pb+R-NHhMAZ1 z=4Bg+mcz5HV5_x+MtGt$T);ObpNODm;H6JTKA zTi{C=^=8fh1?($t==t}`#lGi{d-FN;Co`~NYR`PnSq$wNSkuL9I+^z{U=^EENgnuy zLb%_xluH)UTzj8zJb4CANe*J;aYwT?2wjWIc(18YhmDnO+VvRT##wuE;P zCR<9QhTXpljs%C-!5|21=loyxm;RUF)0fLn!TGuSDfrsII1k!wyX`oamwm^*3<7WL z3>R+C4Nj~NMk)L}oyOT6l%zpqfVqgZphYI<+sCjG>x?qo1u)t6<3G0Ag7c6gGIG#cUtdYC2M zlBUa|d%#&$)Pbych*=1ZS+HKTJ*-A4icsa5Wf(dZ97#7q#aC1KJVC+R zH5K%#U~vQ(yF!sHCR?mhxL$ZbBc@OoV8dCYRX9pRA7x#ZKl&V*cEP=aIl(Ge=xZSHGTtIqPsu#3@K7WBR6Mh5)fsaihF%48Ha5Vf~G6&+1OU%mJesPBGvg zu)W!Z)5jkwta1{BtR*R8S=og(f3l;EI^#%tnK!B-BnZ8AWK6uWRj7SDxvor>dkLB)i(rn_YRR< zKdN-xyO!(TKwe}S&UcjvO3Nw;^%0Zv zUA3z5$pEzO6dJUX5<(F)-xd`P_ra9BMC39_cN0 z?R8h00FLw&g8~Bi8aFG%ag&>Vhllnkd8VgOW5cvOFbUo=Jt$&AwF8FhM$^1hV+a2B&UUIr%V ze+nwLF3zHAqiV$shF74hY+2QEMEg7R_$wVcO=_9UA^!!_92-O$@yEZftLpTRl>La0 z{Xxsa@V6OW994RU&*k^FP6Q{u5lctpSq-2K7mIz`tJh`B ziCTzgEXf_tS6B&njqJV+=HCzA3OdT#K$3QS-~16eiZn&6IOvomY5$MMRBvC`(vAM$ zURLEYE69cOm$kzWZ#?hK{9rh7Y~P!VUtd*M8nIAt^*;gJuv`_K^YJ5Ma2#W>ISvRw zBJ3fEL<&ps^bjC4E&)pt>@Emg`cAS`S9gWlnV=hng95gUl;Q>c?e6)H+^7E!$Me?Z DgapZ6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_manifest.xml.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_c_make_setup_manifest.xml.i new file mode 100644 index 0000000000000000000000000000000000000000..eba063f8acca6c63ffda049db6c5c0c07355ad5e GIT binary patch literal 267 zcwS>*WME`~fYS^NjKNSg<9{f~x_R5_#_BV_e*Tja%ee4kzt;xNc??LPVovV_`_)W_ z0!OOtU2pu`qi&|u8OGJr+Is8woq75*atvm3-`j59UO$_CeWXO&&$C8Fm7o1mdUBXG zXY|xND9pSNVWn;H=K5707Ioj=vc>?%exB1uJ+jiis9*1%q#ky`b=KyeuIqPxx_0Ei zLf@&Jb?a{Se`aa9o)Z0}8!){ftQ7ZoQ!7a-MYfR=tRf$bq6-ybe+BS zu<@tEKfi@-7xG$K(=9o-;Be@IN@vR$1E;?&SL-jN{LP&D_4h}|J>MdF-o;y&m;nGs C@q0J` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_make_help.cpp.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_make_help.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..e30dfa5612445b56a8c11e408f8b2db8566e6d8d GIT binary patch literal 973 zcwPa`12X&o0RRC20000000WHx00=q&0000000061|NsC0|Ns9HHSs~+Xf0O)w2-iR z&%ArMlMd(r00000000000001ZoV8U=Z`(K!Jy*YCkX+)xu+iN;Iq1Q)l+@VRDb@}W zV7m}#ab&ZRNr9yN(IEeQht#K=puMz)1<<3J$H(`E0Q zLE;{KB%VhP!FeHF&hpcA5noSlqrf;K2_ze)+vval!3T)_GLEl;bCg`90rC8WA3}pk z%^$d6nOX-y(1b>#W_dArko*$z&rFkWFueRQzrVe`9QJ~DBbbD~^rBNZ4a0t&-3y+B zcf;ZH^Z5EP4#&%JJe^OMZ8l+SW4D;0F>H$?Vq(nz0G1m{WQJrm7V|Q(#uIW4tj-2k$y`E~sl6F} z(O;x{-Vb1bnM<$)WmKUPB*`>IlsxE+bQ*{FiZ(N2~L=`;MXZiOLU_Fy}_ zyXEz+f1K=Ep7ckXmb=o|h1y(v{j7n<|LAB0gC%aA6X)L+x{1!j5UdR_?X$@73|Ol}Pp4*peA* zDjZpY%QJSQLeZK@9rlk`5$+A@ru&36x$|68cDw7AJ-Nm=Mb#NQmKBvUiPE|vaqTbE zw!KW>2}9w;$yGIvu{65QwT62+uUR|?{!jKkJ5XA+$jd@ySRC~df(3$J~L2WsrS=rfs+rbyK3P`c3 z$VS^aU%%plOH|{8Zq0MgvU+CMGJAdK^#)dd(7UT$msCi`i$NWL?pX8E?euXMw;f)- z2)5ZOXeI3$1b#BLCxU(hzeqazF6(`V7m^Fbs=NbWXBpIP5(Jf0>}c9Sv^k|`#E$x< zfD70vRSryZzu$L~9GP{v*qEbe9GGX*t;#dNDnUvWVVUgc-0+IFOoHU=IwQd6lu0Gn zs!}wCM?V@(7ZKQ#XLz*3(4Iuk_poPb%PR$RM+<0B)E0g7GGpk3K!OzN1^61qUg(U_ z%l_LB{ODOH``||tZ$5{IX$UsV>@f13MPP?-NV7#ao6fyXLsjFF72i=vPGu~(VhNQs znVjpS3w`=TVcn6{r}f;mX1+!*me88JKJ;Pu6KJA z|K9ihi0xbJCbs_U_pRF-w|jSU7svj@2^KC|wT-I=3H~RLQKuD;=T5xzLih{1mSq`N zr68M}051}1T+t#$8`FGehD+z(hXHIUNvQxm6}V^M?-MT_%{hj{#v&Qt7)Fv2DKFLs zP*$sqCE&P?#cS<{!=OZ!=uykVgrXzV7A9&vJlG|ksneK4*a*{u_P`?ODsDu-9_T^FO^J$CdF#`PJxz8y@5 zaJWAwIL8?(Hju{}WlW_+ZMnY)b~qe^8Ffn29TkG5R9@JCqbv2u{?!~djiljx?U+y% z!C|h7x;nr=@NLK}{V-bC!AE>b!4*vq?_AX*@Q$+-T&~OG{Yti|jI`xkzG1=Lr@G2I zOV@oeU3UqxDod2FcO>7EsA>AB5j4l6BF(v;lepwPJaNsN%0W)b6W{kV$MfMw6fY1b z)5sgtYI0fAJwuTtsScB`^b{N;;8+OyjtGW1t+}3qn&rh~lrnpW|MslaHn0PXV^aQP z?uAhtOdUJ&r<22>o;{Y}CkxdUmQ3neV0oD@Ntgjk+a93Vxr h7g*7?mOag;6!^j6m4pn11;y_?_@5_R{{a@hK2uy>?Z^NC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_path_dialog.cpp.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_path_dialog.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..daf0193853fa8ca744b0986e03a9d0455471e149 GIT binary patch literal 2900 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 K@P7dea(YUi%T{Cn literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_property_list.h.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_property_list.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d83bd7e68a21e1fe6677a359e16d546f0f567d51 GIT binary patch literal 1880 zcwPZm2dDS|0RRC20000000$TV01~MH0000000061|NsC0|NsAy<@F*7h^A}*%b3rr zrAKBON!^P800000000000001ZoV6HhZ{o)GJHO)GZgoYnDX(VRy`-&V3?$Y=Q;%$~aaJtz_XohD>N)J9!xeqwG04EJw>bKB%o27zrN%N!yV8tqr{f{CV_F-N}2WB?frh=3KMihi}6kS#-C2wN7AiKVnA0xL}Wl?(NenM<8P?| z!PZ(M!1oCK!s#lPB!YX#znLw3ux`J=z2&;rt^ef;_Ec_JE`jVw3Py_DB5#t#6q!&E z4^sI6Yz@&i8$D>u>E%DCVjdygNMq~~4+?~xwuK#7?c>eOH@eYAB zB`@IkyrXFt=MjM)TCH}Ncrr+%fJcsjiq`grMi>V|m_+u7%(Ed4Vz#+zG}_khTIll|y zTtjIp5t6Et{Du^7(usWU-BM6E=e#4q6)-{c0n2%P*vZmUCrW{LdT2p z;6lF(lXR7*pxBo7zNAqWmG)GG9&9<&437u4qe1XHNN(&hh@(#twXHeW5FG4A>^g`= zg|n~-G1UMVWMLd4t8p;MQg6i8VshX;*r0eTp)tt9>2-ac8c+X++=Y7b?r9paedBrh zYFr;o0)VYP2ke_kXw^>9-=XRYl@uXqo#y* z6X|W)z6e|M3?4ah^AuxQMO-}<9F7=L)K5`DNvc6tD$oEsMkBCe67VD8fuhU`LwTrt zD~f8hh$BlIt_2~oa7i;%;ev1*@N-C2vA!rffGW-Ibp6(e-l}4wpHwCM4^l#wteCEa zQOl}KEzpt!qc6@c(f{H$biDbs5ZN6I?=x z%?Vn1ulrilc1M;!GLrrap?G;Pa(MYFG|tjInx@@;daAfWHv|V4F_Mr}2G3ewA@Hvk zjmU)Jx^#a+gurzek{~NXAnNuML6~~i&jSDutiLT2vC$PaOO2`MvZ|TrFaxi+x?s~5 z&r*-XSPSWfG*4kCgIr3MF0$srx%D9($H7M6G@dhcYNmdlV*5nnc+A3FH0}E|I)@C$ zGrqiW!jSFLe|N@|<$_ExW&a(UTUrFK@~c%6H{(RUgBVjklE1a*CH1>l*)B^X6Hj=!8y+{Yg&nQqZ)AHu4Yciy~}t%vo~$ z^4YOb52?uF;NjpR+r{d_&bz^CGrf|jd7?HFP&Y#oRbgG6ClN@7KUo#tE8r`JQj_Bx zRz+%NalKD#;Dx5rGLGt@RY6Q6EYixxf_>gr0}&l<7Djy0-CrdELWs!)4Kjuya3xb) z^0*Ex;&m8oh4eAgHwMomoUT8ruVMw&_`?mrY$fIW0ykaE>Em~X6S)RRhjfSYgV!NG z%j$rEOe%m`93kv;1u_XlVV&;eXqwN1@ati3FJQ>!2wc?^?8aWW9^Q77<<`zQ2GZi3 z?N4Gn`e*gtQ(MyBn&L0U^!H!M8%4u+Zauv6E+;eF@}1f3)00ZRDaCqG|3-j2D%6az z-@nJDJ&w_D0`*ckN!1iVR77x$9adJLNrDN385TdlimcUrUS0ZC_$YQ!h_R&bR{xHq z5nZbx^&fNhj+#oB`u%&k{PnWe`SA0{&aylB@XNB>9bPU6_T|TAr_=3xu&iG9<1gbS ST3}BW!_jbg*7zIY__w`jKB&h4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_std_afx.cpp.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/_std_afx.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..4a5bbd8389cdc7b4424e383233dfeb1aaa94188c GIT binary patch literal 205 zcwS>*WME`~fL>$I&(57Ub)?Ut1x+*{rkV~ZB3G6~90T6x8>6z0#E&J`SFLm{L081&>lGI}W@aE(% z3RmDsq14r~BDxT=2J^LG6@}j^r;=zPkv123TT#P;SCJQ+_!wfHyT#5bFE{WCF*Cx~ zEm<3s_wF5jm=JxSAnEWvaGYz~`DFL6q5o+-aK`W7chp-d6%%~i$$PJVGpJB^%DOwG5LpdB&bcx)$sTh(_ND{91APSiKk#~bE z_qSjcB==^q(;x}`IELvW0vDEUlmy;t=0=Z7%T=^o#J+Xds?jA6VnZQ2+Q@}w8CBh8 zYGD@5P3?(B-*Hzj)^Ts`o^6BDIWc_#W6YCPZBC(UFq2(r!gC^XP=ir5~q*e(E@`<9Wm3)SC>`Gzh)f zYT{4QH@%C44*V~fqe^-ggu{WkhY2`4XXH4~V}buY(Cs6g$6k8tNAMZ?jzKq)tZM>- zXS8=gd5#z~MYc`Vc~*a2I{t@86zx%t$?uEe@v6P#Kh6Lljv)<&K4=}!NEk6$S_1LGMQ4`K5J z{)l#4Ee?GSSw)nh&sjRt)zd6TrfQo8M@!eW0oPP=s?m?8!u3lS;Yg`#RK*FTrKpT- z!O>7iP5r}#d3f_MjaSR%B1+D)W;H+0`JdUpyZo<=r_%m7XAfKb>sJ#C!q|_Jbhhx^ zBv^#szL`@pXBqw#;2eWnrdm>&F^-c8rzqn%KJkdWzL4{p~W978ImpW&w7DHT<+fu){7Ph$-z5NiYRQ}E%I;-v7f59yDu2H$K} zZ{`fO_zp`i*E8`ps}sM;-UiDgX>jZ?g{H%ON5rJnmReGe;bcg}9_H9Xgl`XP*-jc_ zrfZZKQp&O_q)^?fT)tG>>TOp4G(^Udd8T=8t8tDl*c#ggiNJgF+;MI2f|x}1p>^Yc zr6q!BO~P^y8ob(F8r*GX159l1Y~lUIW48N~S+wGneQk}y(aBVpSHQuMCuPNXiubCj zLS!eAaG7@cVW;zz|AK!BKlj7F@Q`ujva)g5oS1RU`Z43U&u5IodD6!CEnVX%KB7H( z?Fd{N%6*Zk!hQD?%UztP^%Hv8nu+e@z_`Zc`wlN>O0!>Xgwiy+_cxdv5bz6NkW#pA zFS{2##`~F+8k~FhpamYV1y(>$V7XBl<)$fH%7(rH+1jVAT>>1-O>b?cd3gQIDNDyxoD{{n%M}aK$7lwn53V(>v z#@{5jf#n|+qC4;p8c)-c_{*_A% zzYD%_8zHCM$r{r>a9`fTg=o{G(RqNVc`HjBk!xussT=L}U;xZK_O%>^UF+!tHCPUZ zXi7@UD<41UgejxbL$ok9iHTsyffRY=w|db36#%*167`R>01@K{YzkjL;L3q~$zjenXW<8l2y>^pI*vX;BZr-NGe<`HK zY@}R#==$T1tY(66QAdcF*D7p6-;A78eAj1hE4je8xSwtI1D30rov*VZ1@jBeJhmN% z{bP^A!9ZFbUlr_B!Wz>%!%)AJM5?7td-jGt51|z&?}V@g)-+ORD()w&U?GIoMG3M> zY6z*n7hpBzbM!O0<0u~760Q0)W_nd{_T&25m9?`=8?kL84qAA|-03&&rOo}9M<*x3 zBR7k@P5l?b->eC>&C-?+Y|T)O+X8ixdPelN5VU#Ep*%Y!;a*omf-_6hEVYvaFR3YA zL?O}7x^}_|j^@M&)4QV)TPzxB1+g5TvvR3q1Eb#FyPbt1!Om|loA-X{;a58No3PJx z`a=cXL(#h1OZzY`sE^;C$fdACcS|{V@u@mWePwoq z?`00!jkgCb8NEaxdGp496L{**j(=meSIDt#5s17}a!+NLKlS4oBtlT#b0%y5)4ccm zBT_(NCahnRSC!dBE5D|O{?Va#T@e+OSLm)P0P!!k$Bck( zdBuTn!kLCV6gh=K5dUCKu1BEmHv(4d= z?G@x@&3ctu97(npmmZ($(&Ci$AgGd+-;{(qa$RY`ZBT8nAU7^I)n)ycs@yZBemOxE z>9}Klq@g$s)D?&1Wt_1>Q~$!n0kiy6%aGdlo;F1fKNFxQ-cuf4-WZ=Si7;^V9&zoS zj#-SNxfLs`{LQ5%RHfst-hVqJS~c=9HX6EK1lPene7RfD`c7n`l5|1~UnX4eu>6*k>(5Ftts1 zRSRXIbKeIkVA7LS&1VA~s9|j<65w2a`)HO109xf)q9YdT`M>fr0B5~zYhrbY2yF47 zqrpX*=oE&oYy0dT9tuv5m{tMey|$!>QC0|C?iPmQMV2xAH%5&>iLxr|BNQfbypMlroM%*OZg(p$hIQ!$r1f~cTM&EEw|cDxhba$ z=RCE{9Q{1&4mG?lj$Nab--1^jh1A4!4r-B>mUHe4byYdPx+Glj;_i@l~ zz23}a*u?!;welr%Z*;h+dh1OU9?x^OB6{PUhEr?Nevv+-1ObL|p)Oxl@sl0S`eSU5 znV8d;>o)KX1+-tEZgk$I8#?idbW0h@Rihwb4BKgX%4Vqi#{7HGct_@^W}n;0)3qmN z&Kus)qDiYyQf{btzOoZca9i5ljYT|XRe~llMh1Eqm6^}MeoWv`1vHA@tn(;fnj&$@ z5Z5(XbF)Fq=2tbvBO5J3Ud=(8n#HVPPC>`5pIjBzM&w^R>U{`b&Yx2OdH6^$n$2M| z(nRC2vAR&kiFqZk4PW`g!q)paC9vEiV`6!<4+$;n%0W!AhbNwWwX~+;!Ia+k0|YN% zc`4=hFakkmb_#rV^`hO1`?FRk#>nU(&4B3V*fn_JSu3oJeSRxD^g00#3c<~{}jZ%|ro&{H&I25!Nl|JJQYI}OCEOsdH~6-frtCQ2X5` zAg5b#h4}(0rM|QCYRwK30Pa3Utd`i#0VKDSo<+f&8oT9aC}Ja=;17_$99Sy`C4V>D z2^LhD`khv_zQ|Jl2Y7#U96;-qEXEJ;an#rnPQ8SbJ2W9N-Cs@>5 ziTt!|5TT8AM|#~{G$*VfXxaTDIm`O-&vx}L%6R8(Hfb{Ap84;KN3zGqt$irv8B`Zn zrJX9W{`y7xE|S)Z#aKrPmkE*Q9))u4JlVd#*+6&k2y$ZFI=+UIVRGr~ZVj33TAx$X zEcUv$f^o<;<7_v}%2g?*?&}FJdv9)gVaGs}!Db1LM2Rh3N+r{Zr}N4Bd}eulYqHtv z&6ct4h_0ib((9vcnN4h#jQMx4l|Gl(OZgQz4{u%>Ih|3!&iQOJG37GjzL_^6aSDW$}s7pvd{6N3q$R^BznzX1zn2*dyY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/res/_c_make_setup_dialog.rc2.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/res/_c_make_setup_dialog.rc2.i new file mode 100644 index 0000000000000000000000000000000000000000..b0e0f020b9baaafeb33374e0a2962c1133a58656 GIT binary patch literal 243 zcwS>*WME`~fXxgHj9pMR<9{e9cWrrb|BU(jK(_0r!=|a9(cAjBh5-pw%vn3(AXk%v zi0k#U;Wh=DXC3Mj`dU&nr{y`%HUDuyW`?BrzuMs0O;Kg#{oK!O)(QAO7IBjn`lDZA-W~^C;ho2QJN~=Q8+pcP^c+(3>2fX0rKXLzj)lCW{}LycWllE^(Qv zTzz`$#GXA*pKr5Co0O}x$|gdg{*<_qk~9 bC@(JXfBo7tL_WDEV`A~Y{P)a3d(vwFdxC2h literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/resource.h.i b/CMakeLua/.hg/store/data/_source/_m_f_c_dialog/resource.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c20dbe9c33d596bc0748ce8c1d59ecff2ebad236 GIT binary patch literal 624 zcwPZ;0+0Ow0RRC20000000J-o00#L00000000061|NsC0|NsB)=Fa{9ke-tn32?^F!6tE)5Xg%f{Hh%C77s)bc%RvTXgV-85+sm(?tgZ`oh42`i?d^rN*yB%La#}QH z#AQ8G1#AYsPp~HIS%)Yls%)oZw_qa>2 zEsI|~s;e>nAz;U*zPuMlycl75;^Vw20`50^hdgQ%JjPWae-trQMSiR0k8U_p(y3}UXGn`&$A)c#BLmizTb06Wlf#JqrGXdICT&?$Vc+p zBaEQ!tCQW(#6BDGYnVqo-i2Ais}UAwW9yNXhbWz>yd00{gS2xUzMpl6G3IYIXkQAO ztOl=rhNRt^oc{sE{y5zon_ZTvqtC8M9D0t# zTEZ}T@>|mX)!EK)g7ZMC`klmD#B~h}MGACnu~4NN`yO!yT2*vKg4=*-Son1G@;pwH Kf0s`wHnc{uM=Oy4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.cxx.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8800f583ead8644af3f27b71e3cc54ce94038852 GIT binary patch literal 1034 zcwPYt1ois>0RRC20000000YVZ013qa0000000061|NsC0|NsAq^QIx^=p>!F&gSzW zcP;wA3RNip00000000000001ZoUK(`Z{j!9K2Ii`L^c34JLH){ z8Jav1qTCOO949;ibvkAth3_<`oXCVDt&;?4NEHh{4w^${x4{X5Ch@1V6-&Od{N=JV zhmQzulX#MniGnxJ&+*_Jk(!Hay}qbczf@|qO6?0&FYMY^`}5a~`h#-8lGx7fp>w7; zHR~_5qPdyOR-8?y5=_6SoLs=)OfCqgC2(WkQr{x8H0Gu#{j3$6nLHV2p z7J3^}y7g$urG$jTRLYrMsVo)?%a1S>R>CKhTd&iuY@t&bg@DO|fJ(wbVJU6+@up0G zNXD5Wz;(ccfaCgy5CWWIh#HFj1mJ$Epd4#Jpovf2{S+Du(fa#eSFu6bk!|Gc9aQmvkA_h{vS7K;gRAYZppT z=sVu6`n_@6t$aQ725$Fz0bUP1XKy9boNKe~e5L$ncOJRzC{ZaWo$!f5O1gSS?YYj7Qkh?|C^j=d+NEUtZN4 EPFGg~pa1{> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.h.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bd52281dc070fef526bec405cddc4602cdc34314 GIT binary patch literal 651 zcwPaE0(AWV0RRC20000000K(@00dS50000000061|NsC0|NsBT2lBus)zL`p7lIcc zu~Xs!Cxa~j00000000000001ZoUK#aPTN2befL+4fCnzYCTUSs(;^u+l(e}z4u~hT z*kgNzy=(2R6QZjB-dQIU(!Sz{)$W-&XRh{+zrNS!H~>>6bHyqj0KyS_LO6v`Nv%(( zB{P{+6<9RmCBk|m7);@A z5Z_D|F$Cj#xC^2v7{~V)u;QkWjR9PufQ^bNh+EYqClU!MCd?XS2BUry-ViIe8Vm>V zy-oId5Rd!wIb2U72w)mS@gQ6bgJ`QXT}0E#yzg#GwYuz4E)kNyZ4}b*1a(_XC2i8e zt^hOCcdF{$7Vp?|oPC~&6tmr>c_^HH0=dBda3YALY*K_Tvpb&VXfEGEVS&lhm3+Q@ z>#TotO85`~Hrr^NSihdzf7P=!dbh z@$w1UaXQ?}97BC{VK-zpr)3a12v*_Y5lum8b7ApYrZ`O*maJ@cEn7y4I#Il~Q`s@M l)wU7oudY#&;&n|kr{k6Jo6^`vk@C!O{s3;ERPMujIv@Z5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.ui.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_add_cache_entry.ui.i new file mode 100644 index 0000000000000000000000000000000000000000..67d011eb2ac1abb4a0ff68972bc1da7df47b0dee GIT binary patch literal 693 zcwPau0!sY=0RRC20000000MOY00|!e0000000061|NsC0|NsBi9cDQfya$L~ZGIc^ zXzy?7z5RIr00000000000001ZoV`|EZ__Xoec!LJ@&qsQ+OANL8wtvWkjBKsG#-%~ zUnSNOyRsdc{CoV7q-oQQwyJpZ{ph*J$FWaI$M-RVz7$HFmm`7Vb@@R;xlw5%_b<>i9ETF3*q98GTg-8`& z5nMGv?Si@q>`;@%lbKD0Wk_eh)6B%9>5SlJ?J;o+N^m=UAC)y1Os*ff$)RPVjp8DW zZ>1^-Zh|3BPHS0iH2A7GyYs0QW@k`ARmw$EL`0Ou5|rCtvkIj9BM{*R3Z&$E9@%3_ zWL_4+FE@(xkKv9kA#YD14?*Z0kTFo1uGsDP-qt?$w>+eTy!du%!`CrTP20H9Lv_B|LH2;2IIJ%-_x$^cr@1@-5JI;+|F5LB6W&=BXj!TRH1@JeA*_qplW0Wk z;>M{g0gLS(4*RWyAQX5iXdd@3#Ui631@?vu^VT+phSq(7+rI$u)=l#U8u9@$mnPO= z7Cp=s%$0%+HlbT%wrgZ8wRsfwv|~wCJRX1Oyxy7p!G00000000000001ZoQ+h=Zrd;ry!$H_h7a<^DH8txO|1jM5-E{XoSX>9 zRuiFt-O4hWBJjVL5Ba4!Z7&kF+?nBycG**?qg0~QL+lqI*~AeN>y#}f{A8XlnQ#r^>-((Rd>Cd%VU!`HWHO6Bt;d;R`AT> zANBI$U%}wRz4rFqmg<&=qq=oVvUd`;zj8BIX3qG~>;6G=Cgqd>Y}a*AhtHJIf0I

+uEZKpP0%xOGKY$uXxA)VOZgQjGLh89vH*Ji>vkxwoqnED@(wvGU?826v?5ow{x zByrb3Xc({--`&E6O$S$Zl0?(9QbTTaHxBW{06~HW5W$f9R&aY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.cxx.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9b0fac76da349cc56df2ab697e3ad393784df484 GIT binary patch literal 2361 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.icns.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.icns.i new file mode 100644 index 0000000000000000000000000000000000000000..1e5d49643eb603afd0bf970d857f7bbfb72d46ab GIT binary patch literal 6932 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.png.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.png.i new file mode 100644 index 0000000000000000000000000000000000000000..a030c80efa0ea1e70d08227d626d82175f81fd2b GIT binary patch literal 423 zcwS>*WME_f1IBb9PGf*_{zE|#W0dHJ8z-OG@97D?AY|XXWvak`1|(408Q|y6%O%AH zWb=A@xC8-d1rX+71Cqs6RbPMNrbLvUP@{OgTa==bCQ5INO-z9hD5YpogOH3 zNP)*?b07Qbi^ZG2GIvKXsa&{KC~GHk>)mOm6-`U-tUSKEZHh5}9hO<_AQtwlm!Fn)~6WnD;@} zg3zyd4J(v1c^HpfU2I&=Zg!0WRb}Fpb&VRD1+hJ8$(mB;> zEBm2mt;Q;KS|z&}>^=)UvelUo=3bL~$p0(jW3ir&0~<};n7W_2Pf!xnZsnPvzOLe> usDk^|=Lc@>KDzW%jKS>>(|7$n|C0Oe;nm@%SNt>v1+S;8pUXO@geCw>$)|$= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.qrc.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.qrc.i new file mode 100644 index 0000000000000000000000000000000000000000..a4f0698822e055b534c31a3279eb7a35064e9e83 GIT binary patch literal 163 zcwS>*WME`~fMg(E3S~3?hXT$u_oLUnmhZl@KO#Qj;$gNnA>a87NT6cQX3nCrZI6Q( zm}VbZbmh^XON*X_v^FievgHg{v}*17Cx7-Nsj_x3ZCJGB%$yMG^!rENTzPP1(j}(7 wO?yhDYd0v&lA3;H&Xq|a&c=7Nn2Nl*4WH(IdH8O_<4qUYt@#-$H|sY606f%3`2YX_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.rc.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup.rc.i new file mode 100644 index 0000000000000000000000000000000000000000..1b48574261b28ae359b509a2b41d7df0c2059c16 GIT binary patch literal 113 zcwS>*WME`~07D=)fU+6?LqU7N@p&Kkaun+-tXFde=ud9kxpgT65-9a_@r?I$_V+VX oP*4ET3JNZs!Oo6BE{;w*VXR7AT%S=CX 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 KAXe)sNd6bmudfmS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup_dialog.h.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup_dialog.h.i new file mode 100644 index 0000000000000000000000000000000000000000..177250b53a701ab8d7b916f1c9f31f09429a96a3 GIT binary patch literal 1377 zcwPZv1)ll<0RRC20000000fEv01J`;0000000061|NsC0|NsBMR@<`ur%`do!hgF( zS)T+XOb%NB00000000000001ZoUK+{bJ|7}e%G%!V`nm$IAEvlWQyC)fQ)NeY;$ux ze)25R0d2eNYIau;nn{0qk5(5Xplu$)gDrjMepkEs)3^G09>7SerDm%R0QmRpPlWg2 zYh}#)kzjVA^a@gR!3DxEC{Z)3G>P4-FcFwa!JCOcP3fIX!4z#0-*6_>vK5`L;SF&Q znOr7pnezMZ-Vt!aY$ird>L721ZSz15AYke8>aCb1~O=+e~qL2N*bjtPgX5}t`OkF3}`f{*BG`) z+Z1u9v1LD5P#Pj@<4(K1*=$pj?uYFiYh+gfC|wYuWn7q6>KpxL5jSAe z!g&Pr9CBkdpC=YWcpl8|9-n5=eRzTA?qt$^n7v%XhTBLb7I2LcGA%YD*;On!36Ubr zq}_sAz-;q?eHy93PFR8P)gV{rWI)&TE33Or9oy-RQ)37_qHI1GoqsM8#m4%w> zWplMg2+A}{WqE+c1+!AA(=u%XW-0L$)i-OtX4~^l`9g-cIB1;L$U7yROFTv*F&T&? zL^v5caw|I7VLy)V8JEvohHCS36`n;JSy+Ki68?JFvL~Jw2xbgqx-+Tk9CMJ*f(U5< zP!#akO%WQ?W4gpUb zUSLnW)7h8sK2x2?uaCW7`~J+!7&{&uXl|Tc6Z-ctIF|w=lr^dBTJaDJ+8&ooZ*RE9 zfR@0v5zs(c7*DC632Erm|vDoSm~O|-K^l3%#1r@L?MBN|@ z!z_g(W}`i2jw^o|(n^LjqrHTSFl9Cs&kS2*g-}zIO1|B(D!Dfzenf{4!~aaSl6$53 z8X=0l*g||kSE1ss#uY8}DYZg6RgSAKNe9+~a%9@*g|S-JN}+9|Hlm&MsG&?&;OYyX zp`0Ib@f;?!DYxa|#wfMaT6*7n?W^dWo(a7 zoxMZ2O!E<1;n|LqWz$czrcm7rMf=6wr95QXx5hF_M@dOw^kt9+edH2WPErQ^+r_C0 zHO7zgKd6P85NCtuXiadRQ-j=a;|yHOyX{DyY?28&2j!y7d5fbE)?0J$S`kj)FveBZ z>^Cv-aBUMN@_|WYqvnp(sYWF$_kXNBi|$c0A7*Fp#T5?00fEv00000R{#JD zXaE2J00001tpET30RR90|3M$|u}V;CStf*IsAp&alxASy<^^JNprH%^qt6n~chHEQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup_dialog.ui.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_c_make_setup_dialog.ui.i new file mode 100644 index 0000000000000000000000000000000000000000..5888c0c535384c14ca5a10c434cba1dea3508201 GIT binary patch literal 1607 zcwPZV2DteE0RRC20000000svD03&?>0000000061|NsC0|NsAioLTN`YbZO_kbyfj zIXrsQq8g$A00000000000001ZoaGwXa@#iWJzs(Gb4RqCG-)-oW-P}|GLyrJG|poO zBG)1&6u^R@j(mL<07;P`DN(+Xwr@BVdmmVke#XcOWXc3TKY1}YJt5;~#1CScrsK;G z^cze;WyxzsW3li(yN&>B7A`;$Ge1B1{MAfP2&YRpKXK0)oWxJ0NI4z&QW1SPk2 zm-rF_Wk$r`j8A=UlTWsKvdt$*S4HDjr>}g^4()OTY!RvP?|+>6UOqNBy#lH471Yfv zrdyHi*ncBg_}(lP%s9L*sa!CgZxWwp%Q?vLpT3umEU_wy28uMH0pkl7$IHDqn1Usd zVtsysh6zNREx8%yI1Y(%NRS;Hr!_Vjj2slFOQ1GP`-LJ6=Xy`)5Es4`+erc2;7h?q zRkn$rDv5lKzeXT|u#~6>NGdWJ0MZU&3rexSW{f-6AGQ zy{xtgj4^xeCKZTPxrq5-)dmp>iMjz5L>ie z3lWc%%)s}|@F9(MhX8Yo_p<}c_iT~K%S*X&Ansggr%B9|0$FCQa^6uN1V$29RI#e? zK457We^#T>4T7?O#=d8kx=Mw^#a|L}7cAV`Nr~HGz-&(=npC|dXTabYjXnx9sPWLI z-44v5Sa+iSLRkvoLCj78zriHn6!60(yt|0^im65+?=I!-_$oovBGTJ7k@^U=Ppno( zdWp7AxGt=90ee-X7j>FF^R|I(&D~}vs%Gc5{B58P=5UMaa2~hV4(4*Jw+^mb6?!-a zT1D8bHw7w#s9BS{(L34DE;&X#Y*hD}X4rUKvv!naYlvUptPi61%LsyRmAlYIxS~9O z@POv`dQc?Rq`*V2xYC!rNB1Y4d}_(1XN}B3%S!ncp}q?QtJlhX47d8_Y+I{@RVvfc zZAYUIjI(97ydSN%jJH?=H(WooJ^YK)S~tJj&RhAj=e4fB!chZfmjxTvINmd7c)6@! z_%6awdy^aN4d29rGnRC@Ct@KVVQn09dxTpa6$6^cy$P_O#ZmQQifWQzyXxxm&)^>! z;DM3%P6K(@ah48W4idgV?b~B_lCw0#RBhufr^e9PS!{-?nLx@y(46#k?gzZmFWPS5)Y`hFK?FAp*5y;I zS)g$S>E8P{jj@^ISc>@Ki&$TZ7_Sb_y}7H;?t2+GPKu@Og9sf>=X$=Fqf601y+b** z45QK2Mgb2YoEB#r`aX{I1R}a(LiQwY$)Y~eUUVBaKF)wGZN&4vHfx4z5vbP~L@Bux z{FW^;`^=RkAyq&q4@t<<1YM1AEIKRW8ia9-yYM&t48}=fPQL*TQXj#?i(;G>nZ~}F z-Le?c<^x4fv(T6=_!8W!g0F*F2i=9L3?&ZhF8ukCz{x%=N zO2=zFezmc=ui})Lp1S>O3RT3zy=5v8J$Xl4%`Z6qwuX`_J*Zw-g2Wg74MeDX|wwE#{XmyrUkJdQo2c1TxB$x2+YmPnV5;>32)}k zw)-*0Z3j`P>cirvOeNLZfvbd=anQFI=h~c$UtrT8Gc?q(-!df7@Dq<~-xxbCNX@S^ zH9>2$oq{ULsX+KamZGKXJT-9D6^q0EY~nOFyMIu$4orW5Ff;vC&~6uN1|UN5Fo+x+ zgGlE+vtu}PNY@w4?=D4CYFTAGh_et#ECLe+%~sVjXsV}t>=wE8

*(FJt3pKLAnt F3LIh(39SGC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_delete16.png.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_delete16.png.i new file mode 100644 index 0000000000000000000000000000000000000000..799edc4a1afef788a9a175a0d74d65a5379f46f0 GIT binary patch literal 796 zcwS>*WME_f1ExDbd>g`MVEhjSz6r8_1I#2ZZS5-B^XPr4;0gtUdIls=+8N;I&dVjm z1!VJjdbk7uX#o)CU;~o!pZ_NUDVB6cUq=Rpjs4tz5?O(Kwj^(N7l!{JxM1({$v_d# z0*}aI1_o|n5N2eUHAey{$X?><>&kweiHU)k$8ax`3DA8Jo-U3d6}Q#~`}zw9irD7c zSp_?`u}oJ}TDJ8>M@_5355XU-8v?p-b?9Asi1k=HSKQMQM{F|Stn1~#>W z3IP#23Kk2l^k{6H`91BHo%khAr<9|@ zPYny5^eEjwoGt5>_B~0rONXnhZqN5}s1I)b_x5p0QQGtaf7h*EtJ?KzQ}p@^K5nNk z@o|Sv`!irU(0*l&qAR77Mm39hRtiB6M7FiJqABEMdk229sVsTNd0teeKx=>pZv? ziurZKM3&x75Ip}<@Q}%&oQ7KximPS{EopIXdEPehNgVfM;mw@^XFpz=lFMGAxLhb} zvCVUjsgkRnoh&?Nv5Vwxe2dJ4Wvc0HB((D z^et0W4Y?a3dOlhwPn~_jPPxMCwx2p`F3g<9pY!UaE9;qKoloD_yIx`Pce$}?<_2?b@Yzy3S1+kagl$2!sDztQ?K;Q*M%*ix zmVMs-fA6B1!T%m@wUECl@bvWU<#&rWzm;sro-<*cJ9B>Ao2@?Si!K`c*WME_f1IBb9PGf*_{zJhX>j?qkYi|gKmpM+ml!M3`n4~Gr-TCmrIHZ z$maF*a0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=*4F5rJ!QSPQfg+p* z9+AZi4BWyX%*Zfnjs#GUy~NYkmHirZR z^3UPu`B~Q_cg<*2Gx1fLpwy!NI%)3tboLWGU5&1hCxxVUn?Gd%k_Ha)H{WXDeJjhKU;Otc% zWc^bi)df@7Z$IV~U=l3YeZ}K$Ym}U4U>JkK8s3gQbtYwRpPSxNl9OmoD>yIr@2l!2 gv&L5YpWOfZ)zu6AU0?DYe*_9%Pgg&ebxsLQ0Ea`A+5i9m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make.cxx.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f9169504827b5e8a0aef6865038f4f981838e4d7 GIT binary patch literal 2813 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 P1|=m3CQ<_cyRj}cZw5CW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make.h.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3433925474822646bf0dccc7ba81d13a822ac951 GIT binary patch literal 1603 zcwPZR2E6$I0RRC20000000sj901#9F0000000061|NsC0|NsB3fZUz1#L`>-E{UJo zeP~YHU3Yu{00000000000001ZoUK=FPa8Q9{=UCrq*f?UNC5TJHUXp%(vmBIkfc<6 zLe8#}_`0!Iwl_4YdcXZ38g1BA0QdeJf4?l#&%=x^iO?)0AQfiOtVE306Km4 zjl%(Sv@+&k5HmYfdI2PzikQPEF1cn_X*BDrD2+K;!RujXMC(nsbqMwO{t{lJ&J~lh zl+8%1^X3f-E|~QuXym^iA0EDI933?dKj7Eq(fj7x56<+CYa^6wI(WVm{>M@MJ+9(% zMO2Dc z9tmT$n533R@U=I-y!kSQ_Vqn{Z4Za->+yXH9)+E&)B;~}2_D7H(RPu<0*w$zGig_# zrqJ&WJC|tHKJQ)i#`omx$KLq5I~u{qn<2De&>oI^oiA7IVTLsLG928Dx^*8a;j)QZ zatMnwN@YdJjSFU>$Z1KnXBP90QT;K-?KOhnm6*ziPvPOg^W|Y4yu#l?@+TrObxQqF z=i#n93|=Lg%@&L@A%&bljgrbHNXsU?Jvx2|yT4ZX>*$zNxQxVq>AQ`w! z7m!QHC-?#9H#b-NNSg8GJ`(Aw>%Wc0!`}5L_}N0MEHL=YSMFz)4DU=?;gZKm%MX?H z4)lkF6Z8+-(UQrKM}>eCX{MZ>)dNs7T{-ftCK&o)5+#WKV4CQ%Im6QAoT>K_Ac@k+&)}%JJ_Dxhkke59^VhTwJpBv z1_VJ(;Fxx@MdfT;45Zxp%{@qW*Awy9LVM726Tlw?v6yJ4S9Q1gRkH*wP>3s@#Vn51 zqaPWZ8G(yJT8@Va4GkZ04m{-ylZWXrX*dUF_5r7}WO2j9%2KW+wjf&J!Xk~WIIwfg zS%j3@2X4c9J!>2v0k(6JPGS*4*1V3|w+}bxe|J0Mz^^q)l&} zz6PPd@!W8;YQ3IAqt(a>E^__f*<&Ik)~vJ#4wgwO;s^sMA)h<7|AicJgX$5?@>>8w zr>5+0aY3l!6*dKGqO+Y!Ogc=eXHL;R8%ZfC)v`g^s(^;6)^w04#&%0v6_@D4N$J<`%oDb)C zW#&+eQs)-UK$vQ^po`2m;@X;c8QFI8YOhf`4kUVk+1M1?tXrn!55>D~a_>^L+mx>C zQtI?)K{w~0$A;R*)M7EkzRG|~bCSV29(PrzSx_XQpu#iWJ(+9XJ377+dIMoH-R;|& zQc9ip8L)-H(`kx5h8@9iTWPmOzAhO(1eD|(Q|J>2DZ&zBirah9%& zEqYktSA3*YN`se>2@Ahvz(^>)x1})q&T0?B$i+}ba_&73Qx;fZV|-xxH`OyAx@hh^ z*{(EZD(89m=3F_D%S**PX;mgpdvoHH?OX=C-+7o?Qfj%|seb@r70Yj};6J1fT6pgT B2l)U1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make_cache_view.cxx.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make_cache_view.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..294562a8841aa998e60e816a0f2f27510d71038b GIT binary patch literal 3805 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make_cache_view.h.i b/CMakeLua/.hg/store/data/_source/_qt_dialog/_q_c_make_cache_view.h.i new file mode 100644 index 0000000000000000000000000000000000000000..828110edf681aeb40943b780e0bf4217bad76c25 GIT binary patch literal 1456 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup.cpp.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..026fa893f30d507e363e4039b9e379617fcc4cda GIT binary patch literal 1272 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup_frame.h.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/_c_make_setup_frame.h.i new file mode 100644 index 0000000000000000000000000000000000000000..baec3f6e2eb8287e0a24783b4632d010c6266bd6 GIT binary patch literal 3616 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 TjpJUca{ZRG`P%p|{k2idQ69#g literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/_command_line_info.h.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/_command_line_info.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3e14cf0744cb06d09fa52cee02aae561c1624bcd GIT binary patch literal 1001 zcwPbN0~Y)M0RRC20000000XH200)c!0000000061|NsC0|NsA}?T3(eY3ytFeP8)w zFq3ae9leeK00000000000001ZoUK&vZ`(Ey{jR^_+7yN3CUR1&Kw)D86vauj_!lg@ zX)p{1O`R>G66ukYl%7XThU zUkjG0HJn4WeGthSt%1+yn~d3&(mCADBe>B@+Vj3lfVLnUvM)#^LzNU6Iu3X<4daz? zAEC-~CX<1X7|E6L)3XxZQ1XDub-~syJ$(0$Hm;d%u!L^b?=LPsbS^%2E-z@=z5Lky z@JkK-gxUxtyY)F(iss|ecToxlg-w;NseV^_jS{X@lAsHPYV%c#b!wr-PaXezxEHo! z8qXk-+;{(`j)zJbrL8D(pBS?YYM23y26c&vPi!&b6Qggp7D$ZL+D*69sjAB7IqBk4 z37xyyaL{>5O>Lgl$|Y!-$c*o5qu(qQ28>$O6#=aiVXPL*!eRms(d=$KpFuEsgoj`{ z4Mwxa9#n#wEi7P3eKssMC2YRQ1c8W1GikqqTEVbC4etmQTt$Ou_UMYeiDsjI9K+3c z3IR-l=`0H8gJ8O2n#`w@aoqQtRvj-}suF?kWt7Saj;3xVSFUL3Ou{UUgu41^9&L9# z??kNNRe~#WQql^C!F@j*4~N0%dJv8J(dcHpxI6Vungn<`?norhiUi>`&tpr*WIBnO zE#s%JJ+JfseuM{}ADO=EcAbRJB0k@4Yw>;z4Re&Xmd}mMIz#Y`8AA-7SFfIvc;DQ- z=m=+8s|)Vn-lkY)f_EwM4A465IYcS6Em#Ksyp-TIloO^+GkV^nKt?$fTPl?`(F1Ht zNDEA_`5Ew(>9$*!fBd;;n=O6xiLxF$Y5I$@9fSiW*~8XpX%XB3FgTlHQLt^F@%9 zOma*gWa4KLMFJ~fAYgYIh9=j z$Rw1m?Z%J@rY_hW;*82`Fiq={srsg%1Ldh~kp#PP XXu97i;RIzu4-TFCpKs2;OkrShphxCu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/_n_g_dialog.exe.manifest.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/_n_g_dialog.exe.manifest.i new file mode 100644 index 0000000000000000000000000000000000000000..c2b765209ded8499b83b51a06c7953724e813d6a GIT binary patch literal 392 zcwS>*WME_f14a)92BvZbDCa*E9Mb!{X~}_2Ie;z zh_v4Su06|6kMY>DW0D6Xrq4{hsJ`9ydeK3*D(_p1KD-YPP>bBszx;Wf?RS$|*EcD+ zUvSgt$$ViS$aEr9%b@?|^>24)2PNqoo+8SnxQtiA%3n??jpsz{MH>Mp875yJ?Ox-< z-xX$lT=F1Fa%yD1wq>&0uj3Q8#hnaDNqF=9!%4>X%B))smBj>Q9X%+qRD9O^R@OZ2 zw?9m{3nEuf`Wzs_Gxu)}=Zi<5p3P4XpPs7s>+IbVXIDI#Rem@8#eWW;t0#YW zt1flQUwI)bbjHCW@q&}Lwe9P8H|6R&fj`2t)>=8dme}7{J~_}rs&HOwrr8EDp3hxR f-@QGq_~4)V7hSgRX8diku8#38pSWv651j-6@7}Y} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/_n_g_dialog.ico.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/_n_g_dialog.ico.i new file mode 100644 index 0000000000000000000000000000000000000000..0fe72bb38618835b12c331db5d4f6defa2fb5a00 GIT binary patch literal 3105 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/_property_list.cpp.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/_property_list.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..e8f75e4113206db0ca2154b050b43ef2548b634e GIT binary patch literal 6285 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 D2!A^9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/_property_list.h.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/_property_list.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c71289bcead9ac72831315cab57f75ee09163783 GIT binary patch literal 2984 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/about.html.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/about.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8968e69eaf6cee3a2a888a97c61586947dec31f1 GIT binary patch literal 569 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 W;z>$4zYg+wtVVdSbm@NvHMg>vZrmRL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/aboutdlg.h.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/aboutdlg.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e801ebb658bf049e205e52aac8b6d0da900f51c0 GIT binary patch literal 1374 zcwPZs1)=%?0RRC20000000kZZ01X2G0000000061|NsC0|NsB+!(WJFVpS1b@{JG# zl7UQf<#&+)00000000000001Zob6UybD~HTe)m_LNv155$sn1_R;{V2T?CRaBWekb zabGBeR=Wmhif+a1<-hOgM#V%YI}h`?JZN(+-?<;UefjBUJ&gvyuwaWKOgjKDd9Y}h zum!w@axS5X5EiDj^aBUXM&~PUTBD zV=ECS3vGF|hSw<73$w*4Tu3?d%^M_Gp{SHltvbKc^^a}+m-c%du7B-({Ls1npj5w- zf>V}tlmW7))yuVZja+0KE3ssSg8Iyg1<9bx;+RO5$@0g7E|vmX(S^i+2VbZt!-8Ca zlSP{R<%(~zjI%<}RjMIkl7Ld*Q9Uw_)E%xv$^sJ@ElVv3OZW}62rvt?+0TajQ$iR#%N^p z{pk&q6oXv}AZv`XLJ>>UP4k4J5&{)rCLV#!!L>)`J!%FllJ_ifLE+rbD7 z7#btrF~>b)v_%?@N5g?X&XGbh@{}k=p<=|XAh_#~?}Fe0noW3BQ;p%UXCt|Bo)_UF z4bgQ$ig_3jINNt?l;>xSbCSh$-e|NhUp3%THcGOJ3CA;f)yC)d8ClQ_0k(|u?Fr7x zOd$BG%$N;9FK;y<+q{O2R_r@Yu-wln@>{$2q-6GZUJ{th}l1oYdIa z#6A}VOMu2C6Ld~-w2n+hCuDYccdWo0xb{B%aINe5`#sy6y4^u9Fx`E5Jb&7=(N)tJ z`p%&Lcexqap7VztbO$5L9^tz;^?ch6T)RKUH?xNwh|Grn~Zrsc~dPB-Y@I;(n|Pda53EJ<}XZJfjH}k5wgib8{+}2Q<((*UE{i+iR^`=fSoD z*XheF9B4kFgZ_L>FdecQRb4z#S!mX;kZ76st%u+3)z&KrOhqIU>nV zpd719$Z<7i;%ZNEEUW{3`fi(D$#QWay9ZZ!wrD~W<}wE-byO$UDno`#sR=pbC#837 zc3=ZLvLnXM~wY;^%P&|(a)n`80h}P4bKr>3$)n(^-x+IGq@eKUhKkfwZ=0kAY zu*0RjgMEH5H1gUYV2M5_q7+7hI>#o9Y7SKSY~dOEn2q%-N%DvMNOoepnAFkcAHVMaw7 z=JJZiRz*ar`jwk*MZP1VI*qpc)=>v%VM?AfNR3TV_6XULM8uW<|BZSoDL)pXhgZY| zFM|a5l9eEEf(6a_Z%Tj*6pyO0M#0j@gOA+S_q%3mbsZKooF)5kJcU#x=@QZ)N@ZX- gTW)R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/app__resources.cpp.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/app__resources.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..9d6eaacad9d9476628cefd7fb074144e9b8ec4b7 GIT binary patch literal 1033 zcwPYs1ory?0RRC20000000YSY00_tc0000000061|NsC0|NsB+4m-D-vUF%UM271w zw%pq-$qBds00000000000001ZoUK${Z=*OAedkx)Nk>)EX`z{&S!q(uY6+n&yZI6! zoAwF0;1FxUM#h9xtN!=BhI};bRGo+60m1z^KIi(_*4g)8^%w@gREk8BtOo##y8$Dq zNZc){&t9)LZ*hlTC? z_Bgn|f{LNoQUP6~&IU!Tus6$7hD``030IFGmN0UC=N7x{zBlxOdrkJ*3&!qj2G30lW?T(yi7%44=P z49kLR6cLFmN8ic<wm-Snu5#=RBk~Ukj zOV?iV2I0sZ&l}`wqbtvjV0%4BH`1xd%Uq}19pk^+wYzGjXr{lq@Etg!XL{W2;kVnnY0_i8V<}s?V4HiApK4 z@MTN2@d9@gBJ#){cHZSMaEETN}FAJaP ztTy8^O&h4IH*~)0e>&31kmzfbo{qlKsG~ox&})$2)5ng>Ua8YCZ)tnc`(*qNC3?gg DzoYqk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/app__resources.h.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/app__resources.h.i new file mode 100644 index 0000000000000000000000000000000000000000..62ad5cde3ea02032440cb4e67dc99fa7189196db GIT binary patch literal 815 zcwPZ71JL{c0RRC20000000Qp-00tER0000000061|NsC0|NsBXKC3hnO(bV_Tg8C) zdhIz(#Ec;T00000000000001ZoUK${Z<{a_edkx)wNsULD>Q94X_+RCQkt;kOF)+O z2{~YhHL#Iwl1@|q`>vr)J2lf@=7+@GbI-Y-;GBH=U&pcl=28@rR09B5e!pg<6a}2Z z_HN0tf@%fdPwSHCT*wNBivVt<;QG|(8K4Qg3Hd=$WFoSrq(%c?hhCI3^FZo4kyMFB zrc~MMw;Onku4BTBh7`uxd-Dbj*F<+r3*?Z^W4Ei4i?=A=Z%a;0$O2q^p zv{C4Wbq{^Jk0`=!qt`;VQeT8DD2FSNWz;~PsDDaUtTpt~W21i#Uzy$#N#8=iQ``Ki z7WV{KLTc7jHY%1Sv@``+2$dU}*{Bv#`lM*m0u+C0JuaR5TB|{PlNy7C{5IIcz&>JDky$Z%bd~1@u3F4_AMQ}3gh`s46(Jf&f>r&u4Lxxz>yYI#8(5 zr1%*!{@80npmR|-wK4RLKUzD*km9R?uYrOU(-o8hgQc>6+f}!u<0t5y_dGr5o@!hcg)j8`PGkMs(E}=d9{u@Mq-i5Z2gy{eP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_find_u_p_x.cmake.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_find_u_p_x.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3e83d1a928326b065f7431b109ac7db35b99d4c9 GIT binary patch literal 301 zcwS>*WME`~fVT_`jBB85#{W>TNw#jrQ}t*DWkCo&*`iaEXg2lJX7 z1lr#J77>2QIO*0kcZ0^zNo9&1%gi@l4D2{C>8`42W=(nf(FkFil04)8HUI4&8}e7& zd~;BY^KEttk&5Z`f+rQ7VEz3S1FpDv{=eSbIxqmOb zqG}Es8#PS7AIJ0f%_Z}RH*CHMn|rj^S4J+}xkuPaQ8S@r8h2^t`oDWU>Vx)}BrLUC mlxisN%6??sqC5Y8XNYZhQ7rm5`E#?G>yIm6xNZd2&H(_yF^vuY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_findwx_w.cmake.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_findwx_w.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..0dc39e5acc8c6f98f3126a4d4f0911280a034eb2 GIT binary patch literal 3764 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_findwx_win.cmake.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_findwx_win.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e04be6e40746f04930c8a679dea317e3e13c3a8e GIT binary patch literal 4468 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_usewx_w.cmake.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/bin/_usewx_w.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..bf8fb2c66816dca77063c0b47bedfbbbe2beb245 GIT binary patch literal 1168 zcwPaJ1aJEQ0RRC20000000d9~01J`;0000000061|NsC0|NsB5yLyo$zy^A2Us|^L z16U~WOaR*e00000000000001ZoSjzhZ`w!@{qDbFlvFw@<$SrEPA5g`2LpyWB@h`S zsB{uq@M5+xHuBnaP{sd#Z`U?9KT=&mM1l40n>RD>&0;*;Fm6Ir{&vKQYc06vw8w>>U8_I zH$J05pO9$udYn3hw#q^RASGKR64YiAiMJD^k~S5uPsG9yQMp!0-GK zv0`l`gnxfna$?Cfz_{Y0lbViTO?AQQ@j?L2z8o=U`HTT50Giit*8w&s#99M zbF|UZ>R?H?d7>}`+STBsaz9XIXof^V;VKbbO7D(xlu7_zOK}~e@iN8-mI4{iUZXfa z>|tTfcCvzR7!igG61LGF;Kgufk`qDXKm%c)FR~y&opdyXtHB_8MRq=)&boGc(x1#C*whaVRTvsZJ>>UNu*Xi;-(Di^eBkb0i%4Z85E zcQ$?g-rkFf+#k5Xp?F7}`;ZBWn4;e0Xw9L6rYq6P+|sWbfRK^reG$Bi0xtRj<5-aoDq5 z^rI;GVPc>0I__M#>$qjrVo7Nb2b6G`g{iWXBHN;=>v*=Z`T0G(|07esNpdrcgB!Xz znFEh>J{tawZs6ep*m`-fhu!~$+^w(a$6uWpSBAVWPae;Etj@hRJl-7?S28*^*yHuq iypq91*)^;3%euRg$QX85a(SU4h3N`d!}t#`j+nJ920qIG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/changelog.txt.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/changelog.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..acd3dbcb023ace183a75c4f63628d54ce9acf0aa GIT binary patch literal 1022 zcwPbi0|ER10RRC20000000X`N00)r(0000000061|NsC0|NsB4mK{>{405(Eh${Xw zJ!Dz^60g(%00000000000001ZoLyB-kJ~s5z4uoTbIJf|wwFEh*iNUrb7)d@QnWov zHf;+dOI}H?>;3inNZU!eKmsJ@*W=?O{m_}va;7FG3Ov!nC-cJ3T*iTFXMAjF_w&u+ z?ft9Q^k728p6pmk41~{+Vw*VU%`?P_Ds{?KIu?5cGeZC3z{wQUfIY-QmZ|Du=0GOQ zeN0TIDV!use&bu23MpLSKGUvrE)zaObfI`DiLlAc0_#JH0~M26E&{4euBM$qL%!y8 zPm}YWd^9yJNrFPNqw_TlrgX?uFLtynCM_&^*>iEyX|sZ{+z8Sfdq%F%3Zi!DjO+bU z$>bN!GG=t+8rqOgohj7u9~rjEgd(hbVW}&LE+tG|OR9y8S`onf8yAAt6(j)()Vo|T zFho$&Y(g;Er077isQ@Qp68zJ}F%!HC3v2JB5TY`hRCV;v$Z0;%c^)JZk4Kw}X3?&K zNeRQ1#+HBsed{p1$K(0&iw;I~!1dyBiFHyCl+_#Ux77&Dz&NY)*yI^gh%e)C1FlC> z(=zmx2XAIz33Z(INCh$#SndGJ;K%Bkui2_N%&!NNl|dmbaRYHdp6FAiVtkGiZH{1h zg?p-9%6Ak8QGy^-20`S&sp3!sopcEpVQaF82CPZ6n}nk(hQ_s{5VFUL z{VFmL720axwXf?~dJdyzm>dM!$6Vmt_o77w0u@}Q4Q1>XrSSG|b%H2t91C%&uBk2N zn0a*(#6VF5l-6AL=RoiM$VwU(96c=3leN@%V?EPOwkNAoHWw1SSk^g?x||ZzMmY!oS<7ez?T^Q2`F}iJdiwrZH7oAR2x*5$ zy$P=2T&{%t|4^!aMKk##0;BWT9Oc^jnAg*=M(JkbszMG!3^L1^p8tOOcwU9J&h)NA zi2z5KXj_u{j1_mV7<32YizkpqK6EOGP0{; zMWcyjCFJzsqGGxCi+=wkk1bptFL$?gaK-Ms+kL%k|AP*H(~H~iJgq7M2-AYChH@iy6V?r$Wx9Y(z>Sov4~0T&vq?rYuo9{>OV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__icon.gif.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__icon.gif.i new file mode 100644 index 0000000000000000000000000000000000000000..56fba9f3d85fcc493d1170ecd1e244c15f8e7194 GIT binary patch literal 209 zcwS>*WME`~fQbwY%r#Ip<9{gV{3XxdJGU^`M()vZFEN$dZ^|#lFd%`7ImO>gHgE8G zlKvn)BfX*Ff5M4^H#ZF10u8v_gaZDYJap#3fl~{ZA2obpVRlzxHgES~VLp5?t;~&c zx+ELB#H|}Mb(1Vur27m$X?OWfNU%6?;ppn9(q+kql9tP{URz-<$El?*Jyn8LM9NOf ry3BaP9*v(nGe7S9>62HLZn1q$!TeLEk=i9w6BaQyn=*7X=ff literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__icon.xpm.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__icon.xpm.i new file mode 100644 index 0000000000000000000000000000000000000000..10b89ddcce23c70f9103e4ba7b9fa3fd12a3b54b GIT binary patch literal 949 zcwS>*WME_f1Ljf&2B8TMHUr~-DA>sUT%l>&G{#%&BYhn{O!a=4xyzIR2~^CPdfhQw z*iokKW3}DUOZU1i)ZV{2^QPmTkQcr$0tNUtvgu|`jdB#+zk9QFQ4zrSvqoAxkr z>rS2+z8E(>;psC^Pdwd}`as`&gBBXhO1OGpRbwdgYPK-mHBu3#5P=g|;1MkF3>G*s zRC%>qSnnFCNYhPODOXQ`1-LNbDwl6pySlvk!Gcmlm6=U z^?QNr>7UA$)qPmKUa#8y?O7Wcp=S^G)L;2`rpTj~?^V0n)4z)?HrMWY*7)mH(EX}c z2Lk)kJ{395Oh5I<#KtZwJ?;18E5fh(<(Aj~o;!2y;~Fm~|M}|u`SXM10k2CO3IG5A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__logo.xpm.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmake__logo.xpm.i new file mode 100644 index 0000000000000000000000000000000000000000..0769328970162e62dc9e521308a57b2667c2331b GIT binary patch literal 352 zcwS>*WME_f14ab~22N21DCa*E?Dmx0W65ZLE7d_FV7|7%^*eWeComv^iaAHmo%cR$ zAadYi_5UvSy`qVgXZgjC1fOeicXUb84K@p3vAg5P{@F_>o9159Yt7T2URU|#vW`(j z&5rh*i8XJ(yj$GxDE9gU(fL)e`*K!=e*MBz{$cVG6Lv2K)+aAZCkZjJ#t1GFQQTH| z|4L8Lw&KgHqw2fUe7|RFPMvhg%zDlAv$JNeIc@%1_ssWgx2Bop`RvIn*|=?MiPtvn z&fpgz??g(wERW8$@0i$p__wiS2H*Z2jqJ$|md%a2$}7&~B^>9_FqVE{xaU;ou?OBw zY-~LJMvE_s-g5JwdG-bO8N(ke&92gR3$s6HH2WIVe6MAjf7Rk%e%ri7EIj2&Jo`WV oU$pOF^RWv(lF8ry`d#mkoG+-pW$t3bT9;XW?y1%HZ8`M_03T|h*Z=?k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmakesetup.done.xml.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmakesetup.done.xml.i new file mode 100644 index 0000000000000000000000000000000000000000..0a330f9c9d011213def524cba934eed73e91625f GIT binary patch literal 2186 zcwPaD2zB=W0RRC20000000>F|03V6~0000000061|NsC0|NsBKGUGpZv9l2!KO!XE zQL5hQq$j)p00000000000001ZoV8hNbK*D_{XV}!#a3<6wS@TnsGZCdO-P!Z1bV@l z?*1rj1-vm9V~M1hU%&TCc3xndcB)gU3b7^GI``aj&lSJ^{(YU1dsc{)=Vu+WZ*&OD zW1gh>@~rca<_UigC#L0Eo!@`^HJYAJug3F;T#Tqh@6Bj@4$m~~j#}`~(QH1R zPR=?`hYV)JPvbvfHM2vm2J`58dOp4wk6^fE814!D+GYn{XfXc+o<5$=#?iOo^lCbT z8Ln?zP5>K;;5lDLAIt0iFw{@yar{}weO&ykV+W2O_Cv$5d?T>+o1HIA;}ZSIYJ zxOiIO<>D6?Fi`ENLq3f!KaJ+m)1v~IHJS}aljwXp8L2ftPvX%2rGS!~lRAsZ@J3MO?Q=#95x8n4(}K{+=^gOVafEg$MYu^rnrt?&(? z1P4Iz49^M78c+sF0-;`WAtCfJ%O%+gxR9kn_5c#two5W9%F7y!B!!`p7bz2fUO^ZY zJ3xltZ8rzt7*4ORVXv^kFDqb^+-*Q$2uxcPATaQ`2Y@D2J_33Gzl+c?hUX=IW*vTE zJ*%pWnn#0KbPlgLk7nb^C1lX4X`G_4{CKtnRzC<~X~*zuz#Y;&W*ML+B@hmNK@pb) zq!U0$GrlA_v0C?6$?(@4GM}Fpat*pmY8;7v+jdB36)-BK{ zOHMPFf<18TR^V7|b2fyWb!;=Rf;x$dK((rbBB^9+m2XVMMY_N%IiYZWgUQHGb|0~77 zD^SV`U^P%0W`T3`eYhiOm8OV2#W%h77R$9fDr^w z-78i`EmWRqSq4hYyP)#-p|UN{^6fh3G(@*jRv_(z&?RcbVxDnjp|dUPXNr)x9!&2O65D@R>n7;c8n1!=N7ohGTkOop6=Lm*ramBBQOY zvcWN5uX+9$u5Q7U=~qGQfwX0;vZ}pm5TL!_TS=IV4;6x^pxvPI1Ge2)C^i{_td*~(#bNkQ|vD+v8g(QKWH6aB(kn?MSXgT1-G~=qu-`+QJ-z1$m;H?eYdI-PiFDjA11TpjXvikO!Kp zwJ?9M@du;v(4iiA`!Gh z0(zjn9fH+y!@7R6L<00c2;?T%zD-7VCBu4Jm({TlQkGEoP!4@|?h*6N?qma25p66g zM8R%Z!Jwz_lL!xzXeKz}3&FJxBkOc8DkR^)=nXH_Tvimk5M`UHMe8WXKcXS4-ls>< zZs;Yj3^hhDXo?`>_bP(*ZuMsc&^5i#2y0I>s{jgyC(No5*a7PLgb6Nh7eb>& z0kK;ic)5nv4_qs>K=Nw>a;cA901NOcIhW{S;uRNwGR=2uK(RcZLBGkgRn|5}Ro$*W zd4)*uG?y73PQbJWx@*y1hfP|I+j)g&yYBjZc-oF+^h`J9Wtet&RHmzjsyuG&sy=ut(bAQ-THs?E2fj^d0?2H4^4%UG zyANp&FH(D!@T?gv`wt-79osE9EfRDeg^agSRAv~zTKTFMyUuZ|EBSJnVT#}5H!aU#E-@Um0;uU|`w&2icc+LD{wcpv M|LvFm0|O1jLQ2UTivR!s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmakesetup.xml.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/cmakesetup.xml.i new file mode 100644 index 0000000000000000000000000000000000000000..afab6307f06cdf4a1abc49b20bd823237eac88b0 GIT binary patch literal 5970 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 A+W-In literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/config.h.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/config.h.i new file mode 100644 index 0000000000000000000000000000000000000000..939f32ffdafc6fe5d3b94a8c3e0fc95d6e4424df GIT binary patch literal 1056 zcwPY@1mF7r0RRC20000000ZCv00~F{0000000061|NsC0|Ns9?jwwArK8_VzEMB%K ze3!WI+?NUf00000000000001ZoUN5jbK5o$hVS|nJ4z0AV(TM~I}>+$pef3xqpy%u zEcL>HNKiyV0xAGXa({gnq+HR8nCT%nNF)~fyo<$R*?srtuNtiuz)Xs@B>61>JS_%{ zWMU21u-iYeculo}#q}m5IuSC5`?(84DY(9NcnmlN_LzL92pNmG$f#k!ThI0rW?mw} z6SnT8S6g_CYes~x3$iw=?Dy|+VnB4|f=<=*hhFcd+xxxyTMzo5Zf`!`_CJ=cU#V0~ z@Y@nkx2$^Uclu~WvsLI+$P)D^0h`&8PH8?C8A)%t5O4=C<42?RK3g$8>ZsgziHy z9(9jPQ=MmJ!eXik%T&k2h9gLs0wt0%BEaXEDJ|Km&@_f8H+Y!N1F$Abc(Odtngq)~ zV8?K?g$BCCeO45mqHn&*7&;+H60V;?BrtY7`vJYIJ9p#;OB3wS4JMB7!*J?>1vASF zTzfvUyaQ=A_hwVy=~P=aT(S~dibwg9MlLjqs46#;3llUqwLvr<3GV8bmFBx{tM!H@ zJf;bRp*^-fJE1+D4Bh+iAq-n@aGr5`&h($n9)}~#4`$x<(XoSYW(5zp#rB9OjYa>B zMtVkc+J=|W?Lvk&*i=T?p!HbgBRm;Zo;l+{W2Rvx_NQ8Rb9Xd&Q95Yd6)cNiD;>2~ z#&}eUNMz3PyujF6gq~wNlWH$MVs4;mpg>OcKyp!VjVFa#l13Dt3q>nMWrT9di&GKb zv9NH$FLTFp9UuC=|0jYKhkVIs309QID22ZZDxa}vc`SByox?`z2`jVZl|i1Q3w3r3 zujGoNLXlHR%>BsNcM7k4dMEFFpgO9{*0#1hz}tQq=@%1d`*eFvvNfMx{pAP2h4235 zyv|y?tfz&~{-Lk+jNl#=&YN8Rn6qUQYk8ja{1es!?>U@fEoMTUpsKhwLN$cdgj$|Q zJvXEL88)iG@oK~hzb?<=~E2tvEwwDwctgD4a^+Mp~UD1?mnJDCCqhdI4h5!l45PEK)BI7BQ zc;}HoicB9C?^0~?*mAKa;b(~JR^t_N17{3)RdF;)xC4_WbK!w$nwJgd&=blwq-t>N zsra?WZtytuzB*osXlw&jANYp2l5+;*PL7yQKgBTKjIjoT7YLr;>a?_8*M&~l9xhh+ ay}bgGZBqQ>g40V(A>}bkTK@um4X30=tNJ_u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/_w_x_dialog/optionsdlg.cpp.i b/CMakeLua/.hg/store/data/_source/_w_x_dialog/optionsdlg.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..4dffb704c01fa335da96d2ad09310437fbc807b3 GIT binary patch literal 1889 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 I7o}5^hHAUSng9R* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_custom_command_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_add_custom_command_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..684f48af7ca28225737dad7c8fef18c33ad1a9e4 GIT binary patch literal 3814 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 O9LpJdwOi5j?*9PP5+j@d literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_custom_command_command.h.i b/CMakeLua/.hg/store/data/_source/cm_add_custom_command_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..be8928ff16fb371a06ceb6c2a02209d7a5ed1a95 GIT binary patch literal 3168 zcwSYOX*d*$9*1YhK9)q$5V8$pj5UgmbzufHNUn(bBjg ztIGz@9eKyRg$(#V0`Zep9-i~6+&_07X_dqyQjOEgT4L#TmguVfXu7j@Wya(Y5eBj@ z@+e9rh)T8GsivJf>tl;3P9(Z>pF1himt9oxLF8W^Z&c=NJE{xHM_eV@a_-M!AP;cYLNxERl0ZGy{-`4JSWccUJM~fQy{xaIh+CH3l3f6;8R&whBySB(AFPg`>ivoja1qP; zgGyhrvBVpv!zwlx#Vz`-(~U`4TJNJutqhjf$<_UDeLsQ2gm;5UuAWLXDxUIgDbCe_X!jmb}@}2Hd2tDw}g7$ zsfsZoN|xQ@k+j0cW9 zg(dcCUODH-_qEOOkt!7uEHGT6xG06q&Mksj9VKx;Gj=1O+9VMong?>ER)`a7XZQPx(bIs6` z^!J-@;z$vDHawd7YldJ}kW=Xws1KbM@cd(bu%y087p-%h;e~QyX`-Nk37u=KEZhm; z(hJ~B5K46F0w)t((>sqDfCjQq!E@Wwlh28HrjcWknj4rS-fw83{8R|`mqw@E)1I}} z8kP4|FyO}0;UwkKx3~vw->?ajU)^Kl2%^7J>Q653YClQU%J5l-S0A5J`@umLV#+E)x3I{U$!*qMfJ6 z-Cm-$Y-rUiXMVq{;$%okZLwQ*f%%kz!Tm-%#TP?f8fcQ-R(h4WY)y9r#@S_`&+aMV zAjXnp(#ed*fA&9N`66stBLGVUahRPg2%Zu-p(!YbSdRXx(s^wA$jHvPtKjC2F4mB+ zvS^PwyY3}WqdhL|WSlLxv+Rvl)RBp3)Gjl+;}NsZ(dX1V=#*6}Q7LZxi_UarPBOq& zHmI+V)(zWYZ@nRWvj&!69f;DEw_j0O(X^NKHwxntv{suMdd*67dXC>KE%8b6D7$^p zR$JE~q9Fu4v^RV#CJ2i?PBg}tB9~IH;=Xu3OiOSqUUoYx6aumav z5qDF!StFoDUDq_tHGJ<6jF+$RPq%ze#$uII)%=m|6Ph04%lf6mB&tsylqi6WCcT&U zq>g{EPafb%*yR9Q784CU(JYOFxIhq+Z5U9qBM4S2xIy7bMdX&|#A(D-4VSYbY@#?e zu-E;D@D-xSC{8F^aZ7}svn1nwG9&ooxp-7@wit7C?tbKJa6K${mBsj4Wu?sH9Y)X2 zOivFK^_Fv!uDXuIM`4Lh96W{R$K&av?I>0Z+I+6}e(opxCwI4_3C6SiGioJU7#p3b zr!$ju05dl-_O_KT-zWN_=Lt_5ih|4FxXuh`-h<$KRfD*ltxp>-A}4ul>u;?@A_sYV zJUIgwFx)xoZ`xY6EfdEq%H{H_pVrynao$>Y`+o;z+{>7{)TNb2kVMW~&5xGO))+4o zz?fVk#xs;dv4KTIyL#A_^gQ-$yQTv#Z{~WESSkOgyXey#iFHc+8r3eV_?ks<^+^8W zcjbzb3wA)l`%PDuiN17+!7Czn(P%R&PmiA_$K}_ohHjrT8-WjeGc4m2UTD2+a05z@ zVpB}m{J8u2g79p31O~7RXfEnZWsa54#Ita|AFJ_NWu=P3sb9%gbU8d27k(oO%cS8BX+G-(n_o z@4u9g?JrmNA-ML1dOo0Ry-2SUeDl&K24hp^<9!UiKcr|m)X9Uahx2qw^BP}`mru_yVgbqCIk z%L^O>bYiwG6i*vto(moMGDjD9tmu(YY-2OP7T{SsM5)p`7JYp`EK;>+!drkG8<_W{2BB z<)oksb}O$(X@IK9PWyQ-#w-;o!C3Nx{tX5clBGBF z@9gwXXk-1L$rU~QL85KyVRV5oIjJDup%iiJF4z2l`UkDyu5F3WB4LoRlH(|pOE!uT z@CzV~AMh$pa=>~;Q*~1Y+2oztXO-wGQkMY1@G-^(Y=4{~p9t9byYz|Lu4lgmmicOM z3eAaP`n;iTq1F!_XZdc_wd)r#>>0+HK$~{t&<-v+n{k6TdM+ARj!Spa2q(?cm8j(~ z#{t-5-EO;`C^);cD)w*F)xSq~{As%Rk7*3xpU8&A^9DEmQj@MpG#km%khWQUmfG-d zQ)669;s;F-!ZD@>SP7>K{K@++}-y^--f2TN@e`2>`+9xrMy_y z&`Smgaitv%aQ#rxVGM)>EPd|z+9oIxQ|~8uEXv+D2L-=<;G`iE-h`M*sWtu7D2KWO n9ZW#96}+reKa_9aZhtl+k)i1gKF_~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_custom_target_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_add_custom_target_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1e9b74dd0c24475169faaefbfd060a83a5ba1f5c GIT binary patch literal 2007 zcwPb52PpUe0RRC20000000yT301>(X0000000061|NsC0|Ns9?NedDPC}~PJl9D}= zX>W5CY5!&b00000000000001ZoUK<|Z`w!{e&<)5x@`mvHGxXoT}UEPpe+gn1f)^a zRA{gVaAMD(nQ;=f&41rBV;gJ}lCD%g_%fI8T<1H-m3Jq9>M9ffhJr5y3F-jQ>XTav z@1Z5Ql<$W=QFAT=(4%wDr|^X`Dv06&xAnOj`c&_NH>1{A&)2~Tny%XlrQ*Sahy_(G z9t4EBw)5~%zJoWouSeJ-Bn!Q>b$EyaZK5I=1d85kM@JtkM;|KH4^aK5Uj4gX`)Ia) zqe6O|)s0Ac=S3e?yY?4O<9v&+*1}sX6%?J4MybJ>r|yZMW#}@;)^};-)ARBBbPRPOKZZ6`pt*jy|sUnl)uWxI5#0w2(E z;8I0AU)owXye3Oeg5-0f5#YP)NhQ2lsHh8<-O1O%#RQt?S8&-Jjhg3^s|MVAYRN+d z^p3I!L@jY^u<||JgE)dPwFW+ierMGBikq6By1nk?O6&T$J2~%+$MAVDf+h@`qe-`Q z(QA$(py9=6I2d>A$WRSSX8ewVvvDHh%5$hRrUYE8%yc>sg>FZi{#X*es}x>)%<)5) zg0(k;mR6xqsqD?L!i;l&?`*x^WuEegKO|BX(E(E7*d28+mygZ6js#nrqWMg!1HjF) zRQQQ2y?If8*wXu#7E5ppRVWz`{wzfC@Z|f`F;yKQxF}i<@qHZ{3>^B);X9VZMzUt7VMW*u`*!T0ck zD0GVQqGWf1=sd?Kxu+L6As#EH^m`-58x!O%3{wV4?g5a=D)Z6URmr6*%3R7EFT&VM z7tuo5NY+H-aL>gpKBulH%%-(oU>FJ$e1;4f;9=W%C%scEhNewt;e1Yoo=u;`cs4qz zk=AFFVyFZ`sz7>K5rGv95zz{*I7Q|G<#G)jCA)c_#`c#}L$N98p&c{IISAAxJ(L)S zLyubZSa5Vd$%;<&?{R)>N{lADX0Hc)6&0A+Vf4XNhR=crx=^2>t)cN+sB1aHW2p%Y z4Hnuh)y6JmpF%Z5fiZhle`sQ`P^6WogB_WfL{4PYp3dx{4uP=-y9uR(Vv1|R``R!x zx0q4?2H^~B179N|iM4OQ;o(hM{cN(BVx>zq#GHTgqfyv$xE@Cv+nr(OyglBrGaHyx zE^n=(Xm|$eaxgmUo`0FPyQ5BPG8kRGfcoT7cn1GlXY>h~s{aCPl4=QB>RcrWvLghx zQZ$=(&L=MjiBtRqjbmp14Xh;X^_6gzPL7z*HrzF%bKP&5jL;Z*4Wkd61$K;~D_@EW zZ5pi9y11!sTU8)Kc=jrk%jpa$qnO&gA#X_YtL^xdAhmBNA9uWwFXdP#oh1~F-B0R5 z(1UxjqrO=MyDW;%)Lw6-*37V8-!`6tjxA0DrtM1k03l1ihZ!G{G-f>XKk)KOqDE=J zTnTu>=2RKTu1)H2W^qosOXno?GZOPX?4{tCbaIXT$%73S?3VF+25P;c=?>PmGIE|O z`T1lq6qzD0d?LwB4Kg;WuM;TAGby0&vu=pwr6n^Nw4&kwla+97Z=Umj{$)0KdZ@^e-F3=Q!ZKBF{O1j;a z%jkdgSu%)y^SdOlmjE{Ho9h~tLgo1${(;7h#MV)d2Juh9wuobQzoG-*9jmpE{}Avh z&ENSy2?W20aO0kB^ScxKtemUR<#fL9y>{qi3zzAAUb@m=EayxsCnvIGh(3;LRFNJF z{{h1^K;ZxY000K3000000I&c65zPPq000000YLx&00960|NlpHJ-VTo@ctGn8y`0; z%%5Y?&6)rJ0000000000004NLC5=rBf9wmaGJh@h48AXctCtm~1glMUshhkG_ZaR2^w+ z{>T1J4SE{lO_I4az}yMvZzru^);3tSr>e?(V%t7sS1ZnK+e%Y;LKH@`md#ZXEr}~3 p234}{4kHtH+SErZtsxH3z0%srE+19)>>BSZxhD)(-VaRdIQ3KXyWs!; literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_custom_target_command.h.i b/CMakeLua/.hg/store/data/_source/cm_add_custom_target_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a6ba905187ce00bc10b1c554a9795a9f38f21600 GIT binary patch literal 1948 zcwPaV2V?jE0RRC20000000wXX01t@(0000000061|NsC0|NsB&TZLUmG1y6n>N6$J zTC;8o>66v~00000000000001ZoUK=XZxcBX{Xd^#6ws+HWkY+Mkiy+bOOirFlT=Ac zRROA;T_>^5Ye%*>Awqojo3Zy-S_*d(RY}9zGakQr^Jcbl^4G8WX|({Zj9wX*bpfC^ zV*hY>4n3o-eSRgGTWXU5JzWaP;VoC(FsBWgjdYqzPFC=A+MCgO7m_Sa(_U_!&gRUl zxa;XGV=9f-r(1Z6R+mhza<(G7-m_=;pwC=zf^Ne1^A|5(biPruR)qhYMdxR@jO#tU*&DH1J2*;?$;&ys7jDN4KZT)6BKov`y{DDc#)&+O z0AeY@n^`d2aq|K`HZa%u~)LYjslYp>6 z${iEZMid+V%-6z#)k_}{;P+HmXT&0RJcXO#{N3bw4)ORFZsO@Q9?x%I!%n!h&K>YA zR}j3oHQHtyDbNTV8K&GG^b$scY406c#czg}!}%=*doi4k2eTPmOr{XSRXm*!d)Jro zwD5FwJ-wRD22r>w`DF{e<&ab`D(ytVt-nmBDQHD>U=D%DTm3Q;o^)DI#8Rbv`6z$x z)~zSFE)@UK7IdQ$nWr4uNmenh-D-7CPT*4_nYE9aw*a>+jKCm@Cx{7iz|zzL1LyaG z(;lfsE@TRJZynE&EGK0AnB&5O0{+FBpE(LF!Qb5SWiDa2#?0?^4m+LWMk%m7(G*>R z-S9*(Nk+k^4a;qztYcE1woefT$(cHB1I1xAP~HIH{xKBLg-yPYB7q9U*4I{e)J5_j znna;GSO!~RT+Sqt2M;%Sf)e3rLw8JyM0lGHepZ`H?o6L_teSVJsGvN_4IqH@HivU`!jm23}%qT3_{~YY#(TXf07r zgu@J6A(lthrQPn9)5ZVv->J6M>hFNaZ-8OjV~Y1MRt}0~oC>%ZBeNm9OW|XyL!yYj zgCiXQ$(orHRA@Iwj}?>!ifv@fUE&eE3v6k>{&p{#S)L?VKMqoz+@E1z*>EJu;U9DWKlN}knZ6&6-`@3y(?M@OnciX#GXE*=!FcZDM(FVN z9|qGm@q9S?eB7{&4}{Vum^i%>)Vw^)y`J(fJi(S{8;b=XHiF6-RYu`yjnz;y#g8FH z9mkh9@$C$HlksfWA4~^*pcXp0fPOq5)V_T86bBWCr<*+qX<|6e92mCuTLs-L%F0iO zCxUCsA@29@de^i0WOP@i6}_#(cy#D5BnZ_;@a7HQ>~Uqua_Rf*8nvR>X;Gy^te$<) zJhlcK&kuYUjC;eutZWL+!{`~wut6ty0ykx!Xhbm#cSKTy-cU^tuC?}5`>;BNN=3p# z<}iy7l3X4X z0D)1|BAS&+BHSCN_nUN**np^`mPJzPQ3)_)Y>zU!#Ez;G?km97uITomhAmZALGCJ? z0@&dFVRc0fp+QJW0U}I-hIpir4`Gn4QeH5zI;KRda<;+djmPpYEOByw*m+TPaM*R+ zG)6T?jUR`zCI!aY72<|N3`k_Kq$_fpunqUah;?)>nZaUTPZ=PKx1mNnM&rnhZzpBa z9`vE`Heh)nq19a*0g+VbLzIwNUcS>n5<&A1TTq4)ZHRVw-kNQNHVr>F1ZvX@RZE3; zWkD;O@?EijFKKc(Y+vTsVR`M3=z^&Tad=<~!HE1|q?IH(F{{;~4*6laRx3>Lrg(9q zJa4eIFN73WyPiv0rkKD0ccN2%Z=guB`F_JkEHV1%u`%Xy!`}P{&GZ09zZ2b$~ z$kV|900006Z~y=R0068201v+a0000000BV&00030|NsBUT?Lp+>_x}bpsG=({6uYI zuhg^v00000000000001ZoOO*c3c^4TMaRM>wFj6Y1O+k4N>Ep^(!x#@?ALV(3vm~A zCLx~9BX}ueQu|<-Km6f;0QdlmCIE0kJSa92d*VThEL*2po{A;rg%m4UY%q=xZzhoS z?)MyDOk;;5UkK6J0OMCT?=G}OY;53KRe1Nl!jrRXRdrTGQ{sn|jnVAGuGhrDx^j=& iJK_XYC}|$yfAsU%8eMbOePzWpVM6_$ZKE%3GdWE@@~J`q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_definitions_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_add_definitions_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1234e618fe361799fbf5d879e4df9cd20c796bcd GIT binary patch literal 905 zcwS>*WME_f1Ey#O29_)cn}P8^6zDFEdb*@B&tR?<&zY&yU0N?XDw{GOfr>e6gYWy_ zHV~+LA77Z9;icglC6K`tpvk>oDJp7dVu$(@wY((VjT37#6Ept*K6g^$@{)ZI*-!7= z{eJiRbLsW(-z*MW&u(yi)rB>D3<|S0$;+?_WTu`;h%=1QjBVb!&gJOCF7I`cTD}`r zo|@eiE%HX~;-O#6CtewxKd%|VCE_*9*-co*=B&-6kp~@%49#Mf#16 z0{-Q85`6uCA1<`FYPwixAj9e&AN`_y9q&Z8T(^B@LRodsG(2m2ZF=4|DZ1d_xfc(On=S!DVBZDHYp#RwBT#7Du=VpEYBLotxYdog<^#@{)qWM z`f@O9Z_nl1-A9@9(m7iU_$Qn6y;DoPBzX4yq@Ov34@+C4qPB%(^WD6!=GCh7c$x0f zu&_;AE+2SvILKGtthu`G{pJagSD(m~ZQ~8tdHMCvf7^b((w(|$n`N`YHny;{GY$Dd z^C#qF&$}oye_Q%*o=pHG z`@QGKNm+5fM3%hU53iS9myy@J0jR2!~0`=mH5vQ;a+<2YXK zkmXNp^RJhQd6v>v7yoCrROUUl$J_T?OYApoj}Kc@a3o=lZIIXT()%rcmrtAWkL~W3 z@LE`+1cG(Iq*)71nT{Y5lr&$RdE$9+Qt-{5sw+8WVN2T?E0&6)CQa3zgItFU1YE-R zeAT-5J)o=U#1*gEoWMx}lc;G4fG{Ib)wl=t@;KDUOyT=?|(45`Xu zQKjiiFP-|iVDHRjiBT+5#16M!|Y Ud%Sa|C$HNqv9{Ts)6}970K%P?f&c&j literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_definitions_command.h.i b/CMakeLua/.hg/store/data/_source/cm_add_definitions_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ba471b7b2a8f3a9e2493b9bafcd8ee39afcebdff GIT binary patch literal 1847 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_dependencies_command.h.i b/CMakeLua/.hg/store/data/_source/cm_add_dependencies_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8ecf6ea9b0edac300f841fd48f8f1b532a05b7b1 GIT binary patch literal 1375 zcwPZt1)%x>0RRC20000000cDv012i50000000061|NsC0|Ns9R{L)k_Mxum_#JKiI zS{T$;$w5&700000000000001ZoUK-WZ`(Ey{a>Hr;1omRCUTN>DCTSf6j^D!`WGa5 zU4Q}xP0==2iZn>dt`YRR?tGOn58vw#S z`NH4=LamIs7ztu$O6TCd&bVOkfk~!`RT^P^l@)?H6ugPU#M#?G^B~JQY{_KCB<0M6 zD$j|`{KfeS-XN++j=WGi01T=~DE70sbqZZw}SES%Ca7vvf~a=Rv)okLer-`!1V50x}ZTVCWoKp+H^ zFaw$yrdKTUFCyO3z#OX}{O1T^BYNfLVi#S;B?! z9XGtv1vg;StYifEoN;3{pB9#7@Tr^L563A4g9rE&#Bnf4A8ugH?Lrk6*osN0qSysu z^QGVj!a$lxy8$(WeiVoIhzf4Iy>9y8$li6+L6jtLH;f^GQ4puyaNG;xZKTmS9u1So zueR#qlBrrTpu03mWjST0+)S<^Ig9goaqHB0wtJ#FlR1jm1iqivhnQD#%&;baRZtJrFtMJ_tJ!cl(oaeD9 zK(fqy58U#;PXpSpET)1}*zLf3^r}y7EE?{_m9AMyiMzE{T-$;OESf|y6%;$OESD=M z-6o;LwD7)jev00NP$gjbK~TY`cx@_ZOknvVuZOoH8yLvSIlkvxANKbl$`%j zW#lKo+?%tT7fcyQk~7yf`wR)T=aNxA<0Z42kmK`87Tp3s7eqI4EZPA^#6&(m<*$Ki zm}GmoYur3fSW-}mlC_X2TI5XHZD0MzIw=l8*4c-=TE51Ckf+S9nJbD~UI?5hVk=DJ zH=gPVuurh>TK@l$yDNlv!R>%rHGQA~@G?WE6`_l=IF;d|`gHYKHfr3#_00DgeBVFY z1C&P^IoS6W1xkWK8R%CMgNFm`!W`gH(aKFE&4?S}(+vcj&LsLf3dcBxd(nCM-s|4R zLHuxD2g3GrhH#vu!~P@<;tx^kmdY{|F6<|yJOEImuC2Br-9@29Vo9MexHOI#cN&2y zuwsr=&2U<9VbO8sib>>lr==O!+(mmj0y@zs8gvp+OIJPDAqP}zkmIvw4u}1IFzA%? zhg6$!O}tIovwdNA(ZX1j*TFRYmoR&W(eU=qC`>0W2qCcM9Ho%3Vy7VU*f~4rNI)Y z`VZW#000000000000000c${@ju?oU46nug%UHySKl%gOusT4JelMdZP!9CVc0yTlW z*V2FVXZ!?foxSDmxZ@50UI3#h02GKv%|_vX_@^@=HmQ(lwnCY!Y_0Mw#u4Jp1hU?J z%kjmu_Gjc$iarJyzX2v$KiVO-HgKbBynA0`;VfHSpEc2p_@Pv5O7>wtXyRa9b->a) h;skZ5Xc6Iml+ROV%7**zD{F2D6B>BFi#}smIX2|_jOhRX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_executable_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_add_executable_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5a3d482f13bc38be035546a9e81cac939879c85a GIT binary patch literal 2065 zcwSYMdpHvcAIE3vWF&+X3FWq2+j1xDpvjP1D@3+VxsOP0hq*4K+%L0X3@xpjCYMO& zZkV@LYD5gV-!HM|J-w&%Jn#AZ@qK=Oe!qWwegHlIAK-uRKLG#)KKy+H`1XD=lZXHs zmhu=mPH>O$3JqZ2HS{IG{}E20x&&ax^+kEbo@Y9#cBBeYMU*SJk(y)sPQ&m^TQBWL zA_9V?rKI~G_(t7c(hDwSmW3^mH*nXC3p)pl*RpoHSx;T>^D~`pRbHOrHygS!D%LOW z>^N8B(Zg_lbTIWD*j}ueWY&Jqne!pfx)}9!zueB((r3G(H_fvw{O*O&mBGo7-U9gR z@TMmkU-=_w1qGA-m$s9tszQV42oOwrvN<@0M~UIxY#PL-J>YdF$A0f_;H6&(0Y^tE zXhwXWZf$%m5B>CeeYj(^uHIM&3s}Jy8(f1D^kYgqM;g;;I7e^F!2zgTXoFUd&1vc0k6OIsbkXR$)YvzC$@*98M!lnY&gDIy=cToF=$&4(Id1`d`HRL@o z-xq7F)J%S05#M!wn4uXsr zRW%;P2nOogL?Qf;GKQB?h>hL$MWG+<^LW^i&s;u4UnuLl`RX#ojk|Jo@4(3E=(yjU zslKKJ2*|zUstD8Kg7xGjR9>a!In}FV2ld=C8#B(QeJ+{DTYI1qR>(&s8dzAi8lO|1 zue!bNdURUJl3P4FuxE;27@7B2@9i-u&A7$aHXN&s^m7IK2orbmNL$U9Ls)Tm6`Dn7rzRw zQ;}dvIxiLxd#x(YE;0tVX}95{50BrOmf1}UtxihN@Guf+Ou(&tbeOJ`bQx1=!419v zHJ3}9BvJ=$&o(dIVNaB@A|GsIhMQVqYNJMYLAd&);Zx07yMVw4o2mU43cI}3{?(bB zWBQ54np-31$L8^d)P(9)6TSYP^riD64*F$$?^Asnf$QUET*z+JD=}JWu>;`~{-B|j zEv414-T?Hr91&UWWA#oC*>2{hTF(I~FVQB9eh9d>gM~48Rod?jNpp7h#kHYD`RIjB zryi3mADlbeYJ2o!FR;elUuK>?nM8o1S!B!}FgM~>Z?nu&$YqLo1^W~Dr9om;VAhtH zXV@1t{b?6je?lzZr*9cw|MC1Up8jR~{4d$ff96lyQ+nrq$a0Ge*TwNlE@^{72KpnQ zf7`B<-YeLuEoymw`1VAHNP#6-5alVMb60-0%*Y`KO!iTY(~Z0C$~_<3Gj!-6p;xva z&?0rMb|3ceN{=<E`st~@j-%SZ(>|zW`*NzerE zNBJjq`XXm3o}^bXY0Zr_)snWZY_g(IBZINV+l(kVHn7$l`K2bmc$x-~W}qaq22vYG zKMxIQV*K-7)q2%9QvH!?PrZ~5EFYnXUFgV0+AYKCaD9#yFnaN;b^2OfK78HfaT3W~ zw495NYcg4OBkFakG~J+UF&Tf@ebnjWA|6dbLaVy=3n@6p9R)oCB2K~oh)W{j(SQ&y zl?)%O7`l5Nflm40BrIl|TWeC;>Fsq}auu48P@j>jQP-Tjt$>Qw&o;liA{X9Gzk?My{zHMh+xMpR$yGQgaxd=qvO5&R~tmO}eageeLMni2I<*Sy%;_(6;% z3l>IvQDEB>H`?AO$RjMi45f6>+8#JcA z+D)GtTjtb3AJW*dsb!fBr@h()y3>a_?iRD+oaw@Y9)jqk<5dt%*)y{6BTA&POdI;= zk>RGCH}w8sMVR`coZzuK9}|`y9P^+%@|^aiX(13B)<96|7cEPrwOkanmVx5UNY?b~ z%>Bqiq#T>&4mYx9 z+TTLOb%gjKSUdF>_KuDQ3&|ISXWVTb6RlUgk`Jd_qvkCT$`C>dGxsp$ZK3bR2}*;D zFVSk|Myq<8Q2^YsAEbqcs3nu0Aq(L!yyjUm*jmb%xTqrI8)DLZpK1V1AGt$#u_>Rs hvQjuAwdJPl2hjQMxw_LFLl=by?}z*e*wi+?*0G( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_executable_command.h.i b/CMakeLua/.hg/store/data/_source/cm_add_executable_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8d18df01140ea69ab6e8bb9b867dc6a0c8293bf9 GIT binary patch literal 2523 zcwSwVX*d)L8-~YjCfhKRU1V)!E4zq6S+dL^Sr3!3W|xR^j6sxb3>rj6B+fAQeVd9S z##VBegF%+8Wi1`!t8@CU>pS1`jEe-s!S zaX8-Aii`q^&A6AHg}^WE4t*i`^!aJtKXEFyVDotT!8PkQHh@vy zUsm(7tQP*qVLd4X^PKp5x;G0c;!u0AG_>tDIzQaMlm1mzXlnno457Gub3}cBn-C`Q z`+4cJ`=CU)4KqzGpetV4t)^;Gl=| z3|l1-^DCiN`X-`?yM}v1J}k&y%42lZlxxkTJ5EZr$bNVE-k)jt9B&f`v?cvAk;X!k zMO5y~pD});VapeoJ8TG=saD~}c2S&*-x%8L-G`jKjF8pCg?`Z+7wa=ync9d%fZC}D zYHnc(?}EbFA@&bkZJVAU8P<$qPe@;e=A^aI;dCiD;>h@uC!KduRp=^%3=nygoWQ8q zgo-wjy<`Wm(ia3UMJQ z&`&gR^fA@zHGTltPXytei#%v;VbfvqF2q6`ftr{_@w+U{%50>GC#bHLDx#btGpk#i z^q{EEL1UP52{t6?cKcIeA;v9VE%6y5>vvb7%F)ym%9Kc32}FuCtw9u5KcU9JWczu1 zlE4OrA_3FSNbggp-Asg3fB{SeJI}SZ#;=^kyEgu)!l^$Idxz-MDG$KQ17XvKu}h}%>Blc zPNvQWxcP(OoI_Y zk)ZQn#_-&3T+bhq{fbMgBjkroWwZ^LQ>vF!JD^|0yI3<+K@5@H3FDC}mxV^TsK_C6 z>2!*4ljJg_dpTds-1!1+r;fGhicRbLeUwSy36qm@$@K?Y@hQrl#2_2V2J+o3PCums zNtd@n)6vy|jwWh?x~oUu>j%j{jyQWVJWdFpHJV<{TihHQHDtLP^}1r(*ol8*mUp7i ze0XU($sJr|Hv?P$SjTqL%F`FNH3JBtIsZ=E?lpB)F977yGtnB8=*!R{p%ztaYaC4X83h8eA>w z-ZJx|PYar;-*t5g;Uq?s6&45Id87@DdBX65@V=a#vAb^6t@RO$_y#O!57h<+(>k>` zu$%J&Nr>({TG5jd>2TKLpw&&Ak!=HLY{cA|zRO%~jd2v!RbGkY`I&pJbwHmG-L+eB z)G7a%_d&_H0@bFP13T}w+8Sk==0$cfMH4L8mq1-|oKY z;h{ay)1&aJr-%OHDIIqM=U)b3hw(LK#m6Uh#g}xI#AD)XbK=W#O3E;xJPiDXKO)ro zzJyt=g{{An9QI~~k1rG6+k^fmwWsIxDRp%KDj$a_$$|TZR$^)j>fzo+a3Va!9A)lZ zhq3WSB2WnQwIY7OYh~cJH;-Ns-$B>}&z#AG0YEYelRql4pZdGmi|;sI|CD4h0{nbO z(!Vw+a$(Z_SUX&W5kxeF<#WaEd0IKaY*!-{zAWmrp_t-1DQ(qp)nL z2img>!T8w}w{*$d2u^4M1Y{DVVU}=>cQANvvbn(K)M{a1NTKRE-BYtTi(a%>FR~K5 z%f2FR5JicMd|?vr$o(aHWux(KRy~n90Vrb6uS6cT)|X-oHhNJ*6>VdD&MgONc4!?5 zT4-ULI>tR>CCFUxRFKuwmioq}CAHDgw^EJHS2B4C9_`3&uvre5ny}pHGDJe`B2HKu zkc>o6jX`m zvB2OH0}%ewho{Tkfi3}bphfT#<)+&umaT^J3O>2wSKZf$s2VHP8DZq8$DzVGDdi1o zkFi#=E;mp6RB7ldOa`IphFqXdHhy#Guv)FTbN#ZobqT2|n(bR%5r-{H5k)Bfea(8o zIyJ1*pEg1(w|p)$oeIS@ua9@wH_KUdZ{Ch$auujZ5Uy&GDeJs^GbCf3m2uZXwzre2BwuQ%XCbJtVt%_+tKyW!*q4has%i&OdZ}jVz<)e~ zH`*4PEjLT{94)jouZj$eWnU$MnF)bIJDC~us-yK!AHY5R-V%|1*Q8Fjg-T; zfyzXB^0&71V@oYpdDWteRmL#G$O|Qj4l3Obh6g1|=zg7ZIr+ICQ*^#E#7i+KyfSz^ zFs_>!V=Nr>&UAkO!BFkyMZ(%NDD$)HS&T@&gN`1-rnbi>Z+gpE0%BNHH6c?aG+se47+Rmhf8go0oHDpNstwmL){@DBuul9^f zxftbg^QC*whQJXkd=_WCx2?3X(jLl`h0q7!gtS=z;~FcXaR$52j9{#OroQ$qNomd* z8A!ID4NkH1CslBBPaddMOQF;k8P(S!u;a=e^G{=TG@qN8iv{l%qlQRS>UD!+G$u-v z{AWy9fTHJLBCNvcVKTqFnV0xFkFW^PA`^7zJ|%Lzt89)zIY{mcgqdVa4KljF-R3U`%SS=%e`o(MSB&s08{ZP%Dlea z?9NelChke3zTbKQ{<)wdhO1z7P$ok|u#b%goeUPQyi6flq88}M6_gFVnJKt}2s45T z+?0g0hqR3)p)Vh~qMAbk)T+TdIhdv0QEAQ9L$kOnhwkVgh6cx(AR2JoJyvQKx;^cQ z7!+4DxRL{rLt9VYz)9yvqtCzF@DOu-gza zRu`Kg`^9$H8atAzB%#Af0q5TDD)vZ`e_zN5Hx&33vmKvI#yILY&rJ8dU{e4+)sz;I z14J0Up0imHIW>|m=Awu4&CGtcM1M7sFYMivKfss-oX%`b7q*%TAY8(EL#{WhM`rVw zem;TihqcZLCp5UzmPhtdv==>=7iSKtZ+^@;x{;FS(dX2~xX1X?nMdF%oCH?ws1ObU zb>b&0^2Ae4G`I^z`J2cbH(E^t-iO6+_7iP_htG9Q_-IG`xnp~#oPZM{d`xt%S4^|# zQ_5P(x!^q&o&V;V*ov)NO*t|=-zkbwjG!0|C$;>}3dK`nRUzPXn zZdw@Vuc+_p3^y5NiKu@?$>&HG#y7FO%yGs)_a8($upFJQb*<$6(L-cMeDG8d;RrY) zAQr+N%Op*8IK;@|@93IXMSS>9S>nZ&L*iD!`e;t4?!(o!xw>na5;>bqiP`Yh#9jw9 zT3H%&(tf2f9VSEb$qM$h9I%G#tz#I}zY=Rf^ z37#9gH#hJE3I#r?EY`joRJaR0PPEi^ZtlmJ20@3RdO~H^Z}KLv$`H@0(n7&^%?kWm z6v!kR(O+N+R&m}-)b_sUpzzYc*L+~*=wPa8kd8Ej-<%kj7lyPWwMc^LMgDP=s|nq`#0mf$*sm*-w;(sOvqC{{S-ZJEODH$JH1~G zGu9pdtam?5ZbghrdVa% zeHMV$V*Vd)V4Qd;j|o*J6))8d_UKFU)ZW)6pjGVrzA7JwkMxfaHm`=N;zDSLK`4{5 zP=sgn>zZ1{^O_}p_`~bvGv7FwXJgwRKM=^3?}@U>);KnRtJ#jTDq@;=FKJ?&+l%_) zIil^&tdBPoS#IsH0_Qa*elBJy_?e7&0DxEY*IN(3FFP*IdcB1)X>9DnX@2w}WQ;!N z$?bo?eS62!nySwgs?`D`R6Z*$aAcECd7|%l_DnpKPyRCinstx>t=l%o4n%2g)yGwB zV4jt>79V>YrA5)U>XnS=0X1W09%M3EGhi0`TlrczuWlr_$q3tgtb<7GkGjNf+b#iU zDs{tu2WR(ec<$o<9L|wx9_WWhhV(r^NA%%|cIY1k8K|}OAugNqS+dfXykA6U5Ob`- zUQ68~?rcDr^EBIoW|tJ%oOhb!4Yg%D+n3U5y~|?R$0vo01wpPI5GgMlXn=zWf0=+n zT>zn%@Q5~({92||kB?ZuT9|vGK4Ct7jBlh50l9_B7-=;A{QP0Wwr% z&*9Jh6c4==QJ(J-;aJp$p$3`>{f2pcbCLdi!sn1a`#EpWt^BHr`Rn#KPF5dSir-~> zFl6(sT{lk~?&`6mH7-UHyub^L)Z?9Yk|D)D=IWG`1(Ejjh-^ReFw*K)c8gAR1Ks?! z2)`hxMfy}hBVXceWfLyJG*^i+G2^{a;I%RU459TA!fTs9S~1@O{5s{O6^8z2OE7c5+Z5sU~YFWAq(Y_oqoMk+ogk=V+pF)QcM@rb}55f z%;>%Mi+4|o>#S`f=%qC4l(af%)ch5H)DNWW(|p^z9Zvb~Rf_s0eU2ox*h+(1*pZ6M zP0?CMFiBLt6H)?|)VC@1LdyFU+nq8VnfRQ_WdUi6t36bW*gPRAxpub7w*8P5#~6be zee8FCk5^c_7mx_HuM*s}YpLGV}fGQ}Y^_}98p2(!T7DK)8 jaHq8}?9+gqOo$Sgi`v$56Is2DM#W@xM;9JHl2t-WeQ9plv2 zqDIW3M$Oi_nsQF>?R}nm@B8C>zMtRs=LG-(K)}DCs{;TSE&kmBz>8nJn{sm#%-T7$ zLLCgk{c=s7M|+PxW^fr zdW!VXI`4L=kAo~Wvs1%xosI*VB3jPATwmt{yRCH~W)9F8a4ekw$7FvYKd!&x_5H7! z@-(*My)Y5?wzqVYkb#zvOa*0n)`PB_5LNoM1SuP)ob3f*EmALL)uMhR+aiq($XmJq zI)R)Opm(yX^JW$uL#WF`6wE;Es3)CTh`whp?xFgZW@zU|00E=JOIb>V1+rBRxG8nQ zm&19VKEfAYA-m3HqPo~~MOGv#{ZUaL!Z5-clH{9DN1Oe2n*&O{FmQhO%7m7prTqp2 zJkI00ZI!`4I&I^K_KMz4a|qpVC6PfV4PCqYf)f0WMpV3Jh!6C0&6NDRxRbBQuZD7I zg8$?WSLal)_;9oF%W%FN;Tluxf*@xHeeErcJh^rd-|Jxyi-1{rZY{&#t3Yn)_>;D3 zt|l?f)Ti>Y9vSuJa;!2BopUMTaf2g7Ba3*hsO{}1UEfDrrLxKg_SmyWOLn- z4>e~jw9QfGlR8nj08e*yzhBLPr|d_Q;W0&E^;mx=toCimJ{@D|pv({l1%hvasX=1bRcm+anUEU`r*D@p4m*clMi`!6ns=7f zyY#GNMgo_>jN@5UO(;;MUMUXDG~|^z3)wS%b_q~X~)4gxJ7=?uh}#&^~-wKMe0%-uF-(I!FJX}V&$!UH%I zU&`IHi1ue~?69Y%&yA`9JLF01N2c90$ylb!+c__oA*}bi&~O2vPg;isT#62TS8q&} zxVB*)S;uOs#oy^k9@1=Fy0#NGxz|({x9RmNTx(7Ov5p!}l(+LTo5{3Z$tBi*LsYI> z1TpM}lCf{%Yz&5E`fAmpg_don2@vr@f=8iD1-i^y1%LXTX>1Te5dy_e+nCcf zyLN;*UGN=rQN(8_^+eW=xb}97t5SHL4$enS<$IZeEo$~9DsCgT8C7I-PbfK*zsg~^reJ1 zAAEQCUZaxqzSQTB#GFy1^ZMoA^N=sKYuuG1tK14Ay?-n#e*jZSjSSe_i5ue$kMAC$ zmOSue_2RvGwt)UB-TK b&qOyFvy%E)qj#cX<&=w=X&s|3-@3m5Ch+h0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_sub_directory_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_add_sub_directory_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b7ab08797947788f88c17f68fbbdc59635f2ec40 GIT binary patch literal 1658 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 T)mN5W6GqhU*(Ue`GQv3kKE@Z* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_test_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_add_test_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..06a3b734ab3d66b5bfe66fa29a04f6927d1ac0eb GIT binary patch literal 1121 zcwPZv1fKf<0RRC20000000TDw00u|^0000000061|NsC0|NsAM{v$4&hbzriyu^i} zyVX;-FixBR00000000000001ZoUK&vZ`(Ey{jR^_mKB2(H$nEn=a_L>Vr%l?>)Y|dt!2Y_M@I40GJrPG@?lXAiowL z5l$dC+S-#zEoh-l11`FdHNu~$&Fbk;@f9SVoRz0Dno^3WKj4eJvf7Yrn;0OgYw$1&1}&Nm zRxz_p5x+9Vv?I_4Rz&MGNw(WXIlI0}zNW6Iseu~?6_Sv(jh!}rW-DpI z>V;PXyso4rBj+t)1s}$<%iFsdWHt)!K132=i7Iu=?nwprJbK}=+X zqDRmRxE>YxC8M(6$5-Roy%T#ep52V5Q@FS-AcIL(%*OfMRaWeoCU?c;b~=i?QXQ|D z>kUGAXrt03OSHb2Mmy2U89@*?o~!y{_B&33pQS46wn8|1;hoh{@XfZ{^T8lV*lD93 zmMw{Sje9^a*SdaT!89E!NmA4kVQpxM0~;*a!|(mtO+qctxp-yi7Z7G?qu>)aiqE)^ z#*z!Q4JvYzbInqsLDzV2kG z+Jr}?sB7mjwjj^F)W&eTK();rjjQ``=utHE1O}-!3KpWa*hN0`yHjdOztHMjl6pv=K(SLah6mo{z6=rc_P$<2$eq|CjZA$Z6`Q{2-~j#Xyov zcX~oz!;Ey_qqForpVY0zE70Fhld-OfT zw{oPd>C65@wR$x1I_YD8>AYjsjeas~E6nRtQM?rK+19l*g(t+#Xx6g2OQHpFAw;Wk nw(c-!Vy8`c#M~O<0HrHw)s0-gDsQ-Zda~q(Fj#tjV52pdN|+YV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_add_test_command.h.i b/CMakeLua/.hg/store/data/_source/cm_add_test_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7ea14af372d9ed9596e1df6ca6e74841e2c500f0 GIT binary patch literal 1355 zcwPZZ1+@AA0RRC20000000bWZ010UT0000000061|NsC0|Ns9AP^JZy!`KU|NZt?H z-P*CV-4tE`00000000000001ZoUK-WZyGre{eM5jh*YP9rc0A+Rf*i4L@8-dfgspi z6{%9>^$x7BUK`n72#WgMZ|n^V0q#yG6(t+6XWqPd^MkaSzyGXP6akElo*P!Q0iZi% z-x1zG*Jx|sj3sk3Z3^(GGa(T^qe8=+Hsm(cSt-$b!K+Dk>hIgYi%ym$XkAwq1yfm^ zpD*DRSr3?+mu&9syRTo^?=e&FJL``w53yI+IrpJ=SmsvQF1 zQdA!<;*0lmP4`{BSQ|0V9h~wrk8%lLgj+F#=g?O?_D>t`yINUooG6PJpd%#&Hwy+W znk8m2p-mCDh_QQgpbg~CE!wTtYPE`aL1M((%v(3faM0SC=B|)HazTcU329@`jb2GE zELc4YjDX%}!a5_;(qRT)`^nAiT>_oaJ$&sP@F`eLH~;j60L0-@O}jCeKLYyUF-=+Ka1H zJuXZ25`ot;D(wVE8t||ci?nTKvGGpm(w3we`-of6`I~_9|>5N z*&_h^{@?*x(Q!J^hDDi5!J*C|dWx!}HWi98@#Sh(?IV1=r7*5!k_x4$fl5we7)s>h z^Jfu)Pm7+l@dmvKU8xnGo>gt|6rKiMX%r}29T2<<20x->TsV``_hC-$xf9)A&4eK( zP;p%KJUjn^pU|emPrEKh%hfn+;DynDkw9T{goACCq)x!Iabr_c zfL*dfKjQz7=yfUO9?t`s)wY2Kz(%E0{|Hs-J!1Gv+%Ej%65=>M`=%Njr+!to-l+3& z(0fRF)1*K8TvsutGNwq)M^koAhQ1|V&Sni%i9{i=){2+L5O3PUCiK)g1`4+q%7>sm zxCQ!$c$vmvm{UX2O0CU(16IqxZ+*WF(shXL56Kp6ncB5=SojNkL|%sDjWRXRzg84# zd(J2V0+KZvpbr%!OXUt$S_ohn zjCfS6C3XmVohHd9PDGq8QDib*%WR8bfOyxQjI+OTc-6J(jaZ0P8v_hK0HaAe+91}( zbEQgrI9KA?8aArDD55FxQ_5QB?EJpd#NOEAfVs285h`EMJi!0RU#CXr6}R6vR$LKA N)bVT=d;vdDIQLJDY(fA4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_aux_source_directory_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_aux_source_directory_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7a59d68ba78b09445e9d06dc37c6c23669f2134d GIT binary patch literal 1761 zcwSYNc{mgZAIFE0Gq=S~j>rtg5pryX920UMGmbQAm|SCKBxg3WjMzv>2Dw5znsHml z~*kwcGPP?|%OHKEHpz-#rzImhJdnS{^UX zzUp4-?k@ox1snb@?^83uA!7KrOL38kh85In0Sd28KE|M6curLWNk0Q^ZOvioZ$waUq=qkcz8D1KXE9Y@yJKQwvxS68b~BhiSl?_Vsju0 z@rp0dQ&N{Is3>+Xyith)yXai2&o6MUdWGeUZ$ZWSlKNvTokEPBO!(jfjfZVd_R3#G zN=j?I?oOTwdM>4=TQAO)ex|(f`T}y8zazrNXkYZq)~3STJu}%)(NA7TYd$JYK?1M3 zi2RsZTpFsE@uRU)rV6Uo!eO@g96y2mit~0o(k27)c5P#|=A2yD?iaxA)x$(rqnOo$ zL}53MFPotl)voEDX#d>LLa9G^(Xt^ETHv7Uz@7{u1*s@Bd=9oVsU{PBP11(%l0N37 z1vqu;G_+dpJ}R0TwaTM5RV-~xy9f!zH|q9N{`NW zr90{#{3UU)V8`H7ep-QwwXPZOHjs3#|AlrXSty9PzgfqK5V-%lR$sV!r7j{c7hVB# z6MS#1l!8GJkieYNQbRnvCXUaM`R~pk^IdAl2*PE6Z6x%(!=;eq4Xns>as9#Z&G!#Nz7*)P{3fG*ZLl{>HP+CwC2VwXZ*{45N4;9|w6Stf z{;ag9T9GIfz7)%cjjN8M2s^RHA9onn`4bd8;%u`=qSIQqQ^4Rs(6V1KXpJ9_dwIH0 zT;QpAkzB@-;IGyI(!@=oDW}=KH|rH-wrrmW7X8T@t*?gU`EyM`!q=<*{-E5`y1pn0 z{5f4+kfTvS+s)Yk4TMa(32+_+*(nhWD;X%Rx~_NByuGJGgK3lW(dU3jFXf)5EF(k9(# zc*Y9N_0_dGi4m$9s-J_wD+^a_q~vkjRvEF8l3m3@Zt>1~d#Dqn7i;&4dajGskeEdJ zx5Tr&;r{rz;X1}`0E7yB1(u#ZHLSisXz>O>i5$_p^N*G){HaHv4~wfKpT!-x z=5B?e*jGR=Jk)Jq%mG#UL}WVV3WWN_R8t_O4D~Snk2~hF3#T$!6GB*6#_;pVz@9jCCldmpk!vzifhIG$Ls4cJkD} zbrX$N#YnO2f}oIv;5tGm~D7-gYe+bDCTCs9Vrhk`>06QY;Esa8i9YL8PG=w_iG z2A9Pk5BnVevy$jdF@UzXYB)HfAl17NW_0OlPODr4Vv~2;{EbCBR}Y(>dpF3tJLP}mfzlM+_S?iB7(Oi zMUX-AqhIC+PR^^?8nZ$}3#Mb{_;(X1MjiQPLql@03qnH;D`M24Y7?hqv(yFgsNs#! zd1rJRk?urco0Ycl%;+Ut1AeP{BJ1zA8DA$_|ED;Y1>pNv=vS#Q*5+89av1|Y2KVts z^KXaF{(B+}8vTsPWU9SnGG}QevsqqQSPFm_D%SiUAt9+Fp|s;cJ*kvNe$YauQAmQh zBug)>YghnL;ZnVw3-&VP4u%?doi{rGjo#py7dD6E^;7NLs;c_j9@_8R!!bY1XO;E0 tN5GO6kJ{%Y43fIb{_>MgT11VdzF8cSDADZ%r+_Ivg4lc%09dMy`7gJFFGK(U literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_aux_source_directory_command.h.i b/CMakeLua/.hg/store/data/_source/cm_aux_source_directory_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2461efa33754e9322cdccbe1f61b4a2e51a777fb GIT binary patch literal 1904 zcwSYNcQ_k}ABW={N@KN6w4x<#v__5EBPca$olS~E)Togf71XR!dpvf;YAHvP*lHE! zY;h!Fms%x=qeoCdf4yFR&vWE&ktbw`h$~(WBI^w z2FVQ${p;shqV3FFLL1;;1Q!sjBYpUlc}|N>?vzZ3zSONk-*+& zf~yp*GDqc1`Ipp>i}DNHL}wHoz84_GedUw_FTVb0g=^zq;&|yBtr}P$n@Iuoy=#jIfK(;@`6ItNNmvWK`C_3N; z1lW5|W0=F;t@1DWBoiugs|~U9d8BQ8=^Xre7xRN;oajr1WNu}#fYkBDN;g@WY3B6t zA_{rkW0$rjFxk}D`jtbJ!fub#w2AB>No3^ z?s%h=?T_Eu7i4M}YVi7ntUZl~<`J6t#QCK`=5nflSp|X`3&r}*brSK=p0I2BFrT|J z7vDzLE>%B^w~v@FuSsF13l}|?LfbT$bTA=viOm@o^kytPU92j|K3VH*ZN}2KC>vG7 zrD*SBFD~F_r*c|>Rex7PxmD)D+ad-<@&VUZLBgKcs9?=;s->ly=S8)gSIlry|JkGI z$RNMKV7s?XYs}Fd8JC?REY$nyD`UY+$Y3Nv(v6cWF#6Iu*qm2dFRv-W5ZQ=XmH{X~ z(BdPz$WD7=3X3MGE)^j|7nqcBh_G_agtM8N7t_dWiW)1H(xLg8LpD`j=SCdHPi5_L zzS^<##ez%1K9;31LSzJa?qG6a{_Ww5#El`079wc~QsftgnBuhlq*XAvc@#n z;U1aSO^;vC2N&HBqlFrp|enkQR@NA;>k3&uSB858T8yMH ZX1ylrb~@@;bEHd=w7YPjBElC`TeV{KI`+JOHl|Ey9gJI~J=A|W#2j^Oo2ER=i&hTOI{>`#*6hy_cCWP40cU7dDgqxRRTkFSTzhgijpmG42n z0y=(r86w&jQQTDRB;h<)cs_Ql8x0@lnX(i*4ed8L-Ytwre+%vBd+X1cw`y~+v>IxS zdIB4-Sjp>}p5Puk;cUdzI!V->4`qfcdc-Q6z$UJ2t!!@2{GeO^Y<&75u`#-$M&g8B>Uo6vH8+ho(@SJyX4;%u>gowz|H;g-tBHQ>C^$Z& zKr%cBYSt@aR9uMZ`?JN3g{mlczM)SFDqr1w_Uq5UhM##Npyk_HFFafNp8aCAn^k2Q zRA2NU0I;{^!jY|cqcKqZVw^KYw3A?~@v~>%5*yre- zEhmZVn@Zr1oaf84isOv)ar(zbI@+UM1h3MaEF4JF`J%A~@r_u*;;mOoN*ARbU3A@hWT$Qh~N*#tQEklPS3IPS*?<*bm#8BhPAuF6o$lo`AOsVsu7 zbZ~I3%<-kEHk&%oqb-MemPTSR=WJpxG`}whIGejY&8(BNM669|U4{+MXUKrluWD#J ze#i7{SD7>>Y)HwwILVdZFc$7O7mJ8?XT6x(jui6-y`iwYwxmrNHmiJg&|36@L)VB@ zl=Uy!veoBHwn`6>rlgt06lRzg!q1ha{J6(I_>yI`ij_5A7nj%7?50FS^_vNLMBk4* z5D+7;F#h^eh8oG?u)LaGjxuXki6-JwYvw03McvE#$}fU+R&M9?xZYU*CD{3E$I9?G z(8X?MV=r6(D#h|-^#(i=ct7goFaA(?3~mNVVNVMTF&vFVO3yp!w%+T3jX<8f@2ZJ9 zA%t)M+o_v5=uP&cLSG&C=N050`A0bAw3-%YMt&e;%*l9aYVg@bnf39?8mmaU+shxRMcU?P z7kz|E+CTcne0YEK!lHct^)C{ThMAL!okO3OV7_g_ro(1m^i9hlsrV1mE-SG`n9f!HP1Usf(d!DwwT9#))>A=;6S+Mnu$D~mbB;X&8sVU==~Zr8cfgb{ zCdc1fn}0Hur*cAqhso%xZSpLlI~EMEl|PL0TL?eQ{6pR(=?sB1k0GU@zueDyi(GSZ zRV%5}?HN3{@%;J3Hw%T8)N;I@#wywuS@V(L4N>n8IXVrO3{nw$+?=B+%W2=0eE!=_ z-`U)lD#xfhhPTpR5LMi@dk|&I!5;S1ZDKEf1LeT0C7vU_At`P#?>6)~mumccny&>z z;oCQU9g1pUwEs5@cj^-Wh!OUaj(xZ7M&i)&)~)NHte#U%_YDUrDN|@Q{osE_Vn|9S zf0K^LofJJIcL8-@PP=El2?l1y_ue$;3)zAP5UM_M#s2(3OA{5<-FNcRf;&vQ*K#@z z0f)j(z`%5@u&-;z*i??)g#FtLAmAkj^oI_!&66C-n zo=x@=Y9(a$pu3l+T(-6BI*icPIHNpQxEXl!O=wPdVDmMl&{bi=mO(HhOkK>K^}$kQ z*9RT>x-bE*hWpYwhLft?gSz7G!xF82r(p`rr-nfyu2)&l&b?nVEyvE8KH&)ag)SAK zP}yF;H0V3&MN3%OTSnEMs`t)*lK-}5VFmWTjageehitMDG2ss=0mS6ktoQXn{&PQ$ zSgb}9jV9YpqkSr(d?KMqcq+glC-6KqA|kpmBDXQOE;2VRJt8%|A~%xzUL+iiH}`f4 zl{BhAn&GWwZaWsbIss%CEH>ys6R!#*GoVA03M=A9cGP)f2Ee-4>+0460y{t;BnAjM zEqQ!*CZ%{5~-EPGj8#E?Xl>RC8#;b3hLY5lPA|u0@GuzYDB+_qsD4=Zq_& zG*c-888((#nK_&mB|>DI46bqUc`%rj3Kp-8j`&l^tuUV8Voxx=jx3I}Ab5D;5jy6f z7xCr@Dlyc<17{y^PtcDRGHaMMk<#X~^rTSk@}|nYJ0*L%JN7ctr2AdF@o5w--)`Um z4=^r$2EQlQw8x3rk<-|hJGRpf?8^Btj9*2jG-drf71!o{Tn~4786@_*a_qZuPR{s} z|0l>%lNf&!Em z@}}9k7Aq+Dn{25Sk-0_bsdec^)PH{|oR$U6bQ+By5ec3opZQKABClA0$RuKRyoGR8 z_IDyt_`Ag_>69EfT&}K6M=46Hl0g|H_2+4+QiDYW-cqRlwtt-(-2q6Uv88AvxO#aO OUU8_94|sOW*y2A@n=Q@& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_break_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_break_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9294f46c3fcda317f14fcd841260005aaf3b96d7 GIT binary patch literal 582 zcwPZU0=fMF0RRC20000000IU800XQ50000000BY&|NsC0|Ns91@`p^_phdDNlj1d8 zpiKhS0`QFh00000000000001ZoUKy9Zrd;nz56SOt|*c=wUZ1R3TGSOdTC=UX#?9` zk)vWWwh&tiB-%+a?B6HZ!wU4UQ+bdmlJALppm+K8z07d{)=CzN)jj}(E4D|thEPeZ zuh$i$om4g0=#Ezi_b5;?lFGnVGH)uhC^(P9#O8g->RW|uAIiFBB6qXXY1G2Gsa`Ts zG_0`o;nkH1d}q{y4ZQcKxm*Yto@S zyeM9j1cPj7Nv80F(~&70K_oKQp1RA2QfR4&H?<28R26hE4GJ}?7IW9IC5W$#E}aOZ zf|BUqd*1PQbhFxM;Yw9_i*&X0UQ0`=D==z7j>LGSUE7(^V@O$00AHx6pGg$DgXcg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_break_command.h.i b/CMakeLua/.hg/store/data/_source/cm_break_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c2dc3e409e15dfe1608fe36e440b667be2d34f18 GIT binary patch literal 942 zcwPan15x|{0RRC20000000V9S00-Xy0000000BY&|NsC0|NsByw;6wS=i@K0*dvJo zTk@wi&1v2M00000000000001ZoUK%UYuiW={a>GAa7%IAR7!l@QRLo%t0ot7c4BO$ zB~U2q)yP`1+BLf?yCLMe->hUO@sG9yDuS%+?3;b_=FLW(zkk;g1OQ{B=Z2Lr03;)J zi|`H-qpf{6mdxeal;Br$ArbyXg@!q82sYALCDEhc^(2}4cnrM!Xpr3|x-6N>!s2)d zuW9d)sd>fbes}WrEiHUvu7MJ``R<;aypK*!qwXJY`e)pIA9w$%p`X!Mp;cTTgGo3M7Os>)T0w@6328&mjh?g+7Oc)| zMnK=0u+E5C&f_PdKNaN`n+tW zmk9h(Mx~wLXzOB1?MW-|0p>_|s_M5nuM-8YM6NQ-cTDrG2wu^uP`Do;h~l!!5L&!^ zG+8SMqD}|Ca>=aS0R=#TnGtkMy$re0B`^g@iL@1J?kh#c3$Na)@Gh5HF9_$M+sVi) zt}@ELAW0M)Vg)fQs+klV9?J;sgJvnFPEk3&U!BH3^v7T+jH{TWPAPIw#c2rZ9{C>f zwGuTZqW9zGP4*5XQY&m9H9okn-%T~3aJ56PSBD>hLrgf6(%Y~gcRoAYhjL-8^P1>N zIW)9Os0Qpe)_2R0>~HJA^7q9);hENwCRRAXTf?jYW`27!y8~` zZjT#pAAWdw_8ocU?K^eMRTkdZ`uC`}Umr~`nv$$XrRKZk3ANO>o6>~>%Z*q#8j|dX zh1hAmhs~sy{(hr4^$&Y{`XVS+qMz&M2Q#`q7RW^|YCWH1^eP_cxR(WZ!Ays4Yj;T* z{mJWtTQlF~R_}oj&kvtgoYQ1E$TY7?RBk=)zsR1_-He}}Lk=3O^`glOTO0dra~%20 z=wXrv*@J(?0sDTAQ_+_s^!?^WA2@O`ezO-2z998{OU>vE!%NBqKhM Q7wK|Cm5Ds~AG{N6n*>VIdH?_b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_build_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_build_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..059d4612cff3a09d94dba9ca4d7b2b76abdac043 GIT binary patch literal 1153 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_build_name_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_build_name_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..376cef3f63cce260bc4c93ca58cb036ac2439456 GIT binary patch literal 1340 zcwPZK1;hFP0RRC20000000a>L01DUu0000000061|NsC0|Ns9h+G;X3&Ykcqhzi7p z4|CtN7s|5$00000000000001ZoV8SIPvbZg{oY@3l|`cjXhK=dXcZo-PNqOLv{Y$% z39-m^+$NgDu570*i}>$*oi=HCEW@nWd`KMI=iJ9RwzqlkQBSP~(34^;N#+AU&>=q< z)FF^Usd_IZdL(29W_FaM42~IRl4v0j))7&jGJ}GRFzB0gA87V9PtvGMG8Tv|BRq2H ze7-$}4Mdz0KF-P5V1lhJocKocf&eKNxu7qv)Rn088*Zfa_pT9I;Y-hYpk;ruw@W2O_Ef(CO3Qr zaiTzpQIQegI7*b3$uQR}g3I>cQh+A7;Q!ul8HQX_`k2tXJFk*26C1mXQJ0dJc4ob*=X9Ew|9Df3Gyl2B>EdeUcK& z`US?O({0PMw!yk9BfkS+|0=+F26*25W)uY`?|)Zddx`wXL#Mw8u#B^fpN7WfuJztH zS&?staJ-hK@An5`yL(*K_qgszE%VBd_^CY=t%%D_5(i*iCcHbamS%g~q1Jh~ePuc8 zK72xD?bTkBCg**OnwE#zw(gcGH34 z1LdE!a?BeiVM$Xe2~}G$pXyAk5-ZQBQ%Uzwjn-RYpm-0{*lswm1y!9nQHUJ`2c&x zS7fkCdF#L=`C{&wq-cvHM4MIPWxHf6$lg4e73)t;|Ky7JC{Fu-;9S3GUeVw~?wJ?P zdk5w}Tr+Q6F;6ZQyj1=Hl{y=l000001Q7rL00021000W^000000003&00000|NsC0 z*REZc6NS0Rd7Gc@kB%ASe~>BG000000000000000c$_6oOA5j;6nx^YE06FNr6@>$ zQq&+W{4BZ=QE(sAPy$T?$!pOQdM*1I7?@#(836bJ%oYGpB3?L2h9kmB=V`i2(k#h0 zm=!GFvSN>6fcTQmD{F>w_>i5NOcrND3^0#-e*01Wwzff`PpxXI8`tt|wdSS@7%Pn; y#hW|#e(9-VtdoMQJB-?sQ>H$mu*Oq_+|_>F&s;xJwA6n+iBsz_S_OaT5H^wJn|KNU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_build_name_command.h.i b/CMakeLua/.hg/store/data/_source/cm_build_name_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..143b6edf1dd435d69241f87441438d70f89dd3c1 GIT binary patch literal 1318 zcwPY}1=;!l0RRC20000000a5}00{2@0000000061|NsC0|NsAazOW0YOW;ooi4RTq zglQYujBqFb00000000000001ZoUK-EZ`w!@{_bBfqR|OxYLZ^7N^o})bx4B>2?FQZ zNR^^xJ>XT=yVmX+8b$f5} zhwugxqpf{2k<2Z$DZqbS2#N3s6&mKWA+xd0Dv90-j;6`X%e%mfkCl+wB`Yw|MZr`S z=f^8JBK;9l%Ze?%Me_PJeK=#THYW%5^V^e?51rE!`oZb@?z<1&cfSYIztLEsRX2pf zm8f4%0_+{%(Uj(aLJ$L{-E9eJLTBSukkP ztT2no+YE8%F?Qb_Xal)(Ww+B=uh%gzs2s62%g#kQ9(8uAxho`4!5~A>W28Mpv2( z3sx@zBB19?SZBn%a+txFVR~_OokIWe2EO#C)Ba_8(}T5exvm`G3RUgI*R(F{c30>#{v$m5*-^{C z>Qej$%q(rIw~v&D5KTe+A<&B-feN+Kcbg=H0?Umk9kD(8DI_}!I==7C7Cda~N6ojs@n;q1 zG#w5y&8q^Hdm7z;36Rp7#k1!o2MALy5onxYX^_*}&S;ZdTZE&BFh#esn^`&-KY~wq z^DX)M^)|U0Plltx^pP^R4p|mA4zXaqF9EY!qgG#C_9t zoq9R$HT}qK=?@L%{EOEwH>c&+m9GG`z9gO-zdF3Cjs1B*hV|N@(WZ2jUISavkx@s< zjjon?aJu#NytbjV`-R=&v_Dq19*Af3ze6IsUmqSGm257gpyMR$FfB8JTmKVS)dw$u zJ~R+#!qT7{I@7a5n(^b00001K>z>%0RR90|6_5>IS}1&CKrj1Q>?VG69xM-9^oL~!R;pG2mJzn z$e7elGc(LE0|0M;!59F}h)2a*Vu!HTX_9Q>M8xS5MJCg=%(fT?hBE0+E^bx+SwjrxvQK1w!UXsCw`6XguvF})^|9)Zt8*W8uWcLY~LYL>(%$Swu78DZfWwZ7x<6)FcDL8xhvv6u9 zql^kx-fZq+UF}|oXpheGe9kl@(U2%rR~iK?8X~b<_Sp=E&)*;#Te0YhV{A=fI$4YjPF)LhFrlI6PzxJJ+xF&SrI^{)_z$7Z>2X?*=1((05Xk+z56m z(lW70&Gp^>rC3Ha+GTs(zL|7`U=Zv?MAK5xT)(w26lUu9&4}u*X}0c!B#I21k?Y7g zSdl29mULO!uG2W*I7_M%$+!3vi`{LgWL8Faf3HtAun)3QhVtN1o58l5rxG=c2P5l) zcS>T|M5NGaK?$LRKX9?;8}`9R$1z4(DmOIQ>kaGo(Q%zTQU!JDTC?1IgYZ-Mre&M^ z)99pK{O7Umru<$@H_aYKDv|d6g!eVUt;5z1!X-=>B=@2i>=m zeDjVrRNZ$~%HPf-5o_divC+93Z{xC*@5x!6< z@_zG3n}$!$cQjdByPCZCR5Pn96%xKfq-+vL;QTgq?Z3)256VRx6$K`DQD9Tza>7}W zn0wYgTYiy5Q*#(2EC#@gQu*FLU2SFke`xvl?_o#8OOkG3Wn?N_zB2Dx)wz88mLgW6 z=S9`-;Gkk>XV+e?sJ1hz7)ezfFus!biwFe8g)Vwmqn`)!1a=M?03A^|gQnQ&hC zo+;W?=8aCSQ4Ai^x%i=|4H0q#ghO0000000000004NLB~8l;!Y~kA z@z%2+u!m9<#J&(Uh!^$HLqQb0$99pRO)%M3|Iwc^wgUq*%rFB0Ux3jB01Cu|WD?jT z9CVf>>o`f{EXQ;yvXxkFFboi{WSuhlUk=aIsllX+H1{#UcN<%3G4 zRns MhtVwf0ordkJ&Ek~u>b%7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_c_make_minimum_required.h.i b/CMakeLua/.hg/store/data/_source/cm_c_make_minimum_required.h.i new file mode 100644 index 0000000000000000000000000000000000000000..53563ac56118bc9e97054ed62ea2ea393000069e GIT binary patch literal 1365 zcwPZj1*-Z00RRC20000000b)l00~O~0000000061|NsC0|NsAyC#(7s9!9EweS?;g zmX7SDj~pBT00000000000001ZoUK)DZ`(Ey{;pqfaEl>vQ#t8c6m_-%s_QI9{RUZS z5v)T%Qzx4XMS3J;Cb4a`13aKGK3fiCCaKy@$X6) z%;WjV5}uP!pQ%~JX5Opw;sw399%!4u|lhM zNQX;N|2d1_(J38w^y1El+1$YqKlVXh!AId%%-{+16p#I{4d)%LtTs+mWeku=3Bk>R zL5pTdU@6)JaThUmUma)zbLSTAR%^9d#k`~qK z*<4t#x(JAXo^xTH5!1?H4xfA3<>)GdWOxmqlQd0++4VWBgq!Qi0WMKN9mUPbw_Hd; zP87&6 z>f^GhULx=Pg(S~A5?LjNA1?Gr%s_KU+u-S^9i9+RAJRzQ&dGw4F`fh82ShJb-|REDltuATG78@fi^6vsT3TxMMU>e{i;oUqhfsbnzfolNGy!2 zn54cb(o@B0G(*RHNBNqE;M1btt??#$6FO2WJUXsbaUXsSy2>a}xOxKSc`$p34k6-9 zN-xeiY4#BYe^dx#NzIDuN;&l93ROFM!;q*?Lt(?X`E9Zfe5$piITlVZIVK*DtjpW& zCHk^|3D170)a}rU;?Haw8Uwh9G|ulAQz_ zF99O+e#0Sk1kd-FLQt$kKevw)GujUe-BCo?8nn}eujgEs{^QuJU*7N-z=`vcz_~Eh3K@Bw~=t7ZeAg}=f z%X*u85(3m9S_TWF|DtZjjg7{>MLY0&=>H+TsHFT3=pN2`B|-z>Fl|Sly6L1h8g5Vz zt8$74{#s5aLWye`>|)dm_@>ypnkk0Pi9BourT~qh zx&<{8Szhx(<%P`Os)Lu=-2w-U8+~+mVV&$Y9xa0h+6Q!DpvpxN{R4V}?PLG|000Cl z000000IC2034#Cs000000YLx&00960|Ns6_%}Tg`OQNBG8RY3x>upx~GyVVo00000 z00000004NLbxpAf!Y~wkf-c?sgEy3-AhxL#HHwoC-9*7X#!vz^fxOq!U-WDI1#6wX znMm^$ibCdVS!^+m5N{@s_3m4aFQ&CWBbFlT zV}S7+U?Td_4zaa?8&%`o`x;AU*{b@ih-SnODO;o2hy9?5gLTybwRgk`s!-7)!vE0E XQ)hI;{r8m>H-rfdJl{nhUkW)e3RsA! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_c_plugin_a_p_i.cxx.i b/CMakeLua/.hg/store/data/_source/cm_c_plugin_a_p_i.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4e2aa45644db5ccfaa9293e71894d8a2fc2b9bc1 GIT binary patch literal 5741 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_c_plugin_a_p_i.h.i b/CMakeLua/.hg/store/data/_source/cm_c_plugin_a_p_i.h.i new file mode 100644 index 0000000000000000000000000000000000000000..52a83585ff1e5fd823500ef958806048290d73bb GIT binary patch literal 3042 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_c_test.cxx.i b/CMakeLua/.hg/store/data/_source/cm_c_test.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..369b71d0e88e00764fe190341cd7ce603195ba2a GIT binary patch literal 16620 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_cache_manager.cxx.i b/CMakeLua/.hg/store/data/_source/cm_cache_manager.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..100c1c9f9aa1225f5e68fdd9930ae90a23ca9c52 GIT binary patch literal 6745 zcwSYRWmgmc+ir(u$N_1k8$pJYPU#e+YmgZlq`SMjOIo@cX{3aqQ$RYTW&mmAtmi$? zS?j#}!?o@ous`h^fC4}P{10S%0D#TW|GfbyFaKq~(g=}}!~Dn9OBvsX2N%h_Kxz#5 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_cache_manager.h.i b/CMakeLua/.hg/store/data/_source/cm_cache_manager.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0a0b583c640452c9ec607d05cb7cd6b6b93eacac GIT binary patch literal 2493 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_call_visual_studio_macro.cxx.i b/CMakeLua/.hg/store/data/_source/cm_call_visual_studio_macro.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..562d8170f10e84ee2af7c251ccc4540c5b364c98 GIT binary patch literal 3138 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 FDT>U+hb903 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command.h.i b/CMakeLua/.hg/store/data/_source/cm_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0d839ac2414620efb6ffe187a1212ee679aa60d4 GIT binary patch literal 2026 zcwPbO2Nn1L0RRC20000000v|L01>1B0000000061|NsC0|NsAz%pgO!^XJUg-%d=C zd)Ti7sZj+000000000000001ZoUK^@ZyGlg|DC_$DXlg_)1%EcO@pNpCCP%8Zv(oj z(xl4xeBk!ZKG{BKRAqnr-m{OpgFw@2jSz75`}%obNw;(Iz5ZG)fLo*IhGjhf7+$fD z0-nRrXltL}rpzVUWI(5hOa=TQlrYR`gKSqiE>b~U@N_(!(0vbhHq=?hR2(gimhcqG zE}5DaY)*v3XV389l)1o#eBt}?ix2(Y*f9w7HQ}6htXZ>3kE4Au*4Pq(7!^`OS z7re&%q0aA&oG%=-`5{R;hCiiSF(Zy(qv!;WFdh%Cr|vW3qw?`Zl?qP@RV6w zThanNn;D4~PYNUq*Mt+pY~q2)B3_|{FrPZaQt?yx3Go@T=-(sE7(8C9#ZQ?Ci`mNX zr2wrpcNH-?Z+*6smfT=bQUo=^NLAViam>~QY_Mc)1jDsX%1ksybIB+xDgS^$&ahT^ zk+L9R4PnUWh6}ZOA#%aT!R^R9S2;#PoCaIuITj&)@&zP%+YVqN2sIQp-Rq z&~D5P1)HqI*0jwhBfdBm5h5`QR@P!+wGgTqFCtE)u`cin#dV>aFvu(e;Z{Y3q=ymq z<4?KIn#Pv z^!K{StsB;>A4s!33?TdWCWHS@(?-o-mDY>8+4WmtvNYkvZ1ZFlQJdr+J!C!%+#4}! zTECCsi_zN~tF15v=6$i+2XJlNUW`2EC8oXvzho^7eL$d{EJ4$JANPa0o|l2q`T~-T z{H*|>nDQXkQn@3l^%y+?KQ)MV zg)Nj0upfBEG#&9>!AzihwF50*&*xH=SW!RdZ#9H95UgUV8ZovW>iW$F`9MR}Y_O%K zXhXZidWRBRri97-P?5q)^mE`{zfr?$jR@rQ{xZL;hVenp$tw+TKk()3ZeVJp~E zXjH=G+HgbM%_027b>cK^Utb|MN%qPOVcit`S0Qj;#Y#oVX1kEfg{ju$(+80#W!78L z#=I$S_qc#LD;~pWQmgPPOGCDnvf4ATQ{#ATlmOg5aab9H%EL@)?0lO+J|m(E!tmP+ z>$Y90q}wPJYVH;keGLC$NmEm=hqouDc>1R*(fd2eo}It}6zZeWD-|q_4rxOIKmi4q1TWJOTFhI(%$1H45HZ+zQUIWejMyPuUiWK5^^}^McmukHLG>9 zxr}f9421B}CoytK|D#xE<~s3O<+>F@4c>r$3&&;a32p^4Y5fPyJ$(-V00006WB>pF z009O701_7f0000000BV&00030|NsA}IP~zNgL1H$QscH+eP}^$Mn5P30000000000 z0001ZoQ;pcO2a@9hR1_g1HQu?La|V75~xjP3wRqxsNt4}pqt~!#& z8I%Xjd$aXKw0KgcpyKOy9)2RGp0SO-?>(daVfIZ}x9MgUr%gG-PWB%%zi15b6r*YI I0X`pib>dXtssI20 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command_argument_lexer.cxx.i b/CMakeLua/.hg/store/data/_source/cm_command_argument_lexer.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..50f7a7e97ab96d27f883ec12d7180bfbe75cf0ff GIT binary patch literal 15145 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 M7qHEL08;q*>my6-&j0`b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command_argument_lexer.in.l.i b/CMakeLua/.hg/store/data/_source/cm_command_argument_lexer.in.l.i new file mode 100644 index 0000000000000000000000000000000000000000..e6d1a9d1513fec96df9ea75330d6f1b836ca3765 GIT binary patch literal 1506 zcwPbG1s(bT0RRC20000000p7|01;UL0000000061|NsC0|NsA^@oZ?McwgEVAyqjc z{$h|rY(Uxo00000000000001ZoYh!uZ`w!@{_bBfM-mAVY?7SrszO`Ep|n9I1R2sQ zS9)l%7qGJ4wRYEli}K%Z)^-Sat?rcQT7N+H&dWYC`^$&If7bT@fP>%b2e0dg zuQJomRH{($dbT5-hxx;SbFhzMls843%5XZQ*b4u z4wJ|Ma2bQlOo60|$~g@j^wy{J#-pQ`8ia(I)^WX7TPzliA7NG;A*Z#I!D**u{wq7C|ygzFT<1WsFC^8}6D<94S#xG-2hvKp&%hRsi2UX9DfU~|sX?ATri12n1Zo2b0@w<< z&ys*b$&dOPb%_kx`I2&GB@??Au{m}FHZzknGN*^gz;uP#T$FeB}Z9Gi)Rj7Bj<`G8{m~qy-6DZZs-C%J!`ORMJc_ zU?xHy>d};mF=0r|g!_j0clE{??xlrlGQ3l0J~-A_2ifQ4Z_M1>-T(rxLTKzl@DFFT2 zd$|q{n*r{*mGFR0%-OWNz4L*!g--_j^+I`^Osb|;CQMf$BFm8qztai~G2T_N4sS7o zbcq#gzeBifvrTTd)^EU72C5)-21-$FSgpk+nB#2yTegtd zQ68{{1vdxanxe$wDe{xXw4A1FPFP$mT*yZ(qn{eQJLtNntpa>$dsTwf^MS3^{sr8-U~{O2lKl>ao5k}!OZsObLo#Nx zaXYA7*sze7rK?{hBJZh)yp4#CewB#a!6VVQgDjGJrSgAO%EMu8mUvMkmi4A+R_}&G zCp(64f^XU1)|;JR-(|Fg!$nN{X*3q>X0zS$bzxR2P{~G%Rrb5FQ_J(tyhgTqbsIzf z;`I2elcV_h_i%f4H5?xO#5vo!`l?w}0>sRu#;rg$z3KAJqW;l4}!Np9P56t9!+&|7sSe5e+g^`B! z7ef_iQ^9bqDO4&}mY`iYAvp5lh$Hf^Q8Vjs!m^Jndz$}4fFEdu7c-Tcu`V0$%m|;4 zabQxH_-4Clq80ADYi==NqF%YL^r+Vxb?B!Ew4|sa?@KVQ}mwVU9~Ig IA3;BP?i}3RqW}N^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command_argument_parser.cxx.i b/CMakeLua/.hg/store/data/_source/cm_command_argument_parser.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9d84665838e4b6fa76108020dbb13fb9f7b6464d GIT binary patch literal 12667 zcwPZ}F@(+l0RRC20000005LlN0J<#z0000000061|NsC0|Ns9q?`pcR-OjU$kB!Dl z0=%ZtAP9~C00000000000001Zob7%6cN)i%=-90Cq#E6;h>h9{Q>Z

    L-t0eyz{O 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 G`I(Tx33DC* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command_argument_parser_helper.cxx.i b/CMakeLua/.hg/store/data/_source/cm_command_argument_parser_helper.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..6fccfe2a0879863e3e14b28cf2eb707d80c83d1a GIT binary patch literal 2370 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command_argument_parser_tokens.h.i b/CMakeLua/.hg/store/data/_source/cm_command_argument_parser_tokens.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1ce1d79094d1f5f289104a9a0dec6997b0e9c5cf GIT binary patch literal 1290 zcwPYt1@-y>0RRC20000000hba01EH`0000000061|NsC0|Ns9p(*7j&b6lbgUfTT3 z+nWH^pp%pU00000000000001ZoUK)DZ`wK({?4yBSDmJ|qflt+3uqq#r7ap1l+aCl zs!U?QYGNbXDT}82-|sn23SsSb@0Au+E_r<3{G8`F_2bWf>Zw!!CR!~uOWFX?8?k2& zC(zT%n3GA&>_X`T2wjMn!yT7gGpjVZjZ~DzoV?(J-wSBJ4Pnw#Ny230>1CR5X(vn@ zuBYmmOH*4_U*H3}4w+o0Y)Q_&PoEIDVK$G1vGU)|)6>g3{xvV5ao%pV+Rbz4`ju-V zlx(}K{6*w1jamzLal5D1nHI~Hg~RZOf;8caup6d%6$Ub_(Q4d&Pf4S+6=_lf@ZuPp zn*q(S-WML#Fj~O*E@I7ox1cnvtX;S3_048e3lk)!ru4FYKOGJ0JJXd-VnFI3;+Bcn z)TlOmrYm8KT4^nUy}1@B=7-#p*<9;UMnY=m8@)B=Cu67nc^ zg}%u;7U+b5G?O+1wSZCI@7<%9*BuN8(-{?eJD5K7g8**FK6o(k{OO?gIQ0A?(&W*f zjDvnHKPts#bM?X@+|nqO6(Kk7Fo~j~B}sx=5{M1nnZ>% z@kkqiGdJgu8oo$l#~d2}mm&Ct{3*i!nSeLirvSfUbUOiiGd;sD8mujjV8w89G!MDJ z>jRh@qJQs{qcm2pI<+MlJ0KP`fK}LNf#R_0Z4b%4B*5a5Yc$iE4=mbaj9an5 z__wiA+OgeL#*)X#gVScCaeC4?BgsDo-fqA=gXb`79ty0Re-HUO&$3y$K9H#Cvw;8c zu)-;=m{TFKTITY&ckJF88%X9=C;fzF)cafyrQL0>@ghb6h51FZy*q!d1r>lbMp2&o zcM^A_B)0-@)bNXf-ErmZPF#Gc-1~u8;M^@>Hk*#W^ihbDe&qn$zYvn|ffyNGCs?!_ zQ5Pa-fZk1(%vB7Q&FSn$C&i!a$^_qdAeL;Y5Bbj&r)sZF3v+Hc|C}8nI@2B zE``l-oPOjEA&Z|LdXN5a2A`qXx~lHrn;m>zhQ~vi0)#J4OYm@OebFev{tj-I;0JHi zci>qG>;^+GxOeb*2@YnX?s(|nRtff|4!S5oecvDFm0j)`ZnIqx`gf;tz$IRiZ`xLL zsKf~}vIpP1!q@w7&IvNI2N#?mBYUv_3ODytQkBTa9$0XKjO@V$C&vC-y8e zPHn{wsa?&Din+l%%yzbyIn8dQ*+#lP>_+8HLTJ3ZJ@p4)2i}l&^VYiOAN0sgT-I`c A4FCWD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command_arguments_helper.cxx.i b/CMakeLua/.hg/store/data/_source/cm_command_arguments_helper.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cf6080c1b2579fc5432d30aee14a5165e9dc7f34 GIT binary patch literal 1674 zcwPaD26g!W0RRC20000000v3`02?F#0000000061|NsC0|NsB)MNBeQyQ_WB7}I^( zZ3IQ(8`T&900000000000001ZoYh!+Z`w!@|DR7W?Nu!%ywcw3PNqhpByCXh5|CEa z-KjEW0V~Ev>oo+W`R+Hn>&N03B+cn`NPxY&Gdqvp%+749W<1xYQUSQ8-kh3C9RT_l z<}HB+^r`3jjcdnbGmkETkIrm|z$fAoYBG-^*@ZU^9KxyK)v!O}^Ez0|zPDVO?zBhe z!IHSlKO@eH(57{FS6{;`q&qj=d0@^tW&h|12Tn{T*&rkN{I=cxz19As_4XY;>c{W& zhj2E^KzBdyR0X|P{pHX`fFfxU&gYntb%@}%@-{5O+IP6`H zzja_^vxOHhAZy}+kv%K4fTZ%x38&FFf}wump3S$bS(m*c@?Xm`}= z*-%((RVu&OuH^(%0xt_Ow0K#mWF~bzGgK|&Py>_B{d%bXzK?|(7<%(^qj0SwJ zA5e-@19wX9s%;G__b8n`gDThXh0)f8u=nDZ4>h{IX<{ITP}DkN@_C` zC^L;Nh7Tg!C5e5TtH57;pP1I|F7Jm*W$oG1tWk7*h_S}1nh;!ak1YU(FhM7tQMCmF z+R4m`7xL+p?e)=f9B<=SLzku(2wbR=Xar(Y!)2!{K0T0VL{9_bYYG$LEBb7QymXO}brxBjnuT?l2f~>^onDZ`7 zW-Uk*g3=y%`nmJhJh`TA9U2?y3`9Hp_yNhtpY6X5@rboN#& zXM44AWq4{S_vhtCemp)sw7_Pu?~3zlCcZe?i~V$|7{eg5GZALbs!P}v!ImOAB0Rm#2^C0kNSfy4$;!7`Y;hypA=lBm5^;x&_~lNG#TT#8HPTzF z8Ysz0>L2Ti+>?Nmb6WmcCWTc>CRs7;#!X&&jRGm7bhefX_plsd(y%y62vsOP8H5J| z?>WHs-y`e*Y{7nT8KvNoQ*u9)26<)=+ai$W0VE$9G5?SQnVEsZLb5n*g$4rmuM-S@S(nY0GQSL7# z)jD!t0hv^f(wd_7Yjh)Zl5?!2?%OrNBb(s=lR4DuoxN5G169|rP3rGJJ=9czefM$q zSjAid*OH;d#qguR5uut28yOeMY4jvV$gVTfbf#TU)SRY`uUr>I_LoCQv)jaVQq%FB zQLIm142m`+dXFlJ!jN52vbMdzPZOjqrMe)~6$+@z`?_3Q%BfNiKFKo&`{q#Z6kg|u zDlT?}axuVT2VTEcXOp{{v~e{puT9N(OmgZJEI{Go4m4Rap~Sq+>u2Nof0s*IL2-oP zz9*i`d)V}r(P5@`%{kE7CF>~03t1nef4itJk1OF_$LuDA_?lyPm)%8;Zqmm*@g^Y7 Ued-nUBQ9w(ofPi$57SUSJoIim0ssI2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_command_arguments_helper.h.i b/CMakeLua/.hg/store/data/_source/cm_command_arguments_helper.h.i new file mode 100644 index 0000000000000000000000000000000000000000..54d6c52b9f0abfe990749d1e3c04e285b2175da8 GIT binary patch literal 2258 zcwPb02rc&j0RRC20000000@!*03AvI0000000061|NsC0|NsAkth}1mQ6lhKp_GxU zcFFElbh3;900000000000001ZoaI?tZyL!GexF}aN>+QoO9sc$(K*7KtR{eCwD=;x z8|TStW*TUDE@-;P7)9CNeyXZxfB^Wg@qi7CmofBOwTbcC@=P>ucl>H z*V{>~lhmjzasj+B1QyefN-fg|8MvrzDCJtCYaR_GDa?$Sx0=nxV&VD`#>7q1Y4dz^ z(QmG|&P)^nMhyaKgbKAww&BlcrZnhe!WIGk9w=>6HO`C-;A?Mmeswbf@A4ab^#%j) za`f#K7Rt<$%z%85F<32ThO*H-R49asQW2XaBonyk4%+7^<$dn;d!uh;>{)Mg*&Pny z>}miWTzi92uYJ?^2Dzr|o5A(fu#%P9liQ# z7(8k^Z`C9Y(pCw_KEOZUG)$tT0VBkUz zeHTj&j+qH#4_XCfVg-7!`+bahRfSDuyW`QRiOn$EgclPPUUr7NaGsT*-nMs|}i$!g?F~ zYE@vcb^eET_Mt83uql#)hF`@#8jD4E9Rh+tZZg$MEe&MzJp{|~&}v?qPMj!9I3&=X{Ptl@Xg^+O%aLO_ri_Ce7pyNf(0JWEKa-@vD^(yFBX{CrJoj zg+8Ng7+ib&p`Y(5AIVX8_X$Nk-=J5gtE>>;@`waAA@r5fma%lBfYV zl3=XwZAGL6pavz;w*}YMLK8)pQZ0PyMZ|7y7bp@>*J0yo&>;d6-v;JqWrzrG0%UHd~9a zYKZ6d<^U+nI6B%3FnbWv9PKbZR#*N?f74J_vea79+qR!uDVDNmj)Nizu9H;gbOGzw z%7s7W^1^=K7dq6iW%)YCyIqm%y6qIJ!ka91Xz9)8;qqz`TV9q^L&d+)+MqVC%s(`Y zg?~?oQ%rbe6qYb;XpC7YWl;;7dCCaN3-Lz%L|-katdG+CUX`{_u;R;SiLsZb`>T3h zJ@SEZllM7!*Wb1jb}2)4Iiq_@%&i+QD;6(3oR1&#$P`7J)pU}>NN<$YDbiDik8oUW z035SUl1I(1|KO3AXI^i}8vl|$UjAruGV8uhP+ZsF#Z37#ZmMJtRzFHSUms|Cig{YJ z<~2aN*fn_S>h-(BHF~g!_AZAbuivlPmC1XUoWSG*xUO4gysr9g*|JvNbf4FeOR}$Q z$j|J@Pq*WpdPFme^$H_sL#8(%%!#%ee&0y?r(f}wZgQ74+Dy5d*!5K_!6f&%wqTkB zxv{|UEKlWnq}KOpKDQGki3y1B|82T#L2rvd-IzeXuY)CX zdiW^#!!z_`LJu8*_0K-!@Lkc7tfhE15TNJMrx9d5s4&yIx9$E-r+arcz#@pv>=`sG z?0X^4ai-mBMbNh( z)=`=Z>$4yhS0F5~N~$5|mSB^g`C{A@a<7zi?%lgL?$^I4J?p?dx7MHaoOEDV z-FN9k02)Cr)GJzAyd3^_j2)_z=lr}=@ixWY*!Q2qcZ;fWP`y8keM=%TQg6KBcmciA gZarVv=YZhABWaP*7Y1@Ge$HD&vYI&m0kwX4X&V$+IsgCw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_commands.cxx.i b/CMakeLua/.hg/store/data/_source/cm_commands.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4e4dff3793e18c8fe642037f80f8d505dea48988 GIT binary patch literal 1287 zcwPYq1^D^^0RRC20000000b!j01%Y`0000000061|NsC0|Ns9|Sxahi7|7UYHgeF+ z@R0m_;dn^_PV=kAUgHCcWje{e_p#%d69tk_l(yw<9W7u`uDH;G#UT{Ddv(zZ2)lk z>Wqg7*BGN@T1b-hg`b9)so?$48D;Bj@FGV<5sQ6gd8^gO z1-vJ+$KrX)<{9gJ_&^sfnJ$DRExwW)doKNoQgIQt^PAv; z7e887tM!@I32;R6EcrapaO|CAVb0-}>m`%;5xTKwWq(z^?ub|ksd*Y%0CpHcE>j>; zpvwTND-+ivMOzB8m=38zmtp z5e1Sg*3Tej(C-YL8&cU9-Coyy$ToY`b?-W(5nSC5!G?i7bi2;DXAjqr2IJx2e$=sw zN6q50saPO*uW5{h<{qm2VIq-jI?j54Y05l3)i3M3(`MrxkG(MU5so(6COD$&Gs@$P z$LJqBefzfacrotwE+4aeJ?0lqwzPJ-8i`bTc*!Mt)Sb`kXju;)ZJ`$_5B)n9VJUH$ z-*?g0YXW$5HL0S3UQ3B3Ux-mPWfq{aT62L=s$waZy!s-QsI!rBTK#?2kzCAML{+ zP@08d&2?MO(+FdIAS-KdJxa^#(Btt_k!DJ6IVG6yFfS-Cd!Ol`bn!mbNvenVEu|{> zSJXb`xBA!3is=jn6@;POLyTyIR4nJO70-r9`CdktFme}s&9i~r>o8M3i|KGJMVgc| z>D1@4=>76YV}*TssYCSps8~6sdC2v1aoVI4)0H^shK(vSuUkV)SzyelTQqBDYaQYoo^ zuO)(Iz`Y=|KL!y-Ql6;!WeM z#qM~gS#!uoD-=7PT7%x2KxTf!kIi7YH=A|4K3#{d*@avFT?gIwa$$>M0Sy6I6s3+PyE0`7aNAK0000000000 z00000c${NkVA#*Vz{ttKz~H5z;F4I9YNY@MDiF4jfq}Wcp^?6Uv4Ww6m9eRnv9W>* xmx4lAYEf}!ejZ4%N>FN9CWK?CXJ}*qlxJXI-Ur0@8Nh(66NtBgSOB~W6_G4rZCwBW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_commands.h.i b/CMakeLua/.hg/store/data/_source/cm_commands.h.i new file mode 100644 index 0000000000000000000000000000000000000000..78ef6e34a613f9531db351bd2fb8232fb498369c GIT binary patch literal 672 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_compute_link_information.h.i b/CMakeLua/.hg/store/data/_source/cm_compute_link_information.h.i new file mode 100644 index 0000000000000000000000000000000000000000..be31e1cc38afd7c27102d10a2f1ba875dae367c9 GIT binary patch literal 4608 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_configure.cmake.h.in.i b/CMakeLua/.hg/store/data/_source/cm_configure.cmake.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..4abd57b9e3f0b210c9b2c81f26c49342e4aa58dc GIT binary patch literal 690 zcwPar0!{q@0RRC20000000MFV00mC~0000000061|NsC0|NsA+iY!V#S!OEvHveLb z`0!p9-c&mP00000000000001ZoUM~xZ`v>vhVS_mM{O^*ek6s9tzw#lYuw_Me9SR) zTtz7uu$IKgF|cadf1jP8ejvKtG#63)`h8xXbL9A^U*GF#wE$wR7CI}s0Dyz+r+^E< zT2<9WoM&dPbOBDC%Ur;%D22|9(iRKUY@G{7!3o2O+wa1(z^a_f#aat*T3F0mda^v< zz=S-Dte3&-HIGb{8n(*)Rv=DTxw`Ppw@`t489zUp?ay6sMlj)ktID!cVzVk4VH z+pD+jK31zoEf-4zAEqB&N(b(w*=Aat11+bXdsp?ot*=tr$aUcXpge~ft3ZoN=#7|p zHZ2k2Ingt}3@8mtV^&??-)^_N&XivG10D?hXY0}wIoOfGOqfjOmFH@+4`0d(DmAYw z0{cCamC^EHZNv=jDIY{54k(hm=oTu{V^5BuU^VVt^n$o20%-*oljy*tkBn_i9;r%p30ZC$n$r~ONCe#`k zK|wkos83k(A14iOcfh}lc4}#Yqj>M!0UDE(gk#F0(0X~w$oCOtB#l|bBR)CkAB73w z7CLmED+u$}@lM>SEV9vk%HZhacl|@ANi<@ZIPK5TzWaJahyB;~YZ@XpIc$#^xuHKA zuUpeF;b=JA>DK=QG+ARiQ)=4{&^LRPdI!YbTLcXc5KerHh!MwweWDh7`_p^rV0fQl Y_~j9<%|7C&8B*`H&^v1V1){*2(_M>4%>V!Z literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_configure_file_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_configure_file_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4cf9896b2aff340b3c9426b017915dfb91909c54 GIT binary patch literal 1530 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 HttJ0|$lyrE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_core_try_compile.cxx.i b/CMakeLua/.hg/store/data/_source/cm_core_try_compile.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3c6c38f086b155f246facac78b533ad71178714c GIT binary patch literal 4075 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 S6PmMFCf@*4<8J`PZ0D;0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_create_test_source_list.cxx.i b/CMakeLua/.hg/store/data/_source/cm_create_test_source_list.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..232d7536fba0dca96495ab6a6fe564f47e4e39d9 GIT binary patch literal 2088 zcwPZ02-o)j0RRC20000000#O102Rpq0000000061|NsC0|Ns9(_E(3e05}CClg}R( zRnTrOV>E9700000000000001Zob6a`bK1rh{?4yB)$PP!WN^~ulYq7v4LZZ7XzqFJ8-g9;(A!OsYp3MDp`5-{M=l$8|9I3m1^sPRP2Ec_(7m}?! z0PxS)XATG8%T%d@iv=OX6th9_Jyok|otOJ`ZkNeaFX{0Xgl5UqU4ndTu^ zdXi=`;v=DSC%V0Lui<-?8nI-Nu?5Nb?Ka*x!QDm)s8sX)+>X9tbcaYBEY!LWwQK<7#o3I5vjaa%XKRmLIYq?LN~7D|fxE_4n#McUJa3o?Em(ZPlxiwH^So;wA+&!s zzo|6I;u!OhDE$JMT&Py#Pt2W|LzDh>l=y=;Tktdd&@w6gvtbJ))WPwD>w%Q1Y&sE( zW2zNa5^iLgEFj5NS6oujP))YtiB=t_)ictP>r5svXR+e;&X)$kXP0}PXZ)KAZI2}g zI5NI=uJ}SEO{2CV0Q^=$O2=;c3A#7Jzk z7MnNQ@0SD}O{K)xHU$8kLd|Ngl)qmTTNwLY%_t_{DRKJIae5E!X&=G9*tOz(bUr4f zoVCHxZY4XXm*;*s9H0Ns60~pfxt}i)H=rVMa2!n$^!5mu z)ZSM{)?g;ZHJ5ggdIG3S8b-YXwdRqS6IZi@O3f4MSviRyjom5DS0Qqg^1L@(6QL!j zeo*YBI5#}=>JgsFli_?wGgxKll{I|_3{2xT#wq#4<~7&Njz=kIn3<5 zNx=F#y-w+`lNyRB|j5MxoY>W|2MEb79ZhGdA|Rd$zA;$qYwBbcJ?I_v&pe zl{hIOIHDK_FF&=7k9tx`7^XIPhq4TkwqmvEA?SKUsnWeI)BhES$nt0dpm!Qn9^IE^i{ronnzDlUz5k#9S@-n)5}EMPGY8( zTs2F3xok})uqc|C^lvu1;DCddsq=Tmy3Z5yw!~_OqSD^#;oOI?;V_YCa30%H1KJKX zP1NJs9{B5Tm45uC&cy`}oUwIrjK~EXXo*4<*81=zCTZG#)|&zfpH=nOv003_-+tPw;I62amyO-{%m=W50|YiAB!-* zfq(tr%{zZuj_yzKue5&Owz>%0RR90|5^(e@Pz7*HQV6l?XS}0xz?yc=l}o!00000000000C=1w zjmrwcKnz7A?z;8^vM5DG?8AyWh#PewxDYGu$1%u&c3_fhZ|mC%jjLG_)c(e!pxVC3 SG!p(*qNQO>2GJMm9XM#(Mg$1} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_create_test_source_list.h.i b/CMakeLua/.hg/store/data/_source/cm_create_test_source_list.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bd90d1bbbec0cdb57578086c8164844df3ecb7e0 GIT binary patch literal 2384 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_custom_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_custom_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cd3ce832b0b2dceab469377448b52275cdd1fe41 GIT binary patch literal 1133 zcwPZ*1d{sz0RRC20000000b=n028zT0000000061|NsC0|NsA3qt*%Acs^)d#oDy% zLaMGL9Pd{E00000000000001ZoXuBlZ`wK({?4yBx0@sJ1xDe;%427MhgPE zs-G&87_gey$abLJwEsTaNg#w!dZj{_4`BPev-Gbpa+guTxFk_%0W^XDjF|wA z1?E%iTgqDxK-lQfAu&pFD3z7`WF~Gc*CCCq~RO@x9RZNNh zG`~qywKFsOm5+19jd!nzD_8!MM5SG|Hc^Sf786yx4;5ft>h`sOvs!OaUg?&S1(>y= z?B1K-GECVl!Ov`3=b4DqG%X!)GCsBu;gk`7HMGV=7eX=>#W#$CLnPkU)NQg{q^k~0 z?dP7z_#*>IJ!@^esCH=nK0x&pGPKgB(go|rA7w?9qh{;IBGKc~K)`JCcT zS7`GAj*PLDxL*A%Sax( z$>|c_qVbUAi;^s~dGPKXE?g63ebL)KU!I?T@XmktE3dT)> zppuFuja@_wDcvHv>YD;CAW^F5dERQZa-$5jaJg7`x6{$k+nOdSO99n_m@2|j>1uBH znj;1-?yKL^9X^htC5G??Dqgdu#opMVcze=;2e4?}-qfyNJ$@qKvX z+C()hneios=vl;^D;7~{Qpvccoa-JS3T4Nfep=^sJ?Dtc^O(--P4iFU9N{v{X~PaW zpcwm>Lo4j!xuiJ&cqm)QlcXt4HW`bczAFPGqK=X(cvcz6TF(5Jy zsK>@bJJoP@U8E7Q5WJw+S@?=oX+ZIuW=7wgqMW5H>S1{_@oPFKWvW0&(KW%p9NVRg zaOP}H!s$>iVvpe{N-QK|Lml^|({ETbSoPIo5NKS5A0g^)NRS1M*j(pDa9(y=!En*3 zS2?y3u`#8Jd%Y#qkRQ#n9)Wyubqv_&MXBVeZO^^mA=j7|G>>0#t#KKmV)A%H*u1^s zn-I}8wlr6V%vM}{MNZdD7@q5`pr5HSD%mu_9HQ7PaT(zx&(@6!9!MJ@@2zMj9c%m| zTEz#Cnu^dqwk3_mk2T({fR+e85(NoQW83v9o@Bb;Z6R-fzTMu6Rg)&Ny?!IEn2=zYxs>+}NDFLXBgKsm^L$yr?4S3G6&Y&LXk=Rm-wTI|Hz zX#PKEYa1=3%G0{75{lsjU=y54wZ?X)5)VVIpTtWm#jd7MO8P9{jPq3McB9SceHw?_ zYb#$xFMMHP9B1tebk?(yrCI{Cj7W|bd6AL`+m#4LW+|Rpthzvfh()RECO3lBs=QAV zKMwdxfAxGJLbh|=H`^tw)&2~fmC&?aRWTdVb#+AxGP zX>t=Mv6k4CeQBu>``dSRT3X)8L+jk#_ubv+y9AxjAN6=1z*MV3vpNKTc*Op4xPVwI zV=kr@!(8batTh)EhaX&W%}{BAja1fD+@j!Q7SF9egtY#~kojeI1t%0UWU^>jVWZ;n zb25;(g%GGcUteC{2A93y>K3kU!d@@D?m6f$u8mMKbo6{B+LtT;hP>pC)pDanQ6ikC zXO`p|ehOSO&ATv=sc(Oc^T$dWrBO7s4-i!qIG6#=4c9B4`NTHoe9!3PGlJ4kA}+%q zSg+T9T9X34(nZiuM#EqqT4G%RX#^QZCMx6G+UQA2VZf-|RRna-gh4G94e|^g2T6bO zkU%tkg2!k!i^j>*9jpbGszKl@E}>12NIx2;-Uwooe$>6?sFp-8!L&D6>kE$!Vi zB;Bd251Y77;2n!xW<1{x%b(IarZ*w^-asKTt(uI(QCiQD$&Bf2(3*^29(i8S>A>%_ zV#aJy9*|+71@ZP(l>vW7%^)KWC<%3gV&ekpU4g}J%}m!(A*4*gfE^s)ct5KcT{CGe~39O==76 z+T`wCZHR`phYGbs2l8U6Ra2C%g_Y3Qu;f0nT8!f41VJ^N{ h{~f$~ORbQnw4t_~Ly=s7_j*Tj$z>*T?>|gGyQVugf&c&j literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_define_property_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_define_property_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..87c05adb6c31f1ddcecd4d5469efd1d387aefdb3 GIT binary patch literal 1099 zcwPZZ1ho4A0RRC20000000SHV00(XW0000000061|NsC0|NsA3$!0~_`wm5dME@ec zDnCGZ-%9=f00000000000001ZoUK)DZ__Xk{@!14DhRc(CR-UGWo%NGWm`nIR!Ih$ z5SqO7+FB%bWjpN(;=glt_6kDT2l63u?w))6+>0Im_5S~QIvs$Cl5@qX005#h_8nmW zk&;>uCM7d7sVcD687~n|P@rN)DhfN3)4D_(1uxSmv;F{z>WGj6iF1j{Y$91zOiaDv z=4NXJFDY!q#Jpy68yLNLLxv+}8W!Sd*2C@X5B~OhfA|h|c7wOO!EncgenzFa6oK0j zSG@Vy@rL9jcO;h^#peqHy`pbPhVY4-HB-0+i6}h#*3KVEp`|jst~`LSEWw3oP^eL@ zaOx3ThWNnfnHvLA!NQnj;QQXKjUv`ElRT?Q&6(!^PrKwd&j-tBDEeJAe%Qwqg@1BzjPVd*9Z?L}) z-ILMyFdTIsOLkb;f5Ozj?)C>jQu7zrQIf_{K29%N>F$v&jCq)z#Ca=S18d>R#usT6 zUmYi-xRvk`woPH2JwqRXT6jK(X%ZejL)sm%g)a)D)A;D>*|dM)pRzx9o@qH}<--hn zEkoRp-ThDo2PbIUPlv8%!$d*nX>joLyt>#X(d}NbT$4hgpMKD*xeST`00000000000001ZoFz@o z3c@fL`^4MMKEQVv!-2RzL@naQ33?j}-s@IJVQZ!RHWYkBAIiD~0tpET0DJ)^GXOXt z=9~n>0sg4dINn5Y5~Ud?E0(U=YKy*ycoW7-t^Q^IB6>NRWSO}XU>Z7p+~(u1b%SM_ zi-%OAF#0JBy$`x=xvD(I&PtNxO~I|5TdElAMM>K125remRqwIX%2I&b)OO*vjxSMm RS2sk0b_-VXqxIHYaj0Z#w` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_define_property_command.h.i b/CMakeLua/.hg/store/data/_source/cm_define_property_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7010eb035b09662e9dfcd1ae2b98378325e19803 GIT binary patch literal 1339 zcwPZJ1;qLQ0RRC20000000a>L00}+-0000000061|NsC0|Ns9`nerWumzkZLY}!aO zaJ^g6ax(=000000000000001ZoUK)VZ`w!@{hv=UqScj9YLZ?~mB`&mjzbc3Bp~Co zigXfM>@i-Qy^D6&P!#pM-|U(nh9-?F)v{pi-Ff@w&D(Le{nxL$8V!K4l5@q19smS) z>_3DL5GbkjhjGqKDpdjYZOU_m8x*LRk&43ZWK!m6qu^~AOzeCQ;^K-{3M9-0Dzgq` zQ81BsS!W4vDQL*Vykv757QBB?FRqxWFbJg@e>^??)IB?;8_xddoqy_`|L#IRqtaZ8 zp4$(Xym~nE&S{pW1G!i$KFKjm_cpp4cK1s&Q{+IRL4tNk9xkQL}G74#UjM^nrNK0B+GcZHCQ&zvsg6(eO4Npaa>CQd+$Uf7o@g{LIKUzXC zBF@VMp&1uD<24(NIA>bFWKHP7qMYSChFwtOsZqV^kycBtOv&>7Y#V}H3T&NJN#{mAMs8kU%v0_NRh?rf%Q*jL>GA;`gX5+$Fwuz`^;8i{3uxi`gt8&3+cTT1+HKjFMS7~|8ZRr5&tcFs| zQT-&R>oU)eC_Uq&%>zIa;7FU+b})5y(R5;Qx@38Y|B7Zk?)cIfb-ihVI#zsPcYbAk zN=)m^smvKFZcYy3HrlbRdTZA(SjEe$)3atq>S-j|&2V(-4?9rD8HD{H8ikJ?i2U%T zAJKn*Lcf#ILm2d@*Mnid1E2kH;9m~=w!;N}aNEC{ZeMwIG;3RzFIcnMOrVyD2HS*P zjg8#Z&-r_s#R1wN-R5p{h{6YALgN)D*xdwuL8>%UB@2fokiHwPb=I)vxtx(Jc53m| zLS;;gcLrui=U*eSuGs94*hbES6p2fLjIuEqtw(R}k?xgvHT;Snbs6*SJBH8czYnz^ zpo)eynseLpY;DDl;0*N=G#w|uv0csWS=Id&l!PnSqSoFX@8AH&MYLYv9gCH0z0hkr z`+iLg?Hlzp`aGaWc-r_Mo`BYF000001Q7rL00020000Se000000003&00000|NsC0 zrU9+&z@!0Z36*=_DXoB}LjSK!000000000000000c${^O!3x4K5JXq-)T19DdniRg zw5=31iYEoViGpWi3?)z#$Zku&(XTSLXCEv(%Pcbh@BtW%0N{jpkgNrE#J$ebbiGKk zMZUzW5cx_J8;m2wyY^(9{XNH5-I)H!=0$J;hT|}gkl7+O#&azzd^%U**%~&ox=5l4 x@k@wCD|UX@X<~0|xku$Jae~s9G>h;*>V0grsyS5OSaMC6P`9Vs=nLbOIAROgbJhR= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends.cxx.i b/CMakeLua/.hg/store/data/_source/cm_depends.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a8b03da089038fb35f5d76123e366ef9cea658ad GIT binary patch literal 3212 zcwSYOXE+-Q7sq4I*4}E?4z>3tb_rVRT2~O%h`nR0qBKT{2GxotXp7VcHEPwWRch~9 zGgqmq_1@mM@AJI(|KU96^Etos{0@K!Km_RI8m|0H-1S)$rRw<^163A01zxC9j!Cg)vrzxe;Mmge*hnC2LL= zBxe`oD!k9<)Nn1Q)X5bl0~B2TP)}${T zp&?8ZQR42z#~}j{@;i0|?$1;7>mM+9$OuaQ@Kk0Wi{$NGM@iaoifP3}Y|nQoiAJ!L zr9O`rXud+1z>C`Ej)JRm1f{_GLh{!HKOf3!C@S{D%YlC2Ws3 z?%~G>P5O-dbsV1jj&E-MD+0~bpmyC&$BHtGxO^4fw0l(8$frL5&_G&)y9w^;{n4yv zUVhzn-eXgAoXN@fFB$O07DuT|X&vque&|BM+HRGHiSK)5)eA70+{Rc_;ck5}b#&{GOXReEd4 z)^;Orh@2^Kgb%1~ma@rjEu5$SWKe8FYm`#0_qfL{eAG{4)0-X2kkpzZ`>oYx9}nTm zC=qNlaH!+sM^^TEq2*0`b-ODg^-UlpH3>$n3G38)7!&oEX615mSJqXN`#iB9Y^%~R zOLrEd_S;q-)M+;kX@BuptwN zG#)=_&L{Lx2=leHS4I8uX$!TFU1W>dHAc5K-*)XG?!>BbpM%e4E3^j9p&IJvk zAESJ$qK*bI>gX#TM6!hjjWh1YG6LcK?BK`P1<0@_$Si<+zJx^4=Y7enfNM&xU0WbG zkU6@fM<$=7nT;IjhCj$jFj`|Nr;S!HR3q-B6xNBDO5l5(=_CghOmKQSorP=MQtgbRHAIf5aqe+4ty^j}|BnY*qB^iQFxS=o zX1ym%IuTLY4sr=SO70U(#e=18scI9UgG*ykMm)GDj;Z+|=^D2diq?4B` zi#K^XB;66-?G8Hr!jpQj8nU6#ExFr1o@*bJ2zwlRNVOYLlY9I(77zCk@iP*}1dT+a z0NQ-8>|)<8B5PEJ?)5o&t0XN?U9t_AcoSw1Xv}xGmtu$PskM^ z&Ac}nipmVj*()#nivfJar(c~xeZX4dnmSNJTGA8NF%{F@^mi-fvOK%>K=`Ho`$Z#P zt-5`$I6qF-WV&)6dRK9fn-?TB(7p}jCP1Ax#90bMKOy@Vk9S*Q(K5nTj& z_5ts$Qr{DHh3u@xC6mJ{- z^AYHjuN3w)^|3SP>q+s$MZxF<2B4DANZpkFR(e>tM{3?9X>%aCN0cF< zl*9sN%lqz#L{sdNQ7oqZgspIl7Zg|-qU(D@uib2Jn|&D1~sz zG?mJ5M_?B3i4AMY;9i%O$~9Jz)?af3#RF!LLU=jT?#|BrM;)yT6@zfzS06mWiA$vK zmlNmSMh>_+`EhJpIA@#$tbGqY3nr0xzsn2{@c|#i?9c7aO(YbHj69!O?0yv05d`fY zd!S|e*H8{B;DLu+ak@AMS zlz1X`aE91D%z5zmS4V?D#vUi5)#E*ZyUk!azyX-6!kyzyHtfUuw7I|VII5YbzzZ0< z>yZ_=tW1Z>0M_{PE;r6z(0bgiFQ}5AIV4rDx0YsAtQ27-Rv{t35(Vu`*nAIH= zw~mVbnB`L5dG!psPf($Jv3<zwv35{D>Q1&+_= zeOm5U&}YaD_Uu@%T(&Ocla|>M9sRVm&gh%vnr_^SmDw*Xwh@GrbTgxXzlKR^{i_nE z003MxzvmkX`2E&MtW@sJq`ob2*&=NseSZ2?>1o&Je=h=kZ_a#9n|{Hj)#xmxjaE!o zu^^e$M9BIHc$HXyc|!Y~-47Kw?RIF;vWsC^o%$(snNX=UHd9Zs@*Ny1^fAnH7&(ZP zf$WJuMx5n(ZxS`nyOCZ2pN{OGoSc5LX_;A!KY8qhWASVFvzDAdR?lFfy45qH%(7ux zH8v|C2N{XWXPb+XaL-{8OpeMqz1NA0&BNgDHwRk2{q#rnnNWp*-l-Pk4ox$hNl*2j zc+%~|Rnm<<{V`ifAbD@r3nPvy#8yonQ$vv5>klutq_mAP9FD4qQ>0dTd!1V$dp%t7 zo=j0DPOMBdY?S1Z80JjzkVNuo;#}Aa=6-p%*gAWrc@*kE4SdLbc&jJLKZY}I=Q~Al zQd6)zCP3|a0P68DEyaE=G=PlvrQBkJE5{MDzvDrOpIxZ?4r3l8`+842% z8yJzyh0kjOhTciCdp=bBHpFNX3JXg^2IK8PB0*7mx(Bp@KzI8bHnWb-A$?8+|M63a zYg1~=NVK{$+jErmjdn|U0_0wcWh-Ofsds;UnywUAZJkvrqxW)M6O%-;1p7F~(ZB12 zL?AtAP#od#O1RQ}C67+6N%d=u`12MX8$#92n=w`g-2u5I+=>LKJ&f$WXBAD|6#y(%pvCHv61IWec8xRQz__i`c8zLpK44MB3osUH)QWqrZ+WA-pdct{(YE8gC z_QJ^!4Akppo~P?_&O_JKIcjPURtOD>q!!{p_B4n2BO@QFAn#*2@sDP(QdlxKjS-L?|6VwtCO{VFlR@K!<8K&u0Ou>^OP0TPN P=FlR?Nk@Q9wi)g}{LTL| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends.h.i b/CMakeLua/.hg/store/data/_source/cm_depends.h.i new file mode 100644 index 0000000000000000000000000000000000000000..83af3715977fa15063c23a3d5a3d6e11d4db7737 GIT binary patch literal 2412 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_c.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_c.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6a2759fb8b8005a37ef791084bab615bb51ae1d8 GIT binary patch literal 1352 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_fortran.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_fortran.h.i new file mode 100644 index 0000000000000000000000000000000000000000..11bc9fd71e1534356605906918b2c6dc1ced4eab GIT binary patch literal 3208 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 O$!1J}L?Z=iZ2tidtD@Wh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.cxx.i b/CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3e728d404f1eedcbb2d0058baf993d04ce7694ad GIT binary patch literal 17778 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 J{}0pRFL1wrfRF$H literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c605e255679e41029b4b1caa7a218be77c77dd4f GIT binary patch literal 3097 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 z�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 BU6B9) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..129d4ad6ddb0ecbd438d02f7995668d9a4fe10d9 GIT binary patch literal 5910 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 k#tU3>nUA=pF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_min_g_w_makefile_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_min_g_w_makefile_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1eb908fae21b3a78804060efbec4585f6d7a520a GIT binary patch literal 1328 zcwPZ81<(2b0RRC20000000i&=01Oxa0000000061|NsC0|NsAzw7Hz~w^)(jCX;kc zXZac6c{9WS00000000000001ZoUK+_bJ|D{e&<*8YEvn&jbuApd&nDCh>Qspz?8u2 zAi57x+DhbzC0&uVZZ=|DDK}a! zkLK_Or8_K}zXt(2Hd4OF8Vp`5~JVHQmBBWP!lOTXIE1DR>5jL1_LpphhC#WX0c zxtjCXMYI9uC8BGV2Bd~_48b!yTCFnkbm!$hK8vJIc% zRA|t0Y%KzOkA*f$jB>+cxM>eRU0n~M(fbNFjWBHVhF{NMArNwFBlWMt{?(xA z7OoO58_79`XdA{%8WC}Aok=Abol#jZgMmk{Uac4pyvna4i;_I%;Ji>tQ|BIUM@B5U z&ct$$^W8(%4F{c9p4a00&(o{5%J&N8Lg@PWrO0C9Shv$9^~-y3Y)e`34MR~f&RHob zRm92oJ~LB|LPq7hBoC!b2Kj7;m8t`oU=kj3Tx;GD+1(&gVrI6~AC<~niui?|toVL2 zW21y`IZwjWmw@L9Y4k~LN7qhsAgD#af7D< zS53z?a&1R7q$L^MOUL!|7B?aPmJ7w>3)Gtl0)pgCQ*bTcwiNUa1%ZUIh>;sdk>;OAU2mTi#inJDgnD%{KwG)o4xP$w_qmX znf?B;XU}r^l0Aoq&)Z`Wi0!^T%jIMCSY{%Y_E0@E;z#PB)$BFH#_%e<4FWWQJlrJd z>?h^Ed?7(JWmmAM+f83RK6dun3j2mSW7`6@K|Rm=1-C87g$K;WD1pfa1K4b)o z8fn!+p>t;wuZQ3E01jRnYK6Z0QtMIn>?A#aWP-uZ_~Lm!TiTQQ`GA`nECjjGgDFpv zDvhPu4zaMZG=covrMD*;Zkvu6^%ZJZ?#cI=)>eDMCb~LiiM~fBo@MtO_;RlomdVV;=8AIFDdBJ8Z&`AsX8}QMdD#-T2X2q0w4RGjZc!*woHS=!`bQ=B zn8wmtCB@pVA+Sr1u0j-Eo2}i_ah($5GRG?=LJToq>DmLmX>Yu@75Ry2>H!rTvT14* m%%fw68%eGpmUIKdklS?!sa|Qi)-lMjz}FHE<>7x#EZ6NB=8C=m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_min_g_w_makefile_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_min_g_w_makefile_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..864d0dbfce074c6e7902d23f7d83fdc2fd59d35b GIT binary patch literal 935 zcwPag16ce30RRC20000000UQ?Jr~TblrF)ouDC!rLy4MMrHM9Gc`eYf;KgFNbo&ux<(W_^6H_kFuI_0a zD=7LKctP9=lk1wT9eeod6)k*bwv{5W_WkW(@F5(03|7 z28>!Y83DcL+*r-i+F}k@3*wfQ;6x%J z&7|FdTETR*7@iX={%brLC)Y07FXLo3S}x(s#R6iO$BSe%-WG81)< zaCDEol>Fu!=)0ge^1RUZ;h#(}W1dm=fPksylDW<3d_d7GW%IXrO zZEgwBi{9SG*yY3t99qk7l^?IV?r5#M`umWOPZFo0hq`n()a;DKvY8p} z$N*Dk1uz zEIniMDB55~N&eovyD=-*e>Mes31W{k{dNxi@X5;V&(Eh^loFsSXM_pzen<9?QRaN* J{SS9RbG6`%(?|dS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_n_make_makefile_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_n_make_makefile_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ebe2b743201e2c061f19d4fce2a57dd1973728e7 GIT binary patch literal 1143 zcwPZ_1c>_p0RRC20000000WEw00>$D0000000061|NsC0|NsBF@`!YBAaTDuVp)i1 zvV;=qeQ8tx00000000000001ZoUK(|bJ{o*edkx)^>#WygPqXsm$S)?>p;Sk5C+4h zdFlvT7)@l!Bgv4=&i?ma$q>lWN%{~!B)0B7_v7f?OVB=htEbTb7%Q18QiK2yUz2+Z z9f+0Gx-;g)ETk&Ho-P=ta7hJK#7Kp(YnfG?S`@sS#EG?skQSF*&Iun`$QJg5^3#Wh zqZPbE^pJ?WBDuxKA3os01u=Cn3|GH*kB|QdPL6|a7fyZ;Km8eg{L4ZAp-M9;LYJ7X zSp9M0cYi}O+GANhDwZz|G}D%i(uFU~tcjvWFc7J4|7vHCrO;9tRuw)##5p*a21PYh zE1LNjEunN5(KinUq=Ka}Wf%nO_1aGh?9!Ji53Z)y!(ivSGzABw4>D>9D*?V2g1Em~Mv5QD^HS8pc9cF_2hiIi6v1@9FlExl*HLzxmj6YSx@ z^W*oLW||I}xKC2WO0x^_U!$>-EPG`t8)4WJ zWX|b!CY#!1VYs3x8vl0hR-ht3PjOz%d*DYK>Fhr{Vxe6ue&jL7Hb9nEHH6p91p$;S zy$6CrvLF>V7FH}e=TVkjU@*a~cN0mBzVyCb_C~!)G`*R8i(~Hy?~;41)1L%<{ko5+ zS=-X`W8ECEf^FNzo;q;+20`!(u1ks=3%lS}hLCS#04Yl)OU10!NS7AsoO`Ququ!?j zXuqb)I^T2DMvE_wLK}FF>JW7OvY(}h=biI}8b>OjD$}Y!THF$Crp2@Go-pe1Jy83v1#arx<+=lZL<+lE zY7Jv3``vV{)%MSd(S=<-o0Pb@T_sR#O3}Wz^X^ypyNAx6rQff;cyFGt2EnMskC(f0000000000 z0001ZoMT{MxXi%7D8szr2qyh5VnzlfrY+-p}wK9f{~$>v6+>Tfr1K` zf=;4*_Z=nwh_Nl%hw6hNk?*~`cRZd$|CjIecpku1tEFaD1OUl3 z`wQVcBw88sekzz4h&yI-*|4Q!C-2_T!e?eXDH7}6KMV#R!@*DC;1isGihleUT?|_4@2Cw|GHS!( zigzF9!TAMk(|)4rjpobJLN7maDj(n*w`-=c4DA3`3i0F~?&8@jo}~Aeu;#W@jRjnxgighl#I0(z(G7iUutZsx6Yv8+?a)S%>hFu7LsR zh>$g06i{nL_3jGJz-mMi3cdf67er7uncz9R?ACkqI$T6u@Ump@?2<6X(s>_L_q#q! zaNRqD$F`d^+D1!|xPC?S5}t?p!nWh{$p7Bs+=Ar)LI_V?2k!<5vEpJL;XVIUxb(#`pJT3Y9k%O50u% zpclQ_dZQbEFbD2j4+d9?7f#~yb9OJUj=qOZ>}{vHb?**nSI$HuYx_~CoFw2ny$`i5DPCdvkZmYqr3=)6HV;~>|5CT1WSPL-A4|{J zB8pa+Q<6Wo?{3P<<*#kQ-h$ZTOurk0|M}$A{?E^+T$B=^YG;HA^8Q5jPf-?p;r$Jq G`gACj?aN;P literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_unix_makefile_generator3.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_unix_makefile_generator3.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..d9583ad657b3a2631bfa9bda8fe348d47a52b7b7 GIT binary patch literal 12027 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 UA6r>2N|Dh;arFV}JPqmjU%*GaqyPW_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_unix_makefile_generator3.h.i b/CMakeLua/.hg/store/data/_source/cm_global_unix_makefile_generator3.h.i new file mode 100644 index 0000000000000000000000000000000000000000..af88c9f53db52b2b66e92ae8b61325f0eed9a87b GIT binary patch literal 4099 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio6_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio6_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f69328f36844907c2cc3d4e049b58e8e9cd273e9 GIT binary patch literal 4501 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio6_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio6_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1003e562015b84c04af3147e096788de18834a05 GIT binary patch literal 1470 zcwPa%1wr}%0RRC20000000n*k01y5E0000000061|NsC0|NsB=Fh1_PND=UjpJ>NY z@HqNo+|H!{00000000000001ZoUK=FZyHAs{?4zMI+2Ah4(GU%+u$}8Ib$2uZvq@Q zQl)CSTVRvB-Rtfi7+Lx6o!N!su(7ezAj>*#XP%jPcHRhs-+$DnRs*=wYNT1#1c2zA zedX{LBCU*hdzCUfR5}BCI}|C06E3-CR%ui_S4oj_(t_9Bs7L2bh_jPa4Osd~n1ZD} zTO>jqlv<7P?gU<=?irJ#f{jQ!dh-Tf95L&m5X?XC@9q5(?j3~tzrwqpn|tq@`v*?- z6W2y4*>q<4MEEc78vF0@7|$b>&$JkgE!5*3LfMBug`G0ZccCNW2K_hgJW|pqZAFna z09t7ZPR)SkhU*DW8i>~8e2Lhww-%I!v9)*_`{^{j)A6gfm;ilE?wl4ag4`C|oSQQrd zgiG)!c8t1No(fb#AkCzmff~YjyBnRNR_kNutkeHY&K`IA7wujTjxW2=f~!`y--)iz zTHQI))phskve$0-Pzjd})PzG^(kPV`F*h!lOp())l7d+z9;5nUsThQ{S7Im=KHQK+ z|BP#|P)bO?Sr8#*oE8a(t#z`M%-pKg;*=SKn0=;4+#c3yVGzLIi?>f%ssRcPv_Ri) zw6I7bTuX5a*}QP@`XL~pr(sZDVpSNpzUce~gF>VUabB;J+?KxgS6Y^q^ zig>Nu()qiZ7i(flJdIf2IYb#_@$#3TQ5s!gkQ$&ujouy)+nVxxdervg;4!;Yz z9izR(?80D%9xI)24cx{J7wQ_`+L8@YzL+$1W0Pic!eeyuH}_0!SB^e7!nPru%OSpR zjE{cetQ>~{I-^tyDyK+Tx+ZvCNQq{^4GLf~@nub~7!XLqj|BWH42JJU#tg9p(wfd` zNEJ))ELIsd2%-RcGEtT@ZK>^3h7~RaS9(U{0Wp=p7njUGl1k*E>(z88kLSC=?gma) z2`VulKu^9P=TtD?i4g!x65;v1bUbgqqDS4auCqIDz7r#$=b;$AC>oa}VkB{TwzXE; zyj*+8jJ=m$iwpEqoAwv}Zy~6L+{kgMR3@7%@A++nG(~*gd87d|KHVU8HEl3AaR(Ck zfZ4TL;U1SWEZPK(Q9aEluRRjEzzr@@cFbJoo0V=pTBr+w`@Lf&zN6j^OqKp>au#!6 zIP1|a3!4`f#g9?O&#NcS?{_tfKqCsnyDJj-85lH^pFi&E+%}w2JydD74=M*WHE3Ia=r+D;+tVl{S-WY^Jx* zuZaIsi&b4y3}0lo(mS^)_2+cajJ=^`7she3!iuTX$b{jn#fbz|X*~Jk@kPe{3X6_U zI#Sq@Jlr>Mv07{#uj?I2XFFT8JmD0d(2pj9tX5RC;!Axwxv;qpeQrJ@Cm#x);vnXF zv*?xYH|z3zefzBvAzhbV$rNVCyXAfk+xN}2aa+(hCSGjz1?Hcj|JbI1S;MIwxQwy0 YuAv`m`7u_%VY0nKT`{cv2X(LCJV@EcWdHyG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio71_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio71_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1de993898801ae4009ae603a3a5b4c5dabf4b78b GIT binary patch literal 5138 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio71_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio71_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..01f87c4ae1f96ed350e10a6d25ba42e639bebeb4 GIT binary patch literal 1288 zcwPYr1^4;@0RRC20000000ZU#01E{G0000000061|NsC0|NsBFdBKdlK2zwoccY>( zhmfl|po;MT00000000000001ZoUK;vLjKsdBKRDdQBrP(c+jQX%Y0CIzP!1#bqep`8yP&cARuCj2YY1>r+e zBut()mM|}?&)^M$yF^S1GO_U1+qXDyPE5sxY}Nhg$;l_b(eO`xg~o^A<5_U}zJz|I zN;4^fa$P!O)kDK;e8Op*Z^`MsVw223Ek3p^r|>5;bE0S+IwJP$w=U;fQfR3RD{>DY z+i7u~45rn;4xCsY?uovAnVa`k@3j=gU1yn31 zLu@|f3_(bwh%omcQ@CmmT9=3lKXUY1cv!(yt-WO8Xm3+oDEu<)4Gt9jA&okNz2gr@s!^iSp-Vi*(j z1(8T9VqPQ^4xSBOGv|ThIKJz`-!Ugz@8fm=BgcxN-W$aX77j*&-9f(S7Tj`hZO|Sb z1PE*e4WnM?FBlh$CookKOJ3ESfKikpk?*`n7X&aZ#+=2^2d?x#I8|JLPT0d)J8oi- zHn{04+U2YZJvy%)SB`qX{xO9TAn1G_Z4(|5gCF1bf5Fqmlm-+er)B2$VY1vF44W}! zkO$2vw1GGyxHO`A2*Bm5(T7sSLc^Z*g8qR zu36W1Q+;D(N=$|$c|_C%t$DO(`Exp@B6&{sZWXU8Vs8m|Z{;3kKY$%e$x*yA*D1P} z6x@8aC-xTg?K?x2Abi(O{+ya8wfq6py0Oc9`wv7+(9%h@*E_loyN0TlTNojilqB0A z&Z5gI0r1>r4{-p0?7`b~9-Gb~3S_DCKgvpYAOHXW00ZU#00000q5uF3DF6Tf00001 zhyVZp0RR90|1;l)gl2iVN^KpXI>HqDM&({fz5oCK00000000000C=2@j4=wrKoms3 zrMZI5FM@~!vulKet+lWd3$2&<#g$|i{{94S;=R0qH!+$E_+Vg$83q7e0FxO2>=CzC z$l#B3^lPQ6TGY5KqL>1^*qVN9x@e^h%dQ4KRHUdJm@_v3D$;ZLkmS yf@gL@yN3{a+Z;IDsg^~Qi!mVzlWpgC4V`2O{y`ml6s&KSm*{OvS@Ho9ku!^@(Nc{7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio7_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio7_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a1b7a95df7941e78b6153a0e8fdaafe0e505ef46 GIT binary patch literal 10025 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 Fg-WCizQ_Oo literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio8_win64_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio8_win64_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1d75c3ca42c6e958b2568386cee76c69128833fd GIT binary patch literal 944 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..efdba5cfeb4b6463c8d6718207419077665cd4ec GIT binary patch literal 1267 zcwPbX1PuEC0RRC20000000ZX$00^`I0000000061|NsC0|NsB4hc^ekH(Xpuhjk<( zrGmq4Hs$*O00000000000001ZoUK)DPvb@q{_bBfg%biFXA`8hoYNQOLhgtf0?G>% zsZzDEC-LgmyV34CAwvB3&hCaJv>f!qSy8n1&hyOsOd9|Cy`CrnxYlZ>S(O1m`;vV{ z_yBFKjQMaan4KzJf%`h;0^tiv)XXYPuuE0c0v!t84cbF@pFv)I5o*H34L3CtLt7VI zecYgu@^}I72-{djnbCaRRYiw0zAxs zMuU2RMM7*t#4TfD?=2_|rM2@cO_$4Ml2;U&MCn<2F}m!fThY>10w{J+pk-W`#MwsA zsN@EWntF?X&ILDC^GR*7fZOiq;%YpCR{sueTZ2KXKe}telG{?%7I1+Q0*fsPTg?S0 z5D{r6?F!TsE<1zv1)*A>y1nk`&Kdi;JL-3aL->3(fEHZ02BU6!+-nWiOxNSV_0_PG z1Xmp|o2Ugsz6qmLmgi`^GnH~iOIH)jQryX_?^cO%8twC`EO7cp5&d08`y|CBzAZ?U zG8c7$u=kSe*-mBdMNyQ-G5nPaX3QJZ5s=_Sb29c;b4yW!vE=tqts8~%4Y3n?ordHk zb%B9#zxyXlYAy@n&E(BJrfr|FH@(m(_Va5j=lUbn9>Q5Cyr65U;Zy9yLkE zSjza8b#og-AD4$m@DK`0qph_BiOV-woA5{g`lV_51I-odi%+r&z31*_wn+|&Ex5Ks zLxm}gg}h{>nNWQKkoNHPVb_G$)n^%jTe+hQ6wSvSC!g!s6@!O0{a)aOKnx$bbjZA;oPEfBw}KLh#PTIffCrVwIb4s4LfwW@Ri^ zen5oz0H)4MU^MY4mNcsbpJ=960gm?;rJLTzFt;V?E6g!WR%Eo&1!_Q>C%!^n2u(+_ ziNL2Va%gOkWef6A>0kWW%~U!2&Bx>b#9EH{!_@oclUJKn7n3nc2~czA2@}2xo*Cgg zf7t6^km;y{5sEY;s}3l~wf$GTZcEgzAgJGc_7`E3xxxLsn1oVa!@OlVE#jw!2rPL` z*_0M)+ETy6z*nR3dB$o^YaqA|eEJO~fn}}98$%P`ZxeKtMJb!lX)SuCH=oufB>zdn zPMBSxj>(!!FM7_kPsGZV%VRUzM_KS`^beO6)j|LO000B$000000E_?t2<-p>00000 z0UrPW00960|Nm%A9oNXvSxx8bpT*y&d`{X~k#+z80000000000004NLV_;yo$iToT z$-uzip`hTBSdwa`00t@$wvmB>g}#BIzM+MJp{13viIs_kf(n;{LRe~1ab|uVNU=&# zYFQ?PW2k2glx1LGoeRYCfMx>a%QA~fN)vMw%JMT)6dY4h0&)^d((;RPT~gCB^D;|- d`ieD@bA1!Df&83QErr}PO>3Y9TmX|rC)3DGQ#$|v literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_win64_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_win64_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8f3721deb442c5718e5b383a4833edfc2c1be3d8 GIT binary patch literal 868 zcwPZy1DpH+0RRC20000000Sfd00(RU00000002Y(|NsC0|NsADHj*qGhql$jz4hV9 z(P5k7YqKT*00000000000001ZoUK$_Z`v>ve)q39W77l-lG0V{nr@Y{G;Ps>Mp>wROXeM5DKRh@%b~}e|=NLLC-qCxn(=l$hL@Fw{SLP*i zT77gJt3!d9JxZEQHPn-a4R8owsa{}7TF~W*V}Dht4+K|2YFgwDfX^6|ZVDt(M9xX- zpb;UkiRb901|eap^~`hK#bV(kxgo_7GIOuue$Ra}o$8!{p$$@^F=fg@D4tRUN=(X9 zz}!=+w4~!glN9c{@zwQB4F2FA?))h72l4$WEU2D}LIar-4oFXpTRvmd*qay$#?jUQ?d1A|+7Ur)j3O9fzJscI}VU-~ zwOTF8SWqS28nYGFjR2Z^L8y}Mx~^*eCwtIjnSsE`;@@_sCJ@WoXCtCl19?(!Yzen1 zssGNBlRTLIuQ#?`!ljn@g5fO2W43m>d@jEoecW}c$an&2{Yt$gx{%zMt)8O&f(Ok7 zP50S$$ny+@bCDD|;kulodXn#ahg{3Yw?OP)!^|RAx_qZn;H-LT!$wJHiLcUsk(5kq z)2&jP;jPMnsvbD8Yw#nKWr1n9ZzR!R2SPcur!W_VS%D@>)wlnFF68!A*1No}bn1C? zlS0T(<=w71o}HDj;H`NzW7z@(&(G7KLNlMVU@Qa!F|!0=RyA%uX`lINdTy*ZEt#wZ uegA9tU^ZP4KHPN&X6{;0i=&&cR#Nmw2wPL~toW)nn|+hm((wzbEMU;O_M!&> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_win64_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio9_win64_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1d5c357dbf6ff61aaec394acda3f465dc7fb9bcb GIT binary patch literal 941 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 VmTY8K^wgo65zHq;u+&la`XA$oGe`gc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_visual_studio_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_visual_studio_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..df92a068c3d5e0d6c52403bb0d5f184539afbad9 GIT binary patch literal 1355 zcwPZZ1+@AA0RRC20000000Yth00}1m0000000061|NsC0|NsB!o&0Cao?hYWp$p`q#?TTq^z(B@L_t#YWT_ugumKRwQpd$oS zFasJ5>JpPCu}u&+j7|H^g3^#$n}@B|YPD*{85z@5dfB>|j)tvGXlgS7WE~`E85gGM zw9zw7xdEdVl_H>Z!j08@URX@vW-z_DnoXf|c?&n4DC%5JZ$HC|+f)@6ute!eY)a59 z7o0G}qnWh#pcXJXi@FyC>YNUSgXyi)+8<0W&n6S-Uq#S?aVMG%y0c*?@nHmE|#-s+3GQ$090(yV=7PuY%$DFG@LM7E$3c?X z@n;GtxwcNszputpFxl<8uI@~vuj zYA^V*pmwe1*{^2LwT#6y-=LakT$07E^$WW8Pm!KyH$34QV^VYff|{qSRnl!MMis%n z%9|8PVWQ~hts4uapKR_X@5&WQ-T52%sGF9g*t5ii)?{8K|4)d}7FwFBAk1>=BR5{; z68PeUBs-N>V(89q4h2k+=QJj(q}Qj95}rF?Y!Zf#xz5qfNR6+$w|4EZe3XUzp3v4M z%Mc!_WrRYpq~YIBtjfRd9jNOFSCbE<57s|KYP=d(n?#yYhUt5l(-loXNe?6`eL7_m zVJ=vVNw07U*L~w=eIe{i?d7sQJI2~Zd)Dw{^tC6ZFO7vbWx5WfnJ7`XPItQC3!FGx zXa-m+2$S%c28|^2d^YISwrGyw;ro7MpMRTK?q)|1bCikkcXT_sI~X6*S9;3y5^XKc z{Nfj|)&Ise!fWHD`y#u1|C{G!E1vJ1H&6Kv<%H3AwcQC5+R0) zftK!Wav>)y8`(|@LVQN}NZ9q#lTLT1_xyVnLi`DFb}58-0vhS5#<8-rS4DA`msMVs zVXcdsy0}F)19oH`8y(Hr3r(Dkav4=2F3v+=2j&$p8Se1NpRb-3`>%#RNOx|&SVf;o zEq((s&(Roi@B=&SHkeWb6zg|*Y2U~P(ST$-!1#eIxJR4>X(*sPz? zv!VxJ8`%fx&>2nWjXeo+iLfVS4!B>2Yhvq1sjxRj1>-t=#5E@Y^99=Q&f^=F{Afd* N9chK1**|w>V-Qksg((04 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_watcom_w_make_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_watcom_w_make_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..59be8b50e5967877433e2213695747ce75da77eb GIT binary patch literal 1135 zcwPZ-1d#gx0RRC20000000b`p016=h0000000061|NsC0|Ns9r8o#9j^hOxPyPRoS z=zqegK>NS|00000000000001ZoUK;hbD~HPe)q5F<+ip=HbQ=E?d_3E>Ih=OEux2b z**sYzj5?Kpv4%mDy1M`UdO)LDQ=Sju0b#!Wdb*phd$f+P-s@^K0Qyo)CCO|6aJ%G@ zLJM3eilWu$L`{UuK(9_1r*KPiDv1&jX6hr>DPKXQ$TrIh=j9zkIVVeygZ|Q&}*P z+ts#o!RnVY^Xv=4h`VC`EZKCXpqU(LFX!-`sU?y01pGWP^}VQYSLB6|ij|oO;BXEV ztpG_2Di<_0(c6I1jYm^GDG(B7O3iJ{S}vDnl3|9XkW=d}?grMzbfz*6SUgCnB8(TN zjt#GP#tJCJq>2deIc0^CY+Ndu!o45g^@cGx;RD<|QRIa2!zC=4nu$^YUCgnvupK`Ry}p71iIVC>b=%y?xPh=lNA z&YspXeX+dw*>r88*BkrxuR{cz}M)~7>QgNN=-FYw(_Gz==1xnB7ncG#;kZLdN;D9~Fk z^dcwjMI+bM_REA{eEWJh>Bo)l>+R$ae$;2Z;=Vvpr?x!+C~h)-MB z1F8lH}NXiULR~>`RBzyJli$4i`n_2tR^vC4(TN_^t1a>Dt>b_y5Xe?)DokTT>Xi5g207JS{|~4^Drd!J BD#-u< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_watcom_w_make_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_watcom_w_make_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..23c535b47af8aae0803edda33d38b0b0d63c14e5 GIT binary patch literal 937 zcwPai16KS10RRC20000000U_N00(>k0000000061|NsC0|NsBi^rZWEQeT%&&bkXW zW+-IM^I8x900000000000001ZoUN5%Z`(EyhQI4q+>)Yj)KqfY4PBLXfTy~RF~>1% zXGVYl15KSRViYNmlpQ0;f8SAb>;!1tFVzP_67PL@@9B6><4-^9iXwoq(JRBM3;^;g z_8-D)$c?u4^;j~u)TRReb}1ynS5#=2(}rYMx@aVN6}*__Q@@@8uf9sXU~qdlgjQz3 zphdIBA|cuo@jy)6oda#4bgs_QbhFtcydryvHmmeD7FNAeQEEzf($Mz=8UO(wn3?DhgS!j-ylfNN9`D6S-JRZBr4 z0vV><7W5LX`jh;URJ}h3!@=yh_+~P`p7xVq z)pOZGuMzmZj7mGf(Y9tP?UPo%BbcMQldGTBhjAL6ilr)Wd9;Q8Eu&M45ek14MmWV~ zQy`o?M&2lK_t?q%(056B5=Cho!#`XyYmagxpsSiGYhvPn@`zXX^^zDxUJ7*UZVI6(r z19QI`!w5H>Gq|Ud;u@ns;pQmr0v-sLrs*#tZjiO@Cp9PJ zelK7(HBxPaUv)ZU5-Rj;cJJ$44L#t{OmQGTf9pFUSofumVMaa)PQwjN<hM8@U^^%Yx4 zeEb9HSXX4(8aXBTvAy@>RIUDK3-%J^E{^zN;C=Vv)&4&&rew61plk1hNizRH{!dXA LVj2ApIKpg~+B?IC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_x_code21_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_x_code21_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e0e79ffa6892cf26a5cced6a36852021b385b22e GIT binary patch literal 743 zcwPbL0vP=O0RRC20000000O4~00!Rx0000000061|NsC0|NsBTW zv=;}Q;0|zQ8`7%Ef1eFm`Y~l%tM~z#d+s^+`1+EV`pLGIrUCej&Kb&V0C0!s7ltml zjB?)fQzT}TWuT%nl47{TIc7*uCTT+&7b#XOXa??B;Wk9sWlE)4fd)7MNh#nt1 zB{U^(fbw~P=8Ea=?#jS7Bx)HcRPTFxdxz%Uk!kINbztuw*m9$&KQQBj=5|#Qm!y8N zj6;b^*rg9ojLZ`Ot*EU;dhnfy1!A}ZULG0h$t&EYIj2mJA~OJ-G=+-BfnknWiDN^m zjWK>vG{mC-${-Qq!8XmsVqrv??219z+`I~h1M?*{5m^edZxCaFNXiZ6O|CE@95|g- zjzI2X!UZGKLf{x~yzpu?3BkF(gBvFZoa^we4+|m^S_r@;&Y@NjiR5MvDUl>8#857t zfX-le9=KPM<(zo~FT7J`FTC*jd_0DWQ2-A3P7r$TWZ(oVC4Un5qw%>>A64n1DJ?NX z>o(?8kO=eYFd0>*b2Sf0$iB-{ZEXs5Q~OHtC@o?Pjg2FeG~Q&b@X_=hM?!&`X?C}` zv`t2AdlS-XYtNdxBEq|;w~+)_6ALHMv-;X{>mEx=V)%#C8%6}K!v5K<{Lt@PT*S6b z<=|nI?Z}%gM5i8y|6EZvpb<*fHFWqGzp7u#E2HfAFRjxZs9UIf!SOLPOcTB|^+|Yf zq&L6(%p3jJ;PWc*ZWwIa%VV62mer|p+iysSMF}Zi-Hg@$j7*dw&gHjp0-tiR{8Uj| z<-Azm?`@Rv8Og;!{=&3YoO5Jyp+dEGu#R_6FR}3ARvZ2dh2nv! ZtACk_SRVm&v;Y1!msMb?{RS%4^STpPWPtzx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_x_code21_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_x_code21_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..986be4a75aa231fa63133fbe072bcbd2822c02b8 GIT binary patch literal 792 zcwPY*1Lynz0RRC20000000P(m00rIv0000000061|NsC0|NsA5gr7G@%H=NM_#`V{UiVIwcmT$NI#*{TnfMWAlAHn z=(~p$rEn-$w~8-w1D$lwLJr^~H*2PFA0m;u_NtqBD20~F@TznHf}(&%ra_@bRb%E7 zZHo9nbj>#dQbBIa%J;nWdhMnqdE!d7^v;uuq4$uQo3a3M4Kg&07uvP8(MoczLCZx` z5zu|cwNZRt8O-1^O3uf#1cK2uTn2F*jFRhPSaXxh$^h0Vprx3cwB@ScBqESv!rX#f zz{P1Co|7s#iH1>fZHqmNlF{jO3TNXO0+ZX}e+M

    24={2>gvDEVApfD`9fs4*f>64a%Y?3T;NkFgb`^`We8ipWj&h0 zEywY?UHF_9OzVv-2PkE(I8}71xIx+gDKts2Qt}29=lzboP!Zstx_R2hM%83nN^2_TW2h z08=Re0@oW+$8blenk!SW0&2-KXgz8YCnr~Qn%s1>$$VeZd?PD&so~1(w^R4zO3R^4 ze=AH$`A^E`do}$RsowlSdAAG8Uk{p`AfD%W&)_m=#%@GA`>7NQzN}O;+;(rO26hWI zQ=HA|=p$r-+51P$lSUgzb4G;@&@^Xfcs7UxHy?iK$yV~U>ENfiTRWX_JUWX8vp7hi W@n~<$T6#xiZKKHe!ubKuInVX|C4goC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_x_code_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_x_code_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..87bf23956012efa4a63faeeef1b1cf613448b335 GIT binary patch literal 24428 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 LEC96)v4{TvA@ii% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_x_code_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_global_x_code_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3bf6d2892efd2de9a06bd2366cad5b62d7a67fc6 GIT binary patch literal 2704 zcwPaJ3UBoQ0RRC200000010gX03(P10000000061|NsC0|NsBzg2kK{L*6|f^KBw| z@Ds7EUpO)V00000000000001ZoV{6XZ`(K${_bBfmo5Uwo7!!$#V(xN92_@kgUgFy zJJ%LCU_nc?&5I;zNy@2F^uON>Dan#7#ddCSMo~y2pW(dEaMJ7i{#X54Er5}d3&p}d z01R*0BZt>8R8s5Lqkx&YR3XsUxd=FX;epe04z*{;+m@!_q#}K!uf_`*L*V|6)cU3`@P=N(^J(Yb) zpwhtShKWFTi8uUBmqLS0!{_Vir~8K~4DPED;;Vfj|%vQYSN*W&SuD`%65rGe}l4vq#GX_R+j`&{dIWC|NaWV^p2V073eQ&v? zKKe{Ox_xqnYucb!)DY;v9e<)NxMwAWkG^KoIBtu`!0H6Pqwfj*`uvNBWYabH9ad*Q z5Yy}R{)RcnSpSSz$gN=XvdE1~q=hmG3($8XZNOVHJQz`T2xyy8}~{6NzIgP=f4zu#YB#7p&e`%K9s`hC)epl|&Jq0=8NJrW6;Z^oaq{=(@Uq{}PST z+q$tvQUbLaq*@3h^Ks2{NeMZ`#7r8CnKG37$-xp$f|qhYcS|n?xicH{3xcHiu3hwT z;y7&#PIsuJte>0)bdVEDvJ@pRq|pK9`@*UB-l}=Gg&Ns0Hi!RD+~D(EEDmGA`iNLW zSVAwAl1d+Rx<${KHkHuI4CqQXH8K3pL{JFX(qUaGcQzZ{sWp036`bEWN;9UNyMbpz zTBC1bBP8$vy{jDHjxJ{yvpyb1;j|{dc9e((uCbFcOJ)<_I%l&nPO}Z0)B%Gy<`^m@ zm`-M!bMo9Ts3CHuNR;bG>PR~}A2R%vR6~m?`FX4`n7{3Bk{WM#5mqPjgU&4k?=k5< zRTt&>&!lakt!_$M(FG%|80LD+h(M<1{y&<_ro96UuRdN!!sN=sDu<;yt8?9>Gx(7g zb;P*#$n{jz6lFMcqIT9ib-)GSzA`tZ?Bji-4~5q@Cugn4Fi{E%Wu<0SOIrsqSQuCK zHewr}Lc`ceE9$*MsYe%IY`2$-c#NA560+1ZqEjq3{JL}Og5Ks4l#~sJ6!o@+J3p?) z9CN%pVxVHwSqd+}kssE;3fd{P>!hWU zrEK~eEt%#!Qf>vOtw}C&^g-Yyb}3xF5R5m_gU&9Sx=8Arq8hs=bMZnY%(3wEC#fFy z7o{2lg}#5_XHABl$_>R@i^aRoDjm0Hz?F4X@|^RX8O3?w@umse50I4!3!=P8&BsaF zpKtl`IKjf5b(dSs7=64z&CoSyp9bV$1?^DL!78Y$m3uZ{4rtj4S&Y0)j6bo7;uH!m zdzXSR35&y`mFH=n?#-~ z&RV)gDdZtlXpcoOGTjEXqJRlqP9;&*-d(LuDt}**Dw24 zj=z2%3)*xYbG&Wg|5l&_z!v#D(3!2|+IrV9V?O6twY_SxXvWo<=YS~KqFSgUn*wAr zTCvxv=CYmV)h0|RwyyUIPqEn&n-^m>SE*F)Gv0|xS0-cB?hH{xtXPon>gmOU2PU0W zHc0t`^J{rHZO9qT#(pp&5N6$A?vlMea1v_}`8OhZyxt5m>t(9;8bx*J!~CkwpE63% z0!vLl6#$B{{SkQM^Apb;4BG3`UNn@IXqtt7v9G)QW)#CaLBPskKgSQJ75VU!&a$Y_ z18&^KHp_W7!SR|T2d-pwb9)7xsp5uq)t05jLwf6izM4DiYBy~UcBRK2JaQWTKO9`V z4Z9h$W8mTo@!*DH67|nni29ewUg`00wqMA8b8_EI-)oeJRQ4ax6eszZPv?7I$e+vJ zTV<%u$#${%OmBZ&lh*PCct{bd?Dh+kYNc^UePZ5YdfanNriVLQ+A-E7=AK}I!(N8M zU<=bOW{Y$hYoaXWXE*m$ZNS*Hj@7%i zjnnZ*-Nx)*j6vq6c-aTHTy?_QQD0Rb#i?S3C^hxe(&(*GmD{+9gCZw28?A_xGk5Gu z+k(w1H^rOpIXF-FAR|8EW*=Ex&ymk?F{EPzM@ByjPWjjkuDP0*%y|yhj<+m66hhv9 z7|iJ={oDKAD9T`XzkFUF1LZ9RMSY^k8Gc|Ic!gC^%v=8j;uEf`0000032guX0001^ z001NP000000002#00000|NsC0EEX+=fIBNdpOd#UIY7U?GrgGl000000000000000 zc${sDy9&ZE7=?e=jJ|+pD56qqQd*RVgV4p*!BuLL)<8{46FT^YzLnOlesJL2i0Dl; zn-kF)D9WHEengW`Io~H-BqD>zWXff}L&Siq?!9q#JVzHjm??;Do_=Sd#cL8hfx#Jt zQ`c#$3SAqk{mKU=r4PNa%@Ru2K1SuN52zkxzZskHc596fF~dLZ&b3f=TQ)eNE?ckH K2gW|#0yMvw=O4WQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_hex_file_converter.cxx.i b/CMakeLua/.hg/store/data/_source/cm_hex_file_converter.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8a2f66e3a852ee706f130f0e65e49b8d8d1d35aa GIT binary patch literal 1916 zcwPZ~2ZQ(k0RRC20000000%q(02kH(0000000061|NsC0|NsAjk0)O|Ll?!-m_)A2 z&o#l$Cyx^V00000000000001ZoV{4$B9)X`oK$yiTL$+(`L>>`b@cp5}^%V8p;7+;Y9J zCTzpcbm@i=(z&z<@Y!)g&fHnVi37h5rdKx~rqCUIgkQVkad$NRcn)iqFKNVqJdhw3 z!k5VEuRIrdP!6*Kz6Cmm>;AZRg-qRdgW+KMQP_Gpn2!3B30&Tcp$oU&@pRDpFzk+F zLAM{qw>Oi1Ep}9hwPy5zfSm?0pxm`dC|&WXFgXx)U~!B(`t+|=-*LV4og3I*TDx#QB>@@;O5xxqs0mA-SZL<0hY(X>CjyXyaTcRd*04F{wC-LOCUX?i7n zH=30*P@hW6EaK|^R>)N`TBom$Tc*x+eKWlo-weBVlX1Vdr_X3rT9ubY+IIMMG)lgl zzEZsozRb*m0;e$9hMf3QO1%(%EQK5sW5W!W*nf9}5aZZeTFkKV3v9FW1@q1bk5~YP zVc77t1La29gy+w(UEl&&Z_1_#rNmVD;}1yatQ_6^AYC^{cZqc7dFg8@F)kAA7hvVO z0rudM`l|_N9tjK^`;mjN^cXyhO>C_@2Sco&(}9L56@HQ5%8kakTz$pwoMb?e3%-O7 z#Cq>+E94hC$y+0g6-#C2xl$&VpJMKl=4YX|{Cj{t2^Wjb7<#DLrA|*WyZ#%g%K!L4 z53tPsO~h9bf9D3q{$U+RqFpK6@ErYpFE|e&j@j>8_O?CHxuH=54DycY( zY{ZKYNgAM-10(luC`~4Sog`|tNc}Q(?TRH z&YSfd8k_n2T%(tSl}f%`l~O%MnH|P_&0J25n7<0msxGQ3Yt8I*v^{gLY?U-ww+Lw= zzJ9dVs^gMcKzQAub{(4|+SGk35dTi=AtQF}RK8zx1+QKe*Azz*>RA&c8)94KP(@aJ z+z)7+c)`Sln=fkYD0EUsCgjWDL7rbc4)_@|iuRTqZy$$xvjEz(e18?=1I9@rp+Yu4 zLdRw#nG0mvgr*;$B_O2v1c`!2R5VsSmR@;MegaP}SdPW5iRiSX-qA)p6@voVaAtw! zI80Oxrh_skOoAwsDx^DAAgFD<-rqXg-+EIn3R;3XakUY&J@r!YHFI9-9-KYS*gDAA zY&_2S;xK1xhZ6%B1@{462P$U3w=43b;!uGXW1NRCJK$>yGi>@0#}<1@?E5hC&8!8p zSA=SYYTO{HdDXZVP7o^#`jiBywxbI`oGqsshYF6JR6#tv$RPLmF%0WV!z$( zX*cM?Tl@N6>~Fm+oB8o%=lt}k{r@+6>VN2{{fkb!EtXR>uiygRZoen^<73SwRK|e; z?%N-||J*>x8(F^UJ2{3){A#pb%2_9F&X`V&B6NlAm$BhM!)8ZmFD7)wRgVF(*jB67 z`GWA!kf9O^t4fa)H@7_+5<}Zb10<4&wq)XRRgX~;I5SMH0gZhMYqL+Gy%IaB1Jf%P z_O=xWR^o}dP!2kpd&-^!=#?3#_2_joV@F+d%#Tpyl_ zt$%dtDfZyeu_y1v6H4Xpyb*Fvm^%9BY%M~Q{ZcKwY&6v!1Eu0qrJ_p`mORT{#^dXS zxjX0=s7xk%ZEzN;lGvdx`TH0#Wm~l}ihI2JB+Srx6`W-NvD<_DxTHZ!l8=}+Y1pT| zUpd=~|K<>IBVkw-?$hBYH&vvhnnOst)}SkgU9whEUa_;ASw;OUMY=4X`^c3gRIny; zAK^`gp*-{9XsNrNh?F0XCbO;lE$!XTQ|^7NUoVAO#vxSJ49?<^U>0lcJCGPWq@{t7u>qj*o%zCk+&9>8x+2~3i4WTA^sC7AKszN C`@F6I literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_hex_file_converter.h.i b/CMakeLua/.hg/store/data/_source/cm_hex_file_converter.h.i new file mode 100644 index 0000000000000000000000000000000000000000..999f606b9c34ea46503bece72b0541a6a01e2dcd GIT binary patch literal 657 zcwPaK0&e{P0RRC20000000L0}00eyi0000000061|NsC0|NsAXp34yR;J<$4wPXwk z#OJbXf?It600000000000001ZoUKyPPTMdPea}~12_B%71S+9vMSBPV)@W_1k}!lc zX>y&L#+qYSw$oCf{rj#H27Q1xtSEBsx##5g`b2|opS6MjU}5yiux1PZ$&CF$IEBP$ zYfl%Fxk{S`e6LUUStG6gxfNMLr4`5{o8gpxw6_g(KaDKEG2X_3kEHk4VEFP<%n;Jp?h+m z4b;x9$5FK1ZbRPCG(v4w(WID7qqo-DH465xu3?_i_+pgTioS0VSiMw%a(eBz+cCxv=ba{cbGeJFUh=K!AsS>Mqg7do$4hRtn-v@(eFo0iNGHc&y2!Oz)5hR^3<*x)e zU397(N}y(7s-y^0l(l4#pBm)al;BfrJB;^Aem)I&wU^~IEQMlb*Y{Fl2J}S1hen=* zb-R>;k7@d-+6Fva?A8d+SDnzXcSXeEtD~I!{JkWGbu@MU#<`}0n1+V(zj8!Itpi>& rGoX9&D!YcE5QM(QdGe|dc|jIHXA#< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_if_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_if_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..c9932408039266f71552dfcf3ac9879ec5f1759c GIT binary patch literal 5010 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_if_command.h.i b/CMakeLua/.hg/store/data/_source/cm_if_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f2c7809a69f0c5b17395d818b2d323b8a65b3475 GIT binary patch literal 2688 zcwPa33V-zg0RRC20000000^Q002+4y0000000061|NsC0|NsA^$AK)uDn437_a6VK zG1D125-vLc00000000000001ZoV{58ZyGrk|DC_$DP3g=ONJ!Z(@JEw5+%@}Bans3 z_9CrRnHdAV&Wt(R1C6TQ-@fnJGsEzGyVqSrD`LMdAHVN*qxSQ+`cx_ak4nxIi<_m?fb% zuP@;{Bwj3*U%ApkCQYk@ zFNOQ#+I#&Pw{gEM7cWZ8<_4<41xdMqe+jcPd>B;&+xuA8np)g^DV4|nak7wU-AT;6f;NO zco7L?LP3fp<^|*w9y+7;J#w|)_WC{lnZR~?{-84+Lw7iW7Cg2_ey{!1Z;diZk58k= z;ke_uqmo=UkxLFiVa7xn5pZn}6H5Y}Py{f8hR0KVv$(4@DzC&e3Hh`fG9TuZSGXh+ zzO{0?NCF?aL*bBLzX zx{H@%pCB%(!g)NsxZTz`#xRb;5sxvz{vTyW^em+a!CI$-k%ULuCB?5cVY9j90amS_ z)(Bc^mc~3WZvcO3BF*e%?IV&|vE-aWf2LGR63jx87+8Ddw({k6C)BbaEr*z43JVTP zKuld|Wr0;9-%nHyyPU8TZn>&*m?0XnYR#1({IbGo))y)zd)PFmG7w}bWqBGU6Bp8J z(2iunF}SR^KHL8lH>pY>;j1#XTf6tAvI7GnK`9Ypc_E#c=q!y4R_LYt$a{$}f<=#X zPAYbsoRgIuE1_plT_9EHxLM{u4HG`4Ld8EVSfUI1#!d!otI2}$M0lK&CVk<~w9l{s ziy|t_bF9}TQ_|K{C{)0cK&FY|$_9>OCPLe5NuRc@hQjtB^fl-*T>G0EN-}%n+%A=`f7kg%9johzed*ryge5L01MuE7zuJz?SUdCpV~X96=oiPe(oGci58-BdhI zg8+-QflvnNmT!+p_Hh84FZM9aMW~d3f$| zC$?{{Vr)N}(r?R~!Uj<0X*7`zlvo(-lHozW>9M6@lW4;{n0-5rd7v2nI@@&9DB3d3 zj%BjadIor)Dy9gIJCq|Aza?kuEr3^aSUeK9RoUCxZ4VzFT7$dmYHRdv44&t0vu6Z1 z2MKU#V})aAZUDO3MdWDyUQ9<#LWw4RJPET2r4|8M=77ml-iOO zLgd2bu?NpGg_ym-oZ*Zb<4FYegY!5`(tjQXMFx9>aSwYVLH9#{>7pf%F%_$w{us{DtD1eaI#fZwNUBMikB8

    TfICatd zVJs;I{8EG|IrWG>^z>16Tu@agX#S+WEG_bya!JF0$a6Z zlExFR4&gmUQpm~r&IwT`s0wMebDfZNh~}%T=&r{s5@9CEw!MvM0;B7{Sil6myrE6= z-`Qk!*s@ty&a@vo#R;miwA^?n1)d-*%XCIODe(~5*V;P58WYfy^I|RnJ6RN>uq0`y zBHv7L93xb{u=a&3Xm+y8q`SY|3+y)Pe84)@$sOLp81@cmONmDh4pbEFtbuukXmX}P zQkl=TI;uQ$?S}u*w29=x;Pgsw6!vyy*0)c(`!(zXp9?>Yw>oMm`P(BEG2764ZeZ?^ zRGeCiD{2PD$yvXKVCm;BmffUDHz-+$71Q~RV1ezKyRgmf3HEI|6NDEDrKEC$zWq6N z=FUevI)!~z!z*Wy-*d^Nd)`wv9w^S~A*Jpv@AeK`E6cB!ANp$R*E__7S6ylZt8d+4l{Js@;);Ef%nn;lRtgt zhpRz$xKo-3wiNvpn%y^u{g(xQV1bg=((7G){pNS!UN$SQ>=miz>%0RR90|L49f)K)8x)PtesANSuAM44YEQUCw|00000 z000000C=3Gk{?H4^#O6pl}SmQcZFgqCoB})a1vh-t*g{7G~cj~)F@4uFoBCijr2e6 uEWZM*H>{xhPlDd1d=!zz+9-QafSE@3NBmb{oS|YSRigOhj`If9X0?tW&m$`U literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_include_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_include_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..6ae3c7f69d8c44028e9bb91e7d70d9574600c615 GIT binary patch literal 1534 zcwPbi1p)d10RRC20000000h(k01PSs0000000061|NsC0|NsBcw9-1Y4|76!KHge> zQ2PiJbbea^00000000000001ZoUK-EZ{j!*{+?ekn_Kl@X#-R}RhO2YSPENo6cD6c zRjX=c5(CyHHnJUPuiO8AP5%DU>=HhD1+=jKHi;SxDgvg>M=ANA;qW4rPCb*ki zMVBo7s5|vPaU1trV(~25Y_6f?myMQF_?zh!k@OhQ9>@HvWWOc25>m4`asZlP2#J^i zNfnh#8aSwJOzB3Wqn|Vg33II%Zne5vtsFl>I2<8o)f?}&SKS<)>nH>S3<9bN3zcJR z!{N=D0wt!2MS$~wDJ|I~)--^xUGHXa=Rvdo0AHJLyxrjB;CFPK6(Q}lI z79m3+R3r)4&mg97+a9%UP^$U4+v|D{#@J5R>$k^a=nO{Cgkf{!bz676<|xxNyc-P% zUw54pR~;ny$U#e}aWrn8=V28k_Bc*D&QI zqPS_i`c`|~-A4Aup}r@wkH^d={!Hjgu}K?_t}(8GHR>0@E(^%uXQfhvCdcv{dxS;< z?7`6M4*JcWUCyYthR~eMtuC)&d0EeX1u^4G60%?etqb`@5Gy>TSIFKCaEGAF;WMLv zo|f_YK)Ov)1g+h2Yt$a!^}O%*%~7}cx!1PK2b|l&bi<_DJ2<;dBRgS@;Y)fYEQw@f zg4G(eh!qXq4g|VcsW7-Kvj331TfXJAVvqX@4S4_4UoOyrFs2CscYt=@?n==D;}=8h z>tz5_PDHdI+HnzDSV(LqB36(Tby%j2MkPg2QLGgKY=ONQsAxg3ZBmVSz9I@RQIbkI z1*Xjc|6Lan-~bB645S7Kk7BPudi^T=82t;_*tC(W90&g;XD{~hne*uD+TS1T!# zr4N2IepZ@B9@ZS?x*e=fUDb(0EV+7KN{Y-{b+IfUR(+v?AYyv%;B(@6Lb0!y_k&~Y zLXobUO2)Hl1o;~JXs7MhzSx&bUMP*s>HNuZa`lDk^r@nZy`}8hZ3IlhrV8>*-A(Dd zf~JQu>FrAKx?6M+7;~io=OVAvl9GU#C|jEVZEPLkZVw*^iKT};X~j|^3)W}K$3Np| zaco8A7>d#r@>`%PL`?i^{teoW@j`%TIc>^D$UotCB0HbNpuM78Wqn)u{mPG>~Rtkce11p@c z3z0U^+C+$*#fJax!C1(>pSPOL<#O5J1%lBqcGkQ}`n~2(H1~x9gbPyPnN+SpvEe7l zr2}WO5E0;WDxJ4-T6&Sfr*3jHyiFh;+`*@KJdOv+-8n3!&rRt;EQE&2iqBEEm@A1& zXvi|{S70*ecgF1-)QaDCd)?%Yg1zo0gU)0E*TXTyFp9@Xw|(1-$7@TY+wo{P=`^ZT z$u66kg#f;VQ5!G0a3Pt(P|%uaz&rwvS^YBd)tk`^ndwwy2fVq@qZfECwRr9d)v6AsUGxxDM=hiXVn{@( zSHzWs#zI<;Rxt{V)GavYK@)9cdgg*-JzVXdT>OpOq` zBj?jrYauA%i||aHt7n%L62D;yX72d>Fj5==!WMx`GTRSS>V^5XNdkG}xRrB{otFM< zNNy5j*i;dW4;%Eb7UKK>DFK=lg4p}iF;c_L1(%r&$m{?iJf5i@B?vrcwvJQZ56~ic zUOV0pzjpqJI#1nCO3v}pLuz>7>3VAXhy4U+ytsO*@+@6yW5Lq(mZBC5ONk?JkXciN zd}oq|W~gs%!=xWW?9)j5x$v$_rS_sb2(Fs0Py<+lb3{R$!RO&9=?({R?<;&BcP6*J zbOX)d?T>zX77%8Q9@A^DD@2t5P*$hsM9QlqYz(-PL6h9cV0286XZVs-{_ zO*0wd$abNo23rjG6^=lna}xZgv%CR1aO!;;c5H^(^&3cKQz)Z zmptDo=a~Ccgj}oPPdj%oOsDjRfoS-pz{bAnl(SB+gwyZA%rzCXOW?RD-)adNZQ3%p2HbJ1tqnxp;k zd$OC{INBa@y5YXX^&+$AA1tFks{jB100gc800000tN;KCuK)l500001K>z>%0RR90 z|C&PbpRrQ9nmjo10woyMHk9o8nE(I)00000000000C=2rjXes&KoEt;!X|i#DMC;X z^CKa;ij@|r6b1WrUBW`l!p#Tr zB+;DsDMY6gTelxHu`^9|KxG@^2&JoN8Q_1^>(p!2vhTjJ%&fb2@}oXGI{?>8P8Ewi0O<7D zJ%?qb;Qg>su*Z>A|ehSc)}GkQlVI123f>O3SJL7L)!Pik9&z9WdT1Eiu-tQ z(UEb?lECpF9-1?Fje-{}nPzNCqMiMHTsUJU$3dk0`KZy;Ow{gEC(}fb#&_La95XupJ5@ya6ZvqN)W2|-M?(`wfRTfM z8zv&{kZt%Gg+hat6KfIRb0D-)Vw@Qsz?a_WFc&72nE^iI z3FIgyMAp7%zV-Qf_-J#O>)c$l z2L;mg&EWcK*mZJO373uKjDuf=F_A|2Tw7;iNk%8c2xc(w=+zJ7;hwwmlgOC^wdY9` z)^>JW_j#7>jHQfT*!H|$B8*_sHPgDTP2hPmd*XNdOvy;5r|5s8%^P59svA4sFjitx zrx!#=UMzaVe(o60Vh_MGv-r~)Embn zZ9N(D2?hNGb0hS@X<3H{r#*d@)N7r7`&0L>ciFkPIqTk?^#Rz;_Jq|jyd93Z{X$8(4NL!)#scNhh-CTxSYnBT(;}4! z+1kXi=>b1vY7b_4$N9{n4BaRWz>|D@;N}b;iCnTu%=>od6ISxs@UC;!ziy9ud12;R z*;K@plB&WNM`{;;@mE`l?4n$HD|;Ys61FhZe9c_im3Gz_AzgtIZQhUsvuAv z{W~nHdZU>$t(o&6FQFV^tvDZT{|F>7h@_#e=|`L;Sqd`A8=#tIF;8$3jJeM;&8=GM z)iU9bM$G3h4>@vrBBOgvXj;bHh#0%1q3KB|*s;^h!ZS$o@d}s>NHJ+34EBBUAX?<< zBMr8#HJ@ z7Wa5Ol5-FD=|~OZ<4&Y>$4t>Xy<)3yLn*-xtU7m$xmrN2kPrc95gKhx(qUY$};|AXS*|t6zM88p0E{#)nCtFQOvqV%YMGM;D{K4m0ZJYm{yTLjvVYiof>G&z zK1VMamiLd9iG|5hJf?e+%@b!-EOgs43NL%~oY$dc^jEqnF9Tm#c1UpZ5Jv|&@CWYy zNt0+7zu&*Z+R|6GyK&WUu+B8M>By}jKM$63c_r(Wit^_2<_-KGh0VjpQV(V9)e`&Z zg=l%SJiReg@D?+fSo4Y;t$}PD#v411E;EuhiFg=BOov>PY+(@+d=vg0o$u-MEW+!a z3AgB3xjwAam5I|WH!hs;LxaV+q+Z1n64=L4?bbF{P-D507b~u>lZ$>gH6gz@+t;e? zWgRt&vM&3`(w!}Ud0bwCtrCkI{~P1rKuiDt000H+000000GI#(4t4+l000000YLx& z00960|NlfP!OtO-(QV2EP;iEQ;O==9#wh>*0000000000004NLC5*ue!Y~j-SG@HH zyzZeC1+i_UR2T82hu%cNdx)U~G==Q8_?3Q>X*)3Rh8YF`egKOV05pgfEtYUnIrTsPRsme&00nn&m|_SR-9H lP0SLUZ_j8t&yt}IEpO3$u3u|AavqxXP$ZHnU|y4`1MD9YBhj?H8U&n765em z;!lLv(6Pq3*8?T|)Yu&O=~OC&-%+C#-dJ+$o2*pGUhs0*8S!}w(!8frRc3fDEv96+ z>XX*9$8YEh$M0Hi-?!fW99;iE z>!i`G5D^zL-W(^#@93D$JEmA!Ih%VpNDmq11U^W=6c&$wXeE4g;k;wCGuF#8PXO9V zL2z?m(V<;nmJr$qaf_JvzdRTVbMK2*v$oI^o!hJSutFN# z4hJ`*ZW2>vTrn{VgmfdLHeROaLNd8w(wh50coLqn`e9wzXx3iHsm^fvd;{IjYcI$^ zYW!Cl0*Yr)PxDRh)oZn8qXC~&C7gTSzXoJ8v66VSvkcZqS!E_k3U7i^lTs?~k_Njx zi^oMS9TkeaT!E>at~OvRP$msZI>ulN6gHg)v8%`#@KiaD)2w}mJG7uECrYNU$-DMY zi;r4VaLS*{-iU2TUjYkgeJKKj25DEf@vjP@M+R@W4uOhKt~yk2Zynp9>Ue4 zFRccR%jcP%2FtIteWX&M6gT#q`hAB6A5EooGzmI2rS@o%>l2;XFl??X8YmY=m34c{ zePWEF9U#3FYCvipIG?pzi@@%e@S6ux&wh)N`~BGQ_1A<*N99A<)6`ics)h?*D;+$-N)-uIug)^FR zoQhKU;Ij+Nn_m2jm_#dYX?{1@=X1&B3#K?r6I!d509%csj={Y~yBp zF-TrznwH**C&S2$UpyP2gYAq!gLctT++Y(VPFUTz>%0RR90|4GSF5zTg)V>2e;A^eGG$x9wS^Z)<= z00000000000C=2rjXMj%KoEr2!X~}_79l8zc}RSmVx@(hDA=Fp5f0)V-flvEq(90t zsr_KtS!S65fDgcE0sv>kqhu|xCmwW>Wt%k1(_)EvDT=iyw-`r=ckRhI`+JVBx;4X* zFY;Be0mf;VcL?neTjRNrH9nlH@oWtnSzjd4l=vw`s}(!H?=`VEwmP74mN-G_E1F06 aAN4wQS~VQHZ!EbXOsL zdxuk+fJ#u?zM!Qa?{WKOQn<%5LnR^qAe>rm!}n+F$_r@CTpKtId?1FVo1={iHR&e| z@+8_qhOJc)S{w&g*aT^3Llz*;t=TS zt1u~Xs9F9{>k(L_hP&(xFWp1V5NiSSBMa;-3sEMCa?g}aU_r{~!LV@ffV%ILkA_}X zB+PmnVIF*Jg}O9kxvgl+r7ut)o%EkNy&15zN?g=D`-OW`jwxES0=l&Y8Us zu-+OkK+#>v;v;aU>Xm@mdf8=#MHn+YlJ9p5qy017=( z3nCPIF&u_e82=hDj~;>-1pn4Q`dNWOX&gz&>$fY%5kZ*Iik-@8&V;04uO{`J-VCWINcM(17Z3BEW~59|D4ubw-0RPiQD zkY6Ewyl+LOb_VTMv8Ttxx}GjK5Teh2Y+&eb$-X+hR;3(ze71dQ?vg>gii*7_A&y}} z+^+(##frQ8*9hUMQ&wJJqGtk?P_DQrPXgzVgohx;Du}54Nh0T5UhhWRld9#;qCnQV zmGl!xwVWnv3#ePWFMNimfq8kFj(zADwt2B!yInhd^^~se7G_n?Z?_w{DG8;YbB!PU zq}id&SaqMn$pG)Tt_4#b{%4kq@K^~ z({vlVuRv#Xa3~%z1gq|uiSim;jD1S5N??Ji$F>bvcOd-((@Fot;r$kb&C(JLp0G2= zWm}FK_i-~evB4g=Ho+z1ofeM$+;wpedhl$A;EHj~pj@eGr)&2(Uk&DMk>T^MFD|4k zwNQ5=mHu8nLsfAa&Zrr-k9cSMgKNS>=~8i%jeL<;ZUs7}$wa(Ww{EafcH1u(F$xEW z+O6wOi?`IPqwRpa;He~Gs=jpLAFUzmt8bn;$y7$BRZWD<^`OR-YDew2ysidlwKm^I z-C!>G!qqGnt_a%rVQ zwE*d&l)XL=O_;uZBwb)#rCFY?J~~lHv)*S}8}>NO93g^zBYgW-2_K@P{TBOoY`*g7 zYjOg1ievokeoGDft5Vz^Uvn2t_r&9q zgt>+(`8ZroL>7=0rzaH0VkxiybsWxv(FJUv;P}u$Gb>N$r!*vi=o}cAjdZn&WF{dA z6+S3$f|q1pHwSD72V8fZF+T~>FZ=1sceS4HEB(K!!FSZ$AUj2s%Cs}4Db=$F%jzX= zmw=1sdeT<^uUafQpP9jo&0sSAOHJmRT9^=b8hXKO7ahpb%K|c%BjOqvkzLCy0Hu(f MJ>m$FvOencCxfiaivR!s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_include_external_m_s_project_command.h.i b/CMakeLua/.hg/store/data/_source/cm_include_external_m_s_project_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..be27566ea767919d2d0e86a9fb4eb8aec2b920f7 GIT binary patch literal 1233 zcwPa~1TOmk0RRC20000000X7~00`#*0000000061|NsC0|NsAp7}T4myF)Je-^0SZ z;=N^s40z!H00000000000001ZoUK)VZ`(Ey{a>Hr;1q-7rc#o12%u~OJT+O2*^Xf= z>jD%AXzFZnrAULM>>5G8`;L<0A5AuAKm|dj#k3yc=C7XMIS^^ z;&RF@7E(|W0U4&;8uSbXSL5V{vbw+Z`n~ktlfCYx!>h>zu5ZWCg;95$_L94PcibS2 z?#83r$yHcy)#I|MULx>~j7mGf(N>!&v?r~+Etn(SX;^5BR9 zg~C_G5^x;@EnaM_*b0KE(}7Q1GHVax1VFJUgM%#miN# z>itQhO52q-pY4KiByV**;K5bBMM_J@>@?Wt%gVJ!nb(C$Q3JuLc*$O`AVUJOQo1dv zeW>ZWZU~-g6ueR-h+$DqrQom;I(Q7~S1~z`1oyt{)OA2NgQYO8Bmp^OMZgp#RGsVtE8+T7*|zE#{tTY)VXC#HW+a?oazyI3t;^zgiC%%9tFiA4YW{02 z%@4rL+#Y+r`&ho?$h@|Obqhzb8pNA*k zJruSvSnG0MyGhA8MLWneFAG$zX%q(*OsT8mhuxGHkF?dC=6>nDY+o`zL(@F2^ zH}Ea(|8c!8rTm8KGp2QSg%-fSOV@6GtK*ZJS6H7^Yn%HYSB8r-|2T&*43BrR8iniu ziJB&`t@n*muz{+4OP|!z7}}~_lTL(7AB3E23DimMhP}VO5tbL}dVvE*>$MLS-^sR+ z$=F{n1Gz>%0RR90|5PpA zN7MeNO9&l5ArX`KJcBoNiU0rr00000000000C=2rO)(0>KoHy%TI3BDTZEt>nnZ%} z6e|VoM8W<%k8lw0;C2)8J3rxrj7jY@Gs6rs0Pq0_CIE0kJV@38dqjiIlB8HB=`vek znu}~L@(o5I;$3?(&i=~LRX1iZ>7wXTfYBRZ9CVv4Vq-klvciXR6`rkOBdd!fni4;S vXtZMIcfBU|#+G|j&JxEceM$2W|3kfwtyVR6*Eg126UNl@Y#V+78T2^5ukTFV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_include_regular_expression_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_include_regular_expression_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f48fac66c45593da16fe03c6fd64593f2a9742a7 GIT binary patch literal 906 zcwS>*WME_f1EvB729_HTHUr~-DA;3J_4LugwfF2w1h>uakRKT!tQk1-pr6KpqtPS^AAB*e@a1=ER zO1$MF#=G2%yX;a$+GE8hrAkHjL`;^Z9`2ONo7RcHu*mXC(5%3$h5mR3-HeV)vMJlxozvquF~lTtdD85CGXr5 zx@HZ}m*VS9GKa#`uDM*Sb*P*7_m!EP_rj${YgXDebQEV?Hc`l26}IJrK(5%}9Om`}Nmbr?aOVpSn86X z?T7HcdH0jE+1c(H9A-Emo?yh>!1XcXh~U4eeK8ta&rUtpZTf0b7w=SSAK@djyWh+< z=(*he`j5mHuhsk5X56c;Zwp?eRq^pzrP-O{Y3zZ|*O(OkPoMU}xz^z}%QPO}HI<#; XN~^4Id;PBzRn|@3=22%6tNRTA3{jpj literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_include_regular_expression_command.h.i b/CMakeLua/.hg/store/data/_source/cm_include_regular_expression_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5b18bfaa74e207a0c69a957400da8b7c59d3ea96 GIT binary patch literal 1346 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_command_arguments.cxx.i b/CMakeLua/.hg/store/data/_source/cm_install_command_arguments.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e114b9a89a36fa88e3fb225f395da64da9b255fa GIT binary patch literal 1875 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 LV$B5rOjRL+i0M6- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_directory_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_install_directory_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e1c6db70e5098480b939f02b064539053d19237f GIT binary patch literal 1074 zcwS>*WME_f17;-#2F^kVn}P8^6jV3VXMD@d^ILsw!K34r(QofdEhuI{0u^)ihUWU; zHW2tXFTU`WK-NN)h9ff$Ih*5Dq^93x;Z{jkPfx6F3NvX>`k)kf?|Oju zYqb-GHR)A8D!C3vg0KJ4&gN$gcgix;iEUV*ao~`M$Ep=F7tb8cko9^l82fjPqsNPE z+Yh$+HgdZ&JCE#edUntEQdU**^?iEW4zCmz&)VR$Q_Wn)bG~N4qI6@XIq5!`C+D@z zO8X$7YF_@GlVyAV2Z1An1+#7D9h~uUpG4LITvsjs9(ZtdEE5`_VBP3?^k;Z?s=ROEw7f{{LFW+&?0+N zK}~({)@3Enek@s7kuNSZFu1miMwV zFK^`Ot8H)0(-M`poyNaZ^h{Xil0`Bcem}#eiu)wb&srSKcC#0Pq@C{O78TMUK*(?aiS*TQQE3)6E=Q6{qyhq(m&~Q zC;azyQa-q;H1g-a6ff(QDa^7KHND9xA}g>ktxnEk zqgOyyq*_bzigdOqsR;@Dj~+Pikjdn-ljA}a<;@Y-&l##7HD13%#ZX;+g^7Bo^8N^S pMN4y)jT*LFkDNMnS>NKw#pCMtjvAl1YI($7BdDF5L2#EE3jn@==(PX< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_directory_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_install_directory_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5d3331fc8076863a331a33daf7260758f5814610 GIT binary patch literal 762 zcwPbe0tNj50RRC20000000O!I00znc0000000061|NsC0|NsB1xT_}+WIdw2E*A71Nm9Ds?Eg(8&?0O6Q?r?3m5 zl3MRhI5D|Y71-UJaSETQpo$o&kT#ZC!>MJ#MjTFU+=sM^gf@ip6Q*d2!1;pWmcte{ zkT@cuXh>nH;m!_joDkFNpi;j+*xNhu?C${f-}#4c{llY<`jslpr0}~lY0LVLefJGU zF&xTzu2@kT*h;sp$N_v|W=0epLL^ex{_8FtN};7Ptf^dpfOF_*8Wh!3wKQ{4ZA$5* zqHBH_kP1p;YTxr_vzeP#Xp1XV;hiVrk@pBKO~nC?gNz!&xOQ!B_#`FMpk>}=1h~$a zHj3RfhGuXbCFhq{2?Q56a2>>PaFN^`!;G0yHU?-*MK5AXq*gU&$Uz-NgqefPVSE~g z=ST`ZMWZOWvALc_$;Ih(3TKxw1TYEWBnq!aLEH;XuHwn%^wjMOwX)<+wiMEZi9#Bd zQr(qONt?2;<3J3$jy1j75Dq+No#i5<`Lg-BEuD3QFhO5Hp_oW{lTlb(0G~|Zn&Wtb z0enk2(R!Jb1Bkj)4AZ*bqu8-~6nfFoIx|4wO~5t-R`Q~(4|Q|LSqlFr=lpc~n2#-5 zBC(}S=KF28`@UP-ITFQ3Y#wqpZJK)6xB1zpgF;#oHNZjDW)-}>?6);l71Q<#u67nv zt59Dm6<;|k8r3yor9@I$)lyKgQstZ(>;bXO_T;f+|AvvdBs%I13slimm;}aup&9E`WGr|703d7|@1UV*KL7v# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_export_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_install_export_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5200156c5bed42ca6d1196dbf93de93e2e74ef9c GIT binary patch literal 4256 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 C#xjHe literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_export_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_install_export_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7fc6551219dab7a1798fa69d8e666f5314c93465 GIT binary patch literal 1830 zcwPY}2if=l0RRC20000000heb01ms>IE;y&37LRdow1n0cgm?GT1bT5h%k$(LBab`Z*1&71WBJOP2%|SDHT$0 z{M%7$0q+qtAbg&Yxxw{5e87coL|YQ1vG?a^XBXbt@80s{ogKf=-*T-Cb*x! zkS>^g_|*Q4Ry6lSx{_=jX=nsZLvjv(F});`wxG|0w)wAedrxqM!Lcl919amUa+m^1 z6_pDbwvla2Y022uPa1@TNbA)1yybG)4ieO)E#%z0p4<$)(lyda45%7}R1+4fwuud| zNyHQ=G0P(Yybqbul1(#BLwM*g=PU&`BoBPLgpqHh(^_MProb!UC%jTGak~}!Q}Z7IVWgmoE~#Q z8Xm-1Na5YatCD~394Cm0Qb;i&a!z%}DOU=2YuJD~b^8_OxT=^P&#gyfDa`q13J-~K zbod^NDJf$CEl}q;rh(3tcbFxB`P##(ZfrCsMIxQ^sy5~kW+|8)LOZu_nXW9+!Rm8R zD59irQvuVr%AJbyn)L1{dpy#>;HgBreA=zAvE{NEIz6~TZu37R%P|T*1$W`kt zm>D)Zx)k!~n^4n?hcP_{+0G6ZB1%GRSv!a(_+aT9sBE(ZT`SiH+9>pE?s*$tBP&$t zUMPo511m>qD)c$PbhTEZ1Z>1Xwy*h?OPiJ80M~WC+tRt%eG{HvoJw-Ju&%yiV%HTp z?p+t;xOZKnH`Vr|7mD-R^a7S88Dc+p(IOl}-gQ0Wo-nSHR$0(Sdrt&!}CpEV*hq!^BfmEzmCwJN8vBgRGnvn;*HGCQ0+FPG zQ?6f)Fi~@2`c`!{l{l}S_Vu#;ESe_iU8d7ae`6948*x)1Vw}!J2H?$>eD;-l>35~s zPA2z@TO2)-Hci$EjeayVXXkl1vow{Q#9*^w8L=Q*4=e>{P?=$aC_F38=-Ok+&@!c< zs9y6_Mp&-XW~|w1W>RHqC_Uf@&v3(w=4bpX^9l|)R!3F-+w|A{)jpaYRE1ZY5Ll%W zl2$XQ1=Vzd@?8c}Dbs@?HI3s-evo>V(yh;%O+obWvxjT2KL)U1QfH|ALa=aCz2iW# zR5$W~1V%(jatcB<{{zqs^3>nKwTk!IJUPWKAIa+sn3da`O|A-!Q2BUw)TX%O+@8@sY#DU%9VXbblx@{Mzq#>Bq zPHoM^Ff4oKJ~Q6~8|JdrS0~jjR5#k@Q4+4rwH{Mb_e)V~$_}s-%0o7D{sl8*u#f-% z000Eb000000owoo2(|zK000000b>9F00960|Nq#~*^S`OM14ykLwp3!`P3U`rdt32 z0000000000004NLjZ@8P6hRO!@t_%FE}n%tEMYSYW`7WtS;-~8dq@Nm6hsJ3PtDpm z(>-)|mU!`~FW@cU6L|L_@+5f$Pj*l5&um~Y4F%Kn^L<}c^#H&vz@rxcaDsTiETveV zPWT@5dZXQ5e|Ip#{xBVm(&20DM2PQ68=<66?!2R!2$%jV9|d?k3I?1P%oyb5;dQ07 zok(L@Q5=baj!BYcR_SrH$Z14Pd-#IsDcMHcQJnxh`RnMqi`FgQb;32m=ffiopCoU_n5*P^ofO6Fo}x;3yeRue0?QJDlMG9zh2 ztJ^5*TdiyJ1Hf~?yBl0boRps5KcMbXN~n*K7LK~}wzB42d95tLhd}MCvbwT#L1lFy z=HuIX>Fm3cIl(YC*PM`3^h9TFXTG@U_r7|KKG57&^WAR!aQ4T6ep)Y{GvCKNWkRmn U3&8FFVvL7J?lO-40R!+nb!AL>2LJ#7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_files_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_install_files_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0d1590b15e29280541d06f0c5c90dd25e8569ab4 GIT binary patch literal 2305 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 N)#41oGMvHW{{b3hUm*Yh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_files_command.h.i b/CMakeLua/.hg/store/data/_source/cm_install_files_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..00ec4d3fdc052f85bb5839e1233fee5a36f56403 GIT binary patch literal 1896 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 Q4l@1JUAlw8lS}3o05<^U-~a#s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_files_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_install_files_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1bb8fd46653c677f52dd3adaf1beaaa1bb632e22 GIT binary patch literal 770 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 I0Q-h$Lg)tF0ssI2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_install_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f467d4ae706e40c4cfcbaaa77d829f63cd8a5a21 GIT binary patch literal 1521 zcwPbV1rGWE0RRC20000000dP401Qw70000000061|NsC0|NsB;2T^u@C#a3}k0yZTP0IPvK9bzugE_X zj-acg)UreK8!ux0?ZU;I=au^}2Wc&cFlR-VJVVh8LlC)WVXn zoKc7uK@`%km}=)rCM{)Q%YYaRJNoq7imwp``)nc-I@wV-57S^DSD2u?7g1HjyhteQ z#o5phkr0*i{3jhw_ktkiL~B&;%a|-x+slPb)E-h1CU_3=V$50G!gy5))#@$iV{&-y zxDL-RuSqgtfLqapihuKJGs&<96f?A@P10&ftPD!B1CY9oDM3h=wP$z7EI2rJe%uBI zXP7;vkG?q6HXI(Zx=(Q_4hRBgXRrr*?efD*Fuzyvg=_lDlh%gja1N*2JQOvB64frR z(1JsUQ*W1sbH!%1*YVZb@YI8scEAL;x!wpu?s3n~wxZK4J*vJcJ#_9IpndyR51t(t z`yBd2VCXH~(o3n4Ul2r%2K-%BIRW6}STU^RVUg!JVZe*p7D~Mo6DgW;dZ1&)a)Sc` z8u*JUEAow6tT|60o)Xo-p`+1;Yto9?xDd{0Yy;|^?GzH}mw7<&Z^F_-IgF|RubPZy zmP=uSXyY|w$`pjdzdMMcz`WSYkK6U$+`zVEwn_XiCq_>>)!sG|!l~vdbdscGIKVBe z7A$Zp+1TJVUBw!NYzFUPVt2$cieo7`7PF;<0Xl~X;krawwUR4a@P^^+J%{5R>r`b- z+uct;xc&G|sf4NBLW&BKRRC~o0!8=(QRym?ceNABSIjYLm&IFKn>X_= z^dn_OEQ}v8-dI?EnmM?tj2u`K-L>j|&C0rD+f6NL5SAvk4{ZhP-m}Vp_`lVbSS$RY zYyRzV|AvBRrFXQ=&aw6eS||2lcsE*57Q7EBo)9Twc}^qDN^QG$9fenQ-q*{z5~!R$ zJM1s#5~@ZKI<+{#fJPZSM2(;DaDyu8JbNy&b|$acS}C~&jY`U}Q97Hv=e%~&Dm0Qx z3MV+hepHRVqq#4aO zQcC?QHM>_z?SY*RRA5;1alc8^ZIWimW{WH@@@jeo973*nDLOUvs`4Q zZgZI*34H=C&Xjm5%f02G+xBp7X%Y1Z4rNg|4xaSs0ghKNHXwX=w33KBKhEq%%t;*M zokVO%OhXPz;$W-}LWX9T0B+p5Eup)Pv=?7*kH+szk485iz3IXlh?8ilAuWupd&X3A z_n*F4;^^e|IhvY$hz3(hykXR2$?M?!mBC&4DT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_programs_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_install_programs_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..6baf321f47d004a6a60d66b905ef3da2f7144615 GIT binary patch literal 2044 zcwSYNc{~%0AICRODQ9TOnNH_q&hkXaToXc>TaLDrn<6~Om?Qj3j8)FUMD96q-W6>_`be>e%^n*0YCr{@DGPM0KhTYe}4e*;1{s37N}V5*6)`b;0uwnj6Hc86 zDQ|E^;9Kv83e1e`ZoVAGcVttVVMfAgjGRmA{)}F~5fV{my_5<-!^kJhxd1Fim6eob zLD`$ZlCEql_9jo?C^k{MWmW;+YZ{NZq}JnMY4=y;SLuOpfIGzs?;iLHwNPsMWo---H@eL)M~lD8IdT#?xE5Mb_tg8g z%eTw`J@VeFTc9|tIcOV4h;(n~lZ*=jvf~}pyPf*14D;IXF6^G0=69f&EkMp??)$|C zfh20O$<@MC?eR0;5uW;r_F}dCBg^aI%LzP`DRWK#4==~~N1EU9JtxEv3YyRgnGGIXR!Fa(fX2X8I-nMCn>!w^oD@Uw?ZQS?R9jP%N%07}~ou<(u zBf$QsJ6;59^ihOMbt_#Mh?AlA6}pz; zM{(5*bOP3WAe(89FU{asbEvWTdA#TBb-WxSMxX{&Q)ha%@P8DaeY2|6D@k$#*ap*a ze;B6`dSA=5i5>)00xKsA-LX5)!SO=h*Y5RNSSggYgeT^f%G#^VC}hA2j+xea^_)0y zw4f%g#F!>o367bPwN>b~FK>!ig~B>O5egTWuw@%A)ZEz9i#g+ka#od$AoZuL$kA81 zPbd{Fsk0&e^J_hinKv!KkeC=?=QS+k~_^qs|QJBo--w!Pxd#M`4Y2yP*a2-LJ=zpd6Q#w~xD{?F8cG%vTfZRa|erh9*yZ6Ir0`8TdP^ zl+-4ya6Krh=eb=?a-2G!O=`Rr7~?F$8Q})FYQ{Jx!2<-{+A{Kqg2L&Ib6{s5O&V8u z4Rt_`Ng%~cpP-lB(M+*%P`0M(C*SaaOj~()yEysPpDCzu;nIH?)s}ZCUGJ*)_ZxMV zYDc?si+Ck!kRllLU!83H%!eyd*O6`@p>C&j(+`_G2`eRVe6!KI=HSc1y}cU zG6x4AE$kf93L%yo}FYB z>7H=7y`)sp3uTmesHb6F1C}!b#)SR^u&uLtwP+h#*(c=y@jfM*aeT!u!U%fcCRkiC z5p=83udB?*V7NL?#>t3`Q7g*5s3k>hrRR_dI<{JfQNXRz(89usW)#s*b#{>+(oi_$ zE3Ysc1_$K@O*Z%%bZvjI*yOn{jad6|x;_K{a4j8SU9ya*<+eEefc^Ha(Ipa8s=wRP zsmZfF%>Q*%PubE}jguh`UU3DNTf3C#>61lX#aC+qjq!pFZ;|f>ssN{E|p_y#DWqT!TP8ybxvMlgk;O)M+3Hq?YDKKsAs=J?j*%+`IL*D_ z+Hdj=sgNRv8~(IVz2u`C`RkVo%JSdyza{3IcrW^zO6Ov~k3Mp|kaop8s5!Vyz(;Z2 zJ`pwd6cQ2lVm{3>A}VV1!@lJ~(Z|bEZtNYsSP8R=fxJ}1l4xQ4N5fR8ucTLxl7%%O z<6FXdY)J$>OdO4+n6Sd$?(x~oFm3;riXUYE2*%Q{UKsqmKZDUEe}y<9dzQH7y|DeL z+{hwD@5=7KgK;6HgSQhR1ckS(|E9w(03EJ2dxLutMltj+oX{oQ;CgZGq0_F}!RJ9i z{uXyMFh-@_2MExd8cvqmRmvNZ$E##sB#AySLYPp2tNfhF;|W@6)4Ov!ki)I2_i(_u z@G2Rrqy@3_Lo}+IibF26HI!03o#$YaNaAskbl|Nkoz#54IXmql*Tr-x4@v1(+yR2x zl`%iJaVPyVvG#}8)-Nwlz^@n%@?Tp)eF9H-rYA|5d$cL_`rYpSx0g|BHE*ZB5R^uV zj9CXM)IqY$g*ub$wCY72O=@HlCi#bL*Hm^@4?cCOi(UjTk#!J>EF+B01jIK0000000061|NsC0|NsAb1CG@eT`L{@X6Rm! zptz*XtvgKs00000000000001ZoUK=3Z`w!@{m!o#(dv|>scG7ts)Jr7N=S+d2?BDx zsy#)^dVy7KueG~|Mpgg&z1_79AxW<%H9`)tJ+m`!-n^N#j{f{rKaB>_SgWOGX`6_8 zBlbnmQ|f7D%+qng>_X|3+}(vt1f7daXl9j$*+|7jBAgXHp7f^fd7F4T$c$x4QaUv~ zm8L9Z$LvSq=R&aU_532vM+8=SyR`2PIavsbN?XZX;`@9meb+Am*t)4zl^ zQe|y_pjgZB$4PYZ2Oi^jPvtjSE?1Tg_@VRioZd^jVOkv1Amfp{8vnefGNZJWMH&%x zlZ3pPAuWv1YY|8AHWgy)F|uDRDNQSD^LDGX*=!=70+dMUW$WE+G;D2OUD-4tz(%pK zOeQ9BvEgU7l7@_0_=pJKV`;3G^TLXlJ`85>F0W?Pz4%BUx|2!wV)n5^8);Xnuq4(Z zqu|A^V4LQNgb^HRmf0Ip3mWw&y?3zcz8wq)vyU#=v%&15Kb_Lq<%GI4?oMWd-qo-> zDLsv^CgaO#KMJWjzih77f_M#MrmW<`_+(P$g3cTrm<902>X(u5sMUBR7g;P85Ax@F z)p&&GG7~>~1#U8)6tSQtPiy8i8;#b{5q;(fGv-0_2H};tmIz{+3oaKDnQvACX$}jlbGhBIu?v1R1G-& zI0tG|Ud$88sZPJ~tr2duQFXxJYJU{Ch!3N+)V5#=st%93;OK2%Zx=By5%e}KT2R3;7%1E;?Es}{D<8D(PgV4xlU;`hdVF>#-;11Q^#!aZ6@4YWkYRgqcXhnrb2 zb}xGI8Ujz_+tmru-O%SsCC~wBB}>M@^1#@*-Chfq_-p^&HD$JZ6A<~0m|mL0&R(Q~ zG6o``?{*_(rY^aQY#We^=N=T@0mN5KA3<2{1v~=CZxw#cviR2(FPfd(fK3a|!FNls z;zcSlTQ=r@oHK)riql<_d&}266}c81iVX5ynV=A5NC)G|<@uyLn$qF6Ja{Bn95t)j zI>tU&U1q&M;ZR$kl;oN#oKQ!@ydBUduB$4H#Ts62TwaJCx_n&1Zd-yh7lzhjHINXVH=0$WVzUINAtOWkX+&1v*XB1Ba(>SemR2W}F7@rR>-`+aR1zI2Q zIjc>G_IvN(HPU$FHRZ%#pVKGz>jgzo^v~hX*p{ex51)dIecK)=XptoLDziIvT&!+T zAjf)0fU<#>OX;?QfU?pz(Khp{Ys1M9vLZBrBCKF;bMSM&Y(>A{`DwHcdzJ&KcD37h z8;OtreBm(nt4XERVXsjc;75DZC;k+)p|ZPZ41)d}fu4v%-B@;0A>ahoM^$L;vNEaw z&9^v&%xY(l6m)MjiI)%!T`|YyTIIAIxI2N|YAorYhj1bJof6e`@yEIi&neHmkjYLE zAiiH4kI|KU<>$ppxUGU~nPY5iSFu@la^9b9TjN$C_FBV*Q9tK_LSV&EmrLT9vQTC#cKCUy6H|GG@$ zdOYc$4gS76IA|aDFCw=;qe&%!f#*G=-<(Q={Xye@koX=kB`iT=XFcKR>?Ri@#wfY{r>ooeyn zeT%iTY*l+vM04V&l)cgH!(r6K!Mf&%+B@P5RcL6L;D7Y%JQ&?^?7p$$jxeKfFZRg? HC9ycYERc2s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_script_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_install_script_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..068314766191ab7a2b198c02d9ea3c5c931a3db0 GIT binary patch literal 758 zcwPba0tx*90RRC20000000OoE00zqd0000000061|NsC0|Ns99sA)#b{11VGsWs

    {mx%;V$}p~0!g)L6a67EnyzR`8WFOp zQl-iTCs+d<*$zonb$|QLkS5X8Y+t(h137$t@7_Hwb`Q_qY8eK=Nbs2;g$Dq^fc&7) zhCpyB+oPPQDHjFk-6_i{e5EB7L~((z0Z$h>)hIZKg0aqfkQ8Al70L5)BG_DQ&O6C! z)vDkCaeY$G7G$Q8!O;zw1m|7A+TM(9sqo1J-6zGb>#mv2m2Yq*YG*d+m=o_R|5td6wYr_?1OoHUo zS`lEJGN}Z6SSXspO&DKYPh#+gw{YV}kw1)YPhiPZ#uo}`MazanWe6?iIYSKc2vVv? z;8Pg%qTmWa{+F;H#A2aljr_%zdQqQYsg0H7_tf!@% zom+Nmhd|eCL|Tm=%m%2%(t>Q`$$0*szWv;5+`o}hahC4AbUbez(ielYiyUpFq<9Zp zYE6KbLW)M>bnBlJ+}JUDYxKRM`1#I^=1<6E`#eAzMT3_EG3Kpx=4H=G?vcl`ZB5H1 zoSv@B=*SE&EmH@-)zB&Xt~5{dy}_m%PW?G`^{4u|%jOK}N?EqvXbw01)=V{#20Y`F o=92!M!wiQ(e{#{Y?o9J_&b7XV_O;e}!;3$6SL2_JUl0KIEKDS8&;S4c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_script_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_install_script_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9dfad1be510d3ae95ca180587e4ca5a8358f986f GIT binary patch literal 663 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 E15%kP=Kufz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_targets_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_install_targets_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..61ea255b0bbc8cd8e996579904a41985b6c21f4a GIT binary patch literal 1181 zcwPaW1Y-LD0RRC20000000V^p00*4_0000000061|NsC0|NsA|L2BJ(X>THC!7sW3 zmS){L|J-;000000000000001ZoUK*cZrer>eb-k^*&v{#n3P?kEvUqR$|yEb$rdQO zfsq8pid;#HlDo$4P_i5N-#fe1#n(KA54`N`IWy3!#W-vIvg3p6A9h_%ZeOL=zsv3c>xP*oUmxQfu zNX?#Yg!C%QJ$*yd%pOWl+IGw_$ixdVh8KhYfUycUphG}w{PA;ay zppj~M*-WiCZH&{f`isv-L@7=p?fn1!BYC^vS!kTvLJ2@og zzWoS{_>cQ-cn?R=cE){gHGL4~;AF~isI}6*ms4ij66zS)lq;<%3COydac%oUTy@1I z8n4}V1e#;5CCpiAc(ZbE2ZbaKr4`q7x{(CvG}*Ci@@`M$!O1Ddk)q_gqv!kLhs-DBs^?;H4K!@^}j9G2l>N5mZb4rL-_dU>8Dci! z{K%-zPRhM|asoM3wvEADkf4rfTld_86Zq5*8~M^P-vW}i8IB3Vr8@#&df$TlntDXA z{tNrlrkaPa2L=8Rdd5~;TuT2YKI)pcpR0LN?8BL%hn-1TSf+#P@sz0YPMm(< vH1nF}Mbuj(Z8%NL5}a?&Xj;#bpbiah(R{97YdRS|AEKpWOg7OU68SBX;F&b3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_install_targets_command.h.i b/CMakeLua/.hg/store/data/_source/cm_install_targets_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..00eed0ff2c44dcceccc1262cc364895559d90529 GIT binary patch literal 1476 zcwPa-1v~lx0RRC20000000fo*017?;0000000061|NsC0|NsB;ozTHATA!6^pYP35F(QNZa6c(&6BwH-rN zmIdn&P}JEXDv<_B*)f9t?>kEJN4~lZsA0$w$$PweeD~x|`?sI<@jQU3RtwGYE&%k$ z>>I)x=xb%nn`y@ET9K`OrB%p)Z`i@4oxcefMh_`Uh$w zlUy{#l>K)OvkobcY z1R{A>BnSlCSGtElWUgbpvK=PHmQ zT+j=6V0I{uSdG+3g1B8Wo7T7tGCF@cItNpOf}!Ki5{PlTCuxy{v)dIolWrF8kQbK4 z8ExQtu}xsHW>kQo^Q7mF_rrRj3(F$T1cx0{-n~~1bx9t?m=j665-oihtc11&%Savs zs0&UWPzuA<$7{07m=0Zci?`@)=x0h|vsH=jzPxI*g_a<3{ZgK1<+|_Qb1CtX9>=CU zOu|jgg(hlIa#cu6WYeImg5AQ><3>cjDcjol*3-;mr84phVFk;k#AMUhq}yGgtNUYl z@0wRGK2?PL0+hFDojuAFK{C<|_2*%R%19hyRx_>Jw+I=SwX9Xp%(e~F$KS@tN;CuvrW2aQrY+f-6IhZspcrdXop zn9ym&o5KQj!UhN|G`1*&vD9iMT!3oT4w4K^M*j4t&a0;LL^6+xmu( zH1Eb2!o5ofw^Z_mDr@Y?!TkhOISI2juNtA=rKFm8AXmOSrY;mbeZY_*luF(%Xhq)S z?20JqeHq>clUdXojc%vm@I3g_hhPp*i+_N&?U!Q*CxNy$8>%oj72oANX+u-P3+g!6 z)Mk&+ycRN1YXgJPs8vGLE7pSeip!UtYsRufW)JvzqEmRFA-esBOZ#7Bu&VyPkU>9V zG-ez>%0RR90|LTrev&~05MN%R=q$K)JR-S{@fdBvi z00000000000C=2rjXes&KoEt;!X~X3m?8uPG1*A`S;b0=bfO?wu5k$qF$+7Bkh^#z zPvx4_elW}%-tZm(d;mrh0LT%KinYX^aL{RzY~n=3=@LaI)3waD7zT(p?a0{r_Z(hy zYlcHC#LC+Mb{i6d05 eq*WME_f1Ezci29~7|HUr~-C|D?UHeO6HmnGhCPydAFTe73gMP4!>fr>e6gKy{E zHsGoK9$pY@XyKcz&Kkw@j`hQxGTv!h8XvED5xnq5kM5OeOr7UakN&HjbXS_~$=WJ` zj7iTY*ev_g{Q109AG1NAQTQ4z1_i0j>Me3EURif%Pw5d03QgF{9jElirLk*b2%Fio z$k;`$2kT^fb8Q;7NELo8IVrkKt$T4_N~qz)%9m-yJDO^nr41)u*V%qz#ck6*Z#Ugu z#jLlB>;4~kFaNt)Swe>WxVq#2YUaPaUd5VC%T(4?{5JgHb8p{Vl}V@9KB{zluuS%J z5zBsywKESnOLSe?ygl#HM3E@1N2O00TT(fBeVUzmvs!1S-&of1zDF*XV@Xp}hUAZb zReQf(I(6ca=hWZkCo7)pUoI9hHKC=Mr}JY_^)~b3Nln=oiY}J096Pr|?dWsUM7HmT zpFGQ(=1}pQ;d`P?`}UKEHP={*Zc;lS%9Rnh!r(?$WD&EGOBd&@rkDdiwEFURwEh^% z@J?pG{pPE|&b_nz9{$p66HrT>!?XCNMo;_*Dyb>QJ1&F5zgpC5X=#U|lTd>oU8(c`wf>Ge8)8%44X znhU$NF0^`}>lo#`ebxrA9xW@5Gso5k1S+Mgl|~uGE+~sn)Hgk;lkxu1*R9|64(a^X zc=k>AzPG$@;`YmxbAQ?^_Hg`XnExiP8J19iU?woR?t-RPM-T~0uDp^L{lr}2jMsV{ zUu3Ks^jRQBpcFN^s`l*VI^-bG68`2B!?oy^1qy1@1?t5%UQ(K?aYO#Opx+m!?Xw?v z|MGj5p720AO@iSE;~6oA0L6J*BMt?AJW@IB?PZ^(m5r;G)VM!oe9ZANk$Lwq{>MMk ztj$@s2D-*GpV_`Q{;+1?)43LZ_hmg(Jw18FX17@dGBZ^z;^$v5nWyR~n-#bCXUx89 UTQ1e#bM-zwW6dIaiHW+40Axj;761SM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_link_directories_command.h.i b/CMakeLua/.hg/store/data/_source/cm_link_directories_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5cd73ac077eff9a679a155a98833866aa4b1fbde GIT binary patch literal 1560 zcwSYMc{mdc9LG0IGHGTa#X_RyF61aSD>qq2&`y@3BgzFUPQT%NFid}DZOH@vByMBgH*gWjyPrKcv9FUzv7ave#0A4=p9o32g(PWl9#7;qP ze0=zCUn0X6=wT=goegxnkTo3NciIr4Ohu6MSZAZ)K+Sm6iS;<7ovQ$Wo)lBA)@Sd; z&!NZLs9V+XL)UWk4|0z>$3ko(PMR2nP4n^x!IM`9C%z0$Oe2P)2F?{?9SvCNWl_OT ziJ1)E$kWwpf0f>DoXPAq0NeuQrILhKkNlJCp6AbzzXM1>Q-x z-e4{^DZOLdbmg_qyWr9HA>H63R%L7&DeqQ%Uh}0D(VdQZ-2>VR1TL;fg&hZ~T*RVH z7j4c3u;{^A?WIU+1SuC47`~%`YB{v8^s03A9*vhJf^LN|vYl^y&#RRjP!iCwY23v% zxS^4{kwd4#g`Xm+i?PkJ#q-a3Fa{CIZ7R(+-cKZ(prrKKE!C)%k26w};5ZYEf=s7hw!$$o6X&5M zVz{gq{`QVb*oZLzlbzxvzCA7>Xesxhll^(zQT`MGi&AepI~6lrTq>V~EVE%-a#f#=# zDl4EQdBsunoVJqjohmPU56LSdjSAOXH4*D-URY@{v1lvebnw^&s3*0szd>@Vp#swW z@UCUM_sirN?Xpu6Yss?nuf`aqu^z$*Z?~S}2SBztZ|#V%{J}j=dUBg9Y4uz}Vu{lj zo}(5;ZxMFC2vc=~?^>r}wq%=Nk^z{_pywAwcR#mwCV3|+mNjUko0++yI9(phiciU| z_)5^+`L7Y&qgBd;L$gAuk`;c#kJYX_VZ);w16mJ_%sqIl*a|!fo_I{&b2!H56ldnC zNO`*MOSIIhlLz4aVC=eh^kQGlMa~m#1&ji`{?lc$=oFk^6STG(V{855qJW%lP9_MN z@E*GckHokxjhP&yFe7gAhR62Xi7MB=05L~zOX--Y*zY;)A5V#^W-hC>d6y}*_J8xt zaxO{hr)_C;Q)^LzGnA^FiI4Z6SbLGgy=Cf7R(6dNb7_HdcN({}kWk8*V_rN@q`yh3 zrsfbEYJOwir19zP)a`XhRSWddg%nyZ%XmW=j46NhpZMQd{jPueZ>uAJ#1H+AEqZvW zc=wQ3{tn6XzAH&m`1yiA^(PFpTd}kt!ZT}gz4;N*1w$W+uAsuO$s`qIXBfUTbPSKV z?~)lIIo(rvd)6%LoP-cbq^ECTUIo2w7aVGdu5TMXP2@NCes$YNdc=4a60r*>OX7^^ z_A2vPhL(IvL(`&jwkD^dmq7byPm8nUy4R)6BTrmUNIB25=b{^LBI8sNp9Lj{n(mje z+qxxX9we@DO>XmE`37CDpK;xmCJjeRTdYs)Uw3A=U6|*$8tj^#F|@(!>VA8ynqe}E zqYlJxPi+$Iyq^u`LBhv4!rBTHkKaWrKVhHd!F{lx~Tu*?_sqp}d=XY-2h zbA9U21LTs6$9a^w(@lfv4j;2Bwh-qu> zP;{I(U<-SV6H`93uRBbA+f+ZQ*EJxp(P*VXFj~LOR~Vo?=fF%kuDHolv(>jea!1YF zp&PHBq<&gqj!k~Z_?l6a#9Qi5Oz%#R@!Av+iSe#6U!pHMamZI0T@RUfY=jeXDs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_link_libraries_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_link_libraries_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..eb92ce12de982e7fcf10f0623a1593fc8aea940d GIT binary patch literal 1093 zcwPZT1iJeG0RRC20000000S2Q00(3M0000000061|NsC0|NsA*E!UF0IOQ~oE|L7r zk3cwo`U#o<00000000000001ZoZVDWZ`(Eye%G(Ksl^~Cv6N&;F{n)dRdE}kc4F8{ ziwp${S~|%@CDI@%J8qEw-lOE$Sug{8=w3#^w8XpbySwj>3J%VH)p8twv67`?bqE0Q zh?)tA|{CAM%-EildHY zT{DsU+5P>|5?&K($VAz&(&FO7Lpr!*rXwMm?)mii_)Tzp7Mz^I$ys>zCOrPLg?>h* zxfEd=5SP4rIq^^bAT!xxxmYV+&JB23&$67tCvH|u;SnSv^X;x%dn|>P%J8Q40ivpc z7N$X=MzzG;C$=f#j?p*w2Bdk_~b+j91#X zxzS4JT!WTHn-S1+&b3i|))>s;OOjsQ+@=s+-@%t?GKsF!ySK37W-c28xI_URiZ z!3p$Q;U3yup=p!=qZ)kM9z4=c39>wg>M4aIE8*OV%ZydH>pK%57gj@7!9vl+x`z%+ zZOn1jl;n}OE;Yr@Em}ZEzZpWKF(+qg!`@QDu&w1AH{DeQ4(DxM{tQblyk3_tRS3Ur z3@CCshQmYtyhL7rcR=8CaND%p-Uj%v`6vG^SK+muJGv+5ox2@guKO2LGy|om0yiaX zzINnaU5jmM6b9->8(VB4t4gj&f!P||Ey;`JvW?zrcU#%EJq4>Y?oJ<_=XpGR)%q7v zp6^Cy?eYFa_Kno^dPn=B?p9W(lsK9&yd1p0{kYAci-i>bxscng{#Rmd1N;vJy&0#; zDEVt}`46JLQ14$SKw}PnBeT2n;yyn*&QJGB8SDT60009Q000000ImQ42YLVi00000 z0YLx&00960|Nm0Qy?tLGPZJtX@8Be%T2hUT%{%}A0000000000004NLB~8l;!axuk z@z$gG0dpv#Aoig}UBrue5Il&2_pvUr*zUs4wD^zylxqzH5)u*s_yF{V0B}UylW2t< z;=j(*bd{u8lFuHf93e1Tk|*BEMJ5epg#ztFskp)Ran+1V_zq8 z_vDS{ovUlIk4UMbHDahb6Z4qmp;W6&aemWj7H{lxi>0$HBP9RiX_z{^b=gSxy9!Ce LIGRLX&c-+&P|g9g literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_link_libraries_command.h.i b/CMakeLua/.hg/store/data/_source/cm_link_libraries_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b380e54b9067ea9a54b6989df8e02a9984909246 GIT binary patch literal 1452 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_list_command.h.i b/CMakeLua/.hg/store/data/_source/cm_list_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..60e96f04449c44ab45db7ff426d765842d898d62 GIT binary patch literal 2365 zcwSYNdol1wJdb;T<8ON=I_XiOnB$~~7d~6o-}mEr&hrI;01)sGoH78wKlbk%0PX$(wOANG zJ|w>?aY)LzSR0x69D{-Z|3_#}1;!&#R1db(+~SEW(<$gq{YETB67TAw1cMPUe=&!J z5=~ci+*@2#qpPp|TFV5})m?ff>xd~t^?g`i=kzhHfTO!xE_qUb2=3^JEN%~iVBV~u z8&iof4LW|1A&bJgpWUw};;h-Nt$~v9e>`;>9v?lIw)mzwaL-GwMz~9cH?q@%SQ|Cx zt1orgHMRceVl$D%vvlXHIb&;XL_s0Y>5;-FX~<|i@I7r}o1HI7R;x?BG)Gdc+r1*1 zn>&TOHsSESVs`aSE6A``rHU;Xa1Tk9`DiIRHqqX+q;&qsrBE^nI4s@T2JJ6*C$>$& zMvD_JiI}XuiyBN3O?&24@!|5JL0&BZCBr}$Q@SzED=W(in1y=!K!i6u{X&H>-32~0JZ=hBN_^5lWx=4i-02m8 z{y2$k`_9HHSys%12Mvs(66{-37Q><)PzxJse$~t$9k0GY&EUyTg+=; z^z@z^=PM3a`^Wp-N(gz)SN61Xl=j)rLNShsDEB36_?0$naT0DBrZiQVtale_Ffjxs z^HExX>U>vy%MsFM24TW2A5_`N&($>G9n87(CGSdT?1D;H5=|;=e80ZY_J70-Zuh#@ z>R_YKyM;nDenjx+5ro^}+rqnI*M5cf7`0**ZxT*Vr z>h+4N%b5`QCiYs_`;mw@VvAfWVQb5~{jcPcLQuF87SA>_+bUehKe_E2v8jG*e4cfm zm2_6!lH*EJT3?&%L8;7~Z0&N7FWn=cW(x(o4-Z{4s7}ftqx{+)=kJcI`Ys`FlJ3sv z(R*CA4m}l~dQ~S8Emo&vTqaQ?IElG=4n0~Qeyu@3R!2JkZzsGWw~qFw1-&~j$2*r~ z*+|T6`dX2DOoCL{?25Z^jAlYibMk+VC`$eTiR~1x2%;H~+%0g8b2F&USMd`prPyrx z)6r5|V|G#EJ%4I>{F5GMpFlxYwf_d*xyxmhaohsGX+B?RA}=@Vs@Xf)G3}d-mttCe z%uTt9KEYd5i4JA^2X>b^Pdo4!_@fi|h$pSXFNPtOgVZ42A+^e&aEi*}7)T%t<-@Cf zMmISSSM6w9d_FjvDqY}s*#G4Q<>gZVi>=IP1NC}_FX4w4p>7Zze1`p~VK6LE!#yw( z+BjYMS&>(G+i$bEEbkHAD#u5^ZIU}PV2mbHclspqsN(-ygO zcXiPAd(U7a>~0c^+$Lgo{V1U^s40tO$te#iu^E#%&%<&86NQP){*Hm$3v&kS z!hYjIuyqh(=h;?qyJ+Ept?_m z@C*I@eJ+XL2?_=P0hd2U@_;`VsyM>p$&6=N%z+WO8K&~2;s&!S;V?wv zIW+M$`mMK-4H_*36KpX(CIyP-6HBvkjA!uEh6dwnW?`%-%jygACD6hsIZGR#?b$># z$X6xCa1zXu7hlZLX;*Rex`esjeD7m*FpO`S9id{@9{{ilSI0zc0^HcnBa&$KF-kQo z@zU5Sd)x+T9emgZclqd8~pPih9%GZP?7Ra^wW)LA$h1CWSj> z=60`TbpT)fin(Y~>K<^J_7l{Dm(qQ(Ve&rRx1D%_%O4;cZ*P$JwNC1*h!d3<+~U?x zDYUZpXQ55%!<%Po0+2o_1sl7Y`Q++W(KY%l5iuq57+lZTJe^+K*KE!c(aX5E))D7} zFOANX!F}9&y{}QuN<~D>*S&`{W)*>}R6Z}BhqAsh$$yh`^!sOYXlCACjgA+;y@ON# z(O>qfv$TJk02%)Zj^CYi9$Q*sZgF(%=eN_n+AMu}0hb0LiFjE~m&Jzh)U4>VZhn|sFfm{Z>jv192sq_F9Q~97 z)>K$^I8k C97y*7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_list_file_cache.cxx.i b/CMakeLua/.hg/store/data/_source/cm_list_file_cache.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1afb7556de19f34c0271603c7748ea30062debfc GIT binary patch literal 1868 zcwPZa2ebG90RRC20000000#^J02?3x0000000061|NsC0|Ns9Tj8~zSqtpp;bbBHS zx2XI2oLDXZ00000000000001ZoYh!cZ`w!{e&<)5xU0%eh#}oum$Z>6O?7Xhf%q32V0M;R4Fa)D&$+>LyysNk1QqpS97-~=r%lxO(fAkLWD z&U{{;!Y_EdMc61JBSp|SIKYLsM8?!eAHTn-R{yLV9aWD0f}@wU-(J+JziZO}s0cmI zYFZMVdhw4V``0RN<9>rrZiP1*OE4Wvad`p%cydMrEklzzw)zhBeuJ}+3+Y9H4N&)e z&}1P98d5Q(u8rKfl&(11axQ@j7)v>+RVuUD%yt5_hRwyO^1gT8s;rKVW#9wa3tTFR z=ZCh^4L`lH7edH~S|h-B7fmF*K_saQADX@QmsdTgUwniQ^-iaL(ffD|Gf$3rB!NyT zgP4mPBW*D8JtRU#f-rdtdO7 zq2GUV*=f};-ZuLE(leL{G75+?GlRpI)jz6G*@p>+gg5YS(HIUFf;tiiu8defnFMte z%3N<)Dh*JJY#_9W2WIYbcc#~LvwEpmRe15JDsD1&|HeP zw9a?>TTmIH!H2{T>9Jn9R}oaHU^=3hAhfH74q=#sRG=1H5ng9E`WJL&TE~e}`cPVI zM$1znxG=NcSOcoof%ramFb>!#k!D!OUs3*Yf-$UASC_Vzrde09OZATnw22uz0~FdQ zOZS%gR3;>eCOh2+t*N3NxKdK5c%uxP{V3%!+b?|;Vpf4rB`k`^oCq`clpeY?bX2rV zly?b`97By`rU|uyB)_37rpE+HNuaDHF?$}KV6pLrnEHBNKsCZ^cTDe^YdUH-)zY*b zkaVf6-WroBMfdPMrr1gm>8-4ldrGnWSU_(BOYwdF98A4k;C@{+a)QtrmgonX zm_yK+OUnZCl}<^ zSbNM?re!;Q{Y-(o1-1KJtY+eFD^|NA^^G`fMahZFJ;eP$9;zn*Di2e3dmCgs1GW*a z`_kgu8-lqymd@sdb*h@GieD++abvKdqgshcs#chsSWmdBa8e?ivF_Z7Dz5ra0+l|4 zJ7y@|T5XCuT)fIB=#yH_lku1bUb-20ol9;5I`WvA@^}yS@~5yb#xrnm;1v{?3`#9N zqoP4VYI=t!suWnNXc@^(jN~l8?tj7=Ne?w@6iH=0<#{*}ppUt? zFre7{X_L5^Cp);Nds?3kb-PPh!N`(pER~P#+(&My6uZ@l;wn*)#2XRLzf7vuDp9DY ze&nmiGBg4YCuf|Y)Yze(*M_;u+&kv&Vu#B#zI&S*-?oCLg&_T$7G2h3ZNYpQesmGu zwNrWm@ZvyQWitF7ssHa7Ueo7l@+P57+WH5Xay7Djw;4^lQAhoGmMsixnJ->?)O-eC zzO3c22azv~dBr|Q9NlGe^;*^*Vx~aenl^J~Db-glE5{-M7gi`@J;F2#hW|eO%@k;8awB3BXAf2g`3SeR2FKT;S?EY7O9>JIHkj2urs zX5@3;!acqvu`Q>I4PLN|2Na{f)GCMRWAM}(A%c7u|L=%eV-M)YcHP0IrK~~kOaB8` Gu^7T>gL^9g literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_list_file_cache.h.i b/CMakeLua/.hg/store/data/_source/cm_list_file_cache.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2ee710d7788921366144be5c50c9c993a99f44e4 GIT binary patch literal 931 zcwPac16=$70RRC20000000UzH00;E|0000000061|NsC0|NsAopm7Hl`i$ApGfYES z-f%)7MV7Gu00000000000001ZoUK)1Z`wK({hnWO*G?5Mnn0)SJ%zPWme;OmwBrT6=8}{l0K}K% z9}0&MOQF=^xFC8aWC><=#tI7WDW{TXArW>dvZ|m41urM@)Wkzb%Mnxh9LF(9bL!{a zCA`GNBf{qunVaSDt5-Pj7ts!jXg5CU_5KKY$3edj{iE>po3M9mp&zMKOz_b1&?R#( zeZT)FhA|$C#dpc(xrSESHd&6~1Jf%aX%~h(_06xc@mO#rq-Is=14Kmu7N$T_Mdgxa zK4zOzy3Oe8ZyJPzTyj4I75RZyQ?(K;L|X8R|GdkOCn=iSykJF6PCn5;qX;Ebq z_R?~y3D1bkhHgsv`JU$moeq3X3!>C6+yjiz43?1U=S4T4C{s}kYf1Mb%2=~g?0 zkEEz*tKEgaD}g=Knvp_Ld^PLFMCYv@zKqa29Kgemr}Lmn^%U;`$aZKO#nDLL{%_f& z?*>gm>DR-WS^DPhzvz|D!q6NBK0knE7w&{8;JyoMaXFD4>sHrw?(S0vK1WNDr#5A| z)p_532Gx8v6&RLUd$Cn+1&M{b^5EnI{?#|9+p<2`UrBW(IkYrh0f(nnqDfMF3I_*u z%!zivwZ8+K;<1Vszo_Cxt7Ete{SRs7J~bv`;zWy`Pdf Fc>*5n!CL?T literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_list_file_lexer.c.i b/CMakeLua/.hg/store/data/_source/cm_list_file_lexer.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d6283c414daa35a30d8c205a534fb230b36f0962 GIT binary patch literal 16626 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 Bo4Ei0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_list_file_lexer.h.i b/CMakeLua/.hg/store/data/_source/cm_list_file_lexer.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4d9725f3cc59bfce2fc10b6b6839d5816575901a GIT binary patch literal 786 zcwPY#1MU0(0RRC20000000Png00+we0000000061|NsC0|Ns96#ZF=*CAWb zd6(-Nl`Lxj00000000000001ZoUK&BPTN2bz56Rhr3VPqhQOf>>cMrPL`_2Km?BQm z)*jod+Pmp`oPa9+y|Xrjia4aIYANyVzIn56W}fWz-v6)1aR8=9XGW9*00_q7JHi_X zjIOFT(?U?HO$qiil?B2lRA>Zg!?dwZ>H;kbUWdWV;sc1wk*w&P*CV_|VQ@9_!#2_MDx6-<&fK<8n^t_&ON98biAs}< zv1&>wwUw-_1q5-|xu*YSyq@Rm$W$emKKIN#cXs$#D(pZUx?7+np{mO@JYsN;&QC6O z4btCH%_myn!DbX!g?uSsn4lt=N;I2eraWgg!j!gzgtpzAV|&t5450}P#5tJ@m+lD3BTG@di%Be%csk3EMTc+vW9)c0;#jmF1Or+*Mld^ Qfc@w_c;?~#3v%a_QiAf0t^fc4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_list_file_lexer.in.l.i b/CMakeLua/.hg/store/data/_source/cm_list_file_lexer.in.l.i new file mode 100644 index 0000000000000000000000000000000000000000..889d8a78cbc8cfa7991c19fc9696434dc8a46358 GIT binary patch literal 2550 zcwPba2?_Q90RRC2000000137L04j_C0000000061|NsC0|NsBJhb%N)nM7om*e`+7 zc{>X^*hd8b00000000000001ZoYh)ebJ|E2e&<*8kT@mTfbH3tsU2TZMKDgNVB!Hh zS#R)CvebYoQnyxW88f#3`<%Y$E-udEq?QL8b@#b{=X9SII}erp-P3J-Diwq-eLD3G z_Xr`>x-hml^4qFZ2Ho!RH*kJbzQ6J41^N#lS=ks~Pbio}B>QDDS z3@^I-$A)8!~L6&z<3iPgg_K>|LYJ z&3?bx8(tryxy@!YWC-73BAKumkh-2@0}b%;4Z;?PPS8cW-}(SV&3Bz{XL!wZJ?{*A z?ZE(@f9j(qx@`7`oz_*i*_Vtiulkpt2JMD4l(RK%=^aL9>_kGDZQ?+f;!>_M;V>{5 zxE*ZT8u)hi0m_w%aF2kO8wL#Bf>K~z0N?{t8AUB*5DOHs?1?Q$ZbRF#xNrQ$e1?4t zO7%m6CJw$wj{TKeWd}#x`(mhG_k6(b{b>%JDTphT3$DPTFliovm^uK+ zj7I5|g`7%o~=43=}Xh(#3?Ks&+?hOJ6Jk(;$#!$5n19Cuh{- zafYt}cnAY7tl&t75?GHX1~Z&7_I>Kt^2&jMhT~APY{JJ&rzSqeX(M1Ey1pL2>$jU9 z!M_BcK}|FCeVa^W0wH61GYkK3C*J3LFEC$kslq> zub2SF;O{X^bAx$=qwgklLN}fX?7zg!d8gan6)DS~%$WhE@`^^L^jDsaD;16-+eADu@_GXfgyveg%OMm{=$X=i;d@q78MFE$%*SNP zX8Q3e@lDUe#M-LxGSMaQ>+n*tT(A%+W3XN*4=4CsE+4?dYNI>EUM6`p;TeW-)5UUH zp4oluIfg0Agct|w(^XUDaY!IVd46_!msi7d!ioV6jH&V6JakwMxyJpN8>yoaIO9Q$ zqtlI?3W+|&Yz*P^4J}S`y@rH{nDsGw+Ij}>0LvZfakD{ZD5QM1k4K;Yfyso%1B5OX zbKmePJ01ndV860+j|Rhjr}rMVt>(w}pUplRy&h>_n)QDh^}i14zmIQrM^Kk`b}E$- zLA)>spV!}tO3+{n4;S4ei^aHy=TV7RmX!*Qi-kZx*BFqkbBet^B`9K{9%Z2cnTLE( zZ6xp=Jn^cro7PaR+&fil#hQ`!Od~GgC`P)f{5;=`rMl#FAL-wsSD){xFRPe>!uTeQ ziM?kk+pz$f{8Z+@tg_mJLh;k%m;ay<8~GzL(nk8L(P&h?c^r)z`uZi0qiSYR36tGX zRo{K451Rfoo?RQ*Qv{@7HxYPE(A*6H-F{l3%FWQoy*Vkh$9tp<)A zfn$Y7HE=r7bqTBTE%X~)l9Hxs*K=8KQiRe{s;lcyHO{6XM*FMVGYDVYy%s!Uj_1r z7#J>ACs$-o5cC&;ee2*zs6ElLAqH!8VeNzX3-f#ky?LWdLno0uajH{}c~Jl1{AzlO zBFma^qli2IWKETPPnCdZjl@Uv^d$cChPy;xxu`G>EDthMT;pW$NqMS=X~Jb>IC~ zLnK`k_uMX^jOTY*`J%6Oat-v=A-0C4MJab!OR9@V zBvTp-eG>6v;}U>D4+)3dqGP2`jKRo~tfc6cE`z~zJQUuGWd~kMvspyrd5m284(Bz>6+Fx#XeQ-vkS|UL7i1o;!2Wb>1>>G1$AE{ z_=U*kgVV!vO)q<&pg_PYP<}>Nn=!A?bdsOeqs{rJLX}P`LS!`*G02Qm>!o<^Iti;( zixJ%_mUQ{4a&#|VJ8a#TWf?R+!wzP6Wd`L*pylEZJ?ML4!-b&<5cQYPzw8xQT9-`@ z$^;gwxw)E2nI@;!hE&Ugho;BN1b4yfUhjI*#;xCw7dZ? z7R@r+m36r6coKK5{}(VSz0N9@@&RnA>$dV@A}y=TcA>D#jXbx3tAmVQ!Yn!(#jm7G zZwxlBjzuN6?`emUX+fj+n6*OR$AooZ3wp+3sl+F_>#|ah{BSc{Vq4vcp~d<159c;BXPTT(<%9vv=JHGIqsVVn zLfH&7uO6=@lW%%clyYD_W%6b)A-3bO_4M)U*@RpaW{;0=NG{%@CiL=$N*glBztv0F zglYsCYRTrz{>ZU;;fV(6 M%D1e)0oRK2-x){i1poj5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_load_cache_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_load_cache_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cb7c1f836c8637d58f7b1b82c97906b80d87378e GIT binary patch literal 2491 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_load_command_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_load_command_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..fef66990928af500ce290a05d733bf5862add7f0 GIT binary patch literal 2986 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_load_command_command.h.i b/CMakeLua/.hg/store/data/_source/cm_load_command_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..865d1ebc1b27da24bbe8363e95ad265d239ad4b1 GIT binary patch literal 1358 zcwPZc1+n@70RRC20000000ble00|oa0000000061|NsC0|Ns9i0w*;g4k7Dn6q-Lp z8{TBe%*)jP00000000000001ZoUK)BZ`(E${jOhe;TA*UrgD;X=-^}lG{sqr`UTrr z5v+qjQaXsNSzHFF&@fF7XFfKea!6Y=8K%4EF_Sk4=td~U|0z^td8RozWC+tcj zA!eHhvCkO#zdaZWnfJ?ftF>OQL!Kiap|OkBEY%6Z{M0-w9n$KlfyqQNtKj>h9?Fnzv(we*=OJcyOhP-XEM#^y^UF$fb` zru_y?3jNMFe#EHg*KV&neI~FE-RYn+nZUzv3=xc?@w6L1^`dc|Y4kK64JVzjS}Nsb zbF&h_cQk6_B^Rz-Ol}CYCM7VByyL3AoBo=u;EhamBGQx6nPtHnv`H<#WyWyLRgnm2 z@O&q@Mi8``P58nUbM9nl0BD|DiG|6C>jMV04VJ1{NR2M!bt)PZesUPW>;F=FQ%w(s zw1RKfg*GgUxsn`qaD$hi`qakmAZ+SUv(k*D8Y^ji!4%fgsG5S~_?3O3zSZ@^GNy(1 zo%1$(6JlkwI6JR;|5Dzq@P*Z&#rh=3o6_kuIE9BZrAUAo>hb^qnNn#TDpqq-XfLcF zTB=}jEZOOy@Lf4lv|oG;dv1)vS(RQgH9`*0oKM>Am7qo6mhUt;dU02=@dGfsaOXEi zNCjw?3!05XgbZhJDY#5!iEIyu@SI?f3INZTZQ{P?2bd8_e5t8xkOF3P>c-701|DLV z6r7_lJtT$~xzN6zoc|~?#cfX9ABLRlTcechk@^_eLTluvT3FcFcJbfH`ZUe|57k4V z)Dft!FjX51Gyo2XIg5w=el)nB4WfPrZk6Fzckl;3t|1J=KhMAD#x{_;wve>jp}DMr z+DE8PFv~OS7)hRil5@-K2K8rL-DXtYE(^;3pdxN?-4p{0om_zQ1~|DYEKU7Q=5x@j_LS$hLA?xUWdvT4%5v= zN=@)IQQM+e0$-PO$Wo~aTDZ^CO^>I|p~Qr9DK=-bTNbRCl_fT!COP1j4)^F&XVx1= z_nrIMmZsZ7zU~hE*AfrMd9~#ZD{v;Y7A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_local_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_local_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0d2c1b586bcc63b388895bbabb6a755bb2696b6a GIT binary patch literal 31827 zcwPV~K-a$j0RRC20000008YpN0b*1D0000000061|NsC0|NsBI1*qSUkx9kg4hm}e z@)3lXoGqgO00000000000001Zob7%4ciYC5@bCI7ASP>*dQi68?w*w__s|mMu+eKt zDo!@eav>6u5R(8)fR?qczrX#vk9lJNf{Np|d)DW)vB8-;cV_O~x$oKAI{Z?9Ha3Fb za*^IH!r6Wh1V?A#`zY8AjuvT_?Osm9{3cz@0{nUtPov;Xltha#PZ!YbES)T;5%vnc z?H>*B_x)fzJ59&oRJCi5KYrZ#5PS>mPs8MP8Qx-#qwQ_@a2)2`9RTp(Up#yEZ+p+5 z@4fif;KhsmKmFVOAO4-X{tzv)I8F9xsOUq?|9IYh@yF-zJ2W^-=MRhc_AU>a;}(K> z5qux#_u(Si33|!6jsKs~??-8prHedX&e}oHnN9=hmIaF_ixwZENgJRIqDVt*=O6PR zT?BV|KHuNlyT8A0k7uwR?R0Uw_ucU9bWbt!BIg15clcNbT~pmY9H@V3+Mcg}}D9R&ArewQxuAo>s`3?#pUuCw_x zhCTpi5hnRVklqAm-Tu*c(5dsfciJ2Ngt(schUeYEAUL_`2c6)u(;xPZu1-6B26TDV zzq}Z9+dNSO8(ya$qF}5RF-h}y9Az|>S&AqpNC#mK>kf1JV$`>_xA9G!jHk;<6f_E? zbJy6geipw(lM^7dLB5E>8Md*SOw(%zg!wZNK^{(5{*LgoRgDJYMLf?}wHk(t+o-&i zJXr4ci^U{boW{xf<9HE`p<^6nZks{6T#Ta=Pw!!rG24ua6}(k8{dc)zz#;IZ${noql@G2=;HNXx<|v&dFQMgMKo4`>$jjt~kFsqNn z23J|skAS7eAEL`Jzsrg(fH~g8x61`^n8I(}S)5-b(02j5^g2$$#ly)oyhSMaVrk-$ z$#qq$S%hXGQZ+0#fZspx4UoY`E$6z`XCGPozY@BbMAImboV_O)AJTYIxVrZD6 z+hQx2FW@#xm)Yqp;Kbb3^M^-#1AM?{Pt6v6Jz6f1xLlm|8u)t-%6baYh3;^!@Zbj- z%z+p^-S5QS;0nS6hhG;FG|lqK{yttx$!&n^k^$$zt#u9xpfbqAMSii&=gVAjrw7JX z_1iuSh~w<<(?pFvab=hTY2K>=!UyxKskTUI+mHEUyW<2p{OfOP6MYtydDB zS`*x)yLdVQtefUKL+dCU---6H;4rf+T0Ox2ew>ScWRn<%5d*fbquW>vfxw#w^!ui6 z0LubD2ix25y+!Bg6a7D2TFuSo7JfCkR7)JWPaEbz)7zq24wlz?n+eQ;=<=EV`x)lU zlRmnO#_xmsy9f^kOqtnKFeiqYfk+0savcTB444(pA)TX81Y7aI{p}v@D(35A+siJJ zW`i%~t3h|v@1Aysy&t-x%g*q-L4!%i!>F14K9*Z(7S^ibg~WIrW{hl65(_hCBu7F1 zK}swlkfiwl^5txvCh!vrmav4uwOBOSsPQ!T?oh+wQ z#IWf(>EER@gSoVP{AU27bx!?xFnM%$#JXA_j?`QT)Ne)4Wkip`&xT@!wxxdM3V6tf|0Jt2k@!2`;EM!Pf1qDek&I9|pI#^3KWB z*}Q}G4eZOpvqG1PbPlHxes8wg195|sLX(W6=It%t7}m#D%Xcjf+=EB!<_A!EOiO^e zJ6H#_Z`W&xeZ zKkWWE?Do$)r=zpMW&Z+oMdbLi5G9>t`VfRSH?Zs^aR&G4;(a!URggfkG?=8x(>%Cd zf*=xvAX%rsLUYpKNH@%tAOL4D8PDd;eD@UzL;6@Y%5iDz1TX%zg%f(_N)2PU%JN`* z7m`3v!=fyfgtJI0d~)at4M*rCEt(EZ7%w=I@j%S}5H8~IdKxLl@k#xyI3!FgivX)h z8@BHpzBQG&A_bPfXjCL82c#?PRFI~mKQtkb%q~b1Cm(E9Ni4(eVAwlHYeDDrY4^C% z3QRg#01H|q2OAO#SKWAws=?AZ$>W4x5j$WNfF5EtI`6(6om}+KIztCD1?dRqjQ=Bp z4CyZojc_#0B44j#z)*FP>H&B0TC9MWmwA(iFf<$dN~|`WKlE;nV>l})L^V;i<9iQV z1TS9(jc0XJfZP(&UCEdU?L7wHswE|z0B zX;HQl#O z@3!nF)<1+EYBFco(!9r(!4u{g1hia&d1yB1@XKrAq<7kFv^2wT;8|=z9yigq`L038 zx_z+8yM{9n%>&d7Y?T>LEGXhz2(9ee#-Etk`TFkf6Wo!y!Q))1)$n(Oi2!zAsoOl} z>zu!;+Z;ce^A_-_9RS&4u*P~QqHWkeUmY&855uQ8GdCL^ndm&2l-?` z*F$lpAdqORV7l~gF<}~|v$$Q(P|ODL)i61TKiqt?q`g`gYUYXxaJBzs2@5kxmvEWy z{&ksxsD^f!P=Y{72H3{~9n?j%I}aCGG|}D1=>l0DhzD?Zk!S`7RoVC>X&O;0?<>8u-<6nwvo41g8gV6)g#f zfHJiLgu4*_wotN_;Am~tKfY-;x5g-vJ#9Q~wTxBxWc*#O^3!+ko*Lw#1T5WRYg`n+ z)E*gI^w~ZsUZyafN#1l8&I_A3mxOIK+X`lLqVOk*WK9+AKuN~b4&=i4fA9pl#H$b+ zbcb|=2O|)UFT4F=uRCZqN)NGa6qwWq!!cGos3N*KpDzBY`OI7~8hax&u@eT=%M$Ag zC&9iHK7`XHUIjdJB{u(npUrd67#{>%)PYdqu4VL*0oj4V)f7Ffc6Q5g2n3B}v|sqx z@O%qA-@fsDYkI!5Jm0?ceETo!n@O(kXqm+-SZ%IBK7D^soL62BD{s^Tk(7f-YJyml zgIKHrF^O(MU@(3FzNPrQ;rqMq%zHS3_uOmc%hFb)-M!6c)+>QX0aA>KEk}6}ALv_C z+e;tewFzWDtxoZ66O;BE#KB8HvUrAKm&us;T*t|!=@+x1{2c#6m`OB+ou&%Wf`zUR zvOXxkEGaZ`yd5zc!zj>Dy=md&;8pN!6)P&=UK~UMugCapYLK!a=-_*MyI=6nDwSSD zB=nb4)8K?Q$)&J2#oPj~+MD=ed&4!22)D9_x{fhkAVyD!Gzav~2gAay8Yg~NEUXsc zA6=ZE^xjRT3u@84?3RiR}uUW-MEHqqpA{vhr7W|ikl4dDJME(2= zwENWPcTc;WK^Km4;|%yr??1cnrLkk(;NCyj69b)&yRUoaCl?3+{(AKW{_^azGLP%g zw@9n9PyhjPEZLTUzoAXZ+gqq>9@;bP?y;JZI$wM;UY#duqo|o4l2VD zNK?(NxP{u$mRJ8PY)riS%DM0Kt!N50O=nGLnd*^Z2{D-6fEBuZUq)J8v=Mz8=4 zhk!v|bgsaRqWj34r?|*(Fjt%X(FZpv6Vtq2Di;EJ*h?V@FTWQ^!DUKb_hEXK#2*K& zvXg1Lc4IM@+U*7AY=TSBQaGPRAEN0g}^G>8)9iQObbk!` z-OJO?Q5TTd`}Q506X5^6SX##Nca3j9`C5Ih!ra&hlQ6R7e4Z}gW=SXPsSyqwl5nHN zuEp}yZlMo2GboA1@$9PI8)dvUsMg%Nav51(A)&OTdIab=&^NyM18lH=UH|Ln|LW}i zXSn-6&vyTP^vkwbWUHt6Q;I-<>#c{yRW|x}PY2y{qzY7L!=>GFE(Ae><`6`4{xQzF zgF)v_w+YaPR|5dq^DVtR$&GjKio|1}^cjCQ2VX_*-hCqLNhOg@qHu~7MmAIxfwh~> zqj7u_k0t$7k(la*QHMmXvD5_$H0I)bc6o8$Js&!h<^5i{!UBW+KrE{SP*}z?S`h66 zr+1OSN^q-yStKCOPkMV-LNPWK?;DIGSjY{FChEj<%XC+eVKuU@4 zXa@o(JN#N4y-mkr>d|?$huOy$PA`r+r=yGW)1O+3+O&N#_(tL6(^~AnZI&3@1{jwz zoV11lT^O46I96(hnw)a|jEOAVsVi@zPeKb-#^ym8w+{H_8E&1>Z7`uxY z?3g$k#y<2LxcF1JF!qvY*T>y7XghwSEd|ySD=aZ<&zITV2%}w^y1DD@72@G!5~Rz8 ziqjS%yWDPlVHYjt{|G_e5|+fl3{gI?TI}!he`!Z@+7=nH{)WHmaFr(ierR+?#jkfX zI_2Fh%oUQzQ+<+lCxqe<%Xla&>9^3lHG87L~;jhk%<#nf>4>G zsKhkYFDg(5m@m-K#ntfgYPd7_u6ue~a6ECR6Vm~v;PLL%0FtTIvjey#B>vr^z*Ys4 zJHiKJ5Aq>ga8MA%aL^$kX9t7UIk)}j zuS-xfC&u|zBP(xH%SLE@>`zWRZw3u_J#Mg61IY$dvtirszYK4pO5`j6B1*~uNCqhm zkH;UHh-FKgGZW5GkalIt4#Px(jD;PG7o6gE*^2&AxfL?8!Q+e6VrP@~X-72{o=cZ4 zp?&BFk+Ma}TbWqttS!qJ1=bE^ZIN4ZXwbLmuckK4)u4?&NF{Cf$QBN%Y9&i=(CVAN zt`&D6GC`a>Ra~axM>oQNuMrFqr$wcmyjil5UTtT&CRWaZEnRoG#w@of_jPZ z@~rPL<$|nyD;*I;9o9f?A$}GJ$D|u0Qqq%O0KF$g4oi6G!~iW8w91TVX2ycfRUpWd zqSzABBEv5_;h?B%s2LcHWh*q447q9pw0~OB@aF0mC&&O~d@cm^U=0LPN|s+ z*#ss=o?)fl$qh3%o+q44Vy>8Q9L+OzT-sLBjwm&B+(rArKxXVT?Y`@&nReeDiJmia zm3|urvj`-lU2^m-$HCFMD|+AQyfH(%Ge}cj6jk$Gri>}ID^n0 z{^pbB%HphA9w^TbiZ~$gm=$;~lt_RY>|6GiGKDs`vYQRw5xvb60sAvxVtkh8!nkgPTA~{<9xD_;?p3ewM)8k0>021^xFe6bg=SX9X#E-o zisDF?9w6SN0UaJ`T@*A!vOU7mU6Ev3y?I2 zj(LO;?DLla`|wZ6hyNfy=3yR>-H+T-6a;k;06FA6G|vvG%!4YRltpf}A68LTwL)+w z{+7XpQ38oij?h5_3OhW;js{{8#iP{#OAlbe%~*QRD#iOoyP>`hm1R|JSfTGJ&qIV% z9IBtrw`+KTtJ~l5!@B*u6x%}YEDmlnUygH6o$q}xjY9+^> zhQ9V4rDt93r3CDTC9Cj1pZ&f{i^Qc32y5Y)e)ZNWqb4QGBC1ybEAi?<8~gh#An?Kn zcVH)(h$YH|)i}zXGsfx$8SdC9t$c~Wll=BKc_1-JA3?O;5(QK8Lf&c@+N6D-c#ecL{3ClvT)~tpBCW?4q+@FY$phbg!BtmKyH<1ZM75=fzBT5rj zi-n-t<8+ziOJS7>qrUxMq6|@hZ!%XI`mk{gKkV?Fl(AJyNi`St40;_z} z9hS6_5jGUTv!cyq|Kd%*bGEA4ajy^h_Jt;SCjsAZ0>a{>IE2QJ4@#_7WsMe`%ss*C zs|mK{z)!AtG{;hYlQ!1Uj{ptb9e$>^va_HCdbi*uG<(IN?_T#ttBqa1{dC$nfAblM z$%P_^5mk2y5*m1-1iwxK>@JBhYj0$%9hs*X=OD7wL6*uegOTh^LhTb{OP^Dp4vYBB z<~pOJez!B!J=o7vY%bW)daa#iK`9cY@Z=Atz4Px&M^g^!3ru6Mfcao``bXdOe(0J% zb*vRSy6X44=R<&Z)j#SYCHj7S-8;uYonQN%b3n)Zf~bofc((ERU}M9Odpu>vi$ZeK z7L@23l@wIdL(HUON#0K+RZ>ZlOxELTT3@wN=Y%pT3O+=MO>d4X!7}3wN`Sg&*@M8! z!PgkKWK2?;3Inr@R5db_N4=pLT8;T$!ao=3ILfkUvKocUeizv3QFkzaW3UcB#bIjT z)`8Zu>*>R4ygGo;+3VAv*22jKUjrXDdQ{;djka}$XK1yD1u1;>$iyAi7#)DtMxgRk z@bERyg@9Lo4JUz>R%Fm@DAFojhZfncyo4q8vr0iTWtH z%UwXiM{&KgOO!-Ph@SNdk-db^KV28L!Uyz+ZhwF=*=L=p(|&Yc9};B z&Hz*|)A7uS;;Lhj$-PFMZxvH1@vP2M?W{&P?FGKv(rmOFwowAxZCVWz_~h5KEzU%3 zv*k5f!=CNncqQt!wL!MpUI19Fps&2;K(#?P=jwZob)eO>E4kb%|E}=vRw`TuAxgik zf3RXZ4lHa~8&@5hY1u~o7?NIq0A}ZMPy1nT*B5NNyBghI>tsKfUeWJ>2{Z1h-sS6gY<)GG*m?i z1mfDtv%%$Jn4?gf#{C`Uak|zOXzJG39vK^HiE(`zgI3Dj^=ZoA^-@=`ZNNPe~wE# zz6)kp=lGiadu;uZ1%PEJlN!l0QTbbEar@kUM4{lAha`y%{Qb4n(Ns=1Zn zg_|O&WYs1t6qy=~x>jsCf%mMIHuEc%C(Qg|fOilRHdbrOv5NFGevh8axqR|ROh^sD zYs|M-%bZz-l;KWMKOd)Zz}drhk}kR*;|zCMxFO_3cpKx^Iig$9GV^55$OA%s~wx2tx z$)1|8fD%avB0UEP$RnJ(1(E0WYH4vX6ShVfu_QrhX6C8?& z{zb(8QZB_Yr(zAOW+hLRoEVK{A5LVZ=H7UCYQ<)-4>k-f(RwWT39{5& zEL8B61RwlB{DD^knm9rZ2FefyS#$0t>=)A`2Y2a$-|n05And|X5%-G|fP`46sH5|X z^X^W-S%!g1GqktLveHQ?b30WOdk zYdA6d&`aS>@Rb%GfiHPX6xQOgT9cG4@ba;6CKVbUcq|C>VkPN!@u;i_?`Gb|<*slJ zsFrdcsxb%he;l=g-ChU&_gWkbSPx64pyg3wuIEL!f`|@XLQyw^6plMFxVX?20{FfS ze8VUIB%s^)1N2A}xa{Z^u3(oEX;4QA!u{+0u{dGIwAHHXWVC^(CZdKIkwa+_CEq8{H-zi2Iq$Z!d+GW&^ne*k1Oi*xdLeG}hIqMKke>Reu)c1I&5 z8vadIOK9xzy|X70BKA%e;Vh!pE$PVvE?2Lg(~yiy8<#{OJ@L61!0o}ocjNUkJYU09 zjcPXSe8Brf^Y7{$!RwRF*YlZHJc&Ca!{EoJV~n$e%sSC*#^zZDJw(AC}O#fSx=t0UG{z z4V)6N}l0`tc{}A}VwdPguMInbnt3z8!b`)aCs?P#$8oD9m1(`7?Z^8$O zDhl;534-}Ery&WYz(<0;7NBbIVT2t}2_JC7ntW}ko{1dR0lEa$c7HOixbX~wPa0{*V(>PWGM&K<h4JX}O-_ik+kH-*)=P19Ine zhP~I6xzJEAf6OpYNT~t%0b^?ny}%k7ZN?ewwf%V~X#C5h{V$WoPVj`_;eRQ*2k#)u zrfknc`XfL4hhp4b+7K!?Qts7vp(vd4!|?mykFZC(@c(}l9#t;=5TvY2rj)lV&K8pN zB$X;#PMIupb^#vTACt`9rGN_WI$P@QT>jp`wa(4~&SoUNth!^+z5yJ+ za2>ADnm4R8*T{3_natH?f!6y?AOloqaQl-j#g;ot<+|NJTL^lOfT6jPExT+86FBad z>_qCmyID17?JGG_bH=`|cJQ=M7SlLtB8fiEr|~$(=d9H|l!G_|EX$TK_%T26snM2T zNNT`rLcX;@1OZulmWkI&U=CrNXo&orgtD^5vpF;d5rJR(Q+GdNalc6MsV#bkDFcT7 zfHuP$lG6EcVIPIqNNV-bGW*VW#zG`6Nru%dNgilgmVnWgcBm z*HCs$HeQptjn5B}daHVMO)PgVJ056?K+uG>OtSbkq4c;scu&j?{`1n)&3GdAz0cy{ ztb7r`&+mV!cy4Y(B(n1@DPFd;-bg73*Hy*Jl(wzjdi1`tQBZO5#Q1r+ys*P1U)(*6cD%GBMC`tk7YqSbLFB>ecea68xkf?^C@$i}( z3kKhwI;Ra;W^EbX90#6{1t=2G70n9C#!jn>0&8~Jgj#hu{97e3AbTd2bv)IAi>jMlnMl?oMYaKKtI@K?{$%~j+D?bt*Jjg{?Q+~b z;fkOf$$d~hj8jgY5ihGwTjP%>l&fm^LM(O38wtL&i6STVF<`Td!`EfIPJxS?__m0v z2cX;3&p~QU-T~#|AXO`2@aFo{@>hmt5XtK)iEi8fkC7w3bE)9(6+{S!!Z z#=`ucOjjk-)weTP#Ti$ZW?WsEu~u2exKTR^WfE zagnB^O@6m|%|0TJ07qgAAz_O*Ic+Re{p6=qrE7+7wj_!sBGhUs${DLi>o=?m2>~&r zA?NC$%~m|K9fb?{4~>XH{~IfPad7frjEaUm%-!fxZ1*GxA zB7M4lth**svu1vpf%C*dwFqAqY7do6W;UBapOY z%@ zSIfSFpv%J$*vMwZAQY0as{#c<|?6n0!FhEsS|%z^0P3pkKcQc19Z=xIh8 z_}^=R8v#v+D^mSDuSqETB_DMp9>aX;8DdDhiHy9pa|(Tf47>fa-g#$u(f1A|1)@g` zqUsL)WXy!goTVwa8IfmU;8>*JlyTi!W#I=hGjMPFiQ7#Q}>4BB$+z< z(aK(dwhC4n!ayBojvn3-Xce4oDPB@5()={`=NDR;}>Nvpy*Xo(@(g!o3 zw|e@$s?l-0FtTn15=bUJJx~+Hu|U2CEFtg6?m8GIB0iVvS*3g=6+ zt#K0-0*{PlKgYiW+GyfbA+Vb1f&?d5SVce-6R=HZcDzexPNC+^M3{e=N(yILZLE44 z$8kIIIcLu?P1Nx{ir+VN1Lb<;55|5v7n0n_Rmpt}$CKgbT=4>ASrmnI)9O=d;TgVDU10*ZA-8#Ahoq+tDpXi2q)g;Ei)Izn}cKktXOh z#23r`$fc)1XG0?LrSnor&%;9-AQkrj7LEUTWxb<8Ov!-W`1TW*>MHavvw+F#)WGY& z+rYEiUIcgray4b1Bf^mznZg?b3a>u!@#py#o%=5Iu-1~gy9r%M;>(qC!l z#Ogaw3C=>%sQCsQ^kG&G*~#{|Fm$|e`=Ki(qW&ddff9liuL zliteee9K;z7omI!Ym8K^FGa>(%=zBh+6cA+=2D8-+2Du8{!&b*wH_7>h;p%Ih?4thTxT@3FWWlg16liWcVD%5QwWWa*X-^*XzgOGZgJ z#8-hzC0>O}NTLspQH)J-fAyH6JWU!S&`{5hJN;v$jJL`yN+UyD00sMVbgo zJUF;2bRn&OoG>ogB+qWSpe2$9R?7EQCQHp2ABOTeSBVU=(Z%Jkch>vQ?y)8`^z#)< zE$Us>T{uMCp+ zk-Wk%TND$VXQXw>kTqb&*^u?2aboxC5lo)Qe7XcFENIT?nf6vd z?=Gg-m|~j+*~9D_i(}j@=&ekI!l{S1i*UwG=@Or&Ar_=A>{p73wxb)nwA-dwEcMz^ znZeyo(QtC3yg`jp`tsjHU+g9-jb`+f2)6Efy&$6x9)E_M@kQsj+n0fbZYOVCp{J4c zHix|x)fDQ$^3~2WPp^2oQ$gdtft*mZ`F3OGP_b$ZJG*OhO z>bw$$FqKG-l#sd^1V_^dNO?Jzm4TPjTt5BME|MVWvcIBDZIR^%?(bd;AC)l}QHK$n zm{EGuYy|J}cZ+w4kq<8(?7{ZF^4Us>wyF}V*7l)shQ`;59x-xIHZ(sAgw?MDYgl~V z7g|}Gwv`;`l=c(*f&@g>lGN6ybYWyLWZFVCNSp!+-O1>cb*hCV!HC!2ty>)<-z92= zJik)^q>-U3tP=&6WmtEbzsfhWZGdmO=iPqi6s@yX3wgg67RYf_&dKw_8lbp+q#Kwe zYoQJ*rp*Iyp`5RnRG~cn2@nJ~#BIdwQU)j6_aQH4&~Y*31A)30Eyd7pbAGM7dRbR> zcRgg?bL=+i{)ksShE5p9aDf;)@AQ4RX|Ue1C%mvcyp%(zhQHF_QOma_1uS&Wl7b0B zb7~Z6XhiM%@sql3?V!L*T25Nl(xtOgLan^<+RJZy`X2|w79`4H@Sb=>zhzYtssO<9 zgE&$_(8=Bh#^Y%>WbDF{4dJxnB{kf`9>^$qi7l$|QbNI?KIC%*Cn}~Qz?mChfg&1S zDsUD*;N2l4IvWbf-BedXUDY@(ONb<9#$k~u*Z;O*NW#O8^g0R9-o0tOx8H<_*g@PgSGx^HKD>t&=WNz*mYLuO&UvHNM+XqrEx@&X59^)Cj}zb9^wM3P|whkDRLb)0C|kGV+8DW4Hq zsbBGNDOszhWS-dAU;dc?kQuF-E7=^y!_>?8xtc6R!5MXZ6^+<&(B>L9_8JGJKbj|j z?&pe=Q0D%yBxb{nBFC}cQbKW5QSOdfbksiKe2rBIkzCZKZJ02oZ2aA9v-`>@R<+`w zuPEA4VqiB|GCu?5u;nW;Cn7JZz22^|Sl2DvgNw{e9BirSsCCQu6lhU~E51ji3+E7< z=P8R`rWVN%ZCqcR>xtu@mMd=M8;fO|<yn{x=wZ zymV!off`aDFKelim(rc?&BMjtu+ ze0G8D9Jb7zrC(0{qdi~-jvUZ-{P=*d$!5wtGS*5~ZRvBhS{sLAWqX|I8(AjtEKK5?D9dYLWlq|0@P_W3B8l4|F~szX`tNPSOilC;Agkg0XIe@J~Fw=I=WGv*h_&;g8yyDhC#Pz$bDJ z4}+(>Pto6EeE8P=@ZW{!e#jCMnMMe6@AN})xN)+6@G^@Q(oP|QT?%#({6p9cMli=p9VmT2Ou zBLXZrYG7I9fBA?$J$hPjL6=G=Xbe*oNLI@wX0afFQ2mmHJechu4JQ)>A~XDr_a9)& z)LyfZUZ&5(bKJEXQp4^rYzjby12~s#Xh^0*rdqY`aRxcvxIqH zwVr+yPLJtfp(q(Y*i|ADl&RN$Prc%vxtO9sNElYr35Ox_ee)n_S)yX3ud$HN5I7x~ zeWoxAN)X2*XE+eZlO6Kb7ssa>6hG@MJlTT(03j#a{d0_xolEgd&hSt_NgkvI6oC`R^`Rw#1HYcsn`d1HJg|377ebNs?O%P za2D%>Qe486JLKdf^h$_@M}Ljhg(TsMNfzMbrBGmZOq4MCO|6LMc2hTRXvcDd@@Y1r zl)Es~fqaTqM1Rb`m2@N?{-y^EftB1u^jx9zsUtrTxAHQxU>Kw*hT`E>8n08%&+BPs-568^MLnYz=a&E7 z4oI(a^SnYAMpHtyf(Yuufe-u`GP2)2p3GU(1{Why~r?wTqO6ug~g$8sL#x z?ot}6|48H%Y|N}V#OG^4)3rm^yi~WkN@2}9h4m{HI_qi2APnVgjW<0D&|%Imi#kCe zJy<1N6lxt3`KartHbYlejSdM^oCC(_izTCjYy_Tomh!W}9~~@O<_Ix(kn1SVH0dmW`D|EWdG1vwd-CF zWiiiIugYh}j`|ma0Y2*robCJ#SL)#KN;@d-Z-3Ln_cHcEMia(>#W|;r-npP<55tx< zDUG)o1)++5U-3a~P!9*XYW8n120qplNah^&&lZVUs;6ewE33dr%orw$t=L}dRAlp~ z!s6o}Vl2H|MJuAeR=UruSZ-KU3OG5NEUmlRoL8uh?&vIf5tMOMSEQp7B$@wmAi95a zQSlXPC5ndsgRIooJU>43%5O2M7thm&aPg(C3K<)!iUwnnB>hvSbLj#GWv2EIA^Bgw z=%$t9C29;&2&ANUiL0b@mHWFT=jx$Y^8qOH+g;-5 zsmT#IE!DcWUyQWC2O{PC4%g@4}v7!WDFMeU#vJb zX?T2SRIyoBhN}*HadKu;wBtB97F+`E{NdG`u%)(^6(R8n?^cY|5+@I7aNL3^- z^ARs?E#nFAxW_{7rMZf74~5Sqi&QFwA{w!eZ7rNSwD&tJRQ_`%YAMcTs&Jun~~Oa!iv&^E_pjr%8kf7Z}KsMe>*Sp9^JPweWYPB+g@3PZ}O<2$gnIE{d+q?k{)w z$+CyavAkx`?=H@|rkPERy~+m74LvWDCL5y znW*}bXM>*xK}L0kExWZuXT*5`#?O6KXPW|4)E;_0fLP2MYMB==(d+ znMH|Zc|NFYG7L}EPFgK`{KtVJwha6d* zyj4)0UC%nKyxOXyds#St^$SO$Zz1~K|0^{Z+_<|10x}(P)N&zW#{tN|iw4a$| zPcY94@UH|y)wS)1?c=7Qk&>5fC%QES#rMjFPly6dcwc|}3TwrhA6j}d70@lgzC)7h z$l2W1nkw?5u*q4&*FdaeOpc&_k8oqCFc%7;pRZiV4*=&Uw!VchM$X&p89-HoWo z1)Nl{l^$J=HH4H}wjc|H-b=H}oC4Yvyz@YG8=~bCtsue3`DCdZBFx1?C>3;&xc@Pl zT2O@`j52lrN=E@Wq!d>r3D?5r(opSb-kc^&QnD10hcd0d`{VVv-E(QuxNd+nL`Kg` z*;#8hkwZy+>nf!teb+S*6v8mFznNPK^yJD2d~|BA@AvbOd&bwAMZ|cMVVJM9s29y9 zX-?^>PksRBF57kVx(W?^m&fkfCTi5;V&NJ}6v29p#nHo=q46rwC2tJ+D{ zV+xLV|J@CT1_sHOOiE^soR+CXNjG;tg-4aJ2`Om=w>kX=ZcxVi#j|l1YLrnuUv}RO z6O&?tqpv&WPPhaMRFox&kR)|bv8>=>n#=@wcR7)sxbrb|Ku$GN? z_KajbJ-kjhxkA`fI}CZCB0(9046@4Dk{qPs&3~H7U~B=BOkR;VRI^ahVcM@lMmnhQ zZIsA6oVYONj~JTG%L^nozp2 z2R@p>D?+=mww5-_ZEU<$Hu7<(CoW3U#KCdN9%zTL;7V(ZroeQEW#U)l^=Jn57ZSVB zNK<9LA3PA`%96+W-c?P@*Dj*mfXD<7Es z9m(ltn1;>q(&eg0aJy)Lk?zS9NKrMH`yPybb77N{=sZ3wmsvx2ztQZCE!ZgXHQP z92F>#d-%q%!L5Jx6{Av{f4m40UX@G&4q_FWHQirVEx+i>58evuMJ8@drlk;7#7?!8 zkBndaxz!O5SZ~ILafJCBDICG!69Izc(h4Nrh`}zW%pxaf{uUyvM4ty zFVw^lrP&#?o-onsL{#@DcuD6q28BS@Dj}Ub_=f9S0$jm6O=JBxN;i?0NbfO$;$bM5 zT)gV2^`F-7UqX@t-kSUcZnZP~jXH)Ko4mc?E2ubQJxHNx>VFf;Qgz>yKcRMNbA}{j z)~1-3`f_ETn?4OH^Ig!8Af@+FiZa36v;$()Q%zGD6?knA55zxf(3+IQ!fDN(43{K) zO%q8pe0rZMzw;+jjzYowl_&RBLEsj6!>Ojh)-VS`a4XVOdBm+dwD*Z+l9tA^u>N^Y zhSwNR+T_sXH{Hghk6O0|&*!sW^r6v)5v$VY&weASL&%%#_ecZ4M$l0~ls6l#1z9B| zh~%3a>*g=i9&AIC(<7CL=3p&uCf3En`md-?2_Rq+=GF%mRg|o9APL&cMnpeEQFW!7 z*eQwBlfQ)XF<h)kp`_6qkjmkTurl1aa}{9q)TMQ%ssIR@}x76-$JAF49`f1Lr7BSlo zGw;_RF2=7G&UcHrk32Zd=fyZ-4g5(`a_N5KV2`&qr&KTqXINr0+~Vv=Ph*53Z5m>7 zRB-^g78E&xZ%9+PI}h_m{@sk3Rnh6ylI|3?+|ex;|9yNM2(I9FDEopmMeYj% zzIV*m^%zX2xGn^t({jzNq5QN{czco~m-oCdsGVpZkpa@w?7M$}_!0v_>j8;gROSU% z#pPShiiVSGzu~cL+~o=~$3rJy#Mno)BSMHxKw{0o6;q;6bAyx-q!H@xc>&gUBT>)T zB@P~}Zy#!rGCq7?OEjrOg-qj5*8SFOi(@14d4cxjbB1X6_qJ>~AqCLjq0=BoOZd#x zLa@@H4DtP#Q*h^ssW@ddu{HbH7L2xnb$Mg5%*^em zfWbvjyD4^DS1dDW*7+gG^|GS-_57ZJGkL{n%)IVo<eO$=kYh9SW9woJ-%^qKTAI{S|3f;(cXpgC8l-7+m(efh- zVIt{A8b&b01Zj<~7v7e6Fwpq}blMRoFw6)Cc9Yk;i!zGgY>}4Ak0V-*GZLIY2QlZu zQzRAHB7DcJvy-Fb7jlCWy?vh|^>EBa2Ws4~ct_{q5FQAnVkB;qy%^ibu$Qlk1Yw(E zO;G%r;PxbC3e0s~oXN6ZecoOvzJM+xtDuhx`VoD9bHTnz$;;IE;$N8Px>p3@SvHR9 z3=QebFob>BJuTR_-Tn}cF%mVcG76285p4KXGGb(;U8Q6ti+F~f8}`^stba*5)jOep z0n9a%aq_WvMf?kOpsG#8N{ydn2=%C_h=DGbHJ8p%D`h|u4>B|y*evTyZ_igQv|f`g zFQ?bO5EMss&~hpgi6nHQln}Z?;!8kpSCK%oUC0|1NE~MX*V^_9X3#qSLUrIn?aKNu+yU;Y!ZIzyoO7G5BaSOM$3l&5?haDO?S@l47 z^8Bte#`3cp`rtNECBPV2?q3RGQhs6l`uroSms2Hy>xi_jO?Qdz zACa5^*8rBZSR4~m#;dMYgYBhttzWb(;~Bm=MFb=mdzZ?B zWP5?U`9f;JisvdVU0J0|wZZ?IyzZU$}1spYj|Q&&pvi^kF+Vcg?_^ zMZgN+$Cnz~Q5Jq`3M|M|bx)p9fU zoro%KR+AV|lz-;3hdAtlGe_fr^@1N;xJ3oE%wwm^nHm;0@I5hNct;)?@TJCV*+6Mi z(!5m0ikky{p{SMPzGpwy($!Uk2|R(K`n10#d2If!z`CM-*?c6{@;te)`yr?x(jMHX zQN6m9(k=7bA!01HX|>B*-2I%0q_C_%Ap{3*r3V%5-52>fq)W2rx*>X8z38^%&+$wB z@8hmxR;2qOiUK4{7&23fZdtez=n?wN=sJaj8arhQiwd*bxP7Iivtj5)pJs)mv15CUN^=(zovfJh3X}7J*{GWH3kd{RubgjTP zOYM8FTp8|_q~X=RpC=-2jf@27`t+APiKjarKG2G**fvG4Vi|W9&h&FUA!O$aA+&C~ZP+6Yr6 zv{BXixcg5dNlSvU(?yLRmc=brHDSm^RUGdSFE7kk^rQvAy)n8}sXXeQmImqoT(QFt!pq#?hQzjK~6 znNVBbef-WM(JGT=IVpBY(4yp@&pk;2z+J)(w>YIz2UnJBM=KZ&XZZGp&rGYLTqXOE zglzVyqjmWGun*?gba%8Vk`c#5yB-MB?~J1m?t_^gg1zS#-cpCrD+S`Q%xpeC?j@?b zy06>YV?*+V%r|*&gK;!g(&)aEyxQ}=6roZ3g zp{Q;843CAP#b%nvFq?THO~|IYDvUC(39DB}(W|Ffj9e9%N*+ zbp}+%Un3O;hI5O|Vl%Mb!y#*Rw_G`(3ZOHsTQ9oOIqWop=3oW2xS{e{{EX!EAq&ve zezlk!GHY-r@`7!+BG8V`2zcS{La@k=_^9LA?NKQpt~YhtN#W&>$_3@{SD>sJyNnpY zz$xt^CT`#|g)!(0zZ?yr24b|2mRLVOCdLMG;1JP8ihg2XA~0Zc?ZD%Ng7n~7hPhH-kYqt)9LxN4hfwUS-izje{- zs2K6V3Ehcwj7$cOnOU46pShIbO={1?MAq!v_lNDIzO`LbMpqrK&e<~JY?ZH0Oi^LD zSfDqe{BSZ#&r%+ih{HGt2LBA5Qr>0-Y@3wM_R>8r68bmZQ`>*3`uNM=_YDOTXbuvYq7DfkL-BgsH~O-@T@n79QzL!- z&l7!pW3zpIyTy6C3F--!#Q+Fuq?UMp|Ms5z_@4aY0RQ0R^7Q2V`T&^J06}$21qV|f z0`YoDc}orQAfqxfV~_+h{k1B<(06_%e6%oNvHNiPse3sUOu9Q6OnbV!0C+eVc7M7` zc?N%@EETYxWsa5&JosnSRF*P$^ryHkT_$<|kdgrSl9(?Psn@8n)InXcvcZNt{keGfSB#WYwf`KOj+dLIu5B1-U6L(oN+3^9 z0a>M9i&ds6q_p@4EI2qH)nBmfA09*n0JOCDhau*VfqsB33m0Fzwovrhn;fQ?lJImG z>C@u}f8RwE|Fw z)wy$eXTB~rPEPc56&ePyH(B_z>70#0aXUd-U7v!yAj}p0xrS&mdDJEkm8un&E3Wdj z7bicX3|*+<8FEet$L_&y_6K^rUzV>eALbpz%wq%X3@FTX7cf=4R|(r$e_M z(k4&2MxF?9#JUZ4IFrm1+5*4_XRY<_MRq-wn`_=+r=tAyi{|{+*9Ne1J=Iv^6^r?T zo>Tkdn36zFVVZ_!TyRmJQJ}7f290@wryOPK1f>f4&?qPl_DHe=s?Wbh--BCzv;_ zG$jsUGKFw3vQw86H2fpO8|jrYDnd@wg!T+3?)%7DFd191{7Z=(TFe;Bdmq_zkOb}$S`KsG$Iy#lqNT3-YNs|7S&CkRFw6-T)T|yU?v}( zqTc4kpJjYaf?vjN=I{X~(bfAAGX99<{slO9Ki>KwEaks71c>oRlr#Ud7W>D*K17-Q zDXMBI>N>AhFaG|HQKg;PID2dE7bi2Z`sd*Pk{ zxA!IXiHg)B1&-MVqzBSIFq)h!do6c2<6A!A%~E&c%td}RhgA31y3Zlds+Q6E7*G}Y zoD%gQUd)u)sFKTlCz`a#Zb^bQ6`EKX^AS_zKk@u0`e?-ob7PSsVdEJHMU+nFeGU3N z<3jRbeOvEM2Km1AnkyNnv%`~w?yUl?;XD|N2j0)*rR(}A1Hk|*+ z8vbM8AFTGItz{~7mIQ9UlatLU#2AS9aT))Y)nG*#yTw0OUEBNnh&vSL=VBKW)bcR} zn&hQC!OSGqYEAl;Zv+$@ZQEm=7LYgWuf*Jf}C(B8jXpJ%);8hN|nrO;@7Yf8?N z(1+@Gse12#k=WRrLy)uvvjWHOsGP1$k|5f9L+O@iF=(%ueY!M7hY?H*ze|d6i4-}d zLx(3ZT;f?LyeWHn!d-nt;k!t}V9Q{r&0j&g;BA)#$6e zD=VHG$*;S|yem~I!jvR7N<*g0bHZ=~!y{+a-SYFPqwWcgLhD^9yGI)r%4CZ=s5G#W z(qp4?3{4ZY3Yl^DUbJ6F;1TAucM#q$<t?O_?+^)h?}un|X^YZ=hBr$n+oS zRzv*oAP4}UgWW#`?EW!`52>i@b|lVJv2UyY5>H2ZW{NJZv_|@`RH~IOA{P14q8}N2 zy@IVM6PheCF?^R!A!#=dRXaavX&?tNlXGnKJDZMAxvEL!^6L$*UgusN8Ye6isjK(H zjvJfK@H!oB;!ZaBXsslgrI>U>U?~NINiY4pvPHW4CQ!O{%3mrL;ODF-Fb&Z*qRiaS zVt)a{L7VHWxs}S>ZKturaMw6r#Rn{kfQqL!@d8I4iP~q)r-2rd=a6O>OTCNKm8s** z$j2cB)U38fp384iVZl+KdYpOf$%c%(mz?Kk=?px_$@efj*N@x4O)7iSJ&umPxIb5J z*}jd|aRi7U)f|5+8i(U7Q4UXvBdI5g)jh!RuKTWl3`36|#KBs9yxP?IK($zFQDO6S zhGBMFI%R+SZtudFGdp)WWn_d})-!4TUM|6coaBZc;)A*h z%ZCu7#P)P^BJVSPn%BfSN6&h4_KZKo)Z#WmMn%wG=OAsERpV%-FB$*U1`0;MdM5T%IOpKv(?<&WO z+3I|^5fswKda})a+GQP$(WCY%4j2_YJC`qOdz_slzdRRva6x_#djs8#lV|%-ga-a! zVO0E4)9gQy9Q`rK4>i3(L3bNkL%aEGf;PxyK{Obd)fIOlNriZ)!-X}JDW-)?zc zTzZLrkz^w5L4YM=dP-uNZk4=IWn7k)wg#TIhIT>*E@4)DMk4AJL{bE#RUHIP^&tpg zPmN{tFVeprp!)}@+&=)ve+=paDFK6^0sr`w(5PE&+>@W%E;=rt>;D(h^5SIw|8aD* z1pGmIk^?yuiq)qdfQiHaS`S#uz-0Y6L6hvmgF^#=J`4X2J^f?QAJJ`_ew#<#$S|+% z_^J0gV~(X*V~_IR=q^;H>^4M^Oc6wYIv$iBxnm(B>+vuA0T@Xas$tozBIjrhNO~|> zKMv(J(+(OsrOHM3a_5wMm3-B>JEbC$s_wuEY5W?>x1L-dGVKTikX{JDVtb$hb|L*x zO&LLct>3*9o?m!3cDD9*zN0EZ?{DoANKGp=6s@4d!2~~YFhRCN6^mz=JV>MqdySRj zx|aK*ee?~G%iOG^rCThR=`-rl(Fu#GR6gYgJ1k{zvZ7y7hJ?l2en&olq~&oU;ocS1 z;Bl-lih9y7=S!tdpe0_nAwXUkc4^6S;QV87g)J6yW+7wvV12lnJ*_*Dd0FAWUk~+2 zU1kE#3AN?bV}boDmh1hZf-Z{KG`Jo9x9`{Qu(VjgNW==vfr9Z%#^oDpjF_e{aLxh~ z>ffEWsFqRAQjqz z)QXMG{6$&wP{GeC6i!&o?$FdJc~<(_HTW7X(YhyX9F-Qr0*`#kmxbDu{k9tWbNyhh_OPY>DDFLSEIeD}}Hng9r4Wp-dwXr>%wNhd2us>Tr zYUx#1`{EOHW>UCnZEL5uK$jk+N%J+E&9lY5@vvs`EwX&%H?s?e?)(=OG~){B)aoxZ z#ib<$E)8-KN|?!*iaP4iA#|EKehOp{Vp6ip$o&&`WS-byA{`1hKIZ}O>qlC1`I&39Ye z>!RHV&&`6aja7b@d{m@ypBqA3F4A@*)iTaz~%w`#`>ByI}ph%fa^`4T~uczdc zHAz}6#dCev&}t--Fw8gk4kI-3&bY`%Hi|A`Q4VC~kw`Vsj-SYj2ig#oEUB9~h*PVj z3M1Bw*MCH5>!ZRsoEXbb=1;6y-szl_rK`SaHsG${{`fW}J86a9i8UT_hptB^I1l)g zSl2m!!7(_@$WZk5YvAz)Rj{rR^mb_7_PUpzKpWGj+9CjwJHbkQ%8PwBIl30^Yc?Nn z%O5xSqZsP_9g=`k0HB}n|0<6_us;swqmX_@Y{ai)=w?Rhxn{#a6;>mJtOSd2D;4M>%aFUl^F5LgP+lh#U4KQj!vBn^5fhF>A=`b8b~i0ZsQp|@+O z`Ud421vO}G%J-|=7>y=?t3g_pcX?G^406L>$pt80Mpo>*YU#nG45RVp))$bY z%De{A)x6{zl9UO~Z%42)p1X-+iw(?F86jvXsrBq|)jU6MUtaBg8nngNYM14|^XF?9 z=JD!Q9$ZkS`8j`7 zfBM!{S6-#K0-&_e(kRq!SXcx+KH}xd_gnmmsCN^3lz@ALO+s7)`N*gK^WU`Q0)W2! z|Fi)8$H9JRAqot9_j(MB5{#S%Nq(0|h8ea?^uJp8zqkDMfc*C4@bLe`w#X9hPs>ND z*4Ibc2hXS|%8N@$PprtZsmwdTOVHE?86ZOLKG+;OS0=Nf&$A5IfP+hT<6ovmnnbs@ zMoUV#b#g+zRgAb#;@{j$K%=Q#>Po`1q6Y*nQO$bTH%2Ru29 zV4Yu9L+JQ;Y5ce*iCv#SQThL0;ROfy`zOa2Cx`!!%RkGHW!TB{WZztMKLCOk1`h6( zMSvEt_=M5@H?qI{17rRSHRb;TME&F7KLXU$1s=TSzulgI8(y3#bDZ}w)cO85!0Lo8 z$w5XmKb9_fWc+uM0O%0Jhks(7z$Q6ufOV?S(hO<-3Y$-`ZD>)--qK3$Hta{o;F}YH>STGLo z+F@;{!+)Ks3jmJK;Q8Q4xpJwwyr-MV>YP9hj=coZ!7KYaz=-0Z@8B@L9p*E)pLXKO zz>+7@z?#j)Y+QuH&am3W6-TzWqn=Da-+BBTqLDplJYQUQSRJ0tTf9`>=ZjZt`X+a( zIxa|82~^{f@oOluH=p?R#o3#Xm?6fbT&bYE%2aLWvVn3+IV;}A~qI@$}cU% zH3_(W1$NZRrPIbvGiQB6TAsQ{S#L(SJwP;>ACey#F$(*eL83p|jQf{O>^~0SBb)Z! zkBT;*26O{{54^=V&XjUVO4I%~o8EELl7sw6qoY;~x?X-38A2c}G9bwbD}px4Xhmd% zhRE>5>)(ds`YtuEpNbgfQ?DuA962Nq4IS1D%+lUx>`a0Bu=dVyfYvbGPhpYCr!ME} zD|L43-kxC(eJ)D^-N9~hSfwWULmhJLO|s`XET0oy{2r3;%*v{=rQXf=>;M?#4ezw$Hfx)aG#tWcKq<@+O*Y3U7ifPL>Pukm zX8&2EIwTR7zSwtyj_{3y>eWt>Cw4%@8DMUCR-s=s_A}nl3+T*sCg%&-h;}&m;K;b_ zFI9E`p!eB7ekuMq#1DSS2fvyTh3nHHhRE;E^o)p-i^3=Tm*4;Ubta3mFwwU#u`bCQ zD9%Gl(NxY#&xKU1LP^q0f&PwlhMk@PdWemM)`^Xk)a73yDG((!$v~%2SFa!sgW%$L z0|&Dr-*5y1zCSQqt#nSF zTPsFB04NabtJ(&#VU-KSi7FJEc^&!p5O@2)V|X3*rl&4Fy6RCCrBG|lwtr9m_OS~@ z@(7x9Vjv0H9&}5F(i}KrDbB?_I-<|X&E)H?^E=+5pVp(C*6CA1#k!IwVBSd_QiAW8 zy^DR?8{o$Lj+d|G`y;qy$2jLg6hFer)o%C-JU)-@=t6~e^qBXPUu|0^Xw0H--!o?U z>>-(Y?%?2N&n(y4<+4|1+iIB@C-N7D8Wxzhmhvvq2Xn#Koqabtm&ldR3uFx zNj@%B@&XYK27WfFhovHFQ@hGghkX*CDMxq~ zzJeAyQGdEL2=(J=3TR!152>TqRwU8o_@qNk2O>{oI=zc1>dSjm$_PbuUe?vvSLIxn>)(3vl9t21^UU=0ZTrUb84l6i~cl3 z#QjIDNA|O3Im|byn<^iGVL8@`#e0&ZOr^Donr8EvW8r3-fo4Ax>lDc>h{GztH`G3k zD}|wS+UX=h;)w96gB3_@lP&0<|McLs3(f6xp;r#oj zDTWsYOm}U6JO;A**%uPfN^4_IeuiU8BAV@GMuv3vx{VNkiT@HuQJ&U7u<0E(hbTuZ zlml0)F0JE=D9$$&DH-&xf^*i~(A=`TX3j=^Wv6EHnN*fQmQ;$o{pzy>wTQs36R;mH zqfB{#cE~uFF||o2BAC!ji;zWOiEYR}bsg-oy8_c=+FqytDko8MhdXdCw)aQR-6EGD z-{AJG9%cK40Kf&?xp?ind6y2)uL6H{)8uFTbyHUBmcg;c@jJ!~+BzFm^kms8{EDV@oyfuM&E+p4bL*wr2mZV^ z>@03hR*lSonLm;>ZA4d(2Mql1X0TN}*YfDCoCbc+n#$@Ev{1Y#E=7HbWMae9m9}q$ zh@Pc@1S?m#A8E6MFO{s1qNDSby3b+DRkLl72UzHW7Gn??$mGS%e-iRK$nUbCO%-vE zbywU->=@q&q%Gt<#01I|3uV{S^(a?>oW?M767Wbm?-RKe2;#TNqhQV8&c)he+FPWf zh>drT8!y_&oMM%s&?oBXd?VQajE;66tP|S`M_OD9RobdoSKCzf*bGb9zdU|EPr`Ca zvx-tedOl43h|@3k*ZuS_(7)7?%7{1ccATM1qZHe*k!qC!bJUKu z${_0o6K2yiF(JUOZ_F5zdjQ{jDupAg8tDP`rhyZ?;~bV6<;J|yXF)UY*!jaoqk+;u zmX|mxBL`#_DCXjGXyphBOaa?_z0^h+yS8q);o)yBc%{rr=z_hxf+tj|pl80|DsI^y z9n0$D=NJG;FaW3p_OIK0d|o1dbh|SrKfyILbuS#k*tFf_Runel9mxN7JDa2p*$sZA z5S{xO#bq@t1Q4z1@VrlFW#VCqlIS3xfJ>F;MzJ^4Gd0bf5XE7bCxdt3-zFcZo|&`n z$w~90Q9R||z22inZ+Na+kGtJ2+_%mA5U2FPmdzHUH>y{B8k-lbuLfp(mcA7;SU&?+ z%UDwf2)4V1xG%}MqaQZDHeI>z^tSIz@_i#!D2m?O!`PEh8=>VB@Q=VQFE|m8;8r#z z>eP;6U=j)bG@>s;8qBU0cdKy1_lV0A45mcS2pz&v+P&oprKMH((8SL3>?rtS&_J9$ zQ>HE6QrnC=zF2&>%GVpr6U~v?fOT2|r0{18ka4UnM1g*vX^ua_3kHO#e@G-Aey8;1tWLC1;v|I(2O@5OvD*9k;cgSrn zxX+bA_BN*3T4~JB{hW-!U&S+EO2bouQt)3!S1C~#nQW$%VGBUnTdiE9%OdL<#dJle zi`0vax55V_sEo4k)o3#w>!b zqSJ{H$7sr`7UgMbtP>R&a0ka=D?2B^0G~O_i~IRDS`jxHTi~eHhpQHhZCeahDU$a> z`MQ91Xc@xKszeQ}kuyC8)uHA2HRCzTcH+x*={h)*cs{S!!}pAPkWKBEque}>5R*oJ#eGLTccA;GDQ>4m=&| z-~Qi39K{4Pz>g#{IzS$+_85d#BHj>=MH)=>jS@^ineSb3m(9RDLXY4Q>l=IUDUU zN`SwI=h$pxDiQLd87Qfi@~d|Kv~*od5g~rcX;x?xhe!v_6x6c7RuaNJn7qfbpzISU z6%d~sj*H&@dZDn|&zMTlylRFHS9-tcyk$p)UK9Hp{~a}R-jZilXXon|fPnB{BJ5EA zf@k?d#M?h2jQ%*(4R@`xG&^N!`Ey5d;7noX~utcz~Qvt}3EfZ4$I}E@! zuuBHe#?PY?gHlzvwduKaNpv=%VCUz+cZ!(sM%J~-5-Of9JHa|_gMl!ft>rqAW_5_+gY?rw@d9I2 z)U$T?!Y*tc)@RhWy5e!zw5dh5_C&0lA=Wxq<%2f+zuOfsX8=&@ADzIje;nEeL)tW(xH>*Q+CH1oxt!{a-mt%%zMeo&s{n2q za~(@+?w8xN%)Z7>UOaIe-DJhp?hqeri-o<2l&)6^pnjp0R>fk32JJs2NM$+^tiwwJ zgNc_^q7HosYX+_)Lp)GL!U#c{FE#)|&eGBe2+b=HiRF}uLm2hlo?dag35+A82A$nC zKC{HA`DfPGvpC343=>;S@JCOi;nC~vNVp+DYD2|Mw5iXFxWloQXdgicIFXCmfc;o{ zKqnMTdQcV~hDelFDs;wr4)S#CX)eBZ*O zB;#kvlmV@DxEvluy{%rheyyq!!O4<&SAs{Ct!T9qM2oUnFjCUpKh+xpdbKQY ztzbWn!=de%+i5o~oqrgxvEv<*X>qNafuY}T`UFobhSvCkl(*=wLIxH&r9n5!j0cT# ze2fM~-RQ@;f~h@TXSkyHXn2J2av~*o*(<$y{5BipK_OLsf1P+p5}zG<#&d|)|_zh=Bu80)o|1nt&p@w%;vON&2XC9Ty_HoNbvfmqN#hh zlZX>|rYXBTpg+Xt!EUFx5;V+z6H(5a6KEC;+Tv;D?Wh;O8*UCsaE z^R;zq-KwAnDDf5;ml&yjf(gJf+^tMhb9nWueWPyI>%U>kCqM^LW~saZPI#JY^pa^d z&J>6Y3WRmF=F0NWW-BS};Df7RbB1P;aL~VcHkk`V41)d?^t|z`LcxNpl7BQ-M0W_F z#w|P$NujclM{;KxTc-dQjV&D46K!5wmkPGOxZH0BHDX?s^&vel2;dQ))hEOC`Z>E+ z!#Rajr2UWW3hQ&^PcRG$%9UFonXzBK1;?i>;k-I*HFnn6 za`m-xzW1O9cN~HQI(ICC$n#>@YT-1U!BW3w-u;!K?EO_dZsvcq`G|E*jWVyyHG=W9 z+&t?{l4LNw&|FYRhcVx?5aa69QP6W87VPvwyKmmR^S;5Xf^Ifh)7f_^@-{hLkT0W~ zZu*iYI|vw!KJig;#Wj4?9p{d}(oNkcCLi4`2dX6P{< z|8VJl`(LO3>qe&DKfpgeIX^u){D0gZn||z%^_4>PAw z$Xw+AA^`;erPu$V`q<85e4z3lgiUm`d=Ptht#K692_y0IgXI4&DigWCTiF>~&wUy% zT$83e8%-B+Zg2sLFw6%3R+6St_O)iR@gU-!OpY%D+oMe)OYTIWiC0&oQT1{oqGD0? zp1Y!0l5?rtQ%uL0#IZsI#9T5nX3)p>_`BgrDKcB(TV&l6-%-GC&ZmAxd7p=}oDFW{ zTR{tHA9G4elo`JY!dPnIwiBD9P}9uAC<$U9-P6~3*!(1&7af1buGnA6hEE-%#@>wA z_@a5wEUw?W#UCGynAOy3V<~&)oxn0l)x$4@_nNfJNXxp8+tBf5y6O&mQ*IZq9!CzOUDh z=0g>fnx=sNZMbLkXxlmbkW6?uG#Kajd_1VHlQXb#+0#KN7=NIt$#tpiTn7s>R5X=Y z4KlTvljF${I&Au>qPIwqnP6+-21Y|jEHNl6-@7Qa&LMd?KDzzfL8VlGe)H2jKE0e7pOssIg=T3$I3->Q*r-=tI7o4T-PuYkZ~34Kz0vGZQm@`) zh<)92RO3m48%e7@cDwTC!5@6qe{62M<=1(0*ea0i{dhl+DG)OnXx{-6D%G^Um`GM#|!3%r`l z{SH;JPAOv+<{uPh#Qh9i@=k`#!3mqGrZp&jaPo2DXzQ-}`eWRk^*%hUokZ@Zfh^_f z>83m?^kCVZn`kK((Jf};;C}I7WW8Wi1K2Vy%O{OBYYa+~GATVUa~6}uH${jCFFTd{ zWuB1c?E7SXj}-mRvA=25d_~tgDQutF-AMkuOf&V%iMwCJ9%a8 zw9cUx-zmMyXS@b;W1?gftCr5{PvqG$i$u94Wl65Wkin2a`WAX|uM7d6bC*wmu%Prq`~js&%)LcyptCqv`Lc9iB(7oy*<^${ zV=*;*z^Kl#kn;NB?yY2&f_-cdYc1rKAi1=RRY`{nan`3%xhT)bYx$G^MY6GYh|+Qp zEjzBeX-u7q0cx1AL`IFSyV~%TbhJOKA#dz%B1`>rnQA#RWIio8*b7Hf>WXLn2U+dU zOZ91x%$f>;qg$PuW5{@4J*!$$_~Q@$=*K)P=0}k?-DzYD@7@!<9}!=j(d$wbxmSWn zwRgI`^}VZ`EsEkqt{zXRK`S)jY_Z>A;T0qh`#=aMs*@&8YNb+Qg@_nteD+Z(If1?p z^;nuIs!leNrb5U!Eo&$_$N|@hmMtwfjp=<b1CPX#q9W zG(8Z@eDx>a6*);zS8{WD zRUSoHyPA0Ik`#lA>M@wkJTw%fO^}CFvwBR5wfd&eH`7+ysw|<$=a&g-WDovPQZ?^R zm`R+wDTSfbS-(Akd(Qkdw|EQF$f+<`-3C`>U)naHarUSRNXc#TBY0d+1R7ysip@CT zU-d4YnnKjQF1jWzD6O)oR`!;vU4cD)zWda;7E3}EMu|8tMK@s4SSV-yS6q4uy-A#= zC45UwU86HRv#GTd6K*ni_^r2oyqw_a`gw2Q|o%)U(ULG^S1A z2yAK9kHOWLroWn}It8qfQJRd-s0-3N^B|Bcsu)R{XN3%kB?nqq)@Pd>XDmP-}edW*USB;f-%%aPbeFxfhqp=R2iz_pJtj=NQc z-ZR+^qDHEnF0Uk=)zVcq!>eGXw9V!;A(Rb^}XorXzjF=MZA{$s0_X}b;>PnoQwzd~(;AdYQIV_31Oubq=iMK=w^5X?uE-fi6 zrrq_RTUjm6W$J4GgQR_RgtXbw$|-<78`!C@8`CR#xNFS2$+tjJTpUzxl>6P=i(VA; z3HwD;$w9x-aZgBw&zpTuRo%2go7}r z1MSAPR%JmkesBat^f2pQtX}?I9m&&aDTcWMBIIskDtPn(7&En-KdRA*?WI-7TpfR}H^>HyEy%H#4@eS{C!E#_OZRiFb}tt1exgc||V znHe8z@eU7_USn5_v; zmnNsZkk2qcZG}|FxM#;4Y{;YG?Q17v2IK?0RaZq{l+>7W6v9yFU-A2loj$lib97ib zWwd-64>rjtR}YZv_5P3x&0#~hQJQS8lzH%xFw4yDpg6;{l9gqyWq%n3^NqBa<(>hH zQ(?$2qbompI*2el`b~$;?t&j#IfAjB^RCAyh<;{nipHw&z)(}|X0VFVB>#2;JF{P& zURR4^yXkh%14y&k> zpFpV;2}^TKD!$I#p-n8qM-)&3wyqpU{B_CkHbq|ZjP>PU2^3f zcBzI^Ae<4eeqE|nLFNJ5d`N2}V|do2UR6&`RO)Nb79IP*U=VdzB$6J@eofj$vI&%h zSK|(^ul&VZOcYK_7qKksrGkD)N+5p`0iwQzRZ2#~5&UGZaFM?G9i>ROrbXS5FEPm? zn`KRQEKNapu^ACVa2@->SSAAkX1-o)0uc>x$06G2E&_QQ$rZ(ZYD6h(*q;ezS8HeC zlDlVQ{fH;y`Z_vq;v$d7lL8b|k1D%ebOkYi*<3(3~PU-}iCC<~0$oVge1BAj-Qm zXe*7M4ioDX=NV64Y_?TJr)yogPq**+yO}ZsLYTSi00~~juHXz|7J*Np7l(}ir6bbQ zULquThPylR7=t7?ovH9F2{rTAygUM74jop)KY;LP%mR`G>^&7989S>DgG+<}Qdxr` z@9-^kbp|#d3YQiF&ySdrs=aZ^w7qZp!1>dlDcXbZajq;~W z=4#w`1+fUosa?BKbf4OYS({1F8F5eqPj2r&g}h2_Uxv|q&G=DYfU_YtmPl?KL2DwC zoiARK7V~y427Rzi3U|X`WAM)Dy!hN@erqpE%g*O7DG^%L)b47Rtx-i$ zHKS`w`i+Jc$1i?eeU9mp#~hoxO4}4kQk!t&bvuhjhAlQ-VrU`s2^?UL<+pSXsD7DH zz5XSfjeTSq!HPx4j3BeVB}Q#UIA8XkHETMT5x#QDdUkpq$%H026sRkKAl3P=n zLq@++f^85Via8x^w5Wj-@uUD*Wx)g^N6ZD@J0Z9%+Nwtae>mAvE;o3Cy@b3uAd|t=shZx`e7(>fpQ0%>^GdNI!7;cEOO>136cAsb_^)sUnKLv}Up+JO zXd2dBt#F~*s?G%`Xhv1O+FKuum&adOwPUL6QU`piy0)iWkZhSIcVK=Db=!grVF+zT z?d2v#H)axW@rDM&traOQiUsyVCg8FOx8hvtTUIsvl7W30dG1>xq;d3G5tsDdk|ToG zTr$TVF%5xlyHFr*9L=sq@81XnJS-%ME}RSL@)W5d%(>Q@eGarE`XaxvCxMVXe9uCc zI!n}WH_83Vuefs%k$B%o3L_na&KVPi za^$8B$G8wG^r3VuXR+l*_fY@jO5YP3|Kd}VL54)R>sSHYj|jt#NLIB2jcE;g`&NSH z)Q%W+i`VacgWAie?7Utre#J-}zY$|0AcWhGHD$P%bJ1=?k)X$of}`@Kw6UC#^UVm7 z_-AiyXE%JjK=2p*>vlS$)ZD$31&u_{ZE^*)7;^jw=EhcSddFa}NEQKkmJrZ6zPFA+ z{2W>1+dbEXDKWa*F&r=*r)IYLIZ zDprTPBpHVD@%v#3AL%pk%9sy@snMYsVz^8ADDVC`2E+-v?TBD)mMx<&@-FLa+w^53Mbo9e5=Izbz`_`>}KZ#9p48%I9#IY0|HNI*2wRSKIW9r=T#)-LjS&Tuv7dh z4ab`weR|m_~&qn$$*C(0dv>XfB;w#=CjkK zOjInNS7_hEEzv;9j$rzbd%j#*^Lf_Mq7UmHP69Nigds@B-TamoKl;AWy>T&+J=&y` z{pd5ZwT#_gw~s7?cNyJ?I?s|+je(|vFZm9RBAX2{ zMfYg@aGmjxe)t&{eKw0`tu1$SaP>FN{wnGKce_2TU!e&;5d!Tq4xfhND6bjHikb+8 ztfjmVN9kyS8w0Kr?aFTpJFhRvth0JGL;HNTnmB3gRIS`~n>nu?dJdy1z7%J26pV}M z^4|k`uN~h#TY@F@+nIzXJ3Ickqzm|SiL(>KRv)Tx)kooubr^$sy28~4_&@A4F*M{H z?&|9Q*44FKnzx*wnP3e8Akbnq#)HAl9r^Jc`H%o`aB^vSa(-<9a%zCErnQojx$kSq zT4_aVEy^I15(^`kBy&SWeFSK=f5m#6fO%l>O>zaaLwCoA4FW#XE2=QlG&4jD5lgL z_1<>pYcXdojm7IYi+pv7IiSyrmH+06vi;^!)PaN6dpdVtWNtF=4sEpYgj!<)?f9XG z!M4XI@Ed#wu{Z9^Ux5}V5*;phOAQ}G_0Ewl6~QOZhF~xM$CoEFum5;t{xo5q&3rfB zD9ERPb7;rZuIm6n*w=+0C^CujGNAC+ zFA{j4%DSn7!e6VZbUvi?1s4=sTkH5%J2uWR06H)g!SmX$G@m2PAOOI=_Xj8DX~I2o zyK2OB8mC&u_!A5h9A8+x;a25<{LP)Lq-0OTgz0kEyh|pI^#&;-C0I1##V#U9u@XCv zoLWsyt-qBAhDu*y_d=LU31i}H9lc>z45(CAmSQ(=(#hel#MtZ0e7Q+#0)ioM4%91= z_?F9~^l{wUO*>mA?0f6DSd$NWG+-Ieg+{V@G@8pksI>P@|7|Mf}~xC8A*Yd_BOj z8f76kz?@@5{E2{KY(6309fRnUKws~RQh_&1ptbpR6Tf)Wggw&} z!bTfftV2ose>9~rxM;8Wc4{yq&Qr&vM`jFSciSwdGo;_YSEmkqKP8V?7UfL5`ua$! zt6Xa-W|L#UwuMA)ZQk*tu1c=(hz~N`)c{OH`9Dl}h5d2ZgsILJDrQ6;G*ifp-4z%z z7tu&IjzfpZv^~2`yt4scm(H)p&ejt3F-gv?jqaP&^MEr9EharlRf%vU>c)ZAxvwMx z3+Z+R22{wARG_~Yv~t7G#Nm!dPe|16E;~yW%-u1@uTH+yHL$o|uH(1*S}p7?c-@`q z`@Kf#F=M!f$AEd^@SIIt^502K2LL$O|0KBQX~I8O!e>mUT%bi@ZSkpy9v7n865h0^oQ4t{%!F)CW z{%Edd?JZ>{R3fx2Pu-Zi2H)4a*JltVZAg z>#y0Ce+z5<%^3eA%>57V^X~}H!cJjR71h{hHy(Zt^>KJ$@f40awf-$kEQ$}Mn~@;M zV0N`)5A7=hl+wj&&64H|_m@!0N`@qy48>o54@~8xyqsUwxMISVL?eM%i~bX$#V3hr zA1KXoq?2jklWk~R)CDQJzM+A=9!Voxi9P6dRkNsM>-FUH6^bU9vw~QT|4h zQ{+>CWkN->>4En8ujdP&2OWO0hS#MMCDdkOswp^My(F)a!r9WUJ+UFUCjQ0bjgK6? zPTlzP^Up}kRh_Uz6*A}xLweYhv0NkX*t1{kLy;9}f=o1h9$f9<6~Hn)pOp>w@iCzr zH>H>-$3`Qjg#r_lN-%{&)*tS*oEdIFkhlt<6=7@KLx(K>BG0ih8l5-PaKxhoi?-FJ zMd-~v7 zn&wH51gg_gvq0~Id^S^wW-q2eJDqz;t!JQ5G>Dy+oq3zIyKFl8g=ew9PTmaH9_)ob zTGPnehm+0?97CZg@{^-|2uB4k-}NMaeH}QtK~9(R@e?UebOwg61e2MK07Nb(>)AT| z&EF2@003Ng|1lE=?kONW+g^2pp-WmKlr2Y(XRjVCZVv96(Er=^|GqMs1D=i`FgW?? zIQo~$KzKfdw9%k%z#*Ho)JYo_Mbw;lIE9;#FNH;Bn-Dx3oYX>1E!S8%3|EPN| zHsoh@^fREJ)wU^?t2-IrJg^r~$Abz~{(sd42RuoOha`vpTMK4|{@j8+e(TCJ!eC8; z0aUBty!;Ke_sTfW3MOD9>QUe(>XARW@_eY5lBu>Ezv1CjK&igV9B`BX=|6 z1XtUfkbNH$;;9dR3+23pMW;tUBnx2=vyz&i4`A4eOmEcx;)s6L`UcA<98ZS41t5VN z4Q0K_;)n{5IEg@Eq-+vqj^Twp>_z<1g7w|OyynBohI}Cl){>Qg)B;r_Epk?XdbW@) zsx=QmC}z70o2tLFV#lFDuh?9Y)0eVhp|K^`TDS;WE@5xUo5ys$tr>-7=_Y#7ZSfo9 z`l>6fOV|iWZk%Ug!pPs?5l`Ds^B=X`PXYB=EeO%)bu1%fHM3F`Mgh&`V;*{DmxeW;f|H$cLpKrDB4KBG{1= zDl*=$&X^~aBV|}wE5R8Qu8fS5gs^N+y>E0I`N}g55$^v|a`Q)t=u<#@R$>XvT}TcF zRM#-K6R`&$t-rc_`G0v_ApfP3+JOAvWH1vZO^G87br1v(*J5)Ej8hH=Nih@V4Dk#> zKoImmKnNVd95$@ZQ`Ai`HdE78PD)R$TF%PVNYPfsPB=FlTGuw*1Zb%;H6Ixb!E~0V;c9M1q(h9*YArZlg4MKt>4*~*J zRB+MLn`bNSE8uUi|8&D6PZoRr0rPtb7|&pbvW=9Q*^cHP0ZX{6v_F-l(M-+%2GfiA ziX0$_8B$z6)-DqIxSSv4JRPRItBScoli#`!AhR0MI!ERSMsHVDn8++VtOSG8Zys(e z!nQ?N39!ep<{%lN+uzt5M&}02a)=oj12te!o`eXihvc1_q*BB#a`NnIQ9iPM%7-qeAFa_i ysoz2N@KU3R=nBjRu|8--F!K3$ex=?xo)CAs&y(3;hp@%g{Ce literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_local_unix_makefile_generator3.cxx.i b/CMakeLua/.hg/store/data/_source/cm_local_unix_makefile_generator3.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..710104243eb048fff0181e3a25d7483c60af8749 GIT binary patch literal 22506 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 PR&N13AB1y>%q{*em7l>U literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_local_unix_makefile_generator3.h.i b/CMakeLua/.hg/store/data/_source/cm_local_unix_makefile_generator3.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d141ec5df9d3808eebb1722cae0c080f390d25cd GIT binary patch literal 5585 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_local_visual_studio_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_local_visual_studio_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2599ab2d6c1185c9f0353b848be11453542e3173 GIT binary patch literal 939 zcwPak162F~0RRC20000000V0P00>zC0000000061|NsC0|Ns9~1$A>Pztr)T`yHQ) z7brWL`n+!d00000000000001ZoUK)DZ`(Ey{;pqfNQxkJQz^|hw2<2Xu9`H)9NUnb z6afkhGfcX}k6%Z}Z=#deaPlfX{w4nTrw)3J#tNk=YU4y(hX5lfp@Ug4 zXwj@N4~Z>9+%ksl4+q*nE#pNX0npUosK$U|W9TU=qJ~p}* zm9SuS(M1IGo(t=YShfyx_%vQz%&rzNn%=;tQJRjXi<=>=g{ySy09UAb5?2wlZloX# z@ffDuE$9L+&(h?AK%@8L$#`+&V?7@)re|3O=d%<>FdwChadI^or9IL7DxJ@=v#?Lp z)3T*rA@I8*D(wVE+oe)#AF}d#V2-LzIX#&Q2T`yu3YBBAQ$W8}!9Ljtg%6n#o#L|1 z5%#`W{!4{>LBJ)mmPj()8jj~A-Qf@4J{sLN!yt$T1Ngkzy5DC2WVSSdGI-A{#n&Nx z-FkEA?V;QNNE0yds9mhk7`+m???9`#uR4>0y3KW6YXwdNlhTvyauNj(hYv9{?NSO3 zKb9-_Gw63>63s4(!{rR-Z zAo+u&Y4J+;=`)qnTA?NRQi=f9<#Ft%NtIiwtm8T4eofIQt#!Iidicbn4>n}o>Zl)# zd#`Ui6*B`^Yx9MCeGrDy(B}3rSb8r+Ib}6Igj#AX0WD_@&SajsTlp9WoojmS5ASPc z9+jNJwJ$EbgT2pckJ{yX6hX!c1ik#7GKTJdpeTin+`2P?6re>;4X7JB)MlNj&ojlZ zEmf*UK(oa<}zP{}(iFikLrb2>&~dyHP;*_CHE>3g5>z4E`d_ NKB`<4!9R>go^J*rzr+9l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_local_x_code_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_local_x_code_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9824aa1ab52a8ead37f024bbe5919c69de76462b GIT binary patch literal 778 zcwPYt1NHm>0RRC20000000PPY00(&h0000000061|NsC0|NsB>bH8>Cs;jU$_bsyF26Exw&(yH-}o51u&2zk}Pon!0WQ_2zBtJ zP^vzNnVt%nfQe3djPQUdN~VP*SXYEuj0OcqLvLjAE(A$O1T6mQi4Zr%cJT62Tfh;4 zIxLMc78#g#azcT7rV9>YDW1m`#|gLWF&=2zu;Pozpn&9lS?Xv8t(Fa;77$_0itv5gS7 zjJAH!ASBGRp1Y2-TrTY(AxUf@Bj?fYcARbLOeZmrXb_@iJXW^pjg~*-3Y3`U9RWRu zTxrQCnZ^*F+WupI>_emX3{Q>Wu+j6MuVKmcOk^5xfhiO$dPdk}9&-W_kz}b}ftW(K zIrJV0)wpYS+Wxa?w$=7~&Cv*2{UJ19&=~q{Z`^4NUzrBu;h;Zi+Qq1bmrcY1A=t>6 z3e5vl`7ntvO{c~TOq1?3)xj)Sb*v9O4dN_BDDC#otn^38Lo6om)r>?Y18k8gO~!JZ z`T>`AEdeCdx9v0Y0M%;`fHJM z#IJ{_h+B}u>$lB>>v75#bWT`&$5SR(tsHm*Qx+?{wtoIEA%5*w;_y8v9lEYLOlh>Q zp9j=FlM(8BE-|3csvIOmgdCqLeOxL2*IU&SFh^O}MM=0u<%hwj{bmEpE7TQpXGqkU zOrccz7eX%t4|m_Lu4`?^>rcK>qsH~?K{=|;s8uNDsTEhi{*^1b$nl@vsC#=1?;%Mk zRrr1PF|9&GcFbAIdnzi0n`x#Z{l-4m1dQspBh+3dC8j!;V_RU5>!Now`Aa3XLzzwe I4YfNb1Cjb`WB>pF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_local_x_code_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_local_x_code_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6abdec7add3a5bf8d37380f48470e511fdf9d76d GIT binary patch literal 754 zcwPbW0uB8D0RRC20000000OcA00oQy0000000061|NsC0|NsB&xc7u_DrYlXFSyMk zJ=FkK;V*Om00000000000001ZoUK%0PunmM{hnWO1B9SJQqa)0uuaMWjA|{d(l9`p zG`Wt`cysK^c2cTo`|Ud?rJ$*7`+z?rPTsrccjvQ%&b#Lto(C|}YN|;Y0zf<<-x(Z0 ztd%hbBSCDgbP4Wn&IN;yOfpTZ(ik>SStXc@f~_PTJ3Ith_7x@KCRQ0+k^N%7hAj-~ z6FIHO)CI+Rd-&s&*j52G+WAqp`zq+Z4!VbM_$E9$4qtYg(9cX8u4LG(#%kVv9QwzI zA{?vPLi1^1VTbNIkt6uT?VM<~4?RhJ_cRS2D`}LryefTwNC;@c3}|MUu36@z+L*Bi zMc>|8P#OwrXJHV`=X0NySP)<7X>gGa`oROWu%!Sj8Dz{7E{yNI;YbT^z^J@&1US#Q zv6@dR%QCp`r5D4i6r#&pxQ>z}x=e3RV9sr!DhsS;5?U2oU~D-P9D`6u6KNNqau}Q? z@dZXjAA0>>dh5)d_tML=@fgmB2}Cf8lC&3J^`m5|G`dPg!||Elrs{ObMAZ!Fs*F-u zPMK+vDU~xVT`Lfab;qoptpPiMx5;yvv3z~+d@a091i55S;wT`gs4@l{OUk3p+wi=g z(}6Ek5M$O$c!2msbF^@+xy4$5a4fi?NQ0SH-x#&Xa>TU?j+0fcTm%~UO7c4>?@vvx zRSDc07hke+!u0AyVYgug{$dV7m{k+ODg2q6_rq(E5cf0)f)}`#7AT>(n@WlW5Sd|D z(@GoMVg)%7IGHT4H*-=6>l%ISk~_O6u5D|sZG~0%^&|;7if4E!*p%ogv%`ri)H$Yg z%5h<2ab|XC*`gh=&3nIX!G8{8voNe1nYYc{oftWNzYYH>ka2BVm&;5ZsXUmzx4Kvv k#Zw@S-Co+=Z9h-EndY^-qCD>>)@PH+jOU*B8$qhI`oiE~CIA2c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_macro_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_macro_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4cdd635bbf99213c0602711459aa776007d14eba GIT binary patch literal 3782 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_macro_command.h.i b/CMakeLua/.hg/store/data/_source/cm_macro_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7008ab1a988956dd629ed43207fa349b6b69360b GIT binary patch literal 2263 zcwSYNX*?5*AHe5Iv$4(N$nj8$&|)gLCs&SGIa02S##|9Yj54_?!_-2UW0@R7xz~^@ za?X)+F*-<*L`38HKRx|lJl_|;&+o(!zo!FV_UY79hkpLP{})^??aH+PNo^=+u#5>$@Cm{(rc z=}1&%)-Bf&SL6vrtbkUDTaFqAmGn!n>GaM1Z#mhT?qOSVdu3MTe1ZN0tY=01fDYKM z3Y!m1!>)GKq0gSK2SntYmuELK+fN0+=>(*cvLR|ML@$>a0l}%ES&s^p1gN9O^c~tS z)i%3Dpq^_bvp(;yJnur#5sAhXs@RP$S;HSsK&D8{l-t8fq zpbddcY^1kX!)<^S}Md4%#V(XpSsWHx55EGK1z*u0ORFj)Zof zS_x?LKtyQD;0;RJzATC_j;eNUe!d;?nh37 z!tk8zVgTy6jg)Fr;E@OIP|O8kH<{5?HO{H|l`v;359%eNzxRhK#wPEa#mRbcrb+N+ zD)%(wiTXHxZKq-^w`Z>sysrX3*+AdjT_c_Nz!C`VDC6@+)Cf;C28o?iYjwo%)l9?j z&uLM{u`=-9>*YAh!`c<_8H4HD5g}?>I`t~~=C9~Uk>l9|M z%@YUemGF61x0;LDTA10mxiQrUJU5SS7)LPHU*LH4j%Z5pcj)?Lz?-cwrNRuGOI&0} zX%I5DAN}5aSW_=_#$VALGh^N9+d&mh7gJxtON(z~ZjKn0`JW$7pgyL)CvC)9H4x_| zBV`kMy@#hjkx}C0E88Q!%mvR_7k&6#Lnv$>sq{#vi8(;?QMxZ?a`=p9@%Q#3(%5h| zxWmS%3wtfamelaWG~4&1{H2Mk`awz;#0Pf(tbWI63VrvI{Umo{0tM{{B}MqORK=uA zN;d?}V;RM1wn6vZIy^0`uhW7Od^xtQkSeHvHh!WwE-bB&9eJxn*ch+^WHm6(Nyc(2ApJ7x0#JMc&szuG2&tQS%ZU z^;>Q)ec=`$#H0;m@CGqCVSD*yXG4OMrs(RPb}cC&WZJL>cD1-*lCRdfM zooS(kckoC+PqgoL`&E^AlziC;cw8h>b;4ZNK=}^T{OYw3H_nSvY5HTQCoO5wC^jGmd?st@eh*9AhZ|jYWxOH@s zmMfXu=EuEuZu~rj5*})$tIc>|B7r&5vIkpOiYtubpB~fX)wPS3?#J&pwl+;0&-Ii= zqm=nhaGS|6qL)SsU5I=&2WoSe8Q+Dd_rc3d?J~n(!Hnfpm;U~YMIx5Hvv^40$qp49QZPtk00Vg5bGtu(LRYYPpytf}I47~s0g`;2$t_v< zd8J)9f#<#VA+e6N*|Jo&_wOQ~O zf)gl7@sT_M+Hgxy*J`ERO6|sBCq>1im@TZ1bHd=@i(}6>;&)_rJTEqE$Q2zh63)>7 z!41d<90vm6urKo0qw|Ur8U5d8Y)~n^C*UuO7_hfMDsUl3$b&HhDN&`XCl)orE8V5o zpXDM%GgqO`e>4)s=9(KCADg@t>Hetu>9uLqPOmQ7Zj*8Zb*Maz& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_make_depend.cxx.i b/CMakeLua/.hg/store/data/_source/cm_make_depend.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9420c5e5479925e2a9c5897b62f9dd5e1d29dd71 GIT binary patch literal 3463 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 pzA-SUssc5df*eoKO1LCNw*Z@!FLZ#H2 z=rl#&z*<`X00000000000001ZoUK=FkJ>m8{+?ekYO6b-6t=6oN)5f0ICi&1-4_J3 zRi%?oCNadfNgUY@yQu2@_M5R25+H0>r}6`gk6|M9Gz6i4Opy zYj(%s6^xYB`qd<6W+_zy^mHj=4)1x&6*E$y*|iMwn3EN}n2u(&?n98!-gBPuH0(v) zHN3!`S1euSY(;xVFJIz=b7q_&n!4YoCns~iz0==t8P`WL+bFS$477qap`5};VeXmYT^Of9kG{2CAIVfpWkjCz0ETf4)=Y!q znyWPrdx$pUyh7}m2Ln<;WK8Dw`}gl5OTvrtb4=_ zKl4av&~j-R0san!HcBjV!$bHoo`1OgG>75MSNJlVPKP)1uLHOjCX%@UzUC=76ceFs zlEngz5J<7qY(OsI`eHizfL6ml$5-R|S0Z~kp5I)|W^j2sg&|Ca)A@Mx>1sGFkS3p| zliS%v&$&vtY$4Yif^8U6X+*%abtaKSIwc7(gMmk{ewy$)eebzgrXgSMXy)(8dydaU z%J(1R_B4p|ki#>#LW1i>&vu^AWUc~!S*%n`?}9{cbbrcMdCb(sLxx!=DfOacfzj6glCnikYp}f?6O6;+dX@{EF!S@hhs(qsZd6l#6WNiEG zPU14h4w^9(6T&oj;4*-%4xOjH6Wn?ngS6#JmG;}4CS}PHID)!OL@Gy_Q5+Lk}WzqH22tvczg-kQCLr?Hm>Sk6H#{6vMvP$p+F{JU>hrUINT7NF%(x`BU~*~SHni78=vw?VSC-IJ?%Qi!NR^>8d*)RMSD43ABTd2Md={)%syW zHU6TPZHK!XSJW1g2!-Ml+l^Bp^-iX+S=#y{o@GJUW_lzx2sN{2RAVKFh^fwAD&Oy_ zuqX!`4J>JUy5;Rkq5;#lY%roVrSrUuw zgIKmk7QK+_r6E~`?(1lW9rLi1;S#Tf-GZ-T2~K66mnmrworgXg=CdZMhKwGz7m~z)Dg)zFTb$(uCb|E!1jJ?EhM|WC^0t^eBls_c!L9O ze1{iPHGtOhdR({FWqq7S7aG#AcP9x{Yavc6o1NCzJoq7ddnfZ!+EoZKcq~?&g*Xdf zuw!oUCZ;Qc?jCv_IJ_!KJs%EHPmeFPES7FBf7=ur)Lo4ZM5j=h^LpFN_AcT^4o&Us zK!4rh737JZ${afU!6-Jd`n7)Uv}Ytg;cdt=!|w@QQg z?fI<_BZiZl!$w|f_fBfZEycqe15DL-@qlA677O+}{rDi%syj!_h*0^e$M+B3bILh~cpfZ1YDhgIW+FXmX&qeKu)V7}dsZHKUd427rax|fU~)z(DJg8`@_%49ze8-_7;2AekjK^<7Y0Az Tcyw`K=f&p;D3;!TobS)yNi;2r literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_make_directory_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_make_directory_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1276898dc6e66a59bda9a5d201a4461b4eb2a82e GIT binary patch literal 996 zcwS>*WME_f1Ey^Z46GIqHUr~-DENJ+r+_8!ZGc#qZ-8s0tdCwrd_4masF<@hIMM&M zfxzE+@r5ZFS&eE-eLPwkue6rAWM^J&Q#A3N{5mc=yEFEtpLhF@_txsHW&-z5w4c~n z{r>5@yOwvXtJfd@%+MBf*7US8L&xto=1$B>YkM+zjMLJ+o?4EFN#^fnsdizPG;&=hvNOEZX`Ynku-I|$p-hLYhd0=IP5!a#x?Jwmw(E-@Cfwm%6*gCI_6kv^`b~ja+7`1m z&5YT(Xz6XXw3FqpUfnG#(Enn`adLA~*Mt2V9k}m*KJ=mY>nAm@)chxlG$tP6n#McR z&@@?dgBIib)0?Fm=gbeje(6U4fiHKi?5!^HIFt2G+29fXwO1R8+1dm2=kET#%8}!; zh5X{T8EZ?sf?RWsIR!&;IZaJVASL5{@#qe+b#&D=@>`2%AMLi z!;!a4>*w+6>lXbpee$+!cyVoo_rguPA${O@Xe<<-~R(*CcEe=f@_%xOHo=4j2! zYiG3{NWI*|xY+cLlvpGG?+sJ$W-++dylUs@nYR6c%zVzq`dzJi4VdS5Rk3`i*<<+S z`xLg+MI94j(;~wTvCk2gTE12NLw34Weq6^N^S9w;7LUSCylN_uvw5%ov1wK~EWHE4 zI$)~zhbDSQ5D7~4yWiKon)}4GZR_EGM>Ay})P)7qzd}v*s=f!g4jG74Kgu=#$bK)8 zhqdr^$_m##7W~#6iyqwEH8t=~RL1?by2bXXa~mC;oR}Eo8!n14a2<)6@Wevl&ubG; zv%*7 zlE3X{Y!ltZWud=CNp;rdg1l!d9_^8r+U;n)$?JNxPH&mW!VO!af2@4$Jx%uKer?WI OGH#zAaG$wtArAn|IMDV0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_make_directory_command.h.i b/CMakeLua/.hg/store/data/_source/cm_make_directory_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f33bbefe26af267610edae4d793a54481b55a55c GIT binary patch literal 1428 zcwPaN1#9{M0RRC20000000e0O014>;0000000061|NsC0|Ns94;lP!%EOgWHv85G$ z7_E>_u@QU#00000000000001ZoUK;sIPe(zFoQAHQE{LWs%239i^yD zb7X}Rb|I1&Xk#IEh_Qe0WGrRg&)coma=DCoj$_8g&RQ3f!DVX~n)zH2ibjd>Oez-# zZupyI(vdT1$%ycrNawAb7G5Ouy+66QzL`+x>XyEDMx)Nvd>$=n)JIjmz~iXX?Qal zUXRb>>Zk#iP0d0O-mUZ^QFxr{r%ABcir&doCn7zdp1Ul1hgGS? z;Q&Bru8KrZjptj{)uO1?Y|;;|m~#h`BSOH`N^C!#3og?YvEo50$?OUZD=ZI10dTTT zlmbnqX2{!*NUp>|+@buC>oevlFPx{TplKnMC+29*tPc(KK`!BKLUU`-1{YTndW90i zghoNTyuf@cgj#J9AQ2_+tKN=pzV`Yf@TdsZc|I_z5!{s0*x2k7gmHFTG78Xg4#4Mrb=?!b})L3s#k4@7M%>z zZB})_htWb>UoZuZy4na*4RQ@+*1Y2~r-kor@CLm}U1hYWH>#0%EWfP)TTNOl570a< z!=9pjj5t#&OlBtZa}HrCl@_fQnwvsqv|qd0f1GoIJ4p1Nr|cC^ttaLBdzf z7l5Y`x0%q1Orw7Q zvUnv$000001Ze;O00021000Uf000000003&00000|NsC0*v%y1rPB~AY_JmySwX+m za&qdK000000000000000c${@jF$%&!5L^o_Qu=}|LQoKsO9<*IR$8PJ1^Y7|;UM0@ z?Iz@lKE^*7liF!!h8bo6;0-XD13-azQmiEo2uGbJ$u>?zoMtF;nQmmh!!SU+Yfr}6 zUpc($){I81Mb^gv(+|Kb?ngVs)_87IjSuH)EUaOp>Wd;;5I?1Cb;-^j22JdZt&Uha iOB|u{6|DmNkMecyblGtKePhK9VMGHj_rVuncsVjAyQRSZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_makefile.cxx.i b/CMakeLua/.hg/store/data/_source/cm_makefile.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..415f8edbc1fd0e49e2f009169b2f74c6be449b9c GIT binary patch literal 26479 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_makefile.h.i b/CMakeLua/.hg/store/data/_source/cm_makefile.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2895193226a71ce3a8055353bae14c46bcb7d518 GIT binary patch literal 8443 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 i;^-;3tN&}K?yKf}mi`1M}omP$eI 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_makefile_executable_target_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_makefile_executable_target_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..947e8ff979936b77ee66803b9448dc49c614fde1 GIT binary patch literal 642 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_makefile_target_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_makefile_target_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..08f4ef818b88b2973999ae43f59d4df2bb58ab37 GIT binary patch literal 16569 zcwU{lV~}NA6eN7h=(26wwr$(C)z#Hy+jf_2+qP}n)ivF3-bBosh?)4}+Yu|{{?oE-}Q1ONj3vq;7OfL87Q`5OTA_3skb4nMTTc`bAZBvPkKJWxrkM}h_XZ_6X| zlGoaKT`Ye4l^TKUP@ztQQ*zTb3&lI4m_oZfzJ#=h$1cH0@Iavt6SM_jp?Q4Jt?xeV z%>WRTY>F>8wY4>wkeM$3^=rGn`SY&Uw^9uu)BMyGjqWLc;3OybTB8R0p`K;heR{tp z_17v8Sub{S4Gqm4OnO#vz3N1b>dj&a|Ipp1L0haVecweoYMG$>+iw5V`wq2* z2NKzG`3+XaQx1O!e28K1E`a3sb2Gi(hv{{O{ZrQ`-OEw;)7O6cC;FG9><TlJdgxlx$&2yzsSAY z&SYytK{Q$ohQb-b@9CmpebLz!@eWQi#ZY>->nZ5#POMaGG;j8A2iJEGMQ6C*IbUko zu^y-BeEA^l3iil!QGvXtk>CnjeilcV;s|2joM;DB}Rbg;K^T&h~dn<9-jDc;JLhtAli5&b(#07&>F>~%_bhQB#DL# z%OT+R0Vm@gJy>Y8bS}R!NfqB(4f(sVLT@%`tMMxKnTacS>X^{z7~qymW$Fdhg5~S@ zq>130?OLl;JA}KuR!4Jf(!$pc?NID`KYOGKkCOeS2Tl*Cvdg%mp}MMwqo|2Tez8v_wQ3JG5pIrcWiz~sJZtq<;_st_?*9lNuS|(06-lG`*wRd^P zWfXWwqpDm;ND4VfyVRk@XK1HyNea3M#j?ONJ}CSHW=04=Ab?s;lPGuW%-cI(w5A!i z0_nxsD_|T405)*9?WpgWu&Lf5ErNoPD3BJQ#7WQGja+Qi;E6e~Y*s6b6p*sutOrod zkuwMjzdk?Rdn%Xnk%c@K0N!AJSCj#P^E(@-$5ouxB1nDP+PWhCt#v(bq4quV>G{3p z0}LAo*;ynYe;=;#35J22u{_uE5F0P6Z0ce30t+Z z-qwGOt0d@q1F%{V9N!JAz)N@pigk9#pzJR!j7Kn+Q#$&UJtEnC967v-WIU};fwp<5 z8v2GyqeH(^s=CDn0z0CBBv?ogq#m74v+y_Rg{q5#-2BP=6hZH6Xnxn*XdCr~{fI_0 z*7LRG_f?bZ0rh&GZHKZVGnVk8movGQ%Ff-)&dE;PyEJ0&33J-Nv^+ps6y&1Ze4n37R$9I>jL_LK(|a$WIg z`nYpD0FG#dQ2YfAsETp*9#?`~qg*qXdxcy5;%-z5eFCr0Bkk2g6#|Mo9=;S1+dw9U z3nc08T{mpZ)wXh&@B>i_u5&*o@`0nR_@eqPdYL4}bXp)D0YlPkQGKb#QoeC?<-0z< z(6YoVu^5)FRZx$#Xvk!;Vb35Hgh%x5r>xb!@x|9ApzlJG*I0%0D><0oGlytoVmTu~ zu_({B58v4ah4Fj7XW2sR+Mp5Yh1>?N$#RUOC<*n0CDs$A!w(xmnY>1;pEP)fgbbq( z_t$TY9yB~Z_ZI$OI?0laj+O`CZ<_2|J@C9SghJ-|`SZE%d=c1joIknoqvQo@3ln?K z>{uJ=@+BSUW^NCSQs3F8Uw&8r7LPGGB!*a$JipY_&@-iI{^*+nTjm4(Fna$yThu-@ z8SR_rY1M!uUuJ*t3U6t~3B{NJ%krMVyvKa`*U!%d5pwZfcApsZ?=a_KL@tm6G3xsY zFI8T2KloNVQZKK&$w^+fP_CNvc|j=gzmm8MQ^_i+k1~<{;kXuS1WNk0$o$ST4fk__ z>P`y0!BR6_nn)5T$GT@w{kVi2Z$3D`4EE58p8Alo4Bm?Y9rd(S^Qo0sN+Yoh2TM|1 zW7O0`R^D8y#t}zA+x4_TIrxkEhpI*0&PeG7vh%97I;bth^OR9mBm5_&Da&(#3Rsxr-yQutBboBa#ARd*SqsvO_V1yNHX3>LXguc#f%7x1(Q{jm-Z zO)6&xO*}jueLZUp=f{~BP&+Yk>@=BwcOL#8{2DiE@w~mNs};iA*87bGXZq{YZH5~s zGBi>)*qofdSvoZTnqS-l(E7zC$=rv*n;X5ky(8R1nPV)vH0(%Hw2swrqMcKWGrx;QR7sAMjhW-D+k4wD-$z zi!s#-oMjV-3!$RBca|t02lZ+PA|DLD`=|HRPNIPVEB@DtFDP{SfIColCOeGlPXT(; z%3T`uXlUW-9a#neKK~2_**G_3G6b|0oKps!;SLTWpH#<{!Oi$I0~FclASTSEBN|w= z9>+d@g=fwPAwX<~P7%}&m)CT>9a!5}bjMTz1Gj|Xd|}R1YX3RTH&om$lgw??Q5L0U zWM(?@fP=6y>~9d+W+W&#*IMAW_u&n}+duFdx>fq&61crr?yRzts+RTRn?QGtwZUZg zELOzMs2s2)_q4Jlo3mGvEf3dsPjj=!lGh28Lrff`D+lSJWMGynI&!2Ez3|Nt%L07b z*E~wC34O~BBDxsomTL42Oq=>Th6dL_~&(Sf(pK?P#3I41Qo0yJ- zTR7WZhOx{sE78Bx_e_Cd(<1x$&8=KqnV!So5Q;f0W@Rlzks+2XC9ocxLA0YQ8AtcG zcCJ|S{?WG#MDIWug;fW5Fn zoV*U*D1E2Qn(u}+4OY8z3MZ5JPP%qZM+$oynoX)MX5Nd2YG!%oir67Nr=1uB#P)!w zm)D$PW_r&uvMnlYV9DE|EnU*qB5D_XamqwvHv&gVZh97ja|l4mDjLK3u0W@2K6)fg zuSvQd+ew^UUrOlzmAz`L^kEvKAV>i#QCq7uG>d}jLjtW~E)P$A-G|C{4p3E8hxc#W|tXsaFls8}6WrW2lN7pkCr?fTv4T8jh~!Y!zX8 zn^){mL{O@Y=)<8diV;^iDLT^=&n65bE_p?VB2=zPxN+TnNAEJcT8;+VgWOZvo8h&ZMJ|8q%jxCb`I&T}E-A;cU#pg!VB zO+oCaH-zY$p$AwjA3s}$ggsTXX{A+ra7o{>8zT?S6$EjU#I`fz=0;@XAmNz)%(tXP zg!$%E|0okzrmmZQ2LV`Eff2+$fXP?0j*Skg1RJ{2Y=W~XSU3sNAq*?oGOzIXI%J7C z#xZ3`&>DEH@EQ=P1(uT9!>A}mD0ZKoqN!87u|rt-tXA|ElbTY_n!@az21O!Hly@!% zznrsavzPTnfEksx-O59jLO<468RX0%78f-xl^+qKj&5kOY;*UR0(mdHTszY2Ra%r} z+}x8-5pH95`g1H(#;KER;+WI@?BVEWa{GrTTV>EC@n95J>8`;~dmgdoOG_1;yG=*> z2`$Nf_RX@kp$92Y3KC6vB{QFl3yiX4406KS_ydwU)D)J&;Z`l;_q!)6iA$=+gS4ws zBz}W=8uy~p?V-z0`S#ChovE1v=?a5N@9W=PK(4VU(fT;s?4CKkO#Eq9@Q2BRkk)ku zL_Bw@Nhf<}EM?SQ8s}Cd6%G5+dnO)%??u=qXRn%wXE#H3w1P>$n_Tc{>ZlV(Us+^A z`2~S53OaohHbjm|TT$8dvmh1S&ntI<$2mk8|1J|QSlZ5Z7S%m1h}~~qTWnY;mPQpWaT#q~$E;enPS@|Q8tjYhH-o^_r%~AzuqX&OZS3rM`4ya;EU1TnN zgU1Te5p#+Ew;C)aNTOHgj>r+p`92YX_`-P<;if zs+rc7lImVc&QT(SPIdf&9usRm#|QBlK|@MO(rd_`!qE8QDKc2HWuLv`7y8s3srAC9 zUKcC6nq_TVeF3&_;Bi{l;`S~L`$99)-XPSuJSa6Z0__PiY|ywxi4~H5M<%Ex;fR#El3j-alNCNQ77qAKT)`=2&x*iM!k^|a z4<{aD$GMI}svS}AJ6%bLiK#Sq!A)!$g(|StjcKbaqJVUVr>VGon2Ebkk=qTm$AJv$ zo1%NSO|~{kAJa~=sOOfY&Tpus#`DK_t>?~9c$rpWxxi`torq0WcssJNu3bibXe-Eb zMyCbsKD&|Wz)<`}mbNAE23msYeiWEthgPrYFc@`cLcUV8Zo~eob6-F~;n5>2CwR5p z^~jjgu?jvk8K6t<^3r{w8&wyAqS>O=Qh^#5#oZfG99f4kR7}&hpquVLFUJ7CpGgU` zNX1@d^De{8trkfA}K?52{^ksGTvR2hNOl&8vM#)T+-4`3QwBrn;o zDNji8j$`99k-r$Q40&aUCf&bQyBiA9uE>HV9ap1aFs5j!ar&(}nTT28>}|eREK;P9 zy7|0h2fLAUOntclL5c;1VT4YeP3bVqRuv*U<)eQT3`f-KN**%H0wbTDG$zhlLUXmjm#EKdnCf3tnL&DO1&ZP#5kV)Pd>{ikH2d~pIxh77+C z!L^(PlP(SS2G#mia~P|);$aWv54-vt-*{M8o(q~R8fNgi>%;}v1IVvBo>24YvoQJ; z&M8z9wtbq=P;RF7Z+R|`sN1{^_1S*PXOL4J_G;aqYFC}Jao|4Lbzz2H@E7t!aQ8IQ z$W+PMG~hHZ_7B}Q{=4Q3$wqZDj=#z9%nl3}uDq}^9`%f`FxySL+JpwYYKaNQd*Bx3 z+rWLxc8XDNO2U44>I&thqVeFQAO6xo(ahTQ9efQow=CGh3^`2G)+C^V;ac&=%q1)t2TVak5D-Pa>KVOJ8zfZv*SBe&$8go_Uh6ION*8hJm&qxpcZ3oyssneC1y14Oxm zjmyK4b}N5bf(MPWq*>nUk2*~z$rD4Bnk2iA#c{ZscCT?<3H48IC16_U3O)RGgK@Bd?N!c*E0Hs`I(2%jK zb}yI`HCz-cby}l0rqkAPAX{FlpkLg14C-ReH{($oB*lhw->G?u0=bowi%pgWJXmav`j{qDeu`>5gRuCB+~J{u|ZZmJ(khXSC7%C0seF&)%VL- zK%JV*rXLdGcxY#T$bS-v3yTnqDRXvLy><-U4mWEJ5e{4RfTj=&s@vJ21wsyp=CUa? z(}9osBe*Vg4P|bHev+Rzj#YzjVqc@>3lh|C!Yjt@?L3BWT7?=eaRSUvl0aj(R=yP~ zafbol83&a*|*nfYxxL2oL!ov(AFse1M3^{^zBJgtB=NiPwydH>RQcylay zj3RK94MGt(cOiFoNqs>6;l@U?=J&ly=d*fW1is;Bzs8# zx|D^alag1)C|H5(XSE2Y%EFM{#1=E7NY<+y3A`dmZJo)CL09BaFZzPtBv%4{%yieg zTLe$a!7s_LWA+@SbdD%S_TZ}0+=^^hVt3{9a6uns)5^SIOD+O3ASbEmlMn!j#)K`D&z2mLsr z+L2yOvy=^faUM+zS6s}7_WDxZ4!Cg9OEa8Yisls%sT58hyG*0%aCy9ghhL;q z%~cvl0r z)c9She%UQxxNTd}e05ea!nmPp)~gRiLKam^{@hvr!7)lBslLp9^d2WvAd^ap06kmY zLptC>Qa&*$0BpgRBkph(Pjn>jBUw~X#Msj^xdi)x z_F?d;ufZX_>d=$b$I49{DG12#AN&muH{|hn_dg38r-?1aBkN#Vv$T8>kACp~pwr|I zNiMBiqc~RGuTXchlSvDhM8cp{pojd{OKWt42R}EC87~bdLUPz;G)QYawp5buB+*w2 z33uT|>aBl-QToQnyR6iz(3)gdj1u9>!GWKN%N8~0f6D^bJ4Z~g+pIZ~bT}7SIc6bS zC8MI^W*q;bqt~3ykw@NRN*T#PUmFJ7Fgn9bfQm&q&tb;p80ds@}MlbKzb*sAG6Y&jmnP3a*C-SVXn2x}(Kj5V?W^mx{wC`LgVmZZ^xr2C?^?8D)C zyE_wmdX_V*(W<-{f6)cs?)@l|$P(}EI@4aNy*@U52^ z3u+{y+)rT2+C>r6t_o#NfyvsE&^~{8W?K6jS&Y7_ad^H&_z#L>Gnt41B*D>2%9K>Y zfM>Y7)*P05t|83HII|;nZNrN7 zW%UxcHtfw0YLv{Qk=&>13riDMG*q`|YmDQP8M;#Z{j~=<^uD%+gVO zhCgc-7FZ{`S~yy==dg+T&=r(VpxjO`XxENFE}OePH^xrOQ&SP(2_42%ml>2Xh-Xlg zf}b41s(e2TcCPi}P`c=F%4U2obFU-{|M@MiSaa8~HjiZ;t(0~+(^2C+^Kj-SnQi-6 z^BuJOwz!DX+Edy=^Tm{sEtr1iXaCAB2;^0~Dp+zjV5NTd06(QaqBoD%@SL}T!tkX~ zCb5DISoX`^$%if1xkk4z@PZS8yS-G|XZ&9+1qZlyC^jFnD5v9=!+SAPCu z2OOz2qsvdMY}F_~aJ)l4**P@j4-c})fQQhmRz5X5M-A25PdoJ_fyFon4EliUPJQ3A zbadIvSFE^9YcXv+yP}Lkel1?Hzd}Nfd`3x6R8r;t@dg>qO(9AG3N;@uKaa` zu@rd~2e*ZPLG<#R&F3MX!%`T_ogddVNFp1-ASEKUG}(VKSeM5|YkUG>r*ZHakz8be zdPdpuIKMz7~v^Rwt$fSW3JitOFO z>O!6F``ygvPo3j#&&$2V%1cXl6bAAH|?q4lsjQHl8F(rx6?&v_}h*@^zOHcC(rjt-Xg< zp`z~6vpq?1h|oC-vE&c3)T(~zrtx1g@~CILRNXae;rOpEcrVH}7za|_(p9V!g2%A) zij>o+b)L?81`>ay?N3}@C?>gsaE+TXVEaG?^V5VbypLOCPpt5y%6J_glLw3zk_r>c zhKKtMr0jv-OjihWFBq{UzmB3S0$D_4kp51z99{F?5VyM~X&dXiu#=A>vR__%K5PfD zV)(HM=}GFrB93#{ZDL&mP0HXpu#g_|;!?d5^~wkr_4BF=i_Zh1!*W;Y}S-(-})vqVfmx9_c4`U+fy7!q*C59AhcAnqKz|Ez)eis?U;{DN4KUKcC z!Y)rzASQ9CK z-}BL-s0|{ET22~&Zz7@*h0s`j2YHOQc*5aBHuGs1%ppSAz#?{TCr=hbkDd8)JZGa< z3!0vy;~^+Pcz!tPLOlL#Zxpup<%ukPD^zeZ%sp2vEu6mJ@Ww%LbsWkEaRCWJko5%K znWFzbVt;=B3l9hSYJ}4_r6yLBe@8ASD9q=VAxm|aGRHu+iP=E?jieR^ce(CuCbN28wW`mJWI9~{$}A{l_ePNt zO|^s6lg%uAU|I{wv_J5gx|r7qTO8(jEx3i`QwUvbxS>3qZeKpVNg9#V4Sk5^)V8Q} z@7w*Un6rie%*3GRp^Sx$?`sDV!|+RspADZhW_2s%H%!vbF{V1Q5t@L&1c07bU#xme z`e{b*s=)$xoIKM_UWO`ZGOMycuYB|+gKQTaB!mh{O}eQgwyY_j#;lUsf)zHj;!~An zJsfFIFPUgahdcnK=5V5!u~m;V#BP-32Z|(7C_U*(UJHEqi_dr_24ti>sgm)76z6Xa zx$wEO*dypOg(T)in)6YhiqWXDY_Gn>Ok*pgNIdux0ib%vZ_ zV-ZKXw9_8ru;n^8*(5gk_`f*kk)mZ(nT;8VDaVPya9a-Drs9=qKg(F5XwOyTiJk0# z@D8Yem)Liag2O^av_25bo)@?{%|6{zLl3iaX)=KN@@uK^jLPr=mBI`;&qacjPzvMj zdUfNrh(h!s?=WZ?Mp+L1fC<(XAxLI6wM9-fQ#ZwUq&FX3!tveB-6dN>izOPJpm{pN%k2#yT##285%jZWZEw({mzi6&R7>6j@#!^g05`6)3~mxk0a1J)R^yg?|f{VQCg>C5d=-Zj6Q=MsyhRR+aL z?XJifShcU)7QI<;hh!$Hkx+#Z@MJ`^?)jZ` zl$c*X#NmyL4rE~bBytj}OQyCW>2hJ; zAO?_c>3EPW>w8IvNb5eEf7Ia$jj$6YISY*d8%V{yDrBcOzHeUD%%8h^r3^h(gZqAA zS;6%%E2o>+NmNy?U^mNE^WtEn#h#^gCRO_{p7!vG_XG+i7J1X90@F$BANrrVN$F!= z$l$n`^`ZQ{_9GU7N@ARs3+o9S*9b7m$c(5AyJR}F+<5CU;|QN)wOcNck=uD!Bx4Q6 zNy|^AL|_0nRN!Q7cnTiW@p{A_mZQq`Dr0J8#bU|G*CX>uyoUO1AI#X2aCrGi<3f9` zZV{bF_ldpg>Qfx;L=g-H1&n$GlLc!fx5%e_< zayd?LO>WVuaqW+@;hr9fsh*yl(%hYRjd-gf z05}ywQ{2y=tzCI>U3o?Rad}C#X-RQK{?IA@LK;?zj%L1i617qaR+?mi#wF%<(1~US z4*GB`)$u?uclOK-D3n4gi_ro)KqeYg2w+M|--M7N=9Hx$;`bw@!&z8dTL9Gd#616S z&-sT&9RScw_%9{1KLz}kJEDTt*bKMUjV<%n7tFEfS7v4-?*9+&aY=clNnv^aH}2qn zxKn(L^eB*kv7nR)=<5TK*GNjz&P+~7k2fpNEXqzzkJ8tv&N@6j-@?yakhJN{8j@UIa2KLzqvF>p9O2MJeoF(q}7ye>42%hGVf|N77WSH*F8{&{Ih zKYu3uto^?!hWo2H2WCLsFPMwspY2h)R|&L{$gp8-8@$f1=52S_o3{LyaHZ0u-I@Tx)(Z_{J9y#^TkO#vpzf3I!0V4QHL+zFUpB%Wk+1ZQ18u(cfs{ZctU}>KZ_suN-O5 z0_IP<3brFj`OhEEko|1?HO!$6RY|l)KnbZEXjn!RN^nG=y}}Uk23YcyGX-goE))X1vrPa3|saZbH}9_ic4=V9?;4} zVh2?RanMrpiB=IO*i@B0TZB?kiNXX>7v{G=9JkrG;k|R-dmWt4;l-LickK3J$b1>j zV6TQjyGmvpizj%2KcYmYGt4ckK=Q`>(ts&<$|x0w3?G?wLKhn7+zgEH^gjax=1Dm+ zv!x7K3qy`N-EERY{7MZIxhdC{8H;8gaiZ?t>-qG>`bXnH#b7Pj5&bTA->smv=Uqa! zo$eO)(Y3ZmOOCEvAM#I%loB>v#rX1P8J<8NxxD&q+duIGs+kdQU#&2F`{#IkOVCRA zm%ztRo;yA#RhMD!O-tmk#tXOtc=c!Z4j*wICb?vwVOTB&(|<5st{m>bWe65>QrSxR z+rH8xM^JqGyWf;me-W4s0O(TvHv++b3hZxIs8Z8tYIM=V=ID#=pwfGm5l(+I{x>T@ z%I9`#3@B3#KRSATXPa6`m0e@ zz)h4bBOP{|dhK#lIlHf$=9{5%vzS z1ZbsrPmz_IPcTxeqH7?SQp1ZCjObI`6J7cW)0mhshDAoRW*uN;H0(THl{?OqJv>U? zd3yS-K{nbxnin`=7G>e#^paSegyY1-Zd&9uRu4vGB%ZrE@eUivp#duS=gCV=hou_h zG@djm6eEm*As+p50-+hhFyypvEL{F6Ev z0H7b~-!Mh|De%9k6LGJ@_j>K^ex9rThOsO~W3?Ui{@>J9DzE?TP_9LMuMlrswFtGs zQ9z}(bwLtPu}xGYsIeUlNrx-nDr(&0Iu%4Ia+Z9Bx=ZV=Bl}3$ z`(JD^==CszZ=rILC8PwjDYx0J8r}6ecUk4~e8sjht( zxKVhJ5oUs)LfsJLRm-k4%ZLTiScYQAc21j&y&T}UxM3O%+zZE%0L9dG3sDHy9kq?R zPoNTc;2r1)%9YXq(#&9}TCA!FoiQ$_vD=35a)TskoTu-9)1%WwbI~j=;#Z+Le&Ef! zD^bzb@SN8OpXT!z)+NV_sY@79#2MU?@O>HDgQy7OORhy1APf;T<|OzdR2EO0_-bj; z^~p6gRBp{f?Kcf66$?eX8B@eC08^npaB(>lZBtl^1JIFt3pGFogn(s_?tsEo6jUQR z=?0V9BFlv-80sjai~}79acGQGAAhhl#nfbaR{_~VjG5NRqx`IHybj-E-A76=(i&Ei1~%1!f)#+)6iSV{ZXBDNTrBWs`K__O<7{Y`^{Rj=qcw zu|a1Qanlv8Bfn+F!&aJPG`HqYZ%LKI`5vHdG~QQ8-bb*dqbd|!5Yao*-HQ9Y757v5 z_pn{{F^-YV&vT+x@3>jD(XMkiI{RQ?s{8JErvsgfWeI*i^T;pu*I)Y}FwBFc9u>5~yQBB%@T@1ktt`m~? zaqc|W6?QcG(LsSF7vC>8gjgjSCXG&k0MHvRZH*j0enq#4AsGEi{z=~X%iztblu z+6wYB9Fv@dIx42vLvSHR?p_rl8uvIOXJNkq5sA5Px+)|Q3eBvUg-&UM97f!~?iXIx zaZnFqn~-FxlMhfAf0uI1eXAOhWn=6U?>=X=gb-0;;V!XwoTD5?f?_P>DlwYusd)UG zWO!9oZ29J>>$~6JQ6~<#SmDy86mfzGe=+pY8W;R8+yr>LIvtEvMKKv5*G<&7dlLc^W?)F zQmZ}l^4nto<%XKt`O`B<_g4GmZzjkF{T=sT>>&ItSr7O_0lEC?`OQ_@Yf^Vi`Rf1# z)yg`xA3uI&ujx0conKJ`uo43g)m>GwqxuW@8E{-}Vfc)+2)(_mz^P#X;?lE}58^EtM<~uLq-f zY?HeVVqM4PoAr??U}*GmfOoILm%;mJhxl?hUJkg`AkRIi(C%56%igDH+H%oLMWHe_ zD>h9`OaM-Rt5zr6mqaPE7JN;hk&4jJ{w=u!k0=}Xapziz z!*78k%s7Z+ssivG$xq9ay)02s!SUEva(p%8O;WSA;&{;OIDe~dgtnQKq@^juqNml> z!H)J(A0#}INW&CGo;V*;R>xK& zLvpS{0m<%uyvhhYj$fZ*Dx8~A4Y?_|l;R|k#L_HLZf=3Kx{lM4Iayg%+)y5e112Hj z?qz_|m*#wpTkf*vZuc1;?|n%d)-uPwXLo0Mv+|LCoax6HhCa*2`4DfJ+T&XEJVzb@Lb6y`=byICem{vM#D`q>7>Y1g(9loBVDXW-_|+-4 zpSxwTl=0rsYJb5Rc}#E7Dsqaw(+A~qs?!zNTA-KS7+~%pGx8*EdQdxn6laS;v=_}^ z#3qA-KS0Qp)J?tqrV_9B$Ys0A2Fn@9QzH=SM{Q3oFK=f#y8j1Hl9B@mPo&yt9s*)KN%rCP~{aIYBX0nVl)<(i?!_;ZkmW zxmzBg*Uf$9BJUlrRl<&ws#WBqLA65~06qcYl}S>=bFU_{6XoB78hndoy<2#LFo+oAqzIw-3zg?CMor6BOc3Q8Ff=y)238WyFvZZ1`r{?fi) zp?-}a(&5yvihO9UlsX@xRL5`if+cm8^Z7E@GA=4Pp(U>UFK|?|-{L+nI!!R4OWoip z2k$+8Y@gB&CCjHmnqCq#*sf)VQQXYoVW>#EC_ET|LZF*+gzP@HCqdao>sSS1-Ov*? zXaMdG`?G4x9;2VhG|Rf{l&qiGau^gRKH2O=VUWx^DxekvfelfrR&&OUNFT{u6Va44 zs^eh2Fs!YPG}oQ{PMgqOjWsdcMf_5FUyGRX6}ilH7PwY}f2j-1QF*#X;^jBaylYdH ze}oRgw$Pz%jnf^8sw)yW6lYg8q9HE(qe!&Tr{Mh4_HS?%`R*E#%9_|9cevUsn`CT|e`>^3wc&#-T!DQj|DQ zQUn&Ep_(5Z|3oPVElM^O;t2LaBNMO$2VcAt@If^y@fUKG3{O&ZlvFg+YZH>P(h^Yg z{i$zcSLR>oA79^X@AoUlx+9`I<5!M(=&x>lhmLqwbP4o2DO>H_JS!)Gi%|gh6Qw{0 z>$w1-MRYW)5E9Min;H)y4ZidH~~w%FG{f)D@U{s{oA{Cl+t1o{WQ{T19M(TT^W zyCl=}y`YO=QLGRjshs7%g0m)jrTPUBz;|xXCKHy6L?m-9k@GZ&!3P@*^JF8?Zqbrm zu+Zl=TQouS$0O`#AGOK2lDT%WhmWK?L5nx{M71?OWNjQ2PvfX_ z+<10xKMo?NHGf>@`JfUd6^p>dp_uD4tVOOzXq`H{o}*ZAM?)sH4pI*!2C52rU;U8YN$zR`YiMV)Zlw*=XE{ef6Ysh zleO*>K*-Yj1nGoBA_XeIri~YaOcXN}M6Mkyr{S`)XbWqP*vWZdPji9qJnIQ~^|;>x z@x$&Jrv^9-h+u@@RO76}V}666!2l&>LWA8dXh!6s9e}0GN~t5{wr)FcgM8a<;RA7r z1hXhVx;l-Op5tZtrSpEP^sx}(|KTBLRx}o#*xGhEZPU6Jamto9|s5snnM^7QFyOjSoP2o+E;2~gY!1u#i=X)>x${bG_?Pp zNZp*SeOqvZ!(&lW4?-fO|BS0b)HPmQY_bX3EE4Y2j+tR@B-6Fp3Bc^yg#gg|^+E!g zLaEC%{c~#Hcu7c}BzHm>!4;7PC0T^6Lp=ZI^HVq5KR3`pVRp-f`|bC+m!!G_x%HKf2HFm+7Jm~C|AP1 z(b-=G5$U7hgQNaedZpSwPf|U*9S|g;&~G7mWklq%_w&GII7p?1V9=KHY?L?%;W*~; zHs>C+-nh`JIez4MWp7v;9+-N5k5yS5mP$qW$u`xz%-bJV6G%e85uC0m2~8jj#t$s~ zI+7Q?Diu~n(8FIJfl88@2It-N?~ z71uAjvh&@ryIjJvzsTO!g=*6=^!C6jvF*6@wMkDnJIl+K6IoWSk?z^zTZ}l5u?EO-U7P=0a0`7$`_QSW_ zR*SqI24m0^oL2GoeUm6tHmr+m98zG_F!+v_5ok?MPRYHdl-ii&MVdE4V3Wpp@p=Ay z98QFA3WxJ@2PWIkIz`bz$kjAi8thW)Fz2~JeIYvi(EjBFMguvyESMyily0cjwjUt< Vi^8r6;>2}j_wi5gISSi8{{!2=OmhGL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_makefile_target_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_makefile_target_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ab2c450c8c4a317bdcb9d7a0eee435d889df5f5f GIT binary patch literal 3295 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 NL)4|Lf=onxZtqY{!t5 z7THh?v_xA(CDI@%J6_xWzN6%~HVFz86%2v8yjE2yh_5U@%xZfBO*TrD#%xaXEYB* zRS}-M+2iBc3SJ>>Ncf^A3j+*KPtkBqbjyM~?fP}E_lMUz_xgS4pZmR@|NEN;`i@G) z1oxX0>58=8yhk`31HLEKZASg>{ zU*6X#KRhSi5$c1;Cj)vZ0YoV(WFmI4kO<1X1 zqYa<5U<#C&H;Mq)Ia6A)S*>Xf@8k6L?mmTJ`~dHRBnigp!vNMy7oyfcSCm7`q6@@U z%aS1oi6r5A17Z%NC<$*775o_w=42f+UT@`(co5nI`wi8V(KdlQ-yw0zTXJwsJuwH7R!s>K9@1+jw z%!DXkbozeGnP#M%5T$ITbKhUl4Ey+^S(`HO#T7=*mHrKgTqvjW3A4oJw)t=s`;XcV zTtFY3CV8JaZ7rDUUQMZvq!iM&GE$bNELb&6RVJjwLx9)Sj7n1@TkFOtaLcO*t|#u7Sa2&-fZ~kQGFpz>1VLg-fvdmT@()W9j5tGHvX8!fgQm z^gh5PZV!i1kXZ2fGaOs7Kf=g54(ymq%X+KrS+W+k1HwUC&l+q^Us^O8`@0~)^prh7 z;{_aLcmSuT>{!TAd5~E$GAj*vBZGZt*|I7mSwTmH<5MNL zVv{Q0-(Hn=7~*g%bKp4MaI});l5*E|t-Z3R*JH2B9QzBNi+^5AD)lCM#9^vzE4Y3a zjKk>Ka!i*WLi<(~Lh;`2&_}qlwu7Co&ol3>nl?pvPyYvo;y8T(00003hyVZp005W( z00*1^0000000BV&00030|NsB9*NWqk>qfv6WqEw=gsF35f7vDg00000000000001Z zoF$CC3c^4Tgjej++iwwqf|%S%P#3Y%BAqDMALkhk^a8h=;6wUQ=4W8w8)g^)_yNoo z08k;GjX1(l>BPDy_IaUly+u`$-cfnLG(mj0$i4}~IK8>fPeE-|+1CJb-TO715>>&A yH}9)qUa~xiI%lPc$B|j05A_Lc6Ie1dvF0_}&*kfEEB)tPjI@l|D)|Eyc`cgpkT*;K literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_mark_as_advanced_command.h.i b/CMakeLua/.hg/store/data/_source/cm_mark_as_advanced_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..aa5b72bad3477bce0731f863a868b596f65cea72 GIT binary patch literal 1506 zcwPbG1s(bT0RRC20000000g%H01EE_0000000061|NsC0|NsBWw(UZ;P0t(djQUU8 zpZAN(QVzBN00000000000001ZoUK-WZyGre{eM5jh*l>;$&%!HszmNiqJ%W4kRX1v zims=~cxPEFyEd}D5R}Vzzp)n<5<*TV6(y_1o*B=)dGk!8_Q%iq1OdQ6tC?n569C$M zc8_ojZLN$s9;D31N@w6!W04|!L5Z4KrOBD`r?MbgSTt^yA zhJ%|?CoD>JaoJQY5O@irR90{_zL-q8q@`m6vjjX<_0u?5YXt8^EF+8$(dRA+-qE&@ z_=W`qkvz>KgbL3}-c^F2QLDiZo-$(&c?UoiQ!OZi=lj5DBwAlPuwYuSX^Ld&j1R;C zgG3`%T7y;oTbiS9Cg8)INk?3Qo#HftH`9V9%=2j~IFtnik3q52q%Klnu9vlfTf(0# zw9Q#cU6jPGoYScK{<;40H74GtLC?~76TJrQR7tEJ6&!i=PmMO$5+p7U<$3Pyo`Tm> z;w()aR}-S}P7-b_7TOTGC0Dt$sL4vm!r2*mDeBRT7(abZUiLGeDwWb$3oBSUASA2C zM$P5|UERO?cQ<2l_GbaeFTnK79G$<&6hX2K-5Bj=$Y@;W$VDuCX4`~ZKCgi24gj7o zT_c&a*A$U(d|abf$q2YRX71P;y2|-e;5e|&W0Z4F47Ly{o@XfSdeHvkpfSlJUhKNO z+P;eG9C+2Dp74Zf+OX8PQa5>pl}$IFXV-TE@c%Nq%+vHmVtaWNS_BnxAAx2q$)m*uzZoR+bcg02G+KA55t=y}Rk zMfaIpl?3r1ewlO)N2QsMk>?2}@Z-IV*K9 z6<+iVcsvP9*Io28wFglh=ne!CKTm|E8d|u2g_=OrrI|w?M|av`v0000000000004NLb&W9#!Y~kp z&%vduf8d5v6vQ@>qDFBL9lD8vd#s@ZY67`y>2LH`S=-rfxO>Mt-UEOSz+?sh1>#w= zQ8*BfT4vcc%|t5KC~_q?D&JuoAwEnX>)r1;zM0mJhgb>O+W^x(Z+hxShuGS{jjr+O zeT{{)Y;}FrM04VoQmrZ3hr^(WgLTyrOYevi)S;qfg#Rhum(G+8_uY5a+z=)-?8QF% I0`lcJSRF{q$N&HU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_math_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_math_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..423e8a000ed0f0e129bc8dd3b1df75484baea57c GIT binary patch literal 1159 zcwPaA1bF)Z0RRC20000000UkC00;X30000000061|NsC0|NsBTGnUu=DK1wa9aP2Z z&UlBpdJC%n00000000000001ZoV`_1bJ|7_e&<(g)YKyaNI+UY$iXv|kigW~jKE1f zNvCs23%aRv$K0L3X(s=@dnYhZr+%rYdVtg2?zg+&_i==;de8OLY5-FuSBe!801PJV zPlOf>l+?O4&6!zBRe;@H@*Lqk3RKKUMQIb6mO0uico`37_B?{5m@tzKWKl4Y2Fd+> za|16a_=<^D$yPRe&}h)cTV|?U%C6SkcKbYRzYaS;L+3ndccb>XOZ|XKb15QM2RFQW z=>%OmrQ?BIe^Gpu8Ss<31?j@C+-#Y`CX7WA*iY@w2U2LM3@?iSpr7a9(ljX4s5Y1e zgf>GwAO_~%fK-qfvyQ@WyWIv!K~w}%t-{fKaupszGgIV1WI>9C@mvSCH+tq7*P!Ln zbp*6dxi*R~N`onU9M4BLw{z%U-@(Uz9QUv1cNehbCX=NB+@OF8#blIQtaDCD1f-ZS zUqCKlGK>c!%Ig0zz8cT(Y_spi^XuVk2JdcS=)<%h&&Pw?tA4ygn%>6Ko7pg^Mzy$X zAvXxg1C2r&o}hNa6w)>=tO=MQ-f605v)-$)_5&A5UZx1%sc$l`c5*hnU#lroB-04< zH7XYnhOK9OY6~gzQ~O5ISa8ExK4n__+R(-Z6EgoBx3)5h)g>_}v^fK&R=QsMN-Xmw z`0h2({4ezD@CG_icl3X)RcdnGx}2dIDkYWg6{R+?APrcaTY*V`U$bywna z+;9Jj_Kzq24-Rsub))^d-9(FT_fw#d|-;RMUHz5besjg z6OJ@3YJ0)%L%S~2MnC!yLgv0M_Vd1|-UAmibBO){aIa?*+VvAA9vLTL!rEqSVcZ3E z0EytU=QR%R4ezrTfmd;W(CF=Y3f}LD-7)s0yZ)Wfj44=@%O$E$op$#p$Aw-~t7hp} z`%UnEOugn&-57P58wdSh>;3;{>$0DwZ)s`o6)F5vc@7j+*vHm4s&vl(8@^75dZ)H00001K>z>%0RR90|LV=GsyB}jwqLriS~p!wpvECx*8l(j z00000000000C=1wO-l;GFcf^^E~j{lQWV7gC~6QlD(FHGMOSWO8)~3UAbBm`#oKr? zV>>V~!wfS3@C6t#05~A-1WArPfu3wP7NlR zXFdfO-#kBl^YJvM#-ce1dTmY92wgJHk6Muu^;tMKaa3~N$%2es_u7$Fy4ql2w4)G( Zt=!Bn?BB9z$-i7lQ0p+9vLCu(G^=@M8e9MX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_math_command.h.i b/CMakeLua/.hg/store/data/_source/cm_math_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0d8561337951b159942fde1f5bab58bf0607a6dc GIT binary patch literal 1300 zcwPY%1?&0%0RRC20000000Zj)00@cz0000000061|NsC0|NsAsWe0n~n`bo$oVN&j zfqrMVpX)9F00000000000001ZoUK)DPuoZk{_bBf3cWT2YC}s^DR4-+G?eHFL`k?F zQgx@zdJ?a?-nDku35aWdduMD22~gdg)X1`&*?E2Dnc1ZE>(BZ{5x~&dxf6LC0J;P5 z1>rSxo%R0pP>V3LE(ey*lt%c72Av4jk=ekerAD@b7o+Z&&)XpLfe2aG=D9Fwob4{) z1*x71GcU!QmAgATB={ggZArHE_nW=F_sRYqJ+S|-eek}0@U}Aj1D#jaw5uq%Q1zev z_<&C7xND0Wr{-CJrrc&HZ{T+omcrpK^o@-9?W^;yHQu_Q$~*?>XbqK_2ZtWr0@Ikh zjS(L_#^E}Eb&!Qnw3B4HT*fjdAY$w0$?0TpmOQ9tA=f}qL5e{r?PJc3ev?dj@OD;Z z1oWLMADo(&0aN(YpPXJ?PM~vs1)n;jQRjSebqGrpGFt|~1sbTmgp6$SLMt*NM^2b< z19k?3-l%&@R-NDaXZ^_)CwtPLocG3KIJp=>2Zo)|q~Ex}L^4KGK-i*YZmOJ%=e zY8MD{1*5S+N%U1Qx#gq{Q$Pg5ovQk2#A_wdmYSIqXPcb)JBzkRs0==llYx=COc5F~ zUs0?PMMi2DR7x6@3P=W8-X&bwB=lY>-+OOCS6hS4?YddF)!Shx zodJW(&Fl`V)34EUiAbR}Qzat?t%c^JnR1@EWuz@lKu222)W)n>jsF=@)K}!^k$#%* z)LKnbrGgTANT@Y^NZaiNawyJLYk^YDRE5j~AdJT|t>Xeg zX2P{-HHLHYxE{GdW0N%wH$#t0DT&7cQY*_GO}HDafAKw`J%}IHO`hdRgDHYMu0#UB z>w?xBuS_2|?imBHp3Z=0{QsqLQfmDulP8JP>joMCj6t*a=Wql^wAKpRYzyHOH|ZFT z_;4-DK%d91iF@XVE-*_zvA6l76n};M3H)tSVzO})*|lE721LXeu01BCHw{7;OGdBk84@X z*8<)^CKmMy_DsYah2hn-^1)mTte0A@h_(<@f3u4+pWGBU5YpM^#&+0!*eW!6g|mUi z6H{7SWK~VeDIIC-QPFpL|8UdH!P1&e}Z-bBHBjG+W-0@-cplX>>hjP2PEmYrpm836bIj3xkZ zLOe*;0(;^?7g@GWvpg-9n3tkhiE@K+gm~AUjI+Pz_^Mko9QmRQF2I<>yhCP(*c#7` ztnuMojc04v$oe9Qro>MnTCLdmU9X9~vDF@xv&0EXU(r0m|ESlo)2iW6ePhWDVM6_$ KZKE$Jd^q|>;A<5C literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_message_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_message_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..6a90b8762e0e01f1092cfe6a63907c7c587ba31c GIT binary patch literal 1120 zcwPZu1fTl=0RRC20000000TAv00$ue0000000061|NsC0|Ns9=F|Mo?v#sdFe_!n4 z3&q-gd>~-}00000000000001ZoUN2?Z`v>r$KUfQZfu%DDM{%xZA#ZlSxQ$lC@4uc z^;KoU0oD?`vK=UU`0hI=p`_i@n?)!jKHvZDes_*{aQeTlRtsRNe}A}! z7qoxG#Ihg@d4%0AEu1q`xsyQke0+5D#-m^V4fJ36$FKdPx25YRRGLfSm!WXYtCzle z+$S^HLwUDVe7Q2o&f=aIU2?@?b_VvN>*HhmWwhY zpyxT)M)6r;a1Nh`$>roaf#B)}J_k`0TqQRru;FGU3j?@D0hNkbk#ByNadILd#e~^{ zT)=n`g_qw2B;s(e2JjDWK34O2C3; z8mpBbbZ_JYc~!^BZuvK9`+k}CEjQKi0}iKU4ekt=TsRbqyh|<`#rzg+vb5zPYH3<9 z!?Hivv|*;u&1Jp-=YZmzLOUK@o!<_kXcD!XY#xO&s;KMhcKN$n!& z*z>%0RR90|DCXBOPffl9xES` zLP=Ev-1S|i~k;_MyJ^QBzEA9#7W%vVAcr|+_UxtI;FFe~~r8jq4YNA_}*Twla7T;9wef@w5MM#I~2G+QH0Z)ek+_#*UM zb+}}%mJH}dMyV{P%+#AHlp`&j4TweIaaTXhe4So!#50+)?1gW>=D`t;bIA@(VVb0( zN*T0hv2j`}2zs3k+*3h}d651Y1$i_;pztwZRjovYKEOcy^@77N(1)^` z3r=CPa_|)Rp*{+X44ljzf9%|?vEVR*-Auf~%;rx@Mt#(#-QyJF=4JWCpq-7eTxb(>`uGfFI*?SqZU6=LH+zi=YJ!m-gTB#r65ui`fj@)_)KuQF0sO z$7Pg6V?X@Qy=-msn&-Z?vzyd!@xBFN7#{D$e|p4&%}6C|z2hduw_}&$eMO*DB~&H0 zV412Fv}>cqNVz=j!Uheim-`YzU%O7NTnodW`NG3e zsO55mHW535Sm!q)*RU9*2{$b5g7c+=S@@foL75Z7kUrjS8=yJzeBfn?HypsL>+UFx zxR_sRh1Y<=lHEdKTuy{_NUs8|&(1b&W=HG|&NJ0rQ0e{)!9WnM={NoH^X;gX)ZK`9 zI437f_y(vcPT}tgr}1+q(;|5+*@RH7+WXD2yX~{sh`wPj3XYgec^3Q+OikmX00000 z1T6pn00024000S^000000003&00000|NsC0m3-(MAmWxyXL1`(u%d`no6qcF00000 z0000000000c${^OO$x$5422`ODjp(>QWV5?D)na+SGwp<6x@$>CGcdo+R8aAprE21g!L&`=M?EJph#NOEQfQ7Tf5h`EO dJiz}H&r_?5n!D~RE3OG6>i29Hd;xS~Ic5T+k^TSx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_object.h.i b/CMakeLua/.hg/store/data/_source/cm_object.h.i new file mode 100644 index 0000000000000000000000000000000000000000..564da604c249ce0e551defc5d3cac353f5472ec0 GIT binary patch literal 844 zcwPZa1GD@90RRC20000000RsF00t}o0000000061|NsC0|NsBKZcKRBZ~HE7L7Fzk zK6$&PJ5yu;00000000000001ZoUK${PunmQeb2ABD?HEu36yuK>@s`+??X*LP{q|iaG@x$NUdTh#*uLkUbMA3{_w1z}#{rlrxlp7I03f;|KNuWB zq@>n|vx=BPsv7KS!7B!zm|%(+sj%!y=1s+H73?NaYWD-6^>qH7QR9^dE7-+TV}l;%U9}GP@f4Pe)5rSAZ@-&J5v|_AEDivXX1ivS=9r{?55J ziq9Lva=3}J%jtCn;p7%>!XybN+3hK;xhZ91fUTH-4#kvMTQ4h)MF^ybFn1sexH?aw zORNe%#N#--wPY{iY;vBaa4}6FgjtwmadbTnlSic4buyc#=Uyk(;*z;sF`&JTLK;q) zZpGBnk`{LQ#Gvn}>cukW`pyn7M9zvnF5gOL2fw*s&zJC+pjDGI7|=R3MC3%}akr$s za^N_=>%v!B5v}_=2XJYwIHIS`lBsUjY9cs!D(f0?G~f#)x}cyvfU>#h;*V)?EyxDY z&d%C3Cz`<)+IA_#209&f_BFFOHN&Z5N8Qj8h{ii)CZuN5BC^$(QXL*ZN(%N-u0=$& zu>^c)OVz!zY~~fG0ZtQD+nKsBVHk@QSEeBq_QiZP6fY+j*?q}7%sA;)gSlH;d0_FO zFZ{J>vNweL2i$nxA}cqd1(LSWvtB#`{)t8Lsu`dqQSO#d1V4kLQ|CE&!c3zC+N&B& zn}tTNyKaxBFSxx6v~$Y3jyBG_6G(-dCkEPJP$|r%tkBX7l}?MjCpzF-@x%5m+@mYD zF}y;LXuaGUY#bOIv>pvlVcUnlQk8u`h`7PP4---TO@CwHBmeM!)HjTS WpcmUSe?XUan8ey9NBTY4RhiEn&T!y{54rl zkrhF}NVH8vA`OzV;}!kyyCh@BR?zLGdLSf{=kV~{L#pwi^P`?h1z;@2T#~#E0Nnw3 zqHqjdDU>=MXGG70%)#`|SVrNBaw>@y5@7?878x}tcpr5qX1onaK3Zxfcvs{(;i;cI zKi60A9;f#SpBH3q0NtY_?6@S_p%L%iTg~Qgjpnb7lNOx(-ah@KefrTtZ>dzs*|sau z6>}daeyfGUINlY@jb!tM1}~`@mKNMFy(W^@A>@f~T4l$(f-504D{>zo$TF}n1(GT% zS2XpJZ9?fQqpzPe2nh?Vm+eMlyst`-ofV}ih^N$cLr;w7oyNWSCoTe(F?@p%Zwoi zi6r5A17Ze)UevutRPblm592!{_EQ)Sdy@%#8buJmIEdn~JM9P23)6TSjYpH7@3v}q z$)i|NNOm@Ip;^lw#tSW{RKG*$~x#d3+kvu+D3 z9o1Ovw${#Ny&xP;9S^QiZB^w4+SXiW6+#r9S>zPO_L(l9Zz zF|YdH>sD*~UY4A`fKxZR9siEo&TrQ`3Oi??d9U=4BepY8Wmx3pXF&c+GVR=bz` z$ph;3YBe`aQe8;?8cGMN9PW&{;NOz0pk|Y!+03qjMH`B>D;$`ZDLm^KB@@7voxC6l z9x0Yx;Xy%P7`KB7LCi}AGf7FhF@eJS3kqc;s$cMiG!^_84Ve&6Huwg=bbk|MNb;`X z8W4`xzHGPcSE$_&1eiv-do~=TX&>m-Uc0tvo0%`o`vb=?2k)5nLlx*APrXviz{4ed zB#JjnleBl8Hv*?ajBFeR{qXPJC6w!mXe<@}ESFU3jaR+y^~aMq3WrzKx~uoeeW`-G z8omwgo*-L0RP<)S!_pp1{@y9r9i&cYdy-xZI3%-rTlcTADi z00001K>z>%0RR90|JN+kes%X%xIUc>G!+Cd+8vx_U;qFB00000000000C=1wjLiyy zKomxAwG(=WyAUae{0XUsXj3j+6$LGWX&hugXTrHk57=u3jry(52ZsXyUx3LR0CL1L zC&_S_KXMX9yD*BwWP@?ak}XU3=zE9{*;r+CFZ(yysqw^X=lLGM^an7@T=e-erb1C) z-sFsvscWtakFi`UQoOoyYZsOZ#yTm;G>3sLHAPLkT<1WxkmPpqU|$x;?!CU KmfjzQo;D?f26YSo literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_option_command.h.i b/CMakeLua/.hg/store/data/_source/cm_option_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bac2ac573fd03a005158bcb54a60b73925fce867 GIT binary patch literal 1643 zcwSwUeLT|%9LIl>r|HII^3+vCgn53L5RN>YhZvDc=5c0O+2kRajTPc%dFVV7D@%7w zwae2uOeuqlT#=M9TTOTa{3pp3zXcGmlU9l!k5@mdQOOis@gGUltHDUxS%&7l z--e;NHgA#gt~3l+jx8wa+{sCr@=L&QO%EzJ?37hre7d~6z+>~K(jRTz3?S+*oePu$ z>b2h*_Z)H0XTB8$m<6E_#3`dJ7x7l8`pnH;WA4IRE)){?27W;#w}fsz8^0ikqpv3_Ol3=mMcklv zu9e#px4b6=@J-@KYoOAd@*&-4&}praXtk-xI%G$Z(J>ujixk{ew?5y_I<>_=xVa6b zD)Ac*SqZr?fdp5}j1N7x%6uvYJG_g&@zkchos@r)_WO3eI`pRBQI9dSjucU^0C~?o z0~Ut2{~0Sgx*B1k8JSdtAr#~{32`rcqlYtNu_Zr@Od_$&e2dOX?>(Z^#8xu6*T)bZl_{>sLot&>-%Ygx&6lWT9)gP}eqaN1zv^?}03{B>5BRooN|{r*gOc6CN6&A#0> zJhvv8%+dy{nay=T6a2EzjaL;2aat+s0AI)aSQ$Rv3!+b;OkO9SnC)%cL(;5rXoBzY zu;o}b83e>n>QBj5KRDV;IbTr723<8C6?)FRT@mb)gw7!i*m`NOS#G2otG0`R>MB{u z7Rr~2FhoVBmu+FJ)vtM7X_s4ZJ4*C|hD)gZb<-B>Yb}YL3X6fa?_jIDTn*%c%?}Iq z$H+Js9}(lNKdkunr|Grts<3h} zGW1-wgG(j^GTqHQSy9`ywD@oqUz%+JiL2K-GT6cfApy+=ULX};6Q z;rgg^RV;l%xEv8HCKoXzkgGD852@pO4QOtFJ$Xb}m`z`IH)p83n@_LdUktv8rUBA>6`52bv6WRz zWl@PFDz!L=R?HxiK$l3)!Dzoz(dj?BGdvHX59?+{G{m4lMbTkl<(v9~GS0RA$j#s!0eN|q}k`2TPcy}jj0j>>6H zq4T~SneI;YabtH>D(8lcKyBDbE%})q)>ZN993?6>9%kOV#T;0YR`mw>dC38o-EXs{ zD`~U39FH~F`WikKMVc=%&W7pyL!I&Z ztth^}7Bx@XvKG9VTn`72oiS%OP0Q!!Wtn$gH8;)vDZg6eNqzjis(I6hvY1?d|LzQX zk+wG#pIpBj4EFaQXM83K&W_$)d^ml5e0uTrh&2WF6de_SM&InQ9& zEXf;g2fXH&i!1y1_Pz-FR*I~Ly1{gM#tr5t#jLF7Neglr8EP7&?IMRiFHknSfNswx zEsLgQ>2*@?;H*}pcG|@(Pp&qd3;*&gm@C=6zt8^UEKLg5EUK!kTZW@pONcH-n_i3J zij_rv!^DgwdCm&XGhjA?Xc)kiKu9!`Uik$yqlm<86s3thdBS%3-bi|*^vHQ}N^#N; z`nOMW+Im4)IRpR#dfXd?e;Aj6H;a}JXT@-mvu@#E4!XGkf=0DhVmKVGMMn?0z2E)7 z`gS{PhoePZ^TOzZ-3oatwGebcVjPTQj}B=}$ewT*jyf3700Syu;aF{zAL{>7x#P=@ z&9?eszNJaS$qY%pPo14-*E<1I-At-QbA54{q+dsUk{Tbd%bF)&4Ypych2%_k6g?;P!cyL60HvqY~ zJSmKwoQWFVUYiC zMO`@N=vFRX@b4|WoR{A?tqgzi0?&Iknk2hy(v)n>k|K-ZCqXO1vSD%1Ck&U`!fZx()XKjs#2fRfCy9x>%k+2tk z9UpWiBiS2Gey%11>2R)O)9E+TtQQWjm(!_ed7Z#xCJa>6P6Mo&T=FYXjK+402sA>` zp&Uqut@iAh2#pJH4H1WlJ0fOG2*E~DI3p<>BAe`@$g^iS+reWS#Uh}S^a9oxjmKkW z7yNL(ca%+jZdtE=FmwJ2m#WuZya6SXRKuSq#TifP^!ksaz1B{n5qiVhK8XWgJelKs zIGaL&>Zr_!icd~%{(RR zo6}V_DWE>1`vhg)Se(|0(8%tf1D3v5iKzX3*0(Zysn_%@zda}HAzc?~vjw9~lT3go@hpunF_o`y07 zXyhd{Yh|WJ4nG?4swZukmrGvbqMbJj(1_TZ;pad}nrF|fv#J~fqEx(0s&di3slhc`mi5<3TFxtE_;57Y8SmpipFT}y`t`pI#}rb6=X?YM7cIETK-Crh z4y6)L;6%j< zhxkn`Ko1Lj)ud`uMNSXEdO$$c$QJAZ713lEpQEz~YSSZMbam;=CYy%4r zTX=jIZmYE;43}?WJP)|8af&m(14ioT8VOLcYNZ5BI%`V_NXVfCsTkSu1$_5F%HAw36LtiR$qv_A@HvPA8+#N8nYrKpq!I_P{u2#5~ zhOr;nqjB#_x#JezyOdqu^(Up=L2^4O_e|eZ%01J6R>}l!Ybp2Au!)p|kn6rhY=gm{ zlW&0DR>FJ3Ld7d0qZxI(|=#KPSMQC%#Zvi<_Wq3 z*WhOY%OVcmPggsFddFr(4%ai>qQaqKaT$Jjq`|Vf;vs<(?`Gwq2-=zMk#3*zFWZ)P zzHCA~#ZE*9vf)dl&_iINb$?C0q?b(U7gOO-`0O(Kh!)&s)tCh)2|ln!FtE2Qg2@$H zIz$%r574RnJszjM25*04cY36Ez%~gexI;IfvmFBu5zx_7*&@(enC$Yj=TjmuPJ3JB zEZkfK5_=#m)j5Xh@L$5(vMTfPN~B=%8uZWwdirxPRf+QFVfcpv!j=|Cqvb<&AYdw% z0Q*OkIf@KaLR`I1P%IQgOF-!KS28-A!}zvTCfB0PBm)qbjI{8b3CmZTEmd}qeL^H! zo!JONY~W3L^)>=jq^IDl2&F;suCE2RR-iA zC$2Uv76l|Li6MRXYx;PhW|M5w8;IhG=SvN5k$xRG;ZSr3HR6A`pThjhEZ=rE|1NcH zIq3wV(54ZWId?nRMbYrOHFa;Z9tM$80-&;@l_F4@MHxW#fJBWvrk#PhJ?QR7M+Z6! zsq&-z`e5CzAl!=f`gHrlFnsj>s?Za8OIdt zTz%UOFof?jado!1%mkVUlchaNRP&)E!Bmi>4xAghQ2ERsx+G&JHw0Je7-l*$%2H^r zP;Ezr!=fe@+C`2W)LZW|=0d zl7Li}h$ZJ-nRN2Z6?Oahw?1NZ!*EQzXy~>VNUmW0Pz7f)->XwMucYc?t1&p!uv_O1 zF@FjBt6VnHB2Ki+0Kk;Z0z>m0-5z-I@z>APj4xE(+aVg1Sm0N9IUDku55^SA?2b%l;h@nQ7p$roXqt=U|nIo?+6# zMgz)GCyxSGg>B%t+p~rC3t`w>-Q53Hc4oUizuLR*BUHPUn3%%?*3U|E?UM|vo_lXh z!@f#}m?k7kzA{gydr3M!O2or`X%+Vs&iiIqBfEc44Hrctt_nDB$sa!a>wi7+z1dm4w6EGRRtqe zp@pHgFbg9!6mmQ0q8sr|7DJ>hNpxT)lO1lFgBCc9BW!OZ1*aBn&yz+sx{eS=r}No4 zR)g6m4bD0*jf~>}++#M{{zmBsZ>qIBVSH=Ll0FRo;)dent4y9Vpw~1P>G_hxwDjFHcub-alqthd$edHG?{LTp09 zshk#fuYJ5fA3Ae_QP=J&_7vrkHa@Y)?x(Ucg}x3Qwe+fo&Txky`TE&P5j}VCS%Epu z8V8WoZuf7A-1e%cRBn4`V6Adec1kbQCstIeV0Sxy{4!Db1-#9aSc~EVSSEFW5l78> z^koi5N^-^B{(1Zi|AdL~e#%a+iqh^0xuPgshYAzdWX$QrpE6JHG<+kfb05CUsL?Z>%Ohlgcb(Cwa>cilbP*7^UP`crlR^rV=Fh%QzVVKW?t-`Tz z>YA|37nS?{9zryQ`dz}bkes`OYeZEvWW&$4VVlpbje_Sm(+Qq zfOv%TTq^tMtql66JmIbCz7d}fyV@w#G%V;$GfB& z4f};=LZaA9g}npqKj@VP7_(0R(6i_E(?7>4ugF18jje|dQqPpntJ^wdQyHb4;41}J z{-c4drBMQ>lFgYmcO_bVZ0_Y`MFy7qZXc&7gm|T*Tbk){X(SLh(v(XG-~;!@uXbvN zdDYU}!A7^syj40k$(Hh!_Em=`6afoE9{Oyufa2Wlck|r>fAWQ{?JScUHk42(6JkBt z2E0Qt6P)~Nn;bEhYATUpXU64?>_nC@CWL`vs*W| zuoV|%e>X#Xd^~BVd5aFX*$Ku0ci!sz`R)XAZ4)@kr{*%{9nOI-wnxIYGi-Dac=IujyZy2~?#o)_ad@4t9`B;jP|&T4r6M~C67$P2Ya)tiU;wJ2;n zSJvMxz!j=E82xOkOi$R{u^uTlald#WqddF`tf;@EyCNKCWo}hbX2_MI8IMDB%2ygI zb4404n=-8q8@9gZt8?jjPcA)=UzJuU?c{`v)y&&2+OBThKA6_1Q+{K`>1xsHwu7zV z1X0wsns@(gZ+)8h|6d1JHz{BiBlL&++oU#A1pk9&mEb2UHu-rJ(f#R)wZDxbHu_x@ zPu_@Kf8Pi)_uj0(-O!u-B9{A`KL00w5sQ9T$o=I&{53#yHPdUJer3yRPF-r~4a$BB zN~6ue!L;7uqEZgyz;^f66XrPlWtuMP;9|J?g)PiXDsWiKRUKN3hB}J%%@rDnNwj#& zsq02pUOq(E1%~@W_fMkQ3nTnOE4fLO^ml$f#T(&xLAow1k@A1&OE=<2QtHRV2frM# z4xo|}mcMj=4OO)gHpj4i&ug-gwQ-PTnOoshybeZr?K@a=%QC3}JkdXhKsYjXgeozx zwKZ=hETgaeO3bmVw%g+qyZBoLDXc(f_CXiinh8eE_akZdCsRVY9?64Xk)2_5JKWjZ0Ir*CjXDq5 z&h`o%5YQ53b0d*nl8R##{q8q2q#k}I#nwPmNt_pFew+u}C+~mOuhC%a*65kxS%)#! zzv2&qowB~s)}G#`+$Gv%48JBa73_DRgyBvbV7t%}4eN@C><{<$Q)*{a=5D4ppQT%JBbscWq89$OwBFasYU5;{ zwHWKADI+$^jIhEyins;R#zIsQTkgp*ZP?toMW@|fE|;w+1DCY4nYBMnu7>T3bndd0 zfzwzl9G9tWp>6P+%%x>kCu9+W=U7^2)bK%C=~Nj+#GnbMJj;_1R1W}is^)1U5xslfUEamFdR(2qOq5Q$@Rr}%r0+6tjBJ9 zqsgFuH|&jqq}#jE?alb2<+qA*`BXm&7L{&P+Q~>*+DxX=XoXRHg;Ua+{6R_3E+2LThI8S{`yE#YF}PO*@T;! zfLOj-`)XIVJrc7#<>umP0cb%8w&qVyuNsX;`{acEFG{(!dyH%_Aeh2a0>H`^5O?zW zR9MGOhit*!9Kr^CK!~&im>|&8+lqk*DKdc-a0WaB#~kWnPBR23vpK{q$pPae-!4QX z69i8xr-l~e5@d=e4j6-gCv2s2Hs^qgc5Y2OTLE7i{v}$sIMa%8+7}0T z>LCbSkzJfQa$=J~EJzGbt**%mlBV3WILSCjMhctg07X@2*=?uc><{6T5JPm28m$rjkr?^wWqj|aW z2wowuoOx8?(TpnyFbRkG3C=w{sn)uLg6vrtZq6OcasUCqLZA@Fc;WyK5}XY<0Sbu< zKmtJhH{fjsQTTj*j$ap2%~)b|21KQ1FAIEzPB@@k2K`e6BibLfg1R|CZEeR2=9y^v(y;UAIjoC2o!|g^#u}z(=WocEVUbk+uAthUpBGi6>npBg0?F|WM9M$C zfR{V~&xxFk^C`r%a`9G{-cGvS|0>vA~pHS=|B)g|!w(;3Wl6P4d(Q zfqNN?hz5iT+(M_J{U-dp;+>a+cXkPAzgAb$L=d9&$*f)B-Qx8fnRg+$zlYk~DJOfrBJ$&yL zQRu}ne!qBfLfOqzC7P9BhkxGJr5}@nydPz9B-oob>_i-g;Cu`J!-{8pUo+;ojNrHO zDfpJw*G#glMQ-Q!Qyx7WiQ{g`@O_U4+TsBXwEjaHDr7vv;u(Gr3b&&RAIW+^ZVfbx zPixVz8xFUduCC1V+|V>i1>=AN(w!ELr~pC!UtuGz;FMUb0C<+E#5cle@_7wU?3X}R zoc>V5sCmNdl2Gxinzgi+Pl{8239EQ)%3O2c)B``-?sdV8_b8!_O;SGdExm=h8_m(S zqIscuf^cYUR1O4jJ=2uHwop6VJ@VZn-{Iu4o^vgMwc@=;%YH}zVR1u1xnFR59yx0J zpqtcyCBEg_uww}si=u@bETr5r%hi0!3h#HfS77+v{#wvd%19tw*erN8y9<2Z_dsQa z`6#CO>_#0Ovl@I0u+kzXR%n5`B{UlgBOh^)E@bqno!pvR0u1XI^_1l?1s3tN7hgUW zZvgDhpO9eizLNJ7suTSVWjWT%P=as#VdWb)tcaB^>vhr@=ysL7nOr_6!}5 zp`Pd-j$K1Y-bXcd&%JfHu63VVQJuf_^5o1GsIK^`4}B>N1ny^pDnajq!dj}plqskP z;XPg$^p+A5CRH=G#KD_7;aoy8)lrliTW(Rfb*C4tIHpA#svRK67xE(cLSo)ETKWOX zPipW@!8co_?#7Sfv2f@_*D~#I9@_7FM|&bu(x-Rs?5)EAj_ zki0gxRh2v%!-FS65!&m^Kz7cy+KnK;x;-MN(AZ8lC=j^}<`{{$M{)h`Yt03v{41m_ zxAOumTBWN>l~$sDd$C)`7`Bv(y-JD;fckX{_F=_E5Yy8?VZpM~G{bAvtZ^XOtPMaQ z{7x;5j^M!4ja%q7HodVXVZ@i4Lde2k9CkAP8qgQ3auPixbLY&pSMcfOy2LH`1*lyb zNFqyZ9=1fvV4=?^<*b}5Z*voJh=VuzS1$G{p-vpwpaTt}Q6%Oqi$cknq8um=?taHq z)IG?sW5_wkuuZzt+(j5H4(~Y-b=Pw8RvL;RFDgx$2yflOjZ<;E8LpA{s2OAn4JBw= z9g6BS;4Kg;EH9Ai?d+tyC<@g6#w6rTyg#PFg03I^l}c{>#S~u9sa0!3UcYwjQuOV^ zVg_M6{u6R-CX_?Ia^x7}$Wgp?>nr^ncCXgf>e?zC;OZp|3tJRr;Oi8jCi{;Uii6+c zvYP;SZm6w>qtuntNKx{P@4^AOWgAX5*p=;cwpw(UF*E&Gw9+NQx`$YR%J9e)nraQFeX1{qHx!p(sk0oh-J!y$@#;jU$r7;c(`eXGR%5e)hFKy&hv% zDw`{wj2L5QZ}^>HhwMycMR9l)b3Myc!tm)##)7>PsZd;J3YNXeqB0h^ihXx|Ho@@` z3zN4h66(54wM@hdsYD2~r6_{%^XG#l`wkXf@N{1CIW9fh--ib;xF$IuiM~HQI{N$Y z=;`q2348Lx=&yep9UYmaKM7UHEFGCW#ZuBQPl6{f3d3hvzE*O+(5xR0P{>pEqtq*| z!~q+pVSxV^X8bHmi%e-*CIMroam>uJf+eR(k4RG5(E8NvrMst*7;~ST&-3? zn1ES=OwEU{Z{A!C>!}N!#0(6_BB8mAivV?l&&@&>tjK0YBL?3iS!gAvr4|u;KfZbW z_T3FTz5JQIKfS&_y}bGPn60EfQC#+sS!A2Su@bnk@wjoe|Sa z%TN^NC`pDYr|1q`gVo_oU(E?04|{)+X&9H0V0+s=XtCF8%zG7QQyx2)#BqOkvM#hp zZn7+HEj{7!93<*R^1Rm@KJHa}fEjUTna;rmNnUDuPzC|#Nh7*SGH`=eHN*%O7v? zw=Dv=hRxDDW}bjTxeV{hoN4fcLTb4bG#rUsq>)HNFrB$@v+)8vFS5#_O?zPb-f(#M z6+gYLH#iz?9qMmf=VLaXACRa1-cJa@tyu_Xeaupxh_4_fFIAouV$l1whao77!{;r1 z*)vf1*o|JozVHaQuOD8K6nJjs)kA0GRuPQNc#I=ozWT)!IvS0Z#^fjFJEBiIe@-X; zemi)NMz4gnkFUT7`(y_>>pyC0KQNa5wMRhJI+s?ZIdDA`$FM_(GYtG`FJ&45T+d<| zV#HijzT2GTYd#TNg$q)Y=6r$wmC&V1?evYA-@@L@Oh&tmdKyJ^nswj1j_Ni5Z(`K! zcX_Yxvqgs9M^`l*GT60PKp17A`*2TlW^J2HZq+!YwNx4UB;1_UC4%nNQbhz6LLWdDw7c4cIqs zi=$`OApm$3DjGTKjCXWssM};&#fzyS~}N^Hu>E z(6pps4BJuCH0Ao}ogA5MzTkZk=_0PH~dOvQ#q_aJ2D{@~uAHhTn9F_$UK zw!fOCgFgeRc3^ddFAxKa1Cx&GLGra?Vfd3%g_O017a>)QoGyu9XmA{ne;&9`58Ae{h z^AkuFI+_^42QaKXzhq#0&rWTfjQ0dH5ZOmnjwvz2nrAx~5K4HruuGLCk4tf@*SV;? z9%BdhJAieN55il>75W5c_d9pR>o4TL1?*{WwDzcO1uZ;M%7gQ%LLYB81In-SWMv2& zC6?4d5E1+MHniFBm#zMU6c_Rz}Ovf{E=FnVkw{bqq#lb$nN zhMC-Y)D%*61WA{DDhpy!&i80>-&k-EFe8TS0Q^BDU|^Jkxto=RMT|%mdCb?~0<^k8 z1E<()SS{9O8zN>PAjhsqs?n>bz;{@dll%4u{f;wL(Gz#&xE=GA@3Qt@WAYC4c;!0^ zV8-!(JqKx%OaTan-%*x&8T=9Gn^jhv+NqS{Q!NM3q_XXH-TZ)UUpClCjz{(#c z=ztv!D&NCnnZ(_OHq17;%9b)hOcWeawMWh|*_7B#OTn=aZ)1gVe{^iVoNUjVqygp% zn7ElNP#sTUpqC({k5ik;@hld=g|YFmVQXZSmA1o52_tAgo{kShs#@R<5ekdWXqfoH!b~Kl7|8tVRA1M#vH@k8q%mm@;enfxEGB3E*HTP1qj;54H`%LR@~zuFtX|3 z?ND-Y9Z15kk_%xPUS3U6lG3vPdLIz@UO?TxY@ERM z86a<;QIR}jQoG=pWn~%#en41qYF@-_Ay{NsZR{xh~W+-pB_Djzp?5ZdR6uHeO0 zg^Nzc`kfunI^DyN(9Y@*@fxsr*F_yr({oTm>8#)HRHRK^+>CYgFT${&j3t?5gUZJU~_~UY+brrt?$)wx9Ub4mq+EUdCgP#_O#UW2>zv+ z_Qf=V03E|tcpBeOVK1d>m4Wx+n zDY2i)*Nzqh|07OLZe+8nYnqrt!cTw~(t-3hui)GX7@J7!yR9k%)iUnVY~@*s>Vz1L z#i=9XNrjS5X)0N3&jA?*7p$G%6(y`%`y$Prc%Cd!%Yf}2W(`c(=ARE?Tu#siQF!{h%z^$?)?GdSY5w^@Fn zxx((cVcuY8?9)p=Pc!Nj&|4h)nhoc?aD$%z()fEG-;E=~;%sR(HZCg~oYUu;7I~Xx zM`ukapZx)9XrPL-RIJ#GmlHNqSwen+br3nm{=R<(zlmh(;f*HWx9mCIcc8a{3ISGwKs)8TXKA~ubDX_y7ye6gd%FQvh6`imIR#%<#&Bx5QB zBn11`_yE31-O4r_S5!luhtNBi)t~Z8tmUy)gEtSZ+*Ak1m?}|XZ2F z=ykkjhfG@Vx!Dd*K#TQr%1WyL~`BVHtpf8#$T=& zjc_TwujgtGyw#hAOs}3Z6(KL_J#!=Ss{~>^TX94_)8HEYE8VNk^McycTRN!^Of=2* z+m=-GHG;RYD7ZA4Ly`sH%pW}SbT=t*=0|gMqIiE02X-Psjp(E>zSXlTR}etY6D%SC z+d~0B2N4^UhG%?morJDG&8Ry0J3C3As&_SxsY66;ZK3!S)~MW3Q`C&jD=NDdHd`Lv fveq5c)Ni9j@P;C*4+RId2C5c;L7@KtOqyjW76?8^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_order_runtime_directories.h.i b/CMakeLua/.hg/store/data/_source/cm_order_runtime_directories.h.i new file mode 100644 index 0000000000000000000000000000000000000000..45fb58982e8436b1e34c0cefeb1cdf97a0ff9b33 GIT binary patch literal 1262 zcwPbS1QGiH0RRC20000000gc801Mgx0000000F80|NsC0|NsB0od_OVfo3Gr<%wQX%YC(jsLR1@EWBnYH&I%I+0qYFY@xGj_oh zi_n`h9VW*sc#p6#5zB%sEpYhpBR;qw#KYQJ-gMMX7 zb18Z*B3p6)=QKP;E1HKg-zdIJ478#TmgEe+aI+?g9m7aOq5am*K9oXBWq6T=0E09I z2h*UKW@^P~h-@>)wv3^9HXs!w#^k+DXT4sBQHDhcrCN4w=C|X{)-^F%3RpIv%n+XH z(B_7pdBQbl8M}-Ce^aiF;)}vC3Xh}t&Hck126s>JIG9ccck`z{thq^KVSufe@FXTd zXqKlOG03BcFdL9D++I$HHwYU1JsOYZPd3-9(fsamHiN7CDGXpTn9fJThw)(Qi6#%z z$^Gmy^ar)HWFc1!qSqn{X?Vo6J4z;P%EF3)7_2&;>6b~c-3g9(EGUcLR?ojlaD)zA zupjy$k%-cQGI$qdGeZO=ijMpvRN%WHh*F|8a$Ki!LDE+__k*C*Zo@y7`Hc_(pw9w- z#VCy|$Ibx(O=1Sh`$A4kg2hL)s~cLGvHj5rHl0Gs7mB!XK&npgvv4m#UMx}`^{{7e zdbJv-X~S}PjGYwPK!kzYAV|iJedFKw)V=dU@wf9w4uG8)vZ{1 z%x@4EX*$7k?}pUU28GYi-QlSx?zmR&@248?c}2{gjUtFf_|IIgnJFt{Gif0xSA1o+ zi7Q>BK#l&FA51k1E$jHoEF$vO8k=sI2FcKDc0$B*!WD4qewhA)Mu zF!i9GhYPdCk1WDA^LxMQT%#x3R_=E4Km*SAx-!D8xDVSAzysbXHPvrr#mpzWrRc15 zZ1P@a88-*gIwY_|Au^KJLmb<}GyvNI)k7Tg{EAm@nU0(1p-fY>9N0;2=4~5rc1>Jilktjs5V6Vc`*#TNj4=g94Ahw#I12eEmV z*h1keTAqYKIS4pL*j&7vmCR}*=f(j;<2Nyo6?Pj-q-rl1UPr8r<6Kf)5*$os1-2oY^-CCo!A774oj`D`id4+TZTlJ?j{I(*u9~?hM8OmUDRdzCS+) Y=o%SZ+m`kN#0E!9P#y>W1K;WN6?r6M{r~^~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_output_required_files_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_output_required_files_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b25f01f15ae9d448bfd33e5e7e68acf67fe39632 GIT binary patch literal 2523 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_project_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_project_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7b3595f0f31e03742d11c9697067c087af26d107 GIT binary patch literal 1307 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 L^cb!%ge3z2VKk6L literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_property.h.i b/CMakeLua/.hg/store/data/_source/cm_property.h.i new file mode 100644 index 0000000000000000000000000000000000000000..68d267971199ac591892d61b5c514a30d4c7f417 GIT binary patch literal 943 zcwS>*WME_f1EyIF3@oQ1YzD^vP%y7)Z~u(1yOo!xH@dpa+7cRldg?+3Bv3JDZIG}3 zZ3lt9zr%aD*zKBlHFH(nLyV58ggFb{n1B*`F}5Rx5I-oa%=9I zf1a0qucy4^W90Ed1~IR7BH1+z9Qil$TZB2LUip<0XdLWywZYXpPPr#=L6V!+qPr&+ zt-ZJ@!Jac%`nzJjM{e&ao1Iq^n14?(PffbIY3f;?{(jCKNz0ZCZrsoB?_XcB{QlmD z<`&l9_s{!%cynJ>w^y;|pLgOr9{zoNMmA{5p@lK_n)_Dq$UJEeOX1kR+0~mDSPpci=5>~Z9`1&T^BkrX2&+D9@i>@j)4RDk`gQ4?vx`hx zUsp0Q>NKfzAAV}$QMK@>QRJD+C*DeL-Sj3fPvBFyaI1-p``xXVJfb&kxSZY=vwWUi z?(;sI^#19K4iu%w%4wzd3+R2Y^;oI2{x;J??|VzyI-6E1y;FP}7B8c|e&#i6m4bP5 zOMgdvzO(#X;1=E`S5(scvs=Jjc2>e z_+{N*`^YImpUpfTJ-Bq~kis07aDIJ;Ke9J3R?B6Wq!{+r{N1n7WIjp!$zID7nUcIu zM1u=dBAid}>duL{`{-f!g;l~%F9Mp%jE`sJ>DCn7IIKVC-NIXUN?w0)+s?dgYUIrD z?HzyaOs)E~S$MWVZKuWxza0&eu1dMbMqlYTILGYztW~}bf0s=^%9VEI;0xw!nvov@ zPf6Lm=#yE!y?xPxrJwnwt4qRQX&MNoGBB{pLKC(Chy@Kxvc6lhe z>}Krrsi-O2*Jm%+Ap?m&E-}AE%u50UFK-c9>etj<%>MmC-Gv4<#ZFfFbJsswt~vYY z;K9FzE??B5)^xn!iV1nbX8dW%=|vV@PF$4^k*1rnUP)E5-MPV@dp3X0cAHlzPxj4< zTJ%(XVw3}i#`7CrI>ZVuFrJG(ZntmQ?2E7Dp6`q+zt+-`7a$kCSZ>eZdZSgpCz~(V L`OVZNpx+4q_d2(3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_property_definition.cxx.i b/CMakeLua/.hg/store/data/_source/cm_property_definition.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..06dc03527cc90cc09f493ea4dd95f6bdefb7f840 GIT binary patch literal 732 zcwPbA0wetZ0RRC20000000Nu<00sI00000000061|NsC0|NsAK;niIX!=p@s1K&tv z4Obo@q4YEW00000000000001ZoUKz$PvbBUz2{eqSPm_e1iGvJ2x6s>7O1u@RT36) z4C$n?HnA()X{iwZeaA^lX^F%IA0p4kd!BhSagHuN>sS`RM2eY=3l{+VQTz|#1biu! zI+^6LPK7MMcvF@mTq8#rYat0X64NqAgM!1r4^7;Kq#(9AO16g`oY1#(^0 z*5_KT8u!q3uTk&hw%XJ%SK4|eRT_EloFZtC;{xG=bYkk{w=rt>rDT}C`ooOYs)s6( zY;G9poU4*nY?ES)y$p%El-xY@Vp$8prj4~*u3H(n3AL)iA<1G1N1Q6^yurC{NQ1;^ zHAhh9)~Tod_PoWby~;mGPj|cch#ZrKj7OTENnpHPslSz$#Num(*SeYx$Xj)?b^8WP zKf*;#V*)IN)_yPT>g{K%{(qY0WT+cP2k^3{-0Sx}N*6*fb(BQO+6 zxkM@dTAnKa00000000000001ZoUK&bPTN2befL+4099OVLXlb-(JFPgMCB4CriiC% zvmVE*+Pl&2I%$OZ@13<1NK8OH;0MdznR905%&~*r(~r7551^;jNV6gYfase2K{$X& zD`O6NIkTzK1-R2xW9*@oxw zoEftg2HvALE{D0`A?XnW(5XvUx1{krogxz@l6h=Fvdzgo7I?-q>`GRUyPhkA;eZsx zcs52b?rFc4`^B|PGRVk`9W-2vv1{%Mb8Nur#U2^)XK*jWOWdwYz z_H*zps{4XdNLg<11pY19XnVpg`u^_C=jfU_!f|M{rIxEqOAHtD8BMJZh!mJ~R;ZOU zHVMOeV))dYZLaBJM0l*kT`9OO-&J>0uZmpRXGM!;b5ZH)<*iy(!qR9<>oczo)HLIp z1sb`FLDn-jEc+I5BlSrj`Z6tPhKc)Xm-%n#J3MKez38qHZx(5U*KX?7eay99IBwx9 Q&xyZ@G7+iw9}Zq`AC(lCHvj+t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_property_definition_map.cxx.i b/CMakeLua/.hg/store/data/_source/cm_property_definition_map.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e5a9da360189b1a9707dc329276744f26d84cc8a GIT binary patch literal 1194 zcwPaj1XcS00RRC20000000e3P01dqW0000000061|NsC0|Ns9jP~(DV3-zP*($nf9 zP*d!_&P-7N00000000000001ZoYhuQPa;VWe&<)zdYcWP4(fTi+;D3$4ya^N%rLq! zn~iB^3g~s{Cfz-tx9fku>IMWA4orNxc^G=Ss=liFs=As=`SW`{g#y5(l0C%+J^+O0 z><(cULM64{z08>DN;Lqx+vOR;DGF4~NJVDnGR-rzR`4+j+g9#FG9a`eD)Uey3&9PS z;+ze=$7 zXQn}+Mm56JBeXW+9MLoP2Bd<%F+;yn8IQ+aG9Xessd|;O_`F$}tM<(x1ELL5G>m83 zv$4?=_qhfwyDlQ2b;`9-yptPD;cFv4YhA?v_Rg23ya)gjP(I}+h32K+jK-!>%Z3kwHN?E;I6P7E5-?&J!JVn@A)j|EOXG-k{ zZEz4vNd&(T)nt+nP#70y8xt2U=@dqir>i=&;QQ_yXVPLqO=2MFGX-VA2Gm4zQ{QhB zO&C865wu3@R{0&>)j(#NQ(}#y22F7L)xoO-CNU{Es|+z zF%+vv$e)U3t5Eu8alcoeM7u{X>g8%QDaI?h;U%N+nxEOTl+Gz}Gh!asHq$AZsfeR~ z23gc5_5A@G{_Pfa28iC0dOa)m(x!&;(I*&{Ce7e#O2@OfvSLo{_Ni_^p32t29v8)F zazKI)&x%ro?d>0nm8n#Kr71Ab(>SP>0x`wZi5Jqc8W&U-a`j{Ph(4r9J)&k=HnRW- zo$%)1W2WsS0zJfpckSGxStTIXlcD7*?hIW+PaS%i|AVuBn#E0_(L_!9P<$4QJIZt2 zxi<06$jjofKW(;-gQmaOKJyf}<`uUi`81OqmVtxcsxDY`6tcVOYA10Joz~+`oCt`S z>Y>qZ!f&^(qOg8@(rDKGO? zV`1^v9j?*0DeU)`2Wu`Nj{?W@-d#SrinDW?+|r~dme$Na3$t+J`~KCCQVNOL8Bl44 z^fbmMalde17e+n6f6t@YAhIc=cTD}*osJXu^$XCmcgc$RGN)npD4-B&eBz6M+~qO3 zi&qWmhJGf%^wocnwKq6)S*G!Q?(wxZ^$M5MZKHD9eM8cry=wpGNpthmUJX4r{+?fPYOATGG->Iym#|gJLSLdmi;{Fz zKTRe+h_%FyYzKy>{rA}kgH?rTlj;v}@!j+I?zzY7e0-_nH~?cQW|EXX0E8p*4dDbr zDU>=H7er5mEWzGRS%Gkk93|008rVqCx2yP$YA&BGPHht{Fg6Uk;8gP!hCDFNomQ}$F#_&kO^%BGs zMwfATV?e>DXc(oBw%4mDy}e8lxVnoWfN>C~QFuQL;+AN9ACK>nOSc`=(vpdoBV=n4 zxzH>_)r?XK+cLLSAaPf*eP@4LFNvaQ7nP{4rCGuH!8|=dQvBLO9 zbBI8zHLg(Vu WQ7duZ`Dq&1M^4$)aee_&JKP=1W?3Ns literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_property_map.cxx.i b/CMakeLua/.hg/store/data/_source/cm_property_map.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..58b3634da63c01391ac86de442d0d50b1adbce4b GIT binary patch literal 1401 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_q_t_wrap_c_p_p_command.h.i b/CMakeLua/.hg/store/data/_source/cm_q_t_wrap_c_p_p_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..18db77beadff025bd1d7caaf6d756072003e6a04 GIT binary patch literal 1228 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_q_t_wrap_u_i_command.h.i b/CMakeLua/.hg/store/data/_source/cm_q_t_wrap_u_i_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3bb8776dd4cddca5fc609de317a5f728a367f4ce GIT binary patch literal 1275 zcwPbf1O)p40RRC20000000Yke00^@H0000000061|NsC0|NsA9+7jv4;K(Jv#wSsu zi!2Gz)LZQU00000000000001ZoUK)VZ`(Ey{okMB;1+}9rc#`B*r03!JSAz2+KFQ; z3j!1fXo|9kQKZWsc7mYaeMicXo!CP=ph6(XJig=OyLXqk`^S%ZS}lOFR&!0N1OU)KNVPKN{a6rNC|!YHEx2Itkx8bBRT^O*a3f@lAsgEZ>tLyAmlf}&-RaHe~ z9+ihnc#GSIM9v+VdqDc`9WI;_TcZ(Qe;*$m{Tlar@$m;Z`YrjTm-Ida=-*5mu4EEU zVoP5C=taGsF^ut4Egm(Wmlitoz-KvzPu#AEW`{74H1cl~;;E8GY0F&|0rZ7{05hPO zVS35(2(wKY+hmOFg9W9bw04oi@oKe-XoYG-O3&kqY&48FTT5FBK)oPmmT+Mr&kdif zbT&yZ5Y_){FdSrep6vM`yF8mt;rwa>eHiyA*&w|c_9yF18y zt{}iRv5}u3|BuwU6XF%89ZK~ugEqiMlMW7YCoGm~$Y+}9N3S1TFp?v`Q)YsmpJjW4 z-FoV2(QI4)4&H$%iVn7L_%Abebl;5d{efN$7Kj{QuL?|ptDzav1UDMUCV5XVSsqo zj*P8;&*4?KW;nz`th@~{KKpt5&qJGbI!51)wINZXBQ(yo9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_raise_scope_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_raise_scope_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f13e60015c58977be694b011c04900152a01ce32 GIT binary patch literal 965 zcwS>*WME_f114<-2IiX(HUsm2D6o#dEx6`{U^|0hxyqO1tG`tvbgnWWfr>e6g9H6< z8wk{$UvFV(vUQ4D?#-4dOhMBQc3g9s+NNmYJK1wx=hh?Z-gt96|M@=ma_*iF9r9~F z&)t8%JboVw`||v)Hv9>RC7CY5Ob#~U`vuwrq;uaE1ae1ZUT!$OE~WPatEiOYErXnO z-P_#SoBo=_?W*FaoXnM3IPH1WG`BI96J7T_BdRWN%TAob)zO2UTrQWZwf5+nL zxtbf_lqcC$?#@?!`{B*~ej}Ue%vH}5?my+X|9_JI`>(&5>=n=MDr|LQoGG^a-sb0j z8UM3sv%(S?0|TQJ0|UziXbRc_B0x#4v2#mWjo-ObF1xy$cbyHHe0jD+9%@pX+rQE8 zuz^5Z?+v4k8~=3~sRYedTic>=!Ot}*F;i7Sz)3Bp!!=3ywx&>rc*3KpH!5`AxJ+3n ztv>h3@AvP1pYPe2f9xBdM6&pSNzqyt+)ef@k1Vq}`N`AFxh}-#b5dE82E#fJ>4i(= z`@*&eI!|04d_6Vi|E;I($#P7KoX&h*?Acqf)Z(Dzrz8C}yZ#hi^M0R}op`L<^k(te zseOkhne*B{aJ?brG|ekpOE=~Ey~%B>9yG*yUz#O&h+(&2mLAW+DX(T;C_A?3nKaY( zjE>!2p0|t+J=x-(v1#tK6&1-D0r#2{zW@7qr~bh9`%U{V>;DuEU9|9H($l%u@9l`+ jeKPOzr*jdq>dGl6^(7S2Kl}UWKZ!o*SkDk~vqld9(S*Lf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_raise_scope_command.h.i b/CMakeLua/.hg/store/data/_source/cm_raise_scope_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e202bd8a5720f3bc4ec79658c46f53097f6bdce8 GIT binary patch literal 1505 zcwPbF1s?hU0RRC20000000dS5014Ls00000000C3|NsC0|NsAjO|Vx>7>kskD|Ae-qf#mh!+zkt(bDX5ItQK zOeIlvw4}EP7&0|4+1!Wp-o3*Y=gd{{K&alI9v^>fpPaUjKhVj?&hH;Of1HNUFTz-< zRVU;UOIdw5iB7PJ<(^)wjhttW8ocR2PU*9BD`vzI4HS?3(}wk)R#qD)%OWD`<~fBh zOGa2>mLiFOHWgxz7`g9`w4uzoMW@|ftyU2)P>x8OdHXUR4cq&znJaQa!6*@q$=pVs z8(wiHEm@rgMuhi?w9d#`=|ngm$Qsr{3Bm?qut4{7pO(x>HiP0dlIQ3` zPUQk|KJ)-0ElQiAULJ^-#t7xeI!M|#i0#p&a@s@qeYQ#%D*r6be-9m^Hm{z5I>C?PZ9I3Ix9BbE6XPYC#>R2mE2E3QlBguyPUs$jn{45%UO zV}mjM(D{+|OzRwumrk;Lj0!faOFEsU@Mr!ry!ZA~^S`TN{6@^oZS(8}Q$dOqp@B~s zGB|l5xJ+eWwkPEI94MeqKs;lnh2iP0fQTACY${hbzG!!$>DRFbqtyV4NI29&hecQ_&bp{6A(FWuCtv_5-hK zLQx%`_qAz!!R*5SseeRK)cmIE+l}L&ciutU?SP*9kNS*fLE4ElK{;zbSaq#AWdiPu!t4#6?L&^lJFK|cjfCsc4 zQpnBFapoukt!DjIgW~!Uroh;RSJRjNlxnH(x88*TEH`rDa7!c`CsM)8{T;J+ELk$e zMFRPS5@ZY|SDHkc;xI2_j|kTxav_7?yhXyV5hPx3#aV>k9F|JEsTYOIxXsZDw}G=q z)L?~1fe=wtKo?RaH%fl@X07gTK;RIwbv0Gu{xrV(bTb&9Kb?gKhKikr96r1E@zzWj zsN$?DB`@OjLW~$Ux^ZAC9_?o;Ce9;<4sJ1_5}DTi1^vVt`2YX_00dS5000013jhEL z6#xJL00000v;Y7A0RR90|GWjU#QUZ(G6qoSDkst%!Bzs;%m4rY00000000000C=2z zk4;L%KoEu7jU!ojhDXT4*<_Loh{lZr3JwUusM)AUC#jHzq&sxC@i5-UTe$Ne)A@0h z78F$R9^b2CjD0h9bjldJ18%sb6k`R`oJ7&ZDvDRp8u59W#OeAHfd^!yjZkth2RrJ; zw8UZJRK|{f7+X9zW$vuv}&OSZXxzI|K1O5dAJk7NyOP3U>^K~NRA z8@1qhLlAP5MgVxOdK!1%r7gZ(|GKp68T3>OgF>|}mnA+$)4-7Zhiuh>brQPXI+mVU zgHUkeGA(MyTVh*byd5q?Dhtz5Au2)T0FiUdAKT#Yo~G7aU82&e9bFyQB<=K4=wEqz H4b*J8u#e5! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_remove_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_remove_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e9871db1e5ee1420507fd4be1bae886f59b80b85 GIT binary patch literal 1218 zcwPa*1U>rz0RRC20000000Wl*00=?=0000000061|NsC0|NsBrJ5lt_1ij5it!6=C zKP|OER~v)?00000000000001ZoUK&vZ{j!*{mx%8*IS)Jp$YV~T`4J*IF{X_gBAta zRaI3hlNjQX*vNK5d#nB5Z|v}^6z;w(A3`$rd-LXb#@=b`SN$p#fT0vKNirV*Is-DN za0VSIlsX%xL{Ejxz(l7krSO$_#sy z^#VTN_CDdWoXiZMQ>$U%Gtng)@#Xt@qjBLi{`8t3p?Tpq&i%$G3%#dOF~NPCi59H< zXu21;ipw3bc$I9HXmFycAvuS?nO+h}>(JwoYo5xkcLY~LYL;g%Ks!yr!W2lVs4Qsg zBHM`4Eu*VnGzbZa)(hYBmdm9ZWoU*g|2#F-& z`W3_!2Hmi8ji~lty?$@}V8njujc>Z65q!A~p$)@!IPP`s`t5MVG`tIkx1+9GmTGv( z1Wyd2jg4Gr7Exu3$%GNjO&bu6zGGFttocs8%I}OvX&zHJ+3%d>q*C#`{f4Scgh=;; zzTe|aGm;L8QjXFXC}@OTdTHN{+kAF~1#+eT03v6qTKR!yu&HA{T*dyOP8BYpS+y4Z zuun;KE;(qK)4&FPngg{Y5G6#OLO~=W6C8_{C4Fo>xzTsb=2Qbf>Gxg&Eb>cag@(k>+%dHzH9&?^g?e>>69>>}oxQXIEdT{*14tXu+MejA~FR`PtOa zm(9k-HjRn$Rb94xaDLn7`k&eXN^<(LK+CQEbz)pNYC7&|qc>fPqOoC%veB#3G#lel zD&H@c`ZyH0G0!O1&Q?@?pP(8XQex~cg9wb~wsXVo;P$@jm{Ta4P@IG7x=`>c{Fhv^ zr}gMY)W0wrFq4y;>xJWBGOpnn&#M{W-zDrcR{*uz^RB}N?=Etce4mhLZu{`@`Kh{f z`>0Eff!5zB-7$rWB}9_qeQJ&2bh&A<9sOnOsQyN&f6w}3r5Myyg~CQpGuVVC=*oQi`LnY7Z)d@R4$DBdR$32b zE2pd0f|KCneTL2I`)YzWBDOv{T9M-Il{>d^R5Lb6LB{U??8qwJ g98ehTC_-)=)0;&ZU6uP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_remove_command.h.i b/CMakeLua/.hg/store/data/_source/cm_remove_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..acb5f5f468e10e42ac4d9b0b041fd3188ab15fd5 GIT binary patch literal 1318 zcwPY}1=;!l0RRC20000000aC000^!C0000000061|NsC0|NsBuRh4&K=6XeMH_8_r z9nC9GBP5mp00000000000001ZoUK)DYa2Nb{=UCraKmA{={o7P6r8&QpW`&9c4F*x zN}y0=?W`@Ll@>{B*M$7{8)^Mk$H#F{W0qZMULHO3%&67;^H=?%2w-IN+_1b20No*b zLU;#Vqpf{6lFVh=UeF&dKej)7YJd1WxIUnp*gtL9?`mbWaiYv)fR2<9+$_XuA*<8kLMdAx#^a0^{Jz$GfEqPPY5=7kjGM1c%b zZVftvVQ<{MC9lrk{Xsu@^k8rL$z5+Uft&j=bYRpOC;jep&>3$cji%$#{iGLHNA+>p zj0y&PN2AhCaJ1ntx%QxyR{?WGJe}&7X|LIe-iS=4m>tXJ`yzTn%R=Fa9dc4!mMKDw z=R2L%qNvqu!Z$9NwZ~o&(9X;V$}~X-jC9`l(t{;4g3Tn-wzoKP0*j;#wzC4K!k|>f&$*JE$ zF?_N3=D@+HMbDk_HhL4fQY)-Cs)9dEl7t4$^BL) zj3tFCu1n?6kd;uCvo{QLWI#faLE7tAzi#=1L-=reB;*Gwo_?dm1+O510j zl$=vDI7l@wb5w5AqyG^;p^1vuhb||@QoF{&AgAG+#xS+ju#j|y`nWf|f9QShC%qvw z_GD8MWNBR6O6q5@LqAIXAJCgp$|IbwU{+HNYW~}^RDYmR_s|(kdz)t*$Bl2QwzaFo zZ#SEn(Rn!6uFJ`t`gv!*Z3VY3gl~s6l$J_Lv!F^xEkGjm)6z$x-VO5I``0m^$23ZE z!8Nrdy%o%ON&}M(N>u@&6k(pEc!I!6<_DsFLXxl_3A9!aGczFtT?k<;X_=zg+~mvZ z?zHhqnO_S_?Q7^-PEQb9>HQE1&y#h5L&lA+A5D?-{rsU0eW50$IgKh6S@aJg{j9VA z00003`~Uy|0062000`s&0000000BV&00030|Ns9Oex7hMqsb_4DH9_uzM0$qDn{7= z00000000000001ZoOO-C3c@fDL|5=se_{`%D2Qz;MUCP~58gzCbub z$F#O*A1ph|EHeP`1{h5M;DmTkY$W!?gU+*Ton|74=Ed?*@s=PiGy|J9<_JG393-i cJi`Cz=dm@q=C1q7ifh7z`aRo5U!Sr$zjpw8SpWb4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_remove_definitions_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_remove_definitions_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3a69c445d9fff0275411c7fa381bbe2a5ddf77a3 GIT binary patch literal 885 zcwS>*WME_f1Ev@T29^p4n}P8^6nwuvd(~qVR_8y=40D$K+BA{%a9ub95~!H7HaO7# zwt+z1`}I2vO}0)^({1+U3ee;>(29y$n%JTKMD6;Ks3hgzmkwR{_xqeCk4dJ@ME27= zcfa3#e*XD?=RQ`~t`$3Q=Ea>3Erx~+r8=cA3P!hX-CHBF<;pT9@z_&B53RLKnzkg~ za7i!iEXj1-@;gZ%duk{~VUQbn7IkmSWlyhq3%fEl$acz^d6w_Mo`ffwu_S22R zj?zlYZoT>b>#u&@{{!-G4nD}sV$0;;c^ZU(=Hs)k=T+EHly;4nR`v*mlyLKq%}I; zG2M?}e?2a0qy9Xzo%Qp4j{Wn_bPVNuBa`CcH0@gPtsmZ8nFn8`F6OA1@9FKPmvx9| zo%_k3U$h!Od}3R7*n&@g@@(e_Z>Wo=q}9LWOo^Fy?sowWu zqFMXOEy8Q>xNwwju31$+`>^c(uYs$!tTAp`Yu>ivM%LDv|GkFUx?A+_pJG3F!qvr6 z_}VtzRL2d6rnvuFadY?YfS(g|1E$$E8ti<#Mee5FJFSyC&a8|sbzBJY`cA?T~ z)uNkaU*}ETzu|79vV_BO!(SUCd4qCACanCpf%8vU^1-ry;jRKEMtQ2aak3s3c`B9M zXO?D_o7vovw6jqSNR?^J3*VRLYg4iJ;b-G_yzx7m)0dvOy~*4se`ogY%azx@^(Tn^ zW}lZD=L$=eKrj=SHhZB-(-B01(q`Udo{M4DNw*)bzO1myXwBO4jwNZRX;Zc5EY~3e zftK(+Us?COTPVW1(LU;mtF7jZ*%}r6hEp1r&A2Oe|5CWoHfHAg28S6Ah$omZHW)t& z>{NUs${&+*Q|;`hEfGm^K^vD9br-f&n9s|7{O|FPEGz4lnvGn#2P)+M@XZ$ue7Yv$ z>mH3~nx~sr7)MF%e?9YPbhvzgd7rA|)9iVR>*m_IZ5PtZU$i9EC+#Bt?=syc07|fu A^8f$< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_remove_definitions_command.h.i b/CMakeLua/.hg/store/data/_source/cm_remove_definitions_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5590d447088729159f1cca0f1922ac89e911eb3e GIT binary patch literal 1549 zcwSwUdo&XY9LMJoW@u_*IqiBgvgxL*m`9oG*)Z=&Op-@7kGZ3`N_j3yHRhR;gb+%3 z#5RhEc|V=OYZn+-dWWWJb_o?mif%-YC@@RECi&7S8)5~qW^M;<>E0dO+} zx?>8CLAi!7okKEM1Q0TG_Ka5>z^hoP{zw%a z*Z?7?1>lswBvo&}yj*P`{bE|JBd{)oe8oMPlBY?1N66sW*?7ZS8qE+!nVoG+>B{n( zGP!VJ)s`vGqoJS5zo;Zu3V2}=d1k9KV$CGY%z0;0xR?&t1{VXixpT*CQGLS&q|O4y z@9&S5zW>Mgx>}QY<^0rEVZjIRyVO`xq;Vd-EkM{yAxhKTqzM+Gsd#U3#m|VA|I+S3 z!fSuGqhk&FfgE*tgeVTGQem|-Z6?J*puguy<}_u01R}*%bh#;QbfQ-Kl)*8rZs$Bu zz+#|gvkOFh?(hXp%8^w`Q_%qZnq8%~@|RxwN=rfHQo_3I>P)k7XOa_-;~&RCr9E3R zvKUkcU!{z4^SKae)q*u^#Y}Lex_R_kn;3YDYfc*OXytY_M@r5M4Ar=>ju{AsS(j-E6J zlzN6V4&OBu|CwA;1A%OWj%Rzg^lS%&ErIk5qY}@iXG!*!?{b>ml*)eJ5uY^&lr1>B zWGN0nW`}S_R$P;kN*h0@RSmvk$24P4&GHZ`y1Z=Lpf}Y}qlv3Sw|ZmypP8Vv83%Nt zSH1Epd=6p?2c1~0#86dlEl7^x!lc<+3Q12L-m7?R%S*MszOG{J_||dSk?r(NOvQle z3^pq?S;WYW-Ad&9>eJnfIk{<^wS}DXXqj3da+wncltDk0Fk_zl<&FMI)SSIcR@qh1 zMkPZ?+W38>VIHCOH+rSTD})Bx4fi4pA-AlXT|xA~JN8XrR8*Jia!j?K+_%Dd+82So zA|6A(v@>W6+9#3B3}TSXsq-UuFRtQoBR<|^D7m9l%rY`{?iu=@@BhZ=HwPeoDnRyo zes{q9@Myt>Zim&zcMZVxUb0*I^k&I_9T0i#0G6Q#zLLJfKI%(}mWWjCiBx+a=(zZ# zOt}^XIpFBacn3emmS6a&ux>JZV5Z$lv#Gyfl`G3KV0G+}MGNO>5Gdz5%c<5C@((?n zg0!5G{F$6RozMj)n^MDlHnP+@ahLYdf;zo?a31Sttag*2&{j0OG$z9%HpNfAakCgQ zK*A_*%d0mn+2kxv*TCl)@%adjftVhQNGk&H5~`wfM?We#0i zZh`?iuu-v?Vvi5^h4?5IQV5E<=Fw?$^-=uNLF9u7chL8SqD4Q7mVH~t@8>#ZfS;BO zYZaR!^2eVK%B5R{g)HT+Ut4MT-#U~gNxCUGVTi8LB#=|qN?N}TMz>j;8OF728Ko1z z{4vt*C73al?`Iom;zqjd?hhCf(W3!cWQj<35DzGxr{1A`q7QY_mzG)%Uf;_AEIvX* z&&KtPI~(|;`Y^0#0FI3TA5nt|PMh*@StC56XC4ani@a@)W0!y_F1)W#hM1$nVTqmY iY>8szIoMd-z-(`zbGYk8e8(Xlb3uN{CFDL+RNr6R71y2s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_return_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_return_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..417bd661244e313c9594e5bfa47fcbbc217741c1 GIT binary patch literal 580 zcwPZS0=xYH0RRC20000000IO600XfA0000000BY&|NsC0|NsBwvf9GJIOlv@+)B>t z_ilGDzhW)`00000000000001ZoUKw#Z`&{oz57=XT~Q=$Y9|>s6wWrl^U}pwzF<2m za#U<47HUg@L^~;l{r5@sumU;kR30RX@dsgN}RHYlKDp~7IRW62H35Gf|;1>_zU(>RDuw{oL7Yb6W*)?Unbw%}jJJ}#)|6~-Bc!s(irjoX4 zVb_3>(cMh-X3KZ$Iq$g0$~s55y4;-N%5gmJa-p1^l;vg6_aniHvvSR}?rAcC1~apz zpIYClEe>DIfI`#Fpi|+$mQ~X;X0@F+Ax5=^8{OW0=a+$ZzMCL*ZA7Ax&zSc})!3hy S0@a4Wz9-Ia$N2*&VI3RzeicIi literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_return_command.h.i b/CMakeLua/.hg/store/data/_source/cm_return_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..023cb198abc5f7f2d522e5c03794962d2c857c3a GIT binary patch literal 1252 zcwPbI1RMJR0RRC20000000Y<0000000BY&|NsC0|Ns98!(g=rynzgVVe^T% ziv=$od3#&{00000000000001ZoUK-2Z`(Ey{jOheaEromT`BRfp^&!$o|-hqY{!t5 z1px{SG(}lNC{iFPyGD@zzN2Kzp5vh%P$7^dlK1Z2-MdqQ-futZ@;rdKRx3@45CEbn zd1CMZBCU-1Fc-vTN*CZ(GcFi>W|C=Ql}59vN-M#f6}*k3h1(B-7BRDxmXRt7B2z!_ zui-5oo)EdJ$jTj$-oM9%PsBF1Xx%&yE-ya@msi2yC%F1K9DEE1ztpCGF>Sb#VeN;l zdGm7RU*RrpN2=UvzRE3h>4gIsz@OZ1h-Q5lOX|D3srMr#jnbA^g%2!Po)Ow_hzN4Y{>t7zCTm#-|0Q!dH3~+$PgWa5$RVLI5TUQf3Jk#&_KCN^)+% zsH|oL_?&WMHD6YirSLFLZtw0B7|kBxVHC%sS@Jl94Y#?fEU-0`(4g2HZHrQHG(sRv zq}_tbV0s-#w`eu`V>}rrkB;okIGJ597I1SH!wBZ1I2lLxlTo}wn%~FsyT!HNgz9j~ zQmq-#HjPqQPMN8LDU>5Eod}4 z(4v)D$Mb?-557=Aj5)RP0C$#}qo-yaGOY?ASPRW4s(I@YmsOIw81b|-IKe=bxHt1H z)4)4R0YWINrQj4=(%!SzEQMGZB=73eYxIJD1lC;JiU_QXM8#CjSzQxXGrEhrwh8dw z9^Rw(AQDQl?nP7g=lb5n0FrG^`3>v+7w;SuN`!E_%TbO;&fQkVwLzgusw!!j##3B2 z#_nJ}O(v*!Q+JY^5U&|8l@i#Z+;Sr3n7OX8X&A2SKFZ zOW|_=yiYk6kPTnumw_Y&bB%oLnBc%D8RZ$T^La?4%i@`myR-n!iSFTiwlhR@o_CHr z&2MM;f+ok_7Zs)0NfuH?tAa_pYw&NtCpeASr(=_|66<_Nqxqe^>i*4a>W0q$V|7yr zaYE`9r=4Uv`}gj}7une_#^2H1K0Gun;CkX9k{08r4f?>59jOdfu+$32scEZRX^kvf zROg|EIQX>+j8!E#Cm5{NC@yYVIjIKAb*A1Uw<0000000B?{00030|Ns9zE$dFY zY!we+Z6{z^!kWMsJo%>p00000000000001ZoMT{MIK;rf$i=|G;Gv-4l30>zr2qyh z5VnzlfrY+-p}vu^f|0S6v5A$TrGg5Vf{Mi> OAZ2<=)?5G&#w^_^T1-j+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_separate_arguments_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_separate_arguments_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7d8679c614e70f8c418458e15b60de5e62c59147 GIT binary patch literal 948 zcwS>*WME_f1E$#w46K|GHUr~-C^&riPuR9)VFg(S`O|gxiLpsp>Xe6gA@I4 z8wmWJ7hm}L!WF04A_C4_%$nS+tF{KHGPW$sESj60e0HPu?aaiE|8~}z+CEbAPq3f< z_H%Fb_jf`$^82qpuVfHbecm-ik>N=4C+>yp8z)75SDQ0qW{B#J+meqto@)dMDo<_g zO^quo(YWFD=*m&&1*u)!N%IqyJPYkS^de%Ks^Cul_wRRm-`I3QQ1Elt8CkP?H#dqe z|5odpvU1knxc&7KU%og0Q+!j$_xtz5gNeL*9hc4&Nt`P(eU0UtU+iXChd0L9Xqf5q zY{@)6@y$W=v@n-M@wTR4c~?tqra5`1Muh%i5PTkR*hJ&XifJ=`Pt$e1WAN+Qy@rqg ziOn3%30tFnZrQT$N6^{k?i?E~Gk@;jq7CO9``QfF)h<6<7kSVm!*aD~z(nps~ zJt&jce)H(nQnrgvW$(Co3dN?CyKhKZHeo7b%%X<2qatF_dKQ}%yq9zs@GGPn$f{K!1s&8Hn_9l9CHBuzUwBR47K_&J4jZ4<|$RCzuAi? zv;|%%HC$S*@tLz@*6Y6S8E=y|Z?pa}>+i8Lb~~BFdL>!X z@_UzQ`+WBcGGSi2Bx}3I!#k!YzMY@twlv6$yJOXyMMZa&&L4`JyLgtv!j)4RBp*u6 zo~^$7npK0COD?nOmIKm6Uw>*gi%7dxB-_TRXR&a`wFzasFSjkY+IlT8`0@Tp zi*5ezf08%(ODOC561&QK@+bNx_QMi25X=N7Z8>Plb_9{2r0o#)r=`E?>T{p}=j=M< zJgpCJ&s&0;v{ie~avd@dXbIo*m37a%g(9pQ?StyYzAj0~U-ZECNC4BUq_XH5@A#89 z_;_j#^Dr~SH(X?4IM?B>+O{FwreI>~Y?ITMlR7IskIp)!dra`r-HL6!zxyAre)&e= z(^0K043BF+Sl5KPOx>Jx_4A?`%XRn{oy*Alvo2jMKepE4uEjK#sp~8IewF@`xa+lJ RPv@j*hBIC5|7hs8007cWyW;== literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_separate_arguments_command.h.i b/CMakeLua/.hg/store/data/_source/cm_separate_arguments_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5ea6c115e6ddf09c56d619ea2ad3b3355dd366bf GIT binary patch literal 1257 zcwPbN1Qz=M0RRC20000000X}O00^M~0000000061|NsC0|NsA?n|sRs|KJ2Dx4onn zv;4MT?qwAK00000000000001ZoUK)VZyGre{eM5jh*noZlO^f3>Iv>n+EUV>LV|#_ zid3mG-hs91wO6(m8b$f;H}(HaYm!g^&oJP@!Q?8!{W|w3O(r;N_$@_4^&*`4kIA5KPRn%uzYp z(|OKR8fS+qcu96crj{jJdduGH*R=4F(7_Eks@~rmAHQ#(9Md08-gVx-@4Wppn0`TH zg;t$#B(6mDaT5PUyR_ZY#kCR3%t4bMcqeb*vv6x>@DK)y$Np)Nw0ZI^5QbG z%?l~Wh#VQF+%@P0jQW$_8CfMC2E)PZ%9A}E%+CAMDV$zRAc1i*nGJfE!(_7YG`^gS zFQ)yt3f22%bG<^~+cYZe1Vb*Qcsq_1wPQkw{e3*$;A zsjiCjR&r|JP*GoTzR6FpY14BHuD!RQC$+-nL8Y3T@HFU3qd?*M398)yy^S7X#hH{| zz!~ZK4iCSz5XO??71yP5Xb2@#W$b}rLJg^LY-mY8b@s{6wU*TD!U-nFl+UJhX{WP7 zANt?n-8Y_E{#)hb4`60#54!tIse{qvBsn6zxKC85mHtr&Arx3{MB%7W(nl%TX~1|X zP(p9&JW^G#yO${h#d7q$efMBSGo(N+79wP3mk^(i2kPhp1fDU|qUr6<$)i7cb8y3M zYWJPh#cOnLBd^6BlWEC0wUmQY^MKj(|1(F;XjtRNyCx56sG3F4n9@jd6dL0QHLDc1 zv?$cjI~H?s#5GCs4odp)8@1kkWk2$B>;Ex7Ev39ie2;fc8(=?$%`eGhkbD^S55B2J z4Wuh)g~o+iRs(f*lrPmf|!Q{^%N@w?L#5=g%g#1bWlX=vBu{1H^~+WSs4u!<(+naHPx51sG4; zdA6AiVr@KEvc#8jC0?vyBg?BKni0Q+sI_9}_q`_e#uf)u&Jsr`eL;%=|D!&qMyrb3 T>N`uW2qWtEd>8xxAm3Ymv&&YitUW|YlQ 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_command.h.i b/CMakeLua/.hg/store/data/_source/cm_set_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..fe6cef219769c42a3b34a9757fd5de36dc5bd9d0 GIT binary patch literal 2711 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_directory_properties_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_set_directory_properties_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..797fb3249d6b16c0cc20df003ed57fe5247ae8a5 GIT binary patch literal 1206 zcwPav1WEe<0RRC20000000V;n00@=<0000000061|NsC0|NsAZKD!iT7HP!ylTivX zvD>oL($%^E00000000000001ZoUK)DZ`wK({+?fP#+|C9(4=(QCWSF6%h-wr1qIrw zpDGg!SW9eVJJ7D$f8Vj4w(HhjdheDG!LiSI{G8{!5bbyW*5i2qV=0!BlraFLL-Liv z0i;qWbucc7UIg0!bB>8#)gWZ9?fiVyLe)2nj2#*KrhWx7#o;QJhf7Wpq3p4x)S0l`acF`Cv{p zVTB3}H+-fmra*~>WdyjMGo>Y)RhrJ>ygxl2olYS+xq$N|%aW7nMF+M_uSBJRZYT$b zqF3l!t_y}v2qX#D*B}-!>}BaOdLODW#lBHLfOpV_z)F4Nxy&(j@E$MkNhze?$VpL{Bw~(H*jz|M33ye`s5BWxtg573 zt47eV0FvrTa#)Z;QMdCQ-?tPUEuaQmnPVF*`astud}rWU#p|{2xZbvZtFD;;@K_;c zbjdg>(S-K@g`h|#Xw^|!9oPc=7Z}#RNb9V_{1P?sgWz7PT0#8jc;CHe)r0pym%O|i ziTmZE^)RNVDkY9>sa!JcW+)J*|G*U`dCa@c|6VPXtw__je#bb$i*D`fKAT-QdQhE4 zR(H~d?yYT5-*Z#{I&3Vc#<>)D*<;1pscnC+R+j^Cjq@|!eoq>3}4mSV*0000000000004NLB~3vJ z!axuk@zytZm_rc-(Y8{mi-@3t-bBIs+74yG?#j+6`WCScxylNa&oPb=&*a%S`zyysdYHdS$3;j1x~sr<*t8etu2?oF zl8y0Hiu137cQ^84h}W)Zw5=kg_ST5e*MnvruvAJt+U}y&EZ*39iKVkFebm0@QP|u* Usk}@0J&Be(V}BTZ0VzB@R5JratpET3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_directory_properties_command.h.i b/CMakeLua/.hg/store/data/_source/cm_set_directory_properties_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..438fdd2915912fab78a354e1f6c5fc33e2ef9b75 GIT binary patch literal 1384 zcwPZ$1(*5&0RRC20000000cb%015U00000000061|NsC0|NsB;1d)Vy=h#Bez7>+~ zjH5Q`P?-w6Ge(s)s#2=jh?0@>~fBMOp z{>hZ)Quyv%w&L~R-1`MraXFObM)AecK#QJPkPEosW=$09KrE@8D~YB*8GfyM#42OIaCUD<+^u zF-x>9%ABJS0x2TQ2IL$DQ4(IGRq#jLkJCF#_9{+?(PRQwqXYsN2T2--xBVd5B8_j8 z@n{lxwW}7F%;bsz-G@;~!zt6wnL=99!is_zj5~VuYEo=>8*lhrWNdy)Mbl;D4Q}It z{fC_hDrjD144Smq%dpvK(41&}3IKd4t69z|?2Q`_je5$*2(Gv?70C~)Z3uHISnI5g z??WAB)Rd`|0KwL$PP}v$->qD_?Y14XYti73l03H=U!o9fs_2#^F3q{pC=o$rB@9!z zi;LRWX+@MMAX}oIo9rG@pGlcxO>o0WKE{x=w8?yb<>>wD-mO5z;&(hwX!8z;TIjRO z=LAvdOcj_F_r$#BPD22XSXoSp8Zl}ErR2i6 znyxg18KNMD+67MUsp{IuWhAM@R-`Rj?C*qjG4E_u{)6WwG5Nl8e#%XKp#b6Lm0+02 zP9fFS@Qx`Z)l)I|rC4An{$K8{syu&^x*s%vJ*_4Zc|lCAaWWc5*rub2%kep^NM5mX zH@K(=7iagPc>sGN2%A+`1(i}r=b#L*HKD87ZURs9Ag<+e1h)smy2b8~col|p`*E=5 z_NHVd-kb;rE`pvbz=I3NVB7BNLp%)ox4mfEi<2l!M+y4Zfqp!^c|3Duy0b{4FZRZo zMt_YHyvpLyu;V-ldc8QsQP7_bf}3a>_M>1py^8zM#CsHiEuytewtuY+L z)PBw|h&dwyyT=h6u_h%^&g8ynKLP4(_f1JeOJQHp}tA1T#QTvgDW zD7YWTp$yaxOw!U5ctB6&*slE`rI1r9HOOj2Tq;a;!G#6PR z@-2n|;$1s3w)s7WSKXQMNLPh-0j8y&x6kYmJL9;OH9oAZ@!S|Tvc5>7Iq_47PAj%< qKWJiSn(BbcHpCH1SJ5)S|ESlo*Q#Y-ePhWjVMN1T?1C>Bm^i?dCyT)V literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_properties_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_set_properties_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9c3b0e2ffb451db1cd3c6f65415ca13fc1d270fe GIT binary patch literal 1804 zcwPYv2lMy<0RRC20000000zte02ZwP0000000061|NsC0|Ns9t7|u>y8~k~i&h)0) zSIm@l^!WY&00000000000001ZoXuEmZ`w!@{?4zMW&X!cIWk(nVnfTcMgBlr&0mvb2jB9bO4}p zLGCE*LWeUUcKZR56UIYOs}nz% zurMT%XS-j%H16RQa-EZC8k4Ew>(uMGa7<((1jQuJt-Zb9ntN}Xtv9g$)_Jq%w0_sD zA1D_-iyWnmXuUTu?^vn#oVPQn8@Yim1gsi1h0%43m(~XoL=Nhp9Fm(goWS> ziEH=N#WH%QpH&`2(<6jF67n^mW1?31ij@AuQh#jW|3j@Byn`0hbo9Pfl4S73?h)$j za?ZF_bx9DYyuh@Dl!Cm1aI1jQ)98Xk|~rbZVILGoCu^doIyw!C-ngj~nb z2;KNHIfUR=QDaV8w}%=vdrYT(WYrGf7Jf;WXyoBSy?$#VhrsUK!r>uQ`-7`~7fYi% ztR@5*3FPfHFwy`;Yykmd3K-7f=}ZHJ2Z#npS5pRd10uRWpOyhl+0mFx(qg8LRjXib zX35$X$YW~HV==oK6Za1Ns2!|`49VI_?PHl-Q}PQE$*vm8%knAtJiNe*hc)J7PRSjp z6EVeD2VhKH5(|nU$3v9_NaHP)+vsu1s`)aBi9CuHB0ylRgIo-MmX-DTCToH8N&N6} zN&+(?cU&-Xw^2uUTW;9Jvi--HjrpNXKBKBP}$0g$F+Bd-=iD3UaEO`bv@{G zZ%%sW-ETL*VE#rswr$bH;Cd;0hcBRb&S@#g%G5~S>%kilcJ74o82e-HCo9A=Bv6c!j7#AJJnq} zMTOaAYQkBlS3IBVVP^>uTAnhw;W@)>S>3o`Czz_aDF^lL(J7UAIx7c%>A~_?9E1m@ z2%`PUXb>?^ZVCb;BbC{@<-#P!JJg)WnK61`@5?TW1LUQvAunGpD>Vxu za8SJ`f$!nfw^0z~OO>a|uCil>)JpG|;=LLz#7nM<;F8MRJX=1^W)P)6>FpywYUQsX z`Mu;m0;>y29$j<5nMWA^+ufr=uP@BU!BodT%Mca#^(}O1&7;OzL`kH#IoOhcsCcUV z=bo38hJJt5LqQ~R%bx>eO!h{@EqxWS*>90-+iu%PRc_UF3%xMm z{0Xhln4P{KtfyYb7?2I(C|$G)$duhp%-00<{YL(O>sc14L#tujs7o3ChXMJ}9`xGp uvuJE=ciNq^?(t2YDt*tP&dbPCQ|ovMMm=q6)kA7(Y4UytSN;W1{flEmNP(3A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_properties_command.h.i b/CMakeLua/.hg/store/data/_source/cm_set_properties_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1b80616aca0d01598f3e619d64d02c28fb428890 GIT binary patch literal 988 zcwPbA10(zZ0RRC20000000W!=00-p&0000000061|NsC0|Ns9*`pZ_^{BZkuDJJHC zOuUSDOMjC900000000000001ZoUK%CZ`w!@{?4x$(dtAfH6hm*3GPm!j+3B+fNbZg zNGG9XJ>XT>yJ&X}7e)Q=H*1sd(x#`AY9VCr%ro=s%rnz%|NgU{Mgw4G^vbZJ4*=nW zeL;8&q0!d9ok`}F+7#eVmqH?3qe8=+HUyjKtd!_c@H!3?Z|?&y5_A-Bjm8PIp)Lxh zvLNql;5A{!Osz_`@~H658#=gTt`0##>i3KD^N-!$IsKsbzW?rH|J|<@^e;44Xw|RM z;YQRSz2E~`$sFqSgAuFTL5rXHAQ$kba9d`u10%%)|8FaMsFl^kt}Ft8p_EX;EEu$C zHkbtzEkWEz4BS5sw1M2Yb-&x)Znpt1s3L(jtL{xY8F%-txho`4%^*X^gtUR@Mo*dx z3sx^HMnLbGu+E4@=`e%Oqx5Eam%{M&9zGA_czB!M4`3@?u1g2FK?QXbmlL*FOFnvDjR%-R=p34K_X3n@4}V;YZ*`lwHZ+6d!HCim7hgii=o?Y`;T@l3Hos+rSE4>ZT5}eJ8ooJ3S&tCitAE2G~^{z4X%`+ z)+7%y)ltu|b(AJn>Z+vmoXd|O3Xp7L)El(#+sEz*e zG=-#T%Z*q&T721y!)24ohb`oho}DRiQ0M1G`mn|c<3_i>zZW|D)k4GfmFABY8LCVy K8~*}kgl0(C{@_Xg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_property_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_set_property_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..19f9cb86d296883de9c1799ae5a7f20d7ec5a58b GIT binary patch literal 3635 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_property_command.h.i b/CMakeLua/.hg/store/data/_source/cm_set_property_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2d81fcece686467b5c8aadc14691bc5df9ceb1eb GIT binary patch literal 1900 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_set_target_properties_command.h.i b/CMakeLua/.hg/store/data/_source/cm_set_target_properties_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3e5dcd72ff87e90afc6088adace0fa69f6a5faed GIT binary patch literal 3382 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 jR}n|3d_l_q|3kmdtto0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_source_file.cxx.i b/CMakeLua/.hg/store/data/_source/cm_source_file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cbc77791c9fc59be1ad3612118effa908c9bcc78 GIT binary patch literal 6933 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 ZXf8#Da^iLO?|8At>(eVDCk7nP{tbvE)))W) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_source_file_location.cxx.i b/CMakeLua/.hg/store/data/_source/cm_source_file_location.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..10abd2a4eac8e13621a4ac0a6294d710e7943a2e GIT binary patch literal 1537 zcwPYk2LAZ~0RRC20000000qGS02wL(0000000061|NsC0|Ns9i8Q-hG7j95x0CR59Nk6S>LIy(mio*G(E@&I=r8 zML!L+L|H;5(I6>1LDT=fJ5lep6Q|3X&M*v%ozvH_rf z#y)e{gT53>?OldUdqPG)qh1hl_`qW>nHCbo&V-wUoTT98sDDNCHaO9hNTkD0@M$O< zrUMaM&dts49A2W#kj2x4O-ZW%>J<*WXWBp@i1~l;`t`5f*S~c4e}nxu_M6}BgP&8; zzqnKgW~bZnd0-y)tpl9J>AslV%3$hiXgeJOIe!XS1m`c>(CU&KmC9VC$j z&LbNN+OGHcGXb=*7t!H+(yI3qNCqhOnA*bEb@!7CjF7<0>z@KTKc|GRLs$gb7l{Tw z=dl6NK8i-OFhCi^ku27?AUrrb9`#RAsP}F#9E?Aat|x=>`SH~ioLr2c2baCkc+kHd z_C^Ni@_KZ6adm7NLkX5m#GHdukQfUcI9#QsM1oX~DH4o7TdgOHznyODryzF1#O3f} zW$^efTD2v4EYd_x^j2vejfFtcNv7M~d%{m^m2NHDUNzhr0D#8>qdvy=W3l6OpL*f#eS6*)1HwR?Rruro9I0BniVyru}w`c(@F4 ze4}|xS%MH+CcIoy1#e(~;F{nGa~1eGKHe)t3z|aLGZ!HLGfBd{=iBWLzt5=G)&8 z$`wk@xzJ4Pz6e7$Q@p4(*|H@7%lR9Rvvy}Uo5;)C-dn5<{X|M0>oR3JoyU3j*{FRN z#EkU)(W$*i^ep+m5Zo+!t7~$%3w@tEpVRJy=ZmQ~Q`)s{YM$aLP277N4Vls_$}75Z z3q>s+%`~wEUos>bRLO)0-|rkEGe(o~#rq2zh8&x*m`#xTFzaJM&A1bIx21-rW#Y{7 zAzwsFmo0%Qr_>nGxm^MqU~MhT_6V)$VKp=YE4kLHSC@-?f6`MYll>Z$lV=0+>fA_ z&N<%lv_R}=Mt8>iI!Mk*>qsM%t7VZkFFTkAThe@2CkG#nYF^5+Nat(b}GhFB|b5L22`SdoLm{3XYaMnc1|V`^u} zFtm%#+~RPknMLEC$EhK0Se75y4vRrJP9kC9<9Q=_y4s;6XQ0x$YHFJ&MO4MhQOZ*Z ziWVRi8g8*QV__&3=Jg%W`z)#3m3#R^Ty$0^*-R)EV8>T684L0R?*(L?S}wiV{2=Bt zU8t&xppM^5k#*M(>K+Xp%{Zq1*$nmLy8Jv0F`L*>ABJCz|we literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_source_file_location.h.i b/CMakeLua/.hg/store/data/_source/cm_source_file_location.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3a3f0b7aaab3a974fa15d6b125f1415085650d49 GIT binary patch literal 1332 zcwPZC1d%&yMyJ&X}MOFX%&Fo^E5J>K%@B!JLnP+C6dD-o>|9Gii6am~AJu{-{0zm&# z+#?)8-)L)(ZgSzK+7!TFr!q(QgbIyt+K}0$PRktG3f>I+BbIj|DMq?937*s2g-(Q% zTE*Gn0^X3tg;29n%-E*?_APz*C|m#_i12)JeEe(Y_?OPR-{9T*?)%@nCqH}BztLEN z>Uw9mkm2QBd_qzZ_w{^bXzJ2(dwo-8To?K<3=M+vzNq%Qz{Bk64>o=kxgTqSL5muE>EHgA|>Rxs5qC z`i(Pb!Ro1x2$oHtc^Uquz(X#bA8Lv7QgcS7)OUoL>*22RFUpc+kJS=nVtV&F%2! zdUO_tL>X30^a3HNNmSa&1g%e{&>XVjJ_yx}q8IDFb|-o*rz*wi&c^wgMXyOF748$0 zxk~afMR-LTPN-CvbPzt-IC~XENiM7<^QwhUqo~tv!#~yc$FLEQcw*$9puicC+*`O; zdYNN7^XyTf1QnQd!4FE_fHB^v5s_1&V1m?fQ#7a&D(7TH<_keSLrIk=D17c4Wb0HK zOlasxOQjvE34U{^cm$vjE5_1=blgihid3o@I8A^F8tOuyPfl%=GqNZqa#l)m6Qbto z?}|HKH*KIvS_Ua?2z8Sc_H>Up53I0m5V+|Cq?c{8hf1%{qKsW)nK)um>$wR5*Q?zFl}#sa2jn!Iz(3* zMSLS=Y<$`jliFQR0xR=0uxz<#z9bA|3HgDEAUT)5HVv6F{*E@1D!?EYu`X(z=tS$B zjt`e)Xj?nS$!GZ!n{MTI_KkL3!aj&n$BRll?$;{LP?Zg-Gq}O`Ldz6BRxNXDF$B_j z8JCk%61UHI{2-Mut8I@vir92EQNsi52f7J@{0I7VX}5^3{S9odQfVEm8|gb$-#g># z9{pJ>)JCW9A8#V`#^Np}U>v;w9jJGnjE<5i(Grwf&w zPy|@a-RdB;7VlL*Jkm4lcLrTV<`mO--<_CsB0QMByV`SVlYqj8lqEvy(OVV_oDT_n&1I>X&C0v0w_&i z)pR>B_A+!u!hPhh>^WYV9o?*YJ}8!%r2V(ODwagv`q0?i{mq&u*y?3pRQ1J$BAOey z;A`?0N^`eakK2yfek5w9i$vC?-7a5AX@DNsYzmm4u)R8PJ5R%c+&E&wk(Z{D->4Av q4JoenVX*oS=fIZ!O9n$3Xh(ELHky+)PFY4k7AmSe1?-;PrN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_source_group.cxx.i b/CMakeLua/.hg/store/data/_source/cm_source_group.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cda957d10ec8ba150d84368e5d9cbeb6e7322e6b GIT binary patch literal 1165 zcwPaG1akWT0RRC20000000d0{01*QK0000000061|NsC0|Ns9I^_Z15kzx4B+np~N zVJ1Dd^_Z;y00000000000001ZoZVM#Z`(Ey{;pqf&4NO98Yu}1tdpAnnwJ-2wqw}N zihNn1NR&lH77dcJ(+2tPJCd?3`DJJ~JHVz7jzr!aAKpFp61RT7tH-hcdYp}TF!lhT z*$JKq97B^cA&z@#AY;bIpjKm=61XNA;eliv)jBN7Q=+usu-_c0eGkI%faN?S*PP`O zCwzYXFoi=DZU@;Y4@OG7d31yezXj6hqPBTIJ30B;J^AFGeT36b-r1@5@fWT72jPOU z%+u$PDK#Ib&Z*kQ{U)1y<#d!tu)~_Nat6OsISV-X0Ie)^)UVL{O_mA9CC$eUfS;zI z)dX-N2%nP3L2Cm-mKGiPEP-)Iq?~xJJDbg%aE!ii7$3Pe!%o{>iY9WL0(uJ~A_JNV zM`6Qfm{0+N#TpUddqjog^f8wtf-kM%&F$R~{O&z`@%w$hJG^hejLL-N63CQfV64al zb;pyGq7oY7K_6oi3yTK!y5(pP=%$TGh5&AM?ra)(k1%X7zBLW9i;v@%_ z<+{f^e5}d=o>%#_Lu7`8FbQ}avS5tNDX(xcBF{Asy0~Mj?V9ysshCi4d@&$W+vqDH z+lV%-*PY{^G8)0kC8}qyL)I{9T%gkNf3Xam6!fL86SDCH6L^7N3BBSkNd@^Hy@Njw z4;E@l@hz_JN0ENJQV3Q?2_KclLQ23T#g z(FLZw5`Li4bTFWBzD|$weRS$jc(*}}pj54#P;>wAoGg>4Sd0TqqPHpuzQA6WnWedV z3JC?h4kE5puf>jVCb>u+9)s}7Mwxx!HE?uvrX<7|eBJ=?;{ArKDZ$*HJSCxhp#Rsn z-yHFln%PWf8rhX~Od(ubE16o7ldMDyBe)lKQ~=diaHott6@a#6z3bwjLM07S`VA8v z=7}!m6=5E`vSBO>%YuL})ta!l|05aE%+@vGyG&ty*kVanj)rCMB8x$dS$0EdzB|Xw z1{@u!k8*J_^-PyB5F^zi(6|yp7p$bGo_N>!V|OESfRsW`$PxzN20nqoBW@mYVP)rqPn42 f{6JVs2k$Vf+x@hmK~{XUy|q`w)G2=fWV!v>S`Rc! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_source_group.h.i b/CMakeLua/.hg/store/data/_source/cm_source_group.h.i new file mode 100644 index 0000000000000000000000000000000000000000..cf8b7f9ce05fe9b6afd21e2422ff15a9c3856400 GIT binary patch literal 1296 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_source_group_command.h.i b/CMakeLua/.hg/store/data/_source/cm_source_group_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..293f560feba18d16472c92d003fd1e7a4d3e9599 GIT binary patch literal 1494 zcwPb41u6Of0RRC20000000gN301BW00000000061|NsC0|NsB|ayc<4L>uhi{ltR_ z$<;R2-ZA0;00000000000001ZoUK-WZyGre{eM5jh*YP9(xu6@szmNi;s{AlAwfXe zi<&AjUc>t8wO9TD;i7)`8{0sZ9J$j;T~#Z(_B_9N^Jbi8{nsD$BniM!tGOmc3jjI; z@{Pe8=xAlko1q|frgQ=R>x>Hq7fdoutkM`ZP?;0VN5QL6XYAKoK#Q?*nz9S6T-i}Y zL1dQZjRm~Ih(3{XN9I1J^ZGS@I3qR!AVmCq^7ieA=J8wn2gmPQ?>@BN{TxC+F>Sb# zt#BAy@c5tO^!Pn4<9bJxE6wM*g+qGeQBL3^w@ac~1A3CC{%yi~M@gf!<*rBp+Co4G zGoYDadcm?3(Z-BDA*S}hg3^#%Teh0b<#L(Q0tHExo;NQigMRaAYidnT5-v>Y zx#2U(xdEeQff3;Ej2o-@)LE9n=icP<`ep*{t6TWo9*x>pliO2Ra+@n>fi0MXh+=b$ zElR;L2!S+_b_Hq%gYKwviBav}d;Q+z){{N&O|H7*F`QqIpbf+JXwvK4^xLB~((q<9 zydHPcn5xGmQ?+0~w=zm)Ib|j!Qz%bbdMgl%!edrH%z*V~a=>RYW3#>9xzCdWT;r0x zw2a}B3YRgc(PHbkT9P#Db-1H~7_&Dt0bHJHjt951%mCTl1y%)JXt6Or8l&!m_JR45 zI)i1wsC{$|EOSnCFjzbbuJkx2EQ5zOsICu{q+nSC>o+Ho|Alb#80=S(%RF`;elOOX zj3?DhUd|F)P`at$6t?0dk4gO0LNB05-VycaQ0`?|aBUqC=mm)$bricjxFD#p);Gj7 z@x9%=L9atcD9H|wqSGG3TQlpl1j&|rNuGvH-;;fOC=tTjJ!i7Yz%R|XHrOAMDkm+| zxQoje>^Fu{*2gw8p@G*Gd`5e!l)%ZrEhl1#8Xg*(wOR}2ll~?A_H8QXzeP2E0;1>U z$n)Lh%0lUUFIG7c?D>*WKI4Jg6D7}RkB0sTpgGZX9JKZd5mCm+wRpAYm-}Fe+Uc%Z zV@D~rfrU&_S1@VUefl3qOmM2QvueoRy4B92rAhQ7>JbbP32oiE@nl-t)N@y*fuAD( zkKefy;u*bvu!{o?Y5-M%4nsY@jJg+o>fLw$7>;lp_O7omYR(?MLTwZG<-FJLj=^Yp z>|ZC4rs>zCJGtEulQ)~}FOm2aY-wcf8N*ejDoDZ zPw{@2FeUVx!QmSa)w(3;=upMiT(Y5l@P>#GY`_X_9Q>M8xS5 zMJCg=%(fT?ht<8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_standard_includes.h.i b/CMakeLua/.hg/store/data/_source/cm_standard_includes.h.i new file mode 100644 index 0000000000000000000000000000000000000000..17d7a92df23b5df86ac1b85bbf19396632388254 GIT binary patch literal 3974 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_standard_lexer.h.i b/CMakeLua/.hg/store/data/_source/cm_standard_lexer.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3ab4f3129da3f770c8d90ccb2220f09c28a85dc3 GIT binary patch literal 986 zcwPb8110!S zkuytm;tfCm00000000000001ZoUK(|bJ{u(edkx~opd^B+L+H!F88)Gj-iRCV5l)k zdGaW>44P|88A*ol@9)Zn#Bno2AIbxm)t=q6yGQHh#g{+zX*2-lQmiG(h5+D9$$u0s z!I46#%Xvz4B4h@}ny{3@4dql4EhNIGBFYO}lB_dwbcS;?g(AifdhO0NkA;KI!wh)j#bsD10c7S<-mj;qZFqPi$}GgkdcTTn<{T0pPSEfk2}k zAnA_m&2`hcfydWErYH?id!=ax8%km-56qNN zwxW=c2>00YeM*>A8snnVrKu8~a1+#3Q>_W!zlW*;zJ7t$)77Abq>DJkfhieo%Vb8OtdO2>@jiuzh@V6o{{jyHU9k#Edol@P0nmW10|#XbHnA|C$*zEv0`4F;tQ+@S)n?{`a+b%*tea)y&D_CuPSl9Ilg}C)@99F%;?DD Ie~N6BG#{1ib^rhX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_string_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_string_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e26078b539882de9d8c6e6f012da6968882c4602 GIT binary patch literal 4604 zcwSYQWmFW3)`o`=0fC`A2WbVQYv_=WK7hbTIJ9(wq~wq@g!IrMCE*YwDV-w?5&}}v zNasE0-utcf-RH+%`|ta%{pZ;LEC3eZ-vA2$0G+u1>;SBX|B~~9Wy$LHF~ zQl-*$v;zD;{Briq1AP~o$sgp9io570(bZR3F4?4GC8?+uO>+7HpTLwH#<#eBPVZ`; zpUf=nxjaJe$1^j?RgF-w0rOFJJ+4@OFeCC*uv%2F*9`B;+a%EbTf zs&YktJp=YPEX|X$D~adE!k4RlOm6e@BG-;bzI2~E11MCh^F>^&TM)n2?}~nMi?`51 zYs<0%d-E>2#SlQW2A$aV$*Mkg913%q_Y+>YOBowPpYQN41U)>%cbhwQb>kN1c4Mmf zwpI0`4ah=1He)#{C5c^ZQo*}T4v2Ry{bXC~?bi(R5Uyvk6K<_eSvQWZ9iM?OFi5V? zmwNav^w-|F8j&4Zx@vJ|>mB5_ZJ+4?lPqdM%h|*rI+~dhU=Nzl0cX`xDcX^_Lq^hc zN9X83hekIlL`cK36YuS|Qe#*-PS3lLJuDwKOY_D@cI-%)0)c~Il;$~=uCQl(988y` zgVa>Or`zu<-%oTXtyMQqk7c4(arYI8Y1CF;600*lt7kJxv7cUki2Bi-k7}~$GbJ}? z?NGeaBn5PzycrrObKVpYQ#bMwp%vpUFPav$-Ugnjw^7N+?DanrLJ?6iEYT}B2MfpO z#g;ou0u9Gm_GQCSL z<8I=-)N+$ky*tXs`!?36B!l?&k&CfNts*Md$^bE{-c42cWG@LjTEX@E-Y71@t)Nxs zVFo^dgbZ(`kx4NtoJZ7uXiUn6J6rJn;XTEzrY{d?1{WfKm!obBNnz?7K3Q@A9yWDU z?YjZw@ADo)hEgzDPqS<@-06-=rkK7=$w|R?m{a1HL+1YEQ%TNVGc2V*A>ToHf}Axo zZcz<&0VeSswAimI|9FmvOSw&m=j(4-y6u=j$I6_M<8s+Zj;G8h&=qyTH5Md*N67^j z!iQTEEMNAbkYbcFmi-6e(T_}>P5^Ksc&}7NTjoN$ohZ?1%--Q3Y+5(T>*v9k?5&=R zA4|@xUd~4v$*nOCO^thRk41miZSBm@>!n5LeC^^TCsFi%Ws@D(osVl`hS=wK2ve58 zfbLPktCCTdt!}82s`n(0kRaSq}SuBw(}=)NA7|(t`>ws(*M{PY4=w$kkw;S z@qlZS`XLZQxO1pC4ZMZ^P8;@pe=c+f}Up@B)c6?+Juf7kWEU;GU3y}$ip-u5i>LWen#P#?|EEc$P3xzmr<(4RpecsQ2dLR*JtkT>FGRm7xS%J`ffdDUB43U zY#YDoQLd((S4@zl!{0!W`C&y_n7&O6$*XvyHsFYFYY<|z|ou7!y))xGZIWG6(V&quiq^7MK)9&&A>M>Uu+Hnwe)2jk|%!6 zm&riI-4p7kaMG(}CnLI1<+V}w?_^eWG&2I`CuFsbQu*B718^Jx&*k-Bh`b)xqQbwj zKR|%_9wqDHqw`O_6+Aofd3%#HhO?u-^5DS{uqmQAew77SV!;zzyN%oJ2KYHzFk*&P z{ERdY?-#!|IgM=*1GGS$YJ8fhE=_y#5i#}B;^JQLgGw2_{b4Lh1Y!boqo~?|-OH^7 zqhrw2KPNIRqFQ1tf~7ITNT!LidS}X~p{$pac;XZ_TqNUND^v($oyA2Fb&9jsU9_rf zZWx=S238%{5g<2YTjV@JOT^A8f3SR%wf3jK{9*J%y6ZtuZf_b8k=GIbTu?hh#v&A%%bM;>2;*wFzw6oEq&t3y1*j zJvRk}UUExNa~NQECUV!9#3X{kd)|Vov7qclLg{|ATUPA>vGk9(-8bA5WvTRCr&jy^ z^k?Fjf6|#jzjPS$Orm*BshU6Ezr22SMf-Cx8`IuA7jxMQTB8%0A&DC_MEbMHJoHhp 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_subdir_command.h.i b/CMakeLua/.hg/store/data/_source/cm_subdir_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4641b0f730a1a3241c920c1eb88b29c7af728f3d GIT binary patch literal 1608 zcwPZW2DkYD0RRC20000000kWY01OuZ0000000061|NsC0|NsB{V`yvau4L|nPd7ap z_f40kMBB0e00000000000001ZoUK-2Z`(Ey{qA3JaEl>vQ#r{x6mYfyp6#^8?8LC0 zbwOJMG(}llC{iFPyGGIfz9T8gs^fJVP{R-;lK1ZT`0kF~&M)8V*J=UGv|4MD^#EWn zC65eV!ayryUd{xuiP9Ok(S!>IZ+Z!l{^8=M-mBNWS3i2wKbSUL$)5Ma zHavV>M3?6{jq?MQ?=)Yh7Eb7?L%D?Cx!n@Y&R{HQWyWMUhnjsgF((CTq<#f{BFHLPG0NH|=S;B>hTx|GT zrrdy0iH`{IJ?6%0zA7w>;oW%o_V#WG{hNDu*PqY(H_Q7g*m9ey!UEec2?52XXq)AN zqY(mWBJB=T0@Kla@D{E5zl|s3<-H5`dc3?DEf#QnJBL2Z`t#*@a5w4COQhM|e0IAS zMPaKBm#ox=0j+72%5ut#-%O@l(9)@ZSR@{I_1(1B>9(HnM8+&Rl+8ohdWOSXvLiES zB&jH325p+vI%~ID-A)HSP(h42v}ys)tTabYi=0uO?0|s4b8r+Izmic@HOF0B1*?J! zCx(u*JAeY?0o=-OLF8H?g~kD_b|I}IxJE)5p=opd&V#V{tjxVFM_tCuP!_`G647i* z?AJyvlF|phmmVgFWV~h*RY<>sZtEx^(1W~K2~MG=u=TkWhI*(Iq|&LS6V%JyUN>CZ zf(X=!MEw>n46hKUAX=V+x9Q@uUR$3me* z2$uyZCP%}$n@YIG17VWl_AS%6ipyZ^79Mhh1?y?VE2RV$3~o6QGi2_>*tpl*c-nvV z?=E}g`qx0j4?y(VoL(J7%0QBgIcYQ_B&Jr6i)Pr=nfWMdxMC`-{*?9 zb`XSVUwzHfqM#Hr#6qlSkuhn@#QhieC6-w>Y?>TBtoD%QC_=2*aRhg!tRQjx(3B@y z)~A9_7>T2Hb)*2zV5hFW{J%i23n32Td=h3TbFac89#oJXwFexJ1;Y+`#cIHkB6X?cbhHM|bN zu6FDQ^UiTq=6s{Fw@~C2a}7yV6jtuh?4ZYUk`$!#ox{#1)l~w#dElZ)zG`GSoHFGP4(;7RLm+DOn{000001swnY00021000b4000000003& z00000|NsC0$_!M*vmEY!_(zyg)JMy^^w^07000000000000000c${^OK?=e!5Jks@ zn|g^^l%gQEi4--8D_wLa3hrYKB~TN{OiK^qi9DILUHf2|Km6f;0Qdk*W<io-`YU z1M#S3mTl8aq;icSS8}8B9mWyj-2}4U{hs5iY3+E3l@z@VFunHk?n67o)&_2LjSuf@ zESzPl>x(9u6F-$|P02nS22C8StBzQDN1UJz6)hwDPx(4`rfj(HzOm+pFri^D_R$wN G5jgBbKmIrX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_subdir_depends_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_subdir_depends_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f2e955791faec9c8e46a96a5621d3439e78abc21 GIT binary patch literal 791 zcwS>*WME_f1IEV;49o=#P|klSQ226e<*wJMxAJ~Yu9aK9Xt#L4a~B3AP%&q1kZ=BM z2Z6nxwcRp9o(jt-eRa6yHATgAmA$|NH@kI-JgfC~UwhXe8~XSC-J_w!pLDAoHh-?@ zpLv{n-M&57KiV|-tajV1$JCH=u1@ie)1s+{+h-D%hV57QcoPtP*E`DIPvo+rOl+h}g;MQDq;MVpm)3=bN^NN55i;xW2$GDMsS{*);!~Ma*uw$2$*PGc{lGbD8>@hpM{EPls}T zOyboqoOist=r2RH-`ZE41rD6igmO z#-3~uIWuq5m|wSX?1cQ8@&RuBGp=wSETbzNli!)V|gU8 zVCG!UpFb_RPVPLo)Khb&tKLf1m6e)D&;8uFv$Ik&ENouoOx2m4mW-W8k4ha?b!gml z<;kQ!O40_qcP!B`*1zkgXlcKGhl{UcyLV&6ggLLHCeDh9Vk!wL@J#Z|+}JcrO`PGs HnRNmHWvg$^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_subdir_depends_command.h.i b/CMakeLua/.hg/store/data/_source/cm_subdir_depends_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bab4ab19914bac38223b00e8e5deab80ff69671e GIT binary patch literal 1306 zcwPY-1?Bnx0RRC20000000Zs-00_+h0000000061|NsC0|Ns9D;PgZ!e1MesZJBo01qj>#00000000000001ZoUK)VZ`(E${9m8q!7T>IO{F;NP(axRcyh8BvlGKs zRs<+e(A1N~l_CX_vS$SS?t7HtA4!}I11boDEb<+X$GhjK_sjRXf&gG@^wO|027qM3 zz9PJb#As{ZPbG7?HYND4xsV9Iqe8=+HdHpzSuN35!P{9f_v10}a$YYoVTM?t%50*` zlBp~#PFL`jYQ{`0Yqs=N$-8&-VaQwyK_Kn>`PtdWsDDN`^nZ#!e2hQ**p&W>#tNp8RoCJ=Sva1p;4jm^$7%_ zxU4gT4lj4E>jXj6>%nI(nYFJJ2S5`RM$qzOTr$2P3EFaUr}ip9ZIL|D^D~cQK*205 zkd8@W?ntP|AbIHstzwQXgcNjE{!BeiW%OUj$#hH_WZ8z+5NZj+(W)c*oY#tbp;=Q! zfVQqGZ(5pEF~g)p>2VgdkeT&BGqdeo%d4Iz?@4_oy*wh``2)+*Pzcq-St=A825 z{lV)Jm3s{Nf2@*HOUB`0$veV?OE=h$NGg{PdU)*SFGGY-w_9W2ekBL+Sasc|4waq%+hu!Eak$`KXrCQ zN1$lqLF{;$ZYrEGZglr}Mo;%4C;xw=2vEnSaghiA0GrOnod5s;00Zs-00000tN;KB z0{{R300001K>z>%0RR90|GitT&Zv_FL-7?K=Ij(q%FLz;!vFvP00000000000C=2r zjWG+tFc5{$!KI_W;D%BZ#5R$lMsd=?O%&W?4JA+;$X!b(f19iS%Gl0+aNIlI@g4wt z07er4I3XT18-+dbpkRCYlmIlxj`E&hL6n>}_4{v2ZnUg4&lfkMKXm^Vpf9;n00$ Q%?)8f{hn>3FK$pdQu?%N761SM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_system_tools.cxx.i b/CMakeLua/.hg/store/data/_source/cm_system_tools.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..64553386540b5ff4800daa603ff93efeda434e2d GIT binary patch literal 15231 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 NMU>vm){>9xe*iD6+&};T literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_target.cxx.i b/CMakeLua/.hg/store/data/_source/cm_target.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a3ac59005b2b920602461dc5f68e2395ae0d336e GIT binary patch literal 36242 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_target_link_libraries_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_target_link_libraries_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2f8262b8f0a4646bd7eb805358f39f03077c53e3 GIT binary patch literal 1561 zcwPY+2Ilzy0RRC20000000iU!01cr40000000061|NsC0|NsBD+lj>r#9MIDlZSa- z5D-RO{}~FNfr?`qh`p&-H^qK zC`NTpW*HG_nB3p*Ea45>4vCoMWM-{<+uOKtLX3BX&iwjdZ|`k;f4_b3E9}4R?Co{- ze{rV2QKgv_9T%1^ng3@$Jop*KDDTO|TCv&OK#;Vomjn2~%!(+w0|SwS_FFr7PYNxS zVR;q;bU6oSra@6n)sm(mdYe#Mc?`|H0jXea%%an7uU4xt$q<@Qs#*Iyx)`=A)w#(y zAb5~cLm1bg%?&@%oN3T<>M{acr%W5g;@r>_J`SSutLq55mpAaSJ05p0qnkrmF*BFB z0lK6DycaV^+ibxZ8lfXagjs`}!bN}FJ4dVT`@wJ!-PmML2hnAJGJ(^pF?3St(Yl*2TW`t0E@^L;j%OZPH;n}B>bGbr5;x&*B$m@au&$FN?Ocl5o@Vm#|G_AU2 zeJYjjAXoH1_Wlf$TLd*|?XcbBV)+d%QZ!_zbJBl*eO6}av!R$_9ow?luZ?d|OL>ED z8S8t+xPta-6b&v0zxPl61Kydt%=!NS?k3Xr5A9k1vOn$)p8@s>hIZ=Przg5k8 z;l^Aswy_S(xQ!e)gyC!0pk%LNY2|B~SKd;I@EDiIEyokymg6*-N?DtWF;Ok+dd2WX zqYYVCvdWtsrFQJ&;B?t>Dev-yeFo{xM9#=M_OgVa(#maWnNfR%&55pj=><*L)K6qn z)zF?T#yS7o@Ww!atsEqCn%tpg>Su@)w<=Owtk9}8}ElTg~zXnR2%r;6s??i z&qsX4VS$mKH2EX$Hw2oqxK;H00004*Iwwt>L=_`(YSd;vxi04NX-l9j-I!hy3S zS;t8lXG=_Tk*!3&!7xC)DM#9x|8aO$ogPBE$Z}r;j6=U4FMZvut+8sZ(mfTI+Pq4A zchYG^d)qY9JOUvKqgl)PB#EZP4Fo$ISEd%$v8gn!o?7BS`>;&d!`D+5pfU zh#Q30&~?`P*F!DB)Vc!r=~QWi&uGwzU>&6mY+h>QEOAS zX?QsrUW`Ab)m9l-WOj)lcV#p-D2YC9rm#%fup~sF!qcvPnh=|<;vY{FNmh4)WFBtT&qJ($9Hfl^J^AV5>QxYBwX48hWk zxuLSq72cvOgUB>e$Dzp(Pc6X$C_OciQvLI5Fx-P>>b}8U_H&X`4mSG>W$-D<48e$k zQVEB!JW@$s03<1?Nj4wO36Y9qr9CxhJ+P0&t*FC!d``7^Xr&>wYLm}1-xpg>YawX~GPPiiMQFs-Dx4Zg8 zY8VHsq7?J3(d&&HQ1XVAyoa)0!~w`krSo)KtKFJ3%3s91tv}^32YaKU>0LOrVik`700004 zEC2ui00651016BM0000000BV&00030|NsB1d+#N#%)UsCJB-k)!}uT&<_={500000 z000000001ZoOMkx3c^4TTm>!i0?REzP!N-g2K5vxE$l?W{ydLx5OZ+533;AB@Jq&| zcAA-Ch8Y0(01PGoa7H{THWE98y-t&46DJ~0mnbrsu4T5xFhIN;Pu7*ca(Feh?TuK7 zRT~40-T>oaJK7-D)^nu_d^lI&xwLFmaZyB5;-{3g(d_)b)5PAE`2n>ni6c}#r+I+? Zp#vqyoE8dy~p`lEslZR3}jXW-Un6yry zY%|Yp?X||O^W#FNE`)1Fl#Cf*e_Z<(b#!Nxq^WV?RA?_DnOReUUqN^qQ`YTL!T}0lFxz@~hq-q!)?1C3gco zZr=B)Y73+Nekm3hIVOSZ7X4K|($T9++D)>YHDi!=Bk>xq3PXl0*m1D|G)9R^_1W~k zV$f@_?fG^FUN@T~aE&qN1@%MPE&k?a46{(e6FJm?3bTRdOXO(?H;Ps=>N6WTT)`R+ zOh;3MqlDDeGMyRQKWm-N7mu~Of2pP0)>nXHP<0V3GAXX5fsHJ5_6DLuZk;r%eN}qf zOQjAcRD^oa-r&b-)UCY*)q9p+lL@}z6qd-AzCAg^g5~i_jcMJ(-GR06rn1ujsX<2ZSc;IL9N7j6J5NyGwP9&^N_KRu1`x_-}_VN5KS9txMA1J9t zZ}-&!YU+K|P#Z4yE2`kK3uawe$Y?SsL!gzyuQkmsw6OC6-%r%cLqDx+D?<_d0+ zp9u#ZJ}C*PF}`j$Zrlo!RDb8V&j?-Ds0+}V zVuHpDn^q@W;l-NAS*jwP2hQx)!d;W6S$vBE3W(r3BZ4V;&rK(t1DhezzgR9~Gl5ZhGs+i`DdG0#ee8^F=^V2-)n=2FZ6Iu#4T^%0 z*J`|a{f3shv2Bq)Mk*}bgklS-*$cV8*UxfueP^4~=~+%@x-LA&kQd)7IPp`j#-tj? zxiCTd1UPZ0!}wFxN)yui+$Q#qUlbrV2Z%QpJO%}GS3^U#`t{%F>KMSg#RqtEBj|b& zzOA=7KI$SRhDdD*J$4svn$gOfSrBVdp2uaC5V*;-xWZ-W4c&O!*CHn8`3&J=Jx@y~ z%GgU&0Jbj$H-im-_Yvf?#>CYuJDQ(XW}FbDNh1zxI{K86 zu+r1_ak24^-Z!^C%O9%My>}PSgZZMB+ zCOx*Ss_>R5qlej2N!B`))9oH8OteA|h%b=B${6p3q`S8Or?V;gI-v0Q!z06YHT4

    Ge<)_Cy$ApB8+YyZds z>F4~+LWlA*I`Y|?1!(xo83E+f8g@NS>)%jdQS{!K;GK&dwLaQzwQe#1APmCx+QzvspB=$C z({9^nr-(nR&GgCW=U~z9cO)6(<{227=Z9lBlH3Ul>OW}IHQhs(oni`plfMM>FZ|#p zxzjG%cbimNdD6_uzghj>LvShquEee9>Es6X;5*B$iKN@35^S+x0r*H%5-qkRl|`1l za>m{!z-C%tF$M2wvMLaqW9(}#Fq%z?z@AVJ6}k_K#+;B|wUx%ziH%ETqwgmP&utw@ zdn=kv4%+Cey=J~vcFFwFz@%7!G?wLfWn;y&!LvEU@a$pNFlpc;)tvi`M{QYe^QqS_ zKP3TA|8zA00D$QJ(nbRU{M}xdPS(QF?|Rjm>UsHMbL84`8d<`>1;4Qxx!kMI@+<;$ zEGzbHGG#uAGmHUZeQ+J#k;@+pS-`*LhW=o@7`RU*H^V>^tR5y(hEjk7fR8c_0PsU*Hp+1dXFROj@({v&PUURY1VU_Wc79n>sT zcO=v-TsD7Q;)rO4xA(PRt=~Ze_Jd<&jiR(O`)Z{ucHRf(vLtA0000000061|NsC0|NsBvu4`504DArG5 zd>st(e>Kej00000000000001ZoUK*=Yuh*!|J{GZyLF7#Ywfn|?jX4vcwU!=HEl@T zjly6kvJ#84B_qksO4_JC9HQhO;+=H~9P0xqf0wb14QcJZrf>oJCfP>QvVE zimwU-hxEt>IfswjtchaBFcvhj|JvzODYR6EH&q0XlqEPf4T@=|T9!u`ZO+&(Vr0G< zkO~T8>OmZ@*XxK@h(ILOD!$AnSMkoYFjWbN5#-DeUh2r!hEG;-4O%W;MS$-)*GBP0 zV^|KK$Jyo0Z3fBp9ehq^v*bFv8^W5KLN*3i%LMo+ra<4SE;%}3AVq|^2f2jF#Vox< zujJkMYMkBKVn2+t>x=muKHSV8foU?!#_8=)K*1HqBX|ZFm@OOaTvmvjoii$00j%hv4R<^Ee(VL0>-PX*4x>! zsf~fd!D8g!Y=0C}^8PKz-618e7gi&|Nw8;m9mQlP){-M>}%3V z&Md%>#=XC{4|wl)*@9YcZBV7{4pEPRx9Np<7c7LddS)|r+l)toSMyqEkFHzr2qyh5VnzlfrY+-p}wKH zf|0S6p|O>zse%fZf*WME_f1Ew|x29`AtHUr~-DBvvJqEIS#CiD2-h`X*kc(Sv)|9@aW0u^)C2FLo} zHV~;jzkWw@MpmQRg3 z+P?F)`}n@q)m(XA$snxCee{(8!z07r%@>*@Jl9rF?wT31N-D?Xx#%HNu8=bxt{XO< znZ>2cRkr-&nP<)(uU*zAN9t#|?w{3p#((}izG)l0CkP6=9_Hfi`u<(B;GoZG2bs5f z>MJUQWaQZY<`n6Q@NC0ssm&bC30tFn zX8QL12ogQ$Yb3|IKH57t++m($TiZvk-(k|Vo+nK+W?H*CeD29!{9}*djDv>_cJAEm zudu7Or9H!{H*fNB#x*-MQK<-8YxspO#g5Ge%GF(tk6q%!;mCqQTzU zQ8(fe+Ip6+vRlLao$0-?c;?j<4(s<@{dYdDbo>yPURkWU`nyn~g~*+PFy9&1WOFq( z9GP@?2=GS>ACFYgCIduJxe%Y=9uK3;O)}@o70qh34a{emQ+)8suO{v1k8b(bPi}9K&uP%VS9WJcN{F-EMEm~?)rPrsu=EQA z>wu~F5Ht}xf=Ey*zVv*`gcA<0rPlii%+z6-z-eb>^d2=8tM;DeI%FW=>K=1*ZoNTw zkjRmJEBY1kuC!Wz-0FWjfGJn$uF%lOCaOH(odu)Nm){?xCl1?k&nVIrVNw OaJJ!$YJ0JhW={a+kh*OE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_try_compile_command.h.i b/CMakeLua/.hg/store/data/_source/cm_try_compile_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e84872294bab65628a7b493abdcb5625272d6946 GIT binary patch literal 2158 zcwSYNc{~%0AIB#`^h8LLE9Iy;lXH%lI~7fnGfJ)|CYzbNXhqm^RPGA7JxPwx46%f< zxy^lr#(Io7LY{h_ey`W>dH?ZwegFJ?Ua#-#^#*VNH~{~^jQ{`yQvbaH9Q(hidFvQU z#Dw&G6>SyVclSc$e>g_~{ts+cxqTFpZYj9;!seV+>D6SRz6~ZkZXE1skCe%WbZj&`vk)Cknlg z%Z3g4`1WuY2cZ1aXBtpXtwI%0w;%Lzd)bFx%TF#}T&mEUS@5%}d|UVJ>m3|&tKHNv z{uxEn00(uOi#Jvp&fi%U^LODrzC11CLJI$}YsY9q?b6~WM@dA){zj?x-kC%@FmlHs zu)O8@aa!l(DzK*^Gzi)6zO<;Lds9_)DJD?-rbo(*e%#jh_l4`(&VE^-%Gjcmf;ozk z*zMPjosL|{(`OY4Njo!^;!faNM6FXMMczt%>gervK169Zw(~&m>rUGP?iwl9Mg8Vk z;;yr=D?Qj_-lp$!&N31*M6J6Qd$7AdzF;n8GxWZ{J1>Fx^HcCb70kbw-y%>M#pgOE zR5JpyQ;R-*IxyHK)Y_hSbJL&-F->$NYgEQNMclBIaye<$2%}G7M$Wadq}F- zC34|x!kVnIS28}iEMC9VjK(UW`DEwxx?KR38O*(eV!@hx%@&I3MRhHB?Tc|M;6zDh z1tY=I^B21O#GpgpK?uvFCBo>=?eAjl2c@gK5)%g)i?qj z%O-xJLb^jsf*u!KvyMXpP7=y9t4Do5hefWusr$%k%LI^BWxHB(vLNknTa_!7J>y?Blth-yyU3ha{8;62U(r z()^x;FaDK|J-IFTEZSUmQgiEV6-`)1%5m01BKOg6OqP|}6534jROe`#~0;o=@S5J}P-$0?Sw!a(n zD=?A^&Y9U3h4KlOfJY^R8C6$?2OtL@uRJ?|yt&@XwC)2z+@#2?Yug)l5 z@%Ky(;9*w+a%BX=>w(_t{mXBopa(-6#bp={eJ2^QTQzS1=? z@4?TtcqZcB&wtraTJm6o&L65;o6&vwamkR!B4Q5C=n=(>nfKQbhcw-_GU3JaTcOIN zvI_5ftPc{EcOGI9AXhq9XO6Vqka%8U(?P?tZvMFU=~WePjTTixdglowEyPxBj2^S-hR z1nm-H=^fcy7I1rZC84HILm0SAuH4x2r|!(&DvTOc)T>Z&mx`l)=xPaArj<>JRnTF| zedC8s^>tr~Y$}Gx3FQ$4y6Pwvc{+sT$-gGCr(_)0$Ry8*)`L(dLP4)D*fO>z$ zFH>FhLMORYty=;NbyvF3{e&McfeQaMmE5IfzGx$n@ax2N{uu1xan0CuCvIannip(V zZ{svf52*f;NBG)6N8flT<^??UUFdRwDf|G#_meKSX`T(vLEc#2)~E}WG_P(V0#NYJ zt|9E}fLRv_Q1VjCkSTO}d$q7(Re4#d#8n)}BnQ+Weep0YhZTW^&Vn&f>Jj2CO>xm` zBBc5zj;uIA2f`E7wm4t_C7ECCc)0#4S@LsP=f8b9pn%^VPBFqL%{AIgCm$GlruhK+ zcHu8Kt^Y0yy8M=}MNK3;TIKpKPCGUCWKCi!LdhD87CyKMG&$7I&2qg+q7nit2S=Ql zcs(Xy>Y!RWr%@ahen%G18|5VXSA#H$KOvq81m5 Ywd?1ncRC(Bx5S#eGGhb~0=gIe2F&Uh^Z)<= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_try_run_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_try_run_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a37cfb0fbde4c7797c3a2bf7cabc57acb4c53b54 GIT binary patch literal 3804 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 S82q6Tl6we!oEQHk5=|Ui^<=XE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_try_run_command.h.i b/CMakeLua/.hg/store/data/_source/cm_try_run_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..add7112d16a9a2db941080ecf16f11e9903f6952 GIT binary patch literal 2153 zcwPZ%2$uH%0RRC20000000%$-01|Kj0000000061|NsC0|Ns9>bGU)@1nrn|`}cRN zNSV8TockOA00000000000001ZoUK>=Z`w#2{++*KL|1zxOHI@3X(h5(i6zjYB_uMW zRkT^5!5(04Z4WmyhN5c!_j}$MgN;MFce=GA0-pE#ecq4hT>kT~dKwMJ?zLKJo^}~y z{agOKV6RzUD`Q^YC)_TTP8q#j%0#daA`_ZhrNMTq;ye+=#l8#sQ#$XmD4pqjm}h;J zraX&-b$iRc1M!$=tDLWhy#K=wcyYt6=LNU_{`SqAA3IlX@W-zH(S7%0_ubze>nEX& zR9V;Q5nJhhTm@I}aE$Z5+U&Jltu1Rs7bN8^`$gIv*P_ivSrpKxap!%N8Ktev(}1yF zk}$_+m=;Fpt%w6in+j1%4D1)nlxAydH{DKWx7!6#idY0nuR0%Rx8qJpy0&S;5G@u9 z%VlB$vJKB{Ee$hj=`3RS9!q1jT;x{7?DJ^$@$O;9dXq=?xfh1L$?Wl(?WA3++%mBh z8S_%?8ocQykzj%#%`>}aYRPT~VgDnzdOwfGquC=FI~>g>gXxqF??TpN_q}j7>OYKo zVIk@MA-unv4g&8g$>j^R6)ZZ2F;iAX!Z>GAMMh_Y0&Wp_c=eZI@3PZ)C6`$&mUY<7 z*Ns+6(JFXpEC(ozN(Cb{8_*L=O$y~OH^>8ctT2|zC3x~kQw(8M#51;_@6IGr+G(6M zhjrN|UnDYObw3(k8~&t=oWUQ;+@(hn{y5u8ZF8PL2W-}Pgo1S0qHIP*S%erb zGtW$fuF;H93C7hJh5Nb13#Aeiue6dU_XuFi*tpx>3i9_S_nj&!TfO&z_?~gSG8fl1 zO9jg~GKylUTF6n91qR5n(jc`0b)XT+90*Lg?wCN5(9C7`R!` z8&3zWH5edKpa)T>zz0Cam}(t?!P|bqa={_CMs021s9T5y9(W_2@YIk6NflW#UyjwrFawT#xKB`djw zm3x(+wdUZi%Qz6>+{Q~3FE*;DtYVehDl5R1#^l0O2tHFnqf@GO9TSJaN>HLBKWLoV zqoCZNbtQY6#n@&D24tG@3ue84i&a0u@S#L8&+x;Su> zuLa+sI7`xi_FyY`Oys9!g53oxILwGDP&5S&(%iTRqQg+s7keic8<3`Ef}clO8(O5T zB`-meQWV?>@?kNNmK#6n-Rk62CAly!Hj$mmDN!8T=|{6@Y zksDiOywE|>0yf26CZMins$SAsUTY#P@dfmmn{Q|!73)v3^m-gE=D8p}sh&mKL{ump!f7c2T6Y>L3{of(T17XpW+= zWBLwMAie0Csy^WY_6V=(%D@w&*i#d?WF0>>PiunKY~w@~@uV9fd~BU-P#&Gg##YAS z1aHX9{?cM`QYeq%kPtw?frYI-X1phc5y?kKNZ?bqP=sm#AP11wzTgTdT!K2+5cCWd(N<7 z#TrWLx8GpTP#94s`UBQBUZHWwW#d0O z*2Cif00007KmY&$005}~01~DE0000000BV&00030|NsAl3c@fDTtP4O6MHB{L2OegY7|d;=uH&7#~4bWCXn5h zzR!pF7Hd5_mziOP831?zjHUokA|4eRi38%F&a-TjW+Kg3C<>XcWwFILLcEzk*1K;x zzL?hjj97}Ij{(MSfC=`a9b#((H>$?F_cfNzvQ_n25zUAnQnp635BotA2kWW>YVU{> fRH33pg#V$Rr_Shx`|m3&ZU_?^c)p81Mh-a!{pATK literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_use_mangled_mesa_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_use_mangled_mesa_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..028984e3f0b03b0c7f443694e99070c5a1d4bcce GIT binary patch literal 1839 zcwPZ72hjKc0RRC20000000tER01$)#0000000061|NsC0|Ns9h*3^Gq;S}oVWVRuX z|My@Vu;%Ij00000000000001ZoUK<|bJ{o*e&<)5bvrvIp(doWmvJsLl-!slO$Nwz zIw9={TYzS5i;=`7+vdOTIg$ZGAlvTN4}c||?_Bhq3)Q`oAN7<<0JlmG6-z?^Xk4?u zIJ|*|l3KsHO_&)-l>)5}M8e^cXIwEO6^dQUc#?3Eg4gXvhxS8=(mTzsSvE{~e9bj$ z$TVeH97OYZWeTrRtc9BsHYCBu{yr|8G2>7W$NfG$IQX@C@JqFJ2({nC+F@9GYeoO$ zN(-5VRwJJZ_fiXLzu`9SH{|$HiQ&kAAC(E^5dIKm#uTqWGm8TH)ONoiGcA=7lQaOR zCka?F4T@{7raTT1t;6{WF)(ujQo+cWaagU+X0sqlF)D#n!|GM{x>a2r9ho!%j2pz< zFp=nhY{REJ5*oA|Sc?FE$3hz=`V+%r_|WWL-Q0Dd{{AC;sJGko_uY?2FcW4ZCkFVG zXW&rG2xZf8B2Wl{6wAyb$N^lRw;NX|Re#rPHM<|l*o$WO{duPY7dLIF!)?9YZ8q*& z^>&VQd)L0b>6{17Rl;R`Ipq*7!|9e2ho&!puz4)+FVb z(V^R}f8?C|X^jSZe>M6 zX*p35ujG-~_7qQJ4Z)&<^=l(3W1N{}Ibu5u;xEXPp|r6`8kDWv_y z+A7M0m4)ge2wE_{u{Cdnb&;Rj*dxrqq+@T1AqR-US&H167=QivTGCQ=p)=o|6n1Q) zx;#_JP~?+sue7IZ8x1K>c3;bOlPZfFI@)GPn~!m}X)$fwa&Fjqm0oeq20|1)cAV13MVQjHzeNjd>* z8Z)-hYL?>UBT~LWDv`BB#*ZNH-^$Grgq{x*);E?t!gB0LP{3vd4j*&}8`B5m=Lpxg z?s%W>p=TcUUb(M)-@V))_q+%H{!`C8eb_JG)0exx-Np=)D$RVCE%FnXbJNFJEgJc? zvhCM2-IZUmahPB^vKD&SF~456%6|2051%sHLMH8(|J@8Ufee|a)DHfKDMdTJTC`mG zY=n6JW{=~B1TK_JJC@1V(6WlV$F+`+j4oV7Kt0`e$2JCpg}^2=tZZIuibxCpmhEQX zFXOpTvy^?NYo%>t4jMR3D=4Su?NSfe;swXY;4R76^E_H`Rl;sn?Se&H=(g)Uua|i% zsHglF#}@58_npEl(ZF#W*CtL_Pn2uG!s*N-yk*hb_#cMa3%%=u5j4i(WGAL?1e{eX>HHC zM~b;gr*`*4983NI8K(|K000001{DAR0001*000n~000000003&00000|NsC0C3ST( zQBLbLmMtI;vNx$nr0SbA000000000000000c$_7Sy$ZrW5QJCk(%Wwlf`XV_Bp4U5 z(juKG*dLc89OwmZH^Eo(U3@6>GcfQCGYkOy02V6%s1Pq&Ea9Yh<~+;FG*fB5M^#XM zpyG&eg!r_9UF*kje7C)ugW9Qbr~#JU;O}@!RCy;(ziyg&%~BKf)<_#p6SD;8n=_i$ dvm~fP!&@}(>&Kc-hR=s+=@^qu^ans>E+bD+aG(GH literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_use_mangled_mesa_command.h.i b/CMakeLua/.hg/store/data/_source/cm_use_mangled_mesa_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d0b978123d721e611d186d10c3fd48bcd7e5f165 GIT binary patch literal 1422 zcwPaH1#$WS0RRC20000000dzG0133$Mq`Cm z-S9qKiu%WSbncgFJ<;Xbh(+$8#ZNrSJNP8riWxkGzT%PpwqZTd%4*|8RYU->ln}x! z7_?}Xm_>v(LEIxo?wbQ`Aa}0pb~>xoD&hrc5^1yO^wQy=v)`J#LISA<89FAUjXXEH z(p*@udL9@7-Dko&BW9Ju4DS1B@AfW*_~rrbxi#oH46nvXkD}s#`h$M@;K^S1)0?Zw1g>w#5W^@Qr~Tw^5RW%Vqr36wc5)Tf zsd`*C(@O-tlTm3WINFd*p*?Bk-M}0PPg(sk54JmvS7NR*oIhuuY2J86%R=D`I|xK^ zS!D=KUhI6=JbpgWmEm|zUJXl~b{oEM$*g@2xB;|dW(1K-43a@1XJoxk*-UM<3_ihfjHfVo?LjF zlbqgM?b_`0VXzd&RZNnt6xqG<{DNrSaC}pw5YwUW-R3Q98xpA%woYo(K8A0Dt}+S~ zuAa;7BJBJABqh$I^v#n~PaTl(OLJjJNmN`{%AuiMLe;^3W2n=Bw6;3KGRy# zoDohiIU@C2)@9x9GSubIaPOO5E&i?r`3;y^*b~q9m@9%}1^TKUa%6U60THM)I>`v38slo|ss z4?~`;U(?S_@b85jS+?yaBIQ$~lxITK&i8W=?Akgk;Nu`_Zp(Wt+R%@v|Ht&YlJW+2bsnfg8?ylHZK z3YI3k%seqVEfg%|<`q#+llchXNGX4Y(4-diEb$)M8-tFFl1`27I9MM8`L2{wuPkhG zIR+*)It7doG%q#b8d7|>NF!*6G{Z24vTRRbJ7;%qu9HS)=)5xfy46*yJMy6YzGCTu z1?U+CikXmtPPb5fEs4N(RMvk4Z1hy?*-K%me+~V|$eySs&dEV zj{I0<-WVg|?q^CbB;Pu;jt!^C=|+kduEQWI3kgHL{+(teol2-OF>m|}#I6$^00000 z1YrOG00023000UC000000003&00000|NsC09Tc;wPV6}h9WVc$S9lM+7_jdw00000 z0000000000c${^OF$%&!5JktrCao8kA_N67*=SH#vC<-)DA=!Y2@7!-b|xX$@LINB z$e7eV80HUu_#Xh?0HX;2TH1VtD8?3+9Ec_bFC`8J6B;H(_?HbP9BLED{bETyo8<(rDIEah7nhf~UP^pPtttN{3b?!Y=wM(-Ci~ zG-Walqx<`#89YU+D<y~g$6(`%RuJ5iYh zKI0NRik+ZsI!y!`A&_R$E!B`>H+oM9!YK2iL8BAI@)j(132EH)uD9 zSB+kd)E)M^H~m)VLnT}`QZo+GDveTE5pm;!NfkLQi4M$S;xVe9M#95d=@%iRB#Su& z4=`vFluEVQ1NwyfNbuQuvMgP9>0cZ!v0V>;W)+XDX%7 zm?1GP(?w{+KfGLlH}JCJ^7gsp%OK42w|#C~S}R=+B99|6Ltb2l9EJ0Z&s7yn_B23X6n z(8jKgCAv|CBNpLbyrCB$S<1uZk^UI}yyYIB!Xa8$s|4%LhG@d{p?~E)OEM0pg;Xph z;`!SPZqM*5C0)t#8ZnG+@sx7KIf`Dk#~_f}_t*snSfV+L7k~u=Hl1>&4P;ZW3S!g* z@?F9l8Hyx~mE=g;_SnNvSWEAf#Ez2&f^u8hGodR1V0+;!%w+)iOs{*pW~cG4b=y3@ zxNTn#&e}aN+*(3$XA$bm1&Malf>=ZHB;3k|aOYsM9!f=z|D6fV<3dV;?W2hkXzxfo zVKd$=q|vHb zn{-JHkuVqzoaWs2Z-%{Qi!zoOYz84AqB(*IOQ+bFWT3FcNlt>-IUGS$PYcA`dJu#} zlm&J)IJfq6ztd9LaqdWg>|oMRM660@|F2$F>5UydYrY&{PSyg7=UCg}B}qe5p?;1uf)U%upLk@AyU!idVQ~)8fcx>o*$Znn>$C)`q*j?aTUI5-QrT+9S&~0jlt#SNX!xUyY(2bwaQ@Sa3L_tveomc!G%PC5P-2t?QJ z#cDwbtKZ12r%@rp{o(m}`(wTkVNmI+L+7NCDg8iUasjolw(L(*>(b7I?eS^CBHnjF zm3M-|v4#)<{TCEAXWT%zE-rr(_kmS9DOKA6HR9OKqpz;KM;rUY-p`JQ-(eecmz#@p zOOlohw;8{rgux>KqBNh{5|my-Krsnard$VHI(AMpD;7wX193Gtw$8%M{-&q@%L1s&^8!%9;g4Q^?wS1 z;@aw6H?Ecx-B@yPC;AUbnvzWb00006v;Y7A006B301_Yo0000000BV&00030|Ns9> z(Zc&3g3Pxz=DPU;4-|{vtI09|00000000000001ZoFz@c3c@fHd*W?J@dMsr3ZBcf2(ygXKgpm7?iXuvF&-l%o=Vy02zkIJxs|9f7?A(d62LOW$ z@fqO>44n1;$(0siW?cz9I#U|q4H|SJSVv(OHm@~u6g(Ua#ysBxSzZUFRalK}?IaFt zSqhV9#mNF5Qp~w9^IFU~YVi0m4ZIW~rJy9~_p_%@Uvy8O(jT1u)O-G-_x#5g`Ug6% ztm(z=aG}zFPP0>}Ragp#ConWJ<8L452iAD&f~w05pszK= zFb@trx&`JLWg8=IGiKpS0PCO#q3U(J%jGhYB~g-DH}AfkT%32eON&ryAkrYmAe8nQ zW24WcP#(OUMMOZqbLE3m(>h=d?}wAO@2)4%zx)92`=e3+a`NE}mMRps4uA_Zkg|k= zV#`V^3Zg_#n6LsngNs+A!CQ*z|28}yPChW$*Tc!>tMM3KzZ*dxuKJ_NaBzLzAFVT8 zU5~EbjbCM{RL(1=c7Y%p8jTG~qL0OtmO&d9g9t=CRrTE@*y*+&sF}%ec8_{)iq->~ zRR-^0Kq-vWb&k-MWuv-wtJUpv;G@*S`+I_0Kntc$(e{0+K8``K;4#z{2#`V&IcS1g z#g0U-w3U$u=3dZ|DT-Yj;%B|6jgKrO}4JeF*L1}-bpsaS-kZEbCY~8+b31>JBi7tD5IIL-%l}bMTasF>vT;Uo>HvC zz1|;hciS7VN*230fu3~efJB|_ zE4S#)qX0|mJ|_p;BD!7M33w6+?p+!L$$+crMlqVaKMF^Y6_W|!4wu#XC7Hq4CV55Q z^eNr0JPPt8u8O*zf2w1@sdPGYl)g#lEt61LVmPiQ42Oy)TqcerTx+TdOS);_HuOZs zP7gj~72>7B^^>Nj8^zEA!0MbROs!s|SE00001 zK>z>%0RR90|H~ppYD2o#ivgNLbmHu3o>KC{y#N3J00000000000C=2rO)(0>KoDFD zEmHb|En-j*lZyuR6e}(4M8W<%k8lukaJvclqVMn{#-w(dnPG+*0C)oo#sF|eJSsL4 zJA}PXlVlSoB2JemGMTPrw#6_&yc7MVqW`f-#&FtY6)=Wnt)j(I2 zL(ZZj#3oNMLl6>4!u1Bk0!D+0e}yRT!|-}Idoad+9L{bA(e^|#<$afle=no$y}@`1XUQh&@7-Tb0!hSXl@iiGzK2M`e`~m?6rPnJc!efg7vzH zBCD~@CqYC$fatxz95DzZ1dtM_8+y|a0YLool$*h<>_SV=weFsKuRHPDy@bIF#@8|ch1Jk0yk?L43)WxUDrcKwcHQi4sPk?M%+Ocz+cozS)pfAl-cFSa zd)}1i8uyuYhRV|e9-=%C4)8Pw@pvsfQK>hc`ha1#E${N)yYUB?RuzeDEMO-qTTPU@ z*#4W}tezlu$RSIQ=39_nE#$Jiiz_Za^G$?c{C6~KV-i@ZyDdlTH*@4k3 zqO)6PA>vr9&0$&UU{#^Ta*_mSRHE%#t#QkI#ccL z!bYT!q*zB;8^&CeSUe^)H#OuRC{>Ti>n}*A8>MM7!>U%Uo8LNx(L3!SlS-q_e`|dQ z&mlON000001Ze;O00026000VS000000003&00000|NsC0^nHaDk}4TtbDZ{%rF?}% zqLt^X000000000000000c$_6o%L>9k5F7Egmx1pv+EmW9Sa&6PLshG<`q3M&`QW;a>^)NIY>gOdFT^}!xhwV5 nwK%^UG>bR3+1JjpOp$!Ui!gS2>AIKjcoUMIaXOE_i!wR5koK*R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_variable_requires_command.h.i b/CMakeLua/.hg/store/data/_source/cm_variable_requires_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..be49ed15f8fde0e5e57a85107d6de82780b3def6 GIT binary patch literal 1421 zcwPaG1#Hr;1*l#rgD;HDBx@ZT-#ZU*^Vd6 zEdmq>Xz64VrAU>e>;^%<`;L@DvzfpMzm!~~ z>8LzsG7T4}OL$Fg119Gsn>)wOn>X~L%WM^e;#Bt+XJ_x4=V$bX^WR&S?^>6?dDjo9 z4Og<|cf=*H9?rw_OIoJ&jw&8BpD!$&By|_%0{-E4#WbEmUnZfu8o%CA(kN|tnTG&v zA;7yCAiSuTn1&Q>g1Czq+OHOrhK037tJz$wR$-D8E1}Z!=1n{tGsT8u;O;1N(;C|2~`xk zAm6+YoSZ0-X3{=@%3#=wIydCie%~MT<2wiTx*v~vlL=hkM$m?FJBs_A>7X60BaNrg z_;%6@tE0NOY^Ih7$(BZ`EKkt*!{o|=maZO{CF1E+KdlNI&EOT!WQy6#1$4g%UXcNp z_`fz3NG7685o$@kt-V?hG#d^0ln7?b%l-k7%}jH`(dDKP?7;wo9F3uZ1*<$sC6x#n z(!UveCmyt*C})Bvu*DKQ2Gy$;C4n%xR5Ys6;BK=e*S2JWk|3!#%7l8&)9-dp*2nQa zO}cK4H_;o=5lZ4oy-M+;ziPClmLPHUGSVw=`7JmGDq%vnVp~uR?!j9@`F*Lv(~lw*@2%rW>Snc0>`0%f}6cwdI<h9yYF%|g|#jg8WR%9G=!h7VhC!r?8&56gE_v@RO`< z0suT?_$2O4;`w8|V(yFqj zLiDV_A;h|C4Ev-WH^*`!G9zu;M6*cwN>3??WX9~y&NUYklw#801(iRbdvHU8`a6Vv zwu^B{klS3BH1VwK*WE@A5Psc9{e;T;T7b4l9UeEa(0b{kpu2E{msG(Y?RiGQ%{Ouj ziQ|3RD4TXe$OcAbymR%t<|P>tO@2=jKjL7w^%~FUHom@{j=JuiEfr5)nW5H7(?ILH zqI>Y6oo_|RW_|Azt{w~e5WpiHQ|aHH*nP&rdM&1R1(o=W3r@4w&1g^}MZNxfT2`Ma zCOjr|h6W3%rKW+B9_b_xbx(|wJbox}$P%qiUKH=s-2fnA{B{-46hxWwEcg!^M<0j) z00004WB>pF005}~0199L0000000BV&00030|NsBwrZE`!as5@u+Hci*h~`F$$~im$ z00000000000001ZoOMmH3c@fHe1cuNyT73n1+h(~s8O7B=q3v8F@_ST4dlI+{-3KK zWo>6~xjXK-1Aq^}WCj2Q;z_ZQI3OBzmZsYz6-l;6k;`l&^BqPZ;@x<%uKtyyt7+|M z#7g9S3^08I1VKOAA-2|YqbhtjS7A|GwyL@)qB-$X%GPLh{xE1_Z|m}i+SSA{Dqqqv b#Q)H*b7yqJ{r8O(H-s?_yx50dJJdMj1oEIx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_variable_watch.cxx.i b/CMakeLua/.hg/store/data/_source/cm_variable_watch.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..095c165ff946913c1b051e0a8f9607576caebe81 GIT binary patch literal 1078 zcwPZE1j+jV0RRC20000000Z^_01G7m0000000061|NsC0|Ns9Y$O4NAoNdhw*Nx>x zRtqJP*N_I4mkbGt zq6kgw0Y>#pGXo^M&Hnb@nc)q|w%Ygu*k|rNbMHOJ1EqZZtuD&~=<{^SNn8a0uS334 zI0uiXLY(&_A}1-2L7@{CQTR*~%85)lrghSA9#NGA?|g5d)~gW2H-t0t5YZ8l!ORIB zABzikhv99KOy^{(61+kIfd-K#8}rTmhjRIkQu$-4Qh~~!)yi+x^6xtJhH}Buq^ftK z3uYcFj#|ZKFU_7fo6aQIK~9l;fGyShfGM$9_EsUFlr62de=j6ySFfMec$a4Z)>n*a+b~|&;?Dvu*eza##zKL z35hsKs!obH}dU%zXKh^(#w)XdY5HJ9N(M%(8^UJp-&P z5fXwK;raFbey|&0xnh7*O{U`R9_rRVy4N$m={Cl$=ixZciUzvwe(Cl`-SLSfx83fI znvL-*A)Q{Mb=hhj!hW;UyE#I;y)|Gx*DPzVjr|6y)z4I#F5FcgHcKQB4UOefMsvC+ zHUWDVg-=k1Z{PNyi~2GBrWDBO+RS`7m2;l#7FyHzv$a`!b<#V#-q);WZ1Hg41He{Y zoQnJRg}_D1!sBk-Ff>tSq(X+(s?asPhs7$ixU&1pm!{}YeAPmT^;Z$pey9$*ajOO#i5mK4Ba(HMGoGG1XUG2J|#jLlMw4GlZ=rQO00000000000001ZoUK)DkJ>m8{+?ek>Q*O~(u7@IRbA+wlm@mNl{W=; z(Ml&FlQ_h>#72$-U9Eb*{l+#>plnZ9H6N0A=9$Mc&rBSzdGo6-#{n2iv6Q6r0U#WZ zzbU+hP>QO0J1&UIge*Z@GgeUeL^+j235j6?k=6y(QSdqrC))2rQa%vL$fBS#qLSRr zTWffY;6CBYnk+RueDekkU7~C(M%(x6cKf~8e&=1ihwCf<_qPA;4-@)8WyJ*d%|3L^ z?BdG3YNH$dp;$dhw#*eYl1t5U4WF6X5J_7Q@x;~l%J@UUDCAwW2A^qUqh}ehR_x5oSRg2gB)O2R2OQqE<$7?p>ubusf(E;=fn$R1;T5dXn|mpW7GCv?DrO*BGz-xr||5o>P5j4A6ulJR#Z!} z7A%EE(*On(2O_;}BsjndDwX=ao*};cZNF0syQH>z%{52Mv|F<@u_8vfnx{mO7Fd!b zC$b5gZXQTc)4g@CSrf|avZH7CB-sX90sc8-MKj8*w{1d@rdB;r!VK9iPviC+o0*2$ z@E=xopaGQTVT(JwzAN;mZ4x!x#I(c_|EZk}$zf&Yd$vB^-2}U@zsZ-oepv5LvtaA} ziH`n{_F3z3W4bKMsHA&lGjDp9w`o#dmu8=5bAJfpDEQd#&EsCsod;p4PnH{K+g$F4 zpNFH_aDEQ;0;1cyjfTBrP|)v>W@!6wy1i#G>PELw?*(t%8;l-KoWs#}X;xp4Rf(yp zCAX)cm4)D;Z5pyyrc!tUCP(^zqRMtMs3r#7IBA)ko|P1eCV1ZahDO$jf-zzGCu&tb z96S5y9DKdoD>So>|4L$=nxSzC{x+h~zHA*}a0$;}on587Q^ic$8j}(7gJFO_@dvAy yqf9TW&MCMgs}K5|O>Kp(V>pIe`&69J=zr-s&$d{y>Nq+z=YsN-WzN4=Be?zZI`e@5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_variable_watch_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_variable_watch_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0cb57312ee3115468b0583fa6e87c82dda5a085f GIT binary patch literal 1997 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 Ep?1z+8UO$Q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_version.h.i b/CMakeLua/.hg/store/data/_source/cm_version.h.i new file mode 100644 index 0000000000000000000000000000000000000000..68904f4d3e878f8f0ff3c7e18d49d829763f9c11 GIT binary patch literal 716 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_win32_process_execution.cxx.i b/CMakeLua/.hg/store/data/_source/cm_win32_process_execution.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..c9a6d055a0da5ec1a5bb60a7dae747822c6dfc19 GIT binary patch literal 8196 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_win32_process_execution.h.i b/CMakeLua/.hg/store/data/_source/cm_win32_process_execution.h.i new file mode 100644 index 0000000000000000000000000000000000000000..949e20122ec4a2206b45e79d20556e8a89f09740 GIT binary patch literal 2572 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_write_file_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_write_file_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..21016fd1997bef8b081b5e3318285bd2360caab7 GIT binary patch literal 1499 zcwPb91tj_a0RRC20000000gf901Ddx0000000061|NsC0|NsBG$x4-(3mpRv^(hKM z3_L7p57Y_(00000000000001ZoUK-EZ{j!*{?4zMWmhLCZ78hvbP8=x*_5`?@uonx z>L+9p2dqtOWE&{A-T!`LC%l&4NvGvQaKSx!#>Q^cO45XM!lDPojcgc4O z7vM{w)WskrIuSAhBTZOJ;hu6Ti53#gx*}er)L6l%&>xz87ozM*GEMLB#TQvdcz7~ZjV3hya2rjx@!6Vwqf#-!U3(Z^ zvizmtG``?A?)zfCmTWrHP>HGrr3rsAy&{sHL%<`)JeA$|1y@39w#Xa+FHOOkDUeiA zxumg!XhTYOh>m{IASBGRp1bw>YPE8r3<+_BoYo&k-A;X{I@4JSNEyUb6P7B+_=dmH zj44neu^s`gW2UrZlZB=+JO!hN{^JO|-ZMOTVd(Wn&n;LnJrfHJbV)hnD0+sr**s-v zgg}yTy#|p$w;lQqXyttkI>G4KIC~e2dhOv5?)o8kFz~`r;6HY}us|9-hJ*gF?c|{v zTrv?$3elEEE;Ng%vcY7+IL%Ed5RJrRRKKhM&+4U*j7RArrcgdnJ+pFYr*Ng#s;<{_ zs+`%)kyvS>jkHv+V-7(quAfHQiUsMLe&!cqm<`~sf(K-)om$-tdt{?rY2>WQKT^v zQsN=N7ukeLlRv~-WRz=FuC^?IqQRu_P)j1|JGw%439u zT8-_~!4jw-AY5NV*&7Vnz1wm@*G2;l4%rJk4;+A^*B^IJg`+@I?_}^WfQa$jgf{*wR(`seR_;WwNq}LDwdre`F4~I*9wmuVJejCqTU_RB(=)@C|XErD1WzVjxvm= zV-QD}_lSvZb98$^^lZzBg+0)yQrOsn2xpmgKKQi1P5WlIQj_V?$959 zYll#U*VjGqxEu8DpFTIomL|B4#UC- zSH`BOnKygzx|QFDgT1%@=mG6`%n~cIA>lYd(qT?z#+12s)F$&}lG06~y`^-pGk8;D z=a!+vN_(5=e?|D8a}5se^a_%Xq>x$nex z2TYNHnB#S}VtDTwWw5}AWv(Fmg@L+w_3ZO&>sKTgHYJ%=I>Be*{n2kbRsOUfOdzr5 zPIY1TPUdqPRz5GR5AO~D({yGC1RQ57Cu#A$l*?B$j7-b5(ZmX|ffj=yr!7~*d3Egm z(RSHhy2fvWdT&ga=h3J*eQVf=uCBK85|=h6Oi17j%g@?Hi6`|xbb{m%h(PK%rL_Y0DJ*P69Bj%9tA0mJ>o&LEZd}6 zp0Xw81!rqsY%z`yAIf=c&A%MqRHp}%FY;B00mdxw6Gp|$+8Sl^behyz*Xm%KMwl|< z{9-g|QD24kQ%@!5oswkTuGgNNHq{=bHJ%a_uJZFRb9yV;Quw-)pw?qDi+=M5Hn5>! B!!7^- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_write_file_command.h.i b/CMakeLua/.hg/store/data/_source/cm_write_file_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..fdc4e5c083e245889ac2d1a9171c59435600b419 GIT binary patch literal 1474 zcwPa*1wHxz0RRC20000000fl)017Su0000000061|NsC0|NsAz;}X<`iVv|Ek}P8S zbKr~X!O7YH00000000000001ZoUK-CZ`(E${jOhe;S_`IrgEHhD4=WuJjZT~`2|~9 z5G+GLQ}m1RUG z;p%b?@6dioQk$Ig@0)O5`Fv>ef-(G{>8N6N=7~v zTl4av9k$!JjO$&MZ#7@8EYxYkMY)DQx!n-WE@2>P=&r`Eca=0sTV7-#Kt~AhZU!_n zOs`oIVzfD9$B3c*VnJzGS(`_#)@HK_X@+!!N-tY?@o3mOnyzdn011PHS;B=09X9;M zD{jE3)FT4CPq?v~FAB>Nco@WYllvGt<41Vt%x0Z&{CEQ!ZdaC7z_vTqXXL?#N*z44*kgtIxy|b;z9R**qQAjP48#Z$-Ebq zrMkFeq1FuOfkvq;r_A_bGUY%^Cj?@Vc&zG&$*vorMbVTkHA zeqT7MPC+k}61d^G;#2~!Lt$(Y+<)x-oha?U7Exo74` zh~wi-|6GAUS41~)cG@vUtY)rlT+^N%jkTL^0n7_ZQQj63MT?9{yW4yJks-!O$!@DI zXC+g+Ww~Y)hi($Wy(x!)gHeB&4dNa&j!a{CMv}0$*AqY$=Ex0){|B*O2=NBt3BYnr zK@H%@P~Ba8Po8R(4eJe_YGD|{-<|2SH@^L+@g!^e2(d5BX&P1Lb2{GRM@&Tls}i?@q@3!RPx~ z@3}u1_AU`nq3NzCSWyGxP=bMg+mfV1B!O!5gWBzSJRA@b2&M8;$EdZGFAKeciDP4{ z3Op{QPrfWaU)Wn*&ej~zooc-tN0s68!f@2M>5cDl6!C&P`uwR4N+eA0>Rgu}E+#xX zj&8ZZF{@Ds$(cP+&ZXlNr&+ws*@#fB>ZjxW@_1I@DE*4lG`K)X@ih1s!ayi!00000 z1eE{)00023000VP000000003&00000|NsC0z0gM0J5<=9FWlcdH;OsiQ~b`)00000 z0000000000c${^OK?=e!5Jg9D)rDu6MJWnmn@CZkxYC6?QE(q?D1q8QW?Fg?kK`G= zjRa}}Oy%T`xsO*AEbDAk&Ro!|AE*xS0?W8rGz1hp?| c9^rqA=dm+I!=d}inj6A|`aRo5Uwwi(c7M{e^8f$< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_x_code21_object.cxx.i b/CMakeLua/.hg/store/data/_source/cm_x_code21_object.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..faf838c72fb09291aea81b37808e6b5237548494 GIT binary patch literal 1165 zcwPaG1akWT0RRC20000000d0{01)N?0000000061|NsC0|NsB}jx@ne%AbV@Usaef z82?+X)L;1k00000000000001ZoZVM#Pvb@q{+?ek=blgq!6xWVS2=J};tP;AkSH-d zP^l`%o+NwNyV34CAw~T6&e{$TxY8a;@5A}SYP~!2?7Td)9y^u8O+BR&Ku?OX3=$Ur zywl(sVHZ3pl-ljZfgTB&fLR@}7~vQ>%0LTAYNsMfV>DXuw(kwhz6)V;;fV^77=W{zuC>XYoW9P&_?Klsj6P?6B;erTtz+z<^ z+vxEpOo0-k%p#z9#FUn7m}-pRbK5`Zp8L=^yM)h;e!p?%U)EvH^hBf@aE2Um6g?r` zWEwM4A|M%Xy#O(S(^lU*A+1KU-D&%m#@M5_f7Tid;HcY&2J{+zzwMoO8vO#Pci!)H z2Q52y)!+t0F+&LN!^nkZA*#%oL>QyFp+TT2?&Q_R$X9VnKQSK0X@p=sWzNJ}*&HmC z#>5wb0!v#Z$JyQBQ+jf`>pod1_nH^}Vu~=;G*%&-o9Q+Mbtznk79#oXZOP=0sojqS zi{TLVYxUCI#$A{R7Co&$*X>EhwI`AUxh^Xmxvn7gVUTPAF)X)_jmo)+g`BO}Us&FT z!$a8H&Pa2cjVo?ez_^m@9iuLMw|J1CwO!BT376;kON3=Cih~G%XW9cQ2tFpPZL_mcwmgpiPvrZ((-)R+Jfa? zTQ%}6{ghMp9%-54(w-rO;rclx=&(1r{A2qh>QwUjGvZuvqE6E|O5~u0WkAn}$_s0_eJJ9+``_R)uBQmVpwP zgrYRv7A$$e!1T#MzhTgA$`}W8-ru4@V zW{v-MD5us9hN%vQF}|vPzXsW1Lm9}$MzBmXx_&hj7OfAIBYeUsnr}|{`up<2%cw** f@Q965nPqzouoWC5{21%szms?MqD}Z4{TTkFM0q&< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_x_code21_object.h.i b/CMakeLua/.hg/store/data/_source/cm_x_code21_object.h.i new file mode 100644 index 0000000000000000000000000000000000000000..74cda6fa9e583780253687323aacf3d0efac424b GIT binary patch literal 630 zcwPZ^0*Uc7Y z!3+ql;03is$CJ5BZw3UntC2B$<#}qhK z8+#IOYwt$8W2dOQm-vC-D< zPfI}yZ7Oiqg)9+1p+X}_8>WqQUYF=tu$9C!=MN#PZepF|;b1cVh8g)qzkw|VkAzy* zV(H-V-X0r13hKDb?)1ZhgEzs!+hA}6gX8e%IAq09zo4;FtFX<3jqE-KzVos>)~h=s zmj%I2w(Ei%!e>cqVXzNFmHF39@8LJO)&;9)_IBxGrQR~t)ONDEdk+KPbnTv{@6UK8eU zJxnhqS1Cl7w{RULNpzXsp1@jCp=$zcP(c@k3g%X;QZk7H8KLM7^a93bNqoVq=yW(5 zrnj!x^I>{t8ISE2o z)$>wj@Py#~^g46MlX*tjnV#OHcPoSy@!N-1ck1p5gBxk679})V=KS|aMX|0bRJ3C$ z4@1ohMp13ISW7&(>@Vnu_ut_fPNdDdCq?x>@FtX{?S8ke7vxC};6wR0^q~v-U!`!K QUnkxss$4F--x|?n6m_jB{r~^~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_x_code_object.cxx.i b/CMakeLua/.hg/store/data/_source/cm_x_code_object.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..fe317db815e5e538abed2ec78877b0d54cc28f39 GIT binary patch literal 2105 zcwPZH2*&pS0RRC20000000;R1030U(0000000061|NsC0|NsA@Mb7Dehr`2IMYc7% zjfGdZiHc|d00000000000001ZoV{3iQ`<-u|KFeDjdm&};|tiNcFP84jl znHL6asfXNp>SL$5E67Oih0z1`W^)dvQx#Hn;a88}*_70wA2?0%WRl(s0~S*5Ef-CI zuJ41K#()w==q+)ZC~ZVYDzVA$IfNAEoJZ|e>+bHZ=`0Y7W=LnPQ|r@ND`lPYg%5}p zxP;rD&zizE{8@940Sl+nBEWaoW1M=EB_}TY-nULKE-mPue}Uh-!(sQ_`qF_rkI%y; z2XadSP*V6D=Pn}O!$~NJ+5vxna0;J}hP_jq)jjN=^{p?$*yFx+el!}v@x>6jFz61g ze(&{xKcuT-ZU<^X;IfO}P7NIaY5LsYz1RlM5v)tQiRsQA$ zj=yvX82QAR8#&VGfpN01!VqCaQl-^uyy36nU|w)=<~H5RCvdwxIQ(oqMC9CF5cc&O z?8Bo((ZKN&8ZINFF5eHAp6`zMgHQAT)|3#SzfOtmVirrT!Q5toE0Hq_mlWa75ykj1 z)+D(L>CHOn9Aj}yESt^wENBW zmjv0iQ!d4lA5*GfUk)Xsebz-bX@?m1rlxp>{e8GN{P$7Ms>+b5I(8NpBW%XO44=ea z0Cwh%B;X6|?SXk4dhS+L2!7qTHpxYckfn+L&8niT@JW0|GS+06Rj&raB8w;#c@1*m zfl#_!2ZjrT?}}Cp6M_qvC=eHTh`k!_9SjSI_1H*N<(g=_JtUEDJ488e#)`2%w(mui z7}XSIX-{GLWfT$G!vaXAR%5L7cawR460-_>u=_rXxEF9-0jE=xi3@lG3jE4oTy9Lk z=!w|kb5Bm`K&|FgH8PL-Z(?I@AC1=zE0@(%rw^t;oK@M(C=$z(L@{+;x6AdyZ5kf4 z5vT1WmTzBeB9n@%QD2k?m(cjQIq)$LxZ7@rOlI#pz)gdyx4St;-;_LAPsFAIv(x~c zUCMgN)@b}#R|c4P+}vQk9A+{%fsx3TTTYCeaTQ3LWo}3;j%`Pgc5)GoJIw)h8eL28 z-hr8E5c^PEFyXJipvaJ{p4BXjIg?@(3-)YhORp@5yIa{Ab?LmAqhplhwTzdcz58j+ z1-T0m&M87KTr5y%Tz$y1U0u&*3BG1EW5vqYBt>wm6Kl=*t71@+QwdKhN=9*EM|;>j zxT{)CJ&(rLLA&j7b)*2Vvk|PnKMj^BM;Qxz&+XU}w7!Al>lkac%3dS7LS{)x3Y|44 zWab6fm*S4>!A~1`arF|MNtb#Ay~t!e)-4=0dW{1{aPR5r1e%&SGW96#MNx-rF-f0_>A9ryO7IFJRnV2MJ$ zk=25K_EJO|2V(CPuL*EdtHnxFwVS|r{{$FWW3!sR-h3+*n~rt~+lJ!F_Sbs3>xl8| z;~2}XmgI0g&KqOcwX9+P@X|UOpA0W92gNwPv|g_}Pba|R<^;G#a%|$}lDiglkYFb@ zZJLvm-t`L-1xn#ggFiK|)A;9*93hbBC)JE?kC}Ik$8`Y@Ll4Fh6~ekNbu#l;$$K2m zO?H%2ja~hv2%IoJ8Wl?Jpy`*}+1LL}!tOsk-G7#1w=TRQV7|Z8rGKBoG4A+hP z9w%0h`=jysg*8@|e^=*fJrJURHwXJ=K_rxhbi546eT0ck+>D*V`kX1HDO8qw#co#C z#-8qC<#m-uVfFeprjvenbo|VfNNUQr4$LXWD#<5;)fI4 z?|)P&Xq2^`WG|ILxTxug)nrwG?DdG{>+B_H<$Bb2)R&7l?&dZZ_nuRNR6tAp7bSn|AhqoQZbKs}6SSJJ8KREpa1>59~N2e@VR#OOguKO@Sm=HO8Aln>Cv&(0>T_SBJjr&do8Pc=K_ndx{xO}0asU7 z`ub{uoDdM={zu3_jZ+)DR0;Nmk=j1R1~ZnuX&g?)5$2#-YwZ8asEXE)^dJgZ)~T#~ jPUF+mO36!zPs5P8rppm)LSyH-qH1|rtIGcXoOH@a$3YS( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_x_code_object.h.i b/CMakeLua/.hg/store/data/_source/cm_x_code_object.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8936c4ed665b35f1aaa51b43204c8c1df8241969 GIT binary patch literal 1632 zcwPZu2A}x=0RRC20000000tlc01~DE0000000061|NsC0|NsAkx zJXD>6##1o>00000000000001ZoUK@UZ`w!@|DR7WO{)_m6w;_wPv%mI&^&xc2m&W< zRaMbqFR)kJ%k8d7b5ZWI-|Vi9A2_s?iXyTe&-~^+J4tu{_*Z=z4S=!W3qc|W00x)j zD}|RZ5M0WaWtUYa@C?g=9Q-j260P z_Tg3M)$jNk-w*ieUa-YdLDO$(lq2|ysXHQQ8{F9M=x=G>4|puOP%Mc$0R1ooBPKym zNyVB59YmW_nj?19Hw9e4QmK{G?cUwpb^Hh;(cxmzz3?uF-JEr)q7X1v5Ku)}C_CCV z{CG1oHhs&UDTuPOMOFveUlpGxCQ#I@0}t^uMj@aWYqtGxYg<2jqh0iBnN=62b5jzkvI zEjkLsewYLl_WWq7NE{FmxRxY4%e{sl5-Cy4BVs{SudyK%a2gMdRWb{i?_fk|oJ8Q= zuP8jg)ybcy1Mha|PQ5lvy@@+IZ$sb1!^yRGdV4;(x*oSPuF2_Hc814ZhBQ9;n1bQy zT<~Po)~Az%g~3$ahtxb`ziC6v`GS%FE8K95mqa3mO;quNd{dqX%u10Dsb|=>^p1!&9PUxHp8v8UiQ?Rp26 zGz_P{U@KK|VnXGXbF~ot6?TAc3bAbX={M>pip)Yo2UEuIaxjqhz0~n<_TO`8RiNw@cnfpPJNZj->Wyn_cLCKX!ZW5dT%fxjeTKP%f27L)w^MKi6LPzed)zf$Wo zTSjk*l$HES;dk5il0F(%^K?#?{@rY0TL`KW5#!up^5r{Cy&+*jdyfs+^bWGSvcJuZ zMC8-9aTeh8Qr4|z(Gh74EKtrjd@Y;Bhcu`qY|GN|Z*ewTCo#tOooVX_L0_d~yQDD2 zkhRMZ*@w0Esa4Wu)mVlNlKia2zreAT*j9^9rcwSm4cmwn`ST5M>*=6ajvOP4#7~-} zOTM#8M z(!j^ZTU^GXqL7SC8Ol#{h>`_Q{!09dKnou-faVS;yxInqVYan5No+zXt~gtS*Gr>4@s8ZcBrMT=g!@(Qe?n=}_WY|)<*q6ec5f(7Vzaxh}SrKuzrx%Oo3orF>|y()7cy`6#v$Tp=_K zoYL6OC%WnOd@VIxo4|l;3Md;2dLP9{eY2+jqp0$y%By7iYipCyJBjh e^&@Gn$ymKiRYP@*_ZoQnKSwM!Z~PDWrmplqgf@Es literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_x_m_l_parser.cxx.i b/CMakeLua/.hg/store/data/_source/cm_x_m_l_parser.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..22456768343d6cb3265e4851713348a61a2fa50c GIT binary patch literal 1596 zcwPZK2E+LP0RRC20000000sO202vwp0000000061|NsC0|Ns9B)%2DZm+W5znldv> z^7F^U?Yr{;00000000000001ZoXuEmbJ{o%{?4!1a-EJ%!6xn8T!*BYp>EPJM-m3e zwf&S)YyrCZg^^{FTqgJ1Zzb7S29nZF!qwBpSkkVaeS5UB+j##}SFHvx;K`Jer~?4r zDfvdB1s+e*v^5Bcm?S&`IXYn>g-jzs7-&L}*Er)xY1g+kd$D@9iG6_d0Lib$)Lv(Z489SrT{D zTj+x6hdt*V&f>I}%x^iH&IDM#EtR~1Kbg2DoHn5s`;PpZs(CMo(}W9_MGinW3_*#d zz$s!~(7-`$BT7q+j<^w!aF_`(@3`*u^|j+i=m;m_Q}<+i+IP#PGZBS=u7ZFH!ot*% z*zg+9SPE$}QHTJ42P_qwU1fp>@VPfWIlmY~_v|Zt?hc3Dv+>t`xMpIOWCG}d#-O!` z8OlcUkf9JN;v^QgkWAq8Xy~1wRQE%#-y46GV2^v_v!l@nj?ahCg+X^X?s*se?l9Lh zxEK!3M@Nn}Rq7>I$%2BvbYq+d=F?Oe6D1OKEK`68^gCMhWQo^sYrnDB53_(m-OQR< zy;jZ~_|YZ3nG^Kzp*bpU=Tr{WT(|XvSIq#@=@<`|UAwEvK(MrRsE6P^wD+rHN1P}5 z`2F)j`*$51n}AgXXsejt)pQEU2`{81&gO;OzM8s!2Cys^Pywv&mX9@v6EngaAnPEW zYV4efjK^T1n5~iaVkQ^~**~-Z3$I=omZ(v0mc`#Jt*9v#hBVF}ZMhyEGaZfIjPe+X ztb$ZBo8jXZiV02U=J4BvKk=4|pwnR!1Vc%La;c@X>@Stz(D!us(fLRjGtyd6*}hWE z;ov~(ba-%;O>`V{dBZ!>6Au2jY{$P;cl$Z=a?OeBq1z%qmA`z-m1*^S0SVFW;1(&U z&=}O^yjo1-AlzTgh@t}b_8)Sp>*D4{am!Kcr?>?WJj^xwtQR>>Ug`%eXSJ2T;@X#`K+D*;H8?IM|BS(VpLj86UM{$s^HxYW6!^9Vq z<33BC2;T;qC zQtn`Yd^Hs_lUshQKyb5uy5c|xXg9V)+Px{RG=x87lL;nH#pE3RlGKzC#%IIMvkAa` z8AkQi9RzY^7x={-pM?Tfy;zmh{5w8O5@ta$oMCz6Iir$qh-Y`)kynpN9#?9p`4BbuNrpVG5){2NAZe;RqoqJ34{l#S725*L z8i|?mXxgErabYId>qY)Z3asb+?g{+CAXJ*rb4eB4yP`9)U`RN4+{8RlnIV554ah^IZb_Y*8Iz}ny+~M4#clR8Mhu_VxD6si+HkdfnuR5!NfuVRfNEtOQ1mOctkCc-%qp9%b)z;x$MwGk@Qr<;SsQMH z#d5CUHuEh?j`Y=@ufwv7!$dlo6CclG(yM-@P+6Mlsb{IXRfkp5S57u^&TUrmw#enj zu1cQEBwv>B2RdbOksdJ9K|w}Bl4tTu)s&?eF!>dTiJ95~N=|pQ3iZY5?@Yb`c}i~@ zncM>d45g$2Vp;|G3S1b5sg^dabZS-lH^dr;mNwpQ9abEp%m-!DE`nkd-{T=!de|tx zAN8;Pny1zLgoB|3yQOCh>y!<<@aRTXc*wU6W%Kvay|`p;n+G1*^c8Q@&ifw{ev`dh zhG(Ozltapc(JqL5W7lQuJjKyPpF-xkeNas!a!vk$3jH0jm_l8}5?4z%f1<+6ILG|! ul6S?h%Zg9~LndUCWk~FZL zr3D5Qv_xA(Das%zJ6_TK_B}_+uW{B5s}aPqc=z1fb9d~t-+Zf2t3`BUtEm-bmx$6U z@k!DdrM7bJ>_!VesccF7cA~VTU!{>&_{u`*9ES&N-kfTFsVLO$$%Q*$IQZq~DZZ2rEyiZ?c5{yKtUX##Ppo=Q+bt17lJ7(cG@rjgh$>H)isof6RyNQ$%f? zr>qcm_ecBW^#O#Q$sgB0sFC7CWN-@<7Z>nZOMB3^GXCT>QR_>q)oHisk4y{awvk$d zw_~f2tqZAV(oz)RD&ZGbNSP@?o@P+MGc;IfSmSsjE5Q4e5E=`dM;#to``nt9H4Xwez@PM1?S z4WAoSH|cj~CjtoFmeiqmF#9r`$* zce{~1_=cH}emRq*rJ4HTfvue|0%>Qq@)A9ocN^k`l+J}!Vywf+_O{0NIxC#ln9-OV zq?`BRid@PBoQ&h){@R4tW9f$9FQ|7vLzNnK!2cQ)uo9*3-D5?7nno`vuQ@KtxNT9` z*fl3fGiuuLMT5DbdJ19eiLspU^p*mg80#wg#AFXS<(QZkpj1@`mPhilg{+W}R1L+} zF=0AX*gw*_; zA(mK~zM45?7G28@N|Ud7A8sKr1bEB6wiUyMg9k_k{Im&UHLv!P77Pk9azQeVdbU)} zaOYVY3Nx*$ZN|A6VpVHSc7%C6Cq@2NxhwYkjuL zBk=hW5Uv0?kJpKS)tL)jGZ$5u?F`l90jiL6Ug~@a+0{U63r=pH?+67P_pqbGhTB=C z+bzq0yNfjVzn;eEt|rl-{-&<*V3Y3sB(Jj1r3o0@)#C zojJeMvblL2cJb@3ZEh@F&auco#hX^3H_v#SPH=I9>HmKveFW(1H`7NH|Jwz%^#!p$ M0S@-V-^uN)c^!=bwg3PC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cmake.cxx.i b/CMakeLua/.hg/store/data/_source/cmake.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..74ce240e5d70c593939bcbb1e223e8e476298962 GIT binary patch literal 34433 zcwPV}K-j+k0RRC20000009^I}0ip5$0000000061|NsC0|NsAP^1}me{dsQBSd`rg z@3Y(qB1Q@T00000000000001Zob7#UbK6F;=y&}Jn0w<;Hbu*JHoK85ZP66%@I;n$ zMcPh|<6=Q1NFgQx9srcAY;u45?Z><^04Z6?o|mh3V-qtyGd(>$-97zy^622c{%map z!C98hvT(5%1VQ&r_$dl@f^L@P`OeuqET(C;2=LcwJdc9cQ4(cgk!H~CO*&c4BkUFY zpY!ejzwZU(1vG7sKYwmr1^)*c9f!$m70$3(_wi%+;V3M)5A@={Kil2?+mokHpFI68 zc>3MmvuAtH|4v=sMOhxF$sWOvu44Yj)AsY{-@tch&`p;&SvPnm zi&{ZH8MpEObNb#*lRV9ec(rH;L1#V>s9PRnQ66Pi(WDK~22rFTwu{e2kY>SUQ7reK zJh{HUZu830Z1&{);hW#P3oq&FA@uTIZ{PH@&aANIR%k2~iK=&#mbu>~^}4?wr{i$0DBAtn`&>j>63%6BI3>SC z?*9A=Kn`Ic@OcT#%mK$v3o%kO!KQ;Ei^7H5WRR}1arDZwHgR~| zpNCOi;BWBb6zFvtC()$Yebf1&H+uQDe|$7Tx*X9D+gpDL%sq*g5v=YN93vn?fDt@- z62QNLogN?h5mM4<`rYnmkxl}@?EE4ee`?!Mcj^Ye6 zIQ-#q87DKw7j3} zpI*c7Fcn;fiB)$nMx9BJND$%tU7WAN`Jh-$;`Celgs*M?x7)UVddm)fzh(RHZVUf? zoP7Ju2Ay7}*&H~TWQZH|IKj5JXpd|mUA)I0<<=GfecyT48@(HhUiVIV=bho{`2ZUU z!uLRaGx%vxHIZ`TIC=ekgVun!=g$PU>3xpIt3tBeXr4!svj0+o|2By~m%u+S@nyvm ztb1;5ZQh%3oTWUZKBc~+;X9?)xv;OkEbOL}=;b^ef68qP=y3p=pZ}B={DWYdn?X{H zr!=SDcpfkFsCzX0rUH~?>UlAl$H3|j@tVq_|5(A5F(J_g`ouP#gVCsSc6QtwjRMI* zHsQeKW&VgbTSK_Gz#qG(N4?;wmttSwWmMcOBfh`f4 zB3g}$0Dm!CEh3QmZm31LD$>!i$hNkyQ9Q=`YtGkJ_c9uP8WiDTiDE}{43c#bj4#9N z5dvH+Pr^mCy}z|}mBt_iEKZ_m@)G0#kXvH9~Z>0)+Ue6&NF`e<%^}(e~CqZGv+5Zj1J}X+RDR4gyCq+1q=2^25pL z`;*bT&UwG{5@_SR*Et$>x?Pa4w@IS@C;h)M{a^tQLH-O5f<`9+IxC{ZvH+<)4;CTb zYN=RH5UPdl1&w`zBl|u+P~Y4SEXM~8xE{kIxCF2ySwtXW2y$%)gLDxo0C{j7ffygo zufv;Mwh0;%&c%&T_u?eDVsR0~mn?=e0#kk3{Sf)xeWQ*4q) zg@%TA_85h57=FHrP)89P(CPjF8qU#R)IEK3)*1GN#zJF!gNn->g|(nR)xdBpRGO}{ zxIoN?Jkw)PpaR_HR?tM{EWEDU0f+a(8Ob~ZPEz;Vi5GcWC6c#ZPA(C+oS(9@o)q*xt+tK=wdZHT@_1E zHxGho2+;TKkHhQ+4=k$vr3T%36lO0`B<3ZQTOfDPx($3!qU*q?_Uvz|K5&&TBT&-; zMT4jyOoIkrgvmH+VvB8ROM)WMML3Utjd0IIpDn_u(unrQ z?2HA)PP23oBuJMi!)*in_sGu@ zWU)CKU~cH7bAJE^v&&RJUJHoEa_%wm<#D*mqaa6)j3j`Rie|Q)VMNI|6{?O#jA9vp zmk`MyOn~(R`))G;Kw-cM>7fMIV@ zhui#7H)YvKiAB(Qci%knGgP>{!d_7SwL6btqmRNOwA&5FS-dRXAVSql*NOpR{pP)| zR$~3S?{Bik(DrIH{havM@5wNavIW6u z$7i_qa4{DKv7~t(%|L1bIdCHJ@+MsF?Zt)Y@C$Si^OOe63+R$G6+iz4Zx5#l>>xA< z9zXuYGwJ4|U$)zM1hV-=NiS>8qP1M-@CkBp8rkv%?SxP{Xgg3qNmffa;SQQDKvT}e z29el)MMlII%0&C<5cCOdzyB}59@0hd;Fq04MjdeAywfD}HB9{bXbysdfY8_u+#6g@ zyuDoImm}nrO$EuhnS~%}_7<2`J>082D6Jq1^Qh@xdCR+8nnVTK4TQ#pKt13hM#*&S z;uU{>VEoR=q=`O$j2}&$+B5m!9P8s06r?V$r1>Z=w&65I1?sOb+mA5xBc2Q*0H{l= zz(8FLu=g2=Be!(m1l3q#bg@9$px|D1$UzARehMF&&aP)=WF%{FaXm9{fc?9k^t)p+`OiS;Rr5C}Js~Ow6f=Q( zDD-WTlS+nSoR-H+qL;Bdhr!Cz$1tFHr}aq50Scx1rW5)B2@`cd_V(x?jhr2lkarFp zkxr7hZeYkDB!(cK9m(#2u|p`@4b)oYerj>dhY3TlBS_OY%ZrlDMTo6cI4-R;E)Kkd zIV)z7%iGdg`s2qSMwP@bn`yK*VPR=@X7qe4fj;$AA zk_|P|N`c$oYo>;U2a8pXb}qp3d=5->Lheh!yUzK+yUy|3Uc0evjwM7fWk)K{;dc+> zuEMOvFAB1cZDs;l9RJnBH4gDHhhKC`t=^vWPx`}t=eYmxy(0thZabnuf+qGvkZQ}A zNs9*A4u1PhP5mxlwtahCHW`p z+s%*q8NU8y$+{CSn*EUn-TH7JAijDKa>A&eIx7d9xG_M3$~*mmuKH#XBZ~h@+hB`eRrkTs3rT;6UZU^<_N1 zJy4>0%ulhDiee7#{y=2uDc2Y`}2<42GRyzgtDir4uF;8yhWe&EK|A`cLa$&ORBUmx5yrW|Fc^){4S{B)v9Xwif(Ar5?@oo@_3= zjaOL)^XZA}-8uN?{FUj6R-d#fW)7O^?#1#Zh>{W8%?nYdA z85Wn-+!xhUXkhYPFOlDo@#?|vli_yD4EN$D2+1LWblWczxYSiXPeXb#6_4zK8`3Cr ze-q}!#>tCZ!j}SnI6+?x@(?ncdo0n;?w(cdZv6PMaecpMlF>V>*JV!JvNr#BJ^mIZOqbW)m=2Zdo&&bvjBSMsJdoSGB zhQnY!YvSCxG`{^&QNWxh?;;m4puYq1rCUsMo0@;0F2sYVa?2O=)O08sWfA87@6+rP z92wQ2=?Z23p$0{m6@SuLxU4^CLH9TcQLJYu>&))9h#!@#PJaGF|3R*U?q$g4$RnyD zV0i3LK*?kjHO>;wYbK*v#K96L!DGst&1%g;CNBaM-qIpOOkyGs2=Wd|lB*~yhAH~159VQh8RboD+lBXy zb6ReB(|a58bkiYU z{&(GWhaYdU`K}zj^OV99Omyvx(a(H`oO5<^nx00Wi$S4yU=PD5wIj?<@;Jhw{b;Yi z_#{+*KfrbgTztwrfz}m2GUkZ8+V-fPmOoIb@O3| z$PMRmzDg2uwMHv2PmKG+q}u*j@!he}j9zanZFT4Ol3SbGt85LM*lmDLwBqRy z%WI#-#&4@JR%RQOwC&tc+#cb$!GUThZWfZeT^-MQM=}xi0AOr>Cc5-)gPOI_=h2)p zG1kAvaX9eLW9?g%5=ctAE6l#?7?M#|h;Kod=O8Sgu^j|I)HR50VSLXe`tV~=$(A#L zjpR2qvm@Q=RhCj543T%W5eBhu!!AFq|55t4g8s*-+pJbAKnkAGbK*+-YAUm4J-GU}03Dm|j)t1fV@X_Vy@-pJ8$WbGFj zR76J^y_eI^l#FA`=GrL%85#$r+jO7u|+@E*u;fYDeW7| zC@op!WlonKyO!Tjh4}!)M8;^}Ll)13xSU}W|8iqo8L)jucc#@9HauTIiGG!x@ zyWxmczpn=_CszquQh*mU{=bw8s>g8m*d!Irl}$WO#opd(_t!fW!imOV@gu!W%3&O~ zvd$wh(Jzg#Zf<=blIDyRb<}NA^}J|J74vfCFni>=qN$oK{IY@Nb{l&MY-FINCz5qD zb@$!`lQd$RK6z$hd?5TNf|P;FCbL{ZSuOGRWtL7>V>J3Nq7da)n33>bks-MMEr})g z?YCgl?erg?d)#J^G-be+o&84UK3zj>sViMP93+m9I&qOB4PY2~E}|&a`DnvTXD~~) z?ijRY`zAc%6Sc5hOpWhNbt$a%<6uBLhbPgs>yaTR249cUkUhSPsVYO%!-rBjFWRq2 zHxkC5(>J}*QUAQx9iE>5)Tl7mR2c2bKU*kbe~ou2=2s4~uC=Wut)&WE z?vPXg62Bqa19?Z0AP-4_mDEwOG}Uh-nbg-@(t$d69wQG2xcgSdVaRBk=A;uUo53VY zmrLcHL=rBZkN8pHzvF%OBsR9-2sHw7BCAZKB(Ki7{ zW2d$gA}s4I?7Q$j39eb-*HCnKz?=vP6(r#@@$vP<%lImFiH*$W0QI(K&(nhuWyjy} z!FZ1-nj~K%tzaC3OF_V)JUmpnDKQW!^J5mp^$Ig#utolJD}KRaD9$F>xHm#_1^(R| z_!hVC7jIj|QO9XmxUV|o)eSeHf!pjqzmgl~uQ)6*gC1pl*p`sPjN zhxBxk5GU2Q)xJ|f8(*GaPUb&8KYmqL{=@R4>&}Mbn^>8c~H%S|Io=!||ua_Jf06bmI=( zubAqAznXksCiKJHhA4yL(I7y0c&Lwq-D^T_iWky#oMVtqOo=QA6rkGajN3!DGfEFg z5{0q;HIkNIa`0F%gT@nr)CeBebjCE73HsPNND~p{Vq**!NV{3h43QEld3Ss2*y;V<-ZvlOoS6Kx^WLlek6(ac{QtGo;zJLQEO4P0XuTW$ z(UV%7GAH6JtHB}{E-3I9dfK3wQsxLepHs!+%qRzu-bG|UR_`4W1Zh)OA9gXY{O5)Y zgxF;V%7&+Thx3O4qrsas-&0MhxTqOL&n?lLB|cCH&=K_L@T-1S*$84++|-i^)-t%!ayBC^OIhFR*OHS^e)u9nB8lg&bX3Edjfve0%Dcnfz{I(401v)NzPcY&qs;b2 zs3y_#zXGbyI^7>kR2wU=K{d&=cSJQa)k$h7Ev;alrk_-XMI$4ej%=h@XrJnEo~DJX zQ*i3WTq*`KrJ5em$*Cscz-If}iffyJB0;G3k72X9MncXUu5C*<>%-R8?zA-swxEFr_GOspq$bN}qozhE&kX|`WExz82F z7@)!VBd77_iWLd<0jHcO=O_kGb8~LjPd4@ugcjMq`n(&x*#?8kON| zMI8(?--8DabZmWtl^aYKy+}a_n#Z3a%y2AIM~g!cVT^NzhkJh0HhNoFA{#A@n645$ zLeNl30GfZV)9`Mmz|k$+DuWl}Iy#(K4cDxxmpD}7UCOfWN)PD*UG)NbBfb9aGyJ;^ zq}cFStw3*i&$U0k``qPj1H8fFVpX6k4gF#uMR5RunWvmXhy8Nc1kWpgE^*F ziO{A$!*+R?Q9K<1+NKdbp2X~)k1n?S7i&OZMR9_zw|MUL2tY>3ESh*=>+>z%ZtUd< z*t*r%-0W);c$yTHhB-Cc8F0RK$HnZO(FiA;)3l$`|3Aagq^BAGjD@t&XCdTv&ul=^ z_%aPX@W~b1DE{nV&8_7e)8A`y!AB;zUdk{=;Sy^cIiTub1Q#o;n?(_!8WCs?bf6nr zi~UDIXG4*A8RPcY+=hc^$=E6+Uz-KL_E9vF)uM58R4T?L<_8(|z3_@{4}B?U{&iEs9_Ik-}Hw@8o!FYCI? z3$grX2cOzy^{ekbi>Kb0>&Tt25^s`m`C$a*Cu zi}R78zQ$vP30(EpfA~EB52)Ei4=);+p&+IZB!7`k`nKSxlBt-;q)I*VMr>E2*19_0wnj_+KYK0sQj#u{V~{3fW`85^v+N z5mlzf3>sxb*g)_fa1YP-Z-XW&HKVLtk1`>Z|M$S02RECP=M?zs>bGUTcmz`DD=a~b zBAF^giWVCQAzv+*SO^(50JD&_Yf!IMmNM#VGTdEx?Q=a1O%?Ukj*-o(7jKdUimD{VeT`+S2d4rS8H8*bwZ4d!CsXSbB@ zzK~UV@#E^1cf}B=nyVHAHbxRn=wFE@IH1e*NG+46o3ACXG$?A*01neRS>nDq#18wqO3M^o{)RyA-?WRmHmKi>%!(O zlXbRW?=i8K$mDKA35AE(&Qt~n%amd4WN);tq(rTg!LrTxjo<+QHXQ3F-<yEP`A>_F7yC+hvL7Q+p3#OVyk2T zn3)^3AZ*W%eS7{q2@`HUT|UVzoR3%Yuwe71wz!6Cm_4^FpE1wnNN)Mi9uWWG zxjt4g1#1^q;aryqyY~yg3=EhGf2KemFiD^Kpdog+&SKdL9XbvNw2HNn-g4N=L>-<> zU%WS|8PkSS44EO9_{GCOAXTT@;k}oClR>m)qXjJ&XaDBtuWHsUv2&HP#}s90u!t8R z^b1s7M3>=J%&FHwCAf^{^S!F|T1(suPEstBd0CFA{gUO@;@#96ndF+h;uhM$*)m+( z4DUoL?=haC*C?WnAw7jT?-gjj59Om{jdDcqhrXj&GMSk7ogS-nXw&$E7--_yEMd_t+W4>2#QnVx8%h9d9b{P%h+jG z@bsQLmT#7#uq$n4$N_&f$Bk5I*@rLdjSQAB^hKDD<8VH|F&`D(Tg5r0C&rzn%B zkvOt4ttR3%%BbjF&as5Xt8~R_3RUjG=jB62NmH@m24~+k7E}$*5pDEx$dL;x@+%NA zoaLL>3d9sR60kMMsm2ijG;)vNpI80kUhoLFQf6>Tmr>H3niFg_uFbqyR18aWsMH#l zFsov!+O-;A#ps;G2s7`DDM)Zw2}=Up=sxk=*Ck135!%$gjHVgJM$+9q5Nl~Cu)L75&(Y-+d6kSnr>P4jV>*tFAVJ#7FC zWLSny7g2UPrI(|AQqA8T`uTvDu@00?(Oh=9+Jff=W|aOSoZNL)?qq!2%cLCp?=`BH4@~9t<|?K{6cU*= zP7dq-xT4HIg55ojbl6X@N)t%Q?88ej6Btx`k%j1w$i!Sn#B`Mk8Xk#$K3e{3=@o$_ z^c<6&7&nZ0I|3@^{u|aRvzpqZ?`vZkLcTE-KhgQYff}sxp+a8So8^&G;7k@@6G6rk z@!FV8(yBfx4gf#x`79w8!O`lpVzS|^)HXg{bK8j2SQwv_-XpRFus;jc$^9cbxlc4J zT@jnx_gwkJ3zu^^^hQFW+n#&fbu(X z=X2bTcX7Ug27_WXiPK;ajwIQ5%Ao|RE^q~Wtl;T+S zjQz%U4pc|;g47~6nfu7X7oZ~b*L8}NO-35H`vB;CD``(QvAHr+7x2l5VZ6LSSeW&1 zKBvD*$w@iFwe)aCM5_*l@loa^Lg%L_8G|4MS}G-2-;^_Q-?D2T(B8Km+UrVXgF|-G zi(jzfWh|;#iJX~O1xQaSj&k`F&Yi{!ACH_xiSOr2&Z*@Us6-mAs&1#Ns;{|7l~wT> zrruAcsllfm%>2DVCB)of0qXZ5Y=5+8d@@@F7^GxjKX{?CpC8&SOMhPA%69T>yaUSX zVeo>MqW-;6XN(3iJIjBs>kO0Ki2*N%73=BB_nHjk4wvu8K<#i@ zBo2%nmS6ws_Ow5LYkU?vEI<9tlPbT$4uq*^#6^(KCsC%in^+J%n=qT>%3Ap!NCkh? zM*iE15@BE>gNd1{&qy>+TTGus$W?I}nIJAepUrNp9(jtH=jKs}Rk$RZqT;xi&kmXV)#v(QGDWKr6uE{c(|ESZL@5W$Vh&7GL*PomCd*W1g9%mo7-=-D%Wo)J zmV`0`TkAl`rX?5_RyUalH}=nEV?ai0PZgMUDFb5_2Dq)0g|Tw28nT;Qv1Vb$5N@x! zRgjckF3~aLEHZ6>T@IkPHE+IcZ^g#Rws{cNm4=*Pk2S?1@y{GvtsReAt*dody(jem zZi8_@B+3q8&IL}S$N_4&Tk)+oE>`q(hzHdx^(b+WQ3K76j8;v-WK08Cuopb5v^hkj<1LD$gu1x0bhH*5j{Ee%9g@ZtPvInMbu<{(D`m#~c zZj^W10#p@0Vba37Xnr65$LX9MzKQZTCKd|0puQzMd+7pWI=a~0B@0Kd8Hxbhym|s~ zC_OHuweO$Pd8m~}zkvoMC-DO2GtPRm(Z(V_6#ltqUlW3Dq@t8=C7xFz^4XsK8ZTX! zZTfJfYT{Yn=rx0|LWQ$Nlp1T4PMcr<`t>%YeWY)gjmi7CBF3}5uYX?){AwfMSKc~) zhQL)lK(WyP-nSggaShbh6ojCSP_!2Xqqa44Yh8{&!Xy@mvhZMJ~SJv6cR~FRnoeLvp!CzMK!$>ow9xY!c?-UoekZyJF9b z#e_GCh!SZkHko2Y_~_;VD(gZ~{Ix`_Sd`$gH}b^6;rlpw{_KoxuPk*@LMD}U>U+v* zU5fv3&V<^2I7X!`Q#6ZR+v(8CPi0n(>r5uZAhiN$`h>6#`x?UK8_0(8YL$#}WkVFL zlIU9gTc*3htfK?}8^Oh*`>GGT4AJ#oq(T#E8Ig1PWp_@*kmlVuoYzmMh+cXHvwb#qT zIyfiMwa#Q`Yo~7qy-}}w+&>%i)=#oGp2y2P>K+Zh`LbF10j-(l4@bRsz2nof+IjMc z`9bVW%`EF!-oqL=JV_!0yjCO?1fbQWSe1oL%i8Wt)s=riD?a`%pM3G}f|PIpx_v9i zV|=}fxh51DK(50Z@hd;tJ!?PPsybVnBjDpYp6~oQSces3=lH*vCh-p}h6?Lp(Im=% zQR-7)eOn;*MG7e7K3F%BD*%h_xz^cpJUi|PfEJZ=&rkLavyrl&m+Nm%>BD}xG1dm62y zW(Oapyg$q7**qi)s$ly_@u3``Q!z$T{WLlT{L4>^Z3G?m8Ut( z3>w{TW*#u!*_HT{%ZY+VvzbgG*nEJ0*W~0k7IB7>GHh9tjKqTk1Y#MHVb=oW`U*^@ zC^KNnMYZ8ue1rw9+wjeqss5gJ`%+!cq8$DyM#*BhEW)|BdP5#`fBcb4({;73kDcWY zR@od%Fx2RF4;t!}iiFZ#Bgv4^#N7jmy&ucdY;~~Nj)VKN6(%rhVs0T@y_U22@yGIX ze*E#a^Rar|Z9=ky23I{MHChqBOECw*Y_{*TpHUmKnUXZR0@?@s-^?T7{*yXJ9rO>$ zQ}{K^8Imon##DS4t1+YC2_%Y1LT4m(7Ad+wtS}*jP9WMYpF^PaSC}pZk0I3_q=ova zl=!;cTBgD<>q>1vh9(mkfBtM1|M>C8hG9z(O~z)6ZbOx8`TW^ag2mcs)Tcjx)(6xn zdtK2*#v9ARM`O=0U1yZ>xb)_dw z7n44-mQ4c+*IdCw=*`~ADjC8o{AGUK!l8LK#s-D}=G4E;aU=4z!>~E5n%@%gE%P?C zsy)d1>HGpvTfe+)hostR1Cb?3EbY#N2yAGORVUw>1N#ffS=6zVz;0X(-@{u5pp8%j zhMu5)dNje7e8had5}Tf6mQJVk!ts}9J)anN zp1SVzMb|}1B3q4%00iYrtSE3Dzydh@V@!GomE_>SsEcTdf^}Sc4F^9>1I#70r=+~M z%L)9ut2&_&G{k;pLF?{33X|1RJOSmMWI_=O@>xQ}MoAL~Kaq=K)Z_y8CY?mqLjkwu zCjLv^6juNoc6br&IzSvgBZtPuUsB1=IrZ99TXk@CSvyziAWB18FVbZ&N3*3*`q0j1 zx|qO{RdAhSXTxfEQtX=Wn?&%k)BWLn=lp2E1vHBIBAz1)7HKa{FeG}@4N#i zN?oG{SZQCnBkbOf!}Csg1UAW;(UiW6?!I3tt6nL^R9e@YruA2GM&PQ zN}TfUtrg7mB?`R(g*E%TDD@hMt=%)(Z=m7RVZN1?Z=%YQ-mUl8(aY2GLJGHIFS)W1aY%^!iS-v#@^LW*yI8NA>2P`E1E*5z`B z-cYv%I&wBXeE&o5r_u3gw{tvt)9HTSKk5Da^WgN=5SSzU?M;mLemX65O3TL2Kbv8V zKmYvq_AYe6^33~37c>W66uB-3mP20aKgd%FU~?3BIg(*-2L%Ox*$cw>8kqew+SBOVzCY8Y#`j z7mV}(;CVg3DMrs^b0^5)N=&YN-YR(}j|- zy1~8LeR5Q`7U+RU^IvAsRh+K!`Hg>Ev83`Bb;>f30Jt{IizCHiXkS5gtlvx7+Ko%&I?Y6y%MU?u3sw~6m5-yfSS@c3YVPA_ULTZGm zVCg+BUPQvsBMyW)See{QdxEyCte2pPYjPYWvlU>(us3ZvHZOF#FCt3DCe2+KotCYV zG4lO+I#Xe48_!AhW}krLbk^jm%lz*)z-(AFTh*SpiP>E4V<-brC&I`ht!rD=Xwhay zgvD@Pvgr^IFLDF2ja6*RRAxLRdYr_3A+lZqTAXq;gsr5g|BDDTzn1h-T%g%Iur*DkRk174l3wheO&=dx$V`VL$Z;l-ce(_RQL;8gU~KJ7)^mDo;J2Ul5zPN7>zd}=qJSOPRC=+q0!t{ z)o^aH+w^~D=cljFJ8v3BQch>UettUjKSb8uvm1SrjbL9pW;iV#pWa#5CPT z^N0cx+5udl%Sf|9;;2}8Tcuh7Sja(%fpR|}nG|K)b|oEifK;9IS0gx8b*?bP3YU;H z!Q=?it%lda*9hD)*AYeG!*MCl^$T}f-l}U}lYA3I=N%3KQT+Ea5Y97vP zCtyb}HQpX~>Ftri#pUB8Q8YhGyg^MYlKwWP2D=Duup^~$+akTKmJ1L zBitm`&AO*B!DAmjWbD`w;g^jd+D~Q*B4GvoD=i23@0Ro2b{=8krbzYHp_m6~Jg^>) zTzu#_euM1nRwc*Svn)DJ!wG#9VmMKtX_i=K(P$2h);L$t372hktf&2~tYC>;_%wQ( zCetu(!fIzFHGo2ldoA)D&!cdH@4)1;QR-B-0aPur#MAz(FZFkf+ks0FI3(p4G@dL$ zEV@cL9gOKDalT5L>tZ!AX0^rVG)a|4q?{^5z%1QN&~$}Pjro>gdc-`8I%&y$FkYc7 zPlfKxwF1#est6ZLQHhWorC=98oC7@>v$Mh#iq{S(SLnIXwnbiSKEUqQ#U*(JVasmQ z^mg>QBzkIF8OWr4%y6h%P#S( zU66AYlaK+c9ds@@A3l27tvBda_{XB6fa~WM$1*}He6gV$nP6BvLX^3<5?7NZNDF86 zStCSFPExWYm3!A)MXiZUC$+%M0?GviVu2~^VXo5xjj1cn=SOB9YAR^d-D$^Iz4>t} zMFF{6;_=1w#|s(u9?vyH)*j0%m?kLF1Fh%5Msw}Q$BR@FLY-! zp6sO?95qS%`(I6Y)QcuV!=x;)0aP0)bZz)UDLas_^#;y-{I-d}rNt~J6nISzZ+;RZm=!S zs33-SgF!l9$s!fTHRHD~`jQ8eK!`V*shwZX~+64d;!A%~* z_!IO@)eT?zCT7kD?$QkRdVXVf?7(>ed<&e>G-0`7n)97~LRTa`)owpfg{{WPLt@zDOk2mN=%!^EKj>+t?xdNG(SeI&k?ML- z0j!&4WQNbyy|vPucpjU*F>f{vV+lU%IE{@7gPJr~4luI<^HgpJYJY^=7*jr=QnCO> z5-nHk$$C4Ih<o?ILTI|6|;5z{a( zmP-vUvcnhgA>|$0d+{Vb6vdu#Dhvp~+r_6nHum53o;-m~fvr+|F8$1!$V|7VhPzl@ zMl+G}N$!GalbpvSM~P354i(+tQ~+HsL3IHd3{^ahOvc8RCAt+Nae?@os61fqPzEt! zDwc5t8Bz9?afyK9@_mL(TND$16q~tL{OG7jezh*K)n5WLca_hp*%H>wWJ9J*`E6as zAr^TbuIoq1gf<-SZ+9H;Z+9K<>0JkWddCs}e#Zg-e#h~?yW@D@-F1EM2EoWXY9dz8U;9xWf`F zx~*FwNFT4?-(|RperEcznqmDO&g+M*>c_*ndG3Dfo*wn;rtu>t`Mbrc-S*~cZBf`T z!pnD=F_~koIYGa!DlHxZ44*q&?$(gjSkav427YRxU}cK4Z()pl5a-E0k4_=A1vxy1 z85>~H^MbmU!p=9g6bD9oZ7No7$U5Y^`YBEUs0{A*J`8BX(vZ9`VwE7nae|grYh=Kv z@Oeg?9HGcCQSn=l3iu{#$r4`)at=#Qc^~7V9h{MLE}pp%ya7gc$)%-Nn}KiA6&D`L zZlw8eB{EF}Y0}=z4PWd0*1L>&Eqx)A0N1>$Y*|Z|FO`@&k?J|9=u6OoQp$;e&sml; zB|3UFEHLfy=g(_iVRDSF5=ZtNgd|Qx!#)b9Z{BoHjx3|g#xGGm8_9G3gWvzg7ynO; zFRrvcv6~-RFwp=^IU3y`C{y#a6;QuNrF)XN9yRuJKOas-GdY|s*BY)TJCJlvywAL=en|;k$6dn-XYg^g23zJyi zh!PJU23H#z*~mKra~6mSM^gQ~b$23M+1oUg)!0Ft{FC=-4M9fVYzCgWq0(I6-f7X^{pmobmLr)lr*30cJ zvZqP{`$qO$UwgknCzfeK+cg-!s@Wwa!QYY5Wx6id)kE`{WkG}+Ytw3gWc5`R8MU<@ketRsJ&6Y-Vm-WCir8{0r zCuS5_J5E61E1J}%2xBn!`FcmHu$1ts-m%7qY|kC6X;8q8+8vrZ>$7CT_h>Rb(GrB{HE9|6yV{ zJPg8p{dYA+X?buGhgq29b7BHi;57)f1H^@=pw;iz0)@};z2^EibFh`1-{gUKk1_#a zUpvq#Lqt0eet1Szc7Phq;54FF&)Zyh>*0AK0|I;IeVqsIdgm`s2R(1~F?!!x(R{t2BpG)&KGYLLdv;%k~FbFiJi(>+J=R}h{{*vmW<+#yu4s5yz z7UY9b${If-tj%WaQkLb1&+~ zEF8HWET&Gh$Zl)Hjne_0xAg|QKLVtvMdD~khW}a;Bu-9&l_9FL&fMhL2Oj)y7=o0% zbBtzN^etMp(Pi7VZQC}wY}>YN+pg-e*=5`4a=or|PhN6f^1JulFPU>E-#>fIF~(YJ zuDy~~5#x$_nNzefOFw;(vWTq!k#9>QkYkRkcK9Ab5h%nw z{Y02_rtp9^-LVsURT`&w|0_R$K%xhGnX>OEROkXTj5209_z3sTDEI6Rb^wO}27!cH zqZAVrOg$!vbeRQF0TcX!jkAvqR-kJyXOFwh z-AnSH(Is1rDIh)F8gkv;G#o{e_P}=pXSaLG0Oyj&$c%}Eu>tU4_a(=6&9#prl*u1Z zuSUsuIki@6gR$@rY9=KCc+!F!cH~ZuJo02S7!eiB`}%jCm@q!%hmAYZE6-Q%c}8Oo zk))E;4?S_i?in||p|^tXKL`e*C6hy}>(=npd*(g}W`@L#1%kvInF;E#Z^4-MD?!-T;dC2BSX@7p)+hxj;o4BJndt=QrQqN{s}aJ1yIef4qr z9bCvJ%*&t`+BqU;R()EwI)zzCR}wbHL8Q&Au|I0G358p_EU>b=?mV{5|Du(th?;qu9nc z73T8!PCvTj>0AS{HnQ@(oaP(%Smc^h0gvkoXWrbwFU(^DTJfvV!B0Zg>1R7LLw8RE z@~%uk?b>buE8~FVJU}M#+-N+)gXn8mwZuIL(vUFx{o@AdX{opOGrWV{ zrCzs1y<|yfyq^ghc5}6@N9xE7ttZpZFF+`1;_MN$s*Pl@e*#5EaOQ5`d`*hN)KmFD zXgIOxv{OsdeuX2ojLCyV0u0}Q?=HgRRYuuO~FCYCIcg+}ig% z%wp>GNE$-PrbJyi#DQhB7&S?((TY*NrxOtveoGMVLV0R1gj9KU!h<%(>TX- z?&Mo0QXQ%7m_q7c(+fjpllHdfwYM?4AAG?`@De=i1yZ9)rEv`Su1&R5-N^OJ+AXGc z_6~b{>H(Xp<#{gbAM<5Kk7R3LZYvO3 z-ulmLN3JU+xe@Ls1M%mKu`d&L=Cht>$Q8W|>|zdMwAK;g5?=$!nU&-0#_R3JFK=OA z3|L>za|XEw;2lf$=#^R?Z#mANmTx}rT7EeT(I5*5-p?EYR`QAvk5|Vd3ub(5KC--5 zk(Vz0zT4;6kJDCU;C3^N{F`PBVJu^b3q;ZvkiRQRJFK{+=BY75)~G2RdT~?%&w6<| zc&?*EvhP=TEW%7wQ4EZa^U`2~WM%_6!Y9|1Z1Y*Z_HC=OOW05RiWS*M`f@;^#OW++W|T~BSeOG- zD3@`DT5Va9@68@1Ki1=Msw)v*r&{P?p96KVwHoUb+&R=-Lw z5{+6LDJ77e(Wk{z8~&vq)1JABGyj?O{37tu*`TEaoXaB;_e#Wp4|7+y<^?j7QcWfJbz zG*&ww(x9`4yBc?d@@##qj`*(Bg`z_`Qd9n-IsNu~`TZcAhPO*nE&PHG88mfy9}#VQ z*?kg@u(z1hXs#9Q6NLHYx!(F1=?WZ+2Jf~Uguj`l>TG}4;xo>4Mz@Ey)!4JY^ha?O z(G=uq4)Q{ENfN#-E?MsL688a{!)(3bZOcus*?=qQP@bpfFTV~WN_e|LHM}j+*nk)9 zIegk*tGEvzd{c(#+*#+-&ptJD9V|N&);_qEnB8CAa5OR&yx>Fa?T(j-4>tQ87&)P2 z0@DFG$6yqbB#1LIjA=8lob=$V3OuoNATjmspb2d4%j3q_rXPZU5Gb%#pZ)8^rus0d zjin8@qL~)Gay9Gn+bJ1z0oI@cBD+`;7Br86EA@KsjTF!>C!%@4kVhKr;r->&Atpbj zRuP%ZcY1}x-7PJ7>RAKe`?L%Nw^$&lI-wTUm2`jdHHEqR%RC*J3Boy#%gA04w4j z2P*LZ-_9^mq!`tTp22-R<#lOq5kECmmf6BPYjpN^I>_4@n!8 zdT!v+ELi4X6-#cKgzM){+I;7+qMt|8o^)tC9EpaQtXwQR%aww7&xc7m1yL`oIRyTY zDYS_%mlKin`PvCi_G~bt$oQYkOOR@pRd&6KTLmU|*Ivc5!ulKj!eHHdvw&>QELZHg z6l?cCS>_bZe4h(2W63s`jNivj`>-qy)YNQOvux+{piqcX0AJjS%1gTqHyUaa^zgwk zau(soq54R|mfzRfe@mpZ;lT(Lm6|Rx0*0)^llg-X3w8ANiDF{DXFWCi<>tX~@E!&Hjxu z#pR{>Op!IaRmH(X0g<-f@1(M=?L`k~qTlWD&{}r_U>HGW+)zSey?!kjq+XQ29^?~B z$0U(ULniy-ET3dqO=p}%>RGNf{Bvf$@v363su%Fu4LpS<;;rk8n=Owb)Ki#D=27Kt zVcH;1gp6U6)4$Tv)`!F|8)*9oolaBV!?o%r#W0Da-BD2l$>2ft5w~?53da(mlaKAG zWc$YJcKdnp(I9Jj0YZrPN4m4EPLl2??RnvVeW>Xzu1+j#A6{+H-~lwIkyxhfn(Q-xa- zt+itKQcsw+lPaMbZsc+p?kn@U!Y}B`joLq2(}G?OMKDc~V=9sDB}iQ+6R1$0rs8*z z3s*6-sRFLVjvzy>5%_lY)aO{*Nvr_SP3tA^+)@xSX#<{jFiKF}1w!SX5mN7`q|4do zLZ6AYwWG6fmf7GiP4SzH+Z}aG52E>lAJlT5MbhpS@{|TNq1`FeHM?)N^5GkPqeRiZ zXZJD<)gA#~(Yz~C3X+UF3nY^Maa5x2Sg~|R9#2({_Lp{50|lA*n5YQ!cMzt>=gzOT zNye5KIG24X6&c&Lu3pm)GgYZ4dZ}x zK-$w4`;hFcYb~a#fa_;irpqMX5Rh#|5yUn7IM!A782^6eP0jjza7`wRy*K3EADmxq zvEFRI6P1CB6`^ft$P>%g;y{k?RJ;mE2Ak9ZACWnE@_6Jcyfiao~rM(sc0rOSy-Lp^v_h~Ln{ zpHIB#_ZWj!GtFQi_^xk`abSe&0C`G9xwr^R?so9BiZ{4SLG^_+q2S;HetON%JJQfd zl%eh=kckIVrAo0gPFuOI6V;mA3(YL0sJwevo5eiwQO=P{N(2ax@@{5@fy7jj7r&CD z(~;nz@hk9h6^s}Ua@?34Zse{MctQrS z+~BA@UosYT*tqeFFbqJ-O4dQBc3H3G-maU|b8~ugS%b<2 zTfJU({+XU>=aT#KQkkw4PWPb$uz}vjUPJBT2KeIjAnVW!%mwQ9^D8m&-5h&BV|sAw@140^V9OXx5m9s#D9*f7}3 zp_B0r>oXKL(%=GNP3r-QZq(~fTGdOk+hMuur|5~CuhHIc(ut$WL_mxB?r8lhtSMk~ zyZCTp%LBt>(36kh&cH5!BQjyH+z^%%(yyzFWTs+tTR$C!gg>|a!j%U&G>#+IV{#cp zHWI}-V2{#Y#l|z`16SWqcqy=_>1y+?qMn!NhgB5Cq5r6bprq*n&|^l$!L2w+ zc#K}Gw3pEWVhond15;eSzM>?Xs>-H89a^YprHDk3QY<*QsaJ0`Hzkk>+o$H{+!x4^ z#t=K6w zQ)xKON$*SB7TeR#8@4$8bWcQfJFq5nRuY#fm&QHFHx3gpLXCk_VV)frOOmy_v3 z|3NNcYBg!HOs!8(km|2&@rs3ZfTBD~sKGhclo2#th)MQTR6I1et`Tk+LyZBul|xVg zPV^z!12!yXF=T-eyx-I04*p^(VMQuoQIJc;>|-@@07OJiEM`EcDu&7}&DDmkU^s@u zK?jf11#|BPv$qHPwgjz`u-$bGmGJ(@A(`gZkPAmYqJZ0Gt}fnKKv}~$SS1HQx2Y}c z#6JR=$r1@aoL=IT1bhY1P7b_XyhpPgkNxIA& zw81#i3QTX#fw)ITZ=f)dl@8Jk#T0bW_03|U`;w;wRe9Y6`?d&A%RxOYHyDKdJU<|I z<}*5(hrK>PSL9aXW2Sfn3cFcie2-RPq{wHt`5B&w|EqTib6rL}Pzqr?hOp(>FR$5N ztb(D@fRFZ<9mXDRD>Zqd6ZLo>dvWOo5+$Cw2HrZHA_QXBo>q0yUTkOCx~CYpzwW$_ zDSjQXLyKF)QXX8WftzW14i-~Cf4DTInSu}>Cu$UVbF!9@2r}?}52iDG=DEuqFwnF5 zw1X`6eF8nZP^r=lVCMZB)gO8urYsMR#OUHKH5`$Fv-k-ysHOQ zv$1Dze79)1&z*32$uJSMF)5U$>>THMQnY5Y714f!Wyp(>NKpq)iEg%h$Qpifd*Sbx zR88ib&@t=aKLdP4?#rnw_>wXCIKzgXp`>4iE{y5eQeiT4Qfnem3RrT>98S?t#yKE> zrUheBRY?tzX-vRM$ZDpCWp4JFI7S*wJSq%mMwGqiF&n*h$#}cY zm5|FX=S+GMwzOP@HukCtHD0{*QUh-DX}?4zFu4qE<)O%&xYK;~L8ImVfs;9z zhEp=HvE$K&n<(XFhSiN-q88NS=zNSM)x*w%v&E<%C5xD}va@>ALb5pp;NbM`g1OUA{A+MWo#!7y5TO;pw?IKrse zGZLa;c1jrjCOt|2OTf>{TvvX&JSp5ScO-9G?)t+fI0aLgXZx2c)_RZ0fwt@L$HiRx zvXut&+9`iG6H<#5J5noF_ImeKy*8tiy6G`7sgobC`K^?Vh-~a*kC)cQ1c_6K*QzP3 zf-R`*^tgBzU~e#I0-z8$31U-Sp7gkCM@DPdF96+y0YABy+c_&*g$Nr}+F?;_dpWRZ@JLk$1dxPK~yGGD@caHf6wDq6O3TmO9ug>piGds+WEa*$Ts;l@X zh>PK3_4ROHqhTL7hK&GQ)9kaHzTi+~{tj$PuNke}#3%bF%aXY)g5j^^w`Uof! zY6@N%6t;Ii(+Pz_T1?ZO4!_Mj%^^Md6(O(mT*$AAuy9TK*TDt!BP0(m+?DF#SuE>>zls*GCWFTxOt*4bvV#dD&jifm z;V8zA8#?u*V!24zt@?xobCPw)AW9}7-(4%`&I;+}tvy2*;v|12>W(9omv@O~m6Q4% z3^y$q7?di{Pv+%ngXiwp`cz-V)9sU zSyeU!R4~`2s5{G{B*?Y2@VJY*^K{QZXG?9JyP~__`vt8?;f$PIsF#B@c~BwSyU-vG ztt?1LH15y?a`g5*s729=OOXMfv@XP|;Acgm^FFfq7A-Fth=CMH8o(8Zh&%VEfN}^} z5__guNwy#8yUaE2ZxRh|71616`fNw?y(51p;{pax;ki5=cf2tc*)YX0pk`>?4wZhs zRm3m6y^f`W^YYP76>rXsLG>_Q{aC-Hm>S036do zJCzW=gpuUctnuKJTkWH>mp~#skF!kedDNGo^MLIBrukt-2;d43$wGW)F_q`&oP(9# z_3jT}1_8A~AE{+upCMZ)tz7qN`ls_}vTmR$$mgp7n_>VUZn*+t*{TGbt@(UYovn4^ zTT?(OjZxH(X|GHqvtvgdu3}GkkMnC@q%;(oC&MaY|liIzYJJf+_24u<0O;dBJApmBKsC0 z9p4{?yARGfwjca4Y;^O8m{i`U*G@5nGeB3)h*zedr*+e0K|6nllujVtiQYo+)E#$k zADHScLKBUkQ_+*|-Z1$2VRAa(x&0WBJ%t2CYrmY#E> zR?O;+oI`e#uOhX7Wz*RN`ANy_;BX9M8pNWapBH6Gq=*jqMqa*wmL?6%>qrZJtE@f5 z7{nlVOqD>0-6A7(q}j@mT!Wlu@?`5ZSXn()W+5NW^y0RO-F=WD?9>;>b=R$G8Vpq8x<(n{b3A?0iSpJ6=VJbl;hn*o(ni>f|1H+M#P&vt8 zW6YybQ1bZf6eLhe`TkK+0M9B+CF#D3aMUg&COuedKZ6tl&7C>d!7fAx2ZbsGY{5{Q z)ilmMIsMi&-$b2ssRoy5e|ZrUNapuFdAk3AK!2GWgWcav4uob~Uhn6`$_O&ag)oC{ z=dkq0TezPTi6p8J7!WgMlE=W%ChQMStCd`mYx!sm&guA&`ctsCmbRo;$fNy%K`Fwe zs3Ak`@m+c4QB(2(oySf56THWOG0D+(*nVit*;hVQ)%XK!br{7+L$GpgN#?YEJyb0G z+f%xLV~7t7cMLEVOeW)lv2!WOV|4|j^`vv|Ukg}MT{Uz+hX4o_I!#^D^1_~NaAk>1 z$3gbcv=Mk_Fd7h1OM1gbb}3_x>-K|MIS770ab}695ueqVB{9I%o){BqW6x1C!keXt z(dVhB!$qAPQ2ybS)77EtIHOu>Tw;ol6wq5;k5nlL%O>0;h_Dk;u&GK2aR(l3b{-){ zJc-Aw?%Q(ZOMLY{{{kNGR}}g8zVz>3HUMA&#lM%KgMO#)ThonomuRsowt`b19^wj_ zaGU9KJ|+KqYr2uX{_1dF-{?SJ-%fGfPJ()ZWibF4B|=NQzkhpAeteIAeL#M2a(#Jn zeSH8_YJi}+rGmYw53YEHwnYA@kl9_&7*H9n+FcdQjw6VHrMnFh_VM>jT zy`_VXZbVJCS$$!MqC?G3LkEQ(F-uti%Xmj0TU$fjh=h`Wj0~VuAQ=6*1J#UFZJ;JN znOssd0Mi+!{BM9diQgG8006Lf<6q2>0RLVKA2-gnC&0ktWw)s973sWntE3vE^WWkw z6+2}I=}}k$%JuBaD3ihxNGX7lTBzw6fD8eZL4Q%CAazD$-ytC(`3}d{@3AXDWUH^% z8E>AyvGek-1jWG%vbI1FnDtpyX@GQsHRHX0?vg`@eew?A-~Cds3le~DGYsBSR2~j= zY}tDxxEa|8P9zidS@X>MLQFwA_k74B_aW<^W*F)4rc^kqG$ zQywo4Q9ifmU{ep_K5^cC>Z|wqTk8*0$%J5E?nB4z97HOOBbGrr<0?f~n|j&#&W}cn z*Az)SF0QhIoV}Szd;6$an^|4V%yFQYc?lE>9lLt^<;Cg8g#>@aNd#F+uFJjE(W{zu zMIQ?up=;rz3F@PQy`pQZ@G|Pgp$Pk5lM@c@hGPhl_te0i2a=TrXhc84FE^zKQh!S$ z!`C-lLiZRBSXsHBSuecrNm!)lNv4;RH{2~6%6pv8wY#V7!{tXNv~Op1R%z7-N{~IF z5n1?7e_3}lN*EQc(uLfE7Ik9De5;^``kjIA0RXE<{uPGgZvcHO$SGu*d6Bm4>y33P z{Q!5$a9`cv@m~d#RX=R^g%SQpKooTW;?FKt$jYu4>GeUjqESdX%H-pfl2!x(h-i6c zP&ap*x@IG(cq8Ekez`${!1p`Scb>D$dblFRzc(}8XQppYUX0v#@$p;_i{%`9gWC-- zhv@reUVZ5Qyk5Hc?7#XX=nm2IMaA`k&V=>DN{Wb_B>$67n+& zL0Ztc^5ZzIi(uSY=X1aVxOJZU)_;ce?D#{zPk9%Vm&vv z{H_A84lR7W7P@g`K5%Zl@1A*IrOM3s942OrjM8J_vVfJ%(bE#qbAS(ofs3jESY;e2S?gwrAe_L#R| z6j~wbX{HbJD2);DO&pJ->4_;9^MoU$a;eOT?wrXI zgt^i_PKX=zS8qKCNuc zQy0G;8#HAqlIMFoi;Rrwv<$)(%eodZ-8{u1SNRr|_1`KwN=S#Sd=@cT4q>O*gv*o6 znOKq()JBW`SXOXl=H5g-5$3;!o@E9|1sbRQXo5DODBU_~70?*9nnnasl*_r(3oqea zyPpU2)9-_;DqtJ2P6J4+N*?!vSu2Kj3n?oXzFOn8 zfyWGT%2r1ebMTxXxNCA~|^8a~71N?tiG(hGh zkpJ5i4HFGO{(?yRpIVZ>GawHDU|IIR5Xt@q$agKR*X8qH_n#h3A}7{)L+r6i+R)tp zt;IV|N)lKAA%tp&5)A<{AG;wf?}*{npC&vEG5|je63VuSX@Mb7g3U>dm?OY*WsjrF z54v^_QMoFIKggW=IY0CDtQH)g3*aCHUu3p!-YB+%wO4=@Jnq~lwsb0M4J&JOW2*cN4Snin)*zi=9;SIn$pL+) z*hoWGEsCDq$3es8m-{%8PrsaepR*QB$3I5Yt?%QnhSsnQm%-=00bZvYiN-wiZ4I-R zSc_{(rr!h_&;7%r;a~F0|K*hYZ-9Q2Ut(d8NNj3G$*wns_tWTlRVj!#_P^x+|1wg2 za=rim#z=+$e~r|(0n-n|4Fx4qPEsu54h6QX4X{Ci-u3+!6Q+M&R`(ZS^}jFv{s-(E zArp#**iojcC>%(Wex7)BT7K=E-v2Ga@__u}N{P6z~A;dRAFMt2t2+G+-anRs{ z_pUvp;De|kLYm;DMeO6DgQ&&2p#notE!sF45{&fW4wtKP5v zz`yGSl!l+0fNvo@OF+?>ytIn18y7nIZ@ty>bF%C7D9*(^c~@jLU6z!J6h%%#LDh=l z4Rv!RVS?^yC8IL7;Ub1=Ekeya7lTj0Z($!WwwP{$VWAowDVLsCw;Z7eccF31Sc0Q$ zetsBE`MTMc?sj%|P1i6_*+h0Ro4fhv?6VfYlL{8J!(bcjL!Ld|>>q=>eNT{Ur#6vZ zZmkCUgftZ}{v{^Lqo7nr+G6H6-&mobqgAkyUrbTDRO){E4zm`Ns=>QTPyV*Q| zPOfY9?KdH!Q!&?LHNrPH@ow6?kLnEIz?d5vr0Lt6bK+J z^eL#~1ym_$ZL6I@d2#0*x_-|~D-UYY4)2aj!ZW|7bZ ziS|NO3e^Fr%JfPE=vq-tjcS@(;wK+Qpe<`>Fc~qEG8tNN-%=B%rI2B!~VKc5KoNhh=0Xp1_@P5)e9i2I0Ubsul{gM>`n|` zePPf%P(>Yc%Q5e?cQ(ezs@RAnbX2_<0K8W;Zqbb7Q}3MRrbP=|#%1Sh&*i42XC{q$ zJwQ&rGWU-WHxsm9-0Mx7Q<<4XX3Zmp9q8+T@|-ta3~)}=ou|F?36TcyK-l>Z%D*^& zk;*=h&lwB3U7LH8PSygv&rWy0X%3uO8i;ZIVtmOhx)xaEQ^hRoW`|2Y=J8^=6S+yF z@|J^3gb1$5t3rEW&xU?YVOWWLZof`fk(nDdFN(DRmz9I=6g-gExq?@<>M^_c?R;m+ zYLFQT05>ItM*!g!E_vLZkB;4W+%$3DCVHB<%HF4{kl^VjL~Cs}e>S;Q_U9fzt4_4j zV>1nVWc~`>uNcW+_W=Hp6S9KlNH9=1IS8yEIa#jwoTvt~+Xi>qXF*1KZ zB*omhAR02bDqy9S` zx%k-!c9y1GCln}bpJF(DK0f3p2I$1IuebnE8w#lBJq7zh=vPR9##?QSj}w-US@Sa7 z=EHUarzyBJDxJ=h*Vj`7C4@j~Z*r>6may^>vL;^HB9^Ec4)GXY{qGU0dGD7?{Nw0& zxS!&U+N=?4w8|0mF{gm3PK)00os&OuFjYf*Z|9V7e$EfC?me7Hyt3*<(WLEufuLyW zO?*4oQuaFoasU9<$^L6*!@mLf?RvW(?MszR&Ak&<7cu_oxc1rh2N%~-W9u)l^i222dQ0Asb*tEJ)I3R#Uh#xypk~Tzzydp>O!Nt@Ptm%?fS{ zM1EGfIa!tCByY|U535H(XOKE`cS?LMb|ssMyqcxkd})KhKCV3j3fp)tev@Yv`VaAK z0Dv_%|ML0W4M2SpkK?%zyy^k^S`wbq2voz5tpAWI{$Jvg6*ndK`B8G}2+Qd5ba9Hr zfoy&Y4`*a}fX?DqsS$BHsbLKJoweFJF0&|0dJe54z*UXf4 zySKBdwa)c0y}IBLZ(W@Sos5J)k&kpkAXBnRFgrscnaclmgEU3jh5W`Ki>VE#j8=mc zoi$vW9@_o0o2gQcyZ1*Vv+6h;FMXhKna$MoY*XI(Ag;A7tr~md@wv z&(%Dnii+&tYh~{}2W%|lxE6TMdoii3Hxy=8)m6y`@A_N6IEuVvUSy}XLY6ED2cVBc zUmX&cz~b$Km_#w|mB}=`1ZmSko~tl@qA^Je7T4=e+Tid*pUmXLV$JcH!r*HB7!$O7|_$y$Jck$5S!XzLOw2?8V2B z{sa?^-x>I=oekeVx)=W4HU#}Er`_Lx{?;A-UISR#d1<(+{+zWI=O&|9b>aWhOPR!P z%kJ@`jD!wRZS^0Bi(9)E&swGwQ4>SKhWq;YT}@quL|p=srldH5eF=O2sO`E%?Alga zU72H|(b2Ycn726M+P?NGjjC50fzpbqH}Zp1I}v&ztuFxYiahqiN4aHyBXK>QgiXK;|?@Yg_!lR|2jq%Y0`~fO^M}>p7{x%_U+s z;4N<&tqep)gcRAwD1KVo4QIP@1Fl`ci0;&#!NSe?6H3w;|2mt+<^DA&Wc%3ogq0z) z`k}JU61ir3rFP9y<%Afn#lEj546TrYNi|GF(gdc=K;orAVofIAxd|~=$PW%GaB6h( zSfVK62OR|z<>k*9Nu{#W;Z?qOD@d~a;m#IC=e|0Xt@&cNfUoB{z8;5BxjW_Tc2-wX z2BY+ac1}t&k}zqT=z;l$myduH1LN@fYeiHRu)4BIw2U|U9)4@~0j+|qpwYG4Z9wo_ zCfmL53d5oURc#osxex~oc%!gH6Vzz8(mPr=%A}iq{@52fKZpaF5+r3_Hg&g)_m+ouYyi=Pwf7n?FtUesAj$8JWeew+%4TboEj7PiXE(95!80g4L!V{#{jKj zD6`pL)g;{gik;}3oWCUOy=t57glo%l<|x$wqCm0^yw}29d%GG-1#^N(QkPh}l6ofdBJt2HCX@ ztO~zD+ol3}oS5&+`qIJnXSwEZbxlAWr2%M&n7btcmMH~0XBMcJS~fs<9ik>3c(E2A z8*Kpbx=6NMzLxgke2Qgacuc)yB0}V0D7>i6`^n>1md9_v$BJW0ZK2j%>*^cS;u-Gh z!s;kHk<5k@ir_FcSVxm;v*wQuB?;vV;CtzLd$9-4O*Y<-gEK_u99I1aByaMU1U zzoJTr!~FRmfE}&NJ@7h&<;yh-i2%BkwJoN!%aX@0Ik{q{Li{rgm$r1E1nZn~gB0-* z5DG@g;H9T`kghN=sC>xbni1G(?_LmD4_cbORK*xUDs;w7vI}<{MD9y8u+88FUvLVT z(d7G7noN@xdUV+n9k#BWNbSKuxe*o40*yHNK>uJ%;$DMrXVrsV0(^0wIl*(iy=50( z_3!Ss`rsew@du><@$ulN`WV(pZ$r7L5;75E6?rkS!5nIMxZ3@efs zbmzTAdlfeTc$P-o)?8V&2_6MmcPLDu_}n@K)?Z!#sZ!1$8H+it6jl`s3H`#a1K!Pv zcoBk52|LxUfUKC}$TjwYK6x&9gk<)M=O=dfrwjm3n1mRbPl4vK#*_Wl$BAM>jj|T& zSjx>OfvlW%6~TQxAnBno>Xelal4KJ(!-uH%GfrN(GBH9l~C(a^hIZIGeBfmXrq3bm-m&+sEDkoJC5vmz`)X`Kcr5u(GiFAeo z_;Mo8V4%tjfWaibVNackHbcLAfJ*HK2({u-aWBg%I(s%fmb+)~fjhWZ-Q;x%!OU>JUMe>$KB3=X~Tj2rPhm=4fk_~4@r*V^3rAWlWT*qqy8LX4)hnj2%J6RK0O13ID z)FI6JCsJ4`>At)YlqznKN8}Njd~M`O&4G?|sGc8VcnQ^7K*7^;G0-vWLYRLOXL~JA zm#howVzNOo)LL^yHF%+bE8qxc7-g)?v`4es+KAZ++*Z(*Ttj(ucB0XF;Biiq;>g3h zJxgkZog7oKfV<;$Tfs>Qp$%ITYqk2Ab0AUL#PW>8vP)#j>&;cP?3gn?$f^6~-R#}w zQpz}BsGceO6HURnl(LY{{;?n)a^KXMc9z~}jdIz%PHs&Chm59}u30cZU>SWsrfmuFfrt-T3Ko5JYP!ETbzINl?Oq)V-xP>>U!3W@YQ;Xd_T3 z(N)DIr*_14fmC=m*B|oCD(L|u9?Q%!JyrEEz4~T6VDBh<5Fc#eXz{=DZXxQSpM3SR z|7o~Vzqb792T;V|S|P9bEhKHT{MFzLnGTHdMIOVp?+8rd zCX4vWMh!1p{7)x%@=rq;{I`ot{I@yG`Wvv{T_myvD6!vkCI}raW=F^VD3u_^DJFvKAs!>7Klt6jMublJ zxlzq42uADn5>Tir-<$Rl3Koa7gPY#x6XG_2qBn-RCYu)bkXk3Rl)Dey@~T2gN?6bU z+8`p?UOupQ#>y!;AwCy8k11Ru5{Ly8P zZF))Ups4A5_*mn5ocUtf!(ep5X4KsIciRInBNz#YQmAm{nLRz|Qo4Tikmrew{TQ%C zWWER}tALeX#AMqw*iO#ZQC(={I%C=US@&Bcv+EULL{xxY%r+Sp#nY%cE)lt}wozUb zoo5btfoyj8k6{Cs(yzQtFkX=y{wn5CYH0*&Q>J2}Za?)R^SrAI;R|>8ps)ISj1Zw! z->&PG36zw|<}eDwhzJ8w@zd}@28G>iqOU2`y_7-F+YeaN_O;6)4=l?-yr8JXcK3>gD9d9*Pq^Oc zf_9Zf8Cihsvn5oeKrWSvJ6sA%Ic<|SE%`sB7KRLCECJ&*kN_@}Ftf;#2nkk` z^1tbw(@Ay~l~QU5XWNODKx&#we8_oFMeS+Zi*YUIFitOZR+xy3L~!OAAkb|Sarc9o zHfK@oe18F$2(Q@L;g4I=>CAkXG*5Ugmhq{Tt!5VDQU!h~73B@+%m)HqWJ4t?r4VI` z3HDD&?iEShNnGjB^onL$NsKFUfeW1G4RMJN2dkNEfpn%BATLjD%s8wSy#$ASwMljm zdm*o}N#g2Ct;Tn!llT9edBm#{6aVMn%`^TVyX5}$Si`^8`F_Ix<1rW_@ye_?E%PB~ zp*ZHl%|00Xr~i74M!FMffF7kAwA5!9hqFm4Q#c68UXioyc}PW2h9!=59t-+2qms|G z376dt?idh&&d(eOz-lP@PIC`_tPIr1q~EQ-WHcD1_y8yo{kF)HvF0r$u^V^N+>JN8 zK2GRi3lwhGIZ*tQkmO~{NzEE}**3YCrp^{#?yiG}(@bK#xKVXeLhVcNcf~YwhL=gz z^tt0|sRnB--)tvC<2OVv`tJ;Q3IMox{4eTw-cznA5!DK&*s*G4ft&g7i=GEf z-v5^8op5gZn;yk)s!5M~7-LVYK#_JmPE#nIGf$@kj&wlN!Z%I=#*M(mI8)O6H?Xv) zU-v|gEg5966Q*#36YX~UKL-)>Qi7vmet?Zxf=?=rFV2nbbLK6W)vQgwA1+C3^aPt> z>}Hw~B}?p_2k=B{n$CXyrg=!5pV?j`A_2jKJ*i|@MFJv0Gi;xmB!o*C-dLQ#pvQq9 zVIEG1K18r?I-2J_#@R2at0yRq<*t)-Wm;3GIcNaaeq!2iiu+CVXl$g~$N^1Qs%RhE z0XFzY&sOf4Y_M~;nU7n*>rS-ik8{}0DKq@m1F-77DBC{Dkj_WPuU3+SVUeEK4^CXw z$pG~}?KM=V>l(3E9(~3jTVL*uTSXEH_J!+lckG1e*843%bE9);0-@47VO4E6XV740 z1xjR-4ISdXKiy8&y-9m4QQ43ax44o*i)+8A<(&!JC}DVxr3i3ZffY1g^p976XwFO* z2;CaGle<8&%F>@N$Y%qg4t*}GxxD;;I;FD&Nix&VdP0oCKwnNiG%Fz| zJ|;CS)zsklfl_o-41#iqR`erT*^>D97&Vog*o^px1qBKKs545O$T*Utq!LSeg@21l z357X%fU>!R|As0oX{4f*WaM2{|Ai*LMnb$sl@&M(H&e4Z{1j^#tiF=}kHdkX>Z%Rz z_iSu$=IVCK_BMd=PC3MX*!W+ACQ4IySZQX*tDm%h&wH|bl84=wyC9{!8XO^*HxTl z9o|o4j^|l<_3K+vzpVX*iK=FE4*v)*>OAsuVbz>#{xY{z&Mq?ZI^WhKnl)WQn(btV zN4wewL#@MG%hKMTT%;_WdOX%P>1dewyqD}*_P=CAOnv_Ayih9I!*}oB-oN5crT0jr zf-C3xTVUU}0fTHWG{`_}^@Kq|_GofS9-mpv`MPxs`#=h&zC z&+*_a2ieWRjXNe)$TDnuqT>j1NkanIK?{Mt_zCqzD3A~V`9hBWMCPGx{lsb4f@fWo z>Z@@3=g~u|FFHY!)f;zC?QF&A3(!i#6;oIq1uR%8D)89ovdN_4X6g6uVgK000pk(uDv3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cmake.h.i b/CMakeLua/.hg/store/data/_source/cmake.h.i new file mode 100644 index 0000000000000000000000000000000000000000..09e503c74470ba49abe9d5b9f1401071592641fb GIT binary patch literal 6141 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 U$1bJrbKaP~mJ2_C=@2&hU)(-Rg8%>k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cmakemain.cxx.i b/CMakeLua/.hg/store/data/_source/cmakemain.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b9b5c4509b27c9caa3bfcfa55dac0a32c5f863d0 GIT binary patch literal 5119 zcwUv5S2!Guy0&NZGNVT?6QVQGCAv|fM}lBPkKPi|<73o_5)4C(ZVr?=Js?+)micqZ;1pcCI}Wv z`rFTI^P`>bZw(CO=W?IO2Lrb(O8P2QybL{Ci<^woLhhzk_N(jr=L|AN&mgs-u4EeZG5|q54C#IT7U8Wz(xH6{DDSAe&e9IJ-e_7-jJo`5)vm?UI4cT zxU5vlclVq@(&;*xzmu7@g)((3I6Om4uLR1;{9WvvnCP5%sK7iN-d$`j2i~C+eg1Km0p|cVDy*xes%Hv zg@=q!;Bvdfx3Xn(b5k8v(^0;4uxqvS7>v75OpkpN`AuEqiIfT{5e*S*!_Crx>x0G7 zDj@Fj2TDp#WOd3wo?|tr>=YH}!Ng-kJU%OEH!RZ}gc!=E zAe3vqw8}C^P{x@~0Rbu_%_w|AU&b%$@UwyW3?^IabLyKcuVyYJ*US!RcZ)ulB9a&h9?({hK)wGDR?k;k6qw zycVNAWB>l_^koDERmZn{WiMXhbyLY$HF5hVhCHecP)d1=Bu&;x1_GOJ5s3_F`U&M% z#7AD?T2A><*MPFHMu|C|mN4MB0}XKxm6BpX4@)do?R}L#4bp}Z`i=9unALA|g2RK= zTs!M>^wWH7a`$D(?$zmfEcP<5PSYGK?)S7jZgLR(uIh}E^5;%8qES@^8yCw?CX+C| zj1bZ{Lr9b+D52uu)1jSE(YuL&8g}GW9z)?HwvIQn$8rv2V>e$SiLgX=2!A3L= zpbEPLrlQ z3nXY2mJc&XR@D#A z2(GbDTVhfVs$fA+(nH5Vazt&D66tv-3q^ma+N$X_cv-j$yDYn-&++Qa5J}kFI}r^G z{)lH2!61Lz`N&~px`kAK=q#cEd{HD8-?DD$MTAWwE%{z6sK-lTp(~_N{FbM8@YOJg zI@L7lBa&493qpu*I-5Q@E))XFn#g1Q{tPb~?F`047O3Ck1y4A-px|oyUUm^0_;a}c zd4P0ORbq3Cgc5)DxjTNv$H=-ogj7YQ3G}eX?R#dNvHN&^(p%|puN_!E&)t+ZXsD3g z6b5QMoQC366x~WN1y}fob>CIX@Jd-c&iHB=j5|r;MwG7U+u|I z@K$8d5x*6S;D4gaNB+)%+vPa!`Jj0eTL0-hojI(&%eU zD2izWan+eK5JdXxHCseNxRWdBIVFiADx|x}ir|gOW&@e}SI8^t$_|Rs;A7Gf=Fmhv z2uUguybic>*9!(OAIlKV!o#zXBA|~fCeESin<*LjoxO?>Jfeu3j^2?rr9)mD4@j=Keg2-X^&mki0`X#iso zykDzP;lyd-x;#JhL{C|jE;;|waCmocwYb)vZF6bOdCLpDmVNm%(x{-88fr949oqD$ zS2W25_F{D8ukSN~)GzYPDDdBpbUV0@jbHjXL+YvnpOKm5xsZ3;o-?Rg@;7`6Ifj}# z3-3w|e1r;GI3;p=5?8VKMspcHaq#AiMcRSy8KNFZh*l&Uc$_u}{GKfClT<1Txn9fK z7m``2a5DCX9HSl9Cn~YHS8K;6eD6O2yf&opsv|Wo z-MNVOMpr)5+?ILD7Nus&J+6L5!lw4?&n~Z4T^V$V8uekQN(KiHwS9KKp>dYgk-%EJvl$S>etI2B)!Y#;D$qZ$1tOZl+$A0?*HTo ze_78rt%RBBK@W~#30HBT2@D?`ZfnFIXPldN)IeV*Il9yulW1Gp|3!CQ0+mhtTab3@ z<4C!90H4a+e>~mx~7y!|Ry~BfM)FKV+-Gz8TdC z)Jd!5+NC~1&w>;>?yS6pqevU)M#;o;+=1cFVA9-pmRF&BWm?xpe)Kr9*ylosgf|W}J{;-!m-&cvMuuOSI`z@*d^tv>1!y+5QL}X=z zBJT4zm9HWj+9|291s*Yf{M_PTjyuYmT#ue(!{wE4aSMqD0(-hp>>v#hx97?!wrhMi z`H((F&RNdaMGw|VfxyL+^A*&(q(x9V4o+R6CG{glf{aqJU=dU6VvyXY@KNBjB*gbI zosr3G>l`^F{8!Q;haHf75T{C@VueM(=c>0R!x)@XO9kr=HoIR%pt}vs6gm|ztjl5$ zHw6_!r5?9vPz-SZB^O%YYV!9B${7{IAb3ZlcP5!UQ@f%&7sQmgbxdTYXP3uSEc&s; zKe~Ym)!DvHZ7pdM@X`%g%_UX0$NI0Etlt$%zeT9-B_^dDjv3kEi*u`_Y*dI&53HDy ztz^c!mfcKMPvIV@N_E)2vid~%^TU#sqKlbDScJ(c6jYgf)5ejP;d65QC_c9_Y#}4s zsA8(y`syE?h_Ca*$vGL+l)24#gpJuoXxxBy!!!md6;h_1D*^a`Q%Rum0FfayX+5rK78p6dOBnQrr3h z(qTA2x|CC2mYr9cu{x zwS;Y4H5yAhl6avgw4EGZdmrCY)f8t_^rc!9~&n>Jbk~YLVw>I>*sOcpPXq zLj^dfB>8KNSczWEdk^unYps!H;4^I&nZhE^g7|I@F+Tn*?1f-!YWei521(}lM089M zgo$Yp#;0$^x;eIIDl#9TkgVtYWyKw)2Yehq<5Gyl44e^wDovA|$;JkD3ecZS<0IeL z6_?AewRO|RHA#e^ht#Y!ZR{Nb_g|D}-vsqg3%I=#y9`6_NcsiWk?C!D zl*%vsux&KTcw*$I4F<_K;P-rUzG*@#l8DUXcs^N8V0_9?QDj~)7DBi}R`G9N-( z-uA6w-n|iJDxh(+>okdtSR6@9s}CSaNRngg=d(Ur^~A;>Kta?Z!gFkA`F1W%KgD~C zw^%mSO6rE^wsn^HKLGb4n~vV}?zd|#?N7`Y?YfY+g|Gd=S^j`XS#sW;(qZd)W5#5c zgnKkv-5^a9gs0IXo0@7K}8*&J}Xb3GPy*CgyaX#A}p=GtV7BzjE{RE#C zK+n@VyqCa0@Bg7GsH1h4;M#dVbg)LAh1_E9`R`eWqo;jz8@mmGa`!6}@15pyx_Vmm zR6WqzHw(1we+;DMby4s?(*8w!P3fJ(%ok5E?2!U|D!4{Wg2@hZRy=s_ z=YLW+v5;eMd)-!#TiN&G1tH$bj(CfPcXPn2m?>wN4SWjgTukzLM@P0uKI=r>JK-AB z<%{>@*X50Mvusht%?Y28X8mZ6q=KFt`LT+|Z?THl>W6xQu+AY`8=#`2!1?4p)dnU+ zoW6Et?bGX;zy#BD7NNA3_Y9Y*Y~ry)7DtnoHo=R`0P+Vy32;^O|My4#BJqD%B=-M~ z|F%dgBt#G0lJ96Y1bhYFoaD~GG2k}&-xkT*!eXw!qhnyKqhqx&YZYmPbj$+~@KMyo z2L&~@WyiN=3&%Ow*xTD!6lQhhWl{#8UsY!6GjU9)<28^ob$J}T< zrNaMpQ)O^`JgP7S^(8NuBsmynmXp4>G3}LT0RRC20000000H;_00XQ50000000061|NsC0|NsBKK5>1clRlCib~>iO z4?`B>geCa^00000000000001ZoUKyJZrd;ry!$H_sSj-)RAMABprQvxR%{{G1GL=K zCxfwQi>M?TByA@s`tMyzZsGzxh7bhq?#ys^u-^H%k2<{`K&I73^V$c1Am%>>TtT3f zF;`i|?ON#?Ty`xh0b|h!&8^Z%i&e3!gkwRU1v6LoVO1m43S&u0WOKQPJ|d^Q+3fhn zVS|ecOpLhgh)C`3gX`;|hu>fbH@E)Xoj28;{K+s2dXhjTe+(V0Ie!$X$G_~LhnUEP;Dl}yCShK7L@8RB}wlb6zfQR}uNz2cY|gTD7LsmMr^}z!Uclkb#PQW8{cnj$f@h-VO(v3c zXzDKAavJgg00000000000001ZoV8bNQ`<%m{_bC~sA(b-kPT_msVQU>V?a}5du#)f z28I#R*}fv(xpyZUC*i+$?<83gkhf{-54NO6c zC9n-`!KK_DM82AE5rd{qXhh(cFd}@#1&W>WFo}qkf@j0_NT0VLh>>+kKlmbag1ft| z1w2F6uFs~4Kh@0bmoJfU=&Mu`Wz*-~X7hEU`Kqz=E9|^(HFsOh-;C%v5t4G&GFr%j zrY}3r?khaT^ERKa1f9+l*g;*R?82W^Eqy_@z+-`IJmH;TZBNf1O5 zu^^#?Xd^-jL`U5z-~wh!&0CGea=CPjdkz=V#>x1!+bCFPDvkhS1tC#BjijS(!_Rm| zB}hIo76CqoR4PGl5=BC|@WvgCOu1#h-1AK*HN1uLJ-fcE&KT#G$Nl3sdC(X=yc<_+a_JbKY z^%>@q&}X%hc&k-blD*n}tyWub8bSrbmA7Y@ z6Lx?Zqac|1ViRu3Y74=t>RT=I=BczOo&&|FRO?(&rY5#^?hESQVCnSy7}NY`dC9CT zjaJ{&a3u{h63umPuqoQ7ft+Kaur}vJsFiJ}iSvKR0)UA32pq&Uon1XXZN(u{e0}R!!O7zGwn%tv z)$YMfGMNzZ{+H(Oudg&Qdv9K$vrSEyOo@_qO5OrVKM+32UhCUCNKqkWh=;6nVxvb9 zVfi^6K(lUA{G<6s-c~D%rA&EHP5Q9+kOO~F*|l2D3Cy`f#!SSSP!?WCzEsy(7T0Kw z1()nnT&mQssvhGr3R_lsMkin!yp8>;Hl~TGwYj~pmd;hn~!Krv4FHIC6cBZ^=W)W0r?_NAiNkLR17$}jD z$Fa%|zu22~A3r5hVlq_vb6kyF*2Us9=CvA9t2o1iU8GaO6z75j*ueiN73x9SoS%a) zrt%AuBqdhv(A+~c6%VP@QvkKLc^vyJ>?dlTsGL`CUHVJEnVE(u5Ur<k+!a7YR!vWeCMx^}=^sOFLt^k-?_niP24?>o~ie>^Rq$GHo9e7n*aQ@R+1YbV!BC z-qpGReQ`?xiaK*#9OXIPF8rW|L;!a~0Y0wEIMfBj$Wd0fXP9w0wD&fs<4IR_n9hBm zPLJGSW&A&~B_)4;0C>G|XV`PQm7(=Dq0!jIP58S+&U#+Y z8+&fo`>S&ZPtLk5re$TJCbyd~UHi2%drm#)QvUWv-7KN~? zkH#^?BC(n6Bx6;3mBbikNvnV)B;)(T#KuZj5_%EU|KR>JC5CexqEGn|F zq4DV{8om(I;t<)MFS^~!p!+81y@TFm*u4n5?;Z3zQ<_T=x*V+L?WO1U-l7}*v0SYc zU*rak>4{~zfN$J1M6oj%2o(`jA!!({I=yaU;j$QL|Wt{2?XAVY!#xC%=HLbC;!fb6MtBIi4ZYFSCO#6-@ z*h@8&vVcf0qfKO6NSp6jx~WZPJ4!&X25M4N%-xr4eb$aa=mukOLsmF@E?naE^R%_( znN4dMk14LS0h$xlX_;sl6PmLT5%}6v7`ofQv@iAuIG$XYK@hxxNiG{KsAO7Wv{l{^ zZd_Tejn<+n;s2lA;zliKzk)seuxU6XmDq5hqIN8}R2lO(FQei34v~Y4%B3TExf{=q zifOxbddpS`!wc)jt+dZc$aX_FGqO1>m|D@h&T*V7)^Xo1g*I6j){J65KDe`ej$-l2 i2{}UAg>Hqc6tC?+6Q13ut?KQp``%OE^Zo!einL4LMuf}& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cmakexbuild.cxx.i b/CMakeLua/.hg/store/data/_source/cmakexbuild.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..38da4868cb077996d7eaa1b751044010f5af2815 GIT binary patch literal 1269 zcwPbZ1Pc2A0RRC20000000gxF01D#(0000000061|NsC0|NsA{uk}`D?Pe($+Qk>Q zO%ro~mmjz9696 ztL|2nNer=?*pcna({8(AR3JSr!67=Y~CV zID(E=#vJuiW+zH#K&KOta`?(6*UT!7W;ZG>QchOzanKo(JcKAi)y23FX&gk0MSTVz zQT3Y1X~CwX+&MhNgD=c_OSJXxC(Y*P27XUI!||u^^fWyA5X)B5>0BENvI5Pv98?I+O4$#|> z^Nq*AE-WYwiM4syXw2vHz*QG0J#Ac#Zmt^})x>5gAXE@@%S37d$_+oGL>Mq?;xYn! zkA<;Xj0?+Sc<7C;?(Rp>zI}v;_F&My9X+1GT-Zbv7Wj-y@Lp_!wppGEG(tz3NxK9! zft&82bA?vz-+R}+(IX{$*&E$X#Akpt1LxkWpI199mIkmZpI`#Kg;|mX*IH?xfaXWKkmbankXBF(X1$_IlFYDeU=lTlBF8QXX<<;vKRakx zH8u{z8IN#kTM-TcCBgK;#Xc}Soz-EC$n8TS?6{cL_Fj-E{vFO?!cxP}@WeG})t>{1 za+H;io^JWPTH9588gkoFS%$S#qr49L2NWRfT~H_97a&@%0-8WMg;Ypa8-bOJoV%JzWD3IvChVos*Qn?+B8xg4H=9ATPNC}L z)@3qJu!mLW<--m%eLQ@+Rg%}-2)?*qF{zTXU?LEkN@FZ!!z3Y$Sxo70ool3!4q>## zk4kMd#z0Y=1DPvRTOGcvp0Dk*x^NZJ$5kF-zR+qxh zinLR!NpnNBa!#w!4VRoDOytPobRx7k26MSKrVM9XkChRAO_t_;h5d&WMEmXu?&nB-~9qUUO5L)VHc z2JZ^zT)_G98UD5~3_cGJ%X#iN!T92P35p%DZwW2_x66V;VTpLs+-$b>?XU$5s=Qt@ f{wi6iZMA?DTS$Vppq`wbzCjfq4%UAFt8!a(YFBMn literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cmw9xcom.cxx.i b/CMakeLua/.hg/store/data/_source/cmw9xcom.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e5a588ee44f121c67bf6901b76db426027545049 GIT binary patch literal 806 zcwPY}1KIol0RRC20000000QO!00s#F0000000061|NsC0|NsBby-dRzb9kZ;K8z45 zD4qjzvhCUc00000000000001ZoUK%CZ`v>r{+?fPV^tMOn*e*!nwAeNr2`FG1Zk^k zt19Cdu$tJ&c7Uqtf8W_*eNj72n;J#o?7QdjbB|AiJFT~RJP%-~fmE}wn+*ElW9i)F8K6&)GDCQ#1FH?6WX?5cIdzHvqofy~_1mKj)9`FGJRNs}vQ^7VCUVJuKG-Ov;go6D zOfIcxVeg+9^c}l;v#Hw&z4u(utVkJDXgFxQEtcR7b*BFzpQiDITu0vhG&-rLaH*%32K1g(;;arGd_$BkghMS4BuN}Fpr z^(#=R!aG+Qh=tTu*xueu0=!!Pvx0!uQ^3>K%5!ZI)ZC)x7O#uMe}J5bv=r(@qVJU2 z$X<(&G3J^F_SbnsU0AEVbn|7~lwOsm{#WP!*86WMf9bz;03Q0TVI^#GPxdxu*lO?L kp8qi9QH0y6TSvxt6)wnbkCG{Sc?9xcG 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 n{NgVJCG=H*#c^tAz%{{dtPMC;>MDw`rr8R@Mi literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_base64.c.i b/CMakeLua/.hg/store/data/_source/kwsys/_base64.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f9e144c7e069f93924b0611b46e93b87803da2df GIT binary patch literal 2263 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 Qd)CgIOjLjW0}s=rWGv_7>;M1& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_c_make_empty_input_file.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_c_make_empty_input_file.in.i new file mode 100644 index 0000000000000000000000000000000000000000..72e5d4307a1719876baad6071a79a72b1e274dd2 GIT binary patch literal 98 zcwS>*WME`~03{$+gt8g`L%}V7zAYc`PFzv7bV6m*WuqOB)*P9~fCNe%oP8a=UE^JS c141I>J^cbgL*m^$eO%+6{ry5*{X!hL0JOOtz5oCK literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_source/kwsys/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ece37831b3bf9cad9f009c7ee49db5cd9cc783b0 GIT binary patch literal 9622 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_c_test_config.cmake.i b/CMakeLua/.hg/store/data/_source/kwsys/_c_test_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ddad10ea745e7289ba53b7480823beb12091fa03 GIT binary patch literal 158 zcwS>*WME`~fH)v7hO!y|L&3^>x3#ams@;Bh-PIqT7Kq=K^Lwn#fCMV$aF_80UMS!z zcJH!>0>`T-8%>J-E&>ah>Bw2bni7-?NACg)lR?|CLt*0EVhM*#H0l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_check_c_x_x_source_runs.cmake.i b/CMakeLua/.hg/store/data/_source/kwsys/_check_c_x_x_source_runs.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..5f215f9af116d7b98a4ed48be2bd8afdd54c905e GIT binary patch literal 949 zcwPau14{e=0RRC20000000VUZ01CqZ0000000061|NsC0|NsAkXw3;9IvOt0kKvHr z))Mu3BTHxi00000000000001ZoV`}jZrU&uedjB#(msGHI_tU|&Pr|P6> zQ5sCK8VGX2D69DQT{{Vcky1KM>x+wh&pFq}_u4swK3G$pJcF1(G3AhFOPO#;vN4B+ z%zlb7AA^|dwZIE~i$E-&mNPytFle?ADbFuEXJCCH)?H*hJVa$wWO>689gv_~q3%t; zhjD$F#fi*dH5JJe5+$9tY1iD}5mO8I_acf63b|H86{{jq1@NyAKVvE4$5e;qMJAD5 z{NlAzv0iZCFCs5g@(5%&ImyyATZ#G87Mx?UYj{K~FL0PBnj}tB6;n(_UhSpGkYSdM z#bmA7S8+KerLj54<@`#^fHgGlNaT~RA@zwJIRo=HfNRW9D$ZTy!pze6 zDQ|(>#Gx)_)N>U{irY~XI;mW3e9R{b-tF6t=UqR>ve!aFU2729q{$%WNxDRf$3pT1 z%@e#$eL!z~)2DmLR6NR9#VdKt{khW_nwIZ%59-4YG3i}x0M^TpxUAO!pibBLV&0SJ z{1sO=1`JJx_yCL_jp=hk#bR*~*3}wOso{jKr7YQVM@Iq}eY*t1`D@!zY${I7;H}N} zDk>%WX3M${RRK|uaxP8F+bzq{4LfVyH%m#q;^ zC#t!~Mox=)NA0Nb$K3e)td4lGAEGIB02z+hH(VWsEOL+#iCu=}3�tDOIP63l6;v zeWK&KM!h#H^nC=>iJ=RdPu4Jg=47@g)^xsD77ktnmttVph&rLR6aR-%~dhjjNcXPW!!`?e{x>7{F% zz1g7rRG6s8bQR|a*>)zzHLj5sk3VFW6Qjh~XgMFlIQf7+>M@ZrlYejVMCbe;4Ayt* X9}bt3C%*6)eB=WH@3qcv=BXGiBW22^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_command_line_arguments.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/_command_line_arguments.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5892b6486481a68ea914f564614e2a338fccaf64 GIT binary patch literal 5033 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 ek=Y=D{M0}|L literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_configure.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_configure.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..6b5ef93be7e7c56a54d0bca5b45a73d157e079eb GIT binary patch literal 1665 zcwPa427dVf0RRC20000000uz-01|@$0000000061|NsC0|NsBG`^m7J{biI7W|Sg1 zkYt^>G>h;600000000000001ZoUK>;PuoZk{++*Ku2d(eXdXc6wRb0B5(8F4lCvE+ zq?0ViUMH*ib-OkpRsZ;#*>xV|L7>`eXLpFiujw+GM{*+}@wX8`ze z=S(HMhcCRC_<{kx6)b@c9|~VgaqUeOmNBEH@YZfQ5vP|{mPUM33RWA}czW~zZwa=Q zkv|2p5K|@Odn2Lhw5bJ;k3cST1Tias7f?#Af?7oqrGCO>?gtDdx*M~U^jL?J zSt$ahplCaSBz_<=Nrw{(`f#412lIFentq5nN*?Od#>@|ykofG+DUd&EO=dd|Rt!Ge z+pnfH3on%ikB95J?C(FWtTg}b_iT5Af_h?apQRy>Uag@l^Bm(wDw}RN34nf1_J<57 z0_8L0uPMUF7ui>Ngx9iNuiNW7Zo7s5y|&r6&6eSsxMXJ8b8ECcPvIQ1HL%TR(Katx z1#?=RU0~anRA39i(aBIg0UckA7+jJ^IjAe!CVI-YI*H8365 zY|rMO44%K>IR61tmp_cz;$!VNYT;>{7aF&Q)iEwQ<}#=G;Q6u=4lBxhBe7^rhZhh7 zAWWWOoZ`e2G0|c1RYxHtrNjuQJQu`eh?7GWQQnj4D$;3l7O;~_J&Xg&3l;8?YQ&BB zHsIG^;b7+I9ual#`=;YvAHw(VuwlaLwmO5h**>H&044;U@n+4&`qI_+9P@fH&6%u? z-^^W3$zi5MQ^jknbXFP6=v%~@Z*&3JD)r*iqOJdEp?;ZJwt0&RhD!@CC}kx=&o_8@ zM_u7u$Ml@uz{Yg21p8v#brd>h9+#`LO6n@Sx3D=o{W*LVIGY*G=XY@OXtDD@$W#F9 zEcC?o}y$j3zK@MvuPl&9}!rAF6p_S0u$Z8$u4@A;ORiU-MWEM`d3%kew zujiQgIDB^cW|_xY7T39p;)*@0oTci4^()W2v$`k8ien|z#lY&cJ?Gl6DMhPr+b*TP zueD}d({6R!dtS(bSmrD^2;*4OqKzz;?DhM3GT&d>u3>hdENfIHpIJSis~@T~vM7R~ zDwO;(rfN$MV__7P@j}CATnya{%jd4uz4FX1rKH2BN_sa=%eysgC0s82QR2^dz`^|B z&v1Htb^?c#DbozFE*1hywj&69Y!rel#d=(oG-y#o*MZ89YrfFta+{&)s-0O7lmZht zJoqsW@r;nY*5J0~yw>7SGemnEpFS#c>AIlehI*B0nx#|S%LK76D>I(~X&!43R4C*m zkRMYRP-#eNAtuhq0-KhdP{*gI3M$WVFNqlA1L>pG7Yc7D#)qcDNH}8PRJ+r8&(ng5 z2+R7NyH6S)v?8KRs|q#}S)vqbQcj?U;}^huT7|)WZLR};?s7Mm4^6E`nF@vu$FP>6 zJ|d=wix9VXi5wprX9@(rBp;;-x^SiErf;dY&O>?>^-~oFR4&rapenv}GYnueKVEE8B=G(a*th#J zm19%vowQM^nZmM>P;fX?Rb-GQIo4l7{$R*^7rm>2vn}w|H9333`>%P@XsE&2%5K}d z7+h^hiIpzOf0{Za-eNzi1`~fuc4B@G(KUIBeuUZU+q^j6g?Fs+2I$p(FjnJBiErhz LSO5P5d*Zi(chxxH literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_configure.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_configure.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..febabc590d21b9a53bf8d50f2e070786d8ac672c GIT binary patch literal 1700 zcwPad23z?60RRC20000000v|L03GiD0000000061|NsC0|NsB-`yrL>F5_F6=o@Xs zl;$F~Mx!_Y00000000000001ZoUK^jbDKC2e)nIYHl0qJ_Uzu=TQALo5Ylk9u@7+5 z^o5Z@wsisI0TIXj>u&|d#{974ws~l=wEFg2?P|5F!TG1(_1EhmG)dSZ!O=&A(3g8> zlcGP+7s}T-AqakP5}_fTB{i7?~8xad>tSUws@5*6Vfuv4HOTEE??PmOMgp5DW;%G)((~68yPKnxd4=3k%^ppeax2EaN0V z_ojO{p1Mf09?-pJ+nVJ*{EgO>FImPBc_MKE!k4f#T7?wW08WBqzCmn`Mux55!6NP2 z9GdQf;CXAhmf<+)c5EXJO*Gpz_32Qv3!ur=o{Sx%Ul=K1@r*qYeuQ8c>5uR9)ss_e%o%lc2|S3PBpm*=PrDikGHVhG~5+G>s2k-Z8CA=JGNpLw}Bpd7O-SBAFMTax(rBC+DY9 zv5bE`xDV_uF6Ded=B9uZTv8rZGF*iHgq0byEj?FV-aA8``~)n-SMQ93DUk?*P#n;C zof&26Da@)_=a@o(_4cqz91oV1Y`a-ha*za7L6@9b`)GAjtFh;U#p34OCms9*MGKyV z(iEV7`vyDgcslIxjd5E_)P|ek4#m<6%C`ii*=hw97`Qcq@(b#{Rfsv%A;}_(NX%1J z0@idm^ju>!8EP)vZ1!iT&ZQ~Q2>cEX@<8j>am-O-RSWNnOSzBRmv%b1vD*=eW@2({ ztMWFFjM24W@3b~HxjwJr`EsAZ+7<8@Um;_U*-DiZm_8jDmh0UZ6T`X@U&HbE%XCs_ z*D0t%GvzoAa1x-oh>~&)v{8Kq#Thz$H4$iY_8Fl)*Q==NatuSqAe*-}Q$qzk}&6>gX=eFgyA{0fUW(kNN z;-aum_cj;GgE!vD(Y>#R{T97`jmjVB0{!{dhYxa&I-IZvh!q%DHLJ2@N51P|iYrlE z_mmgcy~h(wu&aiOkr4O?@^aNcaqbe-x&-!k0{@`idJJh))V=41jo9QMy+`=OIU zDbP*A^M0C!CnwS((oO}3A@c=`y!g%sx97eLaaC5@a5&bB{okg;I;p0F0w-w65&i`- z*4UEssR+p^3Ew4TMq_D%(o|y`*QRyTO{17sVSrIef9&t<;=uwxdt&r-UL)L_~05#N3)EEfoOYh-UW+C zJ(1LlcNWNnB%HrT3;MLZ@>rHYi7uqX6BhP;lIA_Kn9Og6boXF}caJ`#+0<5Uh?)&= zA;rV&3&{%(NR>B1&NXjuI(nI!ov1d!7qnxsm4{ScR6^iJX9$qcb)3?|NjA%C^$5~B}=gY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_copyright.txt.i b/CMakeLua/.hg/store/data/_source/kwsys/_copyright.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ba9f3ddd56c396641126132caac7f74bb7ccb89c GIT binary patch literal 927 zcwPaY17Q3B0RRC20000000UnD00v?J0000000061|NsC0|Ns9pP96TQnSZX7eh!=a zeg(7E;)K5d00000000000001ZoV8QUlHxWHzWXWqwmT^=nM!WSN!S9bVr(MG!*W|= zi$xV|QL>mR-ag#|c1U)wdojZ5{{Fh1xzokluZI91yC?YV`T6-1K7NP4YF*gAnXlku;npCySjy`6%$yK}H^gm&!VJQ=VfOz!ME6W{FY z*!m0XogbzY-fTF4^YPc6Lo&GD?rql+Knkb=PR0*51k=OGyI0%eAspI(4}&1bqkFUC zSLoc>TWXr9DH%-oBT3*F_^+f1-2SembG?D#JOy+RTGU8@?asZ@)h(C=07e&Vhhc<+ zo#2RIgz-o>_W#p@jNP%dgYmN;YCx`s5bhe#U4KShKS2gu-4RUhy7OSh(B3EXD~9jz z(!x7|Ux@9$&k?RX)%R|w}Pq`MI8&d`pa zb_Ztc@xstLpn|~#1J_V+%X*ZCO9p$qxMnc9eWW6g+xEb8G99fC_E}mgPm42NS7@5P z317t}L$uo}yc$2n5aTFN(Ft=Kj~CSF|G}~r+0NY|jUiLbZ6H*Nz%)Dj2*z+N-5E-s z%sZSO4*K{_E7I#iC{Xo6ZN4k20jqL+TWKlg zjjp9izIj&0$&BdCXUF z`64o|{)DntF{DQE6d5!lVuHYg@EU99jS?{{QE4t^v(}=no^Y@mOanDCY|Ue+brr2* zFtywwXhIpp%v0DD9N$aIF($<*0)>fX8Xn4!4+GQ>9+QeMOR?lt#_6^ul#NjQ2}dMQ z*^(fMcEgafiI!Ps3BUj?K9x<}4xWzq7{snHF0IE0A}W=Od3xLvoeB?u9cEN7oJ5jPCdI+bP0Aim@StUFey9Z9M7{%)kr zEibIMyj&KLsl=4XgzigIBdHPPw1kppO?_&f(ozb#IZBek%8Q=o%LtGk!wLlf@}u}0 zoT<$DQ35#;)`-YlZ7mLas`e-ykuX^S&j7oD{j4^jAKuK1V$C`ABHs-|n9c)0us}iN z*~=LU8llB9SjL#f$%dZ@Y_Dg>xTITB)}<6&BQrHE5=l8zHGP^9MwT(88B0k9 z6Xk+9T>A*S;R4z2WPNS$IyZ(Yg);I%mSK%X@Qa92VM3|`id&K$5m1ptn7R)HnnH9F zY&(wCOAXO2k0N&+MhGv~v5Nw@j!Wu4@ktLu!I{k8L126X0-pQPa}Pot?_)@l>K%dO z+(6)<82S!D#oNB09n~$nK(zJ&c>d3e ziv}IYgKmm;`wTF?1ETR!3q*53Jrr#Q8aU1!42_do7<4n*2x<>C813EA9=Zdh@lsbu pZZlCUcTK7P^nLJSjK}xjU#>tG{~nD!ZWS4 z#*>Ml{YZi9=Vl6bp~3vT{x8i`jWfxGqUj(HP>o|SDL^RivfTO+kvug8Z3{5f}wE9w(zOc`(u znc>fYrzmG=(}TsqPQiIfnIESCfvvldoXDo2Lr;->w6&PQ@VIGrPwUlp^_IKvdNdyA zoO`6u!y)ab=$}neQpE-B2iDJRkQkc%P)VTx*IeA~d4i`bfZDltN6^y=VF6+O1f=gV zhRPtO1F9@pQ{N9#sr33FMgRF|V21V>V?p~dB3?iQ#>`V1!oKqq=FBYFoTqFnJGo@) z>ZIYci&ku$>{=2w%UBu~GH5jo9fx@XA`{P_5qD8NueY1kTHX1i8QXinkK@Oll#9G? zFhvCOVu@QNX%C4lVSppcRZI?(8YfsNB#zCkD3z=kN0||8{IL}-J61*0QxPZ*m+0N+ zm~g>t(`9XTt&uJ}U&;?|@!Zx@Y5vpAp}o2sP`P(J;{Yna$Y>2W2e63!^*}m|1>;7R4N!qot}Qz_oO;nQgrMt zBi}nVI`WeKMciEOF$^)_z>hq!vtowc+FiCYpjd3iS&Oh(xYJ=cuD~YvkTVV7llebo zV!v#jzAU&|tKp;F;WqE$<69jD?iXEp?yso2gPc%-Bn_x9xIR!ICxZm_2uRTVd0y*wGY#)(gs$ZynU9V$gOo2n`)ZPq<)P4Ly0K)3qzYCS;!sR`t7Ep` zER9WML8s-{qk3n9ZgaEgaUN%#bH=^E&Bl~oo%L01#=ItOMi?AH@zwr53YmP9!jDcp z7Q_U_NGyrYIHnRMx@u+8^h22L)k{O|a_xN-WLTcj=9nQ))HVJjaTS(hlx4|-PGaqj)(=$G^t1GZq+*t7}rZdhHgn?(eeq?h`tLK?@>+?2A zWz_9?{++8qS~AeUN9e!0hl{{nCb~Go@J* zix=O$57jIwkL(!TkaUIk0wWZpO=eRN1-UO1$Z2)vM|gTj!K zk>UyU^GTHa<|LKk+qW;bB@HTJ@vwOKYxuhO_V6GqdWUa9@_PTE*n2~IFN?2whmN^? zXHE>==KDqtwzo4QSM7TDq;Xd7UY?w^>z%^`JT^?H!BR2(Iz0Hk3*nFVXbh%lL_e`I zn@+Ot8m%3T3p2y(A~Vy0L*K{){qDoH)}b!cB+w~ZlU`bep#0U~Qf7U#Y3v;b s-IY4>jV54nVvb;u4-Z`WABMgS<>Egw`&EItkC%T_Crs@A0|XQ`?L31qLjV8( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_directory.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_directory.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..2525f9ab083d9ed509baa9be5e3600bbc7765aba GIT binary patch literal 1003 zcwPbP0~GuK0RRC20000000XN400^4^0000000061|NsC0|Ns9}pTG5(sxU;(gpSFw zbr&18ydU@g00000000000001ZoUK)DZ`(Ey{;pqfK#DCkGO7C-uSGS_S&b&PA=^j; z3qG+02^UT)mq?dEB92;d?ZS{~X_r7Z1eqX1th; z=5x52CJ@6cP8Q?g@-|L9&}^B^rt?wggCtm%sx^nK%biqKWZbw=YDJVKE^B6mk{HuZ zD}{a(T!=#EynuID2M_bdNqje&&*I_e-D4;5BT5`x;3FaVci$nP%&Io$@W+d%D3mP3 zszuq#w?QCT%}v9yGoZoeAjm3a%(2kM(sC_XWd=bI_51M8v-<$>EY$*InPG9UwBji9 z{xYJfC4XQwTXSt#g+W92pi@!#?W&iS57QPn+|D1xQ1YaL^I=i zr*r$#N7ic1rLA_bQTmf{Wd`?%t~Tgb=CG7v3##E7#YTr7(GXCy&&W#!MjvO>WO0&; z&q33smB_BK;JVYx-T=2>pX~7fb4g{{hg-#R7n5mtCJHL^E)YkpIy^X+0q{AnC9@~- z!)xj`&26hC;t6kZgw2?wVuzG_1PmPCUBU14R9G_hN1?lq@IO_ma$GMn93vL8lIi}l zP!i|Rb8YLCYp)>^^&I&@hbL0)9kev1h;5}%fWNt&IEZO+LjadOaDM-CQRH7wbMs#=W@vC;f?>s(-ZS=-0<)#t%+k1l zrJ?fMUtsq!s=1Yrk|IN`TtS6l*z;gWDeLeumX-Xd!CHyjdvhJsXt8FNQ>#T0epubk zeJFU173OC4@p}Yk23j8uOBc~|@w)vly@B&F!G`JZeQP*QerhQF=7$Zx4Cr_yDIOdx ZC!h5o_(E6T8qvW8$DvpR{{np5zB-FE>4pFR literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_dynamic_loader.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/_dynamic_loader.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..15bd688ab321b87def60e26e4c9b2494aadf481b GIT binary patch literal 3838 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_encode_executable.c.i b/CMakeLua/.hg/store/data/_source/kwsys/_encode_executable.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f24de16740c2423738b0c3ca6ba5c057c6491ee2 GIT binary patch literal 1321 zcwPZ11=jii0RRC20000000ij(01bcu0000000061|NsC0|NsA99`^NvFs5&`o|Opb z&DuVt(v;Bv00000000000001ZoUK-EZ{j!*{?4zM(nU&W%G>rnTq%_}N>#LNK|sY; z1)-2Qja9Ib<3KsYf4{L4UN_KNX(JTuWajZRo|(tVXDff|N~Hi=g1-xUat#1KdYwf8 zm+*tixh)9bOp*ya(vh&m0&SnT8;*%Gg>UUz$D?XeXAXBs{gXJMv`1r-bF3MBQ_wX& zT?qQ_OE4UBjcP%IIXQI?^s5?Y0T+^nlN>;GJO=F%fFJ=8GvekDs6)sWEGIuDZ~?xQ z)9ZYGKA-14BIumMC;6?NFDKxkp-ZGq$3ad}!mI1k00QnsG2+;zffRHUO5#GV(S2yX zbfNnE3cYH(U48DpmSIk%&qE1hMpy(QeRQ2n#}s`KN7zg*fP3&%Z`U5ssrpajvC(~1 zJntLb=X$3D_sup`p;c{n8?~3mYC8gIy|i1+PCXX|sbK99pAm32d&jt>4heK96Rs#T z98PRWIm4L#STSVtsdLJlap)4b38YJT&cDS+o=ZF!4tv#Zt@%_N4pZm&fHDHZkc}z( zfaouEPMAx*6lD@7Hf4qy*y7!>!0~O7RpZ&)z)USM@cYJNJqy&EmNyd~O_Ud157>I( z@DT46D5wXasvL$JuW(@$dL9vP#X{+7px)vypM{!FoDa2RI3Y|1xV;!2VtIz51ZNfa z%hU;2>bo};xQu6D*hB~m(l3GijZdK!DaPw@v@kSSae%bMD6Jtejx)44 z8A8owSUR8(cJQyEpUwpRv|&92htEPV^j0jt`{Ah8FJoNJW zFzA9L(KFv?Tc&YR_f0pA(@*Q_XbCz)@SLw>Jmr9z``Q^k)T?*(wt-sc(f1IQ%s2I# zr#v@3dfd{3s8wBK*lRq0FPTRSVS^b1CR&kkK)wVB8LFv!0z`>K^1I}xfkdTqV8*En zdT(RdF&sQNWUMWo>c%6{E&s>vY}M@u2*fI9L@Skldy8N#mtP?q-=Ed#ZHxM(gJ)9I zWDrgeZH5W zeOcD2iarh8s?x|zFwD4b8FzpSE_FNoDwtO&FIws^E-YZNBH&?X&`O~U6mEcB7RzvP zLCx5C8UODyDtu-NrJuM&d^pgxx@gs+nPLGd75LlSFj#Iz`#{!ubE9h&k5rn!_Jt(Z zRl){FbXVnAW@6G9>YBE4@|-abh@tYa%{G3#%_z2=4PM9`^+f=Z!(31qeM`8uwAB-P z?`+v$oqS4yii`QF|7*WME`~fMg)fhO!y|L&3+>fyoPa%go~1r^FhR+=##6rY*{V1S;lyF6HGbD=EJk zaOu*eAdZtKbiz*f>gxIV_=hqWT@L;n)Gg#46f81HOYl+U(V3bnxjMNrXIif0QkCpf sRaiQ+@}%WbO^2y7E4lPKT~!rV9#vIftx^?L<#O0O)nq3_(>3MO0Plb}g#Z8m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_fundamental_type.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_fundamental_type.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..c68136c7e084454b13fe1e4aa528f3b8cd3def1c GIT binary patch literal 1550 zcwPYx2J!g-0RRC20000000qtf02f980000000061|NsC0|NsAneZikH9}-A?W-qL_ zv8p+9u|LcJ00000000000001ZoYh!aZ`(!?e%G&{LQBy^{UkX9(`}>8}0`H z`1&+l2k;KQa=A2o2KY}h7asV;H~clqe)Fu*VI&H#2JNBE>Cas#EW>3&8qR1vXWC5T z;%ou0h`jC1*FK-lB%GM13GW$ng{jeJpr+cM2s~f%(A5B1jspr2fX@QvFPNnv(U7q% znI=~fJRfFK&Oe-=FPBU0dql07o_oHPn@JaJ6ttK$xD#lk623+=9zfvPk(Kz{;(_$} zB$Uj8r|#&!KORA=_Y6<1!JyR}J%5BHmoqPvz!pqIByxsOckXb+AdhbdxdzXMZ=FH= z9zm_o-G}bzne@Etj(VNp5bpW|Xu)G^FzU9)53NB&^f(?o_J2ZhR*^ z$xRk0Q(TW!7WmUOB=-c`^uw0JoAX+O+rnZt+~8Vx9_qc;x6bgf)$ZKrnK0|KS_1{S zV3lN%SeQ;|G5BRq90Mk7J`FK^vtMhq^EWVHF|~oKVIEE#ZlcYS`La<1_KkcP^%2 z&I~b)EKqAHu@AYUK)_Ft7p#+v$4+Yvh#jOf&_!^vI^B;$qp`|Jc7A{C4@L(f7ERO| zOjz9BL{?!k!G!p=d2(j{v=FU#g?wLtR`VqkegNb|aaB1lrG2$9ep$6W~l|BF%1w6}5~Q81ugOW(LN z3<;K}HX>VLnueLNh=D)HJ0&*_4ZDAI`gb~}<3Tc;8oDV*4)0UDB|TOF+wEnMI8p)k z(C>Z80BNWqG7nyrLnkdUgu4v!=#2{8(~M!h@}odO-SIG&(MMe+&bqF13UXa#S|$uk zofZbFYlER6SZ^sW#xs=q1aL`J*nm**KSQ>+9LnN69(MMP-x(~joCGswr-t@zhB{_$ zzfKzC`32K6oS^=$v8F;4k6@t=MfCf$OnX|3dY63trPsMl1a?PnYN{Y4^+4Cnxf2HT zKCQ786*8!|>$Sg=1Wq~+nZrzpL4o)0Cgfo(Fw@wEZH+13HJ?7gMU4P-CWvh#>+^H_ z$BlU6fC9icLNu5YFsxL}_tA0n9&UF$+u%003>hyP6V0Hyip5my+oaVG84efCmlz&x zdbIpzQpmd!Pk`x zzPdctU_z9*T;-1)6;yURN{4(zN{M5=zU$B&uQ#t>;`PMl_t|}}41t2f!qLVPB$Z6# z(*oH#p>{_sm`@!T9*8Xu5B-Vuke@nRJ-yxU{niD}#`+S9p}{vSY# zx8+_Lw9Nx}!dfzQ>Y9Yyv8cr~;=Wch=|rNLs}<0l%^5gM(xD6c*_{TJZd#yE4qfs9 z#X=Fg3x{0QCNnly-Rh>l2Ge1NsMfP8x=nYmJCHP>>9I`Q3n$g#qgY~GE~4sUIZK(0 zO7!J4Wio0_m(!5U&N4{FzfFN}zkRFXPS+&Sg5WY>j(rAGTA~!szzcm0CP~p6FievL zo2v;kxu3C;i;Uzt%t+6r?_A>5P=0~2*OnEZNOOQYjatr;E(eWORCbt3FgO}#zN=ba1U8C=R0fHHyuLJw& AM*si- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_glob.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/_glob.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..71b0cdd7603a5c3f9e810464e891bef6e0204cc2 GIT binary patch literal 3273 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 Eb21^m9smFU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_i_o_stream.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_i_o_stream.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..6ba6c691e8c6cad568d9f969414d8f02042bbb5d GIT binary patch literal 1335 zcwPZF1<3jU0RRC20000000j2{02S2$0000000061|NsC0|NsB(&4ksM!%9*rH3>&s z!&$gw?Q`D%00000000000001ZoW)pCZ{kJ}e&<)rDW@pOrI1srK9DquOPq^!1S1=o zrmAE)_ByQ2-bL#*gx=kM@2qVwU<2low3b2)o|&DQZ{}OiwoZO~t*g-h=nMWN+^7uz zpYQEi3_rnVDyOa>fZrsEpi3WxD`qHr$NeNEN)+B(9Xp`vi(%SQ5I1U$o}ZhPolfAr zvfJU~nV?T22}j=X+~g@3%xkL8IDORNEapPeBx(X^VF;;441&Z&Oo-n^LpC9Wv8H^M zzy*w?9JgDo>2%usl9_ILJZcqkBN;(}f>$F81C*hR>=HwB%nK8r zz(q;2MR~0Lf~kMmXtYk?Ix~q0hzUflCwL54d1H=sN5dIN4qpfvry24%+Qemi_c0`x zxy*BTm$~J`(b{UqaCivs%HFD5$FQCBLE`}Ou)a*=S*-urH?2WMh}nZRX$M28ki}mc z2ZZ@FNMpPo5p-XGsy9p$#K{=r!&(nHdrCj@V7BGgxz%iRdSL0=ozpdYpVE)H>_&mB z6%Y7}Jur89P!h;Iu<1WUHHw^#NwF%p%!e~T5V6|9onXH%VY}5C+xSa2Z_0kG|9+L1 znIs}o)~0zXrUV$lqQL_57c~f3ekgjz$3(c2i?jh%&lXN&Lply+^4DLABCO{mmX9jf zeE|OU4gSt3V~biT=|!DZEA@2!+A;gOr43BWcDh~oh>I{cBJtSuDzxzF*VGLKpyG-m z9rNb5yWR5@kwj6wYRt0iFq8d`erA1gKtjw+-pNPKo!xQ%(5gKSIw*TypME?BkQ&e`&?fWdRwQH8*1)*f}QB~%ZO&;PI0huP}i)12aq*o69O zhp)=5dI4DHX@DA)WtJgK8!G3MLcd_}l7e%s-xxjpT2&>?>#~OYvUs(7n^h?bS9aJU z*^PNpE-$OFz#aCqyjr`x3^`2PFd@ec)$)SKM6j(I3Uy^Q(^7z8V8zzH8@VzG{uqSA zo^5=>?Cg(aS+gdnn-%M$yT!(v!909bnDZS95beD-Zp3&e#g_MNRa9mo|09m&>nzt7 zxS<_YNbE^-%PhN@WZ!=IVY>V(%kt{xB5y<*VO4X?Ac_fb2SgRi9Co1!UEEhb^0{WB)3}~@q6v3_*cM)nak`&cj t8o<-5_8eTYxAlCZ)_AhP=*A<9{RZj6Xt|s=M_w^@%}2HT|Gzuiu8B;0oNoXC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_m_d5.c.i b/CMakeLua/.hg/store/data/_source/kwsys/_m_d5.c.i new file mode 100644 index 0000000000000000000000000000000000000000..35ce16265d741b2521addd8764c35aaac71fd2e2 GIT binary patch literal 5654 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_process.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_process.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..7707f96bfce81ada2ddd8c4b766b7977a8c8e7ce GIT binary patch literal 4241 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_process_fwd9x.c.i b/CMakeLua/.hg/store/data/_source/kwsys/_process_fwd9x.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f6d689dcc4b5df909dfa42c89f6b4772e2e826dc GIT binary patch literal 2317 zcwPYw3G(&;0RRC20000000_+h02%540000000061|NsC0|NsAxFR$eBgb^WqG^S;9 z4bJaF5}fP+00000000000001Zob6a!bKAHTe%G%+ldU5;TG`3YK5X2yBTH1QMz#Vcqj&d{LhZRZIdn=rcuml=V<0_;Ev?kxT~0K6v(drc%Di z74ykz?B2|mF6qxcl2zZf`!o0B6)Ct1Wv&R@F=3df5J=-B;y?p@QYzFvkpY=n_TUDH z`q$&h*!_rlj>hiHavU<6+oVqxecK%mmXp417%i6eV(wTyVyj;;uq+ORK zv=HEe4O0bUf>4rxQ-uO9iGc*6!q;YbA&-2*6_RnWleb)KiISv{=`EqD%;6j*n|xcl z0=R%8KfTtTW-;*9Mia!`qsWeOm4kCu!0wHSaYNNO&lD(0A}(%0-3%FdG>YyC-BK=K z6IC1ln=}`S$9Pf$9*6?;`G%poOnA}jm;ibI@%^#+*%8=nUOLw^!Q(=CInKqNMnJt+dd%~S1{ z%!p+qqcPLeDf5)n>aCd8<5%=UNC96U#Y-7gOb5sqrip8>0ShTS#2b_V>La|jOfVFt z?IeDl>L3D@*0@(DS0VEVZ3WiAgL)oIOc*j5v@vWZA>vs1U-f|8;hCpxx}T`PI8~vEP-k@p_#JMRHki6_Tj`L3||&J zVV$d13*Z6X=AzwceFE(-&a3)}z)Mx0G*egu8T|m!h)kA%AHfnx0~d2d?_5vzo15CB6&2#QVs56E=Kv1n}W^&wLr%TzJypg(AeUXsCqwp!6jonxedMweG7 z*5}YR%-%^IceD(&!e${Kxe{HjlI! zMbsoo5i+1pQCc6PENuDvmDQvUfJZ>hx!B~!F>g>P}`e9H3b>m3rWFr%ArKj zY>p)!pa&szkCaCWQhjZgaT%a`Tem3{^NBUYb3J0tt&KN(u`sX;>?G*v^y$$k9GqKq}!ilAMtb;+|oC(pX%>>%~(I`d_w1D<_3`2|9zExRJkq`d!3zIo_wiYJ<+NDvql+p2j#Q~ zBboS-3n-L&ZpC{_rC^$6V64qJz1Qk@%QGeoCT{2uQCgVZhwbo95YOVVNoVhy9s;HaT z?y)!g$^~=u8qbFFRY_Smp)B?-xlX&kIji-}cxb(W|41~nM*Zc) zEvZ6B`D2mf%FLbcR>lQ{!mzzqx@#l5(;%4V>IsVZ(mhS0eSeC=vhBIuB!GM{j;|mL z@Z1-bOa1HGO91P@wlq?g&cd1vtzosR!*Pb5KEzLT6*0FzxC`eVz6Uwnh7VACYMQMw zN9oMwL35(d!Z{s4ZU3IyvF?Wpbs($XjI_RJ3!lJ@d=G)LfH(?%!`gzK# zugH?mX2=R>xj?hkjUJvFtushvTu=R`ZZ}4`OC06)9qsC9_Z99ox^%T~ZfmfIvPUwV z!W)M>@O<+t-1)Qi>u!^c1_az0$Fs3(?HkY_WZo_G1B&fEN#JVlH>z<{3W({C-SzzX z@7BOwUmhU}Dt*CHD2Casxqux_>wE9IERDHnU^;=UD4)CJ_0K<-UM_8NAU>5vhesQx z9D}TJ?ulJD1Z??F1oRXlAKCZle$>DZ?idM=g?(0&M_{UpZFOl!U$;p^-hG zuAPsLYfVod7{8m%ZTL5HEZcR=2sc|!Cf&+qwHY0=HtoN+CjHsF@vx2m)-!AA+WkqF zILm9jP>ujF8(v(HAqyzNF`{CdgDILtd$MpH*Y1$B%6h~4vX-wOw6j+@;*EH-(RKG; ngV9H&5fkldq4V+;L{dQVXyS?VXf#S0Ywt;r>qF~zn{NVBaus`p literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_process_u_n_i_x.c.i b/CMakeLua/.hg/store/data/_source/kwsys/_process_u_n_i_x.c.i new file mode 100644 index 0000000000000000000000000000000000000000..03cb439c1e3a8abe85ff49e1a6d1d236c61cdfb4 GIT binary patch literal 17832 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


    m`JU@P1Lq*Ufc0$itdki2eUGt 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_r_e_a_d_m_e.txt.i b/CMakeLua/.hg/store/data/_source/kwsys/_r_e_a_d_m_e.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..16f777b0cf214cac20f464be8082d5ba5dd7c44a GIT binary patch literal 383 zcwS>*WME_f14erw{>A|1{D%S$_pIIxx07t!6Q?R{nZk9LQH|Jz-(drR zmiKjCq2~qWEo_oo6~q~+a->jtz4YZHeD_Kf^Up7-pMIjN{Mqcte7o|=mm)rCRs|+W zRd1Vc`h&#e>46_S-A->eja=4v*(F!5ZH|Y!sbq}6wx|VL`g(V898G+a+TdmLQ=&;^ z&hO3z6DLo3>6g)Aw`;|^{@;gw$WK)YQTQdfP5csH+dPRqhgtg;+`lx-ZbDj@o2>HY z>|(Bu0o?Da7anPTaboR(`lGq!mk;P(zjrw|BBS^nUr1=<=~xfbqw}>s`{E5`Q()ZUS!UnTTkOtt7rxnA_)h!!XDx?&%9mYSZ@8Bjd|4_mQAq6C!o+o~ z4%!>eGrqna<+UzzUfJ~r3)Wvw-LJcPfmNHh@8>W3qW0y4pZzGFzj2201=B-0p{3h) Tgs|i=z1Y@y>@V~8dz)ne*^08+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_registry.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/_registry.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..34692de95c0d327ab36ff887745d2323cecfb78f GIT binary patch literal 3927 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_regular_expression.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/_regular_expression.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7a693cda2794f71e47222ab607dc4b78028fefbc GIT binary patch literal 10623 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 ZzrVlyaQXSPcXD`n-a9y4`)^|XRCpVHVQ2sV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_regular_expression.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_regular_expression.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..336f9ec4925152cfc1471da345e48a7694342126 GIT binary patch literal 4102 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_string.c.i b/CMakeLua/.hg/store/data/_source/kwsys/_string.c.i new file mode 100644 index 0000000000000000000000000000000000000000..07905eab5adeff225eb925d8dd15e09c81edf82f GIT binary patch literal 1477 zcwS>*WME_f1J+gs2ElF!n?dG36c|R#zo1gFo`S}t|nht+ppS;qD(b6@^E z_|^QFORn`c@8c$^2G`!0wXZ@Yfba#WL!=J$sj?I37Rz@xck-SO3kb z%xA@kmF|=C^>3TZxz|oMc>cLxk6&gK{99+g&LREzFGk! ztybF8H+gkU>ixZwD`$$t_GRwD3F-U4nHVL`Id5va^IppKn~_p?S;DqY^MAMA!dOpz z^Wwz+-yiPiW8ar^CF{3!$;2hss~u-ON%L!d{2*%glk2z6Y~{??f_K7EZ^9-`Bhl)Luy${kYbvv+T9tXA5{7cOd>t-7*8AgL!^zatprF9P0j4_Cw>V}rUtn9v>m=P`#*r&< zYu*LMh0IRuEqolZ0#*to4lgR4#9Q<@Vg+_7lsLXIQgQ1&A-2c-1KZzK*_DOC)4?)>)h z!)w!W-(R%LQx}%}Jyq7{ZtmPW$2Q$~{3c+}nOR$Em15I)x39l>PoOUM`}Km?{#(xm zJG0tp-B4YhAXB%E_s_9;`Q4jCpE^&v{r6(C)$03K?cQH4|CZIBmlwCEXs6Svy|I?n z?Vo&hp8TpGo4wzGnA8eRYzCCcCd9BWV`@74-c)w}Y{<2Ro`hRtqTIxmns%Q6})?Lv4 n?679p<3AgspB3-4dAt1MX_0LKBPr*# zDClX%_oPMu00000000000001ZoUK(&a~e4iz0a@c4LKN!9q!2{m06aQsn~`ZaCv>A zgr#m3r9nvov~guRSb}nC4?IeEIPDn%whtXAwGk}e(S+lD7>#f3vDz z{0JN63)6VOHR=|`7j(6%OGS4G#|rItU~;$}rNe8wl>9!v8P6Zt&#&Y8-Doz0uaguK zm?r6bJiNb2(iUiXpH3&UQQQW}uwrS}2=bUaZM>4`LMWACmo-f*;g!)8(@#@DZxD4< zt~1Qx3rXN{wzx}fN3&@%9DP}|>@JF^L+484f0+=BmSvM6{B~wV^yplz8X~Lsd}`@@ zM#!`YgC02b9Ty(Rqli{1?%x!oj=EWvN>UCy+FVEkx2u+>1T8AckvFj91cgM_*3@V@ z&Ec>n>zL^$VL>INH4az-jUx^No~8$OjPbN_Q~^epyFLh=u~~pI9@fgKWr=J>7cKFW zG3q^GhFjMtGPHj*RUOwQTUjJOvPK33|KjnS-lWA7r43{u^s0>@XzLIkVYkGhk6q7Ldz&SHA?vbn{OLxxWh&v_@LlxxAq0|9FM=L5k*a3S{l0qdNnoy(4FfPQD`L%}Z>(nFIMBGFVq8;a`;ON1x#nx*6mNlQ zp>k!N-@h1OxSShORx8*N9WhS|=mY-M2-Z!2Sy>dU5k3ky6ui+HBeYn3Zj&`ieyiM3 zt0b+QQcLb$pzVr)$R&=k2W8>c&M@zU707tJAFl+i!jh@Q0+s_-Z#80WCT5YDnuWybOm z`?e8FrY@G-E$}~MpV;-FJhzJ%_0NB7Frgj0QI5>7GFQbWTq)sI literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_string.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_string.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..b16635c8003dfa8217908db3f84c82387853d942 GIT binary patch literal 1196 zcwPal1XKF}0RRC20000000Xc9012i50000000061|NsC0|NsB+n|!&YB`R2OkQopw z=M!+?w=WL>00000000000001ZoUK;xZ`wK({hq(#s+}f4EZOJKR?9<7Lu(5nsro8C zDRL4AtT}dMJ5V`W zI%#)H*oU!5UHhr)rJ)pBD#NP61qe8Y8lgc^P1TZSE)s>5?#W#9YCtMj7*qP5w_2^- z9}Tse%EH^{EldG9CT7$S#9DjE{AKxk2Nh8W~gM3^Y|BUa)(TnZ#>o|HGg&};M z%pibiFpI{+r~6>m5KW(E(@8jTn;|VNN#v43y3njHnEF<8ZjrCiDFUcLio$)+QmTsR-w5Aa%&9gu7r#n*76R zH?GSi7A0z46;v3c*2Z=3uH3Er4x3`yvS{lj%dV@WiPxiGa@~P-U_F_((=uVG%B^Nv zVw4!WWLau0YyqnbRhWqGPpbLcmecDZksL=68BnFHov7AiPPNs;bDFZJ+dBGpI+;Zq z`F$v>gtPQa9&YPaH{3Y@yLDD!i9Tk6@a@=kAXEY?!cNO~*$~J#(heM_sqZ_R3Qb!$ zN|E5emQT0I_i*1|5?;}`*7We%hX)scrL0wl*0Tv;LMfV4MMZjC4R+y6xD-!C6Q7`4 z;Y(=Eex8{TcHv97jO82VBXlc#3C&OkVq{yQZTS6BPr%3F%lg_kpSI!c@SkLEk(>_? zT9&J`RF&e=&T`FCr|Tb->2%@O+kUNv9T*PZ{o{1~$Nc_&D?zlteT0Z2+DJBRoom_So3|1F#2w4$Tdbb>jFrh=!AgVH|fICb+#e z5-B;zvXS(rbExG<;C(m_s4li)4--XAr37^FxW?-+PKh?BH_OqX(JqaKnpQ2*IyLXs@V|I=!a1N00000000000001ZoF$Dh4#F@H1W!tr zSFBu8_yvfDFVLfl?HEhOL3fwJWj@H8ut>X_nI)R;MAMgu4qWhfC8%+WED^OV!qVZ? zq_pf{{gY4>9Bk)WJNQ4vv|`<49==;xOL(5b)%&`&43@mVQ?n6N^Zw>M#?k1U7(!*$ K(Vc%H_bufb;55|$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_system.c.i b/CMakeLua/.hg/store/data/_source/kwsys/_system.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2fba0330d6d7204901764af9ac59862aa161d826 GIT binary patch literal 4013 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 TPF*C{A>6Izl`(h%CM#vqAQG*Q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_system.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_system.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..cffa758949f66041cf40852aa25787618ec41470 GIT binary patch literal 1828 zcwPY{2iy1n0RRC20000000s~M02J>40000000061|NsC0|NsARTRR1@Q7_&5S&!21 zmDBwbDL={p00000000000001ZoV8fna@#f#edkwf?L1f>hwk+ymrhhgPBe)xBguCC zq=86KLQMh;0E$vO`SL_PIVm0C1tzOtb720DQV0 ztqi<`Pr{Z=bHFFdGx#i~n&}nFo~pP=If=rHVQ-WOdhk-=JQVV10WS!%r}C8+v$=(X zs8hoo!9YeK{cqf>o{~msD~c=x=%y(+4Fj4Rt`|HG5opBu1}wBo3rfS>+Wgh=aaoq( zt%nXHl^t*7<~D-_1!HcRNKHsb!q0dv3>cMo=kR+hjMZXVSRTXmVEpm?atz(G8@TQc zhuyRB&1)!yovXqEUvTL`>>O3IJQb*eIGRbj0+qmNf7ttoO5HyOp9kX`I_Jq?eAXY0 z;N*M=UAX8D$AjMG=kCx0U0e>-AKwef9}__s8Kp(c;mrdnOpi>& ztiWW=e-DD=Lm2W3kzwxhVw#EwJ+xdWEaG5R*;J()HYRp1RsF#T8 zv_5hcbN#-^@-R^{mLa zv?oem3mL1@xT4)0rCFiV+QOw2OQ=6>ERaG=_>uUVZ#&Tle^=pYR@RQRwbJCsNy=su z4!b_PO?ZVy$WwN^1N9L|QfNfI8V%m}pMvTX8e#jOo5!&D_nUNJ2gQkQ9feyGq190Aq*GnqtrS{VA*3HXwT6ZU$0 z!9O)&AZZ^4a0p{;dWJfYqqLd8-iUmeWkji|BlN1sUFSkNCFW*Or%-7EaaYCA@sJ9K z+!k6QbwaKjMb>~ur{)33kwk==VQOlv1Lz-B;gvt$$Nu*yrLeGGedpB zDuT!qy0!9NaLF~JLEuY)Z5NrFY;hB@9D5P}Qg9i08ZVW;g#x>!bAzR>!B`9e9(EzL zl5{AXIf&o4=@>hKK5R?22N4cOw$j15D%eQ@tv((DgYrEff|5yb?7aRDPEoF(%cJji zXWN&$qTUp5yTl2RrTA=1&iy^Gr2_n2x}yZi^CvXRXDq^RS5VtCJ!cK=t^v;zm|=?a zdR+V;5=x`u4(1_{_T;n8Jf!)Me7G#KZ;lkm>Hz4tD=>>(%B^Q(+KU`r;{eNP!SjT$(Jn6acjdm(72Hj*{}$&8s5J-voL21Y7sLj5~N;oi+X~}d<1Lji0UG3 zpxP4MrFC-_dWslA>4r$}81Q_gf9nKaUq3RseZ?feW`1*f=6ZmGK>{Ur3$lxNF1K`VtpvD!5f${cZWp1bR`UeF;*Ig{;{UI(|H zWbgi>-e9+X*UZqZ<%y%)3E%CMPts{HQt@+x02M})jN`#3p)JB{65XPj#^cpA(Ioh= z%GbqO{rnfdiOyL7000065C8xG005K#02S2$00000008Cy00030|NsB2*+Q={M1B_>2oQN;2v8A4MQ6nGff>Xpsgb7Aecc_ SS)nu!=r_CuaRC4gZca$zgk9wT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_system_information.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/_system_information.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cf8b26aa60c0ca06a281da7156e9b5221c7e8e1a GIT binary patch literal 27772 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 Z>I-QJfRV9YlDYETc04=?>?76M{{ec_z7GHZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_system_information.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_system_information.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..e99cc411954e000f1f748afaab6a9beacda138b2 GIT binary patch literal 4624 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_system_tools.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/_system_tools.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cab5ccb3029494d30152f723af6f128f4e0aaacb GIT binary patch literal 29121 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 z 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 P1pqLSLtt+@($@b6FL8Dk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/_system_tools.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/_system_tools.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..a26d2c97dbffbf4ab92f787720770ac106a004be GIT binary patch literal 9374 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/auto__ptr.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/auto__ptr.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..96cd8a2223322cdec5f248b0ce3edd7985c26eab GIT binary patch literal 1931 zcwPaE2Xy!V0RRC20000000&C|02ki?0000000061|NsC0|NsBpr$r|+sH1`Tw+k}| zQk=a>UWttW00000000000001ZoXuEmZ`(!^{?1=9MG8YwW7;XMho0Y1Rp%f^6WfrK zCjKO>$d$BLic647OG4`V?f1-*OOcWs$%hoE5IB69ot=5+nV02B=kie!qJ=d^o3tGBceUl8-Vjl$aTo&XY)C4fLcUHY?H-`f%Ov zy~CpJuQ%^+h7WA#+neF-^qJGbVISyjN-xhjK!{fCdkP(QWs`_29nSyZ&Y5B0NHb zy;qP?vD_yHb#V~op`?o~NrWk$sA-O%LG;S=PEHUQN$>9A`8)xuQW9}UzYqRNfrxNdq0^#8~HX$g9~}z%`Mnj01UW^szO9H-H6;7-5*H1Q~+N9m~o9 z&RejF3Z{gu(dga%Nc4Jb`twg}RZl+*dZXX3`)xWpB6mXA}_v7$x zbU*Bm`qyvi^dQOJ-R)plKzNvZcQ9;;HZk1z-+Lt^uwi_BM#NX^I|cV zSt5cR%e*h1hqBGoK=K6<)Bp1o6&Ehd=bnww*ZrvNQj}4sE>pFcWNtUEt$C7w$suzG zln|7p>XF~g<$Mgr>PbCE35Az_)oH}M{K@}$Bi)rjX}l>jDS@cMKbxg%y_Jprme&tg z;D4G2reQ9eAbRLfGCJp`P&y=+CKUxicm>L>NT>N+#s)ia=|@+xH9vq2>k%cVSuR)q>2xQnO1O)&(HIs4rn z($bob7iN`6CJ3m2=O~8grtl)-d~<3q9K?v}7tK`4|yCtF2}0d9J7}qVcMj6B^Kw z73JprnPeoHwIhCV?kwp!+LhF-)%%%_LKRO**xn0(#*s7AFXp9URw3j^oS_wDwaQ<5 z70U%0X2oq}|CW7Qsaa!K1NeOflVf62YSC(+S<{xI*8bY*rvOG|5-qxjsQvro0P1G8 zJ^m%=L~>$|xuP9sDzpK$5wtsUs1CyDs7l?-{~NBF<6LWwuXxNhF9Yw~E-$m8!)neO zNb*gGuFGmwXGIAvrDEZ-qJ)t92I#7SvKB%CU-ESA${#GvBV&`nRWOha>)+x^E(MU2 zmJOu=Yv3->`hlgraJy_j0bPQGj1LIfr}ao0`CP~N@A|y4 z!$dT4gaD(9TN=u0rU9fJ5iBWSuJ&QCxC?EVRL%a@s?z$}k>G1>Z4G+|cDjSZrnPlM zc9_t2TOQO$-G;|k`*-{%8{+WySMF4z4zlq}&K-o$wVwm?#8%R@W^={K9TxK}LYEsB zyF0u%ZP0kR;gO?VWkQ+TQ}rn0de^L+jwAL-NHaP4I zzf16%m@9bAI`(wX@p0em$tR222$1u!alxM!;9v>E&I1`_MR9tuA1JD?GllsD#`~IN zaiBdrtJ}h(LfY*9sh^BqGB7^t(%Q_@vbwR2uP^+)3afN+cC()Wo73akxvdd$SIgV) z=`;P!`o6bs?PmKoz`+j5F66G5)##un4u*{(A;<+Uo8SIw{vSoBmI9X9!yEtr literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/hash__fun.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/hash__fun.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..4c7d1949b9b5869d30cb20ebe096c65e9ede75cc GIT binary patch literal 1030 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 Y&Yka%C-rPNd$p|lJ9PK|0f1i0JmE$*hyVZp literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__iosfwd.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__iosfwd.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..c35c0188f3e6eae8f1a2f06605485b202cec3f03 GIT binary patch literal 618 zcwPZ&0+sy$0RRC20000000Jri00nda0000000061|NsC0|Ns9osT83Y9~RK2)WL>Y zDBgCf0RW=_00000000000001ZoUKx8Yuhjs{qA3JNBW^HnX`?;Al*te<5JVSu$+Z_ zGKww7qPAotIZhb+?~~%y&HADp71-A0o^yQeV{rQYy^iAm%%oULQVs#&W`TDKKEe&t z4UrT~q-hBwwvt5d40bHix}X*cN1=x^W`o;C?NrRf{>hru&0WU(8#uD+o~U+`t#b{> z$;q8?9|E4Z_O13QPjDrqW_9TTprU|1LxH4<$_-6jBZMiv7jyMigOHGGT@43=rfJ;U zR@zNOIk?B=x`fOCQ>qColxr=S6Xi^S5?NcOxu;BN$yT+dDJ+8MdOD8)O_s1gVTdNt z@*Enbb5U!c8_HV|of~Rd70hsqjwD>~Kx8oXL+{#<(2rmgL`&=QDu^aN#&9(a0l^G~ zQQ*x-C~Sph^KdrBzS|aQWywlxC?s9)xX>)2YF|nztYvPlCDBZ9Q`5Wc!|A~3v5coQ zgG;jvOB_$o*vB*E`IiS1c6tWEIDHvpq^o-Yi$P}E5ZqD;5VPEb;w{|(v0Sg7v$Z$>;oio5X8+lS}PVH|}%8atenR8=H- zrqRwXvp==6O?Y|`9e+6N9KD*s{)1vW@_O`}^~KvQb*=w>*!-7P?YI)v!4|dOKP)Z0 EYnrttoB#j- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__iostream.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__iostream.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..a11675648b7c5320297bab32b53cfb94206996dc GIT binary patch literal 1091 zcwPZR1ibqI0RRC20000000aX701UMN0000000061|NsC0|NsAVI_n5PNygyZ@;ZZ^ zX?P%BW6Y2M00000000000001ZoUN8^Z`(EyfWP}!T#=%%gH+mv4MUSHsHQ2ikoX0X zvml=YTB0l>k|>ar9dF%#-;uKX(z=Zm)PO}(ygNR}d!g;~-@n(V*8`Xez7V9i1c2Lz za4q3I+%mNyf&$JIE#QvL1rckM9r2{jsTPH|fg7ewPo7qCEhEOwR|!fAE3;U6v4pqU zzRRn%V2eyaKOVHEFTgKjOFyMqa(OAaP^>O204LAEXh;xLQn93og@!^(cg8IBtbhy1 zl&UUmd$n3wPmO6S=7qhJ%Txg=3MNz$mP<<`;b)dH36iIcqxd^v$j;`qq6s|sv*F}^ z2F~~q9-JU>#`Ja!Or>$9;2OEap9N8j zm*~@X%ZPKkcgE5(p(%XCba)J-u`}|*spEPd4`SRqLm5`mm&DLq8RvCE;kPd&F-&F3 z7BvPfdw#ywvZ>xV8ij83w-@xzpb}(J5PiBOD;LnOYMEWYkAovi7(p`E3HkG{Km7D< zfe#;k8GwBblRSZjQ-aQegjRya1akmGp^t)=2}=#v5kLJ&7~O|nI!Y38t0!W!aob!b?LnIU= z7F^KU=v?cvrFC?|*}PIVab0`EX}80ZCGd0a)V#QM$}XE;;fS6}pJA(1vtf8AUt+V~1()rSVL^uBDD%LgSnW z(k#ts&R13wmp5MzOc>4r&l%|eq?;2=`cX8TM(FGS-o3+|*u2Gevmpxq8HLV`H-Jx{ zb_)9oIk#G-!V4xVMq(kBtTRYVmv~ZG>x6kGR#oDo!Da6b_c4Y2TP_ zGU_uzOqNcF*!j9JqWC@}?sh<_JEq3O@dZvy=T4kn5Om>0@qJF*?SK>Kh7-pZII-9| zao$b->cWZQ`<%M8_c?KHIC1=vb2IK5i=S@Fht~r5ssy>|C$y;Zrpv@U!RxrfFzI5G z3d@d&L@T$Q5fjZUk%B^r4_T3zTBjD@R^#|h(fb##K((%P3&EXKyDR&LUL9TGX{r|* zw~k*v+bu6IH~p)F2J5cDWd~^tPToO0&GE*&I&5Jl^q7ozV3cyy&0RFfCXXu-M()tyz20Q6y J{2!0!1i)Be3&;Qf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__sstream.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/kwsys__ios__sstream.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..8ca547394b152c7aeea27d88eda804212e84c23f GIT binary patch literal 1825 zcwPY^2j2Jq0RRC20000000vP202ZVG0000000061|NsC0|NsBBm$m$!0}=+fGhDqA ztQXJ0F+%bH00000000000001ZoXuEmQ`X)c{+S_l(| zGJNtFTS+w7mdBDwa}53Mw~`#cBqBh|&0K~TN7^^-?(;}iXYc5_K8*&zS;}Uq7uf*t z<-%EVcmrRkSa>M`{3b{QU+GoqrAw4OVL=uWDGIN~eP>GLm+J*za+fmhaxPNhMeTW; z#;qH8CC&F)vP|i0F2M4eE6Xhy#(rD=bVhL;tCxdbS zGb;5y4!;g3mom;z!^!Euap2Qv3_UpOjVHtY`Pbf98#+55pN*VBTQ5?Y^{&_r0l&yy z%mnobS4)YQ3^~Tf$P<*sxTa@oh`ml@hfd>wOyL7|!=>Y%_D%-QS+76%P%Uv|2SsR1 z9*{y~u^(mufx`_!EK)qBvkXf%|Ni~B(dg{K-`c2<)rmYmWq|#cFzh}WE*qG+!?rzGZ_zhCuo*VWlG%>r|*6njBx;x)SE?~?3?wG6Mp;%S60H3iVYHS^85jAkvKT`y$M+BQ5b-Znu7#kK$4XB z9s)2gXSvF4Iqsc0L+P+gg-FX}kZ^l}CSzS9_p{kXd;SC~_ZZ1-{M2G%vN(oL2Tlq0 zbP{?#iAaphmypyG$OSmxRspIa*7VTrV>FAfp3*f9G(3tCl5-Dfim6Hlwq2wR{Ltf^ zaIEA->M6uV622j0*AUWcBHc?POtNk~%eA~X09qSa*=bapeUnNMk{zvwJQ8~m;R!C- zOiqp4M#g1NnyIVMR?EQ{uCi(Ou^LRPJX)SUQNBp01dg2O}LZ6BvoE6?PHJg7-^th!Zy&1=mI zrpz|G_X^s!xjcFn6_LWeQJ#4rI3f!ugFlcGaX%~bVB3k$vRJeL510C6gFkqlgQ7dM z07flO6V_w)8FiY;k2= zr0=@-sTP6baoAmWRLK278^Ueq0iCK}wUuvF*NTbLK#D$p}Dd39)4>8#MbN27#QGW)KQQ1mt``HfWw&TK(5T&eP_6le5e;J9k!RsY*q&S=|2b2Y(& z=Sr7GqARD@n674RMRoPT|BCDGS+RlajFJzs-9t?B|Az8fVK%T_pErWpRL0ua7C3Ln z$p+l1GVhAV@vLil`7(`{uT}d8@6~Hn-k)#exd>z(0rw-mj9I+YHzB&`w( zac{eL|L#va*N7NOQveZ*Vg-}-`W~q;_H-ko-@OHm=h1Pm>4TC!8o26~7 z;8`AQjquzAiz5O@J#{N$r4<-fNCoQgSV)wGy47syTbuf)RM+)(eUFPng@a?OP`2$H z(#@P0sG*~b{cJ0zWfZ*G`dOd%5J?W*+Z84iUvz%~aBDf-09<{ZuLE52PHIWMnTFoX z;GkSSE>Q_?mrx&(V0<%b!@000000000000000000Jr000Kb0000)FE1cZ zZftoVXkm6`Aa87BAaitNAaitbb98cLVQnB|Y+-YAWpgedAXjo>a3FMOWo;mIZy;=M PZ)+fIX=`O5Ze@20CW>H~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/kwsys__stl.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/kwsys__stl.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..bb4c8f9b2c1ce4aef103a68a559fb3f9c0ed85f7 GIT binary patch literal 882 zcwPZ=1C9Iu0RRC20000000S}r00%Ar0000000061|NsC0|Ns9+qR<<^Yed}p1e=Jh zr~t4ZH%HU}00000000000001ZoUK${PunmQeebWh12h4Hl(A_a>_cQBtPyRfk`%^M zsaP9Q)SomM4Xl%J8Og0Nk>KHbaAAnyERX4g$rDZNMCJXFw__jHyrh{l#M8 z+;-4TCaeA?t}qqk7)Y5Rywr}Rgilg%4O-@%Lj0y&8^x!MVHB=|WNV7Wi2a!=*q?&t`@Fes7!S zg0dV=(FZqi8oDDt9=o1@YMYy`R^w!t4t)2_k4}5r7|jKHd;%UJva+EJK0nC8)`^_Y z8f+x`=xeXn-v@Utd0Sz@#Z04g7{yl}XhQ@gibBB%WlCfDI{KD6P%AR4 z$T}Z(>qZv`@OtkLTj&BZwQhd<{^_ zu!CEMS4?lA5}YhT(KFTuTUApUZta9y1npU~jOW%|(W6e?>GtT;Rb6=x+*6}64RJE7mEItAdCDTsl(B*vQe00$5j z45~&Ope>8`e3XtAm+JPADA@=KL@XC%dEeeuN$GBy4#p|*yghjN5?=he>Uv%}iG%Qa zI+_fVU_1=`I1R$|d=h#|a2dKo+uW6JAD6I+f9Ufw|2zo&v-Gh@8`lJ@L9p&njFc-c zueJU*Ccg|(HyK{Zh-m7ErTJfuwmi*Wu7RhjT>(9@IRBdC-CEY00en!P)c=u0?&&(< ICu6-m1;6N>zW@LL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/kwsys__stl__string.hxx.in.i b/CMakeLua/.hg/store/data/_source/kwsys/kwsys__stl__string.hxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..05730f411937e83fdad12440d1c44569fb3e93a2 GIT binary patch literal 1495 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/kwsys_header_dump.pl.i b/CMakeLua/.hg/store/data/_source/kwsys/kwsys_header_dump.pl.i new file mode 100644 index 0000000000000000000000000000000000000000..e83476db89a4dfa58474d9e19ca6bc5269feaba1 GIT binary patch literal 750 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 EP(`o2mH+?% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/kwsys_private.h.i b/CMakeLua/.hg/store/data/_source/kwsys/kwsys_private.h.i new file mode 100644 index 0000000000000000000000000000000000000000..535741fc35129d77ec4ca5bb7b26b9fa6150562f GIT binary patch literal 716 zcwPa_0yF&p0RRC20000000N8v00q|o0000000061|NsC0|NsA!vCRM2_Pq&wk;(D^ zQPsk0oB(?O00000000000001ZoUK${Ppd!>edkw9tPid6g7?+?k#JkQ616sfF@0*b zFqDn3+w3ka{rAp-)=KM}q-mDfnKLtI&fs1A`L4%t0A@Tc=iL~WV1!-Al*c&?#MVgbDcxZ1R1tu~`n+B{*w0q_ZP-HxJ z_L&xk5R1YYkdX^KvOC@d@ipl#yYg-We-cDcu~bPg5(+HWErGqPpQ|O50$GNN2vxG` z0;I_Ks#Y{h!79{imLjP_VQQq>xmGgxmM3KbmPjDAChwBJ*qL#CO&0nM-cub`IGpT} zil!NT>84HQZCb~XV`q^aH#=-bpWd&Ay-9h5e=6{*ANh0mg{QrM-_74sjPKJd;v@>E z|1IlF5-iyL5i851Hna)$Kr1J#jrb)POY0%cR?C(*nvIP}Tg})}bh;_KuZ?@m!%+#R y%}2!an>`NL6V$&tLDeZ27&IhnEH!?tOK(5k#-2e{mxixP(hjc<*Wwi)Rn_vlbWV-{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_auto_ptr.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/test_auto_ptr.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7268dbc3eef5953dd577ce6a6a9a99c13e2499c7 GIT binary patch literal 1363 zcwPZh1+4l20RRC20000000k2O01(dr0000000061|NsC0|Ns9;v>8|-+G!mXwyEM)B7}BV z$VnXHC9xyh=|zb7?R%W0ZCXO7i`BeCO)Z*6zt?J+&IZtrSm^#BBh$xF1Xv z?7;=oVX>0>HQ3Tlu1(GT%N7T0wXh7)#%+?bPLPDr@(r&fJ znYvJEACh9Og+M35VZ-+iXEWNxad5BI&{`OV!Boa+a; zclv$jdiZb*W2QrqYM>*^a}XWk(Kv}1o!JGSz3(Y*LGE-t*7V86BvbGBt3HseSaRkEPAp#4p0p9woW#dkgp7^mP2250@DHEB*8fPmJP zHEA^91ro`)4y^hQr+3+gI!vMd7q2&tK_TT-!3i83!)vW(mdryE8b7$;CP*i+e{8m7 z>S=IlFBoLUGN@m_&V|frfS>vMy}gz9&Mqh#1!hxHol1_LVAcBcoM-6Z?s3tMMHU+Q@ui7Sh0tN5^t@@B|Vq zbt^02|?_4_YQJrSdB)t5IQ1pbD_?9p~GJYW$Ma8nH0tyH_-uk^mma_alWXRZ1==4 z%`>N&_p$7m7b5rqivc^=EH<8y(zr*s|CoQ{kQ$Fk8sG(-+a@`2NcbZqhC+bcF zMwm(nq=*57hsh-5-f6vLx=RDoVU3FYTtz_(m*zs!E76(pnn}aX&f+L+ofLr8JZYTZ zr9lG2X&HP@X)`{Z-^r&_=Ht@{)4WiRsjlcsgtq3|nkD2=M7{znk|O*w9RAx|w@*b}=-G7JQTMOruwV4bTeCta9S%?DSVRxQZ8IX^E zW`WmpPi6BFpdv9wRqiyK9L-4O6X}2dxVdk->i=nO_LIZ37#uv*lKHdI_7|nNN&Hp| zXwyEoCN`Tlh)RARptoAvA1Aj-4t&&Qi;nZVyw~{@?`_1h;94ju{rJJLxqR)LSs2S< Ve(x6-V=LBKh~IJ zAWfjn&Sh`_00000000000001ZoYh%tZ`w>2{?4yBbzVh~7fc{s?Jk6@2&FB0b6X%= zRc(a^dk7Z3pz#=zt@7XZ%#82Y1m5j_*hm3;=FIb)+nl-3JnQ|cze)w*fq74iI2{1^ z;+|SJu|SW5QX2ygUP}YFP!>(;5iO)%^S<5efAVM z)aAZzJU`br@S7kRcMI4U8=lilp%VU0mzEE{w@}vN zvuXL9S@VEX6TXb5pYI>1(7*c%U;5*5|8DxV3tNjXy?_JVP*;KQB@T7gwuNI5hY^>* zfVY6#;dt;F2lcN2rSq36fZ^lmtrz{mSB^x>gDo{k2OH~p~!dUzZ^+)swOGE%^j zxwoNU#J+PqZW+{dx*%DFa1TtsV0iAfn|#)-9n z^U4Xt_Lo_vTdtOtlYW|^O|!@@eW_$nMQc$>jJ))@Y0`zhyn^N#_}0Jaj6>Szmm&+@ zr$~S^!&wV~%Eq(IGr$xxJ!iJ&40<>@ESFQZW|Yqi;`2)>b5%WmZnZCJ-AVej3r@bqOlI?h7GX;oRo^hAhta-2`9D6Pt4EQx=zOs`G0u{+9xkT?!b3V6Rp@F zJHKlRFYc(y*MF!+t?CB0UDIlztdvM`pv&wo(qb^Gi7N1}mo~m8=gm*~nbwaoCSkF% z&26k-Yv$ps@kMgPP-TRG4&?!J;at7FR^pacxALmo8MrIg+q$zdx5~yN9T{R4I#f3N z-+5~8c{bK+XN|>my7fl5l=%1V4NkbK?6O*QP!H`I{EWt0E$H>Isf&Pn5JVURfc*Xw z<4rF>izP(#_$N@(aYrchK&B;)sAh3h>WuA(etr&2J}=u zOTTtHg(f1X5Wz2f+I zlZjgECIXMDAVjnSoR4#2tg89qqu7M{!oV3m%wo^>pe3ydQ(OwD=d6sb#8lv=l=4$r zDsf9X-6CnbV1%ZLAu_|Ilz2+_FNp2aJtD0g8QCpkoazy#M;&dYXjW6Thqy$!D{up6 zj_Z8vy$Ar8CCi+Jz2ANy%uo1B9dNe(tqvD;_^W)zhrg?5cr9U3?!5|Ko+S#yptwST zkgL_!1)Y9@EbVqFy0G&~TAM|d-ch)+GeqS~Ea>V}`l}RJhW-jv5VP31Edo-6QXz?k z>HDJ9L7Q8)Ex#Et#rKN3S}Ea9CJFK=i?RyrCS9b4omWLrrZk8&k{X7p@Rv2k-Pc<) zd@6;-T)Kk?8%9|!<{j}4WJoE>{S%3WL@pgDOt;6ZgghW+vX3JC$m*+6~LZo>9 z7jdeD*`*!a-wpcH9p2nLFQAUo@euZ0;f&db|9tG>Lj$-~HZivODm>{O&e zCG6uA$*fUtsF0~;1?1tJeS@}e$&8ur?)THS-r|K;hWQ%%C~-4(r`J{_K8=eoVoz}! z0K4OkLv5!~+j~&k`-9^IHn$p4<%oTB`*<@QrQMWY1B8!+f8_YJD$oIL1>TCyUHQz< zSO18DK8qu$#gFE?zTPw6v+Kcs%{7_q$?RNx{sm-{@<_@vrACbN^^A8?s$Q3-Sc$gxp`zEo$%^{P=}}xThrj@?2!WDT7`a z(TDO>E@4XhTyf#1#30;qiMXnZr+f)v!}eTRyAF>!Cdodq_OWrnNbbYCIM(+Qf?0{# zht8h|=y90iOfap*g0i<9@&0J{V`_w_3~|ZuPT)Qe=F@8J@S6pc7t3tK;P1Ou5T~$K za;s2uW%8NY>kdR0B>E@HMN73-h+2XnXLfr31zYqeu1vta5PSDXRjhR>d~T0b!jM0c z?YZJ9Je{4MM)wOPyDxEEk9IogN+9nc%3_!?B)3f}F(j{8S&U6;Q!I$MZ7&*@gr4G= z<-iO>Ww<<$=Js=k=UI3YYZ%?i37!x{K~HXG#FdO+71zbM?-5@!c?iL0F{}pPqX0<} zT{L1gzU!%ePy%R2_B8^7i`Q7~n4&oMQucl`j33=tSe2sU zo3mIv9Vzi%OYx?ekB`T{#9l-EaG<3?aFDQ6s4YVEEvviiz|Skukr|X#QppwOZE9F9 za^i2!C|RW&UgPK2@;H`oysDq=vgyCObI#nG)S-1QSDyU1-R*GZ4x|njg~Rgu+SCO{ z*^u4cV&=-C4)05b6>T(kt{K$uef54ay@APrrE=$lsvDxEWD(m#nmy4K(`7H;{?`Pp zBN&oPy>f;`=6Kxp0l4kMaf@~rNwI^d+U2t;tk!Y;ORZ|D#V|KWmOLp_)DvCGW`29Y Nx*&di`44z!chS1UkJbPH literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_command_line_arguments1.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/test_command_line_arguments1.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..d7f20dd3f54f3c3ddbe317606bf8191ac28f7941 GIT binary patch literal 1244 zcwPbA1S9(Z0RRC20000000f)>01TD@0000000061|NsC0|Ns9^%M-y%bj;Y62s#Ls z=7srB2kvtK00000000000001ZoUK-EZ{j!*{+?ekO;;6kX=qRPWuaXuW!Wv-LOEWp zs@Mvpi6OqmPGmb!Znyva#&H5^5Bef45+t@~o_Xf+jB)+&?00=E3!pFJx$sy60KQ)j zR}zlkJ5@_h5WtZl3@+)N@WcvjyK#_4M4Q5gL2EdpdZ36@t(Y;72bYu+SIkpJxRNK1 z|L{;-zy}?r6(=h}=b?g%Uo8UEpu>Gf|H^Es6>}L2MN{SgxKRX|hXg?+5epJH2s9*Q z1Lmj)1+joosiaY_FPBT_-atEk%<3DvP%)UHVL+5eBk5>L_!)&%f{bS-U3?FyRD#~6 ziUe@o8C_hBN8t8u;MyGw+}`M>2}`QNI8{Ivgc}eQqAN=xiav-VJg!y{&!F2Lv@X!e zJ?~t0MmL)0*UqTd9uDE_)c{=RyMs}uHNJEQ2B<$C^sk0($0Vs?y}Nipz+Y>}V?}); zvs75DDRX>fo}w|woPJwf9M-LU%Kaz}2-x>axsrWB7oH+cXm3`qTyBQbi?;ivJ*aG} z04IESsP3?*v8>})3F5I`Hd00P1@ToZs+Lu+!*wj~k312lJb+f$yC=Ax3E=_Z{tBe; zaZdRhBFd;TlH@zgQmM3mkm4@+m_|w52zOlXR!F>n2&{~KI)h_tAJ+Nr%FLnMF56`~ zO);lwk(U!18>C2Q)+WhQU1WUjgrA{)2srRr0;st~x!T=M6}{?-xnBc6^u(clUrcVR z)=w;-EO?`_%~9Jm(F7k(hf_tpi2h3|21#R7o4Oq|I)^hj*0v@9D~2XD+>S=WP=}(NkSq5NbfbJ83^Ei%($4fW~;v6JpkG^d*(k??RM>6KABnfbB@Zm4sF}eS(NE0a zv53lH?+pI&yeMs}oRQ+_d}8{->M&->>fH`BdtFscQB?`H=R zUJX=!EMZmAV47wSQv{TgPq&C~_#I>I9Uaj*$1V-*Y#<4G2jw{xQc;@79Bmmhq8I;3 z`MrL6%9v)8sECbbk84$mys*ALz1rgEUI090cSLCQ4f9Q(7iEwmzPY&cEuez>WZLTI z8lwpxKkA9ss($>G$t2_9XB2EL>7+z#G4cIdvtpb3%1)-4KnU}BqfNnLyFQ~h2K=j7 z?UKgdt;#c9j4}WulEm=%f3@g54i0kj{K(pBRV%0d

    {39lhPpGJ$8>{;&%XVVlH1 zY>;@(i~_jB8#Ws2+3lGa^CxKU5$Z8-$}d@84+!(9zC~?Xb6aOx8cd~vYs{vF7}kFp GF3t3Lc}+q9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_dynamic_loader.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/test_dynamic_loader.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..67286cfac3cfa26718caf1d959530c23bc3c9e75 GIT binary patch literal 1723 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_hash_s_t_l.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/test_hash_s_t_l.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..546f4b8b15c8202622cbb0c4664748824757cc76 GIT binary patch literal 1023 zcwPbj0|5L00RRC20000000X}O00?0K0000000061|NsC0|NsBa57o=_e7|-^&zbm6 z?WL`Oc7Ip^00000000000001ZoUK*=Z`wK#|DC_$mQE9)G?cw*n?k!M9;2^l{el90 zRaK$LBo47~Vq`l&RP}$~*(rr}9h06GiO9bD+~q!>JDXPH^iMst8o*GBnIxGH0N-v$ zrGg{)#`KCv3b@lWg9|p5M3#uX6mh|+fx_FMH%geL^~l|%Y{DRqJo8r8)f2fAQnMoS0J@xmjZh$|qH;-N4-<_j-6r$&T7!^~YQ6AV zt<`Gf&8yU2B(l~Pm+A}>1jbYo#+7GE!e^W^1xh3pL0rd7Y00LArZLw`74y>3?MWKN%XW@Znb{#+$hTUL1=-pg&gDTPRCKz6i`d&rSq$N|aq!2x8mkZ4zsw|aEn38i`W<)cQ zBd0$$35{0mfaMV{VhYZDrAjrFY)LfrQfKSI0l6E6=l$;2eo#-b=V3+`Ub{T?z5j*Q`+5 z#K#5pCc@%(B<0v=)1#DC?;_;eKlPRaKIjxi-(hD~f zy|lt0AC}Z?88J;*PUCubIqHS~^#fE27Lv>|V#dpot>c`UZ}=ZReg5da9v!L~bK%`P zc(XPAdv((b!<~dk0#+hPp#9v1Xf01wG~)dfz?)E^*;n|V3tb7-zkR3{ZbhUJAa*Z+&8Pyyq{E> tSuydSu;3c0Xjxc|wuT>%hdKC_?-wZBjF%`|S7rDcj{UYN?K>vhp=>uf?yvv= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_i_o_s.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/test_i_o_s.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..57ebaa40fbac72635507192133d4662145e3d9c6 GIT binary patch literal 679 zcwPag0$BY30RRC20000000L(K015X10000000061|NsC0|Ns9rVLa=?0*~pBRCt^l zHL4y{fa|mX00000000000001ZoV}KBYuhjo#^3u>+#DG3*c{i%tE4NGu47}Ajb%{A zI)Y=%vxs8_ot&nW?z8VC*;yR&w;OpOCz2kW?sxbe+~P%?mk9%Ra*q%AMe=#1n4h^$ ztKRu^JN!NzeYn1Scm1`ED(}o$tc3KoD7e55qLM6{?vl``G)|`jw?aYe9JZA|g0r!$qJvMpd0 NE*LmZ&L4;1@0eL&Mh^f0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_process.c.i b/CMakeLua/.hg/store/data/_source/kwsys/test_process.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5cc3256076dfbbbde035dfa687b6d13b2df3dac2 GIT binary patch literal 3881 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_registry.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/test_registry.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e433f2fdc5cd426d77193eae1e2f3ffdb5a237b8 GIT binary patch literal 1203 zcwPas1Wfw?0RRC20000000eUY021&30000000061|NsC0|NsA{GVug8t@Cq1lNSj! z{N~N5q;li{00000000000001ZoZVROPx43*{?1=9Z+)X+xZ=+*pqFrnfrx0@Dlzw7 zOlcRovF-A1w?Je3-*2`>ETu{@dLOQd&31R@ndg}qwp(la=U;V|N&vT@~APm&i%@skQVGl@EdhLL*}u2p*}{d|sWxPYKatlZex?BcNHH)}_D zE{xFLCc>m{ph^~a84e8~V567-;MkU2=`a+;hC$cp+}s(^>_5PuscFr=@z8)76%Gpp zkSXyK5aFP!H*qQYAPzTu5dj;)bz5t7(5d-Xx7RfuB;Cud(QoTIT;6EVgxjWObX#}5 zrj`KR-f6ctdRtAjN?3EqrUa~Ix_l<6MS@t0$0TJRhn^`Y^HI~6)p@^G+M&MXhBg7^ zX%GoM%9v7s!e;h*5d^inowGU@(Ub^a`s zYBd-z{`7~*S?Jr)x;CE(mTf|OoA_1)fo1wW8iPwcDiY<3LV95!q`w_vF)U=8%At$g zWKkSq+Js{R?9dS$ly+b#GtFP6zLH*xQ}Bq)A79z4PGWef6iNY_mUon3+HgyDDJT&UawoSYtPO=X>*S4L;X4^@_A=2?h zO2r}%)E6sTcNr(DU^yn=|NEax=^3r0Ny7P{fsd~|>h)J2Tpc%JVPjP%!eEmg?wD>_ zF;c)vW#KG;HVeyp(+x>tria5P5-C-H`0_Tdi}|=B(+>N?a5N%3jjiEEwlP<`iC>DE?CoSSo5^+h zxgoNdEFR*hXozf{i-$Na8X{YT;vr7nLTuZ(eKLbDY2FOb=NmW!^!X;v0IfFiSGMe0 z4!@^u*E0M)t-F^0?`hw)>ST%&@6s2xe(C`6hQzk< z)25|?i3jrDW$bNQ0*}!+dA|4S;P7-0=i|}Q9?mVsr}4A0X)}?*?+K53NT=&xBC^in zu?RXQw++_y%rP=+`q7Zt(SU`njVW;5=z?{HwCtN6$+la*xSahh_XqZ6oQiL4`GnW` zzSB0}k;RXj@4rr0fi}Y4ZT}8USEpmYg-h|U!(L=`WH?dqQ{V0R;d60 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_system_information.cxx.i b/CMakeLua/.hg/store/data/_source/kwsys/test_system_information.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..c2f0143e6e20b5f825ef4b33a12e483fc48a1509 GIT binary patch literal 634 zcwPZ|0)_nm0RRC20000000KGy00w0M00000007GW|NsC0|Ns9zLM@H1)?OiV%x`f# zVH287=AbzM00000000000001ZoQ;%CkJ>O0hVS_mBe;-?hCNh0uzR6=bWzI^kuBS* zTOpH7h=pUPwnIs){`XFxprw!$6ryP6nb&V7V>h`BMIIqE);~;Pe9bq^qL(zB<{|Up zDfkjB?uWg>aMlV6V=*1eSm~5muB4Z2w{8W@mFdvmYGkSF(67^hC#Bb~nO3=spg&=2 zga|W~5z4Rt6EZ2eT!G*zw|jkn$AlY5b7RZ;D9;2B$s^bVfi2Yri8dBg3<j@8|6 zsB#N;chF4Bd!q{tcy{QC)B0Z8a(B^Z5+)h2XzZCilC^CJ6Q*B%{pLEq9N6o3yJzT5 z^_GBBSFvitd$e=1u5@52w{lBr=V6x1zW=G8V7P9bM5n=p-~>~pix-LOR;r=KgKFZj z$gnOyVks9z9WhZ6iaKDpwdKS`zE&X`qx1tyu^K;O0cy^~L!K^CUxD{om|(zv)<}O; zD;j2TEHOT6KPgNZyk-TV!u3ew_q^ObR}}R8alfuJ)1bZ;_p~u&EinydD3F<2WKO%3 zMz;>}1+(RhS1@Dq_RTwPO|``SGfm^aEv9+@KYM6>H9SygC>!KirnIG}+EG@Pi8k|?{BgG`#+&aIVKWn5irk5%vE&u=k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_system_tools.bin.i b/CMakeLua/.hg/store/data/_source/kwsys/test_system_tools.bin.i new file mode 100644 index 0000000000000000000000000000000000000000..f15b9b11694593a2c458852db67a0666d9bf2bda GIT binary patch literal 299 zcwS>*WME`~fY%HRO#h&4#{W=|RBiAyY2UR^zwa5!95LR>r!)0=Far{(n6q}0ZQfx6 z9=DfE8Xg>SFiPEe{Em`skXipV!7Wvv=LCOXuyQ%pBWcW%__MS3seFmX1^>Eb^Ifux z0vE2%{MK^E%!Pfe`_jODQ=059&Afj>|Km%=_iGbgvKwa~?OW3BvL+#sd%gYhNyZ24 zH%}`#C-p#d?^g5v%%)TOwsR}re)-~-fyLK^I9ItC>#r|vmB}1u*#6wkTIyVKbx~Z! zk~@9eO6zS>)?bVByJfiHlfl=lwmE`YHKe=-gv9^O04n+b0000000061|NsC0|NsB{o?Uum``{d_)2Y_{OOV4f{SI!5C@JnKf{zAcdcs)mGOQFPw&4QMMU#!lL>3 zSQx_3LUxt;vI>nNN7<`Y}8Dsgjc(7hY+%^G7_IHJLG|V zKj74Y>w5d_;;IdmZ{Oj%(ri|~wZE5PWb-~7aG*o#DIvU%tgi3a$b)hM;_)%CE}Ykz z)iY$OoYoul_IIJ@*LwR~t<{3B7fqGNH1Ek1pXh^U$Vui-ui2w`F^#Gq5OV52J7#UIzA%a9ZqZIqd2pkX_rO zR=#uIs&;;_HFt7b;0L7V5`lqddp*b_nB*Sg;^VLX`h@+|v+QneCKzMvd#iI+t9+?7 z^YO6hKR)iHkl8HM@jnkJad&b#U59HHJnWHx4Ll2~=j4H+YCaA{J#!49Nj#~GW4kt2 zFhyQ>2O$^y)&MU}9gG6u!9FDx4KP}S#rtUC6q5yYi?*l5yCq~DRJ1cuw%AuR z5ePVNJt7tX1;?L}8ATFHjH_wD8IU2fE$C6sg$2YLBgtOK27#$ULI`na7d7=n+&&a% zm>n->V*hgt_+t^{UJn~V-vxXzT_4cpC~)r`ubheL%)#uFU>EJV^6bY;!u#Rv-RUlt@JcE_Zc zrBwaXx{|n)Y)J1+l8|P{YJ!*~!$3O2km?!+k{QM;d@<#QIQwh-F_oYcoyy4Kla;ot z<(C)iS<^Rb*z^kjtoG0vE_%sHYk6rMKdoibegXEMbI;{m?jEZYRQuF?z%{^-2D~ln zMav;!pN4r=PebmMN~(5YDf9Mx38`v%&P`i+ zFu=y=jZP<~2$dR6?>?_4c58)+-d3t`e#+PM&S zhT3n$6MYQX#mIw7WTaJ0O3E*6W~H(68pn+lHD)^ms(a26adZAL%i#>f+3C0E`S`i-y1 zCCOaahFKAoEw}r3(=Dk6fBvZkxjj&=VoiySkP<2&e)JLjG4H#?x7`11`UD~wC z^0e{@;@b8sHVQA~r%G|W8tIYO8YNwCh{GT_Xa8lonBXtjhz4*;%m=;R?T+Dh#w^CP zxi~bC(J*F=hB41+7%^5u%M_`p%Ew`RU9!FnD_!peWE?Ut8)D)}EE4d42i-criQ}h4 z)H0x@cno98g^!X?{7yLWdBXb!jONvT3qT$RT#59|@^taKE8d4MoDfD%sxsFlp4Gr| zqm-%yy@5+T9_AE~m~*k9QI;1;=o=dBRY}MNwubfv^YVNQEsE0-pQm;GBaEj4{35lC zeuvW{DqDpUK8mszP0Nx5YiJ>5aCFbR!`_~Ji5oIoHYgw@!QJdT`a*ws^WT|e_|E@9P#)XVf!*%y-HO8^_Z6-M2h?kftu(O0i%Jv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_system_tools.h.in.i b/CMakeLua/.hg/store/data/_source/kwsys/test_system_tools.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..18d2d1b4040ec4a66f1b0f7293b9d4b056a10131 GIT binary patch literal 510 zcwPbi0RjF10RRC20000000F)L00Vmf0000000061|NsC0|NsB(qI915s`ng9kHCE zK%B-Zv5`HH<=d}A)N(@Vp*}>m=DlCuj6Hk&{aq^v019i~Y~8;Az-rCU4xVA9aHy>W ze?r+qqPDiSXRl37bKJ{O3J)yetr`y~9ZpJN%-)4vsPxkb9!7X%4ri<0I)op)pC8;O zi1jWUzwT0sjCRJNI`$y|+3(@vaA2jA_9UCogSeDeScv}+jD-&I@G_eX!w|kt=x}HH z*;UtJ53LtA5^Lq7jgkBkopRtzJ9X*zjdEz!_K329bu5;7DS%`fSQExbCN{rdP}rFx zf;>q*L9p}I{;*fx<2kn0cm~r#N?Ek@Ch{65vDl0`7qQ4F=dj2b5GV)}aa1ORO`xJ= zMb2qBH92DItvN~9ea=oBR6FS|t@LJ$to^pHQ5o%f`nKorI1BDos~g$E+`okluQHNS zUXX~+tLru6c+FK8+)EV}9cs9gd`-KaMB58J{KTBFeP A{{R30 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/kwsys/test_terminal.c.i b/CMakeLua/.hg/store/data/_source/kwsys/test_terminal.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9256991e707826e2a3946001cbe618c1d2b710d8 GIT binary patch literal 645 zcwPa80($)b0RRC20000000Kn-00e{p0000000061|NsC0|NsBI23@LBdGL3uAu

    iX$K@h>h#=T2iHrHpkIOQA_%sj zP-Qw6B1?fJ+YPq;_fhehv_N+lP#p}>I229 zT4oR^a#+EQcrwiFsP(W7=4_+8Y zFjqYEU%OAmT3KzJsH+elk`nd^3kEHk2J?`JQp6)!=$;*D1Eq7@i}AQ^+i=rShg?_V zV_oSgD5x+;$Aq+@mqaHkg$1jNu0Oix!a5_KYKJ*2=h^K3A%o~{1~5N-aCM(R1dAxi=JCT# zlypRkhh%Y|PQ$KAPs^TkgTN2oDeVMDyKkk^Ub3QV#hlQJdit3@nvZ~&%nbd#`SxQF{G{jmjTZU9XD6?t#z%WUURWM^u{Fe0^xyuDwbbVE zie|Lld$2+&bql|`NxygA!(TGK>F}4b#{We}*47nf*=qD}oOL;E^9Xt~FAzT4Pdy4~ fcrxz|e77&{9SXmzE@9BsM#1?c_#ONKMciYta&a}2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_apple_info.plist.i b/CMakeLua/.hg/store/data/_templates/_apple_info.plist.i new file mode 100644 index 0000000000000000000000000000000000000000..be44ca6f5df4a7d481adf40ac93461c561fff4d9 GIT binary patch literal 534 zcwPY(0_pt#0RRC20000000Gtj00goC0000000061|NsC0|NsBx1gSpvdi+7=)f#eV z_V$faLKa~F00000000000001ZoQ;%UZ<{a_#h;f?!O&iVyO(L2C{Y52SfU2;r)r-f z3bzCmY-UVTRPDRZG}+W9B`r^Y&-vYZk1^)rsj0O`5M9ODrT*Qx&^2H=FDh1E>S^N6 zf9eZsW`1=7JGl+9*49-gwJ=@z#MbmVLd&+TL9=<&_7Vg_PU2{xPvS&VFoZDGHGL~( z`wOAnZf9hp+{k$|3Of`E-hz;Wuc&inFbY}ds@}fLo4(ZBqROQ;`(i%8VA<}fXGIMT zJVMRe2AGVXRB98A%SzQrp{B4fD-~>OqQmo%A3s6f%j~X(W8=5yWf=N+-*?3kdb<{0gUQO>= znB@;y3CYl&phnP?E#7h=KRr~u4x;3*WME`~fN}-~Mgu6D@jn#2^b}A`nEij_+fe^+l^4Eqct42KWIzHHbArQ8XzA(& zo;ahe=XvI2pvFm$&=Y6R%b!fHy4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_c_make_v_s_macros1.vsmacros.i b/CMakeLua/.hg/store/data/_templates/_c_make_v_s_macros1.vsmacros.i new file mode 100644 index 0000000000000000000000000000000000000000..777c81e6bae622462e71fa2cfcd4af4f2a001203 GIT binary patch literal 15897 zcwS|AWl$W@u5fXO;tr*_yIXOG;>F$F-5rV*clYA%?yz`)B8$7*V!M33Z|;vb@5|&z zl8H@bPEL|fP@kYa{SOGQe}ek)>AwK=@n1Oo=vnisjw6&(nkUi4lq_DI04sm`U*Mg4 z8Gz!iubKDJ=|$#KA@}OI#1TLnaFE9nu-GFHgBC#5f}^(~$Kfzelf}k)I{X#&oE%pQ zA6NU#F0K%|2IAtO?T#5&9ETi={2}GOReZ8%rRr?rwQgYj0R&#>3c6kA38u&q5yiS$ z0{B7ifa`zQLk`LX2JGD~a(ek&{AnI4=RwTi^J7u*R$?R74XgVq6Z6>-PSEdalOLvn z{8eAefa}b|nn5CiVO)PrnA)ox--!dttgzx`T^MNO1Cx#~? zqf1b02t^oT2t`1s00Q4n*;96(JrR8oUv*E|++hWfg;4`wU+Es$Pxj}p!$qJ1NFV;W zi|T_C80(3;i7RIMJNo5fbCo(&cY#~~Z6;AnL1H|GT zcuSd`9N1j&Gw6ar+d3OF2#~oCjPz|tJAbj(M3Vk=Mqa7NIs4Hc3ehOzhiJN>|Lt5c zuPZNlr#HN&+oLrcj=1w7*7fG)JHeT?UM01DyWFW1+<&&B03SiPmYhecakA&lE=|#i z7BE%@dWk)p@HZK6H=qr><}p@=u3aBo7)?Bj`t3qhU_dg&$q;?^uGfBKUz-^JIw_1c zWS>6dTO)LBQr`yn`FbhG<)YOMO(;?;+ zt6F=xf^c7yJ1coCD4X*8s_oB@)IYqY?-l%GF9{#SML_#~(Un<^ebL!k8+5kC=OCW@ zQ(&jKatitF(lh>U4}ZT%Q6_z4QnraR$)`W?EHw@j1zHD6XyOhM(bHmOk$(NYJF9~p zxW?LHu4wt~!;TWa!j)u=%A-*K?Qj5r9rD@6#Sg7*j`3RgI6*wa2;J%SJNaWae=nNa&<14B zvT*{RJoAG6=P||WcRCMeBm^JBwduF*5~Qt&&lJmhlJ)FQ?&kN@IjrmclSc|XMq}x$ zduTteYqJyA-7S{Vl(cya{ucr6tcZJ3=iCBKyVpAjfk0=^;PA&SLjf|*|HePeu`15X zAATUvL?^IxOfOXI9;Mj+xNodcvXAhgo^cczUmvsji)hE0-*wZ1^n~|J6%|zT=iI)l z>2#|6+<%dJu4Q5On?YWI9)W0cwx$#A3gHD>)Yl>yRU~=QycyPwKmQi97z(&95R~zP(r-jM z{nc~^&9ExTnWTwb?O0R2(&EHxB(2_Efw0}$>VD446QpRw{lVM*?jIIXLZ7GUBz(C1 zvD9IF^)Y#AZnZL6e-%`0uk_)SPY2eG<7>US;};F+0LP~Ee{88JIQ44eZu?dQ$_!Qj z-IPv43ep1Ysy^2rdHUOZ93$|GY=iLiAds?jS|`+?-O_4~J^M-FMD8Gn9gtz}WmJ&y zcqEdROI0VWk*NL-1K3>hu@Y(4FB%}=4g5&__!S$2x@JM0;K=0 ze>2!QYFDu?ZelRwHaz?&^166EMtJoK0EzvPn@`abAHHMg|qji;Uo_x??i|S`uzf1_-C4TkXWNf@Z#s8 zh?R|amYsPt#4eb_1E;_WfnTCq)TH$2zO2Nsq6nBQBj4rK!-tc%BU2x~1i+Sos$+<6 z{6RKEQ;TeDSD#y6Y~i|}SCE{uC+r8e#?rv@Ve9(pAzEDXV~ z+6xZhO-Y4)QVqJMP<~>g^-GXfenS0B8vy^0 zB*>MV$-N*{%e`Qy<5{^lCH;1>NL_%|{~r^ni(EyG{1yx{q)3S{$!;*B6x(eUwrm4V zLnD`JClwTS0r#TmAVVoC1?@6H5c0m-NifR@`GX|wyO%h!h1i=g)1T;S{d>vQaZvzty{TVWjMA?y@fMJOgX7!^ zgN;I((EyGi=Wd_>b;ZA470RsHMwrnwI$-dYoERA8OrMj^Aj-*NkrVQ^VU!y{yQ}8O zq8Vtpso^7$^pcywcvB*h?Yl~sW3rUv6-v4n2%)=3I=iPF^1b)4FXJxoyAw;GE_M{7 z+B=T{MpY6~1~BwFOCY1Ps{>Y07hv zY3`zKnl?7Ln>i@WPNhA1)a1yP&kd>R#ci$%aV?WyJj#R>4b}>8M#}OeCHm-4NTD=x z$nc{;vVSsO^)CTM6=zN=V@hi@eCxE*d}8T^GwXeOv*lGZow#t)ZM?Anj!Jt(5HqE) z!SQ|+`Y@HF7`!=c+ad7T3$oG(T^)0ST$>uL{jVZ-YWrVVEx0@@`wk6qc#EEER4_IO z7i!Le>Rho^6SY}8j^&lZ_x2|~6S;&WA4lH4E#4yEeQMR`oV0JR!<76VhiG(^-?9q$ z3po)inqWQbV!fqq9Um~qHi5JUSxLCJbSXGd3+gIhxIp=8;c@T*pL5 zc=C-`3e&xbdhVu%=lg+W{IiO)f9D8<#frC#kbTo``K_z@1Up1)2IlgE932&!dV5sT ztjel-jdf3Ev2UM-(8jFqKV)`^AjcbqS_~rD8gM!0doZ^?=iyc4wrFUmXfiNVZ?Vsv zaGqf_!^?TJqSE9o1Iy!?#c}s`4>_!SH|J3OvzCEMm`J1d0^TC^-aO888OISc`Ln7- zLaX%oPD?31V|-UzmPaquvO+;d&^KBJdrpEXhF0{3_*veXs?>*q=#QWrz?a(r(nB$??Ul*?KMO*X-5nDxIt~~4g*?; zk3Zt#a#Z8mF0t<6RW@sl7;F2-YjTPFw)Uq|Hj9rK>*L~r6k5NlE_f$js=e!yj*}DN z%UN!FaFCA%%qM;mWu;m~Jt2x82mF>Vs&pg@7-B}YOgD?`jBcOHWc7e6HW;k5*anG2 zIPGNq{Sn{*J{kWMmO-e?!MZds9UPN!W!xfK=q(1uR_BTlWdrnV9?tixAh60P_SipR zJYjNyU+#i{SADtFhamqPv;T)J&f@j@`q>S=xvqzU=vr33;gY_GN+_+4x zZhf;}v{=g-i(xG(2$Z^Qof%nGyzyAvK}mUbfUw~$x~4fT7sVrjez6Sa38~~C)dY5p zb$K>O+7;Ms){bRBV*{H9K*KbB7TH^G}t&cFg9@aQ;Ew z9_L=ltYo0NeUrNB8fCsEZ@N6b7xKsckn2v}FHlNh#jFWNTGbSjPL2oK%t zPw3^Mdm1Lek56twNCLOGZ6V%FC zp;h+Ek-HrqYml1zziKjEah&cpcejmQ&$im-bm9EWE%q7Ha`Y)dQR2^iVWL(wQk(72 z!oUuz7M7um0CZ90V#<67C`rO7PWr=!Sqn1jI>3mj|-_3^s zjK>I_CpoAZIjABzCevLjCAy@w2E0^{7~LJxq)i81b7Eg(7hYx3b6rhd6q!|NaK}&0 z=k;Z`)#WZ-js#nO7NAVJ3D~Rw{3|jF0w{dEe(_w*G&k$tp-kG*ENIMJOux z^1lMA2;`n15eLARIJkf6uU&%?v)9W;!Ln%^r+tL%$vuKWZo~YzSpl{C;^j18FD;gI zjnX%0rD}GbEnYhos_WCfhg3O;ig{n+p@N>WjX=S*r@_QS`A4AcS!(>lR%?tsV^zO- zhJbL%3(@w-6HLj6fXPu6*+x4Cr-An5N++pN-I_#?dfHX5b5~k{el1bUOpTTqv)!L6 zPb68DD1OesgmW>9ITykxyqV(;`IW3ajx~2_Z;k@$KGY5rCaXa*ZLT{KYej7?%SyLN z&J~{nEY&M-yq^H_@lEkf^Z@dQlKDBYet6+g$`RKSo)d|A_LJ^H^5DQBO33dO>$w^N zE8cU(W6ht zTP!$o^&TwX03jo*H2GuIA2kH z0P~%5Kk5L9b)TE&Dno1IGzaM6<9qnxL%6tXapHBQN)l|Ap{<%C#xR*5`TxL6m8j;K z84y-9vMGlFkbtFSeHja-*1toPfYyeL2faTZ740aj4d8`^l@qU0ay1@)a(cU`dG-4` zsy^th`0VqnJ@j6Bu070NDv58icA`G1O_J}~NRx2y)S!BzUwmEjiEif0$H1uJi*L3* z^6$_e^@$L;?}@NsK>*;O#E&n{uN7Il(-Unq7*t|7rbeNZEcP>QTH&CT)KmBs`EHk4 z>(AcOPTeZ@DB0bLg!BnRN`1F$hYU)lb{wivpDKkmYwoTt8)BjY8nh>c5*K(!!40Qx zyTT2p8#}!Xr-C~H4X4Dw6ArTnVJD&Sll*zHHC{x>mDdG0v>#0R*06IOG%iB@OuW-5 zXrVLS$MmeX!``J5<%uuI{G7AX7=-g~aI>ZY7ep-dFk89)2y7F;Q832B_Jm)6AvMEgh`i9cByZ8P@-sE7suGu0yxVCpj+#rk1JO z#MSd`LL7q)5e&-C&TLOw=NT2-cKb2A0I*J>hPHS8IN5(OS`X#1$rki2UF*Z^g7Z-f zuvm|I+82y$Z~M~wrngJSDu^}s`}JCV1Ta*9B^CEK8ssNJLV1HhM7K?oT2qCXNWxK?4jvAisSK1$K`eUzi2185O;v zyg8Xf83*A$C5?FrnUM#BL8&5ZMp0m-HITY+WIWfX2pX|X>=wowlsx%`lPY+{+mY}M z>cVLlLU9pg{DJr6MHkS}kMf4QhVf4yEWGvsN9-Z0Renzzyr!`xTKF$Oltz9-kYoVa z#kjE%^4oZ-NZxT#Bcn&(2f+sX8*M}TFof_Ta7{(+)mRkn4ff(g<`9Y4;&V3{&)**x zR2NqN{0Bk3Ij;4W-i3qb8b08k`UfB)7o7j{oEr*6eyXn$GWjQ5Y6wDkvsmjdc^HIf z+ZwU-t$ubJmR=tdYFJ1&%NPg@*&vrTysE(X#`@W@MXWt@3fzj)YA{5k)W8B)!!x*D zXKbg~K#Huz4LuXH{ZB+raiImL#{=D)hpc54YEWgYAQNqt6Us~uRj)qCpwuwsZ6prv z$X&9&efg}!$Xj!auW5AmD+$E^L3JQZ9)9?i%j%}1gfROegidsiY$j~>bIaZ6C5a|x z>tAPj#Z*ersTa>EG35H@C818*8v!VlD2OZx85vxg?HLg6|Z zudg0#o;bk3xc)ujFU+-!cS0!Q&Bo`==7JEuSIh>#tv_>#w?^xwEfoeHJaPHjyfz6m zx#OLNQrX(}Dotkk_+&R<>O+&)=~d`Q5=5;Q>|NTi-_%%BiWrI)M73sjbA6(-LbMk* zMe>N~Ed#w9-GiD5Uq4HZ#)a|Zfq(#QbISww24gTzxiIj}*Ec6L3^KS~SWr(srxNd_ z6I3}4B$rdDF}wLjCsgRjRX!RAKLjz1$)Ew`G3P-}iXQwuq=qYfF^^qI&$n<(lrmR& zEh<3@KYjZt=gDtmph*#QC18FbuYy;X~m#)VgO7 zE~ABkzrm|&h1faNZ**5Gaal*m`EFgK@U0?pzhiW9FMW{m_w0)0Vm*A+=`0u_C{5}8vLB3w@1u(dZn6m^94!%)-Gqn`_*Df3k#Hp@6EW^8fkbc@BYR9 zJIkgg#-vukZ-D(bb%aVZapM?eCq^S@C@9f1vp*#_G!tDqeSk)X0hjB^n(6JUv{yjJ zP=1L^KY32gWPohqS~zCWFJKfdg=BIEd>5H7+^9)Ta~ zEIFrMlJrJ^W#%h-dRd44n`OpjG(pQ4tRA+TR2%iA<;q(GAQgK3;Sc}A5GHo1+G6=^ zd@tJ9$c~|&MZd7YeG7MdQP)cDW&8|v=k_FyFLX0#$CEV+AnhO5cH<>2pw@c&z}Y4k zwu;9-;D{6GwurA@yXH}NxBo-Phx@K|af(sK>iFJKnBNHH1kyKXhKZ7n|1Z@Gn#f8;_6ETi?{ygbwZq`VcRJIOulMhtYq_^LF2ar{`zgGPI|CA2 z+1LmW5&Ue@O*1My+xNDZQc5xp&nKeAY(5VgF#j7*P0Y_ zWbeG!!v;{B$kQ(o#FA%T${#h>Jv0Y`6{}feWrdB);``vQkAeekvG6@UN>#Tn5&x=g zQRKpbM$X~^KU6CxBBW@>Y|Rw2bdtDg!Msg2W4EazE-_ zIAuzJK_Jqp+V+b!Yu2LYVz_$i(Tj8wmb1Jr06Z$?qw}kLwgyT)PVPRg>|=lhJCUBtmiv zZ-m(hi&^w%8*2DysK_95@ z`*ok3=O*4sP0?FnRAGIImupw5lP_}iAAgX9sN%8UiK2AZ)Pq&!QLK~@$gNo!??zZj zBm3P>>raxvx3^=C%@ovnHP;YECAJtnJqa!>my^iPCd3X~g$643HBv4RgtfRwnaxL%>1^T=9yoCt zr+ix=;b08|8PQHOqhyGCnffktoBb%$P>ARmtM2B!7F@{)Ngt30T0C?s#k6eBI-gI6 zc!PPObn>FZp7spN(R^WyhH(2tLsU|PGi;9k4rDk-08{94SUEOrR@XG@XHERDO>9`# z(oCDz5E)%G*7`;=mHe7nHZqw_ka?2^%HEglJFv=~&wq8L{_cv#iNBS(w|(grO=0)Q z|C;U}RQ-d&aNYu}gZ|9E1RcIjId@PYny)-BJI~Qw#(;fjYn1#4OY-cG;GS5-l9rx- z+vs3qXW$nJ=@yc z+hWt+dH_fK;47ca{~tl(V*%1)rt6f1IJaA+l(fpY_dY;|p5pZAo`% zirVv*xqR4G;uA?m*-eR`7aaXNnaV!sXZnO$H~Cfs=hfgk_ym&b;x%=(dV!nX+-)f; z0JO-xy!-opa`DT>aq^;KU%OO}sf2XNOU?~<|LA)D_+~@d2WvHct+z+L;CWrMY|#j} z#F)8EB0=%?J;@Pg z&jay3R*oNSwy4v}l8_hyvXuqr`~edo6j-RV|}|LFZcn`JPtngMF#0 z9zc)XBYpU?s4@EHJ}O!(XLBXz6>81GA=AKw_Dg+`^{b7tj7R*H$C4mRSG$T=cSa@G zLhisbENg&K%Hp?sfNiq(>W7ww687vjEelO8rOdOQBdx0n8~bvbS1@uPdsqYe$(}-= z4pUz`Xsze1l{s)#x1%*s)BC0z6S{kgknjxr}CR~g+TmTQ_ zwsc>4mZnbH|3SkoL@<7+1^M0jRSxX5FjZF6y8|dE!k_#diehdv@Oy*5#4m>ltM76m zhcd9!TvR@h{;azfoo>e>EI$$``dK02#_JLOmhVfUhj_nc#QQ`85gx4IrWp=E;|17E z1xe=Ecb&ieV5h0gvvs&3XYtkAIvy^Sv|VLNe%M_%(HrSVsz3O<1Q{(`f7B;A`KK=$ z)!)#K_a>7FEyQDZQDx*?yV3lTQF$n*_@$!aIOs}3yK3DtTeQ&j@rXmE@#*^AVyJuh zW@$Y!Ivn{jkmZT8spxArxluuX{#RsN+IRQB_8kh*EzOYQ_t?qEdgDOrkI`ueuKER+ z8=`XP!DDQdr6_U=SqO#v#i+qHs`_bTX09A$ER^VlH(^ zd2=uCFPno))U@_+g=>1`%%d2cPf?#`0>#kf+H!hLISev&w7vwmiXW0N$p{*th9>t&Sr0~ZKLn`0L5M}Il;)MVoM9`iAQWhzu~ zg{Y}PK$c4TfL;-OA0B3a;S6EcjJ~+w;*ii7neJ6*B6LdCYn)MtU02Ibp%R)4hDikT z5TccvQer8!jx&~PaHVKA4#IY(Qk*L$J)-KEh5ojXO+jkPreIV`(nPgk6C)y2vkG12 zEFFWbvXD(fQkzXWq?tgDWa1V}XD=Ostumi5#WqKhz{~y;N5BDu)fxC)fW(pb`~38= zD0HN!sZuqNMZ`^G=tarnPn>;)Jf^fVMub=ZU5mJ8)4Tumov9O!hhd722sJR&e+|k9 zkHY9I_}vBJAS=9Q8|vj8eS#CwrxxapoFu6N`_2~O0GgT5hlrxy^;@0$w|x1Dc=QR< zs-$z$q2oK-BT z70<3>>yBdUekwMA3+3O+3LqKEavaQZ9M4kV<7DFFyx`0D3{XS?C<-PdI$P>ETdunt zVFK(?02iGzNm_{xf^Vo<{Fgok0*CkXIGD9YkK%&4h?%XibkZj?D)>G zF6fd;PwRco2&5P(IaF(#4Xx=K0pA}o4#Q;_tSrF4CBNL+147dw-xIT&=D8ycGW^@V zB%<%WCu*snC72q~9;XT!IcV~b4)$uS4~yrMyG%cgA6x6YI!^Dp;p8h2SS4I%jQb|f zyY10uKK|91Wz=o;(CvFJeZqOI&JqwkUp*V$(*#SAHcMwjzBqN)jBzVncwIUl#^rp< zqW;ryzSTT}#G}&uB9OyO#*x_cLYJf7Yi>AsB(tucDPj59vhmp!5EpGH#*ziL7lC)H z^Jcrg>gn7oSaUz_Pddicd}+S#-9yfNDdshTp{2c}EqUC^_)r}P%J~q^tPAy!UHAnp zKROmVDZ3DbEDmRQyAnD#^iD7Of&XS3kv+{=je-<}opb$fcAyI?a^~>OtjEQQ5)D7a zool)d!gH-Mmi)Zb9=s6(}YVU%I{ z%kT=6Hd#SFo^H%ZWDOz?DB1M|Tvd-oK3N3qy`*fS z*S$nX{f#;WZl8}Db1B(^lH9PxT%E#R@H@SR{OLhXtqvkn6xToH{+gHCC60PT8oYJFZ#|dla~mt}yKQYIG{w#5)Vu>ton5J9oYm57KPaf`(eZcg8+Q&?S0Y z__k-(fQCI<@AQ5fp{#!HmX~S`M6KI6p1iwUHlyo&JEneikBeGAoO(PbFVqqMUhsw) zEREO%23enc#c+HSyKWu7@|?}u z9Qw{nxhfP`u0pM*)J4g00H9BO0UpfyxQm)MP3H*C4*Fk)^A4RIrZi7zRxeS??0CA# zbiNv(tUU^KmmfNMh)M-~hl{sfas_o2gw!;MzXl9}NhZCt0*zch$m)m=K`5Z<%Bq|+ zAj*~Y?wMBLAsMN{pTI-y%gK=Q%)5W>L7l)g+p)@^uFnmv5Wl5j>DgOOcuwCcf8^SeN ztzrv(e}NC!*+D(9e$c6juk>Bs_1#%2&BzX5;t<;*^>R5w7<%q`2L!NExmI)4n(ZuoT_IAdA1~KrvX(z@a=6sjO*%Mzi3r z`nXe0^4mZ=&Qa;ZcAjhUoxfkfBYt=Ck2-s69H+0S`punB_%{YUJSjR!=7Gr;K>w84 z;Va(1O!NyQ<9DT5QGv`VOkYoXC+@9Gl$SnW-I5_dRC){br3w9sx#@L#W4F8{XWP;L zp-6LlNUBq3v)KCSk8J7>L@VcTmg{G5mJ2jutKdYT!(S71Yuk1*ylLK727<(#_C>tn zy!8eVjNy?(>zFS#P=S{Rd!8I^74@B;_j)ZTzYdcq*9{`V_t#>|It;s-xagtC zVyRb&!l&qC+L_6@tQsqR+|dVaW>v+z&hIsN(OSJ~{@+NJYDSz|#)UQafGrg!eZPfK z?t{2@x9HA7nlaCFU3)dNnnyW$VT!I+K%5bVksuBs#OK+Q5c=hA!aK)@?FWD8quCoU zBN*pxd$Q;XM-;36q=N7+=|_3%8PMX{Yjk=q{2X;SXxJn|YmVlni!1b*V9#s;X}XU+5;$=~48`hRU^+qS?dS{~yjeo!pLHjL7Fxak zJUqwtt`iuDcLVH*Q05b-?Io3|CZfA%5EZ}-VI>6_h}`7D~>zw>n8 z?5xft!o%CtSujhGQ?VvAdql_+5p}!1IdK%oV`iUkde4<(wT5FjX5~hi^S1u8(I<9x z$v)pi{eVp*hj@K+&hqE1x_!RoJ!;O^jNA2#rLfmRvW5Pdj}izc*amELi_+=nwRPyL z+duBne-5=OQFq-Pc;Gwqn0ijQ+HV{V77h$@@4fI{dF)c~I_@C9@$P-uHg(GK%JwR6 z-}I}$@d?QkPrD^hrhkCsdNXGCQ~)j8n=1phx#l_fIgEyzN5@kZ66yOo`QvE z@_R&wgociWax+Ze-DF>vGTaQKI=^Vkh;A3;z}z=(it}w|-p=cxU`(G+hhz-{KQhCU z^<)^CLQhNh8DD{Np`MlOW)@ZD4`@=^lgy@WF`38{rkO;q@~_pVa5)MujO5d6`cS?t z6^fR)e-5)NEt~P|>xD{H`bmXvj)81ke{F>_*Gr(?0KsrggNe(4flp27i7kQydDD_2u3F$|Tg#yao$ z*xL9{a&jm+Lz{8X7m~S>ggjxYF1a+Hv@S&bR(c$=VA|YA4|$%H7~_#dXH3yJ3gR{1 z(hFHGrcrh@0*>_PrYh93)XI)e%^k)Zuv~JaDCpAa6RAxKaZPd|97tYGQ}#`AW*pf% z`rf~gOGS2JYIV2zMkp7QJHFzr))_w}`5%169Rr{8;nw8H>4+tpCn;u%4ejlXnZQe4 z1Um*D+@u>*0YYY#VC@TKIjphih+q}xaMlif{>amdDmlUXJtH^}9Sy^`hk7NhX~o_T zFC`c}v2KEiKoA$j5uHgYIdGA%wrOyNBJ2YH+c5!%97`3pyt5GEiPwnD0W-Tib0drV z+y^i&&4A_3L0bD~n0a9Yz3VO2+SOUC`=5L$PzS!4x?y7y)BQp{lLlFF1v5euSi&Up z4RQtQC#(C(Ecz`u2g`{U0;4ClNCeDCC(S>ehtqGrTzY3zapW|KhCdRa%i)cKnZ9w7J>A zzP^FN7wWo6K~AcPA(m z3k1H(r4+&zf`2#}N7IH@FSfpv1ZL~gS^4oP+DKJ4;C`(z)+h+=MIuX1aLCMc7C1aO zBr1)&OJ?-ew&vT+ncxgA^MB(j?aa`1Da1fRLL(Onr&ImDupfgcK#8CyKJGbzQAfx; z#Q{wVy5ZE*gE>$c8eLf$1fc z2qISeqRlprs}}_wHZk^%bxooVy)eHL&)6a6c9LGxtkWCu$?YRp{FZ#bLKfO!1ywvu z8-q0#t1nY=3XjsWjf-*^-uG4R1QP1WPL~i}h-ikDI2w*PAV~p3Q}9*1rG2*(!EQb5 z87_F8B_W1ltup@^j-M*xCN9wU1(N|PPF=^cqA7m=LQ{jOBco-g0^>^A0;C5f?!NU$ zopVq$;RAqh8xlD!5USnGe_nqo&7jZ%9%y9qpGjtaMQlg%6jg73W<7KFtv(ST^!qM` z!T4c#9D(mvEk1KNbVp`jFo{94fbTPF4nt|1>;cMRZ7^Jj*N@+rrov+W&$R<{w4R)8 z7>yA)7+~)^w;9zNX%eysQqwNodKF3gL#vyE{mr-m+5tB5iUYa}$*kA#-iLr4#&8mn z?-~PM6=}naSJW?XyMW^SKpR11AwK2x;z zN-JweTc(PoDkP~{9(0eiEb60!lmX2qSG;si#okwD0D8?4o&L|OubBW7bPp1drXB=i z8TA9jPoAuNiUtz?)mjLh*XQa&pTUQf>mn;bs4!UZZsZ4dSSbF{f+GYXLm!r zu6l1cb^-!sdquBuSzP-e0AWEZp4?7;P@e*5>-(z)geXJBn&o9BvT2Cqdbx>ESBHY% zHH|WZq-;veh>#(tm_&WE6H!8%g|N(A(dCV+mqgNSOGK3i7i0AGUu!D1af7=cQd*Kf zT0BScR>70Brs;jF`}_c{zcgjA-NZki*46$41Q=LCPE=W%Vi40}qzOA^f!-plLl#4P z2uNwt#emLO8CsVGNPF@Ob!O+*talOt9uM^A0FTZ*Da~1Vv(9ZP&3Sp3&WreBQvz%2 zP*$}3g6r!@$DXc^R>z)v^SIICtB55PWl=$}GyDXhvDGK# z*Ix=cNqJ&?2owAR0H~=wT@IqjA4+4s9NClBv?XCbl{wl{TyP1yC)X4r3x0kg6yt!W zn~S55QiyVkr=%k*sKdoqS(OYtzP%b4_kpRlV6-MN0;c0 zV4(o{TO&g9eCHPpu7U5X{*F{79c%S5@Mh#J^Xj-j{*e}TqBFEdnd&ZaNYU)V$#=V; z&r2#WhUqsp?%8Gd=NBNwP*I>s^(p#Rp8L z4Abx*sfOZFh;e>LKOEIKo{rmPqV;Abj5q&HVEYu=KwASO*qxG~ug`*X|uf_hj* zI{4=oLYUOywo7(^#|8~_fMDHxlZ&JgR+hO@$}jJ^D!{q@tLdhBg$HwhTHTC^RqRLz zV9vO9=Hf4p@(9(k-qIgJPCH=ZUT|AHf8_d8x~%fiZ!SMl#mzn^G4hLPg$py}>bD~U z)@8KikZV;^x~JC`{!ur5Zx+BKGQOsE;=IWbA}@dJeMAk{({~@6i-KtsSD{h2*tlIu z1UY7&Cp|75d~HUdi40-4Don5QCC>=3#1GGLe8(0I0ip$=&9Q|F9PwlE3~`l(-mWX^ zRgDZU7JpT<-pYheOpCoI$;Taqaa)Fx@pNRT$~|JQX%sMHV#1i?8>>Xf?T;X@*RZg= zUezz(S61i9xv`J&kbu%w(EsPO9fWS1(_{9aHY~~c>;FG{{|B8?b*=a*%|s~7gs0oY z2r9fztk715Xn&u~#1M`@Umh$8BtQFAdax1atb{hJ$uhd4X$ zzi2z!ZYLWhZuvM$mS%C@{TWhSgV+r9vR}+?GhdMJ31#I#pW3q##Vzo{(ys8r1&aZw z33cY4!HM(48njF8RQv4-=ciu^FoiNz5%;ZFKSt#CW)>aa&CgNqCRHa<^41?}?wd;( zeQ2|h`cQS3p(8n2>}a#M{B>9LmCY*Xea^*=M1qe$uMXdrbcMYgeqNnK2aE>`Y;8>i z@Z>3z`fb&dH73?6pOwiVCvVFUC-zaWT8>J-?=4}H^OMg#DI@b54^**n zf5}D4$Z9D>ne{5Ky_wait8z-{C6ssS>FDm5q65eG#?WQl9-Qnk#5HavXM39ifa)I0!@yS?V}sgI0Y_^+NA^ui9O0%srch^%$`Kp$^{u z_*WME`~fO$Z?4a#Qx4+XZ@53KmP{fRMONYcA|3KtIjwXq0eKmrwWWP2}iH5o{> zzOU_Kz9-`HULj3!VVl&Ysb{{uX3G}--@9OWere^opFjM%94EGhvt;tv>t8pIwXY zKMgI@J+^1%`KM3srPbcNlKg*%sH~q!E32-gkk5)OZ@;uB{Rwsc(@~w7zTJOc$1A(Z E0F&8b=>Px# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_c_pack._generic_description.txt.i b/CMakeLua/.hg/store/data/_templates/_c_pack._generic_description.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..77a6efbebcbd786cf3c96890b0142cde52828b22 GIT binary patch literal 187 zcwS>*WME`~fNCJ_g|Zp{L%}AWo3#%GlFyZ`5$>P3Cs%6ngM38>Bv3KOwa1X}kO7bD z_c@1@bzb%z36a<}g{z8Ddt20M#g#JCW8}M9epDTFN_r?&Un)D@q1%+o%8k$ T)s3N_y*o}?e`lLfrvCu|Oax9R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_c_pack._generic_license.txt.i b/CMakeLua/.hg/store/data/_templates/_c_pack._generic_license.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a6208fb9131835bc50fcefb9d8ee34746f04e59d GIT binary patch literal 168 zcwS>*WME`~fD9-G0mlDOu#Zo1W}V}t?-PzKi#Aqy^}0Ru$43SvP%%gKkRex#fdK1; zI=_#nw|4$*ni|2O#QmDJE#<<&93@Ya>+uJV&puW+V?T2#|Dx2(J=W|QCtCMTXPMp7 yZ80bEaM!=XWyiC%pH^(oU3>M0{QIP&DCuU)L#wAwV0G`BZdKU!g8$H0#eV>IGe=PX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_c_pack._generic_welcome.txt.i b/CMakeLua/.hg/store/data/_templates/_c_pack._generic_welcome.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d245976f2ed466cf415d5959ea083ea7c498949b GIT binary patch literal 148 zcwS>*WME`~fDj-~fU+6?LxJnZNqKWR?5CJa7haogBq=oO?h#7{Bv3IY^t2;ag8>ig z#l6dasDChNdc7c1+C$nixNH0N=x}D{_bGeV7#&hr%f2$GW2>zD#J=OY)}cOuu5v}j eanc=+%!(qP&Tm@!b=vD`Ns~VBtG)7B`8WU#U^#98 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_c_pack_config.cmake.in.i b/CMakeLua/.hg/store/data/_templates/_c_pack_config.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..7c54dda5e62e59e82faff1b77739276558f7e4a3 GIT binary patch literal 688 zcwPap0#E$_0RRC20000000M9T00!p(0000000061|NsC0|Ns9(VKU7J>nRZ8fOB{} zE*dr)ZJP`L00000000000001ZoQ;&tZt5@)h4(y#rEZGU_5r$TZg8nvNRX3OmsMnv z0o(>BvYlS~_IJ#0lo(VN5fIPkGc#xAhNNq0$WoR-{>ic=3m|!=mU7i-D2T1xFDs-X z-$F~VC;<;wnuIfve?4F@7&yNg+z_*_nzC>h1D0T%T>}ZH;tNPAjosf=Eq8y{y849N z;$cL>o=G-U(cls3U{d8}Q$X=R=vHj%vUL>^8XoZo!LT5F%f>XKJV;|se4l$V1_fGJ zl-`&_Vj6@+5qPOsK?}vABn>8$ESv^!G@J4Gm4<0@Mm-}0M7}=hzpaH`-w`D?aEJBU z)Rh8dhb`nDbxGs>p+FstuFkD88K1;>It`*x(&f>u)xt^H2vr!DtyIPe?C(jQ4>w{Q zQ;j*Ji3e9mjWQ}Np-pUI+#?v%Y($fgvsudGD0^lTdc=&t?KAwUFAlFR+EYu?KIdf|OzbrSTA5Mp+b0 zX{Y89w!fo?to9v+!oy)<9QmBeaN;@!xR_nHar2IrW6OR{tV7p8duY9+4z$@Jo1@>I z(LLcGG#d5iuOI#ms;GSTe^8#VUQv7iZO}uP3E4DwZ7I1(Ah#RwS?S?55{rIGlIl8X z7Np_JZ%DXJ^7U|lC|s|&7je^(9Q1AruTCq%)R4=i%n44jafhRXCFd3Lc*QN8j#-lO zdGVNTd3@qlNPNM%Op zEBPxz8MTrC00000000000001ZoRyPNZ`v>r$KUfQEZ9Txz$Q)o0CAlwwW#CFKDXj2 zLX)SW(G`(AteW`lvy;%6B&-Y}BJ#iA-TC}KCg=)E!E-K*C>4A&TtOB;g3?^(ic24ue+BnuzIUpWE5$@m?3B^HAf&9 zKeN>9=`0C|Tf-l+GN)pao28BJWskWg7mGz$Pa4Ib%-nexO0^!+tT}lfHK@&Vs@5OT zebhN^ii{$ZObS8sY~1;|KFP`g-3922Y^R^IZC6XkK~dNBh#lxt<7P6y<4faofBylj z?9Of~>yUZR2oP>K>>k)^;CmK@RluN#@c$ng&Pr=jl&>I)^gF3+z31{4!9yw~vjt+t(lpT#u|7pQxd5 zOv3%klq}qY@Lp!_0Kvazd%C(v6~^#;Zx7oS`>WpU2r9}}*WME`~fMg&pfU+6?LqTJWu!4WCb?xoE9-WG`JmsL|T{a9zpkj`0`);lV10II* z{Yp3N3(meu-qNxAij?!xTSAxrhaY*^XU$wDrMqRzZlThb&LKi8n*CpNKd4H(qqO+P tGuJ|1ajyF(5|1l?=B{0(&3t$3L4}o1_NS}+{OX@tGU56w#+cu#ngGO4L6ZOg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_d_l_l_header.dsptemplate.i b/CMakeLua/.hg/store/data/_templates/_d_l_l_header.dsptemplate.i new file mode 100644 index 0000000000000000000000000000000000000000..0afcb548d0453962c1fefe75cfb3234463ad51bf GIT binary patch literal 1534 zcwPbi1p)d10RRC20000000q7P02>y^bI zjL3bhM%ak}00000000000001Zob6a!Z<|OIe)q39q5IHQsqG|H)s5CG*??12Fv#F0 zS*?UHjP2QA1_4gu{q=hWunjKYxSQ-nO64lRoXa=o@^OYYpiwtsF`FeIk$d8^kVIf6 zD~~cTBK8My6BtsTzy}yPOVShciDgVITU7?5z9tL!+;H4GXHGzW2uRfX<>RldH%(Tr z2#Prg@nEo`zL#1*g&~WUP6FRZ6jK(!r*^lCX5POCNr#bcfh;K&-nQ_e)gND3w}uSD zH4QG#;qBw+Pwzll2hNhZA5 zLlz~VX7Sdf5w3${piy3;jy2rXUWfR_#?4=`kaiu}O_u}=ex0j3Jbqq7Wsa(Og(Zg#(j z%Bc{lY#J<%>68a=!Kh1Om?4Pr4xOkPPMtH21}6QJjEOJ6+o=;{L86tzHTCYWX|zeu z;7i!OrpW@sqy#he?B=uZ|EN{onu_%mB-4N|#PP7>dAak3<-L-YKK_kxiB}x2tE`pc zb)1kTuo=+g?lf%+lv{BOPMpdmEQHX(9%3^z=fHByE}IVY;t&=kr^+zvQU1f?NF`<| z)g-(XXtHT??jTb=ML-EGoR~ZDInXss2?}#8rw}vnSgJxiR9}#YwA*dI?RzJp4pt|k zWiXZvwJ*x}7=MF_qDr~5gigSGHfPY0kRg=O#kr7P+ITJL*Jge< zF~^dsW;f*&+VYK|k1Z}Zl%V70_K!FHz5ZUmmAk6}Nx?*x7xCsM&5K#TVvl82#+Vet zgXLY?!$^_`lPiS1yi3+0_S|{*0y+=8fOECuHBv{|I?(ZPzWLbw89LrpFPGuVd$FjL z9+=|Ad2brKe8fo`vEUjBM+M zgIGy7;ZJFHR7X7*8RX8${E=J5jEC#KMw;!eqB zOv2m88Wo(>zO$`jHd$0c(43l1FA%p2bP8vp*WME`~fMg&pfU+6?LqTJWu!4WCb?xoE9-WG`JmsL|T{a9zpkj`0`);lV10II* z{Yp3N3(meu-qNxAij?!xTSAxrhaY*^XU$wDrMqRzZlThb&LKi8n*CpNKd4H(qqO+P tGuJ|1ajyF(5|1l?=B{0(&3t$3L4}o1_NS}+{OX@tGU56w#+cu#ngGO4L6ZOg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_e_x_e_header.dsptemplate.i b/CMakeLua/.hg/store/data/_templates/_e_x_e_header.dsptemplate.i new file mode 100644 index 0000000000000000000000000000000000000000..8a2794fbf82f5a305547a01bfe4894ac5521ebec GIT binary patch literal 1523 zcwPbX1q}KC0RRC20000000pxE02#ah0000000061|NsC0|NsAn>OJoW-bl_{DX8wM zz;=*%8s7#000000000000001Zob6a`Z<|OE{_bBfq4%M!Qrk_cs*TPk*=Fsc@+QD- zT2(?A*7062ivTxCfBnq@w!y`A+@`q~o#ZI6JM-+bGqca`@&q*ICp_h|3}pJ1hCHST z*x52*9L$9ON&O5)ETr%PbZQtVHcEDUHOVUy|k*WMKc<0hg>@Ap@Kw4Uq(98)y& zG8(`@VC2B3FyhI=%ise|QpO{A-R^b~=J|7w4bTk-h^#pH+QP=62C{9!JL(|;n4vp1 zI&+rh&w&3E?1JeXWOE8RQAqF7j4puBz+aq#7X`v>nIZ`<&CN0%L+m9Pnjo47i}eKJ zG5|pu!@M@8GD26x5x)q1gvBhM4I)OsGSL(9EFYk7Jw-kl%)L|$5(=JoFr{cLxST@D zA>g?S4bXi~6WVUK#iYM_3G=2QMYbF)VygWi!DjpoCW*9Zu!2#Z6+xI_%uH1Tr0p(gCCzNHj!MGwQ-ge3$>|0ObCjo&+{PR$MJqu>a2BGZ z#9y+EHV&Jo911!!km{t{$V6&4d3@qa@VyAqnEGsXhtz!@&Dhm4$s++bqQr2tXw7uv zi>06ENpuOq3lEDKFl2y^qG81tqmMDbwFmUpTf`x~IGVhG?MeGmAvIx|JWbhD1aHon zkA*Np67?B+Ni&^YgJ~?X**9v@P=cpZPb_Xk*;z`@4kIEIMVtqO`^d6621SWx{Gm{b z7#|5HBxOLaaM_jmj_;;rn9vVHeq+*Pn5ROfF^vKm`C_SdS2niqyTVQE1t3Y)W|jM1 zXrk_j_MvI^{IE@LX-jj|-hu_ii)9aciJw2VPEbTa`t2!J(KAU%!=YTXR>KYYHi1b> zU2QZ(fx!|LPwq(VkH0g?W8|u9)#=tOj9ji zmEhY*hK^ri>~cTGe`^z~??1w~UKK96G!4tKr3yq5;Nj(E9$tYu=@e=-#5(Xg#op=V!fX>Wd8~FYwA3dFLuptBzWms_5_0U+jt7&P5lj z1KmlN)8bHbfvTBuRMHO0{2T@SLOFl)8am2YH!O1Ts{7_`3G`DK`Q}U<_XDwP#n4w( zT*2+&wtum+P`{KNdHTu>NGni9GcmI{<~logX3!?8qaZqQ4b#CvH>qotIi1*!p}E#X z#b-k%oBk7`+T_04Qf^ZZp)4%D70Yw z`JQ^x4AO}4sG5?~s)hh}yv;(Z5?@?rcep1{&${Q(xe@hOx*hM)EM4wV(&hdmq$?10 zwXHsJFvW?}i_ysBT5qE^RA&k5abEnfTY9n|2NK zy@c$teALrZ1BrVvee5&TK@Drh{+kb2nxfmvXM&sYzwwOq07tCHJz;I?v?f8DEHvs+ zB}t89RO#QPNL7=gWNGUr{Oj*@wb2e|V5LI0uY#52?79(F^SA3_Shd-6KdhOZ5M4&m+I$Wx7L9l>zHS}* Z8g;;KeP7yZRX=DP8o0LB{{nWdbS6Q+>x%#Y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_e_x_e_win_header.dsptemplate.i b/CMakeLua/.hg/store/data/_templates/_e_x_e_win_header.dsptemplate.i new file mode 100644 index 0000000000000000000000000000000000000000..0055125a35013a76d63c81e6a9d321f67e1ce85e GIT binary patch literal 1481 zcwPa?1vdHs0RRC20000000oHv02#Lc0000000061|NsC0|Ns9*Oyz6oeUGjWZ>)92 zFef{7FtM}%00000000000001Zob6a^Z<|OI{qA3JL-#{crMB}>)kf=;Y=d1?UIM&H zs!9mM*q#kA2yh<#^?L`14Xz*YuG6hnl~NUE?mctvgEKRJ11j|rma<6(BDp64i%9}j zHuot5BVm6LFM|OM2)qN$4M|6cz44p|K1l=|GFwyNxh!--4)vrrRKivW>3|9PFzgS_XU~E)swVy5pcd zqiOyO_^Fn)q;Mj$5&=~J4K5ZDB~@D$w0=VtR1Nw{flma!OOH_6Zh(Od`@0mNkj z{4|DHZB2QAu870`BJ|-FlRO$kjDTi*CSqB>K;e3dd@`81DPJVuJfC1p(3o>Mg_MEM zau?#G`-~){*=+Kl@7;vDidy*s+ZIC#dXEBoUX@X(0 zOpru9LN{4YXVYRTjV$_&m?RM3cN~z0rfxtt2-t%`l73zak;EkON#yZQwf$^kd7i`F_+9{lP#sp7=LQDq z4j=CuM#l@9sk_wQsStC zJ_-!BD1UMWN_Y63NuDD|S*T9CW})YD<%l!^VX;irK#nq!geb|lZEZ2L-DFBioW;y` zhFi&1d98~0*Hs3)Ij+*{iekYV>jbTc1#HToC1U@`+Qqq$KWd`X8x4zR2ggPI+QPSi z2raLK`1jr`J6L`5;lA~jaHJbUH*HI(Kor^S-`wQcwKmT`+h{>6D`oO*m4%Ri&a z8u{cix#x-6m?CSR(Vy?UtIoyLGPHC)E>2EY7>myyQjE~`X1Hry$rm5q1GMC!rkm2$ zW&6X&5~##D2uKT05?330|7$ssH$_=jR2|h(M~W>YgyiUkE$iB{>W#7;MwYFsjyY2B zSr?_{{E?(s(n~d|+};kMNM{=rsa#~c9<4DtkQ$x6NR8_2@8Y*riB?6#*-wJ1?z{Yl zU;aZO%4uzrA!lzH+U>DkhMc`*$oUy$$mb2UA|$QYA7k9)DkX8YO;uhCcfDHWy-=AzaSos=ht-p1OV&hXS&j|LQmNM_d8wN0r7gn ju;TOL@5K*WyMBn;VYj&QY_+PNFLo_lQ-!|)CZlwpjcm?} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_test_driver.cxx.in.i b/CMakeLua/.hg/store/data/_templates/_test_driver.cxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..ba115401e6b2e59be941ae4252c63e66c757bf80 GIT binary patch literal 1245 zcwPbB1S0zY0RRC20000000f-?01LMO0000000061|NsC0|NsBNXtan!62ynp!MB+x zR7tr{AE~?m00000000000001ZoTXN6Z`w!@{_bBfN!6SUhLZGK2)R%K6}p6;T+%zK zhtS4e%BuF-wbw*6;=gxh*Kg4D(CH*(vE$j9XP$j#)~|&0!#v<{<*RMNyX$M~Rb|Rl zAmT$)D&&`++(Pk4HtS||Km237oR2@wZ@uZKv9}!mJ@1=fOa6A5ZV_DXl7EI#w ziKPJq+z(mGLGet%DwnonaC6cgN#zn6o-fGP~ffS=#!%aQc-ymX!O-dbR+3%&v?JNEY!v+79Aq zn0;$k!M$h6SgLf}x2!`G_!0Zc-*d@RL>f%?UkjdnUcdk-aarxdY&4&Km@VhScX#9E zcs8GUL>jg%7uibO0aMlG3BrO70WCoddX{9DwAUPaV}N4 zpttkb%Ozs(oTFAMVKo|Z=)M0ms+4x43&F=KPHi0w2EG1q;cC}Km!N3w`UXk6-6WCt zDJw)s6;_n+bOkateXnCYp(4MC4VNT9?UAIh&$A47MG@&d6cXKpT0@={ZAh3*?;D*k zAFkk{iGZ3V`%1-OgHX289o2w`rB?RoaKl8%9z!#Qvde$uX>rc9%NCjsfq~0P`X~Tl zl9XxcXs_P}U3i^g5SPyPD38K$SY$Mm)zRiLq`TZ{wqJDuX+rroZaZm&nm+OR{)zeZq%7Z@*un(}WshUY;o8oQC3ng-6! zFe_Z+_-V-KFdvO6KT2%u=ktXNrycLqq5VAveus0oY|bQNb$`D}aRqPpQWUIqJe(yw z(7duB5TqBZ0VAMHlp(g@^MK9Wiv=}v7>4S(PVjNk?x9;ab+lhJ02OeMrO^}5)sgB! zwU_Wew!@3mA@%sPs{}5U<1%QK}Bv?+h-g)dt!FxY(B@4>NA=o|gd7 z*&hNJR5!@c?4_uivMv+Tg_m!`90)5XU&&P&OLlQ}*Qb7?)72+Nwx4_kT`t2KR7&|QIJ z(S<-{NyxU1iHMYCWpf`J@W;pderNu_(Y|XSnjjz^Tw<^n2Pkeb<5Q0pz2DmF_MP*WME`~02v^bhO!y|LqQ?a1*>-Bii&5BE5d#@|J`fZU*N%j1WJ_^T=P;CLK2J8 RQ%krYoPeVItkmQZE&zl58t?!B literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/_utility_header.dsptemplate.i b/CMakeLua/.hg/store/data/_templates/_utility_header.dsptemplate.i new file mode 100644 index 0000000000000000000000000000000000000000..74361e7d7105b80f39d4872b5bc3b7a72a602940 GIT binary patch literal 828 zcwPZK1H=3P0RRC20000000R5~01Ki30000000061|NsC0|Ns92o{q(t!(M?cW-T@H zR`8=W)gvbW00000000000001ZoV`_TZ`v>r{+?fPP4}U#I!3ptnx-)cNMO+jiAY%0 zX;Ng81H2|S%1cZ4>v!Qj3<#~-Ng&1c`MJl><2#>%$^BR+a+rdK_ZZ3v#^9t`z$MtR z{EdDJEgmAgg)WP*rdoa1?z>*cXmsnQuF|~C{5v*6upR`)wJ#sPDyN4~+el$7#Q+)^ z4}%%{CA4H5u@rt_oNy`Nx>BtY%*6$07IZBabj@&SsL-Ta@3q}qTL<-qix2PNZ2IZ? zd=AU~C219^)9O`~DN3`|t`$iW=lMvGJOTO%nF51*7V-chc85b^ zSOHhUU`9C2!zK%DvV@Bfbj|vA{c??zB}ici`g9`W6wCz(_%e!^2q6E*nOJXFf6bua z-4M2vt`HNovTMh!%)n;?k_q~J_(;@!DTaKMk;=K24`UR0HnC#5-aB}NfT+!ua>5ZK z-+&|o+L%u)8HZeu2ILapltq&eKR=m#4!eDSidLw*Fm0J6e2|MbmfXh#hD4%xLKg3) zvoD#+g~R_~4?`8s1}vewNGJ!d(|I{6!69M2FyswS$0Uv+hVmtm=XyT_Ft5M{j<{GZ z(%9}-H|>EZI+JndDHFGA|8Yl zoT8$f7%c$x%^BUFa}{c}QU{bJaHH<%&`;1aTg^3#)$B|Jufqp1iwitw5muH?veeUf z4C)GbGr$lj#t{aby4is+m&GGo;H*~uA$5??CY8n6HKV6DU8{HdYddK^rVydcA&!zAa7ndU{7E{-nR&ar9$7SQPRz9k|--zykNM{yT!6um06h>K9X%Q94d} zO>gwuPt<**r@j33-vmGGz`n@WE`l9-k0N)RA*RuFjGsDH#1mcFYT&QZm`_ta& z|Ins(U;0RRC20000000PYb00;sA0000000061|NsC0|NsB#IGn$09i8;@C_r2_C5fru6?qabE9%RmsGG6|)i zF-!{%S7n;TX`UdCETTDew%{sKlZ+SFlt>N2xn**j<{+pn8L)`VqlEenf)gsy6a`Xp zPIC!y%5hb}m(K9>VEpdn{BS~I7)>ad72vk^T=)fw-pgS-7zM$-!1uQwqu~2)D+ods zK5UOBA-jzyik)y8Noqvas26km7CRm1-T~Obza9XOp#^I;IO+|$y^mw{>K^yU?@vDU z$7kKs{!!p-Iu~$V$9d3ZVn}mY0DhLaj5vs* zQ5V{698wH-H`8m_sKG~wfA#Yff;A~h--FlSZd~BmncmmqFDGXR81_Dl&n{2j_Ro)e zO<`@D(9~Qj@@blsoa!u@Kx(%zoBrdtZb32CxSIctV%XsCUj(_`R&my)1-`%5WtE^U zTTM!k>OK*r`!5loqN2>Nza$m17NU$s`J?bSdhmZ()kHO8rlM<(J8Yi3&=65nHq?uo z&1Ls&71@%kSF?H=rQ7@~E1>B$ zz*KbBY^vADrUSdenWAoDQ_ikn#`Ol6O|k`IrlHX&POPPEhG7c4HKVY&r?5ZhHo{Dr zDxm2#z@jYc=q#?YfSX0f4_gx;{7_b~5w^8-VYO~WS`Bmz`)&u!?bheK;0Jhr;)TJJ za-r_S9kdO2g%&xrhpV6mMuJVVmSHrQ98?FQl2Hqn(Pce$(MfujO4wH#sECN8yRCbp L^1=BHYZgBE^Z9y< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/static_lib_footer.dsptemplate.i b/CMakeLua/.hg/store/data/_templates/static_lib_footer.dsptemplate.i new file mode 100644 index 0000000000000000000000000000000000000000..ca20e4548a3486eecc265a1154a25ad42b1e4492 GIT binary patch literal 163 zcwS>*WME`~fMg&pfU+6?LqTJWu!4WCb?xoE9-WG`JmsL|T{a9zpkj`0`);lV10II* z{Yp3N3(meu-qNxAij?!xTSAxrhaY*^XU$wDrMqRzZlThb&LKi8n*CpNKd4H(qqO+P tGuJ|1ajyF(5|1l?=B{0(&3t$3L4}o1_NS}+{OX@tGU56w#+cu#ngGO4L6ZOg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_templates/static_lib_header.dsptemplate.i b/CMakeLua/.hg/store/data/_templates/static_lib_header.dsptemplate.i new file mode 100644 index 0000000000000000000000000000000000000000..fc7c84a3d57660aabe55784171db4fa349ab10e0 GIT binary patch literal 1341 zcwPZL1;Y9O0RRC20000000jL202T-U0000000061|NsC0|Ns9|-7UuImp6|XA$+Ko zF4F2!+7r?M00000000000001ZoaI+-Z=*&K{_bBf$Mr*UN^Ivvr}k7=B7l9U*hU67 z$*B@r!`j{kvligI^w)QG!8UMyZIe@_NR9%#^YZM>JTuEj=rTX%2_L7R(?=TeIgP&eU8Eq;3p=%Fa&oXa%YS&P3-6sA6nNa9IMKo^xdi`7N<1VWm zieeTyHkf%%@MF_o3H!!O%??Uu(Fib=BVu&>b7T zQWBuyFj zsX_yx9-%76!Y2u>ivvHBn2}LP5i^H@VOy$Z;4=PhhNh)^W>2$*y5T^ph01=o2q>N^ zouYto=MGd)H`-<|+xPiwj$mU5=$J)RAj&hUn*&30`-6KS#vf@MGqi(X_#&Mn{D8$6 z5FWp*Rq`SLp%GzqU>KLuAsfX6Wkp`pLC3wf4Nz`bbae?Q&p&@Y#cCia^TEpG6lgv- zFPhi2n%3^LD(252Q`G5bF{yp%8jhoOj4a=ItO*7wWC6^`0~N`rgUd1KqP}FZmg!t1 zESf-17R1^Tra@-Qc%E}ChHh>|1ZyU$M*PK#Xsxh*lBS?Bh6*w2h(xJx(zxdfOl<_o zoce71g3x^)joD;@q!6Y5B&rC#MJuFhT`XvsH?buE&j{8lV90<+a$$)$#N5^esenF{ z**v6Qjs`ExR_R_&g|f+}&69+UMDV7Z`B<}K1W`UAi8sU9=B&#ihy6_lG*sYZLmokp;dqPdLdQg<&vc-K8+SpaZx@OxgKdjSdS{pc8EB57M?F05kP<}eW z$~jd;Q`i^$+S0>~>KHIgsMl?4S-%!fUfWVT--*a@c-eVN=%qwo_8(7YF(@lHMFBHP zX*|PDi!*44m`mab&F!pqb|c&gu86DJasR9$*pIOaPu2AdH>L&}5fAxF?&~+ zihS(p#?7#kJ&Tkm0FAZ|4L{efsutx7X11wThEaL+6y&ntX?J%rc+U16Z(vvko~d{| zEH`L`I4!Q5zd$2cfy`yZb_K^q=^ID8x@?USUknUcyagX}a~X-{MrjQrfa=&}AA~NP z2)z;?FAm~k+5bL#|Avd+kzDllbFuU7t@$W1 z>|~>N6dS$&HydS^OI*y8a0C;xkR8Xv!hPqB2V~LHZbojC{GnrV1Bio=nv;mf)XT2- z!t2`Kf1abbuJ>=9{B7tAbj!+LRM+ydw?n7wTID;UZ}Ic?L%3`99P^ujBjx?f;dKp_ z=)VrdQ9Ym#!Q&c1<%{C&Z_6cbdoRsfrGNC@c@vO>5x@ zuP%h-*z0vMnn>!Nj-0NoKE1P=67SiU^uEvFJ#wq-=1!^d;M?c8+*tkrVZ~D))>n{T literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/._no_dart_coverage.i b/CMakeLua/.hg/store/data/_tests/._no_dart_coverage.i new file mode 100644 index 0000000000000000000000000000000000000000..006ba46be0e9e03257c257780c3d779995f5476d GIT binary patch literal 104 zcwS>*WME`~01Y5khq4*}LqXZR)+HYjcM6u>MQ9FicQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_assembler/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_assembler/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a81be7ea00b26d01a92a25ba60647fc27db41ba3 GIT binary patch literal 531 zcwS>*WME_f1IEh?49s5`pq&3uaNH_-ijRS6l}SN{b7A=E7BxS~PYg()V$R&)yVifg>*c=v$cbdKuGhmsrFm>BNnUY2ZCcrDXc zBGIy}E$I4P&c0oDFEh`1m-jG1s`Z)~ThwQ!T;{p18Q(ctx0tIayJr`zUb61*<`(~u z`2yab9M`N-mXrQ0T&A+ca<;|e^K2i5_s@ShS6rPb=H`J%)f`IO_>BKe?KU{IEmNpv zj=H9c4@I?ya-J2Zxxz*;KaF`(; zE50skjcO@-kGq|4QjmQt8>hI;SL^pntDM44?Rqii$qAorNmGyHTwWZPEjMqoLg%*C zzBAI|CzYJ7zMxuqcgMn?3D!#miqAY>d_~mP*ZE1tFHvfdP?`Sa6v zhA@}kSy`@bvu*BwcmLoksh3}g>fM|6a@EeJdu%f1lUsiEeCBsHI%s*iepAG%?V=M~ z&wS?bU$N`j#l7x2r`v9Ft*f^@@V@o;qDXCDNA}wF%(KE4|LtBZwk=UBOm9l)o@IZ` Tbm}US_!U{YZ_3BNG+zk-3WoBW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_assembler/main-linux-x86-gas.s.i b/CMakeLua/.hg/store/data/_tests/_assembler/main-linux-x86-gas.s.i new file mode 100644 index 0000000000000000000000000000000000000000..e788fb0db186a919f030a270cdca92c820e2bcfa GIT binary patch literal 390 zcwS>*WME_f14cIn1||^(DCa*E@c8|goLjPXsqXoI^Oili{py)X;~@qlP%$So@L*oE z0gr9_`V9fvjVyv2*4?UFb;Vi#a^BvzLI;*!bP`fsnEd;fYERCsvvqZK+vam_yGGaFk1)P5)=PQNfcxb(x$(zer$OUy-_7&nU@4_na4pXw5SU>kc{Tc*oPodXBn zYurzH^;_ng-ooa9wG9&sB^UVjsvKdJSwA^OO0Z0O_m!N}YUZ6+>yIu-S$<91G*l$&guNDH(&v2p+1wG= zBR2XLENbW|_2F2wSN)w7XXurL+W+}IVODt?+7dTDy;9+_M5^Rq&OcGvMNeNzz2CcC z#df|Q`-yYwr^}RWS;lJ;x^?}$+3F{@I5x*!P2#(`bncSbVt%pL_%Bbgd-hOu|M_XB d6u$;7EnQQse`$+F*5bBl*0XDvfA5<$5dcFZv|0cF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_assembler/main.c.i b/CMakeLua/.hg/store/data/_tests/_assembler/main.c.i new file mode 100644 index 0000000000000000000000000000000000000000..e0b73cfcbad015d420c04ba4d273a237c7924568 GIT binary patch literal 226 zcwS>*WME`~fJH!j2Fhmq4+Uzw9xCQMzT_M7l(TW8#Lc52e>bu*Ac2ZGzP$&z4jBlz zy#Fog-F(4I@V%&GmC&BAD}<6ZXEMJGo3uslNWHnJOTO`kdp#TO?D7{dUH-w<~vmsXTw;Sd8#~jYSC@&{eG!-@!A4UnEpP{5C0dO=_rt$ zJ*nn9r(xx_$;Ha61TuD5e)=J?_p<7`FN^${3wb)`&h6BnGj;yiB+Kt2>gRW?eZZPu IRN|x$0MH;`CjbBd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_build_depends/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_build_depends/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..3916fef81e3db4aa3f9c2ae4d49899a5e04e76d6 GIT binary patch literal 1589 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 X=e8Z&R+Y|g$8@$!qK-L>eZ^}43$C?U literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_build_depends/_project/bar.cxx.i b/CMakeLua/.hg/store/data/_tests/_build_depends/_project/bar.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..731f86fef423c8e8160ea6e2cbef2d269744d6a2 GIT binary patch literal 369 zcwS>*WME_f14csz1|}&6DCa*E+>i2lK1p2d&bvR4eS!B7UlaSM;ds4a_S{z(<4GP(1lXQH|Q|qIae7QR}Cns~E`RO-_Y3It*)|K3? z_N>_8w`$>wu#113jJ&pApS5t>m#s_MH%n-~-5}_to~-B-{d|RW;-;KGZ!WzMU`%b} z->4Rm&#_MVkG_Mu)1-rO5z}OvJlrfMu}+w3vuak$!dGX_I%g+#e7^kRd&{h(Zym0u zdJib>iJlfa`N(?z{P+6jzgui(o6g;Sb9&!ptuqou_cC;r-#45!!Tz|f#2)SwljWx$ zI#|~HUe#)&@*jccI~eO8?b!Tg@?);5FPXFM-R?W=S;pZNSro*WME`~0C6A|gR&X_L%}l6l4ChW8|!}^T>Rbl>YXb0+sW4$kU*(&W?phmX-cYs RO;vu0UPeWQUS^&h7XV?r91s8i literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_build_depends/_project/dep__custom.cxx.i b/CMakeLua/.hg/store/data/_tests/_build_depends/_project/dep__custom.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2fa0cc2caaf367679a89debb27001b1e11ebe069 GIT binary patch literal 94 zcwS>*WME`~068F*g|Z9&L&4qkQeyA)GXfHjPcAJk$*WME_f14bSozRm#U{D%TNnYFdrx%R%sCgJDUU3TAGe`t~e0}`m1QyUQLeb_*x z_Wb%CZft8sHvYQtvRi}W7kAFYS@&`pbu@oo=-v4Lo$oG1)^xc^cb?oSK4&}q6o)K( z%ToU4P1j$uA1jc)ASrO|2Sd``-P#kbiKQN%VZ>;**T{9(mps)~l09+z?(LrRRckR_tKXU? zw;p+D;9?Zve>G94x~{U;%WdV~d3}Pu6W?Bu?X3CyNne=LcfZ{i$IhE7-2WdkH-@=f z`_!6Wd08sXSNL98=rYT-bIx6yEpn^s%$cX_?XSrF=YDw6&9-49*WME`~fMg)fhO!y|L&4=Qe?1N{oh<(DY@7Z@@#%}_!mk?{kU+(p;B#lZ&uRL4 zhHhASO8?^N6)QG84r=2ToxUXH+3VCBg@vilrfNJS}r{*Ddmv+bE&|@MOP+WT4ck@oV_kek0Eru;v%@?7#RG4cm~ww z0uTXm;yLN9oi28Ku}%|G_iwtS=j~Tne+$)#$q5MpX$=XQPtWXmGUw8i5Z2kN{!IGu z9QakHT%iP0)?Xnde(&IJ^ zicH5w9Vw9PAw!%0K8pS>uq~4?W^r%^`WKksu?`@gn`X;;cW`mT;)!}t6Df0a| zSE-!RF6ZT{gfuVk) z(~~GO+N~=GM^O}7`h=xMYb-2a9YsuWwWaJ<^o#4}Tj5`gb~nWhR;Ab%2u^ONzd4*3 zVF)`s>R$+DhOhA;=;D&xpe(id%_*X!+K?Br(c=1JX~Al}aoIa+#r>~VBTv{s27Z(B z2gEU4g;x!t#lR5I+R;#1Wen?%(vtx82F25+3op&eaTbd0Z8*0rqMoNaCIe>8_fB2OldRy&(o^Vq;O zlZNBB=0irKTX#I&q1BZk`Jo|~^|6f|=H^sTPt$JJsL-3g7P=Sm;W2#FN8E8CE>NDw u^xOZ?x0z4}{Gty7rgMG58eU%5x(W9&2yRCc*1y@>XK(nhFWw&q@o}i&%_VFA literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_bundle_test/_bundle_sub_dir/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_bundle_test/_bundle_sub_dir/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..01554cd77177138e91700b96392258813fff9809 GIT binary patch literal 562 zcwPZA0?qvZ0RRC20000000Hs<00h_o0000000061|NsC0|Ns9OS7g8ZleNcqL5_b5 z><$wvVucj|00000000000001ZoVAqCZlf>|#_v4ED7%N`LY~0^w?g4hWE-h_LI#}1 zD!~ypn^dcP_Zt>igp>ZU^3DMi!pOskqd6iek!(4a+u^iHP#~!(2?fVsMd=AmcB^h6HQ! zOp7=Rh={TjE~yqZ-}3UwaJbnkHkuhtxRd*siF{Lc(qJdsR~4Jri|SiO6Io^aY?9!4 zpf5DY1zE*(&Q)dF`t0ipSmkLL(=R<=!+v!-&Hh_|5AWc@6L=7IDvIkW;z#y339eM|?+$$e|>$Xy3ywPPRyLZqQDU%yjaaGL)Eal^X0kyVYsR%Ysj7FfMEyt_^reEWK?aoX zNE=jcXtM6~Z|rd_gM~lvN7KFe;|-a1<>qeO&G8zaeo{qB5_&gldQuDTA3%4JHbBS* Ac>n+a literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_bundle_test/_bundle_test.cxx.i b/CMakeLua/.hg/store/data/_tests/_bundle_test/_bundle_test.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..cae58d758c53b72564dd54f4e92928dd2d34f4aa GIT binary patch literal 199 zcwS>*WME`~fOa6B3uQC@hk|P7v#ZV=t=}h{H2Hzaw#5gS82;X5KmrwWRC^C{9WoGb zdH-9~+tp)fN4jYJp~c?>CavYX;d?W0i^9L%o_l$X^V7^G-Zid1^m&clvf3RC7Z$1X zOcZUO(!(8A=E1%58%x05i*9D25tTdm{ySV;AASE2yMVgp%Y<30qXIwu=#%Q(@m2Jc g^2T%JdAqj8nF+R+c}wEN%arerB#fp02m2XO#lD@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_bundle_test/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_bundle_test/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..606b388fce9669e8ee41ce8d569c225f17b0394c GIT binary patch literal 1101 zcwPZb1hV@80RRC20000000a#H01R;e0000000061|NsC0|Ns9EAd-Q>PhaY9(ptGp ziZPS?s<$!#00000000000001ZoYhuMZ{s!)z57=X-aW`bE1}n7u~=E65;d}9h;o|( z3kdq4Vj_wth}6c$BLBTZO1A8#8+Y9v+CzY7$a(YT&Eq8NIQj)UiLvaPvZe_Yaxo(~ zF;=z{k^6MH3Ecpve&|IhNn$^|LGxT+O<7a%RLG7s5Az|%S=o0uU1f#Jba*3aBU2|@ zt$l!qmZ}b#f1bbpI$VU4l^wb-pXcaDj0)cFQ&y!Vt18+-Ci+04P3+*0=);iv5z5SL z*G-)bNut#u-m`v#{$~;%%f8u$PGPOCpDfpfaRqj92^J-gwG6|R+ z1|9g}-Po&|@5BzBHGV3k){iwpW_6uO#v60?&JRgq2Z1r5lJjKbVv+zeJzl#77KP3e z)^rW;sF}5`HEs}Lt?T{)iY#VVLK9l>rW`I`1O83qNs8w!m0Q}4k_gmM(b7U92qNCg zwwI{Mo~Q{kW=%nLeDoM%0#HT~!FsIGMy&Zz1g>Th^#VZUmWfleA@I!V8dVvq5vvp~ zfQ^GGIV3e)p0OEe*tOvLo9<}Q%Pfcc8cE&HDXKVNpnMN#>XuYZmL2;7J?b)0_z3^Z zyGK*+iqT0YTjE5;DLU@!G_+S3oeh3c^n@1_6`+KAqfnbkPz;H_ZFwhYY0iAl2%`ku zJCTbQ>J@zlkza94)Kq_3%y8(QBLNfj?x0jh|14FJHK<~s5R>9$cE`1GiG%X%*$N!p zrzKI37R^6R<xFV51nA+V#8Ty#iJ&xXQX&m9n4q_WuPczUsXyaeD4!5 zw$+Qy0;cLm7PVRK;TNC)rhq?zhf8EHBz>}ip(D#XUJTca_zDvOJKmUUgrCv-uWS4X4z^DzYLGI4HUM(4#Q2+sz^QXIz-sO9j! zF0~tV&rofW;fK-9C$*+wUnuuiy-ok?=q|k&X7*bY-=V-J$y?1s$?LlFH2-O?nHuX> zx4g~19A2v)4AFqt}T?%-9d~wMCJsW@X*$oI6Hp5kWVMaDf TSY(H-NBZ1l-D36!547PmlFtmv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_bundle_test/_some_random_file.txt.i b/CMakeLua/.hg/store/data/_tests/_bundle_test/_some_random_file.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_bundle_test/random_resource_file.plist.in.i b/CMakeLua/.hg/store/data/_tests/_bundle_test/random_resource_file.plist.in.i new file mode 100644 index 0000000000000000000000000000000000000000..19ce59c774c831c162e9039e983d84be3108ac23 GIT binary patch literal 256 zcwS>*WME`~fCE7M3Cd>t4+Sk!v3+7{N>Yb4w*6{n{N6fmZD2eD5~!FH+P9mp$v~tn z{kO>RcLgQJ%cf{#BsJY~k&xju@z}9NGxW<_-B*u()c?%asVUR7St6NrmA&MpzQ&1t z0jYPx8P8tYyM2+OdXC)u#b30_7Tm7dps*>osH35(LwapA=fqcE?s_##EH~_UQs8-T zs^U98kr!v9_PWU&zj$7Kcl?SxBR-9uOP6khKZ>#y|KJ@RwEg?spTD1GM2b(FESdeJ nyL(T@CoiKpEy>NM?~MEVDjz@a7i_!FbJ$;5{Ryv=hBq$&J2r4Y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..36361a77d4824d9f7c3ddd2c5ed745223f3e3228 GIT binary patch literal 7175 zcwUW}WmFvP(ynKK!98fu;O-h62A9Fz-GVcCa1AoJYmlHpf_s7o%RmSYL4p$q4gtO- zJNumde*645wYu;1{OP*x?x(tXt!e-e00jIA!gv56Z028U0Pyi|Op-Tl%hvU}WZdmG z&4{Qmk{i711^h?&<{gQ>@LW`YuidkjQ|s(3v*Ru;*cC2S)ryf?8==XOBP>-aGrAsJH#+6eGZ0$_vFWNia`*j@q={zy8x0wjUS@9P~cgIC$GB$i> zXy`*Sh7iyUx#*&cjX@x1>kNKi;|>4ED^6*(7t!ijeEKt z$?l&bbk4UH)pEa1oAUH7N=$1ISMux#Lzg1QSTij9I@BN-05~5#x0hEIo=~KR6&P1KxZfiq(IJHz&8Lszv$vZ4RX3~S&_UA(SBJO zFP;-;!P3oYGp!QqO#cUX$rNy4@>++|Sd zjyADH4_X=ok20Ozy`bD2hwjKYU4Ay?iXV4Hi^97#7qx5ofD4zPKe2kmo7YDKDD{l3 zvlZfR6*lHjh2y^E%WS7y^3*tvMLK|^XQsKG%gSZn@LfJ*rn=R?+L@RCM2x1Q=aVlF zejHPxqSP0@OOwPr=|=R|{3#m}@tw!T{nyhsJB6S{+~QiUHIv_;BjWccQ{NTv@92h& z_>kYH^e-OkSt>Ez(xeN3v00AOj}}ikD^EKu~fBnl4YW zFIjNZRFG>EHtd>qhdusO;ULjqY65r9k9SP?aopPoFCD%$mHmXmeusGTf$_|c?EKv6 zL%hGZw4I@uSSbwGc$Nbk4zaO_7I*c28y^+&QVc%iNMDoa#F2+Bl1yWjB5w2~Gv?|?HT)KG@*Ra5FT)VXA85>;d#-EC*m$hU5<$?S!a zo0Iocm3FjpV`hTz6w1!!StXG{C;D0Fn(fLV&vI{xy3sA!?I4ZZ1s5xB_H#C z!eSo@>%BOWs@ROnOG=i_S7t1Ht*_f*7D8&XhuRFn&4D>-14?08U436etgrbUnTtDg zR1K!}N-831!y@uxwCHP<&PW~Ue~Pzv}`yCa42n%?2YM^FlNK@aC` zgT2_D(=%D$Y7V;Tw_sWa;89g3fdJaM?BcVBw_>d7u+}*Eb_YL!R$XZ^rdRD#{B4Ra zO%>RzEKGHE>Qa8?N@-qL#n@35-M%#YgJ~JH4ubS!4QAlV(#z5gJ173K)BrioPsol# zx8~uF7Z%@~zu7dDG3!Y-X@i(I64(MwcQvo`w-&~g`DFPJwG2upXuJhI;n-_4JJ}Tp z`tOY2)cDb9%%a#W-XJYX%4rn>6EVzuof9RnZnW*53>k7au+tn~lVv6}kn9`r^k$vQ zB5qJ86wCU%D&3iQDi6OJ5#WL0+s?o~^RJ|N=f@a!yvvExVhW4Oy*buy*P*xoQhDnp zA>FhkL&I+wW?dIl6!OI()SaI{Y@1(s8Y8reS!qlbmY14!>rhznf~Z);!x(Y5pF1bh zy~clTZMP?{UZDo=FiKBBS%t9DblX)$PJJSEBw)LqPYVWXI940&oa7@Vq0G#NX`;8N z@t2~yehx?Se{3tDG4x?v@WU^W%!a_}sRMb^Tbxz7B~Sp6CNr3caO9Php&XBK^UA%lU>#q{zAphq_@h~%yM zZn1fjX@K}oQ$z6r+TnuR4A;#fEFtS3`E2K~&p|Y2#p3EHoAw(f+}f$fuo!PoPnlwX z)j3!YlJ$k-Uw z+dyv!VB)Pom|>xM$=i{@R%-nwKZb5$rEVl&JdXIzKHnV2ZXflK+X2gSmwA#-9m3-{#AsDxniF*7RT|It83r2*qhnX~ z?lVyGa^84m=kr-~i4r->T~mjRJNn0(J=mT0p|vJf%_2S%8sfsfga+FwVMV+@$1X^5 z;J974{Wih9GAjpG(Q}_KGRccRU+xt5K20iXqS9P?rK~i;Sy%K-3bv;jrOwCLkZbTw z9hya$Oy)ISjhbdsj=3kEfQX!ObVGZnUmO%2t=on+5To1)ZceoaoENyKPxRR`)FBa-cp2M@7pNW zyN@m81QEWfUH94In(4=b#oUx7$vi@OpYU#(Q*jf8Q-DHT=VUm_K3C$5Jo5ZrDJ(2V zJNPxV%$s$gcf!TO1)%l7u@Cy%af!jsy_+{(Md@CTs0+I5hCbe0DNC(hF>ZH|SKyBj z&JO8ORujJofZNO#Qe zNv2k7J$Szuj5A#3FI4#%@4hkyK^DpRK0PE);hehyBYi$!Ea$4+3ev5rUv28oeP8RZ zC@Jy<+7{7Y*MmmZ8KzOOLMMfqFFeDX$j+T^SROM=RJCQX`mtS z(FO95Ug>43MB5@Hj_=_?=XyC){pL=hZETHE%tS;ao>=V$0aHYk>Mb2gQlgdWsNYgJ z!&5w67)4t!+G}qQQF*dV@(zBXbsVOX2-+o2oDkr}9CT07McuHmG?9r0oK3j?`qbpdr_c1TO#9Nvi>Z?-t`v9dgt1Osy_P=KH=-!q; zf4WCIi<>S@ihf%C#i&}6p|B9`A)=yu{Ar1rm{$ju8dXTf%&=HUR!T>&m`y^q zu{Y9fbSwJwB#C5#75C}(CYd6~7e^kE6~S2wQBb7>HZzq#wf9DrquCnc7AqSWZoRS4 z0&|fy)3kacTIB%m08J8vi$`|N5=7Hk^%$R(^1_Kg)#G#v1Hcf5Ye&XQ#C2jC`asK2 zP<@Zu3%;6OIiR^%8MpVr!pWaNpz)fhve9N`62xlzE&%y$sSmcS)f=?l^5h|sjrk2u0)gV$rb%OS`s77`&p!^4wiPp$d5 z-ljc(Ba?MQe2F~D;`w-_WmXvoo|0fG0`UV2Zl_}5^507aatVQ9S%cCu8{?vDyRY9c zUDihKa)aw!bTxI{P^?iB>jFAB3zF(g{!w(Ode!csOI;(|h0d z6a|0ZbI>TFriXc90Pn}J1v0|p-FREO*IYYR$sb?t-(U;h7q|ls!3F(K)ji?V@Va#@ z>-B|qZh|b*a>JbMw{@#SS$Qd>1eKl1ieAc_^Z9`l*9dpM@~7~N9-}p*hV9-K!F%|~ zZA%T15%26~uCw*%N1b;qmRe$2#!nsrV}q_KlF1X^hQaWpN4Y0K1@11qAA5=)D(@uX zj_I*us~;qVS_Yrm8GDxr5?}|3S`ph%a@Na!Lvj`446s$Ec83*2b6#p@{v?qR$V=HV zK{0B^>9cxIh?En);zL6Dq^5sSDIhZ9ERA$B!}s!Y9$F3E*s`iq3Z|$ObBvsUjTz}D zlj5Atqm~RiW-&b}&^GbLY!AIiW1?}w#f0y+0&zUB>P=z=_Lv*0426FZtya1lB?5l_ z@r0_!>Y0}eJb>oQ_-Aw@m-v|aEkV{&m$n$m1A+Vq4^ZwXVsF*`9a@0F@vcn}*RiGD zU2fxh{?0t%a8io81rI|rTfiwPN>mK8 z4=DY9x@FGELz;bn!~2GJWhBhHJjzdHw!*9<_>RnyO4_X!&h1MzX7Z%Ke3XMYi9=0u zFZSp|;}grR@Jn(UdZ>nGC%mf(vnlkU80WSS=IE7P?D*hWf~b{ENwWE3FJ$OAy|vCV zKOonw8_g)O^^KZbh0u#WJl6GU<&$g=P{e@9;Pq4ovP+J5`IgWD?AH#%_pT8xGot1ur4l#Kf>-Ja)y?qWYmw$+? z*3y?g*C5NO=nxkeqP0;-9u(1r7NJk?C&;Z9n+VfM?px%N&SijQuPMF`X%)F!4N*bXe0P^i`$1VdQOb43=r>Q5Wg zwEphnO~a%qzFEx4@yr8;yjvzo-L}+M@7|Nk2yj4N`=g^UMe5R1c^=O-ZV`iL-yZ5< zF5~f!R=XV^3fo@YrkW3!;>nJ)y;riGvxh7b&HbojuU&E7U4aw!!osVmQ`#zy)?8yI zC1s|W1ltqhdYnRcRSzo1fw246yiQNd*G@IW6T`J^~dyG z7z)lgXQUB0ef8m?%l(Zk4!?U_uXEMW6{uVFaKh<)>O%C$C}rVDlFl zFCykFCFTkg*t^;*S8Mz_j4LK>aaW-J>0|9!wSsAwCP*z12bEa8QiAh*ciR=wqLj=} ze-wkKvA$Ccce^5BS6Z^pD-*3W<%V@{Z0H3`* zx%O>XBhFktA=w6hvbGF1PDO zwPp(~7Fqd@j6xUjonL5A8#I8~kcjaIxJ7qqkNLp(hS**olkQNqxHL6JwwkO`DQPp; zx{3dW4unSXQRwx~hID`Q>M-q@{`@$NOEHMD<)Q;#&{}qdcZ(%lZ;j}L?R)jWco2Th zLB>4ba<4v+b}rk{HU>2*d2sgB>drQzX+36~%@KwTq?!oVC?0VV1#>R)2NWuU87V`w zxloW<=gEWX?c`IBnOOHOP(G2B?z)s^e+Nn7&+m18#Nl&&hT^=-z;v0&e4IHwi+(~r zXp4WCk#V>`RnlcCo}1kNrMA_5N21;UO7m1dtEy1+ai6QzGleQFK zGGyqb#;vH27|-@dsdKMnDdGMbf)`DqpGl#@M>zMC}iS zW-e#v&CO~#W)^8Dj25PSp02Y+2s9&8aY=mJ9BMCfne_M=T$_HxaSTb+>tCs9j&W9! z+xk|{LfA4!(=hG<9Xp7fXv;&r;7M25W?So`OW?X|>GTuoS%sFGQ{AogpEs#|UIX@& z-OC_;TMeq8cu>~)N%w)sMMUicW47>E%{yD`+^$vohSY#3V07a`b*g1#3}kWg@O80( z(~aaruVpLCsl>@+_Q}vT&_LW)@62SaXmE(3KlXc8;@txAb<`X9~FGT#k5j)c$=8)Yz|kGGV*Gw+NUQBTo0a(p(*##Y!vnbfzwx4kx|u-*A- zQ*rQo2srYz)tKEHCd%i3HZ+a$A?f>qE!~L!UAFj!r{?lUV#4h?4l6r#XTSFx;m~^L z;hkzFvsYQ$qN;S|eY(8OAC;Rcn63C<79?>aG@!dCr_XVU$E-1a^y0|W}#XZKevwzt|An@tT7k9U<-CRxl-ckaDGNK$V%T> zsXG~Jop>>P^*zE94^%tKPl!ytlC&=gpF4&Z1P#hIn9k{k>N+?HZ?jA!WX+d#S2Aor z{n=1)*{r3|eft4pP&9=vPjY@n(tS?3dUv^?<_3SP%<}sAF!rpLET%&S6ff#sJ4%Tl zo%#CgI`h(n6FIyS-|~BwJJ6!{b$Y`LuM%}X zEx^jlZc*5A3z>i!W z?^3Y_s&W8oeDU=EP~ZPa!1asD`Zw7g;O`VUuni$L=Dia6B)z>kTR zzo=OMo0o;M-Hv1NU&LIkpTY)weer)-LHi>^`D>%kWrOVmNnCs)zUWmy;9eN$ZJZe22o3C z%4<=xvqNn>JRMwJs9jvmJiV>#&Aco;>}%d;T^DVQKS0dRA5Ax1+KB7hdc6#d6x z!5`S~y*c>nQ2Li3{dSnpR?(YJ^~{4qkV5pvTV9FRwB+A^0RE3db0@q1=iU^}roc=7 z)Wg5_MwkWr&)yJC{+ky;{Fi6*OF+MQh4>9=nOcXpGDWf9h>J|>heZ_e|BHw7yA~+^ zs{+5oh5anSpEAa+3>p8lg#fVmiZl9$_wa{t4FJS!|K-K}66D{!-~{Z?r%GF`M%f5E zW5v-XtIUnCfAR*kRh^c(a4(8+N8XaaDK%p{>7&UPQ=LRC&^obO$lx(O!(HbmImFUdLew*)6`aP2 z?48@M7W=}a!AqOwrC*5|2-hO3GBkes%ayQ_$?B@^#3W4eX^KX%}-__F3s3g}E_6)psUjCK!)%lW!!| zYcVvRmA;n$fRguck42ROZqB_;QtrgJw6_pK5jLgsrJe8vVlH7pYQbv#)34`9O51@A zt#dhOH!cz1u*SM4bd(Ij`^!&V6V|cL6P}{3o6}B(VU!mWM%v!GAb_X!i{(Z?tqPI( zlgGA5vu?e>k!xq8n?>zW1uH`GDx9I8jE-oV2<9HG`5G^t7#22V6fP*{z3*+Bk5BuV zK0ywA2v0BdukYg(U^IXPxJsOi1ayX6n0CdR{_G?7U)@IW7xzEEL!`kC{L>LhF8`E( z(tp%V)h|K$T{o-2W;ZwChmbRX<`ZtckIU$NrgVURg!Zpm*KP*<|Mrl7c8>qsQvUQ1 zQprCld6A?FxlVu~(G9%9ToyeV4W-;s{9 K1srCOUjGjl2`^3n literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_make_tests/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_c_make_tests/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..bda56caab546896e3b14aae70c431f0cdb04577e GIT binary patch literal 324 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 Xm0jK5ks$XaIIscD0RH|3;E@(VJ!rQv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_make_tests/_variable_watch_test.cmake.in.i b/CMakeLua/.hg/store/data/_tests/_c_make_tests/_variable_watch_test.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..b087f19ef22bc0d1fa39feff4f512a82cc1c7dcd GIT binary patch literal 292 zcwS>*WME`~fF}$Lj8~y-#{W<-_q5RKH`Cs!~8=A z0Drqai>&`uzRs^7E_r=xkme zvpVQPx7Xy9$!n+IOrMy)e{R%d;2^jym zq0GoV%X!v;2}?smC#zd1Gaq_#Y4hC&H+N4vuvNkIs7Cj0>WZmgx^PlyHvEcZm^8oFEh2;PM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_make_tests/include/cmake__i__do__not__exist__in__the__system.h.i b/CMakeLua/.hg/store/data/_tests/_c_make_tests/include/cmake__i__do__not__exist__in__the__system.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b1fb567be55ed58b10023cdc1365bf33a1bbd783 GIT binary patch literal 89 zcwS>*WME`~07)R0fU+6?LxJBEqvz^U_u07S&N0$2eEq-Ba>8#0Bv7iarI4CiP*SOo Tk(!v2TBMMcnUkuZrOyQb7eN_o literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_only/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_c_only/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..cff37855316607998c5b2c8751ccf21ced474635 GIT binary patch literal 890 zcwS>*WME`~fUgV;jNwo=<9{d!JM&ik>qD6aOO@aKGd6IT_}`zrj{yl(%*pL{^lx?$ zXnp@%JMIE=jMT!wMdo*sRNb<7nS9(9IZbns2*+;UTN3|w=X7_n^BcF%%)hs%oRKy7 z{jatI7q^}joYvDC))rx3BELkpW?vDvoI%=&Uw%5lOji+G%Dl2^(VwO(izc19lEj<-f6pAR)&_P%4vXhP8F`G4h<-Tqr)g+G?P z>soy}ic#qThJQ>F6B70uJ8)ow7b8cF&EGwb@7BoNZ5Ev(^5yTJ*qFOA&b3Z8Hgne` zO(`;(JSq6n*M<Pc7C9i{53Vh^XWyz=*I@zBmJVr1Ao)ubEj zxJO`nW-u@?t3mAy1!5+Uq=MEsZw@*b?>-N{;af|T6L03!EeRl-K*8Y(`L0z@-pp+ zU%f;?M(Bx@#H$yJ7d%+bhpd}24F+ac}Q(g%e+4E!ukPXMX!bm0I1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_only/conly.c.i b/CMakeLua/.hg/store/data/_tests/_c_only/conly.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b95b4af37ce96535fe10dfd912f7313b6d650e1c GIT binary patch literal 250 zcwS>*WME`~fL#m>j3H1q<9{e9U;JZDw&LF_xki)EAGA5awGxT0f@vutZc{OsVZ>3EaaWS~DlLF6rfp z7XOXj2M%*wIn!|RT6Fq`Q{{Sd&&}R+G?vfwjaK;63pc8E6-ijLZY%p-ZuDPebN%F> j>z{~E&Dz_3{jheAbwg$N2D$W;>gns|oMgUpHqH|OF92_m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_only/foo.c.i b/CMakeLua/.hg/store/data/_tests/_c_only/foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..1745d5546b5729d61c7d087ccc13ea2074b60207 GIT binary patch literal 84 zcwS>*WME`~01+S-hO!y|L&5Ax&F2*^o(tQ%&7gSeqA1&XowJn;NT4)1Be6(JAuT^& O!B#=ZEk9q$nhOBfXBc+? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_only/foo.h.i b/CMakeLua/.hg/store/data/_tests/_c_only/foo.h.i new file mode 100644 index 0000000000000000000000000000000000000000..946511463075f50ffc8002a8e5ef2a7b2d32c04d GIT binary patch literal 83 zcwS>*WME`~0AU~&g0dO^LqSxDe~eC?o{Zb{F5$|VJ={OjVs#miKxt}4NorA^LUKl8 Mk(NSQe!evq06Rq%761SM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_only/libc1.c.i b/CMakeLua/.hg/store/data/_tests/_c_only/libc1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0c8c4d6b95b25c5b3a5810515183931d92d9b6ea GIT binary patch literal 101 zcwS>*WME`~097DXfwCF@L&5AbQvRERzU-PP?0;z2!!LSs_nQ1+Kmw&{Ir)ht3O<=h f&W3KKdC3}@T-96(3Pq_UrA2uPMtTO;T(w*P?~5M7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_only/libc1.h.i b/CMakeLua/.hg/store/data/_tests/_c_only/libc1.h.i new file mode 100644 index 0000000000000000000000000000000000000000..67a8e8d48f6a57a1507d88290bae86d6e0829744 GIT binary patch literal 91 zcwS>*WME`~0BInWg0dO^L%|)-8=;p^E*WME`~081dYfU+6?L&4UWA2uploZR$po_2ouCuOs5TB7v~NT5_XGcP%(G$mC* zDJL^2*+?%#iHj>OCqJ=7!6!4x*~qOlFIhvAtC~wep(wSav?x!(P|v`ctCkA@YY!v4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_only/libc2.h.i b/CMakeLua/.hg/store/data/_tests/_c_only/libc2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..69eefdc631195d4145aa9544d1ad14c0932504bf GIT binary patch literal 201 zcwS>*WME`~fKDL(31u_>hXUI$FJ0D<6N}t4BR)Nt{(hcO=3`+7Bv3IY_?(Zor*Civ z|MxG(W{-lx0vbMe2X%W->U|We%=D+(smbvX7nj4wGkZc<)9?Qfxc*>5g}lG|iakwE zH8oyYMSg{jS)1CNy!`yKTpjBIJDb!z;*WME`~fEx@9jIK~N<9{gF_-5LKLX`*hH`>m7e?RBCx9zn~Hvwnll z;O<{-KQZS$CiRTh_bqArA!9jx;pEV*k^;IOCO#VfWvv5NHa%?n{_bV%7ekwc4^Mq4 znR{AOk?qN;S0^;v4k)NfTu~cpYY=YKLa%%o+w%Dx= zq;$5{+t6K3Wf93X`J)8~Icdt$C`@P?) Qg6GQHsXy30=*K?;0EE+ms{jB1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_test_test/test.cmake.in.i b/CMakeLua/.hg/store/data/_tests/_c_test_test/test.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..cd86a76ba60922a293ee00581d86c67eb2fe0321 GIT binary patch literal 1113 zcwPZn1g84{0RRC20000000bET01Ar$0000000061|NsC0|Ns9Ja!i=AHaDYFnsWHL za+y`uGPq9w00000000000001ZoUK+{Z{j!A>iasaEktUzR2u`A(G!n(*e zDwXM{I7ZLL7k(>@Ala0dVp?Ysv{*@86BU%pyv|Z`oh)VYBvZ)i%8D3=OP8~V$J1am zpRm|>rVO68<*vMH>`JVnD5SAWKVvdqnCCLDiv-0Q4J$2*9i*zjgmZktoKsakeSxMf zJJ_l$BmZK(mKsxsDu`RbCiqm8%g0<4Y1gnDOs9@N0t=w`v-ijEW|iGDcg~&RzCJHM zdvJZdkwuA}?ftjv2-x#l7RroU2GPK$q&3HWWLgw-ye0b@fNcL99%|1iyW;4rY z5=?TvP`~P;NfHO*HOn#M@i%Y6$ROo83w-AD%Qs=q9DWP$=Fu&wP`LA@ zpgk{r6E&uSc}!UpIb(L&b2+t2KFg%8#A7B0@UG{p&aNrte{R=NG_=RsS98MH?DFf? z@hg0Vzp1L9fx-{rPYBA_^oRqn%WFu42B~lk3*5LA8w0KtU<;AB+Ba%2&deUHpAsc{ z+fzXUlC4@dxZVS}Dv&WB<$@@3kCr1?awp{R50Br*Y&zo)EfNp&3p|{&t5Zr+T2%@& zPeejA@;a|4p8qrig~eLb8L7!K5o?LYgx1`oBY8&b8j-D8EeNBYJB&cEa&r@0vH# zb3V>)JC)nkh~|b!en4DsgHWF0v|vlzyB4hnBWGmx(S~R~n}x^)Uf@TD(+2cs4BH>- z+2{Pm!Hko}NB&zKtU&M`J3T&dOvm-9$hHhA;E?885)`zQbnuzMNAS_yigY7%B3n2v zq^RmbmV25qe>jZ~(O?(^lbgV|dIntkaZhv5If7W|szsGK+T=piSp`|1nCp%4DCi_U z90#PQk)EmsMH^8lB2uzqEVSo%a|h_`d%Z{~-No7QQ4YO!6y{-w$4rMO>^@O`**DBj zKgx(`31cCc%jc>PAoT_VC-yV3VQ3{FS<0?U=70CXz@MUh3vIl;J-o6Kg@Z>%M_~6O fb9?EV`$O;C_2TXJ53)F%+nu`!oj?BqMqU}5$Q~jm literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_test_test2/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_c_test_test2/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..7baf74bcff028b8606336286508bdcc90e3c4a08 GIT binary patch literal 282 zcwS>*WME`~fLja4WX&EQJOz`9g;&;_wP`Lci|G1O37m^=*IB~rE%fxkpJDBF_ z70;Y2mgKN*P3IgXLGPt15*7<&EOuQGyA!~2g{k>w`3wp6bM0Q-;tQm8Pi1{(yLab- z)`lzpet!F!xa-QdFGl(2`v%7wMg;lyKHJ$?%cEG)T|f$t~aCN SkN1>tkzI?$-fOuhv;hE~TYhB# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_c_test_test2/test.cmake.in.i b/CMakeLua/.hg/store/data/_tests/_c_test_test2/test.cmake.in.i new file mode 100644 index 0000000000000000000000000000000000000000..28564acc7e18403573e0cf6306eccbc6bba191ed GIT binary patch literal 719 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 YmjrGo;`9#URoO>X8=WYY??l`PTLlC6cK`qY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_command_line_test/_command_line_test.cxx.i b/CMakeLua/.hg/store/data/_tests/_command_line_test/_command_line_test.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ed3eb5244a345edaedf9afa32d8d904dc2868696 GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|LxB<3ES2MCsy}85@3dYV@;>#3-(8p*FeuH;D^bWz%*@l! W*WME`~0CONVgR&X_L&2uY%smMwCc5stcHAExC!!tNO w*uy{6$0gp$H6AFW;P0p4?C9*_s^H}B@1vj;oS&PjP?lJfnV6K5s-(#U0N80FbpQYW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_complex/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..12d05294c812882be3019ff1f576d2975466e1d7 GIT binary patch literal 5616 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 Kd9^p_vK(c#)aLO3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_cache/_c_make_cache.txt.i b/CMakeLua/.hg/store/data/_tests/_complex/_cache/_c_make_cache.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..07d45b39f0c0657179364f88c29a81b6cf6a104e GIT binary patch literal 477 zcwS>*WME_f1ID=w49sN=P|klSc(3^J$oiJ8$1cA3-5&8+uf}bc=o1DcP%&riL`VO} z1_G_`e~NB?)yRE&MM3u!XAj@b6Wdno=$NNvUbxaVOZoP~v-|IVba|`SQJ_?$Qf>3T z`tu~l4|9tePQO=4sXwy%j7#V3wX2>QNF7+aaYJTEY~!T>O>OV|oY@XjkA(EaPqpXJ zeq7XlYX--D)3-ZI?j4He{kTxPlg);^Q-7rJ_-I!N=gFZ^3yv@qHrn(NX;y@Q%2`HpfY11D|WDDOF6bMBA% zVyYDa?<2U3YY#rEC|djNQOD-!T}x7C1hiO`=JM$sJXXEU>&L6c-uai3PVPGN@^<#d z>4|?H-vA|7Fq? zn@_HGv-`Fm`(hTWy1nwCTu`0)J&xPA%jVuW^ZaPVmD?NA&PQ&Xv*F~;TXG=pg_A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..451a96f8492080f30b812063b6e8cd9cd3501f40 GIT binary patch literal 173 zcwS>*WME`~fLtIhfwCF@L&043?-D&{BO+TLCFp+mv9juk66bQ6H!?wS+`T{lOKfv3RX8QKVovU?m%a_&CFVJoYZmjz@_4K6 F2LNQiNnQW| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.h.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e2400beeba7408e10031f6fad2c4397ca2725db4 GIT binary patch literal 178 zcwS>*WME`~fFdAngR&X_L&4Qq%j>ss?h@m$H@*WME`~fJh*Yg|Zp{LjlvGR>miRe!j+K3$;qN&yhRbGtq$o2~^CHJ#m(^!GMSD z!tUUjE7fxsTJLDcZQ{J*_KUf+`snS)xzc49*&a6USk&3;qj618^5nW`V_^^N<@4l^ jT)epSmIZ56keu(@8mAAL=TiUnOXyV;p5_+#tKbX(ZTmXc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.txt.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/_a.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2fd7f78103e69778decf282ccf596d7ec681810f GIT binary patch literal 99 zcwS>*WME`~0A(Ong0dO^L%}-cq@LiEeYe{ZF8IGYHFs7{@e~CHBv2ZXky)&emYI{P cP@Iupnv?3090vec2?f^4~jie8FZ-7Iv#uQ3Cj!nK|EF&RkHI@(1QEHA7pvOV46|x|+q* z(KWMd%{1Vh^vif~F}MIF<$lhAKXVCi!Dh}#5v{yA8Bg^B7g+u5%S z$8FXx7!TP_VUi77^OTD5P!h5ZwE0Lemn)s!c%@XL(6!lk0B`|%7(YUufU@)-IYi+d zuIifc!Bf!?iep+Dvqva4+3q6#?9DVowr*+jbt*~pXD3A(@bR~?O&_1Km+Wk2HxHvQ z4|z5Xw)}bL=iepaZ`As`1mu1?9xy{aZfRj^H{<0QxMaz60)%mvbAJuVJvg$pV2*b{ zfSxIxU&+NCyY!XAvs@4FQa^pUI$W?fe#+PTWu>z|9&`^OJzL^m5$**L8{8*p5XKMS zgA_bJ!+jWWLKG)C+!bN8mI#|?o35oWZ?5Ug_Ewg;VwOWt z2}aK}^jmm`N6V_}u^Xnijy%)ZNCsIj%F<>-Z}^`-qrVTxs@36d~E`$53#(RKXh&Fgh{qlWMtIt_v?-Vdmv z9LiXQlOj%=!^kzXo39^MCk<7v{m*opHOwT)FddkgmM$AAEzzP_!^FAxSgw5Slyn!Q z`L9xS*8ocN9U=Rr<}9&PD^iDLggJ}C5<@Y|{X7gPZ^6@s#~7)Zh;gy9@iWLb95VDS z#P}u&mk4Fivn5j7ksVFhr)UB~u2#dUHS{5@J=^_CNNy8&{5?piBHB?VVO&Sk=-%)6Y+5+n^_mei_wTU&2$dAqcFd)RqL-LBM`ccG$|36G&0I}a zt5n^2RXkJ&EG9cu4#Bka+DDCo%kHzMHDV1YQlPAa=)mFl{|b>zd^$pO^pA#!-apff zr-CeRRQY@y;)J2(-AmuTc%7@leK?v?-s+XRI*kjdVhE{{R!+XQrfJAww+Lqpq0XS@Miq9!{u8< zcV6ci68+#hE7v*K0RSz>b@kcj_(JyZ*HNNWL<~WW;r(W_mgcI^>>|`=^AK}@pSUpj|yxGaqxkyzuOURDj3vW zT-%_jOtipD`&x9a{qfg6sWY!tBXSjlQ^UmDA-lSRAb-Pu<%-^x&J~HboMGMOmZyDb zPY8-EPqu)=OxXhY)mSO4Itk;6A4Sz})~RwO<_4%DHaUy4c}RN@3gS_%C2xh*`W^ zq?QqANQ^UVb6}msxcd|ad`ytZFt$5udf<`6x4Y`6p*rpe;up!W7(`BqZ(MsT3DvL!f{W0!mt{fI-9d<(_#x(mo4-gwp_OOnRD1f zu2kfrvNk_>2rmwVN*^uFVMj2^Q=GqL$%i3%7Db=Np`61pBaYeG9A}|Y&PJsiqWTwp GQ@I3X;(#gu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/_included.cmake.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/_included.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7928ab573f4520447998a051035d8a2140524f10 GIT binary patch literal 114 zcwS>*WME`~03#qagt8g`L&4QNA;TLAQhD|_Q>^AErHboBbNpjK0;TS*A@MGrL9Wgr r{y~xP0YUx&u0bJ@8a{6EVU9kbt_nV$!69y*KCbb>A&$=8np|7}mYE)w literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/_sub1/_name_conflict_test.c.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/_sub1/_name_conflict_test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..25e2c55f45ab75139546ccfe73391ffff3f744fc GIT binary patch literal 105 zcwS>*WME`~08Jp)fU+6?LxGB_OtZ#j)e919D^7R(6}{HA#?^`e36y5$l_>Zn=B7I5 j=cVOjCYOYy7MB=mXmV9^DJT@BmXsFdDHvFD)p7v<;o%-~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/_sub2/_name_conflict_test.c.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/_sub2/_name_conflict_test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f26f2cc1daacb1e17936bcad1572a44a2bfa35b6 GIT binary patch literal 105 zcwS>*WME`~08Jp)fU+6?L%{(N1>wHL)Bm3*OyUlHAEsD-QE)v25-82gD^c)E%uRL9 j&r8e6OfCsYEiN(A(B!J-Qcx&LEh#O^Q!udRs^tOz3LYNw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/_temp/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/_temp/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..9fc26324a5005b611f124cf87a165d500a7459dc GIT binary patch literal 285 zcwS>*WME`~fV&I~j9ySS<9{glrfqs~ecdVM#C(-Q$Ksw(KXLX)Is+1@n3Fo;Y}R1| zftL4mU5zZ0WM0`g&t8$BQM&p@`@EhvIUNqu=44!5HDzCQ==OK~mb$0Um|MTmnZ1z5 zhJ{U@lRfvuW1r;<&Tn!5-R1iH*TI082H7haCxnAlKd*P0xa+_w(-!gEGwD-UC#Sz~ zj@lx>Gv)F;+bMUK3-7H~%b0h_Dt%^7(A{_?-`5pAUZvAkeLcsb#?#ebH}%GvHLKfq zWi6>#!>zgPY;K`?*=e2we{w%xU4L`x);k?((I>ud{jqY_zjgD=4IkMT1mB52y_|c& WqPiI?R=@PLbdO`a$sWBr{}li*WME`~0COPrhO!y|LxCX^!@`2a&+NGT<#XeI{P3M4_jCaR5~!FH?C0rw`iysI z!MD;cWxe0Oe);@`_iHbI5iieIo}$uD{$gIPZ(qI#2L!D=wti7qCpSZCr&u)r*T*cD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/complex.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/complex.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4847fa0b672318a818a101f03fbaf934f8f4807e GIT binary patch literal 7349 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 EA4h*HD*ylh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/complex.file.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/complex.file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ea790c2ba19248e5b4695d408fd1eb8eee690467 GIT binary patch literal 147 zcwS>*WME`~fM6gFg0dO^LxGxAkb8}9??>jzr7?nM1+zXyHt;bZfl}qnGz9}L<;=X~ zoYIt31*PO%-^}9T%)E4u)Wnq3BE1YHF6Gp`l*}|PuFSj=h1|rQu}Dix WldGCbL7^zMq_ikc!N8iUmJ0x*T`CIz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/complex__nobuild.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/complex__nobuild.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7134e2a1115f56b84ce381202e687f578fb1890e GIT binary patch literal 108 zcwS>*WME`~039IKhO!y|!+^r0^y`j=DqD^&Qk?ogMr6PDG%W@sP^z3-RFq$&pcImk kS*(zjnUkteoRMFelcJE9U!stds*s$YTL2VI(Np3A0F&k+Jpcdz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/not_in_all_exe.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/not_in_all_exe.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3d99093d44a89d5486c96688a1c4f30603f7c434 GIT binary patch literal 185 zcwS>*WME`~fJz|lg|Zp{L&1zQjh`m?Px+HFDZ}sD&!dyNkIz`ffCMV$A@XVTYmVq&uKoAeRbt) zeHZt5_lxV6n=>AZtN+#iM_{YbV;|icYb0j6JNs{1XkQe$|{Q{D|9` RV|iQDH5KDp#`})C69Mx&O=SQ8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/test_system_dir.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/test_system_dir.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2e7f4a83bf3ccdc4ad9236648c80e67a7cd7a33e GIT binary patch literal 122 zcwS>*WME`~04pH2gt8g`Ljm*Ooa9dm(-v;s+y5eUvHFyab_YTkkU*(&W?phmX-cYs zO-X8TNpNLxNouZ3W|3Zo9T!(-UWr0(VrHI(rb4wsQEEwPQJz9te!hmLwL&cy0OeRF At^fc4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_executable/testcflags.c.i b/CMakeLua/.hg/store/data/_tests/_complex/_executable/testcflags.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d3ab384c48e7bb30f2e24d4a4e193eb0df6fd17b GIT binary patch literal 335 zcwS>*WME_f14e!Z2Br!IDCa*EcsKk~XZdjGSaoym4xK5p6H?6E+!>HS#hkel&So_` zNVtCgEHZsZpr+^UZ6YpeidO_KM(z-P-DBl)`~m;cDf_Cg-cU0$nX)eZ-NPF9$y%CL zdLM3V*&1@ws9wosm6(r-Zue`SEqdOSPsUgELK)X&~m@$cSZyW5u%Wb$LJ)-e^FT)0YXeQ0fj zL|Fey*V|XQzKdOKd1UlgzfytAF4->P$>W;U#ijBaj1FcTP*Uen_n90XTUb;h_+tHZ zuL6%&3C>IVgw9+QNPA&4|DQ-dKhxrWtg-X`d6tAOcl*P+@6Xng+h5-Kylk+M{&9J9UCY(_Zd~Ix!L6iTC*CT%DYwisHJ-E&Taeae$ts_S= zxPk2(773lee+c|=Vz@;29ruZwp^(!hMiq-#5<{BI%c$IPM8#diB{<&P8!gCm1=$E_ zwr1PWioZ?rIIR~aprRTrcvRpVZ5WUZD)SMNT(K#l0(-hCO+?Q*EbmjzZ2PfN-E`j9m?{rCZSp^=ZYF zz;nA1d1E^GVc1{qhG-FfwjCezrx}ts;XoQYuBq7*Njp$2!=C-v(*RU3n1=mL*}wzh z)QST;z=F=}B{T@=)AH-x2z~znsl}QlS@IY9zCnDUWlqz!Y+_H&FLER{?tCQfv5^#o zTq}H6QHiP#;Va_D6T}n0O3tb9{IA?54}*8Fx#;uj*DhhZ3nHvyQDY)n&Ll7iWa4Qm z0!aq8tYdmOHMN-s{p;5jVFx!8pLqWMxqm^6-f1c0Z;CwKa%G}?l6|3g8cZEWc^3MS zV1;#AtZB)%eFVI(L6u}{G@UZ}iod~v7ct0alvf!0Y?Ul?Q74<#K+yALAO5&hp)Q%- zs8-y%vE~kY`%oZ`Hw3r>yWpP9pvYlN9dCrD{Y%VUI}Uj zyXL|rCCDR8zkY3S@4(W0{T>zfk;1i^9(jWWz#^Wf&B(w*+d|^Hjtl+H8v|nBVJ|#K z7;cNt(6qZ+6?M9RIprXKhI!4n3)`j~;P|zLXMKam!!ZYWm#nZ~il#Z@n8*Of9w#e` z=WD*9hx+5AbOpcjg=EZMJgGvSfjyOn_pc7MlA?X+jo4}E><}r+Rl@!>_NgBj;#ft1EF0u^WQ1QWs zk0|H|oK1jm0cD+YPoE4XJNR>z;M+eFoSoFH6p5C~5BezM6AHz0u=&&&cqBV&$YlXZ z_(X((BxVoM7%LGDCCzXEfQ0c0iTi0n9`NqO*1I~1@>iql4tx77=qoE=p5(AdN*T7g zB!*+dM(=Z+cdAnAf#*9`s5_R0on)X2-UW>hE(ynhVNM!t>+qvQbU@d|je2A?Key~w zDdi3nUK_Cu`+u0r!|k`Nb+C>7o91Fxd<@?A8Y~;Oe7z1bO3?tUsw=7!&?qA*4h%;YK zgwM&cF6n4B>^#m_oOcW04(Hw!m*i`5w4c1?teA*F5qQwy-z{z&&rzMCZ=3BJIgDIO zQ^Xm_qizNh#KA?MqiN81Dc9b;$|cPaKbGJqh(iXJCmd3766bShC5Lh`ZyaW7wYE9f z9F9W_&wY+?A9yxPM)3y$pShZ)wlbCE*ppQlVev%{9orI_DA&pL1=r=5WX&@tm){y7 z0_&(``>zW`?4!vs&eIV#v2_|T9GkOBovw41h&0&(mLbfJ4PA`HJH9Sh+S8Z_SnyXW zGz|~;V`9(zdu6}lJ%*aA-y1%T8-dG12A{A*1-5@!DvuRD&7_u+Xmnt}~)T#!F&cL^|>bChE0L~q)=j4LKW*qI{JtvMfJRE6( z>k`{*WME`~09hcGfwCF@L&3vJ>-?%0(g8aYW*$FLwA*Uyo(UWr0lW=^W1 Xh9*}vmx4l3YDsBPo`Rt@S1lI+;`|%) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/_extra_sources/file1.h.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/_extra_sources/file1.h.i new file mode 100644 index 0000000000000000000000000000000000000000..478586186297a6ecafc0b5c0cdeced65199a4808 GIT binary patch literal 78 zcwS>*WME`~06rk*g|Zp{LxIiI&Z2wPMRg&an~v^IyW7WS8{Nc!1WGgWN)*yEb5ad8 HG_AP+DnAxG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/_system_dir/test_system_dir.h.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/_system_dir/test_system_dir.h.i new file mode 100644 index 0000000000000000000000000000000000000000..35102b9f2e75548e39a4f97a8642bc8cbf1817d2 GIT binary patch literal 145 zcwS>*WME`~fIuJ)fU+6?L&1WLB0r>d_q)!R@v3}n9bd54q|ONpNT5_-Um>8hs35;M zHK$S`CpEDwRUtnuO`#+sRiP-gq_ikcp`@}PRiPwbA-O0uu_RR?QK3AsC@(WFU5_g* RKVL&rp&F*pz*?b}3jnBaE^Yt- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/_test_link.c.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/_test_link.c.i new file mode 100644 index 0000000000000000000000000000000000000000..293dedc03554e4f22b3e077b6c59125295235018 GIT binary patch literal 153 zcwS>*WME`~fJh)tg0dO^L%}x2a=m@J$AAA7uGG`F+9lE?aQra?5~!GS`iyoUho`RI z$CGDHm-*{*uGI0kdf~~cXF=zDyghw`3%>cD@oPQFo~|OcblH*JZY)38TUm-VHAI$9 jn*WME_f14cdu1||gtDCa*EFg5i(5nQ5c5Zb<*jWsQJL)0>RP6i}UF=y(8`0PUl zB1i9k);u@GQQP%K+|@%GqFi_7u8Fb*yRGSDyXA7J#IECht@&DhzGMF!cHFr$`?Ga> z&(w9V^0W=|?}p8MX_xl+b>LdFx?@wyGIm_zs5$<2U01-{okv@K^=~gd;l~po)ObI! z@Argv2Uf2Cl;Ekx%*2(g+#?ryTWfFgv)+b@6IO{8uuT=c)A`b?|4`)mEr&|Olxxq% z-J8xI8E3cr@FSn8=ZsDV`$W0#V&nEG7O;Aue0S~1=N1K1w#&`a`4IB#Xa7U5v*yk+ z{)cnDBf1xd_9@*D*v28=e&3nz*``&#+Io_Q>}P$KD*C_wvFMeOz6FInNB*z*|LJ|h V8|{r6lT~!PB&|35|6ae)0|2g=n7IG| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/dummy.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/dummy.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/empty.h.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/empty.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/file2.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/file2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..be84c15999901fcde4453f915c5fd230855c4edd GIT binary patch literal 206 zcwS>*WME`~fIc9e1Z6Y+hk~^#i)Bk+2>e*I>EW}@72jU(4c>T+0SQ#h;XSmM>yUu} z!-K!`9xdqBV~rJEn89`MpTpXw;0w=^`j5Fx5@G*%_v_=+H+ajgwcMV;wA5a?XxE8C9AhS)=bDM7k oyF3@(S35&NdHGF-4c-|yE>&%8;a6buDlXV@>wtJ&%}d>n0F}>Oo&W#< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/file2.h.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/file2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9ff7f5a1773723ef2afdfba85ca8fab7e71077b1 GIT binary patch literal 78 zcwS>*WME`~06rk*g|Zp{L&4=3bBE+pdOY0sx6Ybi@Zy>i!^<`XBv6`}SE7)XnUiXy Ip=r$p02ELa)Bpeg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/module_file.c.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/module_file.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3e984f685c15489f3826fc6054049847a8022f0b GIT binary patch literal 127 zcwS>*WME`~0DB;|gR&X_LqYLYnH4J^@Rl2YiP!&eH;~EXQA{8M5-3&9%uCKGO-WTy z%FRzH%}I63%t_VDP~zgs%qvmwg$R}AC6{F8=V@qiRdXpQ6s4Aw7Ud}zT65KM0RTMw BCYAsI literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/module_file.h.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/module_file.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b8c3bd2fc4e5b8a92f4045d6099d84ace450029d GIT binary patch literal 236 zcwS>*WME`~fHe#ZjQUVE<9{gd&v|v#uF@KbORXj|AcKlIz5RQ+4mk+4 z{I2e5HSwI~5ERwb)M}rhP}ctBTgk^e+&jCMoH#7~Wl<}~w#}cKxm?f_9V6S>})9~woj#G@$^@?`(r~h%xE%^Ag_r~Gu TOPe0w>R*WME`~fD9l`hq4*}LxD@E?7Nhh*8Oje9SZK0xbV2bhRcir36y5$l_=!pmw4tm z=H&QfCb^a7C2MFZR4WvvmXsFdDHvEQ)N*ktXQn9_aw#jM78T_eDJX?xWELxwBo?Ko smM9cwxbC&n?KzNlj5ms#I|F@zGP_QclfF$xPz{0KTR)J^%m! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/shared_file.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/shared_file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..50c4a6c3d65d6488e0e358eb2aecf1d10de0591c GIT binary patch literal 127 zcwS>*WME`~0DB;|gR&X_LxH-ez!Q)2A5*WME`~fK3bxjAl?a<9{evnEqY9EuZJB@#+4bwU(E!25e!@WIzHHb9(#zxtkmW zj=uk`$+l;OxMRQUVucs-nm2sU$QEZvr*WME`~fK3bxi~&$K<9{f~YfxOJ<~DWDlsk?Utv*`mKe(^fFd%`7Idl8Zay2=K zw0^fcnpbz<2P$8@Bhr?%JT2iyY&LkBop1VJ|vx-xqnYZ>I5z>{}l~W zYiqYjEn}3jwm8egui(1$h~Q2o$EVYNO4P23E-1d7@qE|KTd(t0CocLR-zlOpiK|;l af8WeA7o5ZM?QgfMbl2@HV!ppFbus`7BxrO1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/test_conly.c.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/test_conly.c.i new file mode 100644 index 0000000000000000000000000000000000000000..81d14eba08c8d78e42af04ad86328d942c1a65ca GIT binary patch literal 219 zcwS>*WME`~fZ0HN5z1!#4+X0hToX0i!+3tZ`I%$7J{1eje)FEhfCMV$g!UM6A2JYd z`~F+heb*N6i&r}oj_$JHc&jnx((VfmJEp0~y8LT~wA2D_!&N5~!zS-Y zx70eZ?}voa&6P6#3}H%PiEnI!_nr`Vt5V6h{)?$o&W61vx#6W>-`3Wwe7Yu>X8y6N=FR`Xu>OOiC;&u3 BUfBQu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_library/test_conly.h.i b/CMakeLua/.hg/store/data/_tests/_complex/_library/test_conly.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8ea858c2555c6f58097df530c653694d7d47ba9d GIT binary patch literal 245 zcwS>*WME`~fUOJ+j8;%K<9{d+P+29tgEwut$;NAb`{ow7CM?SO&wvCf=JfXab2m8% z9DV;=lWot6=??v}OBG(oYu@lZBU_vyom$SzY+s`k)y}bNU*&%D_m&||MM|j0|Bt`0OV(LA=f%SO(^nXky_jQecm1%M_D|62 d@uSz$8(UBG%)X{8UKa7b%A4^KtGhwE7Xa)MWnTaQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/_var_tests.cmake.i b/CMakeLua/.hg/store/data/_tests/_complex/_var_tests.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ea4cd8e299ae24ca14ad2596f9715900eb75d1c1 GIT binary patch literal 1095 zcwPZV1i1SE0RRC20000000ajB02ciK0000000061|NsC0|NsA+ctkLBk8o(Z)qY~( z3vkWQUz}C|00000000000001ZoUNEaZ<{a_$M5+R7U?08wsfJ#oG3UAQUWcIuG?XV zP|`+g!+Gd;kBlaUA-+K8UjY0faE>^?T?)82p5RAKzO6 z_%^HuOdRRCQyv)h0I(b#y0@5UX&cMH9 zw@FqnnSrYGSzi#uwXWwd4&dF=4Pc0FHDXKwG9~`eJFy!wPb^fef=lObd*DtlahpJz zzpggh91trA-kG79^rjjuNGInHiL4O7!Y35sGPutGY zI?uZlHBVVN%arrlT@*m$_c-*IfsIIRaJ;-vcKAzgKT2QG8d5D@AgPJZ z;tQ?fHLyKR7w3KN^1pA{I^P{ehxdcNEK|k1dJQRG!M9L>*v5w&bPlp3KlmX}QU+`t5O-dS=ytHc$d9)yrvu`kMe+5e)R}(Zr^FJ)+Q(k}CR; zU_RXG|@r>#|>P4Mma8CpVrcj(m)GRc#Nxar2X{KWV881>tW?c z@u8M5=}v`?S#(EBRw>`VP?YXztMri_63VgYL-C-oajFt&A~)TUDD<+VQs1Yr+=|&4 zp}lfwvRU=h1uI9EW?Gp|Gkm5y6c#tR?%Zad8e82Ncyq;72X$E@jVG=P|p$CACNen>M~kDBr-HCQ1H`K-i_00)Q4=`p?%805wg;7c`- zgrSoTAEHJ!imBI*zst+xIC&R~`pM^VKx~t_NMG?(*!gz7d3xJrqvz3P+d3mHVi=7z NfnBo({0DzXTkTI~5ZnL& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/cm_test_configure.h.in.i b/CMakeLua/.hg/store/data/_tests/_complex/cm_test_configure.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..9227e5cb9448d35703430d9199c291d0a205fcc4 GIT binary patch literal 821 zcwPZD1IqjW0RRC20000000Q*@00>3^0000000061|NsC0|NsAhxjCnN>-iPBBR-4J zBr0QH_V`Kw00000000000001ZoP}1~a@sHuedjCGG?Qs2nMp&wK*$T$)RtXI4xuj^ z3MTOca0k=dWb*G_*??ti=u@n7&PuD*o+Wp8M5o1;DA2d$kxEVn0T>Bi6D~pZdLL)2 z>1#Sq7uh-`kpP35PS9{=JQ#8TUX%X@GAg5*FpI)CfG49tX~RPL1p+=m&5l-Daxt=T z`W-SB2}ZRmtPnSqvCjiIM3yVu zE=Yh}zWsj5mZ|wQ-Ml-gbK#jGs&1>#m};L)*K>lhEdN=M5$KW^Gz4R7g=H3+%<|Ru zY(3p(`MPlKy%*Yduv;0sDl_h6+)KKG&Zu(%@T6OM#Ln$+#@$CCZVS4PD|2;oY5;EO zgNS;D;j=&;T`sHE+V{c{dkyH4rJ1bF$6J>?NJOl108D z3$&YKjsX``PK?LPNy75gk7fGD)M#U(STEunlE}ICLexvbaALWtdtJoc0q3YuQ6d?X z_Ejd9culE!YnWQv_*5A>z=BbxPtapY<9*jOY*mg0`*#@7k=mQ8iMp05`$$1-mHTfu z^-cPm72C~U{Fu%$EL)H&a{kGTxp?SbldCK8;eZ)786j@W_2CE!BaWAuR6Sb`H9V}1 zT92gbdA6uem+311mD&Nf!a3;d7)Fn<>#S-s2XNEpLo`E?%@2dSSx-Jh|0wQ(*-vrp zgTTT9OZ4$?R$B~#f?Di8cV%FE=&_ATsJwJ-_R*WME`~0Bs;PhO!y|LxFhm-KXn#g8nX9zlrPcsy#e!f8X52fCMV$1p9gVo<8Fp n%E8C^=}U1x|975`9sE3B`3rf&0)kc^6ImPjh>2mLIsaS$Hti+! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex/cm_test_generated_header.h.in.i b/CMakeLua/.hg/store/data/_tests/_complex/cm_test_generated_header.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..00ca92516bbfbf146223246d0c5d43b7577a6fc4 GIT binary patch literal 99 zcwS>*WME`~0A(Ong0dO^L%~&^KP?aQHZ0dSs$3jlqh9ZvuN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..12d05294c812882be3019ff1f576d2975466e1d7 GIT binary patch literal 5616 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 Kd9^p_vK(c#)aLO3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_cache/_c_make_cache.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_cache/_c_make_cache.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..07d45b39f0c0657179364f88c29a81b6cf6a104e GIT binary patch literal 477 zcwS>*WME_f1ID=w49sN=P|klSc(3^J$oiJ8$1cA3-5&8+uf}bc=o1DcP%&riL`VO} z1_G_`e~NB?)yRE&MM3u!XAj@b6Wdno=$NNvUbxaVOZoP~v-|IVba|`SQJ_?$Qf>3T z`tu~l4|9tePQO=4sXwy%j7#V3wX2>QNF7+aaYJTEY~!T>O>OV|oY@XjkA(EaPqpXJ zeq7XlYX--D)3-ZI?j4He{kTxPlg);^Q-7rJ_-I!N=gFZ^3yv@qHrn(NX;y@Q%2`HpfY11D|WDDOF6bMBA% zVyYDa?<2U3YY#rEC|djNQOD-!T}x7C1hiO`=JM$sJXXEU>&L6c-uai3PVPGN@^<#d z>4|?H-vA|7Fq? zn@_HGv-`Fm`(hTWy1nwCTu`0)J&xPA%jVuW^ZaPVmD?NA&PQ&Xv*F~;TXG=pg_A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..451a96f8492080f30b812063b6e8cd9cd3501f40 GIT binary patch literal 173 zcwS>*WME`~fLtIhfwCF@L&043?-D&{BO+TLCFp+mv9juk66bQ6H!?wS+`T{lOKfv3RX8QKVovU?m%a_&CFVJoYZmjz@_4K6 F2LNQiNnQW| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.h.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e2400beeba7408e10031f6fad2c4397ca2725db4 GIT binary patch literal 178 zcwS>*WME`~fFdAngR&X_L&4Qq%j>ss?h@m$H@*WME`~fJh*Yg|Zp{LjlvGR>miRe!j+K3$;qN&yhRbGtq$o2~^CHJ#m(^!GMSD z!tUUjE7fxsTJLDcZQ{J*_KUf+`snS)xzc49*&a6USk&3;qj618^5nW`V_^^N<@4l^ jT)epSmIZ56keu(@8mAAL=TiUnOXyV;p5_+#tKbX(ZTmXc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_a.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2fd7f78103e69778decf282ccf596d7ec681810f GIT binary patch literal 99 zcwS>*WME`~0A(Ong0dO^L%}-cq@LiEeYe{ZF8IGYHFs7{@e~CHBv2ZXky)&emYI{P cP@Iupnv?3090vec2?f^4~jie8FZ-7Iv#uQ3Cj!nK|EF&RkHI@(1QEHA7pvOV46|x|+q* z(KWMd%{1Vh^vif~F}MIF<$lhAKXVCi!Dh}#5v{yA8Bg^B7g+u5%S z$8FXx7!TP_VUi77^OTD5P!h5ZwE0Lemn)s!c%@XL(6!lk0B`|%7(YUufU@)-IYi+d zuIifc!Bf!?iep+Dvqva4+3q6#?9DVowr*+jbt*~pXD3A(@bR~?O&_1Km+Wk2HxHvQ z4|z5Xw)}bL=iepaZ`As`1mu1?9xy{aZfRj^H{<0QxMaz60)%mvbAJuVJvg$pV2*b{ zfSxIxU&+NCyY!XAvs@4FQa^pUI$W?fe#+PTWu>z|9&`^OJzL^m5$**L8{8*p5XKMS zgA_bJ!+jWWLKG)C+!bN8mI#|?o35oWZ?5Ug_Ewg;VwOWt z2}aK}^jmm`N6V_}u^Xnijy%)ZNCsIj%F<>-Z}^`-qrVTxs@36d~E`$53#(RKXh&Fgh{qlWMtIt_v?-Vdmv z9LiXQlOj%=!^kzXo39^MCk<7v{m*opHOwT)FddkgmM$AAEzzP_!^FAxSgw5Slyn!Q z`L9xS*8ocN9U=Rr<}9&PD^iDLggJ}C5<@Y|{X7gPZ^6@s#~7)Zh;gy9@iWLb95VDS z#P}u&mk4Fivn5j7ksVFhr)UB~u2#dUHS{5@J=^_CNNy8&{5?piBHB?VVO&Sk=-%)6Y+5+n^_mei_wTU&2$dAqcFd)RqL-LBM`ccG$|36G&0I}a zt5n^2RXkJ&EG9cu4#Bka+DDCo%kHzMHDV1YQlPAa=)mFl{|b>zd^$pO^pA#!-apff zr-CeRRQY@y;)J2(-AmuTc%7@leK?v?-s+XRI*kjdVhE{{R!+XQrfJAww+Lqpq0XS@Miq9!{u8< zcV6ci68+#hE7v*K0RSz>b@kcj_(JyZ*HNNWL<~WW;r(W_mgcI^>>|`=^AK}@pSUpj|yxGaqxkyzuOURDj3vW zT-%_jOtipD`&x9a{qfg6sWY!tBXSjlQ^UmDA-lSRAb-Pu<%-^x&J~HboMGMOmZyDb zPY8-EPqu)=OxXhY)mSO4Itk;6A4Sz})~RwO<_4%DHaUy4c}RN@3gS_%C2xh*`W^ zq?QqANQ^UVb6}msxcd|ad`ytZFt$5udf<`6x4Y`6p*rpe;up!W7(`BqZ(MsT3DvL!f{W0!mt{fI-9d<(_#x(mo4-gwp_OOnRD1f zu2kfrvNk_>2rmwVN*^uFVMj2^Q=GqL$%i3%7Db=Np`61pBaYeG9A}|Y&PJsiqWTwp GQ@I3X;(#gu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_included.cmake.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_included.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7928ab573f4520447998a051035d8a2140524f10 GIT binary patch literal 114 zcwS>*WME`~03#qagt8g`L&4QNA;TLAQhD|_Q>^AErHboBbNpjK0;TS*A@MGrL9Wgr r{y~xP0YUx&u0bJ@8a{6EVU9kbt_nV$!69y*KCbb>A&$=8np|7}mYE)w literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_sub1/_name_conflict_test.c.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_sub1/_name_conflict_test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..25e2c55f45ab75139546ccfe73391ffff3f744fc GIT binary patch literal 105 zcwS>*WME`~08Jp)fU+6?LxGB_OtZ#j)e919D^7R(6}{HA#?^`e36y5$l_>Zn=B7I5 j=cVOjCYOYy7MB=mXmV9^DJT@BmXsFdDHvFD)p7v<;o%-~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_sub2/_name_conflict_test.c.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_sub2/_name_conflict_test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f26f2cc1daacb1e17936bcad1572a44a2bfa35b6 GIT binary patch literal 105 zcwS>*WME`~08Jp)fU+6?L%{(N1>wHL)Bm3*OyUlHAEsD-QE)v25-82gD^c)E%uRL9 j&r8e6OfCsYEiN(A(B!J-Qcx&LEh#O^Q!udRs^tOz3LYNw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_temp/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/_temp/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..9fc26324a5005b611f124cf87a165d500a7459dc GIT binary patch literal 285 zcwS>*WME`~fV&I~j9ySS<9{glrfqs~ecdVM#C(-Q$Ksw(KXLX)Is+1@n3Fo;Y}R1| zftL4mU5zZ0WM0`g&t8$BQM&p@`@EhvIUNqu=44!5HDzCQ==OK~mb$0Um|MTmnZ1z5 zhJ{U@lRfvuW1r;<&Tn!5-R1iH*TI082H7haCxnAlKd*P0xa+_w(-!gEGwD-UC#Sz~ zj@lx>Gv)F;+bMUK3-7H~%b0h_Dt%^7(A{_?-`5pAUZvAkeLcsb#?#ebH}%GvHLKfq zWi6>#!>zgPY;K`?*=e2we{w%xU4L`x);k?((I>ud{jqY_zjgD=4IkMT1mB52y_|c& WqPiI?R=@PLbdO`a$sWBr{}li*WME`~0COPrhO!y|LxCX^!@`2a&+NGT<#XeI{P3M4_jCaR5~!FH?C0rw`iysI z!MD;cWxe0Oe);@`_iHbI5iieIo}$uD{$gIPZ(qI#2L!D=wti7qCpSZCr&u)r*T*cD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4847fa0b672318a818a101f03fbaf934f8f4807e GIT binary patch literal 7349 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 EA4h*HD*ylh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex.file.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex.file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ea790c2ba19248e5b4695d408fd1eb8eee690467 GIT binary patch literal 147 zcwS>*WME`~fM6gFg0dO^LxGxAkb8}9??>jzr7?nM1+zXyHt;bZfl}qnGz9}L<;=X~ zoYIt31*PO%-^}9T%)E4u)Wnq3BE1YHF6Gp`l*}|PuFSj=h1|rQu}Dix WldGCbL7^zMq_ikc!N8iUmJ0x*T`CIz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex__nobuild.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/complex__nobuild.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7134e2a1115f56b84ce381202e687f578fb1890e GIT binary patch literal 108 zcwS>*WME`~039IKhO!y|!+^r0^y`j=DqD^&Qk?ogMr6PDG%W@sP^z3-RFq$&pcImk kS*(zjnUkteoRMFelcJE9U!stds*s$YTL2VI(Np3A0F&k+Jpcdz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/not_in_all_exe.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/not_in_all_exe.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3d99093d44a89d5486c96688a1c4f30603f7c434 GIT binary patch literal 185 zcwS>*WME`~fJz|lg|Zp{L&1zQjh`m?Px+HFDZ}sD&!dyNkIz`ffCMV$A@XVTYmVq&uKoAeRbt) zeHZt5_lxV6n=>AZtN+#iM_{YbV;|icYb0j6JNs{1XkQe$|{Q{D|9` RV|iQDH5KDp#`})C69Mx&O=SQ8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/test_system_dir.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/test_system_dir.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2e7f4a83bf3ccdc4ad9236648c80e67a7cd7a33e GIT binary patch literal 122 zcwS>*WME`~04pH2gt8g`Ljm*Ooa9dm(-v;s+y5eUvHFyab_YTkkU*(&W?phmX-cYs zO-X8TNpNLxNouZ3W|3Zo9T!(-UWr0(VrHI(rb4wsQEEwPQJz9te!hmLwL&cy0OeRF At^fc4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/testcflags.c.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_executable/testcflags.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d3ab384c48e7bb30f2e24d4a4e193eb0df6fd17b GIT binary patch literal 335 zcwS>*WME_f14e!Z2Br!IDCa*EcsKk~XZdjGSaoym4xK5p6H?6E+!>HS#hkel&So_` zNVtCgEHZsZpr+^UZ6YpeidO_KM(z-P-DBl)`~m;cDf_Cg-cU0$nX)eZ-NPF9$y%CL zdLM3V*&1@ws9wosm6(r-Zue`SEqdOSPsUgELK)X&~m@$cSZyW5u%Wb$LJ)-e^FT)0YXeQ0fj zL|Fey*V|XQzKdOKd1UlgzfytAF4->P$>W;U#ijBaj1FcTP*Uen_n90XTUb;h_+tHZ zuL6%&3C>IVgw9+QNPA&4|DQ-dKhxrWtg-X`d6tAOcl*P+@6Xng+h5-Kylk+M{&9J9UCY(_Zd~Ix!L6iTC*CT%DYwisHJ-E&Taeae$ts_S= zxPk2(773lee+c|=Vz@;29ruZwp^(!hMiq-#5<{BI%c$IPM8#diB{<&P8!gCm1=$E_ zwr1PWioZ?rIIR~aprRTrcvRpVZ5WUZD)SMNT(K#l0(-hCO+?Q*EbmjzZ2PfN-E`j9m?{rCZSp^=ZYF zz;nA1d1E^GVc1{qhG-FfwjCezrx}ts;XoQYuBq7*Njp$2!=C-v(*RU3n1=mL*}wzh z)QST;z=F=}B{T@=)AH-x2z~znsl}QlS@IY9zCnDUWlqz!Y+_H&FLER{?tCQfv5^#o zTq}H6QHiP#;Va_D6T}n0O3tb9{IA?54}*8Fx#;uj*DhhZ3nHvyQDY)n&Ll7iWa4Qm z0!aq8tYdmOHMN-s{p;5jVFx!8pLqWMxqm^6-f1c0Z;CwKa%G}?l6|3g8cZEWc^3MS zV1;#AtZB)%eFVI(L6u}{G@UZ}iod~v7ct0alvf!0Y?Ul?Q74<#K+yALAO5&hp)Q%- zs8-y%vE~kY`%oZ`Hw3r>yWpP9pvYlN9dCrD{Y%VUI}Uj zyXL|rCCDR8zkY3S@4(W0{T>zfk;1i^9(jWWz#^Wf&B(w*+d|^Hjtl+H8v|nBVJ|#K z7;cNt(6qZ+6?M9RIprXKhI!4n3)`j~;P|zLXMKam!!ZYWm#nZ~il#Z@n8*Of9w#e` z=WD*9hx+5AbOpcjg=EZMJgGvSfjyOn_pc7MlA?X+jo4}E><}r+Rl@!>_NgBj;#ft1EF0u^WQ1QWs zk0|H|oK1jm0cD+YPoE4XJNR>z;M+eFoSoFH6p5C~5BezM6AHz0u=&&&cqBV&$YlXZ z_(X((BxVoM7%LGDCCzXEfQ0c0iTi0n9`NqO*1I~1@>iql4tx77=qoE=p5(AdN*T7g zB!*+dM(=Z+cdAnAf#*9`s5_R0on)X2-UW>hE(ynhVNM!t>+qvQbU@d|je2A?Key~w zDdi3nUK_Cu`+u0r!|k`Nb+C>7o91Fxd<@?A8Y~;Oe7z1bO3?tUsw=7!&?qA*4h%;YK zgwM&cF6n4B>^#m_oOcW04(Hw!m*i`5w4c1?teA*F5qQwy-z{z&&rzMCZ=3BJIgDIO zQ^Xm_qizNh#KA?MqiN81Dc9b;$|cPaKbGJqh(iXJCmd3766bShC5Lh`ZyaW7wYE9f z9F9W_&wY+?A9yxPM)3y$pShZ)wlbCE*ppQlVev%{9orI_DA&pL1=r=5WX&@tm){y7 z0_&(``>zW`?4!vs&eIV#v2_|T9GkOBovw41h&0&(mLbfJ4PA`HJH9Sh+S8Z_SnyXW zGz|~;V`9(zdu6}lJ%*aA-y1%T8-dG12A{A*1-5@!DvuRD&7_u+Xmnt}~)T#!F&cL^|>bChE0L~q)=j4LKW*qI{JtvMfJRE6( z>k`{*WME`~09hcGfwCF@L&3vJ>-?%0(g8aYW*$FLwA*Uyo(UWr0lW=^W1 Xh9*}vmx4l3YDsBPo`Rt@S1lI+;`|%) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_extra_sources/file1.h.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_extra_sources/file1.h.i new file mode 100644 index 0000000000000000000000000000000000000000..478586186297a6ecafc0b5c0cdeced65199a4808 GIT binary patch literal 78 zcwS>*WME`~06rk*g|Zp{LxIiI&Z2wPMRg&an~v^IyW7WS8{Nc!1WGgWN)*yEb5ad8 HG_AP+DnAxG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_system_dir/test_system_dir.h.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_system_dir/test_system_dir.h.i new file mode 100644 index 0000000000000000000000000000000000000000..35102b9f2e75548e39a4f97a8642bc8cbf1817d2 GIT binary patch literal 145 zcwS>*WME`~fIuJ)fU+6?L&1WLB0r>d_q)!R@v3}n9bd54q|ONpNT5_-Um>8hs35;M zHK$S`CpEDwRUtnuO`#+sRiP-gq_ikcp`@}PRiPwbA-O0uu_RR?QK3AsC@(WFU5_g* RKVL&rp&F*pz*?b}3jnBaE^Yt- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_test_link.c.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/_test_link.c.i new file mode 100644 index 0000000000000000000000000000000000000000..293dedc03554e4f22b3e077b6c59125295235018 GIT binary patch literal 153 zcwS>*WME`~fJh)tg0dO^L%}x2a=m@J$AAA7uGG`F+9lE?aQra?5~!GS`iyoUho`RI z$CGDHm-*{*uGI0kdf~~cXF=zDyghw`3%>cD@oPQFo~|OcblH*JZY)38TUm-VHAI$9 jn*WME_f14cdu1||gtDCa*EFg5i(5nQ5c5Zb<*jWsQJL)0>RP6i}UF=y(8`0PUl zB1i9k);u@GQQP%K+|@%GqFi_7u8Fb*yRGSDyXA7J#IECht@&DhzGMF!cHFr$`?Ga> z&(w9V^0W=|?}p8MX_xl+b>LdFx?@wyGIm_zs5$<2U01-{okv@K^=~gd;l~po)ObI! z@Argv2Uf2Cl;Ekx%*2(g+#?ryTWfFgv)+b@6IO{8uuT=c)A`b?|4`)mEr&|Olxxq% z-J8xI8E3cr@FSn8=ZsDV`$W0#V&nEG7O;Aue0S~1=N1K1w#&`a`4IB#Xa7U5v*yk+ z{)cnDBf1xd_9@*D*v28=e&3nz*``&#+Io_Q>}P$KD*C_wvFMeOz6FInNB*z*|LJ|h V8|{r6lT~!PB&|35|6ae)0|2g=n7IG| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/dummy.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/dummy.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/empty.h.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/empty.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/file2.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/file2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..be84c15999901fcde4453f915c5fd230855c4edd GIT binary patch literal 206 zcwS>*WME`~fIc9e1Z6Y+hk~^#i)Bk+2>e*I>EW}@72jU(4c>T+0SQ#h;XSmM>yUu} z!-K!`9xdqBV~rJEn89`MpTpXw;0w=^`j5Fx5@G*%_v_=+H+ajgwcMV;wA5a?XxE8C9AhS)=bDM7k oyF3@(S35&NdHGF-4c-|yE>&%8;a6buDlXV@>wtJ&%}d>n0F}>Oo&W#< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/file2.h.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/file2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9ff7f5a1773723ef2afdfba85ca8fab7e71077b1 GIT binary patch literal 78 zcwS>*WME`~06rk*g|Zp{L&4=3bBE+pdOY0sx6Ybi@Zy>i!^<`XBv6`}SE7)XnUiXy Ip=r$p02ELa)Bpeg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/module_file.c.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/module_file.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3e984f685c15489f3826fc6054049847a8022f0b GIT binary patch literal 127 zcwS>*WME`~0DB;|gR&X_LqYLYnH4J^@Rl2YiP!&eH;~EXQA{8M5-3&9%uCKGO-WTy z%FRzH%}I63%t_VDP~zgs%qvmwg$R}AC6{F8=V@qiRdXpQ6s4Aw7Ud}zT65KM0RTMw BCYAsI literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/module_file.h.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/module_file.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b8c3bd2fc4e5b8a92f4045d6099d84ace450029d GIT binary patch literal 236 zcwS>*WME`~fHe#ZjQUVE<9{gd&v|v#uF@KbORXj|AcKlIz5RQ+4mk+4 z{I2e5HSwI~5ERwb)M}rhP}ctBTgk^e+&jCMoH#7~Wl<}~w#}cKxm?f_9V6S>})9~woj#G@$^@?`(r~h%xE%^Ag_r~Gu TOPe0w>R*WME`~fD9l`hq4*}LxD@E?7Nhh*8Oje9SZK0xbV2bhRcir36y5$l_=!pmw4tm z=H&QfCb^a7C2MFZR4WvvmXsFdDHvEQ)N*ktXQn9_aw#jM78T_eDJX?xWELxwBo?Ko smM9cwxbC&n?KzNlj5ms#I|F@zGP_QclfF$xPz{0KTR)J^%m! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/shared_file.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/shared_file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..50c4a6c3d65d6488e0e358eb2aecf1d10de0591c GIT binary patch literal 127 zcwS>*WME`~0DB;|gR&X_LxH-ez!Q)2A5*WME`~fK3bxjAl?a<9{evnEqY9EuZJB@#+4bwU(E!25e!@WIzHHb9(#zxtkmW zj=uk`$+l;OxMRQUVucs-nm2sU$QEZvr*WME`~fK3bxi~&$K<9{f~YfxOJ<~DWDlsk?Utv*`mKe(^fFd%`7Idl8Zay2=K zw0^fcnpbz<2P$8@Bhr?%JT2iyY&LkBop1VJ|vx-xqnYZ>I5z>{}l~W zYiqYjEn}3jwm8egui(1$h~Q2o$EVYNO4P23E-1d7@qE|KTd(t0CocLR-zlOpiK|;l af8WeA7o5ZM?QgfMbl2@HV!ppFbus`7BxrO1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/test_conly.c.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/test_conly.c.i new file mode 100644 index 0000000000000000000000000000000000000000..81d14eba08c8d78e42af04ad86328d942c1a65ca GIT binary patch literal 219 zcwS>*WME`~fZ0HN5z1!#4+X0hToX0i!+3tZ`I%$7J{1eje)FEhfCMV$g!UM6A2JYd z`~F+heb*N6i&r}oj_$JHc&jnx((VfmJEp0~y8LT~wA2D_!&N5~!zS-Y zx70eZ?}voa&6P6#3}H%PiEnI!_nr`Vt5V6h{)?$o&W61vx#6W>-`3Wwe7Yu>X8y6N=FR`Xu>OOiC;&u3 BUfBQu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/test_conly.h.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_library/test_conly.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8ea858c2555c6f58097df530c653694d7d47ba9d GIT binary patch literal 245 zcwS>*WME`~fUOJ+j8;%K<9{d+P+29tgEwut$;NAb`{ow7CM?SO&wvCf=JfXab2m8% z9DV;=lWot6=??v}OBG(oYu@lZBU_vyom$SzY+s`k)y}bNU*&%D_m&||MM|j0|Bt`0OV(LA=f%SO(^nXky_jQecm1%M_D|62 d@uSz$8(UBG%)X{8UKa7b%A4^KtGhwE7Xa)MWnTaQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/_var_tests.cmake.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/_var_tests.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ea4cd8e299ae24ca14ad2596f9715900eb75d1c1 GIT binary patch literal 1095 zcwPZV1i1SE0RRC20000000ajB02ciK0000000061|NsC0|NsA+ctkLBk8o(Z)qY~( z3vkWQUz}C|00000000000001ZoUNEaZ<{a_$M5+R7U?08wsfJ#oG3UAQUWcIuG?XV zP|`+g!+Gd;kBlaUA-+K8UjY0faE>^?T?)82p5RAKzO6 z_%^HuOdRRCQyv)h0I(b#y0@5UX&cMH9 zw@FqnnSrYGSzi#uwXWwd4&dF=4Pc0FHDXKwG9~`eJFy!wPb^fef=lObd*DtlahpJz zzpggh91trA-kG79^rjjuNGInHiL4O7!Y35sGPutGY zI?uZlHBVVN%arrlT@*m$_c-*IfsIIRaJ;-vcKAzgKT2QG8d5D@AgPJZ z;tQ?fHLyKR7w3KN^1pA{I^P{ehxdcNEK|k1dJQRG!M9L>*v5w&bPlp3KlmX}QU+`t5O-dS=ytHc$d9)yrvu`kMe+5e)R}(Zr^FJ)+Q(k}CR; zU_RXG|@r>#|>P4Mma8CpVrcj(m)GRc#Nxar2X{KWV881>tW?c z@u8M5=}v`?S#(EBRw>`VP?YXztMri_63VgYL-C-oajFt&A~)TUDD<+VQs1Yr+=|&4 zp}lfwvRU=h1uI9EW?Gp|Gkm5y6c#tR?%Zad8e82Ncyq;72X$E@jVG=P|p$CACNen>M~kDBr-HCQ1H`K-i_00)Q4=`p?%805wg;7c`- zgrSoTAEHJ!imBI*zst+xIC&R~`pM^VKx~t_NMG?(*!gz7d3xJrqvz3P+d3mHVi=7z NfnBo({0DzXTkTI~5ZnL& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/cm_test_configure.h.in.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/cm_test_configure.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..9227e5cb9448d35703430d9199c291d0a205fcc4 GIT binary patch literal 821 zcwPZD1IqjW0RRC20000000Q*@00>3^0000000061|NsC0|NsAhxjCnN>-iPBBR-4J zBr0QH_V`Kw00000000000001ZoP}1~a@sHuedjCGG?Qs2nMp&wK*$T$)RtXI4xuj^ z3MTOca0k=dWb*G_*??ti=u@n7&PuD*o+Wp8M5o1;DA2d$kxEVn0T>Bi6D~pZdLL)2 z>1#Sq7uh-`kpP35PS9{=JQ#8TUX%X@GAg5*FpI)CfG49tX~RPL1p+=m&5l-Daxt=T z`W-SB2}ZRmtPnSqvCjiIM3yVu zE=Yh}zWsj5mZ|wQ-Ml-gbK#jGs&1>#m};L)*K>lhEdN=M5$KW^Gz4R7g=H3+%<|Ru zY(3p(`MPlKy%*Yduv;0sDl_h6+)KKG&Zu(%@T6OM#Ln$+#@$CCZVS4PD|2;oY5;EO zgNS;D;j=&;T`sHE+V{c{dkyH4rJ1bF$6J>?NJOl108D z3$&YKjsX``PK?LPNy75gk7fGD)M#U(STEunlE}ICLexvbaALWtdtJoc0q3YuQ6d?X z_Ejd9culE!YnWQv_*5A>z=BbxPtapY<9*jOY*mg0`*#@7k=mQ8iMp05`$$1-mHTfu z^-cPm72C~U{Fu%$EL)H&a{kGTxp?SbldCK8;eZ)786j@W_2CE!BaWAuR6Sb`H9V}1 zT92gbdA6uem+311mD&Nf!a3;d7)Fn<>#S-s2XNEpLo`E?%@2dSSx-Jh|0wQ(*-vrp zgTTT9OZ4$?R$B~#f?Di8cV%FE=&_ATsJwJ-_R*WME`~0Bs;PhO!y|LxFhm-KXn#g8nX9zlrPcsy#e!f8X52fCMV$1p9gVo<8Fp n%E8C^=}U1x|975`9sE3B`3rf&0)kc^6ImPjh>2mLIsaS$Hti+! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_one_config/cm_test_generated_header.h.in.i b/CMakeLua/.hg/store/data/_tests/_complex_one_config/cm_test_generated_header.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..00ca92516bbfbf146223246d0c5d43b7577a6fc4 GIT binary patch literal 99 zcwS>*WME`~0A(Ong0dO^L%~&^KP?aQHZ0dSs$3jlqh9ZvuN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..12d05294c812882be3019ff1f576d2975466e1d7 GIT binary patch literal 5616 zcwPbU6%XnF0RRC20000002LDe0EF@Y0000000061|NsC0|NsA#CqF0!2IQhYr`z(2 z0<_N|48W}b00000000000001ZoXuTrbK1zV{_bBfMO^p5)*1}h*<@4qg95V62?j5M zYaIoo~L_yX8LU;^zP&xQOMl&C^6mn z!lut8pngD1!>1?jPBgV&Y}_heRQnW;B>lj|479ZrmCVv~7*b92~&f>NmZwYJHt?YPUXb z^}hr4=~{QtYp8nby3_5c`c7zH2W7%XP4& zc79&X*xOwgwjLNGoBFy#pZ20Ox_9@j&h2NVlEPJooBSKKC4cnTDIiVP znOM{1{xvTsQPAb+0OG(1mix68(cA8Rl|{tUCH41X8_U3*Uj(>nOv9Y*AE{y5u4&jn zKfl;ZJf;gY+I#8NwjP~K^obQzyqSB}KLc)7pUOhiH zzHYjnCxuBhk;Rdqee-eu8b1iylmb_m2ZxfK%ZKx(qrh6o$NgVpHj=B$XlmrDQtmv< z*`FUSGvYm)GsBq*U$)q96O(&~A5aK7&ktfOpYwyH@d$fC#*bEhkbpkJza!%zBh-u< zV}v=_TZ8~3cl?qIVBuM=cLvJHH97yPo^x$v?qAE<|9!sxwVd+Ta>`%JDSthu{Pmpj z*YnB$kaPV!RHs6E#wwzenBIwe|CC014>sQ*@q@X zm52C6s(fFh%V*B0`B1-*j(8~@@x5%si@J0~>3Y17uEz`cdi+f~;)nc*fteqJr>=W%MvF}FAL_lG)3Ys zXl-khjy7#^d_}vz;EuFnE)QM{qHw}$B)o8f6=phNykTYJhLccn+J&Z9>yiO$asYEy zv38-!8gE_ZcqP;TccIA`?*`zdWI)*p)IAAGoVkI%aQ#3xrXy)H<4s3;tiUY;kHg7b zK*_K&R?-e+2`d0Bt{3S3jN10ZHvE}1WjxKS05YN{!<$IM6z36gXDta-#+)VMN|>?u zq0C`mrn|J=`KU6URYd-qy+35SnLBeYuj5gx;n6(4enP#urH?JoFm+?G@Z9H0^)gEB zr_M4%CjJ&Q&+ld9*6K$SxmM31a&%J(-fsl!?Zq+XmI?Fb_?90~$9$<|3)RvBd(>ar z!GR}W;X+#kH0L_!2$@$p>z;qDgH|4?HwCTGibJ2^vk$7%r=B&=sQ$f(H0$jH*^VsN zIv<>rir(UHro*r;h{KNJ$)}4+cg5%qNqgf4*}?0aACpG4=GZ5g3_{Hw4V3 z9GDMsVDK+1BV;qi|`V4X$nxk9F0$gD{!@{thr z>c@|lvS7t}U@cO0y9JzC?0B@bSbB6ub@^f3Tfk|eImfNPKACObP& z?fm>wS^Sr#!H{YnKfu3eK#SM%~O|FZB8jZxS8XDL{0 zte)_5mTY@B)WHRe-B1S?GU8BKiy3i@tObp=_$W_NBMuZZ>u0NIE4Tf~kZ)~;f4W30 zDhUj%TlUTeWs(rV+kX1nI5>Igz;&HGolHqC>xJ3%H)*zXmYk29CvWoeuz~reBx8B zQd#VHg7mmNjx&@UPd!WJk@z_I@#g#pBiQ}K`O$X9aX4)MPQcM-ItToAk^D&aUSz-Z zVs|E#_bz<~k>f^v>@V?#t5i2S9F0T$s2tXAZ8$y$5$pU7j3k9RDVZI2MC(73c2rjJ zhje5yO2U?hx~?2~xbgKW8+Elfr6Ws_HP6$>`vjCDUDjuXH+}~o&n;M6Sb6Tj+5(ew z6ISe}{id!nt$@bZlLXQL=jZ1iF7dWI{Dwtl-?TD5fwBv_mK}QI96&e5|62ON#@8(B zh;F>i^xV)!??Vq4qV8Ew2O@y1#}g4iuJeTmCHx=@^twew)6`y{JR0_rlDR*{-#c$zkz%LYC#OGI z^DDLya;s{Za;=hLLGd9&M^0p7ST-aRzZZZOI=>PmWxt5Ni2#jphCl~0Sj;d4S+-4f4_Oh~Z6rj{7UI0y2j^ zPXYt^J-Nj7$OJq9BZ`#4e!pGmT{pNss{Bt42cbz1#ax1$xs$f~d57;CSg z>P~+m#4EW~`i&b^BNtqM+Xz7RwT1xrq5c}vT>?a;z(~j)I*hIt&zk&a=@Gt4;@@g( z-|B1MfLB}{UzHvT2^@-yK4Du71!lz*fH!KkR`Ejt1#GODhgB%tLk!trbjwm{7 z6mO5NlRUb;5QmJdvo*HlktH%+Uprz(VVdJ#i&au1b@twdE88^!%bA`nT+0avPo*s% z_B$G$GQKgPR=yx@7zU}8+44>t(iK<-I{ux+i3{Ny6V?$#!*x$p`f4vVYK(pjcnt^I z&=z64`o}twUz7DJ15vBXw_LWff?RtLgSGD@LDJlaw2R=B7@aiFZk;!R%@oKT~*J% zmVXJi0}fYk?cUzC+G0hjPU*pF!%Z}} zRXcqxB0}c4G+JV4;FWwb@!UChD7-C`pc50{+1mlcnoz&Bw7!OOD;%MCZwNTT*UDGJ z>%%tm%WM^~S?V;}gQi+cM=zGeK|DeZD6~I=FnSC|YD8z$qojL>T2tDklXh2W>J0^E zV23CTHb%1gPyNPl<4uGx1U<4%f~FZK67uM+4(xK^t-Xm5Qo(ej6Oq8QH}yYT{TuzR z2MgmHY+rW+wZ;s~=})+_abe}QM}`+SG=;Vc#+ywvGw^6<5&_WGpdUF1ea(!;Ia$Gs zEIf#eo>{#1CRetlQm_>ZTU$`mn!J#3@8Wv4tr5YOlwfdD{H$JednyKMXaG(3k$T1y z7Sy|NNukyur0e3Fa*8mTwl(q$?*%?3&ri9G|7#GsnRJb46)SEKp|MNg#Uh z;H%B~Eq`kZ+N^e~^JP;t$zu%_CcF?kj9|(JYsHr=fq^zu@h&I!nN2IHipyHR*XmrO zK|^s0rA@l?WI7Hj*n$*n^64`r3nQ4Vy*WzhHEvp8RlPgt-wpcFuENg9K)ZP~U`vi+%Lz+&VK|8)75;I{XCx zmzYM>XKKQ>bElp$hrZor_jmsKD}(SSwM*PFcoY)3XlIl$7YWV9&}p$ZLP1yo8)!~_ zA1FX1ZgIgo!Xi@}V4}L$J>`}Znl6hS8JGB#0=}mzOvyHSF=re5UX1*9_x4ulG+zn0 zHI1C9gqkyVv-b|w3Hz1Iki;#bMgu-Ncfk_MZl@4=sN~L&oAkcuil!^guS%z(HaGQ9 z+NNlVj^=~yBqpH9Im;)AF#vZDFbx<6?o6R8vZcFF zZ3X3X10sy;0uYPk2S&A}d~U0RnOJCqOU$K!O2ekLSYAL3ozu`gq@s*vETGrWKWq$w zxXWO%6iX*`65nI+KO*OliYaKek4j^BGs7poJEy4Pkxl0?*$x?Wz^nSqexlBsmT!z~ zjEzy@j{8*Rn`l$l@5n*gj+0l!3|BD8s=!96&}YjJ7>$^dKL#ze&l;GTV&B1(58AOw zptK0g?AxDrw^7dh)&EEk6F z?_(J*gk3z@+%>?m!OntEfSQ5py_DIapyVIoHG}^^X91fJU;PH`Y#XyDo?;Sf!Z#gs zCTy1cU!k{ejO`aJZHs*a7X~ng4GWi;{lrBPS@+@&>yCjf{`6QVF0<~C z12oak0M%*)1{p8s^A|$ri{J&r8=!A=J6Emifq02uac8&^MhXmJpAY9$zyKeqVrJ#; zzT0Wvlh*C6+H66NQ98k(1-vmS(&r%B0oo17tZRcS2vuJ{m3{Y9*?>QGiGgfNnpW0* z(t?noz^6Y!oLAN-NoZIwak)X`p`y{D7ulEQ;P&<&o7O}5ki&ZGozlPAi22`?l{C8z zQkYl}q42rnu|awk)#NaEjQ=B5}vwsl7f#goKA!yDk?U*I_#c zY^si7XAS+XcL&Y!egIgcZHrCp8p6aL8Y@MtwuIacMS8{bz%hk8loI}fX zd0MVZ)N*}G%h5Xb=oAQHLlmDZr(P??jW2fnm0)yY1wKnIAl+n9wCM9dUw$R{0UQC_ zOIU?tHh-jE+b6kf^gEkbpvzW&Uh+>b3X*2?jB|28LM%I;$Pd zCS)fZPS}I-DMT09)2Pf4#As%~pA>GssP}qf&|@#J9cXHAIMm!p@WgI$`eKO>?9IBv zAuHX$H!jGhHGF}bSX>w_vH?^FjqSMMGhNh2nk}Xg>>1q>8Rv{n-qDhJj3H)=;05o{A*6fF*2_AqcLWOQlp5o{A* zl*Kj~tm2v?f8#X^UjMv-EfwaAsA;fjGniN%4i?tmx}>zx*zKq&Lnte?eG0+$Wa*fge;c+HaC^wg4G?16 z?i1Kni~49?O(QU8VH$_^J$FJ(+gSP(Nzu3p{lY3UJc!jHm$T7|)4)8zMOx$;1D-Ph z*YF!ZNnx7aYOV2UWSwzlV7|n4Mla-F?^EB?#~CNEA>XnaF`^BcA11*>ZL!w_C)ap<)h(pR)Wh z==Ra54h#6Z{w|)5*kk4gg`HZLj8`XAt)bkhVPDtDD!$6fxd#m*?6NKcuX~Ajc4-^v zZWj16P*~X%{=hGv@PT9KqJHE4gcL>vQEUOnGQzUAIQ`^}yQ+8zNab>wl;Xvs^4h_5 zh_~HSX}34U7-g3O(XxorQ}5bJLnVcB@%w1}qf{^2-$f5ZeUj!I^6T%ugM!gFFB z>e(0$zmJB)A13@A!(Ymap|O?6I6};*Y243?veqGZVkilK$*N)|rI0w{Ep3tFa8+W1 zDEP4qk)rW^^uzo<{y~R@(wa6CMOZ7up;O17>WLDYxdHhRIBX!o6L4+tc~vwMF@I_M ziW(K|VCvWfy{X=TAX@AaiTbPG?z+8xbaul@)lLHw>Ex{@+5|$AE-3Drjf3ceyT*>G z{~uIEm7xFt000#e0000009^n8g;M|k000000TciL00960|NnM6cL4=So0&4@M`!G? z%Rj>`bsGQx0000000000004NLHHte9fFKYBsW}CudJ6)NWFxR-!GdaI;r*}RC$X4j zW{kNu^I^`8p-s3!##|x^!eE)!xnH`#rBQ}PB&sxsYga*r?|8OQ{0^nA>8MKeFIqUh Kd9^p_vK(c#)aLO3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_cache/_c_make_cache.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_cache/_c_make_cache.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..07d45b39f0c0657179364f88c29a81b6cf6a104e GIT binary patch literal 477 zcwS>*WME_f1ID=w49sN=P|klSc(3^J$oiJ8$1cA3-5&8+uf}bc=o1DcP%&riL`VO} z1_G_`e~NB?)yRE&MM3u!XAj@b6Wdno=$NNvUbxaVOZoP~v-|IVba|`SQJ_?$Qf>3T z`tu~l4|9tePQO=4sXwy%j7#V3wX2>QNF7+aaYJTEY~!T>O>OV|oY@XjkA(EaPqpXJ zeq7XlYX--D)3-ZI?j4He{kTxPlg);^Q-7rJ_-I!N=gFZ^3yv@qHrn(NX;y@Q%2`HpfY11D|WDDOF6bMBA% zVyYDa?<2U3YY#rEC|djNQOD-!T}x7C1hiO`=JM$sJXXEU>&L6c-uai3PVPGN@^<#d z>4|?H-vA|7Fq? zn@_HGv-`Fm`(hTWy1nwCTu`0)J&xPA%jVuW^ZaPVmD?NA&PQ&Xv*F~;TXG=pg_A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..451a96f8492080f30b812063b6e8cd9cd3501f40 GIT binary patch literal 173 zcwS>*WME`~fLtIhfwCF@L&043?-D&{BO+TLCFp+mv9juk66bQ6H!?wS+`T{lOKfv3RX8QKVovU?m%a_&CFVJoYZmjz@_4K6 F2LNQiNnQW| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.h.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e2400beeba7408e10031f6fad2c4397ca2725db4 GIT binary patch literal 178 zcwS>*WME`~fFdAngR&X_L&4Qq%j>ss?h@m$H@*WME`~fJh*Yg|Zp{LjlvGR>miRe!j+K3$;qN&yhRbGtq$o2~^CHJ#m(^!GMSD z!tUUjE7fxsTJLDcZQ{J*_KUf+`snS)xzc49*&a6USk&3;qj618^5nW`V_^^N<@4l^ jT)epSmIZ56keu(@8mAAL=TiUnOXyV;p5_+#tKbX(ZTmXc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_a.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2fd7f78103e69778decf282ccf596d7ec681810f GIT binary patch literal 99 zcwS>*WME`~0A(Ong0dO^L%}-cq@LiEeYe{ZF8IGYHFs7{@e~CHBv2ZXky)&emYI{P cP@Iupnv?3090vec2?f^4~jie8FZ-7Iv#uQ3Cj!nK|EF&RkHI@(1QEHA7pvOV46|x|+q* z(KWMd%{1Vh^vif~F}MIF<$lhAKXVCi!Dh}#5v{yA8Bg^B7g+u5%S z$8FXx7!TP_VUi77^OTD5P!h5ZwE0Lemn)s!c%@XL(6!lk0B`|%7(YUufU@)-IYi+d zuIifc!Bf!?iep+Dvqva4+3q6#?9DVowr*+jbt*~pXD3A(@bR~?O&_1Km+Wk2HxHvQ z4|z5Xw)}bL=iepaZ`As`1mu1?9xy{aZfRj^H{<0QxMaz60)%mvbAJuVJvg$pV2*b{ zfSxIxU&+NCyY!XAvs@4FQa^pUI$W?fe#+PTWu>z|9&`^OJzL^m5$**L8{8*p5XKMS zgA_bJ!+jWWLKG)C+!bN8mI#|?o35oWZ?5Ug_Ewg;VwOWt z2}aK}^jmm`N6V_}u^Xnijy%)ZNCsIj%F<>-Z}^`-qrVTxs@36d~E`$53#(RKXh&Fgh{qlWMtIt_v?-Vdmv z9LiXQlOj%=!^kzXo39^MCk<7v{m*opHOwT)FddkgmM$AAEzzP_!^FAxSgw5Slyn!Q z`L9xS*8ocN9U=Rr<}9&PD^iDLggJ}C5<@Y|{X7gPZ^6@s#~7)Zh;gy9@iWLb95VDS z#P}u&mk4Fivn5j7ksVFhr)UB~u2#dUHS{5@J=^_CNNy8&{5?piBHB?VVO&Sk=-%)6Y+5+n^_mei_wTU&2$dAqcFd)RqL-LBM`ccG$|36G&0I}a zt5n^2RXkJ&EG9cu4#Bka+DDCo%kHzMHDV1YQlPAa=)mFl{|b>zd^$pO^pA#!-apff zr-CeRRQY@y;)J2(-AmuTc%7@leK?v?-s+XRI*kjdVhE{{R!+XQrfJAww+Lqpq0XS@Miq9!{u8< zcV6ci68+#hE7v*K0RSz>b@kcj_(JyZ*HNNWL<~WW;r(W_mgcI^>>|`=^AK}@pSUpj|yxGaqxkyzuOURDj3vW zT-%_jOtipD`&x9a{qfg6sWY!tBXSjlQ^UmDA-lSRAb-Pu<%-^x&J~HboMGMOmZyDb zPY8-EPqu)=OxXhY)mSO4Itk;6A4Sz})~RwO<_4%DHaUy4c}RN@3gS_%C2xh*`W^ zq?QqANQ^UVb6}msxcd|ad`ytZFt$5udf<`6x4Y`6p*rpe;up!W7(`BqZ(MsT3DvL!f{W0!mt{fI-9d<(_#x(mo4-gwp_OOnRD1f zu2kfrvNk_>2rmwVN*^uFVMj2^Q=GqL$%i3%7Db=Np`61pBaYeG9A}|Y&PJsiqWTwp GQ@I3X;(#gu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_included.cmake.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_included.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7928ab573f4520447998a051035d8a2140524f10 GIT binary patch literal 114 zcwS>*WME`~03#qagt8g`L&4QNA;TLAQhD|_Q>^AErHboBbNpjK0;TS*A@MGrL9Wgr r{y~xP0YUx&u0bJ@8a{6EVU9kbt_nV$!69y*KCbb>A&$=8np|7}mYE)w literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_sub1/_name_conflict_test.c.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_sub1/_name_conflict_test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..25e2c55f45ab75139546ccfe73391ffff3f744fc GIT binary patch literal 105 zcwS>*WME`~08Jp)fU+6?LxGB_OtZ#j)e919D^7R(6}{HA#?^`e36y5$l_>Zn=B7I5 j=cVOjCYOYy7MB=mXmV9^DJT@BmXsFdDHvFD)p7v<;o%-~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_sub2/_name_conflict_test.c.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_sub2/_name_conflict_test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f26f2cc1daacb1e17936bcad1572a44a2bfa35b6 GIT binary patch literal 105 zcwS>*WME`~08Jp)fU+6?L%{(N1>wHL)Bm3*OyUlHAEsD-QE)v25-82gD^c)E%uRL9 j&r8e6OfCsYEiN(A(B!J-Qcx&LEh#O^Q!udRs^tOz3LYNw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_temp/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/_temp/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..9fc26324a5005b611f124cf87a165d500a7459dc GIT binary patch literal 285 zcwS>*WME`~fV&I~j9ySS<9{glrfqs~ecdVM#C(-Q$Ksw(KXLX)Is+1@n3Fo;Y}R1| zftL4mU5zZ0WM0`g&t8$BQM&p@`@EhvIUNqu=44!5HDzCQ==OK~mb$0Um|MTmnZ1z5 zhJ{U@lRfvuW1r;<&Tn!5-R1iH*TI082H7haCxnAlKd*P0xa+_w(-!gEGwD-UC#Sz~ zj@lx>Gv)F;+bMUK3-7H~%b0h_Dt%^7(A{_?-`5pAUZvAkeLcsb#?#ebH}%GvHLKfq zWi6>#!>zgPY;K`?*=e2we{w%xU4L`x);k?((I>ud{jqY_zjgD=4IkMT1mB52y_|c& WqPiI?R=@PLbdO`a$sWBr{}li*WME`~0COPrhO!y|LxCX^!@`2a&+NGT<#XeI{P3M4_jCaR5~!FH?C0rw`iysI z!MD;cWxe0Oe);@`_iHbI5iieIo}$uD{$gIPZ(qI#2L!D=wti7qCpSZCr&u)r*T*cD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4847fa0b672318a818a101f03fbaf934f8f4807e GIT binary patch literal 7349 zcwSYRQ*<1TwufUIlQg!~iS0DDZBJ}8YSNgEHPOUIV@-p`ZW`NG=nRe$r}hP5aF+qWTxNn4ZI?g-ojevXXlSqb|PMVI`NI^mqYD}dUH&?Iu;-lg^JBZE7l^Aun9p3h;Q*>}3t zRI_D<3DEk2HXhx5*P^3n^5-UJtB&m4Qrntg$YFJ2Ps0UY-S5tN^4D)VmHtt^svr-W z6-f2V!RyMxA%xWRX4Xq|ym8<1{HO1IO0zrWys)vp(ye~oNO7C--uh{sVBZ%sHvYn( z`Bnv$+7$6fIWa5$r+84W^pK?sN3>9T$GJmcxfO_~po)L2-mpH9cVJ!DEeGq( zj#PYs=%#T3xm|Wer(fHBy3Ji4&$j0l5=YCW!2>jMKPT$4T{qRa!jK?vuM5(fn$yj% zyV2}RY_)xSoEcF#QD%pRNy!{z_62X+m;FVRt&uD#Rldz}omMW;g&j-Nd*$>YBtLO@ zti2j7L-6r76leSaH2_sHz~*`Pu+_jduLvX{=4@UAaazBf5PXtIoC+_F#L~PihDzUT z%f6G7i3lx`&6sJPc|#jT!AMj0QEOQR<(t_mG=RDlO8Hs<>nRSKvpTA1$mak@0n)PaTe;!DMaiz4#flG9`|LVS)Xeky7AQ@7xbzl) zz0}am<>Fjp`^@!TpN~D{j>zJ;^WNk{#&iY>&LfO4_P-Bab=b#`1tb_4Ed62efbf!R zg?@jgYz05v0av^@kW1XLa@BJu8Kt8oZCA)uzUIuG24|b9J|pi2ZlS%OTAvFwmvuO% z6zq!lSv!bk$#k@vBXsUwfW>KWl1A0LJ_Ie4?sQlMe0$&@2_8L9v&e%l@8mN{OL=&m zBq6hEY{aB223}u!7d{dPMqef;*a2^wUDR|TA(s=PGTVaP=RK$%q(A%u;E)Y#2LerQ zCJi}?$^&s^gVA>gL5QUQbhIy5o62z4q)b#Bk*78Gr1x?mT!Bj%UR<8ue>xEVV%g$w z_)mZ%c{GCsBf>ob?wU^Q*`KQaiZnl&v)ss zH(}knrfG#C43a+snVx=~B0X`l`J>Z6JKbOz6{K8Z4EV$SXDHx!!z5Iw)VXopniV4U zkD22MW4B%J%FqPU##ps!)R9V7?bI@_B;J%zIu4OU#b#{?V!(rVGEoy>1W7G zo?yK~kQ1{tPj>zFb*&@0unARVrfRIHLLY_RJ|m2PG9mwJlrWL%LEHHoZLd#+N)a6F=b(hH>V zz7kH^=Uz#l4(5R_kbHWmiCAw1X+poOwR}{o|7BR9wYnicZSQ$H2!7PA4?8hH&!RiJ z$UojZYHJMztLnaDe+aUkBWQGz&N4a{qYwWrVr`mgn(IF8Fh`Mc%L)GVBOWtmF69Sr z@KI`U02Rn&z-%RDA(O*&l}7w^KV)VSm|f6zjew zBe(9I8?kC3yVjJp1LwaPvCJ|vPrFnkYTK5q#MTtYoKgeGs>LKQG#mvA5XAsGl+7o% z@h5!My4+R5H6-xx4%Qw9(4Vl`*-?oxAEcxi;woX(Z0(ZyQay|D`la#ZlqLAYmlWw(Op9Og#iEpOi4}`;3!OT6g1acC*a)dbhFNK&FKV3XJZP9HWyEMlY6395o9`(P!7@@B`6KsU)`UA)m-brma91^qPdXY-U{lzK1l)v-Vy#>ZxOmA3eaA?vx{D4~ojQWrP z(dZGu!U{(yy*N>6JQy^ImNyZuWwfapG26a-TQ{@;r~JPL3Nu0qDRK>Q=5(Eq%Rv@j z9)gV1epm>^*W=;a;VoVcGGeSmvfcV7SH3j?z2C8b-ln>cw7v*s#vz+A8!mZ@xe@y{ zf-A#TGPv2zkD4?^jsfc4!lFsy3WOp%bdO3qOgrTy{Fze>Q=b?klR|w|dmoBB?HT=| zZM_@W9wM13%WJ3))e5bnU)#>{K*IDZ43-Z7zA@e;*&KVVoP(d4iB4J0%#Pt!!7ai$ zZCUSGT?_Ba!zZ6czb~6v0&S1D`oP@d*fKf`P6?o`VC|@RmyjCF7sVtvbfqzB6v7+a z=7SM|mGWot-1ckfBAl(W~akjMmK>^zGU=K1J+wfdYS zcwhL7!9duw!R>azWAa{;e?o|WPvI^CFL4|d!5vD!mA}IHI3tx*`^&a-JTn1`#%~I5 zZ}=RLFdo!Iv4dc^VH?#Z>KJR|Wf5(dt6Cc#Y&i~T4zy}qxa`iLF5p6);;P8h*ET;h_LaYN^nMlNb;d+8X`IN@5aMe;H{Nk)8#L_BO2-RCpXX}=f zRQXeu6i3QdDlXmZ^bNV!@X*WEoZ)Q%7pr7Tg9)?d{5|4PJ{sJO+TnGm!d^5Aw?CDW ze*n>Vn$O5myAATJQOHv!*5j}NMjD6hAFz!jheO|sNZWN09^(@zYlLQ!!G*;Zde0Ft zu;cjAEWBZndmIqJPHY=!*=y+G_n3vUu-|eRmFMSldmqho;z_&G?Fqb~SnPDLjElx+37-rN9a>MP zsm%4GrsHdk_K6(9N824WbMgJtFfVdiX@0dvECl_nlw)lwu$3KRlVEmn>B zHTi8R_>hrLGJn7>n9wvq>}Hu>Tq^IX*;e2J2ZTQ&PC*T7C78KBZAnxz!Z#D+n)hVu zurzgp8_$qQ1}j?c6Tm{QFD$xmVH%C9;ml=_|L-MjO`N4%VMoN!#;*h}i1| z0G<582Qmpc%kaD?)~n@5b{Ce(DZD5a%R-)ypQfv`o4dWi@Zl){^A7BRC3PW~J4>XJ zi9?P@xqQ@RI^N+6dhsE62%Th-Kce4meq;)Zl2r~BjW>xhBG-(CKxJQ%#f8V5-gTBH z?Q%|SK5q~gN3FRyNI z>5?XPtwa~J?Kz{J(W?_m;pf5bq4q72I;@W$tCOk(SfPqnqvDP$Bix`Qz)2ziQ}$OP z*?)bu7;i;4Oq}!+3$cCvmJoFeP{V}+1|W|UKlBItkVEGS1Gz;kURj_X29Gyxt#r3B z?q^d!_P!K#%{{NEf51Kx!Is)D*$3UxQ#ckFVWo2MajmUzt)*t4ionnnO!K0chzV?+ zva?=Z{Mjve_^C&M8wO)`_$WWy=t-~dSWnK$#q7%j8BveR4%pM&?I>(t9$x*v;APqd zK#i1&z_D z(#h8($wc4mv@V~Ri|_iKks>gg$@RNZ)2&DQiXW}1i0n_R(z+MQiK3VH)G$&A%ynAI z$UHvFvf{EvU5el;L1wNFYMD;*bWuMpnNtu z-WDJtptVOJK{yItCK$<|H3w>2c%95u3Xn(iswZY7N@6DrV+0Fk-El(Dypjm4kayAl z^~iNgzva#pf$tMtO;6Ozc&?2yQ>ND+{W}hd4kbHDr-M-(T{Vn?kD-zOKLP zgrh&p_DcS33grFJbDf7ys0a4SlzE$mVhwJKm zM6NB~24Wm)vDIyAE5ucOZ^EWM!$PY&gO>SiNHu>;tbV>S*Vh?}fGY{6uqM3E*y77H zbzg)i7^pX<=Mza(SGP5tW>^RmT7Ed!y%jJFUPOeRP7jQ!?5$1qrfNs~1~)xt$-|f! zW&dTxc`*Sa@CWLu#IDnUV3nfo7(OW!d!ZTB7#)+Rq!Q}}o$Yft? zPhMc12}d}G{?*QqcRmNGh${k|9)W?lAv>84uPoU1U4y;+xJvqHQC(};aNl1HxxUH; zRzz=Gkao@$zf8|xL~3iSL<1&oz<)ztJN6jFqZBW7eB)yEy(Y<--_1RPo4h98S1*ws z_BHX{M6meVKj}#f<#x9@O6dP}E&#SW_Fx>?m+#@;W2a~;cb*Ms{S;8UGCDw)r>{2z5yjmugV@w9NZHqJCx@S0!rsCyYuD|3#F@ zTM%aO#QR&p6`aVZ8yho%n&H*h)zQR*C)Li=2VC#Yj-7HT8I=BejboLT-P%J*pB>;7 zqwqR4fKZS^lR#EPkbtE1Px)K?RBFka5BTjNY2mYQWv7qA`C;+soLEB*%dY5gAvLER zEYf`G<_KJL7o{!2R85VvuKqBN?9ADpmW6VsMl@MeN)ecXN{?y{I2y~z&}3zJ|0Y6 zU?roi_4@6M8dl@3!x^q)oi2SY;{xv?Q`=lb6W?uclzr+5v>7%n|baTC~u57 z>HzQCv;Ev^?mnq4eh-5QV)vg?UBIL282SgMRhh^~r7y;fPuSO$a2MZfHC-l?I^)*I zoo1o!tGicmr@~5$tKC$K9ca|!yx9+eHhDo7aj*$!NbpSkPvXt^!2DtZCJs;;Tt%Bt z^>I1nd~>Mk&=g{_)Zb^ydp2wF5^)KgvUeREo3(HruM2J_MFh0OdOYPY3*M5qhglx@ zh96WcaU&R1>2EXC%>w){DiMM3`<7KZwVs1Sa%D% zsBrs68=5n7tgV|RqS=d^z)Uh;r*@XgI zWXogOg+kq5440J*i_@z5RsEHmr3w0s)q3f*UTPi~h#EN`2r~%lLGphoOxl8_QU_1i zFm$#_Blb)~eypM^=Webpj6Saf@vVTm);`W`Rn3S7*vQjP3$v~{$NC~hvJV6r$UIR~ zki~pE2(gqwN$w_*l?yh&8wx&&;~WjO^E?*Z9G-;+%`}h69hD)b;6OE}vVxFUwRPA9ZA}a2#vra3+K=R|z+q!%PvGWEK^eYdE&vkw^Dv-T zSXJSiiwiz0W8hIu%*dGyE1E-t0?W99W(cOqgqWxEqNN)QbY?b?otfK#z<$N+3)0i` zQ)3Y8*+2^TG9o0iWmMS%2rz9GdkI-h$pVxs$Bm@4{;_C0dPr_>l}fzEWQb9V57&ZO zOCp*z*fj_C=Eq08;4VA+{W$F?n^FF|q3>6{eP+O=O7Jy5p>N}nIJ!(-9HOW5yVv1` zqAPYN)ogl@2ewD2(0|HfH}{NpZTN5HFH}i5vmAlFyA8w@%vaaGaRjePc+F&LE(Q)3 zspFx&g9G#>df;^GY7t)3IX+c)gkBVE(Cwt-z49i-P$+m!V?h|%`GJD!b?l7bR=ymlSvx!Ya@5u=H26WoEx1PdE4S;bvB0yuI8ou>NA)@ZwgjfV?>yk zR^mF9BRia1I#f-1pHH7Q`HMU#Ww6&cpIJ(%Q~Q9M3xbkN&K#RSs6aRLC*4}$2=5Y* zD7`^w&@sVnS0o&z`KY?VE2EinUWPx*X#docJ0vt84vIpUb0)jt!K$~QkIiNq+nhE8khMGkjlLK)rC7o~)vD64TNx$jyP zKCcRh1=q`~4^y%c%Gze!iaXBI`xkcZo*uiV!P+ycNv_E2xbSW?)VSdFe{d{{{hj6l zHuK^v@pB4XA|sl7gw=olT*8Cp!&$!mUJ)4fr@2Y1Y1gSX>D2Yay2fM_mi;#|CtN&< zk^%)+s=0ZaSNzu_!tlMG(cco=TeyW1h!fYOi`0%LPGgZ#fmF`TO17*)i^*%bkD916 z+!?uoMsiK$FD7?1^^f*a!=h9Bji|qN072h2dIGgaweXn` z)DntNr#L^IVLsmp{B%dWNHmM;vPu!|Ekx`sZaS}r_t%G#lZvEHJ>1$i$LG(TK~{aI z^ofl1>ptlH-*0Q$}C9DECrCkB4DUIaein7Vq2|2n>cF&a~itIFVG0V0GJu zV-O?wVv^4Zz&3X46r!0HNdNHzsM}&O-9#DAc;cQLr?%C*p37Iq1dK95#E&}nyS707 zR__)dT{M0*#9kh(51{Sa5gHzQ z2Gn18zx3_At?kyaunc`}2fkh33SAEygRz{YC^c`qH-RWe8<-RnEG6+|Jg7QnASA(+ ze&Q1`O1c9pej3{fnP4Fj?^bSgZf2sefy$2XCn|Jh?<^Rk`HE@W!mq{tuIL|E;Zb5>-^8 zTsU$)$HV2s1eL{c4_L5jDYCm@h>cU({g*^M5qrG%sZqgpw=HX{8qM< z!&%dC@;U@Qj1=2}>>`z9NCCzJa;20OTLoY*4k6>0E#F=&%of1`K=m`l-)%Y`sSH$8 z*+3(8)inbnH{=+hsc#$+(CW8IxC762f#%by?xCaH_KmMc(rY_N<49II!p6&j9yhU+8yN?iKA7!D73+V8A(i+~rdAl3Sjm5i z5Q6!~;o%q=aO7ym4AqA=*Xp9N>wp%kI{v!|_M}G4K?w|56=}(z2!)8?^0J~(Y7W7# z`gFcWXDB%2nDA7NwqOe&(iYxhD*brC-&F<@lV~|L5}sZ>mACrBo)FpkAvh;h3=M$_ zZ{+KWPW7B0FxB}3sSSfPLi@^(`|dLCp`I}}UQ!=cBY5)MzCpqe zc!`wrt|j($ba=A@{-$i-;O0Mc=)|7)*R;7zlQPf9rx*)OH#5lmA)Vcw@4H46D3aOy EA4h*HD*ylh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex.file.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex.file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ea790c2ba19248e5b4695d408fd1eb8eee690467 GIT binary patch literal 147 zcwS>*WME`~fM6gFg0dO^LxGxAkb8}9??>jzr7?nM1+zXyHt;bZfl}qnGz9}L<;=X~ zoYIt31*PO%-^}9T%)E4u)Wnq3BE1YHF6Gp`l*}|PuFSj=h1|rQu}Dix WldGCbL7^zMq_ikc!N8iUmJ0x*T`CIz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex__nobuild.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/complex__nobuild.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7134e2a1115f56b84ce381202e687f578fb1890e GIT binary patch literal 108 zcwS>*WME`~039IKhO!y|!+^r0^y`j=DqD^&Qk?ogMr6PDG%W@sP^z3-RFq$&pcImk kS*(zjnUkteoRMFelcJE9U!stds*s$YTL2VI(Np3A0F&k+Jpcdz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/not_in_all_exe.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/not_in_all_exe.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3d99093d44a89d5486c96688a1c4f30603f7c434 GIT binary patch literal 185 zcwS>*WME`~fJz|lg|Zp{L&1zQjh`m?Px+HFDZ}sD&!dyNkIz`ffCMV$A@XVTYmVq&uKoAeRbt) zeHZt5_lxV6n=>AZtN+#iM_{YbV;|icYb0j6JNs{1XkQe$|{Q{D|9` RV|iQDH5KDp#`})C69Mx&O=SQ8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/test_system_dir.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/test_system_dir.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2e7f4a83bf3ccdc4ad9236648c80e67a7cd7a33e GIT binary patch literal 122 zcwS>*WME`~04pH2gt8g`Ljm*Ooa9dm(-v;s+y5eUvHFyab_YTkkU*(&W?phmX-cYs zO-X8TNpNLxNouZ3W|3Zo9T!(-UWr0(VrHI(rb4wsQEEwPQJz9te!hmLwL&cy0OeRF At^fc4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/testcflags.c.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_executable/testcflags.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d3ab384c48e7bb30f2e24d4a4e193eb0df6fd17b GIT binary patch literal 335 zcwS>*WME_f14e!Z2Br!IDCa*EcsKk~XZdjGSaoym4xK5p6H?6E+!>HS#hkel&So_` zNVtCgEHZsZpr+^UZ6YpeidO_KM(z-P-DBl)`~m;cDf_Cg-cU0$nX)eZ-NPF9$y%CL zdLM3V*&1@ws9wosm6(r-Zue`SEqdOSPsUgELK)X&~m@$cSZyW5u%Wb$LJ)-e^FT)0YXeQ0fj zL|Fey*V|XQzKdOKd1UlgzfytAF4->P$>W;U#ijBaj1FcTP*Uen_n90XTUb;h_+tHZ zuL6%&3C>IVgw9+QNPA&4|DQ-dKhxrWtg-X`d6tAOcl*P+@6Xng+h5-Kylk+M{&9J9UCY(_Zd~Ix!L6iTC*CT%DYwisHJ-E&Taeae$ts_S= zxPk2(773lee+c|=Vz@;29ruZwp^(!hMiq-#5<{BI%c$IPM8#diB{<&P8!gCm1=$E_ zwr1PWioZ?rIIR~aprRTrcvRpVZ5WUZD)SMNT(K#l0(-hCO+?Q*EbmjzZ2PfN-E`j9m?{rCZSp^=ZYF zz;nA1d1E^GVc1{qhG-FfwjCezrx}ts;XoQYuBq7*Njp$2!=C-v(*RU3n1=mL*}wzh z)QST;z=F=}B{T@=)AH-x2z~znsl}QlS@IY9zCnDUWlqz!Y+_H&FLER{?tCQfv5^#o zTq}H6QHiP#;Va_D6T}n0O3tb9{IA?54}*8Fx#;uj*DhhZ3nHvyQDY)n&Ll7iWa4Qm z0!aq8tYdmOHMN-s{p;5jVFx!8pLqWMxqm^6-f1c0Z;CwKa%G}?l6|3g8cZEWc^3MS zV1;#AtZB)%eFVI(L6u}{G@UZ}iod~v7ct0alvf!0Y?Ul?Q74<#K+yALAO5&hp)Q%- zs8-y%vE~kY`%oZ`Hw3r>yWpP9pvYlN9dCrD{Y%VUI}Uj zyXL|rCCDR8zkY3S@4(W0{T>zfk;1i^9(jWWz#^Wf&B(w*+d|^Hjtl+H8v|nBVJ|#K z7;cNt(6qZ+6?M9RIprXKhI!4n3)`j~;P|zLXMKam!!ZYWm#nZ~il#Z@n8*Of9w#e` z=WD*9hx+5AbOpcjg=EZMJgGvSfjyOn_pc7MlA?X+jo4}E><}r+Rl@!>_NgBj;#ft1EF0u^WQ1QWs zk0|H|oK1jm0cD+YPoE4XJNR>z;M+eFoSoFH6p5C~5BezM6AHz0u=&&&cqBV&$YlXZ z_(X((BxVoM7%LGDCCzXEfQ0c0iTi0n9`NqO*1I~1@>iql4tx77=qoE=p5(AdN*T7g zB!*+dM(=Z+cdAnAf#*9`s5_R0on)X2-UW>hE(ynhVNM!t>+qvQbU@d|je2A?Key~w zDdi3nUK_Cu`+u0r!|k`Nb+C>7o91Fxd<@?A8Y~;Oe7z1bO3?tUsw=7!&?qA*4h%;YK zgwM&cF6n4B>^#m_oOcW04(Hw!m*i`5w4c1?teA*F5qQwy-z{z&&rzMCZ=3BJIgDIO zQ^Xm_qizNh#KA?MqiN81Dc9b;$|cPaKbGJqh(iXJCmd3766bShC5Lh`ZyaW7wYE9f z9F9W_&wY+?A9yxPM)3y$pShZ)wlbCE*ppQlVev%{9orI_DA&pL1=r=5WX&@tm){y7 z0_&(``>zW`?4!vs&eIV#v2_|T9GkOBovw41h&0&(mLbfJ4PA`HJH9Sh+S8Z_SnyXW zGz|~;V`9(zdu6}lJ%*aA-y1%T8-dG12A{A*1-5@!DvuRD&7_u+Xmnt}~)T#!F&cL^|>bChE0L~q)=j4LKW*qI{JtvMfJRE6( z>k`{*WME`~09hcGfwCF@L&3vJ>-?%0(g8aYW*$FLwA*Uyo(UWr0lW=^W1 Xh9*}vmx4l3YDsBPo`Rt@S1lI+;`|%) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_extra_sources/file1.h.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_extra_sources/file1.h.i new file mode 100644 index 0000000000000000000000000000000000000000..478586186297a6ecafc0b5c0cdeced65199a4808 GIT binary patch literal 78 zcwS>*WME`~06rk*g|Zp{LxIiI&Z2wPMRg&an~v^IyW7WS8{Nc!1WGgWN)*yEb5ad8 HG_AP+DnAxG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_system_dir/test_system_dir.h.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_system_dir/test_system_dir.h.i new file mode 100644 index 0000000000000000000000000000000000000000..35102b9f2e75548e39a4f97a8642bc8cbf1817d2 GIT binary patch literal 145 zcwS>*WME`~fIuJ)fU+6?L&1WLB0r>d_q)!R@v3}n9bd54q|ONpNT5_-Um>8hs35;M zHK$S`CpEDwRUtnuO`#+sRiP-gq_ikcp`@}PRiPwbA-O0uu_RR?QK3AsC@(WFU5_g* RKVL&rp&F*pz*?b}3jnBaE^Yt- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_test_link.c.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/_test_link.c.i new file mode 100644 index 0000000000000000000000000000000000000000..293dedc03554e4f22b3e077b6c59125295235018 GIT binary patch literal 153 zcwS>*WME`~fJh)tg0dO^L%}x2a=m@J$AAA7uGG`F+9lE?aQra?5~!GS`iyoUho`RI z$CGDHm-*{*uGI0kdf~~cXF=zDyghw`3%>cD@oPQFo~|OcblH*JZY)38TUm-VHAI$9 jn*WME_f14cdu1||gtDCa*EFg5i(5nQ5c5Zb<*jWsQJL)0>RP6i}UF=y(8`0PUl zB1i9k);u@GQQP%K+|@%GqFi_7u8Fb*yRGSDyXA7J#IECht@&DhzGMF!cHFr$`?Ga> z&(w9V^0W=|?}p8MX_xl+b>LdFx?@wyGIm_zs5$<2U01-{okv@K^=~gd;l~po)ObI! z@Argv2Uf2Cl;Ekx%*2(g+#?ryTWfFgv)+b@6IO{8uuT=c)A`b?|4`)mEr&|Olxxq% z-J8xI8E3cr@FSn8=ZsDV`$W0#V&nEG7O;Aue0S~1=N1K1w#&`a`4IB#Xa7U5v*yk+ z{)cnDBf1xd_9@*D*v28=e&3nz*``&#+Io_Q>}P$KD*C_wvFMeOz6FInNB*z*|LJ|h V8|{r6lT~!PB&|35|6ae)0|2g=n7IG| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/dummy.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/dummy.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/empty.h.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/empty.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/file2.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/file2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..be84c15999901fcde4453f915c5fd230855c4edd GIT binary patch literal 206 zcwS>*WME`~fIc9e1Z6Y+hk~^#i)Bk+2>e*I>EW}@72jU(4c>T+0SQ#h;XSmM>yUu} z!-K!`9xdqBV~rJEn89`MpTpXw;0w=^`j5Fx5@G*%_v_=+H+ajgwcMV;wA5a?XxE8C9AhS)=bDM7k oyF3@(S35&NdHGF-4c-|yE>&%8;a6buDlXV@>wtJ&%}d>n0F}>Oo&W#< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/file2.h.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/file2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9ff7f5a1773723ef2afdfba85ca8fab7e71077b1 GIT binary patch literal 78 zcwS>*WME`~06rk*g|Zp{L&4=3bBE+pdOY0sx6Ybi@Zy>i!^<`XBv6`}SE7)XnUiXy Ip=r$p02ELa)Bpeg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/module_file.c.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/module_file.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3e984f685c15489f3826fc6054049847a8022f0b GIT binary patch literal 127 zcwS>*WME`~0DB;|gR&X_LqYLYnH4J^@Rl2YiP!&eH;~EXQA{8M5-3&9%uCKGO-WTy z%FRzH%}I63%t_VDP~zgs%qvmwg$R}AC6{F8=V@qiRdXpQ6s4Aw7Ud}zT65KM0RTMw BCYAsI literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/module_file.h.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/module_file.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b8c3bd2fc4e5b8a92f4045d6099d84ace450029d GIT binary patch literal 236 zcwS>*WME`~fHe#ZjQUVE<9{gd&v|v#uF@KbORXj|AcKlIz5RQ+4mk+4 z{I2e5HSwI~5ERwb)M}rhP}ctBTgk^e+&jCMoH#7~Wl<}~w#}cKxm?f_9V6S>})9~woj#G@$^@?`(r~h%xE%^Ag_r~Gu TOPe0w>R*WME`~fD9l`hq4*}LxD@E?7Nhh*8Oje9SZK0xbV2bhRcir36y5$l_=!pmw4tm z=H&QfCb^a7C2MFZR4WvvmXsFdDHvEQ)N*ktXQn9_aw#jM78T_eDJX?xWELxwBo?Ko smM9cwxbC&n?KzNlj5ms#I|F@zGP_QclfF$xPz{0KTR)J^%m! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/shared_file.cxx.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/shared_file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..50c4a6c3d65d6488e0e358eb2aecf1d10de0591c GIT binary patch literal 127 zcwS>*WME`~0DB;|gR&X_LxH-ez!Q)2A5*WME`~fK3bxjAl?a<9{evnEqY9EuZJB@#+4bwU(E!25e!@WIzHHb9(#zxtkmW zj=uk`$+l;OxMRQUVucs-nm2sU$QEZvr*WME`~fK3bxi~&$K<9{f~YfxOJ<~DWDlsk?Utv*`mKe(^fFd%`7Idl8Zay2=K zw0^fcnpbz<2P$8@Bhr?%JT2iyY&LkBop1VJ|vx-xqnYZ>I5z>{}l~W zYiqYjEn}3jwm8egui(1$h~Q2o$EVYNO4P23E-1d7@qE|KTd(t0CocLR-zlOpiK|;l af8WeA7o5ZM?QgfMbl2@HV!ppFbus`7BxrO1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/test_conly.c.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/test_conly.c.i new file mode 100644 index 0000000000000000000000000000000000000000..81d14eba08c8d78e42af04ad86328d942c1a65ca GIT binary patch literal 219 zcwS>*WME`~fZ0HN5z1!#4+X0hToX0i!+3tZ`I%$7J{1eje)FEhfCMV$g!UM6A2JYd z`~F+heb*N6i&r}oj_$JHc&jnx((VfmJEp0~y8LT~wA2D_!&N5~!zS-Y zx70eZ?}voa&6P6#3}H%PiEnI!_nr`Vt5V6h{)?$o&W61vx#6W>-`3Wwe7Yu>X8y6N=FR`Xu>OOiC;&u3 BUfBQu literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/test_conly.h.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_library/test_conly.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8ea858c2555c6f58097df530c653694d7d47ba9d GIT binary patch literal 245 zcwS>*WME`~fUOJ+j8;%K<9{d+P+29tgEwut$;NAb`{ow7CM?SO&wvCf=JfXab2m8% z9DV;=lWot6=??v}OBG(oYu@lZBU_vyom$SzY+s`k)y}bNU*&%D_m&||MM|j0|Bt`0OV(LA=f%SO(^nXky_jQecm1%M_D|62 d@uSz$8(UBG%)X{8UKa7b%A4^KtGhwE7Xa)MWnTaQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_var_tests.cmake.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/_var_tests.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ea4cd8e299ae24ca14ad2596f9715900eb75d1c1 GIT binary patch literal 1095 zcwPZV1i1SE0RRC20000000ajB02ciK0000000061|NsC0|NsA+ctkLBk8o(Z)qY~( z3vkWQUz}C|00000000000001ZoUNEaZ<{a_$M5+R7U?08wsfJ#oG3UAQUWcIuG?XV zP|`+g!+Gd;kBlaUA-+K8UjY0faE>^?T?)82p5RAKzO6 z_%^HuOdRRCQyv)h0I(b#y0@5UX&cMH9 zw@FqnnSrYGSzi#uwXWwd4&dF=4Pc0FHDXKwG9~`eJFy!wPb^fef=lObd*DtlahpJz zzpggh91trA-kG79^rjjuNGInHiL4O7!Y35sGPutGY zI?uZlHBVVN%arrlT@*m$_c-*IfsIIRaJ;-vcKAzgKT2QG8d5D@AgPJZ z;tQ?fHLyKR7w3KN^1pA{I^P{ehxdcNEK|k1dJQRG!M9L>*v5w&bPlp3KlmX}QU+`t5O-dS=ytHc$d9)yrvu`kMe+5e)R}(Zr^FJ)+Q(k}CR; zU_RXG|@r>#|>P4Mma8CpVrcj(m)GRc#Nxar2X{KWV881>tW?c z@u8M5=}v`?S#(EBRw>`VP?YXztMri_63VgYL-C-oajFt&A~)TUDD<+VQs1Yr+=|&4 zp}lfwvRU=h1uI9EW?Gp|Gkm5y6c#tR?%Zad8e82Ncyq;72X$E@jVG=P|p$CACNen>M~kDBr-HCQ1H`K-i_00)Q4=`p?%805wg;7c`- zgrSoTAEHJ!imBI*zst+xIC&R~`pM^VKx~t_NMG?(*!gz7d3xJrqvz3P+d3mHVi=7z NfnBo({0DzXTkTI~5ZnL& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/cm_test_configure.h.in.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/cm_test_configure.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..9227e5cb9448d35703430d9199c291d0a205fcc4 GIT binary patch literal 821 zcwPZD1IqjW0RRC20000000Q*@00>3^0000000061|NsC0|NsAhxjCnN>-iPBBR-4J zBr0QH_V`Kw00000000000001ZoP}1~a@sHuedjCGG?Qs2nMp&wK*$T$)RtXI4xuj^ z3MTOca0k=dWb*G_*??ti=u@n7&PuD*o+Wp8M5o1;DA2d$kxEVn0T>Bi6D~pZdLL)2 z>1#Sq7uh-`kpP35PS9{=JQ#8TUX%X@GAg5*FpI)CfG49tX~RPL1p+=m&5l-Daxt=T z`W-SB2}ZRmtPnSqvCjiIM3yVu zE=Yh}zWsj5mZ|wQ-Ml-gbK#jGs&1>#m};L)*K>lhEdN=M5$KW^Gz4R7g=H3+%<|Ru zY(3p(`MPlKy%*Yduv;0sDl_h6+)KKG&Zu(%@T6OM#Ln$+#@$CCZVS4PD|2;oY5;EO zgNS;D;j=&;T`sHE+V{c{dkyH4rJ1bF$6J>?NJOl108D z3$&YKjsX``PK?LPNy75gk7fGD)M#U(STEunlE}ICLexvbaALWtdtJoc0q3YuQ6d?X z_Ejd9culE!YnWQv_*5A>z=BbxPtapY<9*jOY*mg0`*#@7k=mQ8iMp05`$$1-mHTfu z^-cPm72C~U{Fu%$EL)H&a{kGTxp?SbldCK8;eZ)786j@W_2CE!BaWAuR6Sb`H9V}1 zT92gbdA6uem+311mD&Nf!a3;d7)Fn<>#S-s2XNEpLo`E?%@2dSSx-Jh|0wQ(*-vrp zgTTT9OZ4$?R$B~#f?Di8cV%FE=&_ATsJwJ-_R*WME`~0Bs;PhO!y|LxFhm-KXn#g8nX9zlrPcsy#e!f8X52fCMV$1p9gVo<8Fp n%E8C^=}U1x|975`9sE3B`3rf&0)kc^6ImPjh>2mLIsaS$Hti+! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/cm_test_generated_header.h.in.i b/CMakeLua/.hg/store/data/_tests/_complex_relative_paths/cm_test_generated_header.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..00ca92516bbfbf146223246d0c5d43b7577a6fc4 GIT binary patch literal 99 zcwS>*WME`~0A(Ong0dO^L%~&^KP?aQHZ0dSs$3jlqh9ZvuN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_conv_library/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_conv_library/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a1c0e484e3d9f7da203241988875fff5c570ac98 GIT binary patch literal 437 zcwS>*WME_f1IAJY2BymlP|klSIN_-`BWb#s>*2EuU(be2GF0AwOo9OkRLm(2iqCH{ z5U77195aXi!=p|84`R~qbVxlDy6>UcUUqHTmehk1`+wi!;*|RCu;b3(ci*2cxb}*D zW^cOJzh!$agv_6$QN^@uViXIPo9Qe?j=Y?d3&*Ag{oI;<;HvPoZ25O%Qdi%#pg+fo6^L)8C0$R6oiHgVVe!elp+TqE( zKT*%NhM8tncZIK)PuX_zzPRR3u1AO6gk&#D>^fXwV#m)ueWJK&zst(PG?gsz)nBf^ z$a$7{>vfUIM_J`Ho3GAFnce!?P~CfyulW<+HF*Y=CFOvMY|b)~rP ZTK@?Pe16*fWm36_tx4xU2C0tU+yE}t%Ci6f literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_conv_library/bar.c.i b/CMakeLua/.hg/store/data/_tests/_conv_library/bar.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b26820e60765ad64f145ddd31b138e8a41872863 GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|L&4r(dm48x;&pcWQTSSy`=r5?Lm9^ykU(i>UWr0dVv&X> WS2dS{LQ!f-X;Genk%2W=Ef)a6*&9Rv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_conv_library/bartest.cxx.i b/CMakeLua/.hg/store/data/_tests/_conv_library/bartest.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..808cf11e8eebe7661da6a30e68cf4f9e88b1c1be GIT binary patch literal 260 zcwS>*WME`~fFleHjK834#{W>je$2@H_TgDoi`M5(FugiqOXu0MjSNVjVoq=WUcM#+ zf#cupjz&&5%J?B6C?0?CBCB_&?*`RePalr=@3vle(7<{6Y0>}wKYlfH47gtOHihub z+nVU<`R7)aY`9(g$v~}pyuA(GrM*|4UpGDRK1yragoz9%rnSn1h^AyVi8mOYxwl|z zsz~Ytv7?8b19iUMY6&h0`?Fp9tpU>^iQKv-w;hZx{cqlCW_ifzKOtXe!5i(*b6L9Y u3O}jltWeP~Ynd;0F;yaJEz5)Qw4s>4t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_conv_library/foo.cxx.i b/CMakeLua/.hg/store/data/_tests/_conv_library/foo.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8a1985aced30570d2fd865abad8105273d5c14d5 GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|LqSg%v-;M%ha>Jw>#p9a6(rU_SB#$l36y5$l_;d;=WA$k WRdXpQ6s4Aw7Ud}z8d!7HasdE0UKob} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_conv_library/sub1/car.cxx.i b/CMakeLua/.hg/store/data/_tests/_conv_library/sub1/car.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4a110a3d60d47b1eb6f57b9ba1c27f5e136fd603 GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|L%}!qn+-|Ijd|-$e{VO;{eD{E_8A2RBv6`}SE7)dSfruJ WRn4WKP?TCyT9l_?Y+%h*%LM?tNgF=^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_cust_com_depend/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_cust_com_depend/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..8b36310703104e7720b30484892b2d5dd8d2e3ba GIT binary patch literal 320 zcwS>*WME_f0}#ddjRDH}4+Ra=+m&jvEq?B@+#0zxIJ?$utDy)35~!Fncf#Jh!wMp9 z<@T+jr3ajazcN}0Ea;v3%U#0zZAmKg#EzVf4Z1s5{d%|b+Z8_Fsg14gi_VqrtSG-$ zFD>ZdU-{XMKco2j$7HTmi=MSG`u=>b)+x2r;pOCwX(s3R zUd&^9$fV_#bxuLQVbdhzCf4d2k429C9edk+9{lBQUL=;PyWq$pf&bUuT$cH~-F0(z zZ>(?CwIZq6+b+L&5+idi?A+&BCqLZzst|kMJZzyxU-+NQ-IxB{p6?QGJAdhJ E0F{-OKL7v# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_cust_com_depend/bar.h.i b/CMakeLua/.hg/store/data/_tests/_cust_com_depend/bar.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6abbb9aa17dadbda1a7c65a571b7383f158244d8 GIT binary patch literal 168 zcwS>*WME`~fD9ns4rMd`hXS|7FwR6Oy^)1@iP3N;UJNzP(B)i{-bVP};&I{?0LKLG#$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_cust_com_depend/foo.cxx.i b/CMakeLua/.hg/store/data/_tests/_cust_com_depend/foo.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..38df2ba40c4f6011f33769d06ecd29ad858db599 GIT binary patch literal 257 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 FB){l{QON)R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ac2e5942379b901049ae1678600aa5c850ff46bf GIT binary patch literal 291 zcwS>*WME`~fX56Bj9pMR<9{ev?ikl!922J^7uF@Eo$6!ozjQAb0}`m1)7yWx>yUv+ z>-Wko?p-Uo!)jV)u;_ks|Fn5V=*rwxjoUP@avXlJ+kZ)ELV@At9TTeG{XDlfvcX_( z_UYMdm)pZ%AM-kVa^|*gwO4mVwfAQ3U84W=?hQey_-l8aZlB59GULy64o)@ZNspMd zAN8noZEDgu7pcZAReWQOz@aHsz9(#SJ?1U5SnRm&NuXy$o$r(G8^Qo-S|Qc;pKaZrqA$F&4^;620OqubMF0Q* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/generated.h.in.i b/CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/generated.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..1238e281aad04a8ddd3d941f8e4ce8f5eb8f3405 GIT binary patch literal 73 zcwS>*WME`~08Sw0fU+6?LqYuSj}ryUmdP&qb7Wa>$fQegc6xglkU*)venx6ePCgd^ D-QE@V literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/main.cpp.i b/CMakeLua/.hg/store/data/_tests/_custom_command/_generated_header/main.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..1abda28ef5908684c5b8fa186462f6fd8c182249 GIT binary patch literal 115 zcwS>*WME`~0AnCFg0dO^L&3>f`&JqL$s3wurYNN?7W)+36v^l<|XHprlcw; trKjel7A2OXrs!oTab@O}DC8z)=4ohhRdXpQ6s4Aw7Ud}zSaa2K0RR>9Aq4;c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/_generator_in_extra_dir/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_custom_command/_generator_in_extra_dir/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..635b4fe8590a563d2dabd8b13789002966523b63 GIT binary patch literal 263 zcwS>*WME`~fa44djGj<7<9{d!d-X1Cr&ZMLPz~4WsQm5ja~+v=7?424oYMZ&T+Ido zuHWm9Hb~#Sk>4TJ70{c(bhkBRxt2@oij4pJqK-JpuWsB~JhM0_AeA$@w}D&i@`^mE z#C5Y5we7qpmB(?pLG?~GvuIhyl^Z3ZccgopT@M9Z(&lAR|JQ0&eNVdcbjLF0^VYJ~ z>m$UjpVFK@C*^tR5=rmOW6HDY#qUcR91K2~>XfuA@twHW>BUc?rv2R%aJRnGDRXb; vjD4-V)&iF48+jsRCaaW$h42SWD}LGiLTK0gtfyDD^?yGtpXR?&IPVYuAdzoD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/check__command__line.c.in.i b/CMakeLua/.hg/store/data/_tests/_custom_command/check__command__line.c.in.i new file mode 100644 index 0000000000000000000000000000000000000000..18e855131657c10c588c528333d2f0144d3dacac GIT binary patch literal 438 zcwS>*WME_f1I9822B!54P|klS_;78y({IavCB>`e8|3qgYnXMYzF~}h68#Su z2>iVlU+AEcEWk8holT}&DpkTExhZAlYhI~H?_G^*2kO6fNi%l-Ey#U;_ipujEho3r zrtUlZjP*i_3lD3lYwA9^^CV(P$}Gn%99wyR>^-F6EZ0)C&o3bDWeJ z$JxK=eHX_z&t9^eF)HW1fm#Zir^b?0xhoQ;4@%Th%`QjwwjIcv$M8btK-KM^+=`CV zqkLv=4Q#s3)BW?PS9G7O(^f7stAO?Gyj&5=90}DOO50B4Oj)Bd+d(=z;FZJc?Tc0{ zbkx4(p5|qlb+@5NU%mBZs1@@%1J;#2=XIiFmdYM@wp+*ili|^mE9cm(HH^;YeEVp> z{hb{?A2k*$B|VVf?z~g<-uAm;L3^{~`SBE^Q_Zt_b&)5P7Dnw z5}aQ+!$W$3=-V>4izk!xbbh~n!fd)iqEGt&`5hnU?6&@%_JgZ%o!6v*qKHYF2TZua YO*WME`~fIc9;4rMd`hXTJYpPd_y+&X^ah`d4O5~->8uSs_?Ac2ZGrF{pvm=r}^ zztiH>__U0 oW&TY)@JHZ}Y@TMgLGP93|6iv*e{r~V)#DAJo1fe7<##Xu0Q7ZPwg3PC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/config.h.in.i b/CMakeLua/.hg/store/data/_tests/_custom_command/config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..b17d3e28c412bf08efd27d241100fa02ed1ef2cc GIT binary patch literal 106 zcwS>*WME`~04*Rkg0dO^LxHSJ=EcObzg}7{Tr0_$?4~B|T6&rR2~^Ap_Ve^Tea1VK lgX7cpqEf!j@=sridAfSaKk@_x6de#L33$ZB(6WlJ9{^*cBd!1d literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/doc1.tex.i b/CMakeLua/.hg/store/data/_tests/_custom_command/doc1.tex.i new file mode 100644 index 0000000000000000000000000000000000000000..fa7422bb5d86a7b2753942e7829e8034c87972d5 GIT binary patch literal 88 zcwS>*WME`~00|%#hq4*}L&3s@hpsH!zB|w=@WUTjA%FQdC;gKckU(i>UWr0VezJz9 SLbXCsYDsBPo`Sh`Ef)Y*JsQCP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/foo.h.in.i b/CMakeLua/.hg/store/data/_tests/_custom_command/foo.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..a61b08c1798b7ccddd92f42760c230fd196e6bb6 GIT binary patch literal 126 zcwS>*WME`~06QSIg|Zp{Ljmu~)E{1#S6b=s|0VuJw~YH!$rTL-Bv7iarQn)dP*SOo xk(!v2TBMMcnUkuJRa#u4P+FXtqEM2rP?8GdKxNZY^HPfvOEUBG^c1x8xd25hC*uGB literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/foo.in.i b/CMakeLua/.hg/store/data/_tests/_custom_command/foo.in.i new file mode 100644 index 0000000000000000000000000000000000000000..692562bd32dbeb1a3e76ad5375fc479f4555e991 GIT binary patch literal 292 zcwS>*WME`~fF}$LjD=7(<9{f4yy~fjb%oHQaOn_zlV0Y-hvWa>WIzHHb7K3>W*s&V zXnFrzq`PRM>nt-}Rrc$x|CT%mnw3=a@}xxeRF0UFC%9}|_Ee`H^_&$`b~8V{O)@js zT-x)*lC{exn>JsZsF8i%F}L^9>Unb?I6q&?x67R&*Jj;`39D^9=PeQZvujoE_w+sW zTDcR{H?X>_o$%kdV{urEk-Cn)bPWXtFKu9uf( cwd(`lq1CsGQ|%vqnY(NQ^AF}NFOwGn0MsRc+W-In literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/generator.cxx.i b/CMakeLua/.hg/store/data/_tests/_custom_command/generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e927d4fb8d27827ba948dad36ab7ea9766320805 GIT binary patch literal 257 zcwS>*WME`~fP)MSj2uul<9{gFxAx2%e*s~EtQjvBWZXXTex|#3DgzRznB&@K$bHB_ zp!NHoE_W9XRgbG@!^~L^UiGwY`F4pdE9z2M`=$SRJzb{@-@mJUpO=;s$Iq(x_SYek z(^=bmd2`vferS9$hh=}s zswKM5WP@_EZr#_J&JkHCrrKC|h5uaA*TBi^k6-@T(3-cgIWKCH62oerPwM;vzvC~h qeeyoud()E;|JDwJe@5n*WME`~01F_tgR&X_L&5tSJ5NTf&9AFD=FIT!hsme8t{bu#kU+&8@3k79x~GCq zoY4;S@IULV>!suAd-1}SXOEaVpQxoh%giVWE!NZ!SvqYB)76D5Rz787n3*o33jmI0 BEhzv1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/wrapped.h.i b/CMakeLua/.hg/store/data/_tests/_custom_command/wrapped.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f9a6e27e173d28e19c41b631d8e7580fbd705307 GIT binary patch literal 82 zcwS>*WME`~03je2gt8g`L&3WgR;JveZ&g2q-p$Eb_Fgx79g__M5-8QzQb^4$D5+FP M%gjkt(9-7u0DeIiApigX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command/wrapper.cxx.i b/CMakeLua/.hg/store/data/_tests/_custom_command/wrapper.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a451ac5d32c6541f4d1c64e799cfbb789d2f19c6 GIT binary patch literal 293 zcwS>*WME`~fTs)$j7y+w#{W=obFZ#_Ze;1}$tf{{JNq<)zOLTE%76qa=9KpNdmk|n zIr9Feh_j2wG=gg5#MSBdCf+M1OJc({{=Q4wy!&7D-aUI%KF^+M{Q6bi zWr425oSgcL(|RJ!AB9G%mv!^Kj#`*kdO+!2zW>w|VdgcB9`iK{I3?p7G<_dCv-Ebf zi8L|Q%Y2!&uF!6Q!M4R~?#y5P>1JVT%C0pj^By=nR*WME_f14ao32Bv=uP|klSn9msckaOme6Tz$w@7q%a6nVbY{boP{6?3*u49spe z5NW;tSJd%Wg8Z`^{vMO9Pp;}bq8&TmX=Buq6^E^kN&J1^9jxiJ@a^Ha$-nOwpR?T< zmVe;F;XhY$XMKyf#vZrL`}o2+($mydC>;(F2|Q`rE-*D|j#8nxeer=cElaAhcU*Y> zeEq|l=VQEk3i>y6tV_IAR(4W&!kV8y)c&=8IQ?tlQ|YDGo!I{N^Dg}Ijcd+|5aS=s z>h=n`EpI+wF`Zf(5W2hSy_H!plSS|TE&(CoY|&;nMo;;Fami1fy;;z^``d(a<${Sy zj2;(68YfTR$Wg&QO)0kZL9fyO^t5}nL9z_rUfwLwmuf5Dnsw^Xo70O<+}`sp=VUUgvlg`|D$HGtQ01FGEX#fBK literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_custom_command_working_directory/custom_target.c.i b/CMakeLua/.hg/store/data/_tests/_custom_command_working_directory/custom_target.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c2aa0aaedd5e5aeff4dd6ecaba11069ecc2c56f5 GIT binary patch literal 100 zcwS>*WME`~02LrshO!y|L%~h+!e3e&FF&95B>UvqrXNhTGcuJJkU(i>UWr0-X>mz@ eZb)KLdTNP=CRa6=f*WME`~05c%AgR&X_L&3EN$2@n;d*nCSb4Rwv8yVR{$-9{ukU+(p(`U2;J@j<- zPM+uW)baAyy?9~Evqz^`xSpw{JUx5K#vJ*p@12 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_cxx_only/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_cxx_only/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a4e9c0f4bdbe908cec503c1663a11620479783ba GIT binary patch literal 248 zcwS>*WME`~fE^4Bj66^_<9{f)chG1D)43&q9?w4?G>yGHMPaYu35Ylb z>%YX#nCf28`=uDO6>Af}&xvJS#TwgG!~gRMuUbtUI{>;mY8L*WME`~fJF=pjG9n3<9{gNoYr{b+WyaVd?xxuTKjiog-_h;#DD}U=JfWR*WME`~05>3Zg|Zp{LqXHxUEa)@4V*WME`~04pH2gt8g`LxJ#2*WME`~05>3Zg|Zp{LqXY`I@amm=3brab&92b{@kV+Zkse2kU*(&W?phmX-cYs zQch-4az%xaUWO7ES6WVfVu^xJW|A{d#5pIixY)|dH?<@qKSe{6tC~wep(wSav?x!( LP|v`ctCkA@h`K1$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_cxx_only/libcxx2.h.i b/CMakeLua/.hg/store/data/_tests/_cxx_only/libcxx2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4748028e6bb5e7cf91545c60a4e77c13eaaa2a44 GIT binary patch literal 232 zcwS>*WME`~fE5f3j0#XT<9{glC*$|3LSwc6*31`e)AXKm2E2H@mjMY>%$eHn%iZK4 z(DwebHrt*TSMw^pZ8)MPI^7k!J9lZL=hC|l9sjCtv6rlHKK`(B{`XX-ZEZTMYWKw* z5m2zp_doZ#uqU+aMqXK|sqm4`0{0oyR-IcFCHnK#QNgK3OOEm`aW+vh;rn|t*`!*f z@88#-UmljX>9V|^HD5LO$wU_2-s1aVTzQvYt}J<0(E9Ka*K1V;tNRt#GM47sOncJ5 Qmvb>o9_JlK#`TdN0N`wA0RR91 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/1/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/1/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..b8be36f95175697922f5201368aea039045cbd4a GIT binary patch literal 154 zcwS>*WME`~fG8l2hq4*}LxF%$g8HUi%4f7!&g(qZZ)~yXz_HZ~NT6a)aY*WME`~00|%#hq4*}LqVeYj?a7U#9QnSjhVF9zh~ip|DZVxNT9SVKQl$aKQGm- SG%vX%Ge1v5ldGDmmJ0w`s2dsp literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..495a352aafc0b7a60eba1d2058834fa896fa3b53 GIT binary patch literal 523 zcwPYu0`&a=0RRC20000000GMY00cDv0000000061|NsC0|NsAk`&g6a>EiW3vy8l! zlwYd1OVdyQ00000000000001ZoOO~-Z`&{ohVT9r1bS(Jz(Crbe9KpX4cjuL*a+YF{FShiMd`Xe~zTJFYFL#fy!XsLVw!OlnsvaOZh!`SB?Xiu{ zYYcGKQGv7ON*{z)2`}1+9yWA4i@?NoC^>dU5<7(+L5Jjx7i{||_68v;LAog)+W>W^ zA{f2*g45I-Na5icA|61Ia8wBI&KP&rwi`lIsht-`)l?7U{>{-7=FRQ2Xa;fv%MW12 zZo9KDC_@}awn45P_cAiU93~qxrxg4ok}kt3k8sE$ijoB@}`_RZ-w|cNTX@k zl0>vk({7#j7>>?Lp7`>s_=8`_CDic};df7qxyM%Y0l~eK^Wh+PndmO-s+zA>zutZ< zR-d-C+MDgq$6WVh#IP7MEDMHNfzi84lvk?2c|}T?23Ww<%M#@^D)2Po5~n2@!A~Rn Nd4#`As=t|~Ps^g9{5k*t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_eight/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_eight/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d788beebfa3eb8606ff8fc31938daefe11f2ef3c GIT binary patch literal 124 zcwS>*WME`~02?57gR&X_L&0qc#(9r*WME`~07D>lhO!y|LqS)?t;H+8oMg}L*{S+qx=MqYKo&a#5~!G?efqplAcvo> t_t|3Yv)+0q&z!$}Vau~eTFjig)0U-AQE1t@YNv?7)N4hI45C?L?f~NcC@=s3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_exec/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_exec/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..0fb144974e61ddba4063372351be60e7e71c6244 GIT binary patch literal 275 zcwS>*WME`~fXfUFj3!Vv<9{fyFqrz_(3UNeKA!1PaPxR9neDrH2?G+SnBzO)Y+kbi zPs@9oqaHh#2tAUWwjn6clkexms_t#O`!=w|vCNjgx9`BDRpPhXXMRl2FIZQ}u=m8h z=AW4yebt*5N~Rb_wqn>Df_v!no#_y6p=8$-Hc0-mB{ZUAX78 z|7f^nlM!{zG{EH4+&rrF2>q2MBU)^|R`CI9n)~<=C1wSt7R|#}2yn4T?+;a7vOShjIUkJV_J?+f7 KN%7WdsXGCfTzvEZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_exec/_exec_main.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_exec/_exec_main.c.i new file mode 100644 index 0000000000000000000000000000000000000000..544cdd1fb399bca48fceb2bd337ed018b07adad3 GIT binary patch literal 214 zcwS>*WME`~fN2a2jKWYh<9{f4$Sbm|uk0hs(uc2KZrUUH_oC0ADh4D_F(4gCE74b~L|GQbmRU_w5fBrCbqr`Nbhia=*@88?b z;D281{6CM!|E3(#s9rhy9lN|y&BM&_rh3MNz?v^Qre+_Q&gh&G(fM=WP$z3&;z|C} ytv)K#j+|K`BATf*dCPvwLl?M@rSKfJP#Qpdv-g%nrUC#;j9Ux< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_exec2/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_exec2/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..3c18f24308f8756bd825e34a81a69bb1c7ed8171 GIT binary patch literal 418 zcwS>*WME_f1I8o<1||;%DCa*EY!$qlX*v1%k~4D2#WV6R=+2+VYsi2ED(1vaJezmO zK%nKl%~6k-6(UbBC~pr4GSyltWFM4&qW5}dYqEQv;?uXg&9-QrJ=nG9@y-0QxT`T)H!Lu2(9D z{{p{u2czZNf|)%%D7C5pP^S~Ft26LgUJ!fbC=3Q zo2TpVslJ<`&C|2Z#QoR0LglCsk)UJK_V4&?&04nDdEWDg-Kt+%e;mEl8_Dw0&)Gq} z&t|5ux{pVvC~qs{Exsp~M$WBOg}a6RN%fd}(o4d+PH%hm zbnU9IuM*WME`~fHolB4`nm{hk~L%zB<9LOshCv91|p!sC$GvK$@bJcsdJ;yqs^{WjY3NiMUI;np$34ZgnA+? fCU$?H^En_X=5}{jv|o;@<~P~BFL>u>*!2SdV1`q& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_exec3/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_exec3/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..011650c68035e147e401fc70e84d71575e90a371 GIT binary patch literal 250 zcwS>*WME`~fL%cR2+C&s4+Ybo>~#Li_kP}zFIT)D#g_Zatt1f2}G7q%&SAjAL5`9$J^ z7Qt%IfZ1X%tJy@Anf!YiFZLJboO4$(^o>6i@ObWv;!Rmiar-)_u*Xf5)qObQ?G#?2 zf^$r`_Bs`NMmEgZ3{SsqFg1e+&)ly*WME`~fHolB4`nm{hk~L%zB<9LOshCv91|p!sC$GvK$@bJcsdJ;yqs^{WjY3NiMUI;np$34ZgnA+? fCU$?H^En_X=5}{jv|o;@<~P~BFL>u>*!2SdV1`q& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_exec4/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_exec4/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..e990757d1d83c923c10505da36c8be266f453cf2 GIT binary patch literal 234 zcwS>*WME`~fK@wW~|G+KwNnHokwm;p~!xXj@ZVzoKPp z8y7TAQ8+5Q#p&m@32a{^txhg|E8~;9w9-@P_fa0R7wX9$RRZ+asy6OgxwJ{%mP;z} z>-!@M*~;(y|Czo;IZ))u&95;}BZH2(9?N@pEB)#E(|R0_OxE6LmVKW(=ZVgjr5*AI R_Qcs3KJtFX9dz9F82}aGX-)tD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_exec4/_exec_main.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_exec4/_exec_main.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0494fbbd00cf4e5fdb09a6bf800de98848434ff0 GIT binary patch literal 197 zcwS>*WME`~fL0*h4P`U_hXU3kCJ~o{p3gPk7_chO=F7DiFPWJbkU+(p)YBWe4jBlr zJ@`BC(Q>`FL3gzME~yuktUM{o|7fYo^lM7{b~}kLe9eB}@k;9>$>lk5NxvUmwFc+d>NaYd-C;?OFKdg>(E2VOvE2+}u^_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_five/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_five/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..6c9742c47bbfd80f782b2d41b74171b35ec22961 GIT binary patch literal 121 zcwS>*WME`~081ctgt8g`L&1CL$kR?&WBqsETDY3&)4nq;CQsNIkU+(p;*!G7?;lIJ zig>!N1QeXs@n#i1=z6m1B-gAM#XiS(>l7VW>+S`F&Rcgdpj7ecPY2N$hKl_{^8tg_ BEhzv1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_five/_five_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_five/_five_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..36bc405a5dccacd9d181f84b408698ed3481fa34 GIT binary patch literal 110 zcwS>*WME`~06ieKgR&X_LqYD$dn{d7q(4h5~!G?efqplAcyAp ra_zI;dMD4EzkFfKvqxIYoV!w|Emd;axoW4#g{xPK7#Zfi6$t_WP$4K{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_four/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_four/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..7598bc839e3557d2d1517a5f2670a18d759bd78a GIT binary patch literal 132 zcwS>*WME`~02d(kfwCF@L%|`DE!8FWeEjPEGcsH4{g&<`u~~!x2~^A}E-CE%{;`Cs zh^OmHK*4E!T_)j!t|zNba?OfS>~nm#PSJt2?p{FXymbcyO8-@^*WME`~fI=WX2W2zE(K_Y1a^jGDcyBE{zPW1`%zIjO=FCwFhNPtVKk!8YRveaz)6*o@Qk@ Iea5~T0OMgqivR!s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_a/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_a/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a6c61fa2327da828b9d1fd8142ff4b863cce6a19 GIT binary patch literal 99 zcwS>*WME`~0A(Ong0dO^LxFqkJx>qu_kW8nKbn7>qi5!glRd%=NTAfw#UR literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_a/_no_dep_a_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_a/_no_dep_a_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..dbb336da7d8e3c968bebb7c10a69e20958202974 GIT binary patch literal 91 zcwS>*WME`~0BInWg0dO^LjlWqPu;h(EnWrO{C;e0wKJ#V+~S`MNT9SVKQl$aFW)7# Vz|pNVFS#T$KTkuGtD38p3jm%q8`A&) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_b/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_b/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..7c16eb1dedc5a928e352c206372959d74b450ed4 GIT binary patch literal 174 zcwS>*WME`~fIJ{BgR&X_LqYM2((d2fdpCX*><(Dleko`pBi}*>Bv3J@xTLW2`^OTl zBA%`*0Uu76d+HW61s!xfS#^?YR?I0bMah{*xh!XTx^}uw<I@bLPpJNprkfA2nTha%Rh!D*WME`~06idfgR&X_L&3GO*WME`~fIJ{BgR&X_LqX2ps;<(rH`MR%+;-~2>)>^ciM*c}kU+(p;*!G7?;lIJ zig>!N1bjGM?x|bQ7Ie_{WYtNoSuv-$6eVXK<+7aV>DuW!l}mFa>&i;aqg+2L1xov@ zxICAta;ZwLbeJk|^2(kkUaSkI?fE0rdZnvr&Y34?Ce86`ebjX2$(b!@u87#`G3;$s GcLxA*s!0O? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_c/_no_dep_c_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_no_dep_c/_no_dep_c_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2d6309f6778703d58bb2f80950b4ffc5bf93c805 GIT binary patch literal 110 zcwS>*WME`~06idfgR&X_LqX9^i?F7=$1C_f^KUC8{ALiX5xmcU1S;lepFZys_~CT9 qr*1)s_E~SelV{FfzOd!lBdz9cYvm(5SM3zppt0^L6N6)=*lYl1`Y5^p literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_seven/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_seven/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..38b9787e4ad6d42772c6d2a1d6bb856bdae9960a GIT binary patch literal 122 zcwS>*WME`~04pGNfwCF@LqW3R`|XCRSJ&OCJ+S}8uF@%`w#POxAc2ZG#U+KE-#?ac z74dXk3E=S4^*-A?;h^ius*_x^Vifxv->p-0P_4TcP&#kjL4&D^Pk%b7#xNY)A;JOx D{9P{0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_seven/_seven_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_seven/_seven_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9eb93d23ab397b7b8629a30e66c01d23c70ad733 GIT binary patch literal 111 zcwS>*WME`~0DT~~hq4*}L&3(NB|qDau_vu4>p#|YEO1$n@wq7sNT6bl_UZFJfgGCW s%eBvX>zzDv{_=$_&mL(pbFwX;w)B}|%g$9hMJ|Y5D`I5WzFXuZ0Q6@nmjD0& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_six/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_six/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..6da15a4f81a2ad55b07628b6a6dc3805665dbe14 GIT binary patch literal 254 zcwS>*WME`~fPD-MjJ8lV<9{fqym_H%ZQZ<&-#>?{JP$XTvXt{I3j-3Un3L;&ny<+~ zV9#gK$rS;@Pvx^%oK55!y49OguS&fz%l-KAJJYMi6RBo1XU@GjSK(qojBw9WY0vj! z21k}DONq^cULZD n-WXT^@-WZLsxCPrZD&ih^;JJkF1D|)H8kJmUBMi@G4Tih$%}30 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_six/_six_a_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_six/_six_a_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f0287ea7916660056b9ef4d3c94e0c6b983a641d GIT binary patch literal 120 zcwS>*WME`~01F^ag|Zp{L&3t&EN>ZegAAVL_)I^h9$BS+&_#d&2~^C{K7HONu;8?g zcd7PSZ@rUe&R@Q;<(U>UXWNwL%H57E&Bod?f{S9V#&Ai@61`A*t%#A~Ca0n_0Jg3u A(EtDd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_six/_six_b_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_six/_six_b_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2f9d20f3a2ec1794b67adcd5be4eceb4256bf831 GIT binary patch literal 128 zcwS>*WME`~00$uMfwCF@LxIhSTde1MyW%pXcrv(*Vz||=%`9X<0u^(#PoMV*9@8p^DmoIF2rp4U3Gj-b1B(7)E#T2=nT$+uw=Ljr{xf;XuLQN|{VtGSin65a3 IqOP7C0N^PqfB*mh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_three/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_three/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..17a6f62f7cf879fe4d393d41bd8b36a0afc85c1d GIT binary patch literal 127 zcwS>*WME`~0DB|LFMzPQF-8w}F)w+8DrSsMuG?@CYawS*Z&!w&or7;Zp H`l7u6L3A$B literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_three/_three_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_three/_three_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7334a7b3795a252d36d3fa0c85535ab0a07312c5 GIT binary patch literal 167 zcwS>*WME`~fOH^U24yq;hk~F>9xr@P^JpaWUrVUl*ZuUxT9!BlBv3I&`}BFAzz^rW zOSR8>>zzDv{_=$_&$O63cRrmirpWE&;%w9vH1SGNXtAb-$aIxyDQem&&!%dqJfF_w y8O_R^y`Um(7Ml-)#-ar)8G_a(!gGNj}iEd~IA);|XT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_two/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_dependency/_two/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..5880bb0b4f905c53ebfd58d219c6ee0e5b31a6fd GIT binary patch literal 461 zcwS>*WME_f1IAtk24*V;DCa*Ev`_r{R9O0rfpX8W0Qth8SgBoMc??LPV$Re_xBXfS z1lrzLc6okD`tH=z->_8bkzS6M=a;S!jXdR`pf-V|n)2ua3D=yzEb`?4Ut>J?=i(V} zHcfbzctqnNXLrUf%X-z{5Bi>|B=;P%+28l5!PesB?Q7hJ4DP#LKXWgqf&bRpD4&-LNu*y?Ir(!_CNlfeX%FTf9oNkK5Pm zXoluA&73cb1=IelNWXCGP}Jh+%vTrZ+xcvoqW*i1%I{i%c4>ZvlRp$6fAC(dS9n2u z9n=4euih`D4Cdc|(B!o6wqbZ^+^SWR+{`k*E`MNhQexrqgm}~Y8TC3!OW38_U+#Yp zukQDY@9XJZvzPzhuCy&Ki+9tHCkG}mr{1YdIl6AT!~697dj_|ECv0zCJzwYBO0DOc zPo_CW)>)T5pDg}SXW{HK-wZ!EJ`DVBQR!*w|M|}Iwu>`#Jg@oZ?=7F2&3+sJINIEd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_two/_two_custom_src.c.i b/CMakeLua/.hg/store/data/_tests/_dependency/_two/_two_custom_src.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b8938b7df9d4f414dff852b4aaa04751f77e29a8 GIT binary patch literal 268 zcwS>*WME`~fHMpXjMh*#<9{g7-f`W)V8!yN%_?UvUsW|)a%@ho3yz{-~@03oNh9l13etzPr zae3pP#s4XI*O9jGVXMx?DwIF&3_i5NcxLvMJvVgfKCrC_c8`DNc=^}m3ul8Q9?ni( zvRk^!*WME`~fE*xhgt8g`LqVDK{u189zb6T-*?IrU`>h*iu3gs0fCMV$xSp}*YA_IB zxlreCn6S7b>HYFAEO8D=M_5lb1W^3#B*Na#Aor>+j&l>z5V|^VS$5rc%51y E0C8MPD*ylh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_dependency/_two/two-test.h.in.i b/CMakeLua/.hg/store/data/_tests/_dependency/_two/two-test.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..d0b4e79d2b4b0771588a2b2b318ee9f65cfc8c7d GIT binary patch literal 94 zcwS>*WME`~068F*g|Zp{LxJbklgjUM-h_U?=H0t);uo_`VOQTVAc4}*WME`~fT=*d9?E9?4+XiOz1@Uw@ux5f%zHoYgsF(iy}-*|KH;~>SuoE;Mvn9>f#kzYUvrglF4(w zPgB~N{vwb67SDgfa>KgSQ=8^a&s?U;vt`-wU7FpqvU5xpOe}cFvCAm!3f=!*_T>t{a^+s$PXf-9Hu7`qu}pz`hk?Nrh*v}X z#04Tjp3*;k#^>Vdxu0v^w#*5e?GpQU@ue#asK644%RqE-YDs)SQGP*cQAwqSyN|z< nqmM#Bkbi({P)MXgkZXW{P)K~JpNp%Tr=P1!JXFThHJA$ka8-P( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_doc_test/_doc_test.cxx.i b/CMakeLua/.hg/store/data/_tests/_doc_test/_doc_test.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..57c2b06200f7168e590dd9500d9020021bf06c4c GIT binary patch literal 525 zcwS>*WME_f1I7>r2BstiDCa*ETza^<^1+(<68^R`jAk+lrPb}-*~5SYD(0jHp3XXK zAh74P_BK8i$)?FBwl{qhTIINGr#Mw>F5K}=OUz=^#A{1Tp4{KPX%0I}&xEwH^z`G( zxm~-o1?8qHcmK>&bxZd!-#%k;kh$kpAt&jk*mb-oB4k(^>Z40yeK)j3s!7c9TX=S@ z^8&7gXLK1CDhKRxON-R<{c14XQF$?cuu}Ynn$5o5(@b`?)M<7Z+dG`JR!iQ;B=akH z>$KxqCxbHHssvejPj~2@uD#Iuq+|89*UQ-*6ZT(;Wd8iY>eI>iz^7t$R!c9`olXDF zFMa-dbDaKfAiuCY25oJ&kT^r zxOaDP=jD2hWQqRYi;m=LF5bJ0E9Ri|q36H;rvCl%OXlc?n7Hm`D>J3V=gi-8|H<`i zvHN!vA0O0>`SFikyD1h-NP@gQ2p{oD}X$3`@c_nEY#U&}JMMXLa bN~*;%c}hA8IhlE>ddcy{B}E#Vn$}zZ;;z-t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_export_import/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2d2b34908ffaf9dcf1d9fa515b4f98513d43305a GIT binary patch literal 1410 zcwS>*WME_f1Ex|22Cm5vHe>34D0nvW-BXLre33sTmrXDZbj`h5C~}tp2~^D4I_-4c zYzL9H?>0v@-X4m3@J>6m@$8JgEM}%PCU+H>mh15vWJuf!nRpd)&;K(B->k^|$@py2rPkIjrIEXvOnLQ?<<#4&`rtEcwOsV%fAu0?y@g-Gy%# zFVt;*EcUA7QtK1ZUDk8!*6wsE=VC1{=3K$j^PJVw_Xe8mo*giYeNn8ae)%m2zo#;%wtQgIHj_KG_OA2I=tZ}m zXp03pvz`-F=9269?72ea*DVRbOC7t`sLrxr;!3it@ZEQ3|G62TuCve5DwIl(5?`ey z<)HOWU!{&Ca(7yHin0&aV@;n`p?4>F-ktP+qUY31rpdcroyuRt@2Tvv%E#6*Huvl+ zUb)yuE2RHO6{!g>7qrAPH^QC zT99sc#&_?-m9Kew|7U+|o`#xelM@m|(-IPR6A}^%0vVWN#na>6^RHLB^!>Uc7p&tqK1xD5Qt8;&RaYIg@A22#*p7m@a7i@tM1^Bw>lirHj*E2&Bt|oY z)<-pfoWL9ecF8WF^V^`#?*sV?9qmVytht`&Gef?6%*xlUHxruurYs&N{rb)R+X0lzI zGQH_4?}SEtAI!GV)8N|s-AEh|^D z)l#txncI47Y~M^e3g2Wm{4iua#>lXTxn?5B^(;JKPnZFHejMuaHJ|_i`8;jGQ=vAa zN~Kkzk{>D$Uw^>BXH$sbbK^vYWHwh;gA1jF-%7uf_40rF#?!&iRlxIcL(!-2-#32! U{x~V&0asfBTT>R}0a3vZ0078S6#xJL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_export/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_export_import/_export/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2dd1a0cc93ae640f709c7dcf983d60f590d200e3 GIT binary patch literal 2304 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2861c6785f4a8dde3e7368e59d5dde00374a8508 GIT binary patch literal 212 zcwS>*WME`~fGI$H1;S)Z{SO5lyK66hJ=XNXW{21nWf`x+k1@tg3`n42PHE3xu0sYQ zZr^{4i0@LFy)D^&<)cMPO;)igI~yHlO;eldbi3TV$zEZ{yyAWOo7qgIUq^CV<(Iqa z70%k%5q918kc-eJ@uMdc!s+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2lib.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2lib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..661cf1cd79acef5194c23f2c64622b612260ef35 GIT binary patch literal 217 zcwS>*WME`~fSC*ojDZj)W8Z%$5SP%={&r)rpW)hLf`=E}YTbG7q-^*7Df5@xj(vI0Bmz5=JQagFzIrTuDt&GG;eQoOF3!EY^Q1D@EWP;M`Hb+c&nvb| zcI;+Vl74ahhWuNdg0^VIPmA9q9XjcL-YrzASX;Ax)`ynHN3{hj-9tYJ<)3XRZUg|% CE?@fq literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2lib_imp.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe2lib_imp.c.i new file mode 100644 index 0000000000000000000000000000000000000000..37e3f437436f524e44f6c7d83eab3c25e74b4a08 GIT binary patch literal 196 zcwS>*WME`~fEFM=1z|Gw{f7eEVAEN9cp2Tz0#~=rG?TjoVSzp<2pgc ze~yY=A3tiYJZX89b>&GZO-sv_qO3n%RULd+S{_}=vV}?X>C%*Cg@uXc7RKvYeCNAG d)}?hVbK2?@nB|!nIIpR3tCOxc!<$4GPXKp4Oc?+G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe3.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_exe3.c.i new file mode 100644 index 0000000000000000000000000000000000000000..63ec55f50b5b213b760dace838beba55b48d1c09 GIT binary patch literal 301 zcwS>*WME`~fVT_`jNK3>WA=Y2=rs4`n|AQ%g01;AE1kAxOtCJo%V0nP6?1C)9lZ}b z2(-Tctt}_2sJSr0c3V}q!VCQiL66eRVmo#xmL=&b{=a+I<*lpj8Kcc-s^8D%eqD0= zdQ0wvTfeS8^wWIJl0UUHGD|D3gz;^xzzgT2r@wsux99ZL1q|7nwlwIj`)t8<_{*%m z#n)0UPM*Q7Gw+uMziei<--o>=dk@^07N(y!F<*^$@|QOo<}D9A8~2^R|EUn$c7uJ& z(|sSlj@@E&?vO`9UAI}G>PPb@9oh@4{#V`NX4SNRp?2D^hCMFVV4h}AUhRU6%3}-6 mF4S+IdS+f>iuN^Af&SA1f4OQF{;P~zCC_HM%0DTxI2r(WEQ%xm literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib1.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f52777103895c0026d880e79be1004f541855044 GIT binary patch literal 94 zcwS>*WME`~068F*g)kXY|3g8QUdyT3|H_Nlo2II0EciI#uHq*J1|(3LnOCAvl3HBi ZlbK|wp{Y=*WME`~023g#hcFpa|3g7~{>hqE%XZ4|2|wUd@o7!8si4&X1|(21=dssX4Nu)u w!6(jW2Lc&-A5Z!iUAeI3*&`<*gG(1eR)lGI>1wiSxdbf*WME`~fI1-F1Yt6!{)d9ncMJ~&`FHsj9i6p#`=5WcPt-RyG9ZD9IlQ~_OW26cTOhy=NQ!@QdJd=oam;9GnB^r}6D z-}0i9@=#r$oRH9w)R3T@+B)URmNR=oS|?q3BsBkwO7i(TO%?w48U8O2X#MeH%9ST` z9yMJ_>76oX&Y3$+e-;V(>MdC3r7`W`V(BI81Ut+b3$4Ts8-MniP?|aAY5KB^sN#by gk7AV#rZ`^F2+*WME`~fJPwR2VpYy{f7eKNadu?*~hHEm3&^Xp}DtfZU6oV1|(21C-|ICu!pDb z=`-HG7d!aBe=#<@6tZHaBgau|_g&1bj~|=voU(8cm+H!+s&+FykImc3`f;5g<3C45 zu8$uzSDv&y%DVETl%}QSN>SFIuBr~QD=m+%{PBe`^vTkcWrc-_hDOHgSt8rrBJ0w+ amN{*83e57%44l{0xYbEloT2xLy(<9o!cIQ` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib4.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_export/test_lib4.c.i new file mode 100644 index 0000000000000000000000000000000000000000..da1711dab18386c9252c260cea5f352944b3f2ae GIT binary patch literal 190 zcwS>*WME`~fI1-F1Yt5}{D*?ZIetpp)<(T_^AQ(cc5Ve%Rz}`-1|(21C-|ICu!pDb z=`-HG7d!aBe=#<@6tZHaBgau|_g&1bj~|=voU(8cm+H!+s&+Fy)jqBhWc=r-$o27~ z=E{?nM_E^%l+v`cTq(->(^b{s=}OC^D=kbJmwpa1y1Zk@1>VzVv>R7n)i{0L=VHi; YFbywVP2E$$1{=awJY{0&Xtvr2013%V*WME_f1IEh?3~WqLcItm9V0CbNzVm^l$EGd1fuD&{N=KA5-I zKw$4@(ZzZEPn@oNhn_Y4;P&i}QB zMGR6Qe;plmsl~+Zmo?e8AwS~6+p8xW18eL;ProqL)VjVxD&piWrmx(L@jmgdlXdmE z1B3#zg)480y@=cYHsOh#-`}6YoR5E&y{UY>g8A$EYUVRMdh1^p&pUq1b#X?d+{d>^ zj=xm;Jh|n}vy0AucF0bj(`$OgM$A(!-tiHaYS*0Ztz{ACkM9YcGL>V`tCeh@oc*Fi zRPv=m!&TO=?&>;p^_~Cpn>jNNF7M7R+vL_b>D9)#b^H02P41lEmZrOCL*Pa3dvm&Z z7e`KM>tO z-rA?0{1>g~FQnbQU*+VSnz>7o-`IJYeM^~i<7S|h+8z_HZIR2HkF>e&Qi(iTulDls z+}bmOyKOwqn8m8U^ghkfX>MS2Oh*uikLDlN@)J%nbUbyCUpsQ8wGcp8WnRt@($|uj?oU{ z6%Eo>kePo*MLDI<(CE0!Iof}n8|D+&afieYA?tN zCL^#-iy0W$7eSqu4I)6!OVK=SI1w{KrxogSCM%1Kuq30?0BNnT{Sdk5Q&UprYAXRvW)7ctJY zkZzJR5$Q1LYivx_W10MT>ykMlF>%bE55G%^oi$jmnB7*@`_!1_@fWGKLI&=8?XLj2 Ce37C6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_import/imp__mod1.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_import/imp__mod1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..63f178ff241c2272cdf73eea833e38493dbd3958 GIT binary patch literal 350 zcwS>*WME`~fPNsp24OO${)d8>6C`HOde;-RTI!%<_rAQ%+`7`)3`n42PHB%J_aOrT zx9`728}&|R$jZ7dZ4Px2ST0>8Zs9Tc(h{YJ|GNcU0t;&2*T$>*30iadNcsC(ukW3; zjQ`Nn%3y;c`5r#}s|*{NLBbr^5H(yN^@d z_Sc3HwVh6Bj2}dvO7HeC&V9h<#XIM?V$E~ay@#2X`?{&ZJ;K1?5A+5v)H{7366BpZ z;yiNgl2ZkfCT(^Sci~$&|7^`URPQ7wBt)EKIQU9+#EPubf5 Dm?(mw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/_import/imp__test_exe1.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/_import/imp__test_exe1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c8c6dcc846bd80635b5101182beb31cd6841f441 GIT binary patch literal 472 zcwS>*WME`~fG8lI2VpX%{)YnYY6YI8z?U&yKjto8@k&8G=5WbW1|(21$9t`Yr|zlX z6KAvoJ^asl>w4*U`gZ!S>e2Vq)hk@IFLikq=<7B{jK2^)Vl zG1<9lr-(>bkhfRkDFG|dErpS+Qyk4!PUB`^-C;5j?j{I%210( zX1Mc8{=Jr>IAPhNBd9J*PDtQLYDoBarEAiaMK-Nx_6W63y7EY9{uvcvUf*oJ1tClV z=NXgySz8xfnH01@X$6xquPz6Bgt}Hq->B^KJOHNfx=*f0nr5M4s>WsupW-}26 z%Q=c{VB@!d$rPZAc%UxJ1`!~a)yGfojkG@EyC}R}H(+I{_0n4TM=KSno<{>>X~S%CN(RD StDqs)Jb?K^7Q?TZ2LAxq_Nz$% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_export_import/main.c.i b/CMakeLua/.hg/store/data/_tests/_export_import/main.c.i new file mode 100644 index 0000000000000000000000000000000000000000..153beb8d2097ceaba3eebadde07efb49394a1c1b GIT binary patch literal 92 zcwS>*WME`~02v^bhAaY?vhD;orMLwnGgxO)qhfR&U?FeOd*a-BCw?MPCcK%aS!4-PwlWPAn1xGinr*IlC^yMQ!u1Bj=$txnz}b`&&nh#uPWUv$O<<7-A`yQh z+$EzK?ZDD`(r20ef@QvgAb*kg*MTHk;Bt~ZNtJH9O)(J3nS($Y1)Hy$NnO~udC`V^uN??zM zA(>LEZk}0dwaT7UH658N*q3Q4|yCYcElxJx-_{2zHO6YS-Gld2ul!wMZVS!I7Skm}Qjg!Ds~bhgwsCX7>b zueDh1&KZX4V+iNYGJoPuBTfXiG#2*(4J%vUPM-;AL8`jylH5?Ji=yaNH-iJBs-I2` z^(lSjE&@J6qX)BvT|JmXv-@iFTnaFqyu_iF<;sJI+QWBf_L#f2wUGM)(w$6-Rh~h< zytMZo9^W7>_eH*eG~aCSdDv^WJ5eZ@_b%z#rV;1V7k?cVbxp}QnbLu#7HWC9U{p(Ya>84}SM8YqRX{0qO!r61r=_!^1}H+td1 zgU3DGONcck#2Uyb>mB`t#~e^jU|LnT-6P0B%a?AcME~$4D}7cC1H785lCqXHtXsVT zy^_%MO7-h~pf~#2=&SqAu?ac4K<|(m{Y`C_t@;o0gOKA-M84&ed)F}ocS8@jESQTR zPJMPK@Ufj{BYk4e;)Hrpk_Cd%uwXd_T5`%#KM@$AA-A!dyBRaTs-3!Ywp&7>|%| Hl}>a literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_external_o_b_j/_object/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_external_o_b_j/_object/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..efe995ca3c36b325ab41319f285c27b4f4346730 GIT binary patch literal 306 zcwS>*WME`~fKLnzjBB85#{W>D_fW2U`pu1vn}asS+IzBgJDB?UG9ZD9Ia4Q|^*d}J z(DJ^nEA+twnFq3B>6y&Fxt4sd&Ke!lt@m6tsmr6I{CJ+Dt%`_kK zQB%WPcOtU#bl^(Xr#ugs><%%6g;e;5UDJ+UIAgkZ)57-J*S8qLbGKaVY6*=xXA)L( zUsd+&nm*?Vy@9_!@K)8MBOPlKygd7e|TxXI8s&vdb#U_szPC7tK6R-ZXr?J+RF+ oF*v%{Gxvi5U*h$hrl8s_0B)CtN&o-= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_external_o_b_j/_object/external__main.cxx.i b/CMakeLua/.hg/store/data/_tests/_external_o_b_j/_object/external__main.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ed3eb5244a345edaedf9afa32d8d904dc2868696 GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|LxB<3ES2MCsy}85@3dYV@;>#3-(8p*FeuH;D^bWz%*@l! W*WME`~00SV_hq4*}Ljn8pk`Ut-xyXGpQWn(gaa#eFFC={iZlosVF7+7=FasdDhj3QwG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_external_o_b_j/executable.cxx.i b/CMakeLua/.hg/store/data/_tests/_external_o_b_j/executable.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..07bb148498587ad6c2185185b6833b42ea552443 GIT binary patch literal 129 zcwS>*WME`~07oE>hO!y|LxGrEa``&0*G~`h{SUs<6(GgEsd5$r5~!Hty;j3h_f+tS zGunY3tj5B{k3LV{6g1iU(PgjCle~>Se>O2$yVK#*&d!+*X5psOo16l(JT(Kv?PRyc KFz}yMI0yj6Auo{t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..b65c0ab4056e36605d9396574d38c81fe29f622d GIT binary patch literal 2314 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/_find_version_test_c.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/_find_version_test_c.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e65919d42bc3e427e76d48afe571e9e1961375f2 GIT binary patch literal 248 zcwS>*WME`~fE^4B%n1-CqrrbD*!@B1{bQrz=&RPM6FU#zIiS~}TE>6`D(1|cw2|+S zf{1JR{zt7ASC)2`mMKitI@ZKgmip?#Qr{f&$NQsQeX?2tzLlTft6sUqLn6Fk+V@ra zzWQEYwM)JzHelOjQNc+?-y9UCDooe5V~koJxyx}itApo~Bh`~UjOGa`?qGP5l2cog zQI)ZqQKy>a(uqh$%h*TC;+MbFC^~=4tgYHtbTFx}(b4l%-K5B#TiuVstG`EV&1t)J hzftj|aoEqqNj(+L&L3CJlv^$KudlDsU;6@U3jkgwY(@Y8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_app.app/_contents/_resources/_t_app_config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_app.app/_contents/_resources/_t_app_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_app.app/_contents/_resources/cmake/tapp-config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_app.app/_contents/_resources/cmake/tapp-config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_framework.framework/_versions/_a/_resources/_c_make/_t_framework_config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_framework.framework/_versions/_a/_resources/_c_make/_t_framework_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_framework.framework/_versions/_a/_resources/tframework-config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/_t_framework.framework/_versions/_a/_resources/tframework-config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/include/foo.h.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/include/foo.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b1fb567be55ed58b10023cdc1365bf33a1bbd783 GIT binary patch literal 89 zcwS>*WME`~07)R0fU+6?LxJBEqvz^U_u07S&N0$2eEq-Ba>8#0Bv7iarI4CiP*SOo Tk(!v2TBMMcnUkuZrOyQb7eN_o literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_bar/_bar_config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_bar/_bar_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_bar/cmake/bar-config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_bar/cmake/bar-config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_t_app/_t_app_config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/_t_app/_t_app_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..2dfa8bea9984eca56682f6756a15a4293ef17021 GIT binary patch literal 157 zcwS>*WME`~fLJI70!HTlP~geD*FtB5gUfVJ7h!4HyYsr&`MhR80u^(D!#F&3^#VQ4 zo%cTN6Yg>PjAy9ENe`VsjdLgT&w2))IISP(;T7s}TK}x~#mApYdHKpp%C81+dH9_3 m^YIVmDAdtt@L&pk_EL>e(t-JsQFoWO$W)V^45uH-D**s1oi=j- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/foo-1.2/_c_make/_foo_config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/foo-1.2/_c_make/_foo_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/foo-1.2/foo-config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/foo-1.2/foo-config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/suffix/test/_suffix_test_config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/suffix/test/_suffix_test_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..62ca4bdfb7a225734dc3c16c95fc2db6564a1135 GIT binary patch literal 85 zcwS>*WME`~08tC? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/suffix/test/_suffix_test_config_version.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/suffix/test/_suffix_test_config_version.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..0baeb3319605146b19037839961b71f07f10182c GIT binary patch literal 176 zcwS>*WME`~fC2^vMhOU$vEV-x+|@t5(`BZg+_OtFANO$Y7VF=Uzl8w_RLtQn;(xDT}K) K8Sd41wF3Yna7v^A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-1.0/zot-config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-1.0/zot-config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1925eee42e1cc8ae2403d911212d7a74e57b3f4b GIT binary patch literal 85 zcwS>*WME`~08t*WME`~fM_6|31Ko8{D*=B;d73sq#tvwJIL1aXUnq>7f$c}$bbYY=5UwsUgRh! z`Bqj^-pgOi%k}Nc_h5rd#uuJ^D!CjGw6e`}XXUS*2cA5xmEHTNIcus&470Ortw@i_ mP7#qN!`{yFZ{K+fcs`bVDhxHa@}%f%vEoq=J%*^a8fO3><3d6J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-2.0/zot-config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-2.0/zot-config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1925eee42e1cc8ae2403d911212d7a74e57b3f4b GIT binary patch literal 85 zcwS>*WME`~08t*WME`~fM_6|31Ko8{D*?g^_fhfDWXcToZecS-aU@u+-8u&fCMV$aF_93*WME`~08t*WME`~fFcG4Mo9>hvEV-xoXuJg^>mxXgn2DRFO#1zPoBJ!J(>XtRLtQnSn;R})2WMl MkFYXmD|$@<0GoSCPXGV_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-3.1/zot-config.cmake.i b/CMakeLua/.hg/store/data/_tests/_find_package_test/lib/zot-3.1/zot-config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1925eee42e1cc8ae2403d911212d7a74e57b3f4b GIT binary patch literal 85 zcwS>*WME`~08t7OgTPj<~r5c8Y#z_v5 zDBX?liHtV83BVXx>`SGGm5^qd6>TAF){pR6b+ zl<=f^bBe>+~s6E4|f0qb`=$c@z2625Vl0J}oFn>kLWiVNIY! z4Jz5_BqR_WQ3f-3MX7+pCe)zQ+=9T_Hr2q0yR~r3)@>g+Ifz6DM~58bQcli({K(n8 zx=OL2KqI#@pH_u#P=Nn3_vQKg(4mT969xp+I<3z#oKW&Ub{ehub|%^K(f*bUT^G}) zH_>0oa*C{MVxrqC%GTT7Ehh+{93OgrSH>-Qgg4T>MqJtC(=7;sm{0fuPDEO1u`?!a zn3?G}8O6X#Im}9vM1HjPF`|q)0r@6@^_w0f^E^?IGrU__QdGZUGzEB$++`9Y7O>I*7&kxE-^_ zI=I@~5%I1b22Q8^Bm5%HqvhBCaaym703f%t@i-aS*yqIYWsCF`v|0kM?TIMvQY?8| zMEUU-Ms8l_+Z3L$N`lTY(V$+mS)To)d=Y7^UdpaKA|sesgc$VG#5tm*|9Ga+QY}<_ zQ|NH>lq}R@m05eXuj6s&E?Pjh5W#w0F?MxEyB!0a$x3(D!*!U?(R0v2UtP>>8)q<) z!Gy0U)cEmZp$C)ov&KX(AfW!l_-8a-72Mw^XujngxJpxT*?kN9?o+M=5-Pf;4cVyy zgu~CVtOnXsY_k|p`&_JFlh7ojw)I@9KVEn5Wcz7qB)Pi28BQ@jCE5L8n z#h29CCCldp4T4#jfz0@B0hC^bM5W%M7LMzre!mvjK=ZpBM@pt|-ABGJ>n5f)OrM+$ zs?yL-OXEBsC;ALoFL}GJ!t1R^ha5%@wLS~)wLB6PS;DtE2f=_abZt}*1R_|D@m)RJ zkoApU8{9bkSGNL`{OG;+nelROT5a=wy-6HDcU4MLCL6n+u=NV8Ir6sxX z%r}AFyRAfhl9J1Ga$Yd@#2#|roExgI?-?pUl^yjJ!q_ljZyLjgnROH?WWa?0$vVpy zEaPk_D;wY?7tm3h-#dDzPdq*{p)tkvA-ZN}!>7bkh~Ciw4V9_Ug5GhpesP~hS??sg zw6O>PRbDp-Immc4@DfPjVL>)5=FuZzFL-)wFFkFpkavTZ;s-QgtDy60{@U&*flHxB zzO2K%Tc4{M0OUh9X3UhdB`|!5>7aDFrPpu9xUdworHLrt>HN#hw^?I);GRVe!iQ0J;eeY!y@kEc z^8@NOb11bdX(gs>QCdgcGe$B#==wUv+J59;ZxFRf+7fi1yo>df0+8W+-S}z>)ZH#J z$%DEXeQl5D0s(4*oFN!|7@oy|lQ4MeRv4aH=d0)i$1s^-FZd1tiel$nA}y374Y$D# l??95+>FxdLi?Idmu>~uG?fw2>v)bQzMVIyA06PtF?O%axubcn? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/_executable/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_fortran/_executable/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..46552675c53a6f1200c273d28226a24a629f1b60 GIT binary patch literal 338 zcwS>*WME`~fcXpzjJ8mA=YJ^JR-l!fJVk^gzpB1cx{9e-SX-}=+BvIZ`V1rN;x zjwSs|=()2Zw(?e(_*VVZ&p&yTURXH2NllEe)373U>4qoy^$(nwHGDFxu5CT4RQ5GM zZt~YNnV-7THcx6Q-J!Jl&9i@iHm;PL2`)fnq2iyx! zmiodx1_Z`H?-@f~Jq1L7yqA@A!}hyQGyezey#_UxwpHxNb_-#^1cpGYo|%`NQ<{<* kpORUWnp~1!l$lzrp;GOWnN*ZmR2lE<@8aSaRIAAa06SuVGynhq literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/_executable/main.f90.i b/CMakeLua/.hg/store/data/_tests/_fortran/_executable/main.f90.i new file mode 100644 index 0000000000000000000000000000000000000000..784c7a43ad407c8771fe4fe92b0d9ed0b8f406f7 GIT binary patch literal 156 zcwS>*WME`~fEXaIhO#^VL%|}m6IKgO=&nnMPvZ;7+`0L5x+gOO5~!HN&GD(6zvxTo zhte-!iZ`1)2nyifEekzy(nrfnXVsUp{+ee!OOL3%U=j6MtKq48%KHps7nAE8+1eTr lt}dg`UNPEU4NmV|SFTi@S@|+%U7a2mV@4PwgL#aa8~{U=I4J-C literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/_external/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_fortran/_external/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..3944fc88e2a1728b4fb02e977bcdf249d347562e GIT binary patch literal 117 zcwS>*WME`~08=0~fwDXQLqTBK%j_*@=G@q2tfJ|1nsr~(&jecrBv4vVl%JKFT%zGx rQR0?gRH6VPiW2iQxwsNjQsQ$mlZq0HDm8K|Q!7do67|w74S+HLKujf2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/_external/a.f90.i b/CMakeLua/.hg/store/data/_tests/_fortran/_external/a.f90.i new file mode 100644 index 0000000000000000000000000000000000000000..de37e3a84a97a42056256bb4a25e6479e09aa507 GIT binary patch literal 180 zcwS>*WME`~fD#~{24#2thk_#|3#)#WhitL+y3FcyyI^v0ew-@<5~!H-`D;1n*TPVb zwHltfr@YU6JnR23=thxzzlx{C%x%TYU^QIIl@s8Kr MWqjfc&WCht06tt!G5`Po literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/_library/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_fortran/_library/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a56a640909902592f52f1f50eda876b586cc95e2 GIT binary patch literal 399 zcwS>*WME`~fJh)NhqBH8L&4E@i!&y#=NZXdR$tV>@4fh^%I0MZNT6a)aY`>KkKg<=5fV)vq^vl)5KXZeGabc1lOHgsMzOcx6Yt+rRYkoot-l) z1xywD9N(=|blCi7&qB7UU2MwQu12wwxfwREP!obXiGg7o0|R3!)V?Vo0^~5Re`(J| zPDDpaa(!QL=gW1-K%jN^IZZZ^9P@h%w`6iIvtRP^P^d?4tCQ)Z zC0>H(pKt96TBFV0)@UyO-uC?Ob8Sxq*Cy*E9V$4&?N;z~{rfHXTdqt#(RIUCjDp<}Zw9NF z_%O2sBul0!m E0H}1JBLDyZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/_library/a.f90.i b/CMakeLua/.hg/store/data/_tests/_fortran/_library/a.f90.i new file mode 100644 index 0000000000000000000000000000000000000000..f61626f6e80d1d6c28065b8077ad441c938cd4ca GIT binary patch literal 110 zcwS>*WME`~06ieKfwIm2LqXNsvM1Slbl&Gov#D!gT-JL}<=HC+Bv3Ku^Vf3DuZ5u} qPWoth>8$#4)?f3iXX%rmhNcS%CYtJc;r8OJ@f+0i7)*WME`~03{$+gtE>5LxJFtKHf85?{h^awJespz;N;c+h-;QBv9(>?-J_cs*sbJ YRFqg$>6@QYnv?3p*WME`~023g#gtE>5LxHb+yqM6Y3F6ORRwfCb-}RWuYfd`e=FStom}+U-PVI>64*WME`~01qH`hq4*}Ljmh!PBXLbn^a}%I#%&aKBvcDaDbfw36ydM1o^uMIr=KN z2f4b2c>1{qb8!L1JpDoxv~(2IgHjW76bg#+(~A;wb5o0o70Qb;OHviw@{3A}67v+* Lfr?%IT)4OZd$J`H literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/in__interface/main.f90.i b/CMakeLua/.hg/store/data/_tests/_fortran/in__interface/main.f90.i new file mode 100644 index 0000000000000000000000000000000000000000..4e91001697381b3c730484c2e9e70cbf0da7ca9a GIT binary patch literal 114 zcwS>*WME`~03#qahq4*}LxJdY#el_`PybgX-hTUEk2N9W^{X`uNT6blw#F%ceXld2 vCp^xcJo!9`q3P12kk(089!>gjX3wN6i?$qj60+{f9+6fikyZw!o5I}yvdu1P literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/in__interface/module.f90.i b/CMakeLua/.hg/store/data/_tests/_fortran/in__interface/module.f90.i new file mode 100644 index 0000000000000000000000000000000000000000..379515c5c894c9dd0919c87610b6ecf3773e5d7d GIT binary patch literal 163 zcwS>*WME`~fMg)v3uQC@hXQlPSw91^Pw=zsEl-m+-rC9dIX;X52~^A}?K{ZVpupq& zzJ|5lO~B3Rk(u$f=KA#wf&90kXJ21-;%3+fE?;L=R!zgk;(u3iYt4?-ro>uk&n{@n tVG0-M3cPg6#9_gk`07s2*WME`~fJh+T3}rL^hl02b`wPD6+&o+>`sKI41`dbp!v}6KAc2ZG#oS+u`96O6 z9?Vh5%h&n+YdPoF!rt;`t}KgJ7MVqw8Z0}lerZHRCWbOky%zZ43wPmH?u#G3TxQWM jJ)-!IMdWx|Pt)3_#Z6`bx2~RdJ;*zM@eYRcCcP{G)#E*WME`~fOH`K3}rL^hl1W8Eam?WFvK>7Znr+L`)#r9`PdEyBv3Ku^Vf3DuZ5u; zg}i*7-&r^B6cMrc>lD*`M`o^LjzR(V*J8epU%oqsiSi3yDY#O2sbxiQ07p^jm%t61 x4y_W1?B%<`wO@eO-`;mZm3z%3KLO8hd+|Sd51UpvTF4#weDsSvLvM=pPXOCYLOuWh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_fortran/test__module__main.f90.i b/CMakeLua/.hg/store/data/_tests/_fortran/test__module__main.f90.i new file mode 100644 index 0000000000000000000000000000000000000000..bdc11460590f38fd88d7210af13800e66c7694de GIT binary patch literal 151 zcwS>*WME`~fN&sAgR&X_LqVvDsttQ~Eq_BL>)(HhK`Br8YNjzDfr>fY9G}Yhi@t<@ zDE;!Kc(ciapa2fuvQUmfUcS!nU&}ea7P5A+uvGqP)yR0cf_?fktrW4*WME_f14exY24*z~o8iKLC=fN8z3T$^?K&&XS=nDMtzIpv8s^J@1S;lCo#db0 z>>zUF{claRCkj(!wp?#(aMX4B+dQlI=Brscrn?<`C*|M2dSi>D@TA+H?&Z(8`LMEa z>(32|W>dt!tWHQ_Q=I5^(8V|Be$#d4mX^Q|ax>))8Eky)lE|yu$79s4edxkM*Q3`| zMPKseKM%e7_ECPF#}Zv5)e9R_emmDjO|(4kdaTI8(V;<-XKCas?XUNanAJr7KRWYq z*V`A@=f!>bv!rRI4*zDQ$3H_m&J|v|P;ux3pS79HlUV2f)jOh_KDu!J>X^&7(V$hfVW|A3V{BdcLrSb(=)L|a?%jA>spZ}z?3 z-6{QJV_9a&1*WME`~fG8mDg|Zp{LjhMm?}frnJI0rH?Fty5ES%b}e@u}92~^Ap4q#|(P^kZ| z;2z()Qh^y`{u6|!*keC{(*WME`~fN&r#hO!y|LqY6fhl; gYiW9&3D!8Tf6DV>@bjXt#ep0R5l2}W96V*p0Wj$~D*ylh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_framework/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..01c6b0a16ae0c94af64ae5f8d6283a219afb6e7c GIT binary patch literal 962 zcwS>*WME_f17=Q@r-6pBTos)PHt^U5Ron&uta>-1&DhBUO z-`?)q-oNz1D|Y|f|J`ZUbpgL#8gWESTe~D8ds+YA-XM|ty^B7WDI7|hU}t}Qb?(-m^fZ1_mGV9O{__iI)r&@N-;1N~weH@zXXpH$-QugIuU}pKutrX#^<#}>uk)^q7qJcT?_K7! zC~EdRl{9qDo)h?RV#iZS(NfK3#;>nUWnJ+jGAe4@ zv_1RNW_>7>-OH0Tap{TqukKkdyeqn7H_wE-Mw-7*YW$K?+h|>~vF~-!G@oUPciRe$ zX7&m#|GGkB!u-gEMaDAzH--HdG-ukH#dQB!lYRHW?^BhBzis0z*zSIEnzWx!u~2^k z+c7Qm3rjV<=Z5%M?iT&I_~Z15%&UB=OEi9aw5Dh()!drbEi^0Qq0Z9Q$=iM1mc_*9 zPC28Xym^aWE6bW2g5b1%)D|cn+O>UakBzf( z{LT&9O*fkk3uwj9t+8ICTXkG=mGSyBH+#h^wNAfLb-F(5eOmX9z@>gWKdR(=z0Q!| zyKUBgoz~Y4t=twiZReg$>p3La5w_VyyQB1q01YS=gL{OFA8Bfq#x36m# zyUFNj!>f$vf9CE9Z8;?vCR&wo=Vrl%l~GTB(JWXz8#j0fWQ=(nIfQhDF;M? zGLy{vH(O^-`MI??W9KH}yP*+V`JT;0%}mJ&2~npQj`65*aoNrDbL?}R$fdXLpyIr` fKE-+e>bNXtdd6^Z^*NrCo0qsw!ieEG2mb;9hgZRR literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/bar.cxx.i b/CMakeLua/.hg/store/data/_tests/_framework/bar.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..550221ffa0c54e160a22f47aadaaef329bb03470 GIT binary patch literal 113 zcwS>*WME`~07D=)fU+6?L&14(o6dFjj+dTh{=ABz<=DEn<#t;ckU(i!erAe7T7JHU lrZrb)UWr0(VrHI(CRa6=0!&mvp(wSav?x!(z?!R;3jlY(A>{x7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/foo.cxx.i b/CMakeLua/.hg/store/data/_tests/_framework/foo.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..82d696d185632b27e72857d54a9b8742f5f4fe73 GIT binary patch literal 218 zcwS>*WME`~fLTC%70PD(4+ST4k6hhvJ%PcB=?Cu`?Tc?N>}aZHKmrwWYWr-t4><_9 z{QfKI&Gc~H#tT6k1AcRR6szL3LaHGv3MF`FH0^gcquC zZqDP~8KJW6(ab43L)wqVBnQ?^+rO!M`zH>=KyC`&ot*>$6M z^@KT()8*R)Cm+=_`ZqQB_~eKmhQB$SX2fam>N~t)|F}3bQptS&OVvFOnZImxd<6g+ CX<}vo literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/foo.h.i b/CMakeLua/.hg/store/data/_tests/_framework/foo.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d0ff3483d615ed8b3de865427086f53ce64f55ef GIT binary patch literal 70 zcwS>*WME`~05%|Ig|Zp{!@%L>qhFu@J|Plgle6gJ!Iun=U8ES0KxtZjeg+o+#32?j literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/foo2.h.i b/CMakeLua/.hg/store/data/_tests/_framework/foo2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7faa04f6c404390f07776da8188ac94f66f15430 GIT binary patch literal 71 zcwS>*WME`~0Cpf|gR&X_L%}+i_@-XT6VjjkWTfTlP0#D@-)X{t1WMEL^NljN0AC9d Av;Y7A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/foo_both.h.i b/CMakeLua/.hg/store/data/_tests/_framework/foo_both.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e91f8b93c12ab977533d4ecae075da6d917ddcc3 GIT binary patch literal 74 zcwS>*WME`~04^Zrgt8g`LqXV$9K*W3o4i*qobW?qs``!velzkIkU(i#e!f$FNk#@2 E0O6MwE&u=k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/foo_neither.h.i b/CMakeLua/.hg/store/data/_tests/_framework/foo_neither.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5f9bde49a065cda14df847c6c1827f789dc7b736 GIT binary patch literal 77 zcwS>*WME`~0A3*GfwCF@L&40x%WR8or_I^n#j9FjeroEQ9^a`9NT4(=Ki@Akvm_(6 HD1!?C9`P3{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/foo_private.h.i b/CMakeLua/.hg/store/data/_tests/_framework/foo_private.h.i new file mode 100644 index 0000000000000000000000000000000000000000..343525112ee9fbf3a68efaa4542eb70a76fdd977 GIT binary patch literal 77 zcwS>*WME`~0A3*GfwCF@LqXfblNWwDTU=OYZn7h~yVN*WME`~03IObhO!y|L&0L*GB4A0Z{?;otZf#Z@}c(D1zt}EBv6``pC3?~l#`j9 G!36;MuNHOy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_framework/test.lua.i b/CMakeLua/.hg/store/data/_tests/_framework/test.lua.i new file mode 100644 index 0000000000000000000000000000000000000000..de1067f0c27f52c7c57de3af0b93f707e80ac949 GIT binary patch literal 74 zcwS>*WME`~04^Zrgt8g`LxD+Hhy9EgjlTw&AvJae>sK``=>Eol1WHR%i%ax!N)x#N DuMZUa literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_function_test/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_function_test/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..b4fe7d4e8067c57e4f77cb666cd5b09a24485d37 GIT binary patch literal 1849 zcwSYLc{CJ?9>-_KHe@Rl!*!L)jHRTp^9b4IFidu%Y#B|sGhBviX>4JhArg)Kk#)$} z4UugwW~`MxTQ%9&UevYSbbIH#zUTaY=XZX8em>_500Mx3?*Z)r0N}WPZUD#ek8u2V zK3c=L`-^y(WgD@e3TgkRPYU4w5}aLW*O4@(EZn-NVC*PZjHPb)g)R>WaF5hPUe4bb z@Q*euJi~LzYnqQecVGJ&eu7rg%6P9nv`NHr@k^V1vR`-IE4lMcM@+w~4L@BT3Yfm~=TPTS0{-HyYs)2B#fI&(IcOAn7y>@sJs z0}I#XC*RV`sx2y4q@g$_MF*9&~)NGM&Go}j+R9*zLL6MobKE$@t9L4`uo?1j4T!_W~(sUnfhXz4%Af5t^TFgDM zm!Kia0av`v^9x1S^p?^anjo_szRoR{r(Ug7e#Jh@c`9u|XkdLdE~>{H_Az!zTqWX3 zDb*z^+}OhMRquVyGTWlb>6@XC8wtO{UrNJz_2gix79rdn>sA3IP*l#cWWBxU)5s#ZrV!D=_|!`x+Ow)R{7god(#CQ0N_APCWL|PKn`tJv4yi)Va zr{;&6)XQQAiPBvYNu%TTxLoG$<=byuO}eNgTEK!FA_C*i(-R%xOos^0P}@a5d+eJ= z4L}|^3eP_XDHwenA;qTj8q2jhPgBMo@Q1(9+K*~K6akji23HO43q6rYrT(ul002-B z05~=JqYV`&>!dd7$}o(FZ~qm>@3Km9PAu>g&N1uf+T>VU+>cQf75xMDRZOTc?gMHG zNo(T-A<&7^=0ff>qW%sp2M*A?$DxNy4S}{kq2L%w|BDcj9(s7tUjc<`ICF&ePHRZ4 zVkQ6S>K$1L=#+<9kF+>&Sf_xn85ckh(k%-qICSmNyY?I>@A*u`W$U6{Z>){fLS#yn z$#orB)G%vW6QUpN&q`@7=&PMNtJ$5CHy~hCT<(IKM&Dvn=)P|%KPqf!BUg_@6wnEl zYWZ0itx6Vl=h%`qj(E6Laf8ZUxQkYVkwg+}NBA*tF+wy3Sy!*`yke;>zv^^QTkf{@ zR%N{Wo<%^Lq1l7LU&P?`IjIN{yxZ)QAZy@&iNA8Zw-^CHGj?8|5aHzdPBRDq5cK^4 zsqW-)LerkN^@v@nC$P9Y@@A>(i<^kkUm-u!tVhk5cPWbs9`VC&lg8t;XrB!xWfM=k zX#_S%2A^}!@^$l7%Y2hnEjee@f!P)d6U=LWoIWK`0`;Efv>e7>ML*pR1AW=)FCwU$N72SNfd-bBQ@1y$?a zIqJ~ec8f$a=nlyGw^qaN3mlhh4qQNUlUqxZ%_EKoIg>3ILIb=sK%1ey2KLj(a;YKm zV_N4J%4kJs$KbKC8ADHjnIdn#BVGcBt7wu@{}StMRJrhpIc6Sr*I*n}`j+l<$7)Q1 z8`uh=-By>Peez4bGSl3CRc7_@C@)MiW^VQUdCx_D@)-j`K=N7c7o4g)-TJJ?ZA_hg zVxx}^+Y2P!y3S+uA7zvJEVfyI8xuoK?p8Ml+DlpMTDha7X17qGUt^AyX&dQW6_@cQ z7&1Et1M{3LNjUPHSO&9P&leUd0RpP}5lVjp DR=Y{( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_function_test/_sub_dir_scope/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_function_test/_sub_dir_scope/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..334cd7a5f64a400b23f3ee4e5aaf0e61171d1eee GIT binary patch literal 375 zcwS>*WME`~05c$tgtFKChk~s1)=7G~7iNT}zup+g;;`Frr9lt_5~!HNUB-KngRivc zBTrX(Vd>{D#ifA;SDtXWb+r9*JZieLNyfH0_HpyvzsxZgzb0t0F}Sag@PgaNz+eZ& zJy658fC!MSGtSJ)c>ZQaZse}|g`aqm-sWDvU4&|Dazes|#Ds(nmPaiL?&lM(|42yx z&k)}GAV6LG{DKPcaC3kAaBa0Z)7Fn5w|G&A4d(YX1TMQmpZGXY|XidU(0j##RG8|V3-#-E3E?+$r T-Gy}$vmQ9TxW#a#R6Y;@Wt)Qy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_function_test/_util.cmake.i b/CMakeLua/.hg/store/data/_tests/_function_test/_util.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1eb1f4a5bfa7b05a6882b7287b4aef772257703d GIT binary patch literal 288 zcwS>*WME`~fCwPYg|fH&hk}DsKFN03{d{?=XHNLV6CB>W(Z`Q5Ac2ZG-r8rq^-i8S ze_6v*SI<-T(vu(!Ki$BFPmj8Tx<#jiteRUZyEpdnT<7Mdn7>YsYHgaGAKkU7jme(c zaH?C#xI6f9_vFvqK@&?diDi8$XNFcURC{8U=&?reQE=etlFG?*|P*SOO_I31jjdu*WME`~fLb8#gtD3cLxHuY^4eyfS4WpOuGI8Mo3(XDKSjYLk0qD z5B|}iY$kYrj*Z#2FU19u9>uQuw_k3V W{0iys{H2*WME`~fJh+Dhq4*}LjebSwdfw#+_3K#%J(Z@{~-T~J^Tj)5~!Htea=%yFRb9n zs%Jp~8XCT*PWpruT)7a!@JU2u)xi|q2`(Pfo~AF;5D`gzHuZ<*WME_f1IFzP46OSYpq&3uaM6(a-u|2}@6}J|EUGu-Y+l~|ESCWZRLt2L677G; zK&0+@_#6TGHo*@2g*oh+dD`1#Tb8pqvTiomWEkJ`|8AU^%bX^O`(g>pUEfo&Ro81n%kLFTr|!>E zP&vN4rDcQn_Y9vOSC;zbw>V9Z{xYkCS4sQx&%>g3rmrs97-b(>p~3yxv&rFS=LDS~ zyKW^R_PEo022Ua?W`qbEnLaTP`B9#?=8n@h4%egS4UKfRzrA{Eqt2TbyK7vPncJG)DWkfn&vkmqvzKc$aw1(a)-cIrJ~sHaJYey%*FSE4;&Ph4 zbE@g`#aL{c<*EcMIPZ@vUw({Fkl#FVCyoFI@g$*V|&*WME`~fHolB0%bG)hl1VVD-8o1er20I&3P2NyGo>ZCf_m!Bv3KO`<$naUf2hZ zvnNmTpVvR-`EXTOz=I%$rlw0v=A21seKhHakV5FR`7;+ym_1|Wa>1CODKn?9n-DQ2 zPDXY$XIK=kn&W{$#fwtsJVQ2wp77QUFSv5SMd*q)!z=xd-e-JW#rW3g=y{&KdRkw% f@x=2dnHr6*WME`~fHWX3fU+6?LqW~cOSSbsnI`|?dp=`v{){Q!*A=oEkU+&8ZjMjii%R(} ze$YCrd*R6=t}@<>1>Z`)l=Xfu`Tm)|sJFb3x8Q4W;n(7CCA@v#`HKp9KYb|jUbPI(?xdO3M!$drhXl_yyl1QQg_0{{W{MjQYD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_jump/_executable/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_jump/_executable/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..0a35c0771294a8ac1ca334f3ec4cca9c4f36a1b4 GIT binary patch literal 226 zcwS>*WME`~fJF=pj3Q7r<9{eP8&sX>D4Q0$AT9k5=Y`u#)PC$`Wk3QIb3T_`{_vSU z@WaOvt|FeUp6~p;oE*HJ`~^H8FFXli;QC#8e0K%gPOJ7G?3KINvR8yuPkknK#JciV zV+eC<*4J92$z4L-T3?&Jg}jX>H_kF(u=ADdbX}=AD`s7t-n@#KM=u@;y_b6UN=E9@ zizkm)O=LAWw^hk>=N1)1P4!U5sjH{Q1TH)&`bgr*J1HUlZwyB~CVbwQ(PANesKttn JA=D+z3INMpTju}( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_jump/_executable/jump_executable.cxx.i b/CMakeLua/.hg/store/data/_tests/_jump/_executable/jump_executable.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a24da1b78f0ac9238f51f3d81414c2aae28cadd8 GIT binary patch literal 205 zcwS>*WME`~fLF&U$;I&2ZvWJr=o3w&JW!hdlnXR*9V2D0Fcn`wy2V5g*KWUq<*OYF}lW lcCLKyET6o%=V=BqOPkac(zJqWBaLpD*q`IRH)X4{BLIX~QMLd8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_jump/_library/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_jump/_library/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2005c962dc76fa74724354add3c4d6abe082af42 GIT binary patch literal 107 zcwS>*WME`~0Bs;Pg0dO^L&1(677JG2dDLlQaV>*IInGcw^3Zz*Bv3J@xTLU?pRcs& mBTrE&-$(wgD;#>BIwyUuJt;ae;e>~dm+!?VObqq2_*nqLG9+mL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_jump/_library/_shared/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_jump/_library/_shared/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..dce89f50f5c99376fd9f0ed32cd3579c4430c368 GIT binary patch literal 375 zcwS>*WME_f14eTO24;B%DCa*Er1@W67?k`*!|Kq~HF+v4Cm8H?Q(`~@6?3Le3iNL_ z5NW;tQ?&L5vyDbzz2m~^YrPsBIzPW`Q|y%LEt~y%*K3>O4=4UUF?o0NdBr6RFZ*P=HcgOV_{5UP zeWJoI&xT#d>|>PIW}UWr58m}lySHo&RyA12bY{|1?98d7gXfIorTPO)-os?Z3Ml`v|Z9e!gH!n6|>%xw5tS1)q=CKPo$0 McXMsNrS9Vu0OaheiU0rr literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_jump/_library/_shared/jump_shared.cxx.i b/CMakeLua/.hg/store/data/_tests/_jump/_library/_shared/jump_shared.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..fdeff503aa4996b49c6c1a6fcca3b58f24e1dadc GIT binary patch literal 176 zcwS>*WME`~fC3bNO2Z`=+s%3r@tIYJL*-7NlY80 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_jump/_library/_static/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_jump/_library/_static/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..00c534b3d6cec588928ccd07337fb6d25c2e4623 GIT binary patch literal 110 zcwS>*WME`~06i!M0mlDOu>BlEpxy=U=8r{xZk#bt@HigzP?iA+RLm(ZDeV0Iv4pFL or|ZfIt+ToudY(EbeZn~S3VA-3ggJD)Pz?{sC}Lzt*~p&-07f_@*WME`~00khHhq4*}LxG6;Jsq!opP!Z;>G0YoUjJ44(1(=_NT4(`uS6lMG`AqQ aB(WqjSwmByTA?Vlq_ikc!N6LfmJ0wx@g5BT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_lib_name/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_lib_name/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..589fda576cb323c1e1f6ee5d20db25d0e140c8fa GIT binary patch literal 288 zcwS>*WME`~fCmf=jI*F@#{W=oZuR?rk0Nf0KCxuVy*#_v>CuUWe;ANJ#hlvyi&@PM z0K@i8>ZWSH#jr#t@>7> zv|T3){R2O+Y`V<%M}fnVapQ*L^A7O(%v;DX+3})!lkzFPJrkF1R?^(|H9B*WME`~0CymEgR&X_L&4w3jtmi1v4b1S-j6(66Hnw(QykeaNKl9Q8KQIKC$qN%{8oSK)CnZ~7{z?E82l3J9fpiq{dnWB)E NpRb|GRn1k)1pu9*DO~^n literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_lib_name/foo.c.i b/CMakeLua/.hg/store/data/_tests/_lib_name/foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..87443d09d7a74b281b3850bbfa32c30a9af76526 GIT binary patch literal 160 zcwS>*WME`~fCM0Jhq4*}L&5xRo}$oB@j2oiH6}8*c_dR7=^SK00u^(D&-r+J`UZFK zfB#}^_Nc4h-_!S;rk;oIHII`gPoB{|p|5o@*WME`~fK(_30mlDOAQyBXKrAXK#8o%v#&!jnPjk&G-5HQT#T?U98@ZYdL|8BU ztvkv(J!Nv)8Sx!E%6P7QXW~zqGNUWt&-Yy=wsX!+%1El=ef+sm!u9!{d@JjdH>c&U vJu5s{Y$J>9>}yVPt2yrnm)bFeNlic5_4!9rz1r$+=jZ-z;I?o0EB6BcUhYE@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_link_line/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..f859a00a499bfdc5c5640521642f01c444b1f9fb GIT binary patch literal 292 zcwS>*WME`~fF}$Lj7d;7<9{g7I~f}LWruZ?&_g}zS+>gmN=qtcGa!MAIk^)K`W-e9 zaC!f)YvPVALTBxltmR+W7^dh^;IwY9fcCW5o1I?&;)^R2qz~RK4k>i%Xj2NAroZHEyK3`ill-2}R*#zrUv>rm zE567RdqVnCRnw>bgpiF?TkN4wuk?3%>Kx`Z&7|40I2+m?EnA( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line/_exec.c.i b/CMakeLua/.hg/store/data/_tests/_link_line/_exec.c.i new file mode 100644 index 0000000000000000000000000000000000000000..12708fbb2c4936a01fe6ba9b1d7c42256166631d GIT binary patch literal 129 zcwS>*WME`~07oDWgR&X_L&1Eln%{c=%kTJ|OO$AE@J~1W!1%rp5fx`PApcnssOP2({iha>j<&cU_hqYsylt6R$)>x`MpDx<85Vtl62h Klc6P3G8zCm5Ha!q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line/_one.c.i b/CMakeLua/.hg/store/data/_tests/_link_line/_one.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b3d3f83717be66405d6a4fc542ca61c53542702b GIT binary patch literal 147 zcwS>*WME`~fM6g_gt8g`LxGgctw%rRyB*zX`QYgmZ`(GeUx|tgNT6bl_UZFJfgGCW z%eBvXU%Rm7*&{7x&L7X0I!S1+(gmdW0Bq?rP5=M^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line/_two.c.i b/CMakeLua/.hg/store/data/_tests/_link_line/_two.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0a231cb009eaf57de29783b2bc210377d14d1b26 GIT binary patch literal 147 zcwS>*WME`~fM6g_gt8g`L&4N05#7wlmGw# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d33cdb02add8b586ed04318ee7a4b7729f1cc716 GIT binary patch literal 546 zcwPY_0^R)p0RRC20000000H6v00fl)0000000061|NsC0|NsA$CEN322%BHxjfrEF z?2yL9l?0&x00000000000001ZoP|@tPUA2Tz4t3d+5@drMOywKO$`fMC@NVk<+3vI zWMh%qk?pkf?{^%#C|Mdf#FOMb&y3$2KWx^wEX${`lIoQnTpNJ~W|PS`$SY~Vp>-Be z+14O^Rou~npgWo_p_VU(8%Y>92n~_Y>`}m>LPa@Hh@t%Ds^0&fBwFbZ00%IzH?Inw3w&+2BeNjKZ+ zNrw=Ug53NFFHWkQhqD+)U>3s&d=*0n4{E@c{gx&v)gd6r4DE%hVLC0)R zf}IMmCzk!n)5VHSfxThzJ*=PA2{d1ga*zR!awltUz)IIf6Rn5mC);TDIS5&nX#B9$ zGz7K31LtQn+#m0o4aWUcww k8F%u7_RnXkdCI#(&x3xpV`f~2^(!+jyX3RUKl*lZ?YXl9{Qv*} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_exec1.c.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_exec1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d99a550761834fbf1470d12f219a21194997614a GIT binary patch literal 146 zcwS>*WME`~fFK|ahq4*}LxJz_T_>D>de)vUw$V^~@8z=iP2o8PBv3Ku^7WvClR93$ zdM8(gczEi1ob}cWJ8?ev!+Gz}3zwd2oj&iwxbd#n=Sij}Yj^H2`s^iABy9ZI#AN5H cogx#KiimUtd3$w#65(01GixWqdN(P400v7rzW@LL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_exec2.c.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_exec2.c.i new file mode 100644 index 0000000000000000000000000000000000000000..fd5379619372faf8bf0a393421fbbdf192e8eb5a GIT binary patch literal 146 zcwS>*WME`~fFK|ahq4*}L&0H_!_G^Rx>8pstPih)b z-pQ3A9-g`$XT3GUPMi*WME`~0Bax)g|Zp{L&2lZ2fEt7sO&s>b<(9JU0=i2mu{HDfCMV$T)rOU;i>C! z)>|{|#QES4r^`Kc3xY0OdaiZ)yia4%*WME`~06ieqg|Zp{LqS8$tk8Dhtp{i1Se1T#;}9;tcbydj5-8QzQt-=HNJ%Y7 n%}YtmOU_I!R?yPtD$CDI0gAh%7C6PHmF6XDXmV9^)p7v*WME`~0Bax)g|Zp{L&1wxFK?CZ)@JBi=&atfW-0%S!)qHEkU+(p%h!WEJas+J zdTWNAI3N7sbh)Q)LCA$m&$UjU_h~G8eA(;sBvX^MJ14NrUDy*WME`~fNUV12W2zbIQ;gQR7f)e5~!GS`FfCtr>@6Y zZ_Th1=Yv0-F89FMEBSWNNZ@=LDA6g-tP6W4O4Es&=Z*Jjpe) zQk5%nrt4AFlbx29T-&(Xt~u;HW5TQA=*v2xid7_)?OKAO$!-ymtesgq8SLNa#{mGZ CV?kU1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_f.c.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_f.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f42ca9eef4ab433c2c0b4fa808547f80bf11376c GIT binary patch literal 171 zcwS>*WME`~fNUV12W2z2goqg3t?>o@<>x@6%ZH__EjMNv0-icTQlryPzrNY77_GQPob>nJ2ks zR;qGk&U8Jhda~2fl4~1R+ck%sXH0li9DP|QRI!SrvRzA1G}$d8lC?8yCxg9>ehdI$ C&_Y81 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_x.c.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_x.c.i new file mode 100644 index 0000000000000000000000000000000000000000..db0bcb019d74632dfa6be75dbec8f3f1177f0ae5 GIT binary patch literal 122 zcwS>*WME`~04pF4fwCF@L&3IvPH_&OJnSEFFZW8lbn5EQ%*{~@NT6cQ>f DBw8^5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_y.c.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_y.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9309f2a92bb3471a28ff291c461a0591585f540c GIT binary patch literal 110 zcwS>*WME`~06ieqg|Zp{LxJEa=RFfy!e*E8J4_SOU859KmlVZ-1WNU_6#ViPQc??2 m^HNgtk~33_6}0rZ%JMT)fZ{Hx1(ES-rFqF3nq1XfwOjxXhaOV^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_z.c.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_no_dep_z.c.i new file mode 100644 index 0000000000000000000000000000000000000000..540e36977cd4aefd41d128ee2a33d2959a23af7a GIT binary patch literal 123 zcwS>*WME`~0Bax)g|Zp{L&1iit2rM_y-Veu{<5h5AQ5%sX0ka05~!GS`FfCtr>@6Y zZ_Th1=Yv0-F89>!2)JFMEBSWNNZ@=LD9;3z}lC#&Eqjm9>+h>9SNL E06|_c#sB~S literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_link_line_order/_one.c.i b/CMakeLua/.hg/store/data/_tests/_link_line_order/_one.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4b16d48e3a8127966ba158a553b8e4d8dd4de05b GIT binary patch literal 165 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 Vd{ur;SYn?IrO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_load_command/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_load_command/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2cac57c8b4991e7772c36d2068bccaf3ff3f026a GIT binary patch literal 845 zcwPZb1G4-80RRC20000000RvG00`0m0000000061|NsC0|NsB+vGjF6oP>NX%kv%i zxB8}6vJ3+N00000000000001ZoZVJkZ<{a_edkwPWqqJho2c8{q&-k$5-)%w>{RVu z5CNw__ImQ_K9;N(w;N(%Ah;o1y zB7ETMrC{+d(GSz$L7Z!7gwfdNcN6S0@&oJPA}9dVBei@qGQ77TV`h|8^GfX8x{1oG|xZrHVL z$orl3lPpZ?NLX?5N`e;bTg1kCuUwadWf4|Mf6?2eVs}jPL)`X9@62Y$vmz+g8x{8R z+2qDTE?Upx4`^lCzG?fv9Vd;nZtsojrB@;WIk*5cW;tJrC5l*v|A9{W#NL z|Jui16IUfagncPZO-oZ!k6@-B#Wy~!iZxU@gn7D@%0jge>RE-#NmVwKbs-?GATA-x zrKyub1koCjCb>o|z4bF}#Ozx9T*EfQCj$Vuq$6J^N~iYMr(@7g*Nz;?t(_^7Z_X5rXtM;J^2wC@H-<-~k8%4B z=Tf*Rhd_$85Jk5&uESCSJ9@sViU=z*3j2T0@e`#GU z>k8&Yo;KcWjrmnpvsv%C*Z4M`Z@t?1_GeH69bYsM<;*y{-}5rDpd+TToho%pK!3~W zpY=W(JTS$qzW*TNQ6%{?6XoM#3kyW XW%{ML;Yye~eRm8$y0G>eF`lKAi13|- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_load_command/_loaded_command.cxx.in.i b/CMakeLua/.hg/store/data/_tests/_load_command/_loaded_command.cxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..e0a0789301f4c4ca5c1136966b95c7358f025833 GIT binary patch literal 422 zcwS>*WME_f1I9E424*Omf$={SB&!LpnU=rot&oHC%lSLI8>+*^E-@g1iaEWLE@mAv z5NUh=TO|GKGFJ8C>BZ6|+m0HAx0lBCIC}az9nLbE6_WU9_xmeWFP}|u%sg>&{`>6W zOM*p#AyXP{!&;22LQbnr+%o-k*z@X_VbWS5`un%*DDp}y^Hs9D*<$@Q$m87g3z+V6V2Z?9h>#&oRa#|*Vp73 zH{9IIZ{N)rAoGfagEw;Jy_q&AqIOknvQ71NoBZ<4g3CL#&Q{*n`(*#{U(=(2_;dQ1 Io1gs#09UZMQ2+n{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_load_command/_loaded_command.h.in.i b/CMakeLua/.hg/store/data/_tests/_load_command/_loaded_command.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..cc57d4f2cd1dfc2131a54a40dcfbbba5806829fe GIT binary patch literal 220 zcwS>*WME`~fH@2dj7Cs4<9{f4*hyFltR#v+bW|rwbv?N3(YB_%d;=pY~aAy_09oAKr59u;Cd~JB1UM^^fp&yF_f5 z+^;OKP;&ajSu-X@wH)5?;6%cL#&e2xALTM`6&X$L66!YESRuFO;_=HTr*ktH%#RZR E0Fz%{h5!Hn literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_c_make_commands/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_c_make_commands/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..e718bbb8f0e01dfe57c81a7e4c1d147eadc0d552 GIT binary patch literal 325 zcwS>*WME_f14dQ`1}0GkDCa*EybWKp`vK2QjhUr^%;6r{Plt302HC9o@G-R9rDX=TsP?OVtb zlVx~##TtedjkVVfHJsnv!*#5bGfpsp=d`7fZquAa>AR)`&ra{*Y~YBPu+ZUJ#Xp|o zfifFxoSFasN|9?9Dcac4DkOZ~&HujnrAFRK2J@=^s`P)#ZnpnX`=cr7;QieeVc%=z zK1j~Bj@2*Akrc?hhxQmd@P3zgs!;sW__eSxj8wA;3%>jw(MY2ssnXP`%^dG0bK?9Fj9Q z^dpXRcJG{J0QI_foSs!4krQ6qU;bb?ww<7bIX!5e`C{a73nr&G-Z)11gA5 z2>kK6j{_9rBtiA}m4svNJCcWC^n2IHQUC+EuTH7&qPib>4Wzz?@J)bX5T}tz3*V#U0nF}lQJDaPPFei~uGy?GyfK!CHOFfUUo95B+>8&_ad=r{7hm4DaCFA7g z_;zvNIJ!7GT{>!!_@=pZ(ocDQ5_TwdiEGd>#F1-79+m1+bdIWPFKciMm=br{^g!7a zf6m1v66odoT8M*yI@QGghfr??pjMM22_grd3LyX#wTpgVE8L1`fMc8o#r$-tPNynt zJbLiSfJi;~G$Pyxd=hcNs48w65(!uWB!oY4JQ*)j9HazIaDwg# ziNKkZ5jPJe2Lq0XB1r=Wj9_=x5U2@7X+i)9^NfU`>(b~qjsi-*A&)XiB4+fS;ZPCr zz3N_3Y%A$URfsvwHb?f@=y$t%uQe7AO|4dwcK#uM7m;+=Z4pn#IhEK*p|{Mo2H!8i zl(jRYyu=7kS%jKr^69Z6k6%Y@z2h#W<5r0p!g6KGqkh*M8@h36j<5BhrC)SR!KB}V z-%>!$CL(L3)u)*G_%0w?LtYu(3==}7Q!D%b1st1#<#P;Cv&?d!+n2krJl@FixXiL` zbii>g$X`VnrkQ5>!I`^26xrU(7sfAA$K1{3v=*@k_Km6W#_65#-GuKA+H(n-82s ziBL+gUQxc~CvkvhBh1r8as-+yKy5}yHNSY4=>YS|f5*tcvCnY;h2O106M?@GZD&54 z&`XLA82w5dE(#M|*EX{+;a}2_w0s66D4V^S0=#?Ulk!WxeZ8M2&>X*meXZ^0>6vDQg*GN1*>Nu{b)1f zR^-Z*Hd{*Rtl&IUT}~?1n3)fL!jr7>nYLC#Pjv<>)U}KR0z5<{9hH}=7ub^HxZUrM zFZAIvoT2|R8KZ24YmSQ&D0zX4BFamGWG%{3L98|X326s7E4&9Sz11>XqD8TKmTf`% zkQLoU6J0J((718ZBi~07MASs#9@$&27PAGA$Rzn7t4e|X`nVlUD5!Wx5D8;GLm7g4 zvxpj8`-pDdCAaXVaMsnn=YnICnC&zOWQpHK$n;4mJs<<46QArL>Jpsv-9l0*(lKFt zCYxUQ8XpY%19NEqr8TrPf|lAv!iLZ_$60P~@zLywpGX`*8^QO8LKhz06DGQJcY8`l z>oal5)VU6NazSZOGc%yrr}VRDja3B8yz;4W9%(%mj^wl_Sqo?7HPWM`Ypi3b`l zu_k!2#n&2pv@rH_W|r;sr8zXUty1L)lKKTSzq(;-o6_cJIc4x2@WT$D+d`&J{EF0B zaUr17S)pVt=eCfNISHsLN8)T#P%570194I=+E?lMrHNl_G#ltwL1W&xiYeE1k(0t4 z945$7fC=Ih-IItgsG@SJEgC>hw%Kap=vEAc2c{b4)mc-XIW(RXPmgc2Q66v#$0zgS zY=a^98h?2(EV|OmnudhCgt3NJuh&rFY4Fpln&BjE{u%|Beou2brPY*Zh5rJ99)+hxnVu&I0L;HHt{0Ah`^CcoARJrKgfO3j`_EMkQWyE| Vd{ur;SYn?IrO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2cac57c8b4991e7772c36d2068bccaf3ff3f026a GIT binary patch literal 845 zcwPZb1G4-80RRC20000000RvG00`0m0000000061|NsC0|NsB+vGjF6oP>NX%kv%i zxB8}6vJ3+N00000000000001ZoZVJkZ<{a_edkwPWqqJho2c8{q&-k$5-)%w>{RVu z5CNw__ImQ_K9;N(w;N(%Ah;o1y zB7ETMrC{+d(GSz$L7Z!7gwfdNcN6S0@&oJPA}9dVBei@qGQ77TV`h|8^GfX8x{1oG|xZrHVL z$orl3lPpZ?NLX?5N`e;bTg1kCuUwadWf4|Mf6?2eVs}jPL)`X9@62Y$vmz+g8x{8R z+2qDTE?Upx4`^lCzG?fv9Vd;nZtsojrB@;WIk*5cW;tJrC5l*v|A9{W#NL z|Jui16IUfagncPZO-oZ!k6@-B#Wy~!iZxU@gn7D@%0jge>RE-#NmVwKbs-?GATA-x zrKyub1koCjCb>o|z4bF}#Ozx9T*EfQCj$Vuq$6J^N~iYMr(@7g*Nz;?t(_^7Z_X5rXtM;J^2wC@H-<-~k8%4B z=Tf*Rhd_$85Jk5&uESCSJ9@sViU=z*3j2T0@e`#GU z>k8&Yo;KcWjrmnpvsv%C*Z4M`Z@t?1_GeH69bYsM<;*y{-}5rDpd+TToho%pK!3~W zpY=W(JTS$qzW*TNQ6%{?6XoM#3kyW XW%{ML;Yye~eRm8$y0G>eF`lKAi13|- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_loaded_command.cxx.in.i b/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_loaded_command.cxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..e0a0789301f4c4ca5c1136966b95c7358f025833 GIT binary patch literal 422 zcwS>*WME_f1I9E424*Omf$={SB&!LpnU=rot&oHC%lSLI8>+*^E-@g1iaEWLE@mAv z5NUh=TO|GKGFJ8C>BZ6|+m0HAx0lBCIC}az9nLbE6_WU9_xmeWFP}|u%sg>&{`>6W zOM*p#AyXP{!&;22LQbnr+%o-k*z@X_VbWS5`un%*DDp}y^Hs9D*<$@Q$m87g3z+V6V2Z?9h>#&oRa#|*Vp73 zH{9IIZ{N)rAoGfagEw;Jy_q&AqIOknvQ71NoBZ<4g3CL#&Q{*n`(*#{U(=(2_;dQ1 Io1gs#09UZMQ2+n{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_loaded_command.h.in.i b/CMakeLua/.hg/store/data/_tests/_load_command_one_config/_loaded_command.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..cc57d4f2cd1dfc2131a54a40dcfbbba5806829fe GIT binary patch literal 220 zcwS>*WME`~fH@2dj7Cs4<9{f4*hyFltR#v+bW|rwbv?N3(YB_%d;=pY~aAy_09oAKr59u;Cd~JB1UM^^fp&yF_f5 z+^;OKP;&ajSu-X@wH)5?;6%cL#&e2xALTM`6&X$L66!YESRuFO;_=HTr*ktH%#RZR E0Fz%{h5!Hn literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_macro_test/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_macro_test/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d2380d974db177e9a678d5877ba8c4779a6e6b93 GIT binary patch literal 776 zcwPYr1NZy@0RRC20000000PJW00;>H0000000061|NsC0|NsAr1p+-&xldu^AtY)( zr0E||uVv2w00000000000001ZoV8WoZ`v>re$QWV3VleXsiN!Km@0XWVQe9E3DuCM z%JLFJqY?)tq1}Y|-*?Urnoy{!se3{8-FM&JcXu&85Rk{odL@BEs#brXka+>2$fa@Z zProuc18X9}ES;gh z(&8gD*fQF4PUYIy+%D~h9A^$!Bw?1g0Pz9DWk-%z%h7i(vZdmQo-N>UlSox`#Cb1> z^A5!w0k_0?9dX`sao!1W2Zh>(UPDf_q1;LJq9aSM zp`v=w#KDJS&gjjIe0CYg-!jy7^RC@8lUT)PTkXbV_2#uE--Tn|u}9q-hgtMahW9i` zH(4lYnym3X%59^x;uBZddE>AQ)9A%2Tx}u=pYkG#)APG4G%X^z0M4n4(;QO_SzmR{oC-d`9z%79M;8`#*C?n$tOcD}Mp= GBxh|qV|hma literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_macro_test/macro_test.c.i b/CMakeLua/.hg/store/data/_tests/_macro_test/macro_test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..bf6f9076aa7394bf5410d7d42400b9f22aa49c42 GIT binary patch literal 189 zcwS>*WME`~fLb8#gt8g`LxHuY^4eyfS4WpOuGI8Mo3(XDKSjYLk0qD z5B|}iY$kYrj*Z#2FU19u9>uQuw_k3V W{0iys{H20RRC20000000PPY00#~L0000000061|NsC0|Ns9%_(II4g3xJS2@W3W z(F(2P+|dpI00000000000001ZoSjwMZks?5edjBtG!Iyc-S<9qy{sJ?E*30RqNYLw zFE$N^$gGu05&z!V#n_H7NmU*U%pT6noVj=w2HzRwmX|&WT8gw97)HdnMLlxM5}Hh0 zGL68zdhHCvkDP>RV+*};i)u~$_A`t(ML7q#6d>zirYPZgUH=xD92q>kPiWxH9G6)< zpe`eRGL9XW8-Q%P7?QE$6NK7M*nZ))wjCj&APy-zM(m%0n9pLK{2-x2#xC2w$>D5^!z2hAqSgqVvtycBY&lgsO}tX~wU-pJ>T{Q6Lt-Pb>_ zUOR8?ug)?sm>aRnPA7yDH(_BIgctnhX;J>abKgEq84EQPQj;}!uXD)JMT0eiY$>uQ z$k+8sANMiris<;%jcsOqP_X_!QM{vUg;?#DcJ%dHvx`4PBSn=76@pGp!;MK0GD2^x z9IM`kKEbw$TBRK3!|t4j>(0zo;{j-mPpoHE22%wE4;uDh!o0@Jt6Fx^eCp`5YDau% z+y$nSVO9EwOlmA3FVjV{ON=6!$Tm`)k5tc{43P5j&ZzZM1?OhZ?8|zFRcTyTd9m26 z1z_R!aqO!rm#KubEccQ_is)6*G}u+6ZUx*hdfSOU_@Ev~aGk{dwFQ0ka$jS!9!p6B zf8tEzkm)b1OOvjHPxMk5Wuu}p;O%v(CEt7p-vZyg2gmc6?GVle2C?mg-7y+-wJWRx z^uIA`%}Fjr-_tw6AJrr`*U*t2^tWllt@US0ALer~>8=j_TAOtNnfkBc IFWwCq+P>m-2mk;8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_make_clean/_to_clean/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_make_clean/_to_clean/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a2ec4b90721dd41c03e295385c0224d2b0670ad2 GIT binary patch literal 736 zcwS>*WME_f1IBL*3@qOnpq&3ukh^@2-I4i8rSl~wv?Q)h%vt;M6fXl3sF<@f_;%lH z1A*G-+HNoHCbVzZA8_14JLEfJ4=Gno5!tcYIw>AkG;3ANlH#i`=S+0V|* zF;1V>RG%1fE9mlGuhT12Ynv)(zc-)YG*`TRZO9)T8Eq)#ZS;NS-4|z; z9C%r>Y5R7)yXRlCWyNY#7&>fL)4!6l+ADNv@2vyb`@**-+ZxXFP&%_wq~>Hx%JjWgW8X4lRclsc^t7Sv@NWuSkCzK)Gve2 zO-pu0$ji6CGp{uL!@sd)t5=22^o=gJCbbHh70xM<$y_>tCoAQK!)9-3ji@Dm7cB^i z7I6q|TeWV1^O@6YlV@J~X8zE#Z258bLch{k+tZRx=DWxHJU7p;-a zJo7%r=-Fuo0!&PE84JG`Pc4^ zl2PVOl83kP?{`a#t$iFdH*V6~=||;~8h-ra)hmDaFTEz*Vfo9KpG@y>yIRTq%_8B8 z%Dbjj|M&i!($4)}Q|zzNt?gT__v-GNvc{ucLtX#)${*!gHP06AXVd4H@mlcYvTOMt z@+LdO(hCq|0aMLyXkzFG5uj8v$=_u~=#gK>YfsJOE|UE7$$#IuZK$axIU!-kfddCJ z4jni!Vc~)WOM+x4y`M9A)(r9YPhLKk5RrWUNHSz~(Azh!U%Zui|Lo;sDITH1QofJ; zU2CrDpY&&2dDZ)*PSfVe+FA*(<|->a`s?h>*WME`~05u?1g|Zp{LxF8k2lpMGJO1}>SM1pPSl;iPP*OAl5-1IJ4bcekclL30 V^ow`%^l=SVP;x-wJ1A*#0RWlr9De`+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_make_clean/_to_clean/toclean.cxx.i b/CMakeLua/.hg/store/data/_tests/_make_clean/_to_clean/toclean.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ed3eb5244a345edaedf9afa32d8d904dc2868696 GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|LxB<3ES2MCsy}85@3dYV@;>#3-(8p*FeuH;D^bWz%*@l! W*WME`~fWHh3j8mX&#{W?8&xvK8$T>cdrjN3JlfKzMI=bLd6ax~dn3Frf-<#P` zj_D3PPx_ttovRm(9@^Pa@I@J;#mxBFimJk5P(&&fX((~o)H zp2B5rIQ5wRs_0`q-ao9Qri;Hh(x7_Wduf8N&j+bn5uy`qQkFh>&h)@LYSO)lx~r2P z96t71`q~oa<#kN6-`>sp{bAq!`a8DyZn;gzUJJm zu>3HumYLbaU9UvmI_n+SdLU<6x4lTLrTg9EwQFO}eU*v)af0jOZ@1@PC4R78zw~Q` zm9vkR?23@*B}Sr5e>c2e!GAN*WME_f14bJL2Bts;DCa*EJicPJ?P`Et)cs_f_#tJhXsE^F_DxYJS%1@Aq||3p9^>;Pm6}-~Z+A z&#u`lDoXmcD|Y9iJ6^|buqJ%{7dYkVuUzKnrk*WME_f14d0C{=fj`{D*=aPxm?Gr=>2uo0L_)?$)J{QIHRwpR_?U&RqiTrs+))EntGktSsxOqN$Bk=!sUKY1>4!`2bohNPY@7x#i z`t3%M9md`zK!d4?kjzM{;5{d zbGv@+q%Ofl+0)`Z<9P0KI2q_V{Wgzu&3yin!O+Xv|CM`OUrLioYMp&j{;}M-+{t&1 v4&Qn`_ipg4luyfxFQ_f&F>!irx9E|{{7>p0Z=(KqU)F3XO1z(Opvw^eo7$ub literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_math_test/_math_test_tests.h.in.i b/CMakeLua/.hg/store/data/_tests/_math_test/_math_test_tests.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..68a46593596c96ecedef743e5a4bd99767f5ef5a GIT binary patch literal 84 zcwS>*WME`~01+S-hO!y|LxD^8J=TKor?xMig@yg|*WME`~fOiZGjFX{k#{W=|t(__wqQA=5sJ&y$seM;nzFGh8WIzHHb4n*%^g3)H z()RwdNc#)d>cpkh&AWUhPqgG6+QSuD6xDw$MMbl$<9%M1dRU@)`dm z_3vCxF552YZxfkn)$26b-|ac)W%(U{X3RKxHY@h3f6~TP_Kkl}oALL5t+7mN_P4wp zaJy23SMtn{$X~ZE#C`p{rb6$;rzfm+Wv}#4`)e;_*Z*rMZRP37sT?Tw^2C15H-V*r l?}D4_v%C&mc*f!OGP>tvTD*WME`~fFleHj9O4O<9{gNc>n0H`q^hMwcDERJ)5%DCn9u>9Rm`mm{Z&D$$iK` zp!NM{?RjsP?iHCnTe@R~IIClSlZmerdy-bBi|e2F$7F3PBxf8y9-XwU)zYK�Cw& zOLqgmhz7du}~EvG2(06UW>#-#c19z{QCJEnOh+eWV4e)(s{ uwzn79v%YDBEerc{-G=8-b#IFJ1+OQE=19N4ke{+$F2>~4C?5dHy>^ZO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_newline_args/libcxx1.cxx.i b/CMakeLua/.hg/store/data/_tests/_newline_args/libcxx1.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b310d5fcb781bd9639580c62cce1028bc27d07a6 GIT binary patch literal 169 zcwS>*WME`~fJ`8+gt8g`L%}ugAKHt`UMfG+T{7upRo|TSHLKJZkU+(p;B#lZ&uRL4 zh6bEE>EpF-g~6560goO9o%8Yb^bO`HRC{LhL^6U?x|pdOU4_Xt$G^dch>u)Pjeu{=M$*WME`~fEXaog|Zp{L&27!v$uJxR`~SUKJJ=o8DinZ`)vyY5~!Htea=%yFYLof zpQ3du3`*DvcdXjU-bRx} mFBN?f_7pD6B literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_newline_args/libcxx2.h.in.i b/CMakeLua/.hg/store/data/_tests/_newline_args/libcxx2.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..a6b5fb5d8835d03d5785c3a4b2f1470e4edd7e5b GIT binary patch literal 114 zcwS>*WME`~03#swgt8g`LxHCHw1nRRKHsalm%P2aMq`_>bift{Bv3IY_?(Zor*AMv uAunHN`RBrte)A_mZsJCdg4noHo-I}Clq}X<{%mQ=vV$6W3_1ry=K=tsu_j;u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_obj_c++/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_obj_c++/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d8d1dbebac359c4fe87ff332ba73ed0479b0498f GIT binary patch literal 198 zcwS>*WME`~fHokW17$P*hk}P~fnkeoYw+zzc-6CGTK-RdY3G{^NT6a)aF|Dk#_@DB+b}dZ9Q&%t0!%xRARO6(FPN0UapKe&eIsbG1As*UZXMAz{hY#qsHT zQ7K>Gg%AFximqL|_T*7fNnvMsZ$T*^Z(+%&!d6d*vsX@^z50Z!kf*4exAXhQFQ3_j e{2con=dC+vQ0ld-;IQH}O~$h<3}5Ex%L4#WlTj4_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_obj_c++/objc++.mm.i b/CMakeLua/.hg/store/data/_tests/_obj_c++/objc++.mm.i new file mode 100644 index 0000000000000000000000000000000000000000..bdba18a96741b0e8b731a237a09b43effd461f40 GIT binary patch literal 351 zcwS>*WME_f14elU1}1+7DCa*EtgpzFvU|03LFn$5+Vit-_G}j_*vEhbD&|ZLJm|+{ zD6sdtwwncqjKHF7r8R0tgxN2$2=mXD+qHXf^yOSnYg5Bx_1oVzC0I!48Nd9p*W5V& z*QUD?-V?kZpIDS}{H*Nj_g&wY89h=u8j&6(yv6C&!3nj74Ogoko{R|5kg=0ooUoVwYxMJ- zU@(<1d>l7#@w(6!vAL60ygvR(R(lrf(W&{~TNVUYO}wIGdRA|9_BsEgl$%dnj-CCY zW%NzjrkuHb`Lcv%%?3ZibQMfKHZV?hx%)8elPKH%9euy@Uu!-;{Nn4n?~~5OmYjKX ov(ZSa-CZMhh4Z`gj_l>!`R`}-Z1A|3HRH@p^WTgGoQI|X0Khq+-~a#s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_binary/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_out_of_binary/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..81a25b4526e0bc5304421516f3e5344b385ec1c4 GIT binary patch literal 95 zcwS>*WME`~0C^ymgR&X_LxD8Q?SlO&&s6^ObUA$wh=0-|r}v!!36wgzxWxN-It4if UMQY@imgHn6DL^Q_WKAwE0P*WME`~0C^ymgR&X_LxG&~;ZC7o7Ek>X2d-6rycpkpAWfM836y5$l_=zwmgHn6 ZX=o}`D-@-closVFn3$SbE7Wpv0RX_!8#e#| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..f81513f2fb49e40cd9b519bb0ae0dfa2c48928b5 GIT binary patch literal 358 zcwS>*WME_f14cCl1|~%YDCa*E@K`xr6XyFd?Fv)fwY$&@h{8L`VZ(x8L_g@II0~KeMK)+YJvE%AMc!FrGzJ^?zXMpcmMc9R<93d z7iROaJZ27A>Ti|4-$#_;quqzKTlTK@nWmB&n|(k3)v=??O4U_<`(E5}Qhemkitq^V}jqGtg;g40dB8N^(?Y?L#)MCWBIv4~GN*Kw)2A&zUGiqqPK+m0Q+ z$oAowj6%eUoZHjpnqQcj`2I78%96}HQX;Kx&)d_pPKGBrtuvbb u@$36ndiS57{h0Z#*GMKbzu2C=de=3Ej@yQ}W;fj9Y`(7ZlWkY-x+Va0=c4%l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..90adbc7ddbf416b0b39286352ec1b5f55d2fa5f4 GIT binary patch literal 1105 zcwPZf1g`r40RRC20000000a>L00^%D0000000061|NsC0|NsB9=^)MTb4!HrmCNaP zZF#kc*K)f600000000000001ZoTXM>Z`(E$efO`p@baKM)ZT)%DEg*Yw5?W_JW6ho zz6i8L$J`__6{$EukpI3*imsJz#ZnB2Bbhur_v_qChw&`h1SAhaN@iI?Ly~%DPqUT( ziR7~lr6kVs%P{uoje$I$k4E7fyz$x7nkFCdM4l!aI!PvC+fGzvZytgCq2Ro<8#Q|nbyvSIc-V_#Z!PuyaHXNBBU!L&!5iK(E!z(t zW-Vu$r)#jBA#2Pj0szjQl1?YP z)aGkgv*~0q9c%@h-%U&W$6N3((`9x$?DG_rv!(UkI_Or{&oS_~ZD z?pf7YH%(br{`K0=mN33}`|H>de@@>6D@z6Afg{tj+XkW?`i3hduAsyH-`Lf{l2}jV z&gOckik)nsk#H+z37AMF8>}$pWmoit?VYz2w*Ihvgx}vmv1ctSG;ftL!iqw6jkaV~ zBB2JgmmQW`X(N;^63OP)((p!hw^k=D|JsQb{kh|XV3pHM?^lDhgF-g3t7X}iv5ME zh*(UQZBLXhtFc3Ztq`|jS4b17xr)EY+Vf@J%GB>H?I9kN}3m@kr z8^Qm+MMv&Fx#e05EGC1J??fXs4jb6Dm;k&z?LZx2n!&pweoCSg((ua{^mBm>#^vM9 ze`9Q{3C(Ui(G)nC6@>r%ad3|JzlT17!`PCoupj&d@#cQ!M>(N1p)mdd_rGzXh;-LB Xc-!#$PCud?l^(k^y)^bW3$CUsOxGhk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/simple.cxx.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/simple.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a548a36bd003448285dc93ed9b0d099be149936b GIT binary patch literal 355 zcwS>*WME_f14d;A1}0qwDCa*EXny$0_w)p($f0G-Y*J+t5(N2oZ)HFN6?1X}eY2Si z1@=A<_j#<>z~|D<|`< z$_*=IEMNL`MfGm>OPLOASKE)*IcB+L8sGU+_J#ihcfa7r+}6N`Q%;?g6FJ3H`!q$x zg{Jwx@4x)=^Q+WP^TpX01<0h{T_P;SvFnp^?ff4`{(+3$C+0CMNck$UV@JEAO^*!M z2LAPe+luU_A6A*tuE6lDDfe^JQm)S?uPh4ow-uCKFnxPW?!mXlll4QvWzKn&i2p#d~@~gYloh5N`L>AE6smSzw$WunYX0cL)H#wwvkz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/simple.cxx.in.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/simple.cxx.in.i new file mode 100644 index 0000000000000000000000000000000000000000..587bba5116d4a37b18fbc9f0e392ac8b531873da GIT binary patch literal 95 zcwS>*WME`~0C^ymgR&X_L&4HF%)goqPS(%n*IOf!cdu3Ld_V>R5-82gD^V!U%q_@C ZHPX;js8%RSEh#O^Q!ux%v{tC)0s!Sj8_ECx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/testlib.cxx.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/testlib.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..bf692060bec696ac56b8a8989f36aa8994f011ce GIT binary patch literal 121 zcwS>*WME`~081dYfU+6?L&36$vZ?FL71P?@JLSseyS;4j+rr6!1WJ`N^OAE)Q&JU_ xN>YnUax#OB6zYB0iZ(8k$_yTnY+BsU@XFc?yPl2G(4)TmS{UBKZIS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/testlib.h.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/_out_of_source_subdir/testlib.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f34b7734469d7a801e95e95a6020f20100727586 GIT binary patch literal 199 zcwS>*WME`~fOa7M0cA7(hXR#2uJuCyeoWe}ZOW0@wANLmP~sf}5~!FHe9p()(>J(- z|N9qXvqwQ;0SzC#gSx$oj3z&dRc89r?9}8a#Kq;%d1g-tYx?~k0@oi*sF3$pU$Ljj zsiwv&tH`g=F>6zslb4@gmaAi3U}uw>M|_rFq1MV@#>ErAJYSl!tWfiC&%s=d0Nw~q eaj~6S=KMJ#)GDxGeT~s%6O*+&8D5)vp8)_wl}%6p literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/_sub_dir/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/_sub_dir/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..5663ac191c6f5ce7ad72194dd28a4f2e4d1b7d46 GIT binary patch literal 233 zcwS>*WME`~fRzjkjOI`_<9{e{;n=%y8pFvi;$I&eE&JD3XcPA4Is+1@n8VHS>3dNr z-^GG2pZPx)@OJStd@|j+V~S{(_v9d>ZV|6fqC%fVK6!hKe7Y>s_1U|7Qg9=aroqG| zXZ9Rfj3P%!3JQKOX$I(DB^5 zj}9-RYHe+6H%t+}!K24o(y;3C$;;;rHH2pSl|0uHNmqNC@@#2yjB8hQ$f~`uf3qg0 SG%Kbhb!8MWGH}_a!~g(5KV}aA literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_out_of_source/simple.cxx.i b/CMakeLua/.hg/store/data/_tests/_out_of_source/simple.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0e33488fa093d6517f5e974c43f181c721436d88 GIT binary patch literal 94 zcwS>*WME`~068F*g|Zp{LxJD2%PmO>ohd#$!tXj*WME`~09hcGfwCF@L&0_T^dn(6_qEF(t||S@%yvfWtL1qHBv6{1kyxalm6(^A Xo0y|utDvM(?da#}>*!OfWX%Nt%DWp^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_plugin/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_plugin/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..405181f8bf3fd4bff310a54ae6334b00801d30e7 GIT binary patch literal 747 zcwPbP0u=oK0RRC20000000OH300u1p0000000061|NsC0|Ns9>ZU#u&S5t@bLN!xs zWD7*qSAcK;00000000000001ZoQ+gnZ=ygHedkx)xP8!vV*0vIi!ioq5y$}B^@$*i zl@uAn47-}9|9$TasAx>L#)NP`&YW}ZWkMSKBz8OwtM;|5Cx-D2VkRW)SaUD4=9Nj{ zt=zQ|in3w3B-bfpeEH+$}ks@&I_t8z8n^@PtD7PX(;UtcAlFoeuxnQPH63~I&-$ZAo74Wixc zcq2{2ogdNt$W86JXFWy}1K@nDo$4Tr?%po~A8-r|T0ce;gZR#E)Bz2-VNe|EY+L3~ z@vLCYkrJ#MzJ=$P=paCHoz&HxA5hkaqTbn_<*m$C73+qC9m^>7tp$lf%O>#lR~*D- zka{APLug8aAinKbS?5(-uwhRUk<{sEdL7G$iD5ZT8YQ!n|Kk%{6eQFp9hzyXf5h7+ zXH!iEM3YZ@S}4Ni^}2j*8>Zz{JjYq_8u+@GipysQ{@i^`C`sq8M{b{^K-oUq?kbj| zC+5aPi{SG2ncT}}_!0Qt@^Vxh`cl|1<$>r%q*x0r4`jm_ZdL*LQB#2c$7-CKs$I2Z zRp?UOI^XsZhn#lUCDGXUoaZn-)PGKQt~M-_ip*d^@c2yPyIL=yQda1~nm5o2q;)v^ zttLx;6FZ5m8TvhN2Ci++_j|o4X>8F)e1tRz35}JIVcR*31c|R;@q{p-aRd(->c3^R zw$S%!B|WO=`p^B{ag97!q+asz6VYl>n$Wf@t$3mRDGQt>ioO1J@IKs>0=B$p(Wy~Y z)^B2@hJIP7BFZj3^}}|>tKP5vW;=01p!5M2fs=UT!Zn>R^Z#k<`Ugt8J3DZK@A!m! d$ZyHjv=zq;x=Rlut1s4XGTc{P{|{ZH{*WME`~fFleHjEzt><9{e{fAhD|EZyVYZ^2U)wOeG4?{pTu!GHuR=JZam=RRa0 zaP)gkSHiTis~0`J1P|J~vc4|yC_3mcYns{Armwqi-?%0A@_|6#p6}J=cMMf~9XvPg zQl06xL-<EyuLHi(eO9Vf{Bd$aB7tljosbA5yjz+E2KB{w_m9`YxS2 u$`O%gc;~Vje|ocX{>4)fR&jyT+M=gQy`QM{P+$G`zP5$AwajjuwZ8zF+IDLI literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_plugin/src/example__exe.cxx.i b/CMakeLua/.hg/store/data/_tests/_plugin/src/example__exe.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7a11d1463c10648fe8fbf4b5e5747a8b80b1c7a9 GIT binary patch literal 667 zcwPaU0%ZLF0RRC20000000LV800qzh0000000061|NsC0|Ns9UfkC6~*4N~=|K>8` z)aa@nn^U9!00000000000001ZoQ+g%Z`v>r{+?fPq+gPCf^}~n0kPPuA3xY8&&xSzV+Gx-ife?>}^%r;=lqVg});|7}2`@!fUw-8lnuML9w^8Gns#h`9r| zK`^AVsWhxsp1;+k$7ig%-zcT+cPI*$0v8&D!K|kU9!wwL zz|TZ9MVG-3ZtK{nJP%8CdOBMCk99s1Y${B@QG#0MuU3A8x(ev0sYIo`s?4{0{n?DV zyV1iSzaoaSDR4`YIqF6cWs@3V4yP%Vc!oGhk9vCu`PIJ*C!>&%k|@_6AxVk}gEyJ) znX_*O+}pXYu6?hps9P^n6}lB7(F(dWX-N_*-Lv+}e6RJ!e#;LLErj7y(>RY{{W)_(g!Z- BKdJx# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_plugin/src/example__exe.h.in.i b/CMakeLua/.hg/store/data/_tests/_plugin/src/example__exe.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..d1e8dc0912c9265054cf793742a986e858d3165a GIT binary patch literal 166 zcwS>*WME`~fHWX3hq4*}LxJeO=eZu6CKrUyaDDvKIVR1_J;s0m2~^ApKIe1V+tWAL zW39&--4mX@{%bvY&p!xa<4S$DbW!J_)>vhkTIQOV$Fa&WkC|(n?%Mu+6l>EgGDT)i wt?b^|$F(+dn`D}m9{+WAW^!_N2wHbe@t@;FJ}(F5pwB@@mv=DaJXU=V0NE)(O#lD@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_plugin/src/example__mod__1.c.i b/CMakeLua/.hg/store/data/_tests/_plugin/src/example__mod__1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..106f0f4a7c7920eac46521a7d97a6e02bf3c0efd GIT binary patch literal 282 zcwS>*WME`~fLjaZBy4y zd@^U&KJmsAzjVfkpMHN{bPeC_N7?F(6Q->7 z3et@7_I+8?VQ{l+UdW>f7hmLg&v8HeuXeilYncZNCq6&=OkHSI?588Q44c3FvpW1R z?rJ?>diw{aU1_2{kGDLv5Dr(|-L-txHphLu7N%eL(~EQ}#V%fQk66CA`?FYm<&>=p Smj_h86E*&*o|oxXeir~tdx5b4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_pre_order/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_pre_order/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2d0f1da30ed4097ae3c23b9be46588df6a00800f GIT binary patch literal 216 zcwS>*WME`~fEhr%8_H(<4+R%kYiF`$OS`d$Uz#3$O7ZE|dmpwkAc2ZGv3(o44jD+a ze7A8uur!iIUeUKtNP6-obJn>|YbCk3CY7zo&v$Sv*!k3Y-)>p?pGNlcz8|^1WlfFL z^dnZE+*ce}t*1UeUz7Wqa>y%{XqU?t{vA@XbJ~L0YQHRTJZAbwVa64!Z_aCZMO&A9 yr#{b?`~2FupiQc2jc(ny_l)vlU1q;Kh2&I16~GFZd_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_pre_order/_library/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_pre_order/_library/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..288401e6c351a42361338973b690e1a0b20675e4 GIT binary patch literal 104 zcwS>*WME`~01Y5khq4*}L&4gKyw{5U^a%#eTfgFT#i8Pwi8JdNkU*)Ui%YzZr&Ew) bP^3n2W^O@Fs!wK;0-U9nTv4H*$;AZ#MzA1u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_pre_order/_library/simple_lib.cxx.i b/CMakeLua/.hg/store/data/_tests/_pre_order/_library/simple_lib.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e00b70c38958c9938cea1d82803a627775dc3d58 GIT binary patch literal 86 zcwS>*WME`~05KpIg|Zp{L&2k@#s<}`Oc{$9Y)|DcO#66q|Ex>~Bv4wGpP8aioS9pY Qlj@V1q@l@G%~i_<0R5sFssI20 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_pre_order/simple.cxx.i b/CMakeLua/.hg/store/data/_tests/_pre_order/simple.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..65ffbe12525b27518e539c34129306b7898d032d GIT binary patch literal 127 zcwS>*WME`~0DB;IfwCF@L&4XzyLKMU|B=)*YtAm=6`W1W*_{?MAc2ZG-fJ~Hbx#Fr zoIdXpsB!L$?g`JYCw(qm*z)Yu8STImzGuz^U%2pO)w3XnsUZOxUb>pBuZ%Z5TlJKQ JLHMPpGXN^UGcN!D literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_precompiled_header/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_precompiled_header/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2e73b60db89c3e4dc41aaee20e65602c00a64d5e GIT binary patch literal 893 zcwPa01A_bj0RRC20000000TV$00^M~0000000061|NsC0|NsBUKWL5!GNxvCWr6SM z&v8k4yaH7K00000000000001ZoUK(&Z`wc*z4I$ZZVu#7XnN?~F$-}EHuBo2NRh0q zy#y=9YuRhjD&oI)#x~TDKxvheVLxWxy!U2y?zvx?<@e`>jMOGiQW-x;5z7Ls+g|Sj z%*3;VvMMC#wS>G-Ic~Kl3rI>xGN?*9=-K1Gx}J5;F-SdI-$RuGfr4J!}_g~nv{DrpojP_JR5 z#h_KwF?ua@ZF#H)H}SfNG$O(dqH}oL&M+b_CQ;M9M+oYeTUDhoqHS)Fz;6&qGh zUb7kRpSq2^foHLX*fv$G>6xH=ZMve7MD`VtJ2Jf)owO*VsON+h#gl9a+a_sB)#CD7 zqkaO@vEd-Jlty{j>BsjD1Tsd%E{ zR;#c_qabPl)?Scj#}{G>ebbxZXYRRk=J~`vrT_C6*|gl*98DgMr{)ChIb2q!?xr@j zUoSTOKn+5ZjIyC3>m@yS!+!%Md%ZK7($= T=Gcwbpu1+ab`*WME`~fNUVHgt8g`L%~CjpE5@t+fV;8DaA_d;m)|N>cwdcNT6bl>ltglLk>Ky z7w@gEIA!8FnRf$cSp(Z2w`9$Y%Elobdp~DptnbU)`0P}hSmDc{17|#ZoHqRRHO}wTBy*Pg8esrw C=SOA$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_precompiled_header/foo2.c.i b/CMakeLua/.hg/store/data/_tests/_precompiled_header/foo2.c.i new file mode 100644 index 0000000000000000000000000000000000000000..fcdff3e7d694fab014d02c8c32897bc2a0a4680e GIT binary patch literal 178 zcwS>*WME`~fFdAngR&X_LqTByqsmX6;z_e@0z%zZmV|UKpRtDl2~^B+J!8ms$Uwm5 zVx7OCmsEyMmEJ+#fD?VG-f8AhbGQo2Wu$H`|7m*WME`~fISQhj7Cs4<9{gN|5#tJ;ZgX}8+s89?>QeXEJ)j*&wvCf=A=$=%wjg= zas6K0<-hB+QgOG_x4YuU|E=_mJ$XY)t@!tilOjwvIbXhfx%g+tdXJdU{oYHj@1JCJ zSX1c|YuJ)D6+8V##_7C#pPx%c>8woX6^Zc4Wx7zZa$a+MRJ!j&?YSG*@98Li%V}Z1 z*5g|BROf@yCr_%Mz8z6+`MT?X6Q{`jg_Y`)o}}|I_ul(exKH5lMdPn&tzjK@jkfk( ln=L;5?OJD~lKf+W9h2*WME`~023fKg|Zp{LjnKu>uJ+Uj~XmdDhxZ6p|U&pzH0*m5~!FHe9q^zx2JEg w$LaI^=N|;I85w^LTDa#**Q6_pY+BFk5t`7@w#;;TQC6H+nv^)h+a-eA0De^~U;qFB literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_precompiled_header/include/foo__precompiled.h.i b/CMakeLua/.hg/store/data/_tests/_precompiled_header/include/foo__precompiled.h.i new file mode 100644 index 0000000000000000000000000000000000000000..80f4ec4e4808b87db0b996d50040d3c7ac9dd5f3 GIT binary patch literal 82 zcwS>*WME`~03je2gt8g`LxEZE<7xlQCa?clZuvVxBG$vy#x{uo36v^l<|XHprlcw; MrRC@AWhik00Ec%MUH||9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_preprocess/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_preprocess/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a3195fac450c262d0d3b472576ab49283cf3feb6 GIT binary patch literal 3794 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 U7fh_Qa7eLv<#7fMQ!M}TAAIZm9{>OV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_preprocess/file__def.h.i b/CMakeLua/.hg/store/data/_tests/_preprocess/file__def.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c4f00660042919ad5382b28f7a2a97c68dab4293 GIT binary patch literal 87 zcwS>*WME`~0C6A|gR)=#hXTzv@~q$eq@wu^eW#{p>Qux^-7;lB0;S3+scD&csS0kM QKCbZrjv*fLF0O7|0KOC#CjbBd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_preprocess/preprocess.c.i b/CMakeLua/.hg/store/data/_tests/_preprocess/preprocess.c.i new file mode 100644 index 0000000000000000000000000000000000000000..fbff533368d749e4dea7246a48d2fa9a36027320 GIT binary patch literal 988 zcwS>*WME_f1Ez@#47__FY=)Qrp$CZ@Goxxq(-f)^RFt1f(d<=J2^JA`axmi3Pj{QFu zK1C;So?YJ}v-!dEjdl5S(hT>wC|0&Szgg6)DfZ>T@%A6r{fn-#oxSw#gM#L#of7#x zPAh|Xd)$@?c^%%?5Pb5V*K&QUq7T#g?8=YmwH$hp_@>~N*#GqmkzOay9N@1}NMzDa z{F3rXQhIiu%JONeBcfDa8Ai-HUC(qo!q?|d!nt45w!Y1kuiY&j;Va-Qx43^@tf8($ z`ReIWj(a$+do%u)ZniM7b6>V)&QXcPtl0Z`fVt z-y0}D^_8Nt#+v4dLCa)jZ;N*gU*{9bG4pl?zi;E3z!QCbmX0QiCzX1It(>Y=_90AM z_NLZXnR%ytgH&s8X`EV{I_*l^_wOZ|`rFTbTp0M^mc}RBb+@-j8{aQCew6=}=k9*- zNfsT#KJ}S>?+)kMF1htvB=Gd_SJNi0+VoMuQ7GV4a>8lta*dbsUcG#``_=NF*8?1v zx~*%=+VxIL?$Xt2tre5IvaW?3e504vALABO@mWK;?g78m+cdSej2km=f zWLs$dRN7MUc*YHVFNNvaF6YmQcPqxt++upQVXuXL*QTPy&i7{A8ZgD*^WkjSS`-XfENL>t)Bo-JLbk@8H_;`kHI%qZqwO)p)&vzmb$ zLJb%`X6>9J8uU5H=<*H;iHN@nGZu1g*P3Ab+2F3^lUI*lNxboz)~>I^6c8AW^?Pp)KssL#Mk52PIp1cxr$KU5u9H2==LRH&IdqX>kLCPwjf`C>? z+k{wRO4QUrPUwSLzWe-`*Z~pn(jK-LD4FR;TkTQG|U`RD;Nx&!LZ+UMx*J&=o>Sf*C~wq zysUHj(Rg@!*KL6Ko<6jC_l^yfYdE*5F~A4^J6}@#n0b1LkOm)9pQ^SFEM^hBk`O<_ z%Pd$SiUpJretn7l{KnM=Xts1m%sqiV7td>hQObD&N@Jx$PQyBfR7w9vhcBD*;hjEw zZHj#em7U38$a(AhzZ_^OCo==j_W*}6yoTf{OK5Cv+?S+Uw0wD$u!n$YF8>W}ZPgI= z{5h*%R=#%~=f{25s)2aqYjm8OsTdZh+Z9Z#AXDLuX*~d{5f_j#H?KTta~z0F_W>=(Ig6zG8LCW60=6nP@7c z1%tO#%n`yF`8=&`rAn%FEpJrQfhBXQgH*a$$^j$=qa5pIYHj%ZOs2A;+k691$#JdZ z`5snv+8Z=me>3cDR1Q_Z4RPd0F`~adCF*fg5vlktP1N+R+@-84b$k&&_9^FKxW(Dq zmvu)5b@y#K)cjA7MWsh3k81ezncSzgcVtm#6&XEQ7Sne#>y#Nw?psJ1@uR=zxi@2J zeR*EAj9K}3O8=sl>(M(Z-po-^`n^tG2svG9{q(f4RYWIB%TztEuJkf5E;q{dq1(F9 zv6JAk#<86d1a3$Oa^o|Vqh!ZgCys&$85G>$LK&>Be;#*cHvj+t00Qa&00000%>V!q znE(I)000015dZ)H0RR90|I&u&TC*-2Lq(K5K$;|56~2uEUjP6A00000000000C=2Z zU|?xv0Aq$`WrfVNl+-i@7tbJ9=Mev($aoi5Hz0Njb>~u0s0QM+f}+g4k~EFtl9be< zA{_-KEJ_uMGxAGwQWWy?OB9k)6@Uh2=B1`6WacS2M?}QrDQQ{*4Jt}4F3l-XuvIVs z@oKr06;kt3GSj#i7+9Mjn4tx?Dv(3-FkKqt>f`Dd>`I(lp^9Oy#oKRJ_``;}L4zkE85nr}LNG&)GPckm%0jRWM1}>#lK>dk#|dJC@Kyi- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_preprocess/preprocess.h.in.i b/CMakeLua/.hg/store/data/_tests/_preprocess/preprocess.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..49234d84c06d1f9f23ab87dcb69a6742fb4ca2b7 GIT binary patch literal 301 zcwS>*WME`~fVT_`j1!^km;a$4@&B{*dmE2kcgWtP9T{(J8+(Skl>rG<%qg94Fzc{^ zfXn+|U5dL@?5?yr>F>Rv;w8ngb>r0uvjbB#MN3mATc`0XfsfJ)C?wrm}xr zc+M?u!=4k**66IhYZJYp{%-D14-V6+g1qA*=`}m=ZP4=n`MKc4QvUEB2LEo+$I3-Z znU>__nkW|jh%r0Vd2Y)!=Nlgjf0PR*Rs3$rkovK$Jm~I`gPUK89Q*WME`~fMy_G24%ne4+X0CT9Yape)dFc=-so$UuPQ z_nsuy+B+YaG=iF6^zK!2dw9<3w%0s=6%7sd#TPBwZ~NR?ukQ1ld(kGREepQ|U6K0o zF)2gfzgm;msq=aJQbj|KdT~fTWPe`vPOM{!c+%P2Hup1{7d7tJv8Zu+_q*Jl?zaDr b`{RN$_O%+vlB6PDOKf{*WME`~07)R0fU;lyhk|0W)5RC&E0%_GHBXh(%A6otc3zkP36v_Qq^4!&r7DCt T2D!V2#0NNrc*MK7x^V#jCKwph literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_properties/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_properties/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..3d3a5141e72945c17cfea49ac6d61699cba0b9fa GIT binary patch literal 1627 zcwS|cdpOg39LIl~`;cL7bDc9$A2Xx%?^Z2)6gq;$<$Cs<%!2goK;No`>MUGJJ!tN}F-sf~pHhzo(HN~1hb&O3+ zW2)uuXG@q<4Klc|GtcJ_#bVQa%Il{l+InaDv-T5HoSqz6&<>fLhZtw(mZ0#^D%edf z41@N3c`Pq9*PG<7|Fi+55puF>@GKaQRQ31K=C zQh2F--r-g}xt+*|{(B3W=jG3tPUoE9f9gz;&2yzs+l$doW4*Tac$_<^2N`;O_Rq9_ zv|_)$IaEL+uFq^-HEx6YR`x=@iim+9{@zF4GTr}mq5Q~vsEa7)0&}vH5w+_4{If(w z*d=aj?fA{>6KcK_2W?U)VX?ge{6zH#=V`u9>mBH%^$2rP-j8mjwF7*oT!tJXyRX`a zXWa@-I;4^5er7I3E?t53)!@`FP`YhT6g=KU`SxjRX?3F)4V7iL{7gzK_ZhW3l}~2PuSGo$NVTt`6{yWZ60=wL#p{-_S`(5~ zx`^GC+vXas`4XY)sYRr?M}jM!nzStjC_XHpGX?FkD3h0yj^@fPQhRf*!yOD9dM|kM zi8x(1_u7I>N~^2y$9(=aeKoLn?b@mC&(iTpH-gk|c(|}MF(O;c_?=Y&kns<~GyCCY z(*%!Pkb84-`NW0q_*xf?_Q}7ZUmTStCv&@A9V71!7WV6v&JD7X{YgF@c5+cx#rKOx zPOYsdmzd%$*_wyDZ>JVw^DbVd6^*=21{6OIC;WFDOIZW}NW{wKJ1svf#bQV3;K*%p z`-o;t_E2bvh^klF z>lUq!gOZTvrhh1q8d^3%ThfRADFp-pR(_cS4WjD)y4^vAS2t%jjk4YqFIZjsRbN(EA?*adpsa$--a;aV|X@ZNN-TH3Q2jD7fLvc^%@(} z86MLcGK6J%Dr+@YAYNgt`LFQ^wza^d*41z=qtKsFnIGsyK}j=}BEV8o87SxiI4GJH z>Q4_leJ_TN1>R_cEV=~hs)m%RL>N}MtzGi}m2km_vB@g#E+ zWI6U3vvN4BP4k>QHx6MTqJDFxGJ+6CIWU+}VEWq*WPY3RiL#0|VQ3h4_#~uc^BZ?M z_B6%OYlme?#$7;iqJ$-cr2u{SoFq#K-I*Vw*WME`~fP5gH2xT+=hl2O7|4h1aJThg=N4+nC$Lr(PHou8xKmrwWg3q1tKBwvH z85*FaaZ2AqSL>vY?zPhakAjXV<*`g+IJHD`$&zKM&z3IJsIX|;d5oRqC;JYz){0$h z$E!6~tb91hr0e^GQ)jdTPxziW6MW&qlU2`x0yMmIHFZw~8*F&C>S>VQS?`lRkC_;1 H+jWBgSHDXS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_properties/properties.h.in.i b/CMakeLua/.hg/store/data/_tests/_properties/properties.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..e49b4043a3178a28cadf8dd5e01c099b3bfc5961 GIT binary patch literal 91 zcwS>*WME`~0BInWg0dO^LqX>+mEZrCgb2*Y;!j$Zu2JVHa)6lu36v_Qq^4!&r7Czh VhPlQE1o;QJ28DRK2FH7F0RU088G`@- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_properties/properties2.h.i b/CMakeLua/.hg/store/data/_tests/_properties/properties2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8a8a2c27751dbf2e45e5474f8c2a982b3b2356ac GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|LqW(C`wRcCn9cD!b202=siwNONYf4mBv7iHlA4y8m#X05 W80H!u5ab`=8WiH`8f+Br!36-Kej4=v literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_return_test/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_return_test/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a0323305b65de6c8c3646d4eb3061f73e2a6e0ac GIT binary patch literal 938 zcwPaj16BM00RRC20000000U|O01b5j0000000Bb(|NsC0|NsAn891_92_=0KtFmNf z$GO6rBD2~600000000000001ZoRwEiZ`wc*z57>;NDt;x1*2ZtlLaP1O-*XZp(krG z>);04$X=9275}~a?OlHmmjifrXWq=dH=arE070GQ=M#nnl*Q>C2(AevsK(B@Du3gI zfE!_Qsfryvm^x04>CWPZ|2>Eo@#@ik*uvz~U$Nnb+jYF)n^#bq(&{>)&grE{NLCi$ zuKe|5u;kGSl;f!bkmI^WFBsfy5H8~&iZ&60Rwh?SQFg)y3hYM@A;ZJPp^az-dGfd0 z{ty=K8P)YLE(4*ccY+y7R>dhXLWzAAgAycH5w0&M0yB8>qafVH+r{Q7U?#%b?X|vd zSzEcNDB_m_WGTOkiNG!Z{7&>p9Iz{$YCK>nX;sGXQj)LGHKd6QM04&qHR4u~6@ch> z3N=9l=eQuEW`viwUcqeIAlg;8>ZQ(2x3UfGiHR~EF1n-N?=fH{9$DJ+`|@M42G=nHU;su>Tg(0-cQ1vd_u5 zg0vGS)Op-xtQs)b(T`0Pw65Emk*o%7YL>$oe_a;ZSk*2XIv3=EcITlqhPVyM86d1GFYv{^=`ch<&KEb zG&I9oSMSX1YuvzUYlALLcN4)?bF&<*-ZlWGsgd=UR%H%v89DOTC`Ubgsir;~;B%+xG&|}!0N77IP>zy(Jn5Hg0O%nUuG>dIVMW%8xS?mJYEVidhYmAH? zA|E&RTQqj<`$xg(LGTfLTLDRdslcFbR|f9=4UcN>1F#Nn-uMqrE(GnV7{7Z*WME`~fLb8#gfJPM{zHMar}ElnpI1khH?Gw5NSn2FM&s!>3`n42j_Mh2u0sX_ zY!CjGC{SCk_MNJJWB%i?CyPM_e0*4+jetlMc>I!MPI}jrnMa0 zu!Yqv{nf-h7o9)8HY?r0_-Ix2uZ-2%Vu>>+P7~<4A#5gie~yjWwlBp6lODyc`nO+h Xnfwar@BF2js~;E~V&CV*WME`~0CgZXhA%9R0RRC20000000H^{00l|_0000000BGy|NsC0|Ns9^Q0lOeYxo&Z@(nlD zm-URBTm$|900000000000001ZoRw5fkDD+Mz4I$ZyFG+Uq~#y5EZvQ|n?!`IloK-8 zEN+aAY|}KV_P=*bNJLtQ(wpU(c{A_LN2ApbR@hn6O3Q1uCboje_dH(CqPOr{oQ2EH zB8$GhhR++{12D|?hA8Vk;qJ@ti;qt@eGEcB?|hF*I*#hyLr5tQFuZOAgQ6l_f-1pO zL^BG4=bC8F4A_cTs9R$pXHcqE(z!<{&5j<2S*g?mY+k}7eggNN7ruuTXN^`3)Ale+ z!{j+mI~%N%)jCenEv(+t^?RBv!?)O3ZV7o^JSJhX&HB)%MG{BpD%nDabcPk>M4u~i z@2QG9ztM`&a!bhfIN2;#OL(}&d9wUR-?K!2Ab{Xiqt z+g|CN`DZSI!CVAa<|6q2xd?6(cAV>8wSt})PZ8!NNM$jXMi8SUsnJyuaWLEf?#iVC zbAYr$!=4KPL>L9RW@Lx?7$`vz!u16x*SPr#3pq09Fvr-5QyLs zqR8ikK8l;2_-|HDwf-cyyYbgf1cROEy3t*hv8kQtN4FKX1YO%yfXQJGy2f4}t?L~B I03#N*WME`~0DT}fgfJPc|3ks6C-0|O{LhqN`ST{@l>FkDcGhTf1|(21$9t`Yr|zlX s6KAvoJx-rDzj9&AGp3D`g}NJZTC-XgU6~ZLz$V0R;WTcB8J+w^0ON!yDF6Tf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_runtime_path/bar2.c.i b/CMakeLua/.hg/store/data/_tests/_runtime_path/bar2.c.i new file mode 100644 index 0000000000000000000000000000000000000000..43c3465c8c2a03110cee0db865ef9406258dc0b9 GIT binary patch literal 111 zcwS>*WME`~0DT}fgfJPc|3g7=ftt_lx$AsWE-qeER9p8i@1*D*1|(21$9t`Yr|zlX s6KAvoJx-rDzjR^CGp3D`g}NJZTC-XgU6~ZLz$V0R;WTcB8K?M50pgJ<#Q*>R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_runtime_path/foo1.c.i b/CMakeLua/.hg/store/data/_tests/_runtime_path/foo1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4f6048b428c99279ccb0c4ca32e3800b740ad968 GIT binary patch literal 90 zcwS>*WME`~04X4rgfJPc|3iW7eTB(;|Kv+KrOkXADl^S|x74x_1|(3LnOCBamY;8^ Vp{Y=*WME`~04X4rgfJPc|3g9IABNdXU8+twCJnz@&3>8Ymi6snKmw(ic_j*I`T0f~ UnhMnlMX4pFMR^Ja)(W*;06YE}x&QzG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_runtime_path/main.c.i b/CMakeLua/.hg/store/data/_tests/_runtime_path/main.c.i new file mode 100644 index 0000000000000000000000000000000000000000..70397da503df915552f3d2b99d5f4d8249d29f61 GIT binary patch literal 113 zcwS>*WME`~07D=)hA`u3XsijA>)Bu<>UTlbx$}iimUtd3!Z#C2ZOn!?581|3m=HRwxDl literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_same_name/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_same_name/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..be6110499f35b30f8f0ae135223e582eed8b0e4c GIT binary patch literal 151 zcwS>*WME`~fN&r#fwCF@L&1&YlCvM18Mi&(%lz$!(`m&j&sb&#Bv3Jjo8!~>qEfz# z9DZkfzcMGWru*vYxr0ZjWh!2kdN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_same_name/_exe1/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_same_name/_exe1/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..e45fed48c11eec50ddde8fe72491f767bf1de6ae GIT binary patch literal 269 zcwS>*WME`~fU^t?jN71W#{W=ox%$yj#md#oc&@02iSX)a-Mq|ni~$K$%<1hv$kpT^ z(DvT$sKfL<8tFl+b3!)_ltA1bGG^OK}k@1;7pFh_dKUh#%EGA{O zlKVny!?bXwkoXGgc}tBxdp_Hl(Q+v*OJ`5avJ`(Y&ck&M&#s1chb@1kq_8@)vefAI zEx~C>SP4zB5XdHa8G#@U9|!Y|gz zF>SAXB;MEgoAHC+hYhwo%Q$3?^FFy)>|J?g&%B4m>c8Yg{;Ij&54_lN)g%A-ufC4} DM;>{G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_same_name/_exe1/conly.c.i b/CMakeLua/.hg/store/data/_tests/_same_name/_exe1/conly.c.i new file mode 100644 index 0000000000000000000000000000000000000000..eacc74fd26d467dd03ebafc434e9a0866913c117 GIT binary patch literal 197 zcwS>*WME`~fL0)$3uQC@hXM(4|Cap3$VH3ZJY(GH$0jYQX(Y{n1S;m(_HN`lWFXP< z{lDh963=NDc7(;UsI$u-IJ!*pr=qW_n#GiTyHyvRK3H3R+*Br4qq&*mPW0lv3!b&} zt+)BG=5J?5^06-uI96sTHn@Al?6jZl-5I9!rtijUv8>Y#OJ5o1t`6*qp7r~I+8)d5 eE7Pk*R;`}*WME`~09hcGfwCF@L&4UmcO2FoS=-$iS-bnnq|Z}$PE2~ifCNe%U0mXQJe`6Z XgCaF@D@#&~OB8Z4ladYfk~O&iDFz+M literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_same_name/_lib1/libc1.c.i b/CMakeLua/.hg/store/data/_tests/_same_name/_lib1/libc1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0c8c4d6b95b25c5b3a5810515183931d92d9b6ea GIT binary patch literal 101 zcwS>*WME`~097DXfwCF@L&5AbQvRERzU-PP?0;z2!!LSs_nQ1+Kmw&{Ir)ht3O<=h f&W3KKdC3}@T-96(3Pq_UrA2uPMtTO;T(w*P?~5M7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_same_name/_lib1/libc1.h.i b/CMakeLua/.hg/store/data/_tests/_same_name/_lib1/libc1.h.i new file mode 100644 index 0000000000000000000000000000000000000000..67a8e8d48f6a57a1507d88290bae86d6e0829744 GIT binary patch literal 91 zcwS>*WME`~0BInWg0dO^L%|)-8=;p^E*WME`~fFBGDjAc+Z<9{fqdp&t^?%^~w*Ul+*70dPF*h9X*Wk3QIb3*$M<{dKN zX?tJGzQdY_n)SiY;~16A)0nJM`q%JG-4 z-I|abUX^uO{^iBRuQKgeM2hBEeJZMQK4w0LhdsVyuj2H3EW#Y^S@i-}Hwu_e`I+~5 wVm`|n|K&O#PsA2{N&B&H`SGiksv66BtiL79pXgq^@phM&9s3{Vh@W-O0jl|otpET3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_set_lang/bar.c.i b/CMakeLua/.hg/store/data/_tests/_set_lang/bar.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9ace642402c8e0b77200b0ea412620d64363df94 GIT binary patch literal 228 zcwS>*WME`~fF(fu3d&~u4+Vbdhf9}7x;&jGs1&ZVw(-aDT}clakU+&8-@e^^%?3QK z<@K$u(^D9x_W3#{J=ET{#HMAbiKFKXf&X#rD{dXVH1+(>Z>>4$)9Mbmci8SsTE%$6 zO=hlekYjoY$BhGApFbI0xy!gwQ0Tfv;EC)*uT;$ARQg47UahFe-sH6D6j#>NhQJq1 zbGh=DKIz%%V|MxTjU=-(v9n%(pNh-Z1PXbYe((hZ}~K7 LeiMJ$1V<|XYS(8N literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_set_lang/foo.c.i b/CMakeLua/.hg/store/data/_tests/_set_lang/foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..cab5c994c0858e9834aa72778d349e6542d6102e GIT binary patch literal 121 zcwS>*WME`~081cthO!y|LxH`foS$QXyLj^QX-R*h_Uk>`xpgW75~!GS`iyp<$LaIe zFFaZGEGXav%cm}p98n(LHH~|ea&xn1BxG?0?C_A*niv%nHHCfAnw?oY86r;!z5)Ob ClPnAX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..02c49963f4c7334e6afc68ae8ef0025ab739c006 GIT binary patch literal 286 zcwS>*WME`~fO`xKjIB^M<9{fKisW+=Tg>NnT=ZGx5$_CX@UEwWj$Uc@p!oaE{5^(70dPoAlH2MORs^FK1=>(0rH2 zIN;92pLGu%p8t4qM&oa%((!N8HE##~2t8jGrgz~axARG1Hu2na`x6bejFT4Db$B!i zmbNNR^$R$;O^xICG|~1yD|5__->tiSW&L?ozRFmeX`f WH+i|}=^u=*&f0U?F|s=}@c;nb1bnIh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple/simple.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple/simple.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7e41d777b1666b36363e57843a3d7d6f92a8ad4f GIT binary patch literal 158 zcwS>*WME`~fH)wY4rMd`hk_TaVF#rDw-heEvefG8t+oPNT{T_?Bv3KOd##42?x|pn z)8~BxHO`&UJ>mKFq|c=bTb_BfdT3Z`Yo*WME`~fL*WME`~05KpIg|Zp{L&2k@#s<}`Oc{$9Y)|DcO#66q|Ex>~Bv4wGpP8aioS9pY Qlj@V1q@l@G%~i_<0R5sFssI20 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple/simple_we.cpp.i b/CMakeLua/.hg/store/data/_tests/_simple/simple_we.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..0bd82663211964e1a4194bc83049297fb0be6f31 GIT binary patch literal 214 zcwS>*WME`~fN4N{0Lo_k4+W8b6{h$lEt(=*67xROKku_i$(wctBv3KOwAYa9uz`s4 z_j<00dMAaft}jjYzp$}8*}7NpFW)~i7N2)<>bc^aDz+t`a-QYLuA8)m|8I%1(PpuO zwk!b)RrxoYiyxBP5?i`JhD+ySvDEEnhLw&9?Vj8g8&uAQxpQwjg8fuH{1jkdIjt literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_c_only/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple_c_only/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..487b4c82a7e57a5cf63cb5522ddb822a425f563c GIT binary patch literal 381 zcwS>*WME_f14dg01|}{BDCa*E$mcJziCTKVZb_)UfhCXcYLA4AZyAt4#hl&=*7=7F zL|V)LcPYP^z#&q$%_Kln)MaVQ!dRu_`xqy;FTN2tJM8cK(uyg5q3-ha|IY1|J1jSa z@v4pXNr&sH{TW=M0Sqh8SoW$3U)%D_<51PcRkJ27ddvAm@^R3zrKh6qeY?JU>nQ>C z#7$ijKAH)f*vfaLb!oZKT-iP0GNR#M3-T*>tG~`EEezB$vcKZ{&L{ap)S(w$3VbSE zntgLOZn$-ltLbG_)252cxrxtwt}c3`QhBjKt=4(tFNOJYf!L7j?sGd- zUMp(8{&vDD)a!7_JJ;DCGH2d#ZmtjKahT0zJ37!ObxJ{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_c_only/bar.c.i b/CMakeLua/.hg/store/data/_tests/_simple_c_only/bar.c.i new file mode 100644 index 0000000000000000000000000000000000000000..323a811e83d84011e5aaf2bfd0f056bb2994d9f9 GIT binary patch literal 87 zcwS>*WME`~0C6A|gR&X_Ljl*G)E2R0S!FRhLw{eJ96r_J>GdE6Bv6`}SE7)VSfrt; RP+gQ-Qd*R!U}{~<1ppi%8cYBH literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_c_only/foo.c.i b/CMakeLua/.hg/store/data/_tests/_simple_c_only/foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9f433480f149f88ced0f318c08db520c9657d5bc GIT binary patch literal 89 zcwS>*WME`~07)R0fU+6?LxJcn^>cRj4LnagTlM`@Y2fo*WME`~fCM0JfU+6?L&1$542K*_&h62EwDQwerr-NmJa?^QKmrwWg3q1tKBwvH z8M;AJ&-3J&>!&w7e&n@Q!&CQE@QE|pfgY#NU%#-$P0Z6vhpDrm@y5>1nUzwrxMHrx raB(G^^od@*WME`~fa?qljOkD|<9{exFHp01sg~U*_sz`K+dj|pXFviKbJq4d`W-e9 zaQ$v~^hDCcoKvE&EP_oBZPmU$?bg*5DtbkplTYQU2t0Z>Bah+Wq`Nxz{{KH~*?as# zT(_^y+}{oQx%Q=uDJO5J#&F+R^u;fP>tx0DZ++Je={DZq`}e`htSuX?S4saq=g76w zC1Z>8>Q<(6iHU2De7d$`)~UKh{{xPHi*=v=a$~n9fRFSIOgeBX>wl41dSovaE;rwNZ*XDgYpD4zDj-l@0{W<#+ Q_=*=_U6&$1&${3M0DV)0DgXcg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..c29c19d180bff0222bf44aadda3a3e220553f582 GIT binary patch literal 118 zcwS>*WME`~05c$VfU+6?L&3q*?|t_yu2Hw&@mhTI?aNbFI4JQkAc2ZG-aek4`g*=z yCw07h^-k)qy27wYMl?owPOVdH%;URFe`+7g*4CKp6xz6=_|lU{OboAz#8?5fUn=SV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..eebacc6c776a7249ceeee38728c2798a19a6d730 GIT binary patch literal 160 zcwS>*WME`~fCM032xT+=hk}Bu`AMy@yT1vqtLH9F+;KE9UZ{it2~^DS_VMgIf6_Y!?{cF<&RZ=uOWL8e|kqFy~4y=G`k pnUOHnAXLMU)pLr9*wW?G7;;aYZi|{eGm2-L*_9_u4B*WME`~fL0)$1Z6Y+hk{j4Qmw2GiZ1Tjuxa&$8?w*WME`~0DmC%gR&X_L&3M_snb;@PUK(a-_g8k*5c`Qlh-e2Kmw)8nR&@Mr75Wj zHpL|=nfZDdc3fPUc_j)ZIhjdDX{C9|8k$_yTnY*WML^Ls4W*Eb%wh!~3NebwQ_{2s S$`qxRlosVF7+G`GasdES11t^z literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t3.c.i b/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t3.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2daac74ddeac052883f1ebcee8f06a385f9bc0fd GIT binary patch literal 187 zcwS>*WME`~fNCJ_gt8g`LqTFxNH>)y>C&^AY`Kjsg%JK~iNT6blZjT|Clc50X zZ`-5H(o+?_#j||nn3gngKFekS^9?sSl` ztb6R5oKM7U=iZ<9owt@_$Fp1BEg^^J7?jIhTDs&~!eZ~X6SJB^Yac%;C|l8WI^xgc UOdFHP@Pl=W^#3x1Ptmyn0N_DU8vp*WME`~fQ>->63S-$4+V4nAKSKS_Aw1X)t9B)^1rWttK@z49-K#e^Q<=$1An}(Gv4yky>o*8p- z9%InrrI$`bRPGMBx-~^LIpIx%eqPSB!z>-#MUKuwy5Ft;?KBq&y81Osd-3k5-}@)G zixqM$o9gCnVD*^ke1$^GlgZ(SU+C%?WxkN<-Og`q<^Af~7m0OtViKD-bN#;7JNL-? Y&*vW{PM&jYdT!eq6XpZ_tWGYL0I1(+nE(I) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t5.c.i b/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_a/t5.c.i new file mode 100644 index 0000000000000000000000000000000000000000..e4e7d52a4390ececcadf027da9b23bc4c4abc627 GIT binary patch literal 187 zcwS>*WME`~fNCJ_gt8g`LqXg;&cKjGSxdeiiEe56!n}vk*wu~!2~^C{?J?wXG8AC_ zZF`hidTK)YSJ#041WmD@o(9~7%(HtH9^F05zFSfv?WmAfKWBT|#MgTAoe@0#=QqV2 zc&%*F@}_k6hu3BIFSIvguiNY5VS0wM__<=NR~E0?u9S{7nh{sc{rJ+`SMBIIYCrFo S^W;*|H|oDG@rSR~xeEYC4M_*WME`~04E?0hq4*}LqQq;pXrHzXX|ioIxv&txl`)x)Q^`LkU+&8Zy(Rj^Cx|@ zymVGw(J&0=;49?$SQ4gTc-i~flSf`I(@fgEXEm#M3w2)#_HMXTc{9Lt=E|cAp{i~U La~Yns%E$r$ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_b/t6.c.i b/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_b/t6.c.i new file mode 100644 index 0000000000000000000000000000000000000000..db53ecb270f6e2f5587484785ca0f8f0b6b65e22 GIT binary patch literal 194 zcwS>*WME`~fF>aBhq4*}L&3wvu5+0t=UA&wXPCRtcj8kc_rEh4kU+&8-JacCOojrk zziW=B=9W3?TwW9LLVd^5v(GlBDfpxqX^MTk->Wd^S&`mzhd0ICg3nhqp3;o%Q4Gsa zOW%I1ZqAw84Btbd_#P}O5L_21-&?#!bk`|kEhf(|Q7Om2b|~#goch1`UE}mGZ_N0- a7j>OWlDF}(R}P$Q@FvIZ8F!|io)-W-p-)l( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_b/t7.c.i b/CMakeLua/.hg/store/data/_tests/_simple_exclude/dir_c/dir_b/t7.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f551a3f95c4885a9c7ae65299e21e36dd30906d1 GIT binary patch literal 216 zcwS>*WME`~fEhr19?E9?4+WFz49iO=PWfiP!J?J*;X~=)b`CiVNT6blZ=WOgAp@S) z_di9?SG{y#DZiQcYJP#cf8JW&Gk&{7S~vdBd#%Rt&~cy2`_$9>-X^CP$Si%F`2L*B zGhMZc4dNc>w_kF*|7wxiuZdZTCW0S$I-}M~9aj!Ay?S-^9-a-Y|H=*WME`~fFdBC3}rL^hk}j&IQ6b?{yjDK?BOO3rCoxC%I7yQAc2ZGwxRR+>AdK4 zq4!U6aZ_8XC|Bnr#tHJ0<*WME`~0DmC%gR&X_LqQNr*WME`~fNu;8j73m3<9{falF!Iknm6%m`v1F|OPJb}ejVPV%76qa=J-zV&2BLe zXnX%tGX*++6DQ zrL?0;_s-rQRkl}kjwT*iyK~dTTYn8JUof3%G?{c|)`U|o{OmWTr_Maj_gBP6x1e%W zzV^qLO?{^(`CaBnEahiiv(c1e@wUqf53}y>tS~`|#g*WME_f14d~E2Bu^NDCa*EeEs6HXWkFloC(fr&E^znK5YGPz?lIFRLoi0@92Hl zK;-!Q-y-#g_+(Ff+2Ebu9jkUY(s0Y61c6n(u@Sd=RPs*UC^vVF75%#4p4|Jt_kRDM zH`(r!@2L`|6jww^_~kb#c-JM}NDM)f+c1 z+vF-c@!!9pWk%W9jEPjV=GSZAe@=?VRY;9uG68_QPJ^SM1e^uV%Dm+4ekY z{m9F01};{M~no1UwwuP;xj|MQ2{U3j+>0QKmmtpET3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..6db38f4b6858f73a9af814ab48318b7a6120440e GIT binary patch literal 4761 zcwSYQXEYpI+lJNXL}&ET8KQS#^lnCrHo71oVvrF;?>%}adIZti=%YlJsELT)V)QP` zcg}gwx7Pb!Ywc&zKm23GGNrLoo3ix7Xn?bK4{?q}iZ`owXESAp!Lm2?q^wnDVj6xX7NH{S+s7w* zt{i+b%HB!9b;!DNE#9RtesbR*o@#njCYjy39=+!+z#x=>&UwW4qqjx8|5ui{7@8r> z&t)m1u53*NJrVAGEnx}uSqv$ED^*>Hws4Z@>mcV`dC|c>q1?)PDOSe2l6a{3w3q{S zbsYyv7J8m|n=9W5i-0Pgq#7i1I~*uLk_8M2rH%yN6-_%HEUTr4(Gy5(0+NOvL)dzN zx-??ct*A_SN}DLGsoycK6WlM+dAd~r^9@50e!&dbHrSfpXZ=yuBplO zxWQy89)0fqyl{Hfqi!zSpzJoHb)j+&tz^}~-Ynl_kir_zH%@#n?cxn6aAeMiy=~wD z=IKg`+^Y3NH5w_s8E?>>WJqMB>m802=(v--%g@U%mM@g9!STROxH z8_&A%1HZ7*%u(NRsTiM0^JtpeeM^92-Abe7>yd|7<{11Y@g{)h61pf=Jp+X~++UR) zdPB{FJF~DjvXlR%2F6_v z;G#y#V^*T~+r|(raju2&D9RTc$b?uGBR!wqjr+;Ti)o>IcSf&rT|qHT7yBjVrOZKH z+_uUme|bQ{&(p6C3$q$SJC>O^r&L7IKi($m@do=)>;R-$zB8Rdzza1%*Fed>X}-Q` zNgz(#HVwMXv=b<|$b4Xpw;X2JT^so_XCVKLIuk2pnVI11*o9NPk{@>XMF16}jP9C^ zZ1gk(5x&8piNPVqHS9e$%9R>3{E@KLpG*%LY!bZdC@O(!EV!_QOwh58MiHS zw|6&ZI40RUh8KtkA{go*OE60Gmcv1*@6+gqK}gGis+{xZr#xo{Dv;G_tAp}OF>d~- z((MpXv=*_Gr3%}%HN(5!v$;)3%4q$41flm`7so=Qk=xb;$rtj zDlwfEwXR>YzV2cZF(3lyZ09r%6lr)E4l+!OIgg>uh0{lZxg!f-@_$>pY&C7RPE1H~ zRh2kSN8Qj5c=?X;VZUnz9<*WZm3F{zq$^)z|6+oct|(97niyj$M17vOw*!gF@eZ}Y zl)yeMam0rR4b#c_=al$Ljay-*@0(ze_&OIQ1>?7=&8CRjj{OLiQSWwHiOzKR`x3_x z!QPBD@=cRM!^M_|@5mvEl56VfBo{8t~3S%calLaS-lqDg* z_mivOB|c1hyFS%f(fQ)Of@Y8J9~m!e=Fp)8!Tj5fHfCn|^nzdA?>fE+%l2x6C4!ZX z9h5v~OmMO9Y*? zV5K&&14*NdBaO#f0{x{P1807G@KG+@v9BMUSig)>u{L!r>s9x+(msxzF(fCk9#||B zxAgLkw@GR7!@21k5Lwpm5mjLQZo)Cl%<=~|lIdA}2v8CvJJzIyr0*5%F!XP=^X&oOL;h^w&B=h}dvo9`g| z1K!;5XS(@1o6TrJoVC$~#-(=B68{01nscZ=@g)GA7AqxQ{?Y43Jf1+0ufXG;z&%-v z)?VWlAF#Hsqju}35U2XdkiJ)D$S;vmHBeeYroeO>s*3&otblTd0Exd~F+Hm*YPkAm zICYU{>N6|w4m#BHVaj$_q=~OwP^LRAObq=!C66 zl5RTcvMvj!7UUWH6eFJ&LF`Av(T|r>{5_7oMDT7@0Cn$Q`M$1G`h+&o z4<2HHRXKw6_gA2{B5Ri$V!AcIucf2HSclwoiA^$5+jPiN z6rfPTLy&kO5a)$EmJC}c6oEBN8KftHna7u@Cp|Uy74sw!-r@MFN3Mfz>cn<$cj5zv zY{RuR4t3ZaIol>v?`IsXp)`qPCqs%qrvkUHans0p=KqwfQmLy;>6$ayxhoc{X^7wOzYyq(8bicBM5WlUdMiSccED^)vzPihC6?2t_*IZ5mP{RiFE3Ke4IXf6~YQ9>} z9RYDe_YZ^aYDsIv>c7>dKxw6n^yEtGV^%hf$;^clkSDDq#nBm1!uk&MWSE(Az|4g(7zXP_mE`#g7Z4 z?K4gVZHY~g=aJ&azTXCy*@k6X?bNzMc!(B?S#(`jgVbg7XyPB-+>3)7;w1 zu0X!;<&C-{l`fxAgr*Mh6*7Pf$_a1~UkKW3Vl~poP5I7>)gPoogK*=WlrIDfURll8 zMJX&64bil^?bkOyT~FDl)@Cr4g*JyAZs~b@;^u&G*k)7hKtwnm;#Xii-_*^?%>`mA z(E??PF|X1cyIaX;YW5{bzr)JYs;3tADDuX~^)ImJ?pFxc^GxVR)#VrIQngd>vsdka zF~f>Y0yTkr+!#oL#^ne=3^aZ|A21nNbeqcs`K({Z8m>`Xt-`Hamw$6LPy&0mVEa~w zk%NY0V=#~bIC~H-S8OLfTpiueick?G5MqmYNm^edlg}symzgPU}Z15e2dQL@z&QH9D&bV zp}i6j;^FypyPpm0MUP>PTCB$8IqI0+ocDWN`R+py$y@5mRXZ(FAg9CXiMN)GGsCx@ zPI>k>;OB|B;`B}T)|1S-gZ|PF6@tO=@8bJxUm>nXc5mW%>(wVaxPEL;O8LoGbn%;L zQs0)$a&UsnBU~KRnuys)Tmbg^&9=^lnhQCSPTL79sov`FJVo5YIIcJ4^)Ht{fM#zH z38*m3QVj-9+X|zfqr^9KrWkW?>N(En|vN7K!!xQyO*l&$fo&6y_FZ&5VOj z((u6<{4JS2oDJjtgCG0*sqbm(*@xcAFL8`sa)7d1%?HSxIJ)zwG@tLow-iQ>6C!EV zE!ro_L6+O_+j*Wcg0zr6PxnFpg>kOBbRX>mnbNRr`Kh4TWG0E!oR@!A-dnnwVRHH+ zqze>04RsGRoY49#SJb+U`y%U(DE z@v6>+VWxr-=yOjM`qbRT^1HoS61+h0?(M!0T%@sP6e@n`o~=9tH~rE}wnjr`7u6t? zvU||S)@|)C;x5OiXde{v+|N1S9vwHa#E**5Z@nVYNBKzqexYXgroq&%kDP#oYg&6zCf*FFj}U&bQgpB%&rPh&#^e=dtL4_5;0 z5s`8`iL|`qBBZQ`iNob~Opj}nShSA#1|Ku3iT%VPf65mW-oa;jOezD-ekN=*m;SpF z*5wPb%*Xq*;v-qb_eEPX@Eo0ys7plng&B#nf3G${a`b&o*C&#;TFPfLf?CwUO;sft z)x^z72*CSe_Z^3}aA@y4+Hbdd9aCclsaR525Q^1no0C0L)|xm-$^<{zaYAzpa_?pH zq{pm^<>WW~(X;!su=;uBAhx}JZjPI?wCebE1 zp+SV~+Xlky!6d*2XgIjiVaU8~6bNJoUkzLmCUsN^3N4;3Ywze|ZA*{tc08HkE&Z^=cb9h8ymZ?;%Eptq?(LO3|)KK`!(` z46GhB0M6u06sC%o?vZeM+jX@NvWDf3d##}sx%6t4>EMWe-28-5PM&aQ-sBG|vcRHS zuy{@m`GD~dFz0kFCo_YYGQjsW>er@2x(X(|0OYJg<0B`H-FG7N7_`g3*QT_Qy!Z zGHF)7g0wUdW>N=qMe0CgoLm_C73D)U;nO4AbN2Y6;z&9#9A=-y^D~tF#h9QfTf^E0 z3DWtE(+Dupb&Lrt8y{JHNp(Il!M3spyXp@_0o{_H#co7BY;9`9ja(-frrTu6XGnfH zx~Uqv7g~RA1w~+MZsnlAhITz=SMPDJ&E3j4!p(G>;mmyRxgY()=-pwfgc{aj?af^6 zHVkH}$PzVrZ}H2(B>maJ31eW;;N2zJ(06>TQQ--sP5~(SvDQN*zJi5cKWurJWsPlq)-90S zx6dQYeyl>vM0XTWXB#b*A6j`$wCc{P#+q+-hj=i%`YK z;u*|X;Q@WD;n~c;B|$PjO56F7IfMEAYHT4qJ2Vtpfep*k@qpwAX04py;H=F~$-}yI z?^9P2`9C;?!KhX&osUKo=taa6F8xd>7j<+Ih@5Wf3>A;4L^mzEpVWArnj`-hcXi$v zZ}aUcxS|Ibbq07i3BD3UeQ@Hzp|xRvw9UD-gjVi)Tg|uC{CE^o8B{hKsV-FSIKR;z zRtyw*C?btt2n?TF+-K?2(>BW;kgJFXKUp8IKd2eXhh=>!ju17y_^7Dwag3$Tb;U#N zr~;i>x$WyAbPh8M0hSp6l5o20ctnEx3kK5)3A?SYaBZ`NRo$h(2G&5197Vnj9jDeK zxEnHg4&T>5rYNE!e00%yeTrF|8Hjlmy=eTmtH;0oQHK1>GxR_9FdhDWwZA>1NS4lt z^Wzt2ua~0Wx(${DoD_Ti>)GBW$)~r6^=(0L@M?WX2=b+df0X^>C_?-bvezVp(K9>~ zV*+0^&&T)$HOGdJ|H@DJG5!u{k|Q!g5AUxV29P7K>7!FJXip_2$LGS8 zJpdzm=b&*WME`~fKDJj3S~3?hl02HR_C_dDA`xzak_r5nCOLq8#NLPNT6a)Y2QVzLkbdZ z?`yl{*FW=ppnRf4F-Pypx~0n|8kk(Ux1Vimx5AHid^OK~4oQ@W$Zq={kr=(|?WT1B z(}m=DUoZ-%w7gwnG_7~B@!o0buU9;tWL+EPz&Yt~-|v~-`br!Lzy9#Q>79F_>RQ9o je&(7l6N;KY`4sSOk2!R2V~YGXwuL|9&vM`1Z|wsBgxy(n literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_install_script2.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_install_script2.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..6f9e2d662af31b41865ed66a3c8359e9eb888373 GIT binary patch literal 308 zcwS>*WME`~fG-RTOomW4<9{fK*iyF1bxT{!nxfQ%>DPZ<`g)Pen*j+_%;}wQHtVo~ zK+F5OF4r#!@j`RV4ZiK__@(Zl^>(2`Othy@&`J-krBn7*KYlc2mwjGhzO}XS{b?sE zi#inrci%f`aO>x@0*33i{#`tr<+!Nfnc~_V9$ikKrd-@QVdI$$wVS1)tPD?YHv8rG zzMb;+tJu7rySoo^aQFS+bZYWs7o}v==JneQOKRC~RcvtQ{hpP)=GR8Eu$wub{ZDT> zS0J|1bnY+i7v_^KXIy1jcC#YYKBDc+dzs5q=7>q$Gtd$^anw6XEnMULDbvGq?(Ne% uoxX5ReBa4Gwma;8x&FTJM$}SNRmRm~uk3!)XAUxVUph*%=I>Hnbrb+x(~(X9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_install_script3.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_install_script3.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1327481231f10c1dfdb02e93931bf1256f692e64 GIT binary patch literal 319 zcwS>*WME`~fd32(Ony){<9{fa*OYTt(6vY?XnFlC?zDQ|x3QwP7?424oVgPMy$>6R zwBG-%ttT#jP2BO@8|O?T-fb^^jA}GlVwH7EJTr}5kNnTG&NgS8s`%ug)49FRt<{$X zxs{hRu3BRyG4Ji4;#lYHxvP&I{v>tSA!utt%qk7fEj_H!+Iz3G223#o~R*$Ewj!%_fShD!8)~lX=06b7NsX<66bRB_n& zwi}<`{!_la_{eGLS6*WME_f1IB0u2IjL2P|klSIQ6rtSmemWNg2)S7wa`1<~_?^`DK@{! zK%({iPtp8Yu_w-+QQE#+A!u7#&5muyVkZcwmkMn(4M;!ps9xUS&%84_FIhd$SKs?A z^D6n+8}&PmHPgfbWFub`PIELod3h<@Yq^y_k_>GAN+Hg?Zh4IxsWrnZzDhVJ}fYQ{I` z+7tKbe=i*T*zw`{r_=H+jC>W^4_#Cr>F<-ay&bSt_{ztS?i&AHeqYy|*%+avxn!Mi ztkd?i6fIk>7HncZVqhPAX-{(Ycln10ds3E~_U3mSQ+*5oWi-Ju literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_package_script.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_package_script.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..86568eaee08edffe0fe938308f02780c7ff5c7bd GIT binary patch literal 278 zcwS>*WME`~fNKm4jQLPD<9{f~w~Y^05np|^r~c%!8imYR=WKFsGa!MAIlX>oyABx$ z?0c@+_F&=OH+Ie?%cXKmmmDlz7_jNl`2>wiY_Sve?GARm(ahd%S@YqqSj4ofuFewn zR}KH4n7i*^p2mN7+0x)CD>ddx$v(Ukbf@e=qI)8@co+Kz#RE6DKdC=_V2*7oBa^AY zEGCjA^$93D56>6JX+>1;m*J?4mt34$VQ?obz#J+lU_waLX7AAdYs8wCv=3e+> Mbyy+uGJ}G30Bv7;TmS$7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_post_install.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_post_install.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f64d2a34b01e6af90d5e1bdde35b5af5d1089457 GIT binary patch literal 194 zcwS>*WME`~fF>Zm31u_>hXP02DO`uc)U=wl_ZQ^xuvPm-dMsr?0u^&w`y9CrD+n;W zuRJ;__!G}TU%?*U?CNPEydH<8dY0Z_FH)4T@QckE1LY`fzZ+Y-61}S%PgKvmzV)rN zX^HT{;A3$u*Zj0zzR3E;mSD3)lYPd``WYX5e)4%g36Nf)`)@VRBB6Gd^rrHU96w() Z1~>jm*wLyQ`ekc}+rM2kjM8;ZtpK3+PD20y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_pre_install.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_pre_install.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..05754e33c2274407fc4f7910780416e6510e9a6d GIT binary patch literal 126 zcwS>*WME`~06QSIg|Zp{LxJ<3|G#QZJ7^i#yj5VcoZzZ(-nyRw36%P}1_wL3yJ{$f zWMmdAfKZ-7K~XA@DlSRP$x+he3U&?A2nceG_w)-6arE(tcky(I4+`~DFx2D%0NF$& Aga7~l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..30c8ee38cd00ba0f780aaa0b6db0fc9d01fea50e GIT binary patch literal 159 zcwS>*WME`~fOsG-gR&X_L&5vYNmJ}3R~_m2aMk_v>8UF5h2{qtkU+(p;*!G7^4@|{ zKHkETPlZ=GILiVVlJ-97;u4UJkD4?ynCDSuQROezc8gy>j_j`dwSz7D#qY4TC1TTG pq(4)AK4sYwtp?YFQN{vZ&N9t+Vx0xLCL4Wr@G{xSkatam2LSUKKTrSw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_t_s_d.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_t_s_d.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1c4efe571eb6d3f9bc698c05b729065f1cc0d6d6 GIT binary patch literal 174 zcwS>*WME`~fIJ|sg0dO^L%|NFq`yuQIbt_TCd{?`K66Qz=BLvPNT6a)@VPVI=QMpi zLpNyZd7eCT{q%;%kAm7dHCtJBzev?6EKGeiRpW_T+Oy1zqR?VZjfNerE01z*<8ok? z@={!PP|<7FHHXe7r3E3g+9tVY`T6a0iVCdL^KkW%bJ?b`b;%YD{w0@Zt)9lsa7skQ F3;>*WME`~0C6A|gR&X_LqXD_d}O$v(I(B`=*%z36y5$l_-P+yJ#fm R=M|SIBxfWRX=z$>0RaES8E*gp literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_t_s_d__utils.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install/_test_sub_dir/_t_s_d__utils.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..505680190c7877c25f78506e3a86b733ab582dbf GIT binary patch literal 174 zcwS>*WME`~fIJ|sg0dO^L&5CEc*Br{nN6-Iye8`D#xwNXn9sw21S;m(c3E>Z7znWb zwms@R+r?$ex8RqYXINGKG3}Ztq5bh48~5x+Nj0-I+q35c%)KWWw`r@Q(VK<8!ZJ=T zZ;xZ2p0F+Kl5fLIMS--v@=8ZUCcdf?^}J$QbfSRaySw?%(}tfuZEpV;H08?$?la32 G{{R39f# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/foo.c.i b/CMakeLua/.hg/store/data/_tests/_simple_install/foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..379b1275cf2b09223094fcd6d87c1600ce13f109 GIT binary patch literal 125 zcwS>*WME`~09zoofwCF@LxGI3>dj^B1s2sW*L(_#@UvVma6^;<36v&hBo=8Yq~+%; z*eWQw<>xC|b8%(nl_&(~=cc-q<|UV8=I43l0VOmvxvIGo6pB(yN{jLoOs%*WME`~fG8lYfU+6?LqV~_Ew!u#%3C&P7W_TdofdyH&fSdx2~^ApKIh}@=^Nb9 z@2_`4QvS-Q}6TKM;MQ%wGr#VH{?KAaJF<$SYXkl-D jb*+j1P8DPO^Ty|O?c<#<&+7J;y!;|+M*WME_f14dQ`2Bu&JDCa*ERF)=O@BQe0XMdF*?v$tt$r+Vl&{)w+UFD#U? z+qhSy;Aza9;$uu}RW#RJ)6ZWY-^3~*)Nfaq{Kc&E^K;`(8Yk0OPjty$vomM=f*GVfWnv`lwqX7u6{TU;eJ+A?o(>frB>H!Bl& z+fmWfkuO-ueWUz&`AcuDC-axymeTsL`nAkkH|f)hUBxw5=6Q85*)QuBQ}{^DcxMuy zxozR)nRmX}zYBgCGQxgPkkSI@PBc*U0C?K1!b*K*1z*=4SLqS7k_i$ KAH%$~RSN+!#E`cD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/inst2.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install/inst2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ca849aabbc8df6def4215d7ef94bf7843e4baeca GIT binary patch literal 101 zcwS>*WME`~097DXfwCF@LqP`P6^%y@x;~F)uQzi)zx;t5L;Mv6Bv7iHlA4y8m#PpP f;^^)gZ^WgXnU|bXnv$xZl$lptqL*Azp~M9MZ|@y@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/lib1.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install/lib1.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4e01feb9cd980ad3d5f10a21e41a5d0a961f3b6e GIT binary patch literal 119 zcwS>*WME`~0CONVgR&X_L%}4+Pd&*}jaKib-@E>A?a{|JzkB-`kU*(&W?phmX-cYs wQch-)p*WME`~04X4rgt8g`LxJ1DZMDVAzMWaT@9z4GZyw%dRQr;|fCNfYD@sy}@)Xi? U@)JuGd@_>^-AeP4H8icc0R9af^Z)<= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/lib2.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install/lib2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9b1cd8d9b81051bbbd4e082359f5770156027ee6 GIT binary patch literal 119 zcwS>*WME`~0CONVgR&X_L&5&<^_;z>zly{cRB*WME`~fOa7M4rMd`hl2by@nKVw7*a0mpRz>7a`xpYj!1t7Bv3IY_?(Zor*Civ z|MxG(W{-lx0vbMe2X%Y*Jc?Cj`qS*xItIetuc5j&*^ZO==$TS$>6DD}NamPyF(HY09!f&BHwhb2$QdBQ(Xu ec5a#T=ZFyN{4*-b+b``&;q}edV{q>EdI|sqWKKZ< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/lib3.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install/lib3.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0b3a4a4ab22ede12c3da090f40b2e56e57b1332b GIT binary patch literal 119 zcwS>*WME`~0CONVgR&X_L&106C8FxzV(t7r3ZwI`1bu$~%CU_B36v^l<|XHprlcw; vt!f$ai!(tCzdGq0J(0ZdC3}@T-96(3Pq_UrA2uPMtTO;T(w*P<(DFy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/lib3.h.i b/CMakeLua/.hg/store/data/_tests/_simple_install/lib3.h.i new file mode 100644 index 0000000000000000000000000000000000000000..18eaae3c683e05d15dfa56fdb03730f2f8afdfc4 GIT binary patch literal 199 zcwS>*WME`~fOa7M4rMd`hl1@h7J8fQDY+ZdR_vQI_t>Ui#?osTkU+(p;B!9Sp1#2y z{NKMAn>`8&3uyS@9n|gJ^Eg(S=})s$lj9*SE{BI__Jpve-~Sp1`-K2SIS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/lib4.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install/lib4.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..bac5bb3d3ec24fd9013b6576469e771d7aae97dd GIT binary patch literal 120 zcwS>*WME`~01F^Chq4*}L&1}S&3qoMuYx&einLm7J7VRwC-pc35-3&9%uCKGO-WTy w%E?SJ(aTWc;!4ZOPb^XJ0dn0+^O7|*xvIGo6pB(yN{jLoO!N$_xoWw%0QFiTOaK4? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/lib4.h.i b/CMakeLua/.hg/store/data/_tests/_simple_install/lib4.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1e7557c881042a204da634b71a56f0856b878bcd GIT binary patch literal 200 zcwS>*WME`~fDR!30cA7(hXPjNo7s0Z%rcH)Im2^h*UKq&CVxLNAc2ZG!RLIuJ$-{a z_`iQKHhUBl7SQm)JE+^+=TWRO)1PLiCdWfuTn-P<>*WME`~07oEpfU+6?L&1*ZGPRGpi=8GoT;ns@BDUqg=LaDSNTAfyFF3@}$0t4@ z$lpE4(KlE_-?uU(wYWsTI3uwrRX;x`#aKZpt~fEbASX4xIJqdZphP1kMlUI`MAKeH HNs|izxN0aA literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/scripts/sample__script.bat.i b/CMakeLua/.hg/store/data/_tests/_simple_install/scripts/sample__script.bat.i new file mode 100644 index 0000000000000000000000000000000000000000..50429a987add5644c5d3dad2edec595d18ad946d GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|L&08#3o3^K6Dq4TPV4>hR8efJ@Oi|51WFxJlQZ%af)jHK Va#9t7lZ!G7N)-G{OA1O$xBzN;8$|#B literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install/scripts/sample__script.i b/CMakeLua/.hg/store/data/_tests/_simple_install/scripts/sample__script.i new file mode 100644 index 0000000000000000000000000000000000000000..e7eed13e6a795683b6071a270dc655d9ee82e6ab GIT binary patch literal 103 zcwS>*WME`~0CgZ%gR&X_LqW`f6Y&WrE6l~s48KG!bqqFsBB{rK1WJ_^^^-F5^oujN gQj;_C6_kP#a|?1(6@rtCG7Cx+{7Xv;N=uZu0DFTSkN^Mx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..6db38f4b6858f73a9af814ab48318b7a6120440e GIT binary patch literal 4761 zcwSYQXEYpI+lJNXL}&ET8KQS#^lnCrHo71oVvrF;?>%}adIZti=%YlJsELT)V)QP` zcg}gwx7Pb!Ywc&zKm23GGNrLoo3ix7Xn?bK4{?q}iZ`owXESAp!Lm2?q^wnDVj6xX7NH{S+s7w* zt{i+b%HB!9b;!DNE#9RtesbR*o@#njCYjy39=+!+z#x=>&UwW4qqjx8|5ui{7@8r> z&t)m1u53*NJrVAGEnx}uSqv$ED^*>Hws4Z@>mcV`dC|c>q1?)PDOSe2l6a{3w3q{S zbsYyv7J8m|n=9W5i-0Pgq#7i1I~*uLk_8M2rH%yN6-_%HEUTr4(Gy5(0+NOvL)dzN zx-??ct*A_SN}DLGsoycK6WlM+dAd~r^9@50e!&dbHrSfpXZ=yuBplO zxWQy89)0fqyl{Hfqi!zSpzJoHb)j+&tz^}~-Ynl_kir_zH%@#n?cxn6aAeMiy=~wD z=IKg`+^Y3NH5w_s8E?>>WJqMB>m802=(v--%g@U%mM@g9!STROxH z8_&A%1HZ7*%u(NRsTiM0^JtpeeM^92-Abe7>yd|7<{11Y@g{)h61pf=Jp+X~++UR) zdPB{FJF~DjvXlR%2F6_v z;G#y#V^*T~+r|(raju2&D9RTc$b?uGBR!wqjr+;Ti)o>IcSf&rT|qHT7yBjVrOZKH z+_uUme|bQ{&(p6C3$q$SJC>O^r&L7IKi($m@do=)>;R-$zB8Rdzza1%*Fed>X}-Q` zNgz(#HVwMXv=b<|$b4Xpw;X2JT^so_XCVKLIuk2pnVI11*o9NPk{@>XMF16}jP9C^ zZ1gk(5x&8piNPVqHS9e$%9R>3{E@KLpG*%LY!bZdC@O(!EV!_QOwh58MiHS zw|6&ZI40RUh8KtkA{go*OE60Gmcv1*@6+gqK}gGis+{xZr#xo{Dv;G_tAp}OF>d~- z((MpXv=*_Gr3%}%HN(5!v$;)3%4q$41flm`7so=Qk=xb;$rtj zDlwfEwXR>YzV2cZF(3lyZ09r%6lr)E4l+!OIgg>uh0{lZxg!f-@_$>pY&C7RPE1H~ zRh2kSN8Qj5c=?X;VZUnz9<*WZm3F{zq$^)z|6+oct|(97niyj$M17vOw*!gF@eZ}Y zl)yeMam0rR4b#c_=al$Ljay-*@0(ze_&OIQ1>?7=&8CRjj{OLiQSWwHiOzKR`x3_x z!QPBD@=cRM!^M_|@5mvEl56VfBo{8t~3S%calLaS-lqDg* z_mivOB|c1hyFS%f(fQ)Of@Y8J9~m!e=Fp)8!Tj5fHfCn|^nzdA?>fE+%l2x6C4!ZX z9h5v~OmMO9Y*? zV5K&&14*NdBaO#f0{x{P1807G@KG+@v9BMUSig)>u{L!r>s9x+(msxzF(fCk9#||B zxAgLkw@GR7!@21k5Lwpm5mjLQZo)Cl%<=~|lIdA}2v8CvJJzIyr0*5%F!XP=^X&oOL;h^w&B=h}dvo9`g| z1K!;5XS(@1o6TrJoVC$~#-(=B68{01nscZ=@g)GA7AqxQ{?Y43Jf1+0ufXG;z&%-v z)?VWlAF#Hsqju}35U2XdkiJ)D$S;vmHBeeYroeO>s*3&otblTd0Exd~F+Hm*YPkAm zICYU{>N6|w4m#BHVaj$_q=~OwP^LRAObq=!C66 zl5RTcvMvj!7UUWH6eFJ&LF`Av(T|r>{5_7oMDT7@0Cn$Q`M$1G`h+&o z4<2HHRXKw6_gA2{B5Ri$V!AcIucf2HSclwoiA^$5+jPiN z6rfPTLy&kO5a)$EmJC}c6oEBN8KftHna7u@Cp|Uy74sw!-r@MFN3Mfz>cn<$cj5zv zY{RuR4t3ZaIol>v?`IsXp)`qPCqs%qrvkUHans0p=KqwfQmLy;>6$ayxhoc{X^7wOzYyq(8bicBM5WlUdMiSccED^)vzPihC6?2t_*IZ5mP{RiFE3Ke4IXf6~YQ9>} z9RYDe_YZ^aYDsIv>c7>dKxw6n^yEtGV^%hf$;^clkSDDq#nBm1!uk&MWSE(Az|4g(7zXP_mE`#g7Z4 z?K4gVZHY~g=aJ&azTXCy*@k6X?bNzMc!(B?S#(`jgVbg7XyPB-+>3)7;w1 zu0X!;<&C-{l`fxAgr*Mh6*7Pf$_a1~UkKW3Vl~poP5I7>)gPoogK*=WlrIDfURll8 zMJX&64bil^?bkOyT~FDl)@Cr4g*JyAZs~b@;^u&G*k)7hKtwnm;#Xii-_*^?%>`mA z(E??PF|X1cyIaX;YW5{bzr)JYs;3tADDuX~^)ImJ?pFxc^GxVR)#VrIQngd>vsdka zF~f>Y0yTkr+!#oL#^ne=3^aZ|A21nNbeqcs`K({Z8m>`Xt-`Hamw$6LPy&0mVEa~w zk%NY0V=#~bIC~H-S8OLfTpiueick?G5MqmYNm^edlg}symzgPU}Z15e2dQL@z&QH9D&bV zp}i6j;^FypyPpm0MUP>PTCB$8IqI0+ocDWN`R+py$y@5mRXZ(FAg9CXiMN)GGsCx@ zPI>k>;OB|B;`B}T)|1S-gZ|PF6@tO=@8bJxUm>nXc5mW%>(wVaxPEL;O8LoGbn%;L zQs0)$a&UsnBU~KRnuys)Tmbg^&9=^lnhQCSPTL79sov`FJVo5YIIcJ4^)Ht{fM#zH z38*m3QVj-9+X|zfqr^9KrWkW?>N(En|vN7K!!xQyO*l&$fo&6y_FZ&5VOj z((u6<{4JS2oDJjtgCG0*sqbm(*@xcAFL8`sa)7d1%?HSxIJ)zwG@tLow-iQ>6C!EV zE!ro_L6+O_+j*Wcg0zr6PxnFpg>kOBbRX>mnbNRr`Kh4TWG0E!oR@!A-dnnwVRHH+ zqze>04RsGRoY49#SJb+U`y%U(DE z@v6>+VWxr-=yOjM`qbRT^1HoS61+h0?(M!0T%@sP6e@n`o~=9tH~rE}wnjr`7u6t? zvU||S)@|)C;x5OiXde{v+|N1S9vwHa#E**5Z@nVYNBKzqexYXgroq&%kDP#oYg&6zCf*FFj}U&bQgpB%&rPh&#^e=dtL4_5;0 z5s`8`iL|`qBBZQ`iNob~Opj}nShSA#1|Ku3iT%VPf65mW-oa;jOezD-ekN=*m;SpF z*5wPb%*Xq*;v-qb_eEPX@Eo0ys7plng&B#nf3G${a`b&o*C&#;TFPfLf?CwUO;sft z)x^z72*CSe_Z^3}aA@y4+Hbdd9aCclsaR525Q^1no0C0L)|xm-$^<{zaYAzpa_?pH zq{pm^<>WW~(X;!su=;uBAhx}JZjPI?wCebE1 zp+SV~+Xlky!6d*2XgIjiVaU8~6bNJoUkzLmCUsN^3N4;3Ywze|ZA*{tc08HkE&Z^=cb9h8ymZ?;%Eptq?(LO3|)KK`!(` z46GhB0M6u06sC%o?vZeM+jX@NvWDf3d##}sx%6t4>EMWe-28-5PM&aQ-sBG|vcRHS zuy{@m`GD~dFz0kFCo_YYGQjsW>er@2x(X(|0OYJg<0B`H-FG7N7_`g3*QT_Qy!Z zGHF)7g0wUdW>N=qMe0CgoLm_C73D)U;nO4AbN2Y6;z&9#9A=-y^D~tF#h9QfTf^E0 z3DWtE(+Dupb&Lrt8y{JHNp(Il!M3spyXp@_0o{_H#co7BY;9`9ja(-frrTu6XGnfH zx~Uqv7g~RA1w~+MZsnlAhITz=SMPDJ&E3j4!p(G>;mmyRxgY()=-pwfgc{aj?af^6 zHVkH}$PzVrZ}H2(B>maJ31eW;;N2zJ(06>TQQ--sP5~(SvDQN*zJi5cKWurJWsPlq)-90S zx6dQYeyl>vM0XTWXB#b*A6j`$wCc{P#+q+-hj=i%`YK z;u*|X;Q@WD;n~c;B|$PjO56F7IfMEAYHT4qJ2Vtpfep*k@qpwAX04py;H=F~$-}yI z?^9P2`9C;?!KhX&osUKo=taa6F8xd>7j<+Ih@5Wf3>A;4L^mzEpVWArnj`-hcXi$v zZ}aUcxS|Ibbq07i3BD3UeQ@Hzp|xRvw9UD-gjVi)Tg|uC{CE^o8B{hKsV-FSIKR;z zRtyw*C?btt2n?TF+-K?2(>BW;kgJFXKUp8IKd2eXhh=>!ju17y_^7Dwag3$Tb;U#N zr~;i>x$WyAbPh8M0hSp6l5o20ctnEx3kK5)3A?SYaBZ`NRo$h(2G&5197Vnj9jDeK zxEnHg4&T>5rYNE!e00%yeTrF|8Hjlmy=eTmtH;0oQHK1>GxR_9FdhDWwZA>1NS4lt z^Wzt2ua~0Wx(${DoD_Ti>)GBW$)~r6^=(0L@M?WX2=b+df0X^>C_?-bvezVp(K9>~ zV*+0^&&T)$HOGdJ|H@DJG5!u{k|Q!g5AUxV29P7K>7!FJXip_2$LGS8 zJpdzm=b&*WME`~fKDJj3S~3?hl02HR_C_dDA`xzak_r5nCOLq8#NLPNT6a)Y2QVzLkbdZ z?`yl{*FW=ppnRf4F-Pypx~0n|8kk(Ux1Vimx5AHid^OK~4oQ@W$Zq={kr=(|?WT1B z(}m=DUoZ-%w7gwnG_7~B@!o0buU9;tWL+EPz&Yt~-|v~-`br!Lzy9#Q>79F_>RQ9o je&(7l6N;KY`4sSOk2!R2V~YGXwuL|9&vM`1Z|wsBgxy(n literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script2.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script2.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..6f9e2d662af31b41865ed66a3c8359e9eb888373 GIT binary patch literal 308 zcwS>*WME`~fG-RTOomW4<9{fK*iyF1bxT{!nxfQ%>DPZ<`g)Pen*j+_%;}wQHtVo~ zK+F5OF4r#!@j`RV4ZiK__@(Zl^>(2`Othy@&`J-krBn7*KYlc2mwjGhzO}XS{b?sE zi#inrci%f`aO>x@0*33i{#`tr<+!Nfnc~_V9$ikKrd-@QVdI$$wVS1)tPD?YHv8rG zzMb;+tJu7rySoo^aQFS+bZYWs7o}v==JneQOKRC~RcvtQ{hpP)=GR8Eu$wub{ZDT> zS0J|1bnY+i7v_^KXIy1jcC#YYKBDc+dzs5q=7>q$Gtd$^anw6XEnMULDbvGq?(Ne% uoxX5ReBa4Gwma;8x&FTJM$}SNRmRm~uk3!)XAUxVUph*%=I>Hnbrb+x(~(X9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script3.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_install_script3.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..1327481231f10c1dfdb02e93931bf1256f692e64 GIT binary patch literal 319 zcwS>*WME`~fd32(Ony){<9{fa*OYTt(6vY?XnFlC?zDQ|x3QwP7?424oVgPMy$>6R zwBG-%ttT#jP2BO@8|O?T-fb^^jA}GlVwH7EJTr}5kNnTG&NgS8s`%ug)49FRt<{$X zxs{hRu3BRyG4Ji4;#lYHxvP&I{v>tSA!utt%qk7fEj_H!+Iz3G223#o~R*$Ewj!%_fShD!8)~lX=06b7NsX<66bRB_n& zwi}<`{!_la_{eGLS6*WME_f1IB0u2IjL2P|klSIQ6rtSmemWNg2)S7wa`1<~_?^`DK@{! zK%({iPtp8Yu_w-+QQE#+A!u7#&5muyVkZcwmkMn(4M;!ps9xUS&%84_FIhd$SKs?A z^D6n+8}&PmHPgfbWFub`PIELod3h<@Yq^y_k_>GAN+Hg?Zh4IxsWrnZzDhVJ}fYQ{I` z+7tKbe=i*T*zw`{r_=H+jC>W^4_#Cr>F<-ay&bSt_{ztS?i&AHeqYy|*%+avxn!Mi ztkd?i6fIk>7HncZVqhPAX-{(Ycln10ds3E~_U3mSQ+*5oWi-Ju literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_package_script.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_package_script.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..86568eaee08edffe0fe938308f02780c7ff5c7bd GIT binary patch literal 278 zcwS>*WME`~fNKm4jQLPD<9{f~w~Y^05np|^r~c%!8imYR=WKFsGa!MAIlX>oyABx$ z?0c@+_F&=OH+Ie?%cXKmmmDlz7_jNl`2>wiY_Sve?GARm(ahd%S@YqqSj4ofuFewn zR}KH4n7i*^p2mN7+0x)CD>ddx$v(Ukbf@e=qI)8@co+Kz#RE6DKdC=_V2*7oBa^AY zEGCjA^$93D56>6JX+>1;m*J?4mt34$VQ?obz#J+lU_waLX7AAdYs8wCv=3e+> Mbyy+uGJ}G30Bv7;TmS$7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_post_install.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_post_install.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f64d2a34b01e6af90d5e1bdde35b5af5d1089457 GIT binary patch literal 194 zcwS>*WME`~fF>Zm31u_>hXP02DO`uc)U=wl_ZQ^xuvPm-dMsr?0u^&w`y9CrD+n;W zuRJ;__!G}TU%?*U?CNPEydH<8dY0Z_FH)4T@QckE1LY`fzZ+Y-61}S%PgKvmzV)rN zX^HT{;A3$u*Zj0zzR3E;mSD3)lYPd``WYX5e)4%g36Nf)`)@VRBB6Gd^rrHU96w() Z1~>jm*wLyQ`ekc}+rM2kjM8;ZtpK3+PD20y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_pre_install.cmake.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_pre_install.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..05754e33c2274407fc4f7910780416e6510e9a6d GIT binary patch literal 126 zcwS>*WME`~06QSIg|Zp{LxJ<3|G#QZJ7^i#yj5VcoZzZ(-nyRw36%P}1_wL3yJ{$f zWMmdAfKZ-7K~XA@DlSRP$x+he3U&?A2nceG_w)-6arE(tcky(I4+`~DFx2D%0NF$& Aga7~l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..30c8ee38cd00ba0f780aaa0b6db0fc9d01fea50e GIT binary patch literal 159 zcwS>*WME`~fOsG-gR&X_L&5vYNmJ}3R~_m2aMk_v>8UF5h2{qtkU+(p;*!G7^4@|{ zKHkETPlZ=GILiVVlJ-97;u4UJkD4?ynCDSuQROezc8gy>j_j`dwSz7D#qY4TC1TTG pq(4)AK4sYwtp?YFQN{vZ&N9t+Vx0xLCL4Wr@G{xSkatam2LSUKKTrSw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_t_s_d.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_t_s_d.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1c4efe571eb6d3f9bc698c05b729065f1cc0d6d6 GIT binary patch literal 174 zcwS>*WME`~fIJ|sg0dO^L%|NFq`yuQIbt_TCd{?`K66Qz=BLvPNT6a)@VPVI=QMpi zLpNyZd7eCT{q%;%kAm7dHCtJBzev?6EKGeiRpW_T+Oy1zqR?VZjfNerE01z*<8ok? z@={!PP|<7FHHXe7r3E3g+9tVY`T6a0iVCdL^KkW%bJ?b`b;%YD{w0@Zt)9lsa7skQ F3;>*WME`~0C6A|gR&X_LqXD_d}O$v(I(B`=*%z36y5$l_-P+yJ#fm R=M|SIBxfWRX=z$>0RaES8E*gp literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_t_s_d__utils.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/_test_sub_dir/_t_s_d__utils.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..505680190c7877c25f78506e3a86b733ab582dbf GIT binary patch literal 174 zcwS>*WME`~fIJ|sg0dO^L&5CEc*Br{nN6-Iye8`D#xwNXn9sw21S;m(c3E>Z7znWb zwms@R+r?$ex8RqYXINGKG3}Ztq5bh48~5x+Nj0-I+q35c%)KWWw`r@Q(VK<8!ZJ=T zZ;xZ2p0F+Kl5fLIMS--v@=8ZUCcdf?^}J$QbfSRaySw?%(}tfuZEpV;H08?$?la32 G{{R39f# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/foo.c.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..379b1275cf2b09223094fcd6d87c1600ce13f109 GIT binary patch literal 125 zcwS>*WME`~09zoofwCF@LxGI3>dj^B1s2sW*L(_#@UvVma6^;<36v&hBo=8Yq~+%; z*eWQw<>xC|b8%(nl_&(~=cc-q<|UV8=I43l0VOmvxvIGo6pB(yN{jLoOs%*WME`~fG8lYfU+6?LqV~_Ew!u#%3C&P7W_TdofdyH&fSdx2~^ApKIh}@=^Nb9 z@2_`4QvS-Q}6TKM;MQ%wGr#VH{?KAaJF<$SYXkl-D jb*+j1P8DPO^Ty|O?c<#<&+7J;y!;|+M*WME_f14dQ`2Bu&JDCa*ERF)=O@BQe0XMdF*?v$tt$r+Vl&{)w+UFD#U? z+qhSy;Aza9;$uu}RW#RJ)6ZWY-^3~*)Nfaq{Kc&E^K;`(8Yk0OPjty$vomM=f*GVfWnv`lwqX7u6{TU;eJ+A?o(>frB>H!Bl& z+fmWfkuO-ueWUz&`AcuDC-axymeTsL`nAkkH|f)hUBxw5=6Q85*)QuBQ}{^DcxMuy zxozR)nRmX}zYBgCGQxgPkkSI@PBc*U0C?K1!b*K*1z*=4SLqS7k_i$ KAH%$~RSN+!#E`cD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/inst2.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/inst2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ca849aabbc8df6def4215d7ef94bf7843e4baeca GIT binary patch literal 101 zcwS>*WME`~097DXfwCF@LqP`P6^%y@x;~F)uQzi)zx;t5L;Mv6Bv7iHlA4y8m#PpP f;^^)gZ^WgXnU|bXnv$xZl$lptqL*Azp~M9MZ|@y@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib1.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib1.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4e01feb9cd980ad3d5f10a21e41a5d0a961f3b6e GIT binary patch literal 119 zcwS>*WME`~0CONVgR&X_L%}4+Pd&*}jaKib-@E>A?a{|JzkB-`kU*(&W?phmX-cYs wQch-)p*WME`~04X4rgt8g`LxJ1DZMDVAzMWaT@9z4GZyw%dRQr;|fCNfYD@sy}@)Xi? U@)JuGd@_>^-AeP4H8icc0R9af^Z)<= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib2.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9b1cd8d9b81051bbbd4e082359f5770156027ee6 GIT binary patch literal 119 zcwS>*WME`~0CONVgR&X_L&5&<^_;z>zly{cRB*WME`~fOa7M4rMd`hl2by@nKVw7*a0mpRz>7a`xpYj!1t7Bv3IY_?(Zor*Civ z|MxG(W{-lx0vbMe2X%Y*Jc?Cj`qS*xItIetuc5j&*^ZO==$TS$>6DD}NamPyF(HY09!f&BHwhb2$QdBQ(Xu ec5a#T=ZFyN{4*-b+b``&;q}edV{q>EdI|sqWKKZ< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib3.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib3.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0b3a4a4ab22ede12c3da090f40b2e56e57b1332b GIT binary patch literal 119 zcwS>*WME`~0CONVgR&X_L&106C8FxzV(t7r3ZwI`1bu$~%CU_B36v^l<|XHprlcw; vt!f$ai!(tCzdGq0J(0ZdC3}@T-96(3Pq_UrA2uPMtTO;T(w*P<(DFy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib3.h.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib3.h.i new file mode 100644 index 0000000000000000000000000000000000000000..18eaae3c683e05d15dfa56fdb03730f2f8afdfc4 GIT binary patch literal 199 zcwS>*WME`~fOa7M4rMd`hl1@h7J8fQDY+ZdR_vQI_t>Ui#?osTkU+(p;B!9Sp1#2y z{NKMAn>`8&3uyS@9n|gJ^Eg(S=})s$lj9*SE{BI__Jpve-~Sp1`-K2SIS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib4.cxx.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib4.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..bac5bb3d3ec24fd9013b6576469e771d7aae97dd GIT binary patch literal 120 zcwS>*WME`~01F^Chq4*}L&1}S&3qoMuYx&einLm7J7VRwC-pc35-3&9%uCKGO-WTy w%E?SJ(aTWc;!4ZOPb^XJ0dn0+^O7|*xvIGo6pB(yN{jLoO!N$_xoWw%0QFiTOaK4? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib4.h.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/lib4.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1e7557c881042a204da634b71a56f0856b878bcd GIT binary patch literal 200 zcwS>*WME`~fDR!30cA7(hXPjNo7s0Z%rcH)Im2^h*UKq&CVxLNAc2ZG!RLIuJ$-{a z_`iQKHhUBl7SQm)JE+^+=TWRO)1PLiCdWfuTn-P<>*WME`~07oEpfU+6?L&1*ZGPRGpi=8GoT;ns@BDUqg=LaDSNTAfyFF3@}$0t4@ z$lpE4(KlE_-?uU(wYWsTI3uwrRX;x`#aKZpt~fEbASX4xIJqdZphP1kMlUI`MAKeH HNs|izxN0aA literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/scripts/sample__script.bat.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/scripts/sample__script.bat.i new file mode 100644 index 0000000000000000000000000000000000000000..50429a987add5644c5d3dad2edec595d18ad946d GIT binary patch literal 92 zcwS>*WME`~02v^bhO!y|L&08#3o3^K6Dq4TPV4>hR8efJ@Oi|51WFxJlQZ%af)jHK Va#9t7lZ!G7N)-G{OA1O$xBzN;8$|#B literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_simple_install_s2/scripts/sample__script.i b/CMakeLua/.hg/store/data/_tests/_simple_install_s2/scripts/sample__script.i new file mode 100644 index 0000000000000000000000000000000000000000..e7eed13e6a795683b6071a270dc655d9ee82e6ab GIT binary patch literal 103 zcwS>*WME`~0CgZ%gR&X_LqW`f6Y&WrE6l~s48KG!bqqFsBB{rK1WJ_^^^-F5^oujN gQj;_C6_kP#a|?1(6@rtCG7Cx+{7Xv;N=uZu0DFTSkN^Mx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_source_groups/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_source_groups/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..c63612d090218d53cc9ac08590eac9c7459387d3 GIT binary patch literal 647 zcwPaA0(kuZ0RRC20000000Kt<00f@^0000000061|NsC0|NsB^A&C6mm~FRe&=3kM z&dyP=Tz_Z)00000000000001ZoP|{HkJ3O8{ocP~0wx{_7SR|Jz9GU%JTE3a^*)f0 zZ9C94+nr{A9LJga-<@5`NfmRXA?@zWd$aGowlVY*3wM!`Hw9iA@{JuNNgsY7Xv7kP zwi0GwebbO}Lm*e7*-48a9h8JtzjTm$sY<|fn*wS0^!3%Z+X-XTLh7{W4M9nb@OA=d z3>g@|fBkL(3$F_&xx6vt$n6`nAPh1gOs}&gY*09FFin<=i`kdy=lMD;uV;&^>18%Z z0J8Z_yD?kGMd-cw)meCiwdl2BzI@ndRsG#5p zH$o~dWeK>jro-5HFX~1i?4+x};vE{Hz(!%$+o0^l0Jy23x)!>$Dc|2z2nCZkR=PP@ zVWARt2#z2}P$Wv;;(8wk37i_fOUsXtIbTW|-Oi}Q(Y#Qyu{cW8fXm$$d6Ei)U3?^_ zA!8UG;v_9ej;N3PX_9ni{UF%m)8ArwHP2d4V?+d}B0u2$+qzn1J|A~lxq3X>5Ovz0 zg^2%e{({Jbc|wT|2hp)^+#a;3v5VI0wf(2;acjsL5g#=4utXeo%MOrct!Wc=D^bZ> zI#x01+lo8~osFs3LB-C53LAQNf@5N14E{I7YIPhV7Z2w}Xs1zv)5bYzNTYU4X8#aH z;C{;`6q{G>IeI*|)Z6EzjHVuEI42=_2OFu-4nwjF&zaGV#RxA$8ILg`KZTo16ph!HAPYbe(+?=r@OGhJ4S{Dxm-X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_source_groups/bar.c.i b/CMakeLua/.hg/store/data/_tests/_source_groups/bar.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d88f40c4c86ad79ddd1ee351c8fd32c9a0dca6c2 GIT binary patch literal 98 zcwS>*WME`~03{$+gt8g`LqT*k`~O3ClU8llJW{#s|G^F2;*(!9Ac4}%yb^_^#3CTl bD9g`G(d4S;Qcx&LEh#O^Q!ujTs^tOzw7ee! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_source_groups/baz.c.i b/CMakeLua/.hg/store/data/_tests/_source_groups/baz.c.i new file mode 100644 index 0000000000000000000000000000000000000000..89553ea7e0d038dc198d3d3a88f6231d3e10dd6a GIT binary patch literal 96 zcwS>*WME`~00khHhq4*}LqR_?<1arO&NlVF`5TUG>j*WME`~00khHhq4*}LxFku!w=QDSuMBPxvw61vcBy_Lh@7wBv6`}SE7)VSfo*w apP8b`Rn4WKP?TCyT9l_?Vr0!#%LM>rrX9xs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_source_groups/main.c.i b/CMakeLua/.hg/store/data/_tests/_source_groups/main.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b41bb757a61a56fad3763821f75c678a81d613e0 GIT binary patch literal 207 zcwS>*WME`~fPMxBMjj}e@jnzatGvIl`QgD=g){hXTz;1%sPflcmjMY>%qi`2pQ3KER(nplBFJWv)=seimDmQr`K@4-z!>JFS+*cU)!ipvp+K) zuwBgEb3~B+{nf*hufEl{Elq4Z_5PFNi~Y{4L_XEM?U>pouJA~gLo!5popsFZoS+iF ql`pK9t#QxudAY_{bER*tY4iChQ>F!Ua_aS6O1piCCI6>n$QJ->wp#rF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_source_groups/sub1/foo.c.i b/CMakeLua/.hg/store/data/_tests/_source_groups/sub1/foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..73755e48dee514b6b41311f8482d44acc3397fdc GIT binary patch literal 96 zcwS>*WME`~00khHhq4*}L&4#V8<)!(@VspcSv5h~%i+aT*L8dhNT4(`uS6j&KVPFP aKQl#>tC~wep(wSav?x!((A=7*WME`~097DXfwCF@L&2_n{?A?=e|WRBUES*5yxE_9jvFpvKmw(ic_j*I`T0qS fMH*%KnJJoF)m#b+MX4pFMR^K_Cg$eWT(w*PK?5K* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_string_file_test/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_string_file_test/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..86255750460960618db5644018656b2c0fe53950 GIT binary patch literal 2617 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_string_file_test/_string_file.cxx.i b/CMakeLua/.hg/store/data/_tests/_string_file_test/_string_file.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..55f75b14bd1c060550ee6861d8496802403622e9 GIT binary patch literal 408 zcwS>*WME_f1I7pj2IjX6P|klSc-#A~Re<~AR?8~I#^|1(mX6`#Zy1n3#hl(r@&1Pl zM2_D7tvM@~f5DDM{yjb?cn*p?o7l~iNZz$}&D3>s|28WeJfC;m!Eoc5)W}`;?pr?J zw$tvZq_JgNxYzTLmK2^pi*-FKKW3lbZM@6qSDTTH5I@5yQysylvb$d#>`|!v_T>(% zG(%$Sq=ktB1vyJdNyzRx2;2E zozz)dG10>Tf{77)y@v{xw{$$;aCGs}Lz*FKx$n+hTT`>^NYUJ`n!okz^B!(j+x56G~@r>24Z?Bwv zYx|tJUnb26^$5=*DJYxhkplMnx3d3WydYyT_usCYDm9~Lk8!WsI6 wef8INdDddZxF8ktgVw&mZQI2k`^MgME1YB!x!WRFWqok+2G;oX7mU6E0LnJMEC2ui literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_string_file_test/main.ihx.i b/CMakeLua/.hg/store/data/_tests/_string_file_test/main.ihx.i new file mode 100644 index 0000000000000000000000000000000000000000..54d69402e9a69ffe564c1bf06ee70ef939190bf6 GIT binary patch literal 319 zcwS>*WME`~fd32(jQ^l)#{W=IZ295Vyfe2#OfGM%oV02~)P1wbMhr-xVovNt?@26* z94_B$r9=eY$cCQ!+i&7|bE~9s$Al-JS@s_(@oO*q^*p-kp8G|SrbVU7SpjVpPy0?~ zKUG|NyJh=BU!|FwQay@zD`rT zQWfi7T$sz{!FFsO)4K&_kteL)XU91!c-%Wv*Xld3UFFN9d3O~wYCKMw7#{sAl=AO&(d{?P8@Z!1 z-;4OGvWBb130v|lKXXMo^53>d-FfpbuDzFCyMO-e4spl%UH|@sWIo?==DhssW9d5p DMfZ)9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_string_file_test/main.srec.i b/CMakeLua/.hg/store/data/_tests/_string_file_test/main.srec.i new file mode 100644 index 0000000000000000000000000000000000000000..74eadadb0e5b82a08ffe011a0cf5f588450efc78 GIT binary patch literal 314 zcwS>*WME`~fL{y@jIW_=#{W?8;?ex=_3xeczux4wR(tl9>S!MM7zQLzF()+8yN^|o z+N_sqoDr zGDdNc7u(v@2XFT5EWYsK%3^)rHRtuZK9#JW#k)Z3$eAN8-X0TLJ;e^ZnED`-$$YhI z3Ul|<-4ECoG^*{K>n(n3ar57*?8?c^&ZZNs9Z%2GVqPY;;U1&8H7g%e^_w#~g4^x; z7*97}=UB6gBX+vdPA%%+tgO$RRj{qy?Vzx78$-1o>Uy)CVO zl@M@s>BKFCrVSxF$NBe9cCg<)LAUMX<=t9xuGxY!=Lft~Q}nmW8$g0D8xf AA^-pY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/pair+int.int.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/pair+int.int.c.i new file mode 100644 index 0000000000000000000000000000000000000000..465150fe01a9cc84567568d9a098995bbb29b027 GIT binary patch literal 168 zcwS>*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~09PP(fwCF@L&4Fdn_cJ46j-w(Z`Cftvrn`SJXN!2Kmw)8nR&@Mr75Wj zHpL|=nfZDdc3fO#`I#vS#i_~pc`5mMsT!JG)m#b+1x1;8C21N;9;rDw`3i~YiJ5sZ Lc}kkrT(w*PsTe8X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/testfromsubdir.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_another_subdir/testfromsubdir.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4b866429f07072eaa25b256a3194e3d28c8ebb2e GIT binary patch literal 193 zcwS>*WME`~fJPwR17$P*hk`Q`_cgOmVtul+cHf%csm2SHc^3pTAc2ZGv1d#vOhCSW7+=a7srpEP%A zs7O--AUHCfyqM4x@>Nm<upLKeA?1#kXqOG&DiUo< z+DdaS&0@Tcw3iNorM%8~&7@^^n3U1W$AL25P!hzUjfZZ^DG9=7LpHI=B#2Wspp3-4 z?87n$F|r?xTmm0GdZn0j(`Sdg*MUSK{t+W@9Eua(g;ZaxR98`>@HfP%4jnVNhXLSE zM)${*l*(75%dponPqTMKo^rft>fz?W`#*Wd`t*>I5Au$`jqn{M1R-z k0cfvf5Z*N@6JO6@WpZz9=UT#}Zm;}@Z8>k(Zw*eQUI~-@ApigX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..33f04f7bd172446c16fb9df46a34980c6eae6290 GIT binary patch literal 107 zcwS>*WME`~0Bs=Fg|Zp{LxHal%Ua!&dmBuDJZL?jz%=R0qKJD8NT6a4H^-;%MWuWf n3)Xs^(LLd*d+iAqUun@t9*WME`~fFleHjBHRg<9{fS4t;a~N8Yj3anA2Pa5qnOFYMYE&wvCf=GgXmavgFI zaQ$xSDi|}PwafhlXK&hscYH5ab#6S8!1hu_NZ@^*%%gXo|5v-dP1z&p8^v`lwy-_2KOpfe@_zL>_Tg&7etZ7Pp~eV=%}u;yP?R+Gq`)^&RN3-^RznQnR tqb#1YI#qi{XW0Gu;C*jP!4aLev%XI*WME`~01qH`hq4*}LqYfB-Tq8%%iFG8*wejI{?Lk~NnIWcNT5_XGcP%(G$mER zrnn>}GhZ*mj*BZZuS6j?F*8p?ldGCbL7|`sD3GS1lv*WME`~03#r_fU+6?LxHeciC9G8mV%uh?pd%e*|jp|km7y@Bv3Jjo8!~>qEfz# u9&0_$=$`O2z4WB0q_DHRx1f}dx3J_>VXL>s0g0-UqN1~67`}WJybJ*3sVO}G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/example2/example2.cxx.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_examples/example2/example2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9304839f7c9fe31438a9c0fd869674618ae90582 GIT binary patch literal 136 zcwS>*WME`~01qH`hq4*}L&22(nT!h!qTkl%a1{H?ew&obVfTsw36v^l<|XHprlcy^ z6qlrA=IdqHadBnll_=yUX69*Va#eFFC=?U{1=2K>QY#X33vyD8V)B$Ut%2f2sU@XF Lc?t&BT(w*PJ@F^J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_executable/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_executable/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..4abb35e9e0c100a5f0d9f824155ee0c767907411 GIT binary patch literal 95 zcwS>*WME`~0C^ymgR&X_LqYv&Eh*7wCwl(GtdK}FQpxddU?Pnp^<0h8sTs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_executable/test.cxx.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_executable/test.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2bfed5f51e4f0d9291ff8ddfea1653c8a5b6867c GIT binary patch literal 431 zcwS>*WME_f1IBy?24)rpDCa*Ev@3LEv`@DQ{`6&4!LMZxEho&$UBrL{D(2Kq3iLl@ zAaMNtZ%sb2NxcF$KKQcfv-KEeCDS^bP8qeh zDGP*zHZ=>0vQBF}rJ1s3fx~_i9l^(3Vpj8RUr<+_&gIePdOu0#eMZB#{k=Nj<|j}8 z;jCQXd`vUJX~mQYSNzl06z2VK{Z!Gvhs~6+g^%%a@BJ&k&t)g9WUvb6P`n^;;NHBm z5|Y=H{d1lz@ULb}pD^>PA$!Z49_uqZ^5YC7uYCT>SU>BckFuSbfWKmvbsa}3~!Uuv3rZE2Q86#Mio(|x>-ZU5?4b;;BHzt?=N zetm8IEY}H@k)oP8Up`r$$eL{A*r|1N`)8^DZ=Y`2!ZZ1Rcj`YmN9%&fpP0|IKG6gKdcMX8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/pair+int.int1.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/pair+int.int1.c.i new file mode 100644 index 0000000000000000000000000000000000000000..465150fe01a9cc84567568d9a098995bbb29b027 GIT binary patch literal 168 zcwS>*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~fLtIhfU+6?L&0;0PfOzM52;Q`RPna43SdsK?`J>;6?1rxIdU->@-Q5z zjuX6g`rT1}jeQ5%IlOa)r8PV~gB`{GuPdH4IU{egK%BeC#^SwIurZ9hd=oeco9 C7e7}3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/testfromauxsubdir.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/testfromauxsubdir.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b99a7e45269c0459bda4f433606b24d063b864fd GIT binary patch literal 197 zcwS>*WME`~fL0)W3}rL^hk_sT8m<5A=d=DNv;B9u!+wt91*};NNT6a)>e<~~ha3dl z9@fo!q;BS^{7o=h-f6-PahV%uT5jHT5V(K0p;cv@yv(`Aqf1{gpW9h+?eS+P6Yc6J z4?^~MW$gZ^efdDy`K8BpEX{1+>}{_&t*I~})4EE~;3n6`+;xhot|qb*UmxDg8h&Nk fY?JJkx3arU|Lwcs$H={O)`KgTXWRYk_lg7n=|one literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/thirdone.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/_third_sub_dir/thirdone.c.i new file mode 100644 index 0000000000000000000000000000000000000000..854fbfa360adbf53483418e19056135cf9300fd2 GIT binary patch literal 133 zcwS>*WME`~09PP(fwCF@L&4Fdn_cJ46j-w(Z`Cftvrn`SJXN!2Kmw)8nR&@Mr75Wj zHpL|=nfZDdc3fO#`I#vS#i_~pc`5mMsT!JG)m#b+1x1;8C21N;9;rDw`3i~YiJ5sZ Lc}kkrT(w*PsTe8X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir/vcl__algorithm+vcl__pair+double.foo.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir/vcl__algorithm+vcl__pair+double.foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..293fc206657677b8cca63b11ba4d32078ef9186c GIT binary patch literal 162 zcwS>*WME`~fFvMJgt8g`L&3KRtX^D~Zt~p!tuk@u(zdG%McVHekU*(&W?phmX-cYs zO>s#|X1-pA9T!(werAe7S#nN%aY<=fnuaD*WME`~fFvMJgt8g`L&3KRtX^D~Zt~p!tuk@u(zdG%McVHekU*(&W?phmX-cYs zO>s#|X1-pA9T!(werAe7S#nN%aY<=fnuaD*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~09PP(fwCF@L&4Fdn_cJ46j-w(Z`Cftvrn`SJXN!2Kmw)8nR&@Mr75Wj zHpL|=nfZDdc3fO#`I#vS#i_~pc`5mMsT!JG)m#b+1x1;8C21N;9;rDw`3i~YiJ5sZ Lc}kkrT(w*PsTe8X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_another _subdir/testfromsubdir.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_another _subdir/testfromsubdir.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4b866429f07072eaa25b256a3194e3d28c8ebb2e GIT binary patch literal 193 zcwS>*WME`~fJPwR17$P*hk`Q`_cgOmVtul+cHf%csm2SHc^3pTAc2ZGv1d3^0000000061|NsC0|NsBZ*Tag&GB}SRamiMHnS4E_AEJFu=vL~m(81{)m)R?zJe z3cBMvlV3N(iEe5Dlmtc-cxvEN- z7d(S3zQ>Iml2|OJJT4NU?Wn&KzvEF7$wkj`iKNb$5b+(`k*mkZ_rCfTN-#CS$|ike z`D6%z9};u#==&Kv(GOCLI{g!g+Cqn!s6B4HHB3lzkOr&pL&~1zQgY@1a;XZXx`G-yS+iMHDxWE@3M{w|x@;6<{rQu*+ar^%8`>o5 z`Q9M1T(=GavW~OW5(7{-sy|fnBF!rxl@)uK+Sqpj%)z=E=Z`gh)NzKEe;eW7%>`ZX zYMFFcpA`)BV37)#r${T*KCpEv$~I!3jnPSO0Aq=MT&tEWRk>i0$Eb>|`L}^~O;uc6ff_1fy0(Xa;2gY zUZG9xIp^(J*ec8abVNl(N6 zHgrsTI_9QANIa#+5k?C+Zgk$YF%HPvhklg oe|-IyadF4WXqo2s_?Q-Pkuq@_NY1L4BqRJJoxW{<10ZaAd?2NTHUIzs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable _sources/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable _sources/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..4abb35e9e0c100a5f0d9f824155ee0c767907411 GIT binary patch literal 95 zcwS>*WME`~0C^ymgR&X_LqYv&Eh*7wCwl(GtdK}FQpxddU?Pnp^<0h8sTs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable _sources/test.cxx.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable _sources/test.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2bfed5f51e4f0d9291ff8ddfea1653c8a5b6867c GIT binary patch literal 431 zcwS>*WME_f1IBy?24)rpDCa*Ev@3LEv`@DQ{`6&4!LMZxEho&$UBrL{D(2Kq3iLl@ zAaMNtZ%sb2NxcF$KKQcfv-KEeCDS^bP8qeh zDGP*zHZ=>0vQBF}rJ1s3fx~_i9l^(3Vpj8RUr<+_&gIePdOu0#eMZB#{k=Nj<|j}8 z;jCQXd`vUJX~mQYSNzl06z2VK{Z!Gvhs~6+g^%%a@BJ&k&t)g9WUvb6P`n^;;NHBm z5|Y=H{d1lz@ULb}pD^>PA$!Z49_uqZ^5YC7uYCT>SU>BckFuSbfWKmvbsa}3~!Uuv3rZE2Q86#Mio(|x>-ZU5?4b;;BHzt?=N zetm8IEY}H@k)oP8Up`r$$eL{A*r|1N`)8^DZ=Y`2!ZZ1Rcj`YmN9%&fpP0|IKG6gKdcMX8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..4abb35e9e0c100a5f0d9f824155ee0c767907411 GIT binary patch literal 95 zcwS>*WME`~0C^ymgR&X_LqYv&Eh*7wCwl(GtdK}FQpxddU?Pnp^<0h8sTs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable/test.cxx.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_executable/test.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2bfed5f51e4f0d9291ff8ddfea1653c8a5b6867c GIT binary patch literal 431 zcwS>*WME_f1IBy?24)rpDCa*Ev@3LEv`@DQ{`6&4!LMZxEho&$UBrL{D(2Kq3iLl@ zAaMNtZ%sb2NxcF$KKQcfv-KEeCDS^bP8qeh zDGP*zHZ=>0vQBF}rJ1s3fx~_i9l^(3Vpj8RUr<+_&gIePdOu0#eMZB#{k=Nj<|j}8 z;jCQXd`vUJX~mQYSNzl06z2VK{Z!Gvhs~6+g^%%a@BJ&k&t)g9WUvb6P`n^;;NHBm z5|Y=H{d1lz@ULb}pD^>PA$!Z49_uqZ^5YC7uYCT>SU>BckFuSbfWKmvbsa}3~!Uuv3rZE2Q86#Mio(|x>-ZU5?4b;;BHzt?=N zetm8IEY}H@k)oP8Up`r$$eL{A*r|1N`)8^DZ=Y`2!ZZ1Rcj`YmN9%&fpP0|IKG6gKdcMX8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..33f04f7bd172446c16fb9df46a34980c6eae6290 GIT binary patch literal 107 zcwS>*WME`~0Bs=Fg|Zp{LxHal%Ua!&dmBuDJZL?jz%=R0qKJD8NT6a4H^-;%MWuWf n3)Xs^(LLd*d+iAqUun@t9*WME`~fFleHjBHRg<9{fS4t;a~N8Yj3anA2Pa5qnOFYMYE&wvCf=GgXmavgFI zaQ$xSDi|}PwafhlXK&hscYH5ab#6S8!1hu_NZ@^*%%gXo|5v-dP1z&p8^v`lwy-_2KOpfe@_zL>_Tg&7etZ7Pp~eV=%}u;yP?R+Gq`)^&RN3-^RznQnR tqb#1YI#qi{XW0Gu;C*jP!4aLev%XI*WME`~01qH`hq4*}LqYfB-Tq8%%iFG8*wejI{?Lk~NnIWcNT5_XGcP%(G$mER zrnn>}GhZ*mj*BZZuS6j?F*8p?ldGCbL7|`sD3GS1lv*WME`~03#r_fU+6?LxHeciC9G8mV%uh?pd%e*|jp|km7y@Bv3Jjo8!~>qEfz# u9&0_$=$`O2z4WB0q_DHRx1f}dx3J_>VXL>s0g0-UqN1~67`}WJybJ*3sVO}G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/example2/example2.cxx.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some _examples/example2/example2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..9304839f7c9fe31438a9c0fd869674618ae90582 GIT binary patch literal 136 zcwS>*WME`~01qH`hq4*}L&22(nT!h!qTkl%a1{H?ew&obVfTsw36v^l<|XHprlcy^ z6qlrA=IdqHadBnll_=yUX69*Va#eFFC=?U{1=2K>QY#X33vyD8V)B$Ut%2f2sU@XF Lc?t&BT(w*PJ@F^J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some(x86) _sources/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some(x86) _sources/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..00c3c55554542e79b4662962a6cdd6fef5a60f68 GIT binary patch literal 97 zcwS>*WME`~07W2HfU+6?L&0f1fyJg@!a3d^DLr_6t8qcVte|rYNT4(^B_%#5GpQ)C Zs8XXOwYbDTB_$xSBtrqj)=Spp0svBl9-{yN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some(x86) _sources/test.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_some(x86) _sources/test.c.i new file mode 100644 index 0000000000000000000000000000000000000000..13e67d5e02a175458ed148c40dd3eb53a9503de9 GIT binary patch literal 84 zcwS>*WME`~01+S-hO!y|L&0a`hDTeoc;9dKi*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~fD9-G0mlDO(4%S@qx&@K`U9z@Ml&3_Q`r4}1~4FjiaD$Y9k~uU@Gu;x zjuU*fbng$wrTHHio7T);!mHzXGL2R9-`$zrQMt_$?`=K*?pn_vAAV?Y#-1v^iIt7Q x0{sErGncz-Pc6?s()g&6wc2fCZ{QZgRf+QXmmbWLyT9D`G;iGpc3&su*WME`~fLtIhfU+6?L&0;0PfOzM52;Q`RPna43SdsK?`J>;6?1rxIdU->@-Q5z zjuX6g`rT1}jeQ5%IlOa)r8PV~gB`{GuPdH4IU{egK%BeC#^SwIurZ9hd=oeco9 C7e7}3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/testfromauxsubdir.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/testfromauxsubdir.c.i new file mode 100644 index 0000000000000000000000000000000000000000..838a731a57497b72e63697f6d78ca17f94de2ed4 GIT binary patch literal 235 zcwS>*WME`~fYl5PjK)wl<9{fSb(*OCE^dd(kLb?Ct9za-pSGRm|k@4m_ zxoE|z(;V}bm}c;%RvJ!Pml*zAVCt+zd2H1y>s3-)mn4+y@Q2oFuD_be!}{rA&yU^- zj$uu{4cihYKYgUiU}erQRkixkt)`-Ftn%+q^rdWgS804Qp!Mb1R>O#hrkPxSDi4G( U9SH0=cVL%5{zt}Fdy*Cd0BWLVn*aa+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/thirdone.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/_third_sub_dir/thirdone.c.i new file mode 100644 index 0000000000000000000000000000000000000000..854fbfa360adbf53483418e19056135cf9300fd2 GIT binary patch literal 133 zcwS>*WME`~09PP(fwCF@L&4Fdn_cJ46j-w(Z`Cftvrn`SJXN!2Kmw)8nR&@Mr75Wj zHpL|=nfZDdc3fO#`I#vS#i_~pc`5mMsT!JG)m#b+1x1;8C21N;9;rDw`3i~YiJ5sZ Lc}kkrT(w*PsTe8X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/vcl__algorithm+vcl__pair+double.foo.c.i b/CMakeLua/.hg/store/data/_tests/_sub_dir_spaces/vcl__algorithm+vcl__pair+double.foo.c.i new file mode 100644 index 0000000000000000000000000000000000000000..293fc206657677b8cca63b11ba4d32078ef9186c GIT binary patch literal 162 zcwS>*WME`~fFvMJgt8g`L&3KRtX^D~Zt~p!tuk@u(zdG%McVHekU*(&W?phmX-cYs zO>s#|X1-pA9T!(werAe7S#nN%aY<=fnuaD*WME`~fFvMJgt8g`L&3KRtX^D~Zt~p!tuk@u(zdG%McVHekU*(&W?phmX-cYs zO>s#|X1-pA9T!(werAe7S#nN%aY<=fnuaD*WME`~fGQyFgfJO9{zJhW?ZlEf6Eg42PY-vrVX!!T_xr=c3`n42j<&|B^IpDs z7diBNxf%>icNPVAcMD$*Hk}f(YHqFU-q^>swakB-ogUTN%x#isR(jm*eD{uxa@JIn zokGDukBW^ZcL{ZCnNAYw7HNpk-?@lMX=2pGSus(QW=xs9Y9h}RZ?|dMdcIyKb(n5V T*WME`~02v^bhA*WME`~00$s;gD@F8{zE~{Y1JgR&Hgz%{%amwyVTJyWwF!-1|(21=kyuvz!Sb_ z&RjmhVk9)VRAiE|Q1_NCB0{H4cCOkfB4TptlX0*~qtP{wIYt7@HMTC*WME`~01qez0>l6DEesX;PU0@QyDW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_sub_project/foo/foo.cxx.i b/CMakeLua/.hg/store/data/_tests/_sub_project/foo/foo.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..3647ae9f711b5577505a5b48bab01117e56a6bdc GIT binary patch literal 203 zcwS>*WME`~fNmh(2VpXH|AzvjIhV>xM6WGaCvVFhRlv)6;B99Z0}`m1yUwf z%lqG=&aNI_Q@_c)o?g-E=`C(Db;h@#U+?pnUZu{g{2al@SuQ=*tmMH1xo-J_O7-)f zD|ZQPJmY`b@o7RVv-!=4>l;=t>t)z_?#}*Y&x7AqQ^(v;(vdmW zn@^|%v(tSA<2~TpyxWvzvcDe$uQ>rvzrFdy6gTT*WME`~fFBGDjN71W#{WQE-j~UXcb<81&sf-? zW`by9+m+9|R%S#ha5Fp$5)D=7NDtmW=U~i*)gdjrpD%asnYOxO>XL_6os)d4rn@C> z>AcRsczCXzz^zFebSocEaqH{qi+I@-z4EGuMTTa9{khF+%KnQxmFwpTUcCQ6rCqy* z{fON9?d#@STUJ;;`M{_!buQBs_N_aP-j;cgvVZ!r6?Y~`Kk63zJ~iz`ncGk484sPx y-md&{fji&X?OMvoKRg^aBaiGX|9{Q$N&KC~BHL2_{XP4I-{4*WME`~fG-RTOvz9-<9{e95Z|d%9GKs0o2;{Jx%$j|vNb8+7?424oV9_s^O_BK zYR`xNF#NLVo#d9~UcVdb8r^jgHASYeWQ6A4w`*@m2wMFvaiY-8bCy7u$oxKsvuFYL zwY5v9bD6O(_3FNNc;%sK50>3}cerS#wuk6kPu`TdwLX8#qCI}8?oJoC+VY`ReEa?W z9ThX&qJ$2lvR`)+n0R|b=Yw4@J^jDCy?g#)mgs8nWm;BFvNI+39DFV7;N6$a^`vfb z&4B}|4D%1KSr@P<$EYqPyf4`E+;m5acZLD`EDADq2){F0bY!mV4xe2r6Q=!`_Qt;C rm*ccGZ03s1rxaJo7*_qTpSbBsdObt6<{^0iYDSBy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_swig_test/example.i.i b/CMakeLua/.hg/store/data/_tests/_swig_test/example.i.i new file mode 100644 index 0000000000000000000000000000000000000000..daff17f4b6ae88304a01fb5f33a58fa45d4c1a0b GIT binary patch literal 177 zcwS>*WME`~fI=YdgR&X_L&2XrWs+ZYt~Yl)maysc&fV_D^H!Vz2~^C{O6 I$tpVc0m76?!~g&Q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_swig_test/runme.php4.i b/CMakeLua/.hg/store/data/_tests/_swig_test/runme.php4.i new file mode 100644 index 0000000000000000000000000000000000000000..57b7628ed2a6d044e561fecb1ed55ae82b6d8d66 GIT binary patch literal 746 zcwPbO0u}uL0RRC20000000OE200r6r0000000061|NsC0|NsAw-4lRy_mh2i!Hl&q z2fg^Y-@mE=00000000000001ZoOM*+PunmMe$QWV3YC_MQjJY}fiZ+SiSe-Qp_BH4 zRJqQTcysOGb6TQ_|9xjW388?Wk~@Fj{rY^LFYBt#vLpCaDT0mC2ukaQyb~S?e1)Lx z{zT&rH7t&gK^c#3BP23LI^c?;GW?$nimJYmIYGG@qV_Tu;J*pX)y;eM%w#qczKF z$9#}4qS@R5*)4*Ncj@fbpQgq6&hEox;Bi z;u)1Ou@Uyd9u9{T>FWYU#RPK^=-86Kjpig3SHx0$h91lvMbGe<#HS=eW%seJQMhT; z*CE4n*cb$SOY4?Nl-b$87zsojn&lKf64)u{8-7%&$-vr=ed?7zjN>b6<_6w%uH`kx z%j0ky*G+g+H}80CEGA)~slnKNKh^Yt;s#8qqz&4~FOm0ZBfWK58AGjNRY7Ox2Nrsg c`l~y@;Z`U!7Us3J<+{a`%H@~rKNiK!rHa61UjP6A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_swig_test/runme.pike.i b/CMakeLua/.hg/store/data/_tests/_swig_test/runme.pike.i new file mode 100644 index 0000000000000000000000000000000000000000..a7911c935b26e73cb9babfb571a85a647efc3b33 GIT binary patch literal 602 zcwPZo0;T-`0RRC20000000J5S00l+>0000000061|NsC0|NsA5I~{MLSOJp=% zdugh1n3+)k00000000000001ZoRw5fj~X!yz0a?(kPxutYg_fw6_r+0+V;@)K#wb- zkTH;ICYi<=v8d{QuM^KK!*--HylK3dUKnW(jlhCg6CmPEYm#4B!oHj;g|~rT9hL1BUU0tpgAPoRAr6A<&ojt0c-*P@sfFCn>`=7$6)G3a6#f zoHzcKehN&_K0a-UQ@_2`&$e^2y%Sq9QVX1QIz=t={RQ}3?dQnfP)un&=-PW^NmPzZ zB-5E@x8E|@6^w`bDGc`$Moooe>d#cjrTf3$%~W4_Q^%XS-q-D1tD+FSl^BjLr`{2! zqLOqXvhuD%9}G{c>8;GJx40ktEJEzBJsys%?Zd3v~t7ow{BaCRo%LF@w zgYr9dz?pVM!LsIMy;+DjnZ{CxwvoQMQw&2#R~LD7&fUqzIL;PlxRvR({td}t-Y%ra o_RH{%b*fL!zKrzXT)sQwrRC|vW2n82O#ftm0sh!`rxnE~v;Y7A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_swig_test/runme.pl.i b/CMakeLua/.hg/store/data/_tests/_swig_test/runme.pl.i new file mode 100644 index 0000000000000000000000000000000000000000..2940381fc2e869e46173e9fa0b48048e07ba64ed GIT binary patch literal 743 zcwPbL0vP=O0RRC20000000O4~00ve70000000061|NsC0|NsBhmZk6EY!YVf&ctT1 zzRWQuW#JA000000000000001ZoPAVHZyGTWz3;CWk(CO{1~sjE0da_^l;+U(K&4(H zA>$put=Haqybx6Nzjti28?uC$1K{zz`FL;U3f4;F1YBb(9M?L_uHeU3QM?AFbwl0> zj|6^;pzZ!f;|?{uxgbJ$_x?UlV<_^5|BK9wT4!hWj8kdH`7s2ssj~wR6 z#miV<6Lu-Q0FmMz<6OalIY{)%)Jl#N{->^u`NcQuStJ$utu2XJisltFo0x={41^k) zE3Q|WsEQ{Lri4Q@l(<%gZS3igN$pqiv?TPyTo&*lbg^$fbmot*nUCI7+}yt5O~ofR zK6my@XqSrGRt{w29I~Odq(U2#T2ARqGMK?|P@E^QiTRC+0e|2;fzCYY!zS^(2}^Io zQU}}dJr5HXwcoPVmsKo21dgw2XKS88#UeVgpCpxJGkB$tU>@dnRD{efVQ_+qt6>?xiqV;00{u(+RT5!q_p!8-n4>7sKESA3 zLInIu>jQ%*v$MZ30*E^F%PF2S*eT~59?#Tg;PHvAYKNy|pF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_swig_test/runme.py.i b/CMakeLua/.hg/store/data/_tests/_swig_test/runme.py.i new file mode 100644 index 0000000000000000000000000000000000000000..743e76894cd3d7b8d08a9d66da9e45abbe14245d GIT binary patch literal 568 zcwPZG0>}LT0RRC20000000H;_00Zm*0000000061|NsC0|Ns9Zi%{CDp3H4Eu@YRM z5ZBSjunV&Q00000000000001ZoQ+dWZ`&{oz3W#H4uYkqW27r~3D854L)OE#Lk8@y z4uc}ojW%2KC^>2V{U|A4Yd2szSTaREK0Z<-Xl#pf;K6lR^?Rj8@Ofi>GJ|c~!3Wj> zJ%kN{-{_ilQ`2hiVR3y8)&=B78-yox7#(W?Snpx=`1rdrxGP@`6)FDvv_47g*xI1E13(Ka($<6HQ7zMIYB-UWkZBc?z z{vv4gYta19AfIj}$e)Sc8-r4;1|NiyfeyPh@(aF??j8aK-2ycde#~aJnyb}D_xRoU zxcRckJM54#SC4gZ&h{ar*E(p>IrAaY2v!(U6IwD^GiuU*mPaX5Jxir;XL8uf;dZ8! zPp0Y3Oit1E?t=0A$iSw)S_U&Pqg?dlZ3GvwF9k|!3czIClrV0t3K+vg5|)zd4=J<2 zFFl1v>7(bV(1mW>+}#ethHC#x(ZnxeC9j^TM-En`JCvP;6rK$+kW3Ns_MD==)Lf|*e GLolK2_6J4) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_swig_test/runme.rb.i b/CMakeLua/.hg/store/data/_tests/_swig_test/runme.rb.i new file mode 100644 index 0000000000000000000000000000000000000000..7a06dee9159a339e7b0907de9980e91c6ece2d26 GIT binary patch literal 662 zcwPaP0%`pK0RRC20000000LG300h+l0000000061|NsC0|NsAYyvtITe;M$8Vm&~D z#-*=2)>xPT00000000000001ZoPATVZrd;r-Srg*Yp{(tg43dl0S|^zq#fDBWH%b?~DWhXGNm|P~FxiH(egHBJf(ck!-Rnsr zVGSRn+G@2`R@RtlJj`yE^A|Gkv+Zvo0|L^MeD-V_vv-f3u>WOKKrovEdl-HrB@%%E zay+Jl2Adr1t2^B54LIXO@Gd=_+g76GuH=8{8R9P-&<@^T^!gID3*iKa*thSK!j2R0 z3D!nN7rB%F9}V+}uZHJCsLX*ofD{@E!w_DDj=aBRr=@2SP>WKPd>Ln$=T)ZB-f0Xp zOJw%M_Pty3;mC*g%h=$+QWyv%IIOdx(xI9QejOwd3JTXZOFnst4`3~NM%8G z)*`=X4Joe{vL7cDb6vx1vH%`z0h2{I9r-kW1&%@YU>d-51`lp;1@C%Tx&~ck3i>D1 zFsGLbsMea6_g`^>z4tNCFmGur7;nR!tQQM*z;h{F%+hMHjI0hAo z5oV1(KB#edF(4tUM^gozUuPOxSYn($HZP0&Kb;T)zwX5O zb;hSod!9F16EhSz3MGw(ngxYZx}Q@=%n&lud_rFJl(S#QUhr3mS)vS)E6t4o%z!OzXYTusZ>5)_YUd) zAE+=f!dhyVq5HewkGlK|SusLpFYF|-bo7fa-gc?xcW*=q5n4HPEu7!?ZBLDyZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_swig_test/runme2.tcl.i b/CMakeLua/.hg/store/data/_tests/_swig_test/runme2.tcl.i new file mode 100644 index 0000000000000000000000000000000000000000..98a869c1dd56eb95e5851ccec870f77ef56f9ce4 GIT binary patch literal 862 zcwPZs1EKr?0RRC20000000SNX00x@?0000000061|NsC0|NsAiQYRRM#fjK7WPSk} zmKPxmlhXtM00000000000001ZoOM-APa8oDz3;DZLnK<2rj)9eN*rh^Q4VbnAaO_| zG&}2%DYG-%nOQ=F`0su5u`GmkB^2WIv!DHJXOC7&^Jj9sY58atq^_zxx>zfpUXaqd z_rZz4p2C_*+s!-8x2$RY_AMzB*sX+QV5DPsHB@iu{POH{Ms#KXK_DqSACS#s8J$nGJIgqsGmR*D+q@`7FWKh-ss8~Dh>~^n0N7^pY?B+A+wB;leMb4K6skUlhs_4w=I)RuKx3+@{t-X3~#RH z%1QL&!{M@E2+zFKEc45$%n+X;=YM)I`wztDms39(Ii5(#-jg67Ku1!`ZO!gE)nDd> zf(;@yb9%lO9bXwAKRlI>4I^-o<4N@IIa(uvAdxeb$a{1S)>&Se+k@codu|0Be%OF1 ziKZHAX7#AWXi&}6`&f`NlHno3J}9gshdUCcp)KHvQp12jD(IPc-(AISO(h*27Rz?9 zd^~*a1Fj!-oIHIRoANCtP-#Y$BiTF0CQxU+iseAcCkkY-j_LJcNO7H#E)QriWGI$5 zPk}|x7eN04=p*p4@$)$PX|h@lYuor;MHBfLIyrUDcGv|4C5sAKR}`_bP!)?{X@VYM zcIdvM^o%U0cJjg&AH)~=zvF>zGEMFB-vE$MAdHcD1dOJHddP#Jp!?cx64f#A>o-aL z9U!d3a(jZ8)^R+PxwSW(0*Efw?-YiYZj}o?COx-}FqXOcG?cTk!540eoxricAYyyM zwqs)F?2FYo+i&UG#zlvF04g%9LE|RnPC&o)fm_I@Rya6|a(PmR_UH@FkC#q$;Z-$` zL}{cPItRx>sT5WwXRJe%DXgBiJ%+FG7Z2zwPfoC2M^^Do~>uvma<<-OY?n zt&QO=gDMT< ohoP6jx~fTOu9DX1!_Id*V;HK>z>% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_system_information/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_system_information/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..f6ad87225e35350ca2be752960ccc8676c8587f1 GIT binary patch literal 599 zcwPZl0;v4}0RRC20000000I{P00*N00000000061|NsC0|NsAT76+dCJZFeOyTVWt zwQ&rAt1im`00000000000001ZoV}D$Z<{a_h2Q-vu23I9n!5Mw$u&;KnqXw0Tck*c zCA2{TjEobds`B4=N!m0`=(4QYctDnX&pqd}uN+A6jkCxO9~+aEUUjc@nVMWx4k4b; zhOx^N*OOQxq{lj=;-5+uuIT7 zye_+hU|l^OWle58pJErRTYu@=4@E55rq3F)k`WI>I^YPSpw`(ks|>IxYYg0LRYGHQ zUe|f`0BT|Ch4}=JY60_fnSoI-%bU7LAA6|aVU+aa;V=<#6vR>6nlRz_y+JH_()Whk zK9T10(e8C#0Xf0gp~9rjx!&%gtoM7&|H%7D4F7hK7HPX|F~3VM;&AoEM)Z~^ES8e{(VNJ$ zDDG07r$39Vxi%{U*7L+}CA(?WIMsJldMyQxXkSQ9*;jj+YHW|2>o()YlLi5%I?oif zdmqj*_FcmS7u)4}VojZSsQ&?RZmLzRoB0W3U}5HpJGU*SH7ovLp0wQV%`<_P<0vH2Ukr lFYJ;J;vtpz$^{bNC{Oqf`B+Np{nowbqu8V+@qB`yE} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_system_information/_dump_information.cxx.i b/CMakeLua/.hg/store/data/_tests/_system_information/_dump_information.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4cd751a165d1daba4cf33cb19df026542a8016c0 GIT binary patch literal 801 zcwPY^1K#`q0RRC20000000Q9v00@Tw0000000061|NsC0|Ns9X-G#xPMgTq0mD<0t zJ2>CJXPcw|00000000000001ZoUK)DPunmM{+?fP3mT*)3!OAg8lgx~K&k`-(K2ZQ zRJn=WSR{63JEIKszwey1B`u{QVo?-1_C5FV_+GZSh|)Z!;GX2!xGR`c88KXnAaR|o z`Qd>!F_%GdSlxQkd)g3Vcbz|y#}H*JI<6EK=8UJ*i=@y7qJ*d>2$E4B&bsHPO<*!N z4d>YbU}G!HJiFuL|NL=}O5KK{0;6&f6{Fe0QxoE?!4O@32wx!%*C0k45!-7J zBpa`X#FUXd#UjH>i_m?)EZH@ZQ)hMcI#uUqEJ~%OMGn5?Elo9jyG%}%k_v1tb1|CN z3SJ1ph_tEhBy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_system_information/_dump_information.h.in.i b/CMakeLua/.hg/store/data/_tests/_system_information/_dump_information.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..0eee7244f5cdfb6df60ad89b7718862422bb1342 GIT binary patch literal 136 zcwS>*WME`~01qH;gt8g`L&54h4C#Mm51GkoxxQR-hh<*K7nW%ZNT6a)@HwB;-k!d} z9p##5bw8Z(KCOSsSLfuJ^WEnk1hI9cKUu z3uG9OpumP@z`WlJU{?$(;W?-NBaj1^X52uu&H4-vk;tn;?uf#n?lQR9m{fKfjT`nFQPMDwY6bD=S8PIZN*N@o1eQA`*{g1)Ls zOHgoo?y&%73D$L*)#c8tARTTVm}rCr$l-w&O0TPyF<0P6QC-&sg6o0~UoVHt@8sM0@Ez`P)}NOOHTi&GpAsf{+HjJQLt=h?Gex~73iFX|)rgWWyEVX3 zytLvws^5(b?sJ%DgyI2s&^h0m=Kl|CkM}$2$Is)(`P4Vk6`WV&I)RCWq&-HXeFTDt zTkP}!jNpWwJ%S>R#FNMAkT2of1Gqi*(=Ye1c^A(cVQjWG9?B7e#>~tN1cuu+Je$n; zCQql4MduyKEauX0k!0nPu?aPTlnFJmR8Q*UoAadUM=paepiMxs{X(&9y7(LbwB zgOOqt@u0K^f)X8xqcPMQ(7+??ozxlN%%hrz`XV|g!9`FiFf7AHV2*dDRpuSB|4W)J zDP4c&Qi|MtW5ytxkoiBW74MnF3%Vb)s;m`7uABYN<)_Ea%lC4B%fi?vI_FuthUt3@ z(3GN5;wzWDK!g(jsLfNJDvn5pD6IP;nvF^7c7?&^GiW+K=v&hNYGrsy;DSWT5hzBe z6j&h$Wk8EyK4-5V@8@H3F@yIyEA22o-9f&*wn3D8<8z4n=RRU{hvqlIcrLL_2zf-Z zn5F6bOoDF4p@2*RE-{bk!mR7;6K4%}pB}=?TQ#V|Rs9e&(~z}Ink@?FMV&l@%4OVW J{{dB!bQ-Ilf5HF& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tar_test/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tar_test/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..741daf8cbe100b093133708567e650332484eda0 GIT binary patch literal 799 zcwPY?1K|7s0RRC20000000Q3t00_ST0000000061|NsC0|Ns9ryQSVB7;JcV%1Q^9 zQyKLbf-r#q00000000000001ZoSjx}Z=ygD{?4zMaDKpCYNL05fZ}4g3N#B`YSM&o zxL9(E&9Yv-8vpyvE~uz&sh0?0cAk0NdGVh5KZq3?VZuXJims-80r8ZVfWJkO@+DG< zfENZY`Fsw)81Pk5^w49R*ztKr!#BKcc2<=$(z_ zns;P}-0FZw2*(d80QwaHk#Oj2B#Eb#gc0@PpXN9sl8`DL+vsfYdn*Y5mjr=1B8F{- z<~Syl`V@4_O@1?_DqSuXNil^i$>(f}A&4hP_-wUcg(%@suT4Gbx^mYWHq;~ac8DrR z7H5fIkiazOEEP-s7fQibsaSEQ1tc`ATVmbCwlgM}ib|2?-%r5qgFTSeEZ?)8QACLX zHPRDNO1v-*{D@j4mI=D3Cvgc){ct5w_~o_G45Xoo>`hF za~SS!^dO{RT|}Pqa9-5&Vqd*w29%G zm2_krn>=2w#PdqT=!o9^f9ct)u3CYv3XqIaJMEMYm0{A;KUrI@q(StvhtH!9b?RgS zE;sf1DOcukz_HO|D&l3G4U zZ+8c8hh%@O9~T_Mt(0Yq3=lj}yqnL~^g d^B#rf4erMJ&k4vEev>szd+B*WME`~09hcGfwCF@L&2KJi|&#>A3i3=v$ppot92cb;W)>D1WGgWN)&PvGxIbw WxvIGo6pB(yN{jLo46M0oxwrs+qZy_E literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_target_name/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_target_name/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..40da3006a35ecbce910007f582973398a982876a GIT binary patch literal 130 zcwS>*WME`~04E^!g|Zp{LqXD))&OY{)nD!fw>v{`G$ltC-QUB21S;leYn(do<*Rp* z!&Ar0U-zT;8Q-f<9(nnAcIxZ-dY#l^@_H&BnzbZsiQ4pODr!%ch-D|85>ppX6`R74 K%8+g<^9%rdZ!C`h literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_target_name/executables/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_target_name/executables/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..1e25c57713893f6bab8bd2dccd28111c82fe7e4d GIT binary patch literal 107 zcwS>*WME`~0Bs=Fg0dO^L&4l+o{ZX`t(gX)UKamXgd1Hw#v8|g1WFTAQsPr9Qj<$d b5|eULH8N6ja`NNL^NVs)6p+|@$(mdMWdR|_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_target_name/executables/hello__world.c.i b/CMakeLua/.hg/store/data/_tests/_target_name/executables/hello__world.c.i new file mode 100644 index 0000000000000000000000000000000000000000..641569a761d94e87a413c58c7c0b0f04187d723d GIT binary patch literal 124 zcwS>*WME`~02?5-hO!y|L&4PW2flgvpPTt-_wmfUS!L5;KYJYm5-3&9%uCKGO-WU- zDK1IL%-74X*WME`~fI|!njHjV&#{W?8``To^!pUbGvu}P<%x`PwyKwy34hAGpF=y_?{d`RZ z0>{edJ!;}JkeI*FiCsxV=k0?l0$pBAR}_v(9NrzRa_m$>$K$_0>%QNOtt{|3bD;Zz zShuf(z+GZX$5Tg z6OU^iZIOIZSF5$kt8;di_Da?`8P|><@<%1UZ#Xnz^=H|V^Hb6y3^VsH%j)VE_W4ty r=c}!jT^3obvn$bivF{$AMFu8nI{OSi_dkqsRX%MW|B1zPch6n`*@$rZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_target_name/scripts/hello__world.i b/CMakeLua/.hg/store/data/_tests/_target_name/scripts/hello__world.i new file mode 100644 index 0000000000000000000000000000000000000000..c5d451c38c61b0b6863ce4610f7ca8f0269f7f74 GIT binary patch literal 95 zcwS>*WME`~0C^ymgR&X_LqPzKpCa>-tISEPX$HFTdRK)fdg?MDfl_5f{iMu1{o)L+ Y)Z~nO1*MGCoSb|eh4TEOoD?N40RQ3_(*OVf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_test_driver/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_test_driver/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..64bb349bbb51ba4fa403038c8542748e32820049 GIT binary patch literal 294 zcwS>*WME`~fM*O0jPIaq#{W>Tq4@YF&MD5n4ep*${dLgd`JK}(FByO;ReW z1S(YzdMy2`u{5mV*WME`~fOa5W1Z6Y+hk{)W8+8}%`E7m8Y=WYF|LO_RA&(UpkU+&8*B(c%Lk0q_ z-z|>@Xqx0sY&yLqZi!f@XBNB4)RRYgE6R`O+&OdL|Np(rZr@MX9hhA27r&I5(bf3=O hSkiurS#8DS1+^c$rKTq>JTOy<$F25?c*WME`~fb9$njP+19<9{gVUt@b+d)C9MdFDSn&5t&pnRQ3!9s?4nm@~KkK39{0 zNc;QmBI?dJE;)TJx)$qyA+^%*%1ec`9Al=Bcdggin{zrEoZEK)q4n+UA-nc`3FX~c zI`x&=+j$yq4_v(_`|e!F;@3;hXgoIlShH*HBma4qUaFjuI2ATSwBz>5gcJn^uS-Y8 zPi|l|_>q-$U7Gjxl;5u{PXB34v6qYqZ~i~cK_diW1u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_test_driver/test2.cxx.i b/CMakeLua/.hg/store/data/_tests/_test_driver/test2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5bdcbb59744fbd0b6d9821ef09e009c74c0a4434 GIT binary patch literal 194 zcwS>*WME`~fF>ZG4P`U_hl2H|rCoaF-CR<+J5Fo3O;-}7V{kU+&8*PerXO$Iz| z?`yl*oDa1~JSu(BtO c*CH>j`w{A!ys=*WME`~fD;T1j2Tci<9{e9-ItP8!Q$yY$2k9pXlE?@mtG$k1|(21r?>AQSCfN4 z+k3mC{Q@tR1;m|p&cATiD(Chr?w6;|WVL^|8*RFf&vAO$gAST7FaZq}I}z z{3VZ1nD{xYVp%mwrDZ~`j1BW1!AW_xML#~CMHGtqB6 zuI8G=iQg`6GVql@7P@k^$7$_$!%s4^&#UWJPB!A2y>4GdlkUfRt%+-XTxmI}5}fk9 yqVJPm#Pgd>TrZgxx9r>eP3_0hB*WME`~05u?1g|Zp{L&4&MvTyG`o`0^{tn%XIUWr0UYH^8c gMM+U&a7k%enuaD*WME`~0CgZ%gR&X_L&0x{6svsoMP^gwghaKKdmi5pEOTW*0;QRGB?={}#U-v4 gB}IwBC8cR;MjD!2)m#b+MX4pFMR^K_)?Bq*0Bvj>%>V!Z literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_test_driver/test_extra_stuff3.cxx.i b/CMakeLua/.hg/store/data/_tests/_test_driver/test_extra_stuff3.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..196a1119225e51bc11ed6bd7c1edcab834b486e1 GIT binary patch literal 103 zcwS>*WME`~0CgZ%gR&X_LqYOdBTI9K>uFCPa@;Ii(j%#3HC2xR36y5$l_->?7MHkI hloTZfmz1WZ8Ea^ARdXpQ6s4Aw7Ud}zT65KM0RXGw9m4*WME_f1I7gm3@o!4pq&3uzVD(19Kj?Zs0 z5IK7Pw`SIMiOPbM_j!VX!bVeAO>b|~X;GZ*^3rGJO`)&5*X!o~T%6N zoAY>{!n~E!+q$H78f#aq3{3S5c%GIkDPkM7>z+l-kA2HeZaSh7&|6lUk!C%!TV?r9 zOaIMxr{yk}3cQ%=d-2b!M|0e6>lS--$J;W?Fr;XAUXK^BR5=y=hjZtt%74O5ch@bb zUcZ6)w{}O=LGub5r%4Cxer7D^Svoy8OtbOtUHPU-Iz?>NJ(YfTej3|@+JwXRCC%J$ zQNZ`pQrXj-1`b(Vrx?^3KDE3nKbx00Yr>+~=~uYFzmnDa;u|!prBGzOu&(-Dm(w%& z4}J){()u!Tt3iE|)t%@!=bjare`#No#;(NmUYbXSN2Z?XhkJhin?en~_H!X8Z%%UH zbzC8SY}d?B2Ak401U)_LdTPzHrFZ`q?lM`mEB|fZmPK!l=KHJ@Su<~P%)I5BT35&# Stg=p2Za>BKhbbc`KnDP;KHM$< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_testing/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_testing/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..12d71657ed89e2ca3e96800cc3e88914f76c2b3d GIT binary patch literal 520 zcwS>*WME_f1I7~!49xo(pq&3uz@Pad$@Z=Bse36mo|Jb~ufDQ=T`~g_sF<@i_;%i6 z1A*G-+HSsb4y&5B*l#F0kb9%3^FYaE^^^m*qrN(&_?WNO_`mP)(oE%C?YF0u8f}b^ zA5Z6-*SeKK%}RN;dv;>(l|N*2E2)xWwXx!}d`$rqUFPIenf z*z9c<;*OG1mip24;K4KHt9)9Lvp<#XZn~KBF17NH^`9pZCTCvQZ(3Ur{-$0nDMuqi z>*{r;nsvNw-)=~S$8yg#5J*p)bm!^q>>DbQ-JUM%9cOUu+_?V+cd>k`ZhxH1yNroy zoYp%7qrbnHVJ)z3)%-t^XVfn?UzAz(%{AknhQZcz%@_3dsC0R}xh)=8=pR(^RMx&C zIX_rvp}26tg{1wu?Yw%{H$dS#};cgr#seUpEn4)uFS^#==agt z)!+7fo|+gc%Xh9rQsUgze*MKeCAPhbeCOCHzVM#>^rzWJ9_OgNY@YjdY4>~a I%cPG309B;$wg3PC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_testing/_dart_config.cmake.i b/CMakeLua/.hg/store/data/_tests/_testing/_dart_config.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..830f4c060800189ea151a7ddcf3df982be15b08b GIT binary patch literal 414 zcwS>*WME_f1I9Q82BxVDP|klS*r~KtaPJg9k(sMmrF!oFk!=utI)?!XRLm(2^vyq{ zAhGYa_PrOb`p0(6EnB^9wMwp`!*d(KEg_z_k{V|Hc;CJ&BX?U%%LkkHpBZ};M855~ zd`M)0&Wp)8DU3_a5^l$?T@$)%c|iq_eD8AlRoL^q3@@;uL%-#jy3Akb_M zPffy$%Ll!Rr?Ji1cfB-WNv?K!;+?4Z8+ISq7qqEx^6p}f53_=g?0L9>TeU*cpk=dM z&Dt+u#X{9p0ltAFnPw)c@v!g|Gdk*|*Zk6Rthy-93UlT+BK>w6AFN~o4i z-O{gTk*smL(C?@E!OZKkmgSti%%H066Yo`KqIpi>aEtnj`x9Lsy#J!{o!NZ;K4$>? C2*DKq literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_testing/_sub/_sub2/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_testing/_sub/_sub2/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a2e4deae3389ce675009cf0d271dd95cbfd7393e GIT binary patch literal 149 zcwS>*WME`~fKVXLhO!y|LxE^}?&j@B`J*n)4uAc2UwH`6d)Yq>NT6a)@Ux(>0w2#n z4NqOYhe6MZN(wv6dkaeWcneED6<%fNOnbIeTJwNJ)k#s&SqY(v>kcY%R8D;*z+rsv emC0zj8r8hJH literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_testing/_sub/_sub2/testing2.cxx.i b/CMakeLua/.hg/store/data/_tests/_testing/_sub/_sub2/testing2.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8099a5fbfa122582f21a39f127beb2a3f9954b41 GIT binary patch literal 93 zcwS>*WME`~09hcGfwCF@LqSvd^WB+`1vmH|dJ)OVy4bBaY>Ea05-82gD^bWz%*<2J X(B!J-Qcx&LEh#O^Q!udRs^tOzndurU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_testing/testing.cxx.i b/CMakeLua/.hg/store/data/_tests/_testing/testing.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8099a5fbfa122582f21a39f127beb2a3f9954b41 GIT binary patch literal 93 zcwS>*WME`~09hcGfwCF@LqSvd^WB+`1vmH|dJ)OVy4bBaY>Ea05-82gD^bWz%*<2J X(B!J-Qcx&LEh#O^Q!udRs^tOzndurU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_try_compile/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_try_compile/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ba02db95ad6d0cb982378a19aea8eaec2e4d07a5 GIT binary patch literal 1563 zcwPY;2ITnw0RRC20000000r9s03Ejg0000000061|NsC0|NsBpb*oWzajL=p$0KLK zhh!lkF)us-00000000000001Zob6fLPU}V#efL+43{n#b1=`2cCu5xAlEkU)oD(D@ z%O@F#h2x2Q;UbiO@1F7aK6ac`R8%St1kGjbwb#DP44Iq8pPFh9?C@PB+nwj*p(ITe z)iegSX4#HnS(<617uQcP+D1=92_b!q1~bD(=O1i%Psb3NYL=z^p`n4L&2AjcGz}BU zN)+KR_DFypUC&QK{7r^!fU`$*7p!c8!C-?xmDE_#CrwH{=!}7c7d)XDM=^?$)e7S^ zUJE(3@u9Y>Y_#PZ6od~&wb6=fw{EaT_-%(*FsN9$*Q#zJHLJ-ryP==2l@evy_hK zb{}Lpcl`*iRb>w7AdpNoX11cwtWMQRM5c-rI_+~C!7x39B7bO7gCpDD2RMmP7Fh7`u4BS6_O@AsGL)P2VGc85@Nzhx{;Rb%@vcWxAo zR&0&2u;&Zg`L39{at*8~9~fhE1=ltvmnzx48;^6qV>>_|u6)TC8WK?|aIGjA9%gDM zwa+6X0^?)a5;BKH^B}b}9Yquh4(SE0sn)_Ub@ zK;k@S1sO^E>*r=9)wDY!S>Q{2T4QRZE>T35TjI2;ARSfHU$kO}pI>=jB$d8&CRKII z;EQEhSPF}>;`_*k%TL6OTp;f$AR(v=6T1+^!Wj z&s$fGXbVOoA=35b_@+@)W|r=Z4b!opwQ7i^^*@euy38~Tdw)44>%_;=CFM6Jp%O$M zd{`^8!=u&PTO;N?-bl!=5_y?Z4B-;G+mR6B;Q~5(Bw^O;kHAG%4fhXbgG;#b06auMS|)7V_hN+(B{1RaMfqIYe&m4ShD9_(O#3E<0BAZv;rSq^m$gRtGwW}>_CEJe$8TQjuov&K zhdZa&cD|Q^vjaZW10LGn4xIHlcJYQP^r^f&ujFG0fbIc(=hM(4x&SDxF{+}M`E(mT z%hRDAYnFL*m}XhvZgI(z-0|W$SmxU5P!(Y1boenQMb948?x4|vJfN)z5Zw(~=`Z@D}F zdYRI!br>~Xsob!CqLWh1* zd9=3f^GN@WxLX_V!l(sDDfpI0kXl9bg=Uh{P&nJXTBu2LhQARbz5MZ2|RZW%J N!Hdk2{sum729E=71E&B0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_try_compile/exit__success.c.i b/CMakeLua/.hg/store/data/_tests/_try_compile/exit__success.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c8f9d2e9d251ce6c2bda8a144c6a101552838697 GIT binary patch literal 139 zcwS>*WME`~0B<1ng0dO^Ljj-Ehut%7_pMP_9{zmu42_dNF6MJHAc0cl%)I2B(v(yM zo8pp`%zV8JJ1(xwyb^`n#LPSmO|EJ#1%-klpg@|2QbuY{PQF5Ueo;*WME`~03RUshO!y|LxJVtBP^5Z|Ls)YaQd8pYWjy8HmwI3kU*(&W?phmX-cYs zO>s#|X1-pA9T!(-UWr0(VrHI(CRa6=f*WME`~06rk*g|Zp{L&3J4Ggtmk&;MZ0@MUY3?c9RDNkWeqkU(i-aY|ZFb{3Gz H$>IV4Y%3V) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_try_compile/pass.c.i b/CMakeLua/.hg/store/data/_tests/_try_compile/pass.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ab79d1cc93e2f0b2d0643ce2e5a496729f84bcf8 GIT binary patch literal 98 zcwS>*WME`~03{$+gt8g`LqYF3cJ}+rPnR0#nT09V#(z3tdE_?(5-82gD^bWz%*@l! a*WME_f14bDj{>A|1{D*?2_UZS3I+-q+{o30l{N&Z8Pr@9(Ga!MAIi-Q8{SF%l z?D?%7*63Ws`GHgQ%LFgq0I3NUk$rnJc~-{Wi%U+B>}eHGe*Ic>BRA*;h}! zO%RYMIl&^8k=p;j*WME`~fMg(E3S~3?hl1@DyEKz@wNe6R&$@U>V9Si)zgA5QNT6cQjp7GWX^Ej;^#G$EsQva0CnTJ7sp1!Bg uc(-yNY2V4lTK((y(ce~8KiM@c62!|7EIxmkf4AL)9n9k549}NaOauTS**`h} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step1/tutorial.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step1/tutorial.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..df430d3f835a3af9a8d0b304424d364bd3a1dcf8 GIT binary patch literal 373 zcwS>*WME_f14dH@1}0wyDCa*Ev={!{Q6h9+ci*b@uef&W?h858ZpVNGD(18X`eq+; z5ZL>EeZ>-%B+kI^RXOl((sV%oR8mHjj8 z zQ?&S(*wa35bz`mY<|xZ3F^kGf-xoinyqB3wXR4F>`EvS)Lu?gwXD=Mwb=&6lEuHx1 z@|P>NRnFgY^z(m%%aJzkd;e|uxH9vc+`~I_%F4G~)Y{H-v?rA5aBykCMZ@jy^kQ~+ z>ttq1&U5HJ)6`~RBN#nFc&F3Lxkd+DuQTM!>ek6$JAZI%x4HE$9KE2hu-bnoz=EqT|T_NE6Jun#k2O9@*H9BnslL;Xopz07F(O97ssIjlnEQrMm z6#bQ!o2*#Ve0f)t@HzR{b+-1`pC(b;=}~gnBa9Y7j|TK!LC;(V?Wh{(%`DMFSmW&` zrTKlntiD6E^=S7d41>{+f+K(BiGGmSqjD^;A}H3AQ=?TYcB4UH&>`b!pcT@qXc(Ba zV0G^UwBUTrRn8s|e0nF;&U&&3g>&lzHt3}|l9L{tWMTpk-8}y+i@S7H(M_=}S1J9P zl`kKU16WOrMYj+tnxk*C^|HKwA041m0mk_hq85soCvXPwlna?@I^QFVO&buZkt4^c zV2E!6jJYu8y^zwMD-PF2m&II;u$7DrVp3?uF56-k=<_K=J~vNfh#yFejV|m6dte{9jhgh nV0_-5fAr}GE}Fw3A&!|HIx2;Fpsz!i`km18Gzs|&Ts0)4M%w7X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_math_functions/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_math_functions/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ecfe39ab8538ee9736974565c487c9a2f855d063 GIT binary patch literal 103 zcwS>*WME`~0CgZ%gR&X_LqYr|%iT9k_U^Qtu*AhyV2=rtzrZ{OBv6`|k`kYjnN*Zm hRH@;cSd!sZnwMOXnV(mzkXu*WME`~04X4rgt8g`LqS1@!jmnnO1X?&DKi~H4cRxZNVvp+1WHr#OOtX^6>=+! O3yVrLpu7rAYc2p6E*ZW6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_math_functions/mysqrt.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_math_functions/mysqrt.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8425085e12198905126d6926ad3c7217f082625b GIT binary patch literal 353 zcwS>*WME_f14cz4{=)#}{D%UmgOe&k|JSe_H{jTJa`Ns4Ut=w;8IVB5oY272dCdj_ zdwy%XxlBE=nA7sflO@x=_I~BBQcP$HO%krw4RrleEzbUF!kXHi^7P}cXPUVRd$sOe z9(23(uVR|;l$z%u^{l}YwjEpl+NI+xo8_xLKU(*<+|jhi=5)O$vhZZP5zG3soN@DS zyB*wi%JoL~r8Z^d=l1o5Q~Dy!#lsn2aAmgtWxP4Z_<_{gV39eFYRT6&KQ%V9dg|=_ ziE+xRg)zq_-InEhvE;!N)#+kOcuekI{ovz#f!Q%tHt6irnJvfUqQ9M9S{G*YLON1j zY5D2pjW?^b-PiQnt&*DZpf)Mu&YhU9>DLS+jE?6C-Ztwu-*n>I#s^wY{Wmp+om_6a oz46hq%DEdv@A)ZoFMjmkxXS9huSUzozt{S0+53b2?dECA05YGW!2kdN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_tutorial_config.h.in.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step2/_tutorial_config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..b9a207a8bfc013822d6d7ee58f7c6a82ac134f72 GIT binary patch literal 181 zcwS>*WME`~fKnjd3uQC@hk^%>)Za~ev~L09Z)NK(SrdQlu$*WME_f1IBa)2Bz~2P|klSsK}@bnzT&3{?n1$GdwrNC|!w)&R{?S6?0mHahEDUl_tw+M)m3;;utmGG9o6R*$dBHc#n{$+M;(6!`ypUFh<;eNUZ>$}8vXK3$x- zbpgLyO64hq>sr@Lm}duYFFaM0KGU(k@utNp$&95s8hj#4PG9qxJZnPYDE4;hrL4a4Q=cg1smUGmmNVr0eEne77qeIA=be9`?DOGCN=ECX zWe(S8^suPAcyLRK3N;;CWW^^fpcZnN_tyOPr>$-ZF&tFXc(;Ikd+8U(ZBNe?_nOEh zoIiE5?YVS>LGA{QAAy(q?Ur2EXgnUOmaD(|;N$49?t@=SEhN{w{hfaDi~X4bo0->k zhu@wdEw$PDK;E||@mv`#d5Kw(%T-Ih-RpbMc*WE&*kjK9re%ExZ39+U1Q=Pfe(pMA zZ=+M=c4prhx7!b<@Z2<=CiPAHp;V3i!qd;s>g}H<-)yksztEp48w%sri#$|t-0fZV KL^^WogLwc_SHDUC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d9967f26820533c54f3688946cb978baaf9e6356 GIT binary patch literal 773 zcwPYo1N!^`0RRC20000000PAT00!s)0000000061|NsC0|NsAe;X8M1s=SE$V@E1$ zGHv=CWDq+500000000000001ZoQ;)DPvbBUhVS_mqb`SbCAtNP%U)0^fi0pRO41da zEH|09UJ@s3I~0WY?>lzdv_b8{DVq45nP)zn6e|CNv4M6}np_Ez47xvkng+3cSj{4CrXw67%Hi4l~`Ljqcsr*D%q?n;J+q)-WZbv)+6v^{{<$=fuT z-1&oug_Bt@@Y(e+c>l3&z`%KQS6v}nP4(4q+z%cPtF6=(z>~y5%!TCY6^ufxxsa=P zMRnM=J+XkjnRTd+&ob3hjo*O5DQv4^hx(_rt3YPTqFLJA9C% zOg3ANLTbZlFjWZc zZS8i{4{rS^tcL~Hei+dlBDzR+6FNKT&G6n2zr0mI-P(_}84Xbp7D`vBL2WO9SD9>M zLffGyITdHwc~PVyc9#uQDP6a$bXR#$(puCNoL}txg#rCn8GG-}FAjJP@~k+&X!_EO zok}yh_XR4`=<>#cs-rec{U91rQ>OheWPyJ>yYC0gf0zb-Xum|zBBju9QQxsG)QZc5 z8X$2=bv@(ed#4W&j<=GU@$_@ZtwUmj^Is?sWIh`9GgiH~Fk}4AIGdcE49$su2GH4CqKX D@^f*~ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..c21680d5b3fb8c22ab8957de281c528e63341ad5 GIT binary patch literal 167 zcwS>*WME`~fOH`4hO!y|LxGM+XoTIZ=Ebw+gXZ6x%X|8Q*zZUNBv3KO+sCu>{7D}z zFP&9aKKSaKEYLpdt#|UwdF`+hYjyN=v@UwDTXEsZqf=+J^*qm<47|Wm$Wv6#%Ngbn y`udTS%%hjjB_6$ezkI@!naeu^-amW!xNBLIKC^3WT3nG|rq?PpafUoE{Zs(m2t-Bz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/_math_functions.h.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/_math_functions.h.i new file mode 100644 index 0000000000000000000000000000000000000000..65abffa05dcefc777aa43e450e1950f37beb180b GIT binary patch literal 90 zcwS>*WME`~04X4rgt8g`LqS1@!jmnnO1X?&DKi~H4cRxZNVvp+1WHr#OOtX^6>=+! O3yVrLpu7rAYc2p6E*ZW6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/mysqrt.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_math_functions/mysqrt.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..8425085e12198905126d6926ad3c7217f082625b GIT binary patch literal 353 zcwS>*WME_f14cz4{=)#}{D%UmgOe&k|JSe_H{jTJa`Ns4Ut=w;8IVB5oY272dCdj_ zdwy%XxlBE=nA7sflO@x=_I~BBQcP$HO%krw4RrleEzbUF!kXHi^7P}cXPUVRd$sOe z9(23(uVR|;l$z%u^{l}YwjEpl+NI+xo8_xLKU(*<+|jhi=5)O$vhZZP5zG3soN@DS zyB*wi%JoL~r8Z^d=l1o5Q~Dy!#lsn2aAmgtWxP4Z_<_{gV39eFYRT6&KQ%V9dg|=_ ziE+xRg)zq_-InEhvE;!N)#+kOcuekI{ovz#f!Q%tHt6irnJvfUqQ9M9S{G*YLON1j zY5D2pjW?^b-PiQnt&*DZpf)Mu&YhU9>DLS+jE?6C-Ztwu-*n>I#s^wY{Wmp+om_6a oz46hq%DEdv@A)ZoFMjmkxXS9huSUzozt{S0+53b2?dECA05YGW!2kdN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_tutorial_config.h.in.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step3/_tutorial_config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..b9a207a8bfc013822d6d7ee58f7c6a82ac134f72 GIT binary patch literal 181 zcwS>*WME`~fKnjd3uQC@hk^%>)Za~ev~L09Z)NK(SrdQlu$*WME_f1IBa)2Bz~2P|klSsK}@bnzT&3{?n1$GdwrNC|!w)&R{?S6?0mHahEDUl_tw+M)m3;;utmGG9o6R*$dBHc#n{$+M;(6!`ypUFh<;eNUZ>$}8vXK3$x- zbpgLyO64hq>sr@Lm}duYFFaM0KGU(k@utNp$&95s8hj#4PG9qxJZnPYDE4;hrL4a4Q=cg1smUGmmNVr0eEne77qeIA=be9`?DOGCN=ECX zWe(S8^suPAcyLRK3N;;CWW^^fpcZnN_tyOPr>$-ZF&tFXc(;Ikd+8U(ZBNe?_nOEh zoIiE5?YVS>LGA{QAAy(q?Ur2EXgnUOmaD(|;N$49?t@=SEhN{w{hfaDi~X4bo0->k zhu@wdEw$PDK;E||@mv`#d5Kw(%T-Ih-RpbMc*WE&*kjK9re%ExZ39+U1Q=Pfe(pMA zZ=+M=c4prhx7!b<@Z2<=CiPAHp;V3i!qd;s>g}H<-)yksztEp48w%sri#$|t-0fZV KL^^WogLwc_SHDUC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..d0cc7182b0ecf3c2bc7a0dc278817ab5fbbe9115 GIT binary patch literal 890 zcwPZ|1BLtm0RRC20000000TMz00$rd0000000061|NsC0|NsBquhet#TrnyN4C}fH zNG=iJ|7{fj00000000000001ZoQ+jYZ`(K!z3W#DygtYa)Nu;r(o3MaYU(zQ14%C0 z6G2O3i;W}-B-J=D^51tzS(X(f+a3&ooHxVw=F7E`zc4l6CykLx@M7Y5|3H!>{6?jP zte|Sj4XUZ9@eIYjhf%y(-LYlxbrr$ooBKU*4Lh>(xM@VKR(Qt!MBh_t5x!Rv6NX;puU*rm_B?y!o$7LMo-g{ zKj6emt%-G^7&;^P_MI=m_mJJLZr%i05)KspxOdcbE}J5QM}$Tr$VP#Dtf1s3@5y?y zwqJi8hiv(C86;m|v?jDU=A@IGwSJ#>k!Pr2D+-Dt zq2`)WCrcu*bvc_aNhwg`ji`2-oC##_H4#jaLS^Wk;xQM-_W(xY!+o^+8qO0Iuh!8# zWS#?x$~IjQ&EkE=#PuLAo}?_+CrTGo@I{2MpRrqfl-JjUdUCNlMb6Ush}&a zWoGGX3**M7`B4-F-BUxne5h*)mI+0TOE&5%|86;@8CL2dirYme-B1pj>J&@|O`AyPMM zpqk1h%R+nMQA1sE67c?N=-+6*Lnu+Z@1s-?*RRA_J8Qp6sn8Cg84Z7p$_!HN&?JyD zaUVv>g7RWdK^(IvyjkA{kzGJh7~559mkGf?O#f{cayM`p(wNw7QSwwtJ8Igl7O{P@ zWwV)Z1iaSlXR@VC6$FL4DNNV1LnU)r*5d=Ap8K4%=VJr^kFMUApaXetX&WC}F0F&> z`61t9F-YcyCL^~Su=Riq*R)bwjh#6E{S}PpM}IX}G?S<6clQ2WYnYuIX4Bbhb_t{7 Q*P5rZOS?Y)1CkP7C|UZiJpcdz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..c21680d5b3fb8c22ab8957de281c528e63341ad5 GIT binary patch literal 167 zcwS>*WME`~fOH`4hO!y|LxGM+XoTIZ=Ebw+gXZ6x%X|8Q*zZUNBv3KO+sCu>{7D}z zFP&9aKKSaKEYLpdt#|UwdF`+hYjyN=v@UwDTXEsZqf=+J^*qm<47|Wm$Wv6#%Ngbn y`udTS%%hjjB_6$ezkI@!naeu^-amW!xNBLIKC^3WT3nG|rq?PpafUoE{Zs(m2t-Bz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/_math_functions.h.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/_math_functions.h.i new file mode 100644 index 0000000000000000000000000000000000000000..65abffa05dcefc777aa43e450e1950f37beb180b GIT binary patch literal 90 zcwS>*WME`~04X4rgt8g`LqS1@!jmnnO1X?&DKi~H4cRxZNVvp+1WHr#OOtX^6>=+! O3yVrLpu7rAYc2p6E*ZW6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/mysqrt.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_math_functions/mysqrt.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2b510aec1b4c5dd1777864ec11ba26bf92f2a414 GIT binary patch literal 471 zcwS>*WME_f1IFnL3`{>5pq&3u@Y(gsw2bx2IhFDcK3bhCbpF=n!^VIFD&|ZL^6kHD zAhPFqcu&+uuUnVW_^Z9dIoFC=G(2b!U{`r^%rE)jjmUb33# z#=`nb*M&Y{s(!xHS6O$jn!MMFM8a+lF`b2DqK=grSn%k=cKQ}4-#s)Q~MHT zIrG@oXfM(b6qk+6I^e3j^})~G*W=~(@BjZ}+kvxZd6Hb@_t$lK9g8lI?<`U}+nyAf z_r7bzikEAz>^rHMD*PwyW5O=GA5Z4;95SgWY%#a!*dYj zyL~(BkYA?XszpM3=17L6v)6C+>ozUCvo`2<-oN0Fcj{BW`3EhYv-CoY+0CDYXWlG- K!+$dUxgh`w+~U^& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_tutorial_config.h.in.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step4/_tutorial_config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..abf8db24b55cc3c42d25ea82fe3db0afcb4d9af7 GIT binary patch literal 230 zcwS>*WME`~fMpB}jB-#m<9{en%kS(J`uHsPnBdVfIXnG#ip5V|!hi%S=G69IWkB(9$@$%8Bnzb4@Cp_vhoM$Gg5i+kCzE zQJ?(J7~{B@?ky)d7K$u6x*WME_f1IBa)2Bz~2P|klSsK}@bnzT&3{?n1$GdwrNC|!w)&R{?S6?0mHahEDUl_tw+M)m3;;utmGG9o6R*$dBHc#n{$+M;(6!`ypUFh<;eNUZ>$}8vXK3$x- zbpgLyO64hq>sr@Lm}duYFFaM0KGU(k@utNp$&95s8hj#4PG9qxJZnPYDE4;hrL4a4Q=cg1smUGmmNVr0eEne77qeIA=be9`?DOGCN=ECX zWe(S8^suPAcyLRK3N;;CWW^^fpcZnN_tyOPr>$-ZF&tFXc(;Ikd+8U(ZBNe?_nOEh zoIiE5?YVS>LGA{QAAy(q?Ur2EXgnUOmaD(|;N$49?t@=SEhN{w{hfaDi~X4bo0->k zhu@wdEw$PDK;E||@mv`#d5Kw(%T-Ih-RpbMc*WE&*kjK9re%ExZ39+U1Q=Pfe(pMA zZ=+M=c4prhx7!b<@Z2<=CiPAHp;V3i!qd;s>g}H<-)yksztEp48w%sri#$|t-0fZV KL^^WogLwc_SHDUC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..bf95b93f4a31325d4b707becd72e83ee6f2117b1 GIT binary patch literal 926 zcwPaX17Z9C0RRC20000000UkC00(>k0000000061|NsC0|NsAejHq4jQ!Ud;ihgo; znk4_1qTg2l00000000000001ZoQ+joZ<|UGedkwsyO1f#0 z+~L?twJB~x#b}J+=y$$&-~IS{dG#VllQ1Cv$E~3*cf8IsxJRfZ0!svHX}RieFYSl*bIQeJM@wiXBp>@dktz=q`% zg+rA{N*ynVz{cckwjiZIiC3)LN^&NUzL!KWMGBRnb&408FpdRaj}EuN@~c0K;&8bN zW`6u>9z344wVN3acjvOw9-=?aZ@l2=^Jon<0+K8sMw`clIZrPF-R@|^CeA)Y?ewnUsUL5)i`>MG}XmiB6nOFV{9_2CLw9(DCvYsYrxbglaF1!N zl68)jez-e!!+7dIH{I{YmP*7HRh+Z(E^d-w^qtT{HiO4lDOEy+X+lV=Jv)&XT=`LW zDi(b5!-(n-(GJj^Fz%qA=huGt*Ifmat$wUyX$&hYjZTG9_rKK~e>tR0t)<4uTs5C2>!48s#(bGz-35dqPInnq=M^FlX|tV z&4VtR&V(UgHD)K{4P~kz2$XfM+MXRMnen0;9SHT<<)k?u8~8tTb-n~0$a_iK=+JO! z98Av-`5ucwGS@U2JG}uL4_GIXR%)ZM73W-leF5~NnbJg_F5iRwUSGcHUtWTJX^`&p z&D*}=9oX+0!`q9?zF|r(Q{ywZey#6cH-<^yFmWf7$vN1^uQt1rbG@4W0L|@o?MBqf AeE*WME_f1I9822Bu#OP|klS@b#Uz_@uXa;JoK?D@>j>Zm4kYQDr~^6?1wgo%cIz zz;o<^B_^9CT#50f8)h2~TZkp4*Tc`hY`oy%S&)+g`S1UXvrsF?dnQyM@(Hgnu zns+~N|DJrQ@aKj<&)=F%QkLeskhEC3MBU$HrgX;bz15rTBG|h(MQoUqp2L~gv)g@I zK_Szh^1~MoZ+*AqZu9nzfXwbwvp1NsD+fk}9uE5@Wp=FTUC8Bd4(61SJDtIj7ybS@ z{kXSd>aJ$D^}1W-<6cT!HvjOo_WsI*rMo5Ot}1=LCr4^V!KdjTKPXMVHAUBQEBAku cGp4d%zu)Zn8*u;1{V&H8mt7Q(5C7W%0G%AsOaK4? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/_make_table.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/_make_table.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ec0d6efa00e1ad6c27635eb101a85c13b27fb9f8 GIT binary patch literal 423 zcwS>*WME_f1IBa)2Bta&DCa*EoZ8%#x_ztKnpgW64HupgTfwH7604V*xfxG zQzV?{*tXDwD>nD@&BSR_g)h6#_`&a+%9`kLt|B@yrLkG*n%&b3mF2HkXKy~{qF%IN zPP-4YtKDoN&Xe}-t^7M;`RTb$EJv?}*XWDAiitci$(_mNmB)lt_p}~n z*gEA0O-)_=ruf-vwe(pvch2wY_1$Lm*x;D?t{FPDi%jcfbo`(8-`OGld*i&I=xHZ4 Le=_OcIZy@w?7_q` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/_math_functions.h.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/_math_functions.h.i new file mode 100644 index 0000000000000000000000000000000000000000..65abffa05dcefc777aa43e450e1950f37beb180b GIT binary patch literal 90 zcwS>*WME`~04X4rgt8g`LqS1@!jmnnO1X?&DKi~H4cRxZNVvp+1WHr#OOtX^6>=+! O3yVrLpu7rAYc2p6E*ZW6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/mysqrt.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step5/_math_functions/mysqrt.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..bc573d7709b3a1fcf831df678df213866a8ca6c3 GIT binary patch literal 485 zcwS>*WME_f1IDEc49r3dP|klS=(_Ie;gf&npI<-IgAGScIq9w{cVs{U6?0;PPUk&V z5V`wXyDw;K(JUXi?saogf>-W-mu7A(B`AG+g+xqErtPXv?~4^Je6=GF>^)F9Q##e_ zt#;>KhpC%Zf17aEXYI|+3%;G4J!y*R;Z<{EbN_xxnJe_`;;bmsME&UXhPlDo7d@2c zDnvFO2|WFJ_rkt#y}hx=LmF)saBNvrbMV8f*2x9eguE7duXhz-ve&qr5D>dwHAmi~ zY2TVn^9nEim5!5rx>D--O?S2xQa?NH%FVV6Kj1DiSLHpAnd=%qn@`jAtSl>hU60L8 zSaWQ5N@Tu}ySMI^Tm>Ii%WnsB1Vm%Y=QB*bqQcc?qr8Oqxq*Y&+AFqMM->hg6m(hm z?%{l!+IFPR_SmCE|27;KD=$xwzft#jq96Nn!@Kd!g<4PV2k~qPZsYrD@!$BS4fiUY zj#lkmEGJyr7984m%j!v&pgC*E6YUKVE3z*sXbILov&xOjytQVV>#MnsWSTjzeMolN zVekL>(dxNdA`FfluHCb3UY)l^`1d~6>z4atUT0cXZ;5@cX~%btaoe$6;YoI0aevG< YKi%=?knm)W{Deccss9*WME`~fMpB}jB-#m<9{en%kS(J`uHsPnBdVfIXnG#ip5V|!hi%S=G69IWkB(9$@$%8Bnzb4@Cp_vhoM$Gg5i+kCzE zQJ?(J7~{B@?ky)d7K$u6x*WME_f1IBa)2Bz~2P|klSsK}@bnzT&3{?n1$GdwrNC|!w)&R{?S6?0mHahEDUl_tw+M)m3;;utmGG9o6R*$dBHc#n{$+M;(6!`ypUFh<;eNUZ>$}8vXK3$x- zbpgLyO64hq>sr@Lm}duYFFaM0KGU(k@utNp$&95s8hj#4PG9qxJZnPYDE4;hrL4a4Q=cg1smUGmmNVr0eEne77qeIA=be9`?DOGCN=ECX zWe(S8^suPAcyLRK3N;;CWW^^fpcZnN_tyOPr>$-ZF&tFXc(;Ikd+8U(ZBNe?_nOEh zoIiE5?YVS>LGA{QAAy(q?Ur2EXgnUOmaD(|;N$49?t@=SEhN{w{hfaDi~X4bo0->k zhu@wdEw$PDK;E||@mv`#d5Kw(%T-Ih-RpbMc*WE&*kjK9re%ExZ39+U1Q=Pfe(pMA zZ=+M=c4prhx7!b<@Z2<=CiPAHp;V3i!qd;s>g}H<-)yksztEp48w%sri#$|t-0fZV KL^^WogLwc_SHDUC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..98bee19ae26e12f7456d82e4cc6d26a461bf1b9a GIT binary patch literal 1039 zcwPYy1n~O+0RRC20000000Yke00^c40000000061|NsC0|NsBz-6byU=XXrU8~?PO zyk&?uqki}R00000000000001ZoQ+mXkDEvkzVjDQHzpFSu#yF5an?7CKOo#7JR%pY z$RV$GOXRj8u!V|#cz!UNO{0nPZRW#m|26SwO5%YwnieQPZkPb^EF|urUJ@sz_ZmYYkk zMp3G-wFtau@@wLRU%^}uTAp&!&`oPSwktE-VJ>5(Wx{N#JtalHV(W?{#IV6QMGh;L zk(C0L8XZkNGo5j(Cm>W1eh?he}() zp((D4OocBLES4(GPb|ymo*Lq%qoyUIlyPcYl2KP#*P}E$5lzT%(<=fpw&WBbwb%+; zHR}_P-+5?ftz*;)m!A*3CkI-!4oei@Cu;D2`&P`28(PNmUNVXk>f6srG?`WT&#V6}G+O;cHB zEYY(DyvlX56!b#euc#}|1cvur{Yu1ZgdGa~eJc3&;}shVExoK#Dzrw3h=#vJE<35# zXd+0Nn0tOWqP(b+69kd(JuJqKuNIK+1!|S5WkT@3>_6*;+zecbG$v|W?BawMYSe^U zEo}9y%BC`*12Af_l@@i#R6*bi$hF7_f_eHXu|2r0SJSd$^sL0- z&f{bYDQAzEH&aHNzoc8$BIj3dREvE4r=s*WME`~fG{8qg|Zp{LqYvw@#Njxjw<>YvrC%XyOiZ{zsrIF36zFpWELv`QAtLs zLViJNow``kjdrjo0y%dACg*J ZQmh|RT9RLsnV6#=T#{N~rl+UJ1pqr>FZBQb literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..17dc44d7d798fb2bec8a0dc93f963e38bb9a075a GIT binary patch literal 438 zcwS>*WME_f1I9822Bu#OP|klS@b#Uz_@uXa;JoK?D@>j>Zm4kYQDr~^6?1wgo%cIz zz;o<^B_^9CT#50f8)h2~TZkp4*Tc`hY`oy%S&)+g`S1UXvrsF?dnQyM@(Hgnu zns+~N|DJrQ@aKj<&)=F%QkLeskhEC3MBU$HrgX;bz15rTBG|h(MQoUqp2L~gv)g@I zK_Szh^1~MoZ+*AqZu9nzfXwbwvp1NsD+fk}9uE5@Wp=FTUC8Bd4(61SJDtIj7ybS@ z{kXSd>aJ$D^}1W-<6cT!HvjOo_WsI*rMo5Ot}1=LCr4^V!KdjTKPXMVHAUBQEBAku cGp4d%zu)Zn8*u;1{V&H8mt7Q(5C7W%0G%AsOaK4? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_make_table.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_make_table.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ec0d6efa00e1ad6c27635eb101a85c13b27fb9f8 GIT binary patch literal 423 zcwS>*WME_f1IBa)2Bta&DCa*EoZ8%#x_ztKnpgW64HupgTfwH7604V*xfxG zQzV?{*tXDwD>nD@&BSR_g)h6#_`&a+%9`kLt|B@yrLkG*n%&b3mF2HkXKy~{qF%IN zPP-4YtKDoN&Xe}-t^7M;`RTb$EJv?}*XWDAiitci$(_mNmB)lt_p}~n z*gEA0O-)_=ruf-vwe(pvch2wY_1$Lm*x;D?t{FPDi%jcfbo`(8-`OGld*i&I=xHZ4 Le=_OcIZy@w?7_q` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_math_functions.h.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/_math_functions.h.i new file mode 100644 index 0000000000000000000000000000000000000000..65abffa05dcefc777aa43e450e1950f37beb180b GIT binary patch literal 90 zcwS>*WME`~04X4rgt8g`LqS1@!jmnnO1X?&DKi~H4cRxZNVvp+1WHr#OOtX^6>=+! O3yVrLpu7rAYc2p6E*ZW6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/mysqrt.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step6/_math_functions/mysqrt.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..bc573d7709b3a1fcf831df678df213866a8ca6c3 GIT binary patch literal 485 zcwS>*WME_f1IDEc49r3dP|klS=(_Ie;gf&npI<-IgAGScIq9w{cVs{U6?0;PPUk&V z5V`wXyDw;K(JUXi?saogf>-W-mu7A(B`AG+g+xqErtPXv?~4^Je6=GF>^)F9Q##e_ zt#;>KhpC%Zf17aEXYI|+3%;G4J!y*R;Z<{EbN_xxnJe_`;;bmsME&UXhPlDo7d@2c zDnvFO2|WFJ_rkt#y}hx=LmF)saBNvrbMV8f*2x9eguE7duXhz-ve&qr5D>dwHAmi~ zY2TVn^9nEim5!5rx>D--O?S2xQa?NH%FVV6Kj1DiSLHpAnd=%qn@`jAtSl>hU60L8 zSaWQ5N@Tu}ySMI^Tm>Ii%WnsB1Vm%Y=QB*bqQcc?qr8Oqxq*Y&+AFqMM->hg6m(hm z?%{l!+IFPR_SmCE|27;KD=$xwzft#jq96Nn!@Kd!g<4PV2k~qPZsYrD@!$BS4fiUY zj#lkmEGJyr7984m%j!v&pgC*E6YUKVE3z*sXbILov&xOjytQVV>#MnsWSTjzeMolN zVekL>(dxNdA`FfluHCb3UY)l^`1d~6>z4atUT0cXZ;5@cX~%btaoe$6;YoI0aevG< YKi%=?knm)W{Deccss9*WME`~fMpB}jB-#m<9{en%kS(J`uHsPnBdVfIXnG#ip5V|!hi%S=G69IWkB(9$@$%8Bnzb4@Cp_vhoM$Gg5i+kCzE zQJ?(J7~{B@?ky)d7K$u6x*WME_f1IBa)2Bz~2P|klSsK}@bnzT&3{?n1$GdwrNC|!w)&R{?S6?0mHahEDUl_tw+M)m3;;utmGG9o6R*$dBHc#n{$+M;(6!`ypUFh<;eNUZ>$}8vXK3$x- zbpgLyO64hq>sr@Lm}duYFFaM0KGU(k@utNp$&95s8hj#4PG9qxJZnPYDE4;hrL4a4Q=cg1smUGmmNVr0eEne77qeIA=be9`?DOGCN=ECX zWe(S8^suPAcyLRK3N;;CWW^^fpcZnN_tyOPr>$-ZF&tFXc(;Ikd+8U(ZBNe?_nOEh zoIiE5?YVS>LGA{QAAy(q?Ur2EXgnUOmaD(|;N$49?t@=SEhN{w{hfaDi~X4bo0->k zhu@wdEw$PDK;E||@mv`#d5Kw(%T-Ih-RpbMc*WE&*kjK9re%ExZ39+U1Q=Pfe(pMA zZ=+M=c4prhx7!b<@Z2<=CiPAHp;V3i!qd;s>g}H<-)yksztEp48w%sri#$|t-0fZV KL^^WogLwc_SHDUC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2be7594bd98614e193a21c64c6d865240890b044 GIT binary patch literal 1296 zcwPYz1@HO*0RRC20000000Zd&00_|l0000000061|NsC0|Ns939G=9ZY~N(j50q8o z1^-;egBbMy00000000000001ZoQ+mXZ`(K!zUx;E)Ewjm>NsiAqP-NV!lrKh2qd{^ zPXaBCV{T+gOHzpgBmaGelx0gn(%p*%a=w}Q=1Etw{2NmZUR>)^3Z4%f=MBVbgnN`q zlm!&^W{Gm>DD0q;pDc{V^I0 zUfu#PGQe#GtGY-vxmKSYQKWfI5btCcO#L4$3Fq_p>2z9Vb&l#ZSYvwkbq{A-p|l#N z8-9laCpDs^HI<+hf@l1E^MA5rGQWNmWJp*L`*mZft94oD89X4=3Zbkeln(`LxLzO0 zI%Q?P-Xdbj^!L<{zk$0TwBF~W4L57_#HPw|gN5cs%Z2&OdP>V;C2nhpz+sI%LkTO9 zla&%Gt|)coh6t=|&VngL3Y2&)id#j>1Ty!E2&PD;GIS315^KhD0Nj(^O*sF~f;frh zi!flx)i``QZEF`;jp2GI3b&8`GM@S2@0ZaAY6IX|W=SkX!Q~@piFn|JT&8P^!=$a0 z&=%J)GxU{#ac$E4Ao85 zY(R1RmxpfFdPZHNP3{s^FI(kD@Ol^nv9rQ{#i5@}#$O^h*&Pp0@C=Sc_MBoTDBNON zYrf3UF^-SN<1ijNaF}kl14nati#o|gahEhnu<;$xeKtL3qEMPsVHy+4Y0qBlhu18Q z4#k2i7R6MDn0A2aguxN|bv$9w|L!WFY;|qzOJiAKVdK=OO#eI0G1(u%>+T$yrmD(C zYG(~(UD#w9=rQoHrmi>yaDLg>uNA*V*r2lChf>~se!<4VN{_3Q3T+W8q2aGk>RzfX zngXOu+^{enQ(nx;kD?@G*NcfCngtZH$gEPcObGsI_*b)#+kwlF#>8xk4NqlhMopR3 zB36&4Y$g+yfYXS*tZXP#1wo>!bKUlAKa!x_R3|$^Jsoq>oc9gkO za(MpkeOK@S+z*Z5{l#Tha84@cR;PFU*4)2s1f#BCG#rgaXW;I?Mm!vyHLGb^3wl;K z1UEdrgG`EhEZQlf&0o>2X_3P#IBrBC{!`O>$s+rXPTCO0Gh^30qroB!*{r|HCL+Z`;ZSe2+cjl={A>2?$tP1U{~37tv$Fj|@S?Jj80GOS zm@KXscs48DQO~$qFH0^nP^lD^9s46Xwtez1<$dF#000001L*(&0001|000Qo00000 z0003600000|NsC0MB6_6G>^zu+o0~{?DOxHf4Nk(000000000000000c${NkU_Zye zz_FNtf#F7RYKek|bAY3>cYKg*uzzTfvunJYr;lsAkEgS%U$Co!l1jC+ucNnXymM$! zkgH!vJXDd3XHc!aPiAszUU8~kNkxg0CKr-fAi~kzH9pKWDA?2AFW%SD%RdNYR!C_{ zeo*WME`~02LrshO!y|LxIo?V>u?>853;3glY*bD0(O(Y!H|DoLZtl$Pxgn4>Uvo literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_license.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_license.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..385a53b50d1175222f2ae9f34188d01c5a8dacb4 GIT binary patch literal 150 zcwS>*WME`~fG{8qg|Zp{LqYvw@#Njxjw<>YvrC%XyOiZ{zsrIF36zFpWELv`QAtLs zLViJNow``kjdrjo0y%dACg*J ZQmh|RT9RLsnV6#=T#{N~rl+UJ1pqr>FZBQb literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..17dc44d7d798fb2bec8a0dc93f963e38bb9a075a GIT binary patch literal 438 zcwS>*WME_f1I9822Bu#OP|klS@b#Uz_@uXa;JoK?D@>j>Zm4kYQDr~^6?1wgo%cIz zz;o<^B_^9CT#50f8)h2~TZkp4*Tc`hY`oy%S&)+g`S1UXvrsF?dnQyM@(Hgnu zns+~N|DJrQ@aKj<&)=F%QkLeskhEC3MBU$HrgX;bz15rTBG|h(MQoUqp2L~gv)g@I zK_Szh^1~MoZ+*AqZu9nzfXwbwvp1NsD+fk}9uE5@Wp=FTUC8Bd4(61SJDtIj7ybS@ z{kXSd>aJ$D^}1W-<6cT!HvjOo_WsI*rMo5Ot}1=LCr4^V!KdjTKPXMVHAUBQEBAku cGp4d%zu)Zn8*u;1{V&H8mt7Q(5C7W%0G%AsOaK4? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_make_table.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_make_table.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ec0d6efa00e1ad6c27635eb101a85c13b27fb9f8 GIT binary patch literal 423 zcwS>*WME_f1IBa)2Bta&DCa*EoZ8%#x_ztKnpgW64HupgTfwH7604V*xfxG zQzV?{*tXDwD>nD@&BSR_g)h6#_`&a+%9`kLt|B@yrLkG*n%&b3mF2HkXKy~{qF%IN zPP-4YtKDoN&Xe}-t^7M;`RTb$EJv?}*XWDAiitci$(_mNmB)lt_p}~n z*gEA0O-)_=ruf-vwe(pvch2wY_1$Lm*x;D?t{FPDi%jcfbo`(8-`OGld*i&I=xHZ4 Le=_OcIZy@w?7_q` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_math_functions.h.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/_math_functions.h.i new file mode 100644 index 0000000000000000000000000000000000000000..65abffa05dcefc777aa43e450e1950f37beb180b GIT binary patch literal 90 zcwS>*WME`~04X4rgt8g`LqS1@!jmnnO1X?&DKi~H4cRxZNVvp+1WHr#OOtX^6>=+! O3yVrLpu7rAYc2p6E*ZW6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/mysqrt.cxx.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/_math_functions/mysqrt.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..bc573d7709b3a1fcf831df678df213866a8ca6c3 GIT binary patch literal 485 zcwS>*WME_f1IDEc49r3dP|klS=(_Ie;gf&npI<-IgAGScIq9w{cVs{U6?0;PPUk&V z5V`wXyDw;K(JUXi?saogf>-W-mu7A(B`AG+g+xqErtPXv?~4^Je6=GF>^)F9Q##e_ zt#;>KhpC%Zf17aEXYI|+3%;G4J!y*R;Z<{EbN_xxnJe_`;;bmsME&UXhPlDo7d@2c zDnvFO2|WFJ_rkt#y}hx=LmF)saBNvrbMV8f*2x9eguE7duXhz-ve&qr5D>dwHAmi~ zY2TVn^9nEim5!5rx>D--O?S2xQa?NH%FVV6Kj1DiSLHpAnd=%qn@`jAtSl>hU60L8 zSaWQ5N@Tu}ySMI^Tm>Ii%WnsB1Vm%Y=QB*bqQcc?qr8Oqxq*Y&+AFqMM->hg6m(hm z?%{l!+IFPR_SmCE|27;KD=$xwzft#jq96Nn!@Kd!g<4PV2k~qPZsYrD@!$BS4fiUY zj#lkmEGJyr7984m%j!v&pgC*E6YUKVE3z*sXbILov&xOjytQVV>#MnsWSTjzeMolN zVekL>(dxNdA`FfluHCb3UY)l^`1d~6>z4atUT0cXZ;5@cX~%btaoe$6;YoI0aevG< YKi%=?knm)W{Deccss9*WME`~fMpB}jB-#m<9{en%kS(J`uHsPnBdVfIXnG#ip5V|!hi%S=G69IWkB(9$@$%8Bnzb4@Cp_vhoM$Gg5i+kCzE zQJ?(J7~{B@?ky)d7K$u6x*WME`~fJH$31j=Uo4+TMj$2DK&x8E$C*uxmS$cpJ9pY#O=Bv3IYx6hZm$w21V z``Ru=*;fjSgVS&STW~}sNBe_{F?+AcQD2QC@9!zBXvyQZ(ckahbW4CWXzHZ-ERB=W zm^vOUa=0k<>GPB#HsfWtVpsd|Z$12`b4ua8#6w@sKG+_%_&wWdX`Q_Yu}O0ly|~2ois{4FnjcL`T@NnKKDh1KyHepr K`WNoFu>k=8z-Ctf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/build2.cmake.i b/CMakeLua/.hg/store/data/_tests/_tutorial/_step7/build2.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..bf61e5aaeb2eb068363f65bb200e67d5df71cee3 GIT binary patch literal 278 zcwS>*WME`~fNKm4jIB^M<9{ePdUL|Mo8eK4Ty7;rtB&4g?6}B3kpT%*%<1hr*mcN2 zpzVEaSHQObej!1Z^|@B79WOf>iP}u{V3yt%l^Ikpao_K2v4Jt)9;8alc>n)dc!QvG zK*Xv&6L?Nd@lKd=T9)&^!tJ=QoelGr-Ku>feK)MHOTXz@rTfea^V|NtyYX|`)?Ld^ z&Ax0S!}{u-Z-vF!fzDUQn~ zpUm-KF;_n(v{>Mr`sG{AmQ}I*$7gGuzxQ*~1OZjn`%C(j>b1XpKf(XQs!n$O*WME_f1IBa)2Bz~2P|klSsK}@bnzT&3{?n1$GdwrNC|!w)&R{?S6?0mHahEDUl_tw+M)m3;;utmGG9o6R*$dBHc#n{$+M;(6!`ypUFh<;eNUZ>$}8vXK3$x- zbpgLyO64hq>sr@Lm}duYFFaM0KGU(k@utNp$&95s8hj#4PG9qxJZnPYDE4;hrL4a4Q=cg1smUGmmNVr0eEne77qeIA=be9`?DOGCN=ECX zWe(S8^suPAcyLRK3N;;CWW^^fpcZnN_tyOPr>$-ZF&tFXc(;Ikd+8U(ZBNe?_nOEh zoIiE5?YVS>LGA{QAAy(q?Ur2EXgnUOmaD(|;N$49?t@=SEhN{w{hfaDi~X4bo0->k zhu@wdEw$PDK;E||@mv`#d5Kw(%T-Ih-RpbMc*WE&*kjK9re%ExZ39+U1Q=Pfe(pMA zZ=+M=c4prhx7!b<@Z2<=CiPAHp;V3i!qd;s>g}H<-)yksztEp48w%sri#$|t-0fZV KL^^WogLwc_SHDUC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_use_w_x/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_use_w_x/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2e899fd17f3da431de589c1279596893bf80de0d GIT binary patch literal 205 zcwS>*WME`~fLO2%%r1^`xSiSPH$GccD<$K^a9s8+7bf)?`jFfyeras&QoKvfK%bIk-gWh*ma+4 z1D&=!$(7skvb22@Q-Y0a(iX1?=6X?6HdKbqdEBv6wOv0#^wzB&;aL(Tk3U3v2&;Vh mExRPMTFP0vnS$&E>hZ)SGhdfrXNVc%M3lqE%z68N-ly|}K&`IqOh zlyVibgp4Ik;8#Uc2#Jt0%6-<9-$+pt?(ADUUjTwf7QFhSOhQ(~I{}|je-_+DGyi6~ znTP*NOe!WMrrb+T+3o@|S`bl_MDzG%Ef3un*Lu`UJyHW%T#_qG$7u!*yi;ujVpS7H zQpW}ND9(v&I5XI7RTWBDqKL}4CGv)HA)Sk!babp^)V1Yab?P~WQAj6u?2ku{eY?iW zWadPnV?W4q@xW|%bS!k7L_%`Mbxjqf`#}*)(hh1cl24ZDd)-K(scl7pVaxMAyx|Y& zU~!n%^;`2=Nf8UtaZjLbwgqn7zEw((R(G7}9yP)-eV=Y>#R5iUA6J{Uh$)*_mBv2d zIIUo@p8E@b8Aj9f+R;3&Wp#=ZLyKZKG|gx}^u%VhJWrwnAXe8w5?S#B$UK%nS}Nqk z+yWXxeMf8HO^nr5sKis;_GDSxrq-8^QdW9y5cu7nS0VoU?eIL6tQH+NyP)hR$O?gw zl5MlYz?R4SfS%4$l0g)G|1tBwZf>JUC)eE`+Cc_~s=?)tQ*4C_b-LsPXE;nToMn}g zv0B+H>x{4zWwD4M^HEI)UKf%%VFn0z#59VQd`aI?nb}_FF^44A)(@S__m{ovdd~~< z$;N3G6%MlEMf%PjYzA5fF=9L?tY4VEMhxv_4pj!CW20gM=P8ynQfa5b;~Sa~kY@ad z-!PisaP)*uBi}58>($IRBi|dDxoyzMEkKitf%AvZiLDw&T%ut~u18Y{@~rIX@;>-C zSC9G|)9DURrJ5GI=MZRFl9a}h6bI|{NK00000000000001ZoV8RQ4SX~#0>CjbS4YSUZxSfFy+ttK_-3R( z+kM;oRA7<&YF&g}!0-H*fUa)^6lE*6vS~}vfp{o8*%3_^_{-~T=|_~^X0Fd*ahQ4X z4CpBBK>Lp>{yS9+|Mi^G%687yU<_6!QK7j@A=Qy)|EGNFA|LN%d1 zAso@I$AiC(f^)Bnn?Owe$gt~5~*WME`~07oEphO!y|L&529YSI%q*bcYJY*N!91p)8hcu2~H&q9LmmuF5jq K$&j2X6bu01mM&5N literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib1/lib1.cpp.i b/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib1/lib1.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..c3a856263c76cd5ef7c81608afd564dfa31d0b95 GIT binary patch literal 125 zcwS>*WME`~09zoofwCF@LqTk$HlKcm;pxBZx3%Yoz3)Dd#yy7t36ydvXXYj6l%}LA yDCJ}(8R}&yadBnll_(^pq!?;|7*WME`~02?57fU+6?LqXLwIiX+MwyJ+E5-6Iz%D6el`~MyWBv3KuanL!R)83xG z!5==B81;PT;CK+k_Q~jTkRVgc%t}?RPEE}=DFwH<%yr95#l@!=WyN`=Nr^KgY!hk( E0J9q^VE_OC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..8519a1ecde5bde64f997e161aa718598c71a8c7b GIT binary patch literal 177 zcwS>*WME`~fI=Ydg0dO^LxK0h=bE>FZ?M|wcEA5N>$5JArKL9*kU+&8ZjMjii%R(} za&VXRauo7@D*n>>{bPyIr6-R*eJTFNSz6dz{*i}C>jVF%65eY8E8T*{<=@ClJ>dxp zS-pPw^7oTxrf^)5ej~MraUy5fiIYA?m%Q~f7`Uu=?Pw@rwPbV6YG@G+S+#Igmg!E0 Io*=bj0FD1g#Q*>R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/lib2.cpp.i b/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/lib2.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..17c67bf1a9c4f704c97c8acf4b1c7aeb9873a7b9 GIT binary patch literal 156 zcwS>*WME`~fEXaohq4*}Ljl*BtJ<^YNqsnF&vxk6wzYr5Vir~~Ac2ZGkAu#g@jj>N z>lqqw>ZFg+rPBeAoCFP7Itx;tP1R6YwnXBX`m?1+o=CROYji$^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/lib2.h.i b/CMakeLua/.hg/store/data/_tests/_v_s_external_include/_lib2/lib2.h.i new file mode 100644 index 0000000000000000000000000000000000000000..95b65b98fb71881b1923947b65cc589ee1ba97fd GIT binary patch literal 151 zcwS>*WME`~fN&s=g|Zp{L&3={5z$`{o-xWfY#-$N@q|ID!i%{KNT6cQ<3~Z~d`^3N z`UZdaSYp)morB{+5ZfoC&q0Dr4yu(WEthJpDg8#=@k<*vr?6-Q&Y3;V`ru2 h$DK*WME`~fJ7ipfwCF@LxI!{reB(0zGkjm&NovtWyY7sys!5%Ac2ZGq9+}>8WaQ^ zF8-a9w87WY#dG%y9iz-83pPt^@h$mY^xd9+*9pDQ`bAzJ4T1w0CUU2B-Px|N^G=7} sgp9k-m2=W$Pe+Kt;W!G?dWaz5;yvy|)co`c--0(^2}0Bf>AEC2ui literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_wrapping/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..0ba5e9d1dc3db19006eef69a48666bd4756a5d58 GIT binary patch literal 1136 zcwPZ;1dsaw0RRC20000000b}q019XT0000000061|NsC0|Ns9Jb&Ug0&$L6xZAb#! z9H~o>7b}AR00000000000001ZoV`}dPU}bz-RCPxhJ_=I9NpmqM#kxc9{dP?2v}K; z-60l!1iO7N2<6{zb-SH742fnovjDZbPgR|I=W22Vk4>`M<<-mNYO?aZzljxsKHNvMv~;1xqTtgn9#M*YdiAv@Xk}%AoG}uH!B68g>n9S@V+t-!j-H>1&HBx|U_) z@r6~aNqGOb$qUxvlTc}S?t(5OpTrAl6JrvPFrHH%$$0*AjJ#IF4=D-s;}I;Im~QNP zu@wcO=fDra7LD2Y8U!i!&S01DEncEJ&~19_o2bo;!c`Q;D>J-<3BdK|;B9(JD z``J3LW?-4t9Rccw#CJ_wptS&j7>wRy$nu7zyly^VQ#Y{g@*)%NBt-#5zHX8xXRV`% zeX^dO;*bQ&mFv&%;rr=?*a7*E+6P;2Yv&n zRfG!NlIdiquww*N zJdgJgRS}i`sV|k%z1Fi;*oek~Zv~Ra8$VQ6m;Xy<5+-bq=;-Cg8^@^uQvIDY(4T|; zENCgi`?0L3jghdd3?(43@RPrWm{zAwjjfD?LxR9u5?#ZR>&I|{BVo|rTacj{18W@G z%|GFHBe>|RIayGbhSYNdT?TS=u^&Kc79Uujn(hm1aN{5}?$~3{NAWL{yy`m~AT<3Y zE)ko$_sW{6$B~#aE#vV$c%->!ba)cA+t0HL-F1<2Rlo5gT{Y#-DwE@3VTbqQ0dWPm z22v*PVNRe|LogDil`qkZqh zP_L(`(N`@09lNvdgcT;1xRxlUvE;#_Z*WIvMXIMV&rTxNeFhF|6TJ8`F;9O!jOS(6 zmF36zUl%Whv6TaO_3XL!^LScD0f`;cUD{+G;|wrC|6a#A)n(5(#toBT`Thn*Hy*r* Cdn=Lv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/_wrap.c.i b/CMakeLua/.hg/store/data/_tests/_wrapping/_wrap.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4176517cb2a67b3602a9db2e197462bfc59c82e8 GIT binary patch literal 305 zcwS>*WME`~fR79ej3rPu<9{glX5E%+;llrfU*0ju?cm#0)fOk37?4249M}H9?86Eo zt@rJu+Gp}35!VBB&-YnEqa*I~HykJ>1$Ith>XO&g%JoRzTdpYA=7yB}y zd$ljN)b6bnnv{9fleNe6`1;E)FKlQtT;$szzs~pE-O!MR&v60`8tzMv?cPzyo;veh z)})j7PMdx+2~$|}QE{gD>z_djZk9w%Fy&uzyR( zYqoZush9JQvkUlrT5wi0>er*_TT;79YK{dtt+pvj&Tr84{kp(K_Tt8+o6PhRnA8uy q;MsH4Kv|FRf_~NOr%jPlB-4Mr;;L0KzkT&1zq0X9<|h;L761U7x{7@O literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/dummy.i b/CMakeLua/.hg/store/data/_tests/_wrapping/dummy.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/fakefluid.cxx.i b/CMakeLua/.hg/store/data/_tests/_wrapping/fakefluid.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a7eb88be52e504063dc2c8d37909662dd5f8aa7d GIT binary patch literal 299 zcwS>*WME`~fY%HRjAc+Z<9{e9*emC`J!yK`TOFM_S4*d3)*gB^kd2ulXnVJV1L-nbi^{9oB6`I^@2{(=1Z)bq%^$GXtG3v zxy}t-Y|}f_V*lffO#fa~@a1xw#^`A~J-0VfQSm=8DbMy&kz&}lJU*AKk1My#+{ix1 zp-PoWmtU&4sn6a=_Px$}g>Tc&AK&9?`up(h?2pb{zw`#))KLuidG!6A+!z(jn|X-= i$1Gm`aa~e4IjVDad8+wWtuyzW?rzZj&35{Ch7JIL%7RG% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/fltk1.fl.i b/CMakeLua/.hg/store/data/_tests/_wrapping/fltk1.fl.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/foo.ui.in.i b/CMakeLua/.hg/store/data/_tests/_wrapping/foo.ui.in.i new file mode 100644 index 0000000000000000000000000000000000000000..b24bdb8859a131557e33fd737141e04b0ee558a7 GIT binary patch literal 402 zcwS>*WME_f1I8c*29{g~DCa*EtUGzN?$9<%o(st@s(THL#c~|Y|1uzfiaB#bV*Q&9 zL~8G^U-6qUEG@}oWo@CIj^RaBony!QN|$n8xD_Y+r<%J}^qZp@=Y-RiPv#Ztt52By z^SAe(uOGX@xV`R}DtaDUvov}s$G4{~Z=SdnED(OuH!c30>gg#r_FoRTrE!)wkLSiLDFnZ!q@B4&Sv;_nGzMbzh%)HLaf0yt3~KkH3PA zS%Bwz4n6(@tJqdEUs%f&WHsAX@Xcw(xkZ{m3%>WWY)`##)bWS?XBD63kfRqZ-p-r$ zary1LS&d0~j63TNZJ6`mqVB(Sq4_Tgg%5h1>zUwgXY+sZ`ke~{pG3reJ0{;1zc|Cx zdse`l=`}k7Hp)M>z2Ww&cWtGa$CsyW%{PNN`MutL@2KSLjVYP%#qjfWD@OIAYo6&U pQ^j^pR$NiMIh3u`bC>M0^pdp|AG#0NMKG%F__y^BqnU=$X#hTMy+{B6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/hints.i b/CMakeLua/.hg/store/data/_tests/_wrapping/hints.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/itk_wrapper_config.cxx.i b/CMakeLua/.hg/store/data/_tests/_wrapping/itk_wrapper_config.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/qtnoqtmain.cxx.i b/CMakeLua/.hg/store/data/_tests/_wrapping/qtnoqtmain.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f11af9f06782221960a7f7562b072befc2b1f2d1 GIT binary patch literal 112 zcwS>*WME`~00SV_hq4*}LqUL#w&3?aF=aQsw-zjV|98Xh*0+ufNT4(`uS6j?F*8pC m#7IomQAo~6EYi|aNG#Ljs^(HqC`v6UEy`0cu;!`-^0)wc)gn9q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/qtwrapping.ui.i b/CMakeLua/.hg/store/data/_tests/_wrapping/qtwrapping.ui.i new file mode 100644 index 0000000000000000000000000000000000000000..0eb90a5eaafae55b9ff5b234e7e37f9be89296aa GIT binary patch literal 398 zcwS>*WME_f14cgv29^>ADCa*E>~UTmmBRn|u5l2Hp=rNxn1;da_Y6p&V$R%3g_dn2xjO?;eyP+g!+2wquvC1RpfYr>`{l?&#xt$M+G z@G8d|=?!v?RU#8EeErp!5Y6|prQ3qBs@lIG+A8)<%m2&%N4x}F?J}3oy{uPpee>=7 zzyqQRd*gK?-9Ee#sXw&n`j2q=+E96mv?2R?bL$hSN`=kgeN@t6L{(QnfO;MTTVo(&z*WME_f14cIn1|~rUDCa*ExP9S2*zl$1m6@E|Z`GGMr77<<`52Hu#hlbYUvFkZ zfxXYeZMFq$TdL#Qf7Qv6pH=jzv!JM_`OS9;v+kj+WO+5$szXCjGLza zy@IYj-4YtY;b@kidvclKguJQ!6Q*BEJW=@jmz}`x{n`zCHrbVIP!#!j>xAsOjh7s6 zoB8HFJKtZvd3uULqK2r4|BO0$JB!7+RVR3sCG$wIzUgmy^f{>FJNTm9p<5&oqf__WT|5xUc?CqyE0FAAfDIzPB}*y~||hR^6Sa)|vjk=;dCN zX~H+lL2et@15?RoHzpb05iix2_;rOtRsQU=E0?O*xLW7qjdo% c?!D>voOu4D{ec-5EV@6s)O6-oO*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/vtk_excluded.h.i b/CMakeLua/.hg/store/data/_tests/_wrapping/vtk_excluded.h.i new file mode 100644 index 0000000000000000000000000000000000000000..df9ca28be709fe8b0f301a1192f613ec9a7a2913 GIT binary patch literal 97 zcwS>*WME`~07W2HfU+6?L&3q;jnfTn`SvV|kzFxO_gSa8x7rg1Bv7iaui&VVoS&PU RnpeUF;^gI*WTY0sg#h!Q96*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/vtk_included.h.i b/CMakeLua/.hg/store/data/_tests/_wrapping/vtk_included.h.i new file mode 100644 index 0000000000000000000000000000000000000000..aaab5d00497515eee048d8b5191dd479f96e38e6 GIT binary patch literal 112 zcwS>*WME`~00SU4gt8g`LxHmN%@Zv=i=GF1b~=fM#4VY|xQm?u2~^Cvd_BA%#N*ug sv%Y7wA6{ZF`t-@$D5yKZiAyT;r|Zd;4tbGTfk{=X)WjKD&kL9W0A{Zyv;Y7A literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_wrapping/vtk_test_moc.h.i b/CMakeLua/.hg/store/data/_tests/_wrapping/vtk_test_moc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..27c4277dfd6fe8fd7b73a8d4a1353ad5ae4909c2 GIT binary patch literal 148 zcwS>*WME`~fDj;#fwCF@L&4vb*5CDB&-g4O@V2t@J*T4h%3U%HNT6a)@VPVI=QMpi zLpNyp=xCfc>Eow!^33_mr#C!)*WME`~09hcGfwCF@LqSvd^WB+`1vmH|dJ)OVy4bBaY>Ea05-82gD^bWz%*<2J X(B!J-Qcx&LEh#O^Q!udRs^tOzndurU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_x11/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_tests/_x11/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..4ff3e76c6e5ea1108dd17b5abd0c47cc78cb445a GIT binary patch literal 461 zcwS>*WME_f1IAtk2BysnP|klSNN#81nexn4@O2B$ToI!bpWlQm1W~a}i_2tu~pa#V?t& zC*Ni7y~lF+;N_ox_t@RkS7&&j@ux7Z!}HKbX{p02w@#Ga&2V~mYwxX7ivusbt@E#8 zx_K?ZZ`u1@hmVvV)cLi1`u8|zu)clTZOPKrJZt@J$m zS0dD9=2??;k)7|u{xVzg`#9bZa-DkN%}u%fo|qliw_2Z!u&e+5EAbikf7XNB04&zs AFaQ7m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_tests/_x11/_x11.c.i b/CMakeLua/.hg/store/data/_tests/_x11/_x11.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3fc55f8f399735f74956ee83595735d327f726f7 GIT binary patch literal 215 zcwS>*WME`~fayT|8p>w;4+R(5IEB~y*f+&w=8<~yrpXFBV)@#OxgT9r?Nyk*;^g(P zuBIM0=H1EVFWPI%<))l?vp6^8@|r1&t8=&CH*qb>*XdC9F@Lm4h@a7*oySL0UyPYa wcfkQ;m)X}}EVp#!37-}^`)Y$BYg?)Iyq_X>o9wgI|JS#hN`7Q&TI^u}0EoU-ZU6uP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/._no_dart_coverage.i b/CMakeLua/.hg/store/data/_utilities/._no_dart_coverage.i new file mode 100644 index 0000000000000000000000000000000000000000..006ba46be0e9e03257c257780c3d779995f5476d GIT binary patch literal 104 zcwS>*WME`~01Y5khq4*}LqXZR)+HYjcM6u>MQ9FicQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..696f5b37cec82f7ec7b87c58506bb5249d7088db GIT binary patch literal 840 zcwPZW1GoGD0RRC20000000RgB01syX0000000061|NsC0|NsAyiOkTvqqJ073U{ga zLvm5LedkwfY#+D})$}J&pbe>r0nCk0WDBd3 zA`n=bn#TWr_X7~=T6gXBMckcpc4nD5GX|?C%kcx1r{E__GPld~}VHQhMQtRk+7w2y(TI0bRA3TgRO1OipD1oH ze9O?3Kwj)H3JsrrEq!lk`{7zQT?^cQ@e__sDY9CHlzD7XX^lXt8lpr!KE9V_5MxqCvGt< z1p`^fc9FyufQN@2%F2gLlVxg@?4yX@;eGZC_+yK;?4`Z1g43I5*ImO|M10d;m}|0s zN`lUY->$O=LSsJXS;Uf&rYE@~e(oOTkAP>Gj9Wi((p;q=PS-l2bkS<}%6&PnlKZdz z`6zidr6JeYWh8mLUS*_mA*tLp^J`XG^v9{JYOTZTtmMuE47`hd6Me_lxlvUt0FM2~kEH{t{B9UbwcHiUJ7fB=GKx-z5L6Jb< zzZ^qHFb*It_N2QcR~_i=1R*F>2!fF0=qUtYln^U;GO!khbUU3mJb6BD%tGuY3%0I_ zCJM#opwW)3Nsk-D;pnHfj3YujxSq^>l84Qf`EevHSo_P-x_oDK&sKBwvDwj@&r Se`93E^FBL?1OEVVL)b#gdV|^k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_doxygen/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/_doxygen/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..758f10141a284f521170bf76454c6502e8635e10 GIT binary patch literal 381 zcwS>*WME_f14dg02BxzNP|klS_&nn<@4wjrJc;VJbwk7}W^akQW59p}D&{N=x|r2$ zAX58XTki%t_u@KdpCsv3o*N4{ELWJdEzztmY~j)$@4MGI9hXRbqc~ws_4%F8@5S8z ztoX_&*0K6RfN5&^m2J9Fmm|)9mpJa}r@^vW+VA45RX!Xy+cSepx7xKoF{}-g>n`U_ zQl9xhV`jBnw_-=pGyzwZbHS%nrIPfRKDbz#ZL6C4TL0|C2mI^>$>nMH=YGlf9y9NZ zJ9q2cJMrtRgI`a7n7VL*WME_f1IE=149so}P|klS2+b79*z?NdLHqvT>^>ifH8mtP7*T-4Kc%)j$;hK~Q0BS)vGKGEwwyx@iP z{GHpI$|?dU8}8JT(>pJn|?z4_j{499rWOIkO+9c)N`x;6bjUl9Mn;~EA$ zag7_-Hf=vxZs+>aUd)SqLBfg`?xqIYW!*#CrkFpkD!Bc!(_Yk8O!r0Vwu!R@gTk)I zTC{n2UW^WFk~7Zjo@x;(lk2njXT3W!Tlg0qPAy02fW|43apH2d4>XNd?7y?7_4lL5 zw?|(#=pTG^Z1rm%>-8_v8(D0hpOz>PHch*GY@tf~W66g{5A{d7pJiHKHOHdhLRVb( zvAI^W`DV@PdY;Uou6^^&ZC{_C|IXP+t$DUy_r>>_8_&Kzdsptcp?>zhikq+BK5JUn flvK|#kN5e~Fzz*VQ!f@b#QaILJt<#$Q|&we{N3qI literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_doxygen/doc__makeall.sh.in.i b/CMakeLua/.hg/store/data/_utilities/_doxygen/doc__makeall.sh.in.i new file mode 100644 index 0000000000000000000000000000000000000000..e0d97e54a8f7da35040188e06e9848eda0dc5976 GIT binary patch literal 2801 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 D9J*h8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_doxygen/doxyfile.in.i b/CMakeLua/.hg/store/data/_utilities/_doxygen/doxyfile.in.i new file mode 100644 index 0000000000000000000000000000000000000000..ef70fd0017bf779a90be9c50dd1a951dc95382dd GIT binary patch literal 863 zcwPZt1EBl>0RRC20000000SQY00>V20000000061|NsC0|Ns9mH3_3zWOhgANF`V6 z&yj`C-e~#&00000000000001ZoUK)BYuhjs{qA33(l2AsrjHFqSw>~~Ce|iPMw0Uw z1Cb_fXWBF)PFeczcWuY9orPwDio_V5d#{e~h(ryp}}BVvLA*A+Se?Tm;Lmi28cd`aUFgaIERAsuG` z0u(V|jRF`l7?oZK)rj;ZXWG>9c90hjDr6rDOvr1Fe?bB8=m5m=G2VGKS%gG1zPX7g z({CeAK!#v_Y24;2PdYh-6<)Ykq;Joub5j8~9fxwFwH+uD1^a=iXkZ-+74R6mXX!wlaey9&8nFGH1EhrDdDB(6>XrpK_sUU}N z4r2pK5Uv{^mM4>iWB~h_$@4-(@(o*n38E%QM%{Gdb^4gD(3u!W_X{8yOya)u$8zzFW%>bXChT@)>2MWKwMm(QzN(s>>3(r7w+IBH~) zY<<+|d6gxZpH3f__s49*KK(bt(fEK}Ggn)?hu_&tcFbtDc+Kcg);D?PZ6PprTgvD4 za+RGSlm~LKX%s<8!v5JGhzg1n8)8E?TB<^{!D*l^r-0!w6f$K)2t81`a%vz&`$IiM zgpbGs=K&0190x`N-8yYE>M1$Wp!UX#Gg0Ndo*{IiMB_dPeAY@@It@X2$T_qD5Wgf> zofOECt){t;G-`TZ$&losP}C&ai07lMD(1x|*9I9!Ib6vJ@vLUw z>nosiy22{}&&?+_A7ou4@6Ueb|INn1*^8BCLuk7eH7TjLyn866sMT0qHW00XlxdFw z;(;k7g$ch9?wuHF+_Hs9h2<16j#PMxf<7D91ZE3tB|$u1KzPq#Ni-9KZMcw7B`u62 pA~ecpvy2*YA*(Xqy7j7Rw4|%&6k&WT1)t=H`9(cSk3Z{i8LDV+lMes@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make.kws.xml.in.i b/CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make.kws.xml.in.i new file mode 100644 index 0000000000000000000000000000000000000000..473f52266999bbba5d5df34a2b8672d7d24546cb GIT binary patch literal 256 zcwS>*WME`~fCE7M2g+vr4+RIKoY;5h-1J-)BKU|ed=($l(jUeQNT6a)Xul(OlY>C( z`+r=wH{X7x7&JpibMXd_NgQ1r7fy<8GcCKmp?-d1*WME`~fCdHzCT=L3@jn!>|4RG(Q?WIx_>=Lp^!3M*K6JjcV?Y8GbApQszLkC{ z>*fE(&s$X1TmF%!=mP&aeO)iVtJg1SuUrxEDCp2~rI`!5cy#x0&0!Xryt#7&*Rs9| ztp=qnYj{0%^%Rdqt*~mk=5$qX)3z-uEUu~=8>-vS4LQmZ+ptLLjs9H|R^Itnx~?pe Z*vsRaB6mTD!(Ksf1*aMV!;{2$DgX;6O8o!; literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..5991d665d504fc0420f2421e8474c5a3a0df09a0 GIT binary patch literal 710 zcwPa<0y+Hv0RRC20000000M>p00?dX0000000061|NsC0|NsAHp@MzSUGd*SjXaQ; zG?g}?Cn5;|00000000000001ZoXu6iPUA2Tz4t3dfkP{8QuY&!<3Q9psp13{Eh{Uu zhFY{Sa@>{`;@{UvN};3_SoW~FB=LCOym>PoAGrVW=^Oy2`K^FODM}ceGxK{U;96-I zPsR9F7B^s~0>)}meU_EA6OYm`j=Gql0pS@V+`6R~Ljq2+C^i_f0Hr5FgHa7ujk=U- zmK&*x64doJbY4tyJ@FifgP_-;C>e0XIP%X>go)n{*Xwk`VAnE05Jo;9CGkmuXm`EN z$q$0F6dezV-4P*5*oLcJ7@_o(*|+oabU-fnFve)eDZ-~=L@qB`9Hi$cv0npeR=E}s z7Gux;tpUD!N8Zt|{*^2oi&0T%@o&?x2>`6ce6m)FoQ0GJaY9iF4ijd>(h7Ma3ZZi& zKxnOW2`g!)kc0Jb$7+6OmAz`pH_y$Jk~?Eic7{J2M3#$u#>`?O)xKzNX1<-s7Da!u3ZvFZcd$+67yPwZIS=9VqJWnXcVT6*4 z24%~q_oc{GX@RR#Uj7Y-w)Yo>2;@wZp1C(WSnT0pF*cqx1LXT0XDp2=$1$ZS^1C%$ zoTZ~I-3hejk%&8`O$Agtti4}!#q%6^tasQhVb$BU*}q>ca20$)k9aBcN=qXuLiSMX z>`rj~k4XcYl&l{(xS8P1{HV()v{P?+tzl||*&|bxyWZW@{DT7R7pC1p;7-jO9<|{= sSMVFmZA#76S%N5XJ8LI*WME_f1IAtk24)imDCa*EJleTIdxw)=&F3wJ_DZu3h`cFyoy&j(D(3VC1^OQ{ z5U6_|u2X%9MMt1_!W1SZH>R${1)Xl5n(EnatS*(Y{M-B1jOC+aW0jOKT5s`o!On+G z(tJ|Aam<^=8#bl9oxXp?g#a@x#yOK$-l$cYxp}$lrig=5WluggxlVukJ@4sT=EXgy z4k>L8Tp#uPQ3mJVi3goC9Xz$-Ry-=veBiUkVLI2oX@VZkYd#1rxz(Cw(a^Cu;)v0W z0Je8GB_B`vb$})GiskGTds4mgCoO$&X79;-%e6_&XBuLAdjB*zPsm@%7*xLS&8%J8 zT8-%?E9ZJtE$i+#OMCxq#mTLAe+n*LE3x|7uUfXJH})jCl>2*b*)l2YCC4TO?#5dF zr3Ejy^#{+mrFH2@JLkXcd~U4zA7o>{I^EtR+jmLjcVPX_Nz$iJp8wC7be{7)0E>Lx A`v3p{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_overwrite.txt.i b/CMakeLua/.hg/store/data/_utilities/_k_w_style/_c_make_overwrite.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a6bdf46f1091be151835fda73ea8ccb9f8c70c21 GIT binary patch literal 64 ocwS>*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_k_w_style/_headers/_c_make_header.h.i b/CMakeLua/.hg/store/data/_utilities/_k_w_style/_headers/_c_make_header.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2e790a7b6712756e4d0e1883fd7e797a92473ce4 GIT binary patch literal 466 zcwS>*WME_f1I9@V3`|EEpq&3u@Wxg(in+DhS-9S>%4}nSovY2ty$nd8V$Rx0XY-aA z@Em{tS;X$kg}3e!X`ySqwz5x~TXx|bJJYhOGQl4lLOk3$8_(U&XA1qz^i|O-=l{Qr zy4B(P_n%HPZg5%c_1TP}A>;6Ufjq@ar)Jz<@~|Xi7wdD|F1Cl9s#$(s(K(Axt#fog z=qi<}C+EYY{X{h@?EaU6MB(c(VY2IEvPx=mW$P_{=cq3Kon-g_>Dl)-^?d(oAN=Qe zC#L+X=N5-*^GE(SN56cSnZMXfX65C`?p10#bm}Z7vi=b^Dd;s9INh}Ka?eK(&&4L4 z>rxpKFCXZTypR#_J;G@9G{rhiqbl_PsjNl84=N8EY*@5)ui;Yd{HgiZ?uBRh<}#NB z1Sl0=lz5i4dD`_u4S~luDsA{4Bys7{R%M-ss^`LY*YZ95#-N`#tL^rm4-CxQStd~aclkI zFV31bm!H&&-n24w`RVx3{(zdkKrJEGSsQ1D?Oe1pn!&H^-L}>F(Yv+tzsVo+x)1{Z Dy1~}S literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/_c_make_install.bmp.i b/CMakeLua/.hg/store/data/_utilities/_release/_c_make_install.bmp.i new file mode 100644 index 0000000000000000000000000000000000000000..cff12622d29c4fe0fa14bf4baa3278aaf3159c3a GIT binary patch literal 11690 zcwSAJcQl)C`2V#^(#67_HjGUa{I* z6?^YhD|W5^^7(zge|+!robx>Y+~-`^eXi&Ie!rfF>Jrr@s{g+rHdIt^CjaM|>e9de zU2+Omry=i`j4m_RpBjHptM1Lb=1=v1mV4@FZ+)Y9gDO{_k(sHQ6Lf3M>el*tQPFen zw6A49NkcC}3|eX7A}ppU>Ir-CyWIKbal- zf&lx*8wX|o>{%=QvUUk*2cd8ffUR=C7SSVc=wv^;D9+yGng`u#R(h8^3Km!9}@N2Djhd2Q63h zIM*h4c>nRrb81A?^y3XzUrKzmP54w9+E9yEJV*L;?mimX%`o@K_w>krYn9{Xn&aSF z;p6(=(a!6gtA)EAb3^n&LFqx{!XMHC7m0+z-Y|ib-RP5otve%o3o`GeM3*f=J$rp%_;6P#m$Y4%`No!1aX^` z=4&pGmigLj^z%_lm9G)RPuA$n4tM3fQ9pf!?X@!78&wWBYNj~neP6GBsVb4Tn~PW# z;ZGgs+ZO#DTALTrjtA4Xq19kJlViF#I#|I-VQ zQhloZ*Gyp5U{6IuvYn@V_SbZCU@t1AKV{@TKLh*2akhu?^q50c_^C3%y7Wn%fQ6jd zE1nHgjx7U@EfeldqZZ)J!U#Z71mL??SfN&Ukxve=sE?N+Pi9%sf?-7jV-)IagxE7e z&>P*QBMLSyewmEp(y1lh^c8C8Rfu4>g6=5O@vjkOY-u?(sMZr~*u*CLcV!HuR z5WobuhRKenBYI)xNTvEgSk;AMNlXxy$hcC9nr+dfG*qxnmf4#D$clF^*ng=hgKG4593-&sZL5iG z>y)Xg`=F{vL-^j`9bTPyw%lJ4GK-xHPA6g>`E+FHjXlN@WE))X851TFdQBJdT@3im z-_S6?1_kb592uAou4N80_a0l6*F)TeUb}_?QS;0j8Y*3>bh&9B^34x;LDUs+?fFyV7tS*-?QGEm8Zo^ZW62yjPI1lCpsgd?E=!Q4k5qZ z8{IwI=$Ak0+B)O++!t@IOL9I%MiB9n@~bAjt`)tmWxdWPG);9)^KRRsXz`|{8soku zABC9%HNQVSmt|8fyQOsU5O_St704By8>oMS6PaCo1!ALkp`YcFk~;BB)5$Cor$924 zhU~~_uI_Q{SWSHbo;RlfgU#q*x1YdrDl3xq7!QadVdhJNp2i3zWypD#jmSDyDiCXf zL@0Hy;a2t`d)zvR4@xSPx1bw%SfJr}jo6Ok=ON_N)@vPbV??J6G^{$oz86i+kVl{k zi^Jw8h}(l1^b2RJ)4V!1}D2`VhEJxxbtE#>wA1DTv^kP1aKc zkzKb>+?!LWoLPNpKxHMBfm`l!D(-Z^o1s8HQUBaIU<5zIj2X|fK^7B3Ki4(Semuwq z8V0G9`W}Y;>L#UwSdpe9<~}fCX^k32_TxjRHbWI~f-ez?rw{$GCU>7E7KQOLm!auu zUB0X$Cm9SNRf=67KR&117Ixc9pM>L;Q=sgjO}Ae%PipTUB)* zJzaeKj}!;?2QPuQu_}qnkr_^gCcHxfBdRQwtI_CJ%J*;V6GavwI*{|7b^diMq&~qv z7vndkfH$Mj)e(3RBIBQdf*U`H2Ko5Cdkp#p z5R+^iW^jNza8Blctsf9g7>%!|Y1d(KL9o1^NZZhjS$P%bEHArf=(OJVA()-d;=6yg z*cpGf7g4K$_|&_VymwP}FBr<6_Sr$;)Af@qG4Jf(<-4JZE9^wm4UZZV?lajnR-`+*fd~=<{yw{60a}$pb=h_({J_lXu^BtO1 zZ2wgm9tfyJWI@{zRP)eyIm148#{9CqbF@fg7 zWb9pKi0ZjxxTW0V^EuiBwj^wd9_i^7-!QBWf}rA4t=0`bV&l?Lm%Zj&!Eu>2I%5te zM91NkQbau?cl1vNa*>Vt0n&PX_PgR(J6EFXv>YW_AET5qcf?WOloUVzHo|mlW#=N~ z^@C470Y{%bXgquf`GNWeg7yE98T#j}==-ll)-N*M&jIawAlApdAuOySihX;q&AUY7 z8DSb5kecgC`;ihJhxz2S1^CsxkZ2jHqD{49+5P7Gic#R`CME9M4 z`D5V~hsyjCX>k&r;Stm3#Mw#|+kixgLs-tuFZH21k_c1`2%%{zz@LI#^9Ncz();jB z@GjKgEFk*9;seSMs}2I9d#-B1op4r#s9N8U7;zJB?pLfHa`&%aM2#SEBt`~F)_v2Utaylbf4wKsyKnZ`w zZ+JVSi0T~g49@XcTL{&2ACWXr6El9wM|ec^bOu3_Ct_;}6R3?dlQTSbk8?l6z4gy+0rK%UMMgqXFFTNMWu?j22z;TPYS;KMZ{8&ajb~Dt`fh@hKb#DZRWn%sz+vGA&@t&fI{we>@mw)~1TWzjaxM zh;L=^1oDX3mu!gkupv5+(nbf6$DRNytaUOz;JZgxkUajbxN5M!7yG+`=33iqY@yxG zgI_4k5~Vf+u5b7Zgu(Djes}sD#7rF0;qh5!T;lZyT3qDg?Go`9v8l92@O=EB5hITi zLn2CPgV}cN`Vf8;RHS_w^IUnD_Q8!^HZB!XNxcjG3ck%qZ2J*p$~4zL zA>y`LmgZ4l;SB{N>TJd7^36$(DUH~d?Yi65K1nanf5hE-aXsTU@m>eKlqH1frMEeG zeLDo#WW>h(;<)y1ubu%n(!hJ9=+SnGCfQrw|MzZ*;fHF4mhTnKq{fGno8DRJLQ<_! zToX^Oi*%L*?MD4qtp|TjLK#}_a6Q=<+=EEY^)u9T9~D?fwk+5tDGmOp|D1t15U}OH za8&(?IAy}vO7G>KGg4&ItJyJDB{v6j&!H4z(N$g*{z4>gY%*>|dSVc?wZ*Zw!v>Sr zTHSo+urmBy>0RG#{gmWmUf^9NDad(u*0Drf2s6g#K@>J5L_$ooQAf|moXiRS3;6XU z_vJ@&h|m2yjV}ytBMrQ;pw|A&{MYngljx4?iCFp2iciZ4rebrRI% zx-&iN0ox#G{Td+AeHlWMjv|G{qUFjC>ninjj-iB6LvWT$^4n>u*@r5*Nr3_qtSR80 zdK!l0!pFt@Ezkd!d!(!}RTc!FY?MAt+-Ak6Cnx;-JL?qUajY-ZOAKkk>1Q6vwv+f1 ziWC!;CB&K>kY3*^j;plDCR`niM0Kk7!j-qola>$o`lhPxwc(kfq5P9kETq>_P~WTC z8c@&6459f-w=FIlliWjpdf`0w>f?4w5{zT{ciLcwbLe9XcoDBcDrDw)_UIY$-nQ#9`2j#y(BbidOpHfBZgiPUrl5sME#Wmu zohQ9o#g(x`hs$PW&Xe$WQ7L{|NVMGYBvu$SCI8-Fw+7Xo-V>t4{!^qlYgHoSYG2Kw z%lpP}2g!-cGZi9@DEMkJNO`qVyrVGON-)Y?(eye)Ocb^Eo zt)cA$`NxVK0!DxS4eZuQgqLfJMWo7-Fd(PNupa+Nvfmd%(?vf+0myT06$fI zr*!xGY&rUQw~Q~+tphXv621fB-EenmHUGJz&4g;uS7g2EqUY$#z-foDqu)7LPM%C< z&Z|ZKW7K>kWvzk^qj@UGBzt)NaX*VB|97-7}K(6X_dU zSQSzi^bJpwt(8tc-tsa4Wvc0}el{mC2TlR?279a}L=#@Umg=n!&TSD`{E$LskfV$A zyAN#}2^_Wc-+bu5O-MVwWclu6eb0Q-MfVSae#H2q*EQ&6jMcG0-1$)B=wgdhUTu9` z?nWx6zR)f5c_<6$i_+wq3$1StXc?8RJ-P&^&NyItp&R5A9SJwdd25TzP`sPPUcm7V z!-p9)D)~FdIE)7bcY*|KE3Vh89z0J1`75bJx`z@3kr2E5d1v}{@-+&kigt~6o#~9U zEg!$94cnvmB>Slxpl)>|*vf8z;ni2XfNjbsZ|$uEqDM2MjmQDk9epQd;a9_FJ&K{` zj!j)uguZQdVK~#s#}lOWhDUAS8;lstB31l+&cN9n9dh-+S@qTi`H21LR*sL=;jUEq zZqu3Z$&9@!n+Hwfw$nY%y|U@$+>xc+%#j^AJXCRHm$9{^-T%s+&Zq;p70wO371-j& zwcs^~0%JD1(&}FgGK}%j9>e{?$wrJOhP#eAVVf2uh7W(*iVRDuF64kHdFSH4N{>k( zo1FTJ1IUKOPGNYD?*Yt~zdY~oiWBbA56bk8+`&Y7Xn){g)(UVDS;I=D?3Jg`JEzFy zToT>o*!h}+`ndR@XPRw9ni|eL)O7-;QuhG9kIc`%;k+8MW20~&AxM>fPwBUf$5XqH zSwlYsWH!=+RiDNGCEs|!vF%hgy_nO`izxV|MZ@r%D?MlN$+FR`^{D7KJTqo92Xt|k z{S`X;t!pAvytQHJv9F?3y{vGpgv3qDS5c$?k`9Qidbmmjc3Y8Oh|&zd?mApAxzm*O zw>M`YijnmirkSYL3QtW$tDHwIN{dO*n4Iu9amo-@b9i1Wb_$mZFL>iv6G)6at&{$} zX)+lJ_7oUeVRN28b2Q3Dy)(UjD*Y#hFgm9Ps|L{`nZIU&vhr?}ZfhPoD7hJ;KI+lv z=^3OxDxTWNx!4ei&pw~nsF3}Oa&U^Z-9uh#9+X{mFg08#9}M#qUVhDgQmKr113OEw z$j>-bX7wzl^=J*5_1w1fmPWOh0QfzfEl+f%#29VXNVoFw@6mMSdC|;YQEJJZ?1v~b z{PO+I5@^!j?3hG^WG2_A=;35ST2)TifTnJ_KB=1?=BO>wx(!08NYzPmBXFRIO~ zDqUgVz2&*k-8rqtv{|q1OgWdp9Z-d3(`&7a(Tr(9naofX0X;*|i-h(-_D>U6uALun zm@7nPoj@_JUK|l~T|+&^-TIP53!Fi?H5mfM3(So=szwjr7yIiy_;o!Th3!1}Zu_*BVDe zC9gEi0hJ#p2<(+Ph76b({H9U~4jtYT!`JaK;v1Vd94KiKhKLfov z`=wP9cTE^XB)sohO%H+wx>HVxpSA$Wgp69fQQIq#KK&agk0dL*tlZ?d&C16RL4iOM zh8Cko%MHBW@Gi9Pr8}|cYRI@(7D9<*MS5`A5*1=-ksly)_Dnl4a(6#c^g3_54*t>h zo4Pg0A)4}&)#h4Zg9GZ0`ic`_5dvf#3Sh#_RB(ocVi@nOw7EoD)tOiNGc)-A-_S#k<3J0zSezAQoYP-6_4~7Eo1Lsu~V7U(;Uy zp0@imv-e%PwZUXw=7r-sEex2<_NLhGx=KOdoRAsaDLzJNGM5qpuu!Epy5SYtmi4bS z%_{H|e8yNXFtOJ099J0`Aw`)PSZ~1@vd2E)hsFTW7sY8-jgMLHOH|58oOc9&>V?xc zN0Fmiljg|+BL|AaF6^5f) zfrcT_K&OxsbDFXCs53D6*o*zjHmN?=J?MUT$?FgZ-5>k z6iOSaG-Nu{nf8!L3$caaeZKmDl%qkgs%&3TLA1f$i!6IIYw$9AyCVZ z19)=h>)bt}>u;m?(XI?^LmStl*BT9NLM^u$f5P2wcD(^2uS^s^6X|(+xW}mUD|RzM zc+k2Nw>^W_k2={k?~Uib5r>Vc{J;<$S1LD{u%;ikZT*~Sb&_#mERDH8nFB+QvX^F) zu1|<5ykWEUh+@I>`Iuh76V1;JRiYn?HhaXM8BpJtz_N#zW+o_=Wq` zQd|ErYRQ8eDaRuUkAb*!9q5Ozz$_d`-LMFOfkjC%t!sLb}IH35msyQbLF`B zdgo1?!jF2Iu_1@(LsVd4__jxR;dd5~(2oOvM91M=b~nkFN#d+!G7mdnr*qDoM{RgG z^hQs$ag>b+r5ov({9MLTWkib$Cd>AW^L~xqUcXveL({@Y43ZRpsVv=cRSjQS`xt7e z8H{C6qheJ0M&eF*@=an|?#QIvIC0l-9LF6Mz2NkHa;6kK4*#+-lgu<8z>2yx2mXV7 zN}{-~3cg?vP@q(3Ca)_k5pT=c3SY%$Aj0>M81r+nF^Lz5Q)w@>oHkTihavF z^DdRN(;#zCX;I270z6|o!FD+Qu|O#hU9FW?nj78ctFa6rGiGtlf@v9B@ysQI3J(Y3BpXNtONc=l*D;RbZeYS-$g130JmbiaXkUDa9&72aR0BH)rygK1v1=UZrI9ICA%;`3Ab6?`#RhjInGa z`rnz7!6}p~IINQ|sR_ON2w2BHQa;lUJ)g7lWvWxL3yf9#StCDLzS*sP3WfcEs=%Z* zl;(uZ=qhhr8U3{2@?1B{Gc&K}TYp{82h;IE->tByH0)f%7y}WuMP|uafG>D+j@sVE zPhWPSq{CTAT8pU>cu3k^HhPOLwthdmg8xjjJ~{bCsp0ix*#Z3f2<>Goa=GEoU!r)n ziFYnS1oLOn8skZitJLD^@g*ddv$lD#vW9DgKjB zqZJ_8)~CxgHyS;QulcBpvKc_@KvaQzJRP@#C0lha2|WGanY!TAz}LLSEtL8CiDAhl zR^)~#Uuh{-zzks8;?WLP2eBsJ!P~;P%trK*jUGXMc=BpIm~T3(RgMCcaepb2>C`#`B9=WVsI{GJty38>$@enn)=I!9zOtH{QY4wr%wZT=-Z z3xCHR{Hb!4wv^Ic>uIluzTE-VhgXCQCWQLN+vmy5acX)3w!h7dx_hX z(a&n>gcn)k6Itz+J8!OHyG&E%*UtKcfpFj7{`*9S4-auZ|J0JVH&5vFUt~F4MM@>B zM`QRO2ZXn0zZ(EZveM`0f-f9*MCQzKg8&W45^&xd=dVlN3Z8T#)yI80)A&gg<*c~> zoFVVC$+%I#(~N(`2jw_1RHKMP{TcZ7KIFI0PbADl5EKE2qApE;IisPy@WhRo_y}mAHC<%|;0Qj*V0rQxE!TVkeluO* zVo&CC&QJO?@Fe?9pHV_(bdBooz*OuT*$*KzQ9rG<4~!FgKbVO2kb}kV?;b-5ymdh0 zWk4qfMhCHU?ue{Sj$V%&Ekz?YLqHNeNSz5S6!Jjb~dL>)03q<2hKsu1V?&8>}(G!;6}? z9Xi0F09W?i?PlWF$}W9K?l>zu$Rt=OogExwJEtQ)Z^^ha*=tGij0-f0zY&SzYxl=k zsNdHTr?#7g&{Au`x6_U%mFxfe6yU=i&`SH1nF zFK%yGKp9?~HWie-In(-#Hh_EyG}QdLwjY>*_~9mLO?Y#P9}w@jIiqFFeg>Z2v!2n* z*n@wntMWku+dL?Y!B~Xw!!iNk@9!~Ueq7-8-o~?ae)!pOlDRcW<}ClV(r6c_vL*{z zGp(s{D^55al~t*}v(WG`3ilY8WlaYhFx31ngL=#B?r71Nvs(uClE)O#l_e`$3TU!G z(~=tPKkg~5)RRZBi@RSDMpmBF1Dl*b>g5F-z!qIi1004ulV-E-uH6{pOVsu5-b7EK$G6>#fLk@!g(cwFCO zSOr4fshD1WwKisyf60l#u4g^{gpYaJi*<4I_Cl`5>_|LYAavu0N|tnm?A_Z$^?I7i zQ2li*AK=Fn%OM-|3eUY^=?YL87jhkdg0$BK44(pR)h%JTkd?<;G>;Q^A6zs} zRI>g}BUETh{csDU>>SH`Pz|!DC)j470u$7?0PWo=?q>}qis*YqcootpvlbjG!1MYl z&_B0jNe|>Y62+F&P}uC*CMKau+q4sQMKp&^y~k_f{e{+Ewr{HO%4<gO zI*LkfX7r9L9MHhPzM3Crl&ogK^kdb3AFhYszlL#h)jfJ>VZs33vdfE9hr!+=9mi>) zDthlf>I^C#xQez4xY&ez9D?nvX{vsfrjvzxP$Jq+bGK1-^4zKPn?6q;rQ7%;N&tR3 zxZ7P9ICF`39Bg^K&i@-wILR(a-&+qQrOV2YELw z#5CnwP0o1I$x+*M6a={e$eXjaes(O5Im5Vw4kJ;*HX{_~vi*02y4buulOPROQ?{1? zVt^fWC-2x5)7i^sd?M}Alfrq@Y3*P!tu z{ENO7IL8``*<~c$(@q)BkPix6r&duun^G}GNa-js3Ab-MTI(?o}M(jLuCmejN z*hBYsnWq5%Vy7TKQEU%wBG+PXErg#^aq{YFVmZ)6|96Jj@@8l$5`Q1+*eweae$OE$ zk&>S&5R{k9?tW*gyFb<1h#7C3sOdSaCLDD2&9uzo)|wlvF(8ga1vmf_J%Js-#I1eC zgFZIRP!>A)h|dxq1O4UQyWa0#U!6iR)O`#4Kmy;7^~ZsC7@>iNoIfS0ebikGULnFI zb8yRy{=V=imdj=lM~54t^sCpB+-}j43G6Mokr!8f~=) zST`e@w43>x}a&?ER_@))e-kchVTlS!xo`!!j5l{n`DIVAz&p$BNsPnWvf@j!@GO+Nl7NRuHvptTdDY_fpwYWg zWI9-a;-?%y!1O}R5+dxe?P`-!`1ee&3xGyTH05a-AMFV|R+;#lx?3N;C6!5e52 za(~kiPgmC#jHAcyDmiD16+QxOXCj)5uUtBAu9NyP;)^pE-6y)N12{0<3y5juLFwSD zlb~G(Z$G8mRx=q(GmSaZ$})sz1FkQi#$uVqC3~w=>CINzcdk9omjUc`Iom>-Zq4Vd z1c|Yp?(yS{lF*ih&tiMiaod$-hZJ?fr0sl>;?&;s!nD8DbYS4=X(sus-?U#kg2J!0 z`$atJK_0+A!^yM1nG*++Ifjx~hoV=9l4pm4VdgQ~?0jGwjL5}QJ_oZ_Knj?s(*Yk# zBXonDw1|xd_mP@=$Wf+_~^~YgGSv+x!R0`;LOSVOylAn(e!&E z=qBBaZEQ~(MnKEbt4^lj--Tm}cd^|Qbe#~z9eT)afesAkJb)o-+j2`k*){ASD5hFV z`+kqYFu+9K!bE;yDtcTc$W_q84Sb@o(@Mq1oMoLf|HOUt%d`5=y2ES~_tSfJwM~9D zZ};yU{c%+ZrEC8=_y=ldcFkA8A=_c=yXJ+? z@gbf}&^kWTsrJlDKFT_~h?-v5e*eAPoAaXJj#IT7JIm2wm_tqb#Qj=rxcX{_)X#Bs zifqbTFooIY3w~^?;}?);fibZ%g_&q5(sslBDTot@%|LKq#^#hwH4jnlrno!PQ8%xh zO7GVJmzV)$h9r0TLzA!%jUz85CKqIxBPC{n{p($5VHaZE0IPE0vi!cY%x0qar(ZX4 zm}vzjhRz?{(DUIDO6->nL|4}oCs5enPb;BuH3HfMj{lf-cynBfVcxtzA>2ke_>Pr< z5%mGKndn&!x(r~#P-R?2=O-}p2%SQC_^A9SkjyWu#7$LaMS(~P?#`KLo>z1 zCP^I$fZbMFowg{Oc7KvIjNH9p_yIlIdp~@~#QP(>)@+}94&4IcafJVL3v5T&w7DHT<+fu){7Ph$-z5NiYRQ}E%I;-v7f59yDu2H$K} zZ{`fO_zp`i*E8`ps}sM;-UiDgX>jZ?g{H%ON5rJnmReGe;bcg}9_H9Xgl`XP*-jc_ zrfZZKQp&O_q)^?fT)tG>>TOp4G(^Udd8T=8t8tDl*c#ggiNJgF+;MI2f|x}1p>^Yc zr6q!BO~P^y8ob(F8r*GX159l1Y~lUIW48N~S+wGneQk}y(aBVpSHQuMCuPNXiubCj zLS!eAaG7@cVW;zz|AK!BKlj7F@Q`ujva)g5oS1RU`Z43U&u5IodD6!CEnVX%KB7H( z?Fd{N%6*Zk!hQD?%UztP^%Hv8nu+e@z_`Zc`wlN>O0!>Xgwiy+_cxdv5bz6NkW#pA zFS{2##`~F+8k~FhpamYV1y(>$V7XBl<)$fH%7(rH+1jVAT>>1-O>b?cd3gQIDNDyxoD{{n%M}aK$7lwn53V(>v z#@{5jf#n|+qC4;p8c)-c_{*_A% zzYD%_8zHCM$r{r>a9`fTg=o{G(RqNVc`HjBk!xussT=L}U;xZK_O%>^UF+!tHCPUZ zXi7@UD<41UgejxbL$ok9iHTsyffRY=w|db36#%*167`R>01@K{YzkjL;L3q~$zjenXW<8l2y>^pI*vX;BZr-NGe<`HK zY@}R#==$T1tY(66QAdcF*D7p6-;A78eAj1hE4je8xSwtI1D30rov*VZ1@jBeJhmN% z{bP^A!9ZFbUlr_B!Wz>%!%)AJM5?7td-jGt51|z&?}V@g)-+ORD()w&U?GIoMG3M> zY6z*n7hpBzbM!O0<0u~760Q0)W_nd{_T&25m9?`=8?kL84qAA|-03&&rOo}9M<*x3 zBR7k@P5l?b->eC>&C-?+Y|T)O+X8ixdPelN5VU#Ep*%Y!;a*omf-_6hEVYvaFR3YA zL?O}7x^}_|j^@M&)4QV)TPzxB1+g5TvvR3q1Eb#FyPbt1!Om|loA-X{;a58No3PJx z`a=cXL(#h1OZzY`sE^;C$fdACcS|{V@u@mWePwoq z?`00!jkgCb8NEaxdGp496L{**j(=meSIDt#5s17}a!+NLKlS4oBtlT#b0%y5)4ccm zBT_(NCahnRSC!dBE5D|O{?Va#T@e+OSLm)P0P!!k$Bck( zdBuTn!kLCV6gh=K5dUCKu1BEmHv(4d= z?G@x@&3ctu97(npmmZ($(&Ci$AgGd+-;{(qa$RY`ZBT8nAU7^I)n)ycs@yZBemOxE z>9}Klq@g$s)D?&1Wt_1>Q~$!n0kiy6%aGdlo;F1fKNFxQ-cuf4-WZ=Si7;^V9&zoS zj#-SNxfLs`{LQ5%RHfst-hVqJS~c=9HX6EK1lPene7RfD`c7n`l5|1~UnX4eu>6*k>(5Ftts1 zRSRXIbKeIkVA7LS&1VA~s9|j<65w2a`)HO109xf)q9YdT`M>fr0B5~zYhrbY2yF47 zqrpX*=oE&oYy0dT9tuv5m{tMey|$!>QC0|C?iPmQMV2xAH%5&>iLxr|BNQfbypMlroM%*OZg(p$hIQ!$r1f~cTM&EEw|cDxhba$ z=RCE{9Q{1&4mG?lj$Nab--1^jh1A4!4r-B>mUHe4byYdPx+Glj;_i@l~ zz23}a*u?!;welr%Z*;h+dh1OU9?x^OB6{PUhEr?Nevv+-1ObL|p)Oxl@sl0S`eSU5 znV8d;>o)KX1+-tEZgk$I8#?idbW0h@Rihwb4BKgX%4Vqi#{7HGct_@^W}n;0)3qmN z&Kus)qDiYyQf{btzOoZca9i5ljYT|XRe~llMh1Eqm6^}MeoWv`1vHA@tn(;fnj&$@ z5Z5(XbF)Fq=2tbvBO5J3Ud=(8n#HVPPC>`5pIjBzM&w^R>U{`b&Yx2OdH6^$n$2M| z(nRC2vAR&kiFqZk4PW`g!q)paC9vEiV`6!<4+$;n%0W!AhbNwWwX~+;!Ia+k0|YN% zc`4=hFakkmb_#rV^`hO1`?FRk#>nU(&4B3V*fn_JSu3oJeSRxD^g00#3c<~{}jZ%|ro&{H&I25!Nl|JJQYI}OCEOsdH~6-frtCQ2X5` zAg5b#h4}(0rM|QCYRwK30Pa3Utd`i#0VKDSo<+f&8oT9aC}Ja=;17_$99Sy`C4V>D z2^LhD`khv_zQ|Jl2Y7#U96;-qEXEJ;an#rnPQ8SbJ2W9N-Cs@>5 ziTt!|5TT8AM|#~{G$*VfXxaTDIm`O-&vx}L%6R8(Hfb{Ap84;KN3zGqt$irv8B`Zn zrJX9W{`y7xE|S)Z#aKrPmkE*Q9))u4JlVd#*+6&k2y$ZFI=+UIVRGr~ZVj33TAx$X zEcUv$f^o<;<7_v}%2g?*?&}FJdv9)gVaGs}!Db1LM2Rh3N+r{Zr}N4Bd}eulYqHtv z&6ct4h_0ib((9vcnN4h#jQMx4l|Gl(OZgQz4{u%>Ih|3!&iQOJG37GjzL_^6aSDW$}s7pvd{6N3q$R^BznzX1zn2*dyY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/_cygwin/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/_release/_cygwin/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..553e8777771e893c27aa94365d307c8cfc7c3e06 GIT binary patch literal 526 zcwPYx0`dI-0RRC20000000GVb00d+J0000000061|NsC0|NsAKmgH*m8dJyA$r)g` zNWuTS&W&0C00000000000001ZoV8LxZ<{a}z2{e0Cvdg*)mi*rL-t+s2SVG-6$!3Ugnd2m(p(2HlRH9&Sw!vfF z2Gz@|t@c}^&6U4s8gC?N?xy$-U3;S_6BLshcZtS_KNUJ}gb<5dp5@3HAC{eiQk;_; z&~_dkJ~=&%kjw?+u`6gy?~tJL1QUuJ|H}PwJ^Av}>m8k*|JgyjNM}?GT6VgZx3@6_ z$>D@x76R!Z=lEbborjJH<>AG-0lOF(@Y9>2iL>EP&0PrI=OQV-rHb38)Hf<5%Q$kH z`f=!be1JqfJEcZab++5|#3x->c2OSp-tC|Lb=~g#x^*>c~%7 zRGpd;CNydQ00000000000001ZoSjr%Z__XoefO`pkD$?nR*Z)Vp?0B+30h6l5aOwF z?c2u8v4cMrWxt+lH$$zUq9PAb9N%+&&bcQM4Szs3I_qM0(FD~XIQ$uv!v;<8QwAXV zU8l@wTwE5D@r&2R`0{P}rkuP4>%d@#jqZuCQ)*SSxL3wB<6@ZvQMT+qfz7s$^$b@GL_aA6yhcS(Eig({k|uv+8zU zeO{;A{Cctec=KhkUd@+_*=X3QzF&X4Sy91#^=ZBOy1ZK4%|_mdB5+r1o+i`^Ky9J7 z5u!)%7-9>-<^#Fb5NhRt0Fcfj6JCJ|&?(y4Uc`l9;+DAxhdkr~J-0vI`at@>i_iA)%s>xAy|pgD$_Auik_-e% z85P00e&AGdho@PU$_O1L0_ks~YpqA!gRy~WE64~5JnS0{g{NDk;2%})vkE}0*j8!u zY2d<|z$p?yw9+}yAU6TF1kN~5xuhrHriUuEtS&B~b#~`?QzU_XMpD9L1_|4=N-MJi z*&E*M^8x9@;Tw%mEr~-aYPgX;Wl>3F)b9tG8AsS5BP{Wo#WwMHgk6L M3wY0d0XvkA!d8zgr{hnWO$`B=$lC*qmh6c-6hq^LUsHSOb zU=jlT)NW?kk`Q7uoa~ORZOy2cwTGJqe@stM31kBo*3BQ2T z5bPLE+_CHKINra0AG_a9Yp(01-u`4f_0k{V)G%H_z$g(EX4_~TLKra`h=e^Fn-xCu zhGpywfCm251lTEN80oZb+aGlNtBJgIF1wTWy^q~VzjNJfyN;qW0oPf^UZn{kibVqW zxQzv2z>_TtCTqF~=Ok0L?2DE6_YBz}n$iYRAISBqzIqBT+M z1}OZ(6k#H=HZn@L`|R$hpG39Ys*J0n^E_ydfGs@;7xjUNrK)(S0-gosACB4}e2`gi;MthbdHK46G@r0E`>6%`zoW}o!Y*J& z@N>)-+YOBcG%z*WME{#1dRWoUQPrLGn6+WD*P;%#Jw02?S1MgRZ+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/_cygwin/cygwin-setup.hint.in.i b/CMakeLua/.hg/store/data/_utilities/_release/_cygwin/cygwin-setup.hint.in.i new file mode 100644 index 0000000000000000000000000000000000000000..c0596ce92271ce8614371b9f50bbebcdfac58afe GIT binary patch literal 378 zcwS>*WME_f14b(b1|}f}DCa*EXv})`Rrirx+N*`8j5X(v`Y(JlTaEzr$`J-?n~M=9^m8_2kSsb7OyvzDJV} zh*(X(KZSF}RJAMDoWGroo%vGyufUw`z2doQt_zO+s_RYvrPh1qa`vid` zZN@pPBY|Hkz0RVdnu*WME_f14cUr2Br!IDCa*E+_HF8z>*h&F(yT`|gIjOH?ww|L@J;e7lR?w&G^Zo|)#x`n$hf zXbe%(coA3H;t(A)ab4hT0bwED`O`i~PPv?`>2hCExJydbA6Z)QP-LTMQsCwdUKYPDxQfMXe=;Ft^4l-h zeioQTbJce2JQ8C$d%^SsVXo2-wQ9zj{+v75Vt8`HPwVbEf316e%nf1+WZ(VRvASii z^t6+IZdT=}cSKZcBu_Z}{ojGf0lT*LS=47M@4r>%@cZwz2a_F+sTs8jTwQ4y#r~7Q z&)4c_fz*txxLUrnP1no U&6K*5GhL#>OnV>0)7T5z0Mov)$N&HU literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/create-cmake-release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/create-cmake-release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..3aa2450245ed0234ff8484a1e31acdf4d2383dc9 GIT binary patch literal 585 zcwPZX0=E4C0RRC20000000IdB00epf0000000061|NsC0|Ns9#btvPy%6eOhdIQ;2 z<(5qTV}}|500000000000001ZoTZdskD5Rf#ozf9w`w+Q8bsaI^r3A+WHu$MU`Fij z8<~YGP6|WAfQvDH_YVGRbk#nTgohb^_nbR(X5e$(^?b0&lj9N_hGXlQ1V0I#I-Yy4 z0i-A;i&1~Fd}|aCN<9jV6ADCDK!kHHFlyXuC?bASQNm17{>gHp+lY53((;4FSdhV@Tjwfr+oal`Gr!t#fK=yn6ftB;yZu#{`R{h&1!*zJo!|2EjuR8n)Ep#DM~pFo%+ zE6`}IPtx49qCIfg}+uk-^yoKZ?#KbU$mIwXPZ(2bd7v8+up zB^@sGIkeVi$6`~Tz-<%OWI|l~Mi*M$d_z0>dE>F=+8Z$J6ZG48DHszt%u&ztH|DJ1 z2`@NGlkPUhY^~=T_zGr(OH-6d0^jf8Uklq7eQZ>Hf;$bW0`nA%7_$_Md<9=RRks6% zd{b`%y-r6Be7G)QAQX%zV9en^I=S0j*JA)`RAE>a82rw&P+fd|zl{(s(kue@xw?^n X%6|W^XwXtX+q{k{UrqZ1N9bM;o)rsG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/dashmacmini2__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/dashmacmini2__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7b8fff1674f56f5283d7d5ace5297ed96264fe88 GIT binary patch literal 378 zcwS>*WME_f14b(#zQ6$G{D*=XFB26trypx2M0h=`-zFYPT(IsS0}`m16FPBk-XQ~# z*6%j0qJ|S1!xjaFZhe)|Gdtpm|F_e)~1Rb&#mo_U+>L3 zuIbMqs`QY_*LL|!HAf|ewV|7JL*t~f+X`F6L&~i}uFaNolI;^3+8ueiD24K-z|Z%uew^84O>%yvw&GS0SJ1sdS0+=M1Kk5n%{g)&+PmbMBCqgUT zlWA^GFlWetsVwsX(=~RAI4Da#eqo-s?p1!WI(zoMlDjJoy)@f+aqS<2)@`e<7~P+K z^*WME_f14acP?qYy){zHM6cH(;*M`jD1(`kI`ny+7dYNn>afCMV$`1bqfH#rC# zeP7eX`*8ugch+pVSzk7+i@tke{@Hgku3T<;5YoxPV&I$n;~ne8ZPP8!{61TqpOtk? z=|Og<+pkH{o!qHQ8cyWQd_DK|DeaXS#-I8!KZ}Mx=~S?rw6N#VEU`>i&)|^z?~bgr zR?byYT-)1|x;b%km(GUR82MMVzbw|QOO)MdVw3Q0WpVL;mS=r>{~M?Ie)SDo$aJ(; zBxa3Oo`&sxjrzt7S3g~C3VitKZP;1KlHFla&jVTJo-%FPQow#NXNj_jc=ncPZlePe z*!P>ATG2oKdFDTp;$44iO@GWxn{r(J&=QNOu6~uqdXJx7FqhkO0Ooy6IMSv`OTiiA75OG-x6n9a%9Q>e-EwH&+&J3R~rBTqCun` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/dashsgi1__release64.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/dashsgi1__release64.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..7dac377714381138106b9971ce141b9766d75b18 GIT binary patch literal 381 zcwS>*WME_f14dgQe!u|b{D*=7xy`2^tGe1rujAfuF=JEN{lAS97?424oYV=9*@p}m zTHpT_RjjzstS$X0@qyy9z~)TpNgUrqyv}ZkxP2+?n85$vNsIk%sJ4IK`(*F*YbDMy zi%c&z88oR}WE5pt9ihVT>-n~i*}+#^KlWFCpKEsPcw&{wArZA)-wEbwuU9=ww`x>g zztz7`Fj*;8N99KWSDe9?DGYt{<@VhDcRAvM_h#`-QE%3=%<7EqKX*@75u2hdyKsWd z$&yDA`wt$|XXRqFxjE?rKZC`NJyPou&b*)D77}>G#H}K=_MQGS=~GN=h5YQ63YkQm zd)IAy{OPPB+y3NK%|}s!E9Kl&&5j(FdAN02XNbz1*LE7BCDwCqOq|zyf3{!!(^k#P zlP^Y=u3CL*%H0iqyAQA3(0xc+(PN3p;-HtTsZY2V-Lp(TeKOKMXKgGKlV`rJ?y=UZ RH)j9V+PmM=ceI~)8vy*ytPTJG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/dashsun1__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/dashsun1__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..6260e79c6739617b7a7439424f59f72b7364a977 GIT binary patch literal 477 zcwS>*WME_f1ID=w3{009pq&3uPW1Wu8Yb|R%6|3y(jkUH@7ct)xW^EDF>FCm&;8A3uWWU2?Dra2R zJKybU9elrzHfZ*4Q`3u@T<-h(-QtOl-5y@q*1&&aeav!urkM&0+!}iXw=V3dc(H#) z^O;%S*uE^?$p15ciOIrANz0UE-g11}d$IAx<&f4n-inONy@V9Q-+4`b8|CD-Y@NYk zov=?cCRtl>R$Kq^5LujfCd_0ai_n>C(r1p;PO{-G*i_zT#*=@vwoY>1{p?s#%cyD3 zg>;>7zg%}>`AU0n1(A9c29tk5^JD*STEwq^%3(*|cbNkPF}z1bPT#e9kt;pr==q0F zYP0XAZQ1^?;79rE;>%(Dzkd6K9GUynrAtx9@yQp>B(n=#C029)4gvhL%usBejH$S$*b?)@PH_xPBPkf}DaXjFP Q?l;3ft=~CkbUwZg0BG0T-~a#s literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/destiny__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/destiny__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..e6f2865654e0fcbb840101b348448358927eca94 GIT binary patch literal 416 zcwS>*WME_f1I7df1}1R^DCa*EY@5Aup{7Z&c3%3wN{y6DvaYk2buu7JN3lk_f}J+Lvib-7?iLz`mJU;pUesZ&>8s@LuLpIrQ8>WR}AK4uqxcbSmR zs50+-p~=pKO>5tVIO?cGW!@Hf_B&+eW69RCM$O}&xeN9NzTf2>c|_%~qJR%mS4aQvAFrpFf3a>dmZR!&G?_(bzRlbSW z#CXNaw_jhp`*!u0*WME`~fZGfVjPg)6<9{gd)D3d~&D@;)IH>-B@u8VoyLR>TF(848Ille2{)Y_& z+RFcPX}_Al({M$w^B`|tvT3jGZzF@biwaa*YeJ6jtT?pojAzWQ{1;-m8SucgCVnN*8> zTxYRPTpC^&yy}nS!=oqM*~3J4t9$E)D&O64Tf13$tztl;z>?;8!5qy*WME_f14acPUdI6C{D*?HV{ywrZoXjke5bs0U}xM+ZuYu51|(21XX=F5>_Y}3 zZSQ|;JAGW_x+RBoVv~5JSndY-NiG*wPbl4}{kq*mm*>d;eJ--QZynVWI$>FPuCijQ z)E?Qhf@wO-d2D|6nN77wmoeG&=IMupPxekbq$~F9b=x749ld`--tBD^(CAj;ng8{1 ztwlqU)nDBSJq1j{jS5|c1+rU~^B7N@AkOvDFlsW(dxie+gDZY7h|&=^HqKA`xnSMB zH<{fVuX~+;%I|G71+ n*uWJo9>IOT@;>$6n1&PpKQw+TCV^Ahi;(0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/muse__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/muse__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..33dab2aed0c89bb8db2a5429d24268a878b38a31 GIT binary patch literal 327 zcwS>*WME_f14ecrPGNv@{zJjnMNAvh_T)?W`ksxk+RF0c-01~f3`n42j&HwxezSqV z(Q>=iR-*$Kgi_aBIcS)-fl16ZqbXNAwT;Nhz=ulT8W!3R&VeabhD-54^q+FF`*%II@V6J>6O=5qoNY&)6nk?!e zUV19G*4)*27_{)6Rb%%1a-D6$7S8`RZch6*zv<7_xAumMm#;tji*dso&9-1)15cfo zO8MT?jz!6G{Zg8m@blf*iD!#<-P!DvZy6qTv^6YbReV6_q^fJbIo#^abiahM?~>bf z`hs(QlXt40x7>4QFU5>?C8w5L%GX)Cxu0vzqzl=*WME_f14eBi-p&B!{D*?X1a$*Wy{oPp^6IxQpSomj^v*J71|(21Cv}2%_aOt3 z*6)8s6?a@{4Hhgke4w-}u=!>46RurcbN$?`zbS6hWBa(@KWB}Ri8d*1#sryKM7 zjgFl?n!#GrxO(0BF19Low|=;=OD<*i-{US97T)BJI?5GLnc1^jORJK}N=fnci;_nb z;djr)dI>4*(a*L2vs~fM?tNBy89!|0YC%fedj6%UtG3m9-9Egx|MWs> y%}AE00@kX7th*DZ2t@Gi*>kGv^zxVA*L@c^|NrLM>o@yuN0;;MiRUqDRR;j&?xcbM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/r15n65__aix__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/r15n65__aix__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..45208d7eef56f0b885ec14331d9d6ed8a2b55e90 GIT binary patch literal 453 zcwS>*WME_f1IAVc2BuO5DCa*EJT{r-@j~Iz2IfaHy`eK7ziz%|_L~6-RLsc@^!0yi zAhPFqc!XHHSZBl=J(&p>64#fCdCJ^;x9ZJNuU>DZPmON^J}Q3OzW(--j=N8jUY@P~ zeDBPS+jUMsHO^ZXa2}oXN>X@=hF%_{OZM$qpG3CCZq3{G-$6xJZq0_Rx_jn^o}0C= zSYNIS zX4aN&`BWT3e?Yh*8M{DB}!9Q!}eXwbf-^n&-2k(!+iiNquz34HzDO=d5YzbJpp>UaeJXy(@7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/r36n11__aix__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/r36n11__aix__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..017b09ceacae25f97033bb492d756d92ca9bf849 GIT binary patch literal 452 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 hl4fG~0FdQm19g8Vo{wdl#2>Sp4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/upload__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/upload__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..9978b4094f9539762a1525556ed3d598c4d271a8 GIT binary patch literal 463 zcwS>*WME_f1IB&^2Bu#OP|klSNRJ3%<6KjiE23xgaz4k_pcU^gX)_>!iaDi|PWv@G zh_rpTIm-Ex$)rgte4Wh83k#+kWSq52iQ{tjUWXkKliSM6B^G>b(oTD3KmEP^oTjN= z-Y134{#;mkW6Lvv_ltOU2QB^TRM^39>|@()v5JMY|7~8u>bon2ZmaKa7JIE5tY%ip za(UB6_Qi`0UCnMi!+%CttqVe!X*X#-I$LFto%^f+lY>mbu)!-dkURVCCeJQiU z%<=IBwKf)o{A*7YPu)EHu;2pAhH1}ESKFSxTrM`fHSgEDd7=5cE_~^~xKa7d>Z6%k z^&ie+UT)d_XzHZ~=lhdpx1O8%)O5p~i5J4xnI}52Su}>-H0zxd_vF5D*5!4bsq=N# zd5IP6o3UJzZKmHuV>U%5kwUXM_g;!rH@heES9m?3PJ-R;IoK2k1b!gGy)K0bU-oLhA5ie(Z`WFCj CyVj%t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/v60n177__aix__release.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/v60n177__aix__release.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..da9b6835684be35a2f94a299f34c69c751041d24 GIT binary patch literal 449 zcwS>*WME_f1I9)M2Br)KDCa*ER55COpHt8)cWZ;<#BAfaB}Y$)USvQ56?1X}Py0PF z5ZLovTc`UlkC36h?j^5k1G&QyDupT4Va(#%$vmAWm~SdJxxU%HK7CT;+ve`2>)yRu zr&WFXyhm653Ne#~5kY$snuLxX)osW~jt-u;VB2c5vo|f3GC!uYuFZY;c2Uu_FLSG# z6Xbqwc-oa}anUl&yCJSF*hg5yJ?}|R^Uen?UME{wmMc5$^Y*Qn^(cq&!iB3V-uVPB z_PwfP{G%}Kin7Q|G>Kd^u|`*RC+8*Q)0kOZKrGp8ojTlSfJS z?@IE1U(f2tc*m=GG85B-?A&ixtM=-i4B6D9DYi$@XPU@?j5Du`j!tR~+iv++Yih#H zuiG_euGG(uSf_6pzOcJ^?TV1!j;diMP4!%AHvEloeNG5+~uy=_J1uJw2RzhK~d z{NQ8opLfMSJ|5p+G2vrI_1}Q2+jON?J5M_wEB$D$t#~cxgM+^_+Sjx!n0bkFvRC}Z nmO6(Gf8SJwY+Y8jbNlAz@4AnfeY?ND^Vw7V{Gxu-{lk|44_(^z literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/_release/vogon__cygwin.cmake.i b/CMakeLua/.hg/store/data/_utilities/_release/vogon__cygwin.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..ac882721baa11528bfd21fb5f95e661aa3eafd0e GIT binary patch literal 326 zcwS>*WME_f14cF=&SHRa{zHMWQA@D%^>d#)1N4=fRdw3i3iSjSkU+(p+;T7++KVwgL(@#Lls#T5tpm@-9Of4*03TETZ~ZORL~e?K|!y<>vrT&|U0mU}#O^gI}{i7P66?mG6}F?Z&7xmV1bQ~H(X>$g>_ LABZ*WME_f1I7Xd1||mvDCa*E1h0;9TJl7@oUQbuq0O2H1xI+Kkmma%&WS*%=Ucc{m&O? z)}0dC#ipysw#q?&CrjJPI|BRXuC>(roKjo;<4by6`sd)n zv*9~gYEK(pYL;=F+04!VDP3c+1n;ehm;LPIeyJlv(+CWOdTWT z=Zil(Y;oLY8P622rApHu`%lqQdH=Tfw#DV1O+0*|Kk0Y z?o9d6Z>{Y7)BX6=C7d6nqr18b4oz>Dmj^wIQSfkleAGZVsXuqC@myx%D+TO2?o!9pkMH{4r)oDl zE_#b**5cFK?rrbQ{Pl9*i}()vpGDOtm$EckJ>&Xn+W+vjdYQBF`m9rTZ%>}-w=d^d Vd4a_33y+Q3il6;uP0000000061|NsC0|NsB)=w}{mLEQXr!4#*_ zayw2Z5TOA800000000000001ZoUKw#bDJ;_z4I$};v8Bh0Xv7zn10MqN@^y?X835v zCq{+^GzG~c3A_IHm7qzQdvpM4-@d1}t99mI-)mVGKrDD8NbdrGACcb(ci;;y5Y`N&F=_tIjSl=E zYT{_tw7*|0J~_*Uvs}S)R+52*T6_cnwjI_-jq_zK5GI+Z(SBVYUs@ z6dra7co2I@7W(PvTt~*i)fKmK^vAp?ql~Un%-^T z=8iR^HLI|OqWCv0MQhD;fHHg&vz$5PaE8u;v2Mo R!T(EQ6|Jr3|6e(R7*d-t519Y} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cm__expat.h.i b/CMakeLua/.hg/store/data/_utilities/cm__expat.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9fd2dff54d4e8cb1caa7c996c4376bc54e139c97 GIT binary patch literal 580 zcwPZS0=xYH0RRC20000000IO600Wx<0000000061|NsC0|Ns9(EfO>J1Ts}Vj>dT& zG39$z7N<@C00000000000001ZoUKw#bDJ;_z4I$};v8Bh0Xv7zn10MqN@^y?W&k(! ziIHIeO+oTV!jAuaB&eJ89vwj1x9{ogYMtrV_ga<(5DQ)l(zyWON8}H}9r%Jvc^9`t zRa|snq7`isej-Cb6c?Hn@v?8xu;4oJQ-ixubU8jBh_aj8BV6mO6=8KxYLn;R+~~j$ zqDGRYjr;rA?2|K}Ir9a~7w&B4&K3jp7Ya!^bB7D?NXNt6o@-RYK0llVts4a&ijPL* z9v-PW5rMZ5vcfiBIp98Lk_$!q&Ia(>76zIGffB_LOIxd@h_8yadRD*%G)f&@$2px& zcG2k`*j&`kGK*HuYigsq7Ic@OL`7&TZR1U^tf3MluLeh;_a&7|(0#A4gr_iDZnhbC z>m59KN#d=u-Dfya)$m>c9+8bAs?pT$&{ECOI)X5D23|oFB>qy9yzk*E%y!1>Lzu0D zG=+yv0v^O(l7;?uLN~@Z9tKxeH>k6s z?MsBKqSKEc%9sdswwo(+uesKbyvHElra_+W(kzJb;CJk0)&wrZFMmh)n>E2!;#;KX S2F!Vr!Ae?Lm;Vcf0~g528w+#* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cm__xmlrpc.h.i b/CMakeLua/.hg/store/data/_utilities/cm__xmlrpc.h.i new file mode 100644 index 0000000000000000000000000000000000000000..32c1ea5e3cb48a2fe847a23536a6471af2578352 GIT binary patch literal 595 zcwPZh0<8T20RRC20000000I*L00ZOz0000000061|NsC0|NsBpR0pBQ=d*d?kwM*D zaX&Naa0vAP00000000000001ZoUKw#bDJ;_z4I$};v8Bh0Xv7zn10MqN*X4{W&k(! ziIHIeO+oTV!jAuaB^W1d+GBJ8X?Ne-w;#^*^IILu0*D2#1?gM>@FVgI;RbxcrM!t- zqAD&rFxHB;2;Y&RAc_kOi+I_$Xi#vO_^I)`P;~iI*NS~%H`fQa)L~1)>Ymgl(7(FU zhHpfTD2*HMx3k#?XFhZ03z#q5+030S2IvnIl5*w_8Sp^I$K0N4uXg)6fY-J#z$6HiC=OWKnk_|qVYJng0xqCYYVSJE z@p!b0PB+2kqIT}HXz9F!HmYkuw+TvAgtpQ)+Vsg9DnasUPz3s3QmF*p^$JUP472<7 zCIfG^g-0(*yj8aS2uG?K-YdWZvXMkJ8rtn!sxg{J5T;JRD~N)`zt?sv~(wkIBD&yqIEBHZ;a?+d3Aw9 z0#>wriEvSLdJdwDiBKoIxiG0sWDwliH;DH#a)) zm8g-US>yhGHv8brXU=>9^MyN`xwFMU{fVrgr&6!D^Hs}}`aK%>;bb)3`b zWEY)ofz3tjEVF3kTv8j=wV;~>B`QK&X&Y~PWet@ec{Ml!y)UU$g6?~TB|L}OaFL?LNYZs)qLp@Q7>_QH`c{hn8xN))9oMGw=$cAn}))U6B$>uKsl7sabua8t0zi#UDxzx z12=W739VR(73BG!X~`RFq63uSe=*CM!d8xUO$hWOh&XH4tfF-AwL0RRC20000000IC200YVZ0000000061|NsC0|NsA>c`tMpdfGI{#gV)! zE^bRw!c}en00000000000001ZoUKy9j+-zLz4H|#We;t37m__x3RMp*WgE1RARx`A z7v#VIR>6*J6E=Te1FLSO9&%Y9EPLj?=b7iR=HEVQ83sTkcqK?{1ArTn-w5~M3NGb+ z)DTs2(ZUcdX@l?s849Af(6o>jU4sJ)ZelkX@;2mcT2oO(M5v2do0Q$1;YNc4!m5r` z1Khp6)q(FsOs)+o)>xRy=m+cZSOAblug_*mHgDVj4C34a$n3ph!BlimESKvPy O#td0OOXCkk<|mg}<_0tX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcompress/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/cmcompress/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ad548ea041dbf4931a4d0695b053779d4d752d77 GIT binary patch literal 116 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 aeTrJ?o1&k-Jf$xtDJgw(`F{atq;qS<+brq; literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcompress/cmcompress.h.i b/CMakeLua/.hg/store/data/_utilities/cmcompress/cmcompress.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ab55ff3f10a54c470199ffacc2be42cfaf8c279e GIT binary patch literal 2350 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_c_make_configurable_file.in.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_c_make_configurable_file.in.i new file mode 100644 index 0000000000000000000000000000000000000000..3f69cdc518371b358dae7b04639be452f480683a GIT binary patch literal 100 zcwS>*WME`~02LrshO!y|L&3VZ!16xcY@SaB%?ubp;%; literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_c_source_compiles.cmake.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_c_source_compiles.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..a0c40d3dc4a54e7996fa900fe86a0ea40885bc0e GIT binary patch literal 1131 zcwPZ(1eE�RRC20000000b)l01WT|0000000061|NsC0|NsAC@yetJE@tk2Z=*;Mz57>`un+j)%ubG(%}N9s2gL?2A2U1B zXb}c%qhN>{7%Q^)?^_MsF&<;DGqamRu<5Gzo?lg0_YfwaZsPD6k`c~2VGLm& z#qdJ&?@1I#kYvr8V|lhpAfW4N8)qd3ZC{c!E^Y=xP#=l<rq~JfR%n@OmN6G57 zVc7-kGi)6$fL7UELj&quc_O||{`3r+XudvErViYrQpzy%l~Bc=+aQYoxlmaetc#v> zjp&AHxQ1mikTfYu2GNKrm;q6|V(Ick(=F?M8PIVLh+(QTPa|D~Bn#6DEs7EvhiGCF z_p#562V1d?qs%l}(tyP?der_r7|a#bw&XL70^LRdFmzcO?eR-3!CY}M$pPu__RUBF z%ZAfs&wMhiFQ&xuv2BPeZ{wl}*6~|xyD|i$?YOMkF0mg_t!U|j6=_Z5pltdi$lw;_ zV`YuD(O$8qY7JAHC@!(#wq0S^2%JF>MGXV?28|9ICMX~PE{Z4oAQNFf-_{_vg2!Aj zF}3rg456{sZ>`lmQ)QjdZ3<2%O|%vmM*F@76b>QTxe|{%y3dr-SF}z7k8j9lhWT_@ zxpQ3GFsJt?THYdr9x`*tf2XMH>1EK<0I^4|B^B{q7x+70LqyfJE?Ob-FFEnEnlAWo z9Krw#8iK?{=oWUM`Y7X6!A2r~xwg_a8|v(eXmUn-eAGiefku1$P{YS>*`c*NaL4#K zeK6sXC>pU3PMl*9v+DQJ9zWK9^ikl#crfV6{+1=UKes`W$z#|fYinE$pMb_?MKk#A z6V#p2(i)~(rfy60T8&V%Q;{jcWP zDp^;Qoj^LC1vg11HnKo?Fige%+GL7XdQ)i8Twgh&yM6h9f^I^ILm2Zp(F`0Ut-?8R z9A!#m$5mVphv_1wc*{WN80(7D@Ahv&UbX&oot!T zq9EoR%^5q!gGBz)?nSmzjscc=78wz1wPq7 zf{L9^z`#DVO=SjBfBoK5a=cDCRT$#8x8$aemBj)#*Zb>gRpm=n-lX~ZFc&-Qs<;fW z>=P{oQ^IbgyQJJSr|jXrmN&q6xb+XfqkU^#ee~98FMum{#o7f0riek%owUa;zsoQ^ xV0TKXr$Ul+b%}n-WkP9Af70YtqyGQ4m|tsz$L;rDxc4Ez#Y^UR@DGw0w)(0>A4LEF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_c_source_runs.cmake.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_check_c_source_runs.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..51af283eb4a8a4dd282b0c7e2940c61e725c1f35 GIT binary patch literal 1249 zcwPbF1RnbU0RRC20000000f}`01iX|0000000061|NsC0|NsB>Tkn!Ip!8ni$u$F( z9!5QDY^FN^00000000000001ZoUK;hQ=>=_e$QXgg?S(ky6U5QUKPS5QYMfCvUgjx zbt!~NG9>|P0CQf7|NVMkCLu~(_4Y-~O!wE{^zRcm1#?BC2Ve^*RuuBAj>%^^%<;ANVh^-jRNCFb4SoHxRAZ|3;ARQzUm z1C%(0br|ssHY*mbAQIN|F7pBr#g$n=#rAcPLBXHJNAeJ|XadEaLe9ebq?XBxj3X}l zmns{@^CJcN56cTd7_|aCTx3a-ZCJY8Dd$M@8SYV+7Wi2Rm?%sVAyceaE?-e(h_KFL zws@}5H(~RQ8n5Q!8CSI#FekN<73;o+uvOIfoD6T>sMTM5{eHQ`{dU#YWwtU(ANU0KHh6o$+x{A&*l~)nt}VK zE0q3Qp7<=MH~erYA^>w9fhI`|UCco9R>zKliA4SiJflfA-4wysZM0~>2L9$ z3NC)6`_yj19pYo>L4{jlSj5|V;+O^1r+({i@!#tAE)#e$==D0Zf20iSa~-l&AHWu^ zHjb;{D{xwrJcaYGP_4xAEJlFNkE)H;Ytl9*9hq<%;wDVP*_C? z6QcTJPQnM;{57+5!ImW#(`Sft;EbiJkQKs>?HJzoT2mbj>p-jI`YsWJ_2U;LbQWn6 z!k$csWn&|07*2@q8zZ9off3BGnNBIk3AYx5D4^KR`&-$i)RO`DPKw3H&d#}o;b*T(X8}+O`wK`DtwfM8HTD79_p2kyY?^Df#W%bG}|p4UWF^W;P<%O~xN+ysITn^D-&sxM(3{16u7GF#2kLkK-OgYmDK% ziyxR+;{*WME_f14a!72Bv8YP|klS@Z71s$5Yk#pk(*rU3TXbuUm!eo6LX&D&~| zu-45unZ;En@~hwC_B!V|$JRgGz!bjqwNmd?qoq9xCa2fTKWyiT|n-g8O(*4Fn;mj5lGTxo0}5cc|*)Sr`^4> zKAr8)OPJiBr75Kp?FrP^D4ldz=v~fjvvazl%eS@7+f;tebzXeA#qTA)D_1W|w|LQX xY}N()z@M6JZHyPTvedkwLfrlWiRC}E?X|7|yB5|1Qv|~bx zXfbWnG(nKA+YtYKwv#{zEGz2v1c~oG_uO+ooHn=s=t15+f_3yurVB6w+0UhHwE;jw zj7FiDjB&`xS8VHl;2JUluUygeAkhMh* zRP7Z;?(xpNGKMcv9D`f+kfkd*2U%*4zRy^7FYR$EgmSt#=5iMBL8Im|Juo^~9< zYaDhqrTto>ac! zuv@_EEIS+JT>_p#t)SOnsp{+0&@pw6VybtQJpL@>m|+hRdYpNw5&j|=3<*VU;3x{j z#e7=^ZU8hQpFY~QqvS4ro=Y$-I8Uu<(!d+}v`+>B%fs9CDx!cftjfXtfFT?@gl#X8 zH+z(qW}1bX7p~@~ch`#&tL}V7C}b1kRK7Af>Ngk(pG^ud@wBYtS!LCT=V6CHfx#!A zx|2do%~cP`QQN&KW&w888wwy)LJ6fr9^X?#2?yBb0*XLQ*M24H&2>09s(oq`;gTz+ z#t`$ST0^H|xNl+W!f^>5?T3%0(#cSU~OS&Z}>Zg3AfT|4T7) zH#5i=4)VRRu7+8HL=c}=1ZbM<3biJow`EvA5aU4XwsG;it7u)5vXZZA40DSla<^kl zH^cE*73h?z&C>bL+44E-#p!*eNu1&~jgtGL;LF*1t!~PfD0?vX*dmSN^hH~y2I|8! z>1^_Jx6@?5JY0_7oc3ZC#d7{{6344mx;i88Joanzu63h1Y}yM4Qkg+JrB!j8oPST} Yjt$rUS)UW#mcl#voziXn1`wjp%nDzYAOHXW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_curl_tests.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make/_curl_tests.c.i new file mode 100644 index 0000000000000000000000000000000000000000..a8c966aef357db6a19dceae39495407ba3bffe42 GIT binary patch literal 1935 zcwPaI2XOcR0RRC20000000&P103oOV0000000061|NsC0|Ns9o6BD*7aQpyeq^%BX z4V@M?sAsAG00000000000001Zob6d{Q`<%m{;prKg(;OB2W;bDs6#u(h{RLJVk9ML zCX>05tus<1ORjVdp`ri1x2KaV3mFVe(>5)P!MAsNyZh|k?!9dLQw*28 zSZ^$XEoH9;wm+kA=`#{y(+gdGD1@ z3^FoCCqtwElXACyi_lM)yGol*LKal02f*QA@fENLCedu}2NagV5D?S@xFUW?T{T&R z8eCuJZ9+JOkP^*$IXX8D(qBXFYsxkhCgnY^%yxO+_(Pjd%tuNhoDX~UnPI*lmND#^ z1B-XjAfc5bUXBc_jRORf5>Yfn%_Z~(KbJ&)4EkK620J_OO>tNowJ3|=bnrYm)4;h%;21;agSC2jyy23wjxS>#-xI zu8(Z9H?oy&8EHk*UjXc{{|#h2Up^`Y-*_>d()jIR^QiSM9qtjnsKaP}gQW%@Cq5WY zZ+`~F+pvb_*^j9w0hxqq>d;=#B6jq>ihvd*Su_6EA4Gow}Lrt}=$ z5?w_F>ahI#U~o1L-v5zXMQ*c=F*lj*`Qc{+=&wSd4vjwv$LGp|4+xrnEGP&6a=ZVe z^)io6#!|N|$ z@|vosEe=Th-)MyYvvJz$n2jtPjEL9|ZQ$3E-Z|Zg=guA`%ysu|en`Z=;x0q-arZRD zvQPWux!ya~O>3p}xq&|}*}z;UE|Sp`$Kt-&+<&ACo& z-P#09{~~mPlqP0K3CcF4izaKXNFii04;Bf26#9`-uFF<`3&d(tYbguD$m$tQ!s^IZXqqAZS|3B^tYqPo~by z53V>Ey)*K1WS#5%(g4&?fOia-wTWe$dhf-`{xj1}Fy{3nqZZ(VRMYfel=Z7y%~of( z!GD`ub=W#=95%M_n3L+ii#%xHo=Lk54OgPQ4(-<1Mwozu<+L!B6BXBH36lYwpJ zN#JHjnldUnd!6&~A)@cm$$Ma)!yuYYdHS9>A=i4&kA`>vZPjWA`|uc= zFp1)rPFQfYD-3&0apZT5dvrGEPLtw?J@c6mPi%bO7*jZEwf6Trt;YVr;gfc!^W?D6 zNe`F_SBgRs%_#IAJ<6U!;)I7?^6P@ej>|JPI0^KZeKN{&UAU&d@Gn(Db^)JKwkz~f zRaKa(ajTv_g@cwR415GP=$gFF7i8imB;bXGzEz8}eG9E-yVE}0KWH7n@iBB-&Fb?r z;44QpXS;)(O>GV1k6fYe;c-*m7RbcSYgPA_YL#X^qi+v!sp!R=cIk(1beU9?a(t=t zBaUpE3AlF_F?Z4=;%xX*xAM}l2(h|Q7lMd8Dtq!MurD7z2FB=QVDJ?rMrk5Ftb2u9 zqd)2QEPZ1m2B?L#ff2>mngY{J)m5}oYgX%CxwHi%D&tYd#lW8ObR)_6Ou>k~H$&rMKC*%P@H8@1c%U{nB(lOy`ru2irX*x~nQmLZE$F z2dnT){N_e$0oV)U{V+qs;qrFa4I&{jK(#pb9}CYcQletMCpoyLC4)LgLw9ECb61~F z+%x78So>Gob$&fJX=vlG@nQ1y-fs&o z0g+Id4o8t_`3Z%w@+f;y-C^#(bmRTSIjOE5G5bE+Uqn}Qr#{><4*(l zxR-5QwFGEsa2teQ0-CZ{Tq_DB57@Hc^*Tsi!|OO+|K+>M>vymUS$ml;9AMF$K#l5! zMFOv$+-hJumig}seO7b<;CNw~7>r)-hlWmQSSrj34f+1!PKAQ&lwP_y&v!bTx*nF!0O5 zY=c*26F*KsyO_V9FFwpGCKyU8deGPd_9>BqEj}nZ$CegLFB2pg*bX3n8Wx^Lg{Seh zfAy}$nQyvz%LZ#Vb48N;k(UbbPjBC~NDa5}dwSh2H`)RgQM=rD3)dU(bDL$Bvk05W zPb@|8fcP;WMg~knU%fze`6xxTlCj+@L6H`zRTf>Tiq_RV=`)RvGdBxf7MzrQ9LS4R z_{*HIOyiQCh^}s(92E_90}W-+up?+BgGL=eV;MB=0z)*_wk6jx;oOJTH19UG@4_oYmKVS4WDVQ)~MRt=taya zjH=CzU(j5^sKOlI!p-Jhotd_+pO`(Zl=c0`;y?>vSOyGR0HZQs)B+fn0plhBUA+t- z12QlDR=bbgnRnT>d=HzIXWyYfP=pyib-}uBnUcGLCXiwH*K)n#OuBfSrlr;EBi4sibj%m$_x4NK6eAWDg zihKmsbG8^MvzoJ!nF42H1JC1ZM2CvAk@05ECL|P`jn3`P*>cs2>K2n7I9u*V8)xHM zpTgNV29E<|A4qBhb1PFgF3`Z}xUy$6I<9DUMn^StWOP(^cSa`?RLkh-e#ivHJzhk< z@H8qs{m(MGe5p;0E)PL7qsxQS%;@s4wJ|y=XN=L&6z#_7METSaBgxovDxm|T6RxNT zLVkK5hbgvE(Nuo`ReK_8YRHK4=G3F@p$~5k_!Wt&`6Kla6Ygjp^b%R?1BwHF9PKa*FwbSa-c!HXh-{>wj*#8>njl3ZRh;YGAen&{zgFFxwo& zuf=(2nwc#@c4W4qxp!o?wcDbG+14B$63Y~ksA0Auyh>&(GNxd*q68|;Rs^yGvwimM zV>f17qGZ(quk+(M{Im8}x;YHqq?r27ghbYO+m@k}~a> z)BLC_mEitkai9e-ECUo|yOjD8KtZ-kX)6H~WV;k{8IY6h3Lpu z={!5LbE3SBowqw64l$|R=nbUI-8pl85_cz{3U_Ckn#gIxDw?@_X0LL{cK8on6?J&h z|J))~qnBvBU7y(}?tEcSPtZjTs3-D}+MoY_@4;tw|K3BaNBwojKj=e>f8d8Ef7h2A z&h*R_nDw1s522DDrp~Frf!2(mMz{eXs{SP8Z|Dhe5~a%oh$9c)29o&Q6}GB332A~$ zz)ta245VZP2eN*F-TK0C=u$3e$Jm=HJ|MHwK=tuhO?%)mAi+Fe%x3wfD2cM%+=rV@ zIeap-v})^OPQPEFFDnVQ*JJP0`s}^v(OWn?xQh=C``Hqy9^!A-51E1KiK{z{v#H@a zq;o%cZM4HSt&F^}+DKnk8E5)?(`7a?G4yIyl9gj1Ot1*hn~6RB58gx&;Ce}Tw_cK0 ze`IWNTv(FqsA96=%~PCs$$AM7;Rb)=Su2}@ReE>#RjwXMD;_(Jd%2kD4l3&BuW{Q2 zWwt8IaT!KO^NUrR#zG7gtEZVQ#ne5w%q%NtODmj=T2r5|*F&~>{VX{G8k#G$$h=O5Wg4%Y4#bgyo1%kK`Q zPxT6}mF@BIx#{4(cTnTY`4RXDW-vKi2US1H_V~DNofCC084fSH_YR38RWAzGYCdVK zwjXxfkO<@17`bs0M&4&X??miSAyL*R6APag7T)EnO{q>!?g(lb(i0T>yiVcXe*u|} FD)}gHMdkni literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..a4187e80ce6fc6e851e851d7be85ef17c3ea5c2c GIT binary patch literal 5881 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 P`T0^H!Cd$s@2|Le#m#lT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_platforms/_windows_cache.cmake.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_platforms/_windows_cache.cmake.i new file mode 100644 index 0000000000000000000000000000000000000000..f692c07cd8010deea1527d922c9dbe454dd345c2 GIT binary patch literal 787 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 E^FO;?HUIzs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..2ec360b17fb57878931268004270203e44a76a53 GIT binary patch literal 306 zcwS>*WME`~fKLnzjB}uD#{W?8l;fvq{i6H(h4Qob_kNR*__kMbH3Jf;m{S{Yy06)Q zXU}I*+c%7QU!Jm$ zbe0UKVQUru00000000000001ZoUK)1Z{kJ}{qA2eqL;|FTx@9XDurt$nvfKggNTr( zQd3zQ?;0G8ZLJq5ZSKE!X4eLMjqa#)j$`kR=e>D5JG1!i*Ssun;fq(O|3kdY7(l~r zW&SK8^*SUBU%>n!*u4zQQdfzx0wU~5=dMSD+U)cU1pk0g>FK0zNt8lnYZ zgnTpP7Z9ywI#&va9~A|CJ|Ffo)M?@O_D|FnhSVeDxT!+ z#ZN~jMEbN&G#*(goKKIYvo@<;Axg9Zip|7UuVeEAMf${1uyXgR-;rZsRO|3JYWa}x zxxh^P%w*59%H(emDp>78@(JU07TKE|v*{K}dQg3)*M5?%#Old|>)~hsZmAHra;$$W z04da3W)KsTy@z`>pmOb5A1y1%bj(8Lb1BNw#BGZ6fSilq*R z*&NQ!oX4!?0r$wAyPY6t2flK8mU1Qw(}6a6e`@XbS>d!Scm5=a|VxgJt#GIe=B9T|sSHH&iGD%3)Ali7T& z;v^M1X0%`uT&m9>0ZGV)cVrAY4i!R}WQj6zlGrA*gF}i3P_dzVoEIXqTfSNqz7nNs zlOtxYwQV6(J0BP^F?pdhm#1}3Zf7CBJRtVoDc-aiua18jWIE_yUEhx{XT!_+HS>FSy1_RR%-`$?^ z>htGysaDt^;4=P9*6Q5AjyIK@aJ?#&Kg2o%^VMjdS9NYGkQ6#qjZ&Lwue zqX$z+E?Yeb@eI=)_%Iw_O&-G8+{!(svG(4_I+&@M%LOAoI!86(^|b$C zU~3BOXtLb>(x(uU``I3j2fo653K=raHSBUSp7n?0!PGWt5oll3a&$pY(LlQ3p~IZk3{{ZTjQ}is#NS7 z?TJZ3g!BV?#A4&{^c9lAy7Nq>P&s2dF_|n)>y6Q+Syya?PbKX0x^6w)G#(tC$R2gf Y=8w*whnD`#4~1^ClaK#@0o4c;$&9)Q@Bjb+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/curltest.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/curltest.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2dbed62e64f9959c7408a31f22db9be891854a35 GIT binary patch literal 1010 zcwPbW0}cED0RRC20000000XiB01Uza0000000061|NsC0|NsBr$&wqHsZ)2S=G#Ga z1)xv?iFD@x00000000000001ZoXuBJZ`(Eye%G(yR1~vRL#o{dMeU`4>o_g2U^Z+e zZLkdjEmIa}Nfb!Ro)P4~??_3JoH&iProj9_Nk{U&yYG(2vumRnCtH$Aw8K25=~^I` zqAMzL9HWKISCk>!HH74OAdx?xjs4N$`nR#a@J8NbXc#YO8pQdEAT!8$?5e?u%v$`5 zkgJ$3o#?}Xj02RC85E#D5qU1Na~hM*meG}E+!zR{2~Ok{*l~(p4?!}%oL?YYAyi)h z18tlL^{wQvQayZv#onhWl^sh>(XgY$7J_$#ZuIEd3bxqw&Ux?jQOH?>M4l4q2=cQ) z=iUqnD#<_*ptjVi1(7V1T4`4sGM#z;)nxv0x|noPPlG!(I2$SGqC{?x;0Zxjyd6+aTF36fco_S{THMDNGr2Y9s6D-xizZD;dqDl0tGR_ zX`VfdPdU+a;ub~{3(`n|%JMNzQwFKP36`YD2)6u-1PycU8>6&=Eaz!CH8gJTa`_8c zepfE5WR5Tg``F+6-+Qn7Z~q*YO0>wA`-~Kdj50cFB1yXKn4djw=FjHSuh*tkMym3) zv9VXj_2EW;Hl2HSyX!cMk}j>Oi_Di|@KTuFqtM5srCzI!rW)@;@-3i8Q0}REgb3fe zo=uMU18Jldxr^!e*Tvi7aZ;sHsSWB>kYvY5DwKkCN(S0bn@6JtIZk|Sb3s6Bu)@~X zaQ)|iJ82E~<{{jzad&Y4WqtmE#kQ&wR)7Q(jSV{5yQwISN}b& gha;S>VxlMZq&%68e*o5fyDC;II}V-y2Tb^O|6tZxwN{^IEa3rUw5ujXX zRS9Y3c)f{xUVCMG32EWKcgEh3z@Z)=y1;rp_A@WfypVSP&nJN{eDle|UxrWo1_-b# zYyJ}4zYNK;dx$>>xe03n`;RAuE$lw)!0TZ5&au=ef~^T!e!(I6PZQ2l&f0h&xtR zN`PCMmDCHs1-tWPcy;R|9A+7VUveFCE!`1=u(vP9>j}LQ70i| z&+K)Pds2*vISX1iI7!gJ#D~PBq{LU-OAQN$#9PdM4vDx}TkmFHWa_X6NH6 zw9;89)kPZHcRx2PtqjZi{?5006eBT1@i=d+Xet*~Gi;y&T+O*~MXfdzUtCWn6fqVF zmJ)iIEtHuvl}RmqJDC48xjZ|aWaq=t>Gfn5=x*-9NrX^mM?j}ZI*E6({0X}=0FL?} zaMpy@bhXCujh4Zv>85_vP}u0qvxWKT3}}Fw!xd}LVJFaFM zc<8}iQ)``&`Dk(_JzoONz*;G&tnr2$mF8kzFR0opY~|P4_< zlZvT?#ilP~v25L7YDMFjE5USKeQmHgcml(cBh$m|@;7*MLY6kw7gVm|6vgy4+5n2m zBDDn$uUuH{?C?Jd8C5yd4!+NCG`17zi5YnaV<8rI!(4xN(iB`7C!QaLp%YF*qLjf@ Z#df4&{7ILe?jh6R&%7cS!lPFfei>fP8X&-~ zt@&GU|9wc7-9z(1$Zfc{upeA0>|yuW0G9>D5VlmJE@moY71tgfitCY z#y|YhQnR20Wv#iFMl&V-7B38wtUBnJM7)PI@2+M~Rle$j}W|uq$euwl9hxo8=lD@i`&tOP>joT+~3L@8yyOMAg z#NpmRjqWU=*#Si#@7HU3gWq%r${^Xz3^ZE_nr#?jm|-v@(MTmgn+E$XO(k@HHa(+y zva{*s>HK|mKAl4^U7&7olIdQ@ICkd~|Izni=xy@eU`%Oqz=`HkGrL84geY)^M#Dzx zqr)({$BVmIT%(BWTG(G*Co%{kBRPbccTD`}qIdD!|EZkDl`WOYnaZS=z8_M)o?V@t z&a(5##p%s#ff8svv9AWmt+l-8`k)f(S~e&InV zC%mbA2oeY7TwO0RykRrg=t-JZb*>~&K1jb|RwUf4(q2gYXcUrJyc5LJAa5q8=ac!x z&E>1b^y;$R3*DA{T8ww|>0;6Zio4OaP&#%V5?Kjb8oO#Z3|t2encA?e1Fi(qb@eT2 w?TZ}@;4?u>t_+?VUBeV9n1T==sI=KAjrYF5FWoz-?hyNvV?^h|zwM(jXbT^l`v3p{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/ftpupload.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/ftpupload.c.i new file mode 100644 index 0000000000000000000000000000000000000000..96045084dca6b8a3a289b509607c57b7906dee6f GIT binary patch literal 1210 zcwPaz1V#G*0RRC20000000epf019sa0000000061|NsC0|NsAG&7F|fD{lj!1#D_U zZ{Z5iKG=u=00000000000001ZoUK-EPvb@q{+?ekxTiLWOboOtEgY3N2vsCsLPPSQ zEtR#g*YO^kU2AtuNRRvPo!xa}!=XD)s)58F?>sZlGcO|Q|DRU}`ta2&aeoP3{vN=& zT`T#4rsidrBzXk?gD$u3yLS7+6+z?nnDpRvZjaD)Zb=>Ot-Z%wzZUJ*CTTw+>w25m zTeP5?^?WnRP9QgBRdPwPK^oq};ou044i0{f4vwRPU*Yih#`ackbYwOq)q~=L< zl_F>50;5Z25TKtNGJRup6orl62BJpQ5521stG zvPcAUm8MkdyyCUcrFSr{)>LFjL@g`-A8;Fb}3VJsrNE%!Ubu@bLn~Jc**RT5y&Q?wDBsWg0?S5C#1{KHT>@A3Fe+ zHS}%woYqfHP(`(Ub^`S=S6i#b07aH)m4dZc>>_iw+NcUg)pn9AZo)(^Pdm*U8z#}5 zVafXiB^g!r{%kytW9#pdTU2>+2!H7+|uh7*wo+eIQCplTxyCh?6D>; z*-BQ2)OG-@Bi2GzJOjeDgaySyq3m`}I<7(T%;nL8T*;O5EET%Zk#* YYS_X#D24x?C;@{6C)nhVa=Zb)OU;{|?|_ zAGG?7XZAQGO&`GjA>`KmcCdeW5;(vf(h&X|>;VQ2mUhv;qj%)`xoEdUlD-mx-lp`5 z5`+=**(^VU6}Lie_(th%oJDsqj>m918hx9L-Xy2r!1(pq==5y-2AIsZFukwgS%;q9 zvrS!bFsjiRhfL)htO8T27U*M36tb#XvTO}SBQq2JB*BKQF$?lSDrjWRHMBw^NfQxkmlg_MpT64VWT4P$Ly7=P?sP_F zYi{Grkpqn0@~U!Sz7{g88sv16HM&aZD=tr-itV=M=7^j#vn6q0tZp#L_pUlW`^6s^ zJ}a4qp)cA5*GBx#Q|o>v!Q%vhP7r+3!g7zk=z27`QzD09ZFSU#?H9C3mJxU>>Qxv} zM9o(Md!wmyxL_5T!?{CYM;yvAIl`ETqUqqME~FTQ#DBDV^?kP$(B5YmQnX5CgPu0> zrY`u)1D%&J4#|}$pl=weig`ZbKeRb}VSxq^PA^S!R8`kNo5J|g|2 zE1PY!?7<#`fGW6QLJsJK=~WhW{T$-r&X@b*=HncOv>DP8k7R|&e<-dyLQd=6Vo&G% z>SjKl0Pgmd<4LJ$y6x&nD&OvKcQ|Oz?i_TD9ZlRE!`3Q)WSR9RrdGt8HaQ}Q;Hpwf zR;5A;J0RZakMrvv-p$p(8Tz;{s7&xG^*-eB?u-7}~Aq40xY=2L{s+ z#TKYGNE}C65AEy?x2m>-p1a7E^7_Lf#h(aHN^9%0Bx&0=&S(n6O0SZi7VqcD42Qsd zT-r@_a)`)f4p=o`0gUM?u%B{Y68_W2*K;I(wn}+JtV6*lTF>V)iy=(6x~@I zL(@4L!j)sBN{0Uv5xdwI4|1%~j00?!^zlB}4!r-~&x!oqJRIb;j zShenvyAPuA-5lUT8S7xBgUcj{*k#;7S@1hud$0DqLaL2~t_>E~H_Hgi%->V2;3eyN z^-y~rZqdj*$DITZt+CTM4v}j8LfnwGnXdEnh1-koiBj%(L|vkfLlHhjUAd6{Fw}g# zSSH>KaYRC1ho+!hBp-QEAn!xMKcG|D&XzH7XZt~MpY9J@p) q=Jgb-mZ%-zfuH9M-&%-V^0Kb}tfITv!+>Xoz1(QVp4o5ipCEQ<*$e;x literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/httpput.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/httpput.c.i new file mode 100644 index 0000000000000000000000000000000000000000..bef813d241a5a5fad331c0d2c24956f2bf96b931 GIT binary patch literal 1171 zcwPaM1Z?{N0RRC20000000dJ2015&C0000000061|NsC0|Ns9ATLe(irrGedMKKc5~9;j2&TKPf)p9l)zC zjDE{A_j#2xy@&9JD!2YOs(s-Z!(Qz^9l+z%?xFA1(rE3B-jVCqtlbhx`Wln!ZAz~w zK{e8RI?Yd^bgr%&H_DO?OhywpIX?bzeEed3@&inspB|r_PF?_0c?(zXYj}!k<6iF@ zp)%Rz9L}uEg&vhZ9f*odIr&gzTRXOnIg%cTv&P6VeR=uVb6SINmX(QCGr zE!=Szs!I^Ob?Y^1B6*?GM1ZrYInIoZ%_hmdyFsNU=7|v={<9+D1FM z4mj%;a$c}TI;7^fQRsF{!GMlAoJS+O5G0+`(OvIbQ5ys(`dCri;K3toUHFZMIDea? zA;*cXu6)jK)lt$}2mrWfjM~TRQ?G}BP%)wU^n#U;C6JZOz;K9*O$hTVs)!*~;mf%4 zqz$*Uem$LC!LV>O+1v}D%u{PJAPHfYxqn4}8k`nX>YijORG~e&V73DZD{qnjiav3J zGk8AmL5-eF@F)camClL%=FiDrq>XwI1t(q*DkCJEhmN2ygDye>HP&Jf`@A68bLu43 zCs_jXba^?yp8Y=XJ`}{hU*-vXw{v0ONlR@xZqTv4MbLR_9*i$m4bA2k1^v!Jk^TjN^ zn9T+cV?oEE#7WY{It$72Fr3*ofcSV~+DSZskKP}|*dhfMMiq`4(2dzonxat|4ZZ*i z2Z)wCT|1AJ`1+kMR_XHU;_~&)^{dr%ew{oVNP)69$Q6zX4oxjJ%Z0joB>2r@Hov$` zV70utiq+uZc4HcIf`jRiXs8gO_DHtonJ6&rSmhYlF9PjYEoTY!#sQ4d+a1)l6j>R% zfa2?2ek8-`HPv_$3+w=&t_-?ILggQ{T!il<7Uqm$lK+dPU#EYdwO#j(tV;>}!0w9uvs6?ou~+_KhUt8=EB`roAE lMyCewi6%xj8A5aj$4fpleE!i<9h`@XQ}382_uqcB_7TadHCX@v literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/multithread.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/multithread.c.i new file mode 100644 index 0000000000000000000000000000000000000000..dbeea93077f720b4ffe91d9dbdb3431a5fbfe81c GIT binary patch literal 778 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 R+mEHbhdXow{{d}5i>V&ws{jB1 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/simple.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/simple.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d0fb2085b25e38dde5921fc0357f016324a475c6 GIT binary patch literal 420 zcwS>*WME_f1I82v2BvQeP|klSc=12#fhxSX-du=JJC8L`cGbu$Hat&Or{x_jf%xBI!=Zqp^6x3*u9J6Ab> zANzrC^=wSiery-bCtiHQAT@i+Pwn2L=Q$LsGxR#oe7%>npQTMd$6x1%^fvb3Y}qkV-lEd3uNNG{ZzK)=G}!=FJoC@V;l?T#&`OR$!g9ZSShs#n*JV8HCv1Ie=wZ|uGPK*}snJUoQUl@DcZ;o63m6NAc>*mgAb#4=;NUVAw`7 z`HTB{JB#N%gZ)F6Tl1Z>{ma#XlI_`R!ftHO&@gOXuI&TeBi7fn-4aOp=n(6zN4I!_ zY{dC?5cEKaSsHPrqPFimK)2n6qr<~rI*0E&M<>ud?j0WWy6=I-!2;aJ6y73Zr&fC- zVn50P4j+^bMA8m_ub%mtj5_o|=WEA$k#e==oHMmBVrrchsAR@L@}HTIe8yv~V46tK zp-`X`m?!c_uZHGz+xVflhV+a}eIX)FuXV^_O80Z2L-XWE0)>E&L}Ds@ra5sR5x1Bc ziXVIdC_H6KrJ-bsLn;%Eq33~PHH^wvR!6OHa)oJ;WRNNI>NuB9M@(`&7V$kW@Z};! z0X)7JG4EMQw1adocoXm`9>dMp_1w!(gG<*E99e?YHC%;}F+(pU)_@hUt2mBx<}ZA4 zNgO%1F*!iLpi8(kEOUll!q++LNyUU9iQj2@vDJi=!i04tCJqHolp~8+pmxiMrsXlf z5YLz{3?g`j8^dz$UOP+i6HFiyU&qsWjf5N=zyp_Jx+r)Rmv~T(H%W;T4JO$sqj&%z z$FLk67!lMcU_$xD9~sd=5=RS@Y0BnNB41p%ro#a7o7Z37ntAO6QWw zME?kN&6Oq_+bN&b`x}&}1?|VW&z5u>67z^{@aL}HgkY1fPX#|+&D3S|37u5TBZLOo zGH~<;>Fr^j&gRe$MO5#vw91yL`uHpqDMs`2_-nh}rtb5GM+V_ z8yYWfhQmI}iUTp-u(49@1tpS{fx**hlJdAw53*S*blrjayxz3V!r*%MQF6y3PsBnu zD9YZa;ng3fL+{+ZIK3H8N=lSu7^weQ@+Kh_(*_+k;i;DUVjf~~_$-P{3zS0h9yx>F zmIAOyl2jX3$7I*lXyV})!uvd#jK;lA-j~_qV_WgM(e$)?xd3c8?XM!bGAOna*QLG*3k<#e8byA!@Emq1Ln7#ByrB1fOcN-Uh zSYCIMvme#7m;Y#Ek#SCUe=7;-rjbkmjwzN!dc)rBVoWQIIS;Vu+Br^xL1MLOF|)&p z{Q0UVyjTH3#59Pgev&&{(JJY*ulFkk?G=cZU2LbmOT$O$M56iFh=3Y?Kn73^ZNt4? z67CN^Hv+^GuLE;#JX;thwDB-el~T8-N+nay-0R8Y`^a@nqg?mEKfoz+gA62{`Cw-m zp5ju0Q&%MMz9^jKfZGv8BIUv{`tx9-LuQ%MOMK;awo86BD*IrFd6C2vp=QMl)1%7q zP_3g^E&SqsADxcJ-_D(?gq;jUwR4{DUj#1CCtC*9Y<6}rbKOZKQ5Sm^jpu#hhE|#6 zDJJfI`GYn3Knof{XqeH8u^gO}Wjt@r`(bg4wO~ISYrhyU3l%&t5e1mXxVTr=%3a}{ zoenN9uAIsuwi}{ADBMM2`rT=xZu`~)i$p-4vM}B$TY7sq$NSU09$a9kaEy0LEX6nO zpexG=E?u;e+dX7SZTsPNIAlG3TQ9I2E(E`TOjO+vp7pPmzVrSsqkfeohm5o T<{`PxWDJM>+Dq+k)xmT^qovPs literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/testconfig.h.in.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/testconfig.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..4ad6484bb8f877a8eaa4505fe54e6021076ba1e1 GIT binary patch literal 163 zcwS>*WME`~fMg)v0cA7(hl2f|nIC^FpM6(ymp@yYvP|BP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/win32sockets.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/_testing/win32sockets.c.i new file mode 100644 index 0000000000000000000000000000000000000000..66e0de3242cfc66f5c9431d5d4dbe97a383c38e8 GIT binary patch literal 637 zcwPa00)qVj0RRC20000000KP#00fu-0000000061|NsC0|NsBeNJ|l}P`9?GUJky< zNAsbwUGf(I00000000000001ZoTXGzZ__Xke)q39gal1hr42lQC_^giBqj=z){2Rz z%8Q-Wnr8>wSr}XYJ9l;xZ4B{3R7J`8zVGh7?@~4$GZ@2H8{|9K?3D-nS)*^k$sdh! zQh=)9);7?131#Cnyvg5!b)ao4-2^lb(gAVYNavL`9%^TAl#sv;*g9Ycf{oDaPTNba zx5}t6${_4{0AZ!aCrJ#gGOu3&ohq)?FCMWK*24NZCQKPi?QZrGyWviP{K>CtEum^m z8De!|mDz!}<&_MPE7iGBM%dO9x|=MA(=?f|=4FWUwJB*5!zK3bc_mQ`wKEor1=6Q< zyzZKLu1u*Lob-JM%=aG{yRk~7QMRR)+%)xwLK(Yb02k}UaTm8!bMg)C!1hXtfr)Z4Sn%pEcT@t>*%_NSYCwThsRtSHCYy zQVl5AtDg^2bgIMZ?Bn;%$*6ZfADA<8qk#MSl#kb^(|@OCaQ7eH{nfm_+ee%JhnMtv XU_)RwCze_K>$##Y>%e{kem7J8 z@>cOxZlE*p;PCC+U*Hw=4i1id7&5`JfVn}jM78qaG_5Va@ zLCehCFoi(pf+r|6roc3$s1wDP^oI*DIYPz@gh6<5Ii8;TaFg>Swm!eDB2nN+!TMjGF3N3+MGhVPI2{8k?G39X(B$X<< zO$I?K6CEVG5_EI3{+i7t1+r$hAWH*ALZ#6M>*>Qls~!bJoh`?Fbp8eKy89{STuOZNMC zI;8e<5>tSiQlTbs1$Tcp+!(q2)r|ak7;B|0#MDups>m47y zww1Vr(WZo#1p9F-aGX6ZlA=lx++7^G+Zs>FXp%C}GWm>#@Ub~!;3;YVx#bk2g;D)L$Xrc|EQiA%C$MxaF>Sifsbjb_86nsPXv=!BcEo+f$ z$y0Js_;-ccbP}2X14+&l?6398J8|}~(CF;Z^~t!v2d+TR!Lu(VQqQ)3-79g$T#rD4 zCe+!o*ICC&flO3o$8-L10C?7Ev+=;100xEB*kt?g@k#ykiR=OHoqNYQ3&TmH!UZ?2 z#ESjQ|ee)seOTj0Vju;?n4U zF?YZA&ay}7euTQG`L!Sk>>-cY5MGBoLfAsGKFXPwv+T7%_dYlONj&mC^CD>o=8@;R z+8D7a9E9gX7@eGagtu^fbo4%guS^M)Fn6dHXjT!N@mBL!!I~zv_&EY}z+~K0T^GWF z)l2ul3@Q)~o>rnH{JhiB4iU~48MTTme8pm44_O_IDeGVXVf zaGl#E-q9*hx_stHwe&2@+9(P{wIC<1snikFilb?r+ud(N z^mT2E{M+N%=gUDWN(K(bb4ce0uwYi$2yWBs@3Wh0xE)_zji=XlF#87M>76J0kxswT z@e2xO0GrC7rQilcSxJF>8}m)dPl1(U#k7r!Xbq$I*mu{58dQbg!dVG93dgm*# zfxnvy-Vp51jU)&LVo5bx!X*82eseX+#{Z-j9t=n=6#l}p17(?Lu&gEBGSaDB z)*Rss8_W~8sgU;c`DeZVQ2o%Gp4cj*ooDv3k2J z>cKu+YBzeHf&ug!>((JND;vl05N?@p^G*j|8Nu{sG8qN~RMgQs8iKk^InDM=J5|^W z{hN~d_0;Kc2n`Gd5ZjD#ZeCL9+{q_2ei^c85#VnD2ReqVBBb-?neuC|Xz(wY>R%V}kTcy7;8( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/arpa__telnet.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/arpa__telnet.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0fd35d1c0a1c1a23a0b8568112c02604cb3ceb69 GIT binary patch literal 1633 zcwPZv2A=r<0RRC20000000tod01qGl0000000061|NsC0|NsA4LG6KD`e8s8(<`yc z<(49KAL5$;00000000000001ZoUK=3Q=>=_{hnXZi(7lfibfN?U0vO}37}F-fCHkY z&Mk_BiJ3hDDIl)a?fv)bnE{g+a=RZEOB0%YuY0GC&jlgqk!LIHl|5VBM5Vd zXgYYS#+#3uX`tAfV)VidD{+FGWB@sg;WW{}f3 z=3IzlG?%$k@X8vsxEstdZC3D)JWX;Q>f1D(tvO;bIm={`B^U^cflg71wQj)zXDSoU zV)<2wvaq7cTl=%jH-a?5WI!Pv7@h*7FlTuSZVmt19{6xeT$fn>5bR4J){v8ZHY^SM z&oEd9^l6^a9D`@TX7iZQsEYa4h|aJd^DroAoKP%r>k*C)I(&=0Zy$EsM<=-H&N`j5 zqb{$;Gw4rqc#F_qceNWkrSzx+*9>LZM&$nR`#vsgF zFn3ry$Fx=Go^Z?^@cS5t1Z|-x9Rh2SmVO)P){WuX7IaTVL^MHZn$e_y$1r1jSo4kO zB{;YtF0bsihvqEQSp4@ z54;tm;v0QF$bI5|7G`Aj^$Kg7D_FdJ6%#G0tF60S``!!s+JAY-Z!a&k)yQbM@x68Q zjjt_ZFWnXW&etssh^HEcOw+WlP&!u7y`it;GE~==44MwU?&9JIUj(m@HdxKSv;eX= zf=Kar2;6DJH*8Cia0ansWl-*b8s+M$E!VC1L?x;R1Eb7Uk#wS-Sl5!pA0q9`V!EC8 zhsbedRIO3&y5NxYLf(2S8F-Ga%XsFcY2U7PK`{+W@7vl-mz8RWB;Gc){c;NU8p*)F z)-B(t7RlG7x|BdXW8j_o)fH{LlGC9bK~y#@+E+ zAC#vruR>VT*@NRlsAlw%WjJAZI-`~3ZtCijjt%W}e;4|O$E7_%7@p{RZCH2oq?jE_ z{T!iAKcoeds>FdCqGCJT|42wtijqmQ7YSQ))cS(B!yPrQ;r%fCd&5fzc<1<(dsVXC zLdki=bDfGaIp)5vVP22JPRgu%t4Y6hy){e|T}8t70$(mzL_ruAA_AW1<@vRNv@IWz zopq#b{pSA=s@WpHu2{VN+Wk$9zX)|K{c9p@LJXqHBMc!1igSi4T>#1P-E=k!W#^Wn z&fgwWq)Zkwd@J21>SsTt>f>3olyux@VuHPaCuB$=J=+z!quZ{0Qt7VLSw$;FS?N{U zY)Ao9NU3pTDCQQ=hf+xNQm~aPB0asH^yGcyRJ>J^ygX18OjL z87!uJ&E_MP*6h3rxhfQ*6^P6i*aXJkczIv2cVhpBlIab6+;7$%^nVTra(J+DMpw^- zf*)Ywpb61w$EFGUMwYmwyaArb##6isgYbWvBNCcJwG_YJ7OYG}?c>MGWR fO*O>FYicMq7+Usg()iNY!Iw2QsXqP#KM)U@R^S@o literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/base64.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/base64.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3ca4489a3bf463b17e7be5bfecb66baeda77cbec GIT binary patch literal 3460 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/base64.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/base64.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9bb1c5db439a6123af915e2b7ef8d662e1edd698 GIT binary patch literal 680 zcwPah0$2S20RRC20000000L+L00k%j0000000061|NsC0|NsB4?_$A@no{dr7Mv3) z?wqGg^o2SA00000000000001ZoUK!BPunmM{@!2l2>1Y1me9i3=+LyTW22f>5bcC2 zAw_O{C7x0{vYpaS{P>;IFqj1D7aXN_+fJw9?_$IWX0%K2lM)oeknXGrd zn5%*?xV)MUM?WIm z=PJts$=XzKxv2_?Tr3HeGE&P8M=7j_nKPWprE;DLE3b@>S)1U=E?nRU@}h7CVkuN1 zW-KH;a_`Gtl4O-F;^qX2G?`1X#}vf5U;I1Gl#MLJ8m9E{29=`-Au__kNHq^LCxti5 zYE~$hM^BDePRqntI4X+3#W+Q7W1TQ=QWS+SltR7a@z>exECKK-Lalh-=Qua@V@uY}QT20Q&RhT|Q~gi|iU&2VyY`D=ok{`GZ# zG@0V^JNlz(Ap1ESedF>g7PFvLY00s;g<6z_BKfGfHof%2{eD;bj^O%iu2VJlOZj-hY zUPP_eFH^=f^2l;w(N?;we1t|KOi}Yso5>G8y(BKF7Jp9TOl30)rF7~}b1fPUQ~9!{ O*(J>l*ZK=3L~tNn<3x7= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/ca-bundle.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/ca-bundle.h.i new file mode 100644 index 0000000000000000000000000000000000000000..64f6576d386e519a41792945e27773f5ba8ec2bf GIT binary patch literal 97 zcwS>*WME`~07W2HfU+6?L&5gdn^-+`mRp2nA4%-cQWVQR)f~lu1WNU_6p|Aal1lSZ aa#9rv5=$}^ic?DzGV>HNQj1cx^tk}Z0UIp< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/config.h.in.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..8317e474b71ff7cfb0ff898dfdabb9f71c2b8316 GIT binary patch literal 4731 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/connect.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/connect.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3f1fb82ba93755cb4df98605d0c8929b9937c555 GIT binary patch literal 875 zcwPZ(1C;y#0RRC20000000S!k00)8q0000000061|NsC0|NsB)6uUdkqjIQt8;aQA8k^@V^5bGS z`jWs^p|gTXmbM08*t%3u$T@<;4E21)QAroT<^(5lrF|g6I%sRUq>T{J%{+6kyez#1 zIhVSWQxcK^iV&)UG|g&PcAFif%4R;z))sV&Fx%|rf&!VzCD=L8RC?_bI3G^Fo}5kK zymxxq8%-|YWthJc>~;k+CF3SB=gAog9ul&T+QlXmcKlVcvqK8*i3zTn1Eg1oV~a)=ZtO7t-d26K3IoBS26B;Q^L6QyYX;v z)H^$#Y~GNQ;r9X8>i!Nl4tJ(Yx|fiE%EN~bbQjQdI@5;gJ?5gdg@!J&)*pIl671?@ BsOA6w literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/content__encoding.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/content__encoding.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3ffa58454b4009d376f295e803874b914ab45128 GIT binary patch literal 3999 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 FM>y4~;#U9w literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/content__encoding.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/content__encoding.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ca73b9313d5a16de5655b0d1a96b4d965379e065 GIT binary patch literal 788 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 a5Lb=7I!63;D9@NHdn-3Fms;SE z`*1wW%+gn#WygzkLYrE&bML@2?hP}qi71IP6I&d)t0O0{#YMOCjbq|eD=B-3LHo

    8$q&e zoU#Zgg6pyzuhVaLt=fEKzkSg0)u6$LrW|1BS}=)Iw!jT)S8F`bFBY0t9-GcnU6?7; zES#Ek6dM%Rs#{Xap9SGH%*!;Sx8hWH>K#&EIz=l4 zbn{VbUcXkTO6e}Cjy{=}N#j}qk9uFb;PlEAd9cEaaa_>(S)!3eeI~J*pFjxq=23s{ zRK=Afo0M@|RpP%qf>imiv16|B-CWs02lgHJK5W%lznLI&?Rr7$1$kcZ%V- zZ|B#Ff_N-tcknbi7<#~KjIJhTUk9)Fs~}imqTf!;?7~l<`X${OP2i8G`KMu%V$IH0 WFPe7JVTF(Ovz-}LyZI9s-Mhi>&8^-5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hash.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hash.h.i new file mode 100644 index 0000000000000000000000000000000000000000..80b7d919b886a613cd585c9eba6fb1515f873f58 GIT binary patch literal 882 zcwPZ=1C9Iu0RRC20000000S}r00=Dr0000000061|NsC0|NsA!d5H-jH{?O?@B`Pd zy3qZ5nQ$fm00000000000001ZoUK)DPunmM{+?fP0zR}=mH^YV4G>zzUZ^I)v@%Ud zNR}I4u{Xz#Y^TtT{r8>IS7;`-30JM-%iZ%lcebzFYHS3Kfw9y6@RXe<+q6;!SBAXz zbR&TtJUUqOWi)7RB0f3$4U5q3&Db5xJ`{CD^J64AtU~Ts7ak9}gH98|<}63?nX$)+ zuA;X1lgG#_79Yt%VKMT=R#T_0Wq{5}7xrGieg)59e|Psq3U9els9_k;jL==Da3mVb z8_92PGmpn9U;wVOIn;$z9=sig8}1P3S*rq#M*-Y}KwmgDqJ=ULB*Iu}gp>16mxHqp zDcnd^$OtmEHF#-jEkN=Kg2MvUWQI|37r>4woWO@+sIVK(J7IOd)!vP+FnJai*e> zv8qQ}d6}*h5uFjab>LC!h(&P<{Y*N-a9*M`x1&Au+JkAHra`1tad2PvPs};`IE>1$^y) z{@g#ixP^r(Z)y7#kvYKI%AqH62db>JLb2f78HfYgM=vv(PGB$Fk4Nie zzWY4idqIcoV1NH$?|Cf46yDudutPCVH}WLeR;JLkK-lsa>ME04YqldF1htt=9r(CNj4!(uK>1nat;#@y>3CJB|XroOOrfS(D#y0O8e)IvOqhxGD3 z7G2Uf#TUv1@Y)6+7he597MkfW`PD+iP-BS{5(yhU0KFDTDqbg0ro~jQ4CC4Rzk+ IH&*y^`8yP+ApigX literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hostares.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hostares.c.i new file mode 100644 index 0000000000000000000000000000000000000000..10f9b8dd9250aa4eec4d370ca9443e994ca88328 GIT binary patch literal 3315 zcwPbX3=H!C0RRC20000001UGL03#v*0000000061|NsC0|NsA8?ci&u?n7np*wPg~ z04mbdRG^Ol00000000000001ZoW)sfa~e4k{?4!HIJ+@$7_hTwpVz zQn}iysbNN#Sr4PRkp@C-{NJy;rFjDr?@OwVlmlqGTdh|2(~m@_`So5kXu^{(hyNUW z;X7;GB=Q&G>BprV=QEgpsP!|xKQ&1Q3YE`J1D;m-40Tp<>@2V7v*SE9(a+=?{nsJQ zpB?&$BdA82eHm|);BKj*-fzI^k3aqZCvev7{;dU9ZWM?RrdmXEk=(W5mCqypSh}A+ zwUv0?0-?bT+t$=<87NS4p*LdyB3fLPXudYBX$!Fa)Ih-+z*sSgQ*T=)W*35XpyWG*`Vp& zP)TstZVw}EY893@qVK_a4xvK)z zf)B&l+wtuTKJ+G&-e~p_#&4iE`bfrp8jh}T`vaUT0r4qLgu=-a2v%_z2tS+io1uRW zOQ|$YsoGv^4X5ohO0Vxb-Itxyzhc6jpPikbzNAoWVel!2Z&2^+y*jnp^C0rV)E981 zgiho3@~AZSib4?GwU@7HaN&yuj0S@%=Uwmmdfa#3mLykh7)p;MpNj}HAd`RFdp~fd zAE(aj@ z9gKM2aT<-E@2 z{m#3a$#67#<4guO*S-FL)DhD`rkH_gU&zs2= zGMbHh&V)DT*`cS-)u4afC@qHa%!#yg9TSVatyqbbOty?zohJ9V&{Z080q&u;Th7IK z#dA{j#XP;U>R;zYpgyJ`QRoTOPeeow7Uxfc&{tmzygPZp^lvBE6U0@_{VA=3Nek^a zPAv+%LjaLciwd5F;H$z~}cY;-Fjao-n-ZKg8SD!{mGB<45NQ-!e4y_sxru4Seg zuyG^Jt@sWJ4rhq(;3MD$!d-hKj$0dJx4zdm2(#8DGIm!h6Ng{R5K^i#YpOE%!+^u?6aaA;8>K6jYSe1KqM)5p2P?65 zLk!6$`gpPbgx+zh=n0uYLAd0#=iZa2C$Gutlh;Trv}n^~8=1pSL7nV18^-s-zl&N8 zb*w{ey~d69a7v1(GaJ4eAOS+mn2xXC4=$>LsgdknkO6klI{$==@WL9wPgbMBHh8a) zOkry*nb=)Y-Rfk%HsQ3}?Ka>ql_%s}$2>5`6V4U#|DyI#DWpKz1VPLy*HI#3fxi2g zomdLqQh4`(;O8Q`igh4U1(CZVhR(WVj{3U5jK?;B*@aY4pn4mIIs++Y<)wO%yx%A2 zGg-zmB`XrSu*=1vgjjJMYEscsa?jeyeu!j(+>Ce3lUU*0TvVHDARpXY>F+OsJXhJ4 zA1OyfI>CO?#Lo>*bBhy+aD74(Jl7S8o9xvk z6uFR14=@C|r%Rg&9Tr6^&njjx@2nNfJv{3!*x42w z^|{<4sqPB}*859i{ zaLizEO!yhe=!BEsKpma#B~>i}*)mT&A1D&6wF78}18Gr`HxpN`$~)}yeF8_y1n*`r z>CJ}Y5x21`I>6mQ zH`N*PNf)=WTK}0IF($6YNN!rxdTg*0ajYbd!8gOA`+|Sp<>Nh!5G7 zOg1->QZDBl5-h&pnbXdZkpi|=EbGhC6bBK~y!&>4qru#giNgm$5^IrYUH~$tIZ|3& z4pIw5WJLubOT#Nft{{6xaXZf!n$7tN&Q8Dk{<|MuHZtf#J`$|b6}T&zM!IaB$+G80 zRH|Hne6z${n;DPE_AJc^H5XWE^f-v%4#kue{zTJpnaCAp9fC5Ap(I@C5UZI*O&tDk1@oi+8#uEEML6Nx=4 z(bVg>g@gk0R?9?O`%x9law-)nOufc0bqnWtE#X;o!KnboXu*w%NjGfRI$1nR zQkEEJyZ$ZH(54Y&$;VmC0p3Cn{xoqh-4p7@5N>tDrViJ;IY^r;>KIp{U?p4x;-W8e zo1u1K6AECCGu<1*82rq+>;!PwL5>nJ|Fw0Cw+QurGo_;WN=q{Oub@kp4|_Ku&n{sw z9KG*dH>!Tu@)rMRXb$9=QsfeStC#btMY-1Cl2WmVObYH+=E-Gl>hIZy^HWwbXIk7I zpYj($Ary2Aa$2w=C;?2jU__`(hj;r7YeN!WL`d;OiDDJUjeKu8E=KN9SaR}H%7cfD z#Nfo^+-g?&t*m*6Qr@RAw{Mkt6#GRQl4n$seCj7DOAJgQn@dd>&tPqfItZ$^hcc-$ zef1GqRr?}qr05#J+9eYu%2^HW=g;s68Kjz`8yaU|`)=a^F`ck|swCzxIcq0s`Zy~s zXl8aUe~jCdDQ2||?lbQHD_1TS@f1_eJJgd)&-Rk9y-ltdZh-mMvi#O${;|#&HidxB z;MAzOYvxBMge0u6i1rB6lo@ehj;>ZQwaqoDfiGGtHQTnC{t{-B+rciOPrO|!j|7`; zq=RTdICWyKz6=YeaPA)RDM?8d&-&~K9`I5_Ozr|Y4ASnf5dWwq6K$DE8_78tDoU-z zTF0b-Wy6f!I7z=UqB8$Fi3XPF$6dN2#M%(O$Vfa{GdHtbw8H!#M?YhLyTBs?u|GO^ zAW~Ve=DXYJjL#e-<>&W>90wXI0zqI&4Caov-%@iD%S52L7rj49&Uy2&2ocf}Xl4O? zT8qL!5&mtGO=_L7;reE#dAf*y_oYYn^96$8CGgET4b(HQ?XjEZLV-8E>*>IvAMq9H zgM2I)j(S&D6K6CY4N4%$r^JA0zArWX9y+`MGEcv1o}RsIm;O$a-WDhF?6}IeOYs@I z6kyHe!Q?fQY$L3`UvO9qFfc=%D7~& z_8&6S$%1F7kv8#n#-s;h$#?rg5FklDtD#qI1`~Z&YgWyL{aAh>R5FX~;-O x3yg`g7#5iy6wr8#^=E_oP++Brlwqc}Mz(?vs1No>BEBmt{V+n${s&J`!&M2mTkQY< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hostasyn.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hostasyn.c.i new file mode 100644 index 0000000000000000000000000000000000000000..1370f095979ca9b9209a3a1eebaee7eb80905a10 GIT binary patch literal 1919 zcwPa22Y~nh0RRC20000000%z+028YK0000000061|NsC0|Ns9L1bB6uPlae6jeUjE zbnKfo5|Nw$00000000000001ZoXuDNZ`w!}|DC_$CA-=NL~+~gOQDsFVdkV>$n>raZ$e)AXCyv5 zG1-_5Y-F-Hgh;FcA|K9GQp8I%JqRWpoE+OK>t>S>i$BMQja-wNSBG zpdjHOaxOXZydX>CPGNx;n!tKN2|*`vtF1M+sK`oez$6Zwfy~M_(8)HeOsJN0MNn`t z$riD)QG2HmiqoNIQm`_Pi5Jo-X>-*j%nFFwbPN*IS~ z2(iFJp+TtIkm*pSe3-2-MHIL)$OqlC(>Da8Q5iVy&R{S*hJ~=ow&AzI{AzqNhu^x> zX?HZgh4DM+j&6zB`@!fE-LFts3i5N3N{hl%P^%i4x{XSl!@q^MqoP`pOt#nz^iH<94ZwLZ? z*NNWJ;xd#=81?&?{&jaa9QXXI%E^_8V-wKHAEd?zD9>MYKlJ_C?aZIwPWrPNiQQPw zZ4zm}K{Xrq-uLHwWYz?qq&q-2>dy!G^#`LGot94F*Hij1-Q}+jNy5c})7|N$>$99H zg-8?Ok(fg^%`b<8x)AHaSdo;x@U<|h|C6Z{!)}QovrMHtX+n}3XBaF%uRX%}W;8(F zHO3j{g9|H+i66y(5F5K?y3Y?jT+b?O3cM=Mg?0NDl#J>o_vinTp?w;IkmT-KK;)l~9eP1xuGVT2Xn!IDd5nwqq}%B7Oh z1vN)dz`veM2c!8rf7+i6yS+X^j)f6ShHlJsK(!dlfQ~ne`PMe7x!x+lOmoXJ)gb2? zo-iUDW~2GI>rb2T(@$`8XxG2&_lC`ij^r#~J0tvD`917ba%IvD?RhQk6S1%kw)@ZPO)5dXSbu?723v)GYrv3OXCMv>lPyTgei01W{6o3ZJY0CJnx^e!v~Y~>5da(*~8@U zcgUmW2v;FH2LYiX9*M#H!FH<{hdZ2#G)+Y%I7iz)FIhivCo39b>-uDQ;K+1-zo)0y zAh=b)5C;b1e?K19MupH4G!0@lQQ63FA`Xn!I2khntz+W!&54vhXiMSV_MbRi$VGjc zjX&`GV}j`cF5u*`y(X%BzN2HzLv4M;EyZGmw@5j<84l^t*8ViWReI|CNT9>`!&u~&6_M2M~c`z_T&JDJ%U?|kLqqS-@RY)pxf1aWO6I*(Os_dZ3 zCmejE$!i?fAcQ%VLT5=OD1bY8H4E7ms&l2E$OY%y?P{3c%>D5@|GIxYp5B%xzWxR9 z^XhUC{zB?k{*|$nji*)k`Y`cw2jMTd3^AF}YiPb>a7vj^Z~A$YR}V}2uKMGf9oGJg z-cDCp?9_8sByU&rwyEiz2+uM-{xefb55uoK`9WsGH{4uMP@2EGF*8=F3~=^F%?MKU zg86dfp&cq&zdqyoo#!A0kmNGSEbdht?;2Loi?@xn@I7geV_LVI&v7BWiOCY$+S;2BIloE|X!^#8>4YK3L9z3Kq5 zo!s!J%^~?rsAshq2}3f*`BF5f>_4jm`m8MN)E=r)@dTz^F~08RYrc|ZwMmjV{ueWw F%Cq^A&4B;_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hostip.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hostip.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f520d9b706f9daaaaca96605c61dac345c123c75 GIT binary patch literal 5910 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 KJ^lyt1Pp}zz;09k literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hostip4.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hostip4.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3cb9f10732dfa2a8799a92119c045001045c018c GIT binary patch literal 4768 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

    )a@VJ|v)t8OLF;;lOv^JeJo zP@6AdQyL^_LS5QK^3K$;EqYUglk%t6_pgbW%DI1M^Mjs0pl+elC=CfBzL!}N>+5xQ zQQE#8aQT62zx4yjGX%hZgeaVn2^X(6p-Xh{lb@E3R@)e5gKeCd(@ghnC6S-yQZ{_1loXyETKa3EizAzq8M!OGmmXuf4JQ zbFV3{Q*&G&Cs5_Jws2}CwqHo855KFtQCfry>NYZVtZjqlTDa6}2H)@!)I_zpgj5w* zLqB+HgSO7yJ~oht7xtF=q=_M>8_-{ev)}V5ci5}myA%i5r?^!#4xHWIOvWEz0{Yr8 z`et)+po!h(HbvF#yW4A5ujwz!Ab8OuD?N0V%UF*bD2tejeuumC)?VK0nNI0kR;+T} zDWfl~dge4u(Jj_u$>Z)&-hh;fw}j0}kdsKRRw9sG4_K;eY%R25?nEVt%=dMu&9?<@ zoGVQ`xlml%$og!B7F^H=|!qTdGW2GnSwY|c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hostip6.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hostip6.c.i new file mode 100644 index 0000000000000000000000000000000000000000..104c89ff51c3b2d410a03ffbd6bb6d8688415d13 GIT binary patch literal 3177 zcwPZ%43_f%0RRC20000001PPr03loe0000000061|NsC0|NsA#GJbzOabLyOLrFFq z3)itpD>o1T00000000000001ZoUIvaSKCJRJHO(VmPGOqHqe%~kYv{}PVg3N);8&K zHhXl&(g>@_8m(po@izVMd+*FhmW&PAvr%Gfjpn}JqfYDVT|3Z%XD?rWe7x{mLtN$J zcOIzCyM6yNn12ZM5x<`!(t#DoXWxbAK|X_{L3~T)75(=8=Lmfy-sn$fPz*EUXU=l(ugFK$$O`L+7bBN-ELvM6-GZ?=2;9(vIb3(Ed z1<1K5k`U(XoovS3RPnF1xCklX{>>A^yTaYWy!6kN=T zSrW^+x8exNrC~?pAbFAyE`*D@G^}%&SQUA+4Kn09R`exBDv8v?Tr3(JQI~`zD)JNw zp)PP!C{WcN6lutFy;)0NlCXN!O5SRo6~7^f6q$kD?gR#tU6?T$OAmes_6lop0kbNQ#iduH>r7+VkDo+AGpP zdfT4Ap~WcV5e)nNGyk%CaWU%o=e3;+mLwveo!{~l9iZHQ-u=+`CpQy+dUMsEG(hB1 zcGNQC@(HNPsP}7s`Up&l;Et;;aKrv|fFFM_Y`~>l#rWyO>2|oYx9cF`Y|HNM_^Rt` zI&}z^XRJeHw#hU-yBIWyNEIeAQ89V1g)#l_BF@q4BJ`Lj=iG52%Y_nJS%6mCfcSbi zK->+)1%`tPYlsOSxqpxdSs{Il4?bK@YG|y!YWG&U#}br?nj-h7f4jVDipCkI8J1vhhK|;rcFEy%)b+-%r}BQ(({5Z zM82eFot7>s36lz{=elIs;xywY4aNyJ!N@c&gxmE!zgOVt1Gb0xDEk(F#epD6o-KF3>p`)>vKo61K!= zraBt>RC+o)_aY9VhrZ+!D=Z9i;=<7@B_pXI&rN$<45LZiR1P z@u?}mT!UN})a%TahEusrgE@+jBr_J=QOTx_DE%$AGpTM<5Cergye*XJX-J`|wzILX zZV(V#3J)ABe)>`wB$|MM#@2}wvfm5z)Ep~ZZrUqJn$HA=5zoKTDp`|#gAf?Uh(xQd zC9os%&^p+eh+G*xIrPZY3#WK%sWp|_atV@DXu?b9<)#)_3AyZ?E6m zV8rA>{y-HwP&On?z=FzIKrTY+qCG2z(Q1%tNiCqH740f)5hDUY&C5fKc&U9M2So3z z!Z>Kd0DC*K43QQoIwbB#Y#8#KR+og!)-tr~tRRD&F(U>E^Yz-~S>=aDYgRWL3&+oCv_I9?k{)Q7+8GVkVTw#t6xN#ZUfk<9EHNjkGB~2*-7|y^DbjiKq$T@)5uW8AJKXz=1mqkEz zlGLU-h@3>+Qet*3laZ+%<+6uO?b+EF_T2+Yixc0bA}<3cV(1CMK5fR#!zKB#CH|6(_R=+pw%*sg?@x!_%l=^aZnWmp zWNa;OZHxc+>+S{e`~DE>tJFrDRmrwG-X?$}1W0(g6=oGk-bVNzj`gJSJPHzjD++q} z6pBq?KS7kR+wF1r#bJgX?bNjGI;g^Dw1SsW$#b&fWdwgtLcFv%UpI)Y-c})0xs>~* zvGYGh>=P7i&{6_8B+Y-KI1FAEO4VFeP@+cwGQwr`Ul>fZ5ICUDXQ{pV`)lkfn ziLAlvUiR1!n=@&R;G-@<7ku3X)LJcUh*%PbsP|ybgF6WibEfom>{Bu6jV>_xRHb-< zm7GdFZduT&&dYmU^k*D1privUY!ZweBuvNGeUw>ObKNo~u?KXF;Gex8cP~9S(3T{Qz>yVwd(iNMf#MHHg|*{1RdZRi@&=w69^Y$o%y%vSTV)30ibhhRCBZW3jQR zb^hH3x)XGBEgdzW4x9pu>4R2b@%|eY`zimVN(<}g!`3kRr#6)4b}}7b^oRdC-O)Qr z8amq80``tV4|+E9V7xUV%2F^5tXJNmflwOibpP^r=>&FP;cxzCx8@ewvo&R!CVgvu zhs7T8ia9?14;PVxzg@R&vAr^2$8LKQIU8W>Sf96OB(r1gz#$GBgay6 zOh>oHLXX99l9*8rr$|C)rydN=l$+CFN~ypiob_l3r6HQKpV`*Byq-)c|LI*A(XpCW zdTXR`*F#-kW=7SJ3EEr7#=5q*2GhLODb7(x?*QT zK|!>n!TmRMqtk>DGt6QUYQ*B& z&^&g^cPVvLMy>k+%k=vuP0Z6Lo+}y3LrO6F%|T>qR}qWn58QCYv{FhH#Rj@bz{indUx}~ zNm&fm)JWG1bMM{hcHrYpz{eY)u{tmu$Je(TO>fx$r?w;h!K{eFI4^AUA5_IoFPJK% zf3~Yai>OV=R_kOGdRb9LYPq0Ifvuo(s3S!;kmaGd(>3CFusZ*+8N+qq^Jl~KQ;^3S zL2CiHDoJHWhklB+i05&@5`En6(P`H`)fEQxBS$OPc(I0GNl#-Oir5|a!|Tibc+fi^ zO>9I^8+Tw{<}3ugpH0O*{7momenhW|$m@P;AO6@rG+3)1VH5IRcQ_hS$8%bhcCAEx z@@R#VsqHOfy+NTHtXjK!A$A#hyX`_vetu2gRRmLRM}qa@RXd0>5FV6{@uHmDDDP?5 zk`;n9%|24DWBa}u3@Os}jHKJ26_px`wl6O0hxW~8uVeZo!^W1`kqq$7)+So_(Cf#m PD?pw2DChkb#yI9PbzdmT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hostsyn.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hostsyn.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3dc21862566c09a55d52d47299edf1e91feef0f3 GIT binary patch literal 1468 zcwPa#1w;A(0RRC20000000n#i01kQp0000000061|NsC0|Ns9*+}+Tqe+YF7g9>F< zt4j@QcOB{g00000000000001ZoXu8SZ`(E$e$THsON%ZxTq{YjOVg&9XRC`>$2M%G zg@FPDEm09uiPT8SiLvg#?;J^X>?CfmA`esGh$7GRJ2!gGr+fCG36DOk{4sp+U2=?# zz7nB(n3}P#Q2im-XM8`V#DiOwudD%&vwVevl7-b;-qM<}#}s`g+vuN1oSzvjaR=Fm zv#ax^k(Y^sgKh(kUcdeoUc&L=;mDy%7}L%!_#{ZPL26 z2-T^`(*~?aQ<8;zQrOCL0n-|y7Lh@YR!c`OtCb~H*NM)y2oXz?5*J3HBE$lTB8^bD zpiq%8C2{HfN=1!p3G&YH+}ay~R%i_Dcc##v?!%m0XO3ovRA2)-EhQTCSL0?WZg8-ht5rGJ=e zyB2z19(+8XZiuPz+W4-$yYInD(6-Bd@aOq>+hyUdvV0fAcrxnx)9qYAQ$wtwZI)H$ zV#|uS8zr7dy6Vf=6CkEP3|xz*Z}TqIU|hGW_!2nlvFNgIf4T0d_3t7gZFIW zj|ZKuPmp6@1YKYl3l&l;#x9`JWr_LPH)^?FmSd&4cvWgp$&3z4M9MT92BQv}G~mSx z_+i&6>-pV5W5Y%Y7E?}hRvCW}yG&%-Ea}W^mSZC2*1`I`97FZMnTwMx!-+Q%^Ww5Z z!F!^fM165Y7*V#)3zFy%nkDqIh@PlAel zAu(#(y2@tEu#hrdxKxq z$?5Q7Frd#GBQnls-O^?r=tN@(b;GkyxIF_746{Bkl;l`sEyFO`!OmnH&vMa z?=h0Ljt+K}?}^W@*x>rX$lyMlLKT_+7#alXs=y{y^Nc>U?f{1CDpovn1){d3HXPkn zYTZ@{2IxB?rwbZd40v4=gzOg~a;TaCf>t;j!+7bep)b+f!*0D<=#1ixx03GwkNQ8W zZZyn6lUBQlNv$d}B6<+m>WhwVzgF~{NFTnT@uW1&CH4~Ruc4sqiM0CBl~aqWC6rv` WEn;7d4q`$F5mG{uj{XH~gi}H5e#LwM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/hostthre.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/hostthre.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5fdfaba72fa678342f87960a524884773d0eaacb GIT binary patch literal 6851 zcwPa+8a(9y0RRC20000002+e;0AVZu0000000061|NsC0|NsAz0riq#19LBv5Ja;h z6AZbIP9k~$00000000000001Zob5dQbKAzTzw56!E458%C{l6~x0Pb2G)3ENBvM0C zRy;`t0|G}85eTpVC|OPPzrWqR58QzOML9{^*Y}ihL;-hudwcu6du;Fhem^^Gk3IO~ z(mxk|;5W@UPm`aypI47|-Cvpb4`%%czaLtp&59|%x(<7I%CD?JQ(U>qH~86gA6n=~ z#0~$~#+g65_z|AKG@RK@mUn4*HP2b2>#)PW{`D_xpS?IZc-dqpUL5j>jdLDPd3x1k z-vspJZ*%X{r&h*aHyO{F7quj)$vn(hmdx^7FXaqAN1@N-j0eoiSimzs4X5x&7_)rN z*({7W>kiL9_6P5p>~ z!z6CO+MMM)U1SIYm-nJ9Vcv}wM&1+_@^UuM^W{;y?XS|PC3nyc5)Z8D@)=Gm%5!N3u_?I5~0jiX$%ViEnrZP0I8d76$d<}!L)m|grqAG zx%PMpd;^xmfDGI1j9GuY%cfoyW=(e4pS&MlOxR^-H0lf{AKCCN>kK|3uEAHETfPIYRy0OgCjOivOJ%syyZ7<*kS7hve%#62Vb@izXpaodhz1u z@Jl4c9qWBsvOmGR-|wfrv-3q5`_U@kY&YZiYT26a8qdB#62w=n`D^1DPt!QTNAPSG z@EIHQdMEB#=k#>gb>ABU7hV)4K27E^FohcbzVo5yjz5mw$;b2F*qV~vW$pZK$+Hc! z#>4J+y~*0NEb*^-UNdjdoAlwI+aFl-VxEWauN}tq^G@EBrv%fQ(VfwG$E9`58D6^d z+PF;Jo+c-!eS48C526rP5xQ^>lQ8A7ER6 zS0EyJU;svVC=z~@WE$u?Joe#iY=DvUGX9pkTi<~KWN*1Q`TNi>DZv4i8F;yeqGL)^9L(%TDCyy{^vuiVrHOM;K&3}{ z3PP8p_EXZ-=7Ys5%ENFbL|E>^Jv$%u2a~t%sCRza>GtrLB&*u5B?!a=(3o8CLv-1||lbJF`B&T^T0R|^kJPnLOCoHcd_ z33I3X3U&b+)(iM2VDZB2k*x()KboBGI{IMSzmsxB4L?M}qKsXJagf}C0TXxxEcO;? zzOy8{0Rf(_!YIgoFWuf&vV(*gfr^zRI@u9N16x*SkCtwg38NXtU}?PqMTs4rRF->r z=(A~(L^RBm?_4ps0UWvl-_K9t7<@pK2DXQPGGVzUDALbB=e)bm*Ud_zEB@;SgkT-(C#5j9u{@*Pq@Y26A8PV+WnH z9^0)N3zEpAjBfz1@Ov0|Y2>b@;FJ`c^xj;&lSd2QjQg$!{>XUp<|Bduj~TpKqTYt_ zos$#L4sVAJ@Jt4#Sne<@$xjaW~8x zyH8g~Y_|zs{3#ej(6q<;9m6@t>>j;Z5W>cRv!nRyCJBRLT*Ksz*&=VUR;%Ug`~tg@ z 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/http.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/http.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8c3d4600212fba638f02f0cce7f229e45f1d8b1d GIT binary patch literal 1562 zcwPY-2Ictx0RRC20000000r6r01iR`0000000061|NsC0|NsAInJ>kzZ5BNG0tQCS z5!`06IIC^|00000000000001ZoUK=XZ`(Ey{okMBuoPHgsCJTe-I@i%JU3f}v`$bv z>oOD&Xo<48NTMK8c0BaM?;R=I32G-@Q5CH$iTCdA-Oui+v`l15QFK0;Tt(-dJv^yW zZeDcy-EVhws7p^?k^39r!re(+)%qV9+wG^L=o9%rkot)GQ%d@@5&0Ay(9EdFpRYS z4XavYx_EF9Trx`9)Fl*w3mi%`s1B$>-PG=|^M0kG<<*hAGdvr66VfG&q3;G`3di5k zR2XFf`VdaeFRv%`VetO_U^Ka*%in1*x?!-3aP$V@S5Q`yysK(ypu8qkRJoGLO6RjM zIdR1IvS3a}y^b9iJ?&^2;+P*Tpe*ZRl6OISJ zy*+asr8Ct!ry)`yigkg!l9?1>azD;QO4_?CdZtK4El(b9dK zz$5qvx|Pd?t`mwDATPr49Nd2)9)6=3?ZMBC*FF#jv7E7OXqgE^p;=ODD~b_PQv{sUU1TGg33L~4}CWw zJW*Lw-kM&_p`2@#Y#eZ3B2}v0EHZQF*Q1Mv)Oo=grT7SOK1KOW^=K;NGDiI?K}3$E zvzP&^=k5XtEH^%*3LpB~`nb)xNHpjS#){cG-^OUK5Isky#4vNF`O0ypwx^jYtHwI4 zudC`devUPl+xL6gc9qU>@knYjArCS!^0PilF{mGv0*zscF_rs5zY2#Jqs!45O))!_ z>j?pW0J9l7-Bd~pG^#b`<8$=K%8lBEWPdS~f$pa$cgGTY0_^4$0llP0AzWQxgdR7;yR9BV8Uc+brDYfNYh4UG;w#N5MiFOl`xf)zg&ZBOd_Y;p_tD-pxF zWg>P})@~~8+~{$htk&W++?s~{qtnwDhX*_tQ1IVd=b3Y>od@p*e?{RaoP>k7(beU6 z5{<*Z&!9L_v9K_QNkyq*(c>Lry7ceB$wFah6yjET-XY3%y5OLR03ptsWV6~mIpr&dD;tmfl4$v$c%TX^H3|q_IB25wT zI7SLt#{|Qv^qvK30RRC20000001mtW04&!40000000061|NsC0|NsAfzwBM9Y!xnwUH*zu z^?_CaOsY`;00000000000001ZoXuKmR~ttX{m!pwlbj%7JpgCDF<9)%LKq#(5=V$Q zPV6%ojaq2JXl61!11Pco``)UawLPTQxLyzusp{?1~3J2LET^ zgP*+OJn(*#R=9q)VSEz$AFTR-pAT))6xotbMpZn#3-9C0!+_!c<}^l@-_%e6d{-&ZU^yjuf5Y z`TO4BbxqvPZEH?KmR=;(+>4y4n433J1k#fBjh5k?K`6W#mP7c|Rv`pNq3yX1>@7to zgM}g)w7uylPnb8R?U)m6WQJlMhW=r*X+?q4h)>X*dX{Qhi3u9>aFL$oJrr4(OX2yU z2t5%gSras~CKle*p3zSj1%rMxacniOWg1~SciQv5^Wflc4Hi9iMY3jk$H4(W}8SrF2eX>PtS2ps->&f(;3eSZy zV!M4IdKcSbVk%qJ#Jk@3YuZ`L0EA4i|HsW$`8`o|_9Fwhw1)!R9Wbfn%yrq|+E}VqBTX!=lk} znyH*bd}=IbSS0JxDHcGEiek5(!Lh4{v1h+L>;5DzdOvrMe-V5Yhys{UK}+#bbVmJC zo^{e5w~v#rG;#)@aR_Xbm<5RQ(P`)4`Tlc21)oqnYv6ZtdAPNOE2ML4FvLvJ!o{xLOLAy`#VcI~D2bs1@3c``>a9N*AlhlB! z&QvuRen^l>asWO{*IYopgZqR-Od|`jV>cvxo5)o4fY9IZAeoiKu}O~Y>f0fsxkwT? zeXvYD9%;k&?N}BZ5P*$w+$GE~H(8N1vv4+w949ehgKbZrj<$XM6j-l@1GLeYvXfvmE@^*tn|~;19iTh*zM}8Znxp1rxT0{WgBDRmVv++6{fR3@<$`9U{4kT4qr0Cf#T<5iPSD(_d*Tkt)yYE(tPE9AR7DH5NzE0Y6#pqOWoETRjxYldk= z%Y`2>c>3sXe+s{V;B!clXtDXBT5M>Boc@~-Xk5;StQ1h zvoN0Jf*_GrG$fWXd{USU86o*n=j?Lu#(=l;np-KZz-Q^QW_F(5DY@{go=9 zBLo+tOCG*q$Z-jZ9B@S$Fd_j}F=`6mQ+8-GjinW^*ih7EUu+ zhQNND)U?7#W3Q={W|WMpy9rmQkcu?DZh4W*4ohtH78ojlr`3#A5~DClEIkjCuk{78 z3gvZZ1>&0UL8==r1{-ES!`Yt<&uOpI3E}sE3J#xYpeeW8>H%D2t zULg0u;%7KLm=dc-2$=@!(dNLWsD4B|=T|4G-ME(0Cn?vfLg*2%(+5H}w`A@+Y;hIR z-W5GijSZBWqHT~(5xZ4wl_P@g^l1Vah(7mfM=?!C)*{?s92A6_j;!b%tKv_-0tGT+ z%`4VC#*<{+G6BdbvK%JY)g(?SE#{O2x0yF{W@zND^&P^Kp_f90Dew$YbjR}^a(az( z{IO@1igqz^j6>c%+Y{e?7dxGJ$s;eSv1)tu7rB+6K8eE0@Au0qzki;rY}ZfkS^0cr z<@4uNSc+Df^;vEusY|v@;9k5GZ`(f&F5enNvJ>Mb(Zlm5sAFXCOMcZy%GJEvQEomD zJbjuU(sx;}AFYaILHXIA)8C|n+sJDY!#ZDg*BB3nMt?YXou(8btpvX~4#=lVz^fwP z_ku8g@|+}|`^kbpf51BwAya#}=KA(4uxyS-KN(oc76EN($aSb!g3%}=9k=3bS&+7GI z_rmB52S0X47brt6@;k-_Cj|_+-SO-MzoBW*jrkc#rP$h`P%>@iM%?c}QNZ{d1c z;dmVFnSEFS%^`j+l&2Zmv|KIm97VJ(@&(0gCLwlX?()%w$OSTw`|ykyZ(A*2#>a$feFL zJdp~WC#3|E;$-45#fX5%#Q{7)E!K#OqO)mmj#vWeebO3_E=#$FwHtT{0-k)Ba#pb7 zsi?!>6SVOH;H3-Pq^P5w2E`MdqYxkKZhB0^Va&`R}$d5pqh`Xv%N^62%^%@1HJ(euPLl*_zIu{TZ7)6QR3N8%DA*C zm`cG@j;#&BL`vtwN!O!(6!7~5!Cg|4ypxe6*FF{vG$KX(NUKLQyUV(>FTY!DUKt*8Z_;^n0&-w>Mg<@Y)-?dus;1YS@D%#+VJ7Z2wboxEWemClkyT+^G z$@`jkRQ;EJ*rL^=O{Xq9R(hn9?rFb0?jGjmQET1j`eBWYkYma1eb3h2)3h-ads88D zH>_`o6%t;wPvr6yNCQW4ph&?|YYM@?#F^+*i3{OsVzvjY^!n%C`TwbjuKuw7uWO&b zYMjpS?fIyCagiAa*JeW3yu~z`yq_U&U%Dtryek*mXYKx!qVroYvAt%UV^8QskAB|? z*mb8${Ay2iS9Yf+evSP|w{LzWlkKb(RNhlHwyVWE$Y;h^?GvLr=nPMKgV$L;iJ>8* zHu~Z+JSYm$A>SR1hNIN5ar5D6E9q;*;{~*=Cr`;6QI+9pa2e);8gja|3EzwHKXp0H zvQoh`gw+d=n~=!B?6gc^f?G4lRbX+cR?n@>Z>xM0fX=(xF%u4$1L+n?Y>8C{mQT5` zTauM>61Yyys2|cWvjlPoX1MnzUE=9k;=PB=XH<2SA?LHe+8z3*nUAb=6Uym*E#X-8 zEB^HniuX@9DPAJcnHT5YfO;Seamm0eC#5x1!|8)k#KdiN`g4U$2z(~UHKua+u?_-pT7P`?5iZctO?n2WagIN6657{~6ZZ6Rc{zHg-6_enb zW~#(z((iB0yP_jei`Nf>LeaiywkXIEyDf2$MBw)=KCdY`M+3zyXrIin@Q3sZi{-@((T zA6rSw?@LPH*mrX5y=16|9QlDpLMHzU@h1^bM7qBvz*c}%+yhAWUm4Bb-~olXAM@2< zIsRI$gVoOP{k8RdmG4TdJgVoYJ8h5bI<6E4iG@fWToqZjDXBl?hEs}s4Q z7pZx7X=bqtnRUkZl3%v5rQHq-z=T+ zTW0Qras#tQMN<5Chv}R7_%(1$3;FMvxTBjHP~J$F+=3VHD0;Ea?TPrsc+yr%Zz`dl yEIw&AB&x58ebO}^R-xx7f=cC0d0{)_^NAVhzf!V;$yR+V_m_sW*?$1*8=(Z@?Qfm{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/http__chunks.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/http__chunks.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ac0c65a84e7154b2f53f446bbf089ccc8498b04a GIT binary patch literal 1647 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 XU|J0000000061|NsC0|NsAc%6$E2<$5eU+PQm8 zGE{Y(3qB_R00000000000001ZoUK-2Z`(Ey{jOheYl_Y`R4Yl*t<8#Js^iAS5<7?# z6b1qiv~;q#$)rY7j*TY&eMd=7n$~GhtV|rr)V+J}o{m)ZL?%Mj&|D+VwfY+qyE~e(8)$wAbw%@2Bmvw*ZdezdhTK4> zhOn09ox5i2DWWT<&HV`+@`|}jS|ON24ph0(Vv$?u47zae_U#*Z35Wapzxi;?rN9Cr zi*k;7;lsPMUimZU>viAYdmqpOFZyk&I2Q(t%Ir1Q2y|VD1f{_gxPcT+qQ#uP2njYv z$V7oKn4ZtZlM^4VbCKjO$wpORa#a;691#BAmoCn0|zCGIPoP8c&Yt@e3l;fa_ADA#x33Sr!7*E$8!bdQ=#o;x}`JUV#g+}OZyUBYvM{=5-*p52t_4jYu!5k_)4Ct>=*hHm13i=S^t0XzEJnwIBFEJkkk=P32le`5T??iyJU3l^0k=uid*?Bx= z;blDPK1#kNj_BN=1AIh#pHAtXQ$XZ-E}A6=UeyUD6q5NC5)tF+1t+l I0r`|>juD*Nga7~l literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/http__negotiate.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/http__negotiate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b9964448b79afb6fbcb772cd9b2e1b03b9e7e96f GIT binary patch literal 3085 zcwPYw4D#~;0RRC20000001M3k04X;B0000000061|NsC0|NsAWg@USY&w)aF+&6u7 z!;jiGh zi^AWS!^^2H>o1Uhkn1D zARBR>hx6yiyPtBXo!6oL{rBI&0URA3{?mX9JMfqfL(YORi|!40)b|P<#4_*L#%3$L849@#^AG*CO10JWI zGbJIr2(_h z^(OR-PQk%>GWNZAYAh^5b%EOoBZ!&rlPu)(SS(FvFjOuwhz#avwa4iv4uhCfJx;?} zju3rGQYJ|hpd$1I61gF|+JGc*StN+X>{AuWufoYI!?Up0g)l&4pxPNicUXn79ec3> zzjQ~}{r4mIr85|GdZQ1}zl2Wj0}1=7+q=NRW);fIEYJZDqcYJho+(0-nbu}Dz?z+XH+wQ3H6%Kd-1AMg3t=`DG?hi-rIz#iq8k&Qj zyXPj{$FUV~D`wFHX1o>HGgkSE1(+p5NkAgc-w$rAi|(-V?#8sPN29w6v>I@5fKKkc zIs$t>k3vdw9MR2v6LZ%Ko71!0P~-*o#WB~8mdAW=oF8-e^PJI;<`FCi*XB0)M0Zo* zP6|UjV!tO?@3~RT750zU`LRO8bMIzs7Dmr90Lr!2?cJc;8(mrh^X{gD4n@yky+N2n znDl`|C63t@_|JLYP${=&bMywEh&irA+lgWfd7ByIG44+tl z@@2A`w|Aot*1PwYm*#+|ov9rGnfvR};p^}IBZknkT)b$2%HNX;j-w}KNr;MOGZv6< zuuF`e;mQxkNes15LHHO@U%nc4>p;2TVH*(rhm=s48ncR6gRm`4!e|E7H%iG_>&@hM zH#n=Jw`0z1mq@agKggF*^H>vN4Cgc@%f#9IAolKqdJ{U->Cps`0fXltbiXOZolouH9up<>{qPY>3m2{cC*n=SYV>Fa=?Wm!VE#x4 zb-P0vlrvtkUCbAot0dVM`p60*RLm_~6lnS^xaU)RgPDl;HAPy7m(a$4YE)(+xur>_h_@%on4BEqI)m8zgN2itAeHt- z*i54U%-bP)=HI3;AP!_j3OXalWI*+s_=j)es*&1mK+y(m5)ZbY(Clgtq31%QF8oFI z=|zF>sR}Sn!-&gz-P6m&sH{atbnOXsTM({Z1GZpR{Xxu6`Hke6gF$~#(`QtNw{Xyg zV>mpie9pQO`Jm#5_o6MaC<>!BeQD7@1ZCDgLsfuG~wP9xQx^M7faRrok^Qq3SV+Sk}ZEQ!nTe6`t8A ztT`<;N0NLN|5Jz~<}(ByDg(6$m(Be%Z7&c6)L!HYPB7GAZ!b&j7ns|!K)qmsGh3|E zX-dk}!>UAIz&YX%%M0cSUx1x8MJbDKimTZF6DH)Jj><|`PGLQEDDs2}-^@f#!d6$T zeSmQo`XsUlK@bG<&O zh)NW{gIy>{w7rhjGE`g3d4Jhqas~pokcWEjZ*I_eDsnYsCU5JT5!p-j$^_K&s7zE| zB`pxyS;hLf6mDVa&gE8ImK9kFAnDy1_R};?sTbIfl0!I8?i{h5IHAiFH!c)OK)@cO zDEnojzNhu4+=@Y3l*l)zs65?u<_r}}u9N&3!0@hTUiB#*ukFCa^+FA(fbUZEbajTk zw$*?4qj^3OCv@SsczP(qeUfpIi}WjUimT}|QY&N~Ly$ zl`K@(G&8nBbjx;c$3|ZH(v*8yRClHS`z+5@9>64GO!u)Cm15H66Sx%l-BAqFZXlxw zl6_)h&vZWqRZYR?>`q%@HM3TAvsC?3ZkL$2OrvV2;Od;{8Jjut=VkrIqD+l-{H2|= zz;IHWZT7xkO4>>O#{dYhz})f}d`?ec)xukLY!G;KaO+qKxa@p(Ag*jTcRnyL%-*Qm z*)nxOTga6K+cK5`fSv8#cK4a_T$nfJm34X3x!RWRaCawOcX~bZ#(LN7U37a_!>wJZ zCFr(1+jkk1ukU&O4h5o-rSPew+RjptvtkFl*yR~HX9$@~a6DHIsn!)IQW{j>jC9a@e( z9yc97j9IpgQ>VE~xIDnC(6=ALxYBn@+~yO5FMdW)_;?`Q%mOma)fzFu&>hk7I&8eW z+ekyO8$#Xz9q)#WcRs;gzMgi#5G8FZ0Nl{9k0xLt>SYl!~U+ ze?PMNmlgu!{@{a@puj;+hEZM;3N`4JyM>A6Q(woZydtyWbSL;Np!dxFq>y(Pn}}!o z(lIqDaEqp#cgBwNTVvh5-Sz@|OX;a$UjeytW@MnKm|QySDuG_CU>?nY7PIQHkO@{va5t%m%)0a8>=O)%TYT0C^DYtUMSmytlog^6o?Y+E6?^a z)VqAxBD=k=VO_>;TmIYe`I{?ZPpwAv?9?-NxU;T_RY0xEA~EJXY9@$`=a0Cu30_-$ zzo>Q+J`E%94{?l0UnlVI#|V9BET4lKurNpkR3F%c!}N1H-4%jaO{TWWYSq8tZP|R` zI34{-U<~nvbOkh12x7?M7-y_j?}mVC#ZQ0*gs>5NtUw)=6{o^4PBoO@?~TlVjTV5` zMMrYBW;0f@S6YaZA06t;y32}IeCOE;Nw0}uQIUR;tDpY@lwjYBq8tHe literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/http__negotiate.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/http__negotiate.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b40444217e69bd7a5fcd6b9ff69c0febfe993fc2 GIT binary patch literal 741 zcwPbJ0vi1Q0RRC20000000N}|00q4O0000000061|NsC0|Ns9E97*7EHu6N*Lj0Bx z;P2Mc9uivs00000000000001ZoUK$*Z`v>re&<)5N*`L3kwQ0ZWz{r9SwWisHR&p( zN|A{#*i*10+o2%!$M2lL(9~}2Ll1(T^~O50rr@j!s}p< za8kjN9owa!Q>`zt-TNZ_Pw1idiJy{(U>-Tp#n#BBaBwm>h0evrCwK?lv$OXBTrnjv zhsdE?pjifR$t%xS!8V(=#V-M%1D3aUsbV25Se>~CW)Nte%M_JG4$J~an;N;G7pcGr zgiPiLgXwHOo?Hj;AY>|hlC3Vm3SH(L1Y08*Oi`}u90fBDbVhJW&ZTvfuyj(ZHgO|3 zG%M?KczTvw4Q$P1&K5+(90=!%UKpmO$=kaXgj}aKO!pGBg z6NO9dBy-pn!5TX4uJ5vs;n{iE`9OWw>vnscb1%pihMNM83H^2!HX2Qt`AcZj|2a&q zqo_X{`zxmICHiJm`($4t2xMMXsfyA8p`~&#pvFlm&tWYmBw$H*L#macJAyOEpygkv zRRlB8suP`le!`U+WKOE(Q&L^J9qZus=0~bI*3`BC72KX}ttGEvX^u>l#Zz2FJ4R<` XM3U11X?eUyHc?S`{~3P+7}TaE_M};W literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/http__ntlm.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/http__ntlm.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9110e487fe2bc30b208170b4f5a0916e1051edc1 GIT binary patch literal 8838 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 I0?R`pN8#EW{Qv*} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/http__ntlm.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/http__ntlm.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2286cb9106b5442c21111d8240138bdd2a61091e GIT binary patch literal 1854 zcwPZM2f_FN0RRC20000000#a502Q_X0000000061|NsC0|Ns9Uvl2^nv*zB4cf7|!JLHUDHU-5aDkq)dxzWGhq zE%FWajEG-Z`9!aMf0v=JgpK}nNb;*sFYyG$NV1=1i(Jej4SW42bU%DJg#+jv9v-*g zj7h;`a5a}xp3htGDKsblh}gqJTk*fQfNNlJyHe#vLV-$W`kv(+@O3N#E)@@fDG0d= zaxuj>LV}Js%tXwgKN{Z*oQoFRMPc zX;fHfk;*pO=Ae0=DAGaZS*%iEcTB`=iiVhmNbBrlrxO%;+^#(6glV8U!7>ExNGFfp z+#ryIEg;P_=oAXYTR=BkkffoQ(K7}G53^z#3l+6ih|ru2J82Gz$1&+bIl)y4or7D2 zs72QxL)1dklS-u`Q}Kd&M^G~jpe`}vYab4 zo`XoTSnzOZ^Or&R(FER?I!@YA>khi@9@W?T&f!s~dyEzLvDf?9J)&4Fz<$W!7Zm(? zk4~eZ7a1p-;j&2Je+_{C^<-#h#Thwv3p)ECQ!Hd4jDQkrH~wj%n{)%CLm#&Qh*je# z52R;+O!$8bu5^Wi`cm=yj_1E3kOJRIO*k=aIC2;k4jzURC|7a;LU zZDva883C5i_>!OoXJH#jiqsW_i}d#Jcib?`CMPBR^@b=P@htEG=2{C3VQbpY5BvK)kOj zesXeXIdH`!qNnvhDGI_ZU#$6AsHz(%NyLvB5EBV3OY`>maH^dFaBL5!c^!S6{zw4K z7}^Q}sryhD05k12x(%nnl#^fNcWpy;4^2mHo_3o%vpu@929EDukH^D-eYVa`B`3I4 zZ_~wk^{uyhciHE(aEZ#5s-|h76*)JVspStEbQ}Efgf(8k{be-y?0S|r7_EahxR3rM z?v(@qzfbd9r44GNLCF&SXJ8LUeQW6B-*B@Sy6?7NmmOXYu=p<(&o!!;OF+AoVk|r=wqS8W0CoQ-+iwk!b#)A!lZxMOBnWm8FOc zOA}EV#Sx2RE?*G}Yxu>waW|RXgyOiaF@6$75@Vpe*(@2n35z6IyjhX`GqB6q>3cWh zWy@^0bNA%A3_h8SFBhI>xbEneItJS+O_-3cKlDMkb8%(pNmUoChbMK1@9PdvckT||-YIN9OoVES81En8_rK+qT5UFuUvG9c s4QAE1|I@#;oD2J@y`%4_z?Ht^lN$J?zS=Kl$0s}CSKoL40D9GiF`$-?^8f$< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/if2ip.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/if2ip.c.i new file mode 100644 index 0000000000000000000000000000000000000000..aabd0d5c3e997b48e1ffaad592b4dddede3af808 GIT binary patch literal 1431 zcwPaQ1!(#J0RRC20000000mb701XiU0000000061|NsC0|Ns9SY(*`3YCD(sm_mee zHloE!+R}3X00000000000001ZoUK-CZ<|OI{qA3Jn^sxK5|fAa(YT40I!=Px*p+b~ zks=`;LzosAIx{5kw*BvWXTUbt$!4`Gkpo=rxsP+^4%je~08N_4GiQ~zv*y!O>4S`em? zLsrf?y-6h)LlgF2zWft*;b3p?cMDE~f|3k8Ns5s08w*~=+VWQ#+~4;FIkA992(o?? zYL-#~f+g}U-~{kGqY)_ti6IaW6A^J5;tef8rUVk25g1P1UAg0P3+_@Hr7FmrRUlGU zWih0|EdfpWzzF*gB8crH{7l|IM>gWxuxSrB5PKtd{I zd1TvB#j}3XfgQ6**wKQ5ek${2H&<9l9?XH25+s945DS#21v!gpqRvPP8p|ros7S3< zMVPLLZN@>6EK{)%M~SFQC*U;{S;`GcteQ%7608s^)m_T+jw5oZq9heBFcETrPBBBO zEvSl^aP6$SU!-Vw)g(VE&#K-SSb@dBmg9lzZ9y0aDlGWu&MqeJXYkRPPMz`W3MOaZ zjIUI%H}3cp<)@g81Gz6b5ty6<&C86Ec#-pk8y^8p4rtkrtXtUcAE>qUhrM@b@BfCY z?dag(X#Y_0Fo)572`>=z^A5Y$drpfet6~CMg2<}ur&}%CDSj9+C(N5mH}r7UD{sLr6eq z786=4jVW<@5?YYh@Z8Dp+&yznPp770O~uKX9*;ye3n5`y#_q6SXi^KMhOJ76XNy1| z-SOdp3ESH%lkdMCO+4RUw+^q)(Yvu<_tcisddjJYnAk+Qk(f-{w0H#P zOy4=aMz&!AF9TZvyK;BSoVk}HMA?npd4+PL!XZf*4x!GP^i$M~gX4aJLmUv4oD`qg z9JkMe)WWqplr$%g_vgE3>%Hj=5BjSDaY4=AZqP_sB(ul*!ZfF^*R#aoztN!7awiX} z)eK-4_~FuPxo(oYoGE&7|OW?JARCPAd$7upb3iG{O>!dHne z=-{3NIIc`1cV|n7x>!CTs zjp5vD+E}Ak50IfrMm<)$wgua|d!+WcqWJ%yyFAvR^kCFvi6~=&)aa(M4TWosJ1Vbq zE;Ipn){Ct5M6EOR$j48(9f7{=lL^PR}{m{Z(7EDVO zza9${>QP$^yU~DaeK44csHbc>VeKY22vO#S5Lym;KlCoKyNlaytUjRXkv5e@Z46qb l|1j}Sj5~mF%V=yii*L|2q38O&Mh-To^T$H$e*lHn+0M}pxj+B_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/if2ip.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/if2ip.h.i new file mode 100644 index 0000000000000000000000000000000000000000..04211a8fe7ef520b9f15beec1bcc553b477dbe28 GIT binary patch literal 1057 zcwPY^1m61q0RRC20000000ZFw00{^H0000000061|NsC0|NsB0**Dy^hRMsIjInfk zC7(?^^qqPD00000000000001ZoUK)DZ`(Ey{_bCKa0=uFs$@H8wjz@2)tdy8RlEkOI_%bb2DKOXkMrkON$bO1&KB_YD^1Ng3A#yRUiy5 zE^p)ESpc(Kr8$c%bOkooRUsi4j|c`+RF6xIsW1+7MsyOF$~qFPoYG}Tz7ZUniDeCT zFAA$cJPK8aF*yp`~sBw%p_PbxXsPpQR{AzhN@k-Do1q1E=2;xy2#=9OGM~abB7MInYHg`9Eh>r7w&*GfqTOoYoKjUn znhOJa13C?f4{#@?^t&2XCD~*_y&6|EB?xGeSoJsV9=1q2tM9Dg^~qKI>&DlSUD(L# z^a1HaeQwd!1w)irq`9VM5+y!vTbOC{@Lm{A1%!+eH#+?a`(XztXsSv@*Nn;x{ssT6 z@51Xomy;oUYylky>IUL)-}~4}q)bXN!QWT(KMsKcQW-Ex zB@FLFXk*!Fvul8FOi7qVdwi}}N5%URQhMbo;o0G1I-7MsTnqa(G-Fc4h4y`0N1)Uco zpe}b^?D`U8X9MbPi6LiiRTXw8ty^uvXQ}n#E$4on=x|*mUm1V&M2fyZP1&_3Zzo*W zfQdYE7d9B{A~a|loVb3G3OfI)0UkuLTQ*Jy+;)|P|ZMz*nx6=#YdGGEr b_Y8UEf++(kU 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 eBOEr{?4yBK|i!8OA1xBl~vUc?FO0zsIXN? zl`IoqYEQwAY=@VrKYr%`MXk2+rABb(e9ueHjvFe|0yAK2Fua?x;dC@+{aS-kO5>Ys z(tN*BgC-mutokw<6f4BonqQduzgIK%4BHQ(9w{CZN#Fo^W@m65@(iaHgzZ$W!u=L94n6wc*+Jy@oL7wN%0AF&I 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 MdO7Z zDg}W1%OvRLCtsu@a59-@!ks(etxUydnMmP9p%h042M7BHKkXm>*u`l=pl4zZ22wu+ zKT|0~5j&YX2P@8J=RpMiofM8(INrhuiMxRl`Z5q^Cc~*rZbcSh6EJ>8*rqbeWFnk6 z4oDhoy5J0QhMu4KQJ8jw6MD5nB8)N?;x>q;PJsP53W8-O30vqaq)1~2oYAR8l*oeZ zeiT0>{_Q*yEw?QWfBNbB4t@T>pMT`fANlhqak&g{1OL_$mb?r7^v)3%|9hL>MS&9% zrj`*sIDyc^H1jhM7SRll?mUcw==PxlNh9}e9t8_LekPl=yXy=e2^w8eolx)Ith*M?@AVr&Tg z>UyXH6Hptyk)>;92k834$v_{ScLcDA(by70{Ytk0W{o>Uk<;ATNijYXSDMkkz-#YR zAL`Z(Gjyg~BO-SOdOdO7Gc3J78TJfuJu$AwCSxPX2D;fF_Vg=l&=p_;goXBA8(G4< z=naP}k^)yl&{GXe_D+Y4jVVFUfo^DhizKR^`p_Ks8zT8!Yki#_v|ls`(=%>5Ia*Wu z(*!`+By5A;Rqq_)wH{Fn%+jA2+7+=3RhX00g4y%&cwiDLpf@$+z24W%V=)|?th0%! zbwI@GF?nEt!my3!(}}6G>hzJN8OG$=(#NAVA-WiUfNsES52pvL=JAMShMLC44dEqy zuoXJu!-a-*gS5(8>ya)@Xs>S(wi+a;LZ4PmSTWMhhx)lT>a*6zgy@5AYHb)zHwi#j zlt1)tSjGv9Pv!z|>apg)9X6`a&qQzVUMJ>rV7P**=Wa7TBTVL`f01jyh=o7s-dk~( zOy6|f&OP$!5m$&;2d`fpevjhx_UP#C;cH494?_Db7JtB*S35iZfm$3akzRLGnJwe) ze3#Z{p(keoCL7vtJ@Os<%(|uxTEFPM*X&E<^iA#f&uQib{sKJFY z^As3Tg+FUxNRR*(hGGr!G#5OX(n5pCWTczcph0Dc;+uJZ6tDIuWs6&x#lF{Slh8Tk zn(XKsJSTHV`f73Nr1FP1&9zw;Hy2Xinl+c$291@4L_6_N=oWc!=7-X2G4t?Z%N|+d zo^7 zfi}^aCS1op_C~!c%{Kq*Q@QM;;5leVKT`f|>?G0&79S0*H@s5oUyiHLVB;W54ExtN zq;a3>qmcI~skag8Wf+C~Db;GXQ+A)!H`^#_5coIgJtG?^5H!Spk#B&41VmL%C*e4b<{3O2Z$p&1J^v}O%O z>>rXQ@|OdWc#Tm{QqQ}_qC^V~*V6$`c+ zFmRx(1>2qn`3v&wQ)^PD&P*!lBw%sWPCQ<0F`LZdb8r70qO-|h@z=_!rU++>e;aM@ zUb~hAzU5ezSwMBsZg^acKlGLNHU7X}kuUzAnT2{~n{!-g4O4QM(O#YUEPWyP>E5G1B)Pn_v8Ks~_w{k!A z43*tx^LEXL>+2ic8Q7A!biD0RS30!vPefZ7VMe^=nJ49Gkw%P;_-`7${Lts=azP`< zwy;c9T&_kkmU0hP>5x)S{+NsN`f#HVGW<$R(o9pz05vp3Qy_a;^erL!STG{>LiiJu z7mSW>OOZu3eSKJX(zZa&#Uzhd+^JYq>=TD2|6h%Rr}*@@9jwJr8Mf;}P~c+P-6RLc z^aeSe9^C&Lp;lwA>1hzeS!VOr2J3gkrKSC12?y^LAB|cllY72yP_OfdiY56W*S&PP zP@Y9AV1O9v8`?mPbEa?;>6I-+%KegA^h+IXl*%Tlv)&ykkEK%G;^G<8#{K14WuIVnS_oQ&n$D5>>OU=rmgG>ToU03hbCDTa2?K z4oY-PzFs_7sb6+hhfDh$lh1f!*!s17Ha2W_wH3aEmnNV;&;=PEnUppT|WWzY?2feO;)pl@Fr_GEN98h;p-iDEOp#9eq_Ls&F@ zjXrK$>qhX+=B+oeE^NBL(nk|b^>I%NC^fT{S%XHFTYDNsL2Ea3GWed2wrjV&(vvo- z9D54e2BJS!K#%KaiUnp> zY3yu1-_8*Ye5OR$vNq!N_pU?v;bl% z*J-{>cB}hA?LMjMAozNO?vc>&fBfOir{m_%C>3uwc>K6s$+JOG;G=Xu1@vX7 z`214V4GvSjz)`n?#V}B1zD_9)MSPc|o}bEoI;K>0SVR&dn>l_^iZx#Hw?pc(P$)Y4 zOb6obJ|6EPPq>gsAv=xy-gn`eRr7%&-W;x z9M_dG{y|<91h7dVnqiEMQXAxANHqBW2Ku=^PIikN{4CyX8AI|HSzJxV&>(E_`aGq>%Np<_Qd2PSyD}Jp?FusQ{hwX{nCMy^>TPddvZ`vBYEij-~J|^ z5y)1_&hVnXxKm8zZl}JY<1desM@56fQop+H{-Dfb7$az~TMG>6B5#kX2DZ3C+7?OQ zenV4TFMrFa^2VC(XYw9xL(N`St456o<$MZV0^a_N!(H5%`sabn18&sN$gb_V$UcQQsI}=CdvV?zSEL+22}T0v8(qo9Q$i|tBCjCMFiBxBYK4kKB+zu+`DpUh2L|1 z+)^C@+^mjtdV6(jsA5}<^h2egF8a*hNil21H5W6ltq@|pwh~BLTJw0$vqEjX1Ui1Y z16}{yI*?F5Vmcu=QeK2fpmj`NPSQ7`q;(7|BDNweowX%BHmiwpQbwxAs>VZ{v3D zwwu`)XeRx3z__`#a`SP!<01l-Uo|K~fj_RIrP~8brz;x!oPW_YI?vyE96l&~!I`b7 ztCj0%W6!ld_O4u3ZJp~&tv{;w0_2~g_(xU$xbpLurmIojuP#POruxlkg{gumC94A# zzF2{&m39%VPn=up(ywF;o?ex}wGnnh)PHq`?fxU-Kb~0j_{_f2uExeqQ^`YSKm{XdE69VRC- B#SQ=f literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/krb4.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/krb4.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b76924eed8f757addaf3bf1e3780e5031ada68d8 GIT binary patch literal 1026 zcwPYl1pWH}0RRC20000000Y7R01FiW0000000061|NsC0|NsAB-d@gHbqs`f1nC{` zkj65{wuE5-00000000000001ZoUK-EZ`(Ey{;pqfX#2r2G%Intm!`!q&rKI2gSm#>eJAB9FXb{*f#M^T@s~9*mr&4qE*qIC=Z_H~0y<$H%{f@PR9d8C*J4Q#7*> z-iyleN6PQ-I~IQr0UhwHQ&UY+X~F8m-Eo6J&zX!-Srou62(+=0Q(8y`E=5RWhR`2< zz8(z!3gIr5aq3APbO|=qWhNlya|DAi%K3t$;KqSY2u|ceT1SMXlUj918^NK;t>^Ia zJhK}3oXd<)Nr*d0ohweGC@xLbsZS6I9or~grl6C$e07>@3MA(bpbH01LuoMt?-@d_ zg-rZRNg-oVPBUrKa2*lJDG_M{7PHKA5l*6AgpP1orzrGpP*Bv;`N?W!z0_T*^DRfp zrDsV>qezHyK~6$bszWI0wK0`*b^4`5o!2VK&z5H$uK=wm77=zVyc9-f(gaqmR%VUVE~O!SDl>Uy_&sye|w|5;q|8B9kbVny&`p6mHG*O(zZK zaMJ1e*7`L%ejT0sOwD%M?Vg^z_Gx&4v-<*G5$4B@CC&Y+gj$VA72Okp zJ6=0i4y`sS(ZCU>7~itOXt!pfoed8?N0TBKTl>3CsA4T}?c(PR&)Tpr$_0Wp?yws+3P`GbQ&%h4SH;TcJ8aWR zq4clDpZq~q4(!$!tJM^}U(gBs`BxfAl9e`PiFg)Kr2`W21X&nbC(sBC;p5=bnV&aX zFN98~v&%C>7dMkE)E7j%sG{7Ds!G@lHPm7Uq1zq$1kZ9i+sCmy?*hJ!pVyiDuEfnb zqucjMEHzd4VE&SA!X$T%#hCwZ!si3D_06&(wR9mI%J+7{wqm+7(&6{vgQ|Qh2GVaX z)~-~hXY{rGoa;8JzsaDrA>Pnv|CDH5?YXB}HWHcP9J41{78fi8q@Mw-a@zNb@1Pxb wrG@IM^T|O~=CDh*bayP)c}`zdm0)v^277;q?TkjXqv{r=y2vE>577f_6)?i^3;+NC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/ldap.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/ldap.c.i new file mode 100644 index 0000000000000000000000000000000000000000..9ce98a127313d9b9a52104bcbc4ca47ee871f88c GIT binary patch literal 5558 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/llist.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/llist.c.i new file mode 100644 index 0000000000000000000000000000000000000000..a14d2fbef4ba6350b017082c74cf1522f48e8be0 GIT binary patch literal 1157 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/memdebug.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/memdebug.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0a836341b15877e86b30ab23852f909fbf403813 GIT binary patch literal 2572 zcwPYv3iI^<0RRC200000013$CBOS_h}V zPAYZ2QpwU_w2?Hr8Oelf^53_+XCwsJ1xZXC1f%Kc?$@uoN5hk75{e0&T#e38`~SK6 zz0qwy-m3v^*!c4JzlSfpvcwxD{}e%f|7_3u4CWt7UE_6=k}fPnK6?&q7WoV<7V)f> z7xdZlHYvI$+vu%JlGh%6#1RxD$rG8)RdhSep>^WG!7so38}{JY{{GJ{ocd`bVi@Nl zy%Flxg%=@@{5JJJe(Y%R(gl%&A9w6hm(xgtmXmzuD*^a9jslTt5rVHF6gp7R4StDI z$fp7(Q7qu(;?4WP@OKwx(QxjgE(x@8RMMj)(7Qu|EdGQw)EE$`pu?nGzb6 zD~OUTjzn1M{9zCtB2GytZi?GZ;NHPO=NZxKU)}xZ-GiTzaEH&H9UeRvqwyq4gSZFsC>Esxyw`6=gW=_wH|oDRKR)TNYDzK{rTK(KE4%PU=;uCJR@0M* zkzAVhg2I*Fu8xIqbhBps)o?JrJY6!pK=S0_eMZ0Tzvd$A4KGgnXMhL%zBBk9(!s>8fSy^KD5`y;RuFT=jS~Pu%AZ(+(;Qy2;+!q+Yy`{pO5=J3Z+PW z8(w4znER;O%Eb}`iuZ^ND7N3@@MGRWS|r$nsJt1#Mg?8! zV@z?%os2@`Pf5O3fN{$qnEDFZIG<)Z4Ps<8f!2=o%wdkwSgV?2`s%{5|Ch?yFJEYduf zir~Xi6bJ(sHwZZ@Nx9!H?rB-5zy=7Fq8>9s#elfy5@u#=K`7C1f<&j)gu)bw=Qbzt z25UBfu`s4GhZ|ue&{mFjg~N|OT3t0V>{vj`p^_mSGx5#hTJ`Lt(o^-Y_(k3E!^GWEBIQYQ=LcO!C=EK%V5MgEV8Bk zk3-uOLNl_=!&syoL|WX}2wYBqgq@>O{W>p=0o(Bsmp{V!c%fyTrw3JmTQ2N4fx~K) z5+~>r?z6=mAxS;#mL6K{9)rR`e5<~ADZw0B@xo@m)3kTouR5$XX829VWon*B?d@s}F^HJ;bI55ULEgIYevGcPgJz zY7o!oncWRz#mQwL<60!vlKY{^kOV21gvfSQ)8xE`C z7K>x34(ngrYG#4Os8d?hTY=uVf?FmRj01MwmQ|$!*+TODAeRS4_=iG350U1~E5s5q zrzRA{QVSbZP3Pimd_ZhN7W=vBUYIKj4)g5R!sTtM2F<|!c4UQX_I?E-R(Lmbz8VhH z%~;gV^2`a=(oqcStB)iyysx`%_Sfhkk6WzAX_>`o!EN29C2WmhQ?Hx5`nu_w%T_&R zp_5Kn^?iU;VVxLojp0Uc>#(lYe=aIZ4ZtA5Dhw3g0D_Hvwki76^2@G1;gc8pgTdR^ zV|M-R#o*L?dpz>W-vfGf9wyDKz5$&09|YFyy;PbL`0D6#DwNJH0000000061|NsC0|Ns9UZjQoW=llPym)t8@q^| zbp`?mv_x5KB~c)$I3D`rcSlOL6uWVQbq-=lN8WSChxbBxUqm5~;OzS9<9Ywj>vyev z5oILtN#tMlt<-Byq~sSKnC-KD{~NeJ)Vjgz zE+aiyt9Hf5hzWuB-W554ZuAbW5m7EHr2tnFUiE@IDa% z&omE#X$ZLvl$haz$iT!LB9U-78-1D%hVMLB#3G0ZWGM^Ku`H4hVs^_x@qmk4hmkX7 zKt`yJ;Gxh40ShB!)=|L((5z!S%L1A9Z5}{*n?Gc*G!k$#1d6Ezo>Itr$ z>m0@1=8FWO;t5 zMaXS*X;|RC(v^l1F;h$}yKpWclLk_82Mgq-8bB=EnhfLd32LK1`z1K+X>N+V8}HR* zZzw#=7=24}TQ=XH{?+%#)3HC9e(H~@O0MSXrS6$!&Na>7=NX3PrrLOP_Mt!7(9<&b z%1uqNHf%y6?MMykvVS?cnl@l?ZzV3iZo4etiJaRMr?vQY|4T`$#qWp_xEOrw!$B#1 zO&bLc4kJAaD6cgUW*b5O?@9k^2)9y%aNrF+8AT08BL+O!t zYqzRoZ@}RmXDoeCDG^u&+lkEPU~fAvAZ!S^-jN%uFDZ7Qyhs?{Zv+SVYvEj6x9ORp zL}YF)lqT*jSJKEpChIjqbCLHvT_XpH)Z8MIktnnXKS0n5fdv82oo^UkZueLis``Dx zGq3efOW(0GM4U~o@8*$9J?l^;bDlMJi#Ts0W5=t9>4UyKf{Vzp>6~#^cde{CHexAq zC&S_Bynitm_Q!VBV?2=902({}EmAeY&I7_k<4VYop`LJZq-U8qHCm-alC zV|~P@RCi&3NrVs{sViQ>Qc7fe0aTOeVM$o!Sltyo63r-A_>($svNolSTpLewb?e1c z2=N%$0pzd>jfbah-BO-tUTthmeP#ZCw!V3Qde@%}PcQp};l-%t7jbvruS(X|%+rh_ z##*H>da%~%iyoqc%{RP#G(bJ&2x`kpoX3=-8&uYX?T{JP@MmLmYy4wKyQWBoY0T9b zzHTk6z^yXCTgRR-PwHjXs;*0fYY48jb{Z|WY`0rn=-C%OeaONug{F5I2X<03VtIJ-2r)98;@d#fLIkE!l$wnO)-v6^u2 T=M>A$YH;rjO-Y1((D{N zlnK{6<$VG*t-eCw@~ zO&NS@j<^2b(}OK|@k#1$LJzGq;-|B}P=@EdljI(n520>oeJMx`50Lw06JCbgL%)V3 zZIpd}Pm-4c-EeOFCuZbL!mnf@7$b+aTsSq$1N4WRu=DZb2Y3y;+uLs=I1)yohKqn^ zif$Icep*{T=VCq|csz&z0|-56sV;Nn!P_j{35P)MT1hk>QxG0f^wOy*ZIpqKBV2vbIX!4k5T{o9SS}?PLBJ<|3Rz-=vOk(MlAt8iAXE97eD`t-{Xt**7m|18f#zA0Ek$-vs-1&l7%U@E-w5nPWh zzm2ah;rj6W{P65@0^_f6cs60O@1wILD!-y&4sc#N^c38IDoU*|UB=uPrF*1PVclYo zN4Kyu*yZMWA8)^jcivIE?d|UF?YvZ8b!DWkQiOdjd|Ukkh)GV{ z3b!bcW{wAT$2sX}fZdWpXl-R8X_*T78-{F@jrCKe^Vlp7L2z*>ckPn<>lF^yv7@)d@{f7#qFd4r(q^J#SwZbhibl4DRq1^@p*6dS01X ztr3+l#c4GIzwiNzh;L)aMd;Cd$@ykF%+R5c$emQv7GkF4fJI%e>I|CXSM$Bu_RHWl zJEyBHOH3p73e#-+Uj4z%PB|LW5+%E+X4|JBrYZHu;O;NbA!*C9VrloBUWencz01HI eu!8gE@nKhcDiInQD9e>wv-`h~HT(+}zAN5S$eO_b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/mprintf.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/mprintf.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ae2b3fac9b4dd8c143226177006e71d147d1bdfd GIT binary patch literal 7995 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/multi.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/multi.c.i new file mode 100644 index 0000000000000000000000000000000000000000..815b2c38f3c9c9cdcf172bf3358a14f99211b8e4 GIT binary patch literal 15938 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 H_2mRE?A4la literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/netrc.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/netrc.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0d0be5410d34a6d6aba294ccb6c493b7de4972da GIT binary patch literal 2455 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 Ss!77u9#?b}TE74e7nhFzw_rN} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/nwlib.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/nwlib.c.i new file mode 100644 index 0000000000000000000000000000000000000000..63bc2cde0503e5def393e69e3ea48f0a6b42a898 GIT binary patch literal 3112 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 azQ5m=SQ+i*UAM=XogLCV1D#(Ut5Q7-t~Qqd literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/progress.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/progress.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2af3d7f1f3b167b720fc55714f3794a39912aeae GIT binary patch literal 4566 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 Ar2qf` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/progress.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/progress.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0c4b7468d419f6ea81eb5b98cca6c1eccbc55364 GIT binary patch literal 1047 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

    _1t^k?xrJUMAFAS!Dm*QZ(dk?$x;ZeJ{_@@5jYY zMwOmLVbEEGH)Hg3oF?~NIC(!oGU-*ds zsYJYLLEZy-quUVOhxjUn@JjinkY_A{nw7)wH+&1iNJ#m~TGgr@?G82W*U2HYmrx=k M^P&#^0tx^ICRUCByZ`_I literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/select.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/select.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c967f29ecd5be8d1523b137f6a981fbef1a99360 GIT binary patch literal 883 zcwPZ>1C0Ct0RRC20000000T1s00$fZ0000000061|NsC0|Ns9!0y2ByLuczksK?2A zuJEo)(-+?W00000000000001ZoUK%CZ`(Kw{_bBvtox7_UYzu{+xmjxf-JiRE7Bmz zHU!s$;8=96JKHiOIZd(dzaOdCYrWghFH_OTBKeRHDT)UwEhVNP#By>u8Lz}ea6o5O z;$u;C^y^jtNATnl{$J3d-6Q5k|AUG9v9%EQu>T{}HSJFYiQoZpFAm{p$UXEtL^M&( z`CEvm0$npV{)rfQE%=ip1Y_h_S9eC;WDa`cLl~Z%ynz>RJQ(~Q!n?Rsn8VUxxj}Oi z!nyR4KeBkY>sx#q0y>EEe&cGDDGOGo?lv|E^qs2&ON$a>3leQ&)P@eK1eYPCDn}S! z&DYb}pCR04D#_T%ovy)Vy3QqJ@fN{gf@-_>QN_lAP6UV z4j<=ML%fYu9&ad6>>zWlI*p>FHhI6vAd)(?(Lpz+bnbAUIGd&zFnQr-@jumtuZ( zdC5aYl}TPpgmZgmqe|!07H@+C%q=p+&m=aT&c4l~{c-=S2D`zqqnIzIt>U<&;1V{9 zmmS4qv1k=p;0?_}O;e3G5iTaC}s=N_oi!Ppb@Ez#?e zH5kiOhTo-dYm`G4GuWvDb?ro956>RC;|laT)qpyc_OHMBfmn4@`my7nB;k)7H65~= zzxO^}l{O4Tt~N}k$KoR1d3-8K>yA9%M@LW8hQUw9aBGIU1S?0lhA%VO#`zJr?cx6} J;6HKe2%Z1|sM7!d literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/sendf.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/sendf.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5673dc92fb325772da26e5ab690a6a5f4b58cefe GIT binary patch literal 6108 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/sendf.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/sendf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6b5b968d966d81d6528e800428841c148f75b7b4 GIT binary patch literal 1171 zcwPaM1Z?{N0RRC20000000dJ201C7K0000000061|NsC0|NsAi>CDr%CJZ?&Kcdl#$z87|x_jjz`HBV)f?nz09{|4{1|_kB)6cvN{{9oVn(0PRYJHC{f^ znX!G2ZYehU2}$#o(GhP@jWh?QSX;G7J+ucMI667`4c@`=;o&a<47pY^gUCxgmv#}r zCsEz}nezMlo|AtBAU*J`*O;26%7HV9UvVn|&zXv)c2WR$Af$_}n&X4g;8O{S$|MXf zzut@|UjkUADo)AB+LYi@Q)U8EzLa2PEY-5MQE=oJZmR=d%L*Ej-w7DZ2 z zxe+R%9YMj%qMT>SrNLuF=uV5!Sa34S$QJ4;>FUrWL=8j%i9vx;D^Hs<+L5bOYVv1- zh$UG`N~_TkVu3=!Ak+br*f_QluCm{_XmG7SeziQ0@d_{+gMl~w2*%MHm~*FG0N3N$ z`Q_CNuKUwze=@s)%g@lC+>o)q#*-nIU!gM#^1iUrp>qo=FES;?#^>9yI7Jk+NP20o zgrnXuaqHLc@O^mn5!rTne0+NJo^V*h=)QorsPywz*lG=~rWdghhzORQRgtvg>S*FS z>6r&QBq9LBqQvHojn>%Yf_o0#ptY-^P{g5N$}M!0+y~I>^*X<|mPU!%jnaup+Ks^o zkwJ={V~)tfZm?fHLDK%Pdh0+XP)|+KrmWd;9QDsGM(pp=^z1Skv1m3$N<^J!l8k+s zTn!lO;DBuy;@9X1d9>tK)xBdEWiGYHc8INUL>&%`IL5l;XrSl-q27$_I{ABw3c{{h zXk#V4mYI{}WN>nVIphU0(>gp+r(<)~O^uPQWOFH`r)i4}%gKJ&eeR)hP~F3TyGo8C ztvaZ}68D_n$=U!1ZA^hxR>%dJBxu>;m0ux)okwt$UVN7Yw8;3B9`XP3hpq}0*Qm*=DYa5RPES2SnmsM&sL?csY1otJ$O zV~=XjR#ti0-bH+R2rxy2bzRWltLRpEySpQr<D28E4jd*mD1vMZ?70` zY$DYxKU;h0rf7`JW8E=6X*JJ)9K1_P9n;4E2eH9nTVx!+G`3CR#iv$ZmXiDeD@EEk%I4fRBV}78A?M}dm5G>E lds8VgK#Z+v`!c+`Pz1_0i(NI^`6-|W%4E~#-vF0AD?HS#J~sdW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/setup.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/setup.h.i new file mode 100644 index 0000000000000000000000000000000000000000..35163ec982365a9db53dd6c7dc78a1f4b964ea9b GIT binary patch literal 3629 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/setup__once.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/setup__once.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b3d180a9e3ea34ef79f7917e1424e138458687a0 GIT binary patch literal 1638 zcwPZ!2ATN)0RRC20000000t%i024U?0000000061|NsC0|Ns9W%lh0TiYfLPdT)&$ z+^T1+#vLsH00000000000001ZoUK@YZ`(Ey{Xd`L))t5zXm;Xc=$duI4981^HMSQ! z?E(}KXo{mJdf8xDGX z@9N++jtR-@!|kJ&yAI$8c3z(S_3*;G^%y1UAMTsStv&A>WIyQj8SlG-w4rqQ<~3or z%Qt9P7cYi@pK1~c4O-32Jxe&?=ScWmY90X75OD1$ zVu}w!f(bdyM8u&t9NoEtO9$>l;fFNITBV>vl|})CY{?V z6Q)Ke*}~Wy3{MuC=AiH_(hAs;iHJ=x5Hk=O6Q8%+ewswBdtB^Bd6Oo3BciP_GIZIY#j;@a8 zvn*0=V9MbO$8y06*K6sw;M!J-Wu&r9Q7G(UW{cbpnVfT5%dMAO(Fhn` zrwOymwxR?V3ZybQie$JT-Y~h&sS-!bFSN_Ta?|g9w7O+of(?=E?ywS7$rku!mLU1s zqlNrZok?ecG{;z&rND#(W>}W2R{j@mkd3aLILS0OpEbn&WHL*QB2dN>RahPtYbcW3 zWbMu#Pu#lFpf|Z2^=YF{oa%GOA^*zIY0c!!LR}8s^d}#)GNhxA+^2jKu>vCzWN#P? ziavz#J`s4*snpC>fg>FwwA&KqarV3gtp_(1 z+DDW=KtD-P2d;(IxRYL~51yKNnKF2YiC2h%XGJ0V)?XGARfR}Xoi$d@+WFdq22TBz zd!}jYvJOdO)pYV~cU*O-8td=#JZ(0!@ioV1n2DVP zmiW?R+X?I~x`VOXcE>~1_akg4idLg-O?CN($d*b3Ao(1-2|Ti7y1=(nJkR44yOn#f z-E2+QctZIK-#y_sIO)9I$aPKxcRU_-dwtwv#1YpTW5>~G2x;iKkxDJ*bjo0-nlx8U z0<&kR zx@D?y$o6y`-ME7SoH#+BXB~^)6l<5*h`q%jnjcbUg2o;**s1xRp_89lMto5%U+fP} z=EZ|U+p3l)vMjaHz4W@1;kDcICI`7a62??!|D{;KL!Vj`eZglejZCF!rbe1p#v<%+ kWDp^$r;%*A60Q zMSuc=EYT4cnG{4SiPvPmeTSrENw#dKZ62mJmPDTGcP>0??Y`VqgI(BqIr`7R3-6la zBIbV+PgYYq&LfzA$n^#9+my5*XL)oQu$|=*>YBw#wH&Eu$JwUni?U7qv=rwTM?K;S zvMJ6kkLEGG2_)3J4cLGG{&#o_2YY+JSa9kxN;CXh3+@Bz1xm=A zCm;fzggylB9f6p5gx(n$ksC|kQ)EZsJ{1xLCX#a2MBM}=iDyE|Q0m=KaB%Nj8oCoy zTSSl&gBxa}x zu|Oi9Bh(fo%qOuX*4}3-Qd~92Yr~V<>jP(K4D57l=-WFmaRn6?eD06WMpt9_+_}8$ z49C|n`UsujwGwvTAD&|PDJqMBJVY@Os5}Nbi$Y5LOy^I1zm4HUg-y@8gZ<`#%B|m8 zd+%ENzhbtv4-VSPYKgLfU}7 zl$d=oNp3WI_v&(BpCR1J7)PseD5J7|$En|_eXRkY{R#H1?t%bz&F#3R8brNfzcF*e zkb8AO{~>(3O3`Q>A}^gHvwnrIS`=D_IH!vi>{+l`0GQ->dmQG88=SlOhgi3zly^gGd#rdB#<28(?l0 zG@H$BNL8aG0%g*j>tF|vsz13ijSIt`F^`CP*5)9Tx6U+So>r^g)XQQ!VPyjIo{^|P z!fqtv!&(vZwP*0b1 zo_MYxshH8l*u=J-xuNyqe^(<|G~=FzVc8;0ajev19cRiB{4Keq*fJ7hospDf@xs1B z0-g@-b_$S+z^hbtz=iZ&FIZGSLGNM@P1IR4yLEgf^in<5Z{$^oTkNjjJ{*1Oeag6> z()$D>czdY&-4tH=WJ($Fb>2IteY^8v&~whlhr-g5vM^@~Q{buw)v(50ux0;eltkmc#s|-w11+EAjoGxX|=d1LG z1@elrRGF8PJT0DHww#_*P$hpWDhf&^+|$>il%CR=zY1l+~A*%X7je6YSol zg4`H@qr{44Gh~!?c{s{5speTE*YihNNhv@ZgHs&ZGK$gphRH2U@O*Up{sFBxG{Lbc zghus5^H*okKTSF6O95|GWkGt5RZXkK)lRpI<>A=)O*ZIRg(_XG*9GQ{>Txga3AufF z5@g+GWn-h2Rf;RYG2>nu%v}G{%<`GDa> zSYd?`BA?G!6MYc_6*SJmId(amUd(VaRo^_Xve9L=P7N#?hk~2yf}@TSR6;`RqA2>F zq+eIYL#5Gz2z|pW!ii3cnk literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/share.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/share.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d504a8c274e813d39085e81829d26465cf87f15e GIT binary patch literal 916 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/socks.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/socks.h.i new file mode 100644 index 0000000000000000000000000000000000000000..fb3496f282b2da73a25746f0734787f41e828316 GIT binary patch literal 727 zcwPb50x10e0RRC20000000Nf)00t`n0000000061|NsC0|NsAQn~&oEATp2US5 zd(}*sp1ZdI00000000000001ZoV8SKPunmM{@!140zN>MCA7dcIy9{++o+gYM2k=* zq{y`|#9LxVw$m4>KYnMoz@{;Eo0y}-FS_TRyXP+6m6;NlL7I++y~|O0(b%P}RQSV5 z(tNqmfF^7mX?Rl_GzY|$(O;3f=dIIp1?z`UcQkJ!N#F^xN)KQ=WCi;Hl5SYe{5nmy z5#9ON{3r3qyVNh~gkT=o)78?*``p2P?*Lk-r*GjEv=0woM{v%R!~#YR)fCNr1ZN_g ze8|~i5nFs80Xkqsym2+or3I@qH)jTc)`jG#EDB&21X^z7lr~a<%MmhJAoPY;lm6gy z1oK?-+&fw78f>oXLO{-D2nIRI+1f|Nj02q!oSX}39XYI>)G8)!1c#=y-iN1Wh1I}j zOcrcPM9e|%T-8YuUYjD`WRM8WZNeWUh;vsyW;3BcO11=DIdB?kixGIs2udwv=4TRx z4y$@vNSjAb5fPmdi8f%dD7-JiNwn+G5k?z{B5wv2MJ=75tX9@j&2wG;WJp?iFIjCA z5s?;TBs57KK}|o73C1D&2a1iZLFC_-=P6zRT2U~t(;Y#7v;$LSrH$aWKfV~=jN!I> zecc_5Coud3-ND2=yX+6nsr-`24B(FH6+nv^t*I@}C7ZvOg=;cPzpljnX^{iIhHwzT{-i9uu27z$D97ARFVj1dT zQ3)GFv=wrhNgj$q2cZU1vBEdAqebv$(ag~Jgp)?^=K2fQg7l{*TVGwr`<%+^falCW zGti`pl^8Xi{aL9ZHC-`;QFPS^<`^{n=HT6*=5q4?ayj|CTz)mKn6-0l#6KjzOR31L J@g1aBz9IM9R!jf@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/speedcheck.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/speedcheck.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d1e01a5aa93e9475d55c06f372d2137db4006e36 GIT binary patch literal 1200 zcwPap1W)?_0RRC20000000eLV019>h0000000061|NsC0|NsAgjbX9aH5=JWazLP*-89PoXbJ_mHe-1sBm$eWaJ$wFZq zd2FhCtEPpA-f6w%{393iF+`W2XCNu7y)}mFf&r+e3B?+tm;XrToJ7p5uBEZ zvEZ;QITyt#bPaWc%T}U@-Jl}Y%Jbojb_}&B%xuk(wB#&#Z8ZUr7UU!iNgYA0CEDN| zs$W91x(1Oqwr9mxg3&|*|Dnm3sl1xuT$KI(e&C^t893^gjHsmh{^M4!#OnDtb8kefStsFd7tQ5zaTza-eOH_o&hcHWAtH zgz#h=t}tvT@`ec#On6$meABQ9c-92#!dO9<~coOPXbt#E-jkOXz4hHZk%eC z0xdn%rk)nGMFnk_WeQp!Vq$2QGPpDgT^b={;75hOrd~m>tuome3`oMmjU8D^6RIQl zu(T(Ly4li>nKI=dS;Hm@)mi8vFt*h~hs zLDPRz)Y_k2n{P_dVfS!7Q$hbIXhV(j%`j_vF`{0j3R%KZpp!&-9HuXY-PE`3Fx^YJ O*PHi_x8wgd&>Wm!WlGQh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/speedcheck.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/speedcheck.h.i new file mode 100644 index 0000000000000000000000000000000000000000..45e9b9f0b285a6d7846e8dbfeeb5abc3cd2d2c8b GIT binary patch literal 691 zcwPas0!;k?0RRC20000000MIW00ln)0000000061|NsC0|NsAmssJ2Tk`yIrTXr#g zBfXpP2r_a200000000000001ZoUK#uYuhjo{qDcwNcy2Ip53GyTeC72+-wOQX=zeQ zpkNg1JZZBfBgy#z{o{9XT(XU|-G^RqBp>(gJw2bgGFKdPNYmN%XmpW`N6BS64!V?+ z3ja>W$FCOw9K(x|Hcv{i+XFPPYomW)=Kc*y(+Al72y)-7E$o?yVGnyqkKq4c4{+GP z(w6Pq?@8-RZ1-NI|BF5JKJ{D55X>VJU2Tp0E*u;tN6HRsYgYFIm|RYcqf4ozu& z4^PhutAVYUEZCBWm;>QlHHhP^HbvB)Am%!=arS6IBwX2?rtx$^N=mi`T{&%fv(X+yZ1 z%*R)^bGRGc+zhAl1zdfB;dJ4fT~4MK^!+7~8Nf|t&=R=;SyqKa{>XVS;RCQ0BF_Y7 zKO+&YpcnQ1guRbXPUGG?nz=#0Kj@u$Gqy0=RB%AZ*NZp^x>99D%@H~lU0p?@^Lx(8 z5?3_FKD*MALqa2xHln4H?vPBX>Hg2?gfweol1T$~%$Z|HAA{uf=3Azz%^uX8^chqb ZJb71JP^$=(UK2&oMMVP_`~uJxbZzkVIGX?f literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/splay.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/splay.c.i new file mode 100644 index 0000000000000000000000000000000000000000..60acf28f3d9bcd6ff7210432900fd3d4dda49834 GIT binary patch literal 3389 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 Hr{mx%;D*e!+j1;PAE32k4+O236tqN6z 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/sslgen.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/sslgen.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5d460633e942508928619049c190c17e8f2c9bd3 GIT binary patch literal 1274 zcwPbe1O@v50RRC20000000g=K01e{+0000000061|NsC0|Ns9taDEWtXiidOWgETk z<9-1Pjt^b{00000000000001ZoUK>kP9rxE{-39q9;Z{X+RFl`sy%wDihw(!(r_Xm zgmjYStY@<>jvd+F5Go$NWABC}ToRx?BeJ{p%=gWVXU4lbvd{txU~Dir`*PA}r>z}& zmKv9*vgF5&79{ZOVDX>Pplj6lYR%u6`}NX{JwW|OTHomU97zTXl?T>==T#n{9aUJv z@+sUi_8if-U|aafg620CZfS&+J+zNHu=nxfukarBcXxkD;h1ZQ3I-na z5bY?1Pa@9zQS#ZW>+ts!&;wW92I{hu4xB0c9k&Q{uVjwep#bhcpv$cs(u36CON2ry zgroDXH@*Is6z)oymjUG7RNzWeDFG#)B3R5(PHT(_w;oJE>I5#N^8{FVX>^yk5j@(l z3mAc(D`$XDxm0{eMBGE^{p29a^2(}i<3T1&?y`Iyf^O-@kKWvnA!B|IX5zscs2rvc zBvTk0A&YROpwQ%`8Y=0^bYT(EX^|NV4wVX6q$knUrXviR5T!v3CSi5xE69o+yc8&iS?{4!}7z zLftLXDeQIkV{&D?AF{olDcuhC_Yd|ygh1TG$!r2|N$bartkoJCqu_}4oRJwUH@c7` zHs(Gr(Y49{iVAvZMR3m(2)}7-YgKJh)rdl2=eH%|Tp5i^^c!iNscep0i8oq|&J*d> zNKum(7GK8cR8ER5sr@2MQcK?sSSyfGS0UHcWWIQGb#ay(fh!T#)FkJ8&12w#Bs`=L zn4HOPC8h3c8wS%x4^@;LZN}TaO^;)R^`%O24--M#w)NP;y<8gJ-CY0c@QZS;ynzCPMnSGHqedV5{Bo|ey)-jqnJU1#o)x+>aqPCqAK z*;>k@{Fdc2y{%ubYe8k@L!W-dVfN&GBZx9;@ZvuoVSykBJre9tdi+#>ABpzW;3Rw^ zb>Q8*#boo%bku1zDOF8isJOnRBFwFEu?^GNitj_k4J)Zc?7{P|t~IB}tkc>FUKFiI kDbi(w)2qwl^Xopl?EQ5T-W2zCX~c4mh;yZX0UB>5Jd@~eng9R* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/ssluse.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/ssluse.c.i new file mode 100644 index 0000000000000000000000000000000000000000..a7159d3c7e333827cabf20968331cff086107b3f GIT binary patch literal 16912 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%0D&J7 z0Tan8HZLQtIRks{x;43BTDPXw$6QQ`;w_P62N+0*OmwgN))jMp4`Kq}L zL^|c?(PhAtE4CtEc7-p$fOwUptM1KEuyUZaZI)27u8k0sN{DHatv~@54mFFjwD|aB zRT(7o+?_a!Ot^m8x0>Z^wqiYAUx~|Ul3;%D|LfU%IrZvzx2Dz7#Zl9S*L>SyaeG_P bit}X~JZ(*wW+gf9B4I1?;+y{i5+EddJzL0! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/ssluse.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/ssluse.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f22526504958c3d8bce6ad73e948aba8c8c1011a GIT binary patch literal 1168 zcwPaJ1aJEQ0RRC20000000d9~01Jlz0000000061|NsC0|NsC0vU{+2PVe@lQr(W!coFDY&F88;?Jqk3VLg2Af!G z!?(B6;m>;pG^A&rEdFMA@QxZ^oc)*c@VIoAeW&gRT9BAsE0bMv?p)NaHSj*zH6Pc@m!GdRItyTo?xL3g^H=v zHPhkAmy4t0zZ1HubY2O_(zfI)+tvkDYR=?1XFcyQ8s!4n66ydiv=0DmgSKV_+f0Go z%nOE?SGBjK=1SLU0z)cL6+*M0rg`h?Q6E8C*xaZ2ih@xUX4lbNz>%3+l5GM7OReXG zL^7e7Ep#bwkb=#ooz&V_$&E)aXNuH1@?6(~1wGBabDe42QZHtbsGMaWJN%@dizl*FK@I zM`xc-&d=!U!RhJ2@!18P{6z=H7XtRr(eVeQU&ELqUNnw9j62e^rq*1nY`!`w_R0Gi z?2W2qPP?PMSX}AOn{@XVl-vH^-u~_zA!11%7Y)6F*3Wy=0p`Ya>=i2^tFJC=>LpE> z40F*@Iz=^Wlh>`RCrj~r%4U?uH1$E`Km+P#FGm}wra}cZsx}6P=ck`@i_Jr9W)>P* zZjHgn*aFclCP%*%1scjCfx&>JluY?sLCElO%)v{qtQ=)Cm8%MfkEG6X$U1>FxH4Ca2WORXH0;D-ON^DR=@@F9oolH} zgdaN`mB~)$!sP2(E!hDD?nC0L0#E8XbRF5~iyrk}IuyLPdoO*xd?x2x@od-x*ZUEJ z?jw!Eyi{!+qBD{j;Q{G!s!PFhTx7ledalLppRI=17_V{e-=#d-S(Teu@lkGgW3iXZ zWd9jkcdJ1g9U=#hRXHouHmlPC(Ej5r+=&GrHGoC#u(YsSKI_?qYaGlQA zOe1O0o3`vu(seGIc9uLm0gS}LAx5(XqAU4HTRs30h+v)k1E7k|6I?aC2CI)1U?uKS zERtJTGqoT!v#p7jdBl7gshe_F(lK%1#ysC=axO-!*}4v)lpgHGdRn#H?00000000000001ZoUK!BPunmM{+?g)tneZ2vW9~8LSfS?V51r;h?b#B zNKu+xh$lCWY=^cR`|mp^Eo{;@zThggbADdV=S$dmzTu&RCr4C25f7eg#)VejD6xM> zN6|f+AG2pMak;s_&@pc!x8w-Z9P>z(D=ltw z3;(E%-v0hOyu$9z&YJ+oaUn=zY^j)$z724g){&2Syj*q-eF#7nvFxs;Cb=*$Dzl4N z6L>8}LWQ9eu|Y~E(PG9gqJYf_nUI8|^NZ}Uw3sKz zG^rED>k>#_31Yj>$=uO z{^#{P=9@wloD5onF^1z7X0Z__!1Zu)dVV#*_2BYyFq%wp{t1K8)QNo=j*j{I1)FKm zveabQTtm!DDJb1|ZV%Hw*d?vXZW7#~*WGo^^)}qu3wy7*-TJ$`{obA{#0n?N65Gsr zz7cxfmM9WgrG%Ct%UR^D-$PAi9OGcdrOa?T_<9nJCzr=p7haOb8Xea#%cz0+3Ez=L zv%#UZ_rn8sw1uSNfS1iqK?~kI@Z4So|3!^--=gLmbOFDCwMSQHXElo1c<&0u3*Vug zR-?l44V?Q?N|pFNqh9vf9V5Pz%Ie*A&8W>9+W-9+kd!OGfd-AC_W*xL|EIS_1vk6* I3nNH~LrG6!LjV8( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strdup.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strdup.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ece4b17adb12527092577fa5b82e5941254ca8ed GIT binary patch literal 653 zcwPaG0&@KT0RRC20000000K<_00i0q0000000061|NsC0|NsB3&6x_z8P~s@Jg>?4 zxzU~&c}J8000000000000001ZoUKytPunmM{hq(#sqg_%me8X8phMHD!bY{JptcNE zLWUc&*axmk&$--t@BHle=;b275uS~tc@mE88fakGMt`T& z{TY%ZkJ$bga@XV*_K%3MgFPmP_&?Yq4jNd}s-5{Y&-$F&ogdQw#U6T>_$5~u=8;2P zZH&6l9S(+v=$@Xw!z=WTkKcqi7p0;CQ%B{3%zcP6*;GE}V!e(meF#AgqKI0mS*|Rs z&fJ4A1YQ>^rP7jwu#jX^qZa(4O1PYmse&-Px}J~5pF=$4D$PB~M%S>pt_z7=tO$lu zQmZXTC5(g47|!HUS;vI6Q@V^;o8ZVSt>^IaqOclbB~&36EF>Iq=c;}jr?n}fb_cQ4 zsg2Vo3!>aDo82^?&Uuoh*g#hfPNTLI!ncN4YN;}x*%dBU^`cNV4|gN6UMXX3V5ulP z7vmJ!?d*hU>rv?2Q1RHx`DArzz0^alm%lW!nVu!9P02!R1~*B~UWcelNv3ITw*Ms2 z8r!)1*YnxUE1^ps2A#naqiF{VVU-PWJDOcy-OO-1m`n!a*&J7&Fc{B0*_YAyoX=me zm;tRTLzcx2)UqlR$tTVIk?ez2WL-shxI#DT`P=n2K0b-Nulc_9d%b@5#2c}}#k#^i zqh2oJAlOqGTa+Og-b}tG)7j+w<~q3y_PC}>`n}BUWm?pd(6QwF(48H{<>1>z+ZxcC n{VtK_!r;i?sdcj5=0VD*=-LllI(#4OQOOr3_?dqIh{RO=lxa`( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strequal.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strequal.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b721093b471fe4a44a3627161c7694336d6d9b62 GIT binary patch literal 1626 zcwPZo2BrA`0RRC20000000tTW01v_d0000000061|NsC0|Ns9Ybbk~VOuGHs7Al01 z+-G3eoo3(w00000000000001ZoUK>;bJI8w{yl%i(qkYgd9}wqXedLblp}LcIwa8P zOlN$GE!P4^_E~b<0R7+ZTglF=K;ee;VO!q)cD4KMuF~87d7lPt)2*Mt{RQ~o>NJjv z?7a-_m!*T?Gx;BAo#A?$ksd8oJ_jwjUF9=1ok~zydCd1gaGRks_KpAbSo194TdY8h zH4n0UUa0fLQuCliJC7dyNgdkl_kVBGGoh7CX>6sQ%Hq6Dk0ZD8G!a)$V zw}P4^%8; zNwPAHC=nNu3K>du;W2ViSju9k13Xg30WMwfkjKStbYBCZRLZxB~L&8#G zZNAs*g=LX;s~z;BEHu5a4na4uv&C*s;mAzPDa$R{j7lTh#FA~AWs!>cilAUIFQ=(8 zNqgxL%;~6?6=YAUT)25Tr>Nyj;n8>$1g%DI+cO@&F+#l65!xu~oQO1~PA*ZDR)t$k3S+YzWJ3;w z(s1hzVfXS1)X*q9lsFs;g^}SbZ#6^E%~F_%g0{^LlY8ZPw>8*Q)ZeMuCZj&ez>)?= z9TNuO$_wg{tbxR;Fm?k+;wfr1K7BK84MKyks0+HYwzmqf0%14OFQL3T9^HVLIV|JLbdfcwjI#-Cey(nnLmQD znNY@1-}2*|N#$FX{AsxbSf?|%JbD3|FluVs5MmKXhp^ z<&_qeU;T5|zwam~LM$7%E1g-_0&yR?a{)umgbfqc;IWr!3`p>fMn~gA^w`Ph-C=bC zf$7pUT6PV4i=}sVD($6|nxS00cyPl#w@IFLy@n_LW&~D?qTa`PsrX%UdC;P7rc%>B zbejzEu&h;zHAV+Nz~J>FTE& z-R0=*%a;Qt1?pX|&d!$y!%4*yP9*yu3d<}hb;!p!5+GPj7{GMuT+65?gDFBDbSwZ# zh60ZwW4ko6bg3{AJq926W*MT)F~ff`&^oni_ks@475L|qTRI;EyN5WHj+ z>}S#ax!%yt`>y{-e0v|w$yZXGg5eQg0U%AH%wOc$TG`HLSYU^$~-3K*|P0RIz zdhnQqxs_3)d2wesO}60$%x#-NwV>-+;)jb_7P5;k;|-P*q4uC@xSEO(9{8`Z{OzXH Y93BLVn{R#kMQw3}uIn-JA2*%HA-Gx>nE(I) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strequal.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strequal.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f98c6d18cef617ac286d42f9e014b93e5f0b0d8a GIT binary patch literal 825 zcwPZH1IGLS0RRC20000000Q{{00v_K0000000061|NsC0|NsB%P;isNk3h`gc~BJU zUL-7cay!-l00000000000001ZoUK%CPunmM{+?fPqI_skXebD6bO@~~Y*a&q(K1vC zDRP}F_DJo_cKRlM{LX397im+!;J!FH-`#Wf+?^|Oq!JuK9QXQHP~8L_}~ZiL?QWY3hBEokY6~9ig|PDD-NOQPk4;&1z*m)Kuv4jv{gC zy^M0B2#B~Kr9>0eA>=eZrcf@jFCkXE79{_-JeznE(29bAgH{hZy#p9BD{TnRo&N3p zQy-pNkB_Zxe*pL2pw%6CXFodKYbw7aFatQt3|ay=AjerMF)1+*J4q7=1^?vKCnB6c zqkih!>r-@c7B$YP;hLwX&BmFhVh%U63=YZe<5m;|6{&cdCkU6m^sD+`1?y|346n+< zVGaCoyd&CHRBLg_H@Z90fUYXw0{I(}GLo}u&2!CsQyZ!gOsLS*vSp>%P*126az7?h zf#qx%>jIixW?u6#D(77+(CFjg+$~Ej74vnY1k3QYF^g1a?FL70DXJ=~t%78h`hW&h zS?OrTyf%F)VDicZGjP;iW$0D?5vLY)usjoNZXM%qek?Xpg_xvR`{H?D-tD)oUpM|H zziYSp+gzrcx#}#Ohl?7NI9sxyf{NxWuyTR1TN^A<66Gb*s&Y}_FYW&VpBvwA DkwJnZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strerror.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strerror.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ee85e04bf9df21c9720cb9f48244cfdcbb8a0a02 GIT binary patch literal 6060 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 MR$~``0XIl=#K=WI761SM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strtok.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strtok.c.i new file mode 100644 index 0000000000000000000000000000000000000000..05fc978171ec41a1e830e71aa35790940355194d GIT binary patch literal 1098 zcwPZY1hxAB0RRC20000000asE00`Is0000000061|NsC0|NsB2_jE-#(CWQyN@@xK z7+Es(nK7{d00000000000001ZoUK)1Z`(Ey{qA3JNsGo#G%HCrY)!IaM%t}L3#Ulj z6#)VWv_wZ-Wl|ui*lyGR-ggugCqvinLzOsUj=cBo-rdpZ?vHzVv`gQ8vhd09v}>Z^ z_STwzWbVK2l4ZBl{=nrbyrbJUo|HCjx7mRHpW7|*&s_W8I|8zhH&z}88Khfd-{?7@$5L(HKF1*w;X|EGHDT3vXQmj@(C!Z%I zJ&9@*Ss3&$8tFDhq9+z3^P8Hj|Z z();=-P4mW9!rCB^U2r(ID-dGJHh=D_e zfz}B%x{x*;4(WFkQP`mJf7WLcZ$U;Q7}_3P(D-7TX2L0#(EIW9)!Dl#y&s*Qk0#Sg zI{TAGlS>ABJ)XQk{T0Y8$yIHo1Gy!&s4FFlj`Q)jI3lok^I@1LH*_#OE)`X$ME`bPulA}QaZ1iLejRAzNv@hHrwWqZBDO7f4|HwrsvbM z*V*~zuBexH8@!(ak(pX zG3b5j5ve)#w{UdO3wOjWEhSwWPm_0V-e73z#-n&#Tpe~WdZw{d382=-DV_ryb6$#q zkT`w;F2XGJ;_a&&h#lA=qzE~PybS}w%N0h@eOvL3<{?mszV$%$&_RR9 zx3_m!?Wld&j^c-;I-MZDMtg~SAx1uGL7~ac)&9?&}RV zaB(Aa-c~kt=v`4}a%}(}ivDlr&u!oqlWKKakz>Y-2KKq@^-b@5rCUD7eqV-MalbWn zD9eU2VORd5z(*V0>9zxMU43JUk(}r7xCh`zK!mhGO73C76|dHq@I{S66|8%A1Msfi QLH@WOr4B9k1y22s0r@p1DF6Tf literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strtok.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strtok.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a1367e32a48fc878ed3cd6b620f43a816050ca55 GIT binary patch literal 689 zcwPaq0#5w^0RRC20000000MCU00ln)0000000061|NsC0|Ns98Z;mAOr*MVa&nqR9 zpxn@(ARy%c00000000000001ZoUKw@Z`v>ve&<&lK_6O_C53L<%BpIJZY$~p70^{k zl_C?L)ZUC8*$xG%KYqsv6ji%)4|No5AN*bX@hup|ARfkVFgRKYG+|hUSCqX3ns%)5}#u);c##Sozv3~@CLfa$8RIJU|OPrsYks)dmq6WuPUDeTd!k>=MkU>rs6HtOh^aL z*Ld=8kzUU=MR$3KrZ;)`4 zxg^^~5DUMoZc}ACCnrm`0aJMJ213(>yU294ZyK z2q)3i-VvtTjG}N13bHMIn4HlrNIeL%e0Gq+3@mwRH3?A|bch?uI)YMjwAJD2`a6kj zuvN-`{XToY9E>J2(CklPIBmj$Iq4#}9nLPtH#4~HPbU4*Y!2fu&>zhM+0}4#LEm4J zm<3!H79ELOkjp|z>Ss?_-V9|X~vDmg;ap)ZSAH20-5=Q#mm zalWU%?0^6KM9|0tv(O$;o2B)|Q+rs~TxcNeJk(o`N-m@ArmdLsM<1VD?V#|CsL?{@ X@R=Jc^?h*DLQP%Sc$$9!B^Y-*`p!K- literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strtoofft.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strtoofft.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8f716cab94d13f829d6ebd6e376230567b1947bc GIT binary patch literal 1711 zcwPao22l9`0RRC20000000wUW01sRM0000000061|NsC0|NsA1XbH*+R;s<~>+*Pu z!3(%5QzPR500000000000001ZoUK<|Z`(E$e)q39>xLyx6xmMEuDKNpQm-?XCPkc~ z>()V_CEDUDlY&Ua&X)f7eTR~4xpmMzOhqk`JlF5snBLz1_jG8FzWPM|e}o5b&+)b} zf63Twr;efrs{VoN1KwX#(xWxYL)4|OvpmqQXNhVpr~Dm7UsLpfZR4LFbAE{U6FXpI z&I^;@7iyL|+P&z~;OOWD9nfLF|2&{qLMxfk*hxK+#VnxH#P9r=isdr2@?}8Mk;uYY z)NQIPSu=GDQAomfredkBOh{Ntq>T$T!9rx{0w$vzRx8IZYqVumi`2|F2!SO_nU;lyB47cc!~p7m zN}b5U6MOF)6*aCNJa?a$Z0-qO4Co162i+xK++ z6P;hZXJNmLu3jPh3d#zS%e;^l$_rBSJX11hbbdEVjtN?vG1I9Fnd>N>L=VI~op$sEmXL{r=N%&<&WXf>l%wtGQV2b`dlkbBfYJR++$= zjb!37hy~uBILknq7-{v61Dps<7=}b+>6z-xT`U%%$)%nZ240wA)-yU&S|R~$uirm< ze)R0=(NV9_XnQL=d}2eA2VeZZQ|ppUO~UkLYcF>9 zx!l~6MWGFEbpVS~F+6fKlP-!=QS9;$#ev^MI?3({qw66Z&dW@2(%m8F8Jaq2Ya~{X z0RW$~a_I^YJ4QA$dggyv&Yj3g^pT>jmKoZFhQ7RXEJ}fr>#IP_3lx@ep+|u0KSIDG z=RcQG6Mz_yIr4Vz>D(1T{kpjo@K9hZ_Rs0OJK<^`=W*YuZ0pNYD0*hJ#ot@Fn!A>J* z)9t~@=fbhbINdk-_jk6~v7Pioe?GRnYGb*^7L=TEyghhM4-eF=`fHmx`1@yccv7z`640;he+=6G zR!uJ+S5!r+rR7CiNd?Or;bI?~s<1p5oK&6z<=pp>VB|IZE;HsM?g}3zi`w(FRj8QS z#17bEvZQi}YXU~AwI$-L+>Wh84*H>IY@q$Z@&=HN;9VM%Ba;w8HZ@T*hN%C5p{)#)lcgQm;Xw=PBBoYBExwf5ivi$^&dYpc2knK!%Xa{E=^s64DmPOGzZ zfP8uEpbi_OS1HF&%afH^lR}D*?L6l!sm~f1nnqM(#|C`U$ZDrgs}XFN^pjeyno7%@ zO8nj$q>V(~F7`9a{QSDSyuNxJy%}AdJmx@~?EE+1Q9;Mk3x`A8Y+esHysMi+XG=rq ztU7@ge$x50nrb)ooMBfh%@}KObK9+k6Nfb5WIhjZVhw6TT7P4u`hEqcJZq z>5J^X;uqE60T`hS178-UzX=yY;|j|B{^Fs_EaOXg9Cn)<*pIk0i#b&B!4I%m)?)U$TQ#h!>-wgExKUUGv;~MS+*iK-apL{(fTv<1|b zR|GGs!vCDBa`4l(1pF4634SiMYmJO)1`qboF1189)mNOrkITd`=>Cr@+=&?Te*s^S FStw=WR!aZ? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/strtoofft.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/strtoofft.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7bd3c80bdf7b4d29abe927312f00ddfdab2f1b91 GIT binary patch literal 1217 zcwPa)1U~x!0RRC20000000e;m01C|j0000000061|NsC0|NsB!+<4G0GrCN4M@<#_ zk^6X>H$o8r00000000000001ZoUK;uG*xsFwH*emo*^y%viZOZ3yW6fe7~T&1{dRlk zU2pARSt{|$j=TTkt}WW9cP}sh^>E>ydwfmx-y*QDTYKI!6+iHL#QnV_F0Eajy$ZeW z@=SZVi&tj3;AhW!FVQ1o<3BEYK6?C!6}YiyQzwg5P9jTt%?cfU`Eo`FRIk;J9lG+B z6fq5~P$Q8}9J&bemER(NKCc>a>5#DG$JH{_Fp`Fh9^09p3c_IF(`BcP6{M3>j!yUmxX)FR} zR%%s6Zb4S0Q^PShy&oG*{*y0be}qK7rO4Xk+;xL2jjLq^Zm0v}21^R6k)5upc>s{9 zzaX7hvYIj@9AZm{raF{kzJnAjCfO*KCUVw@kWPiJPRWQk=2-BP!W7U24N8g}HlqZn zrRAH^%5bV#q^B!GgKCE|3{sjK=hZJ$l)UC7zuBHO-jK8c7}{0P1y63J2$^CT4p$y1WkB$gsv z=KRzN&k0$q*5fhwb)M+3T4#Noy0s(s@MkFQyk0*)JYp^u)S4&s364MRa<_1Fhad zYKozeV-5zkou$16(LgSyS?pr~r8Srr74Yfc$I_xb)WBh-7L;N?&s2PCIMD7&qPt|W z030xJ3=l&x5)5WTA6&v3`L4kkHSyCh#t2mN4(|Z)-k|eWtKTj@WcY@8L%O8n3Vr^( z+UoW(p%-*k$sMj6-&(~NuiIUH2RY5$TcKMrvb7^(@Pl4&dM*3Ul-~@#HBY%nu7J5L zg2VFC$|&h_w>SG722wo_8~7df!^NMFGne3+@krcU|1FI1SnVzl_M5|v-xMDQZw%Bt6DU2Xi6 z!IUE=3Vs#f#^(2gugdyJ!`TrohEL1IhSb46`Z2+Ps%(mHu2~(iM|B2ta!fonoc2Ej zQsUiuqlM4U>qYOrF>Lm4nx40AVqQX*(Rw$X9@XY&wU<}k&sU5af5P~*{qicCzkwv@ fu-pAW!i|x5H(%aMH01-)KM;IPZF&C}5o$S~I|xbw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/telnet.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/telnet.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ab94b28fe02bf805a4b65d631c98ff15ddcca960 GIT binary patch literal 8115 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 N+HZu${{lTm%TRY6pmG2J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/telnet.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/telnet.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8d3304dd98e4a76654a59104490a9ca4a1fab5bb GIT binary patch literal 669 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/tftp.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/tftp.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8c83347843991a6aaf2364d4ba5050276da6d42f GIT binary patch literal 670 zcwPaX0%83C0RRC20000000LeB00l_^0000000061|NsC0|NsAERDECvm^`P~c4z== zIZa+dV2=6#00000000000001ZoUK${Yuhjseb28rG<|4;XE!NhYgWdx^ee2SrAaA) zf>12E)^H>v$!P-p@w;-Jg+aH#s6uk3n|sc=I+om4nHDkwW7CW2ExT&9X{EH>CR$17 z{YDEN>>RBAG8z~&RS4vKDPd(Q)$*02rec?TF;GNQ{M(MG?3Nr=)vrU1HK$6ooRB)V1;O|Ne5r+66L-3`Xm z8E!5x7|#OPkJ0#y9={?n3%M$-bR=$}7GM#bmLxqw34Iar2CN$ zTff)qcaMV&Yn-o2>=WkwM$&3G@0H>G-8DNKO$Ohu&+9izD`Zk5$SFDwEOf|HqcvUc z12UzeTiz@M_Z*$Dh%h&%Kt~uY55K&@@c&2_{`m)dgJ_7z?FILh4Pm01Yqz0000000061|NsC0|Ns9RTH;M{TMh}Wfi*O8 zvfEjT;=Bm}00000000000001ZoUK-CZ`(E${qA3Jkru6;$&#I-*qV05vLtPdB~DR0 zD*_Y{WQn%8NTeWAcD%L!edkhAY$xq9Y*i48;(ed{AcOty_jG8V9(+RgAL7B=NxU!h zA0oD2=MKZqRR2Nh6W$LQ31}noIqcEHBA==2M8d|(D_)1;Lxw)FZ~POmJ z9_wOV%0+6ad)%Ypix)pppAH6t=N_FzN{WmoR;ZaM7aqMz+|Dm)baUey@!BI{Da!mt z)ijlcjGo(7R0_g6ld(`nBorA+go#Tz!-rI4Q$cf?2|B)be>EDv^=OsKIAtYkU6Dz3 zl_iu$OF^ZGgdc)m6clgur0`nGB>P)%}1Hh6fGl}MKc(RETz^K zhd~fmW#%^#1c{DK5VsKcsm*Vrxq>5kv?g6xvYIL*JYr6da-GOIzX1w1i)xlhlX@GE zU`{20F3E^2V_lGw!qlz{nluo3%ti&gmX=>eE5oK%sm^y8fhB91SEYg>U;(B?18R>d zm59DGCZ$etZ8QMFV&}gzpv&cx}(Z|vB-NogUJ|2Dea5SD?(Zw4& z8eg%p-$vsTq+h~VN#dp`g@N&sWL{)aB(2TIqvVjR%*7IA5_?M;`UhNHKL&$m!SFfi z?eO5>aQKXoSkviEL60H!{hpxHc_dYwRf(Xz){k_LcjrKEPVbI>KMmiWPN$>u(~CDJ zM^}!-l#iqFvxANFt2{SrV@2+#uR9%MBP(N+vZaNvtXR*JXx#;%6(&SuiS}*b(NfEV z_LWA}sztB!*T#TDH#|QN&qlv?h$dH)>FGIpLdL$t2CE67&3&}0Q5w0;c_-MX{F-@C zUur2zi;mMV%%VIlr^kfoiQWo(#+y^->pn5I=QKlwZ}ZTIn0|(8e>D+Ml5Ep*G-^#d zmkLF)O+$m04e=e8J7U10A)Q3)9g4nHsFh7IXNKG4wTN1sSG)xI#bB__Ax&Z|So*ab zFB<^5Pnf3;t?0kD%O0>UhlAYsZd8E=L6-5{SZgG~lUEs26B$ud zNbcx4tVc9MowaUkv~J{vP(2p)aLA;(rf3mK1-w>L<+-298O?R+W@jzL)ln%U7Yag| zMkrGmUmGCgK;I=z7`m_QU)Gp9N-MqZI3_=yw*tT4~h>Z1_f7nI?J1 zI5@(cZtpSs{~85%onuE<0>fQBwPdQI&^Yl-A!0d)4c68FQ!5-LF0dVVx}1+5vvkLo zXJ@_pSPkySzJaX?ezSFNGBTOL`A}=%V+LnwDO4RKpXNSmei|QmoD8OgiJ;LPy^98efUI8apXPepdZxLzduv28JS^a%S zQP4?r#W%Ta`y7z@&luGTd;fq{1JgamZ^4DfZ!v4laL}8ax3M;t-~}p4;iIVRS6auF agBv?`$?Ln3+Tl(>cG&pM9{df5%nlJpy~48q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/timeval.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/timeval.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6c32a3bddc3b8a769f935f2f59b417d7a46005bb GIT binary patch literal 1084 zcwPZK1jG9P0RRC20000000aC000{yB0000000061|NsC0|NsAK0UB^Dcuq&TR)D&c zNx8xMAT2)t00000000000001ZoUK-EPuoZk{+?ek2mL@QV-wK5G@$Atpht99KqRz6 zLb4ot9PhE-wRYEe(Q*I%X4W<#&=dVoM`7*tJTtS;%sgaQiTYc`9}cDLZk&dS?d~Xp=+5zkt`4lrYIJTk18<^bWU(`o(b#7VeN!gA;m^; zXiCdIID8_lhGdZlnan6q;-GM@8b(oC8yU7Ih%%kpDD5Z+3s*j!=8h66lQrndfzwc1 z41g^ID0L=sUWpXitm>H*wg@&EQ8<-F+JHqV*%#pi+9q{`NlQ_{W>8Vq!tr9YvK(qz z=yJ=DxMVMRZ4?C}F32d;M0Ef)4Uh50{`6glmRC>m|CVQyZw6XXGO#n6z<9C)v&0G; zz}NBg;_7w^Uq?4Lqs!?XTz!JkUCejmYzR)2 zxS%#Ef&~o1BkrzWql2Sp@H6$>@bGXrIASK&aK5VG9l?Iw74=9se4CGMr{k;3VbePW zCQO^~Z7Jrep>(Ou1Cfu4S~Qh)M!U1Mr!%RleJe8b&1GRpW#yG$Nij2tS%+|@L1_o2 zSizEL>0Xd8s*Iv`{E5(%&u;4+b}YKO3X2`y%UJ_2Mqke3$=$@u9_wIddScf$Vj9EZ zV`uDbxI#~eXZBCFsHj(Ikrub2yo&G&;TOiJO={Dd+tX<$%023yn&hx8FZ|O3sns0Z zBDRu4V$a zxj~=n$gfIm8of}BZ$Dn{u$>;Z(9%x}y$iU0n!9%?EPBqSJaHsD-gcjo z&S@snhcN6K`-W;~lpQvs$HCYL4XPAb;Z$9cX7V_eLXtdSs#Rt~-vXYO?$8X|dqIdB z1n_d}aKp+Z;j`H-7eHg&^j%(4b28;bh1Igr$M4L#O|x-i>sj;s!co-Abj_OjJU*A) ze)l;%1E&NhG~d4lHm7A-r|P&R>7D;cU}1(*FG+DoyLe_RqZc%o&#F7R9z#w_)Xraz z{sTUZAjzDhQKchvKQY=Qxb^y5jo5!_;tRD3*8T0$@y@qQ8$w>$Z?=2gIQ$1L0Kx9^ C#|o1G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/transfer.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/transfer.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7540d72744a8534e75e131ab35aec743c196479b GIT binary patch literal 24785 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 EN-qh}4gdfE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/url.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/url.h.i new file mode 100644 index 0000000000000000000000000000000000000000..53b8f6024fb655c4f5b6fd85bd6dd9e1dc0bf12b GIT binary patch literal 1168 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 U@3J3k%emU#(h!>e4T+G1rTn+PD*ylh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/version.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/version.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d672cc8fae1fb78f3cd8034f0ccd9931f33842cc GIT binary patch literal 1966 zcwPan2T}L{0RRC20000000(XW02W#R0000000061|NsC0|NsAjzF_uVdBf5viC>Yy zGfx<%bcQSd00000000000001ZoUK@UbJ|D}|DR9M#cdq$$zXevTsDqfhe5VgA;O1n zT;60$B}*e~E<#di20yaNcfan@01^VTw-x*V_4K=YdVWK9_vgJDunSvXuKIKFh3`t@ zGEe`@e7T<6b-zRLgHm7ceVdUkEJeP%ZP+gI9a>7n)mGlqXV=|k=nMHq|GFgk#ifr( zK{1l-r`c1^?;;7Uej5&c`|U04!QuY?8v_Pj!dVQCWXUbd?+kb!D9XPh@A0uC*ogs5 zf){tRs!7BJh%}TBUd{kN$J}R$U;%gn0w(;N-{J#LKt>Eg9y92VE^jRR+<=FO`w=O5 zN@pOVbQT8?dG`!*<}-d@=*YZWLK>ntDi64jsBk8Ensm@M1IhBKART1hi$x0Fy~ktk z77ck4A}OGJI`tuZYA~{_|bAygdy(dUB2{MJ5UkP>wTExX!@QDKdx+GW42DdJ}0P$kaoWPAiOe*;JpbOxF|2P~%vx1Qj_fNN`VF}j+- zb#FZG*^?U>ok7pOA!Q#ddw}KVXeGsB^Q)0yu3wNG)a+xLA zv=xb=b!rXlS}w4Z*@^@dQ3S1v-Y3(w`Xl>O8+LXU613s-eyMEW3}&q`dLlodFRr6Nt5^qXfm)w($x3&s4ERf zQaL{aQk=V-dY@LP*`N2i&`|hY?(mj40DvE*ApZ8QRN<@GX<;7Emei{)+fq!A-WqG@J8<~=b(^XY3s!WFP6QriUz7A9+1>}rnPz)lQqoa3q_zBi?Vv`{ z)|%3IDvGK_7ESTjS`eu@9!7Zri=p(R(ZDF^Fo6)y(ek8oc@m}+PGdgk@MMsBvgwB` zPi5+-vH1K4I{qg`l~7nk6If2~bZEMhv&kizZpu(*Sj1%l>a3b`JLAM0+U7)QWpTpf z7WRSFSIhzTx3LZfJ>>(Qu-lxtm=x|3#M>5_H8fRZh>Vu3qwyi(fDz+tp93rxTvwZ><|_Ho*_k_m z6L{5Llbqi8+*I3ljoJ-|T}=tC&gB6Ny}4AMmvEPEU_;&0D=Tg?n;Hew!QZb8FNfIr z-&md&G7D`4tE%c2Bf4U>fHbh)@X8|EW;yris!*|2po|SV)LB_wD}@}9aCw!+%!c{0 zTcfMA&xLU~O)~=IYsXs|qoY~(b{2*#|NNFv`i3FADil|QppKT8EXEwhFG&T$Dtq54 zSNynSpyp9|%T_dC^1hW+RIv0>0d9z;fCQ9wM4E_ylRfr`mv4lFY7TDNi3Pqy1fsw$ zR=47covv>TSEt?U~ ziP*ynuEvZhePQsxk(JAZLX{ZRnXAdAwm#mBoHs%9qXN>e(bleKWN}1&KVCU|26m+r zem>x?_@Oo`g{I3>6WETKpVhZ_uoW*q3s4qlc)5K`+iXs1BShYckXH*s;^mDP)ixqP zao<-%=19R3dPYDp%@E1u@ZjYMHVIxYu@!?fc`0>6a&@m*WME`~01Y5khq4*}LqXZR)+HYjcM6u>MQ9FicQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..1c6d5b86cd7cef5e51bd268d91158a84851a7214 GIT binary patch literal 424 zcwS>*WME_f1I7#n2IkoeP|klS@N9Q6nO)1)sxPgsc(5^hTYUPwVg@8oF=y`Nvw4RM zc#glX?cyrTDCfBKjU`hkV%wwzDp$9iUbL!Y=_2_R8#pr`-JQP0b%Xv&o#jWq-M7D8 zB-V6ac!`aPxpTCjhdz9mq zK2f2{>u?@ht(_dF%dSVaW-i)Qb=G(TQ{~l1=g+;@tquGsKA|A+4}Y1O%n9Z-#|o2I z)%ef0@NVC@uaj-jq@eQMk;g*Q%JNNlzB!kjRB3nmm9Uv#V0*Pv&uQ;d*YZr3`p#hu<0b$kro2`F literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/_c_o_p_y_i_n_g.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/_c_o_p_y_i_n_g.i new file mode 100644 index 0000000000000000000000000000000000000000..16564eaefc6f7bd9d3aa70161b759966251e5177 GIT binary patch literal 724 zcwPb20xSIh0RRC20000000NW%00eXZ0000000061|NsC0|Ns9Gb+LG`Gc)DMfDit% zmKk>`?^x3S00000000000001ZoPAPFZ`&XkzVjiwA0NMF@%@;=mxqT3P<>-Sob(8_ zom{K&vk&LSX~^{$w1YBq1pfatV+Z-rxL=T4d(w`Om3Bwty|E)0550DJ_W}pkAY+%o z-f0bX4{hJLgU%pWq<8^DdIZ>AXv}EF18JZ|^KmltNaJ6fMZLy*+nNUXptJ3CM6*qZ zdV4cy54WM$LcmoF+ud1!O?bRAHO=qI!(L5_&y_@iPXC(;HHn8tsWx^b9}N6ydH+gV9pKK4ud^oG?W}W6BGGwgeW{} zcJ{YUSuTH=(FU}7u@Eod^nR5gE%&4)NH%KLy9Z?OB5bxH5vnD?l^ zU{H&>+EB@W*RYb}nHQ{p8(QP~CW8%E3$a#!6OvYH3t|qm+QN5U6&YbaR+7~<2nl?- zDmg1M;8k9(3tm0J3~`lEQ1T^LNU8)x!7CMKh?|oollcOdbjC}rwi(R1sv_qcNhz$T zR6JjoRKjX4SE6PpUm$J8tGPrKwq%vMC%nQvV9&UKdO^!FNzpaBm&so)R$IxR777-k zEEsOi7&@b~l3k>#Ey+vDml+gvNuO9k31pFJ?CNf_U}+2WDE@NAMHM^AMWrMzGopl4 zZ_o{|Sq4<{Iuu>e_U@%%v_!5tfx^%+h>A5cVhsIoN-<;@G|9bF%e)c|MoN z>Z5ac_PG|a&#yxE`Ax_^Z-ngg zR>(fT3j>bGrqux>{S-3NR>(*@AtPBKBNakM+6x)!AY`Oc$Vk709FgBbj>w&mBXTd~ zh*Uz3$Wh12$`+O3z&u1a~{3m=fBAr$} z=IjcY(-ktOCuGi^kU9H8<{Su_b0}oak&rokq0dOGKwGfG{COIL+HY>haO>TK+A=N^ zFV~6QYL}sdxfY1adk1Nv&EWFt^LVj-`GM1zMp>L_54#-6FqtJCqk^J$?B%}wZvX%Q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/asciitab.h.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/asciitab.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1d931f38b8dec9eaad0cdee46369ac08bcf5baaa GIT binary patch literal 459 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

  1. zhfjxbv*c zqAWq)B-xBtiuHLLlD02-+}?^>m+EC#T}v8fCqx;MY1R| zumOZJZ8*?CO{lT4FSr{^*g^sa-IDL%K+~E4LoVr3E>D9h-Q;pbK4KjXMxs*i4RYID zIL&1XHn|1Oj)qIj&}{GqA*J$E7lNXf4ycEoSsJ>gw4KS#^|h zr7;rwfpLm)C?>pF!cABd5)sI=>h{hILbRl4;9kr+nRc>k-##;_PW3c;%4O4b*(Mv}FtKOk)!dk}Oz0cBm8FGUhB@-Tl; zqaY*;qlvX^Vd7pC5e*P^g*H-?ob|dK;%ve~d3g&I8g%}cjSbha7f%v}KxoAPDmaN@ zQR5@a59GlQ&^D-Y3MnaqWgDptld4db3&{uJytEioNCab5t6U`U*05BTZjsaZ*q zBWlXJ>ZQ~4q|5r4mLS`F6fE$qEQvXmfJ1{dI_7g_RKi#(KakSr&#P;GjOAwlgmY9g zr|H5H?l9Y7w%*1}ouhO~)DRm?xQrTr(`1D}k1}w8lPQMmqz#XCn184?f`LO%cod2cFKgNjjLYDVPDT>|&?cl#A?gKilHwor6gj!p%rWEl4 z9gQR|HLSo733hHzXFSSt^v=^Xsjov@1Wg%e*5W?9q_mG8D_BTq%b6t*%(K}U@-&)H z0qjZRGj?=A#nJST zLA`+EiB1nPT-Xs*kYsW>)ALl^V)iHL;1UDeQw1{VC{` z$Xl3ZnQ?LyNpj5X5eA#!eb^L8E3-F8HoYP|YEW6wM%<*CC8uE@{mLbr3AVZv^On@3 zjH2YSW%UtAl_tQqxZc!G07X=;7$cboMAL~`%UcQ`BvB-^E6ONixCFuAl&h4rT`T8y zrv0exXUY0CJwF7!m)b*J(;{9^MuCX5*XS;jK6%(hSnNJ(iO)uu*0D^=!^T$&iKXpY6v8mdPr zJ>5ozABx^0j6U3BL>l6yEg8_Wj1fZ6_pbqsQoRR#d< z9_&_%uwpg@4IRK-k@{_j8^_G-HY9ykk2Tc22CK?EIB;v!|IAb>*>;>(>a?hC)Kr>! z<(aF?Dq z%~TnZc8S^AN97_@li~@Kt}RsEnD%yc4O7wH+on`na`9k+zvH^9PwNDe?mGF@uO~WK zfw_&}92~gqt337_Z}kx;8ms?9jm9&0E)f}Dxj{FD!VpAA7SHJV`to`XJ`&ch!-js2Ww|oXF@5Lq7@C_#yG;$6 z`-diLWJ#@uqs$5}7*h_<1FLD%XX!YmIMc8yGb|p*5gv2^g}SIvCJ7|!YkEhX+j=dR zG3*UkB$|sPEOio(38K(po4`#NF{1Q#lPVEk`?v4%&qt zEZ0@s1v6_n)o|k%u0Mx6qA3?pAxsqV$Xd3>UaAwege5w72nIK@;Y3Gi~N$cp1mwNg+pJWtEwe9^SGKl2bQR zDDW{0P*qq2WkEN9mDwY5aB3kJ=z_+o5Tb&X3BgplDp0x#Y~Hvv0apHVlCEM4JxKmy6h!_cdQ2W*42doC<-eo*bG9k0wtBOp40TXQ^{N%2=pT_ zpoqq*NR!GwwPB#j*c!?;b+qf~m)YogGJua12Ah8miuN22IkBE~;`>#a#2>W1X-pD6 z9F-Skht}!S2BLLum)`al^jfZr?%u0N@$p?%amVw3?Cguq2}JMqrqfJ1Ri6p!^lV{asdQ#-dj+n+34>N`pgQ$JjR--1yCwpkQ-IRP@TwMD+TBwui`{)Gd%F2w5(UcG%`LAP-eHG;ut( zhx@JE;u&1Za1L+5fIJC;5gsGub6X&q&f;C(l z348*ySOf4^Ct?JcJcz+`I37ERWdebQDwxzVr2R4!_cBS2d0oBacR%3G3py$9+2-y+ z5&zqN{O!N~``6$8CkXWBUSlsKm$-h~e+iXb>pqx@D==b1PwBk@qo(ZS#Z#UUO!4)J zm}Jf?WIbhSiFKAs#`=$ncRFPGpQ3Tr#if;!AVu4Vc~NuJPy zR!)m5PRipr4HQ3+yzrr0q&1HO6aFKSN>9lrnUAU^99qMCWFRVy3J5?M6Fq&q#3{Z; zy@n$E`cHrUyDhXvF*;Rm508|TXg_o5)Z;|F+q*T_O5ohqrsi7j$ycSNC6ub=t_9mFavf=50OVe&asGy~naO2(H)X`=&6gO1nf1pm@8~dcv>^i);d~4PECxVwzZj9rq!nN>Lj?-DP&{uYnz@h!hubY z#1y5XnyBKE3YFX~!PoS@LC%KRf zJwiI|a`5m;hbda>Lpcz-ty7~q6C0P`4-_joRz?e<5Mn(vmI(DMU_0uC>rJ~OB zG>?vWWbrEw_hV+iZ!Pz~odj+|K$GD)R8U@oM~R?b61op1Ms$qnDf+IPD&0dj>f!c3 zPTNs4`M7*{*5vIb-Ot5+w+TEZ+MfZ7r_-UcxZ+8>)Yfv1o!F@*EB}NYqXo)tqqih8 zpCU({3EmyHEWMbm-FIT^&oPT#r}7wceLzA{t=u;N84bDzn)fLl!swL3{ueOVg zSIy#1a-DMu*;#)R1Cu(WR@QdrU~3SymVLpU&E9bU2C58~fpT?~x0fyc0fq-{XM59Y zkl%WK0Xukr(<2(L%{_dY@zf4WPx&zjoersMcBovl3Uy%UlOlPVs+^tY`W96c(|1c` z`hi=PV|@hgfDT1JPpI~gvTgdHbI$kwAa;Q|=A)B-+m5SrFQ&35h7~|g%O=e&r!KQO zI@;;u|k|N+`+OBi84V z@{n5y3esUnf}=p8D04glQ*v09gP(M`mkZd{=~|HFp4@!`!yZv z{&$1{zv)o-oRHFwcyi`CGfO%qTj`f+#s1ZOW?CHoK^S^H*I}9ho`>zj_YiH08e?uf zEA0VdgyE9CdBWEd$ZNu2GMzC=TO^T!J3K8{G+2ejweXzKDOFE9>G)W&UDe#EzHLaf z7Ry|#!X7%B5ElCCA-~c=L)BFXgoC;D654#{jI1O<93H8N)lpAB>v_>n41vRFYJzkY z?t#y*IB`Tpfm3M#ttRbGp;^N*d?LP7ki&=+42CN?`%+t~ZB7`p;i(Ub*4@fi zcvJ0LQhg2USaYb}mfGlw8dM0R@;F=W6sXWs|2z?}XrsT^0nfy&N}Zr~DzLuh#qdwA z)UJ1M>Vks0HL%S#>37-X0c!cJe#1#i$-2f)7oBLa)Q6)m_MNTN)dhWfZpt2o+RD;c zsXxjmXuW4#+ukA zsoiy)bZuO`i_yWr+xbod*!*;Elf;?NhN?|N9I8Y0B;>uu#&70FV|0tRN>%pt!Q#F; zLq>?Sxf-sF(|*}y(x_9)-AFy!y@3l}d803lNu4cUIa;4poSi&4>d6*-v|oxPY_Fi%OGRDv zywv!($Z=7sD-UdW%nJ192bmVWF^{(MN=lHr!@sS1r|1b_D-A_eBC_uhxD}r25KmiL3bB&2>k(VXS`?tFJW7%MRTrhBK3!N z6;Lrasy(0@8Z_h}qBNpOlyy7zE+TH+fF7k@~ z%*kS3xp`Iwyfj&IT~n*>plXO^LpRwLy+`VLpAa;9YU$@TYQ}g+In#Q^WeR?U>)!H&9kI1<<+n}wIdyL z*qtv*F=qg@N<5pL1?nyWI@7ToO6}BBY7;wj^@e+7Vh;q=>6Bj3o+2}))w1N@D|dnDv}3#v0WDwTU#D50I#ZC z!CY3krj>h2tR?=abBAB6m=-GzSI<9kOrvkN<1cF)v(UZ@w||EhWAnK)jqW;JN`-7- z3=^Qi!1&nR1J^4L(aPkIkgJRIbr{{`Jk)Egk$M?;c2cjeu13I`XmvTlI{YB{LL!=u zDp1T4eXU!-#|CP1uOqB4sh9Vljs1J!h!3c&N#BrXJHr~qI@pOS)h&9f&o0m+c^FI6 zfkKTSISa|pP&*Y&?Li=KI05|7JG$ZhkSIUJPc#@BKGtH&^H5;b1nJ z4`#FL@!OkOZ9ad!nfx#xyqk@n?d4D-+!)yID%YcTb(GIW@5U3rnOpd8uSdfh*oJ-@ zb@m?s?S`#=-ww`bvdunk$CJVJ`)-hWu8kurjix}htMkDSuqRd-*XQP!+11x^czF#I zoOQf6i#fy#2If;}IlindYS)>XIxEduc6&X_=$9)14ddX~_KciwQnBu0Gh)fkqltCv z0};wgBVib3OKYcfR8HEmLsyP{p)$Uof!gUT&**5h4tDBTe8=DsCry;&hH-dvOyNO0 z!8%K%=hjIMt>sRGxPCrLL)IrW%xC33*aU_ykqr!OC~e_+^o$x+2wD8do;IGjTf3_E zIdutKKw$))u>1&P;@cYszuT^SrPLYQo656N9x-L!+XRD9d+*jd}OF*9C7HchMEqp z3HTV+V+0_M(^%=VL})n;P@39ba)^x)kMSG z!qb}WkH*DA9WGPF{Kiu?TVi|87+00>4#FPrea3@`i2B9>2WLP{8H8i@{&P#QJFjChX-zyz<|TC(gUC{#1K8 iyuLIqU$=hC;BWRT2Qe%8^9c)Tg2S} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/expat_config.h.in.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/expat_config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..1d15e15179221770de0e6c0d5aafb121a210219a GIT binary patch literal 404 zcwS>*WME_f1I7>r2Ilz;P|klSIJ@Gf^U)6_dApWYX6~GF_qX^2DJBLaP%)=jFE%}H>vLQG`^CSO z7EctL-P1U2+LX6pCudFToFRTDCd1>oWs1)8rc~Kqauf8-6877By0a?&)o>8LywP5v z#KA`DROgnAzw+B-QcmaQ>dl+5Pq3)7Nk4MunmVaJORm1|>aJY8)inL#3_km$`F_jh z*|SQYE{g~>wp^0>>1b4r$gj=Q9evslZuZ}^Ky!+G)sBe_JKpxbz4j~KDeU^p6BT{u z9X{J0DbwHp#ko?%2llGHRXF%heOAxmQoLR=pIgG;Otw`0nL7*KPBDotK_q rF3u{opQvB$>%VK6ZT%B&&1`kwd!D5A7w(_m#Mc1;;A*x# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/expat_dll_config.h.in.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/expat_dll_config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..1afbb0507760eb94ef485cfecb2ab8be6a9ffe63 GIT binary patch literal 137 zcwS>*WME`~08b!}g0dO^L&0@@YbN249qE&UE}oHG?&Y+UKjmL^Sn802@(_l#fbDeK?IcDu1yv>jn@w`i-d SVonYI9AtEP2gACTa&-V{hBZ_G literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/iasciitab.h.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/iasciitab.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e2cc525968411ebea0ac85ab44bbc85e97230562 GIT binary patch literal 508 zcwS>*WME_f1I9fJ4D8AbP|klSco=x}?OoR5DHgjl<)i!`OROuN-otd zUfZ88c>Atg)4Y;({-*O6r2F09R>?ZgSuS+LPvpS%{8Y6o+t%H?9K;~xs_Lb1_0&Tr zhpF5Vr^BbFKin*TCSk9xVsL8e#>TlC^(X(v<#qR6er4sioz>-^$b@&snybIKtLHac zq$Gu}w8~_Cm&jGQEBuew0hPLk0n1)BZL-sS#nR<)H8Ax~^XpX`&avu51YO!EX%=yx zPkL_hpBtcn-Yfr<^pVU8p zT512ebnEND<}dQ@ZvPzxlyxqgKXk>s<)h;k4t=5i4Dro7Ug|zuR(Ibv`<0CT`EPDH z_v$^1a)h52mT1-fno#mB?MA{0uHUb2CDvNM$;)riS7UQZ-`n@usn=N~Nm u$n)ly@doMh7xHYJcYox0|83dtTLH&zmCN|fl0SNX-+yV#dIr(vXCeULIq(|* literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/latin1tab.h.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/latin1tab.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2d954e4f874a26e163e317c22506fbc20311cf34 GIT binary patch literal 318 zcwS>*WME`~fPV}O>_SjB<9{gFwLaDCaLC36ey4T2->dC&ShqmuKLZk|m^1gHWA-5f zkpmyA?T%WXQ(Dc;e|Dp9u=)zo*{A)ScZEw|*mk7n<@R`WE~kZW_Ie93{htso#OAd1 z?$w*lZyzq5b71zAi(m4mB)r<&y5}%k*SFhKZ}?CBf76r{AroQ|(xfA;dk z#izEjKX2-ot{FD%Q_jo%x##(3e#+47Ush>y_P5#D&6)FbAKx^(wmsD*%5B+Sri4q6 G9smHE{+Kxc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/nametab.h.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/nametab.h.i new file mode 100644 index 0000000000000000000000000000000000000000..554dc2a89134cec4f63a1d26a4cb1d3f79bec629 GIT binary patch literal 983 zcwPb511S6e0RRC20000000Wl*02_(`0000000061|NsC0|Ns9Av>~j%gh0T#-)mAk zk{|c&${FPV00000000000001Zob6amZ`&{oz2{ft2kf8^+j21MVC&<&`>;dM6~}lUrqAy zZ)L{8pntWHzhw+FkDsUqKI9{$HfQ+s z{7of|?)kJ%D_+mkn=$=)t-HWSUcwiP@NU-sB+vQ&*42#3Ye2dY-a01AO$G7v_)0ga z-uz`=dVg_OvX`8w=LP)#1wXvM>Ab0bdZ;puHBgh}yS0$K3^j&#M^~b01D@v5l{M3w zjDy0v&p4}JHec8RJd+78vE`32O%sLzo>vn86a$yH^XWSpcSZ+0{N-*sUxhA~#9#eg zzUuT|X1&^u;=}mxyrbS8)9Z%)Ex70I?EQLm{lMaZZ|k2eKd+Bl#r{U0)V+O9pIlKt z;7nNlj#R;CCP>JCnob6@Fvp_HIrR@U|J-+*AE5abNwLwCx{QXT2uWH`Q-XR`hXEW ze8|UT`auW(6i@X7^hurR2hZPslJGUv4;JxMKU5xXM*bsS5Anq!yd(aB&j>%;)28oN z-v?+7@J)Ol5_WlhRn`3bQvLk;{eE?v{H^@(b^E+N?2o7C)5q=8<1zhS78q?<;nuJc zR_qK|pRr<*KiC^s8(5*AFsLX7x`<&0fj`G+L|rtqt`=Z|H{i@=!t>&q{wbbAG`c={ zeg8MX^SG{vy=1-P|06tCSFN8nf8LwNvwk!8_to$-^J2Sy%%=s%z7NxaL-*&<{W<;) zgznGnkPZG9K!7bE)&e@X06zkHwf1eijX>o;V@dvpx FPN>eK1U3Kw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/utf8tab.h.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/utf8tab.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3c9d7ea15809f5627aa94d27836b43676eeb4edb GIT binary patch literal 328 zcwS>*WME_f14a%82DS$bP|klSuwm;ud3x3<+f`AEFQ2^E`;v!k_9X@+P%&rfd4KQ2 z1~SJ!R>vKE|H5lyaJ5HY=BASi>Qi1j`Wt2KVoQtO)bZ=x+6xC$Br5b?I=?Xg;Hk8% z?c?p6&d*;ii@Y#bz~-MV>(#sWf=p-4D?8ktedbH%-{G*`Al6P^3>*Hxx zmp)a53s3&KRJHeTw%?`IOV*rvuJk|s+|`-Ff4*A0|1nr BpmzWO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/xmlparse.c.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/xmlparse.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5e109cf1432efcda72cfb09e881d647328134693 GIT binary patch literal 24665 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/xmlrole.c.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/xmlrole.c.i new file mode 100644 index 0000000000000000000000000000000000000000..baf5fe2c10a36ae5429efdba3f118dc344c5cda2 GIT binary patch literal 3312 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/xmlrole.h.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/xmlrole.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bbecaa53e6ccc6a217442cf793d06f2a61139484 GIT binary patch literal 848 zcwPZe1F!r50RRC20000000R&J014m#0000000061|NsC0|NsB)!b%!)w_XAnBV=LL ztQSYZtGlfL00000000000001ZoQ+mpZ<{a_edkwPwJ%B3kM(U;v`G})%o^AX%#=uz zPy|kbN=!tYuGQ54J{!{J1Cz8;N^;Nf_2FFby|)9)DOaymK3_=arG2=&zyErr|K9^! zOmmG~dn^bf_PAh#9jI%4~)y zY3um}VwSX9NY63MvTepf{17ukad%Kt1J`EuDMDxFEgGW7vxMjrqp|TU1EZ5!h|lOx zL_R_3N`px38=jp#E8jggk~|!-1bN6;YTK@3_55Ju?qzEy3DK_@hi6DGdbDGYo#Z^? z@tG{0IvuLsTLsu;VvHj{U}hv}KS`sI#z8`Zqp~z%!^^*mD=&ghj0UU|3%ocofj=mA zOuI$Ob3`1o30s#=VJ)G@__5eyyb-)@5cLVp+Nd zdnVeTzG#U@e|oLzjs_$x#acqTm{u@Y$?6P4-B%|=)s?!s$tzacA1c~Ltn<0x85I1P z7sIygAB1fe_ZnWKH!IW4Qq2=c$Xvb-&8EIVpd6(m-ESFEE_zvoVSn3W+zLOvOPE{jsF3|?cqpXzLli_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok.c.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3a70730f60bcd5b2776a00a25b2d40dd607f5b40 GIT binary patch literal 8087 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok.h.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7063872d2fdb6f3209a60dfc4bd55477395efbcf GIT binary patch literal 2765 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 E07uruzW@LL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok__ns.c.i b/CMakeLua/.hg/store/data/_utilities/cmexpat/xmltok__ns.c.i new file mode 100644 index 0000000000000000000000000000000000000000..689c7b0516cd5dc3b772b5400cfa2c3f9c1f6c2a GIT binary patch literal 848 zcwPZe1F!r50RRC20000000R&J01Hn50000000061|NsC0|NsB*Xk!38jn6aHif0_^ zJf%V53~hS=00000000000001ZoYhs^ZrVT)edjB-iiB*JT;L&!ijpb;7ojA!6^ud^ zMV4bP$*RtpdY33sm4EMyvGE0COy9~2tKGSrnKN_jgaIu!=uK4a00D6^Tr%G z6Z_KEJ0ymMP)IIKKSy(^-a!aM!sY)|@W3=|-LQ98oRkW>Fosl_7L+0{(z3EEtllcu z%iUMHDgXmBScqr3jymQ(eOF==TwhQJg`px$jcdcaH!z(VH!CUr1g$2z?WADfFw|!X zfMIcj#o+~8p*|AOBu*poP^KG~a&va;ybHZ6xu>I0@?S1|S5hk!OtKL52_L3~%fw^V zG_Y75@K#&jwUsQUnp3!Lzg~mpjQbgN|1_ns?)wxX(Y32{dpQHyKSTXRyQk&+A^-N+ zPhYeJpoiyvN<1E5rto71EqkMpRALzIY!cf*V;_c#>KQ z8PVS!QvgAST;DrW`-js#RY|*zZ9cqsW&G+xQen|(fN=3EREQa?J*l2o2)f6(Cg8H literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/cmtar/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..c9230d9c9ec0e4340cebc27dd3f399eb6aeaeca8 GIT binary patch literal 2963 zcwPaM3vBcN0RRC20000001D3l04E**0000000061|NsC0|NsBgf%#)L(AYg4=qbY8 zZAG&9lHbAr00000000000001ZoXuKGbK5u)zUx<@WFO?MM2Rz7dzs796eMvhkqSvA zc6N4IG)YNJC{jaGaWpCa_ia20KJ@U;We>4{Mx*=dMx)UHqtCT_?9C0+m@ns^jXy38 z8;=H`ul;e!7q4*|#(oOUnQOXj4d$9T0aHI|wxQiYgSZhDWsbi4IojpXD*i!N!L&X|R0#f4v)`fA>+}J3g6+ zKQ>0T2MdbppQKB88O)c{lOSl$TTEkyIuXSyw2AyM%IN~4h`JMz{p5!sic7Ms$U-MT zA980x=;`;K$Rc9{r0bTcYc3*f0=!H408Aj`;LiS031kY4Pqk0jqb_K3Iz-SEYa?t6 zy7Tg@lnrrwO85&A%C^;6Hnso_Rj92Taph!=+_Yz;%XK=+C}Wp#jF+bFLW+iLZ8)w2 zKZuY{dK<;adv}Il_c!ymQ{6oX7c{HB*cN!YP|zxH73Z`G`R^HbqE# zB^499WOo?YWFuQk9d{oWkh_g9nAlcADnntk+WSfA6*Q+^9XFM56GQ>os2=IjIb^2; zm8N6VP@+yFeQWGp|LmCm!e&FHQeSoRP!_fa`X|`>=4yCY^&oh+ zC(9Q&nxL++Y=fnQ`tfyVn40}ak1txzP+jzRD#|e6Ij`t-rWfEy;-}%}S7`Y8nl^GM zD4?-QGQS*d`jGWUy2rxDsmsqGUFJdo+80nlJsoHc-R0Rj_qV;VWn)dB4oJp@Angal z1t65PSLxO-gAMP+X-UQk(am@R;H{&Scec?s%MZL$9Ex|_Z(;OZ^ve*0R2^!V9LZ#x z*{5_0MIaPW{#NO$m`J}UeW7BX!a))8&N|72wlL143I~~UC|IGuXx+Js2Po|TO4;TsLEA~N$(~c%EYcmgr(Cg4nJ2;SAlh3f zGex_IcA^>XWph==T>ST%AmS<7*!o|yoVDUqw4nNe6{YPXSq*-ulfbH`lYm6ed#F^M zLz2+?nb|YAL2*I6lSgmR)4qhN?%6*SD38j04*u(#S&8E9E{V3Vc2U?T#caQ;AnnVF zwBRa4`9in)OrKhxP4r&Wv=__hwelPI!7E|=vE(+wpFB7yMM|ktDFDPqD2W!;GE1Ff zelLksCkgE$UZ)UJNtUkVwV*>*8#P^31@~P0&9Xa?OS%e&6FbqLoKRW7^(!_&^9=m1jPuZ{}LmFz_t--5~tr3Bg~m$-gg)w=_)2p>@?!! zgvto6UooQCWO=t4Qe@kVJ(&KFzbkeu4bufe+mLEN1tzGSrkt5l86!}@fdpIP_`awF zwk=u5p<>3w7O_B(xx!6#($lpQE|<`;10cVv8^D5Nsw4h6xfaco)*b!F z*_GI*nvX*kLfV+K)k=YEjmI5`IaNhKNu79)GFND+P8JlMXt{_MR$2vCU}@3UMk~lF z0!Hh^dxE_}%rsZKvJqsD(S>~jZ&GYEytvEf8 z?oxg~R;DBTajDIkiz2QDg>W5TZBgT2AON^b%SA$hW{w(IF4Qbcsg(aOVmsFR_=4|i zS!>yuwU+Hfv^<)%jxwv+_GH%L66gaTmvE;!n7;df5QVH$L#7R?ERj^2VRy_Qo3v7E z@N%lxq=U;@z$tc8jMPjqf+tQf@@z>l~PP7ROL8VsE)a?0rR*? zc1J*MNd_{2>mb{s<)Td-yT%;1$%Z*;`-joH$TNNM*suktey#@zmq44 z($9Zyjk74OIMD6z!|?XD&FE_OIa%Vn7O*H%7<~0XM#f{1r4R(taCVWCT~-Fl?y*bK z)ydn(m0F)kS)$CB1XdEsE>ZQMf4pi6`ln^i9+5Gh>lb@7T|9L-z9oyA&XaYEQT3 z3(Lf&JIMAWd1E3k%^UWpg$M^N(k?Je%%Ww`spY%=$u+&SZBgEbHvAQ>ZXLv5l&5|I zmeCJ;G(G=6m<7OIX&It#U^Ll=9m1GM(aUl&VrGUK<*v=-!n| zp3JN}R@j`?M?V+^oSAAPlWC3G(8Yv8LUE#Uze9hL?^?o6eNOV>7jiFyf3`-x5YlhT z*m0nY9E>$rn|au_AtL(=pM01i--o_NL5a5H)=)%cr;uS^wYghOdyo~Se+2-Oa8$cc z(Dh-Id})!43IqKQRhJyh^@HP*(*^`T5F2B1m+00000000000001ZoV8TVj@vd6zUwLGwn?FE)ArKjCQJ01s4N+hoXy^r zmPQs^i8M&chTpzJ+UxEj$svat1`Lg6zCR9~>ciQ{{ovqT`yPJ#^y$wJzkmGr2f$Xz zBN{8+8FUYP9Hr9I!a@tv`ATDE>kw^}{s>_$%s-IbL#5piCF2O8%Ys3R=7`;W6lHkC zQ6I2_-T5=5Vmizgxazf;gp*o9gYBU7sP_^r2-N}W<~F<%Bh&;VTeNWmZ$3YeE*xyl zPAKsq9f(QDy^5j@nn_ygxu|78gS#{AjZhA|7yU#?tP%?kPM!r z8we5MVbY!K{VxVqViMZ^wtT*)Xzo{ zC3eBErq}}G-`F~j;@f*Yj`~E_h*EXZJF=gn=ohH)rqkEF6su>`A~kjh6D=o& zu3}7CydowP8j!TLl*UD*CdZRF!w&r#howQ)QI)Q!@$M$=5H5MsTt~L)Uxt8s6PAy7 zzqv>DfUWFhOJkBiPDVP13J$k_1&XCvF{sOB^O#f&cnzDX{K7Mq!Si!cQ{nC|hDYA4 z%54MGQzb?71mzNv;tBrZMHWZw>!xCL4P^ykp7Z7@h9z$bkGUk!1U5<4@N}Ce6>PTErmPv!X9QdDVp$Oj zTeG6Mk9a{fU|;9~>Q$2GfhsMFrsAZdtb)k2+&oqMVb#E@%ri#C1tWRMB4?g2^3Kvc z;p-T(WSu;)FjW#%722*6A6G1th%}*Z+VHaQ!2~*bj3Xj!ZljO9W-%lcuYD@Zsw8-y pDNU3Cgysr%LGgLR>w}4?#XoP!`Atj4lAN&WZ`h{ErBf_ zx#JQ_C8UuxM3z+2n8cUxzi;)*R?4i0{Xo0LDYqU2%@Sp?%G;c3Q8ILiDYq?zktRtm<-wE{l)#TPi~!DS|5x#=)T zKyE6bU?nRaS=hq`x#s6NOT%6OT}b%7@CyjCkb%hb3Pe0%r5ppT`b7|6+(e(HCRV-)Z6N!r@oZ?%5nX^_lN`*+F|o{D|^&k7XWi--1xQiMFCxy2MKinK8m z1*u5XR0JW5c*;V@`}g?#=Ql2FZ^Nr<&O5$+kMo}Awtj+!8v8+pN(w25B_*?Wl=E^w z_X~fjR@0D2OJ>;TYX`+VXQehQLRH}E`sCO<9UY#GF0X30h!90d0rn(1Xky)Kq?{gp z9C7MV%6)J2$YPxNcj5h7ALev@=g6C^!|5xqD}{VDr&eR%18IQ-A=hu5cP zqw~9U*Wgj}Ew5?q??O~C22(c8iaGdYnFZVzEQGHd3E(f30tDn^#>1AGp>vM4EW+HC zirQwYO<~?0lJy;VnM>N61spsnJrq5W43eQlP!ThmqND+$Un-zBd$iL*+wt~}a>#DM z{DfR$#-;zrXsmS8z91mPK;f?Y@>MlJ2U{-@yP5N`B`6A;sBoXX#$T{Zo72h6>e~=*wThX?pP>p@6y5k-V7;TiupP#oVGgc zwp|MwfNl`8B8Bd2(ghgm90_vcOhLv2D6jyo~cj76ee>U}`Jwm#nZz)df))$jA|Dx_B zqN%!8f|lt1HGnm7ax3kEn4vE*l3eUiK0;z*xk+E_UMYuk#KeIGB=B(pux+RWHWh9p zBkFC?^Ko7Q*G{byCcdyag@u3^=lJ22y;4x#axI=puIhu>umo{5O9M~1l-}gnfKyr# zBHrz+?lyD^ec@LsY0R$zv(8X^dwbxAp$rsCkk+GQY>2>-Sqia4UoN_W5|6F+)PF!e zEKGta`q7%G6J%NQz)uj+&g%-R)uO^Eoso5kiZ3P#Ew{E5Efm_J zR32!kg;Ts1QU*Y2(be|V*t{HC^q7vT2wggh>2B4@r_GpoVUb#cuh7(P8)InepTQWp zq=7M&VFfqQ(nWOx&eno!4eeNp9lt^xJ}@M4RcW)!9u_|AFx0%po>giDN2671)j*j^ zf<5Z4qQsw|9cSmiUElsb(!fzkhpwfhQ~5(ZP|}8P$TnujZ~*lV)$FEw>nr#O*GFYb#i^Ux`FybR7f5X!s43kY zHZZ@A(z*e(0bFNl)geAreXES1R7|}|I6nFpk;7b&<@CxgVO!e$addffaW!&{ba~QC zvUK7lCB}C}BfqJA_*!tQ!>Kh2s1~hO4b(!X*pmx*o0W0bIvY)hsBUhBs_UoW#=i3< z`rrGAeChz9(#q~?l^F|W6l^j}@Cii6JK8+z5rZrhnEh}|313-~G^leqdQZk8Lo5|g zmefL6$;;|;ETdZ0=%9Lus=G%Q|H6QWJn%(Utay78i`3IoKP~mMj(6apdY{Xd`qQ;{ zbarw4+tv8LqdR$}X{zP2Y^SX)>V1rNIuG*k0T1vF-r(2X-lBjK*GL&D!NeTPvmCoN zUD0e?xb@7jb}T55<%#}ogyKiz^N)vT{ne@9$vi`ryoae%v84)}`CHq%SGW94Y z?pklE*EOAwND zk%6B(WiyN-VD_6ZYiO;_c$yx%4?BYBc$@HUPMc9%4KokvaaL`0|2`&mO54xym zZ4K0xk*jQacougLP27F2enmPzl>(DnfwlZ5W#4iZ(BGw`X;~z70qPRpV)lY}L;57^ zNIje?8?Olm1-cJ4Z9B~dU_JO1-q+ATXWq4B+}Oaks;X+Y$K-5BA=h2$bZ3^9e1d=_ q^t-&~_)QhOdd({;@jJJfeXwNP;{JcLf+Q=MR@_~YX#W7PS2Se`79WrR literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/block.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/block.c.i new file mode 100644 index 0000000000000000000000000000000000000000..895a379d8e5efff7e8a6831f4ee47db2261bfc1d GIT binary patch literal 2051 zcwPYm2>kZ|0RRC20000000+YW03iMV0000000061|NsC0|Ns9{x)eumJl%0l$XVGR z%<^;PWt$NI00000000000001Zob6d}Q`<%pfA3GR(1Az}21DPpao~BtIK&gjbij0` zZ8{oRI$4Kh$)h`kK!@+%-8=oYCE}z{(x=lfga4fN_ICGv`@7xqLA%v%1N5WieavUR zgu@?y{GoHy?S2n8A%D+e!R0+f9t?wkhY=TW7TK{&Ba=80k}=V!;H@3c;d~#iBIzrk z(;xsPBp_yj#qXKBj}O$dX%IQ{eFr)a@Ts(8a3Yt1jKH@;H^5IgWXFz=Hi6G09*$KZsMp%b^zCC zAa_##8iHXvkuz0C$ny@IwhTYt0w zgy0X%lE8cT1tlO%7S;ocBTH`-97DI4dwD)MySYHYCB?=wwvUfbpiceqyX_tEZrgkp zZtsEYoGfkWhxUS*z1(AfJD(#&41?nu7;U|v(q+g!*fnq->YgT^X_|0+3=`{YblHD% zJ^XcG;&iee03#spBCvy?LsqBof(7AfaQTWtL1Ns4Lf<}_@>}_u7VGBW$1#tx_^tVi;Ft)e0wjc@TVRRR!*1orcgdyk@ zO=tjb7YM0@r*l;CdlRRA#!MVujz8j78ZDfd%BP>ux6kk^i~Z+&hCAx`40G7==OS5@ zck$!c>t9uOaSNSvV#kW+2JyuPjuiH4Gspzwx@c4LrW}1bG6-42T7>eLGz8Q`5#(6Pg z4T5H`Q4gMY^NsY7pwhEo3&EsOrr$m2?kV>p&%g{y9I5zPSv^>=8s?06p#I{5!#yxCUnrEd3VImM6RI_G&u%-NJ)kMi*O1Y~WA&k= zcjA?5I4e<9am<1T0rR9@8ok2s>S*4op;aENuU@oZD$xLM?MAkK4a}RMz6N(qz@HY7 zv{Xa~b*-jcT=TC+YlF^aSQPrp5pSfRf*PM>m8atR$7=AQ4jVwMZln=Qk4h!X%QxVp9@X>oWg-5<%yotEdED z+E}zk@w{WlQG(4HAv(g;%PvU>SOV_2^s$tV<_tTC`z7-Nn=r=$S7;UE%gNvc3~}rO zrn2<8P|b$VKrv7oOWuX;#1Rb(iH_5>gI381!{sp&K@_V?l$c?CHw!tg;p)|Gkg?4J zLj1D>)gk93R|Gw`4L9iYYH%_6<)=X!3hX{s`faQnF==%{rdT}}fduX<@dy0*dmJOFF+UkzVfZlHj~8Z`7@Z(;#THOxO7z1d(sN;S+M zjW?Np{ma{I{$nY>^ZS#cC*+dV+=!)po_hRbqo>X=TKK5a_R&drw9@;fU(nLuO8oKr zN1MXjh$k+}6fvrK#(KwCx&eS)bp?P&y;;q=rXH~7)XU7vO+zl$DOFKol&t-fT8?CJ zXM~LmM{GwiRd-bsMZ9vdXPe(kE2yKI5-QWJcRfmQ8$&L+9aQ&Uahhk(S;N|O zfWwGdSwm*WME`~fIkcjjN71W#{W>@yk$pJ^n~lHkG~NAAQAdB-c-%-5d#van3FoeH}8l7 zPwRKf*7CbsiaXcs%F}-!U>w0DBRN@XyS(!+^{H2x?d#7!3q93$Ognv>@I7m3UH$*( zH`S=*ZP*xOa8bA^#CaX>g{Sc@(i|IF*mj>fD7{l%I@8s?_@=Swr?}*gd7T9dHhp26 z8SbinJnnGlA0HW^1wtW)2be7%&*F5M{_(=?($yE12)vQh?V465eV9-D{?4RtKfhfr zHF{vhV=NWJxbXA-&j-FgmMXfRQM_@6@vIVFmWjq&r4QV`>==;p_{2NOw#de5>~`~o zPhEYn&N!t|_g(R)Khx49cE{GnFSPitlQ>&@oy*th@}Z~ZJW8LOEpz`p<87I_mjQD^ Bjy?bY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/basename.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/basename.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7769fd327fd79ce8d8855f179a8187b3c6693dd2 GIT binary patch literal 1369 zcwPZn1*ZA{0RRC20000000kKU019FN0000000061|NsC0|NsBJXsptjKE*&Y-qkYE z8>=r$NtE&c00000000000001ZoV8YMZ`(Ey{_bCKON+*K6+2!x6ph0BESCmi4X72Uw@6Najj6 zwOVW&Rh5vIIc&8ARf0yCOq$9$2kum}f~q#3)wUs&b(O27%2L8`Agv{A zWW82RBXii))vd~L(5%u1|476sit0|4H;`3ju4t1c6xz3z%?XW1gMUcVP%ZbGvMR@w zTiu|YCPl4;nl7qan%ZSWAox>Ojmo5hE0l%;@d)OD*4TTj2}!deRcl#OM)32uLXfbP z$X*Eg%(p1+|Iq^0Y9v_Cjo!;bX6!9k;NXitKe2eJycVZl(t>8-svJZG37DD;hDH}BL+C0N8tsZunBzp=*Cz$JOnqG;O`Z% zck_tFF@zED+1%&22zNzpAUKO1LgRtwClel=J8+r^2tolqpK*aJMd%w!E#xtaJVeUqPdx`HxFi)a+7&9Qz6CQiM%V%sd091giz%E!I zAfCFuZ%yLLL`)Iol%XQ`)MpkGT}^nzJmKKZhmnT~pcvnQc+NbI1A<}i7>akJD~BTR z!XRe9C%6vhVdBo*bM(^vaRdZ|342MzW+V}<$H{3dxJU$p^Dvy4cw-h_aF4}f@Wa>y zl*G(I65$$dgurOxF~O0kB<3b39taji$z1R-=)p9+#2`?qi@PT#&@eEbF_192B3uf? zL~f*AP8m)`lp@*_kxOyJBI2HCtt3hjMxtdF0(S26a~60EXN@cZy5uqI;UV#u)^JOH z=^}Gtywky;Hal!JqGL`F_?c;h$pt6>F z&uv{=`Z0XzJi$j?En(OU97foI#&z3$-h#yU!5RY$OhZ%4l-^~jhJ(QYg#v&< z8F}#LjotA1v(-k0!#|D>G2sr~irw2v; zRgex{qq~QMN4Z>MfJ|5=PO3 zpIT;ZeP{QpoufVUa~L6vR)5KAxf8heWEvm2S>Vo?2tz*%&L8=q4%pdgB~Z2^up|zA b!)dnJ_Wfp#?gZ*3+sKcS`_lOvX!#+>jtZ#< literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/compat.h.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/compat.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3fe51ff2e3c6480f945a9856a35b5f1f5a211b63 GIT binary patch literal 2487 zcwPaw2}t$;0RRC200000010;h03E3S0000000061|NsC0|NsAqrom*K z7aEWgKi%#;7OkT=Vs9tJPXkK2XRX%fDDmSxy!;+VYvyHVewu{QruX!R&dcBOGj0{> zCOKywlhR>8L$X{A2kxD14Q*%H`bhINNf^D74FL4XI!m8vlF&TI4fsqX zRR77#NH^WlWSs}D(r&|cmbGgcm^CVeK>X+R<1Zz zxIvV?i&pYUMg9n@w68%`6onK+%SA`CskIvL{ST8OEff{^LHY)gJDYPdA?JKErXKU3 zNa#f|4SJ#sD&qEXU@dGy`mcSVGK_L>9b?@6=REfECqi@I+eOKyC$>@7Us$UdF0A;y;BivY>4ci&dhup#yx3HjDlm>MscAQhUkO|b`cy^0XL_^oy z(0G%i86{`GGYG&R#0#My$e7!!!7+eb8O3=(!5T#BAFDt=m* zksRJ;NZDwlA<@iK0n188tDlbSR`Oi;Xk_)Ry}Fw(S2w>f0 zJG-B{mUFu#pT3i?B6y8P5@47;jn@v zxr)D9glFm|b^+y+|4p9CgLIEQCL}O4c`-p=PVy9vhKzT!LW|e?v6@ieOgIVf6^9E` zH4VdDDLRzLGaw%J@J*B?s0M~4u!E@@#@;3`o$lUHloP>K1`)>2%~B9e*HTk#V^`Vx z##JX#{?Bm5kLHMGS-4O9Mpp>3jh>`nr(M^MTWAx_cZn6FJC8wUhLabDM@F~A^L-qJ zwpeI6g-JX#!OSkYHK@U;7&x!BF zaj(YGa6TW6meP_Kaqi(rmHA$$VLOf#zmm1U_ArR22_{;a)u~J^=ZDm}*1?`3+#-!} zcYKy+5v}z*n-A{nfwUth80lLU0EwV!#UZxcBxT&Dn64V^E$7Zkn7a_>hH3II*o!n{ z)geqoeX@c9Y;->xaHXrhik7DeB8E9|NBt;_pf{-Xyb-LbS`0UiH4xKf|5`w>Uw4?{ z>kLXJ2g4rmkH$(F)7!zFCAQ+cFO(ND4o_ad(`bz$z)bUepf^MT42=h3!j)!>aKA)Q z(2!1BZxi|4SWeo2sZ(d|=ly&o)^jCo{oJR}CwNexF$;AxN&a1@zZy@5LjSsN#DhgK z9Ikj6IxgR_ihn3&Hoq|lJ+b7{eM zvi;k6M}C^baq9E3(?3wE8Fd3GXb(~ELg?Km5g+S==4vWFg4(}b3ZBHkR0-Ge%S zqn|b8|F0z)xe`W3kfaRyve4P@c2EXQsCo0zS6~kLJWxl6$f@jvb?3{eY&Eonz%?$r8W5ABEYc4TV(Id?$Ao&G@j zXDu#xg|vMR=s^TW-U3ziAmgUiz?m=2pz`~tw|wjQS(+QsEv{8y_ULxWJRw^c?1`8; za0GgW@$k^@K+DSsdr1kuYeLawx~1fWMp>YwPe~j-Q}T26`1KUz4^&eRW%7fOCpd}e zD>N*IW;{67URmZrm&w2}nBU_h!{?imBn{}vDS3H{p!R$ah41-3XL$sw-;2=#tO|}I z3ZTyPNb=CSt2@WG`Sh$MuAIRYx~=!0Q?iW`C{so113^)>XxHlFG$jylbg*S+?Q*to#S_No570bhZ@(15BffMZVWTF?*Cu{I8+c6Ayi(q(ke(rFQ_T~ z<;s~1tW{0nD^9B=z+#2RJ`BDM--JycxYCXeOj7Eb5$7&`H6a3yiD>use<51@sv-hP zBckE`q8<=3s@IqRE7M(q5D;Pe~)O z>{ae$JiC8%m-BmPV7r6)bOCuOzF!jxJuAQu3v2vHu6mcfOL^0d?XEotupo}a03a7IwI1=Nb7Idx-g@NMo@jvIWXxS_Fu)xuldm9&@1aZ8 z8B~K1QRLc7cf54$Tm5~czqkM*bW%5vPY zN;=|RR56i?+>X{0Oa-Duc;#!Vrp*TB^6_|1s)(L{y}Z6E+QU2ldi+~4{|9N7;~V29 B$Fl$c literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/dirname.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/dirname.c.i new file mode 100644 index 0000000000000000000000000000000000000000..cac0707e2b7804fbe8c518b6db57fa9baa94320d GIT binary patch literal 1377 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/gethostbyname__r.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/gethostbyname__r.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b08adc0569f52f563c57282c227c8cd24b2bb738 GIT binary patch literal 518 zcwPYp0{Q&_0RRC20000000G7T00Wf(0000000061|NsC0|NsANPIHHLoz|}nBRdG_ zkIeKF-jeSC00000000000001ZoQ0B2Z`&{ohVS|n1PTm|kvM6GozfIbyPzx3WI#R+ zJsGk@Tf!8{&_@Ap*ngj_WL@gDoezTjl6?7)@;D<|25@Vd*2-FVxSUKbVW;I2S|@!A zrhpqC@+HJdc4CtI-SNeA#Nc z$HL|eMt$vk09DY;OQWGO7MR&L)XP$;4o}I_QrrIVJ8ceEHlCk@3@k?;t`D$u-vkHu zI$G^%GTkB*+9*>?bU-zS1rIERsDe%8mFzg_8*8B+cDAINj&4P?r?S>08xwLSHB*5j zTrs07S?A*VRCJz8(`hGC>&Cuq(7lv3dS0e#BDE)n4HW%7#U{=J6VyW1Nkeen2Iis5 zLhT_F&5*#~=a5>4DrU+bSa^u<3iXSmzDG1^h9Hw2T00;=BWMM8i|yBMo9)fxYQ9_) z>teNA7W4Jp24*w(6#cp~nEi9N2hPX^3FFuwlJk_rx@diVsGY%T_wX=CY!-d68b%jW z^87KGk~38QLHS7f6BV3#3Zgro8@^5XAteqvtI@?PEXOfL(+AT$8jrL0_XP2;`4unu IH#b`#v{JP1IRF3v literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/gethostname.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/gethostname.c.i new file mode 100644 index 0000000000000000000000000000000000000000..786fdf055dbc2bf40a5c6a8b9a294fc7410c7ef6 GIT binary patch literal 732 zcwPbA0wetZ0RRC20000000Nu<00i6s0000000061|NsC0|Ns9FMuIqD1;Y-8&NiWB zl5@WsZlOs400000000000001ZoMltrZxb;Le!suM42iW<+jSF9lno@F03jhjyZ}PE zoUdngmxRPwSJ3`IyOqPC}G?lLXN>F1WD>J zqV&Fv#wq(9i9VU3MO-LOi2j-yad2l?J_x4v*I0TQi8#+>#T){f2;{&>KjJ3QOS({y zl3RQ3#?$|~t{EAG2lD^IDo)BF_{ciPzj&=C?LHl=d?40D=(~Huu8pZWNPL&O35#lv=3tR`6P-0KAq9q|TICOLP_*ahB##qcmf5=ceJ7 zUG5DHvMOdUTP$2ee2gV>YG~JCG3mhMSDt~2VZGxh*CGas+V|Nz(q%M}%0p_SmkKJS zB>93PsSZaVm024tQ@b08L}~A`(+?drXnKK5ny=2gU>)gcRXrZ1mj|Uw@3yP%^3b+V zrE2uYSIC%Bj%`jb2# zT`kO(XYlA^3YbHI8Iha~``K71ubgjiJZrVh6s49gVt^%_eG~NKuj}LDyVXxb&e6># O=uLH7Reu1Vgr#CY*i|(E literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/getservbyname__r.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/getservbyname__r.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4b062946b0e6263d296ee156647de65bbc874b02 GIT binary patch literal 516 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 Oe+jsfn*Ro{%^e0#y;m^+ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/inet__aton.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/inet__aton.c.i new file mode 100644 index 0000000000000000000000000000000000000000..626bbd625ae708e384c6fcc4fff5c0278beed6b7 GIT binary patch literal 391 zcwS>*WME_f14efS1|}5-DCa*EM9-b=_b#qG?(+TZLUCqnUuQC(-^73fD&~|5G)3}+QOLE%EyvlI-<~MZmAqwH@^=04 zx6KB{nYCRasS876=13n&7Pehu5h=UTJT^OWvuTXP6aZ15wM_s3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/snprintf.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/snprintf.c.i new file mode 100644 index 0000000000000000000000000000000000000000..5860f28ef65b690eebe74e58c55f832d42d1f123 GIT binary patch literal 5071 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 O^5Fm9y?+3*&h7(Ki)|DD literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strlcat.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strlcat.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6471332a5df23fddf75aac0d70ad86ce98187915 GIT binary patch literal 1419 zcwPaE1$6oV0RRC20000000m0`017Ao0000000061|NsC0|NsBuA?U@&sM~-{u^}Jr z72H(@G!^6=KzoXYQ`r&Bwp&6}Snsq&os0i8P^ddu&F=H=(C+SFE=v>asB>Ky}kML`b0P_2xr?^Hg3otGk& zYmn2|8>_35(lV!wQKU;UfXS4zT$ z=f+s1V^eTt)bzT#&wK-N{|^^xvTTv^D%-47Y13`dhNwq{^_o_xRkcnF^C-M47z6L7;gWkjpak|Z zT`A_`sBchJhIwGVbgj4_z^fuv=2eZ}z$&0ul~vT_Y|WMyBBQrxiRC6sQ!VX1*R^dH zGHaD_tH4!r57pcxWz#Okw7eKDnaY^r@HDyfB0+ebN8yE>hzWiC=*2MX?U5Hu@OMSx z{X7zJOkqUwd_I%d1h2>o5-H+7qshRZEhaKJ>(j|1p&(3XCeLMpok`e7F!2wb6rR$# zi2NyDy%RZ;$(1`zhBIB!$%g_UGwV}47rw*;!-)3+|i#Cz14%ot+#q38Q2uSqjA2OrD9r7g%+)80b>QqK6{M znD@vg_@#%)3zs_=2Hcv*okr}t3X(i^jWD^8%)i}_y2r9%(#YpeTlKl8G0mUpC635a zmn!eh%0mCHc)0}ezB6Jxv=eQ)!3E_u!wJ59$I7fzjMG9bZ4c+iv$$mdi){xZCrz4R z(z(%dk6d|DVc=?9ZP;Agrw@jL#f&UZmJ&nJI2Otn7yRw9Q&E*&#Ow72&0T0WHRf=; zpi9ibkjRhaFDsgWZ;`>oNq6 zlcCq4w$Lz-`2|;jZB5w3rmesJH12%Hd#!FT$uaC(M|4N){J64v{`W(s2X( zHAs#m#~r+*Q%-ezBca4?XjQpAa$bqTU{vX zmInv)t2N_`U@e2)A#>tpSXi$1m>FG$i@ODb9F~(YFk`25h-W&?T%P ZzKxZv4V2=h-kv0GO~~`5^Cve%4WJxU!%+YL literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strlcpy.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strlcpy.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7b3abda290ed2b554e725926b5164be23439e126 GIT binary patch literal 1373 zcwPZr1)}-@0RRC20000000kWY014{=0000000061|NsC0|NsBt^F&~ZB95CIgV&Ma z=hRo5Ls}gG00000000000001ZoV8ZlZrer>eb-k^E~q70maH}@5-Sc$QEO`fnpAnQ zW1v7nlPilTMG9Qfu2SURduAy)N?Y`yMGaWm%j}smXJ%(L>Jz>6HmaBgvoq3ll_#6+ zFd011c=(FOZ{NNhoxUEOj%obn?Ddalug0{_@?2FliQhK#lBhrGbVmIS^~o+b+bX+X z)znRTeDn>4Wtx&bq$_iV-tm0cPJT+trmB^Wi(yi(-!p)f=VSmhRZ6SsL8U{i^OmpD z4CJ!Arq0TO;v%I+E6NJefJu~Dxyy>U+S0PD)_OpXS-qmNGT&uWGs?P5vt^dVj4`0N zQnXRkI;(4y(xxgOvJ``Q71#Jsz{&ISF)QvVDT_4YLz+?e+*;LVJRT4KL`_q<+;d9G z6qb#y5l$V0E2GADao%S)A*y!kdIK@L?DxxF3cT zV!ephin$o-4YJBGTjoo5it7QqN>W8yR;Uf^0(xE6irScKy{84ws4ZGzyNyzp%leV? zx+@ma89k^+Iywl?-7SdILBUe{+(& z3%U}%J;&6VN=Jsb<~G6Wg$!NxcmbCdEi6BjcH~$-Eh2y61%jCLOa``N$ty7%5*WZM ziEH786wEEhX@i7i6wZM%6<}md9noSUs+shK9S(5v>&S)zAma=uSO{BUz%b&20C~&5 z9k2wp=LX{E2zJ<~nRR7dB9`tyOTaKt*p7U0#S{^G5KV(nhEXW!((`6U-az=*(iXvl z94{~eMS&Q=NoX10fPgf?gyA@-D3C@c>4w7hqeUn^w?}jD21000Az^T^w_o4?4GxFXA} zP-)kZQ~P6J+d+@M`;MONm-DQsdmYUeJE3G1SJbZ(ouzb6&;P?~@_f>Hf$IzZqdq;k zHVua_IeXnPERwuIbA6|`dQ@*WN)K1>50}wDihEw`=SJ1Ni!HFcXJS6VX!ouAWbZ`eM2byK0`GJ92Y!J{`J$bT->7#qf_q=A+!xtm(LF97!i+tIX#;2jGac#$x{uOx-w|AXKEta9eyHPnVRToIx+rF fXpEX*H2k2#{YXm)%C}{I8JIm_zjXcpBS-kQasHDr literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strmode.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strmode.c.i new file mode 100644 index 0000000000000000000000000000000000000000..f07d7f16f6fa8ccb2e039f05a7d07b35b944204d GIT binary patch literal 1702 zcwPaf23h$40RRC20000000w3N01)s10000000061|NsC0|NsBddJ=ZuFpk8dCh<3L z(`zQz3*Aek!%A=I#WJ?w7cgym-p;0I(YG8i(ZhO%@(=7x-Mxq z+M`$R-W`&Et;kbXDlH4jCRE}zNcFAC3tcXF#10cZ$?{Z(`;4%XgbbpfToo$6RWXnA zl&4}{l(`47HzuIoxi|Z! zH^LabQ|f|U*7ocG3wdy&!g7w*VcEGoOw%EWBAb+VkgW>KR02+BNx0a^B#ds->@HF9 zm13^Z7=5fwn5bKc1fyggs~SqNx>ZRwLk8o;c9R=I-RN!VsQgAHYGLZA(d#JfGTkgM zOu9eq(?DrcCdQ@VRNb?G(yX2~UAM_vWs4-oit7Q{GE!-bImIPHO4F=VtJDf)k^>*p z1QYjGuG&jf%v8iX38tF2Sk8MWUGAo$sAOXs|5Qkl?ukFLJcsZ+^xSjNb-L8Kz@$T- z({l#CBx}$m+a36x=mfs&N&5KFk}%lW;VE-E3@*s|F!UTL$@NH_4f_HdfIVyA3rDs| z4D5c;6@wnC9QZVFed>!d;bWQaw%H$pwk^p$p)<#`Pw{GXL|^z9CZH4H57^xa{8==# zJYU#B-|}b}ctckj8t2s&((YU0%<1kEf`DUk&XE?$Q>))!%M+xvG&>GLv^ssmGJcR| zS9p%?b3XNxjjAEKew*abu?0Uk9~`7&c^B;pE1f?BEW#wyy4IQ1Lvp)cDGMaA1J60* zfKdn;bfho*z;~$Ux?RaA;HBf83)_*$)OV$+SRkD?ocNY;4+_eKX*_oVDNNzSz;`?^ z82Z8;>@n!n9icJ^)`E4{6xkh^oKYm#yI?NY!)VZ^(W!%Rk85hGW^pYfs%QI5YpjG< z)YESyO9Q9Z7pS`J@T|+Ak&wMl_grxB z)nYV)6jjr>CrpxoeOgtY_rXD{^;A!=xh6VQ@oryq>`Q6ea*v)rryo|siB8MCR>5aw zMA3Da(~CSRbWFd|lV|Qsr5)KlA{>mk#MFM&zQx`1hVR+82Zz5Lyu#y~qo3a%y*}h! z9ENd8&ZikYdve@*iY*WS2VAepwK;om&J%mBB3zzp^lPyw4$8$$75mq}ZwzyE8>2XF z(yR5cM32ibKZvsFY`MI3o9Vb!g}%$b+B8Eu;5NF#QO~yl#x6_q=eRk(ti$ZM^*2U2 z1DrPqn8V|!i3*%Z(KQ(;Jtui7PR{&2;^k3@Q;r9)hmOen01)e3MK~Q7OM3$SIZp~TxcoF`=sn5X=&L%M1I$EKE_ zTg&Bz5w4ET3#5lB?9@g#^WfeZFE>1u6snG8UHb-ebRToH#k~6_X3EgZGihJq1aCNz zf#_~;#a+yNfG7HAwPug^q|d9v=OR^SC;&`ZYdvg zQfIVobbmjy;9nl0`&FLJXB*1*yy3R;82n!48^Yg*9Bm=LE`0Om;`|xG_f}&}_Mq(p zl45yPu3psu->WJJkE+^`vG?sVuEq7Jj7$BNO}kc@FQ<#y7b7uv^LnZ9@&m^l0~?a! ze~*WME_f1I9TF49tQIP|klSc;U}g9j8_*vOVcl5X+l67G2@{iy4qW#hlVWUw>&s zfxW-Od#-qIN;TJ9uH@n3UG1<)hRag<`0KNMuWqc~*t=!Hzw%>cW-ZL^v1j*ue|ENA zeCi6V25Ix2mfdy-ws&{G|N672l25w({4AR`!5H@K#}<^nc({D>6}2Z57x72^_UHZQ z@r!-G)Q{Ir^Ih$G8g)K7+{&)HmV4OcS&hP@^??EYA9MI(w`eWce8H0G>9=N{9j=qp zjCQDcJ`SnB#j~#C|8>E|StZifQ=N9oFKUlI9acTlSAOfOwZ?hvx0<);{>fW>YKqB+ z1D_XKt@(aZH>H6$cj?rxzURLQm4}6JEACqmse;x`@XqJontf~y|}6%-vvoO(p&%qGuCvfcN0GNp=H&+y&)y8P`N%?Ho9Y*8uGS^Y-gKsLspXom4LXOCUmq@$ PXZv}6dOh>y)xQM+ZxZ7N literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strsep.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/compat/strsep.c.i new file mode 100644 index 0000000000000000000000000000000000000000..784d6a08af99db4f31674a568a61da488c975274 GIT binary patch literal 1603 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 B?n(dv literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/decode.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/decode.c.i new file mode 100644 index 0000000000000000000000000000000000000000..85a6120342352cf22d6afac4eed3f6776c6fef19 GIT binary patch literal 1049 zcwPY+1m^ny0RRC20000000Y?o010UT0000000061|NsC0|Ns9MidMi;@RoR3sIzSt zN-5$xB@vVW00000000000001ZoRwB{D~^f%?e}$qa@)%at)s(QK7ZWRHhB3y0X9xQIBxhf{8S-3+g2axF8LRYO0=S z*g}W%g*1>MZ3WPTgwG98V4uOr!UNV6QxZ}I^F#)ZdYxH@fsYD*f6I6lv}l-hb8cjj zW*SB!l4?N=mjY%qh=oif<5U9?Aq>JSa4wR-6q)g$5LVFzV&G2Ai6G5>jO7Vu!fUiW z?}&>a$&l{HTm=`VjbEy;a4YVX1GEXbENl^~jJTj-&HsIL`}R#8j*sDBWApp>*J$_s zx_1OS2<<>3zOjXlXrgI3La%f?C5kL^uLybM&;(Wn2UOydE<+c#F))?xCNi6j{wDt3iJ$Q2DtvVus-1t7yPOKo-# z<1jV6oeH&CZvqWd_ntif7ZUM=TF*E1_&2>jzV>Fr@!pZ~01)TiZIkDxQT}drcJ5f<>P3#mj|BK2OL;VyE ze`%e)d#BrY>2&nrsmsLAF2ZTaQgC@qdsEjse^|2rnS%r0hf#@u^}URTzFD6PK5QKd z;sV;vcV-xDtt>D&URp0hXrxQm*K`RNfOXO(0+c$OZK&AJV-z;}_HI1hI=6J$?50cK z!J!=o4uefha}bF;kP4$#IGI$769e=+*KRb6@kdfRAR;Q`^3b+MVq1>!zT6B4WA(GL zezr$H`v?6@Nju<7Im%4s@|oI}&$i@a)IRx4HM>mt?3Mf+<9};sCGBimJ6mgC;GTaG zZ=bf*=Wcg#oa_xMtmXE)42*B2k3A~ETHi+MK^_aoF!e`QH?w-_&BEOh#O2q}tWp{! zgymg%e${eZ5kym%-rvmbzYcya-ZEGJ?+XVozWsb&nCFU;$Mcu=6v_SJq$(L*JIR}@ zPvg&3S?H?Dx*Szvp=+1uez8}ht1neW(Dg5Bdy~O+IeUBUxjl<>jN4$xTF3tcXAf|J z+pv97FOr|vYpqJjRtN0v%C9)cSH1CgHk^F9yB^w^-SETndZFhmTZFM6BumUb?HHHi T{8(?vVzl#FwX^*bI*-%TCPw@m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/encode.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/encode.c.i new file mode 100644 index 0000000000000000000000000000000000000000..26af853997e708db2a919c0adb72dc3fad0df1d1 GIT binary patch literal 1929 zcwPaC2X^=X0RRC20000000wpd01~tS0000000061|NsC0|NsAF9#fHO(m#|y0<_oE zNzZRE_~*m`00000000000001ZoSj#DQ`<%m|KFctF#}k}4@f3c5@R zICu%SA^l1cM)@N|9*ly3h7o0O8rg{}DAOcmoDjCrz@?o$zXt5c!lautOJyZt6&u9l!)VqmB-2Ll$ffx5>R7+U>JB znzyMR)|%Z~ZJUNpkfOWCDhe9%F8(J88t%*orU2tEjRb9*dZ9}^_o#Fw z`_yTHj6VunGEvT)VD8feV6el#t=FyO{d1HEV15Iw#zSRINbD%8{f_*sX)db0d z25%3dSfrW3E};DE;_B8y9ss%(I`N~BK#TXO*U`7vvCFXZP;bGJ)k9elFoGZ7HmK#^ zPJhG5N7q;S+jw{-)t|U(dU8-JKw8p|7?BP2o{B!0atcEez;L(7f~dDFX)N_T`uE+7FL*`0-pj~MzKDA{=9~{tZ!eG)3*7S>bsBgIz?e_qzSKl_Qrx6O|yut8U%Ot*#gwAa-1xTn-Ulgt7I2 zXyx#R|_1FZZG+hJ&ESNL)#T~tkx<$qOMrKF`V z#GeikMLTx|_TkWi_W#N!+HqG}r{R^CW> z#5qS1pJ=19vh@Z>tG{rT>%)$V!xF9q>bvNq{J|=jhPJK6vZH0r6va$eQ7HmPlH_HB zu&HC(t?CF~X(rSeN^u2Sn;*f*vy)O6vx9$iYK&DywoB@8e5;Ht5!2(P{N;<6m=E^6-5b zzW-$S%2v})Wb}TbqW2TjYWPO<$ayAu{mbho?SY?cir#-JdcPdKzdrh6AE*Q`Xw?nC zGgg4oqN+}_+3E0lGMgDAuAE)Hd^T3NBhRqghksGzoe=36^zVH!^@`zDJ?3o5%|b-q z$5Hga5QQEH;0nK_p&Kn3B0IrEO2+{gbAb%l)_iVy&WJ>!32fwI) zEd(p8SP79?WX?>H_$`~^PRjE<={68FXfic4n;Vr7X%DoMR&S+^%yq;N%r*hBXBcF? zZIsX`zac?_*%{`G&V{lUS!(#4>zBE*BdQS;Tuv7zTO2KO+Y$TSCg(+G7rNqPF8C{A z2f7&l0hETbqW}N^00wpd00000lK=n`u>b%700000N&o-=0RR90|5+Hx91KrjL67S3 zK1?CwPpOgktpET300000000000C=2ZU|^4AU|^rlz`)?AppcoSpix{>l#`mLQIJ@Y zk(Zd8s;LbXC@xJ)%dF5;u(MSNiT88#b@g%eQ&3Y=&?wQh%P%O&%+D)UP*VtT42pO6 z3)R%*VqoCV0pd`g$yN#qsX4`|*o{}fV?NlF8X!IdG(|}P2ugAb6l_6Sijp&m;HKy( PsOzh1T5|ya)PXpH^pB8X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/extract.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/extract.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b4db22502487093f2b89d95c8e6f0564b71eea8f GIT binary patch literal 2997 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/filesystem.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/filesystem.c.i new file mode 100644 index 0000000000000000000000000000000000000000..42d27e6b3e9fd308fc1063db151cf392de0e8aa5 GIT binary patch literal 876 zcwPZ)1C#s!0RRC20000000S%l00$ia0000000061|NsC0|Ns9Bc$xAoSeGHGH%o7fLDhCrI8 z%5^S_HOG!@mr}<5ckY~YYq|kdo5tt!yXSY$?)7@35qwn62dI>E*4rY0v{kJ%I^XNP zR7UD~j_`h=Ol}uGE%(-f%67*xENkqB3TcAwhJ4637g9*8*=EcsbF&d!`jHPJJdJYY z$Zjo8kU$C+IH-iyRwfK$i_YXA zLZ~94by;@y_2gtgV}QH(1aKJU&HztLV(6ZplsnuzJU__ZOkgxJHb5v5(Bweq`3gGX zLK1g+Wnc*7YsfO#9&N(_){4*$nQ`3i09vXBUc;Dw#E&Ifr5RjAVXht$t{Yyy=2jF5 zrR_rhmEY;_!h=Lan=7LB__xAqb>IH4?%RLV9c>n-Cw&R)%r2mwN3ANLH8!fo-T~p9 zSgwTq;$(RwOiu9(rUjjhf{##BVXM*J1Zo`@C>$cs#KB7OComZd$FSbmxQx)6Mc z+{$@HdU6#k#Sdj2AL2d((YE`rD3vT}n+@Kgr0TJrs%nkx%DB&33rTjS_4F3#zv2p% zp4&){z!6&5mfa~*WME_f14c^*1|~rUDCa*E2uUs|Id*vEGy{b$wx_#iUnn!2e~|$RRLm)z=lnJD&Kad&r=i<3`UZpN8uIbNEV{=ZAv?i6h@;qaN?Pv-Wk zEGv=n7T}+(d4783!Sp1Z2q(+OAB@flJ)Uwmt7YHHys+=;8%^aMs~$T|*Q-*`y%H(= zCyZ5~Uw^UZv3)NYug-ev{PB$Oi^FeY*B@udd1|NlJ6Du6WPLhIK&rS zUZ(Q(`kbh%QEZ+vgIPp_neq!!qgDu$sc9$vo-&yg7D^puP-l<@c;S8Hnsh0UP{ev_TRTTrIxIn zzG*Upm5Q#}3ytEXTH)=>!q}5mzE-{!VV=?!XsF?r& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/handle.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/handle.c.i new file mode 100644 index 0000000000000000000000000000000000000000..681efb4ab3f6214be5a6658d08e4d5efe0115811 GIT binary patch literal 1253 zcwPbJ1RDDQ0RRC20000000gA~01cb~0000000061|NsC0|Ns9^*i-z_gFA+~u@nH6 z%Z9^N<8-zF00000000000001ZoV`|mZ`(Ey{a>HriUNit$ad0U#Tqy1T*qjPrS{-B z>4ISpSc!^=Dx@J%@zO5eeRrgOIdztxXcr)sL>}+ny?Z=z=sUg-Fj4EV6J{=DGS2uQf<9#8qh>ioD&~-=9E22FuuOaw@(LKN#>>jOUfT@>uXFtU zwG?GE;Bk3m(Xs1wS-?!9yKAO}lCa`YDpjVg1TO%+!89%-GsQAELu?|dQhR_0rr|vQ z$Rz7eQgqM6m2~`}<2)BK%1VU(+U6mo9^yaG(eWTX>KYU}7K+B&p(K(z+aBV1E>*QM ziFpDi8k@IW(4~6zI~d<}wyZvjQzA;mLG-JYAl37oatQ+_Aufm@UYC zV{D-ghnL9N0ahUTGyt6<6Gf`ZEQXE3Dj>5PA!D^EV3YEkqXqq>UE3ycm`AcCF7_ddh5GIecNk)z5+t+{k>l!$$Z zSeAt`(=31%vkz;gQ^~G*VB=@(stDj3H6Lp8@C>${Kzzs&%+cLF=`{gI=pak_M@fv< z22mTd6VM~Ooa-`|l{s>;E2$_`1;3xwcfwi4w;?PFk6_dVDa2=Drt*<<7Jp5z9r#!# z0aWIZDy9Cu2;B;bXE0c#feq@GvcNXLVHUU*RFzI+mJjsJjAc%@rR{{Rl;C-r2tJxqJrQ@HRHr}kK+6ytz z-`}M(TjxqiJ-T{@^Th%W)epj$j|pyx`f{-d-_GXa z<)yQ2WCush0Z&*+cCPQXvL#(}Y1H6t4R<z P#aHnotj_)gVKGYnFXm+( literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/internal.h.i b/CMakeLua/.hg/store/data/_utilities/cmtar/internal.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f2f3f270ada9d1ea90ecfae9d8cdc0937a8e4a20 GIT binary patch literal 564 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 Uw#md${@{8xB}Sh84?K>;M4zQYtN;K2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/adler32.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/adler32.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d79d5c73f8c6f07919e9b089b4d53776fffecb63 GIT binary patch literal 1466 zcwPaz1x5M*0RRC20000000nvg01^ZM0000000061|NsC0|NsA$T+%MJfR=V(lx0}y z9Q#ly)E9RE00000000000001ZoaI+-Q`<%m{_bC~6Oz=z7Pe#?FosMZ&>7Dd=%h&} zLz*&Y>x{3+C-)>79Lj(1?ww>w7LCfZlP}d5%XjmIm$Jn>R^JCnfYaCX0dms-n~$EQMa zxEc*lu7?*N&fZ@fk7`>&PW;&8@WNPpkqMq0|9l3!y`JlQ905Lf44e}W#u>HPYS2z8iKB@)7TG9z>ZZm%cnvf)@Q7aE}7>SW(` zEI2#@_qUE~I|VmRFP-{0o;HOA@SuYNjU%8X>$CVWK;3hfR`k~3F^6;4xJ<_&dq>lQ zoOCxQ?dGJD_l8@L-p@&QbJEFsqg#-6cJ+Ay*2uP&Ht+i=OR>W`fs4!Q)8Q|}(=!lL zSOu}d6a*65E|}>yxgD|yfT<4VwcE$1d^jt#D;Wc64o?`X)z4><_&dgcn$6Q zDL%%4*?N7nUQDeZhfElf4-$|9U)&|1aEu8gMk?0G`^wyKQ^iD~Y;!&(*V(8BV zpD>&$(_CzDvSWUhgC+B0tY0ilt`ufV&yX-heokY6S>xQZ^5MY<(AL%U#mCXe+B}Cd zD(51c1xlCAO*9LE*c}G}oc6evB_Ryv{Enuor?R2F$z>zCcerKS`Sn7ksA?OHK{vCZo@r2UFrAXk6gNiA z;}r_!-6MV|gmFDZ7F8iiw}Duy0EcuhuY(?{JWL**Aj@3pjcrS-kPwr`jWv^_a!3`Q zGrS$xCa6h-6r3BDOPQ*;%vV)bN=mcCFuuEf&ZbNq0RW_TsBk_C!#XM>m%?j|kUIe#|NuQfDMig(vK zEc}qx!>w0-kbyG~dg-Qvd(} literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/cm__zlib__mangle.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/cm__zlib__mangle.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f68d7744642c4d75ddbc92796aa37f42a1799a5f GIT binary patch literal 931 zcwPac16=$70RRC20000000UzH01Su#0000000061|NsC0|NsArrrz%WW`aR=U$O2? zCIrIm_-w@h00000000000001ZoQ;-2i`_O5$M60WgHs5Euz}63$7WxX97@A>$)yyd zXOC^MvScKg*SAf-dq?(LYb5zl$P(uN|IKJ*%k%U`_PWC!+NpU_^4v^94+@*HdPAzz zSQ^!bcUAQ?N(Uo~4lVRjA#An-p%l35bT-NX{yiJ(v4h^43H*oQ*fsQBtqjp`3%u7^hus zjLB+u<83jit9H5zyF%!xin)X}TQkwFI=Bc2i=z~8z?{9H%+SuZOKQmZpQ}nwp|y4j z%icKyKL(34)bQuiv1R95>+FaN&D!A(7457C1BCajoT zj&5qfS~(SuXBBhu5gq!RT*aLH1O0<+!-r3UAu0w>IjngbzbKAN7n6mid5!y8;< z=J#rGBlFjo`SiuK%no7dy3}>d&DzeoUWXuWd=ogaBx{E-bzSQ6wP{3m%nf1U(r-oT z2Z0d|@tOG{Ok6*w-w)Fm=aGIIBN9U9E;@UGa}aP99IMBeTf7>b6KA?TGtk z!ad;tUX9`$l+&wlik$TKF;RE6>F9n#HM$5!DN+jc;Kz((VkEt7gpxxX4!e>t>nv){ z%Cyf3$@GK|x1tI zHz5)&Eo$Pqxy8)yEh4i+7+umnQA>1d{#A(~cA6VW#&^1c(-BVKn?@H-)Sc|B{{T>L Fp;}p_$YTHi literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/compress.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/compress.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ea501055e4ecfcecf76b9da9cf62a6625207a86d GIT binary patch literal 1065 zcwPZ11lIci0RRC20000000Zd&0158^0000000061|NsC0|NsBAT*CX%_aT7cA4W_j z!#fqaa9(5p00000000000001ZoV8ZpliD^Ae&?^)=F$$PV16`7=eW6R58_K{ILN@= zOokVauw|@?kz8Bi4l?=QyOL}$$0hAU;s-FR)wkb%yIRq1Kp@s>M)TYapw-&{0s?Eg z7TFe-DvD@Ug9Z#my3N=smQWu$&^@Kz#J3hxL@lC7(qZ$yS*JY;oICm z*X;pv_`TgZZ+E-UeckW%`n_`q$%ch)AQB4RV+t<~%vney#wjeuqk%t~+wnzT5&O7DU3O!xn!IeiR_vScW6)Oh9(*) zB^g;$iF;yFAmMMU72%Ap0Bxup=9v&lN1RC)icn+9f!Q6)t)v<&p?oD{U78a{F5IU` zfpVE`n}$_ozZ8-rkh2{v_G++G=1q8rSrEfow0KvLdjIgQW}l4@aK0k@A^2V zt#qZ#OjmS65^U!hHZgVzEWD2&rn9?BQgtoOUZ7?nX!9U!)8aZtjR7hfK|_0A7=s!M zzA7x}Y>jw$u~vnz1*&)-psi8!G9fN%pN(PX<7ua44fgBcMYHU}R>iKkoIXk)Rl0<_ ziPmtc(F!NB!O>E9sS%e>CH@(Uu;bzO`s3Vt=f8RN-fYA}JdA1Z2_l?CMRQ*Pt^zhx z_f2cbB&{t!Db=`(G_z843SA5q``l z_*~6-KcD``cv|>xy_@U%@tr@M-hP;Q^Z95xaejzo`WZ#VbsG_tNIlfYX71vscwjsf z4+AE1GdZfg?dWM7;ElDSVN(NejV5EX>O*7hK2B+f_mj{!o=QX98oH)TR;#Cl8VH5| jgz8Vq@@-uY*X6I3op5!9*QRr7d!=pNuGaEjcf=B+HTeaQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/crc32.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/crc32.c.i new file mode 100644 index 0000000000000000000000000000000000000000..791ee6f78c78e2273c3cb0d6342512362f4dc94d GIT binary patch literal 4079 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/crc32.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/crc32.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3e1eba464e9f379071f00b7ad2de279f825fad7d GIT binary patch literal 12574 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 AAOHXW literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/deflate.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/deflate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4df3d7bd6d9915376f234cecb71448540ea128f4 GIT binary patch literal 15380 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/deflate.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/deflate.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7938e93e01cfdb217c240ba5eeaa4425c379c9c4 GIT binary patch literal 4528 zcwPap5l`*_0RRC20000001ilx{aUACFgF=c6L zlJRO;O`u731Ogm1AX%FDyXW^_A83HIo!#uJW-I~S@AbQ{#?wuas%a)GHJpp>ZK3l@ zmATABQY@CGGDa7Ix`~D5fISrYiNMrWZoysi=(_2%{ACdAxa1=|q7H@tEn!a1KmQH#VMb zik}ZZUW_i@?~7`#jhO082{SM1EESu8*%T8+=u$Cx5OTT9bRzlOp%_&{n++kvQkE5w zQO$vWvCPy$F1^RJ!5&I zr#XPd$?3bZ!|T)Whm9wA)VYe@U{juCb*jYg9wF*%IR70V?>1gsj^F<>`cd4^Rn83S zOy@J9r{bZg#l6g#L8wYjaP;g^FU4HRRFxzN5<^u&#du6gWrYWcJBE7wp=b_ZX?V2& zr@Sk43c2RDd|=MVNa|$*LO?H*q)A<51|nA~RVgr%C7HP_RqC{&l^IylR1Qd>WBtti ziJ6*KSRxJp55al4IodX!2rmx%s9>g3meQO5yB~6b(O2Ec*@f5N+3Cgm>ks4O%ahY9 zvG(h^i zXIDb(y?EI{u0bN8Cl8e}VrMwqd-0+T>!|8^BwM>%F}eLVzB7jpN;_-OZOzgX{S9JI z+<`(o+iByb2qN=DS(GiHBTpv6QX9zb^;QV;&CL`mM8pKvW`)~E_TlvK$MMzZms8Q( z+jNMxcA3$I{Hz!Cf}CP0jDBpBet!7Z@zLn|3VuwR53|f2zo-odH=#Z!ue!BWwv#{GNyaQQRAKcQ*muy2<6+*y*&AGNb(AyJPNxUoTq^e5=KQjq}KB*nA z@e5JqPG+^Tkrm9d{wXu$Gj`VMVX4SjEe?@X;}j^zM*K!zF6x|o$o|dGW-i3ERKFg$ z7odS2Ys7{J>nMb^wVjTPwv!oH0{qS|VwxO${kT-79-NPpFs2gfO*wOYsHf9~%wcLu ztsD(=i$R@h!%Wu^k!A-QU&On^k6sD~jh(y$kDzi$yfzvq67Z53Z2U>4AUPX?>c*)N zYUv%$-{?x56snUkkv}H&LG&x{4pyMz?N(flX0e$*9S5M;%_j&D-u zkA*o1FYv&d@q605t#hMiIb43kn>j4-R-`!?iAG}jOjg5`Aj`=F@e^$2X>mUkKXd-1 z+=k*s=cYm~CTr20rzyo4c}FQg+Nz1L+#y32@W_f1AXPx_G!B7Wo=g#(Q4Yz4qO+FL zkYl=x)KRN12*;eYoMs>KM83bIU5kUDnPtJ-#Y85z9BippqdG{~{cR1~z!7_cG|T`@ z!j@>-263jVJZ=fI*77TGnKsM-9HYgr zoP-1HNxAx5g%c=S5{K@1=2dmLtVhhI18Jm`PuSl%-#V2AvMT{U~s7DOgZHJ)bh zy90;7CK3pf-&&Kl#$BpA_5oL!ibTRZ$h<}82UvXH;LGx4KkT%e-#fc$K+b-7^~(9E zHKpFOy&oJ7S!Y$hExP+LrTJFeFJ^l^i?=UC?~lXb?#mURg*3M@klin~p=VE^GgeEA z%~&MZOtU%pC^E{)NUg=8jus_F5eU^;t)f0n%w;z9osb0_SZQr?s$LX#%G>!=mx#X% zKoTqI{jE|S zmVL3e$-*0ONxH0T`?dCDPa#-Hb%`F>cDU(xDWXh>ND5~R#GIl3gavGk)KO1b4Q5%E@*#+s^-b+1(YcT?Z~Px;JVHY;M3ArAlTDERVJj7r znJ{uqrh_;ly=LvEMUmE7L5S9JY(p%#{eVA=HzDQ?DPGe!q!bsUvtcLDU}ZdS$NEMf zgvQAWEKex#LQ&)#t*}7=alC5vLds4(IPWlKt`XKCh~kxxRsnH;&HgA?bMN6Lagxz&Aw>~eY6ravV z7cM~1Rx@CIkO`V94oWB_!D~LFh$e3lHh5;_ax}~9Ry_2RRD zlR6`#Jcyx;s%S*j0al-p5KPM&;UHF?LUd2&_iZP#9@Ii$saVAkBj7!@SBU#HhR=%P zR=N_a1K+qI>K2{)d_1?w*lVYy1Qw*zL5QG1`qnUl24vL;$a=)N%cL}Tn9;nB=N>Ze zL{UYVHGv_}xa^vOpYIl&>1Xos!ONU#E>6_zjRq|nMYt}}h~;KUgO7UY>MTz6aY!UO za&<>pLCF$y(=6|SDwCL6i+3o{M9uY#+HRX8&@PlPYSWsum2?aj1F4#oGUY-blp##e z*SH{-oe76LT2*SXA@!|LhepzGDJWtuBfDCsGs%NF?7p{W<`;9Ea)fHb`mH|6|B6mm`-pbdAU>+ z1Q@fC>qPk&%fq;0=}>Y-#pC^!4cf`0X=CbyDBlXvyu-Lg$Ss}dH2*`z<*6U+_))<` zWe8kw3sbW&-Ms>hF=UxX5prduN0Xt94*L{Ft~UqvJU^GF-oq(99uloZl`^Wm%@aSe zy+Dq6KluBj!XN;@xZm=b$v<9fsPL8B0&IJgT#UIEsC2-t_&b4_fh-e z?m(Hl{DzaAT9!R4j1X{VO$?f%lao(Gq2DWEY9gwY8BKa9`B* zE893=2VrP6wpXqvwDD~Xx~C2o%7ts5Rgu`A)A)n+fvq8fQV~IsDmuq?mQk6%9eAY4 zWCEK*uW?JwGmK~VC7U@rhbm1BrKhb#6fQWZ6|kg%MrG6m)lLCm6_ad5q6qx^lA*62aB9Eci|*Pf-xs6^O6LIh#;J ztlWL3MXq8A(hpJ0#~5Nc7NuTOgi`n1{~wD;)J zC1eFJY;oQn#^`)y?7lAurH~(A_LxH+WZI!@48H9y%z>P$t9H!FC}}#=qT$K{E=|a& zq}6nzBTdT)WGa_cnAO^^5kdg7%1rGw95%rg5_mxG8h+bVnEEW~O9(1uHP7r=K0JlNw_pZetdyJe<=l z2d9;~bOSO}`{mrJk#BXO=*oQy;89ueE}-E^ye+Ma$Y}oH+*Zg5O*x;h=?QrF42y2E zQCZuDJdBMpe~aLAB_2`^dp=+tH6hApYr}Ic!?zvN2X`Nps)1lgTmA4~B!PI+$SGho zjWIeZ(o#)lsXP=a14_F*sTb(Kf|zUq314gEikuCmux7Z3oIUQ`Uq*?YwBrg+>r8A$ zah`8l^~~S1HTeD&WYOK6S?$_Yn6S4JyfZ;RRn~b2bCl~@$*P!ms#a(^y*%i|F$+zVo7+g`%F#MOi=sAT_#3v=^!VrX9G)gt-R? zO#0$Cv;8*O`>A={+PV>ML@((deA$S;C>dRh&n_>2I7EYVB6{JbV=GJ<-G?dXI_D2l zs)oQmVNI^L@1~k0JTmf=4HJzG5QkPDWSPJwumT z_;>rQy^GjxvBC6?&;yjIy*pYH{%G>5lNxn3Qc4l3tA(Wgmacf*+@k63RxXS@HF3WG znOaOobri;Q?pt13;Sbf&42~hv%I^}F?|QwK`G`%^?;mXN>e~90}#>C zW0nx6a4uhGj%{f93MTqg0Qm(bG;raR$`}eVgO$d<`5{_WF>M_N7n0Y^=UCeQ zpGXV#l=All6KTBlhE0*t6vz-oAa+zp;*j`i+7Z z7rN1yM|WSK|+T@sEFq|L_Y}*C)qR ze4`*xWzKz}o2^;$xF?Jk8_KctL}f-b8xoLIeH%x#rGv@lq$hq>8Q7v~i-YFCUhi8A z_>FNSi3^q1Dg>fv>cgq8)F_(nL>sd11{-jbBt{bEQAu($q))82w*0dF#sJ4gD8!pL zjJoM`ws$>IU)J$Nyc1L2mNTI|VpS@+b&J6pPzQG}yQRNIdd% z2D1?PMU>He#8s4Eh}PcmN&n4<-IJqtr@gZ?ktf2xOrjyQL!i@H8fF=e79_(EXZ3Vt z<>{LEpT-ZK_{YI;OD?y0DLNaQ0@m{L)Aq}!osQ`Iw6(dpwfRyE{mW>$5hO5T?|LTw zK_GsJ;$Si#hT>J04*|f%YvbAKEi7=daj}ZeM#FFSj8)edy@g8Jm_k)f{{iku!x{m)NdqadFq)X$i?m)9-izr2#5sD zf9MA1r+@CB_Iiz(2edE}_H+4N32GoNLVp;hiofW^XyT8>;0DMJcUR5uZ1>=x54`XO7Sz6OcMuLzK^x>i zzQwFPOOt^=nA`|I3!+HmfDIGI+uqJzfA@5kSP5WkDi|GxA?JcEkpIKj>fQU}{B)V| z$^_U{_!jz8@fpcj=s)>?U3!Q#Aoy*Vrd^g<@QtL_kokAw1BuAKzyztUL{=FBeMWuKxM5Sdqj7R6nCggp%5 zU2-FqgAH`5c#K=i(~}m!>~~#slKcqMw>y=Gz_Vui`+Zh;AlSAH7>N$C2C$RIw2n*) zV-JZ%Q*o7oiWZMI#5t&%xP8FSDKIn82EqY?@iXERB7??iI#|VSt5<_nk2@*89Y>eY zA_Vmh@IJWV=YZZIjb?d5(4b=>EgC?XqaiF@v^w4fPg;>%8s_s9rhokY@DM3DSK|c9 z91b)T5rYt=bquVG97Ii0P^bNjrX6P>8KWS=14n9Xs8pjaft-f$8pF^tb!*ZsyD0eL z1YrbzjDrw4!6?Y?p!fr><`GaaLddTYXq5p^<65XABH}holO{GmD5(BRVG6H4^pAQ+ z{od*6$tf%uc+bgf4Q4E6Cg39$fF;K3R-Te%ETq9`*j@Ro|HR`@|1k+K!wINDA5fv+ zd4G7`SNizD$uY@g6EWP{5Hvu%fGW_oO$cY8kDT}3{8{O)Tbq)6Z3dki_;t-I=4~=Y zw`e@V7XNp&zjF$qM<0GQS|Nd7z!WW(-JXjV| zo@|%lRE?>5g?^fhiWkVq8f;brs`Z*1Z``uV43Ozde+0*~*Y1{EkQap?gw0#g8NidEzuOuPNjS=$ZJv<8kvenB6FFO_G})(f=@E z_d)2VpkUcL7wXAsg(%Cn#gqTEpDK%4-aGB>Edp?{2*BI- z`};>b$NiJz!#@`RIb8(g^srayYcF_hy1q{9EyP%^4qYjziv7P6R~Mw3uFaqq;BhJ* zN%1Atg_J$?r)N_iZwha`w+ziWJ73XK3&)S)u~G9>%nO3Qw<8ZVwB^zJVYiX0?m-;o zn~lc}Eh}I$LO{LEV<#gI>iq_H2AN_y*dT@T$6!4S|)5G5HJ>YG%7hbUmfaI$v z9wt}6qD2WDGxJIHe+5=LoaWhlMyCZI(T3%(xA#7&*g(@vNd)cWDI6LK5F!^b@rY#| zGLivCN!K!eEGaHbk|_~g^#rhwfZF+&_D|X;uKg=^WO>Br;ba1o@8?oyBb(3Mg^dCa zYvMQ|ea%NNAPYWJxeA*p4gZ=)u#am3^fmT+tdehVmFz7Ols`g?$J7*HQu0&>;7N)U z029Qw6VQMG_ohnW$3qjEKHn7s9Pe$2x40l2fz#2^fOY)EeeeFq|rO&T7teUB=C0`^^Y1K_3^ z8i~NPfJtJagpE01_S6U54wEp8pX4|P6BN(Zk8iI08)VHZ+7H(FGpYYjaKWEMx9qTE z&yfiv4g+*wr8ia1sfbF`X#m7SCp3D4XtKr5oBM4bwS=ygLq}HRw_*^hB2ch(?*3mm z0nj3qw&;i6AMZ|1&!K18B>ggT^s~8Or-9o-_4$F;zmsK25c$N*a$yvo(*A_PKLO%t z14WedKn~}#Cm?$9fI?8f0n=z21=Mp8Uig<$(wKWGF$+m7H}W|2Lei|j9eKKji!nw| z&`Sm1hPaxY~ zU$2teL5J3=_CCBpE zp*Knggmy@lyd}k-s)yPs(`jLO3g9dwIK`2p4la30)A{pAo<9|Jg7xVYx$#H-r%Z=0giEROu9&_eH#p$U}r4a?Yvg&m)i z6%2b?HR?rGf=bKco!nWMZDCpl4^lHIU9=_%m19CbweRMa3~l(liWm)(h`pFn@vzy)&4MBs6drdM$v+<4CGf;LzO==jc>S6mx}_fh1Muh_{30Rdpw#v4 zVsDp|Vrmu+U?t>9c(#ANZUbx~TlGUIihEZO5_)WG*;P*Fsm`_7FH~F%iyTz5dL)36 zZZ+?G^lW#Vy+-4(F_%*(|3zzCY}UnY*6E#EeIct&F=xtcxoXMj+vcgyLokOsULc}m zw@2HC7Xp>m2KRcbGj~YuYnQN45MCj+>rkOqv=?Q8pAMyPWM>BHN+)NOs+2rJz&vYBdQp1vM(&iJzh&^7$y0{KkAuOml7B0RQ%zv28kHvAt5+{9 z#|yT^sJWjGFvA8W2nvNhy(URAgQEe}{Htg(5r54i?GG_#Bx3{s3#92IDGQ8I@fm>i zMA`eLaiJ5z+?a6WfmMfZ1U4OcdMd&F6OcJ%#qgryd$H2UzVq-Z3(pwe9A0u0Mifm~ zpMwTB7tx@__KH2UTKbEv;B3i=C^ET@(F1Svwor(D}`_0J$?U&k(=$p zqM@x=Q)Rv(kCw?mnAlR@dD2tl!i~r5!l*vy;JW?Pvy3qs;-PDRuS~HYlcJ)>ayjC6*`MR7MBp;XIAT5~>rkC5>b|WdD1r0%DsBe(N^W80mFea13Vpfa##I3>I14-r$X%I} zT<&6&QI865x50k+ad>fDSpNo3_C3?9+4CAyC}0(bP!&i4sNUDDJ_DH7r|PS_1*EZ@ z3(0bvv!7#;Tq=lVA;}rbl3H;oHuRwn+Wh|E`?I%pnndIzXU7cch`vm4H79jdh?7SL zFMFZWLz~^0=vNltnVsRve>V9XYf2h)NL5Trz$RXa^puWO?a^JS(5Sr2AYBVQbUlGC z@B-1^yRszlqb+DTR+aDoV|e$#Qjmf3$N7a62Ba_xe~?^;=o^?IAWu5ns}#N_z!(9R zK?ehA*m9SF94On2?hd&f@(x(Mm#98w^WcITZaEr0tvoBIp*UIFrmBUdjH{%M$n zd7VXQezN;Br_E0t?^k3lPu5OQld{$jE80Est+cJxQF(H>wNgFFFILGt-L<5fo2L*B zUd;nS)rsuLhY8`aC5czXideMERsm)(_+ywELOAr?~o~yQW}1MuhG2Yx0ZEPj!qYLP@o?erjj&ta5}Z8m1TOeS(Ghz zeM3$rcyO9u>>L5g%cBV%5J1`b?xRk^MZ#+$Y5QOuTumbDswHp+`9JVjCOZr@E4~j# z+8uVIG)Q2RRx)ZyXSFOCf!#wmq~=(`ARKN8I<~NW1iDT$_QJxeX+#GL!l48;n8_UT zEY&pBIYVrgX~tDEU^#6uEpw^thJyz4l;iN2&5EvcGjCEPvz+Q13^B&)PbNh0oR((u zc($A)h`VZ4FH*td&*obol%fTYmzA`P#7(aCZ6k-xy0joI=~fGyy_UfbQ;e|sE#(N_ zMS%zF>%>U^iJz#bz#3=67dK_(SOe^b@1Um|;TJWzEiquCHVRi5-rq=R4;Zy79AGtW9cWeO z)ww@W&oQ^!WIYA=yCm!t(tNRL=r9ZGjKBpseRj78vIAw*#AsBrEk@nx9iSrd(&sgGaqn7k?km7k6?;TA-|>@q0}7MZ8XM5Qq> zEO|&a)%|l$R7Ta6zqw@>f^!JN?rR7VqgpQzw@!szMwBzMU6{e z?GOeTbu{xbi+T1%J*2lgXYiPx_E9<$AhyTV^9GTjTGplS>Cr$1YUsaRL2_fRDqL=H z3a$qpf0Uw7vWcpxgsm9h7fi({wj}E^nJbO!mKvJ_7}H*2;WERFZwPa|(Y1oF9HCr1 zN}*1vN=j{dz0GpLBoBDyq!>D(%4V&t!pn2rJk}fPwDwpe-7$)h&{3n@IX*iOyA*+{ z;~55~mg~boM-%D)MuDvblcMw1aA#@N#2Vry&NC%;G z5KIT*bP&*HyH0bh@NU6*Up&Pxol|#7v9PQdD45;N>lIdaGS)rIwl+ke;LEq;;l;)` zFYa3xxJVdPWziBM;)^E#ty{B{VEf*a{*EZWPhLKps4N5|SGs!;Pl&V+15!UwFJmu- zAKQ+%=6$B&Y;L&*LpXjWb9o2*3bZk)Lp2?q!W!2gLX_wT7F@InY8-`BCdGQ@L0dd$ zU(MW^$ART#q|-8Za9^Xtil0ncg$qbIhumA#6yY`Mq|gH4 zQ57QD6+6{AjbH<^8e`vZhkez?Dt}P6#BrKc?t_~9Aq%Wzre-094VB4ys4dyYdvs_d z0Pbc;KzJ#Z>+98W3VGD5N?CmQS=Y{HG| zSMOv@-sKgs?p7cGy5jM5o)C>D$NPnG@r4eZuW+B>nvoE^vUBEpxlEWyzdRrgL~$^V z6ImZ43(-eTCO=kD10fLx^Be>s!!PA6m9M+lp$fo;tf^LwOPIr}l8bn)3u_a@FvH>& zE!C^MLVtXeV-s1HU?}FZVo&G>HhVU3iT(h1G@JQc>X{Pe&BC1SLJ^WpYcs&Afk!JA zv(U9!9Lxl2lte9QnHe>Xwmfd$&?L1nNXsRfbiC*iy-$MJ~8oU>c$fnrV@x zOWtu|3Y`nn{f4Ep0*Az8SL~J*gTMRPgqJHb8HdyXNz+;G7`;N zUsb%xNS4F{Wu2B5p^Ln`m5~bajX0C+#afvnej7vF!nO^Hxl<*0NAe`~+OFN_63sws z*V1KINm7Q#fSbU^oXY!_N~1?Qv8w6Fs@JMLUr7LUVUQ&g{G!FTaWAz*?z`_TrjyfN zS6ZTZfZt2wi!;daF1SyHWJV;x?D9r6`SUK7-|_ywi^DWxQ7ubJ&4S_UnKqMEK{Hhj z)RdyeKAMkeR%xS(TU>ZZ<1m~i z#S2^{T;+rdi4-SS&R9K`GyD|IHmr*(vfHCVXI@ltFk7aup~Z17c3scHRv1FlPMM&eLTa(b1v|Xw{e_>>HRuy_G zbGVpbwG)%@%t*#<)@S&GqqoEU3d{sWp9ZY%GD_yzL{_UAhItsEOIax=mOaQEt8FZ- z#d;NG?5}h1FmlWHU|_5{i5ZSoK7DD6Wvx^+z%G0^ghSZW;V_itSLruRFc&kzA9`x? zPqWA>vY6*D3&Ef!_H=;i8pxgq#!84TWT`C#gBGfJ=lw00qmhZ6axHxIJ-nVxq9Dov zwOF7=T9RgIktJkO+e)Ohi)-0AZhK31#%dApPlba>zWf)%LSbw5WV@4EsStCKRh5v)Bm)$`R;zTFg{`h-DVK7~qL#~o7M)YbB3DQk!T0B=6C$o%@jWWu7j*r=$k+Z0ssA#=sa5D-a`Q2q2urXA?c z-(PVE60Rrl-Q~zqclE!*qqVpS2uEjZCpP|q!STV_TTkbQT3(A%W$W_V%!q)ND5lbf zH}tv-nn==O_mC74{3(?rvCN7E)45x*vnchC7~Wz-x|WKUYUfi=lphp%F|}P*S06Ns z!qi;t-#}AZD_xi2S71a27a|GhYQ^w=#g*59stVd{d14mVVa;_z9E{X`5_+tG%lHyy z&T@JKaTa;J<7!P@>C2XY>`|4|m#(y6C~Jnw4ZG~|h9pMg=99emDJ1AKmPH=JYd^@X zdO&zj#E9{mDkHU$RIYZo!of=Fu5k!s&q6pm8G?5@pB-? zC~9?T;;Mh8eiA;+)Gy|^egr3z1$6LtN%+YWzyDbJT@vhHaTL`cy!e$YIllfi8~{U7 z%_!M}Fa2DuF5o%{iA5+H+|$ z0*%>8l)Q2P00000000000001Zob6lbZ`(K)|L(tn)1s-BSc#K1X(!j9(_;}#kDyJl zyVxBRvPH*4WYI%ONt&Yn`@VyssmpOXEf%v_erRR#@$vB;KRzDWS{EvvOrk8`9E&g% z_$6XF*0D;@dtzNY*YnRtolkSoe;$bKpMTyBcZS2q;!R{O#Irb&2B}_YBgQ(7RjzcJ z2|W?9%5tMd1y+bCjYW~kfykr;x{_n6b2XMAfVfH2XmbjjwtBt$Djg?9EXBPW=$&j% z?|D@qY;L5?8nsE3%SI*53o4;@lE!i(o_%<8^7d7)x3w;wC5gTgvuHe3se~!dB~YZf z(DPi))J;T!Phehio#i2LHF8GnP-EnxVzVcN_%+I8ETBU!vm7)haxG$zXn>8UJ~?)t zNMnE;nD1kIC{Fd2G^fwS-yVrR=``T_Hz%hb#QWXha47okL5b32;i;UOOs7O~S{1F0 zb*fW|UvIUT$tWvKG)iE)Y66rp9m`Sz=&y>II5{~15ojbk21v2@bhrl+yj2%TKsEw( zqBc+8eK3KdKkZYl@MKBkEBpFp*86Xt8$VEPt!pN*ha`I?VvLLcq zl#i!k^cl=13eZ3zq=F6xT~o+Z7w1!O&v`*+2X6SKGUO6nMk+yFq6k15hk6o@5B$(LV`^|FV?!+(>dyjvsvK@$-2EO?e=JNCI0}NnL12VJhfvFsG zFhh7qoI^H8pM&7dr|`=FKd|9u4?Dd~bMsk5Sys&Egb4doO$AJq%kX%H);u~AuV23P zn#?RbCe3~VzQ;#mueA-$3XMCvPkpY2Dr{;Q(zPkwH3KaQMQ4=CK}ZHSEF@c*`Z%3JgCRXt|kVuC5oV1SOE2~6|A_GDiG@qwp-w5d;}kdobn5de~7#4|$rLj)=}BL=(5jBG{#$<^y;XD>f}ID3Ec{H!`g z3{JZ+b2&!o$u1TqM$af86jK>N9zxtX6{xVg%G8ZKsI$9LX$)x{wjnayNTU%0a5*n9 z_)3Dh0tc$tD7$EA8Y>ALCdvT!L|)1S7gleX${MWVJF%)|nf{b81FGrIGJ}=dDBu98 z8ik6a%&0Dio;P|!Ut(<+xjCe)m`M$IF;oaY(`957 zs@@65?MI^Dy<7zBgWjqE(SKB16++yCC6y|eoS2)i*Ep_oLWq?dr%$5;j!*Um`GEeMld3!x^r5XLQ9 z2oJf1J#Ep%I7e-SMy`c`i&cSebL1!OR?!p_uED|!x5d@A51pSt@JmD+TUN6;mc_PZ4(!JOHxff01wS`j4LhPW|(}N$w?5q2t9pe#O^Iyb&jV<(h zNgZoYYvzd`%HBTXkWVHp}7(PpQ5&vAx%&KGYm9&7&xj zb?re@i;1dZV!=UR zs6plUBLy~q`WCZLNPwxJ$*VO&Dl&x4wy(?my2Z=bt`7=wF!)vXt)8zZ zRWTOQVjt4t3Z!9)H7*SMbtk?R+uQ`&tk-3^+i?!d3c*TiU74-5#VbusQ4Vx_&|1-! z2JVVMTgw063(u7$`14Y%AW0J}nl)sn)$pS`fviuTm>yGJ*`)x^QfC?FxP40T*8>0# z-eNoN%C!~~Xd6Z2i+k;ptQ;WY8EA*mjEpYY@YG9m{qjxVh-C#xbknn-h`;Noh@~E} zoXx|&AaG|gn7KQ4%AFW?1ctQ>xn;c_nBjFCkkPh@_EOc;jaKo9W!TuVRv`j!LDE~e zS>QS5O~taf`EIVm%vN$AEFCU{r5RUPNQXz|yuGbm+uZGrsgYyixsx=X!78(vPQ|zb zZ!2R$JoBb4Y;{q8SWx*Pt;*h@=n8r!SMh4F55PqrbS-OgsY~m+M(Gnbf`D)K5 z`(fBv(CWn+g=5JcNYKd)_%XG0hmafY4nE*AV7Bj}AAER>VWPQ+j4tq!@>We(jk{rY z*~^U#1_r};8}PQWk|)^9ssB-jxIIeC;#;%SS4B~LShKRKun?BsVx+RHs9G#5sTa%L zRgC2>YR1wQdsyxme>C*>i_Y#WcdXM~ofo>uZePE!xcFQlF8>d{KOTIoV5pyCv9m0v zxZAXUB(*i>qq`&;=u7NI-$@9|5VW=(EH&urY**Qga5yf@r5ezIr9A47m679>90^0A zYf6|^tJJ?wr(1R-m*!o683(EdMR!K}SNEvuFPDh%@y6ccpqXrg>38VR9`E=n7kq7| zublC?!`ltf@7O^Hzc=S`uJLIg9Rn>pPU;AZ)pkNCU&{_?g`H2!j%OiP%PH>?)i%`Y zUB%XwTe%PT2E|&X;&tURX-U{eJ4?=_E7vr)9qBjs`TlDz*yz`{_*DboQ?S}WURC?G z8GNbnTH*=zpnuC#`MqVLG<=~|5{D%2jSF64xaT3k;$nE;SC`1 zp*%~c4|6bLWeXpa`sd34>T`TtqMRbga|SQZXOI^BGU1K2!Ys#nvk>{5=rSs^?TmN zQ4yJ;;})q>c6OiOm`EK8!rpzVgHd_CMRU4Q-Q6sVxVWPAA5 zECpvH1NT&C@eUcmkr{oM%Q3#kqEj92WI-F&Nla=KKgR%3^rbXOG@sKkaTF7~EXPNU znENohm)G+|jX@bB15Bp)0z6h@euUp2m5$U@3do94CjTf<&GanB&hiT6#^xFj(fjWz1uJXIW^xOH*Z3IP z0E8HwBzX6T^02P^oSVUt5slDs=#L4?x9a+m#*WME_f14a=bp3VT}{D%VNrB}=Y@1JcmlsD8qw`b03jtZ+s3`n42j&Fc%{viXA zJD;`lS~!?;uQFOGs%W(Zt@L((azp>e*1p`EeoH^R&SnoR-Bhx#JbtxQ&ThXWS2A>_ zUr-TYRcTkebbtDqfaLdoBz`OsPWx>sXEyu!)5leRTg(ObZ47R6N|cRhC`3y zKWfOD*Usb+5jsV@!)0c9_!hm5I(0jw@}%cZ4GZ16>f_Ge7P9{9qgBod%1S$3$ur<8 z-M8{$(8S;jcaHbG-iANTEYu3tFjNQzbxtg~_I~fec{#Hp%0qVDWAEDNaMQNKz|S)O zdtt_Yk7Y)kR}RIkIQVY-hWi)Q5U*2%2iv`Db?T&mX|`LxZiE%luieLs=E Y|3HFrd`_NVFrW4O{UQ4ofA5$B0Iocd_y7O^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/inffixed.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/inffixed.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4ede09473757e355c9398bfe86db75b8f0e1fb65 GIT binary patch literal 1635 zcwPZx2Auf-0RRC20000000tuf02s#r0000000061|NsC0|NsBd^X@~fJ}vr+m>yHo zV9W(gt8+>K00000000000001ZoQ;^fa@;l)hI>B+%0#o4i93-@3RfOCF4CmPq}U5( zZL-?c>{2svGeN`+tYs?LGVWk&WxkVPJQs zGusW@({6wK&ca*f|1(@Zu<73o`!XDd^Lq4;*H7c=VLk4*>%-v(+x%b;>wkuD;-{Z) z=k1?9goXdsAD@5!_VwGBU)XrRzj(v`Qop9iuJA{JF>Vd1R+MZ)9NmhsVS4FdWCQlb&u*50B^Ja+w|-_M7wi>!Uvhl>W_v_>L;g)^QzDRDJjy@{y68q1axxFtUx=df)`mY@?V@MD?3`ZaQpPGxm z*l+BaKFFS(S=m+hvU=`T{i>%0H+~_)ifg~*z27A{z2#zFss3e^Y;`NQ;%<7!C##&S zIWsS0Jm+^AdWSEH!c@O9YThk`BAaBX@8^Y}OQKe0n4-`K%<8OI9_kb{$;BwyrDvk_Oo& z7ZqHkip{UQQHerTnRm2X&~6@_@g3oJ!v#U+4P{I4MYclQh~zTdLeY>Nv=moVsxtFa zdVBJjjP^J;y$V_7Mp9O#MpjiBq(+HDf5!Aui#u{v!c~JpR^27ZWrOY#@RXX%(I$a9 zEypKh*Ps^#MW#`*kfe}Q?vPY!7bU7$O!JI|q`)kuOJTYwTYc5@!5O3GfsIp^v?UbrhLIds*}+9Hn$yG?!d9*W@v!!O?Dss%k?W>yRu#=1r9>5hNmZENXzf zDbx(g!_m5B=DiJ+EX>VPWRW+Ejt$ZZkuB1NnO6=Si;^XgC8woC$JU*SL{LhMM#q{; zWNDMoRcnQWKy7EEWL{fzY*MZyvQm9`sKb(ciN5FzarC~KIXQe>-a8IJ7sXxZc`Wlm9Ld7p-= zY6wMvS=3D94uiEE$)mYM3pEYzbZT9fKhgxWO`!r5F`TX=7Fs$=Y0G3#e}(EpAIRLW5*orCisL)-^;nC)uLALiMj9?VMB$>Vjko?Mg_C zG0TxQy4oh$lDQg4s~aNQAld4Uy^6H964{(&i`EKUbq#6fih(AVBwIjNLRuJGAZ>It zk*v%_wvetjk#=^XL9)8)uB%9k5k&ks$(Bfu>^6~h?pP?-l4J|zN=TcOYk{;eutc&b zXsuigq=j-pWM3iKg1N3Et!#*FPO?RRSpYm*Hb>gIWieYh$rjL+kXFAmkv1AlB=wi5BbytS8xNUQ!jY&-;%X5(} zsjGps0G>=_8zft&{wmU9x|$@LEWHb9=Z;Mm*n(sW=t@XSyB0_rpCppSU0cm!3u$qK zWg^=k*@ai{Kw5;|CfP!|d`iNTmtSA|Nq4uujMHzrviwQcN2-H93h5U@&-$ikb@mnT zEJ&oFL-B;3UU$pCHT_WN`1^ner;Y6A(bu7ug_=%>0rct8QKf~iroRtdnH?Q2I5C|S zU4#TN84XHdCQBXJ7UX*P-a_wm)a?+1nelj9Tg0H{d?;JoaX7krGu$rJ^Z?SGSu_1(uHCAk0q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/inflate.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/inflate.c.i new file mode 100644 index 0000000000000000000000000000000000000000..c2bbed2f2673be8fea95d249a88af44b58ecd705 GIT binary patch literal 11663 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/inftrees.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/inftrees.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6dfc59247ecf0ff2e2ec59e8eda7ef9dbd707fbb GIT binary patch literal 1112 zcwPZm1gHA|0RRC20000000bBS00~6^0000000061|NsC0|NsByOh$Rs$ZGH_Yw~K< zWdX*YfK4(000000000000001ZoQ+mpPwPeyeb29$sxJ^Ffgq4B7xe-0af?(yx=^)m z)!JUiTkKtTcMarL{qH?9YdZmQtNJ0b_v6f&vu9>=FePKl=(P@uiso~wv?{cx=%@>N zGnY?jN*AtOd$Xz{?Op8C^7Qm%esp+vLbu94(Rop8&#SJTr`*}XMB{8AS5jd@^d{?g zfRrs5dPYHOtQ!!mizerQ^sP48q5{&vWO6X2-_F0@-Q0coOtCV7N>ghJmFwz)rr0y3 zOfy_T*_u?_)+SdHcR@FiOqdW+t9)b{u>yY6*1FL)%Bo>BcTMYc2t0)7Uir1~O#4HZ z{i*ZFn&g$TE4`retw;kMXX~|ymJ(Qu89YSa<+1acN=Q@a+!e;ID5|W6vP4%ZuLzV7 zwDs=U6grSL;N_VdGr%!8-z3Ub>jLS5OyPvQYqd{PUjNnU5R(`wuR`NR#RO95SKf*5 z6g&l;5m=eHiLI!0#>V6V1(7R0SnBu4_JkFvamXq&F>I79AP+e45>^O{UMf98RDDoL zyE9G-GQ(VLFr#XD)pivt&}0ZUld?IlvA`y3Q}YAH^WkAgIQTv9pws%+B4cbsK>EjW?QGoyzR#qQ;P_-5rGu`6Z76fJh8k7&hiu>5|13cd`-kSk z`HaI64~A2;+E|p04E^vE9e(s>TDGZx0cNT3F#3+OmZ|@6c*0mN2ZpF&u`$FM(UQjaxRVL(jz>gqz0BIgWm+<;cI2}P4+IFD5PbWvxyi>jhy{M83-xDXNX?hSL^wqB-7jY`4I<;iL zb+tG}*_|x*`xFp;lLzEPf21etUf^2Jg0aL543cSXG^X#z=ueh{Dz#L|k0=jgHC^4^ z|N7-;IyyZ5G>+Y#|9;8jMb<}@67w3`Mb;VIYMd7T3rP0bE;)_E?F;VW{_^T!Ca=F- z-SuymHxG{wy?=QRJPZ?P&mB6x^)20B@9hoih<|493+MX$D@`GPNZ{XnHZ==4oP%T| eo6~Q)U;ZbC>`2{V7o8X9pZ539CjSD|vi!}g^&|)Y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/trees.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/trees.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2ed7e1159b5a88efa3117866d60b59639cd7610c GIT binary patch literal 12022 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/uncompr.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/uncompr.c.i new file mode 100644 index 0000000000000000000000000000000000000000..226749de8d2796483bf01dcb17a9676827c7bebd GIT binary patch literal 1010 zcwPbW0}cED0RRC20000000XiB00>+F0000000061|NsC0|Ns90C5}O(>WKwS0Ii|G z6uX|}^L#)600000000000001ZoUK*gbJ|7_e&?^)#u*1OAbzw-$M(>vZE#EC;0_@( z9ltP#bV4_k?wGq1HYEAqyL%^)2+s7SdH}Td?YFz%?jGG16f#ozT89yIIuLXB!i@n2 zInR~e!m>ybt{c#TTeaS5u}Up8Zv*IGT)gcJdcB|FJ!i6$sbUR(Fp*{3kid6JL!@LZ ztWeT`N+1@-YOyTH08GYE7~TfMIpX%jQdtpk5E6EoScWMwbsLRt3x02&1@L+jUsegX zH_#6UfGPai?Ok;Hedxcv91Jc87Z9_Jh{H%_9LCRUcT{J>gGih>RErJgURv1UOMPYJ|;~b?-3X_8>tP$98ry0&(nHXxb_aq5$ z8Z^_}Fd!1I<+HFSQnJVvEIX>NR$bW(KLc|Lkzn;s;)qGov@kyPqt$y#X>=2TAIyT1 zv=Yf)X(88z^@qrp=WP9k$6>?AsI&#mZJ}}X9v2TE$lVlCg!VQXK8`;w#E!im+Lai_!J``iP}0#0>z^MM~>p zZK)PqSKJ7A9RK~-!)#tJs!8%6n$Rw1zFn<|YZu($b|lau*p)LB_e!ox3!=Oc?1oB#Uo08=rcdo^+!pN2WGJc|928QmSrlUDDKCCmM7>P<+4jO{(~Tb zz7GJ0z^>qdkV(cYpGaYw=iVu((j*L~L_2awr|RYr!`_=V;%+jXeERbxo=@}H_!_rs zItsu~jUN(6F_!UnIn@1!^*38uko}Zu2&k%Y+aNwioplr2vRls_k g^#09#?%RSDmjT@01a<8tIZkV-(|&9G3qRqetqup{GXMYp literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/zconf.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/zconf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a2cff9deb31bc93fc044d3e09297baefffc1ee1b GIT binary patch literal 3404 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 Vpx(RbRdQ1`%kgm*d;=y9%1yjy?AQPR literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.h.i new file mode 100644 index 0000000000000000000000000000000000000000..aaae13670df4c23f18d03aa598da80cbceefc573 GIT binary patch literal 18409 zcwPV=K;gdt0RRC20000007t0+0RoHw0000000061|NsC0|NsA=h9|shFtOmByDh{c zijmw(l6@2a00000000000001ZoaKG}bK6Fe=)r< zh1=V6dC_FmES+SooVn&Aa}V*ihi;w~S(Pr_YF(|$I&+h9xvH|d&db8V165jG?>Kjv zRrJmN=wS3XasRqrT)X}6nv298JbLtG2cCFYuCA+me$lwW%c0x<{`)6;_>=qBEG_mH z<$C3QO!Ec2mKIa@HmyFn!|5Wc@YN3&dF|?Q)?B4k=HTyDRbJ-PZ0a7S^CJU5C^M5B;k4gp)iP&9!B2A>9;V!s z2(TTv8;0>3Y)O;$1rVRFqeXY&u`!uEOsKSDtXwa1Q0-Ss^3enbom`Bv>3W9`DvXylDN^wgwi&h$ zuzF1^LvErB1F<~K>Iuw?A2@yevUY=0Ksrz$zD*2ciJMj^G4__KJpON+kG&av^m^l7%AAfX%X*OHH=IgI~a_E5r zegJWxzm9fxzuDROV?Hb3HTUbA;}_>Y?fen`&fz%ANBEh}Yvvx@Ov++5x_CgZ;2Y=X zlhtBf3pYSUo_$V10A=_%K+B62%p3_9>3_LQR}Zr( z&?7u(2OFb21qP83Pl6-1@aXN^7ZzxQ(zL-V5SO7=;H{mo#}efD02wp z=*bOm1kgO^;P*k$U*s?v;4kIxuPRt0tXg?IfQQ`zenMO$k>95zxXU#VMC$a&GZh$+ zc~fVLSwEXIxkl^{S+k+V$7pU=FD#s&V(dDKwf1rb(y(?W=Fy#pBJoM zjhXn;39CV~lqCx35*{eh1N?~R9K_7JP*n=}Sy~j?qV7RsG!Q~$jRixf$gm_!8{W;%uczy=n)6qxoBG>8WNhinrxk4b||&kG(KK(aCci$FMj zJ3*NP-3?DY@?qhZ0dODDPRopSoV)YIXRQzAz*Ir&VMI0o8bwx2 zuG?Hmjyg=Kj9L5zX1H@gl$ z2m>C&6AqS(57DeiFTDiiEIhqlj$tPNPxx@nzmkChbSZE>h&N?H8e3Ds_IeQX$rWP+ z62@h&g*!F_wu3nDnKN+x=YGy20%+2*v#0>WS16JntCL#SIGw9uK z_xkYE?ef+WM&KA-f<1^k0iw(rWqvM!X59__&HF);kZd;iDiupeM{_)yOvMwcb2s?+ za~DA%Om2Q#Xc_-8dGq+ID!;_1NII8n5U$c%VDe0f<UXTcEx|N{v!VK4jb=`^nAXG%Ta0FYbIx<|oJO|>F)YZWGgGZe z18t*koGtR~(#y=geQEM#W*{v~kUOeQ;&1xAj{F%EfO-8~p9hE)Xny#e8{knPioLo3 z&ae7WDiRiC<**H{taWUHR)RK?(n~B<^>JlZyEL31d{xqMz}3k-5S2)Qzn+IPUvwB2 zJ$$~%gl*b);mbK_Sp%R;5F_wD|M-U=1mv(E)-wIfuspZp_XcG05IR(KprffEbAgl&eA+CuH7Wd6<`hke-nz$}CTyQSzjaRX;N}_O1AQ~n7jK`G zlFY@Vn)Hx9OD5FcU=H3=)UyolwBev3)`mmllZB>}unfV|_m12AZ!78lJsfGnmi%|j zm;A@Tm{3*g*m>*K6q&oK2FRFHqu^QiPoS70lxbCxHZS`(a>q><5_?#uL8e<+C0UH5 z=yrhh&Jpy0CWoVRlZm)VMAonyLZp>inP_0D4TNtR1Naa&lpO-hF3BFRGqo;vn8Z5H zkd|{!R_YyAX1=UOlP8qt#FELop}TK*Dih(5*5b9QYQoYgt>C!fftiu{FGhY_?26-0 z+yg*fv-N`CfO(fogd|4NGA%%z!Q(QD?C)s7O#`MnY5yu}#0PB9O-thi%WMcoRR$8Y zFuaq`l(7h0}ig`p9X%*qV3AH5YiE5Jv%hNml_8S1SVJ zH(Z_0WTNj1xBql+3`F7Wt=LrF1kI5SZM3i*;@V(40>gRwz7d zM=Bi2bTYosX^pVNQB+?q$K}GkJ^Z(`qaV+oe)}_fK+&Byb%PovB)-Do$o+D7dUAa7 z<1<{<+p|~i&JrRR=C8GE1QVSs3-QgkCL-#YKj^`*;9WkS>Z6h6S*H`tD58F2>QX*goc{ER+d-g+kFzKw4`)B@f7{vxf8d3q zs4XRt7O_dp!4!`G#u(}*pP-}>B+V%pRb}KP0%kQMCta9m5`bTnG}c8Xh7Ovqva)^^ zm{?ePjdQ3|Rd&VE(TEApZ}4;mz;|GF>qS}tfe3Nhhd@Z;E&v^bZ_!q-u3@dFYgaeKO7&vk)QVwh%!_Oc_g&V zU(e6}a`I9hLw^SH1sEhiGQY#W1M|ykU}WK!$M%=wlVhEgbKja@Uc7nt@@K!aCm?}Q z_>@f_J=+2PEX&R!fyxmw^xTB4&@ho@3H;u?a^ER z6a4nA{q4oa*Y>w3_BV-W_yL~|5rd~JTF}{4d)Z+Q$Tu4T5+iq#&EdRV0@vOZ%#-LR zJ04iXs;qPT+5Q%e>MEl^Dl&HFfE*GAW2;N1FWlsG56H$*JO0cInBLWGO-2Y=XF4j}9eUKskgV4Zw^p z)PN+*-3H7f`@=~fh28uZr&)vk4?j+5v?YL$u$mqyD|GO)ur;t56|-pUDnjjxh*0nU z!V|kp=vm@ALJND*V-S$3`AB~-mN+CkbBcoIW6T=vON`tDP2P1K+mZ0DVSDsbg zx@c?oY6F5Q!-pV=7RkmQ&3p;ZAQV(6w&=WdUwG4VV?W_uHcmm_an@XAU@kwRS$_Wv zq3ydl2&kI~>m%$-2TA6^xD=K5$HQ=D>b1 z!k!Klp>|)`ys23Y0tK~RPbL5_iL{Q$r6c)8kqMf#l^b}2M-_uLb?n6J>|?^{h&2^a zl%o_D<%t8!A%_%3F2ZR?X#T+KD`}09_GwJWZeY0)Z_Bct(-txr7i-wz*z%5p8KW4L z8t5ZCB&*P2O-7Yj^D`D5s#{C`LC{=Twco}uHgXHnhnXkum`x6D=o+0O%k|_!Oqm+> zH4?5I>a3e`RkMT1Q#C;1oC}yO00J1@!7 zhlmvxi^(eF1i*yQl1NU-fZ~*Rst|F8mI+nwZ3c`+58J3xN9R`OXBS%}qIqW!5ke5c zJ&enbOhv*}!TuHk^%@?h$SD0hBkoJwbDGVobSh%D$HhVMcEo~?zyVAjoJIZ-T!+fnU^B;b2k2tw3 zC6ANO(uxlSo^a(oR`yDQ49PB9n}?j>-UtDiGNI}sPmy%|6rNmzS3Q5tMg5eJg-~w#TAb!w|JDIGP zYfNd?jSO60Nrvcya(58YGX0z{(MM-BT%Pgq#zXJt8eCHeF<4o$Vt|YXdW(fhci+hu z8NNl{v*7F`R5Cb4V~ojJDQZM@Nhv(yH;tTrNS5==vUwKCKFfsDD@JZ`jNxu|A?}1U z6&#$&glNDYdkm7Y7_g~>6eJp>@~F%N1$*o841pu!>giCYo(slFkm$%k7G=J~S%th% z(j-bG*}xCU%IaZ=Ve7h^6}*MKSpny|MVO`rWA3>2*2*r$ZV;r#yrwLLh8Z|)Ozh}_ zU7<`+l1`ep=Y<_$7M{G!%XQre?R)fc*#bqqb95tDFd0k_C!Jcduqn;meI(f$c}1JD z1YQAZ5z$ATRXA1c?AzRgvm7J7l<-2-vg+j~J4SKFwB0xxgf}RhE^>soGgRF` z)QBCEh6Fru4Jz2efXNwy3xE_7!lUVfpx#6BjsT4`@m6!#(indf@3xcxoDm&2BH=77 zE)dDmMzaFz{4=p6iiG%NV4f}&8C0-$Yhh?Ha`Eu<*JG7?S73i@%*R%yx<=Se1mp2bExq zb=qAUmF=)OCNZ9!VDsR4^l>};8f!wtid3D^JQvh*N)?~tQb{ZCAv`6-a4KJd!HHEaSYSmg+FFX3pDuM!F(b`u$qwpGgO>w90cy-S4|M3mt3in)1DKAm zjbO?wUQh}#h2Y2u9P1@MW0l`z4jbdJ*sPS;Qj>ICUTU^~2+sf}YqDJT{+UwGRN87D z8YjT6mvqLxh(tpXw}vwh2gJbh+C=jx@;dB{hO$iT3LY~!k6|BjHnE6Rq;6i8Q=3*N zcr-Ga-Wzz|IPn~Gc{6vKmg{kogk(J8bVUskw_=$~X?bF}u!TuPs?t*N$N(uqAiAXITx)aXbu+RBKQq1~AkpZHkNc_!BR4}qbi34gJ z!}s0*#n&j+EQvyGoWJVPW~?JL3akmyZ{{Faly5*aCtQ^W#2gKvX8jDvXpvZk51S~Q zrptw6W6bUno*d%D4f-;HzZPplK&bfN=6M2+*W-LL9w*8RnqC*_QoQ7vry*JrCsI=7B2RZj!QN`v)-)9d! z;p*91fP(eAxX+++Y2bnvQ_! zSDXi2u*OQFB;^!|2~GoXF<>*TRUk8qrF9PzE$KNB9>e+Q7&0T(y+1>hyvYTYb%7x~ z8g3RVGWeYX8v1;|#D8~4gS64$ul=1u8g~q6D0;pupz$hXpZyOFX<(*n2x6E31_8Qf z5F;Fn-#>_9GSz&!xRSLD6%n@grbu@NW+^Qjnv_`imi4|q^cf3~=jBU@TK=BlrWk{t z`#)riLHG51*K9&aT{F9|)6MH|#SY?Z(2cQ!9e2m*!ELbv@v_9!h=)lJdL$ON#10Tc z_lX{Ciya`W+oJ~`dK`v!8Oi}{_#pD!8S5@#6Ppr2M{$0sPnTdw! zeV9R0YGFXf!6ZHbqbnK*KkIcgA)QCbH8E9srSOw5(2j7-IndID7L5x_Z39d~-v^mn z3o|ma3{~|R<5XV6{AYQ#S{GDYO3^ZGV-ZM6w}lJYQSHicbC85rYU2T7IPq!B)vj@E zJm#2!b&78PQr_1zz9hJB4W4N=6e(zVjC}bs~1w)TE!#d4Y-= zgYp&)HYIUSzh!y~BcsR2r}0=~5uijG6FhNi|JlD z+oK`KO*740S;dp^etV&_^$Jn)SLQEmazg}o&7;+=fOgi77*%`Zu&eAjU}-0ekRf%` z^2JE|^gqEx=HG($d|q9Oh3-zT#gbD}bVy zYumvA9+!f@vBP|B@tVqJ)8mA4+z2iIYy3J8WvE%%w@`?iL;;M^{ z4DXBNT!~814uiyL5|Jk__HRcq+HQcvdk^K2!01DqXK%FEH&}zC{vIe` zRif{QF}2jSzB^a!QoMa@76Wk~)S`nRDq5kXqNhDR$>gU#`XN@Wr*GL)ZQ zq?1olYo?C6hRZy!3Y$ME9K@vhfr$I%{)-a_BQtmj{G4t;e zru0Ed;Q$n-G@4B@Cm%>m6(QN9>xDw)q+tb}6XZnfT^AF!rx#`UiMzmZ^xrB`Vr`Lp zMQ2}%Chnxf@?6AQs714>UAKC?|Ca<(&1&u!NR48E2&;X7`of)eiFI;>c6+$9C)VjU z{KI17>1A4=A`#ch$v%;v%RAJ=Be)5|%~%8%%)_+=)=Da#!tGUJ2YqppjZ=^QQInNW zY;(sKI1+iEHvkLM^6CX>HuoE6`R2ZJ)2h}GZzf8|gxrD~lbG(OHt{NOpQw4@O6r^0 zC7?YBysPFn2|1f$HVN_?OQKt9z|VxXFyp9#mE$b747Jtg)eaZ-r90%991>T^2Inc~ z4+$WCi|k$mHE3E!FpNzt6D1HsGYz)A=xh~60o`|_(f$+9s%!|gHEH*T`!(8PUt4EE z5u642?#5Xog%@#U9`g;~q(WPytU1ieu`~`pvrz`%VQ!SH8>i^`#wnyEDn1P^QMyq> zQdsUDEOAfPh^nMOYA5XNh1YpJn+jkt?(36OD<@XR?x-fSLy$xuCdzrUQ2-b*&Pt|n z(rS4uwkgLYSX0V&quIFF$Q34w)+VE@=4J)E48bg#QY3l*DKcmS4?j^4(v%A(JNmIs zT-%+tawSw0st!-tz_vl{D6|t5prJD{C7p)WT?vKcsYMv4pK`h9l2Upoh}LeyHjvmp zrEn4Bg2zI4tB`}<>7k|(cmZ(mJgtB7>MZ^TL>q z4iG#-{^z=BLbetdd+4lk@o-e`l6v$(a zf}+xb{RgCXJ{Svi1dNI*16XLu#l_9cKK zHsPpstXG==orZ8pUzI6Y+^R^5S**I!nst$NSiDc!#A*PoPm<~Ow0D?MNS7LCFqxVb z6qHDX=fQhEusfzuInHGO53KNp0_<~37Dv>c0uv4}^}ziE+`d1!~dx5)*>)7wUkIS`(dejPnkvb+O0I{1A-727-T`OBa2byl8-!f>2}l z1G_P!dt2oJS2mC?b;VY_7Fa}0_ghSNBicy@uDOe`=MjNRV zf;$G~J5!S<-(n8_c5-1$TZ1$yQ(;dHFCaB3fAUOLo0zNPH(ZIJY7@Mn}o~MNNFd-k3~@BJ20Dm zH3%!#*F{f_bo1XXMXhZwr7=Uv3$CLd;C&aws0#g#;ZVlm=<6!k56BK=vDSQDDfl_0%~V@F@$Ct^ z`CuLTAGNIaIERA-=(ZY@B;L?axI%?2iJB>5;kW8km;IzG@PZR2$ z9i8HfvSR-Xd(?>ivM|pi?T1`fSWsJ~lk4XJ+=O}~WA{sMV+nb2`AYu&&i_MT9`R$3!RlC0prrX4;{3Qu6JpQv6=&beeNG zR3#&)gS5ho=Cm>o#={7}Xm0JrfdalJetz)uK>N5$k)k#i=~X@%AdF5)yPj^Yx$`9E2vlzrZ~5l$waE;&@=n$BM!EgQ-Cbt`_80Dre{8J z>*}IhMC78{2P-#tg%{QT^^g@oi`r0iCo$w8t+m^)s78?z&BSl5{`giuc2Rypu#gg) zBkbEo5P^zg0lQH};j-Db+7YXGeVPZAO9V^|HG?{;@Q|*oo1!DO{FH9&SYYn-HE*cI z4O%X4qNvJ;HM_MFXfFfKv0k_r5x-fRo-Mi!UcT2-X+ZC6?xu_wHHfYhvpUFGCOS5P z!+zh= zR*5hyO2{awE@98aNPSd~m@ozQ*w$n7)mtBQQw_;|zcLxYTKlYv->gpKnUXL*;YE+A_Qr~oJACI+s3{};ZlEv-RD~* z-sc4yIa2a@Wg@LoyU`XcVW;|R4n~@(i9ZS{~N#tDBBgwnm=Z*qY33YnsK> znRFEzHN(jlRZGPO%H3|$Es$&z0q!%p10onP{%o@gGPcs_dK+FinFgT~kk`LE>8;v1 zr6oq>wB0vQe@BME`j~Z9@gt-$MwRol@w3kCwI2RfuJHjK>0in-5FQ%J=j@BV`%BC8 z^Z6pZxuY`)-zf4)_C>?M;mHfjonB*CV2U3I3Le(|638RJR$d|+5uFFaQ^wcict)ib z%pQ=|Q+TII3-M(H|F}L)_nU^MUPAMAmR97=_Aw!9psGG@v6eX&M%EN*W;~f|?{1+O zMOskO1_g1zUd5>8wIpoSU?F8Ulpe&P;?y*0<-Bm$mE_E&BNkiE0}5T8M$-ELM?+i^D-wml-0EzFuzbbe6+ZIQTo>Z-$mT z2^0~uejIjiU@*1Yp{9#$F(+eu>jAooI+)p;NAO-vn>MF$$S@^aDuI{MB-$Fy1C>dM zC-&~f<@*X_&|j4fG`?Sw4ktu*_m5_RMN37U;f<`e2FknAv|5(Sen>q={zV!^F4kPr z*5JMJ)37UW)(6uR<!; zw{+nsWiiO^bAJc+FsUug+ZZyg<9xrE{C+p<;x2KcpE%Xxt71msW-rRzu+-fd$(Cks zx|MLI1sr_Om|16T9DQxmjrO-^I8l2;u&2YidWogK?$h-1FpWs*B;qZE2_?0_&ee&% zelL;a7_oZjX1F*-U+Kgm-T^S)4K06ix7kUvMgE6M&q|>M^Ht*JzMrJ>9S1Cn{#}(q_ajy z7JZ62Hm9@NIthYC9`u%;>|276hVwt- z@R>CP)WJ$o0txK4HUWFQQVIqg3uz}EWz}lG0`)zGDnA4g7ny|Q%3z!Zb0D6=J+p;< zldUh#7H+MJENyMq&`uUkG_eOOUqTL4)QN(*97m`n>zLhvCQF!ksstJ$SQtzT&(-19 zqAIUVl6JdPk~3b!HK-Ts(cZ{qqojI>#UL$7{K`5l0q9|(1$9>ED`Mnjoq13~!R$St z!aX~2B|CrjrxcA*#vN!HC6+<1eE`cMTAsAG@yN^)7Ljbtv#6O$nPQAzXHvX0B1}8Q z*}h|`bMonnIE9`Y3%TvIw3EeWaHA92X5PWjc?1RBYiUeI34|u^E%EQ_+FJd+X&_rC zCSsK1D99(j4*r1aTf`+D^_82leea z;*m=5-1v9hMs|(ap+?O7w({a!%a%X2qO7lGeeM*J^sBYHf=x-Z7o(|79*!e|bEg zj%l3nR6Nx348aK2$WcZnRcM4F_=pgPqyE)z%Atym?uINXN~NQ#mi#^J(Oz$M0GitE z?HM6wpYm0}a$6;mmQvh>Pnx<=D@aOKW>uw;o>kcAW7W;Kh{)e}CbGsCzANq^tB zYR7egz9`FJhAXbCH*JerlxNr5rnjEy`%FlgMI3hJP64L!9*=+y*d?T*+y;BcZE;TA z)*r!_cgvaCai&tIUAte)_37Tb<-J_~dJ^sbPuWg>=oXXGnEt`w5qD9AXVc&D$jl4k6iP^y~X$`k``zkN=t!F^K5J{ z_?D3P|2AFE%Ji>G*E4-3Y`UINBfcQSA9y^x2uB?-@}Hr~G*Vd5V(2~Q^Z z4-iUjQA1B8S?tNBGiu4%qX_Ugp#3LN1s>vqHx5-cH-9 zF^cx02IQkW>T)FwU(CQ!d%1Cj4g(|YB2u~e9Jc%|ohV=2Yj2bCy%Q5?C%$~o=rV<) zH^i53i7wN2wolD}TX0#%|MB+^F1JUb{1@ABcvFNKvkn`Ik9tzw8hRb|jul0gLoUs2 zR$8((v~0C^N0}5+Q}YQo>-WAdZHHk5siTbiH{Mak&YH+qM!xc1D0}-Xj#!)Y=49nbnjPueG6I?lm^gVG;|5yP#xZWU zDgNcj9os$YfToDTph=xbhB0x8lId0z6k>k}+Zh2Ao3DNFRDyBTV=8AiiV2<=G?1^O zB;JfZWsPfVkyy3PA_rcoi+Oqa5^tjT;CCOtL11`}S&henq3&i6X}32-;WG&@o-fnS zIL`F08uBs+_YF!K2@u1?-eEqkj!r>(Hl#Je9|0D8n}iBy^9A{P`-X?5=@;Y! zz#sy>4C58t15EP`a6PQV`Ch>~6*`4@@dA2#`Vhi>oAGCY0tz5rN{qK0M)?}JLmX6( zlOZ${VqGk>BRDUvbFrchLFbXNFR3IOXN6Dv&a=`XU{=3yb2uk5Z9_5u_wMV+youD7xRlxt;<)YO4XE2XVn$QbE}>~_Y8MSR4W5$9M=%eBZ_K^C_xB}`Mf z8pY(qRY*)IZ>|%`#L+N8;CsNaOrT)YR=503B;w8VP4!EiNL%=YdH47`ujE#2MzM8D zSeehQ7kTS|AgVmOwA&uM&{QsAM08s{`|%$mX$4!aZn%Ps?+&_mD>{eX8EK+|Y{$Jm zJaxMartem>*s|PyshNa`qqeae4OlERw@6Oe#-x^<95KsVl3O&hWy^J45x=!*OOjNw z#}CP`IvmHBaJMun)w?7( z1Hv6~Gk(*$CGH5!JjTb~IUP_88e5YcY%uOUWTsmueQ7iMPkhMEJwEuE8-B=JzFKJQ zL-iE6m%inu*RotSU_vqB?h5tJWibu;ss-*^#puOe#X0HD|5>i88a2^LJi0b zCw;J+7w2e<4~dh|<B|p zLyHc*ZA-5NiS|h3_XZw;eu6k)&gQ<&dFvi=<%483N0L%Ry(*=^W2-&yx=?&FhITsS zq%EAiu}rDO*kk~$)Y|xrO^6~v^6PR_o&!Z?L{OTsj;I)kWteY2fj!qOf=y1uaSp~6%JtPC`-37fFjvC_VHXH2}%=IxkzFFj|#F)0% zjDntGQ;nVPR@I2XspVhSJyN}g@x>2uFU~$^%S^l3+OG?%l#Hb!74MfwqWcZrwqJT$DzZ z&p;)d`zK&0L!kumoa^{PLM?|6H6;;_B-z5O(}}U_FXE6Get`_jdo^q_TC3z8m0abg zG6nQf?Crt(lnf$8FCvzhH0o?`4~Oqrs!t3QL7@2GfR!B<i15tGHf(@G3u;oq^vt!V`rODNp>S|vpp%mf(J+l(QGiltdMy~#indL%;rYx z%1JvGHqRpllh?8R+cOE8n{l>#ZoC0r$A=kXgA5cZKa&h)vjX2Hx@fmV2%z<3aJeg= zW&yz}!KMoa|NW60joLu>9GqiQ^CH~R^IG~~xONb$LNe5hy_R(ECQi?YZu*q8K0WQ~ zB!xL^W2kF7t9IvWNkrtFtFqE&C_aN*`>Vk*qim2gzBI^t4@KneMP7r}oWgAl>O7m$ z(atOP*K({#dZ!)mdbv}$Aae6@5UxV=MI%Qp-&luxH+(*#J;r40rWDoH%hP;5jJ;H> zXOH~ls`e7A$ii=THpG$@rfqq!)if}h zb&hRW#E6ZFfY+&PMZEfY7Z>5$I^~U6i}*_~bHRz*`*(1))3tVwvHOS9^1Waj;$Nv& zyxN@x1oSp`E)y4R%;&tntmF)4*4*-zKo3I>IpWE>QMg4n(5T$srB0|@BlBXQ-Qnh( z*lXEQvBkc{Gz=S2=-7ex=(Q1%Afxa0?1Q-J1{x z8=kkI0q?8;QL`NT>no<&cs?aJbU|R+#>kz@yTl}CC4Zk zeDZaDuo_s*uWycDod0rsa`^rj9|CK!r0kR+7_`Jp9#SoXH7YHE2Vncp+#@%@kWO`( zO^3XQcZKXpL(bmuI$x0UXh2@&jH?V2(-<8Mw!J!?acI0+XG29jp!mhd<2SFk(K*bO zfH}G8i0`Nhm-OOrlDo)v5DApWfT+Km9KJn%dH(YB<@txh7jKRNFpOHk0Gpm;?>i2Hw%863aIvHcqAR07L|63!8_A(Vvs5z*cJ9)L9Rvc<`|HEA4@YMoEWSe9C@$GV zc~=%d;+Vl{dN%n!4Fc^TIe6T+Ov=h!RlqW4ywIZY4XNfg^22~^Oe%n@8^6SF5#A5( zvfc$w27lDMIMIFT?o{(t6)edP9)S`%UsIW)za=#@Dh&X8!oYS59+DyM%J>GX&WS8i zY{xqRdHDwc@|1z7NRj$kghV7@zyPX29q?Vp)p+z80|7kEmT8V{yL82W+I!sQLe$`C zn{}V1;E#5s&bU`oxiUVaaa!{|Y(VaNKpFg)2QYFUO7@@Uv+LkX zM%RBr?a9P+yn;ZJoGY zs?Vo3L3;IXz%;eDMJNdHk&MuBE3ef(PQg#1*|B`ukmv zPfXswW!?Fg(6{0UA@v)1i`ETlp`3G@c^9FO&czm<9OL_o+au}^?A-Af#*amRyTq%W z3Ip;{Y=K2C;&xoP=e%rW7a{KO8}W;K%fMG57y5s$6y(}DA#9lNMY-^q3uvxZJrN$c z9K#OOjRMgCSo%b~pQ@keDthg%82Y)kiqV@26xtAp;bp`H@zRPG4lUX*dA-DASW8D1 zS5L}S=In9!FAaFeI?Wg?u%FqHm}BE`jwxpc+5G*B)Gr9}LMO<6Fu|yFJ4IBlC3t zuYCVt$ZdJFIr=mAaQ2XdLG1~@sE4Nv zINYb`FHYgmNAaBWe39>6NP5OC z$s`Mr14~&UByG+PpW}M%lgq?%Yzw&o5ND^N^f`L-`MON)jUnmdoZ+pp17`JCB`v*n z11##m7qt+|U;ji|D-v3%EqlNSr_B_eScb6(ypSwj^ z3_&^oi(NwC%XaV%jrDSjvx6BUcQzd+G`S(esQn6K^buN**`08ea$z*pCC{dUyEUB{h6;EzkVnye_8kS^ zlwm88t2Wb1=bQDp`AwZQt8lxAAP?7=1RIS1{Hp6XsNz{Kr08LG6cX#C~KDl@iYqO`6`Gu37pMhfK^3qoYO(S}=L`B;o^{8Tjo=ZzHXW&70zeUszi*wlzi^FS8$423DjhW# zS$q3@B^8B^M{X;=+0oy|_g$eYk!UpP~6wt1%xdFFpOe6@3mheR^$0k zY@1F}joHe3brC-vJ_d+anUr?=jLmJb4On51ShHuKj;j58PX1!CX9`y(&eKo(*pOYy z3{@KItCZk@Euegrtgup@WIuy2HMO$oB*lPLw&^^^0 zl+*HWB2Jx~@er$<-M_t}+rxB|qGW9II*AMX#kVUA5Q5=FpnS#(&Hoy&5@++7Iy~&{ zvuxvMV?f;-JLAkfI=kA9M^6`O;n^pDO%JMxm?FKcOCaqU_pa+bF7#7$!xmk!MwoT} zdTZ&)x9N=VDy>(ENA!lK$$>P|hTpRZoa(AXDM$(|325Qh)R53SCFeK%<2VBf7>@iZ zTh@sR3TfYGZQx(eUmu?wpZ&y@4QTW7GAHWy*W2b)DQ6g=^N?f=lJvfkZ0DT(G)0CM z5vHA}7|zL$#%ArjN~e(t7jK`Wf5lsf8~;TLIqDPw5dNQTyQi9PDo%<{tZ#Vdd%^i` zP--YjMLbbE5g=>drLQAlsoqN;JUUV}Hv{0-#&Ow6Xyw!Oyoa{vnan=kPG3L6X+LyQ z4q$yk08C$JM@K(X4zTEva+inSK4RK=s(ZuyEra*26j!VE%cEcVXGmYC#? zSKW@bfEF7#VM>B;t}sIb7vOJ5@$-DHv_Rt5L~2ss?3YpqvkJ>jxrGSt+?C{i#9Qlo z8VFb`;{Y<&7LsFt_Ri;u0FIYg$~mxkVN@6&^U3CUVSEblerm^~eqo6ODp6#);4$(e z^y1F9Ai>KpJBvhUKALB{14#GGfQ(zb5Xfz}3F=dN!Ya5*|1FyF`|0;w35++yvvwMx z+ZGU|?@+`6GxJAp5~l96qYuN|`AL%j!`r%&KnK4EKVb8Rp?xh&5RBoHHsPxuRWCoD zZf+nB0;cR3_Jne`3;8z z?l!%A=1&f{`=b5wL51E3f|(1MrCX;%=w~nRmI-asEM`GuCe|0+q8zexD2G(tvbFDQ z+3%SB4ONWT0yH+RB^i35SJT?Xh{k%k>5xTD`~3ly83OTFGif9i=pCjuxQ^;dKSpS<%7y4^*X?tNc0Ay9;;RoVej zt9Ek_O}qt^EE-ThS!5tAs}A-f*Bd@#@lDOgf&nZQ1rn}QMnxAlrHgWow~esuhAr5b z$y#Tv%vCmEScfqQdYoOsW!hR0zz6X9D!sN2rfavPOSeN;)l46{gG?GJndk+A5RCyO0i=3#^H@<9^bs2&<_3zU; zlKN#WPqOmf)c3Mlg%^s`DWgg(;Y)htJyd-Du;`gC*}Z%x4O)qdoSckQfA;e9CEkYP z6;ZdpZHR%0g~}K`#=Yp zMZwYdq5H!RC>4k9Z%VLj$g+{G_n!0Pf9L;zY~be*Tv_FySf-0}`ew+dcmQwQNBPw>J^pGL@`f-|Jj>xKD zw1PVsF{P87r(5U+--2mB{jI5jbWx8py9VEU@zIClflIjUytkSo=y~V2?|9mKk2*q& zPrE<$)nw$}SJ@tS7J3-Arg3E=ac_yCR3!v)}b&ja9Zpv(5T?mgH- zO3~GBcRShLQ?u=4_l<)`n{#UH>6W97>*4ELVKE~Yue)`q88~|;!&Pf|fB4-`HRF#l zC$cge>TQ||)-j<*b&&!;Nsufb@-=+!*-&&Ao33Ch&G<7#<0e&EYo5jxFC)6G%3tHU z>s3$*tyOTIF7xb)OD@?2dq$N)Tkc!NkzFV#< z?VZf;KLeXbvKb#Xy9I0;ursH36|k+wmGpU;E#KS&!%$&6!9tRJWK@2=xScSV|YC3?i7gX0fP$S><(|AC*Fu7AMr z;16@DF@DPshsl3z*rtIW$}aK?@TluEfb%%`=hmC3i1j5 z3a{Qat(~1eg0k}m32F>}{rKVd&G}D5_fP*6zC3w%{_5k~w|_Z*b@cKL7fN$eYp0zE z&$;!&-|&n~*URPg^S?hw(TgINREF_-KEL(?kz56TMAzJ`*VE;Uuj}TB94O(R#Dv>y z$nJml=Cb#6pH|F~ZY&5MUF%+gyC-W<@jK`I8W~+1L?G%g0ss7bvRbTb{NK*s{kr(S Qhy~h%pK#6p1)mG*VVjxd00000 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.rc.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/zlib.rc.i new file mode 100644 index 0000000000000000000000000000000000000000..e220415caf53d76ef322e17c5e7af0565f05c585 GIT binary patch literal 579 zcwPZR0=)eI0RRC20000000IL500Vyj0000000061|NsC0|NsBsO@x8q^}L`3G-@}S z`a8L$cng>S00000000000001ZoNba{i<>|c#h>+4TwEwExJFI#5NHd=Kf$ii5EDa7 zAKtN3ecoxbY&Lxo=m!w?7C zV-ariI7=M>N5B8phL<>vGHsm|p|?yzh}WC_HiRVef-LpDB!M8#eQz7|t_~2zNjMa0 z;FzvCHEkttwpp5qbNT9Bi=*Wtt88}BFm3~T8B6dvO_*~ z2W$6z6KX}YI|fNINcnzwRc&oD0mdbCEw1!sxQbInER)QC0wb4#usR|X$Lxh0y)gjq zh&{6x_AHzkS8+0-h}9jc`#HiF*ju>;A*(5APbQQnB%sAo8HcyYo3QSvB$V_;RDTP8 zZvjwv$vy<5-$8)eQjkUx&I}WbKa@N}g(QNKpBsVORvDl~fyCvfZHxm7EZS?aW;m8> zO-E47Bo++O6rFKT^({tFCP+;b)F-k#(5fgM!5hJ=u9UaHABp1B5sWyWpU;@d)-Vla zL)$eC7ZRQ?;8FEwh*g3^j7r{MDG7Xl6`{(2f>SkbIm%0Lji}F?i`wi-_T&2Ke*$N* zm_NF*WME`~07oDWgt8g`L%}AyK(}pGj4u|e{Jf<)gOx|cWw|^95~!FHe9q^zx2JD# z$NEzzeTq(=EIfDK`?OF0`3FI4U1`sjCV3TTsy|mtTkf=UagEK~N3k_E4Tn}%YR=4z KVVGVhT>t=^zA*U! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/zutil.c.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/zutil.c.i new file mode 100644 index 0000000000000000000000000000000000000000..3354f242563d61d84a24331b9f17cbdd49e3d8bd GIT binary patch literal 2675 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/zutil.h.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/zutil.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e3d5c23b461c48f02b93aaac96be86a43f8c3968 GIT binary patch literal 2662 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 U=w)SGD$eR(A(W~A0}FgXGz&c@bN~PV literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/bootstrap.i b/CMakeLua/.hg/store/data/bootstrap.i new file mode 100644 index 0000000000000000000000000000000000000000..bbddd9a1fdc73604b0e3a9ac7b7fd700b7946125 GIT binary patch literal 10667 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 T61%Tenr!6HK!9w*Gll;jwCF}X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/cmake.1.i b/CMakeLua/.hg/store/data/cmake.1.i new file mode 100644 index 0000000000000000000000000000000000000000..881f9fe1109d6d7e959570fb3af06b4a7a6c7dfc GIT binary patch literal 1703 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/undo.dirstate b/CMakeLua/.hg/undo.dirstate new file mode 100644 index 0000000000000000000000000000000000000000..76495e8eb6a2b95fbdbe3d2c6e4950474d75ba1a GIT binary patch literal 105899 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

    %VmT-ORZz}wn3WZ#PKfGD!OznkZkf%j;=~`b$ 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hgignore b/CMakeLua/.hgignore new file mode 100644 index 0000000..dd86c30 --- /dev/null +++ b/CMakeLua/.hgignore @@ -0,0 +1,14 @@ +(^|/)CVS($|/) +(^|/)\.hg($|/) +(^|/)\.hgtags($|/) + +.DS_Store + +syntax: glob +*.orig +*.swp +*.tmp +*.rej +*~ +*.o + diff --git a/CMakeLua/CMakeCPack.cmake b/CMakeLua/CMakeCPack.cmake new file mode 100755 index 0000000..24eb061 --- /dev/null +++ b/CMakeLua/CMakeCPack.cmake @@ -0,0 +1,87 @@ +# If the cmake version includes cpack, use it +IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") + IF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake") + SET(CMAKE_INSTALL_MFC_LIBRARIES 1) + OPTION(CMAKE_INSTALL_DEBUG_LIBRARIES + "Install Microsoft runtime debug libraries with CMake." FALSE) + MARK_AS_ADVANCED(CMAKE_INSTALL_DEBUG_LIBRARIES) + INCLUDE(${CMake_SOURCE_DIR}/Modules/InstallRequiredSystemLibraries.cmake) + ENDIF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake") + CONFIGURE_FILE("${CMake_SOURCE_DIR}/CMakeCPackOptions.cmake.in" + "${CMake_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY) + SET(CPACK_PROJECT_CONFIG_FILE "${CMake_BINARY_DIR}/CMakeCPackOptions.cmake") + SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMake is a build tool") + SET(CPACK_PACKAGE_VENDOR "Kitware") + SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") + SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") + SET(CPACK_PACKAGE_VERSION_MAJOR "${CMake_VERSION_MAJOR}") + SET(CPACK_PACKAGE_VERSION_MINOR "${CMake_VERSION_MINOR}") +# if version date is set then use that as the patch + IF(CMake_VERSION_DATE) + SET(CPACK_PACKAGE_VERSION_PATCH "${CMake_VERSION_DATE}") + ELSE(CMake_VERSION_DATE) + SET(CPACK_PACKAGE_VERSION_PATCH "${CMake_VERSION_PATCH}") + ENDIF(CMake_VERSION_DATE) + SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") + SET(CPACK_SOURCE_PACKAGE_FILE_NAME + "cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") + IF(CMake_VERSION_RC) + SET(CPACK_SOURCE_PACKAGE_FILE_NAME + "${CPACK_SOURCE_PACKAGE_FILE_NAME}-RC-${CMake_VERSION_RC}") + ENDIF(CMake_VERSION_RC) + IF(NOT DEFINED CPACK_SYSTEM_NAME) + SET(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}) + ENDIF(NOT DEFINED CPACK_SYSTEM_NAME) + IF(${CPACK_SYSTEM_NAME} MATCHES Windows) + IF(CMAKE_CL_64) + SET(CPACK_SYSTEM_NAME win64-${CMAKE_SYSTEM_PROCESSOR}) + ELSE(CMAKE_CL_64) + SET(CPACK_SYSTEM_NAME win32-${CMAKE_SYSTEM_PROCESSOR}) + ENDIF(CMAKE_CL_64) + ENDIF(${CPACK_SYSTEM_NAME} MATCHES Windows) + IF(NOT DEFINED CPACK_PACKAGE_FILE_NAME) + SET(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}-${CPACK_SYSTEM_NAME}") + ENDIF(NOT DEFINED CPACK_PACKAGE_FILE_NAME) + SET(CPACK_PACKAGE_CONTACT "cmake@cmake.org") + IF(UNIX) + SET(CPACK_STRIP_FILES "bin/ccmake;bin/cmake;bin/cpack;bin/ctest") + SET(CPACK_SOURCE_STRIP_FILES "") + SET(CPACK_PACKAGE_EXECUTABLES "ccmake" "CMake") + ENDIF(UNIX) +# cygwin specific packaging stuff + IF(CYGWIN) + # if we are on cygwin and have cpack, then force the + # doc, data and man dirs to conform to cygwin style directories + SET(CMAKE_DOC_DIR "/share/doc/${CPACK_PACKAGE_FILE_NAME}") + SET(CMAKE_DATA_DIR "/share/${CPACK_PACKAGE_FILE_NAME}") + SET(CMAKE_MAN_DIR "/share/man") + # let the user know we just forced these values + MESSAGE(STATUS "Setup for Cygwin packaging") + MESSAGE(STATUS "Override cache CMAKE_DOC_DIR = ${CMAKE_DOC_DIR}") + MESSAGE(STATUS "Override cache CMAKE_DATA_DIR = ${CMAKE_DATA_DIR}") + MESSAGE(STATUS "Override cache CMAKE_MAN_DIR = ${CMAKE_MAN_DIR}") + + # setup the cygwin package name + SET(CPACK_PACKAGE_NAME cmake) + # setup the name of the package for cygwin cmake-2.4.3 + SET(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") + # the source has the same name as the binary + SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}) + # Create a cygwin version number in case there are changes for cygwin + # that are not reflected upstream in CMake + SET(CPACK_CYGWIN_PATCH_NUMBER 1) + # These files are required by the cmCPackCygwinSourceGenerator and the files + # put into the release tar files. + SET(CPACK_CYGWIN_BUILD_SCRIPT + "${CMake_BINARY_DIR}/@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.sh") + SET(CPACK_CYGWIN_PATCH_FILE + "${CMake_BINARY_DIR}/@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.patch") + # include the sub directory cmake file for cygwin that + # configures some files and adds some install targets + # this file uses some of the package file name variables + INCLUDE(Utilities/Release/Cygwin/CMakeLists.txt) + ENDIF(CYGWIN) + # include CPack model once all variables are set + INCLUDE(CPack) +ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") diff --git a/CMakeLua/CMakeCPackOptions.cmake.in b/CMakeLua/CMakeCPackOptions.cmake.in new file mode 100755 index 0000000..2a83e30 --- /dev/null +++ b/CMakeLua/CMakeCPackOptions.cmake.in @@ -0,0 +1,40 @@ +if(CPACK_GENERATOR MATCHES "NSIS") + # set the install/unistall icon used for the installer itself + # There is a bug in NSI that does not handle full unix paths properly. + SET(CPACK_NSIS_MUI_ICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeLogo.ico") + SET(CPACK_NSIS_MUI_UNIICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeLogo.ico") + # set the package header icon for MUI + SET(CPACK_PACKAGE_ICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeInstall.bmp") + # tell cpack to create links to the doc files + SET(CPACK_NSIS_MENU_LINKS + "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/CMakeSetup.html" "CMakeSetup Help" + "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html" "CMake Help" + "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake-properties.html" + "CMake Properties and Variables Help" + "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/ctest.html" "CTest Help" + "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake-modules.html" "CMake Modules Help" + "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake-commands.html" "CMake Commands Help" + "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cpack.html" "CPack Help" + "http://www.cmake.org" "CMake Web Site" + ) + # tell cpack the executables you want in the start menu as links + SET(CPACK_PACKAGE_EXECUTABLES "CMakeSetup" "CMake" ) + # tell cpack to create a desktop link to CMakeSetup + SET(CPACK_CREATE_DESKTOP_LINKS "CMakeSetup") + SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\CMakeSetup.exe") + SET(CPACK_NSIS_DISPLAY_NAME "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR} a cross-platform, open-source build system") + SET(CPACK_NSIS_HELP_LINK "http:\\\\www.cmake.org") + SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\www.kitware.com") + SET(CPACK_NSIS_CONTACT @CPACK_PACKAGE_CONTACT@) + SET(CPACK_NSIS_MODIFY_PATH ON) +endif(CPACK_GENERATOR MATCHES "NSIS") + +if(CPACK_GENERATOR MATCHES "CygwinSource") + # when packaging source make sure the .build directory is not included + SET(CPACK_SOURCE_IGNORE_FILES + "/CVS/" "/\\.build/" "/\\.svn/" "\\.swp$" "\\.#" "/#" "~$") +endif(CPACK_GENERATOR MATCHES "CygwinSource") + +if("${CPACK_GENERATOR}" STREQUAL "PackageMaker") + SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr") +endif("${CPACK_GENERATOR}" STREQUAL "PackageMaker") diff --git a/CMakeLua/CMakeGraphVizOptions.cmake b/CMakeLua/CMakeGraphVizOptions.cmake new file mode 100644 index 0000000..038f17e --- /dev/null +++ b/CMakeLua/CMakeGraphVizOptions.cmake @@ -0,0 +1 @@ +SET(GRAPHVIZ_IGNORE_TARGETS "tartest;testSystemTools;testRegistry;testProcess;testIOS;testHashSTL;testFail;testCommandLineArguments;xrtest;LIBCURL;foo") diff --git a/CMakeLua/CMakeLists.txt b/CMakeLua/CMakeLists.txt new file mode 100644 index 0000000..59bcc30 --- /dev/null +++ b/CMakeLua/CMakeLists.txt @@ -0,0 +1,478 @@ +PROJECT(CMake) +CMAKE_MINIMUM_REQUIRED(VERSION 2.2) # Need 2.4 for SUBDIRS +MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY) + + + +#----------------------------------------------------------------------- +# a macro to deal with system libraries, implemented as a macro +# simply to improve readability of the main script +#----------------------------------------------------------------------- +MACRO(CMAKE_HANDLE_SYSTEM_LIBRARIES) + # Third party libraries must be something that can be found. + IF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) + SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 1) + ELSE(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) + SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 0) + ENDIF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake) + + IF(CMAKE_ALLOW_SYSTEM_LIBRARIES) + # Options have dependencies. + INCLUDE(CMakeDependentOption) + + # Allow the user to enable/disable all system utility library options + # by setting CMAKE_USE_SYSTEM_LIBRARIES on the command line. + IF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_LIBRARIES_USER 1) + ENDIF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES) + IF(CMAKE_USE_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_LIBRARIES ON) + ELSE(CMAKE_USE_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_LIBRARIES OFF) + ENDIF(CMAKE_USE_SYSTEM_LIBRARIES) + IF(CMAKE_USE_SYSTEM_LIBRARIES_USER) + SET(CMAKE_USE_SYSTEM_CURL "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed curl" FORCE) + SET(CMAKE_USE_SYSTEM_EXPAT "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed expat" FORCE) + SET(CMAKE_USE_SYSTEM_XMLRPC "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed xmlrpc" FORCE) + SET(CMAKE_USE_SYSTEM_ZLIB "${CMAKE_USE_SYSTEM_LIBRARIES}" + CACHE BOOL "Use system-installed zlib" FORCE) + ENDIF(CMAKE_USE_SYSTEM_LIBRARIES_USER) + + # Optionally use system utility libraries. + OPTION(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" + ${CMAKE_USE_SYSTEM_LIBRARIES}) + OPTION(CMAKE_USE_SYSTEM_XMLRPC "Use system-installed xmlrpc" + ${CMAKE_USE_SYSTEM_LIBRARIES}) + CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat" + ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_XMLRPC" ON) + CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib" + ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_CURL" ON) + + # There is currently no option for system tar because the upstream + # libtar does not have our modifications to allow reentrant + # object-oriented use of the library. + # OPTION(CMAKE_USE_SYSTEM_TAR "Use system-installed tar" OFF) + ELSE(CMAKE_ALLOW_SYSTEM_LIBRARIES) + SET(CMAKE_USE_SYSTEM_CURL 0) + SET(CMAKE_USE_SYSTEM_EXPAT 0) + SET(CMAKE_USE_SYSTEM_XMLRPC 0) + SET(CMAKE_USE_SYSTEM_ZLIB 0) + ENDIF(CMAKE_ALLOW_SYSTEM_LIBRARIES) + + + # Mention to the user what system libraries are being used. + FOREACH(util CURL EXPAT XMLRPC ZLIB) + IF(CMAKE_USE_SYSTEM_${util}) + MESSAGE(STATUS "Using system-installed ${util}") + ENDIF(CMAKE_USE_SYSTEM_${util}) + ENDFOREACH(util) + + # Inform utility library header wrappers whether to use system versions. + CONFIGURE_FILE(${CMake_SOURCE_DIR}/Utilities/cmThirdParty.h.in + ${CMake_BINARY_DIR}/Utilities/cmThirdParty.h + @ONLY) + +ENDMACRO(CMAKE_HANDLE_SYSTEM_LIBRARIES) + + + +#----------------------------------------------------------------------- +# a macro to check for MFC and setup to build the MFC Dialog +# simply to improve readability of the main script +#----------------------------------------------------------------------- +MACRO(CMAKE_TEST_FOR_MFC) + SET(CMAKE_BUILD_ON_VISUAL_STUDIO 0) + IF(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW ) + SET(CMAKE_BUILD_ON_VISUAL_STUDIO 1) + ENDIF(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW ) + + IF(CMAKE_BUILD_ON_VISUAL_STUDIO) + IF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") + SET(CHECK_INCLUDE_FILE_VAR "afxwin.h") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx) + MESSAGE(STATUS "Looking for MFC") + TRY_COMPILE(CMake_HAVE_MFC + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx + CMAKE_FLAGS + -DCMAKE_MFC_FLAG:STRING=2 + -DCOMPILE_DEFINITIONS:STRING=-D_AFXDLL + OUTPUT_VARIABLE OUTPUT) + IF(CMake_HAVE_MFC) + MESSAGE(STATUS "Looking for MFC - found") + SET(CMake_HAVE_MFC 1 CACHE INTERNAL "Have MFC?") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if MFC exists passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(CMake_HAVE_MFC) + MESSAGE(STATUS "Looking for MFC - not found") + SET(CMake_HAVE_MFC 0 CACHE INTERNAL "Have MFC?") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if MFC exists failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(CMake_HAVE_MFC) + ENDIF("CMake_HAVE_MFC" MATCHES "^CMake_HAVE_MFC$") + + IF(CMake_HAVE_MFC) + OPTION(BUILD_MFCDialog "Whether to build the CMakeSetup MFC dialog." ON) + ELSE(CMake_HAVE_MFC) + SET(BUILD_MFCDialog 0) + ENDIF(CMake_HAVE_MFC) + ELSE(CMAKE_BUILD_ON_VISUAL_STUDIO) + SET(BUILD_MFCDialog 0) + ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO) +ENDMACRO(CMAKE_TEST_FOR_MFC) + + + +#----------------------------------------------------------------------- +# a macro to determine the generator and ctest executable to use +# for testing. Simply to improve readability of the main script. +#----------------------------------------------------------------------- +MACRO(CMAKE_SETUP_TESTING) + IF (NOT DART_ROOT) + SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM}) + ENDIF (NOT DART_ROOT) + + IF(BUILD_TESTING) + SET(CMAKE_TEST_GENERATOR "" CACHE STRING + "Generator used when running tests") + SET(CMAKE_TEST_MAKEPROGRAM "" CACHE FILEPATH + "Generator used when running tests") + IF(NOT CMAKE_TEST_GENERATOR) + SET(CMAKE_TEST_GENERATOR "${CMAKE_GENERATOR}") + SET(CMAKE_TEST_MAKEPROGRAM "${MAKEPROGRAM}") + ELSE(NOT CMAKE_TEST_GENERATOR) + SET(CMAKE_TEST_DIFFERENT_GENERATOR TRUE) + ENDIF(NOT CMAKE_TEST_GENERATOR) + + # Are we testing with the MSVC compiler? + SET(CMAKE_TEST_MSVC 0) + IF(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) + SET(CMAKE_TEST_MSVC 1) + ELSE(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) + IF("${CMAKE_TEST_GENERATOR}" MATCHES "NMake" OR + "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio") + SET(CMAKE_TEST_MSVC 1) + ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "NMake" OR + "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio") + ENDIF(MSVC AND NOT CMAKE_TEST_DIFFERENT_GENERATOR) + + SET(CMAKE_TEST_SYSTEM_LIBRARIES 0) + FOREACH(util CURL EXPAT XMLRPC ZLIB) + IF(CMAKE_USE_SYSTEM_${util}) + SET(CMAKE_TEST_SYSTEM_LIBRARIES 1) + ENDIF(CMAKE_USE_SYSTEM_${util}) + ENDFOREACH(util) + + # This variable is set by cmake, however to + # test cmake we want to make sure that + # the ctest from this cmake is used for testing + # and not the ctest from the cmake building and testing + # cmake. + SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest") + SET(CMAKE_CMAKE_COMMAND "${EXECUTABLE_OUTPUT_PATH}/cmake") + ENDIF(BUILD_TESTING) + + # configure some files for testing + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/Templates/CTestScript.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/CTestScript.cmake" + @ONLY) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/.NoDartCoverage + ${CMake_BINARY_DIR}/Tests/.NoDartCoverage) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/.NoDartCoverage + ${CMake_BINARY_DIR}/Modules/.NoDartCoverage) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/CTestCustom.cmake.in + ${CMake_BINARY_DIR}/CTestCustom.cmake @ONLY) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/CTestCustom.ctest.in + ${CMake_BINARY_DIR}/CTestCustom.ctest @ONLY) + IF(BUILD_TESTING AND DART_ROOT) + CONFIGURE_FILE(${CMake_SOURCE_DIR}/CMakeLogo.gif + ${CMake_BINARY_DIR}/Testing/HTML/TestingResults/Icons/Logo.gif COPYONLY) + ENDIF(BUILD_TESTING AND DART_ROOT) + MARK_AS_ADVANCED(DART_ROOT) + MARK_AS_ADVANCED(CURL_TESTING) +ENDMACRO(CMAKE_SETUP_TESTING) + + + +#----------------------------------------------------------------------- +# a macro to build the utilities used by CMake +# Simply to improve readability of the main script. +#----------------------------------------------------------------------- +MACRO (CMAKE_BUILD_UTILITIES) + #--------------------------------------------------------------------- + # Create the kwsys library for CMake. + SET(KWSYS_NAMESPACE cmsys) + SET(KWSYS_USE_SystemTools 1) + SET(KWSYS_USE_Directory 1) + SET(KWSYS_USE_RegularExpression 1) + SET(KWSYS_USE_Base64 1) + SET(KWSYS_USE_MD5 1) + SET(KWSYS_USE_Process 1) + SET(KWSYS_USE_CommandLineArguments 1) + SET(KWSYS_HEADER_ROOT ${CMake_BINARY_DIR}/Source) + SUBDIRS(Source/kwsys) + + #--------------------------------------------------------------------- + # Setup third-party libraries. + # Everything in the tree should be able to include files from the + # Utilities directory. + INCLUDE_DIRECTORIES( + ${CMake_SOURCE_DIR}/Utilities + ${CMake_BINARY_DIR}/Utilities + ) + + # check for the use of system libraries versus builtin ones + # (a macro defined in this file) + CMAKE_HANDLE_SYSTEM_LIBRARIES() + + #--------------------------------------------------------------------- + # Build zlib library for Curl, CMake, and CTest. + SET(CMAKE_ZLIB_HEADER "cm_zlib.h") + IF(CMAKE_USE_SYSTEM_ZLIB) + FIND_PACKAGE(ZLIB) + IF(NOT ZLIB_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_ZLIB is ON but a zlib is not found!") + ENDIF(NOT ZLIB_FOUND) + SET(CMAKE_ZLIB_INCLUDES ${ZLIB_INCLUDE_DIR}) + SET(CMAKE_ZLIB_LIBRARIES ${ZLIB_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_ZLIB) + SET(CMAKE_ZLIB_INCLUDES) + SET(CMAKE_ZLIB_LIBRARIES cmzlib) + SUBDIRS(Utilities/cmzlib) + ENDIF(CMAKE_USE_SYSTEM_ZLIB) + + #--------------------------------------------------------------------- + # Build Curl library for CTest. + IF(CMAKE_USE_SYSTEM_CURL) + FIND_PACKAGE(CURL) + IF(NOT CURL_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_CURL is ON but a curl is not found!") + ENDIF(NOT CURL_FOUND) + SET(CMAKE_CURL_INCLUDES ${CURL_INCLUDE_DIRS}) + SET(CMAKE_CURL_LIBRARIES ${CURL_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_CURL) + SET(CURL_SPECIAL_ZLIB_H ${CMAKE_ZLIB_HEADER}) + SET(CURL_SPECIAL_LIBZ_INCLUDES ${CMAKE_ZLIB_INCLUDES}) + SET(CURL_SPECIAL_LIBZ ${CMAKE_ZLIB_LIBRARIES}) + ADD_DEFINITIONS(-DCURL_STATICLIB) + SET(CMAKE_CURL_INCLUDES) + SET(CMAKE_CURL_LIBRARIES cmcurl) + SUBDIRS(Utilities/cmcurl) + ENDIF(CMAKE_USE_SYSTEM_CURL) + + #--------------------------------------------------------------------- + # Build Tar library for CTest. + SET(CMTAR_ZLIB_HEADER ${CMAKE_ZLIB_HEADER}) + SET(CMTAR_ZLIB_LIBRARIES ${CMAKE_ZLIB_LIBRARIES}) + SET(CMTAR_ZLIB_INCLUDE_DIRS ${CMAKE_ZLIB_INCLUDES}) + SET(CMAKE_TAR_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmtar) + SET(CMAKE_TAR_LIBRARIES cmtar) + SUBDIRS(Utilities/cmtar) + + #--------------------------------------------------------------------- + # Build Compress library for CTest. + SET(CMAKE_COMPRESS_INCLUDES + "${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmcompress") + SET(CMAKE_COMPRESS_LIBRARIES "cmcompress") + SUBDIRS(Utilities/cmcompress) + + #--------------------------------------------------------------------- + # Build expat library for CMake and CTest. + IF(CMAKE_USE_SYSTEM_EXPAT) + FIND_PACKAGE(EXPAT) + IF(NOT EXPAT_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_EXPAT is ON but a expat is not found!") + ENDIF(NOT EXPAT_FOUND) + SET(CMAKE_EXPAT_INCLUDES ${EXPAT_INCLUDE_DIRS}) + SET(CMAKE_EXPAT_LIBRARIES ${EXPAT_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_EXPAT) + SET(CMAKE_EXPAT_INCLUDES) + SET(CMAKE_EXPAT_LIBRARIES cmexpat) + SUBDIRS(Utilities/cmexpat) + ENDIF(CMAKE_USE_SYSTEM_EXPAT) + + #--------------------------------------------------------------------- + # Build XMLRPC library for CMake and CTest. + IF(CMAKE_USE_SYSTEM_XMLRPC) + FIND_PACKAGE(XMLRPC QUIET REQUIRED libwww-client) + IF(NOT XMLRPC_FOUND) + MESSAGE(FATAL_ERROR + "CMAKE_USE_SYSTEM_XMLRPC is ON but a xmlrpc is not found!") + ENDIF(NOT XMLRPC_FOUND) + SET(CMAKE_XMLRPC_INCLUDES ${XMLRPC_INCLUDE_DIRS}) + SET(CMAKE_XMLRPC_LIBRARIES ${XMLRPC_LIBRARIES}) + ELSE(CMAKE_USE_SYSTEM_XMLRPC) + SET(CMAKE_XMLRPC_INCLUDES) + SET(CMAKE_XMLRPC_LIBRARIES cmXMLRPC) + SUBDIRS(Utilities/cmxmlrpc) + ENDIF(CMAKE_USE_SYSTEM_XMLRPC) + + #--------------------------------------------------------------------- + # Use curses? + IF (UNIX) + # there is a bug in the Syllable libraries which makes linking ccmake fail, Alex + IF(NOT "${CMAKE_SYSTEM_NAME}" MATCHES syllable) + SET(CURSES_NEED_NCURSES TRUE) + FIND_PACKAGE(Curses QUIET) + IF (CURSES_LIBRARY) + OPTION(BUILD_CursesDialog "Build the CMake Curses Dialog ccmake" ON) + ELSE (CURSES_LIBRARY) + MESSAGE("Curses libraries were not found. Curses GUI for CMake will not be built.") + SET(BUILD_CursesDialog 0) + ENDIF (CURSES_LIBRARY) + ELSE(NOT "${CMAKE_SYSTEM_NAME}" MATCHES syllable) + SET(BUILD_CursesDialog 0) + ENDIF(NOT "${CMAKE_SYSTEM_NAME}" MATCHES syllable) + ELSE (UNIX) + SET(BUILD_CursesDialog 0) + ENDIF (UNIX) + IF(BUILD_CursesDialog) + SUBDIRS(Source/CursesDialog/form) + ENDIF(BUILD_CursesDialog) +ENDMACRO (CMAKE_BUILD_UTILITIES) + + + +#----------------------------------------------------------------------- +# The main section of the CMakeLists file +# +#----------------------------------------------------------------------- +# The CMake version number. +SET(CMake_VERSION_MAJOR 2) +SET(CMake_VERSION_MINOR 5) +SET(CMake_VERSION_PATCH 0) + +# CVS versions are odd, if this is an odd minor version +# then set the CMake_VERSION_DATE variable +IF("${CMake_VERSION_MINOR}" MATCHES "[13579]$") + INCLUDE(${CMake_SOURCE_DIR}/Source/kwsys/kwsysDateStamp.cmake) + SET(CMake_VERSION_DATE + "${KWSYS_DATE_STAMP_YEAR}${KWSYS_DATE_STAMP_MONTH}${KWSYS_DATE_STAMP_DAY}" + ) +ENDIF("${CMake_VERSION_MINOR}" MATCHES "[13579]$") + +SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") +SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}") + +# Include the standard Dart testing module +ENABLE_TESTING() +INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake) + +# where to write the resulting executables and libraries +SET(BUILD_SHARED_LIBS OFF) +SET(EXECUTABLE_OUTPUT_PATH ${CMake_BINARY_DIR}/bin CACHE INTERNAL + "Where to put the executables for CMake") +SET(LIBRARY_OUTPUT_PATH "" CACHE INTERNAL + "Where to put the libraries for CMake") +INCLUDE_REGULAR_EXPRESSION("^.*$") + +# The CMake executables usually do not need any rpath to run in the build or +# install tree. +SET(CMAKE_SKIP_RPATH ON CACHE INTERNAL "CMake does not need RPATHs.") + +SET(CMAKE_DATA_DIR "/share/cmake-${CMake_VERSION}" CACHE STRING + "Install location for data (relative to prefix).") +SET(CMAKE_DOC_DIR "/doc/cmake-${CMake_VERSION}" CACHE STRING + "Install location for documentation (relative to prefix).") +SET(CMAKE_MAN_DIR "/man" CACHE STRING + "Install location for man pages (relative to prefix).") +MARK_AS_ADVANCED(CMAKE_DATA_DIR CMAKE_DOC_DIR CMAKE_MAN_DIR) + +# include special compile flags for some compilers +INCLUDE(CompileFlags.cmake) + +# no clue why we are testing for this here +INCLUDE(CheckSymbolExists) +CHECK_SYMBOL_EXISTS(unsetenv "stdlib.h" HAVE_UNSETENV) +CHECK_SYMBOL_EXISTS(environ "stdlib.h" HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE) + +# build the utilities (a macro defined in this file) +CMAKE_BUILD_UTILITIES() + +# On NetBSD ncurses is required, since curses doesn't have the wsyncup() +# function. ncurses is installed via pkgsrc, so the library is in /usr/pkg/lib, +# which isn't in the default linker search path. So without RPATH ccmake +# doesn't run and the build doesn't succeed since ccmake is executed for +# generating the documentation. +IF(BUILD_CursesDialog) + GET_FILENAME_COMPONENT(_CURSES_DIR "${CURSES_LIBRARY}" PATH) + SET(CURSES_NEED_RPATH FALSE) + IF(NOT "${_CURSES_DIR}" STREQUAL "/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/lib64" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib64") + SET(CURSES_NEED_RPATH TRUE) + ENDIF(NOT "${_CURSES_DIR}" STREQUAL "/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/lib64" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib64") +ENDIF(BUILD_CursesDialog) + +IF(BUILD_QtDialog) + SET(QT_NEED_RPATH FALSE) + IF(NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib64" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib64") + SET(QT_NEED_RPATH TRUE) + ENDIF(NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib64" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib64") +ENDIF(BUILD_QtDialog) + + +# The same might be true on other systems for other libraries if +# CMAKE_USE_SYSTEM_XMLRPC or other variables like this are enabled. +# Then only enable RPATH if we have are building at least with cmake 2.4, +# since this one has much better RPATH features than cmake 2.2. +# The executables are then built with the RPATH for the libraries outside +# the build tree, which is both the build and the install RPATH. +IF (UNIX AND "${CMAKE_MAJOR_VERSION}${CMAKE_MINOR_VERSION}" GREATER 23) + IF( CMAKE_USE_SYSTEM_CURL OR CMAKE_USE_SYSTEM_ZLIB + OR CMAKE_USE_SYSTEM_EXPAT OR CMAKE_USE_SYSTEM_XMLRPC OR CURSES_NEED_RPATH OR QT_NEED_RPATH) + SET(CMAKE_SKIP_RPATH OFF CACHE INTERNAL "CMake built with RPATH.") + SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + MESSAGE(STATUS "Enabling RPATH") + ENDIF(CMAKE_USE_SYSTEM_CURL OR CMAKE_USE_SYSTEM_ZLIB + OR CMAKE_USE_SYSTEM_EXPAT OR CMAKE_USE_SYSTEM_XMLRPC OR CURSES_NEED_RPATH OR QT_NEED_RPATH) +ENDIF (UNIX AND "${CMAKE_MAJOR_VERSION}${CMAKE_MINOR_VERSION}" GREATER 23) + + +# should we build the MFC dialog? (a macro defined in this file) +CMAKE_TEST_FOR_MFC() + +# add the uninstall support +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + @ONLY) +ADD_CUSTOM_TARGET(uninstall + "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + +INCLUDE (CMakeCPack.cmake) + +# setup some Testing support (a macro defined in this file) +CMAKE_SETUP_TESTING() +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/DartLocal.conf.in" + "${CMAKE_CURRENT_BINARY_DIR}/DartLocal.conf" + COPYONLY) + +OPTION(CMAKE_STRICT + "Perform strict testing to record property and variable access. Can be used to report any undefined properties or variables" OFF) +MARK_AS_ADVANCED(CMAKE_STRICT) + + +# build the remaining subdirectories +SUBDIRS(Source) +SUBDIRS(Modules) +SUBDIRS(Templates) +SUBDIRS(Utilities) +SUBDIRS(Tests) + +# add a test +ADD_TEST(SystemInformationNew "${CMAKE_CMAKE_COMMAND}" + --system-information -G "${CMAKE_TEST_GENERATOR}" ) + +#----------------------------------------------------------------------- +# End of the main section of the CMakeLists file +#----------------------------------------------------------------------- diff --git a/CMakeLua/CMakeLogo.gif b/CMakeLua/CMakeLogo.gif new file mode 100644 index 0000000000000000000000000000000000000000..8426402a7264672715a35bd0e0f879452843acc5 GIT binary patch literal 4481 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 Z*`0W`drxL}Y!Y>cPEQI&9fJWI{|^BAU`+r3 literal 0 HcwPel00001 diff --git a/CMakeLua/CTestConfig.cmake b/CMakeLua/CTestConfig.cmake new file mode 100644 index 0000000..2e43722 --- /dev/null +++ b/CMakeLua/CTestConfig.cmake @@ -0,0 +1,23 @@ +SET (CTEST_PROJECT_NAME "CMake") +SET (CTEST_NIGHTLY_START_TIME "21:00:00 EDT") + +MACRO(SET_IF_NOT_SET var val) + IF(NOT DEFINED "${var}") + SET("${var}" "${val}") + ENDIF(NOT DEFINED "${var}") +ENDMACRO(SET_IF_NOT_SET) + +SET_IF_NOT_SET(CTEST_DROP_METHOD "http") +IF(CTEST_DROP_METHOD STREQUAL "http") + SET (CTEST_DROP_SITE "public.kitware.com") + SET (CTEST_DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi") + SET (CTEST_TRIGGER_SITE "http://${CTEST_DROP_SITE}/cgi-bin/Submit-CMake-TestingResults.cgi") +ENDIF(CTEST_DROP_METHOD STREQUAL "http") + +IF(CTEST_DROP_METHOD STREQUAL "xmlrpc") + SET (CTEST_DROP_SITE "http://www.na-mic.org:8081") + SET (CTEST_DROP_LOCATION "CMake") + SET (CTEST_TRIGGER_SITE "not used") + SET (COMPRESS_SUBMISSION ON) +ENDIF(CTEST_DROP_METHOD STREQUAL "xmlrpc") + diff --git a/CMakeLua/CTestCustom.cmake.in b/CMakeLua/CTestCustom.cmake.in new file mode 100644 index 0000000..af83f1a --- /dev/null +++ b/CMakeLua/CTestCustom.cmake.in @@ -0,0 +1,41 @@ +SET(CTEST_CUSTOM_WARNING_EXCEPTION + ${CTEST_CUSTOM_WARNING_EXCEPTION} + "xtree.[0-9]+. : warning C4702: unreachable code" + "warning LNK4221" + "variable .var_args[2]*. is used before its value is set" + "jobserver unavailable" + "warning: \\(Long double usage is reported only once for each file" + "warning: To disable this warning use" + "could not be inlined" + "libcmcurl.*has no symbols" + "not sorted slower link editing will result" + "stl_deque.h:479" + "Utilities.cmzlib." + "Utilities.cmxmlrpc." + "Source.CTest.Curl" + "Utilities.cmcurl" + "Source.CursesDialog.form" + "/usr/bin/ld.*warning.*-..*directory.name.*bin.*does not exist" + "Redeclaration of .send..... with a different storage class specifier" + "Utilities.cmexpat." + "is not used for resolving any symbol" + "Clock skew detected" + "remark\\(1209" + "stl_deque.h:1051" + "Parser.cxx.*warning.*2111-D.*statement is unreachable" + "CMakeSetupManifest.xml.*manifest authoring warning.*Unrecognized Element" + ) + +IF(NOT "@CMAKE_GENERATOR@" MATCHES "Xcode") + SET(CTEST_CUSTOM_COVERAGE_EXCLUDE + ${CTEST_CUSTOM_COVERAGE_EXCLUDE} + "XCode" + ) +ENDIF (NOT "@CMAKE_GENERATOR@" MATCHES "Xcode") + +IF(NOT "@CMAKE_GENERATOR@" MATCHES "KDevelop") + SET(CTEST_CUSTOM_COVERAGE_EXCLUDE + ${CTEST_CUSTOM_COVERAGE_EXCLUDE} + "Kdevelop" + ) +ENDIF (NOT "@CMAKE_GENERATOR@" MATCHES "KDevelop") diff --git a/CMakeLua/CTestCustom.ctest.in b/CMakeLua/CTestCustom.ctest.in new file mode 100644 index 0000000..6127843 --- /dev/null +++ b/CMakeLua/CTestCustom.ctest.in @@ -0,0 +1,3 @@ +# This file is provided for compatibility with CMake 2.2 and lower. +# Just include the custom file by its new name. +INCLUDE("CTestCustom.cmake") diff --git a/CMakeLua/CVS/Entries b/CMakeLua/CVS/Entries new file mode 100644 index 0000000..8bcac3b --- /dev/null +++ b/CMakeLua/CVS/Entries @@ -0,0 +1,26 @@ +/CMakeCPack.cmake/1.10/Wed Nov 7 18:11:58 2007//T1.10 +/CMakeGraphVizOptions.cmake/1.1/Tue Mar 7 20:31:05 2006//T1.1 +/CMakeLists.txt/1.138/Sat Nov 24 01:45:49 2007//T1.138 +/CMakeLogo.gif/1.2/Mon Nov 26 18:21:57 2007/-kb/T1.2 +/CTestConfig.cmake/1.4/Fri Apr 28 15:58:33 2006//T1.4 +/CTestCustom.cmake.in/1.3/Mon Sep 24 15:18:22 2007//T1.3 +/CTestCustom.ctest.in/1.20/Fri Aug 31 18:51:09 2007//T1.20 +/ChangeLog.txt/1.11/Wed Apr 19 16:29:52 2006//T1.11 +/Copyright.txt/1.3/Sun Apr 30 00:03:33 2006//T1.3 +/DartConfig.cmake/1.29/Mon Jun 12 14:22:38 2006//T1.29 +/Readme.txt/1.3/Mon Jul 16 14:54:29 2007//T1.3 +/cmake.1/1.1/Thu Aug 8 15:58:30 2002//T1.1 +/cmake_uninstall.cmake.in/1.3/Mon Jan 22 15:39:16 2007//T1.3 +/configure/1.38/Mon Jun 23 12:58:19 2003//T1.38 +/doxygen.config/1.2/Fri Oct 13 15:26:59 2006//T1.2 +D/Docs//// +D/Example//// +D/Modules//// +D/Source//// +D/Templates//// +D/Tests//// +D/Utilities//// +/DartLocal.conf.in/1.15/Sun Dec 16 12:36:28 2007//T1.15 +/CMakeCPackOptions.cmake.in/1.4/Sat Feb 2 02:49:18 2008//T1.4 +/CompileFlags.cmake/1.2/Sat Feb 2 02:59:41 2008//T1.2 +/bootstrap/1.106/Sat Feb 2 03:02:34 2008//T1.106 diff --git a/CMakeLua/CVS/Repository b/CMakeLua/CVS/Repository new file mode 100644 index 0000000..7476ed3 --- /dev/null +++ b/CMakeLua/CVS/Repository @@ -0,0 +1 @@ +CMake diff --git a/CMakeLua/CVS/Root b/CMakeLua/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/CVS/Tag b/CMakeLua/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/CVS/Template b/CMakeLua/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/ChangeLog.txt b/CMakeLua/ChangeLog.txt new file mode 100644 index 0000000..0875cc6 --- /dev/null +++ b/CMakeLua/ChangeLog.txt @@ -0,0 +1,45604 @@ +2006-04-19 10:56 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: test for vs8 correctly + +2006-04-19 10:50 king + + * Source/: cmBootstrapCommands.cxx, cmCommands.cxx: BUG: Need + ADD_DEPENDENCIES command for MinGW bootstrap since kwsys uses the + Win32 implementation of process execution. + +2006-04-19 10:34 king + + * Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio6Generator.h, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate: BUG: VS6 generator now uses + ComputeLinkInformation just like all other generators. + +2006-04-19 10:11 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: check for version 1400 + +2006-04-19 08:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-18 16:40 hoffman + + * CMakeLists.txt: ENH: make cpack names match old cmake release + process + +2006-04-18 15:32 hoffman + + * Source/cmGlobalUnixMakefileGenerator3.cxx: ENH: put global + targets in the help + +2006-04-18 15:30 hoffman + + * Source/cmGlobalUnixMakefileGenerator3.cxx: BUG: make sure help + has global targets + +2006-04-18 14:48 hoffman + + * CMakeLists.txt, Source/cmCPluginAPI.h: ENH: move version numbers + to 2.5.0 + +2006-04-18 14:48 hoffman + + * CMakeLists.txt, Source/cmCPluginAPI.h, Utilities/Release/README: + ENH: move version numbers to 2.4.0 + +2006-04-18 11:53 king + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: Do not require + language flags variables. Other generators do not, and it breaks + programmable language support (like the Java test). + +2006-04-18 11:50 barre + + * Source/kwsys/SystemTools.cxx: ENH: try to bypass Microsoft + assert() on isspace, isalpha, etc. + +2006-04-18 11:45 king + + * Source/cmLocalVisualStudio6Generator.cxx, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Updated VS6 generator + to use target.GetFullName() to compute target file names. + +2006-04-18 10:56 king + + * Source/: cmSetTargetPropertiesCommand.h, cmTarget.cxx: ENH: Added + _OUTPUT_NAME target property to allow the output name to + be set on a per-configuration basis. + +2006-04-18 10:32 andy + + * Docs/: cmake-indent.vim, cmake-syntax.vim: ENH: Cleanup header + and make license compatible with VIM + +2006-04-18 10:32 andy + + * Source/CPack/: cmCPackGenericGenerator.cxx, + cmCPackSTGZGenerator.cxx: ENH: Remove some debugging + +2006-04-18 10:30 king + + * Source/: cmFileCommand.cxx, cmInstallCommand.h: BUG: Using the + source-file permissions by default for installation is somewhat + unpredictable because users can extract source code with almost + any permissions (umask). Changing the default to use 644 for + files and 755 for programs. No release has documented the old + behavior so we do not need compatibility. + +2006-04-18 10:27 king + + * Source/cmIfCommand.h: BUG: Fixed missing false values in + documentation of IF command. + +2006-04-18 10:01 king + + * Modules/CPack.cmake: BUG: Need to ignore source packaging of #*# + files created by emacs during editing. + +2006-04-18 09:24 andy + + * Source/CPack/cmCPackSTGZGenerator.cxx: COMP: Remove non-existent + header + +2006-04-18 08:25 andy + + * Modules/CPack.STGZ_Header.sh.in, Source/cmFileCommand.cxx, + Source/CPack/cmCPackGenericGenerator.cxx, + Source/CPack/cmCPackGenericGenerator.h, + Source/CPack/cmCPackSTGZGenerator.cxx, + Source/CPack/cmCPackSTGZGenerator.h, Source/CPack/cpack.cxx: ENH: + More cleanups and add stgz header script, so it does not have to + be hard-coded. Also, the user can overwrite it + +2006-04-18 08:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-17 19:02 andy + + * bootstrap: ENH: Fix copyright year + +2006-04-17 18:10 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: remove + duplicate file name test because it fails on xcode + +2006-04-17 16:06 andy + + * Source/cmGlobalGenerator.cxx: BUG: Verify the global target name + exists before using it. Fixes VS and Xcode + +2006-04-17 15:55 hoffman + + * Modules/FindX11.cmake: ENH: fix find x11 on the mac + +2006-04-17 15:35 hoffman + + * Source/cmLocalGenerator.cxx: ENH: fix java for ide builds again + +2006-04-17 15:26 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalUnixMakefileGenerator3.h: ENH: Add packaging of source + code (make package_source) + +2006-04-17 14:13 malaterre + + * Source/kwsys/CMakeLists.txt: COMP: Fix compilation on linux + (dlopen/dlclose symbols) + +2006-04-17 14:00 hoffman + + * Modules/CMakeJavaInformation.cmake, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmMakefileLibraryTargetGenerator.cxx, + Source/cmMakefileTargetGenerator.cxx: ENH: fix java and add + OBJECT_DIR support + +2006-04-17 13:59 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, + Complex/Executable/Sub1/NameConflictTest.c, + Complex/Executable/Sub2/NameConflictTest.c, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Executable/Sub1/NameConflictTest.c, + ComplexOneConfig/Executable/Sub2/NameConflictTest.c, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Executable/Sub1/NameConflictTest.c, + ComplexRelativePaths/Executable/Sub2/NameConflictTest.c: ENH: + allow multiple files with the same name in different sub dirs + test + +2006-04-17 13:58 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: allow multiple + files with the same name in different subdirs + +2006-04-17 13:57 hoffman + + * Modules/CMakeDetermineCXXCompiler.cmake: ENH: add mingw test to + cxx + +2006-04-17 13:57 hoffman + + * Modules/Platform/Windows-gcc.cmake: ENH: add windows apps to + mingw + +2006-04-17 07:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-16 13:49 andy + + * Docs/cmake-syntax.vim: ENH: Cleanup, make case insensitive, + remove macro since it does not work anyway + +2006-04-16 08:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-15 13:02 andy + + * Modules/CPack.cmake, Source/CPack/cmCPackGenericGenerator.cxx, + Source/CPack/cmCPackGenericGenerator.h, + Source/CPack/cmCPackNSISGenerator.cxx, + Source/CPack/cmCPackNSISGenerator.h, + Source/CPack/cmCPackPackageMakerGenerator.cxx, + Source/CPack/cmCPackPackageMakerGenerator.h, + Source/CPack/cmCPackSTGZGenerator.cxx, + Source/CPack/cmCPackSTGZGenerator.h, + Source/CPack/cmCPackTGZGenerator.cxx, + Source/CPack/cmCPackTGZGenerator.h, + Source/CPack/cmCPackZIPGenerator.cxx, + Source/CPack/cmCPackZIPGenerator.h: ENH: Support for packaging + source, several cleanups and more yeehaa... + +2006-04-15 08:12 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-14 15:08 hoffman + + * Modules/FindX11.cmake: ENH: make sure frameworks are not searched + for x header files + +2006-04-14 09:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-14 09:02 hoffman + + * Source/CMakeLists.txt: ENH: fix syntax + +2006-04-14 08:58 andy + + * Modules/CPack.cmake, Source/CPack/cmCPackGenericGenerator.cxx, + Templates/CPackConfig.cmake.in: ENH: Start adding support for + packaging component and to package into a subdirectory + +2006-04-14 08:44 hoffman + + * Source/CMakeLists.txt: ENH: make sure cmake can be built with an + older version of cmake + +2006-04-13 23:24 hoffman + + * Source/cmFindProgramCommand.cxx: ENH: fix warning + +2006-04-13 23:15 hoffman + + * Source/: cmDocumentation.cxx, cmDocumentation.h, cmakemain.cxx: + ENH: search for help modules in the correct place for install and + source tree builds + +2006-04-13 22:57 king + + * Source/cmFileCommand.cxx: BUG: Fixed install rules to use + copy-if-different. + +2006-04-13 22:56 king + + * Source/kwsys/SystemTools.cxx: ENH: Improved implementation of + FilesDiffer to avoid allocating enough memory for the entire file + twice. Instead using a block-at-a-time comparison. + +2006-04-13 15:28 king + + * Tests/CustomCommand/wrapper.cxx: COMP: Do not use ANSI function + prototypes to pacify HP. + +2006-04-13 11:00 hoffman + + * bootstrap, Modules/Platform/Darwin.cmake, Source/CMakeLists.txt, + Source/cmFindBase.cxx, Source/cmFindBase.h, + Source/cmFindProgramCommand.cxx, Source/cmFindProgramCommand.h, + Source/kwsys/SystemTools.cxx, Source/kwsys/SystemTools.hxx.in: + ENH: add patch for finding applications on OSX + +2006-04-13 10:15 king + + * Source/: cmGlobalUnixMakefileGenerator3.h, + cmGlobalWatcomWMakeGenerator.cxx, cmMakefileTargetGenerator.cxx: + BUG: Work-around Watcom WMake limitation for multiple-output + custom command support. + +2006-04-13 08:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-12 22:04 king + + * Source/cmInstallCommand.cxx, Source/cmInstallCommand.h, + Source/cmInstallScriptGenerator.cxx, + Source/cmInstallScriptGenerator.h, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/InstallScript1.cmake, + Tests/SimpleInstall/InstallScript2.cmake, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/InstallScript1.cmake, + Tests/SimpleInstallS2/InstallScript2.cmake: ENH: Added + INSTALL(CODE) mode to allow inline specification of install + script code. This reduces the need for configuring an install + script that needs some variable settings because the install code + can set thing up first. + +2006-04-12 21:24 andy + + * Docs/cmake-indent.vim: ENH: Unify the comment + +2006-04-12 21:20 andy + + * Docs/cmake-syntax.vim: ENH: More system variables, more + operators, more commands, fix some string issues and some cmake + arguments issues + +2006-04-12 15:23 hoffman + + * Source/CMakeLists.txt: ENH: lang by custom command does not yet + work for Xcode + +2006-04-12 11:56 martink + + * Source/cmGlobalGenerator.cxx: COMP: fix warning + +2006-04-12 11:36 martink + + * Source/cmGlobalGenerator.h: ENH: fix compile issue on HP + hopefully + +2006-04-12 09:12 hoffman + + * Source/cmDocumentation.cxx: ENH: case insensitive command help + +2006-04-12 08:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-11 22:39 hoffman + + * Source/cmake.cxx: ENH: add more verbose output in verbose mode + +2006-04-11 22:39 hoffman + + * Source/cmMakefile.cxx: ENH: fix re-run of cmake based on + configured files that are done with copy if different and never + change + +2006-04-11 17:11 hoffman + + * Source/: CMakeLists.txt, cmLocalGenerator.cxx: ENH: enable test + for java with IDE builds + +2006-04-11 16:55 king + + * Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeFortranInformation.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-icl.cmake, + Modules/Platform/Windows-ifort.cmake, + Modules/Platform/Windows-wcl386.cmake, + Source/cmLocalGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx: ENH: Split + CMAKE_STANDARD_LIBRARIES into per-language variables + CMAKE__STANDARD_LIBRARIES. This is needed to get + programmable language support working with Visual Studio + generators. It makes sense anyway. + +2006-04-11 14:54 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Use flag-map + transform only for C and C++ flags. + +2006-04-11 14:53 king + + * Source/cmLocalGenerator.cxx: ENH: Restored implementation of + AddCustomCommandToCreateObject. Updated it to use newer custom + command functionality. + +2006-04-11 13:32 king + + * Source/cmLocalGenerator.cxx: BUG: Install scripts should honor + EXCLUDE_FROM_ALL options for subdirectories. This addresses + bug#3100. + +2006-04-11 12:51 martink + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmLocalUnixMakefileGenerator3.cxx, cmMakefile.cxx, cmMakefile.h: + ENH: some performance optimizations + +2006-04-11 11:40 king + + * Source/cmLocalGenerator.cxx: BUG: Do not add non-per-config + subdirectory name of cmake target libraries as full path libs. + +2006-04-11 11:06 king + + * Source/cmAddCustomCommandCommand.cxx, + Source/cmAddCustomCommandCommand.h, Source/cmCustomCommand.cxx, + Source/cmCustomCommand.h, Source/cmGlobalGenerator.cxx, + Source/cmGlobalGenerator.h, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalUnixMakefileGenerator3.h, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalXCodeGenerator.cxx, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio6Generator.h, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmMakefileTargetGenerator.cxx, + Source/cmake.cxx, Tests/CustomCommand/CMakeLists.txt, + Tests/CustomCommand/wrapper.cxx: ENH: Added support for multiple + outputs generated by a single custom command. For Visual Studio + generators the native tool provides support. For Xcode and + Makefile generators a simple trick is used. The first output is + considered primary and has the build rule attached. Other + outputs simply depend on the first output with no build rule. + During cmake_check_build_system CMake detects when a secondary + output is missing and removes the primary output to make sure all + outputs are regenerated. This approach always builds the custom + command at the right time and only once even during parallel + builds. + +2006-04-11 10:04 king + + * Source/cmMakefile.h: BUG: Fixed typo in new cmake-rerun code. + +2006-04-11 08:56 andy + + * Source/cmCTest.cxx: BUG: The fast mode should not read + CTestCustom.ctest files + +2006-04-11 08:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-10 13:52 hoffman + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, cmMakefile.cxx, + cmMakefile.h: ENH: add support for re-running cmake if the + cmakefiles change + +2006-04-10 13:52 hoffman + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: add test for mfc + +2006-04-10 13:47 hoffman + + * Source/cmFileCommand.cxx: ENH: handle single path + +2006-04-10 13:46 hoffman + + * Modules/: CMakeVS6FindMake.cmake, CMakeVS71FindMake.cmake, + CMakeVS7FindMake.cmake, CMakeVS8FindMake.cmake, + InstallRequiredSystemLibraries.cmake: ENH: add correct flags for + msvc generators + +2006-04-10 13:44 andy + + * Modules/CPack.cmake, Source/cmGlobalGenerator.h, + Source/ctest.cxx, Source/CPack/cmCPackGenericGenerator.cxx: ENH: + Add support for preinstall for cmake generated projects when + packaging them + +2006-04-10 11:39 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: fix so all configurations + show up + +2006-04-10 11:09 andy + + * Modules/CPack.cmake, Source/CPack/cmCPackGenericGenerator.cxx: + ENH: Deprecate CPACK_BINARY_DIR and add + CPACK_INSTALL_CMAKE_PROJECTS + +2006-04-10 09:36 andy + + * CTestCustom.ctest.in: ENH: Some ctest custom fixes + +2006-04-10 08:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-09 08:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-09 07:45 andy + + * Source/: cmCTest.cxx, cmCTest.h, CTest/cmCTestBuildHandler.cxx, + CTest/cmCTestReadCustomFilesCommand.cxx: BUG: Improve the + behavior of the ReadCustomFilesCommand + +2006-04-08 14:15 hoffman + + * Source/: cmLocalKdevelopGenerator.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: make sure verbose output is + used for kde + +2006-04-08 08:23 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-07 16:46 hoffman + + * Modules/Platform/: Windows-cl.cmake, Windows-cl.cmake.in: ENH: + add better variables for MSVC versions + +2006-04-07 16:35 andy + + * Modules/CPack.cmake: ENH: Allow to overwrite CPACK_BINARY_DIR + +2006-04-07 07:40 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-06 07:39 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-05 11:07 king + + * Source/cmOrderLinkDirectories.cxx: COMP: Moved var decl out of + _WIN32 block. + +2006-04-05 11:05 king + + * Source/: cmLocalGenerator.cxx, cmOrderLinkDirectories.cxx: BUG: + Fixed cmOrderLinkDirectories to deal with raw link items that do + not yet exist and correct drive letter case to avoid duplicate + paths on windows. Fixed cmLocalGenerator to pass CMake targets + as full paths to cmOrderLinkDirectories to make sure the ordering + will pick up the proper target libraries. + +2006-04-05 07:46 hoffman + + * Source/: cmFileCommand.cxx, cmFileCommand.h: ENH: add path + conversion stuff and rm SYSTEM_PATH + +2006-04-05 07:31 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-04 17:27 hoffman + + * Modules/CMakeVS8FindMake.cmake: ENH: add search directories for + 32 bit devenv from a 64bit cmake + +2006-04-04 17:14 king + + * Source/cmLocalGenerator.cxx: BUG: Removing part of earlier fix + because it does not work with VS generators. It may be restored + later after cmOrderLinkDirs is further fixed. + +2006-04-04 14:53 king + + * Source/cmSetTargetPropertiesCommand.h: ENH: Added documentation + for COMPILE_FLAGS property and clarified meaning of + DEFINE_SYMBOL. + +2006-04-04 14:25 king + + * Source/cmLocalGenerator.cxx, Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: BUG: Fixed + cmOrderLinkDirectories to make sure cmake-built libraries are + found properly. Also taking libraries that will be built but may + not yet exist into account. The per-configuration subdirectories + that are included by generators in the link path are checked for + conflicting libraries also. Potentially conflicting libraries + that are actually symlinks back to the desired library are no + longer considered conflicting, which avoids bogus impossible + ordering warnings. + +2006-04-04 14:25 martink + + * Source/cmakexbuild.cxx: BUG: compiler fix + +2006-04-04 13:04 martink + + * Source/: cmCTest.cxx, cmCTest.h, cmForEachCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h, cmakexbuild.cxx, ctest.cxx, + CTest/cmCTestRunScriptCommand.cxx, + CTest/cmCTestRunScriptCommand.h, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestScriptHandler.h: ENH: added support for -SP scripts + in new processes + +2006-04-04 11:52 hoffman + + * Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: change + library order to use a vector + +2006-04-04 11:48 king + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmLocalGenerator.cxx, cmLocalGenerator.h, cmTarget.h: ENH: Added + global TargetManifest computation between Configure and Generate + steps. This allows generators to know what other targets will + exist on disk when the build completes. + +2006-04-04 09:35 king + + * Source/: cmIncludeDirectoryCommand.cxx, + cmIncludeDirectoryCommand.h: ENH: INCLUDE_DIRECTORIES should have + been written to prepend to the include path so that the most + local directories are included first. This is a patch from Alex + to resolve the problem by allowing users to switch the default + using a variable CMAKE_INCLUDE_DIRECTORIES_BEFORE and then still + explicitly appending or prepending by using AFTER or BEFORE + arguments explicitly. + +2006-04-04 07:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-03 22:05 hoffman + + * Source/cmGlobalGenerator.cxx: ENH: use correct addcache call to + fix build tools + +2006-04-03 17:54 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: fix spaces in path for + xcode + +2006-04-03 16:20 hoffman + + * Source/: cmIncludeDirectoryCommand.cxx, + cmLinkDirectoriesCommand.cxx: ENH: make sure include and lib dirs + are unix paths + +2006-04-03 15:59 hoffman + + * Source/cmFileCommand.cxx: ENH: fix warning, and remove debug code + +2006-04-03 12:57 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, + cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmSetTargetPropertiesCommand.h: ENH: add support for per config + target LINK_FLAGS + +2006-04-03 07:37 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-02 11:20 andy + + * Source/: CMakeLists.txt, CPack/cmCPackGenerators.cxx, + CPack/cmCPackGenericGenerator.cxx, + CPack/cmCPackNSISGenerator.cxx, + CPack/cmCPackPackageMakerGenerator.cxx, + CPack/cmCPackZIPGenerator.cxx, CPack/cmCPackZIPGenerator.h, + CPack/cpack.cxx: ENH: Add ZIP generator and add support for + including or excluding the toplevel directory + +2006-04-02 08:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-04-01 07:37 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-31 21:43 hoffman + + * Source/: cmOrderLinkDirectories.cxx, cmOrderLinkDirectories.h: + ENH: fix spelling + +2006-03-31 17:59 hoffman + + * Source/cmOrderLinkDirectories.cxx: ENH: fix for bug 3067 the + first framework ate the rest of the libraries + +2006-03-31 13:17 hoffman + + * bootstrap, Source/CMakeLists.txt, Source/cmGlobalGenerator.cxx, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmTryCompileCommand.cxx, Source/cmakemain.cxx, + Source/cmakexbuild.cxx: ENH: add a wrapper for xcodebuild to get + around bug and verbose output + +2006-03-31 08:46 hoffman + + * Utilities/cmcurl/getdate.c: ENH: remove c++ comment from c code + +2006-03-31 08:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-30 23:03 hoffman + + * Utilities/cmtar/append.c: ENH: remove warning + +2006-03-30 17:26 hoffman + + * Source/cmakexbuild.cxx: ENH: add program to run xcodebuild and + get around bug + +2006-03-30 16:55 king + + * Modules/Platform/Windows-cl.cmake: BUG: Fixed order of options to + cl for 32-bit/64-bit test to work with VS 6 NMake. + +2006-03-30 15:39 king + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalKdevelopGenerator.cxx, cmGlobalMSYSMakefileGenerator.cxx, + cmGlobalMinGWMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalWatcomWMakeGenerator.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, + cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmMakefileTargetGenerator.cxx: ENH: Implemented VT100 terminal + escape sequences. If CMAKE_COLOR_MAKEFILE is set then messages + produced by makefiles will be in color if the native tool + supports it. This addresses bug#3060. + +2006-03-30 13:49 hoffman + + * Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-cl.cmake.in, Source/CMakeLists.txt, + Source/cmCommandArgumentParserHelper.cxx, + Source/cmDependsJavaParserHelper.cxx, + Source/cmExecuteProcessCommand.cxx, Source/cmGlobalGenerator.cxx, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalVisualStudio8Generator.h, + Source/cmGlobalVisualStudio8Win64Generator.cxx, + Source/cmGlobalVisualStudio8Win64Generator.h, + Source/cmIfCommand.cxx, Source/cmListCommand.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmXMLParser.cxx, + Source/cmake.cxx, Source/CTest/cmCTestHandlerCommand.cxx, + Source/CTest/cmCTestMemCheckHandler.cxx, + Source/CTest/cmCTestSubmitHandler.cxx, + Source/kwsys/CommandLineArguments.cxx, Source/kwsys/Glob.cxx, + Source/kwsys/ProcessWin32.c, Source/kwsys/Registry.cxx, + Source/kwsys/SystemTools.cxx, Source/kwsys/hashtable.hxx.in, + Source/kwsys/testDynamicLoader.cxx, + Utilities/cmcurl/CMakeLists.txt, Utilities/cmcurl/getdate.c, + Utilities/cmcurl/inet_pton.c, Utilities/cmcurl/md5.c, + Utilities/cmcurl/mprintf.c, Utilities/cmtar/CMakeLists.txt, + Utilities/cmtar/append.c, Utilities/cmtar/block.c, + Utilities/cmtar/extract.c, Utilities/cmtar/handle.c, + Utilities/cmtar/output.c, Utilities/cmtar/compat/snprintf.c, + Utilities/cmxmlrpc/xmlrpc_array.c, + Utilities/cmxmlrpc/xmlrpc_client.c, + Utilities/cmxmlrpc/xmlrpc_data.c, + Utilities/cmxmlrpc/xmlrpc_expat.c, + Utilities/cmxmlrpc/xmlrpc_parse.c, + Utilities/cmxmlrpc/xmlrpc_registry.c, + Utilities/cmxmlrpc/xmlrpc_serialize.c, + Utilities/cmxmlrpc/xmlrpc_struct.c, + Utilities/cmxmlrpc/xmlrpc_strutil.c, + Utilities/cmxmlrpc/xmlrpc_support.c: ENH: add support for win64 + for visual studio 2005 ide and nmake, also fix warnings produced + by building for win64 + +2006-03-30 13:33 king + + * Source/: cmFileCommand.cxx, cmGlobalGenerator.cxx, + cmGlobalGenerator.h, cmInstallCommand.cxx, cmInstallCommand.h, + cmInstallFilesGenerator.cxx, cmInstallFilesGenerator.h, + cmInstallGenerator.cxx, cmInstallGenerator.h, + cmInstallTargetGenerator.cxx, cmInstallTargetGenerator.h, + cmLocalGenerator.cxx: ENH: Added named component installation + implementation. Installation behavior should be unchanged unless + -DCOMPONENT= is specified when cmake_install.cmake is + invoked. + +2006-03-30 11:55 hoffman + + * Source/: cmFileCommand.cxx, cmFindBase.cxx, cmFindBase.h: ENH: + make sure framework search order is correct + +2006-03-30 09:17 martink + + * Source/cmGlobalGenerator.cxx: ENH: modified the relative path + code to not do relative paths between bin and source + +2006-03-30 08:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-29 16:34 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: Use + PBXResourcesBuildPhase for resrources + +2006-03-29 16:34 hoffman + + * Modules/Platform/Darwin.cmake: ENH: use correct name for path + +2006-03-29 16:25 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: Simplify. Instead of + doing ../MacOS just copy to current directory + +2006-03-29 16:21 andy + + * Source/cmXCode21Object.cxx: ENH: Add support for Xcode 2.1 + +2006-03-29 15:02 andy + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCodeObject.cxx, + cmXCodeObject.h: ENH: Add copy stages for bundle files + +2006-03-29 13:33 hoffman + + * Source/cmFindBase.cxx, Tests/BundleTest/CMakeLists.txt: ENH: add + a test for find framework stuff in find_library, and fix the + framework search stuff + +2006-03-29 13:26 hoffman + + * Source/kwsys/CMakeLists.txt: ENH: remove test on cygwin since it + randomly fails + +2006-03-29 12:33 andy + + * Source/CTest/: cmCTestBuildCommand.cxx, + cmCTestConfigureCommand.cxx, cmCTestCoverageCommand.cxx, + cmCTestSubmitCommand.cxx, cmCTestUpdateCommand.cxx: COMP: Return + 0 instead of false + +2006-03-29 12:01 andy + + * Source/cmCTest.cxx, Source/cmCTest.h, + Source/CTest/cmCTestBuildCommand.cxx, + Source/CTest/cmCTestBuildCommand.h, + Source/CTest/cmCTestBuildHandler.cxx, + Source/CTest/cmCTestConfigureCommand.cxx, + Source/CTest/cmCTestConfigureCommand.h, + Source/CTest/cmCTestCoverageCommand.cxx, + Source/CTest/cmCTestCoverageCommand.h, + Source/CTest/cmCTestCoverageHandler.cxx, + Source/CTest/cmCTestHandlerCommand.cxx, + Source/CTest/cmCTestMemCheckHandler.cxx, + Source/CTest/cmCTestSubmitCommand.cxx, + Source/CTest/cmCTestSubmitCommand.h, + Source/CTest/cmCTestTestCommand.h, + Source/CTest/cmCTestTestHandler.cxx, + Source/CTest/cmCTestUpdateCommand.cxx, + Source/CTest/cmCTestUpdateCommand.h, + Tests/CTestTest3/test.cmake.in: ENH: Several cleanups and make + sure things get propagated where they should. Also, allow to load + CTest custom files to the actual ctest -S script + +2006-03-29 09:10 andy + + * Source/cmSetSourceFilesPropertiesCommand.cxx: COMP: Remove + warning + +2006-03-29 08:31 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-28 16:36 andy + + * Source/CTest/cmCTestReadCustomFilesCommand.cxx, + Tests/CTestTest3/test.cmake.in: BUG: Fix the read custom files + command and add a coverage test + +2006-03-28 16:25 andy + + * Source/: cmLocalGenerator.cxx, cmTarget.cxx: COMP: Remove + warnings + +2006-03-28 15:20 andy + + * Source/cmCTest.cxx: ENH: Pass handler flags to both test and + memcheck handler + +2006-03-28 15:19 andy + + * Source/: CMakeLists.txt, cmCTest.h: ENH: Add new ctest command + +2006-03-28 14:45 king + + * Source/cmFindBase.cxx: ENH: Added check of + CMAKE_BACKWARDS_COMPATIBILITY to skip the CMake system path + search when simulating CMake 2.2 and earlier. + +2006-03-28 14:37 andy + + * Source/CTest/: cmCTestReadCustomFilesCommand.cxx, + cmCTestReadCustomFilesCommand.h, cmCTestScriptHandler.cxx: ENH: + Add command to read ctest custom files + +2006-03-28 13:48 andy + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Handle spaces in + the path + +2006-03-28 13:23 andy + + * Tests/BundleTest/: BundleLib.cxx, BundleTest.cxx: ENH: Check if + files exist + +2006-03-28 13:16 andy + + * Source/: cmFileCommand.cxx, cmInstallGenerator.cxx, + cmInstallTargetGenerator.cxx, cmTarget.h: ENH: Add proper support + for installing bundles + +2006-03-28 13:07 alex + + * Modules/FindKDE4.cmake: STYLE: better error message when KDE4 + hasn't been found + + Alex + +2006-03-28 10:58 king + + * Source/cmInstallTargetGenerator.cxx: BUG: Pay attention to the + MACOSX_BUNDLE target property only on APPLE platforms. + +2006-03-28 08:54 andy + + * Modules/Platform/Darwin.cmake, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmMakefileExecutableTargetGenerator.cxx, + Source/cmMakefileTargetGenerator.cxx, + Source/cmMakefileTargetGenerator.h, + Source/cmSetSourceFilesPropertiesCommand.cxx, + Tests/BundleTest/CMakeLists.txt, + Tests/BundleTest/SomeRandomFile.txt, + Tests/BundleTest/randomResourceFile.plist.in: ENH: Add support + for adding content to bundles + +2006-03-28 08:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-27 12:21 hoffman + + * Modules/Platform/UnixPaths.cmake: ENH: add /opt/local/include + +2006-03-27 11:09 hoffman + + * Modules/Platform/: FreeBSD.cmake, OpenBSD.cmake: ENH: add unix + paths + +2006-03-27 10:46 hoffman + + * Modules/Platform/: FreeBSD.cmake, HP-UX.cmake, IRIX.cmake, + IRIX64.cmake, NetBSD.cmake, OSF1.cmake, SCO_SV.cmake, + SINIX.cmake, Tru64.cmake, ULTRIX.cmake, UNIX_SV.cmake, + UnixPaths.cmake, UnixWare.cmake, Xenix.cmake, kFreeBSD.cmake: + ENH: add more search paths and add UnixPaths to all unix + platforms + +2006-03-27 08:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-26 08:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-25 08:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-24 16:13 hoffman + + * Source/cmListCommand.cxx: ENH: allow unset vars to be used in + list length + +2006-03-24 16:11 king + + * CMakeLists.txt, Source/cmInstallCommand.cxx, + Source/cmInstallCommand.h, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Added ARCHIVE option + to the TARGETS mode of the INSTALL command. It is a third option + added to RUNTIME and LIBRARY property types. Static libraries + and import libraries are now treated as ARCHIVE targets instead + of LIBRARY targets. This adds a level of granularity necessary + for upcoming features. Also updated the CVS CMake patch level + set in CMake_VERSION_PATCH from 4 to 5 to allow users of this + version to know whether this incompatible change is present. + +2006-03-24 14:47 king + + * Modules/FindPythonLibs.cmake: ENH: Updated implementation to use + new FIND_* command power. The correct library is now found on + MinGW also. + +2006-03-24 14:16 king + + * Source/: cmFindBase.cxx, cmFindBase.h: ENH: Added + NO_CMAKE_ENVIRONMENT_PATH, NO_CMAKE_PATH, + NO_SYSTEM_ENVIRONMENT_PATH, and NO_CMAKE_SYSTEM_PATH options back + to allow more granularity than NO_DEFAULT_PATH. + +2006-03-24 14:15 king + + * Modules/Platform/UnixPaths.cmake: BUG: Fix '/use/lib' to be + '/usr/lib'. + +2006-03-24 12:20 martink + + * Tests/CustomCommand/: CMakeLists.txt, + GeneratedHeader/CMakeLists.txt: BUG: fix test to list generate + dheader + +2006-03-24 09:15 hoffman + + * Modules/Platform/Darwin.cmake, Source/cmGlobalXCodeGenerator.cxx, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalXCodeGenerator.cxx, Source/cmTryCompileCommand.cxx, + Tests/ExternalOBJ/CMakeLists.txt, + Tests/ExternalOBJ/Object/CMakeLists.txt, + Tests/X11/CMakeLists.txt: ENH: add support for universal binaries + +2006-03-24 08:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-23 15:35 andy + + * Source/CTest/cmCTestBuildAndTestHandler.cxx: COMP: Remove warning + +2006-03-23 13:55 martink + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: ENH: removed unused rules from + targets for VS + +2006-03-23 11:19 andy + + * Source/cmCTest.cxx: BUG: Fix CTestCustom.ctest file + +2006-03-23 10:10 hoffman + + * CTestCustom.ctest.in: ENH: try to get rid of warning on HP + +2006-03-23 09:56 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: More error handling + +2006-03-23 08:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-22 17:21 hoffman + + * Source/cmExecuteProcessCommand.cxx: ENH: do not dereference empty + stl vectors + +2006-03-22 15:01 martink + + * Tests/: Complex/VarTests.cmake, + Complex/Executable/CMakeLists.txt, + Complex/Executable/Included.cmake, + Complex/Executable/complex.cxx, ComplexOneConfig/VarTests.cmake, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/Included.cmake, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/VarTests.cmake, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/Included.cmake, + ComplexRelativePaths/Executable/complex.cxx: ENH: added testing + for new features + +2006-03-22 14:45 andy + + * Source/cmMakefile.cxx: BUG: Fix logic. If the variable is not + set, then it is always ok to write the file + +2006-03-22 14:40 andy + + * Source/: cmAddCustomCommandCommand.cxx, + cmConfigureFileCommand.cxx, cmExecuteProcessCommand.cxx, + cmFileCommand.cxx, cmMakeDirectoryCommand.cxx, cmMakefile.cxx, + cmMakefile.h, cmWriteFileCommand.cxx: ENH: Allow blocking of + writing into the source tree + +2006-03-22 14:06 martink + + * Source/: cmGetDirectoryPropertyCommand.h, + cmGetSourceFilePropertyCommand.cxx, + cmGetSourceFilePropertyCommand.h, cmIfCommand.cxx, cmIfCommand.h, + cmMakefile.cxx, cmMakefile.h, cmSourceFile.cxx: ENH: added some + new functionality + +2006-03-22 13:04 andy + + * Source/: cmBootstrapCommands.cxx, cmCommands.cxx, cmake.cxx: + COMP: Fix apple bootstrap issues + +2006-03-22 11:14 andy + + * Source/cmBootstrapCommands.cxx, + Modules/CheckCSourceCompiles.cmake, + Modules/CheckCXXSourceCompiles.cmake, Source/cmCommands.cxx, + Source/cmWriteFileCommand.cxx, + Utilities/cmxmlrpc/CMake/TryCompileFromSource.cmake: ENH: Cleanup + bootstrap even more + +2006-03-22 11:10 king + + * Modules/Platform/Windows-gcc.cmake, Source/cmLocalGenerator.cxx: + ENH: Added support for linking to MS .lib libraries in MinGW. + +2006-03-22 09:58 andy + + * bootstrap, Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmakemain.cxx: ENH: Remove things from bootstrap + +2006-03-22 08:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-21 17:47 barre + + * Source/kwsys/SystemTools.cxx: ENH: the arguments to this function + were not checked in a robust way + +2006-03-21 16:59 andy + + * CMakeLists.txt: ENH: Add flag for MFC + +2006-03-21 16:58 andy + + * Modules/InstallRequiredSystemLibraries.cmake: ENH: Handle visual + studio versions + +2006-03-21 16:39 andy + + * Source/cmCTest.cxx: ENH: Two things. If there is + CTestCustom.cmake in the toplevel directory read that file only. + If there is CTestCustom.ctest in the toplevel directory, do the + glob, if there is none, do nothing + +2006-03-21 16:03 andy + + * Source/cmFileCommand.cxx, Source/cmFileCommand.h, + Tests/StringFileTest/CMakeLists.txt: ENH: Add relative tag and + add test for relative tag + +2006-03-21 16:02 andy + + * Source/kwsys/: Glob.cxx, Glob.hxx.in: ENH: Add support for + relative paths and cleanup + +2006-03-21 16:01 andy + + * Source/cmCTest.cxx: BUG: Handle visual studio 8 + +2006-03-21 12:56 alex + + * Modules/FindKDE3.cmake: BUG: put the path to the kde3 lib dir in + KDE3_LIB_DIR, not the complete libkdecore.so + + Alex + +2006-03-21 12:54 andy + + * bootstrap, Source/CMakeLists.txt, Source/cmCTest.cxx, + Source/cmCacheManager.cxx, Source/cmFileCommand.cxx, + Source/cmFindPathCommand.cxx, Source/cmGlob.cxx, Source/cmGlob.h, + Source/CTest/cmCTestCoverageHandler.cxx: ENH: Remove cmGlob and + use glob from kwsys + +2006-03-21 08:45 king + + * Source/cmLocalGenerator.cxx: ENH: Enabling + CMAKE_INCLUDE_CURRENT_DIR even for in-source builds to be more + consistent with its name. This also makes double-quote and + angle-bracket include styles (almost) identical. + +2006-03-21 08:20 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-20 16:24 andy + + * Source/CPack/cmCPackPackageMakerGenerator.cxx: ENH: Handle + unusual path for packagemaker + +2006-03-20 12:29 alex + + * Modules/: AddFileDependencies.cmake, FindPNG.cmake, + KDE3Macros.cmake: BUG: don't include MacroLibrary.cmake, but add + a cmake module which implements ADD_FILE_DEPENDENCIES() ENH: mark + the variables from FindPNG.cmake as advanced + + Alex + +2006-03-20 07:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-19 07:53 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-18 12:23 hoffman + + * CTestCustom.ctest.in: ENH: add more warning stuff + +2006-03-18 12:16 alex + + * Modules/FindKDE3.cmake: STYLE: fix typos + + Alex + +2006-03-18 08:59 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-17 16:30 andy + + * Source/cmConfigure.cmake.h.in: ENH: Propagate cmake variables to + macros in C + +2006-03-17 16:14 andy + + * CMakeLists.txt, Source/CMakeLists.txt, Source/cmSystemTools.cxx: + ENH: Simplify the test + +2006-03-17 15:47 andy + + * Source/CMakeLists.txt: COMP: Use the current cmake's + CheckCXXSourceCompiles + +2006-03-17 15:46 andy + + * Source/: CMakeLists.txt, cmSystemTools.cxx, cmSystemTools.h, + cmake.cxx: ENH: Handle missing unsetenv and add check for environ + +2006-03-17 15:33 hoffman + + * Source/cmSystemTools.cxx: ENH: make cmake compile + +2006-03-17 12:31 andy + + * Source/cmSystemTools.cxx: COMP: Fix windows + +2006-03-17 12:24 andy + + * Source/cmSystemTools.cxx: COMP: Handle windows with hack for now + +2006-03-17 12:06 malaterre + + * Source/kwsys/: Directory.cxx, Directory.hxx.in, SystemTools.cxx, + SystemTools.hxx.in: ENH: Use const char where it should have + been. At same time fix Bug#2958 + +2006-03-17 11:44 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Add a method to + remove environment variables + +2006-03-17 11:14 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, cmake.cxx: ENH: Use + vector of plain strings and add cmake -E command for getting + environment + +2006-03-17 10:58 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Add access for + all environment variables + +2006-03-17 09:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-16 18:24 king + + * Source/cmGlobalGenerator.cxx: BUG: When generating the install + rules for CMake itself the per-configuration subdirectory must be + used to specify the executable location. + +2006-03-16 17:49 hoffman + + * Source/: cmFindBase.cxx, cmFindBase.h: ENH: clean up find stuff + so that NO_SYSTEM_PATH is backwards compatible and you get put + system env variables in the find commands + +2006-03-16 17:40 king + + * Modules/Platform/Windows-cl.cmake: BUG: /DWIN32 and /D_WINDOWS + should be defined for all configurations or if no configuration + is set. + +2006-03-16 17:26 king + + * Source/kwsys/auto_ptr.hxx.in: COMP: Skip trying to use native + auto_ptr implementation and just provide a conforming one. + +2006-03-16 17:20 king + + * Tests/: Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: BUG: Removed + compiled-in CMAKE_SHARED_MODULE_PREFIX and + CMAKE_SHARED_MODULE_SUFFIX for loaded commands in favor of using + the settings from the platform files. + +2006-03-16 17:09 king + + * Source/: cmConfigure.cmake.h.in, cmDynamicLoader.cxx, + cmDynamicLoader.h, cmLoadCommandCommand.cxx: BUG: Removed + compiled-in CMAKE_SHARED_MODULE_PREFIX and + CMAKE_SHARED_MODULE_SUFFIX for loaded commands in favor of using + the settings from the platform files. + +2006-03-16 17:07 king + + * Modules/CMakeSystemSpecificInformation.cmake: BUG: When copying + the module variables from shared library variables use double + quotes for the required definitions ...PREFIX and ...SUFFIX to + make sure a value is set even if it is empty. + +2006-03-16 16:04 king + + * Source/cmExportLibraryDependencies.cxx: COMP: Using KWSys + auto_ptr to avoid cross-platform problems. + +2006-03-16 16:04 king + + * Source/kwsys/: CMakeLists.txt, auto_ptr.hxx.in: ENH: Adding + auto_ptr to KWSys to provide a conforming version everywhere. + +2006-03-16 15:53 alex + + * Modules/FindKDE4.cmake: ENH: after searching for kde-config in + the special dirs, search again in the standard dirs BUG: handle + paths on windows correctly + + Alex + +2006-03-16 15:50 king + + * Source/cmExportLibraryDependencies.cxx: COMP: Fix for auto_ptr + usage on VC6's broken implementation. + +2006-03-16 14:51 king + + * Source/cmLocalGenerator.cxx: BUG: Fixed generation of mismatched + IF in install script. This bug was introduced during the m_ + sweep. + +2006-03-16 14:44 king + + * Source/: cmCommandArgumentParser.cxx, cmCommandArgumentParser.y: + COMP: Fix malloc/free declaration for windows compilers. + +2006-03-16 14:14 king + + * Source/cmExportLibraryDependencies.cxx: BUG: Do not leak the + ofstream object in append mode. Just use an auto_ptr for both + cases. + +2006-03-16 11:57 king + + * Source/: cmCommandArgumentParser.cxx, cmCommandArgumentParser.y, + cmCommandArgumentParserTokens.h: ENH: Using patch from Frans + Englich to clarify error messages. + +2006-03-16 11:34 andy + + * Source/CTest/cmCTestTestHandler.h: COMP: Make members protected + so that subclass can use them + +2006-03-16 11:29 andy + + * Source/CTest/: cmCTestMemCheckHandler.cxx, + cmCTestTestHandler.cxx: BUG: Couple of memcheck bugs: Log files + should really be different for test and memcheck. Also make sure + to not trunkate the output of the test until the valgrind or any + other checking is pefrormed. + +2006-03-16 11:28 hoffman + + * Source/CursesDialog/cmCursesMainForm.cxx: ENH: not all messages + are errors + +2006-03-16 11:27 hoffman + + * Source/cmOrderLinkDirectories.cxx: ENH: don't put the default + framework path in a -F option + +2006-03-16 11:21 andy + + * Source/kwsys/DynamicLoader.hxx.in: COMP: Fix problem with + namespace + +2006-03-16 11:15 king + + * Modules/Platform/FreeBSD.cmake: ENH: Enabling soname support on + FreeBSD. + +2006-03-16 11:01 andy + + * Source/cmDynamicLoader.cxx, Source/cmDynamicLoader.h, + Source/cmLoadCommandCommand.cxx, Source/cmSystemTools.cxx, + Source/cmakemain.cxx, Source/kwsys/DynamicLoader.cxx, + Source/kwsys/DynamicLoader.hxx.in, + Source/kwsys/testDynamicLoader.cxx, Source/kwsys/testDynload.c, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: Cleanup + DynamicLoader so that the symbols have more consistent names, + start using dynamic loader from kwsys in CMake + +2006-03-16 10:53 martink + + * Source/: cmGlobalGenerator.h, cmLocalVisualStudio7Generator.h, + cmLocalXCodeGenerator.h, cmMakefile.h: STYLE: minor comment + cleanups + +2006-03-16 10:44 martink + + * Source/CursesDialog/: cmCursesBoolWidget.cxx, + cmCursesCacheEntryComposite.cxx, cmCursesCacheEntryComposite.h, + cmCursesDummyWidget.cxx, cmCursesFilePathWidget.cxx, + cmCursesForm.cxx, cmCursesForm.h, cmCursesLabelWidget.cxx, + cmCursesLongMessageForm.cxx, cmCursesLongMessageForm.h, + cmCursesMainForm.cxx, cmCursesMainForm.h, cmCursesPathWidget.cxx, + cmCursesPathWidget.h, cmCursesStringWidget.cxx, + cmCursesStringWidget.h, cmCursesWidget.cxx, cmCursesWidget.h: + ENH: m_ cleanup for curses + +2006-03-16 09:33 martink + + * Source/: cmAddTestCommand.h, cmData.h, cmDependsC.cxx, + cmDependsC.h, cmStandardIncludes.h, cmUseMangledMesaCommand.h, + cmVariableRequiresCommand.h: ENH: a warning fix and some more + cleanup + +2006-03-16 09:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-15 16:32 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix warning + +2006-03-15 14:14 hoffman + + * Modules/Platform/IRIX64.cmake: ENH: use c not cxx + +2006-03-15 13:20 alex + + * Modules/UsePkgConfig.cmake: BUG: change the formatting of the + pkgconfig module documentation so that it doesn't crash some + versions of konqueror (fixed with current konqy) + + Alex + +2006-03-15 12:02 hoffman + + * Source/: cmGlobalXCode21Generator.cxx, + cmGlobalXCodeGenerator.cxx, cmake.cxx: ENH: fix up this changes + for mac + +2006-03-15 11:38 martink + + * Source/: cmGlobalXCodeGenerator.cxx, cmMakeDepend.cxx, + cmMakeDepend.h, cmXCodeObject.cxx, cmXCodeObject.h: BUG: some + UNIX fixes for my m_ commit + +2006-03-15 11:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-15 11:01 martink + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomTargetCommand.cxx, cmAddDefinitionsCommand.cxx, + cmAddDependenciesCommand.cxx, cmAddExecutableCommand.cxx, + cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmAddSubDirectoryCommand.cxx, cmAddTestCommand.cxx, + cmAuxSourceDirectoryCommand.cxx, cmBuildCommand.cxx, + cmBuildNameCommand.cxx, cmCMakeMinimumRequired.cxx, + cmCPluginAPI.cxx, cmCTest.cxx, cmCTest.h, cmCacheManager.cxx, + cmCacheManager.h, cmCommand.h, cmCommandArgumentLexer.cxx, + cmCommandArgumentParserHelper.cxx, + cmCommandArgumentParserHelper.h, cmConfigureFileCommand.cxx, + cmConfigureFileCommand.h, cmCreateTestSourceList.cxx, + cmCustomCommand.cxx, cmCustomCommand.h, cmDepends.cxx, + cmDepends.h, cmDependsC.cxx, cmDependsC.h, cmDependsFortran.cxx, + cmDependsFortran.h, cmDependsFortranLexer.cxx, + cmDependsJavaLexer.cxx, cmDynamicLoader.cxx, + cmEnableLanguageCommand.cxx, cmEnableTestingCommand.cxx, + cmEndIfCommand.cxx, cmExecProgramCommand.cxx, + cmExecuteProcessCommand.cxx, cmExportLibraryDependencies.cxx, + cmExportLibraryDependencies.h, cmExprLexer.cxx, + cmExprParserHelper.cxx, cmExprParserHelper.h, + cmFLTKWrapUICommand.cxx, cmFLTKWrapUICommand.h, + cmFileCommand.cxx, cmFileTimeComparison.cxx, + cmFileTimeComparison.h, cmFindBase.cxx, cmFindLibraryCommand.cxx, + cmFindPackageCommand.cxx, cmFindPathCommand.cxx, + cmFindProgramCommand.cxx, cmForEachCommand.cxx, + cmForEachCommand.h, cmGeneratedFileStream.cxx, + cmGeneratedFileStream.h, cmGetCMakePropertyCommand.cxx, + cmGetDirectoryPropertyCommand.cxx, + cmGetFilenameComponentCommand.cxx, + cmGetSourceFilePropertyCommand.cxx, + cmGetTargetPropertyCommand.cxx, cmGetTestPropertyCommand.cxx, + cmGlob.cxx, cmGlob.h, cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalKdevelopGenerator.cxx, cmGlobalMSYSMakefileGenerator.cxx, + cmGlobalMinGWMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, + cmGlobalVisualStudio8Generator.cxx, + cmGlobalWatcomWMakeGenerator.cxx, cmGlobalXCode21Generator.cxx, + cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + cmIfCommand.cxx, cmIfCommand.h, cmIncludeCommand.cxx, + cmIncludeDirectoryCommand.cxx, + cmIncludeExternalMSProjectCommand.cxx, + cmIncludeRegularExpressionCommand.cxx, cmInstallCommand.cxx, + cmInstallFilesCommand.cxx, cmInstallFilesCommand.h, + cmInstallProgramsCommand.cxx, cmInstallProgramsCommand.h, + cmInstallTargetGenerator.cxx, cmInstallTargetsCommand.cxx, + cmLinkDirectoriesCommand.cxx, cmLinkLibrariesCommand.cxx, + cmListCommand.cxx, cmListFileCache.cxx, cmListFileCache.h, + cmLoadCacheCommand.cxx, cmLoadCommandCommand.cxx, + cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h, cmMacroCommand.cxx, + cmMacroCommand.h, cmMakeDepend.cxx, cmMakeDepend.h, + cmMakefile.cxx, cmMakefile.h, + cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmMakefileTargetGenerator.cxx, cmMakefileTargetGenerator.h, + cmMarkAsAdvancedCommand.cxx, cmMathCommand.cxx, + cmMessageCommand.cxx, cmOptionCommand.cxx, + cmOrderLinkDirectories.cxx, cmOrderLinkDirectories.h, + cmOutputRequiredFilesCommand.cxx, cmOutputRequiredFilesCommand.h, + cmProjectCommand.cxx, cmQTWrapCPPCommand.cxx, + cmQTWrapCPPCommand.h, cmQTWrapUICommand.cxx, cmQTWrapUICommand.h, + cmRemoveCommand.cxx, cmRemoveDefinitionsCommand.cxx, + cmSeparateArgumentsCommand.cxx, cmSetCommand.cxx, + cmSetDirectoryPropertiesCommand.cxx, + cmSetSourceFilesPropertiesCommand.cxx, + cmSetTargetPropertiesCommand.cxx, + cmSetTestsPropertiesCommand.cxx, cmSiteNameCommand.cxx, + cmSourceFile.cxx, cmSourceFile.h, cmSourceGroup.cxx, + cmSourceGroup.h, cmSourceGroupCommand.cxx, cmStringCommand.cxx, + cmSubdirCommand.cxx, cmTarget.cxx, cmTarget.h, + cmTargetLinkLibrariesCommand.cxx, cmTargetLinkLibrariesCommand.h, + cmTest.cxx, cmTest.h, cmTryCompileCommand.cxx, + cmTryRunCommand.cxx, cmUtilitySourceCommand.cxx, + cmVTKMakeInstantiatorCommand.cxx, cmVTKMakeInstantiatorCommand.h, + cmVTKWrapJavaCommand.cxx, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.cxx, cmVTKWrapPythonCommand.h, + cmVTKWrapTclCommand.cxx, cmVTKWrapTclCommand.h, + cmVariableRequiresCommand.cxx, cmVariableWatch.cxx, + cmVariableWatch.h, cmWhileCommand.cxx, cmWhileCommand.h, + cmWin32ProcessExecution.cxx, cmWin32ProcessExecution.h, + cmWriteFileCommand.cxx, cmXCode21Object.cxx, cmXCodeObject.cxx, + cmXCodeObject.h, cmake.cxx, cmake.h, cmakemain.cxx, + cmakewizard.cxx, cmakewizard.h, CTest/cmCTestBuildCommand.cxx, + CTest/cmCTestConfigureCommand.cxx, + CTest/cmCTestCoverageCommand.cxx, + CTest/cmCTestHandlerCommand.cxx, + CTest/cmCTestMemCheckCommand.cxx, CTest/cmCTestStartCommand.cxx, + CTest/cmCTestSubmitCommand.cxx, CTest/cmCTestTestCommand.cxx, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestUpdateCommand.cxx: + STYLE: some m_ to this-> cleanup + +2006-03-15 09:23 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Add svn cleanup + before running svn + +2006-03-15 09:22 andy + + * Source/CPack/cmCPackGenericGenerator.cxx: ENH: Allow multiple + install directories + +2006-03-14 16:38 hoffman + + * Modules/FindOpenGL.cmake: ENH: go back to finding the framework + opengl on the mac + +2006-03-14 15:19 hoffman + + * Modules/FindOpenGL.cmake: ENH: use standard include path for + OpenGL + +2006-03-14 14:03 hoffman + + * Modules/Platform/Darwin.cmake, + Source/cmMakefileLibraryTargetGenerator.cxx, + Source/cmMakefileTargetGenerator.cxx, + Source/cmMakefileTargetGenerator.h: ENH: add support for removing + language flags from shared library and shared module link + commands + +2006-03-14 11:35 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Fixed object file + name construction to use Convert method for relative path + conversion. Also fixed test of result to check explicitly for a + full path. + +2006-03-14 10:14 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Avoid full paths + and spaces when constructing object file names. + +2006-03-14 09:37 king + + * Source/cmMakefile.cxx: BUG: Clarified confusing error message. + +2006-03-14 02:31 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-13 16:45 andy + + * Source/CPack/cmCPackGenericGenerator.h: STYLE: Fix style checker + +2006-03-13 15:57 malaterre + + * Source/kwsys/testDynamicLoader.cxx: COMP: Fix warning + +2006-03-13 15:19 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: Introducing new + policy to construct more unique object file names. This should + allow multiple sources with the same file name but different FULL + paths to be added to a single target. + +2006-03-13 14:39 malaterre + + * Source/kwsys/: DynamicLoader.cxx, testDynamicLoader.cxx: BUG: Fix + problem on MacOSX, by disabling part of the test. + +2006-03-13 13:11 hoffman + + * Modules/VTKCompatibility.cmake: ENH: add backwards compatibility + fix for more aggressive find_path command + +2006-03-13 11:27 malaterre + + * Source/kwsys/DynamicLoader.cxx: ENH: Fix dashboard with coverage + +2006-03-13 10:49 malaterre + + * Source/kwsys/CMakeLists.txt: ENH: Do not build the library if we + are not doing Testing + +2006-03-13 10:27 malaterre + + * Source/kwsys/testDynamicLoader.cxx: ENH: Make test usable from + command line + +2006-03-13 02:31 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-12 10:03 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: remove warning + +2006-03-12 09:43 hoffman + + * Source/CMakeLists.txt: ENH: remove test until it works + +2006-03-12 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-11 12:43 hoffman + + * Modules/FindOpenGL.cmake: ENH: take advantage of new framework + stuff + +2006-03-11 11:53 hoffman + + * Source/cmake.cxx: ENH: remove print + +2006-03-11 11:52 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: try to clean up the search for + programs + +2006-03-11 10:09 malaterre + + * Source/kwsys/DynamicLoader.cxx: BUG: Fix for MINGW32 + +2006-03-11 09:59 malaterre + + * Source/kwsys/DynamicLoader.cxx: ENH: Add support for LastError on + HPUX + +2006-03-11 09:47 malaterre + + * Source/kwsys/DynamicLoader.cxx: ENH: Also look into data segment + (consistant with other implementation) + +2006-03-11 02:33 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-10 17:37 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: undo last change because it + broke the dashboard + +2006-03-10 16:53 hoffman + + * Source/: cmFileCommand.cxx, cmFileCommand.h: ENH: add a new FILE + SYSTEM_PATH that allows you to read a environment variable with a + path in it. + +2006-03-10 16:52 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: fix find program to look for + .com and .exe correctly and not return files with no extension on + windows + +2006-03-10 16:03 malaterre + + * Source/kwsys/: DynamicLoader.hxx.in, SystemTools.hxx.in: ENH: Add + documentation on the problem with system wide path for looking up + dynamic libraries. STYLE: Fix trailing white spaces + +2006-03-10 15:42 malaterre + + * Source/kwsys/testDynamicLoader.cxx: BUG: Need a / for Visual + Studio build + +2006-03-10 15:38 malaterre + + * Source/kwsys/: testDynamicLoader.cxx, testSystemTools.h.in: BUG: + Do the proper path + +2006-03-10 15:12 malaterre + + * Source/kwsys/testDynamicLoader.cxx: BUG: Need a trailing slash + +2006-03-10 15:08 malaterre + + * Source/kwsys/: CMakeLists.txt, testDynamicLoader.cxx, + testSystemTools.h.in: BUG: Fix problem with in the path + +2006-03-10 15:03 andy + + * Source/: cmCTest.cxx, cmCTest.h, + CTest/cmCTestBuildAndTestHandler.cxx, + CTest/cmCTestBuildAndTestHandler.h, + CTest/cmCTestBuildCommand.cxx, CTest/cmCTestBuildCommand.h, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestBuildHandler.h, + CTest/cmCTestCommand.h, CTest/cmCTestConfigureCommand.cxx, + CTest/cmCTestConfigureCommand.h, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestCoverageCommand.cxx, CTest/cmCTestCoverageCommand.h, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestEmptyBinaryDirectoryCommand.h, + CTest/cmCTestGenericHandler.cxx, CTest/cmCTestGenericHandler.h, + CTest/cmCTestHandlerCommand.cxx, CTest/cmCTestHandlerCommand.h, + CTest/cmCTestMemCheckCommand.cxx, CTest/cmCTestMemCheckCommand.h, + CTest/cmCTestMemCheckHandler.cxx, CTest/cmCTestMemCheckHandler.h, + CTest/cmCTestRunScriptCommand.cxx, + CTest/cmCTestRunScriptCommand.h, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestScriptHandler.h, CTest/cmCTestSleepCommand.cxx, + CTest/cmCTestSleepCommand.h, CTest/cmCTestStartCommand.cxx, + CTest/cmCTestStartCommand.h, CTest/cmCTestSubmitCommand.cxx, + CTest/cmCTestSubmitCommand.h, CTest/cmCTestSubmitHandler.cxx, + CTest/cmCTestSubmitHandler.h, CTest/cmCTestTestCommand.cxx, + CTest/cmCTestTestCommand.h, CTest/cmCTestTestHandler.cxx, + CTest/cmCTestTestHandler.h, CTest/cmCTestUpdateCommand.cxx, + CTest/cmCTestUpdateCommand.h, CTest/cmCTestUpdateHandler.cxx, + CTest/cmCTestUpdateHandler.h: STYLE: Fix some style issues + +2006-03-10 14:53 malaterre + + * Source/kwsys/: CMakeLists.txt, testDynamicLoader.cxx, + testSystemTools.h.in: BUG: Trying to get testDynamicLoader to + work on Solaris and SunOS, where current directory is not lookup + when doing dlopen + +2006-03-10 13:54 hoffman + + * Source/: cmCommandArgumentLexer.h, + cmDependsFortranParserTokens.h, cmDependsJavaLexer.h, + cmDependsJavaParserHelper.h, cmDependsJavaParserTokens.h, + cmExecProgramCommand.h, cmExprLexer.h, cmExprParserTokens.h, + cmFLTKWrapUICommand.h, cmFileCommand.h, cmFindBase.h, + cmGlobalBorlandMakefileGenerator.h, cmGlobalGenerator.h, + cmGlobalMSYSMakefileGenerator.h, + cmGlobalMinGWMakefileGenerator.h, + cmGlobalNMakeMakefileGenerator.h, + cmGlobalUnixMakefileGenerator3.h, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.h, cmGlobalWatcomWMakeGenerator.h, + cmGlobalXCodeGenerator.h, cmListCommand.h, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator3.h, cmSourceFile.cxx, + cmStringCommand.cxx, cmSystemTools.cxx, cmTarget.cxx, + cmTargetLinkLibrariesCommand.cxx, cmTryCompileCommand.cxx, + cmTryRunCommand.cxx, cmUseMangledMesaCommand.cxx, + cmUtilitySourceCommand.cxx, cmVTKMakeInstantiatorCommand.cxx, + cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx, cmVariableRequiresCommand.cxx, + cmVariableWatch.cxx, cmVariableWatch.h, cmWhileCommand.cxx, + cmWin32ProcessExecution.cxx, cmXCode21Object.cxx, + cmXCodeObject.cxx, cmakemain.cxx: STYLE: fix line lengths + +2006-03-10 13:34 malaterre + + * Source/kwsys/SystemTools.cxx: STYLE: Remove trailing whitespaces + +2006-03-10 13:34 malaterre + + * Source/kwsys/: CMakeLists.txt, DynamicLoader.cxx: BUG: Fix + DynamicLoader implementation on MacOSX (using old API) + +2006-03-10 13:33 malaterre + + * Source/kwsys/SystemTools.cxx: ENH: Add trailing whitespace + +2006-03-10 13:06 andy + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomTargetCommand.cxx, cmAddDefinitionsCommand.cxx, + cmAddDefinitionsCommand.h, cmAddDependenciesCommand.cxx, + cmAddExecutableCommand.h, cmBuildCommand.cxx, + cmBuildNameCommand.h, cmCMakeMinimumRequired.cxx, + cmCPluginAPI.cxx, cmCPluginAPI.h, cmCacheManager.cxx, + cmCommandArgumentParser.cxx, cmCommandArgumentParserHelper.h, + cmCommandArgumentParserTokens.h, cmCreateTestSourceList.cxx, + cmCustomCommand.cxx, cmDependsC.cxx, cmDependsC.h, + cmDependsFortranLexer.cxx, cmDependsFortranLexer.h, + cmLocalVisualStudio7Generator.cxx, cmMacroCommand.cxx, + cmMacroCommand.h, cmMakeDepend.cxx, cmake.cxx, cmakewizard.cxx, + CPack/cmCPackGenerators.cxx, CPack/cmCPackGenerators.h, + CPack/cmCPackGenericGenerator.cxx, + CPack/cmCPackGenericGenerator.h, CPack/cmCPackLog.cxx, + CPack/cmCPackLog.h, CPack/cmCPackNSISGenerator.cxx, + CPack/cmCPackNSISGenerator.h, + CPack/cmCPackPackageMakerGenerator.cxx, + CPack/cmCPackSTGZGenerator.cxx, CPack/cmCPackSTGZGenerator.h, + CPack/cmCPackTGZGenerator.cxx, CPack/cmCPackTGZGenerator.h, + CPack/cpack.cxx: STYLE: Fix some style issues + +2006-03-10 12:47 andy + + * Source/CPack/cmCPackPackageMakerGenerator.cxx: STYLE: Cleanup + trailing spaces + +2006-03-10 12:01 malaterre + + * Source/kwsys/: Glob.cxx, Registry.cxx, RegularExpression.cxx, + testCommandLineArguments.cxx: STYLE: Make sure to use the proper + cast. + +2006-03-10 11:58 alex + + * Modules/FindKDE4.cmake: ENH: new module to find the + FindKDE4Internal.cmake installed by kdelibs4 + + Alex + +2006-03-10 11:57 malaterre + + * Source/kwsys/: DynamicLoader.cxx, testDynamicLoader.cxx: ENH: + Make sure that we find the proper symbol and not the one that + start with _. STYLE: Remove an old style cast + +2006-03-10 11:32 malaterre + + * Source/kwsys/: DynamicLoader.cxx, testDynamicLoader.cxx: ENH: + Hopefully have the DynamicLoader to the proper thing. + +2006-03-10 11:13 hoffman + + * Source/: cmCacheManager.h, cmLocalVisualStudio7Generator.h, + cmMakeDepend.h, cmMakefile.h, cmOutputRequiredFilesCommand.h, + cmProjectCommand.h, cmRemoveDefinitionsCommand.h, + cmSetTestsPropertiesCommand.h, cmSourceGroup.h, + cmStandardIncludes.h, cmStringCommand.h, cmSubdirCommand.h, + cmSystemTools.h, cmTarget.h, cmTryCompileCommand.h, + cmVariableWatch.h, cmXCode21Object.h, cmake.h: ENH: fix line + length style stuff + +2006-03-10 11:12 hoffman + + * Source/cmFindBase.cxx: ENH: avoid adding junk into paths + +2006-03-10 10:28 malaterre + + * Source/kwsys/testDynamicLoader.cxx: BUG: Make sure to have proper + dependencies + +2006-03-10 10:26 hoffman + + * Source/kwsys/CMakeLists.txt: ENH: use CMAKE_DL_LIBS and not dl + directly as it does not always exist + +2006-03-10 10:23 malaterre + + * Source/kwsys/CMakeLists.txt: COMP: Fix cygwin build + +2006-03-10 10:19 malaterre + + * Source/kwsys/testDynload.c: COMP: Fix compilation on MacOSX + (common symbols not allowed with MH_DYLIB output format) + +2006-03-10 10:12 andy + + * Source/CMakeLists.txt, Tests/BundleTest/CMakeLists.txt: ENH: Add + package to bundle test + +2006-03-10 10:07 andy + + * Source/kwsys/testDynamicLoader.cxx: COMP: Add missing include + +2006-03-10 02:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-09 17:16 malaterre + + * Source/kwsys/testDynload.c: BUG: Remove comment + +2006-03-09 17:15 malaterre + + * Source/kwsys/: testDynamicLoader.cxx, testDynload.c: ENH: remove + test temporarily + +2006-03-09 17:08 malaterre + + * Source/kwsys/: CMakeLists.txt, testDynamicLoader.cxx: ENH: Still + more coverage of the DynamicLoader + +2006-03-09 17:06 malaterre + + * Source/kwsys/testDynload.c: ENH: Add a file to generate the lib + +2006-03-09 16:40 malaterre + + * Source/kwsys/testDynamicLoader.cxx: ENH: Improve test coverage + +2006-03-09 16:40 malaterre + + * Source/kwsys/: Registry.cxx, Registry.hxx.in: STYLE: Minor style + +2006-03-09 15:55 king + + * CMakeLists.txt: ENH: Updated patch level to 4 for special KDE + release. + +2006-03-09 15:47 hoffman + + * Source/: cmCacheManager.cxx, cmCacheManager.h: ENH: if + CMakeCache.txt has been removed, then automatically remove + CMakefiles/*.cmake + +2006-03-09 15:00 hoffman + + * Modules/Platform/AIX.cmake: ENH: add correct initial flags for + aix + +2006-03-09 14:57 hoffman + + * Modules/Platform/Darwin.cmake: ENH: remove junk + +2006-03-09 14:41 malaterre + + * Source/kwsys/CMakeLists.txt: ENH: Carefully turn testing of + DynamicLib on + +2006-03-09 14:36 malaterre + + * Source/kwsys/: Directory.cxx, testSystemTools.cxx, + DynamicLoader.cxx: STYLE: Minor style + +2006-03-09 14:35 malaterre + + * Source/kwsys/testDynamicLoader.cxx: ENH: Adding initial test for + DynamicLoader + +2006-03-09 14:30 hoffman + + * Source/: cmFileCommand.cxx, cmFileCommand.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, + cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmMakefileTargetGenerator.cxx: ENH: use a cmake script to do the + clean step, this allows for large numbers of files to be removed + without making the command line too long + +2006-03-09 14:10 alex + + * Modules/: FindKDE.cmake, FindKDE3.cmake, KDE3Macros.cmake, + kde3init_dummy.cpp.in, kde3uic.cmake: ENH: add real-world-tested + and used KDE3 support, and obsolete FindKDE.cmake, which wasn't + used by anybody that I heard of + + Alex + +2006-03-09 11:57 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx: STYLE: Fix some style + issues + +2006-03-09 11:35 hoffman + + * Modules/FindTCL.cmake, Source/cmFindPathCommand.cxx: ENH: fix a + bug in the find path stuff so that it can find headers deep in + frameworks + +2006-03-09 11:17 andy + + * Source/CTest/: cmCTestBuildAndTestHandler.cxx, + cmCTestBuildCommand.cxx, cmCTestBuildHandler.cxx, + cmCTestBuildHandler.h, cmCTestConfigureCommand.cxx, + cmCTestConfigureCommand.h, cmCTestConfigureHandler.cxx, + cmCTestConfigureHandler.h, cmCTestCoverageCommand.cxx, + cmCTestCoverageCommand.h, cmCTestCoverageHandler.cxx, + cmCTestCoverageHandler.h, cmCTestEmptyBinaryDirectoryCommand.h, + cmCTestGenericHandler.cxx, cmCTestGenericHandler.h, + cmCTestHandlerCommand.cxx, cmCTestHandlerCommand.h, + cmCTestMemCheckCommand.h, cmCTestMemCheckHandler.cxx, + cmCTestRunScriptCommand.cxx, cmCTestScriptHandler.cxx, + cmCTestStartCommand.cxx, cmCTestStartCommand.h, + cmCTestSubmitCommand.cxx, cmCTestSubmitCommand.h, + cmCTestSubmitHandler.cxx, cmCTestTestCommand.cxx, + cmCTestTestHandler.cxx, cmCTestTestHandler.h, + cmCTestUpdateCommand.cxx, cmCTestUpdateCommand.h, + cmCTestUpdateHandler.cxx: STYLE: Fix some style issues + +2006-03-09 09:53 andy + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Fix problem on + Wacom system with global symbolic targets + +2006-03-09 08:32 andy + + * Source/CPack/: cmCPackGenericGenerator.cxx, + cmCPackPackageMakerGenerator.cxx, cpack.cxx: STYLE: Fix style + problems + +2006-03-09 08:20 andy + + * Utilities/: cmcurl/formdata.c, cmtar/libtar.h: COMP: Remove win64 + warnings + +2006-03-09 02:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-08 18:16 hoffman + + * Source/cmFindProgramCommand.cxx: ENH: make sure system path is + not added unless asked for + +2006-03-08 17:11 alex + + * Modules/UsePkgConfig.cmake: ENH: add a cmake module for using + pkg-config, tested in kdelibs, ok by Bill Hoffman + + Alex + +2006-03-08 16:33 andy + + * Source/CPack/: cmCPackGenerators.cxx, cmCPackGenerators.h, + cmCPackGenericGenerator.cxx, cmCPackGenericGenerator.h, + cmCPackLog.cxx, cmCPackLog.h, cmCPackNSISGenerator.cxx, + cmCPackNSISGenerator.h, cmCPackPackageMakerGenerator.cxx, + cmCPackPackageMakerGenerator.h, cmCPackSTGZGenerator.cxx, + cmCPackSTGZGenerator.h, cmCPackTGZGenerator.cxx, + cmCPackTGZGenerator.h, cpack.cxx: STYLE: Lots of formating to + remove style problems + +2006-03-08 14:02 andy + + * Source/CMakeLists.txt, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/InstallScript2.cmake, + Tests/SimpleInstall/TestSubDir/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/InstallScript2.cmake, + Tests/SimpleInstallS2/TestSubDir/CMakeLists.txt: ENH: Add + additional subdirectory to improve testing and to allow cleanup + when testing cpack + +2006-03-08 13:59 andy + + * Source/CPack/cmCPackPackageMakerGenerator.cxx: BUG: Handle + version with multiple dots + +2006-03-08 13:20 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: COMP: Ok, fix typo + +2006-03-08 13:13 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: Add testing for cpack + +2006-03-08 13:06 king + + * Source/kwsys/ProcessUNIX.c: ENH: Enabled process tree killing on + AIX. + +2006-03-08 12:42 king + + * Source/kwsys/ProcessUNIX.c: ENH: Enabled process tree killing on + the SGI. + +2006-03-08 12:36 king + + * Source/kwsys/ProcessUNIX.c: ENH: Enabled process tree killing for + FreeBSD and Sun. + +2006-03-08 12:12 king + + * Source/kwsys/ProcessUNIX.c: ENH: Enabled process tree killing on + HP-UX. + +2006-03-08 11:57 king + + * Source/kwsys/ProcessUNIX.c: BUG: Do not leak ps FILE when the + process starts but reading the header fails. + +2006-03-08 11:39 king + + * Source/kwsys/testProcess.c: ENH: Added a way to quickly enable + manual testing of grandchild killing. + +2006-03-08 11:38 king + + * Source/kwsys/ProcessUNIX.c: ENH: Added implementation of process + tree killing that runs "ps" to traverse the tree. + +2006-03-08 10:52 andy + + * Source/: cmListFileCache.cxx, cmListFileCache.h: BUG: Remove some + old legacy code and remove memory leak + +2006-03-08 09:16 malaterre + + * Source/kwsys/: DynamicLoader.cxx, DynamicLoader.hxx.in: BUG: + Including file within a namespace{} is dangerous(unless symbols + are within an extern C). Also update documentation about special + case for MacOSX + +2006-03-08 02:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-07 19:52 hoffman + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: remove cpack stuff for now + so that we can get mac dashboards again + +2006-03-07 15:31 andy + + * CMakeGraphVizOptions.cmake, Source/cmake.cxx: ENH: Add a way to + overwrite some preferences and ignore certain targets + +2006-03-07 14:46 king + + * Source/cmake.cxx: ENH: Add CMAKE_COMMAND and CMAKE_ROOT variables + when running in script mode. This partially addresses bug#2828. + +2006-03-07 14:38 king + + * Source/cmGlobalGenerator.cxx: BUG: Check for whether to add -C to + package rule should check for a . in the first character not the + second. + +2006-03-07 12:03 andy + + * Source/cmake.cxx: COMP: Fix warnings + +2006-03-07 10:05 king + + * Source/cmFileCommand.cxx: BUG: Most platforms other than Linux + seem to require executable permissions on their shared libraries. + +2006-03-07 10:04 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: BUG: Some platforms require + executable permission on shared libraries. + +2006-03-07 02:12 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-06 15:41 hoffman + + * bootstrap: ENH: add more depends for bootstrap + +2006-03-06 15:14 hoffman + + * Modules/Platform/Darwin.cmake: ENH: add support for language + flags that allow for universal binaries + +2006-03-06 15:14 hoffman + + * Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeFortranInformation.cmake, + Modules/Platform/CYGWIN.cmake, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmMakefileLibraryTargetGenerator.cxx: ENH: add support for + language flags at rule expansion time + +2006-03-06 15:01 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: add support for manifest + stuff + +2006-03-06 14:30 malaterre + + * Source/kwsys/DynamicLoader.cxx: COMP: Fix compilation on MacOSX + +2006-03-06 14:08 hoffman + + * Modules/FindQt3.cmake: ENH: try to fix non-clean dashboards + +2006-03-06 14:07 malaterre + + * Source/kwsys/CMakeLists.txt: ENH: Compile DynamicLoader + +2006-03-06 14:02 malaterre + + * Source/kwsys/: DynamicLoader.cxx, DynamicLoader.hxx.in: ENH: + Adding kwsys implementation for a DynamicLoader class. Copy from + itkDynamicLoader, with patch from cmDynamicLoader + +2006-03-06 13:43 hoffman + + * Source/kwsys/: Directory.cxx, Registry.cxx: ENH: add missing + cmake depend hacks + +2006-03-06 13:34 hoffman + + * Source/kwsys/Glob.cxx: ENH: add missing cmake include + +2006-03-06 13:02 malaterre + + * Source/kwsys/Directory.cxx: COMP: Some STL implementation do not + provide clear on std::string + +2006-03-06 11:57 malaterre + + * Source/kwsys/: Directory.cxx, Directory.hxx.in: BUG: Need to + reset internal structure in case of multiple calls to Load + +2006-03-06 10:12 malaterre + + * Source/kwsys/: Directory.cxx, Directory.hxx.in: ENH: Redo + implementation of itkDirectory to use kwsys (avoid duplicating + code). + +2006-03-06 02:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-05 09:09 king + + * Source/cmLocalGenerator.cxx: BUG: Fix for generated install + scripts to support prefixes with trailing slashes or just a + single slash. + +2006-03-05 08:38 hoffman + + * Source/cmFindBase.cxx: ENH: fix old style parsing of FIND + commands and fix broken tests + +2006-03-05 02:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-04 02:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-03 23:00 hoffman + + * Source/cmFindBase.cxx: ENH: make sure NAMES tag is not required + for name argument, fixes msys generator + +2006-03-03 19:29 king + + * Source/cmInstallCommand.cxx, Source/cmInstallCommand.h, + Source/cmInstallTargetGenerator.cxx, + Source/cmInstallTargetGenerator.h, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Added PERMISSIONS + option to the TARGETS mode of the INSTALL command. + +2006-03-03 18:44 king + + * Source/cmFileCommand.cxx, Source/cmInstallCommand.cxx, + Source/cmInstallCommand.h, Source/cmInstallFilesGenerator.cxx, + Source/cmInstallFilesGenerator.h, Source/cmInstallGenerator.cxx, + Source/cmInstallGenerator.h, Source/cmLocalGenerator.cxx, + Tests/SimpleInstall/CMakeLists.txt, Tests/SimpleInstall/inst.cxx, + Tests/SimpleInstall/inst2.cxx, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/inst.cxx, Tests/SimpleInstallS2/inst2.cxx: + ENH: Added PERMISSIONS and RENAME options to the INSTALL + command's FILES and PROGRAMS mode, and corresponding support to + FILE(INSTALL). Default permissions for shared libraries on + non-Windows/non-OSX platforms no longer has the execute bit set. + +2006-03-03 18:06 king + + * Source/: cmTarget.cxx, cmTarget.h: ENH: Replaced UpdateLocation + method with call to GetLocation. Added comment about problems + with the LOCATION attribute. + +2006-03-03 15:04 andy + + * Source/CPack/: cmCPackPackageMakerGenerator.cxx, + cmCPackPackageMakerGenerator.h: ENH: Check package maker version + +2006-03-03 14:28 andy + + * Source/cmake.cxx: COMP: Oops, typo + +2006-03-03 14:24 andy + + * Source/: cmTarget.cxx, cmTarget.h, cmake.cxx, cmake.h: ENH: Add + support for exporting graphviz of the project dependencies + +2006-03-03 12:58 king + + * Source/CMakeLists.txt, Source/cmGlobalGenerator.cxx, + Source/cmGlobalGenerator.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, + Source/cmInstallTargetGenerator.cxx, + Source/cmInstallTargetGenerator.h, + Source/cmMakefileExecutableTargetGenerator.cxx, + Source/cmTarget.cxx, Tests/BundleTest/BundleLib.cxx, + Tests/BundleTest/BundleTest.cxx, Tests/BundleTest/CMakeLists.txt: + BUG: Fixed installation of MacOSX Bundle executables and the + corresponding install_name remapping support. Extended the + BundleTest test to check that this all works. Part of these + fixes required changing the signature of AppendDirectoryForConfig + in all generators. It now accepts prefix and suffix strings to + deal with whether leading or trailing slashes should be included + with the configuration subdirectory. + +2006-03-03 12:01 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: add manifest support for + 2005 + +2006-03-03 11:59 hoffman + + * Modules/CMakeVS8FindMake.cmake: ENH: look for VCExpress first + +2006-03-03 10:52 andy + + * Modules/CPack.Info.plist.in, + Source/CPack/cmCPackPackageMakerGenerator.cxx: ENH: Add verbose + flag to package maker and add CFBundleIdentifier string + +2006-03-03 02:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-02 21:33 hoffman + + * Source/kwsys/: Registry.cxx, SystemTools.cxx: ENH: fix std in + kwsys, has to be kwsys_stl + +2006-03-02 20:11 hoffman + + * Source/cmFindBase.cxx: ENH: remove warning + +2006-03-02 15:03 hoffman + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: removed unused + methods after find changes + +2006-03-02 14:39 hoffman + + * Source/cmTryCompileCommand.cxx: ENH: pass CMAKE_MODULE_PATH into + try compile projects + +2006-03-02 13:43 hoffman + + * Source/: cmFindBase.cxx, cmFindLibraryCommand.cxx: ENH: fix + spelling errors in docs + +2006-03-02 13:30 hoffman + + * Modules/Platform/CYGWIN.cmake, Modules/Platform/Darwin.cmake, + Modules/Platform/Linux.cmake, Modules/Platform/SunOS.cmake, + Modules/Platform/UnixPaths.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/WindowsPaths.cmake, + Source/cmBootstrapCommands.cxx, Source/cmFindBase.cxx, + Source/cmFindBase.h, Source/cmFindFileCommand.cxx, + Source/cmFindFileCommand.h, Source/cmFindLibraryCommand.cxx, + Source/cmFindLibraryCommand.h, Source/cmFindPathCommand.cxx, + Source/cmFindPathCommand.h, Source/cmFindProgramCommand.cxx, + Source/cmFindProgramCommand.h, Source/kwsys/Registry.cxx, + Source/kwsys/SystemTools.cxx: ENH: check in new find stuff + +2006-03-02 07:52 hoffman + + * Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeFortranInformation.cmake, + Modules/CMakeJavaInformation.cmake, Source/cmGlobalGenerator.cxx: + ENH: fix for bug 2921, move _OVERRIDE variable to a better + position to allow changing _INIT variables + +2006-03-02 02:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-03-01 22:45 king + + * Source/: cmSetTargetPropertiesCommand.h, cmTarget.cxx: ENH: + Finished CMAKE__POSTFIX feature and documented it. The + value of this variable is used when a library target is created + to initialize the _POSTFIX target property. The value of + this property is used (even for executables) to define a + per-configuration postfix on the name of the target. Also + enabled use of the OUTPUT_NAME property for non-executable + targets. + +2006-03-01 19:00 king + + * CMakeLists.txt: ENH: CMake does not need RPATHs at all for its + own executables. Disable them to avoid relinking during + installation. + +2006-03-01 18:54 king + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: Cleaned up generation of + directory-level rules and their support structure. The + directorystart rule has been removed in favor of checking the + build system in the subdirectory makefile first. The "directory" + rule has been renamed "all" since it corresponds to the "all" + pass anyway (as against "clean"). Also fixed directory-level + rule for preinstall. + +2006-03-01 18:49 king + + * Source/cmGlobalGenerator.cxx: BUG: Check for whether to add + BUILD_TYPE to install rule should check for a . in the first + character not the second. + +2006-03-01 15:00 andy + + * Modules/: CPack.cmake, NSIS.template.in: ENH: Several changes to + for NSIS + +2006-03-01 13:15 andy + + * CMakeLists.txt, Modules/CPack.cmake, + Modules/InstallRequiredSystemLibraries.cmake: ENH: Install system + libraries only if project requires them + +2006-03-01 13:05 andy + + * Source/cmSystemTools.cxx: BUG: Even more VS8 issues + +2006-03-01 12:50 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: BUG: More VS8 fixes + +2006-03-01 11:55 andy + + * Templates/CMakeLists.txt: ENH: Install cpack files + +2006-03-01 08:28 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalUnixMakefileGenerator3.h, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h: ENH: Cleanup global targets even more + and potentially fix Xcode + +2006-03-01 02:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-28 16:33 andy + + * Source/cmGlobalGenerator.cxx: BUG: Ok, fix the ordering + +2006-02-28 16:22 andy + + * Source/CTest/cmCTestHandlerCommand.cxx: BUG: Fix for STL + +2006-02-28 16:17 andy + + * Source/cmCTest.h: BUG: Handle buggy streams + +2006-02-28 15:56 andy + + * Source/cmCTest.cxx: BUG: Add additional check + +2006-02-28 15:31 andy + + * Source/cmGlobalGenerator.cxx: BUG: On Visual Studio and XCode, + handle build configurations + +2006-02-28 15:31 andy + + * Source/CTest/cmCTestBuildAndTestHandler.cxx: STYLE: Remove debug + +2006-02-28 14:18 andy + + * Modules/CPack.cmake, Templates/CPack.GenericLicense.txt, + Templates/CPack.GenericWelcome.txt: ENH: Add resource files for + PackageMaker + +2006-02-28 14:06 andy + + * Templates/CPack.GenericDescription.txt, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Add generic + instructions + +2006-02-28 13:30 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: Attempt to handle windows + without NSIS installed + +2006-02-28 11:38 king + + * Source/kwsys/ProcessWin32.c: COMP: Fixed warnings for Borland + 5.8. + +2006-02-28 11:14 andy + + * Modules/FindQt4.cmake: BUG: Fix typo + +2006-02-28 11:13 andy + + * Modules/FindQt4.cmake: ENH: Add support for debian having both + qt3 and qt4 + +2006-02-28 10:27 hoffman + + * Modules/: CMakeVS71FindMake.cmake, CMakeVS8FindMake.cmake, + FindDart.cmake, FindDoxygen.cmake, FindGCCXML.cmake, + FindHTMLHelp.cmake, FindMPI.cmake, FindQt3.cmake, FindQt4.cmake, + FindTCL.cmake, Platform/Darwin.cmake: ENH: use program files env + for searching + +2006-02-28 09:53 king + + * Source/cmGlobalGenerator.cxx: BUG: Need to use the CMAKE_COMMAND + cache entry to get the location of CMake. + +2006-02-28 08:23 andy + + * Source/CTest/cmCTestBuildAndTestHandler.cxx, + Source/CTest/cmCTestBuildAndTestHandler.h, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Add support for + multiple build targets and start adding simple cpack tests + +2006-02-28 02:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-27 23:06 hoffman + + * Source/cmSourceGroupCommand.cxx: ENH: fix problem if there are .. + in the path to the source file specified in a source group + +2006-02-27 16:38 hoffman + + * Source/: cmFindBase.cxx, cmFindBase.h: ENH: add new find stuff + +2006-02-27 12:14 hoffman + + * Modules/: CMakeCInformation.cmake, CMakeCXXInformation.cmake, + CMakeFortranInformation.cmake, CMakeRCInformation.cmake: ENH: fix + spelling errors + +2006-02-27 10:58 andy + + * Modules/CPack.Info.plist.in, Modules/CPack.cmake, + Modules/NSIS.template.in, Source/cmBootstrapCommands.cxx, + Source/cmCommands.cxx, Source/cmGlobalGenerator.cxx, + Source/CPack/cmCPackGenericGenerator.cxx, + Templates/CPackConfig.cmake.in: ENH: Several packaging issues. + Allow random variables to be passed to cpack (anything starting + with CPACK_, add preinstall to the list of dependencies for + package, fix typos + +2006-02-27 02:00 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-26 02:00 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-25 01:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-24 18:15 andy + + * Source/: cmGlobalGenerator.cxx, cmake.h: COMP: More fixes for non + makefile generators and global targets + +2006-02-24 17:43 andy + + * Source/cmGlobalGenerator.cxx: STYLE: Remove debug + +2006-02-24 17:35 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmGlobalXCode21Generator.h, + cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmMakefile.cxx, cmTarget.h: + COMP: Even more global target fixes + +2006-02-24 16:30 andy + + * Source/CMakeLists.txt: ENH: Install cpack + +2006-02-24 16:20 andy + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: More fixing of support + for global target son visual studio + +2006-02-24 13:13 king + + * Modules/Platform/Darwin.cmake, Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, + Source/cmInstallTargetGenerator.cxx, + Source/cmInstallTargetGenerator.h, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmMakefileLibraryTargetGenerator.cxx, + Source/cmSetTargetPropertiesCommand.h, Source/cmTarget.cxx, + Source/cmTarget.h, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Created target + property INSTALL_NAME_DIR initalized by CMAKE_INSTALL_NAME_DIR + specifying the directory portion of the OSX install_name field in + shared libraries. This is the OSX equivalent of RPATH. + +2006-02-24 12:50 hoffman + + * Source/cmSourceGroupCommand.cxx: ENH: fix warning and remove + unused variable + +2006-02-24 11:13 king + + * Source/: cmGlobalXCodeGenerator.cxx, cmLocalGenerator.cxx, + cmLocalGenerator.h, cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmMakefileTargetGenerator.cxx: BUG: Fix generation of Xcode 2.0 + and earlier projects to use CMAKE_BUILD_TYPE. + +2006-02-24 11:07 king + + * Source/cmGlobalXCodeGenerator.cxx: BUG: Treat GLOBAL_TARGET like + UTILITY for generation. + +2006-02-24 10:56 andy + + * Source/cmLocalGenerator.cxx: COMP: Remove warnings + +2006-02-24 10:55 andy + + * Source/cmGlobalGenerator.cxx: BUG: Only add test targets when + testing is enabled. Also add CMAKE_CFG_INTDIR when specified + +2006-02-24 09:43 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalUnixMakefileGenerator3.h, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: COMP: Handle preinstall + properly on IDEs + +2006-02-24 09:32 andy + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: COMP: Fix for preinstall + +2006-02-24 09:08 andy + + * Modules/CheckIncludeFiles.cmake: BUG: Fix the module + +2006-02-24 08:57 andy + + * Source/cmake.cxx: BUG: Fix location of ctest for bootstrap + +2006-02-24 02:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-23 18:25 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: try to fix things + up for the dashboard + +2006-02-23 17:30 andy + + * Source/: cmGlobalGenerator.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: Properly handle target + dependencies + +2006-02-23 14:05 andy + + * Source/cmGlobalVisualStudio71Generator.cxx: COMP: Even more + Visual Studio fixes. Why is this code duplicated? + +2006-02-23 13:46 andy + + * Source/: cmGlobalGenerator.cxx, + cmLocalVisualStudio7Generator.cxx: COMP: More fixes for visual + studio + +2006-02-23 13:37 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalUnixMakefileGenerator3.h, + cmGlobalVisualStudio7Generator.cxx: COMP: Fixes for visual studio + +2006-02-23 11:36 hoffman + + * Source/cmSourceGroupCommand.cxx: ENH: fix for bug 2908 crash for + empty source group name + +2006-02-23 10:48 andy + + * Source/: cmGlobalGenerator.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: Remove debug + +2006-02-23 10:07 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: Add a notion of a global + target + +2006-02-23 10:02 andy + + * Source/: cmTarget.cxx, cmTarget.h, cmMakefile.cxx: ENH: Add a + notion of a global target + +2006-02-23 10:00 andy + + * Source/: cmake.cxx, cmake.h: ENH: Add accessors for CTest and + CPack + +2006-02-23 09:59 andy + + * Source/CPack/cpack.cxx: ENH: Allow running without config file + +2006-02-23 09:58 andy + + * Modules/: CMakeConfigurableFile.in, CheckIncludeFiles.cmake, + CheckSymbolExists.cmake: ENH: Make modules use configure instead + of file write + +2006-02-23 09:38 andy + + * Modules/CPack.cmake, Modules/NSIS.template.in, + Source/CPack/cmCPackNSISGenerator.cxx, + Templates/CPackConfig.cmake.in: ENH: Several NSIS features + +2006-02-23 02:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-22 02:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-21 12:19 hoffman + + * Modules/Platform/Windows-cl.cmake, + Source/cmLocalVisualStudio7Generator.cxx: ENH: make command line + flags more consistent with ide settings + +2006-02-21 09:35 hoffman + + * Source/cmGlobalMSYSMakefileGenerator.cxx: ENH: use last mount + point found for mingw location, not first + +2006-02-21 07:58 hoffman + + * Source/cmGlobalMSYSMakefileGenerator.cxx: ENH: try to get the + order a bit better + +2006-02-21 02:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-20 23:08 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, Source/cmCacheManager.cxx, + Source/cmGlobalMSYSMakefileGenerator.cxx, + Source/cmGlobalMSYSMakefileGenerator.h: ENH: better finding of + mingw from msys, and delete CMakeFiles directory when cache is + deleted + +2006-02-20 17:47 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: make sure + CMAKE_STANDARD_LIBRARIES are used + +2006-02-20 14:37 hoffman + + * Source/cmLocalGenerator.h: ENH: make it compile on vs6 + +2006-02-20 14:21 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: Add target-level + COMPILE_FLAGS to the target not the individual source files. + This simplifies the generated files and puts flags in a more + logical order (VS6 works, VS7 needs more translation to work). + +2006-02-20 13:42 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmMakefileTargetGenerator.cxx: ENH: change expand stuff to pass a + struct for all the args + +2006-02-20 12:48 king + + * Source/cmMakefileTargetGenerator.cxx: ENH: Order compilation + flags from most general to most specific: language, then target, + then source. + +2006-02-20 09:54 king + + * Source/: cmGlobalXCodeGenerator.cxx, cmLocalGenerator.h: BUG: + Xcode generator should use local generator computation of include + directories. + +2006-02-20 03:00 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-19 19:29 king + + * Source/: cmFileCommand.cxx, cmInstallGenerator.cxx, + cmInstallTargetGenerator.cxx: BUG: Fixed optional file install + support for multi-configuration generators. + +2006-02-19 19:28 king + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, cmGlobalXCodeGenerator.cxx, + cmTarget.cxx: ENH: Switched order of slash and configuration name + in cmGlobalGenerator::AppendDirectoryForConfig method to increase + flexibility. + +2006-02-19 18:47 king + + * bootstrap, Source/CMakeLists.txt, Source/cmInstallCommand.cxx, + Source/cmInstallCommand.h, Source/cmInstallFilesCommand.h, + Source/cmInstallFilesGenerator.cxx, + Source/cmInstallFilesGenerator.h, + Source/cmInstallProgramsCommand.h, Source/cmLocalGenerator.cxx, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Implemented FILES and + PROGRAMS forms of the INSTALL command as replacements for the + INSTALL_FILES and INSTALL_PROGRAMS commands. This addresses the + request for absolute path install destinations in bug#2691. + +2006-02-19 18:44 king + + * Source/cmInstallTargetGenerator.cxx: STYLE: Removed unused + includes. + +2006-02-19 17:44 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: Using CMAKE_SKIP_BUILD_RPATH + to test relink support. + +2006-02-19 17:27 king + + * Source/: cmInstallTargetGenerator.cxx, + cmInstallTargetsCommand.cxx, cmTarget.cxx, cmTarget.h: BUG: Fixed + relink with new install framework. + +2006-02-19 16:35 king + + * Source/cmInstallCommand.cxx: COMP: Removed unused variables. + +2006-02-19 16:12 king + + * Source/: cmInstallGenerator.cxx, cmInstallGenerator.h: BUG: Do + not report files as installed if they are optional and do not + exist. + +2006-02-19 16:10 king + + * Source/cmInstallTargetGenerator.cxx: BUG: Import libraries should + be installed as STATIC_LIBRARY. + +2006-02-19 15:25 king + + * bootstrap, Source/CMakeLists.txt, Source/cmInstallCommand.cxx, + Source/cmInstallCommand.h, Source/cmInstallGenerator.cxx, + Source/cmInstallGenerator.h, Source/cmInstallScriptGenerator.cxx, + Source/cmInstallScriptGenerator.h, + Source/cmInstallTargetGenerator.cxx, + Source/cmInstallTargetGenerator.h, + Source/cmInstallTargetsCommand.h, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmSetTargetPropertiesCommand.h, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Created new install + script generation framework. The INSTALL command creates the + generators which are later used by cmLocalGenerator to create the + cmake_install.cmake files. A new target installation interface + is provided by the INSTALL command which fixes several problems + with the INSTALL_TARGETS command. See bug#2691. Bugs 1481 and + 1695 are addressed by these changes. + +2006-02-19 13:49 king + + * Modules/Platform/Windows-gcc.cmake: BUG: Fixed module creation + rules. Removed soname portion of all rules because it is never + used on this platform. + +2006-02-19 13:34 king + + * Modules/Platform/CYGWIN.cmake: BUG: Fixed cygwin module creation + rules. Modules should not have the "cyg" prefix by default. + Removd soname flags from creation rules because they are never + used on this platform. + +2006-02-19 13:10 king + + * Source/cmLocalGenerator.cxx, + Tests/CustomCommand/GeneratedHeader/CMakeLists.txt: ENH: + Automatic include directories should not be done by default as + was just implemented. Instead a project may now set + CMAKE_INCLUDE_CURRENT_DIR to get this behavior. The current + source and binary directories are added automatically to the + beginning of the include path in every directory. This simulates + in-source behavior for double-quote includes when there are + generated sources and headers in the directory. + +2006-02-19 13:08 king + + * Source/cmFileCommand.cxx: BUG: Install location full-path test + for windows needs to account for both lower case and upper case + drive letters. + +2006-02-19 01:53 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-18 16:47 king + + * Source/cmLocalGenerator.cxx: BUG: Remove trailing slashes from + install destinations. + +2006-02-18 16:36 king + + * Source/cmFileCommand.cxx: ENH: Clarified error message. + +2006-02-18 15:42 king + + * Source/cmLocalGenerator.cxx: COMP: Fixed shadowed variable + warning. + +2006-02-18 15:37 king + + * Modules/Platform/CYGWIN.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-gcc.cmake, + Modules/Platform/Windows-wcl386.cmake, + Modules/Platform/Windows.cmake, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmMakefileLibraryTargetGenerator.cxx, Source/cmTarget.cxx, + Source/cmTarget.h: ENH: Generate import libraries for DLLs on + Cygwin and MinGW. + +2006-02-18 11:51 king + + * Source/: cmLocalGenerator.cxx, cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: ENH: If + CMAKE_NO_AUTOMATIC_INCLUDE_DIRECTORIES is not set try to + approximate in-source build include file behavior in an + out-of-source build by adding the build tree directory + corresponding to a source tree directory at the beginning of the + include path. Also fixed VS6 and VS7 generators to use + cmLocalGenerator's computation of include paths. The VS6 + generator will now short-path the include directories if the + total length is too long in order to try to avoid its truncation + limit. + +2006-02-18 11:03 hoffman + + * Source/: cmGlobalKdevelopGenerator.cxx, + cmGlobalKdevelopGenerator.h: ENH: apply patch from Alex to + support some more kdevelop stuff + +2006-02-18 01:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-17 12:49 hoffman + + * Source/cmMakefile.cxx: ENH: put the system path ahead of the + command path + +2006-02-17 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-16 20:15 king + + * Modules/CPack.cmake, Utilities/Release/Release.cmake: BUG: Do not + install MSVC dlls for a non-MSVC build. + +2006-02-16 20:13 king + + * bootstrap: ENH: Made default install prefix consistent with + building with another CMake. + +2006-02-16 18:50 king + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h: BUG: Work-around borland make + bug that drops a rule completely if it has no dependencies or + commands. + +2006-02-16 18:09 king + + * Source/cmSetTargetPropertiesCommand.h: ENH: Clarified + documentation of DEFINE_SYMBOL. + +2006-02-16 17:49 king + + * Source/cmSetTargetPropertiesCommand.cxx: BUG: Report error when a + target does not exist. + +2006-02-16 15:55 andy + + * Source/CPack/cmCPackNSISGenerator.cxx: BUG: Remove debug and fix + space between label and exec name + +2006-02-16 15:41 andy + + * CMakeLists.txt: ENH: Variable name changed + +2006-02-16 15:39 king + + * Source/cmMakefileExecutableTargetGenerator.cxx: BUG: Do not + perform pre-build, pre-link, or post-install commands when + relinking. + +2006-02-16 15:38 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: BUG: Need INSTALL_RPATH property + on SimpleInstallS2 also. + +2006-02-16 15:35 andy + + * Templates/CPackConfig.cmake.in: ENH: Fix icons + +2006-02-16 15:28 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: Use target property for + INSTALL_RPATH of SimpleInstall so that it is the only one that + needs to relink. + +2006-02-16 15:20 andy + + * Modules/NSIS.template.in, Source/CPack/cmCPackNSISGenerator.cxx, + Source/CPack/cmCPackNSISGenerator.h: ENH: More work on NSI to + improve installing and uninstalling + +2006-02-16 15:18 king + + * Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmMakefileExecutableTargetGenerator.cxx, + Source/cmMakefileExecutableTargetGenerator.h, + Source/cmMakefileLibraryTargetGenerator.cxx, + Source/cmMakefileLibraryTargetGenerator.h, + Source/cmSetTargetPropertiesCommand.h, Source/cmTarget.cxx, + Source/cmTarget.h, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Implemented RPATH + specification support. It is documented by the command + SET_TARGET_PROPERTIES. + +2006-02-16 13:42 martink + + * Source/cmMakefileTargetGenerator.cxx: ENH: warning fix + +2006-02-16 11:32 martink + + * Source/cmMakefileTargetGenerator.cxx: ENH: warning fix + +2006-02-16 10:35 hoffman + + * Source/: cmDynamicLoader.cxx, cmDynamicLoader.h: ENH: fix for bug + 2808, use dlopen on new OSX versions + +2006-02-16 02:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-15 21:26 hoffman + + * Modules/CMakeMSYSFindMake.cmake, + Modules/CMakeMinGWFindMake.cmake, + Source/cmGlobalMSYSMakefileGenerator.cxx, + Source/cmGlobalMinGWMakefileGenerator.cxx: ENH: better algorithm + for looking for make and gcc on msys and mingw + +2006-02-15 16:38 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Use NOINHERIT + macro to avoid linking to project default libraries which may not + exist. + +2006-02-15 16:35 king + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, + cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmMakefileTargetGenerator.cxx, + cmMakefileUtilityTargetGenerator.cxx: ENH: Cleaned up generation + of symbolic rules. Removed generation of rebuild_cache and + similar rules from internal makefiles. + +2006-02-15 12:32 martink + + * Source/cmMakefileTargetGenerator.h: COMP: fix compiler warning + +2006-02-15 12:30 hoffman + + * Source/cmMakefileTargetGenerator.cxx: ENH: fix build error for + mac + +2006-02-15 10:34 martink + + * bootstrap, Source/CMakeLists.txt, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.h, + Source/cmMakefileTargetGenerator.h: ENH: some reorg of the unix + makefile generator + +2006-02-15 10:22 king + + * Source/: cmCTest.cxx, cmSystemTools.cxx, cmSystemTools.h, + cmake.cxx: ENH: Enable capture of output from VCExpress.exe and + devenv.exe. + +2006-02-15 08:05 hoffman + + * Modules/Platform/Windows-bcc32.cmake: ENH: remove warning + suppressions for borland compiler, projects wanting this should + use -w-, the default warning level is used for all other + compilers. Used to be -w- -whid -waus -wpar + +2006-02-15 02:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-14 22:03 hoffman + + * Modules/CMakeMinGWFindMake.cmake, Source/cmake.cxx: ENH: do not + allow mingw makefiles to generate if sh.exe is in the path, also + do not write CMakeCache.txt if there is a fatal error. + +2006-02-14 17:16 king + + * Source/: cmCMakeMinimumRequired.cxx, cmCMakeMinimumRequired.h: + ENH: Added FATAL_ERROR option and fixed check to not have + floating point roundoff problems. + +2006-02-14 16:35 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Removed hard-coded + linking to odbc32 and odbccp32. + +2006-02-14 16:32 king + + * Source/: cmGlobalVisualStudio8Generator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: Avoid adding unused rules + to special targets like ALL_BUILD. Make sure project + regeneration rules go only in desired targets. + +2006-02-14 15:35 king + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio8Generator.cxx, + cmGlobalVisualStudio8Generator.h: BUG: Fixed generation of VS8 + solution file to not be re-written when loaded by VS and to work + with msbuild. + +2006-02-14 15:29 king + + * Modules/CheckTypeSize.cmake: ENH: Added + CMAKE_REQUIRED_DEFINITIONS and CMAKE_REQUIRED_INCLUDES to the + interface. + +2006-02-14 15:15 king + + * Tests/CustomCommand/GeneratedHeader/main.cpp: COMP: Fixed form of + function main. + +2006-02-14 14:29 andy + + * Modules/NSIS.template.in, Source/CPack/cmCPackNSISGenerator.cxx: + ENH: Better handling of executables on windows + +2006-02-14 14:28 andy + + * Templates/CPackConfig.cmake.in: ENH: Cleanup + +2006-02-14 11:17 andy + + * Source/cmCacheManager.cxx: ENH: Report which cmake was used to + generate the cache in the comment + +2006-02-14 10:51 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: fix try compile for MFC + +2006-02-14 10:35 martink + + * Source/: cmMakefileExecutableTargetGenerator.h, + cmMakefileLibraryTargetGenerator.h, cmMakefileTargetGenerator.h, + cmMakefileUtilityTargetGenerator.h, + cmMakefileExecutableTargetGenerator.cxx, + cmMakefileLibraryTargetGenerator.cxx, + cmMakefileTargetGenerator.cxx, + cmMakefileUtilityTargetGenerator.cxx: ENH: some cleanup of the + makefile generator + +2006-02-14 10:28 andy + + * CMakeLists.txt, Modules/CPack.cmake, + Source/CPack/cmCPackGenericGenerator.cxx, + Source/CPack/cmCPackSTGZGenerator.cxx, Source/CPack/cpack.cxx, + Templates/CPackConfig.cmake.in: ENH: Improved support for icons, + random directories, etc... + +2006-02-14 02:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-13 02:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-12 02:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-11 02:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-10 15:45 king + + * Tests/CommandLineTest/CMakeLists.txt: ENH: Added test for + IF(DEFINED ENV{var})(. + +2006-02-10 14:59 king + + * CMakeLists.txt: ENH: Updated patch level to 3 for special KDE + release. + +2006-02-10 14:41 king + + * Source/cmIfCommand.cxx: ENH: Allow IF(DEFINED ENV{somevar}) to + work. + +2006-02-10 14:15 king + + * Docs/cmake-mode.el: ENH: Added highlighting for LIST command. + +2006-02-10 14:11 andy + + * CMakeLists.txt, Source/cmCommands.cxx, Source/cmListCommand.cxx, + Source/cmListCommand.h, Tests/CMakeTests/CMakeLists.txt, + Tests/CMakeTests/ListTest.cmake.in: ENH: Add initial + implementation of the list command + +2006-02-10 13:54 king + + * Docs/cmake-mode.el, Source/cmCommands.cxx, + Source/cmInstallCommand.cxx, Source/cmInstallCommand.h, + Source/cmLocalGenerator.cxx, Source/cmMakefile.h, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/InstallScript1.cmake, + Tests/SimpleInstall/InstallScript2.cmake, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/InstallScript1.cmake, + Tests/SimpleInstallS2/InstallScript2.cmake: ENH: Added INSTALL + command as a placeholder for a future generic install + specification interface. Currently it supports only a SCRIPT + option specifying a script to run during the install stage. + +2006-02-10 12:43 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: fix for bug 28618, cmake.exe + can not find itself + +2006-02-10 11:47 king + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: ENH: Strengthened + EXECUTE_PROCESS output check test. + +2006-02-10 11:46 king + + * Source/cmExecuteProcessCommand.cxx: ENH: Remove extra windows + newline characters from process output. Centralized text fix + processing. + +2006-02-10 11:43 king + + * Source/: cmExecProgramCommand.h, cmExecuteProcessCommand.h: ENH: + Mention relationship of EXECUTE_PROCESS and EXEC_PROGRAM. + +2006-02-10 11:41 king + + * Source/cmake.cxx: BUG: Fixed echo command to not print trailing + space. + +2006-02-10 11:19 king + + * bootstrap: BUG: Fixed bootstrap from MSYS prompt. It was working + only when the bootstrap directory in MSYS mapped to the same + directory on windows except for the drive letter in front. Now + it should work from any path. + +2006-02-10 10:30 hoffman + + * Tests/CustomCommandWorkingDirectory/: CMakeLists.txt, working.c, + working.c.in: ENH: fix test to work with in source build + +2006-02-10 10:11 hoffman + + * Source/cmLocalGenerator.cxx: ENH: fix bug for single char + libraries + +2006-02-10 09:46 andy + + * Modules/CheckLibraryExists.cmake: BUG: Fix + CMAKE_REQUIRED_LIBRARIES stuff in this module + +2006-02-10 02:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-09 23:08 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: bug fix for 2829 + better flags for idl tool + +2006-02-09 19:29 king + + * Source/cmLocalVisualStudio6Generator.cxx: COMP: Removed unused + variables. + +2006-02-09 19:25 king + + * CMakeLists.txt: ENH: Updated patch level to 2 for special KDE + release. + +2006-02-09 19:23 king + + * Modules/: CheckCSourceCompiles.cmake, + CheckCXXSourceCompiles.cmake, CheckFunctionExists.cmake, + CheckIncludeFile.cmake, CheckIncludeFileCXX.cmake, + CheckIncludeFiles.cmake, CheckLibraryExists.cmake, + CheckSymbolExists.cmake, CheckVariableExists.cmake: ENH: Made + Check* modules more consistent and well documented. Added + CMAKE_REQUIRED_DEFINITIONS option. + +2006-02-09 19:03 king + + * Source/cmMakefile.cxx: BUG: Need to include empty arguments when + parsing prefix/suffix lists for FindLibrary. + +2006-02-09 19:03 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Adding option + to return empty arguments when expanding a list. + +2006-02-09 18:42 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: BUG: Fixed generation of cmake + re-run rules. + +2006-02-09 18:39 king + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: BUG: Avoid case + problems on windows. + +2006-02-09 17:29 king + + * Source/: cmOrderLinkDirectories.cxx, cmOrderLinkDirectories.h: + BUG: Deal with case insensitivity on windows linker paths. Also + fixed spelling typo. + +2006-02-09 15:33 king + + * Modules/FindPNG.cmake: ENH: Put libpng name back because it is + needed for plain windows. + +2006-02-09 15:08 king + + * Modules/: FindJPEG.cmake, FindPNG.cmake, FindTIFF.cmake, + FindZLIB.cmake: ENH: Removing platform-specific name hacks now + that FIND_LIBRARY handles it. + +2006-02-09 15:05 king + + * Modules/CMakeGenericSystem.cmake, Modules/Platform/CYGWIN.cmake, + Modules/Platform/Darwin.cmake, Modules/Platform/HP-UX.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-gcc.cmake, + Modules/Platform/Windows.cmake, Source/cmMakefile.cxx: ENH: Added + platform settings CMAKE_FIND_LIBRARY_PREFIXES and + CMAKE_FIND_LIBRARY_SUFFIXES to allow customized searching for + libraries. + +2006-02-09 14:28 king + + * Modules/CheckSymbolExists.cmake: ENH: Pay attention to + CMAKE_REQUIRED_INCLUDES. + +2006-02-09 14:18 king + + * Modules/Platform/Windows-g++.cmake: BUG: Need Windows-g++.cmake + module to support C++-only projects on Windows. + +2006-02-09 13:48 king + + * Modules/CMakeCXXCompiler.cmake.in: BUG: Need to duplicate some + information from CMakeCCompiler to support C++-only projects. + +2006-02-09 13:14 king + + * Modules/: CheckCSourceCompiles.cmake, + CheckCXXSourceCompiles.cmake, CheckIncludeFiles.cmake: ENH: Patch + from Alexander Neundorf to improve behavior. + +2006-02-09 12:04 king + + * Modules/: FindJPEG.cmake, FindPNG.cmake, FindTIFF.cmake, + FindZLIB.cmake: ENH: Added names for gnuwin32 library versions. + +2006-02-09 09:34 david.cole + + * Utilities/cmtar/wrapper.c: COMP: Last (?) fix for dashboard + warning. + +2006-02-09 02:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-08 15:37 hoffman + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomTargetCommand.cxx, cmVTKWrapJavaCommand.cxx: ENH: fix + broken tests + +2006-02-08 14:12 hoffman + + * Source/: CMakeLists.txt, cmGlobalXCodeGenerator.cxx: ENH: working + directory working for XCode + +2006-02-08 12:01 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h: ENH: Enabled new + WORKING_DIRECTORY option to ADD_CUSTOM_COMMAND and + ADD_CUSTOM_TARGET on VS 6 generator. + +2006-02-08 11:33 hoffman + + * Tests/CustomCommandWorkingDirectory/: CMakeLists.txt, + customTarget.c, working.c: ENH: add test for working directory of + custom command and target + +2006-02-08 10:58 hoffman + + * Modules/CMakeFortranInformation.cmake, Source/CMakeLists.txt, + Source/cmAddCustomCommandCommand.cxx, + Source/cmAddCustomCommandCommand.h, + Source/cmAddCustomTargetCommand.cxx, + Source/cmAddCustomTargetCommand.h, Source/cmCPluginAPI.cxx, + Source/cmCustomCommand.cxx, Source/cmCustomCommand.h, + Source/cmFLTKWrapUICommand.cxx, Source/cmGlobalGenerator.cxx, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmIncludeExternalMSProjectCommand.cxx, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmQTWrapCPPCommand.cxx, + Source/cmQTWrapUICommand.cxx, Source/cmVTKWrapJavaCommand.cxx: + ENH: add working directory support + +2006-02-08 10:13 king + + * CMakeLists.txt, Source/CMakeLists.txt, Utilities/CMakeLists.txt: + ENH: Added option BUILD_CursesDialog if curses is found. This + allows people to disable building the dialog even when curses is + found. + +2006-02-08 09:51 king + + * Modules/FindQt4.cmake: BUG: Fixed qt version message. Submitted + by Tanner Lovelace. + +2006-02-08 07:17 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: COMP: Fix + problem with STL on HP, and fix reusing the same variable in for + loops + +2006-02-08 02:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-07 17:10 king + + * Modules/Platform/Windows-cl.cmake: ENH: Adding definition of MSVC + when it is the compiler. + +2006-02-07 17:09 king + + * Source/cmMakefile.cxx: BUG: Fixed finding of MinGW libraries with + a windows build of CMake. + +2006-02-07 12:53 andy + + * Source/CPack/cpack.cxx: ENH: Add missing help for -C option + +2006-02-07 11:43 andy + + * Source/kwsys/SystemTools.cxx: COMP: Fix compile problem on + windows and mac + +2006-02-07 10:43 andy + + * Source/kwsys/SystemTools.cxx: COMP: Fix build problem + +2006-02-07 10:23 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, + kwsys/SystemTools.cxx, kwsys/SystemTools.hxx.in: ENH: Move + relative path to kwsys + +2006-02-07 10:11 king + + * bootstrap, Source/cmStandardIncludes.h, + Source/kwsys/CMakeLists.txt, Source/kwsys/String.hxx.in: ENH: + Added kwsys::String class to shorten debugging symbols and error + messages involving std::string. + +2006-02-07 09:25 malaterre + + * Source/kwsys/SystemTools.hxx.in: ENH: Add some doc for visible + class + +2006-02-07 08:49 andy + + * Source/: cmCTest.cxx, cmListFileCache.cxx, cmListFileCache.h, + cmMakefile.cxx, cmTryCompileCommand.cxx, cmTryRunCommand.cxx, + cmakemain.cxx, ctest.cxx, CTest/cmCTestBuildAndTestHandler.cxx, + MFCDialog/CMakeSetupDialog.cpp: ENH: Since list file cache does + not make much sense any more (because of proper list file + parsing), and it actually adds unnecessary complications and make + ctest scripting not work, take it out + +2006-02-07 08:03 david.cole + + * Utilities/cmtar/wrapper.c: COMP: Fix next round of dashboard + warnings. + +2006-02-07 02:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-06 16:32 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: allow for - in the + name of targets for nmake + +2006-02-06 09:31 david.cole + + * Utilities/cmtar/: extract.c, output.c, wrapper.c: COMP: Fix CMake + dashboard warnings related to previous revisions. + +2006-02-06 02:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-05 02:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-04 02:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-03 18:08 king + + * CMakeLists.txt: ENH: Incremented patch version for special KDE + release. + +2006-02-03 17:09 king + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: ENH: Added test for new + EXECUTE_PROCESS command. + +2006-02-03 16:55 king + + * Docs/cmake-mode.el: ENH: Adding new EXECUTE_PROCESS command that + interfaces to KWSys Process Execution. + +2006-02-03 16:51 king + + * Source/: cmCommands.cxx, cmExecuteProcessCommand.cxx, + cmExecuteProcessCommand.h: ENH: Adding new EXECUTE_PROCESS + command that interfaces to KWSys Process Execution. + +2006-02-03 12:03 king + + * Source/cmGlobalXCodeGenerator.h: COMP: Added missing method decl + to header. + +2006-02-03 11:48 david.cole + + * Utilities/cmtar/: decode.c, extract.c, output.c, wrapper.c: BUG: + Fix mem leaks related to th_get_pathname. Change this + implementation of th_get_pathname so that it *always* returns a + strdup'ed value. Callers must now free non-NULL returns from + th_get_pathname. Change all callers to call free appropriately. + +2006-02-03 11:36 king + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmGlobalXCodeGenerator.cxx, + cmTarget.cxx: BUG: Fixed cmTarget::GetFullPath to not append the + configuration name when only one configuration is built. It now + asks the generator what subdirectory if any to use for a given + configuration name. + +2006-02-03 02:29 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-02 20:18 king + + * CMakeLists.txt, Source/CMakeLists.txt, Utilities/CMakeLists.txt: + COMP: Fixed build on VC++ Express 2005. Explicitly testing for + MFC to determine whether to build the MFCDialog. + +2006-02-02 20:16 king + + * Modules/CMakeGenericSystem.cmake: BUG: CMAKE_INSTALL_PREFIX must + always have forward slashes. + +2006-02-02 20:15 king + + * Modules/Platform/Windows-cl.cmake: BUG: Removed odbc32.lib and + odbccp32.lib from standard libraries on VS 8 because VC++ Express + 2005 does not have them. They are SQL database access libraries + and should not be needed for every application. User code can + always explicitly link the library. Also replacing deprecated + /GZ option with /RTC1 for VS 8. This addresses bug#2795. + +2006-02-02 15:53 david.cole + + * Utilities/cmtar/filesystem.c: BUG: Fix memory leak in libtar's + kwReadDir. Use a static buffer like readdir (probably) does + rather than malloc-ing a block which never gets free-d. + +2006-02-02 03:30 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-02-01 02:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-31 19:34 king + + * Source/: CMakeLists.txt, cmake.cxx: ENH: Enabled build of VS 7 + and 8 generators for MinGW. + +2006-01-31 18:50 king + + * bootstrap, Source/cmake.cxx: ENH: Enabled bootstrapping with + MinGW from an MSYS prompt. + +2006-01-31 10:46 king + + * Source/cmGetFilenameComponentCommand.cxx: BUG: ABSOLUTE option + should evaluate relative paths with respect to + CMAKE_CURRENT_SOURCE_DIR. This addresses bug#2797. + +2006-01-31 05:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-30 14:25 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: more cleanup and removal of + old code + +2006-01-30 13:57 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: cleanup and remove some old + code + +2006-01-30 02:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-29 02:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-28 01:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-27 18:20 king + + * Source/: cmFindFileCommand.cxx, cmFindLibraryCommand.h, + cmFindPathCommand.cxx, cmFindPathCommand.h, cmMakefile.cxx, + cmMakefile.h: ENH: Improved support for user-configured search + paths. Paths given in the CMAKE_LIBRARY_PATH cmake variable are + searched first, then those in the CMAKE_LIBRARY_PATH environment + variable, then those listed in the call to the FIND_LIBRARY + command and finally those listed in the PATH environment + variable. The support is similar for finding include files with + FIND_PATH, but the variable is CMAKE_INCLUDE_PATH. + +2006-01-27 13:48 king + + * Source/: cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: BUG: VS7 generator should use + per-configuration linker flags for targets. This addresses + bug#2765. + +2006-01-27 13:46 andy + + * Source/CTest/: cmCTestBuildHandler.cxx, cmCTestBuildHandler.h: + ENH: Better handle interleved error/output + +2006-01-27 13:07 king + + * Modules/readme.txt, Source/cmFindPackageCommand.cxx, + Source/cmFindPackageCommand.h: ENH: Added optional component list + to the REQUIRED option of the FIND_PACKAGE command. This + addresses bug#2771. + +2006-01-27 12:58 martink + + * Source/cmOptionCommand.h: STYLE: spelling fix + +2006-01-27 12:58 martink + + * Source/cmMessageCommand.h: STYLE: grammer fix + +2006-01-27 11:19 hoffman + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: add extra thing for + svn X status output + +2006-01-27 01:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-26 01:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-25 14:12 hoffman + + * Source/cmTryCompileCommand.cxx: ENH: fix double + CMAKE_(LANG)_FLAGS problem in try compile + +2006-01-25 12:16 hoffman + + * Modules/: FindQt.cmake, FindQt4.cmake: ENH: change to fatal error + +2006-01-25 11:41 hoffman + + * Modules/: CMakeCCompiler.cmake.in, CMakeCXXCompiler.cmake.in, + CMakeDetermineCCompiler.cmake, CMakeDetermineCXXCompiler.cmake, + CMakeDetermineFortranCompiler.cmake, + CMakeDetermineJavaCompiler.cmake, CMakeDetermineRCCompiler.cmake: + ENH: fix more than one argument passed in to compilers via + environment + +2006-01-25 11:07 hoffman + + * Source/: cmMessageCommand.cxx, cmMessageCommand.h: ENH: fix docs, + and revert fatal error change + +2006-01-25 08:39 hoffman + + * Source/cmMessageCommand.cxx: ENH: make all errors fatal in + message command + +2006-01-25 08:38 hoffman + + * Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/Complex/Executable/testcflags.c, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/testcflags.c, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/testcflags.c: ENH: add + COMPILE_FLAGS to targets + +2006-01-25 00:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-24 22:20 hoffman + + * Source/MFCDialog/PathDialog.cpp: ENH: do not force users to + create paths + +2006-01-24 15:48 hoffman + + * Source/cmStandardIncludes.h: ENH: fix for borland memcpy junk + +2006-01-24 12:07 andy + + * Modules/CheckCXXSourceCompiles.cmake: ENH: fix bug, write the + correct file + +2006-01-24 07:58 hoffman + + * Source/cmLocalGenerator.cxx: COMP: fix warning + +2006-01-24 00:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-23 17:24 hoffman + + * Source/cmLocalGenerator.cxx: ENH: fix warning + +2006-01-23 16:36 martink + + * Source/kwsys/SystemTools.cxx: ENH: by Bill make sure path is unix + style + +2006-01-23 13:50 hoffman + + * Source/: CMakeLists.txt, cmGlobalWatcomWMakeGenerator.cxx, + cmLocalGenerator.cxx: ENH: fix problem with watcom and short + paths and -I + +2006-01-23 12:31 hoffman + + * Source/cmDepends.cxx: ENH: correct include for memcpy + +2006-01-23 11:32 hoffman + + * Modules/Platform/kFreeBSD.cmake: ENH: add kFreeBSD support + +2006-01-23 00:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-22 21:15 hoffman + + * Modules/CheckTypeSize.cmake: ENH: fix check type size + +2006-01-22 00:47 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-21 00:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-20 01:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-19 00:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-18 00:47 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-17 16:53 hoffman + + * Source/kwsys/SystemTools.hxx.in: ENH: fix for icc + +2006-01-17 16:22 martink + + * Utilities/cmcurl/CMake/CheckTypeSize.cmake: BUG: revert such that + it should work + +2006-01-17 14:35 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: ENH: more fixes + for watcom + +2006-01-17 10:21 hoffman + + * Modules/CMakeBackwardCompatibilityCXX.cmake, + Modules/CMakeFindWMake.cmake, Modules/TestForSSTREAM.cmake, + Modules/TestForSSTREAM.cxx, Modules/readme.txt, + Modules/Platform/Windows-wcl386.cmake, Source/CMakeLists.txt, + Source/cmCPluginAPI.cxx, Source/cmCPluginAPI.h, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalWatcomWMakeGenerator.cxx, + Source/cmGlobalWatcomWMakeGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.h, Source/cmStringCommand.h, + Source/cmake.cxx, Source/kwsys/Directory.cxx, + Source/kwsys/EncodeExecutable.c, Source/kwsys/Glob.cxx, + Source/kwsys/ProcessWin32.c, Source/kwsys/Registry.cxx, + Source/kwsys/SystemTools.cxx, Source/kwsys/SystemTools.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cxx, + Source/kwsys/testRegistry.cxx, + Tests/Complex/cmTestConfigure.h.in, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/cmTestConfigure.h.in, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/cmTestConfigure.h.in, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/LoadCommand/CMakeCommands/CMakeLists.txt, + Tests/LoadCommand/CMakeCommands/cmTestCommand.c, + Tests/LoadCommandOneConfig/CMakeCommands/CMakeLists.txt, + Tests/LoadCommandOneConfig/CMakeCommands/cmTestCommand.c, + Tests/SubDir/CMakeLists.txt, + Tests/SubDir/vcl_algorithm_vcl_pair_double.foo.c, + Tests/SubDir/AnotherSubdir/pair_int.int.c, + Tests/SubDir/ThirdSubDir/pair_int.int1.c, + Utilities/cmcurl/CMakeLists.txt, Utilities/cmcurl/timeval.h, + Utilities/cmcurl/CMake/CheckTypeSize.c.in, + Utilities/cmcurl/CMake/CheckTypeSize.cmake, + Utilities/cmcurl/Platforms/WindowsCache.cmake, + Utilities/cmtar/handle.c, Utilities/cmtar/libtar.c: ENH: add + support for watcom wmake and wcl386 + +2006-01-17 09:27 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: correct standard + libraries + +2006-01-17 00:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-16 12:54 yogi.girdhar + + * Utilities/cmtar/compat/compat.h: COMP: wrapped compat.h inside a + extern C block so that we can use it in C++ code + +2006-01-16 00:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-15 00:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-14 10:27 king + + * Source/cmGlobalXCodeGenerator.cxx: COMP: Fixed shadowed variable + warning. + +2006-01-14 00:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-13 20:51 king + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: Further centralized custom + command dependency computation. Custom command dependencies in + the source tree may now also be specified relative to the source + directory. + +2006-01-13 19:36 king + + * Source/cmFLTKWrapUICommand.cxx: BUG: Removed bogust dependency. + +2006-01-13 19:35 king + + * Source/: cmFileCommand.cxx, cmLocalGenerator.cxx: COMP: Removed + unused variables. + +2006-01-13 18:33 king + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator3.cxx: COMP: Removed unused paramter + from cmLocalGenerator::OutputLinkLibraries. + +2006-01-13 18:18 king + + * Source/cmFileCommand.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, + Source/cmLinkLibrariesCommand.cxx, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmMakefile.cxx, + Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, Source/cmTarget.cxx, + Source/cmTarget.h, Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmTargetLinkLibrariesCommand.h, Source/cmXCodeObject.h, + Source/CTest/cmCTestBuildAndTestHandler.cxx, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: BUG: Sweeping + changes to cleanup computation of target names. This should fix + many bugs related to target names being computed inconsistently. + + - Centralized computation of a target's file name to a method in + cmTarget. Now that global knowledge is always available the + *_CMAKE_PATH cache variables are no longer needed. + + - Centralized computation of link library command lines and link + directory search order. + + - Moved computation of link directories needed to link CMake + targets to be after evaluation of linking dependencies. + + This also removed alot of duplicate code in which each version + had its own bugs. + + This commit is surrounded by the tags + + CMake-TargetNameCentralization1-pre + + and + + CMake-TargetNameCentralization1-post + + so make the large set of changes easy to identify. + +2006-01-13 11:44 hoffman + + * Source/cmTryCompileCommand.cxx, + Utilities/cmcurl/CMake/CheckTypeSize.cmake, + Utilities/cmxmlrpc/CMake/TryCompileFromSource.cmake: ENH: fix for + CMakeTmp move broken stuff + +2006-01-13 09:57 hoffman + + * Modules/: CheckTypeSize.c.in, CheckTypeSize.cmake: ENH: fix + checktypesize + +2006-01-13 00:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-12 23:08 hoffman + + * Modules/: CheckTypeSize.c.in, CheckTypeSize.cmake: ENH: move + define into configured file and do not use the command line + +2006-01-12 14:21 andy + + * Source/: cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: + COMP: Remove warning + +2006-01-12 13:48 martink + + * Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, + Modules/CMakeTestFortranCompiler.cmake, + Modules/CheckCSourceCompiles.cmake, + Modules/CheckCXXSourceCompiles.cmake, + Modules/CheckIncludeFile.cmake, + Modules/CheckIncludeFileCXX.cmake, + Modules/CheckIncludeFiles.cmake, Modules/CheckSymbolExists.cmake, + Modules/CheckTypeSize.cmake, Modules/FindSDL_sound.cmake, + Modules/Platform/Windows-cl.cmake, + Source/cmTryCompileCommand.cxx, Source/cmTryCompileCommand.h, + Source/cmTryRunCommand.cxx, + Source/CTest/Curl/CMake/CheckTypeSize.cmake, + Utilities/cmcurl/CMake/CheckTypeSize.cmake, + Tests/TryCompile/CMakeLists.txt, + Utilities/cmxmlrpc/CMake/TryCompileFromSource.cmake: ENH: put + CmakeTmp into CMakeFiles + +2006-01-12 11:10 hoffman + + * Modules/FindwxWindows.cmake: ENH: contribution from Jan Woetzel + +2006-01-12 09:20 andy + + * Source/cmGeneratedFileStream.cxx: COMP: Fix compile error that + was caused by the binary flag + +2006-01-12 00:40 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-11 19:12 andy + + * Source/CPack/cmCPackTGZGenerator.cxx: ENH: Fix compression on + Windows + +2006-01-11 19:06 andy + + * Source/: cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: ENH: + Add support for binary + +2006-01-11 11:23 andy + + * Source/CPack/cmCPackGenericGenerator.cxx: ENH: Add a way to + specify a custom install command + +2006-01-11 11:08 andy + + * CMakeLists.txt, Modules/CPack.cmake, Modules/NSIS.template.in, + Source/CPack/cmCPackGenericGenerator.cxx, + Templates/CPackConfig.cmake.in: ENH: Some improvements: specify + link, copy msvc libraries, fix install directory + +2006-01-11 00:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-10 12:05 andy + + * Source/CPack/: cmCPackConfigure.h.in, cmCPackNSISGenerator.cxx, + cmCPackNSISGenerator.h, cmCPackPackageMakerGenerator.h: COMP: + Remove legacy code and fix sun build + +2006-01-10 00:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-09 18:24 andy + + * Modules/NSIS.template.in, + Source/CPack/cmCPackGenericGenerator.cxx: ENH: Use specified + output file name, also detect errors during install + +2006-01-09 18:20 andy + + * Templates/CPackConfig.cmake.in: ENH: Pass CPACK_PACKAGE_FILE_NAME + +2006-01-09 18:20 andy + + * Modules/CPack.cmake: ENH: Cleanup + +2006-01-09 16:34 andy + + * Modules/NSIS.template.in: BUG: Allow spaces in path + +2006-01-09 14:56 hoffman + + * Tests/CustomCommand/GeneratedHeader/: CMakeLists.txt, + generated.h.in, main.cpp: ENH: add test for generated header + +2006-01-09 14:40 hoffman + + * Source/cmCustomCommand.cxx, Source/cmCustomCommand.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmTarget.cxx, + Tests/CustomCommand/CMakeLists.txt, + Tests/Wrapping/CMakeLists.txt, Tests/Wrapping/fakefluid.cxx: ENH: + for all custom commands that can not be given to a target, add + them to all targets in the current makefile + +2006-01-09 13:15 andy + + * CMakeLists.txt: STYLE: Add an explanation for a bunch of + backslashes + +2006-01-09 13:14 andy + + * Source/CPack/cmCPackTGZGenerator.cxx: BUG: Fix memory problem + +2006-01-09 12:46 hoffman + + * Utilities/Release/: Release.cmake, cmake_release.sh.in: ENH: + +2006-01-09 12:45 hoffman + + * Modules/: FindQt.cmake, FindQt4.cmake: ENH: add qt quiet stuff + +2006-01-09 11:26 andy + + * CMakeLists.txt, Modules/CPack.cmake, + Source/CPack/cmCPackGenericGenerator.cxx, + Templates/CPackConfig.cmake.in: ENH: Fix test for cpack + variables, add support for icon on windows + +2006-01-09 00:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-08 00:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-07 00:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-06 15:51 hoffman + + * Modules/: CMakeMSYSFindMake.cmake, CMakeMinGWFindMake.cmake, + Platform/Linux-icpc.cmake: ENH: merge from main tree + +2006-01-06 15:51 hoffman + + * Source/: cmGlobalMSYSMakefileGenerator.cxx, + cmGlobalMSYSMakefileGenerator.h, + cmGlobalMinGWMakefileGenerator.cxx, + cmGlobalMinGWMakefileGenerator.h: ENH: add missing files + +2006-01-06 15:07 hoffman + + * CMakeLists.txt, ChangeLog.manual, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeGenericSystem.cmake, + Modules/Platform/CYGWIN-g77.cmake, Modules/Platform/CYGWIN.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-g77.cmake, + Modules/Platform/Windows-gcc.cmake, + Modules/Platform/Windows.cmake, Source/CMakeLists.txt, + Source/cmAddExecutableCommand.cxx, Source/cmCTest.cxx, + Source/cmDependsC.cxx, Source/cmDependsC.h, + Source/cmFindFileCommand.cxx, Source/cmFindFileCommand.h, + Source/cmFindPathCommand.cxx, Source/cmFindPathCommand.h, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTarget.cxx, Source/cmTarget.h, + Source/cmake.cxx, Source/CTest/cmCTestBuildAndTestHandler.cxx, + Source/kwsys/ProcessUNIX.c, Source/kwsys/SystemTools.cxx, + Source/kwsys/SystemTools.hxx.in, Tests/Complex/CMakeLists.txt, + Tests/Complex/cmTestConfigure.h.in, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexOneConfig/cmTestConfigure.h.in, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/CMakeLists.txt, + Tests/ComplexRelativePaths/cmTestConfigure.h.in, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/CustomCommand/CMakeLists.txt, + Utilities/Release/cmake_release.sh, + Utilities/Release/cmake_release.sh.in: ENH: merges from main tree + +2006-01-06 13:54 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: fix missing plist file + error + +2006-01-06 10:45 andy + + * Utilities/cmtar/compat/snprintf.c: COMP: Try to remove more + warnings + +2006-01-06 00:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-05 17:16 king + + * Source/: cmDependsC.cxx, cmDependsC.h: BUG: Fix for scanning + generated headers included with double-quotes. Also fixed + double-quote include support to not use the special quoted + location when a full path is given on the include line. + +2006-01-05 15:49 king + + * Source/kwsys/testProcess.c: ENH: Added special test 0 to just run + a given command line. + +2006-01-05 13:27 andy + + * Source/CPack/: cmCPackGenericGenerator.cxx, cpack.cxx: ENH: More + debugging and work on PackageMaker code + +2006-01-05 13:25 yogi.girdhar + + * Utilities/cmtar/: config.h.in, libtar.c: BUG: libtar now compiles + in VJ and works with vtkzlib + +2006-01-05 12:33 andy + + * Source/CPack/cmCPackLog.cxx: ENH: flush the output + +2006-01-05 12:16 andy + + * Source/CPack/cpack.cxx: BUG: Use objects that exist + +2006-01-05 12:16 andy + + * Source/CPack/cmCPackLog.cxx: BUG: Print the right line number to + the right pipe + +2006-01-05 10:37 andy + + * Source/CPack/cmCPackPackageMakerGenerator.cxx: BUG: Revert back + +2006-01-05 09:18 hoffman + + * CMakeLists.txt: ENH: use a safer check for CPack + +2006-01-05 09:13 hoffman + + * Source/: cmAddExecutableCommand.cxx, cmGlobalXCodeGenerator.cxx, + cmLocalUnixMakefileGenerator3.cxx, cmMakefile.cxx: ENH: fix + bundles for Mac and Xcode + +2006-01-05 03:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-04 16:24 hoffman + + * Source/CPack/cmCPackTGZGenerator.cxx: ENH: remove assert + +2006-01-04 15:13 andy + + * CMakeLists.txt, Modules/CPack.Description.plist.in, + Modules/NSIS.template.in, + Source/CPack/cmCPackGenericGenerator.cxx, + Source/CPack/cmCPackSTGZGenerator.cxx, + Source/CPack/cmCPackTGZGenerator.cxx, Source/CPack/cpack.cxx, + Modules/CPack.cmake, Templates/CPackConfig.cmake.in: ENH: More + CPack stuff and fix zlib compression + +2006-01-04 09:55 hoffman + + * Source/cmFindPathCommand.cxx: ENH: remove debug print stuff + +2006-01-04 08:32 andy + + * Source/kwsys/CMakeLists.txt: COMP: Do not build tests if build + testing is off + +2006-01-04 01:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-03 17:11 hoffman + + * Utilities/Release/cmake_release.sh: ENH: update revision numbers + +2006-01-03 17:07 hoffman + + * Utilities/Release/cmake_release.sh.in: ENH: move to patch 2 + +2006-01-03 16:40 hoffman + + * Source/cmMakefile.cxx, Source/cmMakefile.h, + Tests/Complex/CMakeLists.txt, Tests/Complex/cmTestConfigure.h.in, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexOneConfig/cmTestConfigure.h.in, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/CMakeLists.txt, + Tests/ComplexRelativePaths/cmTestConfigure.h.in, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: add new + cmakedefine01 feature from bug report 2603 + +2006-01-03 14:00 hoffman + + * Modules/Platform/: CYGWIN-g77.cmake, CYGWIN.cmake: ENH: add exe + stuff for cygwin + +2006-01-03 08:39 andy + + * Source/cmSystemTools.cxx: COMP: Remove warnings on HP-UX + +2006-01-03 08:39 andy + + * Utilities/cmtar/append.c, Utilities/cmtar/extract.c, + Utilities/cmtar/libtar.c, Source/CPack/cmCPackLog.cxx, + Source/CPack/cpack.cxx: COMP: Remove warnings + +2006-01-03 01:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-02 17:28 andy + + * Source/CPack/: cmCPackGenerators.cxx, + cmCPackGenericGenerator.cxx, cmCPackGenericGenerator.h, + cmCPackNSISGenerator.cxx, cmCPackNSISGenerator.h, + cmCPackPackageMakerGenerator.cxx, cmCPackPackageMakerGenerator.h, + cmCPackSTGZGenerator.cxx, cmCPackSTGZGenerator.h, + cmCPackTGZGenerator.cxx, cmCPackTGZGenerator.h, cpack.cxx: ENH: + Start working on CPack input file and cleanups + +2006-01-02 17:22 andy + + * Source/CPack/: cmCPackLog.h, cmCPackLog.cxx: COMP: Fix compile + errors + +2006-01-02 16:14 andy + + * Source/: CMakeLists.txt, CPack/cmCPackGenerators.cxx, + CPack/cmCPackGenerators.h, CPack/cmCPackGenericGenerator.cxx, + CPack/cmCPackGenericGenerator.h, CPack/cmCPackLog.cxx, + CPack/cmCPackLog.h, CPack/cmCPackNSISGenerator.cxx, + CPack/cmCPackPackageMakerGenerator.cxx, + CPack/cmCPackSTGZGenerator.cxx, CPack/cmCPackTGZGenerator.cxx, + CPack/cpack.cxx: ENH: More improvements and add logging + +2006-01-02 15:01 hoffman + + * Tests/: CustomCommand/CMakeLists.txt, Wrapping/CMakeLists.txt: + BUG: force EXECUABLE and LIBRARY output paths so bad cache + entries do not fail tests + +2006-01-02 14:33 andy + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: BUG: Flush the EXECUTABLE + and LIBRARY output path to internal + +2006-01-02 13:37 hoffman + + * Modules/CMakeGenericSystem.cmake, + Modules/Platform/Windows-g77.cmake, + Modules/Platform/Windows-gcc.cmake, + Modules/Platform/Windows.cmake, Source/cmTarget.cxx: BUG: fix for + bug 2322, use CMAKE_EXECUTABLE_SUFFIX variable for exe suffix + +2006-01-02 13:34 hoffman + + * Source/cmGlobalUnixMakefileGenerator3.cxx: BUG: fix build problem + on gcc + +2006-01-02 12:36 hoffman + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: BUG: fix for bug 2533, make + foo/foo.o now works and .o files are in the help + +2006-01-02 11:39 andy + + * Source/CPack/cmCPackGenericGenerator.cxx: COMP: Remove warning + +2006-01-02 11:21 hoffman + + * Utilities/Release/Release.cmake: ENH: remove MS dll's from + install on cygwin + +2006-01-02 11:07 hoffman + + * Source/: cmFindPathCommand.cxx, cmMakefile.cxx: ENH: change + framework order + +2006-01-02 10:37 andy + + * Source/CPack/: cmCPackGenericGenerator.cxx, + cmCPackGenericGenerator.h, cmCPackTGZGenerator.cxx, + cmCPackTGZGenerator.h: COMP: Fix build problems + +2006-01-02 10:36 andy + + * Source/cmGeneratedFileStream.cxx: BUG: Fix the compression with + custom extension + +2006-01-02 07:53 andy + + * Source/CPack/: cmCPackPackageMakerGenerator.cxx, + cmCPackTGZGenerator.cxx, cmCPackTGZGenerator.h: ENH: Use libtar + +2006-01-02 07:52 andy + + * Source/: cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: ENH: + Add a way to overwrite compression extension + +2006-01-02 01:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2006-01-01 23:31 andy + + * Source/: CMakeLists.txt, cmSystemTools.cxx, cmSystemTools.h: ENH: + Merge from cpack branch + +2006-01-01 23:28 andy + + * Modules/: CPack.Description.plist.in, CPack.Info.plist.in, + NSIS.template.in: ENH: Merge from CPack branch + +2006-01-01 23:21 andy + + * Source/CPack/: cmCPackConfigure.h.in, cmCPackGenerators.cxx, + cmCPackGenerators.h, cmCPackGenericGenerator.cxx, + cmCPackGenericGenerator.h, cmCPackNSISGenerator.cxx, + cmCPackNSISGenerator.h, cmCPackPackageMakerGenerator.cxx, + cmCPackPackageMakerGenerator.h, cmCPackSTGZGenerator.cxx, + cmCPackSTGZGenerator.h, cmCPackTGZGenerator.cxx, + cmCPackTGZGenerator.h, cpack.cxx: ENH: Merge from the cpack + branch + +2006-01-01 01:05 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-31 13:10 king + + * Tests/TarTest/CMakeLists.txt: ENH: Simplified ln command to use + relative path in symlink. + +2005-12-31 12:59 king + + * Source/kwsys/ProcessUNIX.c: BUG: When more than one command is + given and one of them fails to start and the rest are killed, do + not forget to reap the killed children. + +2005-12-31 10:33 andy + + * Utilities/cmtar/: CMakeLists.txt, config.h.in, internal.h: COMP: + Try to fix major/minor problem on aix + +2005-12-31 09:40 andy + + * Utilities/cmtar/: CMakeLists.txt, config.h.in, internal.h: COMP: + Attempt to fix problems with major and minor + +2005-12-31 01:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-30 21:54 hoffman + + * Source/: cmFindFileCommand.cxx, cmFindFileCommand.h, + cmFindPathCommand.cxx, cmFindPathCommand.h: ENH: move framework + stuff from FindFile to FindPath + +2005-12-30 21:54 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: fix so verbose is + put in the correct place + +2005-12-30 17:51 andy + + * Utilities/cmtar/compat/snprintf.c: COMP: Fix systems that do not + have both vsnprintf and snprintf. + +2005-12-30 17:27 andy + + * Utilities/cmtar/: CMakeLists.txt, config.h.in, compat/compat.h, + compat/snprintf.c: COMP: Fix support for vsnprintf + +2005-12-30 16:28 andy + + * Source/cmSystemTools.cxx: COMP: Fix warning on sun + +2005-12-30 16:05 andy + + * Utilities/cmtar/extract.c: COMP: Another borland bug + +2005-12-30 15:46 andy + + * Tests/TarTest/CMakeLists.txt: ENH: Add testing of symlinks too + +2005-12-30 15:46 andy + + * Utilities/cmtar/extract.c: BUG: Handle mkdirhier properly since + it may modify the string + +2005-12-30 15:32 andy + + * Source/cmSystemTools.cxx: COMP: Remove sun warning + +2005-12-30 15:27 andy + + * Source/CMakeLists.txt, Tests/TarTest/CMakeLists.txt, + Tests/TarTest/TestTarExec.cxx: ENH: Add a tar test + +2005-12-30 15:25 andy + + * Source/cmake.cxx: ENH: Add a way to compare two files + +2005-12-30 14:51 andy + + * Source/cmSystemTools.cxx, Utilities/cmtar/handle.c, + Utilities/cmtar/libtar.c, Utilities/cmtar/libtar.h: ENH: Cleanup + the file handler stuf so that now any file descriptor type can be + used + +2005-12-30 14:50 andy + + * CMakeLists.txt, Utilities/cmcurl/CMakeLists.txt, + Utilities/cmexpat/CMakeLists.txt, Utilities/cmtar/CMakeLists.txt, + Utilities/cmzlib/CMakeLists.txt, Source/CMakeLists.txt: COMP: + Cleanup regular expressions + +2005-12-30 14:31 andy + + * Source/cmSystemTools.cxx: COMP: Remove unused variable + +2005-12-30 14:23 andy + + * Utilities/cmtar/compat/: basename.c, dirname.c: COMP: Remove + warnings by exposing some variables + +2005-12-30 14:22 andy + + * Source/cmSystemTools.cxx, Utilities/cmtar/handle.c, + Utilities/cmtar/libtar.c, Utilities/cmtar/libtar.h: COMP: Fix + support for gzip on non-32 bit platforms + +2005-12-30 13:22 andy + + * Utilities/cmtar/util.c: COMP: Remove warning about argument not + being int + +2005-12-30 13:22 andy + + * Source/: cmFindFileCommand.cxx, cmGlobalXCodeGenerator.cxx: COMP: + Remove shadow variable warning + +2005-12-30 12:58 andy + + * Source/cmSystemTools.cxx: COMP: Use mangle names + +2005-12-30 12:58 andy + + * Source/: cmFindFileCommand.cxx, cmTarget.cxx: COMP: Remove + warnings + +2005-12-30 10:35 andy + + * Utilities/cmtar/: CMakeLists.txt, append.c, config.h.in, + encode.c, internal.h, output.c, util.c, wrapper.c: BUG: Several + Borland fixes + +2005-12-30 01:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-29 12:19 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, cmake.cxx: ENH: Make + the syntax more line tar + +2005-12-29 12:18 andy + + * Utilities/cmtar/append.c: COMP: More cygwin fixes + +2005-12-29 11:42 andy + + * Utilities/cmtar/append.c: BUG: Fix on cygwin... again? + +2005-12-29 11:15 andy + + * Utilities/cmtar/output.c: COMP: Try to remove warnings and add + support for cygwin + +2005-12-29 10:52 andy + + * Source/cmake.cxx: ENH: Make additional file names optional + +2005-12-29 10:43 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, cmake.cxx: ENH: Add + untaring support + +2005-12-29 10:41 andy + + * Utilities/cmtar/extract.c: BUG: Fix extract. Looks like dirname + actually changes the string, so temporary string should be used + +2005-12-29 09:11 andy + + * Utilities/cmtar/: output.c, compat/compat.h: COMP: Remove c++ + style comments + +2005-12-29 01:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-28 20:04 andy + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: BUG: Now really + fix the test + +2005-12-28 19:31 andy + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: COMP: Fix test + +2005-12-28 17:02 andy + + * Source/cmSystemTools.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt: COMP: Fix + complex test and fix bootstrap + +2005-12-28 16:53 andy + + * Source/cmSystemTools.cxx: COMP: Add missing include + +2005-12-28 16:44 andy + + * Source/cmSystemTools.cxx: BUG: Return proper values + +2005-12-28 16:43 andy + + * Utilities/cmtar/: extract.c, libtar.c: COMP: Remove more warnings + +2005-12-28 16:31 andy + + * Source/cmake.cxx: ENH: Add command to create tar + +2005-12-28 16:30 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Add method to + create tar + +2005-12-28 16:30 andy + + * Source/CMakeLists.txt: COMP: Link tar library to cmake + +2005-12-28 16:29 andy + + * CMakeLists.txt: COMP: Fix path to include files + +2005-12-28 15:31 andy + + * Utilities/cmtar/: CMakeLists.txt, config.h.in, handle.c, + compat/compat.h: COMP: Remove more warnings and rename library to + cmtar + +2005-12-28 15:03 andy + + * Utilities/cmtar/append.c: COMP: Remove warning + +2005-12-28 14:58 andy + + * Utilities/cmtar/: CMakeLists.txt, append.c, decode.c, extract.c, + filesystem.c, filesystem.h, handle.c, internal.h, libtar.c, + util.c, wrapper.c, compat/basename.c, compat/compat.h, + compat/dirname.c: COMP: Several borland fixes + +2005-12-28 14:50 andy + + * Utilities/cmtar/compat/snprintf.c: COMP: Remove warnings + +2005-12-28 13:36 andy + + * CMakeLists.txt: ENH: First cut at enabling tar + +2005-12-28 13:35 andy + + * Utilities/cmtar/append.c: COMP: Only do O_BINARY on windows + +2005-12-28 13:33 andy + + * Utilities/cmtar/: append.c, libtar.c: COMP: Fix windows + +2005-12-28 13:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-28 12:34 andy + + * Utilities/cmtar/libtar.c: ENH: Fix building on cygwin + +2005-12-28 12:24 andy + + * Utilities/cmtar/: CMakeLists.txt, config.h.in, extract.c, + libtar.c: COMP: Fix build on sun by adding missing include + +2005-12-28 11:00 andy + + * Utilities/cmtar/: CMakeLists.txt, decode.c, filesystem.c, + wrapper.c, compat/basename.c, compat/dirname.c, compat/fnmatch.c, + compat/snprintf.c: ENH: Windows fixes + +2005-12-28 10:28 andy + + * CMakeLists.txt: ENH: Merge change from the main tree + +2005-12-28 10:19 andy + + * CMakeLists.txt: ENH: Initial setup of libtar + +2005-12-28 10:18 andy + + * Utilities/cmtar/: CMakeLists.txt, COPYRIGHT, append.c, block.c, + config.h.in, decode.c, encode.c, extract.c, filesystem.c, + filesystem.h, handle.c, internal.h, libtar.c, libtar.h, output.c, + tar.h, util.c, wrapper.c, compat/README, compat/basename.c, + compat/compat.h, compat/dirname.c, compat/fnmatch.c, + compat/gethostbyname_r.c, compat/gethostname.c, + compat/getservbyname_r.c, compat/glob.c, compat/inet_aton.c, + compat/snprintf.c, compat/strdup.c, compat/strlcat.c, + compat/strlcpy.c, compat/strmode.c, compat/strrstr.c, + compat/strsep.c, listhash/hash.c.in, listhash/list.c.in, + listhash/listhash.h.in: ENH: Initial import + +2005-12-28 10:09 andy + + * Utilities/cmtar/: CMakeLists.txt, COPYRIGHT, append.c, block.c, + config.h.in, decode.c, encode.c, extract.c, filesystem.c, + filesystem.h, handle.c, internal.h, libtar.c, libtar.h, output.c, + tar.h, util.c, wrapper.c, compat/README, compat/basename.c, + compat/compat.h, compat/dirname.c, compat/fnmatch.c, + compat/gethostbyname_r.c, compat/gethostname.c, + compat/getservbyname_r.c, compat/glob.c, compat/inet_aton.c, + compat/snprintf.c, compat/strdup.c, compat/strlcat.c, + compat/strlcpy.c, compat/strmode.c, compat/strrstr.c, + compat/strsep.c, listhash/hash.c.in, listhash/list.c.in, + listhash/listhash.h.in: ENH: Initial import + +2005-12-28 10:07 andy + + * Source/cmake.cxx: ENH: Add file compare + +2005-12-27 15:33 hoffman + + * Source/: cmFindFileCommand.cxx, cmFindFileCommand.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: make sure -F is not + duplicated + +2005-12-27 15:08 andy + + * Source/CPack/: cmCPackConfigure.h.in, cmCPackGenerators.cxx, + cmCPackGenerators.h, cmCPackGenericGenerator.cxx, + cmCPackGenericGenerator.h, cmCPackNSISGenerator.cxx, + cmCPackNSISGenerator.h, cmCPackPackageMakerGenerator.cxx, + cmCPackPackageMakerGenerator.h, cmCPackSTGZGenerator.h, + cmCPackTGZGenerator.cxx, cmCPackTGZGenerator.h: ENH: Remove + references to m_Makefile. It is now private. Fix several build + problems. Change generator creation. ... + +2005-12-27 14:56 hoffman + + * Source/: cmFindFileCommand.cxx, cmFindFileCommand.h, + cmGlobalXCodeGenerator.cxx, cmLocalGenerator.cxx: ENH: add + framework support to FIND_FILE + +2005-12-27 14:32 andy + + * Source/CPack/cpack.cxx, Utilities/CMakeLists.txt: ENH: Improve + help arguments and add generation of doc files + +2005-12-27 13:10 andy + + * Source/cmCTest.cxx: ENH: Fix command line argument parsing + +2005-12-27 13:03 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: remove warning + +2005-12-26 13:14 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmLocalGenerator.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, cmMakefile.cxx, + cmOrderLinkDirectories.cxx, cmOrderLinkDirectories.h, + cmSystemTools.cxx, cmSystemTools.h, cmTarget.cxx, cmTarget.h, + kwsys/SystemTools.cxx: ENH: add better support for framework + linking + +2005-12-26 01:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-25 01:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-24 01:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-23 01:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-22 16:42 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeMSYSFindMake.cmake, + Modules/CMakeMinGWFindMake.cmake, Source/CMakeLists.txt, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalMSYSMakefileGenerator.cxx, + Source/cmGlobalMSYSMakefileGenerator.h, + Source/cmGlobalMinGWMakefileGenerator.cxx, + Source/cmGlobalMinGWMakefileGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.h, Source/cmake.cxx: ENH: + fix borland make clean targets before build, add new generators + for msys and mingw + +2005-12-22 16:02 hoffman + + * ChangeLog.manual, Modules/CMake.cmake, + Modules/CMakeBackwardCompatibilityC.cmake, + Modules/CMakeBackwardCompatibilityCXX.cmake, + Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeCommonLanguageInclude.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineFortranCompiler.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeDetermineRCCompiler.cmake, + Modules/CMakeDetermineSystem.cmake, + Modules/CMakeExportBuildSettings.cmake, + Modules/CMakeFindFrameworks.cmake, + Modules/CMakeFortranInformation.cmake, + Modules/CMakeImportBuildSettings.cmake, + Modules/CMakeJavaInformation.cmake, + Modules/CMakePrintSystemInformation.cmake, + Modules/CMakeRCInformation.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, + Modules/CMakeTestFortranCompiler.cmake, + Modules/CMakeTestJavaCompiler.cmake, + Modules/CMakeTestRCCompiler.cmake, + Modules/CMakeVS6BackwardCompatibility.cmake, + Modules/CMakeVS7BackwardCompatibility.cmake, Modules/CTest.cmake, + Modules/CheckCSourceCompiles.cmake, + Modules/CheckCXXSourceCompiles.cmake, + Modules/CheckFunctionExists.cmake, + Modules/CheckIncludeFile.cmake, + Modules/CheckIncludeFileCXX.cmake, + Modules/CheckIncludeFiles.cmake, + Modules/CheckLibraryExists.cmake, + Modules/CheckSymbolExists.cmake, Modules/CheckTypeSize.cmake, + Modules/CheckVariableExists.cmake, Modules/Dart.cmake, + Modules/Documentation.cmake, Modules/FindAVIFile.cmake, + Modules/FindCABLE.cmake, Modules/FindCurses.cmake, + Modules/FindCygwin.cmake, Modules/FindDCMTK.cmake, + Modules/FindDart.cmake, Modules/FindDoxygen.cmake, + Modules/FindFLTK.cmake, Modules/FindGCCXML.cmake, + Modules/FindGLU.cmake, Modules/FindGLUT.cmake, + Modules/FindGTK.cmake, Modules/FindGnuplot.cmake, + Modules/FindHTMLHelp.cmake, Modules/FindITK.cmake, + Modules/FindImageMagick.cmake, Modules/FindJNI.cmake, + Modules/FindJPEG.cmake, Modules/FindJava.cmake, + Modules/FindKDE.cmake, Modules/FindLATEX.cmake, + Modules/FindMFC.cmake, Modules/FindMPEG.cmake, + Modules/FindMPEG2.cmake, Modules/FindMPI.cmake, + Modules/FindMatlab.cmake, Modules/FindMotif.cmake, + Modules/FindOpenAL.cmake, Modules/FindOpenGL.cmake, + Modules/FindPHP4.cmake, Modules/FindPNG.cmake, + Modules/FindPerl.cmake, Modules/FindPerlLibs.cmake, + Modules/FindPhysFS.cmake, Modules/FindPike.cmake, + Modules/FindPythonInterp.cmake, Modules/FindPythonLibs.cmake, + Modules/FindQt.cmake, Modules/FindQt.cmake.bak, + Modules/FindQt3.cmake, Modules/FindQt4.cmake, + Modules/FindRuby.cmake, Modules/FindSDL.cmake, + Modules/FindSDL.cmake.bak, Modules/FindSDL_image.cmake, + Modules/FindSDL_image.cmake.bak, Modules/FindSDL_mixer.cmake, + Modules/FindSDL_mixer.cmake.bak, Modules/FindSDL_net.cmake, + Modules/FindSDL_net.cmake.bak, Modules/FindSDL_sound.cmake, + Modules/FindSDL_ttf.cmake, Modules/FindSDL_ttf.cmake.bak, + Modules/FindSWIG.cmake, Modules/FindSelfPackers.cmake, + Modules/FindTCL.cmake, Modules/FindTIFF.cmake, + Modules/FindTclsh.cmake, Modules/FindThreads.cmake, + Modules/FindUnixCommands.cmake, Modules/FindVTK.cmake, + Modules/FindWget.cmake, Modules/FindWish.cmake, + Modules/FindX11.cmake, Modules/FindZLIB.cmake, + Modules/FindwxWindows.cmake, Modules/TestBigEndian.cmake, + Modules/TestCXXAcceptsFlag.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForANSIStreamHeaders.cmake, + Modules/TestForSTDNamespace.cmake, Modules/UseQt4.cmake, + Modules/UseSWIG.cmake, Modules/UseVTK40.cmake, + Modules/UseVTKBuildSettings40.cmake, + Modules/UseVTKConfig40.cmake, Modules/Use_wxWindows.cmake, + Modules/UsewxWidgets.cmake, Modules/readme.txt, + Source/cmBuildCommand.cxx, Source/cmBuildNameCommand.h, + Source/cmCTest.cxx, Source/cmDepends.cxx, Source/cmDepends.h, + Source/cmDependsC.cxx, Source/cmDependsC.h, + Source/cmDependsFortran.cxx, Source/cmDependsFortran.h, + Source/cmDependsJava.cxx, Source/cmDependsJava.h, + Source/cmDocumentation.cxx, Source/cmDocumentation.h, + Source/cmFindPackageCommand.h, + Source/cmGetCMakePropertyCommand.h, + Source/cmGetDirectoryPropertyCommand.h, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalVisualStudio8Generator.h, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, + Source/cmInstallTargetsCommand.cxx, Source/cmLocalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmMakefile.cxx, + Source/cmSetDirectoryPropertiesCommand.h, + Source/cmSiteNameCommand.h, Source/cmTarget.cxx, + Source/cmTarget.h, Source/cmTryRunCommand.h, + Source/cmakemain.cxx, Source/CTest/cmCTestBuildCommand.cxx, + Source/CTest/cmCTestUpdateHandler.cxx, + Source/MFCDialog/CMakeCommandLineInfo.cpp, + Source/MFCDialog/CMakeSetup.cpp, Source/kwsys/ProcessWin32.c, + Source/kwsys/SystemTools.cxx, Source/kwsys/SystemTools.hxx.in, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: merge changes from + main tree to branch + +2005-12-22 15:41 andy + + * Modules/CPack.Description.plist.in, Modules/CPack.Info.plist.in, + Source/CPack/cmCPackPackageMakerGenerator.cxx, + Source/CPack/cmCPackPackageMakerGenerator.h: ENH: Ok, now it + works + +2005-12-22 15:34 andy + + * Source/CPack/cmCPackGenericGenerator.cxx: ENH: Add mandatory + project description file or string + +2005-12-22 15:34 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Add XML + encoduing method + +2005-12-22 01:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-21 15:45 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: make sure depend helper actually works, if a depend library + gets updated, then the target needs to be removed, and the + CONFIGURATION directory needs to be used + +2005-12-21 08:46 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Libraries and + executables that are built with version numbers and symlinks + should be built by a rule using the real file name. The symlink + file names should be rules that just depend on the main rule. + This way if a version number changes a target will re-link with + the new name and the symlinks will be updated. + +2005-12-21 01:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-20 14:07 andy + + * Utilities/cmcurl/mprintf.c: COMP: Fix build on uclibc + +2005-12-20 13:53 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: remove duplicates + +2005-12-20 13:22 king + + * Source/kwsys/ProcessWin32.c: ENH: Improved robustness of sharing + parent pipes with children. This ensures that the parent pipe + handles are inherited by the children. If a parent pipe handle + is invalid a handle to an empty pipe is given to the child to + make sure all pipes are defined for the children. + +2005-12-20 09:20 andy + + * Source/CMakeLists.txt: ENH: Start working on PackageMaker + +2005-12-20 01:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-19 18:17 andy + + * Source/CPack/: cmCPackGenerators.cxx, + cmCPackGenericGenerator.cxx, cmCPackGenericGenerator.h, + cmCPackPackageMakerGenerator.cxx, cmCPackPackageMakerGenerator.h: + ENH: Start working on Osx + +2005-12-19 11:29 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, + CTest/cmCTestBuildAndTestHandler.cxx: BUG: fix for bug 2560, + Xcode does not create correct bundles + +2005-12-19 01:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-18 10:00 andy + + * Source/CPack/: cmCPackGenericGenerator.cxx, + cmCPackGenericGenerator.h, cmCPackNSISGenerator.cxx, + cmCPackNSISGenerator.h, cpack.cxx: ENH: 'Finish; NSI + +2005-12-18 09:59 andy + + * Modules/NSIS.template.in: ENH: Unify with Ken's + +2005-12-18 01:05 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-17 01:12 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-16 16:49 hoffman + + * Source/cmDocumentation.cxx: ENH: make sure uncommented modules + are not documented + +2005-12-16 09:03 andy + + * Source/kwsys/SystemTools.cxx: BUG: Return if the file is in any + directory not just in first one + +2005-12-16 01:12 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-15 16:28 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: BUG: Fix test + +2005-12-15 14:17 martink + + * Modules/: FindMFC.cmake, FindMPEG.cmake, FindMPEG2.cmake, + FindMPI.cmake, FindMotif.cmake, FindOpenGL.cmake, FindPHP4.cmake, + FindPerl.cmake, FindPerlLibs.cmake, FindPhysFS.cmake, + FindPike.cmake, FindPythonInterp.cmake, FindPythonLibs.cmake, + FindQt.cmake, FindQt4.cmake, FindRuby.cmake, FindSDL.cmake, + FindSDL_image.cmake, FindSDL_mixer.cmake, FindSDL_net.cmake, + FindSDL_sound.cmake, FindSDL_ttf.cmake, FindTCL.cmake, + FindTIFF.cmake, FindTclsh.cmake, FindThreads.cmake, + FindVTK.cmake, FindWget.cmake, FindWish.cmake, FindX11.cmake, + FindwxWindows.cmake, TestForANSIStreamHeaders.cmake, + TestForSTDNamespace.cmake, UseSWIG.cmake, Use_wxWindows.cmake: + ENH: cleanups + +2005-12-15 12:01 andy + + * Source/cmInstallTargetsCommand.cxx: ENH: Report an error if the + target does not exists + +2005-12-15 10:41 martink + + * Modules/: CMakeBackwardCompatibilityCXX.cmake, + CMakeExportBuildSettings.cmake, CMakeImportBuildSettings.cmake, + CheckCXXSourceCompiles.cmake, CheckIncludeFile.cmake, + CheckIncludeFileCXX.cmake, CheckIncludeFiles.cmake, + CheckLibraryExists.cmake, CheckSymbolExists.cmake, + CheckTypeSize.cmake, CheckVariableExists.cmake, + FindAVIFile.cmake, FindCABLE.cmake, FindFLTK.cmake, + FindGLUT.cmake, FindGTK.cmake, FindHTMLHelp.cmake, FindITK.cmake, + FindImageMagick.cmake, FindJNI.cmake, FindJPEG.cmake, + FindJava.cmake, FindLATEX.cmake, FindMatlab.cmake: ENH: some + style fixes for the book + +2005-12-15 09:19 hoffman + + * Modules/FindQt3.cmake, Source/cmDocumentation.cxx: ENH: fix + module documenation to handle bad docs and fix qt3 docs + +2005-12-15 01:47 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-14 13:51 hoffman + + * Modules/CMake.cmake, Modules/CMakeBackwardCompatibilityC.cmake, + Modules/CMakeBackwardCompatibilityCXX.cmake, + Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeCommonLanguageInclude.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineFortranCompiler.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeDetermineRCCompiler.cmake, + Modules/CMakeDetermineSystem.cmake, + Modules/CMakeExportBuildSettings.cmake, + Modules/CMakeFindFrameworks.cmake, + Modules/CMakeFortranInformation.cmake, + Modules/CMakeImportBuildSettings.cmake, + Modules/CMakeJavaInformation.cmake, + Modules/CMakePrintSystemInformation.cmake, + Modules/CMakeRCInformation.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, + Modules/CMakeTestFortranCompiler.cmake, + Modules/CMakeTestJavaCompiler.cmake, + Modules/CMakeTestRCCompiler.cmake, + Modules/CMakeVS6BackwardCompatibility.cmake, + Modules/CMakeVS7BackwardCompatibility.cmake, Modules/CTest.cmake, + Modules/CheckCSourceCompiles.cmake, + Modules/CheckCXXSourceCompiles.cmake, + Modules/CheckFunctionExists.cmake, + Modules/CheckIncludeFile.cmake, + Modules/CheckIncludeFileCXX.cmake, + Modules/CheckIncludeFiles.cmake, + Modules/CheckLibraryExists.cmake, + Modules/CheckSymbolExists.cmake, Modules/CheckTypeSize.cmake, + Modules/CheckVariableExists.cmake, Modules/Dart.cmake, + Modules/Documentation.cmake, Modules/FindAVIFile.cmake, + Modules/FindCABLE.cmake, Modules/FindCurses.cmake, + Modules/FindCygwin.cmake, Modules/FindDCMTK.cmake, + Modules/FindDart.cmake, Modules/FindDoxygen.cmake, + Modules/FindFLTK.cmake, Modules/FindGCCXML.cmake, + Modules/FindGLU.cmake, Modules/FindGLUT.cmake, + Modules/FindGTK.cmake, Modules/FindGnuplot.cmake, + Modules/FindHTMLHelp.cmake, Modules/FindITK.cmake, + Modules/FindImageMagick.cmake, Modules/FindJNI.cmake, + Modules/FindJPEG.cmake, Modules/FindJava.cmake, + Modules/FindKDE.cmake, Modules/FindLATEX.cmake, + Modules/FindMFC.cmake, Modules/FindMPEG.cmake, + Modules/FindMPEG2.cmake, Modules/FindMPI.cmake, + Modules/FindMatlab.cmake, Modules/FindMotif.cmake, + Modules/FindOpenAL.cmake, Modules/FindOpenGL.cmake, + Modules/FindPHP4.cmake, Modules/FindPNG.cmake, + Modules/FindPerl.cmake, Modules/FindPerlLibs.cmake, + Modules/FindPhysFS.cmake, Modules/FindPike.cmake, + Modules/FindPythonInterp.cmake, Modules/FindPythonLibs.cmake, + Modules/FindQt.cmake, Modules/FindQt3.cmake, + Modules/FindQt4.cmake, Modules/FindRuby.cmake, + Modules/FindSDL.cmake, Modules/FindSDL_image.cmake, + Modules/FindSDL_mixer.cmake, Modules/FindSDL_net.cmake, + Modules/FindSDL_sound.cmake, Modules/FindSDL_ttf.cmake, + Modules/FindSWIG.cmake, Modules/FindSelfPackers.cmake, + Modules/FindTCL.cmake, Modules/FindTIFF.cmake, + Modules/FindTclsh.cmake, Modules/FindThreads.cmake, + Modules/FindUnixCommands.cmake, Modules/FindVTK.cmake, + Modules/FindWget.cmake, Modules/FindWish.cmake, + Modules/FindX11.cmake, Modules/FindZLIB.cmake, + Modules/FindwxWindows.cmake, Modules/TestBigEndian.cmake, + Modules/TestCXXAcceptsFlag.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForANSIStreamHeaders.cmake, + Modules/TestForSTDNamespace.cmake, Modules/UseQt4.cmake, + Modules/UseSWIG.cmake, Modules/UseVTK40.cmake, + Modules/UseVTKBuildSettings40.cmake, + Modules/UseVTKConfig40.cmake, Modules/Use_wxWindows.cmake, + Modules/UsewxWidgets.cmake, Modules/readme.txt, + Source/cmDocumentation.cxx, Source/cmDocumentation.h, + Source/cmakemain.cxx: ENH: add documentation support for modules + +2005-12-14 11:00 king + + * Source/cmGlobalVisualStudio7Generator.h: ENH: Renamed + ZeroTargetCheck target to ZERO_CHECK for consistency with other + CMake-generated targets (ALL_BUILD, RUN_TESTS, INSTALL). + +2005-12-14 10:58 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: COMP: Fix conversion + warning. + +2005-12-14 10:47 king + + * Source/: cmLocalGenerator.cxx, cmLocalUnixMakefileGenerator3.cxx, + cmMakefile.cxx, cmTarget.cxx, cmTarget.h: ENH: Removed cmMakefile + arguments from cmTarget methods because cmTarget has the ivar + m_Makefile now. Re-implemented + cmLocalUnixMakefileGenerator3::AppendAnyDepend to use the new + global knowledge and avoid the need to look at the cache for + information about other targets. This should fix problems with + custom commands and executables with the OUTPUT_NAME set. Also + the _LIBRARY_TYPE cache variable is no longer needed at + all and has been removed. + +2005-12-13 18:23 king + + * Source/cmGlobalVisualStudio8Generator.cxx: COMP: Fixed unused + variable warning. + +2005-12-13 15:16 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: BUG: Fix the problem with + update.xml.tmp not being coppied + +2005-12-13 15:14 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: removed + TARGET_DIR_PREFIX support and someother fix + +2005-12-13 15:13 martink + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: removed + TARGET_DIR_PREFIX support + +2005-12-13 15:12 martink + + * Source/cmTryRunCommand.h: STYLE: fix missing docs + +2005-12-13 14:21 king + + * Source/: cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, + cmGlobalVisualStudio8Generator.cxx, + cmGlobalVisualStudio8Generator.h, + cmLocalVisualStudio7Generator.cxx: ENH: Added support for + parallel builds in VS 8. There is now a special target on which + all other targets depend that re-runs CMake if any listfiles have + been changed. This addresses bug#2512. + +2005-12-13 14:14 king + + * Source/MFCDialog/: CMakeCommandLineInfo.cpp, CMakeSetup.cpp: BUG: + Fix storage/use of argc/argv in CMakeSetup dialog. + +2005-12-13 14:07 martink + + * Utilities/Release/CMake.nsi.in: ENH: removed the add to path + +2005-12-13 04:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-12 11:34 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: fix for bug 2584, + empty source groups with children skipped + +2005-12-12 04:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-11 04:20 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-11 00:12 andy + + * Source/kwsys/SystemTools.cxx: COMP: for a in range(100): + write_on_board(No std in kwsys...) + +2005-12-10 12:16 andy + + * Modules/NSIS.template.in: ENH: Some fixes to make it work + +2005-12-10 12:14 andy + + * Source/CPack/: cmCPackGenericGenerator.cxx, + cmCPackGenericGenerator.h, cmCPackNSISGenerator.cxx, cpack.cxx: + ENH: More work on NSIS: + +2005-12-10 12:11 andy + + * Source/cmLocalGenerator.cxx: ENH: Allow the installer to + overwrite the install prefix + +2005-12-10 12:10 andy + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ENH: Add a method to remove + remaining arguments + +2005-12-10 12:09 andy + + * Source/kwsys/Glob.hxx.in: COMP: Fix the exporting so that it can + actually be used + +2005-12-10 12:08 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add + another signature to FindProgram that matches more to the one + from CMake + +2005-12-10 04:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-09 23:04 hoffman + + * Source/: cmDependsC.cxx, cmDependsC.h: ENH: try to fix hp build + problem + +2005-12-09 16:32 andy + + * Source/cmDependsC.h: ENH: fix compile error + +2005-12-09 14:30 hoffman + + * Source/: cmDependsC.cxx, cmDependsC.h: ENH: clean up style a bit + +2005-12-09 13:58 hoffman + + * Source/: cmDependsC.cxx, cmDependsC.h, + cmLocalUnixMakefileGenerator3.cxx: PERF: apply patch for bug 2575 + speeds up depend scanning + +2005-12-09 04:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-08 04:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-07 11:39 andy + + * Source/: cmBuildNameCommand.h, cmFindPackageCommand.h, + cmGetCMakePropertyCommand.h, cmGetDirectoryPropertyCommand.h, + cmSetDirectoryPropertiesCommand.h, cmSiteNameCommand.h: ENH: Make + commands scriptable + +2005-12-06 10:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-05 08:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-04 05:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-03 06:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-02 09:18 hoffman + + * Utilities/Release/cmake_release.sh: ENH: update revision numbers + +2005-12-02 09:16 hoffman + + * ChangeLog.manual, Utilities/Release/config_IRIX64, + Utilities/Release/release_dispatch.sh: ENH: fix change log and + change sgi release scripts + +2005-12-02 05:30 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-12-01 21:52 andy + + * Modules/NSIS.template.in, Source/CPack/cmCPackNSISGenerator.cxx, + Source/CPack/cmCPackNSISGenerator.h: ENH: Work on nsis + +2005-12-01 12:27 hoffman + + * Utilities/Release/cmake_release.sh: ENH: update revision numbers + +2005-12-01 11:41 andy + + * Source/: cmBuildCommand.cxx, cmGlobalGenerator.cxx, + cmGlobalGenerator.h, cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h, CTest/cmCTestBuildCommand.cxx: ENH: Add + a way for the generated command to include extra flags. This is + useful for CTest (or try compile) to add -j2 + +2005-12-01 05:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-30 13:46 andy + + * Source/cmMakefile.cxx: ENH: Add variable for debugging. This + variable CMAKE_PARENT_LIST_FILE holds the parent CMake list file + of the current cmake list file. + +2005-11-30 05:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-29 05:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-28 15:57 hoffman + + * Source/CMakeLists.txt, Tests/Tutorial/Step1/CMakeLists.txt, + Tests/Tutorial/Step1/TutorialConfig.h.in, + Tests/Tutorial/Step1/tutorial.cxx, + Tests/Tutorial/Step2/CMakeLists.txt, + Tests/Tutorial/Step2/TutorialConfig.h.in, + Tests/Tutorial/Step2/tutorial.cxx, + Tests/Tutorial/Step2/MathFunctions/CMakeLists.txt, + Tests/Tutorial/Step2/MathFunctions/MathFunctions.h, + Tests/Tutorial/Step2/MathFunctions/mysqrt.cxx, + Tests/Tutorial/Step3/CMakeLists.txt, + Tests/Tutorial/Step3/TutorialConfig.h.in, + Tests/Tutorial/Step3/tutorial.cxx, + Tests/Tutorial/Step3/MathFunctions/CMakeLists.txt, + Tests/Tutorial/Step3/MathFunctions/MathFunctions.h, + Tests/Tutorial/Step3/MathFunctions/mysqrt.cxx, + Tests/Tutorial/Step4/CMakeLists.txt, + Tests/Tutorial/Step4/TutorialConfig.h.in, + Tests/Tutorial/Step4/tutorial.cxx, + Tests/Tutorial/Step4/MathFunctions/CMakeLists.txt, + Tests/Tutorial/Step4/MathFunctions/MathFunctions.h, + Tests/Tutorial/Step4/MathFunctions/mysqrt.cxx, + Tests/Tutorial/Step5/CMakeLists.txt, + Tests/Tutorial/Step5/TutorialConfig.h.in, + Tests/Tutorial/Step5/tutorial.cxx, + Tests/Tutorial/Step5/MathFunctions/CMakeLists.txt, + Tests/Tutorial/Step5/MathFunctions/MakeTable.cxx, + Tests/Tutorial/Step5/MathFunctions/MathFunctions.h, + Tests/Tutorial/Step5/MathFunctions/mysqrt.cxx: ENH: move tutorial + to branch + +2005-11-28 15:15 hoffman + + * CMakeLists.txt, Source/cmDependsFortranLexer.cxx, + Source/cmDependsFortranLexer.in.l: ENH: Version 2.2.3 + +2005-11-28 14:19 hoffman + + * Modules/VTKCompatibility.cmake: ENH: fix problem with building + vtk 4.4.2 + +2005-11-28 14:05 hoffman + + * Modules/VTKCompatibility.cmake: ENH: fix for vtk 4.4.2 and cmake + 2.2 + +2005-11-28 05:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-27 05:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-26 05:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-25 05:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-24 05:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-23 12:33 hoffman + + * ChangeLog.manual, Modules/CMakeCCompiler.cmake.in, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestJavaCompiler.cmake, + Modules/CheckFunctionExists.cmake, + Modules/CheckIncludeFile.cmake, + Modules/CheckIncludeFileCXX.cmake, + Modules/CheckIncludeFiles.cmake, + Modules/CheckLibraryExists.cmake, + Modules/CheckSymbolExists.cmake, + Modules/CheckVariableExists.cmake, Modules/FindOpenAL.cmake, + Modules/FindPhysFS.cmake, Modules/FindQt3.cmake, + Modules/FindSDL.cmake, Modules/FindSDL.cmake.bak, + Modules/FindSDL_image.cmake, Modules/FindSDL_image.cmake.bak, + Modules/FindSDL_mixer.cmake, Modules/FindSDL_mixer.cmake.bak, + Modules/FindSDL_net.cmake, Modules/FindSDL_net.cmake.bak, + Modules/FindSDL_sound.cmake, Modules/FindSDL_ttf.cmake, + Modules/FindSDL_ttf.cmake.bak, Modules/Platform/SunOS.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-icl.cmake, + Modules/Platform/Windows-ifort.cmake, + Source/cmAddLibraryCommand.h, Source/cmAddSubDirectoryCommand.h, + Source/cmCMakeMinimumRequired.h, Source/cmCPluginAPI.h, + Source/cmCTest.cxx, Source/cmConfigureFileCommand.h, + Source/cmCreateTestSourceList.h, Source/cmElseCommand.h, + Source/cmEnableLanguageCommand.h, + Source/cmEnableTestingCommand.h, Source/cmEndForEachCommand.h, + Source/cmEndIfCommand.h, Source/cmEndWhileCommand.h, + Source/cmExecProgramCommand.h, Source/cmFLTKWrapUICommand.h, + Source/cmFileCommand.h, Source/cmForEachCommand.h, + Source/cmGetCMakePropertyCommand.h, + Source/cmGetDirectoryPropertyCommand.h, + Source/cmGetSourceFilePropertyCommand.h, + Source/cmGetTargetPropertyCommand.h, + Source/cmGetTestPropertyCommand.h, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, Source/cmIfCommand.cxx, + Source/cmIfCommand.h, Source/cmIncludeCommand.h, + Source/cmInstallFilesCommand.h, Source/cmInstallTargetsCommand.h, + Source/cmLoadCacheCommand.h, Source/cmLocalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmMacroCommand.h, Source/cmMakefile.cxx, + Source/cmMarkAsAdvancedCommand.h, Source/cmMessageCommand.h, + Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, Source/cmQTWrapCPPCommand.h, + Source/cmQTWrapUICommand.h, Source/cmSetCommand.h, + Source/cmSetSourceFilesPropertiesCommand.h, + Source/cmSetTargetPropertiesCommand.h, + Source/cmSetTestsPropertiesCommand.h, Source/cmSourceFile.cxx, + Source/cmSourceGroupCommand.h, Source/cmSubdirCommand.h, + Source/cmSystemTools.cxx, Source/cmTarget.cxx, + Source/cmTryCompileCommand.h, Source/cmTryRunCommand.h, + Source/cmVariableRequiresCommand.h, Source/cmWhileCommand.h, + Source/cmWriteFileCommand.h, Source/cmXCode21Object.cxx, + Source/cmXCodeObject.cxx, Source/cmXCodeObject.h, + Source/ctest.cxx, Source/CTest/cmCTestBuildHandler.cxx, + Source/CTest/cmCTestScriptHandler.h, + Source/CTest/cmCTestSubmitHandler.cxx, + Source/CTest/cmCTestTestHandler.cxx, + Source/CTest/cmCTestTestHandler.h, Source/kwsys/ProcessUNIX.c, + Source/kwsys/ProcessWin32.c, Source/kwsys/SystemTools.cxx, + Tests/ExternalOBJ/CMakeLists.txt, Tests/Wrapping/CMakeLists.txt, + Utilities/Release/CMake.nsi.in: ENH: merge fixes from main tree, + see ChangeLog.manual + +2005-11-23 10:27 hoffman + + * Source/cmTarget.cxx: ENH: executable prefix and post fix + variables should not be the same as the executable extension + +2005-11-23 05:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-22 17:03 king + + * Source/: cmMakefile.cxx, cmTarget.cxx: BUG: Do not expand escape + sequences when re-expanding variables in include directories, + link directories, and link libraries. + +2005-11-22 16:59 king + + * Source/cmOrderLinkDirectories.cxx: BUG: Do not accept a directory + name as a library. + +2005-11-22 16:08 hoffman + + * Source/: cmOrderLinkDirectories.cxx, cmOrderLinkDirectories.h: + BUG: fix for bug 2357, do not allow targets to link to + directories + +2005-11-22 15:15 hoffman + + * Source/CTest/cmCTestScriptHandler.h: BUG: fix spelling error + +2005-11-22 13:37 king + + * Source/: cmGlobalVisualStudio7Generator.h, + cmGlobalVisualStudio8Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: Tweak VS8 generator to + keep VS8 happy. The .vcproj files need their own GUIDs in a + ProjectGUID attribute. The top level .sln file needs a special + comment at the top to allow it to be opened with double-click in + explorer. + +2005-11-22 13:36 king + + * CMakeLists.txt: COMP: Define _CRT_SECURE_NO_DEPRECATE to build + CMake itself on VS8. This disables 1000s of deprecation warnings + about standard code. + +2005-11-22 12:04 hoffman + + * Modules/Platform/Windows-cl.cmake: BUG: fix for bug 2488 + +2005-11-22 11:44 hoffman + + * Modules/Platform/: Linux-icpc.cmake, SunOS.cmake: ENH: more + compiler flags + +2005-11-22 11:35 king + + * Source/cmSetTargetPropertiesCommand.h: STYLE: Fixed documentation + to state target_EXPORTS default right after DEFINE_SYMBOL + documentation instead of many sentences later in a random place. + +2005-11-22 11:33 king + + * Modules/FindQt3.cmake: BUG: QT_DEFINITIONS should not be quoted. + This addresses bug#2481. + +2005-11-22 11:28 hoffman + + * Modules/CMakeTestJavaCompiler.cmake: ENH: set java compiler works + +2005-11-22 05:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-21 05:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-20 05:30 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-19 09:40 hoffman + + * Source/: cmLocalVisualStudio7Generator.cxx, + cmSetTargetPropertiesCommand.h: ENH: add some more properties for + visual studio projects + +2005-11-19 08:29 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: COMP: fix compile error + +2005-11-19 08:04 hoffman + + * Source/cmTryRunCommand.h: ENH: fix docs + +2005-11-19 05:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-18 17:07 andy + + * Source/CPack/: cmCPackGenerators.cxx, + cmCPackGenericGenerator.cxx, cmCPackGenericGenerator.h, + cmCPackTGZGenerator.cxx, cpack.cxx: ENH: Use cmMakefile instead + for the options, more cleanups and start working on NSIS + +2005-11-18 17:07 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add + another signature for FindProgram that takes the list of names + +2005-11-18 17:06 andy + + * Source/CMakeLists.txt: ENH: Add NSIS + +2005-11-18 16:59 hoffman + + * Source/cmXCodeObject.cxx: ENH: more chars need quotes + +2005-11-18 15:03 martink + + * Utilities/Release/CMake.nsi.in: BUG: fixe dproblem with not + uninstalling start menu entries + +2005-11-18 14:12 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: fixes for Xcode 2.2 + +2005-11-18 10:40 hoffman + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: add new error regex + +2005-11-18 10:36 king + + * Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-icl.cmake, + Modules/Platform/Windows-ifort.cmake, + Source/cmLocalVisualStudio7Generator.cxx: BUG: Fixed + flag-to-vcproj-attribute conversion code to work again (it was + broken by the optimization changes). Added conversion of /nologo + flag to SuppressStartupBanner attribute and /Gy flag to + EnableFunctionLevelLinking attribute. + +2005-11-17 16:49 king + + * Tests/Wrapping/CMakeLists.txt: COMP: Need target-level dependency + from wrapper targets on Wrap executable target. + +2005-11-17 15:57 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Fixed XML escapes + for custom commands. Also added escaping of newlines for VS + 2005. + +2005-11-17 15:44 king + + * Source/: cmCTest.cxx, cmSystemTools.cxx: BUG: Do not dereference + an end iterator. + +2005-11-17 13:49 king + + * Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmSourceFile.cxx, Tests/ExternalOBJ/CMakeLists.txt: BUG: + Fixed support for external object files built by custom commands. + Also added a test to keep it working. + +2005-11-17 11:44 martink + + * Source/: cmVariableRequiresCommand.h, cmWhileCommand.h, + cmWriteFileCommand.h: STYLE: fix docs + +2005-11-17 11:37 martink + + * Source/: cmTryCompileCommand.h, cmTryRunCommand.h: STYLE: fix + docs + +2005-11-17 11:20 martink + + * Source/cmSubdirCommand.h: STYLE: fix docs + +2005-11-17 11:04 martink + + * Source/cmSourceGroupCommand.h: STYLE: fix docs + +2005-11-17 10:41 martink + + * Source/cmSetTargetPropertiesCommand.h: STYLE: fix docs + +2005-11-17 10:36 martink + + * Source/cmSetSourceFilesPropertiesCommand.h: STYLE: fix docs + +2005-11-17 10:28 martink + + * Source/: cmQTWrapUICommand.h, cmSetCommand.h: STYLE: fix docs + +2005-11-17 10:20 martink + + * Source/: cmMessageCommand.h, cmQTWrapCPPCommand.h: STYLE: fix + docs + +2005-11-17 09:44 martink + + * Source/cmIfCommand.cxx: BUG: clean up scoping + +2005-11-17 09:32 martink + + * Source/: cmIfCommand.cxx: BUG: fix incrementing past end + +2005-11-17 09:31 martink + + * Source/cmMarkAsAdvancedCommand.h: STYLE: fix docs + +2005-11-17 05:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-16 14:41 martink + + * Source/cmMacroCommand.h: STYLE: fix docs + +2005-11-16 14:36 martink + + * Source/: cmInstallTargetsCommand.h, cmLoadCacheCommand.h: STYLE: + fix docs + +2005-11-16 14:27 martink + + * Source/cmInstallFilesCommand.h: STYLE: fix docs + +2005-11-16 14:08 martink + + * Source/: cmIfCommand.h, cmIncludeCommand.h: STYLE: fix docs + +2005-11-16 14:02 martink + + * Source/cmGetTestPropertyCommand.h: STYLE: fix docs + +2005-11-16 13:13 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCode21Object.cxx, + cmXCodeObject.cxx, cmXCodeObject.h: ENH: fixes for xcode21 and + build styles and comments in the generated project + +2005-11-16 12:08 martink + + * Source/: cmGetSourceFilePropertyCommand.h, + cmGetTargetPropertyCommand.h: STYLE: fix docs + +2005-11-16 12:05 martink + + * Source/cmGetDirectoryPropertyCommand.h: STYLE: fix docs + +2005-11-16 12:00 martink + + * Source/: cmForEachCommand.h, cmGetCMakePropertyCommand.h: STYLE: + fix docs + +2005-11-16 11:57 martink + + * Source/cmFLTKWrapUICommand.h: STYLE: fix docs + +2005-11-16 11:39 king + + * Source/kwsys/ProcessUNIX.c: STYLE: Documented reference to "man + select_tut". + +2005-11-16 11:36 king + + * Source/kwsys/ProcessWin32.c: BUG: Do not close handle obtained + from GetModuleHandle which does not increase the reference count + of the module. + +2005-11-16 11:25 martink + + * Source/cmFileCommand.h: STYLE: fix docs + +2005-11-16 10:40 martink + + * Source/cmExecProgramCommand.h: STYLE: fix docs + +2005-11-16 10:35 martink + + * Source/: cmEnableTestingCommand.h, cmEndForEachCommand.h, + cmEndIfCommand.h, cmEndWhileCommand.h: STYLE: fix docs + +2005-11-16 10:31 martink + + * Source/: cmCreateTestSourceList.h, cmElseCommand.h, + cmEnableLanguageCommand.h: STYLE: fix docs + +2005-11-16 10:26 martink + + * Source/: cmConfigureFileCommand.h: STYLE: fix docs + +2005-11-16 10:22 martink + + * Source/cmCMakeMinimumRequired.h: STYLE: fix docs + +2005-11-16 10:14 martink + + * Source/: cmAddLibraryCommand.h, cmAddSubDirectoryCommand.h: + STYLE: fix docs + +2005-11-16 10:08 martink + + * Source/ctest.cxx: STYLE: removed some docs that did not make + sense + +2005-11-16 06:30 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-15 13:30 martink + + * Source/cmConfigureFileCommand.h: STYLE: updated comments + +2005-11-15 05:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-14 14:21 hoffman + + * Modules/: CMakeCCompiler.cmake.in, CMakeTestCCompiler.cmake: BUG: + fix SIZEOF VOIDP problem + +2005-11-14 12:29 andy + + * Source/: CMakeLists.txt, cmConfigure.cmake.h.in, + CPack/cmCPackConfigure.h.in, CPack/cmCPackTGZGenerator.cxx, + CPack/cmCPackTGZGenerator.h: ENH: More cross platform stuff + +2005-11-14 05:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-13 05:20 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-12 05:28 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-11 14:39 andy + + * Source/CPack/cmCPackSTGZGenerator.cxx: ENH: Cleanup + +2005-11-11 14:32 andy + + * Source/CPack/cmCPackSTGZGenerator.cxx: ENH: Fix for sun + +2005-11-11 14:25 andy + + * Source/: CMakeLists.txt, CPack/cmCPackGenerators.cxx, + CPack/cmCPackGenericGenerator.cxx, + CPack/cmCPackGenericGenerator.h, CPack/cmCPackSTGZGenerator.cxx, + CPack/cmCPackSTGZGenerator.h, CPack/cmCPackTGZGenerator.cxx, + CPack/cmCPackTGZGenerator.h: ENH: Add support for self extracted + tars + +2005-11-11 05:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-10 15:15 andy + + * Source/: CMakeLists.txt, cmConfigure.cmake.h.in, + CPack/cmCPackTGZGenerator.h: COMP: Fix building on Cygwin + +2005-11-10 15:13 martink + + * Tests/Tutorial/Step5/MathFunctions/CMakeLists.txt: ENH: some + fixes + +2005-11-10 15:10 martink + + * Tests/Tutorial/: Step1/tutorial.cxx, Step2/tutorial.cxx, + Step3/tutorial.cxx, Step4/tutorial.cxx, Step5/tutorial.cxx: ENH: + some fixes + +2005-11-10 14:36 andy + + * Source/: CMakeLists.txt, CPack/cmCPackGenerators.cxx, + CPack/cmCPackGenerators.h, CPack/cmCPackGenericGenerator.cxx, + CPack/cmCPackGenericGenerator.h, CPack/cmCPackTGZGenerator.cxx, + CPack/cmCPackTGZGenerator.h, CPack/cpack.cxx: ENH: Start working + on CPack + +2005-11-10 14:33 andy + + * Source/cmLocalGenerator.cxx: ENH: Make CMAKE_INSTALL_PREFIX to be + optional (on by default) + +2005-11-10 14:32 andy + + * Source/CTest/cmCTestGenericHandler.h: ENH: More type macros + +2005-11-10 14:32 andy + + * Source/kwsys/Glob.hxx.in: COMP: Fix the building with Glob + +2005-11-10 14:31 andy + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ENH: Add method to delete the + remaining arguments + +2005-11-10 14:28 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: add all libs + +2005-11-10 12:02 martink + + * Tests/Tutorial/: Step5/CMakeLists.txt, Step2/CMakeLists.txt, + Step3/CMakeLists.txt, Step4/CMakeLists.txt, + Step5/MathFunctions/CMakeLists.txt: ENH: some fixes + +2005-11-10 11:48 martink + + * Tests/Tutorial/Step5/MathFunctions/MakeTable.cxx: STYLE: fix + spelling + +2005-11-10 10:55 martink + + * Source/CMakeLists.txt: ENH: added tutorial tests + +2005-11-10 10:55 martink + + * Source/CTest/cmCTestTestHandler.cxx: ENH: change the pass regexp + so that it overrides the return value + +2005-11-10 10:51 martink + + * Tests/Tutorial/Step5/: CMakeLists.txt, TutorialConfig.h.in, + tutorial.cxx, MathFunctions/CMakeLists.txt, + MathFunctions/MakeTable.cxx, MathFunctions/MathFunctions.h, + MathFunctions/mysqrt.cxx: ENH: step 5 + +2005-11-10 10:50 martink + + * Tests/Tutorial/Step4/: CMakeLists.txt, TutorialConfig.h.in, + tutorial.cxx, MathFunctions/CMakeLists.txt, + MathFunctions/MathFunctions.h, MathFunctions/mysqrt.cxx: ENH: + step 4 + +2005-11-10 10:50 martink + + * Tests/Tutorial/Step3/: CMakeLists.txt, TutorialConfig.h.in, + tutorial.cxx, MathFunctions/CMakeLists.txt, + MathFunctions/MathFunctions.h, MathFunctions/mysqrt.cxx: ENH: + step 3 + +2005-11-10 04:48 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-09 16:21 martink + + * Tests/Tutorial/: Step1/CMakeLists.txt, Step1/TutorialConfig.h.in, + Step1/tutorial.cxx, Step2/CMakeLists.txt, + Step2/TutorialConfig.h.in, Step2/tutorial.cxx, + Step2/MathFunctions/CMakeLists.txt, + Step2/MathFunctions/MathFunctions.h, + Step2/MathFunctions/mysqrt.cxx: ENH: checkeed in step 1 and 2 + +2005-11-09 11:14 andy + + * Source/cmSetTestsPropertiesCommand.h: STYLE: More comments + +2005-11-09 11:07 andy + + * Source/: cmSetTestsPropertiesCommand.h, + CTest/cmCTestTestHandler.cxx, kwsys/CMakeLists.txt: ENH: Change + flag to PASS_REGULAR_EXPRESSION and FAIL_REGULAR_EXPRESSION and + add help in cmSetTestsPropertiesCommand + +2005-11-09 07:22 andy + + * Source/kwsys/CMakeLists.txt: COMP: Fix all dashboards + +2005-11-09 05:33 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-08 17:59 andy + + * Source/kwsys/: CMakeLists.txt, testRegistry.cxx: ENH: Add test + for output regular expression + +2005-11-08 17:59 andy + + * Source/: cmLocalGenerator.cxx, CTest/cmCTestTestHandler.cxx, + CTest/cmCTestTestHandler.h: ENH: Add support for output reguilar + expression + +2005-11-08 05:33 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-07 05:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-06 05:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-05 04:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-04 10:52 martink + + * Source/cmCPluginAPI.h: DOC: updated comment about the inherited + ivar + +2005-11-04 09:28 andy + + * Modules/: CheckIncludeFile.cmake, CheckIncludeFileCXX.cmake: ENH: + Cleanup and unify + +2005-11-03 04:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-11-02 13:59 martink + + * Modules/CheckLibraryExists.cmake: DOC: better documentation + +2005-11-02 13:51 martink + + * Modules/: CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckIncludeFileCXX.cmake, CheckIncludeFiles.cmake, + CheckLibraryExists.cmake, CheckSymbolExists.cmake, + CheckVariableExists.cmake: DOC: better documentaiton + +2005-11-02 04:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-31 12:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-31 10:52 hoffman + + * Utilities/Release/release_dispatch.sh: ENH: change names of + machine + +2005-10-31 10:48 hoffman + + * Utilities/Release/: cmake_release.sh: ENH: update revision + numbers + +2005-10-31 10:01 hoffman + + * ChangeLog.manual, Source/cmFileTimeComparison.cxx, + Source/cmLocalUnixMakefileGenerator3.cxx, Source/cmake.cxx: ENH: + merge from main tree + +2005-10-30 08:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-28 17:46 hoffman + + * Modules/: FindOpenAL.cmake, FindPhysFS.cmake, FindSDL.cmake, + FindSDL_image.cmake, FindSDL_mixer.cmake, FindSDL_net.cmake, + FindSDL_sound.cmake, FindSDL_ttf.cmake: ENH: changes from Eric + Wing, bug 2249 + +2005-10-28 11:52 hoffman + + * Source/cmWin32ProcessExecution.cxx: BUG: fix stack over write bug + +2005-10-28 11:51 hoffman + + * Utilities/Release/: CMake.nsi.in, MakeRelease.cmake.in: BUG: fix + space in path probs + +2005-10-28 11:32 hoffman + + * Utilities/Release/: CMake.nsi.in, MakeRelease.cmake.in: BUG: fix + release with spaces in the path + +2005-10-28 11:31 hoffman + + * Source/cmWin32ProcessExecution.cxx: BUG: fix stack write error + +2005-10-28 11:02 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: make the clean + target work + +2005-10-27 13:57 king + + * Source/: cmFileTimeComparison.cxx, kwsys/SystemTools.cxx: ENH: + Improved file modification time comparison on Windows to use + GetFileAttributesEx instead of CreateFile/GetFileTime/CloseHandle + to get file times. This results in a 30% reduction in time to do + a build system check. + +2005-10-26 09:03 hoffman + + * Utilities/Release/cmake_release.sh: ENH: update revision numbers + +2005-10-26 05:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-25 05:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-24 17:00 hoffman + + * ChangeLog.manual: [no log message] + +2005-10-24 15:43 hoffman + + * CMakeLists.txt, Modules/Platform/Windows-gcc.cmake, + Source/cmBuildNameCommand.h, Source/cmFileCommand.cxx, + Source/cmFileCommand.h, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalUnixMakefileGenerator3.h, + Source/cmLocalKdevelopGenerator.cxx, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.h, + Source/cmOutputRequiredFilesCommand.cxx, + Source/cmStringCommand.cxx, Source/cmStringCommand.h, + Source/CTest/cmCTestTestHandler.cxx, + Source/CTest/cmCTestUpdateHandler.cxx, + Tests/StringFileTest/CMakeLists.txt, + Tests/StringFileTest/StringFile.cxx: ENH: move stuff into the + branch in prep for 2.2.2 + +2005-10-24 05:29 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-23 05:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-22 05:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-21 15:24 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: fix for bad + placement of SILENT target + +2005-10-21 12:04 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: symlink issue + +2005-10-21 11:10 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix bad checkin + that had debugging code in it + +2005-10-21 09:49 hoffman + + * Source/kwsys/testFail.c: ENH: try to get this thing to pass with + cmake 2.2.1 + +2005-10-21 04:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-20 16:37 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix over checking + of build system + +2005-10-20 16:37 martink + + * Source/cmake.cxx: STYLE: minor cleanup + +2005-10-20 15:03 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix for def files + and new local target link lines + +2005-10-20 14:25 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: missing + check_build_system for all target + +2005-10-20 13:40 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: big cleanup and fix for + jump commands + +2005-10-20 10:10 hoffman + + * Source/: cmStringCommand.cxx, cmStringCommand.h: BUG: end is not + really end, but rather length + +2005-10-20 04:37 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-19 13:23 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: COMP: fix compiler + error + +2005-10-19 11:00 andy + + * Source/: cmCTest.cxx, CTest/cmCTestUpdateHandler.cxx: ENH: More + output + +2005-10-19 11:00 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: Initialize to something + resonable + +2005-10-19 10:47 andy + + * Source/kwsys/: Glob.cxx, Glob.hxx.in: COMP: More namespace fixes + to build on HP + +2005-10-19 10:03 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: BUG: cd into local directory to + reduce link line length + +2005-10-19 08:42 andy + + * Source/kwsys/Glob.cxx: COMP: Fix namespace. This way kwsys can be + built outside cmake + +2005-10-19 04:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-18 16:35 hoffman + + * Source/cmOutputRequiredFilesCommand.cxx: ENH: fix test + +2005-10-18 16:10 hoffman + + * Source/cmOutputRequiredFilesCommand.cxx: ENH: add .txx files and + put the start directory in the search path + +2005-10-18 16:09 hoffman + + * Source/cmLocalKdevelopGenerator.cxx: ENH: unused include + +2005-10-18 16:09 hoffman + + * Source/cmBuildNameCommand.h: ENH: spelling + +2005-10-18 14:08 andy + + * bootstrap, Source/kwsys/CMakeLists.txt, Source/kwsys/Glob.cxx, + Source/kwsys/Glob.hxx.in: ENH: Push glob to the kwsys + +2005-10-18 13:25 andy + + * Modules/Platform/Windows-gcc.cmake: COMP: On mingw, -fPIC is not + necessary and it actually produces warnings + +2005-10-18 13:22 andy + + * Tests/MathTest/CMakeLists.txt: ENH: More tests + +2005-10-18 09:42 andy + + * Source/cmStringCommand.cxx: COMP: Remove warning + +2005-10-18 04:37 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-17 21:34 hoffman + + * Source/: cmFileTimeComparison.cxx, cmFileTimeComparison.h: add + missing file + +2005-10-17 16:53 andy + + * Source/: cmExprParser.cxx, cmExprParser.y: ENH: Fix precedence + +2005-10-17 16:42 andy + + * Source/: CMakeLists.txt, cmCommands.cxx, cmExprLexer.cxx, + cmExprLexer.h, cmExprLexer.in.l, cmExprParser.cxx, + cmExprParser.y, cmExprParserHelper.cxx, cmExprParserHelper.h, + cmExprParserTokens.h, cmMathCommand.cxx, cmMathCommand.h, + cmStringCommand.cxx: ENH: Add rudamentary mathematical expression + support + +2005-10-17 16:39 andy + + * Tests/MathTest/: CMakeLists.txt, MathTestExec.cxx, + MathTestTests.h.in: ENH: Add math test + +2005-10-17 09:58 king + + * Source/: cmDependsFortranLexer.cxx, cmDependsFortranLexer.in.l: + BUG: Lexer should be case insensitive so flex should be run with + -i option. This partially addresses bug#2361. + +2005-10-17 09:56 andy + + * Source/cmStringCommand.cxx, Source/cmStringCommand.h, + Tests/StringFileTest/CMakeLists.txt, + Tests/StringFileTest/StringFile.cxx: ENH: Add String length and + substring + +2005-10-17 09:10 andy + + * Source/cmFileCommand.cxx, Source/cmFileCommand.h, + Source/cmStringCommand.cxx, Source/cmStringCommand.h, + Tests/StringFileTest/CMakeLists.txt, + Tests/StringFileTest/StringFile.cxx: ENH: Add regular string + replace (not regex), and relative path command. Also add tests + +2005-10-17 09:09 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: If test passes but it + should fail, report an error + +2005-10-17 08:49 hoffman + + * ChangeLog.manual, bootstrap, Modules/CMakeCXXInformation.cmake, + Modules/FindJNI.cmake, Modules/FindJava.cmake, + Source/CMakeLists.txt, Source/cmDepends.cxx, Source/cmDepends.h, + Source/cmDependsC.cxx, Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalUnixMakefileGenerator3.h, + Source/cmLocalUnixMakefileGenerator3.cxx, Source/cmMakefile.cxx, + Source/cmTarget.h, Source/cmake.cxx, Source/cmake.h, + Source/CTest/cmCTestBuildHandler.cxx: ENH: merge fixes from main + tree + +2005-10-17 04:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-16 04:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-15 04:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-14 05:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-13 10:30 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: More error exceptions + +2005-10-13 10:07 andy + + * Source/: cmDepends.cxx, cmFileTimeComparison.cxx: BUG: Fix logic + to return true when the file was already statted. Also, use + nanosecond percision if available. Remove debug + +2005-10-13 05:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-12 13:52 andy + + * Source/: cmDepends.cxx, cmDepends.h, cmDependsC.cxx, + cmDependsC.h, cmDependsFortran.cxx, cmDependsFortran.h, + cmDependsJava.cxx, cmDependsJava.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: Improve performance of + check build system by creating another file that is simpler to + parse and therefore much faster overall + +2005-10-12 13:51 andy + + * Source/: cmake.cxx, cmake.h: ENH: Optimize performance by caching + stat results + +2005-10-12 13:50 andy + + * Source/cmFileTimeComparison.cxx: COMP: Windows fixes + +2005-10-12 13:36 andy + + * bootstrap, Source/CMakeLists.txt, + Source/cmFileTimeComparison.cxx, Source/cmFileTimeComparison.h: + ENH: Add file time comparison code + +2005-10-12 12:08 andy + + * Source/kwsys/: SystemTools.hxx.in, SystemTools.cxx: ENH: Add an + accessor for the maximum file length + +2005-10-12 05:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-11 05:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-10 11:49 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, cmMakefile.cxx, cmTarget.h: + ENH: some fixes for better backwards compatibility + +2005-10-10 05:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-09 05:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-08 05:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-07 11:36 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Add support for + setting the maximum number of errors and warnings reported. This + should fix Bug #2318 - The maximum number of errors to report is + fixed to 50 + +2005-10-07 05:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-06 17:16 barre + + * Source/kwsys/: CMakeLists.txt, testSystemTools.bin, + testSystemTools.cxx, testSystemTools.h.in: ENH: CMake kills me + (so does Cygwin) + +2005-10-06 15:28 hoffman + + * ChangeLog.manual, Source/cmGetSourceFilePropertyCommand.h, + Source/cmGetTargetPropertyCommand.h, + Source/cmGetTestPropertyCommand.cxx, Source/cmListFileLexer.c, + Source/cmListFileLexer.in.l, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmake.cxx, + Source/cmake.h, Source/cmakemain.cxx, + Source/CTest/cmCTestTestCommand.cxx, + Source/CTest/cmCTestTestCommand.h, + Source/CTest/cmCTestTestHandler.cxx, + Utilities/Release/Release.cmake: ENH: merge bug fixes from main + trunk + +2005-10-06 15:10 martink + + * Utilities/Release/Release.cmake: ENH: some fixes for missing vars + and missing libs + +2005-10-06 05:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-05 16:06 barre + + * Source/kwsys/: CMakeLists.txt, testSystemTools.cxx, + testSystemTools.h.in: ENH: avoid the use of GET_TARGET_PROPERTY + by testing the CMake executable instead of the test executable + +2005-10-05 13:11 king + + * Source/kwsys/CMakeLists.txt: BUG: Reverting fundamental type info + change until it is fixed on more platforms. It was tested on + Linux, SGI, HP, Sun, OSX, Windows with nmake and VS 6, 7, 7.1, 8, + Borland Make, and cygwin by hand with spaces in the path and + cmake 2.0 and 2.2 before committing but still seems to be failing + on some dashboards...strange. + +2005-10-05 05:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-04 16:40 barre + + * Source/: cmBootstrapCommands.cxx, cmCommands.cxx: ENH: the test + for kwsys uses GET_TARGET_PROPERTY, which was not in the CMake + bootstrap + +2005-10-04 15:09 barre + + * Source/kwsys/: CMakeLists.txt, testSystemTools.cxx, + testSystemTools.h.in: ENH: add kwsys test for DetectFileType + +2005-10-04 10:58 andy + + * Source/: cmCTest.cxx, CTest/cmCTestSubmitHandler.cxx: ENH: More + verbosity + +2005-10-04 05:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-03 14:44 king + + * Source/kwsys/: CMakeLists.txt, kwsysPlatformCxxTests.cxx: ENH: + Converting FundamentalType try-compiles into a single try-run. + All the information about the existence, size, and signedness of + types can be determined in one program thanks to limits.h. + +2005-10-03 14:33 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Double-quotes in + definitions must be escaped. + +2005-10-03 05:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-02 05:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-10-01 05:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-29 04:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-28 04:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-27 04:54 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-26 04:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-24 04:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-23 17:47 hoffman + + * Source/FLTKDialog/: CMakeSetupGUI.fl, + CMakeSetupGUIImplementation.cxx, CMakeSetupGUIImplementation.h, + FLTKDialog.cxx, FLTKDialog.dsp, FLTKPropertyItemRow.cxx, + FLTKPropertyItemRow.h, FLTKPropertyList.cxx, FLTKPropertyList.h, + CMakeLists.txt: ENH: try to find a gui for the Mac + +2005-09-23 14:39 hoffman + + * Modules/CMakeCXXInformation.cmake: ENH: remove -lgcc used by + crazy coverage stuff + +2005-09-23 14:38 hoffman + + * Modules/: FindJNI.cmake, FindJava.cmake: ENH: java fixes from + Mathieu + +2005-09-23 12:50 martink + + * Source/cmake.cxx: BUG: the -P option was not working with + relative paths and a couple types + +2005-09-23 04:54 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-22 09:58 andy + + * Source/kwsys/Registry.cxx: COMP: Try to remove warnings + +2005-09-22 05:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-21 14:15 king + + * Source/kwsys/kwsysPlatformCxxTests.cmake: ENH: Updated to use + modern FILE command for writing to output logs instead of + WRITE_FILE. + +2005-09-21 13:42 king + + * Source/kwsys/kwsys_ios_sstream.h.in: BUG: kwsys_ios namespace + should import streambuf also. + +2005-09-21 13:31 king + + * Source/: cmGetSourceFilePropertyCommand.h, + cmGetTargetPropertyCommand.h, cmake.h, cmakemain.cxx: BUG: + Corrected and updated documentation of the -P option, -C option, + GET_TARGET_PROPERTY command, and GET_SOURCE_FILE_PROPERTY + command. + +2005-09-21 10:32 martink + + * Source/: cmCommands.cxx, cmITKWrapTclCommand.cxx, + cmITKWrapTclCommand.h: ENH: removed ITK command + +2005-09-21 05:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-20 15:08 andy + + * Source/CTest/cmCTestTestHandler.cxx: ENH: Properly report failed + tests + +2005-09-20 12:50 martink + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: ENH: increase + coverage in loaded commands + +2005-09-20 10:42 andy + + * Source/kwsys/CMakeLists.txt: ENH: Make message into status + +2005-09-20 05:05 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-19 17:20 king + + * Source/: cmListFileLexer.c, cmListFileLexer.in.l: BUG: When an + unquoted argument contains a pair of matching double quotes + spaces and tabs should be allowed in-between. This allows + arguments like -DFOO='"bar zot"' to work. + +2005-09-19 16:19 andy + + * Source/kwsys/Registry.cxx: BUG: Remove warning and try to fix + memory problem + +2005-09-19 15:15 andy + + * Source/kwsys/CMakeLists.txt: ENH: Test for both commands + +2005-09-19 15:11 andy + + * Source/CTest/cmCTestTestHandler.cxx: ENH: Modify output based on + wether it is tested or memory checked + +2005-09-19 15:08 andy + + * Source/CTest/cmCTestTestCommand.h: BUG: This should fix memory + checking + +2005-09-19 12:38 martink + + * Utilities/Release/cmake_release.sh: ENH: update revision numbers + +2005-09-19 12:33 hoffman + + * Modules/FindQt4.cmake, Modules/FindQt4.cmake.bak, + Modules/VTKCompatibility.cmake, Source/cmCTest.cxx: minor fixes + for 2.2.1 + +2005-09-19 12:19 hoffman + + * Modules/FindQt4.cmake: ENH: fix typo + +2005-09-19 12:17 hoffman + + * Modules/VTKCompatibility.cmake: ENH: remove message + +2005-09-19 04:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-18 17:15 king + + * Source/kwsys/README.txt: STYLE: Added reference to documentation + in CMakeLists.txt. + +2005-09-18 17:08 king + + * Source/kwsys/CMakeLists.txt: STYLE: Added backward compatibility + disclaimer. + +2005-09-18 08:17 andy + + * Source/: cmGetTestPropertyCommand.cxx, kwsys/CMakeLists.txt: BUG: + Fix which argument is which, also, fix the test to be less + agressive + +2005-09-18 04:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-17 11:31 andy + + * Source/CTest/cmCTestTestCommand.cxx: ENH: Fix memcheck command + +2005-09-17 09:53 andy + + * Source/kwsys/CMakeLists.txt: ENH: Add testing of + GET_TEST_PROPERTY command + +2005-09-17 08:50 andy + + * Source/kwsys/Registry.cxx: BUG: On WIN32, since we are using + subkey, set it + +2005-09-17 05:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-16 15:30 andy + + * Source/kwsys/Registry.cxx: COMP: Remove unused variable + +2005-09-16 13:56 andy + + * Source/kwsys/: Registry.cxx, testRegistry.cxx: BUG: Fix encoding + and add deleting to the test + +2005-09-16 13:38 andy + + * Source/kwsys/: Registry.cxx, Registry.hxx.in, testRegistry.cxx: + ENH: Modify API a little bit to allow arbitrary length values. + Encode certain characters. Rename UNIX registry to FILE registry. + More testing + +2005-09-16 12:17 martink + + * Utilities/Release/cmake_release.sh: ENH: update revision numbers + +2005-09-16 10:57 hoffman + + * Utilities/Release/: MakeRelease.cmake.in, README, Release.cmake: + move off branch + +2005-09-16 10:53 martink + + * Utilities/Release/: cmake_release.sh: ENH: update revision + numbers + +2005-09-16 10:53 martink + + * Utilities/Release/MakeRelease.cmake.in: ENH: fix for + CMAKE_COMMAND not being defined with -P + +2005-09-16 10:47 martink + + * Utilities/Release/cmake_release.sh: ENH: fix Bill + +2005-09-16 10:41 martink + + * Utilities/Release/: MakeRelease.cmake.in, Release.cmake: ENH: fix + to syntax + +2005-09-16 10:32 martink + + * Utilities/Release/: Release.cmake, MakeRelease.cmake.in: ENH: + added commit for release script + +2005-09-16 10:10 hoffman + + * Utilities/Release/MakeRelease.cmake.in: ENH: auto release stuff + +2005-09-16 10:09 andy + + * Source/kwsys/Registry.cxx: COMP: Remove problem on borland + +2005-09-16 09:21 andy + + * Source/kwsys/CMakeLists.txt: ENH: Enable registry, add test of + SET_TESTS_PROPERTIES, rename tests for dart2 + +2005-09-16 09:20 andy + + * Source/kwsys/Registry.cxx: COMP: Remove some more warnings + +2005-09-16 09:15 andy + + * Source/kwsys/: Registry.cxx, Registry.hxx.in: ENH: Cleanups and + expose unix registry on windows (for cygwin etc) + +2005-09-16 09:08 andy + + * Source/kwsys/: Registry.cxx, Registry.hxx.in: COMP: Win32 fixes + +2005-09-16 08:38 andy + + * Source/kwsys/Registry.cxx: ENH: More handling of unix versus + windows registry + +2005-09-16 08:20 andy + + * Source/kwsys/: Registry.cxx, Registry.hxx.in, testFail.c, + testRegistry.cxx: ENH: Initial import + +2005-09-16 05:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-15 17:22 andy + + * Source/cmCTest.cxx: ENH: Expose version of ctest + +2005-09-15 16:38 hoffman + + * CTestCustom.ctest.in, ChangeLog.manual, bootstrap, + Docs/cmake-mode.el, Modules/CMakeAddNewLanguage.txt, + Modules/CMakeTestRCCompiler.cmake, Modules/FindQt.cmake, + Modules/FindQt.cmake.bak, Modules/FindQt3.cmake, + Modules/FindQt4.cmake, Modules/FindQt4.cmake.bak, + Modules/UseQt4.cmake, Source/CMakeLists.txt, + Source/cmAddSubDirectoryCommand.cxx, + Source/cmAddSubDirectoryCommand.h, + Source/cmCommandArgumentParserHelper.cxx, + Source/cmFileCommand.cxx, + Source/cmGetDirectoryPropertyCommand.cxx, + Source/cmGetDirectoryPropertyCommand.h, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmLocalGenerator.cxx, Source/cmOrderLinkDirectories.cxx, + Source/cmTest.h, Source/CTest/cmCTestCoverageHandler.cxx, + Source/CTest/cmCTestTestHandler.cxx, + Source/CTest/cmCTestTestHandler.h, + Source/CTest/Curl/CMakeLists.txt, Source/CTest/Curl/amigaos.c, + Source/CTest/Curl/amigaos.h, Source/CTest/Curl/arpa_telnet.h, + Source/CTest/Curl/base64.c, Source/CTest/Curl/base64.h, + Source/CTest/Curl/ca-bundle.h, Source/CTest/Curl/config.h.in, + Source/CTest/Curl/connect.c, Source/CTest/Curl/connect.h, + Source/CTest/Curl/content_encoding.c, + Source/CTest/Curl/content_encoding.h, Source/CTest/Curl/cookie.c, + Source/CTest/Curl/cookie.h, Source/CTest/Curl/curl.copyright, + Source/CTest/Curl/curl_memory.h, Source/CTest/Curl/curlx.h, + Source/CTest/Curl/dict.c, Source/CTest/Curl/dict.h, + Source/CTest/Curl/easy.c, Source/CTest/Curl/escape.c, + Source/CTest/Curl/escape.h, Source/CTest/Curl/file.c, + Source/CTest/Curl/file.h, Source/CTest/Curl/formdata.c, + Source/CTest/Curl/formdata.h, Source/CTest/Curl/ftp.c, + Source/CTest/Curl/ftp.h, Source/CTest/Curl/getdate.c, + Source/CTest/Curl/getdate.h, Source/CTest/Curl/getenv.c, + Source/CTest/Curl/getinfo.c, Source/CTest/Curl/getinfo.h, + Source/CTest/Curl/hash.c, Source/CTest/Curl/hash.h, + Source/CTest/Curl/hostares.c, Source/CTest/Curl/hostasyn.c, + Source/CTest/Curl/hostip.c, Source/CTest/Curl/hostip.h, + Source/CTest/Curl/hostip4.c, Source/CTest/Curl/hostip6.c, + Source/CTest/Curl/hostsyn.c, Source/CTest/Curl/hostthre.c, + Source/CTest/Curl/http.c, Source/CTest/Curl/http.h, + Source/CTest/Curl/http_chunks.c, Source/CTest/Curl/http_chunks.h, + Source/CTest/Curl/http_digest.c, Source/CTest/Curl/http_digest.h, + Source/CTest/Curl/http_negotiate.c, + Source/CTest/Curl/http_negotiate.h, + Source/CTest/Curl/http_ntlm.c, Source/CTest/Curl/http_ntlm.h, + Source/CTest/Curl/if2ip.c, Source/CTest/Curl/if2ip.h, + Source/CTest/Curl/inet_ntoa_r.h, Source/CTest/Curl/inet_ntop.c, + Source/CTest/Curl/inet_ntop.h, Source/CTest/Curl/inet_pton.c, + Source/CTest/Curl/inet_pton.h, Source/CTest/Curl/krb4.c, + Source/CTest/Curl/krb4.h, Source/CTest/Curl/ldap.c, + Source/CTest/Curl/ldap.h, Source/CTest/Curl/llist.c, + Source/CTest/Curl/llist.h, Source/CTest/Curl/md5.c, + Source/CTest/Curl/md5.h, Source/CTest/Curl/memdebug.c, + Source/CTest/Curl/memdebug.h, Source/CTest/Curl/mprintf.c, + Source/CTest/Curl/multi.c, Source/CTest/Curl/netrc.c, + Source/CTest/Curl/netrc.h, Source/CTest/Curl/nwlib.c, + Source/CTest/Curl/progress.c, Source/CTest/Curl/progress.h, + Source/CTest/Curl/security.c, Source/CTest/Curl/security.h, + Source/CTest/Curl/sendf.c, Source/CTest/Curl/sendf.h, + Source/CTest/Curl/setup.h, Source/CTest/Curl/share.c, + Source/CTest/Curl/share.h, Source/CTest/Curl/speedcheck.c, + Source/CTest/Curl/speedcheck.h, Source/CTest/Curl/ssluse.c, + Source/CTest/Curl/ssluse.h, Source/CTest/Curl/strequal.c, + Source/CTest/Curl/strequal.h, Source/CTest/Curl/strerror.c, + Source/CTest/Curl/strerror.h, Source/CTest/Curl/strtok.c, + Source/CTest/Curl/strtok.h, Source/CTest/Curl/strtoofft.c, + Source/CTest/Curl/strtoofft.h, Source/CTest/Curl/telnet.c, + Source/CTest/Curl/telnet.h, Source/CTest/Curl/timeval.c, + Source/CTest/Curl/timeval.h, Source/CTest/Curl/transfer.c, + Source/CTest/Curl/transfer.h, Source/CTest/Curl/url.c, + Source/CTest/Curl/url.h, Source/CTest/Curl/urldata.h, + Source/CTest/Curl/version.c, + Source/CTest/Curl/CMake/CheckTypeSize.c.in, + Source/CTest/Curl/CMake/CheckTypeSize.cmake, + Source/CTest/Curl/CMake/CurlTests.c, + Source/CTest/Curl/Platforms/WindowsCache.cmake, + Source/CTest/Curl/Platforms/config-aix.h, + Source/CTest/Curl/Testing/CMakeLists.txt, + Source/CTest/Curl/Testing/curlgtk.c, + Source/CTest/Curl/Testing/curltest.c, + Source/CTest/Curl/Testing/ftpget.c, + Source/CTest/Curl/Testing/ftpgetresp.c, + Source/CTest/Curl/Testing/ftpupload.c, + Source/CTest/Curl/Testing/getinmemory.c, + Source/CTest/Curl/Testing/http-post.c, + Source/CTest/Curl/Testing/httpput.c, + Source/CTest/Curl/Testing/multithread.c, + Source/CTest/Curl/Testing/persistant.c, + Source/CTest/Curl/Testing/postit2.c, + Source/CTest/Curl/Testing/sepheaders.c, + Source/CTest/Curl/Testing/simple.c, + Source/CTest/Curl/Testing/simplessl.c, + Source/CTest/Curl/Testing/testconfig.h.in, + Source/CTest/Curl/Testing/win32sockets.c, + Source/CTest/Curl/curl/curl.h, Source/CTest/Curl/curl/curlver.h, + Source/CTest/Curl/curl/easy.h, Source/CTest/Curl/curl/mprintf.h, + Source/CTest/Curl/curl/multi.h, + Source/CTest/Curl/curl/stdcheaders.h, + Source/CTest/Curl/curl/types.h, Tests/OutOfSource/CMakeLists.txt, + Tests/OutOfSource/testdp.h.in, + Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt, + Tests/OutOfSource/OutOfSourceSubdir/simple.cxx, + Tests/OutOfSource/SubDir/CMakeLists.txt, + Tests/Wrapping/CMakeLists.txt, Utilities/Release/CMake.nsi.in: + Merge more changes from main trunk + +2005-09-15 16:06 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: COMP: Too fast commit + +2005-09-15 16:03 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: BUG: Make sure full + paths are collapsed + +2005-09-15 13:26 hoffman + + * Source/cmGlobalGenerator.cxx: ENH: fix warning + +2005-09-15 12:17 hoffman + + * Modules/CMakeAddNewLanguage.txt, + Modules/CMakeTestRCCompiler.cmake, Source/cmGlobalGenerator.cxx: + ENH: clean up EnableLanguage try to fix problem where try compile + runs cmake + +2005-09-15 11:05 martink + + * CTestCustom.ctest.in: ENH: cleaner code coverage + +2005-09-15 04:53 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-14 11:16 hoffman + + * Modules/FindQt4.cmake: ENH: only add optional qt stuff to + QT_INCLUDES + +2005-09-14 09:12 hoffman + + * Modules/FindQt.cmake: ENH: if qt4 qmake is found then set + QT_QMAKE_EXECUTABLE to that value so that the same one will be + used in FindQt4.cmake + +2005-09-14 04:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-13 12:55 martink + + * CTestCustom.ctest.in: ENH: coverage cleanup for non XCode builds + +2005-09-13 10:40 martink + + * Tests/OutOfSource/: CMakeLists.txt, testdp.h.in, + OutOfSourceSubdir/CMakeLists.txt, OutOfSourceSubdir/simple.cxx: + ENH: test get directory properties ability to get props from + subdirs + +2005-09-13 10:39 martink + + * Source/: cmGetDirectoryPropertyCommand.cxx, + cmGetDirectoryPropertyCommand.h, cmGlobalGenerator.cxx, + cmGlobalGenerator.h: ENH: added DIRECTORY option to + GET_DIRECTORY_PROPERTIES + +2005-09-13 10:33 martink + + * Docs/cmake-mode.el: ENH: missing get_directory_property command + +2005-09-13 09:25 hoffman + + * Modules/FindQt4.cmake: ENH: add some checks on the qmake install + +2005-09-13 08:52 hoffman + + * Modules/FindQt.cmake: ENH: fix if statement + +2005-09-13 04:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-12 22:46 hoffman + + * Modules/FindQt.cmake: ENH: add docs for QT_REQUIRED + +2005-09-12 22:39 hoffman + + * Modules/: FindQt.cmake, FindQt4.cmake: ENH: more findqt fixes + +2005-09-12 14:26 martink + + * Tests/OutOfSource/SubDir/CMakeLists.txt: ENH: convert to work + with the new syntax for ADD_SUBDIRECTORY + +2005-09-12 13:46 martink + + * Source/: cmAddSubDirectoryCommand.cxx, + cmAddSubDirectoryCommand.h: ENH: better format for + ADD_SUBDIRECTORY command + +2005-09-12 11:43 hoffman + + * Modules/: FindQt.cmake, FindQt4.cmake: ENH: add new place to + search for qt4 in registry + +2005-09-12 11:25 hoffman + + * Modules/FindQt.cmake: ENH: fix typo + +2005-09-12 10:37 hoffman + + * Source/CMakeLists.txt: ENH: use the findqt3 from this cmake and + not the one configureing cmake + +2005-09-12 10:33 hoffman + + * Modules/FindQt.cmake: ENH: add a better message + +2005-09-12 10:28 hoffman + + * Modules/FindQt3.cmake: ENH: add more libraries for qt3 + +2005-09-12 09:55 hoffman + + * Modules/FindQt4.cmake: ENH: use correct variable for qmake + +2005-09-12 09:52 hoffman + + * Modules/FindQt4.cmake: ENH: add a better message + +2005-09-12 09:36 hoffman + + * Modules/FindQt.cmake: ENH: add some messages not errors for + findqt + +2005-09-12 09:32 hoffman + + * Modules/FindQt3.cmake, Modules/FindQt4.cmake, + Source/CMakeLists.txt, Tests/Wrapping/CMakeLists.txt: ENH: more + qt changes + +2005-09-12 09:09 hoffman + + * Modules/UseQt4.cmake: ENH: add -D options for qt stuff + +2005-09-12 09:00 hoffman + + * Modules/: FindQt.cmake, FindQt4.cmake: ENH: make sure the correct + qmake is used + +2005-09-12 04:37 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-11 04:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-10 22:36 hoffman + + * Modules/FindQt.cmake: ENH: only print errors if QT_REQUIRED is + set + +2005-09-10 10:33 hoffman + + * bootstrap, Modules/FindQt.cmake, Source/cmFileCommand.cxx: BUG: + try to fix qt problems + +2005-09-10 04:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-09 21:51 hoffman + + * Modules/FindQt.cmake, Modules/FindQt3.cmake, + Modules/FindQt4.cmake, Tests/Wrapping/CMakeLists.txt: ENH: clean + up the find qt stuff some + +2005-09-09 17:04 hoffman + + * Modules/: CheckQtInstalled.cmake, FindQt.cmake: ENH: try to fix + this find qt stuff + +2005-09-09 13:23 martink + + * Utilities/Release/CMake.nsi.in: ENH: to support both admin and + locla installs + +2005-09-09 11:32 hoffman + + * Modules/: CheckQtInstalled.cmake, FindQt.cmake: ENH: make FindQt + default to qt3 and print a message, and add + CheckQtInstalled.cmake + +2005-09-09 05:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-08 15:26 hoffman + + * Source/cmCommandArgumentParserHelper.cxx: ENH: remove UMR + +2005-09-08 15:25 hoffman + + * Source/cmOrderLinkDirectories.cxx: BUG: fix spelling error + +2005-09-08 14:59 hoffman + + * ChangeLog.manual, Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeFortranInformation.cmake, Modules/FindCurses.cmake, + Modules/FindJNI.cmake, Modules/FindJPEG.cmake, + Modules/FindJava.cmake, Modules/FindMatlab.cmake, + Modules/FindMotif.cmake, Modules/FindQt4.cmake, + Modules/FindQt4.cmake.bak, Modules/FindZLIB.cmake, + Modules/UseQt4.cmake, Modules/UseSWIG.cmake, + Modules/VTKCompatibility.cmake, Source/cmGlobalGenerator.cxx, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, + Source/cmOrderLinkDirectories.cxx: merge with main trunk + +2005-09-08 14:35 andy + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + BUG: fix xcode 15 (really bill Hoffman) + +2005-09-08 14:22 martink + + * Source/cmOrderLinkDirectories.cxx: BUG: bug num 1994 library + linking when a config is not specified but debug and opt libs are + +2005-09-08 11:38 hoffman + + * Modules/: FindCurses.cmake, FindJPEG.cmake, FindZLIB.cmake: ENH: + clean up some stuff + +2005-09-08 11:38 hoffman + + * Modules/UseSWIG.cmake: ENH: add ability to set outdir in swig + +2005-09-08 10:03 hoffman + + * Modules/: CMakeDetermineJavaCompiler.cmake, FindJNI.cmake, + FindJava.cmake: ENH: add support for java 1.5 + +2005-09-08 10:01 hoffman + + * Modules/FindMatlab.cmake: ENH: add Matlab support + +2005-09-08 09:59 hoffman + + * Modules/FindMotif.cmake: ENH: add a find motif + +2005-09-08 09:58 hoffman + + * Modules/: FindQt4.cmake, UseQt4.cmake: ENH: add Ken Morelands + fixes for FindQT + +2005-09-08 05:05 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-07 17:05 hoffman + + * Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeFortranInformation.cmake, + Modules/VTKCompatibility.cmake, Source/cmGlobalGenerator.cxx: + ENH: add a fix for VTK on the mac and a way to fix some projects + with a single file in the cmake modules directory + +2005-09-07 05:00 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-06 23:31 andy + + * Source/: cmLocalGenerator.cxx, cmTest.h, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestTestHandler.h: ENH: + Add a way for test to intentionally fail + +2005-09-06 12:55 hoffman + + * ChangeLog.manual, bootstrap, Modules/CMakeGenericSystem.cmake, + Modules/Platform/AIX.cmake, Source/CMakeLists.txt, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalXCode21Generator.cxx, + Source/cmGlobalXCode21Generator.h, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, Source/cmTryRunCommand.cxx, + Source/cmXCode21Object.cxx, Source/cmXCode21Object.h, + Source/cmXCodeObject.cxx, Source/cmXCodeObject.h, + Source/CTest/cmCTestTestHandler.cxx, + Source/kwsys/SharedForward.h.in, + Tests/LoadCommand/CMakeLists.txt, + Tests/LoadCommandOneConfig/CMakeLists.txt: Merge with main tree + +2005-09-06 05:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-05 09:17 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCodeObject.h: ENH: fix + warnings + +2005-09-05 04:58 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-04 04:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-03 22:16 hoffman + + * bootstrap: ENH: fix bootstrap, maybe this should somehow grep awk + the sources from the cmakelist file.... + +2005-09-03 04:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-02 16:29 hoffman + + * Source/: CMakeLists.txt, cmGlobalXCode21Generator.cxx, + cmGlobalXCode21Generator.h, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h, cmXCode21Object.cxx, cmXCode21Object.h, + cmXCodeObject.cxx, cmXCodeObject.h: ENH: add real support for + Xcode21 + +2005-09-02 08:41 hoffman + + * Source/CMakeLists.txt: BUG: not all Macs are case insensitive if + they mount nfs directories + +2005-09-02 05:05 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-09-01 17:14 hoffman + + * Source/cmGlobalUnixMakefileGenerator3.cxx: ENH: fix NONE + +2005-09-01 05:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-31 19:41 king + + * Source/kwsys/SharedForward.h.in: ENH: Added cygcheck knowledge + for --ldd option on Cygwin. Added error message for --ldd option + when no tool is available but the option was still requested. + +2005-08-31 05:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-30 13:58 hoffman + + * Source/cmGlobalXCodeGenerator.cxx, Source/cmTryRunCommand.cxx, + Source/CTest/cmCTestTestHandler.cxx, + Tests/LoadCommand/CMakeLists.txt, + Tests/LoadCommandOneConfig/CMakeLists.txt: ENH: use native + Deployment and Development directories + +2005-08-30 04:59 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-29 17:09 hoffman + + * Modules/Platform/AIX.cmake: ENH: add flags for debug release for + aix + +2005-08-29 16:19 hoffman + + * CMakeLists.txt, ChangeLog.manual, + Modules/CMakeTestCCompiler.cmake, Modules/FindJava.cmake, + Modules/FindQt3.cmake, Source/CMakeLists.txt, + Source/cmDependsC.cxx, Source/cmDependsC.h, + Source/cmFileCommand.cxx, Source/cmGlobalXCodeGenerator.cxx, + Source/cmLocalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalVisualStudio6Generator.cxx, Source/cmMakefile.cxx, + Source/cmSetTargetPropertiesCommand.h, Source/cmSystemTools.cxx, + Source/cmTarget.cxx, Source/cmTarget.h, Source/cmVersion.cxx, + Source/cmake.cxx, Source/CTest/cmCTestBuildHandler.cxx, + Source/CTest/cmCTestGenericHandler.cxx, + Source/CTest/cmCTestTestHandler.cxx, + Source/CTest/cmCTestTestHandler.h, + Source/CTest/cmCTestUpdateCommand.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/kwsys/SharedForward.h.in, Source/kwsys/SystemTools.cxx, + Templates/EXEHeader.dsptemplate, + Tests/CustomCommand/CMakeLists.txt, Tests/CustomCommand/foo.h.in, + Tests/CustomCommand/foo.in, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: merge with cvs again + and change version + +2005-08-29 15:49 king + + * Modules/CMakeGenericSystem.cmake: ENH: Picking better default for + CMAKE_INSTALL_PREFIX on Windows by using ProgramFiles environment + variable. Now that install actually works on Windows I'm making + this entry non-advanced also. + +2005-08-29 04:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-28 04:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-27 05:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-26 17:02 andy + + * Modules/FindJava.cmake: ENH: More paths for java + +2005-08-26 16:20 andy + + * Source/CTest/cmCTestGenericHandler.cxx: COMP: Simplify logic and + remove sun compile error + +2005-08-26 05:00 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-25 05:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-24 11:18 andy + + * Source/CTest/cmCTestGenericHandler.cxx: BUG: Prevent from + creating bogus files + +2005-08-24 04:54 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-23 13:25 king + + * Modules/FindQt3.cmake: ENH: Added support for finding qt-mtedu, + the educational version of Qt. + +2005-08-23 10:24 hoffman + + * Source/cmFileCommand.cxx: make sure correct path type is used + +2005-08-23 04:48 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-22 04:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-21 04:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-20 05:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-19 17:57 king + + * Source/cmLocalVisualStudio6Generator.cxx, + Templates/EXEHeader.dsptemplate: BUG: Fixed OUTPUT_NAME feature + for VS6 generator. It was not working for Debug builds and was + not paying attention to the executable output path. + +2005-08-19 17:56 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: BUG: Install rule should take + build configuration into account. + +2005-08-19 17:17 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: add support for + OUTPUT_NAME + +2005-08-19 10:13 andy + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: If the scanner is + not defined this would crash. For example when using new language + +2005-08-19 09:38 king + + * Source/cmake.cxx: ENH: Added cmake -E create_symlink command that + behaves like ln -s. + +2005-08-19 09:29 king + + * Modules/CMakeTestCCompiler.cmake: BUG: Need to test void* not + "void *" because the Intel compiler icc expands the asterisk. + Thanks to Filipe Sousa for the patch. + +2005-08-19 09:22 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: BUG: Removing exe VERSION + attribute test until it is implemented in the XCode generator. + +2005-08-19 04:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-18 16:17 andy + + * Source/CTest/cmCTestTestHandler.h: COMP: Add STD namespace + +2005-08-18 16:06 king + + * Source/kwsys/SharedForward.h.in: BUG: Fixed dirname in a few + cases on windows. Now using KWSYS_SHARED_FORWARD_CONFIG_NAME + setting instead of CMAKE_INTDIR directly to give choice to user + code. Updated documentation to include + @KWSYS_NAMESPACE@_SHARED_FORWARD_CONFIG_NAME, + @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_PRINT, and + @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_LDD settings. + +2005-08-18 13:50 andy + + * Source/CTest/: cmCTestTestHandler.cxx, cmCTestTestHandler.h: ENH: + Improve log file strategy + +2005-08-18 10:02 andy + + * Source/CTest/cmCTestUpdateCommand.cxx: ENH: Set update options + +2005-08-18 09:23 king + + * Source/kwsys/SharedForward.h.in: ENH: Added support for Windows. + +2005-08-18 09:21 king + + * Tests/CustomCommand/foo.h.in: COMP: Avoid C++ comment in C + translation unit. + +2005-08-18 09:19 king + + * Source/cmDependsC.cxx: COMP: Work-around iterator/const_iterator + comparison problem on Borland 5.5. + +2005-08-18 05:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-17 17:56 king + + * Tests/CustomCommand/CMakeLists.txt: BUG: It seems the + auto-object-depends feature does not work in Visual Studio. I'm + restoring the explicit OBJECT_DEPENDS lines. + +2005-08-17 17:39 king + + * Source/cmSystemTools.cxx: BUG: RunSingleCommand should translate + NULL characters in the output to valid text. This should fix the + missing-output problem caused by NULL-characters in VS build + output. + +2005-08-17 17:04 king + + * Source/kwsys/SystemTools.cxx: BUG: Automatic pwd/cwd path + translation must check that the generated logical-to-physical + mapping is correct by using realpath. + +2005-08-17 16:19 king + + * Source/CMakeLists.txt, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Updated SimpleInstall + test to test new versioned executable and OUTPUT_NAME support. + +2005-08-17 16:11 king + + * Source/: cmFileCommand.cxx, cmLocalGenerator.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmSetTargetPropertiesCommand.h, cmTarget.cxx, cmTarget.h: ENH: + Added versioned executable support. This partially addresses + bug#2143. Also made OUTPUT_NAME work when installing + executables. + +2005-08-17 16:06 king + + * Source/cmake.cxx: ENH: Added -E cmake_symlink_executable command + to help create symbolic links for versioned executables. + +2005-08-17 16:05 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Do not make a file + depend on a virtual target. That causes everything to always + rebuild. + +2005-08-17 14:16 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: More error regex + +2005-08-17 13:23 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: COMP: Cannot use + first/last insertion constructor of std::set because it is not + available on all platforms. + +2005-08-17 11:48 king + + * Tests/CustomCommand/: CMakeLists.txt, foo.in, foo.h.in: ENH: + Adding test for auto-object-depends feature. It has been tested + with the Makefile generator. Hopefully this will work for the + Visual Studio and XCode generators. + +2005-08-17 11:43 king + + * Source/: cmDependsC.cxx, cmDependsC.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: Adding support for + automatically adding the OBJECT_DEPENDS for generated header + files. + +2005-08-17 05:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-16 08:32 hoffman + + * Utilities/Release/: cmake_release.sh: ENH: file is now configured + +2005-08-16 05:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-15 05:40 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-14 05:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-13 05:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-12 11:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-11 14:02 hoffman + + * ChangeLog.manual, Modules/CMakeCCompiler.cmake.in, + Modules/CMakeCInformation.cmake, + Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineFortranCompiler.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeDetermineRCCompiler.cmake, + Modules/CMakeDetermineSystem.cmake, + Modules/CMakeFortranCompiler.cmake.in, + Modules/CMakeFortranInformation.cmake, + Modules/CMakeGenericSystem.cmake, + Modules/CMakeJavaCompiler.cmake.in, + Modules/CMakeRCCompiler.cmake.in, + Modules/CMakeRCInformation.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, + Modules/CMakeTestFortranCompiler.cmake, Modules/CTest.cmake, + Modules/CTestTargets.cmake, Modules/CheckCSourceCompiles.cmake, + Modules/CheckCXXSourceCompiles.cmake, + Modules/CheckFunctionExists.cmake, + Modules/CheckIncludeFile.cmake, + Modules/CheckIncludeFileCXX.cmake, + Modules/CheckIncludeFiles.cmake, + Modules/CheckLibraryExists.cmake, + Modules/CheckSymbolExists.cmake, Modules/CheckTypeSize.cmake, + Modules/CheckVariableExists.cmake, Modules/Dart.cmake, + Modules/FindDoxygen.cmake, Modules/FindGLUT.cmake, + Modules/FindJNI.cmake, Modules/FindOpenAL.cmake, + Modules/FindPhysFS.cmake, Modules/FindPythonInterp.cmake, + Modules/FindQt.cmake, Modules/FindQt.cmake.bak, + Modules/FindQt3.cmake, Modules/FindQt4.cmake, + Modules/FindQt4.cmake.bak, Modules/FindSDL.cmake, + Modules/FindSDL.cmake.bak, Modules/FindSDL_image.cmake, + Modules/FindSDL_image.cmake.bak, Modules/FindSDL_mixer.cmake, + Modules/FindSDL_mixer.cmake.bak, Modules/FindSDL_net.cmake, + Modules/FindSDL_net.cmake.bak, Modules/FindSDL_sound.cmake, + Modules/FindSDL_ttf.cmake, Modules/FindSDL_ttf.cmake.bak, + Modules/FindThreads.cmake, Modules/TestBigEndian.cmake, + Modules/TestCXXAcceptsFlag.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForSTDNamespace.cmake, Modules/Use_wxWindows.cmake, + Modules/Platform/CYGWIN-g77.cmake, Modules/Platform/IRIX64.cmake, + Modules/Platform/Windows-cl.cmake, Modules/Platform/g77.cmake, + Source/CMakeLists.txt, Source/cmAddCustomCommandCommand.cxx, + Source/cmAddDependenciesCommand.h, Source/cmAddTestCommand.h, + Source/cmCTest.cxx, Source/cmCTest.h, Source/cmCacheManager.cxx, + Source/cmCommands.cxx, Source/cmCustomCommand.cxx, + Source/cmCustomCommand.h, Source/cmDepends.cxx, + Source/cmDepends.h, Source/cmDependsC.cxx, Source/cmDependsC.h, + Source/cmDependsFortran.cxx, Source/cmDependsFortran.h, + Source/cmDependsJava.cxx, Source/cmDependsJava.h, + Source/cmDocumentation.cxx, Source/cmDynamicLoader.cxx, + Source/cmFLTKWrapUICommand.cxx, Source/cmFileCommand.cxx, + Source/cmGetTestPropertyCommand.cxx, + Source/cmGetTestPropertyCommand.h, Source/cmGlobalGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalUnixMakefileGenerator3.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalXCode21Generator.cxx, + Source/cmGlobalXCode21Generator.h, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, Source/cmListFileLexer.c, + Source/cmListFileLexer.in.l, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalUnixMakefileGenerator3.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio6Generator.h, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, Source/cmQTWrapCPPCommand.cxx, + Source/cmSetTestsPropertiesCommand.cxx, + Source/cmSetTestsPropertiesCommand.h, Source/cmSourceGroup.cxx, + Source/cmSourceGroup.h, Source/cmSourceGroupCommand.cxx, + Source/cmTarget.cxx, Source/cmTest.cxx, Source/cmTest.h, + Source/cmTryCompileCommand.h, Source/cmUtilitySourceCommand.cxx, + Source/cmake.cxx, Source/cmake.h, Source/ctest.cxx, + Source/CTest/cmCTestBuildHandler.cxx, + Source/CTest/cmCTestCoverageHandler.cxx, + Source/CTest/cmCTestCoverageHandler.h, + Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx, + Source/CTest/cmCTestGenericHandler.cxx, + Source/CTest/cmCTestSubmitCommand.cxx, + Source/CTest/cmCTestSubmitHandler.cxx, + Source/CTest/cmCTestTestCommand.cxx, + Source/CTest/cmCTestTestHandler.cxx, + Source/CTest/cmCTestUpdateHandler.cxx, + Source/WXDialog/CMakeLists.txt, Source/WXDialog/CMakeSetup.cpp, + Source/WXDialog/CMakeSetup.pjd, + Source/WXDialog/CMakeSetupFrame.cpp, + Source/WXDialog/CommandLineInfo.cpp, + Source/WXDialog/CommandLineInfo.h, + Source/WXDialog/cmakesetup.xml, + Source/WXDialog/bin/FindwxWin.cmake, Source/kwsys/Base64.c, + Source/kwsys/Base64.h.in, Source/kwsys/CMakeLists.txt, + Source/kwsys/Configure.h.in, Source/kwsys/FundamentalType.h.in, + Source/kwsys/Process.h.in, Source/kwsys/SystemTools.cxx, + Source/kwsys/SystemTools.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cmake, + Source/kwsys/kwsysPlatformCxxTests.cxx, + Source/kwsys/testHashSTL.cxx, Source/kwsys/testhash.cxx, + Tests/BundleTest/BundleTest.cxx, Tests/BundleTest/CMakeLists.txt, + Tests/CTestTest/test.cmake.in, Tests/CTestTest2/test.cmake.in, + Tests/CTestTest3/test.cmake.in, + Tests/Complex/cmTestConfigure.h.in, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/Complex/Executable/testcflags.c, + Tests/ComplexOneConfig/cmTestConfigure.h.in, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/testcflags.c, + Tests/ComplexRelativePaths/cmTestConfigure.h.in, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/testcflags.c, + Tests/MacroTest/CMakeLists.txt, + Tests/MakeClean/ToClean/CMakeLists.txt, + Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt, + Tests/OutOfSource/OutOfSourceSubdir/simple.cxx, + Tests/OutOfSource/OutOfSourceSubdir/testlib.cxx, + Tests/OutOfSource/OutOfSourceSubdir/testlib.h, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt, Utilities/CMakeLists.txt, + Utilities/cmcurl/CMakeLists.txt, + Utilities/cmxmlrpc/CMake/TryCompileFromSource.cmake: ENH: move + cvs onto branch and try for beta 2 + +2005-08-11 13:20 martink + + * Source/: cmake.cxx, MFCDialog/CMakeSetupDialog.cpp: ENH: added + better error checking for cases when there is a CMakeCache.txt + file but it is not readable + +2005-08-11 11:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-10 16:18 jorgb + + * Source/WXDialog/: CommandLineInfo.cpp, CommandLineInfo.h, + cmakesetup.xml: Implemented new parser which can handle: + -G"generator" (legacy format) -G "generator" (new format) + +2005-08-10 12:55 hoffman + + * Source/cmGlobalXCodeGenerator.cxx, Source/cmLocalGenerator.cxx, + Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: fix bug + 2087 lib prefix stripped off on windows + +2005-08-10 12:50 hoffman + + * Modules/FindQt4.cmake: ENH: some clean up from Clinton + +2005-08-10 12:01 hoffman + + * Modules/: FindOpenAL.cmake, FindSDL.cmake, FindSDL_image.cmake, + FindSDL_mixer.cmake, FindSDL_net.cmake, FindSDL_sound.cmake, + FindSDL_ttf.cmake: ENH: add Eric Wings FindSDL updates + +2005-08-10 11:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-10 10:01 hoffman + + * Source/cmDependsC.cxx: ENH: fix bug in depend file removing for + deleted depend files + +2005-08-10 08:48 hoffman + + * Modules/: FindQt.cmake, FindQt4.cmake: ENH: fixed up qt stuff + from Clinton Stimpson + +2005-08-09 15:42 jorgb + + * Source/WXDialog/: CMakeSetup.cpp, CommandLineInfo.cpp, + CommandLineInfo.h, cmakesetup.xml: Implemented -G option + +2005-08-09 13:12 martink + + * Source/CTest/cmCTestTestHandler.cxx: BUG: do not search the + user's path for text executables when a full path is provided to + the test + +2005-08-09 11:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-09 10:35 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix for sun make + with spaces + +2005-08-08 17:14 jorgb + + * Source/WXDialog/: CMakeSetup.cpp, CMakeSetup.pjd, + CMakeSetupFrame.cpp, CommandLineInfo.cpp, CommandLineInfo.h, + cmakesetup.xml: Started on command line parsing, added string + parse method for default generator + +2005-08-08 15:23 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: have the + build.make file include flags.make and use the language flags + +2005-08-08 13:28 martink + + * Source/cmAddCustomCommandCommand.cxx: ENH: fix for earlier fix on + source with relative path + +2005-08-08 12:00 king + + * Source/cmAddCustomCommandCommand.cxx: BUG: Do not convert SOURCE + argument from relative to full path. It breaks the old-style + SOURCE==TARGET trick and the SOURCE argument is only present for + old-style commands anyway. This addresses bug#2120. + +2005-08-08 11:33 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: BUG: Need TSD target to be built + before SimpleInstall. + +2005-08-08 11:28 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Do not escape + CMAKE_COMMAND twice. + +2005-08-08 11:02 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: fix and issue with + spaces in paths + +2005-08-08 10:47 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-08 09:37 king + + * Source/cmake.cxx: BUG: When exiting before the configure step in + script mode we must account for + cmSystemTools::GetErrorOccuredFlag() for the return code. + +2005-08-07 10:30 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-06 10:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-05 17:07 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: fix warning + +2005-08-05 14:19 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: some fixes for cwd + problems with rebuild_cache option + +2005-08-05 11:31 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-04 17:12 king + + * Source/kwsys/CMakeLists.txt: ENH: If VTK_LIBRARY_PROPERTIES is + set then the properties it lists will be added to VTK library + targets with SET_TARGET_PROPERTIES. This will be useful to + enable shared library versioning. + +2005-08-04 11:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-03 16:10 king + + * Source/cmAddDependenciesCommand.h: ENH: Clarified documentation + further. + +2005-08-03 14:16 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: More build errors + +2005-08-03 14:15 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: ENH: More handling of + gcov 4.0 + +2005-08-03 13:34 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: ENH: More support for + gcov 4.0 + +2005-08-03 13:19 andy + + * Modules/: CTest.cmake, CTestTargets.cmake: ENH: Initial import + +2005-08-03 13:19 andy + + * Modules/: Dart.cmake, FindJNI.cmake: STYLE: Fix typo + +2005-08-03 11:56 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: ENH: Add support for the + new gcc that uses files with extension .gcda + +2005-08-03 11:50 andy + + * Tests/CTestTest2/test.cmake.in: COMP: Fix for proxy test + +2005-08-03 11:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-02 17:41 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: /nologo must be first + +2005-08-02 16:44 hoffman + + * Modules/FindQt4.cmake: ENH: add changes for qt4 from Clinton + Stimpson + +2005-08-02 16:34 hoffman + + * Modules/FindQt4.cmake: ENH: add changes for qt4 from Clinton + Stimpson + +2005-08-02 13:40 andy + + * Source/CMakeLists.txt: ENH: change name from XCode to Xcode no + need to test bootstrap for xcode + +2005-08-02 13:02 andy + + * Source/CMakeLists.txt: ENH: change name from XCode to Xcode no + need to test bootstrap for xcode + +2005-08-02 13:01 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: get around problem where + OBJROOT has been set by default for all projects in Xcode gui + +2005-08-02 11:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-02 11:06 hoffman + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx: FIX: fix bad depend info and + COMPILE_FLAGS problem and remove extra cerr calls + +2005-08-02 10:07 andy + + * Tests/CTestTest/test.cmake.in: COMP: Try to fix test by taking + arg1 into acount + +2005-08-02 09:55 hoffman + + * Modules/FindQt.cmake: ENH: add advanced values + +2005-08-01 16:49 king + + * Source/: cmListFileLexer.c, cmListFileLexer.in.l: BUG: Unquoted + arguments can have quotes that are not at the beginning, but only + an even number of them. + +2005-08-01 12:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-08-01 10:19 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: first step to only + rebuuilding on flag changes + +2005-08-01 09:44 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: ENH: make sure + CMAKE_C_FLAGS are not clobbered + +2005-08-01 09:24 king + + * Source/cmQTWrapCPPCommand.cxx: BUG: Patch from Filipe Sousa. + QT_WRAP_CPP should generate the file moc_dlgmain.ui.cxx instead + of moc_dlgmain.cxx. + +2005-07-31 23:05 andy + + * Modules/CheckCXXSourceCompiles.cmake, + Tests/MacroTest/CMakeLists.txt: ENH: Add C++ test too + +2005-07-31 23:02 andy + + * Modules/CheckCSourceCompiles.cmake, + Tests/MacroTest/CMakeLists.txt: ENH: Add a test for C source file + like AC_TRY_COMPILE + +2005-07-31 22:25 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: ENH: use ansi + flags + +2005-07-31 11:51 andy + + * Source/: cmCommands.cxx, cmGetTestPropertyCommand.cxx, + cmGetTestPropertyCommand.h, cmLocalGenerator.cxx, cmMakefile.cxx, + cmMakefile.h, cmSetTestsPropertiesCommand.cxx, + cmSetTestsPropertiesCommand.h, cmTest.cxx, cmTest.h: ENH: Add set + and get test propety command + +2005-07-31 11:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-30 21:58 hoffman + + * Tests/: Complex/Executable/testcflags.c, + ComplexOneConfig/Executable/testcflags.c, + ComplexRelativePaths/Executable/testcflags.c: ENH: no c++ + comments in a c file + +2005-07-30 11:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-29 14:17 martink + + * Source/cmFLTKWrapUICommand.cxx: ENH; better warning message and + fix type per julien + +2005-07-29 14:02 hoffman + + * Tests/: Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: ENH: do not test for + c and cxx flags on visual studio as it does not work yet + +2005-07-29 13:19 martink + + * Source/kwsys/kwsysPlatformCxxTests.cmake: ENH: change loc of log + files + +2005-07-29 11:56 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Executable/testcflags.c, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Executable/testcflags.c, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Executable/testcflags.c: ENH: add new test + to make sure c and cxx flags are going to the right files + +2005-07-29 11:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-29 11:25 andy + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Fix dependencies. + Looks like all dependencies were missing subdirectory + +2005-07-29 10:04 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: undo last change + +2005-07-29 10:02 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: support versions greater + than 20 + +2005-07-29 09:19 martink + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineFortranCompiler.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeDetermineRCCompiler.cmake, + Modules/CMakeDetermineSystem.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, + Modules/CMakeTestFortranCompiler.cmake, + Modules/CheckFunctionExists.cmake, + Modules/CheckIncludeFile.cmake, + Modules/CheckIncludeFileCXX.cmake, + Modules/CheckIncludeFiles.cmake, + Modules/CheckLibraryExists.cmake, + Modules/CheckSymbolExists.cmake, Modules/CheckTypeSize.cmake, + Modules/CheckVariableExists.cmake, Modules/FindThreads.cmake, + Modules/TestBigEndian.cmake, Modules/TestCXXAcceptsFlag.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForSTDNamespace.cmake, + Modules/Platform/Windows-cl.cmake, Source/cmCacheManager.cxx, + Source/cmGlobalGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator3.cxx, + Source/cmGlobalXCodeGenerator.cxx, Source/cmLocalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator3.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Tests/MakeClean/ToClean/CMakeLists.txt, + Utilities/cmcurl/CMakeLists.txt, + Utilities/cmxmlrpc/CMake/TryCompileFromSource.cmake: ENH: put + cmake files intoa CMakeFiles subdir to clean up bin tree + +2005-07-28 15:24 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: fix warning + +2005-07-28 14:52 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: make sure c flags are + used for c and cxx flags are used for cxx, really Bill + +2005-07-28 13:21 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: add + method to attempt to check if a file is text or binary + +2005-07-28 13:12 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: make sure custom commands + depend on full path files only: Bill as Andy + +2005-07-28 11:58 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-28 09:14 martink + + * Source/: cmCustomCommand.cxx, cmCustomCommand.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: always write out all + custom commands + +2005-07-27 17:23 king + + * Source/cmMakefile.cxx: BUG: InitializeFromParent should copy + include file regular expressions. + +2005-07-27 16:46 king + + * Source/cmGlobalGenerator.cxx: ENH: RUN_TESTS target now uses + proper CMAKE_CFG_INTDIR setting to get $(IntDir) or $(OutDir) + depending on the generator. + +2005-07-27 16:37 king + + * Source/cmUtilitySourceCommand.cxx: BUG: Hack to support building + existing trees with UTILITY_SOURCE commands and the new VS + generator directory structure. + +2005-07-27 15:46 andy + + * Source/cmGlobalGenerator.cxx: BUG: Generate RUN_TEST target if + any tests are there + +2005-07-27 13:36 king + + * Source/: cmGlobalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: ENH: Generator now creates a + separate intermediate files directory for each target. This is + needed for MSVC 8 to support parallel builds. + +2005-07-27 12:41 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: fix some warnings and + cleanup some + +2005-07-27 11:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-27 11:42 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: maybe fix fortran + issue + +2005-07-27 11:36 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: fix some warnings and + cleanup some + +2005-07-27 11:31 martink + + * Source/: cmDependsJava.cxx, cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: fix some warnings and + cleanup some + +2005-07-27 09:49 martink + + * Source/: cmDepends.cxx, cmDepends.h, cmDependsC.cxx, + cmDependsC.h, cmDependsFortran.cxx, cmDependsFortran.h, + cmDependsJava.cxx, cmDependsJava.h, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, cmLocalGenerator.cxx, + cmLocalGenerator.h, cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, cmake.cxx: ENH: reduce the + number of files produced still needs a bit more cleanup + +2005-07-26 17:40 king + + * Modules/Dart.cmake: ENH: Added VS8 support for DART_CXX_NAME. + +2005-07-26 13:26 hoffman + + * Source/cmTarget.cxx: ENH: make sure source file depends are used + to determine if custom commands are used + +2005-07-26 13:26 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: if it is not a + cmake target or a full path do not put depend information in the + command + +2005-07-26 13:25 hoffman + + * Source/cmFLTKWrapUICommand.cxx: ENH: make sure custom command + depend on fluid so if fltk is part of project fluid gets built + first + +2005-07-26 11:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-26 11:37 king + + * Source/kwsys/: CMakeLists.txt, FundamentalType.h.in: ENH: Added + FundamentalType header defining platform-independent fixed + size/signedness integer types. + +2005-07-26 11:36 king + + * Source/kwsys/kwsysPlatformCxxTests.cxx: ENH: Added + TEST_KWSYS_CXX_SAME_LONG_AND___INT64, + TEST_KWSYS_CXX_SAME_LONG_LONG_AND___INT64, + TEST_KWSYS_CAN_CONVERT_UI64_TO_DOUBLE, and + TEST_KWSYS_CHAR_IS_SIGNED. + +2005-07-26 11:34 king + + * Source/kwsys/: Base64.c, Base64.h.in, Configure.h.in, + Process.h.in: ENH: Moved kwsys_ns and kwsysEXPORT macros to + Configure.h in the case of building a kwsys source file. This + allows more than one header to be included in a kwsys source file + without redefining the macros. + +2005-07-26 09:17 andy + + * Tests/CTestTest3/test.cmake.in: ENH: Add support for multi-string + compiler name, and improve support for subversion + +2005-07-25 16:10 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: fix lib case bug + correctly + +2005-07-25 11:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-24 11:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-23 11:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-23 10:32 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: undo fix + +2005-07-22 17:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-22 15:41 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: more efficent fix + for bug # 2063 + +2005-07-22 15:33 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: fix for case + mismatched lib bug # 2063 + +2005-07-22 15:32 hoffman + + * Source/cmDependsC.cxx: ENH: string += is very slow, so don't use + it + +2005-07-22 08:40 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Better handling of + removed files and remove warning + +2005-07-22 08:39 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: More regular + expressions + +2005-07-21 15:54 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Add support for + detecting files that were removed + +2005-07-21 10:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-21 09:07 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: BUG: Remove duplicate + prefix + +2005-07-20 22:23 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: fix warning + +2005-07-20 15:44 hoffman + + * Modules/CMakeCCompiler.cmake.in, Modules/CMakeCInformation.cmake, + Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineFortranCompiler.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeDetermineRCCompiler.cmake, + Modules/CMakeFortranCompiler.cmake.in, + Modules/CMakeFortranInformation.cmake, + Modules/CMakeJavaCompiler.cmake.in, + Modules/CMakeRCCompiler.cmake.in, + Modules/CMakeRCInformation.cmake, Source/cmLocalGenerator.cxx: + ENH: make sure flags set in CC or CXX environment variables stay + with the compiler + +2005-07-20 12:54 hoffman + + * Modules/: CMakeCInformation.cmake, CMakeCXXInformation.cmake, + Platform/Windows-cl.cmake: ENH: move flags next to compiler, so + if env contains compiler and some flag, they stay together + +2005-07-20 12:53 hoffman + + * Source/CMakeLists.txt: ENH: java does not work under mingw + +2005-07-20 12:48 hoffman + + * Modules/: FindQt.cmake, FindQt4.cmake: ENH: make sure qmake is on + the machine before running it + +2005-07-20 12:40 andy + + * Source/kwsys/testHashSTL.cxx: ENH: Rename test + +2005-07-20 12:03 andy + + * Source/cmCTest.cxx: BUG: Initialize variable + +2005-07-20 12:02 andy + + * Source/kwsys/: CMakeLists.txt, testhash.cxx: ENH: Rename test + +2005-07-20 10:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-19 18:05 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: make it so that bootstrap + does not use xml parser + +2005-07-19 17:16 hoffman + + * Source/: cmake.cxx, cmake.h: ENH: fix for bug 1866, make -G,-D -C + options allow for space between arg and value + +2005-07-19 16:40 hoffman + + * Source/: CMakeLists.txt, cmFileCommand.cxx, + cmGlobalXCode21Generator.cxx, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h: ENH: if Xcode21 is installed then + create 21 compatible project files + +2005-07-19 15:28 hoffman + + * Source/: cmGlobalXCode21Generator.cxx, + cmGlobalXCode21Generator.h: ENH: add new stub generator + +2005-07-19 15:27 hoffman + + * Source/cmTryCompileCommand.h: ENH: add more docs + +2005-07-19 14:36 hoffman + + * Modules/CMakeGenericSystem.cmake: ENH: make KDevelop3 default to + CMAKE_VERBOSE_MAKEFILE + +2005-07-19 11:48 hoffman + + * Modules/CMakeGenericSystem.cmake: ENH: make KDevelop3 default to + CMAKE_VERBOSE_MAKEFILE + +2005-07-19 10:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-18 12:53 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx, + CTest/cmCTestSubmitCommand.cxx, CTest/cmCTestSubmitHandler.cxx: + ENH: Add a way to submit extra files to the dashboard + +2005-07-18 11:46 andy + + * Modules/Dart.cmake, Source/cmCTest.cxx, Source/cmCTest.h, + Source/ctest.cxx, Tests/CTestTest2/test.cmake.in: ENH: Several + improvements and cleanups: 1. Add long command line arguments for + every argument 2. Add a way to overwrite CTest configuration by + providing --overwrite TimeOut=10 3. Improve argument parsing. 4. + Add submit index argument + +2005-07-18 11:32 andy + + * Source/CTest/cmCTestGenericHandler.cxx: ENH: Cleanup file name + +2005-07-18 11:32 andy + + * Source/cmDocumentation.cxx: ENH: Cleanup the help a bit + +2005-07-18 08:47 hoffman + + * Modules/FindQt.cmake: ENH: fix qt bug + +2005-07-18 03:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-17 03:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-16 03:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-15 15:20 hoffman + + * Source/cmGlobalXCodeGenerator.h: ENH: fix bug 1960 + +2005-07-15 13:24 hoffman + + * Source/cmAddTestCommand.h: BUG: fix for bug 1838 + +2005-07-15 12:57 hoffman + + * Modules/FindGLUT.cmake: BUG: fix for bug 852 + +2005-07-15 12:39 hoffman + + * Modules/: FindQt.cmake: ENH: fix hard coded include from patch + +2005-07-15 12:14 hoffman + + * Modules/: FindQt.cmake, FindQt3.cmake, FindQt4.cmake: ENH: add + new qt stuff from warfield@bwh.harvard.edu, thanks + +2005-07-15 12:01 martink + + * Utilities/CMakeLists.txt: BUG: converted to 1.8 form of custom + commands + +2005-07-15 11:48 andy + + * Modules/FindPythonInterp.cmake: ENH: Add registry for 2.4 + +2005-07-15 11:45 andy + + * Modules/FindPythonInterp.cmake: BUG: Set PYTHONINTERP_FOUND + +2005-07-15 11:38 hoffman + + * Source/WXDialog/bin/FindwxWin.cmake: ENH: fix for older versions + of cmake + +2005-07-15 11:38 hoffman + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h: ENH: fix static build of vtk + with cmake by having custom targets chain depend information + +2005-07-15 11:37 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: remove commented + code + +2005-07-15 11:36 hoffman + + * Source/CMakeLists.txt: ENH: remove messages about not running + java test + +2005-07-15 11:34 hoffman + + * Source/cmDynamicLoader.cxx: ENH: fix compile error bug# 2020 on + mac + +2005-07-15 08:36 andy + + * Modules/FindPythonInterp.cmake: ENH: Initial import + +2005-07-15 03:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-14 17:21 hoffman + + * Source/WXDialog/: CMakeLists.txt, bin/FindwxWin.cmake: ENH: fix + wxdialog to build with xcode + +2005-07-14 16:46 andy + + * Source/WXDialog/CMakeLists.txt: ENH: add an install target for + WXDialog + +2005-07-14 16:00 hoffman + + * Source/cmLocalGenerator.cxx: ENH: fix for bug 992, mac bundle + install fix + +2005-07-14 15:12 hoffman + + * Source/cmMakefile.cxx: BUG: fix for bug 1850 wrapping can leave + out files if they are a substring of another file + +2005-07-14 14:15 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: ENH: Some more cleanups + and add ctest custom vector for regular expression to exclude + from coverage + +2005-07-14 14:15 andy + + * Source/cmCTest.cxx: BUG: Look for custom files in all directories + +2005-07-14 13:50 hoffman + + * Tests/OutOfSource/OutOfSourceSubdir/: testlib.cxx, testlib.h: + ENH: add missing files + +2005-07-14 13:25 andy + + * Source/CTest/: cmCTestCoverageHandler.cxx, + cmCTestCoverageHandler.h: ENH: Add custom supression regular + expressions + +2005-07-14 12:21 hoffman + + * Source/cmLocalUnixMakefileGenerator3.cxx, + Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt, + Tests/OutOfSource/OutOfSourceSubdir/simple.cxx: FIX: fix bug + 2043 borland compiler and dll problem and add a test for it + +2005-07-14 11:24 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: BUG: Fix line number + inconsistency, improve output + +2005-07-14 10:15 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: add support for + borland exe with shared libs back in + +2005-07-14 09:44 andy + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: Do 4 files + +2005-07-14 09:30 andy + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: Add a test for + cmGeneratedFileStream + +2005-07-14 09:29 andy + + * Source/CTest/cmCTestTestCommand.cxx: COMP: Remove warning and fix + the logic + +2005-07-14 09:29 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: BUG: Rename tmp files + +2005-07-14 03:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-13 16:57 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: remove part of + patch from bug 1965 that set executable paths + +2005-07-13 16:49 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: revert part of + patch that set executable debug prefix as it breaks too much + stuff + +2005-07-13 16:24 hoffman + + * Source/cmLocalGenerator.cxx: ENH: add -L as possible library flag + +2005-07-13 16:23 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: add support for bundles + +2005-07-13 16:20 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: try to fix failed + test + +2005-07-13 15:49 hoffman + + * Source/CMakeLists.txt: ENH: add bundle test + +2005-07-13 15:43 hoffman + + * Tests/BundleTest/: BundleTest.cxx, CMakeLists.txt: ENH: add a + bundle test + +2005-07-13 11:21 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h, cmMakefile.cxx, cmMakefile.h, + cmSourceGroup.cxx, cmSourceGroup.h, cmSourceGroupCommand.cxx: + FIX: apply patch from bug# 1965 + +2005-07-13 10:17 andy + + * Source/: cmCTest.h, CTest/cmCTestTestCommand.cxx: ENH: Add + timeout support + +2005-07-13 09:49 andy + + * Source/kwsys/SystemTools.cxx: COMP: Remove warning on windows + +2005-07-13 09:08 hoffman + + * Modules/FindDoxygen.cmake: ENH: fix for darwin from eric wing + +2005-07-13 09:06 hoffman + + * Modules/: FindOpenAL.cmake, FindPhysFS.cmake, FindSDL.cmake, + FindSDL_image.cmake, FindSDL_mixer.cmake, FindSDL_net.cmake, + FindSDL_ttf.cmake: ENH: add a bunch of find sdl stuff from eric + wing + +2005-07-13 08:29 hoffman + + * Modules/Platform/: CYGWIN-g77.cmake, IRIX64.cmake, g77.cmake: + FIX: for 1852 fix fortran case + +2005-07-13 03:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-12 17:30 hoffman + + * ChangeLog.manual, Source/kwsys/SystemTools.cxx, + Source/kwsys/SystemTools.hxx.in: merge from main tree + +2005-07-12 17:24 hoffman + + * CMakeSystemConfig.txt.in, CMakeWindowsSystemConfig.txt: ENH: + remove unused files + +2005-07-12 17:24 hoffman + + * Source/cmCPluginAPI.h: ENH: change version + +2005-07-12 17:23 hoffman + + * Utilities/: cmcurl/CMakeLists.txt, cmxmlrpc/CMakeLists.txt: add + -dl on unix + +2005-07-12 17:22 hoffman + + * Utilities/Release/: cmake_release.sh, config_Darwin, + config_HP-UX, config_SunOS, release_dispatch.sh: move release + stuff off branch + +2005-07-12 16:56 hoffman + + * ChangeLog.txt: update changes + +2005-07-12 16:51 hoffman + + * ChangeLog.txt: ENH: update changes for 2.2 + +2005-07-12 15:40 hoffman + + * Utilities/Release/config_Darwin: [no log message] + +2005-07-12 15:26 hoffman + + * Utilities/Release/config_Darwin: [no log message] + +2005-07-12 15:11 hoffman + + * Utilities/Release/: config_Darwin, release_dispatch.sh: fixes for + osx + +2005-07-12 15:08 hoffman + + * Source/WXDialog/: CMakeLists.txt, bin/FindwxWin.cmake: Fixes for + macosx + +2005-07-12 15:06 andy + + * Source/WXDialog/: CMakeLists.txt, bin/FindwxWin.cmake: ENH: fixes + for macosx + +2005-07-12 14:21 hoffman + + * Utilities/cmxmlrpc/CMakeLists.txt: ENH: add dl lib + +2005-07-12 13:54 hoffman + + * Utilities/Release/config_SunOS: put it back + +2005-07-12 13:21 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: BUG: Revert + the change to FileIsDirectory. Add FileIsSymlink and treat + symlinks as files when removing directory + +2005-07-12 12:40 hoffman + + * Utilities/cmcurl/CMakeLists.txt: [no log message] + +2005-07-12 12:31 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: Go back to the original + directory after examining the current directory + +2005-07-12 12:30 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: Make sure it always + starts in the current directory when searching for tests + +2005-07-12 10:39 andy + + * Source/: kwsys/SystemTools.cxx, + CTest/cmCTestEmptyBinaryDirectoryCommand.cxx: BUG: When removing + directory, use lstat instead of stat to make sure that symlinks + are treated as files and not as directories + +2005-07-12 10:25 hoffman + + * Utilities/Release/config_SunOS: [no log message] + +2005-07-12 10:08 hoffman + + * Utilities/Release/config_SunOS: [no log message] + +2005-07-12 09:36 hoffman + + * Utilities/Release/config_HP-UX: use gmake + +2005-07-12 08:50 andy + + * Source/cmCTest.cxx: BUG: Fix problem with visual studio in + release mode + +2005-07-12 03:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-11 18:07 hoffman + + * Source/CursesDialog/form/CMakeLists.txt: ENH: fix from main tree + +2005-07-11 18:07 hoffman + + * Source/CursesDialog/form/CMakeLists.txt: ENH: add curses include + directory + +2005-07-11 17:58 hoffman + + * Utilities/Release/config_Darwin: turn off wx dialog for now + +2005-07-11 17:15 hoffman + + * Utilities/Release/cmake_release.sh: get the correct version + +2005-07-11 17:11 hoffman + + * Utilities/Release/: cmake_release.sh, cmake_release.sh.in, + config_CYGWIN_NT-5.1, config_IRIX64, config_Linux, + cygwin-package.sh.in, release_dispatch.sh, README: ENH: merge + changes from branches + +2005-07-11 16:57 hoffman + + * Utilities/Release/release_dispatch.sh: [no log message] + +2005-07-11 16:09 hoffman + + * Utilities/Release/: cmake_release.sh, cmake_release.sh.in, + config_CYGWIN_NT-5.1, config_IRIX64, cygwin-package.sh.in, + release_dispatch.sh: move stuff from 2.0 over to 2.2 + +2005-07-11 15:21 hoffman + + * Utilities/Release/config_Linux: move config linix to 2.2 branch + +2005-07-11 15:11 hoffman + + * Utilities/Release/release_dispatch.sh: change to muse + +2005-07-11 15:05 hoffman + + * Utilities/Release/release_dispatch.sh: ENH: add from HEAD + +2005-07-11 15:04 hoffman + + * Utilities/Release/release_dispatch.sh: add from branch + +2005-07-11 14:55 martink + + * ChangeLog.manual: ENH: commit some change logs + +2005-07-11 14:54 hoffman + + * Source/cmCPluginAPI.h, Utilities/Release/cmake_release.sh, + Utilities/Release/cmake_release.sh.in: ENH: fix up some version + stuff + +2005-07-11 12:22 martink + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: provide default + update options if none were provided + +2005-07-11 11:59 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Add default update + options + +2005-07-11 11:37 martink + + * ChangeLog.manual: ENH: added ChangeLog as in prior release + +2005-07-11 11:36 martink + + * Source/cmAddCustomCommandCommand.cxx: ENH: merge from the main + tree to handle relative files + +2005-07-11 11:31 martink + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: merged from CVS fix + for SNV warning + +2005-07-11 11:16 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: BUG: Remove warning when + using CVS + +2005-07-11 03:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-10 03:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-09 03:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-08 11:51 martink + + * Source/cmAddCustomCommandCommand.cxx: ENH: slightly modified + version of Alex's relative path arguments for custom commands + +2005-07-08 10:13 martink + + * Utilities/Release/cmake_release.sh: ENH: release commit + +2005-07-08 10:00 martink + + * CMakeLists.txt: ENH: rev to 22 + +2005-07-08 09:55 martink + + * CMakeLists.txt: ENH: update rev to 23 + +2005-07-08 09:53 martink + + * Source/MFCDialog/CMakeSetup.rc: ENH: minor version update + +2005-07-08 09:05 king + + * Source/kwsys/testProcess.c: COMP: Fixed uninitialized variable. + +2005-07-08 03:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-07 16:01 martink + + * Source/cmConfigureFileCommand.cxx: ENH: configure file will + assume start source dir if a full path is not provided + +2005-07-07 15:06 martink + + * Source/cmMakefile.cxx: BUG: library return values were not UNIX + slashes on Win98 + +2005-07-07 13:55 martink + + * Source/cmSourceFile.cxx: BUG: mor emissing convert to unix + slashes + +2005-07-07 11:44 martink + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: cleaned up some old + methods and vars + +2005-07-07 10:21 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: Removing + CMAKE_HIDE_TARGET_DIRS since it has been superceded by + CMAKE_TARGET_DIR_PREFIX. + +2005-07-07 10:14 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: Added use of + CMAKE_TARGET_DIR_PREFIX variable to prepend a project-specified + string to the names of all the target-name.dir directories. + +2005-07-07 10:11 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: added ability to + prefix target directories with a . to make them not show up in + ls. From patch from Alex + +2005-07-07 09:44 martink + + * Source/cmake.cxx: BUG: win95 returning non unix path for cmake + command + +2005-07-07 09:06 king + + * Source/kwsys/testProcess.c: ENH: Extended test 0 to run the + executable twice using the same process object. This tests the + reusability of the objects. + +2005-07-07 09:05 king + + * Source/kwsys/ProcessWin32.c: BUG: Fixed reusability of process + object by clearing each pipe's Closed flag when cleaning up. + +2005-07-07 03:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-06 16:16 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: BUG: fix for bootstrap problem + +2005-07-06 15:51 andy + + * Source/: cmCacheManager.cxx, cmFileCommand.cxx, + cmWriteFileCommand.cxx: STYLE: Fix typos + +2005-07-06 15:49 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: COMP: Remove warning + +2005-07-06 15:27 andy + + * Source/CTest/: cmCTestCoverageHandler.cxx, + cmCTestCoverageHandler.h: ENH: Improve support for various + versions of gcov + +2005-07-06 15:25 andy + + * Modules/FindFLTK.cmake: ENH: Replace with the one from InsightApp + +2005-07-06 15:25 martink + + * Source/cmListFileCache.cxx: BUG: project command should also work + with lower case + +2005-07-06 15:24 martink + + * Tests/Simple/CMakeLists.txt: BUG: minor fix to project name to + match ADD_TEST call + +2005-07-06 15:11 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: BUG: On windows there can + be a problem because scp does not handle drive names. This uses + relative path for scp + +2005-07-06 03:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-05 16:13 martink + + * Utilities/Release/: MakeRelease.cmake.in, Release.cmake: ENH: a + start on UNIX release + +2005-07-05 15:43 martink + + * Utilities/Release/Release.cmake: ENH: better release support + +2005-07-05 12:38 martink + + * Utilities/Release/: MakeRelease.cmake.in, Release.cmake: ENH: + better release support + +2005-07-05 11:17 andy + + * Modules/FindDCMTK.cmake: ENH: Improvements by Julien + +2005-07-05 10:08 martink + + * Source/cmMacroCommand.cxx: ENH: revert back to string replacement + version + +2005-07-05 09:21 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: util targets now + show up in locla makefile and make rebuild_cache now works in + subdirs + +2005-07-05 09:00 martink + + * Source/cmLocalGenerator.cxx: BUG: fix for debug optimized link + libraries + +2005-07-05 03:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-04 03:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-03 12:06 andy + + * Source/cmake.cxx: ENH: Only truncate files when not in try + compile. Alsom move truncating code closer to configure + +2005-07-03 03:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-02 22:50 andy + + * Source/cmCTest.cxx: ENH: Improve performance of MakeXMLSafe, + improve performance of reading custom ctest files, and remove + error when running ctest on directory without + DartConfiguration.tcl + +2005-07-02 22:32 andy + + * Source/CTest/cmCTestCoverageHandler.cxx: STYLE: Unify number of + spaces + +2005-07-02 22:31 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Improve performance by + compiling regular expressions when needed + +2005-07-02 22:30 andy + + * Source/CTest/: cmCTestTestHandler.cxx, cmCTestTestHandler.h: ENH: + Improve performance of testing and do not complain if + DartTestfile.txt is not found or if directory does not exist + +2005-07-02 22:25 andy + + * Source/: cmake.cxx, cmake.h: ENH: Start adding the code that will + truncate output logs + +2005-07-02 01:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-07-01 10:57 martink + + * Source/: cmGetTargetPropertyCommand.h, cmTarget.cxx: ENH: added + Alexander's target property TYPE + +2005-07-01 10:23 martink + + * Source/: cmGetDirectoryPropertyCommand.cxx, + cmGetDirectoryPropertyCommand.h: ENH: added patch from Alexander + Neundorf to get DEFINITIONS + +2005-06-30 15:54 jorgb + + * Source/WXDialog/bin/: FindUPX.cmake, FindwxW.cmake, + FindwxWin.cmake, UsewxW.cmake: initial checkin for bin dir + +2005-06-30 15:54 jorgb + + * Source/WXDialog/: CMakeIcon.xpm, CMakeLists.txt, CMakeSetup.cpp, + CMakeSetup.h, CMakeSetup.pjd, CMakeSetup.rc, CMakeSetupFrame.cpp, + CMakeSetupFrame.h, CommandLineInfo.cpp, CommandLineInfo.h, + NGDialog.exe.manifest, NGDialog.ico, PropertyList.cpp, + PropertyList.h, about.html, aboutdlg.cpp, aboutdlg.h, + app_resources.cpp, app_resources.h, changelog.txt, + cmake_icon.gif, cmake_icon.xpm, cmake_logo.xpm, + cmakesetup.done.xml, cmakesetup.xml, config.h, optionsdlg.cpp, + optionsdlg.h, progressdlg.cpp, progressdlg.h: Initial checkin new + wx dialog + +2005-06-30 15:52 jorgb + + * Source/WXDialog/: CMakeIcon.gif, CMakeIcon.icns, CMakeIcon.xpm, + CMakeLists.txt, ReadMe.Mac.txt, cmWXCacheProperty.cxx, + cmWXCacheProperty.h, cmWXCommandLineInfo.cxx, + cmWXCommandLineInfo.h, cmWXMainFrame.cxx, cmWXMainFrame.h, + wxCMakeSetup.cxx, wxincludes.h: deleted old wx-dialog + +2005-06-30 13:39 martink + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: ENH: added testing + of the WHILE command + +2005-06-30 13:39 martink + + * Docs/cmake-mode.el: ENH: added while command + +2005-06-30 13:27 martink + + * Docs/cmake-mode.el: ENH: added while command + +2005-06-30 13:09 martink + + * Utilities/Release/: CMake.nsi.in, MakeRelease.cmake.in, + Release.cmake, Win32Release.sh.in: ENH: better release scripts + +2005-06-30 11:33 martink + + * Utilities/Release/Release.cmake: ENH: hard coded for VS 71 nmake + for now + +2005-06-30 11:18 king + + * Modules/Platform/Windows-cl.cmake: BUG: Fixed escaped quote at + end of . + +2005-06-30 09:53 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: added local help and + install targets + +2005-06-30 09:21 king + + * Source/kwsys/Base64.c: BUG: Do not increment optr by 2 after + storing only one character. Also fixed possibility of storing + uninitialized characters from the last triplet. + +2005-06-30 05:47 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-29 12:07 king + + * Modules/Platform/Windows-bcc32.cmake: BUG: Need to use the -c + option for implib to produce case-sensitive symbols in the .lib + files. + +2005-06-29 08:46 martink + + * CTestCustom.ctest.in: COMP: shut up warning + +2005-06-29 05:49 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-28 15:00 martink + + * Utilities/Release/: CMake.nsi.in, CMakeInstall.bmp: ENH: added + our own bitmap + +2005-06-28 10:55 martink + + * Utilities/Release/CMake.nsi.in, + Utilities/Release/Win32Release.sh.in, + Utilities/Release/cmake_release.sh.in, + Utilities/Release/Release.cmake, CMakeLists.txt: ENH: added some + release support + +2005-06-28 05:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-27 15:59 martink + + * Source/cmMakefile.cxx: BUG: dont pass unverified char * to + streams + +2005-06-27 12:45 martink + + * Tests/Simple/CMakeLists.txt: ENH: convert to lower case + +2005-06-27 12:44 martink + + * Example/: CMakeLists.txt, Demo/CMakeLists.txt, + Hello/CMakeLists.txt: ENH: updte to lower case and using + ADD_SUBDIRECTORY + +2005-06-27 11:39 martink + + * CTestCustom.ctest.in: ENH: mods to warning excludes based on new + locaiton of curl + +2005-06-27 05:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-26 05:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-25 05:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-24 13:29 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: BUG: Exit properly on SCP + submission + +2005-06-24 09:41 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: COMP: Remove warnings + +2005-06-24 09:06 andy + + * CMakeLists.txt, Source/CMakeLists.txt, Source/cmCTest.cxx, + Source/CTest/cmCTestSubmitHandler.cxx, + Utilities/cmxmlrpc/xmlrpc_curl_transport.c: ENH: Move curl to + utilities + +2005-06-24 09:00 andy + + * Utilities/cmcurl/amigaos.c, Utilities/cmcurl/amigaos.h, + Utilities/cmcurl/arpa_telnet.h, Utilities/cmcurl/base64.c, + Utilities/cmcurl/base64.h, Utilities/cmcurl/ca-bundle.h, + Utilities/cmcurl/connect.c, Utilities/cmcurl/connect.h, + Utilities/cmcurl/content_encoding.c, + Utilities/cmcurl/content_encoding.h, Utilities/cmcurl/cookie.c, + Utilities/cmcurl/cookie.h, Utilities/cmcurl/curl_memory.h, + Utilities/cmcurl/curlx.h, Utilities/cmcurl/dict.c, + Utilities/cmcurl/dict.h, Utilities/cmcurl/easy.c, + Utilities/cmcurl/escape.c, Utilities/cmcurl/escape.h, + Utilities/cmcurl/file.c, Utilities/cmcurl/file.h, + Utilities/cmcurl/formdata.c, Utilities/cmcurl/formdata.h, + Utilities/cmcurl/ftp.c, Utilities/cmcurl/ftp.h, + Utilities/cmcurl/getdate.c, Utilities/cmcurl/getdate.h, + Utilities/cmcurl/getenv.c, Utilities/cmcurl/getinfo.c, + Utilities/cmcurl/getinfo.h, Utilities/cmcurl/hash.c, + Utilities/cmcurl/hash.h, Utilities/cmcurl/hostares.c, + Utilities/cmcurl/hostasyn.c, Utilities/cmcurl/hostip.c, + Utilities/cmcurl/hostip.h, Utilities/cmcurl/hostip4.c, + Utilities/cmcurl/hostip6.c, Utilities/cmcurl/hostsyn.c, + Utilities/cmcurl/hostthre.c, Utilities/cmcurl/http.c, + Utilities/cmcurl/http.h, Utilities/cmcurl/http_chunks.c, + Utilities/cmcurl/http_chunks.h, Utilities/cmcurl/http_digest.c, + Utilities/cmcurl/http_digest.h, + Utilities/cmcurl/http_negotiate.c, + Utilities/cmcurl/http_negotiate.h, Utilities/cmcurl/http_ntlm.c, + Utilities/cmcurl/http_ntlm.h, Utilities/cmcurl/if2ip.c, + Utilities/cmcurl/if2ip.h, Utilities/cmcurl/inet_ntoa_r.h, + Utilities/cmcurl/inet_ntop.c, Utilities/cmcurl/inet_ntop.h, + Utilities/cmcurl/inet_pton.c, Utilities/cmcurl/inet_pton.h, + Utilities/cmcurl/krb4.c, Utilities/cmcurl/krb4.h, + Utilities/cmcurl/ldap.c, Utilities/cmcurl/ldap.h, + Utilities/cmcurl/llist.c, Utilities/cmcurl/llist.h, + Utilities/cmcurl/md5.c, Utilities/cmcurl/md5.h, + Utilities/cmcurl/memdebug.c, Utilities/cmcurl/memdebug.h, + Utilities/cmcurl/mprintf.c, Utilities/cmcurl/multi.c, + Utilities/cmcurl/netrc.c, Utilities/cmcurl/netrc.h, + Utilities/cmcurl/nwlib.c, Utilities/cmcurl/progress.c, + Utilities/cmcurl/progress.h, Utilities/cmcurl/security.c, + Utilities/cmcurl/security.h, Utilities/cmcurl/sendf.c, + Utilities/cmcurl/sendf.h, Utilities/cmcurl/setup.h, + Utilities/cmcurl/share.c, + Source/CTest/Curl/Testing/CMakeLists.txt, + Utilities/cmcurl/share.h, Utilities/cmcurl/speedcheck.c, + Utilities/cmcurl/speedcheck.h, Utilities/cmcurl/ssluse.c, + Utilities/cmcurl/ssluse.h, Utilities/cmcurl/strequal.c, + Utilities/cmcurl/strequal.h, Utilities/cmcurl/strerror.c, + Utilities/cmcurl/strerror.h, Utilities/cmcurl/strtok.c, + Utilities/cmcurl/strtok.h, Utilities/cmcurl/strtoofft.c, + Utilities/cmcurl/strtoofft.h, Utilities/cmcurl/telnet.c, + Utilities/cmcurl/telnet.h, Utilities/cmcurl/timeval.c, + Utilities/cmcurl/timeval.h, Utilities/cmcurl/transfer.c, + Utilities/cmcurl/transfer.h, Utilities/cmcurl/url.c, + Utilities/cmcurl/url.h, Utilities/cmcurl/urldata.h, + Utilities/cmcurl/version.c, Utilities/cmcurl/CMakeLists.txt, + Utilities/cmcurl/config.h.in, Utilities/cmcurl/curl.copyright, + Utilities/cmcurl/CMake/CheckTypeSize.c.in, + Utilities/cmcurl/CMake/CheckTypeSize.cmake, + Utilities/cmcurl/CMake/CurlTests.c, + Utilities/cmcurl/Platforms/WindowsCache.cmake, + Utilities/cmcurl/Platforms/config-aix.h, + Utilities/cmcurl/Testing/CMakeLists.txt, + Utilities/cmcurl/Testing/curlgtk.c, + Utilities/cmcurl/Testing/curltest.c, + Utilities/cmcurl/Testing/ftpget.c, + Utilities/cmcurl/Testing/ftpgetresp.c, + Utilities/cmcurl/Testing/ftpupload.c, + Utilities/cmcurl/Testing/getinmemory.c, + Utilities/cmcurl/Testing/http-post.c, + Utilities/cmcurl/Testing/httpput.c, + Utilities/cmcurl/Testing/multithread.c, + Utilities/cmcurl/Testing/persistant.c, + Utilities/cmcurl/Testing/postit2.c, + Utilities/cmcurl/Testing/sepheaders.c, + Utilities/cmcurl/Testing/simple.c, + Utilities/cmcurl/Testing/simplessl.c, + Utilities/cmcurl/Testing/testconfig.h.in, + Utilities/cmcurl/Testing/win32sockets.c, + Utilities/cmcurl/curl/curl.h, Utilities/cmcurl/curl/curlver.h, + Utilities/cmcurl/curl/easy.h, Utilities/cmcurl/curl/mprintf.h, + Utilities/cmcurl/curl/multi.h, + Utilities/cmcurl/curl/stdcheaders.h, + Utilities/cmcurl/curl/types.h: ENH: Initial import + +2005-06-24 05:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-23 16:06 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: ENH: Make iterators const + +2005-06-23 13:07 andy + + * Tests/CTestTest3/test.cmake.in: ENH: Perform second test if + subversion exists + +2005-06-23 13:04 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestBuildAndTestHandler.cxx, + CTest/cmCTestBuildCommand.cxx, CTest/cmCTestBuildHandler.cxx, + CTest/cmCTestConfigureCommand.cxx, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestCoverageCommand.cxx, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestGenericHandler.cxx, CTest/cmCTestGenericHandler.h, + CTest/cmCTestHandlerCommand.cxx, CTest/cmCTestHandlerCommand.h, + CTest/cmCTestMemCheckCommand.cxx, CTest/cmCTestMemCheckCommand.h, + CTest/cmCTestScriptHandler.cxx, CTest/cmCTestStartCommand.cxx, + CTest/cmCTestSubmitCommand.cxx, CTest/cmCTestSubmitHandler.cxx, + CTest/cmCTestSubmitHandler.h, CTest/cmCTestTestCommand.cxx, + CTest/cmCTestTestCommand.h, CTest/cmCTestTestHandler.cxx, + CTest/cmCTestUpdateCommand.cxx, CTest/cmCTestUpdateHandler.cxx, + kwsys/CTestConfig.cmake: ENH: Several improvements with the way + things are handled. Also, support multiple submited files + +2005-06-23 12:34 martink + + * Source/cmMacroCommand.cxx: COMP: fix compiler warnings + +2005-06-23 12:05 utkarsh1 + + * Source/CTest/Curl/CMakeLists.txt: BUG: reverting to 1.53 + +2005-06-23 11:22 utkarsh1 + + * Source/CTest/Curl/CMakeLists.txt: BUG: fixed conflicts between + file names among different utilities. + +2005-06-23 11:03 martink + + * Source/: cmForEachCommand.cxx, cmIfCommand.cxx, + cmMacroCommand.cxx, cmWhileCommand.cxx: ENH: converted macro to + use variables and fixed some case issues with some function + blockers + +2005-06-23 10:25 king + + * Source/kwsys/hashtable.hxx.in: ENH: Added some smaller primes to + allow small hash table sizes and therefore shorter initial + construction times. + +2005-06-23 05:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-22 14:20 martink + + * Source/cmForEachCommand.h: STYLE: updated the docs to be more + accurate + +2005-06-22 14:16 martink + + * Source/cmForEachCommand.cxx: COMP: fix possible poroblem with + freed memory + +2005-06-22 14:04 martink + + * Source/cmForEachCommand.cxx: COMP: fix unused variable + +2005-06-22 13:32 martink + + * Source/cmForEachCommand.cxx: ENH: changed FOREACH to use + variables instead of string replacement + +2005-06-22 10:54 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: Fix displaying of + percentage + +2005-06-22 10:09 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: clean rule wasn't + cleaning libs and executables + +2005-06-22 09:12 martink + + * Source/cmTarget.cxx: ENH: some better checks + +2005-06-22 09:06 martink + + * Source/: cmExportLibraryDependencies.cxx, cmGlobalGenerator.cxx, + cmGlobalKdevelopGenerator.cxx, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmLocalGenerator.cxx, + cmLocalGenerator.h, cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h, cmMakeDepend.cxx, + cmMakeDepend.h, cmMakefile.cxx, cmMakefile.h, + cmOrderLinkDirectories.cxx, cmOrderLinkDirectories.h, + cmTarget.cxx, cmTarget.h: ENH: make LOCATION an computed property + of the target and get rid of a bunch of const junk + +2005-06-22 05:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-21 16:44 andy + + * Source/cmCommandArgumentParserHelper.cxx: ENH: Remove stray abort + +2005-06-21 16:29 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: fix for BSD makes no + longer use dir name as a target + +2005-06-21 14:20 king + + * Source/cmTryRunCommand.cxx: BUG: Fixed error message formatting + when try run executable command cannot be found. + +2005-06-21 11:01 andy + + * Source/cmCommandArgumentParserHelper.cxx: BUG: Fix escaping to + make OSX work again + +2005-06-21 10:33 king + + * Source/kwsys/testProcess.c: BUG: Use sleep(1) instead of + usleep(1000000) because some UNIX systems specify that the + argument to usleep must be less than 1000000. + +2005-06-21 09:34 martink + + * Source/: cmCustomCommand.cxx, cmCustomCommand.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: add test to make sure + custom commands are used + +2005-06-21 05:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-20 17:57 andy + + * Source/cmCTest.cxx: ENH: Initialize handler before processing it + +2005-06-20 17:37 andy + + * Source/CursesDialog/.NoDartCoverage: ENH: Until there is some + test for curses dialog, no need to do coverage + +2005-06-20 16:31 martink + + * Modules/: Dart.cmake, TestCXXAcceptsFlag.cmake, + Platform/Darwin.cmake: ENH: fixed some spelling errors + +2005-06-20 16:24 martink + + * Source/cmMakefile.cxx: BUG: goof in new feature fixed + +2005-06-20 14:15 martink + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: removed unused files + +2005-06-20 14:00 martink + + * Docs/CMake04.rtf, Source/cmGetTargetPropertyCommand.cxx, + Source/cmGetTargetPropertyCommand.h, Source/cmGlobalGenerator.h, + Source/cmMakefile.cxx: ENH: modified GET_TARGET_PROPERTIES to + work with all targets + +2005-06-20 13:49 barre + + * Source/kwsys/testSystemTools.cxx: ENH: fix test, it has to return + a true/false value otherwise it just passes the test, and add + test for EscapeChars + +2005-06-20 13:10 martink + + * Modules/: TestBigEndian.cmake, UseSWIG.cmake: BUG: fix some + missing quotes for STREQUAL IF statements + +2005-06-20 12:55 martink + + * Modules/CMakeGenericSystem.cmake: ENH: adde dback in + CMAKE_VERBOSE_MAKEFILE that was acc removed + +2005-06-20 11:54 king + + * Source/cmSetTargetPropertiesCommand.h: ENH: Added documentation + of VERSION and SOVERSION properties. + +2005-06-20 11:53 martink + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, + cmGlobalUnixMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator.h: ENH: no longer used + +2005-06-20 11:49 martink + + * Tests/COnly/CMakeLists.txt: COMP: converted to lowercase commands + +2005-06-20 11:47 martink + + * Docs/cmake-mode.el: ENH: updated emacs mode to include lowercase + commands and missing command ENDMACRO + +2005-06-20 08:59 martink + + * Source/CTest/cmCTestTestHandler.cxx: COMP: see about fixing + warning + +2005-06-20 07:42 andy + + * Tests/CTestTest3/test.cmake.in: ENH: Skip svn test for now + +2005-06-20 05:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-19 06:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-18 05:28 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-17 23:15 andy + + * Source/CMakeLists.txt: COMP: Fix problems with old cmake + +2005-06-17 15:50 andy + + * Source/: cmCommandArgumentLexer.cxx, cmCommandArgumentLexer.in.l, + cmCommandArgumentParserHelper.cxx, + cmCommandArgumentParserHelper.h, cmListFileCache.cxx, + cmMakefile.cxx, cmMakefile.h: ENH: Improve handling of escaped + characters + +2005-06-17 15:44 andy + + * Source/CMakeLists.txt: ENH: Pass ctest config type to + subprocesses + +2005-06-17 15:43 andy + + * Source/CTest/cmCTestTestHandler.cxx: ENH: Pass configuration type + to subprocesses + +2005-06-17 14:13 king + + * Source/kwsys/CMakeLists.txt: ENH: Enabling new test 7 of process + execution. + +2005-06-17 14:07 king + + * Source/kwsys/Process.h.in: ENH: Added polling feature to + documentation of WaitForData. + +2005-06-17 14:05 king + + * Source/kwsys/ProcessWin32.c: BUG: Fixed polling feature of + WaitForData. + +2005-06-17 13:59 king + + * Source/kwsys/testProcess.c: ENH: Added test 7 to expose problems + with polling by WaitForData. + +2005-06-17 13:57 king + + * Source/kwsys/ProcessUNIX.c: BUG: Fixed polling capability of + WaitForData. + +2005-06-17 13:14 andy + + * Tests/CTestTest3/test.cmake.in: ENH: Make CVS one nightly + +2005-06-17 13:07 andy + + * Tests/CTestTest3/test.cmake.in: ENH: Add subversion test + +2005-06-17 13:04 andy + + * Source/: cmCTest.cxx, cmCTest.h, cmCommand.h, cmObject.h, + cmStandardIncludes.h, CTest/cmCTestBuildAndTestHandler.cxx, + CTest/cmCTestBuildAndTestHandler.h, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestBuildHandler.h, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestConfigureHandler.h, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestGenericHandler.h, CTest/cmCTestMemCheckHandler.cxx, + CTest/cmCTestMemCheckHandler.h, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestScriptHandler.h, CTest/cmCTestStartCommand.cxx, + CTest/cmCTestSubmitHandler.cxx, CTest/cmCTestSubmitHandler.h, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestTestHandler.h, + CTest/cmCTestUpdateCommand.cxx, CTest/cmCTestUpdateHandler.cxx, + CTest/cmCTestUpdateHandler.h: ENH: Add superclass for all + commands and handlers. Improve handlers to have initialization + code, and start initializing ctest when start is invoked + +2005-06-17 11:46 malaterre + + * Source/kwsys/CommandLineArguments.hxx.in: ENH: Fix Bug #1950, + provide a direct access to the input. Minor cleanup (convenience) + +2005-06-17 09:49 king + + * Source/: cmCMakeMinimumRequired.cxx, cmMakefile.h, cmVersion.h: + ENH: Enabling ability for CMAKE_MINIMUM_REQUIRED version to + include patch level. Submitted by Alexander Neundorf. + +2005-06-17 08:45 andy + + * Tests/MacroTest/CMakeLists.txt: ENH: Fix test on HP + +2005-06-17 05:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-16 16:42 andy + + * Source/cmLocalUnixMakefileGenerator3.cxx: When running the same + ctest as the one we are testing, make sure to run as separate + process + +2005-06-16 16:33 andy + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: Add extra argument + +2005-06-16 16:24 andy + + * Source/cmCTest.cxx, Tests/CTestTest3/test.cmake.in: ENH: Return + error if there is an ERROR_MESSAGE. Also fix tag for the test + +2005-06-16 15:44 andy + + * Source/cmCommand.h: COMP: Fix build error on Windows + +2005-06-16 14:56 andy + + * Source/CMakeLists.txt, Tests/MacroTest/CMakeLists.txt, + Tests/MacroTest/macroTest.c: ENH: Add test of macro + +2005-06-16 14:56 andy + + * Source/: cmake.cxx, cmake.h: ENH: Before running configre, remove + all macros. Also, backup the command names. Also, make command + names case insensitive + +2005-06-16 14:05 andy + + * Source/: cmCommand.h, cmConfigureFileCommand.h, + cmFLTKWrapUICommand.h, cmQTWrapCPPCommand.h, cmQTWrapUICommand.h, + cmUseMangledMesaCommand.h, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.h, cmVTKWrapTclCommand.h: ENH: Add + classname to commands + +2005-06-16 13:29 andy + + * Tests/CTestTest3/test.cmake.in: ENH: Initial import + +2005-06-16 13:18 andy + + * Source/CMakeLists.txt, Source/cmCTest.cxx, Source/cmCTest.h, + Source/CTest/cmCTestBuildCommand.cxx, + Source/CTest/cmCTestCommand.h, + Source/CTest/cmCTestGenericHandler.h, + Source/CTest/cmCTestStartCommand.cxx, + Source/CTest/cmCTestSubmitCommand.cxx, + Source/CTest/cmCTestSubmitHandler.cxx, + Source/CTest/cmCTestUpdateCommand.cxx, + Source/CTest/cmCTestUpdateHandler.cxx, + Tests/CTestTest2/test.cmake.in: ENH: Several improvements to + CTest: + + 1. Support for showing line numbers when debugging ctest + --show-line-numbers 2. Modify the ctest initialization code, so + that it can be delayed 3. Handlers now have corresponding command + if they were invoked from the command (so far only update + actually use that) 4. Start command is simplified and the + functionality is moved to CTest 5. Update can perform initial + checkout if CTEST_CHECKOUT_COMMAND is set 6. Add test that checks + out kwsys and perform tests on the fresh checkout + +2005-06-16 11:52 martink + + * Source/CMakeLists.txt: ENH: add first cut at support for exe with + same name as lib + +2005-06-16 11:48 martink + + * Source/: cmSetTargetPropertiesCommand.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: add first cut at support + for exe with same name as lib + +2005-06-16 11:47 martink + + * Tests/SameName/: CMakeLists.txt, Exe1/CMakeLists.txt, + Exe1/conly.c, Lib1/CMakeLists.txt, Lib1/libc1.c, Lib1/libc1.h: + ENH: add same name test + +2005-06-16 10:23 martink + + * Source/cmITKWrapTclCommand.cxx: ENH: replace brackets with more + generic find + +2005-06-16 10:22 martink + + * Source/cmOrderLinkDirectories.cxx: ENH: make more specific in + reject self linking + +2005-06-16 05:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-15 15:51 andy + + * Source/cmCommand.h: ENH: Add accessor for Makefile and make + SetError public + +2005-06-15 15:29 hoffman + + * CTestConfig.cmake: ENH: add for testing + +2005-06-15 10:54 andy + + * Tests/CTestTest2/test.cmake.in: BUG: Fix typo + +2005-06-15 10:53 andy + + * Source/CTest/: cmCTestMemCheckCommand.cxx, + cmCTestMemCheckHandler.cxx: ENH: Pass in memcheck command options + and suppresions, and change skin to tool + +2005-06-15 10:53 andy + + * Source/CTest/cmCTestCoverageCommand.cxx: ENH: Handle passing in + coverage command + +2005-06-15 08:54 andy + + * Source/CMakeLists.txt: ENH: Add logging to improve coverage + +2005-06-15 05:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-14 15:53 andy + + * Utilities/.NoDartCoverage: ENH: No need to do coverage of + utilities + +2005-06-14 15:49 andy + + * Source/: cmCommandArgumentParserHelper.cxx, + cmCommandArgumentParserHelper.h: ENH: More cleanups + +2005-06-14 14:01 andy + + * Tests/CTestTest2/test.cmake.in: ENH: Also perform memory checking + and coverage + +2005-06-14 14:00 andy + + * Source/: CMakeLists.txt, CTest/cmCTestCoverageCommand.cxx, + CTest/cmCTestCoverageCommand.h, CTest/cmCTestMemCheckCommand.cxx, + CTest/cmCTestMemCheckCommand.h, CTest/cmCTestScriptHandler.cxx: + ENH: Add commands for memory checking and coverage + +2005-06-14 13:22 andy + + * Source/: cmCommandArgumentLexer.cxx, cmCommandArgumentLexer.in.l: + ENH: Improve variable name regular expression + +2005-06-14 12:48 andy + + * Source/: cmMacroCommand.cxx, cmake.cxx, cmake.h: ENH: Save + command that macro overwrites + +2005-06-14 11:42 andy + + * Source/: cmCTest.cxx, cmCTest.h, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestUpdateHandler.cxx: + ENH: Separate standard output and standard error for problematic + commands + +2005-06-14 03:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-13 18:03 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: add + method to escape some chars in a string + +2005-06-13 14:29 andy + + * Source/cmCommandArgumentParserHelper.cxx: ENH: Handle + non-existing variables + +2005-06-13 11:00 andy + + * bootstrap, Source/CMakeLists.txt, Source/cmMakefile.cxx: ENH: Use + the new parser that supports nested variables + +2005-06-13 10:27 andy + + * Source/: cmCommandArgumentParser.cxx, cmCommandArgumentParser.y: + ENH: More cleanups + +2005-06-13 10:11 andy + + * Source/: cmCommandArgumentParserHelper.cxx, + cmCommandArgumentParserHelper.h: ENH: More optimization + +2005-06-13 10:01 andy + + * Source/: cmCommandArgumentLexer.cxx, cmCommandArgumentLexer.h, + cmCommandArgumentParser.cxx, cmCommandArgumentParserTokens.h: + ENH: Initial import + +2005-06-13 10:00 andy + + * Source/: cmCommandArgumentParserHelper.cxx, + cmCommandArgumentParserHelper.h: ENH: Handle errors and optimize + a bit + +2005-06-13 10:00 andy + + * Source/cmCommandArgumentLexer.in.l: ENH: Remove some allocations + +2005-06-13 09:59 andy + + * Source/cmCommandArgumentParser.y: ENH: Rearange and cleanup + +2005-06-13 09:33 martink + + * Source/: cmConfigureFileCommand.cxx, cmConfigureFileCommand.h: + ENH: made configure file immediate by default for 2.2 or later + +2005-06-12 03:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-11 03:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-10 11:27 martink + + * Source/cmMakefile.cxx: ENH: remove old 1.2 compatability from + cmake 2.2 + +2005-06-10 10:45 martink + + * Source/cmMakefile.cxx: ENH: remove old 1.2 compatability from + cmake 2.2 + +2005-06-10 10:44 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, cmake.cxx, cmake.h, + cmLocalGenerator.h: ENH: added support for forcing recomputation + of depends + +2005-06-10 10:09 martink + + * Tests/Wrapping/CMakeLists.txt: ENH: change to work with new FLTK + command + +2005-06-10 10:09 martink + + * Source/: cmFLTKWrapUICommand.cxx, cmFLTKWrapUICommand.h: ENH: + change workings of command so that it can all happing in the + initial pass still works the old way but complains + +2005-06-10 10:08 martink + + * Source/cmAddLibraryCommand.cxx: ENH: allow libs with no sources + but complain + +2005-06-10 09:01 andy + + * Source/: cmCTest.cxx, CTest/cmCTestBuildHandler.cxx: ENH: Be more + verbose + +2005-06-10 08:56 andy + + * Source/CTest/: cmCTestBuildHandler.cxx, + cmCTestConfigureHandler.cxx: ENH: Be more verbose + +2005-06-10 08:40 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmGlobalXCodeGenerator.cxx, + cmLocalGenerator.cxx, cmLocalGenerator.h: ENH: removed old + convert calls + +2005-06-10 02:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-09 14:37 martink + + * bootstrap, Source/cmake.cxx, Source/CMakeLists.txt: ENH: removed + UMG2 + +2005-06-09 14:34 martink + + * Source/cmITKWrapTclCommand.cxx: ENH: deprecate old ITK wrap + command + +2005-06-09 11:46 martink + + * Source/cmGlobalKdevelopGenerator.cxx: BUG: fix KDev gen to call + parent class Generate + +2005-06-09 11:39 martink + + * Source/: cmGlobalKdevelopGenerator.h, + cmLocalKdevelopGenerator.cxx, cmLocalKdevelopGenerator.h: ENH: + make KDev sub off of Gen3 + +2005-06-09 11:33 martink + + * Source/cmTarget.cxx: ENH: removed old 1.2 compatability + +2005-06-09 11:23 martink + + * Tests/Wrapping/CMakeLists.txt: ENH: no longer test ITK command + +2005-06-09 09:48 andy + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: some better error + reporting and more robust handlign of bad targets + +2005-06-09 08:19 king + + * Source/kwsys/Configure.h.in: COMP: Disable more warnings. + +2005-06-09 08:18 king + + * Source/kwsys/kwsys_ios_sstream.h.in: COMP: Fix + no-assignment-operator warning and disable typedef-name synonym + warning. + +2005-06-09 08:03 king + + * Source/kwsys/Configure.h.in: COMP: Disable useless warnings. + +2005-06-09 08:02 king + + * Source/kwsys/Configure.hxx.in: ENH: C++ configuration should + include C configuration. + +2005-06-09 07:51 king + + * Source/kwsys/SystemTools.cxx: COMP: Need windows.h even on cygwin + to get CreateFile API. + +2005-06-09 07:40 king + + * Source/kwsys/RegularExpression.cxx: COMP: Fixed conversion + warnings. + +2005-06-09 04:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-08 16:55 martink + + * Source/cmIncludeCommand.cxx: BUG: fatal error in include file + should not cause report of missing include file + +2005-06-08 16:39 martink + + * Tests/Wrapping/CMakeLists.txt: ENH: remove bad add target + commands + +2005-06-08 16:39 martink + + * Source/: cmAddExecutableCommand.cxx, cmAddLibraryCommand.cxx: + ENH: better error checking for add library or executable with no + source files + +2005-06-08 16:31 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: prevent segfault + when no sources provided for lib + +2005-06-08 14:18 andy + + * Source/: cmCommandArgumentLexer.in.l, cmCommandArgumentParser.y, + cmCommandArgumentParserHelper.cxx, + cmCommandArgumentParserHelper.h: ENH: Handle more cases + +2005-06-08 14:11 martink + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, Wrapping/CMakeLists.txt: + ENH: remove requirements on 1.2 + +2005-06-08 12:26 martink + + * Tests/: OutOfSource/SubDir/CMakeLists.txt, + Complex/CMakeLists.txt, Complex/Executable/CMakeLists.txt, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + Dependency/CMakeLists.txt, Jump/CMakeLists.txt, + Jump/Library/CMakeLists.txt, PreOrder/CMakeLists.txt, + SimpleInstall/CMakeLists.txt, SimpleInstallS2/CMakeLists.txt, + Testing/CMakeLists.txt: ENH: shift to using ADD_SUBDIRECTORY + +2005-06-08 10:41 andy + + * Source/: cmCommandArgumentLexer.in.l, cmCommandArgumentParser.y, + cmCommandArgumentParserHelper.cxx, + cmCommandArgumentParserHelper.h: ENH: Initial import (not working + yet) + +2005-06-08 09:59 king + + * Docs/cmake-mode.el: ENH: Experimenting with auto-dated copyright. + +2005-06-08 09:52 andy + + * Tests/CTestTest/CMakeLists.txt: ENH: Cleanup + +2005-06-08 04:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-07 12:07 martink + + * Source/cmGlobalVisualStudio7Generator.cxx, + Modules/Platform/Windows-cl.cmake: ENH: fix for incorrect setting + of CONFIZGURATION_TYPES + +2005-06-07 10:55 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: Remove debugging code + +2005-06-07 10:47 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, cmake.cxx: ENH: fix + problem with dependency scanning + +2005-06-07 09:57 andy + + * Source/cmLocalGenerator.cxx, Source/kwsys/CMakeLists.txt, + Source/kwsys/ExtraTest.cmake.in, Tests/CTestTest/test.cmake.in, + Tests/CTestTest2/test.cmake.in: ENH: Add capability to include + files to DartTestfile.txt and add example of that + +2005-06-07 09:06 andy + + * Source/CTest/: cmCTestTestHandler.cxx, cmCTestTestHandler.h: ENH: + Use CMake for parsing DartTestfile.txt + +2005-06-07 08:44 king + + * Modules/FindQt.cmake: ENH: Added search locations for a FreeBSD + location. Contributed by Alexander Neundorf. + +2005-06-07 04:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-06 09:23 andy + + * Source/CTest/cmCTestBuildHandler.cxx: BUG: Initialize the + iterator to prevent seg-fault + +2005-06-06 04:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-05 15:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-03 16:10 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestBuildAndTestHandler.cxx, + CTest/cmCTestBuildAndTestHandler.h: ENH: Move the build-and-test + code to a handler + +2005-06-03 14:42 andy + + * Source/CTest/: cmCTestGenericHandler.cxx, + cmCTestGenericHandler.h: ENH: Add a method to parse command line + argument inside the handler + +2005-06-03 14:42 andy + + * Tests/CommandLineTest/CMakeLists.txt: ENH: Test setting of + environment variables + +2005-06-03 14:17 andy + + * Source/cmSetCommand.cxx: BUG: Remove memory leak + +2005-06-03 12:59 martink + + * Source/: cmWrapExcludeFilesCommand.cxx, + cmWrapExcludeFilesCommand.h, cmSourceFilesCommand.cxx, + cmSourceFilesCommand.h, cmSourceFilesRemoveCommand.cxx, + cmSourceFilesRemoveCommand.h: ENH: no longer used + +2005-06-03 12:58 martink + + * Source/cmCommands.cxx: ENH: removed old commands + +2005-06-03 11:29 andy + + * Source/CTest/cmCTestConfigureHandler.cxx: BUG: Remove unused code + +2005-06-03 11:26 martink + + * CTestCustom.ctest.in: ENH: shut up buggy gcc stl header + +2005-06-03 04:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-02 18:10 andy + + * Source/: cmCTest.cxx, ctest.cxx: ENH: Add debug flag + +2005-06-02 16:47 andy + + * Source/: cmCTest.cxx, CTest/cmCTestSubmitHandler.cxx: BUG: Fix + the order of things to make submit handler not crash when proxies + are set + +2005-06-02 15:14 martink + + * Docs/cmake-mode.el: ENH: updated commands + +2005-06-02 15:09 martink + + * Tests/Wrapping/CMakeLists.txt: ENH: removed old command + +2005-06-02 14:56 martink + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: ENH: removed old + commands + +2005-06-02 14:48 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: ENH: Cleanup output even + more + +2005-06-02 14:24 martink + + * Source/: cmCommands.cxx, cmAbstractFilesCommand.cxx, + cmAbstractFilesCommand.h: ENH: removed the ABSTRACT_FILES command + +2005-06-02 14:21 martink + + * Docs/cmake-mode.el: ENH: updated to remove ABSTRACT_FILES and add + ADD_SUBDIRECTORY + +2005-06-02 14:10 martink + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: ENH: removed use of + ABSTRACT command + +2005-06-02 13:41 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: now also provides obj rules + for local Makefiles + +2005-06-02 12:26 andy + + * Source/CTest/cmCTestBuildHandler.cxx: COMP: Remove compile + warning + +2005-06-02 11:47 andy + + * Source/CTest/: cmCTestBuildHandler.cxx, cmCTestBuildHandler.h: + ENH: Once the number of errors or warnings was reached, stop + counting them. Also fix compile warning on bad compilers + +2005-06-02 09:35 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: BUG: On windows there are + problems when opening file as ascii + +2005-06-02 04:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-06-01 15:59 andy + + * Source/CTest/: cmCTestBuildHandler.cxx, cmCTestBuildHandler.h: + ENH: Streamline build process. This reduces the memory footprint, + since only some number of lines of output will be in memory at + the time. Also, this will report the build errors and warnings as + it goes through the build + +2005-06-01 13:37 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: minor perf improvement + +2005-06-01 13:24 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: BUG: do not add help + target if there is a real target named help + +2005-06-01 13:19 king + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: Fixed name given + to clean target listing for executable and library targets. + +2005-06-01 11:18 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: COMP: fix warning + +2005-06-01 09:25 andy + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h: BUG: Remove duplicate targets + when in different generators + +2005-06-01 08:59 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: COMP: fix warning + +2005-06-01 08:56 martink + + * CTestCustom.ctest.in: COMP: suppress warnings in 3rd party libs + +2005-06-01 08:54 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: COMP: fix warning + +2005-06-01 08:50 martink + + * Source/cmQTWrapUICommand.cxx: COMP: fix warning + +2005-06-01 08:48 martink + + * Source/: cmVariableRequiresCommand.cxx, + cmVariableRequiresCommand.h: ENH: made immediate + +2005-06-01 08:25 andy + + * Source/cmCTest.cxx: ENH: Make CMake --build-and-test to be + verbose by default + +2005-06-01 08:25 andy + + * Source/cmStandardIncludes.h: ENH: Add support for deque + +2005-06-01 03:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-31 18:40 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestCoverageHandler.cxx, + CTest/cmCTestMemCheckHandler.cxx, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestSubmitHandler.cxx, CTest/cmCTestTestHandler.cxx, + CTest/cmCTestUpdateHandler.cxx: COMP: Remove ERROR reserved word + or something and replace with ERROR_MESSAGE + +2005-05-31 17:32 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestGenericHandler.cxx, CTest/cmCTestGenericHandler.h, + CTest/cmCTestMemCheckHandler.cxx, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestStartCommand.cxx, CTest/cmCTestSubmitHandler.cxx, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestUpdateHandler.cxx: + ENH: Add support for writing output file. While doing that, + redesign the way ctest does output. There may still be problems + with commands failing, but that should be fixed by applying the + similar concept to whole CMake + +2005-05-31 16:20 martink + + * CTestCustom.ctest.in: ENH: shut up some warning on SGI + +2005-05-31 16:16 martink + + * Utilities/cmxmlrpc/CMakeLists.txt: BUG: shut downgrade XMLRPC + support + +2005-05-31 15:10 martink + + * Source/: cmAddSubDirectoryCommand.cxx, + cmAddSubDirectoryCommand.h: ENH: removed the PREORDER option from + the AddSubDirectory command + +2005-05-31 14:09 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: COMP: fix a waring + +2005-05-31 11:46 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: now uses Makefile2 to + cleanup zsh issues and provided some more documentation + +2005-05-31 10:16 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: STYLE: add some better comments + and remove some unused code + +2005-05-31 04:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-30 17:26 andy + + * Source/cmStandardIncludes.h: ENH: Add support for iomanip + +2005-05-30 04:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-29 04:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-28 08:44 lorensen + + * Source/kwsys/SystemTools.cxx: COMP: warning. + +2005-05-28 04:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-27 22:11 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: add + convenience function to convert Windows command line args into + Unix argc/argv. Pulled and cleaned from PV/VV/VJ init code + +2005-05-27 16:17 andy + + * Source/CTest/cmCTestScriptHandler.cxx: ENH: Use generated file + stream for files + +2005-05-27 11:26 andy + + * DartConfig.cmake: ENH: Dart change + +2005-05-27 04:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-26 18:15 andy + + * Source/CTest/cmCTestSubmitHandler.cxx: ENH: Fix for changes in + XML-RPC for Dart2 + +2005-05-26 17:30 andy + + * Modules/CMakeVS8FindMake.cmake, + Source/MFCDialog/CMakeSetupDialog.cpp: COMP: Fix for support of + VS 8.0 beta 2 + +2005-05-26 04:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-25 15:09 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: added clean target for + subdirs + +2005-05-25 12:22 martink + + * Source/: cmDepends.cxx, cmDepends.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: BUG: a fix for constant + recomputing of depends + +2005-05-25 11:19 andy + + * Source/cmDependsFortran.cxx: ENH: new fortran depends to match + new Unix Gen + +2005-05-25 11:18 martink + + * Source/: cmGlobalUnixMakefileGenerator.h, + cmGlobalUnixMakefileGenerator3.h, cmake.cxx: ENH: switch to using + new Unix Makefile generator for Unix as well + +2005-05-25 04:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-24 16:36 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix for directory + of empty depend.make files + +2005-05-24 16:11 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: building libs + caused all generated files to be deleted + +2005-05-24 15:36 martink + + * Source/cmIfCommand.h: STYLE: fix the docs + +2005-05-24 14:42 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: some more cleanup and + changes to how custom commands are stored + +2005-05-24 11:17 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx: ENH: optimization to not use + requires step unless a language requires it + +2005-05-24 10:45 martink + + * Modules/CMakeFortranInformation.cmake: ENH: added requires flag + +2005-05-24 04:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-23 03:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-22 03:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-21 03:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-20 12:09 andy + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix for empty + custom commands + +2005-05-20 11:01 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: added help target and made + custom commands execute in start output directory + +2005-05-20 08:45 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx: ENH: fix warning and + also add back in build.make + +2005-05-20 03:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-19 15:55 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: COMP: fix warning + +2005-05-19 15:00 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: fixes for subdir build + Makefiles + +2005-05-19 14:36 andy + + * Modules/Platform/Windows-cl.cmake: ENH: Be more verbose, handle + network paths, and write compiler output to the log files + +2005-05-19 13:32 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: COMP: fix warning + +2005-05-19 13:26 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: BUG: fix for bad + depency clearing + +2005-05-19 10:52 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx: ENH: some performance + improvements + +2005-05-19 03:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-18 16:10 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: fix for makes that + do not handle targets wihtout a rule to build them + +2005-05-18 13:46 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, cmTarget.cxx: ENH: another step + to the next generator still not optimized yet + +2005-05-18 04:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-17 14:39 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: COMP: some warning fixes and + cleanup + +2005-05-17 14:22 andy + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: implemented + provides requires code + +2005-05-17 11:15 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: some more reorg + +2005-05-17 03:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-16 14:17 king + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h: BUG: + Changing to a new test for whether to do relative path + conversion. Now only paths inside the source or binary trees are + converted. + +2005-05-16 13:42 king + + * Source/kwsys/: ProcessUNIX.c, testProcess.c: ENH: Removing + previous debug code. + +2005-05-16 10:53 martink + + * Source/: cmDependsFortran.cxx, cmLocalUnixMakefileGenerator3.cxx: + ENH: some updates to the provides requires code + +2005-05-15 03:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-14 04:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-13 15:51 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: ENH: remove duplicate + provide rule for fortran + +2005-05-13 15:50 martink + + * Source/cmLocalGenerator.cxx: COMP: shut up warning + +2005-05-13 14:45 king + + * Source/kwsys/SharedForward.h.in: ENH: Added knowledge of FreeBSD. + +2005-05-13 14:44 king + + * Source/kwsys/: ProcessUNIX.c, testProcess.c: ENH: Adding + debugging code for freebsd. + +2005-05-13 14:13 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: BUG: minor cleanup and + fix for convenience rules + +2005-05-13 14:12 martink + + * Source/cmGlobalGenerator.cxx: BUG: filx for old bug in rel path + computaiton code + +2005-05-13 09:54 martink + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalUnixMakefileGenerator3.cxx, cmLocalGenerator.cxx, + cmLocalGenerator.h, cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: warning fixes and some + first steps in cleaning up the convert code + +2005-05-13 04:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-12 16:25 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: Undo fix as it broke + the dashboard + +2005-05-12 13:27 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: fix for bug where + debug, release etc flags were not used for linker options, BUG + 1781 fix + +2005-05-12 11:53 martink + + * bootstrap: ENH: moved gen3 into bootstrap process + +2005-05-12 11:26 martink + + * Source/cmLocalUnixMakefileGenerator3.cxx: COMP: shut up unused + var + +2005-05-12 11:24 martink + + * Source/cmake.cxx: BUG: fix bad generator name + +2005-05-12 10:58 martink + + * Source/CMakeLists.txt: ENH: defer relative paths + +2005-05-12 10:49 martink + + * Source/: CMakeLists.txt, cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.h, + cmGlobalUnixMakefileGenerator3.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, cmake.cxx: ENH: added new + generator + +2005-05-12 03:53 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-11 13:16 martink + + * Source/: cmDepends.cxx, cmDepends.h, cmDependsC.cxx, + cmDependsC.h, cmDependsFortran.cxx, cmDependsFortran.h, + cmDependsJava.cxx, cmDependsJava.h, + cmLocalUnixMakefileGenerator2.cxx: ENH: some changes to the + depends signature to be more flexible + +2005-05-11 12:44 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: another snapshot + +2005-05-11 10:19 martink + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h: ENH: added + new methods to convert to HomeRelative paths + +2005-05-11 08:45 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h: ENH: snapshot + +2005-05-11 03:55 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-10 16:41 king + + * Source/kwsys/testProcess.c: ENH: Removing QNX hack for test 6 now + that the problem has been fixed. + +2005-05-10 16:36 king + + * Source/kwsys/ProcessUNIX.c: BUG: struct timeval uses unsigned + types on at least one platform (QNX). Alot of the time logic + assumes a signed type. Switch to using a signed representation + that is converted to the native representation only for system + calls. + +2005-05-10 11:11 andy + + * Source/: cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: ENH: + Allow changing of file name + +2005-05-10 11:00 king + + * Source/: cmDependsC.cxx, cmDependsC.h: BUG: Re-implemented + dependency line parsing to deal with quoted paths and escaped + spaces. + +2005-05-10 10:10 andy + + * Source/cmBuildCommand.cxx: ENH: Remove the old code + +2005-05-10 03:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-09 15:11 martink + + * Source/cmGlobalUnixMakefileGenerator3.cxx: ENH: some more fixes + +2005-05-09 08:53 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: some more cleanup + +2005-05-09 03:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-08 13:49 andy + + * Source/CTest/cmCTestSubmitCommand.cxx, + Tests/CTestTest2/test.cmake.in: ENH: Add notes + +2005-05-08 13:48 andy + + * Source/CTest/cmCTestStartCommand.cxx: ENH: Remove error about not + being able to update CTest configuration + +2005-05-08 13:48 andy + + * Source/CTest/: cmCTestBuildCommand.cxx, cmCTestBuildCommand.h: + ENH: Remove memory leak and remember global generator for next + time + +2005-05-08 13:47 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add method so that ctest + handlers and commands can add notes + +2005-05-08 04:00 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-07 03:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-06 14:49 martink + + * Source/: cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h, + cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h: ENH: updates + +2005-05-06 12:38 king + + * Source/cmake.cxx: COMP: Fixed forced bool conversion warning. + +2005-05-06 09:58 king + + * Source/: cmDepends.cxx, cmDepends.h, cmDependsC.cxx, + cmDependsC.h, cmDependsFortran.cxx, cmDependsFortran.h, + cmDependsJava.cxx, cmDependsJava.h, + cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, cmake.cxx: ENH: Added optional + verbose output to build system dependency check. + +2005-05-06 03:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-05 12:45 martink + + * Source/: cmGlobalUnixMakefileGenerator3.cxx, + cmGlobalUnixMakefileGenerator3.h, + cmLocalUnixMakefileGenerator3.cxx, + cmLocalUnixMakefileGenerator3.h: ENH: backup of work in progress + +2005-05-05 10:40 andy + + * Source/cmMakefile.cxx: BUG: If there is a fatal error, stop + processing list file + +2005-05-05 10:26 king + + * Source/cmGlobalVisualStudio7Generator.cxx: BUG: Added space after + /clean to avoid putting it together with the build configuration. + This fixes the failure of the complext test on the second run in + the same tree. + +2005-05-05 10:19 andy + + * Source/kwsys/CTestConfig.cmake: ENH: Add configuration file for + kwsys + +2005-05-05 10:19 andy + + * Source/CMakeLists.txt, Tests/CTestTest2/CMakeLists.txt, + Tests/CTestTest2/test.cmake.in: ENH: Add new style ctest project + +2005-05-05 10:18 andy + + * Source/CTest/: cmCTestConfigureCommand.cxx, + cmCTestSubmitCommand.cxx: ENH: Add default configure rules for + CMake projects and add default rules for submission + +2005-05-05 10:18 andy + + * Source/CTest/cmCTestScriptHandler.cxx: ENH: Add variable that + holds cmake executable + +2005-05-05 10:17 andy + + * Source/cmCTest.h: ENH: Add accessort for CMake executable + +2005-05-05 09:45 king + + * Source/kwsys/testProcess.c: ENH: Disabling test 6 on QNX until + process killing can be resolved. It will just fail always for + now. + +2005-05-05 09:21 andy + + * Source/cmCTest.cxx: BUG: Fix logic for verbose + +2005-05-05 09:09 king + + * Source/kwsys/hashtable.hxx.in: COMP: Removed unused parameter + warning. + +2005-05-05 09:08 king + + * Source/kwsys/SystemTools.cxx: COMP: Added work-around to avoid + warnings about unreferenced inline functions from SGI termios. + +2005-05-05 09:05 king + + * Source/kwsys/ProcessUNIX.c: COMP: Added initializer to avoid + warning. It is not really needed, though. + +2005-05-05 03:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-04 11:37 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add + split that splits on arbitrary separator + +2005-05-04 11:16 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Allow spaces in + update command + +2005-05-04 11:13 andy + + * Source/CTest/: cmCTestBuildCommand.cxx, cmCTestBuildCommand.h, + cmCTestConfigureCommand.cxx, cmCTestConfigureCommand.h, + cmCTestCoverageHandler.cxx, cmCTestSubmitCommand.cxx, + cmCTestSubmitCommand.h, cmCTestTestCommand.cxx, + cmCTestTestCommand.h, cmCTestUpdateCommand.cxx, + cmCTestUpdateCommand.h: ENH: Improve syntax + +2005-05-04 11:13 andy + + * Source/cmGlobalGenerator.cxx: BUG: Fix bootstrap test on machines + with spaces in the path + +2005-05-04 11:12 andy + + * Source/kwsys/SystemTools.hxx.in: ENH: Expose + ConvertToUnixOutputPath + +2005-05-04 03:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-03 15:28 andy + + * Source/: cmCTest.cxx, cmCTest.h, CTest/cmCTestStartCommand.cxx: + ENH: Add Site and BuildName, make sure that the rest of the + default -S rule does not happen, and make sure that new tag will + be created + +2005-05-03 15:20 andy + + * Source/cmGlobalGenerator.cxx: ENH: No need to convert to output + path + +2005-05-03 15:19 king + + * Source/: cmDependsFortranLexer.cxx, cmDependsFortranLexer.in.l, + cmDependsJavaLexer.cxx, cmDependsJavaLexer.in.l: COMP: Removed + warnings about unreachable code and constant control expressions. + Added the changes to the instructions in the input lex files. + +2005-05-03 14:58 king + + * Source/: cmGeneratedFileStream.h, + cmLocalUnixMakefileGenerator2.h, cmStandardIncludes.h, + cmSystemTools.cxx, CTest/cmCTestUpdateHandler.h, + kwsys/CommandLineArguments.cxx, kwsys/SystemTools.cxx, + kwsys/testhash.cxx: COMP: Added pragma directives for SGI + compilers to avoid useless warnings. + +2005-05-03 14:57 king + + * Source/CursesDialog/: cmCursesLongMessageForm.cxx, + cmCursesMainForm.cxx: COMP: Changed while(1) to for(;;) to avoid + warning about constant control expression. + +2005-05-03 14:53 king + + * Source/kwsys/kwsysPlatformCxxTests.cxx: COMP: Removed stray + semicolon. + +2005-05-03 14:28 king + + * Source/cmStandardIncludes.h: COMP: Added hack to avoid SGI + termios.h warnings. + +2005-05-03 14:28 king + + * Source/: cmDependsJavaLexer.cxx, cmDependsJavaLexer.in.l: COMP: + Need #undef ECHO to avoid conflict with system ECHO definition. + +2005-05-03 14:27 king + + * Source/kwsys/RegularExpression.hxx.in: COMP: Changed type of + regmlen to avoid warnings when other lengths are converted to it. + +2005-05-03 10:02 king + + * Source/kwsys/testProcess.c: ENH: Adding test of running + executable with forward slashes on windows. + +2005-05-03 09:40 andy + + * Source/: cmCTest.cxx, cmCTest.h, CTest/cmCTestBuildCommand.cxx, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestConfigureCommand.cxx, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestCoverageHandler.cxx, + CTest/cmCTestMemCheckHandler.cxx, CTest/cmCTestStartCommand.cxx, + CTest/cmCTestSubmitCommand.cxx, CTest/cmCTestSubmitHandler.cxx, + CTest/cmCTestTestCommand.cxx, CTest/cmCTestUpdateCommand.cxx, + CTest/cmCTestUpdateHandler.cxx: ENH: Cleanups + +2005-05-03 08:17 andy + + * CTestConfig.cmake, Source/CMakeLists.txt, Source/cmCTest.cxx, + Source/cmCTest.h, Source/CTest/cmCTestBuildHandler.cxx, + Source/CTest/cmCTestScriptHandler.cxx, + Source/CTest/cmCTestSubmit.cxx, Source/CTest/cmCTestSubmit.h, + Source/CTest/cmCTestSubmitCommand.cxx, + Source/CTest/cmCTestSubmitCommand.h, + Source/CTest/cmCTestSubmitHandler.cxx, + Source/CTest/cmCTestSubmitHandler.h, + Source/CTest/cmCTestTestCommand.cxx, + Source/CTest/cmCTestTestCommand.h: ENH: Promote submit into a + full handler, add test and submit command and do some cleanups + +2005-05-03 04:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-02 15:51 andy + + * CTestConfig.cmake, Source/CTest/cmCTestBuildCommand.cxx, + Source/CTest/cmCTestScriptHandler.cxx: ENH: Make ctest build + command work + +2005-05-02 15:51 andy + + * Source/cmake.h: ENH: Make AddCMakePath public + +2005-05-02 15:50 andy + + * Source/cmGlobalGenerator.h: ENH: Make FindMakeProgram public + +2005-05-02 14:15 andy + + * CTestConfig.cmake, Source/CMakeLists.txt, Source/cmCTest.cxx, + Source/cmCTest.h, Source/CTest/cmCTestBuildCommand.cxx, + Source/CTest/cmCTestBuildCommand.h, + Source/CTest/cmCTestConfigureCommand.cxx, + Source/CTest/cmCTestConfigureCommand.h, + Source/CTest/cmCTestScriptHandler.cxx, + Source/CTest/cmCTestStartCommand.cxx, + Source/CTest/cmCTestUpdateCommand.cxx: ENH: More commands. Start + working on new style ctest configuration + +2005-05-02 03:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-05-01 03:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-30 15:36 andy + + * Source/cmGlobalXCodeGenerator.cxx: COMP: Remove warning + +2005-04-30 04:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-29 12:50 andy + + * Source/cmBuildCommand.cxx: ENH: Try to see if + GenerateBuildCommand produces apropriate result + +2005-04-29 11:49 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h: ENH: Add option to ignore errors. Only + works on make + +2005-04-29 10:11 king + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h: COMP: Converting + INSTALL->ALL_BUILD dependency implementation to use the + AddUtility method on a target. This significantly simplifies the + implementation and removes warnings about hiding virtual + functions. + +2005-04-29 10:07 andy + + * Source/cmGlobalXCodeGenerator.cxx: COMP: Remove warning + +2005-04-29 10:06 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: make install depend on + all + +2005-04-29 04:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-28 18:34 andy + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: Start working on command that will abstract generating of + build command + +2005-04-28 18:18 andy + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h: ENH: Start working on a method + that abstracts generating of build command + +2005-04-28 17:33 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h: ENH: Start + working on command that will abstract generating of build command + +2005-04-28 16:21 king + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h: ENH: Added dependency from + INSTALL target to ALL_BUILD target so that targets build before + being installed. + +2005-04-28 11:47 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: BUG: Avoid infinite loop during + installation. + +2005-04-28 09:21 king + + * Source/kwsys/testProcess.c: BUG: Extending all timeouts to help + out slower machines. + +2005-04-28 09:14 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Add internal error + +2005-04-28 05:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-27 11:46 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Added dependency + on all for install rule to make sure build is up to date before + installing. This behavior can be disabled by setting + CMAKE_SKIP_INSTALL_ALL_DEPENDENCY to true. + +2005-04-27 11:33 king + + * Source/cmSourceFile.cxx: BUG: Do not leave ../ in the full path + to a source file. Using CollapseFullPath simplifies the code + anyway. + +2005-04-27 10:01 king + + * Source/kwsys/testProcess.c: BUG: Extending timeout of test 6 from + 0.1 seconds to 3 seconds. This should avoid missed signals and + intermittent failures. + +2005-04-27 09:12 king + + * Tests/CustomCommand/CMakeLists.txt: BUG: Use copy to produce + doc1pre.txt instead of echo. The redirection does not like + forward slashes on Win9x. + +2005-04-27 04:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-26 17:11 king + + * Modules/: CMakeBackwardCompatibilityC.cmake, FindThreads.cmake: + BUG: Fix try-compile for sys/prctl.h. It needs to include + sys/types.h first according to the man page. + +2005-04-26 14:12 king + + * Source/CursesDialog/form/CMakeLists.txt, + Source/CursesDialog/form/internal_stdio_core.h.in, + Utilities/cmxmlrpc/CMakeLists.txt, + Utilities/cmxmlrpc/internal_stdio_core.h.in: ENH: Removing + stdio_core hack. A better work-around has been put in + cmStandardIncludes.h. + +2005-04-26 14:11 king + + * Source/cmStandardIncludes.h: COMP: Adding inclusion of stdarg.h + to work-around SGI header bug in 7.4.2m. + +2005-04-26 11:55 king + + * Tests/CustomCommand/CMakeLists.txt: ENH: Added pre-build and + post-build test for custom targets. + +2005-04-26 11:31 andy + + * Source/kwsys/SystemTools.cxx: BUG: Looks like std::string changes + the result of c_str() call. This fixes potential problems + +2005-04-26 11:15 andy + + * Source/cmakewizard.h: COMP: Remove warning + +2005-04-26 11:09 andy + + * Source/: cmakewizard.h, CTest/cmCTestUpdateHandler.cxx: COMP: + Remove warnings + +2005-04-26 11:08 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h: BUG: Fixed ordering of multiple + commands in a custom target when implemented as custom commands. + Also added support to execute pre-build rules first to be + consistent with makefile generator. + +2005-04-26 08:51 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Added inclusion of + pre-build rules for custom targets. + +2005-04-26 04:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-25 09:59 andy + + * Source/cmLocalGenerator.cxx: COMP: Remove warning + +2005-04-25 03:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-24 16:19 andy + + * Source/cmAddTestCommand.cxx: COMP: Fix problem on compilers that + cannot implicitly convert std::string to cmStdString + +2005-04-24 15:59 andy + + * bootstrap, Source/CMakeLists.txt, Source/cmAddTestCommand.cxx, + Source/cmAddTestCommand.h, Source/cmEnableTestingCommand.cxx, + Source/cmEnableTestingCommand.h, Source/cmGlobalGenerator.cxx, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, Source/cmTest.cxx, + Source/cmTest.h: ENH: Improve internal test handling by creating + a test class. Command cmEnableTesting now only sets + CMAKE_TESTING_ENABLED and cmAddTest only adds a test to the list. + The actual test files are written by local generator. This way we + can at some point in the future replace DartTestfile with some + XML file + +2005-04-24 14:28 andy + + * Source/cmCTest.cxx: BUG: The argument is --ctest-config + +2005-04-24 13:57 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Support for modified + and conflicts in subversion + +2005-04-24 13:15 king + + * Source/CursesDialog/form/CMakeLists.txt, + Utilities/cmxmlrpc/CMakeLists.txt: BUG: Older SGI compilers still + have internal/stdio_core.h but do not support #include_next. + We'll have to try-compile to test whether this hack is needed. + +2005-04-24 12:32 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: BUG: Remember if there was + update error + +2005-04-24 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-23 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-22 16:11 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, cmTarget.cxx, cmTarget.h: ENH: + Created cmTarget::GetLibraryNames to replace + cmLocalUnixMakefileGenerator2::GetLibraryNames. Added + cmTarget::GetLibraryCleanNames to be used by + cmLocalUnixMakefileGenerator2. Now when a library is linked both + the shared and static versions are removed from the build tree. + In this way we avoid having both kinds of libraries present when + the user switches BUILD_SHARED_LIBS on/off. This prevents + problems with turning off shared libraries and then expecting the + linker to use the static libraries only to find it is using the + out-of-date shared versions. + +2005-04-22 15:23 king + + * Source/: cmGetTargetPropertyCommand.cxx, cmLocalGenerator.cxx, + cmLocalGenerator.h, cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, cmTarget.cxx, cmTarget.h: ENH: + Added cmTarget::GetBaseName and cmTarget::GetFullName methods and + removed cmLocalGenerator::GetFullTargetName and + cmLocalUnixMakefileGenerator2::GetBaseTargetName. This + functionality is more sensibly implemented in cmTarget. It is + also needed for an upcoming feature in which both the shared and + static versions of a library will be removed before one is + linked. + +2005-04-22 13:52 king + + * Source/CTest/cmCTestUpdateHandler.cxx: COMP: Commented out unused + variable until the corresponding logic is finished. + +2005-04-22 11:57 king + + * Source/kwsys/: hashtable.hxx.in, kwsys_stl_string.hxx.in: COMP: + Removed line continuation characters from #if lines to avoid + linefeed problems on cygwin. + +2005-04-22 09:44 king + + * Source/kwsys/testProcess.c: BUG: Drastically extending test5's + timeouts to get it to pass when running on a heavily-loaded + machine. + +2005-04-22 09:22 king + + * Source/kwsys/SystemTools.cxx: COMP: Fixed + assignment-in-conditional warning. + +2005-04-22 09:21 king + + * Source/kwsys/CommandLineArguments.cxx: COMP: Fixed constant + conditional warning. + +2005-04-22 09:21 king + + * Source/kwsys/ProcessWin32.c: COMP: Fixed unused parameter and + constant conditional warnings. + +2005-04-22 03:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-21 18:23 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Reorganize a bit and + make sure to report an error if there are modified files or + conflicts + +2005-04-21 17:00 king + + * Source/CursesDialog/form/CMakeLists.txt, + Source/CursesDialog/form/form.h, + Source/CursesDialog/form/internal_stdio_core.h.in, + Utilities/cmxmlrpc/CMakeLists.txt, + Utilities/cmxmlrpc/internal_stdio_core.h.in, + Utilities/cmxmlrpc/xmlrpc.h: COMP: Using a new work-around for + stdarg.h problem on SGI. + +2005-04-21 16:46 king + + * Source/kwsys/hashtable.hxx.in: BUG: Fixed hash_allocator_n size + computation. + +2005-04-21 16:46 king + + * Source/kwsys/testhash.cxx: ENH: Added include-work-around for + hashtable.hxx.in dependency. + +2005-04-21 16:05 king + + * Source/kwsys/: ProcessUNIX.c, ProcessWin32.c: BUG: Do not close + stdout/stderr pipes in parent if they are shared. + +2005-04-21 13:56 king + + * Source/kwsys/SystemTools.hxx.in: COMP: Do not do va_list hack if + there is no std:: namespace. + +2005-04-21 13:47 king + + * bootstrap, Source/kwsys/CMakeLists.txt, + Source/kwsys/Configure.hxx.in, Source/kwsys/hashtable.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cxx: COMP: Added KWSys + try-compiles KWSYS_STL_HAS_ALLOCATOR_TEMPLATE and + KWSYS_STL_HAS_ALLOCATOR_OBJECTS. Needed for more old-stl support + in the hashtable. + +2005-04-21 09:33 andy + + * Utilities/cmxmlrpc/CMakeLists.txt: COMP: Do not build the file + when wide char is not set since the file would be empty + +2005-04-21 02:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-20 16:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-20 08:53 king + + * Source/kwsys/testProcess.c: BUG: Adjusting timeouts for tests 4 + and 5 to avoid early killing. + +2005-04-19 18:35 andy + + * Utilities/cmxmlrpc/xmlrpc.h: COMP: Attempt to fix problem with + building on SGI + +2005-04-19 18:26 andy + + * Source/: CursesDialog/form/form.h, kwsys/SystemTools.hxx.in: + COMP: Attempt to fix problem with building on SGI + +2005-04-19 11:52 king + + * Source/kwsys/ProcessUNIX.c: BUG: When killing a child all the + pipe read ends should be closed. This will allow a child that is + blocking while waiting to write to the pipe to wake up and + receive the kill signal properly on cygwin. + +2005-04-19 10:52 king + + * Source/kwsys/testProcess.c: BUG: Expanded difference in timeouts + between tests 4 and 5 so that 5 does not timeout while waiting + for 4 to timeout. This should fix the intermittent failure of + test 5 on cygwin. ENH: When a mismatch is reported it now + reports what it was as well as what it should have been. + +2005-04-19 09:52 king + + * Utilities/cmxmlrpc/xmlrpc_data.c: COMP: Fix MAKE_WCS_BLOCK_NULL + when HAVE_UNICODE_WCHAR is off. + +2005-04-19 09:52 king + + * Utilities/cmxmlrpc/xmlrpc_config.h.in: BUG: Need to use + #cmakedefine for HAVE_UNICODE_WCHAR. + +2005-04-19 09:52 king + + * Utilities/cmxmlrpc/CMakeLists.txt: BUG: Do not provide + HAVE_UNICODE_WCHAR option if wchar.h is not available. + +2005-04-15 18:57 king + + * Source/kwsys/kwsysPlatformCxxTests.cxx: BUG: For some reason the + non-template allocator test compiles on VS6 even though its + allocator is a template. Adding ::size_type to be sure it + accesses a member of the allocator. + +2005-04-15 18:49 king + + * Source/kwsys/kwsysPlatformCxxTests.cxx: BUG: Fix iterator traits + test to use a real iterator instead of int*. + +2005-04-15 16:10 king + + * Source/kwsys/CMakeLists.txt: BUG: Cannot use Win32 implementation + for cygwin processes because then cygwin paths to executables + like /usr/bin/ls are not found. + +2005-04-15 16:00 king + + * bootstrap, Source/kwsys/CMakeLists.txt, + Source/kwsys/Configure.hxx.in, Source/kwsys/hash_fun.hxx.in, + Source/kwsys/hashtable.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cxx, + Source/kwsys/kwsys_cstddef.hxx.in: COMP: Added + KWSYS_CXX_HAS_CSTDDEF try-compile to KWSys to provide + kwsys/cstddef header (to get size_t for hash_fun.hxx). + +2005-04-15 15:30 king + + * Source/kwsys/: hash_map.hxx.in, hash_set.hxx.in, + hashtable.hxx.in: COMP: Replaced kwsys_stl with + @KWSYS_NAMESPACE@_stl to properly use the configured namespace. + +2005-04-15 15:18 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: move + convenience method to get OS name and version from KWApp to + KWSys. + +2005-04-15 14:47 andy + + * Source/cmCTest.cxx: STYLE: Fix english + +2005-04-15 13:56 king + + * Source/kwsys/SystemTools.cxx: BUG: Added missing variable + initialization that was accidentally removed on the previsous + commit. + +2005-04-15 13:35 king + + * Source/kwsys/CMakeLists.txt: ENH: Changing kwsysProcess + implementation on Cygwin to use the Win32 implementation instead + of the UNIX implementation. This makes dealing with misbehaving + children work better. The KWSys Win32 process implementaion is + more robust than the Cygwin implementation (partly because it + doesn't have to exactly reproduce the POSIX api). + +2005-04-15 10:46 hoffman + + * Source/cmTryCompileCommand.cxx: BUG: work around for buggy Tigger + OSX systems that read two copies of the same file in a directory + +2005-04-15 09:54 king + + * bootstrap, Source/kwsys/CMakeLists.txt, + Source/kwsys/Configure.hxx.in, Source/kwsys/hash_map.hxx.in, + Source/kwsys/hash_set.hxx.in, Source/kwsys/hashtable.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cxx: ENH: Added KWSys + try-compiles KWSYS_STL_HAS_ITERATOR_TRAITS, + KWSYS_STL_HAS_ITERATOR_CATEGORY, + KWSYS_STL_HAS___ITERATOR_CATEGORY, and + KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE to get the hash table to + compile on old HP and Sun compilers. + +2005-04-15 09:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-15 09:05 king + + * Source/kwsys/hash_map.hxx.in: COMP: Replacing _Select1st with a + specialized hash_select1st that avoids requiring the stl pair to + have first_type defined. The old HP STL does not define + first_type and second_type in its pair. + +2005-04-15 08:59 king + + * bootstrap, Source/kwsys/CMakeLists.txt, + Source/kwsys/Configure.hxx.in, Source/kwsys/hashtable.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cxx: ENH: Added + KWSYS_CXX_HAS_ARGUMENT_DEPENDENT_LOOKUP try-compile to KWSys. + Needed to optionally bring hash table comparison operators into + the global namespace when argument dependent lookup is not + supported. + +2005-04-15 08:25 king + + * Source/kwsys/SystemTools.cxx: COMP: Removed extra variable + initializations to avoid Borland warnings. + +2005-04-14 04:50 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-13 23:04 king + + * Source/kwsys/: hash_map.hxx.in, hash_set.hxx.in, + hashtable.hxx.in: COMP: Remove friend templates and always use + template friends (possibly with <>). Needed to work-around Sun + CC bug. + +2005-04-13 23:03 king + + * Source/kwsys/testSystemTools.cxx: COMP: Disable MSVC debug symbol + truncation warning. + +2005-04-13 18:13 andy + + * Source/cmGeneratedFileStream.cxx: ENH: For sanity, create + directory before creating generated file stream + +2005-04-13 17:58 king + + * Source/CMakeLists.txt: BUG: The test1 executable has been removed + from kwsys. Instead using testIOS for the kwsys test. + +2005-04-13 16:58 king + + * Source/kwsys/CMakeLists.txt: STYLE: Renaming kwsys-hash test to + kwsys-testhash for consistency with other tests. + +2005-04-13 16:55 king + + * Source/kwsys/testProcess.c: COMP: Removing return value from + test6. It is an infinite loop, so the return causes warnings. + It will never return anyway. + +2005-04-13 16:47 king + + * Source/kwsys/: CMakeLists.txt, test1.cxx: ENH: Removing old + test1.c Process execution example. It is fully replaced by + testProcess. + +2005-04-13 16:46 king + + * Source/kwsys/: Base64.c, CommandLineArguments.cxx, Directory.cxx, + ProcessUNIX.c, ProcessWin32.c, RegularExpression.cxx, + SystemTools.cxx, test1.cxx, testCommandLineArguments.cxx, + testIOS.cxx, testProcess.c, testSystemTools.cxx, testhash.cxx: + COMP: Adding work-around for CMake dependency scanning + limitation. Any configured header included by KWSYS_HEADER() in + a .c or .cxx file in kwsys itself must use this hack to get + dependencies. + +2005-04-13 16:35 andy + + * Source/: cmMakefile.cxx, cmSourceFile.cxx, cmSourceFile.h: ENH: + Speedup by storing source name without last extension + +2005-04-13 16:34 andy + + * Source/cmTarget.cxx: ENH: Speedup by only getting the source once + +2005-04-13 16:25 andy + + * Source/cmSystemTools.cxx: ENH: Improve performance by using + vector of char instead of string + +2005-04-13 16:05 king + + * Source/kwsys/testSystemTools.cxx: BUG: Only do ~ test if HOME + variable is defined. + +2005-04-13 15:57 king + + * Source/kwsys/testProcess.c: BUG: Avoid error diagnostic popups on + windows for test that crashes on purpose. + +2005-04-13 15:39 king + + * bootstrap, Source/kwsys/CMakeLists.txt, + Source/kwsys/Configure.hxx.in, Source/kwsys/hashtable.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cxx: COMP: Added + KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT check for non-standard + argument to stl allocator<>::max_size method. Needed for kwsys + hashtable to compile on Sun CC. + +2005-04-13 15:29 king + + * Source/kwsys/kwsysPlatformCxxTests.cxx: BUG: + allocator<>::rebind<> test should use kwsys_stl::allocator, not + std::allocator. + +2005-04-13 15:22 king + + * Source/kwsys/hashtable.hxx.in: COMP: Fix for Sun CC stl allocator + signature of allocate method. + +2005-04-13 15:04 king + + * Source/kwsys/hashtable.hxx.in: BUG: When constructing the bucket + vector type the allocator given must have been rebound to _Node* + already because GCC 3.4's vector type does not rebind it. + +2005-04-13 14:43 king + + * Source/cmTryCompileCommand.cxx: ENH: Added better error message + when TRY_COMPILE does not recognize an extension. + +2005-04-13 14:37 king + + * Source/kwsys/SystemTools.cxx: BUG: Fix GetFilenameName to not use + uninitialized search position in win32 version. + +2005-04-13 14:13 king + + * bootstrap: BUG: Added more try-compiles from kwsys. + +2005-04-13 14:13 king + + * Source/kwsys/kwsysPlatformCxxTests.cxx: BUG: Fixed member + template test to not produce a test program that crashes when it + runs. + +2005-04-13 13:59 andy + + * Source/kwsys/SystemTools.cxx: ENH: Speedup improvements + +2005-04-13 13:57 andy + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, Process.h.in, + ProcessUNIX.c, ProcessWin32.c, test1.cxx, + testCommandLineArguments.cxx, testIOS.cxx, testProcess.c, + testSystemTools.cxx, testhash.cxx: ENH: Do kwsys testing as part + of cmake testing, command line arguments are not experimental and + add simple test for systemtools + +2005-04-13 13:43 hoffman + + * Utilities/Release/cmake_release.sh: BUG: fix clean action + +2005-04-13 12:44 hoffman + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: Move minor + version to 2.0.6 + +2005-04-13 09:54 hoffman + + * Source/: cmLocalVisualStudio7Generator.cxx, + kwsys/SystemTools.cxx: BUG: fix insert for 64 bit + +2005-04-13 08:08 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, hash_fun.hxx.in, + hash_map.hxx.in, hash_set.hxx.in, hashtable.hxx.in, + kwsysPlatformCxxTests.cxx, testhash.cxx: ENH: Adding SGI hash_map + and hash_set implementation ported from STL to KWSys. This also + adds try-compiles for KWSYS_STL_HAS_ALLOCATOR_REBIND, + KWSYS_CXX_HAS_FULL_SPECIALIZATION, + KWSYS_CXX_HAS_MEMBER_TEMPLATES, and + KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS. + +2005-04-13 08:05 king + + * Source/kwsys/kwsys_stl.hxx.in: ENH: Added + __HPACC_USING_MULTIPLIES_IN_FUNCTIONAL fix from vtkstd. + +2005-04-13 04:39 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-12 15:40 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: fix Ambiguity in + insert call + +2005-04-12 15:11 hoffman + + * Source/cmLocalGenerator.cxx: BUG: add missing header for borland + +2005-04-12 13:33 king + + * Source/kwsys/SystemTools.cxx: COMP: Fixed ambiguous call to + insert method of string. + +2005-04-12 13:27 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalVisualStudio7Generator.cxx, cmMacroCommand.cxx, + cmMakefile.cxx, cmMakefile.h: ENH: performance improvements + +2005-04-12 13:26 hoffman + + * Source/cmDepends.cxx: ENH: do not collapse full path for cwd + +2005-04-12 13:26 hoffman + + * Source/cmCacheManager.cxx: ENH: make regex static so it is not + recomputed for each line of the cache + +2005-04-12 13:25 hoffman + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: + optimization of cwd and do not leak library handle + +2005-04-12 09:36 martink + + * Source/cmLocalGenerator.cxx: BUG: local gen was setting proj dir + when it shouldnt + +2005-04-12 09:35 martink + + * Tests/OutOfSource/OutOfSourceSubdir/CMakeLists.txt: ENH: also + test for correct Proj dir settings + +2005-04-12 03:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-11 12:38 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx: BUG: fix GetLongPathName + for all versions of windows + +2005-04-11 12:20 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: fix GetLongPathName for + WindowsNT + +2005-04-11 04:58 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-10 04:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-09 02:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-08 12:46 hoffman + + * Source/: cmOrderLinkDirectories.cxx, cmOrderLinkDirectories.h: + BUG: handle case insensitive library extensions on windows + +2005-04-08 08:34 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: fix build on mingw + +2005-04-08 02:37 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-07 17:39 hoffman + + * Source/cmakemain.cxx: BUG: move fix for -E option to branch + +2005-04-07 17:24 hoffman + + * Tests/CommandLineTest/CMakeLists.txt: merge from main tree fix + for command line test + +2005-04-07 17:22 hoffman + + * Source/cmCTest.cxx: BUG: add error checking on GetLongPath + +2005-04-07 17:20 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: if short path or long path + fails return the original input + +2005-04-07 16:58 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: check return value of + GetLongPath + +2005-04-07 16:12 hoffman + + * ChangeLog.manual, Source/cmSystemTools.cxx, + Source/cmWin32ProcessExecution.cxx, + Source/cmWin32ProcessExecution.h: Merge in fix for win32 process + stuff + +2005-04-07 16:09 hoffman + + * Modules/Platform/Darwin.cmake, Source/cmGlobalXCodeGenerator.cxx: + ENH: fix install test with xcode, the xcode generator does not + support library versioning yet + +2005-04-07 15:09 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Avoid converting + the subdirectory name to a relative path twice. + +2005-04-07 14:41 king + + * Source/cmMakefile.cxx: BUG: Do not repeat paths when trying the + lib/ to lib64/ replacement. + +2005-04-07 14:30 king + + * Source/cmMakefile.cxx: ENH: Adding automatic generation of + several 64-bit search path forms. + +2005-04-07 14:27 king + + * Modules/: CMakeDetermineJavaCompiler.cmake, FindAVIFile.cmake, + FindFLTK.cmake, FindGLUT.cmake, FindGTK.cmake, FindJNI.cmake, + FindJPEG.cmake, FindJava.cmake, FindMPEG.cmake, FindMPEG2.cmake, + FindOpenGL.cmake, FindPHP4.cmake, FindPNG.cmake, + FindPerlLibs.cmake, FindPythonLibs.cmake, FindQt.cmake, + FindRuby.cmake, FindSDL.cmake, FindSWIG.cmake, FindTCL.cmake, + FindTIFF.cmake, FindX11.cmake, FindZLIB.cmake: ENH: Removing + extra 64-bit search paths. They are now constructed + automatically from the paths listed. + +2005-04-07 13:48 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Fix rule name for + subdirectory traversal to use relative paths. This was broken by + the recent subdirectory changes. + +2005-04-07 13:46 king + + * Modules/: CMakeDetermineJavaCompiler.cmake, FindAVIFile.cmake, + FindFLTK.cmake, FindGLUT.cmake, FindGTK.cmake, FindJNI.cmake, + FindJPEG.cmake, FindJava.cmake, FindMPEG.cmake, FindMPEG2.cmake, + FindOpenGL.cmake, FindPHP4.cmake, FindPNG.cmake, + FindPerlLibs.cmake, FindPythonLibs.cmake, FindQt.cmake, + FindRuby.cmake, FindSDL.cmake, FindSWIG.cmake, FindTCL.cmake, + FindTIFF.cmake, FindX11.cmake, FindZLIB.cmake: ENH: Adding + support for 64-bit library paths. Contributed by Peter Vanroose. + +2005-04-07 13:03 hoffman + + * Source/: CTest/cmCTestBuildHandler.cxx, kwsys/SystemTools.cxx, + kwsys/SystemTools.hxx.in: BUG: fix for bug 1717 incorrect path + sent to dart server + +2005-04-07 12:44 hoffman + + * Source/cmCTest.cxx: BUG: remove debug statement + +2005-04-07 12:12 hoffman + + * ChangeLog.manual, Source/cmSystemTools.cxx, + Source/cmSystemTools.h: move fix for relative paths from main + tree + +2005-04-07 12:11 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx: BUG: fix for bug 1717 use + the correct path for Dart server on warnings and errors + +2005-04-07 10:37 hoffman + + * ChangeLog.manual, Source/cmInstallProgramsCommand.cxx, + Source/cmInstallProgramsCommand.h: move from main tree + +2005-04-07 02:31 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-06 16:53 king + + * Modules/Dart.cmake: STYLE: Fixed spelling of "memmory". + +2005-04-06 16:15 king + + * Source/cmStandardIncludes.h: BUG: Avoid duplicate definition by + using cmsys_STL_STRING_NEQ_CHAR_DEFINED and + cmsys_STL_STRING_NO_NEQ_CHAR. + +2005-04-06 16:14 king + + * Source/kwsys/kwsys_stl_string.hxx.in: ENH: Added proper + namespaced version of KWSYS_STL_STRING_ISTREAM_DEFINED, + KWSYS_STL_STRING_OSTREAM_DEFINED, and + _STL_STRING_NEQ_CHAR_DEFINED macros. + +2005-04-06 15:06 king + + * Modules/Platform/Darwin-xlc.cmake, Modules/Platform/Darwin.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx, + Tests/Fortran/CMakeLists.txt, + Tests/MakeClean/ToClean/CMakeLists.txt: ENH: Removed + CMAKE_GENERATOR_NEW now that the old unix makefile generator is + never used. + +2005-04-06 13:34 king + + * bootstrap: BUG: The bootstrap script should perform the + KWSYS_STL_STRING_HAVE_NEQ_CHAR test for kwsys. + +2005-04-06 11:56 hoffman + + * Source/cmMakefile.cxx: ENH: better fix for 64 bit, add 64 to the + name of all directories in the search path + +2005-04-06 10:59 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: allow sub projects to use + targets that are not part of the sub-project + +2005-04-06 09:47 hoffman + + * Source/kwsys/SystemTools.cxx: remove cerr stuff + +2005-04-06 09:44 hoffman + + * Source/kwsys/SystemTools.cxx: Fix bug in != stuff + +2005-04-06 04:28 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-05 21:10 hoffman + + * Source/kwsys/SystemTools.cxx: COMP: hack fix for old sgi until + bootstrap is fixed + +2005-04-05 17:06 hoffman + + * Modules/CMakeTestCCompiler.cmake, Source/cmMakefile.cxx: BUG: try + to address Bug 1673 . + +2005-04-05 16:24 hoffman + + * Modules/FindOpenGL.cmake: Fix for bug Bug #1287 - cmake use + MesaGL by default instead of libGL - Return to bug list + +2005-04-05 14:48 hoffman + + * Source/cmAuxSourceDirectoryCommand.cxx: BUG: fix for bug 1636 add + extensions to AUX_SOURCE_DIRECTORY files + +2005-04-05 13:39 hoffman + + * ChangeLog.manual, Modules/FindDCMTK.cmake: Move from main tree, + fix for 1652 + +2005-04-05 13:37 hoffman + + * Modules/FindDCMTK.cmake: BUG: fix for bug 1652 + +2005-04-05 13:30 hoffman + + * ChangeLog.manual, Source/cmLocalVisualStudio7Generator.cxx: fix + on branch for 1660 language NONE working + +2005-04-05 13:14 hoffman + + * Source/cmGlobalGenerator.cxx: BUG: fix for bug 1660 + +2005-04-05 12:54 hoffman + + * ChangeLog.manual: fixes on branch + +2005-04-05 12:52 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: BUG: fix for bug 1702 better + error on bad GUID + +2005-04-05 12:51 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: move fix from main + tree for bug 1680 + +2005-04-05 11:23 hoffman + + * Source/cmake.cxx: BUG: fix for bug 1700 + +2005-04-05 10:22 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: BUG: fix for bug 1702, better + error message for GUID missing + +2005-04-05 08:25 king + + * Source/: cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: ENH: + Added Close method and updated Open method to allow streams to be + reused. + +2005-04-05 04:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-04 17:01 hoffman + + * ChangeLog.manual, Modules/UseSWIG.cmake, + Source/cmGetDirectoryPropertyCommand.cxx: FIX: swig fixes from + main tree + +2005-04-04 16:55 hoffman + + * Modules/UseSWIG.cmake: ENH: make sure source flags don't have to + be set + +2005-04-04 16:43 hoffman + + * Source/cmGetDirectoryPropertyCommand.cxx: ENH: get directory + property should return an empty variable if it is not set, not + just have an error + +2005-04-04 16:13 hoffman + + * Modules/UseSWIG.cmake: ENH: fix for bug 1304 + +2005-04-04 15:55 hoffman + + * ChangeLog.manual, Modules/UseSWIG.cmake: ENH: move changes from + main tree + +2005-04-04 15:52 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx: ENH: move from main tree + timezone fix + +2005-04-04 15:51 hoffman + + * Modules/UseSWIG.cmake: FIX: fix for bug 1730 + +2005-04-04 15:41 hoffman + + * ChangeLog.manual, Source/cmFileCommand.cxx, + Source/cmWriteFileCommand.cxx, Source/kwsys/SystemTools.cxx: ENH: + move fix for read only file configure to branch + +2005-04-04 12:22 andy + + * Modules/Dart.cmake, Source/cmAddTestCommand.cxx, + Source/cmEnableTestingCommand.cxx, Source/cmGlobalGenerator.cxx: + BUG: By default disable new files. + +2005-04-04 03:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-03 03:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-02 02:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-04-01 15:48 andy + + * Source/: cmAddTestCommand.cxx, cmEnableTestingCommand.cxx, + cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmMakefile.cxx, cmMakefile.h: + ENH: More ctest changes and move SetupTest to superclass + +2005-04-01 15:45 andy + + * Modules/Dart.cmake, Source/cmCTest.cxx: ENH: Rename the + DartConfiguration.tcl to CTestConfiguration.ini + +2005-04-01 14:57 andy + + * Source/: cmAddTestCommand.cxx, cmCTest.cxx, cmCTest.h, + cmEnableTestingCommand.cxx, ctest.cxx, + CTest/cmCTestTestHandler.cxx: ENH: Start adding support for CTest + testfiles + +2005-04-01 02:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-31 18:03 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: When generating + the name of the custom rule file the character : should be + replaced with an underscore because it might be a non-file-name + part of a path. + +2005-03-31 11:57 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: BUG: fix ITK build with xcode, + as long as you build it in little parts, this fixes the headermap + problem + +2005-03-31 10:00 martink + + * CTestCustom.ctest.in: ENH: shut up warning in 3rd party packages + +2005-03-31 02:20 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-30 16:11 king + + * Source/cmCTest.cxx: BUG: It is possible for the nightly start + time to be over 24 hours in the future which requires two days to + be subtracted. Using a while loop to make sure enough days are + added or subtracted. It should never be able to iterate more + than twice. + +2005-03-30 15:41 hoffman + + * ChangeLog.manual, Source/cmLocalVisualStudio7Generator.cxx: FIX: + Merge from main tree: fix for VS 2005 beta + +2005-03-30 15:27 king + + * Source/kwsys/CMakeLists.txt: BUG: Test for stl stirng operator!= + for char* needs to know result of KWSYS_STL_HAVE_STD. + +2005-03-30 02:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-29 15:34 martink + + * Source/: cmGlobalGenerator.cxx, cmMakefile.cxx, cmMakefile.h: + ENH: removed GetParentProjects + +2005-03-29 15:33 martink + + * Tests/OutOfSource/SubDir/CMakeLists.txt: ENH: better test for + subdirs + +2005-03-29 15:26 henderson + + * Source/kwsys/: CMakeLists.txt, SharedForward.h.in: ENH: copying + Brad's installation changes from the main tree to the ParaView + 2.0 branch + +2005-03-29 10:34 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: BUG: Fix dependencies of custom + commands that are relative paths to files or other custom command + outputs. + +2005-03-29 10:10 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + kwsysPlatformCxxTests.cxx, kwsys_stl_string.hxx.in: ENH: Added + operator!= for stl string and char* when the system does not + provide one. + +2005-03-29 08:20 king + + * bootstrap, Source/kwsys/CMakeLists.txt, + Source/kwsys/Configure.hxx.in, + Source/kwsys/kwsysPlatformCxxTests.cmake, + Source/kwsys/kwsysPlatformCxxTests.cxx, + Source/kwsys/kwsys_stl.h.in, Source/kwsys/kwsys_stl.hxx.in, + Source/kwsys/kwsys_stl_string.hxx.in: ENH: Added istream and + ostream operators for stl string in KWSys when using old streams + that do not provide them. + +2005-03-29 08:09 king + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: + SplitPath now supports slashes in both directions in the input + path but still produces forward slashes in the root component. + +2005-03-29 02:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-28 18:00 andy + + * bootstrap: BUG: The is replaced by cvs... This is safer anyway + +2005-03-28 17:46 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: move + EstimateFormatLength to kwsys + +2005-03-28 13:20 martink + + * Source/MFCDialog/: CMakeLists.txt, CMakeSetup.rc, + CMakeSetupDialog.cpp, CMakeSetupDialog.h, resource.h, + CMakeGenDialog.cpp, CMakeGenDialog.h: ENH: change how the + generator is selected and what the last one used was + +2005-03-28 02:12 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-27 02:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-26 09:58 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + kwsysPlatformCxxTests.cmake, kwsysPlatformCxxTests.cxx, + kwsys_stl.h.in, kwsys_stl.hxx.in, kwsys_stl_string.hxx.in: COMP: + Removing stl string io operators change until the CMake bootstrap + script can be fixed. + +2005-03-26 08:19 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + kwsysPlatformCxxTests.cmake, kwsysPlatformCxxTests.cxx, + kwsys_stl.h.in, kwsys_stl.hxx.in, kwsys_stl_string.hxx.in: ENH: + Added istream and ostream operators for stl string when using old + streams that do not provide them. + +2005-03-26 02:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-25 18:55 andy + + * Source/CMakeLists.txt: ENH: When in-source build, do not do + bootstrap test + +2005-03-25 18:46 andy + + * Source/: CMakeLists.txt, CTest/Curl/CMakeLists.txt: ENH: Remove + curl build testing + +2005-03-25 16:40 king + + * Source/cmAddSubDirectoryCommand.h: ENH: Clarified documentation + of the command. + +2005-03-25 14:23 andy + + * bootstrap: ENH: For development versions report version when + doing bootstrap + +2005-03-25 08:41 king + + * Source/kwsys/: CMakeLists.txt, SharedForward.h.in: ENH: Adding + SharedForward C header to help create forwarding executables on + UNIX systems that configure the shared library runtime search + path and then replace themselves with the real executable. This + is useful to create binary distributions that work from any + extracted location even with shared libraries. + +2005-03-25 08:09 king + + * Source/kwsys/SystemTools.cxx: ENH: Re-implemented + CollapseFullPath to not need to change directories. Operation is + now fully string based. + +2005-03-25 08:05 king + + * Source/cmCTest.cxx: BUG: Adjusted GetNightlyTime computation to + not depend on time_t being a signed type. + +2005-03-25 02:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-24 02:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-23 08:20 hoffman + + * Source/cmBuildCommand.cxx: fix for xcode + +2005-03-23 02:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-22 14:27 hoffman + + * Source/cmDynamicLoader.h: FIX: fix bug 1690 + +2005-03-22 14:00 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: try to handle more source + file types + +2005-03-22 13:32 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: just use the file name + +2005-03-22 11:33 hoffman + + * Source/cmGlobalGenerator.cxx: ENH: make sure project map is + cleared each time. + +2005-03-22 10:29 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: use better names for + files + +2005-03-22 10:23 king + + * Source/cmMakefile.cxx: BUG: Initializing from parent should copy + link directories as well. + +2005-03-22 08:36 king + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomTargetCommand.cxx: ENH: Added check for invalid + characters in output name. + +2005-03-22 07:27 hoffman + + * Source/cmLocalGenerator.cxx: ENH: remove commented code + +2005-03-22 07:26 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: fix adding of rc + files + +2005-03-22 02:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-21 02:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-20 02:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-19 09:05 martink + + * Source/cmGlobalGenerator.cxx: COMP: fix warning + +2005-03-19 02:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-18 11:29 martink + + * Source/cmMacroCommand.cxx: COMP: fix warning + +2005-03-18 10:58 martink + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: remove cmSubDirectory from + unused files? + +2005-03-18 10:41 martink + + * Source/cmAddDefinitionsCommand.h, Source/cmAddTestCommand.cxx, + Source/cmBootstrapCommands.cxx, Source/cmBuildCommand.h, + Source/cmBuildNameCommand.h, Source/cmCMakeMinimumRequired.h, + Source/cmCommand.h, Source/cmCreateTestSourceList.h, + Source/cmElseCommand.h, Source/cmEnableLanguageCommand.h, + Source/cmEnableTestingCommand.cxx, + Source/cmEnableTestingCommand.h, Source/cmEndForEachCommand.h, + Source/cmEndIfCommand.h, Source/cmEndWhileCommand.h, + Source/cmFileCommand.h, Source/cmFindFileCommand.h, + Source/cmFindLibraryCommand.h, Source/cmFindPackageCommand.cxx, + Source/cmFindPackageCommand.h, Source/cmFindPathCommand.h, + Source/cmFindProgramCommand.h, Source/cmForEachCommand.h, + Source/cmGetFilenameComponentCommand.h, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmIfCommand.h, Source/cmIncludeCommand.h, + Source/cmIncludeDirectoryCommand.h, + Source/cmIncludeRegularExpressionCommand.h, + Source/cmLinkDirectoriesCommand.h, + Source/cmLinkLibrariesCommand.h, Source/cmLoadCacheCommand.h, + Source/cmLoadCommandCommand.cxx, Source/cmLoadCommandCommand.h, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalKdevelopGenerator.cxx, + Source/cmLocalKdevelopGenerator.h, + Source/cmLocalUnixMakefileGenerator2.cxx, + Source/cmLocalUnixMakefileGenerator2.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio6Generator.h, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, + Source/cmMacroCommand.cxx, Source/cmMacroCommand.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmMarkAsAdvancedCommand.h, Source/cmOptionCommand.h, + Source/cmProjectCommand.h, Source/cmRemoveCommand.h, + Source/cmRemoveDefinitionsCommand.h, + Source/cmSeparateArgumentsCommand.h, Source/cmSetCommand.h, + Source/cmSetDirectoryPropertiesCommand.h, + Source/cmSiteNameCommand.h, Source/cmSourceGroupCommand.h, + Source/cmStringCommand.h, Source/cmSubdirCommand.cxx, + Source/cmUtilitySourceCommand.h, Source/cmWhileCommand.h, + Tests/OutOfSource/CMakeLists.txt, + Tests/OutOfSource/SubDir/CMakeLists.txt: ENH: big change that + includes immediate subdir support, removing the notion of + inherited commands, makefiles no longer read in the parent + makefiles but instead inherit thier parent makefiles current + settings + +2005-03-18 10:39 martink + + * Source/: cmAddSubDirectoryCommand.cxx, + cmAddSubDirectoryCommand.h: ENH: added immediate subdirectory + command + +2005-03-18 09:03 martink + + * Source/cmSubDirectory.h: ENH: bad idea + +2005-03-18 02:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-17 18:37 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Need to collapse + full paths before depending on them to remove ./ and ../ to make + sure target names match. + +2005-03-17 15:35 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: add source groups xcode + +2005-03-17 13:06 king + + * Source/kwsys/SystemTools.cxx: COMP: Using proper __QNX__ + preprocessor test. + +2005-03-17 02:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-16 15:31 andy + + * Utilities/cmxmlrpc/: CMakeLists.txt, win32_pthreads.c: COMP: Fix + more pthreads problems on windows + +2005-03-16 13:26 andy + + * CMakeLists.txt, Source/CTest/Curl/CMakeLists.txt, + Source/CTest/Curl/urldata.h, Utilities/cmexpat/CMakeLists.txt, + Utilities/cmxmlrpc/CMakeLists.txt, + Utilities/cmzlib/CMakeLists.txt: COMP: More cleanups + +2005-03-16 13:24 andy + + * Utilities/cmxmlrpc/xmlrpc_curl_transport.c: COMP: Remove warnings + +2005-03-16 12:54 andy + + * Source/: CMakeLists.txt, CTest/Curl/CMakeLists.txt, + CTest/Curl/config.h.in, CTest/Curl/urldata.h: ENH: Make sure to + use internal zlib + +2005-03-16 12:54 andy + + * Source/CTest/cmCTestSubmit.cxx: ENH: Cleanup of the output + +2005-03-16 11:10 andy + + * Utilities/cmxmlrpc/CMakeLists.txt: BUG: No need to link threads + libraries when pthreads are not found + +2005-03-16 10:49 king + + * Source/kwsys/SystemTools.cxx: COMP: Only include malloc.h on QNX. + +2005-03-16 10:15 barre + + * Source/kwsys/SystemTools.cxx: FIX: that was wrong + +2005-03-16 09:55 king + + * Source/CMakeLists.txt, Tests/Wrapping/CMakeLists.txt: BUG: Do not + add Qt wrapping test unless QT is found and QT_UIC_EXECUTABLE is + found. + +2005-03-16 09:41 king + + * Source/kwsys/SystemTools.cxx: COMP: Need malloc.h for malloc/free + on QNX. + +2005-03-16 02:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-15 11:22 martink + + * Source/cmEnableTestingCommand.cxx: ENH: only support rel paths + for now + +2005-03-15 08:14 king + + * Source/: cmListFileLexer.c, cmListFileLexer.in.l: COMP: Defining + YY_NO_INPUT to remove compilation of unused yyinput function. It + was producing a warning about unreachable code. + +2005-03-15 08:13 king + + * Source/cmCacheManager.cxx: COMP: Removed warning due to unsigned + enum type. + +2005-03-15 02:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-14 13:23 hoffman + + * Source/: CMakeLists.txt, cmake.cxx: ENH: make xcode compile only + on apple + +2005-03-14 12:25 martink + + * bootstrap: ENH: oops forgot to chek this in + +2005-03-14 12:18 hoffman + + * Modules/Platform/QNX.cmake: ENH: try to fix rpath on qnx + +2005-03-14 11:28 martink + + * Source/: CMakeLists.txt, cmEnableTestingCommand.cxx, + cmGlobalGenerator.cxx, cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, cmLocalGenerator.cxx, + cmLocalGenerator.h, cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h, + cmLocalUnixMakefileGenerator2.cxx, cmMakefile.cxx, cmMakefile.h, + cmSubdirCommand.cxx, cmGlobalVisualStudio6Generator.cxx: ENH: add + support for out of source source + +2005-03-14 11:26 martink + + * Tests/OutOfSource/: CMakeLists.txt, + OutOfSourceSubdir/CMakeLists.txt, OutOfSourceSubdir/simple.cxx, + SubDir/CMakeLists.txt: ENH: added new test for out of dir source + trees + +2005-03-14 09:23 martink + + * Source/cmSubDirectory.h: ENH: added new structure to hold + subdirectories + +2005-03-14 08:15 king + + * Source/: cmDependsFortranParser.cxx, cmDependsFortranParser.y: + COMP: Added __INTEL_COMPILER to test for yyerrorlab warning + suppression. + +2005-03-14 03:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-13 03:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-12 02:35 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-11 13:12 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: try to see if + there is still a problem + +2005-03-11 12:56 king + + * Source/CTest/cmCTestScriptHandler.cxx: BUG: Do not report an + error removing the binary directory if it doesn't exist. + +2005-03-11 11:48 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: add last + two small funcs from vtkString. Done removing deps + +2005-03-11 10:53 andy + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + FIX: fix crashing test SubDir for xcode + +2005-03-11 10:43 barre + + * Source/kwsys/: SystemTools.hxx.in, SystemTools.cxx: ENH: update + documentation, sort methods into categories + +2005-03-11 10:29 hoffman + + * Source/ctest.cxx: FIX: fix output of passing tests + +2005-03-11 10:15 king + + * Modules/Platform/QNX.cmake: ENH: Initial attempt at QNX support. + Submitted by Tim Arney. + +2005-03-11 10:07 king + + * Source/kwsys/: CommandLineArguments.cxx, RegularExpression.cxx, + SystemTools.cxx: COMP: Added missing include of string.h. + +2005-03-11 10:03 king + + * Source/cmStandardIncludes.h: COMP: Adding stdlib.h to standard + includes. We are using functions from it all over the place + assuming it has been included here. + +2005-03-11 09:31 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: COMP: fix + some warnings + +2005-03-11 08:38 martink + + * Source/cmake.cxx: COMP: fix a warning + +2005-03-11 02:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-10 17:49 barre + + * Source/kwsys/SystemTools.cxx: ENH: remove deps to vtkString by + using KWSys (a handful of functions have been moved to KWSys) + +2005-03-10 17:44 barre + + * Source/kwsys/: SystemTools.hxx.in, SystemTools.cxx: ENH: remove + deps to vtkString by using KWSys (a handful of functions have + been moved to KWSys) + +2005-03-10 17:34 barre + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: remove + deps to vtkString by using KWSys (a handful of functions have + been moved to KWSys) + +2005-03-10 13:39 martink + + * Source/: cmExportLibraryDependencies.cxx, cmGlobalGenerator.cxx, + cmGlobalGenerator.h, cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmMakefile.cxx, cmMakefile.h, + cmTryCompileCommand.cxx, cmTryRunCommand.cxx, cmake.cxx, cmake.h: + ENH: cleanup by removing all the olf local generate junk that i + not longer needed + +2005-03-10 12:50 barre + + * Source/kwsys/: SystemTools.hxx.in, SystemTools.cxx: ENH: move + function from vtkKWDirectoryUtilities and vtkString to + SystemTools + +2005-03-10 10:04 martink + + * Source/ctest.cxx: ENH: better docs + +2005-03-10 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-09 18:07 andy + + * Utilities/cmxmlrpc/xmlrpc_serialize.c: BUG: This is weird, but + marquee does not seem to handle base64 with new lines + +2005-03-09 18:06 andy + + * Source/CTest/cmCTestSubmit.cxx: BUG: xmlrpc does the base64 + encoding + +2005-03-09 15:51 andy + + * bootstrap: BUG: Remove awk, remove problems and add full spaces + in the path support + +2005-03-09 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-08 18:38 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Removing + jump-and-build ordering change until we can prevent extra jumps + from always occuring. + +2005-03-08 17:27 king + + * bootstrap: BUG: Fix for spaces in the path when constructing + cmBootstrapCommands dependencies. + +2005-03-08 16:01 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Removing ... + ellipsis from end of echo lines. It is just clutter. + +2005-03-08 15:55 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Adding extra + dependencies to jump-and-build rules that force a single ordering + to prevent parallel jumps. This avoids problems with two jumps + reaching the same target in parallel which happened occasionally + with the old generator. + +2005-03-08 15:35 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Removed "Checking + build system in ..." message. It is always paired with an + Entering or Jumping message and is not necessary. + +2005-03-08 13:43 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added option + CMAKE_SKIP_RULE_DEPENDENCY to skip making build rules depend on + their own rule files. It can be added to the cache by the user + or added by the project in a list file. + +2005-03-08 11:37 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Only add leading + ./ to custom command executable if the command is really + specified as one in the current directory. + +2005-03-08 11:25 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: When a custom + command's executable is in the current directory the relative + path to it needs a "./". + +2005-03-08 09:25 king + + * Source/: cmLocalKdevelopGenerator.cxx, + cmLocalKdevelopGenerator.h: ENH: Updating Kdevelop generator to + use the new makefile generator. The old one no longer works + anyway because local generates are now disabled. + +2005-03-08 09:24 king + + * Source/cmDepends.cxx: BUG: Dependency scans and checks must + always set the current working directory to the directory + containing the Makefile. + +2005-03-08 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-07 18:48 andy + + * Utilities/cmxmlrpc/win32_pthreads.c: COMP: Try to remove warning + on mingw + +2005-03-07 15:19 king + + * Source/cmDependsFortran.cxx: BUG: When checking for upper-case + modules do not use an upper-case .MOD extension. + +2005-03-07 13:51 andy + + * Source/: cmFileCommand.cxx, cmWriteFileCommand.cxx: BUG: Handle + restrictive permissions + +2005-03-07 12:14 andy + + * Source/CTest/cmCTestSubmit.cxx: COMP: Remove warning + +2005-03-07 12:11 andy + + * bootstrap: ENH: Add proper dependencies for cmBootstrapCommands + +2005-03-07 11:03 andy + + * Utilities/cmxmlrpc/xmlrpc_curl_transport.c: BUG: Remove memory + leak + +2005-03-07 02:28 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-06 12:10 andy + + * Utilities/cmxmlrpc/linklist.h: COMP: Try to remove warnings on + windows + +2005-03-06 11:26 andy + + * Utilities/cmxmlrpc/: CMakeLists.txt, xmlrpc_config.h.in: ENH: Fix + the symantic of unicode_wchar + +2005-03-06 11:23 andy + + * Utilities/cmxmlrpc/xmlrpc_utf8.c: COMP: Remove warning on gcc + +2005-03-06 08:52 andy + + * Utilities/cmxmlrpc/synch_client.c: BUG: Fix destruction of + objects + +2005-03-06 08:51 andy + + * DartConfig.cmake, Source/cmCTest.cxx, + Source/CTest/cmCTestSubmit.cxx: COMP: Remove warning and fix the + logic + +2005-03-06 08:17 andy + + * Source/CMakeLists.txt: COMP: Do not build cmw9xcom on Cygwin + +2005-03-06 02:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-05 08:25 andy + + * DartConfig.cmake: ENH: Work on xmlrpc submit + +2005-03-05 08:12 andy + + * Source/CTest/cmCTestSubmit.cxx: COMP: Remove compile error + +2005-03-05 02:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-04 17:11 andy + + * Source/: CTest/cmCTestSubmit.cxx, CTest/cmCTestSubmit.h, + cmCTest.cxx: ENH: Start working on xmlrpc code. This code does + not work, but it will at least test compiling with cmxmlrpc + +2005-03-04 15:04 andy + + * Utilities/cmxmlrpc/synch_client.c: ENH: Print more states + including NY + +2005-03-04 14:27 andy + + * CMakeLists.txt, Source/CMakeLists.txt: ENH: More cleanups and + start linking ctest to XML-RPC + +2005-03-04 11:37 andy + + * Source/CMakeLists.txt, CMakeLists.txt, Utilities/CMakeLists.txt: + ENH: More cleanups and reorganization + +2005-03-04 10:05 andy + + * CMakeLists.txt, Source/CMakeLists.txt, + Source/CTest/Curl/CMakeLists.txt: ENH: Cleanups + +2005-03-04 10:04 andy + + * Source/CTest/CMakeLists.txt: BUG: This cmakelists file is not + used any more + +2005-03-04 10:03 andy + + * bootstrap: BUG: Handle when initial cmake fails + +2005-03-04 09:46 andy + + * Utilities/cmxmlrpc/xmlrpc_registry.c: COMP: Remove warning about + code being unused + +2005-03-04 02:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-03 22:35 hoffman + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalXCodeGenerator.cxx: ENH: fix for finding the correct + target in the current project + +2005-03-03 19:42 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: make it pass + anyway so I can see debug info + +2005-03-03 18:46 hoffman + + * Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: try and + debug the failed test on the continuous + +2005-03-03 18:15 hoffman + + * Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: try + number two with topological sort + +2005-03-03 17:21 andy + + * Utilities/cmxmlrpc/xmlrpc.h: COMP: Ok, remove warnings because of + removal of warnings + +2005-03-03 17:00 andy + + * Utilities/cmxmlrpc/xmlrpc_curl_transport.c: COMP: Fix typo + +2005-03-03 16:58 andy + + * Utilities/cmxmlrpc/xmlrpc_curl_transport.c: BUG: Comp sci 101. + Strings go away at the end of the function + +2005-03-03 16:53 king + + * Source/: cmDependsFortran.cxx, cmDependsFortran.h, cmake.cxx: + ENH: Implementing explicit cmake_copy_f90_mod callback to copy + Fortran90 modules to the stamp files more reliably. This removes + the temporary hack for per-platform upper-/lower- case. + +2005-03-03 16:12 andy + + * Utilities/cmxmlrpc/xmlrpc_config.h.in: COMP: setenv is not needed + any more + +2005-03-03 15:52 andy + + * Utilities/cmxmlrpc/xmlrpc_authcookie.c: COMP: Try to remove + setenv warning + +2005-03-03 15:49 andy + + * Utilities/cmxmlrpc/xmlrpc.h: ENH: Remove warnings + +2005-03-03 15:22 king + + * Source/: cmDependsC.cxx, cmDependsC.h: BUG: Fixed scanning to + account for double-quote includes. + +2005-03-03 12:00 king + + * Source/kwsys/kwsys_ios_sstream.h.in: ENH: Added + "ostringstream(const kwsys_stl::string& s)" and "void str(const + kwsys_stl::string& s)" compatibility methods. + +2005-03-03 09:25 andy + + * Utilities/cmxmlrpc/: xmlrpc_authcookie.c, xmlrpc_client.c, + xmlrpc_data.c, xmlrpc_expat.c, xmlrpc_parse.c, xmlrpc_registry.c, + xmlrpc_serialize.c, xmlrpc_struct.c, xmlrpc_strutil.c, + xmlrpc_utf8.c: COMP: Remove warnings on borland + +2005-03-03 08:46 martink + + * Source/: CMakeLists.txt, cmake.cxx: ENH: remove code warrior + classes + +2005-03-03 08:45 andy + + * Utilities/cmxmlrpc/: xmlrpc_strutil.c, xmlrpc_support.c: COMP: + Remove warnings + +2005-03-03 02:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-02 18:56 hoffman + + * Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: reverse + last changes to avoid dashboard failures + +2005-03-02 17:49 hoffman + + * Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: fix + library ordering stuff to use a topological sort + +2005-03-02 17:38 andy + + * Utilities/cmxmlrpc/xmlrpc_curl_transport.c: BUG: Attempt to get + error code + +2005-03-02 17:19 andy + + * Utilities/cmxmlrpc/xmlrpc_curl_transport.c: ENH: Temporary proxy + support + +2005-03-02 11:48 andy + + * Source/cmOrderLinkDirectories.cxx: BUG: Attempt to fix sorting + stability using more deterministic compare function + +2005-03-02 11:04 andy + + * Utilities/cmxmlrpc/: xmlrpc_client.c, xmlrpc_parse.c: COMP: + Remove more warnings + +2005-03-02 10:58 martink + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmGlobalCodeWarriorGenerator.h, cmLocalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.h: ENH: now use xcode instead + +2005-03-02 10:35 andy + + * Utilities/cmxmlrpc/xmlrpc.h: COMP: Enum should really not have + comma at the end + +2005-03-02 09:34 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Pay attention to + ForceUnixPaths setting in cmSystemTools for + ConvertToQuotedOutputPath and for dependency scanning. + +2005-03-02 09:02 king + + * Source/cmDependsFortran.cxx: BUG: We need to test the compiler + for the case of the mod file names. For now this is a temporary + hack to use upper case on SGI and lower case on Sun. + +2005-03-02 08:51 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: SGI make can + support suffixes only up to 32 characters. Renaming + .hpux_make_must_have_suffixes_list to + .hpux_make_needs_suffix_list. + +2005-03-02 02:30 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-03-01 17:32 hoffman + + * Source/cmOrderLinkDirectories.cxx: FIX: switch to stable_sort to + avoid crash + +2005-03-01 14:30 andy + + * Modules/Dart.cmake: BUG: Change error to warning + +2005-03-01 14:21 andy + + * CMakeLists.txt, Source/CTest/Curl/CMakeLists.txt: COMP: CMake + should be build static. Also propagate build_shared_libs to curl + +2005-03-01 13:36 king + + * Source/cmDependsFortran.cxx: BUG: Module file names are case + insensitive. Always use lower case no matter the real name of + the module. + +2005-03-01 13:32 king + + * Source/cmDependsJava.cxx: COMP: Removed unused parameter warning. + +2005-03-01 12:27 king + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.cxx: ENH: Enabling + cmLocalUnixMakefileGenerator2 by default. + +2005-03-01 12:26 king + + * Modules/Platform/: Darwin-xlc.cmake, Darwin.cmake: ENH: Adding + support for shared library versioning using the -install_name + option on the OSX linker. This is actually needed to support + relative -o paths which are used by + cmLocalUnixMakefileGenerator2. + +2005-03-01 12:26 king + + * bootstrap, Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmake.cxx: ENH: Enabling cmLocalUnixMakefileGenerator2 + (new makefile generator) by default. + +2005-03-01 12:20 king + + * Source/: cmDependsJava.cxx, cmDependsJava.h, CMakeLists.txt, + cmLocalUnixMakefileGenerator2.cxx: ENH: Framework for java + dependency scanner. Right now it does nothing but always reports + success. This is enough to get the Java test to pass with the + new generator because the old implementation did not do + dependencies anyway. + +2005-03-01 12:13 king + + * Source/: cmInstallProgramsCommand.cxx, + cmInstallProgramsCommand.h: BUG: Added FILES mode to + INSTALL_PROGRAMS command to make the single argument case + unambiguous. + +2005-03-01 11:25 andy + + * Source/cmGlobalXCodeGenerator.cxx: FIX: fix spaces in paths + +2005-03-01 11:21 andy + + * Utilities/cmxmlrpc/: synch_client.c, xmlrpc_curl_transport.c: + COMP: Attempt to remove warnings + +2005-03-01 11:01 king + + * Utilities/cmxmlrpc/win32_pthreads.c: COMP: #if WIN32 -> #ifdef + _WIN32 for Borland. + +2005-03-01 10:54 andy + + * CMakeLists.txt: ENH: Enable XMLRPC... please do not break + everywhere... + +2005-03-01 10:11 andy + + * Utilities/cmxmlrpc/CMakeLists.txt: ENH: Enable test + +2005-03-01 10:05 king + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: Replaced previous + fix with an implementation of properly formatting the custom + build code in the generated file. + +2005-03-01 09:50 andy + + * Utilities/cmxmlrpc/xmlrpc_curl_transport.c: ENH: More removing of + pthreads + +2005-03-01 09:07 andy + + * Utilities/cmxmlrpc/: CMakeLists.txt, xmlrpc_authcookie.c, + xmlrpc_config.h.in, xmlrpc_curl_transport.c, xmlrpc_pthreads.h, + xmlrpc_transport.h: ENH: Attempt to remove threading code + +2005-03-01 02:28 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-28 17:12 andy + + * CMakeLists.txt: ENH: Add the rest of xmlrpc stuff + +2005-02-28 16:26 andy + + * Utilities/cmxmlrpc/: CMakeLists.txt, synch_client.c, xmlrpc.h, + xmlrpc_client.c, xmlrpc_config.h.in: ENH: Add example + +2005-02-28 16:11 martink + + * Source/cmLocalVisualStudio6Generator.cxx: FIXTHIS THING: fix the + bug + +2005-02-28 15:30 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: fix typeo + +2005-02-28 15:07 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: add re run cmake if inputs change + +2005-02-28 02:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-27 17:34 andy + + * Utilities/cmxmlrpc/xmlrpc.h, Utilities/cmxmlrpc/xmlrpc_array.c, + Utilities/cmxmlrpc/xmlrpc_curl_transport.c, + Utilities/cmxmlrpc/xmlrpc_parse.c, + Utilities/cmxmlrpc/xmlrpc_struct.c, Source/CTest/Curl/file.c, + Source/CTest/Curl/ftp.c, Source/CTest/Curl/http.c, + Source/CTest/Curl/sendf.c, Source/kwsys/ProcessUNIX.c: COMP: + Remove warnings about shadow variables + +2005-02-27 17:33 andy + + * Utilities/cmexpat/xmlparse.c: COMP: Remove compile warning about + shadow variables + +2005-02-27 03:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-26 16:58 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: remove some warnings + +2005-02-26 03:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-25 20:46 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: fix warning + +2005-02-25 17:45 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmOrderLinkDirectories.cxx, + cmOrderLinkDirectories.h: ENH: clean up and use order link + directories + +2005-02-25 14:21 hoffman + + * Utilities/cmexpat/xmltok_impl.c: COMP: fix warnings + +2005-02-25 14:20 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: make sure header files + are in the header file group + +2005-02-25 11:23 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Replaced + OutputEcho/pre-echo/post-echo with AppendEcho. This allows for + more flexible echo specifications and better preserves echo text. + +2005-02-25 09:31 king + + * Tests/: Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt: ENH: Added full + pre-build/pre-link/post-build testing for both library and + executable targets. + +2005-02-25 09:19 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Adding inclusion + of pre-build and pre-link commands when building executables and + libraries. + +2005-02-25 09:14 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: + ConvertToQuotedOutputPath must replace slashes in root component + on windows. + +2005-02-25 09:06 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added + ConvertToQuotedOutputPath method and used it to properly generate + external object references with spaces in the path. + +2005-02-25 03:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-24 19:32 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Removed instances + of calling ConvertToRelativeOutputPath twice on the same path. + +2005-02-24 19:28 king + + * Source/cmGlobalGenerator.cxx: BUG: Need to configure relative + path support for LocalGenerate to support old makefile generator. + +2005-02-24 18:35 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: ENH: Converted some + ConvertToRelativeOutputPath calls to + ConvertToOptionallyRelativeOutputPath in preparation for making + ConvertToRelativeOutputPath always convert. Some of these might + be able to be switched back but we will first have to test what + paths can be relative in the generate VS project files. + +2005-02-24 17:46 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + kwsys/SystemTools.cxx: ENH: fix relative paths in xcode + +2005-02-24 16:25 king + + * Source/cmLocalGenerator.cxx: ENH: Converted some + ConvertToRelativeOutputPath calls to + ConvertToOptionallyRelativeOutputPath in preparation for making + ConvertToRelativeOutputPath not check CMAKE_USE_RELATIVE_PATHS. + +2005-02-24 16:19 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: The path to the + source file in a compile line should be made relative only when + CMAKE_USE_RELATIVE_PATHS is on. + +2005-02-24 16:04 king + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Merged implementations of + ConvertToRelative*Path methods. The main ConvertToRelativePath + method is now in cmGlobalGenerator. It converts paths only if + they are at least inside the deepest common directory between the + top-level source and build trees. Each cmLocalGenerator instance + calls this global method with its own output directory as the + "local" argument from which paths are relative. Added separate + ConvertToOptionallyRelative path that pays attention to the + CMAKE_USE_RELATIVE_PATHS option. + +2005-02-24 15:36 andy + + * Source/cmOrderLinkDirectories.cxx: COMP: remove compiler warning + +2005-02-24 15:34 andy + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: fix spaces in paths problems + +2005-02-24 14:47 king + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Added + ComparePath method. + +2005-02-24 14:27 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h: ENH: remove + unused code + +2005-02-24 13:45 king + + * Source/cmMakefile.cxx: COMP: HP compiler does not like + initializing a const std::string & with a const char* (which + requires the reference to be bound to a temporary with the scope + of the reference). + +2005-02-24 13:26 hoffman + + * Source/cmOrderLinkDirectories.cxx: ENH: clean up and remove some + debug code + +2005-02-24 13:16 hoffman + + * bootstrap, Source/CMakeLists.txt, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, Source/cmOrderLinkDirectories.cxx, + Source/cmOrderLinkDirectories.h: ENH: add a new library path + ordering algorithm to make sure -L paths will pick the correct + libraries if possible + +2005-02-24 12:44 king + + * Source/cmDependsC.cxx: BUG: Avoid putting a leading ./ on the + dependency names. + +2005-02-24 12:19 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: BUG: Using a better technique to + produce the rule file name for a custom command when the output + is not in the current directory or lower. + +2005-02-24 11:46 king + + * Modules/Platform/CMakeLists.txt: BUG: Added installation of .in + files as well as .cmake files. + +2005-02-24 10:32 king + + * Source/cmGlobalGenerator.cxx: BUG: Only use the existing + CMake(lang)Compiler.cmake file from the build tree if it was + generated by the same version of CMake. + +2005-02-24 10:31 king + + * Source/cmMakefile.cxx: BUG: Fixed GetCacheMinorVersion to not + always return 0. + +2005-02-24 10:14 andy + + * Source/cmCommands.cxx: COMP: Remove compile warning in bootstrap + stage + +2005-02-24 09:21 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Do not crash when + the link language for a target is not known. + +2005-02-24 09:20 king + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: Need proper + newline argument to ConstructScript call. + +2005-02-24 03:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-23 20:41 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: remove output path stuff + +2005-02-23 20:28 andy + + * Utilities/cmxmlrpc/: CMakeLists.txt, casprintf.c, casprintf.h, + inline.h, linklist.h, xmlrpc.h, xmlrpc_client.h, + xmlrpc_client_int.h, xmlrpc_config.h.in, xmlrpc_curl_transport.c, + xmlrpc_data.c, xmlrpc_pthreads.h, xmlrpc_support.c: COMP: Several + Windows fixes + +2005-02-23 14:36 martink + + * Source/cmGlobalVisualStudio6Generator.cxx: BUG: fix for empty + target or config strings in the Build method + +2005-02-23 13:50 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: FIX: fix to make this work + with new custom command stuff + +2005-02-23 03:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-22 15:31 king + + * Source/cmProjectCommand.cxx: ENH: Added CMAKE_PROJECT_NAME + variable to play the role of CMAKE_SOURCE_DIR and + CMAKE_BINARY_DIR for the top-level project name. + +2005-02-22 15:22 king + + * Modules/CMakeGenericSystem.cmake, Source/cmLocalGenerator.cxx: + ENH: Added better default install location for windows builds. + The previous default /usr/local did not make much sense. Now + "%SystemDrive%/Program Files/PROJECT_NAME" is used, which is the + windows equivalent to /usr/local. + +2005-02-22 14:52 king + + * Source/: cmLoadCommandCommand.cxx, cmLoadCommandCommand.h: ENH: + LOAD_COMMAND command will now set a variable called + CMAKE_LOADED_COMMAND_ to the full path of the + loaded module if loading was successful. Otherwise the variable + is not set (will evaluate to empty string). This is useful both + in testing whether loading worked and for installing loaded + command modules. + +2005-02-22 13:08 andy + + * Utilities/cmxmlrpc/: CMakeLists.txt, XmlRpcCpp.cpp, XmlRpcCpp.h, + bool.h, mallocvar.h, transport_config.h, win32_pthreads.c, + xmlrpc.h, xmlrpc_amconfig.h.in, xmlrpc_array.c, + xmlrpc_authcookie.c, xmlrpc_base64.c, xmlrpc_cgi.c, xmlrpc_cgi.h, + xmlrpc_client.c, xmlrpc_client.h, xmlrpc_client_int.h, + xmlrpc_config.h.in, xmlrpc_curl_transport.c, + xmlrpc_curl_transport.h, xmlrpc_data.c, xmlrpc_expat.c, + xmlrpc_int.h, xmlrpc_libxml2.c, xmlrpc_parse.c, + xmlrpc_pthreads.h, xmlrpc_registry.c, xmlrpc_serialize.c, + xmlrpc_server.h, xmlrpc_server_abyss.c, xmlrpc_server_abyss.h, + xmlrpc_server_abyss_int.h, xmlrpc_struct.c, xmlrpc_strutil.c, + xmlrpc_support.c, xmlrpc_transport.c, xmlrpc_transport.h, + xmlrpc_utf8.c, xmlrpc_xmlparser.h, + CMake/TryCompileFromSource.cmake: ENH: Initial import + +2005-02-22 12:34 martink + + * Source/cmGlobalGenerator.cxx: COMP: fix warning + +2005-02-22 12:10 king + + * Source/cmAddCustomCommandCommand.h: BUG: Fixed formatting of + generated documentation. + +2005-02-22 12:04 king + + * Tests/CustomCommand/CMakeLists.txt: ENH: Added test for multiple + commands in a custom command. + +2005-02-22 10:43 martink + + * Source/CMakeLists.txt: BUG: fix test execution + +2005-02-22 10:42 martink + + * Source/cmCTest.cxx: BUG: better error handling + +2005-02-22 10:32 king + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomCommandCommand.h, cmAddCustomTargetCommand.cxx, + cmAddCustomTargetCommand.h, cmCPluginAPI.cxx, + cmCustomCommand.cxx, cmCustomCommand.h, cmFLTKWrapUICommand.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, cmGlobalXCodeGenerator.cxx, + cmITKWrapTclCommand.cxx, cmIncludeExternalMSProjectCommand.cxx, + cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator2.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmMakefile.cxx, cmMakefile.h, + cmQTWrapCPPCommand.cxx, cmQTWrapUICommand.cxx, + cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx: ENH: Updated implementation of custom + commands. Multiple command lines are now supported effectively + allowing entire scripts to be written. Also removed extra + variable expansions and cleaned up passing of commands through to + the generators. The command and individual arguments are now + kept separate all the way until the generator writes them out. + This cleans up alot of escaping issues. + +2005-02-22 09:12 martink + + * Source/: cmCTest.cxx, cmCTest.h, cmGlobalGenerator.cxx, + cmGlobalGenerator.h, cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h, ctest.cxx: ENH: ctest now uses CMake + global generator to do the build part of build-and-test + +2005-02-22 09:08 king + + * Source/cmake.cxx: BUG: Need to return before configure step when + running in script mode. + +2005-02-22 08:22 king + + * Source/cmStandardIncludes.h: ENH: Adding cmCustomCommandLine and + cmCustomCommandLines subclasses of std::vector instantiations to + represent multiple commands for a single custom command. These + will be used in an upcoming checkin. + +2005-02-22 03:01 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-21 03:07 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-20 03:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-19 02:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-18 16:19 king + + * Source/: cmMakefile.cxx, cmSourceFile.cxx, cmSourceFile.h: BUG: + cmSourceFile instances should delete their own custom commands + when a new one is set. + +2005-02-18 16:12 king + + * Source/cmTarget.cxx: COMP: Using const_iterator instead of + iterator to walk through custom command dependencies. + +2005-02-18 16:12 king + + * Source/cmTarget.h: COMP: Added missing forward declaration of + cmMakefile. This was only working because cmCustomCommand.h + declared it. + +2005-02-18 15:45 andy + + * Source/cmGlobalXCodeGenerator.cxx: ENH: fix for spaces in the + path + +2005-02-18 15:43 king + + * Tests/ExternalOBJ/CMakeLists.txt: BUG: We still want to print out + the location where the object was found if it was found by the + glob. + +2005-02-18 14:32 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: remove warning + +2005-02-18 14:22 king + + * CMakeLists.txt: BUG: Disabling DART_ROOT removal until we can get + Dart to submit without it. + +2005-02-18 13:32 hoffman + + * Source/CMakeLists.txt, Source/cmFileCommand.cxx, + Source/cmGlobalXCodeGenerator.cxx, + Source/cmGlobalXCodeGenerator.h, Source/cmLocalGenerator.cxx, + Tests/ExternalOBJ/CMakeLists.txt: ENH: all tests are passing for + XCode + +2005-02-18 02:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-17 17:54 hoffman + + * Source/: cmGlobalGenerator.cxx, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h, cmXCodeObject.h: ENH: more tests are + passing, relative paths, and external objects are the ones left + now + +2005-02-17 16:59 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: Detect when + TestsToRunInformation is not set + +2005-02-17 16:11 andy + + * Source/: cmCTest.cxx, CTest/cmCTestTestHandler.cxx: ENH: Some + more generalization + +2005-02-17 15:23 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestScriptHandler.cxx, CTest/cmCTestUpdateCommand.cxx, + CTest/cmCTestUpdateCommand.h, CTest/cmCTestUpdateHandler.cxx: + ENH: Cleanups and add CTEST_UPDATE command + +2005-02-17 15:22 andy + + * Source/CTest/: cmCTestGenericHandler.cxx, + cmCTestGenericHandler.h: ENH: Add a way to set options of the + handler genericly + +2005-02-17 11:28 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h, + kwsys/SystemTools.cxx, kwsys/SystemTools.hxx.in: ENH: Adding + kwsys::SystemTools::FileTimeCompare method to compare file + modification times with the highest resolution possible on the + file system. + +2005-02-17 11:27 king + + * bootstrap: ENH: Added try-compile KWSYS_STAT_HAS_ST_MTIM. This + tests whether struct stat has the extra st_mtim member that has + high resolution times. + +2005-02-17 10:51 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestCoverageHandler.cxx, + CTest/cmCTestMemCheckHandler.cxx, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestScriptHandler.h, CTest/cmCTestStartCommand.cxx, + CTest/cmCTestStartCommand.h: ENH: Cleanups and add CTEST_START + command + +2005-02-17 10:51 andy + + * Source/cmSystemTools.cxx: ENH: Add support for single ' + +2005-02-17 10:49 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + kwsysPlatformCxxTests.cxx: ENH: Added try-compile + KWSYS_STAT_HAS_ST_MTIM. This tests whether struct stat has the + extra st_mtim member that has high resolution times. + +2005-02-17 10:45 hoffman + + * Modules/FindQt.cmake: FIX: fix for bug 1409 + +2005-02-17 10:42 hoffman + + * Modules/FindCurses.cmake: FIX: fix for bug 1438 + +2005-02-17 10:39 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: FIX: fix for bug 1606 + +2005-02-17 10:18 king + + * Source/cmDependsC.cxx: ENH: Removing collapsing of files to full + path before checking. The current working directory is set + correctly because the dependency lines are used by make anyway. + This drastically improves the speed of dependency checking. + +2005-02-17 10:03 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Avoid generating duplicate + rules for an object file. A warning about duplicate source files + in a target is now generated. + +2005-02-17 08:50 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Added generation + of test target to run ctest. + +2005-02-17 07:53 king + + * Source/cmake.cxx: BUG: Removing "guess when there is a space in + the path" check for chdir command. It is the responsibility of + the caller of the command to ensure the arguments are properly + quoted on the command line. + +2005-02-17 07:53 king + + * Tests/CommandLineTest/CMakeLists.txt: BUG: Fix for space in path + for chdir test. We just need to double-quote the arguments. + +2005-02-17 02:42 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-16 19:13 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: add CMAKE_CFG_INTDIR + +2005-02-16 18:47 hoffman + + * Source/: cmCTest.cxx, cmGlobalXCodeGenerator.cxx: ENH: use + ALL_BUILD target + +2005-02-16 16:35 hoffman + + * Source/: cmGlobalGenerator.cxx, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h, cmMakefile.cxx, cmMakefile.h: ENH: more + tests are passing + +2005-02-16 16:06 andy + + * Source/CTest/: cmCTestEmptyBinaryDirectoryCommand.cxx, + cmCTestScriptHandler.cxx: BUG: Report errors + +2005-02-16 16:03 andy + + * Source/kwsys/SystemTools.cxx: BUG: On windows allow removing of + files that are read-only + +2005-02-16 14:38 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: COMP: Remove unused + variable + +2005-02-16 14:24 andy + + * Source/CTest/cmCTestUpdateHandler.h: COMP: Remove warning + +2005-02-16 14:24 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Improve output, and + handle 'G' files in subversion + +2005-02-16 13:45 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: BUG: If project is up to + date, handle that case + +2005-02-16 13:36 andy + + * Modules/Dart.cmake: BUG: Clean the messages + +2005-02-16 13:30 andy + + * Modules/: Dart.cmake, DartConfiguration.tcl.in: ENH: Reorganize + and add subversion support + +2005-02-16 13:29 andy + + * CMakeLists.txt: ENH: Remove DART_ROOT to force + DartConfiguration.tcl to be up to date + +2005-02-16 13:28 andy + + * Source/CTest/: cmCTestUpdateHandler.cxx, cmCTestUpdateHandler.h: + ENH: Initial implementation of SVN support. Closes Bug #1601 - + Add subversion support + +2005-02-16 13:15 hoffman + + * Source/cmake.cxx, Source/cmakemain.cxx, + Tests/CommandLineTest/CMakeLists.txt: BUG: fix CommandLine test + problems with spaces and testing for the return value + +2005-02-16 12:31 martink + + * CTestCustom.ctest.in: ENH: add supp for xlc linking on darwin + +2005-02-16 09:17 andy + + * Utilities/cmzlib/CMakeLists.txt: COMP: attempt to fix warning on + Visual Studio 7 + +2005-02-16 09:00 hoffman + + * CTestCustom.ctest.in: COMP: add a warning ignore for gcc 3.4.2 + +2005-02-16 08:56 king + + * Source/kwsys/SystemTools.cxx: BUG: Removing debugging code now + that the problem has been fixed on the remote dashboard. + +2005-02-16 02:18 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-15 17:25 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: add custom commands, still failing a bunch of tests + +2005-02-15 16:03 king + + * Source/kwsys/SystemTools.cxx: BUG: Preserve trailing slash state + when translating paths. + +2005-02-15 09:58 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: make sure paths do not end in + / before adding one + +2005-02-15 09:02 king + + * Source/cmDependsFortran.cxx: STYLE: Added TODO comment for + checking dependencies. + +2005-02-15 09:01 king + + * Tests/Fortran/: CMakeLists.txt, test_module_implementation.f90, + test_module_interface.f90, test_module_main.f90: ENH: Added + Fortran 90 test if the platform supports it. + +2005-02-15 08:40 king + + * Source/kwsys/SystemTools.cxx: BUG: Adding debugging code to + remotely debug a failing dashboard test. + +2005-02-15 08:28 king + + * Source/kwsys/SystemTools.cxx: BUG: Adding debugging code to + remotely debug a failing dashboard test. + +2005-02-15 02:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-14 16:46 hoffman + + * Source/: cmCTest.cxx, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h, cmLocalGenerator.h: ENH: getting closer + +2005-02-14 16:15 andy + + * Tests/MakeClean/CMakeLists.txt: COMP: Try to fix test on HP + +2005-02-14 14:35 hoffman + + * CMakeLists.txt, CTestCustom.ctest.in, ChangeLog.manual, + Source/CMakeLists.txt, Source/cmCTest.cxx: ENH: merge from main + tree + +2005-02-14 10:16 martink + + * Source/CMakeLists.txt: ENH: only do objc++ test with GNU of + course + +2005-02-14 10:16 martink + + * CTestCustom.ctest.in: ENH: added supp for Curl coding style + +2005-02-14 09:21 hoffman + + * Modules/Platform/Darwin-xlc.cmake: ENH: move xlc stuff to branch + +2005-02-14 08:44 king + + * Tests/MakeClean/CMakeLists.txt: COMP: Need ANSI flags for C + executable. + +2005-02-14 02:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-13 02:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-12 02:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-11 16:25 andy + + * Source/cmake.cxx: ENH: Add command to copy directory with content + +2005-02-11 16:25 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: + Implement copy of directory with content + +2005-02-11 14:36 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, CMakeSetupDialog.h: FIX: + fix for bug 1135 + +2005-02-11 14:25 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + more work on linking flags + +2005-02-11 14:22 hoffman + + * Modules/CMakeCXXCompiler.cmake.in: FIX: fix bug 1495 + +2005-02-11 14:20 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: FIX: fix for bug 1460 + +2005-02-11 14:18 hoffman + + * Modules/UseSWIG.cmake: FIX: fix bug 1303 + +2005-02-11 14:13 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx, + Templates/staticLibHeader.dsptemplate: FIX: fixes bugs 1152 and + 1154 + +2005-02-11 02:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-10 16:18 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Split + cmLocalUnixMakefileGenerator2 away from + cmLocalUnixMakefileGenerator to be a stand-alone generator. + +2005-02-10 14:19 king + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: + Initializing translation map using the PWD environment variable + and getcwd functions to automatically translate logical paths + involving the current working directory. Also added the JoinPath + method to aid users of the SplitPath method. + +2005-02-10 10:35 king + + * Source/kwsys/SystemTools.cxx: COMP: std:: -> kwsys_stl:: + +2005-02-10 10:32 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, kwsys/SystemTools.cxx, + kwsys/SystemTools.hxx.in: ENH: Added SystemTools::SplitPath + method to split any file path into its basic components. + +2005-02-10 08:27 hoffman + + * Source/cmGlobalKdevelopGenerator.cxx: COMP: fix warning + +2005-02-10 08:22 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Fix for bug 1100. + If EXECUTABLE_OUTPUT_PATH or LIBRARY_OUTPUT_PATH is a relative + path it should be converted to a full path relative to each build + directory. + +2005-02-10 07:46 king + + * Utilities/cmzlib/: CMakeLists.txt, zconf.h: COMP: Disabling + warnings in zlib code to avoid changing it too much. + +2005-02-10 07:44 hoffman + + * Source/cmGlobalKdevelopGenerator.cxx: COMP: fix warning + +2005-02-10 02:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-09 23:25 hoffman + + * Source/: cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: ENH: fix bug 1324 + +2005-02-09 23:21 hoffman + + * Source/: cmGlobalKdevelopGenerator.cxx, + cmGlobalKdevelopGenerator.h, cmLocalKdevelopGenerator.cxx, + cmLocalKdevelopGenerator.h: ENH: move most of the to global + generator + +2005-02-09 23:00 hoffman + + * Source/cmTryRunCommand.cxx, Source/cmTryRunCommand.h, + Modules/TestBigEndian.cmake: ENH: fix for 1450 + +2005-02-09 22:46 hoffman + + * Modules/: FindJNI.cmake, FindJava.cmake: ENH: bug fix 1573 + +2005-02-09 22:45 hoffman + + * Modules/FindPythonLibs.cmake: ENH: bug fix 1574 + +2005-02-09 11:40 king + + * Source/cmLocalUnixMakefileGenerator2.cxx, + Source/cmLocalUnixMakefileGenerator2.h, + Tests/MakeClean/CMakeLists.txt, + Tests/MakeClean/ToClean/CMakeLists.txt, + Tests/Wrapping/CMakeLists.txt: ENH: Adding cleaning of custom + command outputs during "make clean". + +2005-02-09 09:36 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Moved reference from local + driver targets (like build.local) into individual target rule + files. Main rule is now empty, except that clean.local may + remove files registered for cleaning. + +2005-02-09 09:32 king + + * Source/CMakeLists.txt: ENH: Adding MakeClean test to test + cleaning for makefile generators. + +2005-02-09 09:21 king + + * Tests/MakeClean/: CMakeLists.txt, check_clean.c.in, + ToClean/CMakeLists.txt, ToClean/ToCleanFiles.cmake.in, + ToClean/toclean.cxx: ENH: Adding test of "make clean". + +2005-02-08 17:12 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + cmXCodeObject.h: ENH: add link library stuff + +2005-02-08 10:13 andy + + * Tests/SystemInformation/CMakeLists.txt: ENH: Display all output + in ctest + +2005-02-07 17:36 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCodeObject.cxx, + cmXCodeObject.h: ENH: fix bug in target linking + +2005-02-07 16:18 king + + * Tests/: Complex/CMakeLists.txt, + Complex/Executable/complex.file.cxx, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/Executable/complex.file.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.file.cxx: ENH: Added + partial test for include regular expressions. + +2005-02-07 16:16 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: COMP: Removed useless + expression warning. + +2005-02-07 16:11 king + + * Source/: cmDepends.cxx, cmDepends.h, cmDependsC.cxx, + cmDependsC.h, cmLocalUnixMakefileGenerator2.cxx: ENH: Implemented + support for include/complain regular expressions for dependency + scanning. This now includes the possibility that scanning will + return failure and the build will stop. + +2005-02-07 15:10 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added generation of + CMakeDirectoryInformation.cmake file in each directory next to + the Makefile. The include file search path is now stored in this + file instead of duplicating it for every object file. This will + also allow more information to be passed in the future. + +2005-02-07 15:09 king + + * Source/cmMakefile.h: ENH: Added GetComplainRegularExpression + method. + +2005-02-07 09:05 king + + * Tests/SystemInformation/DumpInformation.cxx: BUG: Need to include + full output to be a useful test. + +2005-02-07 05:26 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-06 05:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-05 07:50 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: Updated post-build command + to drive installation through the native build system. + +2005-02-05 05:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-04 17:58 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCodeObject.cxx, + cmXCodeObject.h: ENH: this version can build cmake + +2005-02-04 17:38 king + + * Source/cmCTest.cxx: BUG: Fixed --build-target implementation to + work with Visual Studio generators. + +2005-02-04 15:14 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Implemented external object + feature. + +2005-02-04 14:13 king + + * Source/CMakeLists.txt: ENH: Adding test for external object file + feature. + +2005-02-04 13:58 king + + * Tests/ExternalOBJ/: CMakeLists.txt, executable.cxx, + Object/CMakeLists.txt, Object/external_main.cxx, + Object/external_object.cxx: ENH: Adding test for external object + file feature. + +2005-02-04 10:06 king + + * Modules/CMakeTestFortranCompiler.cmake: ENH: Added test for + Fortran90 support. + +2005-02-04 05:28 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-03 19:32 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: remove warnings + +2005-02-03 17:42 hoffman + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + cmLocalGenerator.h, cmXCodeObject.cxx, cmXCodeObject.h: ENH: + depends work between targets + +2005-02-03 08:39 king + + * Source/cmDependsJavaParserHelper.cxx: COMP: Fix warning about + printf format and given type. + +2005-02-03 05:29 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-02 17:16 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + cmLocalGenerator.h, cmXCodeObject.cxx, cmXCodeObject.h: ENH: + getting closer + +2005-02-02 17:05 king + + * Source/: cmDependsFortranParser.cxx, cmDependsFortranParser.y, + cmDependsJavaParser.cxx, cmDependsJavaParser.y: COMP: Adding + warning work-around for unused case label yyerrorlab on HP + compiler. + +2005-02-02 13:19 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: move AddFlags stuff up to + LocalGenerator from LocalUnix generator + +2005-02-02 05:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-02-01 17:17 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: closer + +2005-02-01 15:48 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCodeObject.cxx: ENH: + getting closer + +2005-02-01 14:28 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: fix warning + +2005-02-01 13:12 hoffman + + * Modules/CMakeFindXCode.cmake: ENH: add trycompile code for xcode + +2005-02-01 13:07 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: add trycompile code for xcode + +2005-02-01 11:28 king + + * Source/: cmDependsFortranParser.cxx, cmDependsFortranParser.y: + COMP: Disabling warning in generated code. + +2005-02-01 10:44 king + + * Source/: cmDependsJavaLexer.h, cmDependsJavaLexer.in.l: COMP: + Removing #line directives from .h file to avoid bogus Sun + warning. + +2005-02-01 10:43 king + + * Source/CTest/Curl/CMakeLists.txt: COMP: Avoid adding + content_encoding.c twice. + +2005-02-01 10:42 king + + * Source/: CMakeLists.txt, cmDependsFortran.cxx, + cmDependsFortranLexer.cxx, cmDependsFortranLexer.h, + cmDependsFortranLexer.in.l, cmDependsFortranParser.cxx, + cmDependsFortranParser.h, cmDependsFortranParser.y, + cmDependsFortranParserTokens.h, cmDependsFortranLexer.c, + cmDependsFortranParser.c: ENH: Changed over to using C++ for + building flex/bison generated files. It reduces the number of + changes that need to be made after generation. + +2005-02-01 05:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-31 05:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-30 05:23 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-29 07:57 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: COMP: Removed shadowed + variable warning. + +2005-01-29 05:23 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-28 18:12 king + + * Source/cmGlobalXCodeGenerator.cxx: COMP: Added missing labels to + case. + +2005-01-28 17:46 andy + + * Source/: cmDependsJavaLexer.cxx, cmDependsJavaLexer.in.l: COMP: + Another borland problem + +2005-01-28 17:43 andy + + * Source/: cmDependsJavaLexer.cxx, cmDependsJavaLexer.in.l, + cmDependsJavaParser.cxx, cmDependsJavaParser.y, + cmDependsJavaParserTokens.h: COMP: Remove more warnings/errors + +2005-01-28 17:25 king + + * Source/cmGeneratedFileStream.cxx: COMP: Fix unused parameter + warning when bootstrapping. + +2005-01-28 17:24 andy + + * Source/: cmDependsJavaLexer.cxx, cmDependsJavaLexer.in.l, + cmDependsJavaParser.cxx, cmDependsJavaParser.y, + cmDependsJavaParserTokens.h: COMP: Remove warnings + +2005-01-28 17:21 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: move executable xcode stuff to a method + +2005-01-28 17:18 king + + * Source/cmDependsJavaParserHelper.cxx: COMP: Removed default + argument from method definition. + +2005-01-28 17:14 andy + + * Source/CMakeLists.txt: ENH: Enable java dependency + +2005-01-28 17:13 andy + + * Source/: cmDependsJavaParser.cxx, cmDependsJavaParser.y, + cmDependsJavaParserHelper.cxx, cmDependsJavaParserHelper.h, + cmDependsJavaParserTokens.h: ENH: Initial import of java parser + +2005-01-28 17:13 andy + + * Source/cmDependsFortranParser.y: STYLE: Add some diff helping + comments + +2005-01-28 17:09 king + + * Source/: cmDependsFortranParser.c, cmDependsFortranParser.y, + cmDependsFortranParserTokens.h: COMP: Disabled warnings in + generated code. + +2005-01-28 16:56 andy + + * Source/: cmDependsJavaLexer.cxx, cmDependsJavaLexer.h, + cmDependsJavaLexer.in.l: ENH: Initial import of java parser + +2005-01-28 16:26 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: ENH: use absolute paths + +2005-01-28 16:00 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h: + ENH: create mainGroup + +2005-01-28 14:17 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Implemented full per-object + test for whether provides-requires mode is needed. This will + still use a recursive make for any Fortran object even if it + doesn't have requires. It is possible to avoid it but we can do + that later. + +2005-01-28 13:20 andy + + * Modules/Dart.cmake: ENH: Better checking for Dart. Closes Bug + #1505 - Configuration fails to create Makefile + +2005-01-28 13:00 andy + + * Source/cmake.cxx: BUG: prevent -P or script to be passed as + homedirectory + +2005-01-28 12:01 king + + * Source/cmDependsFortran.cxx: STYLE: Added another solution + proposal for out-of-directory modules. + +2005-01-28 10:45 king + + * Source/cmDependsFortran.cxx: ENH: Added provides/requires output + for modules. + +2005-01-28 10:12 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Add error regex + +2005-01-28 08:30 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: remove debug print + +2005-01-28 05:20 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-27 19:24 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: fix warning + +2005-01-27 17:45 andy + + * Modules/Dart.cmake: ENH: Enable compression and use the new + trigger script + +2005-01-27 17:43 andy + + * Source/cmCTest.cxx, Modules/DartConfiguration.tcl.in: ENH: Enable + compression with DartConfiguration file + +2005-01-27 17:09 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCodeObject.cxx: ENH: + xcode almost working for simple exe, but not yet + +2005-01-27 16:49 andy + + * Source/CTest/cmCTestTestHandler.h: COMP: Fix build on sun + +2005-01-27 16:43 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmXCodeObject.cxx: ENH: fix + a few more xcode things + +2005-01-27 16:25 hoffman + + * Source/cmXCodeObject.cxx: ENH: add missing ; + +2005-01-27 16:11 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + cmXCodeObject.cxx: ENH: add more xcode stuff + +2005-01-27 15:54 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestBuildHandler.h, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestConfigureHandler.h, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestGenericHandler.cxx, CTest/cmCTestGenericHandler.h, + CTest/cmCTestMemCheckHandler.cxx, CTest/cmCTestMemCheckHandler.h, + CTest/cmCTestScriptHandler.cxx, CTest/cmCTestScriptHandler.h, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestTestHandler.h, + CTest/cmCTestUpdateHandler.cxx, CTest/cmCTestUpdateHandler.h: + ENH: Several cleanups and improvements + +2005-01-27 13:31 martink + + * Source/CTest/: cmCTestRunScriptCommand.cxx, + cmCTestScriptHandler.cxx, cmCTestScriptHandler.h: ENH: clean up + running of default script + +2005-01-27 11:43 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestBuildHandler.h, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestConfigureHandler.h, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestGenericHandler.cxx, CTest/cmCTestGenericHandler.h, + CTest/cmCTestScriptHandler.cxx, CTest/cmCTestScriptHandler.h, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestTestHandler.h, + CTest/cmCTestUpdateHandler.cxx, CTest/cmCTestUpdateHandler.h: + ENH: Add a superclass to all handlers + +2005-01-27 11:01 martink + + * Source/CTest/: cmCTestRunScriptCommand.cxx, + cmCTestScriptHandler.cxx, cmCTestScriptHandler.h, + cmCTestSleepCommand.cxx: COMP: fix some compiler warnings/errors + +2005-01-27 10:47 martink + + * Source/ctest.cxx: ENH: added missing documentation + +2005-01-27 10:14 andy + + * Source/: cmCTest.cxx, cmCTest.h, CTest/cmCTestBuildHandler.cxx, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestUpdateHandler.cxx: + ENH: Add compression support to XML files + +2005-01-27 10:14 andy + + * Source/: cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: ENH: + Add compression support + +2005-01-27 10:11 andy + + * Tests/Complex/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Source/CMakeLists.txt: ENH: Link to cmzlib + +2005-01-27 10:11 martink + + * Source/: CMakeLists.txt, CTest/cmCTestCommand.h, + CTest/cmCTestEmptyBinaryDirectoryCommand.cxx, + CTest/cmCTestEmptyBinaryDirectoryCommand.h, + CTest/cmCTestRunScriptCommand.cxx, + CTest/cmCTestRunScriptCommand.h, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestScriptHandler.h, CTest/cmCTestSleepCommand.cxx, + CTest/cmCTestSleepCommand.h: ENH: added more capabilities to + ctest + +2005-01-27 05:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-26 16:19 king + + * Source/cmDependsFortranParser.y: COMP: Added instruction to + remove TABs from generated file. + +2005-01-26 16:18 king + + * Source/: CMakeLists.txt, cmLocalUnixMakefileGenerator2.cxx: ENH: + Added hook into Fortran dependency scanner. + +2005-01-26 16:17 king + + * Source/: cmDependsFortranLexer.c, cmDependsFortranLexer.h, + cmDependsFortranParser.c, cmDependsFortranParserTokens.h: ENH: + Added generated lexer and parser sources. + +2005-01-26 16:10 king + + * Source/: cmDependsFortranLexer.in.l, cmDependsFortranParser.y: + COMP: Added additional instructions about how to modify the + generated files. + +2005-01-26 16:09 king + + * Source/cmDependsFortran.cxx: COMP: Added constructor to + cmDependsFortranFile to avoid using initializer list. Also + included assert.h. + +2005-01-26 15:58 king + + * Source/cmDependsFortranParser.y: COMP: Added forward declaration + of yylex. + +2005-01-26 15:55 andy + + * CMakeLists.txt: ENH: Add zlib from VTK + +2005-01-26 15:55 andy + + * Utilities/cmzlib/: .NoDartCoverage, CMakeLists.txt, adler32.c, + cm_zlib_mangle.h, compress.c, crc32.c, deflate.c, deflate.h, + example.c, gzio.c, infblock.c, infblock.h, infcodes.c, + infcodes.h, inffast.c, inffast.h, inffixed.h, inflate.c, + inftrees.c, inftrees.h, infutil.c, infutil.h, maketree.c, + minigzip.c, trees.c, trees.h, uncompr.c, zconf.h, zlib.def, + zlib.h, zlib.rc, zlibDllConfig.h.in, zutil.c, zutil.h: ENH: + Initial import from VTK + +2005-01-26 15:45 king + + * Source/cmDependsFortran.cxx: ENH: Removed Lexer/Parser prefix + before _yy symbols. Just cmDependsFortran_yy is enough. + +2005-01-26 15:43 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: fix version number + +2005-01-26 15:33 king + + * Source/: cmDependsFortran.cxx, cmDependsFortran.h, + cmDependsFortranLexer.in.l, cmDependsFortranParser.h, + cmDependsFortranParser.y: ENH: Added Fortran dependency scanner + implementation. + +2005-01-26 14:25 king + + * Source/: cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: ENH: + Added default constructor and Open method. + +2005-01-26 11:13 andy + + * Source/CTest/: cmCTestTestHandler.cxx, cmCTestTestHandler.h: ENH: + Add support for shrinking the output of the test + +2005-01-26 10:10 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add method to populate + custom integers + +2005-01-26 05:59 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-25 16:36 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: fix warnings + +2005-01-25 16:30 hoffman + + * Source/cmGlobalXCodeGenerator.cxx: COMP: fix warnings + +2005-01-25 16:09 hoffman + + * bootstrap: ENH: add xcode stuff to bootstrap + +2005-01-25 15:26 hoffman + + * Source/: CMakeLists.txt, cmGlobalXCodeGenerator.cxx, + cmGlobalXCodeGenerator.h, cmXCodeObject.cxx, cmXCodeObject.h, + cmake.cxx: ENH: add initial non-working XCode stuff + +2005-01-25 05:59 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-24 17:35 hoffman + + * Source/: cmGlobalXCodeGenerator.cxx, cmGlobalXCodeGenerator.h, + cmLocalXCodeGenerator.cxx, cmLocalXCodeGenerator.h, + cmXCodeObject.cxx, cmXCodeObject.h: ENH: initial xcode stuff + +2005-01-24 05:53 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-23 05:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-22 05:51 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-21 16:25 hoffman + + * Source/: cmXCodeObject.cxx, cmXCodeObject.h: ENH: start xcode + stuff + +2005-01-21 12:26 hoffman + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h: ENH: move project map to global + generator base + +2005-01-21 11:22 martink + + * Source/cmWhileCommand.cxx: COMP: fix unused var warning + +2005-01-21 10:27 hoffman + + * bootstrap, Source/CMakeLists.txt, Source/cmBootstrapCommands.cxx, + Source/cmCommands.cxx, Source/cmCommands.h, + Source/cmWhileCommand.cxx, Source/cmake.cxx: ENH: split up + cmCommands into two files + +2005-01-21 09:37 martink + + * Source/: cmCommands.cxx, cmWhileCommand.cxx, cmWhileCommand.h, + cmEndWhileCommand.cxx, cmEndWhileCommand.h: ENH: added while + command + +2005-01-21 05:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-20 15:26 martink + + * Source/cmSetCommand.cxx: COMP: fix unused var warning + +2005-01-20 14:38 martink + + * Source/: cmSetCommand.cxx, cmSetCommand.h: ENH: now the set + command can set environment variables + +2005-01-20 12:30 hoffman + + * Modules/: CMakeCCompiler.cmake.in, CMakeCXXCompiler.cmake.in, + CMakeDetermineCCompiler.cmake, CMakeFortranCompiler.cmake.in, + CMakeJavaCompiler.cmake.in, CMakeRCCompiler.cmake.in, + CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake, + Platform/Windows-cl.cmake, Platform/Windows-cl.cmake.in: ENH: + stuff to keep compiler tests from re-running all the time + +2005-01-20 12:28 hoffman + + * Source/: cmGlobalGenerator.cxx, cmLocalKdevelopGenerator.cxx: + ENH: add some comments on how this could be moved to global + generator + +2005-01-20 04:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-19 12:06 king + + * Source/: cmListFileLexer.in.l, cmListFileLexer.c: ENH: Mangled + lexer symbols to begin in cmListFileLexer_yy instead of just yy + to avoid conflict with other lexers that may be added. + +2005-01-19 07:23 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Removed unquoted version of + OBJECTS make variable. Quoted seems to work everywhere. BUG: + Fixed AppendAnyDepend to properly identify executable targets. + BUG: Used CreateMakeVariable to fix variable name for OBJECTS + list when target has a . in its name. + +2005-01-19 05:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-18 18:11 andy + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: COMP: Add proper + link directory + +2005-01-18 17:29 andy + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: COMP: Add cmexpat + to complex + +2005-01-18 17:09 king + + * Source/: CMakeLists.txt, cmDepends.cxx, cmDepends.h, + cmDependsC.cxx, cmDependsC.h, cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, cmake.cxx: ENH: Split dependency + scanning and checking into separate cmDepends superclass with + language-specific subclasses such as cmDependsC. + +2005-01-18 16:47 andy + + * Source/CMakeLists.txt: COMP: Ok, actually link to the library.... + +2005-01-18 15:54 andy + + * Source/cmXMLParser.cxx, Utilities/cmexpat/xmlparse.c: COMP: Try + to resolve compile errors because of missing includes and wrong + include path + +2005-01-18 14:02 andy + + * Source/cmXMLParser.cxx: COMP: Use cmOStringStream not + ostringstream + +2005-01-18 13:41 andy + + * Source/: CMakeLists.txt, cmXMLParser.cxx, cmXMLParser.h: ENH: Add + XML parser + +2005-01-18 11:15 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: STYLE: Added TODO + comment for another missing feature (external object files). + +2005-01-18 09:06 andy + + * Utilities/Doxygen/doc_makeall.sh.in: ENH: Cleanup + +2005-01-18 08:58 andy + + * CMakeLists.txt, cmake_uninstall.cmake.in: ENH: Add uninstall. + This is not really a feature but more of an example on how to do + it. + +2005-01-18 04:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-17 16:29 hoffman + + * Source/cmCTest.cxx: BUG: when ctest is looking for cmake look in + the build directory as well as where ctest is so that purify will + work + +2005-01-17 15:20 hoffman + + * Modules/: CMakeCCompiler.cmake.in, CMakeCXXCompiler.cmake.in, + Platform/Windows-cl.cmake: BUG: fix running of cl in trycompiles + +2005-01-17 15:09 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Adding partial + implementation of provides-requires mode. + +2005-01-17 15:09 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Fix for relative + path conversion when path is a subset of relative path root. + +2005-01-17 14:29 hoffman + + * Source/: cmWin32ProcessExecution.cxx, cmWin32ProcessExecution.h: + BUG: make sure handles are always closed even if Wait is not + called. + +2005-01-17 04:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-15 04:40 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-13 12:38 hoffman + + * ChangeLog.manual, Source/MFCDialog/PropertyList.cpp: BUG: fix + from main tree + +2005-01-13 12:26 hoffman + + * Source/MFCDialog/PropertyList.cpp: BUG: fix for Bug #1466 delete + cache leaves file button and can crash + +2005-01-13 03:58 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-12 13:58 martink + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: now limits warnings + and error report to 50 each + +2005-01-12 13:51 martink + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: now limits warnings + and error report to 50 each + +2005-01-12 10:11 millerjv + + * Source/kwsys/Base64.c: BUG: encoding 2 bytes into 4 bytes was + accessing a 3rd byte from the source + +2005-01-12 04:43 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-11 05:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-10 05:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-08 05:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-07 11:56 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-05 05:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-04 18:24 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added install target + implementation. Also added missing include of assert.h. + +2005-01-04 17:41 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added relative path support + (mostly done). Many paths are written relative even if + CMAKE_USE_RELATIVE_PATHS is not on just to keep makefiles short. + +2005-01-04 16:26 king + + * Source/cmLocalUnixMakefileGenerator.h: ENH: Made + ConfigureOutputPaths virtual to help new generator. + +2005-01-04 15:38 hoffman + + * ChangeLog.manual, Modules/Platform/Windows-icl.cmake: add intel + compiler config file + +2005-01-04 12:12 hoffman + + * ChangeLog.manual, Source/cmSetCommand.cxx: fix for bug 1445 + +2005-01-04 10:55 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add a + delay method + +2005-01-04 09:56 king + + * Source/cmLocalKdevelopGenerator.cxx: BUG: Applied patch attached + to bug #1453. + +2005-01-04 08:42 martink + + * Source/cmSetCommand.cxx: ENH: fixed SET command to accept cache + values with more than one value + +2005-01-04 04:17 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-02 05:04 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2005-01-01 21:02 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-31 05:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-30 05:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-29 05:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-28 05:23 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-27 05:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-26 05:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-25 05:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-24 05:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-23 05:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-22 05:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-21 05:14 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-20 05:09 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-19 05:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-18 05:11 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-17 05:06 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-16 22:19 hoffman + + * Modules/CMakeDetermineSystem.cmake: fix wrong number of arguments + +2004-12-16 22:18 hoffman + + * Modules/CMakeDetermineSystem.cmake: fix number of arguments + +2004-12-16 17:26 hoffman + + * ChangeLog.manual, Modules/CMakeDetermineSystem.cmake, + Modules/Platform/OpenBSD.cmake: ENH: fix for OpenBSD + +2004-12-16 05:52 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-15 05:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-14 05:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-13 05:03 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-12 05:08 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-11 05:10 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-10 05:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-09 16:14 king + + * Source/cmSystemTools.cxx: BUG: Fix to avoid relative path with + ..s all the way to the root. + +2004-12-09 15:56 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Support for custom + command outputs in subdirectories of current build tree location. + +2004-12-09 15:23 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: AppendAnyDepend + must handle non-existing files. + +2004-12-09 15:11 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added post-build rules to + executables and libraries. Generalized AppendLibDepend method to + AppendAnyDepend. This takes most of the functionality of + AppendCustomDepend too, and generalized jump-and-build to + executables. + +2004-12-09 13:52 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Implemented utility + targets. This involved pulling part of the custom command rule + implementation out into shared methods. + +2004-12-09 05:12 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-08 05:05 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-07 05:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-06 12:39 hoffman + + * Modules/Platform/: Tru64.cmake, True64.cmake: FIX: fix for bug + 1325, Tru64 not True64 + +2004-12-06 12:38 hoffman + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmLocalUnixMakefileGenerator.cxx: BUG: fix for bug 1396, object + files could not be used as sources any more + +2004-12-06 11:10 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, Source/cmMakefile.cxx, + Source/CTest/cmCTestSubmit.cxx, Source/CTest/cmCTestSubmit.h, + Utilities/Release/cmake_release.sh: merge from main tree + +2004-12-06 05:00 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-05 04:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-04 04:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-03 09:25 martink + + * Source/CMakeLists.txt: ENH: minor fix for windows + +2004-12-03 09:05 martink + + * Source/cmMakefile.cxx: ENH: fix for relative paths + +2004-12-03 06:27 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-02 13:14 hoffman + + * Source/cmMakefile.cxx: BUG: fix for 1369 before include + directories need to be always added + +2004-12-02 12:33 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: fix for bug 1385, /tmp should + not be used on windows + +2004-12-02 06:13 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-12-01 07:28 king + + * Source/kwsys/kwsys_ios_sstream.h.in: COMP: Need to choose between + and based on whether standard headers are + available. + +2004-12-01 07:24 king + + * Source/kwsys/: kwsys_ios_fstream.h.in, kwsys_ios_iostream.h.in: + COMP: Disabling old streams warnings when including old headers + on MSVC. + +2004-12-01 06:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-30 18:20 king + + * Source/kwsys/kwsys_ios_sstream.h.in: BUG: Need to include header + to use placement new syntax. Really this should be fixed + by replacing the stream buffer to set a new string instead of + reconstructing the object, but this will require quite a bit of + work to do portably. + +2004-11-30 06:29 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-29 06:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-28 06:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-27 06:28 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-26 06:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-25 06:19 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-24 09:25 andy + + * Source/CTest/: cmCTestSubmit.cxx, cmCTestSubmit.h: ENH: Add + support for proxy authentication (thanks Jean-Michel) + +2004-11-24 05:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-23 17:34 hoffman + + * Modules/Platform/AIX.cmake: ENH: try and fix aix xlC with gcc + +2004-11-23 17:28 hoffman + + * Modules/Platform/AIX.cmake: ENH: try and fix aix xlC with gcc + +2004-11-23 14:07 hoffman + + * Modules/Platform/AIX.cmake: ENH: try to fix aix with native cxx + and gcc + +2004-11-23 10:48 andy + + * Source/CTest/cmCTestUpdateHandler.cxx: ENH: Make more things XML + safe + +2004-11-23 05:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-22 05:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-21 05:44 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-20 05:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-19 09:42 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Moved custom + command rule files into special CMakeCustomCommands.dir + subdirectory. + +2004-11-19 09:32 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Unified WriteDependRules, + WriteBuildRules, WriteCleanRules, and the future + WriteInstallRules into a single WritePassRules method. Also + added WriteTargetDependsRule and WriteTargetCleanRule methods to + unify writing of depend and clean rules for each target. + +2004-11-19 05:41 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-18 08:25 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-17 08:33 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-16 08:16 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-15 09:39 martink + + * Source/ctest.cxx: COMP: fix warning + +2004-11-15 08:22 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-14 08:21 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-13 09:55 martink + + * Source/: cmCTest.cxx, ctest.cxx, CTest/cmCTestTestHandler.cxx, + CTest/cmCTestTestHandler.h: ENH: added -U option to take union of + -R and -I + +2004-11-13 08:15 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-12 05:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-11 17:40 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Another linker error + on sun + +2004-11-11 05:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-10 15:39 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: FIX: make sure the + object file name is correctly mangled for depend information + +2004-11-10 13:15 martink + + * CMakeLists.txt, CTestCustom.ctest.in: ENH: added custom supp for + cmake + +2004-11-10 10:24 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-09 09:57 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-08 05:46 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-07 05:45 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-06 05:40 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-05 15:09 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added partial clean target + support. + +2004-11-05 15:03 king + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: Moved code that checks + output path variables to separate ConfigureOutputPaths method. + Needed to provide access to the same code from a subclass. + +2004-11-05 07:39 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Implemented VERBOSE output + setting. + +2004-11-05 05:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-04 05:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-03 15:43 martink + + * Source/kwsys/SystemTools.cxx: ENH: merges from the main tree + +2004-11-03 11:02 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Generalized driver targets + and subdirectory traversal rules. The implementations of all, + depend, build, clean, install, etc. now follow a common + framework. + +2004-11-03 08:59 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Removed unneeded requires + rules now that canonical names are available. + +2004-11-03 08:46 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added convenience rules to + build targets without specifying full paths. + +2004-11-03 07:51 king + + * Source/: cmExportLibraryDependencies.cxx, + cmGeneratedFileStream.cxx, cmGeneratedFileStream.h, + cmGlobalVisualStudio7Generator.cxx, cmLocalGenerator.cxx, + cmLocalKdevelopGenerator.cxx, cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator2.cxx, + cmVTKMakeInstantiatorCommand.cxx: STYLE: Adjusted signature of + cmGeneratedFileStream to make copy-if-different more explicity. + +2004-11-03 07:27 king + + * Source/: cmGlobalVisualStudio7Generator.cxx, + cmGeneratedFileStream.cxx, cmGeneratedFileStream.h: COMP: Fix new + cmGeneratedFileStream for MSVC. + +2004-11-03 07:23 king + + * bootstrap, Source/CMakeLists.txt, + Source/cmExportLibraryDependencies.cxx, + Source/cmGeneratedFileStream.cxx, Source/cmGeneratedFileStream.h, + Source/cmLocalGenerator.cxx, Source/cmLocalKdevelopGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator2.cxx, + Source/cmVTKMakeInstantiatorCommand.cxx: ENH: Re-implemented + cmGeneratedFileStream to look like a real stream and replace the + destination file atomically. This will avoid problems with the + process being terminated while generating a file. + +2004-11-03 05:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-02 18:09 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Added partial RC + language dependency scanning (just using C dependencies for now). + +2004-11-02 17:38 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added dependencies between + libraries. + +2004-11-02 17:19 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Removed debugging + output. + +2004-11-02 17:14 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Implemented generation of + custom command rule files. + +2004-11-02 17:11 andy + + * Source/kwsys/SystemTools.cxx: COMP: Remove compile warning + +2004-11-02 08:32 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: BUG: Fixed subdirectory + implementation for Borland Make. + +2004-11-02 07:36 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Implemented subdirectory + rules for all target. + +2004-11-02 04:49 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-11-01 16:57 hoffman + + * Source/kwsys/SystemTools.cxx, Tests/Dependency/CMakeLists.txt, + Tests/Dependency/1/CMakeLists.txt, Tests/Dependency/1/OneSrc.c: + BUG: add a test for a single char dir, and fix bug introduced in + 1.53, but we still can not handle a space as the start of a + directory name + +2004-11-01 04:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-31 03:40 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-30 04:32 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-29 18:15 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added framework for + subdirectory traversal. + +2004-10-29 17:18 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Dependency + makefile lines must be at least three characters long to hold a + dependency. + +2004-10-29 16:50 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h, cmake.cxx, cmake.h: ENH: Added + build system integrity check to cmLocalUnixMakefileGenerator2. + This now uses a special --check-build-system flag to cmake which + replaces --check-rerun. Integrity of dependencies is also + checked during generation. + +2004-10-29 15:32 hoffman + + * Source/cmLocalGenerator.cxx: FIX: fix shared flag + +2004-10-29 15:31 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: remove debug print + +2004-10-29 14:57 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Fixes for Borland + Make. + +2004-10-29 13:55 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: BUG: Fixes for NMake. + +2004-10-29 13:04 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Changed AppendRecursiveMake + to GetRecursiveMakeCall and implemented jump-and-build on Windows + and UNIX. + +2004-10-29 11:42 hoffman + + * CMakeLists.txt, ChangeLog.manual, + Modules/TestCXXAcceptsFlag.cmake, Source/cmCTest.cxx, + Source/cmCacheManager.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/kwsys/SystemTools.cxx, Source/kwsys/SystemTools.hxx.in, + Tests/Complex/Executable/A.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/A.cxx, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/A.cxx, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/LoadCommand/LoadedCommand.cxx, + Tests/LoadCommandOneConfig/LoadedCommand.cxx, + Utilities/Release/cmake_release.sh: move 2.0.5 to LatestRelease + +2004-10-29 10:52 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Cleaned up format of + generated makefiles. Consolidated rule generation into single + WriteMakeRule method. Added special targets like rebuild_cache + and edit_cache. + +2004-10-29 04:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-28 15:40 hoffman + + * Source/cmIncludeDirectoryCommand.cxx: ENH: add a check for empty + include directories + +2004-10-28 15:31 hoffman + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: Create + CMake2.0.5 version + +2004-10-28 07:46 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: COMP: Fix local shadow + warnings. + +2004-10-28 07:43 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: COMP: Fix for Mac + specific code. + +2004-10-28 04:36 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-27 16:00 hoffman + + * Source/cmMakefile.cxx: ENH: look in the windows LIB env variable + for libraries + +2004-10-27 16:00 hoffman + + * Source/cmGlobalKdevelopGenerator.cxx: DOC: documentation change + +2004-10-27 15:58 hoffman + + * ChangeLog.manual, Modules/TestCXXAcceptsFlag.cmake, + Source/cmCacheManager.cxx, + Source/cmLocalUnixMakefileGenerator.cxx: ENH: merge from main + tree bug fixes + +2004-10-27 12:05 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Do not try to handle + unimplemented target types yet. Fixes for projects with + subdirectories. + +2004-10-27 11:26 andy + + * Source/cmakemain.cxx: BUG: If bootstrap cmake is run with no + argument produce error + +2004-10-27 10:53 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalUnixMakefileGenerator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: ENH: put error checking for + missing linker languages + +2004-10-27 10:47 andy + + * bootstrap, Source/cmFileCommand.cxx, + Source/cmFindPackageCommand.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmake.cxx, Source/cmake.h, + Source/cmakemain.cxx: PERF: Remove several classes from the + bootstrap and so making bootstrap smaller and faster + +2004-10-27 10:45 andy + + * Source/CursesDialog/ccmake.cxx: STYLE: Remove unused code + +2004-10-27 10:45 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added executable + dependencies on libraries including jump-and-build support. + +2004-10-27 10:45 andy + + * Modules/TestCXXAcceptsFlag.cmake: BUG: Check for the variable + first time + +2004-10-27 08:49 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Add a space before + the : only if the target name is one letter long. This works + around bugs in some shells' tab completion of target names. + +2004-10-27 08:47 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added generation of rules + for shared libraries and modules. + +2004-10-27 08:20 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added rules to build + executables. Also began to consolidate flag list construction + into separate methods. + +2004-10-27 04:37 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-26 20:13 andy + + * Source/cmCacheManager.cxx: BUG: Handle DOS files un unix file + systems + +2004-10-26 17:23 andy + + * Modules/TestCXXAcceptsFlag.cmake: BUG: Only test for cxx flags + the first time around + +2004-10-26 16:07 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Do not generate + touch rule for target level dependencies. There are no + build-time dependencies by default. + +2004-10-26 15:03 hoffman + + * Source/: cmSystemTools.cxx, cmSystemTools.h, + kwsys/SystemTools.cxx, kwsys/SystemTools.hxx.in: ENH: move stuff + from main tree to branch + +2004-10-26 14:49 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added generation of rule to + build object file. + +2004-10-26 14:33 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: handle read only directories + with configure file destination + +2004-10-26 14:12 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx: ENH: merge from main tree + +2004-10-26 13:00 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ERR: Missing std:: on + endl. + +2004-10-26 12:55 king + + * Source/cmake.cxx: ENH: Added object file dependency scanning to + cmLocalUnixMakefileGenerator2. This needs a hook in cmake.cxx. + +2004-10-26 12:54 king + + * bootstrap, Source/CMakeLists.txt: ENH: Added + cmLocalUnixMakefileGenerator2 to build. + +2004-10-26 12:53 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Added object file + dependency scanning. + +2004-10-26 10:25 andy + + * Source/CTest/Curl/getdate.c: COMP: Remove warning on icl + +2004-10-26 10:24 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Handle more REMARKS on + SGI + +2004-10-26 10:15 king + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h: ENH: Split + part of GetIncludeFlags method into separate + GetIncludeDirectories method. + +2004-10-26 08:45 andy + + * Source/kwsys/SystemTools.hxx.in: COMP: Attempt to fix warnings on + SGI + +2004-10-26 04:40 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-25 16:39 hoffman + + * Source/: cmLocalKdevelopGenerator.cxx, + cmLocalKdevelopGenerator.h: ENH: add some more comments + +2004-10-25 15:08 hoffman + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/LoadedCommand.cxx, LoadCommand/LoadedCommand.h.in, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/LoadedCommand.cxx, + LoadCommandOneConfig/LoadedCommand.h.in: ENH: clean up loaded + command test so you can tell what really failed + +2004-10-25 13:40 hoffman + + * Source/cmSystemTools.cxx: COMP: remove an unused variable warning + +2004-10-25 13:24 hoffman + + * ChangeLog.manual, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/LoadCommand/LoadedCommand.cxx, + Tests/LoadCommandOneConfig/LoadedCommand.cxx: ENH: move stuff + from main tree to fix the runsingle program mess + +2004-10-25 13:16 hoffman + + * Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: FIX: go back + to not trying to handle spaces in the path for run single command + and comment it so that people know to call the right thing + +2004-10-25 12:26 hoffman + + * Source/cmLocalKdevelopGenerator.cxx: COMP: remove warnings + +2004-10-25 12:15 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: add test back + for single char exe + +2004-10-25 11:59 hoffman + + * Source/cmSystemTools.cxx, Tests/LoadCommand/LoadedCommand.cxx, + Tests/LoadCommandOneConfig/LoadedCommand.cxx: FIX: fix + RunSingleCommand to work with spaces in the path, and with an + already quoted command + +2004-10-25 10:04 andy + + * Source/CMakeLists.txt: ENH: Allow disabling of long running tests + +2004-10-25 04:34 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-24 11:38 andy + + * Source/cmVersion.cxx: STYLE: Nightly Version update + +2004-10-22 21:52 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: remove run program + test until run single command is fixed + +2004-10-22 21:03 hoffman + + * Source/cmSystemTools.cxx: undo last check in as it breaks borland + with spaces some how + +2004-10-22 17:51 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmSystemTools.cxx, Source/kwsys/SystemTools.cxx, + Tests/Complex/Executable/A.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/A.cxx, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/A.cxx, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx: fixes from + main tree + +2004-10-22 17:05 hoffman + + * Tests/: Complex/Executable/A.cxx, + ComplexOneConfig/Executable/A.cxx, + ComplexRelativePaths/Executable/A.cxx: ENH: add missing file + +2004-10-22 17:00 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmSystemTools.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx: FIX: fix the + problem where a target is a single character and nmake gets + confused and add a test for it + +2004-10-22 16:58 hoffman + + * Source/cmTarget.cxx: COMP: remove warnings + +2004-10-22 15:45 andy + + * Source/CMakeLists.txt: COMP: Remove unnecessary commit + +2004-10-22 15:44 andy + + * bootstrap, Source/CMakeLists.txt, Source/cmCTest.cxx, + Source/cmDocumentation.cxx, Source/cmDumpDocumentation.cxx, + Source/cmVersion.cxx, Source/cmVersion.h, Source/cmake.cxx, + Source/CTest/cmCTestUpdateHandler.cxx: ENH: Add development + version support in CMake + +2004-10-22 11:04 andy + + * Source/CTest/Curl/strequal.c: COMP: This should fix the borland + random build problem + +2004-10-22 10:19 hoffman + + * Source/cmLocalKdevelopGenerator.cxx: COMP: remove warning + +2004-10-21 17:29 hoffman + + * ChangeLog.manual: add .0.5 + +2004-10-21 17:11 hoffman + + * ChangeLog.manual: add .0.5 + +2004-10-21 16:07 andy + + * Source/CTest/cmCTestTestHandler.cxx: BUG: Fix reporting of path + and full command when test program was not found + +2004-10-21 15:21 hoffman + + * Source/: cmLocalGenerator.cxx, cmTarget.cxx: COMP: fix warnings + +2004-10-21 14:55 hoffman + + * Source/cmLocalGenerator.cxx: COMP: fix warning + +2004-10-21 14:34 hoffman + + * Modules/CMakeDetermineFortranCompiler.cmake, + Modules/Platform/Windows-g77.cmake, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmTarget.cxx, + Source/cmTarget.h: ENH: add the ability to generate custom + commands for a language that is not supported by an IDE + +2004-10-21 13:34 andy + + * Source/CTest/cmCTestBuildHandler.cxx: BUG: Handle remarks on SGI + properly + +2004-10-21 11:58 hoffman + + * Source/: cmLocalKdevelopGenerator.cxx, + cmLocalKdevelopGenerator.h: ENH: better support for kdevelop3 + +2004-10-20 12:37 andy + + * Source/kwsys/CommandLineArguments.cxx: COMP: Remove warning + +2004-10-20 08:19 hoffman + + * Source/cmCTest.cxx: fix warning on LRB + +2004-10-20 08:14 hoffman + + * Source/cmCTest.cxx: COMP: remove warning + +2004-10-19 15:09 hoffman + + * CMakeLists.txt, ChangeLog.manual, Modules/CMakeTestForFreeVC.cxx, + Modules/Platform/Windows-cl.cmake, Source/CMakeLists.txt, + Source/cmAddExecutableCommand.cxx, Source/cmCTest.cxx, + Source/cmCTest.h, Source/cmFileCommand.cxx, + Source/cmForEachCommand.cxx, Source/cmGlob.cxx, Source/cmGlob.h, + Source/cmGlobalCodeWarriorGenerator.cxx, + Source/cmGlobalCodeWarriorGenerator.h, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio71Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmIncludeExternalMSProjectCommand.cxx, + Source/cmListFileLexer.c, Source/cmListFileLexer.h, + Source/cmListFileLexer.in.l, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmMakefile.cxx, + Source/cmSystemTools.h, Source/cmTryRunCommand.cxx, + Source/cmWin32ProcessExecution.cxx, + Source/cmWin32ProcessExecution.h, Source/cmakemain.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/PathDialog.cpp, Source/kwsys/SystemTools.cxx, + Tests/StringFileTest/CMakeLists.txt, + Utilities/Release/cmake_release.sh, + Utilities/Release/config_IRIX64: ENH: move 2.0.4 to LRB + +2004-10-19 14:57 hoffman + + * ChangeLog.manual: update change log + +2004-10-19 14:56 hoffman + + * Source/cmCTest.cxx: merge from main tree, add more warning cases + to ctest + +2004-10-19 14:51 hoffman + + * bootstrap: ENH: perfer gmake for bootstrap + +2004-10-19 13:25 andy + + * Tests/CTestTest/test.cmake.in: ENH: Display version of ctest + first + +2004-10-19 13:25 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Add regular expression + for remarks on IRIX + +2004-10-19 13:02 hoffman + + * Source/cmSystemTools.cxx: BUG: if the paths share nothing then + just return the remote path with no .. + +2004-10-19 12:48 andy + + * Source/cmCTest.cxx: BUG: Remove instances of // in the output + +2004-10-19 12:38 andy + + * Source/cmCTest.cxx: EHN: Even more cleanup + +2004-10-19 10:59 andy + + * Source/CMakeLists.txt, Tests/CTestTest/test.cmake.in: ERR: Fix + problems on windows + +2004-10-18 18:11 will + + * bootstrap: COMP: Fix on sun + +2004-10-18 17:24 andy + + * Source/CMakeLists.txt: ENH: Remove bogus clean step + +2004-10-18 15:37 andy + + * Source/CMakeLists.txt: BUG: Ok, this should make the test + actually do something + +2004-10-18 15:05 andy + + * Source/CMakeLists.txt: ENH: Do bootstrap test on all unix systems + +2004-10-18 13:19 hoffman + + * Source/cmSystemTools.cxx: ENH: better comments and variable names + +2004-10-18 12:33 andy + + * Source/CMakeLists.txt: ENH: Add bootstrap test + +2004-10-18 11:48 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: make sure output + path is used for target with canonical name + +2004-10-18 11:34 andy + + * bootstrap: ENH: Add check for previous bootstrap in the source + tree when doing out-of-source build + +2004-10-17 22:47 andy + + * Source/CTest/: cmCTestCoverageHandler.cxx, + cmCTestCoverageHandler.h: BUG: Fix output to match the Dart + output + +2004-10-17 22:47 andy + + * Source/CTest/cmCTestTestHandler.cxx: ENH: Cleanups and unify + output + +2004-10-17 22:46 andy + + * Source/kwsys/CMakeLists.txt: ENH: Specify full path to the + executable + +2004-10-17 22:46 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add method to get the + relative path to source or build + +2004-10-17 19:45 andy + + * Source/CTest/: cmCTestCoverageHandler.cxx, + cmCTestCoverageHandler.h: ENH: Update to the new coverage code. + It may not be perfect yet, but it is a start + +2004-10-17 19:02 andy + + * Tests/CTestTest/test.cmake.in: ENH: Propagate more things + +2004-10-17 18:50 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add + method to find file in parent directories if it exists + +2004-10-17 18:50 andy + + * Tests/CTestTest/test.cmake.in: ENH: Propagate MEMORYCHECK_COMMAND + and COVERAGE_COMMAND to the CTest test + +2004-10-17 18:49 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Handle coverage errors + +2004-10-15 11:57 andy + + * Source/CTest/Curl/CMakeLists.txt: COMP: Security.c should be only + build when Kerberos is on + +2004-10-15 09:24 king + + * Source/: cmake.cxx, cmake.h: ENH: Added --check-rerun option to + allow a runtime check of whether a new generate should really be + done. + +2004-10-15 09:23 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added + FileTimeCompare method to compare file modification times. + Currently the resolution is limited to one second. + +2004-10-15 08:57 king + + * Source/cmLocalUnixMakefileGenerator2.cxx: ENH: Added generation + of rule to build object file. + +2004-10-14 16:50 hoffman + + * Source/cmLocalGenerator.cxx: BUG: make sure all returns for + ConvertToRelativeOutputPath get passed by ConvertToOutputPath + +2004-10-14 15:09 hoffman + + * Source/cmLocalGenerator.cxx: BUG: now that system tools relative + path works, clean up the convert to relative output path code + +2004-10-14 11:59 hoffman + + * Source/cmLocalKdevelopGenerator.cxx: COMP: remove warning + +2004-10-14 11:46 hoffman + + * Source/: cmSystemTools.cxx, cmSystemTools.h: BUG: allow split + string to know if it is separating a path + +2004-10-13 11:37 hoffman + + * Source/: cmSystemTools.cxx, cmSystemTools.h: BUG: fix and comment + relative path funciton + +2004-10-13 10:45 andy + + * Source/CTest/Curl/: dict.c, formdata.c, ftp.c, getdate.c, + hostip.c, hostthre.c, http.c, http_digest.c, mprintf.c, multi.c, + telnet.c, timeval.c, transfer.c, url.c, version.c: COMP: Remove + warnings on borland build + +2004-10-13 10:01 andy + + * Source/CTest/Curl/: base64.c, connect.c, cookie.c, dict.c, + easy.c, escape.c, formdata.c: COMP: Attempt to remove warnings on + borland + +2004-10-12 18:29 andy + + * Modules/Dart.cmake: ENH: If dart or ctest are not found, use + ctest. For default drop location etc, support http submit (just + set DROP_METHOD to http. Only look for tclsh if DART_ROOT is set + +2004-10-12 10:57 hoffman + + * bootstrap, Source/CMakeLists.txt: allow kdevelop for cygwin + +2004-10-12 10:22 hoffman + + * Source/cmLocalKdevelopGenerator.cxx: BUG: remove bad headers + +2004-10-12 09:50 hoffman + + * bootstrap, Source/cmake.cxx: BUG: do not build kdevlop stuff when + bootstrapping + +2004-10-11 16:35 andy + + * Source/cmLocalKdevelopGenerator.cxx: ENH: Support not writing + files to the source tree. Generate single project file for whole + project, some other little cleanups + +2004-10-11 15:25 andy + + * Source/cmLocalKdevelopGenerator.cxx: BUG: Fix generated XML + +2004-10-11 14:47 andy + + * Source/CMakeLists.txt: STYLE: Remove anoying message + +2004-10-11 13:57 andy + + * Source/cmCTest.cxx: BUG: On Windows, remove extra CR characters. + Hopefully this will result in not duplicated new-lines + +2004-10-11 12:25 andy + + * Source/CTest/Curl/url.c: COMP: Remove alignment warning + +2004-10-11 11:57 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: fix split program from args to + not get stuck in an infinite loop in some cases + +2004-10-11 11:55 hoffman + + * Modules/CMakeTestCXXCompiler.cmake: ENH: make sure the c++ + compiler is a c++ compiler + +2004-10-11 11:53 andy + + * Source/CTest/Curl/inet_ntop.c: COMP: Remove alignment warning + +2004-10-11 11:47 hoffman + + * bootstrap: ENH: add kdev to bootstrap + +2004-10-11 11:47 andy + + * Source/CTest/Curl/if2ip.c: COMP: Remove alignment warning + +2004-10-11 11:44 andy + + * Source/CTest/Curl/hostip4.c: COMP: Remove alignment warning + +2004-10-11 11:32 hoffman + + * Source/: CMakeLists.txt, cmGlobalKdevelopGenerator.cxx, + cmGlobalKdevelopGenerator.h, cmLocalKdevelopGenerator.cxx, + cmLocalKdevelopGenerator.h, cmake.cxx: NEW: add kdevelop patch + from Alexander Neundorf + +2004-10-11 10:40 andy + + * Source/CTest/Curl/hostip.c: COMP: Remove alignment warning + +2004-10-11 10:10 andy + + * Source/CTest/Curl/: formdata.c, ftp.c: COMP: Remove alignment + warning + +2004-10-11 08:02 king + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ERR: Replaced + std::string with kwsys_stl::string for portability. + +2004-10-10 12:14 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add + method to retrieve parent directory and for checking if directory + is a subdirectory of another directory + +2004-10-08 15:20 andy + + * Source/CTest/Curl/CMakeLists.txt: COMP: If compiler know strtoll + or strtoi64, then no need for compiling strtooff.c + +2004-10-08 11:42 andy + + * Source/CTest/Curl/hostip.c: COMP: Remove warning on optimized + build + +2004-10-07 17:48 andy + + * Source/CTest/Curl/: CMakeLists.txt, config.h.in, strtoofft.c, + CMake/CurlTests.c: COMP: Remove warning about assigning + 0x8000000000000000L to long long + +2004-10-07 17:32 andy + + * Source/CTest/Curl/: CMakeLists.txt, CMake/CurlTests.c: ENH: + Properly detect strerror_r for glibc or posix" + +2004-10-07 17:17 will + + * Source/CTest/Curl/: CMakeLists.txt, CMake/CurlTests.c: FIX: + broken sun build + +2004-10-07 09:44 andy + + * Source/CTest/Curl/CMakeLists.txt: COMP: No need for ldap for now + +2004-10-07 09:28 andy + + * Source/CTest/Curl/CMake/CurlTests.c: COMP: Fix problems when + doing -Werror + +2004-10-07 08:26 andy + + * Source/CTest/Curl/connect.c: COMP: Fix C syntax, and remove + unused variable + +2004-10-07 08:20 hoffman + + * Source/CTest/Curl/ftp.c: COMP: Fix compile warnings on certain hp + systems + +2004-10-07 08:14 hoffman + + * Source/CTest/Curl/connect.c: COMP: Remove assignment warnings on + hp + +2004-10-07 07:59 andy + + * Source/CTest/Curl/hostip.h: COMP: Fix hostent redefined warning + +2004-10-07 07:56 andy + + * Source/CTest/Curl/connect.c: COMP: Undef SETBLOCK before + redefining it to remove parse warnings + +2004-10-07 07:39 andy + + * Source/CTest/Curl/connect.c: COMP: If both tests are succesfull, + prevent compiler error + +2004-10-07 07:05 andy + + * Source/CTest/Curl/connect.c: COMP: Remove unused variable warning + +2004-10-06 15:12 martink + + * Source/CTest/Curl/hostip4.c: COMP: Remove compile warning on + cygwin + +2004-10-06 13:10 martink + + * Source/CTest/Curl/hostthre.c: COMP: Attempt to remove warning + +2004-10-06 13:03 andy + + * Source/CTest/Curl/: CMakeLists.txt, CMake/CurlTests.c: COMP: + Attempt to fix non-blocking tests + +2004-10-06 12:41 hoffman + + * ChangeLog.manual, Source/cmAddExecutableCommand.cxx: FIX: merge + from main tree mac bundle fix + +2004-10-06 12:25 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx, Source/cmCTest.h: ENH: + merge from main tree fix for build overview page + +2004-10-06 08:02 andy + + * Source/CTest/Curl/strerror.c: COMP: Fix C build problem in + certain conditions + +2004-10-05 17:02 andy + + * Source/CTest/Curl/strerror.c: BUG: Prevent crash when strerror + fails + +2004-10-05 16:16 andy + + * Source/CMakeLists.txt: ERR: Too much commits + +2004-10-05 16:14 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, CTest/CMakeLists.txt, + CTest/cmCTestSubmit.cxx: PERF: Several cleanups, and remove need + for Curl directory to be in include path + +2004-10-05 12:41 hoffman + + * Source/CTest/Curl/: base64.c, connect.c, content_encoding.c, + cookie.c, curl_memory.h, easy.c, escape.c, file.c, formdata.c, + ftp.c, getdate.c, getenv.c, getinfo.c, hash.c, hostares.c, + hostasyn.c, hostip.c, hostip4.c, hostip6.c, hostsyn.c, + hostthre.c, http.c, http_chunks.c, http_digest.c, + http_negotiate.c, http_ntlm.c, if2ip.c, krb4.c, ldap.c, llist.c, + memdebug.c, memory.h, mprintf.c, multi.c, netrc.c, nwlib.c, + security.c, sendf.c, share.c, ssluse.c, telnet.c, transfer.c, + url.c: BUG: change the name of memory.h + +2004-10-05 11:37 hoffman + + * Source/cmake.cxx: FIX: correctly handle if path table can not + open + +2004-10-05 11:29 hoffman + + * bootstrap: ENH: pick native compilers first, and aCC before CC + +2004-10-05 10:59 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: fix realpath problem and unix + slashes + +2004-10-05 10:13 andy + + * Source/CTest/cmCTestSubmit.cxx: ERR: Fix TRUE build problem and + replace error couts with cerrs + +2004-10-05 10:00 andy + + * Source/: cmCTest.cxx, CTest/Curl/CMakeLists.txt, + CTest/Curl/CMake/CheckTypeSize.cmake, + CTest/Curl/CMake/CurlTests.c: ERR: Fix Windows build + +2004-10-05 09:34 andy + + * Source/CTest/Curl/: CMakeLists.txt, amigaos.c, amigaos.h, + arpa_telnet.h, base64.c, base64.h, ca-bundle.h, config.h.in, + connect.c, connect.h, content_encoding.c, content_encoding.h, + cookie.c, cookie.h, curl.copyright, curlx.h, dict.c, dict.h, + dllinit.c, easy.c, escape.c, escape.h, file.c, file.h, + formdata.c, formdata.h, ftp.c, ftp.h, getdate.c, getenv.c, + getinfo.c, getinfo.h, getpass.c, getpass.h, hash.c, hash.h, + hostares.c, hostasyn.c, hostip.c, hostip.h, hostip4.c, hostip6.c, + hostsyn.c, hostthre.c, http.c, http.h, http_chunks.c, + http_chunks.h, http_digest.c, http_digest.h, http_negotiate.c, + http_negotiate.h, http_ntlm.c, http_ntlm.h, if2ip.c, if2ip.h, + inet_ntop.c, inet_ntop.h, inet_pton.c, inet_pton.h, krb4.c, + krb4.h, ldap.c, ldap.h, llist.c, llist.h, md5.c, md5.h, + memdebug.c, memdebug.h, memory.h, mprintf.c, multi.c, netrc.c, + netrc.h, nwlib.c, progress.c, progress.h, security.c, security.h, + sendf.c, sendf.h, setup.h, share.c, share.h, speedcheck.c, + speedcheck.h, ssluse.c, ssluse.h, strequal.c, strequal.h, + strerror.c, strerror.h, strtok.c, strtok.h, strtoofft.c, + strtoofft.h, telnet.c, telnet.h, timeval.c, timeval.h, + transfer.c, transfer.h, url.c, url.h, urldata.h, version.c, + CMake/CheckSymbolExists.cmake, curl/curl.h, curl/curlver.h, + curl/easy.h, curl/mprintf.h, curl/multi.h, curl/stdcheaders.h, + curl/types.h: ENH: Update Curl to 7.12.1 + +2004-10-05 09:25 martink + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: COMP: fix + some compile issues with insert + +2004-10-05 09:05 andy + + * Source/CTest/Curl/CMake/CurlTests.c: BUG: Fix O_NONBLOCK test + +2004-10-05 09:04 andy + + * Source/CTest/Curl/CMake/: CheckTypeSize.c.in, + CheckTypeSize.cmake: ENH: We need this for the new version of + Curl. Once CMake 2.2 is released, this can go out. + +2004-10-05 09:01 martink + + * Source/cmake.cxx: COMP: fix bad include file + +2004-10-05 08:49 andy + + * bootstrap: ERR: Fix bootstrap + +2004-10-05 08:33 andy + + * Modules/: CheckTypeSize.c.in, CheckTypeSize.cmake, + CheckTypeSize.c: ENH: Add option of adding random include files + before doing CheckTypeSize + +2004-10-05 08:32 andy + + * Modules/CheckIncludeFiles.cmake: ENH: When test fails, write out + the output + +2004-10-04 16:15 king + + * Source/: cmLocalUnixMakefileGenerator2.cxx, + cmLocalUnixMakefileGenerator2.h: ENH: Started new makefile + generator implementation. It will temporarily be called + cmLocalUnixMakefileGenerator2 until it is ready to replace the + original completely. + +2004-10-04 12:31 martink + + * CMake.rtf, Source/cmake.cxx, Source/cmake.h, + Source/kwsys/SystemTools.cxx, Source/kwsys/SystemTools.hxx.in: + ENH: Mathieus support for path conversions + +2004-10-04 12:02 andy + + * Tests/CTestTest/test.cmake.in: BUG: Use kwsys from the source + tree + +2004-10-04 08:06 andy + + * Tests/CTestTest/test.cmake.in: ENH: Better sorting of results + +2004-10-03 07:27 andy + + * Tests/CTestTest/test.cmake.in: BUG: Fix problem with spaces in + the path + +2004-10-03 07:14 andy + + * Source/ctest.cxx: BUG: Attempt to remove memory leak + +2004-10-01 13:23 andy + + * Source/CTest/cmCTestBuildHandler.cxx: BUG: Add regular expression + to vector + +2004-10-01 13:10 andy + + * Tests/CTestTest/test.cmake.in: ENH: Use existing CTest and cmake + +2004-10-01 12:21 andy + + * Source/: cmCTest.cxx, cmCTest.h, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestScriptHandler.h: ENH: Add CTEST_EXECUTABLE_NAME to + CTest scripting. This way you do not have to specify ctest + executable in CTEST_COMMAND, but just a variable + +2004-10-01 11:36 king + + * Source/kwsys/testProcess.c: ERR: Added missing include of + string.h + +2004-10-01 11:13 andy + + * Tests/CTestTest/test.cmake.in: ENH: Let us recognize it on the + dashboard + +2004-09-30 18:45 andy + + * Source/CMakeLists.txt: ENH: Cleanup CTest test + +2004-09-30 18:45 andy + + * Tests/CTestTest/test.cmake.in: ENH: Do kwsys instead of CMake + +2004-09-30 18:06 andy + + * Source/CTest/: cmCTestBuildHandler.cxx, cmCTestBuildHandler.h: + ERR: Fix for non-gcc/icc compilers + +2004-09-30 17:42 king + + * Source/kwsys/testProcess.c: ENH: Added optional display of output + for tests. Avoid printing alot of output for test 6. + +2004-09-30 17:27 andy + + * Source/CTest/cmCTestBuildHandler.h: ERR: Fix error + +2004-09-30 16:24 andy + + * bootstrap: BUG: Check if the compiler is gnu. If it is, do not do + special platform tests. Fixes Bug #1215 - bootstrap uses native + flags with gnu compiler on OSF + +2004-09-30 16:20 andy + + * Source/CTest/: cmCTestBuildHandler.cxx, cmCTestBuildHandler.h: + ENH: Add support for SourceFile and LineNumber + +2004-09-29 16:07 hoffman + + * Source/: cmCTest.h, cmCacheManager.cxx, cmCacheManager.h, + cmDynamicLoader.cxx, cmGlobalGenerator.cxx, + cmLoadCacheCommand.cxx, cmLocalUnixMakefileGenerator.cxx, + cmMakefile.cxx, cmTarget.cxx, cmakewizard.cxx: ENH: shorten the + symbols a bit and remove maps of std::string for map of + cmStdString + +2004-09-29 14:14 andy + + * Source/CTest/: cmCTestTestHandler.cxx, cmCTestTestHandler.h: BUG: + Remove maximum size of test output + +2004-09-29 13:21 andy + + * Source/kwsys/SystemTools.hxx.in: ERR: Fix Windows build + +2004-09-29 12:20 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, + kwsys/SystemTools.cxx, kwsys/SystemTools.hxx.in: ENH: Move + permissions code to kwsys so that copyfile can use it. Fixes Bug + #1133 - cmake -E copy file dir sets the wrong permissions on the + destination directory + +2004-09-29 11:52 andy + + * Source/CTest/cmCTestScriptHandler.cxx: BUG: If extra update + failes, continue with dashboard. Closes Bug #894 - Fatal CVS + update error kills test, and is not reported + +2004-09-29 11:18 andy + + * Source/kwsys/SystemTools.cxx: ENH: When copy file, if the output + file exits, delete it first + +2004-09-29 08:58 andy + + * Source/kwsys/CMakeLists.txt: ENH: Allow CMake to use + CommandLineArguments without warning + +2004-09-29 08:34 andy + + * Source/kwsys/CommandLineArguments.hxx.in: ENH: Add lots of + comments + +2004-09-29 07:56 andy + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ENH: Add access to last argument + parsed + +2004-09-28 17:51 andy + + * CMakeLists.txt: ENH: Enable Command Line Arguments + +2004-09-28 17:51 andy + + * Source/CTest/: cmCTestScriptHandler.cxx, cmCTestScriptHandler.h: + ENH: Move all extracting of variables to ExtractVariables. This + way it is easy to know what variables are used + +2004-09-28 11:34 andy + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ENH: Add accessor for Argv0 + +2004-09-28 09:00 andy + + * Source/CTest/: cmCTestScriptHandler.h, cmCTestScriptHandler.cxx: + ENH: Add some documentation + +2004-09-27 16:33 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: make sure release + flags are replaced + +2004-09-27 15:21 hoffman + + * Source/CMakeLists.txt: ENH: allow for a different jni.h to enable + java testing + +2004-09-27 15:15 hoffman + + * Source/CMakeLists.txt: ENH: allow for a different jni.h to enable + java testing + +2004-09-27 15:11 hoffman + + * Source/CMakeLists.txt: space in path problem + +2004-09-27 14:39 hoffman + + * Source/CMakeLists.txt: ENH: use jni.h to determine java version + +2004-09-27 14:35 hoffman + + * CMakeLists.txt, ChangeLog.manual, Source/cmCTest.cxx, + Utilities/Release/cmake_release.sh: merge from main tree and + change version to 2.0.4 + +2004-09-27 14:21 hoffman + + * Source/CMakeLists.txt: ENH: use jni.h to determine java version + +2004-09-27 13:36 andy + + * Source/cmCTest.cxx: BUG: If notes file is missing, create empty + notes file with error message + +2004-09-27 13:03 hoffman + + * Tests/Fortran/CMakeLists.txt: clean up output of test and force + verbose makefiles + +2004-09-27 11:36 hoffman + + * Modules/CMakeJavaCompiler.cmake.in, + Modules/CMakeJavaInformation.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: BUG: make sure java jar + files are not libfoo.jar but are just foo.jar + +2004-09-27 11:03 hoffman + + * Source/CMakeLists.txt: ENH: better message for skipping java + +2004-09-27 09:49 andy + + * Modules/Documentation.cmake: ENH: Replace INCLUDE(Find...) with + FIND_PACKAGE(...) + +2004-09-24 16:54 hoffman + + * Source/CMakeLists.txt: ENH: use correct args for test of java + +2004-09-24 16:34 hoffman + + * Tests/Java/: CMakeCheckJavaPath.java, CMakeLists.txt: try and get + this java test to work + +2004-09-24 16:34 hoffman + + * Source/CMakeLists.txt: ENH: only use newer java for testing + +2004-09-24 15:40 hoffman + + * Tests/Java/: CMakeCheckJavaPath.java, CMakeLists.txt: ENH: add + some java code to try and find the system path + +2004-09-24 14:37 hoffman + + * Modules/: CMakeCXXInformation.cmake, + CMakeFortranInformation.cmake, + CMakeSystemSpecificInformation.cmake: BUG: LINK_FLAGS are now all + LINK_(LANG)_FLAGS + +2004-09-24 11:35 martink + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: fix crash with vs6 + +2004-09-24 11:34 martink + + * Source/CMakeLists.txt: ENH: check for all parts of java + +2004-09-24 11:05 hoffman + + * Tests/Java/CMakeLists.txt: ENH: remove classpath so that this + test passes with older java compilers that clober the system + class path with the -classpath option + +2004-09-24 10:07 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: replace all enabled + languages in rule vars + +2004-09-24 09:34 hoffman + + * Source/cmGlobalGenerator.cxx: ENH: change ignore function so that + it first checks to see if the extension has a language + +2004-09-24 09:11 hoffman + + * Modules/Platform/Darwin.cmake: ENH: use c++ with c++ and c flags + with c + +2004-09-24 08:39 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: correctly ignore files + +2004-09-23 17:49 hoffman + + * Source/CMakeLists.txt: temporary fix to try and get a clean + dashboard + +2004-09-23 15:02 andy + + * Source/kwsys/CommandLineArguments.cxx: ERR: Fix memory problem + +2004-09-23 11:53 andy + + * Source/kwsys/CommandLineArguments.cxx: STYLE: Only allocate as + much space as needed + +2004-09-23 11:45 andy + + * Source/kwsys/CommandLineArguments.cxx: ENH: Make + GetRemainingArguments actually work + +2004-09-23 11:44 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: only replace the language + being used in expand rule variables + +2004-09-23 09:11 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: STYLE: remove warning + +2004-09-23 09:08 hoffman + + * Source/cmTryCompileCommand.cxx: remove warning + +2004-09-23 08:51 hoffman + + * Modules/CMakeRCInformation.cmake, Source/cmGlobalGenerator.cxx: + ENH: fix problems with .def and RC files + +2004-09-23 08:20 hoffman + + * CMakeLists.txt: ENH: make sure cmake has 2.0 + +2004-09-23 07:53 andy + + * bootstrap: ENH: Attempt to detect a non-parallel make + +2004-09-22 17:50 hoffman + + * Source/cmTarget.cxx: BUG: fix perfered linker language code + +2004-09-22 17:41 hoffman + + * Tests/Java/CMakeLists.txt: use verbose makefiles + +2004-09-22 16:51 hoffman + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: make it verbose + +2004-09-22 16:44 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: fix compilation + +2004-09-22 15:14 hoffman + + * Source/cmProjectCommand.cxx: remove warnings + +2004-09-22 14:52 hoffman + + * Modules/CMakeJavaInformation.cmake: BUG: let the generator quote + the path + +2004-09-22 14:42 hoffman + + * Modules/CMakeCCompiler.cmake.in, Modules/CMakeCInformation.cmake, + Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeCommonLanguageInclude.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeDetermineRCCompiler.cmake, + Modules/CMakeFortranInformation.cmake, + Modules/CMakeGenericSystem.cmake, + Modules/CMakeJavaCompiler.cmake.in, + Modules/CMakeJavaInformation.cmake, + Modules/CMakeRCCompiler.cmake.in, + Modules/CMakeRCInformation.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestJavaCompiler.cmake, + Modules/CMakeTestRCCompiler.cmake, Modules/Platform/AIX.cmake, + Modules/Platform/FreeBSD.cmake, Modules/Platform/HP-UX.cmake, + Modules/Platform/IRIX.cmake, Modules/Platform/IRIX64.cmake, + Modules/Platform/Linux-como.cmake, Modules/Platform/Linux.cmake, + Modules/Platform/MP-RAS.cmake, Modules/Platform/NetBSD.cmake, + Modules/Platform/OSF1.cmake, Modules/Platform/RISCos.cmake, + Modules/Platform/SunOS.cmake, Modules/Platform/ULTRIX.cmake, + Modules/Platform/UNIX_SV.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-gcc.cmake, Source/CMakeLists.txt, + Source/cmCommands.cxx, Source/cmEnableLanguageCommand.cxx, + Source/cmEnableLanguageCommand.h, Source/cmGlobalGenerator.cxx, + Source/cmGlobalGenerator.h, Source/cmInstallFilesCommand.cxx, + Source/cmInstallProgramsCommand.cxx, Source/cmLocalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmMakefile.cxx, + Source/cmProjectCommand.cxx, Source/cmTarget.cxx, + Source/cmTarget.h, Source/cmTryCompileCommand.cxx, + Source/cmTryRunCommand.cxx, Tests/Fortran/CMakeLists.txt, + Tests/Java/A.java, Tests/Java/CMakeLists.txt, + Tests/Java/HelloWorld.java: ENH: major changes to support + addition of languages from cmake modules directory. + +2004-09-22 10:06 hoffman + + * Source/CMakeLists.txt: ENH: only try to use fortran if the + generator is make based + +2004-09-22 08:50 hoffman + + * Modules/CMakeFortranCompiler.cmake.in: BUG: fix GNU check + variable and add new variables used by enable language + +2004-09-21 12:51 hoffman + + * Source/cmListFileLexer.h: merge from main tree + +2004-09-21 12:47 hoffman + + * ChangeLog.manual, Source/cmListFileLexer.c, + Source/cmListFileLexer.in.l, Tests/StringFileTest/CMakeLists.txt: + merge from main tree + +2004-09-20 14:39 hoffman + + * Modules/FindJava.cmake: ENH: look for java in more places + +2004-09-20 13:47 hoffman + + * Source/: cmGlobalGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: BUG: branch only fix for + VSExternalInclude + +2004-09-20 08:51 king + + * Source/cmListFileLexer.c, Source/cmListFileLexer.in.l, + Tests/StringFileTest/CMakeLists.txt: BUG#1179: Fix for syntax in + unquoted arguments. + +2004-09-17 16:46 hoffman + + * ChangeLog.manual, Source/CMakeLists.txt, + Source/cmForEachCommand.cxx, Source/cmGlob.cxx, Source/cmGlob.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio71Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmIncludeExternalMSProjectCommand.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmWin32ProcessExecution.cxx, + Source/cmWin32ProcessExecution.h, Source/cmakemain.cxx, + Source/kwsys/SystemTools.cxx, + Tests/VSExternalInclude/CMakeLists.txt, + Tests/VSExternalInclude/main.cpp, + Tests/VSExternalInclude/Lib1/CMakeLists.txt, + Tests/VSExternalInclude/Lib1/lib1.cpp, + Tests/VSExternalInclude/Lib1/lib1.h, + Tests/VSExternalInclude/Lib2/CMakeLists.txt, + Tests/VSExternalInclude/Lib2/lib2.cpp, + Tests/VSExternalInclude/Lib2/lib2.h: merge from main tree + +2004-09-17 16:00 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: merge from main tree + bug 1041 + +2004-09-17 15:57 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: fix for bug 1041, + _MBCS sometimes added for UNIICODE which is bad + +2004-09-17 09:14 hoffman + + * Modules/CMakeJavaCompiler.cmake.in: BUG: commit bug 1123 + +2004-09-17 09:01 hoffman + + * Source/cmProjectCommand.h: BUG: 1163 fix documentation + +2004-09-16 17:16 hoffman + + * Source/cmFileCommand.cxx: merge from main tree fix bug 1122 + +2004-09-16 17:13 andy + + * Source/CTest/cmCTestBuildHandler.cxx: ENH: Attempt to handle + Intel's remarks. Close Bug #1156 - Better support for icc + 'remark' + +2004-09-16 12:39 andy + + * Source/kwsys/SystemTools.cxx: ENH: Add missing include + +2004-09-16 10:58 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add + method to retrieve the terminal width + +2004-09-16 10:49 andy + + * Source/kwsys/CommandLineArguments.cxx: ENH: a bit more cleanup. + The help should really be replaced by something like + cmDocumentation + +2004-09-16 10:48 martink + + * Source/cmGlobalVisualStudio6Generator.cxx, + Tests/VSExternalInclude/CMakeLists.txt: BUG: fix VSExternal for + visual studio 6 + +2004-09-16 10:27 andy + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ENH: Condense help string, add + support for setting line length and make it work + +2004-09-15 15:15 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx: BUG: fix external project + command for VS 7 and 71 + +2004-09-15 14:08 andy + + * Source/: cmGlob.cxx, cmGlob.h: ENH: Remove double slash + +2004-09-15 13:33 andy + + * Source/cmGlob.cxx: BUG: Attempt to fix bug on Windows (and apple) + where files returned are all lowercase + +2004-09-15 13:31 andy + + * Source/cmForEachCommand.cxx: BUG: Propagate file name and line + number inside FOREACH. Fixes Bug #1169 - Erro messages inside + FOREACH have bad filename and line number + +2004-09-15 13:03 hoffman + + * Source/cmGlobalVisualStudio7Generator.cxx: ENH: fix for vs 70 + generator + +2004-09-15 12:07 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmIncludeExternalMSProjectCommand.cxx, + cmLocalVisualStudio7Generator.cxx: ENH: clean up of + INCLUDE_EXTERNAL_MSPROJECT contributed by Clinton Stimpson + +2004-09-15 11:31 hoffman + + * Source/: cmGlobalGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: BUG: make sure env CC and CXX + are not set for VS IDE builds + +2004-09-15 10:35 martink + + * Tests/VSExternalInclude/CMakeLists.txt: ENH: produce better + output + +2004-09-15 10:32 martink + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake, + CMakeDetermineFortranCompiler.cmake: ENH: do not check for gnu + for visual studio + +2004-09-15 09:22 andy + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ENH: Move callback structure out of + the public interface. Also block the warning on Visual Studio + Debug + +2004-09-14 16:34 hoffman + + * Tests/VSExternalInclude/: CMakeLists.txt: ENH: add a test for + external projects + +2004-09-14 16:01 hoffman + + * Source/CMakeLists.txt, Tests/VSExternalInclude/CMakeLists.txt, + Tests/VSExternalInclude/main.cpp, + Tests/VSExternalInclude/Lib1/CMakeLists.txt, + Tests/VSExternalInclude/Lib1/lib1.cpp, + Tests/VSExternalInclude/Lib1/lib1.h, + Tests/VSExternalInclude/Lib2/CMakeLists.txt, + Tests/VSExternalInclude/Lib2/lib2.cpp, + Tests/VSExternalInclude/Lib2/lib2.h: ENH: add a test for external + projects + +2004-09-14 14:05 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmIncludeExternalMSProjectCommand.cxx: bug fixes for external + projects + +2004-09-14 11:48 martink + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ERR: Fix borland build + +2004-09-14 11:39 andy + + * Source/kwsys/CommandLineArguments.cxx: ERR: Add missing include + +2004-09-14 10:34 andy + + * Source/kwsys/: CommandLineArguments.cxx, + CommandLineArguments.hxx.in: ENH: Use const correctness for + arguments + +2004-09-14 09:19 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: BUG: fix include external + project bug + +2004-09-13 19:06 andy + + * Source/kwsys/: CommandLineArguments.cxx, + testCommandLineArguments.cxx: ERR: More missing ios and includes + +2004-09-13 18:57 andy + + * Source/kwsys/CommandLineArguments.cxx: ERR: Fix IOS namespace + +2004-09-13 16:15 andy + + * Source/kwsys/: CMakeLists.txt, CommandLineArguments.cxx, + CommandLineArguments.hxx.in, testCommandLineArguments.cxx: ENH: + Move command line argument parsing code to kwsys + +2004-09-10 14:40 hoffman + + * Source/: cmCTest.cxx, cmakemain.cxx: ENH: fix warning correctly + +2004-09-10 11:19 andy + + * CMakeLists.txt: ENH: Add warning messages if curses library is + not found + +2004-09-10 11:15 andy + + * Modules/FindQt.cmake: ENH: Use FIND_PACKAGE instead of + INCLUDE(Find... + +2004-09-10 08:42 martink + + * Source/cmCTest.cxx: fix dash8 warning + +2004-09-10 08:30 martink + + * Source/CTest/cmCTestTestHandler.h: fix HPUX bugs + +2004-09-09 16:05 hoffman + + * Modules/Platform/Linux-ifort.cmake: add ifort support + +2004-09-09 12:58 hoffman + + * Source/: cmCTest.cxx, cmakemain.cxx: WAR: remove a warning on i64 + +2004-09-09 11:50 hoffman + + * Modules/Platform/HP-UX.cmake: try to fix fortran on hp + +2004-09-09 10:52 martink + + * Source/CTest/cmCTestTestHandler.cxx: missing include + +2004-09-09 09:31 martink + + * Source/CTest/cmCTestCoverageHandler.cxx: missing include + +2004-09-09 08:41 martink + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestCoverageHandler.cxx, CTest/cmCTestCoverageHandler.h, + CTest/cmCTestTestHandler.cxx, CTest/cmCTestTestHandler.h, + CTest/cmCTestUpdateHandler.cxx: more cleanup of ctest + +2004-09-08 17:53 hoffman + + * Tests/Fortran/CMakeLists.txt: ENH: add more output for fortran so + I can figure out what is going on with other fortran compilers + +2004-09-08 10:41 hoffman + + * Source/: cmWin32ProcessExecution.cxx, cmWin32ProcessExecution.h: + BUG: don't close the pipes too early + +2004-09-07 16:55 hoffman + + * Source/: cmCacheManager.cxx, cmDumpDocumentation.cxx, + cmEnableTestingCommand.cxx, cmExportLibraryDependencies.cxx, + cmGlobalCodeWarriorGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmLocalUnixMakefileGenerator.cxx, + cmLocalVisualStudio6Generator.cxx, cmMakefile.cxx, + cmTryCompileCommand.cxx, cmUseMangledMesaCommand.cxx, + cmVTKWrapPythonCommand.cxx, cmVTKWrapTclCommand.cxx: ENH: add + better error reporting for file open failures + +2004-09-07 16:03 hoffman + + * Source/: cmWin32ProcessExecution.cxx, kwsys/SystemTools.cxx: Fix + leaked file and registry descriptors + +2004-09-07 12:51 martink + + * Source/: cmCTest.h, cmCTest.cxx: duh errors + +2004-09-07 11:45 martink + + * Source/: cmCTest.cxx, cmCTest.h: more warnings + +2004-09-07 11:28 martink + + * Source/CTest/cmCTestScriptHandler.cxx: more warnings + +2004-09-07 10:46 martink + + * Source/cmCTest.cxx: more cleanup + +2004-09-07 10:37 martink + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestBuildHandler.cxx, CTest/cmCTestBuildHandler.h: more + cleanup + +2004-09-07 09:17 martink + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + CTest/cmCTestConfigureHandler.cxx, + CTest/cmCTestConfigureHandler.h, CTest/cmCTestScriptHandler.cxx, + CTest/cmCTestScriptHandler.h, CTest/cmCTestUpdateHandler.cxx, + CTest/cmCTestUpdateHandler.h: some bug fixes for my recent + checkins and some more cleanup + +2004-09-06 14:43 martink + + * Source/CTest/cmCTestScriptHandler.cxx: another platform fix + +2004-09-06 14:17 martink + + * Source/CTest/cmCTestScriptHandler.h: another platform fix + +2004-09-06 13:54 martink + + * Source/cmCTest.cxx: jesus + +2004-09-06 13:37 martink + + * Source/CMakeLists.txt: oops + +2004-09-06 12:49 martink + + * Source/kwsys/SystemTools.cxx: fix warning + +2004-09-06 12:46 martink + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h: starting cleanup + of ctest + +2004-09-06 12:46 martink + + * Source/cmGlobalGenerator.cxx: warning fix + +2004-09-06 12:45 martink + + * Source/CTest/: cmCTestScriptHandler.cxx, cmCTestScriptHandler.h: + broke out part of test scripting into seperate class + +2004-09-03 15:47 hoffman + + * ChangeLog.manual, Modules/CMakeTestForFreeVC.cxx, + Modules/Platform/Windows-cl.cmake: merge from main tree fix for + free vc tools + +2004-09-03 15:19 hoffman + + * Modules/: CMakeTestForFreeVC.cxx, Platform/Windows-cl.cmake: ENH + better test for free VC tools + +2004-09-03 13:49 hoffman + + * Source/cmGlobalCodeWarriorGenerator.cxx: remove warning + +2004-09-03 13:48 hoffman + + * Source/cmGlobalCodeWarriorGenerator.cxx: fix for darwin + +2004-09-03 13:24 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator.cxx: ENH: remove warnings + +2004-09-03 12:03 hoffman + + * Modules/CMakeCCompiler.cmake.in, + Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeFortranCompiler.cmake.in, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator.cxx, Source/cmMakefile.cxx: + ENH: define language extensions in cmake files and not hard + coded, also fix trycompile problem + +2004-09-03 12:01 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: check for ms free command + line tools + +2004-08-31 18:51 king + + * Source/cmListFileCache.cxx: BUG: Fixed line number of end of file + error message. + +2004-08-31 18:39 king + + * Source/: cmListFileCache.cxx, cmListFileLexer.c, + cmListFileLexer.h, cmListFileLexer.in.l: BUG#1049: Added error + message when file ends in an unterminated string. + +2004-08-31 10:41 king + + * Source/cmFileCommand.cxx: BUG: Fix crash when CMAKE_DEBUG_POSTFIX + is not set. + +2004-08-31 10:20 andy + + * DartConfig.cmake: ENH: Cleanups + +2004-08-31 08:25 king + + * Source/kwsys/kwsys_ios_iosfwd.h.in: ERR: Removed inclusion of + fstream header. This file is meant as a compatibility header for + iosfwd and therefore should not include any other header. + Whatever was fixed by adding the include of fstream here should + be fixed by other means. + +2004-08-30 15:15 hoffman + + * ChangeLog.manual, Source/cmCTest.cxx: merge fixes from main tree + +2004-08-30 14:07 hoffman + + * ChangeLog.manual, Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, Source/cmMakefile.cxx: + fix RUN_TESTS and generated header files merge from main tree + +2004-08-30 14:01 hoffman + + * ChangeLog.manual, Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-gcc.cmake, Source/cmSystemTools.h, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/PathDialog.cpp, + Utilities/Release/cmake_release.sh: merge from main tree + +2004-08-30 13:50 hoffman + + * Source/: cmSystemTools.h, MFCDialog/CMakeSetupDialog.cpp, + kwsys/SystemTools.cxx: BUG: fixes for mingw and CMakesetup with + spaces in the source directory + +2004-08-30 12:14 hoffman + + * Modules/Platform/Windows-gcc.cmake: Make sure cmake uses + consistent module prefixes + +2004-08-27 09:55 hoffman + + * Source/cmMakefile.h: ENH: remove warning + +2004-08-27 08:41 hoffman + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalBorlandMakefileGenerator.h, + cmGlobalCodeWarriorGenerator.cxx, cmGlobalCodeWarriorGenerator.h, + cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.h, + cmGlobalUnixMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmMakefile.cxx, cmMakefile.h, + cmProjectCommand.cxx: ENH: try to initialize all languages at the + same time + +2004-08-26 22:52 andy + + * Modules/: CMakeBackwardCompatibilityC.cmake, + CMakeBackwardCompatibilityCXX.cmake, Documentation.cmake, + FindFLTK.cmake, FindGLU.cmake, FindGnuplot.cmake, + FindOpenGL.cmake, FindPNG.cmake, FindPerl.cmake, + FindPythonLibs.cmake, FindQt.cmake, FindSelfPackers.cmake, + FindTCL.cmake, FindThreads.cmake, FindUnixCommands.cmake, + FindVTK.cmake, FindWget.cmake, FindX11.cmake, + FindwxWidgets.cmake, FindwxWindows.cmake, + TestForANSIStreamHeaders.cmake, UseVTK40.cmake, + Use_wxWindows.cmake, UsewxWidgets.cmake, + Platform/CYGWIN-g77.cmake: ENH: Cleanup. Use relative path to + modules + +2004-08-26 21:43 hoffman + + * Modules/Platform/SunOS.cmake: hack to try and fix sun platform + +2004-08-26 18:00 king + + * Docs/cmake-mode.el: BUG: Only count block open tokens if they are + followed by an open paren. + +2004-08-26 17:49 hoffman + + * Source/cmTryCompileCommand.cxx: ENH: try compiles in CXX require + C to be enabled as well + +2004-08-26 16:34 hoffman + + * Modules/CMakeDetermineFortranCompiler.cmake, + Source/CMakeLists.txt: ENH: try to find fortran compiler before + adding the test + +2004-08-26 16:11 hoffman + + * Source/CMakeLists.txt: ENH: try to find fortran compiler before + adding the test + +2004-08-26 16:00 hoffman + + * Source/CMakeLists.txt: remove test fortran for now + +2004-08-26 15:55 hoffman + + * Source/CMakeLists.txt: Add a fortran test if there is a fortran + compiler + +2004-08-26 15:50 hoffman + + * Modules/CMakeDetermineFortranCompiler.cmake, + Source/CMakeLists.txt: Add a fortran test if there is a fortran + compiler + +2004-08-26 14:55 hoffman + + * Modules/CMake.cmake, Modules/CMakeCInformation.cmake, + Modules/CMakeCXXInformation.cmake, + Modules/CMakeCommonLanguageInclude.cmake, + Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineFortranCompiler.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeFortranCompiler.cmake.in, + Modules/CMakeFortranInformation.cmake, + Modules/CMakeGenericSystem.cmake, + Modules/CMakeJavaCompiler.cmake.in, + Modules/CMakeJavaInformation.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestFortranCompiler.cmake, + Modules/Platform/AIX.cmake, Modules/Platform/BSDOS.cmake, + Modules/Platform/CYGWIN.cmake, Modules/Platform/Darwin.cmake, + Modules/Platform/FreeBSD.cmake, Modules/Platform/HP-UX.cmake, + Modules/Platform/IRIX.cmake, Modules/Platform/IRIX64.cmake, + Modules/Platform/Linux.cmake, Modules/Platform/MP-RAS.cmake, + Modules/Platform/NetBSD.cmake, Modules/Platform/OSF1.cmake, + Modules/Platform/OpenBSD.cmake, Modules/Platform/RISCos.cmake, + Modules/Platform/SCO_SV.cmake, Modules/Platform/SINIX.cmake, + Modules/Platform/SunOS.cmake, Modules/Platform/True64.cmake, + Modules/Platform/ULTRIX.cmake, Modules/Platform/UNIX_SV.cmake, + Modules/Platform/UnixWare.cmake, + Modules/Platform/Windows-gcc.cmake, + Modules/Platform/Windows-ifort.cmake, + Modules/Platform/Xenix.cmake, Source/CMakeLists.txt, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmListFileCache.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmProjectCommand.cxx, Source/cmTryCompileCommand.cxx, + Source/cmake.cxx, Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/Fortran/CMakeLists.txt: ENH: more uniform approach to + enable language, one step closer to being able to enable a + language without modifing cmake source code + +2004-08-26 09:45 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Make default date shorter + +2004-08-25 12:42 hoffman + + * Source/cmCTest.cxx: ENH: better error display for failure + +2004-08-25 08:44 hoffman + + * Source/cmCTest.cxx: ENH: produce better error message for missing + variables in -S mode + +2004-08-24 11:30 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ERR: Fix the list of + targets. The base target name now includes the MACOSX_BUNDLE path + +2004-08-24 11:17 andy + + * Source/cmAddExecutableCommand.cxx: BUG: If macdir does not end + with '/' then add it always, not just when adding current + directory + +2004-08-23 14:33 andy + + * Source/: cmake.cxx, MFCDialog/CMakeSetupDialog.cpp: ENH: + Implement PreLoad.cmake feature for CMakeSetup + +2004-08-23 14:09 hoffman + + * Source/CTest/CMakeLists.txt: fix syntax + +2004-08-23 13:45 hoffman + + * CMakeLists.txt, Source/CTest/CMakeLists.txt: ENH: fix out of the + box build on sgi to match dashboards + +2004-08-23 11:33 hoffman + + * Modules/FindJava.cmake: BUG: 1107 add extra place to look for + java + +2004-08-23 11:29 martink + + * Source/cmCTest.cxx: now will check out src dir if it has the necc + info + +2004-08-23 11:21 hoffman + + * Modules/FindJava.cmake: BUG: 1107 add extra place to look for + java + +2004-08-19 12:51 andy + + * Source/cmCTest.cxx: ENH: Handle gmake error message + +2004-08-18 09:28 andy + + * Modules/CMakeSystemSpecificInformation.cmake: BUG: Unly set gcc + flags for C compiler if CMAKE_COMPILER_IS_GNUCC is set + +2004-08-18 08:52 andy + + * Source/cmCTest.cxx: BUG: When GetNightlyTime returns past time, + fix everything. Also, return correct time when printing + +2004-08-17 19:18 andy + + * Modules/Platform/Darwin-xlc.cmake: ENH: Initial import for Darwin + using xlC + +2004-08-17 16:13 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: ENH: Reload + PreLoad.cmake every time you do configure + +2004-08-17 15:36 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: ENH: Enable preload for + ccmake + +2004-08-17 15:36 andy + + * Source/: cmake.cxx, cmake.h: ENH: Move PreLoad.cmake code to + public method so that ccmake and CMakeSetup can call it + +2004-08-17 14:23 andy + + * Source/cmCTest.cxx: BUG: Attempt to fix timezone problem where + start time appears one day before the actual start time. Also add + verbosity to GetNightlyTime + +2004-08-16 09:03 king + + * Utilities/Release/config_IRIX64: BUG: Need to set HAVE_LIBCRYPTO + to 0 instead of letting the test be done. + +2004-08-11 20:36 hoffman + + * Source/cmCTest.cxx: fix it + +2004-08-11 16:58 hoffman + + * Source/: cmAbstractFilesCommand.cxx, cmAddExecutableCommand.cxx, + cmCreateTestSourceList.cxx, cmGlobalCodeWarriorGenerator.cxx, + cmGlobalGenerator.cxx, cmGlobalUnixMakefileGenerator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmUtilitySourceCommand.cxx: + ENH: use GetRequiredDefinition instead of GetDefinition and crash + +2004-08-11 16:57 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: ENH: change RUN_TESTS to use + -C and not -D also use GetRequiredDefinition where needed + +2004-08-11 16:37 hoffman + + * Source/cmCTest.cxx: ENH: fixes for RUN_TESTS from visual studio + IDE, fprintf does not print right away, so std::cerr had to be + used. Also, allow .\ to start the config type + +2004-08-11 16:35 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestFortranCompiler.cmake, Source/cmSystemTools.cxx: + ENH: minor fortran fixes + +2004-08-11 09:31 hoffman + + * CMakeLists.txt, ChangeLog.manual, DartConfig.cmake, + Docs/cmake-mode.el, Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeVS8FindMake.cmake, Modules/Dart.cmake, + Modules/FindDoxygen.cmake, Modules/FindFLTK.cmake, + Modules/FindKDE.cmake, Modules/FindQt.cmake, + Modules/FindSWIG.cmake, Modules/UseSWIG.cmake, + Source/CMakeLists.txt, Source/cmAuxSourceDirectoryCommand.h, + Source/cmCTest.cxx, Source/cmCTest.h, Source/cmCommands.cxx, + Source/cmCreateTestSourceList.cxx, Source/cmDynamicLoader.cxx, + Source/cmExecProgramCommand.cxx, Source/cmFLTKWrapUICommand.cxx, + Source/cmFileCommand.cxx, Source/cmGetTargetPropertyCommand.h, + Source/cmGlobalCodeWarriorGenerator.cxx, + Source/cmGlobalGenerator.cxx, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalVisualStudio8Generator.h, Source/cmIfCommand.cxx, + Source/cmIfCommand.h, Source/cmLinkLibrariesCommand.cxx, + Source/cmListFileLexer.c, Source/cmListFileLexer.in.l, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmMakefile.cxx, + Source/cmQTWrapCPPCommand.cxx, Source/cmQTWrapUICommand.cxx, + Source/cmSubdirCommand.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTarget.cxx, + Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmTryRunCommand.cxx, Source/cmUseMangledMesaCommand.cxx, + Source/cmWin32ProcessExecution.cxx, Source/cmake.cxx, + Source/cmakewizard.h, Source/CTest/cmCTestSubmit.cxx, + Source/CTest/cmCTestSubmit.h, Source/CTest/Curl/CMakeLists.txt, + Source/CursesDialog/cmCursesMainForm.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/PathDialog.cpp, Source/kwsys/CMakeLists.txt, + Source/kwsys/ProcessUNIX.c, Source/kwsys/SystemTools.cxx, + Templates/CMakeWindowsSystemConfig.cmake, + Templates/TestDriver.cxx.in, Tests/Simple/CMakeLists.txt, + Tests/SimpleInstall/CMakeLists.txt, Tests/SimpleInstall/inst.cxx, + Tests/SimpleInstall/lib4.cxx, Tests/SimpleInstall/lib4.h, + Tests/SimpleInstall/TestSubDir/CMakeLists.txt, + Tests/SimpleInstall/TestSubDir/TSD.cxx, + Tests/SimpleInstall/TestSubDir/TSD.h, + Tests/SimpleInstall/TestSubDir/TSD_utils.cxx, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/inst.cxx, Tests/SimpleInstallS2/lib4.cxx, + Tests/SimpleInstallS2/lib4.h, + Tests/SimpleInstallS2/TestSubDir/CMakeLists.txt, + Tests/SimpleInstallS2/TestSubDir/TSD.cxx, + Tests/SimpleInstallS2/TestSubDir/TSD.h, + Tests/SimpleInstallS2/TestSubDir/TSD_utils.cxx, + Utilities/Doxygen/CMakeLists.txt, + Utilities/Release/cmake_release.sh: Moving latest release branch + to CMake-2-0-3. + +2004-08-09 18:39 martink + + * Source/cmIncludeCommand.cxx: ENH: Allow user to overwrite + Platforms files + +2004-08-09 18:20 martink + + * Modules/Platform/Windows-icl.cmake: ENH: Initial import + +2004-08-09 17:42 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: fix for try run failing on + some cygwin builds. Allow a driver letter to start a full path + on cygwin + +2004-08-09 13:03 hoffman + + * Source/cmMakefile.cxx: BUG: fix bug where custom command + generated .h files do not get the header_file_only flag set + +2004-08-06 15:05 hoffman + + * Tests/Fortran/: CMakeLists.txt, hello.f: ENH: initial fortran + +2004-08-06 14:51 hoffman + + * Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/CMakeDetermineFortranCompiler.cmake, + Modules/CMakeFortranCompiler.cmake.in, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestFortranCompiler.cmake, + Modules/Platform/CYGWIN-g77.cmake, Modules/Platform/g77.cmake, + Source/cmGlobalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTarget.cxx, Source/cmTarget.h, + Source/cmTryCompileCommand.cxx: ENH: initial fortran support + +2004-08-05 11:59 hoffman + + * Modules/FindQt.cmake: ENH: remove verbose QT message + +2004-08-05 11:51 king + + * Source/cmAddExecutableCommand.cxx: ERR: Replacing hack call to + CONFIGURE_FILE command with direct call to + m_Makefile->ConfigureFile. + +2004-08-05 10:27 king + + * ChangeLog.manual, Source/cmGlobalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx: BUG#427: Merging fix to + CMake 2.0 release branch. + +2004-08-05 10:17 king + + * Source/: cmGlobalGenerator.cxx, cmLocalUnixMakefileGenerator.cxx: + BUG#427: Generated makefiles need to have targets with canonical + names for each executable and library target in order for + try-compiles to work correctly when specifying the target. + +2004-08-05 09:29 king + + * ChangeLog.manual, Source/cmGlobalCodeWarriorGenerator.cxx, + Source/cmGlobalCodeWarriorGenerator.h, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmMakefile.cxx, + Source/cmTryRunCommand.cxx: Merging fixes from main tree. See + ChangeLog.manual section on 2.0.4 for details. + +2004-08-05 09:17 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Fixed crash when + CMAKE_CXX_STACK_SIZE is not defined. + +2004-08-04 17:24 king + + * Source/cmMakefile.cxx: BUG: Fix crash when adding a custom + command to a source file that cannot be created. + +2004-08-04 17:21 hoffman + + * Source/cmTryRunCommand.cxx: ENH: allow debug of tryrun + +2004-08-04 16:33 king + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmGlobalCodeWarriorGenerator.h, cmGlobalGenerator.cxx, + cmGlobalGenerator.h, cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmMakefile.cxx: BUG: + CMAKE_TRY_COMPILE_CONFIGURATION should be obtained from the + cmMakefile instance for the listfile containing the TRY_COMPILE + call, not the top level listfile. + +2004-08-04 14:34 king + + * Source/cmMakefile.cxx: ERR: Removed duplicate default arguments. + +2004-08-04 13:05 hoffman + + * Source/: cmake.cxx, MFCDialog/CMakeSetupDialog.cpp: fix incorrect + selection of visual studio generator + +2004-08-04 10:45 king + + * Source/: cmCPluginAPI.cxx, cmForEachCommand.cxx, + cmListFileCache.cxx, cmListFileCache.h, cmMacroCommand.cxx, + cmMakefile.cxx, cmMakefile.h: ENH: Added support for special + variables CMAKE_CURRENT_LIST_FILE and CMAKE_CURRENT_LIST_LINE + that evaluate to the file name and line number in which they + appear. This implements the feature request from bug 1012. + +2004-08-04 10:00 king + + * Source/: cmake.cxx, MFCDialog/CMakeSetupDialog.cpp: BUG: Fixed + typo in name of MSVC 8 registry key. + +2004-08-04 08:50 andy + + * Source/cmIfCommand.cxx: ERR: Fix warnings and memory leak + +2004-08-03 10:20 hoffman + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: create a + server that does not use vtkPVApplication or tcl wrapping. Move + several classes from GUI/Client to Servers/Filters. Remove use of + PARAVIEW_NEW_SOURCE_ORGANIZATION define. + +2004-08-03 08:13 andy + + * Source/: cmIfCommand.cxx, cmIfCommand.h: BUG: When regular + expression failes to compile, produce error: Fixes part of Bug + #1025 - CMake silently ignores regular expression failure + +2004-08-02 08:36 andy + + * Source/cmCTest.cxx: BUG: these flags do not take arguments, so + they do not really need to check if they are last. Fixes Bug + #1020 - ctest doesn't parse its options correctly + +2004-07-30 15:50 andy + + * Source/: cmInstallFilesCommand.h, cmInstallProgramsCommand.h, + cmInstallTargetsCommand.h: ENH: Since install works on Windows + too, remove the UNIX + +2004-07-30 09:42 hoffman + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: change + version to 2.0.3 + +2004-07-29 17:15 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add some documentation, and + make sure that the flag given to -D -T or -M is valid. Fixes Bug + #1015 - Documentation: ctest -D + +2004-07-29 17:07 andy + + * Modules/Dart.cmake: ENH: Add MemCheck to the list of Make + targets. Closes Bug #1016 - Testing targets in Makefile + +2004-07-29 15:26 andy + + * Source/cmCTest.cxx: ENH: Add AIX linker error + +2004-07-29 14:45 hoffman + + * ChangeLog.manual, Modules/Dart.cmake, Source/cmCTest.cxx, + Source/cmCTest.h, Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmMakefile.cxx, + Source/cmTarget.cxx, Source/cmake.cxx, + Source/CTest/cmCTestSubmit.cxx, Source/kwsys/SystemTools.cxx: + merges from main tree + +2004-07-29 14:19 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake, + Source/cmTarget.cxx, Source/cmakewizard.h: merge from main tree, + comment spelling fixes + +2004-07-29 11:46 king + + * ChangeLog.manual, Source/cmLinkLibrariesCommand.cxx, + Source/cmTargetLinkLibrariesCommand.cxx: BUG: Fixed crash when + optimized/debug argument to a link-libraries command is not + followed by a value. + +2004-07-29 11:43 king + + * Source/: cmTargetLinkLibrariesCommand.cxx, + cmLinkLibrariesCommand.cxx: BUG: Fixed crash when optimized/debug + argument is not followed by a value. + +2004-07-29 11:11 andy + + * Tests/X11/CMakeLists.txt: ERR: Fix test to use post CMAKE_X_LIBS + variables + +2004-07-29 10:22 king + + * ChangeLog.manual: ENH: Added changes for + cmAuxSourceDirectoryCommand.h and cmGetTargetPropertyCommand.h + +2004-07-28 08:12 king + + * Source/: cmGetTargetPropertyCommand.h: ENH: Added documentation + of LOCATION target property. + +2004-07-27 13:40 hoffman + + * Source/cmake.cxx: BUG: fix for bug 971, pick a better generator + from the command line + +2004-07-27 08:52 andy + + * Modules/Dart.cmake: DOC: Fix typo + +2004-07-27 08:49 andy + + * Source/CTest/cmCTestSubmit.cxx: BUG: Allow submit and trigger url + to contain ?. Fixes Bug #997 - CTest cannot handle URLs which + contain a "?" + +2004-07-27 08:48 andy + + * Modules/Dart.cmake: ENH: Allow project to overwrite + CMAKE_SYSTEM_NAME part of default BUILDNAME + +2004-07-26 16:59 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake, + Source/cmMakefile.cxx, Source/cmTarget.cxx, Source/cmakewizard.h: + BUG: fix for bug 998, fix spelling errors + +2004-07-26 16:00 andy + + * Source/cmCTest.cxx: ENH: Support Threading Problem in memcheck + +2004-07-26 15:52 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add maximum size of test + output + +2004-07-24 19:58 king + + * Source/: cmAuxSourceDirectoryCommand.h: ENH: Added warning about + using this command to avoid listing sources for a library by + hand. It is supposed to be used only for Templates directories. + +2004-07-22 11:20 hoffman + + * ChangeLog.manual, Modules/FindFLTK.cmake, Modules/FindQt.cmake, + Source/cmCTest.cxx, Source/cmDynamicLoader.cxx, + Source/cmGlobalCodeWarriorGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, Source/cmMakefile.cxx, + Source/cmUseMangledMesaCommand.cxx, Source/cmake.cxx, + Source/CursesDialog/cmCursesMainForm.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp, + Templates/CMakeWindowsSystemConfig.cmake, + Templates/TestDriver.cxx.in: merge from main tree + +2004-07-22 10:59 hoffman + + * Modules/: FindFLTK.cmake, FindQt.cmake: BUG: put back flags to + maintain backwards compatibility + +2004-07-20 16:18 andy + + * Source/: cmCTest.cxx, cmCTest.h: BUG: Encode current time so that + on some international computers xslt will not break. Also, for + continuous, do not repeat if there were locally modified files or + conflict, but only when things actually update + +2004-07-20 11:09 andy + + * Source/kwsys/SystemTools.cxx: BUG: If source and destination is + the same file, then do not copy file always + +2004-07-20 11:07 andy + + * Source/cmMakefile.cxx: ENH: When running cmake with PreLoad make + sure CMAKE_CURRENT_SOURCE/BINARY_DIR works + +2004-07-20 11:02 hoffman + + * Source/CursesDialog/cmCursesMainForm.cxx: ENH: remove deletes + +2004-07-19 13:01 hoffman + + * Source/CursesDialog/cmCursesMainForm.cxx: BUG: fix for 981 cursor + returns to correct place in help screen + +2004-07-19 13:00 hoffman + + * Source/cmDynamicLoader.cxx: bug fix for 986 + +2004-07-16 16:02 hoffman + + * Source/cmake.cxx: ENH: add a message at the end of the cmake run + telling the user where things were written. + +2004-07-16 15:18 hoffman + + * Templates/TestDriver.cxx.in: make sure tests flush output + +2004-07-15 14:38 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: sort flags, and + fix order and case problems and add a few more + +2004-07-15 13:53 martink + + * Source/cmCTest.cxx: better error warning exceptions + +2004-07-14 19:53 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: remove warnings + +2004-07-14 16:10 hoffman + + * Source/: cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: ENH: use a map to fill out + flags, and keep command line consistent with the GUI + +2004-07-14 16:09 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: Fix browse button to use + correct windows style initial directory + +2004-07-13 17:33 king + + * Source/kwsys/testProcess.c: BUG: Fixed off-by-one error in test6 + function. + +2004-07-13 17:27 king + + * Source/kwsys/: testProcess.c, CMakeLists.txt: ENH: Added test for + runaway output. + +2004-07-13 16:50 king + + * Source/kwsys/ProcessWin32.c: ENH: Re-arranged handling of the two + threads per pipe to improve readability of code. + +2004-07-13 16:23 king + + * Source/kwsys/ProcessWin32.c: BUG: Fix for read pipe wakeup when + child is writing alot of data and may fill the pipe buffer before + WriteFile is called. + +2004-07-13 13:05 martink + + * Source/CTest/Curl/CMakeLists.txt: fix warnign on OSX + +2004-07-13 11:06 martink + + * Source/: cmCTest.cxx, cmCTest.h: submit elapsed times as well + +2004-07-13 10:03 andy + + * Modules/FindQt.cmake: BUG: These regular expressions were wrong + because \\t does not match tab. Also, this fix prevents whole + file to be dumped to the cache + +2004-07-09 15:38 hoffman + + * Modules/FindQt.cmake: merge in fixes from neundorf at kde org, + bug 869 + +2004-07-09 14:18 hoffman + + * Source/: cmMakefile.cxx, cmUseMangledMesaCommand.cxx: BUG: fix + spelling errors BUG 952 + +2004-07-09 13:50 hoffman + + * Source/cmGlobalCodeWarriorGenerator.cxx, + Templates/CMakeDotNetSystemConfig.cmake, + Templates/CMakeWindowsSystemConfig.cmake: BUG: remove unused + variable CMAKE_OBJECT_FILE_SUFFIX from cmake + +2004-07-09 11:49 king + + * Source/kwsys/ProcessUNIX.c: ERR: Fixed missing return warning. + Code was not reachable anyway. + +2004-07-09 09:12 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: remove double + include flags for rc resouce compiles + +2004-07-07 18:15 king + + * Source/kwsys/ProcessWin32.c: ENH: Added windows implementation of + Disown/Detach. + +2004-07-07 17:46 king + + * Source/kwsys/ProcessUNIX.c: BUG: Do not disown if process has + already been killed or the timeout expired. Also need to call + kwsysProcessCleanup to disown. + +2004-07-07 17:27 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c, ProcessWin32.c: ENH: + Added kwsysProcess_Disown an kwsysProcess_Option_Detach to allow + detached processes to be created. Currently implemented only on + UNIX. + +2004-07-07 17:09 hoffman + + * ChangeLog.manual, DartConfig.cmake, + Modules/CMakeVS8FindMake.cmake, Modules/FindSWIG.cmake, + Modules/UseSWIG.cmake, Source/CMakeLists.txt, Source/cmCTest.cxx, + Source/cmCTest.h, Source/cmExecProgramCommand.cxx, + Source/cmFileCommand.cxx, Source/cmGlobalGenerator.cxx, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalVisualStudio8Generator.h, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmMakefile.cxx, + Source/cmQTWrapUICommand.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTryRunCommand.cxx, + Source/cmWin32ProcessExecution.cxx, Source/cmake.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/kwsys/CMakeLists.txt, Source/kwsys/ProcessUNIX.c, + Source/kwsys/SystemTools.cxx, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/inst.cxx, Tests/SimpleInstall/lib4.cxx, + Tests/SimpleInstall/lib4.h, + Tests/SimpleInstall/TestSubDir/CMakeLists.txt, + Tests/SimpleInstall/TestSubDir/TSD.cxx, + Tests/SimpleInstall/TestSubDir/TSD.h, + Tests/SimpleInstall/TestSubDir/TSD_utils.cxx, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/inst.cxx, Tests/SimpleInstallS2/lib4.cxx, + Tests/SimpleInstallS2/lib4.h, + Tests/SimpleInstallS2/TestSubDir/CMakeLists.txt, + Tests/SimpleInstallS2/TestSubDir/TSD.cxx, + Tests/SimpleInstallS2/TestSubDir/TSD.h, + Tests/SimpleInstallS2/TestSubDir/TSD_utils.cxx: merge from main + tree, see ChangeLog.manual for changes + +2004-07-07 16:09 andy + + * Source/cmCTest.cxx: BUG: LastMemCheck is not really an XML file + +2004-07-07 13:03 king + + * Source/kwsys/ProcessUNIX.c: ERR: Using KWSYSPE_PIPE_BUFFER_SIZE + in place of separate bufferSize constant for consistency. + +2004-07-05 12:16 hoffman + + * Modules/CMakeVS8FindMake.cmake, + Modules/Platform/Windows-cl.cmake, Source/CMakeLists.txt, + Source/cmGlobalGenerator.cxx, + Source/cmGlobalVisualStudio8Generator.cxx, + Source/cmGlobalVisualStudio8Generator.h, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmake.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp: ENH: add support for + VCExpress 2005 + +2004-07-04 00:05 hoffman + + * Source/kwsys/ProcessUNIX.c: no c++ comments in c + +2004-07-03 12:00 hoffman + + * Source/kwsys/ProcessUNIX.c: fix for hp build + +2004-07-02 17:39 king + + * Source/kwsys/CMakeLists.txt: BUG: Need a C-only library for C + tests. + +2004-07-02 16:39 king + + * Source/kwsys/ProcessUNIX.c: BUG#392: Implementation of process + tree killing for systems with /proc filesystem. + +2004-07-02 16:29 king + + * Source/: cmCTest.cxx, cmCTest.h: BUG#969: Partially fixed by at + least using the timeout for the individual calls to + RunSingleCommand from within the inner ctest instance. This + should be modified to incrementally adjust remaining time. + +2004-07-02 16:27 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Made + RunSingleCommand take a double as its timeout length. + +2004-07-02 14:09 king + + * Source/cmFileCommand.cxx: BUG: Fixed generation of installation + manifest to account for library versioning symlinks. Also + removed DESTDIR prefix from generated manifest. + +2004-07-02 14:08 king + + * Source/cmLocalGenerator.cxx: BUG: install_manifest.txt should be + overwritten each time the install is run. + +2004-07-02 13:39 king + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ERR: Removed debugging code from + test. + +2004-07-02 11:51 andy + + * Source/cmFileCommand.cxx: BUG: If the destination is the same as + source, do not copy file. Fixes Bug #956 - make install broken + +2004-07-02 09:57 andy + + * Source/cmake.cxx: ENH: Also read PreLoad.cmake from the binary + tree + +2004-06-30 11:31 hoffman + + * Source/: cmMakefile.cxx, kwsys/SystemTools.cxx: ENH: add + CMAKE_FILE_PATH, CMAKE_PROGRAM_PATH, CMAKE_LIBRARY_PATH, and + search them first, PATH second, and last the paths listed in the + FIND call + +2004-06-30 08:59 andy + + * Source/cmFileCommand.cxx: ERR: Fix typo + +2004-06-29 16:40 hoffman + + * Source/cmQTWrapUICommand.cxx: ENH: remove QT_WRAP_UI flag + +2004-06-29 10:22 hoffman + + * Modules/FindSWIG.cmake: BUG: make sure if swig is found, we know + it is found + +2004-06-29 09:23 andy + + * Source/cmFileCommand.cxx, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Better handling of + debug postfix and fix the test + +2004-06-28 16:39 andy + + * Source/cmFileCommand.cxx, Source/cmGlobalGenerator.cxx, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ERR: Fix visual studio + install + +2004-06-28 14:39 andy + + * Source/cmFileCommand.cxx, Source/cmLocalGenerator.cxx, + Source/cmLocalGenerator.h, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/inst.cxx, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/inst.cxx, Tests/SimpleInstall/lib4.cxx, + Tests/SimpleInstall/lib4.h, Tests/SimpleInstallS2/lib4.cxx, + Tests/SimpleInstallS2/lib4.h: BUG: Implement installing of shared + library versioning and add test for the whole thing + +2004-06-28 11:14 andy + + * Modules/UseSWIG.cmake: BUG: Add more comments and fix + CMAKE_SWIG_FLAGS + +2004-06-28 09:08 andy + + * Modules/FindSWIG.cmake: BUG: Replace MATCHES with STREQUAL for + better checking, better checking for existence of swig directory, + verify if required flag was set, support fedora's location of + swig. Fixes Bug #955 - Swig on fedora and Bug #954 - + FIND_PACKAGE(SWIG REQUIRED) + +2004-06-26 08:40 hoffman + + * Modules/UseSWIG.cmake: BUG: SWIG_FLAGS was ignored by the add + swig source to module command + +2004-06-25 14:04 andy + + * CMakeLists.txt: ENH: Build expat as a part of default build + +2004-06-25 14:04 andy + + * Utilities/cmexpat/: .NoDartCoverage, CMakeLists.txt, COPYING, + ascii.h, asciitab.h, cm_expat_mangle.h, expat.h, + expatConfig.h.in, expatDllConfig.h.in, iasciitab.h, latin1tab.h, + nametab.h, utf8tab.h, xmlparse.c, xmlrole.c, xmlrole.h, xmltok.c, + xmltok.h, xmltok_impl.c, xmltok_impl.h, xmltok_ns.c: ENH: Initial + import of expat + +2004-06-24 09:05 hoffman + + * Source/cmWin32ProcessExecution.cxx: ENH: remove warning on + borland + +2004-06-24 08:57 hoffman + + * Source/cmExecProgramCommand.cxx: BUG: exec program should not + fail if it can not exec the program, but should only set the + return value to -1 and set the output to the reason for the + failure. + +2004-06-23 16:34 hoffman + + * Source/: cmExecProgramCommand.cxx, cmSystemTools.cxx, + cmSystemTools.h, cmTryRunCommand.cxx, + cmWin32ProcessExecution.cxx: BUG: fix spaces in path on mingw, + and change EXEC_PROGRAM to return false when it does not run, + also do not convert the directory to an output path for + EXEC_PROGRAM as this is done by the process execution, and doing + it twice may cause trouble on some shells. + +2004-06-23 16:15 hoffman + + * Modules/Platform/Windows-cl.cmake: C++ compiler is not set for c + only projects + +2004-06-23 10:13 king + + * Source/: cmCacheManager.cxx, CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesMainForm.h: ENH: Adding MODIFIED property to + cache values that have been changed by the user. + +2004-06-22 17:23 hoffman + + * Source/cmSystemTools.cxx: BUG: fix spaces in path with mingw and + custom commands + +2004-06-21 12:59 hoffman + + * ChangeLog.manual: update changes for release 2.0.2 + +2004-06-21 12:48 hoffman + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: change + version on branch + +2004-06-21 12:48 hoffman + + * CMakeLists.txt: change minimum cmake + +2004-06-18 15:47 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: merge from main tree, + remove automatic -I for source + +2004-06-18 15:47 hoffman + + * Source/cmSubdirCommand.h: merge from main tree, fix docs + +2004-06-18 15:46 hoffman + + * Modules/FindFLTK.cmake, Modules/FindQt.cmake, + Source/cmFLTKWrapUICommand.cxx, Source/cmQTWrapCPPCommand.cxx: + merge from main tree, remove useless variables + +2004-06-18 15:14 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Added special hack + for VTK 4.0-4.4 to re-enable automatic addition of current source + directory to -I path. + +2004-06-18 15:01 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Added special hack + for VTK 4.0-4.4 to re-enable automatic addition of current source + directory to -I path. + +2004-06-18 13:04 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Need to preserve + automatic addition of source tree to -I path if + CMAKE_BACKWARDS_COMPATIBILITY is set to below 2.0. + +2004-06-18 13:00 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ERR: Fixed typo. + +2004-06-18 12:56 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Need to preserve + automatic addition of source tree to -I path if + CMAKE_BACKWARDS_COMPATIBILITY is set to below 2.0. + +2004-06-18 10:54 king + + * Docs/: cmake-mode.el: BUG: Fixed parsing of unquoted arguments to + allow double-quotes within the argument. + +2004-06-18 10:51 king + + * Source/: cmListFileLexer.c, cmListFileLexer.in.l: BUG: Fixed + parsing of unquoted arguments to allow double-quotes within the + argument. + +2004-06-16 09:45 hoffman + + * Source/cmSubdirCommand.h: clean up documentation + +2004-06-16 09:43 hoffman + + * Source/cmFLTKWrapUICommand.cxx, Source/cmQTWrapCPPCommand.cxx, + Modules/FindFLTK.cmake, Modules/FindQt.cmake: clean up commands + so they don't need extra variable + +2004-06-15 11:52 king + + * Source/cmLocalUnixMakefileGenerator.cxx: Removing automatic + addition of a -I path for the current source directory. This is + not consistent with the Visual Studio generators which do not + provide this path. It should not be added anyway because it is + adding an include path not requested by the CMakeLists.txt code. + The code I'm removing was originally added in revision 1.17 of + cmUnixMakefileGenerator.cxx as a part of several other changes + and has a commit log entry of + + "some bug fixes" + + It was propagated from their to cmLocalUnixMakefileGenerator.cxx. + Since all our projects build in the VS IDE without this include + path, it should not be needed. Users can easily fix problems + caused by this by adding + + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) + + to their CMakeLists.txt code. This was often necessary + previously when a project was originally written on a Unix system + and then built with Visual Studio. + +2004-06-15 08:32 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: merge from main tree, fix + GetCurrentDirectory problem + +2004-06-15 08:30 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: fix include order because of + GetCurrentDirectory define and windows.h problem + +2004-06-14 13:25 hoffman + + * Modules/FindKDE.cmake: merge from main tree, new module + +2004-06-14 12:29 hoffman + + * Utilities/Doxygen/CMakeLists.txt: merge from main tree + +2004-06-14 12:29 hoffman + + * Source/CTest/Curl/CMakeLists.txt: merge from main tree, fix + warning on mac + +2004-06-14 12:28 hoffman + + * Source/: cmIfCommand.cxx, cmIfCommand.h: merge from main tree, + add STRGREATER + +2004-06-14 12:28 hoffman + + * Source/cmCommands.cxx: merge from main tree, fix bootstrap on mac + +2004-06-14 12:27 hoffman + + * Modules/FindFLTK.cmake: merge from main tree, look for both Fl.h + and Fl.H + +2004-06-14 12:21 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: merge from main tree, + use cmake to install itself, when building cmake + +2004-06-14 12:20 hoffman + + * Source/cmIfCommand.cxx: merge from main tree, fix compound if + crash on unix + +2004-06-14 12:19 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: merge from main tree, use + correct path for sub projects + +2004-06-14 12:18 hoffman + + * Source/cmCTest.cxx: merge from main tree, more -I stuff + +2004-06-14 12:18 hoffman + + * Source/CMakeLists.txt: merge from main tree, do not use regex for + directoires + +2004-06-14 12:17 hoffman + + * Modules/FindDoxygen.cmake: ENH: better find for doxygen + +2004-06-14 12:16 hoffman + + * Modules/Platform/Windows-cl.cmake, + Source/cmLocalVisualStudio7Generator.cxx, + Templates/DLLHeader.dsptemplate: ENH: add NDEBUG to windows + release builds for both ide and nmake + +2004-06-14 12:02 martink + + * Source/: cmIfCommand.h, cmIfCommand.cxx: added strequal + +2004-06-14 11:24 andy + + * Tests/CTestTest/test.cmake.in: ENH: Handle spaces in the path + +2004-06-14 11:23 andy + + * Source/cmCommands.cxx: ERR: On Mac we need + GET_SOURCE_FILE_PROPERTY for building curl + +2004-06-14 10:46 hoffman + + * Modules/FindKDE.cmake: ENH: add FindKDE from Alex from kde.org + +2004-06-14 10:36 hoffman + + * Modules/FindFLTK.cmake: fix for bug 915 + +2004-06-14 10:28 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: BUG: fix sub project path + problem + +2004-06-11 15:27 martink + + * CMakeLists.txt, CMakeSystemConfig.txt.in, + CMakeWindowsSystemConfig.txt, ChangeLog.manual, ChangeLog.txt, + DartConfig.cmake, bootstrap, Docs/cmake-mode.el, + Modules/CMakeCCompiler.cmake.in, + Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeImportBuildSettings.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestCCompiler.cmake, Modules/CMakeTestGNU.c, + Modules/CheckForPthreads.c, Modules/CheckFunctionExists.c, + Modules/CheckIncludeFile.cmake, + Modules/CheckIncludeFileCXX.cmake, Modules/CheckTypeSize.c, + Modules/CheckTypeSize.cmake, Modules/CheckVariableExists.c, + Modules/Dart.cmake, Modules/DartConfiguration.tcl.in, + Modules/FindDCMTK.cmake, Modules/FindGLUT.cmake, + Modules/FindGTK.cmake, Modules/FindITK.cmake, + Modules/FindJNI.cmake, Modules/FindMFC.cmake, + Modules/FindOpenGL.cmake, Modules/FindPHP4.cmake, + Modules/FindPerlLibs.cmake, Modules/FindPike.cmake, + Modules/FindPythonLibs.cmake, Modules/FindQt.cmake, + Modules/FindRuby.cmake, Modules/FindSWIG.cmake, + Modules/FindTCL.cmake, Modules/FindTclsh.cmake, + Modules/FindVTK.cmake, Modules/FindwxWidgets.cmake, + Modules/FindwxWindows.cmake, Modules/MacOSXBundleInfo.plist.in, + Modules/TestBigEndian.c, Modules/UseSWIG.cmake, + Modules/UsewxWidgets.cmake, Modules/Platform/Darwin.cmake, + Modules/Platform/HP-UX.cmake, Modules/Platform/IRIX64.cmake, + Modules/Platform/Linux.cmake, Modules/Platform/OSF1.cmake, + Modules/Platform/SunOS.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-gcc.cmake, Source/CMakeLists.txt, + Source/TODO, Source/cmAddCustomCommandCommand.h, + Source/cmAddCustomTargetCommand.cxx, + Source/cmAddExecutableCommand.cxx, + Source/cmAddExecutableCommand.h, Source/cmAddTestCommand.cxx, + Source/cmCMakeMinimumRequired.h, Source/cmCPluginAPI.cxx, + Source/cmCPluginAPI.h, Source/cmCTest.cxx, Source/cmCTest.h, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmCommand.h, Source/cmCommands.cxx, + Source/cmConfigure.cmake.h.in, Source/cmConfigureFileCommand.cxx, + Source/cmConfigureFileCommand.h, + Source/cmCreateTestSourceList.cxx, + Source/cmCreateTestSourceList.h, Source/cmDocumentation.cxx, + Source/cmDocumentation.h, Source/cmDynamicLoader.cxx, + Source/cmElseCommand.h, Source/cmEnableTestingCommand.cxx, + Source/cmEnableTestingCommand.h, Source/cmEndForEachCommand.cxx, + Source/cmEndForEachCommand.h, Source/cmEndIfCommand.h, + Source/cmExecProgramCommand.h, + Source/cmExportLibraryDependencies.cxx, + Source/cmFLTKWrapUICommand.cxx, Source/cmFileCommand.cxx, + Source/cmFileCommand.h, Source/cmFindFileCommand.h, + Source/cmFindLibraryCommand.h, Source/cmFindPackageCommand.cxx, + Source/cmFindPackageCommand.h, Source/cmFindPathCommand.cxx, + Source/cmFindPathCommand.h, Source/cmFindProgramCommand.h, + Source/cmForEachCommand.cxx, Source/cmForEachCommand.h, + Source/cmGeneratedFileStream.h, + Source/cmGetCMakePropertyCommand.cxx, + Source/cmGetDirectoryPropertyCommand.cxx, + Source/cmGetDirectoryPropertyCommand.h, + Source/cmGetFilenameComponentCommand.h, + Source/cmGetSourceFilePropertyCommand.cxx, + Source/cmGetTargetPropertyCommand.cxx, Source/cmGlob.cxx, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalCodeWarriorGenerator.cxx, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio71Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, Source/cmIfCommand.cxx, + Source/cmIfCommand.h, Source/cmIncludeCommand.cxx, + Source/cmIncludeCommand.h, Source/cmInstallTargetsCommand.cxx, + Source/cmInstallTargetsCommand.h, + Source/cmLinkLibrariesCommand.cxx, + Source/cmLinkLibrariesCommand.h, Source/cmListFileCache.cxx, + Source/cmListFileCache.h, Source/cmListFileLexer.c, + Source/cmListFileLexer.h, Source/cmListFileLexer.in.l, + Source/cmLoadCacheCommand.h, Source/cmLoadCommandCommand.cxx, + Source/cmLocalCodeWarriorGenerator.cxx, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, + Source/cmMacroCommand.cxx, Source/cmMacroCommand.h, + Source/cmMakeDepend.cxx, Source/cmMakeDirectoryCommand.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmMessageCommand.h, Source/cmOptionCommand.cxx, + Source/cmOutputRequiredFilesCommand.h, + Source/cmQTWrapCPPCommand.cxx, Source/cmQTWrapCPPCommand.h, + Source/cmQTWrapUICommand.cxx, Source/cmQTWrapUICommand.h, + Source/cmRemoveCommand.h, Source/cmRemoveDefinitionsCommand.cxx, + Source/cmRemoveDefinitionsCommand.h, + Source/cmSeparateArgumentsCommand.h, Source/cmSetCommand.h, + Source/cmSetDirectoryPropertiesCommand.cxx, + Source/cmSetDirectoryPropertiesCommand.h, + Source/cmSetSourceFilesPropertiesCommand.cxx, + Source/cmSetTargetPropertiesCommand.h, + Source/cmSiteNameCommand.cxx, Source/cmSourceFile.cxx, + Source/cmSourceFilesCommand.cxx, Source/cmStandardIncludes.h, + Source/cmStringCommand.cxx, Source/cmStringCommand.h, + Source/cmSubdirCommand.cxx, Source/cmSubdirCommand.h, + Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/cmTarget.cxx, Source/cmTarget.h, + Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmTargetLinkLibrariesCommand.h, + Source/cmTryCompileCommand.cxx, Source/cmTryCompileCommand.h, + Source/cmUseMangledMesaCommand.h, + Source/cmVTKMakeInstantiatorCommand.cxx, + Source/cmVTKWrapJavaCommand.h, Source/cmVTKWrapPythonCommand.h, + Source/cmVTKWrapTclCommand.h, Source/cmWin32ProcessExecution.cxx, + Source/cmWrapExcludeFilesCommand.cxx, + Source/cmWriteFileCommand.cxx, Source/cmWriteFileCommand.h, + Source/cmake.cxx, Source/cmake.h, Source/cmakemain.cxx, + Source/cmaketest.cxx, Source/cmakewizard.cxx, + Source/cmakewizard.h, Source/ctest.cxx, + Source/CTest/cmCTestSubmit.cxx, Source/CTest/cmCTestSubmit.h, + Source/CTest/Curl/CMakeLists.txt, Source/CTest/Curl/getdate.c, + Source/CTest/Curl/ldap.c, Source/CTest/Curl/multi.c, + Source/CTest/Curl/setup.h, Source/CTest/Curl/telnet.c, + Source/CTest/Curl/Testing/ftpupload.c, + Source/CursesDialog/ccmake.cxx, + Source/CursesDialog/cmCursesMainForm.cxx, + Source/CursesDialog/cmCursesPathWidget.cxx, + Source/CursesDialog/cmCursesStringWidget.cxx, + Source/MFCDialog/CMakeCommandLineInfo.cpp, + Source/MFCDialog/CMakeLists.txt, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/CMakeSetupDialog.h, + Source/MFCDialog/PathDialog.cpp, + Source/MFCDialog/PropertyList.cpp, + Source/MFCDialog/PropertyList.h, Source/MFCDialog/StdAfx.h, + Source/MFCDialog/resource.h, Source/WXDialog/cmWXMainFrame.cxx, + Source/kwsys/Base64.c, Source/kwsys/Base64.h.in, + Source/kwsys/CMakeLists.txt, Source/kwsys/Configure.h.in, + Source/kwsys/Configure.hxx.in, Source/kwsys/Copyright.txt, + Source/kwsys/Directory.cxx, Source/kwsys/Directory.hxx.in, + Source/kwsys/EncodeExecutable.c, Source/kwsys/Process.h.in, + Source/kwsys/ProcessFwd9x.c, Source/kwsys/ProcessUNIX.c, + Source/kwsys/ProcessWin32.c, Source/kwsys/RegularExpression.cxx, + Source/kwsys/RegularExpression.hxx.in, + Source/kwsys/SystemTools.cxx, Source/kwsys/SystemTools.hxx.in, + Source/kwsys/kwsysHeaderDump.pl, + Source/kwsys/kwsysPlatformCxxTests.cmake, + Source/kwsys/kwsysPlatformCxxTests.cxx, + Source/kwsys/kwsysPrivate.h, Source/kwsys/kwsys_ios_fstream.h.in, + Source/kwsys/kwsys_ios_iosfwd.h.in, + Source/kwsys/kwsys_ios_iostream.h.in, + Source/kwsys/kwsys_ios_sstream.h.in, Source/kwsys/kwsys_std.h.in, + Source/kwsys/kwsys_std_fstream.h.in, + Source/kwsys/kwsys_std_iosfwd.h.in, + Source/kwsys/kwsys_std_iostream.h.in, + Source/kwsys/kwsys_std_sstream.h.in, Source/kwsys/kwsys_stl.h.in, + Source/kwsys/test1.cxx, Source/kwsys/testIOS.cxx, + Source/kwsys/testProcess.c, Templates/CMakeLists.txt, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, Templates/TestDriver.cxx.in, + Templates/install-sh, Templates/staticLibHeader.dsptemplate, + Tests/COnly/CMakeLists.txt, Tests/CommandLineTest/CMakeLists.txt, + Tests/CommandLineTest/PreLoad.cmake, + Tests/Complex/CMakeLists.txt, Tests/Complex/VarTests.cmake, + Tests/Complex/Executable/complex.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/Complex/Library/file2.cxx, + Tests/Complex/Library/testConly.c, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexOneConfig/VarTests.cmake, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/file2.cxx, + Tests/ComplexOneConfig/Library/testConly.c, + Tests/ComplexRelativePaths/CMakeLists.txt, + Tests/ComplexRelativePaths/VarTests.cmake, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/ComplexRelativePaths/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/file2.cxx, + Tests/ComplexRelativePaths/Library/testConly.c, + Tests/CustomCommand/CMakeLists.txt, + Tests/CustomCommand/generator.cxx, + Tests/CustomCommand/wrapper.cxx, Tests/Jump/CMakeLists.txt, + Tests/Jump/Executable/CMakeLists.txt, + Tests/Jump/Executable/jumpExecutable.cxx, + Tests/Jump/Library/CMakeLists.txt, + Tests/Jump/Library/Shared/CMakeLists.txt, + Tests/Jump/Library/Shared/jumpShared.cxx, + Tests/Jump/Library/Static/CMakeLists.txt, + Tests/Jump/Library/Static/jumpStatic.cxx, + Tests/LinkLineOrder/Two.c, Tests/LoadCommand/CMakeLists.txt, + Tests/LoadCommand/CMakeCommands/cmTestCommand.c, + Tests/LoadCommandOneConfig/CMakeLists.txt, + Tests/LoadCommandOneConfig/CMakeCommands/cmTestCommand.c, + Tests/PreOrder/CMakeLists.txt, Tests/PreOrder/simple.cxx, + Tests/PreOrder/Library/CMakeLists.txt, + Tests/PreOrder/Library/simpleLib.cxx, + Tests/Simple/CMakeLists.txt, Tests/Simple/simpleWe.cpp, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/PostInstall.cmake, + Tests/SimpleInstall/PreInstall.cmake, Tests/SimpleInstall/foo.c, + Tests/SimpleInstall/foo.h, Tests/SimpleInstall/inst.cxx, + Tests/SimpleInstall/lib1.cxx, Tests/SimpleInstall/lib1.h, + Tests/SimpleInstall/lib2.cxx, Tests/SimpleInstall/lib2.h, + Tests/SimpleInstall/lib3.cxx, Tests/SimpleInstall/lib3.h, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/PostInstall.cmake, + Tests/SimpleInstallS2/PreInstall.cmake, + Tests/SimpleInstallS2/foo.c, Tests/SimpleInstallS2/foo.h, + Tests/SimpleInstallS2/inst.cxx, Tests/SimpleInstallS2/lib1.cxx, + Tests/SimpleInstallS2/lib1.h, Tests/SimpleInstallS2/lib2.cxx, + Tests/SimpleInstallS2/lib2.h, Tests/SimpleInstallS2/lib3.cxx, + Tests/SimpleInstallS2/lib3.h, + Tests/StringFileTest/CMakeLists.txt, + Tests/StringFileTest/InputFile.h.in, Tests/SubDir/CMakeLists.txt, + Tests/SubDir/vcl_algorithm+vcl_pair+double.foo.c, + Tests/SubDir/AnotherSubdir/pair+int.int.c, + Tests/SubDir/AnotherSubdir/secondone.c, + Tests/SubDir/AnotherSubdir/testfromsubdir.c, + Tests/SubDir/Examples/CMakeLists.txt, + Tests/SubDir/Examples/example1/CMakeLists.txt, + Tests/SubDir/Examples/example1/example1.cxx, + Tests/SubDir/Examples/example2/CMakeLists.txt, + Tests/SubDir/Examples/example2/example2.cxx, + Tests/SubDir/Executable/CMakeLists.txt, + Tests/SubDir/Executable/test.cxx, + Tests/SubDir/ThirdSubDir/pair+int.int1.c, + Tests/SubDir/ThirdSubDir/pair_p_int.int1.c, + Tests/SubDir/ThirdSubDir/testfromauxsubdir.c, + Tests/SubDir/ThirdSubDir/thirdone.c, + Tests/SwigTest/CMakeLists.txt, Tests/SwigTest/example.cxx, + Tests/SwigTest/example.h, Tests/SwigTest/example.i, + Tests/SwigTest/runme.php4, Tests/SwigTest/runme.pike, + Tests/SwigTest/runme.pl, Tests/SwigTest/runme.py, + Tests/SwigTest/runme.rb, Tests/SwigTest/runme.tcl, + Tests/SwigTest/runme2.tcl, + Tests/SystemInformation/CMakeLists.txt, + Tests/SystemInformation/DumpInformation.cxx, + Tests/TryCompile/CMakeLists.txt, Tests/UseWX/CMakeLists.txt, + Tests/UseWX/WX.cxx, Tests/Wrapping/CMakeLists.txt, + Tests/Wrapping/vtkTestMoc.h, Utilities/Doxygen/CMakeLists.txt, + Utilities/Doxygen/doxyfile.in, + Utilities/Release/cmake_release.sh, + Utilities/Release/config_IRIX64, + Utilities/Release/release_dispatch.sh: updated to 2.0.1 + +2004-06-11 15:07 hoffman + + * Source/cmIfCommand.cxx: BUG: fix crash for if statment due to bad + microsoft docs on deque BUG id 917 + +2004-06-11 12:52 hoffman + + * Source/CTest/Curl/CMakeLists.txt: fix bug on mac if COMPILE FLAGS + are not set then you end up with NOTFOUND as a compile flag. + +2004-06-09 18:56 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG#891: When building + CMake itself, use the new cmake to install so that the current + cmake can be overwritten. + +2004-06-09 18:01 martink + + * Source/CMakeLists.txt: ERR: Do not use the binary directory as a + regular expression. + +2004-06-09 17:50 martink + + * Source/CTest/Curl/CMakeLists.txt: ERR: Disable long double + warnings on xlC for the Mac. + +2004-06-09 17:36 martink + + * Source/cmCTest.cxx: BUG: Files in top-level directory of source + tree were not reported in updates log. + +2004-06-09 11:30 andy + + * DartConfig.cmake: ENH: Cleanups + +2004-06-09 11:19 andy + + * Source/cmCTest.cxx: BUG: Even if update fails it should produce + valid XML + +2004-06-09 10:37 andy + + * DartConfig.cmake: ENH: Use viewcvs instead of cvsweb + +2004-06-08 17:36 martink + + * Source/cmCTest.cxx: support for floating ponit strides + +2004-06-08 17:26 barre + + * Modules/FindDoxygen.cmake, Utilities/Doxygen/CMakeLists.txt: a) + new version of tools like Doxygen and Graphviz now set install + path info in win32 registery. use it. b) remove DOT_PATH, it was + polluting the cache (can be computed from DOT, update + CMakeLists.txt accordingly if DOT_PATH is not defined) + +2004-06-07 21:41 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: undo last bug fix because it + breaks cmake, rebuild_cache on ParaView gets tons of errors about + not being able to create the bin directory + +2004-06-07 13:55 king + + * Source/kwsys/SystemTools.cxx: BUG: Do not create a directory on + top of a file. + +2004-06-07 12:35 hoffman + + * Source/: cmCTest.cxx, cmCTest.h, CTest/cmCTestSubmit.cxx, + CTest/cmCTestSubmit.h: merge from main tree, add support for scp + submit + +2004-06-07 09:54 hoffman + + * Modules/FindFLTK.cmake: merge from main tree, fix order of + libraries + +2004-06-07 09:50 hoffman + + * Tests/Simple/CMakeLists.txt: merge from main tree + +2004-06-07 09:49 hoffman + + * Source/kwsys/SystemTools.cxx: merge from main tree, fix find + library so it does not find directories + +2004-06-07 09:48 hoffman + + * Source/cmMakefile.cxx: merge from main tree, detect problems + writting files + +2004-06-07 09:47 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: merger from main tree, + fix subdir preorder + +2004-06-07 09:46 hoffman + + * Source/cmLocalGenerator.cxx: merge from main tree, fix install + with subdir and not exepath + +2004-06-07 09:46 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmLocalVisualStudio7Generator.cxx: merge from main tree, fix + crash in external project include + +2004-06-07 09:45 hoffman + + * Source/cmCreateTestSourceList.cxx: merge from main tree, do not + write test driver each time cmake is run + +2004-06-07 09:44 hoffman + + * Source/: cmCTest.cxx, cmCTest.h: ENH: changes from main tree, + some different -I options, CTEST_DASHBOARD_ROOT computation, some + more error and warning matches + +2004-06-07 08:51 andy + + * Source/CTest/cmCTestSubmit.cxx: ERR: Remove warning + +2004-06-04 14:59 king + + * Source/kwsys/CMakeLists.txt: ERR: Do not add the library if no + sources are used. + +2004-06-03 19:12 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ERR: Remove testinf of PREORDER + on Windows + +2004-06-03 17:09 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ERR: Try to fix simple install on + vs6 + +2004-06-03 14:54 hoffman + + * Modules/FindFLTK.cmake: Fix for bug 903 change order of fltk + libraries + +2004-06-02 13:39 andy + + * Source/: cmCTest.cxx, cmCTest.h, CTest/cmCTestSubmit.cxx, + CTest/cmCTestSubmit.h: ENH: Implement scp submission + +2004-06-01 14:08 king + + * Modules/Platform/: HP-UX.cmake, IRIX.cmake, IRIX64.cmake, + OSF1.cmake, Windows-bcc32.cmake, gcc.cmake: BUG#895: Adding + -DNDEBUG to C and C++ flags for release builds. + +2004-06-01 12:55 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstall/TestSubDir/CMakeLists.txt, + SimpleInstall/TestSubDir/TSD.cxx, SimpleInstall/TestSubDir/TSD.h, + SimpleInstall/TestSubDir/TSD_utils.cxx, + SimpleInstallS2/CMakeLists.txt, + SimpleInstallS2/TestSubDir/CMakeLists.txt, + SimpleInstallS2/TestSubDir/TSD.cxx, + SimpleInstallS2/TestSubDir/TSD.h, + SimpleInstallS2/TestSubDir/TSD_utils.cxx: ENH: More elaborate + install test + +2004-06-01 12:19 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: make sure find library does + not find directories + +2004-06-01 12:07 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: fix for 871, include + external should work for 7.1 and 7.0 + +2004-06-01 11:30 andy + + * Source/cmLocalGenerator.cxx: ENH: Fix bug in cmake install when + exec/librayr output path not defined. Closes Bug #899 - subdir + INSTALL_TARGETS INSTALL_PROGRAMS dont work + +2004-06-01 09:58 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Fix preorder. This + caused preorder to not work and the test passed because of + jump-over rule + +2004-05-28 15:02 martink + + * Source/: cmCTest.cxx, cmCTest.h: ctest -S support for multiple + ctest command arguments + +2004-05-27 12:56 andy + + * Source/cmCreateTestSourceList.cxx: BUG: When creating a test + driver, do not remove the old file, so if nothing changes, it + will not rebuild. Fixes Bug #885 - cmCreateTestSource overwrite + file when running cmake + +2004-05-27 12:53 andy + + * Source/cmMakefile.cxx: ENH: Detect if there were problems writing + file + +2004-05-27 11:21 king + + * Utilities/Release/cmake_release.sh: Updated to not include CVS + directories in cygwin package. + +2004-05-26 15:27 martink + + * Source/cmCTest.cxx: added another error string and change the -I + option some + +2004-05-25 14:34 martink + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: merges from + the main tree + +2004-05-25 11:31 martink + + * Modules/CMakeImportBuildSettings.cmake, Modules/FindQt.cmake, + Modules/UseSWIG.cmake, Source/cmCTest.cxx, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmGeneratedFileStream.h, + Source/cmGetDirectoryPropertyCommand.cxx, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, + Source/cmMacroCommand.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmSetDirectoryPropertiesCommand.cxx, + Source/cmSetDirectoryPropertiesCommand.h, + Source/cmSystemTools.cxx, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/CMakeSetupDialog.h, Source/MFCDialog/resource.h, + Tests/CommandLineTest/CMakeLists.txt, + Tests/Simple/CMakeLists.txt, Tests/TryCompile/CMakeLists.txt: + merges from the main tree + +2004-05-25 11:20 martink + + * Modules/CMakeImportBuildSettings.cmake, Source/cmCTest.cxx: + better error message + +2004-05-21 11:52 hoffman + + * Source/cmSystemTools.cxx: ENH: speed up for NOTFOUND + +2004-05-21 09:51 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: ENH: fix rerun of cmake + command + +2004-05-20 21:27 hoffman + + * Source/cmSystemTools.cxx: BUG: back out change due to broken + dashboard + +2004-05-20 17:33 hoffman + + * Source/cmSystemTools.cxx: ENH: remove regex use where strcmp is + faster + +2004-05-20 16:56 andy + + * Modules/UseSWIG.cmake, Source/cmGetDirectoryPropertyCommand.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmSetDirectoryPropertiesCommand.cxx, + Source/cmSetDirectoryPropertiesCommand.h: ENH: Implement + additional make clean files as a directory property instead of + cmake variable + +2004-05-20 16:39 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: allow cursor to be + changed by the OS + +2004-05-20 16:35 hoffman + + * Tests/TryCompile/CMakeLists.txt: BUG: dont put the output of a + try compile in the output because visual stduio 7 ide will thing + there were errors + +2004-05-20 16:29 hoffman + + * Source/: cmGeneratedFileStream.h, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: BUG: make sure global generate + is done when cmakelist file chagnes, also make sure guids are + stored in the cache so the .sln file does not change every time + +2004-05-20 16:26 hoffman + + * Modules/FindQt.cmake: ENH: look for qtmoc in some other places + +2004-05-20 15:08 martink + + * Source/: cmCacheManager.cxx, cmCacheManager.h, + MFCDialog/CMakeSetup.rc, MFCDialog/CMakeSetupDialog.cpp, + MFCDialog/CMakeSetupDialog.h, MFCDialog/resource.h: updates to + gui to delete cache + +2004-05-20 13:15 martink + + * Source/cmCTest.cxx: added error + +2004-05-19 16:04 hoffman + + * Source/cmMacroCommand.cxx: ENH: make it run much faster + +2004-05-18 15:40 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: make sure + ADDITIONAL_MAKE_CLEAN_FILES works with spaces in the path and is + converted to the correct native path type + +2004-05-18 15:39 hoffman + + * Source/: cmEndForEachCommand.cxx, cmForEachCommand.cxx: merge + from main tree, detect missing endforeach + +2004-05-18 15:39 hoffman + + * Source/: cmDocumentation.cxx, cmakemain.cxx: merge from main + tree, move doc stuff around so it does not give cmake docs to + ctest + +2004-05-18 15:38 hoffman + + * Source/cmCTest.cxx: merge from main tree, add some more obscure + options to ctest + +2004-05-18 15:37 hoffman + + * Modules/UseSWIG.cmake: BUG: 835 fix + +2004-05-18 15:37 hoffman + + * Modules/CMakeTestGNU.c: BUG: 825 fix + +2004-05-18 14:33 hoffman + + * Modules/CMakeTestGNU.c: BUG: fix problem where cmake thinks the + intel compiler is gnu + +2004-05-17 16:31 hoffman + + * Modules/UseSWIG.cmake: ENH: append to the list of clean files, + don't just set them + +2004-05-17 15:56 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: change + ADDITIONAL_MAKE_CLEAN_FILES to work with spaces in the path and + on windows with no spaces + +2004-05-17 15:55 hoffman + + * Modules/UseSWIG.cmake: BUG: Bug #835 fix, add swig generated + files to clean target + +2004-05-13 16:17 hoffman + + * ChangeLog.manual: add a hand edited changelog + +2004-05-13 13:41 martink + + * Source/cmCTest.cxx: new feature for continuous clean once + +2004-05-13 13:07 king + + * Utilities/Release/cmake_release.sh: Removed support for + wxCMakeSetup dialog. + +2004-05-13 10:34 hoffman + + * Source/kwsys/: Base64.h.in, CMakeLists.txt, Process.h.in, + ProcessWin32.c, ProcessWin32Kill.c, ProcessWin32Kill.h.in, + kwsysHeaderDump.pl: Merge changes from the main tree, fix a bug + in the process kill code + +2004-05-13 10:08 king + + * Source/kwsys/ProcessWin32.c: BUG: Do not wait for children to + exit when killing them. Sometimes they do not really die. + +2004-05-12 15:34 martink + + * Source/cmEndForEachCommand.cxx: fix warning + +2004-05-12 14:32 martink + + * Source/: cmEndForEachCommand.cxx, cmForEachCommand.cxx: better + error checking for FOREACH + +2004-05-12 08:46 king + + * Utilities/Release/cmake_release.sh: ENH: Updated for 2.0.0 + release tag. + +2004-05-10 18:06 andy + + * Source/CMakeLists.txt, Tests/CTestTest/CMakeLists.txt, + Tests/CTestTest/test.cmake.in, + Tests/CommandLineTest/CMakeLists.txt: ENH: Add some ctest + coverage + +2004-05-10 17:53 andy + + * Source/: cmDocumentation.cxx, cmakemain.cxx: BUG: Move + documentation so that it does not apear in ctest + +2004-05-10 17:44 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add a way to force ctest to + be a new process + +2004-05-10 16:58 king + + * Utilities/Release/cmake_release.sh: ENH: Added support for using + cvs checkout instead of cvs export. + +2004-05-10 16:55 will + + * Source/cmCTest.cxx: ENH: Added regex. + +2004-05-10 16:40 king + + * Source/: cmLocalUnixMakefileGenerator.cxx: BUG: Need to recognize + -B linker options. + +2004-05-10 15:49 king + + * Utilities/Release/release_dispatch.sh: ENH: Adding release + dispatch script. + +2004-05-10 15:48 king + + * Utilities/Release/: cmake_release.sh, config_CYGWIN_NT-5.1, + config_Linux, cygwin-package.sh.in: ENH: Updated to latest + version from 1.8 branch. + +2004-05-10 14:54 king + + * Source/kwsys/: CMakeLists.txt, ProcessWin32.c, + ProcessWin32Kill.c, ProcessWin32Kill.h.in: ENH: Adding native + windows process tree kill to ProcessWin32.c. This replaces the + ProcessWin32Kill.c implementation. + +2004-05-10 13:38 king + + * Source/kwsys/: Base64.h.in, ProcessWin32.c: ERR: Avoiding + namespace pollution: kw_sys -> kwsys_ns. Also undefining the + macro at the correct time. + +2004-05-10 13:15 king + + * Source/kwsys/kwsysHeaderDump.pl: ENH: Renaming kwsys macro to + kwsys_ns to work around borland preprocessor bug. + +2004-05-10 13:10 king + + * Source/kwsys/: Process.h.in, ProcessWin32Kill.h.in: ERR: Avoiding + namespace pollution: kw_sys -> kwsys_ns. Also undefining the + macro at the correct time. + +2004-05-10 12:45 hoffman + + * Modules/FindGTK.cmake, Modules/Platform/OSF1.cmake, + Source/cmCTest.cxx, Source/cmCTest.h, Source/cmIfCommand.cxx, + Source/cmLocalGenerator.cxx, Source/cmake.cxx, Source/ctest.cxx, + Source/kwsys/Base64.h.in, Source/kwsys/CMakeLists.txt, + Source/kwsys/Process.h.in, Source/kwsys/ProcessWin32.c, + Source/kwsys/ProcessWin32Kill.c, + Source/kwsys/ProcessWin32Kill.h.in, Source/kwsys/SystemTools.cxx, + Templates/TestDriver.cxx.in: merge from main tree + +2004-05-10 12:08 hoffman + + * Source/kwsys/ProcessWin32Kill.c: ENH: remove extra include for + compile with mingw + +2004-05-10 12:06 hoffman + + * Source/kwsys/: CMakeLists.txt, ProcessWin32Kill.c, + ProcessWin32Kill.cxx: ENH: change to c code so it can be built + with mingw + +2004-05-10 11:04 hoffman + + * Source/kwsys/ProcessWin32Kill.cxx: ENH: remove unused include + file so it will build with mingw + +2004-05-10 10:20 martink + + * Source/cmCTest.cxx: fix for config type passing between ctests + +2004-05-09 12:27 martink + + * Source/cmCTest.cxx: some cleanup and fix for PVLocal + +2004-05-08 14:55 hoffman + + * Templates/TestDriver.cxx.in: BUG: remove debug pop hacks, also + remove duplicate call to argvc function + +2004-05-07 14:22 andy + + * Source/kwsys/: Base64.h.in, Process.h.in, ProcessWin32.c, + ProcessWin32Kill.h.in: ERR: On Borland preprocessor goes into + recursion which adds some weid spaces in the include name. This + fixes it + +2004-05-07 13:26 hoffman + + * Source/ctest.cxx: ENH: better documentation + +2004-05-07 12:53 hoffman + + * Source/: cmCTest.cxx, cmCTest.h: ENH: add the ability to block + popup error dialogs in tests on windows + +2004-05-07 12:52 hoffman + + * Source/kwsys/ProcessWin32.c: BUG: make sure the correct state is + set for expired processes + +2004-05-07 11:24 martink + + * Source/cmCTest.cxx: missing header for unix + +2004-05-07 10:50 martink + + * Source/: cmCTest.cxx, cmCTest.h: updated testingoptions for + continuous dashboards + +2004-05-07 10:16 hoffman + + * Modules/FindGTK.cmake: Add a missing dollar sign + +2004-05-07 08:35 martink + + * Templates/TestDriver.cxx.in: fix warning maybe + +2004-05-06 16:06 hoffman + + * Source/cmLocalGenerator.cxx: BUG: make sure install works with + spaces in the path + +2004-05-06 15:34 king + + * Source/kwsys/: CMakeLists.txt, ProcessWin32.c, + ProcessWin32Kill.cxx, ProcessWin32Kill.h.in: ENH: Adding process + tree killing for Win32 process execution. + +2004-05-06 14:30 king + + * Source/kwsys/Process.h.in: ERR: Added units to SetTimeout + documentation. + +2004-05-06 10:30 hoffman + + * Source/cmCTest.cxx: BUG: fix ctest so that the search path for + test executables produces better output and does not use config + dir when it is not set + +2004-05-06 10:29 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: fix collapse full path to + handle a file in the root directory + +2004-05-06 09:47 martink + + * Source/cmIfCommand.cxx: horrible hack + +2004-05-06 08:51 martink + + * Templates/TestDriver.cxx.in: fix warning + +2004-05-05 11:41 martink + + * Source/cmCTest.cxx: fix for in source testing + +2004-05-05 10:41 martink + + * Modules/Platform/OSF1.cmake: a guess at some OSF compiler flags + +2004-05-05 10:23 hoffman + + * ChangeLog.txt: change log up-to 2.0 branch point + +2004-05-05 10:21 hoffman + + * ChangeLog.txt: ENH: add new change log marking 2.0 branch + +2004-05-05 10:19 hoffman + + * CMakeLists.txt, Source/cmCPluginAPI.h: ENH: move version to 2.1 + for cvs because 2.0 has been branched + +2004-05-05 10:17 hoffman + + * CMakeLists.txt, Source/cmCPluginAPI.h, + Utilities/Release/cmake_release.sh: ENH: move version numbers to + cmake 2.0 for branch + +2004-05-05 10:13 andy + + * Source/: cmCTest.cxx, cmake.cxx: ENH: Remove memory leak + +2004-05-04 14:24 hoffman + + * Source/CMakeLists.txt, Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: fix tests + to work with in source builds + +2004-05-04 14:18 martink + + * Source/cmCTest.cxx: support in source builds and arg passing + +2004-05-04 11:24 andy + + * Modules/Platform/Windows-bcc32.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: ENH: Only mangle object + files if CMAKE_MANGLE_OBJECT_FILE_NAMES is set. Only on borland + for now. + +2004-05-04 09:16 martink + + * Source/cmIfCommand.cxx: fix warning + +2004-05-03 17:51 andy + + * Tests/SwigTest/CMakeLists.txt: ENH: Cleanup example a bit + +2004-05-03 16:38 andy + + * Source/cmCTest.cxx: ENH: After running test clear results for + memory checking + +2004-05-03 16:36 andy + + * Source/cmCTest.cxx: ENH: Skip tests that do not have defects + +2004-05-03 16:35 andy + + * Modules/: CheckTypeSize.c, CheckTypeSize.cmake: ENH: support + STDDEF and cleanup + +2004-05-03 15:33 martink + + * Source/cmIfCommand.cxx: minor backwards fix + +2004-05-03 12:34 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix to make spaces + in paths work for jump over with borland and nmake on second + build + +2004-05-03 12:02 andy + + * Tests/: LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: ENH: Remove + warning + +2004-05-03 10:10 king + + * Source/cmStringCommand.h: ENH: Documented use of \1 syntax in + replace expression. + +2004-05-03 08:52 hoffman + + * Tests/: LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: ENH: fix + warnings in test + +2004-05-02 11:50 hoffman + + * Tests/: LinkLineOrder/Two.c, + LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: ENH: remove + warnings in tests + +2004-05-01 22:05 hoffman + + * Source/ctest.cxx: BUG: putenv syntax was wrong and caused a crash + on the SGI + +2004-05-01 10:08 martink + + * Source/: cmIfCommand.cxx, cmIfCommand.h: better if expression + support + +2004-05-01 10:07 martink + + * Modules/FindOpenGL.cmake: fix to find opengl on some osf systems + +2004-05-01 09:57 andy + + * Source/cmCTest.cxx: ERR: Remove warning about shadow variables + +2004-04-30 18:21 andy + + * Tests/: Complex/Library/testConly.c, + ComplexOneConfig/Library/testConly.c, + ComplexRelativePaths/Library/testConly.c, + SubDir/ThirdSubDir/testfromauxsubdir.c: ENH: Remove warnings + +2004-04-30 17:28 andy + + * Tests/Simple/simpleWe.cpp: ENH: Remove warning + +2004-04-30 15:17 andy + + * Source/ctest.cxx: ENH: Add environment variable that Dart sets so + that tests can know they are being tested from Dart/CTest + +2004-04-30 14:27 hoffman + + * Tests/SwigTest/CMakeLists.txt: ENH: link in more than just python + +2004-04-30 14:14 andy + + * Source/cmCTest.cxx: ENH: Report filename of the note + +2004-04-30 13:41 andy + + * Modules/FindSWIG.cmake: ENH: More paths + +2004-04-30 12:54 hoffman + + * Modules/FindSWIG.cmake: ENH: add another place to look for + swig.exe + +2004-04-30 12:52 hoffman + + * Modules/FindSWIG.cmake: ENH: try to find swig.exe in SWIG_DIR + +2004-04-30 12:36 andy + + * Source/cmCTest.cxx: ENH: Add support for notes in Testing/Notes + subdirectory. This way test can write notes that will be reported + +2004-04-30 12:17 andy + + * Tests/SwigTest/: CMakeLists.txt, example.cxx, example.h, + example.i, runme.php4, runme.pike, runme.pl, runme.py, runme.rb, + runme.tcl, runme2.tcl: ENH: Here is test for swig module + +2004-04-30 12:11 andy + + * Modules/: FindPHP4.cmake, FindPerlLibs.cmake, FindPike.cmake, + FindRuby.cmake, FindSWIG.cmake, UseSWIG.cmake: ENH: Initial + import of swig. Start working towards Bug #749 - Add swig support + module to cmake + +2004-04-30 11:36 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: remove duplicate + depend on cache file and use of make variable in make target + +2004-04-30 11:36 hoffman + + * Templates/TestDriver.cxx.in: ENH: remove unused variable + +2004-04-30 10:32 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: remove warnings + +2004-04-30 08:02 hoffman + + * Templates/CMakeLists.txt: BUG: add missing install file + +2004-04-29 17:44 king + + * Source/kwsys/CMakeLists.txt: ENH: Added automatic adjustment of + C++ flags to include -timplicit_local and -no_implicit_include + for the Compaq compiler on OSF. + +2004-04-29 17:41 andy + + * Source/cmMacroCommand.cxx, Source/cmMacroCommand.h, + Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: ENH: Add ARGV and ARGN + support to MACRO command. ARGV is the list of all arguments and + ARGN is the list of all nonexpected arguments + +2004-04-29 15:12 andy + + * Source/cmForEachCommand.cxx, Source/cmForEachCommand.h, + Tests/StringFileTest/CMakeLists.txt: ENH: Add RANGE support to + FOREACH + +2004-04-29 14:51 andy + + * Source/: cmCTest.cxx, cmStandardIncludes.h: BUG: Add a safety + check so that you cannot send cmOStringStream.str() to other + stream and produce the funky hex number. This makes it impossible + to compile such a code. Adding that exposed a whole bunch of + places in CMake where streams were used wrongly + +2004-04-29 13:25 andy + + * Source/kwsys/SystemTools.cxx: BUG: Most of time when asking if + file exists, we actually want to read it... Should fix Bug #809 - + FIND_INCLUDE should check readability + +2004-04-29 13:13 hoffman + + * Source/MFCDialog/StdAfx.h: ENH: remove warning + +2004-04-29 12:33 hoffman + + * Source/: cmGetTargetPropertyCommand.cxx, + cmLocalUnixMakefileGenerator.cxx: ENH: remove warnings + +2004-04-29 10:26 hoffman + + * Source/cmake.cxx: BUG: fix crash from bug id 806 + +2004-04-28 14:25 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: remove warning + +2004-04-28 13:40 hoffman + + * Source/: cmAddExecutableCommand.h, MFCDialog/CMakeLists.txt: BUG: + fix for bug 121 add some docs for MFC flag + +2004-04-28 13:21 hoffman + + * Modules/Platform/Darwin.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix for bug 116 + platform files can now specify directories that should not be + added by CMAKE + +2004-04-28 12:31 hoffman + + * Source/cmCreateTestSourceList.cxx, + Source/cmCreateTestSourceList.h, Templates/TestDriver.cxx.in: + ENH: make test driver more flexible by using a configured file + instead of generating all the code. fixes bug 28 + +2004-04-28 10:52 andy + + * Source/cmake.cxx, Tests/CommandLineTest/CMakeLists.txt, + Tests/CommandLineTest/PreLoad.cmake: ENH: Add support for + automatically preloaded cmake file. Closes Bug #802 - Add auto + preload file support in CMake + +2004-04-28 10:15 andy + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: Encode object files with + funny characters in the name. It should fix Bug #418 - Borland + 5.5.1, Templates/*.cxx files with '+' chars used in execs + +2004-04-28 10:09 hoffman + + * Tests/: Complex/VarTests.cmake, Complex/Executable/complex.cxx, + ComplexOneConfig/VarTests.cmake, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/VarTests.cmake, + ComplexRelativePaths/Executable/complex.cxx: ENH: add a test for + EQUAL in if + +2004-04-28 10:05 andy + + * Tests/SubDir/ThirdSubDir/: pair_p_int.int1.c, + testfromauxsubdir.c: ENH: More special cases + +2004-04-28 10:00 hoffman + + * Modules/: CheckIncludeFile.cmake, CheckIncludeFileCXX.cmake: ENH: + fixes for optional flag arguments to check include macros + +2004-04-28 09:59 hoffman + + * Source/cmIfCommand.cxx: BUG: fix logic in EQUAL if test + +2004-04-28 09:52 hoffman + + * Modules/CheckIncludeFileCXX.cmake: BUG: fix for bug 80, check + include cxx now has an optional argument that can is added to the + cxx flags + +2004-04-28 09:51 hoffman + + * Source/: cmIfCommand.cxx, cmIfCommand.h: ENH: add a numeric EQUAL + to the IF statment, very useful for variable arguments in MACROS + +2004-04-27 14:16 andy + + * Source/kwsys/: Base64.c, Base64.h.in, CMakeLists.txt, + Configure.h.in, Configure.hxx.in, Copyright.txt, Directory.cxx, + Directory.hxx.in, EncodeExecutable.c, Process.h.in, + ProcessFwd9x.c, ProcessUNIX.c, ProcessWin32.c, README.txt, + RegularExpression.cxx, RegularExpression.hxx.in, SystemTools.cxx, + SystemTools.hxx.in, kwsysHeaderDump.pl, + kwsysPlatformCxxTests.cmake, kwsysPlatformCxxTests.cxx, + kwsysPrivate.h, kwsys_ios_fstream.h.in, kwsys_ios_iosfwd.h.in, + kwsys_ios_iostream.h.in, kwsys_ios_sstream.h.in, kwsys_stl.h.in, + test1.cxx, testIOS.cxx, testProcess.c: ENH: Move to VolView + branch + +2004-04-27 12:03 andy + + * Source/cmGetTargetPropertyCommand.cxx, + Tests/CustomCommand/CMakeLists.txt: ENH: Add LOCATION to + GET_TARGET_PROPERTY. Closes Bug #34 - Add to GET_TARGET_PROPERTY + location of target + +2004-04-27 12:02 andy + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h: + ENH: GetSafeDefinition is now in cmMakefile + +2004-04-27 11:30 andy + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: Add method to get + definition even if it does not exists + +2004-04-27 11:08 andy + + * Tests/CustomCommand/: generator.cxx, wrapper.cxx: ERR: Remove + warnings from tests + +2004-04-27 09:22 andy + + * Source/cmSourceFile.cxx, Tests/SubDir/CMakeLists.txt, + Tests/SubDir/vcl_algorithm+vcl_pair+double.foo.c, + Tests/SubDir/AnotherSubdir/pair+int.int.c, + Tests/SubDir/AnotherSubdir/secondone.c, + Tests/SubDir/AnotherSubdir/testfromsubdir.c, + Tests/SubDir/ThirdSubDir/pair+int.int1.c, + Tests/SubDir/ThirdSubDir/testfromauxsubdir.c, + Tests/SubDir/ThirdSubDir/thirdone.c: BUG: Fix aus source dir and + add better testing of it + +2004-04-27 08:30 hoffman + + * Source/: cmLoadCommandCommand.cxx, cmMacroCommand.cxx: WRN: + remove warnings + +2004-04-26 18:51 andy + + * Source/cmCTest.cxx: ENH: Another one of those nasty hex numbers + in the ctest output + +2004-04-26 18:49 andy + + * Tests/SubDir/AnotherSubdir/: secondone.c, testfromsubdir.c: ENH: + Add extra test files + +2004-04-26 17:45 hoffman + + * Source/cmLoadCommandCommand.cxx: ENH: fix for bug id 27, add a + signal handler for crashes in loaded commands + +2004-04-26 17:32 andy + + * Source/CMakeLists.txt, Source/cmSourceFile.cxx, + Tests/SubDir/CMakeLists.txt, Tests/SubDir/Executable/test.cxx: + ENH: When source file is in subdirectory put object file in + subdirectory. Fixes Bug #290 - Source files in subdirectories + should produce object files in subdirectories + +2004-04-26 13:42 andy + + * Modules/FindTCL.cmake: ENH: Add TCL_FOUND + +2004-04-26 13:42 andy + + * Templates/: CMakeLists.txt, install-sh: ENH: With new install + framework we don't need install-sh any more + +2004-04-26 13:42 andy + + * Tests/SystemInformation/: CMakeLists.txt, DumpInformation.cxx: + ENH:Add test for GET/SET_DIRECTORY_PROPERTY + +2004-04-26 11:23 andy + + * Source/: cmake.cxx, cmake.h: BUG: Fix resolving of infinite loops + while CMakeSetup/ccmake still running + +2004-04-26 11:12 martink + + * Tests/: Complex/CMakeLists.txt, Complex/Executable/complex.cxx, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx: added tests for var + args with macros + +2004-04-26 11:11 martink + + * Source/: cmMacroCommand.cxx, cmMacroCommand.h: macros now support + varargs + +2004-04-26 11:00 king + + * Modules/FindITK.cmake, Modules/FindVTK.cmake, + Source/cmFindPackageCommand.cxx: BUG#682: Adding environment + variable check to FIND_PACKAGE command. + +2004-04-26 10:49 king + + * Source/cmFindPackageCommand.cxx: STYLE: Removed trailing + whitespace. + +2004-04-26 10:19 king + + * Modules/: CheckVariableExists.c: BUG#502: Do not let optimizing + compilers think the symbol exists. Require the symbol by making + the return value depend on it to force linking. + +2004-04-23 16:26 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate: BUG: fix for bug 769 + CMAKE_STANDARD_LIBRARIES now used in ides + +2004-04-23 16:20 andy + + * Source/: cmCommands.cxx, cmGetDirectoryPropertyCommand.cxx, + cmGetDirectoryPropertyCommand.h, cmMakefile.h, + cmSetDirectoryPropertiesCommand.cxx, + cmSetDirectoryPropertiesCommand.h: ENH: Add + GET/SET_DIRECTORY_PROPERTY/PROPERTIES commands so that we can + change include directories and get all sorts of things. Closes + Bug #25 - Get_CMAKE_PROPERTIES + +2004-04-23 13:12 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake, + Source/cmLocalVisualStudio7Generator.cxx: ENH: add verbose make + abilility to visual studio 7 + +2004-04-23 12:52 hoffman + + * Source/CMakeLists.txt, Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmSubdirCommand.cxx, + Tests/PreOrder/CMakeLists.txt, Tests/PreOrder/simple.cxx, + Tests/PreOrder/Library/CMakeLists.txt, + Tests/PreOrder/Library/simpleLib.cxx: ENH: add SUBDIR PREORDER + and fix clean for non-relative paths + +2004-04-23 10:03 andy + + * Source/: cmAddExecutableCommand.cxx, cmAddExecutableCommand.h: + ENH: Unify with other variables + +2004-04-23 09:12 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: ENH: allow verbose + makefile flag to remove nologo from all commands so you can see + them in visual studio 6 + +2004-04-23 08:50 king + + * Source/cmCTest.cxx: ERR: Fixed unused variable assignment + warning. + +2004-04-22 18:04 andy + + * Source/cmCTest.cxx: ENH: Add DynamicAnalisys support. The old + Purify is still available through --compatibility-mode + +2004-04-22 17:23 hoffman + + * Modules/: FindwxWidgets.cmake, UsewxWidgets.cmake: BUG: fix for + bug 618 + +2004-04-22 17:20 hoffman + + * Modules/FindGLUT.cmake: BUG: fix for bug 743 + +2004-04-22 17:08 hoffman + + * Modules/FindGTK.cmake: BUG: fix for bug 607 + +2004-04-22 16:58 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Templates/staticLibHeader.dsptemplate: ENH: add support for + static library property STATIC_LIBRARY_FLAGS + +2004-04-22 16:16 hoffman + + * Modules/FindDCMTK.cmake: ENH: contribution from Ian Scott, + thanks. + +2004-04-22 15:59 martink + + * Modules/FindOpenGL.cmake: update comments + +2004-04-22 14:38 hoffman + + * Source/cmTarget.cxx: ENH: add a property for HAS_CXX to a target + that will force the use of a c++ compiler in the linking of an + executable that contains only c code + +2004-04-22 14:11 andy + + * Source/kwsys/SystemTools.cxx: ERR: Verify that getenv returned + something before using it + +2004-04-22 13:37 martink + + * Source/cmAddCustomCommandCommand.h: update docs + +2004-04-22 13:24 hoffman + + * Source/: cmFindLibraryCommand.h, cmFindPathCommand.cxx, + cmFindPathCommand.h, cmMakefile.cxx, kwsys/SystemTools.cxx, + kwsys/SystemTools.hxx.in: BUG: fix for 301 CMAKE_LIBRARY_PATH and + CMAKE_INCLUDE_PATH env vars now used in FIND_LIBRARY and + FIND_PATH in addtion to and before PATH + +2004-04-22 11:12 hoffman + + * Modules/FindwxWindows.cmake: BUG: fix bad if statements + +2004-04-22 09:44 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG 178: make top level + cmakelist file a source in ALL_BUILD + +2004-04-21 17:54 andy + + * Source/cmGlobalVisualStudio71Generator.cxx: ERR: Fix install on + VS71 + +2004-04-21 16:23 king + + * Source/: cmListFileLexer.c, cmListFileLexer.h, + cmListFileLexer.in.l: ENH: Added cmListFileLexer_SetString method + to allow a string to be parsed as input. + +2004-04-21 16:07 hoffman + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: add dep + +2004-04-21 15:09 hoffman + + * Modules/FindwxWindows.cmake: ENH: fix for mingw + +2004-04-21 11:42 andy + + * Source/cmFileCommand.cxx: BUG: Put all files to manifest + +2004-04-21 11:36 king + + * Source/cmAddCustomTargetCommand.cxx: BUG: Fixed check of number + of arguments. + +2004-04-21 11:33 king + + * Modules/: FindITK.cmake, FindVTK.cmake: ENH: Terminate with a + FATAL_ERROR if FIND_PACKAGE command was called with REQUIRED + argument and package was not found. + +2004-04-21 11:32 andy + + * Source/cmLocalGenerator.cxx: ENH: Do preinstall and postinstall + script even if the target is not installed + +2004-04-21 10:34 andy + + * Source/: cmakemain.cxx, ctest.cxx: ENH: Report error and exit + when the current directory is not specified + +2004-04-21 10:33 andy + + * Source/kwsys/SystemTools.cxx: BUG: Prevent crash when the current + working directory cannot be established + +2004-04-20 18:28 andy + + * Source/cmSystemTools.cxx: BUG: If the line ends without new-line + character, Split should still return something + +2004-04-19 17:21 andy + + * Source/cmCTest.cxx: RNH: Support NoDartCoverage in the binary + directorory + +2004-04-19 10:36 king + + * Source/: cmFindPackageCommand.cxx, cmFindPackageCommand.h: + ENH#696: Adding REQUIRED option to FIND_PACKAGE command. It will + terminate the cmake configure step if the package is not found. + +2004-04-18 14:41 andy + + * Source/: cmFileCommand.cxx, cmFileCommand.h, + cmGlobalGenerator.cxx, cmMakefile.cxx, cmMakefile.h, + cmWriteFileCommand.cxx, cmWriteFileCommand.h, cmake.cxx, cmake.h: + ENH: Add check for infinite loops. Make sure that files written + using WRITE_FILE and FILE WRITE are not used as input files. + Fixes Bug #678 - WRITE_FILE and FILE(WRITE...) lead to infinite + loops + +2004-04-18 13:16 andy + + * Source/: cmLocalUnixMakefileGenerator.cxx, cmSourceFile.cxx: ENH: + Add support for adding object files and sources. This way you can + use external program such as assembler or fortran to generate + object files. Also star of fixing: Bug #757 - add .o file as a + source file + +2004-04-16 14:55 martink + + * Source/cmCTest.cxx: better args handling for -I options + +2004-04-16 14:52 martink + + * Source/: cmCTest.cxx, cmCTest.h: better args handling for -I + option + +2004-04-16 13:36 andy + + * Source/cmCTest.cxx: ENH: Better reporting of what tests failed + and write a file with failed tests + +2004-04-16 09:50 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: fix for bug 91 + +2004-04-15 16:11 andy + + * Source/CursesDialog/cmCursesStringWidget.cxx: ENH: Add support + for HOME and END keys. Also fix Bug #666 - In CCMake when + deleting something, it does not stop at the beginning of line + +2004-04-15 15:46 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: BUG: Prevent deleting + not existing variables and therefore prevent crash. Fixes: Bug + #750 - CCMake crashes when deleting all variables + +2004-04-15 13:59 andy + + * Tests/: Complex/CMakeLists.txt, Complex/Executable/complex.cxx, + Complex/Library/CMakeLists.txt, Complex/Library/file2.cxx, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexOneConfig/Library/file2.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt, + ComplexRelativePaths/Library/file2.cxx: ENH: Add test for + REMOVE_DEFINITION + +2004-04-15 13:58 andy + + * Source/: cmCommands.cxx, cmMakefile.cxx, cmMakefile.h, + cmRemoveDefinitionsCommand.cxx, cmRemoveDefinitionsCommand.h: + ENH: ADD REMOVE_DEFINITION command. Fix feature request: Bug #182 + - Add opposite to ADD_DEFINITIONS + +2004-04-15 13:15 hoffman + + * Source/cmOptionCommand.cxx: BUG: fix for 282 + +2004-04-15 13:09 andy + + * Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, + Templates/CMakeLists.txt: ENH: Handle make install target on + Visual Studio 6 and 7 and install templates + +2004-04-15 12:07 andy + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: Ok, that is it. Remove old + install and replace it with new + +2004-04-15 11:55 hoffman + + * Modules/FindMFC.cmake: BUG: fix for bug 506 + +2004-04-15 11:38 hoffman + + * Source/cmSiteNameCommand.cxx: BUG: fix for bug 689 + +2004-04-15 08:22 hoffman + + * Modules/: CheckForPthreads.c, CheckFunctionExists.c, + CheckTypeSize.c, CheckVariableExists.c, TestBigEndian.c: ENH: fix + tests for non-ansi c on hp and remove warnings for ansi c + +2004-04-14 17:02 hoffman + + * Modules/FindITK.cmake: BUG: fix for bug 608 + +2004-04-14 16:58 hoffman + + * Source/cmGlobalVisualStudio7Generator.cxx: BUG: fix external + projects for vc7 + +2004-04-14 15:56 hoffman + + * Modules/: CheckFunctionExists.c, TestBigEndian.c: ENH: remove + warnings from try compiles + +2004-04-14 14:25 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h: ENH: Renamed + --help-list-commands to --help-command-list and split --help + [command] into separate --help and --help-command cmd options. + +2004-04-14 13:40 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h: ENH: Added + --help-list-commands option. + +2004-04-14 08:55 hoffman + + * Source/cmCTest.cxx: ENH: remove warning + +2004-04-13 18:27 hoffman + + * Source/cmCTest.cxx: ENH: fix warning + +2004-04-13 16:32 hoffman + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx: ENH: add the ability + to run a limited sub-set of the tests + +2004-04-13 09:28 andy + + * Source/CTest/Curl/multi.c: ERR: Fix warning + +2004-04-12 21:01 hoffman + + * Modules/FindGTK.cmake: BUG: fix for bug 593 + +2004-04-09 09:53 andy + + * Source/cmCTest.cxx: BUG: Display string not some weird pointer + +2004-04-09 08:37 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: add full path + libraries to the depend information + +2004-04-08 17:13 andy + + * Modules/MacOSXBundleInfo.plist.in, + Source/cmAddExecutableCommand.cxx, + Source/cmAddExecutableCommand.h: ENH: Improve Mac OSX bundle + support + +2004-04-07 12:07 martink + + * Source/cmLocalVisualStudio7Generator.cxx: fix problem with custom + command + +2004-04-07 09:58 hoffman + + * Source/cmTarget.cxx: ENH: remove warnings on sgi + +2004-04-05 10:35 king + + * DartConfig.cmake: ERR: Need to use latest testing configuration + even on branch. + +2004-04-02 13:21 king + + * Source/cmTarget.cxx: BUG: _LINK_TYPE cache variable should never + be switched from optimized to debug or vice versa. + +2004-04-02 09:43 hoffman + + * Source/CMakeLists.txt, Tests/Jump/Library/Shared/CMakeLists.txt: + ENH: fix for apple + +2004-04-02 08:09 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix warning and + shadow variable + +2004-04-01 16:07 martink + + * Source/cmCTest.cxx: fix for missing valid images + +2004-04-01 15:28 king + + * Source/kwsys/ProcessFwd9x.c: ENH: Added comment for future work + to make forwarding executable always statically linked. + +2004-04-01 14:37 andy + + * Source/cmCTest.cxx: BUG: Fix bug on windows. You cannot cout + std::string directly + +2004-04-01 14:11 andy + + * Source/: cmCTest.cxx, CTest/cmCTestSubmit.cxx, + CTest/cmCTestSubmit.h: ENH: Add logging of submitting + +2004-04-01 09:59 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix non relative + paths + +2004-04-01 08:59 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix for non + relative paths with spaces in the path + +2004-03-31 16:44 king + + * Modules/FindTclsh.cmake: ENH: Added registry check for + ActiveState Tcl 8.4.6. + +2004-03-31 11:26 andy + + * Source/cmCTest.cxx: ENH: Reduce number of + GetCurrentWorkingDirectory + +2004-03-31 11:24 andy + + * Source/cmCTest.cxx: ENH: Change to the new directory + +2004-03-31 10:01 hoffman + + * Source/: CMakeLists.txt, cmLocalGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h, + cmake.cxx: ENH: make relative paths optional and default off, and + add a test for them + +2004-03-29 13:16 king + + * Source/MFCDialog/PropertyList.cpp: BUG#724: Merging 1.27->1.28 + changes to CMake 1.8 branch. + +2004-03-29 13:15 king + + * Source/MFCDialog/PropertyList.cpp: BUG#724: Preserving current + working directory during file selection. + +2004-03-29 12:51 king + + * Source/cmConfigureFileCommand.cxx: BUG#485: Fixing on CMake 1.8 + branch. + +2004-03-29 12:04 king + + * Source/: cmSystemTools.h, cmTryCompileCommand.cxx: BUG#679: + Merging fix to CMake 1.8 branch. + +2004-03-28 17:59 andy + + * Source/: cmFileCommand.cxx, cmLocalGenerator.cxx: ENH: When + installing project, write manifest + +2004-03-28 16:36 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Add a way to clean + additional files + +2004-03-28 16:00 andy + + * Source/: cmConfigureFileCommand.cxx, cmConfigureFileCommand.h, + cmMakefile.cxx: ENH: If configure file fails do not create + directory + +2004-03-28 10:14 andy + + * Source/cmIncludeCommand.cxx: ERR: Remove debug + +2004-03-28 10:14 andy + + * Source/cmLocalGenerator.cxx: BUG: Support paths with spaces + +2004-03-28 09:46 andy + + * Source/: cmIncludeCommand.h, cmSetTargetPropertiesCommand.h: DOC: + Fix comment + +2004-03-27 20:59 andy + + * Source/cmLocalGenerator.cxx, + Source/cmSetTargetPropertiesCommand.h, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/PostInstall.cmake, + Tests/SimpleInstall/PreInstall.cmake, + Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/PostInstall.cmake, + Tests/SimpleInstallS2/PreInstall.cmake: ENH: Add pre and post + install script support + +2004-03-27 19:52 andy + + * Source/cmIncludeCommand.cxx, Source/cmIncludeCommand.h, + Tests/LoadCommand/CMakeLists.txt, + Tests/LoadCommandOneConfig/CMakeLists.txt: ENH: Add support for + importing modules without specifying path + +2004-03-27 19:52 andy + + * Source/cmFindPackageCommand.cxx: ERR: That slash is unnecessary + +2004-03-27 13:20 starreveld + + * Modules/FindOpenGL.cmake: ERR: Shouldn't be adding xlibs to + opengllibs on osx + +2004-03-25 16:06 martink + + * Source/cmCTest.cxx: coverage change that will probably end in an + infinite loop + +2004-03-25 08:45 king + + * Source/: cmLinkLibrariesCommand.h, + cmTargetLinkLibrariesCommand.h: ENH: Clarified documentation for + LINK_LIBRARIES and TARGET_LINK_LIBRARIES. + +2004-03-24 16:31 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Added support to + library flags parser for -Wl and -R options. + +2004-03-23 15:02 king + + * Modules/Platform/Windows-cl.cmake: ERR: Fixed incorrect + documentation for CMAKE_CXX_WARNING_LEVEL. Submitted by David + Cole. + +2004-03-20 20:37 andy + + * Source/cmCTest.cxx: ENH: Fix warning + +2004-03-19 14:48 king + + * Source/cmTryCompileCommand.cxx: ENH: Clarified recursive + TRY_COMPILE error message. + +2004-03-19 09:34 andy + + * Source/cmCTest.cxx: ERR: Fix warnings about wrong format + +2004-03-18 09:52 andy + + * Source/cmCTest.cxx: ERR: Fix build on broken C++ compiles with no + != operator for std::string + +2004-03-17 11:30 andy + + * Source/: cmCTest.cxx, cmCTest.h: BUG: change directory before + running test and remember test number + +2004-03-17 09:42 berk + + * Source/: cmSystemTools.h, cmTryCompileCommand.cxx: BUG: When + error occurs, try compiles should still work + +2004-03-17 08:20 andy + + * Source/cmCTest.h: ERR: On some compilers structure inside class + cannot reference private typdefs from the same class + +2004-03-16 12:54 king + + * Source/cmExportLibraryDependencies.cxx: ERR: Added missing + include for auto_ptr. + +2004-03-15 14:54 andy + + * Source/kwsys/CMakeLists.txt: ENH: Always include KWSys header + files directory + +2004-03-15 10:44 king + + * Source/cmExportLibraryDependencies.cxx: BUG#675: If not + appending, do copy-if-different on exported file. + +2004-03-15 09:35 andy + + * Source/cmCTest.h: ERR: Fix build + +2004-03-14 12:28 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add support for future tags + +2004-03-14 11:23 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Count tests while they go. + Also in the logs report more stuff like elapsed time etc. + +2004-03-12 14:43 king + + * Source/kwsys/ProcessUNIX.c: ERR: SIGSEGV == SIGBUS on BeOS. + +2004-03-10 14:33 hoffman + + * Source/: cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h: ENH: update vs71 generator to + support excluded subdirs + +2004-03-09 16:28 hoffman + + * Source/CMakeLists.txt, Source/cmEnableTestingCommand.cxx, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmLocalGenerator.cxx, Source/cmLocalGenerator.h, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmSubdirCommand.cxx, + Source/cmSubdirCommand.h, Tests/SubDir/Executable/test.cxx: ENH: + add new subdirectory exclude from top option + +2004-03-09 16:20 hoffman + + * Tests/SubDir/: CMakeLists.txt, Examples/CMakeLists.txt, + Examples/example1/CMakeLists.txt, Examples/example1/example1.cxx, + Examples/example2/CMakeLists.txt, Examples/example2/example2.cxx, + Executable/CMakeLists.txt, Executable/test.cxx: ENH: create new + test to test subdir exclude + +2004-03-09 12:31 andy + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: Properly build + WIN32 executables + +2004-03-09 07:50 andy + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: Try to remove warning + +2004-03-08 22:24 andy + + * Source/cmInstallTargetsCommand.h: ENH: Add comment about + RUNTIME_DIRECTORY + +2004-03-08 19:05 andy + + * Source/: cmConfigureFileCommand.cxx, cmMakefile.cxx, + cmMakefile.h: ENH: Move implementation of configure_file to + cmMakefile, so that other classes can use it + +2004-03-04 10:05 king + + * Source/cmStringCommand.cxx, Source/cmStringCommand.h, + Tests/StringFileTest/CMakeLists.txt, + Tests/StringFileTest/InputFile.h.in: ENH: Added STRING(CONFIGURE + ...) command. + +2004-03-03 18:18 king + + * Source/: cmConfigureFileCommand.cxx, cmMakefile.cxx, + cmMakefile.h: ENH: Moved variable and #cmakedefine replacement + from cmConfigureFileCommand.cxx to a ConfigureString method on + cmMakefile. This will give other commands access to the + configuration code. + +2004-02-29 15:13 andy + + * Tests/COnly/CMakeLists.txt: ERR: Too much commits + +2004-02-29 15:13 andy + + * Source/cmMakefile.cxx, Tests/COnly/CMakeLists.txt: ERR: Fix + GetModulesFile + +2004-02-29 14:23 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Handle backticks as + a valid library + +2004-02-29 09:53 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ERR: Cleanup and remove + warning + +2004-02-29 09:51 andy + + * Source/cmLocalCodeWarriorGenerator.cxx: ERR: Fix build on Mac + +2004-02-28 18:59 andy + + * Modules/MacOSXBundleInfo.plist.in, + Source/cmAddExecutableCommand.cxx, Source/cmCPluginAPI.cxx, + Source/cmFindPackageCommand.cxx, Source/cmLocalGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmTarget.h: ENH: Styart working on + bundles support and abstract WIN32_EXECUTABLE + +2004-02-24 18:48 andy + + * Source/cmSystemTools.cxx: ERR: Fix crash. We should check output + before appending to it + +2004-02-24 10:05 andy + + * Source/: cmCTest.cxx, cmCTest.h: BUG: CVS update fix. If the CVS + command was not set there was no indication that something went + wrong. Now it will make sure it does. Also start working on + multiple configuration scripts + +2004-02-24 10:04 andy + + * Source/cmSystemTools.cxx: ENH: Put Process execution errors in + output and honor verbosity + +2004-02-23 09:56 andy + + * Source/: cmCTest.cxx, cmLocalGenerator.cxx: ENH: Improve coverage + support and add more verbosity + +2004-02-23 09:54 king + + * Source/kwsys/Directory.cxx: ERR: Merging 1.7->1.9 changes to + CMake 1.8 branch. + +2004-02-23 09:53 king + + * Source/MFCDialog/PathDialog.cpp: ERR: Merging 1.2 -> 1.3 warning + fix to CMake 1.8 branch. + +2004-02-23 09:52 king + + * Source/CTest/Curl/CMakeLists.txt: ERR: Merging warning fixes + 1.34->1.35 from main tree to CMake 1.8 branch. + +2004-02-22 22:07 andy + + * Source/: cmCMakeMinimumRequired.h, cmConfigureFileCommand.h, + cmElseCommand.h, cmEndIfCommand.h, cmExecProgramCommand.h, + cmFindFileCommand.h, cmFindLibraryCommand.h, cmFindPathCommand.h, + cmFindProgramCommand.h, cmGetFilenameComponentCommand.h, + cmMakeDirectoryCommand.h, cmRemoveCommand.h, + cmSeparateArgumentsCommand.h, cmWriteFileCommand.h: ENH: Make + more commands scriptable + +2004-02-22 22:06 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: BUG: Prevent crash when + deleting the last cache item + +2004-02-22 13:14 andy + + * Source/: cmCPluginAPI.cxx, cmFLTKWrapUICommand.cxx, + cmGetCMakePropertyCommand.cxx, + cmGetSourceFilePropertyCommand.cxx, cmLoadCacheCommand.h, + cmOutputRequiredFilesCommand.h, cmQTWrapCPPCommand.h, + cmQTWrapUICommand.h, cmSetSourceFilesPropertiesCommand.cxx, + cmSourceFilesCommand.cxx, cmUseMangledMesaCommand.h, + cmVTKMakeInstantiatorCommand.cxx, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.h, cmVTKWrapTclCommand.h, + cmWrapExcludeFilesCommand.cxx: ENH: Cleanups + +2004-02-20 14:46 andy + + * Source/cmake.cxx, Source/cmakemain.cxx, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Ok, when doing cmake + -P you should not have to squish filename next to -P, There + should be space between + +2004-02-20 09:25 andy + + * Source/cmCTest.cxx: ENH: Handle wrong library on sun and no + project on visual studio 7 + +2004-02-19 10:33 andy + + * Source/CMakeLists.txt: ENH: Comment out test + +2004-02-19 10:32 andy + + * CMakeLists.txt, Source/CMakeLists.txt: ENH: Cleanup + +2004-02-19 10:29 andy + + * Source/cmIfCommand.h: ENH: Make IF command scriptable + +2004-02-19 10:28 king + + * Docs/cmake-mode.el: BUG: Fixed identification of ( and ) tokens + to avoid finding them in string literals. + +2004-02-19 09:35 andy + + * Source/cmMacroCommand.h: ENH: Macro should be scriptable + +2004-02-19 09:35 andy + + * Source/cmCTest.cxx: ERR: Do not exit when find bad custom files. + +2004-02-17 08:35 hoffman + + * Source/cmDynamicLoader.cxx: BUG: don't crash when loading a + module that does not exist + +2004-02-16 10:57 martink + + * Source/MFCDialog/PathDialog.cpp: shut up unfixable warning + +2004-02-16 10:48 hoffman + + * Source/: cmConfigure.cmake.h.in, cmDynamicLoader.cxx: ENH: use + cmake variables for cmDynamicLoader to figure out library prefix + and extensions + +2004-02-16 09:50 hoffman + + * Modules/Platform/Windows-gcc.cmake, Source/cmDynamicLoader.cxx: + BUG: fix mingw module load tests + +2004-02-16 09:49 martink + + * Source/CTest/Curl/CMakeLists.txt: fix warnings + +2004-02-14 16:55 hoffman + + * Modules/Platform/Windows-gcc.cmake: shared modules are not linked + so do not use lib prefix + +2004-02-13 10:51 hoffman + + * Modules/Platform/Windows-gcc.cmake, Source/kwsys/SystemTools.cxx: + ENH: change mingw to use libfoo.dll instead of foo.dll since it + can link to them + +2004-02-12 21:44 andy + + * Source/cmFileCommand.cxx: ENH: Add DESTDIR support + +2004-02-12 13:38 king + + * Source/kwsys/Directory.cxx: ERR: Fixed use of _findfirst for MSVC + 6. + +2004-02-12 11:23 martink + + * Source/kwsys/Directory.cxx: fix incorrect signature for findfirst + +2004-02-12 09:13 hoffman + + * Source/kwsys/SystemTools.cxx, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: Fix install test fail on + mingw + +2004-02-12 08:58 andy + + * Source/kwsys/SystemTools.cxx: BUG: Like cygwin, mingw does not + produce .lib file for shared libraries, so search for dll when + searching for library + +2004-02-11 10:56 andy + + * Source/cmCTest.cxx: ERR: Remove warning + +2004-02-11 08:28 andy + + * Source/kwsys/SystemTools.cxx, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: On Cygwin shared + libraries have only .dll file no .lib file, so when finding + library on cygwin, search also for .dll. Also fix SimpleInstall + test on cygwin + +2004-02-10 15:53 andy + + * Source/cmCTest.cxx: ERR: Use filepath followed by filename not + another filepath + +2004-02-10 15:51 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add logging of tests while + running. This way you can actually see the output as it goes + +2004-02-09 16:40 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: Some cleanup and try to fix + Visual Studio builds + +2004-02-09 15:34 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: -l or whatever + should be at beginning of line. + +2004-02-09 11:33 andy + + * Source/CMakeLists.txt, Tests/SimpleInstall/inst.cxx, + Tests/SimpleInstallS2/inst.cxx: ENH: Some systems do not handle + spaces in the path + +2004-02-08 20:08 andy + + * Source/CMakeLists.txt, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Install stage2 to + handle runtime problem + +2004-02-08 13:23 andy + + * Source/cmCTest.cxx: ENH: Attempt to support tests in funky + subdirectories + +2004-02-08 12:04 andy + + * Source/CMakeLists.txt, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Add second part of + SimpleInstall + +2004-02-06 16:43 king + + * Source/cmGlob.cxx: BUG#480: Merging 1.10->1.11 changes to 1.8 + branch. + +2004-02-06 15:26 andy + + * Source/cmGlob.cxx: ENH: When nor specifying full path, make sure + it actually works, on broken filesystems fix case of files. + +2004-02-06 15:18 andy + + * Source/cmFileCommand.cxx: ENH: Handle script mode + +2004-02-06 13:47 andy + + * Source/: cmEndForEachCommand.h, cmForEachCommand.h, + cmStringCommand.h: ENH: Make more commands scriptable + +2004-02-06 10:49 andy + + * Modules/FindJNI.cmake: ENH: Better finding of JNI + +2004-02-05 10:12 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ERR: Fix test on windows with + network paths + +2004-02-04 09:42 berk + + * Tests/: SimpleInstall/foo.c, SimpleInstall/foo.h, + SimpleInstall/inst.cxx, SimpleInstallS2/foo.c, + SimpleInstallS2/foo.h, SimpleInstallS2/inst.cxx: ENH: Fix test on + HP-UX + +2004-02-03 11:23 andy + + * Source/cmFileCommand.cxx: ENH: Fix support for debug postfix + +2004-02-03 10:53 andy + + * Source/: cmFileCommand.cxx, cmLocalGenerator.cxx, cmSetCommand.h: + ENH: Add support for install postfix + +2004-02-03 10:25 andy + + * Source/cmLocalGenerator.cxx: ENH: Cleanup output + +2004-02-03 09:26 andy + + * Source/cmLocalUnixMakefileGenerator.cxx, + Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstallS2/CMakeLists.txt: ENH: Fix ADD_DEPENDENCIES + on Unix makefiles and fix SimpleInstall test not to link the + module + +2004-02-02 18:23 andy + + * Tests/: SimpleInstall/CMakeLists.txt, + SimpleInstallS2/CMakeLists.txt: ENH: Make test work on windows + +2004-02-02 18:23 andy + + * Source/cmCTest.cxx: ENH: Propagate build type + +2004-02-01 16:48 andy + + * Tests/: SimpleInstall/lib2.h, SimpleInstall/lib3.h, + SimpleInstallS2/lib2.h, SimpleInstallS2/lib3.h: ENH: Fix exports + +2004-02-01 12:53 andy + + * Source/CMakeLists.txt, Tests/SimpleInstall/CMakeLists.txt, + Tests/SimpleInstall/foo.c, Tests/SimpleInstall/foo.h, + Tests/SimpleInstall/inst.cxx, Tests/SimpleInstall/lib1.cxx, + Tests/SimpleInstall/lib1.h, Tests/SimpleInstall/lib2.cxx, + Tests/SimpleInstall/lib2.h, Tests/SimpleInstall/lib3.cxx, + Tests/SimpleInstall/lib3.h, Tests/SimpleInstallS2/CMakeLists.txt, + Tests/SimpleInstallS2/foo.c, Tests/SimpleInstallS2/foo.h, + Tests/SimpleInstallS2/inst.cxx, Tests/SimpleInstallS2/lib1.cxx, + Tests/SimpleInstallS2/lib1.h, Tests/SimpleInstallS2/lib2.cxx, + Tests/SimpleInstallS2/lib2.h, Tests/SimpleInstallS2/lib3.cxx, + Tests/SimpleInstallS2/lib3.h: ENH: Add install test + +2004-01-29 10:29 hoffman + + * Source/cmCTest.cxx: BUG: keep output + +2004-01-29 09:01 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: remove depend on + CMakeCache for rebuild_cache target to avoid double rebuild cache + +2004-01-29 09:00 king + + * Source/CTest/Curl/getdate.c: ERR: Fixed prototypes of gmtime, + localtime, and mktime. + +2004-01-28 13:17 hoffman + + * Source/cmCTest.cxx: BUG: After running builtin ctest, go back to + the original directory + +2004-01-28 11:22 andy + + * Source/cmLocalGenerator.cxx: ERR: Remove cout + +2004-01-28 10:59 king + + * Source/kwsys/ProcessWin32.c: BUG: Corrected detection of + exceptional exit code. + +2004-01-28 10:59 king + + * Source/kwsys/testProcess.c: ENH: Added exception string to + abnormal termination report. + +2004-01-28 09:47 martink + + * Source/cmCTest.cxx: Including exception string in test's error + output. + +2004-01-28 08:11 andy + + * Source/cmFileCommand.cxx: ERR: Remove warning about unused + variable + +2004-01-27 17:12 hoffman + + * Source/cmaketest.cxx: remove old file + +2004-01-27 17:12 hoffman + + * Source/cmCTest.cxx: ENH: add a dynamic loader flush cache + +2004-01-27 17:11 andy + + * Source/cmCTest.cxx: ENH: Only display the precontext or + postcontext up to the next or previous warning or error + +2004-01-27 14:51 hoffman + + * Source/cmSystemTools.cxx: BUG: fix FMM + +2004-01-27 12:37 andy + + * Source/: cmFileCommand.cxx, cmInstallTargetsCommand.cxx, + cmLocalGenerator.cxx, cmLocalGenerator.h, cmTarget.h, + MFCDialog/CMakeLists.txt: ENH: Make install on windows seems to + work now + +2004-01-27 09:53 andy + + * Source/cmFileCommand.cxx: ERR: Fix build on Mingw. Looks like + Mingw is more like visual studio... Thanks Fred Wheeler + +2004-01-27 09:42 martink + + * Source/cmCTest.cxx: fix for backup restore + +2004-01-27 09:05 andy + + * Source/cmFileCommand.cxx: ERR: And yet another set of constants + for file permissions + +2004-01-27 09:05 andy + + * Source/: cmStandardIncludes.h, cmSystemTools.h: ERR: Properly + handle mode_t on borland + +2004-01-26 17:52 andy + + * Source/cmStandardIncludes.h: ERR Fix borland + +2004-01-26 16:29 andy + + * Source/cmLocalGenerator.cxx: BUG: Fix for spaces in path + +2004-01-26 16:24 andy + + * Source/: cmFileCommand.cxx, cmLocalGenerator.cxx: ENH: Several + windows bugs and fixes + +2004-01-26 16:05 andy + + * Source/: cmFileCommand.cxx, cmFileCommand.h: ENH: Add unix style + install in file command + +2004-01-26 15:50 andy + + * Source/: cmConfigureFileCommand.cxx, cmSystemTools.cxx, + cmSystemTools.h: ENH: Preserve permissions when copying files + +2004-01-26 15:03 andy + + * Source/: cmStandardIncludes.h, cmSystemTools.cxx: ERR: Fix build + problems on Visual Studio 6 + +2004-01-26 14:55 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Add code for + setting and getting permissions + +2004-01-26 14:41 andy + + * Source/: cmCTest.cxx, cmSystemTools.cxx: ENH: Improve calling of + RunSingle command and fix compile error + +2004-01-26 14:00 hoffman + + * Source/cmSystemTools.cxx: ENH: forgot return value + +2004-01-26 13:57 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add support for + CTestCustom.ctest, which modifies some behavior of ctest + +2004-01-26 13:32 hoffman + + * Source/: cmCTest.cxx, cmGlobalGenerator.cxx, cmSystemTools.cxx, + cmSystemTools.h, cmake.cxx, cmake.h: BUG: fix put/get env + problems + +2004-01-26 13:32 hoffman + + * Source/kwsys/ProcessWin32.c: ENH: fix for build on cygwin mingw + +2004-01-25 19:30 andy + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h: ERR: Fix std:: + namespace + +2004-01-25 19:25 andy + + * Source/: cmGlobalGenerator.cxx, cmLocalGenerator.cxx, + cmLocalGenerator.h: ENH: Start adding new installation framework + +2004-01-24 12:52 king + + * Tests/Jump/Executable/CMakeLists.txt: BUG: Due to backward + ordering, Visual Studio GUIs need the link directories for the + libraries the first time. + +2004-01-23 15:17 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: .lib from a .dll + should go in m_LibraryOutputPath not m_ExecutableOutputPath + +2004-01-23 13:43 hoffman + + * Tests/Jump/Library/Shared/CMakeLists.txt: BUG: libdir was set + wrong on windows + +2004-01-23 13:43 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: jump over feature + was not working for windows + +2004-01-23 13:19 andy + + * DartConfig.cmake: ENH: Fix url + +2004-01-23 13:01 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: fix for debug + flags into project files + +2004-01-23 13:01 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: more fixes for + relative path stuff + +2004-01-23 12:46 andy + + * DartConfig.cmake: ENH: Add nightly reporting + +2004-01-23 12:40 hoffman + + * Modules/CMakeDetermineCCompiler.cmake: ENH: use CFLAGS for + testing for gnu + +2004-01-23 11:26 andy + + * DartConfig.cmake: ENH: More continuous e-mail stuff + +2004-01-23 11:22 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: convert the .o + files to not have ./ + +2004-01-23 09:54 king + + * Source/: cmLocalGenerator.cxx, cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: BUG: Fix to build rule generation + with relative paths. + +2004-01-23 09:48 king + + * DartConfig.cmake: ENH: Improving CMake continuous dashboards. + Sending continuous email for all kinds of failures. + +2004-01-23 09:44 martink + + * Source/: cmCTest.cxx, cmCTest.h: fixes to backup restore options + +2004-01-23 08:53 king + + * Source/cmLocalGenerator.cxx: STYLE: Deleted trailing whitespace. + +2004-01-23 08:51 king + + * Source/CMakeLists.txt: ERR: Fixed project name for Jump tests. + +2004-01-22 14:44 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c: ERR: Fixed function + prototypes with zero arguments to be C-style. + +2004-01-22 11:16 andy + + * Source/kwsys/ProcessUNIX.c: BUG: If working directory does not + exists, exit + +2004-01-22 11:10 andy + + * Source/cmCTest.cxx: BUG: If at least one test fails, the percent + cannot be greater than 99 + +2004-01-22 10:54 king + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: BUG: Fix jump-over-and-build for + missing libraries when the relative path to the library is + different between the source and destination of the jump. + +2004-01-22 10:51 king + + * Tests/Jump/Library/: CMakeLists.txt, jumpShared.cxx, + jumpStatic.cxx, Shared/CMakeLists.txt, Shared/jumpShared.cxx, + Static/CMakeLists.txt, Static/jumpStatic.cxx: ENH: Improved test + to have a different relative path name for libraries between the + Executable and Library directories. + +2004-01-22 10:36 king + + * Source/CMakeLists.txt: ENH: Added JumpWithLibOut and JumpNoLibOut + to test whether jumping over to build a missing library works. + +2004-01-22 10:30 king + + * Source/: cmake.cxx, kwsys/SystemTools.cxx: BUG: + CopyFileIfDifferent should return success if the files did not + differ or if the copy succeeded. It should return failure only + if the files were different and the copy failed. + +2004-01-22 10:23 king + + * Tests/Jump/Library/CMakeLists.txt: ERR: Fixed post-build rule to + copy shared library correctly. + +2004-01-22 09:56 king + + * Tests/Jump/: CMakeLists.txt, Executable/CMakeLists.txt, + Executable/jumpExecutable.cxx, Library/CMakeLists.txt, + Library/jumpShared.cxx, Library/jumpStatic.cxx: ENH: Adding test + for jumping over and building a missing library. + +2004-01-21 18:39 andy + + * Modules/CMakeDefaultMakeRuleVariables.cmake: ENH: This will + probably break some obscure version of gcc, but until then, + everybody doing profiling will be happy + +2004-01-21 15:55 king + + * Source/cmSystemTools.cxx: BUG: ::Stdout method should flush cout + after writing data. + +2004-01-21 15:12 king + + * Modules/CMakeTestCCompiler.cmake: BUG#530: Merging 1.9 -> 1.10 + changes to CMake 1.8 branch. + +2004-01-21 15:11 king + + * Modules/CMakeTestCCompiler.cmake: BUG#530: Using #error to report + a nice error message if the C compiler is set to a C++ compiler. + +2004-01-21 15:08 king + + * Modules/TestBigEndian.c: BUG: Use return statement instead of + exit. + +2004-01-21 15:07 martink + + * Source/kwsys/ProcessUNIX.c: merge from the main tree + +2004-01-21 14:43 king + + * Source/cmCTest.cxx: BUG: empty method on std string is a test, + and does not set the string to empty. + +2004-01-21 14:27 hoffman + + * Source/cmCTest.cxx: BUG: fix leak + +2004-01-21 14:06 king + + * Source/cmCTest.cxx: BUG: Fixed buffer size in MakeXMLSafe. + +2004-01-21 13:38 andy + + * Source/kwsys/ProcessUNIX.c: BUG: Fix valgrind error. If working + directory is not set do not do chdir + +2004-01-21 09:49 hoffman + + * Source/cmCTest.cxx: BUG: if a test is not found, it should fail + +2004-01-21 09:25 hoffman + + * Source/cmCTest.cxx: ENH: make sure tests that are not run fail, + and make sure that it does not try to run directories with the + same name as tests + +2004-01-20 14:36 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: bug fix for IBM + broken xlC 6.0.0.4 compiler + +2004-01-20 14:35 hoffman + + * Source/cmSystemTools.cxx: ENH: dont do relative paths when + nothing is relative + +2004-01-19 09:30 king + + * Source/kwsys/testProcess.c: ERR: Fixed unused argument warning. + +2004-01-19 09:30 king + + * Source/kwsys/CMakeLists.txt: ERR: Must include Dart module after + PROJECT command. + +2004-01-17 12:47 king + + * Source/kwsys/CMakeLists.txt: ENH: Added Dart testing + configuration. + +2004-01-17 12:46 king + + * Source/kwsys/testProcess.c: ENH: Added a recursive process + execution test. + +2004-01-16 14:00 martink + + * Source/cmCTest.cxx: fix so that ctest is run even with bad cmake + result + +2004-01-16 09:51 king + + * Source/CTest/Curl/setup.h: ERR: Disabling some borland warnings. + +2004-01-15 17:07 andy + + * Source/cmCTest.cxx: ENH: Handle spaces in the dart output of test + +2004-01-15 14:04 king + + * Modules/Platform/Windows-bcc32.cmake: BUG#518: Merging 1.30->1.31 + changes to CMake 1.8 branch. + +2004-01-15 13:57 andy + + * Modules/Platform/Windows-bcc32.cmake: ENH: Fix typos about + copying exe flags to shared flags and to modules. Bug #518 - On + borland, initial flags for bulding module are wrong + +2004-01-15 08:50 king + + * Source/cmSystemTools.cxx: ENH: Added more error state checks to + RunSingleCommand. + +2004-01-13 12:28 andy + + * Source/cmCTest.cxx: ERR: Do not ignore argument after nocmake + +2004-01-13 11:22 hoffman + + * Source/: cmCTest.cxx, cmCTest.h: ENH: add no cmake option + +2004-01-13 09:05 king + + * Modules/CMakeDetermineCCompiler.cmake: BUG: Merging 1.23->1.25 + changes to 1.8 branch for correct setting of MINGW flag on cygwin + with -mno-cygwin flag. + +2004-01-13 09:01 king + + * Modules/FindTclsh.cmake: Merging 1.6->1.7 changes to 1.8 branch + to improve automatic finding of Tcl. + +2004-01-13 09:01 king + + * Modules/FindTCL.cmake: Merging 1.30->1.31 changes to 1.8 branch + to improve automatic finding of Tcl. + +2004-01-13 09:00 hoffman + + * Modules/CMakeDetermineCCompiler.cmake: BUG: use the flags when + testing for type of gnu compiler + +2004-01-12 16:16 hoffman + + * Source/kwsys/SystemTools.cxx: BUG: try to get access to work on + borland + +2004-01-12 13:53 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: use access over stat for + performance + +2004-01-12 13:30 andy + + * Source/: cmCTest.cxx, kwsys/SystemTools.cxx: ENH: Only look for + executable until found + +2004-01-12 11:07 hoffman + + * Source/MFCDialog/PropertyList.cpp: BUG: make sure property list + is cleared between cache loadings + +2004-01-09 15:57 barre + + * Modules/: FindTCL.cmake, FindTclsh.cmake: ENH: make it a bit + smarter at finding stuff: now you need only to set *ONE* of + (TCL|TK)_INCLUDE_PATH, (TCL|TK)_LIBRARY, TCL_TCLSH and the rest + will be found. + +2004-01-09 14:14 hoffman + + * Source/cmCTest.cxx: ENH: clean up the output some more + +2004-01-09 14:05 hoffman + + * Source/cmCTest.cxx: ENH: clean up output + +2004-01-09 13:35 hoffman + + * Source/: cmCTest.cxx, cmCTest.h: ENH: add an ability to specify a + build run directory + +2004-01-09 12:35 hoffman + + * Source/cmCTest.cxx: ENH: clean up output + +2004-01-09 12:28 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: add a local target + for libraries as well as executables + +2004-01-09 11:24 king + + * Source/CTest/Curl/ldap.c: ERR: Merged warning fixes (revision 1.6 + -> 1.7) to CMake 1.8 release branch. + +2004-01-09 11:23 king + + * CMakeLists.txt, Modules/CMakeDetermineSystem.cmake, + Modules/CMakeFindFrameworks.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, Modules/Dart.cmake, + Modules/FindOpenGL.cmake, Modules/FindPythonLibs.cmake, + Modules/FindQt.cmake, Modules/FindTCL.cmake, + Modules/Platform/Windows-cl.cmake, Source/cmCTest.cxx, + Source/cmCreateTestSourceList.cxx, + Source/cmGlobalCodeWarriorGenerator.cxx, + Source/cmGlobalGenerator.cxx, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmLinkLibrariesCommand.cxx, + Source/cmLocalCodeWarriorGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmOptionCommand.cxx, Source/cmQTWrapCPPCommand.cxx, + Source/cmSiteNameCommand.cxx, Source/cmStringCommand.cxx, + Source/cmTarget.cxx, Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmTryCompileCommand.cxx, Source/cmTryCompileCommand.h, + Source/kwsys/SystemTools.cxx, Utilities/Release/cmake_release.sh, + Utilities/Release/config_Linux, + Utilities/Release/cygwin-package.sh.in: ENH: Merged Release-1-8-2 + -> Release-1-8-3 changes to CMake-LatestRelease branch. + +2004-01-09 10:13 king + + * Source/cmCTest.cxx: BUG: Updated warning regex to match in more + cases. + +2004-01-09 08:54 hoffman + + * Source/cmCTest.cxx: BUG: if the build fails then the test fails + +2004-01-09 07:22 hoffman + + * Source/CMakeLists.txt: BUG: fix arguments to wxwindows test + +2004-01-08 15:54 hoffman + + * Source/MFCDialog/CMakeCommandLineInfo.cpp: BUG: make sure + relative paths in command line options are expanded + +2004-01-08 09:59 hoffman + + * Source/: cmCTest.cxx, cmGlobalGenerator.cxx, cmake.cxx: BUG: make + sure null terminator is in the right place for putenv static char + array + +2004-01-08 09:23 king + + * Source/cmake.cxx: BUG: Fix environment variable setting. + +2004-01-08 09:19 king + + * Source/cmGlobalGenerator.cxx: BUG: Fix environment variable + setting. + +2004-01-08 08:19 hoffman + + * Source/: cmCTest.cxx: ENH: remove warning + +2004-01-07 16:24 hoffman + + * Source/cmCTest.cxx: temp remove of optimization internal ctest + use putenv causing trouble on cygwin + +2004-01-07 16:15 hoffman + + * Source/cmCTest.cxx: ENH: print errors when they are there + +2004-01-07 14:22 hoffman + + * Source/cmCTest.cxx: BUG: initialize ivar + +2004-01-07 13:27 martink + + * Source/cmCreateTestSourceList.cxx: merge fix from main tree + +2004-01-07 13:20 hoffman + + * Source/cmCTest.cxx: BUG: fix command line parser bug + +2004-01-07 12:50 hoffman + + * Source/cmCTest.cxx: ENH: remove warning + +2004-01-07 11:31 hoffman + + * Source/cmCTest.cxx: ENH: remove warnings + +2004-01-07 11:24 hoffman + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, + cmSystemTools.cxx, cmSystemTools.h, cmWin32ProcessExecution.cxx, + cmake.cxx, ctest.cxx: ENH: add new feature to ctest so that it + can cmake, build and run a test executable + +2004-01-07 09:22 king + + * Source/cmGlobalVisualStudio6Generator.cxx: BUG: Fixed crash in + extern MSVC project support. + +2004-01-07 09:22 hoffman + + * Source/cmGlobalVisualStudio6Generator.cxx: BUG: fix crash in + external dsp include + +2004-01-07 09:10 king + + * Source/cmGlobalVisualStudio6Generator.cxx: BUG: Fixed crash in + extern MSVC project support. + +2004-01-07 09:08 hoffman + + * Source/cmGlobalVisualStudio6Generator.cxx: BUG: fix crash + +2004-01-07 09:07 king + + * Source/cmCTest.cxx: BUG: Added missing Generator attributes to + submitted XML files. + +2004-01-07 08:37 martink + + * Modules/Dart.cmake: merge change from main tree + +2004-01-06 19:13 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx: ENH: Improve notes + support (now you can specify them with the rest of the command + line), improve reading of configuration file (now it actually + rereads configuration file after running + update/configure/build...). Remember the model + (nightly/experimental) across runs + +2004-01-06 16:56 king + + * Source/kwsys/: kwsys_std.h.in, kwsys_std_fstream.h.in, + kwsys_std_iosfwd.h.in, kwsys_std_iostream.h.in, + kwsys_std_sstream.h.in: ENH: Removing empty source file now that + makefile dependencies should have updated. + +2004-01-06 16:18 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalUnixMakefileGenerator.cxx: + ENH: fix for hp make and relative paths never have targets with a + ./ at the start of the name + +2004-01-06 15:06 king + + * Utilities/Release/config_Linux: Fixed build for new machine. + +2004-01-06 13:21 king + + * Utilities/Release/config_Linux: ENH: Updated configuration for + new build location. + +2004-01-05 16:29 martink + + * Source/cmGlob.cxx: fix for glob command + +2004-01-05 15:30 king + + * Source/cmFindPackageCommand.cxx: BUG: Fixed typo in error + message. + +2004-01-05 13:20 king + + * Utilities/Release/cmake_release.sh: ENH: Updated TAG for 1.8.3 + release. + +2004-01-05 13:19 king + + * CMakeLists.txt, CMakeSystemConfig.txt.in, + CMakeWindowsSystemConfig.txt, bootstrap, + Modules/CMakeCCompiler.cmake.in, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeImportBuildSettings.cmake, Modules/CMakeLists.txt, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, Modules/CMakeTestGNU.c, + Modules/CheckTypeSize.cmake, Modules/CheckVariableExists.cmake, + Modules/Dart.cmake, Modules/FindGTK.cmake, Modules/FindJNI.cmake, + Modules/FindJava.cmake, Modules/FindLATEX.cmake, + Modules/FindPythonLibs.cmake, Modules/FindTCL.cmake, + Modules/FindTclsh.cmake, Modules/FindThreads.cmake, + Modules/FindWish.cmake, Modules/FindwxWindows.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForSTDNamespace.cmake, Modules/Platform/AIX.cmake, + Modules/Platform/BSDOS.cmake, Modules/Platform/Darwin.cmake, + Modules/Platform/FreeBSD.cmake, Modules/Platform/HP-UX.cmake, + Modules/Platform/IRIX.cmake, Modules/Platform/IRIX64.cmake, + Modules/Platform/MP-RAS.cmake, Modules/Platform/NetBSD.cmake, + Modules/Platform/OSF1.cmake, Modules/Platform/OpenBSD.cmake, + Modules/Platform/RISCos.cmake, Modules/Platform/SCO_SV.cmake, + Modules/Platform/SINIX.cmake, Modules/Platform/SunOS.cmake, + Modules/Platform/True64.cmake, Modules/Platform/ULTRIX.cmake, + Modules/Platform/UNIX_SV.cmake, Modules/Platform/UnixWare.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-gcc.cmake, + Modules/Platform/Windows.cmake, Modules/Platform/Xenix.cmake, + Modules/Platform/gcc.cmake, Source/CMakeLists.txt, + Source/cmAddCustomTargetCommand.cxx, Source/cmAddTestCommand.cxx, + Source/cmCPluginAPI.h, Source/cmCTest.cxx, Source/cmCTest.h, + Source/cmCacheManager.cxx, Source/cmCommands.cxx, + Source/cmDynamicLoader.cxx, Source/cmFindFileCommand.h, + Source/cmFindLibraryCommand.h, Source/cmFindPathCommand.h, + Source/cmFindProgramCommand.h, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmLoadCommandCommand.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmMakeDepend.cxx, Source/cmMakefile.cxx, + Source/cmQTWrapCPPCommand.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmTryCompileCommand.h, Source/cmWin32ProcessExecution.cxx, + Source/cmake.cxx, Source/cmakemain.cxx, Source/cmakewizard.cxx, + Source/cmakewizard.h, Source/CTest/cmCTestSubmit.cxx, + Source/CTest/Curl/telnet.c, + Source/CTest/Curl/Testing/ftpupload.c, + Source/CursesDialog/ccmake.cxx, Source/MFCDialog/CMakeSetup.cpp, + Source/WXDialog/CMakeLists.txt, Source/kwsys/ProcessUNIX.c, + Source/kwsys/ProcessWin32.c, Source/kwsys/SystemTools.cxx, + Templates/EXEWinHeader.dsptemplate, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/CMakeLists.txt, + Utilities/CMakeLists.txt, Utilities/Release/cmake_release.sh, + Utilities/Release/config_AIX, + Utilities/Release/config_CYGWIN_NT-5.1, + Utilities/Release/config_Darwin, Utilities/Release/config_HP-UX, + Utilities/Release/config_IRIX64, Utilities/Release/config_Linux, + Utilities/Release/config_OSF1, Utilities/Release/config_SunOS, + Utilities/Release/cygwin-package.sh.in: ENH: Merging CMake + Release-1-8-2 to CMake-LatestRelease. + +2004-01-05 12:58 king + + * Source/cmLocalVisualStudio6Generator.cxx: BUG#416: Merging + 1.49->1.50 changes to 1.8 branch. + +2004-01-05 12:53 martink + + * Source/cmLocalVisualStudio6Generator.cxx: fix for long lines with + post build rules + +2004-01-05 11:22 king + + * Source/cmQTWrapCPPCommand.cxx: BUG#421: Merging 1.16->1.17 + changes to 1.8 branch. + +2004-01-05 11:13 andy + + * Source/cmQTWrapCPPCommand.cxx, Tests/Wrapping/CMakeLists.txt, + Tests/Wrapping/vtkTestMoc.h: BUG: Fix dependency to input file + for QT_WRAP_CPP. Bug #421 - QT_WRAP_CPP + +2004-01-05 11:02 king + + * Source/kwsys/kwsysPlatformCxxTests.cmake: ERR: Removed use of + FILE command and using WRITE_FILE instead. We would still like + CMake 1.6 to be able to build CMake CVS, and kwsys is used. + +2004-01-05 10:26 hoffman + + * Source/MFCDialog/PropertyList.cpp: ENH: reduce flicker + +2004-01-02 17:24 hoffman + + * Source/MFCDialog/: CMakeSetup.rc, CMakeSetupDialog.cpp, + PropertyList.cpp, PropertyList.h: ENH: fix bug with advanced + items loosing edit and do a better job sorting + +2004-01-02 10:23 martink + + * Modules/Dart.cmake: fix for multiple nexted projects + +2003-12-31 08:56 andy + + * bootstrap: ERR: Fix bootstrap for the changes in kwsys + +2003-12-30 17:15 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + kwsysPlatformCxxTests.cxx, kwsys_ios_fstream.h.in, + kwsys_ios_iosfwd.h.in, kwsys_ios_iostream.h.in, + kwsys_ios_sstream.h.in: ENH: Renamed KWSYS_IOS_HAVE_* macros to + KWSYS_IOS_USE_* to be more readable in the C++ sources. + +2003-12-30 16:23 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c, ProcessWin32.c, + test1.cxx: ENH: Added GetExceptionString method to provide an + error description when GetState returns Exception. + +2003-12-30 14:33 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Removed stray + debugging statement left from merge. + +2003-12-30 13:40 king + + * Source/kwsys/SystemTools.cxx: ERR: Use of kwsys_stl was merged + from main tree. The CMake 1.8 branch still uses kwsys_std. + +2003-12-30 13:39 king + + * Source/kwsys/SystemTools.cxx: BUG: Merging 1.30->1.31 changes to + CMake 1.8 branch. + +2003-12-30 13:38 king + + * Source/kwsys/SystemTools.cxx: BUG: CollapseFullPath was calling + SplitProgramPath before changing the working directory to + in_base. + +2003-12-30 10:26 king + + * Source/cmSystemTools.cxx: BUG: Do not call + cmsysProcess_GetErrorString unless GetState returns State_Error. + +2003-12-30 08:41 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalUnixMakefileGenerator.cxx: + BUG: borland make treats ./target and target as different also + convert to outputpathrelative may get passed a quoted path + +2003-12-30 07:55 andy + + * Source/cmCTest.cxx: ENH: Remove warnings about unused variables + +2003-12-29 16:35 martink + + * Source/cmEnableTestingCommand.h: sets variable now + +2003-12-29 16:27 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: only generate test + target when enabled + +2003-12-29 16:27 martink + + * Source/cmEnableTestingCommand.cxx: sets variable now + +2003-12-29 16:19 king + + * Modules/: CMakeFindFrameworks.cmake, FindPythonLibs.cmake, + FindTCL.cmake: BUG#423: Merged fix to 1.8 branch. + +2003-12-29 16:18 king + + * Modules/: CMakeFindFrameworks.cmake, FindPythonLibs.cmake, + FindTCL.cmake: BUG#423: Fixed search for frameworks on OSX. + +2003-12-29 16:15 king + + * Source/cmSiteNameCommand.cxx: BUG#407: Merged fix to 1.8 branch. + +2003-12-29 16:10 andy + + * Source/cmSiteNameCommand.cxx: ENH: Do not use nslookup. All we + really care is hostname. If somebody wants something fancy, just + set it yourself. Fixes Bug #407 - nslookup is being deprecated + for Red Hat and Fedora distributions + +2003-12-29 15:37 king + + * Source/cmOptionCommand.cxx: BUG#408: Merged fix to 1.8 branch. + +2003-12-29 15:26 andy + + * Source/cmOptionCommand.cxx: ERR: Fix problems with OPTION and -D + on command line. Fix Bug #408 - Using -D without a type does not + always work + +2003-12-29 15:15 king + + * Modules/CMakeDetermineSystem.cmake: BUG#426: Merged fix to 1.8 + branch. + +2003-12-29 15:14 king + + * Modules/FindQt.cmake: BUG#425: Merged fix to 1.8 branch. + +2003-12-29 14:55 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalUnixMakefileGenerator.cxx: + BUG: use ./ infront of the current directory + +2003-12-29 14:26 andy + + * Modules/CMakeDetermineSystem.cmake: ERR: On systems where uname + does not support -p, try -m. Fixes Bug #426 - + CMAKE_SYSTEM_PROCESSOR unknown and inconsistent + +2003-12-29 14:19 andy + + * Modules/FindQt.cmake: ENH: Add QT_ASSISTANTCLIENT_LIBRARY + support. Fixes Bug #425 - Suggsted mod to FindQt.cmake to handle + qassistantclient.lib + +2003-12-29 13:41 king + + * Source/cmGlobalGenerator.cxx: BUG#427: Merged fix to 1.8 branch. + +2003-12-29 13:37 king + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, cmLinkLibrariesCommand.cxx, + cmLocalCodeWarriorGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmTarget.cxx, + cmTargetLinkLibrariesCommand.cxx: BUG#445: Merging fix to 1.8 + branch. + +2003-12-29 13:32 king + + * Source/cmStringCommand.cxx: BUG#452: Merging 1.10->1.11 changes + to 1.8 branch. + +2003-12-29 13:31 king + + * Source/cmStringCommand.cxx: BUG#452: Fix to argument checking for + TOUPPER and TOLOWER subcommands. + +2003-12-29 13:26 king + + * Modules/FindOpenGL.cmake: BUG: Added missing include path to + search. + +2003-12-29 13:14 king + + * Source/kwsys/SystemTools.cxx: ERR: Removed ftime ambiguity + created by poor C++ standard headers provided by Borland 5.5. + +2003-12-26 16:41 andy + + * Source/CTest/Curl/: ftp.c, hostip.h: ERR: Remove warnings on HP + +2003-12-26 16:28 andy + + * Source/CTest/Curl/: CMakeLists.txt, arpa_telnet.h, base64.c, + base64.h, ca-bundle.h, config.h.in, connect.c, connect.h, + content_encoding.c, content_encoding.h, cookie.c, cookie.h, + dict.c, dict.h, easy.c, escape.c, escape.h, file.c, file.h, + formdata.c, formdata.h, ftp.c, ftp.h, getdate.c, getenv.c, + getinfo.c, getinfo.h, hash.c, hash.h, hostip.c, hostip.h, http.c, + http.h, http_chunks.c, http_chunks.h, http_digest.c, + http_digest.h, http_negotiate.c, http_negotiate.h, http_ntlm.c, + http_ntlm.h, if2ip.c, if2ip.h, inet_pton.c, inet_pton.h, krb4.c, + krb4.h, ldap.c, ldap.h, llist.c, llist.h, md5.c, md5.h, + memdebug.c, memdebug.h, mprintf.c, multi.c, netrc.c, netrc.h, + progress.c, progress.h, security.c, security.h, sendf.c, sendf.h, + setup.h, share.c, share.h, speedcheck.c, speedcheck.h, ssluse.c, + ssluse.h, strequal.c, strequal.h, strtok.c, strtok.h, telnet.c, + telnet.h, timeval.c, timeval.h, transfer.c, transfer.h, url.c, + url.h, urldata.h, version.c, curl/curl.h, curl/easy.h, + curl/mprintf.h, curl/multi.h, curl/stdcheaders.h, curl/types.h: + ENH: Update to Curl 7.10.8 + +2003-12-26 15:02 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx: ENH: Add option to + submit notes. Implements Bug #465 - Add notes support to CTest + +2003-12-26 15:00 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: BUG: For + consistency, use cmStdString. Also, there was a bug in + SplitString which make it lose the first character. + +2003-12-24 15:02 andy + + * Source/cmLocalGenerator.cxx: BUG: On Windows network paths do not + really work as regular paths, so when the binary directory is on + the network, we will not support relative paths + +2003-12-24 13:17 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: use cd pwd trick + for path for libnames + +2003-12-24 10:51 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: use full paths via + pwd for -L paths on unix shells + +2003-12-24 10:07 kmorel + + * Source/kwsys/kwsys_ios_iosfwd.h.in: Fixed a problem where + ifstream was not the same as kwsys_ios::ifstream on MSVC 6.0. + +2003-12-24 09:19 andy + + * Source/cmCTest.cxx: ENH: Fix coverage to actually work and add + support for .NoDartCoverage + +2003-12-23 15:01 hoffman + + * Source/: cmLocalGenerator.cxx, cmTryCompileCommand.cxx, + cmake.cxx, cmake.h: BUG: keep more of the case information + +2003-12-23 13:31 hoffman + + * Source/cmLocalGenerator.cxx: BUG: fix for vtk build + +2003-12-23 11:03 king + + * bootstrap: ENH: Merging changes from KWSys-IOS-bp to + KWSys-IOS-b2t-1-mp to main tree. This corresponds to the same + merge in KWSys. Fixes for bootstrapping on cygwin are also + included. + +2003-12-23 11:03 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, Directory.cxx, + RegularExpression.cxx, RegularExpression.hxx.in, SystemTools.cxx, + SystemTools.hxx.in, kwsysPlatformCxxTests.cmake, + kwsysPlatformCxxTests.cxx, kwsys_ios_fstream.h.in, + kwsys_ios_iosfwd.h.in, kwsys_ios_iostream.h.in, + kwsys_ios_sstream.h.in, kwsys_std.h.in, kwsys_std_fstream.h.in, + kwsys_std_iosfwd.h.in, kwsys_std_iostream.h.in, + kwsys_std_sstream.h.in, kwsys_stl.h.in, test1.cxx, testIOS.cxx: + ENH: Merging changes from KWSys-IOS-bp to KWSys-IOS-b2t-1-mp to + main tree. This introduces separate kwsys_ios and kwsys_stl + macros needed to support all platforms. + +2003-12-23 10:44 king + + * bootstrap: BUG: Fixed 3rd C++ test to use endl correctly. Fixed + incorrect spelling of appropriate. + +2003-12-23 10:39 andy + + * bootstrap: ENH: Some cleanups and attempt to fix cygwin problem + +2003-12-23 10:16 andy + + * bootstrap: ENH: Some cleanups, add settings comment to kwsys + header files. Add proper dependency to kwsys headers + +2003-12-23 09:53 king + + * bootstrap: BUG: Fixed use of KWSYS_IOS_HAVE_SSTREAM test result + for cmConfigure. + +2003-12-23 09:31 king + + * bootstrap: BUG: Moved use of KWSYS_IOS test results to after the + tests are performed. Also cleaned up ordering of some tests. + +2003-12-23 09:17 andy + + * bootstrap: ENH: support new KWSYS with IOS + +2003-12-22 16:21 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmSystemTools.cxx: ENH: add + relative paths to visual studio 6 and 7 project files + +2003-12-22 15:16 hoffman + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h: + ENH: move relative path to parent generator class + +2003-12-22 14:17 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: make new relative + rpath work with spaces + +2003-12-22 13:59 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: use fullpaths based + on the actual current directory + +2003-12-22 13:15 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: use a full path for + rpath + +2003-12-22 12:24 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h, cmSystemTools.cxx, + cmSystemTools.h, cmake.cxx: ENH: add support for relative paths + in makefiles + +2003-12-22 11:20 king + + * Source/kwsys/: CMakeLists.txt, kwsysPlatformCxxTests.cxx: ENH: + All platform tests are now in kwsysPlatformCxxTests.cxx. This + makes the listfile code much more readable. + +2003-12-20 13:32 king + + * Source/kwsys/: CMakeLists.txt, testIOS.cxx: ENH: Added testIOS + for kwsys_ios testing. + +2003-12-20 13:31 king + + * Source/kwsys/kwsys_ios_sstream.h.in: ERR: Fixed istringstream to + work with MSVC 6 old streams. + +2003-12-20 12:44 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + kwsysPlatformCxxTests.cxx, kwsys_ios_fstream.h.in, + kwsys_ios_iosfwd.h.in, kwsys_ios_iostream.h.in, + kwsys_ios_sstream.h.in: ENH: Shortened and grouped IOS and STL + feature macro names. + +2003-12-19 16:56 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, Directory.cxx, + RegularExpression.cxx, RegularExpression.hxx.in, SystemTools.cxx, + SystemTools.hxx.in, kwsysPlatformCxxTests.cmake, + kwsysPlatformCxxTests.cxx, kwsys_ios_fstream.h.in, + kwsys_ios_iosfwd.h.in, kwsys_ios_iostream.h.in, + kwsys_ios_sstream.h.in, kwsys_std.h.in, kwsys_std_fstream.h.in, + kwsys_std_iosfwd.h.in, kwsys_std_iostream.h.in, + kwsys_std_sstream.h.in, kwsys_stl.h.in, test1.cxx: ENH: Split + kwsys_std into kwsys_ios and kwsys_stl in order to avoid std + namespace pollution and support more platforms. + +2003-12-18 18:04 andy + + * Source/cmCTest.cxx: ENH: Even better. Only replace when path + longer than 20 characters. Also replace parent directory. That + way it will replace for related projects. + +2003-12-18 17:42 andy + + * Source/cmCTest.cxx: ENH: Attempt to cleanup the build output + +2003-12-18 17:36 martink + + * Source/cmCTest.cxx: bug fix + +2003-12-18 13:40 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ERR: Remove debug + +2003-12-18 13:17 andy + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmLocalCodeWarriorGenerator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: Fix Bug #445 - Same + library in multiple projects can cause problems + +2003-12-18 13:04 andy + + * Source/: cmLinkLibrariesCommand.cxx, + cmLocalUnixMakefileGenerator.cxx, cmTarget.cxx, + cmTargetLinkLibrariesCommand.cxx: BUG: Fix Bug #445 - Same + library in multiple projects can cause problems + +2003-12-17 09:42 andy + + * Modules/Dart.cmake: ENH: Mark things as advanced + +2003-12-17 09:40 andy + + * Source/cmCTest.cxx: ERR: Remove debug + +2003-12-17 09:25 andy + + * Source/cmCTest.cxx: ENH: Add more error regular expressions + +2003-12-17 08:49 king + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h: BUG#439: + Merging fix to 1.8 branch. + +2003-12-17 08:45 king + + * Modules/Platform/Windows-cl.cmake: BUG#438: Merging fix to 1.8 + branch. + +2003-12-17 08:36 martink + + * Source/cmCTest.cxx: better ctest driver and return codes + +2003-12-17 08:30 king + + * Source/kwsys/SystemTools.hxx.in: ERR: std -> kwsys_std. + +2003-12-17 08:21 martink + + * Modules/Platform/Windows-cl.cmake: fix in quoting + +2003-12-16 17:30 andy + + * Source/cmCTest.cxx: ENH: Purify support should work now. + +2003-12-16 17:20 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c, ProcessWin32.c: ENH: + Added SetPipeShared method to allow stdout and stderr pipes to be + shared with the parent process. + +2003-12-16 16:19 andy + + * Source/cmCTest.cxx: ENH: Add suppression file support for + valgrind + +2003-12-16 16:19 andy + + * Modules/: Dart.cmake, DartConfiguration.tcl.in: ENH: Add + suppression file + +2003-12-16 15:55 king + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Added + GetEnv method. + +2003-12-16 15:38 king + + * Source/kwsys/CMakeLists.txt: ENH: Updated copyright. + +2003-12-16 15:37 king + + * Source/kwsys/CMakeLists.txt: ERR: SystemTools now depends on + Directory. + +2003-12-16 14:43 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Several cleanups and + attempt to do purify support + +2003-12-16 14:26 martink + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: is there any + chance thiswill work on all platforms hmmm added removeAdirectory + +2003-12-16 13:18 andy + + * Source/cmCTest.cxx: ENH: Cleanup output + +2003-12-15 18:44 andy + + * Source/cmCTest.cxx: ERR: Fix coverage on gcc 2.95 + +2003-12-15 18:32 andy + + * Source/cmCTest.cxx: ERR: Ok, think before commit... This fixes + two build problems. The missing brace and the std::string + signature is different on gcc 2.95 and gcc 3.3. + +2003-12-15 18:03 andy + + * Source/cmCTest.cxx: ERR: Inner loop used the same counter as + outer. Broke coverage code + +2003-12-15 17:28 andy + + * Source/: cmCTest.cxx, cmCTest.h: ERR: STD fixes + +2003-12-15 17:25 andy + + * Modules/Dart.cmake, Modules/DartConfiguration.tcl.in, + Source/cmCTest.cxx, Source/cmCTest.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/ctest.cxx, + Source/CTest/cmCTestSubmit.cxx, Source/CTest/cmCTestSubmit.h, + Source/CursesDialog/cmCursesPathWidget.cxx: ENH: Add initial + memory check support which works for Valgrind + +2003-12-15 16:30 king + + * Source/kwsys/: Base64.c, Base64.h.in, Configure.h.in, + Configure.hxx.in, Copyright.txt, Directory.cxx, Directory.hxx.in, + EncodeExecutable.c, Process.h.in, ProcessFwd9x.c, ProcessUNIX.c, + ProcessWin32.c, RegularExpression.cxx, RegularExpression.hxx.in, + SystemTools.cxx, SystemTools.hxx.in, kwsysHeaderDump.pl, + kwsysPrivate.h, kwsys_std.h.in, kwsys_std_fstream.h.in, + kwsys_std_iosfwd.h.in, kwsys_std_iostream.h.in, + kwsys_std_sstream.h.in, test1.cxx, testProcess.c: ENH: Updated + copyright. + +2003-12-15 12:56 martink + + * Source/cmCreateTestSourceList.cxx: fix compiler warning + +2003-12-15 12:02 hoffman + + * Source/cmCTest.cxx: ENH: fix for gcc 3.1 + +2003-12-14 13:48 king + + * Source/kwsys/ProcessWin32.c: STYLE: Fixed typo on comment. + +2003-12-14 13:47 king + + * Source/kwsys/ProcessWin32.c: ENH: Using CreateFile with + FILE_FLAG_DELETE_ON_CLOSE to automatically delete the Win9x + forwarding executable even if the parent process crashes. + +2003-12-14 13:44 king + + * Source/kwsys/kwsysPrivate.h: ENH: Added KWSYS_NAMESPACE_STRING + macro. + +2003-12-14 13:03 king + + * Source/kwsys/Configure.h.in: BUG: Fixed dllimport. + +2003-12-13 14:19 king + + * Source/kwsys/ProcessUNIX.c: ERR: Added include of sys/stat.h for + open functions mode bits. + +2003-12-13 14:13 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c, ProcessWin32.c: ENH: + Added SetPipeFile method to allow the process pipeline stdin, + stdout, and stderr to be redirected from/to files. + +2003-12-13 10:36 king + + * Source/kwsys/: ProcessUNIX.c, ProcessWin32.c: ENH: Code is now + robust to New method returning NULL. + +2003-12-12 15:42 king + + * Modules/Platform/IRIX64.cmake: ENH: Added + CMAKE_SHARED_LIBRARY_SONAME_C_FLAG and + CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG settings to enable shared + library version support for SGI. + +2003-12-12 14:44 king + + * Modules/Platform/HP-UX.cmake: ENH: Added + CMAKE_SHARED_LIBRARY_SONAME_FLAG setting to enable shared library + version support for HP-UX. + +2003-12-12 14:34 king + + * Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/Platform/SunOS.cmake, + Source/cmLocalUnixMakefileGenerator.cxx, + Modules/Platform/Linux.cmake: ENH: Using separate + CMAKE_SHARED_LIBRARY_SONAME flags for C and CXX. + +2003-12-12 14:20 king + + * Modules/Platform/SunOS.cmake: ENH: Added + CMAKE_SHARED_LIBRARY_SONAME_FLAG setting to enable shared library + version support for SunOS. + +2003-12-12 09:12 hoffman + + * Modules/: CMakeCCompiler.cmake.in, CMakeCXXCompiler.cmake.in, + CMakeDetermineCCompiler.cmake, CMakeDetermineCXXCompiler.cmake: + ENH: reduce the number of times gnu is tested for + +2003-12-12 08:09 martink + + * Source/cmCTest.cxx: now can do extra updates + +2003-12-11 15:38 hoffman + + * Source/cmGlobalGenerator.cxx: BUG:427 trycompile target must be + exe + +2003-12-11 10:11 hoffman + + * Source/cmTryCompileCommand.cxx: BUG: need a dummy first argument + to cmake + +2003-12-11 08:57 martink + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h: fix to + the signature and argument parsing + +2003-12-10 19:47 andy + + * Source/: cmake.cxx, cmakemain.cxx: ENH: Argument for script mode + is -P (process) and take out the automatic script mode + +2003-12-10 08:55 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: BUG: roll back change for + variable used in path + +2003-12-09 14:33 king + + * Modules/FindOpenGL.cmake: ENH: Adding /usr/include/w32api for + OpenGL header search. + +2003-12-09 11:44 king + + * Source/kwsys/SystemTools.cxx: BUG: File comparison on windows + must test the volume serial number as well as the file index. + +2003-12-09 10:33 martink + + * DartConfig.cmake: move start time up one hour + +2003-12-09 09:16 king + + * Source/: cmListFileLexer.c, cmListFileLexer.in.l: ERR: Removed + YY_BREAK statements after return statements because they are + unreachable. + +2003-12-09 09:11 king + + * Source/: cmListFileLexer.c, cmListFileLexer.in.l: ERR: Added + missing static keyword to cmListFileLexerSetToken and + cmListFileLexerAppend definitions. + +2003-12-09 08:32 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: use variables for output + paths + +2003-12-09 08:22 martink + + * Source/cmCTest.cxx: some updates to handle inline cache files and + environment variables + +2003-12-08 18:05 king + + * Source/cmSystemTools.cxx: BUG: Reimplemented ExpandListArguments + to properly handle escaped backslashes that occur right before + semicolons. This is important for lists of paths ending in + backslashes on windows. + +2003-12-08 16:10 martink + + * Source/cmSystemTools.cxx: bug fix to escaped semicolons in + arguments + +2003-12-08 15:05 king + + * Source/cmListFileLexer.in.l: ERR: Fixed comment about how to run + flex to reflect new name of this file. + +2003-12-08 14:20 king + + * Source/: cmListFileLexer.in.l, cmListFileLexer.l: ERR: Renaming + cmListFileLexer.l to cmListFileLexer.in.l to avoid make programs + trying to run lex automatically whn building cmListFileLexer.c. + +2003-12-08 14:11 andy + + * bootstrap: ENH: Fix bootstrap to handle lex parser + +2003-12-08 13:40 king + + * Source/: cmListFileLexer.c, cmListFileLexer.l: ERR: We must + define YY_NO_UNISTD_H to build on windows. + +2003-12-08 13:36 king + + * Source/: CMakeLists.txt, cmListFileCache.cxx, cmListFileCache.h, + cmListFileLexer.c, cmListFileLexer.h, cmListFileLexer.l: ENH: + Using lex-based tokenizer and a simple recursive-descent parser + in place of the old hand-coded parser for CMake listfiles. + +2003-12-08 11:35 king + + * Source/kwsys/CMakeLists.txt: STYLE: Removed trailing whitespace. + +2003-12-08 11:31 king + + * Source/cmake.cxx: ENH: Improved error messages when source tree + does not have a CMakeLists.txt file. No matter how many cases we + check, there always seems to be a user that finds a case that + gives a confusing error message... + +2003-12-08 11:23 andy + + * Modules/Dart.cmake, Modules/DartConfiguration.tcl.in, + Source/cmCTest.cxx: ENH: Improve coverage on systems with + multiple gcov commands + +2003-12-07 14:09 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c, ProcessWin32.c: ENH: + Cleaned up pipe numbering. + +2003-12-05 16:39 king + + * Source/cmCTest.cxx: ENH: Using cmListFileCache to read the + DartTestfile instead of duplicating the parse loop. + +2003-12-05 14:51 king + + * Source/kwsys/kwsys_std.h.in: ERR: Need to include Configure.hxx + to get kwsys_std definition. + +2003-12-05 11:53 king + + * Source/: cmCTest.cxx, cmSystemTools.cxx, kwsys/Process.h.in, + kwsys/ProcessUNIX.c, kwsys/ProcessWin32.c, kwsys/test1.cxx, + kwsys/testProcess.c: ENH: Removed pipe selection argument from + WaitForData method in kwsysProcess. This greatly simplifies its + use. + +2003-12-05 11:37 king + + * Source/kwsys/: Process.h.in, ProcessFwd9x.c, ProcessWin32.c: + STYLE: Removed trailing whitespace. + +2003-12-05 11:19 king + + * Source/kwsys/ProcessWin32.c: BUG: Process startup-info struct + dwFlags were being set incorrectly due to a change in statement + order. + +2003-12-05 10:45 king + + * Docs/cmake-mode.el: ENH: New indentation implementation to + support multi-line strings. + +2003-12-04 14:34 king + + * Docs/cmake-mode.el: STYLE: Removed trailing whitespace. + +2003-12-04 13:56 king + + * Source/kwsys/ProcessUNIX.c: ERR: Added missing static storage + class specifier for kwsysProcessCreate. + +2003-12-03 14:16 martink + + * Source/cmCTest.cxx: some fixes to test harnes + +2003-12-03 13:37 king + + * Source/kwsys/ProcessUNIX.c: ERR: Some platforms define stdin, + stdout, and stderr as macros. Renaming these symbols to StdIn, + StdOut, and StdErr. + +2003-12-03 09:20 king + + * Source/kwsys/: Process.h.in, ProcessFwd9x.c, ProcessUNIX.c, + ProcessWin32.c: ENH: Merged changes from KWSys-MultiProcess-bp to + KWSys-MultiProcess-b2t-1-mp to main tree. This introduces + support for process pipelines. + +2003-12-03 09:12 king + + * Source/kwsys/Process.h.in: ERR: Added missing macro definition + for kwsysProcess_AddCommand. + +2003-12-02 17:23 king + + * Utilities/Release/cmake_release.sh: ENH: Added documentation + about location of cmCPluginAPI.h in cygwin package. + +2003-12-02 17:16 king + + * Utilities/Release/cygwin-package.sh.in: BUG: No longer need to + copy Copyright.txt into doc directory. It is done by the cmake + installation. + +2003-12-02 17:14 king + + * Utilities/Release/cygwin-package.sh.in: BUG: Need to pass + datadir/docdir/mandir to bootstrap script instead of writing in + the cache. + +2003-12-02 16:57 king + + * Utilities/Release/cygwin-package.sh.in: ENH: Cygwin now uses + /usr/share/doc instead of /usr/doc. + +2003-12-02 16:57 king + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: ENH: Updating + version number to 1.8.3. + +2003-12-02 16:50 martink + + * Source/cmCTest.cxx: better error handling + +2003-12-01 19:25 martink + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx: a start on the + dashboard driver + +2003-12-01 13:07 king + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake: + BUG#411: Merged fix to 1.8 branch. + +2003-12-01 13:06 king + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake: + BUG#411: Re-ordering statements so errors show up in + CMakeError.log. + +2003-11-28 15:37 king + + * Source/kwsys/ProcessWin32.c: ENH: Cleaned up implementation of + stderr and win9x forwarding executable error pipe. + +2003-11-28 14:21 king + + * Source/kwsys/ProcessWin32.c: ENH: Removing special termination + pipe from Windows implementation. It does not need it because + WaitForMultipleObjects can wait with a timeout for the process to + terminate. This is not the case in UNIX because waitpid has no + timeout, so we need the termination pipe there. + +2003-11-28 14:08 king + + * Source/kwsys/ProcessWin32.c: BUG: Removed stray debugging code + that caused win9x mode to always be used. + +2003-11-28 14:02 king + + * Source/kwsys/ProcessWin32.c: ENH: Added special termination pipe + to allow timeout to work for processes that close their output + pipes. + +2003-11-28 13:07 king + + * Source/kwsys/ProcessWin32.c: ENH: Error messages from the + forwarding executable are now read completely even if they are + reported in multiple blocks. + +2003-11-28 12:58 king + + * Source/kwsys/ProcessWin32.c: BUG: Fixed error message when + process control structure initialization runs out of memory. + +2003-11-28 12:52 king + + * Source/kwsys/ProcessWin32.c: ERR: Removed useless if(command) in + AddString. + +2003-11-28 12:47 king + + * Source/kwsys/ProcessWin32.c: ENH: Renamed CMPE_* to KWSYSPE_* for + consistency with ProcessUNIX.c. + +2003-11-28 12:42 king + + * Source/kwsys/ProcessUNIX.c: BUG: When a child fails to exec, we + need to read the entire error message, not just the first block. + +2003-11-28 12:31 king + + * Source/kwsys/ProcessUNIX.c: ENH: UNIX implementation of process + pipeline. + +2003-11-28 10:08 king + + * Source/kwsys/ProcessUNIX.c: ENH: Implemented SetCommand and + AddCommand for multiple process support. + +2003-11-28 09:48 king + + * Source/kwsys/: ProcessUNIX.c: STYLE: Removed trailing whitespace. + +2003-11-27 23:08 king + + * Source/kwsys/: Process.h.in, ProcessFwd9x.c, ProcessWin32.c: ENH: + Windows implementation of process pipeline. + +2003-11-27 10:28 king + + * Source/cmake.cxx: BUG: cmake_symlink_library should return the + accumulated result, not just 0. + +2003-11-26 17:59 king + + * Modules/Platform/Linux.cmake: ENH: Adding implementation of + shared library version support on UNIX. This addresses the + feature request described in bug#32. + +2003-11-26 17:52 king + + * Modules/CMakeDefaultMakeRuleVariables.cmake: ENH: Adding + implementation of shared library version support on UNIX. This + addresses the feature request described in bug#32. + +2003-11-26 17:38 king + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: ENH: Adding implementation of + shared library version support on UNIX. This addresses the + feature request described in bug#32. + +2003-11-26 17:34 king + + * Source/cmake.cxx: BUG: The cmake_symlink_library command needs to + remove existing files before creating links. + +2003-11-26 16:38 king + + * Source/cmake.cxx: ENH: Added undocumented cmake_symlink_library + to help with building versioned shared libraries. + +2003-11-26 16:15 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: remove more warnings + +2003-11-26 16:12 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h: remove warnings + +2003-11-26 16:11 king + + * Source/cmSystemTools.cxx: ERR: Fixed unused parameter warnings. + +2003-11-26 16:04 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx: ENH: fix some warnings + +2003-11-26 14:52 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added + CreateSymlink method. + +2003-11-26 14:30 hoffman + + * Source/MFCDialog/PropertyList.cpp: ENH: remove removecache entry + call + +2003-11-26 14:29 hoffman + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmMakefile.cxx, cmMakefile.h: + ENH: generate a sln and dsw file for each sub project in a + project + +2003-11-26 11:41 king + + * Source/: cmCTest.cxx, cmSystemTools.cxx: BUG: Do not use + std::string to accumulate output. Use std::vector instead. This + is much better at memory management. + +2003-11-25 16:14 king + + * Utilities/Release/cmake_release.sh: STYLE: Removed trailing + whitepsace. + +2003-11-24 15:51 king + + * Utilities/Release/cmake_release.sh: BUG: osx_install should make + the Resources directory before copying files into it. + +2003-11-24 14:04 king + + * Modules/FindPythonLibs.cmake: BUG#266: Merging 1.16->1.18 changes + to 1.8 branch. + +2003-11-24 14:01 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG#393: Merging + 1.40->1.41 changes to 1.8 branch. + +2003-11-21 14:13 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG#393: Adding XML + escaping for additional per-source compile flags. + +2003-11-21 13:12 hoffman + + * Modules/FindPythonLibs.cmake: BUG: remove junk code + +2003-11-20 15:41 king + + * Modules/FindPythonLibs.cmake: BUG#266: Added cygwin names for the + library. Module now documents output as PYTHON_LIBRARIES instead + of PYTHON_LIBRARY. + +2003-11-20 15:31 king + + * Modules/FindPythonLibs.cmake: STYLE: Removed trailing whitespace. + +2003-11-20 15:30 king + + * Modules/Platform/: AIX.cmake, BSDOS.cmake, Darwin.cmake, + FreeBSD.cmake, HP-UX.cmake, IRIX.cmake, IRIX64.cmake, + MP-RAS.cmake, NetBSD.cmake, OSF1.cmake, OpenBSD.cmake, + RISCos.cmake, SCO_SV.cmake, SINIX.cmake, SunOS.cmake, + True64.cmake, ULTRIX.cmake, UNIX_SV.cmake, UnixWare.cmake, + Windows-gcc.cmake, Xenix.cmake, gcc.cmake: BUG#383: Merged fix to + 1.8 branch. + +2003-11-14 10:44 hoffman + + * Modules/Platform/: AIX.cmake, BSDOS.cmake, Darwin.cmake, + FreeBSD.cmake, HP-UX.cmake, IRIX.cmake, IRIX64.cmake, + MP-RAS.cmake, NetBSD.cmake, OSF1.cmake, OpenBSD.cmake, + RISCos.cmake, SCO_SV.cmake, SINIX.cmake, SunOS.cmake, + True64.cmake, ULTRIX.cmake, UNIX_SV.cmake, UnixWare.cmake, + Windows-gcc.cmake, Xenix.cmake, gcc.cmake: BUG: fix for bug 383 + gcc flags are now always set if the compiler is gnu + +2003-11-13 15:54 king + + * Source/cmAddCustomTargetCommand.cxx: BUG#321: Merged 1.13->1.14 + changes to 1.8 branch. + +2003-11-13 14:45 martink + + * Source/cmAddCustomTargetCommand.cxx: fixed argument parsing + +2003-11-13 13:52 king + + * Source/: cmFindFileCommand.h, cmFindLibraryCommand.h, + cmFindPathCommand.h, cmFindProgramCommand.h: ENH: Documentation + improvements from main tree. + +2003-11-13 13:51 king + + * Source/: cmFindFileCommand.h, cmFindLibraryCommand.h, + cmFindPathCommand.h, cmFindProgramCommand.h: ENH: Documentation + improvements. + +2003-11-13 12:43 king + + * Modules/FindGTK.cmake: BUG#299: Merged 1.8->1.9 changes to 1.8 + branch. + +2003-11-12 17:44 king + + * Modules/FindGTK.cmake: BUG#299: GTK_gmodule_LIBRARY is optional + just like GTK_gthread_LIBRARY. + +2003-11-12 16:53 king + + * Modules/TestForANSIForScope.cmake: BUG#374: Merging 1.10->1.11 + changes to 1.8 branch. + +2003-11-12 16:53 king + + * Modules/TestForSTDNamespace.cmake: BUG#374: Merging 1.9->1.10 + changes to 1.8 branch. + +2003-11-12 16:51 king + + * Modules/: TestForANSIForScope.cmake, TestForSTDNamespace.cmake: + BUG#374: Adding OUTPUT_VARIABLE OUTPUT to TRY_COMPILE commands. + +2003-11-12 14:57 king + + * Source/cmMakeDepend.cxx: BUG#373: Merging 1.39->1.40 to 1.8 + branch. + +2003-11-12 14:20 hoffman + + * Source/cmMakeDepend.cxx: BUG: fix for bug 373 make depend problem + +2003-11-12 14:17 king + + * Source/cmGlobalVisualStudio6Generator.cxx: BUG#371: Merging + 1.19->1.20 changes to 1.8 branch. + +2003-11-12 14:17 king + + * Source/cmGlobalVisualStudio7Generator.cxx: BUG#371: Merging + 1.17->1.18 changes to 1.8 branch. + +2003-11-12 14:06 andy + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: ENH: Bug #371 - Add build + configuration for try compiles using cmake variable + +2003-11-12 10:03 king + + * Modules/Dart.cmake: BUG#199: Merging 1.45->1.46 changes to 1.8 + branch. + +2003-11-12 10:00 king + + * Modules/Dart.cmake: BUG#199: If + DART_EXPERIMENTAL_USE_PROJECT_NAME is set, the PROJECT_NAME will + be included in the name of the Experimental and + ExperimentalSubmit targets. + +2003-11-11 12:53 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG#363: Merged + 1.39->1.40 changes to 1.8 branch. + +2003-11-11 12:51 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: fix for 363, + VCMIDLTool not used for idl files + +2003-11-11 12:51 king + + * Source/cmCTest.cxx: BUG#344: Merged 1.66->1.67 to 1.8 branch. + +2003-11-11 12:36 andy + + * Source/cmCTest.cxx: BUG: Handle -C properly for executables that + are not in the project; Fix Bug #344 - ctest -C Debug + +2003-11-11 11:42 king + + * Source/cmCTest.h: BUG#259: Merging 1.16->1.18 changes to 1.8 + branch. + +2003-11-11 11:42 king + + * Source/cmCTest.cxx: BUG#259: Merging 1.62->1.63 and 1.64->1.66 + changes to 1.8 branch. + +2003-11-11 11:41 king + + * Source/cmAddTestCommand.cxx: BUG#259: Merging 1.18->1.20 changes + to 1.8 branch. + +2003-11-06 16:38 andy + + * Source/cmCTest.cxx: ENH: Add warning exception for VTK type + warning blocking + +2003-11-05 15:02 andy + + * Utilities/Doxygen/doxyfile.in: ENH: Handle kwsys properly + +2003-11-05 15:02 andy + + * Utilities/Doxygen/CMakeLists.txt: ENH: Cleanup. We do not really + need to use vtk for documentation. We only need utilities/doxygen + directory + +2003-11-05 13:03 king + + * Modules/Platform/Windows-bcc32.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx: BUG#346: Merging fix + from main tree to 1.8 branch. + +2003-11-05 11:18 hoffman + + * Modules/Platform/Windows-bcc32.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix for bug 346, + borland should now support dash in the path + +2003-11-05 10:46 king + + * Source/cmCTest.cxx: BUG#259: Fix for spaces in paths to + executable added to previous fixes for this bug. + +2003-11-05 10:13 king + + * Modules/: FindTclsh.cmake, FindWish.cmake: BUG#322: Merging fix + from main tree to 1.8 branch. + +2003-11-04 12:50 king + + * Source/cmCTest.cxx: BUG#323: Merging fix from main tree to 1.8 + branch. + +2003-11-04 11:19 hoffman + + * Source/cmCTest.cxx: BUG: fix for bug 323 + +2003-11-04 09:45 king + + * Source/cmMakefile.cxx: BUG: Merging changes from revision 1.236 + to 1.237 to 1.8 branch. + +2003-11-04 09:44 king + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: Merging changes + from revisions 1.41 to 1.47 to 1.8 branch. + +2003-11-04 09:36 king + + * Modules/: FindTclsh.cmake, FindWish.cmake: ENH: Adding registry + entries to search path. + +2003-11-04 09:06 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG#318: Merging fix + from main tree to 1.8 branch. + +2003-11-04 09:03 king + + * Source/CTest/: cmCTestSubmit.cxx, Curl/Testing/ftpupload.c: + BUG#320: Merging fix from main tree to 1.8 branch. + +2003-11-04 09:01 king + + * Source/cmQTWrapCPPCommand.cxx: BUG#319: Merging fix from main + tree (1.15->1.16) to 1.8 branch. + +2003-11-04 09:00 king + + * Source/kwsys/: ProcessWin32.c, RegularExpression.cxx: ERR: + Removed extra variable assignments. + +2003-11-04 08:56 king + + * Source/kwsys/ProcessWin32.c: BUG: Removed CloseHandle in case of + error in DuplicateHandle. According to documentation, + DuplicateHandle will close the source handle regardless of error + condition. + +2003-11-04 08:50 king + + * Source/cmAddTestCommand.cxx: BUG: Cannot add extra escapes for + backslashes because it makes the behavior inconsistent with + previous versions of cmake. + +2003-11-03 16:59 andy + + * Source/CTest/: cmCTestSubmit.cxx, Curl/Testing/ftpupload.c: BUG: + This fixes problem when submitting bugs on Mac: Bug #320 - When + st_size in stat is 64 bit ctest does not submit + +2003-11-03 15:57 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, cmMakefile.cxx: BUG: + hack fix for problem of MS vs 6 and custom target commands + +2003-11-03 15:53 andy + + * Source/cmQTWrapCPPCommand.cxx: BUG: Fix Bug #319 - Change in + QT_WRAP_CPP's behaviour + +2003-11-03 15:38 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Cleanup parsing of argument + to help fix Bug #259 - CMake does not quote correctly in + DartTestfile.txt + +2003-11-03 15:19 king + + * Source/cmAddTestCommand.cxx: BUG#259: ADD_TEST command generated + in DartTestfile.txt now quotes/escapes all arguments. + +2003-11-03 11:01 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: fix for debug libs + not using output path + +2003-10-31 17:22 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG#318: + cmake.check_depends now collects all dependencies for + cmake.depends and then uses a single rule. + +2003-10-31 17:05 king + + * Modules/Platform/Windows-cl.cmake: BUG#317: Merging 1.23->1.24 + changes to 1.8 branch. + +2003-10-31 17:01 king + + * Templates/EXEWinHeader.dsptemplate: BUG#316: Merged 1.15->1.16 + changes from main tree to 1.8 branch. + +2003-10-31 16:56 hoffman + + * Modules/Platform/Windows-cl.cmake: BUG: fix for bug# 317 + +2003-10-31 16:55 andy + + * Source/cmLocalVisualStudio6Generator.cxx, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate, + Tests/COnly/CMakeLists.txt: ENH: Attempt to add debug library + postfix for visual studio 6 + +2003-10-31 16:53 hoffman + + * Templates/EXEWinHeader.dsptemplate: Fix for BUG: 316 + +2003-10-31 12:55 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Merged all changes + from main tree up to revision 1.39. + +2003-10-31 09:31 andy + + * Source/cmCTest.cxx: ENH: Report when having conflicts + +2003-10-30 16:12 king + + * Source/: cmake.cxx: BUG#313: Improving error message when no + CMakeLists.txt file is found in the source tree. + +2003-10-30 14:27 king + + * Source/cmAddTestCommand.cxx: BUG: Backing out previous change + until a deeper problem can be investigated. + +2003-10-30 14:00 king + + * Source/cmAddTestCommand.cxx: BUG#259: Do not double quote + arguments if they are already quoted when writing + DartTestfile.txt. + +2003-10-30 13:47 king + + * Source/cmTryCompileCommand.h: BUG#163: Merging 1.12->1.13 changes + to 1.8 branch for 1.8.2 release. + +2003-10-30 13:46 king + + * Source/cmTryCompileCommand.h: BUG#163: Added documentation of + OUTPUT_VARIABLE argument. + +2003-10-30 13:35 king + + * Modules/FindLATEX.cmake: BUG#262: Merging fix from main tree + 1.8->1.9 to 1.8 branch for 1.8.2 release. + +2003-10-30 13:33 king + + * Modules/FindLATEX.cmake: BUG#262: Marking DVIPDF_CONVERTER as + advanced. + +2003-10-30 13:18 king + + * Source/cmake.cxx: BUG#311: Merging 1.141->1.142 changes to 1.8 + branch for 1.8.2 release. + +2003-10-30 13:16 king + + * Source/cmCTest.cxx: BUG#310: Merging 1.60->1.61 from main tree to + 1.8 branch. + +2003-10-30 10:05 andy + + * Source/cmCTest.cxx: BUG: Fix Bug #310 - CTest sends wrong time to + cvs on Windows + +2003-10-29 19:48 andy + + * Source/: cmake.cxx, cmakemain.cxx, cmSystemTools.cxx, + cmSystemTools.h: ENH: Ok, no more argument needed for script mode + +2003-10-29 09:56 andy + + * Source/cmGlobalGenerator.cxx: ENH: More scripting changes + +2003-10-29 09:43 andy + + * Source/: cmake.cxx, cmake.h, cmMakefile.cxx, cmakemain.cxx: ENH: + Start includding the scripting support + +2003-10-29 08:58 andy + + * Source/: cmCommand.h, cmMessageCommand.h, cmIncludeCommand.h: + ENH: Start includding the scripting support + +2003-10-28 15:26 andy + + * Source/cmake.cxx: ENH: Command should also be quoted + +2003-10-28 13:22 king + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h: + BUG#303: Merged fix from main tree to 1.8 branch for 1.8.2 + release. + +2003-10-28 13:19 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG#200: Merged fix to + 1.8 branch for 1.8.2 release. + +2003-10-28 11:55 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: add preprocessor + flags to resource compiler + +2003-10-28 11:06 hoffman + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h: + BUG: fix for bug 303 pass makeflags to sub makes + +2003-10-25 18:21 andy + + * Utilities/Doxygen/doxyfile.in: ENH: Add all subdirectories + +2003-10-17 16:19 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: make sure -M flags + are not duplicated and are only set in the xml + +2003-10-17 16:10 king + + * Modules/CMakeDetermineCXXCompiler.cmake: BUG#276: Merge fix for + spaces in path from main tree. + +2003-10-17 16:09 king + + * Modules/CMakeDetermineCXXCompiler.cmake: BUG: Fixed same + spaces-in-paths problem for CMakeTestGNU.c as in + CMakeDetermineCCompiler.cmake. + +2003-10-17 16:08 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: fix for unicode + and for /D -D + +2003-10-17 07:45 andy + + * Source/WXDialog/cmWXMainFrame.cxx: ENH: Fix problem with wx 2.4 + +2003-10-16 19:16 andy + + * Tests/UseWX/: CMakeLists.txt, WX.cxx: ENH: We do not really need + streams. Also fix the test on windows + +2003-10-16 19:15 andy + + * Source/CMakeLists.txt: ENH: Enable test on windows + +2003-10-16 17:51 king + + * Modules/Platform/Windows-cl.cmake: BUG#78: Merged fix from main + tree (1.22->1.23). + +2003-10-16 13:42 king + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: ENH: Updating + version number for 1.8.2 release. + +2003-10-16 13:09 king + + * Modules/: CMakeDetermineJavaCompiler.cmake, FindJNI.cmake, + FindJava.cmake, FindTCL.cmake: BUG#281: Merging fix from main + tree. See bug report for revision changes. + +2003-10-16 13:06 king + + * Source/cmCTest.cxx: BUG#278: Merging fix from main tree + (1.59->1.60) to 1.8 branch for 1.8.2 release. + +2003-10-16 11:05 barre + + * Modules/: CMakeDetermineJavaCompiler.cmake, FindJNI.cmake, + FindJava.cmake, FindTCL.cmake: FIX: for Windows users, it seems + logical to favor native win32 installation before Cygwin ones. + Otherwise you can end up with bad mixes (part of the java tools + were picked from the SDK, part from Cygwin) + +2003-10-16 10:32 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: ENH: allow UNICODE to be + specifed in the cxx flags and if not default to MBCS + +2003-10-16 10:10 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: allow users to + change to unicode + +2003-10-16 07:49 andy + + * Source/cmCTest.cxx: ENH: Handle all white spaces, fix problem on + cygwin + +2003-10-15 23:42 hoffman + + * Modules/Platform/Windows-cl.cmake, + Source/cmLocalVisualStudio7Generator.cxx: BUG: fix for bug 78 + should be on 1.8 branch + +2003-10-15 10:19 king + + * Modules/Platform/Darwin.cmake: BUG#277: Fix from main tree 1.5 -> + 1.6 merged to 1.8 branch. Will be included in 1.8.2 release. + +2003-10-15 10:14 king + + * Modules/Platform/Darwin.cmake: ERR: Old -flat_namespace + -undefined suppress flags for CMAKE_SHARED_MODULE_CREATE_C_FLAGS + should be included when CMAKE_BACKWARDS_COMPATIBILITY is 1.6 or + lower. + +2003-10-15 10:06 king + + * bootstrap: BUG#168: Merged fix for HP-UX ansi C flags as second + part of the fix for this bug to 1.8 branch. 1.24 -> 1.25. + +2003-10-15 10:01 king + + * Source/kwsys/SystemTools.cxx: BUG#263: Merged search path + ordering fix from main tree to CMake 1.8 branch. 1.22 -> 1.24. + +2003-10-15 09:56 king + + * Source/cmTargetLinkLibrariesCommand.cxx: BUG#201: Merged warning + suppression support from main tree to 1.8 branch. 1.16->1.17. + +2003-10-15 09:53 king + + * Modules/CheckTypeSize.cmake: Documentation fix from main tree. + 1.11->1.12. + +2003-10-15 09:52 king + + * Modules/CheckVariableExists.cmake: BUG: Merged trivial fix from + main tree. 1.10 -> 1.11. + +2003-10-15 09:49 king + + * Modules/CMakeDetermineCCompiler.cmake: BUG#263: Merged fix for + system paths in ar and ranlib find commands to 1.8 branch. Will + be included in 1.8.2 + +2003-10-15 09:26 king + + * Source/cmQTWrapCPPCommand.cxx: BUG#186: Merged fix from trunk to + branch. + +2003-10-15 09:18 king + + * Modules/CMakeDetermineCCompiler.cmake: BUG#276: Merge fix for + spaces in path from main tree. + +2003-10-14 22:30 king + + * Modules/CMakeDetermineCCompiler.cmake: BUG: Fix for spaces in + path when loading CMakeTestGNU.c. + +2003-10-13 16:04 andy + + * Source/CMakeLists.txt, Tests/UseWX/CMakeLists.txt, + Tests/UseWX/WX.cxx: ENH: Add test for FindwxWindows. Thanks to: + Mathieu Malaterre + +2003-10-13 15:27 andy + + * Modules/CheckTypeSize.cmake: ENH: Documentation fix + +2003-10-13 11:58 king + + * Modules/Platform/Windows-cl.cmake: BUG#269: Fix for spaces in + paths. Will be included in 1.8.2 release. + +2003-10-13 11:32 andy + + * Modules/Platform/Windows-cl.cmake: ERR: allow spaces in the path + +2003-10-11 08:12 king + + * Modules/CheckVariableExists.cmake: BUG: Message describing + variable was using result variable. + +2003-10-09 15:52 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, + Source/kwsys/SystemTools.cxx: ENH: put the system path after the + paths specified on to the FIND command + +2003-10-07 13:45 king + + * Utilities/Release/cmake_release.sh: Updated cygwin dependencies. + +2003-10-07 09:50 king + + * Utilities/Release/config_CYGWIN_NT-5.1: GCC 2.95 is no longer + available on cygwin. + +2003-10-02 14:50 andy + + * Source/cmTargetLinkLibrariesCommand.cxx: ENH: Add + CMAKE_IGNORE_DEPENDENCIES_ORDERING to prevent warnings about + dependency problems + +2003-09-26 11:27 king + + * Modules/CMakeImportBuildSettings.cmake: BUG: Comparison of build + tool should be case-insensitive. + +2003-09-26 11:15 king + + * Modules/CMakeImportBuildSettings.cmake: BUG: Comparison of build + tool should be case-insensitive. + +2003-09-24 17:51 andy + + * Source/cmQTWrapUICommand.cxx: ENH: Fix comment + +2003-09-24 17:51 andy + + * Tests/Wrapping/CMakeLists.txt: ENH: Better testing + +2003-09-24 17:50 andy + + * Source/cmQTWrapCPPCommand.cxx: BUG: Fix Bug #186 - QT_WRAP_UI + uses the path twice + +2003-09-24 11:10 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG#191: Merging fix + into 1.8 branch for inclusion in 1.8.2 release. + +2003-09-24 11:03 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Check for whether + to use CMAKE_EXE_LINKER_FLAGS should look both for EXECUTABLE and + WIN32_EXECUTABLE targets. + +2003-09-23 13:58 king + + * Source/cmCTest.cxx: BUG#185: Merged fix from main tree to 1.8 + branch. Change will be included in 1.8.2 release. + +2003-09-23 13:49 andy + + * Source/cmCTest.cxx: ENH: Add missing newline Bug #185 - CTest + exceptions output is missing new line + +2003-09-18 11:05 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: remove /tmp_mnt in collapse + full path + +2003-09-15 15:58 king + + * bootstrap: BUG: Need to check for -Ae flag on HP-UX cc compiler. + Needed for ANSI C compilation. + +2003-09-02 13:49 king + + * bootstrap: BUG#168: Using C compiler to build .c files during + bootstrap instead of C++ compiler. + +2003-09-02 13:27 king + + * bootstrap: BUG: Must use C compiler to compile C files during + bootstrap, not C++ compiler. + +2003-08-29 09:38 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: Merged more fixes from + main tree. + +2003-08-28 16:22 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: make sure exe output path + is used for dep hack stuff + +2003-08-28 16:10 martink + + * Source/cmLocalVisualStudio6Generator.cxx: bad evil nasty ken + +2003-08-28 16:06 martink + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: fix to executable depends for + custom commands + +2003-08-28 15:02 king + + * Utilities/Release/config_IRIX64: ERR: Don't need separate -n32 + and -64 binaries. + +2003-08-28 14:58 hoffman + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: BUG: remove + bundle_loader stuff it did not work with spaces in the path and + is not needed for this test + +2003-08-28 14:55 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: Merged fix for bug with + custom commands depending on executables from main tree. + +2003-08-28 14:52 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: fix bug with custom + commands depending on executables + +2003-08-28 14:03 king + + * CMakeLists.txt, Utilities/Release/cmake_release.sh: ENH: Updated + for 1.8.1 release number. + +2003-08-27 20:35 starreveld + + * Modules/Platform/Darwin.cmake, + Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/CMakeLists.txt: ENH: remove + the -flat_namespace and -undefined suppress hacks from ENH: + CMAKE_SHARED_MODULE_CREATE_C_FLAGS ENH: and fix the complex + example to specify a -bundle loader for the ENH: shared module + that it builds. + +2003-08-27 17:45 hoffman + + * Source/cmWin32ProcessExecution.cxx: ENH: remove warnings from use + of NULL + +2003-08-27 17:31 king + + * Source/CTest/Curl/ldap.c: ERR: Using union-based "cast" of + DynaGetFunction result to avoid warnings about strict aliasing. + +2003-08-27 16:50 king + + * CMakeLists.txt, CMakeSystemConfig.txt.in, + CMakeWindowsSystemConfig.txt, bootstrap, + Modules/CMakeCCompiler.cmake.in, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, Modules/CMakeTestGNU.c, + Modules/FindThreads.cmake, Modules/FindwxWindows.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows-gcc.cmake, + Modules/Platform/Windows.cmake, Source/CMakeLists.txt, + Source/TODO, Source/cmCacheManager.cxx, Source/cmCommands.cxx, + Source/cmDynamicLoader.cxx, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmLoadCommandCommand.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/cmWin32ProcessExecution.cxx, Source/cmake.cxx, + Source/CTest/Curl/telnet.c, Source/kwsys/SystemTools.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/ComplexRelativePaths/Library/CMakeLists.txt, + Utilities/CMakeLists.txt: ENH: Merging changes from trunk into + 1.8 branch. + + 1.) MinGW support (beta) 2.) make VERBOSE=1 3.) FindThreads.cmake + fix 4.) FindwxWindows.cmake fix 5.) + CMakeSystemSpecificInformation.cmake typo fix 6.) bootstrap + spaces-in-path fix + +2003-08-27 16:42 hoffman + + * Modules/Platform/Windows-gcc.cmake, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/ComplexRelativePaths/Library/CMakeLists.txt: ENH: MinGW + build now passes all the tests + +2003-08-27 16:08 king + + * Utilities/Release/: cmake_release.sh, config_AIX, config_Darwin, + config_HP-UX, config_IRIX64, config_Linux, config_OSF1, + config_SunOS, cygwin-package.sh.in: Merging release script + changes from 1.8 branch to main tree. + +2003-08-27 16:02 king + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake: + ERR: Fixed typo in comment. + +2003-08-27 08:29 king + + * Source/cmake.cxx: ERR: Fixed placement of code introduced by a + patch from main tree. Somehow it ended up on the wrong lines. + +2003-08-26 17:13 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Added support for + "make VERBOSE=1" to run one-time verbose make runs without + changing CMAKE_VERBOSE_MAKEFILE. + +2003-08-26 15:08 king + + * Source/: cmake.cxx, cmakemain.cxx, cmakewizard.cxx, + cmakewizard.h: BUG#164: Fixed crash of cmake -i when CMAKE_ROOT + cannot be found. Made resulting error message cleaner. + +2003-08-26 15:06 king + + * Source/: cmake.cxx, cmakemain.cxx, cmakewizard.cxx, + cmakewizard.h: BUG: Fixed crash of cmake -i when CMAKE_ROOT + cannot be found. Made resulting error message cleaner. + +2003-08-22 12:53 king + + * CMakeLists.txt, Source/CMakeLists.txt, Utilities/CMakeLists.txt: + ENH: Moved decision to build MFCDialog up to top level. It is + used in both the Source and Utilities directories. + +2003-08-22 11:56 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: remove ifdef code + and use makefile definitions + +2003-08-22 11:56 hoffman + + * Modules/Platform/Windows-gcc.cmake: ENH: add configure file for + gcc under windows + +2003-08-22 09:52 andy + + * bootstrap, Modules/FindThreads.cmake: ERR: Reorganize to try to + fix the -pthread problem on some systems + +2003-08-21 16:22 hoffman + + * Modules/CMakeCCompiler.cmake.in, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, Modules/CMakeTestGNU.c, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows.cmake, Source/CMakeLists.txt, + Source/cmDynamicLoader.cxx, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/cmWin32ProcessExecution.cxx, Source/cmake.cxx, + Source/CTest/Curl/telnet.c, Source/kwsys/SystemTools.cxx: ENH: + add the unix makefile generator as an option from the windows + GUI, this builds with mingw, cygwin, and combinations of make cl, + bcc32 + +2003-08-21 13:26 andy + + * Modules/FindwxWindows.cmake: ERR: If WX_CONFIG_LIBS are , then + you get weird cmake error. This should fix it + +2003-08-21 09:23 hoffman + + * Source/TODO: [no log message] + +2003-08-20 12:59 king + + * Source/: cmakemain.cxx, CursesDialog/ccmake.cxx, + MFCDialog/CMakeSetup.cpp: ENH: Added documentation of specifying + an existing build tree as an argument. + +2003-08-19 11:02 andy + + * Source/cmLoadCommandCommand.cxx: ERR: Fix crash of cmake on + broken load commands + +2003-08-19 10:50 king + + * Modules/Platform/: IRIX64.cmake: ENH: Improved default choice of + -64 compiler/linker flags based on how cmake was built. + +2003-08-19 10:29 andy + + * Source/cmLoadCommandCommand.cxx: BUG: LastError can return 0, so + handle that case + +2003-08-19 09:41 king + + * bootstrap: BUG: Merged cmake_make_processor error message to 1.8 + branch. + +2003-08-19 09:40 king + + * Source/: cmCTest.cxx, cmCTest.h: BUG: Merged fixes for bugs 146, + 152, and 153 to 1.8 branch. + +2003-08-19 09:39 king + + * Source/cmCacheManager.cxx: BUG#154: Merged fix to 1.8 branch. + +2003-08-19 09:39 king + + * Source/cmake.cxx: ERR: Fixed warnings. + +2003-08-19 09:33 king + + * Source/kwsys/SystemTools.cxx: ERR: Merged warning fix from main + tree to CMake 1.8 branch. + +2003-08-19 09:32 king + + * Source/kwsys/ProcessUNIX.c: ProcessUNIX.c + +2003-08-19 09:32 king + + * Source/kwsys/ProcessWin32.c: BUG: Merged error message fix to + CMake 1.8 branch. + +2003-08-19 09:27 king + + * Modules/FindLATEX.cmake: BUG#156: Fixed typo psd2pdf -> ps2pdf. + Will be included in 1.8.1 release. + +2003-08-19 09:12 king + + * Utilities/Release/: cmake_release.sh, config_IRIX64: Added + LDFLAGS support. + +2003-08-19 09:06 king + + * Utilities/Release/config_IRIX64: ENH: Added configuration of both + -64 and -n32 builds. + +2003-08-19 09:05 king + + * Utilities/Release/cmake_release.sh: ENH: Added support for + configuration of install tree. + +2003-08-19 08:53 andy + + * Modules/FindLATEX.cmake: BUG: Fix Bug #156 - ps2pdf is not found + on linux + +2003-08-18 14:31 andy + + * Source/: cmCTest.cxx, cmCTest.h: BUG: Report failed as failed... + +2003-08-18 14:06 andy + + * Source/cmake.cxx: ENH: Remove unused variable + +2003-08-18 14:05 andy + + * Source/cmCacheManager.cxx: BUG: Fixed Bug #154 - Uninitialized + type initialized value cache variables should return value + +2003-08-18 11:30 andy + + * Source/: cmCTest.cxx, cmCTest.h: BUG: Fix Bug #153 - CTest does + not detect tests that are not found and Bug #153 - CTest does not + detect tests that are not found + +2003-08-17 12:24 hoffman + + * Source/kwsys/SystemTools.cxx: ENH: remove warning and unneeded + cast + +2003-08-15 08:41 andy + + * Source/cmCTest.cxx: BUG: Fix test reporting + +2003-08-14 13:34 andy + + * Source/cmCTest.cxx: ENH: Fix verbose output, fix error message, + and fix the exit code check + +2003-08-14 09:09 hoffman + + * Source/cmake.cxx: ENH: remove a warning + +2003-08-13 18:17 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Better error reporting + +2003-08-13 18:08 king + + * Source/kwsys/ProcessWin32.c: ENH: Made error message consistent + between win9x and non-win9x version of error reporting. + +2003-08-13 14:21 king + + * Source/kwsys/ProcessUNIX.c: ENH: Treating SIGBUS as a fault by + default. + +2003-08-12 18:55 king + + * Source/CTest/Curl/CMakeLists.txt: ERR: Reverting dlopen changes. + We don't need them. + +2003-08-12 17:24 king + + * Source/cmSystemTools.cxx: BUG: Do not hide console when run from + ctest. + +2003-08-12 17:18 andy + + * Source/cmSystemTools.cxx: ENH: Fix hidden console for ctest + +2003-08-12 17:17 king + + * Utilities/Release/cmake_release.sh: Redoing 1.8.0. + +2003-08-12 16:37 king + + * Utilities/Release/cmake_release.sh: Disable use of libdl by curl. + +2003-08-12 16:37 king + + * Source/CTest/Curl/CMakeLists.txt: ENH: Re-enabling test for + dlopen. Only release scripts need to force these values off. + +2003-08-12 16:35 king + + * Utilities/Release/: config_AIX, config_Darwin, config_HP-UX, + config_IRIX64, config_Linux, config_OSF1, config_SunOS: ENH: + Using write_standard_cache to shorten config files. + +2003-08-12 16:35 king + + * Utilities/Release/cmake_release.sh: ENH: Unix builds should not + use reentrant versions of network calls. + +2003-08-12 11:14 king + + * Source/CTest/Curl/CMakeLists.txt: BUG: Need to force HAVE_LIBDL + and HAVE_DLOPEN to 0 to support old cache files. + +2003-08-11 18:24 king + + * Utilities/Release/config_Darwin: ENH: Updated for new wx version. + +2003-08-11 18:21 king + + * Utilities/Release/cmake_release.sh: BUG: CMake.app directory is + now in bin, not Source. + +2003-08-11 18:14 king + + * Utilities/Release/cygwin-package.sh.in: BUG: Tests are run by + bin/ctest instead of Source/ctest. + +2003-08-11 17:58 king + + * Utilities/Release/: cmake_release.sh, config_IRIX64, + config_Linux: ENH: Added support for parallel build during + release. + +2003-08-11 17:53 andy + + * bootstrap: ENH: Add error message for make missing + +2003-08-11 17:41 king + + * Utilities/Release/cmake_release.sh: BUG: Test for build needs to + look for bin/ccmake, not Source/ccmake. + +2003-08-11 17:35 king + + * Utilities/Release/: cmake_release.sh, config_Darwin, + config_HP-UX, config_IRIX64, config_SunOS: Merge from 1.8 branch. + +2003-08-11 17:35 king + + * Source/CTest/Curl/CMakeLists.txt: ENH: Removing dependence on dl + library since we don't actually use ldap. + +2003-08-11 17:35 king + + * Source/WXDialog/CMakeLists.txt: BUG: Need to check both + CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE and CMAKE_WX_CONFIG. + +2003-08-11 17:34 king + + * Source/cmCommands.cxx: BUG: Bootstrapping with wxWindows support + needs SEPARATE_ARGUMENTS command. + +2003-08-11 17:34 king + + * Modules/CMakeLists.txt: ENH: Installing readme.txt in Modules + directory to be consistent with windows. + +2003-08-11 17:10 king + + * Source/WXDialog/CMakeLists.txt: BUG: Need to use + CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE in place of CMAKE_WX_CONFIG + if it is set. + +2003-08-11 16:55 king + + * Utilities/Release/config_Darwin: Fixed wx location. + +2003-08-11 16:43 king + + * Source/cmCommands.cxx: BUG: Bootstrapping with wxWindows support + requires SEPARATE_ARGUMENTS command in bootstrapped executable. + +2003-08-11 16:34 king + + * Source/CTest/Curl/CMakeLists.txt: ERR: Removing unnecessary + dependence on libdl. + +2003-08-11 16:31 king + + * Utilities/Release/config_HP-UX: ENH: Cleaned up link of dld. + +2003-08-11 16:31 king + + * Utilities/Release/config_SunOS: ENH: Switching to system + compiler. + +2003-08-11 15:27 king + + * Utilities/Release/cmake_release.sh: Using bootstrap instead of + configure. + +2003-08-11 15:22 king + + * Utilities/Release/cmake_release.sh: ENH: Allow config files to + specify a make. + +2003-08-11 15:21 king + + * Utilities/Release/config_IRIX64: ENH: Enabling parallel build. + +2003-08-11 15:16 king + + * Utilities/Release/cmake_release.sh: BUG: Location of ctest has + changed to bin, not Source. + +2003-08-11 15:15 king + + * Utilities/Release/config_Darwin: Updated for new FindwxWindows. + +2003-08-11 15:07 king + + * Utilities/Release/cmake_release.sh: Update from 1.8 branch. + +2003-08-11 15:06 king + + * Utilities/Release/config_Darwin: Updated for new location of + wxWindows. + +2003-08-11 15:02 king + + * Utilities/Release/config_Darwin: Updated for new location of + wxWindows. + +2003-08-11 15:01 king + + * Utilities/Release/cmake_release.sh: ENH: Updated for new FTP + directory structure. + +2003-08-11 14:56 king + + * Modules/CMakeLists.txt: ENH: Installing readme.txt in modules to + be consistent with windows. + +2003-08-11 14:44 martink + + * Source/: cmMakefile.cxx: added beta release support + +2003-08-11 14:41 martink + + * CMakeLists.txt, Source/cmCPluginAPI.h: version 19 + +2003-08-11 14:37 martink + + * CMakeLists.txt, Source/cmCPluginAPI.h, + Utilities/Release/cmake_release.sh: added version + +2003-08-11 12:20 andy + + * Source/ctest.cxx: ENH: Add documentation for -D and add missing + targets + +2003-08-11 12:18 andy + + * Source/: cmCTest.cxx, CTest/cmCTestSubmit.cxx: ENH: Cleanup the + output + +2003-08-11 12:17 andy + + * Modules/Dart.cmake: ENH: Take Purify out because it is not + implemented yet + +2003-08-11 09:47 andy + + * Source/cmCTest.cxx: ENH: Remove debug + +2003-08-10 18:30 martink + + * Source/: cmAbstractFilesCommand.h, cmAddCustomCommandCommand.h, + cmAddCustomTargetCommand.h, cmAddDefinitionsCommand.h, + cmAddDependenciesCommand.h, cmAddExecutableCommand.h, + cmAddLibraryCommand.h, cmAddTestCommand.h, + cmAuxSourceDirectoryCommand.h, cmBuildCommand.h, + cmBuildNameCommand.h, cmCMakeMinimumRequired.cxx, + cmCMakeMinimumRequired.h, cmCTest.cxx, cmCacheManager.cxx, + cmCommand.h, cmConfigureFileCommand.h, cmCreateTestSourceList.h, + cmEnableTestingCommand.h, cmEndForEachCommand.h, + cmExecProgramCommand.h, cmExportLibraryDependencies.h, + cmFLTKWrapUICommand.h, cmFileCommand.h, cmFindFileCommand.cxx, + cmFindFileCommand.h, cmFindLibraryCommand.h, + cmFindPackageCommand.h, cmFindPathCommand.h, + cmFindProgramCommand.cxx, cmFindProgramCommand.h, + cmForEachCommand.h, cmGetCMakePropertyCommand.h, + cmGetSourceFilePropertyCommand.h, cmGetTargetPropertyCommand.h, + cmGlob.cxx, cmITKWrapTclCommand.h, cmIfCommand.h, + cmIncludeCommand.h, cmIncludeDirectoryCommand.h, + cmIncludeExternalMSProjectCommand.h, + cmIncludeRegularExpressionCommand.h, cmInstallFilesCommand.h, + cmInstallProgramsCommand.h, cmInstallTargetsCommand.h, + cmLinkDirectoriesCommand.h, cmLinkLibrariesCommand.h, + cmLoadCommandCommand.h, cmLocalUnixMakefileGenerator.cxx, + cmMacroCommand.h, cmMakeDirectoryCommand.h, cmMakefile.cxx, + cmMakefile.h, cmMarkAsAdvancedCommand.h, cmMessageCommand.h, + cmOptionCommand.h, cmOutputRequiredFilesCommand.h, + cmProjectCommand.h, cmQTWrapCPPCommand.h, cmQTWrapUICommand.h, + cmRemoveCommand.h, cmSeparateArgumentsCommand.h, cmSetCommand.h, + cmSetSourceFilesPropertiesCommand.h, + cmSetTargetPropertiesCommand.h, cmSiteNameCommand.h, + cmSourceFile.h, cmSourceFilesCommand.h, + cmSourceFilesRemoveCommand.h, cmSourceGroupCommand.h, + cmStringCommand.h, cmSubdirCommand.h, cmSubdirDependsCommand.h, + cmSystemTools.cxx, cmTarget.h, cmTargetLinkLibrariesCommand.h, + cmTryCompileCommand.h, cmTryRunCommand.h, + cmUseMangledMesaCommand.h, cmUtilitySourceCommand.h, + cmVTKMakeInstantiatorCommand.h, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.h, cmVTKWrapTclCommand.h, + cmVariableRequiresCommand.h, cmWin32ProcessExecution.cxx, + cmWrapExcludeFilesCommand.h, cmWriteFileCommand.h, cmake.cxx, + cmake.h, cmakewizard.cxx, cmakewizard.h: removed redundent + includes + +2003-08-10 16:01 martink + + * Source/: cmMakeDepend.cxx, cmMakeDepend.h, cmSourceFile.cxx: + removed duplicate includes + +2003-08-10 16:00 martink + + * Source/cmMakefile.cxx: removed duplicate include + +2003-08-09 19:37 andy + + * Source/cmCTest.cxx: ERR: Rename some variables to remove shadow + warning + +2003-08-08 18:28 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add regression images + support + +2003-08-08 17:10 andy + + * Source/cmCTest.cxx: ENH: Better output and use RunMakeCommand for + configure + +2003-08-08 11:59 andy + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake, CMakeDetermineSystem.cmake, + CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake, + CMakeVS6FindMake.cmake, CMakeVS71FindMake.cmake, + CMakeVS7FindMake.cmake, CheckFunctionExists.cmake, + CheckIncludeFile.cmake, CheckIncludeFileCXX.cmake, + CheckIncludeFiles.cmake, CheckLibraryExists.cmake, + CheckTypeSize.cmake, CheckVariableExists.cmake, + FindHTMLHelp.cmake, FindMFC.cmake, TestBigEndian.cmake, + TestCXXAcceptsFlag.cmake, TestForANSIForScope.cmake, + TestForSTDNamespace.cmake: ENH: Cleanups and add missing + CMakeOutput.log and CMakeError.log appending. Close Bug #136 - + Verify that all modules that do try compile produce + CMakeError.log and CMakeOutput.log + +2003-08-08 11:19 martink + + * Source/cmStandardIncludes.h: added stdio + +2003-08-08 10:40 martink + + * Source/cmLocalVisualStudio6Generator.cxx: fid post build iue on + vs6 utility targets + +2003-08-08 10:20 andy + + * Tests/SystemInformation/DumpInformation.cxx: EHN: Also display + Configure.h and Configure.hxx from cmsys + +2003-08-08 10:07 andy + + * Source/cmMakefile.cxx: ENH: When fixing cache value with + uninitialized type, collapse full paths for PATH and FILEPATH. + Closes Bug #82 - Specifying relative path when entering path can + break things + +2003-08-08 09:26 andy + + * Source/cmMakefile.cxx: ENH: Handle untyped but initialized values + for boolean AddCacheDefinition. Closes Bug #118 - Specifying + cache entries with -D should not need the type + +2003-08-08 09:22 andy + + * Source/: cmCacheManager.cxx, cmCacheManager.h: ENH: Get accessor + for cache value as boolean + +2003-08-08 09:17 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: remove shadowed variable + +2003-08-08 09:14 king + + * Source/cmFindPackageCommand.cxx: ERR: Fixed use of != operator + for std::string on old broken compilers. + +2003-08-08 08:48 andy + + * Source/cmakemain.cxx: ENH: Add help for cmake -E + +2003-08-08 08:48 andy + + * Source/cmCTest.cxx: ENH: Flush the output file, to make more nice + output for tail -f + +2003-08-07 19:23 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Add displaying of dots when + building project. Also, file is now written as the output is + produced, so, tail -f works, baby... + +2003-08-07 19:00 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Abstract + parsing of arguments so that I can use it in other places + +2003-08-07 18:44 andy + + * Source/cmaketest.cxx: ENH: More verbose + +2003-08-07 17:51 andy + + * Source/CTest/Curl/arpa_telnet.h: ENH: Bold attempt to remove + warning + +2003-08-07 17:47 andy + + * Source/CTest/Curl/hostip.h: ENH: Bold attempt to remove warning + +2003-08-07 17:43 king + + * Source/ctest.cxx: ENH: Clarification of help dumped when no + arguments are given and no test file is found. + +2003-08-07 16:54 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: BUG: fix the test + +2003-08-07 16:50 king + + * Source/cmFindPackageCommand.cxx: ENH: Added compatability for + capitalization of _DIR and _FOUND variables in cmake 1.6. + +2003-08-07 16:32 andy + + * Modules/FindLATEX.cmake: ENH: Add PDFLaTeX and LaTeX2HTML. Closes + Bug #132 - Add pdflatex and html2latex to FindLATEX.cmake + +2003-08-07 16:26 andy + + * Source/: cmVariableWatch.cxx, cmVariableWatch.h: ENH: Add remove + watch + +2003-08-07 16:25 andy + + * CMakeLists.txt, Source/CMakeLists.txt: ENH: Fix dependencies for + curses dialog + +2003-08-07 16:11 king + + * Source/cmake.cxx: BUG: Fixed typo in error message. + +2003-08-07 16:09 andy + + * CMakeLists.txt, Source/CMakeLists.txt, + Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmTargetLinkLibrariesCommand.h, + Source/CTest/CMakeLists.txt: ENH: Report an error when + ADD_LIBRARY and TARGET_LINK_LIBRARIES are in the wrong order and + fix CMakeLists files to actually work + +2003-08-07 16:04 hoffman + + * Tests/Complex/CMakeLists.txt, + Tests/Complex/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Source/cmIncludeExternalMSProjectCommand.cxx: ENH: improve + coverage + +2003-08-07 15:39 andy + + * Source/kwsys/ProcessWin32.c: ENH: Cast into apropriate type to + remove warning + +2003-08-07 14:37 andy + + * Source/cmQTWrapUICommand.cxx: ENH: Use the new signature + +2003-08-07 14:37 andy + + * Tests/Wrapping/CMakeLists.txt: ENH: More verbose test + +2003-08-07 14:10 hoffman + + * Modules/Platform/Windows-cl.cmake: BUG: fix for main in a library + on windows with nmake + +2003-08-07 11:53 king + + * Source/cmLocalUnixMakefileGenerator.h: ENH: Added convenience + signature to OutputMakeRule. + +2003-08-07 11:42 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Makefiles now have + rules to do a global generate if the CMake listfiles have + changed. Necessary for when try-compiles are added to a + listfile. + +2003-08-07 09:19 hoffman + + * Modules/FindMPI.cmake, Source/cmLocalVisualStudio7Generator.cxx: + BUG: fix for bugs 125 - 128, and a fix for the bug introduced by + the bug fix for but 92. & was being replaced with &, but + after double quote was replaced with " causing it to be + &quot. Also add more search paths for mpi + +2003-08-06 19:19 andy + + * Source/cmMakefile.cxx: ENH: oops, initialize variable + +2003-08-06 18:54 andy + + * Source/cmGetCMakePropertyCommand.cxx, + Source/cmGetCMakePropertyCommand.h, Source/cmMacroCommand.cxx, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Tests/SystemInformation/CMakeLists.txt, + Tests/SystemInformation/DumpInformation.cxx: ENH: Add option to + retrieve list of macros. Close Bug #25 - Get_CMAKE_PROPERTIES + +2003-08-06 18:43 king + + * Source/cmDocumentation.cxx: BUG: Don't use -V as a version + option. It conflicts with ctest. + +2003-08-06 18:41 king + + * Source/cmake.cxx: ENH: Removed old argument processing code that + never does anything. + +2003-08-06 18:39 king + + * Source/: cmakewizard.cxx, CursesDialog/cmCursesMainForm.cxx: + BUG#129: Fixed load/save of CMakeCache.txt when it is not in the + current directory. + +2003-08-06 17:58 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: If + CMAKE_EDIT_COMMAND is not specified, use cmake -i + +2003-08-06 17:52 andy + + * bootstrap: ENH: Add rebuild_cache + +2003-08-06 17:32 andy + + * Modules/FindThreads.cmake: ENH: On apple use -lpthreads + +2003-08-06 15:22 king + + * Source/: cmInstallFilesCommand.h, cmInstallProgramsCommand.h: + ENH: Tweaked whitespace in documentation of command. + +2003-08-06 15:18 king + + * Source/cmAddCustomCommandCommand.h: ENH: Tweaked whitespace in + documentation of command. + +2003-08-06 15:12 king + + * Source/CursesDialog/ccmake.cxx: ENH: Added SEE ALSO support for + generated unix manpage. + +2003-08-06 15:10 king + + * Source/CMakeLists.txt: BUG: We don't want to install cmaketest on + UNIX or windows. It is for internal CMake testing only. We + should probably fold its functionality into ctest anyway. + +2003-08-06 15:03 king + + * Source/ctest.cxx, Utilities/CMakeLists.txt: ENH: Added + documentation for ctest. + +2003-08-06 14:49 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h, cmakemain.cxx, + CursesDialog/ccmake.cxx, MFCDialog/CMakeSetup.cpp: ENH: Added + configuration of name of executable in man page header and + version banner. + +2003-08-06 13:48 king + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: If a directory is + specified on the command line that is not an existing build tree, + we should still use any -G option that was given to set the + generator. + +2003-08-06 13:48 king + + * Source/cmSystemTools.cxx: ENH: Hide windows for processes run by + RunSingleCommand. + +2003-08-06 13:41 king + + * Source/kwsys/SystemTools.cxx: Fixed indentation + +2003-08-06 12:52 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: do not output make + install rules on windows because they do not work + +2003-08-06 11:51 king + + * Source/cmaketest.cxx: BUG: Fixed spacing error in message. + +2003-08-06 10:42 king + + * Source/CMakeLists.txt: ENH: Install test is now enabled when + CMAKE_INSTALL_PREFIX is CMake_BINARY_DIR/Tests/TestInstall/Prefix + to keep test in one directory. + +2003-08-06 10:39 king + + * Source/CMakeLists.txt, Tests/TestInstall.sh.in: ENH: Added + Install test. It is enabled when the CMAKE_INSTALL_PREFIX is + CMake_BINARY_DIR/InstallTest. + +2003-08-06 10:15 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Fix install problem + +2003-08-06 09:27 king + + * Source/kwsys/ProcessWin32.c: BUG: Need to provide stdin to child + processes. + +2003-08-05 18:25 king + + * Tests/CommandLineTest/CMakeLists.txt: ENH: Added test of + --copyright and --version arguments for coverage. + +2003-08-05 18:22 king + + * Tests/CommandLineTest/CMakeLists.txt: ENH: Added test of --help + [command] form of help option for coverage. + +2003-08-05 18:10 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h: ENH: Added + support to --help to print help for a single command. + +2003-08-05 17:39 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Fixed + implementation of long dependency list support. The proxy target + must have a corresponding file to work correctly. Instead of + using a proxy target, we now just list one line for each + dependency and then print one copy of the build rule at the end. + +2003-08-05 16:51 king + + * Source/cmake.cxx: ENH: Clarified source directory mismatch + message. + +2003-08-05 16:36 king + + * Source/: cmake.cxx, cmake.h: ENH#61: cmake and ccmake now support + passing the path to a CMakeCache.txt file as an argument. Its + settings will be loaded. + +2003-08-05 16:04 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG#92 - Added XML + escaping for <, >, and &. + +2003-08-05 15:20 andy + + * Tests/SystemInformation/DumpInformation.cxx: BUG: Open as ascii + to remove extra new lines + +2003-08-05 15:10 king + + * Source/kwsys/: ProcessFwd9x.c, ProcessWin32.c: ENH: Added + show/hide window support. + +2003-08-05 14:27 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c, ProcessWin32.c: ENH: + Added SetOption/GetOption methods for platform-specific options. + +2003-08-05 13:53 king + + * Source/kwsys/ProcessUNIX.c: BUG: Can't close stdin. + +2003-08-05 11:34 king + + * Source/kwsys/ProcessUNIX.c: BUG: Added missing + zero-initialization of struct sigaction. + +2003-08-05 09:55 martink + + * Modules/: CMakeTestNMakeCLVersion.c, Platform/Windows-cl.cmake: + added test for whether pdbtype should be used for nmake + +2003-08-05 09:07 king + + * Source/kwsys/ProcessUNIX.c: BUG: GetErrorString should return + ErrorMessage buffer, not the pipe buffer. + +2003-08-05 09:07 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: minor fix + +2003-08-05 08:49 martink + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: added outputEcho method and fixed + make help for nmake and borland + +2003-08-04 17:08 king + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake: + ERR: Fixed typeo tests->test. + +2003-08-04 15:35 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: added make help target + first cut + +2003-08-04 14:34 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: fix for debug libs on + UNIX + +2003-08-04 11:48 andy + + * Source/cmSystemTools.cxx: ENH: Improve paths on windows + +2003-08-04 07:55 andy + + * Source/cmSystemTools.cxx: ENH: Fix escaping on windows + +2003-08-04 07:12 andy + + * Source/cmSystemTools.cxx: ENH: Fix argument parsing on UNIX with + spaces + +2003-08-03 22:41 andy + + * Source/cmSiteNameCommand.cxx: ENH: Use new RunCommand + +2003-08-03 22:36 andy + + * Source/: cmCTest.cxx, cmCTest.h: ENH: Use new RunCommand + +2003-08-03 22:34 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, cmake.cxx, cmaketest.cxx: + ENH: Use the new RunCommand + +2003-08-03 22:33 andy + + * Source/: cmBuildNameCommand.cxx, cmTryRunCommand.cxx, + cmSiteNameCommand.cxx: ENH: Use the new signature + +2003-08-03 22:32 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Add back the + kwsysProcess RunCommand, now is in parallel + +2003-08-03 20:47 andy + + * Source/cmGetCMakePropertyCommand.cxx, + Source/cmGetCMakePropertyCommand.h, Source/cmake.h, + Tests/SystemInformation/CMakeLists.txt, + Tests/SystemInformation/DumpInformation.cxx: ENH: Add accessor + for the list of commands + +2003-08-02 09:33 andy + + * Source/: cmCacheManager.cxx, cmCacheManager.h, cmMakefile.cxx: + BUG: Fix problem with uninitialized variables + +2003-08-01 19:13 andy + + * Modules/FindQt.cmake, Tests/Wrapping/CMakeLists.txt: ENH: Make it + work for QT 2.3 non commercial on windows + +2003-08-01 18:53 andy + + * Source/cmQTWrapUICommand.cxx: ENH: Make out of source work on + Windows + +2003-08-01 18:52 andy + + * Tests/Wrapping/CMakeLists.txt: ENH: Add more debug + +2003-08-01 18:52 andy + + * Source/CMakeLists.txt: ENH: Fix test for Visual Studio + +2003-08-01 17:11 andy + + * Modules/FindThreads.cmake: ENH: MAke it work on FreeBSD + +2003-08-01 16:48 andy + + * Modules/: CheckForPthreads.c, FindThreads.cmake: ENH: Do better + test for pthreads + +2003-08-01 16:48 andy + + * Modules/FindQt.cmake: ENH: Fix indentation + +2003-08-01 16:47 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ERR: Remove debug + +2003-08-01 15:41 hoffman + + * Tests/: Complex/Executable/complex.file.cxx, + ComplexOneConfig/Executable/complex.file.cxx, + ComplexRelativePaths/Executable/complex.file.cxx: add missing + file + +2003-08-01 15:33 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Dependency lists + are now split into multiple make lines to allow longer lists on + limited make programs. + +2003-08-01 15:33 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Add support for + -pthread + +2003-08-01 15:27 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Adding link flags + to an executable that links to shared libraries must be done for + both EXECUTABLE and WIN32_EXECUTABLE targets. + +2003-08-01 14:34 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt: BUG (85): + allow . to be in the name of an executable + +2003-08-01 14:10 andy + + * Source/: cmCacheManager.cxx, cmCacheManager.h, cmMakefile.cxx, + cmake.cxx: ENH: Allow specifying cmake variables on the command + line without specifying the type Bug #118 - Specifying cache + entries with -D should not need the type + +2003-08-01 14:10 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: all Makefiles now have + both full path to exe and short version + +2003-08-01 13:54 martink + + * Source/cmUtilitySourceCommand.cxx: fix for utility command + without EXECUTABLE_OUTPUT_PATH + +2003-08-01 13:24 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Syntax cleanup + +2003-08-01 13:13 hoffman + + * Source/: cmGlobalNMakeMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h: + ENH: allow lib prefix for to stay for nmake and borland make as + it is not a system prefix + +2003-08-01 13:00 martink + + * CMakeLists.txt: change lib path back to empty + +2003-08-01 12:49 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Fix echo's to use + @echo. This way verbose mode does not print twice: Bug #45 - add + @ from echo commands + +2003-08-01 11:58 martink + + * CMakeLists.txt: made more options advanced + +2003-08-01 11:58 martink + + * Source/CTest/Curl/CMakeLists.txt: made option advanced + +2003-08-01 09:18 andy + + * Tests/Wrapping/CMakeLists.txt: ERR: Only link qt to qt executable + +2003-08-01 09:11 martink + + * Source/cmExportLibraryDependencies.cxx: fix for bug # 101 + +2003-08-01 08:47 martink + + * Source/MFCDialog/CMakeSetupDialog.cpp: more reverting back + +2003-07-31 16:43 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: when creating rule + files remove the IntDir + +2003-07-31 16:30 martink + + * Source/MFCDialog/CMakeSetupDialog.cpp: fix for spaces + +2003-07-31 15:32 hoffman + + * Source/cmTarget.cxx: ENH: add support for OBJECT_DEPENDS for + visual studio + +2003-07-31 14:46 martink + + * Source/cmMakefile.cxx: bug fix for bug # 117 + +2003-07-31 13:15 andy + + * Modules/FindwxWindows.cmake: made a minor bugfix on my + FindwxWindows.cmake. I capsulated the regular expression + matching for the libdrs with another IF (line 355). By: Jan + Woetzel + +2003-07-31 08:55 andy + + * Source/WXDialog/CMakeLists.txt: ENH: Fix wx test + +2003-07-31 08:50 andy + + * Tests/Wrapping/CMakeLists.txt: ERR: Attempt to fix wrapping on + Windows + +2003-07-31 08:33 andy + + * Tests/Wrapping/Wrap.c: ENH: Fix problem on HP. Whay should K&R be + default? + +2003-07-30 15:38 andy + + * Modules/FindQt.cmake: ENH: when linking in QT, we should also + link DL, since QT uses them + +2003-07-30 13:39 andy + + * Modules/FindQt.cmake: ENH: QT if it is multi threaded should link + in threads + +2003-07-30 13:28 andy + + * Tests/Wrapping/: CMakeLists.txt, foo.ui.in: ENH: Really test uic + and perform configured uic test + +2003-07-30 13:27 andy + + * Source/cmQTWrapUICommand.cxx: ENH: Allow qt ui files being it the + binary dir. Bug #110 - QT_WRAP_UI problem on out-of-source builds + +2003-07-30 13:14 andy + + * Source/WXDialog/CMakeLists.txt: ENH: Revert back + +2003-07-30 13:11 andy + + * Source/: cmaketest.cxx, WXDialog/CMakeLists.txt: ENH: Also fail + when make failsSource/cmaketest.cxx + +2003-07-30 13:10 andy + + * Tests/Wrapping/: CMakeLists.txt, Wrap.c: ENH: Add executable for + wrapping test, so that make stage actually passes + +2003-07-29 18:06 andy + + * Source/cmGlob.cxx: ENH: Speedup globbing and attempt to fix + cygwin problem + +2003-07-29 17:15 andy + + * Modules/FindQt.cmake: ENH: Use FindX11 when doing Qt on unix + +2003-07-29 13:36 andy + + * Modules/Use_wxWindows.cmake: ENH: Add Use file for wxWindows. + Thanks Jan Woetzel + +2003-07-29 07:41 andy + + * Modules/FindwxWindows.cmake: ENH: Improved find module. Thank you + Jan Woetzel + +2003-07-29 07:01 andy + + * Source/cmAddCustomCommandCommand.cxx: ENH: Fix typo: Bug #100 - + Spelling correction to an error message + +2003-07-28 18:12 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, cmMakeDepend.cxx, + cmMakeDepend.h: ENH: performance fixes for network depends + +2003-07-28 14:43 hoffman + + * Source/: cmSourceGroupCommand.cxx, cmSourceGroupCommand.h: ENH: + put back old style call to SOURCE_GROUP, no need to break things + for this + +2003-07-28 13:40 hoffman + + * Source/cmake.cxx: BUG: make sure initial cache file read only + reads one file, and does not look for CMakeLists.txt files on the + entire disk + +2003-07-25 13:39 hoffman + + * Source/cmake.cxx: add a better message for the GUI if no + CMakeLists.txt file is found. + +2003-07-25 12:50 hoffman + + * Tests/Wrapping/CMakeLists.txt: for unix add x11 and pthreads for + qt + +2003-07-24 11:53 andy + + * Source/cmGlob.cxx: ENH: Remove warning + +2003-07-24 11:51 andy + + * Source/CTest/Curl/curl.copyright: ENH: Fix legal issues. + +2003-07-24 11:37 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: fix for utility depends + bug#76 + +2003-07-24 11:33 king + + * Source/CMakeLists.txt, Tests/FindPackageTest/CMakeLists.txt, + Tests/FindPackageTest/FindPackageTest.cxx: ENH: Added + FindPackageTest to improve coverage. + +2003-07-24 11:32 king + + * Source/: cmFindPackageCommand.cxx, cmFindPackageCommand.h: ENH: + Implemented QUIET argument propagation to FOO_FIND_QUIETLY + setting in FindFOO.cmake module that is found. + +2003-07-24 11:24 king + + * Source/MFCDialog/CMakeCommandLineInfo.cpp: BUG: Fix for network + path argument parsing. + +2003-07-24 11:12 andy + + * Source/cmGlob.cxx: ENH: On windows handle network paths + +2003-07-24 11:06 king + + * Modules/FindVTK.cmake: ENH: Improved error message for VTK_DIR + not found to refer to it as a cache entry. Some users thought + this was supposed to be an environment variable. + +2003-07-24 10:58 king + + * Source/CMakeLists.txt, Source/cmDumpDocumentation.cxx, + Tests/CommandLineTest/CMakeLists.txt, + Tests/CommandLineTest/CommandLineTest.cxx, + Tests/StringFileTest/CMakeLists.txt: ENH: Added CommandLineTest + to add coverage for command line arguments to cmake executables. + This replaces the old DumpDocumentation test. + +2003-07-23 18:01 andy + + * Tests/StringFileTest/CMakeLists.txt: ENH: More coverage + +2003-07-23 17:59 king + + * Utilities/CMakeLists.txt: ENH: Added build of documentation for + CMakeSetup. + +2003-07-23 17:40 king + + * Source/MFCDialog/CMakeSetup.cpp: ENH: Added support for + documentation options. + +2003-07-23 17:31 king + + * Source/MFCDialog/: CMakeCommandLineInfo.cpp, + CMakeCommandLineInfo.h: ENH: Added construction of original + command line in argc/argv style. + +2003-07-23 17:28 king + + * Source/MFCDialog/: CMakeSetupDialog.cpp, CMakeSetupDialog.h: ENH: + Improved behavior when run with arguments from the command line. + +2003-07-23 17:27 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h: ENH: + CheckOptions now takes const argv. + +2003-07-23 15:45 king + + * Source/cmSourceGroupCommand.cxx: ENH: Added backwards + compatability. + +2003-07-23 15:32 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmMakefile.cxx, + cmSourceGroup.cxx, cmSourceGroup.h, cmSourceGroupCommand.cxx, + cmSourceGroupCommand.h: ENH: Fully implemented SOURCE_GROUP + command. + +2003-07-23 14:31 andy + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h: ENH: Fix compatibility + +2003-07-23 10:39 king + + * Source/cmSourceGroupCommand.cxx: BUG: Fixed off-by-one error in + file list loop. Fix submitted by David A. Karr. + +2003-07-23 10:26 andy + + * Source/cmGlob.cxx: ENH: On windows and apple handle + lowercase/upercase file name problem + +2003-07-23 09:10 king + + * Tests/StringFileTest/CMakeLists.txt: ENH: Added more verbose + output of what globbing results. + +2003-07-23 08:58 king + + * Utilities/CMakeLists.txt: BUG: Don't install ccmake documentation + if no ccmake was built. + +2003-07-23 08:37 king + + * bootstrap: ENH: Adding forced settings for prefix, docdir, + mandir, and datadir. + +2003-07-22 17:09 andy + + * DartConfig.cmake: ENH: Direct link to cmake bugs + +2003-07-22 13:53 andy + + * Source/cmCPluginAPI.cxx: ERR: Fix error on bad C++ compiler that + do not handle return void + +2003-07-22 13:15 andy + + * Source/cmTarget.cxx: BUG: Fix copy/paste typo + +2003-07-22 13:14 andy + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h: ENH: Add DisplayStatus + +2003-07-22 12:21 andy + + * Tests/: LoadCommand/LoadedCommand.cxx, + LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/LoadedCommand.cxx, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: ENH: More + coverage + +2003-07-22 11:17 andy + + * Tests/StringFileTest/CMakeLists.txt: ENH: More coverage + +2003-07-22 10:45 andy + + * Tests/StringFileTest/CMakeLists.txt: ENH: Increase coverage + +2003-07-21 17:14 king + + * Utilities/CMakeLists.txt: ENH: Added generation of ccmake + documentation on UNIX. + +2003-07-21 17:13 king + + * Source/CursesDialog/ccmake.cxx: ENH: Added introduction paragraph + to documentation. + +2003-07-21 16:38 king + + * CMakeLists.txt, bootstrap, Modules/CMakeLists.txt, + Modules/Platform/CMakeLists.txt, Source/CMakeLists.txt, + Source/cmCommands.cxx, Source/cmConfigure.cmake.h.in, + Source/cmake.cxx, Templates/CMakeLists.txt, + Utilities/CMakeLists.txt: ENH: Added optional configuration of + data/doc/man dirs. This will be useful for package maintainers. + +2003-07-21 16:37 king + + * Source/: InitialConfigureFlags.cmake.in, cmConfigure.h.in: + Removing old file. This was used by old configure script which + has been removed. + +2003-07-21 15:29 andy + + * Source/cmGlob.cxx, Tests/StringFileTest/CMakeLists.txt: ENH: fix + glob on windows and add glob recurse test + +2003-07-21 15:02 king + + * Source/CMakeLists.txt: ENH: Added generation of cmake + documentation during build preocess. + +2003-07-21 14:58 king + + * Source/cmDocumentation.cxx: BUG: Text dump of documentation + should be in ascii mode. + +2003-07-21 14:57 king + + * Source/cmAddCustomTargetCommand.h: BUG: Fixed documentation + formatting. + +2003-07-21 14:44 andy + + * Source/: cmSourceFilesCommand.cxx, cmSourceFilesCommand.h: ENH: + Use new deprecation mechanism + +2003-07-21 14:43 andy + + * Source/cmFileCommand.h: ENH: Fix comment + +2003-07-21 14:42 andy + + * Source/: cmCommand.h, cmMakefile.cxx: ENH: Initial framework for + deprecated commands + +2003-07-21 13:48 andy + + * Tests/StringFileTest/CMakeLists.txt: ENH: add more coverage tests + +2003-07-21 13:46 andy + + * Source/cmGlob.cxx: ENH: Handle ^ as [^fu] + +2003-07-17 14:56 andy + + * Tests/StringFileTest/CMakeLists.txt: ENH: Add additional new line + after the string to match the change in file command + +2003-07-17 14:56 andy + + * Source/cmFileCommand.cxx: ENH: Remove extra new line after the + written string + +2003-07-17 14:54 andy + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake, + CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckIncludeFileCXX.cmake, CheckIncludeFiles.cmake, + CheckLibraryExists.cmake, CheckSymbolExists.cmake, + CheckTypeSize.cmake, CheckVariableExists.cmake, + TestBigEndian.cmake, TestCXXAcceptsFlag.cmake: ENH: Extra new + line after output + +2003-07-16 15:38 hoffman + + * Modules/CMakeDetermineSystem.cmake, Source/cmGlobalGenerator.cxx: + ENH: set CMAKE_SYSTEM_VERSION for windows + +2003-07-16 14:52 king + + * Source/: cmFindPackageCommand.cxx, cmFindPackageCommand.h: ENH: + Added QUIET optional argument to block error message when _DIR + variable is not set. Also removed upper-casing of package name. + +2003-07-16 11:38 king + + * Tests/SystemInformation/: DumpInformation.cxx, + DumpInformation.h.in: ENH: Added dump of more files. Improved + robustness of dump. + +2003-07-15 12:52 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: remove local broken + implementation of convert to windows path + +2003-07-15 12:52 hoffman + + * Source/cmAddCustomCommandCommand.cxx: ENH: better error checking + +2003-07-14 10:33 king + + * Source/cmMakefile.cxx: BUG: Custom commands should have variables + expanded before comparing with previously added custom commands. + +2003-07-14 10:13 martink + + * Source/cmFLTKWrapUICommand.cxx: some updates + +2003-07-14 09:44 martink + + * Source/cmFLTKWrapUICommand.cxx: some updates + +2003-07-14 09:31 martink + + * Source/: cmFLTKWrapUICommand.cxx, cmFLTKWrapUICommand.h: some + updates + +2003-07-14 09:15 andy + + * Source/: cmFileCommand.cxx, cmFileCommand.h, cmGlob.cxx, + cmGlob.h: ENH: Recurse subdirectories + +2003-07-11 17:21 king + + * bootstrap: ENH: Removed cmsys include directory from bootstrap + build of kwsys. It is no longer needed. + +2003-07-11 16:29 king + + * Utilities/Release/cmake_release.sh: BUG: Update of release + utilities must maintain tag. + +2003-07-11 14:14 andy + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake, + CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckIncludeFileCXX.cmake, CheckIncludeFiles.cmake, + CheckLibraryExists.cmake, CheckSymbolExists.cmake, + CheckTypeSize.cmake, CheckVariableExists.cmake, Dart.cmake, + TestBigEndian.cmake, TestCXXAcceptsFlag.cmake: ENH: Replace + WRITE_FILE with FILE(WRITE and FILE(APPEND. Replace + MAKE_DIRECTORY with FILE(MAKE_DIRECTORY, replace STRING(ASCII + things + +2003-07-10 23:22 king + + * Source/cmake.h: ERR: Removed duplicate generator documentation.e + +2003-07-10 23:15 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h, cmakemain.cxx: + ENH: Added SEE ALSO section to generated man page. Minor + formatting improvements for generated text-only documentation. + +2003-07-10 23:14 king + + * Source/cmake.h: ENH: Added CMAKE_STANDARD_INTRODUCTION macro + defining standard documentation for inclusion in every binary's + documentation. + +2003-07-10 23:14 king + + * Source/cmGlobalUnixMakefileGenerator.cxx: ENH: Wrote basic + description in full documentation block. + +2003-07-10 14:48 andy + + * Tests/StringFileTest/StringFile.cxx: ENH: Add missing include + +2003-07-10 14:46 king + + * Source/kwsys/CMakeLists.txt: ERR: Generated source files need + access to kwsysPrivate.h. Just copy it to the build tree. + +2003-07-10 14:35 andy + + * Source/cmStringCommand.cxx: ERR: Remove unused variable + +2003-07-10 14:32 king + + * Source/kwsys/: Base64.c, CMakeLists.txt, Directory.cxx, + EncodeExecutable.c, ProcessUNIX.c, ProcessWin32.c, + RegularExpression.cxx, SystemTools.cxx, kwsysPrivate.h: ENH: + Added use of KWSYS_HEADER macro in c and cxx files to include + kwsys headers through their configured namespace. + +2003-07-10 14:29 andy + + * Tests/StringFileTest/CMakeLists.txt, + Tests/StringFileTest/InputFile.h.in, + Tests/StringFileTest/StringFile.cxx, Source/CMakeLists.txt: ENH: + Add test for string and file commands + +2003-07-10 13:25 andy + + * Source/: cmStringCommand.cxx, cmStringCommand.h: ENH: Add upper + and lower case support. Close Bug #79 - STRING TOUPPER and + TOLOWER + +2003-07-09 17:25 king + + * Source/cmSystemTools.cxx: ENH: Added escape support for ( and ). + +2003-07-09 17:17 king + + * Source/: cmListFileCache.cxx, cmSystemTools.cxx: ENH: Added + support for # characters inside quoted arguments and for escaping + # in a non-quoted argument. Improved parsing speed by not + compiling regular expressions on blank lines. + +2003-07-09 16:18 king + + * Source/kwsys/ProcessUNIX.c: ERR: Using strncpy instead of + snprintf for portability. + +2003-07-08 16:33 andy + + * Source/: cmFileCommand.cxx, cmFileCommand.h: ENH: Add + MAKE_DIRECTORY and modify documentation + +2003-07-08 16:27 andy + + * Source/cmGlob.cxx: ENH: Remove commented code + +2003-07-08 15:54 andy + + * Source/CTest/Curl/Platforms/WindowsCache.cmake: ENH: More speedup + +2003-07-08 15:47 andy + + * Source/CTest/Curl/: CMakeLists.txt, Platforms/WindowsCache.cmake: + ENH: Attempt to speedup cmake of cmake on Windows + +2003-07-08 14:18 andy + + * bootstrap, Source/CMakeLists.txt, Source/cmFileCommand.cxx, + Source/cmFileCommand.h, Source/cmGlob.cxx, Source/cmGlob.h: ENH: + Add globbing to FILE command + +2003-07-08 13:27 king + + * Source/cmMakefile.cxx: BUG#65: Fixed inheritance of + CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR. + +2003-07-08 13:12 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, CMakeSetupDialog.h: ENH: + allow cancel and display of progress during cpu intensive + configure steps + +2003-07-08 09:21 andy + + * Source/kwsys/CMakeLists.txt: ENH: Fix example + +2003-07-08 00:28 king + + * Source/cmDocumentation.cxx: ERR: Added missing std::. + +2003-07-07 23:20 king + + * CMakeLists.txt, Source/cmDocumentation.cxx, + Source/cmDumpDocumentation.cxx, Source/cmStandardIncludes.h: ENH: + Improved name of cmake version variables. They are now + CMake_VERSION (major.minor) and CMake_VERSION_FULL + (major.minor.patch). + +2003-07-07 22:54 king + + * Source/cmStringCommand.h: BUG: Removed extra newlines from help + text. + +2003-07-07 22:44 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h, cmakemain.cxx, + CursesDialog/ccmake.cxx: ENH: Added support to write multiple + help options with one command line. Output files can now also be + specified for the help options. + +2003-07-07 22:41 king + + * Source/kwsys/CMakeLists.txt: ERR: Removed useless set. + +2003-07-07 22:41 king + + * Source/cmCommands.cxx: ENH: Made ADD_DEPENDENCIES available from + bootstrapped cmake. It will be needed to build cmake. + +2003-07-07 21:52 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h, + cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalBorlandMakefileGenerator.h, + cmGlobalCodeWarriorGenerator.cxx, cmGlobalCodeWarriorGenerator.h, + cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.h, + cmGlobalUnixMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmake.cxx, cmake.h, + cmakemain.cxx: ENH: Registered global generators are now kept in + a table in the cmake instance. Added support for documentation + with a Generators section. + +2003-07-07 18:27 king + + * Source/cmSystemTools.cxx: BUG: Parsing of arguments from string + by RunCommand before passing to Process execution does not work + with backslashes in path names. Until this is fixed, we cannot + use Process execution from kwsys. + +2003-07-07 17:52 andy + + * bootstrap: ENH: Fix bootstrap to include ProcessUNIX.c + +2003-07-07 17:47 andy + + * Source/: cmCommands.cxx, cmFileCommand.cxx, cmFileCommand.h: ENH: + Start working on a general file manipulation command + +2003-07-07 17:45 andy + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Add + optional argument to GetLineFromStream which can let the caller + know whether there was a new line character at the end of the + line that was just read + +2003-07-07 13:36 andy + + * Docs/cmake-syntax.vim: Initial import of VIM syntax highlighting + file + +2003-07-07 09:38 king + + * Source/kwsys/ProcessWin32.c: ENH: Made call to FormatMessage more + robust. + +2003-07-07 09:16 king + + * Source/cmSystemTools.cxx: ENH: Using new Process + SetWorkingDirectory method instead of manually implementing it. + +2003-07-07 09:12 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c: ENH: Implemented + SetWorkingDirectory method. + +2003-07-07 09:10 king + + * Source/kwsys/ProcessWin32.c: ENH: Implemented SetWorkingDirectory + method on Windows. + +2003-07-07 08:41 king + + * Source/cmSystemTools.cxx: ENH: Using kwsys Process implementation + to implement RunCommand. + +2003-07-07 08:36 andy + + * Source/kwsys/: Process.h.in, ProcessUNIX.c: ENH: Start working on + Working Directory support + +2003-07-06 20:40 king + + * Source/kwsys/ProcessWin32.c: ENH: Using GetTempPath instead of + TEMP environment variable to get a location to write the Win9x + forwarding executable. + +2003-07-03 18:33 king + + * Source/kwsys/ProcessWin32.c: BUG: Argument parsers do not always + remove double quotes from around an argument that has no spaces. + +2003-07-03 12:50 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: ENH: add linker flags + +2003-07-03 11:39 hoffman + + * Source/cmCreateTestSourceList.cxx: ENH: null terminate at the end + of the list + +2003-07-03 07:58 king + + * Source/kwsys/CMakeLists.txt: BUG: Install target for standard + header wrappers must point at the std subdirectory in the + installation. + +2003-07-02 10:48 andy + + * DartConfig.cmake: ENH: Add proper links to bugtracker + +2003-07-02 10:37 andy + + * DartConfig.cmake: ENH: Add links to bugtracker + +2003-07-02 08:35 king + + * Source/kwsys/ProcessWin32.c: ERR: Added cast to remove warning. + We know the length of the string will not be beyond 2^31. + +2003-07-01 13:32 king + + * Source/kwsys/Base64.c: ERR: Added casts to remove type conversion + warnings. Pointer differences can be 64-bit, but unsigned long + is 32-bit on many platforms. We know we are not traversing more + data than can be handled by an unsigned long, though, because the + length argument is an unsigned long. + +2003-07-01 13:27 king + + * Source/kwsys/: ProcessFwd9x.c, ProcessWin32.c: ERR: Should use %p + to pass HANDLE values on a command line, not %d. + +2003-07-01 13:27 king + + * Source/kwsys/SystemTools.cxx: ERR: Removed unreachable code. + +2003-07-01 11:40 king + + * Source/kwsys/: Base64.h.in, Process.h.in: ERR: Reduced + requirements on preprocessor for export macro due to limitations + of Mac preprocessor. The preprocessor can be fixed by using + -no-cpp-precomp, but we don't want to require that option for + every source file that includes our headers. + +2003-07-01 08:54 king + + * Source/kwsys/EncodeExecutable.c: ERR: Added explicit cast from + size_t to int. We know that the data will not be out of range. + +2003-06-30 10:50 andy + + * bootstrap: ERR: Fix changes in kwsys for Configure.h and + StandardIncludes.hxx + +2003-06-30 10:44 andy + + * Source/kwsys/: Base64.c, ProcessFwd9x.c, ProcessWin32.c: ERR: + Remove warnings on Windows + +2003-06-30 10:30 king + + * Source/kwsys/: Base64.h.in, CMakeLists.txt, Configure.h.in, + Directory.cxx, Directory.hxx.in, EncodeExecutable.c, + Process.h.in, ProcessWin32.c, RegularExpression.cxx, + RegularExpression.hxx.in, SystemTools.hxx.in: ENH: Added DLL + support. + +2003-06-30 10:12 martink + + * Tests/CustomCommand/CMakeLists.txt: modified code to match cmake + mode + +2003-06-30 10:07 king + + * Source/kwsys/StandardIncludes.hxx.in: Removing old file. + +2003-06-30 09:56 andy + + * bootstrap: ENH: Fix checking for C++ compiler on Mac, remove + cmConfigure.h.tmp, so that nothing bad can happen if configure is + interrupted, reports kwsys sources in cmConfigure.h + +2003-06-30 08:49 king + + * Source/kwsys/Base64.h.in: ENH: Updated comments for doxygen. + +2003-06-30 08:48 king + + * Source/kwsys/Base64.c: BUG: Should define KWSYS_IN_BASE64_C, not + KWSYS_IN_PROCESS_C. + +2003-06-30 08:48 king + + * Source/kwsys/CMakeLists.txt: ENH: Using FOREACH to shorten + enabling of C components. + +2003-06-29 21:42 andy + + * CMakeLists.txt, Source/kwsys/Base64.c, Source/kwsys/Base64.h.in, + Source/kwsys/CMakeLists.txt: ENH: Initial import of Base64 + +2003-06-29 20:30 king + + * CMakeLists.txt: ENH: Enabling build of kwsys's Process class. + This will be needed for ctest. + +2003-06-29 20:20 king + + * Docs/cmake-mode.el: ENH: Added comment-region support. + +2003-06-27 09:48 king + + * CMakeLists.txt: ERR: Disabling multiply defined symbols warning + for linking executables on IRIX. The compiler's prelinker does + not add weak symbols, so template instantiations are duplicated. + +2003-06-27 08:46 martink + + * Source/: cmAuxSourceDirectoryCommand.cxx, + cmTryCompileCommand.cxx: fix compiler warnings + +2003-06-26 13:39 king + + * Source/kwsys/CMakeLists.txt: ENH: Updated documentation to + describe enabling of classes. + +2003-06-26 09:44 andy + + * bootstrap: ENH: Attempt to handle OSF compiler flags + +2003-06-25 09:32 king + + * Source/kwsys/testProcess.c: ERR: Fixed use of non-constant + initializer. + +2003-06-25 08:29 king + + * Source/kwsys/Directory.cxx: ERR: Fixed conversion warning. + +2003-06-24 21:37 lorensen + + * Source/kwsys/SystemTools.cxx: ERR: portability. + +2003-06-24 16:35 martink + + * Source/kwsys/SystemTools.cxx: compiler fix + +2003-06-24 15:24 martink + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: moved depend code into + cmTarget + +2003-06-24 15:21 martink + + * Source/: cmMakefile.cxx, cmMakefile.h, kwsys/SystemTools.cxx: + performance improvements + +2003-06-24 15:11 martink + + * Source/cmMacroCommand.cxx: performance improvements + +2003-06-24 15:10 martink + + * Source/: cmTarget.cxx, cmTarget.h: moved function into cmTarget + +2003-06-24 10:16 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ERR: Renamed + superclass typedef from SystemTools to Superclass to avoid + conflict across platforms. + +2003-06-24 09:02 king + + * Source/kwsys/SystemTools.cxx: ERR: std->kwsys_std. + +2003-06-24 08:19 king + + * Source/cmSystemTools.h: ERR: Typedefs are not inherited on SGI + and Borland. + +2003-06-23 16:26 martink + + * Source/: cmForEachCommand.cxx, cmMacroCommand.cxx: perf + improvement + +2003-06-23 16:25 martink + + * Source/cmCustomCommand.h: performance improvement + +2003-06-23 14:10 king + + * CMakeLists.txt, bootstrap, Source/CMakeLists.txt, + Source/cmBuildNameCommand.cxx, Source/cmCTest.cxx, + Source/cmCacheManager.cxx, Source/cmConfigureFileCommand.cxx, + Source/cmIfCommand.cxx, Source/cmListFileCache.cxx, + Source/cmLoadCacheCommand.cxx, + Source/cmLocalCodeWarriorGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmMakeDepend.cxx, Source/cmMakeDepend.h, + Source/cmMakefile.cxx, Source/cmRegularExpression.cxx, + Source/cmRegularExpression.h, Source/cmSiteNameCommand.cxx, + Source/cmSourceGroup.h, Source/cmStringCommand.cxx, + Source/cmSystemTools.cxx, Source/cmUseMangledMesaCommand.cxx, + Source/cmaketest.cxx: ENH: Merged use of the kwsys + RegularExpression class instead of cmRegularExpression. + +2003-06-23 14:05 king + + * Source/kwsys/RegularExpression.hxx.in: ERR: Fixed documentation + to read RegularExpression instead of cmRegularExpression. + +2003-06-23 11:16 martink + + * Source/cmTarget.cxx: removed some no longer required code + +2003-06-23 08:58 king + + * CMakeLists.txt, bootstrap, Source/CMakeLists.txt, + Source/cmAuxSourceDirectoryCommand.cxx, Source/cmDirectory.cxx, + Source/cmDirectory.h, Source/cmMakeDirectoryCommand.cxx, + Source/cmMakefile.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTryCompileCommand.cxx, + Source/CursesDialog/cmCursesPathWidget.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt: ENH: Merged + use of kwsys library. + +2003-06-23 08:58 king + + * Makefile.in, configure, configure.in, Source/Makefile.in: ENH: + Configure script now just invokes bootstrap script. + +2003-06-23 08:56 king + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: ENH: Removed + cmake-specific functions. + +2003-06-23 08:56 king + + * Source/kwsys/CMakeLists.txt: BUG: Need include regular expression + to match all files. + +2003-06-21 11:57 andy + + * bootstrap: ENH: Add copyright, cmConfigure.h is now touched only + when it is modified, remove some spaces from output, add + procedure that copies file and replaces atstring with another + string + +2003-06-20 20:33 martink + + * Source/cmMakefile.cxx: fix to expand variables in custom command + outputs and main dependencies + +2003-06-20 14:10 king + + * Source/kwsys/CMakeLists.txt: ENH: Changed configuration of header + directory to specify it without the namespace. + +2003-06-20 14:10 hoffman + + * Docs/cmake-mode.el: BUG: fix highlight for comments in multiple + buffers + +2003-06-20 13:56 martink + + * Source/cmMakefile.cxx: bug in not expanding variables for custom + commands in targets + +2003-06-20 11:23 martink + + * Source/cmMakefile.cxx: minor perf improvement + +2003-06-19 18:57 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + RegularExpression.hxx.in, SystemTools.hxx.in, + kwsys_std_fstream.h.in, kwsys_std_iosfwd.h.in, + kwsys_std_iostream.h.in, kwsys_std_sstream.h.in: ENH: Added full + configuration of namespace even for Configure.hxx macro + definitions. + +2003-06-19 16:23 hoffman + + * Docs/cmake-mode.el: add a comment + +2003-06-19 15:05 king + + * Docs/: cmake-indent.vim, cmake-mode.el: Added copyright. + +2003-06-19 14:37 andy + + * Docs/cmake-indent.vim: Initial import: indentation file for vim + +2003-06-19 14:30 king + + * Docs/cmake-mode.el: Minor tweaks for anal cases of indentation. + +2003-06-19 14:27 martink + + * Source/cmMakefile.cxx: bug fix for finding source files + +2003-06-19 14:27 martink + + * Source/: cmSystemTools.cxx, cmSystemTools.h: new function + +2003-06-19 14:17 king + + * Docs/cmake-mode.el: BUG: Don't open a block if a command starts + with IF in its name. + +2003-06-19 13:38 martink + + * Docs/cmake-mode.el: fix to use function-name + +2003-06-19 13:23 king + + * Docs/cmake-mode.el: Fixed slow regex for indentation. + +2003-06-19 11:11 king + + * Docs/cmake-mode.el: ENH: Wrote more robust regular expressions + for indenting. + +2003-06-19 11:07 martink + + * Docs/cmake-mode.el: emacs mode + +2003-06-18 17:28 king + + * Source/kwsys/kwsysHeaderDump.pl: Tool to dump macros for + redefining C header namespaces. + +2003-06-18 17:27 king + + * Source/kwsys/: CMakeLists.txt, testProcess.c: ENH: Added test for + Process implementation. + +2003-06-18 17:27 king + + * Source/kwsys/ProcessWin32.c: BUG: Must return Exception status + correctly. + +2003-06-18 17:19 king + + * Source/kwsys/ProcessUNIX.c: Removed Exception_Abort because there + is no windows version. Also made ExitValue consistent with + windows when a signal kills the process. + +2003-06-18 17:19 king + + * Source/kwsys/Process.h.in: Removed Exception_Abort because there + is no windows version. Also removed stray typedef keywords. + +2003-06-18 17:06 king + + * Source/kwsys/: Process.h.in, ProcessUNIX.c, ProcessWin32.c, + test1.cxx: ENH: Added documentation to interface. Finished + process exit code interpretation implementation prototype. + +2003-06-18 11:43 hoffman + + * Source/cmStringCommand.h: remove non-html safe stuff + +2003-06-18 09:13 hoffman + + * Source/cmMakefile.cxx: BUG: fix not being able to find generated + files in the binary tree + +2003-06-17 17:13 martink + + * Source/cmLocalVisualStudio7Generator.cxx: fix for bad assumption + on custom rules + +2003-06-17 16:54 martink + + * Source/cmLocalVisualStudio6Generator.cxx: fix for bad assumption + +2003-06-17 15:13 martink + + * Source/cmLocalVisualStudio6Generator.cxx: fix for bad assumption + +2003-06-16 10:20 martink + + * Source/cmLocalVisualStudio6Generator.cxx: fix for vs6 rule files + +2003-06-13 16:59 king + + * Source/cmMakefile.cxx: BUG: Fixed translation of relative path + names to full path names. + +2003-06-13 16:47 king + + * Source/cmSetSourceFilesPropertiesCommand.cxx: BUG: Fixed crash + when source file cannot be looked up correctly. + +2003-06-13 14:15 king + + * Source/cmake.cxx: BUG: Fixed check for existence of + CMakeLists.txt file in top-level source directory before first + configure. + +2003-06-12 16:43 king + + * Modules/Platform/Windows-bcc32.cmake: BUG: Stack size in + generated programs should be 10 meg, not 256. + +2003-06-12 16:18 king + + * Source/kwsys/ProcessWin32.c: ERR: Added error check for malloc of + process control structure. + +2003-06-12 15:58 king + + * Source/kwsys/ProcessWin32.c: ERR: Using GetCurrentProcessId + instead of _getpid so we don't need to include the system + process.h header. Also creating pipe threads with 1K stacks to + save memory. + +2003-06-11 11:00 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Uninitialized + std::string returns bad pointers from c_str() on some platforms. + +2003-06-11 10:21 king + + * Source/kwsys/CMakeLists.txt: ENH: EXECUTABLE_OUTPUT_PATH is now + always set to get around cmake 1.6.7 dependency problems. Moved + default header directory inside the build tree instead of up one + level. User projects can now set the header directory. + +2003-06-11 10:11 hoffman + + * Modules/CMakeDetermineSystem.cmake: ENH: add processor type of + win32 + +2003-06-11 10:07 hoffman + + * Modules/: CMakeDetermineSystem.cmake, CMakeSystem.cmake.in: ENH: + add CMAKE_SYSTEM_PROCESSOR + +2003-06-11 09:45 king + + * Source/kwsys/CMakeLists.txt: ERR: Added custom command that takes + advantage of new syntax. + +2003-06-11 09:44 king + + * Source/kwsys/ProcessWin32.c: ERR: Removed unused variables. + +2003-06-11 09:44 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: When executable + output path is not set, we still need to generate the full path + to the executable target. + +2003-06-10 17:39 king + + * Source/kwsys/CMakeLists.txt: ERR: Added work-around for cmake + 1.6.7 bug in borland makefile generator. + +2003-06-10 16:56 king + + * Source/kwsys/CMakeLists.txt: BUG: Need to add ANSI C flags for + some platforms. + +2003-06-10 16:55 king + + * Source/kwsys/ProcessUNIX.c: ERR: Added static specifier to static + function definitions to quiet warnings on HP compiler. + +2003-06-10 16:15 king + + * Source/kwsys/ProcessWin32.c: BUG: Don't show a console + application's window. + +2003-06-10 15:50 king + + * Source/kwsys/test1.cxx: ENH: Added use of process execution. + +2003-06-10 15:46 king + + * Source/kwsys/: CMakeLists.txt, EncodeExecutable.c, Process.h.in, + ProcessFwd9x.c, ProcessUNIX.c, ProcessWin32.c: ENH: Added Process + execution implementation. + +2003-06-10 15:45 king + + * Source/kwsys/SystemTools.cxx: ENH: Moved disabling of warnings to + after kwsys includes. + +2003-06-10 15:44 king + + * Source/kwsys/kwsys_std.h.in: ENH: Disabled warning 4786. + +2003-06-06 09:58 andy + + * Modules/FindVTK.cmake: BUG: When VTK is not found, it should be + fatal error + +2003-06-06 09:57 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: BUG: When only loading + ccmake cache, do not allow generate + +2003-06-06 09:06 martink + + * Source/cmCreateTestSourceList.cxx: undid change because other + changes make it no longer neccesary + +2003-06-05 16:45 martink + + * Source/: cmMakefile.cxx, cmMakefile.h: more custom command + +2003-06-05 16:12 martink + + * Source/cmMakefile.cxx: more changes to support full paths + +2003-06-05 15:28 martink + + * Source/cmMakefile.cxx: perf improvement + +2003-06-05 15:18 martink + + * Source/cmMakefile.cxx: more changes to handle full paths + correctly + +2003-06-05 14:48 martink + + * Source/cmQTWrapUICommand.cxx: minor update for new custom + commands + +2003-06-05 14:40 martink + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmMakefile.cxx, cmTarget.cxx: + more crazt changes source files now must match with full path + +2003-06-05 14:37 martink + + * Source/cmITKWrapTclCommand.cxx: updated for new custom command + +2003-06-05 14:37 martink + + * Source/cmCreateTestSourceList.cxx: minor fix + +2003-06-04 19:04 martink + + * Source/cmMakefile.cxx: hopeful fix for backwards compat + +2003-06-04 18:50 martink + + * Source/cmLocalVisualStudio6Generator.cxx: minor fix + +2003-06-04 16:06 martink + + * Source/cmMakefile.cxx: tricky fix for backwards compat + +2003-06-04 14:25 hoffman + + * Tests/CustomCommand/: generator.cxx, wrapper.cxx: minor fixes + +2003-06-04 14:01 hoffman + + * Source/cmMakefile.cxx: better error reporting + +2003-06-04 14:00 hoffman + + * Source/cmMakefile.cxx: ENH: allow duplicate commands with the + same output to be reduced automatically to one command + +2003-06-04 13:55 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: bug fix for vs6 custom + commands + +2003-06-04 13:54 hoffman + + * Templates/UtilityHeader.dsptemplate: fix for new custom commands + +2003-06-04 13:42 hoffman + + * Source/: cmCustomCommand.cxx, cmCustomCommand.h, + cmLocalVisualStudio7Generator.cxx, cmMakefile.cxx: ENH: allow + duplicate commands with the same output to be reduced + automatically to one command + +2003-06-04 11:46 hoffman + + * Source/cmAddCustomCommandCommand.h: command should nto be + inherited + +2003-06-04 10:46 hoffman + + * Tests/Wrapping/CMakeLists.txt: minor fix + +2003-06-04 10:13 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: bug fix + +2003-06-04 09:02 hoffman + + * Tests/CustomCommand/: CMakeLists.txt, generator.c, generator.cxx, + wrapper.c, wrapper.cxx: fixes for HP + +2003-06-04 09:00 king + + * bootstrap: ERR: Cannot use iostream.h for strict C++ compiler + sanity check. Using a small class instead. + +2003-06-04 08:42 martink + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: compielr warnings + +2003-06-04 08:40 martink + + * Source/cmMakefile.cxx: compielr errors on como + +2003-06-03 14:55 martink + + * Source/: cmCustomCommand.cxx, cmLocalUnixMakefileGenerator.cxx, + cmMakefile.cxx, cmSourceGroup.cxx: warning fixes + +2003-06-03 14:45 hoffman + + * Modules/Dart.cmake: ENH: add all targets for dashboard build + types + +2003-06-03 10:47 martink + + * Source/: cmAddCustomCommandCommand.h: better docs + +2003-06-03 10:33 martink + + * Tests/CustomCommand/: CMakeLists.txt, doc1.tex, foo.in, + generator.c, wrapper.c, wrapped.h: new test + +2003-06-03 10:30 martink + + * Source/: CMakeLists.txt, cmAddCustomCommandCommand.cxx, + cmAddCustomCommandCommand.h, cmAddCustomTargetCommand.cxx, + cmAddCustomTargetCommand.h, cmCPluginAPI.cxx, cmCPluginAPI.h, + cmCustomCommand.cxx, cmCustomCommand.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h, cmMakefile.cxx, cmMakefile.h, + cmSetSourceFilesPropertiesCommand.cxx, cmSourceFile.h, + cmSourceGroup.cxx, cmSourceGroup.h, cmSystemTools.cxx, + cmSystemTools.h, cmTarget.h: yikes added new custom command + support + +2003-06-02 16:37 martink + + * Docs/: CMake04.rtf, CMake12p2.rtf, CMake14.rtf, CMake16.rtf: add + release docs to cvs + +2003-05-29 15:30 martink + + * Source/: cmGetSourceFilePropertyCommand.cxx, + cmGetTargetPropertyCommand.cxx: minor bug fix + +2003-05-29 11:14 andy + + * Source/CursesDialog/: ccmake.cxx, cmCursesMainForm.cxx, + cmCursesMainForm.h: ENH: On envocation of ccmake check if + directories are correct, but do not rerun configure + +2003-05-29 11:14 andy + + * Source/: cmake.cxx, cmake.h: ENH: Abstract pre configure check in + a separate method + +2003-05-29 09:34 hoffman + + * Source/: cmCTest.cxx, cmRegularExpression.cxx, + cmSetSourceFilesPropertiesCommand.cxx, cmTarget.cxx: ENH: remove + warnings from borland 6 compiler + +2003-05-28 15:52 andy + + * Source/CursesDialog/ccmake.cxx: ENH: Do not do configure first + time. This way ccmake loads fast. + +2003-05-28 09:21 hoffman + + * Source/: cmCTest.cxx, cmDynamicLoader.cxx, + cmGlobalVisualStudio71Generator.cxx, cmSystemTools.cxx, + CTest/cmCTestSubmit.cxx: Remove some borland 6 warnings + +2003-05-28 07:53 andy + + * Modules/FindQt.cmake: ENH: More locations + +2003-05-24 10:07 hoffman + + * Source/: cmAbstractFilesCommand.cxx, cmEndIfCommand.cxx, + cmGlobalGenerator.cxx, cmIfCommand.cxx, cmSourceFilesCommand.cxx, + cmSourceFilesRemoveCommand.cxx, cmTarget.cxx, + cmWrapExcludeFilesCommand.cxx: ENH: add stdlib.h for portability + to borland 6 + +2003-05-23 16:40 hoffman + + * Source/: cmCTest.cxx, cmMakefile.cxx, cmStringCommand.cxx, + cmake.cxx: ENH: add some includes for borland 6 + +2003-05-23 09:35 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: ENH: add LDFLAGS as + an initial value for all linker flags, good for -64 + +2003-05-22 10:56 andy + + * Source/CTest/Curl/: getdate.c, hostip.c, ldap.c: ERR: Attempt to + fix more Curl warnings + +2003-05-22 10:42 andy + + * Source/CTest/Curl/: connect.c, if2ip.c, url.c: ENH: Attempt to + remove cast warnings + +2003-05-19 13:41 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: fix for .def files and + nmake and spaces in the path + +2003-05-19 09:05 andy + + * Source/CTest/Curl/formdata.c: ERR: We should really copy the + address and not the value + +2003-05-16 16:33 king + + * Modules/: TestForAnsiForScope.cxx: ERR: Removed warning for + unused variable. + +2003-05-16 15:20 king + + * Source/: cmLocalUnixMakefileGenerator.cxx: BUG: When building a C + executable, we should add CMAKE_SHARED_LIBRARY_C_FLAGS, not + CMAKE_SHARED_LIBRARY_LINK_FLAGS. The latter is already added by + the link line procedure. + +2003-05-16 15:18 king + + * Modules/Platform/: AIX.cmake: BUG: Need -brtl when creating + shared libraries. Also added -bexpall (AIX equivalent to Linux's + -rdynamic) when building executables. + +2003-05-16 15:15 andy + + * Source/CTest/Curl/: CMakeLists.txt, formdata.c, getdate.c, + multi.c, url.c: ERR: Attempt to remove more warnings + +2003-05-15 15:15 king + + * Source/CursesDialog/cmCursesMainForm.cxx: BUG: Don't report an + error of output was generated but no error was set. Merging from + trunk to 1.6 branch. + +2003-05-15 15:05 king + + * Source/cmGlobalVisualStudio6Generator.cxx: Removed useless + lower-casing and improved error message. Merged from trunk to + 1.6 branch. + +2003-05-15 14:58 king + + * Modules/FindFLTK.cmake: Looking in another place (merge from + trunk). + +2003-05-15 14:54 king + + * Source/CursesDialog/cmCursesStringWidget.cxx: Attempt to fix SGI + ccmake problem (thank you Clint Miller). Merging from trunk to + 1.6 branch. + +2003-05-15 14:45 king + + * Source/cmMacroCommand.cxx: BUG: Merging fix from trunk into 1.6 + branch. Report a missing ENDMACRO. + +2003-05-15 09:35 andy + + * bootstrap: Several fixes before bootstrap is ready for + prime-time: 1. Add --version flag to display version of CMake 2. + Add comments to explain what is going on 3. Move CMAKE_ROOT_DIR + and CMAKE_BOOTSTRAP to cmConfigure.h 4. Forward CC, CXX, and MAKE + to cmake 5. Add more instructions + +2003-05-14 15:38 king + + * Utilities/Release/cmake_release.sh: Updated for 1.6.7 release. + +2003-05-14 14:14 king + + * Source/cmMakefile.h, Source/WXDialog/CMakeLists.txt, + Utilities/Release/cmake_release.sh: ENH: Updated version number + to 1.6.7 from 1.6.6. + +2003-05-14 12:10 king + + * Source/cmGlobalGenerator.cxx: BUG: Work-around for SGI MipsPro + bug where #error doesn't return an error to make. Merged onto + 1.6 branch from trunk. + +2003-05-14 12:06 king + + * Source/cmGlobalGenerator.cxx: BUG: Work-around for SGI MipsPro + bug where #error doesn't return an error to make. + +2003-05-14 10:34 king + + * Source/MFCDialog/: CMakeSetupDialog.cpp: ENH: Default generator + selection for VS 7.1 added. + +2003-05-14 09:27 andy + + * bootstrap: ENH: Add parallel build support, fix bug in verbose + and clean output when adding arguments + +2003-05-14 09:19 andy + + * bootstrap: ENH: Add better error reporting + +2003-05-14 08:45 king + + * Source/cmake.cxx: BUG: Need to remove the MAKEFLAGS when cmake + starts. If cmake is run from inside make, we don't want the + try-compiles to inherit the makeflags. + +2003-05-14 08:40 king + + * Source/cmake.cxx: ERR: Fixed string literal->char* conversion + warning. + +2003-05-14 08:17 andy + + * Source/CTest/Curl/CMakeLists.txt: ERR: Search for gethostbyname + which is the one needed + +2003-05-13 16:51 king + + * Source/cmake.cxx: BUG: Need to remove the MAKEFLAGS when cmake + starts. If cmake is run from inside make, we don't want the + try-compiles to inherit the makeflags. + +2003-05-13 16:10 king + + * Source/: cmGlobalGenerator.cxx, cmake.cxx: ENH: When the + initially configured generator is invalid, allow the user to + change the generator without deleting the cache by hand. + +2003-05-13 14:26 king + + * Source/: cmGlobalGenerator.cxx: ENH: Improved error message when + a wrong generator is selected. + +2003-05-13 14:05 king + + * Source/cmDynamicLoader.cxx: ERR: Removed unused parameter. + +2003-05-13 13:54 king + + * Source/cmSystemTools.cxx: ERR: Removed unused variable from + previous merge. + +2003-05-13 13:52 king + + * Source/: cmCacheManager.cxx, cmConfigureFileCommand.cxx, + cmListFileCache.cxx, cmLocalVisualStudio6Generator.cxx, + cmMakeDepend.cxx, cmOutputRequiredFilesCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h, cmUseMangledMesaCommand.cxx: + BUG: Using GetLineFromStream instead of getline due to buggy + stream implementations on some platforms. Merged from trunk into + branch 1.6. + +2003-05-13 13:26 hoffman + + * Modules/CMakeVS71FindMake.cmake, Source/CMakeLists.txt, + Source/cmGlobalVisualStudio71Generator.cxx, + Source/cmGlobalVisualStudio71Generator.h, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, Source/cmake.cxx: ENH: + Adding VS 7.1 generator to 1.6 branch. + +2003-05-13 12:04 king + + * Modules/CheckIncludeFiles.cmake, Modules/CheckSymbolExists.cmake, + Modules/FindCABLE.cmake, Modules/Platform/SunOS.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalVisualStudio6Generator.cxx, + Source/cmLocalVisualStudio7Generator.cxx, + Source/cmLocalVisualStudio7Generator.h, + Source/cmRemoveCommand.cxx, Source/cmStringCommand.h, + Source/cmaketest.cxx, Source/MFCDialog/CMakeSetupDialog.cpp, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: BUG: Merged + fixes from main tree into 1.6 branch. + +2003-05-13 11:42 hoffman + + * Source/cmGlobalVisualStudio71Generator.h: Change name of 71 + generator + +2003-05-13 09:50 king + + * Source/kwsys/SystemTools.cxx: ERR: Removed use of std::string != + operator due to bug in SGI compiler's library. + +2003-05-13 09:42 king + + * Source/kwsys/CMakeLists.txt: ERR: Test for ansi streams may need + to use iosfwd for test because some compilers provide an iostream + header that is old streams. + +2003-05-13 08:38 king + + * Source/kwsys/SystemTools.cxx: ERR: Added forward declarations of + system functions for como compiler. + +2003-05-13 08:27 andy + + * Source/CTest/Curl/hostip.c: ERR: Fix warning + +2003-05-12 17:15 andy + + * Source/CTest/Curl/: getdate.c, hostip.c, url.c: ERR: Attempt to + remove warnings + +2003-05-12 17:11 hoffman + + * Source/CTest/Curl/: content_encoding.c, file.c, http.c, telnet.c, + transfer.c, url.c: ERR: Remove a bunch of warnings on SGI + +2003-05-12 17:10 andy + + * Source/CTest/Curl/CMakeLists.txt: ERR: Do not link nsl if not + necessary + +2003-05-12 13:43 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, + kwsys_std_fstream.h.in, kwsys_std_iosfwd.h.in, + kwsys_std_iostream.h.in, kwsys_std_sstream.h.in: ENH: Added + KWSYS_FORCE_OLD_STREAMS option to force use of non-ansi stream + headers even if they are available. + +2003-05-12 13:33 king + + * Source/kwsys/: CMakeLists.txt, StandardIncludes.hxx.in: ENH: + Removed old (unused) StandardIncludes header. + +2003-05-12 13:27 king + + * Source/kwsys/kwsys_std_iosfwd.h.in: ERR: Need to move forward + declarations of non-ansi streams into std namespace when it is + available. + +2003-05-12 13:15 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, SystemTools.cxx, + SystemTools.hxx.in, kwsys_std.h.in, kwsys_std_fstream.h.in, + kwsys_std_iosfwd.h.in, kwsys_std_iostream.h.in, + kwsys_std_sstream.h.in: ENH: Added wrappers around the std stream + headers to make them look like ansi streams on all platforms. + +2003-05-09 15:47 hoffman + + * Modules/CMakeVS71FindMake.cmake: add find make program for 71 + +2003-05-09 09:32 hoffman + + * Modules/Platform/Windows-bcc32.cmake: BUG: remove typo from file + +2003-05-08 16:59 hoffman + + * Source/: CMakeLists.txt, cmGlobalVisualStudio71Generator.cxx, + cmGlobalVisualStudio71Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h, cmake.cxx: add support for vs 71 + +2003-05-08 16:52 king + + * Source/CMakeLists.txt: ERR: Fixed arguments to kwsys's ADD_TEST + call for msvc6. + +2003-05-08 16:48 king + + * Source/kwsys/CMakeLists.txt: BUG: Need to invert test result for + ansi string stream. + +2003-05-08 14:49 king + + * Source/CMakeLists.txt: ENH: Added kwsys test. + +2003-05-08 14:46 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, Directory.cxx, + Directory.hxx.in, RegularExpression.hxx.in, + StandardIncludes.hxx.in, kwsys_std.h.in: ENH: Reduced header + dependencies and cleaned up inclusion of standard headers. + +2003-05-08 14:17 king + + * Source/kwsys/: CMakeLists.txt, README.itk, README.txt, test1.cxx: + ENH: Setup for testing as a stand-alone project. + +2003-05-08 09:55 hoffman + + * Modules/Platform/Windows-bcc32.cmake: BUG: fix for borland win32 + exe builds + +2003-05-08 09:43 martink + + * Modules/Platform/: Windows-bcc32.cmake: BUG: remove -H flags as + they cause crashes on oldwww + +2003-05-07 10:31 andy + + * Source/CTest/Curl/connect.c: ERR: Remove warning + +2003-05-07 10:27 hoffman + + * Source/CTest/Curl/: connect.c, ftp.c, telnet.c, url.c: ERR: Fix + some HP specific warnings + +2003-05-06 16:03 andy + + * Source/CTest/Curl/ftp.c: ERR: More warnings + +2003-05-06 11:26 andy + + * Source/CTest/Curl/: getdate.c, getenv.c, getpass.c, netrc.c, + telnet.c, version.c: ERR: Remove warnings on icc + +2003-05-06 11:10 hoffman + + * Source/CTest/Curl/connect.c: ERR: Remove warning on Sun + +2003-05-06 10:30 andy + + * Source/CTest/Curl/ldap.c: ERR: Remove warning on Mac OSX + +2003-05-06 10:16 andy + + * Source/ctest.cxx: ERR: Remove warning + +2003-05-05 10:48 andy + + * Source/CTest/Curl/: dict.c, hostip.c, telnet.c, url.c, version.c: + ERR: Remove warnings on Borland + +2003-05-05 10:24 hoffman + + * Modules/Platform/Windows-bcc32.cmake: ENH: change the default + borland stack size + +2003-05-05 10:23 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: BUG: add linker flags + for modules + +2003-05-05 10:23 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: remove 64 bit + warnings + +2003-05-05 09:56 andy + + * Source/CTest/Curl/CMakeLists.txt: ERR: Search for getch instead + of printf. Looks like printf is special so it does not work. + getch does. Also when using -ansi, strdup is not defined. Make + sure to use _BSD_SOURCE on all sources that use strdup + +2003-05-05 09:55 andy + + * Source/CTest/Curl/CMake/CurlTests.c: ERR: Remove warning about + unused variable i + +2003-05-05 09:54 andy + + * Modules/CheckIncludeFiles.cmake: ERR: Remove warning for main + returning void. + +2003-05-05 08:42 andy + + * Source/: CMakeLists.txt, cmaketest.cxx, cmaketest.h.in: BUG: Fix + some dependencies for location of executables + +2003-05-05 08:42 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Add support for + make test even for fresh build of cmake + +2003-05-03 16:15 andy + + * Source/WXDialog/CMakeLists.txt: Fix location of test + +2003-05-03 12:07 andy + + * Source/CTest/Curl/hostip.c: ERR: Attempt to remove warning on + cygwin + +2003-05-02 14:05 martink + + * Modules/Dart.cmake: fixed andy sloppy code again + +2003-05-02 13:57 andy + + * Modules/Dart.cmake, Modules/DartConfiguration.tcl.in, + Source/CMakeLists.txt, Source/ctest.cxx: ENH: Fix some dart + issues. Now it works fine without dart. + +2003-05-02 13:56 andy + + * Source/cmake.cxx: ENH: New location of cmake binaries + +2003-05-02 13:54 andy + + * Source/cmaketest.cxx: ENH: New location of cmake + +2003-05-02 13:54 andy + + * Source/CTest/cmCTestSubmit.cxx: ENH: Be just a bit more verbose + +2003-05-02 11:29 andy + + * CMakeLists.txt, Source/CMakeLists.txt: ENH: Executables should go + to the bin directory + +2003-05-02 09:31 andy + + * Source/CTest/Curl/: base64.c, connect.c, cookie.c, formdata.c, + ftp.c, getdate.c, hash.c, hostip.c, http.c, http_chunks.c, + mprintf.c, sendf.c, setup.h, telnet.c, transfer.c, url.c: ERR: + Remove warnings on Visual Studio 7 + +2003-05-02 08:43 andy + + * Source/CTest/Curl/Testing/curltest.c: ERR: Fix comment to C style + comment + +2003-05-01 15:19 andy + + * Source/CTest/Curl/ftp.c: ERR: Remove warning on FreeBSD + +2003-05-01 14:18 andy + + * Source/CTest/Curl/Testing/curltest.c: ENH: Remove more warnings + +2003-05-01 14:17 andy + + * Source/CTest/Curl/CMakeLists.txt: BUG: Make dependency checking + work better + +2003-05-01 11:55 andy + + * Source/CTest/Curl/setup.h: ENH: Ignore some warnings on Visual + Studio + +2003-05-01 11:53 andy + + * Source/CTest/Curl/: getpass.c, netrc.c, telnet.c, transfer.c, + Testing/curltest.c: ERR: Remove warnings + +2003-05-01 11:32 andy + + * Source/CTest/Curl/: mprintf.c, timeval.c, getdate.c: ERR: Remove + warnings + +2003-05-01 11:29 andy + + * Source/CTest/Curl/ldap.c: ERR: Remove warnings + +2003-05-01 11:25 andy + + * Source/CTest/Curl/: base64.c, connect.c, cookie.c, escape.c, + ftp.c, http.c, url.c: ERR: Remove warnings + +2003-05-01 11:25 andy + + * Source/CTest/Curl/CMakeLists.txt: ENH: Only compile memdebug when + CURL_MALLOC_DEBUG is on + +2003-05-01 08:08 andy + + * Source/CTest/Curl/: connect.c, getinfo.c, sendf.c, ssluse.c, + Testing/curltest.c: ERR: Remove some curl warnings + +2003-05-01 07:56 andy + + * Source/CTest/cmCTestSubmit.cxx: ERR: Remove warnings + +2003-04-30 14:59 andy + + * Source/CTest/Curl/CMakeLists.txt: ERR: Make OpenSSL optional + until pkg-config works + +2003-04-30 07:32 andy + + * Source/cmake.h: ERR: Run should return a value + +2003-04-29 17:23 andy + + * Source/: CMakeLists.txt, CTest/CMakeLists.txt: ENH: Make Curl + code to be built by default + +2003-04-29 10:07 andy + + * Source/cmakemain.cxx: ENH: Add argument -N which prevents CMake + from doing configure and generate. This should be improved at + some point that it will do all the error checking such as whether + the CMakeLists.txt exists etc. It should essentially load cache, + go through cmake lists, but not modify cache and other files in + the build directory. The second feature is ability to display + cache values. You run with argument -L (or -LH /-LA / -LAH) and + it will display all nonadvanced cached variables (-L) / all + cached variable (-LA) / and cached variables with corresponding + help string (-LH -LAH). + +2003-04-29 10:04 andy + + * Source/: cmake.cxx, cmake.h: ENH: Add additional optional + argument to Run. If it is true, it will only set paths and load + cache. It will not do configure and gfenerate + +2003-04-29 10:02 andy + + * Source/: cmCacheManager.cxx, cmCacheManager.h: ENH: Add method to + convert from CacheEntryType to string + +2003-04-28 21:08 andy + + * Source/CTest/Curl/: CMakeLists.txt, + CMake/CheckSymbolExists.cmake: BUG: Need to use the new + CheckSymbolExists because the one in CMake 1.6 can be broken + +2003-04-28 13:16 martink + + * Source/cmMacroCommand.cxx: better error reporting + +2003-04-25 15:16 andy + + * Source/: CTest/CMakeLists.txt, CMakeLists.txt: ENH: Enable CTest + to be build as a part of CMake + +2003-04-25 14:52 andy + + * Source/ctest.cxx: ENH: Rename option -D to -C because we will use + -D later + +2003-04-25 14:51 andy + + * Source/cmCommands.cxx: ERR: Set source files properties is needed + for Curl build + +2003-04-25 14:50 andy + + * Source/CTest/cmCTestSubmit.cxx: ERR: Remove warning because SCP + not implemented + +2003-04-25 14:49 andy + + * Source/CTest/Curl/CMakeLists.txt: ENH: Do not build tests by + default + +2003-04-24 13:25 berk + + * Source/: cmSystemTools.cxx: minor fix + +2003-04-23 17:24 jjomier + + * Source/kwsys/Directory.hxx.in: FIX: warnings, disabling 4786 + +2003-04-23 13:58 martink + + * Source/CTest/CMakeLists.txt: fix some incldue paths + +2003-04-22 16:10 king + + * Modules/FindCABLE.cmake: ENH: Updated search paths to newest + values from Cable. + +2003-04-22 14:32 andy + + * bootstrap: ENH: Add SGI -LANG:std support + +2003-04-18 10:01 andy + + * Source/cmCTest.cxx: ENH: Cleanup + +2003-04-18 10:00 andy + + * Source/cmCTest.cxx: Even better error detection on AIX + +2003-04-18 09:48 andy + + * Source/cmCTest.cxx: Better AIX detection + +2003-04-17 15:20 andy + + * Source/cmCTest.cxx: This is really an error + +2003-04-17 13:13 andy + + * bootstrap: Support LDFLAGS + +2003-04-17 13:13 andy + + * Source/cmCTest.cxx: ENH: Add AIX warerr + +2003-04-17 11:59 martink + + * Source/cmLocalCodeWarriorGenerator.cxx: warning fix hopefully + +2003-04-17 11:17 andy + + * DartConfig.cmake: More attempt to make continuous email work + +2003-04-17 08:47 martink + + * Source/cmDynamicLoader.cxx: fix one warning + +2003-04-17 08:23 andy + + * DartConfig.cmake: Attempt to enable sending of e-mails from + continuous + +2003-04-17 08:03 hoffman + + * Source/cmCommands.cxx: BUG: fix compile error on windows because + of windows.h + +2003-04-17 08:02 andy + + * CMakeLists.txt, bootstrap, configure, configure.in: BUG: Rename + Bootstrap directory to Bootstrap.cmk, so that on platforms such + as Windows and Mac OSX it will break during in-source build + +2003-04-16 17:06 andy + + * DartConfig.cmake: ENH: cleanup + +2003-04-16 16:20 martink + + * Source/cmDynamicLoader.cxx: fix one warning + +2003-04-16 16:17 martink + + * Source/cmCommands.cxx: streamline bootstrap + +2003-04-16 15:40 martink + + * Source/cmake.cxx: minor fix + +2003-04-16 14:47 martink + + * Source/: CMakeLists.txt, cmLocalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.h, cmake.cxx: add COdeWarrior back in + for testing + +2003-04-16 14:13 andy + + * Source/cmDynamicLoader.cxx: Attempt to make unloading work on OSX + +2003-04-16 13:41 andy + + * Source/cmCTest.cxx: Fix update output + +2003-04-16 13:33 hoffman + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommandOneConfig/CMakeLists.txt: ENH: add a double try + compile to fix crazy make on hp + +2003-04-11 18:05 kentwilliams + + * Source/kwsys/SystemTools.cxx: took out an orphan endif + +2003-04-11 16:22 kentwilliams + + * Source/kwsys/: SystemTools.hxx.in, SystemTools.cxx: remove + redundant function and eliminate need for strcasecmp + +2003-04-11 13:36 king + + * Source/kwsys/README.itk: ENH: Added documentation for ITK. + +2003-04-11 07:27 lorensen + + * Source/kwsys/SystemTools.cxx: ERR: Borland fix for stricmp. ERR: + removed itk dependencies. + +2003-04-10 13:41 kentwilliams + + * Source/kwsys/: SystemTools.cxx, SystemTools.hxx.in: Removed + platform-specific functions from Code/IO/itkIOCommon, fixed code + to use kwsys/SystemTools + +2003-04-10 09:07 andy + + * Source/cmCTest.cxx: Do safe division instead of fixing result + +2003-04-10 09:03 king + + * Source/kwsys/SystemTools.cxx: ERR: Removed unused parameter and + truncated debug symbol warnings. + +2003-04-09 08:08 andy + + * Source/cmCTest.cxx: Attempt to fix FIXNUM + +2003-04-08 13:14 king + + * Source/kwsys/SystemTools.cxx: ERR: Fixed typo. + cmRegularExpression -> RegularExpression. + +2003-04-08 13:10 king + + * Source/kwsys/: CMakeLists.txt, Configure.hxx.in, Directory.cxx, + Directory.hxx.in, RegularExpression.cxx, + RegularExpression.hxx.in, StandardIncludes.hxx.in, + SystemTools.cxx, SystemTools.hxx.in: ENH: Added kwsys library for + platform-independent system tools. + +2003-04-08 10:57 andy + + * Source/: cmCTest.cxx, cmCTest.h: Remove nan and inf, use + iostreams to set precision, fix file name, and remove bogus files + +2003-04-08 07:16 andy + + * Source/cmCTest.cxx: Remove push_back on string. Why can't STL be + standard? + +2003-04-07 18:21 andy + + * Source/: cmCTest.cxx, cmCTest.h: Some cov improvements and better + esc + +2003-04-07 12:20 andy + + * Source/cmaketest.cxx: We should really just call make and not + make all + +2003-04-04 10:56 king + + * Source/cmSetCommand.h: ENH: Added CACHE entry types to + documentation string. + +2003-04-04 10:05 king + + * Modules/FindFLTK.cmake: ENH: Added /usr/local/lib/fltk + +2003-04-03 18:40 andy + + * bootstrap: Better support for spaces in paths + +2003-04-03 08:44 andy + + * Source/cmSystemTools.cxx: Try differentiating extensions + +2003-04-02 22:48 king + + * Source/: cmake.cxx, cmake.h, cmakemain.cxx, + CursesDialog/ccmake.cxx: ENH: Improved documentation. Also + modified behavior of "cmake" to not configure a project in the + current directory unless . is given. + +2003-04-02 22:44 king + + * Source/cmDocumentation.cxx: ENH: Running with zero arguments now + produces usage. + +2003-04-02 09:19 andy + + * Source/: cmCTest.cxx, cmCTest.h: Url escape password + +2003-04-02 09:19 andy + + * Source/CTest/cmCTestSubmit.cxx: On verbose, be more verbose + +2003-04-02 09:01 andy + + * Tests/Wrapping/qtwrappingmain.cxx: If display is not set, do not + attempt to run application + +2003-04-02 08:45 andy + + * Modules/FindQt.cmake: Add QT on debian + +2003-04-01 15:31 andy + + * Source/cmCTest.cxx: Fix cov. problems, ignore nonascii char. + Propagate verbosity + +2003-04-01 15:30 andy + + * Source/CTest/: cmCTestSubmit.cxx, cmCTestSubmit.h: Controle + verbosity + +2003-04-01 13:29 king + + * Source/cmSystemTools.cxx: BUG: strlen(buffer) from getline may be + 2 less than gcount on windows because both the CR and LF + characters may be removed. + +2003-03-28 13:43 andy + + * Source/CTest/Curl/CMakeLists.txt: Stop using + check_function_exists. Use check_symbol_exists + +2003-03-28 13:42 andy + + * Modules/CheckSymbolExists.cmake: New design of CheckSymbolExists + pretty much replaces all other ones. + + For example: + + CHECK_HEADER_EXISTS("type.h" HAVE_TYPE_H) is: + CHECK_SYMBOL_EXISTS(main "type.h" HAVE_TYPE_H) + + CHECK_LIBRARY_EXISTS("nsl" gethostname HAVE_LIBNSL) would be + SET(CMAKE_REQUIRED_LIBRARIES "nsl") + CHECK_SYMBOL_EXISTS(gethostname "netdb.h" HAVE_LIBNSL) + + ... + +2003-03-28 13:35 andy + + * Source/CTest/Curl/strequal.c: Fix windows problem in curl + +2003-03-27 15:52 andy + + * Source/: cmLocalVisualStudio6Generator.cxx, cmSystemTools.cxx, + cmUseMangledMesaCommand.cxx: Remove warnings + +2003-03-27 15:29 andy + + * bootstrap: Initial import of bootstrap for CMake + +2003-03-27 13:03 hoffman + + * Modules/Platform/SunOS.cmake: Fix gnu c and Sun CC mix + +2003-03-27 12:49 andy + + * CMakeLists.txt: Some more preparations for new bootstrap system + +2003-03-27 12:24 andy + + * Source/: cmCacheManager.cxx, cmConfigureFileCommand.cxx, + cmListFileCache.cxx, cmLocalVisualStudio6Generator.cxx, + cmMakeDepend.cxx, cmOutputRequiredFilesCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h, cmUseMangledMesaCommand.cxx: + Implement GetLineFromStream that actually works and use it + instead of getline + +2003-03-26 10:45 andy + + * Source/cmStandardIncludes.h, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: Remove bogus flags + from cmStandardIncludes and make complex test pass + +2003-03-21 11:33 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: BUG: fix REMOVE test + +2003-03-21 11:24 hoffman + + * Source/cmRemoveCommand.cxx: BUG: fix broken command + +2003-03-20 11:27 andy + + * Source/cmCTest.cxx: Fix problem with network paths + +2003-03-20 10:12 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Support cmake in + directory with space + +2003-03-20 09:47 andy + + * Source/cmCTest.cxx: BUG: used wrong counters + +2003-03-19 18:28 andy + + * Source/cmCTest.cxx: More regex + +2003-03-19 16:35 andy + + * Source/: cmCTest.cxx, cmCTest.h: Add start + +2003-03-19 16:25 andy + + * Source/cmCTest.cxx: Move files to different location and fix time + +2003-03-19 16:11 andy + + * Source/: cmCTest.cxx, cmCTest.h: Fix for visual studio + +2003-03-19 10:16 king + + * Source/cmStringCommand.h: BUG: Command should be inherited. + +2003-03-18 13:40 king + + * Source/CTest/Curl/: CMakeLists.txt, CMake/CurlTests.c: BUG: Fixed + test for gethostbyname_r and gethostbyaddr_r for ansi support. + +2003-03-18 11:47 king + + * Utilities/Release/: config_Linux: ENH: Updated to do release + build on ringworld. Needed for old glibc support. + +2003-03-17 14:29 andy + + * Tests/Simple/: CMakeLists.txt, simple.cxx, simpleCLib.c, + simpleWe.cpp: Improve test + +2003-03-17 13:26 andy + + * Tests/Simple/: CMakeLists.txt, simpleCLib.c: Add testing for when + C sources are compiled with C++ compiler + +2003-03-17 11:21 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: If there was no error, + do not say that there was one + +2003-03-17 10:00 king + + * Modules/FindGTK.cmake: BUG: Fixed ENDIF ordering. + +2003-03-17 09:57 king + + * Modules/CheckSymbolExists.cmake: BUG: Fixed syntax of file + generated for test. + +2003-03-17 09:29 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: fix crash with force cxx + type + +2003-03-17 09:15 hoffman + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: force cxx compiler for cxx + files + +2003-03-17 08:25 andy + + * Tests/SystemInformation/: CMakeLists.txt, DumpInformation.cxx, + DumpInformation.h.in: Display Cache and all variables + +2003-03-16 20:33 andy + + * Modules/CheckSymbolExists.cmake: Prevent CMake from putting ; in + the file + +2003-03-16 20:25 andy + + * Modules/FindGTK.cmake: More variables advanced + +2003-03-16 20:23 andy + + * Modules/FindGTK.cmake: Add gthread library + +2003-03-15 10:04 hoffman + + * Source/cmTarget.cxx: BUG: HasCXX did not use GetFileFormat and + was broken + +2003-03-14 15:44 hoffman + + * Modules/FindGTK.cmake: BUG: bad if statement order + +2003-03-14 15:06 hoffman + + * Source/cmGlobalVisualStudio6Generator.cxx: better error message + +2003-03-14 12:00 hoffman + + * Modules/Platform/Windows-cl.cmake: force c++ for c++ files + +2003-03-14 12:00 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx: use c flags with c and + not cxx flags, also force c++ for c files + +2003-03-14 11:59 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: Force c++ builds for + c++ files + +2003-03-14 11:58 hoffman + + * Source/cmMakefile.cxx: make sure M is after m + +2003-03-14 10:54 king + + * Source/cmMakefile.cxx: BUG: c extension must come before C. + +2003-03-14 10:38 king + + * Source/cmMakefile.cxx: BUG: c must precede C. + +2003-03-13 16:31 king + + * Utilities/Release/config_Linux: Merging from 1.6 again. + +2003-03-13 16:30 king + + * Utilities/Release/config_Linux: BUG: Need to link statically + against curses. + +2003-03-13 15:59 king + + * Utilities/Release/: cmake_release.sh, config_Linux: Merging from + 1.6 release branch. + +2003-03-13 15:58 king + + * Utilities/Release/cmake_release.sh: BUG: Need to checkout + ReleaseUtilities with same tag. + +2003-03-13 15:47 king + + * Utilities/Release/: cmake_release.sh: ENH: Updated for 1.6.6 + release. + +2003-03-13 15:46 king + + * Modules/Platform/: SunOS.cmake: BUG: Don't use -nostdlib option + to link shared libraries. Just use gcc -shared, even for C++ + libraries. + +2003-03-13 13:28 king + + * Source/cmMakefile.cxx: BUG: Added missing cc extension for Source + Files group. + +2003-03-13 13:03 king + + * Source/cmMakefile.cxx: BUG: Don't duplicate SUBDIRS. + +2003-03-13 13:01 king + + * Source/cmMakefile.cxx: ENH: Added header file extensions. + +2003-03-13 12:59 martink + + * Source/cmMakefile.cxx: allow the same subdir to be added twice + +2003-03-13 12:48 andy + + * Source/cmMakefile.cxx: Fix regular expressions + +2003-03-13 12:24 andy + + * Source/: cmMakefile.cxx, cmSystemTools.cxx: Synchronize extension + lists + +2003-03-13 11:53 king + + * Source/CursesDialog/form/fld_attr.c: BUG: Fixed forms for HP. + +2003-03-13 11:51 king + + * Modules/TestForSTDNamespace.cmake: BUG: Don't repeat test. + +2003-03-13 11:49 king + + * Modules/CheckTypeSize.cmake: BUG: Don't test type size more than + once. + +2003-03-13 11:48 king + + * Source/cmSystemTools.cxx: BUG: FindLibrary should not accept a + directory even if the exact specified name exists. + +2003-03-13 11:46 king + + * Source/cmake.cxx: BUG: Fixed crash when + CMAKE_BACKWARDS_COMPATIBILITY is deleted. + +2003-03-13 11:34 king + + * Source/MFCDialog/CMakeSetup.rc: BUG: Fixed tab ordering in + dialog. + +2003-03-13 11:33 king + + * Source/: cmMakefile.h, WXDialog/CMakeLists.txt: ENH: Updated + version for 1.6.6 release. + +2003-03-13 11:31 king + + * Utilities/Release/config_Linux: ERR: Need to do shared libc link + with static C++ library to have safe dl loading on linux. + +2003-03-13 08:44 king + + * Source/cmSystemTools.cxx: BUG: FindLibrary should not accept a + directory even if the exact specified name exists. + +2003-03-11 17:35 hoffman + + * Modules/TestForSTDNamespace.cmake: BUG: fix test not to run every + time + +2003-03-11 15:25 hoffman + + * Source/cmDynamicLoader.cxx, Source/CTest/CMakeLists.txt, + Source/CursesDialog/form/fld_attr.c, + Tests/LoadCommand/CMakeLists.txt, + Tests/LoadCommandOneConfig/CMakeLists.txt: BUG: fixes for hp + +2003-03-09 18:16 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: Remove warnings + +2003-03-07 15:30 andy + + * Source/cmCTest.cxx: More XML + +2003-03-07 11:53 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: Remove warning + +2003-03-07 11:45 andy + + * Source/cmCTest.cxx: Fix xml + +2003-03-07 11:27 andy + + * Source/CursesDialog/: cmCursesMainForm.cxx, cmCursesMainForm.h: + Add searching of variables + +2003-03-06 15:32 andy + + * Modules/Dart.cmake: On borland and cygwin remove .EXE + +2003-03-06 12:31 andy + + * Source/cmGetCMakePropertyCommand.cxx: Remove warning + +2003-03-06 11:20 andy + + * Source/cmCommands.cxx, Source/cmGetCMakePropertyCommand.cxx, + Source/cmGetCMakePropertyCommand.h, + Tests/SystemInformation/CMakeLists.txt: Add command for accessing + cmake properties. At this point the only properties are VARIABLES + and CACHE_VARIABLES. Also add test for this feature + +2003-03-06 11:19 andy + + * Source/: cmMakefile.cxx, cmMakefile.h: Add method which returns a + list of all variables + +2003-03-06 11:18 andy + + * Source/cmCacheManager.h: Cache manager should be able to take no + arguments + +2003-03-06 10:32 king + + * Modules/CheckTypeSize.cmake: BUG: Should test HAVE_ + before repeating test, not just whether is set. + +2003-03-05 17:08 andy + + * Source/cmCTest.cxx: oops... Forgot the main step + +2003-03-03 13:58 andy + + * Modules/Dart.cmake: Add Update and configure steps where missing + +2003-03-03 13:57 andy + + * Source/cmCTest.cxx: Fix typo + +2003-03-03 09:32 andy + + * Modules/Dart.cmake: Start cleaning global namespace + +2003-03-03 09:29 andy + + * CMakeLists.txt: BUG: Should be use the host CMake's dart file + +2003-02-28 13:00 andy + + * Source/cmCTest.cxx: Ifdef code that is missing + +2003-02-28 12:42 andy + + * Modules/CheckSymbolExists.cmake, Source/cmCTest.cxx: Fix update + date and cleanup + +2003-02-28 11:31 andy + + * Source/cmCTest.cxx: Add configure step + +2003-02-27 14:48 andy + + * Modules/Dart.cmake: On windows but not on borland, look at + cmake_build_tool instead of compiler to determine build name. + Otherwise they will all be cl + +2003-02-27 11:54 andy + + * Modules/Dart.cmake: Use more condense buildname. If this works + fine we can make cmBuildName command deprecated + +2003-02-27 10:53 king + + * Source/WXDialog/cmWXMainFrame.cxx: Remove warning about shadowing + variable (merging andy's change to head) + +2003-02-25 12:36 andy + + * Source/WXDialog/cmWXMainFrame.cxx: Remove warning about shadowing + variable + +2003-02-24 11:02 king + + * Source/cmake.cxx: BUG: Fixed crash when + CMAKE_BACKWARDS_COMPATIBILITY is deleted between configures. + +2003-02-21 15:52 king + + * Source/MFCDialog/CMakeSetup.rc: BUG: Fixed tab ordering of gui + components. + +2003-02-20 17:38 andy + + * Modules/Dart.cmake: Use simple defaults if DartConfig does not + exist. This way you can use dart to build any project + +2003-02-20 10:46 king + + * Modules/CMakeVS6FindMake.cmake: BUG: Fix registry entry name. + +2003-02-20 10:44 hoffman + + * Modules/CMakeVS6FindMake.cmake: BUG: look for msdev in the right + place + +2003-02-20 09:40 martink + + * Source/MFCDialog/CMakeSetupDialog.cpp: better default generator + choice + +2003-02-20 09:40 king + + * Utilities/Release/cmake_release.sh: ENH: Updated for 1.6.5 + release. + +2003-02-20 08:55 king + + * Source/cmLocalUnixMakefileGenerator.cxx: fix for correct path + style in depend file + +2003-02-20 08:52 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: fix for correct path + style in depend file + +2003-02-20 08:47 king + + * Modules/TestForANSIForScope.cmake: BUG: Don't test every time for + "for" scope. + +2003-02-20 08:42 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Fix problem with + lib in the name of library. If there was lib in the name of + library, then on Windows (where there is not lib prefix), cmake + split the name wrongly. This only manifested when full path to + the library is specified. + +2003-02-20 08:41 hoffman + + * Modules/TestForANSIForScope.cmake: remove commented code + +2003-02-20 08:38 king + + * Modules/CheckSymbolExists.cmake: BUG: Fixed return 0 through void + type. + +2003-02-20 08:37 king + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: ENH: Removed creation of extra + CMAKE_C_COMPILER_FULLPATH and CMAKE_CXX_COMPILER_FULLPATH cache + entries. + +2003-02-20 08:34 king + + * Source/cmGlobalVisualStudio7Generator.cxx: BUG: Added missing + paren to generated file. + +2003-02-20 08:32 king + + * Source/cmaketest.cxx: BUG: Fix lower-casing of compiler for + win98. + +2003-02-20 08:30 king + + * Source/cmMakefile.h, Source/WXDialog/CMakeLists.txt, + Utilities/Release/cmake_release.sh: ENH: Updated for version + 1.6.5. + +2003-02-20 08:28 king + + * Source/cmFindPackageCommand.h: BUG: This command must be + inherited. + +2003-02-20 08:23 king + + * Modules/FindFLTK.cmake: BUG: Removed reference to CMake 1.4 + compatability variable. + +2003-02-20 07:55 king + + * Source/cmDumpDocumentation.cxx: ERR: Added missing return. + +2003-02-19 17:37 king + + * Source/CMakeLists.txt: ENH: Using new --all-for-coverage of + DumpDocumentation to improve coverage. + +2003-02-19 17:36 king + + * Source/cmDumpDocumentation.cxx: ENH: Added option to dump all + documentation (coverage). + +2003-02-19 17:10 king + + * Modules/FindFLTK.cmake: BUG: Removed use of cmake 1.4 + compatability variable. + +2003-02-19 12:54 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Fix problem with + lib in the name of library. If there was lib in the name of + library, then on Windows (where there is not lib prefix), cmake + split the name wrongly. This only manifested when full path to + the library is specified. + +2003-02-19 08:52 king + + * Source/cmDocumentation.cxx: ERR: Fixed signed/unsigned warning. + +2003-02-18 20:54 king + + * Source/cmDumpDocumentation.cxx: ENH: Updated to use + cmDocumentation class. + +2003-02-18 20:42 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h, cmakemain.cxx, + CursesDialog/ccmake.cxx: ENH: Re-implemented document generation + class to be more organized and more robust. + +2003-02-18 20:40 king + + * Source/cmAddCustomCommandCommand.h: Fix to documentation + formatting: removed extra newline. + +2003-02-18 16:24 hoffman + + * Source/cmGlobalVisualStudio7Generator.cxx: ENH: fix for vs 7 + beta1 + +2003-02-17 15:47 king + + * Source/cmFindPackageCommand.h: BUG: This command must be + inherited. + +2003-02-17 10:30 andy + + * Modules/CheckSymbolExists.cmake: Fix return value problem + +2003-02-17 09:59 andy + + * Source/CursesDialog/cmCursesStringWidget.cxx: Attempt to fix SGI + ccmake problem (thank you Clint Miller) + +2003-02-17 09:56 andy + + * Source/cmDocumentation.cxx: Minor documentation fixes + +2003-02-17 09:42 king + + * Source/cmakemain.cxx: ENH: Added executable-specific command-line + options. + +2003-02-17 09:42 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h: ENH: Added + header before list of commands in generated docs. Made options + more intuitive. + +2003-02-16 11:57 king + + * Source/cmDocumentation.cxx: ERR: Use of stream format flags is + hard to make portable. Manually implementing justification. + +2003-02-15 22:36 king + + * Source/cmDocumentation.cxx: ERR: Use of std::ios::fmtflags is not + portable to older compilers. + +2003-02-14 18:47 king + + * Source/: cmAbstractFilesCommand.h, cmAddCustomCommandCommand.h, + cmAddCustomTargetCommand.h, cmAddDefinitionsCommand.h, + cmAddDependenciesCommand.h, cmAddExecutableCommand.h, + cmAddLibraryCommand.h, cmAddTestCommand.h, + cmAuxSourceDirectoryCommand.h, cmBuildCommand.h, + cmBuildNameCommand.h, cmConfigureFileCommand.h, + cmCreateTestSourceList.h, cmElseCommand.h, + cmEnableTestingCommand.h, cmEndForEachCommand.h, + cmEndIfCommand.h, cmExecProgramCommand.h, + cmExportLibraryDependencies.h, cmFLTKWrapUICommand.h, + cmFindFileCommand.h, cmFindLibraryCommand.h, + cmFindPackageCommand.h, cmFindPathCommand.h, + cmFindProgramCommand.h, cmForEachCommand.h, + cmGetFilenameComponentCommand.h, + cmGetSourceFilePropertyCommand.h, cmGetTargetPropertyCommand.h, + cmITKWrapTclCommand.h, cmIfCommand.h, cmIncludeCommand.h, + cmIncludeDirectoryCommand.h, cmIncludeExternalMSProjectCommand.h, + cmIncludeRegularExpressionCommand.h, cmInstallFilesCommand.h, + cmInstallProgramsCommand.h, cmInstallTargetsCommand.h, + cmLinkDirectoriesCommand.h, cmLinkLibrariesCommand.h, + cmLoadCacheCommand.h, cmLoadCommandCommand.h, cmMacroCommand.h, + cmMakeDirectoryCommand.h, cmMarkAsAdvancedCommand.h, + cmMessageCommand.h, cmOptionCommand.h, + cmOutputRequiredFilesCommand.h, cmProjectCommand.h, + cmQTWrapCPPCommand.h, cmQTWrapUICommand.h, cmRemoveCommand.h, + cmSeparateArgumentsCommand.h, cmSetCommand.h, + cmSetSourceFilesPropertiesCommand.h, + cmSetTargetPropertiesCommand.h, cmSiteNameCommand.h, + cmSourceFilesCommand.h, cmSourceFilesRemoveCommand.h, + cmSourceGroupCommand.h, cmStringCommand.h, cmSubdirCommand.h, + cmSubdirDependsCommand.h, cmTargetLinkLibrariesCommand.h, + cmTryCompileCommand.h, cmTryRunCommand.h, + cmUseMangledMesaCommand.h, cmUtilitySourceCommand.h, + cmVTKMakeInstantiatorCommand.h, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.h, cmVTKWrapTclCommand.h, + cmVariableRequiresCommand.h, cmWrapExcludeFilesCommand.h, + cmWriteFileCommand.h: ENH: Cleaned up documentation and formatted + it for use by cmDocumentation. + +2003-02-14 16:16 king + + * Source/cmDocumentation.cxx: ENH: Improved formatting of + plain-text help to add a blank line before the beginning of a + preformatted section. + +2003-02-14 13:28 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h: ENH: Further + improved formatting. HTML/man/help now all have a consistent + appearance. + +2003-02-14 13:06 king + + * Source/: cmDocumentation.cxx, cmDocumentation.h: ENH: Improved + formatting of documentation. + +2003-02-14 11:13 martink + + * Source/cmaketest.cxx: Lowercase has a bad signiture, so I have to + live with it + +2003-02-14 10:56 king + + * Source/cmSystemTools.cxx: ERR: Added missing include for msvc. + +2003-02-14 10:53 king + + * Source/: CMakeLists.txt, Makefile.in, cmDocumentation.cxx, + cmDocumentation.h, cmStandardIncludes.h, cmSystemTools.cxx, + cmSystemTools.h, cmake.cxx, cmake.h, cmakemain.cxx, + CursesDialog/ccmake.cxx: ENH: Added cmDocumentation class to + generate various forms of documentation. Each executable will be + able to generate its own documentation. + +2003-02-14 10:40 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: ENH: move full path compiler to + internal and not just advanced + +2003-02-14 09:54 hoffman + + * Modules/TestForANSIForScope.cmake, Source/cmCacheManager.cxx, + Source/cmConfigureFileCommand.cxx, + Source/cmConfigureFileCommand.h, Source/cmIncludeCommand.h, + Source/cmLocalUnixMakefileGenerator.cxx, Source/cmMakefile.h, + Source/cmMarkAsAdvancedCommand.h, + Source/cmUseMangledMesaCommand.cxx, + Source/cmVariableRequiresCommand.cxx, + Source/cmVariableRequiresCommand.h: spelling errors + +2003-02-14 09:25 hoffman + + * CMake.rtf: fix spelling errors + +2003-02-13 21:57 king + + * CMakeLists.txt, configure, configure.in, Source/CMakeLists.txt, + Source/cmConfigure.cmake.h.in, Source/cmConfigure.h.in, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmStandardIncludes.h, Source/WXDialog/CMakeLists.txt: ENH: + Centralized setting of CMake version number to top-level CMake + listfile. + +2003-02-13 12:03 king + + * Utilities/Release/cmake_release.sh: ENH: Merged updates for 1.6.4 + release. + +2003-02-13 11:57 king + + * Modules/FindJNI.cmake: BUG: Fix find of JNI on Mac OSX 10.2. + +2003-02-13 11:54 king + + * Source/cmMakefile.h, Source/WXDialog/CMakeLists.txt, + Utilities/Release/cmake_release.sh: ENH: Updated for 1.6.4 + release. + +2003-02-13 11:52 king + + * Modules/UseVTKConfig40.cmake: BUG: Copy of _LIB_DEPENDS variables + needs to be double-quoted. + +2003-02-13 11:50 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix for spaces in + paths in library path + +2003-02-13 11:47 king + + * Source/cmFindLibraryCommand.cxx: BUG: Use + cmSystemTools::IsNOTFOUND. + +2003-02-12 13:43 andy + + * Source/: cmCTest.cxx, cmakemain.cxx: Try to fix update + +2003-02-12 09:26 andy + + * Source/cmCTest.cxx: Write individual too + +2003-02-11 14:49 andy + + * Modules/FindJNI.cmake: Ok, now it finds JNI on Mac OSX 10.2 + +2003-02-11 13:56 andy + + * Modules/FindJNI.cmake: Fix typo + +2003-02-11 13:53 andy + + * Modules/FindJNI.cmake: Add missing location + +2003-02-11 13:37 andy + + * Modules/FindJNI.cmake: Improve searching for java files on OSX + +2003-02-11 13:34 andy + + * Source/cmSetTargetPropertiesCommand.h: Fix comment + +2003-02-11 09:50 king + + * Modules/: FindMangledMesa.cmake, FindOSMesa.cmake: Moving this + very specific module to VTK. + +2003-02-11 09:19 andy + + * Source/: cmCTest.cxx, cmCTest.h: Fix cont and remove comments + +2003-02-10 23:19 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx: Start working on cont + +2003-02-10 22:00 hoffman + + * Tests/TryCompile/CMakeLists.txt: ENH: add more testing for ansi + for scopes + +2003-02-10 21:56 hoffman + + * Modules/TestForANSIForScope.cmake: clean up check for for scope + test + +2003-02-10 21:52 andy + + * Source/: cmCTest.cxx, cmCTest.h, ctest.cxx: Fix date issues with + different models + +2003-02-10 16:20 hoffman + + * Source/CMakeLists.txt, Tests/TryCompile/CMakeLists.txt: ENH: add + a new test for TRY_COMPILE + +2003-02-10 13:19 hoffman + + * Tests/TryCompile/: CMakeLists.txt, fail.c, pass.c: ENH: add a new + test to test try compile + +2003-02-10 11:08 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Running "make test" + can now have ARGS specified on the command line. These ARGS are + passed to ctest. + +2003-02-09 16:11 king + + * Utilities/Release/cmake_release.sh: ERR: Removed extra &&. + +2003-02-08 10:24 hoffman + + * Source/: cmSystemTools.cxx, cmSystemTools.h: Fix for include + optional + +2003-02-08 10:23 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix for spaces in + paths in library path + +2003-02-07 16:29 king + + * Modules/UseVTKConfig40.cmake: BUG: Copying _LIB_DEPENDS variables + requires double-quoted argument. + +2003-02-07 14:04 king + + * Source/: cmGetFilenameComponentCommand.cxx, + cmGetFilenameComponentCommand.h, + cmLocalUnixMakefileGenerator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h, cmMakefile.cxx, + cmSetSourceFilesPropertiesCommand.h, + cmSetTargetPropertiesCommand.h, cmSystemTools.cxx, + cmSystemTools.h: Several fixes/improvements: + + - Fixed CollapseFullPath to work on relative paths with base + paths + not in the current working directory. + - INCLUDE command now supports relative paths (using above + fix). + - Added ABSOLUTE option to GET_FILENAME_COMPONENT command to + unwind symlinks and relative paths. + - Fixed libName_EXPORTS macro definition to be valid C + identifier. + - Added DEFINE_SYMBOL target propterty for customizing the + export symbol. + - Implemented LINK_FLAGS target propterty for libraries in VC6 + and VC7. + + Several of these fixes were contributed by Gareth Jones. + +2003-02-07 11:47 hoffman + + * Source/CTest/CMakeLists.txt: Remove warnings on AIX + +2003-02-07 11:03 andy + + * Source/CTest/cmCTestSubmit.cxx: Do not reuse connection as that + feature seems to be broken + +2003-02-07 11:03 andy + + * Source/cmCTest.cxx: Fix update return status + +2003-02-07 10:34 hoffman + + * Source/cmSystemTools.cxx: ENH: spelling error fix + +2003-02-07 10:18 hoffman + + * Source/cmFindLibraryCommand.cxx: BUG: use IsNOTFOUND + +2003-02-07 10:05 king + + * Utilities/Release/cmake_release.sh: ERR: Removed stray && from + end of line. + +2003-02-07 00:09 andy + + * Source/: cmCTest.cxx, cmCTest.h: Add updating support + +2003-02-06 17:48 hoffman + + * CMakeLists.txt: tell the aix linker not to give warnings with + -bhalt:5 + +2003-02-06 15:18 martink + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: added option to shut off + automatic rebuilding + +2003-02-06 10:49 king + + * Source/CMakeLists.txt: ENH: Comeau C++ has been added for nightly + testing. It does not support shared libraries, so we cannot run + the complex tests. + +2003-02-06 08:45 king + + * Source/WXDialog/CMakeLists.txt: BUG: We want AppleInfo.plist from + our source tree, not the version of CMake running the build. + +2003-02-05 22:26 hoffman + + * Source/: cmSystemTools.cxx, cmSystemTools.h, + cmTryCompileCommand.cxx: add better testing for unlink + +2003-02-05 18:05 king + + * Source/cmCreateTestSourceList.cxx: BUG: Generate 0 into test + driver instead of NULL. + +2003-02-05 17:52 king + + * Source/CTest/Curl/CMake/CurlTests.c: BUG: Don't include prototype + in test for gethostbyname_r. + +2003-02-05 16:56 king + + * Utilities/Release/cmake_release.sh: ENH: Added win32_zipfile and + win32_upload commands. + +2003-02-05 16:53 king + + * Utilities/Release/cmake_release.sh: ENH: Added win32_zipfile and + win32_upload commands. + +2003-02-05 16:17 king + + * Source/WXDialog/CMakeLists.txt: BUG: AppleInfo.plist should come + from build tree. + +2003-02-05 15:14 king + + * Utilities/Release/cmake_release.sh: BUG: Updated release tag for + 1.6.3. + +2003-02-05 15:07 king + + * Source/cmMakefile.h, Source/WXDialog/CMakeLists.txt, + Utilities/Release/cmake_release.sh: ENH: Updated to version + 1.6.3. + +2003-02-05 15:05 king + + * Modules/CMakeSystemSpecificInformation.cmake: ENH: + CMAKE_INSTALL_PREFIX should not be advanced on UNIX. + +2003-02-05 15:02 king + + * Modules/Platform/HP-UX.cmake: BUG: Optimization flags use + + prefix, not -. + +2003-02-05 15:01 king + + * Source/CursesDialog/cmCursesLongMessageForm.cxx: BUG: Fixed crash + when messages are too long. + +2003-02-05 15:00 king + + * Source/MFCDialog/PropertyList.cpp: BUG: Fixed GUI for new + NOTFOUND checks. + +2003-02-05 14:58 king + + * Source/cmGlobalGenerator.cxx: BUG: Bug in NOTFOUND error + reporting logic. + +2003-02-05 14:55 hoffman + + * Modules/Platform/HP-UX.cmake: fix default release flags for hp + +2003-02-05 14:55 king + + * Source/: cmCacheManager.cxx, cmCacheManager.h: ENH: Better error + checking for cache iterator. + +2003-02-05 13:24 hoffman + + * Source/MFCDialog/PropertyList.cpp: ENH: add a check for -NOTFOUND + +2003-02-04 15:37 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: move cmake install + out of advanced + +2003-02-04 15:37 hoffman + + * Source/cmGlobalGenerator.cxx: BUG: add better testing for + notfound + +2003-02-04 14:37 berk + + * Modules/: FindMangledMesa.cmake, FindOSMesa.cmake: Created + modules for Mesa headers and libraries. + +2003-02-04 14:31 hoffman + + * Source/CursesDialog/cmCursesLongMessageForm.cxx: BUG: don't let + the messages get too big + +2003-02-04 14:01 martink + + * Source/: cmCacheManager.h, cmCacheManager.cxx: safer operation of + iterators + +2003-02-04 09:50 andy + + * Source/cmVTKWrapJavaCommand.cxx: Oops, std namespace + +2003-02-04 09:48 andy + + * Source/cmVTKWrapJavaCommand.cxx: Generate java dependency files + +2003-02-03 23:08 king + + * Utilities/Release/: cmake_release.sh: ENH: Improved robustness of + remote invocation. Added more documentation. + +2003-02-03 22:46 king + + * Utilities/Release/: cmake_release.sh: ENH: Added documentation + and usage. + +2003-02-03 13:31 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: ENH: add a better test for + lib deps + +2003-02-03 12:02 king + + * Utilities/Release/cmake_release.sh: ENH: Updated version to + 1.6.2. + +2003-02-03 12:01 king + + * Source/: cmFindFileCommand.cxx, cmFindFileCommand.h, + cmFindLibraryCommand.cxx, cmFindPackageCommand.cxx, + cmFindPathCommand.cxx, cmFindProgramCommand.cxx, + cmFindProgramCommand.h, cmGetFilenameComponentCommand.cxx, + cmGlobalGenerator.cxx, cmITKWrapTclCommand.cxx, cmSourceFile.cxx, + cmSystemTools.cxx, cmSystemTools.h: ENH: Added new NOTFOUND + notification feature. + +2003-02-03 11:50 king + + * Source/: cmMakefile.h, WXDialog/CMakeLists.txt: ENH: Updated from + version 1.6.1 to 1.6.2. + +2003-02-03 11:49 king + + * Source/cmExportLibraryDependencies.cxx: BUG: Removed generation + of stray paren. + +2003-02-03 09:53 king + + * Source/cmExportLibraryDependencies.cxx: BUG: Removed generation + of stray paren. + +2003-02-02 22:32 king + + * Source/CursesDialog/cmCursesStandardIncludes.h: ENH: Cleaned up + sgi unreferenced warning hack. + +2003-02-02 11:45 hoffman + + * Source/cmGlobalGenerator.cxx: fix warning + +2003-02-01 16:39 hoffman + + * Source/cmMakefile.cxx: ENH: fix warning + +2003-02-01 16:39 hoffman + + * Source/cmAddLibraryCommand.h: ENH: fix doc line + +2003-02-01 16:27 hoffman + + * Source/CursesDialog/cmCursesStandardIncludes.h: BUG: add missing + ; + +2003-01-31 15:01 hoffman + + * Modules/FindOpenGL.cmake: ENH: add checking for NOTFOUND + +2003-01-31 14:39 hoffman + + * Modules/FindOpenGL.cmake, Source/cmGlobalGenerator.cxx: ENH: add + checking for NOTFOUND + +2003-01-31 13:50 hoffman + + * Source/: cmFindFileCommand.cxx, cmFindFileCommand.h, + cmFindLibraryCommand.cxx, cmFindPackageCommand.cxx, + cmFindPathCommand.cxx, cmFindProgramCommand.cxx, + cmFindProgramCommand.h, cmGetFilenameComponentCommand.cxx, + cmGlobalGenerator.cxx, cmITKWrapTclCommand.cxx, + cmIncludeDirectoryCommand.cxx, cmLinkLibrariesCommand.cxx, + cmMakefile.cxx, cmSourceFile.cxx, cmSystemTools.cxx, + cmSystemTools.h, cmTargetLinkLibrariesCommand.cxx: ENH: add + checking for NOTFOUND + +2003-01-31 13:24 king + + * Source/cmMakefile.h, Source/WXDialog/CMakeLists.txt, + Utilities/Release/cmake_release.sh: ENH: Updated to version 1.6.1 + from 1.6.0. + +2003-01-31 13:18 king + + * Source/cmWin32ProcessExecution.cxx: Merge from HEAD. Use process + output for error reporting instead of stdout. + +2003-01-31 13:04 king + + * Modules/FindLATEX.cmake: ENH: Changes to work on windows. Merged + from HEAD. + +2003-01-31 11:52 king + + * Modules/FindFLTK.cmake: BUG: Need FIND_PROGRAM instead of + FIND_FILE to find fluid.exe. + +2003-01-31 11:49 king + + * Modules/FindPerl.cmake: ENH: Added ActivePerl/804 as a search + path. + +2003-01-31 11:44 king + + * Modules/CMakeSystemSpecificInformation.cmake: ERR: Removed stray + double quote. + +2003-01-31 11:41 king + + * Utilities/Release/cmake_release.sh: ENH: Another merge from + branch 1.6. + +2003-01-31 11:40 king + + * Modules/FindX11.cmake: BUG: Fix for cygwin's X11. + +2003-01-31 11:36 king + + * Source/cmakewizard.cxx: ENH: cmake -i on HP needs printf instead + of cout. + +2003-01-31 11:35 king + + * Source/: CMakeLists.txt: BUG: Change install location of + cmCPluginAPI header. + +2003-01-31 08:47 martink + + * Source/CursesDialog/cmCursesStandardIncludes.h: fixed warnings + +2003-01-30 14:34 andy + + * Source/: cmIncludeDirectoryCommand.cxx, + cmLinkLibrariesCommand.cxx, cmTargetLinkLibrariesCommand.cxx: Add + some error checking for missing include directories and link + libraries + +2003-01-30 14:34 andy + + * Modules/CMakeSystemSpecificInformation.cmake: Remove extra quote + +2003-01-30 13:19 hoffman + + * Source/cmakewizard.cxx: BUG: can not mix cout and fgets on hp + +2003-01-30 11:50 king + + * Source/CursesDialog/cmCursesStandardIncludes.h: ERR: Fixing + attempt to remove warnings. + +2003-01-29 14:20 king + + * Source/CursesDialog/cmCursesStandardIncludes.h: ERR: Another + attempt to get rid of unreferenced inline function warnings on + SGI. + +2003-01-29 13:56 king + + * Utilities/Release/cmake_release.sh: ENH: Use * instead of + directory list for installation tarball. + +2003-01-29 13:46 king + + * Utilities/Release/cmake_release.sh: BUG: Need to include the + include directory from the installation. + +2003-01-29 09:06 andy + + * Modules/FindX11.cmake: Attempt to fix build problem on some + platforms + +2003-01-28 15:48 hoffman + + * Source/cmFindFileCommand.h: ENH: better docs + +2003-01-28 15:44 hoffman + + * Modules/: FindFLTK.cmake, FindQt.cmake: ENH: change FIND_FILE to + FIND_PROGRAM + +2003-01-28 08:53 andy + + * Modules/FindLATEX.cmake: Make things work on unix and add DVIPDF + +2003-01-27 12:25 andy + + * Source/cmWin32ProcessExecution.cxx: Fix output variable and + remove this->m_ to be only m_ + +2003-01-27 12:18 andy + + * Source/cmWin32ProcessExecution.cxx: Move errors to output + variable + +2003-01-24 17:40 king + + * Utilities/Release/cygwin-package.sh.in: ENH: Merged more changes + from 1.6 branch. + +2003-01-24 17:34 king + + * Utilities/Release/cygwin-package.sh.in: ENH: Added testing to + packaging script. + +2003-01-24 15:48 king + + * Utilities/Release/cmake_release.sh: ENH: Merged more changes from + 1.6 branch. + +2003-01-24 15:02 king + + * Utilities/Release/cmake_release.sh: ENH: Added cygwin_upload + function. + +2003-01-24 14:40 king + + * Utilities/Release/: cmake_release.sh, config_AIX, config_Darwin, + config_IRIX64, config_Linux, config_OSF1, config_SunOS: ENH: + Merged 1.6-branch changes to release scripts. + +2003-01-24 14:29 king + + * Utilities/Release/: config_AIX, config_Darwin, config_IRIX64, + config_Linux, config_OSF1, config_SunOS: ENH: Use verbose + makefile during release build. + +2003-01-24 13:55 king + + * Utilities/Release/cmake_release.sh: ENH: Updated checkout + revision to Release-1-6-0 tag. + +2003-01-24 13:53 king + + * Modules/Platform/: HP-UX.cmake: BUG: Added missing link flag to + export symbols from an executable. + +2003-01-24 11:50 king + + * Source/WXDialog/CMakeLists.txt: ENH: Updated for cmake 1.6.0 + release. + +2003-01-24 11:49 king + + * Utilities/Release/cmake_release.sh: ENH: Updated for 1.6.0 + release over 1.6.beta2. + +2003-01-24 11:45 king + + * Utilities/: cmake_release_config_darwin, + cmake_release_config_hpux, cmake_release_config_irix, + cmake_release_config_linux, cmake_release_config_osf, + cmake_release_config_sun, cmake_release_cygwin.sh, + cmake_release_unix_config.sh, cmake_release_version.sh: ENH: + Removing old release scripts. CMake 1.6 now has its own copy of + the release scripts. + +2003-01-24 11:45 king + + * Utilities/: cmake-cygwin-package.sh, cmake_release_unix_build.sh, + cmake_release_unix_package.sh, Release/cmake_release.sh, + Release/config_AIX, Release/config_CYGWIN_NT-5.1, + Release/config_Darwin, Release/config_HP-UX, + Release/config_IRIX64, Release/config_Linux, Release/config_OSF1, + Release/config_SunOS, Release/cygwin-package.sh.in: ENH: Release + branch should contain its own release scripts. + +2003-01-24 11:41 king + + * Utilities/Release/: cmake_release.sh, config_AIX, config_Darwin, + config_HP-UX, config_Linux, config_OSF1, config_SunOS: ENH: + Enabled testing during release build. + +2003-01-24 10:33 king + + * Source/CursesDialog/cmCursesStandardIncludes.h: ERR: Fixed + unreferenced termios declaration warning. + +2003-01-23 10:42 barre + + * Modules/FindLATEX.cmake: no message + +2003-01-23 10:37 barre + + * Modules/FindLATEX.cmake: FIX: - rename some entries (COMPILE -> + COMPILER, and the converters -> _CONVERTER) - make sure that + Window system are given a chance to find Latex and the converters + if MikTex and GhostScript are installed (but not in the PATH) + +2003-01-23 10:36 barre + + * Modules/FindPerl.cmake: FIX: the current version of Perl is 5.8 + +2003-01-23 10:35 barre + + * Source/cmGetFilenameComponentCommand.cxx: FIX: this command was + not processing its arg to expand registery values + +2003-01-22 15:00 martink + + * Modules/Platform/gcc.cmake: joins from the main tree + +2003-01-22 14:59 martink + + * Modules/Platform/gcc.cmake: minor change to default compile flags + +2003-01-22 14:49 martink + + * Modules/: FindMPEG2.cmake, FindSDL.cmake: merge from branch + +2003-01-22 14:33 hoffman + + * Source/cmGlobalGenerator.h: ENH: merge from branch + +2003-01-22 14:21 hoffman + + * Tests/X11/CMakeLists.txt: ENH: merge from head + +2003-01-22 14:20 hoffman + + * Utilities/Doxygen/doc_makeall.sh.in: merge from main tree + +2003-01-22 14:20 hoffman + + * Source/cmGlobalGenerator.cxx: merge from main tree, test for + working c and c++ compilers + +2003-01-22 14:17 hoffman + + * Templates/: cconfigure, cconfigure.in, cxxconfigure, + cxxconfigure.in: merge with main branch and remove unused scripts + +2003-01-22 14:13 hoffman + + * Modules/FindAndImportCMakeProject.cmake: moved to c++ command + +2003-01-22 12:38 martink + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake: + joins from the main tree + +2003-01-22 12:31 martink + + * Source/: cmCommands.cxx, cmFindPathCommand.cxx, + cmGlobalUnixMakefileGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, cmMakefile.cxx, cmMakefile.h, + cmake.cxx: joins from the main tree + +2003-01-22 12:29 hoffman + + * Modules/: CMakeTestCCompiler.cmake, CMakeTestCXXCompiler.cmake: + ENH: only run test for working c and cxx compiler once + +2003-01-22 12:28 martink + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, + Modules/CheckIncludeFiles.cmake, Modules/FindFLTK.cmake, + Modules/FindImageMagick.cmake, Modules/FindTclsh.cmake, + Modules/FindVTK.cmake, Modules/FindX11.cmake, + Modules/Platform/CYGWIN.cmake, Source/cmMessageCommand.cxx, + Source/cmMessageCommand.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/CursesDialog/ccmake.cxx, + Source/CursesDialog/cmCursesMainForm.cxx, + Source/CursesDialog/cmCursesMainForm.h, + Source/cmExportLibraryDependencies.cxx, + Source/cmExportLibraryDependencies.h, + Source/cmFindPackageCommand.cxx, Source/cmFindPackageCommand.h: + joins from the main tree + +2003-01-22 11:44 martink + + * Source/cmLocalVisualStudio6Generator.cxx: fixed spelling mistake + +2003-01-22 11:27 martink + + * Source/CursesDialog/ccmake.cxx: spelling fix + +2003-01-22 11:21 martink + + * Modules/FindOpenGL.cmake: merge from branch + +2003-01-22 11:16 martink + + * Modules/LinkQT.cmake: removed since no longer used + +2003-01-22 11:11 martink + + * Modules/FindLATEX.cmake: merge branch change into main tree + +2003-01-22 10:40 king + + * Source/cmFindPackageCommand.cxx: ENH: Added support for looking + through CMAKE_MODULE_PATH to locate Find.cmake modules. + +2003-01-22 10:33 king + + * Source/: cmake.cxx, CursesDialog/ccmake.cxx, + CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesMainForm.h: BUG: Fixed crash when CMAKE_ROOT + cannot be found. + +2003-01-22 09:34 hoffman + + * Source/cmake.cxx: BUG: fix command line to take -G only + +2003-01-22 09:28 king + + * Source/cmGlobalVisualStudio6Generator.cxx: BUG: CMake 1.4 + configured projects did not build with new CMake. + +2003-01-21 17:15 king + + * Source/: cmCommands.cxx, cmFindPackageCommand.cxx, + cmFindPackageCommand.h: ENH: Added FIND_PACKAGE command prototyp. + +2003-01-21 16:46 king + + * Source/cmake.cxx: BUG: Use CMakeDefaultMakeRuleVariables.cmake to + locate modules directory instead of FindVTK.cmake. + +2003-01-21 15:03 king + + * Modules/FindVTK.cmake: ENH: Updated documentation. + +2003-01-21 14:10 andy + + * Source/CTest/Curl/CMakeLists.txt: Attempt to cleanup CMake and + try to fix build on some systems + +2003-01-21 14:01 andy + + * Modules/CheckIncludeFiles.cmake: This list can be really long. + Only display the variable name + +2003-01-21 12:50 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeTestCCompiler.cmake, + Modules/CMakeTestCXXCompiler.cmake, Source/cmGlobalGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx, Source/cmMakefile.cxx, + Source/cmMessageCommand.cxx, Source/cmMessageCommand.h, + Source/cmSystemTools.cxx, Source/cmSystemTools.h: add a fatal + error, and make sure c and c++ compilers work before using them + +2003-01-21 12:41 hoffman + + * Modules/Platform/CYGWIN.cmake: use export all symbols on cygwin + +2003-01-21 10:59 barre + + * Modules/FindImageMagick.cmake: IMPORTANT FIX: be extra-careful + here on WIN32, we do NOT want CMake to look in the system's PATH + env var to search for ImageMagick's convert.exe, otherwise it is + going to pick Microsoft Window's own convert.exe, which is used + to convert FAT partitions to NTFS format ! Depending on the + options passed to convert.exe, there is a good chance you would + kiss your hard-disk good-bye. + +2003-01-20 21:15 ibanez + + * Modules/FindLATEX.cmake: ENH: PS2PDF_COMPILE added. It looks for + ps2pdf. + +2003-01-20 19:17 king + + * Source/cmMakefile.cxx: BUG: Fix for custom commands with spaces + in paths. The arguments were not having spaces escaped. + +2003-01-20 18:54 king + + * Source/: cmLocalUnixMakefileGenerator.cxx: BUG: Fixed typo in + previous fix. + +2003-01-20 18:52 king + + * Source/: cmLocalUnixMakefileGenerator.cxx: BUG: Fixed directory + creation for spaces in install path. + +2003-01-20 16:59 hoffman + + * Source/cmCommands.cxx, Source/cmExportLibraryDependencies.cxx, + Source/cmExportLibraryDependencies.h, Source/cmGlobalGenerator.h, + Source/cmMakefile.h, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: ENH: add a new command + that allows exports of library dependencies from a project to a + file + +2003-01-20 14:39 will + + * Modules/FindX11.cmake: BUG: fix missed CMAKE to X11 variable name + +2003-01-19 11:42 king + + * Source/cmSystemTools.cxx: ENH: Improved CopyFile error messages. + +2003-01-18 11:34 king + + * Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, Templates/install-sh: BUG: + Fixed make install to handle library prefix/suffix settings. + Also fixed support for spaces in paths during make install. + +2003-01-17 18:14 king + + * Modules/: FindVTK.cmake: BUG: Fix for application of + expand-list-variables. + +2003-01-17 18:01 king + + * Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, Templates/install-sh: ENH: + Support for spaces in paths during make install. + +2003-01-17 17:19 king + + * Modules/FindAndImportCMakeProject.cmake: ENH: Adding + FIND_AND_IMPORT_CMAKE_PROJECT macro. + +2003-01-17 15:15 king + + * Utilities/Release/cmake_release.sh: ENH: Added sanity check for + setting of WX_RESOURCES by config_Darwin for osx_install. + +2003-01-17 13:35 king + + * Utilities/Release/: cmake_release.sh, config_Darwin: ENH: + Prototype for OSX packaging. + +2003-01-17 13:35 king + + * Utilities/Release/cmake_release.sh: ENH: Cygwin package is now + created in a Cygwin subdirectory. + +2003-01-17 13:14 king + + * Source/WXDialog/CMakeLists.txt: ENH: Updated version number for + 1.6.beta2 release. + +2003-01-17 12:51 andy + + * Source/WXDialog/CMakeLists.txt: Fix version + +2003-01-17 12:27 hoffman + + * Source/CTest/Curl/Testing/curltest.c: Fix proxy code and fix + comments to be C comments + +2003-01-17 11:57 king + + * Utilities/Release/: cmake-cygwin-package.sh, cmake_release.sh, + cygwin-package.sh.in: ENH: Renamed cmake-cygwin-package.sh to + cygwin-package.sh.in and removed executable permission so it + cannot be run accidentally. It must be run after being renamed + to cmake-${VERSION}-${RELEASE}. + +2003-01-17 11:55 king + + * Utilities/Release/cmake_release.sh: ENH: clean now removes the + entire release root directory. + +2003-01-17 11:51 king + + * Utilities/: cmake-cygwin-package.sh, cmake_release_config_aix, + cmake_release_config_darwin, cmake_release_config_hpux, + cmake_release_config_irix, cmake_release_config_linux, + cmake_release_config_osf, cmake_release_config_sun, + cmake_release_cygwin.sh, cmake_release_unix_build.sh, + cmake_release_unix_config.sh, cmake_release_unix_package.sh, + cmake_release_version.sh: ENH: Removing old release scripts and + config files. + +2003-01-17 11:42 king + + * Utilities/Release/config_OSF1: ENH: Adding OSF release + configuration. + +2003-01-17 11:05 king + + * Utilities/Release/cmake_release.sh: ENH: Added cygwin release + support. + +2003-01-17 10:30 king + + * Utilities/Release/cmake-cygwin-package.sh: ENH: Adding cygwin + packaging script to release directory. + +2003-01-17 10:28 hoffman + + * Source/cmFindPathCommand.cxx, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: remove + trailing slash from findpath command + +2003-01-17 10:28 hoffman + + * Tests/SystemInformation/: DumpInformation.cxx, + SystemInformation.in: add some more prints + +2003-01-17 10:21 king + + * Utilities/Release/config_Linux: ENH: Removed old setting. + +2003-01-17 10:21 king + + * Utilities/Release/config_CYGWIN_NT-5.1: ENH: Cygwin release + configuration. + +2003-01-17 10:15 andy + + * Source/CTest/Curl/Testing/curltest.c: Add proxy support + +2003-01-17 09:52 king + + * Utilities/Release/cmake_release.sh: ENH: Added support for full + remote packaging and copying back to local machine. Added + support for uploading to FTP server. + +2003-01-17 09:20 king + + * Utilities/Release/config_HP-UX: ENH: Linking with + -a,archive_shared instead of -a,archive so that the shared curses + library can be used. + +2003-01-17 09:15 king + + * Utilities/Release/config_AIX: ERR: Can't build release static on + aix. + +2003-01-17 09:08 hoffman + + * Utilities/Release/config_AIX: Add AIX config file + +2003-01-17 08:56 andy + + * Source/cmCTest.cxx: Remove warning about %e and %T + +2003-01-17 08:48 andy + + * Source/CTest/Curl/config.h.in: Remove unnecessary defines + +2003-01-17 08:47 andy + + * Source/CTest/Curl/CMakeLists.txt: Fix gcc32 -ansi problem + +2003-01-17 08:24 andy + + * Source/CTest/Curl/config.h.in: Look for features + +2003-01-17 08:24 andy + + * Source/CTest/Curl/CMakeLists.txt: More portability issues. + Sigaction is a symbol + +2003-01-16 15:47 martink + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: fix for + compilers that need _ + +2003-01-16 14:59 andy + + * Source/cmCTest.cxx: Add aix warning + +2003-01-16 14:15 andy + + * DartConfig.cmake: Add selection of drop method + +2003-01-16 14:05 barre + + * Utilities/Doxygen/doc_makeall.sh.in: FIX: HHC is now + HTML_HELP_COMPILER + +2003-01-16 13:31 ibanez + + * Modules/FindFLTK.cmake: FIX: Quotes added around the list of libs + to be added in Apple. + +2003-01-16 13:24 ibanez + + * Modules/FindFLTK.cmake: ENH: Platform dependent libraries added + for APPLE. + +2003-01-16 13:02 andy + + * Source/CTest/cmCTestSubmit.cxx: Try to fix aix problem + +2003-01-16 12:45 andy + + * Source/CTest/cmCTestSubmit.cxx: Add proxy support for triggering + +2003-01-16 12:38 hoffman + + * Modules/FindFLTK.cmake: ENH: fix for borland and cygwin + +2003-01-16 12:30 andy + + * Source/CTest/cmCTestSubmit.cxx: Improve submtitting using http + +2003-01-16 10:06 andy + + * Source/CTest/Curl/: CMakeLists.txt, config.h.in, + Platforms/WindowsCache.cmake: HAVE_GETHOSTNAME is also + unnecessary + +2003-01-16 10:03 andy + + * Source/CTest/Curl/: CMakeLists.txt, config.h.in, + Platforms/WindowsCache.cmake: Cleanups + +2003-01-16 09:57 andy + + * Source/CTest/: cmCTestSubmit.cxx, Curl/CMakeLists.txt, + Curl/config.h.in: Improve build, now it should build on mac and + other platforms where include file depend on each other + +2003-01-16 08:40 hoffman + + * Source/cmMakefile.h: add back GetCMakeInstance + +2003-01-16 08:31 hoffman + + * Source/cmMakefile.h: fix duplicate member on branch + +2003-01-16 08:28 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: add the config + directory to look for the loadable module + +2003-01-15 19:24 king + + * Utilities/Release/cmake_release.sh: BUG: error_log function + should return 1 to stop execution of rest of script. + +2003-01-15 19:20 king + + * Utilities/Release/cmake_release.sh: ENH: Renamed package command + to binary_tarball for clarity. + +2003-01-15 19:17 king + + * Utilities/Release/: cmake_release.sh, config_HP-UX: ENH: Release + script now exports PATH and LD_LIBRARY_PATH to remove the burden + from the configuration scripts. + +2003-01-15 19:14 king + + * Utilities/Release/config_HP-UX: BUG: Attempt to fix remote + invocation. + +2003-01-15 19:04 king + + * Utilities/Release/config_HP-UX: ENH: Enabling verbose makefile + generation for hp-ux build. This will ease hand-fixing of the + build of ccmake. + +2003-01-15 19:02 king + + * Utilities/Release/cmake_release.sh: ENH: Cleaned up remote + invocation. + +2003-01-15 18:51 king + + * Utilities/Release/cmake_release.sh: ENH: Improved clean target. + +2003-01-15 18:48 king + + * Utilities/Release/cmake_release.sh: BUG: Finished clean target + and fixed grep for cvsroot in ~/.cvspass. + +2003-01-15 18:44 king + + * Utilities/Release/cmake_release.sh: BUG: CVS login command is + login, not cvs_login. + +2003-01-15 18:43 king + + * Utilities/Release/config_aix: ERR: Removed old config file. + +2003-01-15 18:42 king + + * Utilities/Release/: cmake_release.sh, config_Darwin, + config_HP-UX, config_IRIX64, config_Linux, config_SunOS, + config_aix: ENH: New release script prototype. + +2003-01-15 18:28 ibanez + + * Modules/FindFLTK.cmake: ENH: Libraries are not marked as ADVANCED + now. + +2003-01-15 18:02 king + + * Source/cmMakefile.h: ERR: Removed duplicate declaration. + +2003-01-15 17:45 hoffman + + * Source/cmMakefile.h: ENH: fix for ibm build + +2003-01-15 17:31 hoffman + + * Source/CMakeLists.txt, Source/cmaketest.cxx, + Tests/Complex/Executable/complex.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/Complex/Library/moduleFile.c, + Tests/Complex/Library/moduleFile.h, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/moduleFile.c, + Tests/ComplexOneConfig/Library/moduleFile.h, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/ComplexRelativePaths/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/moduleFile.c, + Tests/ComplexRelativePaths/Library/moduleFile.h: ENH: add testing + for modules and one two config modes for cmaketest + +2003-01-15 17:02 hoffman + + * Tests/: LoadCommand/CMakeCommands/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/CMakeLists.txt: use module on + all platforms + +2003-01-15 15:32 hoffman + + * Modules/FindOpenGL.cmake: fix from head + +2003-01-15 15:02 hoffman + + * Modules/FindOpenGL.cmake: BUG: fix for OSX with x11 gl stuff + +2003-01-15 13:25 hoffman + + * Modules/Platform/Windows-bcc32.cmake: merge with head fix for + borland flag and bad set statment + +2003-01-15 13:22 hoffman + + * Modules/Platform/Windows-bcc32.cmake: BUG: fix flags for borland + link shared and module + +2003-01-15 13:14 hoffman + + * Modules/FindOpenGL.cmake: BUG: make sure set command has proper + quoting + +2003-01-15 13:12 hoffman + + * Modules/FindOpenGL.cmake: quote the variable + +2003-01-15 11:59 hoffman + + * Modules/FindTclsh.cmake: look for cygtcl83 + +2003-01-15 11:32 king + + * CMakeLists.txt: ENH: Merge of backward compatability changes from + trunk. + +2003-01-15 11:17 king + + * Utilities/cmake_release_version.sh: ENH: Updated version for + 1.6.beta2 release. + +2003-01-15 11:03 martink + + * Source/cmMakefile.h: updated patch level + +2003-01-14 22:10 andy + + * Source/CTest/: cmCTestSubmit.cxx, cmCTestSubmit.h: Add support + for http submit. Also, add support for proxy, but it does not + work yet. + +2003-01-14 22:10 andy + + * Source/cmCTest.cxx: Add support for http submit + +2003-01-14 19:06 barre + + * Source/CTest/Curl/.NoDartCoverage: somebody is playing with the + contributions :) + +2003-01-14 09:53 andy + + * Source/CTest/Curl/CMakeLists.txt: Fix problem with sigsetjmp + +2003-01-14 09:53 andy + + * Source/: cmMakefile.cxx, cmMakefile.h: Make GetCMakeInstance + private and clean cxx file + +2003-01-14 09:12 andy + + * Source/CTest/Curl/: CMakeLists.txt, arpa_telnet.h, base64.c, + base64.h, ca-bundle.h, connect.c, connect.h, content_encoding.c, + content_encoding.h, cookie.c, cookie.h, dict.c, dict.h, easy.c, + escape.c, escape.h, file.c, file.h, formdata.c, formdata.h, + ftp.c, ftp.h, getenv.c, getinfo.c, getinfo.h, getpass.c, + getpass.h, hash.c, hash.h, hostip.c, hostip.h, http.c, http.h, + http_chunks.c, http_chunks.h, if2ip.c, if2ip.h, krb4.c, krb4.h, + ldap.c, ldap.h, llist.c, llist.h, memdebug.c, memdebug.h, + mprintf.c, multi.c, netrc.c, netrc.h, progress.c, progress.h, + security.c, security.h, sendf.c, sendf.h, setup.h, share.h, + speedcheck.c, speedcheck.h, ssluse.c, ssluse.h, strequal.c, + strequal.h, strtok.c, strtok.h, telnet.c, telnet.h, timeval.c, + timeval.h, transfer.c, transfer.h, url.c, url.h, urldata.h, + version.c, curl/curl.h, curl/easy.h, curl/mprintf.h, + curl/multi.h, curl/stdcheaders.h, curl/types.h: New Curl version + 7.10.3 + +2003-01-13 10:15 martink + + * Modules/CheckSymbolExists.cmake: join from head + +2003-01-13 10:11 martink + + * Modules/FindQt.cmake: merge from branch + +2003-01-13 10:07 martink + + * Modules/Platform/Linux-como.cmake: joined to head + +2003-01-13 10:04 martink + + * Source/cmLocalVisualStudio6Generator.cxx, + Tests/Complex/Library/testConly.c, + Tests/ComplexOneConfig/Library/testConly.c, + Tests/ComplexRelativePaths/Library/testConly.c: joined to head + +2003-01-13 09:30 hoffman + + * Source/cmLocalVisualStudio6Generator.cxx, + Tests/Complex/Library/testConly.c, + Tests/ComplexOneConfig/Library/testConly.c, + Tests/ComplexRelativePaths/Library/testConly.c: BUG: fix + CMAKE_C_FLAGS for visual studio 6, and add a test case + +2003-01-13 09:27 martink + + * Modules/CheckIncludeFileCXX.cmake: joined to head + +2003-01-13 09:24 martink + + * Modules/FindPNG.cmake: fixed typo + +2003-01-13 09:22 martink + + * Modules/: TestForANSIForScope.cmake, TestForSTDNamespace.cmake: + joined to head + +2003-01-13 09:12 martink + + * Modules/: CMakeVS6BackwardCompatibility.cmake, + CMakeVS7BackwardCompatibility.cmake, CheckTypeSize.cmake, + FindX11.cmake: joined to head + +2003-01-13 09:09 martink + + * Source/cmake.cxx, Source/cmake.h, Modules/FindOpenGL.cmake, + Modules/CMakeBackwardCompatibilityC.cmake, + Modules/CMakeBackwardCompatibilityCXX.cmake: joined to head + +2003-01-13 09:06 martink + + * Source/: cmMakefile.cxx, cmVariableWatch.h: joined to head + +2003-01-13 09:02 martink + + * Source/: cmGlobalGenerator.cxx, + cmLocalVisualStudio6Generator.cxx: joined to head + +2003-01-13 08:51 martink + + * Source/cmAbstractFilesCommand.cxx: joined + +2003-01-13 08:50 martink + + * Source/CMakeLists.txt: added install target + +2003-01-13 08:14 andy + + * Source/cmLocalVisualStudio6Generator.cxx: Add space between + arguments + +2003-01-12 22:28 andy + + * Modules/CheckSymbolExists.cmake: Add macro for checking if symbol + exists + +2003-01-12 22:27 andy + + * Source/CTest/Curl/CMakeLists.txt: Make it work on cygwin + +2003-01-12 11:01 andy + + * Source/CTest/Curl/Testing/curltest.c: Test on simpler pages + +2003-01-12 10:58 andy + + * Source/CTest/Curl/Platforms/WindowsCache.cmake: Because of + borland, this should be autodetected + +2003-01-12 10:50 andy + + * Source/cmLocalVisualStudio6Generator.cxx: Use C flags too. Not + exactly the right solution but it will have to do for now. + +2003-01-11 21:47 andy + + * Source/CTest/: cmCTestSubmit.cxx, cmCTestSubmit.h: Add triggering + +2003-01-11 21:47 andy + + * Source/cmCTest.cxx: Fix time output and add triggering + +2003-01-11 15:42 andy + + * Source/CTest/Curl/Testing/curltest.c: Better page, so the + resulting dart page will not refresh + +2003-01-11 11:27 andy + + * Source/CTest/Curl/Platforms/WindowsCache.cmake: Try to fix cygwin + build + +2003-01-11 10:57 andy + + * Source/: CMakeLists.txt, CTest/Curl/CMakeLists.txt, + CTest/Curl/Platforms/WindowsCache.cmake: Fix testing of curl on + windows + +2003-01-10 20:22 andy + + * Source/: CMakeLists.txt, CTest/Curl/CMakeLists.txt, + CTest/Curl/Testing/curltest.c: Add curl testing + +2003-01-10 20:08 andy + + * Source/CTest/Curl/multi.h: Remove old file + +2003-01-10 20:06 andy + + * Source/CTest/Curl/curl/: curl.h, multi.h: Add missing header file + +2003-01-10 17:31 hoffman + + * CMakeLists.txt: ENH: make it work with cmake 1.6 with no + backwards compatibility + +2003-01-10 16:05 andy + + * Source/CTest/Curl/curl/curl.h: Try to fix building of tests + +2003-01-10 15:54 andy + + * Source/CTest/Curl/: CMakeLists.txt, CMake/CurlTests.c: Add + another AIX test + +2003-01-10 15:52 hoffman + + * Source/CTest/Curl/: CMakeLists.txt, config.h.in: AIX fixes + +2003-01-10 11:10 andy + + * Source/CTest/Curl/CMakeLists.txt: Fix nonblocking problem + +2003-01-10 11:07 martink + + * Source/cmGlobalGenerator.cxx: fix warnings + +2003-01-10 10:25 andy + + * Source/CTest/Curl/Platforms/WindowsCache.cmake: More windows + +2003-01-10 10:25 andy + + * Source/CTest/Curl/CMakeLists.txt: On Windows we need winmm + +2003-01-10 09:47 andy + + * Source/CTest/Curl/url.c: Fixed persistant connection problem + +2003-01-10 09:02 martink + + * Source/cmake.cxx: compiler warning + +2003-01-10 08:08 andy + + * Source/CTest/Curl/config.h.in: Forgot to move gethostname + +2003-01-10 07:50 andy + + * Source/CTest/cmCTestSubmit.cxx: Method should return something + +2003-01-09 23:26 andy + + * Source/CTest/Curl/: CMakeLists.txt, arpa_telnet.h, base64.c, + base64.h, ca-bundle.h, config.h.in, connect.c, connect.h, + content_encoding.c, content_encoding.h, cookie.c, cookie.h, + dict.c, dict.h, easy.c, escape.c, escape.h, file.c, file.h, + formdata.c, formdata.h, ftp.c, ftp.h, getenv.c, getinfo.c, + getinfo.h, getpass.c, getpass.h, hash.c, hash.h, hostip.c, + hostip.h, http.c, http.h, http_chunks.c, http_chunks.h, if2ip.c, + if2ip.h, krb4.c, krb4.h, ldap.c, ldap.h, llist.c, llist.h, + memdebug.c, memdebug.h, mprintf.c, multi.c, netrc.c, netrc.h, + progress.c, progress.h, security.c, security.h, sendf.c, sendf.h, + setup.h, speedcheck.c, speedcheck.h, ssluse.c, ssluse.h, + strequal.c, strequal.h, strtok.c, strtok.h, telnet.c, telnet.h, + timeval.c, timeval.h, transfer.c, transfer.h, url.c, url.h, + urldata.h, version.c, curl/curl.h, curl/easy.h, curl/mprintf.h, + curl/stdcheaders.h, curl/types.h: New version of libcurl + +2003-01-09 15:54 martink + + * Modules/FindOpenGL.cmake: better fix for win32 + +2003-01-09 14:00 martink + + * Modules/FindOpenGL.cmake: update to not put PROJECT_SOURCE_DIR as + OPENGL_PATH + +2003-01-09 12:18 martink + + * Source/: cmake.cxx, cmake.h, cmGlobalGenerator.cxx, + cmGlobalGenerator.h: fix bug in env settings + +2003-01-09 11:35 martink + + * Source/: cmMakefile.cxx, cmVariableWatch.h: more option on var + watches + +2003-01-09 11:34 martink + + * Modules/CheckTypeSize.cmake: minor fix to backw compat + +2003-01-09 11:32 hoffman + + * Source/cmGlobalGenerator.cxx: fix warning + +2003-01-09 11:28 hoffman + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h: restore the + environment for cxx and cc in global generator + +2003-01-09 11:27 hoffman + + * Source/cmVariableWatch.h: use cmstdstring in maps + +2003-01-09 09:16 hoffman + + * Source/cmVariableWatch.h: fix syntax for addwatch + +2003-01-09 08:50 martink + + * Modules/: CMakeVS6BackwardCompatibility.cmake, + CMakeVS7BackwardCompatibility.cmake: added big endian stuff + +2003-01-09 08:47 martink + + * Source/cmGlobalGenerator.cxx: only load bw compat if + CMAKE_BACK... is set + +2003-01-09 08:47 martink + + * Source/cmake.cxx: added watches for access of bw compat vars + +2003-01-09 08:44 martink + + * Source/cmAbstractFilesCommand.cxx: now complains more + +2003-01-08 15:08 andy + + * Source/CTest/Curl/: CMakeLists.txt, WindowsCache.cmake, + Platforms/WindowsCache.cmake, Platforms/config-aix.h: Reorganize + +2003-01-08 14:41 hoffman + + * Utilities/cmake_release_config_aix: release script for aix + +2003-01-08 13:24 andy + + * Source/: CMakeLists.txt, Makefile.in, cmMakefile.cxx, + cmMakefile.h, cmVariableWatch.cxx, cmVariableWatch.h, cmake.cxx, + cmake.h: Add variable watch support on the branch + +2003-01-08 13:24 andy + + * Source/cmTryCompileCommand.cxx: Merge try compile fixes to branch + +2003-01-08 12:59 andy + + * Source/: CMakeLists.txt, Makefile.in, cmMakefile.cxx, + cmMakefile.h, cmVariableWatch.cxx, cmVariableWatch.h, cmake.cxx, + cmake.h: Add option of watching variables + +2003-01-08 12:12 hoffman + + * Modules/CMakeBackwardCompatibilityCXX.cmake, + Modules/CheckIncludeFileCXX.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForSTDNamespace.cmake, + Source/cmTryCompileCommand.cxx: ENH: only force the use of ansi + flags in backwards mode + +2003-01-08 11:58 iscott + + * Modules/FindQt.cmake: mark all variables advanced + +2003-01-08 11:53 andy + + * Tests/X11/CMakeLists.txt: Change name of variable + +2003-01-08 11:45 andy + + * Modules/: CMakeBackwardCompatibilityC.cmake, FindX11.cmake: Fix + FindX11 to match convention + +2003-01-08 10:48 iscott + + * Modules/: FindMPEG2.cmake, FindPNG.cmake, FindSDL.cmake, + LinkQT.cmake: LinkQT.cmake has been deprecated for ages, removed + it now. Fixed mistake in FindPNG.cmake Donated FindMPEG2 and + FindSDL from VXL. + +2003-01-07 22:24 andy + + * Source/CTest/: cmCTestSubmit.cxx, cmCTestSubmit.h: Implement FTP + uploading + +2003-01-07 22:23 andy + + * Source/CTest/CMakeLists.txt: Add more places to search for + library, also include curl directory when compiling + +2003-01-07 22:23 andy + + * Source/cmCTest.cxx: New signature + +2003-01-07 20:28 andy + + * Source/CTest/Curl/curl/: curl.h, easy.h, mprintf.h, + stdcheaders.h, types.h: Initial import + +2003-01-07 15:04 hoffman + + * CMakeLists.txt: ENH: fix install of cmake.1 + +2003-01-07 14:57 hoffman + + * CMakeLists.txt: fix reg ex for install cmake man + +2003-01-07 13:52 martink + + * Source/CMakeLists.txt: adde dinstall for cmCPluginAPI.h + +2003-01-07 13:19 hoffman + + * CMakeLists.txt, Templates/CMakeLists.txt: ENH: fix install and + initial prefix + +2003-01-07 13:05 hoffman + + * Templates/CMakeLists.txt: ENH: fix install target for templates + +2003-01-07 12:54 hoffman + + * Templates/: cconfigure, cconfigure.in, cxxconfigure, + cxxconfigure.in: remove unused files + +2003-01-07 12:05 hoffman + + * CMakeLists.txt: use bootstrap initial flags + +2003-01-07 10:22 king + + * Utilities/cmake_release_config_irix: BUG: Version number on rolle + is 6.4, not 6.5. + +2003-01-06 23:13 andy + + * Source/: cmCTest.cxx, cmCTest.h: Work on submitting + +2003-01-06 23:07 andy + + * Source/CTest/: CMakeLists.txt, cmCTestSubmit.cxx, + cmCTestSubmit.h: Start working on improved test + +2003-01-06 21:17 andy + + * Source/CTest/Curl/: CMake/CurlTests.c, Testing/CMakeLists.txt, + Testing/curlgtk.c, Testing/ftpget.c, Testing/ftpgetresp.c, + Testing/ftpupload.c, Testing/getinmemory.c, Testing/http-post.c, + Testing/httpput.c, Testing/multithread.c, Testing/persistant.c, + Testing/postit2.c, Testing/sepheaders.c, Testing/simple.c, + Testing/simplessl.c, Testing/testconfig.h.in, + Testing/win32sockets.c: Initial import + +2003-01-06 21:13 andy + + * Source/CTest/Curl/: CMakeLists.txt, WindowsCache.cmake, + arpa_telnet.h, base64.c, base64.h, config.h.in, connect.c, + connect.h, cookie.c, cookie.h, dict.c, dict.h, dllinit.c, easy.c, + escape.c, escape.h, file.c, file.h, formdata.c, formdata.h, + ftp.c, ftp.h, getdate.c, getdate.h, getenv.c, getinfo.c, + getinfo.h, getpass.c, getpass.h, hash.c, hash.h, hostip.c, + hostip.h, http.c, http.h, http_chunks.c, http_chunks.h, if2ip.c, + if2ip.h, inet_ntoa_r.h, krb4.c, krb4.h, ldap.c, ldap.h, llist.c, + llist.h, memdebug.c, memdebug.h, mprintf.c, multi.c, multi.h, + netrc.c, netrc.h, progress.c, progress.h, security.c, security.h, + sendf.c, sendf.h, setup.h, speedcheck.c, speedcheck.h, ssluse.c, + ssluse.h, strequal.c, strequal.h, strtok.c, strtok.h, telnet.c, + telnet.h, timeval.c, timeval.h, transfer.c, transfer.h, url.c, + url.h, urldata.h, version.c: Initial import + +2003-01-06 16:09 king + + * Utilities/cmake_release_config_hpux: ERR: Fixes for linking + statically with -ldld. + +2003-01-06 15:41 hoffman + + * ChangeLog.txt: ENH: update change log for new version + +2003-01-06 15:21 king + + * Utilities/cmake_release_config_sun: ERR: Fix for building static + with -ldl on sun. + +2003-01-06 14:56 king + + * Utilities/cmake_release_config_linux: ERR: Fixed typo. + +2003-01-06 14:30 biddi + + * Source/cmVTKWrapTclCommand.cxx: Fix a problem with TCL wrapping + if the source files have a relative path. The dependency is not + correctly handled + +2003-01-06 14:27 king + + * Utilities/: cmake_release_config_hpux, + cmake_release_config_linux, cmake_release_config_sun: ENH: + Updated for static executable. + +2003-01-06 11:31 king + + * Utilities/cmake_release_version.sh: ENH: Updated for 1.6 beta 1 + release. + +2003-01-06 11:23 king + + * Utilities/: cmake_release_config_darwin, + cmake_release_config_hpux, cmake_release_config_irix, + cmake_release_config_linux, cmake_release_config_osf, + cmake_release_config_sun, cmake_release_cygwin.sh, + cmake_release_unix_config.sh, cmake_release_version.sh: ENH: + Updated for CMake 1.6 release. Version number is now in a single + file that is sourced by all others. + +2003-01-06 10:58 martink + + * Source/: cmCPluginAPI.h: updated version + +2003-01-06 10:58 king + + * Source/WXDialog/CMakeLists.txt: ERR: Fixed space problem for OSX + and Rez. + +2003-01-06 10:43 martink + + * CMake.rtf: updated docs + +2003-01-06 10:37 king + + * Source/WXDialog/CMakeLists.txt: ENH: Fixed space problem for Rez. + +2003-01-06 09:39 martink + + * Source/: cmMakefile.h: update version + +2003-01-06 09:36 martink + + * Source/cmMakefile.h: updated version + +2003-01-06 09:32 king + + * Modules/Platform/Linux-como.cmake: ENH: Added shared library + settings. + +2003-01-06 09:04 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: ENH: look for AIX compiler as + well + +2003-01-06 08:39 hoffman + + * Modules/Platform/OSF1.cmake: add shared path for OSF + +2003-01-05 11:24 hoffman + + * Modules/Platform/OSF1.cmake: BUG: revert back to rpath, + +2003-01-03 20:26 andy + + * Modules/CheckTypeSize.cmake: Remove debug + +2003-01-03 20:03 andy + + * Modules/: CheckFunctionExists.cmake, CheckLibraryExists.cmake, + CheckTypeSize.cmake, CheckVariableExists.cmake: Fix problems with + required flags + +2003-01-03 19:21 andy + + * Modules/: CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckIncludeFiles.cmake, CheckLibraryExists.cmake, + CheckTypeSize.cmake, CheckVariableExists.cmake: Add required + flags + +2003-01-03 17:36 king + + * Modules/FindPythonLibs.cmake: ENH: Find python framework on Mac + OSX. + +2003-01-03 16:23 hoffman + + * Modules/Platform/OSF1.cmake: try to fix rpath on OSF + +2003-01-03 16:14 andy + + * Tests/COnly/libc2.h: Fix problem with test on Borland + +2003-01-03 08:12 hoffman + + * Modules/Platform/SunOS.cmake: BUG: bad rpath flag for suns + +2003-01-02 10:27 king + + * Source/cmCPluginAPI.h: ENH: Changed magic numbers to reserved. + Added CMAKE_VERSION_MAJOR and CMAKE_VERSION_MINOR macros to allow + commands to do conditional compilation across multiple versions + of CMake. + +2003-01-02 09:57 king + + * Modules/CMakeBackwardCompatibilityC.cmake: BUG: Don't add + -I/usr/include as an X_CFLAGS setting. + +2003-01-02 09:57 king + + * Modules/FindX11.cmake: BUG: Fixed ordering of X11 search. + +2003-01-02 09:06 andy + + * Tests/COnly/CMakeLists.txt: Rename libraries from c1 to testc1 + +2003-01-02 08:51 hoffman + + * Modules/Platform/: AIX.cmake, OSF1.cmake, SunOS.cmake: clean up + some c/cxx issues + +2003-01-01 18:00 andy + + * Modules/CheckIncludeFiles.cmake: Add macro for checking if a + swequence of includes can be includes + +2003-01-01 17:35 andy + + * Tests/COnly/CMakeLists.txt: Test conversion from ascii to string + +2003-01-01 17:34 andy + + * Source/: cmStringCommand.cxx, cmStringCommand.h: Add a way to + convert ascii to string + +2003-01-01 16:25 andy + + * Modules/: CheckFunctionExists.cmake, CheckLibraryExists.cmake, + CheckTypeSize.cmake, CheckVariableExists.cmake: To prevent cmake + from breaking up arguments, put quotes around them + +2003-01-01 15:02 andy + + * Modules/CheckVariableExists.cmake: Add a way to add custom + libraries to the mix. Also add status reporting + +2003-01-01 15:01 andy + + * Modules/: CheckFunctionExists.cmake, CheckLibraryExists.cmake, + CheckTypeSize.cmake: Add a way to add custom libraries to the mix + +2003-01-01 14:26 andy + + * Tests/COnly/: libc2.c, libc2.h: Shared library should export + symbols on windows + +2002-12-31 15:22 andy + + * Tests/COnly/: CMakeLists.txt, conly.c, libc1.c, libc1.h, libc2.c, + libc2.h: Test also stating and shared libraries + +2002-12-31 13:08 king + + * Modules/: CMakeDefaultMakeRuleVariables.cmake, + Platform/Darwin.cmake, Platform/HP-UX.cmake, + Platform/Linux-como.cmake, Platform/Windows-bcc32.cmake, + Platform/Windows-cl.cmake: ENH: Added to link rules. + +2002-12-31 12:59 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: When there are no + link flags, we want an empty string, not a null pointer. + +2002-12-31 12:41 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: Support LINK_FLAGS + property for static libraries. + +2002-12-30 11:48 hoffman + + * Modules/Platform/AIX.cmake: ENH: fix shared libraries on AIX + +2002-12-30 11:02 king + + * Modules/CMakeBackwardCompatibilityC.cmake, Modules/CheckSizeOf.c, + Modules/CheckSizeOf.cmake, Modules/CheckTypeSize.c, + Modules/CheckTypeSize.cmake, Tests/LoadCommand/CMakeLists.txt, + Tests/LoadCommandOneConfig/CMakeLists.txt: ENH: Renamed + Modules/CheckSizeOf to Modules/CheckTypeSize for consistency with + the macro name that is defined by the module. + +2002-12-30 08:18 andy + + * Source/cmSystemTools.cxx: Fix problem on windows with network + paths + +2002-12-30 07:47 hoffman + + * Source/: cmAbstractFilesCommand.h, cmAddCustomCommandCommand.h, + cmAddCustomTargetCommand.h, cmAddDefinitionsCommand.h, + cmAddExecutableCommand.h, cmAddTestCommand.h, + cmAuxSourceDirectoryCommand.h, cmBuildCommand.h, + cmBuildNameCommand.h, cmFLTKWrapUICommand.h: ENH: clean up docs + some + +2002-12-27 11:14 starreveld + + * Modules/FindPythonLibs.cmake: ENH: find python framework and + include files on OSX + +2002-12-26 19:59 andy + + * Modules/CMakeJavaCompiler.cmake.in: If there is no java compiler + report error on ADD_JAVA_LIBRARY + +2002-12-26 13:58 andy + + * Modules/Platform/Windows-cl.cmake: Add missing closing bracket + +2002-12-23 12:19 hoffman + + * Source/cmSystemTools.h: ENH: fix for AIX + +2002-12-23 09:51 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: WAR: remove warinings + +2002-12-23 09:25 hoffman + + * Source/cmSystemTools.cxx: ENH: handle // in the path + +2002-12-22 15:19 hoffman + + * Modules/Platform/Windows-bcc32.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: ENH: fixes for borland + with spaces in the path + +2002-12-22 11:50 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: clean up warning and use + more short paths + +2002-12-22 10:09 barre + + * Modules/: Documentation.cmake, FindHTMLHelp.cmake, FindHhc.cmake: + ENH: it's time to create a real Microsoft HTML Help Workshop + CMake module + +2002-12-21 11:14 hoffman + + * Source/: cmGetTargetPropertyCommand.cxx, + cmGetTargetPropertyCommand.h, cmSetTargetPropertiesCommand.cxx, + cmSetTargetPropertiesCommand.h: ENH: add target properties files + +2002-12-20 17:15 hoffman + + * Source/cmCommands.cxx, Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmTarget.cxx, Source/cmTarget.h, + Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/CMakeLists.txt: ENH: add + target properties + +2002-12-20 16:15 king + + * Source/cmVTKWrapTclCommand.cxx: ERR: Tcl_PkgProvide takes char*, + so we cannot pass a string literal to it. + +2002-12-20 12:59 king + + * Modules/Platform/Windows-cl.cmake, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Templates/CMakeVisualStudio6Configurations.cmake: ENH: Visual + Studio 6 and 7 generators now set CMAKE_CONFIGURATION_TYPES to be + a semicolon-separated list of configurations that will be built. + +2002-12-20 11:56 barre + + * Modules/: CMakeBackwardCompatibilityC.cmake, FindX11.cmake: FIX: + make CMAKE_X_LIBS and CMAKE_X_CFLAGS advanced + +2002-12-20 11:20 hoffman + + * Source/cmGlobalUnixMakefileGenerator.cxx: ENH: add a check to + make sure cmake can find the c or C++ compiler for trycompile + +2002-12-20 11:20 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: BUG: fix for backwards + compatibility + +2002-12-20 10:23 martink + + * Source/: cmSourceFilesCommand.cxx, cmake.cxx: testing more + agressive compatability settings + +2002-12-20 09:43 king + + * Modules/FindTCL.cmake: ENH: Use the Mac -framework for Tk if it + is available. + +2002-12-20 09:42 king + + * Modules/FindTCL.cmake: ENH: Use the Mac -framework for Tcl if it + is available. + +2002-12-19 15:34 hoffman + + * Source/cmGlobalGenerator.cxx: BUG: enable the languages when not + running in global mode + +2002-12-19 12:51 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: better docs + +2002-12-19 12:51 hoffman + + * Modules/Platform/Windows-cl.cmake: ENH: make linker flags use + init values so users can set them from the cache + +2002-12-18 16:58 king + + * Source/cmVTKWrapTclCommand.cxx: ENH: Tcl packages now + Tcl_PkgProvide their own name and version. + +2002-12-18 10:52 king + + * Modules/Platform/gcc.cmake: ENH: Adding build type flags for C. + +2002-12-18 09:38 king + + * Source/CMakeLists.txt, Tests/X11/CMakeLists.txt: ERR: Project + name and executable name should match for consistency in the X11 + test. + +2002-12-17 17:05 king + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h: ENH: Added return type + int to ExecuteCommand. + +2002-12-17 14:55 king + + * Source/cmFLTKWrapUICommand.cxx: BUG: Need at least 2 arguments, + not exactly 2. + +2002-12-17 14:55 king + + * Source/cmListFileCache.h: ERR: Added operator != for SGI. + +2002-12-17 14:54 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake, + CMakeDetermineJavaCompiler.cmake, CMakeDetermineSystem.cmake, + CMakeSystemSpecificInformation.cmake, CheckFunctionExists.cmake, + CheckIncludeFile.cmake, CheckIncludeFileCXX.cmake, + CheckLibraryExists.cmake, CheckSizeOf.cmake, + CheckVariableExists.cmake, TestBigEndian.cmake, + TestCXXAcceptsFlag.cmake, TestForANSIForScope.cmake, + TestForSTDNamespace.cmake: ENH: use CMAKE_ROOT and not PROJECT_ + for try compile stuff, this allows projects within projects to + have different languages + +2002-12-17 13:28 king + + * Source/CMakeLists.txt, Tests/X11/CMakeLists.txt: BUG: Renamed X11 + test executable to useX11 to avoid conflict with name of library. + +2002-12-17 12:56 martink + + * Source/cmLocalVisualStudio6Generator.cxx: better handling of + Module + +2002-12-17 12:11 andy + + * Source/cmake.cxx: Save directories when doing global build + +2002-12-17 11:58 king + + * Source/cmMacroCommand.cxx: ENH: Improved error message for macro + invoked with incorrect number of arguments. + +2002-12-17 11:57 king + + * Source/cmTryCompileCommand.cxx: ENH: TryCompile should produce a + verbose makefile. + +2002-12-17 11:55 king + + * Modules/: CMakeBackwardCompatibilityC.cmake, FindX11.cmake: ENH: + FindX11.cmake module now almost fully duplicates old configure + functionality. + +2002-12-17 10:04 martink + + * Source/cmLocalVisualStudio7Generator.cxx: some clean up in link + directories + +2002-12-16 21:19 andy + + * Source/: CMakeLists.txt, cmCTest.cxx, cmCTest.h, ctest.cxx, + ctest.h: Split ctest into two three files + +2002-12-16 18:28 king + + * Source/cmLocalVisualStudio7Generator.cxx: BUG: Cannot remove + quotes from defined flags. + +2002-12-16 12:13 andy + + * Source/cmake.cxx: Fix switching from local to global generation + when cmake version changes or when things change inside version + +2002-12-16 11:10 king + + * Source/cmake.cxx: ENH: Added copy_if_different option to -E flag. + +2002-12-16 09:39 king + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: BUG: Fixed quotes in output + paths. + +2002-12-15 13:45 andy + + * Source/: ctest.cxx, ctest.h: Add support for only showing what + will be done. This way you can for example get a list of all + tests: ctest -N or list of all tests that match regex: ctest -N + -R regex + +2002-12-13 17:35 king + + * Tests/: Complex/CMakeLists.txt, + Complex/cmTestGeneratedHeader.h.in, + Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestGeneratedHeader.h.in, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestGeneratedHeader.h.in, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx: ENH: Added test for + generated header included by non-generated source. + +2002-12-13 17:34 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: Need source file + and OBJECT_DEPENDS as dependencies of an object file. + +2002-12-13 16:16 king + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, + cmSetSourceFilesPropertiesCommand.cxx: ENH: Added source file + property OBJECT_DEPENDS to support generated header files + included in non-generated sources. + +2002-12-13 14:58 king + + * Modules/: CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckIncludeFileCXX.cmake, CheckLibraryExists.cmake, + CheckSizeOf.cmake, CheckVariableExists.cmake: ENH: Don't repeat + check even if answer was no. + +2002-12-13 09:52 martink + + * Source/cmIfCommand.cxx: made more strict + +2002-12-13 09:27 martink + + * Source/: ctest.cxx, cmCPluginAPI.cxx: fixed warnings + +2002-12-13 09:18 king + + * Source/: cmFunctionBlocker.h, cmIfCommand.h: ERR: Fixed unused + parameter warning. + +2002-12-12 17:48 hoffman + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h: Make try + compile add a depend to re-run cmake if its source chagnes + +2002-12-12 12:02 king + + * Utilities/: cmake_release_config_darwin, + cmake_release_config_hpux, cmake_release_config_irix, + cmake_release_config_linux, cmake_release_config_osf, + cmake_release_config_sun, cmake_release_cygwin.sh: ENH: Updated + for 1.4.7 release. + +2002-12-12 11:51 martink + + * Source/cmMakefile.h: updated to patch7 + +2002-12-12 11:36 king + + * Source/: cmListFileCache.cxx, cmListFileCache.h, + cmMacroCommand.cxx, cmMakefile.cxx, cmMakefile.h, ctest.cxx: ENH: + Improved filename/line number reporting in error message. Macro + invocations now chain up the error message. + +2002-12-12 10:25 king + + * Modules/CMakeTestGNU.c: ERR: Fixed syntax errors for picky + preprocessors. + +2002-12-12 10:25 king + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: ERR: Need double-quotes around + expression to be mached in IF command. + +2002-12-12 10:10 king + + * Tests/: Complex/CMakeLists.txt, Complex/VarTests.cmake, + ComplexOneConfig/CMakeLists.txt, ComplexOneConfig/VarTests.cmake, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/VarTests.cmake: BUG: Can't double-quote + foreach arguments. + +2002-12-12 08:42 martink + + * Tests/Wrapping/CMakeLists.txt: now uses SET instead of + SOURCE_LIST command + +2002-12-11 18:20 king + + * Source/cmListFileCache.cxx: BUG: Multi-line functions must also + increment line number, not the pointer. + +2002-12-11 18:15 king + + * Source/cmEndForEachCommand.h: ERR: Dummy InitialPass + implementation must return a value. + +2002-12-11 18:13 king + + * Source/: cmAbstractFilesCommand.cxx, + cmAddCustomCommandCommand.cxx, cmAddCustomTargetCommand.cxx, + cmAddDefinitionsCommand.cxx, cmAddDependenciesCommand.cxx, + cmAddExecutableCommand.cxx, cmAddLibraryCommand.cxx, + cmAddTestCommand.cxx, cmCPluginAPI.cxx, cmCommand.h, + cmCreateTestSourceList.cxx, cmEndForEachCommand.cxx, + cmEndForEachCommand.h, cmFindFileCommand.cxx, + cmFindLibraryCommand.cxx, cmFindPathCommand.cxx, + cmFindProgramCommand.cxx, cmForEachCommand.cxx, + cmForEachCommand.h, cmFunctionBlocker.h, cmITKWrapTclCommand.cxx, + cmIfCommand.cxx, cmIfCommand.h, cmIncludeDirectoryCommand.cxx, + cmInstallProgramsCommand.cxx, cmInstallTargetsCommand.cxx, + cmLinkDirectoriesCommand.cxx, cmLinkLibrariesCommand.cxx, + cmListFileCache.cxx, cmListFileCache.h, cmLoadCacheCommand.cxx, + cmLoadCommandCommand.cxx, cmLocalUnixMakefileGenerator.cxx, + cmMacroCommand.cxx, cmMacroCommand.h, cmMakefile.cxx, + cmMakefile.h, cmMarkAsAdvancedCommand.cxx, cmMessageCommand.cxx, + cmProjectCommand.cxx, cmRemoveCommand.cxx, + cmSetSourceFilesPropertiesCommand.cxx, cmSourceFilesCommand.cxx, + cmSourceFilesRemoveCommand.cxx, cmSubdirCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h, cmTarget.cxx, + cmTargetLinkLibrariesCommand.cxx, cmUtilitySourceCommand.cxx, + cmVariableRequiresCommand.cxx, cmWriteFileCommand.cxx, ctest.cxx: + ENH: Moved ExpandListVariables out of individual commands. + Argument evaluation rules are now very consistent. Double quotes + can always be used to create exactly one argument, regardless of + contents inside. + +2002-12-11 14:18 martink + + * Source/CMakeSetup.dsw: removed dsw file + +2002-12-11 14:16 martink + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h: added a Free method + +2002-12-11 14:15 king + + * Source/: cmCreateTestSourceList.cxx, cmSystemTools.cxx: ENH: + Improved implementation of MSVC debug hook to only add the hook + if DART_TEST_FROM_DART is set in the environment. This is better + than always adding the hook and testing the environment from the + callback. + +2002-12-11 12:09 andy + + * Source/: cmGlobalVisualStudio7Generator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: Add check so that java + projects build without C++ + +2002-12-11 11:49 king + + * Source/: cmDumpDocumentation.cxx, cmSystemTools.cxx, + cmSystemTools.h, cmakemain.cxx, cmaketest.cxx, cmw9xcom.cxx, + ctest.cxx: ENH: Added cmSystemTools::EnableMSVCDebugHook() to + prevent error dialogs when CMake is invoked by Dart. + +2002-12-11 11:32 king + + * Source/cmCreateTestSourceList.cxx: ENH: Generate code to setup + MSVC debug library hook. The test driver program will not + display error dialogs if DART_TEST_FROM_DART is set in the + environment. + +2002-12-11 10:34 andy + + * Modules/CMakeDetermineJavaCompiler.cmake, + Modules/CMakeJavaCompiler.cmake.in, Source/cmGlobalGenerator.cxx: + Add java support + +2002-12-10 17:52 andy + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h: Add support for comments on + custom commands in visual studio 6 + +2002-12-10 17:43 andy + + * Source/: cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: Add support for comments on + custom commands in visual studio 7 + +2002-12-10 16:46 andy + + * Source/: cmCustomCommand.cxx, cmCustomCommand.h, cmMakefile.cxx, + cmMakefile.h, cmAddCustomCommandCommand.cxx, + cmAddCustomCommandCommand.h, cmLocalUnixMakefileGenerator.cxx, + cmSourceGroup.cxx, cmSourceGroup.h: Add comment support, so that + you can see in build process what the custom command does + +2002-12-10 16:45 andy + + * Source/: cmAddCustomTargetCommand.cxx, + cmAddCustomTargetCommand.h: Allow target with no command + +2002-12-10 16:08 hoffman + + * Source/: cmOutputRequiredFilesCommand.cxx, + cmOutputRequiredFilesCommand.h: BUG: update for changes in + cmMakeDepend + +2002-12-10 16:01 hoffman + + * Source/: cmITKWrapTclCommand.cxx, cmITKWrapTclCommand.h: ENH: + update use of makedepend + +2002-12-10 15:55 hoffman + + * Source/: cmITKWrapTclCommand.cxx, cmITKWrapTclCommand.h: ENH: + update to new style MakeDepend + +2002-12-10 14:51 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: FIX: drag&drop on CMake + icon was not working anymore. - the cmake instance had to be + created before accessing the cache (doh) - the cache iterator was + not queried properly (seems the API changed) + +2002-12-10 14:12 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: make sure empty depends + are not used + +2002-12-10 14:10 martink + + * Source/: cmOutputRequiredFilesCommand.cxx, + cmOutputRequiredFilesCommand.h: updated for changes in Depend + Calcs + +2002-12-10 13:59 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: do not output empty + depends + +2002-12-10 13:36 andy + + * Source/ctest.cxx: Remove warning + +2002-12-10 10:34 hoffman + + * Source/: cmMakeDepend.cxx, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: BUG: fix compile flags for source + files, and fix depend bug for cmake 14 branch + +2002-12-10 09:34 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: remove cerr + +2002-12-10 09:28 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h, cmMakeDepend.cxx: BUG: fix bug + in depends + +2002-12-09 16:23 andy + + * Source/cmaketest.cxx: Add to usage + +2002-12-09 16:22 andy + + * Modules/FindPythonLibs.cmake: Better search for python + +2002-12-09 14:33 king + + * Modules/CMakeImportBuildSettings.cmake: ENH: Using only filename + without path or extension for comparing build tools. + +2002-12-09 10:07 hoffman + + * Source/MFCDialog/: CMakeSetup.cpp, CMakeSetupDialog.cpp, + CMakeSetupDialog.h: clean up leaks + +2002-12-09 08:27 hoffman + + * Modules/: CMakeVS6BackwardCompatibility.cmake, + CMakeVS7BackwardCompatibility.cmake: use win32 threads for win32 + +2002-12-08 22:36 andy + + * Source/: ctest.cxx, ctest.h: Initial addition of coverage + +2002-12-08 22:35 andy + + * Source/cmSystemTools.cxx: Fix bug in globbing. Now it actually + uses only files or directories that result in globbing not the + ones that were is the vector before + +2002-12-08 22:33 andy + + * Source/: cmGlobalGenerator.cxx, cmLocalUnixMakefileGenerator.cxx: + Rename variable to remove warning + +2002-12-08 14:25 starreveld + + * Templates/CMakeLists.txt: ERR: Remove references to files removed + 4 days ago + +2002-12-06 16:03 hoffman + + * Source/MFCDialog/: CMakeSetup.rc, CMakeSetupDialog.cpp, + CMakeSetupDialog.h: ENH: move version to title bar + +2002-12-06 15:35 hoffman + + * Source/: cmGlobalUnixMakefileGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmMakefile.cxx: ENH: fix IntDir + jump and build problem + +2002-12-06 11:43 hoffman + + * Source/cmGlobalGenerator.cxx: ENH: set the CXX and CC environment + vars + +2002-12-06 10:16 hoffman + + * Modules/CMakeDetermineCCompiler.cmake: BUG: fix C compiler init + +2002-12-06 10:09 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: clean up compiler picking code + +2002-12-06 10:02 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Source/cmGlobalVisualStudio6Generator.cxx: fix for generator + picked compilers + +2002-12-05 16:53 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: use correct path type + for check_cache file + +2002-12-05 16:52 hoffman + + * Source/cmDynamicLoader.cxx: fix free before use + +2002-12-05 15:54 hoffman + + * Source/MFCDialog/PropertyList.cpp: ENH: add status bar and help + for items + +2002-12-05 15:48 hoffman + + * Source/MFCDialog/: CMakeSetup.rc, CMakeSetupDialog.cpp, + PropertyList.cpp: ENH: add status bar and help for items + +2002-12-05 14:56 hoffman + + * Source/: cmCacheManager.cxx, cmLocalUnixMakefileGenerator.cxx: + ENH: add a rule to automatically re-run cmake from the top if the + CMakeCache.txt file is changed + +2002-12-05 14:24 andy + + * Source/Makefile.in: Better dependencies for bootstrap + +2002-12-05 13:44 hoffman + + * Modules/CMakeBackwardCompatibilityC.cmake, + Modules/CMakeBackwardCompatibilityCXX.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeVS6BackwardCompatibility.cmake, + Modules/CMakeVS6FindMake.cmake, + Modules/CMakeVS7BackwardCompatibility.cmake, + Modules/CMakeVS7FindMake.cmake, Modules/Dart.cmake, + Modules/Platform/Windows-cl.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalBorlandMakefileGenerator.h, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalNMakeMakefileGenerator.h, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.h, + Source/cmGlobalVisualStudio6Generator.cxx, + Source/cmGlobalVisualStudio6Generator.h, + Source/cmGlobalVisualStudio7Generator.cxx, + Source/cmGlobalVisualStudio7Generator.h, + Source/cmLocalVisualStudio6Generator.cxx: ENH: unify + EnableLanguage across all generators + +2002-12-05 11:55 andy + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/LoadedCommand.cxx, LoadCommand/LoadedCommand.h.in, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/LoadedCommand.cxx, + LoadCommandOneConfig/LoadedCommand.h.in: Speedup the test + +2002-12-05 11:42 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: make sure OK can not + be hit first time around + +2002-12-05 11:09 martink + + * Source/cmGlobalVisualStudio7Generator.h: use InAll target setting + to determine what targets are in the default build + +2002-12-05 10:47 king + + * Modules/: FindVTK.cmake, UseVTK40.cmake, + UseVTKBuildSettings40.cmake, UseVTKConfig40.cmake: ENH: Added + support for finding/using VTK 4.0 without using its UseVTK.cmake + file that does a LOAD_CACHE. + +2002-12-05 10:34 king + + * Modules/CMakeImportBuildSettings.cmake: BUG: Fix for string + comparison when one string is empty. + +2002-12-05 09:46 king + + * Modules/: CMakeBuildSettings.cmake.in, + CMakeExportBuildSettings.cmake, CMakeImportBuildSettings.cmake: + ENH: Adding CMAKE_EXPORT_BUILD_SETTINGS and + CMAKE_IMPORT_BUILD_SETTINGS macro. + +2002-12-05 08:30 martink + + * Source/cmGlobalVisualStudio7Generator.cxx: use InAll target + setting to determine what targets are in the default build + +2002-12-04 18:44 king + + * Source/: cmStringCommand.cxx, cmStringCommand.h: ENH: Added + COMPARE modes to STRING command. + +2002-12-04 16:59 king + + * Modules/CMakeUnixFindMake.cmake: BUG: Removed stray debugging + message. + +2002-12-04 14:18 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: When a full path to + a library cannot be parsed, just add the whole path to the link + line. If it isn't a valid path, the linker will complain. + +2002-12-04 10:57 hoffman + + * Modules/CMakeUnixFindMake.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx, Source/cmake.cxx, + Source/cmake.h: BUG: fix get make command problems. + +2002-12-04 10:44 martink + + * Source/cmake.cxx: added CMAKE_BACKWARDS_COMPATIBILITY entry + +2002-12-04 10:25 martink + + * Source/cmLinkLibrariesCommand.h: updated comment + +2002-12-03 16:19 hoffman + + * Modules/CMakeBorlandFindMake.cmake, + Modules/CMakeNMakeFindMake.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CMakeUnixFindMake.cmake, Modules/Platform/CYGWIN.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.cxx: determine + CMAKE_MAKE_PROGRAM in EnableLanguage + +2002-12-03 15:23 hoffman + + * Source/CMakeLists.txt, + Source/cmLocalBorlandMakefileGenerator.cxx, + Source/cmLocalBorlandMakefileGenerator.h, + Source/cmLocalNMakeMakefileGenerator.cxx, + Source/cmLocalNMakeMakefileGenerator.h, + Templates/CCMakeSystemConfig.cmake.in, + Templates/CMakeBorlandWindowsSystemConfig.cmake, + Templates/CMakeNMakeWindowsSystemConfig.cmake, + Templates/CXXCMakeSystemConfig.cmake.in: remove unused files + +2002-12-03 14:32 martink + + * Source/MFCDialog/CMakeSetupDialog.cpp: remove code warrior and + fixed GUI isues + +2002-12-03 14:27 martink + + * Source/MFCDialog/CMakeSetup.rc: remove code warrior and fixed GUI + isues + +2002-12-03 14:15 ibanez + + * Modules/FindImageMagick.cmake: Module to find tools from the + ImageMagick package. These tools are useful for converting image + formats. + +2002-12-03 14:09 martink + + * Source/: CMakeLists.txt, Makefile.in, cmake.cxx, + MFCDialog/CMakeSetup.rc, MFCDialog/CMakeSetupDialog.cpp, + MFCDialog/CMakeSetupDialog.h: remove code warrior and fixed GUI + isues + +2002-12-03 13:46 ibanez + + * Modules/FindFLTK.cmake: ENH: description of variables now follows + other style in other .cmake files. + +2002-12-03 13:44 ibanez + + * Modules/FindGLUT.cmake: ENH: Description of variables now + specifies that the full path is required. + +2002-12-03 12:59 martink + + * Source/cmMakefile.cxx: fix purify FMR + +2002-12-03 11:23 martink + + * CMakeLists.txt: bug fix and some cleanup + +2002-12-03 11:21 martink + + * Tests/.NoDartCoverage: clean up coverage some + +2002-12-03 10:47 hoffman + + * Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/Platform/Linux-como.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: correctly place both + LINK_FLAGS and CXX_LINK_FLAGS and C_LINK_FLAGS into all the rules + +2002-12-03 09:59 hoffman + + * Modules/CMakeDefaultMakeRuleVariables.cmake: use LINK_FLAGS not C + and CXX LINK_FLAGS + +2002-12-02 16:35 martink + + * Source/cmStringCommand.cxx: fix compile warning + +2002-12-02 16:15 hoffman + + * Source/cmMakefile.cxx: add project command even if inheriting + +2002-12-02 16:08 hoffman + + * Source/cmListFileCache.cxx: ENH: put the project command at the + front of the project + +2002-12-02 15:59 martink + + * Source/: cmFindLibraryCommand.cxx, cmMakefile.cxx, cmMakefile.h, + cmSystemTools.cxx, cmSystemTools.h: removed cmMakefile depend + from cmSystemTools + +2002-12-02 15:43 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: ENH: remove forced + enable language call because a PROJECT command is now added to + each project + +2002-12-02 15:37 hoffman + + * Source/: cmListFileCache.cxx, cmMakefile.cxx: ENH: remove cerr + calls + +2002-12-02 15:30 hoffman + + * Source/: cmListFileCache.cxx, cmListFileCache.h, cmMakefile.cxx: + ENH: add PROJECT command if there is not one + +2002-12-02 15:03 martink + + * Source/cmIfCommand.cxx: minor fix + +2002-12-02 13:18 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: add a space around + the compile flags + +2002-12-02 10:33 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix compile flags + for a single file + +2002-11-29 18:56 andy + + * Source/cmGlobalUnixMakefileGenerator.cxx: Fix problem on unix + with space + +2002-11-29 16:35 andy + + * Source/cmSystemTools.cxx: When cd-jing into directory, if + directory has space, it should put quotes around. I guess we + could just put quotes around all the time + +2002-11-28 23:45 ibanez + + * Modules/FindFLTK.cmake: ENH: FLTK 1.1.1 under Windows links now + with the comctl32 library. + +2002-11-27 07:42 andy + + * Tests/ObjC++/CMakeLists.txt: Add missing library. The test should + be linked to framework Cocoa + +2002-11-27 07:41 andy + + * Source/cmSystemTools.cxx: Add objective C++ file in the list of + C++ files. This may be wrong, but it will fix problems on Mac for + now + +2002-11-26 19:02 starreveld + + * Source/CMakeLists.txt: Add ObjC++ test for OSX + +2002-11-26 19:01 starreveld + + * Tests/ObjC++/: CMakeLists.txt, objc++.mm: + Test for ObjC++ on OSX machines only + +2002-11-26 09:37 andy + + * Source/cmTryCompileCommand.cxx: Remove warning + +2002-11-25 17:57 andy + + * Modules/FindwxWindows.cmake: Change priorities + +2002-11-22 16:59 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: fix for paths with + spaces and borland + +2002-11-22 16:18 hoffman + + * Modules/Platform/Windows-bcc32.cmake: change flags for borland + +2002-11-22 15:44 andy + + * Source/cmLocalVisualStudio6Generator.cxx: Revert back to 1.5, + since it is fixed in ConvertToOutputPath and this breaks Windows + 98 + +2002-11-22 09:45 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: Rename local variable + +2002-11-21 23:54 hoffman + + * Source/cmLocalVisualStudio7Generator.cxx: add support for + CMAKE_C_FLAGS and handle quotes in CMAKE_CXX_FLAGS + +2002-11-21 16:11 hoffman + + * Source/cmTryCompileCommand.cxx: fix for c flags + +2002-11-21 16:03 hoffman + + * Source/: cmTryCompileCommand.cxx: fix flag setting + +2002-11-21 15:36 hoffman + + * Modules/Platform/CYGWIN.cmake: remove debug stuff + +2002-11-21 15:15 hoffman + + * Source/cmTryCompileCommand.cxx: move compile defs to cxx and c + flags + +2002-11-21 14:59 hoffman + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h: clean up + entire temp directory + +2002-11-21 14:45 hoffman + + * Modules/: CheckIncludeFileCXX.cmake, + TestForANSIStreamHeaders.cmake: try to fix check for ansi stream + +2002-11-21 14:32 hoffman + + * Modules/CheckIncludeFileCXX.cmake: fix order + +2002-11-21 14:24 hoffman + + * Modules/TestForSTDNamespace.cmake: fix order + +2002-11-21 14:11 hoffman + + * Modules/CheckIncludeFileCXX.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForANSIStreamHeaders.cmake, + Modules/TestForSTDNamespace.cmake, + Source/cmTryCompileCommand.cxx: move ansi cxx flags stuff out of + try compile and into cmake files + +2002-11-21 13:37 hoffman + + * Source/cmSystemTools.cxx: fix network paths with spaces + +2002-11-21 13:28 hoffman + + * Modules/CMakeBackwardCompatibilityCXX.cmake: have to cache + ansi_cxxflags + +2002-11-21 12:59 hoffman + + * Modules/: CMakeBackwardCompatibilityCXX.cmake, + TestCXXAcceptsFlag.cmake: spelling error + +2002-11-21 12:52 hoffman + + * Modules/: CMakeBackwardCompatibilityCXX.cmake, DummyCXXFile.cxx, + TestCXXAcceptsFlag.cmake, Platform/IRIX64.cmake, + Platform/OSF1.cmake: add checks for ansi flags and not hard code + them + +2002-11-21 12:26 andy + + * Source/cmLocalVisualStudio6Generator.cxx: Fix for network paths + with space + +2002-11-21 12:26 andy + + * Source/ctest.cxx: Fix for network paths + +2002-11-21 11:46 barre + + * Modules/CMakeSystemSpecificInformation.cmake: FUX: those vars + need to be ADVANCED + +2002-11-21 10:11 king + + * Modules/: CheckVariableExists.c, CheckVariableExists.cmake: ENH: + Added CHECK_VARIABLE_EXISTS macro. + +2002-11-21 10:03 king + + * Source/CursesDialog/cmCursesMainForm.cxx: ERR: Fixed string + literal to char* warnings. + +2002-11-21 08:45 hoffman + + * Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/Platform/CYGWIN.cmake, + Source/cmLocalUnixMakefileGenerator.cxx, + Tests/SystemInformation/SystemInformation.in: fix for create + shared library + +2002-11-21 08:19 martink + + * Tests/LinkLineOrder/: Exec1.c, Exec2.c, NoDepB.c, NoDepC.c, + NoDepE.c, NoDepF.c, NoDepX.c, NoDepY.c, NoDepZ.c, One.c: + converted c plus plus comments + +2002-11-21 08:12 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: ENH: fix for module + run time flag + +2002-11-20 18:18 hoffman + + * Source/: cmCacheManager.h, cmSystemTools.cxx: rename foo + variables to better names + +2002-11-20 18:00 king + + * Source/: cmLoadCacheCommand.cxx, cmLoadCacheCommand.h: ENH: Added + READ_WITH_PREFIX option to LOAD_CACHE command. This allows + reading of cache values from another cache without actually + creating local copies of the cache entires. The values are + stored as prefixed local makefile variables. + +2002-11-20 16:23 king + + * Modules/FindVTK.cmake: ENH: Added support to find VTK 4.0. + +2002-11-20 15:23 hoffman + + * Modules/CMakeCCompiler.cmake.in: BUG: use CMAKE_COMPILER_IS_GNUCC + not CMAKE_COMPILER_IS_GNUGCC + +2002-11-20 14:40 ibanez + + * Modules/FindLATEX.cmake: ENH: Now also locates the "makeindex" + program. + +2002-11-20 14:11 king + + * Modules/FindVTK.cmake: ENH: Only search VTK_INSTALL_PATH if + USE_INSTALLED_VTK is on. Only search VTK_BINARY_PATH if + USE_BUILT_VTK is on. + +2002-11-20 13:37 king + + * Modules/FindVTK.cmake: ENH: New implementation of FindVTK to take + advantage of VTKConfig.cmake. Also provides more powerful search + path mechanism, and requires only one cache entry in user + project. + +2002-11-20 12:58 king + + * Source/cmSystemTools.cxx: BUG: Attempt to fix CopyFile problem + using flush before check for success. + +2002-11-20 09:06 king + + * Source/cmGetFilenameComponentCommand.cxx: ERR: Fixed + signed/unsigned warning. + +2002-11-20 09:06 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ERR: Fixed unused + parameter warning. + +2002-11-20 09:04 martink + + * Tests/LinkLineOrder/NoDepA.c: fixed comments to be c style not c + plus plus + +2002-11-19 18:17 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Source/cmGetFilenameComponentCommand.cxx, + Source/cmGetFilenameComponentCommand.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h: allow flags to be in the CC and CXX + environment variables + +2002-11-19 18:01 perera + + * Source/CMakeLists.txt, Source/cmMakefile.cxx, + Source/cmTarget.cxx, Source/cmTarget.h, + Tests/LinkLineOrder/CMakeLists.txt, Tests/LinkLineOrder/Exec1.c, + Tests/LinkLineOrder/Exec2.c, Tests/LinkLineOrder/NoDepA.c, + Tests/LinkLineOrder/NoDepB.c, Tests/LinkLineOrder/NoDepC.c, + Tests/LinkLineOrder/NoDepE.c, Tests/LinkLineOrder/NoDepF.c, + Tests/LinkLineOrder/NoDepX.c, Tests/LinkLineOrder/NoDepY.c, + Tests/LinkLineOrder/NoDepZ.c, Tests/LinkLineOrder/One.c, + Tests/LinkLineOrder/Two.c: BUG: the dependency analysis would + incorrectly alphabetically re-order the link lines, which affects + external libraries pulled up from deep within the dependency + tree. Fixed by preserving order everywhere. + +2002-11-19 15:55 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: fixes to better honor env CC and + CXX + +2002-11-19 14:40 hoffman + + * Source/cmSystemTools.cxx: ENH: add some better output when copy + file fails + +2002-11-19 14:40 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: fix some warnings + +2002-11-19 13:19 andy + + * Source/CursesDialog/cmCursesPathWidget.cxx: Add / after directory + name when doing tab completion + +2002-11-19 13:09 andy + + * Source/CursesDialog/: cmCursesMainForm.cxx, cmCursesMainForm.h: + Add progress to ccmake + +2002-11-19 12:20 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: BUG: fix CFLAGS + +2002-11-19 12:18 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: BUG: fix handling of CXX + +2002-11-19 09:12 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: fix warning + +2002-11-19 09:01 martink + + * Source/cmSystemTools.cxx: fix in warning + +2002-11-18 16:29 andy + + * Source/CursesDialog/: cmCursesMainForm.cxx, cmCursesMainForm.h: + Initial add of progress + +2002-11-18 15:14 hoffman + + * Modules/: CMakeBackwardCompatibilityC.cmake, FindThreads.cmake: + BUG: fix for thread and cache override + +2002-11-18 10:52 andy + + * Modules/: CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckLibraryExists.cmake, CheckSizeOf.cmake, + TestForANSIForScope.cmake, TestForANSIStreamHeaders.cmake, + TestForSTDNamespace.cmake: Add more messages, make messages look + the same, add checks if test was already successfull + +2002-11-18 10:51 andy + + * Modules/CMakeSystemSpecificInformation.cmake: If system detection + fails, make copy of CMakeCache + +2002-11-18 09:08 hoffman + + * Tests/SystemInformation/SystemInformation.in: add print for + compiler is gnu + +2002-11-17 17:28 martink + + * Source/: cmake.cxx, cmLocalUnixMakefileGenerator.cxx: fix some + compiler warnings hopefully + +2002-11-15 17:45 hoffman + + * Modules/Platform/Windows-bcc32.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix for borland run + time dll + +2002-11-15 16:00 hoffman + + * Modules/Platform/SunOS.cmake: fix for sun + +2002-11-15 13:17 martink + + * Source/cmake.cxx: fixed bad source directory bug + +2002-11-15 12:54 martink + + * Source/cmIfCommand.cxx: fixed compiler warning + +2002-11-15 10:07 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: ENH: add back + install prefix + +2002-11-15 09:30 hoffman + + * Modules/FindThreads.cmake: fix thread logic + +2002-11-15 09:16 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: ENH: add CFLAGS and + CXXFLAGS + +2002-11-15 07:42 andy + + * Source/cmakemain.cxx: Oops, std namespace + +2002-11-14 18:18 andy + + * Source/WXDialog/: cmWXMainFrame.cxx, cmWXMainFrame.h, + wxCMakeSetup.cxx: Add progress reporting + +2002-11-14 17:12 andy + + * Source/cmakemain.cxx: Add Progress support + +2002-11-14 16:29 berk + + * Modules/Platform/HP-UX.cmake: temp fix for hp + +2002-11-14 16:29 hoffman + + * Source/TODO: [no log message] + +2002-11-14 16:12 berk + + * Modules/Platform/HP-UX.cmake: fix flags for hp + +2002-11-14 14:06 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: Fix compile flags on c + files in static liobraries on windows + +2002-11-14 11:33 andy + + * Modules/CMakeSystemSpecificInformation.cmake, + Modules/Platform/Windows-cl.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix flags for c + compiler on windows + +2002-11-14 11:16 martink + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h: added another func + +2002-11-14 11:03 martink + + * Source/: cmCPluginAPI.h, cmCPluginAPI.cxx: added another func + +2002-11-14 09:38 andy + + * Modules/: FindJNI.cmake, FindJava.cmake, FindPythonLibs.cmake: + Clean find for Python, add find for python 2.2 on windows, + cleanup java on windows and add java 1.4 support + +2002-11-14 09:38 berk + + * Source/cmLocalUnixMakefileGenerator.cxx: Added missing space. + +2002-11-14 09:37 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: Fix building on NMake. + Use short paths + +2002-11-14 08:59 hoffman + + * Modules/Platform/Windows-bcc32.cmake: BUG: fix for missing temp + file variable + +2002-11-13 23:36 hoffman + + * Modules/Platform/Windows-bcc32.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: reorder tWR so that it + does not crash with shared + +2002-11-13 20:14 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: add support for borland + run time flag for shared builds + +2002-11-13 20:11 hoffman + + * Modules/Platform/Windows-bcc32.cmake: fix shared builds on + borland and add debug stuff for makefiles + +2002-11-13 18:27 hoffman + + * Source/: cmLocalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.h: BUG: fix for build out of dir for + windows + +2002-11-13 16:31 hoffman + + * Modules/: CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckLibraryExists.cmake, CheckSizeOf.cmake: ENH: add status + messages + +2002-11-13 15:59 martink + + * Source/: cmLocalUnixMakefileGenerator.cxx, cmMakefile.cxx, + cmMakefile.h, cmMessageCommand.cxx, cmMessageCommand.h: ENH: + space fixes and add a status option to message command + +2002-11-13 15:32 martink + + * Modules/Platform/Windows-bcc32.cmake: ENH: move -P flag from + cxxflags to the compile line for cxx files + +2002-11-13 15:20 hoffman + + * Source/: cmGlobalUnixMakefileGenerator.cxx, cmake.cxx, cmake.h: + ENH: check to make sure cmake matches the cmake used to generate + the cache + +2002-11-13 14:51 hoffman + + * Modules/Platform/Windows-bcc32.cmake: ENH: use correct run time + library for borland + +2002-11-13 14:31 hoffman + + * Source/: cmCacheManager.cxx, cmGlobalUnixMakefileGenerator.cxx: + ENH: force a global generate if the cache version does not match + the running cmake + +2002-11-13 13:19 berk + + * Source/Makefile.in: BUG: add missing depend rules for hp make + +2002-11-13 11:49 hoffman + + * Modules/FindX11.cmake: fix for nsl library and X11 + +2002-11-13 11:36 hoffman + + * Modules/: CMakeBackwardCompatibilityC.cmake, FindX11.cmake: fix + for nsl library and X11 + +2002-11-13 11:25 hoffman + + * Modules/Platform/Windows-bcc32.cmake: BUG: fix order of link line + for creating shared libraries + +2002-11-12 19:39 king + + * Modules/CheckFunctionExists.cmake: BUG: Fixed doc string on + generated variable. + +2002-11-12 16:58 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix path problems + +2002-11-12 16:27 will + + * Modules/FindX11.cmake: Backwards compatibility. Andy and Bill + made me add socket library. + +2002-11-12 15:24 hoffman + + * Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Source/cmLocalUnixMakefileGenerator.cxx: ENH: add .def file + support + +2002-11-12 14:48 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: change to new + variables + +2002-11-12 14:19 hoffman + + * Modules/: CMakeBackwardCompatibilityC.cmake, + CheckLibraryExists.cmake, FindThreads.cmake: add find threads + check + +2002-11-12 14:18 hoffman + + * Tests/SystemInformation/: CMakeLists.txt, DumpInformation.cxx, + DumpInformation.h.in, SystemInformation.in: clean up test for + html output + +2002-11-12 13:06 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: fix reg expression + +2002-11-12 12:47 king + + * Source/cmLocalUnixMakefileGenerator.cxx: [no log message] + +2002-11-12 10:47 barre + + * Modules/FindOpenGL.cmake: FIX: minor fix, OPENGL_INCLUDE_PATH was + set 2 times + +2002-11-12 09:33 hoffman + + * Tests/SystemInformation/DumpInformation.cxx: [no log message] + +2002-11-12 09:31 hoffman + + * Tests/SystemInformation/CMakeLists.txt: fix project name + +2002-11-12 09:12 hoffman + + * Modules/: CMakeSystemSpecificInformation.cmake, + Platform/CYGWIN.cmake, Platform/Windows-bcc32.cmake, + Platform/Windows-cl.cmake: Set CMAKE_BUILD_TOOL + +2002-11-11 18:10 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, Source/CMakeLists.txt, + Source/TODO, Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h: ENH: fix up several + problems with new stuff + +2002-11-11 18:07 hoffman + + * Tests/SystemInformation/: CMakeLists.txt, DumpInformation.cxx, + DumpInformation.h.in, SystemInformation.in: new test + +2002-11-11 17:00 hoffman + + * Modules/Platform/OSF1.cmake: Fix for OSF + +2002-11-11 13:15 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: Fix regular expressions + to be able to handle windows libraries + +2002-11-11 12:31 hoffman + + * Modules/CMakeBackwardCompatibilityC.cmake, + Modules/CMakeCCompiler.cmake.in, + Modules/CMakeCXXCompiler.cmake.in, Modules/CMakeSystem.cmake.in, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/Platform/HP-UX.cmake, Modules/Platform/IRIX.cmake, + Modules/Platform/IRIX64.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, Modules/Platform/gcc.cmake, + Source/TODO, Source/cmGlobalUnixMakefileGenerator.cxx: clean up + flags with _init flags + +2002-11-11 11:43 hoffman + + * Modules/: CMakeLists.txt, Platform/CMakeLists.txt: add install + stuff for platform directory + +2002-11-11 09:11 hoffman + + * Modules/Platform/Darwin.cmake: ENH: fix for darwin modules + +2002-11-10 10:02 hoffman + + * Modules/Platform/: HP-UX.cmake, IRIX.cmake, IRIX64.cmake, + Windows-bcc32.cmake, Windows-cl.cmake, gcc.cmake: BUG: fix + setting of c flags + +2002-11-09 13:43 hoffman + + * Modules/Platform/: HP-UX.cmake, IRIX.cmake, IRIX64.cmake, + Windows-bcc32.cmake, Windows-cl.cmake, gcc.cmake: fix for + cxxflags + +2002-11-08 18:07 king + + * Modules/Platform/Linux-como.cmake: ENH: Adding support for comeau + C++ compiler. + +2002-11-08 18:06 king + + * Modules/: CMakeSystemSpecificInformation.cmake, + Platform/HP-UX.cmake, Platform/IRIX.cmake, Platform/IRIX64.cmake, + Platform/Linux.cmake, Platform/Windows-bcc32.cmake, + Platform/Windows-cl.cmake, Platform/gcc.cmake: ENH: Moved caching + of C*_FLAGS* settings down to + CMakeSystemSpecificInformation.cmake. The platform files can set + the defaults on the first run, and then the settings are cached + at the end. + +2002-11-08 18:05 king + + * Source/cmSetCommand.cxx: BUG: A variable is not in the cache if + it is UNINITIALIZED. + +2002-11-08 18:05 king + + * Source/cmGlobalCodeWarriorGenerator.cxx: ERR: Removed use of + NULL. + +2002-11-08 18:05 king + + * Source/cmSystemTools.cxx: ERR: Added missing include. + +2002-11-08 17:24 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake: store the compiler in the cache + +2002-11-08 15:46 hoffman + + * CMakeLists.txt, Modules/CMakeBackwardCompatibilityCXX.cmake, + Modules/CMakeCCompiler.cmake.in, + Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineSystem.cmake, + Modules/CMakePrintSystemInformation.cmake, + Modules/CMakeSystem.cmake.in, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CYGWIN.cmake, Modules/CheckIncludeFile.cxx.in, + Modules/CheckIncludeFileCXX.cmake, + Modules/TestForANSIForScope.cmake, + Modules/TestForAnsiForScope.cxx, + Modules/TestForSTDNamespace.cmake, + Modules/TestForSTDNamespace.cxx, Modules/Windows.cmake, + Modules/Platform/AIX.cmake, Modules/Platform/BSDOS.cmake, + Modules/Platform/CYGWIN.cmake, Modules/Platform/Darwin.cmake, + Modules/Platform/FreeBSD.cmake, Modules/Platform/HP-UX.cmake, + Modules/Platform/IRIX.cmake, Modules/Platform/IRIX64.cmake, + Modules/Platform/Linux.cmake, Modules/Platform/MP-RAS.cmake, + Modules/Platform/NetBSD.cmake, Modules/Platform/OSF1.cmake, + Modules/Platform/OpenBSD.cmake, Modules/Platform/RISCos.cmake, + Modules/Platform/SCO_SV.cmake, Modules/Platform/SINIX.cmake, + Modules/Platform/SunOS.cmake, Modules/Platform/True64.cmake, + Modules/Platform/ULTRIX.cmake, Modules/Platform/UNIX_SV.cmake, + Modules/Platform/UnixWare.cmake, + Modules/Platform/Windows-bcc32.cmake, + Modules/Platform/Windows-cl.cmake, + Modules/Platform/Windows.cmake, Modules/Platform/Xenix.cmake, + Modules/Platform/gcc.cmake, Source/CMakeLists.txt, Source/TODO, + Source/cmExecProgramCommand.cxx, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalGenerator.cxx, Source/cmGlobalGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmGlobalNMakeMakefileGenerator.h, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.h, Source/cmIfCommand.cxx, + Source/cmLoadCommandCommand.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, Source/cmMakefile.cxx, + Source/cmStandardIncludes.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTryCompileCommand.cxx, + Source/cmWin32ProcessExecution.cxx, + Source/cmWin32ProcessExecution.h, Source/ctest.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp: Complete rework of + makefile generators expect trouble + +2002-11-08 13:28 hoffman + + * Modules/: CMakeCCompiler.cmake.in, CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake, + CMakeSystemSpecificInformation.cmake, + Platform/Windows-bcc32.cmake, Platform/Windows-cl.cmake: [no log + message] + +2002-11-08 11:31 hoffman + + * Source/ctest.cxx: fix ctest + +2002-11-08 11:30 hoffman + + * Modules/: AIX.cmake, BSDOS.cmake, + CMakeSystemSpecificInformation.cmake, CYGWIN.cmake, Darwin.cmake, + FreeBSD.cmake, HP-UX.cmake, IRIX.cmake, IRIX64.cmake, + Linux.cmake, MP-RAS.cmake, NetBSD.cmake, OSF1.cmake, + OpenBSD.cmake, RISCos.cmake, SCO_SV.cmake, SINIX.cmake, + SunOS.cmake, True64.cmake, ULTRIX.cmake, UNIX_SV.cmake, + UnixWare.cmake, Windows-bcc32.cmake, Windows-cl.cmake, + Windows.cmake, Xenix.cmake, gcc.cmake, Platform/AIX.cmake, + Platform/BSDOS.cmake, Platform/CYGWIN.cmake, + Platform/Darwin.cmake, Platform/FreeBSD.cmake, + Platform/HP-UX.cmake, Platform/IRIX.cmake, Platform/IRIX64.cmake, + Platform/Linux.cmake, Platform/MP-RAS.cmake, + Platform/NetBSD.cmake, Platform/OSF1.cmake, + Platform/OpenBSD.cmake, Platform/RISCos.cmake, + Platform/SCO_SV.cmake, Platform/SINIX.cmake, + Platform/SunOS.cmake, Platform/True64.cmake, + Platform/ULTRIX.cmake, Platform/UNIX_SV.cmake, + Platform/UnixWare.cmake, Platform/Windows-bcc32.cmake, + Platform/Windows-cl.cmake, Platform/Windows.cmake, + Platform/Xenix.cmake, Platform/gcc.cmake: move to platform + directory + +2002-11-08 11:09 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake: hp fixes + +2002-11-08 10:40 hoffman + + * Modules/HP-UX.cmake: hp fixes + +2002-11-08 10:29 hoffman + + * Modules/HP-UX.cmake: hp fixes + +2002-11-08 10:22 hoffman + + * Modules/CMakeSystemSpecificInformation.cmake, + Modules/HP-UX.cmake, Source/cmLocalUnixMakefileGenerator.cxx: hp + fixes + +2002-11-08 08:47 hoffman + + * Modules/: CMakeBackwardCompatibilityCXX.cmake, HP-UX.cmake, + TestForANSIForScope.cmake: ENH: fix for hp and remove some + messages + +2002-11-07 17:45 hoffman + + * Modules/: CMakeBackwardCompatibilityCXX.cmake, + TestForANSIForScope.cmake, TestForAnsiForScope.cxx, + TestForSTDNamespace.cxx: [no log message] + +2002-11-07 17:26 hoffman + + * Modules/TestForANSIForScope.cmake: [no log message] + +2002-11-07 17:21 hoffman + + * Modules/: CMakeBackwardCompatibilityCXX.cmake, HP-UX.cmake, + TestForAnsiForScope.cxx, TestForSTDNamespace.cmake, + TestForSTDNamespace.cxx: [no log message] + +2002-11-07 11:43 hoffman + + * Modules/Windows-cl.cmake, Source/cmExecProgramCommand.cxx, + Source/cmLocalUnixMakefileGenerator.cxx: win32 apps and crash on + sun + +2002-11-07 09:22 king + + * Source/cmStringCommand.cxx: ERR: Fixed signed/unsigned warnings. + +2002-11-07 09:15 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: Revert + +2002-11-07 09:04 andy + + * Source/: cmake.cxx, cmake.h: Revert back + +2002-11-07 09:01 andy + + * Source/WXDialog/ReadMe.Mac.txt: Add readme for mac + +2002-11-06 23:25 hoffman + + * Source/: cmGlobalNMakeMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx: clean up echos + +2002-11-06 23:06 hoffman + + * Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/Windows-bcc32.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h: borland mostly working, + tests are passing, no command to file stuff yet + +2002-11-06 18:40 king + + * Modules/FindITK.cmake: ENH: Enhanced FindITK supporting use of + ITK from an install tree or a build tree. Only one cache entry + is brought into user's project, called "ITK_DIR". This is the + location of an ITKConfig.cmake file from which other settings are + loaded. + +2002-11-06 18:05 king + + * Source/cmStringCommand.cxx, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: BUG: Fixed + STRING(REGEX REPLACE ...) and added better test. + +2002-11-06 17:35 king + + * Source/cmCommands.cxx, Source/cmStringCommand.cxx, + Source/cmStringCommand.h, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: ENH: Added STRING + command. + +2002-11-06 17:04 hoffman + + * Modules/Windows-bcc32.cmake: borland config + +2002-11-06 16:59 king + + * Source/: cmRegularExpression.cxx, cmRegularExpression.h: ENH: + compile method now returns whether compilation succeeded. + +2002-11-06 16:30 hoffman + + * Modules/Windows-cl.cmake, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h: borland getting closer + +2002-11-06 16:05 andy + + * Source/WXDialog/CMakeLists.txt, Templates/AppleInfo.plist: Use + CMake icon on Mac + +2002-11-06 14:56 andy + + * CMakeIcon.icns, Source/WXDialog/CMakeIcon.icns: Add Mac icon + +2002-11-06 14:54 andy + + * CMakeIcon.icns: Add CMake icon + +2002-11-06 14:53 andy + + * Source/WXDialog/CMakeIcon.gif: Remove background and make bigger + +2002-11-06 14:44 andy + + * Source/WXDialog/CMakeIcon.gif: Bigger icon + +2002-11-06 14:33 andy + + * Source/WXDialog/: CMakeIcon.gif, CMakeIcon.xpm, + cmWXMainFrame.cxx: Start adding CMake icon + +2002-11-06 13:06 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, ctest.cxx: Move the + hi-res time to system tools + +2002-11-06 12:04 andy + + * Source/: cmake.cxx, cmake.h, CursesDialog/cmCursesMainForm.cxx: + In certain cases, try to guess the source directory, so that you + can run cmake or ccmake without specifying source dir + +2002-11-06 11:36 andy + + * Source/: cmSystemTools.cxx, CursesDialog/cmCursesPathWidget.cxx: + Remove warning + +2002-11-06 11:20 barre + + * Source/cmMakeDepend.cxx: FIX: a / was appended without checking + if there wasn't one already. + +2002-11-06 08:52 andy + + * Tests/X11/X11.c: Try to fix test + +2002-11-05 23:07 hoffman + + * Source/: TODO, cmLocalUnixMakefileGenerator.cxx: remove warning + +2002-11-05 22:55 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, IRIX64.cmake: ranlib + trouble + +2002-11-05 22:44 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, IRIX.cmake, + IRIX64.cmake: fix for no ranlib + +2002-11-05 18:11 hoffman + + * CMakeLists.txt, Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeSystem.cmake.in, Modules/IRIX64.cmake: remove debug + message statements + +2002-11-05 18:06 hoffman + + * Modules/: IRIX64.cmake: [no log message] + +2002-11-05 17:57 hoffman + + * Modules/IRIX64.cmake, Source/cmLocalUnixMakefileGenerator.cxx: + [no log message] + +2002-11-05 17:55 hoffman + + * CMakeLists.txt: debug + +2002-11-05 17:49 hoffman + + * Modules/CMakeDefaultMakeRuleVariables.cmake: enh: add to + link libs + +2002-11-05 17:31 hoffman + + * Modules/: CYGWIN.cmake, IRIX.cmake, IRIX64.cmake, gcc.cmake: add + flags + +2002-11-05 17:20 andy + + * Modules/FindX11.cmake: Make things advanced + +2002-11-05 17:05 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: add cxx flags to link + exe + +2002-11-05 15:49 hoffman + + * Modules/: HP-UX.cmake, IRIX64.cmake, OSF1.cmake: add ansi flags + +2002-11-05 14:33 hoffman + + * Modules/: IRIX.cmake, IRIX64.cmake, SunOS.cmake: [no log message] + +2002-11-05 14:10 hoffman + + * Modules/: AIX.cmake, BSDOS.cmake, Darwin.cmake, FreeBSD.cmake, + HP-UX.cmake, IRIX.cmake, MP-RAS.cmake, NetBSD.cmake, OSF1.cmake, + OpenBSD.cmake, RISCos.cmake, SCO_SV.cmake, SINIX.cmake, + SunOS.cmake, True64.cmake, ULTRIX.cmake, UNIX_SV.cmake, + UnixWare.cmake, Xenix.cmake: ENH: add all the OS files + +2002-11-05 13:35 andy + + * Source/CursesDialog/ccmake.cxx: Cleanup + +2002-11-05 11:52 hoffman + + * Modules/Linux.cmake: add linux config file + +2002-11-05 11:31 hoffman + + * Modules/: CMakeSystemSpecificInformation.cmake, Windows.cmake: + add check for sstream + +2002-11-05 11:02 hoffman + + * Modules/: CMakeBackwardCompatibilityCXX.cmake, + CheckIncludeFile.cxx.in, CheckIncludeFileCXX.cmake: add check for + sstream + +2002-11-05 10:45 hoffman + + * Source/: cmGlobalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx: fix backwards compat enable and + remove full path target + +2002-11-05 09:38 andy + + * Source/WXDialog/CMakeLists.txt: More mac fixes + +2002-11-05 08:52 andy + + * Source/CursesDialog/: cmCursesFilePathWidget.cxx, + cmCursesFilePathWidget.h, cmCursesPathWidget.cxx, + cmCursesStringWidget.cxx: Reparent file path widget, add tab + completion support to path anf file path widget + +2002-11-05 08:51 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: Add a simple + globbing of files and directories + +2002-11-05 07:15 andy + + * Modules/FindX11.cmake, Tests/X11/CMakeLists.txt: Try to fix + FindX11 + +2002-11-05 07:06 andy + + * Tests/X11/X11.c: Simplify + +2002-11-04 19:45 king + + * Source/cmITKWrapTclCommand.cxx: ENH: Added generation of + --gccxml-compiler argument to GCC-XML for msvc6, msvc7, and nmake + makefiles generators. + +2002-11-04 17:37 andy + + * Source/CursesDialog/: cmCursesPathWidget.cxx, + cmCursesPathWidget.h, cmCursesStringWidget.cxx, + cmCursesStringWidget.h: Start working on adding tab support + +2002-11-04 16:59 andy + + * Source/cmWin32ProcessExecution.cxx: Fix windows process execution + so that it pops up the windows + +2002-11-04 16:26 hoffman + + * Modules/CMakeCCompiler.cmake.in, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/Windows-cl.cmake, Modules/Windows.cmake, Source/TODO, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTryCompileCommand.cxx: nmake + passing tests + +2002-11-04 15:21 andy + + * Source/WXDialog/CMakeLists.txt: Get the Mac resources done + +2002-11-04 15:01 andy + + * Source/WXDialog/CMakeLists.txt: Minor fixes + +2002-11-04 15:01 andy + + * Source/cmWriteFileCommand.cxx: Make directory if it does not + exist yet + +2002-11-04 14:50 andy + + * Source/WXDialog/CMakeLists.txt, Templates/AppleInfo.plist: + Attempt to automate apple gui generation + +2002-11-04 13:09 andy + + * Source/WXDialog/cmWXMainFrame.cxx: Try to fix generator problems + on Mac + +2002-11-04 11:54 andy + + * Tests/X11/X11.c: Fix test + +2002-11-04 10:13 hoffman + + * Source/TODO: [no log message] + +2002-11-04 10:11 hoffman + + * CMakeLists.txt, Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakePrintSystemInformation.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/Windows-cl.cmake, Modules/Windows.cmake, + Source/CMakeLists.txt, + Source/cmGlobalBorlandMakefileGenerator.cxx, + Source/cmGlobalNMakeMakefileGenerator.cxx, + Source/cmIfCommand.cxx, Source/cmLocalUnixMakefileGenerator.cxx: + nmake almost working + +2002-11-03 18:18 andy + + * Tests/X11/X11.c: Try to make test to run + +2002-11-01 23:00 hoffman + + * Source/MFCDialog/: CMakeSetup.rc, CMakeSetupDialog.cpp, + CMakeSetupDialog.h, resource.h: ENH: better resize + +2002-11-01 22:57 hoffman + + * Source/CMakeLists.txt: make qt stuff advanced + +2002-10-31 10:36 andy + + * Templates/CCMakeSystemConfig.cmake.in: Revert X11 stuff until + other steps are done + +2002-10-29 15:58 andy + + * Tests/X11/X11.c: Print message on system without X11 + +2002-10-29 15:54 andy + + * Tests/X11/: CMakeLists.txt, X11.c: Add Windows code + +2002-10-29 15:47 andy + + * Modules/FindX11.cmake: Now it should work + +2002-10-29 15:46 andy + + * Source/CMakeLists.txt, Tests/X11/CMakeLists.txt, Tests/X11/X11.c: + Add test for X11 + +2002-10-29 15:03 hoffman + + * Modules/CMakeCXXCompiler.cmake.in, + Modules/CMakeDefaultMakeRuleVariables.cmake, + Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeDetermineCXXCompiler.cmake, + Modules/CMakeDetermineSystem.cmake, + Modules/CMakePrintSystemInformation.cmake, + Modules/CMakeSystem.cmake.in, + Modules/CMakeSystemSpecificInformation.cmake, + Modules/CYGWIN.cmake, Source/cmGlobalGenerator.cxx, + Source/cmGlobalGenerator.h, + Source/cmGlobalNMakeMakefileGenerator.h, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmGlobalUnixMakefileGenerator.h, + Source/cmLoadCommandCommand.cxx, + Source/cmLocalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.h, Source/cmMakefile.cxx, + Source/cmSystemTools.cxx, Tests/Testing/CMakeLists.txt: branch + checkin of working cygwin build for generator cleanup and removal + of configure + +2002-10-29 13:34 andy + + * Templates/CCMakeSystemConfig.cmake.in: Remove X11 stuff + +2002-10-29 13:34 andy + + * Modules/: CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckLibraryExists.cmake, CheckSizeOf.cmake, TestBigEndian.cmake: + Add append to write_file + +2002-10-29 13:32 andy + + * Source/: cmWriteFileCommand.cxx, cmWriteFileCommand.h: Add flag + to WRITE_FILE to append + +2002-10-29 13:30 andy + + * Modules/CMakeBackwardCompatibilityC.cmake: Do this the right way + +2002-10-29 13:30 andy + + * Modules/FindX11.cmake: This should substitute configure part that + finds X11 + +2002-10-28 10:29 king + + * Source/cmITKWrapTclCommand.cxx: ENH: Added generation of + --gccxml-cxxflags option to complement --gccxml-compiler. + +2002-10-25 16:47 hoffman + + * Modules/CMakeDetermineCCompiler.cmake, + Modules/CMakeSystemSpecificInformation.cmake, + Source/cmGlobalUnixMakefileGenerator.cxx, + Source/cmLocalUnixMakefileGenerator.cxx: [no log message] + +2002-10-25 16:13 hoffman + + * Modules/CMakeCXXCompiler.cmake.in: [no log message] + +2002-10-25 15:46 king + + * Utilities/cmake_release_cygwin.sh: ENH: Updated for cmake 1.4.6 + package. Added automatic conversion of setup.hint to unix + newlines. + +2002-10-25 14:34 hoffman + + * Modules/: CMakeCCompiler.cmake.in, CMakeDetermineCCompiler.cmake: + [no log message] + +2002-10-25 14:25 hoffman + + * Source/: cmGlobalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h: + test on unix + +2002-10-25 14:13 king + + * Utilities/: cmake_release_config_darwin, + cmake_release_config_hpux, cmake_release_config_irix, + cmake_release_config_linux, cmake_release_config_osf, + cmake_release_config_sun, cmake_release_cygwin.sh: ENH: Updated + for 1.4.6 release. + +2002-10-25 14:08 hoffman + + * Modules/: CMakeDefaultMakeRuleVariables.cmake, + CMakeDetermineCCompiler.cmake, CMakeDetermineCXXCompiler.cmake, + CMakeDetermineSystem.cmake, CMakeSystemSpecificInformation.cmake: + [no log message] + +2002-10-24 15:39 hoffman + + * Source/cmake.cxx: BUG: fix stack limit size on mac OSX + +2002-10-24 13:39 andy + + * Modules/CMakeBackwardCompatibilityC.cmake: Add check for big + endian in backward compatibility scripts + +2002-10-24 11:58 martink + + * Source/cmMakefile.h: updated patch level to 6 + +2002-10-24 11:48 martink + + * Source/cmBorlandMakefileGenerator.cxx: fix support for Win32 + execs + +2002-10-24 10:58 andy + + * Source/cmSubdirCommand.cxx: Subdirs reports an error if the + subdirectory does not exists + +2002-10-24 10:23 andy + + * Source/cmMakefile.cxx: Try to remove some warnings + +2002-10-23 18:03 king + + * Source/: cmAbstractFilesCommand.cxx, cmAbstractFilesCommand.h, + cmAddCustomCommandCommand.cxx, cmAddCustomCommandCommand.h, + cmAddCustomTargetCommand.cxx, cmAddCustomTargetCommand.h, + cmAddDefinitionsCommand.cxx, cmAddDefinitionsCommand.h, + cmAddDependenciesCommand.cxx, cmAddDependenciesCommand.h, + cmAddExecutableCommand.cxx, cmAddExecutableCommand.h, + cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmAddTestCommand.cxx, cmAddTestCommand.h, + cmAuxSourceDirectoryCommand.cxx, cmAuxSourceDirectoryCommand.h, + cmBuildCommand.cxx, cmBuildCommand.h, cmBuildNameCommand.cxx, + cmBuildNameCommand.h, cmCMakeMinimumRequired.cxx, + cmCMakeMinimumRequired.h, cmCPluginAPI.cxx, cmCPluginAPI.h, + cmCacheManager.cxx, cmCacheManager.h, cmCommand.h, + cmCommands.cxx, cmCommands.h, cmConfigureFileCommand.cxx, + cmConfigureFileCommand.h, cmCreateTestSourceList.cxx, + cmCreateTestSourceList.h, cmCustomCommand.cxx, cmCustomCommand.h, + cmData.h, cmDirectory.cxx, cmDirectory.h, + cmDumpDocumentation.cxx, cmDynamicLoader.cxx, cmDynamicLoader.h, + cmElseCommand.cxx, cmElseCommand.h, cmEnableTestingCommand.cxx, + cmEnableTestingCommand.h, cmEndForEachCommand.cxx, + cmEndForEachCommand.h, cmEndIfCommand.cxx, cmEndIfCommand.h, + cmExecProgramCommand.cxx, cmExecProgramCommand.h, + cmFLTKWrapUICommand.cxx, cmFLTKWrapUICommand.h, + cmFindFileCommand.cxx, cmFindFileCommand.h, + cmFindLibraryCommand.cxx, cmFindLibraryCommand.h, + cmFindPathCommand.cxx, cmFindPathCommand.h, + cmFindProgramCommand.cxx, cmFindProgramCommand.h, + cmForEachCommand.cxx, cmForEachCommand.h, cmFunctionBlocker.h, + cmGeneratedFileStream.h, cmGetFilenameComponentCommand.cxx, + cmGetFilenameComponentCommand.h, + cmGetSourceFilePropertyCommand.cxx, + cmGetSourceFilePropertyCommand.h, + cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalBorlandMakefileGenerator.h, + cmGlobalCodeWarriorGenerator.cxx, cmGlobalCodeWarriorGenerator.h, + cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.h, + cmGlobalUnixMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, cmITKWrapTclCommand.cxx, + cmITKWrapTclCommand.h, cmIfCommand.cxx, cmIfCommand.h, + cmIncludeCommand.cxx, cmIncludeCommand.h, + cmIncludeDirectoryCommand.cxx, cmIncludeDirectoryCommand.h, + cmIncludeExternalMSProjectCommand.cxx, + cmIncludeExternalMSProjectCommand.h, + cmIncludeRegularExpressionCommand.cxx, + cmIncludeRegularExpressionCommand.h, cmInstallFilesCommand.cxx, + cmInstallFilesCommand.h, cmInstallProgramsCommand.cxx, + cmInstallProgramsCommand.h, cmInstallTargetsCommand.cxx, + cmInstallTargetsCommand.h, cmLinkDirectoriesCommand.cxx, + cmLinkDirectoriesCommand.h, cmLinkLibrariesCommand.cxx, + cmLinkLibrariesCommand.h, cmListFileCache.cxx, cmListFileCache.h, + cmLoadCacheCommand.cxx, cmLoadCacheCommand.h, + cmLoadCommandCommand.cxx, cmLoadCommandCommand.h, + cmLocalBorlandMakefileGenerator.cxx, + cmLocalBorlandMakefileGenerator.h, + cmLocalCodeWarriorGenerator.cxx, cmLocalCodeWarriorGenerator.h, + cmLocalGenerator.cxx, cmLocalGenerator.h, + cmLocalNMakeMakefileGenerator.cxx, + cmLocalNMakeMakefileGenerator.h, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h, cmMacroCommand.cxx, + cmMacroCommand.h, cmMakeDepend.cxx, cmMakeDepend.h, + cmMakeDirectoryCommand.cxx, cmMakeDirectoryCommand.h, + cmMakefile.cxx, cmMakefile.h, cmMarkAsAdvancedCommand.cxx, + cmMarkAsAdvancedCommand.h, cmMessageCommand.cxx, + cmMessageCommand.h, cmOptionCommand.cxx, cmOptionCommand.h, + cmOutputRequiredFilesCommand.cxx, cmOutputRequiredFilesCommand.h, + cmProjectCommand.cxx, cmProjectCommand.h, cmQTWrapCPPCommand.cxx, + cmQTWrapCPPCommand.h, cmQTWrapUICommand.cxx, cmQTWrapUICommand.h, + cmRegularExpression.cxx, cmRegularExpression.h, + cmRemoveCommand.cxx, cmRemoveCommand.h, + cmSeparateArgumentsCommand.cxx, cmSeparateArgumentsCommand.h, + cmSetCommand.cxx, cmSetCommand.h, + cmSetSourceFilesPropertiesCommand.cxx, + cmSetSourceFilesPropertiesCommand.h, cmSiteNameCommand.cxx, + cmSiteNameCommand.h, cmSourceFile.cxx, cmSourceFile.h, + cmSourceFilesCommand.cxx, cmSourceFilesCommand.h, + cmSourceFilesRemoveCommand.cxx, cmSourceFilesRemoveCommand.h, + cmSourceGroup.cxx, cmSourceGroup.h, cmSourceGroupCommand.cxx, + cmSourceGroupCommand.h, cmStandardIncludes.h, + cmSubdirCommand.cxx, cmSubdirCommand.h, + cmSubdirDependsCommand.cxx, cmSubdirDependsCommand.h, + cmSystemTools.cxx, cmSystemTools.h, cmTarget.cxx, cmTarget.h, + cmTargetLinkLibrariesCommand.cxx, cmTargetLinkLibrariesCommand.h, + cmTryCompileCommand.cxx, cmTryCompileCommand.h, + cmTryRunCommand.cxx, cmTryRunCommand.h, + cmUseMangledMesaCommand.cxx, cmUseMangledMesaCommand.h, + cmUtilitySourceCommand.cxx, cmUtilitySourceCommand.h, + cmVTKMakeInstantiatorCommand.cxx, cmVTKMakeInstantiatorCommand.h, + cmVTKWrapJavaCommand.cxx, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.cxx, cmVTKWrapPythonCommand.h, + cmVTKWrapTclCommand.cxx, cmVTKWrapTclCommand.h, + cmVariableRequiresCommand.cxx, cmVariableRequiresCommand.h, + cmWin32ProcessExecution.cxx, cmWin32ProcessExecution.h, + cmWrapExcludeFilesCommand.cxx, cmWrapExcludeFilesCommand.h, + cmWriteFileCommand.cxx, cmWriteFileCommand.h, cmake.cxx, cmake.h, + cmakemain.cxx, cmaketest.cxx, cmakewizard.cxx, cmakewizard.h, + cmw9xcom.cxx, ctest.cxx, ctest.h, CursesDialog/ccmake.cxx, + CursesDialog/cmCursesBoolWidget.cxx, + CursesDialog/cmCursesBoolWidget.h, + CursesDialog/cmCursesCacheEntryComposite.cxx, + CursesDialog/cmCursesCacheEntryComposite.h, + CursesDialog/cmCursesDummyWidget.cxx, + CursesDialog/cmCursesDummyWidget.h, + CursesDialog/cmCursesFilePathWidget.cxx, + CursesDialog/cmCursesFilePathWidget.h, + CursesDialog/cmCursesForm.cxx, CursesDialog/cmCursesForm.h, + CursesDialog/cmCursesLabelWidget.cxx, + CursesDialog/cmCursesLabelWidget.h, + CursesDialog/cmCursesLongMessageForm.cxx, + CursesDialog/cmCursesLongMessageForm.h, + CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesMainForm.h, + CursesDialog/cmCursesPathWidget.cxx, + CursesDialog/cmCursesPathWidget.h, + CursesDialog/cmCursesStandardIncludes.h, + CursesDialog/cmCursesStringWidget.cxx, + CursesDialog/cmCursesStringWidget.h, + CursesDialog/cmCursesWidget.cxx, CursesDialog/cmCursesWidget.h, + MFCDialog/CMakeCommandLineInfo.h, MFCDialog/CMakeSetup.h, + MFCDialog/CMakeSetupDialog.h, MFCDialog/MakeHelp.h, + MFCDialog/PathDialog.h, MFCDialog/PropertyList.h, + MFCDialog/StdAfx.h, WXDialog/cmWXCacheProperty.cxx, + WXDialog/cmWXCacheProperty.h, WXDialog/cmWXCommandLineInfo.cxx, + WXDialog/cmWXCommandLineInfo.h, WXDialog/cmWXMainFrame.cxx, + WXDialog/cmWXMainFrame.h, WXDialog/wxCMakeSetup.cxx: ENH: Added + reference to Copyright.txt. Removed old reference to ITK + copyright. Changed program name to CMake instead of Insight in + source file header. Also removed tabs. + +2002-10-23 16:57 hoffman + + * Source/: cmExecProgramCommand.cxx, cmExecProgramCommand.h: ENH: + if output variable turn verbose off + +2002-10-23 16:53 hoffman + + * Modules/: CMakeCCompiler.cmake.in, + CMakeDefaultMakeRuleVariables.cmake, + CMakeDetermineCCompiler.cmake, CMakeDetermineCXXCompiler.cmake, + CMakeDetermineSystem.cmake, CMakePrintSystemInformation.cmake, + CMakeSystem.cmake.in, CMakeSystemSpecificInformation.cmake, + CYGWIN.cmake: closer to removing autoconf + +2002-10-23 16:43 king + + * Source/CursesDialog/form/frm_driver.c: ERR: Another attempt to + remove warnings from missing prototypes. + +2002-10-22 18:17 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake, CMakeTestGNU.c, Windows.cmake: + test for gnu compiler + +2002-10-22 15:04 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeSystemSpecificInformation.cmake, CYGWIN.cmake: [no log + message] + +2002-10-22 10:36 hoffman + + * Source/cmLocalBorlandMakefileGenerator.cxx: BUG: make sure win32 + exes are win32 + +2002-10-22 10:34 hoffman + + * Modules/: CMakeDetermineCCompiler.cmake, + CMakeDetermineCXXCompiler.cmake, CMakeDetermineSystem.cmake, + CMakeSystemSpecificInformation.cmake: new cmake based + configuration + +2002-10-18 15:51 andy + + * Source/ctest.cxx: When in verbose mode print test command + +2002-10-18 12:08 andy + + * Source/cmWin32ProcessExecution.h: Improve comment + +2002-10-17 10:50 andy + + * Source/: CursesDialog/cmCursesMainForm.cxx, + cmCreateTestSourceList.cxx, cmDirectory.cxx, + cmFindProgramCommand.cxx, cmGlobalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmSystemTools.cxx, + cmUseMangledMesaCommand.cxx: Rename variables to remove warnings + +2002-10-16 13:30 martink + + * Source/cmVTKWrapTclCommand.cxx: update to handle tcl 84 + +2002-10-16 11:48 martink + + * Source/CursesDialog/cmCursesLongMessageForm.cxx: fix compiler + warnings + +2002-10-16 11:41 martink + + * Source/CursesDialog/form/fty_regex.c: fix compiler warnings + +2002-10-16 11:37 martink + + * Source/CursesDialog/form/: fty_alnum.c, fty_alpha.c, fty_int.c, + fty_ipv4.c, fty_num.c: fix compiler warnings + +2002-10-16 11:32 martink + + * Source/CursesDialog/: cmCursesMainForm.cxx, ccmake.cxx: fixed a + warning + +2002-10-16 11:24 martink + + * Source/CursesDialog/cmCursesLongMessageForm.cxx: fixed a warning + +2002-10-16 11:20 martink + + * Source/CursesDialog/: cmCursesForm.h, cmCursesLabelWidget.cxx: + fixed a warning + +2002-10-16 11:16 martink + + * Source/CursesDialog/: cmCursesBoolWidget.cxx, + cmCursesDummyWidget.cxx: fixed a warning + +2002-10-16 10:53 king + + * Source/CursesDialog/form/frm_driver.c: ENH: Another attempt to + fix OSF warnings. Also removed TABS. + +2002-10-16 08:49 andy + + * Source/ctest.cxx: Remove unused variable + +2002-10-15 14:33 martink + + * Source/cmLoadCommandCommand.cxx: better warning message + +2002-10-15 11:45 martink + + * Source/cmLoadCommandCommand.cxx: better warning message + +2002-10-15 07:20 andy + + * Source/ctest.cxx: Remove std::hex as it does not seems to work on + SGI, attempt to fix ftime problem on borland + +2002-10-14 18:33 andy + + * Source/ctest.cxx: Fix namespace, typo, and make ftime work on + windows + +2002-10-14 15:11 andy + + * Source/: ctest.cxx, ctest.h: Even more cleanups, fix time on + certain platforms such as windows, cygwin, and linux. Hopefully + we can add entries for other platforms until try_compile works. + Also escape certain characters for xml. + +2002-10-14 09:30 andy + + * Source/ctest.cxx: More cleanups, fix prexontext and log number + +2002-10-13 23:07 andy + + * Source/: ctest.cxx, ctest.h: Add LastBuild.log file, fix some + minor problems in output, modify output a bit... + +2002-10-11 13:17 martink + + * Source/cmLocalCodeWarriorGenerator.cxx: compiler warning + +2002-10-11 11:22 iscott + + * Modules/Dart.cmake: Add option to control number of errors sent + to dashbaord + +2002-10-11 10:16 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added Split + method to cmSystemTools to split a string into lines on its + newlines. + +2002-10-11 10:14 king + + * Modules/FindCABLE.cmake: BUG: Should not load + CMAKE_INSTALL_PREFIX from the cache. + +2002-10-11 08:36 king + + * Source/cmStandardIncludes.h: ERR: istrstream and istringstream + need to be pulled into namespace std on the SGI. + +2002-10-10 11:08 andy + + * Source/cmWin32ProcessExecution.cxx: Fix network build + +2002-10-10 10:45 barre + + * Modules/FindJava.cmake, Templates/CCMakeSystemConfig.cmake.in, + Templates/CMakeBorlandWindowsSystemConfig.cmake, + Templates/CMakeDotNetSystemConfig.cmake, + Templates/CMakeNMakeWindowsSystemConfig.cmake, + Templates/CMakeWindowsSystemConfig.cmake, + Templates/CXXCMakeSystemConfig.cmake.in: ENH: mark some vars as + advanced (and resort the list) + +2002-10-10 10:43 king + + * Source/: cmCMakeMinimumRequired.cxx, + cmLocalBorlandMakefileGenerator.cxx, + cmLocalNMakeMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx, cmStandardIncludes.h, + cmSystemTools.cxx, cmVTKMakeInstantiatorCommand.cxx, cmake.cxx, + ctest.cxx: ENH: Renamed cmStringStream to cmOStringStream and + added cmIStringStream. Removed cmInputStringStream. + +2002-10-10 09:41 andy + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.cxx, cmStandardIncludes.h: Remove + compile error and remove some warnings + +2002-10-10 09:02 king + + * Utilities/cmake_release_config_osf: ENH: Updated for actual + build. + +2002-10-10 08:25 martink + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.cxx: fixed some compiler warnings + +2002-10-10 08:23 andy + + * Source/ctest.cxx: Remove warning + +2002-10-10 08:11 andy + + * Source/: cmSetCommand.cxx, WXDialog/cmWXMainFrame.cxx: Remove + warning + +2002-10-10 08:11 andy + + * Source/: cmStandardIncludes.h, ctest.cxx: Try to use platform + independent input string stream + +2002-10-09 17:47 martink + + * Source/: cmDynamicLoader.cxx, cmaketest.cxx: Remove memory leak + caused by cmDynamicLoader not being deleted properly + +2002-10-09 16:26 andy + + * Source/WXDialog/: cmWXMainFrame.cxx, cmWXMainFrame.h: Try to add + enter support + +2002-10-09 15:54 martink + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: added test of SET + CACHE FORCE + +2002-10-09 15:48 martink + + * Source/: cmSetCommand.cxx, cmSetCommand.h: added FORCE option + +2002-10-09 15:36 martink + + * Source/CursesDialog/ccmake.cxx: fix for OSF + +2002-10-09 15:24 barre + + * Source/cmGlobalGenerator.cxx: ENH: update the progress when + generating is "done". + +2002-10-09 13:49 martink + + * Source/cmGlobalCodeWarriorGenerator.h: changed name + +2002-10-09 13:47 andy + + * Modules/FindwxWindows.cmake: Add some search paths + +2002-10-09 13:37 martink + + * Source/cmake.cxx: added Code Warrior dev + +2002-10-09 13:31 martink + + * Source/: Makefile.in, CMakeLists.txt: added build for Code + Warrior + +2002-10-09 13:30 martink + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.cxx, cmLocalCodeWarriorGenerator.h: + some updates + +2002-10-08 22:54 andy + + * Source/: ctest.cxx, ctest.h: Reorganization, cleanup and some + improvement in dart emulation + +2002-10-08 22:00 andy + + * Source/: ctest.cxx, ctest.h: Add parsing of warnings and errors + +2002-10-08 20:02 andy + + * Source/: ctest.cxx, ctest.h: Add configure option and fix + potential bug in other targets. Now the run command is actually + run with directory, so eventually we should be able to run this + from a subdirectory + +2002-10-08 15:55 martink + + * Tests/: LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: new plugin + API + +2002-10-08 15:55 martink + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h, + cmLoadCommandCommand.cxx: some mods to the plugin API + +2002-10-08 10:53 hoffman + + * Source/cmExecProgramCommand.cxx: BUG: get all the output + including the last character + +2002-10-07 16:23 martink + + * CMakeLists.txt: added header dep + +2002-10-07 09:20 andy + + * Tests/COnly/: foo.c, foo.h: Fix problem on HP + +2002-10-07 09:16 martink + + * Source/cmIfCommand.cxx: minor fix to allow if with no arguments + +2002-10-07 08:23 andy + + * Source/cmGlobalVisualStudio6Generator.cxx: Suppress output of + trycompile + +2002-10-06 21:25 andy + + * Source/ctest.cxx: Fix update so that it actually updates the + source directory, + +2002-10-06 21:24 andy + + * Source/cmSystemTools.cxx: Fix for run command on windows. If you + specify command in quotes but not full path, it should still work + +2002-10-06 20:44 andy + + * Source/ctest.cxx: Add missing namespace + +2002-10-06 20:44 andy + + * Source/cmSystemTools.cxx: Revert back. Does not seems to work on + Windows + +2002-10-06 20:36 andy + + * Source/: ctest.cxx, ctest.h: Add some minimal Dart capability to + ctest. For example now you can actually use ctest to build + projects, do cvs update on all platforms. This is especially cool + for Visual Studio where you do not want to load the whole + development environment just to build your project. + +2002-10-06 18:56 andy + + * Source/cmSystemTools.cxx: Check if directory was actually created + +2002-10-06 15:10 barre + + * Templates/CMakeNMakeWindowsSystemConfig.cmake: ENH: nmake now + uses incremental linking as Msdev does. Faster build (linking a + static vtk.exe or paraview.exe could take more than 10 minutes) + +2002-10-06 12:12 andy + + * Source/cmTarget.cxx, Tests/COnly/CMakeLists.txt, + Tests/COnly/conly.c, Tests/COnly/foo.c, Tests/COnly/foo.h: If you + specify header file as source, it should still use C compiler and + not CXX. Also fix COnly test so that it make sure that this still + works... + +2002-10-05 10:24 andy + + * Source/: cmSystemTools.cxx, cmWin32ProcessExecution.h: Fix + borland build. Borland Run command should be static, since it is + called with no object... + +2002-10-04 18:16 andy + + * Source/: cmMakefile.cxx, cmMakefile.h, cmRegularExpression.cxx, + cmRegularExpression.h, cmSourceGroupCommand.cxx: Try to improve + source group interface + +2002-10-04 14:01 andy + + * Source/cmCacheManager.cxx: Remove tabs + +2002-10-04 12:56 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: FIX: re-enable the OK + button in RunCmake() when everything is done. + +2002-10-04 12:30 andy + + * Source/cmCacheManager.cxx: Fix reading of advanced values from + CMakeCache + +2002-10-04 11:42 martink + + * Source/: cmLocalCodeWarriorGenerator.h, + cmGlobalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.cxx: updates + +2002-10-04 11:33 barre + + * DartConfig.cmake: ENH: my opinion is that it should be ADVANCED. + Few people build the doc. + +2002-10-04 10:47 andy + + * Source/cmSystemTools.cxx: Add missing argument + +2002-10-04 10:38 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, + cmWin32ProcessExecution.cxx, cmWin32ProcessExecution.h: Cleanup + RunCOmmand code and move borland one to vtkWin32ProcessExecution, + so that it is all in one place... Add timeout option whihc does + not work yet, but it should not produce warning any more + +2002-10-04 08:59 martink + + * Source/cmLocalGenerator.cxx: always set PROJECT_SOURCE_DIR etc + +2002-10-03 16:40 martink + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.cxx: some fixes + +2002-10-03 15:14 martink + + * Source/: cmGlobalCodeWarriorGenerator.cxx, + cmGlobalCodeWarriorGenerator.h, cmLocalCodeWarriorGenerator.cxx, + cmLocalCodeWarriorGenerator.h: under development + +2002-10-02 17:46 martink + + * Source/cmWin32ProcessExecution.cxx: Revert to fix win 9x + +2002-10-02 17:31 king + + * Source/: cmGlobalUnixMakefileGenerator.cxx, cmStandardIncludes.h: + ENH: Added explicit declarations of some C functions that are + hard to get from standard headers in como + (www.comeaucomputing.com) strict mode. + +2002-10-02 17:23 king + + * Source/cmIncludeCommand.cxx: BUG: Must return false after an + error of incorrect arguments. + +2002-10-02 17:22 king + + * Source/: cmIfCommand.cxx, cmIfCommand.h: BUG: STRLESS and + STRGREATER need to treat non-existent definitions as strings. + +2002-10-02 17:16 andy + + * Source/cmWin32ProcessExecution.cxx: Cleanup and try to unify with + the other code + +2002-10-02 17:14 andy + + * Source/cmSystemTools.cxx: Cleanup + +2002-10-02 16:42 ibanez + + * Modules/CMakeLists.txt: ENH: Adding install of .in and .c + modules. + +2002-10-02 11:35 martink + + * Source/cmLocalBorlandMakefileGenerator.cxx: Remove unnecessary + new line + +2002-10-02 11:15 martink + + * Source/cmSystemTools.cxx: Fix bug in borland run command + +2002-10-02 11:14 martink + + * Source/cmake.cxx: Produce only one output + +2002-10-01 18:37 king + + * Source/cmITKWrapTclCommand.cxx: ENH: Added support to pass the + gccxml program location to cable if ITK_GCCXML_EXECUTABLE is set + on m_Makefile. + +2002-10-01 15:56 andy + + * Modules/: TestBigEndian.c, TestBigEndian.cmake: Add test for big + endian + +2002-10-01 13:04 martink + + * Source/cmWin32ProcessExecution.cxx: Fix grouping of arguments on + Windows 98 + +2002-10-01 13:04 martink + + * Source/cmLocalVisualStudio6Generator.cxx: Fix a bug in generator. + This one is good: This bug is only present on Windows 98, but + since RunCommand did not work, it never showed on the + dashboard... In any case commands in Visual studio 6 should be in + windows style slashes + +2002-10-01 13:00 martink + + * Source/cmw9xcom.cxx: Put quotes around arguments if they have + spaces and no quotes + +2002-10-01 12:59 martink + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: Remove bogus exec_program + +2002-10-01 10:12 ibanez + + * Modules/FindFLTK.cmake: ENH: removed "USE_FLTK_VERSION_1.1" in + favor of "FLTK_VERSION_1.1" to avoid confusions. + +2002-10-01 07:28 andy + + * Source/: Makefile.in, cmakemain.cxx: Remove dependency to dynamic + loader during bootstrap + +2002-09-30 22:26 ibanez + + * Modules/FindFLTK.cmake: ENH: Version 1.1 is considered to be the + default. + +2002-09-30 21:34 king + + * Source/CursesDialog/cmCursesMainForm.cxx: ERR: Fixed bad sentence + in error message. + +2002-09-30 16:46 andy + + * Source/cmake.cxx: Fix bug in chdir; Who did this anyway... + +2002-09-30 16:25 hoffman + + * Source/: Makefile.in, cmDynamicLoader.cxx, cmakemain.cxx, + MFCDialog/CMakeSetup.cpp: BUG: fix load command stuff for cygwin + and cleanup at exit + +2002-09-30 15:05 martink + + * Source/cmWin32ProcessExecution.h: Add some more comments + +2002-09-30 15:00 martink + + * Source/cmWin32ProcessExecution.cxx: Cleanups and hopefully now it + works on all windows platforms + +2002-09-30 14:01 martink + + * Source/cmake.cxx: Set comspec substitute the right way + +2002-09-30 14:00 martink + + * Source/ctest.cxx: Set comspec substitute + +2002-09-30 13:59 martink + + * Source/cmw9xcom.cxx: Add spaces + +2002-09-30 12:24 ibanez + + * Modules/FindLATEX.cmake: Configuratiion for finding LaTeX + related executables. + +2002-09-30 11:41 andy + + * Source/: CMakeLists.txt, cmSystemTools.cxx, cmake.cxx, + cmw9xcom.cxx: Another attempt on Windows 98 + +2002-09-30 11:00 andy + + * Source/cmSystemTools.cxx: Attempt to unify the code + +2002-09-30 10:47 andy + + * Source/cmSystemTools.cxx: Fix bug in printing + +2002-09-30 07:55 andy + + * Source/cmWin32ProcessExecution.cxx: Remove warnings and fix + potential bug + +2002-09-30 07:09 andy + + * Source/cmSystemTools.cxx, + Templates/CMakeBorlandWindowsSystemConfig.cmake: Make borland + pass all the tests on XP (and 2000?) + +2002-09-29 22:10 andy + + * Source/cmSystemTools.cxx: Remove debug + +2002-09-29 21:57 andy + + * Source/cmSystemTools.cxx: It is late and it at least seems to + work better than before... + +2002-09-29 21:55 andy + + * Source/: cmWin32ProcessExecution.cxx, cmWin32ProcessExecution.h: + Fix for it to compile on "all" windows platforms... + +2002-09-29 21:48 andy + + * Source/cmSystemTools.cxx: Simplify debugging by resetting error + code + +2002-09-29 14:09 martink + + * Source/: cmWin32ProcessExecution.cxx, cmWin32ProcessExecution.h: + possible fix for warnings + +2002-09-29 14:09 martink + + * Source/cmake.cxx: compiler warnings + +2002-09-27 17:28 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, cmake.cxx: Add two + cmake commands -E echo for echoing strings and -E comspec for + workaround of bug of windows 9x; add another implementation of + run command on windows which should work... + +2002-09-27 17:26 andy + + * Source/: CMakeLists.txt, cmWin32ProcessExecution.cxx, + cmWin32ProcessExecution.h: Add class for process execution on + Windows + +2002-09-27 17:16 andy + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: Use cmake echo + +2002-09-27 16:23 martink + + * Source/: cmCreateTestSourceList.cxx, cmInstallFilesCommand.cxx, + cmInstallProgramsCommand.cxx, cmIncludeDirectoryCommand.cxx: + removed some includes + +2002-09-27 16:19 martink + + * Source/: cmTarget.cxx, cmTarget.h, cmCommand.h, + cmEnableTestingCommand.cxx, cmEndForEachCommand.cxx, + cmForEachCommand.cxx, cmAddTestCommand.cxx, + cmAuxSourceDirectoryCommand.cxx, cmElseCommand.cxx, + cmEndIfCommand.cxx, cmIfCommand.cxx, cmAbstractFilesCommand.cxx, + cmAddDependenciesCommand.cxx, cmAddLibraryCommand.cxx, + cmInstallTargetsCommand.cxx, cmMacroCommand.cxx, + cmMessageCommand.cxx, cmWriteFileCommand.cxx, + cmAddExecutableCommand.cxx: removed some includes + +2002-09-27 16:19 hoffman + + * Source/: cmSetCommand.cxx, cmSetCommand.h: BUG: fix doc string + and allow a variable to be promoted from non-cache to cache + +2002-09-27 16:18 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: remove unused stuff + +2002-09-27 15:52 martink + + * Source/cmMakefile.h: new patch + +2002-09-27 14:12 andy + + * Templates/: CCMakeSystemConfig.cmake.in, cconfigure, + cconfigure.in: Cleanup configure scripts + +2002-09-26 15:13 martink + + * Source/: cmake.h, cmake.cxx, cmGlobalGenerator.cxx, + cmGlobalGenerator.h, MFCDialog/CMakeSetup.rc, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/resource.h: added + progress + +2002-09-26 13:52 martink + + * Source/cmMakefile.cxx: minor memory fix + +2002-09-25 17:25 andy + + * Modules/: CheckFunctionExists.cmake, CheckIncludeFile.cmake, + CheckLibraryExists.cmake: Set variable to either 1 or empty + string instead of TRUE and FALSE + +2002-09-25 10:38 andy + + * Modules/CheckLibraryExists.cmake: Cleanup + +2002-09-25 10:08 andy + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/LoadedCommand.h.in, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/LoadedCommand.h.in: Check for library + +2002-09-25 10:08 andy + + * Modules/: CheckFunctionExists.cmake, CheckLibraryExists.cmake, + CheckSizeOf.cmake: Fix modules for recent changes + +2002-09-25 10:07 andy + + * Source/: cmGlobalUnixMakefileGenerator.cxx, + cmTryCompileCommand.cxx: Several changes: COMPILE_DEFINITIONS is + now depricated. If you want to specify some, use CMAKE_FLAGS + -DCMAKE_DEFINITIONS:STRING=...; same goes for libraries, include + path, ... It now detects wether the file is C or C++ and uses the + apropriate project command, it also does the right thing when + doing try_compile, so it does not execute configure for every + single try_compile + +2002-09-25 09:31 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: Use file format + detection + +2002-09-25 09:30 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h: Add detection of + file format from extension + +2002-09-25 07:47 andy + + * Source/WXDialog/cmWXMainFrame.cxx: Remove warnings + +2002-09-25 07:46 andy + + * Source/cmGlobalGenerator.cxx: Attempt to make NMake quiet during + TRY_COMPILE + +2002-09-24 18:34 andy + + * Source/: ctest.cxx, ctest.h: Add verbose flag -V, which makes the + output of tests to be displayed; also add help to ctest + +2002-09-24 17:58 andy + + * Modules/CMakeBackwardCompatibilityC.cmake, + Modules/CMakeBackwardCompatibilityCXX.cmake, + Source/cmGlobalUnixMakefileGenerator.cxx: Improve backward + compatibility, so that all backward compatibility stuff is in two + modules; fix invoking of try_compile; add checking for header + files and sizes of types + +2002-09-24 17:37 andy + + * Source/cmSystemTools.cxx: Add support for mac dylib + +2002-09-24 16:36 andy + + * Modules/: CheckLibraryExists.cmake, CheckLibraryExists.lists.in: + Initial attempt to check if library exists + +2002-09-24 16:20 andy + + * Source/WXDialog/: cmWXMainFrame.cxx, cmWXMainFrame.h: Some GUI + improvements and fix the way dirty is being set, so that if there + are no cache values, dirty is not set + +2002-09-24 16:20 andy + + * Modules/CheckSizeOf.cmake: Improve check size of. Now it checks + for some header files before trying to check types + +2002-09-24 14:49 king + + * Source/: cmEndIfCommand.cxx, cmIfCommand.cxx: [no log message] + +2002-09-24 14:22 king + + * Utilities/cmake_release_config_osf: ENH: Adding prototype release + config script for OSF. + +2002-09-24 14:18 king + + * Utilities/cmake_release_config_cygwin: ERR: Removed old cygwin + release config file. A separate script is now used. + +2002-09-24 13:24 martink + + * Source/cmake.cxx: fixed memory leak + +2002-09-24 13:17 martink + + * Source/cmTryRunCommand.cxx: always convert to output path + +2002-09-24 10:47 hoffman + + * Utilities/: cmake-cygwin-package.sh, cmake_release_cygwin.sh: use + /usr/bin/find and uname for cygwin version + +2002-09-24 10:30 andy + + * Source/cmLoadCommandCommand.cxx: Cleanup + +2002-09-24 10:24 andy + + * Source/: cmDynamicLoader.cxx, cmDynamicLoader.h: Add accessor for + Flushing cache + +2002-09-24 09:51 hoffman + + * Source/cmLocalUnixMakefileGenerator.cxx: one rule per line so + borland make does not die + +2002-09-24 09:50 hoffman + + * Source/cmLocalBorlandMakefileGenerator.cxx: handle long commands + +2002-09-24 09:24 hoffman + + * Source/: cmDynamicLoader.cxx, cmGlobalGenerator.cxx: fix for + cygwin and nmake that does not define WIN32 + +2002-09-23 21:14 king + + * Utilities/: cmake-cygwin-package.sh, cmake-cygwin.README, + cmake_release_cygwin.sh, setup.hint: ENH: Added cygwin packaging + scripts. The setup.hint and cmake.README files required by + Cygwin are generated automatically. + +2002-09-23 17:24 andy + + * Tests/: LoadCommand/CMakeCommands/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/CMakeLists.txt: Fix problem + +2002-09-23 17:20 king + + * Utilities/cmake_release_unix_package.sh: ENH: Added to generated + README the typical install locaiton of /usr/local. + +2002-09-23 16:57 andy + + * Source/cmDynamicLoader.cxx: Fix cache for non void* types + +2002-09-23 16:24 andy + + * Source/cmDynamicLoader.cxx: Keep track of libraries so that you + can load them as many times as you want... + +2002-09-23 15:57 andy + + * Source/cmaketest.cxx: Cleanup + +2002-09-23 15:56 andy + + * Tests/: LoadCommand/CMakeCommands/CMakeLists.txt, + LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: Some minor + fixes for mac + +2002-09-23 15:54 andy + + * Source/cmLocalUnixMakefileGenerator.cxx: Fix generation of C only + modules + +2002-09-23 15:53 andy + + * Source/cmDynamicLoader.cxx: Fix extension and suffix for modules + on mac + +2002-09-23 14:57 martink + + * Tests/: LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: cleanup + +2002-09-23 14:57 martink + + * Source/: cmCPluginAPI.h, cmLoadCommandCommand.cxx: cleaned up API + +2002-09-23 14:11 andy + + * Tests/: LoadCommand/CMakeCommands/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/CMakeLists.txt: Fix test so + that it will work on HP + +2002-09-23 14:04 andy + + * Source/cmTryCompileCommand.cxx: Fix HP build + +2002-09-23 13:32 andy + + * Source/: cmSystemTools.cxx, cmTryCompileCommand.cxx, + WXDialog/cmWXCommandLineInfo.cxx, WXDialog/cmWXMainFrame.cxx, + WXDialog/wxCMakeSetup.cxx: Try to remove some warnings + +2002-09-23 13:11 andy + + * Source/cmLoadCommandCommand.cxx: Fix loading of module for + borland + +2002-09-23 12:23 andy + + * Source/cmGlobalGenerator.cxx: Try to fix borland and nmake try + compile + +2002-09-23 11:06 andy + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h, + cmTryRunCommand.cxx: Abstract cleaning of files and add code that + deletes files from Debug subdirectory + +2002-09-23 11:05 andy + + * Source/cmGlobalVisualStudio6Generator.cxx: Remove debug stuff + +2002-09-23 10:01 andy + + * Modules/FindwxWindows.cmake: Fix comments + +2002-09-23 09:58 andy + + * Source/cmLocalVisualStudio7Generator.cxx: Try to fix quoted + definitions + +2002-09-23 09:41 martink + + * Source/cmIfCommand.cxx: hopefull another fix to if statements + +2002-09-23 09:07 andy + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h: Attempt to fix Visual studio 6 + comiling + +2002-09-23 08:51 king + + * Utilities/cmake_release_unix_package.sh: BUG: Creating source + tarball should not affect current directory. + +2002-09-23 08:44 king + + * Utilities/: cmake_release_config_darwin, + cmake_release_config_hpux, cmake_release_config_irix, + cmake_release_config_linux, cmake_release_config_sun: ENH: + Incremented version to 1.4.5. + +2002-09-22 10:08 martink + + * Source/cmLocalVisualStudio7Generator.cxx: defines cannot have + quotes in them + +2002-09-22 09:53 martink + + * Source/: cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h: some try compile fixes + +2002-09-22 07:52 martink + + * Source/: cmWriteFileCommand.cxx, + CursesDialog/cmCursesMainForm.cxx: compiler warning + +2002-09-21 07:29 andy + + * Source/cmWriteFileCommand.cxx: Fix namespace problem + +2002-09-20 15:45 andy + + * Source/WXDialog/wxincludes.h: Add missing include + +2002-09-20 15:01 andy + + * Modules/CheckFunctionExists.cmake, + Modules/CheckIncludeFile.cmake, Modules/CheckSizeOf.cmake, + Source/WXDialog/cmWXMainFrame.cxx: Fix tests for new trycompile + and tryrun + +2002-09-20 15:01 andy + + * Source/: cmMakefile.cxx, cmMakefile.h, cmTryCompileCommand.cxx, + cmTryRunCommand.cxx: Add GetLocal on cmMakefile and on local + builds do not perform tests + +2002-09-20 14:17 andy + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/LoadedCommand.h.in, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/LoadedCommand.h.in: Include more testing + +2002-09-20 14:16 andy + + * Modules/: CheckIncludeFile.c.in, CheckIncludeFile.cmake: Simplify + checking for headers + +2002-09-20 13:40 andy + + * Modules/: CheckIncludeFile.c.in, CheckIncludeFile.cmake: Add + macro which checks if the header file exists + +2002-09-20 13:40 andy + + * Modules/CheckFunctionExists.cmake: Fix comment + +2002-09-20 13:17 andy + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/LoadedCommand.cxx, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/LoadedCommand.cxx, + LoadCommand/LoadedCommand.h.in, + LoadCommandOneConfig/LoadedCommand.h.in: Fix test so that it does + some modules testing by checking for some functions and some size + of types + +2002-09-20 13:16 andy + + * Modules/: CheckFunctionExists.c, CheckFunctionExists.cmake, + CheckSizeOf.c, CheckSizeOf.cmake: Add two commonly used modules. + First one checks if the function exists, the second one checks + the size of type + +2002-09-20 13:15 andy + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmMakefile.cxx, cmMakefile.h, cmTryCompileCommand.cxx: Add option + of TRY_COMPILE to store the output of compilation so that if the + output fails you can display it or store it in the file + +2002-09-20 13:14 andy + + * Source/: cmCommands.cxx, cmWriteFileCommand.cxx, + cmWriteFileCommand.h: Add WRITE_FILE command, which writes string + to a file + +2002-09-20 10:06 martink + + * Tests/: LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: removed c++ + style comments + +2002-09-20 09:53 andy + + * Source/WXDialog/wxincludes.h: Fix includes + +2002-09-20 08:07 martink + + * Source/: cmTryRunCommand.h, cmTryRunCommand.cxx: compiler + warnings + +2002-09-19 17:35 andy + + * Source/WXDialog/CMakeLists.txt: Add test for gui + +2002-09-19 17:35 andy + + * Source/WXDialog/cmWXCommandLineInfo.cxx: Fix arguments + +2002-09-19 17:35 andy + + * Source/WXDialog/wxCMakeSetup.cxx: Allow argument Q + +2002-09-19 17:23 andy + + * Source/WXDialog/: cmWXMainFrame.cxx, cmWXMainFrame.h: Add support + for exiting after loading + +2002-09-19 17:20 andy + + * Source/WXDialog/: cmWXCommandLineInfo.cxx, cmWXCommandLineInfo.h: + Add option -Q for existing after loading + +2002-09-19 16:12 hoffman + + * Source/cmBorlandMakefileGenerator.cxx: ENH: allow for long + command lines + +2002-09-19 16:09 andy + + * Source/cmMakefile.cxx: Remove unnecessary disabling of output + +2002-09-19 16:07 andy + + * Source/cmTryRunCommand.cxx: Fix tryrun to work on Linux + +2002-09-19 15:01 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: use single line depend + rules for borland compiler + +2002-09-19 14:59 hoffman + + * Source/cmMSDotNETGenerator.cxx: ENH: add include to rc, and + newline to custom commnad + +2002-09-19 14:59 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, + cmNMakeMakefileGenerator.cxx: ENH: add include to rc + +2002-09-19 14:58 hoffman + + * Source/CMakeLists.txt: ENH: fix bad endif + +2002-09-19 14:58 hoffman + + * Templates/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + staticLibHeader.dsptemplate: ENH: add include paths to rc + +2002-09-19 14:40 andy + + * Source/cmSystemTools.cxx: Supress standard error when running + command + +2002-09-19 14:36 andy + + * Source/cmTryCompileCommand.cxx: Fix try compile with second + signature, remove cmake lists from cache so that multiple tests + work + +2002-09-19 14:35 andy + + * Source/cmSystemTools.h: Add a way to check if run command output + is disabled + +2002-09-19 14:35 andy + + * Source/cmMakefile.cxx: When doing try compile disable output + +2002-09-19 14:34 andy + + * Source/: cmListFileCache.cxx, cmListFileCache.h: Add a way to + remove files from cache + +2002-09-19 11:06 andy + + * Source/cmTryRunCommand.cxx: Fix compile problem + +2002-09-19 11:01 martink + + * Source/cmTryRunCommand.cxx: minor cleanup + +2002-09-19 11:00 andy + + * Source/WXDialog/wxincludes.h: Fix all defines on Windows + +2002-09-19 10:56 andy + + * Source/WXDialog/CMakeLists.txt: Fix executable to be WIN32 on + windows + +2002-09-19 10:25 andy + + * Modules/FindwxWindows.cmake: Fix find wxWindows + +2002-09-19 09:49 martink + + * Source/: cmCommands.cxx, cmTryCompileCommand.cxx, + cmTryCompileCommand.h: updated to try compile + +2002-09-19 09:48 martink + + * Source/: cmTryRunCommand.cxx, cmTryRunCommand.h: new command + +2002-09-19 09:48 andy + + * Source/WXDialog/CMakeLists.txt: Remove unnecessary message + +2002-09-19 09:47 andy + + * Source/CMakeLists.txt: Add option for building wxWindows GUI for + CMake + +2002-09-19 09:47 andy + + * Source/WXDialog/: CMakeLists.txt, cmWXCacheProperty.cxx, + cmWXCacheProperty.h, cmWXCommandLineInfo.cxx, + cmWXCommandLineInfo.h, cmWXMainFrame.cxx, cmWXMainFrame.h, + wxCMakeSetup.cxx, wxincludes.h: Initial import of wxWindows + dialog + +2002-09-19 09:42 andy + + * Modules/FindwxWindows.cmake: Improve searching for wxWindows + +2002-09-18 14:30 andy + + * Source/MFCDialog/CMakeSetupDialog.cpp: Fix callback for the new + API + +2002-09-18 14:18 andy + + * Source/: cmSystemTools.cxx, cmSystemTools.h, + CursesDialog/ccmake.cxx: Improve message handler to include + client data. + +2002-09-18 11:38 martink + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/CMakeCommands/CMakeLists.txt, + LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: test passing + CMAKE_FLAGS + +2002-09-18 11:37 martink + + * Source/: cmMakefile.cxx, cmMakefile.h, cmTryCompileCommand.cxx, + cmTryCompileCommand.h: now Try compile can include CMAKE_FLAGS + +2002-09-18 11:36 martink + + * Source/cmLoadCommandCommand.cxx: better error reporting + +2002-09-18 10:40 king + + * Source/cmSetCommand.cxx: ENH: If SET(VAR) is called with no other + arguments, remove the definition of VAR. + +2002-09-18 10:39 king + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: Added + RemoveDefinition method. + +2002-09-18 09:53 barre + + * Source/cmVTKWrapTclCommand.cxx: FIX: better support for the + Tcl/Tk 8.4 pre-release + +2002-09-18 08:15 andy + + * Modules/FindGTK.cmake: GL should not be a completely necessary + thing for finding GTK. This will find gtk and GL but also just + GTK + +2002-09-18 08:13 andy + + * Source/cmakewizard.cxx: Remove unnecessary variable + +2002-09-18 08:07 martink + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommandOneConfig/CMakeLists.txt: removed target + +2002-09-17 15:41 king + + * Modules/CMakeLists.txt: ENH: Adding installation of TRY_COMPILE + tests. + +2002-09-17 15:41 king + + * Source/cmTryCompileCommand.cxx: BUG: Generated CMakeLists.txt + file needs to take CMAKE_ANSI_CXXFLAGS into account. + +2002-09-17 14:40 king + + * Source/cmLocalUnixMakefileGenerator.cxx: ERR: Fixed typo: + INSTALL_PROGRAMS -> INSTALL_PROGRAM. + +2002-09-17 14:20 martink + + * Source/CursesDialog/cmCursesMainForm.cxx: some cmake api changees + +2002-09-17 14:19 andy + + * Source/cmakewizard.cxx: Strip the string that user answers + +2002-09-17 14:18 barre + + * Source/cmVTKWrapTclCommand.cxx: ENH: add support for Tcl/Tk 8.4.0 + +2002-09-17 14:12 martink + + * Source/cmake.h: updated comments + +2002-09-17 14:09 king + + * Source/cmLocalUnixMakefileGenerator.cxx: BUG: INSTALL_DATA should + be INSTALL_PROGRAMS for program install targets. + +2002-09-17 14:04 martink + + * Source/CursesDialog/cmCursesMainForm.cxx: some cmake api changees + +2002-09-17 13:59 martink + + * Source/: cmMakefile.cxx, cmake.cxx, cmake.h, cmakewizard.cxx, + MFCDialog/CMakeSetupDialog.cpp: cleaned up some of the cmake + interface + +2002-09-17 13:59 martink + + * Source/CMakeLists.txt: new test + +2002-09-17 13:48 andy + + * Source/cmakewizard.cxx: Replace getline with fgets since getline + does not seems to work properly on Mac OSX + +2002-09-17 11:48 andy + + * Source/: cmCacheManager.cxx, cmCacheManager.h, + cmMarkAsAdvancedCommand.cxx: Fix problems with advanced not being + marked. + +2002-09-17 10:56 king + + * Source/: cmInstallFilesCommand.cxx, cmInstallFilesCommand.h, + cmInstallProgramsCommand.cxx, cmInstallProgramsCommand.h, + cmLocalUnixMakefileGenerator.cxx: ENH: Improved implementation of + INSTALL_FILES and INSTALL_PROGRAMS commands. Source paths can + now be relative or full paths, and don't need to be in the same + directory as the CMakeLists.txt file. + +2002-09-17 10:38 martink + + * Tests/: LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: added + Destructor + +2002-09-17 10:38 martink + + * Source/: cmCPluginAPI.h, cmLoadCommandCommand.cxx: added + destructor to loaded commands + +2002-09-17 09:17 martink + + * Modules/TestForANSIStreamHeaders.cmake: slight change in + signature for TryCompile + +2002-09-17 09:16 martink + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmTryCompileCommand.cxx, cmTryCompileCommand.h: slight change in + signature + +2002-09-17 09:16 martink + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommandOneConfig/CMakeLists.txt: some cleanup + +2002-09-17 08:29 martink + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommandOneConfig/CMakeLists.txt: minor fix in error message + +2002-09-16 16:27 martink + + * Tests/: LoadCommand/CMakeLists.txt, + LoadCommand/LoadedCommand.cxx, + LoadCommand/CMakeCommands/CMakeLists.txt, + LoadCommand/CMakeCommands/cmTestCommand.c, + LoadCommandOneConfig/CMakeLists.txt, + LoadCommandOneConfig/LoadedCommand.cxx, + LoadCommandOneConfig/CMakeCommands/CMakeLists.txt, + LoadCommandOneConfig/CMakeCommands/cmTestCommand.c: load command + test + +2002-09-15 09:54 martink + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddDependenciesCommand.cxx, cmCacheManager.cxx, + cmExecProgramCommand.cxx, cmFLTKWrapUICommand.cxx, + cmListFileCache.cxx, cmaketest.cxx, ctest.cxx: remove unused + variables + +2002-09-15 09:42 martink + + * Source/: cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx: updated to use + ConfigureFinalPass + +2002-09-15 08:53 martink + + * Source/: cmLocalGenerator.cxx, cmLocalGenerator.h, + cmGlobalGenerator.cxx: changed handling of FinalPass + +2002-09-15 08:53 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: changed when final pass + is done + +2002-09-15 08:52 martink + + * Source/: cmMakefile.h, cmMakefile.cxx: renamed GenerateMakefile + to ConfigureFinalPass + +2002-09-14 10:59 martink + + * Source/CursesDialog/cmCursesMainForm.cxx: removed extra Generate + that was screwing things up + +2002-09-14 08:47 martink + + * Source/cmGlobalGenerator.cxx: fixed warning + +2002-09-13 19:23 martink + + * Source/cmGlobalGenerator.cxx: made less verbose + +2002-09-13 19:23 martink + + * Modules/TestForANSIStreamHeaders.cmake: removed messages + +2002-09-13 16:38 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added + FileIsFullPath test method. + +2002-09-13 13:48 martink + + * Source/: cmGlobalGenerator.cxx, cmMakefile.cxx, cmake.h: some + fixes for try compile + +2002-09-13 11:09 martink + + * Templates/: CXXCMakeSystemConfig.cmake.in, cxxconfigure, + cxxconfigure.in: now uses TryCompile + +2002-09-13 11:05 martink + + * Source/cmGlobalNMakeMakefileGenerator.h: minor fix + inEnableLanguages + +2002-09-13 11:01 martink + + * Source/: cmTryCompileCommand.cxx: fix to the cleanup code + +2002-09-13 10:42 martink + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalNMakeMakefileGenerator.h, + cmGlobalUnixMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, cmMakefile.cxx, + cmTryCompileCommand.cxx: better trycompile and enable langiages + +2002-09-13 10:41 martink + + * Source/cmake.cxx: better try compile + +2002-09-13 10:40 martink + + * Modules/TestForANSIStreamHeaders.cmake: removed messages + +2002-09-13 09:51 andy + + * configure, configure.in: Improve bootstrapping on Unix, so that + it bootstraps in the subdirectory. This prevents from compiler + files being reused and you can do make clean... + +2002-09-13 09:49 iscott + + * Modules/FindQt.cmake: Make QT variables advanced + +2002-09-13 08:15 martink + + * Source/: cmEndIfCommand.cxx, cmLocalUnixMakefileGenerator.cxx: + compiler warning + +2002-09-13 08:12 martink + + * Source/MFCDialog/CMakeSetup.cpp: duh + +2002-09-13 05:39 iscott + + * Modules/FindQt.cmake: Need to use $ENV{} to access environment + variables + +2002-09-12 16:36 martink + + * Modules/TestForANSIStreamHeaders.cmake: some cleanup + +2002-09-12 14:37 martink + + * Source/cmake.cxx: uninitialized var + +2002-09-12 13:55 andy + + * Source/cmaketest.cxx: Remove unnecessary include + +2002-09-12 13:42 andy + + * Source/cmakemain.cxx: Remove unnecessary include + +2002-09-12 13:19 bettingf + + * Tests/Wrapping/CMakeLists.txt, Source/CMakeLists.txt: added + include of FindQT.cmake + +2002-09-12 11:47 martink + + * Source/: cmMakefileGenerator.cxx, cmMakefileGenerator.h, + CMakeLists.txt: new arch + +2002-09-12 11:44 martink + + * Source/: cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h, + cmMSProjectGenerator.cxx, cmMSProjectGenerator.h, + cmDSWWriter.cxx, cmDSWWriter.h, cmDSPWriter.cxx, cmDSPWriter.h, + cmNMakeMakefileGenerator.cxx, cmNMakeMakefileGenerator.h, + cmBorlandMakefileGenerator.cxx, cmBorlandMakefileGenerator.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: new arch + +2002-09-12 11:38 bettingf + + * Source/CMakeLists.txt: added test for QTWrapUI called qtwrapping + +2002-09-12 11:37 bettingf + + * Tests/Wrapping/: qtwrappingmain.cxx, CMakeLists.txt: corrected + test for QTWrapUI + +2002-09-12 11:14 martink + + * Modules/: TestForANSIStreamHeaders.cmake, + TestForANSIStreamHeaders.cxx: new try compile module + +2002-09-12 11:13 andy + + * Source/cmCacheManager.cxx: Oops, too fast commit; add missing ; + +2002-09-12 11:12 andy + + * Source/cmCacheManager.cxx: Add more error checking + +2002-09-12 11:08 martink + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h: another + signature for Try_Compile + +2002-09-12 11:08 martink + + * Source/: cmMakefile.cxx, cmake.cxx, cmake.h: added a flag if a + cmake is in try compile + +2002-09-12 09:56 andy + + * Source/cmMarkAsAdvancedCommand.cxx: Fix mark as advanced. Now it + should work properly + +2002-09-12 09:00 andy + + * Source/: cmakewizard.cxx, cmakewizard.h: Simplify code. Since we + access cache entry through the iterator, we do not need the cache + manager any more + +2002-09-12 08:56 andy + + * Source/cmCacheManager.h: Fix build problem on Sun + +2002-09-11 16:44 bettingf + + * Source/cmQTWrapUICommand.cxx: corrected the generated lists .h in + header list and .cxx in sources list + +2002-09-11 16:43 bettingf + + * Source/cmLocalUnixMakefileGenerator.cxx: added generation of the + GENERATED_QT_FILES list for make clean + +2002-09-11 16:41 bettingf + + * Tests/Wrapping/CMakeLists.txt: added test for QTWrapUI + +2002-09-11 16:40 bettingf + + * Tests/Wrapping/: qtwrappingmain.cxx, qtwrapping.ui: test for + QTWarpUI + +2002-09-11 16:12 king + + * Source/cmCacheManager.cxx: BUG: GetCacheValue must check if value + is UNINITIALIZED. If so, pretend it doesn't exist. + +2002-09-11 15:13 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: Fix bug in ccmake which + made it crash when all cache values were deleted + +2002-09-11 15:04 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: Fix problem with ccmake + crashing on empty caches + +2002-09-11 14:38 andy + + * Source/MFCDialog/CMakeSetupDialog.cpp: Fix MFC GUI + +2002-09-11 14:38 andy + + * Source/cmCacheManager.cxx: Fix find and remove check for + uninitialized entries + +2002-09-11 14:08 andy + + * Source/cmCacheManager.cxx: Function strcasecmp is not portable + +2002-09-11 14:05 andy + + * Source/: cmCacheManager.cxx, cmCacheManager.h, + cmFindPathCommand.cxx, cmFindProgramCommand.cxx, cmMakefile.cxx, + cmMarkAsAdvancedCommand.cxx, cmVariableRequiresCommand.cxx, + cmakewizard.cxx, cmakewizard.h, + CursesDialog/cmCursesCacheEntryComposite.cxx, + CursesDialog/cmCursesCacheEntryComposite.h, + CursesDialog/cmCursesMainForm.cxx: Couple of changes: cache + variables now have a map of properties. ADVANCED and HELPSTRING + are now properties of cache variable, IsAdvanced is gone, so is + GetCacheEntry, since cache entries are now all private. To access + them, you use the iterator. -ADVANCED cache entries are gone and + are replaced by the property of cache variables. The cache file + still looks the same, but the -ADVANCED cache entries are created + when writing file. MarkAsAdvanced and VariableRequires are fixed. + So are curses gui and wizard + +2002-09-11 13:27 andy + + * Templates/CCMakeSystemConfig.cmake.in: Remove Mark_AS_ADVANCED + for some variables that do not exist + +2002-09-11 12:52 martink + + * Source/cmMakefile.cxx: minor fix in try compile code + +2002-09-11 09:54 king + + * Source/: CMakeLists.txt, cmDynamicLoader.cxx, cmDynamicLoader.h, + cmDynamicLoaderC.c: ENH: Pointer-to-function to pointer-to-data + casts are not even allowed in strict C. Re-implemented this + conversion in pure C++ using a casting trick with an extra level + of indirection. + +2002-09-11 08:52 king + + * Source/cmDynamicLoaderC.c: ERR: Removed C++-style comments, used + C-style instead. + +2002-09-10 17:24 king + + * Source/cmake.cxx: ERR: Added missing include of stdio.h for + sprintf. + +2002-09-10 16:52 martink + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h: updated + signature + +2002-09-10 16:52 martink + + * Source/: cmMakefile.cxx, cmMakefile.h: updated makefile moved + commands into cmake and fixed try compile + +2002-09-10 16:51 martink + + * Source/cmDumpDocumentation.cxx: moved dump docs into cmake + +2002-09-10 16:51 martink + + * Source/: cmake.h, cmake.cxx: moved commands into cmake + +2002-09-10 16:49 martink + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h: modified TryCompile + +2002-09-10 15:46 king + + * Source/: CMakeLists.txt, cmDynamicLoader.cxx, cmDynamicLoader.h, + cmDynamicLoaderC.c: ERR: Cast from pointer-to-data to + pointer-to-function is not allowed in C++. The cast needed by + cmDynamicLoader::GetSymbolAddress is now hidden in a C file. + +2002-09-10 15:40 king + + * Source/cmGlobalUnixMakefileGenerator.cxx: ERR: Fixes for comeau + compiler. NULL is a pointer of type void*, and cannot be + compared directly with other pointer types. We use 0 instead. + Also changed putenv to setenv for comeau on linux. + +2002-09-10 15:40 king + + * Source/cmStandardIncludes.h: ENH: Added definition of _BSD_SOURCE + to enable proper use of POSIX functions on comeau in linux. + +2002-09-10 15:38 king + + * Source/cmSystemTools.cxx: ERR: Fix for borland on linux. We + cannot directly compare the st_dev and st_ino members of struct + stat. Use memcmp instead. + +2002-09-10 15:37 king + + * Source/cmLocalGenerator.cxx: ERR: Removed stray semi-colon. + +2002-09-10 15:36 king + + * Source/: cmMakefile.cxx, cmRegularExpression.cxx, + cmRegularExpression.h, cmMakeDepend.cxx, + cmLoadCommandCommand.cxx, cmCPluginAPI.cxx: ERR: Fixes for comeau + compiler. NULL is a pointer of type void*, and cannot be + compared directly with other pointer types. We use 0 instead. + +2002-09-10 15:36 king + + * Source/cmake.cxx: ERR: Fix for borland on linux. + +2002-09-10 13:32 barre + + * Modules/FindOpenGL.cmake: FIX: typo + bring back the + OPENGL_gl_LIBRARY path that can be used to find GLU (was wiped + out from FindGLU) + +2002-09-10 12:49 martink + + * Source/CMakeLists.txt: removed extra ENDIF + +2002-09-10 10:35 king + + * configure, configure.in: ERR: Went back to old-style test for + -LANG:std on the SGI. + +2002-09-10 10:16 martink + + * Source/: cmEndIfCommand.cxx, cmIfCommand.cxx: better error + checking on If statements + +2002-09-10 10:02 king + + * configure, configure.in: ERR: AC_SUBST replaced with AC_DEFINE. + Needed to get configure script to correctly setup cmConfigure.h. + +2002-09-10 09:51 king + + * Source/cmCommands.cxx: ERR: Removed accidental commit. + +2002-09-10 09:50 king + + * configure, configure.in, Source/cmCommands.cxx: BUG: Missing + AC_SUBST commands added. + +2002-09-09 09:50 hoffman + + * Modules/FindOpenGL.cmake: Adding GLU to the OPENGL_LIBRARIES only + if it is found. + +2002-09-08 10:15 martink + + * Source/: cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio7Generator.cxx, cmake.cxx: compiler warnings + +2002-09-07 21:25 martink + + * Source/: cmGlobalGenerator.cxx, + cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio7Generator.cxx: compiler warnings + +2002-09-07 21:22 martink + + * Source/cmLocalGenerator.h: compiler warning + +2002-09-07 21:18 martink + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmLocalBorlandMakefileGenerator.cxx: fix for borland compilers + +2002-09-06 18:05 king + + * Source/cmVTKWrapTclCommand.cxx: ERR: Fix for borland in generated + code. vtkCommand is ambiguously both a function and a class. + +2002-09-06 17:19 king + + * configure, configure.in, Templates/cconfigure, + Templates/cconfigure.in, Templates/cxxconfigure, + Templates/cxxconfigure.in: ENH: Improved configure test + implementations by using AC_TRY_COMPILE. + +2002-09-06 16:30 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: updated to fix the long + depend line issue on Borland + +2002-09-06 14:03 starreveld + + * Modules/FindOpenGL.cmake: + ERR: Fix opengl finding on osx + +2002-09-06 13:56 barre + + * Modules/FindTCL.cmake: ENH: make stub stuff ADVANCED + +2002-09-06 13:04 martink + + * Source/: cmMakefile.cxx, cmMakefile.h, cmakemain.cxx, + cmakewizard.cxx, CMakeLists.txt, Makefile.in, + cmGlobalGenerator.cxx, cmGlobalUnixMakefileGenerator.cxx, + cmLocalUnixMakefileGenerator.cxx: new arch + +2002-09-06 13:00 martink + + * Source/: MFCDialog/CMakeSetupDialog.cpp, + MFCDialog/CMakeSetupDialog.h, cmaketest.cxx, cmake.cxx, cmake.h: + new arch + +2002-09-06 13:00 martink + + * Source/CursesDialog/: ccmake.cxx, cmCursesLongMessageForm.cxx, + cmCursesMainForm.cxx, cmCursesMainForm.h: new architecture + +2002-09-06 11:47 hoffman + + * Templates/CMakeBorlandWindowsSystemConfig.cmake: fix comment + +2002-09-06 11:00 iscott + + * Modules/readme.txt: Add important missing word to documentation + +2002-09-06 10:55 iscott + + * Modules/readme.txt: More detailed information about consistent + FindXXX.cmake files + +2002-09-06 10:47 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: use :: rule and not a + long line extension + +2002-09-06 09:24 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: minor fix + +2002-09-06 08:33 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: minor fixes + +2002-09-05 12:00 iscott + + * Modules/: FindFLTK.cmake, FindGLUT.cmake, FindGTK.cmake, + FindOpenGL.cmake, FindX11.cmake: Hide lots of values in the + advanced list Fix some bugs OpenGL always needs X11 on Unix + +2002-09-05 09:04 martink + + * Source/cmLocalGenerator.h: made destructor virtual + +2002-09-05 08:22 martink + + * Source/cmDynamicLoader.cxx: removed some couts + +2002-09-04 15:46 martink + + * Source/cmCacheManager.h: made method public + +2002-09-04 15:28 martink + + * Source/cmLocalUnixMakefileGenerator.cxx: fixes + +2002-09-04 15:24 martink + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmGlobalNMakeMakefileGenerator.cxx, cmLocalGenerator.cxx, + cmLocalGenerator.h: updates + +2002-09-04 15:22 martink + + * Source/: cmGlobalVisualStudio6Generator.cxx, + cmGlobalVisualStudio6Generator.h, + cmLocalVisualStudio6Generator.cxx, + cmLocalVisualStudio6Generator.h, + cmGlobalVisualStudio7Generator.cxx, + cmGlobalVisualStudio7Generator.h, + cmLocalVisualStudio7Generator.cxx, + cmLocalVisualStudio7Generator.h: new arch + +2002-09-04 15:22 martink + + * Source/: cmGlobalBorlandMakefileGenerator.cxx, + cmGlobalBorlandMakefileGenerator.h, + cmLocalBorlandMakefileGenerator.cxx, + cmLocalBorlandMakefileGenerator.h: first cut a new arch + +2002-09-04 11:17 martink + + * Tests/Wrapping/CMakeLists.txt: fixed test for new cmake + +2002-09-04 09:24 king + + * Modules/FindOpenGL.cmake: ERR: Still need to define + OPENGL_INCLUDE_PATH in addition to the standard + OPENGL_INCLUDE_DIR for backward compatability. + +2002-09-03 12:29 iscott + + * Modules/FindMFC.cmake: A simple FindMFC module for consistency + +2002-09-03 10:41 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: use windows paths for + utility depends + +2002-09-03 10:41 hoffman + + * Source/cmMSDotNETGenerator.cxx: BUG: bug for more than one custom + commands + +2002-09-03 09:14 iscott + + * Modules/Dart.cmake: Dart now has a configure option + +2002-09-03 09:00 iscott + + * Modules/FindPNG.cmake: I copied a bit too much VXL functionality + here. Oops + +2002-09-03 08:33 iscott + + * Modules/FindPerl.cmake: Added PERL_FOUND + +2002-09-03 08:24 iscott + + * Modules/FindMPEG.cmake: Add an MPEG finder in the new format - + functionality copied from VXL. + +2002-09-03 06:10 iscott + + * Modules/: FindAVIFile.cmake, FindGLU.cmake, FindGLUT.cmake, + FindJPEG.cmake, FindOpenGL.cmake, FindPNG.cmake, FindTIFF.cmake, + FindX11.cmake: Fixed mistake in comments Transferred OPENGL + finding logic in from VXL Added Some backwards compatibility with + CMake1.4 + +2002-09-02 17:34 iscott + + * Modules/: FindFLTK.cmake, FindGTK.cmake: Moved FLTK and GTK to + new FindXXX scheme. Imported some functionality from VXL + +2002-09-02 17:33 iscott + + * Modules/FindX11.cmake: small bug fixes + +2002-09-02 17:29 iscott + + * Source/cmFLTKWrapUICommand.cxx: FLTK_FLUID_EXE -> + FLTK_FLUID_EXECUTABLE because Module files are moving to + consistent scheme + +2002-09-02 16:59 iscott + + * Modules/: FindQt.cmake, FindTIFF.cmake: Fix Bugs + +2002-09-02 16:24 iscott + + * Modules/FindZLIB.cmake: This file should not be empty + +2002-09-02 15:49 iscott + + * Modules/: FindZLIB.cmake, FindZLib.cmake: Moved FindZLib.cmake to + FindZLIB.cmake + +2002-09-02 15:46 iscott + + * Modules/: FindPNG.cmake, FindX11.cmake, FindZLib.cmake: Copied + the X11 PNG and ZLIB functoinality from VXL + +2002-09-02 14:08 iscott + + * Modules/: FindPNG.cmake, FindZLib.cmake: Adding Zlib and PNG find + modules in the new format + +2002-09-02 12:58 iscott + + * Modules/FindTIFF.cmake: This Find Module is in the new style + +2002-09-02 12:05 iscott + + * Modules/: FindJPEG.cmake, FindQt.cmake, FindWget.cmake, + FindZLib.cmake: Add helpful message for QT Windows users Add + FindZLib in new format Move FindJPEG and FINDWGET over to new + scheme + +2002-09-02 07:03 iscott + + * Modules/FindAVIFile.cmake, Modules/FindQt.cmake, + Modules/LinkQT.cmake, Modules/readme.txt, + Source/cmQTWrapCPPCommand.cxx, Source/cmQTWrapUICommand.cxx: + Define a single expected format for the values defined in every + FindXXX.cmake file. Upgrade all the QT functionality to use the + new FindXXX.cmake format Add a module for AVIFile. + +2002-08-30 16:01 martink + + * Source/: cmGlobalUnixMakefileGenerator.cxx, + cmGlobalUnixMakefileGenerator.h, + cmLocalUnixMakefileGenerator.cxx, cmLocalUnixMakefileGenerator.h, + cmGlobalNMakeMakefileGenerator.cxx, + cmGlobalNMakeMakefileGenerator.h, + cmLocalNMakeMakefileGenerator.cxx, + cmLocalNMakeMakefileGenerator.h: in progress + +2002-08-30 16:00 martink + + * Source/: cmGlobalGenerator.cxx, cmGlobalGenerator.h, + cmLocalGenerator.cxx, cmLocalGenerator.h: in progress checkin + +2002-08-30 09:54 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: add rpcrt4.lib + because of CMakeLib needing it + +2002-08-29 09:45 martink + + * Source/cmCPluginAPI.cxx: extern C fixes + +2002-08-28 16:35 martink + + * Source/CursesDialog/: ccmake.cxx, cmCursesMainForm.cxx, + cmCursesMainForm.h: some changes in cachemanager and singletons + +2002-08-28 16:34 martink + + * Source/cmaketest.cxx: no more singletons + +2002-08-28 16:33 martink + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: now needs dynlib + support + +2002-08-28 15:08 king + + * Utilities/: cmake_release_config_cygwin, + cmake_release_unix_build.sh, cmake_release_unix_config.sh, + cmake_release_unix_package.sh: ENH: Moved build of source tarball + to package script. + +2002-08-28 14:51 martink + + * Source/: cmCPluginAPI.cxx, cmCacheManager.cxx, cmCacheManager.h, + cmCommands.cxx, cmFindPathCommand.cxx, cmFindProgramCommand.cxx, + cmLoadCacheCommand.cxx, cmLoadCommandCommand.cxx, + cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h, + cmMSProjectGenerator.cxx, cmMSProjectGenerator.h, cmMakefile.cxx, + cmMakefile.h, cmMakefileGenerator.cxx, cmMakefileGenerator.h, + cmNMakeMakefileGenerator.cxx, cmNMakeMakefileGenerator.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h, + cmVariableRequiresCommand.cxx, cmake.cxx, cmake.h, cmakemain.cxx, + cmakewizard.cxx, cmakewizard.h, MFCDialog/CMakeSetup.cpp, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/CMakeSetupDialog.h, + MFCDialog/PropertyList.cpp, MFCDialog/PropertyList.h: changed + cache manager and registered generators to no longer be + singletons + +2002-08-28 14:49 martink + + * Source/: cmTryCompileCommand.cxx, cmTryCompileCommand.h: an early + checking not complete + +2002-08-28 14:33 hoffman + + * Source/cmBorlandMakefileGenerator.cxx, + Source/cmMSDotNETGenerator.cxx, + Source/cmNMakeMakefileGenerator.cxx, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: ENH: add include paths to + rc program for resource generation + +2002-08-28 10:43 king + + * Utilities/setup.hint: ENH: Incremented version number for 1.4-4 + +2002-08-28 10:40 king + + * Utilities/: cmake-cygwin.README, setup.hint: ENH: Adding cygwin + installation files to branch. + +2002-08-28 10:28 hoffman + + * Utilities/: cmake-cygwin.README, cmake_release_config_cygwin, + setup.hint: [no log message] + +2002-08-28 09:30 king + + * Utilities/cmake_release_config_darwin: Switched to release branch + tag instead of sticky tag. + +2002-08-28 09:27 king + + * Utilities/cmake_release_config_darwin: ENH: Adding release + configuration for darwin. + +2002-08-28 09:07 king + + * Utilities/cmake_release_unix_package.sh: BUG: Don't erase tarball + directory in packaging step in case there is a source tarball + there. + +2002-08-28 09:04 hoffman + + * Utilities/: cmake_release_unix_config.sh, + cmake_release_unix_package.sh: cygwin release + +2002-08-28 08:51 king + + * Utilities/: cmake_release_config_hpux, cmake_release_config_irix, + cmake_release_config_linux, cmake_release_config_sun: ENH: + Updated release script configuration for CMake release 1.4.4. + +2002-08-27 14:45 andy + + * Source/cmSourceFile.cxx: Fix bug in trying to set stding with + null + +2002-08-27 09:43 hoffman + + * Source/: CMakeLists.txt, cmLoadCommandCommand.cxx: ENH: fix + warnings + +2002-08-27 08:36 martink + + * Source/: CMakeLists.txt, cmCommands.cxx: fixed bootstrap build to + not use LoadCOmmandCOmmand + +2002-08-26 15:22 martink + + * Source/: cmGetSourceFilePropertyCommand.cxx, + cmGetSourceFilePropertyCommand.h: updated to match the SET + +2002-08-26 15:20 martink + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: added new form of Set source + file properties command + +2002-08-26 10:52 martink + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h, cmCommands.cxx, + cmLoadCommandCommand.cxx: now uses stubs + +2002-08-26 08:53 martink + + * Source/cmSetSourceFilesPropertiesCommand.cxx: fixed bug maybe + +2002-08-23 17:00 hoffman + + * Templates/cxxconfigure, Templates/cxxconfigure.in, configure, + configure.in: try another flag for the dec compiler... + +2002-08-23 16:25 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: no more dll for plugin + +2002-08-23 16:15 martink + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: remoevd shared + lib + +2002-08-23 16:12 martink + + * Source/: cmCPluginAPI.h, cmCacheManager.h, cmDirectory.h, + cmRegularExpression.h, cmStandardIncludes.h, cmSystemTools.h, + cmake.h, CMakeLists.txt, cmListFileCache.h, cmMakefile.h, + cmMakefileGenerator.h, cmakewizard.h: removed shared lib support + +2002-08-23 16:12 martink + + * Source/cmaketest.cxx: memory issue + +2002-08-23 15:11 martink + + * Source/: cmVTKMakeInstantiatorCommand.cxx, cmCacheManager.h, + cmCPluginAPI.cxx: compiler warnings + +2002-08-23 13:47 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: BUG: fix for + cygwin + +2002-08-23 13:46 hoffman + + * Source/: CMakeLists.txt, cmCacheManager.cxx, cmCacheManager.h, + cmake.cxx, cmake.h, cmakemain.cxx, cmaketest.cxx, + CursesDialog/CMakeLists.txt, CursesDialog/form/CMakeLists.txt, + MFCDialog/CMakeSetup.cpp: BUG: add explicit clean up of the + cachemanager at exit of programs, so dll destruction is not a + problem. + +2002-08-23 09:09 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: remove use of + getpropertyasbool + +2002-08-22 17:06 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: BUG: fix for borland and a + shared CMakeLib + +2002-08-22 16:57 hoffman + + * Tests/: Complex/CMakeLists.txt, + Complex/Executable/CMakeLists.txt, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: BUG: fix for + borland and a shared CMakeLib + +2002-08-22 16:16 hoffman + + * Source/CMakeLists.txt: BUG: borland needs to have + BUILD_SHARED_LIBS on for executables to work with c++ + +2002-08-22 15:58 martink + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: complex test + needs the dll + +2002-08-22 14:41 martink + + * Source/cmCPluginAPI.cxx: minor warning fix + +2002-08-22 14:40 iscott + + * Modules/: FindAVIFile.cmake, readme.txt: Some more explanation of + a consistent scheme + +2002-08-22 11:37 hoffman + + * configure, configure.in, Templates/cxxconfigure, + Templates/cxxconfigure.in: BUG: fix for OSF compiler to use ansi + mode for streams + +2002-08-22 11:12 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: BUG: use c flags for + cprograms, and do not use large command lines for linking + +2002-08-22 09:17 martink + + * Source/cmCPluginAPI.cxx: fixed some warnings + +2002-08-22 09:11 martink + + * Source/cmSetSourceFilesPropertiesCommand.cxx: fixed some warnings + +2002-08-22 09:10 martink + + * Source/cmCPluginAPI.h: fixed nested comment + +2002-08-22 08:25 martink + + * Source/CursesDialog/CMakeLists.txt: added lib + +2002-08-21 15:52 king + + * Utilities/cmake_release_unix_package.sh: ENH: Added -files to end + of internal binary tarball to distinguish from the outer + tarball's name. + +2002-08-21 15:37 martink + + * Source/CursesDialog/cmCursesMainForm.cxx: minor fixes for new + cache api + +2002-08-21 13:15 martink + + * Source/: cmMakefile.cxx, cmMakefile.h, cmCPluginAPI.cxx: minor + bug + +2002-08-21 12:02 martink + + * Source/MFCDialog/: CMakeLists.txt, CMakeSetupDialog.cpp: support + for dll + +2002-08-21 12:01 martink + + * Source/: cmMakefileGenerator.h, cmMakefile.h: dll support + +2002-08-21 12:00 martink + + * Source/cmRegularExpression.h: made into dll + +2002-08-21 11:59 martink + + * Source/: cmake.h, cmakewizard.h, cmakewizard.cxx: support for + plugins + +2002-08-21 11:58 martink + + * Source/: cmLoadCommandCommand.cxx, cmLoadCommandCommand.h: adding + plugin support + +2002-08-21 11:58 martink + + * Source/: cmDynamicLoader.cxx, cmDynamicLoader.h: added plugin + support + +2002-08-21 11:55 martink + + * Source/: cmStandardIncludes.h, CMakeLists.txt, + cmCacheManager.cxx, cmCacheManager.h, cmDirectory.h, + cmSystemTools.h, cmListFileCache.h: made CMakeLib shared on + windows + +2002-08-21 11:54 martink + + * Source/: cmCPluginAPI.cxx, cmCPluginAPI.h: added C Plugin API + first cut + +2002-08-21 09:45 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: BUG: use c compiler for link + of c programs, and use temp file nmake syntax for linking c and + c++ programs + +2002-08-19 15:40 iscott + + * Modules/: FindQt.cmake, LinkQT.cmake: I have tested this with + VXL/our internal code, and it works for me. + +2002-08-19 10:05 iscott + + * Modules/FindQt.cmake: I first go at a consistent FindXXX.cmake + file + +2002-08-16 11:20 martink + + * Source/cmMacroCommand.cxx: minor fix + +2002-08-16 11:17 martink + + * Source/: cmQTWrapCPPCommand.cxx, cmQTWrapUICommand.cxx, + cmSetSourceFilesPropertiesCommand.cxx, + cmSetSourceFilesPropertiesCommand.h, cmSourceFile.cxx, + cmSourceFile.h, cmSourceFilesCommand.cxx, + cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx, cmGetSourceFilePropertyCommand.cxx, + cmWrapExcludeFilesCommand.cxx, cmCreateTestSourceList.cxx, + cmAbstractFilesCommand.cxx, cmAuxSourceDirectoryCommand.cxx, + cmBorlandMakefileGenerator.cxx, cmDSPWriter.cxx, + cmFLTKWrapUICommand.cxx, cmMSDotNETGenerator.cxx, + cmMakeDepend.cxx, cmNMakeMakefileGenerator.cxx, cmTarget.cxx, + cmUnixMakefileGenerator.cxx, cmVTKMakeInstantiatorCommand.cxx: + modified how source files store properties + +2002-08-16 09:45 king + + * Source/cmVTKMakeInstantiatorCommand.cxx: ERR: unsigned int -> + size_t. + +2002-08-16 09:31 king + + * Source/cmVTKMakeInstantiatorCommand.cxx: ENH: Changed check for + which version of instantiators to generate to look for definition + of VTK_USE_INSTANTIATOR_NEW instead of an extra argument to + VTK_MAKE_INSTANTIATOR. + +2002-08-15 15:01 king + + * Source/: cmVTKMakeInstantiatorCommand.cxx, + cmVTKMakeInstantiatorCommand.h: BUG: Added + backward-compatability. The old instantiator style will be used + unless the argument USE_INSTANTIATOR_NEW is given to tell the + command to make use of the instantiator new functions exported + from each class's implementation file. + +2002-08-15 14:39 king + + * Source/: cmVTKMakeInstantiatorCommand.cxx, + cmVTKMakeInstantiatorCommand.h: ENH: Improved generated + instantiator to use extern declarations to wrappers around the + New() methods. This avoids the need to include each class's + header in an instantiator source. The instantiator class + implementations can now fit in a single source file that compiles + quickly. + +2002-08-15 09:34 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: ENH: add -DWIN32 flag for + builds + +2002-08-14 11:44 ibanez + + * Modules/FindFLTK.cmake: ENH: Platform dependent libraries added. + +2002-08-13 15:47 martink + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: added macro test + +2002-08-13 15:46 martink + + * Source/: cmCommands.cxx, cmMacroCommand.cxx, cmMacroCommand.h: + added new command + +2002-08-13 10:46 martink + + * Source/: cmExecProgramCommand.h, cmExecProgramCommand.cxx: merge + from main tree + +2002-08-13 10:08 martink + + * CMakeLists.txt: added man page + +2002-08-13 10:05 martink + + * Source/cmCreateTestSourceList.cxx: some warning and purify fixes + +2002-08-13 10:04 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx: IF Else improvements + +2002-08-13 10:03 martink + + * Source/: cmMakefile.cxx, cmMakefile.h: merges from the main + branch + +2002-08-13 10:02 martink + + * Source/cmRemoveCommand.cxx: merge from main branch + +2002-08-13 10:01 martink + + * Copyright.txt: merge from the main branch + +2002-08-13 10:00 martink + + * cmake.1: updated from main branch + +2002-08-13 09:59 martink + + * Modules/: FindFLTK.cmake, FindTCL.cmake: updates from the main + branch + +2002-08-12 08:39 martink + + * Source/cmElseCommand.cxx: compiler warning + +2002-08-09 12:00 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx, cmMakefile.cxx: + better IF ELSE handling + +2002-08-09 10:04 barre + + * Modules/FindTCL.cmake: FIX: fix commit messup (this change was + committed to the branch instead of the main tree, thus was + wiped-out later) + +2002-08-09 08:33 barre + + * Modules/FindwxWindows.cmake: FIX: - WINDOWS does not exist, use + WIN32 (or defineWINDOWS if cygwin can not be used inUnix mode?), + - fix an un-closed IF, - use same prefix for vars (and make it + advanced) + +2002-08-09 07:55 andy + + * Modules/FindwxWindows.cmake: This hopefully finds wxWindows on + UNIX + +2002-08-08 15:30 andy + + * Modules/FindwxWindows.cmake: Add UNIX support for WXWINDOWS + +2002-08-08 15:29 andy + + * Source/: cmExecProgramCommand.cxx, cmExecProgramCommand.h: Add + return value support and add documentation + +2002-08-08 15:14 king + + * Copyright.txt: ENH: Updated copyright. + +2002-08-08 15:13 andy + + * Source/: cmExecProgramCommand.cxx, cmExecProgramCommand.h: Add + option of storing output to the variable + +2002-08-08 13:41 barre + + * Modules/FindwxWindows.cmake: ENH: first stab at wxWindows support + (win32) + +2002-08-08 12:49 king + + * CMakeLists.txt: ENH: Adding installation for man page. + +2002-08-08 12:30 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: handle .exe extension + for cygwin + +2002-08-08 11:58 king + + * cmake.1: ENH: Initial checkin of unix manpage. + +2002-08-08 08:51 martink + + * Source/cmCreateTestSourceList.cxx: fixed some compiler warnings + and leaks + +2002-08-07 18:12 king + + * Utilities/: cmake_release_config_hpux, cmake_release_config_irix, + cmake_release_config_linux, cmake_release_config_sun, + cmake_release_unix.sh, cmake_release_unix_build.sh, + cmake_release_unix_config.sh, cmake_release_unix_package.sh: ENH: + Split install script into two parts. Added basic support for + adding more files to the distribution and creating packages. + +2002-08-07 11:01 martink + + * Source/cmCreateTestSourceList.cxx: fixed some compiler warnings + and leaks + +2002-08-07 10:30 martink + + * Source/cmCreateTestSourceList.cxx: fixed some compiler warnings + and leaks + +2002-08-05 18:08 ibanez + + * Modules/FindFLTK.cmake: ENH: Images library added. Names for + debuggin versions in windows added. + +2002-08-05 09:51 martink + + * Source/cmRemoveCommand.cxx: minor fix + +2002-08-02 13:43 ibanez + + * Modules/FindFLTK.cmake: FIX: names styles for fltkgl and + fltkforms are different in windows and linux. Both styles + are now searched taking advantage of the NAMES option in + FIND_LIBRARY. + +2002-08-02 12:51 martink + + * Source/cmLinkDirectoriesCommand.cxx: duhhhhhh + +2002-08-02 08:50 martink + + * Source/: cmFindLibraryCommand.cxx, cmLinkLibrariesCommand.cxx, + MFCDialog/CMakeSetupDialog.cpp, cmMakefile.h: updates from the + main tree + +2002-08-01 23:05 barre + + * Source/cmFindLibraryCommand.cxx: FIX: put ExpandRegistryValue() + back (seems to have been removed accidentally I guess in 1.25) + +2002-08-01 16:23 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: FIX: stupid pb fixed + (close to being medieval'ed by The Ken) + +2002-08-01 15:58 martink + + * Source/cmLinkDirectoriesCommand.cxx: no longer need an argument + +2002-08-01 09:50 martink + + * Source/cmCreateTestSourceList.cxx, + Source/cmCreateTestSourceList.h, Source/cmMakefile.h, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmNMakeMakefileGenerator.h, Source/cmSystemTools.cxx, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, Source/cmVTKWrapTclCommand.cxx, + Source/cmake.cxx, Source/MFCDialog/CMakeCommandLineInfo.cpp, + Source/MFCDialog/CMakeCommandLineInfo.h, + Source/MFCDialog/CMakeSetup.cpp, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/CMakeSetupDialog.h, + Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt, + Tests/TestDriver/CMakeLists.txt, Tests/TestDriver/test1.cxx, + Tests/TestDriver/test2.cxx, Tests/TestDriver/testArgs.h, + Tests/TestDriver/subdir/test3.cxx: merges from the main branch + +2002-08-01 08:41 martink + + * Modules/: FindGLU.cmake, FindJNI.cmake, FindOpenGL.cmake, + FindTCL.cmake: merges from the main tree + +2002-07-31 13:45 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: BUG: fix jump to directory and build + for nmake if library path is not set. combine + OutputBuildExecutableInDir and OutputBuildLibraryInDir into + OutputBuildTargetInDir + +2002-07-31 11:08 martink + + * Tests/TestDriver/testArgs.h: minor fix for c tests + +2002-07-31 11:07 martink + + * Source/cmCreateTestSourceList.cxx: fixed support for C test + programs + +2002-07-31 10:34 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: FIX: ConvertToOutputPath + puts "" around path. Not compatible with GUI use. + +2002-07-31 09:29 barre + + * Source/cmCreateTestSourceList.cxx: FIX: is enough to + get malloc()/free() + +2002-07-30 16:19 martink + + * Tests/TestDriver/: CMakeLists.txt, test1.cxx, test2.cxx, + subdir/test3.cxx: updated to mods in command + +2002-07-30 16:18 martink + + * Source/: cmCreateTestSourceList.cxx, cmCreateTestSourceList.h: + updated to handle extensions + +2002-07-30 10:33 barre + + * Source/cmCreateTestSourceList.cxx: FIX: la commande créait du + code C++. Du code C devrait faire l'affaire. + +2002-07-30 10:23 barre + + * Source/cmCreateTestSourceList.cxx: FIX: la commande créait du + code C++. Du code C devrait faire l'affaire. + +2002-07-29 09:46 barre + + * Modules/: FindTCL.cmake: ENH: change the search path order (if + several Tcl/Tk are installed, the "current" version is likely to + be the one that is bound to the wish/tclsh found in the PATH) + +2002-07-26 14:06 barre + + * Modules/: FindTCL.cmake: ENH: clean the module, add debug libs + +2002-07-26 10:14 king + + * Source/: cmITKWrapTclCommand.cxx, cmITKWrapTclCommand.h: BUG: + Only one generated Tcl wrapper source was getting added to the + package's library. + +2002-07-26 09:54 king + + * Source/cmVTKWrapTclCommand.cxx: BUG: Generated call to + Tcl_CreateCommand for vtkCommand should cast pointer to extern + "C" version. + +2002-07-25 16:47 king + + * Source/cmVTKWrapTclCommand.cxx: BUG: Generated vtkCommand + prototype cannot be extern "C" because it may not match with the + version in VTK. + +2002-07-25 16:41 andy + + * Source/cmSystemTools.cxx: Ok, now cd will work on windows + +2002-07-25 16:25 will + + * Source/cmVTKWrapTclCommand.cxx: fixed warning + +2002-07-25 11:17 barre + + * Modules/FindTCL.cmake: FIX: the stub libs were not searched + +2002-07-25 11:10 barre + + * Modules/FindTCL.cmake: FIX: the stub libs were not searched + +2002-07-25 09:16 martink + + * Source/cmMakefile.cxx: makefile now does not ignore NOTFOUND libs + and includes + +2002-07-25 08:00 martink + + * Source/cmMakefile.cxx: makefile now ignores NOTFOUND libs and + includes + +2002-07-22 11:03 king + + * Utilities/cmake_release_config_irix: ENH: Added release script + configuration for IRIX build. + +2002-07-22 10:57 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: better Drag&Drop, and + change source dir automatically when build dir is changed in the + GUI + +2002-07-22 10:40 martink + + * Source/cmMakefile.h: updated to patch 1 + +2002-07-22 10:34 martink + + * Templates/CXXCMakeSystemConfig.cmake.in: better docs and support + for mising args + +2002-07-22 10:33 martink + + * Source/cmMakefile.cxx: now replaces args even if not defined + +2002-07-22 10:31 martink + + * Source/: cmAddDefinitionsCommand.cxx, + cmIncludeDirectoryCommand.cxx, cmLinkLibrariesCommand.cxx, + cmTargetLinkLibrariesCommand.cxx: allows less arguments changes + from main tree + +2002-07-22 10:00 martink + + * Source/: cmIncludeDirectoryCommand.cxx, + cmLinkLibrariesCommand.cxx: allows no arguments + +2002-07-21 19:12 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: add Drag & Drop + (directory, file, or CMakeCache), support for Shortcut too + +2002-07-21 15:56 barre + + * Source/MFCDialog/: CMakeCommandLineInfo.cpp, + CMakeCommandLineInfo.h, CMakeSetupDialog.cpp, CMakeSetupDialog.h: + ENH: add Drag & Drop (directory, file, or CMakeCache), support + for Shortcut too + +2002-07-20 08:55 martink + + * Source/cmAddDefinitionsCommand.cxx: modified to accept no + arguments + +2002-07-19 15:49 martink + + * Templates/CXXCMakeSystemConfig.cmake.in: fixed some empty + descriptions + +2002-07-19 14:42 martink + + * Source/cmMakefile.cxx: full variable replacement and removal or + empty arguments + +2002-07-19 14:40 martink + + * Source/cmTargetLinkLibrariesCommand.cxx: does not need a second + argument + +2002-07-18 18:43 starreveld + + * Modules/: FindGLU.cmake, FindOpenGL.cmake: ERR: remove automatic + Carbon framework on osx + +2002-07-17 16:33 martink + + * Source/cmInstallFilesCommand.cxx: fix for install with paths + +2002-07-17 15:57 martink + + * Source/cmInstallFilesCommand.cxx: fixe for files with paths + +2002-07-17 11:53 andy + + * Source/cmake.cxx: Fix changing of directories using cmSystemTools + RunCommand feature + +2002-07-17 10:52 martink + + * Source/: cmForEachCommand.cxx, cmForEachCommand.h, + cmMakefile.cxx: fix for IF statements inside of Foreach loops + +2002-07-17 10:48 martink + + * Source/cmForEachCommand.cxx, Source/cmForEachCommand.h, + Source/cmMakefile.cxx, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: fixed if statements + inside a foreach + +2002-07-16 17:42 king + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: ENH: Added test for + IF inside a FOREACH. + +2002-07-15 11:37 king + + * Utilities/cmake_release_config_hpux: ENH: Adding release script + configuration for HPUX.e + +2002-07-15 11:13 king + + * Utilities/cmake_release_config_sun: ENH: Added release + configuration file for Sun. + +2002-07-15 10:48 king + + * Utilities/: cmake_release_config_linux, cmake_release_unix.sh: + ENH: Made release script more generic for creating static and + shared releases. + +2002-07-15 10:09 king + + * Utilities/cmake_release_config_linux: ENH: Release script + configuration file for linux. + +2002-07-15 10:08 king + + * Utilities/cmake_release_unix.sh: ENH: Protoype unix release + script. + +2002-07-15 09:55 king + + * Templates/CMakeLists.txt: ERR: CXXCMakeSystemConfig.cmake and + CCMakeSystemConfig.cmake need .in extension. + +2002-07-15 09:46 king + + * Source/cmInstallFilesCommand.cxx: BUG: Only the last extension + should be removed. + +2002-07-15 09:45 king + + * Source/: cmInstallFilesCommand.cxx, cmInstallFilesCommand.h: BUG: + INSTALL_FILES command should remove the extension of a file + before adding the user provided extension. + +2002-07-15 09:44 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added + GetFilenameWithoutLastExtension. + +2002-07-15 09:23 king + + * Templates/CMakeLists.txt: ERR: Install for + CXXCMakeSystemConfig.cmake and CCMakeSystemConfig.cmake need .in + extension. + +2002-07-15 09:22 king + + * Modules/FindJNI.cmake: ENH: Added /usr/local/lib/java search + paths. + +2002-07-15 08:44 martink + + * Source/: cmInstallFilesCommand.cxx, cmInstallFilesCommand.h: fix + install target + +2002-07-12 11:17 martink + + * Modules/FindJava.cmake: merged module into branch + +2002-07-12 11:10 martink + + * Source/cmIfCommand.cxx: minor warning fix + +2002-07-11 14:58 martink + + * Source/cmIfCommand.cxx: fix warning + +2002-07-11 14:25 martink + + * Source/cmMakefile.cxx: merge from the main tree + +2002-07-11 14:20 hoffman + + * Source/cmMakefile.cxx: BUG: fix for compile with hp + +2002-07-11 14:03 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx, cmIfCommand.h, + cmMakefile.cxx, cmMakefile.h: merged some updates, the IF + checking + +2002-07-11 13:58 martink + + * Source/: cmUnixMakefileGenerator.cxx, cmVTKWrapTclCommand.cxx, + cmake.cxx: updates from the main tree + +2002-07-10 16:07 martink + + * Source/cmVTKWrapTclCommand.cxx: fix warning on Sun + +2002-07-10 14:34 andy + + * Source/cmake.cxx: Add command that runs program in given + directory + +2002-07-10 11:38 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx, cmIfCommand.h, + cmMakefile.cxx, cmMakefile.h: better error handling with if + statements + +2002-07-10 09:33 andy + + * Source/cmUnixMakefileGenerator.cxx: Fix problem when using NMake. + This generated lines without space so nmake got all confused + +2002-07-08 09:30 andy + + * Modules/FindJava.cmake: Add module that finds java executables. + This module should find java, javac, and jar. + +2002-07-02 09:58 martink + + * configure, configure.in: merges from main tree + +2002-07-02 09:56 martink + + * Modules/FindFLTK.cmake: merges with main tree + +2002-07-02 09:54 martink + + * Source/: cmAuxSourceDirectoryCommand.cxx, + cmBorlandMakefileGenerator.cxx, cmCMakeMinimumRequired.cxx, + cmConfigure.cmake.h.in, cmConfigure.h.in, + cmCreateTestSourceList.cxx, cmCreateTestSourceList.h, + cmDSWWriter.cxx, cmElseCommand.cxx, cmEnableTestingCommand.h, + cmFLTKWrapUICommand.cxx, cmFindLibraryCommand.cxx, + cmFunctionBlocker.h, cmGetFilenameComponentCommand.cxx, + cmITKWrapTclCommand.cxx, cmIfCommand.cxx, cmIfCommand.h, + cmInstallFilesCommand.cxx, cmLinkLibrariesCommand.cxx, + cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h, cmMakeDepend.cxx, + cmMakeDepend.h, cmMakefile.cxx, cmMakefile.h, + cmNMakeMakefileGenerator.cxx, cmNMakeMakefileGenerator.h, + cmQTWrapCPPCommand.cxx, cmQTWrapUICommand.cxx, cmSourceFile.cxx, + cmSourceFile.h, cmSourceFilesCommand.cxx, + cmSourceFilesRemoveCommand.cxx, cmStandardIncludes.h, + cmSystemTools.cxx, cmSystemTools.h, cmTarget.cxx, + cmTargetLinkLibrariesCommand.cxx, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h, cmVTKMakeInstantiatorCommand.cxx, + cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx, cmWrapExcludeFilesCommand.cxx, + cmake.cxx, cmake.h, ctest.cxx: massive merge from main tree + +2002-07-02 09:33 martink + + * Source/: cmFindLibraryCommand.cxx, cmMakefile.h, + cmSystemTools.cxx, cmSystemTools.h: updates + +2002-07-02 08:24 martink + + * Source/: cmMakefile.cxx, cmMakefile.h: fixed warning + +2002-07-01 08:49 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx, cmIfCommand.h: + consolidated IF handling and added checks for bad arguments + +2002-06-30 13:53 martink + + * Source/: cmVTKWrapPythonCommand.cxx, cmVTKWrapTclCommand.cxx: + fixed commands that were setting definitions in final pass to set + definitions in initial pass + +2002-06-29 20:04 martink + + * Source/: cmQTWrapCPPCommand.cxx, cmVTKWrapJavaCommand.cxx, + cmVTKWrapPythonCommand.cxx, cmVTKWrapTclCommand.cxx: fixed + commands that were setting definitions in final pass to set + definitions in initial pass + +2002-06-28 10:29 andy + + * Source/cmVTKWrapPythonCommand.cxx: Remove another warning in the + python wrapping + +2002-06-28 10:18 martink + + * Source/cmSourceFile.h: performance fix + +2002-06-28 09:43 andy + + * Source/cmVTKWrapPythonCommand.cxx: Add removing of warnings and + add comment about the file being generated in CMake + +2002-06-28 09:21 martink + + * Source/cmAuxSourceDirectoryCommand.cxx: bug fix for aux src dirs + +2002-06-28 08:57 martink + + * Source/: cmMakefile.cxx, cmSourceFile.h: minor cleanup + +2002-06-27 21:17 martink + + * Source/: cmMakefile.cxx, cmSourceFile.h: performance inprovements + +2002-06-27 16:47 martink + + * Source/cmMakefile.cxx: bug fix + +2002-06-27 16:42 martink + + * Source/: cmMakefile.cxx, cmSourceFilesCommand.cxx: bug fix + +2002-06-27 16:25 martink + + * Source/cmSourceFilesCommand.cxx: bug fix + +2002-06-27 16:05 martink + + * Tests/Simple/CMakeLists.txt: a minor fix to make my life easier + +2002-06-27 15:57 martink + + * Source/cmAuxSourceDirectoryCommand.cxx, + Source/cmCreateTestSourceList.cxx, Source/cmDSWWriter.cxx, + Source/cmFLTKWrapUICommand.cxx, + Source/cmGetFilenameComponentCommand.cxx, + Source/cmITKWrapTclCommand.cxx, Source/cmInstallFilesCommand.cxx, + Source/cmLinkLibrariesCommand.cxx, + Source/cmMSDotNETGenerator.cxx, Source/cmMakeDepend.cxx, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmQTWrapCPPCommand.cxx, Source/cmQTWrapUICommand.cxx, + Source/cmSourceFilesCommand.cxx, + Source/cmSourceFilesRemoveCommand.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmTarget.cxx, + Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmUnixMakefileGenerator.cxx, + Source/cmVTKMakeInstantiatorCommand.cxx, + Source/cmVTKWrapJavaCommand.cxx, + Source/cmVTKWrapPythonCommand.cxx, + Source/cmVTKWrapTclCommand.cxx, + Source/cmWrapExcludeFilesCommand.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/CMakeLists.txt: removed all + source lists from the system and made them vectors. Also appended + _CMAKE_PATH to the end of the automatic cache entries for + executables and libraries. Odds of all these changes working are + slim but cmake builds and passes all its tests. VTK40 starts + building + +2002-06-27 09:35 king + + * Source/: cmake.cxx, cmake.h: BUG: CMake crashed if it failed to + find its own executable. Also added better error messages when + this occurs. + +2002-06-25 09:59 hoffman + + * Tests/Simple/CMakeLists.txt: add a test with no extension + +2002-06-25 09:59 hoffman + + * Source/cmTarget.cxx: BUG: try to tell the difference between + variables with sources and other variables + +2002-06-25 09:18 king + + * Source/cmStandardIncludes.h: BUG: Result from ostrstream::str() + can be a null pointer. + +2002-06-24 18:19 king + + * Source/cmStandardIncludes.h: BUG: Attempt to fix + ostrstream::str() wrapper for broken platforms. + +2002-06-24 16:42 martink + + * Source/cmTarget.cxx: modified to handle src list vectors without + proper dollar signs + +2002-06-24 14:07 martink + + * Source/ctest.cxx: BUG: make sure windows paths are used for the + command or it will not work for win 98 + +2002-06-21 11:35 martink + + * Templates/: CXXCMakeSystemConfig.cmake.in, cxxconfigure, + cxxconfigure.in: now looks for stringstream as well, from the + main tree + +2002-06-21 11:25 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx: fixed if matches bug + +2002-06-21 10:31 king + + * Source/cmStandardIncludes.h: ERR: using declaration to move + streams into std namespace needs to bring up ostrstream and + ostringstream, not strstream and stringstream. + +2002-06-21 10:26 king + + * Source/CursesDialog/form/frm_driver.c: ERR: Removed most of the + repeated curses declarations. The cause errors on other + platforms. Grrrr.. + +2002-06-21 09:25 king + + * Source/CursesDialog/form/frm_driver.c: ERR: Added function + declarations from curses.h. They are not present on some + platforms. Fixes warnings about implicit declarations. + +2002-06-21 09:00 king + + * Tests/: Complex/cmTestConfigure.h.in, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexRelativePaths/cmTestConfigure.h.in: ENH: Added + configuration of CMAKE_NO_ANSI_STRING_STREAM. It is defined when + the sstream header does not exist. + +2002-06-21 08:42 king + + * configure, Templates/cxxconfigure: ERR: Ran autoconf on + corresponding fixes to configure.in and cxxconfigure.in. + +2002-06-21 08:39 hoffman + + * Templates/cxxconfigure.in: fix for sstream + +2002-06-21 08:38 hoffman + + * configure.in: fix to sstring stuff + +2002-06-20 10:39 hoffman + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx: modified MATCHES to + handle non variables + +2002-06-20 10:20 king + + * Source/cmStandardIncludes.h: ERR: cmStringStream is taking the + functionality of ostringstream and ostrstream, not stringstream + and strstream. + +2002-06-20 10:19 king + + * Templates/CXXCMakeSystemConfig.cmake.in: BUG: + CMAKE_NO_ANSI_STRING_STREAM needs to be copied from the + cxxconfigure results. + +2002-06-19 15:21 king + + * Source/: cmBorlandMakefileGenerator.cxx, + cmCMakeMinimumRequired.cxx, cmConfigure.cmake.h.in, + cmConfigure.h.in, cmNMakeMakefileGenerator.cxx, + cmStandardIncludes.h, cmSystemTools.cxx, + cmUnixMakefileGenerator.cxx, cmVTKMakeInstantiatorCommand.cxx, + cmake.cxx: ENH: Added cmStringStream class to wrap + std::stringstream or std::strstream depending on the platform. + The interface is that of std::stringstream, so no "ends" or + "rdbuf()->freeze(0)" lines are needed. + +2002-06-19 15:09 king + + * configure, Templates/cxxconfigure: ENH: Re-ran autoconf to + include changes to corresponding configure input. This adds a + test for the availability of sstream. + +2002-06-19 15:05 king + + * configure.in, Templates/cxxconfigure.in: ENH: Added test for + sstream header. Defines CMAKE_NO_ANSI_STRING_STREAM if the + header doesn't exist. + +2002-06-19 14:35 barre + + * Source/cmSystemTools.cxx: ENH: FindLibrary supports .Net specific + lib dirs + +2002-06-19 13:49 martink + + * Source/: cmCreateTestSourceList.cxx, cmCreateTestSourceList.h, + cmEnableTestingCommand.h, cmFunctionBlocker.h, cmMakefile.h, + cmTarget.cxx: merges from main tree + +2002-06-19 13:28 martink + + * Source/cmSourceFile.cxx: modified create test source to create a + vector + +2002-06-19 13:14 martink + + * Modules/: Dart.cmake, FindGLU.cmake, FindGLUT.cmake, + FindJNI.cmake, FindOpenGL.cmake, FindTclsh.cmake, FindX11.cmake: + update dfrom main tree + +2002-06-19 12:51 martink + + * Source/cmCreateTestSourceList.cxx, + Source/cmCreateTestSourceList.h, Source/cmSourceFile.cxx, + Source/cmTarget.cxx, Tests/TestDriver/CMakeLists.txt: modified + create test source to create a vector + +2002-06-19 08:57 king + + * Source/CursesDialog/form/fty_alpha.c: ERR: Fixed unused parameter + warning. + +2002-06-19 07:28 hoffman + + * CMakeLists.txt, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: [no log message] + +2002-06-18 17:20 king + + * Source/: cmEnableTestingCommand.h, cmFunctionBlocker.h, + cmMakefile.cxx, cmSystemTools.cxx, cmTarget.cxx: ERR: Fixed + compiler warnings. + +2002-06-18 17:20 king + + * Source/CursesDialog/: ccmake.cxx, cmCursesBoolWidget.cxx, + cmCursesDummyWidget.cxx, cmCursesForm.h, cmCursesLabelWidget.cxx, + cmCursesLongMessageForm.cxx, cmCursesMainForm.cxx: ERR: Fixed + compiler warnings about unused parameters. + +2002-06-18 17:19 king + + * Source/CursesDialog/form/: frm_driver.c, frm_req_name.c, + fty_alnum.c, fty_int.c, fty_ipv4.c, fty_num.c, fty_regex.c: ERR: + Fixed compiler warnings when using strict ansi. + +2002-06-18 16:43 martink + + * Modules/Dart.cmake: fixed another bug + +2002-06-18 16:35 martink + + * Modules/Dart.cmake: fixed bug + +2002-06-18 16:32 king + + * Source/ctest.cxx: ERR: Fix for fprintf format warning. + +2002-06-18 16:30 king + + * Source/CursesDialog/form/frm_data.c: ERR: Attempt to fix warning + on OSF about implicit declaration of winnstr. + +2002-06-18 14:26 barre + + * Modules/FindGLUT.cmake: ENH: add more paths for the HP + +2002-06-18 08:54 hoffman + + * CMakeLists.txt, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: ENH: try and fix link + problem on dec + +2002-06-17 13:43 andy + + * Modules/FindJNI.cmake: Add debian Java paths + +2002-06-17 13:07 barre + + * Modules/: FindGLU.cmake, FindGLUT.cmake: FIX: GLU and GLUT flags + for Mac OSX + +2002-06-14 16:49 barre + + * Modules/: FindCABLE.cmake, FindTclsh.cmake, FindX11.cmake: ENH: + clean modules (doc, make stuff advanced, etc.) + +2002-06-14 16:38 hoffman + + * Modules/Dart.cmake: ENH: change so that on all make based systems + all dart targets are added + +2002-06-14 11:46 barre + + * Modules/: FindGLU.cmake, FindGLUT.cmake: ENH: use + OPENGL_LIBRARY_PATH as additional search path + +2002-06-14 11:45 barre + + * Modules/FindOpenGL.cmake: ENH: define OPENGL_LIBRARY_PATH (path + to OPENGL_LIBRARY) so that it can be used to search for other + OpenGL-related libs + +2002-06-14 11:31 barre + + * Modules/FindGLU.cmake: FIX: bug, the wrong include file was + searched. + +2002-06-14 10:37 barre + + * Source/: cmFindLibraryCommand.cxx, cmSystemTools.cxx, + cmSystemTools.h: ENH: FindLibrary can now use the makefile to add + some compiler-specific lib search path (depending on the + generator). + +2002-06-14 10:35 barre + + * Modules/FindGLUT.cmake: ENH/FIX: Glut should be found, not set. + Add search path for Cygwin + +2002-06-13 14:45 barre + + * Modules/FindGLUT.cmake: FIX: comply with the way OpenGL libs are + set in FindOpenGL and FindGLU + +2002-06-13 11:48 barre + + * Modules/: FindGLU.cmake, FindGLUT.cmake, FindOpenGL.cmake: ENH: + make all OpenGL libs advanced, and add support for glu lib with + Borland + +2002-06-12 09:46 hoffman + + * Source/MFCDialog/CMakeSetup.cpp: fix warning + +2002-06-11 14:54 martink + + * Source/: cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h, + cmNMakeMakefileGenerator.cxx, cmNMakeMakefileGenerator.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: some + fixes for dot net and spaces + +2002-06-11 14:25 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: use lower case and not short path for + uniq paths on window + +2002-06-11 14:25 hoffman + + * Source/cmMSDotNETGenerator.cxx: only allow unique configurations + +2002-06-11 14:15 hoffman + + * Source/: cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h: BUG: fix + dot net for paths with spaces + +2002-06-11 12:16 hoffman + + * Source/cmMSDotNETGenerator.cxx: BUG: RelativePath should not be + quoted in output files even if it has spaces + +2002-06-11 11:19 martink + + * Source/cmUnixMakefileGenerator.cxx: some win98 depend problems + +2002-06-11 11:01 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: don't use short paths in + the output + +2002-06-11 10:43 hoffman + + * Source/cmUnixMakefileGenerator.cxx: use short path to get unique + path names for depend path output + +2002-06-11 09:14 hoffman + + * Source/CursesDialog/: ccmake.cxx, cmCursesMainForm.cxx: ERR: + Fixed sun CC warnings. + +2002-06-10 14:21 martink + + * Source/: cmMakeDepend.cxx, cmMakeDepend.h, CMakeLists.txt: joins + with the head + +2002-06-10 14:19 martink + + * Source/: cmMakeDepend.cxx, cmMakeDepend.h: now includes current + include files directory when searching for files it includes + +2002-06-10 11:33 hoffman + + * Source/CMakeLists.txt: BUG: cmake needs it's own directory for + includes, so depends work + +2002-06-10 09:50 hoffman + + * ChangeLog.txt: new changes for 1.4 + +2002-06-10 09:35 martink + + * Source/cmMakefile.h: updated revision + +2002-06-10 09:33 martink + + * Modules/: FindGLUT.cmake, FindPythonLibs.cmake: updated from main + branch + +2002-06-10 08:53 andy + + * Modules/FindPythonLibs.cmake: Oops, forgot the library name + +2002-06-10 08:52 andy + + * Modules/FindPythonLibs.cmake: Add search for python 2.2 + +2002-06-07 08:39 ibanez + + * Modules/FindFLTK.cmake: FIX: {} were missing around + FLTK_*_LIBRARY. + +2002-06-06 17:49 ibanez + + * Modules/FindFLTK.cmake: FIX: The final test is done now over + FLTK_LIBRARY instead of FLTK_LIBRARY_PATH + +2002-06-06 15:28 ibanez + + * Modules/FindFLTK.cmake: ENH: Support for FLTK1.1 and FLTK1.0.11 + added. An option allows to select between the two versions. + +2002-06-06 15:00 martink + + * CMake.rtf: updates + +2002-06-06 11:53 hoffman + + * Source/: Makefile.borland: ENH: remove borland bootstrap makefile + +2002-06-06 08:49 hoffman + + * Modules/FindGLUT.cmake: fix for glut on win32 + +2002-06-05 13:31 martink + + * Source/cmMakefile.h: updated revision + +2002-06-05 13:30 martink + + * Source/cmMakefile.h: updated rev + +2002-06-05 13:24 martink + + * Source/MFCDialog/CMakeSetup.dsp: now uses bootstrap + +2002-06-05 13:22 martink + + * Source/ccommand.cxx: merged ccommand into cmake + +2002-06-05 09:11 martink + + * Source/: CMakeLib.dsp, DumpDocumentation.dsp, ccommand.dsp, + cmake.dsp, ctest.dsp: uses executabke bootstrap + +2002-06-03 13:40 martink + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: changed CCOMMAND to + CMAKE + +2002-06-03 13:08 martink + + * Source/CMakeLists.txt, Source/cmBorlandMakefileGenerator.cxx, + Source/cmNMakeMakefileGenerator.cxx, Source/cmake.cxx, + Source/cmake.h, Source/cmakemain.cxx, + Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: removed ccommand use + cmake now + +2002-06-03 11:06 martink + + * CMake.rtf: updated + +2002-06-03 10:25 hoffman + + * Source/: cmMakefile.cxx, cmTarget.cxx: ENH: only add _LIB_DEPEND + information for libraries and modules + +2002-05-31 08:39 martink + + * Source/cmSystemTools.cxx: fixed bug in get short path for quoted + paths + +2002-05-29 15:00 perera + + * Source/cmTarget.cxx: BUG: never make a target depend on itself. + This was causing unnecessary library duplication, resulting in + link errors on some platforms. + +2002-05-29 09:56 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: MAKEFLAGS does not need + to be passed on command line. It is automatically set by make in + environment for recursive call. + +2002-05-28 08:56 martink + + * Source/: cmake.cxx, cmake.h: remobed bootstrap + +2002-05-28 08:50 martink + + * bootstrap.exe, ccommand.exe: different bootstrap command + +2002-05-27 10:29 barre + + * Tests/: Complex/VarTests.cmake, Complex/Executable/complex.cxx, + ComplexOneConfig/VarTests.cmake, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/VarTests.cmake, + ComplexRelativePaths/Executable/complex.cxx: ENH: add tests for + LESS, GREATER, STRLESS, STRGREATER (IF command) + +2002-05-23 13:27 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: ENH: increse coverage + +2002-05-23 13:23 hoffman + + * Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Tests/Complex/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: increase + coverage + +2002-05-23 13:04 hoffman + + * Tests/: Complex/CMakeLists.txt, + Complex/cmTestConfigureEscape.h.in, + Complex/Executable/complex.cxx, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigureEscape.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigureEscape.h.in, + ComplexRelativePaths/Executable/complex.cxx: add a test for + escape quotes and configure file + +2002-05-23 10:36 martink + + * bootstrap.exe, ccommand.exe: added win32 bootstrap support + +2002-05-23 10:34 martink + + * Source/: cmDSWWriter.cxx, cmMSDotNETGenerator.cxx: only add test + target if testing is enabled and ctest is found + +2002-05-23 10:33 martink + + * Source/cmake.cxx: minor bootstap fixes + +2002-05-23 10:32 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx, cmIfCommand.h: adde + less greater + +2002-05-22 13:20 hoffman + + * Source/cmAddCustomCommandCommand.cxx: ENH: add list expansion + back + +2002-05-22 09:48 hoffman + + * Source/: cmMSDotNETGenerator.cxx, cmMSProjectGenerator.cxx, + cmUnixMakefileGenerator.cxx: ENH: enable cxx by default if no + languages have been enabled + +2002-05-22 09:48 hoffman + + * Source/cmSystemTools.cxx: ENH: better comment processing + +2002-05-22 09:47 hoffman + + * Source/: ctest.cxx, ctest.h: ENH: fix depend problem + +2002-05-18 16:09 starreveld + + * Modules/FindOpenGL.cmake: find openGL in Carbon + +2002-05-15 17:23 martink + + * Source/: cmake.cxx, cmake.h: added initial attempt to support + win32 bootstrapping + +2002-05-15 11:11 berk + + * Source/cmSystemTools.cxx: RunCommand now checks whether the + process died abnormally (on Unix) + +2002-05-14 08:42 andy + + * Modules/FindWish.cmake: Add better detection of wish 8.2 + +2002-05-12 11:32 barre + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: add + no_system_path option to FindProgram so that the PATH is ignored + +2002-05-12 11:31 barre + + * Source/: cmFindProgramCommand.cxx, cmFindProgramCommand.h: + ENH/FIX: add NO_SYSTEM_PATH option + fix command usage + +2002-05-12 11:31 barre + + * Source/cmFindLibraryCommand.h: FIX: command usage + +2002-05-11 22:28 perera + + * Source/cmTarget.cxx: FIX: Remove assert since it was breaking + IRIX builds. + +2002-05-10 14:06 millerjv + + * Source/cmTarget.cxx: FIX: Const reference to a set needs a + const_iterator. (.NET build error) + +2002-05-10 13:35 perera + + * Source/CMakeLists.txt, Source/cmTarget.cxx, Source/cmTarget.h, + Tests/Dependency/CMakeLists.txt, + Tests/Dependency/Eight/CMakeLists.txt, + Tests/Dependency/Eight/EightSrc.c, + Tests/Dependency/Exec2/CMakeLists.txt, + Tests/Dependency/Exec2/ExecMain.c, + Tests/Dependency/Exec3/CMakeLists.txt, + Tests/Dependency/Exec3/ExecMain.c, + Tests/Dependency/Exec4/CMakeLists.txt, + Tests/Dependency/Exec4/ExecMain.c, + Tests/Dependency/Seven/CMakeLists.txt, + Tests/Dependency/Seven/SevenSrc.c, Tests/LinkLine/CMakeLists.txt, + Tests/LinkLine/Exec.c, Tests/LinkLine/One.c, + Tests/LinkLine/Two.c: BUG: Correct some of the dependency + analysis code. - Make sure the original link line is untouched - + Avoid duplicating the link line when supporting version < 1.4 - + Make sure the cyclic dependencies and such are output correctly + in complicated cases. - Avoid outputing dependencies that are + already satisfied on the original link line when possible. + +2002-05-10 08:54 king + + * Source/cmSystemTools.cxx: ERR: Added variable initializer. + +2002-05-09 09:33 hoffman + + * Source/: cmDSWWriter.cxx, cmMSDotNETGenerator.cxx, cmTarget.cxx, + cmTarget.h, cmUnixMakefileGenerator.cxx: ENH: change set + to set to avoid long symbols that crash ar on + solaris + +2002-05-08 17:45 king + + * Tests/Wrapping/: CMakeLists.txt, itkWrapperConfig.cxx: ENH: Added + coverage test for ITK_WRAP_TCL. Doesn't actually invoke CABLE. + +2002-05-08 17:45 king + + * Source/cmITKWrapTclCommand.cxx: ENH: Added dependency hack to + support wrapping test. + +2002-05-08 17:37 king + + * Source/cmITKWrapTclCommand.cxx: BUG: Need to use + CMAKE_CXX_COMPILER, not CXX, to get the C++ compiler name. + +2002-05-08 13:11 king + + * Source/: cmCommands.cxx, cmITKWrapTclCommand.cxx, + cmITKWrapTclCommand.h: ENH: Added ITK Tcl wrapping command. + +2002-05-08 10:27 martink + + * Source/Makefile.borland: ENH: add clean command + +2002-05-08 09:43 hoffman + + * Source/MFCDialog/CMakeCommandLineInfo.cpp: ENH: take cmake style + command line options so edit_cache works + +2002-05-08 09:05 hoffman + + * Source/cmake.cxx: ENH: fix cmake to work without ccommand. + +2002-05-08 08:46 hoffman + + * Source/cmBorlandMakefileGenerator.cxx: BUG: short path does not + work on bcc32 + +2002-05-07 11:03 hoffman + + * Source/CursesDialog/ccmake.cxx: ENH: add -B option to specify the + build directory, so make edit_cache will work + +2002-05-07 09:11 hoffman + + * Source/cmUnixMakefileGenerator.cxx: WNG: remove a warning + +2002-05-07 09:03 hoffman + + * CMake.rtf: ENH: update with docs about the targets + +2002-05-07 09:02 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, + cmNMakeMakefileGenerator.cxx, cmUnixMakefileGenerator.cxx, + cmake.cxx: ENH: add an edit_cache target that runs ccmake or + CMakeSetup + +2002-05-03 18:10 hoffman + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: fix borland test + +2002-05-03 16:34 hoffman + + * Source/: cmMakefile.cxx, cmTarget.cxx, cmTarget.h: ENH: rework + library depend stuff + +2002-05-03 00:27 perera + + * Source/CMakeLists.txt, Source/cmTarget.cxx, Source/cmTarget.h, + Tests/Dependency/CMakeLists.txt: - bug fix where paths weren't + being output when LIB_OUT_PATH *isn't* used - test case for above + mentioned bug - more comments. Comments are good. + +2002-05-02 19:09 hoffman + + * Source/cmTarget.cxx: check for optimized or debug library adds + +2002-05-02 16:13 hoffman + + * Source/: cmTarget.cxx, cmTarget.h: remove canonical conversion + for lib names + +2002-05-02 15:56 hoffman + + * Source/: cmMakefile.cxx, cmMakefile.h, cmTarget.cxx: make it + backwards compatible with old cmake + +2002-05-02 15:10 hoffman + + * Source/CMakeLists.txt, Source/cmMakefile.cxx, + Source/cmTarget.cxx, Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/CMakeLists.txt: Debug + optimized cache fixes + +2002-05-02 13:41 perera + + * Source/: cmTarget.cxx, cmTarget.h: BUG: The library paths should + stay with the libraries during dependency analysis. + +2002-05-02 13:17 hoffman + + * Source/cmAddLibraryCommand.cxx, Source/cmAddLibraryCommand.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, Source/cmTarget.cxx, + Source/cmTarget.h, Source/cmTargetLinkLibrariesCommand.cxx, + Source/cmUnixMakefileGenerator.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/Dependency/Exec/CMakeLists.txt, + Tests/Dependency/Six/CMakeLists.txt: ENH: change LINK_LIBRARY to + add to targets + +2002-05-02 08:54 andy + + * configure, configure.in: Revert to make it work again + +2002-05-02 08:46 andy + + * configure, configure.in: Improve bootstrap on UNIX. Now it + bootstraps into a separate directory. + +2002-05-02 02:27 perera + + * Source/cmTarget.cxx: BUG: if a_LIBS_DEPENDS exists but is empty, + there are no explicit dependencies. + +2002-05-01 22:03 millerjv + + * Source/MFCDialog/PropertyList.cpp: FIX: If current selection was + "NOTFOUND", then selecting the browser would crash since a + "/" could not be found in the current selection. + +2002-05-01 16:33 perera + + * Source/cmAddLibraryCommand.cxx, Source/cmAddLibraryCommand.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, Source/cmTarget.cxx, + Tests/Dependency/CMakeLists.txt: ENH: Make the LinkLibraries + command contribute dependencies towards AddLibraries. + +2002-05-01 16:24 perera + + * Tests/Dependency/: CMakeLists.txt, Exec/CMakeLists.txt, + Exec/ExecMain.c, Six/CMakeLists.txt, Six/SixASrc.c, + Six/SixBSrc.c: ENH: Make the LinkLibraries command contribute + dependencies towards AddLibraries. + +2002-05-01 14:00 perera + + * Source/CMakeLists.txt, Source/cmDSPWriter.cxx, + Source/cmDSWWriter.cxx, Source/cmMSDotNETGenerator.cxx, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmNMakeMakefileGenerator.cxx, Source/cmTarget.cxx, + Source/cmTarget.h, Source/cmUnixMakefileGenerator.cxx, + Tests/Dependency/CMakeLists.txt, + Tests/Dependency/Exec/CMakeLists.txt, + Tests/Dependency/Exec/ExecMain.c, + Tests/Dependency/Five/CMakeLists.txt, + Tests/Dependency/Five/FiveSrc.c, + Tests/Dependency/Four/CMakeLists.txt, + Tests/Dependency/Four/FourSrc.c, + Tests/Dependency/NoDepA/CMakeLists.txt, + Tests/Dependency/NoDepA/NoDepASrc.c, + Tests/Dependency/NoDepB/CMakeLists.txt, + Tests/Dependency/NoDepB/NoDepBSrc.c, + Tests/Dependency/NoDepC/CMakeLists.txt, + Tests/Dependency/NoDepC/NoDepCSrc.c, + Tests/Dependency/Three/CMakeLists.txt, + Tests/Dependency/Three/ThreeSrc.c, + Tests/Dependency/Two/CMakeLists.txt, + Tests/Dependency/Two/TwoSrc.c: ENH: Add library dependency + analysis. + +2002-05-01 11:34 berk + + * Source/CursesDialog/: ccmake.cxx, + cmCursesCacheEntryComposite.cxx, cmCursesCacheEntryComposite.h, + cmCursesMainForm.cxx, cmCursesMainForm.h: The entry widgets are + now created with what is initially available on the terminal. + +2002-05-01 10:12 berk + + * Source/: cmIncludeCommand.cxx, cmMakefile.cxx: Reformatted the + error printed by cmMakefile. + +2002-04-30 21:48 hoffman + + * Source/CMakeLists.txt: ENH: allow cmake tests to be run without + dart. + +2002-04-30 17:49 hoffman + + * CMakeLists.txt, Source/CMakeLists.txt: create tests without Dart + +2002-04-30 17:45 hoffman + + * Source/cmVTKMakeInstantiatorCommand.cxx: ENH: replace freeze with + delete + +2002-04-30 16:58 hoffman + + * Templates/: cconfigure, cconfigure.in: ENH: remove -fPIC for AIX + gnu + +2002-04-30 15:33 hoffman + + * Source/cmMSDotNETGenerator.cxx: ENH: fix relwithdebinfo + +2002-04-30 14:01 hoffman + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: ENH: add test for + SEPARATE_ARGUMENTS + +2002-04-30 14:00 hoffman + + * Source/: cmCommands.cxx, cmSeparateArgumentsCommand.cxx, + cmSeparateArgumentsCommand.h: ENH: add new command to separate + space separated arguments + +2002-04-30 14:00 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, cmCacheManager.cxx: ENH: + do not use count, find for map lookup + +2002-04-30 12:58 hoffman + + * Source/cmMakefile.cxx: ENH: improve speed of GetSource function + +2002-04-30 08:09 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: look for -l anywhere in + link library entry not just the begining of the line + +2002-04-29 10:23 hoffman + + * Source/cmMakefile.cxx: BUG: make sure link directories are not + duplicated + +2002-04-29 09:20 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: remove warning about + changing generators + +2002-04-29 08:27 hoffman + + * Templates/: cconfigure, cconfigure.in: use multiple rpath options + for sgi + +2002-04-28 16:14 perera + + * Source/: cmLinkLibrariesCommand.cxx, + cmTargetLinkLibrariesCommand.cxx: ENH: Make it unnecessary to + ever specify LINK_DIRECTORIES for any library generated in this + project, even when LIBRARY_OUTPUT_PATH is set. + +2002-04-26 21:45 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: remove redirections for + output of make commands as some things are lost + +2002-04-26 12:43 hoffman + + * Source/cmUnixMakefileGenerator.cxx: COM: just fix up a comment + +2002-04-26 12:42 hoffman + + * Templates/CCMakeSystemConfig.cmake.in: correct c flags for shared + links + +2002-04-26 12:21 hoffman + + * Source/cmUnixMakefileGenerator.cxx, + Templates/CCMakeSystemConfig.cmake.in, + Templates/CMakeSystemConfig.cmake.in: BUG: fix shared links for + cc on hp + +2002-04-26 09:55 hoffman + + * Source/cmBuildNameCommand.cxx: ENH: fix build name + +2002-04-26 09:35 hoffman + + * Source/cmSiteNameCommand.cxx: ENH: look for nslookup and hostname + in the right places + +2002-04-26 09:22 will + + * CMake.pdf: ENH:New pdf for CMake + +2002-04-26 09:17 martink + + * CMake.rtf: updated for 1.4 + +2002-04-26 09:11 martink + + * Source/cmSourceFilesRemoveCommand.cxx: dprecated + +2002-04-26 08:59 martink + + * Source/Makefile.borland: fixed up again duh + +2002-04-25 16:29 martink + + * Source/Makefile.borland: updated to build ccommand + +2002-04-25 15:40 hoffman + + * Modules/Dart.cmake, Source/cmSiteNameCommand.cxx: fix up hostname + for windows + +2002-04-25 13:11 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: give a warning when + switching generators to match the cache + +2002-04-25 13:09 hoffman + + * Source/cmake.cxx: ENH: check for mismatched generators + +2002-04-25 07:59 hoffman + + * Source/: ccommand.cxx, cmCMakeMinimumRequired.cxx, + cmOptionCommand.cxx: WAR: remove warnings for .NET compiler + +2002-04-24 10:08 andy + + * Source/: .cvsignore, MFCDialog/.cvsignore: Add cvsignore so that + you do not see visual stufio files when you do cvs update + +2002-04-23 16:16 berk + + * Source/: cmake.cxx, CursesDialog/ccmake.cxx, + CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesMainForm.h: Exit ccmake on fatal errors. + +2002-04-23 12:18 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: clean up depend output + +2002-04-23 11:33 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: add depends for utility + targets + +2002-04-22 15:16 barre + + * Templates/CMakeNMakeWindowsSystemConfig.cmake, + Templates/CMakeWindowsSystemConfig.cmake, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.cxx: ENH: make CMake less + verbose/precious + +2002-04-22 15:05 perera + + * Source/CursesDialog/: CMakeLists.txt, form/CMakeLists.txt: BUG: + Changed from SOURCE_FILES to SET + +2002-04-22 14:29 barre + + * Source/cmNMakeMakefileGenerator.cxx: ENH: need CMAKE_LINKER_FLAGS + +2002-04-22 14:22 barre + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: ENH: make CMake less verbose/precious + +2002-04-22 14:18 martink + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: duhZ + +2002-04-22 11:51 martink + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + Complex/Executable/CMakeLists.txt, + Complex/Executable/cmVersion.h.in, + Complex/Executable/complex.cxx, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/cmVersion.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/cmVersion.h.in, + ComplexRelativePaths/Executable/complex.cxx: fixed for remove + COMMAND + +2002-04-22 11:50 martink + + * Source/: CMakeLists.txt, cmCommands.cxx, cmRemoveCommand.cxx, + cmRemoveCommand.h: updated for 1.4 + +2002-04-22 11:49 martink + + * Source/MFCDialog/CMakeLists.txt: updated + +2002-04-19 15:28 hoffman + + * Source/cmTargetLinkLibrariesCommand.cxx, + Tests/Simple/CMakeLists.txt, Tests/Simple/simple.cxx, + Tests/Simple/simpleLib.cxx: BUG: add link directories for target + link libraries and add a test for it + +2002-04-19 14:03 martink + + * Source/: cmAbstractFilesCommand.cxx, cmSourceFilesCommand.cxx, + cmWrapExcludeFilesCommand.cxx: added deprecated warnings for + version 1.4 or later + +2002-04-19 13:05 hoffman + + * Source/cmCMakeMinimumRequired.h: ENH: fix doc line + +2002-04-19 12:49 martink + + * Source/cmNMakeMakefileGenerator.cxx: renamed unix to unixPath for + compile error + +2002-04-19 11:49 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: BUG: fix short path on files + that do not exist + +2002-04-19 09:00 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: try to make sure a + depend file only has one rule + +2002-04-19 08:27 hoffman + + * Source/: cmSystemTools.cxx, cmake.cxx: BUG: fix SameFile function + for windows, and compare source directories + +2002-04-18 16:13 martink + + * Source/cmUnixMakefileGenerator.cxx: BUG: work with spaces in the + path + +2002-04-18 15:58 andy + + * Source/cmUnixMakefileGenerator.cxx: Make quotes and echos to work + on unix (hopefully) + +2002-04-18 15:58 andy + + * Modules/FindMPI.cmake: Add mpi search paths for Debian + +2002-04-18 14:51 hoffman + + * Source/cmake.cxx: ENH: use home not start + +2002-04-18 14:19 hoffman + + * Source/cmake.cxx: ENH: check for mis-matched source directories + +2002-04-18 13:44 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: quote the echo commands + +2002-04-18 13:12 hoffman + + * Source/cmSystemTools.cxx: BUG: do escaped semi-colon better + +2002-04-18 12:02 hoffman + + * Source/cmMessageCommand.cxx, Source/cmSystemTools.cxx, + Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: ENH: add ability to + escape semi-colons + +2002-04-18 11:52 martink + + * configure, configure.in: ENH: handle spaces in paths for cygwin + bootstrap + +2002-04-18 07:58 hoffman + + * Source/cmCMakeMinimumRequired.cxx: BUG: add missing include + +2002-04-18 07:57 hoffman + + * Source/: CMakeLib.dsp, Makefile.borland: BUG: fix bootstrap build + makefiles + +2002-04-17 16:16 hoffman + + * Source/cmAbstractFilesCommand.cxx, + Source/cmAddCustomCommandCommand.cxx, + Source/cmCMakeMinimumRequired.cxx, + Source/cmCMakeMinimumRequired.h, Source/cmCommands.cxx, + Source/cmOptionCommand.cxx, Tests/Complex/CMakeLists.txt, + Tests/Complex/cmTestConfigure.h.in, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexOneConfig/cmTestConfigure.h.in, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/CMakeLists.txt, + Tests/ComplexRelativePaths/cmTestConfigure.h.in, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: backwards + compatible for VTK 4.0, add cmake version requires + +2002-04-17 14:58 king + + * Tests/Wrapping/CMakeLists.txt: ENH: Removed tests for commands + that no longer exist. + +2002-04-17 14:54 king + + * Source/: CMakeLists.txt, Makefile.in, cmCableClassSet.cxx, + cmCableClassSet.h, cmCableClassSetCommand.cxx, + cmCableClassSetCommand.h, cmCableWrapTclCommand.cxx, + cmCableWrapTclCommand.h, cmCommands.cxx, + cmConfigureGccXmlCommand.cxx, cmConfigureGccXmlCommand.h, + cmMakefile.cxx: ENH: Removed out-of-date commands CABLE_WRAP_TCL + CABLE_CLASS_SET and CONFIGURE_GCCXML + +2002-04-17 14:52 king + + * Modules/FindCABLE.cmake: ENH: Updated for latest Cable from CVS. + Old alpha version of Cable is no longer supported. + +2002-04-17 14:51 king + + * Modules/FindGCCXML.cmake: ENH: Updated for version 0.2 of + GCC-XML. + +2002-04-17 14:39 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: use convert to output + path for depend files + +2002-04-17 08:28 hoffman + + * Modules/FindOpenGL.cmake: better to find mac opengl + +2002-04-17 08:15 hoffman + + * Templates/: CCMakeSystemConfig.cmake.in, + CXXCMakeSystemConfig.cmake.in: more advanced values + +2002-04-17 08:09 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: ENH: more coverage + +2002-04-16 13:48 barre + + * Source/cmSystemTools.cxx: Syntax seemed to be confusing according + to the Bill + +2002-04-16 09:28 barre + + * Source/ccommand.cxx: FIX: warning + +2002-04-15 09:09 hoffman + + * Source/cmSystemTools.cxx: use stream not sprintf + +2002-04-15 08:48 barre + + * Source/cmSystemTools.cxx: ENH: FilesDiffer checks for 0 byte + files + +2002-04-14 15:32 barre + + * Source/cmSystemTools.cxx: ENH: more paranoid checkings + +2002-04-12 13:28 barre + + * Source/MFCDialog/CMakeSetup.rc: ENH: make GUI slighlty larger to + accomodate long paths + +2002-04-12 12:05 barre + + * Source/cmSystemTools.cxx: FIX: iostream binary flag should be + used for cygwin too + +2002-04-12 09:57 barre + + * Source/cmSystemTools.cxx: FIX: fix UMR + +2002-04-11 18:59 barre + + * Source/ccommand.cxx: ENH: also displays command output + +2002-04-11 18:17 barre + + * Source/ccommand.cxx: can be used to time commands (time() & + clock()) + +2002-04-11 17:02 hoffman + + * Source/cmFindFileCommand.h, Source/cmFindLibraryCommand.h, + Source/cmFindPathCommand.h, Source/cmFindProgramCommand.h, + Source/cmIncludeCommand.cxx, Source/cmListFileCache.cxx, + Source/cmMakefile.cxx, Source/cmSystemTools.cxx, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/complex.cxx: ENH: speed + improvements + +2002-04-11 16:58 starreveld + + * Source/cmUnixMakefileGenerator.cxx: + + Allow modules to build properly again. (broken when Cxx testing + was added) + +2002-04-11 11:30 barre + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: ENH: increase + coverage + +2002-04-11 10:29 hoffman + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + ENH: clean up utility rule generation + +2002-04-11 10:11 barre + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: ENH: use target as + source if source is empty + +2002-04-11 10:05 barre + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomCommandCommand.h: ENH: use target as source if source + is empty + +2002-04-11 09:53 barre + + * Source/: cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx: FIX: echo pb, make Nmake gen use + Unix gen, factorize stuff in Unix gen + +2002-04-10 17:33 barre + + * Tests/: Complex/Executable/complex.cxx, + Complex/Library/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt: ENH: add a test to + check if more than one post-build command can be attached. it + fails right now. + +2002-04-10 16:45 andy + + * Source/cmUnixMakefileGenerator.cxx: Fix problem with custom + commands on unix + +2002-04-10 12:13 king + + * Source/cmaketest.cxx: ERR: UseIt() missing return type. + +2002-04-10 11:23 hoffman + + * Tests/: Complex/Library/testConly.c, + ComplexOneConfig/Library/testConly.c, + ComplexRelativePaths/Library/testConly.c: ENH: only check flag on + unix + +2002-04-10 08:38 hoffman + + * Source/cmaketest.cxx: fix warning + +2002-04-09 12:22 hoffman + + * Tests/: Complex/Library/testConly.h, + ComplexOneConfig/Library/testConly.h, + ComplexRelativePaths/Library/testConly.h, + Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: check for + compile flags and add back c flag to unix generator + +2002-04-09 12:15 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: check for compile flags + and add back c flag to unix generator + +2002-04-09 12:02 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + Complex/Library/testConly.c, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexOneConfig/Library/testConly.c, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt, + ComplexRelativePaths/Library/testConly.c: ENH: check for compile + flags and add back c flag to unix generator + +2002-04-09 11:33 barre + + * DartConfig.cmake: ENH: quick stab at a rollup button + +2002-04-09 10:19 hoffman + + * Tests/: Complex/Library/testConly.c, Complex/Library/testConly.h, + ComplexOneConfig/Library/testConly.c, + ComplexOneConfig/Library/testConly.h, + ComplexRelativePaths/Library/testConly.c, + ComplexRelativePaths/Library/testConly.h: correct exports for + windows + +2002-04-09 09:37 hoffman + + * Tests/: Complex/Library/sharedFile.h, + ComplexOneConfig/Library/sharedFile.h, + ComplexRelativePaths/Library/sharedFile.h: c not c++ comment + +2002-04-09 08:55 hoffman + + * DartConfig.cmake: change EST to EDT + +2002-04-08 19:31 biddi + + * Source/cmSystemTools.cxx: ERR: ReplaceString didn't work properly + if replace was longer than with as length added to start pos on + next search was replaceLength instead of withLength + +2002-04-08 15:01 hoffman + + * Templates/: CXXCMakeSystemConfig.cmake.in, cconfigure, + cconfigure.in: [no log message] + +2002-04-08 13:36 hoffman + + * Source/cmExecProgramCommand.cxx, + Source/cmUnixMakefileGenerator.cxx, + Templates/CCMakeSystemConfig.cmake.in, + Templates/CXXCMakeSystemConfig.cmake.in, Templates/cconfigure, + Templates/cconfigure.in, Templates/cxxconfigure, + Templates/cxxconfigure.in, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/Complex/Library/testConly.c, + Tests/Complex/Library/testConly.h, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/testConly.c, + Tests/ComplexOneConfig/Library/testConly.h, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/ComplexRelativePaths/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/testConly.c, + Tests/ComplexRelativePaths/Library/testConly.h: ENH: use separate + vars for creating c++ and c shared libraries and add a test for c + libraries + +2002-04-05 12:08 hoffman + + * Source/cmProjectCommand.cxx: expand ; args + +2002-04-05 10:51 martink + + * Modules/Dart.cmake: improved finding purify on windows to use + registry + +2002-04-05 09:39 hoffman + + * Source/: Makefile.borland, cmaketest.cxx, cmaketest.h.in: ENH: + make sure the test tests the right cmake, and not the cmake used + to bootstrap this cmake + +2002-04-05 07:22 hoffman + + * Tests/TestDriver/testArgs.h: ENH: add missing file + +2002-04-04 16:53 hoffman + + * Source/cmCreateTestSourceList.cxx, + Source/cmCreateTestSourceList.h, Tests/TestDriver/CMakeLists.txt: + ENH: add the ability to process command line arguments in the + test driver before the test driver gets them + +2002-04-04 11:01 hoffman + + * Source/cmUnixMakefileGenerator.cxx, + Templates/CXXCMakeSystemConfig.cmake.in, Templates/cxxconfigure, + Templates/cxxconfigure.in: ENH: separate the ar program for cxx + and c + +2002-04-04 10:08 hoffman + + * Templates/CMakeLists.txt: update install information + +2002-04-04 09:04 hoffman + + * Templates/: cxxconfigure, cxxconfigure.in: BUG: add system + command back into script + +2002-04-03 16:14 hoffman + + * Source/cmExecProgramCommand.cxx, Source/cmExecProgramCommand.h, + Source/cmNMakeMakefileGenerator.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmaketest.cxx, + Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: ENH: fix more space + problems, you can add args to the ExecProgram command separatly + now + +2002-04-03 13:53 andy + + * Modules/FindTCL.cmake: More places to find TCL/TK for example on + Debian + +2002-04-02 15:42 hoffman + + * CMake.rtf, Example/Demo/CMakeLists.txt, + Example/Hello/CMakeLists.txt, Source/CMakeLists.txt, + Source/cmBorlandMakefileGenerator.cxx, + Source/cmBorlandMakefileGenerator.h, Source/cmDSWWriter.cxx, + Source/cmMSDotNETGenerator.cxx, Source/cmMSDotNETGenerator.h, + Source/cmMSProjectGenerator.cxx, Source/cmMSProjectGenerator.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmMakefileGenerator.cxx, Source/cmMakefileGenerator.h, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmNMakeMakefileGenerator.h, Source/cmProjectCommand.cxx, + Source/cmProjectCommand.h, Source/cmSetCommand.cxx, + Source/cmSetSourceFilesPropertiesCommand.h, Source/cmTarget.cxx, + Source/cmTarget.h, Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, Source/cmake.cxx, + Templates/cconfigure, Templates/cconfigure.in, + Templates/cxxconfigure, Templates/cxxconfigure.in, + Tests/COnly/CMakeLists.txt, Tests/COnly/conly.c, + Templates/configure, Templates/configure.in, + Templates/CCMakeSystemConfig.cmake.in, + Templates/CXXCMakeSystemConfig.cmake.in: ENH: add enable language + support for PROJECT command, this means that a C only project can + be built with cmake, even without a cxx compiler + +2002-04-01 14:58 barre + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: add test for + registry-related functions (win32) + +2002-04-01 14:50 hoffman + + * Source/cmSystemTools.cxx: ENH: fix for regkey and ; separation + +2002-04-01 13:34 barre + + * Source/: ccommand.cxx, cmSystemTools.cxx, cmSystemTools.h: ENH: + add functions to API (read, write, delete registry key value) + +2002-04-01 08:08 andy + + * Modules/FindVTK.cmake: More finds for VTK + +2002-03-31 11:43 andy + + * Modules/FindVTK.cmake: Add some more locations of VTK + +2002-03-30 17:17 barre + + * Source/: cmAbstractFilesCommand.cxx, cmSetCommand.cxx: FIX: get + rid of warnings + +2002-03-29 18:07 ibanez + + * Modules/FindFLTK.cmake: ENH: HAS_FLTK variable added. + FLTK_WRAP_UI command made INTERNAL. + +2002-03-29 16:25 barre + + * Source/cmCreateTestSourceList.cxx: FIX: should compare to 0, not + NULL + +2002-03-29 16:03 barre + + * Source/: ctest.cxx, ctest.h: ENH: if -R or -E was used, displays + also the name of the tests that passed. + +2002-03-29 15:41 barre + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: FIX: fix dummy lib name for + Unix + +2002-03-29 15:02 barre + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + Complex/Executable/CMakeLists.txt, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt, + Complex/Library/cmTestLibraryConfigure.h.in, + Complex/Library/dummy, Complex/Library/empty.h, + Complex/Library/file2.cxx, Complex/Library/file2.h, + ComplexOneConfig/Library/cmTestLibraryConfigure.h.in, + ComplexOneConfig/Library/dummy, ComplexOneConfig/Library/empty.h, + ComplexOneConfig/Library/file2.cxx, + ComplexOneConfig/Library/file2.h, + ComplexRelativePaths/Library/cmTestLibraryConfigure.h.in, + ComplexRelativePaths/Library/dummy, + ComplexRelativePaths/Library/empty.h, + ComplexRelativePaths/Library/file2.cxx, + ComplexRelativePaths/Library/file2.h, + Complex/Library/fileFlags.cxx, + ComplexOneConfig/Library/fileFlags.cxx, + ComplexRelativePaths/Library/fileFlags.cxx: ENH: fix tests + +2002-03-29 14:31 hoffman + + * Source/cmMSDotNETGenerator.cxx: output list bug + +2002-03-29 14:22 hoffman + + * Tests/: Complex/Library/cmTestLibraryConfigure.h.in, + ComplexOneConfig/Library/cmTestLibraryConfigure.h.in, + ComplexRelativePaths/Library/cmTestLibraryConfigure.h.in: [no log + message] + +2002-03-29 14:20 hoffman + + * Source/cmAbstractFilesCommand.cxx, + Source/cmAddCustomCommandCommand.cxx, + Source/cmAddCustomTargetCommand.cxx, + Source/cmAddDefinitionsCommand.cxx, + Source/cmAddDependenciesCommand.cxx, Source/cmAddTestCommand.cxx, + Source/cmCableClassSetCommand.cxx, + Source/cmCableWrapTclCommand.cxx, Source/cmCommands.cxx, + Source/cmCreateTestSourceList.cxx, + Source/cmFLTKWrapUICommand.cxx, Source/cmFindFileCommand.cxx, + Source/cmFindLibraryCommand.cxx, Source/cmFindPathCommand.cxx, + Source/cmFindProgramCommand.cxx, + Source/cmGetSourceFilePropertyCommand.cxx, + Source/cmGetSourceFilePropertyCommand.h, + Source/cmIncludeDirectoryCommand.cxx, + Source/cmInstallFilesCommand.cxx, + Source/cmInstallProgramsCommand.cxx, + Source/cmInstallTargetsCommand.cxx, + Source/cmLinkDirectoriesCommand.cxx, + Source/cmLoadCacheCommand.cxx, Source/cmMakeDirectoryCommand.cxx, + Source/cmMarkAsAdvancedCommand.cxx, + Source/cmOutputRequiredFilesCommand.cxx, + Source/cmProjectCommand.cxx, Source/cmQTWrapCPPCommand.cxx, + Source/cmQTWrapUICommand.cxx, + Source/cmSetSourceFilesPropertiesCommand.cxx, + Source/cmSetSourceFilesPropertiesCommand.h, + Source/cmSiteNameCommand.cxx, Source/cmSourceFilesCommand.cxx, + Source/cmSourceFilesFlagsCommand.cxx, + Source/cmSourceFilesFlagsCommand.h, + Source/cmSourceFilesRemoveCommand.cxx, + Source/cmSubdirCommand.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmUseMangledMesaCommand.cxx, + Source/cmUseMangledMesaCommand.h, + Source/cmUtilitySourceCommand.cxx, + Source/cmVTKMakeInstantiatorCommand.cxx, + Source/cmVTKWrapJavaCommand.cxx, + Source/cmVTKWrapPythonCommand.cxx, + Source/cmVTKWrapTclCommand.cxx, + Source/cmVariableRequiresCommand.cxx, + Source/cmWrapExcludeFilesCommand.cxx, + Tests/Complex/Executable/CMakeLists.txt, + Tests/Complex/Executable/complex.cxx, + Tests/ComplexOneConfig/Executable/CMakeLists.txt, + Tests/ComplexOneConfig/Executable/complex.cxx, + Tests/ComplexRelativePaths/Executable/CMakeLists.txt, + Tests/ComplexRelativePaths/Executable/complex.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/Complex/Library/file2.cxx, Tests/Complex/Library/file2.h, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/file2.cxx, + Tests/ComplexOneConfig/Library/file2.h, + Tests/ComplexRelativePaths/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/file2.cxx, + Tests/ComplexRelativePaths/Library/file2.h: make sure ; expansion + is done in all commands + +2002-03-29 11:12 hoffman + + * Tests/TestDriver/: CMakeLists.txt, test1.cxx, testExtraStuff.cxx, + testExtraStuff2.cxx, testExtraStuff3.cxx: ENH: add test for set + to create source lists + +2002-03-29 11:11 hoffman + + * Source/cmAddExecutableCommand.cxx: fix const problem + +2002-03-29 11:04 hoffman + + * Source/: cmAddExecutableCommand.cxx, cmAddLibraryCommand.cxx, + cmSetCommand.cxx, cmSetCommand.h: ENH: add ability to use ; + separated lists in SET and expand them for addexecutable and + addlibrary + +2002-03-29 11:03 hoffman + + * Source/cmGetSourceFilePropertyCommand.h: fix docs + +2002-03-29 10:56 barre + + * Source/: cmMessageCommand.cxx, cmMessageCommand.h: ENH: Add + SEND_ERROR flag to MESSAGE so that an error can be raised within + a CMakeList file + +2002-03-29 10:07 hoffman + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: more tests + +2002-03-29 10:06 hoffman + + * Source/: cmAbstractFilesCommand.cxx, + cmBorlandMakefileGenerator.cxx, cmCommands.cxx, + cmCreateTestSourceList.cxx, cmDSPWriter.cxx, + cmFLTKWrapUICommand.cxx, cmGetSourceFilePropertyCommand.cxx, + cmGetSourceFilePropertyCommand.h, cmInstallFilesCommand.cxx, + cmMSDotNETGenerator.cxx, cmMakeDepend.cxx, cmMakefile.cxx, + cmMakefile.h, cmNMakeMakefileGenerator.cxx, + cmQTWrapCPPCommand.cxx, cmQTWrapUICommand.cxx, + cmSetSourceFilesPropertiesCommand.cxx, + cmSetSourceFilesPropertiesCommand.h, cmSourceFile.cxx, + cmSourceFilesCommand.cxx, cmSourceFilesFlagsCommand.cxx, + cmTarget.cxx, cmTarget.h, cmUnixMakefileGenerator.cxx, + cmVTKMakeInstantiatorCommand.cxx, cmVTKWrapJavaCommand.cxx, + cmVTKWrapPythonCommand.cxx, cmVTKWrapTclCommand.cxx, + cmWrapExcludeFilesCommand.cxx, cmaketest.cxx, cmaketest.h.in: + ENH: major change, the cmMakefile now contains a master list of + cmSourceFile objects, the source lists reference the list via + pointers, also you can now set properties on a file, like compile + flags, abstract, etc. + +2002-03-29 08:42 barre + + * Source/cmCreateTestSourceList.cxx: FIX: tolower is in + !, frenchy + +2002-03-28 11:43 barre + + * Source/cmCreateTestSourceList.cxx: ENH: perform case insensitive + comparison on test names + +2002-03-27 16:19 barre + + * Source/cmCreateTestSourceList.cxx: FIX: cmSourceFile::SetName was + not called correctly for the test source files + +2002-03-27 15:52 barre + + * Source/cmCreateTestSourceList.cxx: ENH: small formatting enh + +2002-03-27 13:54 barre + + * Tests/: Complex/VarTests.cmake, Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, ComplexOneConfig/VarTests.cmake, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/VarTests.cmake, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: ENH: add a more + stressing FOREACH test. + +2002-03-27 13:46 barre + + * Source/CMakeLists.txt, Tests/TestDriver/CMakeLists.txt, + Tests/TestDriver/test3.cxx, Tests/TestDriver/subdir/test3.cxx: + ENH: add testdriver test with source file in subdir + +2002-03-27 10:55 barre + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: FIX: do not use + CMAKE_CFG_INTDIR, just use LINK_DIRECTORIES + +2002-03-27 10:54 barre + + * Tests/: Testing/CMakeLists.txt, Wrapping/CMakeLists.txt: FIX: do + not need CMakeLib + +2002-03-26 18:06 barre + + * Source/cmCreateTestSourceList.cxx: ENH: keep the name of the test + as close to the source file (only the function name is cleaned + up) + +2002-03-26 17:53 barre + + * Source/cmCreateTestSourceList.cxx: ENH: add -R (similar to ctest + but use substr instead of regexp). indent. + +2002-03-26 16:45 barre + + * Source/: cmForEachCommand.h, cmFunctionBlocker.h, cmMakefile.cxx: + FIX: foreach function-blockers were using expanded args. Add + virtual func to specify if function blocker needs them expanded + or not. + +2002-03-26 16:44 barre + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: + ExpandListArguments(): empty elements in semi-colon-separated + string-list can now be ignored. + +2002-03-26 16:42 barre + + * Source/cmCreateTestSourceList.cxx: ENH: now supports tests inside + sub-dirs + +2002-03-26 14:42 barre + + * Tests/Wrapping/CMakeLists.txt: ENH: USE_MANGLED_MESA is more + careful now. Try to trick it again. + +2002-03-26 14:41 barre + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + Testing/CMakeLists.txt, Wrapping/CMakeLists.txt: ENH: Use + ${CMAKE_CFG_INTDIR} instead of hardcoded RelInfo, Debug, Release, + etc. + +2002-03-26 12:55 hoffman + + * Source/cmUseMangledMesaCommand.cxx: ENH: add error checking for + mmesa + +2002-03-26 12:38 hoffman + + * Source/: ccommand.cxx, cmBorlandMakefileGenerator.cxx, + cmNMakeMakefileGenerator.cxx: ENH: use ccommand for del on + windows + +2002-03-26 12:38 hoffman + + * Source/cmaketest.cxx: ENH: show output when running tests + +2002-03-26 12:37 hoffman + + * Source/cmCreateTestSourceList.cxx: ENH: if no arguments are given + and there is only one test, then run it + +2002-03-25 17:03 martink + + * Source/cmake.cxx: removed quotes from cmake and ccommand + executable to be consistant + +2002-03-25 16:24 barre + + * Source/cmForEachCommand.cxx: ENH: support semi-colon format (list + of args as string) + +2002-03-25 15:59 barre + + * Source/: ccommand.cxx, cmSystemTools.cxx: ENH: cmCopyFile ; the + path to the destination file will be created ; second arg can be + a directory. + +2002-03-25 15:58 barre + + * Templates/: CMakeDotNetSystemConfig.cmake, + CMakeWindowsSystemConfig.cmake: Add suffixes + +2002-03-20 16:18 hoffman + + * Source/CMakeLists.txt, Source/cmCommands.cxx, + Source/cmCreateTestSourceList.cxx, + Source/cmCreateTestSourceList.h, Source/cmaketest.cxx, + Tests/TestDriver/CMakeLists.txt, Tests/TestDriver/test1.cxx, + Tests/TestDriver/test2.cxx, Tests/TestDriver/test3.cxx: ENH: add + new command to create a test driver + +2002-03-20 13:16 hoffman + + * CMakeLists.txt, Source/CMakeLists.txt, + Source/FLTKDialog/CMakeLists.txt, + Source/FLTKDialog/CMakeSetupGUI.fl, + Source/FLTKDialog/CMakeSetupGUIImplementation.cxx, + Source/FLTKDialog/CMakeSetupGUIImplementation.h, + Source/FLTKDialog/FLTKDialog.cxx, + Source/FLTKDialog/FLTKDialog.dsp, + Source/FLTKDialog/FLTKPropertyItemRow.cxx, + Source/FLTKDialog/FLTKPropertyItemRow.h, + Source/FLTKDialog/FLTKPropertyList.cxx, + Source/FLTKDialog/FLTKPropertyList.h, + Source/FLTKDialog/Makefile.in: ENH: remove fltk dialog as it is + no longer supported + +2002-03-19 12:25 andy + + * Source/ccommand.cxx: Return error on copy + +2002-03-18 11:59 andy + + * Source/ccommand.cxx: Remove warning about sign and unsigned + +2002-03-15 15:42 andy + + * Source/: CMakeLists.txt, CMakeSetup.dsw, ccommand.cxx, + ccommand.dsp, cmake.cxx: Add ccommand for executing commands on + the system, so by using ADD_CUSTOM_COMMAND, you can make rules to + do some system commands during build. Currently supported + commands are copy and remove. Others will follow. + +2002-03-15 13:20 perera + + * Source/cmSourceFilesFlagsCommand.cxx: BUG: The source file may be + specified with an extension. + +2002-03-15 10:43 martink + + * Source/ctest.cxx: less noisy about changing directories + +2002-03-15 09:40 berk + + * Templates/CMakeSystemConfig.cmake.in: There can be multiple ansi + flags now + +2002-03-15 09:23 hoffman + + * Templates/configure: HP add Ae flag + +2002-03-15 09:14 berk + + * Templates/configure.in: Added better support for HPux + +2002-03-14 16:04 hoffman + + * Source/cmMakefile.cxx: ENH: add .in as a header file type, as it + can not be compiled + +2002-03-14 16:03 hoffman + + * Source/CMakeLists.txt: BUG: .h not two .cxx files + +2002-03-14 14:59 hoffman + + * Source/cmSystemTools.cxx: BUG: fix RunCommand again... back to + system, but with GetShortPath + +2002-03-14 14:59 hoffman + + * Source/cmDSPWriter.cxx: BUG: fix for paths with spaces + +2002-03-14 14:58 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h: BUG: fix for files with dashes in + them + +2002-03-14 11:11 hoffman + + * Source/: cmConfigureGccXmlCommand.cxx, cmExecProgramCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h, cmaketest.cxx, ctest.cxx: + ENH: overhaul of RunCommand on windows, if only win32 had + popen... + +2002-03-13 15:29 hoffman + + * Source/MFCDialog/: CMakeSetup.cpp, CMakeSetupDialog.cpp, + PathDialog.cpp: Remove warnings + +2002-03-13 14:23 martink + + * Source/: cmDSPWriter.cxx, cmDSWWriter.cxx: ENH: closer to working + with spaces in the path + +2002-03-13 10:25 hoffman + + * Source/: CMakeLists.txt, cmAuxSourceDirectoryCommand.cxx, + cmCableClassSet.cxx, cmCableClassSet.h, cmDirectory.cxx, + cmDirectory.h, cmFLTKWrapUICommand.cxx, cmFindFileCommand.cxx, + cmFindLibraryCommand.cxx, cmFindPathCommand.cxx, + cmFindProgramCommand.cxx, cmMSDotNETGenerator.cxx, + cmMakefile.cxx, cmNMakeMakefileGenerator.cxx, + cmQTWrapCPPCommand.cxx, cmQTWrapUICommand.cxx, + cmRegularExpression.cxx, cmSourceGroup.cxx, cmSystemTools.cxx, + cmVTKMakeInstantiatorCommand.cxx, cmVTKWrapJavaCommand.cxx, + cmVTKWrapPythonCommand.cxx, cmVTKWrapTclCommand.cxx, + cmaketest.cxx, ctest.cxx: ENH: remove several compiler warnings + +2002-03-12 10:16 king + + * Templates/: configure, configure.in: ENH: Added test for explicit + instantiation support. + +2002-03-11 16:04 hoffman + + * Source/cmOptionCommand.cxx: ENH: add error checking for option + commands with too many arguments + +2002-03-11 12:11 hoffman + + * Source/: cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h: ENH: add + support for .def files + +2002-03-11 08:11 hoffman + + * Source/cmMSDotNETGenerator.cxx: BUG: make sure libraries do not + depend on themselves + +2002-03-10 18:24 hoffman + + * Templates/: configure, configure.in: ENH: try to get crazy dec + cxx to work again... one more time + +2002-03-10 10:02 hoffman + + * Templates/: configure, configure.in: ENH: try to get crazy dec + cxx to work again... + +2002-03-08 13:12 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: more dec silly + stuff + +2002-03-08 11:01 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: more stupid dec cxx + tricks... + +2002-03-08 08:19 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: add one more + stupid function call for the dec cxx compiler... + +2002-03-08 07:25 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: try to fix dec cxx + +2002-03-07 22:07 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: add more junk + for the dec cxx compiler to force it to instantiate stuff + +2002-03-07 12:13 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: use the string + class to force the dec compiler to instantiate some templates + +2002-03-07 10:41 barre + + * Source/CMakeLists.txt: Build cmaketest even if testing if OFF (so + that it can be used externally) + +2002-03-06 17:58 barre + + * Source/: ctest.cxx, ctest.h: ENH: add -E option (exclude tests + matching a regexp) + +2002-03-06 16:30 barre + + * Source/: CMakeLists.txt, cmaketest.cxx: ENH: add cmaketest to + install targets (so that it can be used in other projects) and + pass the rest of its command-line args to cmake + +2002-03-06 10:44 hoffman + + * Templates/CMakeNMakeWindowsSystemConfig.cmake: build type should + not be advanced + +2002-03-06 10:11 hoffman + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt: ENH: add test for + semi-colon separated lists of libraries + +2002-03-06 10:10 hoffman + + * Source/: cmLinkLibrariesCommand.cxx, cmMSDotNETGenerator.cxx, + cmSystemTools.cxx, cmSystemTools.h, + cmTargetLinkLibrariesCommand.cxx: ENH: add suport for semi-colon + separated list variables + +2002-03-05 18:41 hoffman + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomTargetCommand.cxx, cmAddDefinitionsCommand.cxx, + cmAddDependenciesCommand.cxx, cmAddExecutableCommand.cxx, + cmAddLibraryCommand.cxx, cmAddTestCommand.cxx, + cmBuildCommand.cxx, cmCableClassSetCommand.cxx, + cmCableWrapTclCommand.cxx, cmConfigureFileCommand.cxx, + cmElseCommand.cxx, cmEndIfCommand.cxx, cmExecProgramCommand.cxx, + cmFindFileCommand.cxx, cmFindLibraryCommand.cxx, + cmFindPathCommand.cxx, cmFindProgramCommand.cxx, + cmGetFilenameComponentCommand.cxx, cmIfCommand.cxx, + cmIncludeCommand.cxx, cmIncludeExternalMSProjectCommand.cxx, + cmInstallFilesCommand.cxx, cmInstallProgramsCommand.cxx, + cmLoadCacheCommand.cxx, cmMakeDirectoryCommand.cxx, + cmMakefile.cxx, cmMessageCommand.cxx, cmOptionCommand.cxx, + cmOutputRequiredFilesCommand.cxx, cmSetCommand.cxx, + cmSourceFilesCommand.cxx, cmSubdirCommand.cxx, cmSystemTools.cxx, + cmUnixMakefileGenerator.cxx, cmUseMangledMesaCommand.cxx, + cmVTKMakeInstantiatorCommand.cxx: ENH: expand variables in + arguments before the commands get them + +2002-03-05 18:25 hoffman + + * Source/cmSystemTools.cxx: BUG: get the correct return value from + pclose + +2002-03-04 15:00 hoffman + + * Tests/: Complex/Library/fileFlags.cxx, + ComplexOneConfig/Library/fileFlags.cxx, + ComplexRelativePaths/Library/fileFlags.cxx: ENH: add support for + per file flags + +2002-03-04 14:12 hoffman + + * Source/: cmCommands.cxx, cmDSPWriter.cxx, cmDSPWriter.h, + cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h, cmSourceFile.h, + cmSourceGroup.cxx, cmSourceGroup.h, cmUnixMakefileGenerator.cxx, + cmSourceFilesFlagsCommand.cxx, cmSourceFilesFlagsCommand.h: ENH: + add file specific compile flags + +2002-03-04 14:11 hoffman + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: ENH: add a test for + per file flags + +2002-03-01 15:49 king + + * Source/: cmVTKMakeInstantiatorCommand.cxx, + cmVTKMakeInstantiatorCommand.h: ENH: Added support for including + extra files in generated header to get access to export macros of + derived projects. + +2002-03-01 09:00 hoffman + + * Templates/: CMakeBorlandWindowsSystemConfig.cmake, + CMakeDotNetSystemConfig.cmake, + CMakeNMakeWindowsSystemConfig.cmake, CMakeSystemConfig.cmake.in, + CMakeWindowsSystemConfig.cmake, configure, configure.in: ENH: add + some OS/compiler variables + +2002-02-28 15:58 hoffman + + * Modules/Dart.cmake: ENH: add VERBOSE_BUILD to options + +2002-02-28 15:57 hoffman + + * Source/cmakewizard.cxx: check bool values and prefere off + +2002-02-28 15:42 hoffman + + * Source/: cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h: use xml + output quotes for paths + +2002-02-28 15:06 hoffman + + * Templates/: configure, configure.in: change hp checks to all hps + and not just version 10 + +2002-02-28 11:15 hoffman + + * Source/cmSystemTools.cxx: BUG: look for exe path as well. + +2002-02-28 10:41 hoffman + + * Source/cmSystemTools.cxx: ENH: look for .com files before .exe + +2002-02-28 08:45 hoffman + + * Templates/CMakeDotNetSystemConfig.cmake: find path to devenv + +2002-02-28 07:50 hoffman + + * Templates/CMakeDotNetSystemConfig.cmake: ENH: add build name to + the cache with a default value for dot net + +2002-02-27 18:11 hoffman + + * Source/cmMSDotNETGenerator.cxx, Source/cmSystemTools.cxx, + Templates/CMakeDotNetSystemConfig.cmake: clean up in dot net + +2002-02-26 15:15 hoffman + + * Source/: ctest.cxx, ctest.h: add command line option -D for + config directory to run + +2002-02-26 15:14 hoffman + + * Source/: cmDSWWriter.cxx, cmMSDotNETGenerator.cxx: ENH: add + RUN_TESTS + +2002-02-26 11:46 barre + + * Source/cmAddTestCommand.cxx: FIX: command now expands args during + the first pass (found through FOREACH example) + +2002-02-26 10:11 hoffman + + * Templates/CMakeDotNetSystemConfig.cmake: [no log message] + +2002-02-26 08:56 hoffman + + * Source/cmCableClassSet.cxx: BUG: fix type problem size_type is + unsigned + +2002-02-25 18:14 hoffman + + * Source/: cmBuildCommand.cxx, cmDirectory.h, + cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h, + cmRegularExpression.h, cmSystemTools.cxx: ENH: dot net almost + working + +2002-02-25 16:57 barre + + * Source/cmAddExecutableCommand.cxx: FIX: command now expands *all* + args (found through FOREACH example) + +2002-02-25 15:22 barre + + * Tests/Testing/: CMakeLists.txt, Sub/CMakeLists.txt, + Sub/Sub2/CMakeLists.txt, Sub/Sub2/testing2.cxx: ENH: provide a + test for today's ReadListFile() bug fix + +2002-02-25 15:06 barre + + * Source/cmMakefile.cxx: FIX: although a CMakeLists.txt file could + be searched up 'n' level in the directory tree, ReadListFile() + always implied a CMakeLists.txt file was up *one* level. + +2002-02-25 13:20 hoffman + + * Modules/FindDart.cmake: ENH: look for Dart in c: + +2002-02-25 12:47 hoffman + + * Source/MFCDialog/PathDialog.h: ENH: fix warning + +2002-02-25 11:58 barre + + * Source/cmSubdirCommand.cxx: ENH: Expand vars in SUBDIRS + +2002-02-25 10:47 hoffman + + * Source/cmSystemTools.cxx: BUG: fix remove of cygdrive path stuff + +2002-02-23 10:00 king + + * Source/cmSystemTools.cxx: ERR: std::ios::binary is only needed + for Windows platforms, and isn't supported for all UNIX + platforms. + +2002-02-22 15:40 hoffman + + * Source/: cmAddTestCommand.cxx, cmSystemTools.cxx, + cmUnixMakefileGenerator.cxx: ENH: fix for spaces in paths on unix + +2002-02-22 13:38 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, cmDSPWriter.cxx, + cmExecProgramCommand.cxx, cmMSDotNETGenerator.cxx, + cmNMakeMakefileGenerator.cxx, cmNMakeMakefileGenerator.h, + cmSystemTools.cxx, cmSystemTools.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h, cmaketest.cxx: ENH: big change in the + path handling, one function CreateOutputPath is used to escape + spaces and convert to the native path type + +2002-02-22 10:08 king + + * Source/cmSystemTools.cxx: ENH: Another attempt at getting + cmCopyFile to work correctly. The previous implementation was + correct, but didn't work on HPUX due to stream library bugs. + This implementation will hopefully work everywhere. + +2002-02-21 17:32 hoffman + + * Source/cmSystemTools.cxx: BUG: fix copy file for HP + +2002-02-21 16:06 barre + + * Source/: ctest.cxx, ctest.h: ENH: Since each test can send a lot + of text to stderr/stdout, ctest now displays the list of tests + that failed at the end of the process. + +2002-02-21 15:55 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, + cmBorlandMakefileGenerator.h, cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: ENH: add + a virtual CreateMakeVariable to shorten makefile variables for + borland make + +2002-02-21 08:53 berk + + * Source/cmake.dsp: Argh + +2002-02-21 08:43 hoffman + + * Source/cmaketest.cxx: add ifdef for windows function + +2002-02-20 15:27 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: dot net port + +2002-02-20 15:26 hoffman + + * Source/: cmMSDotNETGenerator.cxx, cmaketest.cxx: close to dot net + working + +2002-02-20 09:16 berk + + * Source/cmake.dsp: Bill forgot to add a library to the release + target. + +2002-02-19 17:56 hoffman + + * Source/: cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h: ENH: + getting closer + +2002-02-19 11:53 hoffman + + * Source/: Makefile.borland, CMakeLists.txt: ENH: add dotnet stuff + +2002-02-19 10:23 ibanez + + * Source/FLTKDialog/FLTKDialog.cxx: FIX: FLTK includes should use + ".H" instead of ".h" + +2002-02-19 09:43 hoffman + + * Source/MFCDialog/CMakeSetup.rc: fix spacing on text + +2002-02-19 09:43 hoffman + + * Source/: CMakeLib.dsp, CMakeLists.txt: add dot net stuff to + cmakelists file and dsp file + +2002-02-18 17:41 hoffman + + * Source/: cmMSDotNETGenerator.cxx, cmMSDotNETGenerator.h, + cmSLNWriter.cxx, cmSLNWriter.h, cmVCProjWriter.cxx, + cmVCProjWriter.h: getting closer but still not working dot net + support + +2002-02-18 14:50 hoffman + + * Source/MFCDialog/CMakeSetup.dsp: [no log message] + +2002-02-18 14:36 hoffman + + * Source/: CMakeLib.dsp, cmMSDotNETGenerator.cxx, + cmMSDotNETGenerator.h, cmSLNWriter.cxx, cmSLNWriter.h, + cmSystemTools.cxx, cmVCProjWriter.cxx, cmVCProjWriter.h, + cmake.cxx, cmake.dsp: ENH: first pass at dot net support + +2002-02-18 14:09 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx: ENH: fix for borland tlib files with + dash in them problem. + +2002-02-14 10:03 hoffman + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + ENH: only depend subdir builds on TARGETS, not all sub dir + operations, we do not want to build when doing a make depend + +2002-02-14 10:01 hoffman + + * configure, configure.in, Templates/configure, + Templates/configure.in: ENH: do not use O2 g as default flags + +2002-02-14 09:31 barre + + * DartConfig.cmake: ENH: Add PROJECT_URL + +2002-02-13 18:57 barre + + * DartConfig.cmake: ENH: Doxygen page + +2002-02-13 18:50 barre + + * Utilities/Doxygen/doc_makeall.sh.in: FIX: remove that good ol' + exit 0; + +2002-02-13 18:32 barre + + * Utilities/Doxygen/doc_makeall.sh.in: FIX: update html archive + filename + +2002-02-13 18:28 barre + + * Utilities/Doxygen/: CMakeLists.txt, authors.txt, + doc_makeall.sh.in, doxyfile.in: ENH: Contribution graphs + +2002-02-13 16:17 barre + + * Source/CursesDialog/form/.NoDartCoverage: This dir should not be + covered (form distrib) + +2002-02-12 17:38 barre + + * Tests/Wrapping/: CMakeLists.txt, dummy: ENH: Trick VTK_WRAP_JAVA + in a better way (avoid CUSTOM_TARGET) + +2002-02-11 09:20 hoffman + + * Source/MFCDialog/: CMakeSetup.rc, PropertyList.cpp, + PropertyList.h, resource.h: ENH: add IGNORE option for cache + values + +2002-02-08 15:52 hoffman + + * Source/cmSystemTools.cxx: BUG: fix CollapseFullPath so a trailing + slash is not added to directories + +2002-02-07 11:39 andy + + * Templates/CMakeSystemConfig.cmake.in: ERR: Cache bigendian + +2002-02-07 11:28 martink + + * Source/cmMakefile.h: next patch + +2002-02-07 11:27 martink + + * Templates/CMakeSystemConfig.cmake.in: value needed to be cached + +2002-02-06 12:14 hoffman + + * Source/cmake.cxx: ENH: add ends at end of string + +2002-02-06 10:50 hoffman + + * Source/: cmSystemTools.cxx, cmSystemTools.h: add bool return + value so diagnostics are easier + +2002-02-06 10:42 hoffman + + * Source/cmAuxSourceDirectoryCommand.cxx: BUG: remove depend on + directory because it is not supported by all makes + +2002-02-04 22:00 hoffman + + * Source/CursesDialog/CMakeLists.txt: ENH: use target link + libraries and add the link directory for cmform + +2002-02-04 18:41 barre + + * Modules/: Documentation.cmake, FindGnuplot.cmake: Add module to + find gnuplot + +2002-02-04 08:28 iscott + + * Source/cmAuxSourceDirectoryCommand.cxx: the generated + makefiles/DSPfiles now depend on the aux source directory's last + modified date. + +2002-02-01 13:08 berk + + * Source/cmake.cxx: Using cmSystemTools::Error() instead of cerr. + +2002-02-01 13:07 berk + + * Source/cmUnixMakefileGenerator.cxx: Better support for parallel + builds. Subdirs depend on their parent. + +2002-02-01 09:28 hoffman + + * CMakeLists.txt, Source/CMakeLists.txt: use CMake_SOURCE and not + CMAKE_ROOT + +2002-01-31 15:16 blezek + + * Modules/FindPythonLibs.cmake: ENH: Adding search path's for + PYTHON_LIBRARY + +2002-01-31 10:32 hoffman + + * Source/: CMakeLists.txt, CursesDialog/CMakeLists.txt: try to get + this working for dec cxx default compiler options + +2002-01-30 11:23 hoffman + + * Source/cmStandardIncludes.h: ENH: fix for dec compiler, they + still do not have the correct ansi stream library + +2002-01-25 09:06 king + + * Source/CursesDialog/form/: fld_def.c, frm_data.c, frm_def.c, + frm_driver.c: ERR: Corrected assertions of pointers to remove + warnings. + +2002-01-24 14:15 berk + + * Source/cmSystemTools.cxx: BUG: fix for network paths + +2002-01-23 11:58 hoffman + + * Source/cmMakefile.h: patch 2 release to fix dsp header problem + +2002-01-23 11:52 hoffman + + * Source/cmDSPWriter.cxx: BUG: allow .h files to be added to the + sources + +2002-01-23 10:56 barre + + * Source/cmaketest.cxx: ENH: run CMake a second time. The first + time it is run, some cache values are computed. The second time + it is run, some commands check if the value is already in the + cache and return that value instead of re-computing it. Therefore + this ENH: a) make sure that this specific code is tested, b) + increase coverage. + +2002-01-22 17:18 king + + * Modules/FindVTK.cmake: ENH: Added option of disabling error + message when VTK is not found. + +2002-01-22 15:55 barre + + * Tests/: Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, + Complex/Executable/Temp/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Executable/Temp/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Executable/Temp/CMakeLists.txt, + Testing/CMakeLists.txt, Testing/Sub/CMakeLists.txt: Just rename + dir + +2002-01-22 15:50 barre + + * Tests/: Complex/CMakeCache.txt, ComplexOneConfig/CMakeCache.txt, + ComplexRelativePaths/CMakeCache.txt, Complex/CMakeLists.txt, + Complex/Cache/CMakeCache.txt, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/Cache/CMakeCache.txt, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/Cache/CMakeCache.txt: ENH: Move + CMakeCache.txt to Cache/ directory to avoid any in-source build + pb. + +2002-01-22 14:15 millerjv + + * Modules/Dart.cmake: ENH: New variables CVS_UPDATE_OPTIONS, + DART_TESTING_TIMEOUT + +2002-01-22 13:30 barre + + * Tests/: Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: Coverage for + OUTPUT_REQUIRED_FILES + +2002-01-22 10:17 king + + * Source/: cmCacheManager.cxx, cmCacheManager.h, + cmLoadCacheCommand.cxx, cmMakefile.cxx, cmake.cxx: ERR: Removed + cmCacheManager::DefineCache method. It is no longer needed. + +2002-01-22 07:37 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: flags already there, just + not working + +2002-01-22 07:18 hoffman + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt: BUG: must use ANSI flags for + complex test now. + +2002-01-21 15:39 will + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + FLTKDialog.cxx, FLTKPropertyItemRow.cxx, FLTKPropertyList.cxx: + ENH:Updated copyright + +2002-01-21 15:30 barre + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: Add warnings/infos + +2002-01-21 15:30 barre + + * Tests/Wrapping/CMakeLists.txt: Add coverage for + VTK_MAKE_INSTANTIATOR + +2002-01-21 15:30 will + + * Source/: cmAbstractFilesCommand.cxx, cmAbstractFilesCommand.h, + cmAddCustomCommandCommand.cxx, cmAddCustomCommandCommand.h, + cmAddCustomTargetCommand.cxx, cmAddCustomTargetCommand.h, + cmAddDefinitionsCommand.cxx, cmAddDefinitionsCommand.h, + cmAddDependenciesCommand.cxx, cmAddDependenciesCommand.h, + cmAddExecutableCommand.cxx, cmAddExecutableCommand.h, + cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmAddTestCommand.cxx, cmAddTestCommand.h, + cmAuxSourceDirectoryCommand.cxx, cmAuxSourceDirectoryCommand.h, + cmBorlandMakefileGenerator.cxx, cmBorlandMakefileGenerator.h, + cmBuildCommand.cxx, cmBuildCommand.h, cmBuildNameCommand.cxx, + cmBuildNameCommand.h, cmCableClassSet.cxx, cmCableClassSet.h, + cmCableClassSetCommand.cxx, cmCableClassSetCommand.h, + cmCableWrapTclCommand.cxx, cmCableWrapTclCommand.h, + cmCacheManager.cxx, cmCacheManager.h, cmCommand.h, + cmCommands.cxx, cmCommands.h, cmConfigureFileCommand.cxx, + cmConfigureFileCommand.h, cmConfigureGccXmlCommand.cxx, + cmConfigureGccXmlCommand.h, cmCustomCommand.cxx, + cmCustomCommand.h, cmDSPWriter.cxx, cmDSPWriter.h, + cmDSWWriter.cxx, cmDSWWriter.h, cmData.h, cmDirectory.cxx, + cmDirectory.h, cmDumpDocumentation.cxx, cmElseCommand.cxx, + cmElseCommand.h, cmEnableTestingCommand.cxx, + cmEnableTestingCommand.h, cmEndForEachCommand.cxx, + cmEndForEachCommand.h, cmEndIfCommand.cxx, cmEndIfCommand.h, + cmExecProgramCommand.cxx, cmExecProgramCommand.h, + cmFLTKWrapUICommand.cxx, cmFLTKWrapUICommand.h, + cmFindFileCommand.cxx, cmFindFileCommand.h, + cmFindLibraryCommand.cxx, cmFindLibraryCommand.h, + cmFindPathCommand.cxx, cmFindPathCommand.h, + cmFindProgramCommand.cxx, cmFindProgramCommand.h, + cmForEachCommand.cxx, cmForEachCommand.h, cmFunctionBlocker.h, + cmGeneratedFileStream.h, cmGetFilenameComponentCommand.cxx, + cmGetFilenameComponentCommand.h, cmIfCommand.cxx, cmIfCommand.h, + cmIncludeCommand.cxx, cmIncludeCommand.h, + cmIncludeDirectoryCommand.cxx, cmIncludeDirectoryCommand.h, + cmIncludeExternalMSProjectCommand.cxx, + cmIncludeExternalMSProjectCommand.h, + cmIncludeRegularExpressionCommand.cxx, + cmIncludeRegularExpressionCommand.h, cmInstallFilesCommand.cxx, + cmInstallFilesCommand.h, cmInstallProgramsCommand.cxx, + cmInstallProgramsCommand.h, cmInstallTargetsCommand.cxx, + cmInstallTargetsCommand.h, cmLinkDirectoriesCommand.cxx, + cmLinkDirectoriesCommand.h, cmLinkLibrariesCommand.cxx, + cmLinkLibrariesCommand.h, cmListFileCache.cxx, cmListFileCache.h, + cmLoadCacheCommand.cxx, cmLoadCacheCommand.h, + cmMSProjectGenerator.cxx, cmMSProjectGenerator.h, + cmMakeDepend.cxx, cmMakeDepend.h, cmMakeDirectoryCommand.cxx, + cmMakeDirectoryCommand.h, cmMakefile.cxx, cmMakefile.h, + cmMakefileGenerator.cxx, cmMakefileGenerator.h, + cmMarkAsAdvancedCommand.cxx, cmMarkAsAdvancedCommand.h, + cmMessageCommand.cxx, cmMessageCommand.h, + cmNMakeMakefileGenerator.cxx, cmNMakeMakefileGenerator.h, + cmOptionCommand.cxx, cmOptionCommand.h, + cmOutputRequiredFilesCommand.cxx, cmOutputRequiredFilesCommand.h, + cmProjectCommand.cxx, cmProjectCommand.h, cmQTWrapCPPCommand.cxx, + cmQTWrapCPPCommand.h, cmQTWrapUICommand.cxx, cmQTWrapUICommand.h, + cmRegularExpression.cxx, cmRegularExpression.h, cmSetCommand.cxx, + cmSetCommand.h, cmSiteNameCommand.cxx, cmSiteNameCommand.h, + cmSourceFile.cxx, cmSourceFile.h, cmSourceFilesCommand.cxx, + cmSourceFilesCommand.h, cmSourceFilesRemoveCommand.cxx, + cmSourceFilesRemoveCommand.h, cmSourceGroup.cxx, cmSourceGroup.h, + cmSourceGroupCommand.cxx, cmSourceGroupCommand.h, + cmStandardIncludes.h, cmSubdirCommand.cxx, cmSubdirCommand.h, + cmSubdirDependsCommand.cxx, cmSubdirDependsCommand.h, + cmSystemTools.cxx, cmSystemTools.h, cmTarget.cxx, cmTarget.h, + cmTargetLinkLibrariesCommand.cxx, cmTargetLinkLibrariesCommand.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h, + cmUseMangledMesaCommand.cxx, cmUseMangledMesaCommand.h, + cmUtilitySourceCommand.cxx, cmUtilitySourceCommand.h, + cmVTKMakeInstantiatorCommand.cxx, cmVTKMakeInstantiatorCommand.h, + cmVTKWrapJavaCommand.cxx, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.cxx, cmVTKWrapPythonCommand.h, + cmVTKWrapTclCommand.cxx, cmVTKWrapTclCommand.h, + cmVariableRequiresCommand.cxx, cmVariableRequiresCommand.h, + cmWrapExcludeFilesCommand.cxx, cmWrapExcludeFilesCommand.h, + cmake.cxx, cmake.h, cmakemain.cxx, cmaketest.cxx, + cmakewizard.cxx, cmakewizard.h, ctest.cxx, ctest.h, + CursesDialog/ccmake.cxx, CursesDialog/cmCursesBoolWidget.cxx, + CursesDialog/cmCursesBoolWidget.h, + CursesDialog/cmCursesCacheEntryComposite.cxx, + CursesDialog/cmCursesCacheEntryComposite.h, + CursesDialog/cmCursesDummyWidget.cxx, + CursesDialog/cmCursesDummyWidget.h, + CursesDialog/cmCursesFilePathWidget.cxx, + CursesDialog/cmCursesFilePathWidget.h, + CursesDialog/cmCursesForm.cxx, CursesDialog/cmCursesForm.h, + CursesDialog/cmCursesLabelWidget.cxx, + CursesDialog/cmCursesLabelWidget.h, + CursesDialog/cmCursesLongMessageForm.cxx, + CursesDialog/cmCursesLongMessageForm.h, + CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesMainForm.h, + CursesDialog/cmCursesPathWidget.cxx, + CursesDialog/cmCursesPathWidget.h, + CursesDialog/cmCursesStandardIncludes.h, + CursesDialog/cmCursesStringWidget.cxx, + CursesDialog/cmCursesStringWidget.h, + CursesDialog/cmCursesWidget.cxx, CursesDialog/cmCursesWidget.h, + FLTKDialog/CMakeSetupGUIImplementation.h, + FLTKDialog/FLTKPropertyItemRow.h, FLTKDialog/FLTKPropertyList.h, + MFCDialog/CMakeCommandLineInfo.h, MFCDialog/CMakeSetup.h, + MFCDialog/CMakeSetupDialog.h, MFCDialog/MakeHelp.h, + MFCDialog/PathDialog.h, MFCDialog/PropertyList.h, + MFCDialog/StdAfx.h, MFCDialog/resource.h: ENH:Updated copyright + +2002-01-21 15:11 will + + * Copyright.txt: ENH:Formal copyright notice + +2002-01-21 11:39 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: remove warning from hpux + make + +2002-01-21 10:38 hoffman + + * Source/cmaketest.cxx: ENH: check the return value of the test + program to be run + +2002-01-21 10:22 barre + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: Comment test + OUTPUT_REQUIRED + +2002-01-21 10:11 hoffman + + * Source/: cmSourceFile.cxx, cmSourceFilesCommand.cxx, + cmSourceFilesRemoveCommand.cxx: BUG: fix generated files with no + extension bug + +2002-01-20 02:21 barre + + * Tests/: Complex/VarTests.cmake, ComplexOneConfig/VarTests.cmake, + ComplexRelativePaths/VarTests.cmake: More IF coverage + +2002-01-20 01:58 barre + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, Complex/VarTests.cmake, + ComplexOneConfig/VarTests.cmake, + ComplexRelativePaths/VarTests.cmake, + Complex/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx, + Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt, + Complex/Library/empty.h, ComplexOneConfig/Library/empty.h, + ComplexRelativePaths/Library/empty.h, Testing/CMakeLists.txt, + Wrapping/vtkExcluded.h, Wrapping/vtkIncluded.h: Increase + Coverage. + +2002-01-20 01:05 barre + + * Tests/Wrapping/: CMakeLists.txt, fltk1.fl: Add coverage for QT + and FLTK wrappers. Also MANGLED_MESA + +2002-01-20 00:12 barre + + * Tests/: Complex/CMakeCache.txt, Complex/CMakeLists.txt, + Complex/VarTests.cmake, Complex/cmTestConfigure.h.in, + ComplexOneConfig/CMakeCache.txt, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/VarTests.cmake, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexRelativePaths/CMakeCache.txt, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/VarTests.cmake, + ComplexRelativePaths/cmTestConfigure.h.in, + Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt: More tests + + coverage + +2002-01-20 00:11 barre + + * Tests/Testing/: CMakeLists.txt, DartConfig.cmake: More coverage + + include Dart.cmake to maximize chance nslookup/hostname are found + +2002-01-20 00:11 barre + + * Tests/Wrapping/: CMakeLists.txt, hints, vtkExcluded.cxx, + vtkExcluded.h, vtkIncluded.cxx, vtkIncluded.h: Add test for + VTK_WRAP_* + +2002-01-20 00:06 barre + + * Source/cmLoadCacheCommand.h: Typo + +2002-01-19 21:24 barre + + * Tests/: Complex/CMakeLists.txt, Complex/VarTests.cmake, + Complex/cmTestConfigure.h.in, Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + ComplexOneConfig/CMakeLists.txt, ComplexOneConfig/VarTests.cmake, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/VarTests.cmake, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt, + Testing/CMakeLists.txt, Testing/testing.cxx, + Wrapping/CMakeLists.txt, Wrapping/wrapping.cxx: Add + documentation, comments. Move some 'Complex' sub-tests into 2 new + 'Wrapping' and 'Testing' tests. + +2002-01-19 21:23 barre + + * Source/CMakeLists.txt: Add 2 new tests + +2002-01-19 21:22 barre + + * Source/cmSiteNameCommand.cxx: FIX: if the 'hostname' and + 'nslookup' commands were not found from their HOSTNAME and + NSLOOKUP cache definition, hard-coded values were used instead, + thus causing pb if the corresponding progs were not in the PATH + (RunCommand). Now use FindProgram() to be sure to find both, + otherwise do nothing and set the site name to "unknown" + (arbitrary. could be empty string ? or error ?). + +2002-01-18 23:38 hoffman + + * Source/cmCableClassSet.cxx: BUG: make sure regex match has a + string to match + +2002-01-18 20:33 barre + + * Source/cmExecProgramCommand.cxx: Fix: "cd arg2 ; arg1" not + working. OK with &&. Also should prevent from: "cd + non_existing_dir_oops && rm -fr *" + +2002-01-18 20:32 barre + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, Complex/VarTests.cmake, + Complex/VarTests.txt, ComplexOneConfig/VarTests.cmake, + ComplexOneConfig/VarTests.txt, + ComplexRelativePaths/VarTests.cmake, + ComplexRelativePaths/VarTests.txt, + Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx: ENH: Increase test + + coverage + +2002-01-18 19:22 barre + + * Tests/: Complex/CMakeCache.txt, ComplexOneConfig/CMakeCache.txt, + ComplexRelativePaths/CMakeCache.txt: ENH: Increase test + + coverage. This is not a bug, this cache is used for test. + +2002-01-18 19:21 barre + + * Tests/: Complex/CMakeLists.txt, ComplexOneConfig/CMakeLists.txt, + ComplexRelativePaths/CMakeLists.txt, + Complex/cmTestConfigure.h.in, Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt: ENH: Increase test + + coverage + +2002-01-18 19:21 barre + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: RemoveFile + returns if the file was removed or not + +2002-01-18 17:01 barre + + * Source/cmLibraryCommand.h: Unused and deprecated class. Goodbye. + +2002-01-18 16:59 martink + + * Source/cmIfCommand.cxx: bug fix + +2002-01-18 16:45 hoffman + + * Source/cmIfCommand.cxx: fix if logic for null defs + +2002-01-18 15:54 martink + + * Source/: cmSourceFilesCommand.cxx, cmSourceFilesCommand.h: + required for utilties + +2002-01-18 15:51 martink + + * Source/: cmUnixMakefileGenerator.h, cmUnixMakefileGenerator.cxx: + fix for utilties + +2002-01-18 15:39 andy + + * Source/cmSourceFilesRemoveCommand.cxx, + Tests/Complex/Library/CMakeLists.txt, + Tests/ComplexOneConfig/Library/CMakeLists.txt, + Tests/ComplexRelativePaths/Library/CMakeLists.txt: Add GENERATED + to cmSourceFilesRemoveCommand + +2002-01-18 15:32 martink + + * Source/cmAddCustomCommandCommand.cxx: revert to old behaviour + +2002-01-18 15:31 barre + + * Tests/: Complex/Library/CMakeLists.txt, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexRelativePaths/Library/CMakeLists.txt: Fix: create_file.cxx + is not GENERATED, it exists (so that it can be removed, until + SOURCE_FILES_REMOVE is synced with SOURCE_FILES) + +2002-01-18 15:18 martink + + * Source/cmSiteNameCommand.cxx: minor bug fix + +2002-01-18 15:16 martink + + * Source/cmMakefile.h: bug fixes + +2002-01-18 14:44 martink + + * Source/: cmCableClassSet.cxx, cmBuildNameCommand.cxx: bug fixes + +2002-01-18 14:38 martink + + * Source/cmBuildCommand.cxx: compiler warning + +2002-01-18 14:07 barre + + * Source/cmake.cxx: Fix: escaping spaces was preventing a value + with space to be passed correctly + +2002-01-18 13:37 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx: merged if MATCHES + fix + +2002-01-18 13:30 martink + + * Source/: cmUnixMakefileGenerator.h, cmUnixMakefileGenerator.cxx: + some fixes to recent screwerd up changes + +2002-01-18 12:03 barre + + * Tests/: Complex/CMakeLists.txt, Complex/VarTests.txt, + Complex/cmTestConfigure.h.in, ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/VarTests.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/VarTests.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + Complex/Library/create_file.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexOneConfig/Library/create_file.cxx, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt, + ComplexRelativePaths/Library/create_file.cxx: Increase coverage, + add tests + +2002-01-18 11:48 barre + + * Source/cmExecProgramCommand.cxx: Fix bug: was expanding second + arg even if not passed. crashed + +2002-01-18 11:38 barre + + * Source/: cmVariableRequiresCommand.h, cmExecProgramCommand.h: Fix + typo + +2002-01-18 11:37 barre + + * Source/: cmBuildNameCommand.cxx, cmSiteNameCommand.cxx: Fix: + argument was not used. + +2002-01-18 11:36 barre + + * Source/cmBuildCommand.h: Fix typo (second argument was not + reported) + +2002-01-18 11:36 barre + + * Source/cmBuildCommand.cxx: no message + +2002-01-18 10:28 hoffman + + * Source/cmCableClassSet.cxx: AIX compiler fix private to public + +2002-01-18 10:27 hoffman + + * Source/cmElseCommand.cxx: BUG: GetDefiniton can return null + +2002-01-18 09:02 barre + + * Tests/: Complex/simple.cxx, ComplexOneConfig/simple.cxx, + ComplexRelativePaths/simple.cxx: Is not used (see Simple test) + +2002-01-18 07:05 hoffman + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: ENH: remove unused + and non-standard io.h file + +2002-01-18 07:04 hoffman + + * Source/cmIfCommand.cxx: BUG: fix null pointer read if def is not + defined + +2002-01-17 16:36 barre + + * Tests/: Complex/Executable/complex.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/Executable/complex.cxx: Fix: displays msg if + passed for custom command + +2002-01-17 16:35 barre + + * Source/cmaketest.cxx: FIX: need a 'make clean' before 'make all' + otherwise the post-build custom-command are not run (since a lib + might be up to date already for ex.). + +2002-01-17 15:49 barre + + * Tests/: Complex/CMakeLists.txt, Complex/cmTestConfigure.h.in, + ComplexOneConfig/CMakeLists.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + Complex/Library/create_file.cxx, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexOneConfig/Library/create_file.cxx, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt, + ComplexRelativePaths/Library/create_file.cxx: ENH: tests + ADD_DEPENDENCIES and ADD_CUSTOM_COMMAND + +2002-01-17 15:46 barre + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + Fix so that ADD_DEPENDENCIES work (the Utilities dependencies + were not output) + +2002-01-17 14:11 andy + + * Source/: cmSourceFilesCommand.cxx, cmSourceFilesCommand.h: Add + option of adding generated files to source list + +2002-01-17 12:54 hoffman + + * Source/cmDSPWriter.cxx: ENH: only output each link path once + +2002-01-17 10:48 king + + * Source/cmMakefile.h: ERR: Missing forward declaration of + cmMakeDepend added. + +2002-01-17 09:28 hoffman + + * Source/cmDSPWriter.cxx: BUG: allow header files to be added to + the dsp file + +2002-01-16 17:29 barre + + * Source/cmAddCustomCommandCommand.cxx: Remove hack. + +2002-01-16 17:26 andy + + * Source/cmAddCustomCommandCommand.cxx: Hack to make it work almost + like before + +2002-01-16 15:53 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: add silent and suffixes + to check depend file + +2002-01-16 15:00 hoffman + + * Source/cmConfigureFileCommand.cxx: BUG: make sure non cmakedef + lines are not skipped + +2002-01-16 12:45 hoffman + + * Source/cmConfigureFileCommand.cxx: ENH: do not undef cmakedefine + stuff, just comment out the line + +2002-01-15 17:21 berk + + * Source/cmUnixMakefileGenerator.cxx: Improved performance by + removing implicit rules. + +2002-01-15 16:20 martink + + * CMake.pdf, CMake.rtf: updated + +2002-01-15 16:19 will + + * CMake.pdf: ENH:Support v1.2 + +2002-01-15 16:15 hoffman + + * CMake.rtf: public to www.cmake.org + +2002-01-15 15:56 will + + * CMake.pdf: ENH:Docs for version 1.2 + +2002-01-15 15:52 hoffman + + * CMake.rtf: update for next version + +2002-01-15 15:50 martink + + * Source/cmMakefile.h: next release + +2002-01-15 15:46 martink + + * Source/cmMakefile.h: next release + +2002-01-15 15:38 hoffman + + * ChangeLog.txt: log for relase 1.2 + +2002-01-15 15:29 millerjv + + * Modules/Dart.cmake: ENH: Added DELIVER_CONTINUOUS_EMAIL as an + advanced cache entry. + +2002-01-15 13:20 berk + + * Source/: cmFindPathCommand.cxx, cmFindProgramCommand.cxx: FIX: + Entry doc. should never be overwritten. This may cause cmake to + be re-run very often. + +2002-01-14 19:08 hoffman + + * Source/cmDSPWriter.cxx: ENH: do not depend on the .dsp file but + rather depend on .dsp.cmake and if the .dsp actually changes, + then write it, so clean and rebuild will not cause many reloads + +2002-01-14 18:52 hoffman + + * Source/cmCacheManager.cxx: ENH: try to keep the dsp files from + changing between each write + +2002-01-14 16:28 hoffman + + * Source/cmUnixMakefileGenerator.cxx: remove extra logic not needed + anymore because of better depends + +2002-01-14 16:02 berk + + * Source/cmUnixMakefileGenerator.cxx: Quote echo + +2002-01-14 14:49 berk + + * Source/CursesDialog/cmCursesMainForm.cxx: BUG: Curses was being + used without initialization. + +2002-01-12 22:55 hoffman + + * Source/cmBorlandMakefileGenerator.cxx: BUG: use borland run time + dll for shared builds to avoid crashes + +2002-01-11 10:55 hoffman + + * Templates/configure: ENH: add support for AIX shared libraries + with gcc + +2002-01-11 10:54 hoffman + + * Templates/configure.in: ENH: add support for shared libraries + with gcc on AIX + +2002-01-10 18:09 hoffman + + * Source/CMakeLists.txt: ENH: make the fltk build default to OFF, + it fails on too many linux machines with the default build + +2002-01-10 18:09 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: BUG: fix build of library in + other directory if it is not there + +2002-01-10 16:22 andy + + * Source/cmConfigureFileCommand.cxx: Add space to output + +2002-01-09 17:22 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: make it a modal dialog + +2002-01-08 17:18 hoffman + + * Source/cmBorlandMakefileGenerator.cxx: BUG: need a larger default + page size + +2002-01-08 17:18 hoffman + + * Source/cmDSPWriter.cxx: BUG: need spaces around linker options + +2002-01-08 13:32 hoffman + + * Source/cmDSPWriter.cxx, Templates/CMakeWindowsSystemConfig.cmake: + ENH: add CMAKE_EXTRA_LINK_FLAGS to dsp generator + +2002-01-08 12:57 hoffman + + * Templates/: configure, configure.in: ENH: use +Z not +z for pic + and use -fPIC for gcc + +2002-01-08 12:53 hoffman + + * Templates/: configure, configure.in: ENH: add -L/usr/lib for hp + so shared libs find that directory before the pa1.1 directory + +2002-01-07 17:29 barre + + * Modules/FindVTK.cmake: More user friendly (built tree is + automatically used). + +2002-01-07 16:30 hoffman + + * Source/CursesDialog/cmCursesMainForm.cxx: BUG: not all displayed + messages are errors + +2002-01-07 15:49 perera + + * Source/: cmSystemTools.cxx, cmSystemTools.h, cmake.cxx, cmake.h: + Rolling back symbolic path changes until it works on Windows. + +2002-01-07 14:12 hoffman + + * Templates/configure: Add sizeof some types support + +2002-01-07 14:07 andy + + * Templates/: configure.in, CMakeBorlandWindowsSystemConfig.cmake, + CMakeNMakeWindowsSystemConfig.cmake, CMakeSystemConfig.cmake.in, + CMakeWindowsSystemConfig.cmake: Add sizeof some types support + +2002-01-07 13:47 hoffman + + * Templates/: configure, configure.in: use -shared for sunos build + +2002-01-06 14:59 perera + + * Source/: cmSystemTools.cxx, cmSystemTools.h, cmake.cxx, cmake.h: + ENH: Add an invocation that maintains symbolic paths to the + source and binary trees, mainly for systems with automounted + network drives. ENH: CollapseFullPath() no longer adds a + trailing "/" to directory paths. + +2002-01-04 09:23 martink + + * Source/MFCDialog/: CMakeSetup.rc, CMakeSetupDialog.cpp: added + release version + +2002-01-03 16:02 andy + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomCommandCommand.h: Fix add custom command so that it + actually executes the code + +2002-01-03 14:19 martink + + * Source/: cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx: + minor fixes + +2002-01-03 14:05 martink + + * Source/cmVTKWrapTclCommand.cxx: minor fix + +2002-01-03 13:56 martink + + * Source/cmVTKWrapTclCommand.cxx: minor fix + +2002-01-03 09:34 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx: expand vars nwo for + exists test + +2002-01-02 16:46 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx, cmIfCommand.h: added + exists option for if statement + +2002-01-02 16:45 martink + + * Source/: cmake.cxx, CursesDialog/cmCursesLongMessageForm.cxx, + CursesDialog/cmCursesMainForm.cxx: prints the relese version + +2002-01-02 16:44 martink + + * Source/cmMakefile.h: added release verison to cmMakefile + +2002-01-02 11:54 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx: BUG: put back recursive call to make + for checking sources + +2001-12-31 12:02 berk + + * Source/cmUnixMakefileGenerator.cxx: Type || should have been && + +2001-12-31 11:54 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx: ENH: remove one call to make, and + clean echo stuff a bit + +2001-12-30 17:18 berk + + * Source/cmUnixMakefileGenerator.cxx: BUG: fix long depend list + because it gets cut on the hp: I may look like berk, but it is + bill H. + +2001-12-28 17:01 hoffman + + * Source/MFCDialog/MakeHelp.cpp: ENH: use the correct case + +2001-12-28 17:00 hoffman + + * Source/MFCDialog/CMakeSetup.dsp: DO NOT USE INCREMENTAL + +2001-12-28 17:00 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: ENH: + remove the rule to run make depend from the top with each change + in any cmakelist file. Instead, run make depend in the current + directory if a source file changes, or if a .h file changes or is + removed + +2001-12-28 15:58 perera + + * Source/: cmBorlandMakefileGenerator.cxx, + cmNMakeMakefileGenerator.cxx, cmUnixMakefileGenerator.cxx: BUG: + Don't generate build rules for header files. + +2001-12-28 15:56 perera + + * Source/cmMakefile.cxx: BUG: .txx are not source files. They + contain template code which can only be compiled when included in + a regular .cxx file. By themselves, they cause do not cause code + to be generated. + +2001-12-28 15:54 perera + + * Source/cmSourceFile.cxx: ENH: Classify a file as source or header + even when the extension is given explicitly. + +2001-12-28 15:37 hoffman + + * CMakeLists.txt: remove bad ADD_DEPENDENCIES commands + +2001-12-28 12:40 hoffman + + * Source/CMakeLists.txt: ERR: remove bad ADD_DEPENDENCIES commands + +2001-12-27 14:55 hoffman + + * Source/cmIfCommand.cxx: remove warning + +2001-12-27 13:55 hoffman + + * Source/cmAddDependenciesCommand.cxx: ENH: add error checking + +2001-12-21 18:25 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: Fix: the generator choice + value was hardcoded and overrode the value passed as a + command-line param (desktop shortcuts) + +2001-12-21 16:19 barre + + * Source/MFCDialog/: CMakeSetupDialog.cpp: Fix: vars that have just + become ADVANCED should be removed from the GUI + +2001-12-21 15:39 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx: BUG: fix so you can remove a + directory in the source tree, and clean up echo of commands + +2001-12-21 15:11 martink + + * Source/CursesDialog/: cmCursesBoolWidget.cxx, + cmCursesBoolWidget.h, cmCursesDummyWidget.cxx, + cmCursesDummyWidget.h, cmCursesForm.h, cmCursesLabelWidget.cxx, + cmCursesLabelWidget.h, cmCursesLongMessageForm.cxx, + cmCursesMainForm.cxx, cmCursesMainForm.h, + cmCursesStringWidget.cxx, cmCursesStringWidget.h, + cmCursesWidget.cxx, cmCursesWidget.h: update interface + +2001-12-21 15:10 martink + + * Source/cmake.cxx: add patch hack + +2001-12-21 14:54 martink + + * Source/: cmBuildCommand.cxx, cmSystemTools.cxx, ctest.cxx: fix + for dos files on UNIX make -k and flush in ctest + +2001-12-21 14:44 martink + + * Modules/: FindCurses.cmake, FindJNI.cmake, FindMPI.cmake, + FindPythonLibs.cmake: general improvements + +2001-12-21 14:40 barre + + * Modules/: FindVTK.cmake: Change so that different flavours of VTK + might be chosen by the user. See full instructions in that file. + +2001-12-21 14:40 martink + + * configure.in, configure: fixed for SGI CC + +2001-12-21 14:39 martink + + * Templates/: CMakeBorlandWindowsSystemConfig.cmake, + CMakeNMakeWindowsSystemConfig.cmake, + CMakeWindowsSystemConfig.cmake, DLLHeader.dsptemplate, configure, + configure.in, staticLibHeader.dsptemplate: variety of bug fixes + +2001-12-21 09:55 ibanez + + * Source/cmFLTKWrapUICommand.cxx: ENH: No longer tries to create a + directory for the output + +2001-12-21 09:07 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: add support for DESTDIR + in install targets + +2001-12-21 00:01 perera + + * Source/cmUnixMakefileGenerator.cxx, + Templates/CMakeSystemConfig.cmake.in: ENH: Add option to disable + use of -rpath. + +2001-12-20 17:00 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, + cmNMakeMakefileGenerator.cxx: ENH: fix for win98 check for + directory existence + +2001-12-20 16:10 barre + + * Modules/: FindTclsh.cmake, FindWish.cmake, FindTCL.cmake: ENH: + ADVANCED was not propagated to the new sub-mods + +2001-12-20 15:46 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx: ENH: add make silent flag for nmake + and move .SILENT: directive to top of makefile + +2001-12-20 15:45 barre + + * Modules/: FindFLTK.cmake: ENH: mark everything ADVANCED + +2001-12-20 15:45 hoffman + + * Source/cmBorlandMakefileGenerator.cxx: ENH: use better command + for creating static library + +2001-12-20 15:44 hoffman + + * Templates/: CMakeBorlandWindowsSystemConfig.cmake, + CMakeNMakeWindowsSystemConfig.cmake, + CMakeWindowsSystemConfig.cmake: BUG: must use CACHE values in + these + +2001-12-20 15:22 barre + + * Modules/FindVTK.cmake: ENH: Also look for 4.2, 4.1, 4.0 + +2001-12-20 15:17 barre + + * Modules/FindVTK.cmake: ENH: Also look for 4.2, 4.1, 4.0 + +2001-12-20 08:16 hoffman + + * Example/Demo/demo.cxx: remove fancy cxx stuff from the example + +2001-12-19 21:51 barre + + * Modules/FindJNI.cmake: ENH: Make everything ADVANCED + +2001-12-19 18:45 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, + cmBorlandMakefileGenerator.h, cmNMakeMakefileGenerator.cxx, + cmUnixMakefileGenerator.cxx: ENH: add silent mode for makefile + builds and fix borland and nmake after the depend stuff + +2001-12-19 15:26 hoffman + + * Source/: CMakeLists.txt, cmaketest.cxx: add example to tests + +2001-12-19 15:25 hoffman + + * Example/: CMakeLists.txt, Demo/CMakeLists.txt, Demo/demo.cxx, + Demo/demo_b.cxx, Hello/CMakeLists.txt, Hello/hello.cxx, + Hello/hello.h: move example into the source tree so it will + work... + +2001-12-19 11:38 barre + + * Modules/FindTCL.cmake: default ActiveState Tcl install dir is now + C:/Tcl + +2001-12-19 08:35 hoffman + + * Source/cmVTKMakeInstantiatorCommand.cxx: change ostrstream to + strstream + +2001-12-19 08:26 hoffman + + * Templates/configure, Templates/configure.in, configure, + configure.in: check for LANG:std + +2001-12-18 21:00 hoffman + + * configure, configure.in, Templates/configure, + Templates/configure.in: -LANG:std should be default on sgi for + ansi CXX Flags + +2001-12-18 20:32 hoffman + + * Templates/staticLibHeader.dsptemplate: fix comment + +2001-12-18 17:30 hoffman + + * Templates/: configure, configure.in: syntax error + +2001-12-18 17:17 hoffman + + * Templates/configure: use cxx compiler on sgi to build static libs + +2001-12-18 17:16 hoffman + + * Templates/configure.in: use cxx compiler to build static libs on + sgi + +2001-12-18 16:21 martink + + * Modules/FindJNI.cmake: bad spelling of java + +2001-12-18 14:55 king + + * Source/cmIfCommand.cxx: ENH: Added error reporting for missing + arguments to ENDIF. + +2001-12-18 13:35 berk + + * Source/CursesDialog/cmCursesBoolWidget.cxx: Fixed warning. + +2001-12-18 11:35 king + + * Source/: cmVTKMakeInstantiatorCommand.cxx, + cmVTKMakeInstantiatorCommand.h: ENH: Improved flexibility of + command by allowing specificiation of separate input and outputs + source lists. Multiple input source lists are now also allowed. + +2001-12-18 10:21 king + + * Source/: cmBorlandMakefileGenerator.cxx, + cmNMakeMakefileGenerator.cxx, cmUnixMakefileGenerator.cxx: ENH: + Improved dependency generation. If any cmake.depends is out of + date, all of them in the tree are re-generated. This is + necessary in certain cases when CMakeLists.txt files change. + +2001-12-18 09:51 king + + * Source/cmElseCommand.cxx: ENH: Added option to IF command to test + if a command exists. Syntax is IF(COMMAND name-of-command). + +2001-12-18 09:39 king + + * Source/: cmIfCommand.cxx, cmMakefile.cxx, cmMakefile.h: ENH: + Added option to IF command to test if a command exists. Syntax + is IF(COMMAND name-of-command). + +2001-12-18 09:16 king + + * Source/cmMakefile.cxx: BUG: Existing projects have cache entries + with the same name as the command they adjust (VTK_WRAP_JAVA in + VTK, for example). Setting the command name as a variable is too + dangerous. + +2001-12-17 17:44 andy + + * Source/cmSystemTools.cxx: Better handling of new lines when + moving from dos to unix + +2001-12-17 16:20 king + + * Source/: cmCommands.cxx, cmVTKMakeInstantiatorCommand.cxx, + cmVTKMakeInstantiatorCommand.h: ENH: Adding VTK_MAKE_INSTANTIATOR + command. This command will be used by VTK kits to register their + classes with vtkInstantiator. + +2001-12-17 16:19 king + + * Source/cmMakefile.cxx: ENH: Each cmake command now adds a cmake + variable of its own name, set to ON. This allows constructs in + CMakeLists.txt files like: IF(FOO_COMMAND) FOO_COMMAND() + ENDIF(FOO_COMMAND) This provides the option to add CMake commands + for extra functionality without breaking compatability with + earlier versions of CMake. + +2001-12-17 11:30 hoffman + + * Templates/: CMakeNMakeWindowsSystemConfig.cmake, + DLLHeader.dsptemplate: remove stack stuff + +2001-12-17 11:28 hoffman + + * Templates/CMakeWindowsSystemConfig.cmake: use a better compiler + name + +2001-12-17 11:15 hoffman + + * Source/cmDSPWriter.cxx: ENH: allow custom commands for files that + msdev knows about + +2001-12-16 18:52 barre + + * Source/cmVTKWrapPythonCommand.cxx: Wrap abstract class too, as + per David Gobbi's request (for the sake of the internal + documentation features of python"). + +2001-12-14 22:41 hoffman + + * Source/cmBuildCommand.cxx: use -i not -k for make + +2001-12-13 13:28 berk + + * Source/CursesDialog/: cmCursesBoolWidget.cxx, + cmCursesBoolWidget.h, cmCursesDummyWidget.cxx, + cmCursesDummyWidget.h, cmCursesForm.h, cmCursesLabelWidget.cxx, + cmCursesLabelWidget.h, cmCursesLongMessageForm.cxx, + cmCursesMainForm.cxx, cmCursesMainForm.h, + cmCursesStringWidget.cxx, cmCursesStringWidget.h, + cmCursesWidget.cxx, cmCursesWidget.h: Updated toolbar. + +2001-12-12 18:27 hoffman + + * Source/CMakeLists.txt: ENH: allow local changes + +2001-12-12 13:57 berk + + * Modules/FindMPI.cmake: Added doc. + +2001-12-12 12:05 king + + * Modules/FindCurses.cmake: ENH: Added /lib to curses search path. + +2001-12-12 11:51 berk + + * Modules/FindMPI.cmake: Added support for a 2nd mpi library + (usually mpi++) + +2001-12-11 15:59 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: cmake.depends files of + zero size were not being re-written in some cases. Added a + comment output to the top of the file so it will be re-written + every time. + +2001-12-11 14:09 blezek + + * Modules/FindPythonLibs.cmake: ENH: Adding /usr/*/python1.5 for + RedHat 7.1/Python 1.5 users + +2001-12-11 12:29 hoffman + + * Source/cmSubdirDependsCommand.cxx: remove warning + +2001-12-11 10:42 hoffman + + * Source/: cmUnixMakefileGenerator.cxx: check for empty library + output path + +2001-12-11 10:39 hoffman + + * Source/ctest.cxx: ENH: add flush + +2001-12-11 02:21 ibanez + + * Source/: cmFLTKWrapUICommand.h, cmFLTKWrapUICommand.cxx: FIX: The + command was modified it uses now a target and a source list + composed of .fl files. The names of the generated .cxx files are + added internally to the Sources list of the target. + +2001-12-11 02:17 ibanez + + * Source/: cmUnixMakefileGenerator.cxx, cmTarget.h: FIX: + GENERATED_CODE type is no longer needed: generated code is not a + Target. + +2001-12-11 02:15 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cxx, CMakeSetupGUI.h: ENH: + These files are now generated from the .fl file by FLTK_WRAP_UI + command. + +2001-12-11 02:14 ibanez + + * Source/FLTKDialog/CMakeLists.txt: FIX: FLTK_WRAP_UI command + modified. + +2001-12-10 12:10 king + + * Modules/FindTclsh.cmake: ENH: Added more filenames for tclsh + program. Also now only looks for cygtclsh80 if under cygwin. + +2001-12-10 12:04 king + + * Modules/FindTclsh.cmake: ENH: Added more filenames for tclsh + program. Also now only looks for cygtclsh80 if under cygwin. + +2001-12-10 12:02 perera + + * Source/cmUnixMakefileGenerator.cxx: BUG: LIBRARY_OUTPATH_PATH may + be "set" to the null string, in which case it should be ignored. + +2001-12-10 11:27 king + + * Source/: cmMakefile.cxx, cmMakefile.h, + cmSubdirDependsCommand.cxx, cmSubdirDependsCommand.h, + cmUnixMakefileGenerator.cxx: ENH: Parallel build support is now + automatic. SUBDIR_DEPENDS command now does nothing. Also fixed + a bug in CMakeLists.txt file inheritance when a directory level + is skipped. + +2001-12-10 11:03 king + + * Source/: cmMakefile.cxx, cmMakefile.h, + cmSubdirDependsCommand.cxx, cmSubdirDependsCommand.h, + cmUnixMakefileGenerator.cxx: ENH: SUBDIR_DEPENDS command now does + nothing. The parallel build functionality is now automatic. + Dependencies are setup to force the same build order as a single + threaded build, but multiple files in the same directory can be + built simultaneously. Also fixed bug with inheriting + CMakeLists.txt files when a directory level is skipped. + +2001-12-08 21:17 hoffman + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + merge bug fixes to release + +2001-12-08 21:16 hoffman + + * Source/cmCacheManager.cxx: merge bug fixes to release, mistaken + comment in cache + +2001-12-08 21:10 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: if LIBRARY_OUTPUT_PATH + is set, then use the fullpath for a remote target + +2001-12-08 20:49 hoffman + + * Source/cmUnixMakefileGenerator.h: WAR: remove warning + +2001-12-07 19:11 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: executable extension + wrong for ctest search, and was not looking in Debug and Release + +2001-12-07 18:27 berk + + * Source/cmCacheManager.cxx: If an entry starts with // (network + paths), double quote it. + +2001-12-07 18:15 perera + + * Source/cmUnixMakefileGenerator.cxx: BUG: the rule for generating + a library no longer has the full path, and so the dependency + targets shouldn't, either. + +2001-12-07 18:12 berk + + * Source/cmCacheManager.cxx: Comments start with TWO leading + slashes not _one_ + +2001-12-07 16:06 martink + + * Source/cmMakefile.h: version rev + +2001-12-07 16:01 martink + + * Source/cmMakefile.h: release 10 + +2001-12-07 15:47 hoffman + + * Source/cmCacheManager.cxx, Source/cmMarkAsAdvancedCommand.cxx, + Source/cmMarkAsAdvancedCommand.h, + Source/MFCDialog/CMakeSetupDialog.cpp, + Templates/CMakeBorlandWindowsSystemConfig.cmake: ENH: add mark as + not advanced to mark as advanced + +2001-12-07 14:57 hoffman + + * ChangeLog.txt: yet another release + +2001-12-07 14:31 hoffman + + * Source/cmaketest.cxx: ENH: convert to windows paths + +2001-12-07 13:10 hoffman + + * Source/cmaketest.cxx: ENH: use windows paths to run commands and + escape spaces + +2001-12-07 10:58 hoffman + + * Source/: cmBorlandMakefileGenerator.cxx, + cmNMakeMakefileGenerator.cxx, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: ENH: add custom commands for targets + +2001-12-07 10:32 barre + + * Templates/CMakeBorlandWindowsSystemConfig.cmake: Remove "unused + var" warning from C_FLAGS + +2001-12-06 20:04 barre + + * Source/cmNMakeMakefileGenerator.cxx: Do not output library search + path if the library path option/flag is empty + add + CMAKE_LINKER_HIDE_PARAMETERS since some linkers just do not + support the @<< syntax + +2001-12-06 20:02 barre + + * Templates/CMakeNMakeWindowsSystemConfig.cmake: Add + CMAKE_LINKER_HIDE_PARAMETERS since some linkers just do not + support the @<< syntax + +2001-12-06 17:40 andy + + * Source/CursesDialog/cmCursesMainForm.cxx: Fix bug with string + +2001-12-06 17:09 hoffman + + * Source/cmakewizard.cxx: ENH: call convert to unix slashes for + path and filepath entries + +2001-12-06 17:07 berk + + * Source/CursesDialog/cmCursesMainForm.cxx: Added support for ~. + +2001-12-06 16:50 martink + + * Source/cmSystemTools.cxx: handle tildas + +2001-12-06 13:32 barre + + * Source/cmUnixMakefileGenerator.cxx: Lib path should be converted + to native path too. + +2001-12-06 13:31 barre + + * Source/: cmBorlandMakefileGenerator.cxx, + cmBorlandMakefileGenerator.h, cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h: Fix the command quoting pb (remove + m_QuoteNextCommand), move ConvertToNativePath to NMake gen + +2001-12-06 11:52 martink + + * Modules/Dart.cmake: better use of modules + +2001-12-06 11:52 martink + + * Modules/FindDart.cmake: better docs + +2001-12-06 11:52 martink + + * Modules/FindTCL.cmake: now broken into pieces + +2001-12-06 11:51 martink + + * Modules/: FindTclsh.cmake, FindWish.cmake: new modules + +2001-12-06 11:49 martink + + * Source/CursesDialog/ccmake.cxx: Cleaning last line at exit. + +2001-12-06 10:24 martink + + * Templates/CMakeSystemConfig.cmake.in: made install prefix non + advanced + +2001-12-05 16:05 barre + + * Source/MFCDialog/CMakeSetupDialog.cpp: If Shift is pressed with + 'OK', then don't quit + +2001-12-05 15:36 perera + + * Modules/FindTCL.cmake: ENH: add more possible names for + executables. + +2001-12-05 15:28 barre + + * Source/: cmNMakeMakefileGenerator.cxx, cmCacheManager.cxx, + MFCDialog/CMakeSetupDialog.cpp: Add single quotes feature. + +2001-12-05 15:00 barre + + * Templates/CMakeNMakeWindowsSystemConfig.cmake: Add single quotes + feature. + +2001-12-05 12:07 martink + + * Source/cmMakefile.h: up version + +2001-12-05 11:59 martink + + * Source/cmMakefile.h: up version + +2001-12-05 11:38 hoffman + + * ChangeLog.txt: new version + +2001-12-05 11:37 will + + * CMake.pdf: updated from rtf + +2001-12-05 11:32 hoffman + + * CMake.rtf: ENH: update cvs path + +2001-12-04 18:49 starreveld + + * Templates/: configure, configure.in: + + Add the flat_namespace and undefined suppress flags to OSX builds + +2001-12-04 17:28 hoffman + + * Source/cmSystemTools.cxx: ENH: remove /tmp_mnt from all paths in + convert to unix slashes + +2001-12-04 16:19 berk + + * Source/CursesDialog/cmCursesMainForm.cxx: Fixed outdated comment + +2001-12-04 15:55 hoffman + + * Templates/CMakeBorlandWindowsSystemConfig.cmake: add tWM to c + flags as well as CXX flags + +2001-12-04 15:53 berk + + * Source/CursesDialog/cmCursesMainForm.cxx: Fixed overflow problem. + +2001-12-04 15:16 hoffman + + * Templates/CMakeBorlandWindowsSystemConfig.cmake: ENH: add -tWM to + default flags for compilation + +2001-12-04 12:03 hoffman + + * Source/cmUnixMakefileGenerator.cxx: crazy fix for putenv, and + native path called on custom command paths + +2001-12-04 11:20 berk + + * Source/CursesDialog/cmCursesStandardIncludes.h: replacing clear() + +2001-12-04 11:16 berk + + * Source/CursesDialog/: ccmake.cxx, cmCursesForm.cxx, + cmCursesForm.h, cmCursesLongMessageForm.cxx, + cmCursesMainForm.cxx, cmCursesStringWidget.cxx: Added debugging. + +2001-12-04 10:55 barre + + * Modules/: Documentation.cmake, FindCygwin.cmake, + FindDoxygen.cmake, FindHhc.cmake, FindPerl.cmake, + FindSelfPackers.cmake, FindUnixCommands.cmake, FindWget.cmake: + Remove unneeded test and code duplication. Add WIN32 test. Make + all ADVANCED. + +2001-12-04 10:54 barre + + * Modules/Dart.cmake: Remove code duplication. Call FindTcl.cmake, + which also does the ADVANCED stuff. + +2001-12-04 10:53 barre + + * Modules/FindTCL.cmake: Make shells also ADVANCED + +2001-12-04 10:27 barre + + * Modules/FindPythonLibs.cmake: Make vars ADVANCED for WIN32 (same + as Tcl) + +2001-12-04 10:11 hoffman + + * Source/CursesDialog/form/frm_driver.c: no c++ comments in c code, + duhhhh + +2001-12-03 19:58 hoffman + + * Source/CursesDialog/form/frm_driver.c: ENH: AIX seems to define + lines and columns as macros, I undefed them + +2001-12-03 18:04 hoffman + + * Templates/CMakeBorlandWindowsSystemConfig.cmake: ENH: fix crashes + in console apps + +2001-12-03 17:47 hoffman + + * Source/cmVariableRequiresCommand.cxx: ENH: let people know the + variable is advanced + +2001-12-03 17:01 hoffman + + * Modules/FindOpenGL.cmake, Source/cmBorlandMakefileGenerator.cxx, + Templates/CMakeBorlandWindowsSystemConfig.cmake: ENH: fix + debugging with borland + +2001-12-03 17:00 hoffman + + * Source/cmake.cxx: ENH: add -C load cache file option + +2001-12-03 15:59 barre + + * Source/MFCDialog/: CMakeSetupDialog.cpp, + CMakeCommandLineInfo.cpp, CMakeCommandLineInfo.h: Add /A and /G + command-line param to carry the value of "Show Advanced" and + generator name in desktop shortcuts + +2001-12-03 15:55 martink + + * Source/ctest.cxx: minor fix for not found executables + +2001-12-03 15:48 hoffman + + * CMake.rtf: [no log message] + +2001-12-03 15:11 berk + + * Source/: cmake.cxx: Fixed help. + +2001-12-03 13:05 hoffman + + * Source/Makefile.borland: add wizard + +2001-12-03 09:39 hoffman + + * CMake.rtf: update docs some + +2001-12-02 18:22 ibanez + + * Source/cmFLTKWrapUICommand.cxx: ENH: AddCustomCommand register + now multiple outputs. Auxiliary variable manage the output + directory where FLTK generated code is going to be writen. + +2001-11-30 17:20 barre + + * Source/: cmBuildCommand.cxx, cmDSPWriter.cxx, cmDSWWriter.cxx, + cmIfCommand.cxx, cmUnixMakefileGenerator.cxx, cmake.cxx: fix + warning for Borland build + +2001-11-30 16:51 hoffman + + * Source/cmakewizard.h: [no log message] + +2001-11-30 16:48 hoffman + + * Source/CMakeLib.dsp, Source/CMakeLists.txt, + Source/Makefile.borland, Source/Makefile.in, + Source/cmBorlandMakefileGenerator.cxx, + Source/cmBorlandMakefileGenerator.h, + Source/cmBorlandMakefileGenerator2.cxx, + Source/cmBorlandMakefileGenerator2.h, + Source/cmForEachCommand.cxx, Source/cmake.cxx, + Source/cmakemain.cxx, Source/cmakewizard.cxx, + Templates/CMakeBorlandWindowsSystemConfig.cmake, + Templates/CMakeWindowsBorlandConfig.cmake, + Templates/CMakeWindowsBorlandConfig2.cmake: new borland generator + moved into place + +2001-11-30 16:27 hoffman + + * Source/: cmBorlandMakefileGenerator.cpp, + cmBorlandMakefileGenerator.h: Replace with nmake subclassed + generator + +2001-11-30 16:05 barre + + * Source/: cmBorlandMakefileGenerator2.cxx, + cmNMakeMakefileGenerator.cxx, cmUnixMakefileGenerator.cxx: Add + options for library manager (lib). + +2001-11-30 16:04 barre + + * Templates/CMakeNMakeWindowsSystemConfig.cmake: Add options for + library manager (lib). Alpha sort + +2001-11-30 15:55 berk + + * Modules/FindTCL.cmake: Unix users are smarter. + +2001-11-30 15:04 berk + + * Source/CursesDialog/: cmCursesMainForm.cxx, + cmCursesStringWidget.cxx: Improving interface. + +2001-11-30 14:50 hoffman + + * Source/CursesDialog/cmCursesMainForm.cxx: print cmake running + message to cerr + +2001-11-30 14:33 barre + + * Templates/CMakeNMakeWindowsSystemConfig.cmake, + Source/cmNMakeMakefileGenerator.cxx: Add linker flags for each + build type + +2001-11-30 14:24 berk + + * Source/CursesDialog/cmCursesMainForm.cxx: Better documentation. + +2001-11-30 14:16 berk + + * Source/CursesDialog/cmCursesMainForm.cxx: Better documentation. + +2001-11-30 13:59 berk + + * Source/CursesDialog/: cmCursesLongMessageForm.cxx, + cmCursesMainForm.cxx, cmCursesStringWidget.cxx: Improved help. + +2001-11-30 13:53 berk + + * Templates/CMakeSystemConfig.cmake.in: Removed unused options. + +2001-11-30 13:10 barre + + * Templates/CMakeNMakeWindowsSystemConfig.cmake: CMAKE_ANSI_CFLAGS + is used by VTK, so it should be set in the NMake config so that + it gets expanded (even to "") + +2001-11-30 13:09 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: fix library suffix + +2001-11-30 12:41 hoffman + + * Source/cmUnixMakefileGenerator.cxx: remove suffix rules + +2001-11-30 12:05 hoffman + + * Source/cmUnixMakefileGenerator.cxx: add new suffix rules + +2001-11-30 11:34 berk + + * Source/CursesDialog/: ccmake.cxx, cmCursesLongMessageForm.cxx, + cmCursesMainForm.cxx, cmCursesStandardIncludes.h: Can non use + clear because it is undef'ed. + +2001-11-30 10:58 berk + + * Source/CursesDialog/ccmake.cxx: Fixed warning. + +2001-11-30 10:54 berk + + * Source/CursesDialog/: ccmake.cxx, cmCursesMainForm.cxx: Fixed + warning. + +2001-11-30 10:51 berk + + * Source/CursesDialog/: cmCursesMainForm.h, cmCursesMainForm.cxx: + Since it is being used as an array size in another file, it is + not possible to initialize MAX_WIDTH in a .cxx file. + +2001-11-30 10:41 hoffman + + * Source/cmUnixMakefileGenerator.cxx: fix warning + +2001-11-30 10:39 berk + + * Source/CursesDialog/: cmCursesLongMessageForm.cxx, + cmCursesLongMessageForm.h: Missed std:: + +2001-11-30 10:28 berk + + * Source/CursesDialog/cmCursesMainForm.h: Missed std:: + +2001-11-30 10:27 berk + + * Templates/CMakeSystemConfig.cmake.in: CMAKE_WORDS_BIGENDIAN + should not be in the cache. + +2001-11-30 10:23 berk + + * Modules/FindPythonLibs.cmake: PYTHON_DEBUG_LIBRARY is only used + on Windows. + +2001-11-30 09:19 barre + + * Templates/CMakeSystemConfig.cmake.in: fix: If documentation + added, then need cache type + +2001-11-29 23:45 berk + + * Source/CursesDialog/: cmCursesLongMessageForm.cxx, + cmCursesLongMessageForm.h: opps I forgot to add these + +2001-11-29 23:24 hoffman + + * Source/Makefile.borland, Source/cmBorlandMakefileGenerator2.cxx, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.cxx, + Templates/CMakeSystemConfig.cmake.in, + Templates/CMakeWindowsBorlandConfig2.cmake: ENH: fix various + problems caused by the generalization of nmake generator + +2001-11-29 20:59 barre + + * Source/cmBorlandMakefileGenerator2.cxx, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, + Templates/CMakeNMakeWindowsSystemConfig.cmake, + Templates/CMakeSystemConfig.cmake.in, + Templates/CMakeWindowsBorlandConfig2.cmake, + Templates/CMakeWindowsSystemConfig.cmake: Nmake build: move most + of hard-coded values to config parameters + +2001-11-29 16:44 berk + + * Source/: cmListFileCache.cxx, cmSystemTools.cxx, cmSystemTools.h, + ctest.cxx, CursesDialog/CMakeLists.txt, CursesDialog/ccmake.cxx, + CursesDialog/cmCursesCacheEntryComposite.cxx, + CursesDialog/cmCursesCacheEntryComposite.h, + CursesDialog/cmCursesForm.h, CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesMainForm.h: Improvements to the curses + interface. + +2001-11-29 15:14 hoffman + + * Source/MFCDialog/CMakeSetup.cpp: ENH: fix memory leaks + +2001-11-29 14:51 barre + + * Source/cmNMakeMakefileGenerator.cxx: Fix space pb (embended, then + escaped) + +2001-11-29 09:22 hoffman + + * Source/Makefile.borland: add bootstrap makefile for borland + compiler + +2001-11-29 09:09 hoffman + + * Source/CMakeLists.txt, Source/cmBorlandMakefileGenerator2.cxx, + Source/cmakewizard.cxx, + Templates/CMakeWindowsBorlandConfig2.cmake: fix for shared libs + and borland + +2001-11-29 01:51 ibanez + + * Source/cmUnixMakefileGenerator.cxx: ENH: GENERATED_CODE case + added to switch. + +2001-11-29 01:48 ibanez + + * Source/cmTarget.h: ENH: A type of target was added for + representing GENERATED_CODE + +2001-11-29 01:46 ibanez + + * Source/cmFLTKWrapUICommand.cxx: ENH: Custom commands are now + builded. + +2001-11-28 18:07 hoffman + + * Source/CMakeLib.dsp, Source/cmBorlandMakefileGenerator2.cxx, + Source/cmBorlandMakefileGenerator2.h, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmNMakeMakefileGenerator.h, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, + Templates/CMakeWindowsBorlandConfig2.cmake: ENH: borland + generator 2 is working more or less + +2001-11-28 14:45 ibanez + + * Source/cmFLTKWrapUICommand.cxx: ENH: Command simplified in order + to construct a Source list of .cxx from a source list of .fl + GUI files. + +2001-11-28 14:44 ibanez + + * Source/cmFLTKWrapUICommand.h: ENH: The command was simplified to + generate a source list of cxx from a source list of .fl GUI + files. + +2001-11-28 12:49 barre + + * Modules/FindPythonLibs.cmake: Fynd Python debug lib in usual libs + dir too + +2001-11-28 11:12 hoffman + + * Source/: CMakeLists.txt, cmBorlandMakefileGenerator2.cxx, + cmBorlandMakefileGenerator2.h, cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h, cmake.cxx: add new borland generator + +2001-11-28 10:51 hoffman + + * Source/cmaketest.cxx: [no log message] + +2001-11-28 07:15 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: bug: fix same path comparison when + short paths are used + +2001-11-28 07:14 hoffman + + * Source/cmMarkAsAdvancedCommand.cxx: fix warning + +2001-11-27 19:38 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cxx: FIX: When + switching from one project to another the CacheGUI wasn't being + cleared. Values from one project were mixed into the other. + +2001-11-27 17:53 berk + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: ENH: nmake generator much closer to + working with spaces + +2001-11-27 17:32 berk + + * Source/cmMakefile.cxx: ENH: expand variables in a command before + escaping spaces in the command + +2001-11-27 17:31 berk + + * Source/cmOptionCommand.cxx: ENH: do not write over existing cache + values even doc strings to avoid changing the cache file + +2001-11-27 16:12 berk + + * Source/cmDSPWriter.cxx: remove unused include + +2001-11-27 15:34 martink + + * Source/MFCDialog/CMakeSetup.rc: adjusted spacing + +2001-11-27 15:33 martink + + * Source/cmLinkLibrariesCommand.cxx: removed extra lib paths to + avoid finding old libs + +2001-11-27 15:32 martink + + * Modules/FindTCL.cmake: made some vars advanced + +2001-11-27 15:20 martink + + * Modules/Dart.cmake: made some vars advanced + +2001-11-27 00:03 ibanez + + * Source/cmCommands.cxx: ENH: Command for running FLTK's UI tool + "Fluid" was added. + +2001-11-27 00:02 ibanez + + * Source/cmUnixMakefileGenerator.cxx: ENH: Support for FLTK Fluid + tool added. + +2001-11-26 23:57 ibanez + + * Modules/FindFLTK.cmake: ENH: Support for running FLUID was added. + +2001-11-26 22:40 ibanez + + * Source/: cmFLTKWrapUICommand.cxx, cmFLTKWrapUICommand.h: Command + for invoking FLTK's code generator "Fluid" during the building + process + +2001-11-26 18:26 hoffman + + * Modules/Dart.cmake, Source/CMakeLists.txt, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmCommands.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmUnixMakefileGenerator.cxx, + Source/cmakewizard.cxx, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/CMakeSetupDialog.h, Source/MFCDialog/resource.h, + Templates/CMakeSystemConfig.cmake.in, + Templates/CMakeWindowsSystemConfig.cmake, + Source/cmMarkAsAdvancedCommand.cxx, + Source/cmMarkAsAdvancedCommand.h: ENH: add advanced variable + types and command line wizard gui + +2001-11-26 18:24 hoffman + + * Source/: cmFindFileCommand.cxx, cmFindFileCommand.h, + cmFindLibraryCommand.cxx, cmFindLibraryCommand.h, + cmFindPathCommand.cxx, cmFindPathCommand.h, + cmFindProgramCommand.cxx, cmFindProgramCommand.h: ENH: add + possibility to add doc strings to varibles created by find type + commands + +2001-11-26 16:32 berk + + * Source/cmCacheManager.cxx: Oops. The wrong version of the + duplicate code was kept. Loaded cache values were not made + internal. + +2001-11-26 15:45 berk + + * Modules/FindTCL.cmake: TK_INTERNAL_PATH is only needed on + Windows. + +2001-11-26 11:32 martink + + * Source/: cmSystemTools.cxx, cmSystemTools.h: removed warning + messages + +2001-11-26 11:31 martink + + * Source/cmIfCommand.cxx: better error messages + +2001-11-24 18:47 barre + + * Modules/Dart.cmake: I want to be able to start/end + experimental-only dashboards + +2001-11-21 17:45 hoffman + + * Source/: cmCacheManager.cxx, cmDSPWriter.cxx, + cmNMakeMakefileGenerator.cxx, cmSystemTools.cxx, cmSystemTools.h, + cmUnixMakefileGenerator.cxx, cmake.cxx, cmaketest.cxx: NMake with + spaces in directories + +2001-11-21 11:35 andy + + * Source/cmCacheManager.cxx: Fix the current directory check for + NMake + +2001-11-21 08:47 hoffman + + * Source/cmake.cxx: ENH: clean up command line arguments + +2001-11-21 08:46 hoffman + + * Source/: cmQTWrapUICommand.cxx, cmVariableRequiresCommand.cxx: + WAR: fix warning + +2001-11-20 17:50 hoffman + + * Source/: cmCacheManager.cxx, cmCacheManager.h, cmake.cxx, + cmake.h: ENH: add command line arguments to set cache entries + +2001-11-20 17:27 berk + + * Source/cmNMakeMakefileGenerator.cxx: ENH: closer to working with + spaces in source directory + +2001-11-20 17:27 berk + + * Source/cmaketest.cxx: BUG: fix memory leak + +2001-11-20 17:26 berk + + * Source/cmDSPWriter.cxx: BUG: fix for spaces in path to + CMakeList.txt file + +2001-11-20 08:28 hoffman + + * Source/: cmStandardIncludes.h, CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesStandardIncludes.h: define hacks and such + for the dec compiler + +2001-11-19 17:52 hoffman + + * Source/: cmCommands.cxx, cmSystemTools.cxx, cmSystemTools.h, + cmVariableRequiresCommand.cxx, cmVariableRequiresCommand.h, + MFCDialog/CMakeSetupDialog.cpp: ENH: add new command + VARIABLE_REQUIRES for better debugging of list files + +2001-11-19 09:34 hoffman + + * Source/: cmVariableRequiresCommand.cxx, + cmVariableRequiresCommand.h: [no log message] + +2001-11-19 09:20 hoffman + + * Source/MFCDialog/CMakeLists.txt: ENH: remove unused source files + +2001-11-16 16:42 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: look for cmake test with + .exe if nmake + +2001-11-16 16:29 hoffman + + * Source/MFCDialog/: CMakeLists.txt, CMakeSetup.dsp, CMakeSetup.rc, + CMakeSetupDialog.cpp, CMakeSetupDialog.h, MakeHelp.cpp, + MakeHelp.h, resource.h: face lift for GUI and some more help + +2001-11-16 16:28 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: ENH: fix for dll builds + +2001-11-16 13:08 bettingf + + * Source/cmUnixMakefileGenerator.cxx: Added a make depend in the + clean rule to refresh the dependencies + +2001-11-16 10:14 bettingf + + * Source/cmUnixMakefileGenerator.cxx: undo the last change because + of problem with some versions of make + +2001-11-16 09:40 bettingf + + * Modules/FindQt.cmake: fixed QT_UIC_EXE name + +2001-11-16 09:04 bettingf + + * Source/cmUnixMakefileGenerator.cxx: added the deletion of + cmake.depends in the cleaning so that it is recomputed even + source files (i.e. .cxx or .h) are generated + +2001-11-16 09:03 bettingf + + * Source/cmMakeDepend.cxx: Now adds dependency if the file doesn't + exist but will be created during the compilation + +2001-11-16 09:01 bettingf + + * Source/: cmQTWrapUICommand.cxx, cmQTWrapUICommand.h: corrected + path problem and added moc compilation too + +2001-11-15 22:10 hoffman + + * Source/Makefile.in: remove depend on star dot h as it is not + really needed and breaks some versions of gmake + +2001-11-15 18:18 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: ENH: use crazy temp files + for long command lines + +2001-11-15 17:45 hoffman + + * Source/cmNMakeMakefileGenerator.cxx: ENH: remove debug prints + +2001-11-15 17:11 hoffman + + * Modules/Dart.cmake, Source/cmBuildCommand.cxx, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmNMakeMakefileGenerator.h, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, + Templates/CMakeNMakeWindowsSystemConfig.cmake, + Templates/CMakeSystemConfig.cmake.in, + Templates/CMakeWindowsBorlandConfig.cmake, + Templates/CMakeWindowsSystemConfig.cmake: closer to nmake + working, added CMAKE_MAKE_COMMAND instead of MAKECOMMAND used by + Dart, nmake makefiles work with borland make and nmake + +2001-11-15 14:54 millerjv + + * Modules/Dart.cmake: ENH: New make targets for Continuous builds. + Added a NightlyStart and NightlyUpdate target for unix builds as + well. + +2001-11-15 14:52 millerjv + + * DartConfig.cmake: ENH: Changed Nightly start time + +2001-11-15 09:55 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h, cmUnixMakefileGenerator.h, cmake.cxx: + ENH: fix library builds with nmake + +2001-11-15 09:00 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: wrong shortname used + +2001-11-15 08:43 hoffman + + * Source/cmaketest.cxx: BUG: fix build for cygwin + +2001-11-15 08:42 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: avoid .cxx.o names... + +2001-11-14 18:12 hoffman + + * Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, Source/cmake.cxx, + Source/cmaketest.cxx, Source/cmaketest.h.in, + Templates/CMakeNMakeWindowsSystemConfig.cmake: Closer to nmake + build + +2001-11-14 18:11 hoffman + + * Source/: cmNMakeMakefileGenerator.cxx, + cmNMakeMakefileGenerator.h: closer to nmake build + +2001-11-14 14:39 barre + + * Source/MFCDialog/: CMakeSetup.rc, CMakeSetupDialog.cpp, + CMakeSetupDialog.h, resource.h: Quick addition: "Create shortcut" + menu entry. + +2001-11-14 10:21 hoffman + + * Templates/CMakeNMakeWindowsSystemConfig.cmake, + Source/cmNMakeMakefileGenerator.cxx, + Source/cmNMakeMakefileGenerator.h, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h: nmake support + +2001-11-14 09:56 king + + * Source/CursesDialog/ccmake.cxx: ERR: Re-ordered includes to fix + macro conflict for gcc 3.0. + +2001-11-14 09:55 king + + * Source/CursesDialog/form/frm_driver.c: ERR: Fixed compiler + warning for gcc 3.0. + +2001-11-14 09:22 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: remove debug statements + +2001-11-14 08:49 hoffman + + * Source/FLTKDialog/CMakeSetupGUI.cxx: ENH: remove warning + +2001-11-13 18:23 hoffman + + * Source/: CMakeLib.dsp, CMakeLists.txt, + cmNMakeMakefileGenerator.cxx, cmNMakeMakefileGenerator.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: start + work on nmake generator + +2001-11-13 15:54 hoffman + + * Source/: cmUnixMakefileGenerator.h, cmUnixMakefileGenerator.cxx: + clean up object file build rule, and do not attempt to remove + link_directories that are in the build tree + +2001-11-13 14:22 martink + + * Source/: CMakeLists.txt, CursesDialog/CMakeLists.txt: fixes to + curses stuff + +2001-11-13 12:42 hoffman + + * Source/CursesDialog/form/fty_num.c: warnings + +2001-11-13 12:38 hoffman + + * Source/: cmCacheManager.cxx, cmForEachCommand.cxx, + cmIncludeExternalMSProjectCommand.cxx, cmMakefile.cxx, + cmSystemTools.cxx, cmUnixMakefileGenerator.cxx, + FLTKDialog/CMakeSetupGUI.cxx, FLTKDialog/CMakeSetupGUI.h, + FLTKDialog/CMakeSetupGUIImplementation.cxx: ENH: clean up + warnings + +2001-11-13 12:25 hoffman + + * Source/FLTKDialog/: CMakeSetupGUI.cxx, FLTKPropertyItemRow.cxx: + WAR: fix compile warnings + +2001-11-13 12:21 hoffman + + * Source/cmAddDependenciesCommand.h: ENH: fix spelling error + +2001-11-13 12:21 hoffman + + * Source/CursesDialog/cmCursesMainForm.cxx: ENH: remove warnings + +2001-11-12 15:37 king + + * Source/cmMakeDepend.cxx: ENH: + cmMakeDepend::GenerateDependInformation will now use hints + regardless of whether the actual file exists. This can be used + to add dependencies to .h files which are generated but included + in hand-written .cxx files. If the .cxx does exist, though, it + will be used first, and the hints will be used afterward. + +2001-11-12 09:21 martink + + * Source/cmDSPWriter.cxx: minor fix + +2001-11-10 23:01 ibanez + + * Modules/FindX11.cmake: Module to search for the installation + of X11 + +2001-11-09 16:16 berk + + * Source/CursesDialog/: CMakeLists.txt, ccmake.cxx, ccurses.cxx: + Renaming ccurses to ccmake. + +2001-11-09 16:15 barre + + * Modules/FindSelfPackers.cmake: Self-packers + +2001-11-09 16:05 berk + + * Source/: CMakeLists.txt, CursesDialog/CMakeLists.txt, + CursesDialog/cmCursesStandardIncludes.h, + CursesDialog/form/frm_driver.c, CursesDialog/form/frm_req_name.c: + Trying to fix curses. + +2001-11-09 13:00 martink + + * Source/cmDSPWriter.cxx, Source/cmDSPWriter.h, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: support for custom targets + on exe and lib + +2001-11-09 12:08 bettingf + + * Modules/FindQt.cmake: support for compilation of .ui files into + .h and .cxx files + +2001-11-09 12:07 bettingf + + * Source/: cmQTWrapCPPCommand.cxx, cmQTWrapCPPCommand.h: cleanups + +2001-11-09 12:02 bettingf + + * Source/: cmQTWrapUICommand.h, cmQTWrapUICommand.cxx, + cmCommands.cxx, cmUnixMakefileGenerator.cxx: support for + compilation of .ui files into .h and .cxx files + +2001-11-09 10:42 barre + + * Source/cmAddCustomCommandCommand.cxx: SOURCE, COMMAND, TARGET are + required now + +2001-11-09 10:37 barre + + * Source/cmAddCustomCommandCommand.h: SOURCE, COMMAND, TARGET are + required now + +2001-11-09 10:33 barre + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomCommandCommand.h: Reimplement code. Since a custom + command is very flexible and might be extended in the future, + make all arguments prefixed with arg type, make ordering + irrelevant and potentially all args optional. + +2001-11-08 17:30 berk + + * Source/CursesDialog/form/: frm_driver.c, frm_req_name.c: Trying + to fix curses problems. + +2001-11-08 17:25 berk + + * Source/CursesDialog/form/: frm_driver.c, frm_req_name.c: Fixing + problems with curses headers. + +2001-11-08 17:17 berk + + * Source/CursesDialog/form/: frm_driver.c, frm_req_name.c: Trying + to fix curses problems. + +2001-11-08 17:10 berk + + * Source/CursesDialog/form/form.h: Oops. + +2001-11-08 17:03 berk + + * CMakeLists.txt, Source/CursesDialog/CMakeLists.txt, + Source/CursesDialog/form/CMakeLists.txt, + Source/CursesDialog/form/form.h, + Source/CursesDialog/form/nc_alloc.h: Changes to remove warnings + and fix dependencies. + +2001-11-08 15:09 martink + + * Source/cmDSWWriter.cxx: a better fix maybe + +2001-11-08 14:44 hoffman + + * Source/cmDSWWriter.cxx: make sure custom targets are in the + ALL_BUILD + +2001-11-08 14:34 barre + + * Source/cmAddCustomCommandCommand.cxx: Fix number of params and + expand vars in all args + +2001-11-08 11:50 barre + + * Source/cmSourceFilesCommand.cxx: Fix bug. Was using unexpanded + var instead of copy + +2001-11-08 11:40 barre + + * Source/cmAddLibraryCommand.cxx: Break the "to infinity and + beyond" stuff + +2001-11-08 10:48 barre + + * Source/cmAddLibraryCommand.cxx: Expand var in srclist name too + +2001-11-08 10:40 barre + + * Source/cmSourceFilesCommand.cxx: Expand var in name too + +2001-11-08 09:16 barre + + * Source/cmAddDependenciesCommand.cxx: Expand variables in all + target args + +2001-11-08 08:42 berk + + * Source/cmUnixMakefileGenerator.cxx: Needed to replace srcdir to + make install targets work. + +2001-11-07 17:12 hoffman + + * Templates/: configure, configure.in: put back + CMAKE_TEMPLATE_FLAGS + +2001-11-07 17:04 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: no +=+ + +2001-11-07 16:47 andy + + * Source/: cmAddCustomCommandCommand.cxx, + cmAddCustomCommandCommand.h, cmCommands.cxx: Added accessor for + add custom command + +2001-11-07 16:07 barre + + * Modules/FindUnixCommands.cmake: Add cp (CP) + +2001-11-07 15:57 hoffman + + * configure, configure.in, Source/cmUnixMakefileGenerator.cxx, + Templates/configure, Templates/configure.in: remove template + flags from cmake, no ptused, or -instance=static + +2001-11-07 15:57 hoffman + + * Source/CursesDialog/cmCursesStandardIncludes.h: Trying to fix + curses problems with some systems. + +2001-11-07 15:01 berk + + * Source/CursesDialog/cmCursesStandardIncludes.h: Trying to fix + build problems related to curses. + +2001-11-07 14:55 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: use full source name for + c code as well as c++ + +2001-11-07 14:44 hoffman + + * Source/CursesDialog/ccurses.cxx: use cmake as the executable for + cmake and not ccurses + +2001-11-07 14:44 hoffman + + * Source/cmUnixMakefileGenerator.cxx: make sure default_target is + first + +2001-11-07 13:46 hoffman + + * CMakeLists.txt: ENH: add ansi flag for c compiler + +2001-11-07 12:23 hoffman + + * Source/cmMessageCommand.cxx: Allow multiline messages + +2001-11-07 09:54 hoffman + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + Clean up a bit more + +2001-11-07 09:29 hoffman + + * Source/cmCacheManager.cxx: One more time... case does not matter + on cygwin + +2001-11-06 16:14 hoffman + + * Source/cmExecProgramCommand.h: ENH: fix doc string + +2001-11-06 15:29 bettingf + + * Source/: cmQTWrapCPPCommand.cxx, cmUnixMakefileGenerator.cxx: add + cleaning of QT generated files when make clean is used + +2001-11-06 12:03 hoffman + + * Source/CursesDialog/: ccurses.cxx, cmCursesMainForm.cxx, + cmCursesMainForm.h: ENH: tell cmake object where cmake is + +2001-11-06 09:35 hoffman + + * Source/: cmCableWrapTclCommand.cxx, cmQTWrapCPPCommand.cxx, + cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx: BUG: CustomCommand has to use full path + to Source file now + +2001-11-06 08:40 hoffman + + * Source/CursesDialog/form/: fld_type.c, form.h: Removed a function + which used va_start (did not compile on Sun with gcc) + +2001-11-05 22:10 berk + + * Source/CursesDialog/: ccurses.cxx, cmCursesBoolWidget.cxx, + cmCursesLabelWidget.cxx, cmCursesMainForm.cxx, + cmCursesMainForm.h, cmCursesStringWidget.cxx: Many improvements. + +2001-11-05 16:38 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: use full paths for + object compile rules + +2001-11-05 15:55 berk + + * Source/: CMakeLists.txt, CursesDialog/cmCursesMainForm.cxx: + Re-enabling curses support. + +2001-11-05 15:39 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: change to work with + nmake + +2001-11-05 13:22 berk + + * Modules/FindCurses.cmake, Source/CursesDialog/CMakeLists.txt, + Source/CursesDialog/cmCursesForm.h, + Source/CursesDialog/cmCursesLabelWidget.h, + Source/CursesDialog/cmCursesMainForm.h, + Source/CursesDialog/cmCursesWidget.h, + Source/CursesDialog/form/frm_driver.c, + Source/CursesDialog/form/frm_req_name.c, + Source/CursesDialog/cmCursesStandardIncludes.h: HPUX support. + +2001-11-05 12:57 lorensen + + * Source/cmIncludeExternalMSProjectCommand.cxx: ERR: ^M's removed. + +2001-11-05 11:52 berk + + * Source/CursesDialog/form/: CMakeLists.txt, READ.ME, eti.h, + fld_arg.c, fld_attr.c, fld_current.c, fld_def.c, fld_dup.c, + fld_ftchoice.c, fld_ftlink.c, fld_info.c, fld_just.c, fld_link.c, + fld_max.c, fld_move.c, fld_newftyp.c, fld_opts.c, fld_pad.c, + fld_page.c, fld_stat.c, fld_type.c, fld_user.c, form.h, + form.priv.h, frm_cursor.c, frm_data.c, frm_def.c, frm_driver.c, + frm_hook.c, frm_opts.c, frm_page.c, frm_post.c, frm_req_name.c, + frm_scale.c, frm_sub.c, frm_user.c, frm_win.c, fty_alnum.c, + fty_alpha.c, fty_enum.c, fty_int.c, fty_ipv4.c, fty_num.c, + fty_regex.c, llib-lform, mf_common.h, nc_alloc.h: Adding form + library. + +2001-11-05 11:52 berk + + * Source/: CMakeLists.txt, CursesDialog/CMakeLists.txt, + CursesDialog/cmCursesCacheEntryComposite.h, + CursesDialog/cmCursesLabelWidget.h, + CursesDialog/cmCursesMainForm.cxx, + CursesDialog/cmCursesMainForm.h, CursesDialog/cmCursesWidget.h: + Fixing problems on Sun (name collusions between STL and curses) + and disabling curses temporarily. + +2001-11-05 10:42 andy + + * Source/CMakeLists.txt: Fix the IF IF problem + +2001-11-05 08:37 berk + + * Source/CursesDialog/: ccurses.cxx, + cmCursesCacheEntryComposite.cxx, cmCursesCacheEntryComposite.h, + cmCursesLabelWidget.h, cmCursesMainForm.cxx, cmCursesMainForm.h, + cmCursesWidget.h: ERR: To include cmake headers, one should use + ../ + +2001-11-05 05:43 pcp + + * Source/: cmDSPWriter.cxx, cmDSWWriter.cxx: switched + string::compare to strncmp + +2001-11-04 18:10 berk + + * Source/CursesDialog/cmCursesMainForm.h: Need to include standard + headers. + +2001-11-04 18:05 berk + + * Source/CursesDialog/: CMakeLists.txt, cmCursesBoolWidget.h, + cmCursesCacheEntryComposite.h, cmCursesDummyWidget.h, + cmCursesFilePathWidget.h, cmCursesForm.h, cmCursesLabelWidget.h, + cmCursesMainForm.h, cmCursesPathWidget.h, cmCursesStringWidget.h, + cmCursesWidget.h, ccurses.cxx, cmCursesBoolWidget.cxx, + cmCursesCacheEntryComposite.cxx, cmCursesDummyWidget.cxx, + cmCursesFilePathWidget.cxx, cmCursesForm.cxx, + cmCursesLabelWidget.cxx, cmCursesMainForm.cxx, + cmCursesPathWidget.cxx, cmCursesStringWidget.cxx, + cmCursesWidget.cxx: Adding curses support. + +2001-11-04 18:00 berk + + * Modules/FindCurses.cmake, Source/CMakeLists.txt: Adding curses + support. + +2001-11-02 22:32 barre + + * Source/: cmIncludeDirectoryCommand.cxx, + cmIncludeDirectoryCommand.h, cmMakefile.cxx, cmMakefile.h: Add + optional BEFORE param to INCLUDE_DIRECTORIES so that include dirs + can be specified before the actual include dirs + +2001-11-02 16:44 barre + + * Utilities/Doxygen/: CMakeLists.txt, doc_makeall.sh.in: Update + +2001-11-02 16:43 barre + + * Modules/: Documentation.cmake, DocumentationVTK.cmake, + FindCygwin.cmake, FindPerl.cmake, FindUnixCommands.cmake, + FindWget.cmake: Move usual Unix commands to FindUnixCommands, use + FingCygwin in other modules + +2001-11-02 16:05 barre + + * Utilities/: CMakeLists.txt, Doxygen/CMakeLists.txt, + Doxygen/doc_makeall.sh.in, Doxygen/doxyfile.in: Doxygen doc + generator + +2001-11-02 16:01 barre + + * CMakeLists.txt: Doxygen doc generator + +2001-11-02 15:26 blezek + + * Modules/Dart.cmake: ENH: More Experimental targets for unix + +2001-11-02 11:19 pcp + + * Source/: cmDSWWriter.cxx, cmIncludeExternalMSProjectCommand.cxx, + cmDSPWriter.cxx: allow more than one external MS project + +2001-11-02 09:18 andy + + * Source/cmCacheManager.cxx: On win32 path is all in lower case now + +2001-11-01 18:37 hoffman + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + ENH: clean up interface and change build in current directory to + build the depend file first + +2001-11-01 18:36 hoffman + + * Source/cmCacheManager.cxx: BUG: use collapse full path when + testing cache directory + +2001-11-01 18:36 hoffman + + * Source/cmDSPWriter.cxx: ENH: IntDir to INTDIR + +2001-11-01 13:09 barre + + * Source/: cmAddExecutableCommand.cxx, cmAddLibraryCommand.cxx: + Expand vars in exe and lib name + +2001-11-01 10:42 hoffman + + * Source/cmCacheManager.cxx: ENH: clean up drive letter check + +2001-10-31 18:56 king + + * Source/: cmCableClassSet.cxx, cmCableClassSet.h: ENH: Added + automatic detection of >> sequences in template names and + replacement with "> >" in the output. + +2001-10-31 18:56 king + + * Source/cmStandardIncludes.h: ENH: Replaced cmStdString + implementation to make it more transparently a std:string. + +2001-10-31 07:03 pcp + + * Source/: cmCommands.cxx, cmDSPWriter.cxx, cmDSWWriter.cxx, + cmDSWWriter.h, cmIncludeExternalMSProjectCommand.cxx, + cmIncludeExternalMSProjectCommand.h: INCLUDE_EXTERNAL_MSPROJECT + command + +2001-10-30 18:32 ibanez + + * Source/FLTKDialog/: FLTKPropertyItemRow.cxx, + FLTKPropertyItemRow.h: FIX: Reverted to use + FillCacheManagerFromGUI(). + +2001-10-30 14:36 andy + + * Source/cmCacheManager.cxx: Fix the problem on windows of capital + or lower case drive letter for CMAKE_CACHEFILE_DIR + +2001-10-30 14:15 andy + + * Source/cmCacheManager.cxx: Change CMAKE_CURRENT_CWD to + CMAKE_CACHEFILE_DIR and change the messages + +2001-10-30 14:05 hoffman + + * Source/: cmConfigureFileCommand.cxx, cmConfigureFileCommand.h, + cmMakefile.cxx, cmMakefile.h: ENH: add an option to configure + file command that allows for only expansion of at variables and + not dollar variables + +2001-10-30 04:33 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cxx: FIX: In order + to disable a button in fl_choice, a 0 pointer must be sent + instead of "". + +2001-10-29 21:22 ibanez + + * Source/FLTKDialog/: FLTKPropertyItemRow.cxx, + FLTKPropertyItemRow.h: ENH: FillCacheManagerFromGUI() was + replaced by SaveFromCacheGUI() to ensure that changes on the + GUI are directly update in the config file. + +2001-10-29 21:20 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cxx: ENH: fl_ask + replaced by fl_choice in FLTKCallback. + +2001-10-29 10:41 hoffman + + * Source/: cmSystemTools.cxx, + FLTKDialog/CMakeSetupGUIImplementation.cxx, + MFCDialog/CMakeSetupDialog.cpp: ENH: use callback not ifdef for + MFC message box errors + +2001-10-29 10:19 hoffman + + * Source/: cmCacheManager.cxx, cmSystemTools.cxx, cmSystemTools.h, + FLTKDialog/CMakeSetupGUIImplementation.cxx: ENH: add callback for + message display + +2001-10-28 18:52 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cxx, CMakeSetupGUI.fl: ENH: + Button were renamed : "Configure", "OK" and "Cancel" as the MFC + version. + +2001-10-27 23:47 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cxx, CMakeSetupGUI.fl, + CMakeSetupGUI.h, CMakeSetupGUIImplementation.cxx, + CMakeSetupGUIImplementation.h, FLTKPropertyItemRow.cxx, + FLTKPropertyList.cxx, FLTKPropertyList.h: ENH: Updated with + respect to MFC CMakeSetup. New cache entries are now colored + in red. The browsers for recent directories only popup if + there is at least one in the list. + +2001-10-26 18:21 hoffman + + * Modules/FindITK.cmake: [no log message] + +2001-10-26 17:06 berk + + * Templates/: CMakeSystemConfig.cmake.in, configure, configure.in: + added CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION + +2001-10-26 15:42 hoffman + + * Source/: cmConfigureFileCommand.cxx, cmMakefile.h, cmaketest.cxx: + add dependency for configure files and use short path in WIN32 + cmake test + +2001-10-26 14:35 hoffman + + * Modules/FindVTK.cmake: use find_file and not just a set for + USE_VTK_FILE + +2001-10-26 11:22 barre + + * Modules/DocumentationVTK.cmake: VTK documentation framework + +2001-10-26 09:29 andy + + * Source/cmCacheManager.cxx: Added check if the binary directory + changed. If it did, it will print the warning message + +2001-10-24 20:37 barre + + * Modules/FindCygwin.cmake: Add GZIP (gzip) + +2001-10-24 20:33 barre + + * Modules/FindCygwin.cmake: Add TAR (path to tar or gtar) + +2001-10-24 17:51 berk + + * Source/cmUnixMakefileGenerator.cxx: ENH: allow -framework as a + complete entry in the link line for Mac OSX + +2001-10-24 15:51 berk + + * DartConfig.cmake: public no longer has anonymous ftp. + +2001-10-24 09:41 king + + * Modules/FindGCCXML.cmake: ENH: Improved FIND_PROGRAM call to find + the executable in PREFIX/share/GCC_XML, the new standard install + location. + +2001-10-23 18:30 barre + + * Modules/FindCygwin.cmake: Cygwin mod + +2001-10-23 17:49 barre + + * Source/: cmGetFilenameComponentCommand.cxx, + cmGetFilenameComponentCommand.h: The result of this utility + command can now be optionally added to the cache + +2001-10-23 17:47 barre + + * Modules/FindDoxygen.cmake: Find Graphivz's dot too + +2001-10-23 17:06 barre + + * Modules/: FindDoxygen.cmake, FindWget.cmake: Add Doxygen and Wget + modules. Very simple. But might be more complex later, so let's + use them asap + +2001-10-23 16:55 barre + + * Modules/: FindHhc.cmake, FindPerl.cmake: Modules to find Perl and + the HTML Help Compiler + +2001-10-19 10:07 barre + + * Source/cmEnableTestingCommand.h: Add warning regarding the + location of ENABLE_TESTING (should be in the top CMakeList.txt, + otherwise Dart is lost) + +2001-10-18 18:01 barre + + * Source/cmSiteNameCommand.cxx: SITE_NAME should return the most + qualified name of the host. If nslookup works, now the domain is + appended to the hostname (whereas it *replaced* the host name + before) + +2001-10-18 13:51 iscott + + * Source/cmQTWrapCPPCommand.cxx: Detect error and output useful + message Previously it would have got confused about the + destinationSourceGroup + +2001-10-18 13:03 iscott + + * Source/cmFindFileCommand.cxx: This command should always set the + cahce variabel to a filepath not a path + +2001-10-17 15:11 barre + + * Source/cmProjectCommand.cxx: Add PROJECT_NAME to the set of + definitions + +2001-10-16 15:40 iscott + + * Modules/FindQt.cmake: fixed some stupid mistakes I thought I had + tested these - honest + +2001-10-16 15:32 iscott + + * Modules/: FindQt.cmake, LinkQT.cmake: Some simple modules for + finding and linking qt + +2001-10-15 18:37 hoffman + + * Source/cmMessageCommand.cxx: ENH: expand variables in message + command output + +2001-10-15 18:36 hoffman + + * Source/cmSourceFile.cxx: ENH: clean up error report for source + files not found + +2001-10-15 14:19 iscott + + * CMake.rtf, Source/cmCommands.cxx, Source/cmQTWrapCPPCommand.cxx, + Source/cmQTWrapCPPCommand.h: added a QT_WRAP_CPP command + +2001-10-11 17:20 king + + * Source/cmCableWrapTclCommand.cxx: ENH: Improved parsing of + GCCXML_FLAGS to improve generation of gccxml rule. Also added + ADD_DEFINITIONS arguments to the generated rule. + +2001-10-11 14:57 andy + + * Source/cmCacheManager.cxx: Added removing of spaces in + CMakeCache.txt in front of comments and variables + +2001-10-10 10:22 hoffman + + * Source/cmCacheManager.cxx: ENH: add a warning comment for cache + values that can not be changed because they are always loaded + from another cache + +2001-10-09 22:18 biddi + + * Source/cmBorlandMakefileGenerator.cpp: FIX: Same as last checkin + except applies to bpi files as wellas lib files If we can't find + it - and it's not a target - and it has no path already + specified, it must be in OUTDIRLIB from another makefile in the + same project ! (What this really means is the lib paths are + correctly specified) + +2001-10-09 10:25 hoffman + + * Source/cmSystemTools.cxx: ENH: better fix for dos return in + lines, use the regular expression and don't edit the input line + +2001-10-05 17:31 hoffman + + * Source/cmSystemTools.cxx: ENH: clean up returns from input, so we + can read dos files on unix + +2001-10-04 09:32 starreveld + + * Templates/: configure, configure.in: + + ERR: remove undefined warning for compatibility with new 10.1 + linker + +2001-10-03 15:49 hoffman + + * Modules/Dart.cmake, Source/CMakeLists.txt, Source/cmake.cxx, + Source/cmaketest.cxx: ENH: fixes for borland compiler testing + +2001-10-03 11:36 king + + * Modules/FindCABLE.cmake: ENH: Changed CABLE_BUILD_DIR to look for + cableVersion.h instead of cable.README.txt. + +2001-10-02 23:10 biddi + + * Source/cmBorlandMakefileGenerator.cpp: FIX:if we can't find it - + and it's not a target - and it has no path already specified, it + must be in OUTDIRLIB from another makefile in the same project ! + (What this really means is the lib paths are correctly specified) + +2001-10-02 17:28 hoffman + + * Source/: cmListFileCache.cxx, cmMakefile.cxx, cmSystemTools.cxx, + cmSystemTools.h, ctest.cxx: ENH: add better error reports in + parsing cmake files, like what file has the error + +2001-10-01 13:35 martink + + * Source/: cmMakefile.h: version + +2001-10-01 13:26 hoffman + + * ChangeLog.txt: [no log message] + +2001-10-01 11:55 hoffman + + * Source/cmaketest.cxx: BUG: add missing include + +2001-10-01 10:14 hoffman + + * Source/: cmaketest.cxx, MFCDialog/CMakeSetupDialog.cpp: ENH: + change checkboxes back to pull down menus, remove leak + +2001-09-29 11:12 hoffman + + * Source/cmSystemTools.cxx: BUG: fix full path for file in current + directory + +2001-09-28 13:35 berk + + * Source/cmSystemTools.cxx: BUG: fix realpath problem again... + +2001-09-28 12:14 berk + + * Source/cmSystemTools.cxx: BUG: separate path from file name + before calling realpath + +2001-09-28 10:40 hoffman + + * Source/: cmSystemTools.cxx, cmUnixMakefileGenerator.cxx: BUG: get + correct library name + +2001-09-28 10:34 hoffman + + * CMakeLists.txt: BUG: optional in wrong order + +2001-09-28 09:57 hoffman + + * CMakeLists.txt: make the include of the initial config flags + optional, for builds that do not use configure + +2001-09-27 16:50 hoffman + + * Source/: cmSystemTools.cxx, cmUnixMakefileGenerator.cxx: BUG: use + realpath instead of cd/pwd + +2001-09-27 15:54 hoffman + + * CMakeLists.txt, Source/CMakeLists.txt: BUG: fix install prefix + +2001-09-27 14:58 hoffman + + * configure, configure.in, Source/CMakeLists.txt, + Source/InitialConfigureFlags.cmake.in: ENH: pass prefix from + configure into cmake + +2001-09-26 16:23 berk + + * Modules/Dart.cmake: Typo. + +2001-09-25 14:39 martink + + * Modules/FindVTK.cmake: changes to chamghe + +2001-09-25 14:39 martink + + * Source/MFCDialog/CMakeSetupDialog.cpp: improved registry handling + +2001-09-25 11:06 martink + + * Source/cmVTKWrapTclCommand.cxx: memory leak + +2001-09-21 11:48 martink + + * Modules/FindVTK.cmake: better install targets + +2001-09-21 09:40 king + + * Source/cmSystemTools.cxx: BUG: CopyFile should return immediately + after an error occurs. + +2001-09-20 17:31 martink + + * Modules/FindVTK.cmake: updates + +2001-09-20 16:43 berk + + * Source/ctest.cxx: handle spaces in commands and args + +2001-09-20 15:29 martink + + * Source/MFCDialog/: CMakeSetupDialog.cpp, PropertyList.cpp, + PropertyList.h: ENH: check for values that switch to internal, + can happen with a load cache command + +2001-09-20 15:08 hoffman + + * Source/: cmAbstractFilesCommand.cxx, cmAbstractFilesCommand.h, + cmAddCustomTargetCommand.cxx, cmAddCustomTargetCommand.h, + cmAddDefinitionsCommand.cxx, cmAddDefinitionsCommand.h, + cmAddDependenciesCommand.cxx, cmAddDependenciesCommand.h, + cmAddExecutableCommand.cxx, cmAddExecutableCommand.h, + cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmAddTestCommand.cxx, cmAddTestCommand.h, + cmAuxSourceDirectoryCommand.cxx, cmAuxSourceDirectoryCommand.h, + cmBuildCommand.cxx, cmBuildCommand.h, cmBuildNameCommand.cxx, + cmBuildNameCommand.h, cmCableClassSetCommand.cxx, + cmCableClassSetCommand.h, cmCableWrapTclCommand.cxx, + cmCableWrapTclCommand.h, cmCommand.h, cmConfigureFileCommand.cxx, + cmConfigureFileCommand.h, cmConfigureGccXmlCommand.cxx, + cmConfigureGccXmlCommand.h, cmElseCommand.cxx, cmElseCommand.h, + cmEnableTestingCommand.h, cmEndForEachCommand.cxx, + cmEndForEachCommand.h, cmEndIfCommand.cxx, cmEndIfCommand.h, + cmExecProgramCommand.cxx, cmExecProgramCommand.h, + cmFindFileCommand.cxx, cmFindFileCommand.h, + cmFindLibraryCommand.cxx, cmFindLibraryCommand.h, + cmFindPathCommand.cxx, cmFindPathCommand.h, + cmFindProgramCommand.cxx, cmFindProgramCommand.h, + cmForEachCommand.cxx, cmForEachCommand.h, + cmGetFilenameComponentCommand.cxx, + cmGetFilenameComponentCommand.h, cmIfCommand.cxx, cmIfCommand.h, + cmIncludeCommand.cxx, cmIncludeCommand.h, + cmIncludeDirectoryCommand.cxx, cmIncludeDirectoryCommand.h, + cmIncludeRegularExpressionCommand.cxx, + cmIncludeRegularExpressionCommand.h, cmInstallFilesCommand.cxx, + cmInstallFilesCommand.h, cmInstallProgramsCommand.cxx, + cmInstallProgramsCommand.h, cmInstallTargetsCommand.cxx, + cmInstallTargetsCommand.h, cmLibraryCommand.h, + cmLinkDirectoriesCommand.cxx, cmLinkDirectoriesCommand.h, + cmLinkLibrariesCommand.cxx, cmLinkLibrariesCommand.h, + cmLoadCacheCommand.cxx, cmLoadCacheCommand.h, + cmMakeDirectoryCommand.cxx, cmMakeDirectoryCommand.h, + cmMakefile.cxx, cmMakefile.h, cmMessageCommand.cxx, + cmMessageCommand.h, cmOptionCommand.cxx, cmOptionCommand.h, + cmOutputRequiredFilesCommand.cxx, cmOutputRequiredFilesCommand.h, + cmProjectCommand.cxx, cmProjectCommand.h, cmSetCommand.cxx, + cmSetCommand.h, cmSiteNameCommand.cxx, cmSiteNameCommand.h, + cmSourceFilesCommand.cxx, cmSourceFilesCommand.h, + cmSourceFilesRemoveCommand.cxx, cmSourceFilesRemoveCommand.h, + cmSourceGroupCommand.cxx, cmSourceGroupCommand.h, + cmSubdirCommand.cxx, cmSubdirCommand.h, + cmSubdirDependsCommand.cxx, cmSubdirDependsCommand.h, + cmTargetLinkLibrariesCommand.cxx, cmTargetLinkLibrariesCommand.h, + cmUseMangledMesaCommand.cxx, cmUseMangledMesaCommand.h, + cmUtilitySourceCommand.cxx, cmUtilitySourceCommand.h, + cmVTKWrapJavaCommand.cxx, cmVTKWrapJavaCommand.h, + cmVTKWrapPythonCommand.cxx, cmVTKWrapPythonCommand.h, + cmVTKWrapTclCommand.cxx, cmVTKWrapTclCommand.h, + cmWrapExcludeFilesCommand.cxx, cmWrapExcludeFilesCommand.h: ENH: + change InitialPass to take a const reference to the argument + string, to avoid changes to the file cache + +2001-09-20 13:44 martink + + * Source/cmMakefile.cxx: BUG: make a copy of the arguments before + passing them to Execute + +2001-09-20 12:00 martink + + * CMake.rtf: fixed some problems + +2001-09-20 10:57 king + + * Modules/FindCABLE.cmake: ENH: Added support for finding cable + when it is built in a configuration subdirectory by MSVC. + +2001-09-20 10:54 king + + * Source/: cmFindFileCommand.cxx, cmFindLibraryCommand.cxx, + cmFindPathCommand.cxx, cmFindProgramCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h: ENH: Added + cmSystemTools::GlobDirs function to allow wildcards in paths + (like /foo/bar/*). + +2001-09-20 10:53 king + + * Source/cmSetCommand.cxx: ENH: Added extra newline in an error + message to improve readability. + +2001-09-20 10:27 martink + + * Modules/FindVTK.cmake: minor changes + +2001-09-20 09:11 martink + + * Modules/: FindVTK.cmake, UseVTKIncludes.cmake, + UseVTKLibraries.cmake: removed some VTK stuff + +2001-09-19 14:52 martink + + * Modules/: FindVTK.cmake, UseVTKIncludes.cmake, + UseVTKLibraries.cmake: updated to how FindVTK works + +2001-09-19 14:20 martink + + * Source/cmMakefile.h: version rev to 95 + +2001-09-19 14:20 martink + + * Source/cmMakefile.h: version rev to 94 + +2001-09-18 10:45 hoffman + + * ChangeLog.txt: [no log message] + +2001-09-18 10:38 will + + * CMake.pdf: ENH:Updated documentation + +2001-09-17 17:40 hoffman + + * CMake.rtf: ENH: update for new version + +2001-09-17 16:36 hoffman + + * Source/: cmUseMangledMesaCommand.cxx, cmUseMangledMesaCommand.h: + ENH: change to take a path as input + +2001-09-17 16:34 hoffman + + * Source/cmFindFileCommand.cxx: BUG: fix return when file is not + found + +2001-09-17 14:16 king + + * Modules/FindCABLE.cmake: ENH: Added find support for looking at + Cable's build directory if the user sets the CABLE_BUILD_DIR + cache entry. + +2001-09-17 13:58 hoffman + + * Source/: cmCommands.cxx, cmUseMangledMesaCommand.cxx, + cmUseMangledMesaCommand.h: ENH: add Use mangled mesa command + +2001-09-17 12:07 blezek + + * Modules/Dart.cmake: ENH: NightlyCoverage got lost + +2001-09-14 16:36 martink + + * Source/: cmVTKWrapTclCommand.cxx, cmVTKWrapJavaCommand.cxx, + cmVTKWrapPythonCommand.cxx: now uses five argument version of + wrap commands + +2001-09-14 16:26 hoffman + + * Source/: cmMakefileGenerator.cxx, cmStandardIncludes.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h, + cmakemain.cxx, MFCDialog/CMakeSetupDialog.cpp: remove memory + leaks + +2001-09-14 15:18 hoffman + + * Source/cmDSPWriter.cxx: fix error in cygwin + +2001-09-14 15:18 hoffman + + * Source/cmListFileCache.h: initialize class + +2001-09-14 15:18 hoffman + + * Source/: cmMakefileGenerator.cxx, cmMakefileGenerator.h: add + support for clean up + +2001-09-14 10:14 martink + + * Templates/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, UtilityHeader.dsptemplate, + staticLibHeader.dsptemplate: made Debug the default configuration + +2001-09-14 08:34 barre + + * Modules/FindTCL.cmake: move cygtclsh80 to the end of list, + otherwise it might be found while the non-cygwin wish8x.exe will + be found too. If wish8x.exe is found, then the non-cygwin + tclsh8x.exe must be found too. + +2001-09-13 14:45 martink + + * Modules/Dart.cmake: added back some targets for UNIX + +2001-09-13 11:27 martink + + * Source/: cmSystemTools.h, cmSystemTools.cxx: added shortest ext + function + +2001-09-12 17:09 lorensen + + * Source/cmSiteNameCommand.cxx: ENH: drop the case of the site + name. This makes it consistent with Dart's usage. + +2001-09-12 17:09 lorensen + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added LowerCase + method. + +2001-09-12 15:18 king + + * Source/: cmCableWrapTclCommand.cxx, cmCableWrapTclCommand.h: ENH: + Added parsing of gccxml flags into separate arguments for setting + the custom command. This is necessary since the custom command + now takes a vector of individual command line options instead of + a single string. + +2001-09-11 21:46 biddi + + * Templates/CMakeWindowsBorlandConfig.cmake: ERR: Spelling + +2001-09-11 21:45 biddi + + * Source/: cmBorlandMakefileGenerator.cpp, + cmBorlandMakefileGenerator.h, cmSystemTools.cxx: ERR: Change to + EscapeSpaces forces rework of Borland generator Add clause + to prevent adding quotes when they're already present, then stuff + them onto all lib paths to prevent forward slashes causing + trouble. + +2001-09-11 20:00 biddi + + * Source/: cmBorlandMakefileGenerator.cpp, + cmBorlandMakefileGenerator.h: ENH: Major fix of the Borland + generator which addresses the problem of libraries with + dependencies (other libraries) not linking when required. + Dependency checking required the full path to be supplied to each + file when they're not in the current directory (very tedious). + All seems to be working nicely now. + +2001-09-11 19:58 biddi + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Add a findfile + routine (as opposed to find executable or library) which doesn't + add any extensions - Borland make needs full paths to certain + dependencies otherwise linking doesn't work properly + (dependencies aren't checked) + +2001-09-11 15:17 martink + + * Source/ctest.cxx: updated testing + +2001-09-11 14:58 martink + + * Source/cmDSPWriter.cxx: include fixes + +2001-09-11 14:43 martink + + * Modules/Dart.cmake: reduced the number of targets + +2001-09-11 14:42 martink + + * Source/cmaketest.cxx: bug in testing code + +2001-09-11 13:44 hoffman + + * Source/cmBorlandMakefileGenerator.cpp: BUG: fix build with + non-borland compiler + +2001-09-11 13:40 martink + + * Source/cmDSPWriter.cxx: fix for include paths + +2001-09-10 15:11 martink + + * Modules/Dart.cmake: reduced targets and merged tclsh commands + +2001-09-10 15:11 martink + + * Source/: cmCableWrapTclCommand.cxx, cmDSPWriter.cxx, + cmMakefile.cxx, cmMakefile.h, cmSystemTools.cxx, + cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx: various windows fixes + +2001-09-10 11:03 berk + + * Source/CMakeLists.txt: Typo in link command. + +2001-09-08 12:09 biddi + + * Source/: cmBorlandMakefileGenerator.cpp, + cmBorlandMakefileGenerator.h: ERR: Forgot to put back a backslash + +2001-09-08 10:02 biddi + + * Source/cmBorlandMakefileGenerator.cpp: ERR: LINK_DIR must ot have + backslah at end. Fix plus cleanup of some code. + +2001-09-07 10:08 martink + + * Source/cmDirectory.cxx: fixed bug in mismatched directory opens + consuming file descriptors + +2001-09-07 09:40 king + + * Source/cmConfigureGccXmlCommand.cxx: ENH: Removed addition of + compiler support directory include option since the + find_*_options scripts now include it automatically. + +2001-09-06 18:02 hoffman + + * Source/: CMakeLists.txt, cmBorlandMakefileGenerator.cpp: BUG: + clean up lib and exe output paths + +2001-09-06 17:28 hoffman + + * Source/CMakeLib.dsp, Source/cmBorlandMakefileGenerator.cpp, + Source/cmBorlandMakefileGenerator.h, + Source/cmMSProjectGenerator.h, Source/cmMakefileGenerator.cxx, + Source/cmMakefileGenerator.h, Source/cmUnixMakefileGenerator.h, + Source/cmake.cxx, Source/cmake.h, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/CMakeSetupDialog.h, Source/MFCDialog/resource.h, + Templates/CMakeWindowsBorlandConfig.cmake: ENH: integrate borland + support + +2001-09-04 16:29 biddi + + * Source/cmBorlandMakefileGenerator.cpp, + Source/cmBorlandMakefileGenerator.h, + Templates/CMakeWindowsBorlandConfig.cmake: NEW: First check in of + Borland Makefile Generator and template stuff + +2001-09-04 16:07 hoffman + + * Source/: cmAddCustomTargetCommand.cxx, cmCustomCommand.cxx, + cmCustomCommand.h, cmDSPWriter.cxx, cmDSWWriter.cxx, + cmMakefile.cxx, cmMakefile.h, cmSourceGroup.cxx, cmSourceGroup.h, + cmVTKWrapJavaCommand.cxx: ENH: separate command from its + arguments in the custom command. This allows the generator on + windows to change the slashes for just the command + +2001-09-01 17:13 biddi + + * Source/cmBuildCommand.cxx: ENH: Added a clause for Borland + compiler compatibility + +2001-09-01 16:56 barre + + * Source/cmDSPWriter.cxx: Convert path format back to Windows + slashes syntax. Mandatory for Win98 build. + +2001-09-01 16:55 barre + + * Source/cmSystemTools.cxx: fix comment pb + +2001-09-01 16:13 biddi + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Windows and + Unix slash conversions return a char*, clean function seperated + from Convert function + +2001-09-01 16:12 biddi + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: ExpandVariables + functions return a char * for convenience + +2001-08-31 21:10 starreveld + + * Source/cmUnixMakefileGenerator.cxx: + + ENH: Generate compile lines for .m, .M, and .mm files (ObjC and + ObjC++) + +2001-08-30 17:32 hoffman + + * Source/cmMakefile.cxx: BUG: fix incorrect deletion of function + blockers + +2001-08-30 16:19 martink + + * Source/: cmMakefile.h: version rev + +2001-08-30 16:06 hoffman + + * ChangeLog, ChangeLog.txt: [no log message] + +2001-08-30 15:54 hoffman + + * ChangeLog.txt: ENH: add autogenerated changelog + +2001-08-29 17:21 hoffman + + * Source/cmake.cxx: opps + +2001-08-29 17:11 king + + * Source/cmConfigureGccXmlCommand.cxx: BUG: GCCXML_FLAGS found from + find_gcc_options or find_mpro_options should have the trailing + newline stripped from the string. + +2001-08-29 17:10 king + + * Source/cmCableWrapTclCommand.cxx: ENH: Updated generated + dependencies since cable's installation directory now uses + separate CxxTypes and WrapTclFacility subdirecories for includes. + +2001-08-29 17:08 king + + * Modules/FindCABLE.cmake: ENH: Updated library finding code to + handle new cable installation directory structure. It now uses + separate directories for CxxTypes and WrapTclFacility headers. + +2001-08-29 16:42 martink + + * Source/: ctest.cxx, ctest.h: added regexp option + +2001-08-29 16:13 hoffman + + * Source/: CMakeLib.dsp, DumpDocumentation.dsp, cmake.dsp, + ctest.dsp: remove /ZI + +2001-08-29 15:57 hoffman + + * Source/: cmake.cxx, cmaketest.cxx: ENH: run cmake from cmaketest + +2001-08-29 10:47 king + + * Source/cmMakefile.h: ENH: Added a const version of + GetLinkLibraries(). + +2001-08-29 10:46 king + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + ENH: Proper dependencies between shared libraries now exist in + the generated makefiles. If a shared library links to another, + the other will be built before the link is attempted. + +2001-08-29 09:57 hoffman + + * Source/cmMakefile.cxx: clean up a bit + +2001-08-29 09:44 berk + + * Source/cmSystemTools.cxx: BUG: fix out of bounds read on string + in mkdir + +2001-08-29 09:26 perera + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Special value + IGNORE behaves like NOTFOUND, but makes FindLibrary, etc, _not_ + search for a library, etc. + +2001-08-28 18:35 hoffman + + * Source/cmListFileCache.h: remove warning + +2001-08-28 18:28 hoffman + + * Source/: CMakeLib.dsp, CMakeLists.txt, CMakeSetup.dsw, + Makefile.in, cmListFileCache.cxx, cmListFileCache.h, + cmMakefile.cxx: ENH: add caching for the input CMakeList.txt + files, 2X speed up + +2001-08-28 18:27 hoffman + + * Source/cmDSPWriter.cxx: BUG: put spaces in /I paths + +2001-08-28 18:02 starreveld + + * Source/: cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmMakefile.cxx, cmMakefile.h, cmTarget.h, + cmUnixMakefileGenerator.cxx: + + Changes to allow MODULE type target for a shared library + +2001-08-28 18:01 starreveld + + * Templates/: CMakeSystemConfig.cmake.in, configure, configure.in: + + Changes to allow a MODULE target for a shared library. + +2001-08-28 16:04 martink + + * CMakeLists.txt, Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: minor fix + +2001-08-28 14:55 martink + + * Source/: cmDSPWriter.cxx, cmSystemTools.cxx, cmSystemTools.h: + better network build support + +2001-08-28 13:49 starreveld + + * Templates/: configure, configure.in: + + Added support for Darwin (OSX) + +2001-08-28 10:57 hoffman + + * Modules/FindTCL.cmake: ENH: support for cygwin + +2001-08-28 10:57 hoffman + + * Source/: cmSystemTools.cxx, cmUnixMakefileGenerator.cxx: BUG: fix + for broken apple mkdir and general clean up of MakeDirectory + command + +2001-08-27 15:48 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: fix switch projects + not saving cache correctly + +2001-08-27 15:19 martink + + * Source/cmDSPWriter.cxx: support for network path link libraries + +2001-08-27 14:44 hoffman + + * Source/: cmMakefile.cxx, cmMakefile.h, + cmUnixMakefileGenerator.cxx: ENH: change expand variables to use + GetDefinition + +2001-08-27 14:38 hoffman + + * configure, configure.in: [no log message] + +2001-08-27 14:35 hoffman + + * configure, configure.in, Source/Makefile.in: ENH: clean up sgi + build and use non-broken autoconf + +2001-08-27 12:24 hoffman + + * configure, Source/cmUnixMakefileGenerator.cxx, + Templates/configure: [no log message] + +2001-08-27 11:03 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: set CXX and CC when + running configure from cmake + +2001-08-27 10:23 martink + + * Source/ctest.cxx: better formatted output + +2001-08-27 10:22 hoffman + + * Templates/: configure, configure.in: ENH: use ANSI_CXXFLAGS for + testing compiler + +2001-08-27 10:11 hoffman + + * CMakeLists.txt, Templates/CMakeSystemConfig.cmake.in, + Templates/configure, Templates/configure.in, + Tests/Complex/CMakeLists.txt, + Tests/ComplexOneConfig/CMakeLists.txt, + Tests/ComplexRelativePaths/CMakeLists.txt: ENH: sgi -LANG:std + +2001-08-27 10:07 berk + + * Source/CMakeSetup.dsw: ken added dependancy to build everything + +2001-08-25 12:31 martink + + * Source/: CMakeSetup.dsw, ctest.dsp: added ctest to win32 + +2001-08-24 17:50 hoffman + + * Templates/: configure, configure.in: [no log message] + +2001-08-24 17:30 hoffman + + * Templates/: CMakeSystemConfig.cmake.in, configure, configure.in: + ENH: more sgi -LANG stuff + +2001-08-24 17:25 hoffman + + * configure, configure.in: auto detect lang:std: + +2001-08-24 17:17 hoffman + + * Source/Makefile.in: ENH: build for sgi CC out of box + +2001-08-24 17:12 hoffman + + * configure, configure.in: auto detect lang:std: + +2001-08-24 17:00 hoffman + + * configure, configure.in: auto detect lang:std: + +2001-08-24 16:51 hoffman + + * configure, configure.in: auto detect lang:std: + +2001-08-24 15:54 hoffman + + * Tests/: Complex/cmTestConfigure.h.in, + Complex/Executable/complex.cxx, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/Executable/complex.cxx, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/Executable/complex.cxx: BUG: fix complex + test for old compilers + +2001-08-24 15:45 hoffman + + * configure, configure.in, Tests/Complex/cmTestConfigure.h.in, + Tests/ComplexOneConfig/cmTestConfigure.h.in, + Tests/ComplexRelativePaths/cmTestConfigure.h.in: BUG: fix for SGI + Native compiler + +2001-08-24 15:41 hoffman + + * Templates/: configure, configure.in: BUG: fix flag for building + shared on HP + +2001-08-23 18:30 perera + + * Source/: cmAddTestCommand.cxx, cmAddTestCommand.h: BUG: ADD_TEST + now only does stuff if ENABLE_TESTING has been run. + +2001-08-23 18:02 hoffman + + * Source/: cmMakefile.cxx, cmSystemTools.cxx, cmSystemTools.h: ENH: + improve coverage + +2001-08-23 17:40 hoffman + + * Source/: CMakeLists.txt, cmDumpDocumentation.cxx, cmMakefile.cxx, + cmMakefile.h: ENH: add dump documentation test + +2001-08-23 16:28 king + + * Source/: cmCableWrapTclCommand.cxx, cmCableWrapTclCommand.h: ENH: + Each cmCableWrapTclCommand instance now uses a single + cmMakeDepend object for dependencies for all the gccxml input + files it generates. This should significantly improve generation + time. + +2001-08-23 16:24 hoffman + + * Source/cmaketest.cxx: BUG: run make all on unix not make exename + +2001-08-23 16:00 hoffman + + * Source/: CMakeLists.txt, cmStandardIncludes.h, cmaketest.cxx, + ctest.cxx: ENH: add more testing + +2001-08-23 13:57 hoffman + + * Tests/: Complex/CMakeLists.txt, Complex/VarTests.txt, + Complex/cmTestConfigure.h.in, Complex/simple.cxx, + Complex/Executable/CMakeLists.txt, + Complex/Executable/complex.cxx, Complex/Library/CMakeLists.txt, + Complex/Library/file2.cxx, Complex/Library/file2.h, + Complex/Library/sharedFile.cxx, Complex/Library/sharedFile.h, + Complex/Library/ExtraSources/file1.cxx, + Complex/Library/ExtraSources/file1.h, + ComplexOneConfig/CMakeLists.txt, ComplexOneConfig/VarTests.txt, + ComplexOneConfig/cmTestConfigure.h.in, + ComplexOneConfig/simple.cxx, + ComplexOneConfig/Executable/CMakeLists.txt, + ComplexOneConfig/Executable/complex.cxx, + ComplexOneConfig/Library/CMakeLists.txt, + ComplexOneConfig/Library/file2.cxx, + ComplexOneConfig/Library/file2.h, + ComplexOneConfig/Library/sharedFile.cxx, + ComplexOneConfig/Library/sharedFile.h, + ComplexOneConfig/Library/ExtraSources/file1.cxx, + ComplexOneConfig/Library/ExtraSources/file1.h, + ComplexRelativePaths/CMakeLists.txt, + ComplexRelativePaths/VarTests.txt, + ComplexRelativePaths/cmTestConfigure.h.in, + ComplexRelativePaths/simple.cxx, + ComplexRelativePaths/Executable/CMakeLists.txt, + ComplexRelativePaths/Executable/complex.cxx, + ComplexRelativePaths/Library/CMakeLists.txt, + ComplexRelativePaths/Library/file2.cxx, + ComplexRelativePaths/Library/file2.h, + ComplexRelativePaths/Library/sharedFile.cxx, + ComplexRelativePaths/Library/sharedFile.h, + ComplexRelativePaths/Library/ExtraSources/file1.cxx, + ComplexRelativePaths/Library/ExtraSources/file1.h: ENH: try to + get better test coverage + +2001-08-23 13:12 martink + + * Source/ctest.cxx: also check path for test executables + +2001-08-23 11:39 martink + + * Source/ctest.cxx: fixed format + +2001-08-23 11:32 martink + + * Source/cmUnixMakefileGenerator.cxx: better ctest support + +2001-08-23 11:12 martink + + * Source/: CMakeLists.txt, cmSystemTools.cxx, cmSystemTools.h, + cmUnixMakefileGenerator.cxx, ctest.cxx, ctest.h: added test + driver for make test target + +2001-08-22 16:33 martink + + * Source/cmDSPWriter.cxx: ENH: do not put a rule in to rebuild the + ALL_BUILD.dsp file, as it is not possible... + +2001-08-22 11:58 hoffman + + * Source/: cmCableClassSet.h, cmCableWrapTclCommand.cxx, + cmCacheManager.cxx, cmCacheManager.h, cmMakeDepend.h, + cmMakefile.h, cmSourceGroup.h, cmStandardIncludes.h, cmTarget.h, + cmUnixMakefileGenerator.cxx: ENH: change all maps of string to be + maps of cmStdString, to reduce symbol length in object files. + +2001-08-22 11:26 hoffman + + * Source/cmMakefile.h: BUG: shorten length of symbols + +2001-08-22 10:12 berk + + * Source/cmDSPWriter.cxx: OUTDIR->IntDir + +2001-08-22 08:21 hoffman + + * Source/MFCDialog/CMakeLists.txt: BUG: add missing + CMakeCommandLineInfo + +2001-08-21 17:41 barre + + * Source/MFCDialog/CMakeSetup.dsp: CMakeSetup now handles + command-line arguments (ex: /H=source_dir /B=build_dir) + +2001-08-21 17:38 barre + + * Source/MFCDialog/: CMakeSetup.cpp, CMakeSetupDialog.cpp, + CMakeSetupDialog.h, CMakeCommandLineInfo.cpp, + CMakeCommandLineInfo.h: CMakeSetup now handles command-line + arguments (ex: /H=source_dir /B=build_dir) + +2001-08-21 11:04 starreveld + + * Source/cmMakefile.cxx: + + Added support for .mm source files (ObjC++) + +2001-08-20 13:32 hoffman + + * Templates/: configure, configure.in: BUG: fix check for no std:: + +2001-08-20 09:23 hoffman + + * Source/cmSetCommand.cxx: BUG: cmSystemTools::CollapseFullPath is + a bad thing to call on the compiler which is a filepath + +2001-08-19 19:11 barre + + * Source/cmOptionCommand.cxx: Allow option value to be expanded + (thus, we can use the value of another option as default) + +2001-08-19 12:14 barre + + * Source/cmMakefile.cxx: gcc and MSVC clash on + basic_string::compare(), let's try substr() + +2001-08-19 07:36 barre + + * Source/cmSetCommand.cxx: If the value is a path, collapse it + (cleaner) + +2001-08-18 17:57 hoffman + + * Templates/: configure, configure.in: BUG: get the flags right + +2001-08-18 12:51 barre + + * Source/cmMakefile.cxx, Modules/FindDart.cmake: Support for + $ENV{VAR} syntax (lookup in the environment vars) + +2001-08-17 17:11 martink + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx: backwards MATCHES in + if and else statements + +2001-08-16 18:01 hoffman + + * Templates/configure: ENH: default for cygwin should be pthreads + +2001-08-16 17:42 hoffman + + * Templates/: CMakeSystemConfig.cmake.in, + CMakeWindowsSystemConfig.cmake, configure, configure.in: ENH: add + CMAKE_USE_WIN32_THREADS to the possible thread types + +2001-08-16 11:41 berk + + * Source/: cmCacheManager.cxx, cmCacheManager.h, + cmLoadCacheCommand.cxx, cmLoadCacheCommand.h: Adding new options + to LoadCache. + +2001-08-15 13:40 berk + + * Source/: cmCacheManager.cxx, cmCacheManager.h, + cmLoadCacheCommand.cxx: 1. Added EXCLUDE option to LOAD_CACHE. + 2. Entries brought in from another cache are now marked as + internal. + +2001-08-15 13:23 martink + + * Modules/FindDart.cmake: looks at same level + +2001-08-15 10:03 hoffman + + * Templates/: configure, configure.in: ENH: make pthreads the + default for cygwin + +2001-08-14 17:18 king + + * Source/: cmInstallFilesCommand.cxx, cmInstallFilesCommand.h, + cmInstallProgramsCommand.cxx, cmInstallProgramsCommand.h, + cmMakefile.cxx: ENH: Improved INSTALL_FILES and INSTALL_PROGRAMS + commands to allow each call to the command in a single directory + to specify a different install path. + +2001-08-13 16:04 martink + + * Modules/Dart.cmake: removed grep + +2001-08-10 15:52 martink + + * Source/: cmVTKWrapTclCommand.cxx, cmMakefile.h: now creates + output directories + +2001-08-09 15:35 hoffman + + * CMake.pdf: ENH: update pdf to rtf + +2001-08-09 15:23 hoffman + + * CMake.rtf: ENH: add some docs for sgi CC + +2001-08-09 14:58 berk + + * Source/: cmElseCommand.cxx, cmIfCommand.cxx: BUG: or and and were + inverted. + +2001-08-09 11:12 hoffman + + * ChangeLog: add generated ChangeLog file. Should be updated each + time a new version is made + +2001-08-09 11:08 martink + + * Source/: cmMakefile.h: updated version + +2001-08-09 11:07 martink + + * README: out of date + +2001-08-09 09:33 hoffman + + * Source/cmConfigure.cmake.h.in: BUG: add in for scope variable + +2001-08-08 14:25 martink + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cxx: ENH: update to + new style of cache access + +2001-08-08 13:14 hoffman + + * Source/: cmSiteNameCommand.cxx, cmUtilitySourceCommand.cxx: BUG: + can not Add a definition that you just got + +2001-08-08 11:54 hoffman + + * configure, configure.in, Source/cmBuildCommand.cxx, + Source/cmBuildNameCommand.cxx, Source/cmCableWrapTclCommand.cxx, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmConfigure.h.in, Source/cmConfigureGccXmlCommand.cxx, + Source/cmDSPWriter.cxx, Source/cmDSWWriter.cxx, + Source/cmFindFileCommand.cxx, Source/cmFindLibraryCommand.cxx, + Source/cmFindPathCommand.cxx, Source/cmFindProgramCommand.cxx, + Source/cmLinkLibrariesCommand.cxx, + Source/cmMSProjectGenerator.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmOptionCommand.cxx, + Source/cmProjectCommand.cxx, Source/cmSetCommand.cxx, + Source/cmSiteNameCommand.cxx, Source/cmStandardIncludes.h, + Source/cmSystemTools.cxx, Source/cmUnixMakefileGenerator.cxx, + Source/cmUtilitySourceCommand.cxx, + Source/cmVTKWrapJavaCommand.cxx, + Source/cmVTKWrapPythonCommand.cxx, + Source/cmVTKWrapTclCommand.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp, + Templates/CMakeSystemConfig.cmake.in, Templates/configure, + Templates/configure.in: ENH: big change, only allow commands + access to the cache via the cmMakefile class and GetDefinition, + also the cmMakefile is the only way for commands to add to the + cache. Also, some changes to configure.in that check for for + scoping + +2001-08-07 15:49 hoffman + + * Source/: cmStandardIncludes.h, cmSystemTools.cxx: ENH: compile + with broken 720 SGI C++ compiler + +2001-08-07 13:46 hoffman + + * Source/cmMakefile.cxx: ENH: html output for docs + +2001-08-07 13:15 hoffman + + * CMake.rtf: ENH: update documents with current commands and new + GUI + +2001-08-07 08:47 king + + * CMakeLists.txt: ERR: CMakeLogo.gif has been moved to the root + directory of the source so that the Web and Web/Art directories + are not needed here. + +2001-08-07 08:46 king + + * CMakeLogo.gif: ENH: CMakeLogo for Dart to use on testing web + page. + +2001-08-06 17:01 martink + + * Source/: cmElseCommand.cxx, cmElseCommand.h, cmIfCommand.cxx, + cmIfCommand.h: added new if commands + +2001-08-06 15:11 king + + * CMake.pdf, CMake.rtf: Re-adding doc files. They were + accidentally removed due to a symlink from the CMake/Web + directory when it was removed. + +2001-08-06 15:01 king + + * CMake.pdf, CMake.rtf: Removing Web directory from CMake. It is + moving to a separate, parallel CVS module called "CMakeWeb" + +2001-08-03 15:47 king + + * Source/: cmConfigureFileCommand.cxx, cmConfigureFileCommand.h: + ENH: Added 'IMMEDIATE' option to CONFIGURE_FILE command to force + file copy and configuration on the initial pass so that current + variable values are used. + +2001-08-02 17:27 king + + * Source/: cmCableWrapTclCommand.cxx, cmCableWrapTclCommand.h: ENH: + Added use of a class's tag to generate a better set of filenames + for its wrapper configuration, xml, and generated files. This + should also prevent half the classes from re-wrapping when a new + one is inserted in the middle. + +2001-08-02 14:42 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: Generated link line for + shared libraries had CMAKE_CXX_FLAGS instead of CMAKE_CXXFLAGS + (note underscore). + +2001-08-02 14:10 king + + * Source/cmMakefile.cxx: BUG: Fixed off-by-one error in + ExpandVariablesInString for case of $ or @ as last character of + string. + +2001-08-02 09:07 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: We don't want to output + -I/usr/include in the INCLUDE_FLAGS variable. This causes + problems with finding system headers in the wrong places for + certain standard library implementations. + +2001-08-01 16:14 king + + * Source/: cmCommands.cxx, cmMakefile.cxx, cmMakefile.h, + cmSubdirDependsCommand.cxx, cmSubdirDependsCommand.h, + cmUnixMakefileGenerator.cxx: ENH: Added SUBDIR_DEPENDS command + and corresponding support code. This command allows + specification that a set of subdirectories be built before a + particular directory. + +2001-08-01 16:13 king + + * Source/cmAddDefinitionsCommand.cxx: BUG: Needed to expand + variables of definitions. + +2001-08-01 16:12 king + + * Source/cmInstallFilesCommand.cxx: BUG: Need to expand variables + when a regular expression is specified. + +2001-08-01 16:11 king + + * Modules/FindCABLE.cmake: ENH: Support to find CABLE utility if it + is installed. + +2001-08-01 11:19 king + + * Modules/FindTCL.cmake: ENH: Added tk library names tk8.4 tk8.3 + tk8.2 and tk8.0 to correspond to tk84 tk83 tk82 and tk80. + TK_LIBRARY should now be found on more platforms. + +2001-07-31 11:29 king + + * Source/cmCommands.cxx, Source/cmDSPWriter.cxx, + Source/cmDSWWriter.cxx, Source/cmInstallFilesCommand.cxx, + Source/cmInstallProgramsCommand.cxx, + Source/cmInstallProgramsCommand.h, Source/cmMakefile.cxx, + Source/cmTarget.cxx, Source/cmTarget.h, + Source/cmUnixMakefileGenerator.cxx, Templates/CMakeLists.txt: + ENH: Added INSTALL_PROGRAMS command and corresponding support. + This involved splitting cmTarget::INSTALL into INSTALL_FILES and + INSTALL_PROGRAMS enum values. INSTALL_FILES no longer adds + execute permission. The INSTALL_PROGRAMS commnad takes either a + list of explicit names, or a regex. It will not expand source + lists like the INSTALL_FILES command will. + +2001-07-30 12:21 king + + * Source/cmCableClassSet.cxx: ERR: + ElementCombinationGenerator::ReplacePortion needs to be a friend + of ElementCombinationGenerator so that it can get access to + ElementCombinationGenerator::Substitution. Also fixed one minor + problem for HP build. + +2001-07-30 11:34 king + + * Source/: cmCableClassSet.cxx, cmCableWrapTclCommand.cxx, + cmDSPWriter.cxx, cmMakeDepend.cxx, cmMakefile.cxx, cmMakefile.h, + cmUnixMakefileGenerator.cxx: BUG: Changed include and link + directory paths in cmMakefile back to std::vector because there + is an order dependency. Only cmMakefile::AddIncludeDirectory and + cmMakefile::AddLinkDirectory should be called to add directories + to the paths. They make sure the paths are unique as they are + inserted. + +2001-07-30 07:18 scottim + + * Source/: cmCableClassSet.cxx, cmCableWrapTclCommand.cxx, + cmDSPWriter.cxx, cmMakeDepend.cxx, cmMakefile.cxx, cmMakefile.h, + cmUnixMakefileGenerator.cxx: Removed the Uniquification of the + include and link directory list in FinalPass, and achieved the + same effect by makein m_LinkDirectores and m_IncludeDirectories a + set rather than vector + +2001-07-27 16:29 hoffman + + * Source/cmMakefile.cxx: ENH: Re-implemented + ExpandVariablesInString to significantly improve performance. + +2001-07-27 13:06 scottim + + * Source/: cmMakefile.cxx, cmMakefile.h: MAkefile now strips + duplicate directores from the libraries and include paths + +2001-07-26 11:07 king + + * Source/: cmCableClassSet.cxx, cmCableClassSet.h, + cmCableClassSetCommand.cxx, cmCableWrapTclCommand.cxx: ENH: Added + cable class-set expansion and tagging for alternate name + generation. This should make the generated wrappers much easier + to setup and use. + +2001-07-26 10:18 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, PropertyList.cpp: ENH: + change the logic of disabling the ok button a bit + +2001-07-26 09:47 berk + + * CMakeLists.txt: ENH: Updated regexp for tracing dependencies in + FLTK dialog. + +2001-07-26 08:36 martink + + * Source/cmMakefile.h: fixed warnings + +2001-07-25 18:30 hoffman + + * Source/: cmMakefile.cxx, cmMakefile.h, cmake.cxx, cmake.h, + MFCDialog/CMakeDialog.h, MFCDialog/CMakeSetup.rc, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/CMakeSetupDialog.h, + MFCDialog/PropertyList.cpp, MFCDialog/PropertyList.h, + MFCDialog/resource.h: ENH: rework GUI with configure/OK/Cancel + +2001-07-25 16:53 martink + + * Source/: cmCommands.cxx, cmFunctionBlocker.h, cmIfCommand.cxx, + cmIfCommand.h, cmMakefile.cxx, cmMakefile.h: added for each + command + +2001-07-25 16:52 martink + + * Source/: cmEndForEachCommand.cxx, cmEndForEachCommand.h, + cmForEachCommand.cxx, cmForEachCommand.h: new commands + +2001-07-25 09:40 berk + + * Source/cmCacheManager.cxx: Removing trailing spaces after cache + entry value. + +2001-07-24 16:46 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, PropertyList.cpp, + PropertyList.h, resource.h: BUG: fix on scroll with buttons + +2001-07-24 16:16 king + + * Source/cmDSPWriter.cxx: BUG: Fixed dependency generation to work + for when there are many, many dependencies. Output is now easier + to ready anyway because each dependency is on its own line. + +2001-07-23 14:43 king + + * Source/: cmConfigureGccXmlCommand.cxx, + cmConfigureGccXmlCommand.h: BUG: CompilerIsMipsPro needs to + redirect stderr to stdout so that the test output can be checked. + +2001-07-23 11:54 king + + * Source/: cmConfigureGccXmlCommand.cxx, + cmConfigureGccXmlCommand.h: ENH: Added support for UNIX + compilers. GCC and MIPSpro are supported. + +2001-07-23 11:53 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added support + for non-verbose mode output from running a command. This can be + used when it is expected that the command may fail. + +2001-07-23 11:07 king + + * Source/: cmCommands.cxx, cmConfigureGccXmlCommand.cxx, + cmConfigureGccXmlCommand.h: ENH: Added CONFIGURE_GCCXML command + to do hard work of configuring GCCXML's flags for the current + compiler. Currently only implemented correctly for Visual C++ in + Windows. + +2001-07-23 11:06 king + + * Modules/FindGCCXML.cmake: ENH: Module to find and configure + GCCXML and GCCXML_FLAGS. + +2001-07-20 11:41 millerjv + + * Modules/Dart.cmake: ENH: Added Purify targets + +2001-07-20 09:20 millerjv + + * Modules/Dart.cmake: ENH: Added purify command. + +2001-07-20 04:56 scottim + + * Templates/DLLHeader.dsptemplate: adding what I think is a missing + /pdbtype:sept + +2001-07-19 14:31 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cxx, CMakeSetupGUI.fl, + CMakeSetupGUI.h, CMakeSetupGUIImplementation.cxx, + CMakeSetupGUIImplementation.h, FLTKDialog.cxx: ENH: Save and Load + of recent Source and Binary directories added. + +2001-07-18 16:45 martink + + * Source/cmMakefile.h: updated version + +2001-07-18 11:40 martink + + * Source/cmSystemTools.cxx: limit library search to appropriate + extensions + +2001-07-18 10:17 hoffman + + * Modules/Dart.cmake: BUG: enable testing even if not tcl found + +2001-07-17 15:41 king + + * Source/cmCableWrapTclCommand.cxx: ENH: Added generation of + dependencies on the CMake-generated input to gcc-xml so that + re-generation of wrappers will occur if a header changes. + +2001-07-17 15:41 king + + * Source/cmMakeDepend.cxx: BUG: Need to expand variables in search + paths in case it hasn't been done yet by the makefile. + +2001-07-17 15:09 king + + * Source/: cmMakeDepend.cxx, cmMakeDepend.h, + cmOutputRequiredFilesCommand.cxx, cmUnixMakefileGenerator.cxx: + ENH: Hacked together a new implementation of the dependency + generator code. This should support finding dependencies for + individual files without doing them for the entire makefile. Use + cmMakeDepend::FindDependencies() to do this. + +2001-07-17 09:54 king + + * Modules/CMakeLists.txt, Modules/FindDart.cmake, + Modules/FindJNI.cmake, Modules/FindPythonLibs.cmake, + Modules/FindTCL.cmake, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Templates/configure, + Templates/configure.in: ENH: Added support for using + backslash-style escaping in CMakeLists.txt file arguments. This + allows double quotes to be used in arguments. + +2001-07-16 18:40 perera + + * Source/: cmAuxSourceDirectoryCommand.cxx, cmMakefile.cxx, + cmMakefile.h, cmSourceFile.cxx, cmSourceFile.h, + cmSourceFilesCommand.cxx, cmSourceFilesRemoveCommand.cxx, + cmTarget.cxx: ENH: Source and header file extensions are in + variables in cmMakefile. AUX_SOURCE_DIRECTORY will only add + files that have a "source" extension. + +2001-07-16 15:19 ibanez + + * Modules/: FindGLU.cmake, FindGLUT.cmake: Search path for + OpenGL related libraries + +2001-07-16 10:17 hoffman + + * Templates/: CMakeSystemConfig.cmake.in, configure, configure.in: + ENH: add a variable for CMAKE_COMPILER_IS_GNUCXX + +2001-07-16 10:15 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: make sure cache is + cleared + +2001-07-16 10:14 hoffman + + * Source/: cmMakefile.cxx, cmSourceFile.cxx: ENH: add support for + mac osx + +2001-07-15 21:10 barre + + * Modules/FindPythonLibs.cmake: update include/lib path to Python + (Linux) + +2001-07-12 19:48 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, CMakeSetupDialog.h, + PropertyList.cpp, PropertyList.h: ENH: add a check to avoid + quitting before rebuilding + +2001-07-11 13:30 martink + + * Source/: cmMakefile.h: version num + +2001-07-11 13:06 martink + + * Source/MFCDialog/CMakeSetupDialog.cpp: fixed up resizing info + +2001-07-11 12:12 hoffman + + * Source/cmSystemTools.cxx: BUG: make sure find program does not + find directories + +2001-07-10 17:13 hoffman + + * Source/: cmIncludeCommand.cxx, cmLoadCacheCommand.cxx: BUG: + remove iostream.h includes + +2001-07-10 16:20 berk + + * Source/cmUnixMakefileGenerator.cxx: Unnecessary variable + +2001-07-10 16:20 berk + + * Source/cmMakefile.cxx: Better error checking. + +2001-07-10 14:29 hoffman + + * Templates/: configure, configure.in: BUG: fix excape of * for + cmake + +2001-07-10 13:57 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: When splitting a full + path library into separate -L and -l parts, the -l part may not + have a "lib" prefix on cygwin. + +2001-07-10 12:09 king + + * Source/cmake.cxx: ENH: Removing automatic setting of + BUILD_SHARED_LIBS. Projects that support this should explicitly + declare it with the OPTION command, or set its libraries to + shared or static directly on each ADD_LIBRARY command. + +2001-07-10 11:56 berk + + * Modules/Dart.cmake: Checking if tclshcommand is defined before + running it. + +2001-07-10 11:46 king + + * Source/cmUnixMakefileGenerator.cxx: ENH: Added + -D(library_name)_EXPORTS to build rules for sources that are + going to be linked into a shared library. This allows dllexport + setup for DLL building on cygwin. It may also come in handy in + unix in the future. This corresponds to the same definition + added by the dll dsp template in windows. + +2001-07-10 09:23 martink + + * Source/cmBuildNameCommand.cxx: changes to better handle old + values or hand set values + +2001-07-09 12:46 nobody + + * DartConfig.cmake: Disabled doxygen and gnats + +2001-07-08 17:54 perera + + * Source/cmUnixMakefileGenerator.cxx: BUG: library extension goes + after library name, not before + +2001-07-06 14:41 hoffman + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + ENH: some clean up, and better checking to see if we are building + cmake + +2001-07-06 14:11 hoffman + + * configure, configure.in: ENH: run make depend + +2001-07-06 12:46 will + + * Source/cmCommand.h: ERR:Spelling mistake + +2001-07-06 09:22 king + + * Source/cmStandardIncludes.h: ENH: Warning 4503 disable for MSVC. + +2001-07-05 18:15 hoffman + + * Templates/: configure, configure.in: BUG: fix flags for cygwin + and shared builds + +2001-07-05 17:52 hoffman + + * Source/cmSystemTools.cxx: ENH: add better error output + +2001-07-05 12:03 hoffman + + * Source/cmUnixMakefileGenerator.cxx, Templates/configure, + Templates/configure.in: BUG: fix solaris problems in install and + ar + +2001-07-03 10:53 king + + * Source/cmCableWrapTclCommand.cxx: ENH: Removed -fsyntax-only flag + from call to gcc-xml. It should be part of GCCXML_FLAGS. + +2001-07-03 05:27 scottim + + * Source/cmDSPWriter.cxx, Templates/CMakeWindowsSystemConfig.cmake, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/UtilityHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: Renamed the + ReleaseWithDebugInfo Build configuration to RelWithDebInfo, + because msdev does simple matching on build target, and + specifying either Release or Debug builds would also build + ReleaseWithDebugInfo + +2001-07-02 16:52 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: When outputting relative + path of .o, the relative path of the source file must also be + written (not full path). + +2001-07-02 16:30 millerjv + + * Source/cmBuildNameCommand.cxx: FIX: BuildName removes path to + compiler and converts any illegal characters + +2001-07-02 15:57 king + + * Source/: cmCommands.cxx, cmBuildSharedLibrariesCommand.cxx, + cmBuildSharedLibrariesCommand.h: ENH: Removed deprecated command + completely. + +2001-07-02 15:38 king + + * Source/: cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmDSPWriter.cxx, cmDSPWriter.h, cmDSWWriter.cxx, cmMakefile.cxx, + cmMakefile.h, cmTarget.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: ENH: Added support for selection of + static/shared build on a per-library basis. + +2001-07-02 14:38 martink + + * Source/cmake.cxx: better arg support + +2001-07-02 14:03 berk + + * Source/: cmVTKWrapJavaCommand.h, cmVTKWrapPythonCommand.h, + cmVTKWrapTclCommand.h: Should not be inherited. + +2001-07-02 14:03 berk + + * Source/: cmVTKWrapJavaCommand.cxx, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx: Better error checking. + +2001-07-02 14:02 berk + + * Source/cmConfigureFileCommand.cxx: Wrong place for fout + +2001-06-29 16:46 martink + + * Source/cmConfigureFileCommand.cxx: better configure file command + +2001-06-29 16:06 nobody + + * CMakeLists.txt: added logo + +2001-06-29 09:53 martink + + * Source/cmaketest.cxx: minor compile fix + +2001-06-29 09:30 hoffman + + * Source/cmUnixMakefileGenerator.cxx, + Templates/CMakeSystemConfig.cmake.in, Templates/configure, + Templates/configure.in: BUG: break up CMAKE_AR into program and + ARGS + +2001-06-28 17:45 hoffman + + * configure, configure.in, Source/cmSystemTools.cxx, + Source/cmUnixMakefileGenerator.cxx, Templates/configure, + Templates/configure.in: ENH: various fixes to allow bootstrap on + sunos with CC + +2001-06-28 16:45 hoffman + + * Source/cmEnableTestingCommand.cxx: fixed Dart issue + +2001-06-28 15:27 hoffman + + * Templates/CMakeSystemConfig.cmake.in: set values in the cache not + just the current makefile + +2001-06-28 15:11 berk + + * Source/FLTKDialog/FLTKPropertyItemRow.cxx: Undefined symbol + +2001-06-28 15:08 berk + + * Source/cmUnixMakefileGenerator.cxx: Special rules for + out-of-package source files. + +2001-06-28 14:53 hoffman + + * Source/FLTKDialog/: CMakeLists.txt, + CMakeSetupGUIImplementation.cxx, FLTKPropertyItemRow.cxx, + FLTKPropertyList.cxx: BUG: fix for sgi compiler + +2001-06-28 14:38 hoffman + + * Templates/: configure, configure.in: BUG: pass flags to compiler + during configure + +2001-06-28 14:27 hoffman + + * Templates/: configure, configure.in: BUG: pass flags to compiler + during configure + +2001-06-28 14:01 hoffman + + * Source/cmSourceFilesCommand.cxx: BUG: find files in + subdirectories + +2001-06-28 11:42 hoffman + + * Source/cmStandardIncludes.h: fix for scope on hp + +2001-06-28 11:40 hoffman + + * Source/cmSystemTools.cxx: BUG: check size of path error, HP + gcount problem + +2001-06-27 17:19 berk + + * Source/cmSourceFilesCommand.cxx: Added variable expansion. + +2001-06-27 16:18 martink + + * Source/cmMakefile.h: updated version to 0.3 + +2001-06-27 16:17 martink + + * Source/cmMakefile.h: updated version to 0.2 + +2001-06-27 16:14 martink + + * Source/cmUnixMakefileGenerator.cxx: ENH: fix install when + executable and lib path set + +2001-06-27 15:42 hoffman + + * configure, configure.in, Source/CMakeLists.txt, + Source/cmSystemTools.cxx, Source/cmUnixMakefileGenerator.cxx, + Source/cmake.cxx, Templates/install-sh: ENH: fix install for + cygwin, build cmake from configure + +2001-06-27 15:13 king + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + BUG: Check for building shared libraries should read from the + make file's setting, not directly from the cache. + +2001-06-27 15:09 king + + * Source/cmDSPWriter.cxx: BUG: Check for building shared libraries + should read from makefile's setting, not directly from the cache. + +2001-06-27 13:16 martink + + * CMake.rtf: updated for 0.2 + +2001-06-27 13:12 martink + + * Source/: cmLinkLibrariesCommand.h, cmSubdirCommand.h: + documentation change + +2001-06-27 12:09 perera + + * Source/cmUnixMakefileGenerator.cxx: ENH: Use ${MAKE} instead of + make for dependent library rules + +2001-06-27 11:49 martink + + * Source/cmCommands.cxx: alphabetized + +2001-06-27 11:35 martink + + * Source/cmake.cxx: added help options + +2001-06-27 09:17 martink + + * Source/: cmSystemTools.cxx, cmaketest.cxx, cmaketest.h.in: minor + fixes to testing + +2001-06-27 09:16 martink + + * Source/CMakeLists.txt: mod to the testing + +2001-06-27 09:16 martink + + * CMakeLists.txt: added dependencies for testing + +2001-06-26 16:44 hoffman + + * Source/MFCDialog/PropertyList.cpp: ENH: convert to unix slashes + on browse, remove font and color junk + +2001-06-26 16:19 hoffman + + * Source/cmake.dsp: BUG: change to dos mode + +2001-06-26 13:41 martink + + * Modules/Dart.cmake: update for CMake changes + +2001-06-26 13:23 martink + + * Source/: CMakeLists.txt, cmAddCustomTargetCommand.cxx, + cmAddCustomTargetCommand.h, cmBuildCommand.cxx, + MFCDialog/CMakeLists.txt: modified how paths are escaped, added + depends + +2001-06-26 10:01 martink + + * Source/: cmAddDependenciesCommand.cxx, + cmAddDependenciesCommand.h, cmCommands.cxx: added add + dependencies command + +2001-06-26 09:55 martink + + * Source/MFCDialog/: CMakeSetup.rc, CMakeSetupDialog.cpp, + CMakeSetupDialog.h: better GUI resize and combo box fixes + +2001-06-25 13:34 millerjv + + * Source/: cmBuildNameCommand.cxx, cmSiteNameCommand.cxx: FIX: + added AddDefinition() to store site name and build name in + makefile. Also stripped white space from the result of + hostname. + +2001-06-25 10:59 martink + + * CMakeLists.txt: made cmake write its execs into CMake/Source + +2001-06-22 14:53 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: shared libraries should + not depend on other shared libraries, they get relinked too + often. + +2001-06-22 14:53 hoffman + + * Source/cmMakefile.cxx: ENH: put back stdio.h to get sprintf + +2001-06-22 14:23 biddi + + * Source/cmCommands.cxx: ERR: Serious problems with my CVS. How did + this get committed? + +2001-06-22 12:19 king + + * Source/cmSystemTools.cxx: BUG: Wrote correct implementation of + cmCopyFile. + +2001-06-22 12:18 king + + * Source/cmake.cxx: BUG: Fixed generation of cMakeRoot in one case. + +2001-06-22 12:18 king + + * Source/cmStandardIncludes.h: ENH: Added string.h include. + +2001-06-22 12:17 king + + * Source/cmMakefile.cxx: ERR: Removed stray standard header + include. They should be added to cmStandardIncludes.h + +2001-06-22 12:17 king + + * Source/cmIncludeCommand.cxx: BUG: Added missing newline in error + message. + +2001-06-22 11:32 martink + + * Source/cmMakefile.cxx: removed stricmp + +2001-06-22 11:28 martink + + * Source/CMakeLists.txt: escape quotes on cmaketest.h.in + +2001-06-22 11:15 martink + + * Source/: cmConfigureFileCommand.cxx, cmConfigureFileCommand.h: + added escape quotes option + +2001-06-22 11:14 martink + + * Source/: cmMakefile.cxx, cmMakefile.h: added escape quotes option + in replace strings + +2001-06-22 10:21 martink + + * Source/: cmSystemTools.cxx, cmSystemTools.h: added escape quote + method + +2001-06-22 09:58 biddi + + * Source/: cmCommands.cxx, cmSourceFilesRemoveCommand.cxx, + cmSourceFilesRemoveCommand.h: ENH: Added new command + SOURCE_FILES_REMOVE which can be used to take files out of the + build. Especially useful when certain compilers choke on the odd + file. + +2001-06-22 09:47 biddi + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: Added + RemoveSource(...) to complement AddSource. New command + SOURCE_FILES_REMOVE uses it and can be used to take files out of + the build + +2001-06-22 09:27 martink + + * Source/cmaketest.cxx: namespace issues + +2001-06-21 17:55 hoffman + + * Source/cmDSWWriter.cxx: allow no name project + +2001-06-21 17:53 martink + + * Source/CMakeLists.txt: better testing + +2001-06-21 17:53 martink + + * Source/: cmSystemTools.cxx, cmSystemTools.h: adde changeDirectory + +2001-06-21 17:52 martink + + * Source/: cmaketest.cxx, cmaketest.h.in: new test driver + +2001-06-21 17:52 martink + + * Tests/Simple/: CMakeLists.txt, simple.cxx: new tests + +2001-06-21 17:41 hoffman + + * Source/cmake.cxx: BUG: fix for unix + +2001-06-21 17:25 hoffman + + * Source/cmake.cxx: ENH: clean up + +2001-06-21 17:20 hoffman + + * Source/cmake.cxx: ENH: look in the PREFIX dir for the modules + +2001-06-21 16:34 hoffman + + * Source/: cmConfigure.cmake.h.in, cmake.cxx: ENH: better ability + to find cmake program + +2001-06-21 15:57 martink + + * Templates/CMakeLists.txt: minor install fix + +2001-06-21 15:54 martink + + * Source/cmUnixMakefileGenerator.cxx: better permission handling + +2001-06-21 15:02 king + + * Source/: cmIncludeRegularExpressionCommand.cxx, + cmIncludeRegularExpressionCommand.h, cmMakeDepend.cxx, + cmMakeDepend.h, cmMakefile.cxx, cmMakefile.h, + cmUnixMakefileGenerator.cxx: ENH: Extended + INCLUDE_REGULAR_EXPRESSION to allow selective complaints about + missing dependencies. + +2001-06-21 15:02 king + + * Source/CMakeLists.txt: ENH: Added BUILD_FLTK_GUI option (defaults + to ON). + +2001-06-21 13:48 hoffman + + * Source/: CMakeLists.txt, cmSourceFile.cxx, cmStandardIncludes.h: + BUG: fix bootstrap build on unix + +2001-06-21 12:43 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + FLTKPropertyItemRow.cxx, FLTKPropertyItemRow.h: ENH: Update the + cacheManager from the GUI after each callback. Only load + the cache from disk if the binary path has changed. + +2001-06-21 12:31 hoffman + + * CMakeLists.txt: ENH: add include regexp + +2001-06-21 12:19 martink + + * Source/FLTKDialog/CMakeLists.txt: added install target + +2001-06-21 12:01 martink + + * CMakeLists.txt, Makefile.in, configure, configure.in, install-sh, + Modules/CMakeLists.txt, Source/cmInstallFilesCommand.cxx, + Source/cmInstallFilesCommand.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmake.cxx, + Templates/CMakeLists.txt, Templates/install-sh: better install + support + +2001-06-21 10:58 hoffman + + * Templates/CMakeSystemConfig.cmake.in: BUG: remove quotes + +2001-06-21 10:36 hoffman + + * Source/: cmIncludeCommand.cxx, cmIncludeCommand.h: ENH: add + optional include and only allow one file per INCLUDE + +2001-06-21 10:17 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cxx: ENH: INTERNAL + properties are not display any longer in the GUI + +2001-06-21 09:56 ibanez + + * Source/FLTKDialog/FLTKPropertyItemRow.cxx: ENH: The cache is not + saved now after every modification of the GUI + +2001-06-21 09:45 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + FLTKPropertyItemRow.cxx: ENH: Clearing and redrawing the property + list after a build to load the new cache. + +2001-06-21 08:41 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + FLTKPropertyItemRow.cxx, FLTKPropertyItemRow.h, + FLTKPropertyList.cxx, FLTKPropertyList.h: ENH: PropertyRows have + now a reference to CMakeSetupGUI and save the cache at each + callback action + +2001-06-21 07:37 ibanez + + * Source/FLTKDialog/: CMakeLists.txt, CMakeSetupGUI.cxx, + CMakeSetupGUI.fl, CMakeSetupGUI.h, + CMakeSetupGUIImplementation.cxx, FLTKPropertyItemRow.cxx, + FLTKPropertyItemRow.h: ENH: PropertyNameButton was removed. + PropertyRow manages all the callbacks now + +2001-06-21 07:35 ibanez + + * Source/FLTKDialog/: FLTKPropertyNameButtonWithHelp.h, + FLTKPropertyNameButtonWithHelp.cxx: Removed: now the help string + is managed by the PropertyRow class + +2001-06-20 17:03 hoffman + + * Source/: FLTKDialog/CMakeLists.txt, MFCDialog/CMakeLists.txt: + ENH: add CMakeSetup as a target + +2001-06-20 16:49 hoffman + + * Source/CMakeLists.txt, Source/cmDSPWriter.cxx, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: ENH: boot strap mfc gui + and support for MFC + +2001-06-20 13:56 hoffman + + * Source/CMakeLists.txt, Source/cmConfigure.cmake.h.in, + Source/cmSourceFile.cxx, Source/cmStandardIncludes.h, + Source/cmake.cxx, Source/FLTKDialog/CMakeLists.txt, + Source/FLTKDialog/CMakeSetupGUIImplementation.cxx, + Templates/CMakeSystemConfig.cmake.in, Templates/configure, + Templates/configure.in: ENH: fix cmake so it can boot strap + itself better + +2001-06-19 16:29 hoffman + + * Modules/FindFLTK.cmake: [no log message] + +2001-06-19 16:10 hoffman + + * Source/: CMakeLists.txt, FLTKDialog/CMakeLists.txt, + FLTKDialog/CMakeSetupGUIImplementation.cxx, + FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx: ENH: build fltk + cmake on unix with bootstrap + +2001-06-19 16:05 king + + * Makefile.in: BUG: Exectuable installation must set permissions to + 755 in case installer has a umask like 007. + +2001-06-19 15:50 king + + * Source/: cmBuildSharedLibrariesCommand.cxx, cmake.cxx: ENH: CMake + now always adds the BUILD_SHARED_LIBS cache entry. The + BUILD_SHARED_LIBRARIES command that used to be used is now + deprecated. + +2001-06-19 15:49 hoffman + + * Source/FLTKDialog/CMakeLists.txt: ENH: add bootstrap support for + building fltk + +2001-06-19 15:33 hoffman + + * Source/: CMakeLists.txt, FLTKDialog/CMakeSetupGUI.cxx, + MFCDialog/CMakeSetupDialog.cpp: ENH: add bootstrap support for + building fltk + +2001-06-19 14:32 hoffman + + * Source/MFCDialog/: CMakeDialog.h, CMakeSetup.rc, + CMakeSetupDialog.cpp, CMakeSetupDialog.h, resource.h: ENH: add + resize ability to dialog and fix tab stop orders + +2001-06-19 12:03 king + + * Source/: cmCableCloseNamespaceCommand.cxx, + cmCableCloseNamespaceCommand.h, cmCableCommand.cxx, + cmCableCommand.h, cmCableData.cxx, cmCableData.h, + cmCableDefineSetCommand.cxx, cmCableDefineSetCommand.h, + cmCableInstantiateClassCommand.cxx, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCableOpenNamespaceCommand.cxx, + cmCableOpenNamespaceCommand.h, cmCablePackageCommand.cxx, + cmCablePackageCommand.h, cmCablePackageEntryCommand.cxx, + cmCablePackageEntryCommand.h, cmCableSourceFilesCommand.cxx, + cmCableSourceFilesCommand.h, cmCableWrapCommand.cxx, + cmCableWrapCommand.h, cmCommands.cxx: ENH: Removing old-style + cable commands related to the instantiation functionality which + has now been removed from cable. + +2001-06-19 12:01 king + + * Source/cmOutputRequiredFilesCommand.cxx: ERR: Removed unused + variable. + +2001-06-19 07:41 millerjv + + * Source/: cmAddTestCommand.cxx, cmEnableTestingCommand.cxx: ENH: + Changed generated filename to DartTestfile.txt + +2001-06-18 17:26 hoffman + + * Source/cmSystemTools.cxx: BUG: use pclose not fclose + +2001-06-18 16:54 perera + + * Source/cmLinkLibrariesCommand.cxx: ENH: LINK_LIBRARIES(abc) will + automatically add the path to abc to the link directories, if the + path is known. + +2001-06-18 15:35 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: remove unused + +2001-06-18 15:32 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: create directories in + the right place + +2001-06-18 15:31 hoffman + + * Source/cmake.cxx: ENH: move EXECUTABLE_OUTPUT_PATH and + LIBRARY_OUTPUT_PATH initial creation to after the CMakeLists.txt + files have been parsed + +2001-06-18 13:16 martink + + * Modules/Dart.cmake: out of source dart support + +2001-06-15 17:57 hoffman + + * Source/cmUnixMakefileGenerator.cxx: ENH: do not add anything from + the current directory to the depends + +2001-06-15 10:35 perera + + * Source/cmUnixMakefileGenerator.cxx: BUG: fixed so that empty + library paths are ignored + +2001-06-15 07:51 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + CMakeSetupGUIImplementation.h, FLTKDialog.cxx, + FLTKPropertyNameButtonWithHelp.cxx: ENH: Absolute path to cmake + resolved + +2001-06-15 07:49 ibanez + + * Source/FLTKDialog/Makefile.in: ENH: Getting headers and libs for + FLTK and OpenGL + +2001-06-14 17:06 biddi + + * Source/cmSourceFile.cxx: ERR: allow *.cpp as well as *.cxx etc + etc + +2001-06-14 14:32 berk + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + FLTKPropertyItemRow.cxx, FLTKPropertyItemRow.h, + FLTKPropertyList.cxx, FLTKPropertyNameButtonWithHelp.cxx, + FLTKPropertyNameButtonWithHelp.h: Include directory names are + Case sensitive in Unix. + +2001-06-14 11:45 martink + + * Source/CMakeLib.dsp: added make depend on win32 + +2001-06-14 10:19 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: fix it so that if a + Makefile is out of date for some reason, it is only built once, + it was doing it twice. + +2001-06-14 09:10 martink + + * CMakeLists.txt, DartConfig.cmake: modified testing + +2001-06-13 17:50 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: fix so it does not jump + into the current directory for inital target builds + +2001-06-13 17:03 hoffman + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h, + cmake.cxx: ENH: fix EXECUTABLE_OUTPUT_PATH and + LIBRARY_OUTPUT_PATH for unix + +2001-06-13 16:15 martink + + * Modules/FindDart.cmake: used to find the dart testing system + +2001-06-13 14:49 martink + + * CMakeLists.txt: minor dart change + +2001-06-13 13:53 martink + + * Source/: cmTarget.cxx, cmTarget.h: duh + +2001-06-13 13:49 martink + + * CMakeLists.txt, Source/cmTarget.cxx, Source/cmTarget.h: minor cvs + web changeCMakeLists.txt + +2001-06-13 10:28 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cxx: ENH: Search + for cmake executable full path added (window/unix) + +2001-06-13 00:16 ibanez + + * Source/FLTKDialog/: FLTKPropertyItemRow.cxx, + FLTKPropertyItemRow.h, FLTKPropertyList.cxx, FLTKPropertyList.h, + FLTKPropertyNameButtonWithHelp.cxx, + FLTKPropertyNameButtonWithHelp.h: ENH: Added popup menu for + removing a property. Some style changes + +2001-06-12 18:44 ibanez + + * Source/FLTKDialog/: FLTKPropertyItemRow.cxx, + FLTKPropertyItemRow.h, Makefile.in: ENH: Added help blobs that + popup when the mouse is left on top of the property name + +2001-06-12 18:43 ibanez + + * Source/FLTKDialog/: FLTKPropertyNameButtonWithHelp.cxx, + FLTKPropertyNameButtonWithHelp.h: Class derived from Fl_Button + with added help blobs + +2001-06-12 14:15 perera + + * Source/cmUnixMakefileGenerator.cxx, Templates/configure, + Templates/configure.in: BUG: SHLIB_LINK was being used when + linking static executables. Missing comma in RUNTIME_FLAG for + IRIX. ENH: User supplied SHLIB_CFLAGS (-fPIC, etc) will override + configure detected flags + +2001-06-12 13:30 martink + + * CMakeLists.txt, Source/CMakeLists.txt: support testing + +2001-06-12 12:22 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: CMake's configure needs + to run with the current directory as the project's binary + directory. + +2001-06-12 12:20 king + + * Source/FLTKDialog/: CMakeSetupGUI.h, + CMakeSetupGUIImplementation.cxx, CMakeSetupGUIImplementation.h: + ERR: Needed virtual destructor to correspond to virtual + functions. Also added several std:: qualifiers to string. + +2001-06-12 11:55 martink + + * Source/: cmakemain.cxx: cmake does not require two arguments + +2001-06-12 11:12 martink + + * Source/cmCommands.cxx: removed old added new + +2001-06-12 11:08 martink + + * Source/cmCommands.cxx: removed old added new + +2001-06-12 11:08 martink + + * Source/: cmOutputRequiredFilesCommand.cxx, + cmOutputRequiredFilesCommand.h: added new command + +2001-06-12 11:08 martink + + * Source/: cmConfigureFileNoAutoconf.cxx, + cmConfigureFileNoAutoconf.h, cmTestsCommand.cxx, + cmTestsCommand.h: removed old commands + +2001-06-12 10:59 king + + * Source/: cmMakeDepend.cxx, cmUnixMakefileGenerator.cxx: BUG: + Dependency hints must be removed by the makefile generator before + adding the dependencies generated by cmMakeDepend. + +2001-06-12 10:45 perera + + * Source/cmUnixMakefileGenerator.cxx: BUG: There was no dependency + for library targets on their required libraries. (Hopefully + there aren't any cyclic dependencies for libraries.) + CMAKE_SHLIB_LINK is now used for executable targets. + +2001-06-12 09:00 martink + + * Source/: cmMakeDepend.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h, cmMakeDepend.cxx: some cleanup to the + make depend process + +2001-06-12 08:34 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cxx, CMakeSetupGUI.fl, + CMakeSetupGUI.h, CMakeSetupGUIImplementation.cxx, + CMakeSetupGUIImplementation.h, FLTKPropertyItemRow.cxx: ENH: + Paths are now expanded for environment variables and made + absolute. The binary directory is created if it doesn't + exist. + +2001-06-12 08:31 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: WIN32_EXECUTABLE targets + were not being installed on unix properly. They are supposed to + be treated just like any other EXECUTABLE target. + +2001-06-12 08:30 king + + * Source/cmake.cxx: ERR: int -> unsigned int. + +2001-06-11 21:50 ibanez + + * Modules/FindFLTK.cmake: ENH: Added the path used in SuSe Linux + 7.1 + +2001-06-11 19:14 millerjv + + * Modules/Dart.cmake: Modified for new Dart source tree + +2001-06-11 18:00 martink + + * Source/: cmake.cxx, MFCDialog/CMakeSetupDialog.cpp: minor fix in + error checking + +2001-06-11 17:09 king + + * Modules/FindTCL.cmake: ENH: Added check for tcl8.4 (as against + tcl84), tcl8.3, tcl8.2, and tcl8.0 when finding the TCL_LIBRARY. + +2001-06-11 16:47 martink + + * Source/cmMakefile.h: added some const versions of get methods + +2001-06-11 15:31 millerjv + + * Modules/Testing.cmake: Changed Testing.cmake to Dart.cmake + +2001-06-11 15:28 millerjv + + * Modules/Dart.cmake: Rename Testing.cmake to Dart.cmake + +2001-06-11 10:18 king + + * Source/cmSystemTools.cxx: BUG: Fixed regular expression used to + match registry entries. The expression now matches everything + after a [HKEY until the first ']' is encountered. + +2001-06-11 02:10 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cxx: ENH: Waiting + cursor color were reversed + +2001-06-11 01:20 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + CMakeSetupGUIImplementation.h: ENH: CMake invokation is working. + +2001-06-10 21:36 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cxx, + CMakeSetupGUIImplementation.h: ENH: Cache saving added + +2001-06-10 18:27 ibanez + + * Source/cmSystemTools.cxx: DOC: Added a comment about the risk of + using tempnam in Unix, as opposed to using mkstemp. + +2001-06-10 18:25 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cpp, + CMakeSetupGUIImplementation.cpp, FLTKPropertyList.cpp, + FLTKDialog.cpp: .cpp renamed as .cxx + +2001-06-10 18:23 ibanez + + * Source/FLTKDialog/FLTKPropertyItemRow.h: Class to manage + every row in the GUI scrolling, corresponding to a + single property + +2001-06-10 18:23 ibanez + + * Source/FLTKDialog/Makefile.in: Template for the Makefile + +2001-06-10 18:21 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cxx, + CMakeSetupGUIImplementation.cxx, FLTKDialog.cxx, + FLTKPropertyItemRow.cxx, FLTKPropertyList.cxx: ENH: cpp renamed + cxx. Copy of data to and from the GUI is working + +2001-06-10 18:19 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.fl, CMakeSetupGUI.h, + CMakeSetupGUIImplementation.h, FLTKPropertyList.h: ENH: Added + Fl_Tiles as row for holding property data. Data to and from the + GUI is working + +2001-06-09 20:54 king + + * Source/cmCableWrapTclCommand.cxx: BUG: Changed custom command + generation to not use full path of output file from cable. + +2001-06-08 14:40 king + + * Source/: cmCableWrapTclCommand.cxx, cmCableWrapTclCommand.h: ENH: + Added proper request for/generation of CABLE, GCCXML, and + GCCXML_FLAGS cache entries. This also allowed the correct + generation of gccxml rules. + +2001-06-08 14:38 king + + * Source/cmDSPWriter.cxx: BUG: Removed generation of stray # Begin + Custom Build line. + +2001-06-08 00:18 perera + + * Source/cmUnixMakefileGenerator.cxx, + Templates/CMakeSystemConfig.cmake.in, Templates/configure, + Templates/configure.in: ENH: Runtime library search paths can be + added to the link lines for on shared builds. + +2001-06-07 16:48 martink + + * CMake.pdf.gz: replaced with pdf version + +2001-06-07 16:45 will + + * CMake.pdf: updated docs + +2001-06-07 16:34 martink + + * CMake.doc.gz: checked in rtf version + +2001-06-07 16:24 martink + + * CMake.rtf: updated docs + +2001-06-07 14:52 hoffman + + * Source/cmAddTestCommand.cxx, Source/cmCablePackageCommand.cxx, + Source/cmCableWrapTclCommand.cxx, Source/cmCacheManager.cxx, + Source/cmCacheManager.h, Source/cmDSWWriter.cxx, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmSystemTools.h, Source/cmTarget.h, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUtilitySourceCommand.cxx, + Source/cmVTKWrapJavaCommand.cxx, + Source/cmVTKWrapPythonCommand.cxx, + Source/cmVTKWrapTclCommand.cxx, Source/cmake.cxx, + Source/MFCDialog/CMakeSetupDialog.cpp, + Templates/CMakeWindowsSystemConfig.cmake: ENH: move utilities to + targets from makefile, and add versioning to cache + +2001-06-07 12:22 king + + * Source/cmEnableTestingCommand.cxx: BUG: ENABLE_TESTING command + may need to create output directory before writing the + CMakeTestfile into it since it is invoked before the makefile + generator runs. + +2001-06-07 11:36 scottim + + * Source/cmDSPWriter.cxx, Templates/CMakeWindowsSystemConfig.cmake, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/UtilityHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: adding a "Release with + debugging Info" build to CMake for NT + +2001-06-07 10:16 king + + * Source/cmCableWrapTclCommand.cxx: ERR: Fixed generation of source + name and directory for cmSourceFiles of generated Tcl wrapper + files. Changed extension of generated gcc-xml input c++ file to + be .cc so that GCC will recognize it, but MsDev will still allow + a custom command on it. + +2001-06-07 08:50 millerjv + + * Source/cmConfigureFileNoAutoconf.cxx: FIX: Chaned error message + to match command + +2001-06-06 16:45 king + + * Source/cmCableWrapTclCommand.cxx: ENH: Changed generation of + gccxml command to write out define and include flags explicitly + instead of using CMAKE_CXX_FLAGS and INCLUDE_FLAGS variables. + This should help it run when gccxml is not the compiler that will + build the generated wrappers. + +2001-06-06 16:14 millerjv + + * Source/cmAddTestCommand.cxx: FIX: InitialPass() seg fault on + std::copy and FinalPass() was not appending to the file + +2001-06-06 13:58 martink + + * Source/: cmAddTestCommand.cxx, cmAddTestCommand.h, + cmCommands.cxx, cmConfigureFileNoAutoconf.cxx, + cmEnableTestingCommand.cxx, cmEnableTestingCommand.h, + cmMakefile.cxx, cmMakefile.h, cmTestsCommand.cxx: added enable + testing deprecated some commands + +2001-06-06 13:55 hoffman + + * Source/CMakeLib.dsp: [no log message] + +2001-06-06 13:48 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPMakefile.h, cmDSPWriter.cxx, + cmDSPWriter.h, cmDSWMakefile.cxx, cmDSWMakefile.h, + cmDSWWriter.cxx, cmDSWWriter.h, cmMSProjectGenerator.cxx, + cmMSProjectGenerator.h: ENH: rename DSWMakefile and DSPMakefile + to DSWWriter and DSPWriter + +2001-06-06 13:19 hoffman + + * Source/: cmAbstractFilesCommand.cxx, cmAbstractFilesCommand.h, + cmAddCustomTargetCommand.cxx, cmAddCustomTargetCommand.h, + cmAddDefinitionsCommand.cxx, cmAddDefinitionsCommand.h, + cmAddExecutableCommand.cxx, cmAddExecutableCommand.h, + cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmAddTestCommand.cxx, cmAddTestCommand.h, + cmAuxSourceDirectoryCommand.cxx, cmAuxSourceDirectoryCommand.h, + cmBuildCommand.cxx, cmBuildCommand.h, cmBuildNameCommand.cxx, + cmBuildNameCommand.h, cmBuildSharedLibrariesCommand.cxx, + cmBuildSharedLibrariesCommand.h, cmCableClassSetCommand.cxx, + cmCableClassSetCommand.h, cmCableCloseNamespaceCommand.cxx, + cmCableCloseNamespaceCommand.h, cmCableDefineSetCommand.cxx, + cmCableDefineSetCommand.h, cmCableOpenNamespaceCommand.cxx, + cmCableOpenNamespaceCommand.h, cmCablePackageCommand.cxx, + cmCablePackageCommand.h, cmCablePackageEntryCommand.cxx, + cmCablePackageEntryCommand.h, cmCableWrapTclCommand.cxx, + cmCableWrapTclCommand.h, cmCommand.h, cmConfigureFileCommand.cxx, + cmConfigureFileCommand.h, cmConfigureFileNoAutoconf.cxx, + cmConfigureFileNoAutoconf.h, cmElseCommand.cxx, cmElseCommand.h, + cmEndIfCommand.cxx, cmEndIfCommand.h, cmExecProgramCommand.cxx, + cmExecProgramCommand.h, cmFindFileCommand.cxx, + cmFindFileCommand.h, cmFindLibraryCommand.cxx, + cmFindLibraryCommand.h, cmFindPathCommand.cxx, + cmFindPathCommand.h, cmFindProgramCommand.cxx, + cmFindProgramCommand.h, cmGetFilenameComponentCommand.cxx, + cmGetFilenameComponentCommand.h, cmIfCommand.cxx, cmIfCommand.h, + cmIncludeCommand.cxx, cmIncludeCommand.h, + cmIncludeDirectoryCommand.cxx, cmIncludeDirectoryCommand.h, + cmIncludeRegularExpressionCommand.cxx, + cmIncludeRegularExpressionCommand.h, cmInstallFilesCommand.cxx, + cmInstallFilesCommand.h, cmInstallTargetsCommand.cxx, + cmInstallTargetsCommand.h, cmLibraryCommand.h, + cmLinkDirectoriesCommand.cxx, cmLinkDirectoriesCommand.h, + cmLinkLibrariesCommand.cxx, cmLinkLibrariesCommand.h, + cmLoadCacheCommand.cxx, cmLoadCacheCommand.h, + cmMakeDirectoryCommand.cxx, cmMakeDirectoryCommand.h, + cmMakefile.cxx, cmMessageCommand.cxx, cmMessageCommand.h, + cmOptionCommand.cxx, cmOptionCommand.h, cmProjectCommand.cxx, + cmProjectCommand.h, cmSetCommand.cxx, cmSetCommand.h, + cmSiteNameCommand.cxx, cmSiteNameCommand.h, + cmSourceFilesCommand.cxx, cmSourceFilesCommand.h, + cmSourceGroupCommand.cxx, cmSourceGroupCommand.h, + cmSubdirCommand.cxx, cmSubdirCommand.h, + cmTargetLinkLibrariesCommand.cxx, cmTargetLinkLibrariesCommand.h, + cmTestsCommand.cxx, cmTestsCommand.h, cmUtilitySourceCommand.cxx, + cmUtilitySourceCommand.h, cmVTKWrapJavaCommand.cxx, + cmVTKWrapJavaCommand.h, cmVTKWrapPythonCommand.cxx, + cmVTKWrapPythonCommand.h, cmVTKWrapTclCommand.cxx, + cmVTKWrapTclCommand.h, cmWrapExcludeFilesCommand.cxx, + cmWrapExcludeFilesCommand.h: ENH: rename Invoke to InitialPass + +2001-06-06 13:18 hoffman + + * Source/MFCDialog/PropertyList.cpp: BUG: PATH options should not + remove the file part of the path... + +2001-06-06 11:02 millerjv + + * Source/cmMakefile.cxx: Change name of file created from Testfile + to CMakeTestfile.txt + +2001-06-06 09:44 martink + + * Source/cmSystemTools.cxx: better regexp for reg entries + +2001-06-06 09:43 martink + + * Modules/FindJNI.cmake: better tests + +2001-06-06 07:47 millerjv + + * Source/cmMakefile.cxx: FIX: forgot to close the files + +2001-06-05 22:54 perera + + * Source/cmUnixMakefileGenerator.cxx: ENH: Compress the library + search directories so that each appears only once. + +2001-06-05 20:34 millerjv + + * Source/cmCommands.cxx: ENH: Added AddTest command + +2001-06-05 20:34 millerjv + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: Added AddTest, and + GenerateTestfile routines + +2001-06-05 20:32 millerjv + + * Source/: cmAddTestCommand.cxx, cmAddTestCommand.h: New cmake + command to specify a single test + +2001-06-05 17:46 berk + + * Source/cmVTKWrapPythonCommand.cxx: Module name between Unix and + Windows got switched by mistake. + +2001-06-05 17:41 biddi + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Some tweaks, + hacks and #ifdefs required to compile cmake on Borland C++Builder + +2001-06-05 17:29 hoffman + + * Source/MFCDialog/CMakeSetup.dsp: ENH: add PathDialog + +2001-06-05 17:26 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, PathDialog.cpp, + PathDialog.h, PropertyList.cpp: ENH: add better path chooser + dialog + +2001-06-05 15:48 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: BUG: fix EXE and LIB + path problems + +2001-06-04 18:24 hoffman + + * Source/: cmDSWMakefile.cxx, cmDSWWriter.cxx: STYLE: line too long + +2001-06-04 18:24 hoffman + + * Source/cmMessageCommand.cxx: ENH: print all arguments + +2001-06-04 18:23 hoffman + + * Source/cmSetCommand.cxx: ENH: add better error checking + +2001-06-04 17:17 martink + + * Source/: cmFindIncludeCommand.cxx, cmFindIncludeCommand.h: + removed find include command + +2001-06-04 17:16 martink + + * Source/cmCommands.cxx: removed find include command finally added + message + +2001-06-04 16:55 martink + + * Source/: cmSystemTools.cxx, cmSystemTools.h: new message command + +2001-06-04 16:55 martink + + * Source/: cmMessageCommand.cxx, cmMessageCommand.h: new command + +2001-06-04 16:45 martink + + * Source/cmVTKWrapPythonCommand.cxx: unused variable + +2001-06-04 15:46 barre + + * Templates/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, UtilityHeader.dsptemplate, + staticLibHeader.dsptemplate: the "Release" target is not the + default. + +2001-06-04 11:34 hoffman + + * Source/: cmGeneratedFileStream.h, cmUnixMakefileGenerator.cxx: + ENH: try to better handle control-c during make Makefiles + +2001-06-04 10:18 hoffman + + * Source/: cmCacheManager.cxx, cmDSWMakefile.cxx, cmDSWWriter.cxx, + cmFunctionBlocker.h, cmMSProjectGenerator.cxx, cmMakefile.cxx, + cmMakefileGenerator.h, MFCDialog/CMakeSetupDialog.cpp: BUG: clean + up memory leaks. + +2001-06-01 13:54 martink + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: fix for network + includ paths + +2001-06-01 13:29 berk + + * Source/cmVTKWrapPythonCommand.cxx: Fixing the module name for + Unix. + +2001-05-31 15:48 hoffman + + * Source/: cmake.cxx, MFCDialog/CMakeSetupDialog.cpp: BUG: fix edit + of directories + +2001-05-31 14:15 berk + + * Source/cmVTKWrapPythonCommand.cxx: Should not use decl if not on + Windows. + +2001-05-30 15:56 hoffman + + * Source/cmakemain.cxx: BUG: add missing file + +2001-05-30 15:36 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: remove unused + includes + +2001-05-30 15:28 hoffman + + * Source/: CMakeLib.dsp, Makefile.in, cmMSProjectGenerator.cxx, + cmake.cxx, cmake.dsp, cmake.h, MFCDialog/CMakeSetup.dsp, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/CMakeSetupDialog.h: + ENH: change MFC gui to use cmake class + +2001-05-29 14:16 perera + + * Source/cmUnixMakefileGenerator.cxx: BUG: Now only one makefile + rule is generated per depenency. This eliminates a number of + warnings. + +2001-05-25 17:19 geoff + + * Source/cmSetCommand.cxx: bug meaning that set(a b) just set a to + "" and not to b + +2001-05-25 15:33 king + + * Source/cmSystemTools.cxx: BUG: Fixed stupid error in the hack I + just checked in. + +2001-05-25 15:32 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: WIN32 executable target + rules are now generated in unix the same as any other executable + (instead of not at all). + +2001-05-25 15:27 barre + + * Templates/CMakeWindowsSystemConfig.cmake: better help + +2001-05-25 15:27 barre + + * Source/MFCDialog/PropertyList.cpp: display the property name in + the help box + +2001-05-25 14:31 king + + * Source/cmSystemTools.cxx: BUG: Added hack to + cmSystemTools::GetPath to make its algorithm correctly parse off + the last entry of the system PATH environment variable. + +2001-05-25 14:27 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: Fixed logic that splits + a full path library link into the -L and -l pieces to not write + out a -l by itself if the file regular expression does not match. + +2001-05-25 07:31 millerjv + + * Modules/Testing.cmake: BUG: missing quote on a custom command + +2001-05-24 21:17 barre + + * Source/: cmSystemTools.cxx, cmSystemTools.h: New functions used + to extract the components of a full filename. + +2001-05-24 21:14 barre + + * Source/cmFindPathCommand.cxx: The path found is now collapsed + (cleaner). + +2001-05-24 21:13 barre + + * Source/: cmGetFilenameComponentCommand.cxx, + cmGetFilenameComponentCommand.h, cmCommands.cxx: Welcome to + cmGetFilenameComponentCommand ("Get a specific component of a + full filename") + +2001-05-24 21:12 barre + + * Source/CMakeLib.dsp: Welcome to cmGetFilenameComponentCommand + +2001-05-24 21:11 barre + + * Modules/FindTCL.cmake: Try to find tclsh or wish and use that + path to find the include or lib directory. TK_INTERNAL_PATH is + searched too (path to tkWinInt.h) + +2001-05-24 19:17 barre + + * Source/cmSystemTools.cxx: optimize ConvertToUnixSlashes a little + bit, and use it in MakeDirectory (code was duplicated) + +2001-05-24 17:51 king + + * Templates/CMakeSystemConfig.cmake.in: ERR: VAR type entry missing + after CACHE for CMAKE_TEMPLATE_FLAGS. + +2001-05-24 14:59 barre + + * Source/: cmVTKWrapTclCommand.cxx, cmVTKWrapTclCommand.h: updated + to handle Tk commands compiled/linked separately. Useful for VTK + Tk widgets for example. + +2001-05-24 13:45 millerjv + + * Modules/Testing.cmake: Project independent setting for testing + +2001-05-24 13:40 barre + + * Source/: cmSystemTools.cxx, cmSystemTools.h: new Capitalized + function. Will be used in the VTK Tcl wrapper for example (in a + more portable way). + +2001-05-24 13:35 hoffman + + * Source/MFCDialog/CMakeSetup.rc: [no log message] + +2001-05-24 12:57 hoffman + + * Modules/FindOpenGL.cmake, Source/cmSetCommand.cxx, + Source/cmSetCommand.h, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Templates/CMakeSystemConfig.cmake.in, + Templates/CMakeWindowsSystemConfig.cmake: ENH: change the syntax + of the SET command, fix the combo box for larger strings + +2001-05-24 11:47 martink + + * Source/: cmMakefile.h, cmake.cxx, MFCDialog/CMakeSetup.rc, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/resource.h: added + version number + +2001-05-24 10:32 barre + + * Templates/DLLHeader.dsptemplate: removed hardcoded VTKDLL + +2001-05-24 10:00 barre + + * Templates/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, staticLibHeader.dsptemplate: slight + change in the order of the options (right-most takes precedence) + +2001-05-23 20:16 millerjv + + * Source/cmBuildCommand.cxx: Changed Windows build command to build + Release + +2001-05-23 18:31 barre + + * Templates/DLLHeader.dsptemplate: Intermediate Dir was wrong + +2001-05-23 18:22 barre + + * Templates/CMakeWindowsSystemConfig.cmake: /Gz => /GZ + +2001-05-23 18:19 barre + + * Templates/CMakeWindowsSystemConfig.cmake: removed /O2 from debug + +2001-05-23 17:19 hoffman + + * Source/cmDSPMakefile.cxx, Source/cmDSPWriter.cxx, + Templates/CMakeWindowsSystemConfig.cmake, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: ENH: create + CMAKE_CXX_FLAGS_[Buildtype] flags + +2001-05-23 16:33 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: add compute systeminfo + +2001-05-23 16:31 martink + + * Source/cmMSProjectGenerator.cxx: bug finding windows template + file + +2001-05-23 16:28 martink + + * Source/: cmSystemTools.cxx, cmake.cxx: command line fixes for + win32 + +2001-05-23 16:09 barre + + * Templates/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, UtilityHeader.dsptemplate, + staticLibHeader.dsptemplate: ReleaseMinSize => MinSizeRel + +2001-05-23 15:53 hoffman + + * Templates/DLLHeader.dsptemplate: BUG: remove vtkCommon + +2001-05-23 15:49 martink + + * Source/cmake.cxx: fixed quoted cmake + +2001-05-23 14:44 hoffman + + * Source/cmSystemTools.cxx: ENH: add better error message + +2001-05-23 14:33 geoff + + * Source/cmake.dsp: DSPs have to be binary + +2001-05-23 14:05 hoffman + + * Templates/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, UtilityHeader.dsptemplate, + staticLibHeader.dsptemplate: ENH: change Release Minsize to + MinSizeRel, add MinSizeRel to dll template + +2001-05-23 13:16 king + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: ENH: Added INSTALL + target to switch in OutputDSPFile. Also added a default that + prints out an error message so that anyone who adds a target + doesn't forget to update the switch. + +2001-05-23 12:02 martink + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx, cmDSWMakefile.cxx, + cmDSWWriter.cxx: install fixes for win32 + +2001-05-23 11:53 martink + + * Source/: cmMakefile.cxx, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: added install target support + +2001-05-23 11:34 ibanez + + * Modules/FindVTK.cmake: Module to search for VTK include and + library paths + +2001-05-23 11:29 martink + + * Source/: cmInstallFilesCommand.cxx, cmInstallFilesCommand.h, + cmInstallTargetsCommand.cxx, cmInstallTargetsCommand.h, + cmCommands.cxx, cmTarget.cxx, cmTarget.h: added install rules + +2001-05-23 11:27 martink + + * Templates/CMakeSystemConfig.cmake.in: added prefix to config + +2001-05-23 10:47 hoffman + + * Source/cmGeneratedFileStream.h: BUG: remove warning + +2001-05-23 10:47 hoffman + + * Source/cmake.dsp: BUG: fix output directory + +2001-05-23 10:01 martink + + * Source/cmProjectCommand.cxx: added PROJECT_SOURCE_DIR + +2001-05-23 09:35 hoffman + + * Source/cmTarget.cxx: ENH: allow duplicate libraries + +2001-05-22 20:45 barre + + * Templates/UtilityHeader.dsptemplate: Template now uses + EXECUTABLE_OUTPUT_PATH too. + +2001-05-22 20:44 barre + + * Templates/EXEWinHeader.dsptemplate: PROP BASE and PROP were + inverted + +2001-05-22 20:36 barre + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: Seems to me that + EXEWinHeader was not searched in the right place. + +2001-05-22 17:49 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: do not include /usr/lib + in -L + +2001-05-22 13:52 hoffman + + * Source/Makefile.in: fix CXXFLAGS + +2001-05-22 13:42 hoffman + + * Source/Makefile.in: [no log message] + +2001-05-22 13:40 hoffman + + * configure, configure.in: use cxxflags in test builds + +2001-05-22 13:22 hoffman + + * Source/Makefile.in, Source/cmUnixMakefileGenerator.cxx, + Templates/configure, Templates/configure.in: BUG: fix depends and + CXXFLAGS passing + +2001-05-22 12:38 barre + + * Source/cmDSPMakefile.cxx, Source/cmDSPWriter.cxx, + Templates/DLLHeader.dsptemplate, Templates/EXEHeader.dsptemplate, + Templates/EXEWinHeader.dsptemplate, + Templates/staticLibHeader.dsptemplate: fixed some of the + LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH problems. + +2001-05-22 11:15 martink + + * dummy.in: no longer used + +2001-05-22 10:43 ibanez + + * Source/FLTKDialog/FLTKDialog.dsp: ENH: PropertyList class added + +2001-05-22 10:43 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cpp, + CMakeSetupGUIImplementation.h: ENH: Added support for the + fltk::PropertyList class + +2001-05-22 10:42 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cpp, CMakeSetupGUI.fl, + CMakeSetupGUI.h: Added interactions with the PropertyList + class + +2001-05-22 10:41 ibanez + + * Source/FLTKDialog/: FLTKPropertyList.cpp, FLTKPropertyList.h: + Class to manage the list of properties displayed on the scroller + +2001-05-21 16:43 king + + * Makefile.in: ERR: Added missing @srcdir@ and modified install + expressions to include *.cmake* files instead of just *.cmake + files (for .in). + +2001-05-21 16:21 king + + * Source/cmCableWrapTclCommand.cxx: ENH: Converted to new Class and + Group tags in place of WrapperSet and Groups tags. + +2001-05-21 16:10 hoffman + + * Source/cmUnixMakefileGenerator.cxx, + Templates/CMakeSystemConfig.cmake.in: fix for hp x11 and gl + +2001-05-21 15:16 hoffman + + * Modules/FindOpenGL.cmake, Source/cmSystemTools.cxx: fix opengl on + hp + +2001-05-21 14:42 martink + + * Source/MFCDialog/: CMakeSetup.rc, res/CMakeSetupDialog.ico: icon + updates + +2001-05-21 14:36 martink + + * Source/MFCDialog/: CMakeSetup.rc, resource.h: new icon + +2001-05-21 14:17 hoffman + + * Source/cmake.cxx: BUG: remove declaration without variable + +2001-05-21 14:01 hoffman + + * configure, configure.in, Source/Makefile.in, + Source/cmBuildNameCommand.cxx, + Source/cmUnixMakefileGenerator.cxx, + Templates/CMakeSystemConfig.cmake.in: clean up for build on its + own + +2001-05-21 11:43 martink + + * Source/cmake.dsp: release fix + +2001-05-21 11:34 martink + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx, + CMakeSetupCMD.dsp: collapsed into cmake.cxx + +2001-05-21 11:32 martink + + * Source/cmake.dsp: new dsp + +2001-05-21 11:13 martink + + * Source/cmake.cxx: bug fix in finding CMAKE_ROOT + +2001-05-21 11:10 martink + + * Makefile.in: added install target + +2001-05-21 10:47 hoffman + + * Source/: cmBuildNameCommand.cxx, cmSetCommand.cxx, + MFCDialog/CMakeDialog.h, MFCDialog/CMakeSetup.rc, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/CMakeSetupDialog.h, + MFCDialog/resource.h: BUG: fix compiler name + +2001-05-21 09:50 martink + + * Source/: CMakeSetup.dsw, cmake.cxx, + MFCDialog/CMakeSetupDialog.cpp: updated for out of tree builds + +2001-05-21 09:32 martink + + * Makefile.in, configure, configure.in, install-sh: out of place + cmake + +2001-05-21 09:32 martink + + * CMakeSystemConfig.cmake.in, configure.in.sample, + Source/Makefile.in, Source/cmMakefile.cxx, + Source/cmUnixMakefileGenerator.cxx, Source/cmake.cxx: new out of + place builds + +2001-05-21 09:31 martink + + * Templates/: CMakeSystemConfig.cmake.in, configure, configure.in: + new structure + +2001-05-18 16:45 hoffman + + * CMakeSystemConfig.cmake.in, Source/cmUnixMakefileGenerator.cxx: + ENH: add support for X11 + +2001-05-18 16:30 martink + + * Source/cmUnixMakefileGenerator.cxx: duh + +2001-05-18 15:25 martink + + * Source/: cmake.cxx, cmake.h: new command + +2001-05-18 15:23 martink + + * Source/cmSystemTools.h: minor whitespace change + +2001-05-18 15:22 martink + + * Source/cmMSProjectGenerator.cxx: compiler fix + +2001-05-18 15:20 martink + + * Source/: cmMSProjectGenerator.cxx, cmMSProjectGenerator.h, + cmMakefileGenerator.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: changes for cmake to live outside of + the source tree + +2001-05-18 13:04 hoffman + + * CMakeSystemConfig.cmake.in, Source/cmSetCommand.cxx: ENH: allow + cache to override config file + +2001-05-18 11:48 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: fix link of executables + +2001-05-18 11:12 martink + + * Source/cmMakefileGenerator.h: added SetLocal method + +2001-05-18 11:09 martink + + * Source/: cmMSProjectGenerator.cxx, cmMSProjectGenerator.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: added + SetLocal method + +2001-05-18 10:15 hoffman + + * CMakeSystemConfig.cmake.in, Source/cmUnixMakefileGenerator.cxx: + BUG: quote the compiler and other options + +2001-05-17 17:43 hoffman + + * Source/: CMakeBuildTargets.cxx, Makefile.in: compile source dir + into cmake + +2001-05-17 15:48 will + + * Source/cmSystemTools.cxx: ERR:Bad #ifdef's + +2001-05-17 12:38 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.cpp: ENH: Added + Methods for loading the cache + +2001-05-17 12:37 ibanez + + * Source/FLTKDialog/FLTKDialog.cpp: ENH: Load the cache at start + +2001-05-17 12:36 ibanez + + * Source/FLTKDialog/CMakeSetupGUIImplementation.h: ENH: Added + methods to load the cache + +2001-05-17 12:36 martink + + * Source/: DLLFooter.dsptemplate, DLLHeader.dsptemplate, + EXEFooter.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, UtilityFooter.dsptemplate, + UtilityHeader.dsptemplate, staticLibFooter.dsptemplate, + staticLibHeader.dsptemplate: moved into Template directory + +2001-05-17 12:25 martink + + * CMakeMakefileTemplate.in, CMakeMaster.make.in, + CMakeRules.make.in, CMakeSimpleRules.make.in, + CMakeTargets.make.in, CMakeTopMakefileTemplate.in, + CMakeVariables.make.in, CMakeWindowsSystemConfig.cmake: no longer + used + +2001-05-17 12:14 martink + + * Source/CMakeBuildTargets.cxx: unix fix + +2001-05-17 12:08 martink + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx, + cmCablePackageCommand.cxx, cmDSPMakefile.cxx, cmDSPWriter.cxx, + cmMakefile.cxx, cmUnixMakefileGenerator.cxx, + MFCDialog/CMakeSetupDialog.cpp: half checked in changes for + CMAKE_ROOT + +2001-05-17 12:04 martink + + * Templates/: CMakeWindowsSystemConfig.cmake, + DLLFooter.dsptemplate, DLLHeader.dsptemplate, + EXEFooter.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, UtilityFooter.dsptemplate, + UtilityHeader.dsptemplate, staticLibFooter.dsptemplate, + staticLibHeader.dsptemplate: new directory + +2001-05-17 12:02 ibanez + + * Source/FLTKDialog/FLTKDialog.dsp: VC++ Project file to + construct the FLTK GUI for CMake + +2001-05-17 12:02 ibanez + + * Source/FLTKDialog/FLTKDialog.cpp: Main file that + instantiates the GUI class and run it. + +2001-05-17 12:01 ibanez + + * Source/FLTKDialog/: CMakeSetupGUIImplementation.cpp, + CMakeSetupGUIImplementation.h: Implementation of the virtual + Callbacks declared in the GUI + +2001-05-17 12:00 ibanez + + * Source/FLTKDialog/: CMakeSetupGUI.cpp, CMakeSetupGUI.h: File + generated by FLTK FLUID containing the implementation of the GUI + +2001-05-17 11:58 ibanez + + * Source/FLTKDialog/CMakeSetupGUI.fl: GUI description file + used by FLTK interactive tool : FLUID + +2001-05-17 11:44 hoffman + + * Source/: cmCableWrapTclCommand.cxx, cmConfigure.h.in, + cmGeneratedFileStream.h, cmStandardIncludes.h: BUG: fix to + compile on hp with aCC + +2001-05-17 11:22 king + + * Source/cmCableWrapTclCommand.cxx: Renamed gccxml input/output + files to drop _tcl qualification. + +2001-05-16 18:10 hoffman + + * CMakeSystemConfig.cmake.in: ENH: fix for sunCC + +2001-05-16 18:08 hoffman + + * Source/: cmCacheManager.cxx, cmUnixMakefileGenerator.cxx: BUG: + fix for sun compiler + +2001-05-16 17:43 king + + * Source/: cmCableClassSet.cxx, cmCableClassSet.h: ERR: Removed use + of member templates. + +2001-05-16 17:18 king + + * Source/cmUnixMakefileGenerator.cxx: ERR: int -> unsigned int + +2001-05-16 17:18 king + + * Source/cmGeneratedFileStream.h: ERR: const error fixed. + +2001-05-16 17:11 king + + * Source/CMakeLib.dsp: ENH: Added cmCableClassSet.cxx to build. + +2001-05-16 17:11 king + + * Source/cmGeneratedFileStream.h: ERR: Added is_open() check in + cmGeneratedFileStream::operator bool() so that implicit + conversion to bool is not used. + +2001-05-16 17:11 king + + * Source/cmCableClassSet.cxx: ERR: Removed dynamic_cast so that + RTTI isn't required. + +2001-05-16 16:41 king + + * Source/: Makefile.in, cmCableClassSet.cxx, cmCableClassSet.h, + cmCableClassSetCommand.cxx, cmCableClassSetCommand.h, + cmCableWrapTclCommand.cxx, cmCableWrapTclCommand.h, + cmCommands.cxx: ENH: Adding CABLE_CLASS_SET and CABLE_WRAP_TCL + commands. They cannot yet be used with the main branch of CABLE, + though. + +2001-05-16 16:40 king + + * Source/cmGeneratedFileStream.h: ENH: cmGeneratedFileStream class + added to simplify copy-if-different usage on generated files. + +2001-05-16 15:43 hoffman + + * configure.in.sample: [no log message] + +2001-05-16 15:15 hoffman + + * CMakeSystemConfig.cmake.in, Source/Makefile.in, + Source/cmBuildNameCommand.cxx, + Source/cmBuildSharedLibrariesCommand.cxx, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmDSPMakefile.cxx, Source/cmDSPWriter.cxx, + Source/cmMakeDepend.cxx, Source/cmMakefile.cxx, + Source/cmProjectCommand.cxx, Source/cmSetCommand.cxx, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, + Source/MFCDialog/CMakeSetupDialog.cpp: ENH: unify make process on + unix + +2001-05-16 09:19 king + + * Source/: cmData.h, cmMakefile.cxx, cmMakefile.h: ENH: Added + cmData and corresponding DataMap in cmMakefile to allow commands + to register arbitrary extra data with the makefile without + modifying the cmMakefile class definition. + +2001-05-15 13:14 martink + + * Source/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + EXEWinHeader.dsptemplate, cmDSPMakefile.cxx, cmDSPWriter.cxx, + staticLibHeader.dsptemplate: added output directory support + +2001-05-14 16:47 barre + + * Source/cmSystemTools.cxx: Changed separator between registry key + and its value. Change regexp for registry key. + +2001-05-14 16:46 barre + + * Modules/FindTCL.cmake: Changed separator between registry key and + its value. + +2001-05-14 10:36 hoffman + + * Source/cmSystemTools.cxx: ENH: put back lost changes from r1.38 + +2001-05-12 07:29 barre + + * Source/cmSystemTools.cxx: fix + => += bug reported by A. Perera + +2001-05-11 17:41 barre + + * Source/MFCDialog/res/CMakeSetupDialog.ico: I know, there are more + serious things to do :) A new icon. The previous one has not be + overwritten, it's in there too. + +2001-05-11 17:22 barre + + * Source/cmSystemTools.cxx: Extended the registry key regexp + +2001-05-11 17:11 barre + + * Modules/FindTCL.cmake: Add 8.4 and registry support + +2001-05-11 17:11 barre + + * Source/cmSystemTools.cxx: Add support for a specific value name + in a registry key + +2001-05-11 14:49 geoff + + * Source/cmCacheManager.cxx: Cache file is a bit prettier + +2001-05-11 14:39 hoffman + + * Source/: cmCableSourceFilesCommand.cxx, cmSystemTools.cxx, + cmUnixMakefileGenerator.cxx: BUG: fix find library for unix + +2001-05-11 13:58 barre + + * Modules/FindPythonLibs.cmake: NAMES syntax + +2001-05-11 13:52 martink + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: fix for expanding + library vars + +2001-05-11 12:30 barre + + * Source/cmFindLibraryCommand.cxx: Fix help string when NAMES was + used (forgot the case when there is no name) + +2001-05-11 12:13 barre + + * Source/cmFindLibraryCommand.cxx: Fix help string when NAMES was + used + +2001-05-11 11:45 king + + * Source/cmFindLibraryCommand.cxx: ERR: int -> unsigned int. + +2001-05-11 11:39 hoffman + + * CMakeVariables.make.in, Source/cmFindLibraryCommand.cxx: BUG: add + back thread library + +2001-05-11 11:07 martink + + * Source/cmFindProgramCommand.cxx: expands reg values + +2001-05-11 10:52 martink + + * Source/: EXEHeader.dsptemplate, cmAddExecutableCommand.cxx, + cmAddExecutableCommand.h, cmDSPMakefile.cxx, cmDSPMakefile.h, + cmDSPWriter.cxx, cmDSPWriter.h, cmFindLibraryCommand.cxx, + cmFindPathCommand.cxx, cmMakefile.cxx, cmMakefile.h, + cmSystemTools.cxx, cmSystemTools.h, cmUnixMakefileGenerator.cxx, + EXEWinHeader.dsptemplate: added registry entry support and + windows app support + +2001-05-11 10:27 martink + + * Modules/: FindJNI.cmake, FindPythonLibs.cmake: minor fixes and + new python module + +2001-05-11 10:04 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: fix gui problem + +2001-05-10 17:22 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/PropertyList.cpp: BUG: + fix up gui with values that stay around too long + +2001-05-10 16:21 geoff + + * Source/cmMakefile.cxx: definitions should now be overwritten if + they already exist + +2001-05-10 15:50 hoffman + + * Source/cmSystemTools.cxx: BUG: fix unix path search + +2001-05-10 15:32 martink + + * Source/cmTarget.cxx: fix for expaning libraries prior to + generating dsp + +2001-05-10 14:30 geoff + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: Reads and uses + MSPROJECT_TEMPLATE_DIRECTORY if it exists + +2001-05-10 14:02 king + + * CMake.doc: BUG: Removing this file. It has been replaced by + CMake.doc.gz to get around a problem with CVS. + +2001-05-10 13:52 martink + + * Source/cmTarget.h: added win32 executable option + +2001-05-10 12:25 king + + * CMake.doc.gz: Testing strange cvs problem with .doc files. + +2001-05-10 12:05 king + + * CMake.pdf, CMake.pdf.gz: BUG: Removing old CMake.pdf and adding + the gzipped version, CMake.pdf.gz because of file size problems + with cvs. + +2001-05-10 11:20 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: Removed stray debugging + output statement. Also renamed some variables for clarity. + +2001-05-10 11:19 king + + * Source/cmSystemTools.cxx: ERR: RunCommand method needed return in + unix. + +2001-05-10 11:18 king + + * Source/: cmFindLibraryCommand.cxx, cmFindProgramCommand.cxx: ERR: + Removed unused variable + +2001-05-10 09:45 king + + * CMakeVariables.make.in: BUG: ANSI_CFLAGS -> CMAKE_ANSI_CFLAGS + +2001-05-09 18:00 geoff + + * Source/: EXEHeader.dsptemplate, cmDSPMakefile.cxx, + cmDSPWriter.cxx: ADD LINK32s are now on multiple lines because VC + breaks otherwise + +2001-05-09 17:38 barre + + * Modules/FindTCL.cmake: ENH: add 8.3 support + +2001-05-09 16:17 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: BUG: escape spaces + before adding .lib + +2001-05-09 16:08 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: ENH: escape spaces + +2001-05-09 15:48 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: ENH: only add .lib + if no .lib exists + +2001-05-09 14:53 hoffman + + * Modules/FindFLTK.cmake, Modules/FindGTK.cmake, + Modules/FindJNI.cmake, Modules/FindJPEG.cmake, + Modules/FindMPI.cmake, Modules/FindTCL.cmake, Source/cmCommand.h, + Source/cmFindLibraryCommand.cxx, Source/cmFindLibraryCommand.h, + Source/cmFindProgramCommand.cxx, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmUnixMakefileGenerator.cxx: ENH: + change find library and find program to look for more than one + name + +2001-05-09 13:44 hoffman + + * Source/cmCableDefineSetCommand.cxx: BUG: match called on invalid + number + +2001-05-09 13:22 martink + + * CMakeMaster.make.in, CMakeRules.make.in, + CMakeSystemConfig.cmake.in, CMakeTopMakefileTemplate.in, + CMakeVariables.make.in, configure.in.sample, Source/Makefile.in: + cleaned up configure some + +2001-05-09 11:15 millerjv + + * Source/cmCacheManager.cxx: FIX: only clear the cache on a load + when the load needs to read internal values. Otherwise, it is + assumed that we are reading another projects cache. + +2001-05-09 10:13 hoffman + + * Source/MFCDialog/PropertyList.cpp: BUG: fix crash + +2001-05-09 09:52 hoffman + + * Source/cmConfigureFileCommand.cxx: BUG: fix use beyond end of + array + +2001-05-09 08:51 martink + + * Source/: cmCommands.cxx, cmLoadCacheCommand.cxx, + cmLoadCacheCommand.h, cmSourceFile.cxx: added load cache command + and fixed source file + +2001-05-08 17:37 king + + * Source/cmCacheManager.cxx: ERR: LoadCache needed to return a + value. + +2001-05-08 17:04 martink + + * Source/: cmCacheManager.cxx, cmCacheManager.h: added ability to + load another cache + +2001-05-08 17:03 martink + + * Source/cmProjectCommand.cxx: now adds src and bin dir into cache + +2001-05-08 16:20 martink + + * Source/cmVTKWrapTclCommand.cxx: fixed bug in init code + +2001-05-08 16:01 hoffman + + * configure.in.sample: clean up + +2001-05-08 13:40 hoffman + + * Source/MFCDialog/PropertyList.cpp: ENH: add initial path support + for file choosers + +2001-05-08 11:40 martink + + * Source/cmTargetLinkLibrariesCommand.cxx: BUG: added arg0 to link + libraries + +2001-05-08 10:16 ibanez + + * Modules/FindFLTK.cmake: Module to search the path for FLTK + library ( http://www.fltk.org ) + +2001-05-07 18:14 king + + * Source/: cmAddExecutableCommand.cxx, cmAddLibraryCommand.cxx, + cmMakefile.cxx: ENH: Moved cache entry addition into + cmMakefile::AddLibrary and AddExecutable so that commands do not + have to add it explicitly. + +2001-05-07 18:11 hoffman + + * CMakeSystemConfig.cmake.in, Source/CMakeBuildTargets.cxx, + Source/Makefile.in, Source/cmCacheManager.cxx, + Source/cmCommands.cxx, Source/cmConfigureFile.cxx, + Source/cmConfigureFile.h, Source/cmConfigureFileCommand.cxx, + Source/cmConfigureFileCommand.h, Source/cmExecProgram.cxx, + Source/cmExecProgram.h, Source/cmExecProgramCommand.cxx, + Source/cmExecProgramCommand.h, Source/cmMakeDirectoryCommand.cxx, + Source/cmMakeDirectoryCommand.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmSystemTools.cxx, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h: ENH: call configure from cmake + +2001-05-07 10:02 blezek + + * Source/cmConfigureFile.cxx: BUG: Removing Remove Variables call + +2001-05-07 09:16 geoff + + * configure.in.sample: Under FreeBSD: should be + CMAKE_SHLIB_BUILD_FLAGS and not CMAKE_SHLIB_LINK_FLAGS. + CMakeSystemConfig.cmake not being made + +2001-05-05 11:28 hoffman + + * Source/cmAddExecutableCommand.cxx: BUG: add internal cache entry + for executables, so depends can work + +2001-05-05 11:03 hoffman + + * Source/: cmAddTargetCommand.cxx, cmAddTargetCommand.h, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.h, + cmCommands.cxx, cmLibraryCommand.cxx: BUG: add removed command, + and sort the order in cmCommands.cxx + +2001-05-04 17:00 martink + + * Source/: cmMakefile.cxx, cmUnixMakefileGenerator.cxx: fixes for + untiltiy targets in all + +2001-05-04 16:44 blezek + + * Source/cmBuildNameCommand.cxx: ENH: Proper build name + +2001-05-04 16:43 blezek + + * Source/cmSiteNameCommand.cxx: ENH: Correct sitename + +2001-05-04 15:50 martink + + * Source/: cmAddCustomTargetCommand.cxx, + cmAddCustomTargetCommand.h, cmAddTargetCommand.cxx, + cmAddTargetCommand.h, cmDSWMakefile.cxx, cmDSWWriter.cxx, + cmMakefile.cxx, cmMakefile.h, cmTarget.h, + cmVTKWrapJavaCommand.cxx: option to make utilities in the all + target + +2001-05-04 14:53 hoffman + + * CMakeSystemConfig.cmake.in, CMakeWindowsSystemConfig.cmake: ENH: + move to cmake for itkConfigure.h.in + +2001-05-04 12:52 martink + + * Source/cmVTKWrapJavaCommand.cxx: updates + +2001-05-04 11:35 geoff + + * Modules/: FindGTK.cmake, FindJPEG.cmake: INCLUDE these to find + the relevant libraries + +2001-05-04 11:34 hoffman + + * Source/: cmAddCustomTargetCommand.cxx, + cmAddCustomTargetCommand.h, cmBuildCommand.cxx, cmBuildCommand.h, + cmBuildNameCommand.cxx, cmBuildNameCommand.h, cmExecProgram.cxx, + cmExecProgram.h, cmSiteNameCommand.cxx, cmSiteNameCommand.h: ENH: + move testing stuff to cmake from configure, good bye dashboard... + :) + +2001-05-04 11:30 hoffman + + * CMakeRules.make.in, CMakeSystemConfig.txt.in, + CMakeWindowsSystemConfig.txt, Source/cmAddTargetCommand.cxx, + Source/cmAddTargetCommand.h, Source/cmCacheManager.cxx, + Source/cmCommands.cxx, Source/cmDSWMakefile.cxx, + Source/cmDSWWriter.cxx, Source/cmFindProgramCommand.cxx, + Source/cmMakefile.cxx, Source/cmOptionCommand.cxx, + Source/cmOptionCommand.h, Source/cmSourceGroup.cxx, + Source/cmSourceGroup.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmUnixMakefileGenerator.cxx, + Source/MFCDialog/CMakeSetup.rc: ENH: move testing stuff to cmake + from configure, good bye dashboard... :) + +2001-05-04 10:44 king + + * Source/cmSystemTools.cxx: ENH: Added support to EscapeSpaces to + use double quotes on windows. + +2001-05-04 10:44 king + + * Source/cmCablePackageCommand.cxx: ENH: Added use of CMAKE cache + entry for generating the DSP/makefile build rules. + +2001-05-04 10:44 king + + * Source/: cmDSPMakefile.cxx, cmDSPMakefile.h, cmDSPWriter.cxx, + cmDSPWriter.h: ENH: Added use of CMAKE cache entry for generating + the DSP build rules. + +2001-05-04 10:13 martink + + * Modules/FindJNI.cmake: minor fixes + +2001-05-04 09:56 martink + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: fixed custom command + rule + +2001-05-04 09:47 martink + + * Modules/FindJNI.cmake: new module + +2001-05-04 09:39 martink + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx, cmSourceGroup.cxx, + cmSourceGroup.h, cmVTKWrapJavaCommand.cxx: better custom rules + +2001-05-04 08:46 martink + + * Source/: cmFunctionBlocker.h, cmIfCommand.cxx, cmIfCommand.h, + cmMakefile.cxx, cmVTKWrapJavaCommand.cxx: better If checks + +2001-05-04 08:45 martink + + * Source/: cmSourceFilesRequireCommand.cxx, + cmSourceFilesRequireCommand.h, cmUnixDefinesCommand.cxx, + cmUnixDefinesCommand.h, cmUnixLibrariesCommand.cxx, + cmUnixLibrariesCommand.h, cmWin32DefinesCommand.cxx, + cmWin32DefinesCommand.h, cmWin32IncludeDirectoryCommand.cxx, + cmWin32IncludeDirectoryCommand.h, cmWin32LibrariesCommand.cxx, + cmWin32LibrariesCommand.h: removed old functions + +2001-05-03 16:55 king + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx, + MFCDialog/CMakeSetupDialog.cpp: ENH: Added generation of internal + CMAKE cache entry with path to command-line CMake executable. + +2001-05-03 16:55 king + + * Source/: cmFindProgramCommand.cxx, cmSystemTools.cxx, + cmSystemTools.h: ENH: Added cmSystemTools::FindProgram() and + full-path detection utilities. + +2001-05-03 15:27 martink + + * Source/: cmCommands.cxx, cmVTKWrapJavaCommand.cxx, + cmVTKWrapJavaCommand.h: minor fixes + +2001-05-03 11:04 martink + + * Source/cmCommands.cxx: removed deprecated commands + +2001-05-03 10:58 martink + + * CMakeSystemConfig.cmake.in: better config info + +2001-05-03 10:35 martink + + * Source/cmConfigureFile.cxx: now support cmakedefine + +2001-05-03 08:53 martink + + * CMakeSystemConfig.txt.in, CMakeWindowsSystemConfig.txt: uses + cmake commands now + +2001-05-03 08:52 martink + + * CMakeSystemConfig.cmake.in, CMakeSystemConfig.txt.in, + CMakeWindowsSystemConfig.cmake, CMakeWindowsSystemConfig.txt, + Source/cmMakefile.cxx, Source/cmMakefile.h: system config uses + cmake commands now + +2001-05-02 17:33 martink + + * Modules/FindMPI.cmake: minor fixes + +2001-05-02 17:07 martink + + * Modules/FindMPI.cmake: new module + +2001-05-02 14:08 martink + + * Modules/FindOpenGL.cmake: simple module + +2001-05-02 11:53 martink + + * Modules/FindTCL.cmake: finds tk as well + +2001-05-02 11:53 martink + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx: cache loaded + into makefile + +2001-05-01 17:52 martink + + * Source/: cmVTKWrapPythonCommand.cxx, cmVTKWrapTclCommand.cxx: + fixed bug in limiting to source lists + +2001-05-01 17:37 king + + * Source/: cmCableDefineSetCommand.cxx, cmCableDefineSetCommand.h, + cmCableWrapCommand.cxx, cmCableWrapCommand.h: ENH: Changed + cmCableWrapCommand to inherit from cmCableDefineSetCommand since + they do almost exactly the same thing. Added a GetXmlTag virtual + function to both classes to return what XML tag to generate in + the set's output. cmCableDefineSetCommand generates a "Set" tag, + and cmCableWrapCommand generates a "WrapperSet" tag. What is + inside the tags is still generated by the cmCableDefineSetCommand + superclass. + +2001-05-01 17:35 king + + * Source/: cmCableInstantiateClassCommand.cxx, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCablePackageEntryCommand.cxx, + cmCablePackageEntryCommand.h, cmCableSourceFilesCommand.cxx, + cmCableSourceFilesCommand.h: ENH: Changed WriteConfiguration back + to const because it doesn't need to report errors anymore. + +2001-05-01 17:12 hoffman + + * Source/: UtilityFooter.dsptemplate, UtilityHeader.dsptemplate: + ADD: add utiltity templates + +2001-05-01 16:55 hoffman + + * configure.in.sample, Source/cmAddTargetCommand.cxx, + Source/cmDSPMakefile.cxx, Source/cmDSPMakefile.h, + Source/cmDSPWriter.cxx, Source/cmDSPWriter.h, + Source/cmDSWMakefile.cxx, Source/cmDSWMakefile.h, + Source/cmDSWWriter.cxx, Source/cmDSWWriter.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, Source/cmTarget.h, + Source/cmUnixMakefileGenerator.cxx: ENH: implement ADD_TARGET + command, and add an ALL_BUILD target + +2001-05-01 16:34 martink + + * Source/: cmMakefile.cxx, MFCDialog/CMakeSetupDialog.cpp: cache + now loaded into makefile + +2001-05-01 16:28 martink + + * Source/: cmCacheManager.cxx, cmCacheManager.h: added method to + puch cache into makefile defines + +2001-05-01 16:27 martink + + * Source/cmIfCommand.cxx: slight bug in If command I think + +2001-05-01 11:28 martink + + * Modules/FindTCL.cmake: first module + +2001-05-01 11:16 martink + + * Source/: cmCommands.cxx, cmElseCommand.cxx, cmIfCommand.cxx, + cmIfCommand.h, cmSetCommand.cxx, cmSetCommand.h, + cmVTKWrapPythonCommand.cxx, cmVTKWrapTclCommand.cxx: new set + command and IF NOT + +2001-04-30 14:56 martink + + * Source/: cmElseCommand.cxx, cmFindFileCommand.cxx, + cmFindLibraryCommand.cxx, cmFindPathCommand.cxx, cmIfCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h: bug fixes + +2001-04-30 11:51 king + + * Source/cmCablePackageCommand.cxx: BUG: Fixed output of + CMakeLists.txt path in cable_config.xml dependency list for unix. + Needed to escape spaces instead of enclosing in double quotes. + +2001-04-30 11:29 king + + * Source/cmMakefile.h: ERR: Removed a conflict that was checked in. + +2001-04-30 10:52 anonymous + + * Source/: cmCommands.cxx, cmDSPMakefile.cxx, cmDSPMakefile.h, + cmDSPWriter.cxx, cmDSPWriter.h, cmIncludeCommand.cxx, + cmIncludeCommand.h, cmMakefile.cxx, cmMakefile.h: New command: + INCLUDE(somefile.txt) + +2001-04-30 10:44 martink + + * Source/: cmCommands.cxx, cmDSPMakefile.cxx, cmDSPWriter.cxx, + cmDSWMakefile.cxx, cmDSWWriter.cxx, cmFindIncludeCommand.cxx, + cmFindLibraryCommand.cxx, cmLinkLibrariesCommand.cxx, + cmLinkLibrariesCommand.h, cmMakefile.cxx, cmMakefile.h, + cmTarget.cxx, cmTarget.h, cmTargetLinkLibrariesCommand.cxx, + cmTargetLinkLibrariesCommand.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h: added TARGET_LINK_LIBRARY command and + support for debug and release libraries to link against + +2001-04-27 14:57 king + + * Source/cmUnixMakefileGenerator.cxx: ERR: Renamed CustomCommands + to BuildRules to match change in cmSourceGroup. + +2001-04-27 14:52 king + + * Source/cmCablePackageCommand.cxx: BUG: Removed output of GCC_XML + rules when the command cannot be found. + +2001-04-27 14:51 king + + * Source/: cmDSPMakefile.cxx, cmDSPMakefile.h, cmDSPWriter.cxx, + cmDSPWriter.h, cmSourceGroup.cxx, cmSourceGroup.h: BUG: Removed + output of dual rules for source files that are processed by both + the compiler and by a custom command. Also removed generation of + duplicate CMakeLists.txt in the project files. + +2001-04-27 14:40 martink + + * CMakeSystemConfig.txt.in, CMakeWindowsSystemConfig.txt: get + system info into cmake + +2001-04-27 14:25 martink + + * Source/: cmConfigureFile.cxx, cmConfigureFile.h: added configure + file + +2001-04-27 11:53 hoffman + + * configure.in.sample: BUG: run cache build with each configure + +2001-04-27 11:36 hoffman + + * CMakeRules.make.in, Source/cmMakefile.cxx: BUG: fix inplace + builds + +2001-04-27 11:03 hoffman + + * Source/cmMakefile.cxx: ENH: fix in source build with non-gnu + +2001-04-27 09:32 hoffman + + * Source/cmMakefile.cxx: ENH: add output when creating files + +2001-04-27 09:30 martink + + * Source/: cmFindFileCommand.cxx, cmFindLibraryCommand.cxx, + cmFindPathCommand.cxx: better help strings + +2001-04-27 09:13 will + + * Source/cmAuxSourceDirectoryCommand.h: ENH:New copyright + +2001-04-27 08:46 martink + + * CMakeVariables.make.in: removed old junk + +2001-04-27 08:01 will + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx, + cmAddDefinitionsCommand.cxx, cmAddDefinitionsCommand.h, + cmAddExecutableCommand.cxx, cmAddExecutableCommand.h, + cmAddLibraryCommand.cxx, cmAddLibraryCommand.h, + cmAddTargetCommand.cxx, cmAddTargetCommand.h, + cmAuxSourceDirectoryCommand.cxx, + cmBuildSharedLibrariesCommand.cxx, + cmCableCloseNamespaceCommand.cxx, cmCableCloseNamespaceCommand.h, + cmCableCommand.cxx, cmCableCommand.h, cmCableData.cxx, + cmCableData.h, cmCableDefineSetCommand.cxx, + cmCableDefineSetCommand.h, cmCableInstantiateClassCommand.cxx, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCableOpenNamespaceCommand.cxx, + cmCableOpenNamespaceCommand.h, cmCablePackageCommand.cxx, + cmCablePackageCommand.h, cmCablePackageEntryCommand.cxx, + cmCablePackageEntryCommand.h, cmCableSourceFilesCommand.cxx, + cmCableSourceFilesCommand.h, cmCableWrapCommand.cxx, + cmCableWrapCommand.h, cmCacheManager.cxx, cmCacheManager.h, + cmCommand.h, cmCommands.h, cmConfigureFileNoAutoconf.cxx, + cmConfigureFileNoAutoconf.h, cmCustomCommand.cxx, + cmCustomCommand.h, cmDSPMakefile.cxx, cmDSPMakefile.h, + cmDSPWriter.cxx, cmDSPWriter.h, cmDSWMakefile.cxx, + cmDSWMakefile.h, cmDSWWriter.cxx, cmDSWWriter.h, cmDirectory.cxx, + cmDirectory.h, cmElseCommand.cxx, cmElseCommand.h, + cmEndIfCommand.cxx, cmEndIfCommand.h, cmFindFileCommand.cxx, + cmFindFileCommand.h, cmFindIncludeCommand.cxx, + cmFindIncludeCommand.h, cmFindLibraryCommand.cxx, + cmFindLibraryCommand.h, cmFindProgramCommand.cxx, + cmFindProgramCommand.h, cmFunctionBlocker.h, cmIfCommand.cxx, + cmIfCommand.h, cmIncludeDirectoryCommand.cxx, + cmIncludeDirectoryCommand.h, + cmIncludeRegularExpressionCommand.cxx, + cmIncludeRegularExpressionCommand.h, cmLibraryCommand.cxx, + cmLibraryCommand.h, cmLinkDirectoriesCommand.cxx, + cmLinkDirectoriesCommand.h, cmLinkLibrariesCommand.cxx, + cmLinkLibrariesCommand.h, cmMSProjectGenerator.cxx, + cmMSProjectGenerator.h, cmMakeDepend.cxx, cmMakeDepend.h, + cmMakefile.cxx, cmMakefile.h, cmMakefileGenerator.cxx, + cmMakefileGenerator.h, cmOptionCommand.cxx, cmOptionCommand.h, + cmProjectCommand.cxx, cmProjectCommand.h, + cmRegularExpression.cxx, cmRegularExpression.h, cmSourceFile.cxx, + cmSourceFile.h, cmSourceFilesCommand.cxx, cmSourceFilesCommand.h, + cmSourceFilesRequireCommand.cxx, cmSourceFilesRequireCommand.h, + cmSourceGroup.cxx, cmSourceGroup.h, cmSourceGroupCommand.cxx, + cmSourceGroupCommand.h, cmStandardIncludes.h, + cmSubdirCommand.cxx, cmSubdirCommand.h, cmSystemTools.cxx, + cmSystemTools.h, cmTarget.cxx, cmTarget.h, cmTestsCommand.cxx, + cmTestsCommand.h, cmUnixDefinesCommand.cxx, + cmUnixDefinesCommand.h, cmUnixLibrariesCommand.cxx, + cmUnixLibrariesCommand.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h, cmUtilitySourceCommand.cxx, + cmUtilitySourceCommand.h, cmVTKWrapPythonCommand.cxx, + cmVTKWrapTclCommand.cxx, cmWin32DefinesCommand.cxx, + cmWin32DefinesCommand.h, cmWin32IncludeDirectoryCommand.cxx, + cmWin32IncludeDirectoryCommand.h, cmWin32LibrariesCommand.cxx, + cmWin32LibrariesCommand.h, cmWrapExcludeFilesCommand.cxx, + cmWrapExcludeFilesCommand.h: ENH:New copyright + +2001-04-27 07:55 will + + * Source/: cmAbstractFilesCommand.cxx, cmAbstractFilesCommand.h: + ENH:Copyright + +2001-04-26 16:22 martink + + * Source/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + cmDSPMakefile.cxx, cmDSPMakefile.h, cmDSPWriter.cxx, + cmDSPWriter.h, cmDSWMakefile.cxx, cmDSWWriter.cxx, + cmLinkLibrariesCommand.cxx, cmLinkLibrariesCommand.h, + cmMakefile.cxx, cmMakefile.h, cmUnixMakefileGenerator.cxx, + cmVTKWrapPythonCommand.cxx, MFCDialog/CMakeSetup.rc, + MFCDialog/resource.h: support for debug and opt libraries + +2001-04-26 15:41 martink + + * Source/: cmOptionCommand.cxx, cmOptionCommand.h: better help + +2001-04-26 15:27 king + + * Source/: cmCableInstantiateClassCommand.cxx, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCablePackageCommand.cxx, + cmCablePackageEntryCommand.cxx, cmCablePackageEntryCommand.h, + cmCableSourceFilesCommand.cxx, cmCableSourceFilesCommand.h, + cmCableWrapCommand.cxx, cmCableWrapCommand.h: ENH: Changed + WriteConfiguration to non-const so it can do error checking. + Added parsing and output of a name for each WrapperSet generated + from a CABLE_WRAP command. + +2001-04-26 14:53 hoffman + + * Source/: cmAddLibraryCommand.cxx, + cmBuildSharedLibrariesCommand.cxx, cmCacheManager.cxx, + cmCacheManager.h, cmFindFileCommand.cxx, + cmFindIncludeCommand.cxx, cmFindLibraryCommand.cxx, + cmFindPathCommand.cxx, cmFindProgramCommand.cxx, + cmOptionCommand.cxx, cmUtilitySourceCommand.cxx, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/PropertyList.cpp, + MFCDialog/PropertyList.h: ENH: add help for cache entries + +2001-04-26 10:49 martink + + * Source/: cmCacheManager.cxx, cmElseCommand.cxx, cmIfCommand.cxx, + cmSystemTools.cxx, cmSystemTools.h: some fixes for If commands + +2001-04-26 09:38 martink + + * Source/: CMakeSetup.dsw, DumpDocumentation.dsp, cmCommands.cxx, + cmDSPMakefile.cxx, cmDSPWriter.cxx, cmDSPMakefile.h, + cmDSPWriter.h, cmFindFileCommand.cxx, cmFindIncludeCommand.cxx, + cmFindIncludeCommand.h, cmFindLibraryCommand.cxx, + cmFindLibraryCommand.h, cmFindPathCommand.cxx, + cmFindPathCommand.h, cmMakefile.cxx, cmMakefile.h, + cmUnixMakefileGenerator.cxx: bug fixes + +2001-04-25 19:01 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: set initial build to + source dir + +2001-04-25 18:53 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: add error checking + for empty build dir + +2001-04-25 16:09 hoffman + + * configure.in.sample, Source/Makefile.in, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmMakefile.cxx, Source/MFCDialog/CMakeDialog.h, + Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/CMakeSetupDialog.h, + Source/MFCDialog/PropertyList.cpp, + Source/MFCDialog/PropertyList.h: ENH: clean up cmake GUI and + remove the parsing of CMakeLists.txt files by configure + +2001-04-25 11:47 martink + + * Source/: cmElseCommand.h, cmEndIfCommand.h, cmIfCommand.h: rules + were not inherited when they should be + +2001-04-25 09:39 king + + * Source/cmUnixMakefileGenerator.cxx: BUG: Fixed output of + dependencies. It needs to loop over the makefile's targets, not + the source lists. + +2001-04-25 09:37 king + + * Source/cmMakeDepend.cxx: STYLE: Updated comments for name change + cmClassFile->cmSourceFile + +2001-04-25 09:33 martink + + * CMake.doc: updated the docs some + +2001-04-24 17:33 king + + * Source/cmUnixMakefileGenerator.cxx: ERR: cmClassFile.h -> + cmSourceFile.h include change. + +2001-04-24 16:49 martink + + * Source/: cmClassFile.cxx, cmClassFile.h: many fixes and cleanup + and features + +2001-04-24 16:46 martink + + * Source/: CMakeLib.dsp, Makefile.in, cmAbstractFilesCommand.cxx, + cmAuxSourceDirectoryCommand.cxx, cmCablePackageCommand.cxx, + cmCableSourceFilesCommand.cxx, cmCacheManager.cxx, + cmCacheManager.h, cmCommands.cxx, cmDSPMakefile.cxx, + cmDSPMakefile.h, cmDSPWriter.cxx, cmDSPWriter.h, + cmMakeDepend.cxx, cmMakeDepend.h, cmMakefile.cxx, cmMakefile.h, + cmOptionCommand.cxx, cmSourceFilesCommand.cxx, + cmSourceFilesRequireCommand.cxx, cmTarget.h, + cmUnixDefinesCommand.cxx, cmUnixLibrariesCommand.cxx, + cmUnixMakefileGenerator.cxx, cmWin32DefinesCommand.cxx, + cmWin32IncludeDirectoryCommand.cxx, cmWin32LibrariesCommand.cxx, + cmWrapExcludeFilesCommand.cxx, MFCDialog/CMakeSetupDialog.cpp, + cmVTKWrapPythonCommand.cxx, cmVTKWrapPythonCommand.h, + cmVTKWrapTclCommand.cxx, cmVTKWrapTclCommand.h, cmSourceFile.cxx, + cmSourceFile.h, cmTarget.cxx, cmWrapTclCommand.cxx, + cmWrapTclCommand.h: many fixes and cleanup and features + +2001-04-24 14:19 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, PropertyList.cpp, + PropertyList.h: BUG: fix duplicate property items + +2001-04-24 13:32 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, CMakeSetupDialog.h, + PropertyList.cpp: BUG: fix cache updates + +2001-04-24 12:40 hoffman + + * Source/: cmBuildSharedLibrariesCommand.cxx, cmCacheManager.cxx, + cmCacheManager.h, cmMakefile.cxx, cmMakefile.h, + cmOptionCommand.cxx, cmWrapTclCommand.cxx, + MFCDialog/CMakeSetupDialog.cpp: BUG: fix build directory problem + +2001-04-24 09:45 king + + * CMakeVariables.make.in: ERR: Removed extra SRC_OBJ reference. + The variable is no longer used. + +2001-04-23 16:40 hoffman + + * Source/: CMakeLib.dsp, cmCacheManager.cxx, cmCacheManager.h, + cmDSWMakefile.cxx, cmDSWWriter.cxx, cmSourceGroup.h, + cmStandardIncludes.h, cmWindowsConfigure.cxx, + cmWindowsConfigure.h, MFCDialog/CMakeDialog.h, + MFCDialog/CMakeSetup.dsp, MFCDialog/CMakeSetup.rc, + MFCDialog/CMakeSetupDialog.cpp, MFCDialog/CMakeSetupDialog.h, + MFCDialog/PropertyList.cpp, MFCDialog/PropertyList.h, + MFCDialog/resource.h: ENH: new GUI editor for cmake cache file + +2001-04-23 16:34 martink + + * Source/: cmCommands.cxx, cmWrapTclCommand.cxx: added option + command + +2001-04-23 16:33 martink + + * Source/: cmOptionCommand.cxx, cmOptionCommand.h: new command + +2001-04-23 13:58 blezek + + * CMakeRules.make.in, Source/cmUnixMakefileGenerator.cxx: BUG: + Clean was not doing it's job + +2001-04-23 10:23 king + + * Source/cmIfCommand.h: ERR: Added virtual destructor to complement + virtual functions in cmIfFunctionBlocker. + +2001-04-19 17:39 martink + + * Source/: cmAddDefinitionsCommand.cxx, cmAddDefinitionsCommand.h, + cmCommands.cxx, cmElseCommand.cxx, cmElseCommand.h, + cmEndIfCommand.cxx, cmEndIfCommand.h, cmFunctionBlocker.h, + cmIfCommand.cxx, cmIfCommand.h, cmMakefile.cxx, cmMakefile.h: + added if else endif add definition + +2001-04-19 13:28 martink + + * Source/: cmCablePackageCommand.cxx, cmCustomCommand.h, + cmDSPMakefile.cxx, cmDSPWriter.cxx, cmDSWMakefile.cxx, + cmDSWWriter.cxx, cmMakefile.cxx, cmSourceGroup.cxx, cmTarget.h, + cmUnixMakefileGenerator.cxx: cleaned up the coding style made + ivars private etc + +2001-04-18 08:01 king + + * Source/cmMakeDepend.cxx: ERR: We can't assume a vector iterator + is a pointer. It must be dereferenced to get a reference to the + element, and then we can take the address of that to get a + pointer. "i" becomes "&*i" + +2001-04-17 07:42 king + + * Source/cmUnixMakefileGenerator.cxx: ERR: Removed unused variable. + +2001-04-16 15:40 hoffman + + * Source/: cmStandardIncludes.h, cmSystemTools.cxx: BUG: fix small + compile issues on HP aCC + +2001-04-16 12:31 king + + * Source/: cmMakeDepend.cxx, cmMakeDepend.h: ENH: Changed m_Indices + to an stl set and renamed it to m_IndexSet. Using a set results + in a significant performance increase and reduction in memory + usage. + +2001-04-16 10:15 millerjv + + * Source/cmAddLibraryCommand.cxx: FIX: allow ADD_LIBRARY with no + source list + +2001-04-16 10:01 martink + + * Source/: cmCablePackageCommand.cxx, cmMakefile.h: fixed cable + package issue + +2001-04-12 15:34 martink + + * Source/: Makefile.in, cmAddLibraryCommand.cxx, + cmCacheManager.cxx, cmCacheManager.h, cmMakefile.h, + cmUnixMakefileGenerator.cxx, cmWrapTclCommand.cxx: some bug fixes + +2001-04-12 09:55 king + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + ENH: Added individual library linkage output so that shared + libraries will not try to link against themselves. + +2001-04-12 09:49 martink + + * Source/: cmExecutablesCommand.cxx, cmExecutablesCommand.h: + removed old rules + +2001-04-11 16:34 king + + * Source/cmUnixMakefileGenerator.cxx: ENH: Generation now sets up + proper linking of shared libraries to each other. + +2001-04-11 15:43 king + + * CMakeMaster.make.in: ERR: Needed to switch point where + CMakeTargets.make is included so that Variables will be available + to the targets file. + +2001-04-11 14:58 martink + + * Source/CMakeLib.dsp, Source/CMakeSetupCMD.dsp, + Source/Makefile.in, Source/cmAbstractFilesCommand.cxx, + Source/cmAddExecutableCommand.cxx, + Source/cmAddExecutableCommand.h, Source/cmAddLibraryCommand.cxx, + Source/cmAddLibraryCommand.h, + Source/cmAuxSourceDirectoryCommand.cxx, + Source/cmAuxSourceDirectoryCommand.h, Source/cmCableCommand.cxx, + Source/cmCableData.cxx, Source/cmCableData.h, + Source/cmCablePackageCommand.cxx, Source/cmCablePackageCommand.h, + Source/cmCableSourceFilesCommand.cxx, Source/cmClassFile.cxx, + Source/cmClassFile.h, Source/cmCommands.cxx, + Source/cmCustomCommand.cxx, Source/cmCustomCommand.h, + Source/cmDSPMakefile.cxx, Source/cmDSPMakefile.h, + Source/cmDSPWriter.cxx, Source/cmDSPWriter.h, + Source/cmDSWMakefile.cxx, Source/cmDSWMakefile.h, + Source/cmDSWWriter.cxx, Source/cmDSWWriter.h, + Source/cmMakeDepend.cxx, Source/cmMakeDepend.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmSourceFilesCommand.cxx, Source/cmSourceFilesCommand.h, + Source/cmSourceFilesRequireCommand.cxx, + Source/cmSourceFilesRequireCommand.h, Source/cmSourceGroup.cxx, + Source/cmSourceGroup.h, Source/cmTarget.h, + Source/cmTestsCommand.cxx, Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, + Source/cmWrapExcludeFilesCommand.cxx, + Source/cmWrapTclCommand.cxx, Source/cmWrapTclCommand.h, + CMakeRules.make.in: major changes to support multiple libraries + and source lists + +2001-04-10 15:26 king + + * Source/DLLHeader.dsptemplate: ENH: Need BUILD_SHARED_LIBRARIES + defined for making windows DLLs. + +2001-04-09 10:56 king + + * Source/cmCablePackageCommand.cxx: ERR: Added double-quotes around + command name before arguments are appended. + +2001-04-09 10:53 king + + * Source/cmUnixMakefileGenerator.cxx: ERR: Missed one EscapeSpaces + call. + +2001-04-09 10:31 king + + * Source/: cmCableCommand.cxx, cmDSPMakefile.cxx, cmDSPWriter.cxx, + cmSystemTools.cxx, cmSystemTools.h, cmUnixMakefileGenerator.cxx, + cmUtilitySourceCommand.cxx: ERR: Corrected use of double-quotes + to be compatible with UNIX make. Now double quotes (windows) or + escape sequences for spaces (unix) are added when dependencies + are output. + +2001-04-09 09:44 king + + * Source/: cmCableCommand.cxx, cmDSPMakefile.cxx, cmDSPWriter.cxx, + cmUtilitySourceCommand.cxx: ENH: Added support for spaces in the + output directory names. Spaces in the input directory name may + work also, but are untested. + +2001-04-06 17:01 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx, cmDSPMakefile.h, + cmDSPWriter.h, cmDSWMakefile.cxx, cmDSWWriter.cxx: BUG: fix + depends for libraries and executables in the same dir + +2001-04-06 14:51 hoffman + + * Source/: cmFindIncludeCommand.cxx, cmFindLibraryCommand.cxx, + cmMakefile.cxx: ENH: better error reporting, and add NOTFOUND + into cache for library and file find + +2001-04-06 12:00 martink + + * Source/cmFindIncludeCommand.h: fixed the documentation some + +2001-04-06 08:28 millerjv + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: FIX: configurations + list needed to be reset for each dsp file created + +2001-04-04 09:33 millerjv + + * Source/: EXEHeader.dsptemplate, staticLibHeader.dsptemplate: FIX: + returned to using /O2 optimization level and put a pragma in the + netlib code that could not handle the /Og component of /O2 + +2001-03-28 11:49 king + + * Source/cmSystemTools.cxx: ERR: Blank line regular expression + updated to allow whitespace on the line. + +2001-03-23 14:27 king + + * Source/: cmCableSourceFilesCommand.cxx, + cmCableSourceFilesCommand.h: ENH: Added support for + CABLE_SOURCE_FILES to refer to files that are not in the current + directory. The include path is searched for the files. + +2001-03-21 15:52 king + + * Source/cmStandardIncludes.h: ERR: Added pragma to disable symbol + length warning for Intel compiler. + +2001-03-20 13:48 king + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: ERR: Small bug in + generated DSP file fixed. A custom command environment variable + has been replaced with explicity writing out the command. + +2001-03-20 13:20 king + + * Source/: CMakeLib.dsp, Makefile.in, cmCableCommand.cxx, + cmCablePackageCommand.cxx, cmCommands.cxx, cmDSPMakefile.cxx, + cmDSPMakefile.h, cmDSPWriter.cxx, cmDSPWriter.h, cmMakefile.cxx, + cmMakefile.h, cmSourceGroup.cxx, cmSourceGroup.h, + cmSourceGroupCommand.cxx, cmSourceGroupCommand.h, + cmUnixMakefileGenerator.cxx, cmWrapTclCommand.cxx: ENH: Added + SOURCE_GROUP command and corresponding support code. This + command allows CMakeLists files to specify how sources are + organized into groups in the generated DSP files and makefiles. + +2001-03-19 11:47 millerjv + + * Source/EXEHeader.dsptemplate: ENH: ignore unused libary warnings, + removed /force + +2001-03-19 11:02 king + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: ENH: Added text + files group to DSP output. CMakeLists.txt is duplicated in this + group and outside, but fixing this will require a reorganization + of custom rule generation. I should get to that soon. + +2001-03-19 11:01 king + + * Source/cmCableCommand.cxx: ERR: Changed generation of rule to + generate cable_config.xml to be produced differently for windows + and unix. + +2001-03-19 11:00 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ERR: Removed + functions I just added. They don't belong here (yet?). + +2001-03-19 10:09 king + + * Source/cmCableCommand.cxx: ENH: Added generation of a rule to + re-run CMake if the cable_config.xml file is missing. + +2001-03-19 10:09 king + + * Source/: cmSystemTools.cxx, cmSystemTools.h: ENH: Added functions + to get information about the CMake executable on each platform. + +2001-03-16 11:14 king + + * Source/: cmCableData.cxx, cmCableData.h: ERR: Re-ordered + declaration of members v. order of initialization on the + constructor to match each other. + +2001-03-16 11:04 king + + * Source/: cmCableData.cxx, cmCableData.h: BUG: Rearranged cable + config file open to do open in construction of m_OutputFile. + Fixes problem on SGI with opening the file. + +2001-03-16 09:25 king + + * Source/: cmCableDefineSetCommand.cxx, + cmCableSourceFilesCommand.cxx: ENH: Changed generated includes to + not have full path specified. + +2001-03-15 18:09 king + + * Source/: cmCommands.cxx, cmIncludeRegularExpressionCommand.cxx, + cmIncludeRegularExpressionCommand.h, cmMakeDepend.cxx, + cmMakeDepend.h, cmMakefile.cxx, cmMakefile.h: ENH: Added + INCLUDE_REGULAR_EXPRESSION command to set regular expression used + in dependency checking. + +2001-03-15 14:46 king + + * Source/: cmCableDefineSetCommand.cxx, cmCableDefineSetCommand.h: + ENH: Added SOURCE_FILES syntax to CABLE_DEFINE_SET command. + +2001-03-15 14:33 king + + * Source/: cmMakefile.cxx, cmMakefile.h: BUG: Moved definition of + CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR to be as soon as their + information is known. + +2001-03-15 10:42 king + + * Source/: cmCablePackageCommand.cxx, cmCablePackageCommand.h: BUG: + Fixed segfault when CABLE_PACKAGE is only CABLE command. Related + to order of virtual destructor calls. + +2001-03-14 17:49 king + + * Source/cmStandardIncludes.h: ERR: Added for-loop scoping hack for + CMake sources on MSVC + +2001-03-14 16:34 king + + * Source/cmSystemTools.cxx: ENH: Added support for comments inside + function calls and indented comments. + +2001-03-13 18:01 king + + * Source/: cmCableDefineSetCommand.cxx, cmCableDefineSetCommand.h: + ENH: Added support for element tag specification with syntax + tag:element as an argument to the CABLE_DEFINE_SET command. A + single colon with nothing to its left will result in an empty + tag. + +2001-03-13 09:33 king + + * Source/cmWrapTclCommand.cxx: ERR: Less-than-zero test replaced + with greater-than-zero since we want zero arguments. + +2001-03-12 18:30 king + + * Source/: cmCommand.h, cmSystemTools.cxx, cmSystemTools.h: ENH: + Improved error handling when GetError is called on a command that + has not called SetError. + +2001-03-12 10:10 geoff + + * Source/: cmCommands.cxx, cmWin32IncludeDirectoryCommand.cxx, + cmWin32IncludeDirectoryCommand.h: Include directories under Win32 + only (inherited by subdirs) + +2001-03-09 16:56 king + + * Source/: DLLHeader.dsptemplate, EXEHeader.dsptemplate, + cmDSPMakefile.cxx, cmDSPMakefile.h, cmDSPWriter.cxx, + cmDSPWriter.h, staticLibHeader.dsptemplate: ENH: Finished + Simplifying dsptemplate processing with in place of separate + Release, Debug, ReleaseDLL, ... configurations. + +2001-03-09 15:35 king + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx, + staticLibHeader.dsptemplate: ERR: Fixed library path problem for + ReleaseMinSize build. should now be used in place of separate + Release, Debug, and ReleaseMinSize. + +2001-03-09 14:35 king + + * Source/EXEHeader.dsptemplate: ERR: Fixed header template for + Release MinSize builds. + +2001-03-09 11:34 king + + * Source/EXEHeader.dsptemplate: ENH: Added Release MinSize + configuration for executables. + +2001-03-09 11:33 king + + * Source/cmUtilitySourceCommand.h: ENH: Made UTILITY_SOURCE command + inherited, just like FIND_PROGRAM. + +2001-03-09 11:16 king + + * Source/cmCablePackageCommand.cxx: ERR: Missing initalization of a + cmClassFile::m_HeaderFileOnly fixed. + +2001-03-09 10:53 king + + * Source/: cmDSWMakefile.cxx, cmDSWWriter.cxx, cmMakefile.cxx, + cmMakefile.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h, cmUtilitySourceCommand.cxx: ENH: Added + utility dependency support. Now a project can depend on other + executables as well as link libraries. + +2001-03-09 10:52 king + + * Source/: cmCableCommand.cxx, cmCableData.cxx: ERR: Added + automatic creation of directory for cable_config.xml file and + corresponding error reporting. + +2001-03-09 10:52 king + + * Source/cmCablePackageCommand.cxx: ENH: Added proper dependency + generation for a package on cable executable. + +2001-03-08 18:24 king + + * Source/: cmMakefile.cxx, cmUtilitySourceCommand.cxx: ERR: + Replaced CMAKE_CFG= with CMAKE_CFG_OUTDIR= to fix windows + behavior. + +2001-03-08 18:13 king + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: ENH: Added output of + custom rules for XML sources. + +2001-03-08 17:38 king + + * Source/cmUnixMakefileGenerator.cxx: ENH: Added output of defines + flags as part of INCLUDE_FLAGS. + +2001-03-08 17:31 king + + * Source/cmUnixMakefileGenerator.cxx: ENH: Added output of a custom + command's m_Source as a dependency. + +2001-03-08 17:31 king + + * Source/cmUnixDefinesCommand.cxx: ERR: Minor wording error in + output message. + +2001-03-08 17:30 king + + * Source/cmCablePackageCommand.cxx: ENH: Creation of generator rule + now properly uses the custom command's m_Source member. + +2001-03-08 16:13 king + + * Source/: cmCableCommand.cxx, cmCableData.cxx, cmCableData.h, + cmCablePackageCommand.cxx, cmCablePackageCommand.h, + cmCableSourceFilesCommand.cxx, cmCableSourceFilesCommand.h: ENH: + Added creation of custom rules for generating CABLE packages. + +2001-03-08 16:12 king + + * Source/: cmMakeDepend.cxx, cmMakeDepend.h: ENH: Added support for + finding dependencies for files that don't exist. Dependency + recursion begins with hints provided in the cmClassFile for a + file if it doesn't exist. + +2001-03-08 11:30 king + + * Source/cmCableSourceFilesCommand.cxx: ENH: Added .txx detection + for Header block output. + +2001-03-08 10:30 king + + * Source/: cmCommands.cxx, cmMakefile.cxx, cmMakefile.h, + cmSystemTools.cxx, cmSystemTools.h, cmUtilitySourceCommand.cxx, + cmUtilitySourceCommand.h: ENH: Added UTILITY_SOURCE command for + specifying where a 3rd party utility's source is located when it + is included in the distribution of a project. + +2001-03-07 13:33 king + + * Source/cmCableCommand.cxx: ERR: Commented out experimental code + that was accidentally checked in. + +2001-03-07 13:23 king + + * Source/cmCableCommand.cxx: ENH: Added Cable to Utilities and + appropriate CMakeLists.txt changes. Moved VXLNumerics link out + of source's root directory and into separate entries for Code and + Testing directories. This prevents linking of all programs (like + Cable) with the numerics library. + +2001-03-02 16:04 king + + * Source/: cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h: + ENH: Added custom rule support to cmUnixMakefileGenerator. + +2001-03-02 13:47 will + + * Source/cmUnixMakefileGenerator.cxx: BUG: repeat all -l options to + avoid having to worry about link order. + +2001-03-02 12:27 king + + * Source/: cmCableCommand.cxx, cmCableData.cxx, cmCableData.h: ENH: + CABLE config file (config_cable.xml) should now be opened in the + output directory. + +2001-03-01 16:47 king + + * Source/: cmCableCloseNamespaceCommand.cxx, + cmCableCloseNamespaceCommand.h, cmCableCommand.cxx, + cmCableCommand.h, cmCableData.cxx, cmCableData.h, + cmCableDefineSetCommand.cxx, cmCableDefineSetCommand.h, + cmCableInstantiateClassCommand.cxx, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCableOpenNamespaceCommand.cxx, + cmCableOpenNamespaceCommand.h, cmCablePackageCommand.cxx, + cmCablePackageCommand.h, cmCablePackageEntryCommand.cxx, + cmCablePackageEntryCommand.h, cmCableSourceFilesCommand.cxx, + cmCableSourceFilesCommand.h, cmCableWrapCommand.cxx, + cmCableWrapCommand.h, cmCommands.cxx: ENH: Change to new CABLE + command architecture. CABLE configuration code is now generated + on the first pass, during the Invoke() calls. + +2001-02-28 17:50 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx, cmDSPMakefile.h, + cmDSPWriter.h, cmDSWMakefile.cxx, cmDSWWriter.cxx: BUG: fix + circular depends on libraries and remove depends for static + libraries + +2001-02-28 09:34 king + + * Source/: cmCableCommand.cxx, cmCableCommand.h, cmCableData.cxx, + cmCableData.h, cmCableDefineSetCommand.cxx, + cmCableDefineSetCommand.h, cmCableInstantiateClassCommand.cxx, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCommands.cxx: ENH: CABIL -> CABLE + rename. + +2001-02-27 16:50 martink + + * Source/: cmDSPMakefile.cxx, cmDSPMakefile.h, cmDSPWriter.cxx, + cmDSPWriter.h, cmDSWMakefile.cxx, cmDSWWriter.cxx: many + enhancements including dll support + +2001-02-27 16:49 martink + + * Source/cmWrapTclCommand.cxx: bug fixes + +2001-02-27 16:49 martink + + * Source/cmCommands.cxx: added new commands + +2001-02-27 16:48 martink + + * Source/cmClassFile.h: added wrap exclude ivar + +2001-02-27 16:48 martink + + * Source/: cmBuildSharedLibrariesCommand.cxx, + cmBuildSharedLibrariesCommand.h, cmWrapExcludeFilesCommand.cxx, + cmWrapExcludeFilesCommand.h: new commands + +2001-02-27 16:46 martink + + * Source/: DLLFooter.dsptemplate, DLLHeader.dsptemplate: dll build + rules + +2001-02-27 16:44 martink + + * Source/staticLibHeader.dsptemplate: change in options for much + smaller libraries + +2001-02-27 16:28 king + + * Source/: cmCableCommand.h, cmCableDefineSetCommand.cxx, + cmCableDefineSetCommand.h, cmCableInstantiateClassCommand.cxx, + cmCableInstantiateClassCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCommands.cxx: ENH: Implemented + automatic tag generation for CABIL_DEFINE_SET command. Added tag + output to WriteConfiguration methods. Added + CABIL_INSTANTIATE_CLASS command to generate explicit class + template instantiation configuration output. + +2001-02-27 15:41 king + + * Source/cmSystemTools.cxx: ENH/BUG: Improved function parsing to + allow just about anything inside a double-quoted argument. Also + fixed parsing of lines with both quoted and non-quoted arguments. + +2001-02-27 12:00 lorensen + + * Source/cmSystemTools.cxx: ENH: mask on mkdir set to 777. + +2001-02-27 12:00 lorensen + + * Source/CMakeBuildTargets.cxx: ERR: missing std:: on cout. + +2001-02-26 20:58 millerjv + + * Source/staticLibHeader.dsptemplate: FIX: added /GR to MinSize + build to avoid warnings about dynamic cast + +2001-02-26 18:20 king + + * Source/cmCableInstantiateCommand.cxx: ERR: Fixed configuration + file output to open file in output directory. + +2001-02-26 18:16 king + + * Source/cmWrapTclCommand.cxx: int -> unsigned int + +2001-02-26 18:00 king + + * Source/: cmCableCommand.cxx, cmCableCommand.h, cmCableData.cxx, + cmCableData.h, cmCableDefineSetCommand.cxx, + cmCableDefineSetCommand.h, cmCableInstantiateCommand.cxx, + cmCableInstantiateCommand.h, cmCommands.cxx: ENH: Added CABIL + commands for configuration file generation. + +2001-02-26 17:58 king + + * Source/cmMakefile.h: ENH: Added GetUsedCommands() method. + +2001-02-26 17:58 king + + * Source/cmStandardIncludes.h: ERR: fsream.h -> fstream.h + +2001-02-26 17:17 martink + + * Source/: cmCommands.cxx, cmDSPMakefile.cxx, cmDSPMakefile.h, + cmDSPWriter.cxx, cmDSPWriter.h, cmMakefile.h: a variety of fixes + and enhancements + +2001-02-26 17:17 martink + + * Source/: cmWrapTclCommand.cxx, cmWrapTclCommand.h: very early + version of a wrapper + +2001-02-26 17:15 martink + + * Source/: cmClassFile.cxx, cmClassFile.h: added functionality, + fixed bug if no file existed and with header files + +2001-02-26 17:14 martink + + * Source/: cmFindProgramCommand.cxx, cmFindProgramCommand.h: fixed + bug and modified functionality + +2001-02-26 17:13 martink + + * Source/: cmFindFileCommand.cxx, cmFindFileCommand.h: new command + +2001-02-26 13:25 king + + * Source/cmMakefile.cxx: ERR: Fixed unknown command output error + message for spacing. + +2001-02-26 12:07 king + + * Source/: cmAbstractFilesCommand.h, cmAddTargetCommand.h, + cmAuxSourceDirectoryCommand.h, cmCommand.h, + cmExecutablesCommand.h, cmFindIncludeCommand.h, + cmFindLibraryCommand.h, cmFindProgramCommand.h, + cmIncludeDirectoryCommand.h, cmLibraryCommand.h, + cmLinkDirectoriesCommand.h, cmLinkLibrariesCommand.h, + cmProjectCommand.h, cmSourceFilesCommand.h, + cmSourceFilesRequireCommand.h, cmSubdirCommand.h, + cmTestsCommand.h, cmUnixDefinesCommand.h, + cmUnixLibrariesCommand.h, cmWin32DefinesCommand.h, + cmWin32LibrariesCommand.h: ENH: Added safe downcast support + (without RTTI) to cmCommand and its subclasses. + +2001-02-23 10:40 king + + * Source/: cmAbstractFilesCommand.cxx, cmCommand.h, cmCommands.h, + cmConfigureFileNoAutoconf.h, cmFindIncludeCommand.cxx, + cmFindLibraryCommand.cxx, cmFindProgramCommand.cxx, + cmMakefile.cxx, cmUnixMakefileGenerator.cxx: ERR: Fixed warnings + (int->unsigned int and a few others). + +2001-02-22 19:37 hoffman + + * configure.in.sample: ENH: update sample + +2001-02-22 19:31 hoffman + + * Source/cmSystemTools.cxx: BUG: remove debug print + +2001-02-22 19:23 hoffman + + * Source/CMakeBuildTargets.cxx, Source/Makefile.in, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmConfigureFileNoAutoconf.cxx, Source/cmDSPMakefile.cxx, + Source/cmDSPWriter.cxx, Source/cmDSWMakefile.cxx, + Source/cmDSWWriter.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmStandardIncludes.h, + Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/MFCDialog/CMakeSetupDialog.cpp, CMakeRules.make.in, + CMakeTopMakefileTemplate.in, Source/cmConfigure.h.in: ENH: add + CMakeCache.txt support + +2001-02-20 14:12 hoffman + + * Source/cmSystemTools.cxx: ENH: remove relative and extra paths in + CMakeLists.txt files + +2001-02-20 12:25 hoffman + + * CMakeRules.make.in: BUG: fix for in source build + +2001-02-19 15:13 hoffman + + * CMakeMakefileTemplate.in, MakefileTemplate.in, + configure.in.sample, Source/CMakeBuildTargets.cxx, + Source/CMakeSetupCMD.cxx, Source/Makefile.in, + Source/cmCacheManager.cxx, Source/cmCacheManager.h, + Source/cmCommand.h, Source/cmDSWMakefile.cxx, + Source/cmDSWWriter.cxx, Source/cmFindIncludeCommand.cxx, + Source/cmFindLibraryCommand.cxx, Source/cmFindProgramCommand.cxx, + Source/cmIncludeDirectoryCommand.cxx, Source/cmMakefile.cxx, + Source/cmRegularExpression.h, Source/cmSystemTools.cxx, + Source/cmUnixMakefileGenerator.cxx, + Source/cmUnixMakefileGenerator.h, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/resource.h: ENH: first pass at cache, clean up + the unix generator, clean up configure.in some + +2001-02-18 13:02 hoffman + + * configure.in.sample: ENH: add a smaple configure.in for CMake + based projects + +2001-02-18 12:47 hoffman + + * configure.in.sample: ENH: add a smaple configure.in for CMake + based projects + +2001-02-16 15:34 hoffman + + * Source/cmCacheManager.h: ENH: clean up comments some + +2001-02-16 15:01 will + + * CMake.pdf: ENH:Added pdf file + +2001-02-16 11:52 martink + + * CMake.doc: clean up docs + +2001-02-16 11:34 martink + + * Source/: cmConfigureFileNoAutoconf.cxx, cmDSWMakefile.cxx, + cmDSWWriter.cxx, cmFindIncludeCommand.cxx, + cmFindLibraryCommand.cxx, cmFindLibraryCommand.h, + cmFindProgramCommand.cxx, cmMakefile.cxx, cmMakefile.h, + cmSystemTools.cxx, cmSystemTools.h: ENH: add new commands fro + find library and find program + +2001-02-15 13:30 martink + + * CMakeRules.make.in, CMakeVariables.make.in, + Source/CMakeBuildTargets.cxx, Source/CMakeSetupCMD.cxx, + Source/cmClassFile.cxx, Source/cmClassFile.h, + Source/cmConfigureFileNoAutoconf.h, Source/cmDSPMakefile.cxx, + Source/cmDSPWriter.cxx, Source/cmDSWMakefile.cxx, + Source/cmDSWWriter.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmProjectCommand.cxx, + Source/cmProjectCommand.h, Source/MFCDialog/CMakeSetupDialog.cpp: + some cleanup and fixes + +2001-02-14 12:58 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: set output directory + correctly + +2001-02-14 12:26 hoffman + + * Source/cmMakeDepend.cxx: ENH: fix depend segfault + +2001-02-13 18:49 hoffman + + * Source/: cmConfigureFileNoAutoconf.cxx, cmMakefile.cxx: ENH: new + vnl + +2001-02-13 16:48 hoffman + + * Source/: cmMakefile.cxx, cmMakefile.h: ENH: add configure style + @var@ expansion + +2001-02-12 19:49 hoffman + + * Source/: CMakeBuildTargets.cxx, Makefile.in, cmCommands.cxx, + cmConfigureFileNoAutoconf.cxx, cmConfigureFileNoAutoconf.h, + cmConfigureHeaderCommand.cxx, cmConfigureHeaderCommand.h, + cmMakefile.cxx, cmMakefile.h, cmStandardIncludes.h, + cmSystemTools.cxx, MFCDialog/CMakeSetupDialog.cpp, cmCommands.h: + ENH: get rid of special msc configure file + +2001-02-12 14:42 hoffman + + * Source/: CMakeLib.dsp, CMakeSetup.dsw, CMakeSetupCMD.dsp, + MFCDialog/CMakeSetup.dsp: ENH: share a .lib with the command line + and mfc versions. + +2001-02-12 14:26 hoffman + + * Source/: CMakeLib.dsp, CMakeSetup.dsw, CMakeSetupCMD.cxx, + CMakeSetupCMD.dsp, Makefile.in, cmCacheManager.cxx, + cmCacheManager.h, cmCommands.cxx, cmConfigureHeaderCommand.cxx, + cmConfigureHeaderCommand.h, cmDSWMakefile.cxx, cmDSWWriter.cxx, + cmMSProjectGenerator.h, MFCDialog/CMakeSetup.dsp, + MFCDialog/CMakeSetupDialog.cpp: ENH: add cache manager class, + move all commands into cmCommands.cxx to speed up compile times, + share a .lib with the command line and mfc versions. + +2001-02-06 17:01 hoffman + + * Source/staticLibHeader.dsptemplate: ENH: add /GX /Zm1000 + +2001-02-06 16:48 hoffman + + * Source/staticLibHeader.dsptemplate: ENH: min size build + +2001-02-06 10:52 hoffman + + * Source/staticLibHeader.dsptemplate: ENH: put back /Zm1000 so we + can build large files + +2001-02-06 08:56 millerjv + + * Source/staticLibHeader.dsptemplate: FIX: remove precompiled + header settings + +2001-02-06 08:54 millerjv + + * Source/EXEHeader.dsptemplate: FIX: added /force to link options + and removed precompiled header usage + +2001-01-25 15:48 millerjv + + * Source/: EXEHeader.dsptemplate, staticLibHeader.dsptemplate: BUG: + backed off on the compiler optimization used. Instead of using + /O2, we now use all the components of /Ox (/Ob1 /Oi /Ot /Oy /Gs) + except for /Og + +2001-01-22 10:00 will + + * Source/CMakeSetupCMD.dsp: BUG: convert to dos format + +2001-01-22 09:49 will + + * Source/: CMakeSetup.dsw, CMakeSetupCMD.dsp, + MFCDialog/CMakeSetup.dsp: BUG: make dsp and dsw files binary + +2001-01-18 13:43 will + + * README: ENH:Commands not rules + +2001-01-18 12:06 will + + * Source/Makefile.in: ERR:Oops, use SimpleRule not SimpleCommand + +2001-01-18 11:51 will + + * CMakeCommands.make.in, CMakeMaster.make.in, CMakeRules.make.in, + CMakeSimpleCommands.make.in, CMakeSimpleRules.make.in: ERR:Oops, + renamed back + +2001-01-18 11:20 will + + * CMakeCommands.make.in, CMakeMaster.make.in, CMakeRules.make.in, + CMakeSimpleCommands.make.in, CMakeSimpleRules.make.in, + Source/CMakeSetupCMD.dsp, Source/Makefile.in, + Source/cmAbstractFilesCommand.cxx, + Source/cmAbstractFilesCommand.h, Source/cmAbstractFilesRule.cxx, + Source/cmAbstractFilesRule.h, Source/cmAddTargetCommand.cxx, + Source/cmAddTargetCommand.h, Source/cmAddTargetRule.cxx, + Source/cmAddTargetRule.h, Source/cmAuxSourceDirectoryCommand.cxx, + Source/cmAuxSourceDirectoryCommand.h, + Source/cmAuxSourceDirectoryRule.cxx, + Source/cmAuxSourceDirectoryRule.h, Source/cmCommand.h, + Source/cmDumpDocumentation.cxx, Source/cmExecutablesCommand.cxx, + Source/cmExecutablesCommand.h, Source/cmExecutablesRule.cxx, + Source/cmExecutablesRule.h, Source/cmFindIncludeCommand.cxx, + Source/cmFindIncludeCommand.h, Source/cmFindIncludeRule.cxx, + Source/cmFindIncludeRule.h, Source/cmFindLibraryCommand.cxx, + Source/cmFindLibraryCommand.h, Source/cmFindLibraryRule.cxx, + Source/cmFindLibraryRule.h, Source/cmFindProgramCommand.cxx, + Source/cmFindProgramCommand.h, Source/cmFindProgramRule.cxx, + Source/cmFindProgramRule.h, Source/cmIncludeDirectoryCommand.cxx, + Source/cmIncludeDirectoryCommand.h, + Source/cmIncludeDirectoryRule.cxx, + Source/cmIncludeDirectoryRule.h, Source/cmLibraryCommand.cxx, + Source/cmLibraryCommand.h, Source/cmLibraryRule.cxx, + Source/cmLibraryRule.h, Source/cmLinkDirectoriesCommand.cxx, + Source/cmLinkDirectoriesCommand.h, + Source/cmLinkDirectoriesRule.cxx, Source/cmLinkDirectoriesRule.h, + Source/cmLinkLibrariesCommand.cxx, + Source/cmLinkLibrariesCommand.h, Source/cmLinkLibrariesRule.cxx, + Source/cmLinkLibrariesRule.h, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmMakefileGenerator.h, + Source/cmProjectCommand.cxx, Source/cmProjectCommand.h, + Source/cmProjectRule.cxx, Source/cmProjectRule.h, + Source/cmRuleMaker.h, Source/cmSourceFilesCommand.cxx, + Source/cmSourceFilesCommand.h, + Source/cmSourceFilesRequireCommand.cxx, + Source/cmSourceFilesRequireCommand.h, + Source/cmSourceFilesRequireRule.cxx, + Source/cmSourceFilesRequireRule.h, Source/cmSourceFilesRule.cxx, + Source/cmSourceFilesRule.h, Source/cmSubdirCommand.cxx, + Source/cmSubdirCommand.h, Source/cmSubdirRule.cxx, + Source/cmSubdirRule.h, Source/cmSystemTools.h, + Source/cmTestsCommand.cxx, Source/cmTestsCommand.h, + Source/cmTestsRule.cxx, Source/cmTestsRule.h, + Source/cmUnixDefinesCommand.cxx, Source/cmUnixDefinesCommand.h, + Source/cmUnixDefinesRule.cxx, Source/cmUnixDefinesRule.h, + Source/cmUnixLibrariesCommand.cxx, + Source/cmUnixLibrariesCommand.h, Source/cmUnixLibrariesRule.cxx, + Source/cmUnixLibrariesRule.h, Source/cmWin32DefinesCommand.cxx, + Source/cmWin32DefinesCommand.h, Source/cmWin32DefinesRule.cxx, + Source/cmWin32DefinesRule.h, Source/cmWin32LibrariesCommand.cxx, + Source/cmWin32LibrariesCommand.h, + Source/cmWin32LibrariesRule.cxx, Source/cmWin32LibrariesRule.h, + Source/MFCDialog/CMakeSetup.dsp: ENH:Reworked CMake for + consistency + +2001-01-12 14:35 will + + * README, Source/cmAbstractFilesRule.h, Source/cmAddTargetRule.h, + Source/cmAuxSourceDirectoryRule.h, Source/cmExecutablesRule.h, + Source/cmFindIncludeRule.h, Source/cmFindLibraryRule.h, + Source/cmFindProgramRule.h, Source/cmIncludeDirectoryRule.h, + Source/cmLibraryRule.h, Source/cmLinkDirectoriesRule.h, + Source/cmLinkLibrariesRule.h, Source/cmMakefile.cxx, + Source/cmProjectRule.h, Source/cmRuleMaker.h, + Source/cmSourceFilesRequireRule.h, Source/cmSourceFilesRule.h, + Source/cmSubdirRule.h, Source/cmTestsRule.h, + Source/cmUnixDefinesRule.h, Source/cmUnixLibrariesRule.h, + Source/cmWin32DefinesRule.h, Source/cmWin32LibrariesRule.h: + ENH:Tweaks to dump documentation + +2001-01-12 14:05 hoffman + + * Source/: cmDSPMakefile.cxx, cmDSPWriter.cxx: ENH: add define + flags in the right place + +2001-01-12 13:49 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: ENH: allow continue if + missing MSC configure file + +2001-01-12 13:48 hoffman + + * Source/cmSystemTools.cxx: BUG: add check for missing ) on + function + +2001-01-12 13:07 will + + * README, Source/cmAuxSourceDirectoryRule.h, + Source/cmIncludeDirectoryRule.h, Source/cmLinkLibrariesRule.h, + Source/cmProjectRule.h, Source/cmSourceFilesRequireRule.h, + Source/cmSubdirRule.h, Source/cmUnixDefinesRule.h, + Source/cmWin32DefinesRule.h: ENH:Tweaks to dump documentation + +2001-01-12 12:49 will + + * Source/: cmAddTargetRule.h, cmMakefile.cxx: ENH:Tweaks to + documentation + +2001-01-12 12:49 will + + * README: ENH:Updated for rule-based CMake + +2001-01-12 12:42 will + + * Source/: cmDumpDocumentation.cxx, cmMakefile.cxx, cmMakefile.h: + ENH:Simple program dumps out internal documentation for CMake + +2001-01-12 07:43 will + + * README: README + +2001-01-11 16:19 will + + * doxygen.config: ENH:Doxygenated CMake + +2001-01-11 14:55 will + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx, + cmAbstractFilesRule.cxx, cmClassFile.cxx, cmDSPMakefile.cxx, + cmDSPWriter.cxx, cmDSWMakefile.cxx, cmDSWWriter.cxx, + cmExecutablesRule.cxx, cmFindIncludeRule.cxx, + cmFindLibraryRule.cxx, cmFindProgramRule.cxx, + cmIncludeDirectoryRule.cxx, cmLibraryRule.cxx, + cmLinkDirectoriesRule.cxx, cmLinkLibrariesRule.cxx, + cmMSProjectGenerator.cxx, cmMakeDepend.cxx, cmMakefile.cxx, + cmMakefileGenerator.cxx, cmProjectRule.cxx, + cmSourceFilesRequireRule.cxx, cmSourceFilesRule.cxx, + cmSubdirRule.cxx, cmSystemTools.cxx, cmTestsRule.cxx, + cmUnixDefinesRule.cxx, cmUnixLibrariesRule.cxx, + cmWin32DefinesRule.cxx, cmWin32LibrariesRule.cxx: + ENH:Documentation and cleanups + +2001-01-11 14:47 will + + * Source/: CMakeSetupCMD.cxx, cmAddTargetRule.cxx, + cmAuxSourceDirectoryRule.cxx, cmClassFile.h, cmDSWMakefile.cxx, + cmDSWMakefile.h, cmDSWWriter.cxx, cmDSWWriter.h, cmDirectory.h, + cmFindProgramRule.h, cmMSProjectGenerator.cxx, + cmMSProjectGenerator.h, cmMakeDepend.h, cmMakefile.h, + cmMakefileGenerator.h, cmRegularExpression.cxx, + cmRegularExpression.h, cmStandardIncludes.h, cmSystemTools.cxx, + cmSystemTools.h, cmUnixMakefileGenerator.cxx, + cmUnixMakefileGenerator.h, cmWindowsConfigure.cxx, + cmWindowsConfigure.h: ENH:Documentation and cleanups + +2001-01-11 11:35 blezek + + * Source/: cmWin32DefinesRule.cxx, cmWin32LibrariesRule.cxx: BUG: + Broken on non WIN32 platforms, changed SetEnableOff to EnabledOff + +2001-01-11 08:04 will + + * Source/: cmFindIncludeRule.h, cmFindLibraryRule.h, + cmFindProgramRule.h, cmIncludeDirectoryRule.h, cmLibraryRule.h, + cmLinkDirectoriesRule.h, cmLinkLibrariesRule.h, cmProjectRule.h, + cmSourceFilesRequireRule.h, cmSourceFilesRule.h, cmSubdirRule.h, + cmTestsRule.h, cmUnixDefinesRule.h, cmUnixLibrariesRule.h, + cmWin32DefinesRule.h, cmWin32LibrariesRule.h: ENH:Added + documentation; clean-up + +2001-01-10 17:29 will + + * Source/: cmExecutablesRule.h, cmFindIncludeRule.h: ENH:Beginning + clean up; adding documentation + +2001-01-10 17:13 will + + * Source/cmAuxSourceDirectoryRule.h: ENH:Beginning clean up; adding + documentation + +2001-01-10 17:05 will + + * Source/: cmAbstractFilesRule.h, cmAddTargetRule.h, + cmAuxSourceDirectoryRule.h, cmDSPMakefile.h, cmDSPWriter.h, + cmExecutablesRule.h, cmFindIncludeRule.h, cmFindLibraryRule.h, + cmFindProgramRule.h, cmIncludeDirectoryRule.h, cmLibraryRule.h, + cmLinkDirectoriesRule.h, cmLinkLibrariesRule.h, cmProjectRule.h, + cmRuleMaker.h, cmSourceFilesRequireRule.h, cmSourceFilesRule.h, + cmSubdirRule.h, cmTestsRule.h, cmUnixDefinesRule.cxx, + cmUnixDefinesRule.h, cmUnixLibrariesRule.cxx, + cmUnixLibrariesRule.h, cmWin32DefinesRule.h, + cmWin32LibrariesRule.h: ENH:Beginning clean up; adding + documentation + +2001-01-09 15:13 hoffman + + * Source/cmUnixMakefileGenerator.cxx: BUG: look for -l and -L only + at the begining of a link string + +2001-01-05 13:52 blezek + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx: BUG: main can + not be void under ANSI C++ + +2001-01-05 13:49 blezek + + * Source/cmMakefileGenerator.cxx: BUG: Looking for + cmMakeFileGenerator.h rather than cmMakefileGenerator.h + +2001-01-05 11:41 hoffman + + * Source/: CMakeBuildTargets.cxx, CMakeSetupCMD.cxx, + CMakeSetupCMD.dsp, Makefile.in, cmAbstractFilesRule.cxx, + cmAbstractFilesRule.h, cmAddTargetRule.cxx, cmAddTargetRule.h, + cmAuxSourceDirectoryRule.cxx, cmAuxSourceDirectoryRule.h, + cmClassFile.cxx, cmClassFile.h, cmCollectFlags.cxx, + cmCollectFlags.h, cmDSPMakefile.cxx, cmDSPMakefile.h, + cmDSPWriter.cxx, cmDSPWriter.h, cmDSWMakefile.cxx, + cmDSWWriter.cxx, cmDSWMakefile.h, cmDSWWriter.h, cmDirectory.cxx, + cmDirectory.h, cmExecutablesRule.cxx, cmExecutablesRule.h, + cmFindIncludeRule.cxx, cmFindIncludeRule.h, + cmFindLibraryRule.cxx, cmFindLibraryRule.h, + cmFindProgramRule.cxx, cmFindProgramRule.h, + cmIncludeDirectoryRule.cxx, cmIncludeDirectoryRule.h, + cmLibraryRule.cxx, cmLibraryRule.h, cmLinkDirectoriesRule.cxx, + cmLinkDirectoriesRule.h, cmLinkLibrariesRule.cxx, + cmLinkLibrariesRule.h, cmMSProjectGenerator.cxx, + cmMSProjectGenerator.h, cmMakeDepend.cxx, cmMakeDepend.h, + cmMakefile.cxx, cmMakefile.h, cmMakefileGenerator.cxx, + cmMakefileGenerator.h, cmProjectRule.cxx, cmProjectRule.h, + cmRegularExpression.cxx, cmRegularExpression.h, cmRuleMaker.h, + cmSourceFilesRequireRule.cxx, cmSourceFilesRequireRule.h, + cmSourceFilesRule.cxx, cmSourceFilesRule.h, cmStandardIncludes.h, + cmSubdirRule.cxx, cmSubdirRule.h, cmSystemTools.cxx, + cmSystemTools.h, cmTestsRule.cxx, cmTestsRule.h, + cmUnixDefinesRule.cxx, cmUnixDefinesRule.h, + cmUnixLibrariesRule.cxx, cmUnixLibrariesRule.h, + cmUnixMakefile.cxx, cmUnixMakefile.h, + cmUnixMakefileGenerator.cxx, cmUnixMakefileGenerator.h, + cmWin32DefinesRule.cxx, cmWin32DefinesRule.h, + cmWin32LibrariesRule.cxx, cmWin32LibrariesRule.h, + cmWindowsConfigure.cxx, cmWindowsConfigure.h, + MFCDialog/CMakeSetup.dsp, MFCDialog/CMakeSetupDialog.cpp: ENH: + rework cmake, added ruleMaker classes and changed the syntax of + the CMakeLists.txt files. + +2000-12-07 15:45 blezek + + * Source/cmMakefile.cxx: ENH: Added TESTS target + +2000-11-22 11:02 hoffman + + * Source/cmMakeDepend.cxx: BUG: remove bogus warning about not + finding a depend file, if there are no include paths + +2000-11-10 17:13 hoffman + + * Source/MFCDialog/CMakeSetupDialog.cpp: BUG: fix inplace build + +2000-11-09 10:41 will + + * README, Source/cmCollectFlags.cxx, Source/cmCollectFlags.h, + Source/cmWindowsConfigure.cxx: ENH:Changed CMAKE_SOURCE_ROOT to + CMAKE_SOURCE_DIR + +2000-11-03 16:38 hoffman + + * README: [no log message] + +2000-11-03 16:37 hoffman + + * Source/MFCDialog/: CMakeSetupDialog.cpp, CMakeSetupDialog.h: ENH: + add ability to run from different directories + +2000-11-02 11:13 hoffman + + * Source/cmMakefile.cxx: BUG: make sure SOURCE_FILES starts at the + begining of line + +2000-11-02 10:56 blezek + + * CMakeVariables.make.in: ENH: Moved @JAVA@ to @JAVACOMMAND@ + +2000-11-02 10:24 will + + * README, Source/cmClassFile.cxx, Source/cmMakefile.cxx: + ENH:Reworked CMake to clearer indicate what the variables do + +2000-10-25 17:18 hoffman + + * Source/: cmSystemTools.cxx: BUG: remove tabs from classnames + +2000-10-04 09:58 lorensen + + * CMakeVariables.make.in: Enh: Added TCLSH + +2000-10-02 14:21 blezek + + * Source/CMakeBuildTargets.cxx: BUG: if the path to your source + directory has a -S in it, it will be picked up as the source + directory by the command line parser, because it matches -S at + any character position in the argements. Bad, should have used + getopt, except that it is not cross platform. + +2000-10-02 13:50 blezek + + * CMakeVariables.make.in: ENH: Support for XML builds and Dashboard + +2000-09-28 12:43 blezek + + * README: ENH: Added note about VERBATIM targets in CMakeList.txt + +2000-09-27 15:01 hoffman + + * CMakeMaster.make.in, CMakeRules.make.in, CMakeVariables.make.in, + README, Source/cmDSWMakefile.cxx, Source/cmDSWMakefile.h, + Source/cmDSWWriter.cxx, Source/cmDSWWriter.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/cmUnixMakefile.cxx, Source/cmUnixMakefile.h: ENH: change + ME to LIBRARY and added PROJECT, also remove ITK stuff and + replaced with CMake + +2000-09-21 13:45 hoffman + + * README, Source/CMakeBuildTargets.cxx, Source/CMakeSetupCMD.cxx, + Source/cmCollectFlags.cxx, Source/cmCollectFlags.h, + Source/cmDSPMakefile.cxx, Source/cmDSPWriter.cxx, + Source/cmDSWMakefile.cxx, Source/cmDSWWriter.cxx, + Source/cmMakeDepend.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmUnixMakefile.cxx, + Source/itkVC60Configure.cxx, Source/itkVC60Configure.h: ENH: + clean up code, and varible names + +2000-09-18 10:19 hoffman + + * Source/cmUnixMakefile.cxx: BUG: remove cout + +2000-09-18 09:19 hoffman + + * CMakeRules.make.in, CMakeVariables.make.in, README, + Source/cmDSPMakefile.cxx, Source/cmDSPWriter.cxx, + Source/cmMakeDepend.cxx, Source/cmUnixMakefile.cxx, + Source/cmWindowsConfigure.cxx, Source/cmWindowsConfigure.h, + Source/MFCDialog/CMakeSetup.dsp, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/resource.h: ENH: added a config setup file for + CMakeSetup. Cleaned up the names of the source and binary + directories + +2000-09-18 07:27 hoffman + + * Source/: CMakeSetupCMD.dsp, MFCDialog/CMakeSetup.dsp: ENH: remove + unused files + +2000-09-12 06:44 hoffman + + * CMakeRules.make.in, CMakeVariables.make.in: BUG: fix build in + place source directory + +2000-09-12 05:37 hoffman + + * Source/: cmCollectFlags.cxx, cmCollectFlags.h: NEW: class to + collect all the flags from parent directories + +2000-09-12 05:30 hoffman + + * CMakeMaster.make.in, CMakeRules.make.in, CMakeTargets.make.in, + CMakeVariables.make.in, MakefileTemplate.in, README, + Source/CMakeBuildTargets.cxx, Source/CMakeSetup.cxx, + Source/CMakeSetup.dsw, Source/CMakeSetupCMD.cxx, + Source/CMakeSetupCMD.dsp, Source/Makefile.in, + Source/cmClassFile.cxx, Source/cmClassFile.h, + Source/cmDSPBuilder.cxx, Source/cmDSPBuilder.h, + Source/cmDSPMakefile.cxx, Source/cmDSPWriter.cxx, + Source/cmDSWBuilder.cxx, Source/cmDSWBuilder.h, + Source/cmDSWMakefile.cxx, Source/cmDSWMakefile.h, + Source/cmDSWWriter.cxx, Source/cmDSWWriter.h, + Source/cmMakeDepend.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmPCBuilder.cxx, + Source/cmPCBuilder.h, Source/cmSystemTools.cxx, + Source/cmSystemTools.h, Source/cmUnixMakefile.cxx, + Source/cmUnixMakefile.h, Source/cmWindowsConfigure.h, + Source/itkVC60Configure.h, Source/MFCDialog/CMakeDialog.cpp, + Source/MFCDialog/CMakeSetup.dsp, + Source/MFCDialog/CMakeSetupDialog.cpp: ENH: CMake and configure + now use SUBDIRS in CMakeLists.txt to find all the directories of + the system. + +2000-09-01 10:43 hoffman + + * Source/: EXEHeader.dsptemplate, cmSystemTools.cxx: BUG: fix + release build on windows + +2000-08-31 14:26 hoffman + + * CMakeVariables.make.in, Source/cmUnixMakefile.cxx: BUG: fix build + of lib.a problem + +2000-08-31 14:15 hoffman + + * Source/: CMakeSetup.dsw, cmDSPMakefile.cxx, cmDSPWriter.cxx: BUG: + fix name of command line version in dsp files + +2000-08-31 13:54 hoffman + + * CMakeSimpleRules.make, CMakeSimpleRules.make.in: BUG: fix for out + of source build + +2000-08-31 13:52 hoffman + + * CMakeSimpleRules.make: ENH: fix for Sgi make + +2000-08-31 09:36 hoffman + + * CMakeRules.make.in, Source/Makefile.in, + Source/cmUnixMakefile.cxx: ENH: fix for SGI make + +2000-08-31 06:36 hoffman + + * CMakeVariables.make.in, README: ENH: clean things up a bit + +2000-08-30 13:59 hoffman + + * Source/cmDirectory.cxx, Source/cmDirectory.h, + MakefileTemplate.in: ENH: add ability to compile all the files in + a sub-directory + +2000-08-30 13:35 hoffman + + * CMakeRules.make.in, CMakeVariables.make.in, README, + Source/CMakeSetupCMD.dsp, Source/Makefile.in, + Source/cmClassFile.cxx, Source/cmDSPMakefile.cxx, + Source/cmDSPWriter.cxx, Source/cmDSWMakefile.cxx, + Source/cmDSWWriter.cxx, Source/cmMakefile.cxx, + Source/cmMakefile.h, Source/cmUnixMakefile.cxx, + Source/MFCDialog/CMakeSetup.dsp, + Source/MFCDialog/CMakeSetupDialog.cpp: ENH: move from tools and + create working CMake program + +2000-08-29 15:26 hoffman + + * CMakeMaster.make.in, CMakeRules.make.in, CMakeVariables.make.in, + Source/CMakeBuildTargets.cxx, Source/CMakeSetup.cxx, + Source/CMakeSetup.dsw, Source/CMakeSetupCMD.cxx, + Source/CMakeSetupCMD.dsp, Source/EXEFooter.dsptemplate, + Source/EXEHeader.dsptemplate, Source/Makefile.in, + Source/cmClassFile.cxx, Source/cmClassFile.h, + Source/cmDSPBuilder.cxx, Source/cmDSPBuilder.h, + Source/cmDSPMakefile.cxx, Source/cmDSPMakefile.h, + Source/cmDSPWriter.cxx, Source/cmDSPWriter.h, + Source/cmDSWBuilder.cxx, Source/cmDSWBuilder.h, + Source/cmDSWMakefile.cxx, Source/cmDSWMakefile.h, + Source/cmDSWWriter.cxx, Source/cmDSWWriter.h, + Source/cmMakeDepend.cxx, Source/cmMakeDepend.h, + Source/cmMakefile.cxx, Source/cmMakefile.h, + Source/cmPCBuilder.cxx, Source/cmPCBuilder.h, + Source/cmRegularExpression.cxx, Source/cmRegularExpression.h, + Source/cmSystemTools.cxx, Source/cmSystemTools.h, + Source/cmUnixMakefile.cxx, Source/cmUnixMakefile.h, + Source/cmWindowsConfigure.cxx, Source/cmWindowsConfigure.h, + Source/itkVC60Configure.cxx, Source/itkVC60Configure.h, + Source/staticLibFooter.dsptemplate, + Source/staticLibHeader.dsptemplate, + Source/MFCDialog/CMakeDialog.cpp, Source/MFCDialog/CMakeDialog.h, + Source/MFCDialog/CMakeSetup.cpp, Source/MFCDialog/CMakeSetup.dsp, + Source/MFCDialog/CMakeSetup.h, Source/MFCDialog/CMakeSetup.rc, + Source/MFCDialog/CMakeSetupDialog.cpp, + Source/MFCDialog/CMakeSetupDialog.h, Source/MFCDialog/StdAfx.cpp, + Source/MFCDialog/StdAfx.h, Source/MFCDialog/resource.h, + Source/MFCDialog/res/CMakeSetupDialog.ico, + Source/MFCDialog/res/CMakeSetupDialog.rc2, README: NEW: move from + tools and config to create CMake + +2000-08-29 10:56 hoffman + + * CMakeMaster.make.in, CMakeRules.make.in, CMakeVariables.make.in, + dummy.in: [no log message] + diff --git a/CMakeLua/CompileFlags.cmake b/CMakeLua/CompileFlags.cmake new file mode 100755 index 0000000..59f335d --- /dev/null +++ b/CMakeLua/CompileFlags.cmake @@ -0,0 +1,44 @@ +#----------------------------------------------------------------------------- +# set some special flags for different compilers +# +IF(CMAKE_GENERATOR MATCHES "Visual Studio 7") + SET(CMAKE_SKIP_COMPATIBILITY_TESTS 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7") +IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") + SET(CMAKE_SKIP_COMPATIBILITY_TESTS 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") +INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake) + +# Disable deprecation warnings for standard C functions. +IF(MSVC80 OR MSVC90) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) +ENDIF(MSVC80 OR MSVC90) + +#silence duplicate symbol warnings on AIX +IF(CMAKE_SYSTEM MATCHES "AIX.*") + IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -bhalt:5 ") + ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) +ENDIF(CMAKE_SYSTEM MATCHES "AIX.*") + +IF(CMAKE_SYSTEM MATCHES "IRIX.*") + IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-woff84 -no_auto_include") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-woff15") + ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) +ENDIF(CMAKE_SYSTEM MATCHES "IRIX.*") + +IF(CMAKE_SYSTEM MATCHES "OSF1-V.*") + IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -timplicit_local -no_implicit_include ") + ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) +ENDIF(CMAKE_SYSTEM MATCHES "OSF1-V.*") + +# use the ansi CXX compile flag for building cmake +IF (CMAKE_ANSI_CXXFLAGS) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_ANSI_CXXFLAGS}") +ENDIF (CMAKE_ANSI_CXXFLAGS) + +IF (CMAKE_ANSI_CFLAGS) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}") +ENDIF (CMAKE_ANSI_CFLAGS) diff --git a/CMakeLua/Copyright.txt b/CMakeLua/Copyright.txt new file mode 100644 index 0000000..834c457 --- /dev/null +++ b/CMakeLua/Copyright.txt @@ -0,0 +1,50 @@ +CMake was initially developed by Kitware with the following sponsorship: + + * National Library of Medicine at the National Institutes of Health + as part of the Insight Segmentation and Registration Toolkit (ITK). + + * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel + Visualization Initiative. + + * National Alliance for Medical Image Computing (NAMIC) is funded by the + National Institutes of Health through the NIH Roadmap for Medical Research, + Grant U54 EB005149. + + * Kitware, Inc. + +The CMake copyright is as follows: + +Copyright (c) 2002 Kitware, Inc., Insight Consortium +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. + + * The names of Kitware, Inc., the Insight Consortium, or the names of + any consortium members, or of any contributors, may not be used to + endorse or promote products derived from this software without + specific prior written permission. + + * Modified source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER 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 AUTHORS 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. + +See also the CMake web site: http://www.cmake.org for more information. diff --git a/CMakeLua/DartConfig.cmake b/CMakeLua/DartConfig.cmake new file mode 100644 index 0000000..367d98a --- /dev/null +++ b/CMakeLua/DartConfig.cmake @@ -0,0 +1,61 @@ +# Dashboard is opened for submissions for a 24 hour period starting at +# the specified NIGHLY_START_TIME. Time is specified in 24 hour format. +SET (NIGHTLY_START_TIME "21:00:00 EDT") + +# Dart server to submit results (used by client) +IF(NOT DROP_METHOD) + SET(DROP_METHOD http) +ENDIF(NOT DROP_METHOD) +IF(DROP_METHOD MATCHES http) + SET (DROP_SITE "public.kitware.com") + SET (DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi") +ELSE(DROP_METHOD MATCHES http) + IF(DROP_METHOD MATCHES xmlrpc) + SET (DROP_SITE "http://www.na-mic.org:8081") + SET (DROP_LOCATION "CMake") + SET (COMPRESS_SUBMISSION ON) + ELSE(DROP_METHOD MATCHES xmlrpc) + SET (DROP_SITE "public.kitware.com") + SET (DROP_LOCATION "/incoming") + SET (DROP_SITE_USER "ftpuser") + SET (DROP_SITE_PASSWORD "public") + ENDIF(DROP_METHOD MATCHES xmlrpc) +ENDIF(DROP_METHOD MATCHES http) + +SET (TRIGGER_SITE + "http://${DROP_SITE}/cgi-bin/Submit-CMake-TestingResults.cgi") + +# Project Home Page +SET (PROJECT_URL "http://www.cmake.org") + +# Dart server configuration +SET (ROLLUP_URL "http://${DROP_SITE}/cgi-bin/cmake-rollup-dashboard.sh") +SET (CVS_WEB_URL "http://${DROP_SITE}/cgi-bin/viewcvs.cgi/") +SET (CVS_WEB_CVSROOT "CMake") + +OPTION(BUILD_DOXYGEN "Build source documentation using doxygen" "Off") +SET (DOXYGEN_CONFIG "${PROJECT_BINARY_DIR}/doxygen.config" ) +MARK_AS_ADVANCED(BUILD_DOXYGEN) +SET (USE_DOXYGEN "On") +SET (DOXYGEN_URL "${PROJECT_URL}/doc/nightly/html/" ) + +SET (USE_GNATS "On") +SET (GNATS_WEB_URL "${PROJECT_URL}/Bug/query.php?projects=2&status%5B%5D=1&status%5B%5D=2&status%5B%5D=3&status%5B%5D=4&status%5B%5D=6&op=doquery") + +# Continuous email delivery variables +SET (CONTINUOUS_FROM "cmake-dashboard@public.kitware.com") +SET (SMTP_MAILHOST "public.kitware.com") +SET (CONTINUOUS_MONITOR_LIST "cmake-dashboard@public.kitware.com") +SET (CONTINUOUS_BASE_URL "${PROJECT_URL}/Testing") + +SET (DELIVER_BROKEN_BUILD_EMAIL_WITH_TEST_FAILURES ON) +SET (DELIVER_BROKEN_BUILD_EMAIL "Continuous Nightly") +SET (EMAIL_FROM "cmake-dashboard@public.kitware.com") +SET (DARTBOARD_BASE_URL "${PROJECT_URL}/Testing") + +SET (DELIVER_BROKEN_BUILD_EMAIL_WITH_CONFIGURE_FAILURES 1) +SET (DELIVER_BROKEN_BUILD_EMAIL_WITH_BUILD_ERRORS 1) +SET (DELIVER_BROKEN_BUILD_EMAIL_WITH_BUILD_WARNINGS 1) +SET (DELIVER_BROKEN_BUILD_EMAIL_WITH_TEST_NOT_RUNS 1) +SET (DELIVER_BROKEN_BUILD_EMAIL_WITH_TEST_FAILURES 1) + diff --git a/CMakeLua/DartLocal.conf.in b/CMakeLua/DartLocal.conf.in new file mode 100755 index 0000000..e28cb18 --- /dev/null +++ b/CMakeLua/DartLocal.conf.in @@ -0,0 +1,121 @@ +ExpectedBuilds: \ +{andoria.kitware Linux-g++3.4-KDevelop} \ +{andoria.kitware Linux-g++3.4-SVN} \ +{DASH1.kitware Win32-nmake71} \ +{DASH1.kitware Win32-vs71} \ +{DASH1.kitware Win32-vs71Rel} \ +{DASH1.kitware zRel24-Win32-nmake71} \ +{DASH1.kitware zRel24-Win32-vs71} \ +{DASH11.kitware zRel24-Win32-nmake71} \ +{dash14.kitware Win32-bcc5.6} \ +{dash14.kitware Win32-cygwin} \ +{dash14.kitware Win32-mingw} \ +{dash14.kitware zRel24-Win32-bcc5.6} \ +{dash17.kitware Linux-g++4.0} \ +{dash1win64.kitware Win64-vs80} \ +{dash1win98.kitware Win32-vs60} \ +{DASH2.kitware Win32-nmake70} \ +{DASH2.kitware Win32-vs70} \ +{DASH2.kitware Win32-vs70-InPlace} \ +{DASH2.kitware zRel24-Win32-nmake70} \ +{DASH2.kitware zRel24-Win32-vs70} \ +{DASH3.kitware Win32-nmake60} \ +{DASH3.kitware Win32-vs60} \ +{DASH3.kitware zRel24-Win32-nmake60} \ +{DASH3.kitware zRel24-Win32-vs60} \ +{dash4.kitware Win32-bcc5.8} \ +{DASH5.kitware Linux-gcc332-InPlace} \ +{DASH5.kitware zRel24-Linix-gcc332} \ +{DASH6.kitware zRel24-Linix-gcc332} \ +{dash8.kitware Linux64-g++} \ +{dash8.kitware Linux64-g++332} \ +{dash8.kitware Linux64-g++341} \ +{dash8.kitware zRel24-Linux64-g++} \ +{dash8.kitware zRel24-Linux64-g++332} \ +{dashmacmini1.kitware Darwin-Tiger-Xcode21} \ +{dashmacmini1.kitware zRel24-Darwin-Tiger-g++} \ +{dashmacmini2.kitware DarwinIntel-g++} \ +{dashmacmini2.kitware DarwinIntel-Universal} \ +{dashmacmini2.kitware Darwin-Tiger-Xcode21-univ} \ +{dashmacmini3.kitware Darwin-LeopardIntel-g++} \ +{dashmacmini3.kitware Darwin-LeopardIntel-Universal} \ +{dashmacmini3.kitware Darwin-Leopard-Xcode21-univ} \ +{dashsgi1.kitware IRIX32-CC} \ +{dashsgi1.kitware IRIX64-CC} \ +{dashsun1.kitware SunOS-CC} \ +{dashsun1.kitware SunOS-CC-64} \ +{dashsun1.kitware SunOS-gcc34-64} \ +{destiny.kitware HP-UX-aCC} \ +{destiny.kitware HP-UX-aCC-gmake} \ +{devqnx.acfr.usyd.edu.au qnx-V3.3.5-gcc_ntox86} \ +{grayson.kitware Win32-nmake80} \ +{heart HP-UXia64-aCC} \ +{hythloth.kitware Linux64-bullseye-cov} \ +{hythloth.kitware Linux64-suncc-5.9} \ +{hythloth.kitware Linux-nightly-win32-release} \ +{insight.journal.kitware KWStyle} \ +{iris.elemtech IRIX64-CC64-7.4} \ +{iris.elemtech IRIX64-CC-7.4} \ +{JET.kitware Linux-valgrind2} \ +{krondor.kitware Darwin-c++} \ +{krondor.kitware zRel24-Darwin-c++} \ +{midworld.kitware DarwinG5-g++} \ +{midworld.kitware DarwinG5-XCode15} \ +{midworld.kitware zRel24-DarwinG5-g++} \ +{pre.vision.cs.rpi.edu FreeBSD-CC-gmake} \ +{pre.vision.cs.rpi.edu FreeBSD-CC-make} \ +{RogueResearch3 Mac10.5-CMake-gcc-dbg-ppc} \ +{RogueResearch3 Mac10.5-CMake-gcc-dbg-ppc64} \ +{RogueResearch3 Mac10.5-CMake-gcc-rel-ppc} \ +{RogueResearch3 Mac10.5-CMake-gcc-rel-ppc64} \ +{RogueResearch3 Mac10.5-CMake-Xcode-dbg-ppc} \ +{RogueResearch3 Mac10.5-CMake-Xcode-dbg-ppc64} \ +{RogueResearch4 Mac10.5-CMake-gcc-dbg-i386} \ +{RogueResearch4 Mac10.5-CMake-gcc-dbg-rosetta} \ +{RogueResearch4 Mac10.5-CMake-gcc-rel-i386} \ +{tick.rz.uni-augsburg.de LinuxPPC-g++3.3} \ +{tick.rz.uni-augsburg.de LinuxPPC-g++3.4} \ +{trinsic.kitware Win32-mingw} \ +{r06n01.pbm.ihost.com AIX53-xlC} \ +{r06n01.pbm.ihost.com zRel24-AIX53-xlC} \ +{valhalla.kitware Win32-wcl386} + +#{devqnx.acfr.usyd.edu.au qnx-V3.3.5-gcc_ntox86 } \ +#{mr-orange.obtech.net gentoo-linux-x86\_64-gcc-4.0.2 } \ +#{G5.Nfsnet.Org Darwin8.3-gcc4} \ + +# commas in names do not work for expected builds.... + +#{G4.Nfsnet.Org Darwin-c++} \ +#{salmon.nlm.nih.gov Darwin8.7-gcc4} \ + +#{crd.ge.com Solaris-gcc343} \ +#{crd.ge.com Linux-icc81} \ +#{crd.ge.com Windows-bcc32} \ +#{crd.ge.com Windows-nmake71} \ +#{crd.ge.com Windows-nmake60} \ + +#{dash16.kitware Linux-g++4.0} \ +#{styx Linuxia64-g++} \ +#{crd.ge.com Cygwin-gcc344} \ +#{valhalla.kitware Win32-bccRel} \ +#{valhalla.kitware Win32-bcc} \ +#{valhalla.kitware Win32-g++} \ +#{valhalla.kitware Win32-nmake60} \ +#{valhalla.kitware Win32-nmake70} \ +#{valhalla.kitware Win32-vs60} \ +#{valhalla.kitware Win32-vs70} +#{crd.ge.com FreeBSD-gcc321} \ +#{crd.ge.com Linux-gcc320} \ + +#{cogattaca.kitware LinuxWin32-g++-Werror} \ +#{cogattaca.kitware LinuxWin32-g++} \ + +#{dash8.kitware Win64-icl80} \ +#{dash8.kitware zLRB-Win64-icl80} \ + +#{hythloth.kitware Linux-icc-8.1} \ + +CompressionMode: ALL +CompressionCommand: /bin/gzip +CompressionType: gzip diff --git a/CMakeLua/Docs/CVS/Entries b/CMakeLua/Docs/CVS/Entries new file mode 100644 index 0000000..49c8ded --- /dev/null +++ b/CMakeLua/Docs/CVS/Entries @@ -0,0 +1,4 @@ +/cmake-mode.el/1.32/Fri Feb 1 16:15:39 2008//T1.32 +/cmake-indent.vim/1.9/Sat Feb 2 02:49:50 2008//T1.9 +/cmake-syntax.vim/1.9/Sat Feb 2 02:49:50 2008//T1.9 +D diff --git a/CMakeLua/Docs/CVS/Repository b/CMakeLua/Docs/CVS/Repository new file mode 100644 index 0000000..65ee11d --- /dev/null +++ b/CMakeLua/Docs/CVS/Repository @@ -0,0 +1 @@ +CMake/Docs diff --git a/CMakeLua/Docs/CVS/Root b/CMakeLua/Docs/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Docs/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Docs/CVS/Tag b/CMakeLua/Docs/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Docs/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Docs/CVS/Template b/CMakeLua/Docs/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Docs/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Docs/cmake-indent.vim b/CMakeLua/Docs/cmake-indent.vim new file mode 100644 index 0000000..89c2162 --- /dev/null +++ b/CMakeLua/Docs/cmake-indent.vim @@ -0,0 +1,93 @@ +" ============================================================================= +" +" Program: CMake - Cross-Platform Makefile Generator +" Module: $RCSfile: cmake-indent.vim,v $ +" Language: VIM +" Date: $Date: 2008/01/16 16:53:53 $ +" Version: $Revision: 1.9 $ +" +" ============================================================================= + +" Vim indent file +" Language: CMake (ft=cmake) +" Author: Andy Cedilnik +" Maintainer: Karthik Krishnan +" Last Change: $Date: 2008/01/16 16:53:53 $ +" Version: $Revision: 1.9 $ +" +" Licence: The CMake license applies to this file. See +" http://www.cmake.org/HTML/Copyright.html +" This implies that distribution with Vim is allowed + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal indentexpr=CMakeGetIndent(v:lnum) +setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE( + +" Only define the function once. +if exists("*CMakeGetIndent") + finish +endif + +fun! CMakeGetIndent(lnum) + let this_line = getline(a:lnum) + + " Find a non-blank line above the current line. + let lnum = a:lnum + let lnum = prevnonblank(lnum - 1) + let previous_line = getline(lnum) + + " Hit the start of the file, use zero indent. + if lnum == 0 + return 0 + endif + + let ind = indent(lnum) + + let or = '\|' + " Regular expressions used by line indentation function. + let cmake_regex_comment = '#.*' + let cmake_regex_identifier = '[A-Za-z][A-Za-z0-9_]*' + let cmake_regex_quoted = '"\([^"\\]\|\\.\)*"' + let cmake_regex_arguments = '\(' . cmake_regex_quoted . + \ or . '\$(' . cmake_regex_identifier . ')' . + \ or . '[^()\\#"]' . or . '\\.' . '\)*' + + let cmake_indent_comment_line = '^\s*' . cmake_regex_comment + let cmake_indent_blank_regex = '^\s*$' + let cmake_indent_open_regex = '^\s*' . cmake_regex_identifier . + \ '\s*(' . cmake_regex_arguments . + \ '\(' . cmake_regex_comment . '\)\?$' + + let cmake_indent_close_regex = '^' . cmake_regex_arguments . + \ ')\s*' . + \ '\(' . cmake_regex_comment . '\)\?$' + + let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|ELSEIF\|WHILE\|FUNCTION\)\s*(' + let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\|ENDFUNCTION\)\s*(' + + " Add + if previous_line =~? cmake_indent_comment_line " Handle comments + let ind = ind + else + if previous_line =~? cmake_indent_begin_regex + let ind = ind + &sw + endif + if previous_line =~? cmake_indent_open_regex + let ind = ind + &sw + endif + endif + + " Subtract + if this_line =~? cmake_indent_end_regex + let ind = ind - &sw + endif + if previous_line =~? cmake_indent_close_regex + let ind = ind - &sw + endif + + return ind +endfun diff --git a/CMakeLua/Docs/cmake-mode.el b/CMakeLua/Docs/cmake-mode.el new file mode 100644 index 0000000..f544a6a --- /dev/null +++ b/CMakeLua/Docs/cmake-mode.el @@ -0,0 +1,221 @@ +;============================================================================= +; +; Program: CMake - Cross-Platform Makefile Generator +; Module: $RCSfile: cmake-mode.el,v $ +; +; Copyright (c) 2000-$Date: 2008/01/02 22:32:58 $ Kitware, Inc., Insight Consortium. All rights reserved. +; See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. +; +; This software is distributed WITHOUT ANY WARRANTY; without even +; the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +; PURPOSE. See the above copyright notices for more information. +; +;============================================================================= +;;; cmake-mode.el --- major-mode for editing CMake sources + +;------------------------------------------------------------------------------ + +;;; Commentary: + +;; Provides syntax highlighting and indentation for CMakeLists.txt and +;; *.cmake source files. +;; +;; Add this code to your .emacs file to use the mode: +;; +;; (setq load-path (cons (expand-file-name "/dir/with/cmake-mode") load-path)) +;; (require 'cmake-mode) +;; (setq auto-mode-alist +;; (append '(("CMakeLists\\.txt\\'" . cmake-mode) +;; ("\\.cmake\\'" . cmake-mode)) +;; auto-mode-alist)) + +;------------------------------------------------------------------------------ + +;;; Code: + +;; +;; Regular expressions used by line indentation function. +;; +(defconst cmake-regex-blank "^[ \t]*$") +(defconst cmake-regex-comment "#.*") +(defconst cmake-regex-paren-left "(") +(defconst cmake-regex-paren-right ")") +(defconst cmake-regex-argument-quoted + "\"\\([^\"\\\\]\\|\\\\\\(.\\|\n\\)\\)*\"") +(defconst cmake-regex-argument-unquoted + "\\([^ \t\r\n()#\"\\\\]\\|\\\\.\\)\\([^ \t\r\n()#\\\\]\\|\\\\.\\)*") +(defconst cmake-regex-token (concat "\\(" cmake-regex-comment + "\\|" cmake-regex-paren-left + "\\|" cmake-regex-paren-right + "\\|" cmake-regex-argument-unquoted + "\\|" cmake-regex-argument-quoted + "\\)")) +(defconst cmake-regex-indented (concat "^\\(" + cmake-regex-token + "\\|" "[ \t\r\n]" + "\\)*")) +(defconst cmake-regex-block-open + "^\\(IF\\|MACRO\\|FOREACH\\|ELSE\\|ELSEIF\\|WHILE\\|FUNCTION\\)$") +(defconst cmake-regex-block-close + "^[ \t]*\\(ENDIF\\|ENDFOREACH\\|ENDMACRO\\|ELSE\\|ELSEIF\\|ENDWHILE\\|ENDFUNCTION\\)[ \t]*(") + +;------------------------------------------------------------------------------ + +;; +;; Helper functions for line indentation function. +;; +(defun cmake-line-starts-inside-string () + "Determine whether the beginning of the current line is in a string." + (if (save-excursion + (beginning-of-line) + (let ((parse-end (point))) + (beginning-of-buffer) + (nth 3 (parse-partial-sexp (point) parse-end)) + ) + ) + t + nil + ) + ) + +(defun cmake-find-last-indented-line () + "Move to the beginning of the last line that has meaningful indentation." + (let ((point-start (point)) + region) + (forward-line -1) + (setq region (buffer-substring-no-properties (point) point-start)) + (while (and (not (bobp)) + (or (looking-at cmake-regex-blank) + (not (and (string-match cmake-regex-indented region) + (= (length region) (match-end 0)))))) + (forward-line -1) + (setq region (buffer-substring-no-properties (point) point-start)) + ) + ) + ) + +;------------------------------------------------------------------------------ + +;; +;; Line indentation function. +;; +(defun cmake-indent () + "Indent current line as CMAKE code." + (interactive) + (beginning-of-line) + (if (cmake-line-starts-inside-string) + () + (if (bobp) + (indent-line-to 0) + (let ((point-start (point)) + token cur-indent) + + (save-excursion + ; Search back for the last indented line. + (cmake-find-last-indented-line) + + ; Start with the indentation on this line. + (setq cur-indent (current-indentation)) + + ; Search forward counting tokens that adjust indentation. + (while (re-search-forward cmake-regex-token point-start t) + (setq token (match-string 0)) + (if (string-match (concat "^" cmake-regex-paren-left "$") token) + (setq cur-indent (+ cur-indent cmake-tab-width)) + ) + (if (string-match (concat "^" cmake-regex-paren-right "$") token) + (setq cur-indent (- cur-indent cmake-tab-width)) + ) + (if (and + (string-match cmake-regex-block-open token) + (looking-at (concat "[ \t]*" cmake-regex-paren-left)) + ) + (setq cur-indent (+ cur-indent cmake-tab-width)) + ) + ) + ) + + ; If this is the end of a block, decrease indentation. + (if (looking-at cmake-regex-block-close) + (setq cur-indent (- cur-indent cmake-tab-width)) + ) + + ; Indent this line by the amount selected. + (if (< cur-indent 0) + (indent-line-to 0) + (indent-line-to cur-indent) + ) + ) + ) + ) + ) + +;------------------------------------------------------------------------------ + +;; +;; Keyword highlighting regex-to-face map. +;; +(defconst cmake-font-lock-keywords + (list '("^[ \t]*\\(\\w+\\)[ \t]*(" 1 font-lock-function-name-face)) + "Highlighting expressions for CMAKE mode." + ) + +;------------------------------------------------------------------------------ + +;; +;; Syntax table for this mode. Initialize to nil so that it is +;; regenerated when the cmake-mode function is called. +;; +(defvar cmake-mode-syntax-table nil "Syntax table for cmake-mode.") +(setq cmake-mode-syntax-table nil) + +;; +;; User hook entry point. +;; +(defvar cmake-mode-hook nil) + +;; +;; Indentation increment. +;; +(defvar cmake-tab-width 2) + +;------------------------------------------------------------------------------ + +;; +;; CMake mode startup function. +;; +(defun cmake-mode () + "Major mode for editing CMake listfiles." + (interactive) + (kill-all-local-variables) + (setq major-mode 'cmake-mode) + (setq mode-name "CMAKE") + + ; Create the syntax table + (setq cmake-mode-syntax-table (make-syntax-table)) + (set-syntax-table cmake-mode-syntax-table) + (modify-syntax-entry ?_ "w" cmake-mode-syntax-table) + (modify-syntax-entry ?\( "()" cmake-mode-syntax-table) + (modify-syntax-entry ?\) ")(" cmake-mode-syntax-table) + (modify-syntax-entry ?# "<" cmake-mode-syntax-table) + (modify-syntax-entry ?\n ">" cmake-mode-syntax-table) + + ; Setup font-lock mode. + (make-local-variable 'font-lock-defaults) + (setq font-lock-defaults '(cmake-font-lock-keywords)) + + ; Setup indentation function. + (make-local-variable 'indent-line-function) + (setq indent-line-function 'cmake-indent) + + ; Setup comment syntax. + (make-local-variable 'comment-start) + (setq comment-start "#") + + ; Run user hooks. + (run-hooks 'cmake-mode-hook)) + +; This file provides cmake-mode. +(provide 'cmake-mode) + +;;; cmake-mode.el ends here diff --git a/CMakeLua/Docs/cmake-syntax.vim b/CMakeLua/Docs/cmake-syntax.vim new file mode 100644 index 0000000..bfc77a6 --- /dev/null +++ b/CMakeLua/Docs/cmake-syntax.vim @@ -0,0 +1,89 @@ +" ============================================================================= +" +" Program: CMake - Cross-Platform Makefile Generator +" Module: $RCSfile: cmake-syntax.vim,v $ +" Language: VIM +" Date: $Date: 2008/01/16 16:53:53 $ +" Version: $Revision: 1.9 $ +" +" ============================================================================= + +" Vim syntax file +" Language: CMake +" Author: Andy Cedilnik +" Maintainer: Karthik Krishnan +" Last Change: $Date: 2008/01/16 16:53:53 $ +" Version: $Revision: 1.9 $ +" +" Licence: The CMake license applies to this file. See +" http://www.cmake.org/HTML/Copyright.html +" This implies that distribution with Vim is allowed + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case ignore +syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained +syn region cmakeComment start="#" end="$" contains=cmakeTodo +syn region cmakeRegistry start=/\[/ end=/]/ + \ contained oneline contains=CONTAINED,cmakeTodo,cmakeEscaped +syn region cmakeVariableValue start=/\${/ end=/}/ + \ contained oneline contains=CONTAINED,cmakeTodo +syn region cmakeEnvironment start=/\$ENV{/ end=/}/ + \ contained oneline contains=CONTAINED,cmakeTodo +syn region cmakeString start=/"/ end=/"/ + \ contains=CONTAINED,cmakeTodo,cmakeOperators +syn region cmakeArguments start=/(/ end=/)/ + \ contains=ALLBUT,cmakeArguments,cmakeTodo +syn keyword cmakeSystemVariables + \ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 +syn keyword cmakeOperators + \ ABSOLUTE AND BOOL CACHE COMMAND DEFINED DOC EQUAL EXISTS EXT FALSE GREATER INTERNAL LESS MATCHES NAME NAMES NAME_WE NOT OFF ON OR PATH PATHS PROGRAM STREQUAL STRGREATER STRING STRLESS TRUE + \ contained +syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES + \ nextgroup=cmakeArguments + +" The keywords are generated as: cmake --help-command-list | tr "\n" " " +syn keyword cmakeStatement + \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDFUNCTION ENDIF ENDMACRO ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH FUNCTION GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE + \ nextgroup=cmakeArguments +syn keyword cmakeTodo + \ TODO FIXME XXX + \ contained + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_cmake_syntax_inits") + if version < 508 + let did_cmake_syntax_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + HiLink cmakeStatement Statement + HiLink cmakeComment Comment + HiLink cmakeString String + HiLink cmakeVariableValue Type + HiLink cmakeRegistry Underlined + HiLink cmakeArguments Identifier + HiLink cmakeArgument Constant + HiLink cmakeEnvironment Special + HiLink cmakeOperators Operator + HiLink cmakeMacro PreProc + HiLink cmakeError Error + HiLink cmakeTodo TODO + HiLink cmakeEscaped Special + + delcommand HiLink +endif + +let b:current_syntax = "cmake" + +"EOF" diff --git a/CMakeLua/Example/CMakeLists.txt b/CMakeLua/Example/CMakeLists.txt new file mode 100644 index 0000000..8ee7d72 --- /dev/null +++ b/CMakeLua/Example/CMakeLists.txt @@ -0,0 +1,10 @@ +# The name of our project is "HELLO". CMakeLists files in this project can +# refer to the root source directory of the project as ${HELLO_SOURCE_DIR} and +# to the root binary directory of the project as ${HELLO_BINARY_DIR}. +project (HELLO) + +# Recurse into the "Hello" and "Demo" subdirectories. This does not actually +# cause another cmake executable to run. The same process will walk through +# the project's entire directory structure. +add_subdirectory (Hello) +add_subdirectory (Demo) diff --git a/CMakeLua/Example/CVS/Entries b/CMakeLua/Example/CVS/Entries new file mode 100644 index 0000000..6dfca97 --- /dev/null +++ b/CMakeLua/Example/CVS/Entries @@ -0,0 +1,3 @@ +/CMakeLists.txt/1.2/Mon Jun 27 16:44:11 2005//T1.2 +D/Demo//// +D/Hello//// diff --git a/CMakeLua/Example/CVS/Repository b/CMakeLua/Example/CVS/Repository new file mode 100644 index 0000000..6eba72f --- /dev/null +++ b/CMakeLua/Example/CVS/Repository @@ -0,0 +1 @@ +CMake/Example diff --git a/CMakeLua/Example/CVS/Root b/CMakeLua/Example/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Example/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Example/CVS/Tag b/CMakeLua/Example/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Example/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Example/CVS/Template b/CMakeLua/Example/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Example/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Example/Demo/CMakeLists.txt b/CMakeLua/Example/Demo/CMakeLists.txt new file mode 100644 index 0000000..477700f --- /dev/null +++ b/CMakeLua/Example/Demo/CMakeLists.txt @@ -0,0 +1,12 @@ +# Make sure the compiler can find include files from our Hello library. +include_directories (${HELLO_SOURCE_DIR}/Hello) + +# Make sure the linker can find the Hello library once it is built. +link_directories (${HELLO_BINARY_DIR}/Hello) + +# Add executable called "helloDemo" that is built from the source files +# "demo.cxx" and "demo_b.cxx". The extensions are automatically found. +add_executable (helloDemo demo.cxx demo_b.cxx) + +# Link the executable to the Hello library. +target_link_libraries (helloDemo Hello) diff --git a/CMakeLua/Example/Demo/CVS/Entries b/CMakeLua/Example/Demo/CVS/Entries new file mode 100644 index 0000000..f3f2684 --- /dev/null +++ b/CMakeLua/Example/Demo/CVS/Entries @@ -0,0 +1,4 @@ +/CMakeLists.txt/1.3/Mon Jun 27 16:44:11 2005//T1.3 +/demo.cxx/1.2/Thu Dec 20 13:16:58 2001//T1.2 +/demo_b.cxx/1.1/Wed Dec 19 20:25:09 2001//T1.1 +D diff --git a/CMakeLua/Example/Demo/CVS/Repository b/CMakeLua/Example/Demo/CVS/Repository new file mode 100644 index 0000000..8e376ce --- /dev/null +++ b/CMakeLua/Example/Demo/CVS/Repository @@ -0,0 +1 @@ +CMake/Example/Demo diff --git a/CMakeLua/Example/Demo/CVS/Root b/CMakeLua/Example/Demo/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Example/Demo/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Example/Demo/CVS/Tag b/CMakeLua/Example/Demo/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Example/Demo/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Example/Demo/CVS/Template b/CMakeLua/Example/Demo/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Example/Demo/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Example/Demo/demo.cxx b/CMakeLua/Example/Demo/demo.cxx new file mode 100644 index 0000000..31de038 --- /dev/null +++ b/CMakeLua/Example/Demo/demo.cxx @@ -0,0 +1,10 @@ +#include "hello.h" + +extern Hello hello; + +int main() +{ + hello.Print(); + + return 0; +} diff --git a/CMakeLua/Example/Demo/demo_b.cxx b/CMakeLua/Example/Demo/demo_b.cxx new file mode 100644 index 0000000..08a2329 --- /dev/null +++ b/CMakeLua/Example/Demo/demo_b.cxx @@ -0,0 +1,3 @@ +#include "hello.h" + +Hello hello; diff --git a/CMakeLua/Example/Hello/CMakeLists.txt b/CMakeLua/Example/Hello/CMakeLists.txt new file mode 100644 index 0000000..879f4e5 --- /dev/null +++ b/CMakeLua/Example/Hello/CMakeLists.txt @@ -0,0 +1,3 @@ +# Create a library called "Hello" which includes the source file "hello.cxx". +# The extension is already found. Any number of sources could be listed here. +add_library (Hello hello.cxx) diff --git a/CMakeLua/Example/Hello/CVS/Entries b/CMakeLua/Example/Hello/CVS/Entries new file mode 100644 index 0000000..bb7fad3 --- /dev/null +++ b/CMakeLua/Example/Hello/CVS/Entries @@ -0,0 +1,4 @@ +/CMakeLists.txt/1.3/Mon Jun 27 16:44:11 2005//T1.3 +/hello.cxx/1.1/Wed Dec 19 20:25:09 2001//T1.1 +/hello.h/1.1/Wed Dec 19 20:25:10 2001//T1.1 +D diff --git a/CMakeLua/Example/Hello/CVS/Repository b/CMakeLua/Example/Hello/CVS/Repository new file mode 100644 index 0000000..351c23f --- /dev/null +++ b/CMakeLua/Example/Hello/CVS/Repository @@ -0,0 +1 @@ +CMake/Example/Hello diff --git a/CMakeLua/Example/Hello/CVS/Root b/CMakeLua/Example/Hello/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Example/Hello/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Example/Hello/CVS/Tag b/CMakeLua/Example/Hello/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Example/Hello/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Example/Hello/CVS/Template b/CMakeLua/Example/Hello/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Example/Hello/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Example/Hello/hello.cxx b/CMakeLua/Example/Hello/hello.cxx new file mode 100644 index 0000000..7107cc5 --- /dev/null +++ b/CMakeLua/Example/Hello/hello.cxx @@ -0,0 +1,7 @@ +#include "hello.h" +#include + +void Hello::Print() +{ + printf("Hello, World!\n"); +} diff --git a/CMakeLua/Example/Hello/hello.h b/CMakeLua/Example/Hello/hello.h new file mode 100644 index 0000000..b17d683 --- /dev/null +++ b/CMakeLua/Example/Hello/hello.h @@ -0,0 +1,11 @@ +#ifndef _hello_h +#define _hello_h + + +class Hello +{ +public: + void Print(); +}; + +#endif diff --git a/CMakeLua/Modules/AddFileDependencies.cmake b/CMakeLua/Modules/AddFileDependencies.cmake new file mode 100644 index 0000000..0ea6470 --- /dev/null +++ b/CMakeLua/Modules/AddFileDependencies.cmake @@ -0,0 +1,16 @@ +# - ADD_FILE_DEPENDENCIES(source_file depend_files...) +# Adds the given files as dependencies to source_file +# + +MACRO(ADD_FILE_DEPENDENCIES _file) + + GET_SOURCE_FILE_PROPERTY(_deps ${_file} OBJECT_DEPENDS) + IF (_deps) + SET(_deps ${_deps} ${ARGN}) + ELSE (_deps) + SET(_deps ${ARGN}) + ENDIF (_deps) + + SET_SOURCE_FILES_PROPERTIES(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}") + +ENDMACRO(ADD_FILE_DEPENDENCIES) diff --git a/CMakeLua/Modules/CMake.cmake b/CMakeLua/Modules/CMake.cmake new file mode 100755 index 0000000..7689bd9 --- /dev/null +++ b/CMakeLua/Modules/CMake.cmake @@ -0,0 +1,4 @@ + +# This file is used by cmake.cxx to compute the CMAKE_ROOT location. +# Do not remove this file from cvs without updating cmake.cxx to look +# for a different file. diff --git a/CMakeLua/Modules/CMakeASM-ATTInformation.cmake b/CMakeLua/Modules/CMakeASM-ATTInformation.cmake new file mode 100644 index 0000000..fb44b10 --- /dev/null +++ b/CMakeLua/Modules/CMakeASM-ATTInformation.cmake @@ -0,0 +1,4 @@ +SET(ASM_DIALECT "-ATT") +SET(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS s;S;asm) +INCLUDE(CMakeASMInformation) +SET(ASM_DIALECT) diff --git a/CMakeLua/Modules/CMakeASMCompiler.cmake.in b/CMakeLua/Modules/CMakeASMCompiler.cmake.in new file mode 100644 index 0000000..230805b --- /dev/null +++ b/CMakeLua/Modules/CMakeASMCompiler.cmake.in @@ -0,0 +1,11 @@ +SET(CMAKE_ASM@ASM_DIALECT@_COMPILER "@_CMAKE_ASM_COMPILER@") +SET(CMAKE_ASM@ASM_DIALECT@_COMPILER_ARG1 "@_CMAKE_ASM_COMPILER_ARG1@") +SET(CMAKE_AR "@CMAKE_AR@") +SET(CMAKE_RANLIB "@CMAKE_RANLIB@") +SET(CMAKE_LINKER "@CMAKE_LINKER@") +SET(CMAKE_ASM@ASM_DIALECT@_COMPILER_LOADED 1) +SET(CMAKE_ASM@ASM_DIALECT@_COMPILER_ENV_VAR "@_CMAKE_ASM_COMPILER_ENV_VAR@") + +SET(CMAKE_ASM@ASM_DIALECT@_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +SET(CMAKE_ASM@ASM_DIALECT@_LINKER_PREFERENCE 0) + diff --git a/CMakeLua/Modules/CMakeASMInformation.cmake b/CMakeLua/Modules/CMakeASMInformation.cmake new file mode 100644 index 0000000..f1bd9c9 --- /dev/null +++ b/CMakeLua/Modules/CMakeASMInformation.cmake @@ -0,0 +1,61 @@ +MESSAGE(STATUS "Loaded CMakeASM${ASM_DIALECT}Information - ASM${ASM_DIALECT} support is still experimental, please report issues") + +IF(UNIX) + SET(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o) +ELSE(UNIX) + SET(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj) +ENDIF(UNIX) + +SET(CMAKE_INCLUDE_FLAG_ASM${ASM_DIALECT} "-I") # -I + +GET_FILENAME_COMPONENT(CMAKE_BASE_NAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME_WE) + +IF("${CMAKE_BASE_NAME}" STREQUAL "as") + SET(CMAKE_BASE_NAME gas) +ENDIF("${CMAKE_BASE_NAME}" STREQUAL "as") + +INCLUDE(Platform/${CMAKE_BASE_NAME} OPTIONAL) + +IF(CMAKE_SYSTEM_PROCESSOR) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE) +ENDIF(CMAKE_SYSTEM_PROCESSOR) +IF(NOT _INCLUDED_FILE) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-ASM-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL) +ENDIF(NOT _INCLUDED_FILE) + +INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE) +IF(NOT _INCLUDED_FILE) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-ASM OPTIONAL) +ENDIF(NOT _INCLUDED_FILE) + +IF(NOT CMAKE_ASM@ASM_DIALECT@_SOURCE_FILE_EXTENSIONS) + SET(CMAKE_ASM@ASM_DIALECT@_SOURCE_FILE_EXTENSIONS s;S;asm) +ENDIF(NOT CMAKE_ASM@ASM_DIALECT@_SOURCE_FILE_EXTENSIONS) + +IF(NOT CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT " -o ") +ENDIF(NOT CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT) + +IF(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY) + SET(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY + " cr " + " ") +ENDIF(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY) + +IF(NOT CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE) + SET(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE + " -o ") +ENDIF(NOT CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE) + +# to be done +IF(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY) + SET(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY) +ENDIF(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY) + +IF(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE) + SET(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE) +ENDIF(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE) + + +SET(CMAKE_ASM${ASM_DIALECT}_INFOMATION_LOADED 1) + diff --git a/CMakeLua/Modules/CMakeAddNewLanguage.txt b/CMakeLua/Modules/CMakeAddNewLanguage.txt new file mode 100755 index 0000000..203c39d --- /dev/null +++ b/CMakeLua/Modules/CMakeAddNewLanguage.txt @@ -0,0 +1,17 @@ +CMakeDetermine(LANG)Compiler.cmake -> this should find the compiler for LANG and configure CMake(LANG)Compiler.cmake.in + +CMake(LANG)Compiler.cmake.in -> used by CMakeDetermine(LANG)Compiler.cmake + This file is used to store compiler information and is copied down into try + compile directories so that try compiles do not need to re-determine and test the LANG + +CMakeTest(LANG)Compiler.cmake -> test the compiler and set: + SET(CMAKE_(LANG)_COMPILER_WORKS 1 CACHE INTERNAL "") + +CMake(LANG)Information.cmake -> set up rule variables for LANG : + CMAKE_(LANG)_CREATE_SHARED_LIBRARY + CMAKE_(LANG)_CREATE_SHARED_MODULE + CMAKE_(LANG)_CREATE_STATIC_LIBRARY + CMAKE_(LANG)_COMPILE_OBJECT + CMAKE_(LANG)_LINK_EXECUTABLE + + diff --git a/CMakeLua/Modules/CMakeBackwardCompatibilityC.cmake b/CMakeLua/Modules/CMakeBackwardCompatibilityC.cmake new file mode 100644 index 0000000..0333384 --- /dev/null +++ b/CMakeLua/Modules/CMakeBackwardCompatibilityC.cmake @@ -0,0 +1,71 @@ + +# Nothing here yet +IF(CMAKE_GENERATOR MATCHES "Visual Studio 7") + INCLUDE(CMakeVS7BackwardCompatibility) + SET(CMAKE_SKIP_COMPATIBILITY_TESTS 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7") +IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") + INCLUDE(CMakeVS6BackwardCompatibility) + SET(CMAKE_SKIP_COMPATIBILITY_TESTS 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") + +IF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS) + INCLUDE (CheckTypeSize) + CHECK_TYPE_SIZE(int CMAKE_SIZEOF_INT) + CHECK_TYPE_SIZE(long CMAKE_SIZEOF_LONG) + CHECK_TYPE_SIZE("void*" CMAKE_SIZEOF_VOID_P) + CHECK_TYPE_SIZE(char CMAKE_SIZEOF_CHAR) + CHECK_TYPE_SIZE(short CMAKE_SIZEOF_SHORT) + CHECK_TYPE_SIZE(float CMAKE_SIZEOF_FLOAT) + CHECK_TYPE_SIZE(double CMAKE_SIZEOF_DOUBLE) + + INCLUDE (CheckIncludeFile) + CHECK_INCLUDE_FILE("limits.h" CMAKE_HAVE_LIMITS_H) + CHECK_INCLUDE_FILE("unistd.h" CMAKE_HAVE_UNISTD_H) + CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H) + + INCLUDE (CheckIncludeFiles) + CHECK_INCLUDE_FILES("sys/types.h;sys/prctl.h" CMAKE_HAVE_SYS_PRCTL_H) + + INCLUDE (TestBigEndian) + TEST_BIG_ENDIAN(CMAKE_WORDS_BIGENDIAN) + INCLUDE (FindX11) + + IF("${X11_X11_INCLUDE_PATH}" MATCHES "^/usr/include$") + SET (CMAKE_X_CFLAGS "" CACHE STRING "X11 extra flags.") + ELSE("${X11_X11_INCLUDE_PATH}" MATCHES "^/usr/include$") + SET (CMAKE_X_CFLAGS "-I${X11_X11_INCLUDE_PATH}" CACHE STRING + "X11 extra flags.") + ENDIF("${X11_X11_INCLUDE_PATH}" MATCHES "^/usr/include$") + SET (CMAKE_X_LIBS "${X11_LIBRARIES}" CACHE STRING + "Libraries and options used in X11 programs.") + SET (CMAKE_HAS_X "${X11_FOUND}" CACHE INTERNAL "Is X11 around.") + + INCLUDE (FindThreads) + + SET (CMAKE_THREAD_LIBS "${CMAKE_THREAD_LIBS_INIT}" CACHE STRING + "Thread library used.") + + SET (CMAKE_USE_PTHREADS "${CMAKE_USE_PTHREADS_INIT}" CACHE BOOL + "Use the pthreads library.") + + SET (CMAKE_USE_WIN32_THREADS "${CMAKE_USE_WIN32_THREADS_INIT}" CACHE BOOL + "Use the win32 thread library.") + + SET (CMAKE_HP_PTHREADS ${CMAKE_HP_PTHREADS_INIT} CACHE BOOL + "Use HP pthreads.") + + SET (CMAKE_USE_SPROC ${CMAKE_USE_SPROC_INIT} CACHE BOOL + "Use sproc libs.") +ENDIF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS) + +MARK_AS_ADVANCED( +CMAKE_HP_PTHREADS +CMAKE_THREAD_LIBS +CMAKE_USE_PTHREADS +CMAKE_USE_SPROC +CMAKE_USE_WIN32_THREADS +CMAKE_X_CFLAGS +CMAKE_X_LIBS +) + diff --git a/CMakeLua/Modules/CMakeBackwardCompatibilityCXX.cmake b/CMakeLua/Modules/CMakeBackwardCompatibilityCXX.cmake new file mode 100644 index 0000000..29dabc6 --- /dev/null +++ b/CMakeLua/Modules/CMakeBackwardCompatibilityCXX.cmake @@ -0,0 +1,40 @@ +# - define a bunch of backwards compatibility variables +# CMAKE_ANSI_CXXFLAGS - flag for ansi c++ +# CMAKE_HAS_ANSI_STRING_STREAM - has +# INCLUDE(TestForANSIStreamHeaders) +# INCLUDE(CheckIncludeFileCXX) +# INCLUDE(TestForSTDNamespace) +# INCLUDE(TestForANSIForScope) +IF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS) + # check for some ANSI flags in the CXX compiler if it is not gnu + IF(NOT CMAKE_COMPILER_IS_GNUCXX) + INCLUDE(TestCXXAcceptsFlag) + SET(CMAKE_TRY_ANSI_CXX_FLAGS "") + IF(CMAKE_SYSTEM MATCHES "IRIX.*") + SET(CMAKE_TRY_ANSI_CXX_FLAGS "-LANG:std") + ENDIF(CMAKE_SYSTEM MATCHES "IRIX.*") + IF(CMAKE_SYSTEM MATCHES "OSF.*") + SET(CMAKE_TRY_ANSI_CXX_FLAGS "-std strict_ansi -nopure_cname") + ENDIF(CMAKE_SYSTEM MATCHES "OSF.*") + # if CMAKE_TRY_ANSI_CXX_FLAGS has something in it, see + # if the compiler accepts it + IF( CMAKE_TRY_ANSI_CXX_FLAGS MATCHES ".+") + CHECK_CXX_ACCEPTS_FLAG(${CMAKE_TRY_ANSI_CXX_FLAGS} CMAKE_CXX_ACCEPTS_FLAGS) + # if the compiler liked the flag then set CMAKE_ANSI_CXXFLAGS + # to the flag + IF(CMAKE_CXX_ACCEPTS_FLAGS) + SET(CMAKE_ANSI_CXXFLAGS ${CMAKE_TRY_ANSI_CXX_FLAGS} CACHE INTERNAL + "What flags are required by the c++ compiler to make it ansi." ) + ENDIF(CMAKE_CXX_ACCEPTS_FLAGS) + ENDIF( CMAKE_TRY_ANSI_CXX_FLAGS MATCHES ".+") + ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS}) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_ANSI_CXXFLAGS}") + INCLUDE(TestForANSIStreamHeaders) + INCLUDE(CheckIncludeFileCXX) + INCLUDE(TestForSTDNamespace) + INCLUDE(TestForANSIForScope) + INCLUDE(TestForSSTREAM) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}") +ENDIF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS) + diff --git a/CMakeLua/Modules/CMakeBorlandFindMake.cmake b/CMakeLua/Modules/CMakeBorlandFindMake.cmake new file mode 100755 index 0000000..7efc1c2 --- /dev/null +++ b/CMakeLua/Modules/CMakeBorlandFindMake.cmake @@ -0,0 +1,3 @@ +SET (CMAKE_MAKE_PROGRAM "make" CACHE STRING + "Program used to build from makefiles.") +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) diff --git a/CMakeLua/Modules/CMakeBuildSettings.cmake.in b/CMakeLua/Modules/CMakeBuildSettings.cmake.in new file mode 100644 index 0000000..b018ada --- /dev/null +++ b/CMakeLua/Modules/CMakeBuildSettings.cmake.in @@ -0,0 +1,29 @@ +# This file has been automatically generated by CMake. DO NOT EDIT! +# It contains the build configuration for @PROJECT_NAME@. The command +# CMAKE_EXPORT_BUILD_SETTINGS(...) was used by @PROJECT_NAME@ to +# generate this file. Another project can use +# CMAKE_IMPORT_BUILD_SETTINGS(...) to load the build configuration +# from this file. The contents of this file may be different across +# versions of CMake. The values set here should not be used by user +# code. + +SET(CMAKE_BUILD_SETTING_CMAKE_MAJOR_VERSION "@CMAKE_MAJOR_VERSION@") +SET(CMAKE_BUILD_SETTING_CMAKE_MINOR_VERSION "@CMAKE_MINOR_VERSION@") +SET(CMAKE_BUILD_SETTING_PROJECT_NAME "@PROJECT_NAME@") + +SET(CMAKE_BUILD_SETTING_C_COMPILER "@CMAKE_C_COMPILER@") +SET(CMAKE_BUILD_SETTING_C_FLAGS "@CMAKE_C_FLAGS@") +SET(CMAKE_BUILD_SETTING_C_FLAGS_DEBUG "@CMAKE_C_FLAGS_DEBUG@") +SET(CMAKE_BUILD_SETTING_C_FLAGS_RELEASE "@CMAKE_C_FLAGS_RELEASE@") +SET(CMAKE_BUILD_SETTING_C_FLAGS_MINSIZEREL "@CMAKE_C_FLAGS_MINSIZEREL@") +SET(CMAKE_BUILD_SETTING_C_FLAGS_RELWITHDEBINFO "@CMAKE_C_FLAGS_RELWITHDEBINFO@") + +SET(CMAKE_BUILD_SETTING_CXX_COMPILER "@CMAKE_CXX_COMPILER@") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS "@CMAKE_CXX_FLAGS@") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_DEBUG "@CMAKE_CXX_FLAGS_DEBUG@") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_RELEASE "@CMAKE_CXX_FLAGS_RELEASE@") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_MINSIZEREL "@CMAKE_CXX_FLAGS_MINSIZEREL@") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_RELWITHDEBINFO "@CMAKE_CXX_FLAGS_RELWITHDEBINFO@") + +SET(CMAKE_BUILD_SETTING_BUILD_TYPE "@CMAKE_BUILD_TYPE@") +SET(CMAKE_BUILD_SETTING_BUILD_TOOL "@CMAKE_BUILD_TOOL@") diff --git a/CMakeLua/Modules/CMakeCCompiler.cmake.in b/CMakeLua/Modules/CMakeCCompiler.cmake.in new file mode 100644 index 0000000..e334c47 --- /dev/null +++ b/CMakeLua/Modules/CMakeCCompiler.cmake.in @@ -0,0 +1,36 @@ +SET(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@") +SET(CMAKE_C_COMPILER_ARG1 "@CMAKE_C_COMPILER_ARG1@") +SET(CMAKE_C_COMPILER_ID "@CMAKE_C_COMPILER_ID@") +SET(CMAKE_C_PLATFORM_ID "@CMAKE_C_PLATFORM_ID@") +SET(CMAKE_AR "@CMAKE_AR@") +SET(CMAKE_RANLIB "@CMAKE_RANLIB@") +SET(CMAKE_COMPILER_IS_GNUCC @CMAKE_COMPILER_IS_GNUCC@) +SET(CMAKE_C_COMPILER_LOADED 1) +SET(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@) +SET(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@) +IF(CMAKE_COMPILER_IS_CYGWIN) + SET(CYGWIN 1) + SET(UNIX 1) +ENDIF(CMAKE_COMPILER_IS_CYGWIN) + +SET(CMAKE_C_COMPILER_ENV_VAR "CC") + +IF(CMAKE_COMPILER_IS_MINGW) + SET(MINGW 1) +ENDIF(CMAKE_COMPILER_IS_MINGW) +SET(CMAKE_C_COMPILER_ID_RUN 1) +SET(CMAKE_C_SOURCE_FILE_EXTENSIONS c) +SET(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +SET(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +SET(CMAKE_C_SIZEOF_DATA_PTR "@CMAKE_C_SIZEOF_DATA_PTR@") +SET(CMAKE_C_COMPILER_ABI "@CMAKE_C_COMPILER_ABI@") + +IF(CMAKE_C_SIZEOF_DATA_PTR) + SET(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +ENDIF(CMAKE_C_SIZEOF_DATA_PTR) + +IF(CMAKE_C_COMPILER_ABI) + SET(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +ENDIF(CMAKE_C_COMPILER_ABI) diff --git a/CMakeLua/Modules/CMakeCCompilerABI.c b/CMakeLua/Modules/CMakeCCompilerABI.c new file mode 100644 index 0000000..f73e7fc --- /dev/null +++ b/CMakeLua/Modules/CMakeCCompilerABI.c @@ -0,0 +1,28 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#ifdef __CLASSIC_C__ +# define const +#endif + +/*--------------------------------------------------------------------------*/ + +#include "CMakeCompilerABI.h" + +/*--------------------------------------------------------------------------*/ + +/* Make sure the information strings are referenced. */ +#define REQUIRE(x) (&x[0] != &require) + +int main() +{ + const char require = 0; + return + ( + REQUIRE(info_sizeof_dptr) +#if defined(ABI_ID) + && REQUIRE(info_abi) +#endif + ); +} diff --git a/CMakeLua/Modules/CMakeCCompilerId.c b/CMakeLua/Modules/CMakeCCompilerId.c new file mode 100644 index 0000000..ec11b6c --- /dev/null +++ b/CMakeLua/Modules/CMakeCCompilerId.c @@ -0,0 +1,81 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#ifdef __CLASSIC_C__ +# define const +#endif + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + +#elif defined(__WATCOMC__) +# define COMPILER_ID "Watcom" + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + +#elif defined(__IBMC__) +# define COMPILER_ID "VisualAge" + +#elif defined(__PGI) +# define COMPILER_ID "PGI" + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + +#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +/* Analog Devices C++ compiler for Blackfin, TigerSHARC and + SHARC (21000) DSPs */ +# define COMPILER_ID "ADSP" + +/* IAR Systems compiler for embedded systems. + http://www.iar.com + Not supported yet by CMake +#elif defined(__IAR_SYSTEMS_ICC__) +# define COMPILER_ID "IAR" */ + +/* sdcc, the small devices C compiler for embedded systems, + http://sdcc.sourceforge.net */ +#elif defined(SDCC) +# define COMPILER_ID "SDCC" + +#elif defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" + +/* This compiler is either not known or is too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" + +#endif + +static char const info_compiler[] = "INFO:compiler[" COMPILER_ID "]"; + +/* Include the platform identification source. */ +#include "CMakePlatformId.h" + +/* Make sure the information strings are referenced. */ +int main() +{ + return (&info_compiler[0] != &info_platform[0]); +} diff --git a/CMakeLua/Modules/CMakeCInformation.cmake b/CMakeLua/Modules/CMakeCInformation.cmake new file mode 100755 index 0000000..77df12e --- /dev/null +++ b/CMakeLua/Modules/CMakeCInformation.cmake @@ -0,0 +1,173 @@ + +# This file sets the basic flags for the C language in CMake. +# It also loads the available platform file for the system-compiler +# if it exists. +# It also loads a system - compiler - processor (or target hardware) +# specific file, which is mainly useful for crosscompiling and embedded systems. + +# some compilers use different extensions (e.g. sdcc uses .rel) +# so set the extension here first so it can be overridden by the compiler specific file +IF(UNIX) + SET(CMAKE_C_OUTPUT_EXTENSION .o) +ELSE(UNIX) + SET(CMAKE_C_OUTPUT_EXTENSION .obj) +ENDIF(UNIX) + +GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_C_COMPILER} NAME_WE) +IF(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_BASE_NAME gcc) +ENDIF(CMAKE_COMPILER_IS_GNUCC) + + +# load a hardware specific file, mostly useful for embedded compilers +IF(CMAKE_SYSTEM_PROCESSOR) + IF(CMAKE_C_COMPILER_ID) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE) + ENDIF(CMAKE_C_COMPILER_ID) + IF (NOT _INCLUDED_FILE) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL) + ENDIF (NOT _INCLUDED_FILE) +ENDIF(CMAKE_SYSTEM_PROCESSOR) + + +# load the system- and compiler specific files +IF(CMAKE_C_COMPILER_ID) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C OPTIONAL RESULT_VARIABLE _INCLUDED_FILE) +ENDIF(CMAKE_C_COMPILER_ID) +IF (NOT _INCLUDED_FILE) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL) +ENDIF (NOT _INCLUDED_FILE) + + +# This should be included before the _INIT variables are +# used to initialize the cache. Since the rule variables +# have if blocks on them, users can still define them here. +# But, it should still be after the platform file so changes can +# be made to those values. + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE_C) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_C}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_C) + + +# for most systems a module is the same as a shared library +# so unless the variable CMAKE_MODULE_EXISTS is set just +# copy the values from the LIBRARY variables +IF(NOT CMAKE_MODULE_EXISTS) + SET(CMAKE_SHARED_MODULE_C_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS}) + SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}) +ENDIF(NOT CMAKE_MODULE_EXISTS) + +SET (CMAKE_C_FLAGS "$ENV{CFLAGS}" CACHE STRING + "Flags for C compiler.") +IF (CMAKE_C_FLAGS_INIT) + SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_INIT}") +ENDIF (CMAKE_C_FLAGS_INIT) + +IF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) +# default build type is none + IF(NOT CMAKE_NO_BUILD_TYPE) + SET (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE_INIT} CACHE STRING + "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.") + ENDIF(NOT CMAKE_NO_BUILD_TYPE) + SET (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG_INIT}" CACHE STRING + "Flags used by the compiler during debug builds.") + SET (CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL_INIT}" CACHE STRING + "Flags used by the compiler during release minsize builds.") + SET (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE_INIT}" CACHE STRING + "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING + "Flags used by the compiler during Release with Debug Info builds.") +ENDIF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) + +IF(CMAKE_C_STANDARD_LIBRARIES_INIT) + SET(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES_INIT}" + CACHE STRING "Libraries linked by defalut with all C applications.") + MARK_AS_ADVANCED(CMAKE_C_STANDARD_LIBRARIES) +ENDIF(CMAKE_C_STANDARD_LIBRARIES_INIT) + +INCLUDE(CMakeCommonLanguageInclude) + +# now define the following rule variables + +# CMAKE_C_CREATE_SHARED_LIBRARY +# CMAKE_C_CREATE_SHARED_MODULE +# CMAKE_C_CREATE_STATIC_LIBRARY +# CMAKE_C_COMPILE_OBJECT +# CMAKE_C_LINK_EXECUTABLE + +# variables supplied by the generator at use time +# +# the target without the suffix +# +# +# +# +# + +# C compiler information +# +# +# +# + +# Static library tools +# +# + + +# create a C shared library +IF(NOT CMAKE_C_CREATE_SHARED_LIBRARY) + SET(CMAKE_C_CREATE_SHARED_LIBRARY + " -o ") +ENDIF(NOT CMAKE_C_CREATE_SHARED_LIBRARY) + +# create a C shared module just copy the shared library rule +IF(NOT CMAKE_C_CREATE_SHARED_MODULE) + SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY}) +ENDIF(NOT CMAKE_C_CREATE_SHARED_MODULE) + +# create a C static library +IF(NOT CMAKE_C_CREATE_STATIC_LIBRARY) + SET(CMAKE_C_CREATE_STATIC_LIBRARY + " cr " + " ") +ENDIF(NOT CMAKE_C_CREATE_STATIC_LIBRARY) + +# compile a C file into an object file +IF(NOT CMAKE_C_COMPILE_OBJECT) + SET(CMAKE_C_COMPILE_OBJECT + " -o -c ") +ENDIF(NOT CMAKE_C_COMPILE_OBJECT) + +IF(NOT CMAKE_C_LINK_EXECUTABLE) + SET(CMAKE_C_LINK_EXECUTABLE + " -o ") +ENDIF(NOT CMAKE_C_LINK_EXECUTABLE) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG) + SET(CMAKE_EXECUTABLE_RUNTIME_C_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG_SEP) + SET(CMAKE_EXECUTABLE_RUNTIME_C_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG_SEP) + +IF(NOT CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG) + SET(CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG) + +MARK_AS_ADVANCED( +CMAKE_C_FLAGS +CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELWITHDEBINFO +) +SET(CMAKE_C_INFORMATION_LOADED 1) + + diff --git a/CMakeLua/Modules/CMakeCXXCompiler.cmake.in b/CMakeLua/Modules/CMakeCXXCompiler.cmake.in new file mode 100644 index 0000000..81380c9 --- /dev/null +++ b/CMakeLua/Modules/CMakeCXXCompiler.cmake.in @@ -0,0 +1,36 @@ +SET(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@") +SET(CMAKE_CXX_COMPILER_ARG1 "@CMAKE_CXX_COMPILER_ARG1@") +SET(CMAKE_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@") +SET(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@") +SET(CMAKE_AR "@CMAKE_AR@") +SET(CMAKE_RANLIB "@CMAKE_RANLIB@") +SET(CMAKE_COMPILER_IS_GNUCXX @CMAKE_COMPILER_IS_GNUCXX@) +SET(CMAKE_CXX_COMPILER_LOADED 1) +SET(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@) +SET(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@) +IF(CMAKE_COMPILER_IS_CYGWIN) + SET(CYGWIN 1) + SET(UNIX 1) +ENDIF(CMAKE_COMPILER_IS_CYGWIN) + +SET(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +IF(CMAKE_COMPILER_IS_MINGW) + SET(MINGW 1) +ENDIF(CMAKE_COMPILER_IS_MINGW) +SET(CMAKE_CXX_COMPILER_ID_RUN 1) +SET(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;H;o;O;obj;OBJ;def;DEF;rc;RC) +SET(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm) +SET(CMAKE_CXX_LINKER_PREFERENCE 30) + +# Save compiler ABI information. +SET(CMAKE_CXX_SIZEOF_DATA_PTR "@CMAKE_CXX_SIZEOF_DATA_PTR@") +SET(CMAKE_CXX_COMPILER_ABI "@CMAKE_CXX_COMPILER_ABI@") + +IF(CMAKE_CXX_SIZEOF_DATA_PTR) + SET(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +ENDIF(CMAKE_CXX_SIZEOF_DATA_PTR) + +IF(CMAKE_CXX_COMPILER_ABI) + SET(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +ENDIF(CMAKE_CXX_COMPILER_ABI) diff --git a/CMakeLua/Modules/CMakeCXXCompilerABI.cpp b/CMakeLua/Modules/CMakeCXXCompilerABI.cpp new file mode 100644 index 0000000..7fb3618 --- /dev/null +++ b/CMakeLua/Modules/CMakeCXXCompilerABI.cpp @@ -0,0 +1,24 @@ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +/*--------------------------------------------------------------------------*/ + +#include "CMakeCompilerABI.h" + +/*--------------------------------------------------------------------------*/ + +/* Make sure the information strings are referenced. */ +#define REQUIRE(x) (&x[0] != &require) + +int main() +{ + const char require = 0; + return + ( + REQUIRE(info_sizeof_dptr) +#if defined(ABI_ID) + && REQUIRE(info_abi) +#endif + ); +} diff --git a/CMakeLua/Modules/CMakeCXXCompilerId.cpp b/CMakeLua/Modules/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..86d65bd --- /dev/null +++ b/CMakeLua/Modules/CMakeCXXCompilerId.cpp @@ -0,0 +1,72 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + +#elif defined(__WATCOMC__) +# define COMPILER_ID "Watcom" + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + +#elif defined(__IBMCPP__) +# define COMPILER_ID "VisualAge" + +#elif defined(__PGI) +# define COMPILER_ID "PGI" + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + +#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +/* Analog Devices C++ compiler for Blackfin, TigerSHARC and + SHARC (21000) DSPs */ +# define COMPILER_ID "ADSP" + +#elif defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" + +/* This compiler is either not known or is too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" + +#endif + +static char const info_compiler[] = "INFO:compiler[" COMPILER_ID "]"; + +/* Include the platform identification source. */ +#include "CMakePlatformId.h" + +/* Make sure the information strings are referenced. */ +int main() +{ + return (&info_compiler[0] != &info_platform[0]); +} diff --git a/CMakeLua/Modules/CMakeCXXInformation.cmake b/CMakeLua/Modules/CMakeCXXInformation.cmake new file mode 100755 index 0000000..6cd2ec7 --- /dev/null +++ b/CMakeLua/Modules/CMakeCXXInformation.cmake @@ -0,0 +1,242 @@ + +# This file sets the basic flags for the C++ language in CMake. +# It also loads the available platform file for the system-compiler +# if it exists. +# It also loads a system - compiler - processor (or target hardware) +# specific file, which is mainly useful for crosscompiling and embedded systems. + +# some compilers use different extensions (e.g. sdcc uses .rel) +# so set the extension here first so it can be overridden by the compiler specific file +IF(UNIX) + SET(CMAKE_CXX_OUTPUT_EXTENSION .o) +ELSE(UNIX) + SET(CMAKE_CXX_OUTPUT_EXTENSION .obj) +ENDIF(UNIX) + + +GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE) +# since the gnu compiler has several names force g++ +IF(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_BASE_NAME g++) +ENDIF(CMAKE_COMPILER_IS_GNUCXX) + + +# load a hardware specific file, mostly useful for embedded compilers +IF(CMAKE_SYSTEM_PROCESSOR) + IF(CMAKE_CXX_COMPILER_ID) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE) + ENDIF(CMAKE_CXX_COMPILER_ID) + IF (NOT _INCLUDED_FILE) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL) + ENDIF (NOT _INCLUDED_FILE) +ENDIF(CMAKE_SYSTEM_PROCESSOR) + +# load the system- and compiler specific files +IF(CMAKE_CXX_COMPILER_ID) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL RESULT_VARIABLE _INCLUDED_FILE) +ENDIF(CMAKE_CXX_COMPILER_ID) +IF (NOT _INCLUDED_FILE) + INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL) +ENDIF (NOT _INCLUDED_FILE) + + +# This should be included before the _INIT variables are +# used to initialize the cache. Since the rule variables +# have if blocks on them, users can still define them here. +# But, it should still be after the platform file so changes can +# be made to those values. + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) + + +# for most systems a module is the same as a shared library +# so unless the variable CMAKE_MODULE_EXISTS is set just +# copy the values from the LIBRARY variables +IF(NOT CMAKE_MODULE_EXISTS) + SET(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}) +ENDIF(NOT CMAKE_MODULE_EXISTS) +# Create a set of shared library variable specific to C++ +# For 90% of the systems, these are the same flags as the C versions +# so if these are not set just copy the flags from the c version +IF(NOT CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS) + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS) + +IF(NOT CMAKE_SHARED_LIBRARY_CXX_FLAGS) + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_CXX_FLAGS) + +IF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS) + SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}) +ENDIF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS) + +IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG) + +IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP) + +IF(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG) + SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG) + SET(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG_SEP) + SET(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG_SEP) + +IF(NOT CMAKE_EXECUTABLE_RPATH_LINK_CXX_FLAG) + SET(CMAKE_EXECUTABLE_RPATH_LINK_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RPATH_LINK_CXX_FLAG) + +IF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_WITH_RUNTIME_PATH) + SET(CMAKE_SHARED_LIBRARY_LINK_CXX_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH}) +ENDIF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_WITH_RUNTIME_PATH) + +IF(NOT CMAKE_INCLUDE_FLAG_CXX) + SET(CMAKE_INCLUDE_FLAG_CXX ${CMAKE_INCLUDE_FLAG_C}) +ENDIF(NOT CMAKE_INCLUDE_FLAG_CXX) + +IF(NOT CMAKE_INCLUDE_FLAG_SEP_CXX) + SET(CMAKE_INCLUDE_FLAG_SEP_CXX ${CMAKE_INCLUDE_FLAG_SEP_C}) +ENDIF(NOT CMAKE_INCLUDE_FLAG_SEP_CXX) + +# repeat for modules +IF(NOT CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS) + SET(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS) + +IF(NOT CMAKE_SHARED_MODULE_CXX_FLAGS) + SET(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_MODULE_CXX_FLAGS) + +IF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG) + SET(CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG ${CMAKE_SHARED_MODULE_RUNTIME_FLAG}) +ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG) + +IF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP) + SET(CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_MODULE_RUNTIME_FLAG_SEP}) +ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP) + +# Initialize CXX link type selection flags from C versions. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + IF(NOT CMAKE_${type}_LINK_STATIC_CXX_FLAGS) + SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS + ${CMAKE_${type}_LINK_STATIC_C_FLAGS}) + ENDIF(NOT CMAKE_${type}_LINK_STATIC_CXX_FLAGS) + IF(NOT CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS) + SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS + ${CMAKE_${type}_LINK_DYNAMIC_C_FLAGS}) + ENDIF(NOT CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS) +ENDFOREACH(type) + +# add the flags to the cache based +# on the initial values computed in the platform/*.cmake files +# use _INIT variables so that this only happens the first time +# and you can set these flags in the cmake cache +SET (CMAKE_CXX_FLAGS "$ENV{CXXFLAGS}" CACHE STRING + "Flags used by the compiler during all build types.") + +IF (CMAKE_CXX_FLAGS_INIT) + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_INIT}") +ENDIF (CMAKE_CXX_FLAGS_INIT) + +IF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) + SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG_INIT}" CACHE STRING + "Flags used by the compiler during debug builds.") + SET (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT}" CACHE STRING + "Flags used by the compiler during release minsize builds.") + SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE_INIT}" CACHE STRING + "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING + "Flags used by the compiler during Release with Debug Info builds.") + +ENDIF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) + +IF(CMAKE_CXX_STANDARD_LIBRARIES_INIT) + SET(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES_INIT}" + CACHE STRING "Libraries linked by defalut with all C++ applications.") + MARK_AS_ADVANCED(CMAKE_CXX_STANDARD_LIBRARIES) +ENDIF(CMAKE_CXX_STANDARD_LIBRARIES_INIT) + +INCLUDE(CMakeCommonLanguageInclude) + +# now define the following rules: +# CMAKE_CXX_CREATE_SHARED_LIBRARY +# CMAKE_CXX_CREATE_SHARED_MODULE +# CMAKE_CXX_CREATE_STATIC_LIBRARY +# CMAKE_CXX_COMPILE_OBJECT +# CMAKE_CXX_LINK_EXECUTABLE + +# variables supplied by the generator at use time +# +# the target without the suffix +# +# +# +# +# + +# CXX compiler information +# +# +# +# + +# Static library tools +# +# + + +# create a shared C++ library +IF(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY) + SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + " -o ") +ENDIF(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY) + +# create a c++ shared module copy the shared library rule by default +IF(NOT CMAKE_CXX_CREATE_SHARED_MODULE) + SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) +ENDIF(NOT CMAKE_CXX_CREATE_SHARED_MODULE) + + +# create a C++ static library +IF(NOT CMAKE_CXX_CREATE_STATIC_LIBRARY) + SET(CMAKE_CXX_CREATE_STATIC_LIBRARY + " cr " + " ") +ENDIF(NOT CMAKE_CXX_CREATE_STATIC_LIBRARY) + +# compile a C++ file into an object file +IF(NOT CMAKE_CXX_COMPILE_OBJECT) + SET(CMAKE_CXX_COMPILE_OBJECT + " -o -c ") +ENDIF(NOT CMAKE_CXX_COMPILE_OBJECT) + +IF(NOT CMAKE_CXX_LINK_EXECUTABLE) + SET(CMAKE_CXX_LINK_EXECUTABLE + " -o ") +ENDIF(NOT CMAKE_CXX_LINK_EXECUTABLE) + +MARK_AS_ADVANCED( +CMAKE_BUILD_TOOL +CMAKE_VERBOSE_MAKEFILE +CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_DEBUG) + +SET(CMAKE_CXX_INFORMATION_LOADED 1) + diff --git a/CMakeLua/Modules/CMakeCommonLanguageInclude.cmake b/CMakeLua/Modules/CMakeCommonLanguageInclude.cmake new file mode 100755 index 0000000..373a9a3 --- /dev/null +++ b/CMakeLua/Modules/CMakeCommonLanguageInclude.cmake @@ -0,0 +1,94 @@ + +# this file has flags that are shared across languages and sets +# cache values that can be initialized in the platform-compiler.cmake file +# it may be included by more than one language. + +SET (CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS_INIT} $ENV{LDFLAGS} + CACHE STRING "Flags used by the linker.") + + +IF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) +# default build type is none + IF(NOT CMAKE_NO_BUILD_TYPE) + SET (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE_INIT} CACHE STRING + "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.") + ENDIF(NOT CMAKE_NO_BUILD_TYPE) + + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT} CACHE STRING + "Flags used by the linker during debug builds.") + + SET (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT} CACHE STRING + "Flags used by the linker during release minsize builds.") + + SET (CMAKE_EXE_LINKER_FLAGS_RELEASE ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT} CACHE STRING + "Flags used by the linker during release builds.") + + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO + ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT} CACHE STRING + "Flags used by the linker during Release with Debug Info builds.") + + SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT} CACHE STRING + "Flags used by the linker during debug builds.") + + SET (CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL ${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL_INIT} + CACHE STRING + "Flags used by the linker during release minsize builds.") + + SET (CMAKE_SHARED_LINKER_FLAGS_RELEASE ${CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT} CACHE STRING + "Flags used by the linker during release builds.") + + SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO + ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT} CACHE STRING + "Flags used by the linker during Release with Debug Info builds.") + + SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG ${CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT} CACHE STRING + "Flags used by the linker during debug builds.") + + SET (CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL ${CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL_INIT} + CACHE STRING + "Flags used by the linker during release minsize builds.") + + SET (CMAKE_MODULE_LINKER_FLAGS_RELEASE ${CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT} CACHE STRING + "Flags used by the linker during release builds.") + + SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO + ${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT} CACHE STRING + "Flags used by the linker during Release with Debug Info builds.") + +ENDIF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) +# shared linker flags +SET (CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS_INIT} $ENV{LDFLAGS} + CACHE STRING "Flags used by the linker during the creation of dll's.") + +# module linker flags +SET (CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS_INIT} $ENV{LDFLAGS} + CACHE STRING "Flags used by the linker during the creation of modules.") + +SET(CMAKE_BUILD_TOOL ${CMAKE_MAKE_PROGRAM} CACHE INTERNAL + "What is the target build tool cmake is generating for.") + + +MARK_AS_ADVANCED( +CMAKE_BUILD_TOOL +CMAKE_VERBOSE_MAKEFILE + +CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO + +CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO + +CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO + +) + diff --git a/CMakeLua/Modules/CMakeCompilerABI.h b/CMakeLua/Modules/CMakeCompilerABI.h new file mode 100644 index 0000000..8980abb --- /dev/null +++ b/CMakeLua/Modules/CMakeCompilerABI.h @@ -0,0 +1,26 @@ +/*--------------------------------------------------------------------------*/ + +/* Size of a pointer-to-data in bytes. */ +#define SIZEOF_DPTR (sizeof(void*)) +const char info_sizeof_dptr[] = { + 'I', 'N', 'F', 'O', ':', 's', 'i', 'z', 'e', 'o', 'f', '_', 'd', 'p', 't', 'r', '[', + ('0' + ((SIZEOF_DPTR / 10)%10)), + ('0' + (SIZEOF_DPTR % 10)), + ']','\0'}; + +/*--------------------------------------------------------------------------*/ + +/* Application Binary Interface. */ +#if defined(__sgi) && defined(_ABIO32) +# define ABI_ID "ELF O32" +#elif defined(__sgi) && defined(_ABIN32) +# define ABI_ID "ELF N32" +#elif defined(__sgi) && defined(_ABI64) +# define ABI_ID "ELF 64" +#elif defined(__ELF__) +# define ABI_ID "ELF" +#endif + +#if defined(ABI_ID) +static char const info_abi[] = "INFO:abi[" ABI_ID "]"; +#endif diff --git a/CMakeLua/Modules/CMakeConfigurableFile.in b/CMakeLua/Modules/CMakeConfigurableFile.in new file mode 100644 index 0000000..4cf74a1 --- /dev/null +++ b/CMakeLua/Modules/CMakeConfigurableFile.in @@ -0,0 +1,2 @@ +@CMAKE_CONFIGURABLE_FILE_CONTENT@ + diff --git a/CMakeLua/Modules/CMakeDependentOption.cmake b/CMakeLua/Modules/CMakeDependentOption.cmake new file mode 100644 index 0000000..2183191 --- /dev/null +++ b/CMakeLua/Modules/CMakeDependentOption.cmake @@ -0,0 +1,37 @@ +# - Macro to provide an option dependent on other options. +# This macro presents an option to the user only if a set of other +# conditions are true. When the option is not presented a default +# value is used, but any value set by the user is preserved for when +# the option is presented again. +# Example invocation: +# CMAKE_DEPENDENT_OPTION(USE_FOO "Use Foo" ON +# "USE_BAR;NOT USE_ZOT" OFF) +# If USE_BAR is true and USE_ZOT is false, this provides an option called +# USE_FOO that defaults to ON. Otherwise, it sets USE_FOO to OFF. If +# the status of USE_BAR or USE_ZOT ever changes, any value for the +# USE_FOO option is saved so that when the option is re-enabled it +# retains its old value. +MACRO(CMAKE_DEPENDENT_OPTION option doc default depends force) + IF(${option}_ISSET MATCHES "^${option}_ISSET$") + SET(${option}_AVAILABLE 1) + FOREACH(d ${depends}) + STRING(REGEX REPLACE " +" ";" CMAKE_DEPENDENT_OPTION_DEP "${d}") + IF(${CMAKE_DEPENDENT_OPTION_DEP}) + ELSE(${CMAKE_DEPENDENT_OPTION_DEP}) + SET(${option}_AVAILABLE 0) + ENDIF(${CMAKE_DEPENDENT_OPTION_DEP}) + ENDFOREACH(d) + IF(${option}_AVAILABLE) + OPTION(${option} "${doc}" "${default}") + SET(${option} "${${option}}" CACHE BOOL "${doc}" FORCE) + ELSE(${option}_AVAILABLE) + IF(${option} MATCHES "^${option}$") + ELSE(${option} MATCHES "^${option}$") + SET(${option} "${${option}}" CACHE INTERNAL "${doc}") + ENDIF(${option} MATCHES "^${option}$") + SET(${option} ${force}) + ENDIF(${option}_AVAILABLE) + ELSE(${option}_ISSET MATCHES "^${option}_ISSET$") + SET(${option} "${${option}_ISSET}") + ENDIF(${option}_ISSET MATCHES "^${option}_ISSET$") +ENDMACRO(CMAKE_DEPENDENT_OPTION) diff --git a/CMakeLua/Modules/CMakeDetermineASM-ATTCompiler.cmake b/CMakeLua/Modules/CMakeDetermineASM-ATTCompiler.cmake new file mode 100644 index 0000000..71e98c2 --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineASM-ATTCompiler.cmake @@ -0,0 +1,6 @@ +# determine the compiler to use for ASM using AT&T syntax + +SET(ASM_DIALECT "-ATT") +SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ${_CMAKE_TOOLCHAIN_PREFIX}gas ${_CMAKE_TOOLCHAIN_PREFIX}as) +INCLUDE(CMakeDetermineASMCompiler) +SET(ASM_DIALECT) diff --git a/CMakeLua/Modules/CMakeDetermineASMCompiler.cmake b/CMakeLua/Modules/CMakeDetermineASMCompiler.cmake new file mode 100644 index 0000000..cf6099d --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineASMCompiler.cmake @@ -0,0 +1,78 @@ +# determine the compiler to use for ASM programs + +IF(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER) + # prefer the environment variable ASM + IF($ENV{ASM${ASM_DIALECT}} MATCHES ".+") + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT "$ENV{ASM${ASM_DIALECT}}") + ENDIF($ENV{ASM${ASM_DIALECT}} MATCHES ".+") + + # finally list compilers to try + IF(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT}) + ELSE(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}as ${_CMAKE_TOOLCHAIN_PREFIX}gas) + ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT) + + # Find the compiler. + IF (_CMAKE_USER_CXX_COMPILER_PATH OR _CMAKE_USER_C_COMPILER_PATH) + FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST} PATHS ${_CMAKE_USER_C_COMPILER_PATH} ${_CMAKE_USER_CXX_COMPILER_PATH} DOC "Assembler" NO_DEFAULT_PATH) + ENDIF (_CMAKE_USER_CXX_COMPILER_PATH OR _CMAKE_USER_C_COMPILER_PATH) + FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST} DOC "Assembler") + +ELSE(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER) + + # we only get here if CMAKE_C_COMPILER was specified using -D or a pre-made CMakeCache.txt + # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE + # + # if a compiler was specified by the user but without path, + # now try to find it with the full path + # if it is found, force it into the cache, + # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND" + # if the C compiler already had a path, reuse it for searching the CXX compiler + GET_FILENAME_COMPONENT(_CMAKE_USER_ASM_COMPILER_PATH "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" PATH) + IF(NOT _CMAKE_USER_ASM_COMPILER_PATH) + FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER_WITH_PATH NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER}) + MARK_AS_ADVANCED(CMAKE_ASM${ASM_DIALECT}_COMPILER_WITH_PATH) + IF(CMAKE_ASM${ASM_DIALECT}_COMPILER_WITH_PATH) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER ${CMAKE_ASM${ASM_DIALECT}_COMPILER_WITH_PATH} CACHE FILEPATH "Assembler" FORCE) + ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER_WITH_PATH) + ENDIF(NOT _CMAKE_USER_ASM${ASM_DIALECT}_COMPILER_PATH) +ENDIF(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER) +MARK_AS_ADVANCED(CMAKE_ASM${ASM_DIALECT}_COMPILER) + +IF (NOT _CMAKE_TOOLCHAIN_LOCATION) + GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" PATH) +ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION) + +# if we have a gcc cross compiler, they have usually some prefix, like +# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc +# the other tools of the toolchain usually have the same prefix +IF (NOT _CMAKE_TOOLCHAIN_PREFIX) + GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME_WE) + IF (COMPILER_BASENAME MATCHES "^(.+-)g?as") + STRING(REGEX REPLACE "^(.+-)g?as" "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}") + ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?as") +ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX) + +INCLUDE(CMakeFindBinUtils) + +SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR "ASM") + +IF(CMAKE_ASM${ASM_DIALECT}_COMPILER) + MESSAGE(STATUS "Found assembler: ${CMAKE_ASM${ASM_DIALECT}_COMPILER}") +ELSE(CMAKE_ASM${ASM_DIALECT}_COMPILER) + MESSAGE(STATUS "Didn't find assembler") +ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER) + + +SET(_CMAKE_ASM_COMPILER "${CMAKE_ASM${ASM_DIALECT}_COMPILER}") +SET(_CMAKE_ASM_COMPILER_ARG1 "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARG1}") +SET(_CMAKE_ASM_COMPILER_ENV_VAR "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR}") + +# configure variables set in this file for fast reload later on +CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeASM${ASM_DIALECT}Compiler.cmake IMMEDIATE @ONLY) + +SET(_CMAKE_ASM_COMPILER) +SET(_CMAKE_ASM_COMPILER_ARG1) +SET(_CMAKE_ASM_COMPILER_ENV_VAR) diff --git a/CMakeLua/Modules/CMakeDetermineCCompiler.cmake b/CMakeLua/Modules/CMakeDetermineCCompiler.cmake new file mode 100644 index 0000000..6fdcf00 --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineCCompiler.cmake @@ -0,0 +1,137 @@ + +# determine the compiler to use for C programs +# NOTE, a generator may set CMAKE_C_COMPILER before +# loading this file to force a compiler. +# use environment variable CC first if defined by user, next use +# the cmake variable CMAKE_GENERATOR_CC which can be defined by a generator +# as a default compiler +# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used +# as prefix for the tools (e.g. arm-elf-gcc, arm-elf-ar etc.). This works +# currently with the GNU crosscompilers. +# +# Sets the following variables: +# CMAKE_C_COMPILER +# CMAKE_AR +# CMAKE_RANLIB +# CMAKE_COMPILER_IS_GNUCC +# +# If not already set before, it also sets +# _CMAKE_TOOLCHAIN_PREFIX + +IF(NOT CMAKE_C_COMPILER) + SET(CMAKE_CXX_COMPILER_INIT NOTFOUND) + + # prefer the environment variable CC + IF($ENV{CC} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_C_COMPILER_INIT $ENV{CC} PROGRAM PROGRAM_ARGS CMAKE_C_FLAGS_ENV_INIT) + IF(CMAKE_C_FLAGS_ENV_INIT) + SET(CMAKE_C_COMPILER_ARG1 "${CMAKE_C_FLAGS_ENV_INIT}" CACHE STRING "First argument to C compiler") + ENDIF(CMAKE_C_FLAGS_ENV_INIT) + IF(NOT EXISTS ${CMAKE_C_COMPILER_INIT}) + MESSAGE(FATAL_ERROR "Could not find compiler set in environment variable CC:\n$ENV{CC}.") + ENDIF(NOT EXISTS ${CMAKE_C_COMPILER_INIT}) + ENDIF($ENV{CC} MATCHES ".+") + + # next try prefer the compiler specified by the generator + IF(CMAKE_GENERATOR_CC) + IF(NOT CMAKE_C_COMPILER_INIT) + SET(CMAKE_C_COMPILER_INIT ${CMAKE_GENERATOR_CC}) + ENDIF(NOT CMAKE_C_COMPILER_INIT) + ENDIF(CMAKE_GENERATOR_CC) + + # finally list compilers to try + IF(CMAKE_C_COMPILER_INIT) + SET(CMAKE_C_COMPILER_LIST ${CMAKE_C_COMPILER_INIT}) + ELSE(CMAKE_C_COMPILER_INIT) + SET(CMAKE_C_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}gcc ${_CMAKE_TOOLCHAIN_PREFIX}cc cl bcc xlc) + ENDIF(CMAKE_C_COMPILER_INIT) + + # Find the compiler. + IF (_CMAKE_USER_CXX_COMPILER_PATH) + FIND_PROGRAM(CMAKE_C_COMPILER NAMES ${CMAKE_C_COMPILER_LIST} PATHS ${_CMAKE_USER_CXX_COMPILER_PATH} DOC "C compiler" NO_DEFAULT_PATH) + ENDIF (_CMAKE_USER_CXX_COMPILER_PATH) + FIND_PROGRAM(CMAKE_C_COMPILER NAMES ${CMAKE_C_COMPILER_LIST} DOC "C compiler") + + IF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER) + SET(CMAKE_C_COMPILER "${CMAKE_C_COMPILER_INIT}" CACHE FILEPATH "C compiler" FORCE) + ENDIF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER) +ELSE(NOT CMAKE_C_COMPILER) + + # we only get here if CMAKE_C_COMPILER was specified using -D or a pre-made CMakeCache.txt + # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE + # if CMAKE_C_COMPILER is a list of length 2, use the first item as + # CMAKE_C_COMPILER and the 2nd one as CMAKE_C_COMPILER_ARG1 + + LIST(LENGTH CMAKE_C_COMPILER _CMAKE_C_COMPILER_LIST_LENGTH) + IF("${_CMAKE_C_COMPILER_LIST_LENGTH}" EQUAL 2) + LIST(GET CMAKE_C_COMPILER 1 CMAKE_C_COMPILER_ARG1) + LIST(GET CMAKE_C_COMPILER 0 CMAKE_C_COMPILER) + ENDIF("${_CMAKE_C_COMPILER_LIST_LENGTH}" EQUAL 2) + + # if a compiler was specified by the user but without path, + # now try to find it with the full path + # if it is found, force it into the cache, + # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND" + # if the C compiler already had a path, reuse it for searching the CXX compiler + GET_FILENAME_COMPONENT(_CMAKE_USER_C_COMPILER_PATH "${CMAKE_C_COMPILER}" PATH) + IF(NOT _CMAKE_USER_C_COMPILER_PATH) + FIND_PROGRAM(CMAKE_C_COMPILER_WITH_PATH NAMES ${CMAKE_C_COMPILER}) + MARK_AS_ADVANCED(CMAKE_C_COMPILER_WITH_PATH) + IF(CMAKE_C_COMPILER_WITH_PATH) + SET(CMAKE_C_COMPILER ${CMAKE_C_COMPILER_WITH_PATH} CACHE STRING "C compiler" FORCE) + ENDIF(CMAKE_C_COMPILER_WITH_PATH) + ENDIF(NOT _CMAKE_USER_C_COMPILER_PATH) +ENDIF(NOT CMAKE_C_COMPILER) +MARK_AS_ADVANCED(CMAKE_C_COMPILER) + +IF (NOT _CMAKE_TOOLCHAIN_LOCATION) + GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH) +ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION) + +# if we have a gcc cross compiler, they have usually some prefix, like +# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc +# the other tools of the toolchain usually have the same prefix +IF (NOT _CMAKE_TOOLCHAIN_PREFIX) + GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME_WE) + IF (COMPILER_BASENAME MATCHES "^(.+-)g?cc") + STRING(REGEX REPLACE "^(.+-)g?cc" "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}") + ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?cc") +ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX) + + +# Build a small source file to identify the compiler. +IF(${CMAKE_GENERATOR} MATCHES "Visual Studio") + SET(CMAKE_C_COMPILER_ID_RUN 1) + SET(CMAKE_C_PLATFORM_ID "Windows") + + # TODO: Set the compiler id. It is probably MSVC but + # the user may be using an integrated Intel compiler. + # SET(CMAKE_C_COMPILER_ID "MSVC") +ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio") + +IF(NOT CMAKE_C_COMPILER_ID_RUN) + SET(CMAKE_C_COMPILER_ID_RUN 1) + + # Try to identify the compiler. + SET(CMAKE_C_COMPILER_ID) + INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake) + CMAKE_DETERMINE_COMPILER_ID(C CFLAGS ${CMAKE_ROOT}/Modules/CMakeCCompilerId.c) + + # Set old compiler and platform id variables. + IF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") + SET(CMAKE_COMPILER_IS_GNUCC 1) + ENDIF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") + IF("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW") + SET(CMAKE_COMPILER_IS_MINGW 1) + ELSEIF("${CMAKE_C_PLATFORM_ID}" MATCHES "Cygwin") + SET(CMAKE_COMPILER_IS_CYGWIN 1) + ENDIF("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW") +ENDIF(NOT CMAKE_C_COMPILER_ID_RUN) + +INCLUDE(CMakeFindBinUtils) + +# configure variables set in this file for fast reload later on +CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in + "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCCompiler.cmake" IMMEDIATE) + +SET(CMAKE_C_COMPILER_ENV_VAR "CC") diff --git a/CMakeLua/Modules/CMakeDetermineCXXCompiler.cmake b/CMakeLua/Modules/CMakeDetermineCXXCompiler.cmake new file mode 100644 index 0000000..d5eb95a --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineCXXCompiler.cmake @@ -0,0 +1,147 @@ + +# determine the compiler to use for C++ programs +# NOTE, a generator may set CMAKE_CXX_COMPILER before +# loading this file to force a compiler. +# use environment variable CXX first if defined by user, next use +# the cmake variable CMAKE_GENERATOR_CXX which can be defined by a generator +# as a default compiler +# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used +# as prefix for the tools (e.g. arm-elf-g++, arm-elf-ar etc.) +# +# Sets the following variables: +# CMAKE_CXX_COMPILER +# CMAKE_COMPILER_IS_GNUCXX +# CMAKE_AR +# CMAKE_RANLIB +# +# If not already set before, it also sets +# _CMAKE_TOOLCHAIN_PREFIX + +IF(NOT CMAKE_CXX_COMPILER) + SET(CMAKE_CXX_COMPILER_INIT NOTFOUND) + + # prefer the environment variable CXX + IF($ENV{CXX} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_CXX_COMPILER_INIT $ENV{CXX} PROGRAM PROGRAM_ARGS CMAKE_CXX_FLAGS_ENV_INIT) + IF(CMAKE_CXX_FLAGS_ENV_INIT) + SET(CMAKE_CXX_COMPILER_ARG1 "${CMAKE_CXX_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler") + ENDIF(CMAKE_CXX_FLAGS_ENV_INIT) + IF(NOT EXISTS ${CMAKE_CXX_COMPILER_INIT}) + MESSAGE(FATAL_ERROR "Could not find compiler set in environment variable CXX:\n$ENV{CXX}.\n${CMAKE_CXX_COMPILER_INIT}") + ENDIF(NOT EXISTS ${CMAKE_CXX_COMPILER_INIT}) + ENDIF($ENV{CXX} MATCHES ".+") + + # next prefer the generator specified compiler + IF(CMAKE_GENERATOR_CXX) + IF(NOT CMAKE_CXX_COMPILER_INIT) + SET(CMAKE_CXX_COMPILER_INIT ${CMAKE_GENERATOR_CXX}) + ENDIF(NOT CMAKE_CXX_COMPILER_INIT) + ENDIF(CMAKE_GENERATOR_CXX) + + # finally list compilers to try + IF(CMAKE_CXX_COMPILER_INIT) + SET(CMAKE_CXX_COMPILER_LIST ${CMAKE_CXX_COMPILER_INIT}) + ELSE(CMAKE_CXX_COMPILER_INIT) + SET(CMAKE_CXX_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ CC aCC cl bcc xlC) + ENDIF(CMAKE_CXX_COMPILER_INIT) + + # Find the compiler. + IF (_CMAKE_USER_C_COMPILER_PATH) + FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES ${CMAKE_CXX_COMPILER_LIST} PATHS ${_CMAKE_USER_C_COMPILER_PATH} DOC "C++ compiler" NO_DEFAULT_PATH) + ENDIF (_CMAKE_USER_C_COMPILER_PATH) + FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES ${CMAKE_CXX_COMPILER_LIST} DOC "C++ compiler") + + IF(CMAKE_CXX_COMPILER_INIT AND NOT CMAKE_CXX_COMPILER) + SET(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER_INIT}" CACHE FILEPATH "C++ compiler" FORCE) + ENDIF(CMAKE_CXX_COMPILER_INIT AND NOT CMAKE_CXX_COMPILER) +ELSE(NOT CMAKE_CXX_COMPILER) + +# we only get here if CMAKE_CXX_COMPILER was specified using -D or a pre-made CMakeCache.txt +# (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE +# +# if CMAKE_CXX_COMPILER is a list of length 2, use the first item as +# CMAKE_CXX_COMPILER and the 2nd one as CMAKE_CXX_COMPILER_ARG1 + + LIST(LENGTH CMAKE_CXX_COMPILER _CMAKE_CXX_COMPILER_LIST_LENGTH) + IF("${_CMAKE_CXX_COMPILER_LIST_LENGTH}" EQUAL 2) + LIST(GET CMAKE_CXX_COMPILER 1 CMAKE_CXX_COMPILER_ARG1) + LIST(GET CMAKE_CXX_COMPILER 0 CMAKE_CXX_COMPILER) + ENDIF("${_CMAKE_CXX_COMPILER_LIST_LENGTH}" EQUAL 2) + +# if a compiler was specified by the user but without path, +# now try to find it with the full path +# if it is found, force it into the cache, +# if not, don't overwrite the setting (which was given by the user) with "NOTFOUND" +# if the CXX compiler already had a path, reuse it for searching the C compiler + GET_FILENAME_COMPONENT(_CMAKE_USER_CXX_COMPILER_PATH "${CMAKE_CXX_COMPILER}" PATH) + IF(NOT _CMAKE_USER_CXX_COMPILER_PATH) + FIND_PROGRAM(CMAKE_CXX_COMPILER_WITH_PATH NAMES ${CMAKE_CXX_COMPILER}) + MARK_AS_ADVANCED(CMAKE_CXX_COMPILER_WITH_PATH) + IF(CMAKE_CXX_COMPILER_WITH_PATH) + SET(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER_WITH_PATH} CACHE STRING "CXX compiler" FORCE) + ENDIF(CMAKE_CXX_COMPILER_WITH_PATH) + ENDIF(NOT _CMAKE_USER_CXX_COMPILER_PATH) +ENDIF(NOT CMAKE_CXX_COMPILER) +MARK_AS_ADVANCED(CMAKE_CXX_COMPILER) + +IF (NOT _CMAKE_TOOLCHAIN_LOCATION) + GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH) +ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION) + +# if we have a g++ cross compiler, they have usually some prefix, like +# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++ +# the other tools of the toolchain usually have the same prefix +IF (NOT _CMAKE_TOOLCHAIN_PREFIX) + GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME_WE) + IF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+") + STRING(REGEX REPLACE "^(.+-)[gc]\\+\\+" "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}") + ENDIF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+") +ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX) + +# This block was used before the compiler was identified by building a +# source file. Unless g++ crashes when building a small C++ +# executable this should no longer be needed. +# +# The g++ that comes with BeOS 5 segfaults if you run "g++ -E" +# ("gcc -E" is fine), which throws up a system dialog box that hangs cmake +# until the user clicks "OK"...so for now, we just assume it's g++. +# IF(BEOS) +# SET(CMAKE_COMPILER_IS_GNUCXX 1) +# SET(CMAKE_COMPILER_IS_GNUCXX_RUN 1) +# ENDIF(BEOS) + +# Build a small source file to identify the compiler. +IF(${CMAKE_GENERATOR} MATCHES "Visual Studio") + SET(CMAKE_CXX_COMPILER_ID_RUN 1) + SET(CMAKE_CXX_PLATFORM_ID "Windows") + + # TODO: Set the compiler id. It is probably MSVC but + # the user may be using an integrated Intel compiler. + # SET(CMAKE_CXX_COMPILER_ID "MSVC") +ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio") +IF(NOT CMAKE_CXX_COMPILER_ID_RUN) + SET(CMAKE_CXX_COMPILER_ID_RUN 1) + + # Try to identify the compiler. + SET(CMAKE_CXX_COMPILER_ID) + INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake) + CMAKE_DETERMINE_COMPILER_ID(CXX CXXFLAGS ${CMAKE_ROOT}/Modules/CMakeCXXCompilerId.cpp) + + # Set old compiler and platform id variables. + IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + SET(CMAKE_COMPILER_IS_GNUCXX 1) + ENDIF("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + IF("${CMAKE_CXX_PLATFORM_ID}" MATCHES "MinGW") + SET(CMAKE_COMPILER_IS_MINGW 1) + ELSEIF("${CMAKE_CXX_PLATFORM_ID}" MATCHES "Cygwin") + SET(CMAKE_COMPILER_IS_CYGWIN 1) + ENDIF("${CMAKE_CXX_PLATFORM_ID}" MATCHES "MinGW") +ENDIF(NOT CMAKE_CXX_COMPILER_ID_RUN) + +INCLUDE(CMakeFindBinUtils) + +# configure all variables set in this file +CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake IMMEDIATE) + +SET(CMAKE_CXX_COMPILER_ENV_VAR "CXX") diff --git a/CMakeLua/Modules/CMakeDetermineCompilerABI.cmake b/CMakeLua/Modules/CMakeDetermineCompilerABI.cmake new file mode 100644 index 0000000..0571dc6 --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineCompilerABI.cmake @@ -0,0 +1,49 @@ + +# Function to compile a source file to identify the compiler ABI. +# This is used internally by CMake and should not be included by user +# code. + +FUNCTION(CMAKE_DETERMINE_COMPILER_ABI lang src) + IF(NOT DEFINED CMAKE_DETERMINE_${lang}_ABI_COMPILED) + MESSAGE(STATUS "Detecting ${lang} compiler info") + + # Compile the ABI identification source. + SET(BIN "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeDetermineCompilerABI_${lang}.bin") + TRY_COMPILE(CMAKE_DETERMINE_${lang}_ABI_COMPILED + ${CMAKE_BINARY_DIR} ${src} + OUTPUT_VARIABLE OUTPUT + COPY_FILE "${BIN}" + ) + + # Load the resulting information strings. + IF(CMAKE_DETERMINE_${lang}_ABI_COMPILED) + MESSAGE(STATUS "Detecting ${lang} compiler info - done") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Detecting ${lang} compiler info compiled with the following output:\n${OUTPUT}\n\n") + FILE(STRINGS "${BIN}" ABI_STRINGS LIMIT_COUNT 2 REGEX "INFO:[^[]*\\[") + FOREACH(info ${ABI_STRINGS}) + IF("${info}" MATCHES ".*INFO:sizeof_dptr\\[0*([^]]*)\\].*") + STRING(REGEX REPLACE ".*INFO:sizeof_dptr\\[0*([^]]*)\\].*" "\\1" ABI_SIZEOF_DPTR "${info}") + ENDIF("${info}" MATCHES ".*INFO:sizeof_dptr\\[0*([^]]*)\\].*") + IF("${info}" MATCHES ".*INFO:abi\\[([^]]*)\\].*") + STRING(REGEX REPLACE ".*INFO:abi\\[([^]]*)\\].*" "\\1" ABI_NAME "${info}") + ENDIF("${info}" MATCHES ".*INFO:abi\\[([^]]*)\\].*") + ENDFOREACH(info) + + IF(ABI_SIZEOF_DPTR) + SET(CMAKE_${lang}_SIZEOF_DATA_PTR "${ABI_SIZEOF_DPTR}" PARENT_SCOPE) + SET(CMAKE_SIZEOF_VOID_P "${ABI_SIZEOF_DPTR}" PARENT_SCOPE) + ENDIF(ABI_SIZEOF_DPTR) + + IF(ABI_NAME) + SET(CMAKE_${lang}_COMPILER_ABI "${ABI_NAME}" PARENT_SCOPE) + SET(CMAKE_INTERNAL_PLATFORM_ABI "${ABI_NAME}" PARENT_SCOPE) + ENDIF(ABI_NAME) + + ELSE(CMAKE_DETERMINE_${lang}_ABI_COMPILED) + MESSAGE(STATUS "Detecting ${lang} compiler info - failed") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Detecting ${lang} compiler info failed to compile with the following output:\n${OUTPUT}\n\n") + ENDIF(CMAKE_DETERMINE_${lang}_ABI_COMPILED) + ENDIF(NOT DEFINED CMAKE_DETERMINE_${lang}_ABI_COMPILED) +ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ABI) diff --git a/CMakeLua/Modules/CMakeDetermineCompilerId.cmake b/CMakeLua/Modules/CMakeDetermineCompilerId.cmake new file mode 100644 index 0000000..d684fb8 --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineCompilerId.cmake @@ -0,0 +1,223 @@ + +# Function to compile a source file to identify the compiler. This is +# used internally by CMake and should not be included by user code. +# If successful, sets CMAKE__COMPILER_ID and CMAKE__PLATFORM_ID + +FUNCTION(CMAKE_DETERMINE_COMPILER_ID lang flagvar src) + # Store the compiler identification source file. + SET(CMAKE_${lang}_COMPILER_ID_SRC "${src}") + IF(CMAKE_HOST_WIN32 AND NOT CMAKE_HOST_UNIX) + # This seems to escape spaces: + #FILE(TO_NATIVE_PATH "${CMAKE_${lang}_COMPILER_ID_SRC}" + # CMAKE_${lang}_COMPILER_ID_SRC) + STRING(REGEX REPLACE "/" "\\\\" CMAKE_${lang}_COMPILER_ID_SRC + "${CMAKE_${lang}_COMPILER_ID_SRC}") + ENDIF(CMAKE_HOST_WIN32 AND NOT CMAKE_HOST_UNIX) + + # Make sure the compiler arguments are clean. + STRING(STRIP "${CMAKE_${lang}_COMPILER_ARG1}" CMAKE_${lang}_COMPILER_ID_ARG1) + + # Make sure user-specified compiler flags are used. + IF(CMAKE_${lang}_FLAGS) + SET(CMAKE_${lang}_COMPILER_ID_FLAGS ${CMAKE_${lang}_FLAGS}) + ELSE(CMAKE_${lang}_FLAGS) + SET(CMAKE_${lang}_COMPILER_ID_FLAGS $ENV{${flagvar}}) + ENDIF(CMAKE_${lang}_FLAGS) + STRING(REGEX REPLACE " " ";" CMAKE_${lang}_COMPILER_ID_FLAGS_LIST "${CMAKE_${lang}_COMPILER_ID_FLAGS}") + + # Compute the directory in which to run the test. + SET(CMAKE_${lang}_COMPILER_ID_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CompilerId${lang}) + + # Try building with no extra flags and then try each set + # of helper flags. Stop when the compiler is identified. + FOREACH(flags "" ${CMAKE_${lang}_COMPILER_ID_TEST_FLAGS}) + IF(NOT CMAKE_${lang}_COMPILER_ID) + CMAKE_DETERMINE_COMPILER_ID_BUILD("${lang}" "${flags}") + FOREACH(file ${COMPILER_${lang}_PRODUCED_FILES}) + CMAKE_DETERMINE_COMPILER_ID_CHECK("${lang}" "${file}") + ENDFOREACH(file) + ENDIF(NOT CMAKE_${lang}_COMPILER_ID) + ENDFOREACH(flags) + + # if the format is unknown after all files have been checked, put "Unknown" in the cache + IF(NOT CMAKE_EXECUTABLE_FORMAT) + SET(CMAKE_EXECUTABLE_FORMAT "Unknown" CACHE INTERNAL "Executable file format") + ENDIF(NOT CMAKE_EXECUTABLE_FORMAT) + + # Display the final identification result. + IF(CMAKE_${lang}_COMPILER_ID) + MESSAGE(STATUS "The ${lang} compiler identification is " + "${CMAKE_${lang}_COMPILER_ID}") + ELSE(CMAKE_${lang}_COMPILER_ID) + MESSAGE(STATUS "The ${lang} compiler identification is unknown") + ENDIF(CMAKE_${lang}_COMPILER_ID) + + SET(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE) + SET(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE) +ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ID) + +#----------------------------------------------------------------------------- +# Function to build the compiler id source file and look for output +# files. +FUNCTION(CMAKE_DETERMINE_COMPILER_ID_BUILD lang testflags) + # Create a clean working directory. + FILE(REMOVE_RECURSE ${CMAKE_${lang}_COMPILER_ID_DIR}) + FILE(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}) + + # Construct a description of this test case. + SET(COMPILER_DESCRIPTION + "Compiler: ${CMAKE_${lang}_COMPILER} ${CMAKE_${lang}_COMPILER_ID_ARG1}\n" + "Build flags: ${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}\n" + "Id flags: ${testflags}\n" + ) + + # Compile the compiler identification source. + IF(COMMAND EXECUTE_PROCESS) + EXECUTE_PROCESS( + COMMAND ${CMAKE_${lang}_COMPILER} + ${CMAKE_${lang}_COMPILER_ID_ARG1} + ${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST} + ${testflags} + ${CMAKE_${lang}_COMPILER_ID_SRC} + WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR} + OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT + ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT + RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT + ) + ELSE(COMMAND EXECUTE_PROCESS) + EXEC_PROGRAM( + ${CMAKE_${lang}_COMPILER} ${CMAKE_${lang}_COMPILER_ID_DIR} + ARGS ${CMAKE_${lang}_COMPILER_ID_ARG1} + ${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST} + ${testflags} + \"${CMAKE_${lang}_COMPILER_ID_SRC}\" + OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT + RETURN_VALUE CMAKE_${lang}_COMPILER_ID_RESULT + ) + ENDIF(COMMAND EXECUTE_PROCESS) + + # Check the result of compilation. + IF(CMAKE_${lang}_COMPILER_ID_RESULT) + # Compilation failed. + SET(MSG + "Compiling the ${lang} compiler identification source file \"" + "${CMAKE_${lang}_COMPILER_ID_SRC}\" failed.\n" + ${COMPILER_DESCRIPTION} + "The output was:\n" + "${CMAKE_${lang}_COMPILER_ID_RESULT}\n" + "${CMAKE_${lang}_COMPILER_ID_OUTPUT}\n\n" + ) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "${MSG}") + #IF(NOT CMAKE_${lang}_COMPILER_ID_ALLOW_FAIL) + # MESSAGE(FATAL_ERROR "${MSG}") + #ENDIF(NOT CMAKE_${lang}_COMPILER_ID_ALLOW_FAIL) + + # No output files should be inspected. + SET(COMPILER_${lang}_PRODUCED_FILES) + ELSE(CMAKE_${lang}_COMPILER_ID_RESULT) + # Compilation succeeded. + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Compiling the ${lang} compiler identification source file \"" + "${CMAKE_${lang}_COMPILER_ID_SRC}\" succeeded.\n" + ${COMPILER_DESCRIPTION} + "The output was:\n" + "${CMAKE_${lang}_COMPILER_ID_RESULT}\n" + "${CMAKE_${lang}_COMPILER_ID_OUTPUT}\n\n" + ) + + # Find the executable produced by the compiler, try all files in the + # binary dir. + FILE(GLOB COMPILER_${lang}_PRODUCED_FILES ${CMAKE_${lang}_COMPILER_ID_DIR}/*) + FOREACH(file ${COMPILER_${lang}_PRODUCED_FILES}) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Compilation of the ${lang} compiler identification source \"" + "${CMAKE_${lang}_COMPILER_ID_SRC}\" produced \"${file}\"\n\n") + ENDFOREACH(file) + + IF(NOT COMPILER_${lang}_PRODUCED_FILES) + # No executable was found. + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Compilation of the ${lang} compiler identification source \"" + "${CMAKE_${lang}_COMPILER_ID_SRC}\" did not produce an executable in \"" + "${CMAKE_${lang}_COMPILER_ID_DIR}\".\n\n") + ENDIF(NOT COMPILER_${lang}_PRODUCED_FILES) + ENDIF(CMAKE_${lang}_COMPILER_ID_RESULT) + + # Return the files produced by the compilation. + SET(COMPILER_${lang}_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE) +ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ID_BUILD lang testflags) + +#----------------------------------------------------------------------------- +# Function to extract the compiler id from an executable. +FUNCTION(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file) + # Look for a compiler id if not yet known. + IF(NOT CMAKE_${lang}_COMPILER_ID) + # Read the compiler identification string from the executable file. + SET(COMPILER_ID) + SET(PLATFORM_ID) + FILE(STRINGS ${file} + CMAKE_${lang}_COMPILER_ID_STRINGS LIMIT_COUNT 2 REGEX "INFO:") + SET(HAVE_COMPILER_TWICE 0) + FOREACH(info ${CMAKE_${lang}_COMPILER_ID_STRINGS}) + IF("${info}" MATCHES ".*INFO:compiler\\[([^]]*)\\].*") + IF(COMPILER_ID) + SET(COMPILER_ID_TWICE 1) + ENDIF(COMPILER_ID) + STRING(REGEX REPLACE ".*INFO:compiler\\[([^]]*)\\].*" "\\1" + COMPILER_ID "${info}") + ENDIF("${info}" MATCHES ".*INFO:compiler\\[([^]]*)\\].*") + IF("${info}" MATCHES ".*INFO:platform\\[([^]]*)\\].*") + STRING(REGEX REPLACE ".*INFO:platform\\[([^]]*)\\].*" "\\1" + PLATFORM_ID "${info}") + ENDIF("${info}" MATCHES ".*INFO:platform\\[([^]]*)\\].*") + ENDFOREACH(info) + + # Check if a valid compiler and platform were found. + IF(COMPILER_ID AND NOT COMPILER_ID_TWICE) + SET(CMAKE_${lang}_COMPILER_ID "${COMPILER_ID}") + SET(CMAKE_${lang}_PLATFORM_ID "${PLATFORM_ID}") + ENDIF(COMPILER_ID AND NOT COMPILER_ID_TWICE) + + # Check the compiler identification string. + IF(CMAKE_${lang}_COMPILER_ID) + # The compiler identification was found. + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "The ${lang} compiler identification is ${CMAKE_${lang}_COMPILER_ID}, found in \"" + "${file}\"\n\n") + ELSE(CMAKE_${lang}_COMPILER_ID) + # The compiler identification could not be found. + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "The ${lang} compiler identification could not be found in \"" + "${file}\"\n\n") + ENDIF(CMAKE_${lang}_COMPILER_ID) + ENDIF(NOT CMAKE_${lang}_COMPILER_ID) + + # try to figure out the executable format: ELF, COFF, Mach-O + IF(NOT CMAKE_EXECUTABLE_FORMAT) + FILE(READ ${file} CMAKE_EXECUTABLE_MAGIC LIMIT 4 HEX) + + # ELF files start with 0x7f"ELF" + IF("${CMAKE_EXECUTABLE_MAGIC}" STREQUAL "7f454c46") + SET(CMAKE_EXECUTABLE_FORMAT "ELF" CACHE INTERNAL "Executable file format") + ENDIF("${CMAKE_EXECUTABLE_MAGIC}" STREQUAL "7f454c46") + +# # COFF (.exe) files start with "MZ" +# IF("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "4d5a....") +# SET(CMAKE_EXECUTABLE_FORMAT "COFF" CACHE STRING "Executable file format") +# ENDIF("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "4d5a....") +# +# # Mach-O files start with CAFEBABE or FEEDFACE, according to http://radio.weblogs.com/0100490/2003/01/28.html +# IF("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "cafebabe") +# SET(CMAKE_EXECUTABLE_FORMAT "MACHO" CACHE STRING "Executable file format") +# ENDIF("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "cafebabe") +# IF("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "feedface") +# SET(CMAKE_EXECUTABLE_FORMAT "MACHO" CACHE STRING "Executable file format") +# ENDIF("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "feedface") + + ENDIF(NOT CMAKE_EXECUTABLE_FORMAT) + + # Return the information extracted. + SET(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE) + SET(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE) + SET(CMAKE_EXECUTABLE_FORMAT "${CMAKE_EXECUTABLE_FORMAT}" PARENT_SCOPE) +ENDFUNCTION(CMAKE_DETERMINE_COMPILER_ID_CHECK lang) diff --git a/CMakeLua/Modules/CMakeDetermineFortranCompiler.cmake b/CMakeLua/Modules/CMakeDetermineFortranCompiler.cmake new file mode 100755 index 0000000..52d041f --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineFortranCompiler.cmake @@ -0,0 +1,139 @@ + +# determine the compiler to use for Fortran programs +# NOTE, a generator may set CMAKE_Fortran_COMPILER before +# loading this file to force a compiler. +# use environment variable FC first if defined by user, next use +# the cmake variable CMAKE_GENERATOR_FC which can be defined by a generator +# as a default compiler + +IF(NOT CMAKE_Fortran_COMPILER) + # prefer the environment variable CC + IF($ENV{FC} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_Fortran_COMPILER_INIT $ENV{FC} PROGRAM PROGRAM_ARGS CMAKE_Fortran_FLAGS_ENV_INIT) + IF(CMAKE_Fortran_FLAGS_ENV_INIT) + SET(CMAKE_Fortran_COMPILER_ARG1 "${CMAKE_Fortran_FLAGS_ENV_INIT}" CACHE STRING "First argument to Fortran compiler") + ENDIF(CMAKE_Fortran_FLAGS_ENV_INIT) + IF(EXISTS ${CMAKE_Fortran_COMPILER_INIT}) + ELSE(EXISTS ${CMAKE_Fortran_COMPILER_INIT}) + MESSAGE(FATAL_ERROR "Could not find compiler set in environment variable FC:\n$ENV{FC}.") + ENDIF(EXISTS ${CMAKE_Fortran_COMPILER_INIT}) + ENDIF($ENV{FC} MATCHES ".+") + + # next try prefer the compiler specified by the generator + IF(CMAKE_GENERATOR_FC) + IF(NOT CMAKE_Fortran_COMPILER_INIT) + SET(CMAKE_Fortran_COMPILER_INIT ${CMAKE_GENERATOR_FC}) + ENDIF(NOT CMAKE_Fortran_COMPILER_INIT) + ENDIF(CMAKE_GENERATOR_FC) + + # finally list compilers to try + IF(CMAKE_Fortran_COMPILER_INIT) + SET(CMAKE_Fortran_COMPILER_LIST ${CMAKE_Fortran_COMPILER_INIT}) + ELSE(CMAKE_Fortran_COMPILER_INIT) + # Known compilers: + # f77/f90/f95: generic compiler names + # g77: GNU Fortran 77 compiler + # gfortran: putative GNU Fortran 95+ compiler (in progress) + # fort77: native F77 compiler under HP-UX (and some older Crays) + # frt: Fujitsu F77 compiler + # pgf77/pgf90/pgf95: Portland Group F77/F90/F95 compilers + # xlf/xlf90/xlf95: IBM (AIX) F77/F90/F95 compilers + # lf95: Lahey-Fujitsu F95 compiler + # fl32: Microsoft Fortran 77 "PowerStation" compiler + # af77: Apogee F77 compiler for Intergraph hardware running CLIX + # epcf90: "Edinburgh Portable Compiler" F90 + # fort: Compaq (now HP) Fortran 90/95 compiler for Tru64 and Linux/Alpha + # ifc: Intel Fortran 95 compiler for Linux/x86 + # efc: Intel Fortran 95 compiler for IA64 + # + # The order is 95 or newer compilers first, then 90, + # then 77 or older compilers, gnu is always last in the group, + # so if you paid for a compiler it is picked by default. + # NOTE for testing purposes this list is DUPLICATED in + # CMake/Source/CMakeLists.txt, IF YOU CHANGE THIS LIST, + # PLEASE UPDATE THAT FILE AS WELL! + SET(CMAKE_Fortran_COMPILER_LIST + ifort ifc efc f95 pgf95 lf95 xlf95 fort gfortran g95 f90 + pgf90 xlf90 epcf90 fort77 frt pgf77 xlf fl32 af77 g77 f77 + ) + ENDIF(CMAKE_Fortran_COMPILER_INIT) + + # Find the compiler. + FIND_PROGRAM(CMAKE_Fortran_COMPILER NAMES ${CMAKE_Fortran_COMPILER_LIST} DOC "Fortran compiler") + IF(CMAKE_Fortran_COMPILER_INIT AND NOT CMAKE_Fortran_COMPILER) + SET(CMAKE_Fortran_COMPILER "${CMAKE_Fortran_COMPILER_INIT}" CACHE FILEPATH "Fortran compiler" FORCE) + ENDIF(CMAKE_Fortran_COMPILER_INIT AND NOT CMAKE_Fortran_COMPILER) +ENDIF(NOT CMAKE_Fortran_COMPILER) + +MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER) + +# Build a small source file to identify the compiler. +IF(${CMAKE_GENERATOR} MATCHES "Visual Studio") + SET(CMAKE_Fortran_COMPILER_ID_RUN 1) + SET(CMAKE_Fortran_PLATFORM_ID "Windows") + + # TODO: Set the compiler id. It is probably MSVC but + # the user may be using an integrated Intel compiler. + # SET(CMAKE_Fortran_COMPILER_ID "MSVC") +ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio") + +IF(NOT CMAKE_Fortran_COMPILER_ID_RUN) + SET(CMAKE_Fortran_COMPILER_ID_RUN 1) + + # Each entry in this list is a set of extra flags to try + # adding to the compile line to see if it helps produce + # a valid identification executable. + SET(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS + # Intel on windows does not preprocess by default. + "-fpp" + ) + + # Try to identify the compiler. + SET(CMAKE_Fortran_COMPILER_ID) + INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake) + CMAKE_DETERMINE_COMPILER_ID(Fortran FFLAGS ${CMAKE_ROOT}/Modules/CMakeFortranCompilerId.F90) + + # Fall back to old is-GNU test. + IF(NOT CMAKE_Fortran_COMPILER_ID) + EXEC_PROGRAM(${CMAKE_Fortran_COMPILER} + ARGS ${CMAKE_Fortran_COMPILER_ID_FLAGS_LIST} -E "\"${CMAKE_ROOT}/Modules/CMakeTestGNU.c\"" + OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT RETURN_VALUE CMAKE_COMPILER_RETURN) + IF(NOT CMAKE_COMPILER_RETURN) + IF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_GNU.*" ) + SET(CMAKE_Fortran_COMPILER_ID "GNU") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the Fortran compiler is GNU succeeded with " + "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n") + ELSE("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_GNU.*" ) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the Fortran compiler is GNU failed with " + "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n") + ENDIF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_GNU.*" ) + IF(NOT CMAKE_Fortran_PLATFORM_ID) + IF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_MINGW.*" ) + SET(CMAKE_Fortran_PLATFORM_ID "MinGW") + ENDIF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_MINGW.*" ) + IF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_CYGWIN.*" ) + SET(CMAKE_Fortran_PLATFORM_ID "Cygwin") + ENDIF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_CYGWIN.*" ) + ENDIF(NOT CMAKE_Fortran_PLATFORM_ID) + ENDIF(NOT CMAKE_COMPILER_RETURN) + ENDIF(NOT CMAKE_Fortran_COMPILER_ID) + + # Set old compiler and platform id variables. + IF("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU") + SET(CMAKE_COMPILER_IS_GNUG77 1) + ENDIF("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU") + IF("${CMAKE_Fortran_PLATFORM_ID}" MATCHES "MinGW") + SET(CMAKE_COMPILER_IS_MINGW 1) + ELSEIF("${CMAKE_Fortran_PLATFORM_ID}" MATCHES "Cygwin") + SET(CMAKE_COMPILER_IS_CYGWIN 1) + ENDIF("${CMAKE_Fortran_PLATFORM_ID}" MATCHES "MinGW") +ENDIF(NOT CMAKE_Fortran_COMPILER_ID_RUN) + +INCLUDE(CMakeFindBinUtils) + +# configure variables set in this file for fast reload later on +CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeFortranCompiler.cmake IMMEDIATE) +SET(CMAKE_Fortran_COMPILER_ENV_VAR "FC") diff --git a/CMakeLua/Modules/CMakeDetermineJavaCompiler.cmake b/CMakeLua/Modules/CMakeDetermineJavaCompiler.cmake new file mode 100644 index 0000000..f221447 --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineJavaCompiler.cmake @@ -0,0 +1,85 @@ + +# determine the compiler to use for Java programs +# NOTE, a generator may set CMAKE_Java_COMPILER before +# loading this file to force a compiler. + +IF(NOT CMAKE_Java_COMPILER) + # prefer the environment variable CC + IF($ENV{JAVA_COMPILER} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_Java_COMPILER_INIT $ENV{JAVA_COMPILER} PROGRAM PROGRAM_ARGS CMAKE_Java_FLAGS_ENV_INIT) + IF(CMAKE_Java_FLAGS_ENV_INIT) + SET(CMAKE_Java_COMPILER_ARG1 "${CMAKE_Java_FLAGS_ENV_INIT}" CACHE STRING "First argument to Java compiler") + ENDIF(CMAKE_Java_FLAGS_ENV_INIT) + IF(NOT EXISTS ${CMAKE_Java_COMPILER_INIT}) + MESSAGE(SEND_ERROR "Could not find compiler set in environment variable JAVA_COMPILER:\n$ENV{JAVA_COMPILER}.") + ENDIF(NOT EXISTS ${CMAKE_Java_COMPILER_INIT}) + ENDIF($ENV{JAVA_COMPILER} MATCHES ".+") + + IF($ENV{JAVA_RUNTIME} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_Java_RUNTIME_INIT $ENV{JAVA_RUNTIME} PROGRAM PROGRAM_ARGS CMAKE_Java_FLAGS_ENV_INIT) + IF(NOT EXISTS ${CMAKE_Java_RUNTIME_INIT}) + MESSAGE(SEND_ERROR "Could not find compiler set in environment variable JAVA_RUNTIME:\n$ENV{JAVA_RUNTIME}.") + ENDIF(NOT EXISTS ${CMAKE_Java_RUNTIME_INIT}) + ENDIF($ENV{JAVA_RUNTIME} MATCHES ".+") + + IF($ENV{JAVA_ARCHIVE} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_Java_ARCHIVE_INIT $ENV{JAVA_ARCHIVE} PROGRAM PROGRAM_ARGS CMAKE_Java_FLAGS_ENV_INIT) + IF(NOT EXISTS ${CMAKE_Java_ARCHIVE_INIT}) + MESSAGE(SEND_ERROR "Could not find compiler set in environment variable JAVA_ARCHIVE:\n$ENV{JAVA_ARCHIVE}.") + ENDIF(NOT EXISTS ${CMAKE_Java_ARCHIVE_INIT}) + ENDIF($ENV{JAVA_ARCHIVE} MATCHES ".+") + + SET(Java_BIN_PATH + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\2.0;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin" + /usr/bin + /usr/lib/java/bin + /usr/share/java/bin + /usr/local/bin + /usr/local/java/bin + /usr/java/j2sdk1.4.2_04 + /usr/lib/j2sdk1.4-sun/bin + /usr/lib/j2sdk1.5-sun/bin + ) + # if no compiler has been specified yet, then look for one + IF(CMAKE_Java_COMPILER_INIT) + SET(CMAKE_Java_COMPILER ${CMAKE_Java_COMPILER_INIT} CACHE PATH "Java Compiler") + ELSE(CMAKE_Java_COMPILER_INIT) + FIND_PROGRAM(CMAKE_Java_COMPILER + NAMES javac + PATHS ${Java_BIN_PATH} + ) + ENDIF(CMAKE_Java_COMPILER_INIT) + + # if no runtime has been specified yet, then look for one + IF(CMAKE_Java_RUNTIME_INIT) + SET(CMAKE_Java_RUNTIME ${CMAKE_Java_RUNTIME_INIT} CACHE PATH "Java Compiler") + ELSE(CMAKE_Java_RUNTIME_INIT) + FIND_PROGRAM(CMAKE_Java_RUNTIME + NAMES java + PATHS ${Java_BIN_PATH} + ) + ENDIF(CMAKE_Java_RUNTIME_INIT) + + # if no archive has been specified yet, then look for one + IF(CMAKE_Java_ARCHIVE_INIT) + SET(CMAKE_Java_ARCHIVE ${CMAKE_Java_ARCHIVE_INIT} CACHE PATH "Java Compiler") + ELSE(CMAKE_Java_ARCHIVE_INIT) + FIND_PROGRAM(CMAKE_Java_ARCHIVE + NAMES jar + PATHS ${Java_BIN_PATH} + ) + ENDIF(CMAKE_Java_ARCHIVE_INIT) +ENDIF(NOT CMAKE_Java_COMPILER) +MARK_AS_ADVANCED(CMAKE_Java_COMPILER) + +# configure variables set in this file for fast reload later on +CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeJavaCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeJavaCompiler.cmake IMMEDIATE @ONLY) +SET(CMAKE_Java_COMPILER_ENV_VAR "JAVA_COMPILER") diff --git a/CMakeLua/Modules/CMakeDetermineRCCompiler.cmake b/CMakeLua/Modules/CMakeDetermineRCCompiler.cmake new file mode 100755 index 0000000..1bea04a --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineRCCompiler.cmake @@ -0,0 +1,48 @@ + +# determine the compiler to use for C programs +# NOTE, a generator may set CMAKE_C_COMPILER before +# loading this file to force a compiler. +# use environment variable CCC first if defined by user, next use +# the cmake variable CMAKE_GENERATOR_CC which can be defined by a generator +# as a default compiler +IF(NOT CMAKE_RC_COMPILER) + # prefer the environment variable CC + IF($ENV{RC} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_RC_COMPILER_INIT $ENV{RC} PROGRAM PROGRAM_ARGS CMAKE_RC_FLAGS_ENV_INIT) + IF(CMAKE_RC_FLAGS_ENV_INIT) + SET(CMAKE_RC_COMPILER_ARG1 "${CMAKE_RC_FLAGS_ENV_INIT}" CACHE STRING "First argument to RC compiler") + ENDIF(CMAKE_RC_FLAGS_ENV_INIT) + IF(EXISTS ${CMAKE_RC_COMPILER_INIT}) + ELSE(EXISTS ${CMAKE_RC_COMPILER_INIT}) + MESSAGE(FATAL_ERROR "Could not find compiler set in environment variable RC:\n$ENV{RC}.") + ENDIF(EXISTS ${CMAKE_RC_COMPILER_INIT}) + ENDIF($ENV{RC} MATCHES ".+") + + # next try prefer the compiler specified by the generator + IF(CMAKE_GENERATOR_RC) + IF(NOT CMAKE_RC_COMPILER_INIT) + SET(CMAKE_RC_COMPILER_INIT ${CMAKE_GENERATOR_RC}) + ENDIF(NOT CMAKE_RC_COMPILER_INIT) + ENDIF(CMAKE_GENERATOR_RC) + + # finally list compilers to try + IF(CMAKE_RC_COMPILER_INIT) + SET(CMAKE_RC_COMPILER_LIST ${CMAKE_RC_COMPILER_INIT}) + ELSE(CMAKE_RC_COMPILER_INIT) + SET(CMAKE_RC_COMPILER_LIST rc) + ENDIF(CMAKE_RC_COMPILER_INIT) + + # Find the compiler. + FIND_PROGRAM(CMAKE_RC_COMPILER NAMES ${CMAKE_RC_COMPILER_LIST} DOC "RC compiler") + IF(CMAKE_RC_COMPILER_INIT AND NOT CMAKE_RC_COMPILER) + SET(CMAKE_RC_COMPILER "${CMAKE_RC_COMPILER_INIT}" CACHE FILEPATH "RC compiler" FORCE) + ENDIF(CMAKE_RC_COMPILER_INIT AND NOT CMAKE_RC_COMPILER) +ENDIF(NOT CMAKE_RC_COMPILER) + +MARK_AS_ADVANCED(CMAKE_RC_COMPILER) + + +# configure variables set in this file for fast reload later on +CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeRCCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeRCCompiler.cmake IMMEDIATE) +SET(CMAKE_RC_COMPILER_ENV_VAR "RC") diff --git a/CMakeLua/Modules/CMakeDetermineSystem.cmake b/CMakeLua/Modules/CMakeDetermineSystem.cmake new file mode 100644 index 0000000..aa3b59b --- /dev/null +++ b/CMakeLua/Modules/CMakeDetermineSystem.cmake @@ -0,0 +1,154 @@ + +# This module is used by the Makefile generator to determin the following variables: +# CMAKE_SYSTEM_NAME - on unix this is uname -s, for windows it is Windows +# CMAKE_SYSTEM_VERSION - on unix this is uname -r, for windows it is empty +# CMAKE_SYSTEM - ${CMAKE_SYSTEM}-${CMAKE_SYSTEM_VERSION}, for windows: ${CMAKE_SYSTEM} +# +# Expected uname -s output: +# +# AIX AIX +# BSD/OS BSD/OS +# FreeBSD FreeBSD +# HP-UX HP-UX +# IRIX IRIX +# Linux Linux +# NetBSD NetBSD +# OpenBSD OpenBSD +# OFS/1 (Digital Unix) OSF1 +# SCO OpenServer 5 SCO_SV +# SCO UnixWare 7 UnixWare +# SCO UnixWare (pre release 7) UNIX_SV +# SCO XENIX Xenix +# Solaris SunOS +# SunOS SunOS +# Tru64 Tru64 +# Ultrix ULTRIX +# cygwin CYGWIN_NT-5.1 +# MacOSX Darwin + + +# find out on which system cmake runs +IF(CMAKE_HOST_UNIX) + FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) + IF(CMAKE_UNAME) + EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_NAME) + EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION) + IF(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR + RETURN_VALUE val) + ELSE(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR + RETURN_VALUE val) + IF("${val}" GREATER 0) + EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR + RETURN_VALUE val) + ENDIF("${val}" GREATER 0) + ENDIF(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + # check the return of the last uname -m or -p + IF("${val}" GREATER 0) + SET(CMAKE_HOST_SYSTEM_PROCESSOR "unknown") + ENDIF("${val}" GREATER 0) + SET(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command") + # processor may have double quote in the name, and that needs to be removed + STRING(REGEX REPLACE "\"" "" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}") + STRING(REGEX REPLACE "/" "_" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}") + ENDIF(CMAKE_UNAME) +ELSE(CMAKE_HOST_UNIX) + IF(CMAKE_HOST_WIN32) + SET (CMAKE_HOST_SYSTEM_NAME "Windows") + SET (CMAKE_HOST_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}") + ENDIF(CMAKE_HOST_WIN32) +ENDIF(CMAKE_HOST_UNIX) + +# if a toolchain file is used, the user wants to cross compile. +# in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_* +# variables around so they can be used in CMakeLists.txt. +# In all other cases, the host and target platform are the same. +IF(CMAKE_TOOLCHAIN_FILE) + # at first try to load it as path relative to the directory from which cmake has been run + INCLUDE("${CMAKE_BINARY_DIR}/${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE) + IF(NOT _INCLUDED_TOOLCHAIN_FILE) + # if the file isn't found there, check the default locations + INCLUDE("${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE) + ENDIF(NOT _INCLUDED_TOOLCHAIN_FILE) + + IF(_INCLUDED_TOOLCHAIN_FILE) + SET(CMAKE_TOOLCHAIN_FILE "${_INCLUDED_TOOLCHAIN_FILE}" CACHE FILEPATH "The CMake toolchain file" FORCE) + ELSE(_INCLUDED_TOOLCHAIN_FILE) + MESSAGE(FATAL_ERROR "Could not find toolchain file: ${CMAKE_TOOLCHAIN_FILE}") + SET(CMAKE_TOOLCHAIN_FILE "NOTFOUND" CACHE FILEPATH "The CMake toolchain file" FORCE) + ENDIF(_INCLUDED_TOOLCHAIN_FILE) +ENDIF(CMAKE_TOOLCHAIN_FILE) + + +# if CMAKE_SYSTEM_NAME is here already set, either it comes from a toolchain file +# or it was set via -DCMAKE_SYSTEM_NAME=... +# if that's the case, assume we are crosscompiling +IF(CMAKE_SYSTEM_NAME) + IF(NOT DEFINED CMAKE_CROSSCOMPILING) + SET(CMAKE_CROSSCOMPILING TRUE) + ENDIF(NOT DEFINED CMAKE_CROSSCOMPILING) + SET(PRESET_CMAKE_SYSTEM_NAME TRUE) +ELSE(CMAKE_SYSTEM_NAME) + SET(CMAKE_SYSTEM_NAME "${CMAKE_HOST_SYSTEM_NAME}") + SET(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}") + SET(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}") + SET(CMAKE_CROSSCOMPILING FALSE) + SET(PRESET_CMAKE_SYSTEM_NAME FALSE) +ENDIF(CMAKE_SYSTEM_NAME) + + +MACRO(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX) + IF(NOT ${_PREFIX}_NAME) + SET(${_PREFIX}_NAME "UnknownOS") + ENDIF(NOT ${_PREFIX}_NAME) + + # fix for BSD/OS , remove the / + IF(${_PREFIX}_NAME MATCHES BSD.OS) + SET(${_PREFIX}_NAME BSDOS) + ENDIF(${_PREFIX}_NAME MATCHES BSD.OS) + + # fix for CYGWIN which has windows version in it + IF(${_PREFIX}_NAME MATCHES CYGWIN) + SET(${_PREFIX}_NAME CYGWIN) + ENDIF(${_PREFIX}_NAME MATCHES CYGWIN) + + # set CMAKE_SYSTEM to the CMAKE_SYSTEM_NAME + SET(${_PREFIX} ${${_PREFIX}_NAME}) + # if there is a CMAKE_SYSTEM_VERSION then add a -${CMAKE_SYSTEM_VERSION} + IF(${_PREFIX}_VERSION) + SET(${_PREFIX} ${${_PREFIX}}-${${_PREFIX}_VERSION}) + ENDIF(${_PREFIX}_VERSION) + +ENDMACRO(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX) + +ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_SYSTEM) +ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_HOST_SYSTEM) + +# this file is also executed from cpack, then we don't need to generate these files +# in this case there is no CMAKE_BINARY_DIR +IF(CMAKE_BINARY_DIR) + # write entry to the log file + IF(PRESET_CMAKE_SYSTEM_NAME) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "The target system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "The host system is: ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_VERSION} - ${CMAKE_HOST_SYSTEM_PROCESSOR}\n") + ELSE(PRESET_CMAKE_SYSTEM_NAME) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "The system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n") + ENDIF(PRESET_CMAKE_SYSTEM_NAME) + + # if a toolchain file is used, it needs to be included in the configured file, + # so settings done there are also available if they don't go in the cache and in TRY_COMPILE() + SET(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED) + IF(DEFINED CMAKE_TOOLCHAIN_FILE) + SET(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED "INCLUDE(\"${CMAKE_TOOLCHAIN_FILE}\")") + ENDIF(DEFINED CMAKE_TOOLCHAIN_FILE) + + # configure variables set in this file for fast reload, the template file is defined at the top of this file + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeSystem.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeSystem.cmake + IMMEDIATE @ONLY) + +ENDIF(CMAKE_BINARY_DIR) diff --git a/CMakeLua/Modules/CMakeExportBuildSettings.cmake b/CMakeLua/Modules/CMakeExportBuildSettings.cmake new file mode 100644 index 0000000..0c71efa --- /dev/null +++ b/CMakeLua/Modules/CMakeExportBuildSettings.cmake @@ -0,0 +1,12 @@ +# - export build settings from a project. +# CMAKE_EXPORT_BUILD_SETTINGS(SETTINGS_FILE) +# macro defined to export the build settings for use by another project. +# SETTINGS_FILE - the file into which the settings are to be stored. +MACRO(CMAKE_EXPORT_BUILD_SETTINGS SETTINGS_FILE) + IF(${SETTINGS_FILE} MATCHES ".+") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeBuildSettings.cmake.in + ${SETTINGS_FILE} @ONLY IMMEDIATE) + ELSE(${SETTINGS_FILE} MATCHES ".+") + MESSAGE(SEND_ERROR "CMAKE_EXPORT_BUILD_SETTINGS called with no argument.") + ENDIF(${SETTINGS_FILE} MATCHES ".+") +ENDMACRO(CMAKE_EXPORT_BUILD_SETTINGS) diff --git a/CMakeLua/Modules/CMakeFindBinUtils.cmake b/CMakeLua/Modules/CMakeFindBinUtils.cmake new file mode 100644 index 0000000..60d7dae --- /dev/null +++ b/CMakeLua/Modules/CMakeFindBinUtils.cmake @@ -0,0 +1,89 @@ + +# search for additional tools required for C/C++ (and other languages ?) +# +# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used +# as prefix for the tools (e.g. arm-elf-gcc etc.) +# If the cmake variable _CMAKE_TOOLCHAIN_LOCATION is set, the compiler is +# searched only there. The other tools are at first searched there, then +# also in the default locations. +# +# Sets the following variables: +# CMAKE_AR +# CMAKE_RANLIB +# CMAKE_LINKER +# CMAKE_STRIP +# CMAKE_INSTALL_NAME_TOOL + +# on UNIX, cygwin and mingw + + +# if it's the MS C/CXX compiler, search for link +IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" + OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC" + OR "${CMAKE_GENERATOR}" MATCHES "Visual Studio") + + FIND_PROGRAM(CMAKE_LINKER NAMES link PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_LINKER NAMES link) + + MARK_AS_ADVANCED(CMAKE_LINKER) + +# in all other cases search for ar, ranlib, etc. +ELSE("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" + OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC" + OR "${CMAKE_GENERATOR}" MATCHES "Visual Studio") + + FIND_PROGRAM(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar) + + FIND_PROGRAM(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib) + IF(NOT CMAKE_RANLIB) + SET(CMAKE_RANLIB : CACHE INTERNAL "noop for ranlib") + ENDIF(NOT CMAKE_RANLIB) + + FIND_PROGRAM(CMAKE_STRIP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}strip PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_STRIP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}strip) + + FIND_PROGRAM(CMAKE_LINKER NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ld PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_LINKER NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ld) + + FIND_PROGRAM(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm) + + FIND_PROGRAM(CMAKE_OBJDUMP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objdump PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_OBJDUMP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objdump) + + FIND_PROGRAM(CMAKE_OBJCOPY NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objcopy PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_OBJCOPY NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objcopy) + + MARK_AS_ADVANCED(CMAKE_AR CMAKE_RANLIB CMAKE_STRIP CMAKE_LINKER CMAKE_NM CMAKE_OBJDUMP CMAKE_OBJCOPY) + +ENDIF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" + OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC" + OR "${CMAKE_GENERATOR}" MATCHES "Visual Studio") + + +# on Apple there really should be install_name_tool +IF(APPLE) + FIND_PROGRAM(CMAKE_INSTALL_NAME_TOOL NAMES install_name_tool PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_INSTALL_NAME_TOOL NAMES install_name_tool) + + IF(NOT CMAKE_INSTALL_NAME_TOOL) + MESSAGE(FATAL_ERROR "Could not find install_name_tool, please check your installation.") + ENDIF(NOT CMAKE_INSTALL_NAME_TOOL) + + MARK_AS_ADVANCED(CMAKE_INSTALL_NAME_TOOL) +ENDIF(APPLE) + +# if we are on an ELF system, search for chrpath +# according to the binutils mailing list chrpath has problems when cross compiling +# i.e. if the target has different endianness than the host +IF("${CMAKE_EXECUTABLE_FORMAT}" STREQUAL "ELF" AND NOT CMAKE_CROSSCOMPILING) + # on ELF platforms there might be chrpath, which works similar to install_name_tool + OPTION(CMAKE_USE_CHRPATH "Enable this to use chrpath if available" OFF) + + FIND_PROGRAM(CMAKE_CHRPATH chrpath PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_CHRPATH chrpath) + + MARK_AS_ADVANCED(CMAKE_CHRPATH CMAKE_USE_CHRPATH) +ENDIF("${CMAKE_EXECUTABLE_FORMAT}" STREQUAL "ELF" AND NOT CMAKE_CROSSCOMPILING) diff --git a/CMakeLua/Modules/CMakeFindFrameworks.cmake b/CMakeLua/Modules/CMakeFindFrameworks.cmake new file mode 100644 index 0000000..3a47eb0 --- /dev/null +++ b/CMakeLua/Modules/CMakeFindFrameworks.cmake @@ -0,0 +1,19 @@ +# - helper module to find OSX frameworks + +IF(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED) + SET(CMAKE_FIND_FRAMEWORKS_INCLUDED 1) + MACRO(CMAKE_FIND_FRAMEWORKS fwk) + SET(${fwk}_FRAMEWORKS) + IF(APPLE) + FOREACH(dir + ~/Library/Frameworks/${fwk}.framework + /Library/Frameworks/${fwk}.framework + /System/Library/Frameworks/${fwk}.framework + /Network/Library/Frameworks/${fwk}.framework) + IF(EXISTS ${dir}) + SET(${fwk}_FRAMEWORKS ${${fwk}_FRAMEWORKS} ${dir}) + ENDIF(EXISTS ${dir}) + ENDFOREACH(dir) + ENDIF(APPLE) + ENDMACRO(CMAKE_FIND_FRAMEWORKS) +ENDIF(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED) diff --git a/CMakeLua/Modules/CMakeFindWMake.cmake b/CMakeLua/Modules/CMakeFindWMake.cmake new file mode 100755 index 0000000..4353d65 --- /dev/null +++ b/CMakeLua/Modules/CMakeFindWMake.cmake @@ -0,0 +1,3 @@ +SET (CMAKE_MAKE_PROGRAM "wmake" CACHE STRING + "Program used to build from makefiles.") +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) diff --git a/CMakeLua/Modules/CMakeFindXCode.cmake b/CMakeLua/Modules/CMakeFindXCode.cmake new file mode 100755 index 0000000..417edc5 --- /dev/null +++ b/CMakeLua/Modules/CMakeFindXCode.cmake @@ -0,0 +1,6 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM + NAMES xcodebuild + PATHS + /usr/bin + ) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) diff --git a/CMakeLua/Modules/CMakeForceCompiler.cmake b/CMakeLua/Modules/CMakeForceCompiler.cmake new file mode 100644 index 0000000..79ac054 --- /dev/null +++ b/CMakeLua/Modules/CMakeForceCompiler.cmake @@ -0,0 +1,62 @@ + +# These are macros intended to be used only when crosscompiling in the +# toolchain-file and only if the compiler is not able to link an +# executable by default (usually because they need user-specific +# linker files which describe the layout of the target memory). +# +# It offers the following macros: +# +# macro CMAKE_FORCE_SYSTEM(name version processor) +# Set CMAKE_SYSTEM_NAME, CMAKE_SYSTEM_VERSION and CMAKE_SYSTEM_PROCESSOR +# +# macro CMAKE_FORCE_C_COMPILER(compiler compiler_id sizeof_void_p) +# Set CMAKE_C_COMPILER to the given compiler and set CMAKE_C_COMPILER_ID +# to the given compiler_id. This Id is used by cmake to construct the filename +# of the system-compiler.cmake file. For C also the size of a void-pointer +# has to be predefined. +# +# macro CMAKE_FORCE_CXX_COMPILER(compiler compiler_id) +# The same as CMAKE_FORCE_C_COMPILER, but for CXX. Here the size of +# the void pointer is not requried. +# +# So a simple toolchain file could look like this: +# +# INCLUDE (CMakeForceCompiler) +# CMAKE_FORCE_SYSTEM ("Generic" "0.0" "hc12") +# CMAKE_FORCE_C_COMPILER (chc12 FreescaleCHC12 2) +# CMAKE_FORCE_CXX_COMPILER (chc12 FreescaleCHC12) + + +MACRO(CMAKE_FORCE_SYSTEM name version proc) + SET(CMAKE_SYSTEM_NAME "${name}") + SET(CMAKE_SYSTEM_VERSION "${version}") + SET(CMAKE_SYSTEM_PROCESSOR "${proc}") +ENDMACRO(CMAKE_FORCE_SYSTEM) + +MACRO(CMAKE_FORCE_C_COMPILER compiler id sizeof_void) + SET(CMAKE_C_COMPILER "${compiler}") + SET(CMAKE_C_COMPILER_ID_RUN TRUE) + SET(CMAKE_C_COMPILER_ID ${id}) + SET(CMAKE_C_COMPILER_WORKS TRUE) + + # Set old compiler and platform id variables. + IF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") + SET(CMAKE_COMPILER_IS_GNUCC 1) + ENDIF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") + + SET(CMAKE_SIZEOF_VOID_P ${sizeof_void} CACHE STRING "sizeof void") + SET(HAVE_CMAKE_SIZEOF_VOID_P TRUE CACHE INTERNAL "have sizeof void") +ENDMACRO(CMAKE_FORCE_C_COMPILER) + +MACRO(CMAKE_FORCE_CXX_COMPILER compiler id) + SET(CMAKE_CXX_COMPILER "${compiler}") + SET(CMAKE_CXX_COMPILER_ID_RUN TRUE) + SET(CMAKE_CXX_COMPILER_ID ${id}) + SET(CMAKE_CXX_COMPILER_WORKS TRUE) + + IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + SET(CMAKE_COMPILER_IS_GNUCXX 1) + ENDIF("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + +ENDMACRO(CMAKE_FORCE_CXX_COMPILER) + diff --git a/CMakeLua/Modules/CMakeFortranCompiler.cmake.in b/CMakeLua/Modules/CMakeFortranCompiler.cmake.in new file mode 100755 index 0000000..67a0c64 --- /dev/null +++ b/CMakeLua/Modules/CMakeFortranCompiler.cmake.in @@ -0,0 +1,29 @@ +SET(CMAKE_Fortran_COMPILER "@CMAKE_Fortran_COMPILER@") +SET(CMAKE_Fortran_COMPILER_ARG1 "@CMAKE_Fortran_COMPILER_ARG1@") +SET(CMAKE_Fortran_COMPILER_ID "@CMAKE_Fortran_COMPILER_ID@") +SET(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@") +SET(CMAKE_AR "@CMAKE_AR@") +SET(CMAKE_RANLIB "@CMAKE_RANLIB@") +SET(CMAKE_COMPILER_IS_GNUG77 @CMAKE_COMPILER_IS_GNUG77@) +SET(CMAKE_Fortran_COMPILER_LOADED 1) +SET(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@) +SET(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@) +IF(CMAKE_COMPILER_IS_CYGWIN) + SET(CYGWIN 1) + SET(UNIX 1) +ENDIF(CMAKE_COMPILER_IS_CYGWIN) + +SET(CMAKE_Fortran_COMPILER_ENV_VAR "FC") + +IF(CMAKE_COMPILER_IS_MINGW) + SET(MINGW 1) +ENDIF(CMAKE_COMPILER_IS_MINGW) +SET(CMAKE_Fortran_COMPILER_ID_RUN 1) +SET(CMAKE_Fortran_SOURCE_FILE_EXTENSIONS f;F;f77;F77;f90;F90;for;f95;F95) +SET(CMAKE_Fortran_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +SET(CMAKE_Fortran_LINKER_PREFERENCE 20) +IF(UNIX) + SET(CMAKE_Fortran_OUTPUT_EXTENSION .o) +ELSE(UNIX) + SET(CMAKE_Fortran_OUTPUT_EXTENSION .obj) +ENDIF(UNIX) diff --git a/CMakeLua/Modules/CMakeFortranCompilerId.F90 b/CMakeLua/Modules/CMakeFortranCompilerId.F90 new file mode 100644 index 0000000..870c204 --- /dev/null +++ b/CMakeLua/Modules/CMakeFortranCompilerId.F90 @@ -0,0 +1,78 @@ +PROGRAM CMakeFortranCompilerId +! Identify the compiler +#if defined(__INTEL_COMPILER) || defined(__ICC) + PRINT *, 'INFO:compiler[Intel]' +#elif defined(__SUNPRO_F90) || defined(__SUNPRO_F95) + PRINT *, 'INFO:compiler[SunPro]' +#elif defined(__GNUC__) + PRINT *, 'INFO:compiler[GNU]' +#elif defined(__IBM__) || defined(__IBMC__) + PRINT *, 'INFO:compiler[VisualAge]' +#elif defined(_COMPILER_VERSION) + PRINT *, 'INFO:compiler[MIPSpro]' +! This compiler is either not known or is too old to define an +! identification macro. Try to identify the platform and guess that +! it is the native compiler. +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) + PRINT *, 'INFO:compiler[VisualAge]' +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) + PRINT *, 'INFO:compiler[MIPSpro]' +#elif defined(__hpux) || defined(__hpux__) + PRINT *, 'INFO:compiler[HP]' +#else + PRINT *, 'INFO:compiler[]' +#endif + +! Identify the platform +#if defined(__linux) || defined(__linux__) || defined(linux) + PRINT *, 'INFO:platform[Linux]' +#elif defined(__CYGWIN__) + PRINT *, 'INFO:platform[Cygwin]' +#elif defined(__MINGW32__) + PRINT *, 'INFO:platform[MinGW]' +#elif defined(__APPLE__) + PRINT *, 'INFO:platform[Darwin]' +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) + PRINT *, 'INFO:platform[Windows]' +#elif defined(__FreeBSD__) || defined(__FreeBSD) + PRINT *, 'INFO:platform[FreeBSD]' +#elif defined(__NetBSD__) || defined(__NetBSD) + PRINT *, 'INFO:platform[NetBSD]' +#elif defined(__OpenBSD__) || defined(__OPENBSD) + PRINT *, 'INFO:platform[OpenBSD]' +#elif defined(__sun) || defined(sun) + PRINT *, 'INFO:platform[SunOS]' +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) + PRINT *, 'INFO:platform[AIX]' +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) + PRINT *, 'INFO:platform[IRIX]' +#elif defined(__hpux) || defined(__hpux__) + PRINT *, 'INFO:platform[HP-UX]' +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) + PRINT *, 'INFO:platform[BeOS]' +#elif defined(__QNX__) || defined(__QNXNTO__) + PRINT *, 'INFO:platform[QNX]' +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) + PRINT *, 'INFO:platform[Tru64]' +#elif defined(__riscos) || defined(__riscos__) + PRINT *, 'INFO:platform[RISCos]' +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) + PRINT *, 'INFO:platform[SINIX]' +#elif defined(__UNIX_SV__) + PRINT *, 'INFO:platform[UNIX_SV]' +#elif defined(__bsdos__) + PRINT *, 'INFO:platform[BSDOS]' +#elif defined(_MPRAS) || defined(MPRAS) + PRINT *, 'INFO:platform[MP-RAS]' +#elif defined(__osf) || defined(__osf__) + PRINT *, 'INFO:platform[OSF1]' +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) + PRINT *, 'INFO:platform[SCO_SV]' +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) + PRINT *, 'INFO:platform[ULTRIX]' +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) + PRINT *, 'INFO:platform[Xenix]' +#else + PRINT *, 'INFO:platform[]' +#endif +END PROGRAM diff --git a/CMakeLua/Modules/CMakeFortranInformation.cmake b/CMakeLua/Modules/CMakeFortranInformation.cmake new file mode 100755 index 0000000..93d58b8 --- /dev/null +++ b/CMakeLua/Modules/CMakeFortranInformation.cmake @@ -0,0 +1,182 @@ + +# This file sets the basic flags for the Fortran language in CMake. +# It also loads the available platform file for the system-compiler +# if it exists. + +GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_Fortran_COMPILER} NAME_WE) +# since the gnu compiler has several names force g++ +IF(CMAKE_COMPILER_IS_GNUG77) + SET(CMAKE_BASE_NAME g77) +ENDIF(CMAKE_COMPILER_IS_GNUG77) +IF(CMAKE_Fortran_COMPILER_ID) + IF(EXISTS ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_Fortran_COMPILER_ID}-Fortran.cmake) + SET(CMAKE_BASE_NAME ${CMAKE_Fortran_COMPILER_ID}-Fortran) + ENDIF(EXISTS ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_Fortran_COMPILER_ID}-Fortran.cmake) +ENDIF(CMAKE_Fortran_COMPILER_ID) +SET(CMAKE_SYSTEM_AND_Fortran_COMPILER_INFO_FILE + ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake) +INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL) + +# This should be included before the _INIT variables are +# used to initialize the cache. Since the rule variables +# have if blocks on them, users can still define them here. +# But, it should still be after the platform file so changes can +# be made to those values. + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran) + + +# Fortran needs cmake to do a requires step during its build process to +# catch any modules +SET(CMAKE_NEEDS_REQUIRES_STEP_Fortran_FLAG 1) + +# Create a set of shared library variable specific to Fortran +# For 90% of the systems, these are the same flags as the C versions +# so if these are not set just copy the flags from the c version +IF(NOT CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS) + SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS) + +IF(NOT CMAKE_SHARED_LIBRARY_Fortran_FLAGS) + SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_Fortran_FLAGS) + +IF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS) + SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}) +ENDIF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS) + +IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG) + +IF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP) + +IF(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG) + SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG) + +# repeat for modules +IF(NOT CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS) + SET(CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS) + +IF(NOT CMAKE_SHARED_MODULE_Fortran_FLAGS) + SET(CMAKE_SHARED_MODULE_Fortran_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS}) +ENDIF(NOT CMAKE_SHARED_MODULE_Fortran_FLAGS) + +IF(NOT CMAKE_SHARED_MODULE_RUNTIME_Fortran_FLAG) + SET(CMAKE_SHARED_MODULE_RUNTIME_Fortran_FLAG ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG}) +ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_Fortran_FLAG) + +IF(NOT CMAKE_SHARED_MODULE_RUNTIME_Fortran_FLAG_SEP) + SET(CMAKE_SHARED_MODULE_RUNTIME_Fortran_FLAG_SEP ${CMAKE_SHARED_MODULE_RUNTIME_C_FLAG_SEP}) +ENDIF(NOT CMAKE_SHARED_MODULE_RUNTIME_Fortran_FLAG_SEP) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG) + SET(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG) + +IF(NOT CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG_SEP) + SET(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP}) +ENDIF(NOT CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG_SEP) + +IF(NOT CMAKE_EXECUTABLE_RPATH_LINK_Fortran_FLAG) + SET(CMAKE_EXECUTABLE_RPATH_LINK_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG}) +ENDIF(NOT CMAKE_EXECUTABLE_RPATH_LINK_Fortran_FLAG) + +IF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_WITH_RUNTIME_PATH) + SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH}) +ENDIF(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_WITH_RUNTIME_PATH) + +IF(NOT CMAKE_INCLUDE_FLAG_Fortran) + SET(CMAKE_INCLUDE_FLAG_Fortran ${CMAKE_INCLUDE_FLAG_C}) +ENDIF(NOT CMAKE_INCLUDE_FLAG_Fortran) + +IF(NOT CMAKE_INCLUDE_FLAG_SEP_Fortran) + SET(CMAKE_INCLUDE_FLAG_SEP_Fortran ${CMAKE_INCLUDE_FLAG_SEP_C}) +ENDIF(NOT CMAKE_INCLUDE_FLAG_SEP_Fortran) + +SET(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.") + +SET (CMAKE_Fortran_FLAGS "$ENV{FFLAGS}" CACHE STRING + "Flags for Fortran compiler.") +IF (CMAKE_Fortran_FLAGS_INIT) + SET (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${CMAKE_Fortran_FLAGS_INIT}") +ENDIF (CMAKE_Fortran_FLAGS_INIT) + + + +INCLUDE(CMakeCommonLanguageInclude) + +# now define the following rule variables +# CMAKE_Fortran_CREATE_SHARED_LIBRARY +# CMAKE_Fortran_CREATE_SHARED_MODULE +# CMAKE_Fortran_CREATE_STATIC_LIBRARY +# CMAKE_Fortran_COMPILE_OBJECT +# CMAKE_Fortran_LINK_EXECUTABLE + +# create a Fortran shared library +IF(NOT CMAKE_Fortran_CREATE_SHARED_LIBRARY) + SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY + " -o ") +ENDIF(NOT CMAKE_Fortran_CREATE_SHARED_LIBRARY) + +# create a Fortran shared module just copy the shared library rule +IF(NOT CMAKE_Fortran_CREATE_SHARED_MODULE) + SET(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY}) +ENDIF(NOT CMAKE_Fortran_CREATE_SHARED_MODULE) + +# create a Fortran static library +IF(NOT CMAKE_Fortran_CREATE_STATIC_LIBRARY) + SET(CMAKE_Fortran_CREATE_STATIC_LIBRARY + " cr " + " ") +ENDIF(NOT CMAKE_Fortran_CREATE_STATIC_LIBRARY) + +# compile a Fortran file into an object file +IF(NOT CMAKE_Fortran_COMPILE_OBJECT) + SET(CMAKE_Fortran_COMPILE_OBJECT + " -o -c ") +ENDIF(NOT CMAKE_Fortran_COMPILE_OBJECT) + +# link a fortran program +IF(NOT CMAKE_Fortran_LINK_EXECUTABLE) + SET(CMAKE_Fortran_LINK_EXECUTABLE + " -o ") +ENDIF(NOT CMAKE_Fortran_LINK_EXECUTABLE) + +IF(CMAKE_Fortran_STANDARD_LIBRARIES_INIT) + SET(CMAKE_Fortran_STANDARD_LIBRARIES "${CMAKE_Fortran_STANDARD_LIBRARIES_INIT}" + CACHE STRING "Libraries linked by defalut with all Fortran applications.") + MARK_AS_ADVANCED(CMAKE_Fortran_STANDARD_LIBRARIES) +ENDIF(CMAKE_Fortran_STANDARD_LIBRARIES_INIT) + +IF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) + SET (CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG_INIT}" CACHE STRING + "Flags used by the compiler during debug builds.") + SET (CMAKE_Fortran_FLAGS_MINSIZEREL "${CMAKE_Fortran_FLAGS_MINSIZEREL_INIT}" CACHE STRING + "Flags used by the compiler during release minsize builds.") + SET (CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE_INIT}" CACHE STRING + "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).") + SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO "${CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING + "Flags used by the compiler during Release with Debug Info builds.") + +ENDIF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) + +MARK_AS_ADVANCED( +CMAKE_Fortran_FLAGS +CMAKE_Fortran_FLAGS_DEBUG +CMAKE_Fortran_FLAGS_MINSIZEREL +CMAKE_Fortran_FLAGS_RELEASE +CMAKE_Fortran_FLAGS_RELWITHDEBINFO) + +# set this variable so we can avoid loading this more than once. +SET(CMAKE_Fortran_INFORMATION_LOADED 1) diff --git a/CMakeLua/Modules/CMakeGenericSystem.cmake b/CMakeLua/Modules/CMakeGenericSystem.cmake new file mode 100755 index 0000000..d66e809 --- /dev/null +++ b/CMakeLua/Modules/CMakeGenericSystem.cmake @@ -0,0 +1,80 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +SET(CMAKE_INCLUDE_FLAG_C "-I") # -I +SET(CMAKE_INCLUDE_FLAG_C_SEP "") # , or empty +SET(CMAKE_LIBRARY_PATH_FLAG "-L") +SET(CMAKE_LIBRARY_PATH_TERMINATOR "") # for the Digital Mars D compiler the link paths have to be terminated with a "/" +SET(CMAKE_LINK_LIBRARY_FLAG "-l") + +SET(CMAKE_LINK_LIBRARY_SUFFIX "") +SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so +SET(CMAKE_EXECUTABLE_SUFFIX "") # .exe +SET(CMAKE_DL_LIBS "dl") + +SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") + +# basically all general purpose OSs support shared libs +SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +SET (CMAKE_SKIP_RPATH "NO" CACHE BOOL + "If set, runtime paths are not added when using shared libraries.") + +SET(CMAKE_INIT_VALUE FALSE) +IF(CMAKE_GENERATOR MATCHES "KDevelop3") + SET(CMAKE_INIT_VALUE TRUE) +ENDIF(CMAKE_GENERATOR MATCHES "KDevelop3") +SET(CMAKE_VERBOSE_MAKEFILE ${CMAKE_INIT_VALUE} CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.") + +IF(CMAKE_GENERATOR MATCHES "Makefiles") + SET(CMAKE_COLOR_MAKEFILE ON CACHE BOOL + "Enable/Disable color output during build." + ) + MARK_AS_ADVANCED(CMAKE_COLOR_MAKEFILE) +ENDIF(CMAKE_GENERATOR MATCHES "Makefiles") + +# Set a variable to indicate whether the value of CMAKE_INSTALL_PREFIX +# was initialized by the block below. This is useful for user +# projects to change the default prefix while still allowing the +# command line to override it. +IF(NOT DEFINED CMAKE_INSTALL_PREFIX) + SET(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 1) +ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX) + +# Choose a default install prefix for this platform. +IF(CMAKE_HOST_UNIX) + SET(CMAKE_INSTALL_PREFIX "/usr/local" + CACHE PATH "Install path prefix, prepended onto install directories.") +ELSE(CMAKE_HOST_UNIX) + IF("$ENV{ProgramFiles}" MATCHES "^$") + IF("$ENV{SystemDrive}" MATCHES "^$") + SET(CMAKE_GENERIC_PROGRAM_FILES "C:/Program Files") + ELSE("$ENV{SystemDrive}" MATCHES "^$") + SET(CMAKE_GENERIC_PROGRAM_FILES "$ENV{SystemDrive}/Program Files") + ENDIF("$ENV{SystemDrive}" MATCHES "^$") + ELSE("$ENV{ProgramFiles}" MATCHES "^$") + SET(CMAKE_GENERIC_PROGRAM_FILES "$ENV{ProgramFiles}") + ENDIF("$ENV{ProgramFiles}" MATCHES "^$") + SET(CMAKE_INSTALL_PREFIX + "${CMAKE_GENERIC_PROGRAM_FILES}/${PROJECT_NAME}" + CACHE PATH "Install path prefix, prepended onto install directories.") + SET(CMAKE_GENERIC_PROGRAM_FILES) + + # Make sure the prefix uses forward slashes. + STRING(REGEX REPLACE "\\\\" "/" + CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") +ENDIF(CMAKE_HOST_UNIX) + +MARK_AS_ADVANCED( + CMAKE_SKIP_RPATH + CMAKE_VERBOSE_MAKEFILE +) + +# always include the gcc compiler information +INCLUDE(Platform/gcc) diff --git a/CMakeLua/Modules/CMakeImportBuildSettings.cmake b/CMakeLua/Modules/CMakeImportBuildSettings.cmake new file mode 100644 index 0000000..4a8c1e3 --- /dev/null +++ b/CMakeLua/Modules/CMakeImportBuildSettings.cmake @@ -0,0 +1,242 @@ +# - import build settings from another project +# CMAKE_IMPORT_BUILD_SETTINGS(SETTINGS_FILE) +# macro defined to import the build settings from another project. +# SETTINGS_FILE is a file created by the other project's call to the +# CMAKE_EXPORT_BUILD_SETTINGS macro, see CMakeExportBuildSettings. +MACRO(CMAKE_IMPORT_BUILD_SETTINGS SETTINGS_FILE) + IF(${SETTINGS_FILE} MATCHES ".+") + # Load the settings. + INCLUDE(${SETTINGS_FILE}) + + # Check the CMake version that stored the settings. + IF(${CMAKE_BUILD_SETTING_CMAKE_MAJOR_VERSION}.${CMAKE_BUILD_SETTING_CMAKE_MINOR_VERSION} + GREATER ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) + MESSAGE(SEND_ERROR + "${CMAKE_BUILD_SETTING_PROJECT_NAME} was built using CMake " + "${CMAKE_BUILD_SETTING_CMAKE_MAJOR_VERSION}.${CMAKE_BUILD_SETTING_CMAKE_MINOR_VERSION}, " + "but this is CMake${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}. " + "Please upgrade CMake to a more recent version.") + ENDIF(${CMAKE_BUILD_SETTING_CMAKE_MAJOR_VERSION}.${CMAKE_BUILD_SETTING_CMAKE_MINOR_VERSION} + GREATER ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) + + # Check the build tool. + SET(CMAKE_BUILD_TOOL1 "") + IF(CMAKE_BUILD_TOOL) + GET_FILENAME_COMPONENT (CMAKE_BUILD_TOOL1 ${CMAKE_BUILD_TOOL} NAME_WE) + STRING(TOLOWER ${CMAKE_BUILD_TOOL1} CMAKE_BUILD_TOOL1) + ENDIF(CMAKE_BUILD_TOOL) + SET(CMAKE_BUILD_TOOL2 "") + IF(CMAKE_BUILD_SETTING_BUILD_TOOL) + GET_FILENAME_COMPONENT (CMAKE_BUILD_TOOL2 ${CMAKE_BUILD_SETTING_BUILD_TOOL} NAME_WE) + STRING(TOLOWER ${CMAKE_BUILD_TOOL2} CMAKE_BUILD_TOOL2) + ENDIF(CMAKE_BUILD_SETTING_BUILD_TOOL) + STRING(COMPARE NOTEQUAL "x${CMAKE_BUILD_TOOL1}" "x${CMAKE_BUILD_TOOL2}" + CMAKE_BUILD_TOOL_MISMATCH) + + IF(CMAKE_BUILD_SETTING_BUILD_TOOL MATCHES "^msdev$") + SET(CMAKE_IMPORT_BUILD_SETTINGS_IMPORTING_FROM_MS_STUDIO 1) + ENDIF(CMAKE_BUILD_SETTING_BUILD_TOOL MATCHES "^msdev$") + IF(CMAKE_BUILD_SETTING_BUILD_TOOL MATCHES "^devenv$") + SET(CMAKE_IMPORT_BUILD_SETTINGS_IMPORTING_FROM_MS_STUDIO 1) + ENDIF(CMAKE_BUILD_SETTING_BUILD_TOOL MATCHES "^devenv$") + + # Check the C++ compiler setting. If it is empty, the imported + # project is not a C++ project, and doesn't need a matching compiler. + IF(CMAKE_BUILD_SETTING_CXX_COMPILER) + IF(WIN32) + STRING(TOLOWER "x${CMAKE_CXX_COMPILER}" COMPARE_CXX_LOCAL) + STRING(TOLOWER "x${CMAKE_BUILD_SETTING_CXX_COMPILER}" COMPARE_CXX_REMOTE) + STRING(COMPARE NOTEQUAL "${COMPARE_CXX_LOCAL}" "${COMPARE_CXX_REMOTE}" + CMAKE_CXX_COMPILER_MISMATCH) + ELSE(WIN32) + STRING(COMPARE NOTEQUAL + "x${CMAKE_CXX_COMPILER}" "x${CMAKE_BUILD_SETTING_CXX_COMPILER}" + CMAKE_CXX_COMPILER_MISMATCH) + ENDIF(WIN32) + ENDIF(CMAKE_BUILD_SETTING_CXX_COMPILER) + + # Check the C build variation flags. + STRING(COMPARE NOTEQUAL + "x${CMAKE_C_FLAGS_DEBUG}" "x${CMAKE_BUILD_SETTING_C_FLAGS_DEBUG}" + CMAKE_C_FLAGS_DEBUG_MISMATCH) + STRING(COMPARE NOTEQUAL + "x${CMAKE_C_FLAGS_RELEASE}" "x${CMAKE_BUILD_SETTING_C_FLAGS_RELEASE}" + CMAKE_C_FLAGS_RELEASE_MISMATCH) + STRING(COMPARE NOTEQUAL + "x${CMAKE_C_FLAGS_MINSIZEREL}" "x${CMAKE_BUILD_SETTING_C_FLAGS_MINSIZEREL}" + CMAKE_C_FLAGS_MINSIZEREL_MISMATCH) + STRING(COMPARE NOTEQUAL + "x${CMAKE_C_FLAGS_RELWITHDEBINFO}" "x${CMAKE_BUILD_SETTING_C_FLAGS_RELWITHDEBINFO}" + CMAKE_C_FLAGS_RELWITHDEBINFO_MISMATCH) + + # Check the C++ build variation flags. + STRING(COMPARE NOTEQUAL + "x${CMAKE_CXX_FLAGS_DEBUG}" "x${CMAKE_BUILD_SETTING_CXX_FLAGS_DEBUG}" + CMAKE_CXX_FLAGS_DEBUG_MISMATCH) + STRING(COMPARE NOTEQUAL + "x${CMAKE_CXX_FLAGS_RELEASE}" "x${CMAKE_BUILD_SETTING_CXX_FLAGS_RELEASE}" + CMAKE_CXX_FLAGS_RELEASE_MISMATCH) + STRING(COMPARE NOTEQUAL + "x${CMAKE_CXX_FLAGS_MINSIZEREL}" "x${CMAKE_BUILD_SETTING_CXX_FLAGS_MINSIZEREL}" + CMAKE_CXX_FLAGS_MINSIZEREL_MISMATCH) + STRING(COMPARE NOTEQUAL + "x${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" "x${CMAKE_BUILD_SETTING_CXX_FLAGS_RELWITHDEBINFO}" + CMAKE_CXX_FLAGS_RELWITHDEBINFO_MISMATCH) + + # Check the build type. + SET(CMAKE_BUILD_TYPE_MISMATCH 0) + IF(WIN32) + IF(NOT CMAKE_IMPORT_BUILD_SETTINGS_IMPORTING_FROM_MS_STUDIO) + STRING(COMPARE NOTEQUAL + "x${CMAKE_BUILD_TYPE}" "x${CMAKE_BUILD_SETTING_BUILD_TYPE}" + CMAKE_BUILD_TYPE_MISMATCH) + ENDIF(NOT CMAKE_IMPORT_BUILD_SETTINGS_IMPORTING_FROM_MS_STUDIO) + ENDIF(WIN32) + + # Build tool must match on Windows. + IF(WIN32) + IF(CMAKE_BUILD_TOOL_MISMATCH) + MESSAGE(SEND_ERROR + "This project, ${PROJECT_NAME}, depends on the project " + "${CMAKE_BUILD_SETTING_PROJECT_NAME}. Unfortunately " + "${CMAKE_BUILD_SETTING_PROJECT_NAME} was built using " + "\"${CMAKE_BUILD_TOOL2}\", but you are trying to build " + "${PROJECT_NAME} using \"${CMAKE_BUILD_TOOL1}\"." + "In order for this build to succeed, both projects must be " + "built with the same Generator. To change the Generator you " + "are using for the project ${PROJECT_NAME}, you must " + "delete the cache, and then rerun cmake and this " + "time select the same Generator that was used to build " + "${CMAKE_BUILD_SETTING_PROJECT_NAME}. If " + "${CMAKE_BUILD_SETTING_PROJECT_NAME} was built using a " + "generator that you do not have (for example it was built " + "with Visual Studio 6 and you only have 7) then you will " + "need to select a different version of " + "${CMAKE_BUILD_SETTING_PROJECT_NAME} or rebuild " + "${CMAKE_BUILD_SETTING_PROJECT_NAME} with the correct " + "generator. ") + ENDIF(CMAKE_BUILD_TOOL_MISMATCH) + ENDIF(WIN32) + + # Enforce the C++ compiler setting. + IF(CMAKE_CXX_COMPILER_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_CXX_COMPILER to " + "\"${CMAKE_BUILD_SETTING_CXX_COMPILER}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. This is required " + "because C++ projects must use the same compiler. " + "If this message appears for more than one imported project, " + "you have conflicting C++ compilers and will have to " + "re-build one of those projects. Was set to ${CMAKE_CXX_COMPILER}") + SET(CMAKE_CXX_COMPILER ${CMAKE_BUILD_SETTING_CXX_COMPILER} + CACHE STRING "C++ compiler imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_CXX_COMPILER_MISMATCH) + + # Enforce the build type. + IF(CMAKE_BUILD_TYPE_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_BUILD_TYPE to " + "\"${CMAKE_BUILD_SETTING_BUILD_TYPE}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. This is required " + "because projects must use the same compiler settings. " + "If this message appears for more than one imported project, " + "you have conflicting compiler settings and will have to " + "re-build one of those projects.") + SET(CMAKE_BUILD_TYPE ${CMAKE_BUILD_SETTING_BUILD_TYPE} + CACHE STRING "Build type imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_BUILD_TYPE_MISMATCH) + + # Enforce the C build variation flags. + + IF(CMAKE_C_FLAGS_DEBUG_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_DEBUG to " + "\"${CMAKE_BUILD_SETTING_C_FLAGS_DEBUG}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_C_FLAGS_DEBUG ${CMAKE_BUILD_SETTING_C_FLAGS_DEBUG} + CACHE STRING "C DEBUG flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_C_FLAGS_DEBUG_MISMATCH) + + IF(CMAKE_C_FLAGS_RELEASE_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_RELEASE to " + "\"${CMAKE_BUILD_SETTING_C_FLAGS_RELEASE}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_C_FLAGS_RELEASE ${CMAKE_BUILD_SETTING_C_FLAGS_RELEASE} + CACHE STRING "C RELEASE flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_C_FLAGS_RELEASE_MISMATCH) + + IF(CMAKE_C_FLAGS_MINSIZEREL_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_MINSIZEREL to " + "\"${CMAKE_BUILD_SETTING_C_FLAGS_MINSIZEREL}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_C_FLAGS_MINSIZEREL ${CMAKE_BUILD_SETTING_C_FLAGS_MINSIZEREL} + CACHE STRING "C MINSIZEREL flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_C_FLAGS_MINSIZEREL_MISMATCH) + + IF(CMAKE_C_FLAGS_RELWITHDEBINFO_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_RELWITHDEBINFO to " + "\"${CMAKE_BUILD_SETTING_C_FLAGS_RELWITHDEBINFO}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_C_FLAGS_RELWITHDEBINFO ${CMAKE_BUILD_SETTING_C_FLAGS_RELWITHDEBINFO} + CACHE STRING "C RELWITHDEBINFO flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_C_FLAGS_RELWITHDEBINFO_MISMATCH) + + # Enforce the C++ build variation flags. + + IF(CMAKE_CXX_FLAGS_DEBUG_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_DEBUG to " + "\"${CMAKE_BUILD_SETTING_CXX_FLAGS_DEBUG}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_BUILD_SETTING_CXX_FLAGS_DEBUG} + CACHE STRING "C++ DEBUG flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_CXX_FLAGS_DEBUG_MISMATCH) + + IF(CMAKE_CXX_FLAGS_RELEASE_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_RELEASE to " + "\"${CMAKE_BUILD_SETTING_CXX_FLAGS_RELEASE}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_BUILD_SETTING_CXX_FLAGS_RELEASE} + CACHE STRING "C++ RELEASE flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_CXX_FLAGS_RELEASE_MISMATCH) + + IF(CMAKE_CXX_FLAGS_MINSIZEREL_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_MINSIZEREL to " + "\"${CMAKE_BUILD_SETTING_CXX_FLAGS_MINSIZEREL}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_CXX_FLAGS_MINSIZEREL ${CMAKE_BUILD_SETTING_CXX_FLAGS_MINSIZEREL} + CACHE STRING "C++ MINSIZEREL flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_CXX_FLAGS_MINSIZEREL_MISMATCH) + + IF(CMAKE_CXX_FLAGS_RELWITHDEBINFO_MISMATCH) + MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_RELWITHDEBINFO to " + "\"${CMAKE_BUILD_SETTING_CXX_FLAGS_RELWITHDEBINFO}\" to match that imported " + "from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. " + "If this message appears for more than one imported project, " + "you have conflicting options and will have to " + "re-build one of those projects.") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_BUILD_SETTING_CXX_FLAGS_RELWITHDEBINFO} + CACHE STRING "C++ RELWITHDEBINFO flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE) + ENDIF(CMAKE_CXX_FLAGS_RELWITHDEBINFO_MISMATCH) + + ELSE(${SETTINGS_FILE} MATCHES ".+") + MESSAGE(SEND_ERROR "CMAKE_IMPORT_BUILD_SETTINGS called with no argument.") + ENDIF(${SETTINGS_FILE} MATCHES ".+") +ENDMACRO(CMAKE_IMPORT_BUILD_SETTINGS) diff --git a/CMakeLua/Modules/CMakeJavaCompiler.cmake.in b/CMakeLua/Modules/CMakeJavaCompiler.cmake.in new file mode 100644 index 0000000..79c9288 --- /dev/null +++ b/CMakeLua/Modules/CMakeJavaCompiler.cmake.in @@ -0,0 +1,13 @@ +SET(CMAKE_Java_COMPILER "@CMAKE_Java_COMPILER@") +SET(CMAKE_Java_COMPILER_ARG1 "@CMAKE_Java_COMPILER_ARG1@") +SET(CMAKE_Java_RUNTIME "@CMAKE_Java_RUNTIME@") +SET(CMAKE_Java_ARCHIVE "@CMAKE_Java_ARCHIVE@") +SET(CMAKE_Java_COMPILER_LOADED 1) + +SET(CMAKE_Java_SOURCE_FILE_EXTENSIONS java) +SET(CMAKE_Java_LINKER_PREFERENCE 40) +SET(CMAKE_Java_OUTPUT_EXTENSION .class) +SET(CMAKE_Java_OUTPUT_EXTENSION_REPLACE 1) +SET(CMAKE_STATIC_LIBRARY_PREFIX_Java "") +SET(CMAKE_STATIC_LIBRARY_SUFFIX_Java ".jar") +SET(CMAKE_Java_COMPILER_ENV_VAR "JAVA_COMPILER") diff --git a/CMakeLua/Modules/CMakeJavaInformation.cmake b/CMakeLua/Modules/CMakeJavaInformation.cmake new file mode 100755 index 0000000..c73b7e8 --- /dev/null +++ b/CMakeLua/Modules/CMakeJavaInformation.cmake @@ -0,0 +1,34 @@ +# This should be included before the _INIT variables are +# used to initialize the cache. Since the rule variables +# have if blocks on them, users can still define them here. +# But, it should still be after the platform file so changes can +# be made to those values. + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) + +# this is a place holder if java needed flags for javac they would go here. +IF(NOT CMAKE_Java_CREATE_STATIC_LIBRARY) + SET(CMAKE_Java_CREATE_STATIC_LIBRARY + " -cf -C .") +# should be this but compling a java file can create more than one .class file +# so for now get all of them +ENDIF(NOT CMAKE_Java_CREATE_STATIC_LIBRARY) +# compile a Java file into an object file +IF(NOT CMAKE_Java_COMPILE_OBJECT) + SET(CMAKE_Java_COMPILE_OBJECT + " -d ") +ENDIF(NOT CMAKE_Java_COMPILE_OBJECT) + +# set java include flag option and the separator for multiple include paths +SET(CMAKE_INCLUDE_FLAG_Java "-classpath ") +IF(WIN32 AND NOT CYGWIN) + SET(CMAKE_INCLUDE_FLAG_SEP_Java ";") +ELSE(WIN32 AND NOT CYGWIN) + SET(CMAKE_INCLUDE_FLAG_SEP_Java ":") +ENDIF(WIN32 AND NOT CYGWIN) diff --git a/CMakeLua/Modules/CMakeLists.txt b/CMakeLua/Modules/CMakeLists.txt new file mode 100644 index 0000000..4ce6118 --- /dev/null +++ b/CMakeLua/Modules/CMakeLists.txt @@ -0,0 +1,12 @@ +# just install the modules +# new file added, force rerunning cmake + +SUBDIRS(Platform) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules .*\\.cmake$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules .*\\.cpp$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules .*\\.cxx$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules .*\\.in$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules .*\\.c$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules .*\\.h$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules .*\\.F90$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules readme\\.txt$) diff --git a/CMakeLua/Modules/CMakeMSYSFindMake.cmake b/CMakeLua/Modules/CMakeMSYSFindMake.cmake new file mode 100755 index 0000000..5a9a342 --- /dev/null +++ b/CMakeLua/Modules/CMakeMSYSFindMake.cmake @@ -0,0 +1,6 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM make + PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MSYS-1.0_is1;Inno Setup: App Path]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MinGW;InstallLocation]/bin" + c:/msys/1.0/bin /msys/1.0/bin) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) diff --git a/CMakeLua/Modules/CMakeMinGWFindMake.cmake b/CMakeLua/Modules/CMakeMinGWFindMake.cmake new file mode 100755 index 0000000..2ad0298 --- /dev/null +++ b/CMakeLua/Modules/CMakeMinGWFindMake.cmake @@ -0,0 +1,10 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM mingw32-make.exe PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MinGW;InstallLocation]/bin" + c:/MinGW/bin /MinGW/bin) +FIND_PROGRAM(CMAKE_SH sh.exe ) +IF(CMAKE_SH) + MESSAGE(FATAL_ERROR "sh.exe was found in your PATH, here:\n${CMAKE_SH}\nFor MinGW make to work correctly sh.exe must NOT be in your path.\nRun cmake from a shell that does not have sh.exe in your PATH.\nIf you want to use a UNIX shell, then use MSYS Makefiles.\n") + SET(CMAKE_MAKE_PROGRAM NOTFOUND) +ENDIF(CMAKE_SH) + +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM CMAKE_SH) diff --git a/CMakeLua/Modules/CMakeNMakeFindMake.cmake b/CMakeLua/Modules/CMakeNMakeFindMake.cmake new file mode 100755 index 0000000..13befca --- /dev/null +++ b/CMakeLua/Modules/CMakeNMakeFindMake.cmake @@ -0,0 +1,3 @@ +SET (CMAKE_MAKE_PROGRAM "nmake" CACHE STRING + "Program used to build from makefiles.") +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) diff --git a/CMakeLua/Modules/CMakePlatformId.h b/CMakeLua/Modules/CMakePlatformId.h new file mode 100644 index 0000000..1907422 --- /dev/null +++ b/CMakeLua/Modules/CMakePlatformId.h @@ -0,0 +1,79 @@ +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +static char const info_platform[] = "INFO:platform[" PLATFORM_ID "]"; diff --git a/CMakeLua/Modules/CMakePrintSystemInformation.cmake b/CMakeLua/Modules/CMakePrintSystemInformation.cmake new file mode 100644 index 0000000..2b9ecda --- /dev/null +++ b/CMakeLua/Modules/CMakePrintSystemInformation.cmake @@ -0,0 +1,33 @@ +# - print system information +# This file can be used for diagnostic purposes +# just include it in a project to see various internal CMake +# variables. + +MESSAGE("CMAKE_SYSTEM is ${CMAKE_SYSTEM} ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}") +MESSAGE("CMAKE_SYSTEM file is ${CMAKE_SYSTEM_INFO_FILE}") +MESSAGE("CMAKE_C_COMPILER is ${CMAKE_C_COMPILER}") +MESSAGE("CMAKE_CXX_COMPILER is ${CMAKE_CXX_COMPILER}") + + +MESSAGE("CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS is ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}") +MESSAGE("CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS is ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}") +MESSAGE("CMAKE_DL_LIBS is ${CMAKE_DL_LIBS}") +MESSAGE("CMAKE_SHARED_LIBRARY_PREFIX is ${CMAKE_SHARED_LIBRARY_PREFIX}") +MESSAGE("CMAKE_SHARED_LIBRARY_SUFFIX is ${CMAKE_SHARED_LIBRARY_SUFFIX}") +MESSAGE("CMAKE_COMPILER_IS_GNUGCC = ${CMAKE_COMPILER_IS_GNUGCC}") +MESSAGE("CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}") + +MESSAGE("CMAKE_CXX_CREATE_SHARED_LIBRARY is ${CMAKE_CXX_CREATE_SHARED_LIBRARY}") +MESSAGE("CMAKE_CXX_CREATE_SHARED_MODULE is ${CMAKE_CXX_CREATE_SHARED_MODULE}") +MESSAGE("CMAKE_CXX_CREATE_STATIC_LIBRARY is ${CMAKE_CXX_CREATE_STATIC_LIBRARY}") +MESSAGE("CMAKE_CXX_COMPILE_OBJECT is ${CMAKE_CXX_COMPILE_OBJECT}") +MESSAGE("CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_CXX_LINK_EXECUTABLE}") + +MESSAGE("CMAKE_C_CREATE_SHARED_LIBRARY is ${CMAKE_C_CREATE_SHARED_LIBRARY}") +MESSAGE("CMAKE_C_CREATE_SHARED_MODULE is ${CMAKE_C_CREATE_SHARED_MODULE}") +MESSAGE("CMAKE_C_CREATE_STATIC_LIBRARY is ${CMAKE_C_CREATE_STATIC_LIBRARY}") +MESSAGE("CMAKE_C_COMPILE_OBJECT is ${CMAKE_C_COMPILE_OBJECT}") +MESSAGE("CMAKE_C_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE}") + +MESSAGE("CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE ${CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE}") +MESSAGE("CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE ${CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE}") diff --git a/CMakeLua/Modules/CMakeRCCompiler.cmake.in b/CMakeLua/Modules/CMakeRCCompiler.cmake.in new file mode 100755 index 0000000..93bc850 --- /dev/null +++ b/CMakeLua/Modules/CMakeRCCompiler.cmake.in @@ -0,0 +1,6 @@ +SET(CMAKE_RC_COMPILER "@CMAKE_RC_COMPILER@") +SET(CMAKE_RC_COMPILER_ARG1 "@CMAKE_RC_COMPILER_ARG1@") +SET(CMAKE_RC_COMPILER_LOADED 1) +SET(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc) +SET(CMAKE_RC_OUTPUT_EXTENSION .res) +SET(CMAKE_RC_COMPILER_ENV_VAR "RC") diff --git a/CMakeLua/Modules/CMakeRCInformation.cmake b/CMakeLua/Modules/CMakeRCInformation.cmake new file mode 100755 index 0000000..efc7384 --- /dev/null +++ b/CMakeLua/Modules/CMakeRCInformation.cmake @@ -0,0 +1,30 @@ + +# This file sets the basic flags for the Fortran language in CMake. +# It also loads the available platform file for the system-compiler +# if it exists. + +GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_RC_COMPILER} NAME_WE) +SET(CMAKE_SYSTEM_AND_RC_COMPILER_INFO_FILE + ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake) +INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL) + + +SET (CMAKE_RC_FLAGS "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}" CACHE STRING + "Flags for Fortran compiler.") + + + +# now define the following rule variables +# CMAKE_RC_COMPILE_OBJECT +SET(CMAKE_INCLUDE_FLAG_RC "-I") +# compile a Resource file into an object file +IF(NOT CMAKE_RC_COMPILE_OBJECT) + SET(CMAKE_RC_COMPILE_OBJECT + " /fo ") +ENDIF(NOT CMAKE_RC_COMPILE_OBJECT) + +MARK_AS_ADVANCED( +CMAKE_RC_FLAGS +) +# set this variable so we can avoid loading this more than once. +SET(CMAKE_RC_INFORMATION_LOADED 1) diff --git a/CMakeLua/Modules/CMakeSystem.cmake.in b/CMakeLua/Modules/CMakeSystem.cmake.in new file mode 100644 index 0000000..a9f3a55 --- /dev/null +++ b/CMakeLua/Modules/CMakeSystem.cmake.in @@ -0,0 +1,15 @@ +@INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED@ + +SET(CMAKE_SYSTEM "@CMAKE_SYSTEM@") +SET(CMAKE_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@") +SET(CMAKE_SYSTEM_VERSION "@CMAKE_SYSTEM_VERSION@") +SET(CMAKE_SYSTEM_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@") + +SET(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@") +SET(CMAKE_HOST_SYSTEM_NAME "@CMAKE_HOST_SYSTEM_NAME@") +SET(CMAKE_HOST_SYSTEM_VERSION "@CMAKE_HOST_SYSTEM_VERSION@") +SET(CMAKE_HOST_SYSTEM_PROCESSOR "@CMAKE_HOST_SYSTEM_PROCESSOR@") + +SET(CMAKE_CROSSCOMPILING "@CMAKE_CROSSCOMPILING@") + +SET(CMAKE_SYSTEM_LOADED 1) diff --git a/CMakeLua/Modules/CMakeSystemSpecificInformation.cmake b/CMakeLua/Modules/CMakeSystemSpecificInformation.cmake new file mode 100644 index 0000000..561f5e3 --- /dev/null +++ b/CMakeLua/Modules/CMakeSystemSpecificInformation.cmake @@ -0,0 +1,50 @@ + +# This file is included by cmGlobalGenerator::EnableLanguage. +# It is included after the compiler has been determined, so +# we know things like the compiler name and if the compiler is gnu. + +# before cmake 2.6 these variables were set in cmMakefile.cxx. This is still +# done to keep scripts and custom language and compiler modules working. +# But they are reset here and set again in the platform files for the target +# platform, so they can be used for testing the target platform instead +# of testing the host platform. +SET(APPLE ) +SET(UNIX ) +SET(CYGWIN ) +SET(WIN32 ) + + +# include Generic system information +INCLUDE(CMakeGenericSystem) + +# 2. now include SystemName.cmake file to set the system specific information +SET(CMAKE_SYSTEM_INFO_FILE Platform/${CMAKE_SYSTEM_NAME}) + +INCLUDE(${CMAKE_SYSTEM_INFO_FILE} OPTIONAL RESULT_VARIABLE _INCLUDED_SYSTEM_INFO_FILE) + +IF(NOT _INCLUDED_SYSTEM_INFO_FILE) + MESSAGE("System is unknown to cmake, create:\n${CMAKE_SYSTEM_INFO_FILE}" + " to use this system, please send your config file to " + "cmake@www.cmake.org so it can be added to cmake") + IF(EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt) + CONFIGURE_FILE(${CMAKE_BINARY_DIR}/CMakeCache.txt + ${CMAKE_BINARY_DIR}/CopyOfCMakeCache.txt COPYONLY) + MESSAGE("You CMakeCache.txt file was copied to CopyOfCMakeCache.txt. " + "Please send that file to cmake@www.cmake.org.") + ENDIF(EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt) +ENDIF(NOT _INCLUDED_SYSTEM_INFO_FILE) + + +# for most systems a module is the same as a shared library +# so unless the variable CMAKE_MODULE_EXISTS is set just +# copy the values from the LIBRARY variables +# this has to be done after the system information has been loaded +IF(NOT CMAKE_MODULE_EXISTS) + SET(CMAKE_SHARED_MODULE_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}") + SET(CMAKE_SHARED_MODULE_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}") + SET(CMAKE_SHARED_MODULE_RUNTIME_C_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG}) + SET(CMAKE_SHARED_MODULE_RUNTIME_C_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP}) +ENDIF(NOT CMAKE_MODULE_EXISTS) + + +SET(CMAKE_SYSTEM_SPECIFIC_INFORMATION_LOADED 1) diff --git a/CMakeLua/Modules/CMakeTestASM-ATTCompiler.cmake b/CMakeLua/Modules/CMakeTestASM-ATTCompiler.cmake new file mode 100644 index 0000000..3844f5b --- /dev/null +++ b/CMakeLua/Modules/CMakeTestASM-ATTCompiler.cmake @@ -0,0 +1,9 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected ASM-ATT compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. +SET(ASM_DIALECT "-ATT") +INCLUDE(CMakeTestASMCompiler) +SET(ASM_DIALECT) diff --git a/CMakeLua/Modules/CMakeTestASMCompiler.cmake b/CMakeLua/Modules/CMakeTestASMCompiler.cmake new file mode 100644 index 0000000..534b74b --- /dev/null +++ b/CMakeLua/Modules/CMakeTestASMCompiler.cmake @@ -0,0 +1,11 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected ASM compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. +IF(CMAKE_ASM${ASM_DIALECT}_COMPILER) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_WORKS 1 CACHE INTERNAL "") +ELSE(CMAKE_ASM${ASM_DIALECT}_COMPILER) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_WORKS 0 CACHE INTERNAL "") +ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER) diff --git a/CMakeLua/Modules/CMakeTestCCompiler.cmake b/CMakeLua/Modules/CMakeTestCCompiler.cmake new file mode 100755 index 0000000..2a64f7c --- /dev/null +++ b/CMakeLua/Modules/CMakeTestCCompiler.cmake @@ -0,0 +1,54 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected C compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. +IF(NOT CMAKE_C_COMPILER_WORKS) + MESSAGE(STATUS "Check for working C compiler: ${CMAKE_C_COMPILER}") + FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler.c + "#ifdef __cplusplus\n" + "# error \"The CMAKE_C_COMPILER is set to a C++ compiler\"\n" + "#endif\n" + "#if defined(__CLASSIC_C__)\n" + "int main(argc, argv)\n" + " int argc;\n" + " char* argv[];\n" + "#else\n" + "int main(int argc, char* argv[])\n" + "#endif\n" + "{ return argc-1;}\n") + TRY_COMPILE(CMAKE_C_COMPILER_WORKS ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler.c + OUTPUT_VARIABLE OUTPUT) + SET(C_TEST_WAS_RUN 1) +ENDIF(NOT CMAKE_C_COMPILER_WORKS) + +IF(NOT CMAKE_C_COMPILER_WORKS) + MESSAGE(STATUS "Check for working C compiler: ${CMAKE_C_COMPILER} -- broken") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the C compiler works failed with " + "the following output:\n${OUTPUT}\n\n") + MESSAGE(FATAL_ERROR "The C compiler \"${CMAKE_C_COMPILER}\" " + "is not able to compile a simple test program.\nIt fails " + "with the following output:\n ${OUTPUT}\n\n" + "CMake will not be able to correctly generate this project.") +ELSE(NOT CMAKE_C_COMPILER_WORKS) + IF(C_TEST_WAS_RUN) + MESSAGE(STATUS "Check for working C compiler: ${CMAKE_C_COMPILER} -- works") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the C compiler works passed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF(C_TEST_WAS_RUN) + SET(CMAKE_C_COMPILER_WORKS 1 CACHE INTERNAL "") + + # Try to identify the ABI and configure it into CMakeCCompiler.cmake + INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake) + CMAKE_DETERMINE_COMPILER_ABI(C ${CMAKE_ROOT}/Modules/CMakeCCompilerABI.c) + CONFIGURE_FILE( + ${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCCompiler.cmake + @ONLY + ) +ENDIF(NOT CMAKE_C_COMPILER_WORKS) + diff --git a/CMakeLua/Modules/CMakeTestCXXCompiler.cmake b/CMakeLua/Modules/CMakeTestCXXCompiler.cmake new file mode 100755 index 0000000..44a67ad --- /dev/null +++ b/CMakeLua/Modules/CMakeTestCXXCompiler.cmake @@ -0,0 +1,46 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected C++ compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. +IF(NOT CMAKE_CXX_COMPILER_WORKS) + MESSAGE(STATUS "Check for working CXX compiler: ${CMAKE_CXX_COMPILER}") + FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx + "#ifndef __cplusplus\n" + "# error \"The CMAKE_CXX_COMPILER is set to a C compiler\"\n" + "#endif\n" + "int main(){return 0;}\n") + TRY_COMPILE(CMAKE_CXX_COMPILER_WORKS ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx + OUTPUT_VARIABLE OUTPUT) + SET(CXX_TEST_WAS_RUN 1) +ENDIF(NOT CMAKE_CXX_COMPILER_WORKS) + +IF(NOT CMAKE_CXX_COMPILER_WORKS) + MESSAGE(STATUS "Check for working CXX compiler: ${CMAKE_CXX_COMPILER} -- broken") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the CXX compiler works failed with " + "the following output:\n${OUTPUT}\n\n") + MESSAGE(FATAL_ERROR "The C++ compiler \"${CMAKE_CXX_COMPILER}\" " + "is not able to compile a simple test program.\nIt fails " + "with the following output:\n ${OUTPUT}\n\n" + "CMake will not be able to correctly generate this project.") +ELSE(NOT CMAKE_CXX_COMPILER_WORKS) + IF(CXX_TEST_WAS_RUN) + MESSAGE(STATUS "Check for working CXX compiler: ${CMAKE_CXX_COMPILER} -- works") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the CXX compiler works passed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF(CXX_TEST_WAS_RUN) + SET(CMAKE_CXX_COMPILER_WORKS 1 CACHE INTERNAL "") + + # Try to identify the ABI and configure it into CMakeCXXCompiler.cmake + INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake) + CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp) + CONFIGURE_FILE( + ${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake + @ONLY + ) +ENDIF(NOT CMAKE_CXX_COMPILER_WORKS) diff --git a/CMakeLua/Modules/CMakeTestForFreeVC.cxx b/CMakeLua/Modules/CMakeTestForFreeVC.cxx new file mode 100755 index 0000000..e580c1f --- /dev/null +++ b/CMakeLua/Modules/CMakeTestForFreeVC.cxx @@ -0,0 +1,3 @@ +#include + +int main(){return 0;} diff --git a/CMakeLua/Modules/CMakeTestFortranCompiler.cmake b/CMakeLua/Modules/CMakeTestFortranCompiler.cmake new file mode 100755 index 0000000..cc8c565 --- /dev/null +++ b/CMakeLua/Modules/CMakeTestFortranCompiler.cmake @@ -0,0 +1,66 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected Fortran compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. +IF(NOT CMAKE_Fortran_COMPILER_WORKS) + MESSAGE(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER}") + FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f " + PROGRAM TESTFortran + PRINT *, 'Hello' + END + ") + TRY_COMPILE(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f + OUTPUT_VARIABLE OUTPUT) + SET(FORTRAN_TEST_WAS_RUN 1) +ENDIF(NOT CMAKE_Fortran_COMPILER_WORKS) + +IF(NOT CMAKE_Fortran_COMPILER_WORKS) + MESSAGE(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER} -- broken") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the Fortran compiler works failed with " + "the following output:\n${OUTPUT}\n\n") + MESSAGE(FATAL_ERROR "The Fortran compiler \"${CMAKE_Fortran_COMPILER}\" " + "is not able to compile a simple test program.\nIt fails " + "with the following output:\n ${OUTPUT}\n\n" + "CMake will not be able to correctly generate this project.") +ELSE(NOT CMAKE_Fortran_COMPILER_WORKS) + IF(FORTRAN_TEST_WAS_RUN) + MESSAGE(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER} -- works") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the Fortran compiler works passed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF(FORTRAN_TEST_WAS_RUN) + SET(CMAKE_Fortran_COMPILER_WORKS 1 CACHE INTERNAL "") +ENDIF(NOT CMAKE_Fortran_COMPILER_WORKS) + +IF(CMAKE_Fortran_COMPILER_WORKS) + # Test for Fortran 90 support by using an f90-specific construct. + IF(DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90) + ELSE(DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90) + MESSAGE(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90") + FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90 " + PROGRAM TESTFortran90 + stop = 1 ; do while ( stop .eq. 0 ) ; end do + END PROGRAM TESTFortran90 + ") + TRY_COMPILE(CMAKE_Fortran_COMPILER_SUPPORTS_F90 ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90 + OUTPUT_VARIABLE OUTPUT) + IF(CMAKE_Fortran_COMPILER_SUPPORTS_F90) + MESSAGE(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90 -- yes") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the Fortran compiler supports Fortran 90 passed with " + "the following output:\n${OUTPUT}\n\n") + SET(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1 CACHE INTERNAL "") + ELSE(CMAKE_Fortran_COMPILER_SUPPORTS_F90) + MESSAGE(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90 -- no") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the Fortran compiler supports Fortran 90 failed with " + "the following output:\n${OUTPUT}\n\n") + SET(CMAKE_Fortran_COMPILER_SUPPORTS_F90 0 CACHE INTERNAL "") + ENDIF(CMAKE_Fortran_COMPILER_SUPPORTS_F90) + ENDIF(DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90) +ENDIF(CMAKE_Fortran_COMPILER_WORKS) diff --git a/CMakeLua/Modules/CMakeTestGNU.c b/CMakeLua/Modules/CMakeTestGNU.c new file mode 100644 index 0000000..933e5a2 --- /dev/null +++ b/CMakeLua/Modules/CMakeTestGNU.c @@ -0,0 +1,9 @@ +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) +void THIS_IS_GNU(); +#endif +#ifdef __MINGW32__ +void THIS_IS_MINGW(); +#endif +#ifdef __CYGWIN__ +void THIS_IS_CYGWIN(); +#endif diff --git a/CMakeLua/Modules/CMakeTestJavaCompiler.cmake b/CMakeLua/Modules/CMakeTestJavaCompiler.cmake new file mode 100755 index 0000000..a682307 --- /dev/null +++ b/CMakeLua/Modules/CMakeTestJavaCompiler.cmake @@ -0,0 +1,7 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected Fortran compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. +SET(CMAKE_Java_COMPILER_WORKS 1 CACHE INTERNAL "") diff --git a/CMakeLua/Modules/CMakeTestNMakeCLVersion.c b/CMakeLua/Modules/CMakeTestNMakeCLVersion.c new file mode 100644 index 0000000..3cece2a --- /dev/null +++ b/CMakeLua/Modules/CMakeTestNMakeCLVersion.c @@ -0,0 +1,2 @@ +VERSION=_MSC_VER + diff --git a/CMakeLua/Modules/CMakeTestRCCompiler.cmake b/CMakeLua/Modules/CMakeTestRCCompiler.cmake new file mode 100755 index 0000000..a8eeaa3 --- /dev/null +++ b/CMakeLua/Modules/CMakeTestRCCompiler.cmake @@ -0,0 +1,10 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected RC compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. + +# For now there is no way to do a try compile on just a .rc file +# so just do nothing in here. +SET(CMAKE_RC_COMPILER_WORKS 1 CACHE INTERNAL "") diff --git a/CMakeLua/Modules/CMakeUnixFindMake.cmake b/CMakeLua/Modules/CMakeUnixFindMake.cmake new file mode 100755 index 0000000..4272c21 --- /dev/null +++ b/CMakeLua/Modules/CMakeUnixFindMake.cmake @@ -0,0 +1,2 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM NAMES gmake make smake) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) diff --git a/CMakeLua/Modules/CMakeVS6BackwardCompatibility.cmake b/CMakeLua/Modules/CMakeVS6BackwardCompatibility.cmake new file mode 100755 index 0000000..13665f7 --- /dev/null +++ b/CMakeLua/Modules/CMakeVS6BackwardCompatibility.cmake @@ -0,0 +1,13 @@ + +# hard code these for fast backwards compatibility tests +SET (CMAKE_SIZEOF_INT 4 CACHE INTERNAL "Size of int data type") +SET (CMAKE_SIZEOF_LONG 4 CACHE INTERNAL "Size of long data type") +SET (CMAKE_SIZEOF_VOID_P 4 CACHE INTERNAL "Size of void* data type") +SET (CMAKE_SIZEOF_CHAR 1 CACHE INTERNAL "Size of char data type") +SET (CMAKE_SIZEOF_SHORT 2 CACHE INTERNAL "Size of short data type") +SET (CMAKE_SIZEOF_FLOAT 4 CACHE INTERNAL "Size of float data type") +SET (CMAKE_SIZEOF_DOUBLE 8 CACHE INTERNAL "Size of double data type") +SET (CMAKE_NO_ANSI_FOR_SCOPE 1 CACHE INTERNAL + "Does the compiler support ansi for scope.") +SET (CMAKE_USE_WIN32_THREADS TRUE CACHE BOOL "Use the win32 thread library.") +SET (CMAKE_WORDS_BIGENDIAN 0 CACHE INTERNAL "endianness of bytes") diff --git a/CMakeLua/Modules/CMakeVS6FindMake.cmake b/CMakeLua/Modules/CMakeVS6FindMake.cmake new file mode 100755 index 0000000..e0719cd --- /dev/null +++ b/CMakeLua/Modules/CMakeVS6FindMake.cmake @@ -0,0 +1,10 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM + NAMES msdev + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Setup;VsCommonDir]/MSDev98/Bin + "c:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin" + "c:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin" + "/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin" + ) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) +SET(MSVC60 1) diff --git a/CMakeLua/Modules/CMakeVS71FindMake.cmake b/CMakeLua/Modules/CMakeVS71FindMake.cmake new file mode 100644 index 0000000..666c83d --- /dev/null +++ b/CMakeLua/Modules/CMakeVS71FindMake.cmake @@ -0,0 +1,11 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM + NAMES devenv + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VS;EnvironmentDirectory] + "$ENV{ProgramFiles}/Microsoft Visual Studio .NET/Common7/IDE" + "c:/Program Files/Microsoft Visual Studio .NET/Common7/IDE" + "c:/Program Files/Microsoft Visual Studio.NET/Common7/IDE" + "/Program Files/Microsoft Visual Studio .NET/Common7/IDE/" + ) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) +SET(MSVC71 1) diff --git a/CMakeLua/Modules/CMakeVS7BackwardCompatibility.cmake b/CMakeLua/Modules/CMakeVS7BackwardCompatibility.cmake new file mode 100755 index 0000000..49b5646 --- /dev/null +++ b/CMakeLua/Modules/CMakeVS7BackwardCompatibility.cmake @@ -0,0 +1,13 @@ + +# hard code these for fast backwards compatibility tests +SET (CMAKE_SIZEOF_INT 4 CACHE INTERNAL "Size of int data type") +SET (CMAKE_SIZEOF_LONG 4 CACHE INTERNAL "Size of long data type") +SET (CMAKE_SIZEOF_VOID_P 4 CACHE INTERNAL "Size of void* data type") +SET (CMAKE_SIZEOF_CHAR 1 CACHE INTERNAL "Size of char data type") +SET (CMAKE_SIZEOF_SHORT 2 CACHE INTERNAL "Size of short data type") +SET (CMAKE_SIZEOF_FLOAT 4 CACHE INTERNAL "Size of float data type") +SET (CMAKE_SIZEOF_DOUBLE 8 CACHE INTERNAL "Size of double data type") +SET (CMAKE_NO_ANSI_FOR_SCOPE 0 CACHE INTERNAL + "Does the compiler support ansi for scope.") +SET (CMAKE_USE_WIN32_THREADS TRUE CACHE BOOL "Use the win32 thread library.") +SET (CMAKE_WORDS_BIGENDIAN 0 CACHE INTERNAL "endianness of bytes") diff --git a/CMakeLua/Modules/CMakeVS7FindMake.cmake b/CMakeLua/Modules/CMakeVS7FindMake.cmake new file mode 100755 index 0000000..2d12267 --- /dev/null +++ b/CMakeLua/Modules/CMakeVS7FindMake.cmake @@ -0,0 +1,10 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM + NAMES devenv + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VS;EnvironmentDirectory] + "c:/Program Files/Microsoft Visual Studio .NET/Common7/IDE" + "c:/Program Files/Microsoft Visual Studio.NET/Common7/IDE" + "/Program Files/Microsoft Visual Studio .NET/Common7/IDE/" + ) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) +SET(MSVC70 1) diff --git a/CMakeLua/Modules/CMakeVS8FindMake.cmake b/CMakeLua/Modules/CMakeVS8FindMake.cmake new file mode 100755 index 0000000..d6ca4aa --- /dev/null +++ b/CMakeLua/Modules/CMakeVS8FindMake.cmake @@ -0,0 +1,16 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM + NAMES VCExpress devenv + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VS;EnvironmentDirectory] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup;Dbghelp_path] + "$ENV{ProgramFiles}/Microsoft Visual Studio .NET/Common7/IDE" + "$ENV{ProgramFiles}/Microsoft Visual Studio 8/Common7/IDE" + "$ENV{ProgramFiles}/Microsoft Visual Studio8/Common7/IDE" + "$ENV{ProgramFiles} (x86)/Microsoft Visual Studio .NET/Common7/IDE" + "$ENV{ProgramFiles} (x86)/Microsoft Visual Studio 8/Common7/IDE" + "$ENV{ProgramFiles} (x86)/Microsoft Visual Studio8/Common7/IDE" + "/Program Files/Microsoft Visual Studio 8/Common7/IDE/" + ) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) +SET(MSVC80 1) +SET(MSVC_VERSION 1400) diff --git a/CMakeLua/Modules/CMakeVS9FindMake.cmake b/CMakeLua/Modules/CMakeVS9FindMake.cmake new file mode 100755 index 0000000..a2c8e72 --- /dev/null +++ b/CMakeLua/Modules/CMakeVS9FindMake.cmake @@ -0,0 +1,16 @@ +FIND_PROGRAM(CMAKE_MAKE_PROGRAM + NAMES VCExpress devenv + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VS;EnvironmentDirectory] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup;Dbghelp_path] + "$ENV{ProgramFiles}/Microsoft Visual Studio .NET/Common7/IDE" + "$ENV{ProgramFiles}/Microsoft Visual Studio 9/Common7/IDE" + "$ENV{ProgramFiles}/Microsoft Visual Studio9/Common7/IDE" + "$ENV{ProgramFiles} (x86)/Microsoft Visual Studio .NET/Common7/IDE" + "$ENV{ProgramFiles} (x86)/Microsoft Visual Studio 9/Common7/IDE" + "$ENV{ProgramFiles} (x86)/Microsoft Visual Studio9/Common7/IDE" + "/Program Files/Microsoft Visual Studio 9/Common7/IDE/" + ) +MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM) +SET(MSVC90 1) +SET(MSVC_VERSION 1500) diff --git a/CMakeLua/Modules/COPYING-CMAKE-SCRIPTS b/CMakeLua/Modules/COPYING-CMAKE-SCRIPTS new file mode 100644 index 0000000..4b41776 --- /dev/null +++ b/CMakeLua/Modules/COPYING-CMAKE-SCRIPTS @@ -0,0 +1,22 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. diff --git a/CMakeLua/Modules/CPack.DS_Store.in b/CMakeLua/Modules/CPack.DS_Store.in new file mode 100755 index 0000000000000000000000000000000000000000..5be0eeb180e736fd49c5745bcd42616374344970 GIT binary patch literal 12292 zcwX(9O-~a+7{~up5J3GN$AT`R<@mHw=MA`i7}o% zd-BS~aPgvtUbz^regaS82QUVo*_nk3ExsI#(dU;8|DCsIo|$JmWu^c`rdF5$MgVj} zYqA$D={D&Q38Q_K1oel^sob4>HPfm&!!QiPFn<9;OLv>^eTHHFW7Pg&8BH7A&?-!Q z!f0nxpQKUCXxiw8R$JqEEg%a z6_?ak!&MoWPb!so`Jyyd;@gGJxTYT0oTcYWST4)5o0HYjp4;)Jq1slp-FPY$FJINY z)fA$?v{wwzN?G(>YhG5p70(T<347X}oQljeKD}++yntg6+l&3VY<{g6$XdBzSE330 zB4YbtW9P+koZTgWlkrtaOs~B^j#@=pfyU10IMtli&tKm|Z;s>>`9IOx{Zx~g)Irbt zah_5RS>&;XA_7R%P(}eZDx^i6qNicZQn{p@50^IGd3vtG!wMyr`dFBtR@0OwF@*t~ zbDG9<4vsm9QD;H=wUQe;?N)q9Y(@*Usp8T#n+>QHTG1G@-cVeCGatQ?gVq*hux1xZ zKOLbbTdyfDOL11mrN=tZ>iAvPce9}z$7JmJW$ee~9aKz)ls`D}p@UKaJ+EG(Yv~Kk z<%*t4>VD`3VXBa=dxezpGL@-$ej!X5)2a3|>BmKk{4gGiR1#1`ZHiO#E_N6*G4TV(fpE2#XQl~y|nfB!Q~YdW-ysPq5z_V@n`!~DaD v&Y62N>L)wVrh)qJ)uOZ + + + + IFPkgDescriptionTitle + @CPACK_PACKAGE_NAME@ + IFPkgDescriptionVersion + @CPACK_PACKAGE_VERSION@ + IFPkgDescriptionDescription + @CPACK_PACKAGE_DESCRIPTION@ + + diff --git a/CMakeLua/Modules/CPack.Info.plist.in b/CMakeLua/Modules/CPack.Info.plist.in new file mode 100644 index 0000000..da4872b --- /dev/null +++ b/CMakeLua/Modules/CPack.Info.plist.in @@ -0,0 +1,37 @@ + + + + + +IFMajorVersion +@CPACK_PACKAGE_VERSION_MAJOR@ +IFMinorVersion +@CPACK_PACKAGE_VERSION_MINOR@ +IFPkgFlagAllowBackRev + +IFPkgFlagAuthorizationAction +AdminAuthorization +IFPkgFlagDefaultLocation +@CPACK_PACKAGE_DEFAULT_LOCATION@ +IFPkgFlagInstallFat + +IFPkgFlagIsRequired + +IFPkgFlagOverwritePermissions + +IFPkgFlagRelocatable +<@CPACK_PACKAGE_RELOCATABLE@/> +IFPkgFlagRestartAction +NoRestart +IFPkgFlagRootVolumeOnly + +IFPkgFlagUpdateInstalledLanguages + +IFPkgFlagUseUserMask + +IFPkgFormatVersion +0.10000000149011612 +CFBundleIdentifier +com.@CPACK_PACKAGE_VENDOR@.@CPACK_PACKAGE_NAME@.@CPACK_PACKAGE_VERSION@ + + diff --git a/CMakeLua/Modules/CPack.OSXScriptLauncher.in b/CMakeLua/Modules/CPack.OSXScriptLauncher.in new file mode 100755 index 0000000000000000000000000000000000000000..a3e1737e9ef7d1d8b1ed2c5a47904c2a28c0f7d4 GIT binary patch literal 1345804 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­Q((^3df*n66!t<8A%mfo)hv!gRZ{(XZ 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

  2. x~aOu_y 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
    9$;%X^L}w^Dfg#bXZenx~X}?rF6xDwNEIu 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
  3. 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

    p-)`6JCH<~q9_E3 zwbTI$rw_N%BB=wLKRgA&)VU(Ld)vN0b$Axoa1$eS81nmewUp95K)48hVwjD(2@t$n z;~Ahs_FKV3xBKQ*b2k^P5?>Skbq+Q}dwVwfDl%#qLfA&N?9W_2?4Tr8OXZw2RmbAl z1Jumf0rW7Rt>*`6nVlRU|z_WEd05I|TE`2MF>qpS?$tBp_BU$`6_#_>|En zBhHMdaA=Ms4&^AUfti?Hj)I=}Oe$Ftw{jL;bF$LSr8)hBsV~b>1j|`jm6M?=YZ>!W z{qE=t!HRp2|8{hS?v%m<&xKncrwFvT=8{tf_PSk)Q3IvlB~`POje^m`QZv7Miuwg0 zkn}Fx0wv~P5%@Xpm;lt00UsnBYKTdvR|t-zWA&hgRS_GOe)wBEF%-5BgSw%i3q#TM zV1T$ZjspV}+5QV0)X;HSD11H(;Fi^KT7Z1luFnEEk-IJn;0)jKSSV`OVFBpr`YS}P zyF%gdR*1XK3T5K>Dgbzot3u)PQ~=LK<*0zuL=UH6dV6@k-5=EohX5=8^B{(Gk3X)y zOOvvwuHe7rm9ol23QXhqqGLN>=qnw9=4&%8Aofu!c||D?HSIM<1Z1yus;;HIjqDz2 z`rP%aX@yqC5s27m8G~H1S{hyG4iyMgPLXwjyB~jBEyefi_p9X(i;gfO!FjHOfF3V- zf*hOl%o%zrgF*`re8_6=Y`>LG-50*Xt~BLCW?cPyMuK6%9(!1`2-R-xwzytE$GF&T zj)Jq|$K26fRcyLlNg&XY_ezDUqy82}7zy+pmi$p{lS2!oo2|JdM46E1R2j)dtu(S{ zwwqCzK8i`7D9RqN43Z>L;9bCC9Mo(tB8unBC7ul0-AGKF6QkbT^8^YwB`` zxcUBmX7>t8?4Ci1**o}c0qOMXW-BHKZWh$S?b*$Ie`wfVh@Mr!_N+aC@5jYZRovz9 z4rD&x)-(XKoq-*^jrg}AVbD6uJ@4o+2GoMafsk=wgIgz7_^cZm{xDHdiG~%cG6of! z@5>AvUw);v$ZXCt{S7g+S#wy-m0nife>V3k<2Stq;BWiUN4+Fle_ots#|;zpJsAAq zobeKz;cBnp&pZ4xGX$l@akhWhu-3ZPCI~i9C-c{DonrS~lhx#b^E4B~sbSC#hUNW6 zhNg|9whE37ASG$GCLh6w(lG12&<%Pm$4{FIWl|4@GcOI-FPI-0^}z{I&*2zv-YnQc zQXFY`oeXhVvQ0_5Jl1%Iz-u?lqI{R;iyyg#eyi;@wEYtq$&e7M1pcue3G#VZIwSn~ z`g(?5A+zIL?0`rc>lauJLuvD~#qoVhvZUaQJOp^)BfWfOV8ftD`T&7u{)j*Sc*u0B z!&ruhRo<1NTAynr7SC6}N7#c89QB;wGBH`y$7Di}5oIWzj1>XW>Zl4T<26T)a~r4$ z(*rDQr5xwqc56FU(AsXA^PTz7hP%>l5l%Tn+*$6i2KUh%w)OVb4)?GO_OQ2uVo?Ur zmtOR`zDqzgKtM7;Mj*2#rAG14u?`SY2MI|cgOXl)#4H}xA&TnI#B-CYi>K~IxywNh zm2Jd@9s~O%6!8noWUd8xDBrCfI9CSxSpEReX7Agj5D!$SJo%(9&vpv;Ln$8cN)F`~|O7j={Gw9Yg3nM-{;;(EtwI4r)J=Y<T(ipW38?aDW z*`CS2#{uq6N5Es5$~zN6X-qq0)`~KNQV_6+PGdBoSXWv#^AA`lu{sl*!)lEuw3w*4 z`!XOu0&phO9M81N00cEEp#NkI+nFfB5dTJa(KPc>W&-wuk8=mwWNqSEwd)pR+NSvs z<*5U@;`Rb0!&|n8zsoRL5~RIK)6#_5Av89cPt2j%?l6x4=jxCX0HqU|dwq>T7=M{b zO+u$4lsXmX2as&+s0vUNCJ^84PfvmbfeisvHUgBuI-(YZO5|aDkOqaayLEUwq@Dk&4N@y8Vr8s(lfagl z35-kLX+%z9e&angoi*#-@v~x7oDv198{a|^I2H8piLR>zk8#ea;_H592k|`MF*O&W zwI3a4QaRw^WK?vKraeeAAJRhrV`^bM1kmM!=)7}0a4fTf-oZYLyXcFP(ECSSK<^*> z!X>7E2Ff0q`iTK9(@#pNN$FO038{t%@srR`L1j_UPr%^*FG6Ij2dJnu6>e4MmZCOl z`2L}*@LslWPq{6l;CQ?ejkMiy}Eo zJA~8T%$S$NBa3Y}hvV=MIlVlPK~%&G}#*iV(-da`qb~6kIi1J z7S%O%a$a7BWYFI|SC_fd&YTo`XHx7AHOdU?PdX_|RE~fHtE)b$oFOI#s#I~gB3)PNk?T!HW=x`NEO-<3 zv*cF<$^PF9+LUdgoxFt z&^Q48piTg+vHRKK?yA^g-KrG%@?1W)*pLb=G{Kc4&Ka*XWx_&H=^Hdi7&v+YU|1hx z_R#po@cWK7|E?eyxGS!94~O?Nh>0c#rtH}v4xC!G`&CYb|ZEcCy(pdka5p=A&kk;jZR+Z6ssxo!Fh3I7Dlu-2dfwh#=j&@ka~>E zVW7Rxj5#T*k+8f_7)U(`q<3o8YS^oeBFlsn_W>C-zqqPI(E+)9)wjL9Qfia$I__z&-}o-JWO zH8w>xyurL%!-mGdhId%c7BN8TP13vFtR)egps{Pin8v#AV0F;;j`djF#*Eax`_zN` zNmvy_Uy6VJH&udoir~(Kne)A12j3O8;1A^?FU=(2( zMGp*waJ4svr#!h&`QFp1^jrI@J#alsyBCMm=law>6AO#)b2T@~ELD@l{2HXvuH{ZexRx>0{z~1U+-$wWS$3)fiS<+s z4QrsPXJ|b&JHu;{u7|jAYXm9p)(j1`zouunyA_G-!^5rO$+69oc|-KQa~IftLT3cL zJ|+8NR7s6VsexUH(>@sCJC6yEFFgb?I}xJ4;|_E^J8|CI>kt?z-V%gj zG=*WJOnBvK@Orw+tBXz1IU$qEv;m_l3t|}?dA zjXLCHJ>-xe=ss3t_+#-5dD4gzgBb^XDSrg+bZWkovTB7$on2`&aaV#WZ9EkG{WY^~-e`xJ6R zhN5I=HU>y|TcvRynQ3x5xnfY_(CDV|2_$Pk{KWEmf|6P^)3Z*T+6;UIl4aw(H+}an zgdw*uu-@Tx47;O);SYZx423=J^elGz0@>}<3u&BI7SPn0&G^*W6tG)s0>1lBQ9lyI zdTo(6zLkxb9s*;w6AMhe9ru0A1htQ1owfE9ks*8*_fL_HYy>X(B53!ERs)BzcP8%q zZtYf`Zhfb_HIm-->khr&DSF3JvThY6xBMUxXQ?x^$+;UW1E93Wt}br3+ZCQNCHNDI z^W?j@;D~6I9YX;^e#zfDyih{Il@5``0+>2M^OyxN?|Jzp>|G?oQ<%&f&DYZqU(ZJIgEyM7r=eq$4Z-|`pG0uz+$4*zQBcAMCtG^?3AHtMqfqtB zCHbhs-WcJ;dvvmq8Btv@x%Mq(43^;8$@XM~B0C#H@a$ycGah>W_w-d_9-eIWN4{A24OVbLtn9|t91o={s*;WRwZS93bn<0 zU$>k23Tx+`%KUv|xw_0CLK`IgkgejPHrvU}OP#8d9$y(m=Q_+J=;qTNq}NSDZ&}K8 zF`@S$It@xoWO}248W4y@VG)I4XP~}TSVgyja6J|+iA@V#_br_ggG{aVyd1F%@PGrj zf@(I*ol167v^SPHjvOdy4{fQ3!lVd;BwJPaFn*_>ewDc);b1!p?*K%)weG^b08g;; zK3K#jT$QMVToRlK=`@uTJe@5tpe!ON%wet7*NN$6^C$8R+->=oREC7UarDw7drB}S zZ%qyDFPMjF`0!CIt7CAJNaA!+%U`9wi7`)f^7gu(k(?RlGG`6bg$2 zzUhNs65PpK^+u=+`3SfJyF3FnK0sd4N80tucF*ZVWm#I(*1qpUS21|7d&WUqHV(?H zZ(&&$P$Lk=k%kYpQ4*!)bQ9Ok9!spT95aZnw~lT96)Quyz8)1J)j|hbtxd?_k#0ew zXq*~#@7}a+9D5fBpCdO5i)RMuGssO)Ivgdqeu6N6yIbuFV{$z)PYPRWvWqz(;^NvX0l!GR)a z*2hT2FW`#LgSomaiF74Of2xlRu>Xb<-HL)F!n|-19V>}Gd+LaZ)I}*5K~jewj@z}k zXMWo5m-M-!VNXKwj$kzYXbg)T^GH^KF~MUHPDVSI6LeEyppt~|ExL$C00MB$LUBwu zQV|wo=2y54b??rn1vWuI@zViaT1E~MtX#bTUBq);{1H?7^_2b+A1qc^AfYKqo?|HC zVv6vRfcW!{<)7!lh79H%a~MxRtR#ZqcLx=nlmEDwz1|*XzwMgM8sb^viWWP#5!ZnE zZg&~KfIq}3mB1gj?dCFrKg7Qk{0q_8;{yH?ta-DzOl37lbh{;xGCp3BLjdC|nICz+ znH~iL1hnG+AjZUWh7rubHuSMEzgz~$yRa%9xiJuZzuhix+v8;<>7C2JWha{L9sDf` zgjjm;BV%e?1Z5LDo72$AFu}LR4uneyS=+!nvCt--|kLrw3-2P{Or@ytZ9^Y?d=sm_(&fEYpCOi> z%04SO-)3R*??5O(noEcd+AJ`?rA*4usx(CKTW0YArfg($f<{_hCNp;WvKT=#Y|e+8 z8fDhEC4Ks~QzJmyVFwRK&3-ZN;DC~QdYB%Ik22TbYw`D7{AV(euRl0akRVj?B0(q5 z0bArHD*q>Zq^yu$i>c>10O%k=ik}H)r~G-q{!TwqCo-{W*R~6i0ZYNrj+K#c>^Nxm zf`M&boug}6AJf;RP`=~%M#4NT{*8*`&FAqt|+WUlGUXxUbY;5#y)Jjtp*%bIx zNpU5L)8}<&sb%f*zokJf4ZdS>(2%NAJ@`4R9nZdB`mR54W1MV0s({-N(!Kd?T;2v6 z@qG@`;TjDoGo-r6eWbhQMF?b)$ZXP(5?VgJJ{}u!72R%Vsf1~X)3@lgjM_JF^ab;r zbjH`rgB%p|PKn_xh|*83zJ(t43!?MT%=e4;H(R_0W~vpZkV(F^qpDwQ_w7B`B|+Y3 z9qe{oLZaHY&3!A@&u5vW+a1+V%j$2CqpH(%n#=~9)~}jX<7qq8u$qc%IOOSc5kdB@ zm`4$QB<2rDfgU51lp*gxb8>kh|BGuLiVt;hIL?;MN36)VA5qp~dX^-uRf3k|Y)uJT z5=c5+WP;^E>1Ne#K47unzEwoUl%*xfa+SK}IJ@VXgWML)VTU=5 zlT4;aRz>ip1Ua~XEVrIa-h$s2oo|qB48L(UiUczDQFbv=d@DG`2V6yYf*Hp6!w20Y z!?a>ZsY^ zBfmv*6zxx?`#h7oy1gr=7c<>;b(dgEt8(7KFUVDt=V^ZBq*((f*!$R*Xbp;WrZxC= za;i1vg9-CNJ^k-^{(FvzNOIjr!LAP$qXw`lMRLy}nL~R}b6#s_UkI+!YDk)YE9PyU z;_#etP+Xj*gwqYmSvu&xiT}B2KH?B*@%4Py9%VjpjJ$vcH;AzMbpx}C#`Fh%v>$0N zFijX`k8-gmA?$^L{cqd-@^A_Xy(rV*!Tp!b7ekr_kf!ku%jI+@B$ywYe5r`itoP(@+Hf%XEy_;>H7Gs?r)6 zO92y86_7NHj3JV~iHb2fAwcx42Zk!{S(wC-v83jE&48Xz2dx_o{gm0rXhcnnyD@!?$;Lq(S^MMRZ!PAc zGDZFoTh3VeVMH16ht2ZKqWP)aEPtLKj+z}YnsNNY#6rWF`L|XXJjAc}+a2MTmLtC1 z1$I~Jq1N1Em_u53^z_VIiYy}s6yK6fqk`wtE+o+eu1Vq)_z9Fe$DdVNvm4{J_)dP~ zF`rYG(IPeT7K&=`=Zg=skMr3|NI@iikZ1`>LhTPM%x3Nfl2Z#)Y`1HWNLonU)a^sN zI(Dj*DrCgsL9GPyvfo(~RgjBKWST&ei!F?0VQ>+sF*|NKuOJoUFPSTZH@lBN_pjJG zIDOaK&Btbce7F6}rhS~Q=7;yqVd8tkm#P)`b&YF_u)UujUdeZI*%k_6Q=1;gV7L-d zZSiN!WbR0N0u;aBuA9l`V^0s_C^Wz+tld}bUg`lqTf(zxfB+T?JX#v{al11=_z;KW z+9b8c?ze~I?%{YdH4^=agAe z>TP6`G1Z-NPBGY4>+2iqg(M^as;OU)kH0==TvrzWNs!7;IroXo*q72&zu-l9u-HB+zHUsPv z)88wa$>_{J!p1wssb&5b=r)J__S5quI^sS$9FGf_?Gs>!oiAV>PXUB8_50|G#^6eT zT!QvqoUu;;8zIFd6C*Rctj(lkxS=+bRl7?V$QdsQ)PFmAeYHcPdTd)<$ zzmQ27$DwB2X%t!5)5xI$E_pw_owm~%XK_fQWC%v;g>kIaKJpIyG&OK!LpX9jjtcDO zVeY1p0j(H&jM`__dT7)Vw0)3*=A&vpFl-&R3Y+dEwn}H8yy>UTNhHrg`N0kkH*E`SMsm!3 z!vJy{fC|#tHBLSxC5>ONWmFm>}2)m zqv!3|IaE}0(8M8ZXX3%N(i~SUMLtNgp`}Tp2CX5dmnFe+N51=2Vs7s@+dU&r`w=S~ z1-8=bEE`}WOlt>%n$s*F3Bg?)3KI5b*EAp0mcbesl#zrYW@1U7c}OxSQ{w?Y4%;=4 zh_io~ilG%-F&G7R_i$9%-qLJfU%69CjVTS*!$z?M&QsjxvXDA?_`F%TV*q9J`Pi&h z_tf6qk!U=HD;BhP-s#UJ1V$zXm!RcCJ0*8^N-i5urpN3~AbTChv)TF<-2snEpvi}} zL&4Bf<-|A@a6vch!}d63H$kc;yWtV|NvY6Ey-(~H&3O??rA_Qy*lthI+~KthB1z{- zrS*s@80he&OfizdtJyCzuua2zR|@7okji#}h0^Fvj4JCJxmJm_G|>p}Qrevr8D@!J zQgwM{E=qQi$2q%g?im>9R3Fq_UcM-!3|xFOT^Sx{RAq=TR5=wue{R%B$~;juq>hxM zY^Nn!%wahNnvx&ES`Urp=o?37SQ6k;+Ve#(*wuf&gx3+{o9f}GeS5UO)lo*@c5-LS zF9m!^ix-tDhmOt;^N)=|a9vbpQ}BIts$@|VSykFid(_CYNW~{uh&fq&2AmxLZc%mQ-US{-Z*(W@K|o-@s*8Lk2rb-`zef6kA|Ef~=H6_!Ktp zJjSWDZ_ZFSr<5voBrHpl{0oI(qDe(?XfGBGe~Q8AP(#M$#9E?g9fsdeTn zJ!SNQO7RonI9l)JnQ(d%ou3BB)=0!5jl_viZLI}BHFd6Ok=qkaO3}2iB!V~NkcD)j zX;Io(vBEtK7V`M;_-`+6^ zF6Ydg=P~1!Ab+33-AY2)y+d@_ouD%J-!6X%wgew<<58xwYI5>Iz+! zrwwXaO1a;_cX>MfL_v3qt&ZRtR2SVcI)TITWmxpQFb-mIv!b)9bQr25u~zmqb`;KB zf(J?SSio7bk^`S;^p6K|fu{qya#)$IfCq#GWOj+Q z`i>agSIqHN8Xyrp{haP30^-_(MxW#mZ`M4#t9~K;oFPz=cj;7b4b=hM_}PoN`N8L)B+Ls}JFRFUfk(9A_CH!ReH@!%sbwk+jiv0>em;!`m{KS_ndv1LsH zJOEefnkmL%rS8VHxLa0S>fC8-b+=S{4!T{!X;Rnf!h8I@Q>etM1f2kV+B~dhuw?Kf z1XPTpyf8k3;*37V@Ug1=S5^)~34Pado>JV&w08LNz+>OQZMCN0%7b8hSulQ=6Oi1d zm@W>rdvO@RvG{oNQQsFNhJPXirHvpx6N7r&*e@|i7ecRW=n1`fo(#Suu!IE6`)MDm z=V0%gCe9=45T0B@o=lyPW26#2>aJx`^qhDr2JT0Ve8t8-3a&U@byGiVi0`J>!noPU zpbbq$Lpe{!w@yV9YOKZo(XBHn&3~jw5T{ZuxVR!*8n3q7%|WfzaWLXYH$_+{&4}6B zKiMwd$~d2OV6D}st+lZ2N<0e~s{jS#UeXv$tOi=2ar7vag| zo0f_aa1jE0-fAcK1FI6^)!(g;)Hml$%pzwDPZShNf^MAiQhY*W&iPfGH;frT)T0C8nk-KHMy=@fa(Dy_ zgg;qe0P|1nk`$|1oDCxzjV70XCy2zu>PNDc@ayGx5d63)1@@EJdDGr8;#|_WXbmxjx z5v7sH;!+h+FekX?VG+D%W5_4f5G)f3b)||@E~-@#!O9ZdkW*5Ws)S-pWeHOXR(Oao zSD;j)ZWYl1?Bys@c%h0)4j!s&5qJ(w1;%Pvr%?Dfrd6gA41rl073qcyJW^C8igqZ5!Y?`;(tgJ)4W<=h`+&gsSK27(Q9>Vs%j$^zx3z2V_u{By?Ht2zLo5D9$ruzjqGtaYj`= zGG3B@dlDp5)RVfIfT(vWTvOshxVwj2p{jL92uEY*s%EnQsYlY3Q#kw`$4ltG2SUbWbFzB;d5A1p}LZ zWOYEMGN<$6sp_ZTsu(&UJAnO*?$#-w3T(@OZXedWa{xM z!l&)OTt7ERykyJBU2wU+vs8+6P}T|wT}BSlI`X_xE2%M$n*gn8KLt=On=(b}sU=H` z{^5V(=nAS$>+?8mk1{6t^S^H)qS{<%=6EQh%-PYw)-@lK~8i)zk@Y*=9tO0 zG-kWAhd$dGGk89jyfNVHtQkCIi1M91Hv}b%#?Q?eld{7}!Hc|>Gqbo4>zPt!&ucfz zx{myJ3T&T22m>{Qy37$mzK~FNj!B57R>^f)+E48h<+`(tLWopTv^xc_YiU8?Eb}!G z;ZA|+HBdvqkG52E3RIt21Om0K-cB6>uU#7fJ{xHMpaI6l&D6G(%Q8o>>&W5f9W8!a zIi3MausH>+-!25fS|)f|HXt;f*)OjV9$)!gu_-J1*k+cM=TM*w1tPD2m7O-A%3c7V z*@xYS^JG>!-`T>3Zn8Nz&PNH~)`^X122@B1CM~L+k)FWoe$}g-yAp z*)$_lhgxUfy12vU<#fCJY*^E0c{zYRc&NH~D+WBdDQC08Pp^OW>p>*YsvoQ3RwrO> zz1R$M`Yf*pum-VMw)3VpLRLgJOfvb&ir57C#skxFJ-AyEz{FX|@mM00JI+rpw>m;g z-7ZHXp}|9?@)qc5qKn?`7KYlRbS{FsN#$}jPtGE@DPWa=vuzxw+AeVGNYzMY385)Y zK{FO<#YiMtaTqXaEt?f(KjLI8E>mig``^3)6z)bWobGYtp+UwT7V?Sfuy|Y~p?NkP za2@%#jQd9;OqV4J17suayf(qcvyxu8%Iez-_fthjt$KGWC?jxIst3D*pE67JU{@4e zOU9mepn@s*L!4CVLxr8q;CMzqPWtdOe2~{MnQ(!gU*YCS7}?SlY+ebYdXj|rPBQZf zn8>zlkcywA-D*rPY3iFCVSYk`V3+gN?*07oWg-D{Brz3RrB+oYSIcG*te1+96TzJx zLDC4+$>rzC)%)f#3`cyNT(RFzuv*16CReNG?ij3>!Pm*vb`h?UijR}4eS7~tTql>G zCs&6>+iZ^QT^k;VIMS6Sa;?i@4|arWVBOso;`#?CLsjA0hhW{3Du|jN+TEvc#R9)i z#7(c2T8SV;svv4YROv-uw`x^oay4K6{o!!DYnxSgX~eNnYa&xu^*5+h6|w48+xZau zNLK>zGCMC-t~w)v-zQg;xi?r3zfZ0>t8b`cNfjnnoFq6{lPZW&+wHhk?bb@gM^WS0 z^wc^Zn;wr2@ahb_>=?+Kt#g563Vj@o{p6Nti=*a`{=%1MlmyP8D_Fh>w#i z`OF@wAwG&Z*(}2~#K(zr8s9gI7E&}Bp54ke;8VLizBfK7+W<^YgOBy#gF?|1ep(;# z%L~JKoJ>;*3|KL1djWMxoS`MMQAZgLEas~f=n)jY#IzlNT=TR4Z1!9Jn#$+|G8@9B zG$MeA1XHvxz}ni6J*zTzVB)GVMV3T9So}Qo%j|x?{Um3I z;ioqIjI1*i1{&J53?P(lI~wYwy=7F|FitshXpTnTi7?zrST}bFs;J8yn@-J0Wb=tK z->l032(@hDKxYV&x>)iiCpr2^LUi3ZN#HHv&fiWpsK!wgrYwMf^&<}(gSxtZ&xBAE z2qe&Z%{&1~9yz;0$>-r|suc(|RXN+{cfb&}o!gEN8g5@?;7nX+jmXayVt4Mb2J1{V ziy0)^6U=(qZV7B>8OOO(aRNaD|71KR<&nF=_tY8kdHDh0KqHV5i9Vsyqbw|l4k{0bv7*r7jzksZ=3)MP2A3a=xjO; zem4T*&Vbm}g>>0jkCwwz*|MJNag^{hwG8B_sU&aF*X%lMpWvw+tI7`KJnH2vc^q2F z*HQ-@(BK2qE(xl>t)tIlhhgN-b_x@LYIsWvukD&swrkE~b(IHeW-L+`vvtHp>iW$V z&Uvh^-!*%vR?7Mo0_FbyvX(9?xFHvTrvzI2LPL_2Z{nnLzdX)%JG2 z3e>Ju1z8uOq1*IvC>!0NGW8!TWO#wd%*&IU6-@xs?OxvkrQrc87wz zkAf_O|K`migg)<}*Ofcii!uEVyad^!VVJXZNGiM|5;lO#+19zAE;T>>luhGVkh0QC znbE>Id^?LPeDrp!@;Y?R6pp#eo#k!~Ekiz00HjQ5iO_0i=qOHAo?1|}RF^?p5}p)g zL>ikmE7D2}mP46_+588QX8Npan0Dn&qbn1;!-~%M6~yYO(|@{RR*JP#yLQQ36h*!6 z8cTckzU0~dHFX2G=hSCM?q@U5&ejuA7&Y{UvJ~8 zTTw&61oBW$JpD6?Le54_VsB+3nMyzqj7ZcvEO_ZTyGi=5a}~X@qy%&^n|(aqu4cRA zekP>`6f{^UQT|QfLWGYA$`cD5u>N=losM)-jYS~CP!XI*cXB2ZPI$}dX~FMG=edPn zSKp;cSyWf>-}1`HXxqt=3l38{wJrR*imswKl*JYlywpyJWzYn;)m0`MA(o}g_C-}P zql%y|V)3xwRSHaTaoAFp3&B~jRTuO zs^J4w27kgUR3)9)_^~N2;HP{~N@Z<$HY#Lgd>#T7ulQlS0zoiYDB))w$aPM?@hL}! zXHg}GOVJmEfsZmWAgTDtZ!Z<-fZ?}#VTlV!xh{&#XOy^p;&k2fcYvIae3$*cfe$F+DDvlYXb|l{vVXL7gSQf+8un}jk z7y&GeUPzS={fb|ZXFL5))CBNt(ZH&1iy0SzItsaPsY(hg(H(^AFft3>E>1W!QprJ& zw#WxYcw)l+7y=(<&y^*IP|Jm*ojAMehJ=MYHrEZuW8my7d1jk^ZBYWS-GI&v;86=x zRfa8C5dPJI@mfd+yl4Y*(0LW~+1Ik{cSTR8w@n&$Ctc_20EPAoyJGi zcwmjVS6^t{s>aCx=BVg2{<~_N4m2*heSTDp2bLv>&2Hn*s`0>jOQP<8Emh-z<&`=5 zBxro68V@Y5%<=Sr#*Jz`u)yNFi}~iwN7Z~_jdl3w>eS>n9Jnzr2UeuBDpCl=NE##z zx=;7L(pj7~^Ym+twiUzB7LX>$fh8LNnmZ8hRu2byj4KD$v4$ZV(MbW>G?7$nFO|F)=Uh~&BEFWDwJKr-K&2bf@$fWMOnZu17NlnoMLz-9Pmy*6@ z3T(w-#pqDp36y{3e=KbQHh{dyaiRl<<`w56!Pc|6XtAF!j&do4U`g!{nbXXyd>1)f zrqHUUC99|$1$6OKE|X(P4PGx6_To<3rSEB=V%C~6=SRZHAJ1CfVc=o`uLB}%#p<(g z<5)FzsbdQrKXp0XEl;5GrVY_qM%m~8e| z{NK%DT8KZ2*;V`_dfh6*A2x^g?HvCx*`9FuDgn|cB4jg z2y8B^_jNk6KsOr!39|Pf0(Xb=gG1rIFogRR8&F|={D|(d3gdkBY5w^z+iW3(KB28` zv?{m9c&vpB8BrG&>Q%G3C+naha@mE`Ro|LS#*$MjWX4RafuPbNXgz;4iOO~S)NoHz zs~vW;(opfpFTkYg@o+a^G{;Lm`!hOOLDxFFCab{Nsy)zw2mbB{nGHv#Hu?sYfJ(J@ zx51*?ilwz|9xr+Ll(p=>xx*BX@I`crtz%uLU2xn|z>Q=3g3&TAV{S4xrnxr3%IppS z`|cWe-UK}m3y)Qo3o`Bp`O9p+Ttd$UhvWC4g6+Qi{TuFwoDB;u>rh~j*V~Ux2V>@7 zJbCP75O^23twaSqBFZ~j8q6qeU7?ipAPbYdi&8u0B+C`>v?Og&47XJfO8z;V3l2|FH{URN{QG>p!SDv6r0odm{gJT)dZTQGGx3d-Qmol zjSsj6f*dEwB%>0jr;JKewK&psJaS*b)>be*dJz}2u!`8e*=V@ey-vRX)@{)1>|1aQ z(EuHhb$BFUqHf--Zv&zo;OG)%Hs}zQ_YuWn=Ly8Mz2xOS@{A_!fhra@S$w1tN5v^~ zg%xAr946}pS;-c0X~W7aQ04(y*w6JYNH_bSi=sAlwCStS{}Jd$AN2qrBMq{4_*TqNo690X^=j!G=SWn)P$1_)=^ zNcnvDlud<{>+V8#oa7Zs?=p3vgZAI}7rWI27reS{X|(;jieT{0 zQdg>BwB|lj_aa8yzv(Kjffx%LW71P!?J0HpV2sWNb3xRq3hW$p%TP$Oz7~2vh=#SX zB3L?7enABr-r0+?XMad%BMk)%s?dpnWF!l8r*URiq}KY{bag?wa*X%ut#;dMkMw*f zzy2=tyv+~gV7hWJvKHI&Y*%(G3Aubfs6BYS4+{Z}U6H6`wKDfR+YQ>g{!G+ieO{r$ zmz@imwSD|%Qlzonp(2$5^Mmsfv_6piuOkHn{$(!$I$W%m$Tw$qLcZHb)sDV$EpGWF zO4DwKhG}zNXP=q4l_D-Xhq&|$lD1Z)<>!!=bmFr-CvlI8xZ)h*oY&ZAChoH$t~`f0 z=e75liCZe-s&k0TI`Y|b64xl=>T`&59-N<5VOFN#-?& z5og-^Cyk$pdU@^|B!Yyn2EFvnVp`7Lwo=$tRlqzF`w*Yj2Oj$`)r-U=5&K}yhv-ag zbY@4%wTdk1>jo{9*j_%?h49&WP#{^8MQhV7y25mKt_@l0qrR|R8P2At=aP}7PZJ=V zD@hf+k~|raeSxV^z&6E}C(ar|^T-kU)>ENeo~B<2*UGpmF|ONs>T;7zib7`6h6l9O=yS$x_y65tiWl!ssy1YSVS%g^F9V#-kM>+HI z7Aqj;ze@PZ$gC^!-s4X1Pb!*BFm$`Q9L3*u{>iuMZl~;{jsBiQdi=FXS2sUpkbO4k z-iy{3B>kvJkDp3<{*_7pyCOY#D(T)!+7~2U-N*CviKHiAd%>vNdY(O%bgyXs1xZ(T zdF2yuHtAn`t=}oqJ%_<*qw}?3B4Nela6t8P=UL zhqc*ES$INd9rYp6_MOvNyJTxo{OCll!B8=AY}A}kvkeDO!-j5{HEft#b-AgEsfJDS zzNRX`8vevEYuK*vwu^K{ZloixVZ+kfFtaPG#wr*aHm-UbtH^8+aRMf*6Ai5>YA=M^ z(_#{^s#czpD)13XA(ru>i@;||9ramKmr;OFuXS|fwGLIjnO;hZl3sdx=)NW++O7Hp=#!QXDgxxQLi_Hu%ji(J&_;=vT9N5jL=llDftv%VQinvC#?bh8VF_dcwp!N^zw@R zIt%4!TcN6jT_X$97Cgn9Gf4xT>iEH>eZHNbF*4mb3+0PCK=bp_SNeTBfiiOEENXR0 z9}hO^aqa}zmOp1vr*^lQM{>8%=~!hrcLK()KW9;AHd;Cxo`N+_UGGl7Z8~(;d4FGh z%hFZckEf^bxOW0Yjz=fVz{#-V$nx(r)St#-Ul&eysk3FbW2fMj!jw0>1YkTFTCAYC zl9qBc_R@a_6S zhBwxsopE&-;K>++9_)<5&+$&j)9bU&$Q%}TGL|7%bjI^6j4SM$F40&@A?2@2f=NN~ zNRw|b+9j2NJ8(8*H*?nbM5Mgws*o&kPe_$gbHmjp?(Ii~9k3D^lu<xFPSw@KuyYe${msBmaQL@Bu3EOW>D7kD+N0<_+ zIiUi?lBHlE@&gDf&Gy4(^kO&PL&W6E_(ikdZ}*qU3)*Wb2gl4gI3}cM${Lfa$HAJ#BUL@@=8L8mrmQi!+U-@w*FZ&CV{&!BpYPuHR+Kd+ zSBuSYzv`_hYY5a2o5cWXr~xCnc~}pOq^RLBa4tDUMG;vt3|YOFt|r+8dfk`%1ps@R z7ztq1a;!M8cczvji6^B>?gX(|tnlDTF7E?{`p%Kk%Tg6_bbggJs^DmeYT+le@Bt+i zaacngit%g*S8AT+3{fG;&a}Gb=A52N#rY{X%Rr%rv7j+YbVIlH1l>F?DP2@Wyvh`0j<;VXi7LvtDD5hh z4dpW^ok67SS1FgE)kHa#*MC*oD?6=eVGB@7=M1`L0lk{-5K7Ll_m?ydEFFJR1@tJ7 z*%!WvFf?;ryoie{jHAhAqP8r&y+hyy2Ejatb$Kb@=^>fz>h?}P`7?Bmw6xf6KeX64 zjIksOSK9;i7fN$90)QdI!U~hvLLr1;#ljl;fW5*nxKIlIZE23E9&VYw7m#xSsFH?i zSW$E&%Mj*+9+j+$sOAa$TZlCZ@u5~4NuD8++tmlF>w;xTnA^L% z1KwQ9G=uSmohjzk(%Iwe$w;F->nAdfpirjo3@}{r8 z798m-Rz;LC25wDU#2I6_AXfV)RYe&`7E_QoX05JMGB!nVOpK~jsZ~l2PYaukijs(n zB2^S~5L;cu2~hNaBoqS8pek_&BsGr-*f=!wrQBe!0Pq9uUO8n{k#?9h_14yf#f?)G zX#`cbh)*+>C8ktojINccMNzAw#5wb>m~#4_+TSDf9fBnjUxKA6l{&c^B96anEVi`Z zffTJ(q8~VQ=z9s7ekz&h2Y%2A%&lon0WL18iHQIU`?t%ByLR(RTwmJFT&Cp)f&`zZ zq!)A!4xD}O0Isrl8sR_^ zoLf64`50&v7g_g`!t>Ebfr_obsK`iCDGOxy<-l1bE8q($(A!DRqhViC!Wje! zxm8ZeU4p|6cMsx|p|?`32;0FR>DmgJiB%vuj+8OYagu`I=HXeQ$PmEl+voCZB!IP= zwoA0nqoo*~{H{z5a}BUva-oifO@rtt{8STE#Nh&oV(TJEg{78CXdP7!a4N19ca;Ue zUM~*YhrL*WeC9#~RM2Qx1sj>&=^GTEFe?~m8s?eX%bZ{$-^fF8EjlRw zE;E^^OG4KNS{Ad4Gyb**U;dK-`TFpx-8XPe0>hJqLMOE@giegdT_Yu!1X8%I=7>?I z65_#-Kkg2Sk}%o`(Ef~X0SY7b&qO)~RyjTH9~SE!1(uSaBq4{G!5k9)D@0H7%XZn` zwaxM!SVuBNa+R-avp>EPd+V3^V!svLhF2&7`(`zX z%P`6Iy{0l~Tt$MvNsqK%ZH<;rm_1m}ekOQfVC z%GT}15miLt`>i1l@EnI+Kxs~FU&#eU0)?F4p^|$<9xk4bCC_hIccSN#<8%+ zvGk2&(LavP$I)D_7si6VFcy4gu>X90E$)JgW_QHsi*Xj>7nNZ9KMR(MWfOSY zntVi7RtUNp6KaU1zLiR4V5}As#{-TBTAZ?%^dSf;fkWt*`D43&SOd75`SCsRYNQG1 zc=<|5TPx5Izns2$b9gDH`M2r6#nJcK!}o{fhnEkB{mXW~|TTZHtw0RE}yQlUl^z=@CQfI;qW>hcPyE-&i<+JokjAs&@tKw-r z)3Et{>h}b=vb&a$xrUv;?ag_Jmu?E~@BRg`vWqNZEh*2_^Pt@w9khS=1EGx_wB&L7 zEbDSdS+XRe#O+^XBZ`w}LD*VT`rUV`o99DaudQx836M?R|NcKjUfRFpGRx}b%r($H ziZ$QbtAL(lIgej(71#uvhky4o;y3!wi!cwZjpywDZq@1kce?-Q_iO#S)35JTzn(zv zx>fX|YD0o7+@UI;kxgWP$Tp{fC4jnHE&On{@K`-A!QqS|QlT`sdC5geHJr1ySl22_ z7NivTqT-?iui9t!26!zBn$dsDXs(R*j)gQs;w{v47D~LWpELz9?Z0GPw5cmS`L_he|TlUQe^yAP&a3Ouv3bD%z{U;86DdpqWoc|pS_sTdZ9dpV|XlO`W zWlH~A(lPd;RyePFGo=7*Z>!#PDJ6Rv`Y8%i5|UNPSQZcEA}1>|rMpK_IY7gn|xMiD(ZtAZ-AcmePE!zF*GmtKhp z6uV+RB&QO5>h58+l0)oBO8Arce*nDm~d(Rl5XlV5FHc&V?k-#vL~U zr%e)UE5NLQjTl7oH5r5>P2W!Uv^5bJCJ11HJ# zYh`6p$GjO}6L&UW)!lrr41V`tc&ohQz2fkOZXatugMn4!XD?6XbjN+u;DIAu#@^n_ zl9?PweKgn<`Hz{hR)>5|c2{MsPV1V_{Tg_p9}V8co_`*n36AD^;Kn4i@EdsNmnCfc z<(TEOzi&xy%q4lsmgLD^){eRK=s7@>{WQc(*h`KP$IpZo`Cc020PF!W9$?(pkBSri z`ulMf{Q-Uos7?hIWVTfl_t9NN$@%o(yqSVe4cCV?_*!t+NvK=#8QmJd(dlj4-`ni` z-o6D&N>yLi?CEiOMvn*a*bf>N``D?SP0~VT`?tM0fr`*GM#Y|VjH`;Or{W5|T~txs z&#_LQMB~AtiX#_#WReUm2=)6b#5zm4uc31-GK6nxxo_xw= zHvhpq)R@qJ(r8bGw`mM`EU?vdFR8RuUCqkqT3L70^r~MeS25sq)G$*;8Q02HQNguz zL)HQ)5fN}p$)bu2RmAsvMFb$CTBRz=xu`Pa58!Ls=pKMlD)q&7wcX?Jfmw263>aiqnT+%l6jRlJ0z~U-MQ{_w5n7t zX>U`*;c7Mo`!Fyyp@wNsLm9)6s!whtgg?nf+2}@ySGtz2(ZppmUaWp1UT(yAuk4la zk0Ou4GXLWt$#lvSxso3bo^=k(@Z)^-(9G`IW`)i*a33V69b*Lk(WG+N*|t3Vguux)aTHA zbCLj@R44VM54a-(rjgybisI~7sT*Bm1nQvl$H_(+3u|o7!V;AGIBTfxOMdpUG9^CF zs;S`ezYN!v_{PEa%X(=xeyU9=FD*`L=a=tNXIrv-N7Ll+lyTG5E7|EBWFsIsGMyvP zAOjVmP9sC_EH9%M;*ZUCGRCl z-m6qm%|%LVOWA)>`5wY>QY{55&6$V_Uph{ZbqB6~tmXIaNi~pWtS3YVGan8$-P@Ls9Me&!W2j%@TB=2XVY{bW5iu-$B z^!5CCdmOqgWTWiH$6*OyCbF`Bj;k-w4a*&^CA@ADhBvHscH~MpP{9$o?n6IwIn)qqE zw=5T>dE#y;;6Z#XU)vTcaKb_dPI$tF$GppWEFP0s5IH^WR=#XwVzd{N z$@KR1yV<*F_AZ`Hq^l<1GGpn)yLyjfpGjNDJ^ddP$<7+AP37c>{vPziTG1mw`E`e`=RXG2$?*mahHZ?9E-pjD*)ra&JWY}eltHl>>FY_IvRu< z7v;b;xqt%Op}9E(Qjt*yD+mj3Wx*k)&v7PYkrDPl!G&1#M7I&#ChO}(_NqCGg8=&S z4l@2h*0LpPUBDCcu~A(nYg5&TiWcjcsjr%7k@f916u>HXk>j+JrfkHvMQ7|y&zKw2^6WDHE7E%84($J zn=!{z<~yFAcFF`+Z6Y@O^!;{!#_8h4<}U!4a6|H#(9GX zLssM?8y4DU@Pn@D9okP$>^ss4o{WqLKLNLxpmJ3;}2d$$CHk*odK+ zGwXrhzY-BtbYX3#J_ahf{|*9!ZRV@LwM!L?MS2K*f`Uu+>wx=620Q%JZe*;;3;qK| zW%zigJ{@NJt&Gi@wuMakRk}C6`fbNceFq`1S0*$ zha~?ylDb5JL*1dMB5mmdVG#w?+Y`bm%9OmVjD$(aS-?TI$X;X#gt+Z!UD-z#u;a~H z-lNH7Ga(<@s&q|eGP{G`e8tzj;YccWhV`R96J>0n?DV!6)7ukKh85@RuW-{cYE5VAF-VUH8%RBs$_gI^?)4t=T>ScG&d{=J6Cj zI8&Il1jZncwd7Q=5rU01*!>c=xrD_Y#ysW;P76yl$BAQ5nj;$iCDP%_P3yD#cLfXH0)CTe1(f%;EvZ!_|d4 zbMO#B#R~L`~MIM^oi+dNPCDfj~x-?NvMsu z8N)8{Py&`1%j(GPegQpft>8P=+7$OPB(&lsjus9NicucR7kR?SIU#$>8r*H!0XdWPo zAt6o1ARU9PB)EVJMP}m6b@ytWDyew=Lc{G? z$=2+*U6YG%O@7_A;B*KZS`1t@%K*6h`+<}QRS?!)FK|GLlh zwC2Q?jM(kzGC*VaTyyGiU#@tSRlIQvweZN+x>hbLHMdYN{rfmDx8-V5uu@YQB{%&(LtvagBaiWzprp*(`1?K>?H9~qp#gxqcDof<@ z)lt*p6cXO5{;{c*J=e<9y=EWwTDi!>U&tPnn^Vm`?6q{)G4MXql6>J5KMz#RjM2S5 zf%M{#x=0qutd`stS^Pp27d~D@f?I95#n&m7CH1Q;0gP^i>e`|9_OdMIdW&EDL8 zD$|o`UH1~34->oYP-~o6Nzq5`AbmY&VNwi`ri0=A!jn(e1$HWDqF9o)2XTD+f|o zpiJXFifh}WeJsA~-bZA>c@i{V77JqVX=;;Sr`dCK0NH)$NxDw+-a#A7*L;H(WOC^c zlk*K4L1WoFu33apvNw2;qwKAu8ulPJYH_mDS~-Hlz+$ab*UGq|u2ryvbiQQj6OlWw z4(XuO+|^~Ubo!4axxHi2?H`QpON;ftW8UxFUS>12#+R{;XAl{O-f7NWKIgd+PkR#T zcy3-Yr1Nan;t$BV{8VZYH%9{Pkdlg%Nri#V%}Y$GHy^!m)GBK+{Dm7C{GJi!GtKcA zTscP~n8kz`#RLke^bfTOJcmif3Z%5Q4wK4%m~>Xcz`2oeyu5D1ei1&4`{*J&rND{j zBN8O=LocOq52c;f9deUla{K8Ek(Kn36{05XozyHFrl;>xoTdGf8hWy-*(u*oSD2n2 zSv1Q-v?#ID5!%>4o{6Zl^2Fh>uH*9qSl<)qYIqg6cm59a0wLm>lPGSR`<5}(HU{9n zJKi_CSyqMm zSYS2H3uX1-kf`dCZ7$}!`Jz339;S_JGD}Cq(9Ne{BQ$XH59Ny0i@V(;Vpukcqa1$l6?6x}tL0CwuxFX4F?M7?>o)G8!ab+F; zJxE}IP$wg9-SKQPF?mhVE3q;KVVXDz@YT3Rtaq^5o#dHad@8_ z|1?K2`|xSLqY>y8vRRrB;Bb^!gORZ*(GSsVi*=L~{LP~a=X zlB6yc`{85LguqO0-@f^EI`bix(Hn$R@Pqc;(Lo!MxHh9U$e$w~Ti*DoxQ>B7IHZ1^ zMl*p~h$53o=k2A;YUAx?B+A9KCy`rS#u{RrDyzhj^5MlvHExmsi!tx1jU;iVosf{} zW1MC_SG6o0Bcne^#u*_pI>>{edTQyI_t+kehu0h1v8-)4Q~-N>p@W$j>t(5u_)@`f zyIaAI<=--Z0XH@Mzd8KQ`%b5%*b;&SAcXoOJOvI|x zEVNN~zF1CP=km>yjar=$a(?fvx>V+wC7WlK$~?1V^UN}Lt@rH^cvL;_`e4-@Y5=}U zDZC^F1i9nac9Q1t{prsQShMpzCu6$~+nG~(>=R&xO^4Wh-B0z|V|Cpd;uo-< z2+xzdW%+~=>3Iq}9hT3%tL6;hY8m2xDLO!GYwyM*GaS9ZvPpV+)$F^ka8;R&EqgMy zH-ygi`>Lzl+e=zLCwhIk*oR%f>Z<5nz9to?Vt2g3l9|sPj594W{=^>llLvgjH;hv& z_jNZuli^sVRpJ0urgN5~Sk=qr>hn+=K4W%1W8mGS$xxPUCHtP#O4_O@@SRyiCrPXl zp}#=y}g`YDfk`2yFr1Er^r{qE2;JG<73*_hzNV0(_)n!<$m z$2&wv)knv0HwSD+>Z*sPKAVwnXL^ppo<^=mSe^5(RPtS2aFJ3u)-^B0R5=>?KzH54 zy!)(9-Sr-V=@mumuNciBBp~?(`S$1{BC?m~D%SB71~9Kt~9 z02=XtqnNc`;wa+NLjH;O^(cyUAt}hkUx_YERL#_}-nG`Kt5viYFd0NjAddHzD9gsW zZ;84jfJsQ2;fS9F|KYskj2ppz0bb%g37jtx#~&G1<@OrQW$ zCcJcDJDo;<_-vJ^P68G3F%yt7cMbcd;6&2Lxts~)0}RM>2OCX7#{(^%1zpgPZQ4F) zb!z*dxk9SxNml#($m(7%vO4HPCWfU@!;)FU5}(D##yXWr#7_Vm6l?|HYM@8afUD&w z3Xpqc;SC?~BpwGmHh{aQP!hTQi;^$WMLd(TAV*D-{((M|m-@yz%vh7t7^`ob?W??G z2rN#eTAZQ_er(BDwJOv#<5D%xbfK!5=$c8an(LZLs^m8BlT7&(S?-+@=AHt@<6MQ* z8jnT8Z$+({??d!E3nu&!A9J1YgWo5<$eU9zgn9wMuG`JB*&N%uw%OYe3{|gz6E7eqd7K3wL2*O$KYNz>GnfV-ZgpSk&|>(Ufvf89VqR8r^VhyPJgknq-}SHlxRsj1 zx4zY?al>J^-9XGwR8wT=hh_FAljY0Y*My(Yv2NH$o+Zb33t?uWJ2Wah=%uRoynUZikXl9Xg>0LAqUc%^tdg)TaH^iW-5S z1HJ1e{K}QOAsTwuO~^b=z{v*)A4zYY;x~0&o`xP0Tm@)axI{*2`NRRX-ro#QF9E0; zwen6wX9j&BQwSXZLEx+%oGNYlsT1LZfrz85!_gv$y&^bg!1c%ClTXYAP55l1vlIGY z#GjCZG-?Q}a1?R?#-a5`rw{--n>)&~GaRezasAy>238I2iL1kn0U>(QVE|E9oY6Vo z(s`aPp1OJhkrw1Ujv6F8@PZtoahSbv7)1Nh8RF#I^LiEx%ph@$gV7VGL9)J4BV>kc zKyHT3N1miTVH{5BNieE|0OIm+bzYo0=D{!z*`a^OadNMeMIkV7&Ked38CA)0ptQ)jlu&XW^WLO|}E zGtOL%9youP2}%1X((I@clCp7#!$BwnkSwq`c-&5tsO+c|BvV;oDaK2lJy9wI-R=q5 zkLahO!R3qf0l|2rE)-F8Nj#1Sy)cB3O;jNcJM0WrqQ3f}k_Vyy%MWXOem zBH;5Dt3P5!92Em9pfh*-$sshXU2g=@kXKzYBPp~^aH{N864V!tk2woREr&EJ6k6$d zaK#p`?f~Qi1Ms~44)~EsI-UaN)Ra1 z4(`ldjd3UqE1V1ldmhfX2;fL7VJ7o*UsOC zi0to_%-vlWo@%1NV=yix)+zgzNUmH9i>`I#D5xXMWUqbZLX~YV zR6V!BP{sB_V2Wdz2u+W1G@CXn(U&R?Xo620PrbO5Ery%a5eCCb`lss+Dq4 zt@LK9l#6NwM*Kv~Glj6jO#pp*)^LR{{$G3F+8jr2B*>rQ4|f~Vc*ZKA-lV-=4TrWB z8qF|7?OnueY*aM6i&C%H5BEc&?!*1|Ljp*=3P4qN7iG~q6ZQ-nRh2I!5{X12F%ldk zP)qrb-#WoaGN{2wofN2F_)QBzMKz#s$ChSz`kBWxSgS}m!c07P^v6dK+uh`T+x{yY zttK_~9uBUQ*Np{Tk}CIHYxhkHTkh{x_6_Byo36k)=Qj;BFIO{k9IMh1Vx_jgD<=kg zGD*Zh&j^yS$MxPOsB(MNCP&dXDp^Rx)iwJ_rx1@w$w(G zRw+@7F(GiJ4*F7-BVWJl{;=aAxEmm7Y7UM9=hZ+L6xgCj@4hFePKY#z>aX6wT z^v7YTgF^6RW@lC9Ncf=`{hG#ZzM0BiF&5(frsp#KK$SKKR8 zoR7pog@9wG_0NF*V~hDfbukk1LV)c>4dW1TkJWXhgv(8NW#Q&qE`VEL9BT^E7+;4` z0=s;Sj?Hg{fWIEY2Ff0ezlLf@&_A|nM^G>3%lTrz;OHxwj)WcFLC`(@U8(Ei$3@!5 z_vGQx_!gkQGT(?a%J&;PIiv2l`~;I!)FLIZ{yX{-pjI@6o-Ik_vS78AqlF}c z7X+g(wn|A!aPGKfbR)^FkwrDyil9Qk!Nox0-M=SEXGQQx%YjI;0uV70l5nO1NoWtJ zBuPhSnJH@#N>c!eMnXg^L|xW9F{KdeB*`B~2JByDSP)}bKNN(Ctt*Y9R~qGG2qBoD z1Qd;g$djEkdyIh=ITSV`lEA4kl60bJByr<=qj#b>RwiZ3yeZDOB#5|k4{PElu>iTAkHRBy0NRd$q)zZ#eDSa#Tv+YoY$ zpa`LPe4H!6jwL^N&MQo(no+3h1~{9i?rpmxQHD1j3mV+qhJbj!zL+4$rKs#lcqnsf z{da6C`5~*ib4qT!#i@0S?ryHU8QL309a~8Q0rNm6J`x2otwS#gA}_)E>`O zlhmCf=_AvUbL^U!`_<=m)7&wicyg=n@1HpRZuDSu%kEPQ zNJwcmx6P+^Gru!d=A)rBpsT|{delB{rm)OePI=CF~ z^JLS?-Xn0tyn<&R+R3ctRfsE6@T*anZwU|hp0IE;giAq+z^QbSYM0r%FNUNQ{xSNJ z%u~aish+gZwzN0v_HE*g@NJ|)6h zK4k2TR6ITCc{hJk79$a=%K_-Sn!ebHd5ObFa*hZ>z1*d4dEwh!Ga$-mz#1I zO5P@%=~B$KJn{-DSgMVw;@vY5S5$3Y(-w6N^6U2xJLkg(Tc(MhF9pAUx%kaHiAk2C{!#4Bs)~__uu3W$p_BV| z48qqEY9l` z+&bap;;N#FNCQTZO8bt6!D!u-Ty7#a`zfaPls%>gnRfbqF#cL0tfQpP+_ ztS(R)+LaSUB)P*jY(i~uEgTMPR=5xj0_cfzR%s8Z11JnmkX71Go#V&kSY^~ykUUpg z06G*8H!p}rs`U#lK@iRjRJfFlP>54D=3bBI3A+B0GaAxBWq=DiN>hcZkaq@upAQ=C z_)g*R!@)yZ}s#elR+UXP-4q)y$ zfKb3%%*Ck=G{BV@(yh}Wi2}Vs>&;rt@A}OWXKk7!x)IA~n~kavFZeL3k*d$NBLPK4 z1$M({fD{&JO!ek{rF@IRc&}Cvbz@BwK}I8HClC#?&ah26CcuLvNAnHj%0|r%0GEx$ z2)CSzBF|VynNahFY4FS@ulO=cwL?A=I+A!{IO@u%{`oiTb^TWFSc7!j=WkjFx+Hw{ zTb1tLwD##}t+Ao|xT*CxJlGWUltiTH&c{x#6M%UDf=htE_!PI-Wwc8211^u#!A~&o zA(;X1@yYF7N!r2LdkRs`cPh;JPZBhHr=n)YJs&hl;hK^O|5Yco_PJAeSx%bZjWNSq zWr&8Lo9y6;gTZL8@8c{$q+HR|q&|9G&_3*5SRE`@29dSm)?5s3JLFaszX)b6uG=9a zT$ZC2!<;lYtnrh;|LR&v@6)^HhQft3YKhW_Tth`g)7($&-<&5DajvB*)4c1X;C*Hy z?7L8m(W9@?LE5gaZnB0`ScWOg9SUHKDP-?_NIF;1C_^1fzaOg@{&l-|? z^}8_iyDoH3s2~DYqoYxW#^izgT+%QHWq<><55|!l*L?>MQHOqWyn3jw%Ty28;| z;TjMu42>)_G-_*L)SY2bX<^I#pSlKP`{LiX?PmL8vYdT+@oD$*#pRpH$My#{^}e`S z?Ke|KI*{^0kn)EQ4-X(yi#|8%p-tS;Lh^OxUoS74_F>wtcg=2cd*5dCu->(Tg|zXj zsN2a66yg>l9N}iJfL#f6cht&IbAD5M!`TRdudrVBS@rNuX(_)c4eqgKM!pb6z7AX^rTeLT zTTT(2;vCz{SWMP9$W!(=PZo6OaB>r3BvE2W1D6w2R|J4RrF%h{Oc}y&EE>z3N8RFh zk{e<>>>_z>?e6?VB2HzKXmi6#P=_xD)lSrv5IXo1enKA0z3PM$J zUd08aXvzNLKM|s9%4p(P zvLh97{vc26y~Gmmh_USGBc(RVPTl%}I172DpE^D%5V{7lW4eO%@(;utSaW2JaiFu+ z_2+3?yQ1*ZbtpaY`stZ2Gfy+utUEn%Waq1D@~Q5I%r)-;W*?1dyj(+H^g**e*Hz8y z2NHw#dB}O(s0)9vt7w&fw{HWZna8#(7LGJO?j2qHE?Em{$A_aCkE-f7p}gv8RFFhN zlZ5Ef_cU{@R%b{bskm5M-qc&yUUl4(PMxqLklBUoY3AB2Iu1%zuU_Kp)T^ghrEn-j zw_?04xx=XQ!SYp~KY~cR{`+Y}c47Hy$A0JC~mBxvr`m<^B8-lzv-#a!%a;Drw%L7I z^9$X6WPR`p^YLH3V`lp$10s_mL^{w19PtJ3g^l(5RFNN+Hyav6qlB=tvhR^QR# zkcf4vSgy_mS0`E-pWKh7PbZeY&lL7T4J$4;1!szm63Lq|b~hf+M4V5EJ=^&@~S zq%EbZEuoVW!LuI;bx%%ol_wj7!*5bJ{8Kwubf$) zayG)G+{tZLlG7I|_*Q>~Au1uZFY0eO(-x}G$EjYWtBV6xu8Re(=F_~BGB%D%IT{_x zg|jretn;zZTN)igZfdl^eOxyjJiYY0LZRi&iFWH4uk4bjYpEt|2>LP&zp963lV{bS z46NC3s)IV0XKs+8>j1`2A{lXzLPmM3y69bCZk>u-0x~h}hIA|STzs5Fhj|d%sU*y2 z(4=|jLXYxP!UA0#=?vEm>**PNJfx6ewz{HyJ=4L_?I!ckjCAu(mBp}53b}cnF01Vh z8&{LeLvkHQEa$T~Gs>6vR)=mz^r!20&D+=3894jc;l35LXFg}I=;GkRKL}N>do{nw_Wabp{YzQ-tid@0}uL{xHTU`Re9=@7EmGZV;LQx6np5(53 z;w>CxxhG;N%=}XB$Q?^gfzDC|b&O7;rfKF&-C0eu+VAww)3Q6{B5OCDb{+RBun8g4 za|Z|pmSoKL)y%t_AibiPpQ|o8iO=qWvdfmt&i%*kuMCJf$@5X)N)U_&Yn|l$n622W z;CE@AMBLar3!%N>%K>-L`=viZGD_p~VEHjT_FuHdK1WX48RQQqj zBk6yfp$cI=a4vwq;phD2P%xS5Omg)|6jB*&Kb^!;=&7K(5uc_HCB>+U0Go4)tgh_x zWE@%pJJJ7`gxp*f(t%LS8-e^E;!>L!-J3x|e5IVk{@lpWh zA{?p%JZyhUbN@!u+UhXk~oxX0n{TZ#N{FW9bV#uH8u7=L(gfqx@QR^B09gLv zQF=D?b~PBfL}+lTD@4Pes2-$O z*{D}{QD@#MrEyj9>$?hbEUn!gPm;?x-R)%h5#oMB_C7@n@AeUPKlP3! z?oQSYeUH0MNl=#y-!>)1r)6-PGKF%>ytj(d7lXz4D5Wl6ZlJUhkH4i*DM@WrIhL?d zgQmB0Vn$7G=d>&B)3n^p=E#*?%Lb!FwM~6((Ox^0*N3ROi=CqIvIdhT4o2S9_gZLe z;!}6lsvbJp4z+2&vbKlMzvcWmTF#H7@dIT-PM6Kik3vqev~+LnX+v7P8-EvtG@YOf0BqIT#hlShu_~OTei5If0{E&xcK&f5nmM9KkN^lu4qU=`ctC1 zvd6O}xZq5QwUA3mfqz&FIa|Q-ja>ll`6jxdo06)Bpa2~~_nK6GA{@t-;0|o6@1z9Y zrMIigW~QoaCV%tv!L?t`m-F46uj^)>1iPGY^`u#2zp8V$#?e>DAbEz;@#bl|-<)r_ z%=AHk6iba7@8B<-7^^PFkHhV0{Hci(IU{=DzS=g|zy5>|s4-9_lQ2d4I(9rp;V*+% z*rOpbLVPUCrzm}7PdcZF4m0@{(Q;u{ zA9%-{%Z`OK%hml%)O>pePAQjLE4(}S8}@OwyUAvEuHix39qa4u2UFKi5N3GeJ0QDy zz2AP|&P^3Nh+^jPp7gxLjv0pV&jC-ux-VkY~eNEUSlZ? z*tv(g7+cXR_>=#FHJb5^LtAZ$>>lm_gk3-|V60u2kfufeBI*;;%${ma?8aU%B|p_m85T3}^xyFj1j8-S(M&3{D~)%Q7M$Rg z3}f#!hB|(T8O*XBk#a;wB+MH7!(h&IJdWk@6g`eP9)&%5DmD&wHAGe%9FgtJtTHLi z@-rlx=80Lu&)~NDFh@fIv>lDFlVNAO7D4_sucJ5?Wnik#`Me5K^ji{8*o^3m5fLdD_r zD|M8fv9j9l8Xp(hI+bwoud+@27k8ofUmp1uNkG2kU)!Cm?A9fnNnA-6U0hB`yZnUG zh6gvy8J4n#pI7Xuekgx&QEIEeRE2SOE;Wn+oEZwje6&x@z_l~mNklhM7!NB|x63dI zFkJm*zMTESoK>z*zFSsrwg0?i?;)dmW*V-!|1QM9nwG0(%ON*PJf_QEr_3+jZN7M1 zUD;3Tz~9GO#={Tx_NVhjkNT#x(vFHM!vsl+fcGS{-P6C$rFk-kaI~|vqh}C8LMKnp z^O7$T&N_NaM)jhKly3PrVYTtas;-MlnzNA=xZ zWL?#yvl#i0PbU5US5e=fvjmqxDRVOtOC*)RnVb6ey(wc}nZ8TDMdX7)RUw z(#3v7_rzD_QJAwcjE zexBcMCYvuoH({`sForwOp*^(95VT)!R_`~H#ZVXL)$(vBhck^pnBUPZw`@3WgN#~I z2s&~dX^3_P-*_qV#3QND>W3y`X(2@Qm(6PNa`S#GRvBBP3WPbB*WzX2aX@L03HwC< zY88WbvJ({hv-w8-yTZYY9YKLKZusKo!LR(On! zPl;(Qf8Fm4wlA&ncwd>t=5oj zdw*w)gXPYY(b?HzD&mB?^r|87|aoQbSwt5GCB2XdeNsn56{o${p6%1Bqw z2|xO;(exnT3Dj?78a5atasOQk7d0Um_3#)%zd z{iOEDFY?dWT1b$Vu6*iY^2tUbjf&cQLq(EI#2Z>>?z z1#KjEB++Na!qZ-+YI7U_vu7sDlQ=_N8+ZWj17@#0If}QzGg40Ce2&BJL9I+11aj}N2M_BeC1!XS<*l-Lb3f$Y9n8!;l-EGe1VLDeqs;7(W0Px!x5>38}h@LFxL z1h<*s&xYyw@_jo~=+}WZ@Q?BL)cFn1-Hn{Ho-^H{Q_JGWSL{Ro32X6T)9j{qP2%6( z{NZ-K#2ro!-rC{(0LQJx=jV379ww{5Vj8Bc9oZ|1AbeD_7Soi%^``PUy`{@gUL z8vjUw6svdh1q>k7Nh+PJ=xX7sr6{F+b$-K#7Qcs3eUN(8mfy^L{?})TNTC<>~> zA`&a*Mx}V49}blMdUdl{x>jQp8+^L-V&8;n1Y;^ORnwS51(&Y?Xx0KXCcWn(@`OZ5+8W~2O0yr73a4*IRI zbFfuJ3ZX3Uo99-DwbV#O_q-+dPKL@0<1u?x7ZW>8b(;$(9*JpxVXvfBzF5l(%r+KR`|q??_@vM_Witw(?3R zNK4q_rd5azWojXw0b2hj@j-17kR=BRWpZOMH`&5e%%NfiQonwNVHX0PP%w_*wtYXB z@TpBTpPxHt)kZQ4-wA6ot|fNc#{r8Tzz`+Mxj2PVJmb6UmPm8INXIM){4@od+0JoP zvdlYfmorq^Ku4tP6|);cVDUW$bYl#K((X5YSKFrj#Fpp!8s9&vgKg*Mk2g$y_r$t$ z=twCx&QP&!W}X}_@^OdJ6BT^_NHQc3TCc`Z85&F3#u`j@a4@MCA>R@z0|4CIp0;w~ zJN1*9iQ}dm7@j^wfT3@UW2%xl^;Jef>=oiIJtsbkc|z)KK6_3l>&X=QQA5AF1$pwYI=Tm_#EwqQEesATbPS3Jr8#Cd0rQ9GmzegRAOmaNtF3UDxNGI<-2u zmabQ84L$6MSNNWE$iHM7-_#SB6`^#atj*@AnQjtGUl6Hte&=?Cu_lWWWk&zJ-9OfbM+RNWK$KI4XY#G z>n0YIZ<@RL{e5Gvd4rcBPh(K>30KXVUo*ZCAiMRIyp#@3&&hN?h06yaZ^?hxx4CoXagN z@urXu+G%0tG6}yT{nWc&6DOa8U{Dd{Y`*=k{c&RtdF3D=|L5GUWl)#5gz^ z2j%?$txT`kdkpu>KZ|og(yz5%gjVN8!@8&zvx%|+bwuOon)jge5!`Ti`^AmoYiII)3o!YOn!kktH_6C=R=V*qus39@f1r- z`1ql-n?Mq0OeZ9^pYSz&G;dVCu4R8&L3p5Ee&r9klf)UDNqR&Km@_?65Lol=bc`Fk zCW$kalKcqLjb0m_fzBGh9|R@|nlL-)OA_2d*?NP#B(bMd$JbP7&7iK~48!M0nDl8q zfnVdTNT8P__LvUaHKRLaOn0i-jjbH2z}F%=U`B*Zik%3s8L}lwJsh1A#nsUWWhSlQ zgN`&4;+PN1b2rAc8CiCM#DqArI`J+l6f6wp@>iV+Pu`^xU=st%7@j2rqw8B0Xq8aK z2P#UdX#TyL9>g2#pB>Y$nk~DoT7}V`@cOPcq(U^B;0PHq3;8`R6Wn5<02UE|0acWM z_`1kp(|D#Z#Ad(1P?1o?P;r94ghYmo1IUQ=N;&KGn;~bhcyr|3eP~I|e(aZpdS=MN zekM6If^CFEhN+yw15z6pgX3#JZG~vk-#@N@gQ(2iEJDd}Kmips!D?w!+7CFOstC~N zA41c?;Cyftn5-X6yrULIC)nfKcGd8gAIhNa7HXy=^n}L7eV}_}c--iivY%@A>p|oy z1XVwRQ}94g1q8Ec*Y}etil!bc8h2cj642Gc8X4(;AvS1$IPi5(qyxrYbfg%N&9RaW z7<&F8V*^z128_Mv*fGHB(UZo8qOB&u9viAJR=>t(V;gUe)Q4iX`X)Anz1UAdtFXqV zb7x4#dvGXnqo1SeVGB2IZ@Bv!ha!gyw8WMiCm?1Td?Ft~@DQz)=(Cs|arpNe$AbwF z|5F6S%#4E)FAPt}i6s1TlQb%HE%#i-<`RHW`-UV{Vd~6&ENn$$f3}_6Nqe7SaF6eK zn9tD|%Am5k&`ErUd4VFTtR5P%D2OhrJqVK7w$EO@qN4ijJ}hbFro}?!eyA;Hl11Wc zwUxU8>teCREP}aw%`bu2b}TgsGnQ=p3%O)d+mY}w5-Il^;W<>KSCInwq7x9$__m)D zPVfg3NNT~8IH2^c1YJc$8}Vs?Xn?}~ceUEfVjFVK1nt1#vogZTlfhJZ$Wc&Y8*F6^ zihyyk(Q?Y^5uD|lE^D$7oqlQwFpp_^fN=wk0+SuixdbCwhrh*5OU+6aUs9QcOsTBL zAqL&oY)+HdYep9a-ZJTgOI8$_IaQxf^J$Pu`z^OS!fzSE_P^8><#Oc}XW4lrNUZ18 zkXQq+dPM7avm;)UbVJ02`$mxR?wcV|```44yZfRfd%M3?COWrGG%kqjh?qMV3IX9t z&Kj`eG1`ymP#f>Tq{YK_2DoB>^m5AFBM4)M;Zdd zy_gFaRM20LC(S1M%? zb+q(}u$MTVDu$5pwCS5>);id#m;~(bMnBHf!ffg{=3B@Vz2iXp+>Y-ATukbde97ZPaMhy0(Ceen&M=h% zQU36+5~nlf(8P{`biH$s{{Ht8X&N8sCv@F`o$3~Y0&Cx7@sadPbpbuIqnF2Z{rrKc`P}Y&Y31uO-uX8AqpV})|d8;hApIC8_zJm&}8LxUMS{eO3u{HXLhXYIJ_b6g<@uBA{!190*MR{ZkB4e_Fu=q~fV?gY#cb1nwjDN)2atz- z7)r9Z1{~zWgt{i=#88s^^xZ z%jp`iq2Fo?4FId$A6cXLx9UKH!D`XLDTPK9bcJjKu7+6jSzfO~u|_nMTmL9tJhM){ z^M@7qpZe0jK)wisZ^aGPj$>*RGsP5iRW4mvOFMoGJ4pr&k=m##i`)4k>~CRCx0e7) zlNcewlL|Rfr1sJxT%?dMi<#P9a%3iwdmgVt)OGxH9v}%&W`8M-Rw>I0V@dE5qvER0 za4AcQtL@7&$5$|N{*@{T$Xev7EJrMnSGo92m3~(;NKX~XRgEpk6`LkSi@F`?s~)&R zoZrMLI3(s9I@cyiB63ScbrO*~GN`VQ4aj?+>G7Fsqr?j(>{e@gMk&82W7&Rg-1mJ$ z7H_7=N^{KG1(o@riYzB(;biez*jix%ydRfi7$nMwiK4ZI)wN4AKYbDVYrUomE~`4? zxx707{t+Sa(Z;&QSPmt3i> zsRqjHEa%$~s+nKT4(;u7)~xQ>N2|@`eXE`qnSTz%GYG(x(W!2gu;3;pHN_L@990;3 zAf&Jw;@JZ~#WYQip}Z$9kx_eLV*`UDRpAo*0@NPi*&V(XBGrgl6O;1}A^6a$~k zg4Nhn1?7Rz%uES24&{=Cs!Ie4oI6uxV(~s0c7(^hCGROxzA5Z5arMn~i@aLWXi-Zf z4G6V9Q_e??zOjBwxse%Ou>(;^83ssHlVneUf~dUwu2fA5RHd3KM5x|^Gur=Rfg6P03NpEYmWwQNnDiI$4RH@v}n`W((*sB`*GH8psPUlOLy>%-g3GhEF1 zZ9wpL-gz0HUs?5n)O^anqIg5M_>SKs)_L_RQgBG1bE^(fQ7&n|<)w?-nb1s?oNrfY zrS65@3a9}AljC^Pmf05rsP8NBivDWb?rd5zhZg?t(#kwRkg4^(PT+zzzyp^*DyZg% zx$~0!sVLFFFWhpVHn=Y04Vp?%ZT!Vq8i6`k#m?$_aI zT@_dLQbvnVLYj}lNJbOj>4gxzlw$~=u}hBze2r3?%x0T*yOkdnwt%FPQOwXLRz}h5 z7=ls)zIuyC1E|Uam(WuOI6VTmICyX&AL3Z418iUdhWKe8s*T~R5I$5+5OQ-;ZD~nj zy5$^;?8itFGt*WambMH0(9#)a@?06U)9IsfbSnedCqt>qNRRSFLi@BGbhSQQ3bE6v z6r^Eq%jgIl-eDzL;OnVv?C^e0?EqrhGEq06!-`gz#8Nqh>PmIvEgAKPW!xjJs{|g{ zKp@TvOXZQLsLZAOFa8eYZ91}2D=!jSda2^8sTF1~2kLTsMOJk-#yy{hExM}O>ZR=v zA@rE^s*{rAr88#Jhp-wk>VrP_T6I-~7KMbmQrQ`cy#|9}(3V#nb)%|AD(WKUjY#!YkRpoHHt%?l!nW_2Vvb1BzGH^x5OMYx zcvWUK%9q`LQGBL_=a;f=yEeY6haeq-OZyh}{S?Z#2ovd{x*2LK89~ zqNWE(LJ(G7MISP0_;tu2llS?8=3|o#u0Rw)FaP-?hzVfDUtZPkndn@Ml&h+EvR#GB z)ji{!9)dw~g2KN)iKT-gdTlN&5bcy)$Nipm-}Rt=~(KVN(Aj^&SF6R7Kb1e_1Q?;!!Pt{gXO!)YD|>hCncPwxD$AiMtUsN28(&Js!H zJ^eRsTGG=LOn&;{KDUyTI9QmboEOCdzEXNxW9r=60T*1r6f{0E2^?IC)B6N=5v2W2 z{b4uxw0N}jrZl3}NbCroM@}WoGg?j-?fLo{M1Ia@^Nnz0n0oz>M$VS7(yfx&tht+= z%Q;(kMXZTo5Fga&5wS+@En}hI0(>gPl_)>4R^D4B zT_WuX)#wS;;gpjgcRQ4Tr0-0&$lba$$y8J7xT-bys-=1?%3ti-`+LxnGv)P?D&)k$ zlQSvNoU0d{^^u~2NHs08Sumxen5V$qUcKCpq$7JlBF_WGHb}LR^H&#%wO76d7CF539|t%W(<^C;n~A zsNKk4OpryMr#W=dp1np21+JD@*eFzhV5~|=6d+X+5bqJ1D=-y8Aw)vKH3hJ2^&@;G zI#PU^QuS>nzs(H_G%LB#JNTpHfx|!YHFT%TN>PAOxJ>CAsc;pi>BOz>TD?Vat2@ma{J}KJ7lfxO_AD*uJ<~?Kji* z#mCQVLGVKP@_%4UU05i*c2^3da90XfpVZ=D_hG)}mX&D{QXpjoyYtv2Wd$6MLK7@r zfRw8RrzEurnK2vMKJZ_BbpG}7vS}Zt?RwYjV9PSmZ$r;Am063IORhhkCimi5=J}Qw z-!it&4(G>(NcHlJRNbW&gw}+(pPQ(a9#T}g#J|uBe6K2FP}EQw_@0KoKb`e7&iZAL z^$w)WM|$A<+Vg$x{XWdPkX?#Hx#Ft^*hBr}9V5II-pPhZX0>Q0(`mcis>K9D_#XU} zpXS@$WI1gmC}HAww5J;0|+#?!jPZ?+^#^*bcnPs=+b#)sn_B00NVtuQAR2VRN;kF~h!SU6Uu z5oP&=f#bRctu$Y^S=zU6Sg~ zFk7#-bFcyi4G+p0V1IKPe=hNeRjM%3{PF5uuM7(Y&pyiq{0c8#{D8HzN?Dh2C)T9% z)sGv`9gijP4e{*f)numQyoEc+LrZ33sRRF9{jIs%uvZD|kh}eI%BC*QAMBt155)-1 A=l}o! literal 0 HcwPel00001 diff --git a/CMakeLua/Modules/CPack.OSXX11.Info.plist.in b/CMakeLua/Modules/CPack.OSXX11.Info.plist.in new file mode 100644 index 0000000..30ce2de --- /dev/null +++ b/CMakeLua/Modules/CPack.OSXX11.Info.plist.in @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + @CPACK_PACKAGE_FILE_NAME@ + CFBundleGetInfoString + @CPACK_APPLE_GUI_INFO_STRING@ + CFBundleIconFile + @CPACK_APPLE_GUI_ICON@ + CFBundleIdentifier + @CPACK_APPLE_GUI_IDENTIFIER@ + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + @CPACK_APPLE_GUI_LONG_VERSION_STRING@ + CFBundleName + @CPACK_APPLE_GUI_BUNDLE_NAME@ + CFBundlePackageType + APPL + CFBundleShortVersionString + @CPACK_APPLE_GUI_SHORT_VERSION_STRING@ + CFBundleSignature + ???? + CFBundleVersion + @CPACK_APPLE_GUI_BUNDLE_VERSION@ + CSResourcesFileMapped + + LSRequiresCarbon + + NSHumanReadableCopyright + @CPACK_APPLE_GUI_COPYRIGHT@ + + diff --git a/CMakeLua/Modules/CPack.RuntimeScript.in b/CMakeLua/Modules/CPack.RuntimeScript.in new file mode 100755 index 0000000..1ce43bc --- /dev/null +++ b/CMakeLua/Modules/CPack.RuntimeScript.in @@ -0,0 +1,45 @@ +#!/bin/sh +# +# Modified from: Aaron Voisine + +CWD="`dirname \"$0\"`" +TMP=/tmp/$UID/TemporaryItems + +ps -wx -ocommand | grep -e '[X]11.app' > /dev/null +if [ "$?" != "0" -a ! -f ~/.xinitrc ]; then + echo "rm -f ~/.xinitrc" > ~/.xinitrc + sed 's/xterm/# xterm/' /usr/X11R6/lib/X11/xinit/xinitrc >> ~/.xinitrc +fi + +mkdir -p $TMP +cat << __END_OF_GETDISPLAY_SCRIPT__ > "$TMP/getdisplay.sh" +#!/bin/sh +mkdir -p "$TMP" + +if [ "\$DISPLAY"x == "x" ]; then + echo :0 > "$TMP/display" +else + echo \$DISPLAY > "$TMP/display" +fi +__END_OF_GETDISPLAY_SCRIPT__ +chmod +x "$TMP/getdisplay.sh" +rm -f $TMP/display +open-x11 $TMP/getdisplay.sh || \ +open -a XDarwin $TMP/getdisplay.sh || \ +echo ":0" > $TMP/display + +while [ "$?" == "0" -a ! -f $TMP/display ]; +do + #echo "Waiting for display $TMP/display" + sleep 1; +done +export "DISPLAY=`cat $TMP/display`" + +ps -wx -ocommand | grep -e '[X]11' > /dev/null || exit 11 + +cd ~/ +echo "$@" > /tmp/arguments.log +if echo $1 | grep -- "^-psn_"; then + shift +fi +exec "$CWD/bin/@CPACK_EXECUTABLE_NAME@" "$@" > /tmp/slicer.output 2>&1 diff --git a/CMakeLua/Modules/CPack.STGZ_Header.sh.in b/CMakeLua/Modules/CPack.STGZ_Header.sh.in new file mode 100644 index 0000000..3b50e74 --- /dev/null +++ b/CMakeLua/Modules/CPack.STGZ_Header.sh.in @@ -0,0 +1,141 @@ +#!/bin/sh + +# Display usage +cpack_usage() +{ + cat < /dev/null 2> /dev/null; then + cpack_usage + fi + if echo $a | grep "^--version" > /dev/null 2> /dev/null; then + cpack_version + exit 2 + fi + if echo $a | grep "^--include-subdir" > /dev/null 2> /dev/null; then + cpack_include_subdir=TRUE + fi + if echo $a | grep "^--exclude-subdir" > /dev/null 2> /dev/null; then + cpack_include_subdir=FALSE + fi + if echo $a | grep "^--skip-license" > /dev/null 2> /dev/null; then + cpack_skip_license=TRUE + fi +done + +if [ "x${cpack_include_subdir}x" != "xx" -o "x${cpack_skip_license}x" = "xTRUEx" ] +then + interactive=FALSE +fi + +cpack_version +echo "This is a self-extracting archive." +toplevel="`pwd`" +if [ "x${cpack_prefix_dir}x" != "xx" ] +then + toplevel="${cpack_prefix_dir}" +fi + +echo "The archive will be extracted to: ${toplevel}" + +if [ "x${interactive}x" = "xTRUEx" ] +then + echo "" + echo "If you want to stop extracting, please press ." + + if [ "x${cpack_skip_license}x" != "xTRUEx" ] + then + more << ____cpack__here_doc____ +@CPACK_RESOURCE_FILE_LICENSE_CONTENT@ +____cpack__here_doc____ + echo + echo "Do you accept the license? [yN]: " + read line leftover + case ${line} in + y* | Y*) + cpack_license_accepted=TRUE;; + *) + echo "License not accepted. Exiting ..." + exit 1;; + esac + fi + + if [ "x${cpack_include_subdir}x" = "xx" ] + then + echo "By default the @CPACK_PACKAGE_NAME@ will be installed in:" + echo " \"${toplevel}/@CPACK_PACKAGE_FILE_NAME@\"" + echo "Do you want to include the subdirectory @CPACK_PACKAGE_FILE_NAME@?" + echo "Saying no will install in: \"${toplevel}\" [Yn]: " + read line leftover + cpack_include_subdir=TRUE + case ${line} in + n* | N*) + cpack_include_subdir=FALSE + esac + fi +fi + +if [ "x${cpack_include_subdir}x" = "xTRUEx" ] +then + toplevel="${toplevel}/@CPACK_PACKAGE_FILE_NAME@" + mkdir -p "${toplevel}" +fi +echo +echo "Using target directory: ${toplevel}" +echo "Extracting, please wait..." +echo "" + +# take the archive portion of this file and pipe it to tar +# the NUMERIC parameter in this command should be one more +# than the number of lines in this header file +# there are tails which don't understand the "-n" argument, e.g. on SunOS +# OTOH there are tails which complain when not using the "-n" argument (e.g. GNU) +# so at first try to tail some file to see if tail fails if used with "-n" +# if so, don't use "-n" +use_new_tail_syntax="-n" +tail $use_new_tail_syntax +1 "$0" > /dev/null 2> /dev/null || use_new_tail_syntax="" + +tail $use_new_tail_syntax +###CPACK_HEADER_LENGTH### "$0" | gunzip | (cd "${toplevel}" && tar xf -) || cpack_echo_exit "Problem unpacking the @CPACK_PACKAGE_FILE_NAME@" + +echo "Unpacking finished successfully" + +exit 0 +#----------------------------------------------------------- +# Start of TAR.GZ file +#-----------------------------------------------------------; + diff --git a/CMakeLua/Modules/CPack.VolumeIcon.icns.in b/CMakeLua/Modules/CPack.VolumeIcon.icns.in new file mode 100644 index 0000000000000000000000000000000000000000..c59217eaef6405e760eacd70925335c6ecc04ac4 GIT binary patch literal 45739 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 WvoEWiBFUJq;TAEg5W&!}|Nj9h8cS>d literal 0 HcwPel00001 diff --git a/CMakeLua/Modules/CPack.background.png.in b/CMakeLua/Modules/CPack.background.png.in new file mode 100644 index 0000000000000000000000000000000000000000..3fa92b5097a0e1dbc1b3b62ea991691b8b9af147 GIT binary patch literal 50482 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..--. +cpack_set_if_not_set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${CPACK_SYSTEM_NAME}") +cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_DIRECTORY + "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}") +cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY + "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}") +cpack_set_if_not_set(CPACK_PACKAGE_DEFAULT_LOCATION "/") +cpack_set_if_not_set(CPACK_PACKAGE_RELOCATABLE "true") + +# always force to exactly "true" or "false" for CPack.Info.plist.in: +if(CPACK_PACKAGE_RELOCATABLE) + set(CPACK_PACKAGE_RELOCATABLE "true") +else(CPACK_PACKAGE_RELOCATABLE) + set(CPACK_PACKAGE_RELOCATABLE "false") +endif(CPACK_PACKAGE_RELOCATABLE) + +macro(cpack_check_file_exists file description) + if(NOT EXISTS "${file}") + message(SEND_ERROR "CPack ${description} file: \"${file}\" could not be found.") + endif(NOT EXISTS "${file}") +endmacro(cpack_check_file_exists) + +cpack_check_file_exists("${CPACK_PACKAGE_DESCRIPTION_FILE}" "package description") +cpack_check_file_exists("${CPACK_RESOURCE_FILE_LICENSE}" "license resource") +cpack_check_file_exists("${CPACK_RESOURCE_FILE_README}" "readme resource") +cpack_check_file_exists("${CPACK_RESOURCE_FILE_WELCOME}" "welcome resource") + +macro(cpack_optional_append _list _cond _item) + if(${_cond}) + set(${_list} ${${_list}} ${_item}) + endif(${_cond}) +endmacro(cpack_optional_append _list _cond _item) + +# Provide options to choose generators +# we might check here if the required tools for the generates exist +# and set the defaults according to the results +if(NOT CPACK_GENERATOR) + if(UNIX) + if(CYGWIN) + option(CPACK_CYGWIN_BINARY "Enable to build Cygwin binary packages" ON) + else(CYGWIN) + if(APPLE) + option(CPACK_PACKAGEMAKER "Enable to build PackageMaker packages" ON) + option(CPACK_OSXX11 "Enable to build OSX X11 packages" OFF) + else(APPLE) + option(CPACK_TZ "Enable to build TZ packages" ON) + endif(APPLE) + option(CPACK_STGZ "Enable to build STGZ packages" ON) + option(CPACK_TGZ "Enable to build TGZ packages" ON) + option(CPACK_TBZ2 "Enable to build TBZ2 packages" ON) + option(CPACK_DEB "Enable to build Debian packages" OFF) + option(CPACK_RPM "Enable to build RPM packages" OFF) + option(CPACK_NSIS "Enable to build NSIS packages" OFF) + endif(CYGWIN) + else(UNIX) + option(CPACK_NSIS "Enable to build NSIS packages" ON) + option(CPACK_ZIP "Enable to build ZIP packages" ON) + endif(UNIX) + + cpack_optional_append(CPACK_GENERATOR CPACK_PACKAGEMAKER PackageMaker) + cpack_optional_append(CPACK_GENERATOR CPACK_OSXX11 OSXX11) + cpack_optional_append(CPACK_GENERATOR CPACK_CYGWIN_BINARY CygwinBinary) + cpack_optional_append(CPACK_GENERATOR CPACK_DEB DEB) + cpack_optional_append(CPACK_GENERATOR CPACK_RPM RPM) + cpack_optional_append(CPACK_GENERATOR CPACK_NSIS NSIS) + cpack_optional_append(CPACK_GENERATOR CPACK_STGZ STGZ) + cpack_optional_append(CPACK_GENERATOR CPACK_TGZ TGZ) + cpack_optional_append(CPACK_GENERATOR CPACK_TBZ2 TBZ2) + cpack_optional_append(CPACK_GENERATOR CPACK_TZ TZ) + cpack_optional_append(CPACK_GENERATOR CPACK_ZIP ZIP) + +endif(NOT CPACK_GENERATOR) + +# Provide options to choose source generators +if(NOT CPACK_SOURCE_GENERATOR) + if(UNIX) + if(CYGWIN) + option(CPACK_SOURCE_CYGWIN "Enable to build Cygwin source packages" ON) + else(CYGWIN) + option(CPACK_SOURCE_TBZ2 "Enable to build TBZ2 source packages" ON) + option(CPACK_SOURCE_TGZ "Enable to build TGZ source packages" ON) + option(CPACK_SOURCE_TZ "Enable to build TZ source packages" ON) + option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" OFF) + endif(CYGWIN) + else(UNIX) + option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" ON) + endif(UNIX) + + cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_CYGWIN CygwinSource) + cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TGZ TGZ) + cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TBZ2 TBZ2) + cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TZ TZ) + cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_ZIP ZIP) +endif(NOT CPACK_SOURCE_GENERATOR) + +# mark the above options as advanced +mark_as_advanced(CPACK_CYGWIN_BINARY CPACK_PACKAGEMAKER CPACK_OSXX11 + CPACK_STGZ CPACK_TGZ CPACK_TBZ2 CPACK_DEB CPACK_RPM + CPACK_TZ CPACK_NSIS CPACK_ZIP + CPACK_SOURCE_CYGWIN CPACK_SOURCE_TBZ2 CPACK_SOURCE_TGZ + CPACK_SOURCE_TZ CPACK_SOURCE_ZIP) + +# Set some other variables +cpack_set_if_not_set(CPACK_INSTALL_CMAKE_PROJECTS + "${CMAKE_BINARY_DIR};${CMAKE_PROJECT_NAME};ALL;/") +cpack_set_if_not_set(CPACK_CMAKE_GENERATOR "${CMAKE_GENERATOR}") +cpack_set_if_not_set(CPACK_TOPLEVEL_TAG "${CPACK_SYSTEM_NAME}") + +cpack_set_if_not_set(CPACK_NSIS_DISPLAY_NAME "@CPACK_PACKAGE_INSTALL_DIRECTORY@") + +cpack_set_if_not_set(CPACK_OUTPUT_CONFIG_FILE + "${CMAKE_BINARY_DIR}/CPackConfig.cmake") + +cpack_set_if_not_set(CPACK_SOURCE_OUTPUT_CONFIG_FILE + "${CMAKE_BINARY_DIR}/CPackSourceConfig.cmake") + +cpack_set_if_not_set(CPACK_SET_DESTDIR OFF) +cpack_set_if_not_set(CPACK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +cpack_set_if_not_set(CPACK_NSIS_INSTALLER_ICON_CODE "") +cpack_set_if_not_set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "") + +cpack_encode_variables() +configure_file("${cpack_input_file}" "${CPACK_OUTPUT_CONFIG_FILE}" @ONLY IMMEDIATE) + +# Generate source file +cpack_set_if_not_set(CPACK_SOURCE_INSTALLED_DIRECTORIES + "${CMAKE_SOURCE_DIR};/") +cpack_set_if_not_set(CPACK_SOURCE_TOPLEVEL_TAG "${CPACK_SYSTEM_NAME}-Source") +cpack_set_if_not_set(CPACK_SOURCE_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-Source") +cpack_set_if_not_set(CPACK_SOURCE_IGNORE_FILES + "/CVS/;/\\\\\\\\.svn/;\\\\\\\\.swp$;\\\\\\\\.#;/#") +SET(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_SOURCE_INSTALL_CMAKE_PROJECTS}") +SET(CPACK_INSTALLED_DIRECTORIES "${CPACK_SOURCE_INSTALLED_DIRECTORIES}") +SET(CPACK_GENERATOR "${CPACK_SOURCE_GENERATOR}") +SET(CPACK_TOPLEVEL_TAG "${CPACK_SOURCE_TOPLEVEL_TAG}") +SET(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}") +SET(CPACK_IGNORE_FILES "${CPACK_SOURCE_IGNORE_FILES}") +SET(CPACK_STRIP_FILES "${CPACK_SOURCE_STRIP_FILES}") + +cpack_encode_variables() +configure_file("${cpack_source_input_file}" + "${CPACK_SOURCE_OUTPUT_CONFIG_FILE}" @ONLY IMMEDIATE) diff --git a/CMakeLua/Modules/CPackDeb.cmake b/CMakeLua/Modules/CPackDeb.cmake new file mode 100644 index 0000000..dcce5c6 --- /dev/null +++ b/CMakeLua/Modules/CPackDeb.cmake @@ -0,0 +1,94 @@ + +# CPack script for creating Debian package +# Author: Mathieu Malaterre +# +# http://wiki.debian.org/HowToPackageForDebian + +IF(CMAKE_BINARY_DIR) + MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used by CPack internally.") +ENDIF(CMAKE_BINARY_DIR) + +IF(NOT UNIX) + MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used under UNIX.") +ENDIF(NOT UNIX) + +# Let's define the control file found in debian package: + +# Binary package: +# http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles + +# DEBIAN/control +# debian policy enforce lower case for package name +# Package: (mandatory) +IF(NOT CPACK_DEBIAN_PACKAGE_NAME) + STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME) +ENDIF(NOT CPACK_DEBIAN_PACKAGE_NAME) + +# Version: (mandatory) +IF(NOT CPACK_DEBIAN_PACKAGE_VERSION) + IF(NOT CPACK_PACKAGE_VERSION) + MESSAGE(FATAL_ERROR "Debian package requires a package version") + ENDIF(NOT CPACK_PACKAGE_VERSION) + SET(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) +ENDIF(NOT CPACK_DEBIAN_PACKAGE_VERSION) + +# Architecture: (mandatory) +IF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) +# There is no such thing as i686 architecture on debian, you should use i386 instead +# $ dpkg --print-architecture + SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386) +ENDIF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) + +# have a look at GET_PROPERTY(result GLOBAL PROPERTY ENABLED_FEATURES), +# this returns the successful FIND_PACKAGE() calls, maybe this can help +# Depends: +IF(NOT CPACK_DEBIAN_PACKAGE_DEPENDS) + MESSAGE(STATUS "CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.") +ENDIF(NOT CPACK_DEBIAN_PACKAGE_DEPENDS) + +# Maintainer: (mandatory) +IF(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER) + IF(NOT CPACK_PACKAGE_CONTACT) + MESSAGE(FATAL_ERROR "Debian package requires a maintainer for a package, set CPACK_PACKAGE_CONTACT or CPACK_DEBIAN_PACKAGE_MAINTAINER") + ENDIF(NOT CPACK_PACKAGE_CONTACT) + SET(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT}) +ENDIF(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER) + +# Description: (mandatory) +IF(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION) + IF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) + MESSAGE(FATAL_ERROR "Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION") + ENDIF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) + SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}) +ENDIF(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION) + +# Section: (recommended) +IF(NOT CPACK_DEBIAN_PACKAGE_SECTION) + SET(CPACK_DEBIAN_PACKAGE_SECTION "devel") +ENDIF(NOT CPACK_DEBIAN_PACKAGE_SECTION) + +# Priority: (recommended) +IF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY) + SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") +ENDIF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY ) + +# Recommends: +# You should set: CPACK_DEBIAN_PACKAGE_RECOMMENDS + +# Suggests: +# You should set: CPACK_DEBIAN_PACKAGE_SUGGESTS + + +# For debian source packages: +# debian/control +# http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-sourcecontrolfiles + +# .dsc +# http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-debiansourcecontrolfiles + +# Builds-Depends: +#IF(NOT CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS) +# SET(CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS +# "debhelper (>> 5.0.0), libncurses5-dev, tcl8.4" +# ) +#ENDIF(NOT CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS) diff --git a/CMakeLua/Modules/CPackRPM.cmake b/CMakeLua/Modules/CPackRPM.cmake new file mode 100644 index 0000000..02bd151 --- /dev/null +++ b/CMakeLua/Modules/CPackRPM.cmake @@ -0,0 +1,227 @@ +# CPack script for creating RPM package +# Author: Eric Noulard with the help of Alexander Neundorf. +# All variables used by CPackRPM begins with CPACK_RPM_ prefix +# +# Here comes the list of used variables: +# + +IF(CMAKE_BINARY_DIR) + MESSAGE(FATAL_ERROR "CPackRPM.cmake may only be used by CPack internally.") +ENDIF(CMAKE_BINARY_DIR) + +IF(NOT UNIX) + MESSAGE(FATAL_ERROR "CPackRPM.cmake may only be used under UNIX.") +ENDIF(NOT UNIX) + +# rpmbuild is the basic command for building RPM package +# it may be a simple (symbolic) link to rpmb command. +FIND_PROGRAM(RPMBUILD_EXECUTABLE rpmbuild) + +IF(NOT RPMBUILD_EXECUTABLE) + MESSAGE(FATAL_ERROR "RPM package requires rpmbuild executable") +ENDIF(NOT RPMBUILD_EXECUTABLE) + +IF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*") + MESSAGE(FATAL_ERROR "${RPMBUILD_EXECUTABLE} can't handle paths with spaces, use a build directory without spaces for building RPMs.") +ENDIF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*") + +# If rpmbuild is found +# we try to discover alien since we may be on non RPM distro like Debian. +# In this case we may try to to use more advanced features +# like generating RPM directly from DEB using alien. +# FIXME feature not finished (yet) +FIND_PROGRAM(ALIEN_EXECUTABLE alien) +IF(ALIEN_EXECUTABLE) + MESSAGE(STATUS "alien found, we may be on a Debian based distro.") +ENDIF(ALIEN_EXECUTABLE) + +# +# Use user-defined RPM specific variables value +# or generate reasonable default value from +# CPACK_xxx generic values. +# The variables comes from the needed (mandatory or not) +# values found in the RPM specification file aka ".spec" file. +# The variables which may/should be defined are: +# + +# CPACK_RPM_PACKAGE_SUMMARY (mandatory) +IF(NOT CPACK_RPM_PACKAGE_SUMMARY) + # if neither var is defined lets use the name as summary + IF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) + STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_SUMMARY) + ELSE(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) + SET(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}) + ENDIF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) +ENDIF(NOT CPACK_RPM_PACKAGE_SUMMARY) + +# CPACK_RPM_PACKAGE_NAME (mandatory) +IF(NOT CPACK_RPM_PACKAGE_NAME) + STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_NAME) +ENDIF(NOT CPACK_RPM_PACKAGE_NAME) + +# CPACK_RPM_PACKAGE_VERSION (mandatory) +IF(NOT CPACK_RPM_PACKAGE_VERSION) + IF(NOT CPACK_PACKAGE_VERSION) + MESSAGE(FATAL_ERROR "RPM package requires a package version") + ENDIF(NOT CPACK_PACKAGE_VERSION) + SET(CPACK_RPM_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) +ENDIF(NOT CPACK_RPM_PACKAGE_VERSION) + +# CPACK_RPM_PACKAGE_ARCHITECTURE (optional) +IF(NOT CPACK_RPM_PACKAGE_ARCHITECTURE) + # FIXME This should be obtained through 'arch' command + # but is it --really necessary-- ? + SET(CPACK_RPM_PACKAGE_ARCHITECTURE i386) +ENDIF(NOT CPACK_RPM_PACKAGE_ARCHITECTURE) + +# CPACK_RPM_PACKAGE_RELEASE +# The RPM release is the numbering of the RPM package ITSELF +# this is the version of the PACKAGING and NOT the version +# of the CONTENT of the package. +# You may well need to generate a new RPM package release +# without changing the version of the packaged software. +# This is the case when the packaging is buggy (not) the software :=) +# If not set, 1 is a good candidate +IF(NOT CPACK_RPM_PACKAGE_RELEASE) + SET(CPACK_RPM_PACKAGE_RELEASE 1) +ENDIF(NOT CPACK_RPM_PACKAGE_RELEASE) + +# CPACK_RPM_PACKAGE_LICENSE +IF(NOT CPACK_RPM_PACKAGE_LICENSE) + SET(CPACK_RPM_PACKAGE_LICENSE "unknown") +ENDIF(NOT CPACK_RPM_PACKAGE_LICENSE) + +# CPACK_RPM_PACKAGE_GROUP +IF(NOT CPACK_RPM_PACKAGE_GROUP) + SET(CPACK_RPM_PACKAGE_GROUP "unknown") +ENDIF(NOT CPACK_RPM_PACKAGE_GROUP) + +# CPACK_RPM_PACKAGE_VENDOR +IF(NOT CPACK_RPM_PACKAGE_VENDOR) + IF(CPACK_PACKAGE_VENDOR) + SET(CPACK_RPM_PACKAGE_VENDOR "${CPACK_PACKAGE_VENDOR}") + ELSE(CPACK_PACKAGE_VENDOR) + SET(CPACK_RPM_PACKAGE_VENDOR "unknown") + ENDIF(CPACK_PACKAGE_VENDOR) +ENDIF(NOT CPACK_RPM_PACKAGE_VENDOR) + +# CPACK_RPM_PACKAGE_SOURCE +# The name of the source tarball in case we generate +# a source RPM + +# CPACK_RPM_PACKAGE_DESCRIPTION +# The variable content may be either +# - explicitely given by tthe user or +# - filled with the content of CPACK_PACKAGE_DESCRIPTION_FILE +# if it is defined +# - set to a default value +# +IF (NOT CPACK_RPM_PACKAGE_DESCRIPTION) + IF (CPACK_PACKAGE_DESCRIPTION_FILE) + FILE(READ ${CPACK_PACKAGE_DESCRIPTION_FILE} CPACK_RPM_PACKAGE_DESCRIPTION) + ELSE (CPACK_PACKAGE_DESCRIPTION_FILE) + SET(CPACK_RPM_PACKAGE_DESCRIPTION "no package description available") + ENDIF (CPACK_PACKAGE_DESCRIPTION_FILE) +ENDIF (NOT CPACK_RPM_PACKAGE_DESCRIPTION) + +# CPACK_RPM_USER_BINARY_SPECFILE +# FIXME when this is set then CPack should us the +# user provided file. + +# Now we may create the RPM build tree structure +SET(CPACK_RPM_ROOTDIR "${CPACK_TOPLEVEL_DIRECTORY}") +MESSAGE(STATUS "CPackRPM:: Using CPACK_RPM_ROOTDIR=${CPACK_RPM_ROOTDIR}") +# Prepare RPM build tree +FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}) +FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/tmp) +FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/BUILD) +FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/RPMS) +FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SOURCES) +FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SPECS) +FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SRPMS) + +#SET(CPACK_RPM_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}-${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm") +SET(CPACK_RPM_FILE_NAME "${CPACK_OUTPUT_FILE_NAME}") +# it seems rpmbuild can't handle spaces in the path +# neither escaping (as below) nor putting quotes around the path seem to help +#STRING(REGEX REPLACE " " "\\\\ " CPACK_RPM_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}") +SET(CPACK_RPM_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}") + + +SET(CPACK_RPM_BINARY_SPECFILE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_NAME}.spec") +IF(CPACK_RPM_USER_BINARY_SPECFILE) + # User may have specified SPECFILE just use it + MESSAGE("CPackRPM: Will use user specified spec file: ${CPACK_RPM_USER_BINARY_SPECFILE}") + # Note that user provided file is processed for @var replacement + CONFIGURE_FILE(${CPACK_RPM_USER_BINARY_SPECFILE} ${CPACK_RPM_BINARY_SPECFILE} @ONLY) +ELSE(CPACK_RPM_USER_BINARY_SPECFILE) + # No User specified spec file generate a valid one using var values + IF(CPACK_RPM_PACKAGE_DEBUG) + MESSAGE("CPackRPM:: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}") + MESSAGE("CPackRPM:: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}") + MESSAGE("CPackRPM:: CPACK_TEMPORARY_DIRECTORY= ${PACK_TEMPORARY_DIRECTORY}") + MESSAGE("CPackRPM:: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}") + MESSAGE("CPackRPM:: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}") + MESSAGE("CPackRPM:: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}") + MESSAGE("CPackRPM:: CPACK_RPM_BINARY_SPECFILE = ${CPACK_RPM_BINARY_SPECFILE}") + MESSAGE("CPackRPM:: CPACK_PACKAGE_INSTALL_DIRECTORY = ${PACK_PACKAGE_INSTALL_DIRECTORY}") + MESSAGE("CPackRPM ::CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}") + ENDIF(CPACK_RPM_PACKAGE_DEBUG) + FILE(WRITE ${CPACK_RPM_BINARY_SPECFILE} + "# -*- rpm-spec -*- +Buildroot: ${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME} +Summary: ${CPACK_RPM_PACKAGE_SUMMARY} +Name: ${CPACK_RPM_PACKAGE_NAME} +Version: ${CPACK_RPM_PACKAGE_VERSION} +Release: ${CPACK_RPM_PACKAGE_RELEASE} +License: ${CPACK_RPM_PACKAGE_LICENSE} +Group: ${CPACK_RPM_PACKAGE_GROUP} +Vendor: ${CPACK_RPM_PACKAGE_VENDOR} + +#%define prefix ${CMAKE_INSTALL_PREFIX} +%define _rpmdir ${CPACK_RPM_DIRECTORY} +%define _rpmfilename ${CPACK_RPM_FILE_NAME} +%define _unpackaged_files_terminate_build 0 +%define _topdir ${CPACK_RPM_DIRECTORY} + +%description +${CPACK_RPM_PACKAGE_DESCRIPTION} + +# This is a shortcutted spec file +# generated by CMake RPM generator +# we skip the %prepn %build and %install +# steps because CPack does that for us +#%prep + +#%build + +#%install + +%clean + +%files +%defattr(-,root,root,-) +#%dir %{prefix} +#%{prefix}/* +/* + +%changelog +* Tue Aug 16 2007 Erk + Generated by CPack RPM Generator and associated macros +") + +ENDIF(CPACK_RPM_USER_BINARY_SPECFILE) + + +IF(RPMBUILD_EXECUTABLE) + # Now call rpmbuild using the SPECFILE + EXECUTE_PROCESS( + COMMAND "${RPMBUILD_EXECUTABLE}" -bb "${CPACK_RPM_BINARY_SPECFILE}" + WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}" + ERROR_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.err" + OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.out") +ELSE(RPMBUILD_EXECUTABLE) + IF(ALIEN_EXECUTABLE) + MESSAGE(FATAL_ERROR "RPM packaging through alien not done (yet)") + ENDIF(ALIEN_EXECUTABLE) +ENDIF(RPMBUILD_EXECUTABLE) diff --git a/CMakeLua/Modules/CPackZIP.cmake b/CMakeLua/Modules/CPackZIP.cmake new file mode 100644 index 0000000..4a65856 --- /dev/null +++ b/CMakeLua/Modules/CPackZIP.cmake @@ -0,0 +1,27 @@ +IF(CMAKE_BINARY_DIR) + MESSAGE(FATAL_ERROR "CPackZIP.cmake may only be used by CPack internally.") +ENDIF(CMAKE_BINARY_DIR) + +FIND_PROGRAM(ZIP_EXECUTABLE wzzip PATHS "$ENV{ProgramFiles}/WinZip") +IF(ZIP_EXECUTABLE) + SET(CPACK_ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" -P \"\" @") + SET(CPACK_ZIP_NEED_QUOTES TRUE) +ENDIF(ZIP_EXECUTABLE) + +IF(NOT ZIP_EXECUTABLE) + FIND_PROGRAM(ZIP_EXECUTABLE 7z PATHS "$ENV{ProgramFiles}/7-Zip") + IF(ZIP_EXECUTABLE) + SET(CPACK_ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" a -tzip \"\" @") + SET(CPACK_ZIP_NEED_QUOTES TRUE) + ENDIF(ZIP_EXECUTABLE) +ENDIF(NOT ZIP_EXECUTABLE) + +IF(NOT ZIP_EXECUTABLE) + FIND_PACKAGE(Cygwin) + FIND_PROGRAM(ZIP_EXECUTABLE zip PATHS "${CYGWIN_INSTALL_PATH}/bin") + IF(ZIP_EXECUTABLE) + SET(CPACK_ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" -r \"\" . -i@") + SET(CPACK_ZIP_NEED_QUOTES FALSE) + ENDIF(ZIP_EXECUTABLE) +ENDIF(NOT ZIP_EXECUTABLE) + diff --git a/CMakeLua/Modules/CTest.cmake b/CMakeLua/Modules/CTest.cmake new file mode 100644 index 0000000..7322dbf --- /dev/null +++ b/CMakeLua/Modules/CTest.cmake @@ -0,0 +1,205 @@ +# - Configure a project for testing with CTest/Dart +# This file configures a project to use the CTest/Dart +# testing/dashboard process. This module should be included +# in the CMakeLists.txt file at the top of a project. Typical usage: +# INCLUDE(CTest) +# IF(BUILD_TESTING) +# # ... testing related CMake code ... +# ENDIF(BUILD_TESTING) +# The BUILD_TESTING option is created by the CTest module to determine +# whether testing support should be enabled. The default is ON. + +OPTION(BUILD_TESTING "Build the testing tree." ON) + +IF(BUILD_TESTING) + # Setup some auxilary macros + MACRO(SET_IF_NOT_SET var val) + IF(NOT DEFINED "${var}") + SET("${var}" "${val}") + ENDIF(NOT DEFINED "${var}") + ENDMACRO(SET_IF_NOT_SET) + + MACRO(SET_IF_SET var val) + IF(NOT "${val}" MATCHES "^$") + SET("${var}" "${val}") + ENDIF(NOT "${val}" MATCHES "^$") + ENDMACRO(SET_IF_SET) + + MACRO(SET_IF_SET_AND_NOT_SET var val) + IF(NOT "${val}" MATCHES "^$") + SET_IF_NOT_SET("${var}" "${val}") + ENDIF(NOT "${val}" MATCHES "^$") + ENDMACRO(SET_IF_SET_AND_NOT_SET) + + # Make sure testing is enabled + ENABLE_TESTING() + + IF(EXISTS "${PROJECT_SOURCE_DIR}/CTestConfig.cmake") + INCLUDE("${PROJECT_SOURCE_DIR}/CTestConfig.cmake") + SET_IF_SET_AND_NOT_SET(NIGHTLY_START_TIME "${CTEST_NIGHTLY_START_TIME}") + SET_IF_SET_AND_NOT_SET(DROP_METHOD "${CTEST_DROP_METHOD}") + SET_IF_SET_AND_NOT_SET(DROP_SITE "${CTEST_DROP_SITE}") + SET_IF_SET_AND_NOT_SET(DROP_SITE_USER "${CTEST_DROP_SITE_USER}") + SET_IF_SET_AND_NOT_SET(DROP_SITE_PASSWORD "${CTEST_DROP_SITE_PASWORD}") + SET_IF_SET_AND_NOT_SET(DROP_SITE_MODE "${CTEST_DROP_SITE_MODE}") + SET_IF_SET_AND_NOT_SET(DROP_LOCATION "${CTEST_DROP_LOCATION}") + SET_IF_SET_AND_NOT_SET(TRIGGER_SITE "${CTEST_TRIGGER_SITE}") + SET_IF_SET_AND_NOT_SET(UPDATE_TYPE "${CTEST_UPDATE_TYPE}") + ENDIF(EXISTS "${PROJECT_SOURCE_DIR}/CTestConfig.cmake") + + # the project can have a DartConfig.cmake file + IF(EXISTS "${PROJECT_SOURCE_DIR}/DartConfig.cmake") + INCLUDE("${PROJECT_SOURCE_DIR}/DartConfig.cmake") + ELSE(EXISTS "${PROJECT_SOURCE_DIR}/DartConfig.cmake") + + # Dashboard is opened for submissions for a 24 hour period starting at + # the specified NIGHTLY_START_TIME. Time is specified in 24 hour format. + SET_IF_NOT_SET (NIGHTLY_START_TIME "00:00:00 EDT") + SET_IF_NOT_SET(DROP_METHOD "http") + + # Dart server to submit results (used by client) + # There should be an option to specify submit method, but I will leave it + # commented until we decide what to do with it. + # SET(DROP_METHOD "http" CACHE STRING "Set the CTest submit method. Valid options are http and ftp") + IF(DROP_METHOD MATCHES http) + SET_IF_NOT_SET (DROP_SITE "public.kitware.com") + SET_IF_NOT_SET (DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi") + ELSE(DROP_METHOD MATCHES http) + SET_IF_NOT_SET (DROP_SITE "public.kitware.com") + SET_IF_NOT_SET (DROP_LOCATION "/incoming") + SET_IF_NOT_SET (DROP_SITE_USER "anonymous") + SET_IF_NOT_SET (DROP_SITE_PASSWORD "random@someplace.com") + SET_IF_NOT_SET (DROP_SITE_MODE "active") + ENDIF(DROP_METHOD MATCHES http) + SET_IF_NOT_SET (TRIGGER_SITE "http://${DROP_SITE}/cgi-bin/Submit-Random-TestingResults.cgi") + SET_IF_NOT_SET (COMPRESS_SUBMISSION ON) + + # Dart server configuration + SET (ROLLUP_URL "http://${DROP_SITE}/cgi-bin/random-rollup-dashboard.sh") + #SET (CVS_WEB_URL "") + #SET (CVS_WEB_CVSROOT "") + + #SET (USE_DOXYGEN "Off") + #SET (DOXYGEN_URL "" ) + ENDIF(EXISTS "${PROJECT_SOURCE_DIR}/DartConfig.cmake") + SET_IF_NOT_SET (NIGHTLY_START_TIME "00:00:00 EDT") + + # make program just needs to use CMAKE_MAKE_PROGRAM which is required + # to be defined by cmake + SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM}) + + FIND_PROGRAM(CVSCOMMAND cvs ) + SET(CVS_UPDATE_OPTIONS "-d -A -P" CACHE STRING + "Options passed to the cvs update command.") + FIND_PROGRAM(SVNCOMMAND svn) + + IF(NOT UPDATE_TYPE) + IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CVS") + SET(UPDATE_TYPE cvs) + ELSE(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CVS") + IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn") + SET(UPDATE_TYPE svn) + ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn") + ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CVS") + ENDIF(NOT UPDATE_TYPE) + + IF(NOT UPDATE_TYPE) + MESSAGE(STATUS "Cannot determine repository type. Please set UPDATE_TYPE to 'cvs' or 'svn'. CTest update will not work.") + ENDIF(NOT UPDATE_TYPE) + + IF(UPDATE_TYPE MATCHES "[Cc][Vv][Ss]") + SET(UPDATE_COMMAND "${CVSCOMMAND}") + SET(UPDATE_OPTIONS "${CVS_UPDATE_OPTIONS}") + ELSE(UPDATE_TYPE MATCHES "[Cc][Vv][Ss]") + IF(UPDATE_TYPE MATCHES "[Ss][Vv][Nn]") + SET(UPDATE_COMMAND "${SVNCOMMAND}") + SET(UPDATE_OPTIONS "${SVN_UPDATE_OPTIONS}") + ENDIF(UPDATE_TYPE MATCHES "[Ss][Vv][Nn]") + ENDIF(UPDATE_TYPE MATCHES "[Cc][Vv][Ss]") + + SET(DART_TESTING_TIMEOUT 1500 CACHE STRING + "Maximum time allowed before CTest will kill the test.") + + FIND_PROGRAM(MEMORYCHECK_COMMAND + NAMES purify valgrind boundscheck + PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]" + DOC "Path to the memory checking command, used for memory error detection." + ) + SET(MEMORYCHECK_SUPPRESSIONS_FILE "" CACHE FILEPATH + "File that contains suppressions for the memory checker") + FIND_PROGRAM(SCPCOMMAND scp DOC + "Path to scp command, used by CTest for submitting results to a Dart server" + ) + FIND_PROGRAM(COVERAGE_COMMAND gcov DOC + "Path to the coverage program that CTest uses for performing coverage inspection" + ) + + # set the site name + SITE_NAME(SITE) + # set the build name + IF(NOT BUILDNAME) + SET(DART_COMPILER "${CMAKE_CXX_COMPILER}") + IF(NOT DART_COMPILER) + SET(DART_COMPILER "${CMAKE_C_COMPILER}") + ENDIF(NOT DART_COMPILER) + IF(NOT DART_COMPILER) + SET(DART_COMPILER "unknown") + ENDIF(NOT DART_COMPILER) + IF(WIN32) + SET(DART_NAME_COMPONENT "NAME_WE") + ELSE(WIN32) + SET(DART_NAME_COMPONENT "NAME") + ENDIF(WIN32) + IF(NOT BUILD_NAME_SYSTEM_NAME) + SET(BUILD_NAME_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}") + ENDIF(NOT BUILD_NAME_SYSTEM_NAME) + IF(WIN32) + SET(BUILD_NAME_SYSTEM_NAME "Win32") + ENDIF(WIN32) + IF(UNIX OR BORLAND) + GET_FILENAME_COMPONENT(DART_CXX_NAME + "${CMAKE_CXX_COMPILER}" ${DART_NAME_COMPONENT}) + ELSE(UNIX OR BORLAND) + GET_FILENAME_COMPONENT(DART_CXX_NAME + "${CMAKE_BUILD_TOOL}" ${DART_NAME_COMPONENT}) + ENDIF(UNIX OR BORLAND) + IF(DART_CXX_NAME MATCHES "msdev") + SET(DART_CXX_NAME "vs60") + ENDIF(DART_CXX_NAME MATCHES "msdev") + IF(DART_CXX_NAME MATCHES "devenv") + IF(CMAKE_GENERATOR MATCHES "^Visual Studio 7$") + SET(DART_CXX_NAME "vs70") + ELSE(CMAKE_GENERATOR MATCHES "^Visual Studio 7$") + IF(CMAKE_GENERATOR MATCHES "^Visual Studio 7 .NET 2003$") + SET(DART_CXX_NAME "vs71") + ELSE(CMAKE_GENERATOR MATCHES "^Visual Studio 7 .NET 2003$") + SET(DART_CXX_NAME "vs8") + ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio 7 .NET 2003$") + ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio 7$") + ENDIF(DART_CXX_NAME MATCHES "devenv") + SET(BUILDNAME "${BUILD_NAME_SYSTEM_NAME}-${DART_CXX_NAME}") + ENDIF(NOT BUILDNAME) + # set the build command + BUILD_COMMAND(MAKECOMMAND ${MAKEPROGRAM} ) + + MARK_AS_ADVANCED( + COVERAGE_COMMAND + CVSCOMMAND + SVNCOMMAND + CVS_UPDATE_OPTIONS + SVN_UPDATE_OPTIONS + MAKECOMMAND + MEMORYCHECK_COMMAND + MEMORYCHECK_SUPPRESSIONS_FILE + PURIFYCOMMAND + SCPCOMMAND + SITE + ) + # BUILDNAME + IF(NOT RUN_FROM_DART) + SET(RUN_FROM_CTEST_OR_DART 1) + INCLUDE(CTestTargets) + SET(RUN_FROM_CTEST_OR_DART) + ENDIF(NOT RUN_FROM_DART) +ENDIF(BUILD_TESTING) diff --git a/CMakeLua/Modules/CTestTargets.cmake b/CMakeLua/Modules/CTestTargets.cmake new file mode 100644 index 0000000..bb4cdee --- /dev/null +++ b/CMakeLua/Modules/CTestTargets.cmake @@ -0,0 +1,66 @@ +IF(NOT RUN_FROM_CTEST_OR_DART) + MESSAGE(FATAL_ERROR "Do not incldue CTestTargets.cmake directly") +ENDIF(NOT RUN_FROM_CTEST_OR_DART) + +# make directories in the binary tree +FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/Testing/Temporary) +GET_FILENAME_COMPONENT(CMAKE_HOST_PATH ${CMAKE_COMMAND} PATH) +SET(CMAKE_TARGET_PATH ${EXECUTABLE_OUTPUT_PATH}) +FIND_PROGRAM(CMAKE_CTEST_COMMAND ctest ${CMAKE_HOST_PATH} ${CMAKE_TARGET_PATH}) +MARK_AS_ADVANCED(CMAKE_CTEST_COMMAND) + +# Use CTest +# configure files + +IF(CTEST_NEW_FORMAT) + CONFIGURE_FILE( + ${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in + ${PROJECT_BINARY_DIR}/CTestConfiguration.ini ) +ELSE(CTEST_NEW_FORMAT) + CONFIGURE_FILE( + ${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in + ${PROJECT_BINARY_DIR}/DartConfiguration.tcl ) +ENDIF(CTEST_NEW_FORMAT) + +# +# Section 3: +# +# Custom targets to perform dashboard builds and submissions. +# These should NOT need to be modified from project to project. +# + +SET(__conf_types "") +IF(CMAKE_CONFIGURATION_TYPES) + # We need to pass the configuration type on the test command line. + SET(__conf_types -C "${CMAKE_CFG_INTDIR}") +ENDIF(CMAKE_CONFIGURATION_TYPES) + +# add testing targets +IF(${CMAKE_MAKE_PROGRAM} MATCHES make) + FOREACH(mode Experimental Nightly Continuous NightlyMemoryCheck) + ADD_CUSTOM_TARGET(${mode} ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}) + ENDFOREACH(mode) +ELSE(${CMAKE_MAKE_PROGRAM} MATCHES make) + # for IDE only add them once for nested projects + IF (NOT DART_COMMON_TARGETS_ADDED) + FOREACH(mode Experimental Nightly Continuous NightlyMemoryCheck) + ADD_CUSTOM_TARGET(${mode} ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}) + ENDFOREACH(mode) + SET (DART_COMMON_TARGETS_ADDED 1) + ENDIF (NOT DART_COMMON_TARGETS_ADDED) +ENDIF(${CMAKE_MAKE_PROGRAM} MATCHES make) + + +# for non IDE based builds nmake and make +# add all these extra targets +IF(${CMAKE_MAKE_PROGRAM} MATCHES make) + # Make targets for Experimental builds + FOREACH(mode Nightly Experimental Continuous) + FOREACH(testtype Start Update Configure Build Test Coverage MemCheck Submit) + # missing purify + ADD_CUSTOM_TARGET(${mode}${testtype} + ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}${testtype}) + ENDFOREACH(testtype) + ENDFOREACH(mode) +ENDIF (${CMAKE_MAKE_PROGRAM} MATCHES make) + diff --git a/CMakeLua/Modules/CVS/Entries b/CMakeLua/Modules/CVS/Entries new file mode 100644 index 0000000..45682f8 --- /dev/null +++ b/CMakeLua/Modules/CVS/Entries @@ -0,0 +1,261 @@ +/AddFileDependencies.cmake/1.1/Mon Mar 20 17:29:56 2006//T1.1 +/CMake.cmake/1.2/Wed Dec 14 18:51:08 2005//T1.2 +/CMakeASM-ATTInformation.cmake/1.1/Thu Jun 28 13:14:27 2007//T1.1 +/CMakeASMCompiler.cmake.in/1.4/Thu Jul 12 12:37:10 2007//T1.4 +/CMakeASMInformation.cmake/1.2/Wed Jul 11 17:39:51 2007//T1.2 +/CMakeAddNewLanguage.txt/1.1/Thu Sep 15 16:17:37 2005//T1.1 +/CMakeBackwardCompatibilityC.cmake/1.16/Wed Dec 14 18:51:08 2005//T1.16 +/CMakeBackwardCompatibilityCXX.cmake/1.11/Tue Jan 17 15:21:44 2006//T1.11 +/CMakeBorlandFindMake.cmake/1.1/Tue Dec 3 21:19:16 2002//T1.1 +/CMakeBuildSettings.cmake.in/1.1/Thu Dec 5 14:46:30 2002//T1.1 +/CMakeCCompilerId.c/1.14/Mon Sep 17 19:55:17 2007//T1.14 +/CMakeCXXCompilerId.cpp/1.9/Mon Sep 17 19:55:17 2007//T1.9 +/CMakeCommonLanguageInclude.cmake/1.4/Wed Jul 26 17:19:34 2006//T1.4 +/CMakeConfigurableFile.in/1.1/Thu Feb 23 14:58:07 2006//T1.1 +/CMakeDependentOption.cmake/1.1/Thu Oct 19 18:48:12 2006//T1.1 +/CMakeDetermineASM-ATTCompiler.cmake/1.1/Thu Jun 28 13:14:27 2007//T1.1 +/CMakeDetermineASMCompiler.cmake/1.1/Thu Jun 28 13:14:27 2007//T1.1 +/CMakeDetermineCCompiler.cmake/1.48/Wed Jul 18 14:52:53 2007//T1.48 +/CMakeDetermineCXXCompiler.cmake/1.41/Wed Jul 18 14:52:53 2007//T1.41 +/CMakeDetermineJavaCompiler.cmake/1.14/Mon Jun 18 22:01:15 2007//T1.14 +/CMakeDetermineRCCompiler.cmake/1.8/Thu Aug 31 14:46:02 2006//T1.8 +/CMakeDetermineSystem.cmake/1.28/Wed Aug 15 18:26:00 2007//T1.28 +/CMakeExportBuildSettings.cmake/1.3/Thu Dec 15 15:41:19 2005//T1.3 +/CMakeFindFrameworks.cmake/1.2/Wed Dec 14 18:51:08 2005//T1.2 +/CMakeFindWMake.cmake/1.1/Tue Jan 17 15:21:44 2006//T1.1 +/CMakeFindXCode.cmake/1.1/Tue Feb 1 18:12:19 2005//T1.1 +/CMakeForceCompiler.cmake/1.5/Fri Aug 24 12:40:57 2007//T1.5 +/CMakeFortranCompiler.cmake.in/1.11/Thu Jul 12 12:37:10 2007//T1.11 +/CMakeImportBuildSettings.cmake/1.8/Mon Jul 24 20:58:05 2006//T1.8 +/CMakeJavaInformation.cmake/1.7/Mon Apr 17 18:00:15 2006//T1.7 +/CMakeMSYSFindMake.cmake/1.2/Thu Feb 16 02:26:47 2006//T1.2 +/CMakeMinGWFindMake.cmake/1.3/Thu Feb 16 02:26:47 2006//T1.3 +/CMakeNMakeFindMake.cmake/1.1/Tue Dec 3 21:19:16 2002//T1.1 +/CMakePlatformId.h/1.4/Wed May 23 15:00:54 2007//T1.4 +/CMakePrintSystemInformation.cmake/1.3/Wed Dec 14 18:51:08 2005//T1.3 +/CMakeRCCompiler.cmake.in/1.3/Wed Jul 20 19:44:55 2005//T1.3 +/CMakeRCInformation.cmake/1.5/Mon Feb 27 17:14:10 2006//T1.5 +/CMakeSystem.cmake.in/1.8/Wed Aug 15 18:26:00 2007//T1.8 +/CMakeSystemSpecificInformation.cmake/1.40/Fri Aug 10 13:07:39 2007//T1.40 +/CMakeTestASM-ATTCompiler.cmake/1.1/Thu Jun 28 13:14:27 2007//T1.1 +/CMakeTestASMCompiler.cmake/1.1/Thu Jun 28 13:14:27 2007//T1.1 +/CMakeTestForFreeVC.cxx/1.1/Fri Sep 3 19:19:58 2004//T1.1 +/CMakeTestFortranCompiler.cmake/1.8/Wed Jun 14 16:28:29 2006//T1.8 +/CMakeTestGNU.c/1.4/Tue May 18 18:33:12 2004//T1.4 +/CMakeTestJavaCompiler.cmake/1.3/Wed Dec 14 18:51:08 2005//T1.3 +/CMakeTestNMakeCLVersion.c/1.1/Tue Aug 5 13:55:20 2003//T1.1 +/CMakeTestRCCompiler.cmake/1.3/Wed Dec 14 18:51:08 2005//T1.3 +/CMakeUnixFindMake.cmake/1.4/Tue Feb 20 20:14:04 2007//T1.4 +/CMakeVS6BackwardCompatibility.cmake/1.4/Wed Dec 14 18:51:08 2005//T1.4 +/CMakeVS6FindMake.cmake/1.4/Mon Apr 10 17:46:37 2006//T1.4 +/CMakeVS71FindMake.cmake/1.4/Mon Apr 10 17:46:37 2006//T1.4 +/CMakeVS7BackwardCompatibility.cmake/1.4/Wed Dec 14 18:51:08 2005//T1.4 +/CMakeVS7FindMake.cmake/1.3/Mon Apr 10 17:46:37 2006//T1.3 +/CMakeVS8FindMake.cmake/1.7/Mon Sep 17 19:20:52 2007//T1.7 +/CMakeVS9FindMake.cmake/1.1/Mon Sep 17 19:21:47 2007//T1.1 +/COPYING-CMAKE-SCRIPTS/1.1/Tue Sep 19 20:11:53 2006//T1.1 +/CPack.DS_Store.in/1.1/Tue Feb 13 19:13:51 2007/-kb/T1.1 +/CPack.Description.plist.in/1.3/Wed Jan 4 20:13:38 2006//T1.3 +/CPack.OSXScriptLauncher.in/1.1/Wed Jan 10 20:30:25 2007/-kb/T1.1 +/CPack.OSXX11.Info.plist.in/1.1/Wed Jan 10 20:30:25 2007//T1.1 +/CPack.RuntimeScript.in/1.2/Wed Jan 10 23:33:03 2007//T1.2 +/CPack.STGZ_Header.sh.in/1.7/Thu Jul 19 19:39:58 2007//T1.7 +/CPack.VolumeIcon.icns.in/1.1/Tue Feb 13 19:13:51 2007/-kb/T1.1 +/CPack.background.png.in/1.1/Tue Feb 13 19:13:51 2007/-kb/T1.1 +/CPackRPM.cmake/1.6/Thu Nov 1 13:52:09 2007//T1.6 +/CPackZIP.cmake/1.1/Tue Jul 24 16:52:39 2007//T1.1 +/CTestTargets.cmake/1.2/Thu Oct 12 17:15:03 2006//T1.2 +/CheckCCompilerFlag.cmake/1.1/Mon Sep 18 21:55:22 2006//T1.1 +/CheckCSourceCompiles.cmake/1.17/Wed Apr 4 19:58:38 2007//T1.17 +/CheckCSourceRuns.cmake/1.10/Tue Aug 28 14:52:07 2007//T1.10 +/CheckCXXCompilerFlag.cmake/1.1/Mon Sep 18 21:55:22 2006//T1.1 +/CheckCXXSourceCompiles.cmake/1.14/Sun Aug 27 15:19:25 2006//T1.14 +/CheckCXXSourceRuns.cmake/1.6/Tue Aug 28 14:52:07 2007//T1.6 +/CheckForPthreads.c/1.3/Mon Dec 4 22:26:08 2006//T1.3 +/CheckFortranFunctionExists.cmake/1.1/Wed Oct 10 21:47:36 2007//T1.1 +/CheckFunctionExists.c/1.3/Thu Apr 15 12:22:19 2004//T1.3 +/CheckFunctionExists.cmake/1.23/Wed Jun 14 16:28:29 2006//T1.23 +/CheckIncludeFile.c.in/1.3/Thu May 18 14:28:12 2006//T1.3 +/CheckIncludeFile.cmake/1.22/Wed Jun 14 16:28:29 2006//T1.22 +/CheckIncludeFile.cxx.in/1.2/Fri Nov 8 20:46:08 2002//T1.2 +/CheckIncludeFileCXX.cmake/1.21/Wed Jun 14 16:28:29 2006//T1.21 +/CheckIncludeFiles.cmake/1.18/Wed Jun 14 16:28:29 2006//T1.18 +/CheckLibraryExists.cmake/1.26/Wed Jun 14 16:28:29 2006//T1.26 +/CheckLibraryExists.lists.in/1.1/Tue Sep 24 20:36:56 2002//T1.1 +/CheckSizeOf.cmake/1.10/Mon Dec 30 16:02:31 2002//T1.10 +/CheckStructHasMember.cmake/1.1/Thu Jul 12 19:00:37 2007//T1.1 +/CheckSymbolExists.cmake/1.16/Wed Jun 14 16:28:29 2006//T1.16 +/CheckTypeSize.cmake/1.30/Fri Aug 10 17:14:00 2007//T1.30 +/CheckTypeSizeC.c.in/1.3/Tue Jun 5 14:20:21 2007//T1.3 +/CheckVariableExists.c/1.3/Mon Apr 26 14:19:44 2004//T1.3 +/CheckVariableExists.cmake/1.17/Wed Jun 14 16:28:29 2006//T1.17 +/DartConfiguration.tcl.in/1.6/Wed Feb 16 18:30:17 2005//T1.6 +/Documentation.cmake/1.7/Wed Dec 14 18:51:08 2005//T1.7 +/DummyCXXFile.cxx/1.1/Thu Nov 21 17:52:54 2002//T1.1 +/FLTKCompatibility.cmake/1.1/Mon Aug 6 14:42:45 2007//T1.1 +/FindASPELL.cmake/1.4/Fri Oct 12 15:00:35 2007//T1.4 +/FindAVIFile.cmake/1.7/Thu Dec 15 15:41:19 2005//T1.7 +/FindBLAS.cmake/1.1/Wed Oct 10 21:47:36 2007//T1.1 +/FindBZip2.cmake/1.3/Mon Jul 23 13:49:52 2007//T1.3 +/FindCABLE.cmake/1.11/Thu Dec 15 15:41:19 2005//T1.11 +/FindCURL.cmake/1.4/Mon Jul 23 13:49:52 2007//T1.4 +/FindCups.cmake/1.2/Wed Jul 18 17:56:45 2007//T1.2 +/FindCurses.cmake/1.10/Mon Aug 27 13:01:14 2007//T1.10 +/FindCygwin.cmake/1.6/Wed Dec 14 18:51:08 2005//T1.6 +/FindDCMTK.cmake/1.5/Thu Jul 19 13:00:51 2007//T1.5 +/FindDart.cmake/1.8/Tue Feb 28 15:27:30 2006//T1.8 +/FindDoxygen.cmake/1.14/Tue Dec 5 00:37:29 2006//T1.14 +/FindEXPAT.cmake/1.4/Sun Nov 25 13:20:05 2007//T1.4 +/FindFLTK.cmake/1.36/Thu Dec 15 15:41:19 2005//T1.36 +/FindFLTK2.cmake/1.1/Fri Oct 12 15:34:07 2007//T1.1 +/FindGCCXML.cmake/1.5/Tue Feb 28 15:27:30 2006//T1.5 +/FindGLU.cmake/1.9/Wed Dec 14 18:51:08 2005//T1.9 +/FindGLUT.cmake/1.19/Thu Jul 19 13:00:51 2007//T1.19 +/FindGTK.cmake/1.17/Thu Jul 19 13:00:51 2007//T1.17 +/FindGettext.cmake/1.2/Mon Feb 26 00:22:59 2007//T1.2 +/FindGnuplot.cmake/1.5/Mon Jul 23 13:49:52 2007//T1.5 +/FindHSPELL.cmake/1.3/Mon Jul 23 13:49:52 2007//T1.3 +/FindITK.cmake/1.7/Thu Dec 15 15:41:19 2005//T1.7 +/FindImageMagick.cmake/1.4/Thu Dec 15 15:41:19 2005//T1.4 +/FindJPEG.cmake/1.14/Mon Jul 23 13:49:52 2007//T1.14 +/FindJasper.cmake/1.3/Mon Jul 23 13:49:52 2007//T1.3 +/FindJava.cmake/1.16/Thu Oct 12 17:12:37 2006//T1.16 +/FindKDE.cmake/1.3/Thu Mar 9 19:10:59 2006//T1.3 +/FindKDE3.cmake/1.10/Tue Jul 17 12:41:20 2007//T1.10 +/FindKDE4.cmake/1.10/Sun Aug 26 07:29:13 2007//T1.10 +/FindLAPACK.cmake/1.1/Wed Oct 10 21:47:36 2007//T1.1 +/FindLATEX.cmake/1.11/Thu Dec 15 15:41:19 2005//T1.11 +/FindLibXml2.cmake/1.4/Mon Jul 23 13:49:52 2007//T1.4 +/FindLibXslt.cmake/1.3/Mon Jul 23 13:49:52 2007//T1.3 +/FindMFC.cmake/1.5/Thu Dec 15 19:17:42 2005//T1.5 +/FindMPEG.cmake/1.7/Mon Jul 23 13:49:52 2007//T1.7 +/FindMPEG2.cmake/1.8/Mon Jul 23 13:49:52 2007//T1.8 +/FindMPI.cmake/1.14/Mon Aug 6 15:02:58 2007//T1.14 +/FindMatlab.cmake/1.3/Thu Dec 15 15:41:19 2005//T1.3 +/FindMotif.cmake/1.5/Mon Jul 23 13:49:52 2007//T1.5 +/FindOpenGL.cmake/1.40/Fri Aug 10 15:37:29 2007//T1.40 +/FindOpenSSL.cmake/1.1/Tue Sep 19 20:11:53 2006//T1.1 +/FindPHP4.cmake/1.6/Thu Jul 19 13:42:57 2007//T1.6 +/FindPNG.cmake/1.17/Mon Jul 23 13:49:52 2007//T1.17 +/FindPackageHandleStandardArgs.cmake/1.3/Tue Aug 7 02:08:59 2007//T1.3 +/FindPike.cmake/1.4/Thu Jul 19 13:00:51 2007//T1.4 +/FindPythonInterp.cmake/1.10/Thu Aug 30 17:35:54 2007//T1.10 +/FindQt.cmake/1.57/Wed Jan 25 17:16:49 2006//T1.57 +/FindQt3.cmake/1.16/Mon Jun 11 19:02:03 2007//T1.16 +/FindSelfPackers.cmake/1.4/Wed Dec 14 18:51:08 2005//T1.4 +/FindTIFF.cmake/1.11/Mon Jul 23 13:49:52 2007//T1.11 +/FindThreads.cmake/1.18/Mon Sep 24 13:53:41 2007//T1.18 +/FindUnixCommands.cmake/1.5/Wed Dec 14 18:51:08 2005//T1.5 +/FindVTK.cmake/1.28/Tue May 23 14:40:40 2006//T1.28 +/FindWget.cmake/1.9/Mon Jul 23 13:49:52 2007//T1.9 +/FindXMLRPC.cmake/1.2/Mon Dec 4 16:44:47 2006//T1.2 +/FindZLIB.cmake/1.11/Mon Jul 23 13:49:52 2007//T1.11 +/FindwxWindows.cmake/1.19/Fri Jul 21 19:43:17 2006//T1.19 +/ITKCompatibility.cmake/1.1/Thu Nov 16 20:28:16 2006//T1.1 +/InstallRequiredSystemLibraries.cmake/1.10/Fri Nov 9 17:18:06 2007//T1.10 +/KDE3Macros.cmake/1.8/Tue Jul 17 12:41:19 2007//T1.8 +/MacOSXBundleInfo.plist.in/1.2/Thu Apr 8 21:13:42 2004//T1.2 +/MacOSXFrameworkInfo.plist.in/1.1/Tue May 8 14:32:53 2007//T1.1 +/MacroAddFileDependencies.cmake/1.1/Fri Jun 16 18:45:47 2006//T1.1 +/NSIS.InstallOptions.ini.in/1.3/Tue Sep 18 19:16:21 2007//T1.3 +/NSIS.template.in/1.25/Mon Oct 29 12:11:44 2007//T1.25 +/SystemInformation.cmake/1.3/Fri Mar 2 15:57:20 2007//T1.3 +/SystemInformation.in/1.2/Tue Feb 27 14:43:34 2007//T1.2 +/TestBigEndian.cmake/1.16/Mon Aug 13 15:04:19 2007//T1.16 +/TestCXXAcceptsFlag.cmake/1.12/Wed Jun 14 16:28:29 2006//T1.12 +/TestEndianess.c.in/1.1/Fri Aug 10 17:14:00 2007//T1.1 +/TestForANSIStreamHeaders.cmake/1.11/Thu Dec 15 19:17:43 2005//T1.11 +/TestForANSIStreamHeaders.cxx/1.1/Thu Sep 12 15:14:50 2002//T1.1 +/TestForAnsiForScope.cxx/1.3/Fri May 16 20:33:11 2003//T1.3 +/TestForSSTREAM.cmake/1.3/Mon Oct 15 18:50:18 2007//T1.3 +/TestForSSTREAM.cxx/1.1/Tue Jan 17 15:21:44 2006//T1.1 +/TestForSTDNamespace.cmake/1.14/Wed Jun 14 16:28:29 2006//T1.14 +/TestForSTDNamespace.cxx/1.2/Fri Nov 8 20:46:08 2002//T1.2 +/UseEcos.cmake/1.9/Wed Feb 7 19:50:45 2007//T1.9 +/UsePkgConfig.cmake/1.6/Wed Mar 7 20:36:09 2007//T1.6 +/UseVTK40.cmake/1.3/Wed Dec 14 18:51:08 2005//T1.3 +/UseVTKBuildSettings40.cmake/1.2/Wed Dec 14 18:51:08 2005//T1.2 +/UseVTKConfig40.cmake/1.3/Wed Dec 14 18:51:08 2005//T1.3 +/Use_wxWindows.cmake/1.5/Fri Jul 21 19:43:17 2006//T1.5 +/UsewxWidgets.cmake/1.5/Thu Oct 19 14:07:41 2006//T1.5 +/ecos_clean.cmake/1.1/Wed Feb 7 19:50:45 2007//T1.1 +/kde3init_dummy.cpp.in/1.1/Thu Mar 9 19:10:59 2006//T1.1 +/kde3uic.cmake/1.3/Sun Aug 27 19:52:36 2006//T1.3 +D/Platform//// +/FindPerlLibs.cmake/1.8/Sun Dec 16 12:37:24 2007//T1.8 +/CTest.cmake/1.10/Tue Dec 25 11:32:58 2007//T1.10 +/TestForANSIForScope.cmake/1.15/Tue Dec 25 11:33:13 2007//T1.15 +/FindPkgConfig.cmake/1.6/Tue Dec 25 11:33:19 2007//T1.6 +/FindFreeType.cmake/1.1/Fri Dec 21 01:59:44 2007//T1.1 +/FindSDL_sound.cmake/1.7/Tue Dec 25 11:34:48 2007//T1.7 +/CPack.Info.plist.in/1.5/Mon Dec 31 08:23:16 2007//T1.5 +/CPack.cmake/1.35/Mon Dec 31 08:23:17 2007//T1.35 +/FindRuby.cmake/1.9/Fri Feb 1 16:15:17 2008//T1.9 +/UseSWIG.cmake/1.17/Fri Feb 1 16:15:37 2008//T1.17 +/CMakeDetermineFortranCompiler.cmake/1.19/Sat Feb 2 02:46:15 2008//T1.19 +/CMakeJavaCompiler.cmake.in/1.12/Sat Feb 2 02:46:21 2008//T1.12 +/CMakeFortranCompilerId.F90/1.4/Sat Feb 2 02:47:28 2008//T1.4 +/CMakeLists.txt/1.17/Sat Feb 2 02:47:30 2008//T1.17 +/FindSWIG.cmake/1.10/Sat Feb 2 02:47:37 2008//T1.10 +/FindBoost.cmake/1.4/Sat Feb 2 02:47:41 2008//T1.4 +/FindSubversion.cmake/1.2/Sat Feb 2 02:48:53 2008//T1.2 +/FindGDAL.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindLua50.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindLua51.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindOpenThreads.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindProducer.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindQuickTime.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/Findosg.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgDB.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgFX.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgGA.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgIntrospection.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgManipulator.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgParticle.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgProducer.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgShadow.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgSim.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgTerrain.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgText.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgUtil.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindosgViewer.cmake/1.2/Sat Feb 2 02:49:30 2008//T1.2 +/FindGIF.cmake/1.3/Sat Feb 2 02:49:31 2008//T1.3 +/FindFreetype.cmake/1.4/Sat Feb 2 02:49:32 2008//T1.4 +/FindSDL_image.cmake/1.7/Sat Feb 2 02:49:33 2008//T1.7 +/FindSDL_mixer.cmake/1.7/Sat Feb 2 02:49:33 2008//T1.7 +/FindSDL_net.cmake/1.7/Sat Feb 2 02:49:34 2008//T1.7 +/FindSDL_ttf.cmake/1.7/Sat Feb 2 02:49:34 2008//T1.7 +/FindPhysFS.cmake/1.8/Sat Feb 2 02:49:35 2008//T1.8 +/FindOpenAL.cmake/1.9/Sat Feb 2 02:49:36 2008//T1.9 +/FindSDL.cmake/1.14/Sat Feb 2 02:49:37 2008//T1.14 +/FindJNI.cmake/1.34/Sat Feb 2 02:49:46 2008//T1.34 +/CMakeGenericSystem.cmake/1.19/Sat Feb 2 02:50:38 2008//T1.19 +/FeatureSummary.cmake/1.3/Sat Feb 2 02:50:43 2008//T1.3 +/CPackDeb.cmake/1.8/Sat Feb 2 02:50:47 2008//T1.8 +/FindPythonLibs.cmake/1.41/Sat Feb 2 02:50:48 2008//T1.41 +/FindwxWidgets.cmake/1.18/Sat Feb 2 02:52:20 2008//T1.18 +/FindX11.cmake/1.31/Sat Feb 2 02:52:44 2008//T1.31 +/CMakeCCompilerABI.c/1.1/Mon Jan 21 23:30:17 2008//T1.1 +/CMakeCXXCompilerABI.cpp/1.1/Mon Jan 21 23:30:17 2008//T1.1 +/CMakeDetermineCompilerABI.cmake/1.1/Mon Jan 21 23:30:17 2008//T1.1 +/CMakeTestCXXCompiler.cmake/1.16/Sat Feb 2 02:53:13 2008//T1.16 +/CMakeCXXCompiler.cmake.in/1.19/Sat Feb 2 02:53:14 2008//T1.19 +/CMakeCCompiler.cmake.in/1.20/Sat Feb 2 02:53:15 2008//T1.20 +/CMakeTestCCompiler.cmake/1.22/Sat Feb 2 02:53:16 2008//T1.22 +/CMakeFindBinUtils.cmake/1.14/Sat Feb 2 02:53:21 2008//T1.14 +/CMakeDetermineCompilerId.cmake/1.17/Sat Feb 2 02:53:22 2008//T1.17 +/VTKCompatibility.cmake/1.9/Sat Feb 2 02:55:37 2008//T1.9 +/CMakeCompilerABI.h/1.3/Sat Feb 2 02:55:57 2008//T1.3 +/FindPerl.cmake/1.13/Sat Feb 2 02:56:33 2008//T1.13 +/FindTclStub.cmake/1.4/Sat Feb 2 02:56:41 2008//T1.4 +/FindWish.cmake/1.16/Sat Feb 2 02:56:42 2008//T1.16 +/FindTclsh.cmake/1.23/Sat Feb 2 02:56:43 2008//T1.23 +/FindTCL.cmake/1.53/Sat Feb 2 02:56:44 2008//T1.53 +/readme.txt/1.14/Sat Feb 2 02:58:37 2008//T1.14 +/FindHTMLHelp.cmake/1.6/Sat Feb 2 02:59:06 2008//T1.6 +/Dart.cmake/1.72/Sat Feb 2 03:01:31 2008//T1.72 +/CMakeFortranInformation.cmake/1.18/Sat Feb 2 03:02:27 2008//T1.18 +/CMakeCInformation.cmake/1.20/Sat Feb 2 03:02:29 2008//T1.20 +/CMakeCXXInformation.cmake/1.24/Sat Feb 2 03:02:31 2008//T1.24 +/UseQt4.cmake/1.13/Sat Feb 2 03:03:11 2008//T1.13 +/FindQt4.cmake/1.90/Sat Feb 2 03:03:19 2008//T1.90 diff --git a/CMakeLua/Modules/CVS/Repository b/CMakeLua/Modules/CVS/Repository new file mode 100644 index 0000000..a681b62 --- /dev/null +++ b/CMakeLua/Modules/CVS/Repository @@ -0,0 +1 @@ +CMake/Modules diff --git a/CMakeLua/Modules/CVS/Root b/CMakeLua/Modules/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Modules/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Modules/CVS/Tag b/CMakeLua/Modules/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Modules/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Modules/CVS/Template b/CMakeLua/Modules/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Modules/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Modules/CheckCCompilerFlag.cmake b/CMakeLua/Modules/CheckCCompilerFlag.cmake new file mode 100644 index 0000000..b084399 --- /dev/null +++ b/CMakeLua/Modules/CheckCCompilerFlag.cmake @@ -0,0 +1,21 @@ +# - Check whether the C compiler supports a given flag. +# CHECK_C_COMPILER_FLAG(FLAG VARIABLE) +# +# FLAG - the compiler flag +# VARIABLE - variable to store the result + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +INCLUDE(CheckCSourceCompiles) + +MACRO (CHECK_C_COMPILER_FLAG _FLAG _RESULT) + SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}") + SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}") + CHECK_C_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}) + SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}") +ENDMACRO (CHECK_C_COMPILER_FLAG) + diff --git a/CMakeLua/Modules/CheckCSourceCompiles.cmake b/CMakeLua/Modules/CheckCSourceCompiles.cmake new file mode 100755 index 0000000..46f8605 --- /dev/null +++ b/CMakeLua/Modules/CheckCSourceCompiles.cmake @@ -0,0 +1,60 @@ +# - Check if the source code provided in the SOURCE argument compiles. +# CHECK_C_SOURCE_COMPILES(SOURCE VAR) +# - macro which checks if the source code compiles +# SOURCE - source code to try to compile +# VAR - variable to store whether the source code compiled +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_C_SOURCE_COMPILES SOURCE VAR) + IF("${VAR}" MATCHES "^${VAR}$") + SET(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" + "${SOURCE}\n") + + MESSAGE(STATUS "Performing Test ${VAR}") + TRY_COMPILE(${VAR} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}" + "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VAR}) + SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}") + MESSAGE(STATUS "Performing Test ${VAR} - Success") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n" + "${OUTPUT}\n" + "Source file was:\n${SOURCE}\n") + ELSE(${VAR}) + MESSAGE(STATUS "Performing Test ${VAR} - Failed") + SET(${VAR} "" CACHE INTERNAL "Test ${VAR}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Performing C SOURCE FILE Test ${VAR} failed with the following output:\n" + "${OUTPUT}\n" + "Source file was:\n${SOURCE}\n") + ENDIF(${VAR}) + ENDIF("${VAR}" MATCHES "^${VAR}$") +ENDMACRO(CHECK_C_SOURCE_COMPILES) + diff --git a/CMakeLua/Modules/CheckCSourceRuns.cmake b/CMakeLua/Modules/CheckCSourceRuns.cmake new file mode 100755 index 0000000..c5455ae --- /dev/null +++ b/CMakeLua/Modules/CheckCSourceRuns.cmake @@ -0,0 +1,74 @@ +# - Check if the source code provided in the SOURCE argument compiles and runs. +# CHECK_C_SOURCE_RUNS(SOURCE VAR) +# - macro which checks if the source code runs +# SOURCE - source code to try to compile +# VAR - variable to store the result, 1 for success, empty for failure +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_C_SOURCE_RUNS SOURCE VAR) + IF("${VAR}" MATCHES "^${VAR}$") + SET(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" + "${SOURCE}\n") + + MESSAGE(STATUS "Performing Test ${VAR}") + TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH} + "${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}" + "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}" + COMPILE_OUTPUT_VARIABLE OUTPUT) + # if it did not compile make the return value fail code of 1 + IF(NOT ${VAR}_COMPILED) + SET(${VAR}_EXITCODE 1) + ENDIF(NOT ${VAR}_COMPILED) + # if the return value was 0 then it worked + IF("${${VAR}_EXITCODE}" EQUAL 0) + SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}") + MESSAGE(STATUS "Performing Test ${VAR} - Success") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n" + "${OUTPUT}\n" + "Return value: ${${VAR}}\n" + "Source file was:\n${SOURCE}\n") + ELSE("${${VAR}_EXITCODE}" EQUAL 0) + IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + SET(${VAR} "${${VAR}_EXITCODE}") + ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + SET(${VAR} "" CACHE INTERNAL "Test ${VAR}") + ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + + MESSAGE(STATUS "Performing Test ${VAR} - Failed") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Performing C SOURCE FILE Test ${VAR} failed with the following output:\n" + "${OUTPUT}\n" + "Return value: ${${VAR}_EXITCODE}\n" + "Source file was:\n${SOURCE}\n") + + ENDIF("${${VAR}_EXITCODE}" EQUAL 0) + ENDIF("${VAR}" MATCHES "^${VAR}$") +ENDMACRO(CHECK_C_SOURCE_RUNS) + diff --git a/CMakeLua/Modules/CheckCXXCompilerFlag.cmake b/CMakeLua/Modules/CheckCXXCompilerFlag.cmake new file mode 100644 index 0000000..43ea9a6 --- /dev/null +++ b/CMakeLua/Modules/CheckCXXCompilerFlag.cmake @@ -0,0 +1,21 @@ +# - Check whether the CXX compiler supports a given flag. +# CHECK_CXX_COMPILER_FLAG(FLAG VARIABLE) +# +# FLAG - the compiler flag +# VARIABLE - variable to store the result + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +INCLUDE(CheckCXXSourceCompiles) + +MACRO (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT) + SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}") + SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}") + CHECK_CXX_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}) + SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}") +ENDMACRO (CHECK_CXX_COMPILER_FLAG) + diff --git a/CMakeLua/Modules/CheckCXXSourceCompiles.cmake b/CMakeLua/Modules/CheckCXXSourceCompiles.cmake new file mode 100755 index 0000000..e5c3ecc --- /dev/null +++ b/CMakeLua/Modules/CheckCXXSourceCompiles.cmake @@ -0,0 +1,60 @@ +# - Check if the source code provided in the SOURCE argument compiles. +# CHECK_CXX_SOURCE_COMPILES(SOURCE VAR) +# - macro which checks if the source code compiles +# SOURCE - source code to try to compile +# VAR - variable to store whether the source code compiled +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_CXX_SOURCE_COMPILES SOURCE VAR) + IF("${VAR}" MATCHES "^${VAR}$") + SET(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" + "${SOURCE}\n") + + MESSAGE(STATUS "Performing Test ${VAR}") + TRY_COMPILE(${VAR} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES}" + "${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VAR}) + SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}") + MESSAGE(STATUS "Performing Test ${VAR} - Success") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Performing C++ SOURCE FILE Test ${VAR} succeded with the following output:\n" + "${OUTPUT}\n" + "Source file was:\n${SOURCE}\n") + ELSE(${VAR}) + MESSAGE(STATUS "Performing Test ${VAR} - Failed") + SET(${VAR} "" CACHE INTERNAL "Test ${VAR}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n" + "${OUTPUT}\n" + "Source file was:\n${SOURCE}\n") + ENDIF(${VAR}) + ENDIF("${VAR}" MATCHES "^${VAR}$") +ENDMACRO(CHECK_CXX_SOURCE_COMPILES) + diff --git a/CMakeLua/Modules/CheckCXXSourceRuns.cmake b/CMakeLua/Modules/CheckCXXSourceRuns.cmake new file mode 100755 index 0000000..b0c9ba5 --- /dev/null +++ b/CMakeLua/Modules/CheckCXXSourceRuns.cmake @@ -0,0 +1,74 @@ +# - Check if the source code provided in the SOURCE argument compiles and runs. +# CHECK_CXX_SOURCE_RUNS(SOURCE VAR) +# - macro which checks if the source code compiles +# SOURCE - source code to try to compile +# VAR - variable to store the result, 1 for success, empty for failure +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_CXX_SOURCE_RUNS SOURCE VAR) + IF("${VAR}" MATCHES "^${VAR}$") + SET(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" + "${SOURCE}\n") + + MESSAGE(STATUS "Performing Test ${VAR}") + TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH} + "${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES}" + "${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}" + COMPILE_OUTPUT_VARIABLE OUTPUT) + + # if it did not compile make the return value fail code of 1 + IF(NOT ${VAR}_COMPILED) + SET(${VAR}_EXITCODE 1) + ENDIF(NOT ${VAR}_COMPILED) + # if the return value was 0 then it worked + IF("${${VAR}_EXITCODE}" EQUAL 0) + SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}") + MESSAGE(STATUS "Performing Test ${VAR} - Success") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Performing C++ SOURCE FILE Test ${VAR} succeded with the following output:\n" + "${OUTPUT}\n" + "Return value: ${${VAR}}\n" + "Source file was:\n${SOURCE}\n") + ELSE("${${VAR}_EXITCODE}" EQUAL 0) + IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + SET(${VAR} "${${VAR}_EXITCODE}") + ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + SET(${VAR} "" CACHE INTERNAL "Test ${VAR}") + ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + + MESSAGE(STATUS "Performing Test ${VAR} - Failed") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n" + "${OUTPUT}\n" + "Return value: ${${VAR}_EXITCODE}\n" + "Source file was:\n${SOURCE}\n") + ENDIF("${${VAR}_EXITCODE}" EQUAL 0) + ENDIF("${VAR}" MATCHES "^${VAR}$") +ENDMACRO(CHECK_CXX_SOURCE_RUNS) + diff --git a/CMakeLua/Modules/CheckForPthreads.c b/CMakeLua/Modules/CheckForPthreads.c new file mode 100644 index 0000000..a846567 --- /dev/null +++ b/CMakeLua/Modules/CheckForPthreads.c @@ -0,0 +1,38 @@ +#include +#include +#include + +void* runner(void*); + +int res = 0; +#ifdef __CLASSIC_C__ +int main(){ + int ac; + char*av[]; +#else +int main(int ac, char*av[]){ +#endif + pthread_t tid[2]; + pthread_create(&tid[0], 0, runner, (void*)1); + pthread_create(&tid[1], 0, runner, (void*)2); + +#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.) + usleep(1); // for strange behavior on single-processor sun +#endif + + pthread_join(tid[0], 0); + pthread_join(tid[1], 0); + if(ac > 1000){return *av[0];} + return res; +} + +void* runner(void* args) +{ + int cc; + for ( cc = 0; cc < 10; cc ++ ) + { + printf("%d CC: %d\n", (int)args, cc); + } + res ++; + return 0; +} diff --git a/CMakeLua/Modules/CheckFortranFunctionExists.cmake b/CMakeLua/Modules/CheckFortranFunctionExists.cmake new file mode 100644 index 0000000..4106a06 --- /dev/null +++ b/CMakeLua/Modules/CheckFortranFunctionExists.cmake @@ -0,0 +1,50 @@ +# - Check if the Fortran function exists. +# CHECK_FORTRAN_FUNCTION_EXISTS(FUNCTION VARIABLE) +# - macro which checks if the Fortran function exists +# FUNCTION - the name of the Fortran function +# VARIABLE - variable to store the result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link +# + +macro(CHECK_FORTRAN_FUNCTION_EXISTS FUNCTION VARIABLE) + if(NOT DEFINED ${VARIABLE}) + message(STATUS "Looking for Fortran ${FUNCTION}") + if(CMAKE_REQUIRED_LIBRARIES) + set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + else(CMAKE_REQUIRED_LIBRARIES) + set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES) + endif(CMAKE_REQUIRED_LIBRARIES) + FILE(WRITE + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f + " + program TESTFortran + external ${FUNCTION} + end + " + ) + try_compile(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f + CMAKE_FLAGS "${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT + ) + if(${VARIABLE}) + set(${VARIABLE} 1 CACHE INTERNAL "Have Fortran function ${FUNCTION}") + message(STATUS "Looking for Fortran ${FUNCTION} - found") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the Fortran ${FUNCTION} exists passed with the following output:\n" + "${OUTPUT}\n\n") + else(${VARIABLE}) + message(STATUS "Looking for Fortran ${FUNCTION} - not found") + set(${VARIABLE} "" CACHE INTERNAL "Have Fortran function ${FUNCTION}") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the Fortran ${FUNCTION} exists failed with the following output:\n" + "${OUTPUT}\n\n") + endif(${VARIABLE}) + endif(NOT DEFINED ${VARIABLE}) +endmacro(CHECK_FORTRAN_FUNCTION_EXISTS) diff --git a/CMakeLua/Modules/CheckFunctionExists.c b/CMakeLua/Modules/CheckFunctionExists.c new file mode 100644 index 0000000..607b3e8 --- /dev/null +++ b/CMakeLua/Modules/CheckFunctionExists.c @@ -0,0 +1,23 @@ +#ifdef CHECK_FUNCTION_EXISTS + +char CHECK_FUNCTION_EXISTS(); +#ifdef __CLASSIC_C__ +int main(){ + int ac; + char*av[]; +#else +int main(int ac, char*av[]){ +#endif + CHECK_FUNCTION_EXISTS(); + if(ac > 1000) + { + return *av[0]; + } + return 0; +} + +#else /* CHECK_FUNCTION_EXISTS */ + +# error "CHECK_FUNCTION_EXISTS has to specify the function" + +#endif /* CHECK_FUNCTION_EXISTS */ diff --git a/CMakeLua/Modules/CheckFunctionExists.cmake b/CMakeLua/Modules/CheckFunctionExists.cmake new file mode 100644 index 0000000..e319a81 --- /dev/null +++ b/CMakeLua/Modules/CheckFunctionExists.cmake @@ -0,0 +1,54 @@ +# - Check if the function exists. +# CHECK_FUNCTION_EXISTS(FUNCTION VARIABLE) +# - macro which checks if the function exists +# FUNCTION - the name of the function +# VARIABLE - variable to store the result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(MACRO_CHECK_FUNCTION_DEFINITIONS + "-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}") + MESSAGE(STATUS "Looking for ${FUNCTION}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_FUNCTION_EXISTS_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_FUNCTION_EXISTS_ADD_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/CheckFunctionExists.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}" + "${CHECK_FUNCTION_EXISTS_ADD_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + SET(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION}") + MESSAGE(STATUS "Looking for ${FUNCTION} - found") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the function ${FUNCTION} exists passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${FUNCTION} - not found") + SET(${VARIABLE} "" CACHE INTERNAL "Have function ${FUNCTION}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the function ${FUNCTION} exists failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_FUNCTION_EXISTS) diff --git a/CMakeLua/Modules/CheckIncludeFile.c.in b/CMakeLua/Modules/CheckIncludeFile.c.in new file mode 100644 index 0000000..ddfbee8 --- /dev/null +++ b/CMakeLua/Modules/CheckIncludeFile.c.in @@ -0,0 +1,13 @@ +#include <${CHECK_INCLUDE_FILE_VAR}> + +#ifdef __CLASSIC_C__ +int main() +{ + return 0; +} +#else +int main(void) +{ + return 0; +} +#endif diff --git a/CMakeLua/Modules/CheckIncludeFile.cmake b/CMakeLua/Modules/CheckIncludeFile.cmake new file mode 100644 index 0000000..cfb6921 --- /dev/null +++ b/CMakeLua/Modules/CheckIncludeFile.cmake @@ -0,0 +1,63 @@ +# - Check if the include file exists. +# CHECK_INCLUDE_FILE(INCLUDE VARIABLE) +# - macro which checks the include file exists. +# INCLUDE - name of include file +# VARIABLE - variable to return result +# +# an optional third argument is the CFlags to add to the compile line +# or you can use CMAKE_REQUIRED_FLAGS +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# +MACRO(CHECK_INCLUDE_FILE INCLUDE VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS) + ENDIF(CMAKE_REQUIRED_INCLUDES) + SET(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS}) + SET(CHECK_INCLUDE_FILE_VAR ${INCLUDE}) + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.c.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.c IMMEDIATE) + MESSAGE(STATUS "Looking for ${INCLUDE}") + IF(${ARGC} EQUAL 3) + SET(CMAKE_C_FLAGS_SAVE ${CMAKE_C_FLAGS}) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARGV2}") + ENDIF(${ARGC} EQUAL 3) + + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS} + "${CHECK_INCLUDE_FILE_C_INCLUDE_DIRS}" + OUTPUT_VARIABLE OUTPUT) + + IF(${ARGC} EQUAL 3) + SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_SAVE}) + ENDIF(${ARGC} EQUAL 3) + + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for ${INCLUDE} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the include file ${INCLUDE} " + "exists passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${INCLUDE} - not found") + SET(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the include file ${INCLUDE} " + "exists failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_INCLUDE_FILE) diff --git a/CMakeLua/Modules/CheckIncludeFile.cxx.in b/CMakeLua/Modules/CheckIncludeFile.cxx.in new file mode 100644 index 0000000..40441f1 --- /dev/null +++ b/CMakeLua/Modules/CheckIncludeFile.cxx.in @@ -0,0 +1,6 @@ +#include <${CHECK_INCLUDE_FILE_VAR}> + +int main() +{ + return 0; +} diff --git a/CMakeLua/Modules/CheckIncludeFileCXX.cmake b/CMakeLua/Modules/CheckIncludeFileCXX.cmake new file mode 100644 index 0000000..548515b --- /dev/null +++ b/CMakeLua/Modules/CheckIncludeFileCXX.cmake @@ -0,0 +1,63 @@ +# - Check if the include file exists. +# CHECK_INCLUDE_FILE_CXX(INCLUDE VARIABLE) +# +# INCLUDE - name of include file +# VARIABLE - variable to return result +# +# An optional third argument is the CFlags to add to the compile line +# or you can use CMAKE_REQUIRED_FLAGS. +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# +MACRO(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS) + ENDIF(CMAKE_REQUIRED_INCLUDES) + SET(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS}) + SET(CHECK_INCLUDE_FILE_VAR ${INCLUDE}) + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx IMMEDIATE) + MESSAGE(STATUS "Looking for C++ include ${INCLUDE}") + IF(${ARGC} EQUAL 3) + SET(CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS}) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARGV2}") + ENDIF(${ARGC} EQUAL 3) + + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS} + "${CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS}" + OUTPUT_VARIABLE OUTPUT) + + IF(${ARGC} EQUAL 3) + SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_SAVE}) + ENDIF(${ARGC} EQUAL 3) + + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for C++ include ${INCLUDE} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the include file ${INCLUDE} " + "exists passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for C++ include ${INCLUDE} - not found") + SET(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the include file ${INCLUDE} " + "exists failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_INCLUDE_FILE_CXX) diff --git a/CMakeLua/Modules/CheckIncludeFiles.cmake b/CMakeLua/Modules/CheckIncludeFiles.cmake new file mode 100644 index 0000000..5739afe --- /dev/null +++ b/CMakeLua/Modules/CheckIncludeFiles.cmake @@ -0,0 +1,59 @@ +# - Check if the files can be included +# +# CHECK_INCLUDE_FILES(INCLUDE VARIABLE) +# +# INCLUDE - list of files to include +# VARIABLE - variable to return result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories + +MACRO(CHECK_INCLUDE_FILES INCLUDE VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n") + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_INCLUDE_FILES_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_INCLUDE_FILES_INCLUDE_DIRS) + ENDIF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_INCLUDE_FILES_CONTENT "/* */\n") + SET(MACRO_CHECK_INCLUDE_FILES_FLAGS ${CMAKE_REQUIRED_FLAGS}) + FOREACH(FILE ${INCLUDE}) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}#include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n\nint main(){return 0;}\n") + CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.c" @ONLY IMMEDIATE) + + MESSAGE(STATUS "Looking for include files ${VARIABLE}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILES_FLAGS} + "${CHECK_INCLUDE_FILES_INCLUDE_DIRS}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for include files ${VARIABLE} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${VARIABLE}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if files ${INCLUDE} " + "exist passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for include files ${VARIABLE} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have includes ${VARIABLE}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if files ${INCLUDE} " + "exist failed with the following output:\n" + "${OUTPUT}\nSource:\n${CMAKE_CONFIGURABLE_FILE_CONTENT}\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_INCLUDE_FILES) diff --git a/CMakeLua/Modules/CheckLibraryExists.cmake b/CMakeLua/Modules/CheckLibraryExists.cmake new file mode 100644 index 0000000..1e8a6bf --- /dev/null +++ b/CMakeLua/Modules/CheckLibraryExists.cmake @@ -0,0 +1,52 @@ +# - Check if the function exists. +# CHECK_LIBRARY_EXISTS (LIBRARY FUNCTION LOCATION VARIABLE) +# +# LIBRARY - the name of the library you are looking for +# FUNCTION - the name of the function +# LOCATION - location where the library should be found +# VARIABLE - variable to store the result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(MACRO_CHECK_LIBRARY_EXISTS_DEFINITION + "-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}") + MESSAGE(STATUS "Looking for ${FUNCTION} in ${LIBRARY}") + SET(CHECK_LIBRARY_EXISTS_LIBRARIES ${LIBRARY}) + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_LIBRARY_EXISTS_LIBRARIES + ${CHECK_LIBRARY_EXISTS_LIBRARIES} ${CMAKE_REQUIRED_LIBRARIES}) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/CheckFunctionExists.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_LIBRARY_EXISTS_DEFINITION} + -DLINK_DIRECTORIES:STRING=${LOCATION} + "-DLINK_LIBRARIES:STRING=${CHECK_LIBRARY_EXISTS_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT) + + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for ${FUNCTION} in ${LIBRARY} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have library ${LIBRARY}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the function ${FUNCTION} exists in the ${LIBRARY} " + "passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${FUNCTION} in ${LIBRARY} - not found") + SET(${VARIABLE} "" CACHE INTERNAL "Have library ${LIBRARY}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the function ${FUNCTION} exists in the ${LIBRARY} " + "failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_LIBRARY_EXISTS) diff --git a/CMakeLua/Modules/CheckLibraryExists.lists.in b/CMakeLua/Modules/CheckLibraryExists.lists.in new file mode 100644 index 0000000..741b87d --- /dev/null +++ b/CMakeLua/Modules/CheckLibraryExists.lists.in @@ -0,0 +1,8 @@ +PROJECT(CHECK_LIBRARY_EXISTS) + + +ADD_DEFINITIONS(-DCHECK_FUNCTION_EXISTS=${CHECK_LIBRARY_EXISTS_FUNCTION}) +LINK_DIRECTORIES(${CHECK_LIBRARY_EXISTS_LOCATION}) +ADD_EXECUTABLE(CheckLibraryExists ${CHECK_LIBRARY_EXISTS_SOURCE}) +TARGET_LINK_LIBRARIES(CheckLibraryExists ${CHECK_LIBRARY_EXISTS_LIBRARY}) + diff --git a/CMakeLua/Modules/CheckSizeOf.cmake b/CMakeLua/Modules/CheckSizeOf.cmake new file mode 100644 index 0000000..3820d4c --- /dev/null +++ b/CMakeLua/Modules/CheckSizeOf.cmake @@ -0,0 +1,4 @@ +MESSAGE(SEND_ERROR + "Modules/CheckSizeOf.cmake has been removed. " + "Use Modules/CheckTypeSize.cmake instead. This " + "compatability check may be removed before the next release!") diff --git a/CMakeLua/Modules/CheckStructHasMember.cmake b/CMakeLua/Modules/CheckStructHasMember.cmake new file mode 100644 index 0000000..f8a7d32 --- /dev/null +++ b/CMakeLua/Modules/CheckStructHasMember.cmake @@ -0,0 +1,39 @@ +# - Check if the given struct or class has the specified member variable +# CHECK_STRUCT_HAS_MEMBER (STRUCT MEMBER HEADER VARIABLE) +# +# STRUCT - the name of the struct or class you are interested in +# MEMBER - the member which existence you want to check +# HEADER - the header(s) where the prototype should be declared +# VARIABLE - variable to store the result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# +# Example: CHECK_STRUCT_HAS_MEMBER("struct timeval" tv_sec sys/select.h HAVE_TIMEVAL_TV_SEC) + + +INCLUDE(CheckCSourceCompiles) + +MACRO (CHECK_STRUCT_HAS_MEMBER _STRUCT _MEMBER _HEADER _RESULT) + SET(_INCLUDE_FILES) + FOREACH (it ${_HEADER}) + SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n") + ENDFOREACH (it) + + SET(_CHECK_STRUCT_MEMBER_SOURCE_CODE " +${_INCLUDE_FILES} +int main() +{ + ${_STRUCT}* tmp; + tmp->${_MEMBER}; + return 0; +} +") + CHECK_C_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT}) + +ENDMACRO (CHECK_STRUCT_HAS_MEMBER) + diff --git a/CMakeLua/Modules/CheckSymbolExists.cmake b/CMakeLua/Modules/CheckSymbolExists.cmake new file mode 100755 index 0000000..99b8918 --- /dev/null +++ b/CMakeLua/Modules/CheckSymbolExists.cmake @@ -0,0 +1,70 @@ +# - Check if the symbol exists in include files +# CHECK_SYMBOL_EXISTS(SYMBOL FILES VARIABLE) +# +# SYMBOL - symbol +# FILES - include files to check +# VARIABLE - variable to return result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n") + SET(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS}) + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_SYMBOL_EXISTS_LIBS + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_SYMBOL_EXISTS_LIBS) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CMAKE_SYMBOL_EXISTS_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CMAKE_SYMBOL_EXISTS_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + FOREACH(FILE ${FILES}) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}#include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\nvoid cmakeRequireSymbol(int dummy,...){(void)dummy;}\nint main()\n{\n#ifndef ${SYMBOL}\n cmakeRequireSymbol(0,&${SYMBOL});\n#endif\n return 0;\n}\n") + + CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c" @ONLY) + + MESSAGE(STATUS "Looking for ${SYMBOL}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS} + "${CHECK_SYMBOL_EXISTS_LIBS}" + "${CMAKE_SYMBOL_EXISTS_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the ${SYMBOL} " + "exist passed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c:\n" + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the ${SYMBOL} " + "exist failed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c:\n" + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_SYMBOL_EXISTS) diff --git a/CMakeLua/Modules/CheckTypeSize.cmake b/CMakeLua/Modules/CheckTypeSize.cmake new file mode 100644 index 0000000..0e7e364 --- /dev/null +++ b/CMakeLua/Modules/CheckTypeSize.cmake @@ -0,0 +1,86 @@ +# - Check sizeof a type +# CHECK_TYPE_SIZE(TYPE VARIABLE) +# Check if the type exists and determine size of type. if the type +# exists, the size will be stored to the variable. +# VARIABLE - variable to store size if the type exists. +# HAVE_${VARIABLE} - does the variable exists or not +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_TYPE_SIZE TYPE VARIABLE) + IF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") + MESSAGE(STATUS "Check size of ${TYPE}") + SET(CHECK_TYPE_SIZE_TYPE "${TYPE}") + SET(MACRO_CHECK_TYPE_SIZE_FLAGS + "${CMAKE_REQUIRED_FLAGS}") + FOREACH(def HAVE_SYS_TYPES_H HAVE_STDINT_H HAVE_STDDEF_H) + IF("${def}") + SET(MACRO_CHECK_TYPE_SIZE_FLAGS + "${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}") + ENDIF("${def}") + ENDFOREACH(def) + SET(CHECK_TYPE_SIZE_PREINCLUDE) + SET(CHECK_TYPE_SIZE_PREMAIN) + SET(CHECK_TYPE_SIZE_ADD_LIBRARIES) + SET(CHECK_TYPE_SIZE_ADD_INCLUDES) + + FOREACH(def ${CMAKE_EXTRA_INCLUDE_FILES}) + SET(CHECK_TYPE_SIZE_PREMAIN "${CHECK_TYPE_SIZE_PREMAIN}#include \"${def}\"\n") + ENDFOREACH(def) + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_TYPE_SIZE_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CHECK_TYPE_SIZE_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ENDIF(CMAKE_REQUIRED_INCLUDES) + + CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CheckTypeSizeC.c.in" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSizeC.c" IMMEDIATE @ONLY) + FILE(READ "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSizeC.c" + CHECK_TYPE_SIZE_FILE_CONTENT) + TRY_COMPILE(HAVE_${VARIABLE} + ${CMAKE_BINARY_DIR} + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSizeC.c" + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS} + "${CHECK_TYPE_SIZE_ADD_LIBRARIES}" + "${CHECK_TYPE_SIZE_ADD_INCLUDES}" + OUTPUT_VARIABLE OUTPUT + COPY_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize.bin" ) + + IF(HAVE_${VARIABLE}) + FILE(STRINGS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize.bin" + CMAKE_CHECKTYPESIZE_STRINGS LIMIT_COUNT 2 REGEX "INFO:sizeof") + + SET(CMAKE_CHECKTYPESIZE_FIRST_RESULT "FIRST_LOOP") + FOREACH(info ${CMAKE_CHECKTYPESIZE_STRINGS}) + IF("${info}" MATCHES ".*INFO:sizeof\\[0*([^]]*)\\].*") + STRING(REGEX REPLACE ".*INFO:sizeof\\[0*([^]]*)\\].*" "\\1" ${VARIABLE} "${info}") + ENDIF("${info}" MATCHES ".*INFO:sizeof\\[0*([^]]*)\\].*") + IF("${CMAKE_CHECKTYPESIZE_FIRST_RESULT}" STREQUAL "FIRST_LOOP") + SET(CMAKE_CHECKTYPESIZE_FIRST_RESULT "${${VARIABLE}}") + ENDIF("${CMAKE_CHECKTYPESIZE_FIRST_RESULT}" STREQUAL "FIRST_LOOP") + IF(NOT "${CMAKE_CHECKTYPESIZE_FIRST_RESULT}" STREQUAL "${${VARIABLE}}") + MESSAGE(SEND_ERROR "CHECK_TYPE_SIZE found different results, consider setting CMAKE_OSX_ARCHITECTURES or CMAKE_TRY_COMPILE_OSX_ARCHITECTURES to one or no architecture !") + ENDIF(NOT "${CMAKE_CHECKTYPESIZE_FIRST_RESULT}" STREQUAL "${${VARIABLE}}") + + ENDFOREACH(info ${CMAKE_CHECKTYPESIZE_STRINGS}) + MESSAGE(STATUS "Check size of ${TYPE} - done") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n") + ELSE(HAVE_${VARIABLE}) + MESSAGE(STATUS "Check size of ${TYPE} - failed") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\nCheckTypeSizeC.c:\n${CHECK_TYPE_SIZE_FILE_CONTENT}\n\n") + SET(${VARIABLE}) + ENDIF(HAVE_${VARIABLE}) + SET(${VARIABLE} "${${VARIABLE}}" CACHE INTERNAL "Result of CHECK_TYPE_SIZE" FORCE) + ENDIF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") +ENDMACRO(CHECK_TYPE_SIZE) diff --git a/CMakeLua/Modules/CheckTypeSizeC.c.in b/CMakeLua/Modules/CheckTypeSizeC.c.in new file mode 100644 index 0000000..c25b69d --- /dev/null +++ b/CMakeLua/Modules/CheckTypeSizeC.c.in @@ -0,0 +1,47 @@ +#cmakedefine CHECK_TYPE_SIZE_TYPE @CHECK_TYPE_SIZE_TYPE@ +#ifdef CHECK_TYPE_SIZE_TYPE + +@CHECK_TYPE_SIZE_PREINCLUDE@ +#ifdef HAVE_SYS_TYPES_H +# include +#endif /* HAVE_SYS_TYPES_H */ + +#ifdef HAVE_STDINT_H +# include +#endif /* HAVE_STDINT_H */ + +#ifdef HAVE_STDDEF_H +# include +#endif /* HAVE_STDDEF_H */ + +@CHECK_TYPE_SIZE_PREMAIN@ + +#ifdef __CLASSIC_C__ +# define const +#endif + +#define SIZE (sizeof(@CHECK_TYPE_SIZE_TYPE@)) +const char info_sizeof[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','o','f','[', + ('0' + ((SIZE / 10000)%10)), + ('0' + ((SIZE / 1000)%10)), + ('0' + ((SIZE / 100)%10)), + ('0' + ((SIZE / 10)%10)), + ('0' + (SIZE % 10)), + ']','\0'}; + + +#ifdef __CLASSIC_C__ +int main(){ + int ac; + char*av[]; +#else +int main(int ac, char*av[]){ +#endif + return (&info_sizeof[0] != &info_sizeof[0]); +} + +#else /* CHECK_TYPE_SIZE_TYPE */ + +# error "CHECK_TYPE_SIZE_TYPE has to specify the type" + +#endif /* CHECK_TYPE_SIZE_TYPE */ diff --git a/CMakeLua/Modules/CheckVariableExists.c b/CMakeLua/Modules/CheckVariableExists.c new file mode 100644 index 0000000..752f6e4 --- /dev/null +++ b/CMakeLua/Modules/CheckVariableExists.c @@ -0,0 +1,20 @@ +#ifdef CHECK_VARIABLE_EXISTS + +extern int CHECK_VARIABLE_EXISTS; + +#ifdef __CLASSIC_C__ +int main(){ + int ac; + char*av[]; +#else +int main(int ac, char*av[]){ +#endif + if(ac > 1000){return *av[0];} + return CHECK_VARIABLE_EXISTS; +} + +#else /* CHECK_VARIABLE_EXISTS */ + +# error "CHECK_VARIABLE_EXISTS has to specify the variable" + +#endif /* CHECK_VARIABLE_EXISTS */ diff --git a/CMakeLua/Modules/CheckVariableExists.cmake b/CMakeLua/Modules/CheckVariableExists.cmake new file mode 100644 index 0000000..a6cdc01 --- /dev/null +++ b/CMakeLua/Modules/CheckVariableExists.cmake @@ -0,0 +1,48 @@ +# - Check if the variable exists. +# CHECK_VARIABLE_EXISTS(VAR VARIABLE) +# +# VAR - the name of the variable +# VARIABLE - variable to store the result +# +# This macro is only for C variables. +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_VARIABLE_EXISTS VAR VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(MACRO_CHECK_VARIABLE_DEFINITIONS + "-DCHECK_VARIABLE_EXISTS=${VAR} ${CMAKE_REQUIRED_FLAGS}") + MESSAGE(STATUS "Looking for ${VAR}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_VARIABLE_EXISTS_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_VARIABLE_EXISTS_ADD_LIBRARIES) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/CheckVariableExists.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_VARIABLE_DEFINITIONS} + "${CHECK_VARIABLE_EXISTS_ADD_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + SET(${VARIABLE} 1 CACHE INTERNAL "Have variable ${VAR}") + MESSAGE(STATUS "Looking for ${VAR} - found") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the variable ${VAR} exists passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(${VARIABLE}) + SET(${VARIABLE} "" CACHE INTERNAL "Have variable ${VAR}") + MESSAGE(STATUS "Looking for ${VAR} - not found") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the variable ${VAR} exists failed with the following output:\n" + "${OUTPUT}\n\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_VARIABLE_EXISTS) diff --git a/CMakeLua/Modules/Dart.cmake b/CMakeLua/Modules/Dart.cmake new file mode 100644 index 0000000..a20deae --- /dev/null +++ b/CMakeLua/Modules/Dart.cmake @@ -0,0 +1,110 @@ +# - Configure a project for testing with CTest or old Dart Tcl Client +# This file is the backwards-compatibility version of the CTest module. +# It supports using the old Dart 1 Tcl client for driving dashboard +# submissions as well as testing with CTest. This module should be included +# in the CMakeLists.txt file at the top of a project. Typical usage: +# INCLUDE(Dart) +# IF(BUILD_TESTING) +# # ... testing related CMake code ... +# ENDIF(BUILD_TESTING) +# The BUILD_TESTING option is created by the Dart module to determine +# whether testing support should be enabled. The default is ON. + +# This file configures a project to use the Dart testing/dashboard process. +# It is broken into 3 sections. +# +# Section #1: Locate programs on the client and determine site and build name +# Section #2: Configure or copy Tcl scripts from the source tree to build tree +# Section #3: Custom targets for performing dashboard builds. +# +# +OPTION(BUILD_TESTING "Build the testing tree." ON) + +IF(BUILD_TESTING) + FIND_PACKAGE(Dart QUIET) + + # + # Section #1: + # + # CMake commands that will not vary from project to project. Locates programs + # on the client and configure site name and build name. + # + + SET(RUN_FROM_DART 1) + INCLUDE(CTest) + SET(RUN_FROM_DART) + + FIND_PROGRAM(COMPRESSIONCOMMAND NAMES gzip compress zip + DOC "Path to program used to compress files for transfer to the dart server") + FIND_PROGRAM(GUNZIPCOMMAND gunzip DOC "Path to gunzip executable") + FIND_PROGRAM(JAVACOMMAND java DOC "Path to java command, used by the Dart server to create html.") + OPTION(DART_VERBOSE_BUILD "Show the actual output of the build, or if off show a . for each 1024 bytes." + OFF) + OPTION(DART_BUILD_ERROR_REPORT_LIMIT "Limit of reported errors, -1 reports all." -1 ) + OPTION(DART_BUILD_WARNING_REPORT_LIMIT "Limit of reported warnings, -1 reports all." -1 ) + + SET(VERBOSE_BUILD ${DART_VERBOSE_BUILD}) + SET(BUILD_ERROR_REPORT_LIMIT ${DART_BUILD_ERROR_REPORT_LIMIT}) + SET(BUILD_WARNING_REPORT_LIMIT ${DART_BUILD_WARNING_REPORT_LIMIT}) + SET (DELIVER_CONTINUOUS_EMAIL "Off" CACHE BOOL "Should Dart server send email when build errors are found in Continuous builds?") + + MARK_AS_ADVANCED( + COMPRESSIONCOMMAND + DART_BUILD_ERROR_REPORT_LIMIT + DART_BUILD_WARNING_REPORT_LIMIT + DART_TESTING_TIMEOUT + DART_VERBOSE_BUILD + DELIVER_CONTINUOUS_EMAIL + GUNZIPCOMMAND + JAVACOMMAND + ) + + SET(HAVE_DART) + IF(EXISTS "${DART_ROOT}/Source/Client/Dart.conf.in") + SET(HAVE_DART 1) + ENDIF(EXISTS "${DART_ROOT}/Source/Client/Dart.conf.in") + + # + # Section #2: + # + # Make necessary directories and configure testing scripts + # + # find a tcl shell command + IF(HAVE_DART) + FIND_PACKAGE(Tclsh) + ENDIF(HAVE_DART) + + + IF (HAVE_DART) + # make directories in the binary tree + FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Dashboard" + "${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Sites/${SITE}/${BUILDNAME}") + + # configure files + CONFIGURE_FILE( + "${DART_ROOT}/Source/Client/Dart.conf.in" + "${PROJECT_BINARY_DIR}/DartConfiguration.tcl" ) + + # + # Section 3: + # + # Custom targets to perform dashboard builds and submissions. + # These should NOT need to be modified from project to project. + # + + # add testing targets + SET(DART_EXPERIMENTAL_NAME Experimental) + IF(DART_EXPERIMENTAL_USE_PROJECT_NAME) + SET(DART_EXPERIMENTAL_NAME "${DART_EXPERIMENTAL_NAME}${PROJECT_NAME}") + ENDIF(DART_EXPERIMENTAL_USE_PROJECT_NAME) + ENDIF (HAVE_DART) + + SET(RUN_FROM_CTEST_OR_DART 1) + INCLUDE(CTestTargets) + SET(RUN_FROM_CTEST_OR_DART) +ENDIF(BUILD_TESTING) + +# +# End of Dart.cmake +# + diff --git a/CMakeLua/Modules/DartConfiguration.tcl.in b/CMakeLua/Modules/DartConfiguration.tcl.in new file mode 100644 index 0000000..daf8b79 --- /dev/null +++ b/CMakeLua/Modules/DartConfiguration.tcl.in @@ -0,0 +1,61 @@ +# This file is configured by CMake automatically as DartConfiguration.tcl +# If you choose not to use CMake, this file may be hand configured, by +# filling in the required variables. + + +# Configuration directories and files +SourceDirectory: @PROJECT_SOURCE_DIR@ +BuildDirectory: @PROJECT_BINARY_DIR@ + +# Site is something like machine.domain, i.e. pragmatic.crd +Site: @SITE@ + +# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++ +BuildName: @BUILDNAME@ + +# Submission information +DropSite: @DROP_SITE@ +DropLocation: @DROP_LOCATION@ +DropSiteUser: @DROP_SITE_USER@ +DropSitePassword: @DROP_SITE_PASSWORD@ +DropSiteMode: @DROP_SITE_MODE@ +DropMethod: @DROP_METHOD@ +TriggerSite: @TRIGGER_SITE@ +ScpCommand: @SCPCOMMAND@ + +# Dashboard start time +NightlyStartTime: @NIGHTLY_START_TIME@ + +# Commands for the build/test/submit cycle +ConfigureCommand: "@CMAKE_COMMAND@" "@PROJECT_SOURCE_DIR@" +MakeCommand: @MAKECOMMAND@ + +# CVS options +# Default is "-d -P -A" +CVSCommand: @CVSCOMMAND@ +CVSUpdateOptions: @CVS_UPDATE_OPTIONS@ + +# Subversion options +SVNCommand: @SVNCOMMAND@ +SVNUpdateOptions: @SVN_UPDATE_OPTIONS@ + +# Generic update command +UpdateCommand: @UPDATE_COMMAND@ +UpdateOptions: @UPDATE_OPTIONS@ +UpdateType: @UPDATE_TYPE@ + +# Dynamic analisys and coverage +PurifyCommand: @PURIFYCOMMAND@ +ValgrindCommand: @VALGRIND_COMMAND@ +ValgrindCommandOptions: @VALGRIND_COMMAND_OPTIONS@ +MemoryCheckCommand: @MEMORYCHECK_COMMAND@ +MemoryCheckCommandOptions: @MEMORYCHECK_COMMAND_OPTIONS@ +MemoryCheckSuppressionFile: @MEMORYCHECK_SUPPRESSIONS_FILE@ +CoverageCommand: @COVERAGE_COMMAND@ + +# Testing options +# TimeOut is the amount of time in seconds to wait for processes +# to complete during testing. After TimeOut seconds, the +# process will be summaily terminated. +# Currently set to 25 minutes +TimeOut: @DART_TESTING_TIMEOUT@ diff --git a/CMakeLua/Modules/Documentation.cmake b/CMakeLua/Modules/Documentation.cmake new file mode 100644 index 0000000..73998be --- /dev/null +++ b/CMakeLua/Modules/Documentation.cmake @@ -0,0 +1,39 @@ +# - DocumentationVTK.cmake +# This file provides support for the VTK documentation framework. +# It relies on several tools (Doxygen, Perl, etc). + +# +# Build the documentation ? +# +OPTION(BUILD_DOCUMENTATION "Build the documentation (Doxygen)." OFF) +MARK_AS_ADVANCED(BUILD_DOCUMENTATION) + +IF (BUILD_DOCUMENTATION) + + # + # Check for the tools + # + FIND_PACKAGE(UnixCommands) + FIND_PACKAGE(Doxygen) + FIND_PACKAGE(Gnuplot) + FIND_PACKAGE(HTMLHelp) + FIND_PACKAGE(Perl) + FIND_PACKAGE(Wget) + + OPTION(DOCUMENTATION_HTML_HELP + "Build the HTML Help file (CHM)." OFF) + + OPTION(DOCUMENTATION_HTML_TARZ + "Build a compressed tar archive of the HTML doc." OFF) + + MARK_AS_ADVANCED( + DOCUMENTATION_HTML_HELP + DOCUMENTATION_HTML_TARZ + ) + + # + # The documentation process is controled by a batch file. + # We will probably need bash to create the custom target + # + +ENDIF (BUILD_DOCUMENTATION) diff --git a/CMakeLua/Modules/DummyCXXFile.cxx b/CMakeLua/Modules/DummyCXXFile.cxx new file mode 100755 index 0000000..f8b643a --- /dev/null +++ b/CMakeLua/Modules/DummyCXXFile.cxx @@ -0,0 +1,4 @@ +int main() +{ + return 0; +} diff --git a/CMakeLua/Modules/FLTKCompatibility.cmake b/CMakeLua/Modules/FLTKCompatibility.cmake new file mode 100644 index 0000000..0a42260 --- /dev/null +++ b/CMakeLua/Modules/FLTKCompatibility.cmake @@ -0,0 +1 @@ +INCLUDE(CheckIncludeFile) diff --git a/CMakeLua/Modules/FeatureSummary.cmake b/CMakeLua/Modules/FeatureSummary.cmake new file mode 100644 index 0000000..788ad02 --- /dev/null +++ b/CMakeLua/Modules/FeatureSummary.cmake @@ -0,0 +1,64 @@ +# - Macros for generating a summary of enabled/disabled features +# +# PRINT_ENABLED_FEATURES() +# Print a summary of all enabled features. By default all successfull +# FIND_PACKAGE() calls will appear here, except the ones which used the QUIET keyword. +# Additional features can be added by appending an entry to the global ENABLED_FEATURES +# property. If SET_FEATURE_INFO() is used for that feature, the output will be much +# more informative. +# +# PRINT_DISABLED_FEATURES() +# Same as PRINT_ENABLED_FEATURES(), but for disabled features. It can be extended +# the same way by adding to the global property DISABLED_FEATURES. +# +# SET_FEATURE_INFO(NAME DESCRIPTION [URL [COMMENT] ] ) +# Use this macro to set up information about the named feature, which will +# then be displayed by PRINT_ENABLED/DISABLED_FEATURES(). +# Example: SET_FEATURE_INFO(LibXml2 "XML processing library." "http://xmlsoft.org/") +# + + +MACRO(SET_FEATURE_INFO _name _desc) + SET(_url "${ARGV2}") + SET(_comment "${ARGV3}") + SET_PROPERTY(GLOBAL PROPERTY ${_name}_DESCRIPTION "${_desc}" ) + IF(_url MATCHES ".+") + SET_PROPERTY(GLOBAL PROPERTY ${_name}_URL "${_url}" ) + ENDIF(_url MATCHES ".+") + IF(_comment MATCHES ".+") + SET_PROPERTY(GLOBAL PROPERTY ${_name}_COMMENT "${_comment}" ) + ENDIF(_comment MATCHES ".+") +ENDMACRO(SET_FEATURE_INFO) + + +MACRO(_PRINT_FEATURES _property _text) + SET(_currentFeatureText "${_text}") + GET_PROPERTY(_EnabledFeatures GLOBAL PROPERTY ${_property}) + FOREACH(_currentFeature ${_EnabledFeatures}) + SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}") + GET_PROPERTY(_info GLOBAL PROPERTY ${_currentFeature}_DESCRIPTION) + IF(_info) + SET(_currentFeatureText "${_currentFeatureText} , ${_info}") + ENDIF(_info) + GET_PROPERTY(_info GLOBAL PROPERTY ${_currentFeature}_URL) + IF(_info) + SET(_currentFeatureText "${_currentFeatureText} , <${_info}>") + ENDIF(_info) + GET_PROPERTY(_info GLOBAL PROPERTY ${_currentFeature}_COMMENT) + IF(_info) + SET(_currentFeatureText "${_currentFeatureText} , ${_info}") + ENDIF(_info) + ENDFOREACH(_currentFeature) + MESSAGE(STATUS "${_currentFeatureText}\n") +ENDMACRO(_PRINT_FEATURES) + + +MACRO(PRINT_ENABLED_FEATURES) + _PRINT_FEATURES( ENABLED_FEATURES "Enabled features:") +ENDMACRO(PRINT_ENABLED_FEATURES) + + +MACRO(PRINT_DISABLED_FEATURES) + _PRINT_FEATURES( DISABLED_FEATURES "Disabled features:") +ENDMACRO(PRINT_DISABLED_FEATURES) + diff --git a/CMakeLua/Modules/FindASPELL.cmake b/CMakeLua/Modules/FindASPELL.cmake new file mode 100644 index 0000000..d43ea9d --- /dev/null +++ b/CMakeLua/Modules/FindASPELL.cmake @@ -0,0 +1,30 @@ +# - Try to find ASPELL +# Once done this will define +# +# ASPELL_FOUND - system has ASPELL +# ASPELL_INCLUDE_DIR - the ASPELL include directory +# ASPELL_LIBRARIES - The libraries needed to use ASPELL +# ASPELL_DEFINITIONS - Compiler switches required for using ASPELL + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (ASPELL_INCLUDE_DIR AND ASPELL_LIBRARIES) + # Already in cache, be silent + SET(ASPELL_FIND_QUIETLY TRUE) +ENDIF (ASPELL_INCLUDE_DIR AND ASPELL_LIBRARIES) + +FIND_PATH(ASPELL_INCLUDE_DIR aspell.h ) + +FIND_LIBRARY(ASPELL_LIBRARIES NAMES aspell aspell-15 libaspell-15 libaspell) + +# handle the QUIETLY and REQUIRED arguments and set ASPELL_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ASPELL DEFAULT_MSG ASPELL_LIBRARIES ASPELL_INCLUDE_DIR) + + +MARK_AS_ADVANCED(ASPELL_INCLUDE_DIR ASPELL_LIBRARIES) diff --git a/CMakeLua/Modules/FindAVIFile.cmake b/CMakeLua/Modules/FindAVIFile.cmake new file mode 100644 index 0000000..f393bc3 --- /dev/null +++ b/CMakeLua/Modules/FindAVIFile.cmake @@ -0,0 +1,39 @@ +# - Locate AVIFILE library and include paths +# AVIFILE (http://avifile.sourceforge.net/)is a set of libraries for +# i386 machines +# to use various AVI codecs. Support is limited beyond Linux. Windows +# provides native AVI support, and so doesn't need this library. +# This module defines +# AVIFILE_INCLUDE_DIR, where to find avifile.h , etc. +# AVIFILE_LIBRARIES, the libraries to link against +# AVIFILE_DEFINITIONS, definitions to use when compiling +# AVIFILE_FOUND, If false, don't try to use AVIFILE + +IF (UNIX) + + FIND_PATH(AVIFILE_INCLUDE_DIR avifile.h + /usr/local/avifile/include + /usr/local/include/avifile + /usr/include + ) + + FIND_LIBRARY(AVIFILE_AVIPLAY_LIBRARY aviplay + /usr/local/avifile/lib + /usr/local/lib + /usr/lib + ) + +ENDIF (UNIX) + +SET (AVIFILE_FOUND "NO") + +IF(AVIFILE_INCLUDE_DIR) + IF(AVIFILE_AVIPLAY_LIBRARY) + SET( AVIFILE_LIBRARIES ${AVIFILE_AVIPLAY_LIBRARY} ) + SET( AVIFILE_FOUND "YES" ) + SET( AVIFILE_DEFINITIONS "") + + ENDIF(AVIFILE_AVIPLAY_LIBRARY) +ENDIF(AVIFILE_INCLUDE_DIR) + + diff --git a/CMakeLua/Modules/FindBLAS.cmake b/CMakeLua/Modules/FindBLAS.cmake new file mode 100644 index 0000000..fb4805f --- /dev/null +++ b/CMakeLua/Modules/FindBLAS.cmake @@ -0,0 +1,273 @@ +# - Find BLAS library +# This module finds an installed fortran library that implements the BLAS +# linear-algebra interface (see http://www.netlib.org/blas/). +# The list of libraries searched for is taken +# from the autoconf macro file, acx_blas.m4 (distributed at +# http://ac-archive.sourceforge.net/ac-archive/acx_blas.html). +# +# This module sets the following variables: +# BLAS_FOUND - set to true if a library implementing the BLAS interface +# is found +# BLAS_LINKER_FLAGS - uncached list of required linker flags (excluding -l +# and -L). +# BLAS_LIBRARIES - uncached list of libraries (using full path name) to +# link against to use BLAS +# + +include(CheckFortranFunctionExists) + +macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list) +# This macro checks for the existence of the combination of fortran libraries +# given by _list. If the combination is found, this macro checks (using the +# Check_Fortran_Function_Exists macro) whether can link against that library +# combination using the name of a routine given by _name using the linker +# flags given by _flags. If the combination of libraries is found and passes +# the link test, LIBRARIES is set to the list of complete library paths that +# have been found. Otherwise, LIBRARIES is set to FALSE. + +# N.B. _prefix is the prefix applied to the names of all cached variables that +# are generated internally and marked advanced by this macro. + +set(_libraries_work TRUE) +set(${LIBRARIES}) +set(_combined_name) +foreach(_library ${_list}) + set(_combined_name ${_combined_name}_${_library}) + + if(_libraries_work) + + if ( APPLE ) + find_library(${_prefix}_${_library}_LIBRARY + NAMES ${_library} + PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64 ENV DYLD_LIBRARY_PATH + ) + + else ( APPLE ) + find_library(${_prefix}_${_library}_LIBRARY + NAMES ${_library} + PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64 ENV LD_LIBRARY_PATH + ) + endif( APPLE ) + mark_as_advanced(${_prefix}_${_library}_LIBRARY) + set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY}) + set(_libraries_work ${${_prefix}_${_library}_LIBRARY}) + endif(_libraries_work) +endforeach(_library ${_list}) +if(_libraries_work) + # Test this combination of libraries. + set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}}) + #message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}") + check_fortran_function_exists(${_name} ${_prefix}${_combined_name}_WORKS) + set(CMAKE_REQUIRED_LIBRARIES) + mark_as_advanced(${_prefix}${_combined_name}_WORKS) + set(_libraries_work ${${_prefix}${_combined_name}_WORKS}) +endif(_libraries_work) +if(NOT _libraries_work) + set(${LIBRARIES} FALSE) +endif(NOT _libraries_work) +#message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}") +endmacro(Check_Fortran_Libraries) + +set(BLAS_LINKER_FLAGS) +set(BLAS_LIBRARIES) + + + +if(NOT BLAS_LIBRARIES) + # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + cblas_dgemm + "" + "cblas;f77blas;atlas" + ) +endif(NOT BLAS_LIBRARIES) + +# BLAS in PhiPACK libraries? (requires generic BLAS lib, too) +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "sgemm;dgemm;blas" + ) +endif(NOT BLAS_LIBRARIES) + +# BLAS in Alpha CXML library? +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "cxml" + ) +endif(NOT BLAS_LIBRARIES) + +# BLAS in Alpha DXML library? (now called CXML, see above) +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "dxml" + ) +endif(NOT BLAS_LIBRARIES) + +# BLAS in Sun Performance library? +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "-xlic_lib=sunperf" + "sunperf;sunmath" + ) + if(BLAS_LIBRARIES) + set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf") + endif(BLAS_LIBRARIES) + +endif(NOT BLAS_LIBRARIES) + +# BLAS in SCSL library? (SGI/Cray Scientific Library) +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "scsl" + ) +endif(NOT BLAS_LIBRARIES) + +# BLAS in SGIMATH library? +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "complib.sgimath" + ) +endif(NOT BLAS_LIBRARIES) + +# BLAS in IBM ESSL library? (requires generic BLAS lib, too) +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "essl;blas" + ) +endif(NOT BLAS_LIBRARIES) + + + + +# BLAS in intel mkl library? (shared) +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "mkl;guide;pthread" + ) +endif(NOT BLAS_LIBRARIES) + +#BLAS in intel mkl library? (static, 32bit) +if(NOT BLAS_LIBRARIES) +check_fortran_libraries( +BLAS_LIBRARIES +BLAS +sgemm +"" +"mkl_ia32;guide;pthread" +) +endif(NOT BLAS_LIBRARIES) + +#BLAS in intel mkl library? (static, em64t 64bit) +if(NOT BLAS_LIBRARIES) +check_fortran_libraries( +BLAS_LIBRARIES +BLAS +sgemm +"" +"mkl_em64t;guide;pthread" +) +endif(NOT BLAS_LIBRARIES) + + +#BLAS in acml library? +if(NOT BLAS_LIBRARIES) +check_fortran_libraries( +BLAS_LIBRARIES +BLAS +sgemm +"" +"acml" +) +endif(NOT BLAS_LIBRARIES) + + + +# Apple BLAS library? +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + cblas_dgemm + "" + "Accelerate" + ) + + endif(NOT BLAS_LIBRARIES) + + if ( NOT BLAS_LIBRARIES ) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + cblas_dgemm + "" + "vecLib" + ) + endif ( NOT BLAS_LIBRARIES ) + + +# Generic BLAS library? +if(NOT BLAS_LIBRARIES) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "blas" + ) +endif(NOT BLAS_LIBRARIES) + + +if(BLAS_LIBRARIES) + set(BLAS_FOUND TRUE) +else(BLAS_LIBRARIES) + set(BLAS_FOUND FALSE) +endif(BLAS_LIBRARIES) + +if(NOT BLAS_FIND_QUIETLY) + if(BLAS_FOUND) + message(STATUS "A library with BLAS API found.") + else(BLAS_FOUND) + if(BLAS_FIND_REQUIRED) + message(FATAL_ERROR + "A required library with BLAS API not found. Please specify library location." + ) + else(BLAS_FIND_REQUIRED) + message(STATUS + "A library with BLAS API not found. Please specify library location." + ) + endif(BLAS_FIND_REQUIRED) + endif(BLAS_FOUND) +endif(NOT BLAS_FIND_QUIETLY) diff --git a/CMakeLua/Modules/FindBZip2.cmake b/CMakeLua/Modules/FindBZip2.cmake new file mode 100644 index 0000000..5842038 --- /dev/null +++ b/CMakeLua/Modules/FindBZip2.cmake @@ -0,0 +1,35 @@ +# - Try to find BZip2 +# Once done this will define +# +# BZIP2_FOUND - system has BZip2 +# BZIP2_INCLUDE_DIR - the BZip2 include directory +# BZIP2_LIBRARIES - Link these to use BZip2 +# BZIP2_DEFINITIONS - Compiler switches required for using BZip2 +# BZIP2_NEED_PREFIX - this is set if the functions are prefixed with BZ2_ + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) + SET(BZip2_FIND_QUIETLY TRUE) +ENDIF (BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) + +FIND_PATH(BZIP2_INCLUDE_DIR bzlib.h ) + +FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2 ) + +# handle the QUIETLY and REQUIRED arguments and set BZip2_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(BZip2 DEFAULT_MSG BZIP2_LIBRARIES BZIP2_INCLUDE_DIR) + +IF (BZIP2_FOUND) + INCLUDE(CheckLibraryExists) + CHECK_LIBRARY_EXISTS(${BZIP2_LIBRARIES} BZ2_bzCompressInit "" BZIP2_NEED_PREFIX) +ENDIF (BZIP2_FOUND) + +MARK_AS_ADVANCED(BZIP2_INCLUDE_DIR BZIP2_LIBRARIES) + diff --git a/CMakeLua/Modules/FindBoost.cmake b/CMakeLua/Modules/FindBoost.cmake new file mode 100644 index 0000000..2de8239 --- /dev/null +++ b/CMakeLua/Modules/FindBoost.cmake @@ -0,0 +1,149 @@ +# - Find the Boost includes and libraries. +# The following variables are set if Boost is found. If Boost is not +# found, Boost_FOUND is set to false. +# Boost_FOUND - True when the Boost include directory is found. +# Boost_INCLUDE_DIRS - the path to where the boost include files are. +# Boost_LIBRARY_DIRS - The path to where the boost library files are. +# Boost_LIB_DIAGNOSTIC_DEFINITIONS - Only set if using Windows. + +# ---------------------------------------------------------------------------- +# If you have installed Boost in a non-standard location or you have +# just staged the boost files using bjam then you have three +# options. In the following comments, it is assumed that +# points to the root directory of the include directory of Boost. e.g +# If you have put boost in C:\development\Boost then is +# "C:/development/Boost" and in this directory there will be two +# directories called "include" and "lib". +# 1) After CMake runs, set Boost_INCLUDE_DIR to /include/boost<-version> +# 2) Use CMAKE_INCLUDE_PATH to set a path to /include. This will allow FIND_PATH() +# to locate Boost_INCLUDE_DIR by utilizing the PATH_SUFFIXES option. e.g. +# SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "/include") +# 3) Set an environment variable called ${BOOST_ROOT} that points to the root of where you have +# installed Boost, e.g. . It is assumed that there is at least a subdirectory called +# include in this path. +# +# Note: +# 1) If you are just using the boost headers, then you do not need to use +# Boost_LIBRARY_DIRS in your CMakeLists.txt file. +# 2) If Boost has not been installed, then when setting Boost_LIBRARY_DIRS +# the script will look for /lib first and, if this fails, then for /stage/lib. +# +# Usage: +# In your CMakeLists.txt file do something like this: +# ... +# # Boost +# FIND_PACKAGE(Boost) +# ... +# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) +# LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) +# +# In Windows, we make the assumption that, if the Boost files are installed, the default directory +# will be C:\boost. + +# +# TODO: +# +# 1) Automatically find the Boost library files and eliminate the need +# to use Link Directories. +# + +IF(WIN32) + # In windows, automatic linking is performed, so you do not have to specify the libraries. + # If you are linking to a dynamic runtime, then you can choose to link to either a static or a + # dynamic Boost library, the default is to do a static link. You can alter this for a specific + # library "whatever" by defining BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to + # be linked dynamically. Alternatively you can force all Boost libraries to dynamic link by + # defining BOOST_ALL_DYN_LINK. + + # This feature can be disabled for Boost library "whatever" by defining BOOST_WHATEVER_NO_LIB, + # or for all of Boost by defining BOOST_ALL_NO_LIB. + + # If you want to observe which libraries are being linked against then defining + # BOOST_LIB_DIAGNOSTIC will cause the auto-linking code to emit a #pragma message each time + # a library is selected for linking. + SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC") +ENDIF(WIN32) + + +SET(BOOST_INCLUDE_PATH_DESCRIPTION "directory containing the boost include files, e.g. /usr/local/include/boost-1_33_1 or c:/boost/include/boost-1_33_1") + +SET(BOOST_DIR_MESSAGE "Set the Boost_INCLUDE_DIR cmake cache entry to the ${BOOST_INCLUDE_PATH_DESCRIPTION}") + +SET(BOOST_DIR_SEARCH $ENV{BOOST_ROOT}) +IF(BOOST_DIR_SEARCH) + FILE(TO_CMAKE_PATH ${BOOST_DIR_SEARCH} BOOST_DIR_SEARCH) + SET(BOOST_DIR_SEARCH ${BOOST_DIR_SEARCH} ${BOOST_DIR_SEARCH}/include) +ENDIF(BOOST_DIR_SEARCH) + +IF(WIN32) + SET(BOOST_DIR_SEARCH + ${BOOST_DIR_SEARCH} + C:/boost/include + D:/boost/include + ) +ENDIF(WIN32) + +# Add in some path suffixes. These will have to be updated whenever a new Boost version comes out. +SET(SUFFIX_FOR_PATH + boost-1_34_1 + boost-1_34_0 + boost-1_34 + boost-1_33_1 + boost-1_33_0 +) + +# +# Look for an installation. +# +FIND_PATH(Boost_INCLUDE_DIR NAMES boost/config.hpp PATH_SUFFIXES ${SUFFIX_FOR_PATH} PATHS + + # Look in other places. + ${BOOST_DIR_SEARCH} + + # Help the user find it if we cannot. + DOC "The ${BOOST_INCLUDE_PATH_DESCRIPTION}" +) + +SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) + +# Now try to get the include and library path. +IF(Boost_INCLUDE_DIR) + + # Look for the boost library path. + # Note that the user may not have installed any libraries + # so it is quite possible the Boost_LIBRARY_PATH may not exist. + SET(Boost_LIBRARY_DIR ${Boost_INCLUDE_DIR}) + + IF("${Boost_LIBRARY_DIR}" MATCHES "boost-[0-9]+") + GET_FILENAME_COMPONENT(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR} PATH) + ENDIF ("${Boost_LIBRARY_DIR}" MATCHES "boost-[0-9]+") + + IF("${Boost_LIBRARY_DIR}" MATCHES "/include$") + # Strip off the trailing "/include" in the path. + GET_FILENAME_COMPONENT(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR} PATH) + ENDIF("${Boost_LIBRARY_DIR}" MATCHES "/include$") + + IF(EXISTS "${Boost_LIBRARY_DIR}/lib") + SET (Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR}/lib) + ELSE(EXISTS "${Boost_LIBRARY_DIR}/lib") + IF(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") + SET(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR}/stage/lib) + ELSE(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") + SET(Boost_LIBRARY_DIR "") + ENDIF(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") + ENDIF(EXISTS "${Boost_LIBRARY_DIR}/lib") + + IF(Boost_LIBRARY_DIR AND EXISTS "${Boost_LIBRARY_DIR}") + SET(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIR}) + ENDIF(Boost_LIBRARY_DIR AND EXISTS "${Boost_LIBRARY_DIR}") +ENDIF(Boost_INCLUDE_DIR) + +# We have found boost. It is possible that the user has not +# compiled any libraries so we set Boost_FOUND to be true here. +# handle the QUIETLY and REQUIRED arguments and set BOOST_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Boost "Boost was not found. ${BOOST_DIR_MESSAGE}" Boost_INCLUDE_DIR ) +SET(Boost_FOUND ${BOOST_FOUND}) + +MARK_AS_ADVANCED(Boost_INCLUDE_DIR) diff --git a/CMakeLua/Modules/FindCABLE.cmake b/CMakeLua/Modules/FindCABLE.cmake new file mode 100644 index 0000000..5bcbc67 --- /dev/null +++ b/CMakeLua/Modules/FindCABLE.cmake @@ -0,0 +1,68 @@ +# - Find CABLE +# This module finds if CABLE is installed and determines where the +# include files and libraries are. This code sets the following variables: +# +# CABLE the path to the cable executable +# CABLE_TCL_LIBRARY the path to the Tcl wrapper library +# CABLE_INCLUDE_DIR the path to the include directory +# +# To build Tcl wrappers, you should add shared library and link it to +# ${CABLE_TCL_LIBRARY}. You should also add ${CABLE_INCLUDE_DIR} as +# an include directory. + +IF(NOT CABLE) + FIND_PATH(CABLE_BUILD_DIR cableVersion.h) +ENDIF(NOT CABLE) + +IF(CABLE_BUILD_DIR) + LOAD_CACHE(${CABLE_BUILD_DIR} + EXCLUDE + BUILD_SHARED_LIBS + LIBRARY_OUTPUT_PATH + EXECUTABLE_OUTPUT_PATH + MAKECOMMAND + CMAKE_INSTALL_PREFIX + INCLUDE_INTERNALS + CABLE_LIBRARY_PATH + CABLE_EXECUTABLE_PATH) + + IF(CABLE_LIBRARY_PATH) + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS + ${CABLE_LIBRARY_PATH} + ${CABLE_LIBRARY_PATH}/*) + ELSE(CABLE_LIBRARY_PATH) + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS + ${CABLE_BINARY_DIR}/CableTclFacility + ${CABLE_BINARY_DIR}/CableTclFacility/*) + ENDIF(CABLE_LIBRARY_PATH) + + IF(CABLE_EXECUTABLE_PATH) + FIND_PROGRAM(CABLE NAMES cable PATHS + ${CABLE_EXECUTABLE_PATH} + ${CABLE_EXECUTABLE_PATH}/*) + ELSE(CABLE_EXECUTABLE_PATH) + FIND_PROGRAM(CABLE NAMES cable PATHS + ${CABLE_BINARY_DIR}/Executables + ${CABLE_BINARY_DIR}/Executables/*) + ENDIF(CABLE_EXECUTABLE_PATH) + + FIND_PATH(CABLE_INCLUDE_DIR CableTclFacility/ctCalls.h + ${CABLE_SOURCE_DIR}) +ELSE(CABLE_BUILD_DIR) + # Find the cable executable in the path. + FIND_PROGRAM(CABLE NAMES cable) + + # Get the path where the executable sits, but without the executable + # name on it. + GET_FILENAME_COMPONENT(CABLE_ROOT_BIN ${CABLE} PATH) + + # Find the cable include directory in a path relative to the cable + # executable. + FIND_PATH(CABLE_INCLUDE_DIR CableTclFacility/ctCalls.h + ${CABLE_ROOT_BIN}/../include/Cable) + + # Find the WrapTclFacility library in a path relative to the cable + # executable. + FIND_LIBRARY(CABLE_TCL_LIBRARY NAMES CableTclFacility PATHS + ${CABLE_ROOT_BIN}/../lib/Cable) +ENDIF(CABLE_BUILD_DIR) diff --git a/CMakeLua/Modules/FindCURL.cmake b/CMakeLua/Modules/FindCURL.cmake new file mode 100644 index 0000000..25a056a --- /dev/null +++ b/CMakeLua/Modules/FindCURL.cmake @@ -0,0 +1,27 @@ +# - Find curl +# Find the native CURL headers and libraries. +# +# CURL_INCLUDE_DIRS - where to find curl/curl.h, etc. +# CURL_LIBRARIES - List of libraries when using curl. +# CURL_FOUND - True if curl found. + +# Look for the header file. +FIND_PATH(CURL_INCLUDE_DIR NAMES curl/curl.h) +MARK_AS_ADVANCED(CURL_INCLUDE_DIR) + +# Look for the library. +FIND_LIBRARY(CURL_LIBRARY NAMES curl) +MARK_AS_ADVANCED(CURL_LIBRARY) + +# handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL DEFAULT_MSG CURL_LIBRARY CURL_INCLUDE_DIR) + +IF(CURL_FOUND) + SET(CURL_LIBRARIES ${CURL_LIBRARY}) + SET(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) +ELSE(CURL_FOUND) + SET(CURL_LIBRARIES) + SET(CURL_INCLUDE_DIRS) +ENDIF(CURL_FOUND) diff --git a/CMakeLua/Modules/FindCups.cmake b/CMakeLua/Modules/FindCups.cmake new file mode 100644 index 0000000..143cae9 --- /dev/null +++ b/CMakeLua/Modules/FindCups.cmake @@ -0,0 +1,48 @@ +# - Try to find the Cups printing system +# Once done this will define +# +# CUPS_FOUND - system has Cups +# CUPS_INCLUDE_DIR - the Cups include directory +# CUPS_LIBRARIES - Libraries needed to use Cups +# Set CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE to TRUE if you need a version which +# features this function (i.e. at least 1.1.19) + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +INCLUDE(CheckLibraryExists) + +FIND_PATH(CUPS_INCLUDE_DIR cups/cups.h ) + +FIND_LIBRARY(CUPS_LIBRARIES NAMES cups ) + +IF (CUPS_INCLUDE_DIR AND CUPS_LIBRARIES) + SET(CUPS_FOUND TRUE) + + # ippDeleteAttribute is new in cups-1.1.19 (and used by kdeprint) + CHECK_LIBRARY_EXISTS(cups ippDeleteAttribute "" CUPS_HAS_IPP_DELETE_ATTRIBUTE) + IF (CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE AND NOT CUPS_HAS_IPP_DELETE_ATTRIBUTE) + SET(CUPS_FOUND FALSE) + ENDIF (CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE AND NOT CUPS_HAS_IPP_DELETE_ATTRIBUTE) + +ELSE (CUPS_INCLUDE_DIR AND CUPS_LIBRARIES) + SET(CUPS_FOUND FALSE) +ENDIF (CUPS_INCLUDE_DIR AND CUPS_LIBRARIES) + +IF (CUPS_FOUND) + IF (NOT Cups_FIND_QUIETLY) + MESSAGE(STATUS "Found Cups: ${CUPS_LIBRARIES}") + ENDIF (NOT Cups_FIND_QUIETLY) +ELSE (CUPS_FOUND) + SET(CUPS_LIBRARIES ) + IF (Cups_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find Cups") + ENDIF (Cups_FIND_REQUIRED) +ENDIF (CUPS_FOUND) + + +MARK_AS_ADVANCED(CUPS_INCLUDE_DIR CUPS_LIBRARIES) + diff --git a/CMakeLua/Modules/FindCurses.cmake b/CMakeLua/Modules/FindCurses.cmake new file mode 100644 index 0000000..fffe188 --- /dev/null +++ b/CMakeLua/Modules/FindCurses.cmake @@ -0,0 +1,120 @@ +# - Find the curses include file and library +# +# CURSES_FOUND - system has Curses +# CURSES_INCLUDE_DIR - the Curses include directory +# CURSES_LIBRARIES - The libraries needed to use Curses +# CURSES_HAVE_CURSES_H - true if curses.h is available +# CURSES_HAVE_NCURSES_H - true if ncurses.h is available +# CURSES_HAVE_NCURSES_NCURSES_H - true if ncurses/ncurses.h is available +# CURSES_HAVE_NCURSES_CURSES_H - true if ncurses/curses.h is available +# +# Set CURSES_NEED_NCURSES to TRUE before the FIND_PACKAGE() command if NCurses +# functionality is required. + +FIND_LIBRARY(CURSES_CURSES_LIBRARY NAMES curses ) + +FIND_LIBRARY(CURSES_NCURSES_LIBRARY NAMES ncurses ) + +SET(CURSES_USE_NCURSES FALSE) + +IF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_LIBRARY) + SET(CURSES_USE_NCURSES TRUE) +ENDIF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_LIBRARY) + + +# Not sure the logic is correct here. +# If NCurses is required, use the function wsyncup() to check if the library +# has NCurses functionality (at least this is where it breaks on NetBSD). +# If wsyncup is in curses, use this one. +# If not, try to find ncurses and check if this has the symbol. +# Once the ncurses library is found, search the ncurses.h header first, but +# some web pages also say that even with ncurses there is not always a ncurses.h: +# http://osdir.com/ml/gnome.apps.mc.devel/2002-06/msg00029.html +# So at first try ncurses.h, if not found, try to find curses.h under the same +# prefix as the library was found, if still not found, try curses.h with the +# default search paths. +IF(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES) + INCLUDE(CheckLibraryExists) + CHECK_LIBRARY_EXISTS("${CURSES_CURSES_LIBRARY}" wsyncup "" CURSES_CURSES_HAS_WSYNCUP) + + IF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP) + CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}" wsyncup "" CURSES_NCURSES_HAS_WSYNCUP) + IF( CURSES_NCURSES_HAS_WSYNCUP) + SET(CURSES_USE_NCURSES TRUE) + ENDIF( CURSES_NCURSES_HAS_WSYNCUP) + ENDIF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP) + +ENDIF(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES) + + +IF(NOT CURSES_USE_NCURSES) + FIND_FILE(CURSES_HAVE_CURSES_H curses.h ) + FIND_PATH(CURSES_CURSES_H_PATH curses.h ) + SET(CURSES_INCLUDE_PATH "${CURSES_CURSES_H_PATH}") + + SET(CURSES_LIBRARY "${CURSES_CURSES_LIBRARY}") + GET_FILENAME_COMPONENT(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH) + GET_FILENAME_COMPONENT(_cursesParentDir "${_cursesLibDir}" PATH) +ELSE(NOT CURSES_USE_NCURSES) +# we need to find ncurses + GET_FILENAME_COMPONENT(_cursesLibDir "${CURSES_NCURSES_LIBRARY}" PATH) + GET_FILENAME_COMPONENT(_cursesParentDir "${_cursesLibDir}" PATH) + + FIND_FILE(CURSES_HAVE_NCURSES_H ncurses.h) + FIND_FILE(CURSES_HAVE_NCURSES_NCURSES_H ncurses/ncurses.h) + FIND_FILE(CURSES_HAVE_NCURSES_CURSES_H ncurses/curses.h) + FIND_FILE(CURSES_HAVE_CURSES_H curses.h PATHS "${_cursesParentDir}/include" NO_DEFAULT_PATH) + FIND_FILE(CURSES_HAVE_CURSES_H curses.h) + + FIND_PATH(CURSES_NCURSES_INCLUDE_PATH ncurses.h ncurses/ncurses.h ncurses/curses.h) + FIND_PATH(CURSES_NCURSES_INCLUDE_PATH curses.h PATHS "${_cursesParentDir}/include" NO_DEFAULT_PATH) + FIND_PATH(CURSES_NCURSES_INCLUDE_PATH curses.h) + + SET(CURSES_INCLUDE_PATH "${CURSES_NCURSES_INCLUDE_PATH}") + SET(CURSES_LIBRARY "${CURSES_NCURSES_LIBRARY}") +ENDIF(NOT CURSES_USE_NCURSES) + + +FIND_LIBRARY(CURSES_EXTRA_LIBRARY cur_colr PATHS "${_cursesLibDir}" NO_DEFAULT_PATH) +FIND_LIBRARY(CURSES_EXTRA_LIBRARY cur_colr ) + +FIND_LIBRARY(CURSES_FORM_LIBRARY form PATHS "${_cursesLibDir}" NO_DEFAULT_PATH) +FIND_LIBRARY(CURSES_FORM_LIBRARY form ) + +# Need to provide the *_LIBRARIES +SET(CURSES_LIBRARIES ${CURSES_LIBRARY}) + +IF(CURSES_EXTRA_LIBRARY) + SET(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_EXTRA_LIBRARY}) +ENDIF(CURSES_EXTRA_LIBRARY) + +IF(CURSES_FORM_LIBRARY) + SET(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_FORM_LIBRARY}) +ENDIF(CURSES_FORM_LIBRARY) + +# Proper name is *_INCLUDE_DIR +SET(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) + +# handle the QUIETLY and REQUIRED arguments and set CURSES_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Curses DEFAULT_MSG CURSES_LIBRARY CURSES_INCLUDE_PATH) + +# for compatibility +SET(FORM_LIBRARY "${CURSES_FORM_LIBRARY}") + +MARK_AS_ADVANCED( + CURSES_INCLUDE_PATH + CURSES_LIBRARY + CURSES_CURSES_INCLUDE_PATH + CURSES_CURSES_LIBRARY + CURSES_NCURSES_INCLUDE_PATH + CURSES_NCURSES_LIBRARY + CURSES_EXTRA_LIBRARY + FORM_LIBRARY + CURSES_LIBRARIES + CURSES_INCLUDE_DIR + CURSES_CURSES_HAS_WSYNCUP + CURSES_NCURSES_HAS_WSYNCUP + ) + diff --git a/CMakeLua/Modules/FindCygwin.cmake b/CMakeLua/Modules/FindCygwin.cmake new file mode 100644 index 0000000..def439e --- /dev/null +++ b/CMakeLua/Modules/FindCygwin.cmake @@ -0,0 +1,14 @@ +# - this module looks for Cygwin +# + +IF (WIN32) + FIND_PATH(CYGWIN_INSTALL_PATH + cygwin.bat + "C:/Cygwin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygnus Solutions\\Cygwin\\mounts v2\\/;native]" + ) + + MARK_AS_ADVANCED( + CYGWIN_INSTALL_PATH + ) +ENDIF (WIN32) diff --git a/CMakeLua/Modules/FindDCMTK.cmake b/CMakeLua/Modules/FindDCMTK.cmake new file mode 100755 index 0000000..5a35d24 --- /dev/null +++ b/CMakeLua/Modules/FindDCMTK.cmake @@ -0,0 +1,129 @@ +# - find DCMTK libraries +# + +# DCMTK_INCLUDE_DIR - Directories to include to use DCMTK +# DCMTK_LIBRARIES - Files to link against to use DCMTK +# DCMTK_FOUND - If false, don't try to use DCMTK +# DCMTK_DIR - (optional) Source directory for DCMTK +# +# DCMTK_DIR can be used to make it simpler to find the various include +# directories and compiled libraries if you've just compiled it in the +# source tree. Just set it to the root of the tree where you extracted +# the source. +# +# Written for VXL by Amitha Perera. +# + +FIND_PATH( DCMTK_config_INCLUDE_DIR osconfig.h + ${DCMTK_DIR}/config/include ${DCMTK_DIR}/include +) + +FIND_PATH( DCMTK_ofstd_INCLUDE_DIR ofstdinc.h + ${DCMTK_DIR}/ofstd/include ${DCMTK_DIR}/include/ofstd +) + +FIND_LIBRARY( DCMTK_ofstd_LIBRARY ofstd + ${DCMTK_DIR}/ofstd/libsrc + ${DCMTK_DIR}/ofstd/libsrc/Release + ${DCMTK_DIR}/ofstd/libsrc/Debug + ${DCMTK_DIR}/ofstd/Release + ${DCMTK_DIR}/ofstd/Debug + ${DCMTK_DIR}/lib +) + + +FIND_PATH( DCMTK_dcmdata_INCLUDE_DIR dctypes.h + ${DCMTK_DIR}/dcmdata/include + ${DCMTK_DIR}/include/dcmdata +) + +FIND_LIBRARY( DCMTK_dcmdata_LIBRARY dcmdata + ${DCMTK_DIR}/dcmdata/libsrc + ${DCMTK_DIR}/dcmdata/libsrc/Release + ${DCMTK_DIR}/dcmdata/libsrc/Debug + ${DCMTK_DIR}/dcmdata/Release + ${DCMTK_DIR}/dcmdata/Debug + ${DCMTK_DIR}/lib +) + + +FIND_PATH( DCMTK_dcmimgle_INCLUDE_DIR dcmimage.h + ${DCMTK_DIR}/dcmimgle/include + ${DCMTK_DIR}/include/dcmimgle +) + +FIND_LIBRARY( DCMTK_dcmimgle_LIBRARY dcmimgle + ${DCMTK_DIR}/dcmimgle/libsrc + ${DCMTK_DIR}/dcmimgle/libsrc/Release + ${DCMTK_DIR}/dcmimgle/libsrc/Debug + ${DCMTK_DIR}/dcmimgle/Release + ${DCMTK_DIR}/dcmimgle/Debug + ${DCMTK_DIR}/lib +) + +FIND_LIBRARY(DCMTK_imagedb_LIBRARY imagedb +${DCMTK_DIR}/imagectn/libsrc/Release +${DCMTK_DIR}/imagectn/libsrc/ +${DCMTK_DIR}/imagectn/libsrc/Debug +) + +FIND_LIBRARY(DCMTK_dcmnet_LIBRARY dcmnet +${DCMTK_DIR}/dcmnet/libsrc/Release +${DCMTK_DIR}/dcmnet/libsrc/Debug +${DCMTK_DIR}/dcmnet/libsrc/ +) + + +IF( DCMTK_config_INCLUDE_DIR + AND DCMTK_ofstd_INCLUDE_DIR + AND DCMTK_ofstd_LIBRARY + AND DCMTK_dcmdata_INCLUDE_DIR + AND DCMTK_dcmdata_LIBRARY + AND DCMTK_dcmimgle_INCLUDE_DIR + AND DCMTK_dcmimgle_LIBRARY ) + + SET( DCMTK_FOUND "YES" ) + SET( DCMTK_INCLUDE_DIR + ${DCMTK_config_INCLUDE_DIR} + ${DCMTK_ofstd_INCLUDE_DIR} + ${DCMTK_dcmdata_INCLUDE_DIR} + ${DCMTK_dcmimgle_INCLUDE_DIR} + ) + + SET( DCMTK_LIBRARIES + ${DCMTK_dcmimgle_LIBRARY} + ${DCMTK_dcmdata_LIBRARY} + ${DCMTK_ofstd_LIBRARY} + ${DCMTK_config_LIBRARY} + ) + + IF(DCMTK_imagedb_LIBRARY) + SET( DCMTK_LIBRARIES + ${DCMTK_LIBRARIES} + ${DCMTK_imagedb_LIBRARY} + ) + ENDIF(DCMTK_imagedb_LIBRARY) + + IF(DCMTK_dcmnet_LIBRARY) + SET( DCMTK_LIBRARIES + ${DCMTK_LIBRARIES} + ${DCMTK_dcmnet_LIBRARY} + ) + ENDIF(DCMTK_dcmnet_LIBRARY) + + IF( WIN32 ) + SET( DCMTK_LIBRARIES ${DCMTK_LIBRARIES} netapi32 ) + ENDIF( WIN32 ) + +ENDIF( DCMTK_config_INCLUDE_DIR + AND DCMTK_ofstd_INCLUDE_DIR + AND DCMTK_ofstd_LIBRARY + AND DCMTK_dcmdata_INCLUDE_DIR + AND DCMTK_dcmdata_LIBRARY + AND DCMTK_dcmimgle_INCLUDE_DIR + AND DCMTK_dcmimgle_LIBRARY ) + +IF( NOT DCMTK_FOUND ) + SET( DCMTK_DIR "" CACHE PATH "Root of DCMTK source tree (optional)." ) + MARK_AS_ADVANCED( DCMTK_DIR ) +ENDIF( NOT DCMTK_FOUND ) diff --git a/CMakeLua/Modules/FindDart.cmake b/CMakeLua/Modules/FindDart.cmake new file mode 100644 index 0000000..35f6eb8 --- /dev/null +++ b/CMakeLua/Modules/FindDart.cmake @@ -0,0 +1,16 @@ +# - Find DART +# This module looks for the dart testing software and sets DART_ROOT +# to point to where it found it. +# + +FIND_PATH(DART_ROOT README.INSTALL + $ENV{DART_ROOT} + ${PROJECT_SOURCE_DIR}/Dart + /usr/share/Dart + C:/Dart + "$ENV{ProgramFiles}/Dart" + "C:/Program Files/Dart" + ${PROJECT_SOURCE_DIR}/../Dart + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Dart\\InstallPath] + DOC "If you have Dart installed, where is it located?" + ) diff --git a/CMakeLua/Modules/FindDoxygen.cmake b/CMakeLua/Modules/FindDoxygen.cmake new file mode 100644 index 0000000..b489a49 --- /dev/null +++ b/CMakeLua/Modules/FindDoxygen.cmake @@ -0,0 +1,102 @@ +# - This module looks for Doxygen and the path to Graphviz's dot +# Doxygen is a documentation generation tool see http://www.doxygen.org +# With the OS X GUI version, it likes to be installed to /Applications and +# it contains the doxygen executable in the bundle. In the versions I've +# seen, it is located in Resources, but in general, more often binaries are +# located in MacOS. This code sets the following variables: +# DOXYGEN_EXECUTABLE = The path to the doxygen command. +# DOXYGEN_DOT_EXECUTABLE = The path to the dot program used by doxygen. +# DOXYGEN_DOT_PATH = The path to dot not including the executable +# DOXYGEN = same as DOXYGEN_EXECUTABLE for backwards compatibility +# DOT = same as DOXYGEN_DOT_EXECUTABLE for backwards compatibility + +# The official Doxygen.app that is distributed for OS X uses non-standard +# conventions. Instead of the command-line "doxygen" tool being placed in +# Doxygen.app/Contents/MacOS, "Doxywizard" is placed there instead and +# "doxygen" is actually placed in Contents/Resources. This is most likely +# to accomodate people who double-click on the Doxygen.app package and expect +# to see something happen. However, the CMake backend gets horribly confused +# by this. Once CMake sees the bundle, it indiscrimately uses Doxywizard +# as the executable to use. The only work-around I have found is to disable +# the app-bundle feature for only this command. +# Save the old setting +SET(TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE}) +# Disable the App-bundle detection feature +SET(CMAKE_FIND_APPBUNDLE "NEVER") +# For backwards compatibility support +# DOXYGEN_FIND_QUIETLY, but it should have been +# Doxygen_FIND_QUIETLY. +IF(Doxygen_FIND_QUIETLY) + SET(DOXYGEN_FIND_QUIETLY TRUE) +ENDIF(Doxygen_FIND_QUIETLY) + +IF (NOT DOXYGEN_FIND_QUIETLY) + MESSAGE(STATUS "Looking for doxygen...") +ENDIF (NOT DOXYGEN_FIND_QUIETLY) + +FIND_PROGRAM(DOXYGEN_EXECUTABLE + NAMES doxygen + PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\doxygen_is1;Inno Setup: App Path]/bin" + /Applications/Doxygen.app/Contents/Resources + /Applications/Doxygen.app/Contents/MacOS + DOC "Doxygen documentation generation tool (http://www.doxygen.org)" +) + +IF (DOXYGEN_EXECUTABLE) + SET (DOXYGEN_FOUND "YES") + IF (NOT DOXYGEN_FIND_QUIETLY) + MESSAGE(STATUS "Looking for doxygen... - found ${DOXYGEN_EXECUTABLE}") + ENDIF (NOT DOXYGEN_FIND_QUIETLY) +ELSE (DOXYGEN_EXECUTABLE) + IF (NOT DOXYGEN_FIND_QUIETLY) + IF (DOXYGEN_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Looking for doxygen... - NOT found") + ELSE (DOXYGEN_FIND_REQUIRED) + MESSAGE(STATUS "Looking for doxygen... - NOT found") + ENDIF (DOXYGEN_FIND_REQUIRED) + ENDIF (NOT DOXYGEN_FIND_QUIETLY) +ENDIF (DOXYGEN_EXECUTABLE) + +# In the older versions of OS X Doxygen, dot was included with the +# Doxygen bundle. But the new versions place make you download Graphviz.app +# which contains dot in its bundle. +IF (NOT DOXYGEN_FIND_QUIETLY) + MESSAGE(STATUS "Looking for dot tool...") +ENDIF (NOT DOXYGEN_FIND_QUIETLY) + +FIND_PROGRAM(DOXYGEN_DOT_EXECUTABLE + NAMES dot + PATHS "$ENV{ProgramFiles}/ATT/Graphviz/bin" + "C:/Program Files/ATT/Graphviz/bin" + [HKEY_LOCAL_MACHINE\\SOFTWARE\\ATT\\Graphviz;InstallPath]/bin + /Applications/Graphviz.app/Contents/MacOS + /Applications/Doxygen.app/Contents/Resources + /Applications/Doxygen.app/Contents/MacOS + DOC "Graphviz Dot tool for using Doxygen" +) + +IF (NOT DOXYGEN_FIND_QUIETLY) + IF (DOXYGEN_DOT_EXECUTABLE) + MESSAGE(STATUS "Looking for dot tool... - found ${DOXYGEN_DOT_EXECUTABLE}") + # The Doxyfile wants the path to Dot, not the entire path and executable + GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH "${DOXYGEN_DOT_EXECUTABLE}" PATH CACHE) + ELSE (DOXYGEN_DOT_EXECUTABLE) + MESSAGE(STATUS "Looking for dot tool... - NOT found") + ENDIF (DOXYGEN_DOT_EXECUTABLE) +ENDIF (NOT DOXYGEN_FIND_QUIETLY) + + +# Restore the old app-bundle setting setting +SET(CMAKE_FIND_APPBUNDLE ${TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE}) + +# Backwards compatibility for CMake4.3 and less +SET (DOXYGEN ${DOXYGEN_EXECUTABLE} ) +SET (DOT ${DOXYGEN_DOT_EXECUTABLE} ) + +MARK_AS_ADVANCED( + DOXYGEN_FOUND + DOXYGEN_EXECUTABLE + DOXYGEN_DOT_FOUND + DOXYGEN_DOT_EXECUTABLE + DOXYGEN_DOT_PATH + ) diff --git a/CMakeLua/Modules/FindEXPAT.cmake b/CMakeLua/Modules/FindEXPAT.cmake new file mode 100644 index 0000000..ee5b2fa --- /dev/null +++ b/CMakeLua/Modules/FindEXPAT.cmake @@ -0,0 +1,28 @@ +# - Find expat +# Find the native EXPAT headers and libraries. +# +# EXPAT_INCLUDE_DIRS - where to find expat.h, etc. +# EXPAT_LIBRARIES - List of libraries when using expat. +# EXPAT_FOUND - True if expat found. + +# Look for the header file. +FIND_PATH(EXPAT_INCLUDE_DIR NAMES expat.h) + +# Look for the library. +FIND_LIBRARY(EXPAT_LIBRARY NAMES expat) + +# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(EXPAT DEFAULT_MSG EXPAT_LIBRARY EXPAT_INCLUDE_DIR) + +# Copy the results to the output variables. +IF(EXPAT_FOUND) + SET(EXPAT_LIBRARIES ${EXPAT_LIBRARY}) + SET(EXPAT_INCLUDE_DIRS ${EXPAT_INCLUDE_DIR}) +ELSE(EXPAT_FOUND) + SET(EXPAT_LIBRARIES) + SET(EXPAT_INCLUDE_DIRS) +ENDIF(EXPAT_FOUND) + +MARK_AS_ADVANCED(EXPAT_INCLUDE_DIR EXPAT_LIBRARY) diff --git a/CMakeLua/Modules/FindFLTK.cmake b/CMakeLua/Modules/FindFLTK.cmake new file mode 100644 index 0000000..d16cf73 --- /dev/null +++ b/CMakeLua/Modules/FindFLTK.cmake @@ -0,0 +1,244 @@ +# - Find the native FLTK includes and library +# The following settings are defined +# FLTK_FLUID_EXECUTABLE, where to find the Fluid tool +# FLTK_WRAP_UI, This enables the FLTK_WRAP_UI command +# FLTK_INCLUDE_DIR, where to find include files +# FLTK_LIBRARIES, list of fltk libraries +# FLTK_FOUND, Don't use FLTK if false. +# The following settings should not be used in general. +# FLTK_BASE_LIBRARY = the full path to fltk.lib +# FLTK_GL_LIBRARY = the full path to fltk_gl.lib +# FLTK_FORMS_LIBRARY = the full path to fltk_forms.lib +# FLTK_IMAGES_LIBRARY = the full path to fltk_images.lib + +# Platform dependent libraries required by FLTK +IF(WIN32) + IF(NOT CYGWIN) + IF(BORLAND) + SET( FLTK_PLATFORM_DEPENDENT_LIBS import32 ) + ELSE(BORLAND) + SET( FLTK_PLATFORM_DEPENDENT_LIBS wsock32 comctl32 ) + ENDIF(BORLAND) + ENDIF(NOT CYGWIN) +ENDIF(WIN32) + +IF(UNIX) + INCLUDE(${CMAKE_ROOT}/Modules/FindX11.cmake) + SET( FLTK_PLATFORM_DEPENDENT_LIBS ${X11_LIBRARIES} -lm) +ENDIF(UNIX) + +IF(APPLE) + SET( FLTK_PLATFORM_DEPENDENT_LIBS "-framework Carbon -framework Cocoa -framework ApplicationServices -lz") +ENDIF(APPLE) + +IF(CYGWIN) + SET( FLTK_PLATFORM_DEPENDENT_LIBS ole32 uuid comctl32 wsock32 supc++ -lm -lgdi32) +ENDIF(CYGWIN) + +# If FLTK_INCLUDE_DIR is already defined we assigne its value to FLTK_DIR +IF(FLTK_INCLUDE_DIR) + SET(FLTK_DIR ${FLTK_INCLUDE_DIR}) +ENDIF(FLTK_INCLUDE_DIR) + + +# If FLTK has been built using CMake we try to find everything directly +SET(FLTK_DIR_STRING "directory containing FLTKConfig.cmake. This is either the root of the build tree, or PREFIX/lib/fltk for an installation.") + +# Search only if the location is not already known. +IF(NOT FLTK_DIR) + # Get the system search path as a list. + IF(UNIX) + STRING(REGEX MATCHALL "[^:]+" FLTK_DIR_SEARCH1 "$ENV{PATH}") + ELSE(UNIX) + STRING(REGEX REPLACE "\\\\" "/" FLTK_DIR_SEARCH1 "$ENV{PATH}") + ENDIF(UNIX) + STRING(REGEX REPLACE "/;" ";" FLTK_DIR_SEARCH2 ${FLTK_DIR_SEARCH1}) + + # Construct a set of paths relative to the system search path. + SET(FLTK_DIR_SEARCH "") + FOREACH(dir ${FLTK_DIR_SEARCH2}) + SET(FLTK_DIR_SEARCH ${FLTK_DIR_SEARCH} "${dir}/../lib/fltk") + ENDFOREACH(dir) + + # + # Look for an installation or build tree. + # + FIND_PATH(FLTK_DIR FLTKConfig.cmake + # Look for an environment variable FLTK_DIR. + $ENV{FLTK_DIR} + + # Look in places relative to the system executable search path. + ${FLTK_DIR_SEARCH} + + # Look in standard UNIX install locations. + /usr/local/lib/fltk + /usr/lib/fltk + /usr/local/include + /usr/include + /usr/local/fltk + /usr/X11R6/include + + # Read from the CMakeSetup registry entries. It is likely that + # FLTK will have been recently built. + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10] + + # Help the user find it if we cannot. + DOC "The ${FLTK_DIR_STRING}" + ) +ENDIF(NOT FLTK_DIR) + +# If FLTK was found, load the configuration file to get the rest of the +# settings. +IF(FLTK_DIR) + + # Check if FLTK was built using CMake + IF(EXISTS ${FLTK_DIR}/FLTKConfig.cmake) + SET(FLTK_BUILT_WITH_CMAKE 1) + ENDIF(EXISTS ${FLTK_DIR}/FLTKConfig.cmake) + + IF(FLTK_BUILT_WITH_CMAKE) + SET(FLTK_FOUND 1) + INCLUDE(${FLTK_DIR}/FLTKConfig.cmake) + + # Fluid + IF(FLUID_COMMAND) + SET(FLTK_FLUID_EXECUTABLE ${FLUID_COMMAND} CACHE FILEPATH "Fluid executable") + ELSE(FLUID_COMMAND) + FIND_PROGRAM(FLTK_FLUID_EXECUTABLE fluid PATHS + ${FLTK_EXECUTABLE_DIRS} + ${FLTK_EXECUTABLE_DIRS}/RelWithDebInfo + ${FLTK_EXECUTABLE_DIRS}/Debug + ${FLTK_EXECUTABLE_DIRS}/Release + NO_SYSTEM_PATH) + ENDIF(FLUID_COMMAND) + # MARK_AS_ADVANCED(FLTK_FLUID_EXECUTABLE) + + SET(FLTK_INCLUDE_DIR ${FLTK_DIR}) + LINK_DIRECTORIES(${FLTK_LIBRARY_DIRS}) + + SET(FLTK_BASE_LIBRARY fltk) + SET(FLTK_GL_LIBRARY fltk_gl) + SET(FLTK_FORMS_LIBRARY fltk_forms) + SET(FLTK_IMAGES_LIBRARY fltk_images) + + # Add the extra libraries + LOAD_CACHE(${FLTK_DIR} + READ_WITH_PREFIX + FL FLTK_USE_SYSTEM_JPEG + FL FLTK_USE_SYSTEM_PNG + FL FLTK_USE_SYSTEM_ZLIB + ) + + SET(FLTK_IMAGES_LIBS "") + IF(FLFLTK_USE_SYSTEM_JPEG) + SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_jpeg) + ENDIF(FLFLTK_USE_SYSTEM_JPEG) + IF(FLFLTK_USE_SYSTEM_PNG) + SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_png) + ENDIF(FLFLTK_USE_SYSTEM_PNG) + IF(FLFLTK_USE_SYSTEM_ZLIB) + SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_zlib) + ENDIF(FLFLTK_USE_SYSTEM_ZLIB) + SET(FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}" CACHE INTERNAL + "Extra libraries for fltk_images library.") + + ELSE(FLTK_BUILT_WITH_CMAKE) + + # if FLTK was not built using CMake + # Find fluid executable. + FIND_PROGRAM(FLTK_FLUID_EXECUTABLE fluid ${FLTK_INCLUDE_DIR}/fluid) + + # Use location of fluid to help find everything else. + SET(FLTK_INCLUDE_SEARCH_PATH "") + SET(FLTK_LIBRARY_SEARCH_PATH "") + IF(FLTK_FLUID_EXECUTABLE) + GET_FILENAME_COMPONENT(FLTK_BIN_DIR "${FLTK_FLUID_EXECUTABLE}" PATH) + SET(FLTK_INCLUDE_SEARCH_PATH ${FLTK_INCLUDE_SEARCH_PATH} + ${FLTK_BIN_DIR}/../include ${FLTK_BIN_DIR}/..) + SET(FLTK_LIBRARY_SEARCH_PATH ${FLTK_LIBRARY_SEARCH_PATH} + ${FLTK_BIN_DIR}/../lib) + SET(FLTK_WRAP_UI 1) + ENDIF(FLTK_FLUID_EXECUTABLE) + + SET(FLTK_INCLUDE_SEARCH_PATH ${FLTK_INCLUDE_SEARCH_PATH} + /usr/local/include + /usr/include + /usr/local/fltk + /usr/X11R6/include + ) + + FIND_PATH(FLTK_INCLUDE_DIR FL/Fl.h ${FLTK_INCLUDE_SEARCH_PATH}) + + SET(FLTK_LIBRARY_SEARCH_PATH ${FLTK_LIBRARY_SEARCH_PATH} + /usr/lib + /usr/local/lib + /usr/local/fltk/lib + /usr/X11R6/lib + ${FLTK_INCLUDE_DIR}/lib + ) + + FIND_LIBRARY(FLTK_BASE_LIBRARY NAMES fltk fltkd + PATHS ${FLTK_LIBRARY_SEARCH_PATH}) + FIND_LIBRARY(FLTK_GL_LIBRARY NAMES fltkgl fltkgld fltk_gl + PATHS ${FLTK_LIBRARY_SEARCH_PATH}) + FIND_LIBRARY(FLTK_FORMS_LIBRARY NAMES fltkforms fltkformsd fltk_forms + PATHS ${FLTK_LIBRARY_SEARCH_PATH}) + FIND_LIBRARY(FLTK_IMAGES_LIBRARY NAMES fltkimages fltkimagesd fltk_images + PATHS ${FLTK_LIBRARY_SEARCH_PATH}) + + # Find the extra libraries needed for the fltk_images library. + IF(UNIX) + FIND_PROGRAM(FLTK_CONFIG_SCRIPT fltk-config PATHS ${FLTK_BIN_DIR}) + IF(FLTK_CONFIG_SCRIPT) + EXEC_PROGRAM(${FLTK_CONFIG_SCRIPT} ARGS --use-images --ldflags + OUTPUT_VARIABLE FLTK_IMAGES_LDFLAGS) + SET(FLTK_LIBS_EXTRACT_REGEX ".*-lfltk_images (.*) -lfltk.*") + IF("${FLTK_IMAGES_LDFLAGS}" MATCHES "${FLTK_LIBS_EXTRACT_REGEX}") + STRING(REGEX REPLACE "${FLTK_LIBS_EXTRACT_REGEX}" "\\1" + FLTK_IMAGES_LIBS "${FLTK_IMAGES_LDFLAGS}") + STRING(REGEX REPLACE " +" ";" FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}") + # The EXEC_PROGRAM will not be inherited into subdirectories from + # the file that originally included this module. Save the answer. + SET(FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}" CACHE INTERNAL + "Extra libraries for fltk_images library.") + ENDIF("${FLTK_IMAGES_LDFLAGS}" MATCHES "${FLTK_LIBS_EXTRACT_REGEX}") + ENDIF(FLTK_CONFIG_SCRIPT) + ENDIF(UNIX) + + ENDIF(FLTK_BUILT_WITH_CMAKE) +ENDIF(FLTK_DIR) + + +SET(FLTK_FOUND 1) +FOREACH(var FLTK_FLUID_EXECUTABLE FLTK_INCLUDE_DIR + FLTK_BASE_LIBRARY FLTK_GL_LIBRARY + FLTK_FORMS_LIBRARY FLTK_IMAGES_LIBRARY) + IF(NOT ${var}) + SET(FLTK_FOUND 0) + ENDIF(NOT ${var}) +ENDFOREACH(var) + +IF(FLTK_FOUND) + SET(FLTK_LIBRARIES ${FLTK_IMAGES_LIBRARY} ${FLTK_IMAGES_LIBS} ${FLTK_BASE_LIBRARY} ${FLTK_GL_LIBRARY} + ${FLTK_FORMS_LIBRARY} ) + IF(APPLE) + SET(FLTK_LIBRARIES ${FLTK_PLATFORM_DEPENDENT_LIBS} ${FLTK_LIBRARIES}) + ELSE(APPLE) + SET(FLTK_LIBRARIES ${FLTK_LIBRARIES} ${FLTK_PLATFORM_DEPENDENT_LIBS}) + ENDIF(APPLE) + + # The following deprecated settings are for compatibility with CMake 1.4 + SET (HAS_FLTK ${FLTK_FOUND}) + SET (FLTK_INCLUDE_PATH ${FLTK_INCLUDE_DIR}) + SET (FLTK_FLUID_EXE ${FLTK_FLUID_EXECUTABLE}) + SET (FLTK_LIBRARY ${FLTK_LIBRARIES}) +ENDIF(FLTK_FOUND) diff --git a/CMakeLua/Modules/FindFLTK2.cmake b/CMakeLua/Modules/FindFLTK2.cmake new file mode 100755 index 0000000..a434758 --- /dev/null +++ b/CMakeLua/Modules/FindFLTK2.cmake @@ -0,0 +1,268 @@ +# - Find the native FLTK2 includes and library +# The following settings are defined +# FLTK2_FLUID_EXECUTABLE, where to find the Fluid tool +# FLTK2_WRAP_UI, This enables the FLTK2_WRAP_UI command +# FLTK2_INCLUDE_DIR, where to find include files +# FLTK2_LIBRARIES, list of fltk2 libraries +# FLTK2_FOUND, Don't use FLTK2 if false. +# The following settings should not be used in general. +# FLTK2_BASE_LIBRARY = the full path to fltk2.lib +# FLTK2_GL_LIBRARY = the full path to fltk2_gl.lib +# FLTK2_IMAGES_LIBRARY = the full path to fltk2_images.lib + +SET (FLTK2_DIR $ENV{FLTK2_DIR} ) + +# Platform dependent libraries required by FLTK2 +IF(WIN32) + IF(NOT CYGWIN) + IF(BORLAND) + SET( FLTK2_PLATFORM_DEPENDENT_LIBS import32 ) + ELSE(BORLAND) + SET( FLTK2_PLATFORM_DEPENDENT_LIBS wsock32 comctl32 ) + ENDIF(BORLAND) + ENDIF(NOT CYGWIN) +ENDIF(WIN32) + +IF(UNIX) + INCLUDE(${CMAKE_ROOT}/Modules/FindX11.cmake) + SET( FLTK2_PLATFORM_DEPENDENT_LIBS ${X11_LIBRARIES} -lm) +ENDIF(UNIX) + +IF(APPLE) + SET( FLTK2_PLATFORM_DEPENDENT_LIBS "-framework Carbon -framework Cocoa -framework ApplicationServices -lz") +ENDIF(APPLE) + +IF(CYGWIN) + SET( FLTK2_PLATFORM_DEPENDENT_LIBS ole32 uuid comctl32 wsock32 supc++ -lm -lgdi32) +ENDIF(CYGWIN) + +# If FLTK2_INCLUDE_DIR is already defined we assigne its value to FLTK2_DIR +IF(FLTK2_INCLUDE_DIR) + SET(FLTK2_DIR ${FLTK2_INCLUDE_DIR}) +ELSE(FLTK2_INCLUDE_DIR) + SET(FLTK2_INCLUDE_DIR ${FLTK2_DIR}) +ENDIF(FLTK2_INCLUDE_DIR) + + +# If FLTK2 has been built using CMake we try to find everything directly +SET(FLTK2_DIR_STRING "directory containing FLTK2Config.cmake. This is either the root of the build tree, or PREFIX/lib/fltk for an installation.") + +# Search only if the location is not already known. +IF(NOT FLTK2_DIR) + # Get the system search path as a list. + IF(UNIX) + STRING(REGEX MATCHALL "[^:]+" FLTK2_DIR_SEARCH1 "$ENV{PATH}") + ELSE(UNIX) + STRING(REGEX REPLACE "\\\\" "/" FLTK2_DIR_SEARCH1 "$ENV{PATH}") + ENDIF(UNIX) + STRING(REGEX REPLACE "/;" ";" FLTK2_DIR_SEARCH2 ${FLTK2_DIR_SEARCH1}) + + # Construct a set of paths relative to the system search path. + SET(FLTK2_DIR_SEARCH "") + FOREACH(dir ${FLTK2_DIR_SEARCH2}) + SET(FLTK2_DIR_SEARCH ${FLTK2_DIR_SEARCH} "${dir}/../lib/fltk") + ENDFOREACH(dir) + + # + # Look for an installation or build tree. + # + FIND_PATH(FLTK2_DIR FLTK2Config.cmake + # Look for an environment variable FLTK2_DIR. + $ENV{FLTK2_DIR} + + # Look in places relative to the system executable search path. + ${FLTK2_DIR_SEARCH} + + # Look in standard UNIX install locations. + /usr/local/lib/fltk2 + /usr/lib/fltk2 + /usr/local/include + /usr/include + /usr/local/fltk2 + /usr/X11R6/include + + # Read from the CMakeSetup registry entries. It is likely that + # FLTK2 will have been recently built. + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10] + + # Help the user find it if we cannot. + DOC "The ${FLTK2_DIR_STRING}" + ) + + IF(NOT FLTK2_DIR) + FIND_PATH(FLTK2_DIR fltk/run.h ${FLTK2_INCLUDE_SEARCH_PATH}) + ENDIF(NOT FLTK2_DIR) + +ENDIF(NOT FLTK2_DIR) + + +# If FLTK2 was found, load the configuration file to get the rest of the +# settings. +IF(FLTK2_DIR) + + # Check if FLTK2 was built using CMake + IF(EXISTS ${FLTK2_DIR}/FLTK2Config.cmake) + SET(FLTK2_BUILT_WITH_CMAKE 1) + ENDIF(EXISTS ${FLTK2_DIR}/FLTK2Config.cmake) + + IF(FLTK2_BUILT_WITH_CMAKE) + SET(FLTK2_FOUND 1) + INCLUDE(${FLTK2_DIR}/FLTK2Config.cmake) + + # Fluid + IF(FLUID_COMMAND) + SET(FLTK2_FLUID_EXECUTABLE ${FLUID_COMMAND} CACHE FILEPATH "Fluid executable") + ELSE(FLUID_COMMAND) + FIND_PROGRAM(FLTK2_FLUID_EXECUTABLE fluid2 PATHS + ${FLTK2_EXECUTABLE_DIRS} + ${FLTK2_EXECUTABLE_DIRS}/RelWithDebInfo + ${FLTK2_EXECUTABLE_DIRS}/Debug + ${FLTK2_EXECUTABLE_DIRS}/Release + NO_SYSTEM_PATH) + ENDIF(FLUID_COMMAND) + + MARK_AS_ADVANCED(FLTK2_FLUID_EXECUTABLE) + SET( FLTK_FLUID_EXECUTABLE ${FLTK2_FLUID_EXECUTABLE} ) + + + + + SET(FLTK2_INCLUDE_DIR ${FLTK2_DIR}) + LINK_DIRECTORIES(${FLTK2_LIBRARY_DIRS}) + + SET(FLTK2_BASE_LIBRARY fltk2) + SET(FLTK2_GL_LIBRARY fltk2_gl) + SET(FLTK2_IMAGES_LIBRARY fltk2_images) + + # Add the extra libraries + LOAD_CACHE(${FLTK2_DIR} + READ_WITH_PREFIX + FL FLTK2_USE_SYSTEM_JPEG + FL FLTK2_USE_SYSTEM_PNG + FL FLTK2_USE_SYSTEM_ZLIB + ) + + SET(FLTK2_IMAGES_LIBS "") + IF(FLFLTK2_USE_SYSTEM_JPEG) + SET(FLTK2_IMAGES_LIBS ${FLTK2_IMAGES_LIBS} fltk2_jpeg) + ENDIF(FLFLTK2_USE_SYSTEM_JPEG) + IF(FLFLTK2_USE_SYSTEM_PNG) + SET(FLTK2_IMAGES_LIBS ${FLTK2_IMAGES_LIBS} fltk2_png) + ENDIF(FLFLTK2_USE_SYSTEM_PNG) + IF(FLFLTK2_USE_SYSTEM_ZLIB) + SET(FLTK2_IMAGES_LIBS ${FLTK2_IMAGES_LIBS} fltk2_zlib) + ENDIF(FLFLTK2_USE_SYSTEM_ZLIB) + SET(FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}" CACHE INTERNAL + "Extra libraries for fltk2_images library.") + + ELSE(FLTK2_BUILT_WITH_CMAKE) + + # if FLTK2 was not built using CMake + # Find fluid executable. + FIND_PROGRAM(FLTK2_FLUID_EXECUTABLE fluid2 ${FLTK2_INCLUDE_DIR}/fluid) + + # Use location of fluid to help find everything else. + SET(FLTK2_INCLUDE_SEARCH_PATH "") + SET(FLTK2_LIBRARY_SEARCH_PATH "") + IF(FLTK2_FLUID_EXECUTABLE) + SET( FLTK_FLUID_EXECUTABLE ${FLTK2_FLUID_EXECUTABLE} ) + GET_FILENAME_COMPONENT(FLTK2_BIN_DIR "${FLTK2_FLUID_EXECUTABLE}" PATH) + SET(FLTK2_INCLUDE_SEARCH_PATH ${FLTK2_INCLUDE_SEARCH_PATH} + ${FLTK2_BIN_DIR}/../include ${FLTK2_BIN_DIR}/..) + SET(FLTK2_LIBRARY_SEARCH_PATH ${FLTK2_LIBRARY_SEARCH_PATH} + ${FLTK2_BIN_DIR}/../lib) + SET(FLTK2_WRAP_UI 1) + ENDIF(FLTK2_FLUID_EXECUTABLE) + + SET(FLTK2_INCLUDE_SEARCH_PATH ${FLTK2_INCLUDE_SEARCH_PATH} + /usr/local/include + /usr/include + /usr/local/fltk2 + /usr/X11R6/include + ) + + FIND_PATH(FLTK2_INCLUDE_DIR fltk/run.h ${FLTK2_INCLUDE_SEARCH_PATH}) + + SET(FLTK2_LIBRARY_SEARCH_PATH ${FLTK2_LIBRARY_SEARCH_PATH} + /usr/lib + /usr/local/lib + /usr/local/fltk2/lib + /usr/X11R6/lib + ${FLTK2_INCLUDE_DIR}/lib + ) + + FIND_LIBRARY(FLTK2_BASE_LIBRARY NAMES fltk2 + PATHS ${FLTK2_LIBRARY_SEARCH_PATH}) + FIND_LIBRARY(FLTK2_GL_LIBRARY NAMES fltk2_gl + PATHS ${FLTK2_LIBRARY_SEARCH_PATH}) + FIND_LIBRARY(FLTK2_IMAGES_LIBRARY NAMES fltk2_images + PATHS ${FLTK2_LIBRARY_SEARCH_PATH}) + + # Find the extra libraries needed for the fltk_images library. + IF(UNIX) + FIND_PROGRAM(FLTK2_CONFIG_SCRIPT fltk2-config PATHS ${FLTK2_BIN_DIR}) + IF(FLTK2_CONFIG_SCRIPT) + EXEC_PROGRAM(${FLTK2_CONFIG_SCRIPT} ARGS --use-images --ldflags + OUTPUT_VARIABLE FLTK2_IMAGES_LDFLAGS) + SET(FLTK2_LIBS_EXTRACT_REGEX ".*-lfltk2_images (.*) -lfltk2.*") + IF("${FLTK2_IMAGES_LDFLAGS}" MATCHES "${FLTK2_LIBS_EXTRACT_REGEX}") + STRING(REGEX REPLACE "${FLTK2_LIBS_EXTRACT_REGEX}" "\\1" + FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LDFLAGS}") + STRING(REGEX REPLACE " +" ";" FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}") + # The EXEC_PROGRAM will not be inherited into subdirectories from + # the file that originally included this module. Save the answer. + SET(FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}" CACHE INTERNAL + "Extra libraries for fltk_images library.") + ENDIF("${FLTK2_IMAGES_LDFLAGS}" MATCHES "${FLTK2_LIBS_EXTRACT_REGEX}") + ENDIF(FLTK2_CONFIG_SCRIPT) + ENDIF(UNIX) + + ENDIF(FLTK2_BUILT_WITH_CMAKE) +ENDIF(FLTK2_DIR) + + +SET(FLTK2_FOUND 1) +FOREACH(var FLTK2_FLUID_EXECUTABLE FLTK2_INCLUDE_DIR + FLTK2_BASE_LIBRARY FLTK2_GL_LIBRARY + FLTK2_IMAGES_LIBRARY) + IF(NOT ${var}) + MESSAGE( STATUS "${var} not found" ) + SET(FLTK2_FOUND 0) + ENDIF(NOT ${var}) +ENDFOREACH(var) + + +IF(FLTK2_FOUND) + SET(FLTK2_LIBRARIES ${FLTK2_IMAGES_LIBRARY} ${FLTK2_IMAGES_LIBS} ${FLTK2_BASE_LIBRARY} ${FLTK2_GL_LIBRARY} ) + IF(APPLE) + SET(FLTK2_LIBRARIES ${FLTK2_PLATFORM_DEPENDENT_LIBS} ${FLTK2_LIBRARIES}) + ELSE(APPLE) + SET(FLTK2_LIBRARIES ${FLTK2_LIBRARIES} ${FLTK2_PLATFORM_DEPENDENT_LIBS}) + ENDIF(APPLE) + + # The following deprecated settings are for compatibility with CMake 1.4 + SET (HAS_FLTK2 ${FLTK2_FOUND}) + SET (FLTK2_INCLUDE_PATH ${FLTK2_INCLUDE_DIR}) + SET (FLTK2_FLUID_EXE ${FLTK2_FLUID_EXECUTABLE}) + SET (FLTK2_LIBRARY ${FLTK2_LIBRARIES}) +ELSE(FLTK2_FOUND) + # make FIND_PACKAGE friendly + IF(NOT FLTK2_FIND_QUIETLY) + IF(FLTK2_FIND_REQUIRED) + MESSAGE(FATAL_ERROR + "FLTK2 required, please specify its location with FLTK2_DIR.") + ELSE(FLTK2_FIND_REQUIRED) + MESSAGE(STATUS "FLTK2 was not found.") + ENDIF(FLTK2_FIND_REQUIRED) + ENDIF(NOT FLTK2_FIND_QUIETLY) +ENDIF(FLTK2_FOUND) + diff --git a/CMakeLua/Modules/FindFreetype.cmake b/CMakeLua/Modules/FindFreetype.cmake new file mode 100644 index 0000000..c128c47 --- /dev/null +++ b/CMakeLua/Modules/FindFreetype.cmake @@ -0,0 +1,94 @@ +# - Locate FreeType library +# This module defines +# FREETYPE_LIBRARIES, the library to link against +# FREETYPE_FOUND, if false, do not try to link to FREETYPE +# FREETYPE_INCLUDE_DIRS, where to find headers. +# This is the concatenation of the paths: +# FREETYPE_INCLUDE_DIR_ft2build +# FREETYPE_INCLUDE_DIR_freetype2 +# +# $FREETYPE_DIR is an environment variable that would +# correspond to the ./configure --prefix=$FREETYPE_DIR +# used in building FREETYPE. + +# Created by Eric Wing. +# Modifications by Alexander Neundorf. +# This file has been renamed to "FindFreetype.cmake" instead of the correct +# "FindFreeType.cmake" in order to be compatible with the one from KDE4, Alex. + +# Ugh, FreeType seems to use some #include trickery which +# makes this harder than it should be. It looks like they +# put ft2build.h in a common/easier-to-find location which +# then contains a #include to a more specific header in a +# more specific location (#include ). +# Then from there, they need to set a bunch of #define's +# so you can do something like: +# #include FT_FREETYPE_H +# Unfortunately, using CMake's mechanisms like INCLUDE_DIRECTORIES() +# wants explicit full paths and this trickery doesn't work too well. +# I'm going to attempt to cut out the middleman and hope +# everything still works. +FIND_PATH(FREETYPE_INCLUDE_DIR_ft2build ft2build.h + $ENV{FREETYPE_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + + +FIND_PATH(FREETYPE_INCLUDE_DIR_ft2build ft2build.h + PATHS + /usr/local/X11R6/include + /usr/local/X11/include + /usr/X11/include + /sw/include + /opt/local/include + /usr/freeware/include +) + +FIND_PATH(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h + $ENV{FREETYPE_DIR}/include/freetype2 + NO_DEFAULT_PATH +) + +FIND_PATH(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h + /usr/local/X11R6/include + /usr/local/X11/include + /usr/X11/include + /sw/include + /opt/local/include + /usr/freeware/include + PATH_SUFFIXES freetype2 +) + +FIND_LIBRARY(FREETYPE_LIBRARY + NAMES freetype libfreetype freetype219 + PATHS + $ENV{FREETYPE_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(FREETYPE_LIBRARY + NAMES freetype libfreetype freetype219 + PATHS + /usr/local/X11R6 + /usr/local/X11 + /usr/X11 + /sw + /usr/freeware + PATH_SUFFIXES lib64 lib +) + +# set the user variables +IF(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2) + SET(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}") +ENDIF(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2) +SET(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}") + +# handle the QUIETLY and REQUIRED arguments and set FREETYPE_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype DEFAULT_MSG FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS) + + +MARK_AS_ADVANCED(FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_INCLUDE_DIR_ft2build) diff --git a/CMakeLua/Modules/FindGCCXML.cmake b/CMakeLua/Modules/FindGCCXML.cmake new file mode 100644 index 0000000..594f970 --- /dev/null +++ b/CMakeLua/Modules/FindGCCXML.cmake @@ -0,0 +1,8 @@ +# - Find the GCC-XML front-end executable. +FIND_PROGRAM(GCCXML + NAMES gccxml + ../GCC_XML/gccxml + PATHS [HKEY_CURRENT_USER\\Software\\Kitware\\GCC_XML;loc] + "$ENV{ProgramFiles}/GCC_XML" + "C:/Program Files/GCC_XML" +) diff --git a/CMakeLua/Modules/FindGDAL.cmake b/CMakeLua/Modules/FindGDAL.cmake new file mode 100644 index 0000000..a92b04c --- /dev/null +++ b/CMakeLua/Modules/FindGDAL.cmake @@ -0,0 +1,84 @@ +# Locate gdal +# This module defines +# GDAL_LIBRARY +# GDAL_FOUND, if false, do not try to link to gdal +# GDAL_INCLUDE_DIR, where to find the headers +# +# $GDALDIR is an environment variable that would +# correspond to the ./configure --prefix=$GDAL_DIR +# used in building gdal. +# +# Created by Eric Wing. I'm not a gdal user, but OpenSceneGraph uses it +# for osgTerrain so I whipped this module together for completeness. +# I actually don't know the conventions or where files are typically +# placed in distros. +# Any real gdal users are encouraged to correct this (but please don't +# break the OS X framework stuff when doing so which is what usually seems +# to happen). + +# This makes the presumption that you are include gdal.h like +# #include "gdal.h" + +FIND_PATH(GDAL_INCLUDE_DIR gdal.h + $ENV{GDAL_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + + + +FIND_PATH(GDAL_INCLUDE_DIR gdal.h + PATHS + ~/Library/Frameworks/gdal.framework/Headers + /Library/Frameworks/gdal.framework/Headers + /usr/local/include/gdal + /usr/local/include/GDAL + /usr/local/include + /usr/include/gdal + /usr/include/GDAL + /usr/include + /sw/include/gdal + /sw/include/GDAL + /sw/include # Fink + /opt/local/include/gdal + /opt/local/include/GDAL + /opt/local/include # DarwinPorts + /opt/csw/include/gdal + /opt/csw/include/GDAL + /opt/csw/include # Blastwave + /opt/include/gdal + /opt/include/GDAL + /opt/include +) + +FIND_LIBRARY(GDAL_LIBRARY + NAMES gdal GDAL + PATHS + $ENV{GDAL_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(GDAL_LIBRARY + NAMES gdal GDAL + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + /usr/freeware + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;GDAL_ROOT]/lib + PATH_SUFFIXES lib64 lib +) + +SET(GDAL_FOUND "NO") +IF(GDAL_LIBRARY AND GDAL_INCLUDE_DIR) + SET(GDAL_FOUND "YES") +ENDIF(GDAL_LIBRARY AND GDAL_INCLUDE_DIR) + + + diff --git a/CMakeLua/Modules/FindGIF.cmake b/CMakeLua/Modules/FindGIF.cmake new file mode 100644 index 0000000..305be68 --- /dev/null +++ b/CMakeLua/Modules/FindGIF.cmake @@ -0,0 +1,67 @@ +# This module defines +# GIF_LIBRARIES - libraries to link to in order to use GIF +# GIF_FOUND, if false, do not try to link +# GIF_INCLUDE_DIR, where to find the headers +# +# $GIF_DIR is an environment variable that would +# correspond to the ./configure --prefix=$GIF_DIR + +# Created by Eric Wing. +# Modifications by Alexander Neundorf + +FIND_PATH(GIF_INCLUDE_DIR gif_lib.h + PATHS + $ENV{GIF_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + + + +FIND_PATH(GIF_INCLUDE_DIR gif_lib.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /sw/include # Fink + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/include + /usr/freeware/include +) + +# the gif library can have many names :-/ +SET(POTENTIAL_GIF_LIBS gif libgif ungif libungif giflib) + +FIND_LIBRARY(GIF_LIBRARY + NAMES ${POTENTIAL_GIF_LIBS} + PATHS + $ENV{GIF_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + + + +FIND_LIBRARY(GIF_LIBRARY + NAMES ${POTENTIAL_GIF_LIBS} + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + /usr/freeware + PATH_SUFFIXES lib64 lib +) + +# see readme.txt +SET(GIF_LIBRARIES ${GIF_LIBRARY}) + +# handle the QUIETLY and REQUIRED arguments and set GIF_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GIF DEFAULT_MSG GIF_LIBRARY GIF_INCLUDE_DIR) + +MARK_AS_ADVANCED(GIF_INCLUDE_DIR GIF_LIBRARY) diff --git a/CMakeLua/Modules/FindGLU.cmake b/CMakeLua/Modules/FindGLU.cmake new file mode 100644 index 0000000..fa56a51 --- /dev/null +++ b/CMakeLua/Modules/FindGLU.cmake @@ -0,0 +1,14 @@ + + +# Use of this file is deprecated, and is here for backwards compatibility with CMake 1.4 +# GLU library is now found by FindOpenGL.cmake +# +# + +INCLUDE(FindOpenGL) + +IF (OPENGL_GLU_FOUND) + SET (GLU_LIBRARY ${OPENGL_LIBRARIES}) + SET (GLU_INCLUDE_PATH ${OPENGL_INCLUDE_DIR}) +ENDIF (OPENGL_GLU_FOUND) + diff --git a/CMakeLua/Modules/FindGLUT.cmake b/CMakeLua/Modules/FindGLUT.cmake new file mode 100644 index 0000000..ad1d5b5 --- /dev/null +++ b/CMakeLua/Modules/FindGLUT.cmake @@ -0,0 +1,95 @@ +# - try to find glut library and include files +# GLUT_INCLUDE_DIR, where to find GL/glut.h, etc. +# GLUT_LIBRARIES, the libraries to link against +# GLUT_FOUND, If false, do not try to use GLUT. +# Also defined, but not for general use are: +# GLUT_glut_LIBRARY = the full path to the glut library. +# GLUT_Xmu_LIBRARY = the full path to the Xmu library. +# GLUT_Xi_LIBRARY = the full path to the Xi Library. + +IF (WIN32) + + IF(CYGWIN) + + FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h ) + + FIND_LIBRARY( GLUT_glut_LIBRARY glut32 + ${OPENGL_LIBRARY_DIR} + ) + + + ELSE(CYGWIN) + + FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h + ${GLUT_ROOT_PATH}/include + ) + + FIND_LIBRARY( GLUT_glut_LIBRARY glut + ${GLUT_ROOT_PATH}/Release + ${OPENGL_LIBRARY_DIR} + ) + + ENDIF(CYGWIN) + +ELSE (WIN32) + + IF (APPLE) +# These values for Apple could probably do with improvement. + FIND_PATH( GLUT_INCLUDE_DIR glut.h + /System/Library/Frameworks/GLUT.framework/Versions/A/Headers + ${OPENGL_LIBRARY_DIR} + ) + SET(GLUT_glut_LIBRARY "-framework GLUT" CACHE STRING "GLUT library for OSX") + SET(GLUT_cocoa_LIBRARY "-framework Cocoa" CACHE STRING "Cocoa framework for OSX") + ELSE (APPLE) + + FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h + /usr/include/GL + /usr/openwin/share/include + /usr/openwin/include + /opt/graphics/OpenGL/include + /opt/graphics/OpenGL/contrib/libglut + ) + + FIND_LIBRARY( GLUT_glut_LIBRARY glut + /usr/openwin/lib + ) + + FIND_LIBRARY( GLUT_Xi_LIBRARY Xi + /usr/openwin/lib + ) + + FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu + /usr/openwin/lib + ) + + ENDIF (APPLE) + +ENDIF (WIN32) + +SET( GLUT_FOUND "NO" ) +IF(GLUT_INCLUDE_DIR) + IF(GLUT_glut_LIBRARY) + # Is -lXi and -lXmu required on all platforms that have it? + # If not, we need some way to figure out what platform we are on. + SET( GLUT_LIBRARIES + ${GLUT_glut_LIBRARY} + ${GLUT_Xmu_LIBRARY} + ${GLUT_Xi_LIBRARY} + ${GLUT_cocoa_LIBRARY} + ) + SET( GLUT_FOUND "YES" ) + +#The following deprecated settings are for backwards compatibility with CMake1.4 + SET (GLUT_LIBRARY ${GLUT_LIBRARIES}) + SET (GLUT_INCLUDE_PATH ${GLUT_INCLUDE_DIR}) + + ENDIF(GLUT_glut_LIBRARY) +ENDIF(GLUT_INCLUDE_DIR) + +MARK_AS_ADVANCED( + GLUT_INCLUDE_DIR + GLUT_glut_LIBRARY + GLUT_Xmu_LIBRARY + GLUT_Xi_LIBRARY +) diff --git a/CMakeLua/Modules/FindGTK.cmake b/CMakeLua/Modules/FindGTK.cmake new file mode 100644 index 0000000..7d80241 --- /dev/null +++ b/CMakeLua/Modules/FindGTK.cmake @@ -0,0 +1,152 @@ +# - try to find GTK (and glib) and GTKGLArea +# GTK_INCLUDE_DIR - Directories to include to use GTK +# GTK_LIBRARIES - Files to link against to use GTK +# GTK_FOUND - GTK was found +# GTK_GL_FOUND - GTK's GL features were found + +# don't even bother under WIN32 +IF(UNIX) + + FIND_PATH( GTK_gtk_INCLUDE_PATH NAMES gtk/gtk.h + PATH_SUFFIXES gtk-1.2 gtk12 + PATHS + /usr/openwin/share/include + /usr/openwin/include + /opt/gnome/include + ) + + # Some Linux distributions (e.g. Red Hat) have glibconfig.h + # and glib.h in different directories, so we need to look + # for both. + # - Atanas Georgiev + + FIND_PATH( GTK_glibconfig_INCLUDE_PATH NAMES glibconfig.h + PATHS + /usr/openwin/share/include + /usr/local/include/glib12 + /usr/lib/glib/include + /usr/local/lib/glib/include + /opt/gnome/include + /opt/gnome/lib/glib/include + ) + + FIND_PATH( GTK_glib_INCLUDE_PATH NAMES glib.h + PATH_SUFFIXES gtk-1.2 glib-1.2 glib12 + PATHS + /usr/openwin/share/include + /usr/lib/glib/include + /opt/gnome/include + ) + + FIND_PATH( GTK_gtkgl_INCLUDE_PATH NAMES gtkgl/gtkglarea.h + PATHS /usr/openwin/share/include + /opt/gnome/include + ) + + FIND_LIBRARY( GTK_gtkgl_LIBRARY gtkgl + /usr/openwin/lib + /opt/gnome/lib + ) + + # + # The 12 suffix is thanks to the FreeBSD ports collection + # + + FIND_LIBRARY( GTK_gtk_LIBRARY + NAMES gtk gtk12 + PATHS /usr/openwin/lib + /opt/gnome/lib + ) + + FIND_LIBRARY( GTK_gdk_LIBRARY + NAMES gdk gdk12 + PATHS /usr/openwin/lib + /opt/gnome/lib + ) + + FIND_LIBRARY( GTK_gmodule_LIBRARY + NAMES gmodule gmodule12 + PATHS /usr/openwin/lib + /opt/gnome/lib + ) + + FIND_LIBRARY( GTK_glib_LIBRARY + NAMES glib glib12 + PATHS /usr/openwin/lib + /opt/gnome/lib + ) + + FIND_LIBRARY( GTK_Xi_LIBRARY + NAMES Xi + PATHS /usr/openwin/lib + /opt/gnome/lib + ) + + FIND_LIBRARY( GTK_gthread_LIBRARY + NAMES gthread gthread12 + PATHS /usr/openwin/lib + /opt/gnome/lib + ) + + IF(GTK_gtk_INCLUDE_PATH + AND GTK_glibconfig_INCLUDE_PATH + AND GTK_glib_INCLUDE_PATH + AND GTK_gtk_LIBRARY + AND GTK_glib_LIBRARY) + + # Assume that if gtk and glib were found, the other + # supporting libraries have also been found. + + SET( GTK_FOUND "YES" ) + SET( GTK_INCLUDE_DIR ${GTK_gtk_INCLUDE_PATH} + ${GTK_glibconfig_INCLUDE_PATH} + ${GTK_glib_INCLUDE_PATH} ) + SET( GTK_LIBRARIES ${GTK_gtk_LIBRARY} + ${GTK_gdk_LIBRARY} + ${GTK_glib_LIBRARY} ) + + IF(GTK_gmodule_LIBRARY) + SET(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_gmodule_LIBRARY}) + ENDIF(GTK_gmodule_LIBRARY) + IF(GTK_gthread_LIBRARY) + SET(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_gthread_LIBRARY}) + ENDIF(GTK_gthread_LIBRARY) + IF(GTK_Xi_LIBRARY) + SET(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_Xi_LIBRARY}) + ENDIF(GTK_Xi_LIBRARY) + + IF(GTK_gtkgl_INCLUDE_PATH AND GTK_gtkgl_LIBRARY) + SET( GTK_GL_FOUND "YES" ) + SET( GTK_INCLUDE_DIR ${GTK_INCLUDE_DIR} + ${GTK_gtkgl_INCLUDE_PATH} ) + SET( GTK_LIBRARIES ${GTK_gtkgl_LIBRARY} ${GTK_LIBRARIES} ) + MARK_AS_ADVANCED( + GTK_gtkgl_LIBRARY + GTK_gtkgl_INCLUDE_PATH + ) + ENDIF(GTK_gtkgl_INCLUDE_PATH AND GTK_gtkgl_LIBRARY) + + ENDIF(GTK_gtk_INCLUDE_PATH + AND GTK_glibconfig_INCLUDE_PATH + AND GTK_glib_INCLUDE_PATH + AND GTK_gtk_LIBRARY + AND GTK_glib_LIBRARY) + + MARK_AS_ADVANCED( + GTK_gdk_LIBRARY + GTK_glib_INCLUDE_PATH + GTK_glib_LIBRARY + GTK_glibconfig_INCLUDE_PATH + GTK_gmodule_LIBRARY + GTK_gthread_LIBRARY + GTK_Xi_LIBRARY + GTK_gtk_INCLUDE_PATH + GTK_gtk_LIBRARY + GTK_gtkgl_INCLUDE_PATH + GTK_gtkgl_LIBRARY + ) + +ENDIF(UNIX) + + + diff --git a/CMakeLua/Modules/FindGettext.cmake b/CMakeLua/Modules/FindGettext.cmake new file mode 100644 index 0000000..d1e3f9b --- /dev/null +++ b/CMakeLua/Modules/FindGettext.cmake @@ -0,0 +1,65 @@ +# - Find GNU gettext tools +# This module looks for the GNU gettext tools. This module defines the +# following values: +# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool. +# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool. +# GETTEXT_FOUND: True if gettext has been found. +# +# Additionally it provides the following macros: +# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN ) +# This will create a target "translations" which will convert the +# given input po files into the binary output mo file. If the +# ALL option is used, the translations will also be created when +# building the default target. + + + +FIND_PROGRAM(GETTEXT_MSGMERGE_EXECUTABLE msgmerge) + +FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt) + +MACRO(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFile) + + SET(_gmoFiles) + GET_FILENAME_COMPONENT(_potBasename ${_potFile} NAME_WE) + GET_FILENAME_COMPONENT(_absPotFile ${_potFile} ABSOLUTE) + + SET(_addToAll) + IF(${_firstPoFile} STREQUAL "ALL") + SET(_addToAll "ALL") + SET(_firstPoFile) + ENDIF(${_firstPoFile} STREQUAL "ALL") + + FOREACH (_currentPoFile ${ARGN}) + GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE) + GET_FILENAME_COMPONENT(_abs_PATH ${_absFile} PATH) + GET_FILENAME_COMPONENT(_lang ${_absFile} NAME_WE) + SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) + + ADD_CUSTOM_COMMAND( + OUTPUT ${_gmoFile} + COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile} + DEPENDS ${_absPotFile} ${_absFile} + ) + + INSTALL(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) + SET(_gmoFiles ${_gmoFiles} ${_gmoFile}) + + ENDFOREACH (_currentPoFile ) + + ADD_CUSTOM_TARGET(translations ${_addToAll} DEPENDS ${_gmoFiles}) + +ENDMACRO(GETTEXT_CREATE_TRANSLATIONS ) + +IF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE ) + SET(GETTEXT_FOUND TRUE) +ELSE (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE ) + SET(GETTEXT_FOUND FALSE) + IF (GetText_REQUIRED) + MESSAGE(FATAL_ERROR "GetText not found") + ENDIF (GetText_REQUIRED) +ENDIF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE ) + + + diff --git a/CMakeLua/Modules/FindGnuplot.cmake b/CMakeLua/Modules/FindGnuplot.cmake new file mode 100644 index 0000000..c12ebb7 --- /dev/null +++ b/CMakeLua/Modules/FindGnuplot.cmake @@ -0,0 +1,28 @@ +# - this module looks for gnuplot +# +# Once done this will define +# +# GNUPLOT_FOUND - system has Gnuplot +# GNUPLOT_EXECUTABLE - the Gnuplot executable + +INCLUDE(FindCygwin) + +FIND_PROGRAM(GNUPLOT_EXECUTABLE + NAMES + gnuplot + pgnuplot + wgnupl32 + PATHS + ${CYGWIN_INSTALL_PATH}/bin +) + +# for compatibility +SET(GNUPLOT ${GNUPLOT_EXECUTABLE}) + +# handle the QUIETLY and REQUIRED arguments and set GNUPLOT_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gnuplot DEFAULT_MSG GNUPLOT_EXECUTABLE) + +MARK_AS_ADVANCED( GNUPLOT_EXECUTABLE ) + diff --git a/CMakeLua/Modules/FindHSPELL.cmake b/CMakeLua/Modules/FindHSPELL.cmake new file mode 100644 index 0000000..fa5c275 --- /dev/null +++ b/CMakeLua/Modules/FindHSPELL.cmake @@ -0,0 +1,32 @@ +# - Try to find HSPELL +# Once done this will define +# +# HSPELL_FOUND - system has HSPELL +# HSPELL_INCLUDE_DIR - the HSPELL include directory +# HSPELL_LIBRARIES - The libraries needed to use HSPELL +# HSPELL_DEFINITIONS - Compiler switches required for using HSPELL + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (HSPELL_INCLUDE_DIR AND HSPELL_LIBRARIES) + # Already in cache, be silent + SET(HSPELL_FIND_QUIETLY TRUE) +ENDIF (HSPELL_INCLUDE_DIR AND HSPELL_LIBRARIES) + + +FIND_PATH(HSPELL_INCLUDE_DIR hspell.h ) + +FIND_LIBRARY(HSPELL_LIBRARIES NAMES hspell ) + +# handle the QUIETLY and REQUIRED arguments and set HSPELL_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(HSPELL DEFAULT_MSG HSPELL_LIBRARIES HSPELL_INCLUDE_DIR) + + +MARK_AS_ADVANCED(HSPELL_INCLUDE_DIR HSPELL_LIBRARIES) + diff --git a/CMakeLua/Modules/FindHTMLHelp.cmake b/CMakeLua/Modules/FindHTMLHelp.cmake new file mode 100644 index 0000000..faa35c4 --- /dev/null +++ b/CMakeLua/Modules/FindHTMLHelp.cmake @@ -0,0 +1,41 @@ +# - This module looks for Microsoft HTML Help Compiler +# It defines: +# HTML_HELP_COMPILER : full path to the Compiler (hhc.exe) +# HTML_HELP_INCLUDE_PATH : include path to the API (htmlhelp.h) +# HTML_HELP_LIBRARY : full path to the library (htmlhelp.lib) +# + +IF(WIN32) + + FIND_PROGRAM(HTML_HELP_COMPILER + hhc + "[HKEY_CURRENT_USER\\Software\\Microsoft\\HTML Help Workshop;InstallDir]" + "$ENV{ProgramFiles}/HTML Help Workshop" + "C:/Program Files/HTML Help Workshop" + ) + + GET_FILENAME_COMPONENT(HTML_HELP_COMPILER_PATH "${HTML_HELP_COMPILER}" PATH) + + FIND_PATH(HTML_HELP_INCLUDE_PATH + htmlhelp.h + "${HTML_HELP_COMPILER_PATH}/include" + "[HKEY_CURRENT_USER\\Software\\Microsoft\\HTML Help Workshop;InstallDir]/include" + "$ENV{ProgramFiles}/HTML Help Workshop/include" + "C:/Program Files/HTML Help Workshop/include" + ) + + FIND_LIBRARY(HTML_HELP_LIBRARY + htmlhelp + "${HTML_HELP_COMPILER_PATH}/lib" + "[HKEY_CURRENT_USER\\Software\\Microsoft\\HTML Help Workshop;InstallDir]/lib" + "$ENV{ProgramFiles}/HTML Help Workshop/lib" + "C:/Program Files/HTML Help Workshop/lib" + ) + + MARK_AS_ADVANCED( + HTML_HELP_COMPILER + HTML_HELP_INCLUDE_PATH + HTML_HELP_LIBRARY + ) + +ENDIF(WIN32) diff --git a/CMakeLua/Modules/FindITK.cmake b/CMakeLua/Modules/FindITK.cmake new file mode 100644 index 0000000..2e2b034 --- /dev/null +++ b/CMakeLua/Modules/FindITK.cmake @@ -0,0 +1,87 @@ +# - Find an ITK installation or build tree. + +# When ITK is found, the ITKConfig.cmake file is sourced to setup the +# location and configuration of ITK. Please read this file, or +# ITKConfig.cmake.in from the ITK source tree for the full list of +# definitions. Of particular interest is ITK_USE_FILE, a CMake source file +# that can be included to set the include directories, library directories, +# and preprocessor macros. In addition to the variables read from +# ITKConfig.cmake, this find module also defines +# ITK_DIR - The directory containing ITKConfig.cmake. +# This is either the root of the build tree, +# or the lib/InsightToolkit directory. +# This is the only cache entry. +# +# ITK_FOUND - Whether ITK was found. If this is true, +# ITK_DIR is okay. +# +# USE_ITK_FILE - The full path to the UseITK.cmake file. +# This is provided for backward +# compatability. Use ITK_USE_FILE +# instead. + + +SET(ITK_DIR_STRING "directory containing ITKConfig.cmake. This is either the root of the build tree, or PREFIX/lib/InsightToolkit for an installation.") + +# Search only if the location is not already known. +IF(NOT ITK_DIR) + # Get the system search path as a list. + IF(UNIX) + STRING(REGEX MATCHALL "[^:]+" ITK_DIR_SEARCH1 "$ENV{PATH}") + ELSE(UNIX) + STRING(REGEX REPLACE "\\\\" "/" ITK_DIR_SEARCH1 "$ENV{PATH}") + ENDIF(UNIX) + STRING(REGEX REPLACE "/;" ";" ITK_DIR_SEARCH2 ${ITK_DIR_SEARCH1}) + + # Construct a set of paths relative to the system search path. + SET(ITK_DIR_SEARCH "") + FOREACH(dir ${ITK_DIR_SEARCH2}) + SET(ITK_DIR_SEARCH ${ITK_DIR_SEARCH} "${dir}/../lib/InsightToolkit") + ENDFOREACH(dir) + + # + # Look for an installation or build tree. + # + FIND_PATH(ITK_DIR ITKConfig.cmake + # Look for an environment variable ITK_DIR. + $ENV{ITK_DIR} + + # Look in places relative to the system executable search path. + ${ITK_DIR_SEARCH} + + # Look in standard UNIX install locations. + /usr/local/lib/InsightToolkit + /usr/lib/InsightToolkit + + # Read from the CMakeSetup registry entries. It is likely that + # ITK will have been recently built. + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10] + + # Help the user find it if we cannot. + DOC "The ${ITK_DIR_STRING}" + ) +ENDIF(NOT ITK_DIR) + +# If ITK was found, load the configuration file to get the rest of the +# settings. +IF(ITK_DIR) + SET(ITK_FOUND 1) + INCLUDE(${ITK_DIR}/ITKConfig.cmake) + + # Set USE_ITK_FILE for backward-compatability. + SET(USE_ITK_FILE ${ITK_USE_FILE}) +ELSE(ITK_DIR) + SET(ITK_FOUND 0) + IF(ITK_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Please set ITK_DIR to the ${ITK_DIR_STRING}") + ENDIF(ITK_FIND_REQUIRED) +ENDIF(ITK_DIR) diff --git a/CMakeLua/Modules/FindImageMagick.cmake b/CMakeLua/Modules/FindImageMagick.cmake new file mode 100644 index 0000000..66e54bc --- /dev/null +++ b/CMakeLua/Modules/FindImageMagick.cmake @@ -0,0 +1,82 @@ +# - Find Image Magick +# This module finds if ImageMagick tools are installed and determines +# where the executables are. This code sets the following variables: +# +# IMAGEMAGICK_CONVERT_EXECUTABLE = +# the full path to the 'convert' utility +# IMAGEMAGICK_MOGRIFY_EXECUTABLE = +# the full path to the 'mogrify' utility +# IMAGEMAGICK_IMPORT_EXECUTABLE = +# the full path to the 'import' utility +# IMAGEMAGICK_MONTAGE_EXECUTABLE = +# the full path to the 'montage' utility +# IMAGEMAGICK_COMPOSITE_EXECUTABLE = +# the full path to the 'composite' utility +# + +IF (WIN32) + + # Try to find the ImageMagick binary path. + + FIND_PATH(IMAGEMAGICK_BINARY_PATH mogrify.exe + [HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath] + DOC "Path to the ImageMagick binary directory where all executable should be found." + ) + + # Be extra-careful here: we do NOT want CMake to look in the system's PATH + # env var to search for convert.exe, otherwise it is going to pick + # Window's own convert.exe, and you may say good-bye to your disk. + + FIND_PROGRAM(IMAGEMAGICK_CONVERT_EXECUTABLE + NAMES convert + PATHS ${IMAGEMAGICK_BINARY_PATH} + NO_SYSTEM_PATH + DOC "Path to ImageMagick's convert executable. WARNING: note that this tool, named convert.exe, conflicts with Microsoft Window's own convert.exe, which is used to convert FAT partitions to NTFS format ! Therefore, be extra-careful and make sure the right convert.exe has been picked." + ) + +ELSE (WIN32) + + SET (IMAGEMAGICK_BINARY_PATH "") + + FIND_PROGRAM(IMAGEMAGICK_CONVERT_EXECUTABLE + NAMES convert + PATHS ${IMAGEMAGICK_BINARY_PATH} + DOC "Path to ImageMagick's convert executable." + ) + +ENDIF (WIN32) + +# Find mogrify, import, montage, composite + +FIND_PROGRAM(IMAGEMAGICK_MOGRIFY_EXECUTABLE + NAMES mogrify + PATHS ${IMAGEMAGICK_BINARY_PATH} + DOC "Path to ImageMagick's mogrify executable." +) + +FIND_PROGRAM(IMAGEMAGICK_IMPORT_EXECUTABLE + NAMES import + PATHS ${IMAGEMAGICK_BINARY_PATH} + DOC "Path to ImageMagick's import executable." +) + +FIND_PROGRAM(IMAGEMAGICK_MONTAGE_EXECUTABLE + NAMES montage + PATHS ${IMAGEMAGICK_BINARY_PATH} + DOC "Path to ImageMagick's montage executable." +) + +FIND_PROGRAM(IMAGEMAGICK_COMPOSITE_EXECUTABLE + NAMES composite + PATHS ${IMAGEMAGICK_BINARY_PATH} + DOC "Path to ImageMagick's composite executable." +) + +MARK_AS_ADVANCED( + IMAGEMAGICK_BINARY_PATH + IMAGEMAGICK_CONVERT_EXECUTABLE + IMAGEMAGICK_MOGRIFY_EXECUTABLE + IMAGEMAGICK_IMPORT_EXECUTABLE + IMAGEMAGICK_MONTAGE_EXECUTABLE + IMAGEMAGICK_COMPOSITE_EXECUTABLE +) diff --git a/CMakeLua/Modules/FindJNI.cmake b/CMakeLua/Modules/FindJNI.cmake new file mode 100644 index 0000000..027e54a --- /dev/null +++ b/CMakeLua/Modules/FindJNI.cmake @@ -0,0 +1,145 @@ +# - Find JNI java libraries. +# This module finds if Java is installed and determines where the +# include files and libraries are. It also determines what the name of +# the library is. This code sets the following variables: +# +# JAVA_AWT_LIB_PATH = the path to the jawt library +# JAVA_JVM_LIB_PATH = the path to the jvm library +# JAVA_INCLUDE_PATH = the include path to jni.h +# JAVA_INCLUDE_PATH2 = the include path to jni_md.h +# JAVA_AWT_INCLUDE_PATH = the include path to jawt.h +# +GET_FILENAME_COMPONENT(java_install_version + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit;CurrentVersion]" NAME) +SET(JAVA_AWT_LIBRARY_DIRECTORIES + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/lib" + $ENV{JAVA_HOME}/jre/lib/i386 + $ENV{JAVA_HOME}/jre/lib/amd64 + /usr/lib + /usr/local/lib + /usr/lib/java/jre/lib/i386 + /usr/local/lib/java/jre/lib/i386 + /usr/local/share/java/jre/lib/i386 + /usr/lib/j2sdk1.4-sun/jre/lib/i386 + /usr/lib/j2sdk1.5-sun/jre/lib/i386 + /opt/sun-jdk-1.5.0.04/jre/lib/amd64 + /usr/lib/java/jre/lib/amd64 + /usr/local/lib/java/jre/lib/amd64 + /usr/local/share/java/jre/lib/amd64 + /usr/lib/j2sdk1.4-sun/jre/lib/amd64 + /usr/lib/j2sdk1.5-sun/jre/lib/amd64 + ) + +SET(JAVA_JVM_LIBRARY_DIRECTORIES) +FOREACH(dir ${JAVA_AWT_LIBRARY_DIRECTORIES}) + SET(JAVA_JVM_LIBRARY_DIRECTORIES + ${JAVA_JVM_LIBRARY_DIRECTORIES} + "${dir}" + "${dir}/client" + "${dir}/server" + ) +ENDFOREACH(dir) + + +SET(JAVA_AWT_INCLUDE_DIRECTORIES + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/include" + $ENV{JAVA_HOME}/include + /usr/include + /usr/local/include + /usr/lib/java/include + /usr/local/lib/java/include + /usr/local/share/java/include + /usr/lib/j2sdk1.4-sun/include + /usr/lib/j2sdk1.5-sun/include + /opt/sun-jdk-1.5.0.04/include + ) + +FOREACH(JAVA_PROG "${JAVA_RUNTIME}" "${JAVA_COMPILE}" "${JAVA_ARCHIVE}") + GET_FILENAME_COMPONENT(jpath "${JAVA_PROG}" PATH) + FOREACH(JAVA_INC_PATH ../include ../java/include ../share/java/include) + IF(EXISTS ${jpath}/${JAVA_INC_PATH}) + SET(JAVA_AWT_INCLUDE_DIRECTORIES ${JAVA_AWT_INCLUDE_DIRECTORIES} "${jpath}/${JAVA_INC_PATH}") + ENDIF(EXISTS ${jpath}/${JAVA_INC_PATH}) + ENDFOREACH(JAVA_INC_PATH) + FOREACH(JAVA_LIB_PATH + ../lib ../jre/lib ../jre/lib/i386 + ../java/lib ../java/jre/lib ../java/jre/lib/i386 + ../share/java/lib ../share/java/jre/lib ../share/java/jre/lib/i386) + IF(EXISTS ${jpath}/${JAVA_LIB_PATH}) + SET(JAVA_AWT_LIBRARY_DIRECTORIES ${JAVA_AWT_LIBRARY_DIRECTORIES} "${jpath}/${JAVA_LIB_PATH}") + ENDIF(EXISTS ${jpath}/${JAVA_LIB_PATH}) + ENDFOREACH(JAVA_LIB_PATH) +ENDFOREACH(JAVA_PROG) + +IF(APPLE) + IF(EXISTS ~/Library/Frameworks/JavaVM.framework) + SET(JAVA_HAVE_FRAMEWORK 1) + ENDIF(EXISTS ~/Library/Frameworks/JavaVM.framework) + IF(EXISTS /Library/Frameworks/JavaVM.framework) + SET(JAVA_HAVE_FRAMEWORK 1) + ENDIF(EXISTS /Library/Frameworks/JavaVM.framework) + IF(EXISTS /System/Library/Frameworks/JavaVM.framework) + SET(JAVA_HAVE_FRAMEWORK 1) + ENDIF(EXISTS /System/Library/Frameworks/JavaVM.framework) + + IF(JAVA_HAVE_FRAMEWORK) + IF(NOT JAVA_AWT_LIBRARY) + SET (JAVA_AWT_LIBRARY "-framework JavaVM" CACHE FILEPATH "Java Frameworks" FORCE) + ENDIF(NOT JAVA_AWT_LIBRARY) + + IF(NOT JAVA_JVM_LIBRARY) + SET (JAVA_JVM_LIBRARY "-framework JavaVM" CACHE FILEPATH "Java Frameworks" FORCE) + ENDIF(NOT JAVA_JVM_LIBRARY) + + IF(NOT JAVA_AWT_INCLUDE_PATH) + IF(EXISTS /System/Library/Frameworks/JavaVM.framework/Headers/jawt.h) + SET (JAVA_AWT_INCLUDE_PATH "/System/Library/Frameworks/JavaVM.framework/Headers" CACHE FILEPATH "jawt.h location" FORCE) + ENDIF(EXISTS /System/Library/Frameworks/JavaVM.framework/Headers/jawt.h) + ENDIF(NOT JAVA_AWT_INCLUDE_PATH) + + # If using "-framework JavaVM", prefer its headers *before* the others in + # JAVA_AWT_INCLUDE_DIRECTORIES... (*prepend* to the list here) + # + SET(JAVA_AWT_INCLUDE_DIRECTORIES + ~/Library/Frameworks/JavaVM.framework/Headers + /Library/Frameworks/JavaVM.framework/Headers + /System/Library/Frameworks/JavaVM.framework/Headers + ${JAVA_AWT_INCLUDE_DIRECTORIES} + ) + ENDIF(JAVA_HAVE_FRAMEWORK) +ELSE(APPLE) + FIND_LIBRARY(JAVA_AWT_LIBRARY jawt + PATHS ${JAVA_AWT_LIBRARY_DIRECTORIES} + ) + FIND_LIBRARY(JAVA_JVM_LIBRARY NAMES jvm JavaVM + PATHS ${JAVA_JVM_LIBRARY_DIRECTORIES} + ) +ENDIF(APPLE) + +# add in the include path +FIND_PATH(JAVA_INCLUDE_PATH jni.h + ${JAVA_AWT_INCLUDE_DIRECTORIES} +) + +FIND_PATH(JAVA_INCLUDE_PATH2 jni_md.h + ${JAVA_AWT_INCLUDE_DIRECTORIES} + ${JAVA_INCLUDE_PATH}/win32 + ${JAVA_INCLUDE_PATH}/linux +) + +FIND_PATH(JAVA_AWT_INCLUDE_PATH jawt.h + ${JAVA_AWT_INCLUDE_DIRECTORIES} + ${JAVA_INCLUDE_PATH} +) + +MARK_AS_ADVANCED( + JAVA_AWT_LIBRARY + JAVA_JVM_LIBRARY + JAVA_AWT_INCLUDE_PATH + JAVA_INCLUDE_PATH + JAVA_INCLUDE_PATH2 +) diff --git a/CMakeLua/Modules/FindJPEG.cmake b/CMakeLua/Modules/FindJPEG.cmake new file mode 100644 index 0000000..3692ee1 --- /dev/null +++ b/CMakeLua/Modules/FindJPEG.cmake @@ -0,0 +1,28 @@ +# - Find JPEG +# Find the native JPEG includes and library +# This module defines +# JPEG_INCLUDE_DIR, where to find jpeglib.h, etc. +# JPEG_LIBRARIES, the libraries needed to use JPEG. +# JPEG_FOUND, If false, do not try to use JPEG. +# also defined, but not for general use are +# JPEG_LIBRARY, where to find the JPEG library. + +FIND_PATH(JPEG_INCLUDE_DIR jpeglib.h) + +SET(JPEG_NAMES ${JPEG_NAMES} jpeg) +FIND_LIBRARY(JPEG_LIBRARY NAMES ${JPEG_NAMES} ) + +# handle the QUIETLY and REQUIRED arguments and set JPEG_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(JPEG DEFAULT_MSG JPEG_LIBRARY JPEG_INCLUDE_DIR) + +IF(JPEG_FOUND) + SET(JPEG_LIBRARIES ${JPEG_LIBRARY}) +ENDIF(JPEG_FOUND) + +# Deprecated declarations. +SET (NATIVE_JPEG_INCLUDE_PATH ${JPEG_INCLUDE_DIR} ) +GET_FILENAME_COMPONENT (NATIVE_JPEG_LIB_PATH ${JPEG_LIBRARY} PATH) + +MARK_AS_ADVANCED(JPEG_LIBRARY JPEG_INCLUDE_DIR ) diff --git a/CMakeLua/Modules/FindJasper.cmake b/CMakeLua/Modules/FindJasper.cmake new file mode 100644 index 0000000..d83fe7b --- /dev/null +++ b/CMakeLua/Modules/FindJasper.cmake @@ -0,0 +1,38 @@ +# - Try to find the Jasper JPEG2000 library +# Once done this will define +# +# JASPER_FOUND - system has Jasper +# JASPER_INCLUDE_DIR - the Jasper include directory +# JASPER_LIBRARIES - The libraries needed to use Jasper + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +FIND_PACKAGE(JPEG) + +IF (JASPER_INCLUDE_DIR AND JASPER_LIBRARIES AND JPEG_LIBRARIES) + # Already in cache, be silent + SET(Jasper_FIND_QUIETLY TRUE) +ENDIF (JASPER_INCLUDE_DIR AND JASPER_LIBRARIES AND JPEG_LIBRARIES) + +FIND_PATH(JASPER_INCLUDE_DIR jasper/jasper.h) + +FIND_LIBRARY(JASPER_LIBRARY NAMES jasper libjasper) + +IF (JASPER_INCLUDE_DIR AND JASPER_LIBRARY AND JPEG_LIBRARIES) + SET(JASPER_LIBRARIES ${JASPER_LIBRARY} ${JPEG_LIBRARIES} ) +ENDIF (JASPER_INCLUDE_DIR AND JASPER_LIBRARY AND JPEG_LIBRARIES) + +# handle the QUIETLY and REQUIRED arguments and set JASPER_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jasper DEFAULT_MSG JASPER_LIBRARY JASPER_INCLUDE_DIR JPEG_LIBRARIES) + +IF (JASPER_FOUND) + SET(JASPER_LIBRARIES ${JASPER_LIBRARY} ${JPEG_LIBRARIES} ) +ENDIF (JASPER_FOUND) + +MARK_AS_ADVANCED(JASPER_INCLUDE_DIR JASPER_LIBRARIES JASPER_LIBRARY) diff --git a/CMakeLua/Modules/FindJava.cmake b/CMakeLua/Modules/FindJava.cmake new file mode 100644 index 0000000..a594450 --- /dev/null +++ b/CMakeLua/Modules/FindJava.cmake @@ -0,0 +1,51 @@ +# - Find Java +# This module finds if Java is installed and determines where the +# include files and libraries are. This code sets the following +# variables: +# +# JAVA_RUNTIME = the full path to the Java runtime +# JAVA_COMPILE = the full path to the Java compiler +# JAVA_ARCHIVE = the full path to the Java archiver +# +SET(JAVA_BIN_PATH + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\2.0;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin" + $ENV{JAVA_HOME}/bin + /usr/bin + /usr/lib/java/bin + /usr/share/java/bin + /usr/local/bin + /usr/local/java/bin + /usr/local/java/share/bin + /usr/java/j2sdk1.4.2_04 + /usr/lib/j2sdk1.4-sun/bin + /usr/java/j2sdk1.4.2_09/bin + /usr/lib/j2sdk1.5-sun/bin + /opt/sun-jdk-1.5.0.04/bin + ) +FIND_PROGRAM(JAVA_RUNTIME + NAMES java + PATHS ${JAVA_BIN_PATH} +) + +FIND_PROGRAM(JAVA_ARCHIVE + NAMES jar + PATHS ${JAVA_BIN_PATH} +) + +FIND_PROGRAM(JAVA_COMPILE + NAMES javac + PATHS ${JAVA_BIN_PATH} +) + +MARK_AS_ADVANCED( +JAVA_RUNTIME +JAVA_ARCHIVE +JAVA_COMPILE +) diff --git a/CMakeLua/Modules/FindKDE.cmake b/CMakeLua/Modules/FindKDE.cmake new file mode 100755 index 0000000..58f3206 --- /dev/null +++ b/CMakeLua/Modules/FindKDE.cmake @@ -0,0 +1,9 @@ + +# I don't think anybody actually used this file +# at least not in any large scale +# so it should be safe to obsolete it now +# +# Alex + +MESSAGE(FATAL_ERROR "FindKDE.cmake is obsolete, please use FindKDE3.cmake or FindKDE4.cmake instead.") + diff --git a/CMakeLua/Modules/FindKDE3.cmake b/CMakeLua/Modules/FindKDE3.cmake new file mode 100644 index 0000000..d8ef875 --- /dev/null +++ b/CMakeLua/Modules/FindKDE3.cmake @@ -0,0 +1,272 @@ +# - Find the KDE3 include and library dirs, KDE preprocessors and define a some macros +# +# This module defines the following variables: +# KDE3_DEFINITIONS - compiler definitions required for compiling KDE software +# KDE3_INCLUDE_DIR - the KDE include directory +# KDE3_INCLUDE_DIRS - the KDE and the Qt include directory, for use with INCLUDE_DIRECTORIES() +# KDE3_LIB_DIR - the directory where the KDE libraries are installed, for use with LINK_DIRECTORIES() +# QT_AND_KDECORE_LIBS - this contains both the Qt and the kdecore library +# KDE3_DCOPIDL_EXECUTABLE - the dcopidl executable +# KDE3_DCOPIDL2CPP_EXECUTABLE - the dcopidl2cpp executable +# KDE3_KCFGC_EXECUTABLE - the kconfig_compiler executable +# KDE3_FOUND - set to TRUE if all of the above has been found +# +# The following user adjustable options are provided: +# +# KDE3_BUILD_TESTS - enable this to build KDE testcases +# +# +# It also adds the following macros (from KDE3Macros.cmake) +# SRCS_VAR is always the variable which contains the list of source files for your application or library. +# +# KDE3_AUTOMOC(file1 ... fileN) +# Call this if you want to have automatic moc file handling. +# This means if you include "foo.moc" in the source file foo.cpp +# a moc file for the header foo.h will be created automatically. +# You can set the property SKIP_AUTOMAKE using SET_SOURCE_FILES_PROPERTIES() +# to exclude some files in the list from being processed. +# +# KDE3_ADD_MOC_FILES(SRCS_VAR file1 ... fileN ) +# If you don't use the KDE3_AUTOMOC() macro, for the files +# listed here moc files will be created (named "foo.moc.cpp") +# +# KDE3_ADD_DCOP_SKELS(SRCS_VAR header1.h ... headerN.h ) +# Use this to generate DCOP skeletions from the listed headers. +# +# KDE3_ADD_DCOP_STUBS(SRCS_VAR header1.h ... headerN.h ) +# Use this to generate DCOP stubs from the listed headers. +# +# KDE3_ADD_UI_FILES(SRCS_VAR file1.ui ... fileN.ui ) +# Use this to add the Qt designer ui files to your application/library. +# +# KDE3_ADD_KCFG_FILES(SRCS_VAR file1.kcfgc ... fileN.kcfgc ) +# Use this to add KDE kconfig compiler files to your application/library. +# +# KDE3_INSTALL_LIBTOOL_FILE(target) +# This will create and install a simple libtool file for the given target. +# +# KDE3_ADD_EXECUTABLE(name file1 ... fileN ) +# Currently identical to ADD_EXECUTABLE(), may provide some advanced features in the future. +# +# KDE3_ADD_KPART(name [WITH_PREFIX] file1 ... fileN ) +# Create a KDE plugin (KPart, kioslave, etc.) from the given source files. +# If WITH_PREFIX is given, the resulting plugin will have the prefix "lib", otherwise it won't. +# It creates and installs an appropriate libtool la-file. +# +# KDE3_ADD_KDEINIT_EXECUTABLE(name file1 ... fileN ) +# Create a KDE application in the form of a module loadable via kdeinit. +# A library named kdeinit_ will be created and a small executable which links to it. +# +# The option KDE3_ENABLE_FINAL to enable all-in-one compilation is +# no longer supported. +# +# +# Author: Alexander Neundorf + +IF(NOT UNIX) + MESSAGE(FATAL_ERROR "Compiling KDE3 applications and libraries under Windows is not supported") +ENDIF(NOT UNIX) + + +SET(QT_MT_REQUIRED TRUE) +#SET(QT_MIN_VERSION "3.0.0") + +#this line includes FindQt.cmake, which searches the Qt library and headers +FIND_PACKAGE(Qt3 REQUIRED) +FIND_PACKAGE(X11 REQUIRED) + + +#add some KDE specific stuff +SET(KDE3_DEFINITIONS -DQT_CLEAN_NAMESPACE -D_GNU_SOURCE) + +#only on linux, but NOT e.g. on FreeBSD: +IF(CMAKE_SYSTEM_NAME MATCHES "Linux") + SET (KDE3_DEFINITIONS ${KDE3_DEFINITIONS} -D_XOPEN_SOURCE=500 -D_BSD_SOURCE) + SET ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") + SET ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-exceptions -fno-check-new -fno-common") +ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") + +# works on FreeBSD, NOT tested on NetBSD and OpenBSD +IF (CMAKE_SYSTEM_NAME MATCHES BSD) + SET ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") + SET ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common") +ENDIF (CMAKE_SYSTEM_NAME MATCHES BSD) + +# if no special buildtype is selected, add -O2 as default optimization +IF (NOT CMAKE_BUILD_TYPE) + SET ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") + SET ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") +ENDIF (NOT CMAKE_BUILD_TYPE) + + +#SET(CMAKE_SHARED_LINKER_FLAGS "-avoid-version -module -Wl,--no-undefined -Wl,--allow-shlib-undefined") +#SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc") +#SET(CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc") + +# all calls to FIND_PROGRAM/PATH/LIBRARY() follow the same scheme: +# at first try some special paths with the argument "NO_DEFAULT_PATH" +# so only these paths are checked +# this is followed by a second call to FIND_PROGRAM/PATH/LIBRARY() +# but this time without any paths and without NO_DEFAULT_PATH +# this second call will do nothing if the first call already found +# what it was looking for, if not, it will search only in the default +# directories (/usr, /usr/local, etc.) + +#now try to find some kde stuff +FIND_PROGRAM(KDECONFIG_EXECUTABLE NAMES kde-config PATHS + $ENV{KDEDIR}/bin + /opt/kde3/bin + /opt/kde/bin + NO_DEFAULT_PATH + ) + + +FIND_PROGRAM(KDECONFIG_EXECUTABLE kde-config) + + +SET(KDE3PREFIX) +IF(KDECONFIG_EXECUTABLE) + EXECUTE_PROCESS(COMMAND ${KDECONFIG_EXECUTABLE} --version + OUTPUT_VARIABLE kde_config_version ) + + STRING(REGEX MATCH "KDE: .\\." kde_version ${kde_config_version}) + IF (${kde_version} MATCHES "KDE: 3\\.") + EXECUTE_PROCESS(COMMAND ${KDECONFIG_EXECUTABLE} --prefix + OUTPUT_VARIABLE kdedir ) + STRING(REGEX REPLACE "\n" "" KDE3PREFIX "${kdedir}") + + ENDIF (${kde_version} MATCHES "KDE: 3\\.") +ENDIF(KDECONFIG_EXECUTABLE) + + + +# at first the KDE include direcory +# kpassdlg.h comes from kdeui and doesn't exist in KDE4 anymore +FIND_PATH(KDE3_INCLUDE_DIR kpassdlg.h + $ENV{KDEDIR}/include + ${KDE3PREFIX}/include + /opt/kde3/include + /opt/kde/include + /usr/include/kde + /usr/local/include/kde + NO_DEFAULT_PATH + ) + +FIND_PATH(KDE3_INCLUDE_DIR kpassdlg.h) + +#now the KDE library directory +FIND_LIBRARY(KDE3_KDECORE_LIBRARY NAMES kdecore + PATHS + $ENV{KDEDIR}/lib + ${KDE3PREFIX}/lib + /opt/kde3/lib + /opt/kde/lib + NO_DEFAULT_PATH +) + +FIND_LIBRARY(KDE3_KDECORE_LIBRARY NAMES kdecore) + +SET(QT_AND_KDECORE_LIBS ${QT_LIBRARIES} ${KDE3_KDECORE_LIBRARY}) + +GET_FILENAME_COMPONENT(KDE3_LIB_DIR ${KDE3_KDECORE_LIBRARY} PATH ) + +IF(NOT KDE3_LIBTOOL_DIR) + IF(KDE3_KDECORE_LIBRARY MATCHES lib64) + SET(KDE3_LIBTOOL_DIR /lib64/kde3) + ELSE(KDE3_KDECORE_LIBRARY MATCHES lib64) + SET(KDE3_LIBTOOL_DIR /lib/kde3) + ENDIF(KDE3_KDECORE_LIBRARY MATCHES lib64) +ENDIF(NOT KDE3_LIBTOOL_DIR) + +#now search for the dcop utilities +FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAMES dcopidl PATHS + $ENV{KDEDIR}/bin + ${KDE3PREFIX}/bin + /opt/kde3/bin + /opt/kde/bin + NO_DEFAULT_PATH + ) + +FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAMES dcopidl) + +FIND_PROGRAM(KDE3_DCOPIDL2CPP_EXECUTABLE NAMES dcopidl2cpp PATHS + $ENV{KDEDIR}/bin + ${KDE3PREFIX}/bin + /opt/kde3/bin + /opt/kde/bin + NO_DEFAULT_PATH + ) + +FIND_PROGRAM(KDE3_DCOPIDL2CPP_EXECUTABLE NAMES dcopidl2cpp) + +FIND_PROGRAM(KDE3_KCFGC_EXECUTABLE NAMES kconfig_compiler PATHS + $ENV{KDEDIR}/bin + ${KDE3PREFIX}/bin + /opt/kde3/bin + /opt/kde/bin + NO_DEFAULT_PATH + ) + +FIND_PROGRAM(KDE3_KCFGC_EXECUTABLE NAMES kconfig_compiler) + +# KDE3Macros.cmake contains all the KDE specific macros +INCLUDE(KDE3Macros) + + +#SET KDE3_FOUND +IF (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) + SET(KDE3_FOUND TRUE) +ELSE (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) + SET(KDE3_FOUND FALSE) +ENDIF (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) + + +MACRO (KDE3_PRINT_RESULTS) + IF(KDE3_INCLUDE_DIR) + MESSAGE(STATUS "Found KDE3 include dir: ${KDE3_INCLUDE_DIR}") + ELSE(KDE3_INCLUDE_DIR) + MESSAGE(STATUS "Didn't find KDE3 headers") + ENDIF(KDE3_INCLUDE_DIR) + + IF(KDE3_LIB_DIR) + MESSAGE(STATUS "Found KDE3 library dir: ${KDE3_LIB_DIR}") + ELSE(KDE3_LIB_DIR) + MESSAGE(STATUS "Didn't find KDE3 core library") + ENDIF(KDE3_LIB_DIR) + + IF(KDE3_DCOPIDL_EXECUTABLE) + MESSAGE(STATUS "Found KDE3 dcopidl preprocessor: ${KDE3_DCOPIDL_EXECUTABLE}") + ELSE(KDE3_DCOPIDL_EXECUTABLE) + MESSAGE(STATUS "Didn't find the KDE3 dcopidl preprocessor") + ENDIF(KDE3_DCOPIDL_EXECUTABLE) + + IF(KDE3_DCOPIDL2CPP_EXECUTABLE) + MESSAGE(STATUS "Found KDE3 dcopidl2cpp preprocessor: ${KDE3_DCOPIDL2CPP_EXECUTABLE}") + ELSE(KDE3_DCOPIDL2CPP_EXECUTABLE) + MESSAGE(STATUS "Didn't find the KDE3 dcopidl2cpp preprocessor") + ENDIF(KDE3_DCOPIDL2CPP_EXECUTABLE) + + IF(KDE3_KCFGC_EXECUTABLE) + MESSAGE(STATUS "Found KDE3 kconfig_compiler preprocessor: ${KDE3_KCFGC_EXECUTABLE}") + ELSE(KDE3_KCFGC_EXECUTABLE) + MESSAGE(STATUS "Didn't find the KDE3 kconfig_compiler preprocessor") + ENDIF(KDE3_KCFGC_EXECUTABLE) + +ENDMACRO (KDE3_PRINT_RESULTS) + + +IF (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND) + #bail out if something wasn't found + KDE3_PRINT_RESULTS() + MESSAGE(FATAL_ERROR "Could NOT find everything required for compiling KDE 3 programs") + +ENDIF (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND) + + +IF (NOT KDE3_FIND_QUIETLY) + KDE3_PRINT_RESULTS() +ENDIF (NOT KDE3_FIND_QUIETLY) + +#add the found Qt and KDE include directories to the current include path +SET(KDE3_INCLUDE_DIRS ${QT_INCLUDE_DIR} ${KDE3_INCLUDE_DIR}) + diff --git a/CMakeLua/Modules/FindKDE4.cmake b/CMakeLua/Modules/FindKDE4.cmake new file mode 100644 index 0000000..c4fd3fb --- /dev/null +++ b/CMakeLua/Modules/FindKDE4.cmake @@ -0,0 +1,61 @@ +# Find KDE4 and provide all necessary variables and macros to compile software for it. +# It looks for KDE 4 in the following directories in the given order: +# CMAKE_INSTALL_PREFIX +# KDEDIRS +# /opt/kde4 +# +# Please look in FindKDE4Internal.cmake and KDE4Macros.cmake for more information. +# They are installed with the KDE 4 libraries in $KDEDIRS/share/apps/cmake/modules/. +# +# Author: Alexander Neundorf + +FILE(TO_CMAKE_PATH "$ENV{KDEDIRS}" _KDEDIRS) + +# For KDE4 kde-config has been renamed to kde4-config +FIND_PROGRAM(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config + PATH_SUFFIXES bin # the suffix is for the paths coming from KDEDIRS + PATHS + ${CMAKE_INSTALL_PREFIX}/bin + ${_KDEDIRS} + /opt/kde4/bin + NO_DEFAULT_PATH + ) + +FIND_PROGRAM(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config ) + +IF (KDE4_KDECONFIG_EXECUTABLE) + # then ask kde4-config for the kde data dirs + EXECUTE_PROCESS(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path data OUTPUT_VARIABLE _data_DIR ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + + FILE(TO_CMAKE_PATH "${_data_DIR}" _data_DIR) + + # then check the data dirs for FindKDE4Internal.cmake + FIND_PATH(KDE4_DATA_DIR cmake/modules/FindKDE4Internal.cmake ${_data_DIR}) + + # if it has been found... + IF (KDE4_DATA_DIR) + + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${KDE4_DATA_DIR}/cmake/modules) + + IF (KDE4_FIND_QUIETLY) + SET(_quiet QUIET) + ENDIF (KDE4_FIND_QUIETLY) + + IF (KDE4_FIND_REQUIRED) + SET(_req REQUIRED) + ENDIF (KDE4_FIND_REQUIRED) + + # use FindKDE4Internal.cmake to do the rest + FIND_PACKAGE(KDE4Internal ${_req} ${_quiet}) + ELSE (KDE4_DATA_DIR) + IF (KDE4_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "ERROR: cmake/modules/FindKDE4Internal.cmake not found in ${_data_DIR}") + ENDIF (KDE4_FIND_REQUIRED) + ENDIF (KDE4_DATA_DIR) + +ELSE (KDE4_KDECONFIG_EXECUTABLE) + IF (KDE4_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "ERROR: Could not find KDE4 kde4-config") + ENDIF (KDE4_FIND_REQUIRED) +ENDIF (KDE4_KDECONFIG_EXECUTABLE) + diff --git a/CMakeLua/Modules/FindLAPACK.cmake b/CMakeLua/Modules/FindLAPACK.cmake new file mode 100644 index 0000000..7f838cd --- /dev/null +++ b/CMakeLua/Modules/FindLAPACK.cmake @@ -0,0 +1,180 @@ +# - Find LAPACK library +# This module finds an installed fortran library that implements the LAPACK +# linear-algebra interface (see http://www.netlib.org/lapack/). +# +# The approach follows that taken for the autoconf macro file, acx_lapack.m4 +# (distributed at http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html). +# +# This module sets the following variables: +# LAPACK_FOUND - set to true if a library implementing the LAPACK interface +# is found +# LAPACK_LINKER_FLAGS - uncached list of required linker flags (excluding -l +# and -L). +# LAPACK_LIBRARIES - uncached list of libraries (using full path name) to +# link against to use LAPACK +# + +include(CheckFortranFunctionExists) +set(LAPACK_FOUND FALSE) + +macro(Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas) +# This macro checks for the existence of the combination of fortran libraries +# given by _list. If the combination is found, this macro checks (using the +# Check_Fortran_Function_Exists macro) whether can link against that library +# combination using the name of a routine given by _name using the linker +# flags given by _flags. If the combination of libraries is found and passes +# the link test, LIBRARIES is set to the list of complete library paths that +# have been found. Otherwise, LIBRARIES is set to FALSE. + +# N.B. _prefix is the prefix applied to the names of all cached variables that +# are generated internally and marked advanced by this macro. + +set(_libraries_work TRUE) +set(${LIBRARIES}) +set(_combined_name) +foreach(_library ${_list}) + set(_combined_name ${_combined_name}_${_library}) + + if(_libraries_work) + if(APPLE) + find_library(${_prefix}_${_library}_LIBRARY + NAMES ${_library} + PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64 ENV DYLD_LIBRARY_PATH + ) + else(APPLE) + find_library(${_prefix}_${_library}_LIBRARY + NAMES ${_library} + PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64 ENV LD_LIBRARY_PATH + ) + endif(APPLE) + + mark_as_advanced(${_prefix}_${_library}_LIBRARY) + set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY}) + set(_libraries_work ${${_prefix}_${_library}_LIBRARY}) + endif(_libraries_work) +endforeach(_library ${_list}) + +if(_libraries_work) + # Test this combination of libraries. + set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_blas}) + #message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}") + check_fortran_function_exists(${_name} ${_prefix}${_combined_name}_WORKS) + set(CMAKE_REQUIRED_LIBRARIES) + mark_as_advanced(${_prefix}${_combined_name}_WORKS) + set(_libraries_work ${${_prefix}${_combined_name}_WORKS}) + #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}") +endif(_libraries_work) + +if(NOT _libraries_work) + set(${LIBRARIES} FALSE) +endif(NOT _libraries_work) + +endmacro(Check_Lapack_Libraries) + + +set(LAPACK_LINKER_FLAGS) +set(LAPACK_LIBRARIES) + + +if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED) + find_package(BLAS) +else(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED) + find_package(BLAS REQUIRED) +endif(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED) + +if(BLAS_FOUND) + set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS}) + +#intel lapack + if(NOT LAPACK_LIBRARIES) + + check_lapack_libraries( + LAPACK_LIBRARIES + LAPACK + cheev + "" + "mkl_lapack" + "${BLAS_LIBRARIES}" + ) + endif(NOT LAPACK_LIBRARIES) + + + +#acml lapack + if(NOT LAPACK_LIBRARIES) + + check_lapack_libraries( + LAPACK_LIBRARIES + LAPACK + cheev + "" + "acml" + "${BLAS_LIBRARIES}" + ) +endif(NOT LAPACK_LIBRARIES) + + +# Apple LAPACK library? +if(NOT LAPACK_LIBRARIES) + check_lapack_libraries( + LAPACK_LIBRARIES + LAPACK + cheev + "" + "Accelerate" + "${BLAS_LIBRARIES}" + ) + endif(NOT LAPACK_LIBRARIES) + + if ( NOT LAPACK_LIBRARIES ) + check_lapack_libraries( + LAPACK_LIBRARIES + LAPACK + cheev + "" + "vecLib" + "${BLAS_LIBRARIES}" + ) + endif ( NOT LAPACK_LIBRARIES ) + + + + + +# Generic LAPACK library? + if ( NOT LAPACK_LIBRARIES ) + check_lapack_libraries( + LAPACK_LIBRARIES + LAPACK + cheev + "" + "lapack" + "${BLAS_LIBRARIES}" + ) + endif ( NOT LAPACK_LIBRARIES ) + +else(BLAS_FOUND) + message(STATUS "LAPACK requires BLAS") +endif(BLAS_FOUND) + +if(LAPACK_LIBRARIES) + set(LAPACK_FOUND TRUE) +else(LAPACK_LIBRARIES) + set(LAPACK_FOUND FALSE) +endif(LAPACK_LIBRARIES) + +if(NOT LAPACK_FIND_QUIETLY) + if(LAPACK_FOUND) + message(STATUS "A library with LAPACK API found.") + else(LAPACK_FOUND) + if(LAPACK_FIND_REQUIRED) + message(FATAL_ERROR + "A required library with LAPACK API not found. Please specify library location." + ) + else(LAPACK_FIND_REQUIRED) + message(STATUS + "A library with LAPACK API not found. Please specify library location." + ) + endif(LAPACK_FIND_REQUIRED) + endif(LAPACK_FOUND) +endif(NOT LAPACK_FIND_QUIETLY) diff --git a/CMakeLua/Modules/FindLATEX.cmake b/CMakeLua/Modules/FindLATEX.cmake new file mode 100644 index 0000000..a02d9e1 --- /dev/null +++ b/CMakeLua/Modules/FindLATEX.cmake @@ -0,0 +1,113 @@ +# - Find Latex +# This module finds if Latex is installed and determines where the +# executables are. This code sets the following variables: +# +# LATEX_COMPILER: path to the LaTeX compiler +# PDFLATEX_COMPILER: path to the PdfLaTeX compiler +# BIBTEX_COMPILER: path to the BibTeX compiler +# MAKEINDEX_COMPILER: path to the MakeIndex compiler +# DVIPS_CONVERTER: path to the DVIPS converter +# PS2PDF_CONVERTER: path to the PS2PDF converter +# LATEX2HTML_CONVERTER: path to the LaTeX2Html converter +# + +IF (WIN32) + + # Try to find the MikTex binary path (look for its package manager). + + FIND_PATH(MIKTEX_BINARY_PATH mpm.exe + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MiK\\MiKTeX\\CurrentVersion\\MiKTeX;Install Root]/miktex/bin" + DOC + "Path to the MikTex binary directory." + ) + MARK_AS_ADVANCED(MIKTEX_BINARY_PATH) + + # Try to find the GhostScript binary path (look for gswin32). + + GET_FILENAME_COMPONENT(GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_8_00 + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\AFPL Ghostscript\\8.00;GS_DLL]" PATH + ) + + GET_FILENAME_COMPONENT(GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_7_04 + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\AFPL Ghostscript\\7.04;GS_DLL]" PATH + ) + + FIND_PATH(GHOSTSCRIPT_BINARY_PATH gswin32.exe + ${GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_8_00} + ${GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_7_04} + DOC "Path to the GhostScript binary directory." + ) + MARK_AS_ADVANCED(GHOSTSCRIPT_BINARY_PATH) + + FIND_PATH(GHOSTSCRIPT_LIBRARY_PATH ps2pdf13.bat + "${GHOSTSCRIPT_BINARY_PATH}/../lib" + DOC "Path to the GhostScript library directory." + ) + MARK_AS_ADVANCED(GHOSTSCRIPT_LIBRARY_PATH) + +ENDIF (WIN32) + +FIND_PROGRAM(LATEX_COMPILER + NAMES latex + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) + +FIND_PROGRAM(PDFLATEX_COMPILER + NAMES pdflatex + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) + +FIND_PROGRAM(BIBTEX_COMPILER + NAMES bibtex + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) + +FIND_PROGRAM(MAKEINDEX_COMPILER + NAMES makeindex + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) + +FIND_PROGRAM(DVIPS_CONVERTER + NAMES dvips + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) + +FIND_PROGRAM(DVIPDF_CONVERTER + NAMES dvipdfm dvipdft dvipdf + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) + +IF (WIN32) + FIND_PROGRAM(PS2PDF_CONVERTER + NAMES ps2pdf14.bat + PATHS ${GHOSTSCRIPT_LIBRARY_PATH} + ) +ELSE (WIN32) + FIND_PROGRAM(PS2PDF_CONVERTER + NAMES ps2pdf14 ps2pdf + ) +ENDIF (WIN32) + +FIND_PROGRAM(LATEX2HTML_CONVERTER + NAMES latex2html + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) + + +MARK_AS_ADVANCED( + LATEX_COMPILER + PDFLATEX_COMPILER + BIBTEX_COMPILER + MAKEINDEX_COMPILER + DVIPS_CONVERTER + DVIPDF_CONVERTER + PS2PDF_CONVERTER + LATEX2HTML_CONVERTER +) diff --git a/CMakeLua/Modules/FindLibXml2.cmake b/CMakeLua/Modules/FindLibXml2.cmake new file mode 100644 index 0000000..0de0586 --- /dev/null +++ b/CMakeLua/Modules/FindLibXml2.cmake @@ -0,0 +1,46 @@ +# - Try to find LibXml2 +# Once done this will define +# +# LIBXML2_FOUND - system has LibXml2 +# LIBXML2_INCLUDE_DIR - the LibXml2 include directory +# LIBXML2_LIBRARIES - the libraries needed to use LibXml2 +# LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2 + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + # in cache already + SET(LibXml2_FIND_QUIETLY TRUE) +ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + +IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + INCLUDE(UsePkgConfig) + PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2Cflags) + SET(LIBXML2_DEFINITIONS ${_LibXml2Cflags}) +ENDIF (NOT WIN32) + +FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h + PATHS + ${_LibXml2IncDir} + PATH_SUFFIXES libxml2 + ) + +FIND_LIBRARY(LIBXML2_LIBRARIES NAMES xml2 libxml2 + PATHS + ${_LibXml2LinkDir} + ) + +INCLUDE(FindPackageHandleStandardArgs) + +# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE if +# all listed variables are TRUE +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2 DEFAULT_MSG LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) + +MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES) + diff --git a/CMakeLua/Modules/FindLibXslt.cmake b/CMakeLua/Modules/FindLibXslt.cmake new file mode 100644 index 0000000..95c6819 --- /dev/null +++ b/CMakeLua/Modules/FindLibXslt.cmake @@ -0,0 +1,45 @@ +# - Try to find LibXslt +# Once done this will define +# +# LIBXSLT_FOUND - system has LibXslt +# LIBXSLT_INCLUDE_DIR - the LibXslt include directory +# LIBXSLT_LIBRARIES - Link these to LibXslt +# LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + # in cache already + SET(LibXslt_FIND_QUIETLY TRUE) +ENDIF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + +IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + INCLUDE(UsePkgConfig) + PKGCONFIG(libxslt _LibXsltIncDir _LibXsltLinkDir _LibXsltLinkFlags _LibXsltCflags) + SET(LIBXSLT_DEFINITIONS ${_LibXsltCflags}) +ENDIF (NOT WIN32) + +FIND_PATH(LIBXSLT_INCLUDE_DIR libxslt/xslt.h + ${_LibXsltIncDir} + ) + +FIND_LIBRARY(LIBXSLT_LIBRARIES NAMES xslt libxslt + PATHS + ${_LibXsltLinkDir} + ) + +INCLUDE(FindPackageHandleStandardArgs) + +# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE if +# all listed variables are TRUE +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXslt DEFAULT_MSG LIBXSLT_LIBRARIES LIBXSLT_INCLUDE_DIR) + + +MARK_AS_ADVANCED(LIBXSLT_INCLUDE_DIR LIBXSLT_LIBRARIES) + diff --git a/CMakeLua/Modules/FindLua50.cmake b/CMakeLua/Modules/FindLua50.cmake new file mode 100644 index 0000000..0b03530 --- /dev/null +++ b/CMakeLua/Modules/FindLua50.cmake @@ -0,0 +1,100 @@ +# Locate Lua library +# This module defines +# LUA_LIBRARIES, both lua and lualib +# LUA_FOUND, if false, do not try to link to Lua +# LUA_INCLUDE_DIR, where to find lua.h and lualib.h (and probably lauxlib.h) +# +# Note that the expected include convention is +# #include "lua.h" +# and not +# #include +# This is because, the lua location is not standardized and may exist +# in locations other than lua/ + + +FIND_PATH(LUA_INCLUDE_DIR lua.h + PATHS + $ENV{LUA_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include/lua50 include/lua5.0 include/lua5 include/lua include +) + +FIND_PATH(LUA_INCLUDE_DIR lua.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + PATH_SUFFIXES include/lua50 include/lua5.0 include/lua5 include/lua include +) + +FIND_LIBRARY(LUA_LIBRARY_lua + NAMES lua50 lua5.0 lua5 lua + PATHS + $ENV{LUA_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(LUA_LIBRARY_lua + NAMES lua50 lua5.0 lua5 lua + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +# In an OS X framework, lualib is usually included as part of the framework +# (like GLU in OpenGL.framework) +IF(${LUA_LIBRARY_lua} MATCHES "framework") + SET( LUA_LIBRARIES "${LUA_LIBRARY_lua}" CACHE STRING "Lua framework") +ELSE(${LUA_LIBRARY_lua} MATCHES "framework") + FIND_LIBRARY(LUA_LIBRARY_lualib + NAMES lualib50 lualib5.0 lualib5 lualib + PATHS + $ENV{LUALIB_DIR} + $ENV{LUA_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib + ) + + FIND_LIBRARY(LUA_LIBRARY_lualib + NAMES lualib50 lualib5.0 lualib5 lualib + PATHS + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib + ) + IF(LUA_LIBRARY_lualib AND LUA_LIBRARY_lua) + # include the math library for Unix + IF(UNIX AND NOT APPLE) + FIND_LIBRARY(MATH_LIBRARY_FOR_LUA m) + SET( LUA_LIBRARIES "${LUA_LIBRARY_lualib};${LUA_LIBRARY_lua};${MATH_LIBRARY_FOR_LUA}" CACHE STRING "This is the concatentation of lua and lualib libraries") + # For Windows and Mac, don't need to explicitly include the math library + ELSE(UNIX AND NOT APPLE) + SET( LUA_LIBRARIES "${LUA_LIBRARY_lualib};${LUA_LIBRARY_lua}" CACHE STRING "This is the concatentation of lua and lualib libraries") + ENDIF(UNIX AND NOT APPLE) + ENDIF(LUA_LIBRARY_lualib AND LUA_LIBRARY_lua) +ENDIF(${LUA_LIBRARY_lua} MATCHES "framework") + + + +SET(LUA_FOUND "NO") +IF(LUA_LIBRARIES AND LUA_INCLUDE_DIR) + SET(LUA_FOUND "YES") +ENDIF(LUA_LIBRARIES AND LUA_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindLua51.cmake b/CMakeLua/Modules/FindLua51.cmake new file mode 100644 index 0000000..14a12fc --- /dev/null +++ b/CMakeLua/Modules/FindLua51.cmake @@ -0,0 +1,72 @@ +# Locate Lua library +# This module defines +# LUA_LIBRARIES +# LUA_FOUND, if false, do not try to link to Lua +# LUA_INCLUDE_DIR, where to find lua.h +# +# Note that the expected include convention is +# #include "lua.h" +# and not +# #include +# This is because, the lua location is not standardized and may exist +# in locations other than lua/ + + +FIND_PATH(LUA_INCLUDE_DIR lua.h + PATHS + $ENV{LUA_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include/lua51 include/lua5.1 include/lua include +) + +FIND_PATH(LUA_INCLUDE_DIR lua.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + PATH_SUFFIXES include/lua51 include/lua5.1 include/lua include +) + +FIND_LIBRARY(LUA_LIBRARY + NAMES lua51 lua5.1 lua + PATHS + $ENV{LUA_DIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(LUA_LIBRARY + NAMES lua51 lua5.1 lua + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +IF(LUA_LIBRARY) + # include the math library for Unix + IF(UNIX AND NOT APPLE) + FIND_LIBRARY(MATH_LIBRARY_FOR_LUA m) + SET( LUA_LIBRARIES "${LUA_LIBRARY};${MATH_LIBRARY_FOR_LUA}" CACHE STRING "Lua Libraries") + # For Windows and Mac, don't need to explicitly include the math library + ELSE(UNIX AND NOT APPLE) + SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") + ENDIF(UNIX AND NOT APPLE) +ENDIF(LUA_LIBRARY) + +SET(LUA_FOUND "NO") +IF(LUA_LIBRARIES AND LUA_INCLUDE_DIR) + SET(LUA_FOUND "YES") +ENDIF(LUA_LIBRARIES AND LUA_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindMFC.cmake b/CMakeLua/Modules/FindMFC.cmake new file mode 100644 index 0000000..7e3bcc1 --- /dev/null +++ b/CMakeLua/Modules/FindMFC.cmake @@ -0,0 +1,19 @@ +# - Find MFC on Windows +# Find the native MFC - i.e. decide if this is an MS VC box. +# MFC_FOUND - Was MFC support found +# You don't need to include anything or link anything to use it. + +# Assume no MFC support +SET( MFC_FOUND "NO" ) +# Add MFC support if win32 and not cygwin and not borland +IF( WIN32 ) + IF( NOT CYGWIN ) + IF( NOT BORLAND ) + IF( NOT MINGW ) + SET( MFC_FOUND "YES" ) + ENDIF( NOT MINGW ) + ENDIF( NOT BORLAND ) + ENDIF( NOT CYGWIN ) +ENDIF( WIN32 ) + + diff --git a/CMakeLua/Modules/FindMPEG.cmake b/CMakeLua/Modules/FindMPEG.cmake new file mode 100644 index 0000000..7b0760a --- /dev/null +++ b/CMakeLua/Modules/FindMPEG.cmake @@ -0,0 +1,29 @@ +# - Find the native MPEG includes and library +# This module defines +# MPEG_INCLUDE_DIR, where to find MPEG.h, etc. +# MPEG_LIBRARIES, the libraries required to use MPEG. +# MPEG_FOUND, If false, do not try to use MPEG. +# also defined, but not for general use are +# MPEG_mpeg2_LIBRARY, where to find the MPEG library. +# MPEG_vo_LIBRARY, where to find the vo library. + +FIND_PATH(MPEG_INCLUDE_DIR mpeg2dec/include/video_out.h + /usr/local/livid +) + +FIND_LIBRARY(MPEG_mpeg2_LIBRARY mpeg2 + /usr/local/livid/mpeg2dec/libmpeg2/.libs +) + +FIND_LIBRARY( MPEG_vo_LIBRARY vo + /usr/local/livid/mpeg2dec/libvo/.libs +) + +# handle the QUIETLY and REQUIRED arguments and set MPEG2_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(MPEG DEFAULT_MSG MPEG_INCLUDE_DIR MPEG_mpeg2_LIBRARY) + +IF(MPEG_FOUND) + SET( MPEG_LIBRARIES ${MPEG_mpeg2_LIBRARY} ${MPEG_vo_LIBRARY} ) +ENDIF(MPEG_FOUND) diff --git a/CMakeLua/Modules/FindMPEG2.cmake b/CMakeLua/Modules/FindMPEG2.cmake new file mode 100644 index 0000000..0ce75f5 --- /dev/null +++ b/CMakeLua/Modules/FindMPEG2.cmake @@ -0,0 +1,39 @@ +# - Find the native MPEG2 includes and library +# This module defines +# MPEG2_INCLUDE_DIR, path to mpeg2dec/mpeg2.h, etc. +# MPEG2_LIBRARIES, the libraries required to use MPEG2. +# MPEG2_FOUND, If false, do not try to use MPEG2. +# also defined, but not for general use are +# MPEG2_mpeg2_LIBRARY, where to find the MPEG2 library. +# MPEG2_vo_LIBRARY, where to find the vo library. + +FIND_PATH(MPEG2_INCLUDE_DIR mpeg2.h + /usr/local/livid +) + +FIND_LIBRARY(MPEG2_mpeg2_LIBRARY mpeg2 + /usr/local/livid/mpeg2dec/libmpeg2/.libs +) + +FIND_LIBRARY( MPEG2_vo_LIBRARY vo + /usr/local/livid/mpeg2dec/libvo/.libs +) + + +# handle the QUIETLY and REQUIRED arguments and set MPEG2_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(MPEG2 DEFAULT_MSG MPEG2_mpeg2_LIBRARY MPEG2_INCLUDE_DIR) + +IF(MPEG2_FOUND) + SET( MPEG2_LIBRARIES ${MPEG2_mpeg2_LIBRARY} + ${MPEG2_vo_LIBRARY}) + + #some native mpeg2 installations will depend + #on libSDL, if found, add it in. + INCLUDE( FindSDL.cmake ) + IF(SDL_FOUND) + SET( MPEG2_LIBRARIES ${MPEG2_LIBRARIES} ${SDL_LIBRARY}) + ENDIF(SDL_FOUND) +ENDIF(MPEG2_FOUND) + diff --git a/CMakeLua/Modules/FindMPI.cmake b/CMakeLua/Modules/FindMPI.cmake new file mode 100644 index 0000000..716df50 --- /dev/null +++ b/CMakeLua/Modules/FindMPI.cmake @@ -0,0 +1,43 @@ +# - Find MPI +# This module looks for MPI (Message Passing Interface) support +# it will define the following values +# MPI_INCLUDE_PATH = where mpi.h can be found +# MPI_LIBRARY = the library to link in (mpi mpich etc) + +FIND_PATH(MPI_INCLUDE_PATH NAMES mpi.h + PATH_SUFFIXES mpi mpi/include + PATHS + "$ENV{ProgramFiles}/MPICH/SDK/Include" + "$ENV{ProgramFiles}/MPICH2/include" + "C:/Program Files/MPICH/SDK/Include" +) + +FIND_LIBRARY(MPI_LIBRARY + NAMES mpich2 mpi mpich mpich.rts + PATH_SUFFIXES mpi/lib + PATHS + "$ENV{ProgramFiles}/MPICH/SDK/Lib" + "$ENV{ProgramFiles}/MPICH2/Lib" + "C:/Program Files/MPICH/SDK/Lib" +) + +FIND_LIBRARY(MPI_EXTRA_LIBRARY + NAMES mpi++ + PATH_SUFFIXES mpi/lib + PATHS + "$ENV{ProgramFiles}/MPICH/SDK/Lib" + "C:/Program Files/MPICH/SDK/Lib" + DOC "If a second mpi library is necessary, specify it here.") + +# on BlueGene/L the MPI lib is named libmpich.rts.a, there also these additional libs are required +IF("${MPI_LIBRARY}" MATCHES "mpich.rts") + SET(MPI_EXTRA_LIBRARY msglayer.rts devices.rts rts.rts devices.rts CACHE STRING "Additional MPI libs" FORCE) +ENDIF("${MPI_LIBRARY}" MATCHES "mpich.rts") + +INCLUDE(FindPackageHandleStandardArgs) + +# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE if +# all listed variables are TRUE +FIND_PACKAGE_HANDLE_STANDARD_ARGS(MPI DEFAULT_MSG MPI_LIBRARY MPI_INCLUDE_PATH) + +MARK_AS_ADVANCED(MPI_INCLUDE_PATH MPI_LIBRARY MPI_EXTRA_LIBRARY) diff --git a/CMakeLua/Modules/FindMatlab.cmake b/CMakeLua/Modules/FindMatlab.cmake new file mode 100755 index 0000000..17e6f36 --- /dev/null +++ b/CMakeLua/Modules/FindMatlab.cmake @@ -0,0 +1,106 @@ +# - this module looks for Matlab +# Defines: +# MATLAB_INCLUDE_DIR: include path for mex.h, engine.h +# MATLAB_LIBRARIES: required libraries: libmex, etc +# MATLAB_MEX_LIBRARY: path to libmex.lib +# MATLAB_MX_LIBRARY: path to libmx.lib +# MATLAB_ENG_LIBRARY: path to libeng.lib + + +SET(MATLAB_FOUND 0) +IF(WIN32) + IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc60") + ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") + # Assume people are generally using 7.1, + # if using 7.0 need to link to: ../extern/lib/win32/microsoft/msvc70 + SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc71") + ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") + IF(${CMAKE_GENERATOR} MATCHES "Borland") + # Same here, there are also: bcc50 and bcc51 directories + SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/bcc54") + ELSE(${CMAKE_GENERATOR} MATCHES "Borland") + MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}") + ENDIF(${CMAKE_GENERATOR} MATCHES "Borland") + ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") + ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + FIND_LIBRARY(MATLAB_MEX_LIBRARY + libmex + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_MX_LIBRARY + libmx + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_ENG_LIBRARY + libeng + ${MATLAB_ROOT} + ) + + FIND_PATH(MATLAB_INCLUDE_DIR + "mex.h" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/include" + ) +ELSE( WIN32 ) + IF(CMAKE_SIZEOF_VOID_P EQUAL 4) + # Regular x86 + SET(MATLAB_ROOT + /usr/local/matlab-7sp1/bin/glnx86/ + /opt/matlab-7sp1/bin/glnx86/ + $ENV{HOME}/matlab-7sp1/bin/glnx86/ + $ENV{HOME}/redhat-matlab/bin/glnx86/ + ) + ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) + # AMD64: + SET(MATLAB_ROOT + /usr/local/matlab-7sp1/bin/glnxa64/ + /opt/matlab-7sp1/bin/glnxa64/ + $ENV{HOME}/matlab7_64/bin/glnxa64/ + $ENV{HOME}/matlab-7sp1/bin/glnxa64/ + $ENV{HOME}/redhat-matlab/bin/glnxa64/ + ) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4) + FIND_LIBRARY(MATLAB_MEX_LIBRARY + mex + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_MX_LIBRARY + mx + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_ENG_LIBRARY + eng + ${MATLAB_ROOT} + ) + FIND_PATH(MATLAB_INCLUDE_DIR + "mex.h" + "/usr/local/matlab-7sp1/extern/include/" + "/opt/matlab-7sp1/extern/include/" + "$ENV{HOME}/matlab-7sp1/extern/include/" + "$ENV{HOME}/redhat-matlab/extern/include/" + ) + +ENDIF(WIN32) + +# This is common to UNIX and Win32: +SET(MATLAB_LIBRARIES + ${MATLAB_MEX_LIBRARY} + ${MATLAB_MX_LIBRARY} + ${MATLAB_ENG_LIBRARY} +) + +IF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) + SET(MATLAB_FOUND 1) +ENDIF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) + +MARK_AS_ADVANCED( + MATLAB_LIBRARIES + MATLAB_MEX_LIBRARY + MATLAB_MX_LIBRARY + MATLAB_ENG_LIBRARY + MATLAB_INCLUDE_DIR + MATLAB_FOUND + MATLAB_ROOT +) + diff --git a/CMakeLua/Modules/FindMotif.cmake b/CMakeLua/Modules/FindMotif.cmake new file mode 100755 index 0000000..e068202 --- /dev/null +++ b/CMakeLua/Modules/FindMotif.cmake @@ -0,0 +1,31 @@ +# - Try to find Motif (or lesstif) +# Once done this will define: +# MOTIF_FOUND - system has MOTIF +# MOTIF_INCLUDE_DIR - incude paths to use Motif +# MOTIF_LIBRARIES - Link these to use Motif + +SET(MOTIF_FOUND 0) + +IF(UNIX) + FIND_PATH(MOTIF_INCLUDE_DIR + Xm/Xm.h + /usr/openwin/include + ) + + FIND_LIBRARY(MOTIF_LIBRARIES + Xm + /usr/openwin/lib + ) + +ENDIF(UNIX) + +# handle the QUIETLY and REQUIRED arguments and set MOTIF_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Motif DEFAULT_MSG MOTIF_LIBRARIES MOTIF_INCLUDE_DIR) + + +MARK_AS_ADVANCED( + MOTIF_INCLUDE_DIR + MOTIF_LIBRARIES +) diff --git a/CMakeLua/Modules/FindOpenAL.cmake b/CMakeLua/Modules/FindOpenAL.cmake new file mode 100755 index 0000000..088aee5 --- /dev/null +++ b/CMakeLua/Modules/FindOpenAL.cmake @@ -0,0 +1,100 @@ +# Locate OpenAL +# This module defines +# OPENAL_LIBRARY +# OPENAL_FOUND, if false, do not try to link to OpenAL +# OPENAL_INCLUDE_DIR, where to find the headers +# +# $OPENALDIR is an environment variable that would +# correspond to the ./configure --prefix=$OPENALDIR +# used in building OpenAL. +# +# Created by Eric Wing. This was influenced by the FindSDL.cmake module. + +# This makes the presumption that you are include al.h like +# #include "al.h" +# and not +# #include +# The reason for this is that the latter is not entirely portable. +# Windows/Creative Labs does not by default put their headers in AL/ and +# OS X uses the convention . +# +# For Windows, Creative Labs seems to have added a registry key for their +# OpenAL 1.1 installer. I have added that key to the list of search paths, +# however, the key looks like it could be a little fragile depending on +# if they decide to change the 1.00.0000 number for bug fix releases. +# Also, they seem to have laid down groundwork for multiple library platforms +# which puts the library in an extra subdirectory. Currently there is only +# Win32 and I have hardcoded that here. This may need to be adjusted as +# platforms are introduced. +# The OpenAL 1.0 installer doesn't seem to have a useful key I can use. +# I do not know if the Nvidia OpenAL SDK has a registry key. +# +# For OS X, remember that OpenAL was added by Apple in 10.4 (Tiger). +# To support the framework, I originally wrote special framework detection +# code in this module which I have now removed with CMake's introduction +# of native support for frameworks. +# In addition, OpenAL is open source, and it is possible to compile on Panther. +# Furthermore, due to bugs in the initial OpenAL release, and the +# transition to OpenAL 1.1, it is common to need to override the built-in +# framework. +# Per my request, CMake should search for frameworks first in +# the following order: +# ~/Library/Frameworks/OpenAL.framework/Headers +# /Library/Frameworks/OpenAL.framework/Headers +# /System/Library/Frameworks/OpenAL.framework/Headers +# +# On OS X, this will prefer the Framework version (if found) over others. +# People will have to manually change the cache values of +# OPENAL_LIBRARY to override this selection or set the CMake environment +# CMAKE_INCLUDE_PATH to modify the search paths. + +FIND_PATH(OPENAL_INCLUDE_DIR al.h + PATHS + $ENV{OPENALDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include/AL include/OpenAL include +) + +FIND_PATH(OPENAL_INCLUDE_DIR al.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir] + PATH_SUFFIXES include include/lua51 include/lua5.1 include/lua +) + +FIND_LIBRARY(OPENAL_LIBRARY + NAMES OpenAL al openal OpenAL32 + PATHS + $ENV{OPENALDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64 +) + +FIND_LIBRARY(OPENAL_LIBRARY + NAMES OpenAL al openal OpenAL32 + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir] + PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64 +) + + +SET(OPENAL_FOUND "NO") +IF(OPENAL_LIBRARY AND OPENAL_INCLUDE_DIR) + SET(OPENAL_FOUND "YES") +ENDIF(OPENAL_LIBRARY AND OPENAL_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindOpenGL.cmake b/CMakeLua/Modules/FindOpenGL.cmake new file mode 100644 index 0000000..edea06a --- /dev/null +++ b/CMakeLua/Modules/FindOpenGL.cmake @@ -0,0 +1,136 @@ +# - Try to find OpenGL +# Once done this will define +# +# OPENGL_FOUND - system has OpenGL +# OPENGL_XMESA_FOUND - system has XMESA +# OPENGL_GLU_FOUND - system has GLU +# OPENGL_INCLUDE_DIR - the GL include directory +# OPENGL_LIBRARIES - Link these to use OpenGL and GLU +# +# If you want to use just GL you can use these values +# OPENGL_gl_LIBRARY - Path to OpenGL Library +# OPENGL_glu_LIBRARY - Path to GLU Library +# +# On OSX default to using the framework version of opengl +# People will have to change the cache values of OPENGL_glu_LIBRARY +# and OPENGL_gl_LIBRARY to use OpenGL with X11 on OSX + +IF (WIN32) + IF (CYGWIN) + + FIND_PATH(OPENGL_INCLUDE_DIR GL/gl.h ) + + FIND_LIBRARY(OPENGL_gl_LIBRARY opengl32 ) + + FIND_LIBRARY(OPENGL_glu_LIBRARY glu32 ) + + ELSE (CYGWIN) + + IF(BORLAND) + SET (OPENGL_gl_LIBRARY import32 CACHE STRING "OpenGL library for win32") + SET (OPENGL_glu_LIBRARY import32 CACHE STRING "GLU library for win32") + ELSE(BORLAND) + SET (OPENGL_gl_LIBRARY opengl32 CACHE STRING "OpenGL library for win32") + SET (OPENGL_glu_LIBRARY glu32 CACHE STRING "GLU library for win32") + ENDIF(BORLAND) + + ENDIF (CYGWIN) + +ELSE (WIN32) + + IF (APPLE) + + FIND_LIBRARY(OPENGL_gl_LIBRARY OpenGL DOC "OpenGL lib for OSX") + FIND_LIBRARY(OPENGL_glu_LIBRARY AGL DOC "AGL lib for OSX") + FIND_PATH(OPENGL_INCLUDE_DIR OpenGL/gl.h DOC "Include for OpenGL on OSX") + + ELSE(APPLE) + + # The first line below is to make sure that the proper headers + # are used on a Linux machine with the NVidia drivers installed. + # They replace Mesa with NVidia's own library but normally do not + # install headers and that causes the linking to + # fail since the compiler finds the Mesa headers but NVidia's library. + # Make sure the NVIDIA directory comes BEFORE the others. + # - Atanas Georgiev + + FIND_PATH(OPENGL_INCLUDE_DIR GL/gl.h + /usr/share/doc/NVIDIA_GLX-1.0/include + /usr/openwin/share/include + /opt/graphics/OpenGL/include + ) + + FIND_PATH(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h + /usr/share/doc/NVIDIA_GLX-1.0/include + /usr/openwin/share/include + /opt/graphics/OpenGL/include + ) + + FIND_LIBRARY(OPENGL_gl_LIBRARY + NAMES GL MesaGL + PATHS /opt/graphics/OpenGL/lib + /usr/openwin/lib + /usr/shlib + ) + + # On Unix OpenGL most certainly always requires X11. + # Feel free to tighten up these conditions if you don't + # think this is always true. + # It's not true on OSX. + + IF (OPENGL_gl_LIBRARY) + IF(NOT X11_FOUND) + INCLUDE(FindX11) + ENDIF(NOT X11_FOUND) + IF (X11_FOUND) + IF (NOT APPLE) + SET (OPENGL_LIBRARIES ${X11_LIBRARIES}) + ENDIF (NOT APPLE) + ENDIF (X11_FOUND) + ENDIF (OPENGL_gl_LIBRARY) + + FIND_LIBRARY(OPENGL_glu_LIBRARY + NAMES GLU MesaGLU + PATHS ${OPENGL_gl_LIBRARY} + /opt/graphics/OpenGL/lib + /usr/openwin/lib + /usr/shlib + ) + + ENDIF(APPLE) +ENDIF (WIN32) + +SET( OPENGL_FOUND "NO" ) +IF(OPENGL_gl_LIBRARY) + + IF(OPENGL_xmesa_INCLUDE_DIR) + SET( OPENGL_XMESA_FOUND "YES" ) + ELSE(OPENGL_xmesa_INCLUDE_DIR) + SET( OPENGL_XMESA_FOUND "NO" ) + ENDIF(OPENGL_xmesa_INCLUDE_DIR) + + SET( OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY} ${OPENGL_LIBRARIES}) + IF(OPENGL_glu_LIBRARY) + SET( OPENGL_GLU_FOUND "YES" ) + SET( OPENGL_LIBRARIES ${OPENGL_glu_LIBRARY} ${OPENGL_LIBRARIES} ) + ELSE(OPENGL_glu_LIBRARY) + SET( OPENGL_GLU_FOUND "NO" ) + ENDIF(OPENGL_glu_LIBRARY) + + SET( OPENGL_FOUND "YES" ) + + # This deprecated setting is for backward compatibility with CMake1.4 + + SET (OPENGL_LIBRARY ${OPENGL_LIBRARIES}) + +ENDIF(OPENGL_gl_LIBRARY) + +# This deprecated setting is for backward compatibility with CMake1.4 +SET(OPENGL_INCLUDE_PATH ${OPENGL_INCLUDE_DIR}) + +MARK_AS_ADVANCED( + OPENGL_INCLUDE_DIR + OPENGL_xmesa_INCLUDE_DIR + OPENGL_glu_LIBRARY + OPENGL_gl_LIBRARY +) diff --git a/CMakeLua/Modules/FindOpenSSL.cmake b/CMakeLua/Modules/FindOpenSSL.cmake new file mode 100644 index 0000000..0172df8 --- /dev/null +++ b/CMakeLua/Modules/FindOpenSSL.cmake @@ -0,0 +1,70 @@ +# - Try to find the OpenSSL encryption library +# Once done this will define +# +# OPENSSL_FOUND - system has the OpenSSL library +# OPENSSL_INCLUDE_DIR - the OpenSSL include directory +# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF(OPENSSL_LIBRARIES) + SET(OpenSSL_FIND_QUIETLY TRUE) +ENDIF(OPENSSL_LIBRARIES) + +IF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + SET(LIB_FOUND 1) +ENDIF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + +FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h ) + +IF(WIN32 AND MSVC) + # /MD and /MDd are the standard values - if somone wants to use + # others, the libnames have to change here too + # use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b + + FIND_LIBRARY(SSL_EAY_DEBUG NAMES ssleay32MDd ssl ssleay32) + FIND_LIBRARY(SSL_EAY_RELEASE NAMES ssleay32MD ssl ssleay32) + + IF(MSVC_IDE) + IF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + SET(OPENSSL_LIBRARIES optimized ${SSL_EAY_RELEASE} debug ${SSL_EAY_DEBUG}) + ELSE(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + MESSAGE(FATAL_ERROR "Could not find the debug and release version of openssl") + ENDIF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + ELSE(MSVC_IDE) + STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_TOLOWER) + IF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) + SET(OPENSSL_LIBRARIES ${SSL_EAY_DEBUG}) + ELSE(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) + SET(OPENSSL_LIBRARIES ${SSL_EAY_RELEASE}) + ENDIF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) + ENDIF(MSVC_IDE) + MARK_AS_ADVANCED(SSL_EAY_DEBUG SSL_EAY_RELEASE) +ELSE(WIN32 AND MSVC) + + FIND_LIBRARY(OPENSSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD ) + +ENDIF(WIN32 AND MSVC) + +IF(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) + SET(OPENSSL_FOUND TRUE) +ELSE(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) + SET(OPENSSL_FOUND FALSE) +ENDIF (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) + +IF (OPENSSL_FOUND) + IF (NOT OpenSSL_FIND_QUIETLY) + MESSAGE(STATUS "Found OpenSSL: ${OPENSSL_LIBRARIES}") + ENDIF (NOT OpenSSL_FIND_QUIETLY) +ELSE (OPENSSL_FOUND) + IF (OpenSSL_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find OpenSSL") + ENDIF (OpenSSL_FIND_REQUIRED) +ENDIF (OPENSSL_FOUND) + +MARK_AS_ADVANCED(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES) + diff --git a/CMakeLua/Modules/FindOpenThreads.cmake b/CMakeLua/Modules/FindOpenThreads.cmake new file mode 100644 index 0000000..fc5cd36 --- /dev/null +++ b/CMakeLua/Modules/FindOpenThreads.cmake @@ -0,0 +1,164 @@ +# OpenThreads is a C++ based threading library. Its largest userbase +# seems to OpenSceneGraph so you might notice I accept OSGDIR as an +# environment path. +# I consider this part of the Findosg* suite used to find OpenSceneGraph +# components. +# Each component is separate and you must opt in to each module. +# +# Locate OpenThreads +# This module defines +# OPENTHREADS_LIBRARY +# OPENTHREADS_FOUND, if false, do not try to link to OpenThreads +# OPENTHREADS_INCLUDE_DIR, where to find the headers +# +# $OPENTHREADS_DIR is an environment variable that would +# correspond to the ./configure --prefix=$OPENTHREADS_DIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include + +# To make it easier for one-step automated configuration/builds, +# we leverage environmental paths. This is preferable +# to the -DVAR=value switches because it insulates the +# users from changes we may make in this script. +# It also offers a little more flexibility than setting +# the CMAKE_*_PATH since we can target specific components. +# However, the default CMake behavior will search system paths +# before anything else. This is problematic in the cases +# where you have an older (stable) version installed, but +# are trying to build a newer version. +# CMake doesn't offer a nice way to globally control this behavior +# so we have to do a nasty "double FIND_" in this module. +# The first FIND disables the CMAKE_ search paths and only checks +# the environmental paths. +# If nothing is found, then the second find will search the +# standard install paths. +# Explicit -DVAR=value arguments should still be able to override everything. + +FIND_PATH(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread + PATHS + $ENV{OPENTHREADS_INCLUDE_DIR} + $ENV{OPENTHREADS_DIR}/include + $ENV{OPENTHREADS_DIR} + $ENV{OSG_INCLUDE_DIR} + $ENV{OSG_DIR}/include + $ENV{OSG_DIR} + $ENV{OSGDIR}/include + $ENV{OSGDIR} + NO_DEFAULT_PATH +) + + + +FIND_PATH(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include + /usr/include + /sw/include # Fink + /opt/local/include # DarwinPorts + /opt/csw/include # Blastwave + /opt/include + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT]/include + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/include +) + + +FIND_LIBRARY(OPENTHREADS_LIBRARY + NAMES OpenThreads OpenThreadsWin32 + PATHS + $ENV{OPENTHREADS_LIBRARY_DIR} + $ENV{OPENTHREADS_DIR}/lib64 + $ENV{OPENTHREADS_DIR}/lib + $ENV{OPENTHREADS_DIR} + $ENV{OSG_LIBRARY_DIR} + $ENV{OSG_DIR}/lib64 + $ENV{OSG_DIR}/lib + $ENV{OSG_DIR} + $ENV{OSGDIR}/lib64 + $ENV{OSGDIR}/lib + $ENV{OSGDIR} + NO_DEFAULT_PATH +) + + + +FIND_LIBRARY(OPENTHREADS_LIBRARY + NAMES OpenThreads OpenThreadsWin32 + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/lib64 + /usr/local/lib + /usr/lib64 + /usr/lib + /sw/lib64 + /sw/lib + /opt/local/lib64 + /opt/local/lib + /opt/csw/lib64 + /opt/csw/lib + /opt/lib64 + /opt/lib + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT]/lib + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/lib +) + + +FIND_LIBRARY(OPENTHREADS_LIBRARY_DEBUG + NAMES OpenThreadsd OpenThreadsWin32d + PATHS + $ENV{OPENTHREADS_DEBUG_LIBRARY_DIR} + $ENV{OPENTHREADS_LIBRARY_DIR} + $ENV{OPENTHREADS_DIR}/lib64 + $ENV{OPENTHREADS_DIR}/lib + $ENV{OPENTHREADS_DIR} + $ENV{OSG_LIBRARY_DIR} + $ENV{OSG_DIR}/lib64 + $ENV{OSG_DIR}/lib + $ENV{OSG_DIR} + $ENV{OSGDIR}/lib64 + $ENV{OSGDIR}/lib + $ENV{OSGDIR} + NO_DEFAULT_PATH +) + + + +FIND_LIBRARY(OPENTHREADS_LIBRARY_DEBUG + NAMES OpenThreadsd OpenThreadsWin32d + PATHS + /usr/local/lib64 + /usr/local/lib + /usr/lib64 + /usr/lib + /sw/lib64 + /sw/lib + /opt/local/lib64 + /opt/local/lib + /opt/csw/lib64 + /opt/csw/lib + /opt/lib64 + /opt/lib + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT]/lib + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/lib +) + + +IF(OPENTHREADS_LIBRARY) + IF(NOT OPENTHREADS_LIBRARY_DEBUG) + #MESSAGE("-- Warning Debug OpenThreads not found, using: ${OPENTHREADS_LIBRARY}") + #SET(OPENTHREADS_LIBRARY_DEBUG "${OPENTHREADS_LIBRARY}") + SET(OPENTHREADS_LIBRARY_DEBUG "${OPENTHREADS_LIBRARY}" CACHE FILEPATH "Debug version of OpenThreads Library (use regular version if not available)" FORCE) + ENDIF(NOT OPENTHREADS_LIBRARY_DEBUG) +ENDIF(OPENTHREADS_LIBRARY) + +SET(OPENTHREADS_FOUND "NO") +IF(OPENTHREADS_INCLUDE_DIR AND OPENTHREADS_LIBRARY) + SET(OPENTHREADS_FOUND "YES") + # MESSAGE("-- Found OpenThreads: "${OPENTHREADS_LIBRARY}) +ENDIF(OPENTHREADS_INCLUDE_DIR AND OPENTHREADS_LIBRARY) + diff --git a/CMakeLua/Modules/FindPHP4.cmake b/CMakeLua/Modules/FindPHP4.cmake new file mode 100644 index 0000000..d4ccd1f --- /dev/null +++ b/CMakeLua/Modules/FindPHP4.cmake @@ -0,0 +1,70 @@ +# - Find PHP4 +# This module finds if PHP4 is installed and determines where the include files +# and libraries are. It also determines what the name of the library is. This +# code sets the following variables: +# +# PHP4_INCLUDE_PATH = path to where php.h can be found +# PHP4_EXECUTABLE = full path to the php4 binary +# + +SET(PHP4_POSSIBLE_INCLUDE_PATHS + /usr/include/php4 + /usr/local/include/php4 + /usr/include/php + /usr/local/include/php + /usr/local/apache/php + ) + +SET(PHP4_POSSIBLE_LIB_PATHS + /usr/lib + ) + +FIND_PATH(PHP4_FOUND_INCLUDE_PATH main/php.h + ${PHP4_POSSIBLE_INCLUDE_PATHS}) + +IF(PHP4_FOUND_INCLUDE_PATH) + SET(php4_paths "${PHP4_POSSIBLE_INCLUDE_PATHS}") + FOREACH(php4_path Zend main TSRM) + SET(php4_paths ${php4_paths} "${PHP4_FOUND_INCLUDE_PATH}/${php4_path}") + ENDFOREACH(php4_path Zend main TSRM) + SET(PHP4_INCLUDE_PATH "${php4_paths}" INTERNAL "PHP4 include paths") +ENDIF(PHP4_FOUND_INCLUDE_PATH) + +FIND_PROGRAM(PHP4_EXECUTABLE NAMES php4 php ) + +MARK_AS_ADVANCED( + PHP4_EXECUTABLE + PHP4_FOUND_INCLUDE_PATH + ) + +IF(APPLE) +# this is a hack for now + SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS + "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -Wl,-flat_namespace") + FOREACH(symbol + __efree + __emalloc + __estrdup + __object_init_ex + __zend_get_parameters_array_ex + __zend_list_find + __zval_copy_ctor + _add_property_zval_ex + _alloc_globals + _compiler_globals + _convert_to_double + _convert_to_long + _zend_error + _zend_hash_find + _zend_register_internal_class_ex + _zend_register_list_destructors_ex + _zend_register_resource + _zend_rsrc_list_get_rsrc_type + _zend_wrong_param_count + _zval_used_for_init + ) + SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS + "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS},-U,${symbol}") + ENDFOREACH(symbol) +ENDIF(APPLE) + diff --git a/CMakeLua/Modules/FindPNG.cmake b/CMakeLua/Modules/FindPNG.cmake new file mode 100644 index 0000000..fa1bcd3 --- /dev/null +++ b/CMakeLua/Modules/FindPNG.cmake @@ -0,0 +1,44 @@ +# - Find the native PNG includes and library +# +# This module defines +# PNG_INCLUDE_DIR, where to find png.h, etc. +# PNG_LIBRARIES, the libraries to link against to use PNG. +# PNG_DEFINITIONS - You should ADD_DEFINITONS(${PNG_DEFINITIONS}) before compiling code that includes png library files. +# PNG_FOUND, If false, do not try to use PNG. +# also defined, but not for general use are +# PNG_LIBRARY, where to find the PNG library. +# None of the above will be defined unles zlib can be found. +# PNG depends on Zlib +INCLUDE(FindZLIB) + +IF(ZLIB_FOUND) + FIND_PATH(PNG_PNG_INCLUDE_DIR png.h + /usr/local/include/libpng # OpenBSD + ) + + SET(PNG_NAMES ${PNG_NAMES} png libpng) + FIND_LIBRARY(PNG_LIBRARY NAMES ${PNG_NAMES} ) + + IF (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR) + # png.h includes zlib.h. Sigh. + SET(PNG_INCLUDE_DIR ${PNG_PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} ) + SET(PNG_LIBRARIES ${PNG_LIBRARY} ${ZLIB_LIBRARY}) + + IF (CYGWIN) + IF(BUILD_SHARED_LIBS) + # No need to define PNG_USE_DLL here, because it's default for Cygwin. + ELSE(BUILD_SHARED_LIBS) + SET (PNG_DEFINITIONS -DPNG_STATIC) + ENDIF(BUILD_SHARED_LIBS) + ENDIF (CYGWIN) + + ENDIF (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR) + +ENDIF(ZLIB_FOUND) + +# handle the QUIETLY and REQUIRED arguments and set PNG_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PNG DEFAULT_MSG PNG_LIBRARY PNG_PNG_INCLUDE_DIR) + +MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR PNG_LIBRARY ) diff --git a/CMakeLua/Modules/FindPackageHandleStandardArgs.cmake b/CMakeLua/Modules/FindPackageHandleStandardArgs.cmake new file mode 100644 index 0000000..8d683cb --- /dev/null +++ b/CMakeLua/Modules/FindPackageHandleStandardArgs.cmake @@ -0,0 +1,54 @@ +# FIND_PACKAGE_HANDLE_STANDARD_ARGS(NAME (DEFAULT_MSG|"Custom failure message") VAR1 ... ) +# This macro is intended to be used in FindXXX.cmake modules files. +# It handles the REQUIRED and QUIET argument to FIND_PACKAGE() and +# it also sets the _FOUND variable. +# The package is found if all variables listed are TRUE. +# Example: +# +# FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2 DEFAULT_MSG LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) +# +# LibXml2 is considered to be found, if both LIBXML2_LIBRARIES and +# LIBXML2_INCLUDE_DIR are valid. Then also LIBXML2_FOUND is set to TRUE. +# If it is not found and REQUIRED was used, it fails with FATAL_ERROR, +# independent whether QUIET was used or not. +# If it is found, the location is reported using the VAR1 argument, so +# here a message "Found LibXml2: /usr/lib/libxml2.so" will be printed out. +# If the second argument is DEFAULT_MSG, the message in the failure case will +# be "Could NOT find LibXml2", if you don't like this message you can specify +# your own custom failure message there. + +MACRO(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FAIL_MSG _VAR1 ) + + IF("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") + SET(_FAIL_MESSAGE "Could NOT find ${_NAME}") + ELSE("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") + SET(_FAIL_MESSAGE "${_FAIL_MSG}") + ENDIF("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") + + STRING(TOUPPER ${_NAME} _NAME_UPPER) + + SET(${_NAME_UPPER}_FOUND TRUE) + IF(NOT ${_VAR1}) + SET(${_NAME_UPPER}_FOUND FALSE) + ENDIF(NOT ${_VAR1}) + + FOREACH(_CURRENT_VAR ${ARGN}) + IF(NOT ${_CURRENT_VAR}) + SET(${_NAME_UPPER}_FOUND FALSE) + ENDIF(NOT ${_CURRENT_VAR}) + ENDFOREACH(_CURRENT_VAR) + + IF (${_NAME_UPPER}_FOUND) + IF (NOT ${_NAME}_FIND_QUIETLY) + MESSAGE(STATUS "Found ${_NAME}: ${${_VAR1}}") + ENDIF (NOT ${_NAME}_FIND_QUIETLY) + ELSE (${_NAME_UPPER}_FOUND) + IF (${_NAME}_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "${_FAIL_MESSAGE}") + ELSE (${_NAME}_FIND_REQUIRED) + IF (NOT ${_NAME}_FIND_QUIETLY) + MESSAGE(STATUS "${_FAIL_MESSAGE}") + ENDIF (NOT ${_NAME}_FIND_QUIETLY) + ENDIF (${_NAME}_FIND_REQUIRED) + ENDIF (${_NAME_UPPER}_FOUND) +ENDMACRO(FIND_PACKAGE_HANDLE_STANDARD_ARGS) diff --git a/CMakeLua/Modules/FindPerl.cmake b/CMakeLua/Modules/FindPerl.cmake new file mode 100644 index 0000000..b3c5e4f --- /dev/null +++ b/CMakeLua/Modules/FindPerl.cmake @@ -0,0 +1,37 @@ +# - Find perl +# this module looks for Perl +# +# PERL_EXECUTABLE - the full path to perl +# PERL_FOUND - If false, don't attempt to use perl. + +INCLUDE(FindCygwin) + +SET(PERL_POSSIBLE_BIN_PATHS + ${CYGWIN_INSTALL_PATH}/bin + ) + +IF(WIN32) + GET_FILENAME_COMPONENT( + ActivePerl_CurrentVersion + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActivePerl;CurrentVersion]" + NAME) + SET(PERL_POSSIBLE_BIN_PATHS ${PERL_POSSIBLE_BIN_PATHS} + "C:/Perl/bin" + [HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActivePerl\\${ActivePerl_CurrentVersion}]/bin + ) +ENDIF(WIN32) + +FIND_PROGRAM(PERL_EXECUTABLE + NAMES perl + PATHS ${PERL_POSSIBLE_BIN_PATHS} + ) + +# Deprecated settings for compatibility with CMake1.4 +SET(PERL ${PERL_EXECUTABLE}) + +# handle the QUIETLY and REQUIRED arguments and set PERL_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Perl DEFAULT_MSG PERL_EXECUTABLE) + +MARK_AS_ADVANCED(PERL_EXECUTABLE) diff --git a/CMakeLua/Modules/FindPerlLibs.cmake b/CMakeLua/Modules/FindPerlLibs.cmake new file mode 100644 index 0000000..884af6e --- /dev/null +++ b/CMakeLua/Modules/FindPerlLibs.cmake @@ -0,0 +1,64 @@ +# - Find Perl libraries +# This module finds if PERL is installed and determines where the include files +# and libraries are. It also determines what the name of the library is. This +# code sets the following variables: +# +# PERL_INCLUDE_PATH = path to where perl.h is found +# PERL_EXECUTABLE = full path to the perl binary +# + +SET(PERL_POSSIBLE_INCLUDE_PATHS + /usr/lib/perl/5.8.3/CORE + /usr/lib/perl/5.8.2/CORE + /usr/lib/perl/5.8.1/CORE + /usr/lib/perl/5.8.0/CORE + /usr/lib/perl/5.8/CORE + ) + +SET(PERL_POSSIBLE_LIB_PATHS + /usr/lib + ) + +FIND_PATH(PERL_INCLUDE_PATH perl.h + ${PERL_POSSIBLE_INCLUDE_PATHS}) + + +FIND_PROGRAM(PERL_EXECUTABLE perl ) + +IF(PERL_EXECUTABLE) + EXEC_PROGRAM(${PERL_EXECUTABLE} + ARGS -e "'use Config; print \$Config{libperl}, \"\\n\"'" + OUTPUT_VARIABLE PERL_LIBRARY_OUTPUT_VARIABLE + RETURN_VALUE PERL_LIBRARY_RETURN_VALUE + ) + IF(NOT PERL_LIBRARY_RETURN_VALUE) + FOREACH(path ${PERL_POSSIBLE_LIB_PATHS}) + SET(PERL_POSSIBLE_LIBRARY_NAME ${PERL_POSSIBLE_LIBRARY_NAME} "${path}/${PERL_LIBRARY_OUTPUT_VARIABLE}") + ENDFOREACH(path ${PERL_POSSIBLE_LIB_PATHS}) + ENDIF(NOT PERL_LIBRARY_RETURN_VALUE) + EXEC_PROGRAM(${PERL_EXECUTABLE} + ARGS -e "'use Config; print \$Config{cppflags}, \"\\n\"'" + OUTPUT_VARIABLE PERL_CPPFLAGS_OUTPUT_VARIABLE + RETURN_VALUE PERL_CPPFLAGS_RETURN_VALUE + ) + IF(NOT PERL_CPPFLAGS_RETURN_VALUE) + SET(PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE}) + ENDIF(NOT PERL_CPPFLAGS_RETURN_VALUE) +ENDIF(PERL_EXECUTABLE) + +FIND_LIBRARY(PERL_LIBRARY + NAMES ${PERL_POSSIBLE_LIBRARY_NAME} perl5.8.0 + PATHS ${PERL_POSSIBLE_LIB_PATHS} + ) + +# handle the QUIETLY and REQUIRED arguments and set PERLLIBS_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PerlLibs DEFAULT_MSG PERL_LIBRARY PERL_INCLUDE_PATH) + + +MARK_AS_ADVANCED( + PERL_INCLUDE_PATH + PERL_EXECUTABLE + PERL_LIBRARY + ) diff --git a/CMakeLua/Modules/FindPhysFS.cmake b/CMakeLua/Modules/FindPhysFS.cmake new file mode 100755 index 0000000..93e3b99 --- /dev/null +++ b/CMakeLua/Modules/FindPhysFS.cmake @@ -0,0 +1,59 @@ +# Locate PhysFS library +# This module defines +# PHYSFS_LIBRARY, the name of the library to link against +# PHYSFS_FOUND, if false, do not try to link to PHYSFS +# PHYSFS_INCLUDE_DIR, where to find physfs.h +# +# $PHYSFSDIR is an environment variable that would +# correspond to the ./configure --prefix=$PHYSFSDIR +# used in building PHYSFS. +# +# Created by Eric Wing. + +FIND_PATH(PHYSFS_INCLUDE_DIR physfs.h + PATHS + $ENV{PHYSFSDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(PHYSFS_INCLUDE_DIR physfs.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + PATH_SUFFIXES include/physfs include +) + +FIND_LIBRARY(PHYSFS_LIBRARY + NAMES physfs + PATHS + $ENV{PHYSFSDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(PHYSFS_LIBRARY + NAMES physfs + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(PHYSFS_FOUND "NO") +IF(PHYSFS_LIBRARY AND PHYSFS_INCLUDE_DIR) + SET(PHYSFS_FOUND "YES") +ENDIF(PHYSFS_LIBRARY AND PHYSFS_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindPike.cmake b/CMakeLua/Modules/FindPike.cmake new file mode 100644 index 0000000..12985e8 --- /dev/null +++ b/CMakeLua/Modules/FindPike.cmake @@ -0,0 +1,24 @@ +# - Find Pike +# This module finds if PIKE is installed and determines where the include files +# and libraries are. It also determines what the name of the library is. This +# code sets the following variables: +# +# PIKE_INCLUDE_PATH = path to where program.h is found +# PIKE_EXECUTABLE = full path to the pike binary +# + +FILE(GLOB PIKE_POSSIBLE_INCLUDE_PATHS + /usr/include/pike/* + /usr/local/include/pike/*) + +FIND_PATH(PIKE_INCLUDE_PATH program.h + ${PIKE_POSSIBLE_INCLUDE_PATHS}) + +FIND_PROGRAM(PIKE_EXECUTABLE + NAMES pike7.4 + ) + +MARK_AS_ADVANCED( + PIKE_EXECUTABLE + PIKE_INCLUDE_PATH + ) diff --git a/CMakeLua/Modules/FindPkgConfig.cmake b/CMakeLua/Modules/FindPkgConfig.cmake new file mode 100755 index 0000000..1989d10 --- /dev/null +++ b/CMakeLua/Modules/FindPkgConfig.cmake @@ -0,0 +1,360 @@ +# - a pkg-config module for CMake +# +# Usage: +# pkg_check_modules( [REQUIRED] []*) +# checks for all the given modules +# +# pkg_search_module( [REQUIRED] []*) +# checks for given modules and uses the first working one +# +# When the 'REQUIRED' argument was set, macros will fail with an error +# when module(s) could not be found +# +# It sets the following variables: +# PKG_CONFIG_FOUND ... true if pkg-config works on the system +# PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program +# _FOUND ... set to 1 if module(s) exist +# +# For the following variables two sets of values exist; first one is the +# common one and has the given PREFIX. The second set contains flags +# which are given out when pkgconfig was called with the '--static' +# option. +# _LIBRARIES ... only the libraries (w/o the '-l') +# _LIBRARY_DIRS ... the paths of the libraries (w/o the '-L') +# _LDFLAGS ... all required linker flags +# _LDFLAGS_OTHER ... all other linker flags +# _INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I') +# _CFLAGS ... all required cflags +# _CFLAGS_OTHER ... the other compiler flags +# +# = for common case +# = _STATIC for static linking +# +# There are some special variables whose prefix depends on the count +# of given modules. When there is only one module, stays +# unchanged. When there are multiple modules, the prefix will be +# changed to _: +# _VERSION ... version of the module +# _PREFIX ... prefix-directory of the module +# _INCLUDEDIR ... include-dir of the module +# _LIBDIR ... lib-dir of the module +# +# = when |MODULES| == 1, else +# = _ +# +# A parameter can have the following formats: +# {MODNAME} ... matches any version +# {MODNAME}>={VERSION} ... at least version is required +# {MODNAME}={VERSION} ... exactly version is required +# {MODNAME}<={VERSION} ... modules must not be newer than +# +# Examples +# pkg_check_modules (GLIB2 glib-2.0) +# +# pkg_check_modules (GLIB2 glib-2.0>=2.10) +# requires at least version 2.10 of glib2 and defines e.g. +# GLIB2_VERSION=2.10.3 +# +# pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0) +# requires both glib2 and gtk2, and defines e.g. +# FOO_glib-2.0_VERSION=2.10.3 +# FOO_gtk+-2.0_VERSION=2.8.20 +# +# pkg_check_modules (XRENDER REQUIRED xrender) +# defines e.g.: +# XRENDER_LIBRARIES=Xrender;X11 +# XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp +# +# pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2) + + +# Copyright (C) 2006 Enrico Scholz +# +# Redistribution and use, with or without modification, are permitted +# provided that the following conditions are met: +# +# 1. Redistributions must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. The name of the author may not be used to endorse or promote +# products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +### Common stuff #### +set(PKG_CONFIG_VERSION 1) +set(PKG_CONFIG_FOUND 0) + +find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable") +mark_as_advanced(PKG_CONFIG_EXECUTABLE) + +if(PKG_CONFIG_EXECUTABLE) + set(PKG_CONFIG_FOUND 1) +endif(PKG_CONFIG_EXECUTABLE) + + +# Unsets the given variables +macro(_pkgconfig_unset var) + set(${var} "" CACHE INTERNAL "") +endmacro(_pkgconfig_unset) + +macro(_pkgconfig_set var value) + set(${var} ${value} CACHE INTERNAL "") +endmacro(_pkgconfig_set) + +# Invokes pkgconfig, cleans up the result and sets variables +macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp) + set(_pkgconfig_invoke_result) + + execute_process( + COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist} + OUTPUT_VARIABLE _pkgconfig_invoke_result + RESULT_VARIABLE _pkgconfig_failed) + + if (_pkgconfig_failed) + set(_pkgconfig_${_varname} "") + _pkgconfig_unset(${_prefix}_${_varname}) + else(_pkgconfig_failed) + string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") + string(REGEX REPLACE " +$" "" _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") + + if (NOT ${_regexp} STREQUAL "") + string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") + endif(NOT ${_regexp} STREQUAL "") + + separate_arguments(_pkgconfig_invoke_result) + + #message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}") + set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result}) + _pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}") + endif(_pkgconfig_failed) +endmacro(_pkgconfig_invoke) + +# Invokes pkgconfig two times; once without '--static' and once with +# '--static' +macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp) + _pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN}) + _pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN}) +endmacro(_pkgconfig_invoke_dyn) + +# Splits given arguments into options and a package list +macro(_pkgconfig_parse_options _result _is_req) + set(${_is_req} 0) + + foreach(_pkg ${ARGN}) + if (_pkg STREQUAL "REQUIRED") + set(${_is_req} 1) + endif (_pkg STREQUAL "REQUIRED") + endforeach(_pkg ${ARGN}) + + set(${_result} ${ARGN}) + list(REMOVE_ITEM ${_result} "REQUIRED") +endmacro(_pkgconfig_parse_options) + +### +macro(_pkg_check_modules_internal _is_required _is_silent _prefix) + _pkgconfig_unset(${_prefix}_FOUND) + _pkgconfig_unset(${_prefix}_VERSION) + _pkgconfig_unset(${_prefix}_PREFIX) + _pkgconfig_unset(${_prefix}_INCLUDEDIR) + _pkgconfig_unset(${_prefix}_LIBDIR) + _pkgconfig_unset(${_prefix}_LIBS) + _pkgconfig_unset(${_prefix}_LIBS_L) + _pkgconfig_unset(${_prefix}_LIBS_PATHS) + _pkgconfig_unset(${_prefix}_LIBS_OTHER) + _pkgconfig_unset(${_prefix}_CFLAGS) + _pkgconfig_unset(${_prefix}_CFLAGS_I) + _pkgconfig_unset(${_prefix}_CFLAGS_OTHER) + _pkgconfig_unset(${_prefix}_STATIC_LIBDIR) + _pkgconfig_unset(${_prefix}_STATIC_LIBS) + _pkgconfig_unset(${_prefix}_STATIC_LIBS_L) + _pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS) + _pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER) + _pkgconfig_unset(${_prefix}_STATIC_CFLAGS) + _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I) + _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER) + + # create a better addressable variable of the modules and calculate its size + set(_pkg_check_modules_list ${ARGN}) + list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt) + + if(PKG_CONFIG_EXECUTABLE) + # give out status message telling checked module + if (NOT ${_is_silent}) + if (_pkg_check_modules_cnt EQUAL 1) + message(STATUS "checking for module '${_pkg_check_modules_list}'") + else(_pkg_check_modules_cnt EQUAL 1) + message(STATUS "checking for modules '${_pkg_check_modules_list}'") + endif(_pkg_check_modules_cnt EQUAL 1) + endif(NOT ${_is_silent}) + + set(_pkg_check_modules_packages) + set(_pkg_check_modules_failed) + + # iterate through module list and check whether they exist and match the required version + foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list}) + set(_pkg_check_modules_exist_query) + + # check whether version is given + if (_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") + string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\1" _pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}") + string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\2" _pkg_check_modules_pkg_op "${_pkg_check_modules_pkg}") + string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\3" _pkg_check_modules_pkg_ver "${_pkg_check_modules_pkg}") + else(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") + set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}") + set(_pkg_check_modules_pkg_op) + set(_pkg_check_modules_pkg_ver) + endif(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") + + # handle the operands + if (_pkg_check_modules_pkg_op STREQUAL ">=") + list(APPEND _pkg_check_modules_exist_query --atleast-version) + endif(_pkg_check_modules_pkg_op STREQUAL ">=") + + if (_pkg_check_modules_pkg_op STREQUAL "=") + list(APPEND _pkg_check_modules_exist_query --exact-version) + endif(_pkg_check_modules_pkg_op STREQUAL "=") + + if (_pkg_check_modules_pkg_op STREQUAL "<=") + list(APPEND _pkg_check_modules_exist_query --max-version) + endif(_pkg_check_modules_pkg_op STREQUAL "<=") + + # create the final query which is of the format: + # * --atleast-version + # * --exact-version + # * --max-version + # * --exists + if (_pkg_check_modules_pkg_op) + list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_ver}") + else(_pkg_check_modules_pkg_op) + list(APPEND _pkg_check_modules_exist_query --exists) + endif(_pkg_check_modules_pkg_op) + + _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION) + _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX) + _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR) + _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR) + + list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}") + list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}") + + # execute the query + execute_process( + COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query} + RESULT_VARIABLE _pkgconfig_retval) + + # evaluate result and tell failures + if (_pkgconfig_retval) + if(NOT ${_is_silent}) + message(STATUS " package '${_pkg_check_modules_pkg}' not found") + endif(NOT ${_is_silent}) + + set(_pkg_check_modules_failed 1) + endif(_pkgconfig_retval) + endforeach(_pkg_check_modules_pkg) + + if(_pkg_check_modules_failed) + # fail when requested + if (${_is_required}) + message(SEND_ERROR "A required package was not found") + endif (${_is_required}) + else(_pkg_check_modules_failed) + # when we are here, we checked whether requested modules + # exist. Now, go through them and set variables + + _pkgconfig_set(${_prefix}_FOUND 1) + list(LENGTH _pkg_check_modules_packages pkg_count) + + # iterate through all modules again and set individual variables + foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages}) + # handle case when there is only one package required + if (pkg_count EQUAL 1) + set(_pkg_check_prefix "${_prefix}") + else(pkg_count EQUAL 1) + set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}") + endif(pkg_count EQUAL 1) + + _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion ) + _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" PREFIX "" --variable=prefix ) + _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" INCLUDEDIR "" --variable=includedir ) + _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" LIBDIR "" --variable=libdir ) + + message(STATUS " found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}") + endforeach(_pkg_check_modules_pkg) + + # set variables which are combined for multiple modules + _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l ) + _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L ) + _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs ) + _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other ) + + _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I ) + _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags ) + _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other ) + endif(_pkg_check_modules_failed) + else(PKG_CONFIG_EXECUTABLE) + if (${_is_required}) + message(SEND_ERROR "pkg-config tool not found") + endif (${_is_required}) + endif(PKG_CONFIG_EXECUTABLE) +endmacro(_pkg_check_modules_internal) + +### +### User visible macros start here +### + +### +macro(pkg_check_modules _prefix _module0) + # check cached value + if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) + _pkgconfig_parse_options (_pkg_modules _pkg_is_required "${_module0}" ${ARGN}) + _pkg_check_modules_internal("${_pkg_is_required}" 0 "${_prefix}" ${_pkg_modules}) + + _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION}) + endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) +endmacro(pkg_check_modules) + +### +macro(pkg_search_module _prefix _module0) + # check cached value + if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND) + set(_pkg_modules_found 0) + _pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required "${_module0}" ${ARGN}) + + message(STATUS "checking for one of the modules '${_pkg_modules_alt}'") + + # iterate through all modules and stop at the first working one. + foreach(_pkg_alt ${_pkg_modules_alt}) + if(NOT _pkg_modules_found) + _pkg_check_modules_internal(0 1 "${_prefix}" "${_pkg_alt}") + endif(NOT _pkg_modules_found) + + if (${_prefix}_FOUND) + set(_pkg_modules_found 1) + endif(${_prefix}_FOUND) + endforeach(_pkg_alt) + + if (NOT ${_prefix}_FOUND) + if(${_pkg_is_required}) + message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found") + endif(${_pkg_is_required}) + endif(NOT ${_prefix}_FOUND) + + _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION}) + endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND) +endmacro(pkg_search_module) + +### Local Variables: +### mode: cmake +### End: diff --git a/CMakeLua/Modules/FindProducer.cmake b/CMakeLua/Modules/FindProducer.cmake new file mode 100644 index 0000000..576eae2 --- /dev/null +++ b/CMakeLua/Modules/FindProducer.cmake @@ -0,0 +1,82 @@ +# Though Producer isn't directly part of OpenSceneGraph, its primary user +# is OSG so I consider this part of the Findosg* suite used to find +# OpenSceneGraph components. You'll notice that I accept OSGDIR as an +# environment path. +# +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL (and OpenThreads?) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate Producer +# This module defines +# PRODUCER_LIBRARY +# PRODUCER_FOUND, if false, do not try to link to Producer +# PRODUCER_INCLUDE_DIR, where to find the headers +# +# $PRODUCER_DIR is an environment variable that would +# correspond to the ./configure --prefix=$PRODUCER_DIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include + +# Try the user's environment request before anything else. +FIND_PATH(PRODUCER_INCLUDE_DIR Producer/CameraGroup + PATHS + $ENV{PRODUCER_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(PRODUCER_INCLUDE_DIR Producer/CameraGroup + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include + /usr/include + /sw/include # Fink + /opt/local/include # DarwinPorts + /opt/csw/include # Blastwave + /opt/include + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT]/include + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/include +) + +FIND_LIBRARY(PRODUCER_LIBRARY + NAMES Producer + PATHS + $ENV{PRODUCER_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(PRODUCER_LIBRARY + NAMES Producer + PATHS + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(PRODUCER_FOUND "NO") +IF(PRODUCER_LIBRARY AND PRODUCER_INCLUDE_DIR) + SET(PRODUCER_FOUND "YES") +ENDIF(PRODUCER_LIBRARY AND PRODUCER_INCLUDE_DIR) + + diff --git a/CMakeLua/Modules/FindPythonInterp.cmake b/CMakeLua/Modules/FindPythonInterp.cmake new file mode 100644 index 0000000..5074c69 --- /dev/null +++ b/CMakeLua/Modules/FindPythonInterp.cmake @@ -0,0 +1,28 @@ +# - Find python interpreter +# This module finds if Python interpreter is installed and determines where the +# executables are. This code sets the following variables: +# +# PYTHONINTERP_FOUND - Was the Python executable found +# PYTHON_EXECUTABLE - path to the Python interpreter +# + +FIND_PROGRAM(PYTHON_EXECUTABLE + NAMES python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 python + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.5\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.4\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.3\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.2\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.1\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.0\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\1.6\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\1.5\\InstallPath] + ) + +# handle the QUIETLY and REQUIRED arguments and set PYTHONINTERP_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonInterp DEFAULT_MSG PYTHON_EXECUTABLE) + +MARK_AS_ADVANCED(PYTHON_EXECUTABLE) + diff --git a/CMakeLua/Modules/FindPythonLibs.cmake b/CMakeLua/Modules/FindPythonLibs.cmake new file mode 100644 index 0000000..698b674 --- /dev/null +++ b/CMakeLua/Modules/FindPythonLibs.cmake @@ -0,0 +1,161 @@ +# - Find python libraries +# This module finds if Python is installed and determines where the +# include files and libraries are. It also determines what the name of +# the library is. This code sets the following variables: +# +# PYTHONLIBS_FOUND = have the Python libs been found +# PYTHON_LIBRARIES = path to the python library +# PYTHON_INCLUDE_PATH = path to where Python.h is found +# PYTHON_DEBUG_LIBRARIES = path to the debug library +# + +INCLUDE(CMakeFindFrameworks) +# Search for the python framework on Apple. +CMAKE_FIND_FRAMEWORKS(Python) + +FOREACH(_CURRENT_VERSION 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.6 1.5) + STRING(REPLACE "." "" _CURRENT_VERSION_NO_DOTS ${_CURRENT_VERSION}) + IF(WIN32) + FIND_LIBRARY(PYTHON_DEBUG_LIBRARY + NAMES python${_CURRENT_VERSION_NO_DOTS}_d python + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs/Debug + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs ) + ENDIF(WIN32) + + FIND_LIBRARY(PYTHON_LIBRARY + NAMES python${_CURRENT_VERSION_NO_DOTS} python${_CURRENT_VERSION} + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs + PATH_SUFFIXES + python${_CURRENT_VERSION}/config + # Avoid finding the .dll in the PATH. We want the .lib. + NO_SYSTEM_ENVIRONMENT_PATH + ) + + SET(PYTHON_FRAMEWORK_INCLUDES) + IF(Python_FRAMEWORKS AND NOT PYTHON_INCLUDE_PATH) + FOREACH(dir ${Python_FRAMEWORKS}) + SET(PYTHON_FRAMEWORK_INCLUDES ${PYTHON_FRAMEWORK_INCLUDES} + ${dir}/Versions/${_CURRENT_VERSION}/include/python${_CURRENT_VERSION}) + ENDFOREACH(dir) + ENDIF(Python_FRAMEWORKS AND NOT PYTHON_INCLUDE_PATH) + + FIND_PATH(PYTHON_INCLUDE_PATH + NAMES Python.h + PATHS + ${PYTHON_FRAMEWORK_INCLUDES} + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/include + PATH_SUFFIXES + python${_CURRENT_VERSION} + ) + +ENDFOREACH(_CURRENT_VERSION) + +MARK_AS_ADVANCED( + PYTHON_DEBUG_LIBRARY + PYTHON_LIBRARY + PYTHON_INCLUDE_PATH +) + +# Python Should be built and installed as a Framework on OSX +IF(Python_FRAMEWORKS) + # If a framework has been selected for the include path, + # make sure "-framework" is used to link it. + IF("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") + SET(PYTHON_LIBRARY "") + SET(PYTHON_DEBUG_LIBRARY "") + ENDIF("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework") + IF(NOT PYTHON_LIBRARY) + SET (PYTHON_LIBRARY "-framework Python" CACHE FILEPATH "Python Framework" FORCE) + ENDIF(NOT PYTHON_LIBRARY) + IF(NOT PYTHON_DEBUG_LIBRARY) + SET (PYTHON_DEBUG_LIBRARY "-framework Python" CACHE FILEPATH "Python Framework" FORCE) + ENDIF(NOT PYTHON_DEBUG_LIBRARY) +ENDIF(Python_FRAMEWORKS) + +# We use PYTHON_LIBRARY and PYTHON_DEBUG_LIBRARY for the cache entries +# because they are meant to specify the location of a single library. +# We now set the variables listed by the documentation for this +# module. +SET(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") +SET(PYTHON_DEBUG_LIBRARIES "${PYTHON_DEBUG_LIBRARY}") + + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonLibs DEFAULT_MSG PYTHON_LIBRARIES PYTHON_INCLUDE_PATH) + + +GET_TARGET_PROPERTY(_FIND_PYTHONLIBS_ALREADY_INCLUDED __FindPythonLibsHelper TYPE) +IF(NOT _FIND_PYTHONLIBS_ALREADY_INCLUDED) + ADD_CUSTOM_TARGET(__FindPythonLibsHelper) # so if this file is included several times the next time GET_TARGET_PROPERTIES() will work + SET(PY_STATIC_MODULES_LIST "" CACHE STRING "Collect a list of all added static python modules" FORCE) + SET(PY_MODULES_LIST "" CACHE STRING "Collect a list of all added python modules" FORCE) +ENDIF(NOT _FIND_PYTHONLIBS_ALREADY_INCLUDED) + +GET_PROPERTY(_TARGET_SUPPORTS_SHARED_LIBS + GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS) + +MACRO(PYTHON_ADD_MODULE _NAME ) + OPTION(PYTHON_ENABLE_MODULE_${_NAME} "Add module ${_NAME}" TRUE) + OPTION(PYTHON_MODULE_${_NAME}_BUILD_SHARED "Add module ${_NAME} shared" ${_TARGET_SUPPORTS_SHARED_LIBS}) + + IF(PYTHON_ENABLE_MODULE_${_NAME}) + IF(PYTHON_MODULE_${_NAME}_BUILD_SHARED) + SET(PY_MODULE_TYPE MODULE) + ELSE(PYTHON_MODULE_${_NAME}_BUILD_SHARED) + SET(PY_MODULE_TYPE STATIC) + SET(PY_STATIC_MODULES_LIST ${PY_STATIC_MODULES_LIST} ${_NAME} CACHE STRING "Collect a list of all added static python modules" FORCE) + ENDIF(PYTHON_MODULE_${_NAME}_BUILD_SHARED) + + SET(PY_MODULES_LIST ${PY_MODULES_LIST} ${_NAME} CACHE STRING "Collect a list of all added python modules" FORCE) + ADD_LIBRARY(${_NAME} ${PY_MODULE_TYPE} ${ARGN}) +# TARGET_LINK_LIBRARIES(${_NAME} ${PYTHON_LIBRARIES}) + ENDIF(PYTHON_ENABLE_MODULE_${_NAME}) +ENDMACRO(PYTHON_ADD_MODULE) + +MACRO(PYTHON_WRITE_MODULES_HEADER _filename) + GET_FILENAME_COMPONENT(_name "${_filename}" NAME) + STRING(REPLACE "." "_" _name "${_name}") + STRING(TOUPPER ${_name} _name) + + SET(_filenameTmp "${_filename}.in") + FILE(WRITE ${_filenameTmp} "/*Created by cmake, do not edit, changes will be lost*/\n") + FILE(APPEND ${_filenameTmp} +"#ifndef ${_name} +#define ${_name} + +#include + +#ifdef __cplusplus +extern \"C\" { +#endif /* __cplusplus */ + +") + + FOREACH(_currentModule ${PY_STATIC_MODULES_LIST}) + FILE(APPEND ${_filenameTmp} "extern void init${PYTHON_MODULE_PREFIX}${_currentModule}(void);\n\n") + ENDFOREACH(_currentModule ${PY_STATIC_MODULES_LIST}) + + FILE(APPEND ${_filenameTmp} +"#ifdef __cplusplus +} +#endif /* __cplusplus */ + +") + + + FOREACH(_currentModule ${PY_STATIC_MODULES_LIST}) + FILE(APPEND ${_filenameTmp} "int CMakeLoadPythonModule_${_currentModule}(void) \n{\n static char name[]=\"${PYTHON_MODULE_PREFIX}${_currentModule}\"; return PyImport_AppendInittab(name, init${PYTHON_MODULE_PREFIX}${_currentModule});\n}\n\n") + ENDFOREACH(_currentModule ${PY_STATIC_MODULES_LIST}) + + FILE(APPEND ${_filenameTmp} "#ifndef EXCLUDE_LOAD_ALL_FUNCTION\nvoid CMakeLoadAllPythonModules(void)\n{\n") + FOREACH(_currentModule ${PY_STATIC_MODULES_LIST}) + FILE(APPEND ${_filenameTmp} " CMakeLoadPythonModule_${_currentModule}();\n") + ENDFOREACH(_currentModule ${PY_STATIC_MODULES_LIST}) + FILE(APPEND ${_filenameTmp} "}\n#endif\n\n#endif\n") + +# with CONFIGURE_FILE() cmake complains that you may not use a file created using FILE(WRITE) as input file for CONFIGURE_FILE() + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_filenameTmp}" "${_filename}" OUTPUT_QUIET ERROR_QUIET) + +ENDMACRO(PYTHON_WRITE_MODULES_HEADER) diff --git a/CMakeLua/Modules/FindQt.cmake b/CMakeLua/Modules/FindQt.cmake new file mode 100644 index 0000000..63b6de9 --- /dev/null +++ b/CMakeLua/Modules/FindQt.cmake @@ -0,0 +1,148 @@ +# - Searches for all installed versions of QT. +# This should only be used if your project can work with multiple +# versions of QT. If not, you should just directly use FindQt4 or FindQt3. +# If multiple versions of QT are found on the machine, then +# The user must set the option DESIRED_QT_VERSION to the version +# they want to use. If only one version of qt is found on the machine, +# then the DESIRED_QT_VERSION is set to that version and the +# matching FindQt3 or FindQt4 module is included. +# Once the user sets DESIRED_QT_VERSION, then the FindQt3 or FindQt4 module +# is included. +# +# QT_REQUIRED if this is set to TRUE then if CMake can +# not find QT4 or QT3 an error is raised +# and a message is sent to the user. +# +# DESIRED_QT_VERSION OPTION is created +# QT4_INSTALLED is set to TRUE if qt4 is found. +# QT3_INSTALLED is set to TRUE if qt3 is found. + + +# look for signs of qt3 installations +FILE(GLOB GLOB_TEMP_VAR /usr/lib/qt-3*/bin/qmake) +IF(GLOB_TEMP_VAR) + SET(QT3_INSTALLED TRUE) +ENDIF(GLOB_TEMP_VAR) +SET(GLOB_TEMP_VAR) + +FILE(GLOB GLOB_TEMP_VAR /usr/local/qt-x11-commercial-3*/bin/qmake) +IF(GLOB_TEMP_VAR) + SET(QT3_INSTALLED TRUE) +ENDIF(GLOB_TEMP_VAR) +SET(GLOB_TEMP_VAR) + +# look for qt4 installations +FILE(GLOB GLOB_TEMP_VAR /usr/local/qt-x11-commercial-4*/bin/qmake) +IF(GLOB_TEMP_VAR) + SET(QT4_INSTALLED TRUE) +ENDIF(GLOB_TEMP_VAR) +SET(GLOB_TEMP_VAR) + +FILE(GLOB GLOB_TEMP_VAR /usr/local/Trolltech/Qt-4*/bin/qmake) +IF(GLOB_TEMP_VAR) + SET(QT4_INSTALLED TRUE) +ENDIF(GLOB_TEMP_VAR) +SET(GLOB_TEMP_VAR) + +# now find qmake +FIND_PROGRAM(QT_QMAKE_EXECUTABLE_FINDQT NAMES qmake PATHS "${QT_SEARCH_PATH}/bin" "$ENV{QTDIR}/bin") +IF(QT_QMAKE_EXECUTABLE_FINDQT) + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE_FINDQT} ARGS "-query QT_VERSION" + OUTPUT_VARIABLE QTVERSION) + IF(QTVERSION MATCHES "4.*") + SET(QT_QMAKE_EXECUTABLE ${QT_QMAKE_EXECUTABLE_FINDQT} CACHE PATH "QT4 qmake program.") + SET(QT4_INSTALLED TRUE) + ENDIF(QTVERSION MATCHES "4.*") + IF(QTVERSION MATCHES "Unknown") + SET(QT3_INSTALLED TRUE) + ENDIF(QTVERSION MATCHES "Unknown") +ENDIF(QT_QMAKE_EXECUTABLE_FINDQT) + +IF(QT_QMAKE_EXECUTABLE_FINDQT) + EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE_FINDQT} + ARGS "-query QT_INSTALL_HEADERS" + OUTPUT_VARIABLE qt_headers ) +ENDIF(QT_QMAKE_EXECUTABLE_FINDQT) + +FIND_FILE( QT4_QGLOBAL_H_FILE qglobal.h + "${QT_SEARCH_PATH}/Qt/include" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/include/Qt" + ${qt_headers}/Qt + $ENV{QTDIR}/include/Qt + /usr/local/qt/include/Qt + /usr/local/include/Qt + /usr/lib/qt/include/Qt + /usr/include/Qt + /usr/share/qt4/include/Qt + C:/Progra~1/qt/include/Qt ) + +IF(QT4_QGLOBAL_H_FILE) + SET(QT4_INSTALLED TRUE) +ENDIF(QT4_QGLOBAL_H_FILE) + +FIND_FILE( QT3_QGLOBAL_H_FILE qglobal.h + "${QT_SEARCH_PATH}/Qt/include" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/include/Qt" + C:/Qt/3.3.3Educational/include + $ENV{QTDIR}/include + /usr/include/qt3/Qt + /usr/local/qt/include + /usr/local/include + /usr/lib/qt/include + /usr/include + /usr/share/qt3/include + C:/Progra~1/qt/include + /usr/include/qt3 ) + +IF(QT3_QGLOBAL_H_FILE) + SET(QT3_INSTALLED TRUE) +ENDIF(QT3_QGLOBAL_H_FILE) + +IF(QT3_INSTALLED AND QT4_INSTALLED ) + # force user to pick if we have both + SET(DESIRED_QT_VERSION 0 CACHE STRING "Pick a version of QT to use: 3 or 4") +ELSE(QT3_INSTALLED AND QT4_INSTALLED ) + # if only one found then pick that one + IF(QT3_INSTALLED) + SET(DESIRED_QT_VERSION 3 CACHE STRING "Pick a version of QT to use: 3 or 4") + ENDIF(QT3_INSTALLED) + IF(QT4_INSTALLED) + SET(DESIRED_QT_VERSION 4 CACHE STRING "Pick a version of QT to use: 3 or 4") + ENDIF(QT4_INSTALLED) +ENDIF(QT3_INSTALLED AND QT4_INSTALLED ) + +IF(DESIRED_QT_VERSION MATCHES 3) + SET(Qt3_FIND_REQUIRED ${Qt_FIND_REQUIRED}) + SET(Qt3_FIND_QUIETLY ${Qt_FIND_QUIETLY}) + INCLUDE(FindQt3) +ENDIF(DESIRED_QT_VERSION MATCHES 3) +IF(DESIRED_QT_VERSION MATCHES 4) + SET(Qt4_FIND_REQUIRED ${Qt_FIND_REQUIRED}) + SET(Qt4_FIND_QUIETLY ${Qt_FIND_QUIETLY}) + INCLUDE(FindQt4) +ENDIF(DESIRED_QT_VERSION MATCHES 4) + +IF(NOT QT3_INSTALLED AND NOT QT4_INSTALLED) + IF(QT_REQUIRED) + MESSAGE(SEND_ERROR "CMake was unable to find any QT versions, put qmake in your path, or set QT_QMAKE_EXECUTABLE.") + ENDIF(QT_REQUIRED) +ELSE(NOT QT3_INSTALLED AND NOT QT4_INSTALLED) + IF(NOT QT_FOUND AND NOT DESIRED_QT_VERSION) + IF(QT_REQUIRED) + MESSAGE(SEND_ERROR "Multiple versions of QT found please set DESIRED_QT_VERSION") + ELSE(QT_REQUIRED) + MESSAGE("Multiple versions of QT found please set DESIRED_QT_VERSION") + ENDIF(QT_REQUIRED) + ENDIF(NOT QT_FOUND AND NOT DESIRED_QT_VERSION) + IF(NOT QT_FOUND AND DESIRED_QT_VERSION) + IF(QT_REQUIRED) + MESSAGE(FATAL_ERROR "CMake was unable to find QT version: ${DESIRED_QT_VERSION}. Set advanced values QT_QMAKE_EXECUTABLE and QT${DESIRED_QT_VERSION}_QGLOBAL_FILE, if those are set then QT_QT_LIBRARY or QT_LIBRARY_DIR.") + ELSE(QT_REQUIRED) + MESSAGE( "CMake was unable to find desired QT version: ${DESIRED_QT_VERSION}. Set advanced values QT_QMAKE_EXECUTABLE and QT${DESIRED_QT_VERSION}_QGLOBAL_FILE.") + ENDIF(QT_REQUIRED) + ENDIF(NOT QT_FOUND AND DESIRED_QT_VERSION) +ENDIF(NOT QT3_INSTALLED AND NOT QT4_INSTALLED) +MARK_AS_ADVANCED(QT3_QGLOBAL_H_FILE QT4_QGLOBAL_H_FILE QT_QMAKE_EXECUTABLE_FINDQT) diff --git a/CMakeLua/Modules/FindQt3.cmake b/CMakeLua/Modules/FindQt3.cmake new file mode 100755 index 0000000..14c0ac4 --- /dev/null +++ b/CMakeLua/Modules/FindQt3.cmake @@ -0,0 +1,319 @@ +# - Locate Qt include paths and libraries +# This module defines: +# QT_INCLUDE_DIR - where to find qt.h, etc. +# QT_LIBRARIES - the libraries to link against to use Qt. +# QT_DEFINITIONS - definitions to use when +# compiling code that uses Qt. +# QT_FOUND - If false, don't try to use Qt. +# +# If you need the multithreaded version of Qt, set QT_MT_REQUIRED to TRUE +# +# Also defined, but not for general use are: +# QT_MOC_EXECUTABLE, where to find the moc tool. +# QT_UIC_EXECUTABLE, where to find the uic tool. +# QT_QT_LIBRARY, where to find the Qt library. +# QT_QTMAIN_LIBRARY, where to find the qtmain +# library. This is only required by Qt3 on Windows. + +# These are around for backwards compatibility +# they will be set +# QT_WRAP_CPP, set true if QT_MOC_EXECUTABLE is found +# QT_WRAP_UI set true if QT_UIC_EXECUTABLE is found + +FILE(GLOB GLOB_PATHS_BIN /usr/lib/qt-3*/bin/) +FIND_PATH(QT_INCLUDE_DIR qt.h + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/include/Qt" + $ENV{QTDIR}/include + ${GLOB_PATHS_BIN} + /usr/local/qt/include + /usr/lib/qt/include + /usr/lib/qt3/include + /usr/include/qt + /usr/share/qt3/include + C:/Progra~1/qt/include + /usr/include/qt3 + /usr/X11R6/include + ) + +# if qglobal.h is not in the qt_include_dir then set +# QT_INCLUDE_DIR to NOTFOUND +IF(NOT EXISTS ${QT_INCLUDE_DIR}/qglobal.h) + SET(QT_INCLUDE_DIR QT_INCLUDE_DIR-NOTFOUND CACHE PATH "path to qt3 include directory" FORCE) +ENDIF(NOT EXISTS ${QT_INCLUDE_DIR}/qglobal.h) + +IF(QT_INCLUDE_DIR) + #extract the version string from qglobal.h + FILE(READ ${QT_INCLUDE_DIR}/qglobal.h QGLOBAL_H) + STRING(REGEX MATCH "#define[\t ]+QT_VERSION_STR[\t ]+\"([0-9]+.[0-9]+.[0-9]+)\"" QGLOBAL_H "${QGLOBAL_H}") + STRING(REGEX REPLACE ".*\"([0-9]+.[0-9]+.[0-9]+)\".*" "\\1" qt_version_str "${QGLOBAL_H}") + + # Under windows the qt library (MSVC) has the format qt-mtXYZ where XYZ is the + # version X.Y.Z, so we need to remove the dots from version + STRING(REGEX REPLACE "\\." "" qt_version_str_lib "${qt_version_str}") +ELSE(QT_INCLUDE_DIR) +ENDIF(QT_INCLUDE_DIR) + +FILE(GLOB GLOB_PATHS_LIB /usr/lib/qt-3*/lib/) +IF (QT_MT_REQUIRED) + FIND_LIBRARY(QT_QT_LIBRARY + NAMES + qt-mt qt-mt${qt_version_str_lib} qt-mtnc${qt_version_str_lib} + qt-mtedu${qt_version_str_lib} qt-mt230nc qt-mtnc321 qt-mt3 + PATHS + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/lib" + $ENV{QTDIR}/lib + ${GLOB_PATHS_LIB} + /usr/local/qt/lib + /usr/lib/qt/lib + /usr/lib/qt3/lib + /usr/lib/qt3/lib64 + /usr/share/qt3/lib + C:/Progra~1/qt/lib + /usr/X11R6/lib + ) + +ELSE (QT_MT_REQUIRED) + FIND_LIBRARY(QT_QT_LIBRARY + NAMES + qt qt-${qt_version_str_lib} qt-edu${qt_version_str_lib} + qt-mt qt-mt${qt_version_str_lib} qt-mtnc${qt_version_str_lib} + qt-mtedu${qt_version_str_lib} qt-mt230nc qt-mtnc321 qt-mt3 + PATHS + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/lib" + $ENV{QTDIR}/lib + ${GLOB_PATHS_LIB} + /usr/local/qt/lib + /usr/lib/qt/lib + /usr/lib/qt3/lib + /usr/lib/qt3/lib64 + /usr/share/qt3/lib + C:/Progra~1/qt/lib + /usr/X11R6/lib + ) +ENDIF (QT_MT_REQUIRED) + +IF(QT_QT_LIBRARY) +ELSE(QT_QT_LIBRARY) +ENDIF(QT_QT_LIBRARY) + + +FIND_LIBRARY(QT_QASSISTANTCLIENT_LIBRARY + NAMES qassistantclient + PATHS + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/lib" + $ENV{QTDIR}/lib + ${GLOB_PATHS_LIB} + /usr/local/qt/lib + /usr/lib/qt3/lib + /usr/lib/qt3/lib64 + /usr/share/qt3/lib + C:/Progra~1/qt/lib + /usr/X11R6/lib + ) + +# qt 3 should prefer QTDIR over the PATH +FIND_PROGRAM(QT_MOC_EXECUTABLE + NAMES moc moc-qt3 + PATHS + $ENV{QTDIR}/bin + NO_DEFAULT_PATH +) + +FIND_PROGRAM(QT_MOC_EXECUTABLE + NAMES moc moc-qt3 + PATHS + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/include/Qt" + $ENV{QTDIR}/bin + ${GLOB_PATHS_BIN} + /usr/local/qt/bin + /usr/lib/qt/bin + /usr/lib/qt3/bin + /usr/share/qt3/bin + C:/Progra~1/qt/bin + /usr/X11R6/bin + ) + +IF(QT_MOC_EXECUTABLE) + SET ( QT_WRAP_CPP "YES") +ELSE(QT_MOC_EXECUTABLE) +ENDIF(QT_MOC_EXECUTABLE) + +# qt 3 should prefer QTDIR over the PATH +FIND_PROGRAM(QT_UIC_EXECUTABLE uic + PATHS + $ENV{QTDIR}/bin + NO_DEFAULT_PATH +) +FIND_PROGRAM(QT_UIC_EXECUTABLE uic + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/include/Qt" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/include/Qt" + $ENV{QTDIR}/bin + ${GLOB_PATHS_BIN} + /usr/local/qt/bin + /usr/lib/qt/bin + /usr/lib/qt3/bin + /usr/share/qt3/bin + C:/Progra~1/qt/bin + /usr/X11R6/bin + ) + +IF(QT_UIC_EXECUTABLE) + SET ( QT_WRAP_UI "YES") +ELSE(QT_UIC_EXECUTABLE) +ENDIF(QT_UIC_EXECUTABLE) + +IF (WIN32) + FIND_LIBRARY(QT_QTMAIN_LIBRARY qtmain + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.1;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/lib" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/lib" + "$ENV{ProgramFiles}/qt/lib" + $ENV{QTDIR}/lib "C:/Program Files/qt/lib" + DOC "This Library is only needed by and included with Qt3 on MSWindows. It should be NOTFOUND, undefined or IGNORE otherwise." + ) +ENDIF (WIN32) + + +IF (QT_MIN_VERSION) + + STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" qt_major_vers "${qt_version_str}") + STRING(REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" qt_minor_vers "${qt_version_str}") + STRING(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" qt_patch_vers "${qt_version_str}") + + #now parse the parts of the user given version string into variables + STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+$" req_qt_major_vers "${QT_MIN_VERSION}") + IF (NOT req_qt_major_vers) + MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", expected e.g. \"3.1.5\"") + ENDIF (NOT req_qt_major_vers) + + STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" req_qt_major_vers "${QT_MIN_VERSION}") + STRING(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" req_qt_minor_vers "${QT_MIN_VERSION}") + STRING(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" req_qt_patch_vers "${QT_MIN_VERSION}") + + # req = "6.5.4", qt = "3.2.1" + + IF (req_qt_major_vers GREATER qt_major_vers) # (6 > 3) ? + MESSAGE( FATAL_ERROR "Qt major version not matched (required: ${QT_MIN_VERSION}, found: ${qt_version_str})") # yes + ELSE (req_qt_major_vers GREATER qt_major_vers) # no + IF (req_qt_major_vers LESS qt_major_vers) # (6 < 3) ? + SET( QT_VERSION_BIG_ENOUGH "YES" ) # yes + ELSE (req_qt_major_vers LESS qt_major_vers) # ( 6==3) ? + IF (req_qt_minor_vers GREATER qt_minor_vers) # (5>2) ? + MESSAGE( FATAL_ERROR "Qt minor version not matched (required: ${QT_MIN_VERSION}, found: ${qt_version_str})") # yes + ELSE (req_qt_minor_vers GREATER qt_minor_vers) # no + IF (req_qt_minor_vers LESS qt_minor_vers) # (5<2) ? + SET( QT_VERSION_BIG_ENOUGH "YES" ) # yes + ELSE (req_qt_minor_vers LESS qt_minor_vers) # (5==2) + IF (req_qt_patch_vers GREATER qt_patch_vers) # (4>1) ? + MESSAGE( FATAL_ERROR "Qt patch level not matched (required: ${QT_MIN_VERSION}, found: ${qt_version_str})") # yes + ELSE (req_qt_patch_vers GREATER qt_patch_vers) # (4>1) ? + SET( QT_VERSION_BIG_ENOUGH "YES" ) # yes + ENDIF (req_qt_patch_vers GREATER qt_patch_vers) # (4>1) ? + ENDIF (req_qt_minor_vers LESS qt_minor_vers) + ENDIF (req_qt_minor_vers GREATER qt_minor_vers) + ENDIF (req_qt_major_vers LESS qt_major_vers) + ENDIF (req_qt_major_vers GREATER qt_major_vers) +ENDIF (QT_MIN_VERSION) + +# if the include a library are found then we have it +IF(QT_INCLUDE_DIR) + IF(QT_QT_LIBRARY) + SET( QT_FOUND "YES" ) + ENDIF(QT_QT_LIBRARY) +ENDIF(QT_INCLUDE_DIR) + +IF(QT_FOUND) + SET( QT_LIBRARIES ${QT_LIBRARIES} ${QT_QT_LIBRARY} ) + SET( QT_DEFINITIONS "") + + IF (WIN32 AND NOT CYGWIN) + IF (QT_QTMAIN_LIBRARY) + # for version 3 + SET (QT_DEFINITIONS -DQT_DLL -DQT_THREAD_SUPPORT -DNO_DEBUG) + SET (QT_LIBRARIES imm32.lib ${QT_QT_LIBRARY} ${QT_QTMAIN_LIBRARY} ) + SET (QT_LIBRARIES ${QT_LIBRARIES} winmm wsock32) + ELSE (QT_QTMAIN_LIBRARY) + # for version 2 + SET (QT_LIBRARIES imm32.lib ws2_32.lib ${QT_QT_LIBRARY} ) + ENDIF (QT_QTMAIN_LIBRARY) + ELSE (WIN32 AND NOT CYGWIN) + SET (QT_LIBRARIES ${QT_QT_LIBRARY} ) + + SET (QT_DEFINITIONS -DQT_SHARED -DQT_NO_DEBUG) + IF(QT_QT_LIBRARY MATCHES "qt-mt") + SET (QT_DEFINITIONS ${QT_DEFINITIONS} -DQT_THREAD_SUPPORT -D_REENTRANT) + ENDIF(QT_QT_LIBRARY MATCHES "qt-mt") + + ENDIF (WIN32 AND NOT CYGWIN) + + IF (QT_QASSISTANTCLIENT_LIBRARY) + SET (QT_LIBRARIES ${QT_QASSISTANTCLIENT_LIBRARY} ${QT_LIBRARIES}) + ENDIF (QT_QASSISTANTCLIENT_LIBRARY) + + # Backwards compatibility for CMake1.4 and 1.2 + SET (QT_MOC_EXE ${QT_MOC_EXECUTABLE} ) + SET (QT_UIC_EXE ${QT_UIC_EXECUTABLE} ) + # for unix add X11 stuff + IF(UNIX) + FIND_PACKAGE(X11) + IF (X11_FOUND) + SET (QT_LIBRARIES ${QT_LIBRARIES} ${X11_LIBRARIES}) + ENDIF (X11_FOUND) + IF (CMAKE_DL_LIBS) + SET (QT_LIBRARIES ${QT_LIBRARIES} ${CMAKE_DL_LIBS}) + ENDIF (CMAKE_DL_LIBS) + ENDIF(UNIX) + IF(QT_QT_LIBRARY MATCHES "qt-mt") + FIND_PACKAGE(Threads) + SET(QT_LIBRARIES ${QT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) + ENDIF(QT_QT_LIBRARY MATCHES "qt-mt") +ENDIF(QT_FOUND) + +EXEC_PROGRAM(${QT_MOC_EXECUTABLE} ARGS "-v" OUTPUT_VARIABLE QTVERSION_MOC) +EXEC_PROGRAM(${QT_UIC_EXECUTABLE} ARGS "-version" OUTPUT_VARIABLE QTVERSION_UIC) + +SET(_QT_UIC_VERSION_3 FALSE) +IF("${QTVERSION_UIC}" MATCHES ".* 3..*") + SET(_QT_UIC_VERSION_3 TRUE) +ENDIF("${QTVERSION_UIC}" MATCHES ".* 3..*") + +SET(_QT_MOC_VERSION_3 FALSE) +IF("${QTVERSION_MOC}" MATCHES ".* 3..*") + SET(_QT_MOC_VERSION_3 TRUE) +ENDIF("${QTVERSION_MOC}" MATCHES ".* 3..*") + +SET(QT_WRAP_CPP FALSE) +IF (QT_MOC_EXECUTABLE) + IF(_QT_MOC_VERSION_3) + SET ( QT_WRAP_CPP TRUE) + ENDIF(_QT_MOC_VERSION_3) +ENDIF (QT_MOC_EXECUTABLE) + +SET(QT_WRAP_UI FALSE) +IF (QT_UIC_EXECUTABLE) + IF(_QT_UIC_VERSION_3) + SET ( QT_WRAP_UI TRUE) + ENDIF(_QT_UIC_VERSION_3) +ENDIF (QT_UIC_EXECUTABLE) + +MARK_AS_ADVANCED( + QT_INCLUDE_DIR + QT_QT_LIBRARY + QT_QTMAIN_LIBRARY + QT_QASSISTANTCLIENT_LIBRARY + QT_UIC_EXECUTABLE + QT_MOC_EXECUTABLE + QT_WRAP_CPP + QT_WRAP_UI + ) diff --git a/CMakeLua/Modules/FindQt4.cmake b/CMakeLua/Modules/FindQt4.cmake new file mode 100644 index 0000000..a9d0815 --- /dev/null +++ b/CMakeLua/Modules/FindQt4.cmake @@ -0,0 +1,1429 @@ +# - Find QT 4 +# This module can be used to find Qt4. +# The most important issue is that the Qt4 qmake is available via the system path. +# This qmake is then used to detect basically everything else. +# This module defines a number of key variables and macros. First is +# QT_USE_FILE which is the path to a CMake file that can be included to compile +# Qt 4 applications and libraries. By default, the QtCore and QtGui +# libraries are loaded. This behavior can be changed by setting one or more +# of the following variables to true: +# QT_DONT_USE_QTCORE +# QT_DONT_USE_QTGUI +# QT_USE_QT3SUPPORT +# QT_USE_QTASSISTANT +# QT_USE_QTDESIGNER +# QT_USE_QTMOTIF +# QT_USE_QTMAIN +# QT_USE_QTNETWORK +# QT_USE_QTNSPLUGIN +# QT_USE_QTOPENGL +# QT_USE_QTSQL +# QT_USE_QTXML +# QT_USE_QTSVG +# QT_USE_QTTEST +# QT_USE_QTUITOOLS +# QT_USE_QTDBUS +# QT_USE_QTSCRIPT +# +# All the libraries required are stored in a variable called QT_LIBRARIES. +# Add this variable to your TARGET_LINK_LIBRARIES. +# +# macro QT4_WRAP_CPP(outfiles inputfile ... OPTIONS ...) +# create moc code from a list of files containing Qt class with +# the Q_OBJECT declaration. Options may be given to moc, such as those found +# when executing "moc -help" +# +# macro QT4_WRAP_UI(outfiles inputfile ... OPTIONS ...) +# create code from a list of Qt designer ui files. +# Options may be given to uic, such as those found +# when executing "uic -help" +# +# macro QT4_ADD_RESOURCES(outfiles inputfile ... OPTIONS ...) +# create code from a list of Qt resource files. +# Options may be given to rcc, such as those found +# when executing "rcc -help" +# +# macro QT4_AUTOMOC(inputfile ... ) +# macro QT4_GENERATE_MOC(inputfile outputfile ) +# +# macro QT4_ADD_DBUS_INTERFACE(outfiles interface basename) +# create a the interface header and implementation files with the +# given basename from the given interface xml file and add it to +# the list of sources +# +# macro QT4_ADD_DBUS_INTERFACES(outfiles inputfile ... ) +# create the interface header and implementation files +# for all listed interface xml files +# the name will be automatically determined from the name of the xml file +# +# macro QT4_ADD_DBUS_ADAPTOR(outfiles xmlfile parentheader parentclassname [basename] ) +# create a dbus adaptor (header and implementation file) from the xml file +# describing the interface, and add it to the list of sources. The adaptor +# forwards the calls to a parent class, defined in parentheader and named +# parentclassname. The name of the generated files will be +# adaptor.{cpp,h} where basename is the basename of the xml file. +# +# macro QT4_GENERATE_DBUS_INTERFACE( header [interfacename] ) +# generate the xml interface file from the given header. +# If the optional argument interfacename is omitted, the name of the +# interface file is constructed from the basename of the header with +# the suffix .xml appended. +# +# macro QT4_CREATE_TRANSLATION( qm_files sources ... ts_files ... ) +# out: qm_files +# in: sources ts_files +# generates commands to create .ts (vie lupdate) and .qm +# (via lrelease) - files from sources. The ts files are +# created and/or updated in the source tree (unless given with full paths). +# The qm files are generated in the build tree. +# Updating the translations can be done by adding the qm_files +# to the source list of your library/executable, so they are +# always updated, or by adding a custom target to control when +# they get updated/generated. +# +# macro QT4_ADD_TRANSLATION( qm_files ts_files ... ) +# out: qm_files +# in: ts_files +# generates commands to create .qm from .ts - files. The generated +# filenames can be found in qm_files. The ts_files +# must exists and are not updated in any way. +# +# +# QT_FOUND If false, don't try to use Qt. +# QT4_FOUND If false, don't try to use Qt 4. +# +# QT_EDITION Set to the edition of Qt (i.e. DesktopLight) +# QT_EDITION_DESKTOPLIGHT True if QT_EDITION == DesktopLight +# QT_QTCORE_FOUND True if QtCore was found. +# QT_QTGUI_FOUND True if QtGui was found. +# QT_QT3SUPPORT_FOUND True if Qt3Support was found. +# QT_QTASSISTANT_FOUND True if QtAssistant was found. +# QT_QTDBUS_FOUND True if QtDBus was found. +# QT_QTDESIGNER_FOUND True if QtDesigner was found. +# QT_QTDESIGNERCOMPONENTS True if QtDesignerComponents was found. +# QT_QTMOTIF_FOUND True if QtMotif was found. +# QT_QTNETWORK_FOUND True if QtNetwork was found. +# QT_QTNSPLUGIN_FOUND True if QtNsPlugin was found. +# QT_QTOPENGL_FOUND True if QtOpenGL was found. +# QT_QTSQL_FOUND True if QtSql was found. +# QT_QTXML_FOUND True if QtXml was found. +# QT_QTSVG_FOUND True if QtSvg was found. +# QT_QTSCRIPT_FOUND True if QtScript was found. +# QT_QTTEST_FOUND True if QtTest was found. +# QT_QTUITOOLS_FOUND True if QtUiTools was found. +# +# QT_DEFINITIONS Definitions to use when compiling code that uses Qt. +# +# QT_INCLUDES List of paths to all include directories of +# Qt4 QT_INCLUDE_DIR and QT_QTCORE_INCLUDE_DIR are +# always in this variable even if NOTFOUND, +# all other INCLUDE_DIRS are +# only added if they are found. +# +# QT_INCLUDE_DIR Path to "include" of Qt4 +# QT_QT_INCLUDE_DIR Path to "include/Qt" +# QT_QT3SUPPORT_INCLUDE_DIR Path to "include/Qt3Support" +# QT_QTASSISTANT_INCLUDE_DIR Path to "include/QtAssistant" +# QT_QTCORE_INCLUDE_DIR Path to "include/QtCore" +# QT_QTDESIGNER_INCLUDE_DIR Path to "include/QtDesigner" +# QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR Path to "include/QtDesigner" +# QT_QTDBUS_INCLUDE_DIR Path to "include/QtDBus" +# QT_QTGUI_INCLUDE_DIR Path to "include/QtGui" +# QT_QTMOTIF_INCLUDE_DIR Path to "include/QtMotif" +# QT_QTNETWORK_INCLUDE_DIR Path to "include/QtNetwork" +# QT_QTNSPLUGIN_INCLUDE_DIR Path to "include/QtNsPlugin" +# QT_QTOPENGL_INCLUDE_DIR Path to "include/QtOpenGL" +# QT_QTSQL_INCLUDE_DIR Path to "include/QtSql" +# QT_QTXML_INCLUDE_DIR Path to "include/QtXml" +# QT_QTSVG_INCLUDE_DIR Path to "include/QtSvg" +# QT_QTSCRIPT_INCLUDE_DIR Path to "include/QtScript" +# QT_QTTEST_INCLUDE_DIR Path to "include/QtTest" +# +# QT_LIBRARY_DIR Path to "lib" of Qt4 +# +# QT_PLUGINS_DIR Path to "plugins" for Qt4 +# +# For every library of Qt there are three variables: +# QT_QTFOO_LIBRARY_RELEASE, which contains the full path to the release version, if it exists +# QT_QTFOO_LIBRARY_DEBUG, which contains the full path to the debug version, if it exists +# QT_QTFOO_LIBRARY, the full path to the release and/or debug version +# +# So there are the following variables: +# The Qt3Support library: QT_QT3SUPPORT_LIBRARY +# QT_QT3SUPPORT_LIBRARY_RELEASE +# QT_QT3SUPPORT_DEBUG +# +# The QtAssistant library: QT_QTASSISTANT_LIBRARY +# QT_QTASSISTANT_LIBRARY_RELEASE +# QT_QTASSISTANT_LIBRARY_DEBUG +# +# The QtCore library: QT_QTCORE_LIBRARY +# QT_QTCORE_LIBRARY_RELEASE +# QT_QTCORE_LIBRARY_DEBUG +# +# The QtDBus library: QT_QTDBUS_LIBRARY +# QT_QTDBUS_LIBRARY_RELEASE +# QT_QTDBUS_LIBRARY_DEBUG +# +# The QtDesigner library: QT_QTDESIGNER_LIBRARY +# QT_QTDESIGNER_LIBRARY_RELEASE +# QT_QTDESIGNER_LIBRARY_DEBUG +# +# The QtDesignerComponents library: QT_QTDESIGNERCOMPONENTS_LIBRARY +# QT_QTDESIGNERCOMPONENTS_LIBRARY_RELEASE +# QT_QTDESIGNERCOMPONENTS_LIBRARY_DEBUG +# +# The QtGui library: QT_QTGUI_LIBRARY +# QT_QTGUI_LIBRARY_RELEASE +# QT_QTGUI_LIBRARY_DEBUG +# +# The QtMotif library: QT_QTMOTIF_LIBRARY +# QT_QTMOTIF_LIBRARY_RELEASE +# QT_QTMOTIF_LIBRARY_DEBUG +# +# The QtNetwork library: QT_QTNETWORK_LIBRARY +# QT_QTNETWORK_LIBRARY_RELEASE +# QT_QTNETWORK_LIBRARY_DEBUG +# +# The QtNsPLugin library: QT_QTNSPLUGIN_LIBRARY +# QT_QTNSPLUGIN_LIBRARY_RELEASE +# QT_QTNSPLUGIN_LIBRARY_DEBUG +# +# The QtOpenGL library: QT_QTOPENGL_LIBRARY +# QT_QTOPENGL_LIBRARY_RELEASE +# QT_QTOPENGL_LIBRARY_DEBUG +# +# The QtSql library: QT_QTSQL_LIBRARY +# QT_QTSQL_LIBRARY_RELEASE +# QT_QTSQL_LIBRARY_DEBUG +# +# The QtXml library: QT_QTXML_LIBRARY +# QT_QTXML_LIBRARY_RELEASE +# QT_QTXML_LIBRARY_DEBUG +# +# The QtSvg library: QT_QTSVG_LIBRARY +# QT_QTSVG_LIBRARY_RELEASE +# QT_QTSVG_LIBRARY_DEBUG +# +# The QtScript library: QT_QTSCRIPT_LIBRARY +# QT_QTSCRIPT_LIBRARY_RELEASE +# QT_QTSCRIPT_LIBRARY_DEBUG +# +# The QtTest library: QT_QTTEST_LIBRARY +# QT_QTTEST_LIBRARY_RELEASE +# QT_QTTEST_LIBRARY_DEBUG +# +# The qtmain library for Windows QT_QTMAIN_LIBRARY +# QT_QTMAIN_LIBRARY_RELEASE +# QT_QTMAIN_LIBRARY_DEBUG +# +# The QtUiTools library: QT_QTUITOOLS_LIBRARY +# QT_QTUITOOLS_LIBRARY_RELEASE +# QT_QTUITOOLS_LIBRARY_DEBUG +# +# also defined, but NOT for general use are +# QT_MOC_EXECUTABLE Where to find the moc tool. +# QT_UIC_EXECUTABLE Where to find the uic tool. +# QT_UIC3_EXECUTABLE Where to find the uic3 tool. +# QT_RCC_EXECUTABLE Where to find the rcc tool +# QT_DBUSCPP2XML_EXECUTABLE Where to find the qdbuscpp2xml tool. +# QT_DBUSXML2CPP_EXECUTABLE Where to find the qdbusxml2cpp tool. +# QT_LUPDATE_EXECUTABLE Where to find the lupdate tool. +# QT_LRELEASE_EXECUTABLE Where to find the lrelease tool. +# +# QT_DOC_DIR Path to "doc" of Qt4 +# QT_MKSPECS_DIR Path to "mkspecs" of Qt4 +# +# +# These are around for backwards compatibility +# they will be set +# QT_WRAP_CPP Set true if QT_MOC_EXECUTABLE is found +# QT_WRAP_UI Set true if QT_UIC_EXECUTABLE is found +# +# These variables do _NOT_ have any effect anymore (compared to FindQt.cmake) +# QT_MT_REQUIRED Qt4 is now always multithreaded +# +# These variables are set to "" Because Qt structure changed +# (They make no sense in Qt4) +# QT_QT_LIBRARY Qt-Library is now split + +INCLUDE(CheckSymbolExists) +INCLUDE(MacroAddFileDependencies) + +SET(QT_USE_FILE ${CMAKE_ROOT}/Modules/UseQt4.cmake) + +SET( QT_DEFINITIONS "") + +SET(QT4_INSTALLED_VERSION_TOO_OLD FALSE) + +# macro for asking qmake to process pro files +MACRO(QT_QUERY_QMAKE outvar invar) + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake/tmp.pro + "message(CMAKE_MESSAGE<$$${invar}>)") + + # Invoke qmake with the tmp.pro program to get the desired + # information. Use the same variable for both stdout and stderr + # to make sure we get the output on all platforms. + EXECUTE_PROCESS(COMMAND ${QT_QMAKE_EXECUTABLE} + WORKING_DIRECTORY + ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake + OUTPUT_VARIABLE _qmake_query_output + RESULT_VARIABLE _qmake_result + ERROR_VARIABLE _qmake_query_output ) + + FILE(REMOVE_RECURSE + "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake") + + IF(_qmake_result) + MESSAGE(WARNING " querying qmake for ${invar}. qmake reported:\n${_qmake_query_output}") + ELSE(_qmake_result) + STRING(REGEX REPLACE ".*CMAKE_MESSAGE<([^>]*).*" "\\1" ${outvar} "${_qmake_query_output}") + ENDIF(_qmake_result) + +ENDMACRO(QT_QUERY_QMAKE) + +GET_FILENAME_COMPONENT(qt_install_version "[HKEY_CURRENT_USER\\Software\\trolltech\\Versions;DefaultQtVersion]" NAME) +# check for qmake +FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake4 qmake-qt4 PATHS + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]/bin" + $ENV{QTDIR}/bin +) + +IF (QT_QMAKE_EXECUTABLE) + + SET(QT4_QMAKE_FOUND FALSE) + + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) + + # check for qt3 qmake and then try and find qmake4 or qmake-qt4 in the path + IF("${QTVERSION}" MATCHES "Unknown") + SET(QT_QMAKE_EXECUTABLE NOTFOUND CACHE FILEPATH "" FORCE) + FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake4 qmake-qt4 PATHS + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin" + "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin" + $ENV{QTDIR}/bin + ) + IF(QT_QMAKE_EXECUTABLE) + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} + ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) + ENDIF(QT_QMAKE_EXECUTABLE) + ENDIF("${QTVERSION}" MATCHES "Unknown") + + # check that we found the Qt4 qmake, Qt3 qmake output won't match here + STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" qt_version_tmp "${QTVERSION}") + IF (qt_version_tmp) + + # we need at least version 4.0.0 + IF (NOT QT_MIN_VERSION) + SET(QT_MIN_VERSION "4.0.0") + ENDIF (NOT QT_MIN_VERSION) + + #now parse the parts of the user given version string into variables + STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" req_qt_major_vers "${QT_MIN_VERSION}") + IF (NOT req_qt_major_vers) + MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", expected e.g. \"4.0.1\"") + ENDIF (NOT req_qt_major_vers) + + # now parse the parts of the user given version string into variables + STRING(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" req_qt_major_vers "${QT_MIN_VERSION}") + STRING(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" req_qt_minor_vers "${QT_MIN_VERSION}") + STRING(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" req_qt_patch_vers "${QT_MIN_VERSION}") + + IF (NOT req_qt_major_vers EQUAL 4) + MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", major version 4 is required, e.g. \"4.0.1\"") + ENDIF (NOT req_qt_major_vers EQUAL 4) + + # and now the version string given by qmake + STRING(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" found_qt_major_vers "${QTVERSION}") + STRING(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+.*" "\\1" found_qt_minor_vers "${QTVERSION}") + STRING(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" found_qt_patch_vers "${QTVERSION}") + + # compute an overall version number which can be compared at once + MATH(EXPR req_vers "${req_qt_major_vers}*10000 + ${req_qt_minor_vers}*100 + ${req_qt_patch_vers}") + MATH(EXPR found_vers "${found_qt_major_vers}*10000 + ${found_qt_minor_vers}*100 + ${found_qt_patch_vers}") + + IF (found_vers LESS req_vers) + SET(QT4_QMAKE_FOUND FALSE) + SET(QT4_INSTALLED_VERSION_TOO_OLD TRUE) + ELSE (found_vers LESS req_vers) + SET(QT4_QMAKE_FOUND TRUE) + ENDIF (found_vers LESS req_vers) + ENDIF (qt_version_tmp) + +ENDIF (QT_QMAKE_EXECUTABLE) + +IF (QT4_QMAKE_FOUND) + + # ask qmake for the library dir + # Set QT_LIBRARY_DIR + IF (NOT QT_LIBRARY_DIR) + EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} + ARGS "-query QT_INSTALL_LIBS" + OUTPUT_VARIABLE QT_LIBRARY_DIR_TMP ) + IF(EXISTS "${QT_LIBRARY_DIR_TMP}") + SET(QT_LIBRARY_DIR ${QT_LIBRARY_DIR_TMP} CACHE PATH "Qt library dir") + ELSE(EXISTS "${QT_LIBRARY_DIR_TMP}") + MESSAGE("Warning: QT_QMAKE_EXECUTABLE reported QT_INSTALL_LIBS as ${QT_LIBRARY_DIR_TMP}") + MESSAGE("Warning: ${QT_LIBRARY_DIR_TMP} does NOT exist, Qt must NOT be installed correctly.") + ENDIF(EXISTS "${QT_LIBRARY_DIR_TMP}") + ENDIF(NOT QT_LIBRARY_DIR) + + IF (APPLE) + IF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) + SET(QT_USE_FRAMEWORKS ON + CACHE BOOL "Set to ON if Qt build uses frameworks.") + ELSE (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) + SET(QT_USE_FRAMEWORKS OFF + CACHE BOOL "Set to ON if Qt build uses frameworks.") + ENDIF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) + + MARK_AS_ADVANCED(QT_USE_FRAMEWORKS) + ENDIF (APPLE) + + # ask qmake for the binary dir + IF (NOT QT_BINARY_DIR) + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} + ARGS "-query QT_INSTALL_BINS" + OUTPUT_VARIABLE qt_bins ) + SET(QT_BINARY_DIR ${qt_bins} CACHE INTERNAL "") + ENDIF (NOT QT_BINARY_DIR) + + # ask qmake for the include dir + IF (NOT QT_HEADERS_DIR) + EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} + ARGS "-query QT_INSTALL_HEADERS" + OUTPUT_VARIABLE qt_headers ) + SET(QT_HEADERS_DIR ${qt_headers} CACHE INTERNAL "") + ENDIF(NOT QT_HEADERS_DIR) + + + # ask qmake for the documentation directory + IF (NOT QT_DOC_DIR) + EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} + ARGS "-query QT_INSTALL_DOCS" + OUTPUT_VARIABLE qt_doc_dir ) + SET(QT_DOC_DIR ${qt_doc_dir} CACHE PATH "The location of the Qt docs") + ENDIF (NOT QT_DOC_DIR) + + # ask qmake for the mkspecs directory + IF (NOT QT_MKSPECS_DIR) + EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} + ARGS "-query QMAKE_MKSPECS" + OUTPUT_VARIABLE qt_mkspecs_dirs ) + STRING(REPLACE ":" ";" qt_mkspecs_dirs "${qt_mkspecs_dirs}") + FIND_PATH(QT_MKSPECS_DIR qconfig.pri PATHS ${qt_mkspecs_dirs} + DOC "The location of the Qt mkspecs containing qconfig.pri" + NO_DEFAULT_PATH ) + ENDIF (NOT QT_MKSPECS_DIR) + + # ask qmake for the plugins directory + IF (NOT QT_PLUGINS_DIR) + EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} + ARGS "-query QT_INSTALL_PLUGINS" + OUTPUT_VARIABLE qt_plugins_dir ) + SET(QT_PLUGINS_DIR ${qt_plugins_dir} CACHE PATH "The location of the Qt plugins") + ENDIF (NOT QT_PLUGINS_DIR) + ######################################## + # + # Setting the INCLUDE-Variables + # + ######################################## + + FIND_PATH(QT_QTCORE_INCLUDE_DIR QtGlobal + ${QT_HEADERS_DIR}/QtCore + ${QT_LIBRARY_DIR}/QtCore.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_INCLUDE_DIR by removine "/QtCore" in the string ${QT_QTCORE_INCLUDE_DIR} + IF( QT_QTCORE_INCLUDE_DIR AND NOT QT_INCLUDE_DIR) + IF (QT_USE_FRAMEWORKS) + SET(QT_INCLUDE_DIR ${QT_HEADERS_DIR}) + ELSE (QT_USE_FRAMEWORKS) + STRING( REGEX REPLACE "/QtCore$" "" qt4_include_dir ${QT_QTCORE_INCLUDE_DIR}) + SET( QT_INCLUDE_DIR ${qt4_include_dir} CACHE PATH "") + ENDIF (QT_USE_FRAMEWORKS) + ENDIF( QT_QTCORE_INCLUDE_DIR AND NOT QT_INCLUDE_DIR) + + IF( NOT QT_INCLUDE_DIR) + IF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "Could NOT find QtGlobal header") + ENDIF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + ENDIF( NOT QT_INCLUDE_DIR) + + ############################################# + # + # Find out what window system we're using + # + ############################################# + # Save required variable + SET(CMAKE_REQUIRED_INCLUDES_SAVE ${CMAKE_REQUIRED_INCLUDES}) + SET(CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS}) + # Add QT_INCLUDE_DIR to CMAKE_REQUIRED_INCLUDES + SET(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${QT_INCLUDE_DIR}") + # On Mac OS X when Qt has framework support, also add the framework path + IF( QT_USE_FRAMEWORKS ) + SET(CMAKE_REQUIRED_FLAGS "-F${QT_LIBRARY_DIR} ") + ENDIF( QT_USE_FRAMEWORKS ) + # Check for Window system symbols (note: only one should end up being set) + CHECK_SYMBOL_EXISTS(Q_WS_X11 "QtCore/qglobal.h" Q_WS_X11) + CHECK_SYMBOL_EXISTS(Q_WS_WIN "QtCore/qglobal.h" Q_WS_WIN) + CHECK_SYMBOL_EXISTS(Q_WS_QWS "QtCore/qglobal.h" Q_WS_QWS) + CHECK_SYMBOL_EXISTS(Q_WS_MAC "QtCore/qglobal.h" Q_WS_MAC) + + IF (QT_QTCOPY_REQUIRED) + CHECK_SYMBOL_EXISTS(QT_IS_QTCOPY "QtCore/qglobal.h" QT_KDE_QT_COPY) + IF (NOT QT_IS_QTCOPY) + MESSAGE(FATAL_ERROR "qt-copy is required, but hasn't been found") + ENDIF (NOT QT_IS_QTCOPY) + ENDIF (QT_QTCOPY_REQUIRED) + + # Restore CMAKE_REQUIRED_INCLUDES and CMAKE_REQUIRED_FLAGS variables + SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_SAVE}) + SET(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE}) + # + ############################################# + + IF (QT_USE_FRAMEWORKS) + SET(QT_DEFINITIONS ${QT_DEFINITIONS} -F${QT_LIBRARY_DIR} -L${QT_LIBRARY_DIR} ) + ENDIF (QT_USE_FRAMEWORKS) + + # Set QT_QT3SUPPORT_INCLUDE_DIR + FIND_PATH(QT_QT3SUPPORT_INCLUDE_DIR Qt3Support + PATHS + ${QT_INCLUDE_DIR}/Qt3Support + ${QT_LIBRARY_DIR}/Qt3Support.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QT_INCLUDE_DIR + FIND_PATH(QT_QT_INCLUDE_DIR qglobal.h + PATHS + ${QT_INCLUDE_DIR}/Qt + ${QT_LIBRARY_DIR}/QtCore.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTGUI_INCLUDE_DIR + FIND_PATH(QT_QTGUI_INCLUDE_DIR QtGui + PATHS + ${QT_INCLUDE_DIR}/QtGui + ${QT_LIBRARY_DIR}/QtGui.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTSVG_INCLUDE_DIR + FIND_PATH(QT_QTSVG_INCLUDE_DIR QtSvg + PATHS + ${QT_INCLUDE_DIR}/QtSvg + ${QT_LIBRARY_DIR}/QtSvg.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTSCRIPT_INCLUDE_DIR + FIND_PATH(QT_QTSCRIPT_INCLUDE_DIR QtScript + PATHS + ${QT_INCLUDE_DIR}/QtScript + ${QT_LIBRARY_DIR}/QtScript.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTTEST_INCLUDE_DIR + FIND_PATH(QT_QTTEST_INCLUDE_DIR QtTest + PATHS + ${QT_INCLUDE_DIR}/QtTest + ${QT_LIBRARY_DIR}/QtTest.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTUITOOLS_INCLUDE_DIR + FIND_PATH(QT_QTUITOOLS_INCLUDE_DIR QtUiTools + PATHS + ${QT_INCLUDE_DIR}/QtUiTools + ${QT_LIBRARY_DIR}/QtUiTools.framework/Headers + NO_DEFAULT_PATH + ) + + + + # Set QT_QTMOTIF_INCLUDE_DIR + IF(Q_WS_X11) + FIND_PATH(QT_QTMOTIF_INCLUDE_DIR QtMotif PATHS ${QT_INCLUDE_DIR}/QtMotif NO_DEFAULT_PATH ) + ENDIF(Q_WS_X11) + + # Set QT_QTNETWORK_INCLUDE_DIR + FIND_PATH(QT_QTNETWORK_INCLUDE_DIR QtNetwork + PATHS + ${QT_INCLUDE_DIR}/QtNetwork + ${QT_LIBRARY_DIR}/QtNetwork.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTNSPLUGIN_INCLUDE_DIR + FIND_PATH(QT_QTNSPLUGIN_INCLUDE_DIR QtNsPlugin + PATHS + ${QT_INCLUDE_DIR}/QtNsPlugin + ${QT_LIBRARY_DIR}/QtNsPlugin.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTOPENGL_INCLUDE_DIR + FIND_PATH(QT_QTOPENGL_INCLUDE_DIR QtOpenGL + PATHS + ${QT_INCLUDE_DIR}/QtOpenGL + ${QT_LIBRARY_DIR}/QtOpenGL.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTSQL_INCLUDE_DIR + FIND_PATH(QT_QTSQL_INCLUDE_DIR QtSql + PATHS + ${QT_INCLUDE_DIR}/QtSql + ${QT_LIBRARY_DIR}/QtSql.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTXML_INCLUDE_DIR + FIND_PATH(QT_QTXML_INCLUDE_DIR QtXml + PATHS + ${QT_INCLUDE_DIR}/QtXml + ${QT_LIBRARY_DIR}/QtXml.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTASSISTANT_INCLUDE_DIR + FIND_PATH(QT_QTASSISTANT_INCLUDE_DIR QtAssistant + PATHS + ${QT_INCLUDE_DIR}/QtAssistant + ${QT_HEADERS_DIR}/QtAssistant + ${QT_LIBRARY_DIR}/QtAssistant.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTDESIGNER_INCLUDE_DIR + FIND_PATH(QT_QTDESIGNER_INCLUDE_DIR QDesignerComponents + PATHS + ${QT_INCLUDE_DIR}/QtDesigner + ${QT_HEADERS_DIR}/QtDesigner + ${QT_LIBRARY_DIR}/QtDesigner.framework/Headers + NO_DEFAULT_PATH + ) + + # Set QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR + FIND_PATH(QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR QDesignerComponents + PATHS + ${QT_INCLUDE_DIR}/QtDesigner + ${QT_HEADERS_DIR}/QtDesigner + NO_DEFAULT_PATH + ) + + + # Set QT_QTDBUS_INCLUDE_DIR + FIND_PATH(QT_QTDBUS_INCLUDE_DIR QtDBus + PATHS + ${QT_INCLUDE_DIR}/QtDBus + ${QT_HEADERS_DIR}/QtDBus + NO_DEFAULT_PATH + ) + + # Make variables changeble to the advanced user + MARK_AS_ADVANCED( QT_LIBRARY_DIR QT_INCLUDE_DIR QT_QT_INCLUDE_DIR QT_DOC_DIR QT_MKSPECS_DIR QT_PLUGINS_DIR) + + # Set QT_INCLUDES + SET( QT_INCLUDES ${QT_INCLUDE_DIR} ${QT_QT_INCLUDE_DIR} ${QT_MKSPECS_DIR}/default ) + + # Set QT_QTCORE_LIBRARY by searching for a lib with "QtCore." as part of the filename + FIND_LIBRARY(QT_QTCORE_LIBRARY_RELEASE NAMES QtCore QtCore4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH ) + FIND_LIBRARY(QT_QTCORE_LIBRARY_DEBUG NAMES QtCore_debug QtCored QtCored4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QT3SUPPORT_LIBRARY + FIND_LIBRARY(QT_QT3SUPPORT_LIBRARY_RELEASE NAMES Qt3Support Qt3Support4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QT3SUPPORT_LIBRARY_DEBUG NAMES Qt3Support_debug Qt3Supportd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTGUI_LIBRARY + FIND_LIBRARY(QT_QTGUI_LIBRARY_RELEASE NAMES QtGui QtGui4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTGUI_LIBRARY_DEBUG NAMES QtGui_debug QtGuid4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTMOTIF_LIBRARY + IF(Q_WS_X11) + FIND_LIBRARY(QT_QTMOTIF_LIBRARY_RELEASE NAMES QtMotif PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTMOTIF_LIBRARY_DEBUG NAMES QtMotif_debug PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + ENDIF(Q_WS_X11) + + # Set QT_QTNETWORK_LIBRARY + FIND_LIBRARY(QT_QTNETWORK_LIBRARY_RELEASE NAMES QtNetwork QtNetwork4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTNETWORK_LIBRARY_DEBUG NAMES QtNetwork_debug QtNetworkd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTNSPLUGIN_LIBRARY + FIND_LIBRARY(QT_QTNSPLUGIN_LIBRARY_RELEASE NAMES QtNsPlugin PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTNSPLUGIN_LIBRARY_DEBUG NAMES QtNsPlugin_debug PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTOPENGL_LIBRARY + FIND_LIBRARY(QT_QTOPENGL_LIBRARY_RELEASE NAMES QtOpenGL QtOpenGL4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTOPENGL_LIBRARY_DEBUG NAMES QtOpenGL_debug QtOpenGLd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTSQL_LIBRARY + FIND_LIBRARY(QT_QTSQL_LIBRARY_RELEASE NAMES QtSql QtSql4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTSQL_LIBRARY_DEBUG NAMES QtSql_debug QtSqld4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTXML_LIBRARY + FIND_LIBRARY(QT_QTXML_LIBRARY_RELEASE NAMES QtXml QtXml4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTXML_LIBRARY_DEBUG NAMES QtXml_debug QtXmld4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTSVG_LIBRARY + FIND_LIBRARY(QT_QTSVG_LIBRARY_RELEASE NAMES QtSvg QtSvg4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTSVG_LIBRARY_DEBUG NAMES QtSvg_debug QtSvgd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTUITOOLS_LIBRARY + FIND_LIBRARY(QT_QTUITOOLS_LIBRARY_RELEASE NAMES QtUiTools QtUiTools4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTUITOOLS_LIBRARY_DEBUG NAMES QtUiTools_debug QtUiToolsd QtUiToolsd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + # QtUiTools not with other frameworks with binary installation (in /usr/lib) + IF(Q_WS_MAC AND QT_QTCORE_LIBRARY_RELEASE AND NOT QT_QTUITOOLS_LIBRARY_RELEASE) + FIND_LIBRARY(QT_QTUITOOLS_LIBRARY_RELEASE NAMES QtUiTools PATHS ${QT_LIBRARY_DIR}) + ENDIF(Q_WS_MAC AND QT_QTCORE_LIBRARY_RELEASE AND NOT QT_QTUITOOLS_LIBRARY_RELEASE) + + # Set QT_QTTEST_LIBRARY + FIND_LIBRARY(QT_QTTEST_LIBRARY_RELEASE NAMES QtTest QtTest4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTTEST_LIBRARY_DEBUG NAMES QtTest_debug QtTest_debug4 QtTestd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTDBUS_LIBRARY + # This was introduced with Qt 4.2, where also the naming scheme for debug libs was changed + # So does any of the debug lib names listed here actually exist ? + FIND_LIBRARY(QT_QTDBUS_LIBRARY_RELEASE NAMES QtDBus QtDBus4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTDBUS_LIBRARY_DEBUG NAMES QtDBus_debug QtDBus_debug4 QtDBusd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTSCRIPT_LIBRARY + FIND_LIBRARY(QT_QTSCRIPT_LIBRARY_RELEASE NAMES QtScript QtScript4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTSCRIPT_LIBRARY_DEBUG NAMES QtScript_debug QtScriptd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + IF( NOT QT_QTCORE_LIBRARY_DEBUG AND NOT QT_QTCORE_LIBRARY_RELEASE ) + IF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "Could NOT find QtCore. Check ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log for more details.") + ENDIF( NOT Qt4_FIND_QUIETLY AND Qt4_FIND_REQUIRED) + ENDIF( NOT QT_QTCORE_LIBRARY_DEBUG AND NOT QT_QTCORE_LIBRARY_RELEASE ) + + # Set QT_QTASSISTANT_LIBRARY + FIND_LIBRARY(QT_QTASSISTANT_LIBRARY_RELEASE NAMES QtAssistantClient QtAssistantClient4 QtAssistant QtAssistant4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTASSISTANT_LIBRARY_DEBUG NAMES QtAssistantClientd QtAssistantClientd4 QtAssistantClient_debug QtAssistant_debug QtAssistantd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTDESIGNER_LIBRARY + FIND_LIBRARY(QT_QTDESIGNER_LIBRARY_RELEASE NAMES QtDesigner QtDesigner4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTDESIGNER_LIBRARY_DEBUG NAMES QtDesigner_debug QtDesignerd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTDESIGNERCOMPONENTS_LIBRARY + FIND_LIBRARY(QT_QTDESIGNERCOMPONENTS_LIBRARY_RELEASE NAMES QtDesignerComponents QtDesignerComponents4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTDESIGNERCOMPONENTS_LIBRARY_DEBUG NAMES QtDesigner_debug QtDesignerd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) + + # Set QT_QTMAIN_LIBRARY + IF(WIN32) + FIND_LIBRARY(QT_QTMAIN_LIBRARY_RELEASE NAMES qtmain PATHS ${QT_LIBRARY_DIR} + NO_DEFAULT_PATH) + FIND_LIBRARY(QT_QTMAIN_LIBRARY_DEBUG NAMES qtmaind PATHS ${QT_LIBRARY_DIR} + NO_DEFAULT_PATH) + ENDIF(WIN32) + + ############################################ + # + # Check the existence of the libraries. + # + ############################################ + + MACRO (_QT4_ADJUST_LIB_VARS basename) + IF (QT_${basename}_LIBRARY_RELEASE OR QT_${basename}_LIBRARY_DEBUG) + + # if only the release version was found, set the debug variable also to the release version + IF (QT_${basename}_LIBRARY_RELEASE AND NOT QT_${basename}_LIBRARY_DEBUG) + SET(QT_${basename}_LIBRARY_DEBUG ${QT_${basename}_LIBRARY_RELEASE}) + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_RELEASE}) + SET(QT_${basename}_LIBRARIES ${QT_${basename}_LIBRARY_RELEASE}) + ENDIF (QT_${basename}_LIBRARY_RELEASE AND NOT QT_${basename}_LIBRARY_DEBUG) + + # if only the debug version was found, set the release variable also to the debug version + IF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY_RELEASE) + SET(QT_${basename}_LIBRARY_RELEASE ${QT_${basename}_LIBRARY_DEBUG}) + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_DEBUG}) + SET(QT_${basename}_LIBRARIES ${QT_${basename}_LIBRARY_DEBUG}) + ENDIF (QT_${basename}_LIBRARY_DEBUG AND NOT QT_${basename}_LIBRARY_RELEASE) + + IF (QT_${basename}_LIBRARY_DEBUG AND QT_${basename}_LIBRARY_RELEASE) + # if the generator supports configuration types then set + # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value + IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + SET(QT_${basename}_LIBRARY optimized ${QT_${basename}_LIBRARY_RELEASE} debug ${QT_${basename}_LIBRARY_DEBUG}) + ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + # if there are no configuration types and CMAKE_BUILD_TYPE has no value + # then just use the release libraries + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY_RELEASE} ) + ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + SET(QT_${basename}_LIBRARIES optimized ${QT_${basename}_LIBRARY_RELEASE} debug ${QT_${basename}_LIBRARY_DEBUG}) + ENDIF (QT_${basename}_LIBRARY_DEBUG AND QT_${basename}_LIBRARY_RELEASE) + + SET(QT_${basename}_LIBRARY ${QT_${basename}_LIBRARY} CACHE FILEPATH "The Qt ${basename} library") + + IF (QT_${basename}_LIBRARY) + SET(QT_${basename}_FOUND 1) + ENDIF (QT_${basename}_LIBRARY) + + ENDIF (QT_${basename}_LIBRARY_RELEASE OR QT_${basename}_LIBRARY_DEBUG) + + IF (QT_${basename}_INCLUDE_DIR) + #add the include directory to QT_INCLUDES + SET(QT_INCLUDES ${QT_INCLUDES} "${QT_${basename}_INCLUDE_DIR}") + ENDIF (QT_${basename}_INCLUDE_DIR) + + # Make variables changeble to the advanced user + MARK_AS_ADVANCED(QT_${basename}_LIBRARY QT_${basename}_LIBRARY_RELEASE QT_${basename}_LIBRARY_DEBUG QT_${basename}_INCLUDE_DIR) + ENDMACRO (_QT4_ADJUST_LIB_VARS) + + + # Set QT_xyz_LIBRARY variable and add + # library include path to QT_INCLUDES + _QT4_ADJUST_LIB_VARS(QTCORE) + _QT4_ADJUST_LIB_VARS(QTGUI) + _QT4_ADJUST_LIB_VARS(QT3SUPPORT) + _QT4_ADJUST_LIB_VARS(QTASSISTANT) + _QT4_ADJUST_LIB_VARS(QTDESIGNER) + _QT4_ADJUST_LIB_VARS(QTDESIGNERCOMPONENTS) + _QT4_ADJUST_LIB_VARS(QTNETWORK) + _QT4_ADJUST_LIB_VARS(QTNSPLUGIN) + _QT4_ADJUST_LIB_VARS(QTOPENGL) + _QT4_ADJUST_LIB_VARS(QTSQL) + _QT4_ADJUST_LIB_VARS(QTXML) + _QT4_ADJUST_LIB_VARS(QTSVG) + _QT4_ADJUST_LIB_VARS(QTSCRIPT) + _QT4_ADJUST_LIB_VARS(QTUITOOLS) + _QT4_ADJUST_LIB_VARS(QTTEST) + _QT4_ADJUST_LIB_VARS(QTDBUS) + + # platform dependent libraries + IF(Q_WS_X11) + _QT4_ADJUST_LIB_VARS(QTMOTIF) + ENDIF(Q_WS_X11) + IF(WIN32) + _QT4_ADJUST_LIB_VARS(QTMAIN) + ENDIF(WIN32) + + + ####################################### + # + # Check the executables of Qt + # ( moc, uic, rcc ) + # + ####################################### + + + # find moc and uic using qmake + QT_QUERY_QMAKE(QT_MOC_EXECUTABLE_INTERNAL "QMAKE_MOC") + QT_QUERY_QMAKE(QT_UIC_EXECUTABLE_INTERNAL "QMAKE_UIC") + + FILE(TO_CMAKE_PATH + "${QT_MOC_EXECUTABLE_INTERNAL}" QT_MOC_EXECUTABLE_INTERNAL) + FILE(TO_CMAKE_PATH + "${QT_UIC_EXECUTABLE_INTERNAL}" QT_UIC_EXECUTABLE_INTERNAL) + + SET(QT_MOC_EXECUTABLE + ${QT_MOC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The moc executable") + SET(QT_UIC_EXECUTABLE + ${QT_UIC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The uic executable") + + FIND_PROGRAM(QT_UIC3_EXECUTABLE + NAMES uic3 + PATHS ${QT_BINARY_DIR} + NO_DEFAULT_PATH + ) + + FIND_PROGRAM(QT_RCC_EXECUTABLE + NAMES rcc + PATHS ${QT_BINARY_DIR} + NO_DEFAULT_PATH + ) + + FIND_PROGRAM(QT_DBUSCPP2XML_EXECUTABLE + NAMES qdbuscpp2xml + PATHS ${QT_BINARY_DIR} + NO_DEFAULT_PATH + ) + + FIND_PROGRAM(QT_DBUSXML2CPP_EXECUTABLE + NAMES qdbusxml2cpp + PATHS ${QT_BINARY_DIR} + NO_DEFAULT_PATH + ) + + FIND_PROGRAM(QT_LUPDATE_EXECUTABLE + NAMES lupdate + PATHS ${QT_BINARY_DIR} + NO_DEFAULT_PATH + ) + + FIND_PROGRAM(QT_LRELEASE_EXECUTABLE + NAMES lrelease + PATHS ${QT_BINARY_DIR} + NO_DEFAULT_PATH + ) + + IF (QT_MOC_EXECUTABLE) + SET(QT_WRAP_CPP "YES") + ENDIF (QT_MOC_EXECUTABLE) + + IF (QT_UIC_EXECUTABLE) + SET(QT_WRAP_UI "YES") + ENDIF (QT_UIC_EXECUTABLE) + + + + MARK_AS_ADVANCED( QT_UIC_EXECUTABLE QT_UIC3_EXECUTABLE QT_MOC_EXECUTABLE + QT_RCC_EXECUTABLE QT_DBUSXML2CPP_EXECUTABLE QT_DBUSCPP2XML_EXECUTABLE + QT_LUPDATE_EXECUTABLE QT_LRELEASE_EXECUTABLE) + + ###################################### + # + # Macros for building Qt files + # + ###################################### + + MACRO (QT4_EXTRACT_OPTIONS _qt4_files _qt4_options) + SET(${_qt4_files}) + SET(${_qt4_options}) + SET(_QT4_DOING_OPTIONS FALSE) + FOREACH(_currentArg ${ARGN}) + IF ("${_currentArg}" STREQUAL "OPTIONS") + SET(_QT4_DOING_OPTIONS TRUE) + ELSE ("${_currentArg}" STREQUAL "OPTIONS") + IF(_QT4_DOING_OPTIONS) + LIST(APPEND ${_qt4_options} "${_currentArg}") + ELSE(_QT4_DOING_OPTIONS) + LIST(APPEND ${_qt4_files} "${_currentArg}") + ENDIF(_QT4_DOING_OPTIONS) + ENDIF ("${_currentArg}" STREQUAL "OPTIONS") + ENDFOREACH(_currentArg) + ENDMACRO (QT4_EXTRACT_OPTIONS) + + # macro used to create the names of output files preserving relative dirs + MACRO (QT4_MAKE_OUTPUT_FILE infile prefix ext outfile ) + STRING(REGEX MATCH "${CMAKE_CURRENT_BINARY_DIR}" _match ${infile}) + IF(_match) + FILE(RELATIVE_PATH rel ${CMAKE_CURRENT_BINARY_DIR} ${infile}) + ELSE(_match) + FILE(RELATIVE_PATH rel ${CMAKE_CURRENT_SOURCE_DIR} ${infile}) + ENDIF(_match) + SET(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${rel}") + GET_FILENAME_COMPONENT(outpath ${_outfile} PATH) + GET_FILENAME_COMPONENT(_outfile ${_outfile} NAME_WE) + FILE(MAKE_DIRECTORY ${outpath}) + SET(${outfile} ${outpath}/${prefix}${_outfile}.${ext}) + ENDMACRO (QT4_MAKE_OUTPUT_FILE ) + + MACRO (QT4_GET_MOC_INC_DIRS _moc_INC_DIRS) + SET(${_moc_INC_DIRS}) + GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) + + FOREACH(_current ${_inc_DIRS}) + SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current}) + ENDFOREACH(_current ${_inc_DIRS}) + + ENDMACRO(QT4_GET_MOC_INC_DIRS) + + # helper macro to set up a moc rule + MACRO (QT4_CREATE_MOC_COMMAND infile outfile moc_includes moc_options) + # For Windows, create a parameters file to work around command line length limit + IF (WIN32) + SET (_moc_parameters_file ${outfile}_parameters) + SET (_moc_parameters ${moc_includes} ${moc_options} -o "${outfile}" "${infile}") + FILE (REMOVE ${_moc_parameters_file}) + FOREACH(arg ${_moc_parameters}) + FILE (APPEND ${_moc_parameters_file} "${arg}\n") + ENDFOREACH(arg) + ADD_CUSTOM_COMMAND(OUTPUT ${outfile} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS @"${_moc_parameters_file}" + DEPENDS ${infile}) + ELSE (WIN32) + ADD_CUSTOM_COMMAND(OUTPUT ${outfile} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${moc_includes} ${moc_options} -o ${outfile} ${infile} + DEPENDS ${infile}) + ENDIF (WIN32) + ENDMACRO (QT4_CREATE_MOC_COMMAND) + + + MACRO (QT4_GENERATE_MOC infile outfile ) + QT4_GET_MOC_INC_DIRS(moc_includes) + GET_FILENAME_COMPONENT(abs_infile ${infile} ABSOLUTE) + QT4_CREATE_MOC_COMMAND(${abs_infile} ${outfile} "${moc_includes}" "") + SET_SOURCE_FILES_PROPERTIES(${outfile} PROPERTIES SKIP_AUTOMOC TRUE) # dont run automoc on this file + ENDMACRO (QT4_GENERATE_MOC) + + + # QT4_WRAP_CPP(outfiles inputfile ... ) + + MACRO (QT4_WRAP_CPP outfiles ) + # get include dirs + QT4_GET_MOC_INC_DIRS(moc_includes) + QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN}) + + FOREACH (it ${moc_files}) + GET_FILENAME_COMPONENT(it ${it} ABSOLUTE) + QT4_MAKE_OUTPUT_FILE(${it} moc_ cxx outfile) + QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_includes}" "${moc_options}") + SET(${outfiles} ${${outfiles}} ${outfile}) + ENDFOREACH(it) + + ENDMACRO (QT4_WRAP_CPP) + + + # QT4_WRAP_UI(outfiles inputfile ... ) + + MACRO (QT4_WRAP_UI outfiles ) + QT4_EXTRACT_OPTIONS(ui_files ui_options ${ARGN}) + + FOREACH (it ${ui_files}) + GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) + GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) + SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) + ADD_CUSTOM_COMMAND(OUTPUT ${outfile} + COMMAND ${QT_UIC_EXECUTABLE} + ARGS ${ui_options} -o ${outfile} ${infile} + MAIN_DEPENDENCY ${infile}) + SET(${outfiles} ${${outfiles}} ${outfile}) + ENDFOREACH (it) + + ENDMACRO (QT4_WRAP_UI) + + + # QT4_ADD_RESOURCES(outfiles inputfile ... ) + + MACRO (QT4_ADD_RESOURCES outfiles ) + QT4_EXTRACT_OPTIONS(rcc_files rcc_options ${ARGN}) + + FOREACH (it ${rcc_files}) + GET_FILENAME_COMPONENT(outfilename ${it} NAME_WE) + GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) + GET_FILENAME_COMPONENT(rc_path ${infile} PATH) + SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) + # parse file for dependencies + # all files are absolute paths or relative to the location of the qrc file + FILE(READ "${infile}" _RC_FILE_CONTENTS) + STRING(REGEX MATCHALL "]*>" "" _RC_FILE "${_RC_FILE}") + STRING(REGEX MATCH "^/|([A-Za-z]:/)" _ABS_PATH_INDICATOR "${_RC_FILE}") + IF(NOT _ABS_PATH_INDICATOR) + SET(_RC_FILE "${rc_path}/${_RC_FILE}") + ENDIF(NOT _ABS_PATH_INDICATOR) + SET(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}") + ENDFOREACH(_RC_FILE) + ADD_CUSTOM_COMMAND(OUTPUT ${outfile} + COMMAND ${QT_RCC_EXECUTABLE} + ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile} + MAIN_DEPENDENCY ${infile} + DEPENDS ${_RC_DEPENDS}) + SET(${outfiles} ${${outfiles}} ${outfile}) + ENDFOREACH (it) + + ENDMACRO (QT4_ADD_RESOURCES) + + MACRO(QT4_ADD_DBUS_INTERFACE _sources _interface _basename) + GET_FILENAME_COMPONENT(_infile ${_interface} ABSOLUTE) + SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) + SET(_impl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc) + + ADD_CUSTOM_COMMAND(OUTPUT ${_impl} ${_header} + COMMAND ${QT_DBUSXML2CPP_EXECUTABLE} -m -p ${_basename} ${_infile} + DEPENDS ${_infile}) + + SET_SOURCE_FILES_PROPERTIES(${_impl} PROPERTIES SKIP_AUTOMOC TRUE) + + QT4_GENERATE_MOC(${_header} ${_moc}) + + SET(${_sources} ${${_sources}} ${_impl} ${_header} ${_moc}) + MACRO_ADD_FILE_DEPENDENCIES(${_impl} ${_moc}) + + ENDMACRO(QT4_ADD_DBUS_INTERFACE) + + + MACRO(QT4_ADD_DBUS_INTERFACES _sources) + FOREACH (_current_FILE ${ARGN}) + GET_FILENAME_COMPONENT(_infile ${_current_FILE} ABSOLUTE) + # get the part before the ".xml" suffix + STRING(REGEX REPLACE "(.*[/\\.])?([^\\.]+)\\.xml" "\\2" _basename ${_current_FILE}) + STRING(TOLOWER ${_basename} _basename) + QT4_ADD_DBUS_INTERFACE(${_sources} ${_infile} ${_basename}interface) + ENDFOREACH (_current_FILE) + ENDMACRO(QT4_ADD_DBUS_INTERFACES) + + + MACRO(QT4_GENERATE_DBUS_INTERFACE _header) # _customName ) + SET(_customName "${ARGV1}") + GET_FILENAME_COMPONENT(_in_file ${_header} ABSOLUTE) + GET_FILENAME_COMPONENT(_basename ${_header} NAME_WE) + + IF (_customName) + SET(_target ${CMAKE_CURRENT_BINARY_DIR}/${_customName}) + ELSE (_customName) + SET(_target ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.xml) + ENDIF (_customName) + + ADD_CUSTOM_COMMAND(OUTPUT ${_target} + COMMAND ${QT_DBUSCPP2XML_EXECUTABLE} ${_in_file} > ${_target} + DEPENDS ${_in_file} + ) + ENDMACRO(QT4_GENERATE_DBUS_INTERFACE) + + + MACRO(QT4_ADD_DBUS_ADAPTOR _sources _xml_file _include _parentClass) # _optionalBasename ) + GET_FILENAME_COMPONENT(_infile ${_xml_file} ABSOLUTE) + + SET(_optionalBasename "${ARGV4}") + IF (_optionalBasename) + SET(_basename ${_optionalBasename} ) + ELSE (_optionalBasename) + STRING(REGEX REPLACE "(.*[/\\.])?([^\\.]+)\\.xml" "\\2adaptor" _basename ${_infile}) + STRING(TOLOWER ${_basename} _basename) + ENDIF (_optionalBasename) + + SET(_optionalClassName "${ARGV5}") + SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) + SET(_impl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc) + + IF(_optionalClassName) + ADD_CUSTOM_COMMAND(OUTPUT ${_impl} ${_header} + COMMAND ${QT_DBUSXML2CPP_EXECUTABLE} -m -a ${_basename} -c ${_optionalClassName} -i ${_include} -l ${_parentClass} ${_infile} + DEPENDS ${_infile} + ) + ELSE(_optionalClassName) + ADD_CUSTOM_COMMAND(OUTPUT ${_impl} ${_header} + COMMAND ${QT_DBUSXML2CPP_EXECUTABLE} -m -a ${_basename} -i ${_include} -l ${_parentClass} ${_infile} + DEPENDS ${_infile} + ) + ENDIF(_optionalClassName) + + QT4_GENERATE_MOC(${_header} ${_moc}) + SET_SOURCE_FILES_PROPERTIES(${_impl} PROPERTIES SKIP_AUTOMOC TRUE) + MACRO_ADD_FILE_DEPENDENCIES(${_impl} ${_moc}) + + SET(${_sources} ${${_sources}} ${_impl} ${_header} ${_moc}) + ENDMACRO(QT4_ADD_DBUS_ADAPTOR) + + MACRO(QT4_AUTOMOC) + QT4_GET_MOC_INC_DIRS(_moc_INCS) + + SET(_matching_FILES ) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE) + # if "SKIP_AUTOMOC" is set to true, we will not handle this file here. + # here. this is required to make bouic work correctly: + # we need to add generated .cpp files to the sources (to compile them), + # but we cannot let automoc handle them, as the .cpp files don't exist yet when + # cmake is run for the very first time on them -> however the .cpp files might + # exist at a later run. at that time we need to skip them, so that we don't add two + # different rules for the same moc file + GET_SOURCE_FILE_PROPERTY(_skip ${_abs_FILE} SKIP_AUTOMOC) + + IF ( NOT _skip AND EXISTS ${_abs_FILE} ) + + FILE(READ ${_abs_FILE} _contents) + + GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH) + + STRING(REGEX MATCHALL "#include +[^ ]+\\.moc[\">]" _match "${_contents}") + IF(_match) + FOREACH (_current_MOC_INC ${_match}) + STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}") + GET_FILENAME_COMPONENT(_basename ${_current_MOC} NAME_WE) + SET(_header ${_abs_PATH}/${_basename}.h) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) + QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${moc_INCS}" "") + MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc}) + ENDFOREACH (_current_MOC_INC) + ENDIF(_match) + ENDIF ( NOT _skip AND EXISTS ${_abs_FILE} ) + ENDFOREACH (_current_FILE) + ENDMACRO(QT4_AUTOMOC) + + MACRO(QT4_CREATE_TRANSLATION _qm_files) + SET(_my_sources) + SET(_my_tsfiles) + FOREACH (_file ${ARGN}) + GET_FILENAME_COMPONENT(_ext ${_file} EXT) + GET_FILENAME_COMPONENT(_abs_FILE ${_file} ABSOLUTE) + IF(_ext MATCHES "ts") + LIST(APPEND _my_tsfiles ${_abs_FILE}) + ELSE(_ext MATCHES "ts") + LIST(APPEND _my_sources ${_abs_FILE}) + ENDIF(_ext MATCHES "ts") + ENDFOREACH(_file) + FOREACH(_ts_file ${_my_tsfiles}) + ADD_CUSTOM_COMMAND(OUTPUT ${_ts_file} + COMMAND ${QT_LUPDATE_EXECUTABLE} + ARGS ${_my_sources} -ts ${_ts_file} + DEPENDS ${_my_sources}) + ENDFOREACH(_ts_file) + QT4_ADD_TRANSLATION(${_qm_files} ${_my_tsfiles}) + ENDMACRO(QT4_CREATE_TRANSLATION) + + MACRO(QT4_ADD_TRANSLATION _qm_files) + FOREACH (_current_FILE ${ARGN}) + GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE) + GET_FILENAME_COMPONENT(qm ${_abs_FILE} NAME_WE) + SET(qm "${CMAKE_CURRENT_BINARY_DIR}/${qm}.qm") + + ADD_CUSTOM_COMMAND(OUTPUT ${qm} + COMMAND ${QT_LRELEASE_EXECUTABLE} + ARGS ${_abs_FILE} -qm ${qm} + DEPENDS ${_abs_FILE} + ) + SET(${_qm_files} ${${_qm_files}} ${qm}) + ENDFOREACH (_current_FILE) + ENDMACRO(QT4_ADD_TRANSLATION) + + + + + + ###################################### + # + # decide if Qt got found + # + ###################################### + + # if the includes,libraries,moc,uic and rcc are found then we have it + IF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE) + SET( QT4_FOUND "YES" ) + IF( NOT Qt4_FIND_QUIETLY) + MESSAGE(STATUS "Found Qt-Version ${QTVERSION}") + ENDIF( NOT Qt4_FIND_QUIETLY) + ELSE( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE) + SET( QT4_FOUND "NO") + SET(QT_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}-NOTFOUND" CACHE FILEPATH "Invalid qmake found" FORCE) + IF( Qt4_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "Qt libraries, includes, moc, uic or/and rcc NOT found!") + ENDIF( Qt4_FIND_REQUIRED) + ENDIF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE) + SET(QT_FOUND ${QT4_FOUND}) + + + ####################################### + # + # Qt configuration + # + ####################################### + IF(EXISTS "${QT_MKSPECS_DIR}/qconfig.pri") + FILE(READ ${QT_MKSPECS_DIR}/qconfig.pri _qconfig_FILE_contents) + STRING(REGEX MATCH "QT_CONFIG[^\n]+" QT_QCONFIG ${_qconfig_FILE_contents}) + STRING(REGEX MATCH "CONFIG[^\n]+" QT_CONFIG ${_qconfig_FILE_contents}) + STRING(REGEX MATCH "EDITION[^\n]+" QT_EDITION ${_qconfig_FILE_contents}) + ENDIF(EXISTS "${QT_MKSPECS_DIR}/qconfig.pri") + IF("${QT_EDITION}" MATCHES "DesktopLight") + SET(QT_EDITION_DESKTOPLIGHT 1) + ENDIF("${QT_EDITION}" MATCHES "DesktopLight") + + + ############################################### + # + # configuration/system dependent settings + # + ############################################### + + SET(QT_GUI_LIB_DEPENDENCIES "") + SET(QT_CORE_LIB_DEPENDENCIES "") + + # build using shared Qt needs -DQT_DLL + IF(NOT QT_CONFIG MATCHES "static") + # warning currently only qconfig.pri on Windows potentially contains "static" + # so QT_DLL might not get defined properly on other platforms. + SET(QT_DEFINITIONS ${QT_DEFINITIONS} -DQT_DLL) + ENDIF(NOT QT_CONFIG MATCHES "static") + + ## system png + IF(QT_QCONFIG MATCHES "system-png") + FIND_LIBRARY(QT_PNG_LIBRARY NAMES png) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_PNG_LIBRARY}) + MARK_AS_ADVANCED(QT_PNG_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "system-png") + + # for X11, get X11 library directory + IF(Q_WS_X11) + QT_QUERY_QMAKE(QMAKE_LIBDIR_X11 "QMAKE_LIBDIR_X11") + ENDIF(Q_WS_X11) + + ## X11 SM + IF(QT_QCONFIG MATCHES "x11sm") + # ask qmake where the x11 libs are + FIND_LIBRARY(QT_X11_SM_LIBRARY NAMES SM PATHS ${QMAKE_LIBDIR_X11}) + FIND_LIBRARY(QT_X11_ICE_LIBRARY NAMES ICE PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_X11_SM_LIBRARY} ${QT_X11_ICE_LIBRARY}) + MARK_AS_ADVANCED(QT_X11_SM_LIBRARY) + MARK_AS_ADVANCED(QT_X11_ICE_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "x11sm") + + ## Xi + IF(QT_QCONFIG MATCHES "tablet") + FIND_LIBRARY(QT_XI_LIBRARY NAMES Xi PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_XI_LIBRARY}) + MARK_AS_ADVANCED(QT_XI_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "tablet") + + ## Xrender + IF(QT_QCONFIG MATCHES "xrender") + FIND_LIBRARY(QT_XRENDER_LIBRARY NAMES Xrender PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_XRENDER_LIBRARY}) + MARK_AS_ADVANCED(QT_XRENDER_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "xrender") + + ## Xrandr + IF(QT_QCONFIG MATCHES "xrandr") + FIND_LIBRARY(QT_XRANDR_LIBRARY NAMES Xrandr PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_XRANDR_LIBRARY}) + MARK_AS_ADVANCED(QT_XRANDR_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "xrandr") + + ## Xcursor + IF(QT_QCONFIG MATCHES "xcursor") + FIND_LIBRARY(QT_XCURSOR_LIBRARY NAMES Xcursor PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_XCURSOR_LIBRARY}) + MARK_AS_ADVANCED(QT_XCURSOR_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "xcursor") + + ## Xinerama + IF(QT_QCONFIG MATCHES "xinerama") + FIND_LIBRARY(QT_XINERAMA_LIBRARY NAMES Xinerama PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_XINERAMA_LIBRARY}) + MARK_AS_ADVANCED(QT_XINERAMA_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "xinerama") + + ## Xfixes + IF(QT_QCONFIG MATCHES "xfixes") + FIND_LIBRARY(QT_XFIXES_LIBRARY NAMES Xfixes PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_XFIXES_LIBRARY}) + MARK_AS_ADVANCED(QT_XFIXES_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "xfixes") + + ## system-freetype + IF(QT_QCONFIG MATCHES "system-freetype") + FIND_LIBRARY(QT_FREETYPE_LIBRARY NAMES freetype) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_FREETYPE_LIBRARY}) + MARK_AS_ADVANCED(QT_FREETYPE_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "system-freetype") + + ## fontconfig + IF(QT_QCONFIG MATCHES "fontconfig") + FIND_LIBRARY(QT_FONTCONFIG_LIBRARY NAMES fontconfig) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${QT_FONTCONFIG_LIBRARY}) + MARK_AS_ADVANCED(QT_FONTCONFIG_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "fontconfig") + + ## system-zlib + IF(QT_QCONFIG MATCHES "system-zlib") + FIND_LIBRARY(QT_ZLIB_LIBRARY NAMES z) + SET(QT_CORE_LIB_DEPENDENCIES ${QT_CORE_LIB_DEPENDENCIES} ${QT_ZLIB_LIBRARY}) + MARK_AS_ADVANCED(QT_ZLIB_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "system-zlib") + + ## glib + IF(QT_QCONFIG MATCHES "glib") + # Qt 4.2.0+ uses glib-2.0 + EXECUTE_PROCESS(COMMAND pkg-config --libs-only-L glib-2.0 gthread-2.0 + OUTPUT_VARIABLE _glib_query_output + RESULT_VARIABLE _glib_result + ERROR_VARIABLE _glib_query_output ) + + IF(_glib_result MATCHES 0) + STRING(REPLACE "-L" "" _glib_query_output "${_glib_query_output}") + SEPARATE_ARGUMENTS(_glib_query_output) + ELSE(_glib_result MATCHES 0) + SET(_glib_query_output) + MESSAGE(WARNING "When querying pkg-config for glib-2.0. An error was reported:\n${_glib_query_output}") + ENDIF(_glib_result MATCHES 0) + + FIND_LIBRARY(QT_GLIB_LIBRARY NAMES glib-2.0 PATHS ${_glib_query_output} ) + FIND_LIBRARY(QT_GTHREAD_LIBRARY NAMES gthread-2.0 PATHS ${_glib_query_output} ) + + IF(NOT QT_GLIB_LIBRARY OR NOT QT_GTHREAD_LIBRARY) + MESSAGE(WARNING "Unable to find glib 2.0 to satisfy Qt dependency.") + ELSE(NOT QT_GLIB_LIBRARY OR NOT QT_GTHREAD_LIBRARY) + SET(QT_CORE_LIB_DEPENDENCIES ${QT_CORE_LIB_DEPENDENCIES} + ${QT_GTHREAD_LIBRARY} ${QT_GLIB_LIBRARY}) + ENDIF(NOT QT_GLIB_LIBRARY OR NOT QT_GTHREAD_LIBRARY) + + MARK_AS_ADVANCED(QT_GLIB_LIBRARY) + MARK_AS_ADVANCED(QT_GTHREAD_LIBRARY) + ENDIF(QT_QCONFIG MATCHES "glib") + + ## clock-monotonic, just see if we need to link with rt + IF(QT_QCONFIG MATCHES "clock-monotonic") + SET(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) + SET(CMAKE_REQUIRED_LIBRARIES rt) + CHECK_SYMBOL_EXISTS(_POSIX_TIMERS "unistd.h;time.h" QT_POSIX_TIMERS) + SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_SAVE}) + IF(QT_POSIX_TIMERS) + FIND_LIBRARY(QT_RT_LIBRARY NAMES rt) + SET(QT_CORE_LIB_DEPENDENCIES ${QT_CORE_LIB_DEPENDENCIES} ${QT_RT_LIBRARY}) + MARK_AS_ADVANCED(QT_RT_LIBRARY) + ENDIF(QT_POSIX_TIMERS) + ENDIF(QT_QCONFIG MATCHES "clock-monotonic") + + IF(Q_WS_X11) + # X11 libraries Qt absolutely depends on + QT_QUERY_QMAKE(QT_LIBS_X11 "QMAKE_LIBS_X11") + SEPARATE_ARGUMENTS(QT_LIBS_X11) + FOREACH(QT_X11_LIB ${QT_LIBS_X11}) + STRING(REGEX REPLACE "-l" "" QT_X11_LIB "${QT_X11_LIB}") + SET(QT_TMP_STR "QT_X11_${QT_X11_LIB}_LIBRARY") + FIND_LIBRARY(${QT_TMP_STR} NAMES "${QT_X11_LIB}" PATHS ${QMAKE_LIBDIR_X11}) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} ${${QT_TMP_STR}}) + MARK_AS_ADVANCED(${QT_TMP_STR}) + ENDFOREACH(QT_X11_LIB) + + QT_QUERY_QMAKE(QT_LIBS_THREAD "QMAKE_LIBS_THREAD") + SET(QT_CORE_LIB_DEPENDENCIES ${QT_CORE_LIB_DEPENDENCIES} ${QT_LIBS_THREAD}) + + QT_QUERY_QMAKE(QMAKE_LIBS_DYNLOAD "QMAKE_LIBS_DYNLOAD") + SET (QT_CORE_LIB_DEPENDENCIES ${QT_CORE_LIB_DEPENDENCIES} ${QMAKE_LIBS_DYNLOAD}) + + ENDIF(Q_WS_X11) + + IF(Q_WS_WIN) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} imm32 winmm) + SET(QT_CORE_LIB_DEPENDENCIES ${QT_CORE_LIB_DEPENDENCIES} ws2_32) + ENDIF(Q_WS_WIN) + + IF(Q_WS_MAC) + SET(QT_GUI_LIB_DEPENDENCIES ${QT_GUI_LIB_DEPENDENCIES} "-framework Carbon" "-framework QuickTime") + SET(QT_CORE_LIB_DEPENDENCIES ${QT_CORE_LIB_DEPENDENCIES} "-framework ApplicationServices") + ENDIF(Q_WS_MAC) + + ####################################### + # + # compatibility settings + # + ####################################### + # Backwards compatibility for CMake1.4 and 1.2 + SET (QT_MOC_EXE ${QT_MOC_EXECUTABLE} ) + SET (QT_UIC_EXE ${QT_UIC_EXECUTABLE} ) + + SET( QT_QT_LIBRARY "") + +ELSE(QT4_QMAKE_FOUND) + + SET(QT_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}-NOTFOUND" CACHE FILEPATH "Invalid qmake found" FORCE) + IF(Qt4_FIND_REQUIRED) + IF(QT4_INSTALLED_VERSION_TOO_OLD) + MESSAGE(FATAL_ERROR "The installed Qt version ${QTVERSION} is too old, at least version ${QT_MIN_VERSION} is required") + ELSE(QT4_INSTALLED_VERSION_TOO_OLD) + MESSAGE( FATAL_ERROR "Qt qmake not found!") + ENDIF(QT4_INSTALLED_VERSION_TOO_OLD) + ELSE(Qt4_FIND_REQUIRED) + IF(QT4_INSTALLED_VERSION_TOO_OLD AND NOT Qt4_FIND_QUIETLY) + MESSAGE(STATUS "The installed Qt version ${QTVERSION} is too old, at least version ${QT_MIN_VERSION} is required") + ENDIF(QT4_INSTALLED_VERSION_TOO_OLD AND NOT Qt4_FIND_QUIETLY) + ENDIF(Qt4_FIND_REQUIRED) + +ENDIF (QT4_QMAKE_FOUND) + diff --git a/CMakeLua/Modules/FindQuickTime.cmake b/CMakeLua/Modules/FindQuickTime.cmake new file mode 100644 index 0000000..00bc3ec --- /dev/null +++ b/CMakeLua/Modules/FindQuickTime.cmake @@ -0,0 +1,41 @@ +# Locate QuickTime +# This module defines +# QUICKTIME_LIBRARY +# QUICKTIME_FOUND, if false, do not try to link to gdal +# QUICKTIME_INCLUDE_DIR, where to find the headers +# +# $QUICKTIME_DIR is an environment variable that would +# correspond to the ./configure --prefix=$QUICKTIME_DIR +# +# Created by Eric Wing. + +# QuickTime on OS X looks different than QuickTime for Windows, +# so I am going to case the two. + +IF(APPLE) + FIND_PATH(QUICKTIME_INCLUDE_DIR QuickTime/QuickTime.h) + FIND_LIBRARY(QUICKTIME_LIBRARY QuickTime) +ELSE(APPLE) + FIND_PATH(QUICKTIME_INCLUDE_DIR QuickTime.h + $ENV{QUICKTIME_DIR}/include + $ENV{QUICKTIME_DIR} + NO_DEFAULT_PATH + ) + + FIND_PATH(QUICKTIME_INCLUDE_DIR QuickTime.h) + + FIND_LIBRARY(QUICKTIME_LIBRARY QuickTime + $ENV{QUICKTIME_DIR}/lib + $ENV{QUICKTIME_DIR} + NO_DEFAULT_PATH + ) + + FIND_LIBRARY(QUICKTIME_LIBRARY QuickTime) +ENDIF(APPLE) + +SET(QUICKTIME_FOUND "NO") +IF(QUICKTIME_LIBRARY AND QUICKTIME_INCLUDE_DIR) + SET(QUICKTIME_FOUND "YES") +ENDIF(QUICKTIME_LIBRARY AND QUICKTIME_INCLUDE_DIR) + + diff --git a/CMakeLua/Modules/FindRuby.cmake b/CMakeLua/Modules/FindRuby.cmake new file mode 100644 index 0000000..ea604f9 --- /dev/null +++ b/CMakeLua/Modules/FindRuby.cmake @@ -0,0 +1,94 @@ +# - Find Ruby +# This module finds if Ruby is installed and determines where the include files +# and libraries are. It also determines what the name of the library is. This +# code sets the following variables: +# +# RUBY_INCLUDE_PATH = path to where ruby.h can be found +# RUBY_EXECUTABLE = full path to the ruby binary +# RUBY_LIBRARY = full path to the ruby library + +# Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +# See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + +# RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'` +# RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'` +# RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'` +# RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'` +# RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'` + +FIND_PROGRAM(RUBY_EXECUTABLE NAMES ruby ruby1.8 ruby18 ruby1.9 ruby19) + + +IF(RUBY_EXECUTABLE AND NOT RUBY_ARCH_DIR) + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['archdir']" + OUTPUT_VARIABLE RUBY_ARCH_DIR) + + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['libdir']" + OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_DIR) + + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['rubylibdir']" + OUTPUT_VARIABLE RUBY_RUBY_LIB_DIR) + + # site_ruby + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['sitearchdir']" + OUTPUT_VARIABLE RUBY_SITEARCH_DIR) + + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['sitelibdir']" + OUTPUT_VARIABLE RUBY_SITELIB_DIR) + + # vendor_ruby available ? + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print 'true'" + OUTPUT_VARIABLE RUBY_HAS_VENDOR_RUBY ERROR_QUIET) + + IF(RUBY_HAS_VENDOR_RUBY) + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['vendorlibdir']" + OUTPUT_VARIABLE RUBY_VENDORLIB_DIR) + + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['vendorarchdir']" + OUTPUT_VARIABLE RUBY_VENDORARCH_DIR) + ENDIF(RUBY_HAS_VENDOR_RUBY) + + # save the results in the cache so we don't have to run ruby the next time again + SET(RUBY_ARCH_DIR ${RUBY_ARCH_DIR} CACHE PATH "The Ruby arch dir") + SET(RUBY_POSSIBLE_LIB_DIR ${RUBY_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir") + SET(RUBY_RUBY_LIB_DIR ${RUBY_RUBY_LIB_DIR} CACHE PATH "The Ruby ruby-lib dir") + SET(RUBY_SITEARCH_DIR ${RUBY_SITEARCH_DIR} CACHE PATH "The Ruby site arch dir") + SET(RUBY_SITELIB_DIR ${RUBY_SITELIB_DIR} CACHE PATH "The Ruby site lib dir") + SET(RUBY_HAS_VENDOR_RUBY ${RUBY_HAS_VENDOR_RUBY} CACHE BOOL "Vendor Ruby is available") + SET(RUBY_VENDORARCH_DIR ${RUBY_VENDORARCH_DIR} CACHE PATH "The Ruby vendor arch dir") + SET(RUBY_VENDORLIB_DIR ${RUBY_VENDORLIB_DIR} CACHE PATH "The Ruby vendor lib dir") + +ENDIF(RUBY_EXECUTABLE AND NOT RUBY_ARCH_DIR) + +# for compatibility +SET(RUBY_POSSIBLE_LIB_PATH ${RUBY_POSSIBLE_LIB_DIR}) +SET(RUBY_RUBY_LIB_PATH ${RUBY_RUBY_LIB_DIR}) + + +FIND_PATH(RUBY_INCLUDE_PATH + NAMES ruby.h + PATHS + ${RUBY_ARCH_DIR} + /usr/lib/ruby/1.8/i586-linux-gnu/ ) + +# search the ruby library, the version for MSVC can have the "msvc" prefix and the "static" suffix +FIND_LIBRARY(RUBY_LIBRARY + NAMES ruby ruby1.8 ruby1.9 + msvcrt-ruby18 msvcrt-ruby19 msvcrt-ruby18-static msvcrt-ruby19-static + PATHS ${RUBY_POSSIBLE_LIB_DIR} + ) + +MARK_AS_ADVANCED( + RUBY_EXECUTABLE + RUBY_LIBRARY + RUBY_INCLUDE_PATH + RUBY_ARCH_DIR + RUBY_POSSIBLE_LIB_DIR + RUBY_RUBY_LIB_DIR + RUBY_SITEARCH_DIR + RUBY_SITELIB_DIR + RUBY_HAS_VENDOR_RUBY + RUBY_VENDORARCH_DIR + RUBY_VENDORLIB_DIR + ) diff --git a/CMakeLua/Modules/FindSDL.cmake b/CMakeLua/Modules/FindSDL.cmake new file mode 100644 index 0000000..64d4262 --- /dev/null +++ b/CMakeLua/Modules/FindSDL.cmake @@ -0,0 +1,192 @@ +# Locate SDL library +# This module defines +# SDL_LIBRARY, the name of the library to link against +# SDL_FOUND, if false, do not try to link to SDL +# SDL_INCLUDE_DIR, where to find SDL.h +# +# This module responds to the the flag: +# SDL_BUILDING_LIBRARY +# If this is defined, then no SDL_main will be linked in because +# only applications need main(). +# Otherwise, it is assumed you are building an application and this +# module will attempt to locate and set the the proper link flags +# as part of the returned SDL_LIBRARY variable. +# +# Don't forget to include SDLmain.h and SDLmain.m your project for the +# OS X framework based version. (Other versions link to -lSDLmain which +# this module will try to find on your behalf.) Also for OS X, this +# module will automatically add the -framework Cocoa on your behalf. +# +# +# Additional Note: If you see an empty SDL_LIBRARY_TEMP in your configuration +# and no SDL_LIBRARY, it means CMake did not find your SDL library +# (SDL.dll, libsdl.so, SDL.framework, etc). +# Set SDL_LIBRARY_TEMP to point to your SDL library, and configure again. +# Similarly, if you see an empty SDLMAIN_LIBRARY, you should set this value +# as appropriate. These values are used to generate the final SDL_LIBRARY +# variable, but when these values are unset, SDL_LIBRARY does not get created. +# +# +# $SDLDIR is an environment variable that would +# correspond to the ./configure --prefix=$SDLDIR +# used in building SDL. +# l.e.galup 9-20-02 +# +# Modified by Eric Wing. +# Added code to assist with automated building by using environmental variables +# and providing a more controlled/consistent search behavior. +# Added new modifications to recognize OS X frameworks and +# additional Unix paths (FreeBSD, etc). +# Also corrected the header search path to follow "proper" SDL guidelines. +# Added a search for SDLmain which is needed by some platforms. +# Added a search for threads which is needed by some platforms. +# Added needed compile switches for MinGW. +# +# On OSX, this will prefer the Framework version (if found) over others. +# People will have to manually change the cache values of +# SDL_LIBRARY to override this selection or set the CMake environment +# CMAKE_INCLUDE_PATH to modify the search paths. +# +# Note that the header path has changed from SDL/SDL.h to just SDL.h +# This needed to change because "proper" SDL convention +# is #include "SDL.h", not . This is done for portability +# reasons because not all systems place things in SDL/ (see FreeBSD). + +FIND_PATH(SDL_INCLUDE_DIR SDL.h + PATHS + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(SDL_INCLUDE_DIR SDL.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include/SDL + /usr/include/SDL + /usr/local/include/SDL12 + /usr/local/include/SDL11 # FreeBSD ports + /usr/include/SDL12 + /usr/include/SDL11 + /usr/local/include + /usr/include + /sw/include/SDL # Fink + /sw/include + /opt/local/include/SDL # DarwinPorts + /opt/local/include + /opt/csw/include/SDL # Blastwave + /opt/csw/include + /opt/include/SDL + /opt/include +) +#MESSAGE("SDL_INCLUDE_DIR is ${SDL_INCLUDE_DIR}") + +# SDL-1.1 is the name used by FreeBSD ports... +# don't confuse it for the version number. +FIND_LIBRARY(SDL_LIBRARY_TEMP + NAMES SDL SDL-1.1 + PATHS + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(SDL_LIBRARY_TEMP + NAMES SDL SDL-1.1 + PATHS + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +#MESSAGE("SDL_LIBRARY_TEMP is ${SDL_LIBRARY_TEMP}") + +IF(NOT SDL_BUILDING_LIBRARY) + IF(NOT ${SDL_INCLUDE_DIR} MATCHES ".framework") + # Non-OS X framework versions expect you to also dynamically link to + # SDLmain. This is mainly for Windows and OS X. Other (Unix) platforms + # seem to provide SDLmain for compatibility even though they don't + # necessarily need it. + FIND_LIBRARY(SDLMAIN_LIBRARY + NAMES SDLmain SDLmain-1.1 + PATHS + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib + ) + + FIND_LIBRARY(SDLMAIN_LIBRARY + NAMES SDLmain SDLmain-1.1 + PATHS + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib + ) + ENDIF(NOT ${SDL_INCLUDE_DIR} MATCHES ".framework") +ENDIF(NOT SDL_BUILDING_LIBRARY) + +# SDL may require threads on your system. +# The Apple build may not need an explicit flag because one of the +# frameworks may already provide it. +# But for non-OSX systems, I will use the CMake Threads package. +IF(NOT APPLE) + FIND_PACKAGE(Threads) +ENDIF(NOT APPLE) + +# MinGW needs an additional library, mwindows +# It's total link flags should look like -lmingw32 -lSDLmain -lSDL -lmwindows +# (Actually on second look, I think it only needs one of the m* libraries.) +IF(MINGW) + SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW") +ENDIF(MINGW) + +SET(SDL_FOUND "NO") +IF(SDL_LIBRARY_TEMP) + # For SDLmain + IF(NOT SDL_BUILDING_LIBRARY) + IF(SDLMAIN_LIBRARY) + SET(SDL_LIBRARY_TEMP ${SDLMAIN_LIBRARY} ${SDL_LIBRARY_TEMP}) + ENDIF(SDLMAIN_LIBRARY) + ENDIF(NOT SDL_BUILDING_LIBRARY) + + # For OS X, SDL uses Cocoa as a backend so it must link to Cocoa. + # CMake doesn't display the -framework Cocoa string in the UI even + # though it actually is there if I modify a pre-used variable. + # I think it has something to do with the CACHE STRING. + # So I use a temporary variable until the end so I can set the + # "real" variable in one-shot. + IF(APPLE) + SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} "-framework Cocoa") + ENDIF(APPLE) + + # For threads, as mentioned Apple doesn't need this. + # In fact, there seems to be a problem if I used the Threads package + # and try using this line, so I'm just skipping it entirely for OS X. + IF(NOT APPLE) + SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT}) + ENDIF(NOT APPLE) + + # For MinGW library + IF(MINGW) + SET(SDL_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL_LIBRARY_TEMP}) + ENDIF(MINGW) + + # Set the final string here so the GUI reflects the final state. + SET(SDL_LIBRARY ${SDL_LIBRARY_TEMP} CACHE STRING "Where the SDL Library can be found") + # Set the temp variable to INTERNAL so it is not seen in the CMake GUI + SET(SDL_LIBRARY_TEMP "" CACHE INTERNAL "") + + SET(SDL_FOUND "YES") +ENDIF(SDL_LIBRARY_TEMP) + +#MESSAGE("SDL_LIBRARY is ${SDL_LIBRARY}") + diff --git a/CMakeLua/Modules/FindSDL_image.cmake b/CMakeLua/Modules/FindSDL_image.cmake new file mode 100755 index 0000000..e39b3cb --- /dev/null +++ b/CMakeLua/Modules/FindSDL_image.cmake @@ -0,0 +1,72 @@ +# Locate SDL_image library +# This module defines +# SDLIMAGE_LIBRARY, the name of the library to link against +# SDLIMAGE_FOUND, if false, do not try to link to SDL +# SDLIMAGE_INCLUDE_DIR, where to find SDL/SDL.h +# +# $SDLDIR is an environment variable that would +# correspond to the ./configure --prefix=$SDLDIR +# used in building SDL. +# +# Created by Eric Wing. This was influenced by the FindSDL.cmake +# module, but with modifications to recognize OS X frameworks and +# additional Unix paths (FreeBSD, etc). + +FIND_PATH(SDLIMAGE_INCLUDE_DIR SDL_image.h + PATHS + $ENV{SDLIMAGEDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(SDLIMAGE_INCLUDE_DIR SDL_image.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include/SDL + /usr/include/SDL + /usr/local/include/SDL12 + /usr/local/include/SDL11 # FreeBSD ports + /usr/include/SDL12 + /usr/include/SDL11 + /usr/local/include + /usr/include + /sw/include/SDL # Fink + /sw/include + /opt/local/include/SDL # DarwinPorts + /opt/local/include + /opt/csw/include/SDL # Blastwave + /opt/csw/include + /opt/include/SDL + /opt/include +) + +FIND_LIBRARY(SDLIMAGE_LIBRARY + NAMES SDL_image + PATHS + $ENV{SDLIMAGEDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(SDLIMAGE_LIBRARY + NAMES SDL_image + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(SDLIMAGE_FOUND "NO") +IF(SDLIMAGE_LIBRARY AND SDLIMAGE_INCLUDE_DIR) + SET(SDLIMAGE_FOUND "YES") +ENDIF(SDLIMAGE_LIBRARY AND SDLIMAGE_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindSDL_mixer.cmake b/CMakeLua/Modules/FindSDL_mixer.cmake new file mode 100755 index 0000000..59b0f5a --- /dev/null +++ b/CMakeLua/Modules/FindSDL_mixer.cmake @@ -0,0 +1,72 @@ +# Locate SDL_mixer library +# This module defines +# SDLMIXER_LIBRARY, the name of the library to link against +# SDLMIXER_FOUND, if false, do not try to link to SDL +# SDLMIXER_INCLUDE_DIR, where to find SDL/SDL.h +# +# $SDLDIR is an environment variable that would +# correspond to the ./configure --prefix=$SDLDIR +# used in building SDL. +# +# Created by Eric Wing. This was influenced by the FindSDL.cmake +# module, but with modifications to recognize OS X frameworks and +# additional Unix paths (FreeBSD, etc). + +FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h + PATHS + $ENV{SDLMIXERDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include/SDL + /usr/include/SDL + /usr/local/include/SDL12 + /usr/local/include/SDL11 # FreeBSD ports + /usr/include/SDL12 + /usr/include/SDL11 + /usr/local/include + /usr/include + /sw/include/SDL # Fink + /sw/include + /opt/local/include/SDL # DarwinPorts + /opt/local/include + /opt/csw/include/SDL # Blastwave + /opt/csw/include + /opt/include/SDL + /opt/include +) + +FIND_LIBRARY(SDLMIXER_LIBRARY + NAMES SDL_mixer + PATHS + $ENV{SDLMIXERDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(SDLMIXER_LIBRARY + NAMES SDL_mixer + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(SDLMIXER_FOUND "NO") +IF(SDLMIXER_LIBRARY AND SDLMIXER_INCLUDE_DIR) + SET(SDLMIXER_FOUND "YES") +ENDIF(SDLMIXER_LIBRARY AND SDLMIXER_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindSDL_net.cmake b/CMakeLua/Modules/FindSDL_net.cmake new file mode 100755 index 0000000..8d0ce8a --- /dev/null +++ b/CMakeLua/Modules/FindSDL_net.cmake @@ -0,0 +1,72 @@ +# Locate SDL_net library +# This module defines +# SDLNET_LIBRARY, the name of the library to link against +# SDLNET_FOUND, if false, do not try to link against +# SDLNET_INCLUDE_DIR, where to find the headers +# +# $SDLDIR is an environment variable that would +# correspond to the ./configure --prefix=$SDLDIR +# used in building SDL. +# +# Created by Eric Wing. This was influenced by the FindSDL.cmake +# module, but with modifications to recognize OS X frameworks and +# additional Unix paths (FreeBSD, etc). + + +FIND_PATH(SDLNET_INCLUDE_DIR SDL_net.h + PATHS + $ENV{SDLNETDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(SDLNET_INCLUDE_DIR SDL_net.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include/SDL + /usr/include/SDL + /usr/local/include/SDL12 + /usr/local/include/SDL11 # FreeBSD ports + /usr/include/SDL12 + /usr/include/SDL11 + /usr/local/include + /usr/include + /sw/include/SDL # Fink + /sw/include + /opt/local/include/SDL # DarwinPorts + /opt/local/include + /opt/csw/include/SDL # Blastwave + /opt/csw/include + /opt/include/SDL + /opt/include +) +FIND_LIBRARY(SDLNET_LIBRARY + NAMES SDL_net + PATHS + $ENV{SDLNETDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(SDLNET_LIBRARY + NAMES SDL_net + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(SDLNET_FOUND "NO") +IF(SDLNET_LIBRARY AND SDLNET_INCLUDE_DIR) + SET(SDLNET_FOUND "YES") +ENDIF(SDLNET_LIBRARY AND SDLNET_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindSDL_sound.cmake b/CMakeLua/Modules/FindSDL_sound.cmake new file mode 100755 index 0000000..64a0d5f --- /dev/null +++ b/CMakeLua/Modules/FindSDL_sound.cmake @@ -0,0 +1,413 @@ +# Locates the SDL_sound library + +# This module depends on SDL being found and +# must be called AFTER FindSDL.cmake is called. + +# This module defines +# SDL_SOUND_INCLUDE_DIR, where to find SDL_sound.h +# SDL_SOUND_FOUND, if false, do not try to link to SDL +# SDL_SOUND_LIBRARIES, this contains the list of libraries that you need +# to link against. This is a read-only variable and is marked INTERNAL. +# SDL_SOUND_EXTRAS, this is an optional variable for you to add your own +# flags to SDL_SOUND_LIBRARIES. This is prepended to SDL_SOUND_LIBRARIES. +# This is available mostly for cases this module failed to anticipate for +# and you must add additional flags. This is marked as ADVANCED. + +# +# This module also defines (but you shouldn't need to use directly) +# SDL_SOUND_LIBRARY, the name of just the SDL_sound library you would link +# against. Use SDL_SOUND_LIBRARIES for you link instructions and not this one. +# And might define the following as needed +# MIKMOD_LIBRARY +# MODPLUG_LIBRARY +# OGG_LIBRARY +# VORBIS_LIBRARY +# SMPEG_LIBRARY +# FLAC_LIBRARY +# SPEEX_LIBRARY +# +# Typically, you should not use these variables directly, and you should use +# SDL_SOUND_LIBRARIES which contains SDL_SOUND_LIBRARY and the other audio libraries +# (if needed) to successfully compile on your system . +# +# Created by Eric Wing. +# This module is a bit more complicated than the other FindSDL* family modules. +# The reason is that SDL_sound can be compiled in a large variety of different ways +# which are independent of platform. SDL_sound may dynamically link against other 3rd +# party libraries to get additional codec support, such as Ogg Vorbis, SMPEG, ModPlug, +# MikMod, FLAC, Speex, and potentially others. +# Under some circumstances which I don't fully understand, +# there seems to be a requirement +# that dependent libraries of libraries you use must also be explicitly +# linked against in order to successfully compile. SDL_sound does not currently +# have any system in place to know how it was compiled. +# So this CMake module does the hard work in trying to discover which 3rd party +# libraries are required for building (if any). +# This module uses a brute force approach to create a test program that uses SDL_sound, +# and then tries to build it. If the build fails, it parses the error output for +# known symbol names to figure out which libraries are needed. +# +# Responds to the $SDLDIR and $SDLSOUNDDIR environmental variable that would +# correspond to the ./configure --prefix=$SDLDIR used in building SDL. +# +# On OSX, this will prefer the Framework version (if found) over others. +# People will have to manually change the cache values of +# SDL_LIBRARY to override this selectionor set the CMake environment +# CMAKE_INCLUDE_PATH to modify the search paths. +# + + +SET(SDL_SOUND_EXTRAS "" CACHE STRING "SDL_sound extra flags") +MARK_AS_ADVANCED(SDL_SOUND_EXTRAS) + +# Find SDL_sound.h +FIND_PATH(SDL_SOUND_INCLUDE_DIR SDL_sound.h + $ENV{SDLSOUNDDIR}/include + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/include + $ENV{SDLDIR} + NO_DEFAULT_PATH +) +FIND_PATH(SDL_SOUND_INCLUDE_DIR SDL_sound.h + NO_DEFAULT_PATH +) +FIND_PATH(SDL_SOUND_INCLUDE_DIR SDL_sound.h + /usr/local/include/SDL + /usr/include/SDL + /usr/local/include/SDL12 + /usr/local/include/SDL11 # FreeBSD ports + /usr/include/SDL12 + /usr/include/SDL11 + /usr/local/include + /usr/include + /sw/include/SDL # Fink + /sw/include + /opt/local/include/SDL # DarwinPorts + /opt/local/include + /opt/csw/include/SDL # Blastwave + /opt/csw/include + /opt/include/SDL + /opt/include + ) + +FIND_LIBRARY(SDL_SOUND_LIBRARY + NAMES SDL_sound + PATHS + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + +SET(SDL_SOUND_FOUND "NO") +IF(SDL_FOUND AND SDL_SOUND_INCLUDE_DIR AND SDL_SOUND_LIBRARY) + + # CMake is giving me problems using TRY_COMPILE with the CMAKE_FLAGS + # for the :STRING syntax if I have multiple values contained in a + # single variable. This is a problem for the SDL_LIBRARY variable + # because it does just that. When I feed this variable to the command, + # only the first value gets the appropriate modifier (e.g. -I) and + # the rest get dropped. + # To get multiple single variables to work, I must separate them with a "\;" + # I could go back and modify the FindSDL.cmake module, but that's kind of painful. + # The solution would be to try something like: + # SET(SDL_TRY_COMPILE_LIBRARY_LIST "${SDL_TRY_COMPILE_LIBRARY_LIST}\;${CMAKE_THREAD_LIBS_INIT}") + # Instead, it was suggested on the mailing list to write a temporary CMakeLists.txt + # with a temporary test project and invoke that with TRY_COMPILE. + # See message thread "Figuring out dependencies for a library in order to build" + # 2005-07-16 + # TRY_COMPILE( + # MY_RESULT + # ${CMAKE_BINARY_DIR} + # ${PROJECT_SOURCE_DIR}/DetermineSoundLibs.c + # CMAKE_FLAGS + # -DINCLUDE_DIRECTORIES:STRING=${SDL_INCLUDE_DIR}\;${SDL_SOUND_INCLUDE_DIR} + # -DLINK_LIBRARIES:STRING=${SDL_SOUND_LIBRARY}\;${SDL_LIBRARY} + # OUTPUT_VARIABLE MY_OUTPUT + # ) + + # To minimize external dependencies, create a sdlsound test program + # which will be used to figure out if additional link dependencies are + # required for the link phase. + FILE(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/DetermineSoundLibs.c + "#include \"SDL_sound.h\" + #include \"SDL.h\" + int main(int argc, char* argv[]) + { + Sound_AudioInfo desired; + Sound_Sample* sample; + + SDL_Init(0); + Sound_Init(); + + /* This doesn't actually have to work, but Init() is a no-op + * for some of the decoders, so this should force more symbols + * to be pulled in. + */ + sample = Sound_NewSampleFromFile(argv[1], &desired, 4096); + + Sound_Quit(); + SDL_Quit(); + return 0; + }" + ) + + # Calling + # TARGET_LINK_LIBRARIES(DetermineSoundLibs "${SDL_SOUND_LIBRARY} ${SDL_LIBRARY}) + # causes problems when SDL_LIBRARY looks like + # /Library/Frameworks/SDL.framework;-framework Cocoa + # The ;-framework Cocoa seems to be confusing CMake once the OS X + # framework support was added. I was told that breaking up the list + # would fix the problem. + SET(TMP_TRY_LIBS) + FOREACH(lib ${SDL_SOUND_LIBRARY} ${SDL_LIBRARY}) + SET(TMP_TRY_LIBS "${TMP_TRY_LIBS} \"${lib}\"") + ENDFOREACH(lib) + + # MESSAGE("TMP_TRY_LIBS ${TMP_TRY_LIBS}") + + # Write the CMakeLists.txt and test project + # Weird, this is still sketchy. If I don't quote the variables + # in the TARGET_LINK_LIBRARIES, I seem to loose everything + # in the SDL_LIBRARY string after the "-framework". + # But if I quote the stuff in INCLUDE_DIRECTORIES, it doesn't work. + FILE(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/CMakeLists.txt + "PROJECT(DetermineSoundLibs) + INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR} ${SDL_SOUND_INCLUDE_DIR}) + ADD_EXECUTABLE(DetermineSoundLibs DetermineSoundLibs.c) + TARGET_LINK_LIBRARIES(DetermineSoundLibs ${TMP_TRY_LIBS})" + ) + + TRY_COMPILE( + MY_RESULT + ${PROJECT_BINARY_DIR}/CMakeTmp + ${PROJECT_BINARY_DIR}/CMakeTmp + DetermineSoundLibs + OUTPUT_VARIABLE MY_OUTPUT + ) + + # MESSAGE("${MY_RESULT}") + # MESSAGE(${MY_OUTPUT}) + + IF(NOT MY_RESULT) + + # I expect that MPGLIB, VOC, WAV, AIFF, and SHN are compiled in statically. + # I think Timidity is also compiled in statically. + # I've never had to explcitly link against Quicktime, so I'll skip that for now. + + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARY}) + + # Find MikMod + IF("${MY_OUTPUT}" MATCHES "MikMod_") + FIND_LIBRARY(MIKMOD_LIBRARY + NAMES libmikmod-coreaudio mikmod + PATHS + $ENV{MIKMODDIR}/lib + $ENV{MIKMODDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + IF(MIKMOD_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MIKMOD_LIBRARY}) + ENDIF(MIKMOD_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "MikMod_") + + # Find ModPlug + IF("${MY_OUTPUT}" MATCHES "MODPLUG_") + FIND_LIBRARY(MODPLUG_LIBRARY + NAMES modplug + PATHS + $ENV{MODPLUGDIR}/lib + $ENV{MODPLUGDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + IF(MODPLUG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MODPLUG_LIBRARY}) + ENDIF(MODPLUG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "MODPLUG_") + + + # Find Ogg and Vorbis + IF("${MY_OUTPUT}" MATCHES "ov_") + FIND_LIBRARY(VORBIS_LIBRARY + NAMES vorbis Vorbis VORBIS + PATHS + $ENV{VORBISDIR}/lib + $ENV{VORBISDIR} + $ENV{OGGDIR}/lib + $ENV{OGGDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + SET(TEMP_SDLSOUND_FIND_VORBIS_FRAMEWORK "" CACHE INTERNAL "") + IF(VORBIS_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${VORBIS_LIBRARY}) + ENDIF(VORBIS_LIBRARY) + + FIND_LIBRARY(OGG_LIBRARY + NAMES ogg Ogg OGG + PATHS + $ENV{OGGDIR}/lib + $ENV{OGGDIR} + $ENV{VORBISDIR}/lib + $ENV{VORBISDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + IF(OGG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY}) + ENDIF(OGG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "ov_") + + + # Find SMPEG + IF("${MY_OUTPUT}" MATCHES "SMPEG_") + FIND_LIBRARY(SMPEG_LIBRARY + NAMES smpeg SMPEG Smpeg SMpeg + PATHS + $ENV{SMPEGDIR}/lib + $ENV{SMPEGDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + IF(SMPEG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SMPEG_LIBRARY}) + ENDIF(SMPEG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "SMPEG_") + + + # Find FLAC + IF("${MY_OUTPUT}" MATCHES "FLAC_") + FIND_LIBRARY(FLAC_LIBRARY + NAMES flac FLAC + PATHS + $ENV{FLACDIR}/lib + $ENV{FLACDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + IF(FLAC_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${FLAC_LIBRARY}) + ENDIF(FLAC_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "FLAC_") + + + # Hmmm...Speex seems to depend on Ogg. This might be a problem if + # the TRY_COMPILE attempt gets blocked at SPEEX before it can pull + # in the Ogg symbols. I'm not sure if I should duplicate the ogg stuff + # above for here or if two ogg entries will screw up things. + IF("${MY_OUTPUT}" MATCHES "speex_") + FIND_LIBRARY(SPEEX_LIBRARY + NAMES speex SPEEX + PATHS + $ENV{SPEEXDIR}/lib + $ENV{SPEEXDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + IF(SPEEX_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SPEEX_LIBRARY}) + ENDIF(SPEEX_LIBRARY) + + # Find OGG (needed for Speex) + # We might have already found Ogg for Vorbis, so skip it if so. + IF(NOT OGG_LIBRARY) + FIND_LIBRARY(OGG_LIBRARY + NAMES ogg Ogg OGG + PATHS + $ENV{OGGDIR}/lib + $ENV{OGGDIR} + $ENV{VORBISDIR}/lib + $ENV{VORBISDIR} + $ENV{SPEEXDIR}/lib + $ENV{SPEEXDIR} + $ENV{SDLSOUNDDIR}/lib + $ENV{SDLSOUNDDIR} + $ENV{SDLDIR}/lib + $ENV{SDLDIR} + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + ) + IF(OGG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY}) + ENDIF(OGG_LIBRARY) + ENDIF(NOT OGG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "speex_") + + ELSE(NOT MY_RESULT) + SET(SDL_SOUND_LIBRARIES "${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARY}" CACHE INTERNAL "SDL_sound and dependent libraries") + ENDIF(NOT MY_RESULT) + + SET(SDL_SOUND_LIBRARIES "${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARIES_TMP}" CACHE INTERNAL "SDL_sound and dependent libraries") + SET(SDL_SOUND_FOUND "YES") + ENDIF(SDL_FOUND AND SDL_SOUND_INCLUDE_DIR AND SDL_SOUND_LIBRARY) + + # MESSAGE("SDL_SOUND_LIBRARIES is ${SDL_SOUND_LIBRARIES}") + diff --git a/CMakeLua/Modules/FindSDL_ttf.cmake b/CMakeLua/Modules/FindSDL_ttf.cmake new file mode 100755 index 0000000..e1113d6 --- /dev/null +++ b/CMakeLua/Modules/FindSDL_ttf.cmake @@ -0,0 +1,73 @@ +# Locate SDL_ttf library +# This module defines +# SDLTTF_LIBRARY, the name of the library to link against +# SDLTTF_FOUND, if false, do not try to link to SDL +# SDLTTF_INCLUDE_DIR, where to find SDL/SDL.h +# +# $SDLDIR is an environment variable that would +# correspond to the ./configure --prefix=$SDLDIR +# used in building SDL. +# +# Created by Eric Wing. This was influenced by the FindSDL.cmake +# module, but with modifications to recognize OS X frameworks and +# additional Unix paths (FreeBSD, etc). + + +FIND_PATH(SDLTTF_INCLUDE_DIR SDL_ttf.h + PATHS + $ENV{SDLTTFDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(SDLTTF_INCLUDE_DIR SDL_ttf.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include/SDL + /usr/include/SDL + /usr/local/include/SDL12 + /usr/local/include/SDL11 # FreeBSD ports + /usr/include/SDL12 + /usr/include/SDL11 + /usr/local/include + /usr/include + /sw/include/SDL # Fink + /sw/include + /opt/local/include/SDL # DarwinPorts + /opt/local/include + /opt/csw/include/SDL # Blastwave + /opt/csw/include + /opt/include/SDL + /opt/include +) + +FIND_LIBRARY(SDLTTF_LIBRARY + NAMES SDL_ttf + PATHS + $ENV{SDLTTFDIR} + $ENV{SDLDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(SDLTTF_LIBRARY + NAMES SDL_ttf + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(SDLTTF_FOUND "NO") +IF(SDLTTF_LIBRARY AND SDLTTF_INCLUDE_DIR) + SET(SDLTTF_FOUND "YES") +ENDIF(SDLTTF_LIBRARY AND SDLTTF_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindSWIG.cmake b/CMakeLua/Modules/FindSWIG.cmake new file mode 100644 index 0000000..e1f9d74 --- /dev/null +++ b/CMakeLua/Modules/FindSWIG.cmake @@ -0,0 +1,56 @@ +# - Find SWIG +# This module finds an installed SWIG. It sets the following variables: +# SWIG_FOUND - set to true if SWIG is found +# SWIG_DIR - the directory where swig is installed +# SWIG_EXECUTABLE - the path to the swig executable +# SWIG_VERSION - the version number of the swig executable +# +# All informations are collected from the SWIG_EXECUTABLE so the +# version to be found can be changed from the command line by +# means of setting SWIG_EXECUTABLE +# + +SET(SWIG_FOUND FALSE) + +FIND_PROGRAM(SWIG_EXECUTABLE swig) + +IF(SWIG_EXECUTABLE) + EXECUTE_PROCESS(COMMAND ${SWIG_EXECUTABLE} -swiglib + OUTPUT_VARIABLE SWIG_swiglib_output + ERROR_VARIABLE SWIG_swiglib_error + RESULT_VARIABLE SWIG_swiglib_result) + + IF(SWIG_swiglib_result) + MESSAGE(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}") + ELSE(SWIG_swiglib_result) + STRING(REGEX REPLACE "[\n\r]+" ";" SWIG_swiglib_output ${SWIG_swiglib_output}) + # force the path to be computed each time in case SWIG_EXECUTABLE has changed. + SET(SWIG_DIR SWIG_DIR-NOTFOUND) + FIND_PATH(SWIG_DIR swig.swg PATHS ${SWIG_swiglib_output}) + IF(SWIG_DIR) + SET(SWIG_FOUND 1) + SET(SWIG_USE_FILE ${CMAKE_ROOT}/Modules/UseSWIG.cmake) + EXECUTE_PROCESS(COMMAND ${SWIG_EXECUTABLE} -version + OUTPUT_VARIABLE SWIG_version_output + ERROR_VARIABLE SWIG_version_output + RESULT_VARIABLE SWIG_version_result) + IF(SWIG_version_result) + MESSAGE(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -version\" failed with output:\n${SWIG_version_output}") + ELSE(SWIG_version_result) + STRING(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1" + SWIG_version_output "${SWIG_version_output}") + SET(SWIG_VERSION ${SWIG_version_output} CACHE STRING "Swig version" FORCE) + ENDIF(SWIG_version_result) + ENDIF(SWIG_DIR) + ENDIF(SWIG_swiglib_result) +ENDIF(SWIG_EXECUTABLE) + +IF(NOT SWIG_FOUND) + IF(NOT SWIG_FIND_QUIETLY) + IF(SWIG_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "SWIG was not found. Please specify Swig executable location") + ELSE(SWIG_FIND_REQUIRED) + MESSAGE(STATUS "SWIG was not found. Please specify Swig executable location") + ENDIF(SWIG_FIND_REQUIRED) + ENDIF(NOT SWIG_FIND_QUIETLY) +ENDIF(NOT SWIG_FOUND) diff --git a/CMakeLua/Modules/FindSelfPackers.cmake b/CMakeLua/Modules/FindSelfPackers.cmake new file mode 100644 index 0000000..78d6e19 --- /dev/null +++ b/CMakeLua/Modules/FindSelfPackers.cmake @@ -0,0 +1,55 @@ +# - Find upx +# This module looks for some executable packers (i.e. softwares that +# compress executables or shared libs into on-the-fly self-extracting +# executables or shared libs. +# Examples: +# UPX: http://wildsau.idv.uni-linz.ac.at/mfx/upx.html + +INCLUDE(FindCygwin) + +FIND_PROGRAM(SELF_PACKER_FOR_EXECUTABLE + upx + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) + +FIND_PROGRAM(SELF_PACKER_FOR_SHARED_LIB + upx + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) + +MARK_AS_ADVANCED( + SELF_PACKER_FOR_EXECUTABLE + SELF_PACKER_FOR_SHARED_LIB +) + +# +# Set flags +# +IF (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx") + SET (SELF_PACKER_FOR_EXECUTABLE_FLAGS "-q" CACHE STRING + "Flags for the executable self-packer.") +ELSE (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx") + SET (SELF_PACKER_FOR_EXECUTABLE_FLAGS "" CACHE STRING + "Flags for the executable self-packer.") +ENDIF (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx") + +IF (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx") + SET (SELF_PACKER_FOR_SHARED_LIB_FLAGS "-q" CACHE STRING + "Flags for the shared lib self-packer.") +ELSE (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx") + SET (SELF_PACKER_FOR_SHARED_LIB_FLAGS "" CACHE STRING + "Flags for the shared lib self-packer.") +ENDIF (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx") + +MARK_AS_ADVANCED( + SELF_PACKER_FOR_EXECUTABLE_FLAGS + SELF_PACKER_FOR_SHARED_LIB_FLAGS +) diff --git a/CMakeLua/Modules/FindSubversion.cmake b/CMakeLua/Modules/FindSubversion.cmake new file mode 100644 index 0000000..7677b31 --- /dev/null +++ b/CMakeLua/Modules/FindSubversion.cmake @@ -0,0 +1,126 @@ +# - Extract information from a subversion working copy +# The module defines the following variables: +# Subversion_SVN_EXECUTABLE - path to svn command line client +# Subversion_VERSION_SVN - version of svn command line client +# Subversion_FOUND - true if the command line client was found +# If the command line client executable is found the macro +# Subversion_WC_INFO(

    ) +# is defined to extract information of a subversion working copy at +# a given location. The macro defines the following variables: +# _WC_URL - url of the repository (at ) +# _WC_ROOT - root url of the repository +# _WC_REVISION - current revision +# _WC_LAST_CHANGED_AUTHOR - author of last commit +# _WC_LAST_CHANGED_DATE - date of last commit +# _WC_LAST_CHANGED_REV - revision of last commit +# _WC_LAST_CHANGED_LOG - last log of base revision +# _WC_INFO - output of command `svn info ' +# Example usage: +# FIND_PACKAGE(Subversion) +# IF(Subversion_FOUND) +# Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project) +# MESSAGE("Current revision is ${Project_WC_REVISION}") +# ENDIF(Subversion_FOUND) + +# Copyright (c) 2006, Tristan Carel +# 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 the University of California, Berkeley 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 REGENTS 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 REGENTS AND 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. + +# $Id: FindSubversion.cmake,v 1.2 2008/01/14 22:19:20 alex Exp $ + +SET(Subversion_FOUND FALSE) +SET(Subversion_SVN_FOUND FALSE) + +# the subversion commands should be executed with the C locale, otherwise +# the message (which are parsed) may be translated, Alex +SET(_Subversion_SAVED_LC_ALL "$ENV{LC_ALL}" ) +SET(ENV{LC_ALL} C) + +FIND_PROGRAM(Subversion_SVN_EXECUTABLE svn + DOC "subversion command line client") +MARK_AS_ADVANCED(Subversion_SVN_EXECUTABLE) + +IF(Subversion_SVN_EXECUTABLE) + SET(Subversion_SVN_FOUND TRUE) + SET(Subversion_FOUND TRUE) + + MACRO(Subversion_WC_INFO dir prefix) + EXECUTE_PROCESS(COMMAND ${Subversion_SVN_EXECUTABLE} --version + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE Subversion_VERSION_SVN + OUTPUT_STRIP_TRAILING_WHITESPACE) + + EXECUTE_PROCESS(COMMAND ${Subversion_SVN_EXECUTABLE} info ${dir} + OUTPUT_VARIABLE ${prefix}_WC_INFO + ERROR_VARIABLE Subversion_svn_info_error + RESULT_VARIABLE Subversion_svn_info_result + OUTPUT_STRIP_TRAILING_WHITESPACE) + + IF(NOT ${Subversion_svn_info_result} EQUAL 0) + MESSAGE(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} info ${dir}\" failed with output:\n${Subversion_svn_info_error}") + ELSE(NOT ${Subversion_svn_info_result} EQUAL 0) + + STRING(REGEX REPLACE "^(.*\n)?svn, version ([.0-9]+).*" + "\\2" Subversion_VERSION_SVN "${Subversion_VERSION_SVN}") + STRING(REGEX REPLACE "^(.*\n)?URL: ([^\n]+).*" + "\\2" ${prefix}_WC_URL "${${prefix}_WC_INFO}") + STRING(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*" + "\\2" ${prefix}_WC_REVISION "${${prefix}_WC_INFO}") + STRING(REGEX REPLACE "^(.*\n)?Last Changed Author: ([^\n]+).*" + "\\2" ${prefix}_WC_LAST_CHANGED_AUTHOR "${${prefix}_WC_INFO}") + STRING(REGEX REPLACE "^(.*\n)?Last Changed Rev: ([^\n]+).*" + "\\2" ${prefix}_WC_LAST_CHANGED_REV "${${prefix}_WC_INFO}") + STRING(REGEX REPLACE "^(.*\n)?Last Changed Date: ([^\n]+).*" + "\\2" ${prefix}_WC_LAST_CHANGED_DATE "${${prefix}_WC_INFO}") + + ENDIF(NOT ${Subversion_svn_info_result} EQUAL 0) + + EXECUTE_PROCESS(COMMAND + ${Subversion_SVN_EXECUTABLE} log -r BASE ${dir} + OUTPUT_VARIABLE Subversion_LAST_CHANGED_LOG + ERROR_VARIABLE Subversion_svn_log_error + RESULT_VARIABLE Subversion_svn_log_result + OUTPUT_STRIP_TRAILING_WHITESPACE) + + IF(NOT ${Subversion_svn_log_result} EQUAL 0) + MESSAGE(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}\" failed with output:\n${Subversion_svn_log_error}") + ENDIF(NOT ${Subversion_svn_log_result} EQUAL 0) + ENDMACRO(Subversion_WC_INFO) + +ENDIF(Subversion_SVN_EXECUTABLE) + +# restore the previous LC_ALL +SET(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL}) + +IF(NOT Subversion_FOUND) + IF(NOT Subversion_FIND_QUIETLY) + MESSAGE(STATUS "Subversion was not found.") + ELSE(NOT Subversion_FIND_QUIETLY) + IF(Subversion_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Subversion was not found.") + ENDIF(Subversion_FIND_REQUIRED) + ENDIF(NOT Subversion_FIND_QUIETLY) +ENDIF(NOT Subversion_FOUND) + +# FindSubversion.cmake ends here. diff --git a/CMakeLua/Modules/FindTCL.cmake b/CMakeLua/Modules/FindTCL.cmake new file mode 100644 index 0000000..b61fc60 --- /dev/null +++ b/CMakeLua/Modules/FindTCL.cmake @@ -0,0 +1,214 @@ +# - Find Tcl includes and libraries. +# This module finds if Tcl is installed and determines where the +# include files and libraries are. It also determines what the name of +# the library is. This code sets the following variables: +# TCL_FOUND = Tcl was found +# TK_FOUND = Tk was found +# TCLTK_FOUND = Tcl and Tk were found +# TCL_LIBRARY = path to Tcl library (tcl tcl80) +# TCL_INCLUDE_PATH = path to where tcl.h can be found +# TCL_TCLSH = path to tclsh binary (tcl tcl80) +# TK_LIBRARY = path to Tk library (tk tk80 etc) +# TK_INCLUDE_PATH = path to where tk.h can be found +# TK_WISH = full path to the wish executable +# +# In an effort to remove some clutter and clear up some issues for people +# who are not necessarily Tcl/Tk gurus/developpers, some variables were +# moved or removed. Changes compared to CMake 2.4 are: +# - The stub libraries are now found in FindTclStub.cmake +# => they were only useful for people writing Tcl/Tk extensions. +# - TCL_LIBRARY_DEBUG and TK_LIBRARY_DEBUG were removed. +# => these libs are not packaged by default with Tcl/Tk distributions. +# Even when Tcl/Tk is built from source, several flavors of debug libs +# are created and there is no real reason to pick a single one +# specifically (say, amongst tcl84g, tcl84gs, or tcl84sgx). +# Let's leave that choice to the user by allowing him to assign +# TCL_LIBRARY to any Tcl library, debug or not. +# - TK_INTERNAL_PATH was removed. +# => this ended up being only a Win32 variable, and there is a lot of +# confusion regarding the location of this file in an installed Tcl/Tk +# tree anyway (see 8.5 for example). If you need the internal path at +# this point it is safer you ask directly where the *source* tree is +# and dig from there. + +INCLUDE(CMakeFindFrameworks) +INCLUDE(FindTclsh) +INCLUDE(FindWish) + +GET_FILENAME_COMPONENT(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH) +GET_FILENAME_COMPONENT(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}") + +GET_FILENAME_COMPONENT(TK_WISH_PATH "${TK_WISH}" PATH) +GET_FILENAME_COMPONENT(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH) +STRING(REGEX REPLACE + "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}") + +GET_FILENAME_COMPONENT(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH) +GET_FILENAME_COMPONENT(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH) + +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}") + +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}") + +SET(TCLTK_POSSIBLE_LIB_PATHS + "${TCL_INCLUDE_PATH_PARENT}/lib" + "${TK_INCLUDE_PATH_PARENT}/lib" + "${TCL_LIBRARY_PATH}" + "${TK_LIBRARY_PATH}" + "${TCL_TCLSH_PATH_PARENT}/lib" + "${TK_WISH_PATH_PARENT}/lib" + /usr/lib + /usr/local/lib + ) + +IF(WIN32) + GET_FILENAME_COMPONENT( + ActiveTcl_CurrentVersion + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]" + NAME) + SET(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib" + "$ENV{ProgramFiles}/Tcl/Lib" + "C:/Program Files/Tcl/lib" + "C:/Tcl/lib" + ) +ENDIF(WIN32) + +FIND_LIBRARY(TCL_LIBRARY + NAMES + tcl + tcl${TK_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION} + tcl86 tcl8.6 + tcl85 tcl8.5 + tcl84 tcl8.4 + tcl83 tcl8.3 + tcl82 tcl8.2 + tcl80 tcl8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} + ) + +FIND_LIBRARY(TK_LIBRARY + NAMES + tk + tk${TCL_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION} + tk86 tk8.6 + tk85 tk8.5 + tk84 tk8.4 + tk83 tk8.3 + tk82 tk8.2 + tk80 tk8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} + ) + +CMAKE_FIND_FRAMEWORKS(Tcl) +CMAKE_FIND_FRAMEWORKS(Tk) + +SET(TCL_FRAMEWORK_INCLUDES) +IF(Tcl_FRAMEWORKS) + IF(NOT TCL_INCLUDE_PATH) + FOREACH(dir ${Tcl_FRAMEWORKS}) + SET(TCL_FRAMEWORK_INCLUDES ${TCL_FRAMEWORK_INCLUDES} ${dir}/Headers) + ENDFOREACH(dir) + ENDIF(NOT TCL_INCLUDE_PATH) +ENDIF(Tcl_FRAMEWORKS) + +SET(TK_FRAMEWORK_INCLUDES) +IF(Tk_FRAMEWORKS) + IF(NOT TK_INCLUDE_PATH) + FOREACH(dir ${Tk_FRAMEWORKS}) + SET(TK_FRAMEWORK_INCLUDES ${TK_FRAMEWORK_INCLUDES} + ${dir}/Headers ${dir}/PrivateHeaders) + ENDFOREACH(dir) + ENDIF(NOT TK_INCLUDE_PATH) +ENDIF(Tk_FRAMEWORKS) + +SET(TCLTK_POSSIBLE_INCLUDE_PATHS + "${TCL_LIBRARY_PATH_PARENT}/include" + "${TK_LIBRARY_PATH_PARENT}/include" + "${TCL_INCLUDE_PATH}" + "${TK_INCLUDE_PATH}" + ${TCL_FRAMEWORK_INCLUDES} + ${TK_FRAMEWORK_INCLUDES} + "${TCL_TCLSH_PATH_PARENT}/include" + "${TK_WISH_PATH_PARENT}/include" + /usr/include + /usr/local/include + /usr/include/tcl${TK_LIBRARY_VERSION} + /usr/include/tcl${TCL_LIBRARY_VERSION} + /usr/include/tcl8.6 + /usr/include/tcl8.5 + /usr/include/tcl8.4 + /usr/include/tcl8.3 + /usr/include/tcl8.2 + /usr/include/tcl8.0 + ) + +IF(WIN32) + SET(TCLTK_POSSIBLE_INCLUDE_PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/include" + "$ENV{ProgramFiles}/Tcl/include" + "C:/Program Files/Tcl/include" + "C:/Tcl/include" + ) +ENDIF(WIN32) + +FIND_PATH(TCL_INCLUDE_PATH + NAMES tcl.h + PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS} + NO_DEFAULT_PATH + ) +FIND_PATH(TCL_INCLUDE_PATH + NAMES tcl.h + PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS} + ) + +FIND_PATH(TK_INCLUDE_PATH + NAMES tk.h + PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS} + NO_DEFAULT_PATH + ) +FIND_PATH(TK_INCLUDE_PATH + NAMES tk.h + PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS} + ) + +# handle the QUIETLY and REQUIRED arguments and set TCL_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCL DEFAULT_MSG TCL_LIBRARY TCL_INCLUDE_PATH) +SET(TCLTK_FIND_REQUIRED ${TCL_FIND_REQUIRED}) +SET(TCLTK_FIND_QUIETLY ${TCL_FIND_QUIETLY}) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCLTK DEFAULT_MSG TCL_LIBRARY TCL_INCLUDE_PATH TK_LIBRARY TK_INCLUDE_PATH) +SET(TK_FIND_REQUIRED ${TCL_FIND_REQUIRED}) +SET(TK_FIND_QUIETLY ${TCL_FIND_QUIETLY}) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TK DEFAULT_MSG TK_LIBRARY TK_INCLUDE_PATH) + +MARK_AS_ADVANCED( + TCL_TCLSH_PATH + TK_WISH_PATH + TCL_INCLUDE_PATH + TK_INCLUDE_PATH + TCL_LIBRARY + TK_LIBRARY + ) diff --git a/CMakeLua/Modules/FindTIFF.cmake b/CMakeLua/Modules/FindTIFF.cmake new file mode 100644 index 0000000..fbf8044 --- /dev/null +++ b/CMakeLua/Modules/FindTIFF.cmake @@ -0,0 +1,22 @@ +# - Find TIFF library +# Find the native TIFF includes and library +# This module defines +# TIFF_INCLUDE_DIR, where to find tiff.h, etc. +# TIFF_LIBRARIES, libraries to link against to use TIFF. +# TIFF_FOUND, If false, do not try to use TIFF. +# also defined, but not for general use are +# TIFF_LIBRARY, where to find the TIFF library. + +FIND_PATH(TIFF_INCLUDE_DIR tiff.h) + +SET(TIFF_NAMES ${TIFF_NAMES} tiff) +FIND_LIBRARY(TIFF_LIBRARY NAMES ${TIFF_NAMES} ) + +# handle the QUIETLY and REQUIRED arguments and set TIFF_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TIFF DEFAULT_MSG TIFF_LIBRARY TIFF_INCLUDE_DIR) + +IF(TIFF_FOUND) + SET( TIFF_LIBRARIES ${TIFF_LIBRARY} ) +ENDIF(TIFF_FOUND) diff --git a/CMakeLua/Modules/FindTclStub.cmake b/CMakeLua/Modules/FindTclStub.cmake new file mode 100644 index 0000000..788dbe4 --- /dev/null +++ b/CMakeLua/Modules/FindTclStub.cmake @@ -0,0 +1,107 @@ +# - Find Tcl stub libraries. +# This module finds Tcl stub libraries. It first finds Tcl include files and +# libraries by calling FindTCL.cmake. +# How to Use the Tcl Stubs Library: +# http://tcl.activestate.com/doc/howto/stubs.html +# Using Stub Libraries: +# http://safari.oreilly.com/0130385603/ch48lev1sec3 +# This code sets the following variables: +# TCL_STUB_LIBRARY = path to Tcl stub library +# TK_STUB_LIBRARY = path to Tk stub library +# +# In an effort to remove some clutter and clear up some issues for people +# who are not necessarily Tcl/Tk gurus/developpers, some variables were +# moved or removed. Changes compared to CMake 2.4 are: +# - TCL_STUB_LIBRARY_DEBUG and TK_STUB_LIBRARY_DEBUG were removed. +# => these libs are not packaged by default with Tcl/Tk distributions. +# Even when Tcl/Tk is built from source, several flavors of debug libs +# are created and there is no real reason to pick a single one +# specifically (say, amongst tclstub84g, tclstub84gs, or tclstub84sgx). +# Let's leave that choice to the user by allowing him to assign +# TCL_STUB_LIBRARY to any Tcl library, debug or not. + +INCLUDE(FindTCL) + +GET_FILENAME_COMPONENT(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH) +GET_FILENAME_COMPONENT(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}") + +GET_FILENAME_COMPONENT(TK_WISH_PATH "${TK_WISH}" PATH) +GET_FILENAME_COMPONENT(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH) +STRING(REGEX REPLACE + "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}") + +GET_FILENAME_COMPONENT(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH) +GET_FILENAME_COMPONENT(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH) + +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}") + +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}") + +SET(TCLTK_POSSIBLE_LIB_PATHS + "${TCL_INCLUDE_PATH_PARENT}/lib" + "${TK_INCLUDE_PATH_PARENT}/lib" + "${TCL_LIBRARY_PATH}" + "${TK_LIBRARY_PATH}" + "${TCL_TCLSH_PATH_PARENT}/lib" + "${TK_WISH_PATH_PARENT}/lib" + /usr/lib + /usr/local/lib +) + +IF(WIN32) + GET_FILENAME_COMPONENT( + ActiveTcl_CurrentVersion + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]" + NAME) + SET(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib" + "$ENV{ProgramFiles}/Tcl/Lib" + "C:/Program Files/Tcl/lib" + "C:/Tcl/lib" + ) +ENDIF(WIN32) + +FIND_LIBRARY(TCL_STUB_LIBRARY + NAMES + tclstub + tclstub${TK_LIBRARY_VERSION} tclstub${TCL_TCLSH_VERSION} tclstub${TK_WISH_VERSION} + tclstub86 tclstub8.6 + tclstub85 tclstub8.5 + tclstub84 tclstub8.4 + tclstub83 tclstub8.3 + tclstub82 tclstub8.2 + tclstub80 tclstub8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TK_STUB_LIBRARY + NAMES + tkstub + tkstub${TCL_LIBRARY_VERSION} tkstub${TCL_TCLSH_VERSION} tkstub${TK_WISH_VERSION} + tkstub86 tkstub8.6 + tkstub85 tkstub8.5 + tkstub84 tkstub8.4 + tkstub83 tkstub8.3 + tkstub82 tkstub8.2 + tkstub80 tkstub8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +MARK_AS_ADVANCED( + TCL_STUB_LIBRARY + TK_STUB_LIBRARY + ) diff --git a/CMakeLua/Modules/FindTclsh.cmake b/CMakeLua/Modules/FindTclsh.cmake new file mode 100644 index 0000000..d2cc86b --- /dev/null +++ b/CMakeLua/Modules/FindTclsh.cmake @@ -0,0 +1,81 @@ +# - Find tclsh +# This module finds if TCL is installed and determines where the +# include files and libraries are. It also determines what the name of +# the library is. This code sets the following variables: +# TCLSH_FOUND = TRUE if tclsh has been found +# TCL_TCLSH = the path to the tclsh executable +# In cygwin, look for the cygwin version first. Don't look for it later to +# avoid finding the cygwin version on a Win32 build. + +IF(WIN32 AND UNIX) + FIND_PROGRAM(TCL_TCLSH NAMES cygtclsh83 cygtclsh80) +ENDIF(WIN32 AND UNIX) + +GET_FILENAME_COMPONENT(TK_WISH_PATH "${TK_WISH}" PATH) +GET_FILENAME_COMPONENT(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH) +STRING(REGEX REPLACE + "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}") + +GET_FILENAME_COMPONENT(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH) +GET_FILENAME_COMPONENT(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH) + +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}") + +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}") + +SET(TCLTK_POSSIBLE_BIN_PATHS + "${TCL_INCLUDE_PATH_PARENT}/bin" + "${TK_INCLUDE_PATH_PARENT}/bin" + "${TCL_LIBRARY_PATH_PARENT}/bin" + "${TK_LIBRARY_PATH_PARENT}/bin" + "${TK_WISH_PATH_PARENT}/bin" + ) + +IF(WIN32) + GET_FILENAME_COMPONENT( + ActiveTcl_CurrentVersion + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]" + NAME) + SET(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin" + ) +ENDIF(WIN32) + +SET(TCL_TCLSH_NAMES + tclsh + tclsh${TCL_LIBRARY_VERSION} tclsh${TK_LIBRARY_VERSION} tclsh${TK_WISH_VERSION} + tclsh86 tclsh8.6 + tclsh85 tclsh8.5 + tclsh84 tclsh8.4 + tclsh83 tclsh8.3 + tclsh82 tclsh8.2 + tclsh80 tclsh8.0 + ) + +FIND_PROGRAM(TCL_TCLSH + NAMES ${TCL_TCLSH_NAMES} + PATHS ${TCLTK_POSSIBLE_BIN_PATHS} NO_DEFAULT_PATH + ) +FIND_PROGRAM(TCL_TCLSH + NAMES ${TCL_TCLSH_NAMES} + PATHS ${TCLTK_POSSIBLE_BIN_PATHS} + ) + +# handle the QUIETLY and REQUIRED arguments and set TIFF_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Tclsh DEFAULT_MSG TCL_TCLSH) + +MARK_AS_ADVANCED(TCL_TCLSH) diff --git a/CMakeLua/Modules/FindThreads.cmake b/CMakeLua/Modules/FindThreads.cmake new file mode 100644 index 0000000..98031e2 --- /dev/null +++ b/CMakeLua/Modules/FindThreads.cmake @@ -0,0 +1,119 @@ +# - This module determines the thread library of the system. +# The following variables are set +# CMAKE_THREAD_LIBS_INIT - the thread library +# CMAKE_USE_SPROC_INIT - are we using sproc? +# CMAKE_USE_WIN32_THREADS_INIT - using WIN32 threads? +# CMAKE_USE_PTHREADS_INIT - are we using pthreads +# CMAKE_HP_PTHREADS_INIT - are we using hp pthreads + +INCLUDE (CheckIncludeFiles) +INCLUDE (CheckLibraryExists) + +# Do we have sproc? +IF(CMAKE_SYSTEM MATCHES IRIX) + CHECK_INCLUDE_FILES("sys/types.h;sys/prctl.h" CMAKE_HAVE_SPROC_H) +ENDIF(CMAKE_SYSTEM MATCHES IRIX) + +IF(CMAKE_HAVE_SPROC_H) + # We have sproc + SET(CMAKE_USE_SPROC_INIT 1) +ELSE(CMAKE_HAVE_SPROC_H) + # Do we have pthreads? + CHECK_INCLUDE_FILES("pthread.h" CMAKE_HAVE_PTHREAD_H) + IF(CMAKE_HAVE_PTHREAD_H) + # We have pthread.h + # Let's check for the library now. + SET(CMAKE_HAVE_THREADS_LIBRARY) + IF(NOT THREADS_HAVE_PTHREAD_ARG) + # Do we have -lpthreads + CHECK_LIBRARY_EXISTS(pthreads pthread_create "" CMAKE_HAVE_PTHREADS_CREATE) + IF(CMAKE_HAVE_PTHREADS_CREATE) + SET(CMAKE_THREAD_LIBS_INIT "-lpthreads") + SET(CMAKE_HAVE_THREADS_LIBRARY 1) + ENDIF(CMAKE_HAVE_PTHREADS_CREATE) + # Ok, how about -lpthread + CHECK_LIBRARY_EXISTS(pthread pthread_create "" CMAKE_HAVE_PTHREAD_CREATE) + IF(CMAKE_HAVE_PTHREAD_CREATE) + SET(CMAKE_THREAD_LIBS_INIT "-lpthread") + SET(CMAKE_HAVE_THREADS_LIBRARY 1) + ENDIF(CMAKE_HAVE_PTHREAD_CREATE) + IF(CMAKE_SYSTEM MATCHES "SunOS.*") + # On sun also check for -lthread + CHECK_LIBRARY_EXISTS(thread thr_create "" CMAKE_HAVE_THR_CREATE) + IF(CMAKE_HAVE_THR_CREATE) + SET(CMAKE_THREAD_LIBS_INIT "-lthread") + SET(CMAKE_HAVE_THREADS_LIBRARY 1) + ENDIF(CMAKE_HAVE_THR_CREATE) + ENDIF(CMAKE_SYSTEM MATCHES "SunOS.*") + ENDIF(NOT THREADS_HAVE_PTHREAD_ARG) + + IF(NOT CMAKE_HAVE_THREADS_LIBRARY) + # If we did not found -lpthread, -lpthread, or -lthread, look for -pthread + IF("THREADS_HAVE_PTHREAD_ARG" MATCHES "^THREADS_HAVE_PTHREAD_ARG") + MESSAGE(STATUS "Check if compiler accepts -pthread") + TRY_RUN(THREADS_PTHREAD_ARG THREADS_HAVE_PTHREAD_ARG + ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/CheckForPthreads.c + CMAKE_FLAGS -DLINK_LIBRARIES:STRING=-pthread + COMPILE_OUTPUT_VARIABLE OUTPUT) + IF(THREADS_HAVE_PTHREAD_ARG) + IF(THREADS_PTHREAD_ARG MATCHES "^2$") + MESSAGE(STATUS "Check if compiler accepts -pthread - yes") + ELSE(THREADS_PTHREAD_ARG MATCHES "^2$") + MESSAGE(STATUS "Check if compiler accepts -pthread - no") + FILE(APPEND + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if compiler accepts -pthread returned ${THREADS_PTHREAD_ARG} instead of 2. The compiler had the following output:\n${OUTPUT}\n\n") + ENDIF(THREADS_PTHREAD_ARG MATCHES "^2$") + ELSE(THREADS_HAVE_PTHREAD_ARG) + MESSAGE(STATUS "Check if compiler accepts -pthread - no") + FILE(APPEND + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if compiler accepts -pthread failed with the following output:\n${OUTPUT}\n\n") + ENDIF(THREADS_HAVE_PTHREAD_ARG) + ENDIF("THREADS_HAVE_PTHREAD_ARG" MATCHES "^THREADS_HAVE_PTHREAD_ARG") + IF(THREADS_HAVE_PTHREAD_ARG) + SET(CMAKE_THREAD_LIBS_INIT "-pthread") + ENDIF(THREADS_HAVE_PTHREAD_ARG) + ENDIF(NOT CMAKE_HAVE_THREADS_LIBRARY) + ENDIF(CMAKE_HAVE_PTHREAD_H) +ENDIF(CMAKE_HAVE_SPROC_H) + +IF(CMAKE_THREAD_LIBS_INIT) + SET(CMAKE_USE_PTHREADS_INIT 1) +ENDIF(CMAKE_THREAD_LIBS_INIT) + +IF(CMAKE_SYSTEM MATCHES "Windows") + SET(CMAKE_USE_WIN32_THREADS_INIT 1) +ENDIF(CMAKE_SYSTEM MATCHES "Windows") + +IF(CMAKE_USE_PTHREADS_INIT) + IF(CMAKE_SYSTEM MATCHES "HP-UX-*") + # Use libcma if it exists and can be used. It provides more + # symbols than the plain pthread library. CMA threads + # have actually been deprecated: + # http://docs.hp.com/en/B3920-90091/ch12s03.html#d0e11395 + # http://docs.hp.com/en/947/d8.html + # but we need to maintain compatibility here. + # The CMAKE_HP_PTHREADS setting actually indicates whether CMA threads + # are available. + CHECK_LIBRARY_EXISTS(cma pthread_attr_create "" CMAKE_HAVE_HP_CMA) + IF(CMAKE_HAVE_HP_CMA) + SET(CMAKE_THREAD_LIBS_INIT "-lcma") + SET(CMAKE_HP_PTHREADS_INIT 1) + ENDIF(CMAKE_HAVE_HP_CMA) + SET(CMAKE_USE_PTHREADS_INIT 1) + ENDIF(CMAKE_SYSTEM MATCHES "HP-UX-*") + + IF(CMAKE_SYSTEM MATCHES "OSF1-V*") + SET(CMAKE_USE_PTHREADS_INIT 0) + SET(CMAKE_THREAD_LIBS_INIT ) + ENDIF(CMAKE_SYSTEM MATCHES "OSF1-V*") + + IF(CMAKE_SYSTEM MATCHES "CYGWIN_NT*") + SET(CMAKE_USE_PTHREADS_INIT 1) + SET(CMAKE_THREAD_LIBS_INIT ) + SET(CMAKE_USE_WIN32_THREADS_INIT 0) + ENDIF(CMAKE_SYSTEM MATCHES "CYGWIN_NT*") +ENDIF(CMAKE_USE_PTHREADS_INIT) + diff --git a/CMakeLua/Modules/FindUnixCommands.cmake b/CMakeLua/Modules/FindUnixCommands.cmake new file mode 100644 index 0000000..10a0bd8 --- /dev/null +++ b/CMakeLua/Modules/FindUnixCommands.cmake @@ -0,0 +1,80 @@ +# - Find unix commands from cygwin +# This module looks for some usual Unix commands. +# + +INCLUDE(FindCygwin) + +FIND_PROGRAM(BASH + bash + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) +MARK_AS_ADVANCED( + BASH +) + +FIND_PROGRAM(CP + cp + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) +MARK_AS_ADVANCED( + CP +) + +FIND_PROGRAM(GZIP + gzip + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) +MARK_AS_ADVANCED( + GZIP +) + +FIND_PROGRAM(MV + mv + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) +MARK_AS_ADVANCED( + MV +) + +FIND_PROGRAM(RM + rm + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) +MARK_AS_ADVANCED( + RM +) + +FIND_PROGRAM(TAR + NAMES + tar + gtar + PATH + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) +MARK_AS_ADVANCED( + TAR +) diff --git a/CMakeLua/Modules/FindVTK.cmake b/CMakeLua/Modules/FindVTK.cmake new file mode 100644 index 0000000..f79a702 --- /dev/null +++ b/CMakeLua/Modules/FindVTK.cmake @@ -0,0 +1,140 @@ +# - Find a VTK installation or build tree. +# The following variables are set if VTK is found. If VTK is not +# found, VTK_FOUND is set to false. +# VTK_FOUND - Set to true when VTK is found. +# VTK_USE_FILE - CMake file to use VTK. +# VTK_MAJOR_VERSION - The VTK major version number. +# VTK_MINOR_VERSION - The VTK minor version number +# (odd non-release). +# VTK_BUILD_VERSION - The VTK patch level +# (meaningless for odd minor). +# VTK_INCLUDE_DIRS - Include directories for VTK +# VTK_LIBRARY_DIRS - Link directories for VTK libraries +# VTK_KITS - List of VTK kits, in CAPS +# (COMMON,IO,) etc. +# VTK_LANGUAGES - List of wrapped languages, in CAPS +# (TCL, PYHTON,) etc. +# The following cache entries must be set by the user to locate VTK: +# VTK_DIR - The directory containing VTKConfig.cmake. +# This is either the root of the build tree, +# or the lib/vtk directory. This is the +# only cache entry. +# The following variables are set for backward compatibility and +# should not be used in new code: +# USE_VTK_FILE - The full path to the UseVTK.cmake file. +# This is provided for backward +# compatibility. Use VTK_USE_FILE +# instead. +# + +# Construct consitent error messages for use below. +SET(VTK_DIR_DESCRIPTION "directory containing VTKConfig.cmake. This is either the root of the build tree, or PREFIX/lib/vtk for an installation. For VTK 4.0, this is the location of UseVTK.cmake. This is either the root of the build tree or PREFIX/include/vtk for an installation.") +SET(VTK_DIR_MESSAGE "VTK not found. Set the VTK_DIR cmake cache entry to the ${VTK_DIR_DESCRIPTION}") + +# Search only if the location is not already known. +IF(NOT VTK_DIR) + # Get the system search path as a list. + IF(UNIX) + STRING(REGEX MATCHALL "[^:]+" VTK_DIR_SEARCH1 "$ENV{PATH}") + ELSE(UNIX) + STRING(REGEX REPLACE "\\\\" "/" VTK_DIR_SEARCH1 "$ENV{PATH}") + ENDIF(UNIX) + STRING(REGEX REPLACE "/;" ";" VTK_DIR_SEARCH2 "${VTK_DIR_SEARCH1}") + + # Construct a set of paths relative to the system search path. + SET(VTK_DIR_SEARCH "") + FOREACH(dir ${VTK_DIR_SEARCH2}) + SET(VTK_DIR_SEARCH ${VTK_DIR_SEARCH} + ${dir}/../lib/vtk-5.2 + ${dir}/../lib/vtk-5.1 + ${dir}/../lib/vtk-5.0 + ${dir}/../lib/vtk + ) + ENDFOREACH(dir) + + # Old scripts may set these directories in the CMakeCache.txt file. + # They can tell us where to find VTKConfig.cmake. + SET(VTK_DIR_SEARCH_LEGACY "") + IF(VTK_BINARY_PATH AND USE_BUILT_VTK) + SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY} ${VTK_BINARY_PATH}) + ENDIF(VTK_BINARY_PATH AND USE_BUILT_VTK) + IF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK) + SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY} + ${VTK_INSTALL_PATH}/lib/vtk) + ENDIF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK) + + # + # Look for an installation or build tree. + # + FIND_PATH(VTK_DIR UseVTK.cmake + # Support legacy cache files. + ${VTK_DIR_SEARCH_LEGACY} + + # Look for an environment variable VTK_DIR. + $ENV{VTK_DIR} + + # Look in places relative to the system executable search path. + ${VTK_DIR_SEARCH} + + # Look in standard UNIX install locations. + /usr/local/lib/vtk + /usr/lib/vtk + + # Read from the CMakeSetup registry entries. It is likely that + # VTK will have been recently built. + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10] + + # Help the user find it if we cannot. + DOC "The ${VTK_DIR_DESCRIPTION}" + ) +ENDIF(NOT VTK_DIR) + +# If VTK was found, load the configuration file to get the rest of the +# settings. +IF(VTK_DIR) + # Make sure the VTKConfig.cmake file exists in the directory provided. + IF(EXISTS ${VTK_DIR}/VTKConfig.cmake) + + # We found VTK. Load the settings. + SET(VTK_FOUND 1) + INCLUDE(${VTK_DIR}/VTKConfig.cmake) + + ELSE(EXISTS ${VTK_DIR}/VTKConfig.cmake) + IF(EXISTS ${VTK_DIR}/UseVTK.cmake) + # We found VTK 4.0 (UseVTK.cmake exists, but not VTKConfig.cmake). + SET(VTK_FOUND 1) + # Load settings for VTK 4.0. + INCLUDE(UseVTKConfig40) + ELSE(EXISTS ${VTK_DIR}/UseVTK.cmake) + # We did not find VTK. + SET(VTK_FOUND 0) + ENDIF(EXISTS ${VTK_DIR}/UseVTK.cmake) + ENDIF(EXISTS ${VTK_DIR}/VTKConfig.cmake) +ELSE(VTK_DIR) + # We did not find VTK. + SET(VTK_FOUND 0) +ENDIF(VTK_DIR) + +#----------------------------------------------------------------------------- +IF(VTK_FOUND) + # Set USE_VTK_FILE for backward-compatability. + SET(USE_VTK_FILE ${VTK_USE_FILE}) +ELSE(VTK_FOUND) + # VTK not found, explain to the user how to specify its location. + IF(NOT VTK_FIND_QUIETLY) + MESSAGE(FATAL_ERROR ${VTK_DIR_MESSAGE}) + ELSE(NOT VTK_FIND_QUIETLY) + IF(VTK_FIND_REQUIRED) + MESSAGE(FATAL_ERROR ${VTK_DIR_MESSAGE}) + ENDIF(VTK_FIND_REQUIRED) + ENDIF(NOT VTK_FIND_QUIETLY) +ENDIF(VTK_FOUND) diff --git a/CMakeLua/Modules/FindWget.cmake b/CMakeLua/Modules/FindWget.cmake new file mode 100644 index 0000000..ff41347 --- /dev/null +++ b/CMakeLua/Modules/FindWget.cmake @@ -0,0 +1,23 @@ +# - Find wget +# This module looks for wget. This module defines the +# following values: +# WGET_EXECUTABLE: the full path to the wget tool. +# WGET_FOUND: True if wget has been found. + +INCLUDE(FindCygwin) + +FIND_PROGRAM(WGET_EXECUTABLE + wget + ${CYGWIN_INSTALL_PATH}/bin +) + +# handle the QUIETLY and REQUIRED arguments and set WGET_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Wget DEFAULT_MSG WGET_EXECUTABLE) + +MARK_AS_ADVANCED( WGET_EXECUTABLE ) + +# WGET option is deprecated. +# use WGET_EXECUTABLE instead. +SET (WGET ${WGET_EXECUTABLE} ) diff --git a/CMakeLua/Modules/FindWish.cmake b/CMakeLua/Modules/FindWish.cmake new file mode 100644 index 0000000..86e9c67 --- /dev/null +++ b/CMakeLua/Modules/FindWish.cmake @@ -0,0 +1,75 @@ +# - Find wish installation +# This module finds if TCL is installed and determines where the +# include files and libraries are. It also determines what the name of +# the library is. This code sets the following variables: +# +# TK_WISH = the path to the wish executable +# +# if UNIX is defined, then it will look for the cygwin version first +IF(UNIX) + FIND_PROGRAM(TK_WISH cygwish80 ) +ENDIF(UNIX) + +GET_FILENAME_COMPONENT(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH) +GET_FILENAME_COMPONENT(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}") + +GET_FILENAME_COMPONENT(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH) +GET_FILENAME_COMPONENT(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH) + +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}") + +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH) +STRING(REGEX REPLACE + "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}") + +SET(TCLTK_POSSIBLE_BIN_PATHS + "${TCL_INCLUDE_PATH_PARENT}/bin" + "${TK_INCLUDE_PATH_PARENT}/bin" + "${TCL_LIBRARY_PATH_PARENT}/bin" + "${TK_LIBRARY_PATH_PARENT}/bin" + "${TCL_TCLSH_PATH_PARENT}/bin" + ) + +IF(WIN32) + GET_FILENAME_COMPONENT( + ActiveTcl_CurrentVersion + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]" + NAME) + SET(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin" + ) +ENDIF(WIN32) + +SET(TK_WISH_NAMES + wish + wish${TCL_LIBRARY_VERSION} wish${TK_LIBRARY_VERSION} wish${TCL_TCLSH_VERSION} + wish86 wish8.6 + wish85 wish8.5 + wish84 wish8.4 + wish83 wish8.3 + wish82 wish8.2 + wish80 wish8.0 + ) + +FIND_PROGRAM(TK_WISH + NAMES ${TK_WISH_NAMES} + PATHS ${TCLTK_POSSIBLE_BIN_PATHS} NO_DEFAULT_PATH + ) +FIND_PROGRAM(TK_WISH + NAMES ${TK_WISH_NAMES} + PATHS ${TCLTK_POSSIBLE_BIN_PATHS} + ) + +MARK_AS_ADVANCED(TK_WISH) diff --git a/CMakeLua/Modules/FindX11.cmake b/CMakeLua/Modules/FindX11.cmake new file mode 100644 index 0000000..e5fff88 --- /dev/null +++ b/CMakeLua/Modules/FindX11.cmake @@ -0,0 +1,420 @@ +# - Find X11 installation +# Try to find X11 on UNIX systems. The following values are defined +# X11_FOUND - True if X11 is available +# X11_INCLUDE_DIR - include directories to use X11 +# X11_LIBRARIES - link against these to use X11 +# +# and also the following more fine grained variables: +# Include paths: X11_ICE_INCLUDE_PATH, X11_ICE_LIB, X11_ICE_FOUND +# X11_Xaccessrules_INCLUDE_PATH, X11_Xaccess_FOUND +# X11_Xaccessstr_INCLUDE_PATH, X11_Xaccess_FOUND +# X11_Xau_INCLUDE_PATH, X11_Xau_LIB, X11_Xau_FOUND +# X11_Xcomposite_INCLUDE_PATH, X11_Xcomposite_LIB, X11_Xcomposite_FOUND +# X11_Xcursor_INCLUDE_PATH, X11_Xcursor_LIB, X11_Xcursor_FOUND +# X11_Xdamage_INCLUDE_PATH, X11_Xdamage_LIB, X11_Xdamage_FOUND +# X11_Xdmcp_INCLUDE_PATH, X11_Xdmcp_LIB, X11_Xdmcp_FOUND +# X11_Xext_LIB, X11_Xext_FOUND +# X11_dpms_INCLUDE_PATH, (in X11_Xext_LIB), X11_dpms_FOUND +# X11_XShm_INCLUDE_PATH, (in X11_Xext_LIB), X11_XShm_FOUND +# X11_Xshape_INCLUDE_PATH, (in X11_Xext_LIB), X11_Xshape_FOUND +# X11_xf86misc_INCLUDE_PATH, X11_Xxf86misc_LIB, X11_xf86misc_FOUND +# X11_xf86vmode_INCLUDE_PATH, X11_xf86vmode_FOUND +# X11_Xfixes_INCLUDE_PATH, X11_Xfixes_LIB, X11_Xfixes_FOUND +# X11_Xft_INCLUDE_PATH, X11_Xft_LIB, X11_Xft_FOUND +# X11_Xinerama_INCLUDE_PATH, X11_Xinerama_LIB, X11_Xinerama_FOUND +# X11_Xinput_INCLUDE_PATH, X11_Xinput_LIB, X11_Xinput_FOUND +# X11_Xkb_INCLUDE_PATH, X11_Xkb_FOUND +# X11_Xkblib_INCLUDE_PATH, X11_Xkb_FOUND +# X11_Xpm_INCLUDE_PATH, X11_Xpm_LIB, X11_Xpm_FOUND +# X11_XTest_INCLUDE_PATH, X11_XTest_LIB, X11_XTest_FOUND +# X11_Xrandr_INCLUDE_PATH, X11_Xrandr_LIB, X11_Xrandr_FOUND +# X11_Xrender_INCLUDE_PATH, X11_Xrender_LIB, X11_Xrender_FOUND +# X11_Xscreensaver_INCLUDE_PATH, X11_Xscreensaver_LIB, X11_Xscreensaver_FOUND +# X11_Xt_INCLUDE_PATH, X11_Xt_LIB, X11_Xt_FOUND +# X11_Xutil_INCLUDE_PATH, X11_Xutil_FOUND +# X11_Xv_INCLUDE_PATH, X11_Xv_LIB, X11_Xv_FOUND + +# Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +# See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + +IF (UNIX) + SET(X11_FOUND 0) + # X11 is never a framework and some header files may be + # found in tcl on the mac + SET(CMAKE_FIND_FRAMEWORK_SAVE ${CMAKE_FIND_FRAMEWORK}) + SET(CMAKE_FIND_FRAMEWORK NEVER) + SET(X11_INC_SEARCH_PATH + /usr/pkg/xorg/include + /usr/X11R6/include + /usr/local/include + /usr/include/X11 + /usr/openwin/include + /usr/openwin/share/include + /opt/graphics/OpenGL/include + /usr/include + ) + + SET(X11_LIB_SEARCH_PATH + /usr/pkg/xorg/lib + /usr/X11R6/lib + /usr/local/lib + /usr/openwin/lib + /usr/lib + ) + + FIND_PATH(X11_X11_INCLUDE_PATH X11/X.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xlib_INCLUDE_PATH X11/Xlib.h ${X11_INC_SEARCH_PATH}) + + # Look for includes; keep the list sorted by name of the cmake *_INCLUDE_PATH + # variable (which doesn't need to match the include file name). + + # Solaris lacks XKBrules.h, so we should skip kxkbd there. + FIND_PATH(X11_ICE_INCLUDE_PATH X11/ICE/ICE.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xau_INCLUDE_PATH X11/Xauth.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xdmcp_INCLUDE_PATH X11/Xdmcp.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_dpms_INCLUDE_PATH X11/extensions/dpms.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_xf86misc_INCLUDE_PATH X11/extensions/xf86misc.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_xf86vmode_INCLUDE_PATH X11/extensions/xf86vmode.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xfixes_INCLUDE_PATH X11/extensions/Xfixes.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xft_INCLUDE_PATH X11/Xft/Xft.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xinput_INCLUDE_PATH X11/extensions/XInput.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xpm_INCLUDE_PATH X11/xpm.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_XTest_INCLUDE_PATH X11/extensions/XTest.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xrender_INCLUDE_PATH X11/extensions/Xrender.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xscreensaver_INCLUDE_PATH X11/extensions/scrnsaver.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xshape_INCLUDE_PATH X11/extensions/shape.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xutil_INCLUDE_PATH X11/Xutil.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xt_INCLUDE_PATH X11/Intrinsic.h ${X11_INC_SEARCH_PATH}) + FIND_PATH(X11_Xv_INCLUDE_PATH X11/extensions/Xvlib.h ${X11_INC_SEARCH_PATH}) + + + FIND_LIBRARY(X11_X11_LIB X11 ${X11_LIB_SEARCH_PATH}) + + # Find additional X libraries. Keep list sorted by library name. + FIND_LIBRARY(X11_ICE_LIB ICE ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_SM_LIB SM ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xau_LIB Xau ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xcursor_LIB Xcursor ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xdamage_LIB Xdamage ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xdmcp_LIB Xdmcp ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xext_LIB Xext ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xfixes_LIB Xfixes ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xft_LIB Xft ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xinerama_LIB Xinerama ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xinput_LIB Xi ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xpm_LIB Xpm ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xrandr_LIB Xrandr ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xscreensaver_LIB Xss ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xt_LIB Xt ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_XTest_LIB Xtst ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xv_LIB Xv ${X11_LIB_SEARCH_PATH}) + FIND_LIBRARY(X11_Xxf86misc_LIB Xxf86misc ${X11_LIB_SEARCH_PATH}) + + SET(X11_LIBRARY_DIR "") + IF(X11_X11_LIB) + GET_FILENAME_COMPONENT(X11_LIBRARY_DIR ${X11_X11_LIB} PATH) + ENDIF(X11_X11_LIB) + + IF(X11_X11_INCLUDE_PATH) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_X11_INCLUDE_PATH}) + ENDIF(X11_X11_INCLUDE_PATH) + + IF(X11_Xlib_INCLUDE_PATH) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xlib_INCLUDE_PATH}) + ENDIF(X11_Xlib_INCLUDE_PATH) + + IF(X11_Xutil_INCLUDE_PATH) + SET(X11_Xutil_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xutil_INCLUDE_PATH}) + ENDIF(X11_Xutil_INCLUDE_PATH) + + IF(X11_Xshape_INCLUDE_PATH) + SET(X11_Xshape_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xshape_INCLUDE_PATH}) + ENDIF(X11_Xshape_INCLUDE_PATH) + + IF(X11_X11_LIB) + SET(X11_LIBRARIES ${X11_LIBRARIES} ${X11_X11_LIB}) + ENDIF(X11_X11_LIB) + + IF(X11_Xext_LIB) + SET(X11_Xext_FOUND TRUE) + SET(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xext_LIB}) + ENDIF(X11_Xext_LIB) + + IF(X11_Xt_LIB AND X11_Xt_INCLUDE_PATH) + SET(X11_Xt_FOUND TRUE) + ENDIF(X11_Xt_LIB AND X11_Xt_INCLUDE_PATH) + + IF(X11_Xft_LIB AND X11_Xft_INCLUDE_PATH) + SET(X11_Xft_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xft_INCLUDE_PATH}) + ENDIF(X11_Xft_LIB AND X11_Xft_INCLUDE_PATH) + + IF(X11_Xv_LIB AND X11_Xv_INCLUDE_PATH) + SET(X11_Xv_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xv_INCLUDE_PATH}) + ENDIF(X11_Xv_LIB AND X11_Xv_INCLUDE_PATH) + + IF (X11_Xau_LIB AND X11_Xau_INCLUDE_PATH) + SET(X11_Xau_FOUND TRUE) + ENDIF (X11_Xau_LIB AND X11_Xau_INCLUDE_PATH) + + IF (X11_Xdmcp_INCLUDE_PATH AND X11_Xdmcp_LIB) + SET(X11_Xdmcp_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xdmcp_INCLUDE_PATH}) + ENDIF (X11_Xdmcp_INCLUDE_PATH AND X11_Xdmcp_LIB) + + IF (X11_Xaccessrules_INCLUDE_PATH AND X11_Xaccessstr_INCLUDE_PATH) + SET(X11_Xaccess_FOUND TRUE) + SET(X11_Xaccess_INCLUDE_PATH ${X11_Xaccessstr_INCLUDE_PATH}) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xaccess_INCLUDE_PATH}) + ENDIF (X11_Xaccessrules_INCLUDE_PATH AND X11_Xaccessstr_INCLUDE_PATH) + + IF (X11_Xpm_INCLUDE_PATH AND X11_Xpm_LIB) + SET(X11_Xpm_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xpm_INCLUDE_PATH}) + ENDIF (X11_Xpm_INCLUDE_PATH AND X11_Xpm_LIB) + + IF (X11_Xcomposite_INCLUDE_PATH AND X11_Xcomposite_LIB) + SET(X11_Xcomposite_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xcomposite_INCLUDE_PATH}) + ENDIF (X11_Xcomposite_INCLUDE_PATH AND X11_Xcomposite_LIB) + + IF (X11_Xdamage_INCLUDE_PATH AND X11_Xdamage_LIB) + SET(X11_Xdamage_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xdamage_INCLUDE_PATH}) + ENDIF (X11_Xdamage_INCLUDE_PATH AND X11_Xdamage_LIB) + + IF (X11_XShm_INCLUDE_PATH) + SET(X11_XShm_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_XShm_INCLUDE_PATH}) + ENDIF (X11_XShm_INCLUDE_PATH) + + IF (X11_XTest_INCLUDE_PATH AND X11_XTest_LIB) + SET(X11_XTest_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_XTest_INCLUDE_PATH}) + ENDIF (X11_XTest_INCLUDE_PATH AND X11_XTest_LIB) + + IF (X11_Xinerama_INCLUDE_PATH AND X11_Xinerama_LIB) + SET(X11_Xinerama_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xinerama_INCLUDE_PATH}) + ENDIF (X11_Xinerama_INCLUDE_PATH AND X11_Xinerama_LIB) + + IF (X11_Xfixes_INCLUDE_PATH AND X11_Xfixes_LIB) + SET(X11_Xfixes_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xfixes_INCLUDE_PATH}) + ENDIF (X11_Xfixes_INCLUDE_PATH AND X11_Xfixes_LIB) + + IF (X11_Xrender_INCLUDE_PATH AND X11_Xrender_LIB) + SET(X11_Xrender_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xrender_INCLUDE_PATH}) + ENDIF (X11_Xrender_INCLUDE_PATH AND X11_Xrender_LIB) + + IF (X11_Xrandr_INCLUDE_PATH AND X11_Xrandr_LIB) + SET(X11_Xrandr_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xrandr_INCLUDE_PATH}) + ENDIF (X11_Xrandr_INCLUDE_PATH AND X11_Xrandr_LIB) + + IF (X11_xf86misc_INCLUDE_PATH AND X11_Xxf86misc_LIB) + SET(X11_xf86misc_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_xf86misc_INCLUDE_PATH}) + ENDIF (X11_xf86misc_INCLUDE_PATH AND X11_Xxf86misc_LIB) + + IF (X11_xf86vmode_INCLUDE_PATH) + SET(X11_xf86vmode_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_xf86vmode_INCLUDE_PATH}) + ENDIF (X11_xf86vmode_INCLUDE_PATH) + + IF (X11_Xcursor_INCLUDE_PATH AND X11_Xcursor_LIB) + SET(X11_Xcursor_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xcursor_INCLUDE_PATH}) + ENDIF (X11_Xcursor_INCLUDE_PATH AND X11_Xcursor_LIB) + + IF (X11_Xscreensaver_INCLUDE_PATH AND X11_Xscreensaver_LIB) + SET(X11_Xscreensaver_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xscreensaver_INCLUDE_PATH}) + ENDIF (X11_Xscreensaver_INCLUDE_PATH AND X11_Xscreensaver_LIB) + + IF (X11_dpms_INCLUDE_PATH) + SET(X11_dpms_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_dpms_INCLUDE_PATH}) + ENDIF (X11_dpms_INCLUDE_PATH) + + IF (X11_Xkb_INCLUDE_PATH AND X11_Xkblib_INCLUDE_PATH AND X11_Xlib_INCLUDE_PATH) + SET(X11_Xkb_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xkb_INCLUDE_PATH} ) + ENDIF (X11_Xkb_INCLUDE_PATH AND X11_Xkblib_INCLUDE_PATH AND X11_Xlib_INCLUDE_PATH) + + IF (X11_Xinput_INCLUDE_PATH AND X11_Xinput_LIB) + SET(X11_Xinput_FOUND TRUE) + SET(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xinput_INCLUDE_PATH}) + ENDIF (X11_Xinput_INCLUDE_PATH AND X11_Xinput_LIB) + + IF(X11_ICE_LIB AND X11_ICE_INCLUDE_PATH) + SET(X11_ICE_FOUND TRUE) + ENDIF(X11_ICE_LIB AND X11_ICE_INCLUDE_PATH) + + # Deprecated variable for backwards compatibility with CMake 1.4 + IF (X11_X11_INCLUDE_PATH AND X11_LIBRARIES) + SET(X11_FOUND 1) + ENDIF (X11_X11_INCLUDE_PATH AND X11_LIBRARIES) + + IF(X11_FOUND) + INCLUDE(CheckFunctionExists) + INCLUDE(CheckLibraryExists) + + # Translated from an autoconf-generated configure script. + # See libs.m4 in autoconf's m4 directory. + IF($ENV{ISC} MATCHES "^yes$") + SET(X11_X_EXTRA_LIBS -lnsl_s -linet) + ELSE($ENV{ISC} MATCHES "^yes$") + SET(X11_X_EXTRA_LIBS "") + + # See if XOpenDisplay in X11 works by itself. + CHECK_LIBRARY_EXISTS("${X11_LIBRARIES}" "XOpenDisplay" "${X11_LIBRARY_DIR}" X11_LIB_X11_SOLO) + IF(NOT X11_LIB_X11_SOLO) + # Find library needed for dnet_ntoa. + CHECK_LIBRARY_EXISTS("dnet" "dnet_ntoa" "" X11_LIB_DNET_HAS_DNET_NTOA) + IF (X11_LIB_DNET_HAS_DNET_NTOA) + SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -ldnet) + ELSE (X11_LIB_DNET_HAS_DNET_NTOA) + CHECK_LIBRARY_EXISTS("dnet_stub" "dnet_ntoa" "" X11_LIB_DNET_STUB_HAS_DNET_NTOA) + IF (X11_LIB_DNET_STUB_HAS_DNET_NTOA) + SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -ldnet_stub) + ENDIF (X11_LIB_DNET_STUB_HAS_DNET_NTOA) + ENDIF (X11_LIB_DNET_HAS_DNET_NTOA) + ENDIF(NOT X11_LIB_X11_SOLO) + + # Find library needed for gethostbyname. + CHECK_FUNCTION_EXISTS("gethostbyname" CMAKE_HAVE_GETHOSTBYNAME) + IF(NOT CMAKE_HAVE_GETHOSTBYNAME) + CHECK_LIBRARY_EXISTS("nsl" "gethostbyname" "" CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) + IF (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) + SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lnsl) + ELSE (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) + CHECK_LIBRARY_EXISTS("bsd" "gethostbyname" "" CMAKE_LIB_BSD_HAS_GETHOSTBYNAME) + IF (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME) + SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lbsd) + ENDIF (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME) + ENDIF (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) + ENDIF(NOT CMAKE_HAVE_GETHOSTBYNAME) + + # Find library needed for connect. + CHECK_FUNCTION_EXISTS("connect" CMAKE_HAVE_CONNECT) + IF(NOT CMAKE_HAVE_CONNECT) + CHECK_LIBRARY_EXISTS("socket" "connect" "" CMAKE_LIB_SOCKET_HAS_CONNECT) + IF (CMAKE_LIB_SOCKET_HAS_CONNECT) + SET (X11_X_EXTRA_LIBS -lsocket ${X11_X_EXTRA_LIBS}) + ENDIF (CMAKE_LIB_SOCKET_HAS_CONNECT) + ENDIF(NOT CMAKE_HAVE_CONNECT) + + # Find library needed for remove. + CHECK_FUNCTION_EXISTS("remove" CMAKE_HAVE_REMOVE) + IF(NOT CMAKE_HAVE_REMOVE) + CHECK_LIBRARY_EXISTS("posix" "remove" "" CMAKE_LIB_POSIX_HAS_REMOVE) + IF (CMAKE_LIB_POSIX_HAS_REMOVE) + SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lposix) + ENDIF (CMAKE_LIB_POSIX_HAS_REMOVE) + ENDIF(NOT CMAKE_HAVE_REMOVE) + + # Find library needed for shmat. + CHECK_FUNCTION_EXISTS("shmat" CMAKE_HAVE_SHMAT) + IF(NOT CMAKE_HAVE_SHMAT) + CHECK_LIBRARY_EXISTS("ipc" "shmat" "" CMAKE_LIB_IPS_HAS_SHMAT) + IF (CMAKE_LIB_IPS_HAS_SHMAT) + SET (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lipc) + ENDIF (CMAKE_LIB_IPS_HAS_SHMAT) + ENDIF(NOT CMAKE_HAVE_SHMAT) + ENDIF($ENV{ISC} MATCHES "^yes$") + + IF (X11_ICE_FOUND) + CHECK_LIBRARY_EXISTS("ICE" "IceConnectionNumber" "${X11_LIBRARY_DIR}" + CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) + IF(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) + SET (X11_X_PRE_LIBS ${X11_ICE_LIB}) + IF(X11_SM_LIB) + SET (X11_X_PRE_LIBS ${X11_SM_LIB} ${X11_X_PRE_LIBS}) + ENDIF(X11_SM_LIB) + ENDIF(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) + ENDIF (X11_ICE_FOUND) + + # Build the final list of libraries. + SET(X11_LIBRARIES ${X11_X_PRE_LIBS} ${X11_LIBRARIES} ${X11_X_EXTRA_LIBS}) + + MESSAGE(STATUS "Found X11: ${X11_X11_LIB}") + ELSE (X11_FOUND) + IF (X11_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find X11") + ENDIF (X11_FIND_REQUIRED) + ENDIF (X11_FOUND) + + MARK_AS_ADVANCED( + X11_X11_INCLUDE_PATH + X11_X11_LIB + X11_Xext_LIB + X11_Xau_LIB + X11_Xau_INCLUDE_PATH + X11_Xlib_INCLUDE_PATH + X11_Xutil_INCLUDE_PATH + X11_Xcomposite_INCLUDE_PATH + X11_Xcomposite_LIB + X11_Xaccess_INCLUDE_PATH + X11_Xfixes_LIB + X11_Xfixes_INCLUDE_PATH + X11_Xrandr_LIB + X11_Xrandr_INCLUDE_PATH + X11_Xdamage_LIB + X11_Xdamage_INCLUDE_PATH + X11_Xrender_LIB + X11_Xrender_INCLUDE_PATH + X11_Xxf86misc_LIB + X11_xf86misc_INCLUDE_PATH + X11_xf86vmode_INCLUDE_PATH + X11_Xinerama_LIB + X11_Xinerama_INCLUDE_PATH + X11_XTest_LIB + X11_XTest_INCLUDE_PATH + X11_Xcursor_LIB + X11_Xcursor_INCLUDE_PATH + X11_dpms_INCLUDE_PATH + X11_Xt_LIB + X11_Xt_INCLUDE_PATH + X11_Xdmcp_LIB + X11_LIBRARIES + X11_Xaccessrules_INCLUDE_PATH + X11_Xaccessstr_INCLUDE_PATH + X11_Xdmcp_INCLUDE_PATH + X11_Xkb_INCLUDE_PATH + X11_Xkblib_INCLUDE_PATH + X11_Xscreensaver_INCLUDE_PATH + X11_Xscreensaver_LIB + X11_Xpm_INCLUDE_PATH + X11_Xpm_LIB + X11_Xinput_LIB + X11_Xinput_INCLUDE_PATH + X11_Xft_LIB + X11_Xft_INCLUDE_PATH + X11_Xshape_INCLUDE_PATH + X11_Xv_LIB + X11_Xv_INCLUDE_PATH + X11_XShm_INCLUDE_PATH + X11_ICE_LIB + X11_ICE_INCLUDE_PATH + ) + SET(CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_SAVE}) +ENDIF (UNIX) + +# X11_FIND_REQUIRED_ could be checked too diff --git a/CMakeLua/Modules/FindXMLRPC.cmake b/CMakeLua/Modules/FindXMLRPC.cmake new file mode 100644 index 0000000..2e8f1ad --- /dev/null +++ b/CMakeLua/Modules/FindXMLRPC.cmake @@ -0,0 +1,135 @@ +# - Find xmlrpc +# Find the native XMLRPC headers and libraries. +# XMLRPC_INCLUDE_DIRS - where to find xmlrpc.h, etc. +# XMLRPC_LIBRARIES - List of libraries when using xmlrpc. +# XMLRPC_FOUND - True if xmlrpc found. +# XMLRPC modules may be specified as components for this find module. +# Modules may be listed by running "xmlrpc-c-config". Modules include: +# c++ C++ wrapper code +# libwww-client libwww-based client +# cgi-server CGI-based server +# abyss-server ABYSS-based server +# Typical usage: +# FIND_PACKAGE(XMLRPC REQUIRED libwww-client) + +# First find the config script from which to obtain other values. +FIND_PROGRAM(XMLRPC_C_CONFIG NAMES xmlrpc-c-config) + +# Check whether we found anything. +IF(XMLRPC_C_CONFIG) + SET(XMLRPC_FOUND 1) +ELSE(XMLRPC_C_CONFIG) + SET(XMLRPC_FOUND 0) +ENDIF(XMLRPC_C_CONFIG) + +# Lookup the include directories needed for the components requested. +IF(XMLRPC_FOUND) + # Use the newer EXECUTE_PROCESS command if it is available. + IF(COMMAND EXECUTE_PROCESS) + EXECUTE_PROCESS( + COMMAND ${XMLRPC_C_CONFIG} ${XMLRPC_FIND_COMPONENTS} --cflags + OUTPUT_VARIABLE XMLRPC_C_CONFIG_CFLAGS + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE XMLRPC_C_CONFIG_RESULT + ) + ELSE(COMMAND EXECUTE_PROCESS) + EXEC_PROGRAM(${XMLRPC_C_CONFIG} ARGS "${XMLRPC_FIND_COMPONENTS} --cflags" + OUTPUT_VARIABLE XMLRPC_C_CONFIG_CFLAGS + RETURN_VALUE XMLRPC_C_CONFIG_RESULT + ) + ENDIF(COMMAND EXECUTE_PROCESS) + + # Parse the include flags. + IF("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$") + # Convert the compile flags to a CMake list. + STRING(REGEX REPLACE " +" ";" + XMLRPC_C_CONFIG_CFLAGS "${XMLRPC_C_CONFIG_CFLAGS}") + + # Look for -I options. + SET(XMLRPC_INCLUDE_DIRS) + FOREACH(flag ${XMLRPC_C_CONFIG_CFLAGS}) + IF("${flag}" MATCHES "^-I") + STRING(REGEX REPLACE "^-I" "" DIR "${flag}") + FILE(TO_CMAKE_PATH "${DIR}" DIR) + SET(XMLRPC_INCLUDE_DIRS ${XMLRPC_INCLUDE_DIRS} "${DIR}") + ENDIF("${flag}" MATCHES "^-I") + ENDFOREACH(flag) + ELSE("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$") + MESSAGE("Error running ${XMLRPC_C_CONFIG}: [${XMLRPC_C_CONFIG_RESULT}]") + SET(XMLRPC_FOUND 0) + ENDIF("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$") +ENDIF(XMLRPC_FOUND) + +# Lookup the libraries needed for the components requested. +IF(XMLRPC_FOUND) + # Use the newer EXECUTE_PROCESS command if it is available. + IF(COMMAND EXECUTE_PROCESS) + EXECUTE_PROCESS( + COMMAND ${XMLRPC_C_CONFIG} ${XMLRPC_FIND_COMPONENTS} --libs + OUTPUT_VARIABLE XMLRPC_C_CONFIG_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE XMLRPC_C_CONFIG_RESULT + ) + ELSE(COMMAND EXECUTE_PROCESS) + EXEC_PROGRAM(${XMLRPC_C_CONFIG} ARGS "${XMLRPC_FIND_COMPONENTS} --libs" + OUTPUT_VARIABLE XMLRPC_C_CONFIG_LIBS + RETURN_VALUE XMLRPC_C_CONFIG_RESULT + ) + ENDIF(COMMAND EXECUTE_PROCESS) + + # Parse the library names and directories. + IF("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$") + STRING(REGEX REPLACE " +" ";" + XMLRPC_C_CONFIG_LIBS "${XMLRPC_C_CONFIG_LIBS}") + + # Look for -L flags for directories and -l flags for library names. + SET(XMLRPC_LIBRARY_DIRS) + SET(XMLRPC_LIBRARY_NAMES) + FOREACH(flag ${XMLRPC_C_CONFIG_LIBS}) + IF("${flag}" MATCHES "^-L") + STRING(REGEX REPLACE "^-L" "" DIR "${flag}") + FILE(TO_CMAKE_PATH "${DIR}" DIR) + SET(XMLRPC_LIBRARY_DIRS ${XMLRPC_LIBRARY_DIRS} "${DIR}") + ELSEIF("${flag}" MATCHES "^-l") + STRING(REGEX REPLACE "^-l" "" NAME "${flag}") + SET(XMLRPC_LIBRARY_NAMES ${XMLRPC_LIBRARY_NAMES} "${NAME}") + ENDIF("${flag}" MATCHES "^-L") + ENDFOREACH(flag) + + # Search for each library needed using the directories given. + FOREACH(name ${XMLRPC_LIBRARY_NAMES}) + # Look for this library. + FIND_LIBRARY(XMLRPC_${name}_LIBRARY + NAMES ${name} + PATHS ${XMLRPC_LIBRARY_DIRS} + NO_DEFAULT_PATH + ) + FIND_LIBRARY(XMLRPC_${name}_LIBRARY NAMES ${name}) + MARK_AS_ADVANCED(XMLRPC_${name}_LIBRARY) + + # If any library is not found then the whole package is not found. + IF(NOT XMLRPC_${name}_LIBRARY) + SET(XMLRPC_FOUND 0) + ENDIF(NOT XMLRPC_${name}_LIBRARY) + + # Build an ordered list of all the libraries needed. + SET(XMLRPC_LIBRARIES ${XMLRPC_LIBRARIES} "${XMLRPC_${name}_LIBRARY}") + ENDFOREACH(name) + ELSE("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$") + MESSAGE("Error running ${XMLRPC_C_CONFIG}: [${XMLRPC_C_CONFIG_RESULT}]") + SET(XMLRPC_FOUND 0) + ENDIF("${XMLRPC_C_CONFIG_RESULT}" MATCHES "^0$") +ENDIF(XMLRPC_FOUND) + +# Report the results. +IF(NOT XMLRPC_FOUND) + SET(XMLRPC_DIR_MESSAGE + "XMLRPC was not found. Make sure the entries XMLRPC_* are set.") + IF(NOT XMLRPC_FIND_QUIETLY) + MESSAGE(STATUS "${XMLRPC_DIR_MESSAGE}") + ELSE(NOT XMLRPC_FIND_QUIETLY) + IF(XMLRPC_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "${XMLRPC_DIR_MESSAGE}") + ENDIF(XMLRPC_FIND_REQUIRED) + ENDIF(NOT XMLRPC_FIND_QUIETLY) +ENDIF(NOT XMLRPC_FOUND) diff --git a/CMakeLua/Modules/FindZLIB.cmake b/CMakeLua/Modules/FindZLIB.cmake new file mode 100644 index 0000000..23ea937 --- /dev/null +++ b/CMakeLua/Modules/FindZLIB.cmake @@ -0,0 +1,30 @@ +# - Find zlib +# Find the native ZLIB includes and library +# +# ZLIB_INCLUDE_DIR - where to find zlib.h, etc. +# ZLIB_LIBRARIES - List of libraries when using zlib. +# ZLIB_FOUND - True if zlib found. + + +IF (ZLIB_INCLUDE_DIR) + # Already in cache, be silent + SET(ZLIB_FIND_QUIETLY TRUE) +ENDIF (ZLIB_INCLUDE_DIR) + +FIND_PATH(ZLIB_INCLUDE_DIR zlib.h) + +SET(ZLIB_NAMES z zlib zdll) +FIND_LIBRARY(ZLIB_LIBRARY NAMES ${ZLIB_NAMES} ) + +# handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB DEFAULT_MSG ZLIB_LIBRARY ZLIB_INCLUDE_DIR) + +IF(ZLIB_FOUND) + SET( ZLIB_LIBRARIES ${ZLIB_LIBRARY} ) +ELSE(ZLIB_FOUND) + SET( ZLIB_LIBRARIES ) +ENDIF(ZLIB_FOUND) + +MARK_AS_ADVANCED( ZLIB_LIBRARY ZLIB_INCLUDE_DIR ) diff --git a/CMakeLua/Modules/Findosg.cmake b/CMakeLua/Modules/Findosg.cmake new file mode 100644 index 0000000..1a4598c --- /dev/null +++ b/CMakeLua/Modules/Findosg.cmake @@ -0,0 +1,79 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osg +# This module defines +# OSG_LIBRARY +# OSG_FOUND, if false, do not try to link to osg +# OSG_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSG_INCLUDE_DIR osg/PositionAttitudeTransform + PATHS + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSG_INCLUDE_DIR osg/PositionAttitudeTransform + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSG_LIBRARY + NAMES osg + PATHS + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSG_LIBRARY + NAMES osg + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSG_FOUND "NO") +IF(OSG_LIBRARY AND OSG_INCLUDE_DIR) + SET(OSG_FOUND "YES") +ENDIF(OSG_LIBRARY AND OSG_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgDB.cmake b/CMakeLua/Modules/FindosgDB.cmake new file mode 100644 index 0000000..711e5f3 --- /dev/null +++ b/CMakeLua/Modules/FindosgDB.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgDB +# This module defines +# OSGDB_LIBRARY +# OSGDB_FOUND, if false, do not try to link to osgDB +# OSGDB_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGDB_INCLUDE_DIR osgDB/DatabasePager + PATHS + $ENV{OSGDB_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGDB_INCLUDE_DIR osgDB/DatabasePager + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGDB_LIBRARY + NAMES osgDB + PATHS + $ENV{OSGDB_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGDB_LIBRARY + NAMES osgDB + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGDB_FOUND "NO") +IF(OSGDB_LIBRARY AND OSGDB_INCLUDE_DIR) + SET(OSGDB_FOUND "YES") +ENDIF(OSGDB_LIBRARY AND OSGDB_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgFX.cmake b/CMakeLua/Modules/FindosgFX.cmake new file mode 100644 index 0000000..cc1c3a6 --- /dev/null +++ b/CMakeLua/Modules/FindosgFX.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgFX +# This module defines +# OSGFX_LIBRARY +# OSGFX_FOUND, if false, do not try to link to osgFX +# OSGFX_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGFX_INCLUDE_DIR osgFX/BumpMapping + PATHS + $ENV{OSGFX_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGFX_INCLUDE_DIR osgFX/BumpMapping + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGFX_LIBRARY + NAMES osgFX + PATHS + $ENV{OSGFX_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGFX_LIBRARY + NAMES osgFX + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGFX_FOUND "NO") +IF(OSGFX_LIBRARY AND OSGFX_INCLUDE_DIR) + SET(OSGFX_FOUND "YES") +ENDIF(OSGFX_LIBRARY AND OSGFX_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgGA.cmake b/CMakeLua/Modules/FindosgGA.cmake new file mode 100644 index 0000000..a9dc863 --- /dev/null +++ b/CMakeLua/Modules/FindosgGA.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgGA +# This module defines +# OSGGA_LIBRARY +# OSGGA_FOUND, if false, do not try to link to osgGA +# OSGGA_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGGA_INCLUDE_DIR osgGA/FlightManipulator + PATHS + $ENV{OSGGA_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGGA_INCLUDE_DIR osgGA/FlightManipulator + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGGA_LIBRARY + NAMES osgGA + PATHS + $ENV{OSGGA_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGGA_LIBRARY + NAMES osgGA + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGGA_FOUND "NO") +IF(OSGGA_LIBRARY AND OSGGA_INCLUDE_DIR) + SET(OSGGA_FOUND "YES") +ENDIF(OSGGA_LIBRARY AND OSGGA_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgIntrospection.cmake b/CMakeLua/Modules/FindosgIntrospection.cmake new file mode 100644 index 0000000..270f5f8 --- /dev/null +++ b/CMakeLua/Modules/FindosgIntrospection.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgIntrospection +# This module defines +# OSGINTROSPECTION_LIBRARY +# OSGINTROSPECTION_FOUND, if false, do not try to link to osgIntrospection +# OSGINTROSPECTION_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGINTROSPECTION_INCLUDE_DIR osgIntrospection/Reflection + PATHS + $ENV{OSGINTROSPECTION_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGINTROSPECTION_INCLUDE_DIR osgIntrospection/Reflection + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGINTROSPECTION_LIBRARY + NAMES osgIntrospection + PATHS + $ENV{OSGINTROSPECTION_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGINTROSPECTION_LIBRARY + NAMES osgIntrospection + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGINTROSPECTION_FOUND "NO") +IF(OSGINTROSPECTION_LIBRARY AND OSGINTROSPECTION_INCLUDE_DIR) + SET(OSGINTROSPECTION_FOUND "YES") +ENDIF(OSGINTROSPECTION_LIBRARY AND OSGINTROSPECTION_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgManipulator.cmake b/CMakeLua/Modules/FindosgManipulator.cmake new file mode 100644 index 0000000..f76e727 --- /dev/null +++ b/CMakeLua/Modules/FindosgManipulator.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgManipulator +# This module defines +# OSG_LIBRARY +# OSGMANIPULATOR_FOUND, if false, do not try to link to osgManipulator +# OSGMANIPULATOR_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGMANIPULATOR_INCLUDE_DIR osgManipulator/TrackballDragger + PATHS + $ENV{OSGMANIPULATOR_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGMANIPULATOR_INCLUDE_DIR osgManipulator/TrackballDragger + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGMANIPULATOR_LIBRARY + NAMES osgManipulator + PATHS + $ENV{OSGMANIPULATOR_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGMANIPULATOR_LIBRARY + NAMES osgManipulator + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGMANIPULATOR_FOUND "NO") +IF(OSGMANIPULATOR_LIBRARY AND OSGMANIPULATOR_INCLUDE_DIR) + SET(OSGMANIPULATOR_FOUND "YES") +ENDIF(OSGMANIPULATOR_LIBRARY AND OSGMANIPULATOR_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgParticle.cmake b/CMakeLua/Modules/FindosgParticle.cmake new file mode 100644 index 0000000..a6b4bf9 --- /dev/null +++ b/CMakeLua/Modules/FindosgParticle.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgParticle +# This module defines +# OSGPARTICLE_LIBRARY +# OSGPARTICLE_FOUND, if false, do not try to link to osgParticle +# OSGPARTICLE_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGPARTICLE_INCLUDE_DIR osgParticle/FireEffect + PATHS + $ENV{OSGPARTICLE_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGPARTICLE_INCLUDE_DIR osgParticle/FireEffect + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGPARTICLE_LIBRARY + NAMES osgParticle + PATHS + $ENV{OSGPARTICLE_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGPARTICLE_LIBRARY + NAMES osgParticle + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGPARTICLE_FOUND "NO") +IF(OSGPARTICLE_LIBRARY AND OSGPARTICLE_INCLUDE_DIR) + SET(OSGPARTICLE_FOUND "YES") +ENDIF(OSGPARTICLE_LIBRARY AND OSGPARTICLE_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgProducer.cmake b/CMakeLua/Modules/FindosgProducer.cmake new file mode 100644 index 0000000..7ff3292 --- /dev/null +++ b/CMakeLua/Modules/FindosgProducer.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgProducer +# This module defines +# OSGPRODUCER_LIBRARY +# OSGPRODUCER_FOUND, if false, do not try to link to osgProducer +# OSGPRODUCER_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGPRODUCER_INCLUDE_DIR osgProducer/OsgSceneHandler + PATHS + $ENV{OSGPRODUCER_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGPRODUCER_INCLUDE_DIR osgProducer/OsgSceneHandler + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGPRODUCER_LIBRARY + NAMES osgProducer + PATHS + $ENV{OSGPRODUCER_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGPRODUCER_LIBRARY + NAMES osgProducer + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGPRODUCER_FOUND "NO") +IF(OSGPRODUCER_LIBRARY AND OSGPRODUCER_INCLUDE_DIR) + SET(OSGPRODUCER_FOUND "YES") +ENDIF(OSGPRODUCER_LIBRARY AND OSGPRODUCER_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgShadow.cmake b/CMakeLua/Modules/FindosgShadow.cmake new file mode 100644 index 0000000..65a2336 --- /dev/null +++ b/CMakeLua/Modules/FindosgShadow.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgShadow +# This module defines +# OSGSHADOW_LIBRARY +# OSGSHADOW_FOUND, if false, do not try to link to osgShadow +# OSGSHADOW_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGSHADOW_INCLUDE_DIR osgShadow/ShadowTexture + PATHS + $ENV{OSGSHADOW_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGSHADOW_INCLUDE_DIR osgShadow/ShadowTexture + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGSHADOW_LIBRARY + NAMES osgShadow + PATHS + $ENV{OSGSHADOW_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGSHADOW_LIBRARY + NAMES osgShadow + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGSHADOW_FOUND "NO") +IF(OSGSHADOW_LIBRARY AND OSGSHADOW_INCLUDE_DIR) + SET(OSGSHADOW_FOUND "YES") +ENDIF(OSGSHADOW_LIBRARY AND OSGSHADOW_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgSim.cmake b/CMakeLua/Modules/FindosgSim.cmake new file mode 100644 index 0000000..4bff328 --- /dev/null +++ b/CMakeLua/Modules/FindosgSim.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgSim +# This module defines +# OSGSIM_LIBRARY +# OSGSIM_FOUND, if false, do not try to link to osgSim +# OSGSIM_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGSIM_INCLUDE_DIR osgSim/ImpostorSprite + PATHS + $ENV{OSGSIM_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGSIM_INCLUDE_DIR osgSim/ImpostorSprite + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGSIM_LIBRARY + NAMES osgSim + PATHS + $ENV{OSGSIM_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGSIM_LIBRARY + NAMES osgSim + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGSIM_FOUND "NO") +IF(OSGSIM_LIBRARY AND OSGSIM_INCLUDE_DIR) + SET(OSGSIM_FOUND "YES") +ENDIF(OSGSIM_LIBRARY AND OSGSIM_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgTerrain.cmake b/CMakeLua/Modules/FindosgTerrain.cmake new file mode 100644 index 0000000..fcf7489 --- /dev/null +++ b/CMakeLua/Modules/FindosgTerrain.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgTerrain +# This module defines +# OSGTERRAIN_LIBRARY +# OSGTERRAIN_FOUND, if false, do not try to link to osgTerrain +# OSGTERRAIN_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGTERRAIN_INCLUDE_DIR osgTerrain/Terrain + PATHS + $ENV{OSGTERRAIN_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGTERRAIN_INCLUDE_DIR osgTerrain/Terrain + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGTERRAIN_LIBRARY + NAMES osgTerrain + PATHS + $ENV{OSGTERRAIN_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGTERRAIN_LIBRARY + NAMES osgTerrain + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGTERRAIN_FOUND "NO") +IF(OSGTERRAIN_LIBRARY AND OSGTERRAIN_INCLUDE_DIR) + SET(OSGTERRAIN_FOUND "YES") +ENDIF(OSGTERRAIN_LIBRARY AND OSGTERRAIN_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgText.cmake b/CMakeLua/Modules/FindosgText.cmake new file mode 100644 index 0000000..d6c3e1f --- /dev/null +++ b/CMakeLua/Modules/FindosgText.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgText +# This module defines +# OSGTEXT_LIBRARY +# OSGTEXT_FOUND, if false, do not try to link to osgText +# OSGTEXT_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGTEXT_INCLUDE_DIR osgText/Text + PATHS + $ENV{OSGTEXT_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGTEXT_INCLUDE_DIR osgText/Text + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGTEXT_LIBRARY + NAMES osgText + PATHS + $ENV{OSGTEXT_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGTEXT_LIBRARY + NAMES osgText + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGTEXT_FOUND "NO") +IF(OSGTEXT_LIBRARY AND OSGTEXT_INCLUDE_DIR) + SET(OSGTEXT_FOUND "YES") +ENDIF(OSGTEXT_LIBRARY AND OSGTEXT_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgUtil.cmake b/CMakeLua/Modules/FindosgUtil.cmake new file mode 100644 index 0000000..cbd9b8c --- /dev/null +++ b/CMakeLua/Modules/FindosgUtil.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgUtil +# This module defines +# OSGUTIL_LIBRARY +# OSGUTIL_FOUND, if false, do not try to link to osgUtil +# OSGUTIL_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGUTIL_INCLUDE_DIR osgUtil/SceneView + PATHS + $ENV{OSGUTIL_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGUTIL_INCLUDE_DIR osgUtil/SceneView + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGUTIL_LIBRARY + NAMES osgUtil + PATHS + $ENV{OSGUTIL_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGUTIL_LIBRARY + NAMES osgUtil + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGUTIL_FOUND "NO") +IF(OSGUTIL_LIBRARY AND OSGUTIL_INCLUDE_DIR) + SET(OSGUTIL_FOUND "YES") +ENDIF(OSGUTIL_LIBRARY AND OSGUTIL_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindosgViewer.cmake b/CMakeLua/Modules/FindosgViewer.cmake new file mode 100644 index 0000000..b9efd47 --- /dev/null +++ b/CMakeLua/Modules/FindosgViewer.cmake @@ -0,0 +1,81 @@ +# This is part of the Findosg* suite used to find OpenSceneGraph components. +# Each component is separate and you must opt in to each module. You must +# also opt into OpenGL and OpenThreads (and Producer if needed) as these +# modules won't do it for you. This is to allow you control over your own +# system piece by piece in case you need to opt out of certain components +# or change the Find behavior for a particular module (perhaps because the +# default FindOpenGL.cmake module doesn't work with your system as an +# example). +# If you want to use a more convenient module that includes everything, +# use the FindOpenSceneGraph.cmake instead of the Findosg*.cmake modules. +# +# Locate osgViewer +# This module defines +# OSGVIEWER_LIBRARY +# OSGVIEWER_FOUND, if false, do not try to link to osgViewer +# OSGVIEWER_INCLUDE_DIR, where to find the headers +# +# $OSGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OSGDIR +# used in building osg. +# +# Created by Eric Wing. + +# Header files are presumed to be included like +# #include +# #include + +# Try the user's environment request before anything else. +FIND_PATH(OSGVIEWER_INCLUDE_DIR osgViewer/Viewer + PATHS + $ENV{OSGVIEWER_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) + +FIND_PATH(OSGVIEWER_INCLUDE_DIR osgViewer/Viewer + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT] + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT] + PATH_SUFFIXES include +) + +FIND_LIBRARY(OSGVIEWER_LIBRARY + NAMES osgViewer + PATHS + $ENV{OSGVIEWER_DIR} + $ENV{OSG_DIR} + $ENV{OSGDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) + +FIND_LIBRARY(OSGVIEWER_LIBRARY + NAMES osgViewer + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) + +SET(OSGVIEWER_FOUND "NO") +IF(OSGVIEWER_LIBRARY AND OSGVIEWER_INCLUDE_DIR) + SET(OSGVIEWER_FOUND "YES") +ENDIF(OSGVIEWER_LIBRARY AND OSGVIEWER_INCLUDE_DIR) + diff --git a/CMakeLua/Modules/FindwxWidgets.cmake b/CMakeLua/Modules/FindwxWidgets.cmake new file mode 100755 index 0000000..07dd29f --- /dev/null +++ b/CMakeLua/Modules/FindwxWidgets.cmake @@ -0,0 +1,957 @@ +# - Find a wxWidgets (a.k.a., wxWindows) installation. +# This module finds if wxWidgets is installed and selects a default +# configuration to use. wxWidgets is a modular library. To specify the +# modules that you will use, you need to name them as components to +# the package: +# +# FIND_PACKAGE(wxWidgets COMPONENTS base core ...) +# +# There are two search branches: a windows style and a unix style. For +# windows, the following variables are searched for and set to +# defaults in case of multiple choices. Change them if the defaults +# are not desired (i.e., these are the only variables you should +# change to select a configuration): +# +# wxWidgets_ROOT_DIR - Base wxWidgets directory +# (e.g., C:/wxWidgets-2.6.3). +# wxWidgets_LIB_DIR - Path to wxWidgets libraries +# (e.g., C:/wxWidgets-2.6.3/lib/vc_lib). +# wxWidgets_CONFIGURATION - Configuration to use +# (e.g., msw, mswd, mswu, mswunivud, etc.) +# +# For unix style it uses the wx-config utility. You can select between +# debug/release, unicode/ansi, universal/non-universal, and +# static/shared in the QtDialog or ccmake interfaces by turning ON/OFF +# the following variables: +# +# wxWidgets_USE_DEBUG +# wxWidgets_USE_UNICODE +# wxWidgets_USE_UNIVERSAL +# wxWidgets_USE_STATIC +# +# The following are set after the configuration is done for both +# windows and unix style: +# +# wxWidgets_FOUND - Set to TRUE if wxWidgets was found. +# wxWidgets_INCLUDE_DIRS - Include directories for WIN32 +# i.e., where to find "wx/wx.h" and +# "wx/setup.h"; possibly empty for unices. +# wxWidgets_LIBRARIES - Path to the wxWidgets libraries. +# wxWidgets_LIBRARY_DIRS - compile time link dirs, useful for +# rpath on UNIX. Typically an empty string +# in WIN32 environment. +# wxWidgets_DEFINITIONS - Contains defines required to compile/link +# against WX, e.g. -DWXUSINGDLL +# wxWidgets_CXX_FLAGS - Include dirs and ompiler flags for +# unices, empty on WIN32. Esentially +# "`wx-config --cxxflags`". +# wxWidgets_USE_FILE - Convenience include file. +# +# Sample usage: +# FIND_PACKAGE(wxWidgets COMPONENTS base core gl net) +# IF(wxWidgets_FOUND) +# INCLUDE(${wxWidgets_USE_FILE}) +# # and for each of your dependant executable/library targets: +# TARGET_LINK_LIBRARIES( ${wxWidgets_LIBRARIES}) +# ENDIF(wxWidgets_FOUND) +# +# If wxWidgets is required (i.e., not an optional part): +# FIND_PACKAGE(wxWidgets REQUIRED base core gl net) +# INCLUDE(${wxWidgets_USE_FILE}) +# # and for each of your dependant executable/library targets: +# TARGET_LINK_LIBRARIES( ${wxWidgets_LIBRARIES}) + +# +# FIXME: check this and provide a correct sample usage... +# Remember to connect back to the upper text. +# Sample usage with monolithic wx build: +# +# FIND_PACKAGE(wxWidgets COMPONENTS mono) +# ... + + +# NOTES +# +# This module has been tested on the WIN32 platform with wxWidgets +# 2.6.2, 2.6.3, and 2.5.3. However, it has been designed to +# easily extend support to all possible builds, e.g., static/shared, +# debug/release, unicode, universal, multilib/monolithic, etc.. +# +# If you want to use the module and your build type is not supported +# out-of-the-box, please contact me to exchange information on how +# your system is setup and I'll try to add support for it. +# +# AUTHOR +# +# Miguel A. Figueroa-Villanueva (miguelf at ieee dot org). +# Jan Woetzel (jw at mip.informatik.uni-kiel.de). +# +# Based on previous works of: +# Jan Woetzel (FindwxWindows.cmake), +# Jorgen Bodde and Jerry Fath (FindwxWin.cmake). + +# TODO/ideas +# +# (1) Option/Setting to use all available wx libs +# In contrast to expert developer who lists the +# minimal set of required libs in wxWidgets_USE_LIBS +# there is the newbie user: +# - who just wants to link against WX with more 'magic' +# - doesn't know the internal structure of WX or how it was built, +# in particular if it is monolithic or not +# - want to link against all available WX libs +# Basically, the intent here is to mimic what wx-config would do by +# default (i.e., `wx-config --libs`). +# +# Possible solution: +# Add a reserved keyword "std" that initializes to what wx-config +# would default to. If the user has not set the wxWidgets_USE_LIBS, +# default to "std" instead of "base core" as it is now. To implement +# "std" will basically boil down to a FOR_EACH lib-FOUND, but maybe +# checking whether a minimal set was found. + + +# FIXME: This and all the DBG_MSG calls should be removed after the +# module stabilizes. +# +# Helper macro to control the debugging output globally. There are +# two versions for controlling how verbose your output should be. +MACRO(DBG_MSG _MSG) +# MESSAGE(STATUS +# "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") +ENDMACRO(DBG_MSG) +MACRO(DBG_MSG_V _MSG) +# MESSAGE(STATUS +# "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") +ENDMACRO(DBG_MSG_V) + +# Clear return values in case the module is loaded more than once. +SET(wxWidgets_FOUND FALSE) +SET(wxWidgets_INCLUDE_DIRS "") +SET(wxWidgets_LIBRARIES "") +SET(wxWidgets_LIBRARY_DIRS "") +SET(wxWidgets_CXX_FLAGS "") + +# DEPRECATED: This is a patch to support the DEPRECATED use of +# wxWidgets_USE_LIBS. +# +# If wxWidgets_USE_LIBS is set: +# - if using , then override wxWidgets_USE_LIBS +# - else set wxWidgets_FIND_COMPONENTS to wxWidgets_USE_LIBS +IF(wxWidgets_USE_LIBS AND NOT wxWidgets_FIND_COMPONENTS) + SET(wxWidgets_FIND_COMPONENTS ${wxWidgets_USE_LIBS}) +ENDIF(wxWidgets_USE_LIBS AND NOT wxWidgets_FIND_COMPONENTS) +DBG_MSG("wxWidgets_FIND_COMPONENTS : ${wxWidgets_FIND_COMPONENTS}") + +# Add the convenience use file if available. +# +# Get dir of this file which may reside in: +# - CMAKE_MAKE_ROOT/Modules on CMake installation +# - CMAKE_MODULE_PATH if user prefers his own specialized version +SET(wxWidgets_USE_FILE "") +GET_FILENAME_COMPONENT( + wxWidgets_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) +# Prefer an existing customized version, but the user might override +# the FindwxWidgets module and not the UsewxWidgets one. +IF(EXISTS "${wxWidgets_CURRENT_LIST_DIR}/UsewxWidgets.cmake") + SET(wxWidgets_USE_FILE + "${wxWidgets_CURRENT_LIST_DIR}/UsewxWidgets.cmake") +ELSE(EXISTS "${wxWidgets_CURRENT_LIST_DIR}/UsewxWidgets.cmake") + SET(wxWidgets_USE_FILE UsewxWidgets.cmake) +ENDIF(EXISTS "${wxWidgets_CURRENT_LIST_DIR}/UsewxWidgets.cmake") + +#===================================================================== +#===================================================================== +IF(WIN32) + SET(WIN32_STYLE_FIND 1) +ENDIF(WIN32) +IF(MINGW) + SET(WIN32_STYLE_FIND 0) + SET(UNIX_STYLE_FIND 1) +ENDIF(MINGW) +IF(UNIX) + SET(UNIX_STYLE_FIND 1) +ENDIF(UNIX) + +#===================================================================== +# WIN32_STYLE_FIND +#===================================================================== +IF(WIN32_STYLE_FIND) + # Useful common wx libs needed by almost all components. + SET(wxWidgets_COMMON_LIBRARIES png tiff jpeg zlib regex expat) + + # DEPRECATED: Use FIND_PACKAGE(wxWidgets COMPONENTS mono) instead. + IF(NOT wxWidgets_FIND_COMPONENTS) + IF(wxWidgets_USE_MONOLITHIC) + SET(wxWidgets_FIND_COMPONENTS mono) + ELSE(wxWidgets_USE_MONOLITHIC) + SET(wxWidgets_FIND_COMPONENTS base core) # this is default + ENDIF(wxWidgets_USE_MONOLITHIC) + ENDIF(NOT wxWidgets_FIND_COMPONENTS) + + # Always add the common required libs. + LIST(APPEND wxWidgets_FIND_COMPONENTS ${wxWidgets_COMMON_LIBRARIES}) + + #------------------------------------------------------------------- + # WIN32: Helper MACROS + #------------------------------------------------------------------- + # + # Get filename components for a configuration. For example, + # if _CONFIGURATION = mswunivud, then _UNV=univ, _UCD=u _DBG=d + # if _CONFIGURATION = mswu, then _UNV="", _UCD=u _DBG="" + # + MACRO(WX_GET_NAME_COMPONENTS _CONFIGURATION _UNV _UCD _DBG) + STRING(REGEX MATCH "univ" ${_UNV} "${_CONFIGURATION}") + STRING(REGEX REPLACE "msw.*(u)[d]*$" "u" ${_UCD} "${_CONFIGURATION}") + IF(${_UCD} STREQUAL ${_CONFIGURATION}) + SET(${_UCD} "") + ENDIF(${_UCD} STREQUAL ${_CONFIGURATION}) + STRING(REGEX MATCH "d$" ${_DBG} "${_CONFIGURATION}") + ENDMACRO(WX_GET_NAME_COMPONENTS) + + # + # Find libraries associated to a configuration. + # + MACRO(WX_FIND_LIBS _UNV _UCD _DBG) + DBG_MSG_V("m_unv = ${_UNV}") + DBG_MSG_V("m_ucd = ${_UCD}") + DBG_MSG_V("m_dbg = ${_DBG}") + + # FIXME: What if both regex libs are available. regex should be + # found outside the loop and only wx${LIB}${_UCD}${_DBG}. + # Find wxWidgets common libraries. + FOREACH(LIB ${wxWidgets_COMMON_LIBRARIES}) + FIND_LIBRARY(WX_${LIB}${_DBG} + NAMES + wx${LIB}${_UCD}${_DBG} # for regex + wx${LIB}${_DBG} + PATHS ${WX_LIB_DIR} + NO_DEFAULT_PATH + ) + MARK_AS_ADVANCED(WX_${LIB}${_DBG}) + ENDFOREACH(LIB) + + # Find wxWidgets multilib base libraries. + FIND_LIBRARY(WX_base${_DBG} + NAMES + wxbase29${_UCD}${_DBG} + wxbase28${_UCD}${_DBG} + wxbase27${_UCD}${_DBG} + wxbase26${_UCD}${_DBG} + wxbase25${_UCD}${_DBG} + PATHS ${WX_LIB_DIR} + NO_DEFAULT_PATH + ) + MARK_AS_ADVANCED(WX_base${_DBG}) + FOREACH(LIB net odbc xml) + FIND_LIBRARY(WX_${LIB}${_DBG} + NAMES + wxbase29${_UCD}${_DBG}_${LIB} + wxbase28${_UCD}${_DBG}_${LIB} + wxbase27${_UCD}${_DBG}_${LIB} + wxbase26${_UCD}${_DBG}_${LIB} + wxbase25${_UCD}${_DBG}_${LIB} + PATHS ${WX_LIB_DIR} + NO_DEFAULT_PATH + ) + MARK_AS_ADVANCED(WX_${LIB}${_DBG}) + ENDFOREACH(LIB) + + # Find wxWidgets monolithic library. + FIND_LIBRARY(WX_mono${_DBG} + NAMES + wxmsw${_UNV}29${_UCD}${_DBG} + wxmsw${_UNV}28${_UCD}${_DBG} + wxmsw${_UNV}27${_UCD}${_DBG} + wxmsw${_UNV}26${_UCD}${_DBG} + wxmsw${_UNV}25${_UCD}${_DBG} + PATHS ${WX_LIB_DIR} + NO_DEFAULT_PATH + ) + MARK_AS_ADVANCED(WX_mono${_DBG}) + + # Find wxWidgets multilib libraries. + FOREACH(LIB core adv aui html media xrc dbgrid gl qa) + FIND_LIBRARY(WX_${LIB}${_DBG} + NAMES + wxmsw${_UNV}29${_UCD}${_DBG}_${LIB} + wxmsw${_UNV}28${_UCD}${_DBG}_${LIB} + wxmsw${_UNV}27${_UCD}${_DBG}_${LIB} + wxmsw${_UNV}26${_UCD}${_DBG}_${LIB} + wxmsw${_UNV}25${_UCD}${_DBG}_${LIB} + PATHS ${WX_LIB_DIR} + NO_DEFAULT_PATH + ) + MARK_AS_ADVANCED(WX_${LIB}${_DBG}) + ENDFOREACH(LIB) + ENDMACRO(WX_FIND_LIBS) + + # + # Clear all library paths, so that FIND_LIBRARY refinds them. + # + # Clear a lib, reset its found flag, and mark as advanced. + MACRO(WX_CLEAR_LIB _LIB) + SET(${_LIB} "${_LIB}-NOTFOUND" CACHE FILEPATH "Cleared." FORCE) + SET(${_LIB}_FOUND FALSE) + MARK_AS_ADVANCED(${_LIB}) + ENDMACRO(WX_CLEAR_LIB) + # Clear all debug or release library paths (arguments are "d" or ""). + MACRO(WX_CLEAR_ALL_LIBS _DBG) + # Clear wxWidgets common libraries. + FOREACH(LIB ${wxWidgets_COMMON_LIBRARIES}) + WX_CLEAR_LIB(WX_${LIB}${_DBG}) + ENDFOREACH(LIB) + + # Clear wxWidgets multilib base libraries. + WX_CLEAR_LIB(WX_base${_DBG}) + FOREACH(LIB net odbc xml) + WX_CLEAR_LIB(WX_${LIB}${_DBG}) + ENDFOREACH(LIB) + + # Clear wxWidgets monolithic library. + WX_CLEAR_LIB(WX_mono${_DBG}) + + # Clear wxWidgets multilib libraries. + FOREACH(LIB core adv aui html media xrc dbgrid gl qa) + WX_CLEAR_LIB(WX_${LIB}${_DBG}) + ENDFOREACH(LIB) + ENDMACRO(WX_CLEAR_ALL_LIBS) + # Clear all wxWidgets debug libraries. + MACRO(WX_CLEAR_ALL_DBG_LIBS) + WX_CLEAR_ALL_LIBS("d") + ENDMACRO(WX_CLEAR_ALL_DBG_LIBS) + # Clear all wxWidgets release libraries. + MACRO(WX_CLEAR_ALL_REL_LIBS) + WX_CLEAR_ALL_LIBS("") + ENDMACRO(WX_CLEAR_ALL_REL_LIBS) + + # + # Set the wxWidgets_LIBRARIES variable. + # Also, Sets output variable wxWidgets_FOUND to FALSE if it fails. + # + MACRO(WX_SET_LIBRARIES _LIBS _DBG) + DBG_MSG_V("Looking for ${${_LIBS}}") + IF(WX_USE_REL_AND_DBG) + FOREACH(LIB ${${_LIBS}}) + DBG_MSG_V("Searching for ${LIB} and ${LIB}d") + DBG_MSG_V("WX_${LIB} : ${WX_${LIB}}") + DBG_MSG_V("WX_${LIB}d : ${WX_${LIB}d}") + IF(WX_${LIB} AND WX_${LIB}d) + DBG_MSG_V("Found ${LIB} and ${LIB}d") + LIST(APPEND wxWidgets_LIBRARIES + debug ${WX_${LIB}d} optimized ${WX_${LIB}} + ) + ELSE(WX_${LIB} AND WX_${LIB}d) + DBG_MSG_V("- not found due to missing WX_${LIB}=${WX_${LIB}} or WX_${LIB}d=${WX_${LIB}d}") + SET(wxWidgets_FOUND FALSE) + ENDIF(WX_${LIB} AND WX_${LIB}d) + ENDFOREACH(LIB) + ELSE(WX_USE_REL_AND_DBG) + FOREACH(LIB ${${_LIBS}}) + DBG_MSG_V("Searching for ${LIB}${_DBG}") + DBG_MSG_V("WX_${LIB}${_DBG} : ${WX_${LIB}${_DBG}}") + IF(WX_${LIB}${_DBG}) + DBG_MSG_V("Found ${LIB}${_DBG}") + LIST(APPEND wxWidgets_LIBRARIES ${WX_${LIB}${_DBG}}) + ELSE(WX_${LIB}${_DBG}) + DBG_MSG_V( + "- not found due to missing WX_${LIB}${_DBG}=${WX_${LIB}${_DBG}}") + SET(wxWidgets_FOUND FALSE) + ENDIF(WX_${LIB}${_DBG}) + ENDFOREACH(LIB) + ENDIF(WX_USE_REL_AND_DBG) + + DBG_MSG_V("OpenGL") + LIST(FIND ${_LIBS} gl WX_USE_GL) + IF(NOT WX_USE_GL EQUAL -1) + DBG_MSG_V("- is required.") + LIST(APPEND wxWidgets_LIBRARIES opengl32 glu32) + ENDIF(NOT WX_USE_GL EQUAL -1) + + LIST(APPEND wxWidgets_LIBRARIES winmm comctl32 rpcrt4 wsock32) + ENDMACRO(WX_SET_LIBRARIES) + + #------------------------------------------------------------------- + # WIN32: Start actual work. + #------------------------------------------------------------------- + + # Look for an installation tree. + FIND_PATH(wxWidgets_ROOT_DIR + NAMES include/wx/wx.h + PATHS + $ENV{wxWidgets_ROOT_DIR} + $ENV{WXWIN} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWidgets_is1;Inno Setup: App Path]" # WX 2.6.x + C:/ + D:/ + $ENV{ProgramFiles} + PATH_SUFFIXES + wxWidgets-2.8.7 + wxWidgets-2.8.6 + wxWidgets-2.8.5 + wxWidgets-2.8.4 + wxWidgets-2.8.3 + wxWidgets-2.8.2 + wxWidgets-2.8.1 + wxWidgets-2.8.0 + wxWidgets-2.7.4 + wxWidgets-2.7.3 + wxWidgets-2.7.2 + wxWidgest-2.7.1 + wxWidgets-2.7.0 + wxWidgets-2.7.0-1 + wxWidgets-2.6.3 + wxWidgets-2.6.2 + wxWidgets-2.6.1 + wxWidgets-2.5.4 + wxWidgets-2.5.3 + wxWidgets-2.5.2 + wxWidgets-2.5.1 + wxWidgets + DOC "wxWidgets base/installation directory?" + ) + + # If wxWidgets_ROOT_DIR changed, clear lib dir. + IF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR) + SET(WX_ROOT_DIR ${wxWidgets_ROOT_DIR} + CACHE INTERNAL "wxWidgets_ROOT_DIR") + SET(wxWidgets_LIB_DIR "wxWidgets_LIB_DIR-NOTFOUND" + CACHE PATH "Cleared." FORCE) + ENDIF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR) + + IF(WX_ROOT_DIR) + # Select one default tree inside the already determined wx tree. + # Prefer static/shared order usually consistent with build + # settings. + IF(BUILD_SHARED_LIBS) + FIND_PATH(wxWidgets_LIB_DIR + NAMES wxpng.lib wxpngd.lib + PATHS + ${WX_ROOT_DIR}/lib/vc_dll # prefer shared + ${WX_ROOT_DIR}/lib/vc_lib + DOC "Path to wxWidgets libraries?" + NO_DEFAULT_PATH + ) + ELSE(BUILD_SHARED_LIBS) + FIND_PATH(wxWidgets_LIB_DIR + NAMES wxpng.lib wxpngd.lib + PATHS + ${WX_ROOT_DIR}/lib/vc_lib # prefer static + ${WX_ROOT_DIR}/lib/vc_dll + DOC "Path to wxWidgets libraries?" + NO_DEFAULT_PATH + ) + ENDIF(BUILD_SHARED_LIBS) + + # If wxWidgets_LIB_DIR changed, clear all libraries. + IF(NOT WX_LIB_DIR STREQUAL wxWidgets_LIB_DIR) + SET(WX_LIB_DIR ${wxWidgets_LIB_DIR} CACHE INTERNAL "wxWidgets_LIB_DIR") + WX_CLEAR_ALL_DBG_LIBS() + WX_CLEAR_ALL_REL_LIBS() + ENDIF(NOT WX_LIB_DIR STREQUAL wxWidgets_LIB_DIR) + + IF(WX_LIB_DIR) + SET(wxWidgets_FOUND TRUE) + + # If building shared libs, define WXUSINGDLL to use dllimport. + IF(WX_LIB_DIR MATCHES ".*[dD][lL][lL].*") + SET(wxWidgets_DEFINITIONS "-DWXUSINGDLL") + DBG_MSG_V("detected SHARED/DLL tree WX_LIB_DIR=${WX_LIB_DIR}") + ENDIF(WX_LIB_DIR MATCHES ".*[dD][lL][lL].*") + + # Search for available configuration types. + FOREACH(CFG mswunivud mswunivd mswud mswd mswunivu mswuniv mswu msw) + SET(WX_${CFG}_FOUND FALSE) + IF(EXISTS ${WX_LIB_DIR}/${CFG}) + LIST(APPEND WX_CONFIGURATION_LIST ${CFG}) + SET(WX_${CFG}_FOUND TRUE) + SET(WX_CONFIGURATION ${CFG}) + ENDIF(EXISTS ${WX_LIB_DIR}/${CFG}) + ENDFOREACH(CFG) + DBG_MSG_V("WX_CONFIGURATION_LIST=${WX_CONFIGURATION_LIST}") + + IF(WX_CONFIGURATION) + # If the selected configuration wasn't found force the default + # one. Otherwise, use it but still force a refresh for + # updating the doc string with the current list of available + # configurations. + IF(NOT WX_${wxWidgets_CONFIGURATION}_FOUND) + SET(wxWidgets_CONFIGURATION ${WX_CONFIGURATION} CACHE STRING + "Set wxWidgets configuration (${WX_CONFIGURATION_LIST})" FORCE) + ELSE(NOT WX_${wxWidgets_CONFIGURATION}_FOUND) + SET(wxWidgets_CONFIGURATION ${wxWidgets_CONFIGURATION} CACHE STRING + "Set wxWidgets configuration (${WX_CONFIGURATION_LIST})" FORCE) + ENDIF(NOT WX_${wxWidgets_CONFIGURATION}_FOUND) + + # If release config selected, and both release/debug exist. + IF(WX_${wxWidgets_CONFIGURATION}d_FOUND) + OPTION(wxWidgets_USE_REL_AND_DBG + "Use release and debug configurations?" TRUE) + SET(WX_USE_REL_AND_DBG ${wxWidgets_USE_REL_AND_DBG}) + ELSE(WX_${wxWidgets_CONFIGURATION}d_FOUND) + # If the option exists (already in cache), force it false. + IF(wxWidgets_USE_REL_AND_DBG) + SET(wxWidgets_USE_REL_AND_DBG FALSE CACHE BOOL + "No ${wxWidgets_CONFIGURATION}d found." FORCE) + ENDIF(wxWidgets_USE_REL_AND_DBG) + SET(WX_USE_REL_AND_DBG FALSE) + ENDIF(WX_${wxWidgets_CONFIGURATION}d_FOUND) + + # Get configuration parameters from the name. + WX_GET_NAME_COMPONENTS(${wxWidgets_CONFIGURATION} UNV UCD DBG) + + # Set wxWidgets main include directory. + IF(EXISTS ${WX_ROOT_DIR}/include/wx/wx.h) + SET(wxWidgets_INCLUDE_DIRS ${WX_ROOT_DIR}/include) + ELSE(EXISTS ${WX_ROOT_DIR}/include/wx/wx.h) + DBG_MSG("wxWidgets_FOUND FALSE because WX_ROOT_DIR=${WX_ROOT_DIR} has no ${WX_ROOT_DIR}/include/wx/wx.h") + SET(wxWidgets_FOUND FALSE) + ENDIF(EXISTS ${WX_ROOT_DIR}/include/wx/wx.h) + + # Set wxWidgets lib setup include directory. + IF(EXISTS ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h) + LIST(APPEND wxWidgets_INCLUDE_DIRS + ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}) + ELSE(EXISTS ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h) + DBG_MSG("WXWIDGET_FOUND FALSE because ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h does not exists.") + SET(wxWidgets_FOUND FALSE) + ENDIF(EXISTS ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h) + + # Find wxWidgets libraries. + WX_FIND_LIBS("${UNV}" "${UCD}" "${DBG}") + IF(WX_USE_REL_AND_DBG) + WX_FIND_LIBS("${UNV}" "${UCD}" "d") + ENDIF(WX_USE_REL_AND_DBG) + + # Settings for requested libs (i.e., include dir, libraries, etc.). + WX_SET_LIBRARIES(wxWidgets_FIND_COMPONENTS "${DBG}") + + ENDIF(WX_CONFIGURATION) + ENDIF(WX_LIB_DIR) + ENDIF(WX_ROOT_DIR) + +#===================================================================== +# UNIX_STYLE_FIND +#===================================================================== +ELSE(WIN32_STYLE_FIND) + IF(UNIX_STYLE_FIND) + #----------------------------------------------------------------- + # UNIX: Helper MACROS + #----------------------------------------------------------------- + # + # Set the default values based on "wx-config --selected-config". + # + MACRO(WX_CONFIG_SELECT_GET_DEFAULT) + EXECUTE_PROCESS( + COMMAND sh "${wxWidgets_CONFIG_EXECUTABLE}" --selected-config + OUTPUT_VARIABLE _wx_selected_config + RESULT_VARIABLE _wx_result + ERROR_QUIET + ) + IF(_wx_result EQUAL 0) + FOREACH(_opt_name debug static unicode universal) + STRING(TOUPPER ${_opt_name} _upper_opt_name) + IF(_wx_selected_config MATCHES ".*${_opt_name}.*") + SET(wxWidgets_DEFAULT_${_upper_opt_name} ON) + ELSE(_wx_selected_config MATCHES ".*${_opt_name}.*") + SET(wxWidgets_DEFAULT_${_upper_opt_name} OFF) + ENDIF(_wx_selected_config MATCHES ".*${_opt_name}.*") + ENDFOREACH(_opt_name) + ELSE(_wx_result EQUAL 0) + FOREACH(_upper_opt_name DEBUG STATIC UNICODE UNIVERSAL) + SET(wxWidgets_DEFAULT_${_upper_opt_name} OFF) + ENDFOREACH(_opt_name) + ENDIF(_wx_result EQUAL 0) + ENDMACRO(WX_CONFIG_SELECT_GET_DEFAULT) + + # + # Query a boolean configuration option to determine if the system + # has both builds available. If so, provide the selection option + # to the user. + # + MACRO(WX_CONFIG_SELECT_QUERY_BOOL _OPT_NAME _OPT_HELP) + EXECUTE_PROCESS( + COMMAND sh "${wxWidgets_CONFIG_EXECUTABLE}" --${_OPT_NAME}=yes + RESULT_VARIABLE _wx_result_yes + OUTPUT_QUIET + ERROR_QUIET + ) + EXECUTE_PROCESS( + COMMAND sh "${wxWidgets_CONFIG_EXECUTABLE}" --${_OPT_NAME}=no + RESULT_VARIABLE _wx_result_no + OUTPUT_QUIET + ERROR_QUIET + ) + STRING(TOUPPER ${_OPT_NAME} _UPPER_OPT_NAME) + IF(_wx_result_yes EQUAL 0 AND _wx_result_no EQUAL 0) + OPTION(wxWidgets_USE_${_UPPER_OPT_NAME} + ${_OPT_HELP} ${wxWidgets_DEFAULT_${_UPPER_OPT_NAME}}) + ELSE(_wx_result_yes EQUAL 0 AND _wx_result_no EQUAL 0) + # If option exists (already in cache), force to available one. + IF(DEFINED wxWidgets_USE_${_UPPER_OPT_NAME}) + IF(_wx_result_yes EQUAL 0) + SET(wxWidgets_USE_${_UPPER_OPT_NAME} ON CACHE BOOL ${_OPT_HELP} FORCE) + ELSE(_wx_result_yes EQUAL 0) + SET(wxWidgets_USE_${_UPPER_OPT_NAME} OFF CACHE BOOL ${_OPT_HELP} FORCE) + ENDIF(_wx_result_yes EQUAL 0) + ENDIF(DEFINED wxWidgets_USE_${_UPPER_OPT_NAME}) + ENDIF(_wx_result_yes EQUAL 0 AND _wx_result_no EQUAL 0) + ENDMACRO(WX_CONFIG_SELECT_QUERY_BOOL) + + # + # Set wxWidgets_SELECT_OPTIONS to wx-config options for selecting + # among multiple builds. + # + MACRO(WX_CONFIG_SELECT_SET_OPTIONS) + SET(wxWidgets_SELECT_OPTIONS "") + FOREACH(_opt_name debug static unicode universal) + STRING(TOUPPER ${_opt_name} _upper_opt_name) + IF(DEFINED wxWidgets_USE_${_upper_opt_name}) + IF(wxWidgets_USE_${_upper_opt_name}) + LIST(APPEND wxWidgets_SELECT_OPTIONS --${_opt_name}=yes) + ELSE(wxWidgets_USE_${_upper_opt_name}) + LIST(APPEND wxWidgets_SELECT_OPTIONS --${_opt_name}=no) + ENDIF(wxWidgets_USE_${_upper_opt_name}) + ENDIF(DEFINED wxWidgets_USE_${_upper_opt_name}) + ENDFOREACH(_opt_name) + ENDMACRO(WX_CONFIG_SELECT_SET_OPTIONS) + + #----------------------------------------------------------------- + # UNIX: Start actual work. + #----------------------------------------------------------------- + # Support cross-compiling, only search in the target platform. + FIND_PROGRAM(wxWidgets_CONFIG_EXECUTABLE wx-config + ONLY_CMAKE_FIND_ROOT_PATH + ) + + IF(wxWidgets_CONFIG_EXECUTABLE) + SET(wxWidgets_FOUND TRUE) + + # get defaults based on "wx-config --selected-config" + WX_CONFIG_SELECT_GET_DEFAULT() + + # for each option: if both builds are available, provide option + WX_CONFIG_SELECT_QUERY_BOOL(debug "Use debug build?") + WX_CONFIG_SELECT_QUERY_BOOL(unicode "Use unicode build?") + WX_CONFIG_SELECT_QUERY_BOOL(universal "Use universal build?") + WX_CONFIG_SELECT_QUERY_BOOL(static "Link libraries statically?") + + # process selection to set wxWidgets_SELECT_OPTIONS + WX_CONFIG_SELECT_SET_OPTIONS() + DBG_MSG("wxWidgets_SELECT_OPTIONS=${wxWidgets_SELECT_OPTIONS}") + + # run the wx-config program to get cxxflags + EXECUTE_PROCESS( + COMMAND sh "${wxWidgets_CONFIG_EXECUTABLE}" + ${wxWidgets_SELECT_OPTIONS} --cxxflags + OUTPUT_VARIABLE wxWidgets_CXX_FLAGS + RESULT_VARIABLE RET + ERROR_QUIET + ) + IF(RET EQUAL 0) + STRING(STRIP "${wxWidgets_CXX_FLAGS}" wxWidgets_CXX_FLAGS) + SEPARATE_ARGUMENTS(wxWidgets_CXX_FLAGS) + + DBG_MSG_V("wxWidgets_CXX_FLAGS=${wxWidgets_CXX_FLAGS}") + + # parse definitions from cxxflags; drop -D* from CXXFLAGS + STRING(REGEX MATCHALL "-D[^;]+" + wxWidgets_DEFINITIONS "${wxWidgets_CXX_FLAGS}") + STRING(REGEX REPLACE "-D[^;]+;" "" + wxWidgets_CXX_FLAGS "${wxWidgets_CXX_FLAGS}") + + # parse include dirs from cxxflags; drop -I prefix + STRING(REGEX MATCHALL "-I[^;]+" + wxWidgets_INCLUDE_DIRS "${wxWidgets_CXX_FLAGS}") + STRING(REGEX REPLACE "-I[^;]+;" "" + wxWidgets_CXX_FLAGS "${wxWidgets_CXX_FLAGS}") + STRING(REPLACE "-I" "" + wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}") + + DBG_MSG_V("wxWidgets_DEFINITIONS=${wxWidgets_DEFINITIONS}") + DBG_MSG_V("wxWidgets_INCLUDE_DIRS=${wxWidgets_INCLUDE_DIRS}") + DBG_MSG_V("wxWidgets_CXX_FLAGS=${wxWidgets_CXX_FLAGS}") + + ELSE(RET EQUAL 0) + SET(wxWidgets_FOUND FALSE) + DBG_MSG_V( + "${wxWidgets_CONFIG_EXECUTABLE} --cxxflags FAILED with RET=${RET}") + ENDIF(RET EQUAL 0) + + # run the wx-config program to get the libs + # - NOTE: wx-config doesn't verify that the libs requested exist + # it just produces the names. Maybe a TRY_COMPILE would + # be useful here... + STRING(REPLACE ";" "," + wxWidgets_FIND_COMPONENTS "${wxWidgets_FIND_COMPONENTS}") + EXECUTE_PROCESS( + COMMAND sh "${wxWidgets_CONFIG_EXECUTABLE}" + ${wxWidgets_SELECT_OPTIONS} --libs ${wxWidgets_FIND_COMPONENTS} + OUTPUT_VARIABLE wxWidgets_LIBRARIES + RESULT_VARIABLE RET + ERROR_QUIET + ) + IF(RET EQUAL 0) + STRING(STRIP "${wxWidgets_LIBRARIES}" wxWidgets_LIBRARIES) + SEPARATE_ARGUMENTS(wxWidgets_LIBRARIES) + STRING(REPLACE "-framework;" "-framework " + wxWidgets_LIBRARIES "${wxWidgets_LIBRARIES}") + STRING(REPLACE "-arch;" "-arch " + wxWidgets_LIBRARIES "${wxWidgets_LIBRARIES}") + STRING(REPLACE "-isysroot;" "-isysroot " + wxWidgets_LIBRARIES "${wxWidgets_LIBRARIES}") + + # extract linkdirs (-L) for rpath (i.e., LINK_DIRECTORIES) + STRING(REGEX MATCHALL "-L[^;]+" + wxWidgets_LIBRARY_DIRS "${wxWidgets_LIBRARIES}") + STRING(REPLACE "-L" "" + wxWidgets_LIBRARY_DIRS "${wxWidgets_LIBRARY_DIRS}") + + DBG_MSG_V("wxWidgets_LIBRARIES=${wxWidgets_LIBRARIES}") + DBG_MSG_V("wxWidgets_LIBRARY_DIRS=${wxWidgets_LIBRARY_DIRS}") + + ELSE(RET EQUAL 0) + SET(wxWidgets_FOUND FALSE) + DBG_MSG("${wxWidgets_CONFIG_EXECUTABLE} --libs ${wxWidgets_FIND_COMPONENTS} FAILED with RET=${RET}") + ENDIF(RET EQUAL 0) + ENDIF(wxWidgets_CONFIG_EXECUTABLE) + +#===================================================================== +# Neither UNIX_STYLE_FIND, nor WIN32_STYLE_FIND +#===================================================================== + ELSE(UNIX_STYLE_FIND) + IF(NOT wxWidgets_FIND_QUIETLY) + MESSAGE(STATUS + "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): \n" + " Platform unknown/unsupported. It's neither WIN32 nor UNIX " + "style find." + ) + ENDIF(NOT wxWidgets_FIND_QUIETLY) + ENDIF(UNIX_STYLE_FIND) +ENDIF(WIN32_STYLE_FIND) + +# Debug output: +DBG_MSG("wxWidgets_FOUND : ${wxWidgets_FOUND}") +DBG_MSG("wxWidgets_INCLUDE_DIRS : ${wxWidgets_INCLUDE_DIRS}") +DBG_MSG("wxWidgets_LIBRARY_DIRS : ${wxWidgets_LIBRARY_DIRS}") +DBG_MSG("wxWidgets_LIBRARIES : ${wxWidgets_LIBRARIES}") +DBG_MSG("wxWidgets_CXX_FLAGS : ${wxWidgets_CXX_FLAGS}") +DBG_MSG("wxWidgets_USE_FILE : ${wxWidgets_USE_FILE}") + +#===================================================================== +#===================================================================== +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(wxWidgets DEFAULT_MSG wxWidgets_FOUND) +# Maintain consistency with all other variables. +SET(wxWidgets_FOUND ${WXWIDGETS_FOUND}) + +#===================================================================== +# Macros for use in wxWidgets apps. +# - This module will not fail to find wxWidgets based on the code +# below. Hence, it's required to check for validity of: +# +# wxWidgets_wxrc_EXECUTABLE +#===================================================================== + +# Resource file compiler. +FIND_PROGRAM(wxWidgets_wxrc_EXECUTABLE wxrc + ${wxWidgets_ROOT_DIR}/utils/wxrc/vc_msw + ) + +# +# WX_SPLIT_ARGUMENTS_ON( ...) +# +# Sets and to contain arguments to the left and right, +# respectively, of . +# +# Example usage: +# FUNCTION(WXWIDGETS_ADD_RESOURCES outfiles) +# WX_SPLIT_ARGUMENTS_ON(OPTIONS wxrc_files wxrc_options ${ARGN}) +# ... +# ENDFUNCTION(WXWIDGETS_ADD_RESOURCES) +# +# WXWIDGETS_ADD_RESOURCES(sources ${xrc_files} OPTIONS -e -o file.C) +# +# NOTE: This is a generic piece of code that should be renamed to +# SPLIT_ARGUMENTS_ON and put in a file serving the same purpose as +# FindPackageStandardArgs.cmake. At the time of this writing +# FindQt4.cmake has a QT4_EXTRACT_OPTIONS, which I basically copied +# here a bit more generalized. So, there are already two find modules +# using this approach. +# +FUNCTION(WX_SPLIT_ARGUMENTS_ON _keyword _leftvar _rightvar) + # FIXME: Document that the input variables will be cleared. + #LIST(APPEND ${_leftvar} "") + #LIST(APPEND ${_rightvar} "") + SET(${_leftvar} "") + SET(${_rightvar} "") + + SET(_doing_right FALSE) + FOREACH(element ${ARGN}) + IF("${element}" STREQUAL "${_keyword}") + SET(_doing_right TRUE) + ELSE("${element}" STREQUAL "${_keyword}") + IF(_doing_right) + LIST(APPEND ${_rightvar} "${element}") + ELSE(_doing_right) + LIST(APPEND ${_leftvar} "${element}") + ENDIF(_doing_right) + ENDIF("${element}" STREQUAL "${_keyword}") + ENDFOREACH(element) + + SET(${_leftvar} ${${_leftvar}} PARENT_SCOPE) + SET(${_rightvar} ${${_rightvar}} PARENT_SCOPE) +ENDFUNCTION(WX_SPLIT_ARGUMENTS_ON) + +# +# WX_GET_DEPENDENCIES_FROM_XML( +# +# +# +# +# +# ) +# +# FIXME: Add documentation here... +# +FUNCTION(WX_GET_DEPENDENCIES_FROM_XML + _depends + _match_patt + _clean_patt + _xml_contents + _depends_path + ) + + STRING(REGEX MATCHALL + ${_match_patt} + dep_file_list + "${${_xml_contents}}" + ) + FOREACH(dep_file ${dep_file_list}) + STRING(REGEX REPLACE ${_clean_patt} "" dep_file "${dep_file}") + + # make the file have an absolute path + IF(NOT IS_ABSOLUTE "${dep_file}") + SET(dep_file "${${_depends_path}}/${dep_file}") + ENDIF(NOT IS_ABSOLUTE "${dep_file}") + + # append file to dependency list + LIST(APPEND ${_depends} "${dep_file}") + ENDFOREACH(dep_file) + + SET(${_depends} ${${_depends}} PARENT_SCOPE) +ENDFUNCTION(WX_GET_DEPENDENCIES_FROM_XML) + +# +# WXWIDGETS_ADD_RESOURCES( +# OPTIONS [NO_CPP_CODE]) +# +# Adds a custom command for resource file compilation of the +# and appends the output files to . +# +# Example usages: +# WXWIDGETS_ADD_RESOURCES(sources xrc/main_frame.xrc) +# WXWIDGETS_ADD_RESOURCES(sources ${xrc_files} OPTIONS -e -o altname.cxx) +# +FUNCTION(WXWIDGETS_ADD_RESOURCES _outfiles) + WX_SPLIT_ARGUMENTS_ON(OPTIONS rc_file_list rc_options ${ARGN}) + + # Parse files for dependencies. + SET(rc_file_list_abs "") + SET(rc_depends "") + FOREACH(rc_file ${rc_file_list}) + GET_FILENAME_COMPONENT(depends_path ${rc_file} PATH) + + GET_FILENAME_COMPONENT(rc_file_abs ${rc_file} ABSOLUTE) + LIST(APPEND rc_file_list_abs "${rc_file_abs}") + + # All files have absolute paths or paths relative to the location + # of the rc file. + FILE(READ "${rc_file_abs}" rc_file_contents) + + # get bitmap/bitmap2 files + WX_GET_DEPENDENCIES_FROM_XML( + rc_depends + "]*>" + rc_file_contents + depends_path + ) + + # get url files + WX_GET_DEPENDENCIES_FROM_XML( + rc_depends + "]*>" + rc_file_contents + depends_path + ) + + # get wxIcon files + WX_GET_DEPENDENCIES_FROM_XML( + rc_depends + "]*class=\"wxIcon\"[^<]+" + "^]*>" + rc_file_contents + depends_path + ) + ENDFOREACH(rc_file) + + # + # Parse options. + # + # If NO_CPP_CODE option specified, then produce .xrs file rather + # than a .cpp file (i.e., don't add the default --cpp-code option). + LIST(FIND rc_options NO_CPP_CODE index) + IF(index EQUAL -1) + LIST(APPEND rc_options --cpp-code) + # wxrc's default output filename for cpp code. + SET(outfile resource.cpp) + ELSE(index EQUAL -1) + LIST(REMOVE_AT rc_options ${index}) + # wxrc's default output filename for xrs file. + SET(outfile resource.xrs) + ENDIF(index EQUAL -1) + + # Get output name for use in ADD_CUSTOM_COMMAND. + # - short option scanning + LIST(FIND rc_options -o index) + IF(NOT index EQUAL -1) + MATH(EXPR filename_index "${index} + 1") + LIST(GET rc_options ${filename_index} outfile) + #LIST(REMOVE_AT rc_options ${index} ${filename_index}) + ENDIF(NOT index EQUAL -1) + # - long option scanning + STRING(REGEX MATCH "--output=[^;]*" outfile_opt "${rc_options}") + IF(outfile_opt) + STRING(REPLACE "--output=" "" outfile "${outfile_opt}") + ENDIF(outfile_opt) + #STRING(REGEX REPLACE "--output=[^;]*;?" "" rc_options "${rc_options}") + #STRING(REGEX REPLACE ";$" "" rc_options "${rc_options}") + + IF(NOT IS_ABSOLUTE "${outfile}") + SET(outfile "${CMAKE_CURRENT_BINARY_DIR}/${outfile}") + ENDIF(NOT IS_ABSOLUTE "${outfile}") + ADD_CUSTOM_COMMAND( + OUTPUT "${outfile}" + COMMAND ${wxWidgets_wxrc_EXECUTABLE} ${rc_options} ${rc_file_list_abs} + DEPENDS ${rc_file_list_abs} ${rc_depends} + ) + + # Add generated header to output file list. + LIST(FIND rc_options -e short_index) + LIST(FIND rc_options --extra-cpp-code long_index) + IF(NOT short_index EQUAL -1 OR NOT long_index EQUAL -1) + GET_FILENAME_COMPONENT(outfile_ext ${outfile} EXT) + STRING(REPLACE "${outfile_ext}" ".h" outfile_header "${outfile}") + LIST(APPEND ${_outfiles} "${outfile_header}") + SET_SOURCE_FILES_PROPERTIES( + "${outfile_header}" PROPERTIES GENERATED TRUE + ) + ENDIF(NOT short_index EQUAL -1 OR NOT long_index EQUAL -1) + + # Add generated file to output file list. + LIST(APPEND ${_outfiles} "${outfile}") + + SET(${_outfiles} ${${_outfiles}} PARENT_SCOPE) +ENDFUNCTION(WXWIDGETS_ADD_RESOURCES) diff --git a/CMakeLua/Modules/FindwxWindows.cmake b/CMakeLua/Modules/FindwxWindows.cmake new file mode 100644 index 0000000..4614e22 --- /dev/null +++ b/CMakeLua/Modules/FindwxWindows.cmake @@ -0,0 +1,693 @@ +# - Find wxWindows (wxWidgets) installation +# This module finds if wxWindows/wxWidgets is installed and determines where +# the include files and libraries are. It also determines what the name of +# the library is. +# Please note this file is DEPRECATED and replaced by FindwxWidgets.cmake. +# This code sets the following variables: +# +# WXWINDOWS_FOUND = system has WxWindows +# WXWINDOWS_LIBRARIES = path to the wxWindows libraries +# on Unix/Linux with additional +# linker flags from +# "wx-config --libs" +# CMAKE_WXWINDOWS_CXX_FLAGS = Compiler flags for wxWindows, +# essentially "`wx-config --cxxflags`" +# on Linux +# WXWINDOWS_INCLUDE_DIR = where to find "wx/wx.h" and "wx/setup.h" +# WXWINDOWS_LINK_DIRECTORIES = link directories, useful for rpath on +# Unix +# WXWINDOWS_DEFINITIONS = extra defines +# +# OPTIONS +# If you need OpenGL support please +# SET(WXWINDOWS_USE_GL 1) +# in your CMakeLists.txt *before* you include this file. +# +# HAVE_ISYSTEM - true required to replace -I by -isystem on g++ +# +# For convenience include Use_wxWindows.cmake in your project's +# CMakeLists.txt using INCLUDE(Use_wxWindows). +# +# USAGE +# SET(WXWINDOWS_USE_GL 1) +# FIND_PACKAGE(wxWindows) +# +# NOTES +# wxWidgets 2.6.x is supported for monolithic builds +# e.g. compiled in wx/build/msw dir as: +# nmake -f makefile.vc BUILD=debug SHARED=0 USE_OPENGL=1 MONOLITHIC=1 +# +# DEPRECATED +# +# CMAKE_WX_CAN_COMPILE +# WXWINDOWS_LIBRARY +# CMAKE_WX_CXX_FLAGS +# WXWINDOWS_INCLUDE_PATH +# +# AUTHOR +# Jan Woetzel (07/2003-01/2006) + + +# ------------------------------------------------------------------ +# +# -removed OPTION for CMAKE_WXWINDOWS_USE_GL. Force the developer to SET it before calling this. +# -major update for wx 2.6.2 and monolithic build option. (10/2005) +# +# STATUS +# tested with: +# cmake 1.6.7, Linux (Suse 7.3), wxWindows 2.4.0, gcc 2.95 +# cmake 1.6.7, Linux (Suse 8.2), wxWindows 2.4.0, gcc 3.3 +# cmake 1.6.7, Linux (Suse 8.2), wxWindows 2.4.1-patch1, gcc 3.3 +# cmake 1.6.7, MS Windows XP home, wxWindows 2.4.1, MS Visual Studio .net 7 2002 (static build) +# cmake 2.0.5 on Windows XP and Suse Linux 9.2 +# cmake 2.0.6 on Windows XP and Suse Linux 9.2, wxWidgets 2.6.2 MONOLITHIC build +# cmake 2.2.2 on Windows XP, MS Visual Studio .net 2003 7.1 wxWidgets 2.6.2 MONOLITHIC build +# +# TODO +# -OPTION for unicode builds +# -further testing of DLL linking under MS WIN32 +# -better support for non-monolithic builds +# + + +IF(WIN32) + SET(WIN32_STYLE_FIND 1) +ENDIF(WIN32) +IF(MINGW) + SET(WIN32_STYLE_FIND 0) + SET(UNIX_STYLE_FIND 1) +ENDIF(MINGW) +IF(UNIX) + SET(UNIX_STYLE_FIND 1) +ENDIF(UNIX) + + +IF(WIN32_STYLE_FIND) + + ## ###################################################################### + ## + ## Windows specific: + ## + ## candidates for root/base directory of wxwindows + ## should have subdirs include and lib containing include/wx/wx.h + ## fix the root dir to avoid mixing of headers/libs from different + ## versions/builds: + + SET (WXWINDOWS_POSSIBLE_ROOT_PATHS + $ENV{WXWIN} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWidgets_is1;Inno Setup: App Path]" ## WX 2.6.x + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWindows_is1;Inno Setup: App Path]" ## WX 2.4.x + C:\\wxWidgets-2.6.2 + D:\\wxWidgets-2.6.2 + C:\\wxWidgets-2.6.1 + D:\\wxWidgets-2.6.1 + C:\\wxWindows-2.4.2 + D:\\wxWindows-2.4.2 + ) + + ## WX supports monolithic and multiple smaller libs (since 2.5.x), we prefer monolithic for now. + ## monolithic = WX is built as a single big library + ## e.g. compile on WIN32 as "nmake -f makefile.vc MONOLITHIC=1 BUILD=debug SHARED=0 USE_OPENGL=1" (JW) + OPTION(WXWINDOWS_USE_MONOLITHIC "Use monolithic build of WX??" ON) + MARK_AS_ADVANCED(WXWINDOWS_USE_MONOLITHIC) + + ## GL libs used? + OPTION(WXWINDOWS_USE_GL "Use Wx with GL support(glcanvas)?" ON) + MARK_AS_ADVANCED(WXWINDOWS_USE_GL) + + + ## avoid mixing of headers and libs between multiple installed WX versions, + ## select just one tree here: + FIND_PATH(WXWINDOWS_ROOT_DIR include/wx/wx.h + ${WXWINDOWS_POSSIBLE_ROOT_PATHS} ) + # MESSAGE("DBG found WXWINDOWS_ROOT_DIR: ${WXWINDOWS_ROOT_DIR}") + + + ## find libs for combination of static/shared with release/debug + ## be careful if you add something here, + ## avoid mixing of headers and libs of different wx versions, + ## there may be multiple WX version s installed. + SET (WXWINDOWS_POSSIBLE_LIB_PATHS + "${WXWINDOWS_ROOT_DIR}/lib" + ) + + ## monolithic? + IF (WXWINDOWS_USE_MONOLITHIC) + + FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY + NAMES wx wxmsw wxmsw26 + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static release build library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY + NAMES wxd wxmswd wxmsw26d + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static debug build library" ) + + FIND_LIBRARY(WXWINDOWS_SHARED_LIBRARY + NAMES wxmsw26 wxmsw262 wxmsw24 wxmsw242 wxmsw241 wxmsw240 wx23_2 wx22_9 + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_dll" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows shared release build library" ) + + FIND_LIBRARY(WXWINDOWS_SHARED_DEBUG_LIBRARY + NAMES wxmsw26d wxmsw262d wxmsw24d wxmsw241d wxmsw240d wx23_2d wx22_9d + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_dll" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows shared debug build library " ) + + + ## + ## required for WXWINDOWS_USE_GL + ## gl lib is always build separate: + ## + FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_GL + NAMES wx_gl wxmsw_gl wxmsw26_gl + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static release build GL library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_GL + NAMES wxd_gl wxmswd_gl wxmsw26d_gl + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static debug build GL library" ) + + + FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG + NAMES wxpngd + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static debug png library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_PNG + NAMES wxpng + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static png library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF + NAMES wxtiffd + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static debug tiff library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_TIFF + NAMES wxtiff + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static tiff library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG + NAMES wxjpegd wxjpgd + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static debug jpeg library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_JPEG + NAMES wxjpeg wxjpg + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static jpeg library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB + NAMES wxzlibd + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static debug zlib library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_ZLIB + NAMES wxzlib + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static zib library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX + NAMES wxregexd + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static debug regex library" ) + + FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_REGEX + NAMES wxregex + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_lib" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows static regex library" ) + + + + ## untested: + FIND_LIBRARY(WXWINDOWS_SHARED_LIBRARY_GL + NAMES wx_gl wxmsw_gl wxmsw26_gl + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_dll" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows shared release build GL library" ) + + FIND_LIBRARY(WXWINDOWS_SHARED_DEBUG_LIBRARY_GL + NAMES wxd_gl wxmswd_gl wxmsw26d_gl + PATHS + "${WXWINDOWS_ROOT_DIR}/lib/vc_dll" + ${WXWINDOWS_POSSIBLE_LIB_PATHS} + DOC "wxWindows shared debug build GL library" ) + + + ELSE (WXWINDOWS_USE_MONOLITHIC) + ## WX is built as multiple small pieces libraries instead of monolithic + + ## DEPECATED (jw) replaced by more general WXWINDOWS_USE_MONOLITHIC ON/OFF + # OPTION(WXWINDOWS_SEPARATE_LIBS_BUILD "Is wxWindows build with separate libs?" OFF) + + ## HACK: This is very dirty. + ## because the libs of a particular version are explicitly listed + ## and NOT searched/verified. + ## TODO: Really search for each lib, then decide for + ## monolithic x debug x shared x GL (=16 combinations) for at least 18 libs + ## --> about 288 combinations + ## thus we need a different approach so solve this correctly ... + + MESSAGE(STATUS "Warning: You are trying to use wxWidgets without monolithic build (WXWINDOWS_SEPARATE_LIBS_BUILD). This is a HACK, libraries are not verified! (JW).") + + SET(WXWINDOWS_STATIC_LIBS ${WXWINDOWS_STATIC_LIBS} + wxbase26 + wxbase26_net + wxbase26_odbc + wxbase26_xml + wxmsw26_adv + wxmsw26_core + wxmsw26_dbgrid + wxmsw26_gl + wxmsw26_html + wxmsw26_media + wxmsw26_qa + wxmsw26_xrc + wxexpat + wxjpeg + wxpng + wxregex + wxtiff + wxzlib + comctl32 + rpcrt4 + wsock32 + ) + ## HACK: feed in to optimized / debug libaries if both were FOUND. + SET(WXWINDOWS_STATIC_DEBUG_LIBS ${WXWINDOWS_STATIC_DEBUG_LIBS} + wxbase26d + wxbase26d_net + wxbase26d_odbc + wxbase26d_xml + wxmsw26d_adv + wxmsw26d_core + wxmsw26d_dbgrid + wxmsw26d_gl + wxmsw26d_html + wxmsw26d_media + wxmsw26d_qa + wxmsw26d_xrc + wxexpatd + wxjpegd + wxpngd + wxregexd + wxtiffd + wxzlibd + comctl32 + rpcrt4 + wsock32 + ) + ENDIF (WXWINDOWS_USE_MONOLITHIC) + + + ## + ## now we should have found all WX libs available on the system. + ## let the user decide which of the available onse to use. + ## + + ## if there is at least one shared lib available + ## let user choose wether to use shared or static wxwindows libs + IF(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY) + ## default value OFF because wxWindows MSVS default build is static + OPTION(WXWINDOWS_USE_SHARED_LIBS + "Use shared versions (dll) of wxWindows libraries?" OFF) + MARK_AS_ADVANCED(WXWINDOWS_USE_SHARED_LIBS) + ENDIF(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY) + + ## add system libraries wxwindows always seems to depend on + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + comctl32 + rpcrt4 + wsock32 + ) + + IF (NOT WXWINDOWS_USE_SHARED_LIBS) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ## these ones dont seem required, in particular ctl3d32 is not neccesary (Jan Woetzel 07/2003) + # ctl3d32 + debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB} optimized ${WXWINDOWS_STATIC_LIBRARY_ZLIB} + debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX} optimized ${WXWINDOWS_STATIC_LIBRARY_REGEX} + debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG} optimized ${WXWINDOWS_STATIC_LIBRARY_PNG} + debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG} optimized ${WXWINDOWS_STATIC_LIBRARY_JPEG} + debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF} optimized ${WXWINDOWS_STATIC_LIBRARY_TIFF} + ) + ENDIF (NOT WXWINDOWS_USE_SHARED_LIBS) + + ## opengl/glu: TODO/FIXME: better use FindOpenGL.cmake here + ## assume release versions of glu an dopengl, here. + IF (WXWINDOWS_USE_GL) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + opengl32 + glu32 ) + ENDIF (WXWINDOWS_USE_GL) + + ## + ## select between use of shared or static wxWindows lib then set libs to use + ## for debug and optimized build. so the user can switch between debug and + ## release build e.g. within MS Visual Studio without running cmake with a + ## different build directory again. + ## + ## then add the build specific include dir for wx/setup.h + ## + + IF(WXWINDOWS_USE_SHARED_LIBS) + ##MESSAGE("DBG wxWindows use shared lib selected.") + ## assume that both builds use the same setup(.h) for simplicity + + ## shared: both wx (debug and release) found? + ## assume that both builds use the same setup(.h) for simplicity + IF(WXWINDOWS_SHARED_DEBUG_LIBRARY AND WXWINDOWS_SHARED_LIBRARY) + ##MESSAGE("DBG wx shared: debug and optimized found.") + FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h + ${WXWINDOWS_ROOT_DIR}/lib/mswdlld + ${WXWINDOWS_ROOT_DIR}/lib/mswdll + ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/mswd + ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/msw ) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + debug ${WXWINDOWS_SHARED_DEBUG_LIBRARY} + optimized ${WXWINDOWS_SHARED_LIBRARY} ) + IF (WXWINDOWS_USE_GL) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + debug ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} + optimized ${WXWINDOWS_SHARED_LIBRARY_GL} ) + ENDIF (WXWINDOWS_USE_GL) + ENDIF(WXWINDOWS_SHARED_DEBUG_LIBRARY AND WXWINDOWS_SHARED_LIBRARY) + + ## shared: only debug wx lib found? + IF(WXWINDOWS_SHARED_DEBUG_LIBRARY) + IF(NOT WXWINDOWS_SHARED_LIBRARY) + ##MESSAGE("DBG wx shared: debug (but no optimized) found.") + FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h + ${WXWINDOWS_ROOT_DIR}/lib/mswdlld + ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/mswd ) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_SHARED_DEBUG_LIBRARY} ) + IF (WXWINDOWS_USE_GL) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} ) + ENDIF (WXWINDOWS_USE_GL) + ENDIF(NOT WXWINDOWS_SHARED_LIBRARY) + ENDIF(WXWINDOWS_SHARED_DEBUG_LIBRARY) + + ## shared: only release wx lib found? + IF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY) + IF(WXWINDOWS_SHARED_LIBRARY) + ##MESSAGE("DBG wx shared: optimized (but no debug) found.") + FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h + ${WXWINDOWS_ROOT_DIR}/lib/mswdll + ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/msw ) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_SHARED_DEBUG_LIBRARY} ) + IF (WXWINDOWS_USE_GL) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} ) + ENDIF (WXWINDOWS_USE_GL) + ENDIF(WXWINDOWS_SHARED_LIBRARY) + ENDIF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY) + + ## shared: none found? + IF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY) + IF(NOT WXWINDOWS_SHARED_LIBRARY) + MESSAGE(STATUS + "No shared wxWindows lib found, but WXWINDOWS_USE_SHARED_LIBS=${WXWINDOWS_USE_SHARED_LIBS}.") + ENDIF(NOT WXWINDOWS_SHARED_LIBRARY) + ENDIF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY) + + ######################################################################################### + ELSE(WXWINDOWS_USE_SHARED_LIBS) + + ##jw: DEPRECATED IF(NOT WXWINDOWS_SEPARATE_LIBS_BUILD) + + ## static: both wx (debug and release) found? + ## assume that both builds use the same setup(.h) for simplicity + IF(WXWINDOWS_STATIC_DEBUG_LIBRARY AND WXWINDOWS_STATIC_LIBRARY) + ##MESSAGE("DBG wx static: debug and optimized found.") + FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h + ${WXWINDOWS_ROOT_DIR}/lib/mswd + ${WXWINDOWS_ROOT_DIR}/lib/msw + ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/mswd + ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/msw ) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY} + optimized ${WXWINDOWS_STATIC_LIBRARY} ) + IF (WXWINDOWS_USE_GL) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_GL} + optimized ${WXWINDOWS_STATIC_LIBRARY_GL} ) + ENDIF (WXWINDOWS_USE_GL) + ENDIF(WXWINDOWS_STATIC_DEBUG_LIBRARY AND WXWINDOWS_STATIC_LIBRARY) + + ## static: only debug wx lib found? + IF(WXWINDOWS_STATIC_DEBUG_LIBRARY) + IF(NOT WXWINDOWS_STATIC_LIBRARY) + ##MESSAGE("DBG wx static: debug (but no optimized) found.") + FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h + ${WXWINDOWS_ROOT_DIR}/lib/mswd + ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/mswd ) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_STATIC_DEBUG_LIBRARY} ) + IF (WXWINDOWS_USE_GL) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_STATIC_DEBUG_LIBRARY_GL} ) + ENDIF (WXWINDOWS_USE_GL) + ENDIF(NOT WXWINDOWS_STATIC_LIBRARY) + ENDIF(WXWINDOWS_STATIC_DEBUG_LIBRARY) + + ## static: only release wx lib found? + IF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY) + IF(WXWINDOWS_STATIC_LIBRARY) + ##MESSAGE("DBG wx static: optimized (but no debug) found.") + FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h + ${WXWINDOWS_ROOT_DIR}/lib/msw + ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/msw ) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_STATIC_LIBRARY} ) + IF (WXWINDOWS_USE_GL) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} + ${WXWINDOWS_STATIC_LIBRARY_GL} ) + ENDIF (WXWINDOWS_USE_GL) + ENDIF(WXWINDOWS_STATIC_LIBRARY) + ENDIF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY) + + ## static: none found? + IF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY AND NOT WXWINDOWS_SEPARATE_LIBS_BUILD) + IF(NOT WXWINDOWS_STATIC_LIBRARY) + MESSAGE(STATUS + "No static wxWindows lib found, but WXWINDOWS_USE_SHARED_LIBS=${WXWINDOWS_USE_SHARED_LIBS}.") + ENDIF(NOT WXWINDOWS_STATIC_LIBRARY) + ENDIF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY AND NOT WXWINDOWS_SEPARATE_LIBS_BUILD) + ENDIF(WXWINDOWS_USE_SHARED_LIBS) + + + ## not neccessary in wxWindows 2.4.1 and 2.6.2 + ## but it may fix a previous bug, see + ## http://lists.wxwindows.org/cgi-bin/ezmlm-cgi?8:mss:37574:200305:mpdioeneabobmgjenoap + OPTION(WXWINDOWS_SET_DEFINITIONS "Set additional defines for wxWindows" OFF) + MARK_AS_ADVANCED(WXWINDOWS_SET_DEFINITIONS) + IF (WXWINDOWS_SET_DEFINITIONS) + SET(WXWINDOWS_DEFINITIONS "-DWINVER=0x400") + ELSE (WXWINDOWS_SET_DEFINITIONS) + # clear: + SET(WXWINDOWS_DEFINITIONS "") + ENDIF (WXWINDOWS_SET_DEFINITIONS) + + + + ## Find the include directories for wxwindows + ## the first, build specific for wx/setup.h was determined before. + ## add inc dir for general for "wx/wx.h" + FIND_PATH(WXWINDOWS_INCLUDE_DIR wx/wx.h + "${WXWINDOWS_ROOT_DIR}/include" ) + ## append the build specific include dir for wx/setup.h: + IF (WXWINDOWS_INCLUDE_DIR_SETUPH) + SET(WXWINDOWS_INCLUDE_DIR ${WXWINDOWS_INCLUDE_DIR} ${WXWINDOWS_INCLUDE_DIR_SETUPH} ) + ENDIF (WXWINDOWS_INCLUDE_DIR_SETUPH) + + + + MARK_AS_ADVANCED( + WXWINDOWS_ROOT_DIR + WXWINDOWS_INCLUDE_DIR + WXWINDOWS_INCLUDE_DIR_SETUPH + WXWINDOWS_STATIC_LIBRARY + WXWINDOWS_STATIC_LIBRARY_GL + WXWINDOWS_STATIC_DEBUG_LIBRARY + WXWINDOWS_STATIC_DEBUG_LIBRARY_GL + WXWINDOWS_STATIC_LIBRARY_ZLIB + WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB + WXWINDOWS_STATIC_LIBRARY_REGEX + WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX + WXWINDOWS_STATIC_LIBRARY_PNG + WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG + WXWINDOWS_STATIC_LIBRARY_JPEG + WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG + WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF + WXWINDOWS_STATIC_LIBRARY_TIFF + WXWINDOWS_SHARED_LIBRARY + WXWINDOWS_SHARED_DEBUG_LIBRARY + WXWINDOWS_SHARED_LIBRARY_GL + WXWINDOWS_SHARED_DEBUG_LIBRARY_GL + ) + + +ELSE(WIN32_STYLE_FIND) + + IF (UNIX_STYLE_FIND) + ## ###################################################################### + ## + ## UNIX/Linux specific: + ## + ## use backquoted wx-config to query and set flags and libs: + ## 06/2003 Jan Woetzel + ## + + OPTION(WXWINDOWS_USE_SHARED_LIBS "Use shared versions (.so) of wxWindows libraries" ON) + MARK_AS_ADVANCED(WXWINDOWS_USE_SHARED_LIBS) + + # JW removed option and force the develper th SET it. + # OPTION(WXWINDOWS_USE_GL "use wxWindows with GL support (use additional + # --gl-libs for wx-config)?" OFF) + + # wx-config should be in your path anyhow, usually no need to set WXWIN or + # search in ../wx or ../../wx + FIND_PROGRAM(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE wx-config + $ENV{WXWIN} + $ENV{WXWIN}/bin + ../wx/bin + ../../wx/bin ) + + # check wether wx-config was found: + IF(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE) + + # use shared/static wx lib? + # remember: always link shared to use systems GL etc. libs (no static + # linking, just link *against* static .a libs) + IF(WXWINDOWS_USE_SHARED_LIBS) + SET(WX_CONFIG_ARGS_LIBS "--libs") + ELSE(WXWINDOWS_USE_SHARED_LIBS) + SET(WX_CONFIG_ARGS_LIBS "--static --libs") + ENDIF(WXWINDOWS_USE_SHARED_LIBS) + + # do we need additionial wx GL stuff like GLCanvas ? + IF(WXWINDOWS_USE_GL) + SET(WX_CONFIG_ARGS_LIBS "${WX_CONFIG_ARGS_LIBS} --gl-libs" ) + ENDIF(WXWINDOWS_USE_GL) + ##MESSAGE("DBG: WX_CONFIG_ARGS_LIBS=${WX_CONFIG_ARGS_LIBS}===") + + # set CXXFLAGS to be fed into CMAKE_CXX_FLAGS by the user: + IF (HAVE_ISYSTEM) # does the compiler support -isystem ? + IF (NOT APPLE) # -isystem seem sto be unsuppored on Mac + IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX ) + IF (CMAKE_CXX_COMPILER MATCHES g\\+\\+) + SET(CMAKE_WXWINDOWS_CXX_FLAGS "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} --cxxflags|sed -e s/-I/-isystem/g`") + ELSE(CMAKE_CXX_COMPILER MATCHES g\\+\\+) + SET(CMAKE_WXWINDOWS_CXX_FLAGS "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} --cxxflags`") + ENDIF(CMAKE_CXX_COMPILER MATCHES g\\+\\+) + ENDIF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX ) + ENDIF (NOT APPLE) + ENDIF (HAVE_ISYSTEM) + ##MESSAGE("DBG: for compilation: + ##CMAKE_WXWINDOWS_CXX_FLAGS=${CMAKE_WXWINDOWS_CXX_FLAGS}===") + + # keep the back-quoted string for clarity + SET(WXWINDOWS_LIBRARIES "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} ${WX_CONFIG_ARGS_LIBS}`") + ##MESSAGE("DBG2: for linking: + ##WXWINDOWS_LIBRARIES=${WXWINDOWS_LIBRARIES}===") + + # evaluate wx-config output to separate linker flags and linkdirs for + # rpath: + EXEC_PROGRAM(${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} + ARGS ${WX_CONFIG_ARGS_LIBS} + OUTPUT_VARIABLE WX_CONFIG_LIBS ) + + ## extract linkdirs (-L) for rpath + ## use regular expression to match wildcard equivalent "-L*" + ## with is a space or a semicolon + STRING(REGEX MATCHALL "[-][L]([^ ;])+" WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX "${WX_CONFIG_LIBS}" ) + # MESSAGE("DBG WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX=${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX}") + + ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES + ## replace -L by ; because the separator seems to be lost otherwise (bug or + ## feature?) + IF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX) + STRING(REGEX REPLACE "[-][L]" ";" WXWINDOWS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX} ) + # MESSAGE("DBG WXWINDOWS_LINK_DIRECTORIES=${WXWINDOWS_LINK_DIRECTORIES}") + ENDIF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX) + + + ## replace space separated string by semicolon separated vector to make it + ## work with LINK_DIRECTORIES + SEPARATE_ARGUMENTS(WXWINDOWS_LINK_DIRECTORIES) + + MARK_AS_ADVANCED( + CMAKE_WXWINDOWS_CXX_FLAGS + WXWINDOWS_INCLUDE_DIR + WXWINDOWS_LIBRARIES + CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE + ) + + + ## we really need wx-config... + ELSE(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE) + MESSAGE(STATUS "Cannot find wx-config anywhere on the system. Please put the file into your path or specify it in CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE.") + MARK_AS_ADVANCED(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE) + ENDIF(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE) + + + + ELSE(UNIX_STYLE_FIND) + MESSAGE(STATUS "FindwxWindows.cmake: Platform unknown/unsupported by FindwxWindows.cmake. It's neither WIN32 nor UNIX") + ENDIF(UNIX_STYLE_FIND) +ENDIF(WIN32_STYLE_FIND) + + +IF(WXWINDOWS_LIBRARIES) + IF(WXWINDOWS_INCLUDE_DIR OR CMAKE_WXWINDOWS_CXX_FLAGS) + ## found all we need. + SET(WXWINDOWS_FOUND 1) + + ## set deprecated variables for backward compatibility: + SET(CMAKE_WX_CAN_COMPILE ${WXWINDOWS_FOUND}) + SET(WXWINDOWS_LIBRARY ${WXWINDOWS_LIBRARIES}) + SET(WXWINDOWS_INCLUDE_PATH ${WXWINDOWS_INCLUDE_DIR}) + SET(WXWINDOWS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES}) + SET(CMAKE_WX_CXX_FLAGS ${CMAKE_WXWINDOWS_CXX_FLAGS}) + + ENDIF(WXWINDOWS_INCLUDE_DIR OR CMAKE_WXWINDOWS_CXX_FLAGS) +ENDIF(WXWINDOWS_LIBRARIES) diff --git a/CMakeLua/Modules/ITKCompatibility.cmake b/CMakeLua/Modules/ITKCompatibility.cmake new file mode 100755 index 0000000..8a13925 --- /dev/null +++ b/CMakeLua/Modules/ITKCompatibility.cmake @@ -0,0 +1,3 @@ +# work around an old bug in ITK prior to verison 3.0 +SET(TIFF_RIGHT_VERSION 1) + diff --git a/CMakeLua/Modules/InstallRequiredSystemLibraries.cmake b/CMakeLua/Modules/InstallRequiredSystemLibraries.cmake new file mode 100644 index 0000000..dcc6107 --- /dev/null +++ b/CMakeLua/Modules/InstallRequiredSystemLibraries.cmake @@ -0,0 +1,134 @@ +# By including this file, all files in the CMAKE_INSTALL_DEBUG_LIBRARIES, +# will be installed with INSTALL_PROGRAMS into /bin for WIN32 and /lib +# for non-win32. If CMAKE_SKIP_INSTALL_RULES is set to TRUE before including +# this file, then the INSTALL command is not called. The use can use +# the variable CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS to use a custom install +# command and install them into any directory they want. +# If it is the MSVC compiler, then the microsoft run +# time libraries will be found add automatically added to the +# CMAKE_INSTALL_DEBUG_LIBRARIES, and installed. +# If CMAKE_INSTALL_DEBUG_LIBRARIES is set and it is the MSVC +# compiler, then the debug libraries are installed when available. +# If CMAKE_INSTALL_MFC_LIBRARIES is set then the MFC run time +# libraries are installed as well as the CRT run time libraries. + +IF(MSVC) + FILE(TO_CMAKE_PATH "$ENV{SYSTEMROOT}" SYSTEMROOT) + IF(MSVC70) + SET(__install__libs + "${SYSTEMROOT}/system32/msvcp70.dll" + "${SYSTEMROOT}/system32/msvcr70.dll" + ) + ENDIF(MSVC70) + IF(MSVC71) + SET(__install__libs + "${SYSTEMROOT}/system32/msvcp71.dll" + "${SYSTEMROOT}/system32/msvcr71.dll" + ) + ENDIF(MSVC71) + IF(MSVC80) + # Find the runtime library redistribution directory. + FIND_PATH(MSVC80_REDIST_DIR NAMES x86/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest + PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../VC/redist" + ) + MARK_AS_ADVANCED(MSVC80_REDIST_DIR) + SET(MSVC80_CRT_DIR "${MSVC80_REDIST_DIR}/x86/Microsoft.VC80.CRT") + + # Install the manifest that allows DLLs to be loaded from the + # directory containing the executable. + SET(__install__libs + "${MSVC80_CRT_DIR}/Microsoft.VC80.CRT.manifest" + "${MSVC80_CRT_DIR}/msvcm80.dll" + "${MSVC80_CRT_DIR}/msvcp80.dll" + "${MSVC80_CRT_DIR}/msvcr80.dll" + ) + + IF(CMAKE_INSTALL_DEBUG_LIBRARIES) + SET(MSVC80_CRT_DIR + "${MSVC80_REDIST_DIR}/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT") + SET(__install__libs ${__install__libs} + "${MSVC80_CRT_DIR}/Microsoft.VC80.DebugCRT.manifest" + "${MSVC80_CRT_DIR}/msvcm80d.dll" + "${MSVC80_CRT_DIR}/msvcp80d.dll" + "${MSVC80_CRT_DIR}/msvcr80d.dll" + ) + ENDIF(CMAKE_INSTALL_DEBUG_LIBRARIES) + + ENDIF(MSVC80) + IF(CMAKE_INSTALL_MFC_LIBRARIES) + IF(MSVC70) + SET(__install__libs ${__install__libs} + "${SYSTEMROOT}/system32/mfc70.dll" + ) + ENDIF(MSVC70) + IF(MSVC71) + SET(__install__libs ${__install__libs} + "${SYSTEMROOT}/system32/mfc71.dll" + ) + ENDIF(MSVC71) + IF(MSVC80) + IF(CMAKE_INSTALL_DEBUG_LIBRARIES) + SET(MSVC80_MFC_DIR + "${MSVC80_REDIST_DIR}/Debug_NonRedist/x86/Microsoft.VC80.DebugMFC") + SET(__install__libs ${__install__libs} + "${MSVC80_MFC_DIR}/Microsoft.VC80.DebugMFC.manifest" + "${MSVC80_MFC_DIR}/mfc80d.dll" + "${MSVC80_MFC_DIR}/mfc80ud.dll" + "${MSVC80_MFC_DIR}/mfcm80d.dll" + "${MSVC80_MFC_DIR}/mfcm80ud.dll" + ) + ENDIF(CMAKE_INSTALL_DEBUG_LIBRARIES) + + SET(MSVC80_MFC_DIR "${MSVC80_REDIST_DIR}/x86/Microsoft.VC80.MFC") + # Install the manifest that allows DLLs to be loaded from the + # directory containing the executable. + SET(__install__libs ${__install__libs} + "${MSVC80_MFC_DIR}/Microsoft.VC80.MFC.manifest" + "${MSVC80_MFC_DIR}/mfc80.dll" + "${MSVC80_MFC_DIR}/mfc80u.dll" + "${MSVC80_MFC_DIR}/mfcm80.dll" + "${MSVC80_MFC_DIR}/mfcm80u.dll" + ) + ENDIF(MSVC80) + IF(MSVC80) + # include the language dll's for vs8 as well as the actuall dll's + SET(MSVC80_MFCLOC_DIR "${MSVC80_REDIST_DIR}/x86/Microsoft.VC80.MFCLOC") + # Install the manifest that allows DLLs to be loaded from the + # directory containing the executable. + SET(__install__libs ${__install__libs} + "${MSVC80_MFCLOC_DIR}/Microsoft.VC80.MFCLOC.manifest" + "${MSVC80_MFCLOC_DIR}/mfc80chs.dll" + "${MSVC80_MFCLOC_DIR}/mfc80cht.dll" + "${MSVC80_MFCLOC_DIR}/mfc80enu.dll" + "${MSVC80_MFCLOC_DIR}/mfc80esp.dll" + "${MSVC80_MFCLOC_DIR}/mfc80deu.dll" + "${MSVC80_MFCLOC_DIR}/mfc80fra.dll" + "${MSVC80_MFCLOC_DIR}/mfc80ita.dll" + "${MSVC80_MFCLOC_DIR}/mfc80jpn.dll" + "${MSVC80_MFCLOC_DIR}/mfc80kor.dll" + ) + ENDIF(MSVC80) + ENDIF(CMAKE_INSTALL_MFC_LIBRARIES) + FOREACH(lib + ${__install__libs} + ) + IF(EXISTS ${lib}) + SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS + ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib}) + ENDIF(EXISTS ${lib}) + ENDFOREACH(lib) +ENDIF(MSVC) + +# Include system runtime libraries in the installation if any are +# specified by CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS. +IF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS) + IF(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP) + IF(WIN32) + INSTALL_PROGRAMS(/bin ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}) + ELSE(WIN32) + INSTALL_PROGRAMS(/lib ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}) + ENDIF(WIN32) + ENDIF(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP) +ENDIF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS) + + diff --git a/CMakeLua/Modules/KDE3Macros.cmake b/CMakeLua/Modules/KDE3Macros.cmake new file mode 100644 index 0000000..86cfd57 --- /dev/null +++ b/CMakeLua/Modules/KDE3Macros.cmake @@ -0,0 +1,393 @@ +# + +# See FindKDE3.cmake for documentation. +# +# this file contains the following macros: +# KDE3_ADD_DCOP_SKELS +# KDE3_ADD_DCOP_STUBS +# KDE3_ADD_MOC_FILES +# KDE3_ADD_UI_FILES +# KDE3_ADD_KCFG_FILES +# KDE3_AUTOMOC +# KDE3_INSTALL_LIBTOOL_FILE +# KDE3_CREATE_FINAL_FILE +# KDE3_ADD_KPART +# KDE3_ADD_KDEINIT_EXECUTABLE +# KDE3_ADD_EXECUTABLE + + +#neundorf@kde.org + +INCLUDE(AddFileDependencies) + +#create the kidl and skeletion file for dcop stuff +#usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers}) +MACRO(KDE3_ADD_DCOP_SKELS _sources) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) + GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + + SET(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.cpp) + SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl) + + IF (NOT HAVE_${_basename}_KIDL_RULE) + SET(HAVE_${_basename}_KIDL_RULE ON) + + ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} + COMMAND ${KDE3_DCOPIDL_EXECUTABLE} + ARGS ${_tmp_FILE} > ${_kidl} + DEPENDS ${_tmp_FILE} + ) + + ENDIF (NOT HAVE_${_basename}_KIDL_RULE) + + IF (NOT HAVE_${_basename}_SKEL_RULE) + SET(HAVE_${_basename}_SKEL_RULE ON) + + ADD_CUSTOM_COMMAND(OUTPUT ${_skel} + COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} + ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl} + DEPENDS ${_kidl} + ) + + ENDIF (NOT HAVE_${_basename}_SKEL_RULE) + + SET(${_sources} ${${_sources}} ${_skel}) + + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_ADD_DCOP_SKELS) + + +MACRO(KDE3_ADD_DCOP_STUBS _sources) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) + + GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + + SET(_stub_CPP ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.cpp) + SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl) + + IF (NOT HAVE_${_basename}_KIDL_RULE) + SET(HAVE_${_basename}_KIDL_RULE ON) + + + ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} + COMMAND ${KDE3_DCOPIDL_EXECUTABLE} + ARGS ${_tmp_FILE} > ${_kidl} + DEPENDS ${_tmp_FILE} + ) + + ENDIF (NOT HAVE_${_basename}_KIDL_RULE) + + + IF (NOT HAVE_${_basename}_STUB_RULE) + SET(HAVE_${_basename}_STUB_RULE ON) + + ADD_CUSTOM_COMMAND(OUTPUT ${_stub_CPP} + COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} + ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl} + DEPENDS ${_kidl} + ) + + ENDIF (NOT HAVE_${_basename}_STUB_RULE) + + SET(${_sources} ${${_sources}} ${_stub_CPP}) + + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_ADD_DCOP_STUBS) + + +MACRO(KDE3_ADD_KCFG_FILES _sources) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) + + GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + + FILE(READ ${_tmp_FILE} _contents) + STRING(REGEX REPLACE "^(.*\n)?File=([^\n]+)\n.*$" "\\2" _kcfg_FILE "${_contents}") + + SET(_src_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) + SET(_header_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) + + ADD_CUSTOM_COMMAND(OUTPUT ${_src_FILE} + COMMAND ${KDE3_KCFGC_EXECUTABLE} + ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${_kcfg_FILE} ${_tmp_FILE} + DEPENDS ${_tmp_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${_kcfg_FILE} ) + + SET(${_sources} ${${_sources}} ${_src_FILE}) + + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_ADD_KCFG_FILES) + + +#create the moc files and add them to the list of sources +#usage: KDE_ADD_MOC_FILES(foo_SRCS ${moc_headers}) +MACRO(KDE3_ADD_MOC_FILES _sources) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) + + GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) + + ADD_CUSTOM_COMMAND(OUTPUT ${_moc} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${_tmp_FILE} -o ${_moc} + DEPENDS ${_tmp_FILE} + ) + + SET(${_sources} ${${_sources}} ${_moc}) + + ENDFOREACH (_current_FILE) +ENDMACRO(KDE3_ADD_MOC_FILES) + + +GET_FILENAME_COMPONENT( KDE3_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) + +#create the implementation files from the ui files and add them to the list of sources +#usage: KDE_ADD_UI_FILES(foo_SRCS ${ui_files}) +MACRO(KDE3_ADD_UI_FILES _sources ) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) + + GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) + SET(_src ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) + + ADD_CUSTOM_COMMAND(OUTPUT ${_header} + COMMAND ${QT_UIC_EXECUTABLE} + ARGS -L ${KDE3_LIB_DIR}/kde3/plugins/designer -nounload -o ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} + DEPENDS ${_tmp_FILE} + ) + + ADD_CUSTOM_COMMAND(OUTPUT ${_src} + COMMAND ${CMAKE_COMMAND} + ARGS + -DKDE_UIC_PLUGIN_DIR:FILEPATH=${KDE3_LIB_DIR}/kde3/plugins/designer + -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC_EXECUTABLE} + -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE} + -DKDE_UIC_CPP_FILE:FILEPATH=${_src} + -DKDE_UIC_H_FILE:FILEPATH=${_header} + -P ${KDE3_MODULE_DIR}/kde3uic.cmake + DEPENDS ${_header} + ) + + ADD_CUSTOM_COMMAND(OUTPUT ${_moc} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${_header} -o ${_moc} + DEPENDS ${_header} + ) + + SET(${_sources} ${${_sources}} ${_src} ${_moc} ) + + ENDFOREACH (_current_FILE) +ENDMACRO(KDE3_ADD_UI_FILES) + + +MACRO(KDE3_AUTOMOC) + SET(_matching_FILES ) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE) + + # if "SKIP_AUTOMOC" is set to true, we will not handle this file here. + # here. this is required to make bouic work correctly: + # we need to add generated .cpp files to the sources (to compile them), + # but we cannot let automoc handle them, as the .cpp files don't exist yet when + # cmake is run for the very first time on them -> however the .cpp files might + # exist at a later run. at that time we need to skip them, so that we don't add two + # different rules for the same moc file + GET_SOURCE_FILE_PROPERTY(_skip ${_abs_FILE} SKIP_AUTOMOC) + + IF (EXISTS ${_abs_FILE} AND NOT _skip) + + FILE(READ ${_abs_FILE} _contents) + + GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH) + + STRING(REGEX MATCHALL "#include +[^ ]+\\.moc[\">]" _match "${_contents}") + IF(_match) + FOREACH (_current_MOC_INC ${_match}) + STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}") + + GET_FILENAME_COMPONENT(_basename ${_current_MOC} NAME_WE) +# SET(_header ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.h) + SET(_header ${_abs_PATH}/${_basename}.h) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) + + ADD_CUSTOM_COMMAND(OUTPUT ${_moc} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${_header} -o ${_moc} + DEPENDS ${_header} + ) + + ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc}) + + ENDFOREACH (_current_MOC_INC) + ENDIF(_match) + + ENDIF (EXISTS ${_abs_FILE} AND NOT _skip) + ENDFOREACH (_current_FILE) +ENDMACRO(KDE3_AUTOMOC) + +# only used internally by KDE3_INSTALL_ICONS +MACRO (_KDE3_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME) + + # if the string doesn't match the pattern, the result is the full string, so all three have the same content + IF (NOT ${_group} STREQUAL ${_install_NAME} ) + SET(_icon_GROUP "actions") + + IF (${_group} STREQUAL "mime") + SET(_icon_GROUP "mimetypes") + ENDIF (${_group} STREQUAL "mime") + + IF (${_group} STREQUAL "filesys") + SET(_icon_GROUP "filesystems") + ENDIF (${_group} STREQUAL "filesys") + + IF (${_group} STREQUAL "device") + SET(_icon_GROUP "devices") + ENDIF (${_group} STREQUAL "device") + + IF (${_group} STREQUAL "app") + SET(_icon_GROUP "apps") + ENDIF (${_group} STREQUAL "app") + + IF (${_group} STREQUAL "action") + SET(_icon_GROUP "actions") + ENDIF (${_group} STREQUAL "action") + +# message(STATUS "icon: ${_current_ICON} size: ${_size} group: ${_group} name: ${_name}" ) + INSTALL(FILES ${_orig_NAME} DESTINATION ${_install_PATH}/${_icon_GROUP}/ RENAME ${_install_NAME} ) + ENDIF (NOT ${_group} STREQUAL ${_install_NAME} ) + +ENDMACRO (_KDE3_ADD_ICON_INSTALL_RULE) + + +MACRO (KDE3_INSTALL_ICONS _theme ) + SET(_defaultpath "${CMAKE_INSTALL_PREFIX}/share/icons") + # first the png icons + FILE(GLOB _icons *.png) + FOREACH (_current_ICON ${_icons} ) + STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\1" _size "${_current_ICON}") + STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\2" _group "${_current_ICON}") + STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\3" _name "${_current_ICON}") + _KDE3_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake + ${_defaultpath}/${_theme}/${_size}x${_size} + ${_group} ${_current_ICON} ${_name}) + ENDFOREACH (_current_ICON) + + # and now the svg icons + FILE(GLOB _icons *.svgz) + FOREACH (_current_ICON ${_icons} ) + STRING(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\1" _group "${_current_ICON}") + STRING(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\2" _name "${_current_ICON}") + _KDE3_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake + ${_defaultpath}/${_theme}/scalable + ${_group} ${_current_ICON} ${_name}) + ENDFOREACH (_current_ICON) + +ENDMACRO (KDE3_INSTALL_ICONS) + +MACRO(KDE3_INSTALL_LIBTOOL_FILE _target) + GET_TARGET_PROPERTY(_target_location ${_target} LOCATION) + + GET_FILENAME_COMPONENT(_laname ${_target_location} NAME_WE) + GET_FILENAME_COMPONENT(_soname ${_target_location} NAME) + SET(_laname ${CMAKE_CURRENT_BINARY_DIR}/${_laname}.la) + + FILE(WRITE ${_laname} "# ${_laname} - a libtool library file, generated by cmake \n") + FILE(APPEND ${_laname} "# The name that we can dlopen(3).\n") + FILE(APPEND ${_laname} "dlname='${_soname}'\n") + FILE(APPEND ${_laname} "# Names of this library\n") + FILE(APPEND ${_laname} "library_names='${_soname} ${_soname} ${_soname}'\n") + FILE(APPEND ${_laname} "# The name of the static archive\n") + FILE(APPEND ${_laname} "old_library=''\n") + FILE(APPEND ${_laname} "# Libraries that this one depends upon.\n") + FILE(APPEND ${_laname} "dependency_libs=''\n") +# FILE(APPEND ${_laname} "dependency_libs='${${_target}_LIB_DEPENDS}'\n") + FILE(APPEND ${_laname} "# Version information.\ncurrent=0\nage=0\nrevision=0\n") + FILE(APPEND ${_laname} "# Is this an already installed library?\ninstalled=yes\n") + FILE(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\nshouldnotlink=yes\n") + FILE(APPEND ${_laname} "# Files to dlopen/dlpreopen\ndlopen=''\ndlpreopen=''\n") + FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n") + FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/lib/kde3'\n") + + INSTALL_FILES(${KDE3_LIBTOOL_DIR} FILES ${_laname}) +ENDMACRO(KDE3_INSTALL_LIBTOOL_FILE) + + +MACRO(KDE3_CREATE_FINAL_FILE _filename) + FILE(WRITE ${_filename} "//autogenerated file\n") + FOREACH (_current_FILE ${ARGN}) + FILE(APPEND ${_filename} "#include \"${_current_FILE}\"\n") + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_CREATE_FINAL_FILE) + + +# OPTION(KDE3_ENABLE_FINAL "Enable final all-in-one compilation") +OPTION(KDE3_BUILD_TESTS "Build the tests") + + +MACRO(KDE3_ADD_KPART _target_NAME _with_PREFIX) +#is the first argument is "WITH_PREFIX" then keep the standard "lib" prefix, otherwise SET the prefix empty + IF (${_with_PREFIX} STREQUAL "WITH_PREFIX") + SET(_first_SRC) + ELSE (${_with_PREFIX} STREQUAL "WITH_PREFIX") + SET(_first_SRC ${_with_PREFIX}) + ENDIF (${_with_PREFIX} STREQUAL "WITH_PREFIX") + +# IF (KDE3_ENABLE_FINAL) +# KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${_first_SRC} ${ARGN}) +# ADD_LIBRARY(${_target_NAME} MODULE ${_target_NAME}_final.cpp) +# ELSE (KDE3_ENABLE_FINAL) + ADD_LIBRARY(${_target_NAME} MODULE ${_first_SRC} ${ARGN}) +# ENDIF (KDE3_ENABLE_FINAL) + + IF(_first_SRC) + SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES PREFIX "") + ENDIF(_first_SRC) + + KDE3_INSTALL_LIBTOOL_FILE(${_target_NAME}) + +ENDMACRO(KDE3_ADD_KPART) + + +MACRO(KDE3_ADD_KDEINIT_EXECUTABLE _target_NAME ) + +# IF (KDE3_ENABLE_FINAL) +# KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) +# ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${_target_NAME}_final.cpp) +# ELSE (KDE3_ENABLE_FINAL) + ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${ARGN} ) +# ENDIF (KDE3_ENABLE_FINAL) + + CONFIGURE_FILE(${KDE3_MODULE_DIR}/kde3init_dummy.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp) + + ADD_EXECUTABLE( ${_target_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp ) + TARGET_LINK_LIBRARIES( ${_target_NAME} kdeinit_${_target_NAME} ) + +ENDMACRO(KDE3_ADD_KDEINIT_EXECUTABLE) + + +MACRO(KDE3_ADD_EXECUTABLE _target_NAME ) + +# IF (KDE3_ENABLE_FINAL) +# KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) +# ADD_EXECUTABLE(${_target_NAME} ${_target_NAME}_final.cpp) +# ELSE (KDE3_ENABLE_FINAL) + ADD_EXECUTABLE(${_target_NAME} ${ARGN} ) +# ENDIF (KDE3_ENABLE_FINAL) + +ENDMACRO(KDE3_ADD_EXECUTABLE) + + diff --git a/CMakeLua/Modules/MacOSXBundleInfo.plist.in b/CMakeLua/Modules/MacOSXBundleInfo.plist.in new file mode 100644 index 0000000..a466dc7 --- /dev/null +++ b/CMakeLua/Modules/MacOSXBundleInfo.plist.in @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleGetInfoString + ${MACOSX_BUNDLE_INFO_STRING} + CFBundleIconFile + ${MACOSX_BUNDLE_ICON_FILE} + CFBundleIdentifier + ${MACOSX_BUNDLE_GUI_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + ${MACOSX_BUNDLE_LONG_VERSION_STRING} + CFBundleName + ${MACOSX_BUNDLE_BUNDLE_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + CFBundleSignature + ???? + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CSResourcesFileMapped + + LSRequiresCarbon + + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + + diff --git a/CMakeLua/Modules/MacOSXFrameworkInfo.plist.in b/CMakeLua/Modules/MacOSXFrameworkInfo.plist.in new file mode 100755 index 0000000..46287aa --- /dev/null +++ b/CMakeLua/Modules/MacOSXFrameworkInfo.plist.in @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_FRAMEWORK_NAME} + CFBundleGetInfoString + ${MACOSX_FRAMEWORK_INFO_STRING} + CFBundleIdentifier + ${MACOSX_FRAMEWORK_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + ${MACOSX_FRAMEWORK_SHORT_VERSION_STRING} + CFBundleSignature + ???? + CFBundleVersion + ${MACOSX_FRAMEWORK_BUNDLE_VERSION} + CSResourcesFileMapped + + NSHumanReadableCopyright + ${MACOSX_FRAMEWORK_COPYRIGHT} + + diff --git a/CMakeLua/Modules/MacroAddFileDependencies.cmake b/CMakeLua/Modules/MacroAddFileDependencies.cmake new file mode 100644 index 0000000..1359691 --- /dev/null +++ b/CMakeLua/Modules/MacroAddFileDependencies.cmake @@ -0,0 +1,15 @@ +# - MACRO_ADD_FILE_DEPENDENCIES(<_file> depend_files...) +# MACRO_OPTIONAL_FIND_PACKAGE( [QUIT] ) + +MACRO (MACRO_ADD_FILE_DEPENDENCIES _file) + + GET_SOURCE_FILE_PROPERTY(_deps ${_file} OBJECT_DEPENDS) + if (_deps) + set(_deps ${_deps} ${ARGN}) + else (_deps) + set(_deps ${ARGN}) + endif (_deps) + + SET_SOURCE_FILES_PROPERTIES(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}") + +ENDMACRO (MACRO_ADD_FILE_DEPENDENCIES) diff --git a/CMakeLua/Modules/NSIS.InstallOptions.ini.in b/CMakeLua/Modules/NSIS.InstallOptions.ini.in new file mode 100755 index 0000000..d92d779 --- /dev/null +++ b/CMakeLua/Modules/NSIS.InstallOptions.ini.in @@ -0,0 +1,46 @@ +[Settings] +NumFields=5 + +[Field 1] +Type=label +Text=By default @CPACK_PACKAGE_INSTALL_DIRECTORY@ does not add its directory to the system PATH. +Left=0 +Right=-1 +Top=0 +Bottom=20 + +[Field 2] +Type=radiobutton +Text=Do not add @CPACK_PACKAGE_NAME@ to the system PATH +Left=0 +Right=-1 +Top=30 +Bottom=40 +State=1 + +[Field 3] +Type=radiobutton +Text=Add @CPACK_PACKAGE_NAME@ to the system PATH for all users +Left=0 +Right=-1 +Top=40 +Bottom=50 +State=0 + +[Field 4] +Type=radiobutton +Text=Add @CPACK_PACKAGE_NAME@ to the system PATH for current user +Left=0 +Right=-1 +Top=50 +Bottom=60 +State=0 + +[Field 5] +Type=CheckBox +Text=Create @CPACK_PACKAGE_NAME@ Desktop Icon +Left=0 +Right=-1 +Top=80 +Bottom=90 +State=0 diff --git a/CMakeLua/Modules/NSIS.template.in b/CMakeLua/Modules/NSIS.template.in new file mode 100755 index 0000000..2bdca5f --- /dev/null +++ b/CMakeLua/Modules/NSIS.template.in @@ -0,0 +1,649 @@ +; CPack install script designed for a nmake build + +;-------------------------------- +; You must define these values + + !define VERSION "@CPACK_PACKAGE_VERSION@" + !define PATCH "@CPACK_PACKAGE_VERSION_PATCH@" + !define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@" + +;-------------------------------- +;Variables + + Var MUI_TEMP + Var STARTMENU_FOLDER + Var SV_ALLUSERS + Var START_MENU + Var DO_NOT_ADD_TO_PATH + Var ADD_TO_PATH_ALL_USERS + Var ADD_TO_PATH_CURRENT_USER + Var INSTALL_DESKTOP + +;-------------------------------- +;Include Modern UI + + !include "MUI.nsh" + + ;Default installation folder + InstallDir "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@" + +;-------------------------------- +;General + + ;Name and file + Name "@CPACK_PACKAGE_INSTALL_DIRECTORY@" + OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@" + + ;Set compression + SetCompressor @CPACK_NSIS_COMPRESSOR@ + +;-------------------------------- +; determine admin versus local install +; Is install for "AllUsers" or "JustMe"? +; Default to "JustMe" - set to "AllUsers" if admin or on Win9x +; This function is used for the very first "custom page" of the installer. +; This custom page does not show up visibly, but it executes prior to the +; first visible page and sets up $INSTDIR properly... +; Choose different default installation folder based on SV_ALLUSERS... +; "Program Files" for AllUsers, "My Documents" for JustMe... + +Function .onInit + StrCpy $SV_ALLUSERS "JustMe" + StrCpy $INSTDIR "$DOCUMENTS\@CPACK_PACKAGE_INSTALL_DIRECTORY@" + + ClearErrors + UserInfo::GetName + IfErrors noLM + Pop $0 + UserInfo::GetAccountType + Pop $1 + StrCmp $1 "Admin" 0 +3 + SetShellVarContext all + ;MessageBox MB_OK 'User "$0" is in the Admin group' + StrCpy $SV_ALLUSERS "AllUsers" + Goto done + StrCmp $1 "Power" 0 +3 + SetShellVarContext all + ;MessageBox MB_OK 'User "$0" is in the Power Users group' + StrCpy $SV_ALLUSERS "AllUsers" + Goto done + + noLM: + StrCpy $SV_ALLUSERS "AllUsers" + ;Get installation folder from registry if available + + done: + StrCmp $SV_ALLUSERS "AllUsers" 0 +2 + StrCpy $INSTDIR "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@" + + StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini" + + noOptionsPage: +FunctionEnd + +;-------------------------------- +;Interface Settings + + !define MUI_HEADERIMAGE + !define MUI_ABORTWARNING + +;-------------------------------- +; path functions + +!verbose 3 +!include "WinMessages.NSH" +!verbose 4 + +;---------------------------------------- +; based upon a script of "Written by KiCHiK 2003-01-18 05:57:02" +;---------------------------------------- +!verbose 3 +!include "WinMessages.NSH" +!verbose 4 +;==================================================== +; get_NT_environment +; Returns: the selected environment +; Output : head of the stack +;==================================================== +!macro select_NT_profile UN +Function ${UN}select_NT_profile + StrCmp $ADD_TO_PATH_ALL_USERS "1" 0 environment_single + DetailPrint "Selected environment for all users" + Push "all" + Return + environment_single: + DetailPrint "Selected environment for current user only." + Push "current" + Return +FunctionEnd +!macroend +!insertmacro select_NT_profile "" +!insertmacro select_NT_profile "un." +;---------------------------------------------------- +!define NT_current_env 'HKCU "Environment"' +!define NT_all_env 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"' + +!ifndef WriteEnvStr_RegKey + !ifdef ALL_USERS + !define WriteEnvStr_RegKey \ + 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"' + !else + !define WriteEnvStr_RegKey 'HKCU "Environment"' + !endif +!endif + +; AddToPath - Adds the given dir to the search path. +; Input - head of the stack +; Note - Win9x systems requires reboot + +Function AddToPath + Exch $0 + Push $1 + Push $2 + Push $3 + + # don't add if the path doesn't exist + IfFileExists "$0\*.*" "" AddToPath_done + + ReadEnvStr $1 PATH + Push "$1;" + Push "$0;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + Push "$1;" + Push "$0\;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + GetFullPathName /SHORT $3 $0 + Push "$1;" + Push "$3;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + Push "$1;" + Push "$3\;" + Call StrStr + Pop $2 + StrCmp $2 "" "" AddToPath_done + + Call IsNT + Pop $1 + StrCmp $1 1 AddToPath_NT + ; Not on NT + StrCpy $1 $WINDIR 2 + FileOpen $1 "$1\autoexec.bat" a + FileSeek $1 -1 END + FileReadByte $1 $2 + IntCmp $2 26 0 +2 +2 # DOS EOF + FileSeek $1 -1 END # write over EOF + FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n" + FileClose $1 + SetRebootFlag true + Goto AddToPath_done + + AddToPath_NT: + ReadRegStr $1 ${WriteEnvStr_RegKey} "PATH" + StrCmp $1 "" AddToPath_NTdoIt + Push $1 + Call Trim + Pop $1 + StrCpy $0 "$1;$0" + AddToPath_NTdoIt: + WriteRegExpandStr ${WriteEnvStr_RegKey} "PATH" $0 + SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 + + AddToPath_done: + Pop $3 + Pop $2 + Pop $1 + Pop $0 +FunctionEnd + + +; RemoveFromPath - Remove a given dir from the path +; Input: head of the stack + +Function un.RemoveFromPath + Exch $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + + IntFmt $6 "%c" 26 # DOS EOF + + Call un.IsNT + Pop $1 + StrCmp $1 1 unRemoveFromPath_NT + ; Not on NT + StrCpy $1 $WINDIR 2 + FileOpen $1 "$1\autoexec.bat" r + GetTempFileName $4 + FileOpen $2 $4 w + GetFullPathName /SHORT $0 $0 + StrCpy $0 "SET PATH=%PATH%;$0" + Goto unRemoveFromPath_dosLoop + + unRemoveFromPath_dosLoop: + FileRead $1 $3 + StrCpy $5 $3 1 -1 # read last char + StrCmp $5 $6 0 +2 # if DOS EOF + StrCpy $3 $3 -1 # remove DOS EOF so we can compare + StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine + StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine + StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine + StrCmp $3 "" unRemoveFromPath_dosLoopEnd + FileWrite $2 $3 + Goto unRemoveFromPath_dosLoop + unRemoveFromPath_dosLoopRemoveLine: + SetRebootFlag true + Goto unRemoveFromPath_dosLoop + + unRemoveFromPath_dosLoopEnd: + FileClose $2 + FileClose $1 + StrCpy $1 $WINDIR 2 + Delete "$1\autoexec.bat" + CopyFiles /SILENT $4 "$1\autoexec.bat" + Delete $4 + Goto unRemoveFromPath_done + + unRemoveFromPath_NT: + ReadRegStr $1 ${WriteEnvStr_RegKey} "PATH" + StrCpy $5 $1 1 -1 # copy last char + StrCmp $5 ";" +2 # if last char != ; + StrCpy $1 "$1;" # append ; + Push $1 + Push "$0;" + Call un.StrStr ; Find `$0;` in $1 + Pop $2 ; pos of our dir + StrCmp $2 "" unRemoveFromPath_done + ; else, it is in path + # $0 - path to add + # $1 - path var + StrLen $3 "$0;" + StrLen $4 $2 + StrCpy $5 $1 -$4 # $5 is now the part before the path to remove + StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove + StrCpy $3 $5$6 + + StrCpy $5 $3 1 -1 # copy last char + StrCmp $5 ";" 0 +2 # if last char == ; + StrCpy $3 $3 -1 # remove last char + + WriteRegExpandStr ${WriteEnvStr_RegKey} "PATH" $3 + SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 + + unRemoveFromPath_done: + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Pop $0 +FunctionEnd + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Uninstall sutff +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +########################################### +# Utility Functions # +########################################### + +;==================================================== +; IsNT - Returns 1 if the current system is NT, 0 +; otherwise. +; Output: head of the stack +;==================================================== +; IsNT +; no input +; output, top of the stack = 1 if NT or 0 if not +; +; Usage: +; Call IsNT +; Pop $R0 +; ($R0 at this point is 1 or 0) + +!macro IsNT un +Function ${un}IsNT + Push $0 + ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion + StrCmp $0 "" 0 IsNT_yes + ; we are not NT. + Pop $0 + Push 0 + Return + + IsNT_yes: + ; NT!!! + Pop $0 + Push 1 +FunctionEnd +!macroend +!insertmacro IsNT "" +!insertmacro IsNT "un." + +; StrStr +; input, top of stack = string to search for +; top of stack-1 = string to search in +; output, top of stack (replaces with the portion of the string remaining) +; modifies no other variables. +; +; Usage: +; Push "this is a long ass string" +; Push "ass" +; Call StrStr +; Pop $R0 +; ($R0 at this point is "ass string") + +!macro StrStr un +Function ${un}StrStr +Exch $R1 ; st=haystack,old$R1, $R1=needle + Exch ; st=old$R1,haystack + Exch $R2 ; st=old$R1,old$R2, $R2=haystack + Push $R3 + Push $R4 + Push $R5 + StrLen $R3 $R1 + StrCpy $R4 0 + ; $R1=needle + ; $R2=haystack + ; $R3=len(needle) + ; $R4=cnt + ; $R5=tmp + loop: + StrCpy $R5 $R2 $R3 $R4 + StrCmp $R5 $R1 done + StrCmp $R5 "" done + IntOp $R4 $R4 + 1 + Goto loop +done: + StrCpy $R1 $R2 "" $R4 + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Exch $R1 +FunctionEnd +!macroend +!insertmacro StrStr "" +!insertmacro StrStr "un." + +Function Trim ; Added by Pelaca + Exch $R1 + Push $R2 +Loop: + StrCpy $R2 "$R1" 1 -1 + StrCmp "$R2" " " RTrim + StrCmp "$R2" "$\n" RTrim + StrCmp "$R2" "$\r" RTrim + StrCmp "$R2" ";" RTrim + GoTo Done +RTrim: + StrCpy $R1 "$R1" -1 + Goto Loop +Done: + Pop $R2 + Exch $R1 +FunctionEnd + +Function ConditionalAddToRegisty + Pop $0 + Pop $1 + StrCmp "$0" "" ConditionalAddToRegisty_EmptyString + WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" \ + "$1" "$0" + ;MessageBox MB_OK "Set Registry: '$1' to '$0'" + DetailPrint "Set install registry entry: '$1' to '$0'" + ConditionalAddToRegisty_EmptyString: +FunctionEnd + +;-------------------------------- +; Define some macro setting for the gui +@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@ +@CPACK_NSIS_INSTALLER_ICON_CODE@ + +;-------------------------------- +;Pages + !insertmacro MUI_PAGE_WELCOME + + !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@" + Page custom InstallOptionsPage + !insertmacro MUI_PAGE_DIRECTORY + + ;Start Menu Folder Page Configuration + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER + + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Reserve Files + + ;These files should be inserted before other files in the data block + ;Keep these lines before any File command + ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) + + ReserveFile "NSIS.InstallOptions.ini" + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS + + +;-------------------------------- +;Installer Sections + +Section "Installer Section" InstSection + + ;Use the entire tree produced by the INSTALL target. Keep the + ;list of directories here in sync with the RMDir commands below. + SetOutPath "$INSTDIR" + File /r "${INST_DIR}\*.*" + + ;Store installation folder + WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + Push "DisplayName" + Push "@CPACK_NSIS_DISPLAY_NAME@" + Call ConditionalAddToRegisty + Push "DisplayVersion" + Push "@CPACK_PACKAGE_VERSION@" + Call ConditionalAddToRegisty + Push "Publisher" + Push "@CPACK_PACKAGE_VENDOR@" + Call ConditionalAddToRegisty + Push "UninstallString" + Push "$INSTDIR\Uninstall.exe" + Call ConditionalAddToRegisty + + ; Optional registration + Push "DisplayIcon" + Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@" + Call ConditionalAddToRegisty + Push "HelpLink" + Push "@CPACK_NSIS_HELP_LINK@" + Call ConditionalAddToRegisty + Push "URLInfoAbout" + Push "@CPACK_NSIS_URL_INFO_ABOUT@" + Call ConditionalAddToRegisty + Push "Contact" + Push "@CPACK_NSIS_CONTACT@" + Call ConditionalAddToRegisty + !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State" + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + + ;Create shortcuts + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" +@CPACK_NSIS_CREATE_ICONS@ +@CPACK_NSIS_CREATE_ICONS_EXTRA@ + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + + ; Write special uninstall registry entries + Push "StartMenu" + Push "$STARTMENU_FOLDER" + Call ConditionalAddToRegisty + Push "DoNotAddToPath" + Push "$DO_NOT_ADD_TO_PATH" + Call ConditionalAddToRegisty + Push "AddToPathAllUsers" + Push "$ADD_TO_PATH_ALL_USERS" + Call ConditionalAddToRegisty + Push "AddToPathCurrentUser" + Push "$ADD_TO_PATH_CURRENT_USER" + Call ConditionalAddToRegisty + Push "InstallToDesktop" + Push "$INSTALL_DESKTOP" + Call ConditionalAddToRegisty + +@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ + + !insertmacro MUI_STARTMENU_WRITE_END + +SectionEnd + +Section "Add to path" + Push $INSTDIR\bin + ;Read a value from an InstallOptions INI file + !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State" + StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0 + Call AddToPath + doNotAddToPath: +SectionEnd + + +;-------------------------------- +; Create custom pages +Function InstallOptionsPage + !insertmacro MUI_HEADER_TEXT "Install Options" "Chose options for installing @CPACK_PACKAGE_INSTALL_DIRECTORY@" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini" + +FunctionEnd + +;-------------------------------- +; determine admin versus local install +Function un.onInit + + ClearErrors + UserInfo::GetName + IfErrors noLM + Pop $0 + UserInfo::GetAccountType + Pop $1 + StrCmp $1 "Admin" 0 +3 + SetShellVarContext all + ;MessageBox MB_OK 'User "$0" is in the Admin group' + Goto done + StrCmp $1 "Power" 0 +3 + SetShellVarContext all + ;MessageBox MB_OK 'User "$0" is in the Power Users group' + Goto done + + noLM: + ;Get installation folder from registry if available + + done: +FunctionEnd + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + ReadRegStr $START_MENU SHCTX \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "StartMenu" + ;MessageBox MB_OK "Start menu is in: $START_MENU" + ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "DoNotAddToPath" + ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPathAllUsers" + ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPathCurrentUser" + ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS" + ReadRegStr $INSTALL_DESKTOP SHCTX \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "InstallToDesktop" + ;MessageBox MB_OK "Install to desktop: $INSTALL_DESKTOP " + +@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@ + + ;Remove files we installed. + ;Keep the list of directories here in sync with the File commands above. +@CPACK_NSIS_DELETE_FILES@ +@CPACK_NSIS_DELETE_DIRECTORIES@ + + ;Remove the uninstaller itself. + Delete "$INSTDIR\Uninstall.exe" + DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" + + ;Remove the installation directory if it is empty. + RMDir "$INSTDIR" + + ; Remove the registry entries. + DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" + + !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP + + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" +@CPACK_NSIS_DELETE_ICONS@ +@CPACK_NSIS_DELETE_ICONS_EXTRA@ + + ;Delete empty start menu parent diretories + StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" + + startMenuDeleteLoop: + ClearErrors + RMDir $MUI_TEMP + GetFullPathName $MUI_TEMP "$MUI_TEMP\.." + + IfErrors startMenuDeleteLoopDone + + StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop + startMenuDeleteLoopDone: + + ; If the user changed the shortcut, then untinstall may not work. This should + ; try to fix it. + StrCpy $MUI_TEMP "$START_MENU" + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" +@CPACK_NSIS_DELETE_ICONS_EXTRA@ + + ;Delete empty start menu parent diretories + StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" + + secondStartMenuDeleteLoop: + ClearErrors + RMDir $MUI_TEMP + GetFullPathName $MUI_TEMP "$MUI_TEMP\.." + + IfErrors secondStartMenuDeleteLoopDone + + StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop + secondStartMenuDeleteLoopDone: + + DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" + + Push $INSTDIR\bin + StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0 + Call un.RemoveFromPath + doNotRemoveFromPath: +SectionEnd + + diff --git a/CMakeLua/Modules/Platform/AIX-VisualAge-Fortran.cmake b/CMakeLua/Modules/Platform/AIX-VisualAge-Fortran.cmake new file mode 100755 index 0000000..086c592 --- /dev/null +++ b/CMakeLua/Modules/Platform/AIX-VisualAge-Fortran.cmake @@ -0,0 +1 @@ +include(Platform/xlf) diff --git a/CMakeLua/Modules/Platform/AIX.cmake b/CMakeLua/Modules/Platform/AIX.cmake new file mode 100644 index 0000000..d6b6af0 --- /dev/null +++ b/CMakeLua/Modules/Platform/AIX.cmake @@ -0,0 +1,69 @@ +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so +SET(CMAKE_DL_LIBS "-lld") + +# RPATH support on AIX is called libpath. By default the runtime +# libpath is paths specified by -L followed by /usr/lib and /lib. In +# order to prevent the -L paths from being used we must force use of +# -Wl,-blibpath:/usr/lib:/lib whether RPATH support is on or not. +# When our own RPATH is to be added it may be inserted before the +# "always" paths. +SET(CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH /usr/lib /lib) +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-blibpath:") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") + +# CXX Compiler +IF(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared -Wl,-G") # -shared +ELSE(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G -Wl,-brtl,-bnoipath") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-Wl,-brtl,-bnoipath,-bexpall") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS " ") + SET(CMAKE_SHARED_MODULE_CXX_FLAGS " ") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O -DNDEBUG") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g") +ENDIF(CMAKE_COMPILER_IS_GNUCXX) + +# C Compiler +IF(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-G") # -shared +ELSE(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-G -Wl,-brtl,-bnoipath") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-brtl,-bnoipath,-bexpall") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_C_FLAGS " ") + SET(CMAKE_SHARED_MODULE_C_FLAGS " ") + SET (CMAKE_C_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_C_FLAGS_RELEASE_INIT "-O -DNDEBUG") + SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-O -DNDEBUG") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g") +ENDIF(CMAKE_COMPILER_IS_GNUCC) + +IF(NOT CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") +ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) + +IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_CXX_COMPILE_OBJECT + " -+ -o -c ") + SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") +ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) + + +# since .a can be a static or shared library on AIX, we can not do this. +# at some point if we wanted it, we would have to figure out if a .a is +# static or shared, then we could add this back: + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +#FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) +# SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-bstatic") +# SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-bdynamic") +#ENDFOREACH(type) + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/BSDOS.cmake b/CMakeLua/Modules/Platform/BSDOS.cmake new file mode 100644 index 0000000..cf9d17b --- /dev/null +++ b/CMakeLua/Modules/Platform/BSDOS.cmake @@ -0,0 +1,2 @@ +INCLUDE(Platform/UnixPaths) + diff --git a/CMakeLua/Modules/Platform/BeOS.cmake b/CMakeLua/Modules/Platform/BeOS.cmake new file mode 100644 index 0000000..f4d84d7 --- /dev/null +++ b/CMakeLua/Modules/Platform/BeOS.cmake @@ -0,0 +1,14 @@ +SET(BEOS 1) + +# GCC is the default compiler on BeOS. +INCLUDE(${CMAKE_ROOT}/Modules/Platform/gcc.cmake) + +SET(CMAKE_DL_LIBS root be) +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/BlueGeneL.cmake b/CMakeLua/Modules/Platform/BlueGeneL.cmake new file mode 100644 index 0000000..7794a26 --- /dev/null +++ b/CMakeLua/Modules/Platform/BlueGeneL.cmake @@ -0,0 +1,40 @@ +#the compute nodes on BlueGene/L don't support shared libs +SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty + +SET(CMAKE_LINK_LIBRARY_SUFFIX "") +SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a +SET(CMAKE_EXECUTABLE_SUFFIX "") # .exe +SET(CMAKE_DL_LIBS "" ) + +SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + + +INCLUDE(Platform/UnixPaths) + +IF(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_C_LINK_EXECUTABLE + " -Wl,-relax -o -Wl,-lgcc,-lc -lnss_files -lnss_dns -lresolv") +ELSE(CMAKE_COMPILER_IS_GNUCC) + # when using IBM xlc we probably don't want to link to -lgcc + SET(CMAKE_C_LINK_EXECUTABLE + " -Wl,-relax -o -Wl,-lc -lnss_files -lnss_dns -lresolv") +ENDIF(CMAKE_COMPILER_IS_GNUCC) + +IF(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_CXX_LINK_EXECUTABLE + " -Wl,-relax -o -Wl,-lstdc++,-lgcc,-lc -lnss_files -lnss_dns -lresolv") +ELSE(CMAKE_COMPILER_IS_GNUCXX) + # when using the IBM xlC we probably don't want to link to -lgcc + SET(CMAKE_CXX_LINK_EXECUTABLE + " -Wl,-relax -o -Wl,-lstdc++,-lc -lnss_files -lnss_dns -lresolv") +ENDIF(CMAKE_COMPILER_IS_GNUCXX) diff --git a/CMakeLua/Modules/Platform/CMakeLists.txt b/CMakeLua/Modules/Platform/CMakeLists.txt new file mode 100644 index 0000000..6d8f4a1 --- /dev/null +++ b/CMakeLua/Modules/Platform/CMakeLists.txt @@ -0,0 +1,3 @@ +# just install the modules +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules/Platform .*\\.cmake$) +INSTALL_FILES(${CMAKE_DATA_DIR}/Modules/Platform .*\\.in$) diff --git a/CMakeLua/Modules/Platform/CVS/Entries b/CMakeLua/Modules/Platform/CVS/Entries new file mode 100644 index 0000000..cd5ffb7 --- /dev/null +++ b/CMakeLua/Modules/Platform/CVS/Entries @@ -0,0 +1,72 @@ +/BSDOS.cmake/1.5/Fri Aug 10 12:54:42 2007//T1.5 +/BeOS.cmake/1.3/Fri Aug 10 12:54:42 2007//T1.3 +/CMakeLists.txt/1.3/Thu Feb 24 16:46:27 2005//T1.3 +/CYGWIN-g77.cmake/1.4/Tue Jan 3 19:00:48 2006//T1.4 +/CYGWIN.cmake/1.20/Thu Aug 9 18:45:23 2007//T1.20 +/Darwin-xlc.cmake/1.3/Wed Apr 6 19:06:08 2005//T1.3 +/DragonFly.cmake/1.1/Fri Jul 13 15:20:42 2007//T1.1 +/GNU.cmake/1.1/Wed Jun 27 15:42:10 2007//T1.1 +/Generic-ADSP-ASM.cmake/1.1/Thu Jul 12 17:41:00 2007//T1.1 +/Generic-ADSP-C.cmake/1.1/Thu Jul 12 17:41:00 2007//T1.1 +/Generic-ADSP-CXX.cmake/1.1/Thu Jul 12 17:41:00 2007//T1.1 +/Generic-ADSP-Common.cmake/1.1/Thu Jul 12 17:41:00 2007//T1.1 +/Linux-PGI-C.cmake/1.1/Mon Sep 17 19:55:17 2007//T1.1 +/Linux-PGI-CXX.cmake/1.1/Mon Sep 17 19:55:17 2007//T1.1 +/Linux-SunPro-CXX.cmake/1.2/Thu May 3 12:24:32 2007//T1.2 +/Linux-como.cmake/1.5/Wed Sep 22 18:42:05 2004//T1.5 +/Linux-icpc.cmake/1.1/Tue Nov 22 16:44:07 2005//T1.1 +/MP-RAS.cmake/1.6/Fri Aug 10 12:54:42 2007//T1.6 +/OSF1.cmake/1.14/Mon Mar 27 15:46:42 2006//T1.14 +/OpenBSD.cmake/1.6/Mon Mar 27 16:09:19 2006//T1.6 +/RISCos.cmake/1.6/Fri Aug 10 12:54:42 2007//T1.6 +/SCO_SV.cmake/1.5/Mon Mar 27 15:46:42 2006//T1.5 +/SINIX.cmake/1.5/Mon Mar 27 15:46:42 2006//T1.5 +/Tru64.cmake/1.2/Mon Mar 27 15:46:42 2006//T1.2 +/ULTRIX.cmake/1.6/Mon Mar 27 15:46:42 2006//T1.6 +/UNIX_SV.cmake/1.6/Mon Mar 27 15:46:42 2006//T1.6 +/UnixWare.cmake/1.5/Mon Mar 27 15:46:42 2006//T1.5 +/Windows-df.cmake/1.1/Tue Feb 20 21:43:32 2007//T1.1 +/Windows-g++.cmake/1.1/Thu Feb 9 19:18:48 2006//T1.1 +/Windows-g77.cmake/1.2/Mon Jan 2 18:37:53 2006//T1.2 +/Windows.cmake/1.8/Thu Aug 9 18:45:23 2007//T1.8 +/Xenix.cmake/1.5/Mon Mar 27 15:46:42 2006//T1.5 +/g77.cmake/1.2/Wed Jul 13 12:29:56 2005//T1.2 +/gas.cmake/1.1/Thu Jun 28 13:14:27 2007//T1.1 +/gcc.cmake/1.15/Tue May 22 13:15:00 2007//T1.15 +/Linux-GNU-Fortran.cmake/1.1/Sun Dec 30 21:11:37 2007//T1.1 +/Linux-SunPro-Fortran.cmake/1.3/Mon Dec 31 08:24:05 2007//T1.3 +/Linux-ifort.cmake/1.4/Mon Dec 31 08:24:06 2007//T1.4 +/SunOS-SunPro-Fortran.cmake/1.1/Sun Dec 30 21:34:49 2007//T1.1 +/Linux-VisualAge-C.cmake/1.2/Sat Feb 2 02:47:32 2008//T1.2 +/AIX-VisualAge-Fortran.cmake/1.2/Sat Feb 2 02:47:56 2008//T1.2 +/Linux-VisualAge-Fortran.cmake/1.3/Sat Feb 2 02:47:58 2008//T1.3 +/Windows-icl.cmake/1.4/Sat Feb 2 02:48:20 2008//T1.4 +/Generic-SDCC-C.cmake/1.5/Sat Feb 2 02:48:21 2008//T1.5 +/cl.cmake/1.5/Sat Feb 2 02:48:21 2008//T1.5 +/Windows-bcc32.cmake/1.44/Sat Feb 2 02:48:32 2008//T1.44 +/syllable.cmake/1.2/Sat Feb 2 02:49:41 2008//T1.2 +/WindowsPaths.cmake/1.5/Sat Feb 2 02:49:42 2008//T1.5 +/xlf.cmake/1.2/Sat Feb 2 02:50:08 2008//T1.2 +/Catamount.cmake/1.2/Sat Feb 2 02:50:30 2008//T1.2 +/eCos.cmake/1.3/Sat Feb 2 02:50:31 2008//T1.3 +/Generic.cmake/1.4/Sat Feb 2 02:50:32 2008//T1.4 +/BlueGeneL.cmake/1.7/Sat Feb 2 02:50:33 2008//T1.7 +/UnixPaths.cmake/1.13/Sat Feb 2 02:50:35 2008//T1.13 +/Windows-ifort.cmake/1.5/Sat Feb 2 02:51:27 2008//T1.5 +/Windows-cl.cmake/1.83/Sat Feb 2 02:52:14 2008//T1.83 +/Windows-cl.cmake.in/1.4/Sat Feb 2 02:52:25 2008//T1.4 +/AIX.cmake/1.20/Sat Feb 2 02:53:34 2008//T1.20 +/Windows-wcl386.cmake/1.8/Sat Feb 2 02:55:26 2008//T1.8 +/Linux-SunPro-C.cmake/1.3/Sat Feb 2 02:58:44 2008//T1.3 +/Windows-gcc.cmake/1.20/Sat Feb 2 02:59:27 2008//T1.20 +/QNX.cmake/1.10/Sat Feb 2 03:02:21 2008//T1.10 +/Linux.cmake/1.17/Sat Feb 2 03:02:26 2008//T1.17 +/Darwin.cmake/1.44/Sat Feb 2 03:02:33 2008//T1.44 +/FreeBSD.cmake/1.11/Sat Feb 2 03:02:42 2008//T1.11 +/IRIX.cmake/1.14/Sat Feb 2 03:02:44 2008//T1.14 +/IRIX64.cmake/1.19/Sat Feb 2 03:02:45 2008//T1.19 +/SunOS.cmake/1.22/Sat Feb 2 03:02:46 2008//T1.22 +/HP-UX.cmake/1.26/Sat Feb 2 03:02:47 2008//T1.26 +/kFreeBSD.cmake/1.4/Sun Feb 3 09:01:37 2008//T1.4 +/NetBSD.cmake/1.9/Sun Feb 3 09:01:38 2008//T1.9 +D diff --git a/CMakeLua/Modules/Platform/CVS/Repository b/CMakeLua/Modules/Platform/CVS/Repository new file mode 100644 index 0000000..12e31ec --- /dev/null +++ b/CMakeLua/Modules/Platform/CVS/Repository @@ -0,0 +1 @@ +CMake/Modules/Platform diff --git a/CMakeLua/Modules/Platform/CVS/Root b/CMakeLua/Modules/Platform/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Modules/Platform/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Modules/Platform/CVS/Tag b/CMakeLua/Modules/Platform/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Modules/Platform/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Modules/Platform/CVS/Template b/CMakeLua/Modules/Platform/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Modules/Platform/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Modules/Platform/CYGWIN-g77.cmake b/CMakeLua/Modules/Platform/CYGWIN-g77.cmake new file mode 100755 index 0000000..942319f --- /dev/null +++ b/CMakeLua/Modules/Platform/CYGWIN-g77.cmake @@ -0,0 +1,6 @@ +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") +SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "") +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +INCLUDE(Platform/g77) diff --git a/CMakeLua/Modules/Platform/CYGWIN.cmake b/CMakeLua/Modules/Platform/CYGWIN.cmake new file mode 100644 index 0000000..c9170a0 --- /dev/null +++ b/CMakeLua/Modules/Platform/CYGWIN.cmake @@ -0,0 +1,54 @@ +SET(WIN32 1) +SET(CYGWIN 1) + +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,--export-all-symbols -Wl,--enable-auto-import") +SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}) +SET(CMAKE_DL_LIBS "-lgdi32" ) +SET(CMAKE_SHARED_LIBRARY_PREFIX "cyg") +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") +SET(CMAKE_SHARED_MODULE_PREFIX "lib") +SET(CMAKE_SHARED_MODULE_SUFFIX ".dll") +SET(CMAKE_IMPORT_LIBRARY_PREFIX "lib") +SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".dll.a") +# no pic for gcc on cygwin +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "") +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +SET(CMAKE_CREATE_WIN32_EXE "-mwindows") +# Modules have a different default prefix that shared libs. +SET(CMAKE_MODULE_EXISTS 1) + +SET(CMAKE_FIND_LIBRARY_PREFIXES "cyg" "lib") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a") + +SET(CMAKE_GNULD_IMAGE_VERSION + "-Wl,--major-image-version,,--minor-image-version,") + +SET(CMAKE_C_CREATE_SHARED_MODULE + " -o ${CMAKE_GNULD_IMAGE_VERSION} ") +SET(CMAKE_CXX_CREATE_SHARED_MODULE + " -o ${CMAKE_GNULD_IMAGE_VERSION} ") + +SET(CMAKE_C_CREATE_SHARED_LIBRARY + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") + +SET(CMAKE_C_LINK_EXECUTABLE + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") +SET(CMAKE_CXX_LINK_EXECUTABLE + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") + +# Shared libraries on cygwin can be named with their version number. +SET(CMAKE_SHARED_LIBRARY_NAME_WITH_VERSION 1) + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +ENDFOREACH(type) + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/Catamount.cmake b/CMakeLua/Modules/Platform/Catamount.cmake new file mode 100644 index 0000000..01493fc --- /dev/null +++ b/CMakeLua/Modules/Platform/Catamount.cmake @@ -0,0 +1,26 @@ +#Catamount, which runs on the compute nodes of Cray machines, e.g. RedStorm, doesn't support shared libs +SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty + +SET(CMAKE_LINK_LIBRARY_SUFFIX "") +SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a +SET(CMAKE_EXECUTABLE_SUFFIX "") # .exe +SET(CMAKE_DL_LIBS "" ) + +SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + +INCLUDE(Platform/UnixPaths) + +SET(CMAKE_CXX_LINK_SHARED_LIBRARY) +SET(CMAKE_CXX_LINK_MODULE_LIBRARY) +SET(CMAKE_C_LINK_SHARED_LIBRARY) +SET(CMAKE_C_LINK_MODULE_LIBRARY) diff --git a/CMakeLua/Modules/Platform/Darwin-xlc.cmake b/CMakeLua/Modules/Platform/Darwin-xlc.cmake new file mode 100644 index 0000000..f7e4da3 --- /dev/null +++ b/CMakeLua/Modules/Platform/Darwin-xlc.cmake @@ -0,0 +1,6 @@ +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-qmkshrobj") +SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle") + +# Enable shared library versioning. +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-install_name") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-install_name") diff --git a/CMakeLua/Modules/Platform/Darwin.cmake b/CMakeLua/Modules/Platform/Darwin.cmake new file mode 100644 index 0000000..ce306b0 --- /dev/null +++ b/CMakeLua/Modules/Platform/Darwin.cmake @@ -0,0 +1,158 @@ +SET(APPLE 1) + +# Darwin versions: +# 6.x == Mac OSX 10.2 +# 7.x == Mac OSX 10.3 +# 8.x == Mac OSX 10.4 +# 9.x == Mac OSX 10.5 +STRING(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_SYSTEM_VERSION}") +STRING(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" DARWIN_MINOR_VERSION "${CMAKE_SYSTEM_VERSION}") + +# Do not use the "-Wl,-search_paths_first" flag with the OSX 10.2 compiler. +# Done this way because it is too early to do a TRY_COMPILE. +IF(NOT DEFINED HAVE_FLAG_SEARCH_PATHS_FIRST) + SET(HAVE_FLAG_SEARCH_PATHS_FIRST 0) + IF("${DARWIN_MAJOR_VERSION}" GREATER 6) + SET(HAVE_FLAG_SEARCH_PATHS_FIRST 1) + ENDIF("${DARWIN_MAJOR_VERSION}" GREATER 6) +ENDIF(NOT DEFINED HAVE_FLAG_SEARCH_PATHS_FIRST) +# More desirable, but does not work: + #INCLUDE(CheckCXXCompilerFlag) + #CHECK_CXX_COMPILER_FLAG("-Wl,-search_paths_first" HAVE_FLAG_SEARCH_PATHS_FIRST) + +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") +SET(CMAKE_SHARED_MODULE_PREFIX "lib") +SET(CMAKE_SHARED_MODULE_SUFFIX ".so") +SET(CMAKE_MODULE_EXISTS 1) +SET(CMAKE_DL_LIBS "") + +SET(CMAKE_C_LINK_FLAGS "-headerpad_max_install_names") +SET(CMAKE_CXX_LINK_FLAGS "-headerpad_max_install_names") + +IF(HAVE_FLAG_SEARCH_PATHS_FIRST) + SET(CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") + SET(CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") +ENDIF(HAVE_FLAG_SEARCH_PATHS_FIRST) + +SET(CMAKE_PLATFORM_HAS_INSTALLNAME 1) +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names") +SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names") +SET(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") +SET(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") + +# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree +# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache +# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) +# hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex +IF(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) + SET(CMAKE_INSTALL_NAME_TOOL install_name_tool) +ENDIF(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) +# find installed SDKs +FILE(GLOB _CMAKE_OSX_SDKS "/Developer/SDKs/*") +# setup for universal binaries if sysroot exists +IF(_CMAKE_OSX_SDKS) + # find the most recent sdk for the default + LIST(SORT _CMAKE_OSX_SDKS) + LIST(REVERSE _CMAKE_OSX_SDKS) + LIST(GET _CMAKE_OSX_SDKS 0 _CMAKE_OSX_SDKS) + # use the environment variable CMAKE_OSX_SYSROOT if it is set + IF(NOT "$ENV{CMAKE_OSX_SYSROOT}" STREQUAL "") + SET(_CMAKE_OSX_SDKS "$ENV{CMAKE_OSX_SYSROOT}") + ENDIF(NOT "$ENV{CMAKE_OSX_SYSROOT}" STREQUAL "") + SET(CMAKE_OSX_SYSROOT ${_CMAKE_OSX_SDKS} CACHE STRING + "isysroot used for universal binary support") + # set _CMAKE_OSX_MACHINE to umame -m + EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE _CMAKE_OSX_MACHINE) + # check for Power PC and change to ppc + IF("${_CMAKE_OSX_MACHINE}" MATCHES "Power") + SET(_CMAKE_OSX_MACHINE ppc) + ENDIF("${_CMAKE_OSX_MACHINE}" MATCHES "Power") + # set the default based on uname and not the environment variable + # as that is what is used to change it! + SET(CMAKE_OSX_ARCHITECTURES_DEFAULT ${_CMAKE_OSX_MACHINE}) + # check for environment variable CMAKE_OSX_ARCHITECTURES + # if it is set. + IF(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") + SET(_CMAKE_OSX_MACHINE "$ENV{CMAKE_OSX_ARCHITECTURES}") + ENDIF(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") + # now put _CMAKE_OSX_MACHINE into the cache + SET(CMAKE_OSX_ARCHITECTURES ${_CMAKE_OSX_MACHINE} + CACHE STRING "Build architectures for OSX") +ENDIF(_CMAKE_OSX_SDKS) + + +IF("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") + SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS + "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined suppress") +ENDIF("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") + +IF(NOT XCODE) + # Enable shared library versioning. This flag is not actually referenced + # but the fact that the setting exists will cause the generators to support + # soname computation. + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-install_name") + SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-install_name") +ENDIF(NOT XCODE) + +# Xcode does not support -isystem yet. +IF(XCODE) + SET(CMAKE_INCLUDE_SYSTEM_FLAG_C) + SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) +ENDIF(XCODE) + +# Need to list dependent shared libraries on link line. When building +# with -isysroot (for universal binaries), the linker always looks for +# dependent libraries under the sysroot. Listing them on the link +# line works around the problem. +SET(CMAKE_LINK_DEPENDENT_LIBRARY_FILES 1) + +SET(CMAKE_MacOSX_Content_COMPILE_OBJECT "\"${CMAKE_COMMAND}\" -E copy_if_different ") + +SET(CMAKE_C_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w) +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w) +SET(CMAKE_C_CREATE_SHARED_LIBRARY + " -o -install_name ") +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + " -o -install_name ") +SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY + " -o -install_name ") + +SET(CMAKE_CXX_CREATE_SHARED_MODULE + " -o ") + +SET(CMAKE_C_CREATE_SHARED_MODULE + " -o ") + +SET(CMAKE_Fortran_CREATE_SHARED_MODULE + " -o ") + +SET(CMAKE_C_CREATE_MACOSX_FRAMEWORK + " -o -install_name ") +SET(CMAKE_CXX_CREATE_MACOSX_FRAMEWORK + " -o -install_name ") + + + +SET(CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES /usr/local/include) +# default to searching for frameworks first +SET(CMAKE_FIND_FRAMEWORK FIRST) +# set up the default search directories for frameworks +SET(CMAKE_SYSTEM_FRAMEWORK_PATH + ~/Library/Frameworks + /Library/Frameworks + /Network/Library/Frameworks + /System/Library/Frameworks) + +# default to searching for application bundles first +SET(CMAKE_FIND_APPBUNDLE FIRST) +# set up the default search directories for application bundles +SET(CMAKE_SYSTEM_APPBUNDLE_PATH + ~/Applications + /Applications + /Developer/Applications) + +INCLUDE(Platform/UnixPaths) +LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH /sw) diff --git a/CMakeLua/Modules/Platform/DragonFly.cmake b/CMakeLua/Modules/Platform/DragonFly.cmake new file mode 100644 index 0000000..f6e0f81 --- /dev/null +++ b/CMakeLua/Modules/Platform/DragonFly.cmake @@ -0,0 +1,5 @@ +# DragonFly BSD was forked from FreeBSD and is still very close to it +# http://www.dragonflybsd.org +# see http://archive.netbsd.se/?ml=dfbsd-users&a=2007-07&m=4678361 + +INCLUDE(Platform/FreeBSD) diff --git a/CMakeLua/Modules/Platform/FreeBSD.cmake b/CMakeLua/Modules/Platform/FreeBSD.cmake new file mode 100644 index 0000000..299847b --- /dev/null +++ b/CMakeLua/Modules/Platform/FreeBSD.cmake @@ -0,0 +1,24 @@ +IF(EXISTS /usr/include/dlfcn.h) + SET(CMAKE_DL_LIBS "") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") + SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") + SET(CMAKE_EXE_EXPORTS_CXX_FLAG "-Wl,--export-dynamic") +ENDIF(EXISTS /usr/include/dlfcn.h) + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +ENDFOREACH(type) + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/GNU.cmake b/CMakeLua/Modules/Platform/GNU.cmake new file mode 100644 index 0000000..26615e1 --- /dev/null +++ b/CMakeLua/Modules/Platform/GNU.cmake @@ -0,0 +1,10 @@ +# GCC is the default compiler on GNU/Hurd. +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-rdynamic") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/Generic-ADSP-ASM.cmake b/CMakeLua/Modules/Platform/Generic-ADSP-ASM.cmake new file mode 100644 index 0000000..4f6ed75 --- /dev/null +++ b/CMakeLua/Modules/Platform/Generic-ADSP-ASM.cmake @@ -0,0 +1,7 @@ +INCLUDE(Platform/Generic-ADSP-Common) + +SET(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm) +SET(CMAKE_ASM_OUTPUT_EXTENSION ".doj" ) +SET(CMAKE_ASM_COMPILE_OBJECT + " -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o ") + diff --git a/CMakeLua/Modules/Platform/Generic-ADSP-C.cmake b/CMakeLua/Modules/Platform/Generic-ADSP-C.cmake new file mode 100644 index 0000000..f064468 --- /dev/null +++ b/CMakeLua/Modules/Platform/Generic-ADSP-C.cmake @@ -0,0 +1,20 @@ + +INCLUDE(Platform/Generic-ADSP-Common) + + +SET(CMAKE_C_OUTPUT_EXTENSION ".doj") + +SET(CMAKE_C_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "") +SET(CMAKE_C_FLAGS_RELEASE_INIT "") +SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "") + +SET(CMAKE_C_CREATE_STATIC_LIBRARY + " -build-lib -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o ") + +SET(CMAKE_C_LINK_EXECUTABLE + " -o ") + +SET(CMAKE_C_CREATE_SHARED_LIBRARY) +SET(CMAKE_C_CREATE_MODULE_LIBRARY) + diff --git a/CMakeLua/Modules/Platform/Generic-ADSP-CXX.cmake b/CMakeLua/Modules/Platform/Generic-ADSP-CXX.cmake new file mode 100644 index 0000000..21daa81 --- /dev/null +++ b/CMakeLua/Modules/Platform/Generic-ADSP-CXX.cmake @@ -0,0 +1,18 @@ +INCLUDE(Platform/Generic-ADSP-Common) + +SET(CMAKE_CXX_OUTPUT_EXTENSION ".doj") + +SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "") +SET(CMAKE_CXX_FLAGS_RELEASE_INIT "") +SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "") + +SET(CMAKE_CXX_CREATE_STATIC_LIBRARY + " -build-lib -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o ") + +SET(CMAKE_CXX_LINK_EXECUTABLE + " -o ") + +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY) +SET(CMAKE_CXX_CREATE_MODULE_LIBRARY) + diff --git a/CMakeLua/Modules/Platform/Generic-ADSP-Common.cmake b/CMakeLua/Modules/Platform/Generic-ADSP-Common.cmake new file mode 100644 index 0000000..10fb34e --- /dev/null +++ b/CMakeLua/Modules/Platform/Generic-ADSP-Common.cmake @@ -0,0 +1,120 @@ +# support for the Analog Devices toolchain for their DSPs +# Raphael Cotty" +# +# it supports three architectures: +# Blackfin +# TS (TigerShark) +# 21k (Sharc 21xxx) + +IF(NOT ADSP) + + SET(ADSP TRUE) + + SET(CMAKE_STATIC_LIBRARY_SUFFIX ".dlb") + SET(CMAKE_SHARED_LIBRARY_SUFFIX "") + SET(CMAKE_EXECUTABLE_SUFFIX ".dxe") + + # if ADSP_PROCESSOR has not been set, but CMAKE_SYSTEM_PROCESSOR has, + # assume that this is the processor name to use for the compiler + IF(CMAKE_SYSTEM_PROCESSOR AND NOT ADSP_PROCESSOR) + SET(ADSP_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}) + ENDIF(CMAKE_SYSTEM_PROCESSOR AND NOT ADSP_PROCESSOR) + + # if ADSP_PROCESSOR_SILICIUM_REVISION has not been set, use "none" + IF(NOT ADSP_PROCESSOR_SILICIUM_REVISION) + SET(ADSP_PROCESSOR_SILICIUM_REVISION "none") + ENDIF(NOT ADSP_PROCESSOR_SILICIUM_REVISION) + + # this file is included from the C and CXX files, so handle both here + + GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_C_COMPILER}" PATH) + IF(NOT _ADSP_DIR) + GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_CXX_COMPILER}" PATH) + ENDIF(NOT _ADSP_DIR) + IF(NOT _ADSP_DIR) + GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_ASM_COMPILER}" PATH) + ENDIF(NOT _ADSP_DIR) + + # detect architecture + + IF(CMAKE_C_COMPILER MATCHES ccblkfn OR CMAKE_CXX_COMPILER MATCHES ccblkfn OR CMAKE_ASM_COMPILER MATCHES easmBLKFN) + IF(NOT ADSP_PROCESSOR) + SET(ADSP_PROCESSOR "ADSP-BF561") + ENDIF(NOT ADSP_PROCESSOR) + SET(ADSP_BLACKFIN TRUE) + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/Blackfin") + ENDIF(CMAKE_C_COMPILER MATCHES ccblkfn OR CMAKE_CXX_COMPILER MATCHES ccblkfn OR CMAKE_ASM_COMPILER MATCHES easmBLKFN) + + IF(CMAKE_C_COMPILER MATCHES ccts OR CMAKE_CXX_COMPILER MATCHES ccts OR CMAKE_ASM_COMPILER MATCHES easmTS) + IF(NOT ADSP_PROCESSOR) + SET(ADSP_PROCESSOR "ADSP-TS101") + ENDIF(NOT ADSP_PROCESSOR) + SET(ADSP_TS TRUE) + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/TS") + ENDIF(CMAKE_C_COMPILER MATCHES ccts OR CMAKE_CXX_COMPILER MATCHES ccts OR CMAKE_ASM_COMPILER MATCHES easmTS) + + IF(CMAKE_C_COMPILER MATCHES cc21k OR CMAKE_CXX_COMPILER MATCHES cc21k OR CMAKE_ASM_COMPILER MATCHES easm21k) + IF(NOT ADSP_PROCESSOR) + SET(ADSP_PROCESSOR "ADSP-21060") + ENDIF(NOT ADSP_PROCESSOR) + SET(ADSP_21K TRUE) + + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") # default if nothing matches + IF (ADSP_PROCESSOR MATCHES "210..$") + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") + ENDIF(ADSP_PROCESSOR MATCHES "210..$") + + IF (ADSP_PROCESSOR MATCHES "211..$") + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/211k") + ENDIF(ADSP_PROCESSOR MATCHES "211..$") + + IF (ADSP_PROCESSOR MATCHES "212..$") + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/212k") + ENDIF(ADSP_PROCESSOR MATCHES "212..$") + + IF (ADSP_PROCESSOR MATCHES "213..$") + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/213k") + ENDIF(ADSP_PROCESSOR MATCHES "213..$") + + SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") + ENDIF(CMAKE_C_COMPILER MATCHES cc21k OR CMAKE_CXX_COMPILER MATCHES cc21k OR CMAKE_ASM_COMPILER MATCHES easm21k) + + + LINK_DIRECTORIES("${_ADSP_FAMILY_DIR}/lib") + + # vdk support + FIND_PROGRAM( ADSP_VDKGEN_EXECUTABLE vdkgen "${_ADSP_FAMILY_DIR}/vdk" ) + + MACRO(ADSP_GENERATE_VDK VDK_GENERATED_HEADER VDK_GENERATED_SOURCE VDK_KERNEL_SUPPORT_FILE) + ADD_CUSTOM_COMMAND( + OUTPUT ${VDK_GENERATED_HEADER} ${VDK_GENERATED_SOURCE} + COMMAND ${ADSP_VDKGEN_EXECUTABLE} ${VDK_KERNEL_SUPPORT_FILE} -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -MM + DEPENDS ${VDK_KERNEL_SUPPORT_FILE} + ) + ENDMACRO(ADSP_GENERATE_VDK VDK_GENERATED_HEADER VDK_GENERATED_SOURCE VDK_KERNEL_SUPPORT_FILE) + + # loader support + FIND_PROGRAM( ADSP_ELFLOADER_EXECUTABLE elfloader "${_ADSP_FAMILY_DIR}" ) + + # BOOT_MODE: prom, flash, spi, spislave, UART, TWI, FIFO + # FORMAT: hex, ASCII, binary, include + # WIDTH: 8, 16 + MACRO(ADSP_CREATE_LOADER_FILE TARGET_NAME BOOT_MODE FORMAT WIDTH) + ADD_CUSTOM_COMMAND( + TARGET ${TARGET_NAME} + POST_BUILD + COMMAND ${ADSP_ELFLOADER_EXECUTABLE} ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.dxe -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -b ${BOOT_MODE} -f ${FORMAT} -width ${WIDTH} -o ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.ldr + COMMENT "Building the loader file" + ) + ENDMACRO(ADSP_CREATE_LOADER_FILE TARGET_NAME BOOT_MODE FORMAT WIDTH) + + MACRO(ADSP_CREATE_LOADER_FILE_INIT TARGET_NAME BOOT_MODE FORMAT WIDTH INITIALIZATION_FILE) + ADD_CUSTOM_COMMAND( + TARGET ${TARGET_NAME} + POST_BUILD + COMMAND ${ADSP_ELFLOADER_EXECUTABLE} ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.dxe -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -b ${BOOT_MODE} -f ${FORMAT} -width ${WIDTH} -o ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.ldr -init ${INITIALIZATION_FILE} + COMMENT "Building the loader file" + ) + ENDMACRO(ADSP_CREATE_LOADER_FILE_INIT TARGET_NAME BOOT_MODE FORMAT WIDTH INITIALIZATION_FILE) + +ENDIF(NOT ADSP) diff --git a/CMakeLua/Modules/Platform/Generic-SDCC-C.cmake b/CMakeLua/Modules/Platform/Generic-SDCC-C.cmake new file mode 100644 index 0000000..ac81c35 --- /dev/null +++ b/CMakeLua/Modules/Platform/Generic-SDCC-C.cmake @@ -0,0 +1,54 @@ + +# This file implements basic support for sdcc (http://sdcc.sourceforge.net/) +# a free C compiler for 8 and 16 bit microcontrollers. +# To use it either a toolchain file is required or cmake has to be run like this: +# cmake -DCMAKE_C_COMPILER=sdcc -DCMAKE_SYSTEM_NAME=Generic +# Since sdcc doesn't support C++, C++ support should be disabled in the +# CMakeLists.txt using the PROJECT() command: +# PROJECT(my_project C) + +SET(CMAKE_STATIC_LIBRARY_PREFIX "") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") +SET(CMAKE_SHARED_LIBRARY_PREFIX "") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".lib") # .so +SET(CMAKE_IMPORT_LIBRARY_PREFIX ) +SET(CMAKE_IMPORT_LIBRARY_SUFFIX ) +SET(CMAKE_EXECUTABLE_SUFFIX ".ihx") # intel hex file +SET(CMAKE_LINK_LIBRARY_SUFFIX ".lib") +SET(CMAKE_DL_LIBS "") + +SET(CMAKE_C_OUTPUT_EXTENSION ".rel") + +# find sdcclib as CMAKE_AR +# since cmake may already have searched for "ar", sdcclib has to +# be searched with a different variable name (SDCCLIB_EXECUTABLE) +# and must then be forced into the cache +GET_FILENAME_COMPONENT(SDCC_LOCATION "${CMAKE_C_COMPILER}" PATH) +FIND_PROGRAM(SDCCLIB_EXECUTABLE sdcclib PATHS "${SDCC_LOCATION}" NO_DEFAULT_PATH) +FIND_PROGRAM(SDCCLIB_EXECUTABLE sdcclib) +SET(CMAKE_AR "${SDCCLIB_EXECUTABLE}" CACHE FILEPATH "The sdcc librarian" FORCE) + +# CMAKE_C_FLAGS_INIT and CMAKE_EXE_LINKER_FLAGS_INIT should be set in a CMAKE_SYSTEM_PROCESSOR file +IF(NOT DEFINED CMAKE_C_FLAGS_INIT) + SET(CMAKE_C_FLAGS_INIT "-mmcs51 --model-small") +ENDIF(NOT DEFINED CMAKE_C_FLAGS_INIT) + +IF(NOT DEFINED CMAKE_EXE_LINKER_FLAGS_INIT) + SET (CMAKE_EXE_LINKER_FLAGS_INIT --model-small) +ENDIF(NOT DEFINED CMAKE_EXE_LINKER_FLAGS_INIT) + +# compile a C file into an object file +SET(CMAKE_C_COMPILE_OBJECT " -o -c ") + +# link object files to an executable +SET(CMAKE_C_LINK_EXECUTABLE " --out-fmt-ihx -o ") + +# needs sdcc 2.7.0 + sddclib from cvs +SET(CMAKE_C_CREATE_STATIC_LIBRARY + "\"${CMAKE_COMMAND}\" -E remove " + " -a ") + +# not supported by sdcc +SET(CMAKE_C_CREATE_SHARED_LIBRARY "") +SET(CMAKE_C_CREATE_MODULE_LIBRARY "") + diff --git a/CMakeLua/Modules/Platform/Generic.cmake b/CMakeLua/Modules/Platform/Generic.cmake new file mode 100755 index 0000000..00508b2 --- /dev/null +++ b/CMakeLua/Modules/Platform/Generic.cmake @@ -0,0 +1,11 @@ +# This is a platform definition file for platforms without +# operating system, typically embedded platforms. +# It is used when CMAKE_SYSTEM_NAME is set to "Generic" +# +# It is intentionally empty, since nothing is known +# about the platform. So everything has to be specified +# in the system/compiler files ${CMAKE_SYSTEM_NAME}-.cmake +# and/or ${CMAKE_SYSTEM_NAME}--${CMAKE_SYSTEM_PROCESSOR}.cmake + +# (embedded) targets without operating system usually don't support shared libraries +SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) diff --git a/CMakeLua/Modules/Platform/HP-UX.cmake b/CMakeLua/Modules/Platform/HP-UX.cmake new file mode 100644 index 0000000..8f0fce8 --- /dev/null +++ b/CMakeLua/Modules/Platform/HP-UX.cmake @@ -0,0 +1,118 @@ +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".sl") # .so +SET(CMAKE_DL_LIBS "dld") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".sl" ".so" ".a") + +# The HP linker needs to find transitive shared library dependencies +# in the -L path. Therefore the runtime path must be added to the +# link line with -L flags. +SET(CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH 1) +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) + +# fortran +IF(CMAKE_COMPILER_IS_GNUG77) + SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-fPIC") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-shared -Wl,-E,-b,+nodefaultrpath") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "-Wl,+b") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-Wl,+h") + SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-fPIC") # -pic +ELSE(CMAKE_COMPILER_IS_GNUG77) + # use ld directly to create shared libraries for hp cc + SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY + "ld -o ") + SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "+Z") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-E -b -L/usr/lib") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "+b") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "+h") + SET(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG "-Wl,+b") # -rpath +ENDIF(CMAKE_COMPILER_IS_GNUG77) + +# C compiler +IF(CMAKE_COMPILER_IS_GNUCC) + # gnu gcc + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-E,-b,+nodefaultrpath") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,+b") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,+h") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic +ELSE(CMAKE_COMPILER_IS_GNUCC) + # hp cc + SET(CMAKE_ANSI_CFLAGS "-Aa -Ae") + # use ld directly to create shared libraries for hp cc + SET(CMAKE_C_CREATE_SHARED_LIBRARY + "ld -o ") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "+Z") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-E -b +nodefaultrpath -L/usr/lib") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "+b") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "+h") + SET(CMAKE_EXECUTABLE_RUNTIME_C_FLAG "-Wl,+b") # -rpath +ENDIF(CMAKE_COMPILER_IS_GNUCC) + +# CXX compiler +IF(CMAKE_COMPILER_IS_GNUCXX) + # for gnu C++ + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared -Wl,-E,-b,+nodefaultrpath") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,+b") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC") # -pic + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,+h") +ELSE(CMAKE_COMPILER_IS_GNUCXX) + # for hp aCC + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "+Z") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "+Z -Wl,-E -b +nodefaultrpath -L/usr/lib") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,+b") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,+h") + SET(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG "-Wl,+b") # -rpath + SET (CMAKE_CXX_FLAGS_INIT "") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "+O3 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "+O2 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g") + SET (CMAKE_C_FLAGS_INIT "") +ENDIF(CMAKE_COMPILER_IS_GNUCXX) +# set flags for gcc support +INCLUDE(Platform/UnixPaths) + +IF(NOT CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") +ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) + +IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE + " -S " + "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " + "rm -f `basename \"\" | sed 's/\\.[^./]*$$//'`.o" + ) +ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) + +# Initialize C and CXX link type selection flags. These flags are +# used when building a shared library, shared module, or executable +# that links to other libraries to select whether to use the static or +# shared versions of the libraries. Note that C modules and shared +# libs are built using ld directly so we leave off the "-Wl," portion. +FOREACH(type SHARED_LIBRARY SHARED_MODULE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-a archive") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-a default") +ENDFOREACH(type) +FOREACH(type EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-a,archive") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-a,default") +ENDFOREACH(type) +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Wl,-a,archive") + SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Wl,-a,default") +ENDFOREACH(type) + diff --git a/CMakeLua/Modules/Platform/IRIX.cmake b/CMakeLua/Modules/Platform/IRIX.cmake new file mode 100644 index 0000000..58c1037 --- /dev/null +++ b/CMakeLua/Modules/Platform/IRIX.cmake @@ -0,0 +1,46 @@ +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared") +SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared -rdata_shared") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_CXX_CREATE_STATIC_LIBRARY + " -ar -o ") + SET (CMAKE_CXX_FLAGS_INIT "") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O3 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") + SET (CMAKE_C_FLAGS_INIT "") +ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) +# set flags for gcc support +INCLUDE(Platform/UnixPaths) + +IF(NOT CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE + " -S " + "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " + ) +ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) + +IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE + " -S " + "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " + ) +ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +ENDFOREACH(type) + +# The IRIX linker needs to find transitive shared library dependencies +# in the -L path. +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) diff --git a/CMakeLua/Modules/Platform/IRIX64.cmake b/CMakeLua/Modules/Platform/IRIX64.cmake new file mode 100644 index 0000000..982619a --- /dev/null +++ b/CMakeLua/Modules/Platform/IRIX64.cmake @@ -0,0 +1,75 @@ +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared") +SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared -rdata_shared") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") +IF(NOT CMAKE_COMPILER_IS_GNUCC) + # Set default flags init. + SET(CMAKE_C_FLAGS_INIT "") + SET(CMAKE_CXX_FLAGS_INIT "") + SET(CMAKE_Fortran_FLAGS_INIT "") + SET(CMAKE_EXE_LINKER_FLAGS_INIT "") + SET(CMAKE_SHARED_LINKER_FLAGS_INIT "") + SET(CMAKE_MODULE_LINKER_FLAGS_INIT "") + + # If no -o32, -n32, or -64 flag is given, set a reasonable default. + IF("$ENV{CFLAGS} $ENV{CXXFLAGS} $ENV{LDFLAGS}" MATCHES "-([no]32|64)") + ELSE("$ENV{CFLAGS} $ENV{CXXFLAGS} $ENV{LDFLAGS}" MATCHES "-([no]32|64)") + # Check if this is a 64-bit CMake. + IF(CMAKE_FILE_SELF MATCHES "^CMAKE_FILE_SELF$") + EXEC_PROGRAM(file ARGS ${CMAKE_COMMAND} OUTPUT_VARIABLE CMAKE_FILE_SELF) + SET(CMAKE_FILE_SELF "${CMAKE_FILE_SELF}" CACHE INTERNAL + "Output of file command on ${CMAKE_COMMAND}.") + ENDIF(CMAKE_FILE_SELF MATCHES "^CMAKE_FILE_SELF$") + + # Set initial flags to match cmake executable. + IF(CMAKE_FILE_SELF MATCHES " 64-bit ") + SET(CMAKE_C_FLAGS_INIT "-64") + SET(CMAKE_CXX_FLAGS_INIT "-64") + SET(CMAKE_Fortran_FLAGS_INIT "-64") + SET(CMAKE_EXE_LINKER_FLAGS_INIT "-64") + SET(CMAKE_SHARED_LINKER_FLAGS_INIT "-64") + SET(CMAKE_MODULE_LINKER_FLAGS_INIT "-64") + ENDIF(CMAKE_FILE_SELF MATCHES " 64-bit ") + ENDIF("$ENV{CFLAGS} $ENV{CXXFLAGS} $ENV{LDFLAGS}" MATCHES "-([no]32|64)") + + # Set remaining defaults. + SET(CMAKE_CXX_CREATE_STATIC_LIBRARY + " -ar -o ") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O3 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") +ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) +INCLUDE(Platform/UnixPaths) + +IF(NOT CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE + " -S " + "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " + ) +ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) + +IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE + " -S " + "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " + ) +ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +ENDFOREACH(type) + +# The IRIX linker needs to find transitive shared library dependencies +# in the -L path. +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) diff --git a/CMakeLua/Modules/Platform/Linux-GNU-Fortran.cmake b/CMakeLua/Modules/Platform/Linux-GNU-Fortran.cmake new file mode 100644 index 0000000..ba13a43 --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-GNU-Fortran.cmake @@ -0,0 +1 @@ +SET(CMAKE_Fortran_MODDIR_FLAG -J) diff --git a/CMakeLua/Modules/Platform/Linux-PGI-C.cmake b/CMakeLua/Modules/Platform/Linux-PGI-C.cmake new file mode 100644 index 0000000..104e3dc --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-PGI-C.cmake @@ -0,0 +1,5 @@ +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") + +SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") +SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") + diff --git a/CMakeLua/Modules/Platform/Linux-PGI-CXX.cmake b/CMakeLua/Modules/Platform/Linux-PGI-CXX.cmake new file mode 100644 index 0000000..1d8c92a --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-PGI-CXX.cmake @@ -0,0 +1,4 @@ +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") + +SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") +SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") diff --git a/CMakeLua/Modules/Platform/Linux-SunPro-C.cmake b/CMakeLua/Modules/Platform/Linux-SunPro-C.cmake new file mode 100644 index 0000000..529dfba --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-SunPro-C.cmake @@ -0,0 +1,24 @@ +# Linux sun studio c options +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-KPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-G") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-R") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-h") +SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") + +SET(CMAKE_C_FLAGS_INIT "") +SET(CMAKE_C_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG") +SET(CMAKE_C_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG") +SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g -xO2") + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic") +ENDFOREACH(type) diff --git a/CMakeLua/Modules/Platform/Linux-SunPro-CXX.cmake b/CMakeLua/Modules/Platform/Linux-SunPro-CXX.cmake new file mode 100644 index 0000000..ddc10bd --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-SunPro-CXX.cmake @@ -0,0 +1,24 @@ +# Linux sun studio c++ options +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-KPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G") +SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-R") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h") +SET(CMAKE_EXE_EXPORTS_CXX_FLAG "--export-dynamic") + +SET(CMAKE_CXX_FLAGS_INIT "") +SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG") +SET(CMAKE_CXX_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG") +SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g -xO2") + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Bdynamic") +ENDFOREACH(type) diff --git a/CMakeLua/Modules/Platform/Linux-SunPro-Fortran.cmake b/CMakeLua/Modules/Platform/Linux-SunPro-Fortran.cmake new file mode 100644 index 0000000..6994839 --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-SunPro-Fortran.cmake @@ -0,0 +1,16 @@ +# Linux sun studio fortran options +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-KPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-G") +SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "-R") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-h") + +SET(CMAKE_Fortran_FLAGS_INIT "") +SET(CMAKE_Fortran_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG") +SET(CMAKE_Fortran_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG") +SET(CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-g -xO2") +SET(CMAKE_Fortran_MODDIR_FLAG "-moddir=") +SET(CMAKE_Fortran_MODPATH_FLAG "-M") diff --git a/CMakeLua/Modules/Platform/Linux-VisualAge-C.cmake b/CMakeLua/Modules/Platform/Linux-VisualAge-C.cmake new file mode 100644 index 0000000..295226b --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-VisualAge-C.cmake @@ -0,0 +1,2 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") diff --git a/CMakeLua/Modules/Platform/Linux-VisualAge-Fortran.cmake b/CMakeLua/Modules/Platform/Linux-VisualAge-Fortran.cmake new file mode 100644 index 0000000..f6fcc1f --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-VisualAge-Fortran.cmake @@ -0,0 +1,3 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") +include(Platform/xlf) diff --git a/CMakeLua/Modules/Platform/Linux-como.cmake b/CMakeLua/Modules/Platform/Linux-como.cmake new file mode 100644 index 0000000..6c259f3 --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-como.cmake @@ -0,0 +1,18 @@ +# create a shared C++ library +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + " --prelink_objects " + " -o ") + +# create a C++ static library +SET(CMAKE_CXX_CREATE_STATIC_LIBRARY + " --prelink_objects " + " cr " + " ") + +SET(CMAKE_CXX_LINK_EXECUTABLE + " --prelink_objects " + " -o ") + +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") diff --git a/CMakeLua/Modules/Platform/Linux-icpc.cmake b/CMakeLua/Modules/Platform/Linux-icpc.cmake new file mode 100755 index 0000000..dc5bd43 --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-icpc.cmake @@ -0,0 +1,12 @@ +SET (CMAKE_C_FLAGS_INIT "") +SET (CMAKE_C_FLAGS_DEBUG_INIT "-g") +SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") +SET (CMAKE_C_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") +SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + +SET (CMAKE_CXX_FLAGS_INIT "") +SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") +SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") +SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") +SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + diff --git a/CMakeLua/Modules/Platform/Linux-ifort.cmake b/CMakeLua/Modules/Platform/Linux-ifort.cmake new file mode 100755 index 0000000..dc46dd5 --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux-ifort.cmake @@ -0,0 +1,8 @@ +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-fPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-shared") +SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-i_dynamic") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "-Wl,-rpath,") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-Wl,-soname,") +SET(CMAKE_Fortran_MODDIR_FLAG "-module ") diff --git a/CMakeLua/Modules/Platform/Linux.cmake b/CMakeLua/Modules/Platform/Linux.cmake new file mode 100644 index 0000000..095eac6 --- /dev/null +++ b/CMakeLua/Modules/Platform/Linux.cmake @@ -0,0 +1,57 @@ +# GCC is the default compiler on Linux. +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-rdynamic") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-Wl,-soname,") +SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +SET(CMAKE_EXE_EXPORTS_CXX_FLAG "-Wl,--export-dynamic") + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +ENDFOREACH(type) + +# Debian policy requires that shared libraries be installed without +# executable permission. Fedora policy requires that shared libraries +# be installed with the executable permission. Since the native tools +# create shared libraries with execute permission in the first place a +# reasonable policy seems to be to install with execute permission by +# default. In order to support debian packages we provide an option +# here. The option default is based on the current distribution, but +# packagers can set it explicitly on the command line. +IF(DEFINED CMAKE_INSTALL_SO_NO_EXE) + # Store the decision variable in the cache. This preserves any + # setting the user provides on the command line. + SET(CMAKE_INSTALL_SO_NO_EXE "${CMAKE_INSTALL_SO_NO_EXE}" CACHE INTERNAL + "Install .so files without execute permission.") +ELSE(DEFINED CMAKE_INSTALL_SO_NO_EXE) + # Store the decision variable as an internal cache entry to avoid + # checking the platform every time. This option is advanced enough + # that only package maintainers should need to adjust it. They are + # capable of providing a setting on the command line. + IF(EXISTS "/etc/debian_version") + SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL + "Install .so files without execute permission.") + ELSE(EXISTS "/etc/debian_version") + SET(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL + "Install .so files without execute permission.") + ENDIF(EXISTS "/etc/debian_version") +ENDIF(DEFINED CMAKE_INSTALL_SO_NO_EXE) + +INCLUDE(Platform/UnixPaths) + +# Debian has lib64 paths only for compatibility so they should not be +# searched. +IF(EXISTS "/etc/debian_version") + SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE) +ENDIF(EXISTS "/etc/debian_version") diff --git a/CMakeLua/Modules/Platform/MP-RAS.cmake b/CMakeLua/Modules/Platform/MP-RAS.cmake new file mode 100644 index 0000000..1e3e239 --- /dev/null +++ b/CMakeLua/Modules/Platform/MP-RAS.cmake @@ -0,0 +1,10 @@ +IF(CMAKE_SYSTEM MATCHES "MP-RAS-02*.") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +ELSE(CMAKE_SYSTEM MATCHES "MP-RAS-02*.") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") + SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-Bexport") +ENDIF(CMAKE_SYSTEM MATCHES "MP-RAS-02*.") + +INCLUDE(Platform/UnixPaths) + + diff --git a/CMakeLua/Modules/Platform/NetBSD.cmake b/CMakeLua/Modules/Platform/NetBSD.cmake new file mode 100644 index 0000000..abf0a61 --- /dev/null +++ b/CMakeLua/Modules/Platform/NetBSD.cmake @@ -0,0 +1,15 @@ +IF(EXISTS /usr/include/dlfcn.h) + SET(CMAKE_DL_LIBS "") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared + SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty + SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") + SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") + SET(CMAKE_EXE_EXPORTS_CXX_FLAG "-Wl,--export-dynamic") +ENDIF(EXISTS /usr/include/dlfcn.h) + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/OSF1.cmake b/CMakeLua/Modules/Platform/OSF1.cmake new file mode 100644 index 0000000..27af3b1 --- /dev/null +++ b/CMakeLua/Modules/Platform/OSF1.cmake @@ -0,0 +1,45 @@ +SET(CMAKE_DL_LIBS "") + +IF(CMAKE_SYSTEM MATCHES "OSF1-1.[012]") +ENDIF(CMAKE_SYSTEM MATCHES "OSF1-1.[012]") +IF(CMAKE_SYSTEM MATCHES "OSF1-1.*") + # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fpic") # -pic + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fpic") # -pic +ENDIF(CMAKE_SYSTEM MATCHES "OSF1-1.*") + + + +IF(CMAKE_SYSTEM MATCHES "OSF1-V.*") + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-expect_unresolved,\\*") # -shared + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared -Wl,-expect_unresolved,\\*") # -shared + IF(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,-rpath,") + ELSE(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-rpath ") + ENDIF(CMAKE_COMPILER_IS_GNUCXX) + IF(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") + ELSE(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-rpath ") + ENDIF(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +ENDIF(CMAKE_SYSTEM MATCHES "OSF1-V.*") + + +IF(CMAKE_COMPILER_IS_GNUCXX) + # include the gcc flags +ELSE (CMAKE_COMPILER_IS_GNUCXX) + # use default OSF compiler flags + SET (CMAKE_C_FLAGS_INIT "") + SET (CMAKE_C_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-O2 -DNDEBUG") + SET (CMAKE_C_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2") + SET (CMAKE_CXX_FLAGS_INIT "") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O2 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") +ENDIF(CMAKE_COMPILER_IS_GNUCXX) +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/OpenBSD.cmake b/CMakeLua/Modules/Platform/OpenBSD.cmake new file mode 100644 index 0000000..cbdcb7d --- /dev/null +++ b/CMakeLua/Modules/Platform/OpenBSD.cmake @@ -0,0 +1,2 @@ +SET(CMAKE_DL_LIBS "") +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/QNX.cmake b/CMakeLua/Modules/Platform/QNX.cmake new file mode 100644 index 0000000..f73997a --- /dev/null +++ b/CMakeLua/Modules/Platform/QNX.cmake @@ -0,0 +1,34 @@ +SET(QNXNTO 1) + +# GCC is the default compiler on QNX 6.3. +INCLUDE(Platform/gcc) + +# The QNX GCC does not seem to have -isystem so remove the flag. +SET(CMAKE_INCLUDE_SYSTEM_FLAG_C) +SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) + +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") +SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +SET(CMAKE_EXE_EXPORTS_CXX_FLAG "-Wl,--export-dynamic") + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +ENDFOREACH(type) +# force the language to be c++ since qnx only has gcc and not g++ and c++? +SET(CMAKE_CXX_COMPILE_OBJECT + " -x c++ -o -c ") + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/RISCos.cmake b/CMakeLua/Modules/Platform/RISCos.cmake new file mode 100644 index 0000000..3b2a092 --- /dev/null +++ b/CMakeLua/Modules/Platform/RISCos.cmake @@ -0,0 +1,6 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-G 0") +SET(CMAKE_SHARED_LIBRARY_SUFFIX "..o") +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-D,08000000") + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/SCO_SV.cmake b/CMakeLua/Modules/Platform/SCO_SV.cmake new file mode 100644 index 0000000..efb7aa0 --- /dev/null +++ b/CMakeLua/Modules/Platform/SCO_SV.cmake @@ -0,0 +1,5 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-Kpic -belf") +SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-Kpic -belf") +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-belf -Wl,-Bexport") +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/SINIX.cmake b/CMakeLua/Modules/Platform/SINIX.cmake new file mode 100644 index 0000000..4592fdd --- /dev/null +++ b/CMakeLua/Modules/Platform/SINIX.cmake @@ -0,0 +1,2 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/SunOS-SunPro-Fortran.cmake b/CMakeLua/Modules/Platform/SunOS-SunPro-Fortran.cmake new file mode 100644 index 0000000..5739c58 --- /dev/null +++ b/CMakeLua/Modules/Platform/SunOS-SunPro-Fortran.cmake @@ -0,0 +1,2 @@ +SET(CMAKE_Fortran_MODDIR_FLAG "-moddir=") +SET(CMAKE_Fortran_MODPATH_FLAG "-M") diff --git a/CMakeLua/Modules/Platform/SunOS.cmake b/CMakeLua/Modules/Platform/SunOS.cmake new file mode 100644 index 0000000..f6c9d2e --- /dev/null +++ b/CMakeLua/Modules/Platform/SunOS.cmake @@ -0,0 +1,106 @@ +IF(CMAKE_SYSTEM MATCHES "SunOS-4.*") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-PIC") + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-r") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-R") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-h") + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h") +ENDIF(CMAKE_SYSTEM MATCHES "SunOS-4.*") + +IF(CMAKE_SYSTEM MATCHES "SunOS-5.*") + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-KPIC") + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-G") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-R") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-h") + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h") + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-KPIC") + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-R") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":") + IF(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") + SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-R") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") + SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-h") + ELSE(CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_C_FLAGS_INIT "") + SET (CMAKE_C_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-xO3 -DNDEBUG") + SET (CMAKE_C_FLAGS_RELEASE_INIT "-xO2 -DNDEBUG") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-xO2") + ENDIF(CMAKE_COMPILER_IS_GNUCC) + IF(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC") + SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,-R") + SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":") + SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-h") + ELSE(CMAKE_COMPILER_IS_GNUCXX) + SET (CMAKE_CXX_FLAGS_INIT "") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-xO3 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-xO2 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-xO2") + ENDIF(CMAKE_COMPILER_IS_GNUCXX) +ENDIF(CMAKE_SYSTEM MATCHES "SunOS-5.*") + +IF(CMAKE_COMPILER_IS_GNUCXX) + IF(CMAKE_COMPILER_IS_GNUCC) + SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + " -o ") + ELSE(CMAKE_COMPILER_IS_GNUCC) + # Take default rule from CMakeDefaultMakeRuleVariables.cmake. + ENDIF(CMAKE_COMPILER_IS_GNUCC) +ELSE(CMAKE_COMPILER_IS_GNUCXX) + IF(CMAKE_CXX_COMPILER) + SET(CMAKE_CXX_CREATE_STATIC_LIBRARY + " -xar -o " + " ") + ENDIF(CMAKE_CXX_COMPILER) +ENDIF(CMAKE_COMPILER_IS_GNUCXX) +INCLUDE(Platform/UnixPaths) + +IF(NOT CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") +ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) + +IF(NOT CMAKE_COMPILER_IS_GNUCXX) + SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") +ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +IF(CMAKE_COMPILER_IS_GNUCC) + FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") + ENDFOREACH(type) +ELSE(CMAKE_COMPILER_IS_GNUCC) + FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic") + ENDFOREACH(type) +ENDIF(CMAKE_COMPILER_IS_GNUCC) +IF(CMAKE_COMPILER_IS_GNUCXX) + FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Wl,-Bdynamic") + ENDFOREACH(type) +ELSE(CMAKE_COMPILER_IS_GNUCXX) + FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Bdynamic") + ENDFOREACH(type) +ENDIF(CMAKE_COMPILER_IS_GNUCXX) + +# The Sun linker needs to find transitive shared library dependencies +# in the -L path. +SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) + + diff --git a/CMakeLua/Modules/Platform/Tru64.cmake b/CMakeLua/Modules/Platform/Tru64.cmake new file mode 100644 index 0000000..cf9d17b --- /dev/null +++ b/CMakeLua/Modules/Platform/Tru64.cmake @@ -0,0 +1,2 @@ +INCLUDE(Platform/UnixPaths) + diff --git a/CMakeLua/Modules/Platform/ULTRIX.cmake b/CMakeLua/Modules/Platform/ULTRIX.cmake new file mode 100644 index 0000000..4d0cf75 --- /dev/null +++ b/CMakeLua/Modules/Platform/ULTRIX.cmake @@ -0,0 +1,5 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-G 0") +SET(CMAKE_SHARED_LIBRARY_SUFFIX "..o") +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-D,08000000") +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/UNIX_SV.cmake b/CMakeLua/Modules/Platform/UNIX_SV.cmake new file mode 100644 index 0000000..3b50e0a --- /dev/null +++ b/CMakeLua/Modules/Platform/UNIX_SV.cmake @@ -0,0 +1,3 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-Bexport") +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/UnixPaths.cmake b/CMakeLua/Modules/Platform/UnixPaths.cmake new file mode 100755 index 0000000..7ed85c0 --- /dev/null +++ b/CMakeLua/Modules/Platform/UnixPaths.cmake @@ -0,0 +1,57 @@ +SET(UNIX 1) + +# also add the install directory of the running cmake to the search directories +# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up +GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) +GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) + +# List common installation prefixes. These will be used for all +# search types. +LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Standard + / /usr /usr/local + + # CMake install location + "${_CMAKE_INSTALL_DIR}" + + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" + ) + +# List common include file locations not under the common prefixes. +LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH + # Windows API on Cygwin + /usr/include/w32api + + # X11 + /usr/X11R6/include /usr/include/X11 + + # Other + /opt/local/include /usr/pkg/include + /opt/csw/include /opt/include + /usr/openwin/include + ) + +LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH + # Windows API on Cygwin + /usr/lib/w32api + + # X11 + /usr/X11R6/lib /usr/lib/X11 + + # Other + /opt/local/lib /usr/pkg/lib + /opt/csw/lib /opt/lib + /usr/openwin/lib + ) + +LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH + /usr/pkg/bin + ) + +LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + /lib /usr/lib /usr/lib32 /usr/lib64 + ) + +# Enable use of lib64 search path variants by default. +SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) diff --git a/CMakeLua/Modules/Platform/UnixWare.cmake b/CMakeLua/Modules/Platform/UnixWare.cmake new file mode 100644 index 0000000..c324bc8 --- /dev/null +++ b/CMakeLua/Modules/Platform/UnixWare.cmake @@ -0,0 +1,3 @@ +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-Wl,-Bexport") +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/Windows-bcc32.cmake b/CMakeLua/Modules/Platform/Windows-bcc32.cmake new file mode 100644 index 0000000..2060dc2 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-bcc32.cmake @@ -0,0 +1,123 @@ +# Borland shared library issues: +# When building dll's with borland, the run time dll c/c++ library from +# borland must be used. This is specified with the -tWR compiler option. +# This flag must be present during compilation of c and c++ files and +# for the linking of exe and dll files. But wait, there is more, +# the -tWR flag must come after the -tWD and -tWM flags, but before the -tWC flag. +# Order counts, so be careful! +# if building static, you don't want the -tWR flag as it will make your program +# depend on the borland run time dll. +# So, if a project has CMAKE_BUILD_SHARED on, then the -tWR flag is added all over, and +# it is left out if not. + +SET(CMAKE_LIBRARY_PATH_FLAG "-L") +SET(CMAKE_LINK_LIBRARY_FLAG "") +SET(CMAKE_SHARED_BUILD_CXX_FLAGS "-tWR") +SET(CMAKE_SHARED_BUILD_C_FLAGS "-tWR") +SET(BORLAND 1) + +SET(CMAKE_FIND_LIBRARY_SUFFIXES "-bcc.lib" ".lib") + +# uncomment these out to debug makefiles +#SET(CMAKE_START_TEMP_FILE "") +#SET(CMAKE_END_TEMP_FILE "") +#SET(CMAKE_VERBOSE_MAKEFILE 1) + +# Borland cannot handle + in the file name, so mangle object file name +SET (CMAKE_MANGLE_OBJECT_FILE_NAMES "ON") + +# Create an import library for another target. +SET(CMAKE_CXX_CREATE_IMPORT_LIBRARY + "implib -c -w " + ) + +# Create a C++ module library. +SET(CMAKE_CXX_CREATE_SHARED_MODULE + " ${CMAKE_START_TEMP_FILE}-e -tWD -tWR ${CMAKE_END_TEMP_FILE}" +) + +# Create a C++ shared library. +# First create a module and then its import library. +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + ${CMAKE_CXX_CREATE_SHARED_MODULE} + ${CMAKE_CXX_CREATE_IMPORT_LIBRARY}) + +# Create an import library for another target. +SET(CMAKE_C_CREATE_IMPORT_LIBRARY ${CMAKE_CXX_CREATE_IMPORT_LIBRARY}) + +# Create a C module library. +SET(CMAKE_C_CREATE_SHARED_MODULE + " ${CMAKE_START_TEMP_FILE}-e -tWD -tWR ${CMAKE_END_TEMP_FILE}" +) + +# Create a C shared library. +# First create a module and then its import library. +SET(CMAKE_C_CREATE_SHARED_LIBRARY + ${CMAKE_C_CREATE_SHARED_MODULE} + ${CMAKE_C_CREATE_IMPORT_LIBRARY}) + +# create a C++ static library +SET(CMAKE_CXX_CREATE_STATIC_LIBRARY "tlib ${CMAKE_START_TEMP_FILE}/p512 /a ${CMAKE_END_TEMP_FILE}") + +# create a C static library +SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY}) + +# compile a C++ file into an object file +# place outside the response file because Borland refuses +# to parse quotes from the response file. +SET(CMAKE_CXX_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE}-DWIN32 -P -o -c ${CMAKE_END_TEMP_FILE}") + +# compile a C file into an object file +# place outside the response file because Borland refuses +# to parse quotes from the response file. +SET(CMAKE_C_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE}-DWIN32 -o -c ${CMAKE_END_TEMP_FILE}") + + +SET(CMAKE_C_LINK_EXECUTABLE + " ${CMAKE_START_TEMP_FILE}-e ${CMAKE_END_TEMP_FILE}" +# "implib -c -w " + ) + + +SET(CMAKE_CXX_LINK_EXECUTABLE + " ${CMAKE_START_TEMP_FILE} -e ${CMAKE_END_TEMP_FILE}" +# "implib -c -w " + ) + +SET (CMAKE_BUILD_TYPE Debug CACHE STRING + "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.") + +# extra flags for a win32 exe +SET(CMAKE_CREATE_WIN32_EXE "-tW -tWM" ) +# extra flags for a console app +SET(CMAKE_CREATE_CONSOLE_EXE "-tWC" ) + +SET (CMAKE_CXX_FLAGS_INIT "-tWM") +SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-Od -v") +SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O1 -DNDEBUG") +SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") +SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-Od") +SET (CMAKE_C_FLAGS_INIT "-tWM") +SET (CMAKE_C_FLAGS_DEBUG_INIT "-Od -v") +SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-O1 -DNDEBUG") +SET (CMAKE_C_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") +SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-Od") + +SET (CMAKE_EXE_LINKER_FLAGS_INIT "-tWM -lS:10000000 -lSc:10000000 ") +SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-v") +SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-v") +SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT}) + +SET (CMAKE_C_STANDARD_LIBRARIES_INIT "import32.lib") +SET (CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") +SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE + "cpp32 ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -fo -pl -cc++ ${CMAKE_END_TEMP_FILE}") +SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE + "cpp32 ${CMAKE_START_TEMP_FILE}-DWIN32 -o -c ${CMAKE_END_TEMP_FILE}") diff --git a/CMakeLua/Modules/Platform/Windows-cl.cmake b/CMakeLua/Modules/Platform/Windows-cl.cmake new file mode 100644 index 0000000..1751fb1 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-cl.cmake @@ -0,0 +1,279 @@ +# try to load any previously computed information for C on this platform +INCLUDE( ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake OPTIONAL) +# try to load any previously computed information for CXX on this platform +INCLUDE( ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake OPTIONAL) + +SET(WIN32 1) + +INCLUDE(Platform/cl) + +SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows) +SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console) + +IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") + SET (CMAKE_NO_BUILD_TYPE 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") +IF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio") + SET (CMAKE_NO_BUILD_TYPE 1) + SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING + "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.") + MARK_AS_ADVANCED(CMAKE_CONFIGURATION_TYPES) +ENDIF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio") +# does the compiler support pdbtype and is it the newer compiler +IF(CMAKE_GENERATOR MATCHES "Visual Studio 8") + SET(CMAKE_COMPILER_2005 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8") +IF(CMAKE_GENERATOR MATCHES "Visual Studio 9") + SET(CMAKE_COMPILER_2005 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 9") + + +# make sure to enable languages after setting configuration types +ENABLE_LANGUAGE(RC) +SET(CMAKE_COMPILE_RESOURCE "rc /fo ") + +# for nmake we need to compute some information about the compiler +# that is being used. +# the compiler may be free command line, 6, 7, or 71, and +# each have properties that must be determined. +# to avoid running these tests with each cmake run, the +# test results are saved in CMakeCPlatform.cmake, a file +# that is automatically copied into try_compile directories +# by the global generator. +SET(MSVC_IDE 1) +IF(CMAKE_GENERATOR MATCHES "Makefiles") + SET(MSVC_IDE 0) + IF(NOT CMAKE_VC_COMPILER_TESTS_RUN) + SET(CMAKE_VC_COMPILER_TESTS 1) + SET(testNmakeCLVersionFile + "${CMAKE_ROOT}/Modules/CMakeTestNMakeCLVersion.c") + STRING(REGEX REPLACE "/" "\\\\" testNmakeCLVersionFile "${testNmakeCLVersionFile}") + MESSAGE(STATUS "Check for CL compiler version") + SET(CMAKE_TEST_COMPILER ${CMAKE_C_COMPILER}) + IF (NOT CMAKE_C_COMPILER) + SET(CMAKE_TEST_COMPILER ${CMAKE_CXX_COMPILER}) + ENDIF(NOT CMAKE_C_COMPILER) + EXEC_PROGRAM(${CMAKE_TEST_COMPILER} + ARGS /nologo -EP \"${testNmakeCLVersionFile}\" + OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT + RETURN_VALUE CMAKE_COMPILER_RETURN + ) + IF(NOT CMAKE_COMPILER_RETURN) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining the version of compiler passed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + STRING(REGEX REPLACE "\n" " " compilerVersion "${CMAKE_COMPILER_OUTPUT}") + STRING(REGEX REPLACE ".*VERSION=(.*)" "\\1" + compilerVersion "${compilerVersion}") + MESSAGE(STATUS "Check for CL compiler version - ${compilerVersion}") + SET(MSVC60) + SET(MSVC70) + SET(MSVC71) + SET(MSVC80) + SET(CMAKE_COMPILER_2005) + IF("${compilerVersion}" LESS 1300) + SET(MSVC60 1) + SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1) + ENDIF("${compilerVersion}" LESS 1300) + IF("${compilerVersion}" EQUAL 1300) + SET(MSVC70 1) + SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0) + ENDIF("${compilerVersion}" EQUAL 1300) + IF("${compilerVersion}" EQUAL 1310) + SET(MSVC71 1) + SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0) + ENDIF("${compilerVersion}" EQUAL 1310) + IF("${compilerVersion}" EQUAL 1400) + SET(MSVC80 1) + SET(CMAKE_COMPILER_2005 1) + ENDIF("${compilerVersion}" EQUAL 1400) + IF("${compilerVersion}" GREATER 1400) + SET(MSVC80 1) + SET(CMAKE_COMPILER_2005 1) + ENDIF("${compilerVersion}" GREATER 1400) + IF("${compilerVersion}" GREATER 1400) + SET(MSVC80 1) + SET(CMAKE_COMPILER_2005 1) + ENDIF("${compilerVersion}" GREATER 1400) + IF("${compilerVersion}" EQUAL 1500) + SET(MSVC90 1) + SET(MSVC80 0) + ENDIF("${compilerVersion}" EQUAL 1500) + IF("${compilerVersion}" GREATER 1500) + SET(MSVC90 1) + SET(MSVC80 0) + ENDIF("${compilerVersion}" GREATER 1500) + SET(MSVC_VERSION "${compilerVersion}") + ELSE(NOT CMAKE_COMPILER_RETURN) + MESSAGE(STATUS "Check for CL compiler version - failed") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining the version of compiler failed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + ENDIF(NOT CMAKE_COMPILER_RETURN) + # try to figure out if we are running the free command line + # tools from Microsoft. These tools do not provide debug libraries, + # so the link flags used have to be different. + MAKE_DIRECTORY("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp2") + SET(testForFreeVCFile + "${CMAKE_ROOT}/Modules/CMakeTestForFreeVC.cxx") + STRING(REGEX REPLACE "/" "\\\\" testForFreeVCFile "${testForFreeVCFile}") + MESSAGE(STATUS "Check if this is a free VC compiler") + EXEC_PROGRAM(${CMAKE_TEST_COMPILER} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp2 + ARGS /nologo /MD /EHsc + \"${testForFreeVCFile}\" + OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT + RETURN_VALUE CMAKE_COMPILER_RETURN + ) + IF(CMAKE_COMPILER_RETURN) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if this is a free VC compiler failed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + MESSAGE(STATUS "Check if this is a free VC compiler - yes") + SET(CMAKE_USING_VC_FREE_TOOLS 1) + ELSE(CMAKE_COMPILER_RETURN) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if this is a free VC compiler passed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + MESSAGE(STATUS "Check if this is a free VC compiler - no") + SET(CMAKE_USING_VC_FREE_TOOLS 0) + ENDIF(CMAKE_COMPILER_RETURN) + MAKE_DIRECTORY("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp3") + MESSAGE(STATUS "Check CL platform") + EXEC_PROGRAM(${CMAKE_TEST_COMPILER} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp3 + ARGS /nologo + \"${testForFreeVCFile}\" + /link /machine:i386 + OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT + RETURN_VALUE CMAKE_COMPILER_RETURN + ) + # if there was an error assume it is a 64bit system + IF(CMAKE_COMPILER_RETURN) + FILE(APPEND + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if this is a 64 bit system passed:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + MESSAGE(STATUS "Check CL platform - 64 bit") + SET(CMAKE_CL_64 1) + ELSE(CMAKE_COMPILER_RETURN) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if this is a 32 bit system passed:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + MESSAGE(STATUS "Check CL platform - 32 bit") + SET(CMAKE_CL_64 0) + ENDIF(CMAKE_COMPILER_RETURN) + ENDIF(NOT CMAKE_VC_COMPILER_TESTS_RUN) +ENDIF(CMAKE_GENERATOR MATCHES "Makefiles") + +IF(CMAKE_FORCE_WIN64) + SET(CMAKE_CL_64 1) +ENDIF(CMAKE_FORCE_WIN64) + + +# default to Debug builds +IF(MSVC_VERSION GREATER 1310) + # for 2005 make sure the manifest is put in the dll with mt + SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "$(CMAKE_COMMAND) -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_LIBRARY}") + SET(CMAKE_CXX_CREATE_SHARED_MODULE "$(CMAKE_COMMAND) -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_MODULE}") + # create a C shared library + SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}") + # create a C shared module just copy the shared library rule + SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}") + SET(CMAKE_CXX_LINK_EXECUTABLE "$(CMAKE_COMMAND) -E vs_link_exe ${CMAKE_CXX_LINK_EXECUTABLE}") + SET(CMAKE_C_LINK_EXECUTABLE "$(CMAKE_COMMAND) -E vs_link_exe ${CMAKE_C_LINK_EXECUTABLE}") + + SET(CMAKE_BUILD_TYPE_INIT Debug) + SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") + SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000") + SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1") + SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") + SET (CMAKE_C_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") + SET (CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ") + SET (CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} /MANIFEST") +ELSE(MSVC_VERSION GREATER 1310) + IF(CMAKE_USING_VC_FREE_TOOLS) + MESSAGE(STATUS "Using FREE VC TOOLS, NO DEBUG available") + SET(CMAKE_BUILD_TYPE_INIT Release) + SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GX /GR") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /GZ") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MT /O2 /Ob2") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1") + SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GX /GR") + SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /GZ") + SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1") + SET (CMAKE_C_FLAGS_RELEASE_INIT "/MT /O2 /Ob2") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1") + SET (CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib advapi32.lib rpcrt4.lib") + ELSE(CMAKE_USING_VC_FREE_TOOLS) + SET(CMAKE_BUILD_TYPE_INIT Debug) + SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GX /GR") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /GZ") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") + SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000") + SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /GZ") + SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") + SET (CMAKE_C_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") + SET (CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib") + ENDIF(CMAKE_USING_VC_FREE_TOOLS) +ENDIF(MSVC_VERSION GREATER 1310) + +SET(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") + +# executable linker flags +SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +# set the stack size and the machine type +IF(CMAKE_CL_64) + SET (CMAKE_EXE_LINKER_FLAGS_INIT + "${CMAKE_EXE_LINKER_FLAGS_INIT} /STACK:10000000 /machine:x64") +ELSE(CMAKE_CL_64) + SET (CMAKE_EXE_LINKER_FLAGS_INIT + "${CMAKE_EXE_LINKER_FLAGS_INIT} /STACK:10000000 /machine:I386") +ENDIF(CMAKE_CL_64) + +# add /debug and /INCREMENTAL:YES to DEBUG and RELWITHDEBINFO also add pdbtyp +# on versions that support it +IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept /INCREMENTAL:YES") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept /INCREMENTAL:YES") +ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /INCREMENTAL:YES") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /INCREMENTAL:YES") +ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) +# for release and minsize release default to no incremental linking +SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT "/INCREMENTAL:NO") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT "/INCREMENTAL:NO") + +# copy the EXE_LINKER flags to SHARED and MODULE linker flags +# shared linker flags +SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) +# module linker flags +SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) + + +# save computed information for this platform +IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCPlatform.cmake IMMEDIATE) +ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake") + +IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXPlatform.cmake IMMEDIATE) +ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake") + diff --git a/CMakeLua/Modules/Platform/Windows-cl.cmake.in b/CMakeLua/Modules/Platform/Windows-cl.cmake.in new file mode 100755 index 0000000..1a889f2 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-cl.cmake.in @@ -0,0 +1,13 @@ +SET(CMAKE_VC_COMPILER_TESTS_RUN 1) +SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE @CMAKE_COMPILER_SUPPORTS_PDBTYPE@) +SET(CMAKE_COMPILER_2005 @CMAKE_COMPILER_2005@) +SET(CMAKE_USING_VC_FREE_TOOLS @CMAKE_USING_VC_FREE_TOOLS@) +SET(CMAKE_CL_64 @CMAKE_CL_64@) +SET(MSVC60 @MSVC60@) +SET(MSVC70 @MSVC70@) +SET(MSVC71 @MSVC71@) +SET(MSVC80 @MSVC80@) +SET(MSVC90 @MSVC90@) +SET(MSVC_IDE @MSVC_IDE@) +SET(MSVC_VERSION @MSVC_VERSION@) +SET(WIN32 1) diff --git a/CMakeLua/Modules/Platform/Windows-df.cmake b/CMakeLua/Modules/Platform/Windows-df.cmake new file mode 100755 index 0000000..753b198 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-df.cmake @@ -0,0 +1,68 @@ +# compiler support for fortran CVF compiler on windows + +SET(CMAKE_WINDOWS_OBJECT_PATH 1) +SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") +SET(CMAKE_LINK_LIBRARY_FLAG "") +SET(WIN32 1) +IF(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO) +ELSE(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO "/nologo") +ENDIF(CMAKE_VERBOSE_MAKEFILE) + +SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY + "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /dll ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY}) + +# create a C++ static library +SET(CMAKE_Fortran_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} /out: ") + +# compile a C++ file into an object file +SET(CMAKE_Fortran_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /object: /compile_only ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_COMPILE_RESOURCE "rc /fo ") + +SET(CMAKE_Fortran_LINK_EXECUTABLE + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /exe: /link ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CREATE_WIN32_EXE /winapp) +SET(CMAKE_CREATE_CONSOLE_EXE ) + +IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") + SET (CMAKE_NO_BUILD_TYPE 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") +IF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8") + SET (CMAKE_NO_BUILD_TYPE 1) + SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING + "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.") +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8") +# does the compiler support pdbtype and is it the newer compiler + +SET(CMAKE_BUILD_TYPE_INIT Debug) +SET (CMAKE_Fortran_FLAGS_INIT "") +SET (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full") +SET (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/Optimize:2 /Define:NDEBUG") +SET (CMAKE_Fortran_FLAGS_RELEASE_INIT "/Optimize:1 /Define:NDEBUG") +SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/Optimize:1 /debug:full /Define:NDEBUG") + +SET (CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib") + +# executable linker flags +SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +SET (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES") +IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept") +ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug") +ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + +SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) diff --git a/CMakeLua/Modules/Platform/Windows-g++.cmake b/CMakeLua/Modules/Platform/Windows-g++.cmake new file mode 100755 index 0000000..3aa393c --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-g++.cmake @@ -0,0 +1 @@ +INCLUDE(${CMAKE_ROOT}/Modules/Platform/Windows-gcc.cmake) diff --git a/CMakeLua/Modules/Platform/Windows-g77.cmake b/CMakeLua/Modules/Platform/Windows-g77.cmake new file mode 100755 index 0000000..193b925 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-g77.cmake @@ -0,0 +1,16 @@ +SET(CMAKE_LINK_LIBRARY_SUFFIX "") +SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .so +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +SET(CMAKE_SHARED_MODULE_PREFIX "lib") # lib +SET(CMAKE_SHARED_MODULE_SUFFIX ".dll") # .so +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +SET(CMAKE_LIBRARY_PATH_FLAG "-L") +SET(CMAKE_LINK_LIBRARY_FLAG "-l") diff --git a/CMakeLua/Modules/Platform/Windows-gcc.cmake b/CMakeLua/Modules/Platform/Windows-gcc.cmake new file mode 100755 index 0000000..51857eb --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-gcc.cmake @@ -0,0 +1,66 @@ +SET(CMAKE_LINK_LIBRARY_SUFFIX "") +SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .so +SET(CMAKE_SHARED_MODULE_PREFIX "lib") # lib +SET(CMAKE_SHARED_MODULE_SUFFIX ".dll") # .so +SET(CMAKE_IMPORT_LIBRARY_PREFIX "lib") +SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".dll.a") +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +SET(CMAKE_DL_LIBS "") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +SET(CMAKE_LIBRARY_PATH_FLAG "-L") +SET(CMAKE_LINK_LIBRARY_FLAG "-l") +SET(CMAKE_EXTRA_LINK_EXTENSIONS ".lib") # MinGW can also link to a MS .lib +SET(CMAKE_CREATE_WIN32_EXE "-mwindows") + +IF(MINGW) + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib" "") + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") +ENDIF(MINGW) + +SET(CMAKE_GNULD_IMAGE_VERSION + "-Wl,--major-image-version,,--minor-image-version,") + +SET(CMAKE_C_CREATE_SHARED_MODULE + " -o ${CMAKE_GNULD_IMAGE_VERSION} ") +SET(CMAKE_CXX_CREATE_SHARED_MODULE + " -o ${CMAKE_GNULD_IMAGE_VERSION} ") + +SET(CMAKE_C_CREATE_SHARED_LIBRARY + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") + +SET(CMAKE_C_LINK_EXECUTABLE + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") +SET(CMAKE_CXX_LINK_EXECUTABLE + " -o -Wl,--out-implib, ${CMAKE_GNULD_IMAGE_VERSION} ") + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +IF(MSYS OR MINGW) + FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") + ENDFOREACH(type) +ENDIF(MSYS OR MINGW) + +# Create archiving rules to support large object file lists for static +# libraries. +IF(MSYS OR MINGW) + SET(CMAKE_C_ARCHIVE_CREATE " cr ") + SET(CMAKE_C_ARCHIVE_APPEND " r ") + SET(CMAKE_C_ARCHIVE_FINISH " ") + SET(CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE}) + SET(CMAKE_CXX_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND}) + SET(CMAKE_CXX_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH}) +ENDIF(MSYS OR MINGW) diff --git a/CMakeLua/Modules/Platform/Windows-icl.cmake b/CMakeLua/Modules/Platform/Windows-icl.cmake new file mode 100755 index 0000000..d6db61b --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-icl.cmake @@ -0,0 +1,77 @@ +SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") +SET(CMAKE_LINK_LIBRARY_FLAG "") +SET(WIN32 1) +IF(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO) +ELSE(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO "/nologo") +ENDIF(CMAKE_VERBOSE_MAKEFILE) +# create a shared C++ library +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /dll ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) + +# create a C shared library +SET(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) + +# create a C shared module just copy the shared library rule +SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY}) + + +# create a C++ static library +SET(CMAKE_CXX_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} /out: ") + +# create a C static library +SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY}) + +# compile a C++ file into an object file +SET(CMAKE_CXX_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /TP -DWIN32 /Fo -c ${CMAKE_END_TEMP_FILE}") + +# compile a C file into an object file +SET(CMAKE_C_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} -DWIN32 /Fo -c ${CMAKE_END_TEMP_FILE}") + + +SET(CMAKE_C_LINK_EXECUTABLE + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe -link ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_COMPILE_RESOURCE "rc /fo ") + +SET(CMAKE_CXX_LINK_EXECUTABLE + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe -link ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows) +SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console) + +# default to Debug builds +#SET(CMAKE_BUILD_TYPE_INIT Debug) +SET(CMAKE_BUILD_TYPE_INIT Release) +SET (CMAKE_CXX_FLAGS_INIT "/W3 /Zm1000 /GX /GR") +SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/MDd /Zi /Od /GZ") +SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MD /O1") +SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MD /O2") +SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2") +SET (CMAKE_C_FLAGS_INIT "/W3 /Zm1000") +SET (CMAKE_C_FLAGS_DEBUG_INIT "/MDd /Zi /Od /GZ") +SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MD /O1") +SET (CMAKE_C_FLAGS_RELEASE_INIT "/MD /O2") +SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2") + + +SET(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib") +SET(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") + +# executable linker flags +SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +SET (CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:YES") +SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") +SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug") + +SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) diff --git a/CMakeLua/Modules/Platform/Windows-ifort.cmake b/CMakeLua/Modules/Platform/Windows-ifort.cmake new file mode 100755 index 0000000..7ea5581 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-ifort.cmake @@ -0,0 +1,67 @@ +SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") +SET(CMAKE_LINK_LIBRARY_FLAG "") +SET(WIN32 1) +IF(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO) +ELSE(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO "/nologo") +ENDIF(CMAKE_VERBOSE_MAKEFILE) + +SET(CMAKE_Fortran_MODDIR_FLAG "-module:") + +SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY + "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /dll ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY}) + +# create a C++ static library +SET(CMAKE_Fortran_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} /out: ") + +# compile a C++ file into an object file +SET(CMAKE_Fortran_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /fpp /Fo -c ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_COMPILE_RESOURCE "rc /fo ") + +SET(CMAKE_Fortran_LINK_EXECUTABLE + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe -link ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows) +SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console) + +IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") + SET (CMAKE_NO_BUILD_TYPE 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") +IF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8") + SET (CMAKE_NO_BUILD_TYPE 1) + SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING + "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.") +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8") +# does the compiler support pdbtype and is it the newer compiler + +SET(CMAKE_BUILD_TYPE_INIT Debug) +SET (CMAKE_Fortran_FLAGS_INIT "/W1") +SET (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full") +SET (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/O2 /D NDEBUG") +SET (CMAKE_Fortran_FLAGS_RELEASE_INIT "/MD /O1 /D NDEBUG") +SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/O1 /debug:full /D NDEBUG") + +SET (CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib") + +# executable linker flags +SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +SET (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES") +IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept") +ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug") +ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + +SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) diff --git a/CMakeLua/Modules/Platform/Windows-wcl386.cmake b/CMakeLua/Modules/Platform/Windows-wcl386.cmake new file mode 100755 index 0000000..87a61d5 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows-wcl386.cmake @@ -0,0 +1,70 @@ +SET(CMAKE_LIBRARY_PATH_FLAG "libpath ") +SET(CMAKE_LINK_LIBRARY_FLAG "library ") +SET(CMAKE_LINK_LIBRARY_FILE_FLAG "library") + +IF(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_WCL_QUIET) + SET(CMAKE_WLINK_QUIET) + SET(CMAKE_LIB_QUIET) +ELSE(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_WCL_QUIET "-zq") + SET(CMAKE_WLINK_QUIET "option quiet") + SET(CMAKE_LIB_QUIET "-q") +ENDIF(CMAKE_VERBOSE_MAKEFILE) + +SET(CMAKE_BUILD_TYPE_INIT Debug) +SET (CMAKE_CXX_FLAGS_INIT "-w=3 -xs") +SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-br -bm -d2") +SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-br -bm -os -dNDEBUG") +SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-br -bm -ot -dNDEBUG") +SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-br -bm -d2 -ot -dNDEBUG") +SET (CMAKE_C_FLAGS_INIT "-w=3 ") +SET (CMAKE_C_FLAGS_DEBUG_INIT "-br -bm -od") +SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-br -bm -os -dNDEBUG") +SET (CMAKE_C_FLAGS_RELEASE_INIT "-br -bm -ot -dNDEBUG") +SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-br -bm -ot -dNDEBUG") +SET (CMAKE_C_STANDARD_LIBRARIES_INIT "library clbrdll.lib library plbrdll.lib library kernel32.lib library user32.lib library gdi32.lib library winspool.lib library comdlg32.lib library advapi32.lib library shell32.lib library ole32.lib library oleaut32.lib library uuid.lib library odbc32.lib library odbccp32.lib") +SET (CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") + +SET(CMAKE_C_CREATE_IMPORT_LIBRARY + "wlib -q -n -b +") +SET(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY}) + +SET(CMAKE_C_LINK_EXECUTABLE + "wlink ${CMAKE_START_TEMP_FILE} ${CMAKE_WLINK_QUIET} name option caseexact file {} ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE}) + +# compile a C++ file into an object file +SET(CMAKE_CXX_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -c -cc++ ${CMAKE_END_TEMP_FILE}") + +# compile a C file into an object file +SET(CMAKE_C_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -c -cc ${CMAKE_END_TEMP_FILE}") + +# preprocess a C source file +SET(CMAKE_C_CREATE_PREPROCESSED_SOURCE + " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -pl -cc ${CMAKE_END_TEMP_FILE}") + +# preprocess a C++ source file +SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE + " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -pl -cc++ ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CXX_CREATE_SHARED_MODULE + "wlink ${CMAKE_START_TEMP_FILE} system nt_dll ${CMAKE_WLINK_QUIET} name option caseexact file {} ${CMAKE_END_TEMP_FILE}") +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + ${CMAKE_CXX_CREATE_SHARED_MODULE} + ${CMAKE_CXX_CREATE_IMPORT_LIBRARY}) + +# create a C shared library +SET(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) + +# create a C shared module +SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_MODULE}) + +# create a C++ static library +SET(CMAKE_CXX_CREATE_STATIC_LIBRARY "wlib ${CMAKE_LIB_QUIET} -n -b ") + +# create a C static library +SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY}) diff --git a/CMakeLua/Modules/Platform/Windows.cmake b/CMakeLua/Modules/Platform/Windows.cmake new file mode 100644 index 0000000..09cb8d3 --- /dev/null +++ b/CMakeLua/Modules/Platform/Windows.cmake @@ -0,0 +1,36 @@ +SET(WIN32 1) + +SET(CMAKE_STATIC_LIBRARY_PREFIX "") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") +SET(CMAKE_SHARED_LIBRARY_PREFIX "") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .so +SET(CMAKE_IMPORT_LIBRARY_PREFIX "") +SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib") +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +SET(CMAKE_LINK_LIBRARY_SUFFIX ".lib") +SET(CMAKE_DL_LIBS "") + +SET(CMAKE_FIND_LIBRARY_PREFIXES "") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") + +# for borland make long command lines are redirected to a file +# with the following syntax, see Windows-bcc32.cmake for use +IF(CMAKE_GENERATOR MATCHES "Borland") + SET(CMAKE_START_TEMP_FILE "@&&|\n") + SET(CMAKE_END_TEMP_FILE "\n|") +ENDIF(CMAKE_GENERATOR MATCHES "Borland") + +# for nmake make long command lines are redirected to a file +# with the following syntax, see Windows-bcc32.cmake for use +IF(CMAKE_GENERATOR MATCHES "NMake") + SET(CMAKE_START_TEMP_FILE "@<<\n") + SET(CMAKE_END_TEMP_FILE "\n<<") +ENDIF(CMAKE_GENERATOR MATCHES "NMake") + +INCLUDE(Platform/WindowsPaths) + +# uncomment these out to debug nmake and borland makefiles +#SET(CMAKE_START_TEMP_FILE "") +#SET(CMAKE_END_TEMP_FILE "") +#SET(CMAKE_VERBOSE_MAKEFILE 1) + diff --git a/CMakeLua/Modules/Platform/WindowsPaths.cmake b/CMakeLua/Modules/Platform/WindowsPaths.cmake new file mode 100755 index 0000000..45ed479 --- /dev/null +++ b/CMakeLua/Modules/Platform/WindowsPaths.cmake @@ -0,0 +1,31 @@ +GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) +GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) + +# List common installation prefixes. These will be used for all +# search types. +LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Standard + "$ENV{ProgramFiles}" + + # CMake install location + "${_CMAKE_INSTALL_DIR}" + + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" + + # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set) + / + ) + +LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH + ) + +# mingw can also link against dlls which can also be in /bin, so list this too +LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH + "${CMAKE_INSTALL_PREFIX}/bin" + "${_CMAKE_INSTALL_DIR}/bin" + /bin + ) + +LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH + ) diff --git a/CMakeLua/Modules/Platform/Xenix.cmake b/CMakeLua/Modules/Platform/Xenix.cmake new file mode 100644 index 0000000..cf9d17b --- /dev/null +++ b/CMakeLua/Modules/Platform/Xenix.cmake @@ -0,0 +1,2 @@ +INCLUDE(Platform/UnixPaths) + diff --git a/CMakeLua/Modules/Platform/cl.cmake b/CMakeLua/Modules/Platform/cl.cmake new file mode 100644 index 0000000..6afb73f --- /dev/null +++ b/CMakeLua/Modules/Platform/cl.cmake @@ -0,0 +1,61 @@ +SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") +SET(CMAKE_LINK_LIBRARY_FLAG "") +SET(MSVC 1) + +# hack: if a new cmake (which uses CMAKE__LINKER) runs on an old build tree +# (where link was hardcoded) and where CMAKE_LINKER isn't in the cache +# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) +# hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex +IF(NOT DEFINED CMAKE_LINKER) + SET(CMAKE_LINKER link) +ENDIF(NOT DEFINED CMAKE_LINKER) + +IF(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO) +ELSE(CMAKE_VERBOSE_MAKEFILE) + SET(CMAKE_CL_NOLOGO "/nologo") +ENDIF(CMAKE_VERBOSE_MAKEFILE) +# create a shared C++ library +SET(CMAKE_CXX_CREATE_SHARED_LIBRARY + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /implib: /pdb: /dll /version:. ${CMAKE_END_TEMP_FILE}") +SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) + +# create a C shared library +SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}") + +# create a C shared module +SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}") + +# create a C++ static library +SET(CMAKE_CXX_CREATE_STATIC_LIBRARY " /lib ${CMAKE_CL_NOLOGO} /out: ") + +# create a C static library +SET(CMAKE_C_CREATE_STATIC_LIBRARY "${CMAKE_CXX_CREATE_STATIC_LIBRARY}") + +# compile a C++ file into an object file +SET(CMAKE_CXX_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /TP /Fo /Fd -c ${CMAKE_END_TEMP_FILE}") + +# compile a C file into an object file +SET(CMAKE_C_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /Fo /Fd -c ${CMAKE_END_TEMP_FILE}") + + +SET(CMAKE_C_LINK_EXECUTABLE + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe /Fd -link /implib: /version:. ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CXX_LINK_EXECUTABLE + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe /Fd -link /implib: /version:. ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_C_CREATE_PREPROCESSED_SOURCE + " > ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} -E ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE + " > ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /TP -E ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_C_CREATE_ASSEMBLY_SOURCE + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /FAs /FoNUL /Fa /c ${CMAKE_END_TEMP_FILE}") + +SET(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /TP /FAs /FoNUL /Fa /c ${CMAKE_END_TEMP_FILE}") + diff --git a/CMakeLua/Modules/Platform/eCos.cmake b/CMakeLua/Modules/Platform/eCos.cmake new file mode 100644 index 0000000..e7709cc --- /dev/null +++ b/CMakeLua/Modules/Platform/eCos.cmake @@ -0,0 +1,56 @@ +# support for eCos http://ecos.sourceware.org +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty + +SET(CMAKE_LINK_LIBRARY_SUFFIX "") +SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a +SET(CMAKE_EXECUTABLE_SUFFIX ".elf") # same suffix as if built using UseEcos.cmake +SET(CMAKE_DL_LIBS "" ) + +SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + + +INCLUDE(Platform/UnixPaths) + +# eCos can be built only with gcc +IF(CMAKE_C_COMPILER AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "GNU") + MESSAGE(FATAL_ERROR "GNU gcc is required for eCos") +ENDIF(CMAKE_C_COMPILER AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "GNU") +IF(CMAKE_CXX_COMPILER AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + MESSAGE(FATAL_ERROR "GNU gcc is required for eCos") +ENDIF(CMAKE_CXX_COMPILER AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + +# this is a header which is part of every eCos "installation" +# it would be better to search for libtarget.a, but this isn't possible +# at this point in the setup process, since CMAKE_SIZEOF_VOID_P is still +# unknown, which is used in FIND_LIBRARY() +FIND_PATH(ECOS_SYSTEM_CONFIG_HEADER_PATH NAMES pkgconf/system.h) + +IF(NOT ECOS_SYSTEM_CONFIG_HEADER_PATH) + MESSAGE(FATAL_ERROR "Could not find eCos pkgconf/system.h. Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.") +ENDIF(NOT ECOS_SYSTEM_CONFIG_HEADER_PATH) + +GET_FILENAME_COMPONENT(ECOS_LIBTARGET_DIRECTORY "${ECOS_SYSTEM_CONFIG_HEADER_PATH}" PATH) +INCLUDE_DIRECTORIES(${ECOS_SYSTEM_CONFIG_HEADER_PATH}) +ADD_DEFINITIONS(-D__ECOS__=1 -D__ECOS=1) +SET(ECOS_LIBTARGET_DIRECTORY "${ECOS_LIBTARGET_DIRECTORY}/lib") + +# special link commands for eCos executables +SET(CMAKE_CXX_LINK_EXECUTABLE " -o -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld ") +SET(CMAKE_C_LINK_EXECUTABLE " -o -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld ") + +# eCos doesn't support shared libs +SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + +SET(CMAKE_CXX_LINK_SHARED_LIBRARY ) +SET(CMAKE_CXX_LINK_MODULE_LIBRARY ) +SET(CMAKE_C_LINK_SHARED_LIBRARY ) +SET(CMAKE_C_LINK_MODULE_LIBRARY ) + diff --git a/CMakeLua/Modules/Platform/g77.cmake b/CMakeLua/Modules/Platform/g77.cmake new file mode 100755 index 0000000..8f7d448 --- /dev/null +++ b/CMakeLua/Modules/Platform/g77.cmake @@ -0,0 +1,7 @@ +IF(CMAKE_COMPILER_IS_GNUG77) + SET (CMAKE_Fortran_FLAGS_INIT "") + SET (CMAKE_Fortran_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") + SET (CMAKE_Fortran_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") + SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +ENDIF(CMAKE_COMPILER_IS_GNUG77) diff --git a/CMakeLua/Modules/Platform/gas.cmake b/CMakeLua/Modules/Platform/gas.cmake new file mode 100644 index 0000000..c34aef1 --- /dev/null +++ b/CMakeLua/Modules/Platform/gas.cmake @@ -0,0 +1,19 @@ +IF(UNIX) + SET(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o) +ELSE(UNIX) + SET(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj) +ENDIF(UNIX) + +SET(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT " -o ") + +SET(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY + " cr " + " ") + +SET(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE + " -o ") + +# to be done +SET(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY) +SET(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE) + diff --git a/CMakeLua/Modules/Platform/gcc.cmake b/CMakeLua/Modules/Platform/gcc.cmake new file mode 100644 index 0000000..695a55f --- /dev/null +++ b/CMakeLua/Modules/Platform/gcc.cmake @@ -0,0 +1,27 @@ +IF(CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic + SET (CMAKE_C_FLAGS_INIT "") + SET (CMAKE_C_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") + SET (CMAKE_C_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") + SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") + IF(NOT APPLE) + SET (CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ") + ENDIF(NOT APPLE) +ENDIF(CMAKE_COMPILER_IS_GNUCC) + +IF(CMAKE_COMPILER_IS_GNUCXX) + SET (CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC") # -pic + SET (CMAKE_CXX_FLAGS_INIT "") + SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") + SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") + IF(NOT APPLE) + SET (CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ") + ENDIF(NOT APPLE) +ENDIF(CMAKE_COMPILER_IS_GNUCXX) diff --git a/CMakeLua/Modules/Platform/kFreeBSD.cmake b/CMakeLua/Modules/Platform/kFreeBSD.cmake new file mode 100755 index 0000000..b14514a --- /dev/null +++ b/CMakeLua/Modules/Platform/kFreeBSD.cmake @@ -0,0 +1,12 @@ +# kFreeBSD looks just like Linux. +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-rdynamic") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") + +INCLUDE(Platform/UnixPaths) diff --git a/CMakeLua/Modules/Platform/syllable.cmake b/CMakeLua/Modules/Platform/syllable.cmake new file mode 100644 index 0000000..2bcaf8c --- /dev/null +++ b/CMakeLua/Modules/Platform/syllable.cmake @@ -0,0 +1,33 @@ +# this is the platform file for the Syllable OS (http://www.syllable.org) +# Syllable is a free OS (GPL), which is mostly POSIX conform +# the linker accepts the rpath related arguments, but this is later on +# ignored by the runtime linker +# shared libs are found exclusively via the environment variable DLL_PATH, +# which may contain also dirs containing the special variable @bindir@ +# by default @bindir@/lib is part of DLL_PATH +# in order to run the cmake tests successfully it is required that also +# @bindir@/. and @bindir@/../lib are in DLL_PATH + + +SET(CMAKE_DL_LIBS "dl") +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") +#SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +#SET(CMAKE_EXE_EXPORTS_CXX_FLAG "-Wl,--export-dynamic") + +# Initialize C link type selection flags. These flags are used when +# building a shared library, shared module, or executable that links +# to other libraries to select whether to use the static or shared +# versions of the libraries. +FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) + SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +ENDFOREACH(type) + +INCLUDE(Platform/UnixPaths) + +# these are Syllable specific: +LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH /usr/indexes) diff --git a/CMakeLua/Modules/Platform/xlf.cmake b/CMakeLua/Modules/Platform/xlf.cmake new file mode 100755 index 0000000..adf146f --- /dev/null +++ b/CMakeLua/Modules/Platform/xlf.cmake @@ -0,0 +1 @@ +set(CMAKE_Fortran_DEFINE_FLAG "-WF,-D") diff --git a/CMakeLua/Modules/SystemInformation.cmake b/CMakeLua/Modules/SystemInformation.cmake new file mode 100755 index 0000000..370778c --- /dev/null +++ b/CMakeLua/Modules/SystemInformation.cmake @@ -0,0 +1,88 @@ +PROJECT(DumpInformation) + +# first get the standard information for th platform +INCLUDE_DIRECTORIES("This does not exists") +GET_DIRECTORY_PROPERTY(incl INCLUDE_DIRECTORIES) +SET_DIRECTORY_PROPERTIES(PROPERTIES INCLUDE_DIRECTORIES "${DumpInformation_BINARY_DIR};${DumpInformation_SOURCE_DIR}") + +CONFIGURE_FILE("${CMAKE_ROOT}/Modules/SystemInformation.in" "${RESULT_FILE}") + + +FILE(APPEND "${RESULT_FILE}" + "\n=================================================================\n") +FILE(APPEND "${RESULT_FILE}" + "=== VARIABLES\n") +FILE(APPEND "${RESULT_FILE}" + "=================================================================\n") +GET_CMAKE_PROPERTY(res VARIABLES) +FOREACH(var ${res}) + FILE(APPEND "${RESULT_FILE}" "${var} \"${${var}}\"\n") +ENDFOREACH(var ${res}) + +FILE(APPEND "${RESULT_FILE}" + "\n=================================================================\n") +FILE(APPEND "${RESULT_FILE}" + "=== COMMANDS\n") +FILE(APPEND "${RESULT_FILE}" + "=================================================================\n") +GET_CMAKE_PROPERTY(res COMMANDS) +FOREACH(var ${res}) + FILE(APPEND "${RESULT_FILE}" "${var}\n") +ENDFOREACH(var ${res}) + +FILE(APPEND "${RESULT_FILE}" + "\n=================================================================\n") +FILE(APPEND "${RESULT_FILE}" + "=== MACROS\n") +FILE(APPEND "${RESULT_FILE}" + "=================================================================\n") +FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/AllMacros.txt "") +GET_CMAKE_PROPERTY(res MACROS) +FOREACH(var ${res}) + FILE(APPEND "${RESULT_FILE}" "${var}\n") +ENDFOREACH(var ${res}) + +FILE(APPEND "${RESULT_FILE}" + "\n=================================================================\n") +FILE(APPEND "${RESULT_FILE}" + "=== OTHER\n") +FILE(APPEND "${RESULT_FILE}" + "=================================================================\n") +GET_DIRECTORY_PROPERTY(res INCLUDE_DIRECTORIES) +FOREACH(var ${res}) + FILE(APPEND "${RESULT_FILE}" "INCLUDE_DIRECTORY: ${var}\n") +ENDFOREACH(var) + +GET_DIRECTORY_PROPERTY(res LINK_DIRECTORIES) +FOREACH(var ${res}) + FILE(APPEND "${RESULT_FILE}" "LINK_DIRECTORIES: ${var}\n") +ENDFOREACH(var) + +GET_DIRECTORY_PROPERTY(res INCLUDE_REGULAR_EXPRESSION) +FILE(APPEND "${RESULT_FILE}" "INCLUDE_REGULAR_EXPRESSION: ${res}\n") + +# include other files if they are present, such as when run from within the +# binary tree +MACRO(DUMP_FILE THE_FILE) + IF (EXISTS "${THE_FILE}") + FILE(APPEND "${RESULT_FILE}" + "\n=================================================================\n") + FILE(APPEND "${RESULT_FILE}" + "=== ${THE_FILE}\n") + FILE(APPEND "${RESULT_FILE}" + "=================================================================\n") + + FILE(READ "${THE_FILE}" FILE_CONTENTS LIMIT 50000) + FILE(APPEND "${RESULT_FILE}" "${FILE_CONTENTS}") + ENDIF (EXISTS "${THE_FILE}") +ENDMACRO(DUMP_FILE) + +DUMP_FILE("../CMakeCache.txt") +DUMP_FILE("../CMakeFiles/CMakeOutput.log") +DUMP_FILE("../CMakeFiles/CMakeError.log") +DUMP_FILE("../CMakeFiles/CMakeSystem.cmake") + +FOREACH (EXTRA_FILE ${EXTRA_DUMP_FILES}) + DUMP_FILE("${EXTRA_FILE}") +ENDFOREACH (EXTRA_FILE) + diff --git a/CMakeLua/Modules/SystemInformation.in b/CMakeLua/Modules/SystemInformation.in new file mode 100755 index 0000000..7722da0 --- /dev/null +++ b/CMakeLua/Modules/SystemInformation.in @@ -0,0 +1,92 @@ +Avoid ctest truncation of output: CTEST_FULL_OUTPUT +======================================================== +=== MAIN VARIABLES +======================================================== +CMAKE_STATIC_LIBRARY_PREFIX == "${CMAKE_STATIC_LIBRARY_PREFIX}" +CMAKE_STATIC_LIBRARY_SUFFIX == "${CMAKE_STATIC_LIBRARY_SUFFIX}" +CMAKE_SHARED_LIBRARY_PREFIX == "${CMAKE_SHARED_LIBRARY_PREFIX}" +CMAKE_SHARED_LIBRARY_SUFFIX == "${CMAKE_SHARED_LIBRARY_SUFFIX}" +CMAKE_SHARED_MODULE_PREFIX == "${CMAKE_SHARED_MODULE_PREFIX}" +CMAKE_SHARED_MODULE_SUFFIX == "${CMAKE_SHARED_MODULE_SUFFIX}" + + +CMAKE_DL_LIBS == "${CMAKE_DL_LIBS}" +CMAKE_LIBRARY_PATH_FLAG == "${CMAKE_LIBRARY_PATH_FLAG}" +CMAKE_LINK_LIBRARY_FLAG == "${CMAKE_LINK_LIBRARY_FLAG}" +CMAKE_SKIP_RPATH == "${CMAKE_SKIP_RPATH}" +CMAKE_SYSTEM_INFO_FILE == "${CMAKE_SYSTEM_INFO_FILE}" +CMAKE_SYSTEM_NAME == "${CMAKE_SYSTEM_NAME}" +CMAKE_SYSTEM == "${CMAKE_SYSTEM}" +CMAKE_CXX_COMPILER == "${CMAKE_CXX_COMPILER}" +CMAKE_C_COMPILER == "${CMAKE_C_COMPILER}" +CMAKE_COMPILER_IS_GNUCC == "${CMAKE_COMPILER_IS_GNUCC}" +CMAKE_COMPILER_IS_GNUCXX == "${CMAKE_COMPILER_IS_GNUCXX}" + +// C shared library flag +CMAKE_SHARED_LIBRARY_C_FLAGS == "${CMAKE_SHARED_LIBRARY_C_FLAGS}" +CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS == "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}" +CMAKE_SHARED_LIBRARY_LINK_FLAGS == "${CMAKE_SHARED_LIBRARY_LINK_FLAGS}" +CMAKE_SHARED_LIBRARY_RUNTIME_FLAG == "${CMAKE_SHARED_LIBRARY_RUNTIME_FLAG}" +CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP == "${CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP}" +CMAKE_SHARED_LIBRARY_LINK_STATIC_C_FLAGS == "${CMAKE_SHARED_LIBRARY_LINK_STATIC_C_FLAGS}" +CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_C_FLAGS == "${CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_C_FLAGS}" + +// C shared module flags +CMAKE_SHARED_MODULE_C_FLAGS == "${CMAKE_SHARED_MODULE_C_FLAGS}" +CMAKE_SHARED_MODULE_CREATE_C_FLAGS == "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS}" +CMAKE_SHARED_MODULE_RUNTIME_FLAG == "${CMAKE_SHARED_MODULE_RUNTIME_FLAG}" +CMAKE_SHARED_MODULE_RUNTIME_FLAG_SEP == "${CMAKE_SHARED_MODULE_RUNTIME_FLAG_SEP}" +CMAKE_SHARED_MODULE_LINK_STATIC_C_FLAGS == "${CMAKE_SHARED_MODULE_LINK_STATIC_C_FLAGS}" +CMAKE_SHARED_MODULE_LINK_DYNAMIC_C_FLAGS == "${CMAKE_SHARED_MODULE_LINK_DYNAMIC_C_FLAGS}" + +// C exe flags +CMAKE_EXE_LINK_STATIC_C_FLAGS == "${CMAKE_EXE_LINK_STATIC_C_FLAGS}" +CMAKE_EXE_LINK_DYNAMIC_C_FLAGS == "${CMAKE_EXE_LINK_DYNAMIC_C_FLAGS}" + +// CXX shared library flags +CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS == "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}" +CMAKE_SHARED_LIBRARY_CXX_FLAGS == "${CMAKE_SHARED_LIBRARY_CXX_FLAGS}" +CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS == "${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS}" +CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG == "${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG}" +CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP == "${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP}" +CMAKE_SHARED_LIBRARY_LINK_STATIC_CXX_FLAGS == "${CMAKE_SHARED_LIBRARY_LINK_STATIC_CXX_FLAGS}" +CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_CXX_FLAGS == "${CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_CXX_FLAGS}" + +// CXX shared module flags +CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS == "${CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS}" +CMAKE_SHARED_MODULE_CXX_FLAGS == "${CMAKE_SHARED_MODULE_CXX_FLAGS}" +CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG == "${CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG}" +CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP == "${CMAKE_SHARED_MODULE_RUNTIME_CXX_FLAG_SEP}" +CMAKE_SHARED_MODULE_LINK_STATIC_CXX_FLAGS == "${CMAKE_SHARED_MODULE_LINK_STATIC_CXX_FLAGS}" +CMAKE_SHARED_MODULE_LINK_DYNAMIC_CXX_FLAGS == "${CMAKE_SHARED_MODULE_LINK_DYNAMIC_CXX_FLAGS}" + +// CXX exe flags +CMAKE_EXE_LINK_STATIC_CXX_FLAGS == "${CMAKE_EXE_LINK_STATIC_CXX_FLAGS}" +CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS == "${CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS}" + +CMAKE_USER_MAKE_RULES_OVERRIDE == "${CMAKE_USER_MAKE_RULES_OVERRIDE}" +CMAKE_VERBOSE_MAKEFILE == "${CMAKE_VERBOSE_MAKEFILE}" +CMAKE_BUILD_TYPE == "${CMAKE_BUILD_TYPE}" +CMAKE_CXX_FLAGS == "${CMAKE_CXX_FLAGS}" +CMAKE_CXX_FLAGS_DEBUG == "${CMAKE_CXX_FLAGS_DEBUG}" +CMAKE_CXX_FLAGS_MINSIZEREL == "${CMAKE_CXX_FLAGS_MINSIZEREL}" +CMAKE_CXX_FLAGS_RELEASE == "${CMAKE_CXX_FLAGS_RELEASE}" +CMAKE_CXX_FLAGS_RELWITHDEBINFO == "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" + +CMAKE_C_FLAGS == "${CMAKE_C_FLAGS}" +CMAKE_C_FLAGS_DEBUG == "${CMAKE_C_FLAGS_DEBUG}" +CMAKE_C_FLAGS_MINSIZEREL == "${CMAKE_C_FLAGS_MINSIZEREL}" +CMAKE_C_FLAGS_RELEASE == "${CMAKE_C_FLAGS_RELEASE}" +CMAKE_C_FLAGS_RELWITHDEBINFO == "${CMAKE_C_FLAGS_RELWITHDEBINFO}" + +// build rules +CMAKE_CXX_CREATE_SHARED_LIBRARY == "${CMAKE_CXX_CREATE_SHARED_LIBRARY}" +CMAKE_CXX_CREATE_SHARED_MODULE == "${CMAKE_CXX_CREATE_SHARED_MODULE}" +CMAKE_C_CREATE_SHARED_LIBRARY == "${CMAKE_C_CREATE_SHARED_LIBRARY}" +CMAKE_C_CREATE_SHARED_MODULE == "${CMAKE_C_CREATE_SHARED_MODULE}" +CMAKE_CXX_CREATE_STATIC_LIBRARY == "${CMAKE_CXX_CREATE_STATIC_LIBRARY}" +CMAKE_C_CREATE_STATIC_LIBRARY == "${CMAKE_C_CREATE_STATIC_LIBRARY}" +CMAKE_CXX_COMPILE_OBJECT == "${CMAKE_CXX_COMPILE_OBJECT}" +CMAKE_C_COMPILE_OBJECT == "${CMAKE_C_COMPILE_OBJECT}" +CMAKE_C_LINK_EXECUTABLE == "${CMAKE_C_LINK_EXECUTABLE}" +CMAKE_CXX_LINK_EXECUTABLE == "${CMAKE_CXX_LINK_EXECUTABLE}" diff --git a/CMakeLua/Modules/TestBigEndian.cmake b/CMakeLua/Modules/TestBigEndian.cmake new file mode 100644 index 0000000..ffc3a0c --- /dev/null +++ b/CMakeLua/Modules/TestBigEndian.cmake @@ -0,0 +1,99 @@ +# - Define macro to determine endian type +# Check if the system is big endian or little endian +# TEST_BIG_ENDIAN(VARIABLE) +# VARIABLE - variable to store the result to +# + +MACRO(TEST_BIG_ENDIAN VARIABLE) + IF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") + MESSAGE(STATUS "Check if the system is big endian") + MESSAGE(STATUS "Searching 16 bit integer") + + INCLUDE(CheckTypeSize) + + CHECK_TYPE_SIZE("unsigned short" CMAKE_SIZEOF_UNSIGNED_SHORT) + IF(CMAKE_SIZEOF_UNSIGNED_SHORT EQUAL 2) + MESSAGE(STATUS "Using unsigned short") + SET(CMAKE_16BIT_TYPE "unsigned short") + ELSE(CMAKE_SIZEOF_UNSIGNED_SHORT EQUAL 2) + CHECK_TYPE_SIZE("unsigned int" CMAKE_SIZEOF_UNSIGNED_INT) + IF(CMAKE_SIZEOF_UNSIGNED_INT) + MESSAGE(STATUS "Using unsigned int") + SET(CMAKE_16BIT_TYPE "unsigned int") + + ELSE(CMAKE_SIZEOF_UNSIGNED_INT) + + CHECK_TYPE_SIZE("unsigned long" CMAKE_SIZEOF_UNSIGNED_LONG) + IF(CMAKE_SIZEOF_UNSIGNED_LONG) + MESSAGE(STATUS "Using unsigned long") + SET(CMAKE_16BIT_TYPE "unsigned long") + ELSE(CMAKE_SIZEOF_UNSIGNED_LONG) + MESSAGE(FATAL_ERROR "no suitable type found") + ENDIF(CMAKE_SIZEOF_UNSIGNED_LONG) + + ENDIF(CMAKE_SIZEOF_UNSIGNED_INT) + + ENDIF(CMAKE_SIZEOF_UNSIGNED_SHORT EQUAL 2) + + + CONFIGURE_FILE("${CMAKE_ROOT}/Modules/TestEndianess.c.in" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/TestEndianess.c" + IMMEDIATE @ONLY) + + FILE(READ "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/TestEndianess.c" + TEST_ENDIANESS_FILE_CONTENT) + + TRY_COMPILE(HAVE_${VARIABLE} + "${CMAKE_BINARY_DIR}" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/TestEndianess.c" + OUTPUT_VARIABLE OUTPUT + COPY_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin" ) + + IF(HAVE_${VARIABLE}) + + FILE(STRINGS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin" + CMAKE_TEST_ENDIANESS_STRINGS_LE LIMIT_COUNT 1 REGEX "THIS IS LITTLE ENDIAN") + + FILE(STRINGS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin" + CMAKE_TEST_ENDIANESS_STRINGS_BE LIMIT_COUNT 1 REGEX "THIS IS BIG ENDIAN") + + # on mac, if there are universal binaries built both will be true + # return the result depending on the machine on which cmake runs + IF(CMAKE_TEST_ENDIANESS_STRINGS_BE AND CMAKE_TEST_ENDIANESS_STRINGS_LE) + IF(CMAKE_SYSTEM_PROCESSOR MATCHES powerpc) + SET(CMAKE_TEST_ENDIANESS_STRINGS_BE TRUE) + SET(CMAKE_TEST_ENDIANESS_STRINGS_LE FALSE) + ELSE(CMAKE_SYSTEM_PROCESSOR MATCHES powerpc) + SET(CMAKE_TEST_ENDIANESS_STRINGS_BE FALSE) + SET(CMAKE_TEST_ENDIANESS_STRINGS_LE TRUE) + ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES powerpc) + MESSAGE(STATUS "TEST_BIG_ENDIAN found different results, consider setting CMAKE_OSX_ARCHITECTURES or CMAKE_TRY_COMPILE_OSX_ARCHITECTURES to one or no architecture !") + ENDIF(CMAKE_TEST_ENDIANESS_STRINGS_BE AND CMAKE_TEST_ENDIANESS_STRINGS_LE) + + IF(CMAKE_TEST_ENDIANESS_STRINGS_LE) + SET(${VARIABLE} 0 CACHE INTERNAL "Result of TEST_BIG_ENDIAN" FORCE) + MESSAGE(STATUS "Check if the system is big endian - little endian") + ENDIF(CMAKE_TEST_ENDIANESS_STRINGS_LE) + + IF(CMAKE_TEST_ENDIANESS_STRINGS_BE) + SET(${VARIABLE} 1 CACHE INTERNAL "Result of TEST_BIG_ENDIAN" FORCE) + MESSAGE(STATUS "Check if the system is big endian - big endian") + ENDIF(CMAKE_TEST_ENDIANESS_STRINGS_BE) + + IF(NOT CMAKE_TEST_ENDIANESS_STRINGS_BE AND NOT CMAKE_TEST_ENDIANESS_STRINGS_LE) + MESSAGE(SEND_ERROR "TEST_BIG_ENDIAN found no result!") + ENDIF(NOT CMAKE_TEST_ENDIANESS_STRINGS_BE AND NOT CMAKE_TEST_ENDIANESS_STRINGS_LE) + + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the system is big endian passed with the following output:\n${OUTPUT}\nTestEndianess.c:\n${TEST_ENDIANESS_FILE_CONTENT}\n\n") + + ELSE(HAVE_${VARIABLE}) + MESSAGE(STATUS "Check if the system is big endian - failed") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the system is big endian failed with the following output:\n${OUTPUT}\nTestEndianess.c:\n${TEST_ENDIANESS_FILE_CONTENT}\n\n") + SET(${VARIABLE}) + ENDIF(HAVE_${VARIABLE}) + ENDIF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") +ENDMACRO(TEST_BIG_ENDIAN) + + diff --git a/CMakeLua/Modules/TestCXXAcceptsFlag.cmake b/CMakeLua/Modules/TestCXXAcceptsFlag.cmake new file mode 100755 index 0000000..2242dcf --- /dev/null +++ b/CMakeLua/Modules/TestCXXAcceptsFlag.cmake @@ -0,0 +1,30 @@ +# - Test CXX compiler for a flag +# Check if the CXX compiler accepts a flag +# +# Macro CHECK_CXX_ACCEPTS_FLAG(FLAGS VARIABLE) - +# checks if the function exists +# FLAGS - the flags to try +# VARIABLE - variable to store the result +# + +MACRO(CHECK_CXX_ACCEPTS_FLAG FLAGS VARIABLE) + IF(NOT DEFINED ${VARIABLE}) + MESSAGE(STATUS "Checking to see if CXX compiler accepts flag ${FLAGS}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/DummyCXXFile.cxx + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${FLAGS} + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Checking to see if CXX compiler accepts flag ${FLAGS} - yes") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the CXX compiler accepts the flag ${FLAGS} passed with " + "the following output:\n${OUTPUT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Checking to see if CXX compiler accepts flag ${FLAGS} - no") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the CXX compiler accepts the flag ${FLAGS} failed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF(${VARIABLE}) + ENDIF(NOT DEFINED ${VARIABLE}) +ENDMACRO(CHECK_CXX_ACCEPTS_FLAG) diff --git a/CMakeLua/Modules/TestEndianess.c.in b/CMakeLua/Modules/TestEndianess.c.in new file mode 100644 index 0000000..68094d4 --- /dev/null +++ b/CMakeLua/Modules/TestEndianess.c.in @@ -0,0 +1,20 @@ +/* A 16 bit integer is required. */ +typedef @CMAKE_16BIT_TYPE@ cmakeint16; + +/* On a little endian machine, these 16bit ints will give "THIS IS LITTLE ENDIAN." + On a big endian machine the characters will be exchanged pairwise. */ +const cmakeint16 info_little[] = {0x4854, 0x5349, 0x4920, 0x2053, 0x494c, 0x5454, 0x454c, 0x4520, 0x444e, 0x4149, 0x2e4e, 0x0000}; + +/* on a big endian machine, these 16bit ints will give "THIS IS BIG ENDIAN." + On a little endian machine the characters will be exchanged pairwise. */ +const cmakeint16 info_big[] = {0x5448, 0x4953, 0x2049, 0x5320, 0x4249, 0x4720, 0x454e, 0x4449, 0x414e, 0x2e2e, 0x0000}; + +#ifdef __CLASSIC_C__ +int main(){ + int ac; + char*av[]; +#else +int main(int ac, char*av[]){ +#endif + return (&info_little[0] != &info_big[0]); +} diff --git a/CMakeLua/Modules/TestForANSIForScope.cmake b/CMakeLua/Modules/TestForANSIForScope.cmake new file mode 100644 index 0000000..5d27bb4 --- /dev/null +++ b/CMakeLua/Modules/TestForANSIForScope.cmake @@ -0,0 +1,31 @@ +# - Check for ANSI for scope support +# Check if the compiler supports std:: on stl classes. +# CMAKE_NO_ANSI_FOR_SCOPE - holds result +# + +IF("CMAKE_ANSI_FOR_SCOPE" MATCHES "^CMAKE_ANSI_FOR_SCOPE$") + MESSAGE(STATUS "Check for ANSI scope") + TRY_COMPILE(CMAKE_ANSI_FOR_SCOPE ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/TestForAnsiForScope.cxx + OUTPUT_VARIABLE OUTPUT) + IF (CMAKE_ANSI_FOR_SCOPE) + MESSAGE(STATUS "Check for ANSI scope - found") + SET (CMAKE_NO_ANSI_FOR_SCOPE 0 CACHE INTERNAL + "Does the compiler support ansi for scope.") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the CXX compiler understands ansi for scopes passed with " + "the following output:\n${OUTPUT}\n\n") + ELSE (CMAKE_ANSI_FOR_SCOPE) + MESSAGE(STATUS "Check for ANSI scope - not found") + SET (CMAKE_NO_ANSI_FOR_SCOPE 1 CACHE INTERNAL + "Does the compiler support ansi for scope.") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the CXX compiler understands ansi for scopes failed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF (CMAKE_ANSI_FOR_SCOPE) +ENDIF("CMAKE_ANSI_FOR_SCOPE" MATCHES "^CMAKE_ANSI_FOR_SCOPE$") + + + + + diff --git a/CMakeLua/Modules/TestForANSIStreamHeaders.cmake b/CMakeLua/Modules/TestForANSIStreamHeaders.cmake new file mode 100644 index 0000000..e3d4483 --- /dev/null +++ b/CMakeLua/Modules/TestForANSIStreamHeaders.cmake @@ -0,0 +1,20 @@ +# - Test for compiler support of ANSI stream headers iostream, etc. +# check if we they have the standard ansi stream files (without the .h) +# CMAKE_NO_ANSI_STREAM_HEADERS - defined by the results +# +INCLUDE(CheckIncludeFileCXX) + +IF(NOT CMAKE_NO_ANSI_STREAM_HEADERS) + CHECK_INCLUDE_FILE_CXX(iostream CMAKE_ANSI_STREAM_HEADERS) + IF (CMAKE_ANSI_STREAM_HEADERS) + SET (CMAKE_NO_ANSI_STREAM_HEADERS 0 CACHE INTERNAL + "Does the compiler support headers like iostream.") + ELSE (CMAKE_ANSI_STREAM_HEADERS) + SET (CMAKE_NO_ANSI_STREAM_HEADERS 1 CACHE INTERNAL + "Does the compiler support headers like iostream.") + ENDIF (CMAKE_ANSI_STREAM_HEADERS) + + MARK_AS_ADVANCED(CMAKE_NO_ANSI_STREAM_HEADERS) +ENDIF(NOT CMAKE_NO_ANSI_STREAM_HEADERS) + + diff --git a/CMakeLua/Modules/TestForANSIStreamHeaders.cxx b/CMakeLua/Modules/TestForANSIStreamHeaders.cxx new file mode 100644 index 0000000..cfb7686 --- /dev/null +++ b/CMakeLua/Modules/TestForANSIStreamHeaders.cxx @@ -0,0 +1,6 @@ +#include + +int main(int,char *[]) +{ + return 0; +} diff --git a/CMakeLua/Modules/TestForAnsiForScope.cxx b/CMakeLua/Modules/TestForAnsiForScope.cxx new file mode 100644 index 0000000..f2ec760 --- /dev/null +++ b/CMakeLua/Modules/TestForAnsiForScope.cxx @@ -0,0 +1,7 @@ +int main(int, char*[]) +{ + int i; + for(int i=0; i < 1; ++i); + (void)i; + return 0; +} diff --git a/CMakeLua/Modules/TestForSSTREAM.cmake b/CMakeLua/Modules/TestForSSTREAM.cmake new file mode 100755 index 0000000..1884bf2 --- /dev/null +++ b/CMakeLua/Modules/TestForSSTREAM.cmake @@ -0,0 +1,29 @@ +# # - Test for std:: namespace support +# check if the compiler supports std:: on stl classes +# CMAKE_NO_ANSI_STRING_STREAM - defined by the results +# +IF("CMAKE_HAS_ANSI_STRING_STREAM" MATCHES "^CMAKE_HAS_ANSI_STRING_STREAM$") + MESSAGE(STATUS "Check for sstream") + TRY_COMPILE(CMAKE_HAS_ANSI_STRING_STREAM ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/TestForSSTREAM.cxx + OUTPUT_VARIABLE OUTPUT) + IF (CMAKE_HAS_ANSI_STRING_STREAM) + MESSAGE(STATUS "Check for sstream - found") + SET (CMAKE_NO_ANSI_STRING_STREAM 0 CACHE INTERNAL + "Does the compiler support sstream") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the CXX compiler has sstream passed with " + "the following output:\n${OUTPUT}\n\n") + ELSE (CMAKE_HAS_ANSI_STRING_STREAM) + MESSAGE(STATUS "Check for sstream - not found") + SET (CMAKE_NO_ANSI_STRING_STREAM 1 CACHE INTERNAL + "Does the compiler support sstream") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the CXX compiler has sstream failed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF (CMAKE_HAS_ANSI_STRING_STREAM) +ENDIF("CMAKE_HAS_ANSI_STRING_STREAM" MATCHES "^CMAKE_HAS_ANSI_STRING_STREAM$") + + + + diff --git a/CMakeLua/Modules/TestForSSTREAM.cxx b/CMakeLua/Modules/TestForSSTREAM.cxx new file mode 100755 index 0000000..af4a4bb --- /dev/null +++ b/CMakeLua/Modules/TestForSSTREAM.cxx @@ -0,0 +1,11 @@ +#include +int main(int, char*[]) +{ + std::ostringstream os; + os << "12345"; + if(os.str().size() == 5) + { + return 0; + } + return -1; +} diff --git a/CMakeLua/Modules/TestForSTDNamespace.cmake b/CMakeLua/Modules/TestForSTDNamespace.cmake new file mode 100644 index 0000000..58d2ff3 --- /dev/null +++ b/CMakeLua/Modules/TestForSTDNamespace.cmake @@ -0,0 +1,29 @@ +# - Test for std:: namespace support +# check if the compiler supports std:: on stl classes +# CMAKE_NO_STD_NAMESPACE - defined by the results +# +IF("CMAKE_STD_NAMESPACE" MATCHES "^CMAKE_STD_NAMESPACE$") + MESSAGE(STATUS "Check for STD namespace") + TRY_COMPILE(CMAKE_STD_NAMESPACE ${CMAKE_BINARY_DIR} + ${CMAKE_ROOT}/Modules/TestForSTDNamespace.cxx + OUTPUT_VARIABLE OUTPUT) + IF (CMAKE_STD_NAMESPACE) + MESSAGE(STATUS "Check for STD namespace - found") + SET (CMAKE_NO_STD_NAMESPACE 0 CACHE INTERNAL + "Does the compiler support std::.") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the CXX compiler has std namespace passed with " + "the following output:\n${OUTPUT}\n\n") + ELSE (CMAKE_STD_NAMESPACE) + MESSAGE(STATUS "Check for STD namespace - not found") + SET (CMAKE_NO_STD_NAMESPACE 1 CACHE INTERNAL + "Does the compiler support std::.") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the CXX compiler has std namespace failed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF (CMAKE_STD_NAMESPACE) +ENDIF("CMAKE_STD_NAMESPACE" MATCHES "^CMAKE_STD_NAMESPACE$") + + + + diff --git a/CMakeLua/Modules/TestForSTDNamespace.cxx b/CMakeLua/Modules/TestForSTDNamespace.cxx new file mode 100644 index 0000000..fc3ac59 --- /dev/null +++ b/CMakeLua/Modules/TestForSTDNamespace.cxx @@ -0,0 +1,6 @@ +#include +int main(int, char*[]) +{ + std::list(); + return 0; +} diff --git a/CMakeLua/Modules/UseEcos.cmake b/CMakeLua/Modules/UseEcos.cmake new file mode 100644 index 0000000..73d3f2a --- /dev/null +++ b/CMakeLua/Modules/UseEcos.cmake @@ -0,0 +1,223 @@ +# - This module defines variables and macros required to build eCos application. +# This file contains the following macros: +# ECOS_ADD_INCLUDE_DIRECTORIES() - add the eCos include dirs +# ECOS_ADD_EXECUTABLE(name source1 ... sourceN ) - create an eCos executable +# ECOS_ADJUST_DIRECTORY(VAR source1 ... sourceN ) - adjusts the path of the source files and puts the result into VAR +# +# Macros for selecting the toolchain: +# ECOS_USE_ARM_ELF_TOOLS() - enable the ARM ELF toolchain for the directory where it is called +# ECOS_USE_I386_ELF_TOOLS() - enable the i386 ELF toolchain for the directory where it is called +# ECOS_USE_PPC_EABI_TOOLS() - enable the PowerPC toolchain for the directory where it is called +# +# It contains the following variables: +# ECOS_DEFINITIONS +# ECOSCONFIG_EXECUTABLE +# ECOS_CONFIG_FILE - defaults to ecos.ecc, if your eCos configuration file has a different name, adjust this variable +# for internal use only: +# ECOS_ADD_TARGET_LIB + +# first check that ecosconfig is available +FIND_PROGRAM(ECOSCONFIG_EXECUTABLE NAMES ecosconfig) +IF(NOT ECOSCONFIG_EXECUTABLE) + MESSAGE(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.") +ELSE(NOT ECOSCONFIG_EXECUTABLE) + MESSAGE(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}") +ENDIF(NOT ECOSCONFIG_EXECUTABLE) + +# check that ECOS_REPOSITORY is set correctly +IF (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db) + MESSAGE(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db") +ELSE (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db) + MESSAGE(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}") +ENDIF (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db) + +# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work +FIND_PACKAGE(Tclsh) +IF (NOT TCL_TCLSH) + MESSAGE(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.") +ELSE (NOT TCL_TCLSH) + MESSAGE(STATUS "tlcsh found: ${TCL_TCLSH}") +ENDIF (NOT TCL_TCLSH) + +#add the globale include-diretories +#usage: ECOS_ADD_INCLUDE_DIRECTORIES() +MACRO(ECOS_ADD_INCLUDE_DIRECTORIES) +#check for ProjectSources.txt one level higher + IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt) + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../) + ELSE (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt) + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/) + ENDIF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt) + +#the ecos include directory + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/) + +ENDMACRO(ECOS_ADD_INCLUDE_DIRECTORIES) + + +#we want to compile for the xscale processor, in this case the following macro has to be called +#usage: ECOS_USE_ARM_ELF_TOOLS() +MACRO (ECOS_USE_ARM_ELF_TOOLS) + SET(CMAKE_CXX_COMPILER "arm-elf-c++") + SET(CMAKE_COMPILER_IS_GNUCXX 1) + SET(CMAKE_C_COMPILER "arm-elf-gcc") + SET(CMAKE_AR "arm-elf-ar") + SET(CMAKE_RANLIB "arm-elf-ranlib") +#for linking + SET(ECOS_LD_MCPU "-mcpu=xscale") +#for compiling + ADD_DEFINITIONS(-mcpu=xscale -mapcs-frame) +#for the obj-tools + SET(ECOS_ARCH_PREFIX "arm-elf-") +ENDMACRO (ECOS_USE_ARM_ELF_TOOLS) + +#usage: ECOS_USE_PPC_EABI_TOOLS() +MACRO (ECOS_USE_PPC_EABI_TOOLS) + SET(CMAKE_CXX_COMPILER "powerpc-eabi-c++") + SET(CMAKE_COMPILER_IS_GNUCXX 1) + SET(CMAKE_C_COMPILER "powerpc-eabi-gcc") + SET(CMAKE_AR "powerpc-eabi-ar") + SET(CMAKE_RANLIB "powerpc-eabi-ranlib") +#for linking + SET(ECOS_LD_MCPU "") +#for compiling + ADD_DEFINITIONS() +#for the obj-tools + SET(ECOS_ARCH_PREFIX "powerpc-eabi-") +ENDMACRO (ECOS_USE_PPC_EABI_TOOLS) + +#usage: ECOS_USE_I386_ELF_TOOLS() +MACRO (ECOS_USE_I386_ELF_TOOLS) + SET(CMAKE_CXX_COMPILER "i386-elf-c++") + SET(CMAKE_COMPILER_IS_GNUCXX 1) + SET(CMAKE_C_COMPILER "i386-elf-gcc") + SET(CMAKE_AR "i386-elf-ar") + SET(CMAKE_RANLIB "i386-elf-ranlib") +#for linking + SET(ECOS_LD_MCPU "") +#for compiling + ADD_DEFINITIONS() +#for the obj-tools + SET(ECOS_ARCH_PREFIX "i386-elf-") +ENDMACRO (ECOS_USE_I386_ELF_TOOLS) + + +#since the actual sources are located one level upwards +#a "../" has to be prepended in front of every source file +#call the following macro to achieve this, the first parameter +#is the name of the new list of source files with adjusted paths, +#followed by all source files +#usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs}) +MACRO(ECOS_ADJUST_DIRECTORY _target_FILES ) + FOREACH (_current_FILE ${ARGN}) + GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE) + IF (NOT ${_abs_FILE} STREQUAL ${_current_FILE}) + GET_FILENAME_COMPONENT(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE) + ENDIF (NOT ${_abs_FILE} STREQUAL ${_current_FILE}) + LIST(APPEND ${_target_FILES} ${_abs_FILE}) + ENDFOREACH (_current_FILE) +ENDMACRO(ECOS_ADJUST_DIRECTORY) + +# the default ecos config file name +# maybe in the future also out-of-source builds may be possible +SET(ECOS_CONFIG_FILE ecos.ecc) + +#creates the dependancy from all source files on the ecos target.ld, +#adds the command for compiling ecos +MACRO(ECOS_ADD_TARGET_LIB) +# when building out-of-source, create the ecos/ subdir + IF(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos) + FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos) + ENDIF(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos) + +#sources depend on target.ld + SET_SOURCE_FILES_PROPERTIES( + ${ARGN} + PROPERTIES + OBJECT_DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld + ) + + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld + COMMAND sh -c \"make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos || exit -1\; if [ -e ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ] \; then touch ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld\; fi\" + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile + ) + + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile + COMMAND sh -c \" cd ${CMAKE_CURRENT_BINARY_DIR}/ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} tree || exit -1\;\" + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} + ) + + ADD_CUSTOM_TARGET( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile ) +ENDMACRO(ECOS_ADD_TARGET_LIB) + +# get the directory of the current file, used later on in the file +GET_FILENAME_COMPONENT( ECOS_CMAKE_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) + +#macro for creating an executable ecos application +#the first parameter is the name of the executable, +#the second is the list of all source files (where the path +#has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY() +#usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS}) +MACRO(ECOS_ADD_EXECUTABLE _exe_NAME ) + #definitions, valid for all ecos projects + #the optimization and "-g" for debugging has to be enabled + #in the project-specific CMakeLists.txt + ADD_DEFINITIONS(-D__ECOS__=1 -D__ECOS=1) + SET(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin) + +#the executable depends on ecos target.ld + ECOS_ADD_TARGET_LIB(${ARGN}) + +# when using nmake makefiles, the custom buildtype supresses the default cl.exe flags +# and the rules for creating objects are adjusted for gcc + SET(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD) + SET(CMAKE_C_COMPILE_OBJECT " -o -c ") + SET(CMAKE_CXX_COMPILE_OBJECT " -o -c ") +# special link commands for ecos-executables + SET(CMAKE_CXX_LINK_EXECUTABLE " -o ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}") + SET(CMAKE_C_LINK_EXECUTABLE " -o ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}") +# some strict compiler flags + SET (CMAKE_C_FLAGS "-Wstrict-prototypes") + SET (CMAKE_CXX_FLAGS "-Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions") + + ADD_EXECUTABLE(${_exe_NAME} ${ARGN}) + SET_TARGET_PROPERTIES(${_exe_NAME} PROPERTIES SUFFIX ".elf") + +#create a binary file + ADD_CUSTOM_COMMAND( + TARGET ${_exe_NAME} + POST_BUILD + COMMAND ${ECOS_ARCH_PREFIX}objcopy + ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin + ) + +#and an srec file + ADD_CUSTOM_COMMAND( + TARGET ${_exe_NAME} + POST_BUILD + COMMAND ${ECOS_ARCH_PREFIX}objcopy + ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec + ) + +#add the created files to the clean-files + SET_DIRECTORY_PROPERTIES( + PROPERTIES + ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst;" + ) + + ADD_CUSTOM_TARGET(ecosclean ${CMAKE_COMMAND} -DECOS_DIR=${CMAKE_CURRENT_BINARY_DIR}/ecos/ -P ${ECOS_CMAKE_MODULE_DIR}/ecos_clean.cmake ) + ADD_CUSTOM_TARGET(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + ADD_DEPENDENCIES (ecosclean normalclean) + + + ADD_CUSTOM_TARGET( listing + COMMAND echo -e \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst + COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst + COMMAND echo -e \"\\n--- Symbols sorted by size ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst + COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst + COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst + COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst ) + +ENDMACRO(ECOS_ADD_EXECUTABLE) + diff --git a/CMakeLua/Modules/UsePkgConfig.cmake b/CMakeLua/Modules/UsePkgConfig.cmake new file mode 100644 index 0000000..23519e8 --- /dev/null +++ b/CMakeLua/Modules/UsePkgConfig.cmake @@ -0,0 +1,57 @@ +# - obsolete pkg-config module for CMake +# +# Defines the following macros: +# +# PKGCONFIG(package includedir libdir linkflags cflags) +# +# Calling PKGCONFIG will fill the desired information into the 4 given arguments, +# e.g. PKGCONFIG(libart-2.0 LIBART_INCLUDE_DIR LIBART_LINK_DIR LIBART_LINK_FLAGS LIBART_CFLAGS) +# if pkg-config was NOT found or the specified software package doesn't exist, the +# variable will be empty when the function returns, otherwise they will contain the respective information +# + + + +FIND_PROGRAM(PKGCONFIG_EXECUTABLE NAMES pkg-config PATHS /usr/local/bin ) + +MACRO(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags) + message(STATUS + "WARNING: you are using the obsolete 'PKGCONFIG' macro use FindPkgConfig") +# reset the variables at the beginning + SET(${_include_DIR}) + SET(${_link_DIR}) + SET(${_link_FLAGS}) + SET(${_cflags}) + + # if pkg-config has been found + IF(PKGCONFIG_EXECUTABLE) + + EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull ) + + # and if the package of interest also exists for pkg-config, then get the information + IF(NOT _return_VALUE) + + EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=includedir + OUTPUT_VARIABLE ${_include_DIR} ) + string(REGEX REPLACE "[\r\n]" " " ${_include_DIR} "${${_include_DIR}}") + + + EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=libdir + OUTPUT_VARIABLE ${_link_DIR} ) + string(REGEX REPLACE "[\r\n]" " " ${_link_DIR} "${${_link_DIR}}") + + EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --libs + OUTPUT_VARIABLE ${_link_FLAGS} ) + string(REGEX REPLACE "[\r\n]" " " ${_link_FLAGS} "${${_link_FLAGS}}") + + EXEC_PROGRAM(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --cflags + OUTPUT_VARIABLE ${_cflags} ) + string(REGEX REPLACE "[\r\n]" " " ${_cflags} "${${_cflags}}") + + ENDIF(NOT _return_VALUE) + + ENDIF(PKGCONFIG_EXECUTABLE) + +ENDMACRO(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags) + +MARK_AS_ADVANCED(PKGCONFIG_EXECUTABLE) diff --git a/CMakeLua/Modules/UseQt4.cmake b/CMakeLua/Modules/UseQt4.cmake new file mode 100755 index 0000000..143e59e --- /dev/null +++ b/CMakeLua/Modules/UseQt4.cmake @@ -0,0 +1,102 @@ +# - Use Module for QT4 +# Sets up C and C++ to use Qt 4. It is assumed that FindQt.cmake +# has already been loaded. See FindQt.cmake for information on +# how to load Qt 4 into your CMake project. + + +ADD_DEFINITIONS(${QT_DEFINITIONS}) +SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG QT_DEBUG) +SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG) +SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG) +SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG) + +INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR}) + +SET(QT_LIBRARIES "") + +IF (QT_USE_QTMAIN) + IF (WIN32) + SET(QT_LIBRARIES ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY}) + ENDIF (WIN32) +ENDIF (QT_USE_QTMAIN) + +# Macro for setting up compile flags for Qt modules +MACRO(QT_MODULE_SETUP module) + IF (QT_QT${module}_FOUND) + ADD_DEFINITIONS(-DQT_${module}_LIB) + INCLUDE_DIRECTORIES(${QT_QT${module}_INCLUDE_DIR}) + SET(QT_LIBRARIES ${QT_LIBRARIES} ${QT_QT${module}_LIBRARY} ${QT_${module}_LIB_DEPENDENCIES}) + ELSE (QT_QT${module}_FOUND) + MESSAGE("Qt ${module} library not found.") + ENDIF (QT_QT${module}_FOUND) +ENDMACRO(QT_MODULE_SETUP) + + +# Qt modules (in order of dependence) + +IF (QT_USE_QT3SUPPORT) + QT_MODULE_SETUP(3SUPPORT) + ADD_DEFINITIONS(-DQT3_SUPPORT) +ENDIF (QT_USE_QT3SUPPORT) + +IF (QT_USE_QTOPENGL) + QT_MODULE_SETUP(OPENGL) +ENDIF (QT_USE_QTOPENGL) + +IF (QT_USE_QTASSISTANT) + QT_MODULE_SETUP(ASSISTANT) +ENDIF (QT_USE_QTASSISTANT) + +IF (QT_USE_QTDESIGNER) + QT_MODULE_SETUP(DESIGNER) +ENDIF (QT_USE_QTDESIGNER) + +IF (QT_USE_QTMOTIF) + QT_MODULE_SETUP(MOTIF) +ENDIF (QT_USE_QTMOTIF) + +IF (QT_USE_QTNSPLUGIN) + QT_MODULE_SETUP(NSPLUGIN) +ENDIF (QT_USE_QTNSPLUGIN) + +IF (QT_USE_QTSCRIPT) + QT_MODULE_SETUP(SCRIPT) +ENDIF (QT_USE_QTSCRIPT) + +IF (QT_USE_QTSVG) + QT_MODULE_SETUP(SVG) +ENDIF (QT_USE_QTSVG) + +IF (QT_USE_QTUITOOLS) + QT_MODULE_SETUP(UITOOLS) +ENDIF (QT_USE_QTUITOOLS) + +IF (NOT QT_DONT_USE_QTGUI) + QT_MODULE_SETUP(GUI) +ENDIF (NOT QT_DONT_USE_QTGUI) + +IF (QT_USE_QTTEST) + QT_MODULE_SETUP(TEST) +ENDIF (QT_USE_QTTEST) + +IF (QT_USE_QTXML) + QT_MODULE_SETUP(XML) +ENDIF (QT_USE_QTXML) + +IF (QT_USE_QTSQL) + QT_MODULE_SETUP(SQL) +ENDIF (QT_USE_QTSQL) + +IF (QT_USE_QTNETWORK) + QT_MODULE_SETUP(NETWORK) +ENDIF (QT_USE_QTNETWORK) + +IF (QT_USE_QTDBUS) + QT_MODULE_SETUP(DBUS) +ENDIF (QT_USE_QTDBUS) + +IF (NOT QT_DONT_USE_QTCORE) + QT_MODULE_SETUP(CORE) +ENDIF (NOT QT_DONT_USE_QTCORE) + + diff --git a/CMakeLua/Modules/UseSWIG.cmake b/CMakeLua/Modules/UseSWIG.cmake new file mode 100644 index 0000000..5499f84 --- /dev/null +++ b/CMakeLua/Modules/UseSWIG.cmake @@ -0,0 +1,207 @@ +# - SWIG module for CMake +# Defines the following macros: +# SWIG_ADD_MODULE(name language [ files ]) +# - Define swig module with given name and specified language +# SWIG_LINK_LIBRARIES(name [ libraries ]) +# - Link libraries to swig module +# All other macros are for internal use only. +# To get the actual name of the swig module, +# use: ${SWIG_MODULE_name_REAL_NAME}. +# Set Source files properties such as CPLUSPLUS and SWIG_FLAGS to specify +# special behavior of SWIG. Also global CMAKE_SWIG_FLAGS can be used to add +# special flags to all swig calls. +# Another special variable is CMAKE_SWIG_OUTDIR, it allows one to specify +# where to write all the swig generated module (swig -outdir option) +# The name-specific variable SWIG_MODULE__EXTRA_DEPS may be used +# to specify extra dependencies for the generated modules. + +SET(SWIG_CXX_EXTENSION "cxx") +SET(SWIG_EXTRA_LIBRARIES "") + +SET(SWIG_PYTHON_EXTRA_FILE_EXTENSION "py") + +# +# For given swig module initialize variables associated with it +# +MACRO(SWIG_MODULE_INITIALIZE name language) + STRING(TOUPPER "${language}" swig_uppercase_language) + STRING(TOLOWER "${language}" swig_lowercase_language) + SET(SWIG_MODULE_${name}_LANGUAGE "${swig_uppercase_language}") + SET(SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG "${swig_lowercase_language}") + + IF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xUNKNOWNx$") + MESSAGE(FATAL_ERROR "SWIG Error: Language \"${language}\" not found") + ENDIF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xUNKNOWNx$") + + SET(SWIG_MODULE_${name}_REAL_NAME "${name}") + IF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPYTHONx$") + SET(SWIG_MODULE_${name}_REAL_NAME "_${name}") + ENDIF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPYTHONx$") + IF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPERLx$") + SET(SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow") + ENDIF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPERLx$") +ENDMACRO(SWIG_MODULE_INITIALIZE) + +# +# For a given language, input file, and output file, determine extra files that +# will be generated. This is internal swig macro. +# + +MACRO(SWIG_GET_EXTRA_OUTPUT_FILES language outfiles generatedpath infile) + GET_SOURCE_FILE_PROPERTY(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename + ${infile} SWIG_MODULE_NAME) + IF(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename STREQUAL "NOTFOUND") + GET_FILENAME_COMPONENT(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename "${infile}" NAME_WE) + ENDIF(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename STREQUAL "NOTFOUND") + FOREACH(it ${SWIG_${language}_EXTRA_FILE_EXTENSION}) + SET(${outfiles} ${${outfiles}} + "${generatedpath}/${SWIG_GET_EXTRA_OUTPUT_FILES_module_basename}.${it}") + ENDFOREACH(it) +ENDMACRO(SWIG_GET_EXTRA_OUTPUT_FILES) + +# +# Take swig (*.i) file and add proper custom commands for it +# +MACRO(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) + SET(swig_full_infile ${infile}) + GET_FILENAME_COMPONENT(swig_source_file_path "${infile}" PATH) + GET_FILENAME_COMPONENT(swig_source_file_name_we "${infile}" NAME_WE) + GET_SOURCE_FILE_PROPERTY(swig_source_file_generated ${infile} GENERATED) + GET_SOURCE_FILE_PROPERTY(swig_source_file_cplusplus ${infile} CPLUSPLUS) + GET_SOURCE_FILE_PROPERTY(swig_source_file_flags ${infile} SWIG_FLAGS) + IF("${swig_source_file_flags}" STREQUAL "NOTFOUND") + SET(swig_source_file_flags "") + ENDIF("${swig_source_file_flags}" STREQUAL "NOTFOUND") + SET(swig_source_file_fullname "${infile}") + IF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_SOURCE_DIR}") + STRING(REGEX REPLACE + "^${CMAKE_CURRENT_SOURCE_DIR}" "" + swig_source_file_relative_path + "${swig_source_file_path}") + ELSE(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_SOURCE_DIR}") + IF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_BINARY_DIR}") + STRING(REGEX REPLACE + "^${CMAKE_CURRENT_BINARY_DIR}" "" + swig_source_file_relative_path + "${swig_source_file_path}") + SET(swig_source_file_generated 1) + ELSE(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_BINARY_DIR}") + SET(swig_source_file_relative_path "${swig_source_file_path}") + IF(swig_source_file_generated) + SET(swig_source_file_fullname "${CMAKE_CURRENT_BINARY_DIR}/${infile}") + ELSE(swig_source_file_generated) + SET(swig_source_file_fullname "${CMAKE_CURRENT_SOURCE_DIR}/${infile}") + ENDIF(swig_source_file_generated) + ENDIF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_BINARY_DIR}") + ENDIF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_SOURCE_DIR}") + + SET(swig_generated_file_fullname + "${CMAKE_CURRENT_BINARY_DIR}") + IF(swig_source_file_relative_path) + SET(swig_generated_file_fullname + "${swig_generated_file_fullname}/${swig_source_file_relative_path}") + ENDIF(swig_source_file_relative_path) + # If CMAKE_SWIG_OUTDIR was specified then pass it to -outdir + IF(CMAKE_SWIG_OUTDIR) + SET(swig_outdir ${CMAKE_SWIG_OUTDIR}) + ELSE(CMAKE_SWIG_OUTDIR) + SET(swig_outdir ${CMAKE_CURRENT_BINARY_DIR}) + ENDIF(CMAKE_SWIG_OUTDIR) + SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE} + swig_extra_generated_files + "${swig_outdir}" + "${infile}") + SET(swig_generated_file_fullname + "${swig_generated_file_fullname}/${swig_source_file_name_we}") + # add the language into the name of the file (i.e. TCL_wrap) + # this allows for the same .i file to be wrapped into different languages + SET(swig_generated_file_fullname + "${swig_generated_file_fullname}${SWIG_MODULE_${name}_LANGUAGE}_wrap") + + IF(swig_source_file_cplusplus) + SET(swig_generated_file_fullname + "${swig_generated_file_fullname}.${SWIG_CXX_EXTENSION}") + ELSE(swig_source_file_cplusplus) + SET(swig_generated_file_fullname + "${swig_generated_file_fullname}.c") + ENDIF(swig_source_file_cplusplus) + + #MESSAGE("Full path to source file: ${swig_source_file_fullname}") + #MESSAGE("Full path to the output file: ${swig_generated_file_fullname}") + GET_DIRECTORY_PROPERTY(cmake_include_directories INCLUDE_DIRECTORIES) + SET(swig_include_dirs) + FOREACH(it ${cmake_include_directories}) + SET(swig_include_dirs ${swig_include_dirs} "-I${it}") + ENDFOREACH(it) + + SET(swig_special_flags) + # default is c, so add c++ flag if it is c++ + IF(swig_source_file_cplusplus) + SET(swig_special_flags ${swig_special_flags} "-c++") + ENDIF(swig_source_file_cplusplus) + SET(swig_extra_flags) + IF(SWIG_MODULE_${name}_EXTRA_FLAGS) + SET(swig_extra_flags ${swig_extra_flags} ${SWIG_MODULE_${name}_EXTRA_FLAGS}) + ENDIF(SWIG_MODULE_${name}_EXTRA_FLAGS) + ADD_CUSTOM_COMMAND( + OUTPUT "${swig_generated_file_fullname}" ${swig_extra_generated_files} + COMMAND "${SWIG_EXECUTABLE}" + ARGS "-${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}" + ${swig_source_file_flags} + ${CMAKE_SWIG_FLAGS} + -outdir ${swig_outdir} + ${swig_special_flags} + ${swig_extra_flags} + ${swig_include_dirs} + -o "${swig_generated_file_fullname}" + "${swig_source_file_fullname}" + MAIN_DEPENDENCY "${swig_source_file_fullname}" + DEPENDS ${SWIG_MODULE_${name}_EXTRA_DEPS} + COMMENT "Swig source") + SET_SOURCE_FILES_PROPERTIES("${swig_generated_file_fullname}" ${swig_extra_generated_files} + PROPERTIES GENERATED 1) + SET(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files}) +ENDMACRO(SWIG_ADD_SOURCE_TO_MODULE) + +# +# Create Swig module +# +MACRO(SWIG_ADD_MODULE name language) + SWIG_MODULE_INITIALIZE(${name} ${language}) + SET(swig_dot_i_sources) + SET(swig_other_sources) + FOREACH(it ${ARGN}) + IF(${it} MATCHES ".*\\.i$") + SET(swig_dot_i_sources ${swig_dot_i_sources} "${it}") + ELSE(${it} MATCHES ".*\\.i$") + SET(swig_other_sources ${swig_other_sources} "${it}") + ENDIF(${it} MATCHES ".*\\.i$") + ENDFOREACH(it) + + SET(swig_generated_sources) + FOREACH(it ${swig_dot_i_sources}) + SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source ${it}) + SET(swig_generated_sources ${swig_generated_sources} "${swig_generated_source}") + ENDFOREACH(it) + GET_DIRECTORY_PROPERTY(swig_extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES) + SET_DIRECTORY_PROPERTIES(PROPERTIES + ADDITIONAL_MAKE_CLEAN_FILES "${swig_extra_clean_files};${swig_generated_sources}") + ADD_LIBRARY(${SWIG_MODULE_${name}_REAL_NAME} + MODULE + ${swig_generated_sources} + ${swig_other_sources}) + SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_REAL_NAME} + PROPERTIES PREFIX "") +ENDMACRO(SWIG_ADD_MODULE) + +# +# Like TARGET_LINK_LIBRARIES but for swig modules +# +MACRO(SWIG_LINK_LIBRARIES name) + IF(SWIG_MODULE_${name}_REAL_NAME) + TARGET_LINK_LIBRARIES(${SWIG_MODULE_${name}_REAL_NAME} ${ARGN}) + ELSE(SWIG_MODULE_${name}_REAL_NAME) + MESSAGE(SEND_ERROR "Cannot find Swig library \"${name}\".") + ENDIF(SWIG_MODULE_${name}_REAL_NAME) +ENDMACRO(SWIG_LINK_LIBRARIES name) + diff --git a/CMakeLua/Modules/UseVTK40.cmake b/CMakeLua/Modules/UseVTK40.cmake new file mode 100644 index 0000000..750d44b --- /dev/null +++ b/CMakeLua/Modules/UseVTK40.cmake @@ -0,0 +1,22 @@ +# + +# This is an implementation detail for using VTK 4.0 with the +# FindVTK.cmake module. Do not include directly by name. This should +# be included only when FindVTK.cmake sets the VTK_USE_FILE variable +# to point here. + +# Load the compiler settings used for VTK. +IF(VTK_BUILD_SETTINGS_FILE) + INCLUDE(CMakeImportBuildSettings) + CMAKE_IMPORT_BUILD_SETTINGS(${VTK_BUILD_SETTINGS_FILE}) +ENDIF(VTK_BUILD_SETTINGS_FILE) + +# Add compiler flags needed to use VTK. +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VTK_REQUIRED_C_FLAGS}") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${VTK_REQUIRED_CXX_FLAGS}") + +# Add include directories needed to use VTK. +INCLUDE_DIRECTORIES(${VTK_INCLUDE_DIRS}) + +# Add link directories needed to use VTK. +LINK_DIRECTORIES(${VTK_LIBRARY_DIRS}) diff --git a/CMakeLua/Modules/UseVTKBuildSettings40.cmake b/CMakeLua/Modules/UseVTKBuildSettings40.cmake new file mode 100644 index 0000000..a43bb0b --- /dev/null +++ b/CMakeLua/Modules/UseVTKBuildSettings40.cmake @@ -0,0 +1,25 @@ +# + +# Implementation detail for FindVTK.cmake to let it provide a +# VTK_BUILD_SETTINGS_FILE for VTK 4.0. + +SET(CMAKE_BUILD_SETTING_CMAKE_MAJOR_VERSION "${VTK40_CMAKE_MAJOR_VERSION}") +SET(CMAKE_BUILD_SETTING_CMAKE_MINOR_VERSION "${VTK40_CMAKE_MINOR_VERSION}") +SET(CMAKE_BUILD_SETTING_PROJECT_NAME "VTK") + +SET(CMAKE_BUILD_SETTING_C_COMPILER "${VTK40_CMAKE_C_COMPILER}") +SET(CMAKE_BUILD_SETTING_C_FLAGS "${VTK40_CMAKE_C_FLAGS}") +SET(CMAKE_BUILD_SETTING_C_FLAGS_DEBUG "${VTK40_CMAKE_C_FLAGS_DEBUG}") +SET(CMAKE_BUILD_SETTING_C_FLAGS_RELEASE "${VTK40_CMAKE_C_FLAGS_RELEASE}") +SET(CMAKE_BUILD_SETTING_C_FLAGS_MINSIZEREL "${VTK40_CMAKE_C_FLAGS_MINSIZEREL}") +SET(CMAKE_BUILD_SETTING_C_FLAGS_RELWITHDEBINFO "${VTK40_CMAKE_C_FLAGS_RELWITHDEBINFO}") + +SET(CMAKE_BUILD_SETTING_CXX_COMPILER "${VTK40_CMAKE_CXX_COMPILER}") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS "${VTK40_CMAKE_CXX_FLAGS}") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_DEBUG "${VTK40_CMAKE_CXX_FLAGS_DEBUG}") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_RELEASE "${VTK40_CMAKE_CXX_FLAGS_RELEASE}") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_MINSIZEREL "${VTK40_CMAKE_CXX_FLAGS_MINSIZEREL}") +SET(CMAKE_BUILD_SETTING_CXX_FLAGS_RELWITHDEBINFO "${VTK40_CMAKE_CXX_FLAGS_RELWITHDEBINFO}") + +SET(CMAKE_BUILD_SETTING_BUILD_TYPE "${VTK40_CMAKE_BUILD_TYPE}") +SET(CMAKE_BUILD_SETTING_BUILD_TOOL "${VTK40_CMAKE_BUILD_TOOL}") diff --git a/CMakeLua/Modules/UseVTKConfig40.cmake b/CMakeLua/Modules/UseVTKConfig40.cmake new file mode 100644 index 0000000..623c607 --- /dev/null +++ b/CMakeLua/Modules/UseVTKConfig40.cmake @@ -0,0 +1,396 @@ +# + +# This is an implementation detail for using VTK 4.0 with the +# FindVTK.cmake module. Do not include directly. + +# Hard-code the version number since it isn't provided by VTK 4.0. +SET(VTK_MAJOR_VERSION 4) +SET(VTK_MINOR_VERSION 0) +SET(VTK_BUILD_VERSION 2) + +# Provide a new UseVTK file that doesn't do a full LOAD_CACHE. +SET(VTK_USE_FILE ${CMAKE_ROOT}/Modules/UseVTK40.cmake) + +# Provide a build settings file. +SET(VTK_BUILD_SETTINGS_FILE ${CMAKE_ROOT}/Modules/UseVTKBuildSettings40.cmake) + +# There are no CMake extensions for VTK 4.0. +SET(VTK_CMAKE_EXTENSIONS_DIR "") + +# grep "VTK40_" UseVTKConfig40.cmake |sed 's/.*VTK40_\([A-Za-z0-9_]*\).*/ \1/' +LOAD_CACHE(${VTK_DIR} READ_WITH_PREFIX VTK40_ + BUILD_SHARED_LIBS + CMAKE_BUILD_TOOL + CMAKE_BUILD_TYPE + CMAKE_CACHE_MAJOR_VERSION + CMAKE_CACHE_MINOR_VERSION + CMAKE_CXX_COMPILER + CMAKE_CXX_FLAGS + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_RELWITHDEBINFO + CMAKE_C_COMPILER + CMAKE_C_FLAGS + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_MINSIZEREL + CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_INSTALL_PREFIX + CMAKE_Xutil_INCLUDE_PATH + EXECUTABLE_OUTPUT_PATH + JAVA_INCLUDE_PATH2 + LIBRARY_OUTPUT_PATH + MPIRUN + MPI_INCLUDE_PATH + MPI_POSTFLAGS + MPI_PREFLAGS + OPENGL_INCLUDE_DIR + OSMESA_INCLUDE_PATH + PYTHON_INCLUDE_PATH + TCL_INCLUDE_PATH + VLI_INCLUDE_PATH_FOR_VG500 + VLI_INCLUDE_PATH_FOR_VP1000 + VTK_BINARY_DIR + VTK_DEBUG_LEAKS + VTK_HAVE_VG500 + VTK_HAVE_VP1000 + VTK_MANGLE_MESA + VTK_OPENGL_HAS_OSMESA + VTK_PARSE_JAVA_EXE + VTK_SOURCE_DIR + VTK_USE_64BIT_IDS + VTK_USE_ANSI_STDLIB + VTK_USE_HYBRID + VTK_USE_MATROX_IMAGING + VTK_USE_MPI + VTK_USE_PARALLEL + VTK_USE_PATENTED + VTK_USE_RENDERING + VTK_USE_VIDEO_FOR_WINDOWS + VTK_USE_VOLUMEPRO + VTK_USE_X + VTK_WRAP_JAVA + VTK_WRAP_JAVA_EXE + VTK_WRAP_PYTHON + VTK_WRAP_PYTHON_EXE + VTK_WRAP_TCL + VTK_WRAP_TCL_EXE + vtkCommonJava_LIB_DEPENDS + vtkCommonPython_LIB_DEPENDS + vtkCommonTCL_LIB_DEPENDS + vtkCommon_LIB_DEPENDS + vtkFilteringJava_LIB_DEPENDS + vtkFilteringPython_LIB_DEPENDS + vtkFilteringTCL_LIB_DEPENDS + vtkFiltering_LIB_DEPENDS + vtkGraphicsJava_LIB_DEPENDS + vtkGraphicsPython_LIB_DEPENDS + vtkGraphicsTCL_LIB_DEPENDS + vtkGraphics_LIB_DEPENDS + vtkHybridJava_LIB_DEPENDS + vtkHybridPython_LIB_DEPENDS + vtkHybridTCL_LIB_DEPENDS + vtkHybrid_LIB_DEPENDS + vtkIOJava_LIB_DEPENDS + vtkIOPython_LIB_DEPENDS + vtkIOTCL_LIB_DEPENDS + vtkIO_LIB_DEPENDS + vtkImagingJava_LIB_DEPENDS + vtkImagingPython_LIB_DEPENDS + vtkImagingTCL_LIB_DEPENDS + vtkImaging_LIB_DEPENDS + vtkParallelJava_LIB_DEPENDS + vtkParallelPython_LIB_DEPENDS + vtkParallelTCL_LIB_DEPENDS + vtkParallel_LIB_DEPENDS + vtkPatentedJava_LIB_DEPENDS + vtkPatentedPython_LIB_DEPENDS + vtkPatentedTCL_LIB_DEPENDS + vtkPatented_LIB_DEPENDS + vtkRenderingJava_LIB_DEPENDS + vtkRenderingPythonTkWidgets_LIB_DEPENDS + vtkRenderingPython_LIB_DEPENDS + vtkRenderingTCL_LIB_DEPENDS + vtkRendering_LIB_DEPENDS + vtkjpeg_LIB_DEPENDS + vtkpng_LIB_DEPENDS + vtkzlib_LIB_DEPENDS +) + +# Copy needed settings from the VTK 4.0 cache. +SET(VTK_BUILD_SHARED ${VTK40_BUILD_SHARED_LIBS}) +SET(VTK_DEBUG_LEAKS ${VTK40_VTK_DEBUG_LEAKS}) +SET(VTK_HAVE_VG500 ${VTK40_VTK_HAVE_VG500}) +SET(VTK_HAVE_VP1000 ${VTK40_VTK_HAVE_VP1000}) +SET(VTK_USE_MANGLED_MESA ${VTK40_VTK_MANGLE_MESA}) +SET(VTK_MPIRUN_EXE ${VTK40_MPIRUN}) +SET(VTK_MPI_POSTFLAGS ${VTK40_MPI_POSTFLAGS}) +SET(VTK_MPI_PREFLAGS ${VTK40_MPI_PREFLAGS}) +SET(VTK_OPENGL_HAS_OSMESA ${VTK40_VTK_OPENGL_HAS_OSMESA}) +SET(VTK_USE_64BIT_IDS ${VTK40_VTK_USE_64BIT_IDS}) +SET(VTK_USE_ANSI_STDLIB ${VTK40_VTK_USE_ANSI_STDLIB}) +SET(VTK_USE_HYBRID ${VTK40_VTK_USE_HYBRID}) +SET(VTK_USE_MATROX_IMAGING ${VTK40_VTK_USE_MATROX_IMAGING}) +SET(VTK_USE_MPI ${VTK40_VTK_USE_MPI}) +SET(VTK_USE_PARALLEL ${VTK40_VTK_USE_PARALLEL}) +SET(VTK_USE_PATENTED ${VTK40_VTK_USE_PATENTED}) +SET(VTK_USE_RENDERING ${VTK40_VTK_USE_RENDERING}) +SET(VTK_USE_VIDEO_FOR_WINDOWS ${VTK40_VTK_USE_VIDEO_FOR_WINDOWS}) +SET(VTK_USE_VOLUMEPRO ${VTK40_VTK_USE_VOLUMEPRO}) +SET(VTK_USE_X ${VTK40_VTK_USE_X}) +SET(VTK_WRAP_JAVA ${VTK40_VTK_WRAP_JAVA}) +SET(VTK_WRAP_PYTHON ${VTK40_VTK_WRAP_PYTHON}) +SET(VTK_WRAP_TCL ${VTK40_VTK_WRAP_TCL}) + +# Create the list of available kits. +SET(VTK_KITS COMMON FILTERING GRAPHICS IMAGING IO) +IF(VTK_USE_RENDERING) + SET(VTK_KITS ${VTK_KITS} RENDERING) +ENDIF(VTK_USE_RENDERING) +IF(VTK_USE_HYBRID) + SET(VTK_KITS ${VTK_KITS} HYBRID) +ENDIF(VTK_USE_HYBRID) +IF(VTK_USE_PARALLEL) + SET(VTK_KITS ${VTK_KITS} PARALLEL) +ENDIF(VTK_USE_PARALLEL) +IF(VTK_USE_PATENTED) + SET(VTK_KITS ${VTK_KITS} PATENTED) +ENDIF(VTK_USE_PATENTED) + +# Create the list of available languages. +SET(VTK_LANGUAGES "") +IF(VTK_WRAP_TCL) + SET(VTK_LANGUAGES ${VTK_LANGUAGES} TCL) +ENDIF(VTK_WRAP_TCL) +IF(VTK_WRAP_PYTHON) + SET(VTK_LANGUAGES ${VTK_LANGUAGES} PYTHON) +ENDIF(VTK_WRAP_PYTHON) +IF(VTK_WRAP_JAVA) + SET(VTK_LANGUAGES ${VTK_LANGUAGES} JAVA) +ENDIF(VTK_WRAP_JAVA) + +# Include directories for other projects installed on the system and +# used by VTK. +SET(VTK_INCLUDE_DIRS_SYS "") +IF(VTK_USE_RENDERING) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} + ${VTK40_OPENGL_INCLUDE_PATH} ${VTK40_OPENGL_INCLUDE_DIR}) + IF(VTK_USE_X) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} + ${VTK40_CMAKE_Xlib_INCLUDE_PATH} ${VTK40_CMAKE_Xutil_INCLUDE_PATH}) + ENDIF(VTK_USE_X) +ENDIF(VTK_USE_RENDERING) + +IF(VTK_OPENGL_HAS_OSMESA) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} + ${VTK40_OSMESA_INCLUDE_PATH}) +ENDIF(VTK_OPENGL_HAS_OSMESA) + +IF(VTK_USE_MPI) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} ${VTK40_MPI_INCLUDE_PATH}) +ENDIF(VTK_USE_MPI) + +IF(VTK_WRAP_TCL) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} ${VTK40_TCL_INCLUDE_PATH}) +ENDIF(VTK_WRAP_TCL) + +IF(VTK_WRAP_PYTHON) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} ${VTK40_PYTHON_INCLUDE_PATH}) +ENDIF(VTK_WRAP_PYTHON) + +IF(VTK_WRAP_JAVA) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} + ${VTK40_JAVA_INCLUDE_PATH} ${VTK40_JAVA_INCLUDE_PATH2}) +ENDIF(VTK_WRAP_JAVA) + +IF(VTK_HAVE_VG500) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} + ${VTK40_VLI_INCLUDE_PATH_FOR_VG500}) +ENDIF(VTK_HAVE_VG500) + +IF(VTK_HAVE_VP1000) + SET(VTK_INCLUDE_DIRS_SYS ${VTK_INCLUDE_DIRS_SYS} + ${VTK40_VLI_INCLUDE_PATH_FOR_VP1000}) +ENDIF(VTK_HAVE_VP1000) + +# See if this is a build tree or install tree. +IF(EXISTS ${VTK_DIR}/Common) + # This is a VTK 4.0 build tree. + + SET(VTK_LIBRARY_DIRS ${VTK40_LIBRARY_OUTPUT_PATH}) + + # Determine the include directories needed. + SET(VTK_INCLUDE_DIRS ${VTK40_VTK_BINARY_DIR}) + IF(VTK_USE_PARALLEL) + SET(VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} ${VTK40_VTK_SOURCE_DIR}/Parallel) + ENDIF(VTK_USE_PARALLEL) + IF(VTK_USE_HYBRID) + SET(VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} ${VTK40_VTK_SOURCE_DIR}/Hybrid) + ENDIF(VTK_USE_HYBRID) + IF(VTK_USE_PATENTED) + SET(VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} ${VTK40_VTK_SOURCE_DIR}/Patented) + ENDIF(VTK_USE_PATENTED) + IF(VTK_USE_RENDERING) + SET(VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} ${VTK40_VTK_SOURCE_DIR}/Rendering) + ENDIF(VTK_USE_RENDERING) + + # These directories are always needed. + SET(VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} + ${VTK40_VTK_SOURCE_DIR}/IO + ${VTK40_VTK_SOURCE_DIR}/Imaging + ${VTK40_VTK_SOURCE_DIR}/Graphics + ${VTK40_VTK_SOURCE_DIR}/Filtering + ${VTK40_VTK_SOURCE_DIR}/Common) + + # Give access to a few utilities. + SET(VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} + ${VTK40_VTK_BINARY_DIR}/Utilities/png + ${VTK40_VTK_SOURCE_DIR}/Utilities/png + ${VTK40_VTK_BINARY_DIR}/Utilities/zlib + ${VTK40_VTK_SOURCE_DIR}/Utilities/zlib) + + # Executable locations. + IF(VTK_WRAP_TCL) + SET(VTK_TCL_EXE ${VTK40_EXECUTABLE_OUTPUT_PATH}/vtk) + SET(VTK_WRAP_TCL_EXE ${VTK40_VTK_WRAP_TCL_EXE}) + SET(VTK_TCL_HOME ${VTK40_VTK_SOURCE_DIR}/Wrapping/Tcl) + ENDIF(VTK_WRAP_TCL) + IF(VTK_WRAP_PYTHON) + SET(VTK_WRAP_PYTHON_EXE ${VTK40_VTK_WRAP_PYTHON_EXE}) + ENDIF(VTK_WRAP_PYTHON) + IF(VTK_WRAP_JAVA) + SET(VTK_PARSE_JAVA_EXE ${VTK40_VTK_PARSE_JAVA_EXE}) + SET(VTK_WRAP_JAVA_EXE ${VTK40_VTK_WRAP_JAVA_EXE}) + ENDIF(VTK_WRAP_JAVA) + +ELSE(EXISTS ${VTK_DIR}/Common) + # This is a VTK 4.0 install tree. + + SET(VTK_INCLUDE_DIRS ${VTK_DIR}) + SET(VTK_LIBRARY_DIRS ${VTK40_CMAKE_INSTALL_PREFIX}/lib/vtk) + + # Executable locations. + IF(VTK_WRAP_TCL) + SET(VTK_TCL_EXE ${VTK40_CMAKE_INSTALL_PREFIX}/bin/vtk) + SET(VTK_WRAP_TCL_EXE ${VTK40_CMAKE_INSTALL_PREFIX}/bin/vtkWrapTcl) + SET(VTK_TCL_HOME ${VTK40_CMAKE_INSTALL_PREFIX}/lib/vtk/tcl) + ENDIF(VTK_WRAP_TCL) + IF(VTK_WRAP_PYTHON) + SET(VTK_WRAP_PYTHON_EXE ${VTK40_CMAKE_INSTALL_PREFIX}/bin/vtkWrapPython) + ENDIF(VTK_WRAP_PYTHON) + IF(VTK_WRAP_JAVA) + SET(VTK_PARSE_JAVA_EXE ${VTK40_CMAKE_INSTALL_PREFIX}/bin/vtkParseJava) + SET(VTK_WRAP_JAVA_EXE ${VTK40_CMAKE_INSTALL_PREFIX}/bin/vtkWrapJava) + ENDIF(VTK_WRAP_JAVA) +ENDIF(EXISTS ${VTK_DIR}/Common) + +# Add the system include directories last. +SET(VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} ${VTK_INCLUDE_DIRS_SYS}) + +# Find the required C and C++ compiler flags. +IF(CMAKE_COMPILER_IS_GNUCXX) + IF(WIN32) + # The platform is gcc on cygwin. + SET(VTK_REQUIRED_CXX_FLAGS "${VTK_REQUIRED_CXX_FLAGS} -mwin32") + SET(VTK_REQUIRED_C_FLAGS "${VTK_REQUIRED_C_FLAGS} -mwin32") + ENDIF(WIN32) +ELSE(CMAKE_COMPILER_IS_GNUCXX) + IF(CMAKE_ANSI_CFLAGS) + SET(VTK_REQUIRED_C_FLAGS "${VTK_REQUIRED_C_FLAGS} ${CMAKE_ANSI_CFLAGS}") + ENDIF(CMAKE_ANSI_CFLAGS) + IF(CMAKE_SYSTEM MATCHES "OSF1-V.*") + SET(VTK_REQUIRED_CXX_FLAGS + "${VTK_REQUIRED_CXX_FLAGS} -timplicit_local -no_implicit_include") + ENDIF(CMAKE_SYSTEM MATCHES "OSF1-V.*") +ENDIF(CMAKE_COMPILER_IS_GNUCXX) + +IF(VTK_USE_X) + IF(CMAKE_X_CFLAGS) + SET(VTK_REQUIRED_C_FLAGS "${VTK_REQUIRED_C_FLAGS} ${CMAKE_X_CFLAGS}") + SET(VTK_REQUIRED_CXX_FLAGS "${VTK_REQUIRED_CXX_FLAGS} ${CMAKE_X_CFLAGS}") + ENDIF(CMAKE_X_CFLAGS) +ENDIF(VTK_USE_X) + +# Copy library dependencies. +SET(vtkCommonJava_LIB_DEPENDS "${VTK40_vtkCommonJava_LIB_DEPENDS}") +SET(vtkCommonPython_LIB_DEPENDS "${VTK40_vtkCommonPython_LIB_DEPENDS}") +SET(vtkCommonTCL_LIB_DEPENDS "${VTK40_vtkCommonTCL_LIB_DEPENDS}") +SET(vtkCommon_LIB_DEPENDS "${VTK40_vtkCommon_LIB_DEPENDS}") +SET(vtkFilteringJava_LIB_DEPENDS "${VTK40_vtkFilteringJava_LIB_DEPENDS}") +SET(vtkFilteringPython_LIB_DEPENDS "${VTK40_vtkFilteringPython_LIB_DEPENDS}") +SET(vtkFilteringTCL_LIB_DEPENDS "${VTK40_vtkFilteringTCL_LIB_DEPENDS}") +SET(vtkFiltering_LIB_DEPENDS "${VTK40_vtkFiltering_LIB_DEPENDS}") +SET(vtkGraphicsJava_LIB_DEPENDS "${VTK40_vtkGraphicsJava_LIB_DEPENDS}") +SET(vtkGraphicsPython_LIB_DEPENDS "${VTK40_vtkGraphicsPython_LIB_DEPENDS}") +SET(vtkGraphicsTCL_LIB_DEPENDS "${VTK40_vtkGraphicsTCL_LIB_DEPENDS}") +SET(vtkGraphics_LIB_DEPENDS "${VTK40_vtkGraphics_LIB_DEPENDS}") +SET(vtkHybridJava_LIB_DEPENDS "${VTK40_vtkHybridJava_LIB_DEPENDS}") +SET(vtkHybridPython_LIB_DEPENDS "${VTK40_vtkHybridPython_LIB_DEPENDS}") +SET(vtkHybridTCL_LIB_DEPENDS "${VTK40_vtkHybridTCL_LIB_DEPENDS}") +SET(vtkHybrid_LIB_DEPENDS "${VTK40_vtkHybrid_LIB_DEPENDS}") +SET(vtkIOJava_LIB_DEPENDS "${VTK40_vtkIOJava_LIB_DEPENDS}") +SET(vtkIOPython_LIB_DEPENDS "${VTK40_vtkIOPython_LIB_DEPENDS}") +SET(vtkIOTCL_LIB_DEPENDS "${VTK40_vtkIOTCL_LIB_DEPENDS}") +SET(vtkIO_LIB_DEPENDS "${VTK40_vtkIO_LIB_DEPENDS}") +SET(vtkImagingJava_LIB_DEPENDS "${VTK40_vtkImagingJava_LIB_DEPENDS}") +SET(vtkImagingPython_LIB_DEPENDS "${VTK40_vtkImagingPython_LIB_DEPENDS}") +SET(vtkImagingTCL_LIB_DEPENDS "${VTK40_vtkImagingTCL_LIB_DEPENDS}") +SET(vtkImaging_LIB_DEPENDS "${VTK40_vtkImaging_LIB_DEPENDS}") +SET(vtkParallelJava_LIB_DEPENDS "${VTK40_vtkParallelJava_LIB_DEPENDS}") +SET(vtkParallelPython_LIB_DEPENDS "${VTK40_vtkParallelPython_LIB_DEPENDS}") +SET(vtkParallelTCL_LIB_DEPENDS "${VTK40_vtkParallelTCL_LIB_DEPENDS}") +SET(vtkParallel_LIB_DEPENDS "${VTK40_vtkParallel_LIB_DEPENDS}") +SET(vtkPatentedJava_LIB_DEPENDS "${VTK40_vtkPatentedJava_LIB_DEPENDS}") +SET(vtkPatentedPython_LIB_DEPENDS "${VTK40_vtkPatentedPython_LIB_DEPENDS}") +SET(vtkPatentedTCL_LIB_DEPENDS "${VTK40_vtkPatentedTCL_LIB_DEPENDS}") +SET(vtkPatented_LIB_DEPENDS "${VTK40_vtkPatented_LIB_DEPENDS}") +SET(vtkRenderingJava_LIB_DEPENDS "${VTK40_vtkRenderingJava_LIB_DEPENDS}") +SET(vtkRenderingPythonTkWidgets_LIB_DEPENDS "${VTK40_vtkRenderingPythonTkWidgets_LIB_DEPENDS}") +SET(vtkRenderingPython_LIB_DEPENDS "${VTK40_vtkRenderingPython_LIB_DEPENDS}") +SET(vtkRenderingTCL_LIB_DEPENDS "${VTK40_vtkRenderingTCL_LIB_DEPENDS}") +SET(vtkRendering_LIB_DEPENDS "${VTK40_vtkRendering_LIB_DEPENDS}") +SET(vtkjpeg_LIB_DEPENDS "${VTK40_vtkjpeg_LIB_DEPENDS}") +SET(vtkpng_LIB_DEPENDS "${VTK40_vtkpng_LIB_DEPENDS}") +SET(vtkzlib_LIB_DEPENDS "${VTK40_vtkzlib_LIB_DEPENDS}") + +# List of VTK configuration variables set above. +# grep "^[ ]*SET(VTK" UseVTKConfig40.cmake |sed 's/[ ]*SET(\([^ ]*\) .*/ \1/' +SET(VTK_SETTINGS + VTK_BUILD_SHARED + VTK_BUILD_VERSION + VTK_DEBUG_LEAKS + VTK_HAVE_VG500 + VTK_HAVE_VP1000 + VTK_INCLUDE_DIRS + VTK_KITS + VTK_LANGUAGES + VTK_LIBRARY_DIRS + VTK_MAJOR_VERSION + VTK_MANGLE_MESA + VTK_MINOR_VERSION + VTK_MPIRUN_EXE + VTK_MPI_POSTFLAGS + VTK_MPI_PREFLAGS + VTK_OPENGL_HAS_OSMESA + VTK_PARSE_JAVA_EXE + VTK_TCL_EXE + VTK_TCL_HOME + VTK_USE_64BIT_IDS + VTK_USE_ANSI_STDLIB + VTK_USE_HYBRID + VTK_USE_MATROX_IMAGING + VTK_USE_MPI + VTK_USE_PARALLEL + VTK_USE_PATENTED + VTK_USE_RENDERING + VTK_USE_VIDEO_FOR_WINDOWS + VTK_USE_VOLUMEPRO + VTK_USE_X + VTK_WRAP_JAVA + VTK_WRAP_JAVA_EXE + VTK_WRAP_PYTHON + VTK_WRAP_PYTHON_EXE + VTK_WRAP_TCL + VTK_WRAP_TCL_EXE +) diff --git a/CMakeLua/Modules/Use_wxWindows.cmake b/CMakeLua/Modules/Use_wxWindows.cmake new file mode 100644 index 0000000..7d8c438 --- /dev/null +++ b/CMakeLua/Modules/Use_wxWindows.cmake @@ -0,0 +1,50 @@ +# +# This convenience include finds if wxWindows is installed +# and set the appropriate libs, incdirs, flags etc. +# author Jan Woetzel (07/2003) +## +# ----------------------------------------------------- +# USAGE: +# just include Use_wxWindows.cmake +# in your projects CMakeLists.txt +# INCLUDE( ${CMAKE_MODULE_PATH}/Use_wxWindows.cmake) +## +# if you are sure you need GL then +# SET(WXWINDOWS_USE_GL 1) +# *before* you include this file. +# +# ----------------------------------------------------- +# 16.Feb.2004: changed INCLUDE to FIND_PACKAGE to read from users own non-system CMAKE_MODULE_PATH (Jan Woetzel JW) +# 07/2006: rewrite as FindwxWidgets.cmake, kept for backward compatibilty JW + +MESSAGE(STATUS "Use_wxWindows.cmake is DEPRECATED. \n" +"Please use FIND_PACKAGE(wxWidgets) and INCLUDE(${wxWidgets_USE_FILE}) instead. (JW)") + + +# ------------------------ + +FIND_PACKAGE( wxWindows ) + +IF(WXWINDOWS_FOUND) + +#MESSAGE("DBG Use_wxWindows.cmake: WXWINDOWS_INCLUDE_DIR=${WXWINDOWS_INCLUDE_DIR} WXWINDOWS_LINK_DIRECTORIES=${WXWINDOWS_LINK_DIRECTORIES} WXWINDOWS_LIBRARIES=${WXWINDOWS_LIBRARIES} CMAKE_WXWINDOWS_CXX_FLAGS=${CMAKE_WXWINDOWS_CXX_FLAGS} WXWINDOWS_DEFINITIONS=${WXWINDOWS_DEFINITIONS}") + + IF(WXWINDOWS_INCLUDE_DIR) + INCLUDE_DIRECTORIES(${WXWINDOWS_INCLUDE_DIR}) + ENDIF(WXWINDOWS_INCLUDE_DIR) + IF(WXWINDOWS_LINK_DIRECTORIES) + LINK_DIRECTORIES(${WXWINDOWS_LINK_DIRECTORIES}) + ENDIF(WXWINDOWS_LINK_DIRECTORIES) + IF(WXWINDOWS_LIBRARIES) + LINK_LIBRARIES(${WXWINDOWS_LIBRARIES}) + ENDIF(WXWINDOWS_LIBRARIES) + IF (CMAKE_WXWINDOWS_CXX_FLAGS) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_WXWINDOWS_CXX_FLAGS}") + ENDIF(CMAKE_WXWINDOWS_CXX_FLAGS) + IF(WXWINDOWS_DEFINITIONS) + ADD_DEFINITIONS(${WXWINDOWS_DEFINITIONS}) + ENDIF(WXWINDOWS_DEFINITIONS) +ELSE(WXWINDOWS_FOUND) + MESSAGE(SEND_ERROR "wxWindows not found by Use_wxWindows.cmake") +ENDIF(WXWINDOWS_FOUND) + diff --git a/CMakeLua/Modules/UsewxWidgets.cmake b/CMakeLua/Modules/UsewxWidgets.cmake new file mode 100755 index 0000000..b0e77e7 --- /dev/null +++ b/CMakeLua/Modules/UsewxWidgets.cmake @@ -0,0 +1,71 @@ +# - Convenience include for using wxWidgets library +# Finds if wxWidgets is installed +# and set the appropriate libs, incdirs, flags etc. +# INCLUDE_DIRECTORIES, LINK_DIRECTORIES and ADD_DEFINITIONS +# are called. +# +# USAGE +# SET( wxWidgets_USE_LIBS gl xml xrc ) # optionally: more than wx std libs +# FIND_PACKAGE(wxWidgets REQUIRED) +# INCLUDE( ${xWidgets_USE_FILE} ) +# ... add your targets here, e.g. ADD_EXECUTABLE/ ADD_LIBRARY ... +# TARGET_LINK_LIBRARIERS( ${wxWidgets_LIBRARIES}) +# +# DEPRECATED +# LINK_LIBRARIES is not called in favor of adding dependencies per target. +# +# AUTHOR +# Jan Woetzel + + +# debug message and logging. +# comment these out for distribution +IF (NOT LOGFILE ) + # SET(LOGFILE "${PROJECT_BINARY_DIR}/CMakeOutput.log") +ENDIF (NOT LOGFILE ) +MACRO(MSG _MSG) + # FILE(APPEND ${LOGFILE} "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}\n") + # MESSAGE(STATUS "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") +ENDMACRO(MSG) + + +MSG("wxWidgets_FOUND=${wxWidgets_FOUND}") +IF (wxWidgets_FOUND) + IF (wxWidgets_INCLUDE_DIRS) + IF(wxWidgets_INCLUDE_DIRS_NO_SYSTEM) + INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS}) + ELSE(wxWidgets_INCLUDE_DIRS_NO_SYSTEM) + INCLUDE_DIRECTORIES(SYSTEM ${wxWidgets_INCLUDE_DIRS}) + ENDIF(wxWidgets_INCLUDE_DIRS_NO_SYSTEM) + MSG("wxWidgets_INCLUDE_DIRS=${wxWidgets_INCLUDE_DIRS}") + ENDIF(wxWidgets_INCLUDE_DIRS) + + IF (wxWidgets_LIBRARY_DIRS) + LINK_DIRECTORIES(${wxWidgets_LIBRARY_DIRS}) + MSG("wxWidgets_LIBRARY_DIRS=${wxWidgets_LIBRARY_DIRS}") + ENDIF(wxWidgets_LIBRARY_DIRS) + + IF (wxWidgets_DEFINITIONS) + ADD_DEFINITIONS( ${wxWidgets_DEFINITIONS} ) + MSG("wxWidgets_DEFINITIONS=${wxWidgets_DEFINITIONS}") + ENDIF(wxWidgets_DEFINITIONS) + + IF (wxWidgets_CXX_FLAGS) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${wxWidgets_CXX_FLAGS}") + MSG("wxWidgets_CXX_FLAGS=${wxWidgets_CXX_FLAGS}") + ENDIF(wxWidgets_CXX_FLAGS) + + # DEPRECATED JW + # just for backward compatibility: add deps to all targets + # library projects better use advanced FIND_PACKAGE(wxWidgets) directly. + #IF(wxWidgets_LIBRARIES) + # LINK_LIBRARIES(${wxWidgets_LIBRARIES}) + # # BUG: str too long: MSG("wxWidgets_LIBRARIES=${wxWidgets_LIBRARIES}") + # IF(LOGFILE) + # FILE(APPEND ${LOGFILE} "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${wxWidgets_LIBRARIES}\n") + # ENDIF(LOGFILE) + #ENDIF(wxWidgets_LIBRARIES) + +ELSE (wxWidgets_FOUND) + MESSAGE("wxWidgets requested but not found.") +ENDIF(wxWidgets_FOUND) diff --git a/CMakeLua/Modules/VTKCompatibility.cmake b/CMakeLua/Modules/VTKCompatibility.cmake new file mode 100644 index 0000000..8581f9a --- /dev/null +++ b/CMakeLua/Modules/VTKCompatibility.cmake @@ -0,0 +1,43 @@ +IF(APPLE) + SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "${CMAKE_C_CREATE_SHARED_LIBRARY}") + SET(CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_C_CREATE_SHARED_MODULE}") + STRING( REGEX REPLACE "CMAKE_C_COMPILER" + CMAKE_CXX_COMPILER CMAKE_CXX_CREATE_SHARED_MODULE + "${CMAKE_CXX_CREATE_SHARED_MODULE}") + STRING( REGEX REPLACE "CMAKE_C_COMPILER" + CMAKE_CXX_COMPILER CMAKE_CXX_CREATE_SHARED_LIBRARY + "${CMAKE_CXX_CREATE_SHARED_LIBRARY}") +ENDIF(APPLE) + +SET(VTKFTGL_BINARY_DIR "${VTK_BINARY_DIR}/Utilities/ftgl" + CACHE INTERNAL "") +SET(VTKFREETYPE_BINARY_DIR "${VTK_BINARY_DIR}/Utilities/freetype" + CACHE INTERNAL "") +SET(VTKFTGL_SOURCE_DIR "${VTK_SOURCE_DIR}/Utilities/ftgl" + CACHE INTERNAL "") +SET(VTKFREETYPE_SOURCE_DIR "${VTK_SOURCE_DIR}/Utilities/freetype" + CACHE INTERNAL "") + +SET(VTK_GLEXT_FILE "${VTK_SOURCE_DIR}/Utilities/ParseOGLExt/headers/glext.h" + CACHE FILEPATH + "Location of the OpenGL extensions header file (glext.h).") +SET(VTK_GLXEXT_FILE + "${VTK_SOURCE_DIR}/Utilities/ParseOGLExt/headers/glxext.h" CACHE FILEPATH + "Location of the GLX extensions header file (glxext.h).") +SET(VTK_WGLEXT_FILE "${VTK_SOURCE_DIR}/Utilities/ParseOGLExt/headers/wglext.h" + CACHE FILEPATH + "Location of the WGL extensions header file (wglext.h).") + +# work around an old bug in VTK +SET(TIFF_RIGHT_VERSION 1) + +# vtkRendering links to X11 with "-lXt ${X11_LIBRARIES}" because CMake +# 2.4 and below did not provide the X11_Xt_LIB variable. We need the +# linker search path compatiblity feature. +SET(CMAKE_LINK_OLD_PATHS 1) + +# for very old VTK (versions prior to 4.2) +MACRO(SOURCE_FILES) + message (FATAL_ERROR "You are trying to build a very old version of VTK (prior to VTK 4.2). To do this you need to use CMake 2.0 as it was the last version of CMake to support VTK 4.0.") +ENDMACRO(SOURCE_FILES) + diff --git a/CMakeLua/Modules/ecos_clean.cmake b/CMakeLua/Modules/ecos_clean.cmake new file mode 100644 index 0000000..57af343 --- /dev/null +++ b/CMakeLua/Modules/ecos_clean.cmake @@ -0,0 +1,12 @@ +file(GLOB _files ${ECOS_DIR}/*) + +# remove all directories, which consist of lower-case letters only +# this skips e.g. CVS/ and .subversion/ +foreach(_entry ${_files}) + if(IS_DIRECTORY ${_entry}) + get_filename_component(dir ${_entry} NAME) + if(${dir} MATCHES "^[a-z]+$") + file(REMOVE_RECURSE ${_entry}) + endif(${dir} MATCHES "^[a-z]+$") + endif(IS_DIRECTORY ${_entry}) +endforeach(_entry) diff --git a/CMakeLua/Modules/kde3init_dummy.cpp.in b/CMakeLua/Modules/kde3init_dummy.cpp.in new file mode 100644 index 0000000..7135c73 --- /dev/null +++ b/CMakeLua/Modules/kde3init_dummy.cpp.in @@ -0,0 +1,6 @@ + +/* used by KDE3Macros.cmake */ + +extern "C" int kdemain(int argc, char* argv[]); +extern "C" int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); } +int main(int argc, char* argv[]) { return kdemain(argc,argv); } diff --git a/CMakeLua/Modules/kde3uic.cmake b/CMakeLua/Modules/kde3uic.cmake new file mode 100644 index 0000000..0dbbbcf --- /dev/null +++ b/CMakeLua/Modules/kde3uic.cmake @@ -0,0 +1,20 @@ + + +# used internally by KDE3Macros.cmake +# neundorf@kde.org + + +EXECUTE_PROCESS(COMMAND ${KDE_UIC_EXECUTABLE} + -L ${KDE_UIC_PLUGIN_DIR} -nounload -tr tr2i18n + -impl ${KDE_UIC_H_FILE} + ${KDE_UIC_FILE} + OUTPUT_VARIABLE _uic_CONTENTS + ERROR_QUIET + ) + +STRING(REGEX REPLACE "tr2i18n\\(\"\"\\)" "QString::null" _uic_CONTENTS "${_uic_CONTENTS}" ) +STRING(REGEX REPLACE "tr2i18n\\(\"\", \"\"\\)" "QString::null" _uic_CONTENTS "${_uic_CONTENTS}" ) + +FILE(WRITE ${KDE_UIC_CPP_FILE} "#include \n#include \n\n") +FILE(APPEND ${KDE_UIC_CPP_FILE} "${_uic_CONTENTS}") + diff --git a/CMakeLua/Modules/readme.txt b/CMakeLua/Modules/readme.txt new file mode 100644 index 0000000..8d4615a --- /dev/null +++ b/CMakeLua/Modules/readme.txt @@ -0,0 +1,102 @@ +Note to authors of FindXXX.cmake files + +We would like all FindXXX.cmake files to produce consistent variable names. + +Please use the following consistent variable names for general use. + +XXX_INCLUDE_DIRS The final set of include directories listed in one variable for use by client code. This should not be a cache entry. +XXX_LIBRARIES The libraries to link against to use XXX. These should include full paths. This should not be a cache entry. +XXX_DEFINITIONS Definitions to use when compiling code that uses XXX. This really shouldn't include options such as (-DHAS_JPEG)that a client source-code file uses to decide whether to #include +XXX_EXECUTABLE Where to find the XXX tool. +XXX_YYY_EXECUTABLE Where to find the YYY tool that comes with XXX. +XXX_LIBRARY_DIRS Optionally, the final set of library directories listed in one variable for use by client code. This should not be a cache entry. +XXX_ROOT_DIR Where to find the base directory of XXX. +XXX_VERSION_YY Expect Version YY if true. Make sure at most one of these is ever true. +XXX_WRAP_YY If False, do not try to use the relevent CMake wrapping command. +XXX_YY_FOUND If False, optional YY part of XXX sytem is not available. +XXX_FOUND Set to false, or undefined, if we haven't found, or don't want to use XXX. +XXX_RUNTIME_LIBRARY_DIRS Optionally, the runtime library search path for use when running an executable linked to shared libraries. + The list should be used by user code to create the PATH on windows or LD_LIBRARY_PATH on unix. + This should not be a cache entry. +XXX_VERSION_STRING A human-readable string containing the version of the package found, if any. +XXX_VERSION_MAJOR The major version of the package found, if any. +XXX_VERSION_MINOR The minor version of the package found, if any. +XXX_VERSION_PATCH The patch version of the package found, if any. + +You do not have to provide all of the above variables. You should provide XXX_FOUND under most circumstances. If XXX is a library, then XXX_LIBRARIES, should also be defined, and XXX_INCLUDE_DIRS should usually be defined (I guess libm.a might be an exception) + +The following names should not usually be used in CMakeLists.txt files, but they may be usefully modified in users' CMake Caches to control stuff. + +XXX_LIBRARY Name of XXX Library. A User may set this and XXX_INCLUDE_DIR to ignore to force non-use of XXX. +XXX_YY_LIBRARY Name of YY library that is part of the XXX system. It may or may not be required to use XXX. +XXX_INCLUDE_DIR Where to find xxx.h, etc. (XXX_INCLUDE_PATH was considered bad because a path includes an actual filename.) +XXX_YY_INCLUDE_DIR Where to find xxx_yy.h, etc. + +For tidiness's sake, try to keep as many options as possible out of the cache, leaving at least one option which can be used to disable use of the module, or locate a not-found library (e.g. XXX_ROOT_DIR). For the same reason, mark most cache options as advanced. + +If you need other commands to do special things then it should still begin with XXX_. This gives a sort of namespace effect and keeps things tidy for the user. You should put comments describing all the exported settings, plus descriptions of any the users can use to control stuff. + +You really should also provide backwards compatibility any old settings that were actually in use. Make sure you comment them as deprecated, so that no-one starts using them. + +To correctly document a module, create a comment block at the top with # comments. There are three types of comments that can be in the block: + +1. The brief description of the module, this is done by: +# - a small description + +2. A paragraph of text. This is done with all text that has a single +space between the # and the text. To create a new paragraph, just +put a # with no text on the line. + +3. A verbatim line. This is done with two spaces between the # and the text. + +For example: + +# - This is a cool module +# This module does really cool stuff. +# It can do even more than you think. +# +# It even needs to paragraphs to tell you about it. +# And it defines the following variables: +# VAR_COOL - this is great isn't it? +# VAR_REALLY_COOL - cool right? +# + +To have a .cmake file in this directory NOT show up in the +modules documentation, you should start the file with a blank +line. + +A FindXXX.cmake module will typically be loaded by the command + + FIND_PACKAGE(XXX [major[.minor[.patch]]] [EXACT] + [QUIET] [REQUIRED [components...]]) + +If any version numbers are given to the command it will set the +variable XXX_FIND_VERSION to contain the whole version. The variables +XXX_FIND_VERSION_MAJOR, XXX_FIND_VERSION_MINOR, and +XXX_FIND_VERSION_PATCH will be set to contain the corresponding +portions of the version number. The variable XXX_FIND_VERSION_EXACT +will indicate whether an exact version is requested. +If the find module supports versioning it should locate a version of +the package that is compatible with the version requested. If a +compatible version of the package cannot be found the module should +not report success. The version of the package found should be stored +in the version variables named above. + +If the QUIET option is given to the command it will set the variable +XXX_FIND_QUIETLY to true before loading the FindXXX.cmake module. If +this variable is set the module should not complain about not being +able to find the package. If the +REQUIRED option is given to the command it will set the variable +XXX_FIND_REQUIRED to true before loading the FindXXX.cmake module. If +this variable is set the module should issue a FATAL_ERROR if the +package cannot be found. For each package-specific component, say +YYY, listed after the REQUIRED option a variable XXX_FIND_REQUIRED_YYY +to true. The set of components listed will also be specified in a +XXX_FIND_COMPONENTS variable. This can be used by the FindXXX.cmake +module to determine which sub-components of the package must be found. +If neither the QUIET nor REQUIRED options are given then the +FindXXX.cmake module should look for the package and complain without +error if the module is not found. + +To get this behaviour you can use the FIND_PACKAGE_HANDLE_STANDARD_ARGS() +macro, as an example see FindJPEG.cmake. diff --git a/CMakeLua/Readme.txt b/CMakeLua/Readme.txt new file mode 100644 index 0000000..3157836 --- /dev/null +++ b/CMakeLua/Readme.txt @@ -0,0 +1,55 @@ +This is CMake, the cross-platform, open-source make system. +CMake is free software under a BSD-like license, see Copyright.txt. +For documentation see the Docs/ directory once you have built CMake +or visit http://www.cmake.org. + + +Building CMake +============== + + +Supported Platforms +------------------- + +MS Windows, Mac OS X, Linux, FreeBSD, Solaris, HP-UX, IRIX, BeOS, QNX + +Other UNIX-like operating systems may work too out of the box, if not +it shouldn't be a major problem to port CMake to this platform. Contact the +CMake mailing list in this case: http://www.cmake.org/mailman/listinfo/cmake + + +If you don't have any previous version of CMake already installed +-------------------------------------------------------------- + +* UNIX/Mac OSX/MinGW/MSYS/Cygwin: + +You need to have a compiler and a make installed. +Run the bootstrap script you find the in the source directory of CMake. +You can use the --help option to see the supported options. +You may want to use the --prefix= option to specify a custom +installation directory for CMake. You can run the bootstrap script from +within the CMake source directory or any other build directory of your +choice. Once this has finished successfully, run make and make install. +So basically it's the same as you may be used to from autotools-based +projects: + +$ ./bootstrap; make; make install + + +* Other Windows: + +You need to download and install a binary release of CMake in order to build +CMake. You can get these releases from +http://www.cmake.org/HTML/Download.html . Then proceed with the instructions +below. + + +You already have a version of CMake installed +--------------------------------------------- + +You can build CMake as any other project with a CMake-based build system: +run the installed CMake on the sources of this CMake with your preferred +options and generators. Then build it and install it. +For instructions how to do this, see http://www.cmake.org/HTML/RunningCMake.html + + diff --git a/CMakeLua/Source/.cvsignore b/CMakeLua/Source/.cvsignore new file mode 100644 index 0000000..31e286c --- /dev/null +++ b/CMakeLua/Source/.cvsignore @@ -0,0 +1,5 @@ +ccommand___Win32_Debug +Debug +cmake___Win32_Debug +ctest___Win32_Debug +CMakeSetup.map diff --git a/CMakeLua/Source/CMakeLists.txt b/CMakeLua/Source/CMakeLists.txt new file mode 100644 index 0000000..a73f511 --- /dev/null +++ b/CMakeLua/Source/CMakeLists.txt @@ -0,0 +1,434 @@ +# configure the .h file +CONFIGURE_FILE( + "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in" + "${CMake_BINARY_DIR}/Source/cmConfigure.h" + ) +CONFIGURE_FILE( + "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in" + "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h" + ) + +# add the include path to find the .h +INCLUDE_DIRECTORIES( + "${CMake_BINARY_DIR}/Source" + "${CMake_SOURCE_DIR}/Source" + ${CMAKE_ZLIB_INCLUDES} + ${CMAKE_EXPAT_INCLUDES} + ${CMAKE_TAR_INCLUDES} + ${CMAKE_COMPRESS_INCLUDES} + ) + +# let cmake know it is supposed to use it +ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE) + +OPTION(CMAKE_REGENERATE_YACCLEX + "Regenerate YACC and LEXX files" OFF) +MARK_AS_ADVANCED(CMAKE_REGENERATE_YACCLEX) +IF(CMAKE_REGENERATE_YACCLEX) + SET(parsersLexers cmDependsFortran cmCommandArgument cmExpr) + FIND_PROGRAM(YACC_EXECUTABLE + NAMES yacc bison + PATHS /usr/bin + DOC "Yacc or Bison executable") + FIND_PROGRAM(FLEX_EXECUTABLE + NAMES flex + PATHS /usr/bin + DOC "Flex executable") + MARK_AS_ADVANCED(YACC_EXECUTABLE FLEX_EXECUTABLE) + IF(YACC_EXECUTABLE) + SET(BISON_FLAGS) + IF(YACC_EXECUTABLE MATCHES "bison") + SET(BISON_FLAGS "--yacc") + ENDIF(YACC_EXECUTABLE MATCHES "bison") + SET(yacc_files) + FOREACH(name ${parsersLexers}) + SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y") + SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx") + SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h") + ADD_CUSTOM_COMMAND( + OUTPUT "${dst}" + DEPENDS "${src}" + COMMAND + ${YACC_EXECUTABLE} + --name-prefix=${name}_yy --defines=${hdr} -o${dst} ${src} + ) + SET(yacc_files ${yacc_files} "${dst}") + ENDFOREACH(name) + ADD_CUSTOM_TARGET(RerunYacc DEPENDS ${yacc_files}) + ENDIF(YACC_EXECUTABLE) + IF(FLEX_EXECUTABLE) + SET(lex_files) + FOREACH(name ${parsersLexers}) + SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l") + SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx") + SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h") + ADD_CUSTOM_COMMAND( + OUTPUT "${dst}" + DEPENDS "${src}" + COMMAND + ${FLEX_EXECUTABLE} + --prefix=${name}_yy --header-file=${hdr} -o${dst} ${src} + ) + SET(lex_files ${lex_files} "${dst}") + ENDFOREACH(name) + ADD_CUSTOM_TARGET(RerunLex DEPENDS ${lex_files}) + ENDIF(FLEX_EXECUTABLE) + +ENDIF(CMAKE_REGENERATE_YACCLEX) +# +# Sources for CMakeLib +# +SET(SRCS + cmBootstrapCommands.cxx + cmCacheManager.cxx + cmCacheManager.h + cmCommands.cxx + cmCommands.h + cmCommandArgumentLexer.cxx + cmCommandArgumentParser.cxx + cmCommandArgumentParserHelper.cxx + cmComputeLinkDepends.cxx + cmComputeLinkDepends.h + cmComputeLinkInformation.cxx + cmComputeLinkInformation.h + cmCustomCommand.cxx + cmCustomCommand.h + cmDepends.cxx + cmDepends.h + cmDependsC.cxx + cmDependsC.h + cmDependsFortran.cxx + cmDependsFortran.h + cmDependsFortranLexer.cxx + cmDependsFortranParser.cxx + cmDependsFortranParser.h + cmDependsJava.cxx + cmDependsJava.h + cmDependsJavaLexer.cxx + cmDependsJavaParser.cxx + cmDependsJavaParserHelper.cxx + cmDependsJavaParserHelper.h + cmDocumentation.cxx + cmDocumentationFormatter.cxx + cmDocumentationFormatterHTML.cxx + cmDocumentationFormatterMan.cxx + cmDocumentationFormatterText.cxx + cmDocumentationFormatterUsage.cxx + cmDocumentationSection.cxx + cmDocumentVariables.cxx + cmDynamicLoader.cxx + cmDynamicLoader.h + cmExprLexer.cxx + cmExprParser.cxx + cmExprParserHelper.cxx + cmExportBuildFileGenerator.h + cmExportBuildFileGenerator.cxx + cmExportFileGenerator.h + cmExportFileGenerator.cxx + cmExportInstallFileGenerator.h + cmExportInstallFileGenerator.cxx + cmExtraEclipseCDT4Generator.cxx + cmExtraEclipseCDT4Generator.h + cmFileTimeComparison.cxx + cmFileTimeComparison.h + cmGeneratedFileStream.cxx + cmGlobalGenerator.cxx + cmGlobalGenerator.h + cmGlobalUnixMakefileGenerator3.cxx + cmGlobalUnixMakefileGenerator3.h + cmInstallGenerator.h + cmInstallGenerator.cxx + cmInstallExportGenerator.cxx + cmInstallFilesGenerator.h + cmInstallFilesGenerator.cxx + cmInstallScriptGenerator.h + cmInstallScriptGenerator.cxx + cmInstallTargetGenerator.h + cmInstallTargetGenerator.cxx + cmInstallDirectoryGenerator.h + cmInstallDirectoryGenerator.cxx + cmListFileCache.cxx + cmListFileCache.h + cmListFileLexer.c + cmLocalGenerator.cxx + cmLocalGenerator.h + cmLocalUnixMakefileGenerator3.cxx + cmMakeDepend.cxx + cmMakeDepend.h + cmMakefile.cxx + cmMakefile.h + cmMakefileTargetGenerator.cxx + cmMakefileExecutableTargetGenerator.cxx + cmMakefileLibraryTargetGenerator.cxx + cmMakefileUtilityTargetGenerator.cxx + cmOrderRuntimeDirectories.cxx + cmOrderRuntimeDirectories.h + cmProperty.cxx + cmProperty.h + cmPropertyDefinition.cxx + cmPropertyDefinition.h + cmPropertyDefinitionMap.cxx + cmPropertyDefinitionMap.h + cmPropertyMap.cxx + cmPropertyMap.h + cmSourceFile.cxx + cmSourceFile.h + cmSourceFileLocation.cxx + cmSourceFileLocation.h + cmSourceGroup.cxx + cmSourceGroup.h + cmSystemTools.cxx + cmSystemTools.h + cmTarget.cxx + cmTarget.h + cmTest.cxx + cmTest.h + cmVariableWatch.cxx + cmVariableWatch.h + cmVersion.cxx + cmVersion.h + cmXMLParser.cxx + cmXMLParser.h + cmake.cxx + cmake.h + cmakewizard.cxx + cmakewizard.h + ) + +# Kdevelop only works on UNIX and not windows +IF(UNIX) + SET(SRCS ${SRCS} cmGlobalKdevelopGenerator.cxx) +ENDIF(UNIX) + +IF(NOT CYGWIN) + SET(SRCS ${SRCS} cmExtraCodeBlocksGenerator.cxx) +ENDIF(NOT CYGWIN) + +# XCode only works on apple +IF(APPLE) + SET(SRCS ${SRCS} + cmXCodeObject.cxx + cmXCode21Object.cxx + cmGlobalXCodeGenerator.cxx + cmGlobalXCodeGenerator.h + cmGlobalXCode21Generator.cxx + cmGlobalXCode21Generator.h + cmLocalXCodeGenerator.cxx + cmLocalXCodeGenerator.h) +ENDIF(APPLE) + + +IF (WIN32) + SET(SRCS ${SRCS} + cmCallVisualStudioMacro.cxx + cmCallVisualStudioMacro.h + ) + + IF(NOT UNIX) + SET(SRCS ${SRCS} + cmGlobalBorlandMakefileGenerator.cxx + cmGlobalBorlandMakefileGenerator.h + cmGlobalMSYSMakefileGenerator.cxx + cmGlobalMinGWMakefileGenerator.cxx + cmGlobalNMakeMakefileGenerator.cxx + cmGlobalNMakeMakefileGenerator.h + cmGlobalVisualStudio6Generator.cxx + cmGlobalVisualStudio6Generator.h + cmGlobalVisualStudio71Generator.cxx + cmGlobalVisualStudio71Generator.h + cmGlobalVisualStudio7Generator.cxx + cmGlobalVisualStudio7Generator.h + cmGlobalVisualStudio8Generator.cxx + cmGlobalVisualStudio8Generator.h + cmGlobalVisualStudio9Generator.cxx + cmGlobalVisualStudio9Generator.h + cmGlobalVisualStudio8Win64Generator.cxx + cmGlobalVisualStudio8Win64Generator.h + cmGlobalVisualStudio9Win64Generator.cxx + cmGlobalVisualStudio9Win64Generator.h + cmGlobalVisualStudioGenerator.cxx + cmGlobalVisualStudioGenerator.h + cmGlobalWatcomWMakeGenerator.cxx + cmLocalVisualStudio6Generator.cxx + cmLocalVisualStudio6Generator.h + cmLocalVisualStudio7Generator.cxx + cmLocalVisualStudio7Generator.h + cmLocalVisualStudioGenerator.cxx + cmLocalVisualStudioGenerator.h + cmWin32ProcessExecution.cxx + cmWin32ProcessExecution.h + ) + ENDIF(NOT UNIX) +ENDIF (WIN32) + +# create a library used by the command line and the GUI +ADD_LIBRARY(CMakeLib ${SRCS}) +TARGET_LINK_LIBRARIES(CMakeLib cmsys + ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES} + ${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES}) + +# On Apple we need Carbon +IF(APPLE) + TARGET_LINK_LIBRARIES(CMakeLib "-framework CoreFoundation") +ENDIF(APPLE) + +# On some platforms we need the rpcrt4 library for the VS 7 generators. +IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) + TARGET_LINK_LIBRARIES(CMakeLib rpcrt4) +ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) + +# +# CTestLib +# +INCLUDE_DIRECTORIES( + "${CMAKE_SOURCE_DIR}/Source/CTest" + ${CMAKE_XMLRPC_INCLUDES} + ${CMAKE_CURL_INCLUDES} + ) +# +# Sources for CTestLib +# +SET(CTEST_SRCS cmCTest.cxx + CTest/cmCTestBuildAndTestHandler.cxx + CTest/cmCTestBuildCommand.cxx + CTest/cmCTestBuildHandler.cxx + CTest/cmCTestConfigureCommand.cxx + CTest/cmCTestConfigureHandler.cxx + CTest/cmCTestCoverageCommand.cxx + CTest/cmCTestCoverageHandler.cxx + CTest/cmCTestEmptyBinaryDirectoryCommand.cxx + CTest/cmCTestGenericHandler.cxx + CTest/cmCTestHandlerCommand.cxx + CTest/cmCTestMemCheckCommand.cxx + CTest/cmCTestMemCheckHandler.cxx + CTest/cmCTestReadCustomFilesCommand.cxx + CTest/cmCTestRunScriptCommand.cxx + CTest/cmCTestScriptHandler.cxx + CTest/cmCTestSleepCommand.cxx + CTest/cmCTestStartCommand.cxx + CTest/cmCTestSubmitCommand.cxx + CTest/cmCTestSubmitHandler.cxx + CTest/cmCTestTestCommand.cxx + CTest/cmCTestTestHandler.cxx + CTest/cmCTestUpdateCommand.cxx + CTest/cmCTestUpdateHandler.cxx + ) + +# Build CTestLib +ADD_LIBRARY(CTestLib ${CTEST_SRCS}) +TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES}) + +# +# Sources for CPack +# +SET(CPACK_SRCS + CPack/cmCPackGeneratorFactory.cxx + CPack/cmCPackGenerator.cxx + CPack/cmCPackLog.cxx + CPack/cmCPackNSISGenerator.cxx + CPack/cmCPackSTGZGenerator.cxx + CPack/cmCPackTGZGenerator.cxx + CPack/cmCPackTarBZip2Generator.cxx + CPack/cmCPackTarCompressGenerator.cxx + CPack/cmCPackZIPGenerator.cxx + ) + +IF(WIN32 AND UNIX) + SET(CPACK_SRCS ${CPACK_SRCS} + CPack/cmCPackCygwinBinaryGenerator.cxx + CPack/cmCPackCygwinSourceGenerator.cxx + ) +ENDIF(WIN32 AND UNIX) + +IF(UNIX) + SET(CPACK_SRCS ${CPACK_SRCS} + CPack/cmCPackDebGenerator.cxx + CPack/cmCPackRPMGenerator.cxx + ) +ENDIF(UNIX) + +IF(APPLE) + SET(CPACK_SRCS ${CPACK_SRCS} + CPack/cmCPackOSXX11Generator.cxx + CPack/cmCPackPackageMakerGenerator.cxx + ) +ENDIF(APPLE) + +# Build CPackLib +ADD_LIBRARY(CPackLib ${CPACK_SRCS}) +TARGET_LINK_LIBRARIES(CPackLib CMakeLib) + +IF(APPLE) + ADD_EXECUTABLE(cmakexbuild cmakexbuild.cxx) + TARGET_LINK_LIBRARIES(cmakexbuild CMakeLib) + ADD_EXECUTABLE(OSXScriptLauncher + CPack/OSXScriptLauncher.cxx) + TARGET_LINK_LIBRARIES(OSXScriptLauncher cmsys) + TARGET_LINK_LIBRARIES(OSXScriptLauncher "-framework Carbon") +ENDIF(APPLE) + +# Build CMake executable +ADD_EXECUTABLE(cmake cmakemain.cxx) +TARGET_LINK_LIBRARIES(cmake CMakeLib) +ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation) +TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib) + +# Build special executable for running programs on Windows 98 +IF(WIN32) + IF(NOT UNIX) + ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx) + TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib) + INSTALL_TARGETS(/bin cmw9xcom) + ENDIF(NOT UNIX) +ENDIF(WIN32) + +# Build CTest executable +ADD_EXECUTABLE(ctest ctest.cxx) +TARGET_LINK_LIBRARIES(ctest CTestLib) + +# Build CPack executable +ADD_EXECUTABLE(cpack CPack/cpack.cxx) +TARGET_LINK_LIBRARIES(cpack CPackLib) + +# Curses GUI +IF(BUILD_CursesDialog) + INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt) +ENDIF(BUILD_CursesDialog) + +# MFC GUI +# MFC libraries are only available on Visual Studio +IF(BUILD_MFCDialog) + SUBDIRS(MFCDialog) +ENDIF(BUILD_MFCDialog) + +# Qt GUI +OPTION(BUILD_QtDialog "Build Qt dialog for CMake" FALSE) +IF(BUILD_QtDialog) + SUBDIRS(QtDialog) +ENDIF(BUILD_QtDialog) + +# WX Widgets GUI +OPTION(BUILD_WXDialog "Build wxWidgets dialog for CMake" FALSE) +MARK_AS_ADVANCED(BUILD_WXDialog) +IF(BUILD_WXDialog) + SUBDIRS(WXDialog) +ENDIF(BUILD_WXDialog) + +# FLTK GUI, needs some work: generator selection, paths with spaces, ... +# OPTION(BUILD_FLTKDialog "Build FLTK dialog for CMake" FALSE) +# MARK_AS_ADVANCED(BUILD_FLTKDialog) +# IF(BUILD_FLTKDialog) +# SUBDIRS(FLTKDialog) +# ENDIF(BUILD_FLTKDialog) + +INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL) +INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL) + +INSTALL_TARGETS(/bin cmake) +INSTALL_TARGETS(/bin ctest) +INSTALL_TARGETS(/bin cpack) +IF(APPLE) + INSTALL_TARGETS(/bin cmakexbuild) +ENDIF(APPLE) + +INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h) diff --git a/CMakeLua/Source/CPack/CVS/Entries b/CMakeLua/Source/CPack/CVS/Entries new file mode 100644 index 0000000..3f9c853 --- /dev/null +++ b/CMakeLua/Source/CPack/CVS/Entries @@ -0,0 +1,36 @@ +/OSXScriptLauncher.cxx/1.4/Fri Jul 27 14:55:24 2007//T1.4 +/bills-comments.txt/1.3/Fri May 18 18:41:09 2007//T1.3 +/cmCPackConfigure.h.in/1.4/Fri Jul 27 14:55:24 2007//T1.4 +/cmCPackCygwinBinaryGenerator.cxx/1.3/Wed Oct 31 12:50:17 2007//T1.3 +/cmCPackCygwinBinaryGenerator.h/1.3/Wed Oct 31 12:50:17 2007//T1.3 +/cmCPackCygwinSourceGenerator.cxx/1.4/Wed Oct 31 12:50:17 2007//T1.4 +/cmCPackCygwinSourceGenerator.h/1.3/Wed Oct 31 12:50:17 2007//T1.3 +/cmCPackDebGenerator.h/1.4/Mon Nov 5 21:55:45 2007//T1.4 +/cmCPackGenerator.cxx/1.2/Tue Nov 6 13:28:26 2007//T1.2 +/cmCPackGenerator.h/1.2/Tue Nov 6 13:28:26 2007//T1.2 +/cmCPackGeneratorFactory.cxx/1.2/Mon Nov 5 21:55:45 2007//T1.2 +/cmCPackGeneratorFactory.h/1.2/Mon Nov 5 21:55:45 2007//T1.2 +/cmCPackLog.cxx/1.7/Fri Mar 10 18:06:26 2006//T1.7 +/cmCPackLog.h/1.4/Fri Mar 10 18:06:26 2006//T1.4 +/cmCPackNSISGenerator.h/1.11/Mon Nov 5 21:55:45 2007//T1.11 +/cmCPackOSXX11Generator.cxx/1.5/Wed Oct 31 12:50:17 2007//T1.5 +/cmCPackOSXX11Generator.h/1.5/Mon Nov 5 21:55:45 2007//T1.5 +/cmCPackPackageMakerGenerator.h/1.11/Mon Nov 5 21:55:45 2007//T1.11 +/cmCPackRPMGenerator.cxx/1.6/Wed Oct 31 12:50:17 2007//T1.6 +/cmCPackRPMGenerator.h/1.5/Mon Nov 5 21:55:45 2007//T1.5 +/cmCPackSTGZGenerator.cxx/1.15/Fri May 12 18:44:24 2006//T1.15 +/cmCPackSTGZGenerator.h/1.8/Fri Feb 2 19:40:26 2007//T1.8 +/cmCPackTGZGenerator.cxx/1.19/Thu Sep 27 18:44:10 2007//T1.19 +/cmCPackTGZGenerator.h/1.11/Mon Nov 5 21:55:45 2007//T1.11 +/cmCPackTarBZip2Generator.cxx/1.4/Fri Feb 2 21:52:20 2007//T1.4 +/cmCPackTarBZip2Generator.h/1.2/Fri Feb 2 19:40:26 2007//T1.2 +/cmCPackTarCompressGenerator.cxx/1.9/Tue Jul 31 02:51:21 2007//T1.9 +/cmCPackTarCompressGenerator.h/1.4/Fri Feb 2 19:40:26 2007//T1.4 +/cmCPackZIPGenerator.cxx/1.11/Fri Jul 27 14:55:24 2007//T1.11 +/cmCPackZIPGenerator.h/1.6/Mon Nov 5 21:55:45 2007//T1.6 +/cygwin.readme/1.2/Fri Feb 2 19:40:26 2007//T1.2 +/cpack.cxx/1.42/Sun Dec 16 12:37:47 2007//T1.42 +/cmCPackNSISGenerator.cxx/1.30/Sun Dec 16 12:38:05 2007//T1.30 +/cmCPackPackageMakerGenerator.cxx/1.22/Tue Dec 25 11:32:54 2007//T1.22 +/cmCPackDebGenerator.cxx/1.20/Sat Feb 2 02:56:04 2008//T1.20 +D diff --git a/CMakeLua/Source/CPack/CVS/Repository b/CMakeLua/Source/CPack/CVS/Repository new file mode 100644 index 0000000..584445c --- /dev/null +++ b/CMakeLua/Source/CPack/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/CPack diff --git a/CMakeLua/Source/CPack/CVS/Root b/CMakeLua/Source/CPack/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/CPack/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/CPack/CVS/Tag b/CMakeLua/Source/CPack/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/CPack/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/CPack/CVS/Template b/CMakeLua/Source/CPack/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/CPack/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/CPack/OSXScriptLauncher.cxx b/CMakeLua/Source/CPack/OSXScriptLauncher.cxx new file mode 100644 index 0000000..8e1ff71 --- /dev/null +++ b/CMakeLua/Source/CPack/OSXScriptLauncher.cxx @@ -0,0 +1,153 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: OSXScriptLauncher.cxx,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include +#include +#include +#include + +#include +#include + +// For the PATH_MAX constant +#include + +#define DebugError(x) \ + ofs << x << cmsys_ios::endl; \ + cmsys_ios::cout << x << cmsys_ios::endl + +int main(int argc, char* argv[]) +{ + //if ( cmsys::SystemTools::FileExists( + cmsys_stl::string cwd = cmsys::SystemTools::GetCurrentWorkingDirectory(); + cmsys_ios::ofstream ofs("/tmp/output.txt"); + + CFStringRef fileName; + CFBundleRef appBundle; + CFURLRef scriptFileURL; + UInt8 *path; + + //get CF URL for script + if (! (appBundle = CFBundleGetMainBundle())) + { + DebugError("Cannot get main bundle"); + return 1; + } + fileName = CFSTR("RuntimeScript"); + if (! (scriptFileURL = CFBundleCopyResourceURL(appBundle, fileName, NULL, + NULL))) + { + DebugError("CFBundleCopyResourceURL failed"); + return 1; + } + + //create path string + if (! (path = new UInt8[PATH_MAX])) + { + return 1; + } + + //get the file system path of the url as a cstring + //in an encoding suitable for posix apis + if ( CFURLGetFileSystemRepresentation(scriptFileURL, true, path, + PATH_MAX) == false) + { + DebugError("CFURLGetFileSystemRepresentation failed"); + return 1; + } + + //dispose of the CF variable + CFRelease(scriptFileURL); + + cmsys_stl::string fullScriptPath = reinterpret_cast(path); + delete [] path; + + + if (! cmsys::SystemTools::FileExists(fullScriptPath.c_str())) + { + return 1; + } + + cmsys_stl::string scriptDirectory = cmsys::SystemTools::GetFilenamePath( + fullScriptPath); + ofs << fullScriptPath.c_str() << cmsys_ios::endl; + cmsys_stl::vector args; + args.push_back(fullScriptPath.c_str()); + int cc; + for ( cc = 1; cc < argc; ++ cc ) + { + args.push_back(argv[cc]); + } + args.push_back(0); + + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetCommand(cp, &*args.begin()); + cmsysProcess_SetWorkingDirectory(cp, scriptDirectory.c_str()); + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + cmsysProcess_SetTimeout(cp, 0); + cmsysProcess_Execute(cp); + + std::vector tempOutput; + char* data; + int length; + while(cmsysProcess_WaitForData(cp, &data, &length, 0)) + { + // Translate NULL characters in the output into valid text. + // Visual Studio 7 puts these characters in the output of its + // build process. + for(int i=0; i < length; ++i) + { + if(data[i] == '\0') + { + data[i] = ' '; + } + } + cmsys_ios::cout.write(data, length); + } + + cmsysProcess_WaitForExit(cp, 0); + + bool result = true; + if(cmsysProcess_GetState(cp) == cmsysProcess_State_Exited) + { + if ( cmsysProcess_GetExitValue(cp) != 0 ) + { + result = false; + } + } + else if(cmsysProcess_GetState(cp) == cmsysProcess_State_Exception) + { + const char* exception_str = cmsysProcess_GetExceptionString(cp); + std::cerr << exception_str << std::endl; + result = false; + } + else if(cmsysProcess_GetState(cp) == cmsysProcess_State_Error) + { + const char* error_str = cmsysProcess_GetErrorString(cp); + std::cerr << error_str << std::endl; + result = false; + } + else if(cmsysProcess_GetState(cp) == cmsysProcess_State_Expired) + { + const char* error_str = "Process terminated due to timeout\n"; + std::cerr << error_str << std::endl; + result = false; + } + + cmsysProcess_Delete(cp); + + return 0; +} diff --git a/CMakeLua/Source/CPack/bills-comments.txt b/CMakeLua/Source/CPack/bills-comments.txt new file mode 100755 index 0000000..f73499d --- /dev/null +++ b/CMakeLua/Source/CPack/bills-comments.txt @@ -0,0 +1,68 @@ +cpack.cxx + +cmCPackGenerators -- creates cmCPackGenericGenerator's via NewGenerator + - a cmCPackGenericGenerator factory + + +cmCPackGenericGenerator::Initialize + this->InitializeInternal + CPACK_INCLUDE_TOPLEVEL_DIRECTORY = 0 turns off + + +// binary package run +cmCPackGenericGenerator::ProcessGenerator // DoPackage + cmCPackGenericGenerator::PrepareNames -- sets a bunch of CPACK_vars + cmCPackGenericGenerator::InstallProject + run preinstall (make preinstall/fast) + call ReadListFile(cmake_install.cmake) + glob recurse in install directory to get list of files + this->CompressFiles with the list of files + + +// source package run +cmCPackGenericGenerator::ProcessGenerator // DoPackage + cmCPackGenericGenerator::PrepareNames -- sets a bunch of CPACK_vars + cmCPackGenericGenerator::InstallProject --> + if set CPACK_INSTALLED_DIRECTORIES + glob the files in that directory + copy those files to the tmp install directory _CPack something + glob recurse in install directory to get list of files + this->CompressFiles with the list of files + + +cmCPackGenericGenerator::InstallProject is used for both source and binary +packages. It is controled based on values set in CPACK_ variables. + + +InstallProject + 1. CPACK_INSTALL_COMMANDS - a list of commands used to install the package + + 2. CPACK_INSTALLED_DIRECTORIES - copy this directory to CPACK_TEMPORARY_DIRECTORY + + 3. CPACK_INSTALL_CMAKE_PROJECTS - a cmake install script + - run make preinstall + - run cmake_install.cmake + - set CMAKE_INSTALL_PREFIX to the temp directory + - CPACK_BUILD_CONFIG check this and set the BUILD_TYPE to it + - ReadListFile on the install script cmake_install.cmake + - run strip on the executables and libraries if CPACK_STRIP_FILES is TRUE + +Recommendations: + +rename cmCPackGenerators to cmCPackGeneratorFactory + +rename cmCPackGenericGenerator --> cmCPackGenerator + +rename cmCPackGenericGenerator::ProcessGenerator -> cmCPackGenerator::DoPackage + + +break up cmCPackGenerator::InstallProject so it calls the following: + +// run user provided install commands + cmCPackGenerator::RunInstallCommands(); +// copy entire directories that need no processing like source trees + cmCPackGenerator::CopyPreInstalledDirectories(); +// run the cmake install scripts if provided + cmCPackGenerator::RunCMakeInstallScripts() + +- diff --git a/CMakeLua/Source/CPack/cmCPackConfigure.h.in b/CMakeLua/Source/CPack/cmCPackConfigure.h.in new file mode 100755 index 0000000..441bad3 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackConfigure.h.in @@ -0,0 +1,16 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackConfigure.h.in,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ diff --git a/CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.cxx b/CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.cxx new file mode 100755 index 0000000..df20d82 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.cxx @@ -0,0 +1,104 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackCygwinBinaryGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/31 12:50:17 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackCygwinBinaryGenerator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include + +//---------------------------------------------------------------------- +cmCPackCygwinBinaryGenerator::cmCPackCygwinBinaryGenerator() +{ + this->Compress = false; +} + +//---------------------------------------------------------------------- +cmCPackCygwinBinaryGenerator::~cmCPackCygwinBinaryGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackCygwinBinaryGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_PACKAGING_INSTALL_PREFIX", "/usr"); + this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "0"); + std::vector path; + std::string pkgPath = cmSystemTools::FindProgram("bzip2", path, false); + if ( pkgPath.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find BZip2" << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM", pkgPath.c_str()); + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Found Compress program: " + << pkgPath.c_str() + << std::endl); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackCygwinBinaryGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + std::string packageName = this->GetOption("CPACK_PACKAGE_NAME"); + packageName += "-"; + packageName += this->GetOption("CPACK_PACKAGE_VERSION"); + packageName = cmsys::SystemTools::LowerCase(packageName); + std::string manifest = "/usr/share/doc/"; + manifest += packageName; + manifest += "/MANIFEST"; + std::string manifestFile + = this->GetOption("CPACK_TEMPORARY_DIRECTORY"); + // Create a MANIFEST file that contains all of the files in + // the tar file + std::string tempdir = manifestFile; + manifestFile += manifest; + // create an extra scope to force the stream + // to create the file before the super class is called + { + cmGeneratedFileStream ofs(manifestFile.c_str()); + for(std::vector::const_iterator i = files.begin(); + i != files.end(); ++i) + { + // remove the temp dir and replace with /usr + ofs << (*i).substr(tempdir.size()) << "\n"; + } + ofs << manifest << "\n"; + } + // add the manifest file to the list of all files + std::vector filesWithManifest = files; + filesWithManifest.push_back(manifestFile); + // create the bzip2 tar file + return this->Superclass::CompressFiles(outFileName, toplevel, + filesWithManifest); +} + +const char* cmCPackCygwinBinaryGenerator::GetOutputExtension() +{ + this->OutputExtension = "-"; + this->OutputExtension += this->GetOption("CPACK_CYGWIN_PATCH_NUMBER"); + this->OutputExtension += ".tar.bz2"; + return this->OutputExtension.c_str(); +} diff --git a/CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.h b/CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.h new file mode 100755 index 0000000..8d1f0db --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackCygwinBinaryGenerator.h @@ -0,0 +1,44 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackCygwinBinaryGenerator.h,v $ + Language: C++ + Date: $Date: 2007/10/31 12:50:17 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackCygwinBinaryGenerator_h +#define cmCPackCygwinBinaryGenerator_h + +#include "cmCPackTarBZip2Generator.h" + +/** \class cmCPackCygwinBinaryGenerator + * \brief A generator for TarBZip2 files + */ +class cmCPackCygwinBinaryGenerator : public cmCPackTarBZip2Generator +{ +public: + cmCPackTypeMacro(cmCPackCygwinBinaryGenerator, cmCPackTarBZip2Generator); + + /** + * Construct generator + */ + cmCPackCygwinBinaryGenerator(); + virtual ~cmCPackCygwinBinaryGenerator(); +protected: + virtual int InitializeInternal(); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension(); + std::string OutputExtension; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.cxx b/CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.cxx new file mode 100755 index 0000000..502a626 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.cxx @@ -0,0 +1,183 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackCygwinSourceGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/31 12:50:17 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackCygwinSourceGenerator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include + +// Includes needed for implementation of RenameFile. This is not in +// system tools because it is not implemented robustly enough to move +// files across directories. +#ifdef _WIN32 +# include +# include +#endif + +//---------------------------------------------------------------------- +cmCPackCygwinSourceGenerator::cmCPackCygwinSourceGenerator() +{ + this->Compress = false; +} + +//---------------------------------------------------------------------- +cmCPackCygwinSourceGenerator::~cmCPackCygwinSourceGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackCygwinSourceGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "0"); + std::vector path; + std::string pkgPath = cmSystemTools::FindProgram("bzip2", path, false); + if ( pkgPath.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find BZip2" << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM", pkgPath.c_str()); + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Found Compress program: " + << pkgPath.c_str() + << std::endl); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackCygwinSourceGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + // Create a tar file of the sources + std::string packageDirFileName + = this->GetOption("CPACK_TEMPORARY_DIRECTORY"); + packageDirFileName += ".tar"; + std::string output; + // skip one parent up to the cmCPackTGZGenerator to create tar file + this->Compress = false; // just create tar not tar.gz + if ( !this->cmCPackTGZGenerator::CompressFiles(packageDirFileName.c_str(), + toplevel, files) ) + { + return 0; + } + // Now bzip2 the source tar file + if(!this->BZip2File(packageDirFileName.c_str())) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running BZip2 on file: " + << packageDirFileName.c_str()); + return 0; + } + // Now create a tar file that contains the above .tar.bz2 file + // and the CPACK_CYGWIN_PATCH_FILE and CPACK_TOPLEVEL_DIRECTORY + // files + std::string compressOutFile = packageDirFileName + ".bz2"; + // at this point compressOutFile is the full path to + // _CPack_Package/.../package-2.5.0.tar.bz2 + // we want to create a tar _CPack_Package/.../package-2.5.0-1-src.tar.bz2 + // with these + // _CPack_Package/.../package-2.5.0-1.patch + // _CPack_Package/.../package-2.5.0-1.sh + // _CPack_Package/.../package-2.5.0.tar.bz2 + // the -1 is CPACK_CYGWIN_PATCH_NUMBER + // copy the patch file into place + if(!cmSystemTools::CopyFileAlways( + this->GetOption("CPACK_CYGWIN_PATCH_FILE"), + this->GetOption("CPACK_TOPLEVEL_DIRECTORY"))) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "problem copying: [" + << this->GetOption("CPACK_CYGWIN_PATCH_FILE") << "]\nto\n[" + << this->GetOption("CPACK_TOPLEVEL_DIRECTORY") << "]\n"); + return 0; + } + // copy the build script into place + if(!cmSystemTools::CopyFileAlways( + this->GetOption("CPACK_CYGWIN_BUILD_SCRIPT"), + this->GetOption("CPACK_TOPLEVEL_DIRECTORY"))) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "problem copying: " + << this->GetOption("CPACK_CYGWIN_BUILD_SCRIPT") << "\nto\n" + << this->GetOption("CPACK_TOPLEVEL_DIRECTORY") << "]\n"); + return 0; + } + // create the tar file + std::string outerTarFile + = this->GetOption("CPACK_TEMPORARY_DIRECTORY"); + outerTarFile += "-"; + outerTarFile += this->GetOption("CPACK_CYGWIN_PATCH_NUMBER"); + outerTarFile += "-src.tar"; + std::string buildScript = cmSystemTools::GetFilenameName( + this->GetOption("CPACK_CYGWIN_BUILD_SCRIPT")); + std::string patchFile = cmSystemTools::GetFilenameName( + this->GetOption("CPACK_CYGWIN_PATCH_FILE")); + std::vector outerFiles; + std::string file = cmSystemTools::GetFilenameName(compressOutFile); + std::string path = cmSystemTools::GetFilenamePath(compressOutFile); + // a source release in cygwin should have the build script used + // to build the package, the patch file that is different from the + // regular upstream version of the sources, and a bziped tar file + // of the original sources + outerFiles.push_back(buildScript); + outerFiles.push_back(patchFile); + outerFiles.push_back(file); + std::string saveDir= cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(path.c_str()); + cmSystemTools::CreateTar(outerTarFile.c_str(), + outerFiles, false, false); + cmSystemTools::ChangeDirectory(saveDir.c_str()); + // now compress the outer tar file + if(!this->BZip2File(outerTarFile.c_str())) + { + return 0; + } + compressOutFile = outerTarFile; + compressOutFile += ".bz2"; + // now rename the file to its final name + if ( !cmSystemTools::SameFile(compressOutFile.c_str(), outFileName ) ) + { + if ( !this->RenameFile(compressOutFile.c_str(), outFileName) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem renaming: \"" + << compressOutFile.c_str() << "\" to \"" + << (outFileName ? outFileName : "(NULL)") << std::endl); + return 0; + } + } + return 1; +} + +const char* cmCPackCygwinSourceGenerator::GetPackagingInstallPrefix() +{ + this->InstallPrefix = "/"; + this->InstallPrefix += this->GetOption("CPACK_PACKAGE_FILE_NAME"); + return this->InstallPrefix.c_str(); +} + +const char* cmCPackCygwinSourceGenerator::GetOutputExtension() +{ + this->OutputExtension = "-"; + this->OutputExtension += this->GetOption("CPACK_CYGWIN_PATCH_NUMBER"); + this->OutputExtension += "-src.tar.bz2"; + return this->OutputExtension.c_str(); +} + diff --git a/CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.h b/CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.h new file mode 100755 index 0000000..c3362aa --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackCygwinSourceGenerator.h @@ -0,0 +1,46 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackCygwinSourceGenerator.h,v $ + Language: C++ + Date: $Date: 2007/10/31 12:50:17 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackCygwinSourceGenerator_h +#define cmCPackCygwinSourceGenerator_h + +#include "cmCPackTarBZip2Generator.h" + +/** \class cmCPackCygwinSourceGenerator + * \brief A generator for cygwin source files + */ +class cmCPackCygwinSourceGenerator : public cmCPackTarBZip2Generator +{ +public: + cmCPackTypeMacro(cmCPackCygwinSourceGenerator, cmCPackTarBZip2Generator); + + /** + * Construct generator + */ + cmCPackCygwinSourceGenerator(); + virtual ~cmCPackCygwinSourceGenerator(); +protected: + const char* GetPackagingInstallPrefix(); + virtual int InitializeInternal(); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension(); + std::string InstallPrefix; + std::string OutputExtension; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackDebGenerator.cxx b/CMakeLua/Source/CPack/cmCPackDebGenerator.cxx new file mode 100644 index 0000000..00113ac --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackDebGenerator.cxx @@ -0,0 +1,462 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackDebGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/24 12:31:59 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCPackDebGenerator.h" + +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include +#include + +#include // USHRT_MAX + +// NOTE: +// A debian package .deb is simply an 'ar' archive. The only subtle difference +// is that debian uses the BSD ar style archive whereas most Linux distro have +// a GNU ar. +// See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=161593 for more info +// Therefore we provide our own implementation of a BSD-ar: +static int ar_append(const char*archive,const std::vector& files); + +//---------------------------------------------------------------------- +cmCPackDebGenerator::cmCPackDebGenerator() +{ +} + +//---------------------------------------------------------------------- +cmCPackDebGenerator::~cmCPackDebGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackDebGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_PACKAGING_INSTALL_PREFIX", "/usr"); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackDebGenerator::CompressFiles(const char* outFileName, + const char* toplevel, + const std::vector& files) +{ + this->ReadListFile("CPackDeb.cmake"); + const char* cmakeExecutable = this->GetOption("CMAKE_COMMAND"); + + // debian-binary file + std::string dbfilename; + dbfilename = toplevel; + dbfilename += "/debian-binary"; + { // the scope is needed for cmGeneratedFileStream + cmGeneratedFileStream out(dbfilename.c_str()); + out << "2.0"; + out << std::endl; // required for valid debian package + } + + // control file + std::string ctlfilename; + ctlfilename = toplevel; + ctlfilename += "/control"; + + // debian policy enforce lower case for package name + // mandatory entries: + std::string debian_pkg_name = cmsys::SystemTools::LowerCase( + this->GetOption("CPACK_DEBIAN_PACKAGE_NAME") ); + const char* debian_pkg_version = + this->GetOption("CPACK_DEBIAN_PACKAGE_VERSION"); + const char* debian_pkg_section = + this->GetOption("CPACK_DEBIAN_PACKAGE_SECTION"); + const char* debian_pkg_priority = + this->GetOption("CPACK_DEBIAN_PACKAGE_PRIORITY"); + const char* debian_pkg_arch = + this->GetOption("CPACK_DEBIAN_PACKAGE_ARCHITECTURE"); + const char* maintainer = this->GetOption("CPACK_DEBIAN_PACKAGE_MAINTAINER"); + const char* desc = this->GetOption("CPACK_DEBIAN_PACKAGE_DESCRIPTION"); + + // optional entries + const char* debian_pkg_dep = this->GetOption("CPACK_DEBIAN_PACKAGE_DEPENDS"); + const char* debian_pkg_rec = + this->GetOption("CPACK_DEBIAN_PACKAGE_RECOMMENDS"); + const char* debian_pkg_sug = + this->GetOption("CPACK_DEBIAN_PACKAGE_SUGGESTS"); + + { // the scope is needed for cmGeneratedFileStream + cmGeneratedFileStream out(ctlfilename.c_str()); + out << "Package: " << debian_pkg_name << "\n"; + out << "Version: " << debian_pkg_version << "\n"; + out << "Section: " << debian_pkg_section << "\n"; + out << "Priority: " << debian_pkg_priority << "\n"; + out << "Architecture: " << debian_pkg_arch << "\n"; + if(debian_pkg_dep) + { + out << "Depends: " << debian_pkg_dep << "\n"; + } + if(debian_pkg_rec) + { + out << "Recommends: " << debian_pkg_rec << "\n"; + } + if(debian_pkg_sug) + { + out << "Suggests: " << debian_pkg_sug << "\n"; + } + out << "Maintainer: " << maintainer << "\n"; + out << "Description: " << desc << "\n"; + out << std::endl; + } + + std::string cmd; + cmd = "\""; + cmd += cmakeExecutable; + cmd += "\" -E tar cfz data.tar.gz ./usr"; + std::string output; + int retVal = -1; + int res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, + &retVal, toplevel, this->GeneratorVerbose, 0); + + if ( !res || retVal ) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/Deb.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << cmd.c_str() << std::endl + << "# Working directory: " << toplevel << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running tar command: " + << cmd.c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + + std::string md5filename; + md5filename = toplevel; + md5filename += "/md5sums"; + + { // the scope is needed for cmGeneratedFileStream + cmGeneratedFileStream out(md5filename.c_str()); + std::vector::const_iterator fileIt; + std::string topLevelWithTrailingSlash = toplevel; + topLevelWithTrailingSlash += '/'; + for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt ) + { + cmd = "\""; + cmd += cmakeExecutable; + cmd += "\" -E md5sum \""; + cmd += *fileIt; + cmd += "\""; + //std::string output; + //int retVal = -1; + res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, + &retVal, toplevel, this->GeneratorVerbose, 0); + // debian md5sums entries are like this: + // 014f3604694729f3bf19263bac599765 usr/bin/ccmake + // thus strip the full path (with the trailing slash) + cmSystemTools::ReplaceString(output, + topLevelWithTrailingSlash.c_str(), ""); + out << output; + } + // each line contains a eol. + // Do not end the md5sum file with yet another (invalid) + } + + + cmd = "\""; + cmd += cmakeExecutable; + cmd += "\" -E tar cfz control.tar.gz ./control ./md5sums"; + res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, + &retVal, toplevel, this->GeneratorVerbose, 0); + + if ( !res || retVal ) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/Deb.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << cmd.c_str() << std::endl + << "# Working directory: " << toplevel << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running tar command: " + << cmd.c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + + // ar -r your-package-name.deb debian-binary control.tar.gz data.tar.gz + // since debian packages require BSD ar (most Linux distros and even + // FreeBSD and NetBSD ship GNU ar) we use a copy of OpenBSD ar here. + std::vector arFiles; + std::string topLevelString = toplevel; + topLevelString += "/"; + arFiles.push_back(topLevelString + "debian-binary"); + arFiles.push_back(topLevelString + "control.tar.gz"); + arFiles.push_back(topLevelString + "data.tar.gz"); + res = ar_append(outFileName, arFiles); + if ( res!=0 ) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/Deb.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Problem creating archive using: " << res << std::endl; + return 0; + } + + return 1; +} + +// The following code is taken from OpenBSD ar: +// http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ar/ +// It has been slightly modified: +// -return error codes instead exit() in functions +// -use the stdio file I/O functions instead the file descriptor based ones +// -merged into one cxx file +// -no additional options supported +// The coding style hasn't been modified. + +/*- + * Copyright (c) 1990, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Hugh Smith at The University of Guelph. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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 REGENTS 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. + */ + +#include +#include + +#include +#include +#include + +#define ARMAG "!\n" /* ar "magic number" */ +#define SARMAG 8 /* strlen(ARMAG); */ + +#define AR_EFMT1 "#1/" /* extended format #1 */ +#define ARFMAG "`\n" + +/* Header format strings. */ +#define HDR1 "%s%-13d%-12ld%-6u%-6u%-8o%-10lld%2s" +#define HDR2 "%-16.16s%-12ld%-6u%-6u%-8o%-10lld%2s" + +struct ar_hdr { + char ar_name[16]; /* name */ + char ar_date[12]; /* modification time */ + char ar_uid[6]; /* user id */ + char ar_gid[6]; /* group id */ + char ar_mode[8]; /* octal file permissions */ + char ar_size[10]; /* size in bytes */ + char ar_fmag[2]; /* consistency check */ +}; + +/* Set up file copy. */ +#define SETCF(from, fromname, to, toname, pad) { \ + cf.rFile = from; \ + cf.rname = fromname; \ + cf.wFile = to; \ + cf.wname = toname; \ + cf.flags = pad; \ +} + +/* File copy structure. */ +typedef struct { + FILE* rFile; /* read file descriptor */ + const char *rname; /* read name */ + FILE* wFile; /* write file descriptor */ + const char *wname; /* write name */ +#define NOPAD 0x00 /* don't pad */ +#define WPAD 0x02 /* pad on writes */ + unsigned int flags; /* pad flags */ +} CF; + +/* misc.c */ + +static const char * ar_rname(const char *path) +{ + const char *ind = strrchr(path, '/'); + return (ind ) ? ind + 1 : path; +} + +/* archive.c */ + +typedef struct ar_hdr HDR; +static char ar_hb[sizeof(HDR) + 1]; /* real header */ + +static int ar_already_written; + +/* copy_ar -- + * Copy size bytes from one file to another - taking care to handle the + * extra byte (for odd size files) when reading archives and writing an + * extra byte if necessary when adding files to archive. The length of + * the object is the long name plus the object itself; the variable + * already_written gets set if a long name was written. + * + * The padding is really unnecessary, and is almost certainly a remnant + * of early archive formats where the header included binary data which + * a PDP-11 required to start on an even byte boundary. (Or, perhaps, + * because 16-bit word addressed copies were faster?) Anyhow, it should + * have been ripped out long ago. + */ +static int copy_ar(CF *cfp, off_t size) +{ + static char pad = '\n'; + off_t sz = size; + size_t nr, nw; + char buf[8*1024]; + + if (sz == 0) + return 0; + + FILE* from = cfp->rFile; + FILE* to = cfp->wFile; + while (sz && + (nr = fread(buf, 1, sz < static_cast(sizeof(buf)) + ? static_cast(sz) : sizeof(buf), from )) + > 0) { + sz -= nr; + for (size_t off = 0; off < nr; nr -= off, off += nw) + if ((nw = fwrite(buf + off, 1, nr, to)) < nr) + return -1; + } + if (sz) + return -2; + + if (cfp->flags & WPAD && (size + ar_already_written) & 1 + && fwrite(&pad, 1, 1, to) != 1) + return -4; + + return 0; +} + +/* put_arobj -- Write an archive member to a file. */ +static int put_arobj(CF *cfp, struct stat *sb) +{ + int result = 0; + struct ar_hdr *hdr; + + /* If passed an sb structure, reading a file from disk. Get stat(2) + * information, build a name and construct a header. (Files are named + * by their last component in the archive.) */ + const char* name = ar_rname(cfp->rname); + (void)stat(cfp->rname, sb); + + /* If not truncating names and the name is too long or contains + * a space, use extended format 1. */ + unsigned int lname = strlen(name); + uid_t uid = sb->st_uid; + gid_t gid = sb->st_gid; + if (uid > USHRT_MAX) { + uid = USHRT_MAX; + } + if (gid > USHRT_MAX) { + gid = USHRT_MAX; + } + if (lname > sizeof(hdr->ar_name) || strchr(name, ' ')) + (void)sprintf(ar_hb, HDR1, AR_EFMT1, lname, + (long int)sb->st_mtime, uid, gid, sb->st_mode, + (long long)sb->st_size + lname, ARFMAG); + else { + lname = 0; + (void)sprintf(ar_hb, HDR2, name, + (long int)sb->st_mtime, uid, gid, sb->st_mode, + (long long)sb->st_size, ARFMAG); + } + off_t size = sb->st_size; + + if (fwrite(ar_hb, 1, sizeof(HDR), cfp->wFile) != sizeof(HDR)) + return -1; + + if (lname) { + if (fwrite(name, 1, lname, cfp->wFile) != lname) + return -2; + ar_already_written = lname; + } + result = copy_ar(cfp, size); + ar_already_written = 0; + return result; +} + +/* append.c */ + +/* append -- + * Append files to the archive - modifies original archive or creates + * a new archive if named archive does not exist. + */ +static int ar_append(const char* archive,const std::vector& files) +{ + int eval = 0; + FILE* aFile = fopen(archive, "wb+"); + if (aFile!=NULL) { + fwrite(ARMAG, SARMAG, 1, aFile); + if (fseek(aFile, 0, SEEK_END) != -1) { + CF cf; + struct stat sb; + /* Read from disk, write to an archive; pad on write. */ + SETCF(NULL, 0, aFile, archive, WPAD); + for(std::vector::const_iterator fileIt = files.begin(); + fileIt!=files.end(); ++fileIt) { + const char* filename = fileIt->c_str(); + FILE* file = fopen(filename, "rb"); + if (file == NULL) { + eval = -1; + continue; + } + cf.rFile = file; + cf.rname = filename; + int result = put_arobj(&cf, &sb); + (void)fclose(file); + if (result!=0) { + eval = -2; + break; + } + } + } + else { + eval = -3; + } + fclose(aFile); + } + else { + eval = -4; + } + return eval; +} diff --git a/CMakeLua/Source/CPack/cmCPackDebGenerator.h b/CMakeLua/Source/CPack/cmCPackDebGenerator.h new file mode 100644 index 0000000..79b12a0 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackDebGenerator.h @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackDebGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackDebGenerator_h +#define cmCPackDebGenerator_h + + +#include "cmCPackGenerator.h" + +/** \class cmCPackDebGenerator + * \brief A generator for Debian packages + * + */ +class cmCPackDebGenerator : public cmCPackGenerator +{ +public: + cmCPackTypeMacro(cmCPackDebGenerator, cmCPackGenerator); + + /** + * Construct generator + */ + cmCPackDebGenerator(); + virtual ~cmCPackDebGenerator(); + +protected: + virtual int InitializeInternal(); + virtual int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".deb"; } + +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackGenerator.cxx b/CMakeLua/Source/CPack/cmCPackGenerator.cxx new file mode 100755 index 0000000..73c4f5e --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackGenerator.cxx @@ -0,0 +1,1060 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/11/06 13:28:26 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackGenerator.h" + +#include "cmMakefile.h" +#include "cmCPackLog.h" +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmGeneratedFileStream.h" + +#include +#include +#include // auto_ptr + +//---------------------------------------------------------------------- +cmCPackGenerator::cmCPackGenerator() +{ + this->GeneratorVerbose = false; + this->MakefileMap = 0; + this->Logger = 0; +} + +//---------------------------------------------------------------------- +cmCPackGenerator::~cmCPackGenerator() +{ + this->MakefileMap = 0; +} + +//---------------------------------------------------------------------- +void cmCPackGeneratorProgress(const char *msg, float prog, void* ptr) +{ + cmCPackGenerator* self = static_cast(ptr); + self->DisplayVerboseOutput(msg, prog); +} + +//---------------------------------------------------------------------- +void cmCPackGenerator::DisplayVerboseOutput(const char* msg, + float progress) +{ + (void)progress; + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "" << msg << std::endl); +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::PrepareNames() +{ + + std::string tempDirectory = this->GetOption("CPACK_PACKAGE_DIRECTORY"); + tempDirectory += "/_CPack_Packages/"; + const char* toplevelTag = this->GetOption("CPACK_TOPLEVEL_TAG"); + if ( toplevelTag ) + { + tempDirectory += toplevelTag; + tempDirectory += "/"; + } + tempDirectory += this->GetOption("CPACK_GENERATOR"); + std::string topDirectory = tempDirectory; + + std::string outName = this->GetOption("CPACK_PACKAGE_FILE_NAME"); + tempDirectory += "/" + outName; + outName += this->GetOutputExtension(); + + std::string destFile = this->GetOption("CPACK_PACKAGE_DIRECTORY"); + destFile += "/" + outName; + + std::string outFile = topDirectory + "/" + outName; + + bool setDestDir = cmSystemTools::IsOn(this->GetOption("CPACK_SET_DESTDIR")); + std::string installPrefix = tempDirectory; + if (!setDestDir) + { + installPrefix += this->GetPackagingInstallPrefix(); + } + + this->SetOptionIfNotSet("CPACK_TOPLEVEL_DIRECTORY", topDirectory.c_str()); + this->SetOptionIfNotSet("CPACK_TEMPORARY_DIRECTORY", tempDirectory.c_str()); + this->SetOptionIfNotSet("CPACK_OUTPUT_FILE_NAME", outName.c_str()); + this->SetOptionIfNotSet("CPACK_OUTPUT_FILE_PATH", destFile.c_str()); + this->SetOptionIfNotSet("CPACK_TEMPORARY_PACKAGE_FILE_NAME", + outFile.c_str()); + this->SetOptionIfNotSet("CPACK_INSTALL_DIRECTORY", this->GetInstallPath()); + this->SetOptionIfNotSet("CPACK_NATIVE_INSTALL_DIRECTORY", + cmsys::SystemTools::ConvertToOutputPath(this->GetInstallPath()).c_str()); + this->SetOptionIfNotSet("CPACK_TEMPORARY_INSTALL_DIRECTORY", + installPrefix.c_str()); + + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "Look for: CPACK_PACKAGE_DESCRIPTION_FILE" << std::endl); + const char* descFileName + = this->GetOption("CPACK_PACKAGE_DESCRIPTION_FILE"); + if ( descFileName ) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "Look for: " << descFileName << std::endl); + if ( !cmSystemTools::FileExists(descFileName) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot find description file name: [" + << descFileName << "]" << std::endl); + return 0; + } + std::ifstream ifs(descFileName); + if ( !ifs ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot open description file name: " << descFileName << std::endl); + return 0; + } + cmOStringStream ostr; + std::string line; + + cmCPackLogger(cmCPackLog::LOG_VERBOSE, + "Read description file: " << descFileName << std::endl); + while ( ifs && cmSystemTools::GetLineFromStream(ifs, line) ) + { + ostr << cmSystemTools::MakeXMLSafe(line.c_str()) << std::endl; + } + this->SetOptionIfNotSet("CPACK_PACKAGE_DESCRIPTION", ostr.str().c_str()); + } + if ( !this->GetOption("CPACK_PACKAGE_DESCRIPTION") ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Project description not specified. Please specify " + "CPACK_PACKAGE_DESCRIPTION or CPACK_PACKAGE_DESCRIPTION_FILE." + << std::endl); + return 0; + } + + this->SetOptionIfNotSet("CPACK_REMOVE_TOPLEVEL_DIRECTORY", "1"); + + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::InstallProject() +{ + cmCPackLogger(cmCPackLog::LOG_OUTPUT, "Install projects" << std::endl); + this->CleanTemporaryDirectory(); + std::string tempInstallDirectoryWithPostfix + = this->GetOption("CPACK_TEMPORARY_INSTALL_DIRECTORY"); + const char* tempInstallDirectory = tempInstallDirectoryWithPostfix.c_str(); + int res = 1; + if ( !cmsys::SystemTools::MakeDirectory(tempInstallDirectory)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem creating temporary directory: " + << (tempInstallDirectory ? tempInstallDirectory : "(NULL}") + << std::endl); + return 0; + } + + bool setDestDir = cmSystemTools::IsOn(this->GetOption("CPACK_SET_DESTDIR")); + if ( setDestDir ) + { + std::string destDir = "DESTDIR="; + destDir += tempInstallDirectory; + cmSystemTools::PutEnv(destDir.c_str()); + } + else + { + // Make sure there is no destdir + cmSystemTools::PutEnv("DESTDIR="); + } + + // If the CPackConfig file sets CPACK_INSTALL_COMMANDS then run them + // as listed + if ( !this->InstallProjectViaInstallCommands( + setDestDir, tempInstallDirectory) ) + { + return 0; + } + + // If the CPackConfig file sets CPACK_INSTALL_SCRIPT then run them + // as listed + if ( !this->InstallProjectViaInstallScript( + setDestDir, tempInstallDirectory) ) + { + return 0; + } + + // If the CPackConfig file sets CPACK_INSTALLED_DIRECTORIES + // then glob it and copy it to CPACK_TEMPORARY_DIRECTORY + // This is used in Source packageing + if ( !this->InstallProjectViaInstalledDirectories( + setDestDir, tempInstallDirectory) ) + { + return 0; + } + + + // If the project is a CMAKE project then run pre-install + // and then read the cmake_install script to run it + if ( !this->InstallProjectViaInstallCMakeProjects( + setDestDir, tempInstallDirectory) ) + { + return 0; + } + + if ( setDestDir ) + { + cmSystemTools::PutEnv("DESTDIR="); + } + + return res; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::InstallProjectViaInstallCommands( + bool setDestDir, const char* tempInstallDirectory) +{ + (void)setDestDir; + (void)tempInstallDirectory; + const char* installCommands = this->GetOption("CPACK_INSTALL_COMMANDS"); + if ( installCommands && *installCommands ) + { + std::string tempInstallDirectoryEnv = "CMAKE_INSTALL_PREFIX="; + tempInstallDirectoryEnv += tempInstallDirectory; + cmSystemTools::PutEnv(tempInstallDirectoryEnv.c_str()); + std::vector installCommandsVector; + cmSystemTools::ExpandListArgument(installCommands,installCommandsVector); + std::vector::iterator it; + for ( it = installCommandsVector.begin(); + it != installCommandsVector.end(); + ++it ) + { + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Execute: " << it->c_str() + << std::endl); + std::string output; + int retVal = 1; + bool resB = cmSystemTools::RunSingleCommand(it->c_str(), &output, + &retVal, 0, this->GeneratorVerbose, 0); + if ( !resB || retVal ) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/InstallOutput.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << it->c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem running install command: " << it->c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" + << std::endl); + return 0; + } + } + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::InstallProjectViaInstalledDirectories( + bool setDestDir, const char* tempInstallDirectory) +{ + (void)setDestDir; + (void)tempInstallDirectory; + std::vector ignoreFilesRegex; + const char* cpackIgnoreFiles = this->GetOption("CPACK_IGNORE_FILES"); + if ( cpackIgnoreFiles ) + { + std::vector ignoreFilesRegexString; + cmSystemTools::ExpandListArgument(cpackIgnoreFiles, + ignoreFilesRegexString); + std::vector::iterator it; + for ( it = ignoreFilesRegexString.begin(); + it != ignoreFilesRegexString.end(); + ++it ) + { + cmCPackLogger(cmCPackLog::LOG_VERBOSE, + "Create ignore files regex for: " << it->c_str() << std::endl); + ignoreFilesRegex.push_back(it->c_str()); + } + } + const char* installDirectories + = this->GetOption("CPACK_INSTALLED_DIRECTORIES"); + if ( installDirectories && *installDirectories ) + { + std::vector installDirectoriesVector; + cmSystemTools::ExpandListArgument(installDirectories, + installDirectoriesVector); + if ( installDirectoriesVector.size() % 2 != 0 ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_INSTALLED_DIRECTORIES should contain pairs of and " + ". The can be '.' to be installed in " + "the toplevel directory of installation." << std::endl); + return 0; + } + std::vector::iterator it; + const char* tempDir = tempInstallDirectory; + for ( it = installDirectoriesVector.begin(); + it != installDirectoriesVector.end(); + ++it ) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Find files" << std::endl); + cmsys::Glob gl; + std::string toplevel = it->c_str(); + it ++; + std::string subdir = it->c_str(); + std::string findExpr = toplevel; + findExpr += "/*"; + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "- Install directory: " << toplevel << std::endl); + gl.RecurseOn(); + if ( !gl.FindFiles(findExpr) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot find any files in the installed directory" << std::endl); + return 0; + } + std::vector& files = gl.GetFiles(); + std::vector::iterator gfit; + std::vector::iterator regIt; + for ( gfit = files.begin(); gfit != files.end(); ++ gfit ) + { + bool skip = false; + std::string &inFile = *gfit; + for ( regIt= ignoreFilesRegex.begin(); + regIt!= ignoreFilesRegex.end(); + ++ regIt) + { + if ( regIt->find(inFile.c_str()) ) + { + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Ignore file: " + << inFile.c_str() << std::endl); + skip = true; + } + } + if ( skip ) + { + continue; + } + std::string filePath = tempDir; + filePath += "/" + subdir + "/" + + cmSystemTools::RelativePath(toplevel.c_str(), gfit->c_str()); + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Copy file: " + << inFile.c_str() << " -> " << filePath.c_str() << std::endl); + if ( !cmSystemTools::CopyFileIfDifferent(inFile.c_str(), + filePath.c_str()) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem copying file: " + << inFile.c_str() << " -> " << filePath.c_str() << std::endl); + return 0; + } + } + } + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::InstallProjectViaInstallScript( + bool setDestDir, const char* tempInstallDirectory) +{ + const char* cmakeScripts + = this->GetOption("CPACK_INSTALL_SCRIPT"); + std::string currentWorkingDirectory = + cmSystemTools::GetCurrentWorkingDirectory(); + if ( cmakeScripts && *cmakeScripts ) + { + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "- Install scripts: " << cmakeScripts << std::endl); + std::vector cmakeScriptsVector; + cmSystemTools::ExpandListArgument(cmakeScripts, + cmakeScriptsVector); + std::vector::iterator it; + for ( it = cmakeScriptsVector.begin(); + it != cmakeScriptsVector.end(); + ++it ) + { + std::string installScript = it->c_str(); + + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "- Install script: " << installScript << std::endl); + + if ( setDestDir ) + { + // For DESTDIR based packaging, use the *project* CMAKE_INSTALL_PREFIX + // underneath the tempInstallDirectory. The value of the project's + // CMAKE_INSTALL_PREFIX is sent in here as the value of the + // CPACK_INSTALL_PREFIX variable. + std::string dir = tempInstallDirectory; + if (this->GetOption("CPACK_INSTALL_PREFIX")) + { + dir += this->GetOption("CPACK_INSTALL_PREFIX"); + } + this->SetOption("CMAKE_INSTALL_PREFIX", dir.c_str()); + + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Using DESTDIR + CPACK_INSTALL_PREFIX... (this->SetOption)" + << std::endl); + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Setting CMAKE_INSTALL_PREFIX to '" << dir << "'" << std::endl); + } + else + { + this->SetOption("CMAKE_INSTALL_PREFIX", tempInstallDirectory); + + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Using non-DESTDIR install... (this->SetOption)" << std::endl); + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Setting CMAKE_INSTALL_PREFIX to '" << tempInstallDirectory + << "'" << std::endl); + } + + this->SetOptionIfNotSet("CMAKE_CURRENT_BINARY_DIR", + tempInstallDirectory); + this->SetOptionIfNotSet("CMAKE_CURRENT_SOURCE_DIR", + tempInstallDirectory); + int res = this->MakefileMap->ReadListFile(0, installScript.c_str()); + if ( cmSystemTools::GetErrorOccuredFlag() || !res ) + { + return 0; + } + } + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::InstallProjectViaInstallCMakeProjects( + bool setDestDir, const char* tempInstallDirectory) +{ + const char* cmakeProjects + = this->GetOption("CPACK_INSTALL_CMAKE_PROJECTS"); + const char* cmakeGenerator + = this->GetOption("CPACK_CMAKE_GENERATOR"); + std::string currentWorkingDirectory = + cmSystemTools::GetCurrentWorkingDirectory(); + if ( cmakeProjects && *cmakeProjects ) + { + if ( !cmakeGenerator ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_INSTALL_CMAKE_PROJECTS is specified, but " + "CPACK_CMAKE_GENERATOR is not. CPACK_CMAKE_GENERATOR " + "is required to install the project." + << std::endl); + return 0; + } + std::vector cmakeProjectsVector; + cmSystemTools::ExpandListArgument(cmakeProjects, + cmakeProjectsVector); + std::vector::iterator it; + for ( it = cmakeProjectsVector.begin(); + it != cmakeProjectsVector.end(); + ++it ) + { + if ( it+1 == cmakeProjectsVector.end() || + it+2 == cmakeProjectsVector.end() || + it+3 == cmakeProjectsVector.end() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Not enough items on list: CPACK_INSTALL_CMAKE_PROJECTS. " + "CPACK_INSTALL_CMAKE_PROJECTS should hold quadruplet of install " + "directory, install project name, install component, and install " + "subdirectory." + << std::endl); + return 0; + } + std::string installDirectory = it->c_str(); + ++it; + std::string installProjectName = it->c_str(); + ++it; + std::string installComponent = it->c_str(); + ++it; + std::string installSubDirectory = it->c_str(); + std::string installFile = installDirectory + "/cmake_install.cmake"; + + const char* buildConfig = this->GetOption("CPACK_BUILD_CONFIG"); + cmGlobalGenerator* globalGenerator + = this->MakefileMap->GetCMakeInstance()->CreateGlobalGenerator( + cmakeGenerator); + // set the global flag for unix style paths on cmSystemTools as + // soon as the generator is set. This allows gmake to be used + // on windows. + cmSystemTools::SetForceUnixPaths(globalGenerator->GetForceUnixPaths()); + + // Does this generator require pre-install? + if ( globalGenerator->GetPreinstallTargetName() ) + { + globalGenerator->FindMakeProgram(this->MakefileMap); + const char* cmakeMakeProgram + = this->MakefileMap->GetDefinition("CMAKE_MAKE_PROGRAM"); + std::string buildCommand + = globalGenerator->GenerateBuildCommand(cmakeMakeProgram, + installProjectName.c_str(), 0, + globalGenerator->GetPreinstallTargetName(), + buildConfig, false, false); + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Install command: " << buildCommand << std::endl); + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "- Run preinstall target for: " << installProjectName << std::endl); + std::string output; + int retVal = 1; + bool resB = + cmSystemTools::RunSingleCommand(buildCommand.c_str(), + &output, + &retVal, + installDirectory.c_str(), + this->GeneratorVerbose, 0); + if ( !resB || retVal ) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/PreinstallOutput.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << buildCommand.c_str() << std::endl + << "# Directory: " << installDirectory.c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem running install command: " << buildCommand.c_str() + << std::endl + << "Please check " << tmpFile.c_str() << " for errors" + << std::endl); + return 0; + } + } + delete globalGenerator; + + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "- Install project: " << installProjectName << std::endl); + cmake cm; + cm.SetProgressCallback(cmCPackGeneratorProgress, this); + cmGlobalGenerator gg; + gg.SetCMakeInstance(&cm); + std::auto_ptr lg(gg.CreateLocalGenerator()); + lg->SetGlobalGenerator(&gg); + cmMakefile *mf = lg->GetMakefile(); + std::string realInstallDirectory = tempInstallDirectory; + if ( !installSubDirectory.empty() && installSubDirectory != "/" ) + { + realInstallDirectory += installSubDirectory; + } + + if ( setDestDir ) + { + // For DESTDIR based packaging, use the *project* CMAKE_INSTALL_PREFIX + // underneath the tempInstallDirectory. The value of the project's + // CMAKE_INSTALL_PREFIX is sent in here as the value of the + // CPACK_INSTALL_PREFIX variable. + std::string dir = tempInstallDirectory; + if (this->GetOption("CPACK_INSTALL_PREFIX")) + { + dir += this->GetOption("CPACK_INSTALL_PREFIX"); + } + mf->AddDefinition("CMAKE_INSTALL_PREFIX", dir.c_str()); + + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Using DESTDIR + CPACK_INSTALL_PREFIX... (mf->AddDefinition)" + << std::endl); + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Setting CMAKE_INSTALL_PREFIX to '" << dir << "'" << std::endl); + } + else + { + mf->AddDefinition("CMAKE_INSTALL_PREFIX", tempInstallDirectory); + + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Using non-DESTDIR install... (mf->AddDefinition)" << std::endl); + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "- Setting CMAKE_INSTALL_PREFIX to '" << tempInstallDirectory + << "'" << std::endl); + } + + if ( buildConfig && *buildConfig ) + { + mf->AddDefinition("BUILD_TYPE", buildConfig); + } + std::string installComponentLowerCase + = cmSystemTools::LowerCase(installComponent); + if ( installComponentLowerCase != "all" ) + { + mf->AddDefinition("CMAKE_INSTALL_COMPONENT", + installComponent.c_str()); + } + + // strip on TRUE, ON, 1, one or several file names, but not on + // FALSE, OFF, 0 and an empty string + if (!cmSystemTools::IsOff(this->GetOption("CPACK_STRIP_FILES"))) + { + mf->AddDefinition("CMAKE_INSTALL_DO_STRIP", "1"); + } + + int res = mf->ReadListFile(0, installFile.c_str()); + if ( cmSystemTools::GetErrorOccuredFlag() || !res ) + { + return 0; + } + } + } + return 1; +} + +//---------------------------------------------------------------------- +bool cmCPackGenerator::ReadListFile(const char* moduleName) +{ + std::string fullPath = this->MakefileMap->GetModulesFile(moduleName); + return this->MakefileMap->ReadListFile(0, fullPath.c_str()); +} + +//---------------------------------------------------------------------- +void cmCPackGenerator::SetOptionIfNotSet(const char* op, + const char* value) +{ + const char* def = this->MakefileMap->GetDefinition(op); + if ( def && *def ) + { + return; + } + this->SetOption(op, value); +} + +//---------------------------------------------------------------------- +void cmCPackGenerator::SetOption(const char* op, const char* value) +{ + if ( !op ) + { + return; + } + if ( !value ) + { + this->MakefileMap->RemoveDefinition(op); + return; + } + cmCPackLogger(cmCPackLog::LOG_DEBUG, this->GetNameOfClass() + << "::SetOption(" << op << ", " << value << ")" << std::endl); + this->MakefileMap->AddDefinition(op, value); +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::DoPackage() +{ + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "Create package using " << this->Name.c_str() << std::endl); + + if ( !this->PrepareNames() ) + { + return 0; + } + if ( cmSystemTools::IsOn( + this->GetOption("CPACK_REMOVE_TOPLEVEL_DIRECTORY")) ) + { + const char* toplevelDirectory + = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + if ( cmSystemTools::FileExists(toplevelDirectory) ) + { + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Remove toplevel directory: " + << toplevelDirectory << std::endl); + if ( !cmSystemTools::RemoveADirectory(toplevelDirectory) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem removing toplevel directory: " + << toplevelDirectory + << std::endl); + return 0; + } + } + } + if ( !this->InstallProject() ) + { + return 0; + } + + const char* tempPackageFileName = this->GetOption( + "CPACK_TEMPORARY_PACKAGE_FILE_NAME"); + const char* packageFileName = this->GetOption("CPACK_OUTPUT_FILE_PATH"); + const char* tempDirectory = this->GetOption("CPACK_TEMPORARY_DIRECTORY"); + + + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Find files" << std::endl); + cmsys::Glob gl; + std::string findExpr = tempDirectory; + findExpr += "/*"; + gl.RecurseOn(); + if ( !gl.FindFiles(findExpr) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot find any files in the packaging tree" << std::endl); + return 0; + } + + cmCPackLogger(cmCPackLog::LOG_OUTPUT, "Compress package" << std::endl); + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Compress files to: " + << (tempPackageFileName ? tempPackageFileName : "(NULL)") << std::endl); + if ( cmSystemTools::FileExists(tempPackageFileName) ) + { + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Remove old package file" + << std::endl); + cmSystemTools::RemoveFile(tempPackageFileName); + } + if ( cmSystemTools::IsOn(this->GetOption( + "CPACK_INCLUDE_TOPLEVEL_DIRECTORY")) ) + { + tempDirectory = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + } + if ( !this->CompressFiles(tempPackageFileName, + tempDirectory, gl.GetFiles()) || cmSystemTools::GetErrorOccuredFlag()) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem compressing the directory" + << std::endl); + return 0; + } + + cmCPackLogger(cmCPackLog::LOG_OUTPUT, "Finalize package" << std::endl); + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Copy final package: " + << (tempPackageFileName ? tempPackageFileName : "(NULL)" ) + << " to " + << (packageFileName ? packageFileName : "(NULL)") + << std::endl); + if ( !cmSystemTools::CopyFileIfDifferent(tempPackageFileName, + packageFileName) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem copying the package: " + << (tempPackageFileName ? tempPackageFileName : "(NULL)" ) + << " to " + << (packageFileName ? packageFileName : "(NULL)") + << std::endl); + return 0; + } + + cmCPackLogger(cmCPackLog::LOG_OUTPUT, "Package " + << (packageFileName ? packageFileName : "(NULL)") + << " generated." << std::endl); + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::Initialize(const char* name, cmMakefile* mf, + const char* argv0) +{ + this->MakefileMap = mf; + this->Name = name; + if ( !this->FindRunningCMake(argv0) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot initialize the generator" << std::endl); + return 0; + } + // set the running generator name + this->SetOption("CPACK_GENERATOR", this->Name.c_str()); + // Load the project specific config file + const char* config = + this->GetOption("CPACK_PROJECT_CONFIG_FILE"); + if(config) + { + mf->ReadListFile(config); + } + int result = this->InitializeInternal(); + if (cmSystemTools::GetErrorOccuredFlag()) + { + return 0; + } + + // If a generator subclass did not already set this option in its + // InitializeInternal implementation, and the project did not already set + // it, the default value should be: + this->SetOptionIfNotSet("CPACK_PACKAGING_INSTALL_PREFIX", "/"); + + return result; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::InitializeInternal() +{ + return 1; +} + +//---------------------------------------------------------------------- +bool cmCPackGenerator::IsSet(const char* name) const +{ + return this->MakefileMap->IsSet(name); +} + +//---------------------------------------------------------------------- +const char* cmCPackGenerator::GetOption(const char* op) +{ + return this->MakefileMap->GetDefinition(op); +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::FindRunningCMake(const char* arg0) +{ + int found = 0; + // Find our own executable. + std::vector failures; + this->CPackSelf = arg0; + cmSystemTools::ConvertToUnixSlashes(this->CPackSelf); + failures.push_back(this->CPackSelf); + this->CPackSelf = cmSystemTools::FindProgram(this->CPackSelf.c_str()); + if(!cmSystemTools::FileExists(this->CPackSelf.c_str())) + { + failures.push_back(this->CPackSelf); + this->CPackSelf = "/usr/local/bin/ctest"; + } + if(!cmSystemTools::FileExists(this->CPackSelf.c_str())) + { + failures.push_back(this->CPackSelf); + cmOStringStream msg; + msg << "CPack can not find the command line program ctest.\n"; + msg << " argv[0] = \"" << arg0 << "\"\n"; + msg << " Attempted paths:\n"; + std::vector::iterator i; + for(i=failures.begin(); i != failures.end(); ++i) + { + msg << " \"" << i->c_str() << "\"\n"; + } + cmCPackLogger(cmCPackLog::LOG_ERROR, msg.str().c_str() + << std::endl); + return 0; + } + std::string dir; + std::string file; + if(cmSystemTools::SplitProgramPath(this->CPackSelf.c_str(), + dir, file, true)) + { + this->CMakeSelf = dir += "/cmake"; + this->CMakeSelf += cmSystemTools::GetExecutableExtension(); + if(cmSystemTools::FileExists(this->CMakeSelf.c_str())) + { + found = 1; + } + } + if ( !found ) + { + failures.push_back(this->CMakeSelf); +#ifdef CMAKE_BUILD_DIR + std::string intdir = "."; +#ifdef CMAKE_INTDIR + intdir = CMAKE_INTDIR; +#endif + this->CMakeSelf = CMAKE_BUILD_DIR; + this->CMakeSelf += "/bin/"; + this->CMakeSelf += intdir; + this->CMakeSelf += "/cmake"; + this->CMakeSelf += cmSystemTools::GetExecutableExtension(); +#endif + if(!cmSystemTools::FileExists(this->CMakeSelf.c_str())) + { + failures.push_back(this->CMakeSelf); + cmOStringStream msg; + msg << "CPack can not find the command line program cmake.\n"; + msg << " argv[0] = \"" << arg0 << "\"\n"; + msg << " Attempted paths:\n"; + std::vector::iterator i; + for(i=failures.begin(); i != failures.end(); ++i) + { + msg << " \"" << i->c_str() << "\"\n"; + } + cmCPackLogger(cmCPackLog::LOG_ERROR, msg.str().c_str() + << std::endl); + return 0; + } + } + // do CMAKE_ROOT, look for the environment variable first + std::string cMakeRoot; + std::string modules; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT" << std::endl); + if (getenv("CMAKE_ROOT")) + { + cMakeRoot = getenv("CMAKE_ROOT"); + modules = cMakeRoot + "/Modules/CMake.cmake"; + } + if(modules.empty() || !cmSystemTools::FileExists(modules.c_str())) + { + // next try exe/.. + cMakeRoot = cmSystemTools::GetProgramPath(this->CMakeSelf.c_str()); + std::string::size_type slashPos = cMakeRoot.rfind("/"); + if(slashPos != std::string::npos) + { + cMakeRoot = cMakeRoot.substr(0, slashPos); + } + // is there no Modules direcory there? + modules = cMakeRoot + "/Modules/CMake.cmake"; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: " + << modules.c_str() << std::endl); + } + + if (!cmSystemTools::FileExists(modules.c_str())) + { + // try exe/../share/cmake + cMakeRoot += CMAKE_DATA_DIR; + modules = cMakeRoot + "/Modules/CMake.cmake"; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: " + << modules.c_str() << std::endl); + } +#ifdef CMAKE_ROOT_DIR + if (!cmSystemTools::FileExists(modules.c_str())) + { + // try compiled in root directory + cMakeRoot = CMAKE_ROOT_DIR; + modules = cMakeRoot + "/Modules/CMake.cmake"; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: " + << modules.c_str() << std::endl); + } +#endif +#ifdef CMAKE_PREFIX + if (!cmSystemTools::FileExists(modules.c_str())) + { + // try compiled in install prefix + cMakeRoot = CMAKE_PREFIX CMAKE_DATA_DIR; + modules = cMakeRoot + "/Modules/CMake.cmake"; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: " + << modules.c_str() << std::endl); + } +#endif + if (!cmSystemTools::FileExists(modules.c_str())) + { + // try + cMakeRoot = cmSystemTools::GetProgramPath(this->CMakeSelf.c_str()); + cMakeRoot += CMAKE_DATA_DIR; + modules = cMakeRoot + "/Modules/CMake.cmake"; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: " + << modules.c_str() << std::endl); + } + if(!cmSystemTools::FileExists(modules.c_str())) + { + // next try exe + cMakeRoot = cmSystemTools::GetProgramPath(this->CMakeSelf.c_str()); + // is there no Modules direcory there? + modules = cMakeRoot + "/Modules/CMake.cmake"; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: " + << modules.c_str() << std::endl); + } + if (!cmSystemTools::FileExists(modules.c_str())) + { + // couldn't find modules + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Could not find CMAKE_ROOT !!!" << std::endl + << "CMake has most likely not been installed correctly." << std::endl + <<"Modules directory not found in" << std::endl + << cMakeRoot.c_str() + << std::endl); + return 0; + } + this->CMakeRoot = cMakeRoot; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: " + << this->CMakeRoot.c_str() << std::endl); + this->SetOption("CMAKE_ROOT", this->CMakeRoot.c_str()); + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + (void)outFileName; + (void)toplevel; + (void)files; + return 0; +} + +//---------------------------------------------------------------------- +const char* cmCPackGenerator::GetInstallPath() +{ + if ( !this->InstallPath.empty() ) + { + return this->InstallPath.c_str(); + } +#if defined(_WIN32) && !defined(__CYGWIN__) + const char* prgfiles = cmsys::SystemTools::GetEnv("ProgramFiles"); + const char* sysDrive = cmsys::SystemTools::GetEnv("SystemDrive"); + if ( prgfiles ) + { + this->InstallPath = prgfiles; + } + else if ( sysDrive ) + { + this->InstallPath = sysDrive; + this->InstallPath += "/Program Files"; + } + else + { + this->InstallPath = "c:/Program Files"; + } + this->InstallPath += "/"; + this->InstallPath += this->GetOption("CPACK_PACKAGE_NAME"); + this->InstallPath += "-"; + this->InstallPath += this->GetOption("CPACK_PACKAGE_VERSION"); +#else + this->InstallPath = "/usr/local/"; +#endif + return this->InstallPath.c_str(); +} + +//---------------------------------------------------------------------- +const char* cmCPackGenerator::GetPackagingInstallPrefix() +{ + cmCPackLogger(cmCPackLog::LOG_DEBUG, "GetPackagingInstallPrefix: '" + << this->GetOption("CPACK_PACKAGING_INSTALL_PREFIX") << "'" << std::endl); + + return this->GetOption("CPACK_PACKAGING_INSTALL_PREFIX"); +} + +//---------------------------------------------------------------------- +std::string cmCPackGenerator::FindTemplate(const char* name) +{ + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Look for template: " + << (name ? name : "(NULL)") << std::endl); + std::string ffile = this->MakefileMap->GetModulesFile(name); + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Found template: " + << ffile.c_str() << std::endl); + return ffile; +} + +//---------------------------------------------------------------------- +bool cmCPackGenerator::ConfigureString(const std::string& inString, + std::string& outString) +{ + this->MakefileMap->ConfigureString(inString, + outString, true, false); + return true; +} + +//---------------------------------------------------------------------- +bool cmCPackGenerator::ConfigureFile(const char* inName, + const char* outName, bool copyOnly /* = false */) +{ + return this->MakefileMap->ConfigureFile(inName, outName, + copyOnly, true, false) == 1; +} + +//---------------------------------------------------------------------- +int cmCPackGenerator::CleanTemporaryDirectory() +{ + std::string tempInstallDirectoryWithPostfix + = this->GetOption("CPACK_TEMPORARY_INSTALL_DIRECTORY"); + const char* tempInstallDirectory = tempInstallDirectoryWithPostfix.c_str(); + if(cmsys::SystemTools::FileExists(tempInstallDirectory)) + { + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "- Clean temporary : " + << tempInstallDirectory << std::endl); + if(!cmsys::SystemTools::RemoveADirectory(tempInstallDirectory)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem removing temporary directory: " << + tempInstallDirectory + << std::endl); + return 0; + } + } + return 1; +} diff --git a/CMakeLua/Source/CPack/cmCPackGenerator.h b/CMakeLua/Source/CPack/cmCPackGenerator.h new file mode 100755 index 0000000..2cef3d9 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackGenerator.h @@ -0,0 +1,137 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/06 13:28:26 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackGenerator_h +#define cmCPackGenerator_h + +#include "cmObject.h" + +#define cmCPackTypeMacro(class, superclass) \ + cmTypeMacro(class, superclass); \ + static cmCPackGenerator* CreateGenerator() { return new class; } + +#define cmCPackLogger(logType, msg) \ + do { \ + cmOStringStream cmCPackLog_msg; \ + cmCPackLog_msg << msg; \ + this->Logger->Log(logType, __FILE__, __LINE__,\ + cmCPackLog_msg.str().c_str());\ + } while ( 0 ) + +#ifdef cerr +# undef cerr +#endif +#define cerr no_cerr_use_cmCPack_Log + +#ifdef cout +# undef cout +#endif +#define cout no_cout_use_cmCPack_Log + +class cmMakefile; +class cmCPackLog; + +/** \class cmCPackGenerator + * \brief A superclass of all CPack Generators + * + */ +class cmCPackGenerator : public cmObject +{ +public: + cmTypeMacro(cmCPackGenerator, cmObject); + /** + * If verbose then more informaiton is printed out + */ + void SetVerbose(bool val) { this->GeneratorVerbose = val; } + + /** + * Do the actual processing. Subclass has to override it. + * Return 0 if error. + */ + virtual int DoPackage(); + + /** + * Initialize generator + */ + int Initialize(const char* name, cmMakefile* mf, const char* argv0); + + /** + * Construct generator + */ + cmCPackGenerator(); + virtual ~cmCPackGenerator(); + + //! Set and get the options + void SetOption(const char* op, const char* value); + void SetOptionIfNotSet(const char* op, const char* value); + const char* GetOption(const char* op); + bool IsSet(const char* name) const; + + //! Set all the variables + int FindRunningCMake(const char* arg0); + + //! Set the logger + void SetLogger(cmCPackLog* log) { this->Logger = log; } + + //! Display verbose information via logger + void DisplayVerboseOutput(const char* msg, float progress); + + bool ReadListFile(const char* moduleName); + +protected: + int PrepareNames(); + int InstallProject(); + int CleanTemporaryDirectory(); + virtual const char* GetOutputExtension() { return ".cpack"; } + virtual const char* GetOutputPostfix() { return 0; } + virtual int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetInstallPath(); + virtual const char* GetPackagingInstallPrefix(); + + virtual std::string FindTemplate(const char* name); + virtual bool ConfigureFile(const char* inName, const char* outName, + bool copyOnly = false); + virtual bool ConfigureString(const std::string& input, std::string& output); + virtual int InitializeInternal(); + + + //! Run install commands if specified + virtual int InstallProjectViaInstallCommands( + bool setDestDir, const char* tempInstallDirectory); + virtual int InstallProjectViaInstallScript( + bool setDestDir, const char* tempInstallDirectory); + virtual int InstallProjectViaInstalledDirectories( + bool setDestDir, const char* tempInstallDirectory); + virtual int InstallProjectViaInstallCMakeProjects( + bool setDestDir, const char* tempInstallDirectory); + + bool GeneratorVerbose; + std::string Name; + + std::string InstallPath; + + std::string CPackSelf; + std::string CMakeSelf; + std::string CMakeRoot; + + cmCPackLog* Logger; +private: + cmMakefile* MakefileMap; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackGeneratorFactory.cxx b/CMakeLua/Source/CPack/cmCPackGeneratorFactory.cxx new file mode 100755 index 0000000..933a384 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackGeneratorFactory.cxx @@ -0,0 +1,136 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackGeneratorFactory.cxx,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackGeneratorFactory.h" + +#include "cmCPackGenerator.h" +#include "cmCPackTGZGenerator.h" +#include "cmCPackTarBZip2Generator.h" +#include "cmCPackTarCompressGenerator.h" +#include "cmCPackZIPGenerator.h" +#include "cmCPackSTGZGenerator.h" +#include "cmCPackNSISGenerator.h" +#ifdef __APPLE__ +# include "cmCPackPackageMakerGenerator.h" +# include "cmCPackOSXX11Generator.h" +#endif + +#ifdef __CYGWIN__ +# include "cmCPackCygwinBinaryGenerator.h" +# include "cmCPackCygwinSourceGenerator.h" +#endif + +#if !defined(_WIN32) && !defined(__APPLE__) \ + && !defined(__QNXNTO__) && !defined(__BEOS__) +# include "cmCPackDebGenerator.h" +# include "cmCPackRPMGenerator.h" +#endif + + +#include "cmCPackLog.h" + +//---------------------------------------------------------------------- +cmCPackGeneratorFactory::cmCPackGeneratorFactory() +{ + this->RegisterGenerator("TGZ", "Tar GZip compression", + cmCPackTGZGenerator::CreateGenerator); + this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression", + cmCPackSTGZGenerator::CreateGenerator); + this->RegisterGenerator("NSIS", "Null Soft Installer", + cmCPackNSISGenerator::CreateGenerator); +#ifdef __CYGWIN__ + this->RegisterGenerator("CygwinBinary", "Cygwin Binary Installer", + cmCPackCygwinBinaryGenerator::CreateGenerator); + this->RegisterGenerator("CygwinSource", "Cygwin Source Installer", + cmCPackCygwinSourceGenerator::CreateGenerator); +#endif + + this->RegisterGenerator("ZIP", "ZIP file format", + cmCPackZIPGenerator::CreateGenerator); + this->RegisterGenerator("TBZ2", "Tar BZip2 compression", + cmCPackTarBZip2Generator::CreateGenerator); + this->RegisterGenerator("TZ", "Tar Compress compression", + cmCPackTarCompressGenerator::CreateGenerator); +#ifdef __APPLE__ + this->RegisterGenerator("PackageMaker", "Mac OSX Package Maker installer", + cmCPackPackageMakerGenerator::CreateGenerator); + this->RegisterGenerator("OSXX11", "Mac OSX X11 bundle", + cmCPackOSXX11Generator::CreateGenerator); +#endif +#if !defined(_WIN32) && !defined(__APPLE__) \ + && !defined(__QNXNTO__) && !defined(__BEOS__) + this->RegisterGenerator("DEB", "Debian packages", + cmCPackDebGenerator::CreateGenerator); + this->RegisterGenerator("RPM", "RPM packages", + cmCPackRPMGenerator::CreateGenerator); +#endif +} + +//---------------------------------------------------------------------- +cmCPackGeneratorFactory::~cmCPackGeneratorFactory() +{ + std::vector::iterator it; + for ( it = this->Generators.begin(); it != this->Generators.end(); ++ it ) + { + delete *it; + } +} + +//---------------------------------------------------------------------- +cmCPackGenerator* cmCPackGeneratorFactory::NewGenerator(const char* name) +{ + cmCPackGenerator* gen = this->NewGeneratorInternal(name); + if ( !gen ) + { + return 0; + } + this->Generators.push_back(gen); + gen->SetLogger(this->Logger); + return gen; +} + +//---------------------------------------------------------------------- +cmCPackGenerator* cmCPackGeneratorFactory::NewGeneratorInternal( + const char* name) +{ + if ( !name ) + { + return 0; + } + cmCPackGeneratorFactory::t_GeneratorCreatorsMap::iterator it + = this->GeneratorCreators.find(name); + if ( it == this->GeneratorCreators.end() ) + { + return 0; + } + return (it->second)(); +} + +//---------------------------------------------------------------------- +void cmCPackGeneratorFactory::RegisterGenerator(const char* name, + const char* generatorDescription, + CreateGeneratorCall* createGenerator) +{ + if ( !name || !createGenerator ) + { + cmCPack_Log(this->Logger, cmCPackLog::LOG_ERROR, + "Cannot register generator" << std::endl); + return; + } + this->GeneratorCreators[name] = createGenerator; + this->GeneratorDescriptions[name] = generatorDescription; +} diff --git a/CMakeLua/Source/CPack/cmCPackGeneratorFactory.h b/CMakeLua/Source/CPack/cmCPackGeneratorFactory.h new file mode 100755 index 0000000..238a56e --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackGeneratorFactory.h @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackGeneratorFactory.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackGeneratorFactory_h +#define cmCPackGeneratorFactory_h + +#include "cmObject.h" + +class cmCPackLog; +class cmCPackGenerator; + +/** \class cmCPackGeneratorFactory + * \brief A container for CPack generators + * + */ +class cmCPackGeneratorFactory : public cmObject +{ +public: + cmTypeMacro(cmCPackGeneratorFactory, cmObject); + + cmCPackGeneratorFactory(); + ~cmCPackGeneratorFactory(); + + //! Get the generator + cmCPackGenerator* NewGenerator(const char* name); + void DeleteGenerator(cmCPackGenerator* gen); + + typedef cmCPackGenerator* CreateGeneratorCall(); + + void RegisterGenerator(const char* name, + const char* generatorDescription, + CreateGeneratorCall* createGenerator); + + void SetLogger(cmCPackLog* logger) { this->Logger = logger; } + + typedef std::map DescriptionsMap; + const DescriptionsMap& GetGeneratorsList() const + { return this->GeneratorDescriptions; } + +private: + cmCPackGenerator* NewGeneratorInternal(const char* name); + std::vector Generators; + + typedef std::map t_GeneratorCreatorsMap; + t_GeneratorCreatorsMap GeneratorCreators; + DescriptionsMap GeneratorDescriptions; + cmCPackLog* Logger; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackLog.cxx b/CMakeLua/Source/CPack/cmCPackLog.cxx new file mode 100644 index 0000000..abc80d0 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackLog.cxx @@ -0,0 +1,224 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackLog.cxx,v $ + Language: C++ + Date: $Date: 2006/03/10 18:06:26 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackLog.h" + +#include "cmGeneratedFileStream.h" + +//---------------------------------------------------------------------- +cmCPackLog::cmCPackLog() +{ + this->Verbose = false; + this->Debug = false; + this->Quiet = false; + this->NewLine = true; + + this->LastTag = cmCPackLog::NOTAG; +#undef cerr +#undef cout + this->DefaultOutput = &std::cout; + this->DefaultError = &std::cerr; + + this->LogOutput = 0; + this->LogOutputCleanup = false; +} + +//---------------------------------------------------------------------- +cmCPackLog::~cmCPackLog() +{ + this->SetLogOutputStream(0); +} + +//---------------------------------------------------------------------- +void cmCPackLog::SetLogOutputStream(std::ostream* os) +{ + if ( this->LogOutputCleanup && this->LogOutput ) + { + delete this->LogOutput; + } + this->LogOutputCleanup = false; + this->LogOutput = os; +} + +//---------------------------------------------------------------------- +bool cmCPackLog::SetLogOutputFile(const char* fname) +{ + cmGeneratedFileStream *cg = 0; + if ( fname ) + { + cg = new cmGeneratedFileStream(fname); + } + if ( cg && !*cg ) + { + delete cg; + cg = 0; + } + this->SetLogOutputStream(cg); + if ( !cg ) + { + return false; + } + this->LogOutputCleanup = true; + return true; +} + +//---------------------------------------------------------------------- +void cmCPackLog::Log(int tag, const char* file, int line, + const char* msg, size_t length) +{ + // By default no logging + bool display = false; + + // Display file and line number if debug + bool useFileAndLine = this->Debug; + + bool output = false; + bool debug = false; + bool warning = false; + bool error = false; + bool verbose = false; + + // When writing in file, add list of tags whenever tag changes. + std::string tagString; + bool needTagString = false; + if ( this->LogOutput && this->LastTag != tag ) + { + needTagString = true; + } + + if ( tag & LOG_OUTPUT ) + { + output = true; + display = true; + if ( needTagString ) + { + if ( tagString.size() > 0 ) { tagString += ","; } + tagString = "VERBOSE"; + } + } + if ( tag & LOG_WARNING ) + { + warning = true; + display = true; + if ( needTagString ) + { + if ( tagString.size() > 0 ) { tagString += ","; } + tagString = "WARNING"; + } + } + if ( tag & LOG_ERROR ) + { + error = true; + display = true; + if ( needTagString ) + { + if ( tagString.size() > 0 ) { tagString += ","; } + tagString = "ERROR"; + } + } + if ( tag & LOG_DEBUG && this->Debug ) + { + debug = true; + display = true; + if ( needTagString ) + { + if ( tagString.size() > 0 ) { tagString += ","; } + tagString = "DEBUG"; + } + useFileAndLine = true; + } + if ( tag & LOG_VERBOSE && this->Verbose ) + { + verbose = true; + display = true; + if ( needTagString ) + { + if ( tagString.size() > 0 ) { tagString += ","; } + tagString = "VERBOSE"; + } + } + if ( this->Quiet ) + { + display = false; + } + if ( this->LogOutput ) + { + if ( needTagString ) + { + *this->LogOutput << "[" << file << ":" << line << " " + << tagString << "] "; + } + this->LogOutput->write(msg, length); + } + this->LastTag = tag; + if ( !display ) + { + return; + } + if ( this->NewLine ) + { + if ( error && !this->ErrorPrefix.empty() ) + { + *this->DefaultError << this->ErrorPrefix.c_str(); + } + else if ( warning && !this->WarningPrefix.empty() ) + { + *this->DefaultError << this->WarningPrefix.c_str(); + } + else if ( output && !this->OutputPrefix.empty() ) + { + *this->DefaultOutput << this->OutputPrefix.c_str(); + } + else if ( verbose && !this->VerbosePrefix.empty() ) + { + *this->DefaultOutput << this->VerbosePrefix.c_str(); + } + else if ( debug && !this->DebugPrefix.empty() ) + { + *this->DefaultOutput << this->DebugPrefix.c_str(); + } + else if ( !this->Prefix.empty() ) + { + *this->DefaultOutput << this->Prefix.c_str(); + } + if ( useFileAndLine ) + { + if ( error || warning ) + { + *this->DefaultError << file << ":" << line << " "; + } + else + { + *this->DefaultOutput << file << ":" << line << " "; + } + } + } + if ( error || warning ) + { + this->DefaultError->write(msg, length); + this->DefaultError->flush(); + } + else + { + this->DefaultOutput->write(msg, length); + this->DefaultOutput->flush(); + } + if ( msg[length-1] == '\n' || length > 2 ) + { + this->NewLine = true; + } +} diff --git a/CMakeLua/Source/CPack/cmCPackLog.h b/CMakeLua/Source/CPack/cmCPackLog.h new file mode 100644 index 0000000..da82e0a --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackLog.h @@ -0,0 +1,160 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackLog.h,v $ + Language: C++ + Date: $Date: 2006/03/10 18:06:26 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackLog_h +#define cmCPackLog_h + +#include "cmObject.h" + +#define cmCPack_Log(ctSelf, logType, msg) \ + do { \ + cmOStringStream cmCPackLog_msg; \ + cmCPackLog_msg << msg; \ + (ctSelf)->Log(logType, __FILE__, __LINE__, cmCPackLog_msg.str().c_str());\ + } while ( 0 ) + +#ifdef cerr +# undef cerr +#endif +#define cerr no_cerr_use_cmCPack_Log + +#ifdef cout +# undef cout +#endif +#define cout no_cout_use_cmCPack_Log + + +/** \class cmCPackLog + * \brief A container for CPack generators + * + */ +class cmCPackLog : public cmObject +{ +public: + cmTypeMacro(cmCPackLog, cmObject); + + cmCPackLog(); + ~cmCPackLog(); + + enum __log_tags { + NOTAG = 0, + LOG_OUTPUT = 0x1, + LOG_VERBOSE = 0x2, + LOG_DEBUG = 0x4, + LOG_WARNING = 0x8, + LOG_ERROR = 0x10 + }; + + //! Various signatures for logging. + void Log(const char* file, int line, const char* msg) + { + this->Log(LOG_OUTPUT, file, line, msg); + } + void Log(const char* file, int line, const char* msg, size_t length) + { + this->Log(LOG_OUTPUT, file, line, msg, length); + } + void Log(int tag, const char* file, int line, const char* msg) + { + this->Log(tag, file, line, msg, strlen(msg)); + } + void Log(int tag, const char* file, int line, const char* msg, + size_t length); + + //! Set Verbose + void VerboseOn() { this->SetVerbose(true); } + void VerboseOff() { this->SetVerbose(true); } + void SetVerbose(bool verb) { this->Verbose = verb; } + bool GetVerbose() { return this->Verbose; } + + //! Set Debug + void DebugOn() { this->SetDebug(true); } + void DebugOff() { this->SetDebug(true); } + void SetDebug(bool verb) { this->Debug = verb; } + bool GetDebug() { return this->Debug; } + + //! Set Quiet + void QuietOn() { this->SetQuiet(true); } + void QuietOff() { this->SetQuiet(true); } + void SetQuiet(bool verb) { this->Quiet = verb; } + bool GetQuiet() { return this->Quiet; } + + //! Set the output stream + void SetOutputStream(std::ostream* os) { this->DefaultOutput = os; } + + //! Set the error stream + void SetErrorStream(std::ostream* os) { this->DefaultError = os; } + + //! Set the log output stream + void SetLogOutputStream(std::ostream* os); + + //! Set the log output file. The cmCPackLog will try to create file. If it + // cannot, it will report an error. + bool SetLogOutputFile(const char* fname); + + //! Set the various prefixes for the logging. SetPrefix sets the generic + // prefix that overwrittes missing ones. + void SetPrefix(std::string pfx) { this->Prefix = pfx; } + void SetOutputPrefix(std::string pfx) { this->OutputPrefix = pfx; } + void SetVerbosePrefix(std::string pfx) { this->VerbosePrefix = pfx; } + void SetDebugPrefix(std::string pfx) { this->DebugPrefix = pfx; } + void SetWarningPrefix(std::string pfx) { this->WarningPrefix = pfx; } + void SetErrorPrefix(std::string pfx) { this->ErrorPrefix = pfx; } + +private: + bool Verbose; + bool Debug; + bool Quiet; + + bool NewLine; + + int LastTag; + + std::string Prefix; + std::string OutputPrefix; + std::string VerbosePrefix; + std::string DebugPrefix; + std::string WarningPrefix; + std::string ErrorPrefix; + + std::ostream *DefaultOutput; + std::ostream *DefaultError; + + std::string LogOutputFileName; + std::ostream *LogOutput; + // Do we need to cleanup log output stream + bool LogOutputCleanup; +}; + +class cmCPackLogWrite +{ +public: + cmCPackLogWrite(const char* data, size_t length) + : Data(data), Length(length) {} + + const char* Data; + size_t Length; +}; + +inline std::ostream& operator<< (std::ostream& os, const cmCPackLogWrite& c) +{ + os.write(c.Data, c.Length); + os.flush(); + return os; +} + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackNSISGenerator.cxx b/CMakeLua/Source/CPack/cmCPackNSISGenerator.cxx new file mode 100644 index 0000000..2e539a4 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackNSISGenerator.cxx @@ -0,0 +1,417 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackNSISGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/12/14 19:58:27 $ + Version: $Revision: 1.30 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackNSISGenerator.h" + +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include +#include +#include +#include + +/* NSIS uses different command line syntax on Windows and others */ +#ifdef _WIN32 +# define NSIS_OPT "/" +#else +# define NSIS_OPT "-" +#endif + +//---------------------------------------------------------------------- +cmCPackNSISGenerator::cmCPackNSISGenerator() +{ +} + +//---------------------------------------------------------------------- +cmCPackNSISGenerator::~cmCPackNSISGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackNSISGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + (void)outFileName; // TODO: Fix nsis to force out file name + (void)toplevel; + std::string nsisInFileName = this->FindTemplate("NSIS.template.in"); + if ( nsisInFileName.size() == 0 ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPack error: Could not find NSIS installer template file." + << std::endl); + return false; + } + std::string nsisInInstallOptions + = this->FindTemplate("NSIS.InstallOptions.ini.in"); + if ( nsisInInstallOptions.size() == 0 ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPack error: Could not find NSIS installer options file." + << std::endl); + return false; + } + std::string nsisFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + std::string tmpFile = nsisFileName; + tmpFile += "/NSISOutput.log"; + std::string nsisInstallOptions = nsisFileName + "/NSIS.InstallOptions.ini"; + nsisFileName += "/project.nsi"; + cmOStringStream str; + std::vector::const_iterator it; + for ( it = files.begin(); it != files.end(); ++ it ) + { + std::string fileN = cmSystemTools::RelativePath(toplevel, + it->c_str()); + cmSystemTools::ReplaceString(fileN, "/", "\\"); + str << " Delete \"$INSTDIR\\" << fileN.c_str() << "\"" << std::endl; + } + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Uninstall Files: " + << str.str().c_str() << std::endl); + this->SetOptionIfNotSet("CPACK_NSIS_DELETE_FILES", str.str().c_str()); + std::vector dirs; + this->GetListOfSubdirectories(toplevel, dirs); + std::vector::const_iterator sit; + cmOStringStream dstr; + for ( sit = dirs.begin(); sit != dirs.end(); ++ sit ) + { + std::string fileN = cmSystemTools::RelativePath(toplevel, + sit->c_str()); + if ( fileN.empty() ) + { + continue; + } + cmSystemTools::ReplaceString(fileN, "/", "\\"); + dstr << " RMDir \"$INSTDIR\\" << fileN.c_str() << "\"" << std::endl; + } + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Uninstall Dirs: " + << dstr.str().c_str() << std::endl); + this->SetOptionIfNotSet("CPACK_NSIS_DELETE_DIRECTORIES", + dstr.str().c_str()); + + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Configure file: " << nsisInFileName + << " to " << nsisFileName << std::endl); + if(this->IsSet("CPACK_NSIS_MUI_ICON") + && this->IsSet("CPACK_NSIS_MUI_UNIICON")) + { + std::string installerIconCode="!define MUI_ICON \""; + installerIconCode += this->GetOption("CPACK_NSIS_MUI_ICON"); + installerIconCode += "\"\n"; + installerIconCode += "!define MUI_UNICON \""; + installerIconCode += this->GetOption("CPACK_NSIS_MUI_UNIICON"); + installerIconCode += "\"\n"; + this->SetOptionIfNotSet("CPACK_NSIS_INSTALLER_MUI_ICON_CODE", + installerIconCode.c_str()); + } + if(this->IsSet("CPACK_PACKAGE_ICON")) + { + std::string installerIconCode = "!define MUI_HEADERIMAGE_BITMAP \""; + installerIconCode += this->GetOption("CPACK_PACKAGE_ICON"); + installerIconCode += "\"\n"; + this->SetOptionIfNotSet("CPACK_NSIS_INSTALLER_ICON_CODE", + installerIconCode.c_str()); + } + this->ConfigureFile(nsisInInstallOptions.c_str(), + nsisInstallOptions.c_str()); + this->ConfigureFile(nsisInFileName.c_str(), nsisFileName.c_str()); + std::string nsisCmd = "\""; + nsisCmd += this->GetOption("CPACK_INSTALLER_PROGRAM"); + nsisCmd += "\" \"" + nsisFileName + "\""; + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Execute: " << nsisCmd.c_str() + << std::endl); + std::string output; + int retVal = 1; + bool res = cmSystemTools::RunSingleCommand(nsisCmd.c_str(), &output, + &retVal, 0, this->GeneratorVerbose, 0); + if ( !res || retVal ) + { + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << nsisCmd.c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running NSIS command: " + << nsisCmd.c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackNSISGenerator::InitializeInternal() +{ + if ( cmSystemTools::IsOn(this->GetOption( + "CPACK_INCLUDE_TOPLEVEL_DIRECTORY")) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "NSIS Generator cannot work with CPACK_INCLUDE_TOPLEVEL_DIRECTORY. " + "This option will be ignored." + << std::endl); + this->SetOption("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", 0); + } + + cmCPackLogger(cmCPackLog::LOG_DEBUG, "cmCPackNSISGenerator::Initialize()" + << std::endl); + std::vector path; + std::string nsisPath; + +#ifdef _WIN32 + if ( !cmsys::SystemTools::ReadRegistryValue( + "HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS", nsisPath) ) + { + cmCPackLogger + (cmCPackLog::LOG_ERROR, + "Cannot find NSIS registry value. This is usually caused by NSIS " + "not being installed. Please install NSIS from " + "http://nsis.sourceforge.org" + << std::endl); + return 0; + } + path.push_back(nsisPath); +#endif + nsisPath = cmSystemTools::FindProgram("makensis", path, false); + if ( nsisPath.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find NSIS compiler" + << std::endl); + return 0; + } + std::string nsisCmd = "\"" + nsisPath + "\" " NSIS_OPT "VERSION"; + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Test NSIS version: " + << nsisCmd.c_str() << std::endl); + std::string output; + int retVal = 1; + bool resS = cmSystemTools::RunSingleCommand(nsisCmd.c_str(), + &output, &retVal, 0, this->GeneratorVerbose, 0); + + cmsys::RegularExpression versionRex("v([0-9]+.[0-9]+)"); + if ( !resS || retVal || !versionRex.find(output)) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/NSISOutput.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << nsisCmd.c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem checking NSIS version with command: " + << nsisCmd.c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + double nsisVersion = atof(versionRex.match(1).c_str()); + double minNSISVersion = 2.09; + cmCPackLogger(cmCPackLog::LOG_DEBUG, "NSIS Version: " + << nsisVersion << std::endl); + if ( nsisVersion < minNSISVersion ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPack requires NSIS Version 2.09 or greater. NSIS found on the system " + "was: " + << nsisVersion << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM", nsisPath.c_str()); + const char* cpackPackageExecutables + = this->GetOption("CPACK_PACKAGE_EXECUTABLES"); + const char* cpackPackageDeskTopLinks + = this->GetOption("CPACK_CREATE_DESKTOP_LINKS"); + std::vector cpackPackageDesktopLinksVector; + if(cpackPackageDeskTopLinks) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "CPACK_CREATE_DESKTOP_LINKS: " + << cpackPackageDeskTopLinks << std::endl); + + cmSystemTools:: + ExpandListArgument(cpackPackageDeskTopLinks, + cpackPackageDesktopLinksVector); + for(std::vector::iterator i = + cpackPackageDesktopLinksVector.begin(); i != + cpackPackageDesktopLinksVector.end(); ++i) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "CPACK_CREATE_DESKTOP_LINKS: " + << *i << std::endl); + } + } + else + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "CPACK_CREATE_DESKTOP_LINKS: " + << "not set" << std::endl); + + } + if ( cpackPackageExecutables ) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "The cpackPackageExecutables: " + << cpackPackageExecutables << "." << std::endl); + cmOStringStream str; + cmOStringStream deleteStr; + std::vector cpackPackageExecutablesVector; + cmSystemTools::ExpandListArgument(cpackPackageExecutables, + cpackPackageExecutablesVector); + if ( cpackPackageExecutablesVector.size() % 2 != 0 ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_PACKAGE_EXECUTABLES should contain pairs of and " + "." << std::endl); + return 0; + } + std::vector::iterator it; + for ( it = cpackPackageExecutablesVector.begin(); + it != cpackPackageExecutablesVector.end(); + ++it ) + { + std::string execName = *it; + ++ it; + std::string linkName = *it; + str << " CreateShortCut \"$SMPROGRAMS\\$STARTMENU_FOLDER\\" + << linkName << ".lnk\" \"$INSTDIR\\bin\\" << execName << ".exe\"" + << std::endl; + deleteStr << " Delete \"$SMPROGRAMS\\$MUI_TEMP\\" << linkName + << ".lnk\"" << std::endl; + // see if CPACK_CREATE_DESKTOP_LINK_ExeName is on + // if so add a desktop link + if(cpackPackageDesktopLinksVector.size() && + std::find(cpackPackageDesktopLinksVector.begin(), + cpackPackageDesktopLinksVector.end(), + execName) + != cpackPackageDesktopLinksVector.end()) + { + str << " StrCmp \"$INSTALL_DESKTOP\" \"1\" 0 +2\n"; + str << " CreateShortCut \"$DESKTOP\\" + << linkName << ".lnk\" \"$INSTDIR\\bin\\" << execName << ".exe\"" + << std::endl; + deleteStr << " StrCmp \"$INSTALL_DESKTOP\" \"1\" 0 +2\n"; + deleteStr << " Delete \"$DESKTOP\\" << linkName + << ".lnk\"" << std::endl; + } + } + this->CreateMenuLinks(str, deleteStr); + this->SetOptionIfNotSet("CPACK_NSIS_CREATE_ICONS", str.str().c_str()); + this->SetOptionIfNotSet("CPACK_NSIS_DELETE_ICONS", + deleteStr.str().c_str()); + } + this->SetOptionIfNotSet("CPACK_NSIS_COMPRESSOR", "lzma"); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +void cmCPackNSISGenerator::CreateMenuLinks( cmOStringStream& str, + cmOStringStream& deleteStr) +{ + const char* cpackMenuLinks + = this->GetOption("CPACK_NSIS_MENU_LINKS"); + if(!cpackMenuLinks) + { + return; + } + cmCPackLogger(cmCPackLog::LOG_DEBUG, "The cpackMenuLinks: " + << cpackMenuLinks << "." << std::endl); + std::vector cpackMenuLinksVector; + cmSystemTools::ExpandListArgument(cpackMenuLinks, + cpackMenuLinksVector); + if ( cpackMenuLinksVector.size() % 2 != 0 ) + { + cmCPackLogger( + cmCPackLog::LOG_ERROR, + "CPACK_PACKAGE_EXECUTABLES should contain pairs of and " + "." << std::endl); + return; + } + std::vector::iterator it; + for ( it = cpackMenuLinksVector.begin(); + it != cpackMenuLinksVector.end(); + ++it ) + { + std::string sourceName = *it; + bool url = false; + if(sourceName.find("http:") == 0) + { + url = true; + } + /* convert / to \\ */ + if(!url) + { + cmSystemTools::ReplaceString(sourceName, "/", "\\"); + } + ++ it; + std::string linkName = *it; + if(!url) + { + str << " CreateShortCut \"$SMPROGRAMS\\$STARTMENU_FOLDER\\" + << linkName << ".lnk\" \"$INSTDIR\\" << sourceName << "\"" + << std::endl; + deleteStr << " Delete \"$SMPROGRAMS\\$MUI_TEMP\\" << linkName + << ".lnk\"" << std::endl; + } + else + { + str << " WriteINIStr \"$SMPROGRAMS\\$STARTMENU_FOLDER\\" + << linkName << ".url\" \"InternetShortcut\" \"URL\" \"" + << sourceName << "\"" + << std::endl; + deleteStr << " Delete \"$SMPROGRAMS\\$MUI_TEMP\\" << linkName + << ".url\"" << std::endl; + } + // see if CPACK_CREATE_DESKTOP_LINK_ExeName is on + // if so add a desktop link + std::string desktop = "CPACK_CREATE_DESKTOP_LINK_"; + desktop += linkName; + if(this->IsSet(desktop.c_str())) + { + str << " StrCmp \"$INSTALL_DESKTOP\" \"1\" 0 +2\n"; + str << " CreateShortCut \"$DESKTOP\\" + << linkName << ".lnk\" \"$INSTDIR\\" << sourceName << "\"" + << std::endl; + deleteStr << " StrCmp \"$INSTALL_DESKTOP\" \"1\" 0 +2\n"; + deleteStr << " Delete \"$DESKTOP\\" << linkName + << ".lnk\"" << std::endl; + } + } +} + +//---------------------------------------------------------------------- +bool cmCPackNSISGenerator::GetListOfSubdirectories(const char* topdir, + std::vector& dirs) +{ + cmsys::Directory dir; + dir.Load(topdir); + size_t fileNum; + for (fileNum = 0; fileNum < dir.GetNumberOfFiles(); ++fileNum) + { + if (strcmp(dir.GetFile(static_cast(fileNum)),".") && + strcmp(dir.GetFile(static_cast(fileNum)),"..")) + { + cmsys_stl::string fullPath = topdir; + fullPath += "/"; + fullPath += dir.GetFile(static_cast(fileNum)); + if(cmsys::SystemTools::FileIsDirectory(fullPath.c_str()) && + !cmsys::SystemTools::FileIsSymlink(fullPath.c_str())) + { + if (!this->GetListOfSubdirectories(fullPath.c_str(), dirs)) + { + return false; + } + } + } + } + dirs.push_back(topdir); + return true; +} diff --git a/CMakeLua/Source/CPack/cmCPackNSISGenerator.h b/CMakeLua/Source/CPack/cmCPackNSISGenerator.h new file mode 100644 index 0000000..f307e6a --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackNSISGenerator.h @@ -0,0 +1,53 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackNSISGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackNSISGenerator_h +#define cmCPackNSISGenerator_h + + +#include "cmCPackGenerator.h" + +/** \class cmCPackNSISGenerator + * \brief A generator for NSIS files + * + * http://people.freebsd.org/~kientzle/libarchive/ + */ +class cmCPackNSISGenerator : public cmCPackGenerator +{ +public: + cmCPackTypeMacro(cmCPackNSISGenerator, cmCPackGenerator); + + /** + * Construct generator + */ + cmCPackNSISGenerator(); + virtual ~cmCPackNSISGenerator(); + +protected: + virtual int InitializeInternal(); + void CreateMenuLinks( cmOStringStream& str, + cmOStringStream& deleteStr); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".exe"; } + virtual const char* GetOutputPostfix() { return "win32"; } + + bool GetListOfSubdirectories(const char* dir, + std::vector& dirs); +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackOSXX11Generator.cxx b/CMakeLua/Source/CPack/cmCPackOSXX11Generator.cxx new file mode 100644 index 0000000..216b2cc --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackOSXX11Generator.cxx @@ -0,0 +1,267 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackOSXX11Generator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/31 12:50:17 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCPackOSXX11Generator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include +#include + +//---------------------------------------------------------------------- +cmCPackOSXX11Generator::cmCPackOSXX11Generator() +{ +} + +//---------------------------------------------------------------------- +cmCPackOSXX11Generator::~cmCPackOSXX11Generator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackOSXX11Generator::CompressFiles(const char* outFileName, + const char* toplevel, + const std::vector& files) +{ + (void) files; // TODO: Fix api to not need files. + (void) toplevel; // TODO: Use toplevel + + const char* cpackPackageExecutables + = this->GetOption("CPACK_PACKAGE_EXECUTABLES"); + if ( cpackPackageExecutables ) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "The cpackPackageExecutables: " + << cpackPackageExecutables << "." << std::endl); + cmOStringStream str; + cmOStringStream deleteStr; + std::vector cpackPackageExecutablesVector; + cmSystemTools::ExpandListArgument(cpackPackageExecutables, + cpackPackageExecutablesVector); + if ( cpackPackageExecutablesVector.size() % 2 != 0 ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_PACKAGE_EXECUTABLES should contain pairs of and " + "." << std::endl); + return 0; + } + std::vector::iterator it; + for ( it = cpackPackageExecutablesVector.begin(); + it != cpackPackageExecutablesVector.end(); + ++it ) + { + std::string cpackExecutableName = *it; + ++ it; + this->SetOptionIfNotSet("CPACK_EXECUTABLE_NAME", + cpackExecutableName.c_str()); + } + } + + // Disk image directories + std::string diskImageDirectory = toplevel; + std::string diskImageBackgroundImageDir + = diskImageDirectory + "/.background"; + + + // App bundle directories + std::string packageDirFileName = toplevel; + packageDirFileName += "/"; + packageDirFileName += this->GetOption("CPACK_PACKAGE_FILE_NAME"); + packageDirFileName += ".app"; + std::string contentsDirectory = packageDirFileName + "/Contents"; + std::string resourcesDirectory = contentsDirectory + "/Resources"; + std::string appDirectory = contentsDirectory + "/MacOS"; + + const char* dir = resourcesDirectory.c_str(); + const char* appdir = appDirectory.c_str(); + const char* contDir = contentsDirectory.c_str(); + const char* iconFile = this->GetOption("CPACK_PACKAGE_ICON"); + if ( iconFile ) + { + std::string iconFileName = cmsys::SystemTools::GetFilenameName( + iconFile); + if ( !cmSystemTools::FileExists(iconFile) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find icon file: " + << iconFile << ". Please check CPACK_PACKAGE_ICON setting." + << std::endl); + return 0; + } + std::string destFileName = resourcesDirectory + "/" + iconFileName; + this->ConfigureFile(iconFile, destFileName.c_str(), true); + this->SetOptionIfNotSet("CPACK_APPLE_GUI_ICON", iconFileName.c_str()); + } + + std::string applicationsLinkName = diskImageDirectory + "/Applications"; + cmSystemTools::CreateSymlink("/Applications", applicationsLinkName.c_str()); + + if ( + !this->CopyResourcePlistFile("VolumeIcon.icns", + diskImageDirectory.c_str(), + ".VolumeIcon.icns", true ) || + !this->CopyResourcePlistFile("DS_Store", diskImageDirectory.c_str(), + ".DS_Store", true ) || + !this->CopyResourcePlistFile("background.png", + diskImageBackgroundImageDir.c_str(), "background.png", true ) || + !this->CopyResourcePlistFile("RuntimeScript", dir) || + !this->CopyResourcePlistFile("OSXX11.Info.plist", contDir, + "Info.plist" ) || + !this->CopyResourcePlistFile("OSXScriptLauncher", appdir, + this->GetOption("CPACK_PACKAGE_FILE_NAME"), true) + ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem copying the resource files" + << std::endl); + return 0; + } + + std::string output; + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/hdiutilOutput.log"; + cmOStringStream dmgCmd; + dmgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM_DISK_IMAGE") + << "\" create -ov -format UDZO -srcfolder \"" + << diskImageDirectory.c_str() + << "\" \"" << outFileName << "\""; + int retVal = 1; + cmCPackLogger(cmCPackLog::LOG_VERBOSE, + "Compress disk image using command: " + << dmgCmd.str().c_str() << std::endl); + bool res = cmSystemTools::RunSingleCommand(dmgCmd.str().c_str(), &output, + &retVal, 0, this->GeneratorVerbose, 0); + if ( !res || retVal ) + { + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << dmgCmd.str().c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running hdiutil command: " + << dmgCmd.str().c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackOSXX11Generator::InitializeInternal() +{ + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "cmCPackOSXX11Generator::Initialize()" << std::endl); + std::vector path; + std::string pkgPath = cmSystemTools::FindProgram("hdiutil", path, false); + if ( pkgPath.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find hdiutil compiler" + << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM_DISK_IMAGE", + pkgPath.c_str()); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +/* +bool cmCPackOSXX11Generator::CopyCreateResourceFile(const char* name) +{ + std::string uname = cmSystemTools::UpperCase(name); + std::string cpackVar = "CPACK_RESOURCE_FILE_" + uname; + const char* inFileName = this->GetOption(cpackVar.c_str()); + if ( !inFileName ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "CPack option: " << cpackVar.c_str() + << " not specified. It should point to " + << (name ? name : "(NULL)") + << ".rtf, " << name + << ".html, or " << name << ".txt file" << std::endl); + return false; + } + if ( !cmSystemTools::FileExists(inFileName) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find " + << (name ? name : "(NULL)") + << " resource file: " << inFileName << std::endl); + return false; + } + std::string ext = cmSystemTools::GetFilenameLastExtension(inFileName); + if ( ext != ".rtfd" && ext != ".rtf" && ext != ".html" && ext != ".txt" ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Bad file extension specified: " + << ext << ". Currently only .rtfd, .rtf, .html, and .txt files allowed." + << std::endl); + return false; + } + + std::string destFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + destFileName += "/Resources/"; + destFileName += name + ext; + + + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Configure file: " + << (inFileName ? inFileName : "(NULL)") + << " to " << destFileName.c_str() << std::endl); + this->ConfigureFile(inFileName, destFileName.c_str()); + return true; +} +*/ + +//---------------------------------------------------------------------- +bool cmCPackOSXX11Generator::CopyResourcePlistFile(const char* name, + const char* dir, const char* outputFileName /* = 0 */, + bool copyOnly /* = false */) +{ + std::string inFName = "CPack."; + inFName += name; + inFName += ".in"; + std::string inFileName = this->FindTemplate(inFName.c_str()); + if ( inFileName.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find input file: " + << inFName << std::endl); + return false; + } + + if ( !outputFileName ) + { + outputFileName = name; + } + + std::string destFileName = dir; + destFileName += "/"; + destFileName += outputFileName; + + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Configure file: " + << inFileName.c_str() << " to " << destFileName.c_str() << std::endl); + this->ConfigureFile(inFileName.c_str(), destFileName.c_str(), copyOnly); + return true; +} + +//---------------------------------------------------------------------- +const char* cmCPackOSXX11Generator::GetPackagingInstallPrefix() +{ + this->InstallPrefix = "/"; + this->InstallPrefix += this->GetOption("CPACK_PACKAGE_FILE_NAME"); + this->InstallPrefix += ".app/Contents/Resources"; + return this->InstallPrefix.c_str(); +} diff --git a/CMakeLua/Source/CPack/cmCPackOSXX11Generator.h b/CMakeLua/Source/CPack/cmCPackOSXX11Generator.h new file mode 100644 index 0000000..5b178f0 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackOSXX11Generator.h @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackOSXX11Generator.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackOSXX11Generator_h +#define cmCPackOSXX11Generator_h + +#include "cmCPackGenerator.h" + +/** \class cmCPackOSXX11Generator + * \brief A generator for OSX X11 modules + * + * Based on Gimp.app + */ +class cmCPackOSXX11Generator : public cmCPackGenerator +{ +public: + cmCPackTypeMacro(cmCPackOSXX11Generator, cmCPackGenerator); + + /** + * Construct generator + */ + cmCPackOSXX11Generator(); + virtual ~cmCPackOSXX11Generator(); + +protected: + virtual int InitializeInternal(); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetPackagingInstallPrefix(); + virtual const char* GetOutputExtension() { return ".dmg"; } + + //bool CopyCreateResourceFile(const char* name, const char* dir); + bool CopyResourcePlistFile(const char* name, const char* dir, + const char* outputFileName = 0, bool copyOnly = false); + std::string InstallPrefix; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.cxx b/CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.cxx new file mode 100644 index 0000000..92c5cf7 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.cxx @@ -0,0 +1,311 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackPackageMakerGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/12/17 20:27:30 $ + Version: $Revision: 1.22 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCPackPackageMakerGenerator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include +#include + +//---------------------------------------------------------------------- +cmCPackPackageMakerGenerator::cmCPackPackageMakerGenerator() +{ + this->PackageMakerVersion = 0.0; +} + +//---------------------------------------------------------------------- +cmCPackPackageMakerGenerator::~cmCPackPackageMakerGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackPackageMakerGenerator::CompressFiles(const char* outFileName, + const char* toplevel, + const std::vector& files) +{ + (void) files; // TODO: Fix api to not need files. + (void) toplevel; // TODO: Use toplevel + // Create directory structure + std::string resDir = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + resDir += "/Resources"; + std::string preflightDirName = resDir + "/PreFlight"; + std::string postflightDirName = resDir + "/PostFlight"; + + if ( !cmsys::SystemTools::MakeDirectory(preflightDirName.c_str()) + || !cmsys::SystemTools::MakeDirectory(postflightDirName.c_str()) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem creating installer directories: " + << preflightDirName.c_str() << " and " + << postflightDirName.c_str() << std::endl); + return 0; + } + + if ( !this->CopyCreateResourceFile("License") + || !this->CopyCreateResourceFile("ReadMe") + || !this->CopyCreateResourceFile("Welcome") + || !this->CopyResourcePlistFile("Info.plist") + || !this->CopyResourcePlistFile("Description.plist") ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem copying the resource files" + << std::endl); + return 0; + } + + std::string packageDirFileName + = this->GetOption("CPACK_TEMPORARY_DIRECTORY"); + packageDirFileName += ".pkg"; + + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/PackageMakerOutput.log"; + cmOStringStream pkgCmd; + pkgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM") + << "\" -build -p \"" << packageDirFileName << "\" -f \"" + << this->GetOption("CPACK_TEMPORARY_DIRECTORY") + << "\" -r \"" << this->GetOption("CPACK_TOPLEVEL_DIRECTORY") + << "/Resources\" -i \"" + << this->GetOption("CPACK_TOPLEVEL_DIRECTORY") << "/Info.plist\" -d \"" + << this->GetOption("CPACK_TOPLEVEL_DIRECTORY") << "/Description.plist\""; + if ( this->PackageMakerVersion > 2.0 ) + { + pkgCmd << " -v"; + } + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Execute: " << pkgCmd.str().c_str() + << std::endl); + std::string output; + int retVal = 1; + //bool res = cmSystemTools::RunSingleCommand(pkgCmd.str().c_str(), &output, + //&retVal, 0, this->GeneratorVerbose, 0); + bool res = true; + retVal = system(pkgCmd.str().c_str()); + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Done running package maker" + << std::endl); + if ( !res || retVal ) + { + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << pkgCmd.str().c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem running PackageMaker command: " << pkgCmd.str().c_str() + << std::endl << "Please check " << tmpFile.c_str() << " for errors" + << std::endl); + return 0; + } + // sometimes the pkgCmd finishes but the directory is not yet + // created, so try 10 times to see if it shows up + int tries = 10; + while(tries > 0 && + !cmSystemTools::FileExists(packageDirFileName.c_str())) + { + cmSystemTools::Delay(500); + tries--; + } + if(!cmSystemTools::FileExists(packageDirFileName.c_str())) + { + cmCPackLogger( + cmCPackLog::LOG_ERROR, + "Problem running PackageMaker command: " << pkgCmd.str().c_str() + << std::endl << "Package not created: " << packageDirFileName.c_str() + << std::endl); + } + tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/hdiutilOutput.log"; + cmOStringStream dmgCmd; + dmgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM_DISK_IMAGE") + << "\" create -ov -format UDZO -srcfolder \"" << packageDirFileName + << "\" \"" << outFileName << "\""; + res = cmSystemTools::RunSingleCommand(dmgCmd.str().c_str(), &output, + &retVal, 0, this->GeneratorVerbose, 0); + if ( !res || retVal ) + { + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << dmgCmd.str().c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running hdiutil command: " + << dmgCmd.str().c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackPackageMakerGenerator::InitializeInternal() +{ + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "cmCPackPackageMakerGenerator::Initialize()" << std::endl); + this->SetOptionIfNotSet("CPACK_PACKAGING_INSTALL_PREFIX", "/usr"); + std::vector path; + std::string pkgPath + = "/Developer/Applications/Utilities/PackageMaker.app/Contents"; + std::string versionFile = pkgPath + "/version.plist"; + if ( !cmSystemTools::FileExists(versionFile.c_str()) ) + { + pkgPath = "/Developer/Applications/PackageMaker.app/Contents"; + std::string newVersionFile = pkgPath + "/version.plist"; + if ( !cmSystemTools::FileExists(newVersionFile.c_str()) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot find PackageMaker compiler version file: " + << versionFile.c_str() << " or " << newVersionFile.c_str() + << std::endl); + return 0; + } + versionFile = newVersionFile; + } + std::ifstream ifs(versionFile.c_str()); + if ( !ifs ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot open PackageMaker compiler version file" << std::endl); + return 0; + } + // Check the PackageMaker version + cmsys::RegularExpression rexKey("CFBundleShortVersionString"); + cmsys::RegularExpression rexVersion("([0-9]+.[0-9.]+)"); + std::string line; + bool foundKey = false; + while ( cmSystemTools::GetLineFromStream(ifs, line) ) + { + if ( rexKey.find(line) ) + { + foundKey = true; + break; + } + } + if ( !foundKey ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot find CFBundleShortVersionString in the PackageMaker compiler " + "version file" << std::endl); + return 0; + } + if ( !cmSystemTools::GetLineFromStream(ifs, line) || + !rexVersion.find(line) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem reading the PackageMaker compiler version file: " + << versionFile.c_str() << std::endl); + return 0; + } + this->PackageMakerVersion = atof(rexVersion.match(1).c_str()); + if ( this->PackageMakerVersion < 1.0 ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Require PackageMaker 1.0 or higher" + << std::endl); + return 0; + } + cmCPackLogger(cmCPackLog::LOG_DEBUG, "PackageMaker version is: " + << this->PackageMakerVersion << std::endl); + + pkgPath += "/MacOS"; + path.push_back(pkgPath); + pkgPath = cmSystemTools::FindProgram("PackageMaker", path, false); + if ( pkgPath.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find PackageMaker compiler" + << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM", pkgPath.c_str()); + pkgPath = cmSystemTools::FindProgram("hdiutil", path, false); + if ( pkgPath.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find hdiutil compiler" + << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM_DISK_IMAGE", + pkgPath.c_str()); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +bool cmCPackPackageMakerGenerator::CopyCreateResourceFile(const char* name) +{ + std::string uname = cmSystemTools::UpperCase(name); + std::string cpackVar = "CPACK_RESOURCE_FILE_" + uname; + const char* inFileName = this->GetOption(cpackVar.c_str()); + if ( !inFileName ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "CPack option: " << cpackVar.c_str() + << " not specified. It should point to " + << (name ? name : "(NULL)") + << ".rtf, " << name + << ".html, or " << name << ".txt file" << std::endl); + return false; + } + if ( !cmSystemTools::FileExists(inFileName) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find " + << (name ? name : "(NULL)") + << " resource file: " << inFileName << std::endl); + return false; + } + std::string ext = cmSystemTools::GetFilenameLastExtension(inFileName); + if ( ext != ".rtfd" && ext != ".rtf" && ext != ".html" && ext != ".txt" ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Bad file extension specified: " + << ext << ". Currently only .rtfd, .rtf, .html, and .txt files allowed." + << std::endl); + return false; + } + + std::string destFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + destFileName += "/Resources/"; + destFileName += name + ext; + + + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Configure file: " + << (inFileName ? inFileName : "(NULL)") + << " to " << destFileName.c_str() << std::endl); + this->ConfigureFile(inFileName, destFileName.c_str()); + return true; +} + +bool cmCPackPackageMakerGenerator::CopyResourcePlistFile(const char* name) +{ + std::string inFName = "CPack."; + inFName += name; + inFName += ".in"; + std::string inFileName = this->FindTemplate(inFName.c_str()); + if ( inFileName.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find input file: " + << inFName << std::endl); + return false; + } + + std::string destFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + destFileName += "/"; + destFileName += name; + + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Configure file: " + << inFileName.c_str() << " to " << destFileName.c_str() << std::endl); + this->ConfigureFile(inFileName.c_str(), destFileName.c_str()); + return true; +} diff --git a/CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.h b/CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.h new file mode 100644 index 0000000..b1a0112 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackPackageMakerGenerator.h @@ -0,0 +1,54 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackPackageMakerGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackPackageMakerGenerator_h +#define cmCPackPackageMakerGenerator_h + + +#include "cmCPackGenerator.h" + +/** \class cmCPackPackageMakerGenerator + * \brief A generator for PackageMaker files + * + * http://developer.apple.com/documentation/Darwin + * /Reference/ManPages/man1/packagemaker.1.html + */ +class cmCPackPackageMakerGenerator : public cmCPackGenerator +{ +public: + cmCPackTypeMacro(cmCPackPackageMakerGenerator, cmCPackGenerator); + + /** + * Construct generator + */ + cmCPackPackageMakerGenerator(); + virtual ~cmCPackPackageMakerGenerator(); + +protected: + virtual int InitializeInternal(); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".dmg"; } + virtual const char* GetOutputPostfix() { return "darwin"; } + + bool CopyCreateResourceFile(const char* name); + bool CopyResourcePlistFile(const char* name); + + double PackageMakerVersion; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackRPMGenerator.cxx b/CMakeLua/Source/CPack/cmCPackRPMGenerator.cxx new file mode 100644 index 0000000..ffd568b --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackRPMGenerator.cxx @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackRPMGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/31 12:50:17 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCPackRPMGenerator.h" +#include "cmCPackLog.h" + +//---------------------------------------------------------------------- +cmCPackRPMGenerator::cmCPackRPMGenerator() +{ +} + +//---------------------------------------------------------------------- +cmCPackRPMGenerator::~cmCPackRPMGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackRPMGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_PACKAGING_INSTALL_PREFIX", "/usr"); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackRPMGenerator::CompressFiles(const char* /*outFileName*/, + const char* /*toplevel*/, + const std::vector& /*files*/) +{ + this->ReadListFile("CPackRPM.cmake"); + if (!this->IsSet("RPMBUILD_EXECUTABLE")) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find rpmbuild" << std::endl); + return 0; + } + return 1; +} + + diff --git a/CMakeLua/Source/CPack/cmCPackRPMGenerator.h b/CMakeLua/Source/CPack/cmCPackRPMGenerator.h new file mode 100644 index 0000000..c596781 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackRPMGenerator.h @@ -0,0 +1,51 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackRPMGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackRPMGenerator_h +#define cmCPackRPMGenerator_h + + +#include "cmCPackGenerator.h" + +/** \class cmCPackRPMGenerator + * \brief A generator for RPM packages + * The idea of the CPack RPM generator is to use + * as minimal C++ code as possible. + * Ideally the C++ part of the CPack RPM generator + * will only 'execute' (aka ->ReadListFile) several + * CMake macros files. + */ +class cmCPackRPMGenerator : public cmCPackGenerator +{ +public: + cmCPackTypeMacro(cmCPackRPMGenerator, cmCPackGenerator); + + /** + * Construct generator + */ + cmCPackRPMGenerator(); + virtual ~cmCPackRPMGenerator(); + +protected: + virtual int InitializeInternal(); + virtual int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".rpm"; } + +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackSTGZGenerator.cxx b/CMakeLua/Source/CPack/cmCPackSTGZGenerator.cxx new file mode 100644 index 0000000..571b20b --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackSTGZGenerator.cxx @@ -0,0 +1,133 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackSTGZGenerator.cxx,v $ + Language: C++ + Date: $Date: 2006/05/12 18:44:24 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackSTGZGenerator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmCPackLog.h" + +#include +#include +#include + +//---------------------------------------------------------------------- +cmCPackSTGZGenerator::cmCPackSTGZGenerator() +{ +} + +//---------------------------------------------------------------------- +cmCPackSTGZGenerator::~cmCPackSTGZGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackSTGZGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "0"); + + std::string inFile = this->FindTemplate("CPack.STGZ_Header.sh.in"); + if ( inFile.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find template file: " + << inFile.c_str() << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_STGZ_HEADER_FILE", inFile.c_str()); + this->SetOptionIfNotSet("CPACK_AT_SIGN", "@"); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackSTGZGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + if ( !this->Superclass::CompressFiles(outFileName, toplevel, files) ) + { + return 0; + } + return cmSystemTools::SetPermissions(outFileName, +#if defined( _MSC_VER ) || defined( __MINGW32__ ) + S_IREAD | S_IWRITE | S_IEXEC +#elif defined( __BORLANDC__ ) + S_IRUSR | S_IWUSR | S_IXUSR +#else + S_IRUSR | S_IWUSR | S_IXUSR | + S_IRGRP | S_IWGRP | S_IXGRP | + S_IROTH | S_IWOTH | S_IXOTH +#endif + ); +} + +//---------------------------------------------------------------------- +int cmCPackSTGZGenerator::GenerateHeader(std::ostream* os) +{ + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Writing header" << std::endl); + cmsys_ios::ostringstream str; + int counter = 0; + + std::string inLicFile = this->GetOption("CPACK_RESOURCE_FILE_LICENSE"); + std::string line; + std::ifstream ilfs(inLicFile.c_str()); + std::string licenseText; + while ( cmSystemTools::GetLineFromStream(ilfs, line) ) + { + licenseText += line + "\n"; + } + this->SetOptionIfNotSet("CPACK_RESOURCE_FILE_LICENSE_CONTENT", + licenseText.c_str()); + + const char headerLengthTag[] = "###CPACK_HEADER_LENGTH###"; + + // Create the header + std::string inFile = this->GetOption("CPACK_STGZ_HEADER_FILE"); + std::ifstream ifs(inFile.c_str()); + std::string packageHeaderText; + while ( cmSystemTools::GetLineFromStream(ifs, line) ) + { + packageHeaderText += line + "\n"; + } + + // Configure in the values + std::string res; + this->ConfigureString(packageHeaderText, res); + + // Count the lines + const char* ptr = res.c_str(); + while ( *ptr ) + { + if ( *ptr == '\n' ) + { + counter ++; + } + ++ptr; + } + counter ++; + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "Number of lines: " << counter << std::endl); + char buffer[1024]; + sprintf(buffer, "%d", counter); + cmSystemTools::ReplaceString(res, headerLengthTag, buffer); + + // Write in file + *os << res.c_str(); + return this->Superclass::GenerateHeader(os); +} diff --git a/CMakeLua/Source/CPack/cmCPackSTGZGenerator.h b/CMakeLua/Source/CPack/cmCPackSTGZGenerator.h new file mode 100644 index 0000000..38712eb --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackSTGZGenerator.h @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackSTGZGenerator.h,v $ + Language: C++ + Date: $Date: 2007/02/02 19:40:26 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackSTGZGenerator_h +#define cmCPackSTGZGenerator_h + + +#include "cmCPackTGZGenerator.h" + +/** \class cmCPackSTGZGenerator + * \brief A generator for Self extractable TGZ files + * + */ +class cmCPackSTGZGenerator : public cmCPackTGZGenerator +{ +public: + cmCPackTypeMacro(cmCPackSTGZGenerator, cmCPackTGZGenerator); + + /** + * Construct generator + */ + cmCPackSTGZGenerator(); + virtual ~cmCPackSTGZGenerator(); + +protected: + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual int InitializeInternal(); + int GenerateHeader(std::ostream* os); + virtual const char* GetOutputExtension() { return ".sh"; } +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackTGZGenerator.cxx b/CMakeLua/Source/CPack/cmCPackTGZGenerator.cxx new file mode 100644 index 0000000..51c71a6 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackTGZGenerator.cxx @@ -0,0 +1,298 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackTGZGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/09/27 18:44:10 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackTGZGenerator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include +#include +#include +#include // auto_ptr +#include +#include + +//---------------------------------------------------------------------- +class cmCPackTGZGeneratorForward +{ + public: + static int GenerateHeader(cmCPackTGZGenerator* gg, std::ostream* os) + { + return gg->GenerateHeader(os); + } +}; + +//---------------------------------------------------------------------- +cmCPackTGZGenerator::cmCPackTGZGenerator() +{ + this->Compress = true; +} + +//---------------------------------------------------------------------- +cmCPackTGZGenerator::~cmCPackTGZGenerator() +{ +} + +static const size_t cmCPackTGZ_Data_BlockSize = 16384; + +//---------------------------------------------------------------------- +class cmCPackTGZ_Data +{ +public: + cmCPackTGZ_Data(cmCPackTGZGenerator* gen, bool compress) : + OutputStream(0), Generator(gen), + CompressionLevel(Z_DEFAULT_COMPRESSION), + Compress(compress) {} + std::ostream* OutputStream; + cmCPackTGZGenerator* Generator; + char CompressedBuffer[cmCPackTGZ_Data_BlockSize]; + int CompressionLevel; + z_stream ZLibStream; + uLong CRC; + bool Compress; +}; + +//---------------------------------------------------------------------- +extern "C" { + int cmCPackTGZ_Data_Open(void *client_data, const char* name, int oflags, + mode_t mode); + ssize_t cmCPackTGZ_Data_Write(void *client_data, void *buff, size_t n); + int cmCPackTGZ_Data_Close(void *client_data); +} + + +//---------------------------------------------------------------------- +int cmCPackTGZ_Data_Open(void *client_data, const char* pathname, + int, mode_t) +{ + cmCPackTGZ_Data *mydata = (cmCPackTGZ_Data*)client_data; + + if ( mydata->Compress ) + { + mydata->ZLibStream.zalloc = Z_NULL; + mydata->ZLibStream.zfree = Z_NULL; + mydata->ZLibStream.opaque = Z_NULL; + int strategy = Z_DEFAULT_STRATEGY; + if ( deflateInit2(&mydata->ZLibStream, mydata->CompressionLevel, + Z_DEFLATED, -MAX_WBITS, 8, strategy) != Z_OK ) + { + return -1; + } + } + + cmGeneratedFileStream* gf = new cmGeneratedFileStream; + // Open binary + gf->Open(pathname, false, true); + mydata->OutputStream = gf; + if ( !*mydata->OutputStream ) + { + return -1; + } + + if ( !cmCPackTGZGeneratorForward::GenerateHeader(mydata->Generator,gf)) + { + return -1; + } + + if ( mydata->Compress ) + { + mydata->CRC = crc32(0L, Z_NULL, 0); + } + + return 0; +} + +//---------------------------------------------------------------------- +ssize_t cmCPackTGZ_Data_Write(void *client_data, void *buff, size_t n) +{ + cmCPackTGZ_Data *mydata = (cmCPackTGZ_Data*)client_data; + + if ( mydata->Compress ) + { + mydata->ZLibStream.avail_in = static_cast(n); + mydata->ZLibStream.next_in = reinterpret_cast(buff); + + do { + mydata->ZLibStream.avail_out = cmCPackTGZ_Data_BlockSize; + mydata->ZLibStream.next_out + = reinterpret_cast(mydata->CompressedBuffer); + // no bad return value + int ret = deflate(&mydata->ZLibStream, (n?Z_NO_FLUSH:Z_FINISH)); + if(ret == Z_STREAM_ERROR) + { + return 0; + } + + size_t compressedSize + = cmCPackTGZ_Data_BlockSize - mydata->ZLibStream.avail_out; + + mydata->OutputStream->write( + reinterpret_cast(mydata->CompressedBuffer), + compressedSize); + } while ( mydata->ZLibStream.avail_out == 0 ); + + if ( !*mydata->OutputStream ) + { + return 0; + } + if ( n ) + { + mydata->CRC = crc32(mydata->CRC, reinterpret_cast(buff), + static_cast(n)); + } + } + else + { + mydata->OutputStream->write(reinterpret_cast(buff), n); + } + return n; +} + +//---------------------------------------------------------------------- +int cmCPackTGZ_Data_Close(void *client_data) +{ + cmCPackTGZ_Data *mydata = (cmCPackTGZ_Data*)client_data; + + if ( mydata->Compress ) + { + cmCPackTGZ_Data_Write(client_data, 0, 0); + + char buffer[8]; + int n; + uLong x = mydata->CRC; + for (n = 0; n < 4; n++) { + buffer[n] = (int)(x & 0xff); + x >>= 8; + } + x = mydata->ZLibStream.total_in; + for (n = 0; n < 4; n++) { + buffer[n+4] = (int)(x & 0xff); + x >>= 8; + } + + mydata->OutputStream->write(buffer, 8); + (void)deflateEnd(&mydata->ZLibStream); + } + delete mydata->OutputStream; + mydata->OutputStream = 0; + return (0); +} + +//---------------------------------------------------------------------- +int cmCPackTGZGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "1"); + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackTGZGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Toplevel: " + << (toplevel ? toplevel : "(NULL)") << std::endl); + cmCPackTGZ_Data mydata(this, this->Compress); + TAR *t; + char buf[TAR_MAXPATHLEN]; + char pathname[TAR_MAXPATHLEN]; + + tartype_t gztype = { + (openfunc_t)cmCPackTGZ_Data_Open, + (closefunc_t)cmCPackTGZ_Data_Close, + (readfunc_t)0, + (writefunc_t)cmCPackTGZ_Data_Write, + &mydata + }; + + // Ok, this libtar is not const safe. for now use auto_ptr hack + char* realName = new char[ strlen(outFileName) + 1 ]; + std::auto_ptr realNamePtr(realName); + strcpy(realName, outFileName); + int flags = O_WRONLY | O_CREAT; + int options = 0; + if(this->GeneratorVerbose) + { + options |= TAR_VERBOSE; + } +#ifdef __CYGWIN__ + options |= TAR_GNU; +#endif + if (tar_open(&t, realName, + &gztype, + flags, 0644, + options) == -1) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_open(): " + << strerror(errno) << std::endl); + return 0; + } + + std::vector::const_iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt ) + { + std::string rp = cmSystemTools::RelativePath(toplevel, fileIt->c_str()); + strncpy(pathname, fileIt->c_str(), sizeof(pathname)); + pathname[sizeof(pathname)-1] = 0; + strncpy(buf, rp.c_str(), sizeof(buf)); + buf[sizeof(buf)-1] = 0; + if (tar_append_tree(t, pathname, buf) != 0) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem with tar_append_tree(\"" << buf << "\", \"" + << pathname << "\"): " + << strerror(errno) << std::endl); + tar_close(t); + return 0; + } + } + if (tar_append_eof(t) != 0) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_append_eof(): " + << strerror(errno) << std::endl); + tar_close(t); + return 0; + } + + if (tar_close(t) != 0) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_close(): " + << strerror(errno) << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackTGZGenerator::GenerateHeader(std::ostream* os) +{ + if ( this->Compress ) + { + const int gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */ + char header[11]; + sprintf(header, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], + Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, + 3 /* zlib os code for UNIX, not really used anyway */); + os->write(header, 10); + } + return 1; +} diff --git a/CMakeLua/Source/CPack/cmCPackTGZGenerator.h b/CMakeLua/Source/CPack/cmCPackTGZGenerator.h new file mode 100644 index 0000000..abb668b --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackTGZGenerator.h @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackTGZGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackTGZGenerator_h +#define cmCPackTGZGenerator_h + +#include "cmCPackGenerator.h" + +class cmCPackTGZGeneratorForward; + +/** \class cmCPackTGZGenerator + * \brief A generator for TGZ files + * + * http://people.freebsd.org/~kientzle/libarchive/ + */ +class cmCPackTGZGenerator : public cmCPackGenerator +{ +public: + friend class cmCPackTGZGeneratorForward; + cmCPackTypeMacro(cmCPackTGZGenerator, cmCPackGenerator); + + /** + * Construct generator + */ + cmCPackTGZGenerator(); + virtual ~cmCPackTGZGenerator(); + +protected: + virtual int InitializeInternal(); + virtual int GenerateHeader(std::ostream* os); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".tar.gz"; } + + bool Compress; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackTarBZip2Generator.cxx b/CMakeLua/Source/CPack/cmCPackTarBZip2Generator.cxx new file mode 100644 index 0000000..b3f72ce --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackTarBZip2Generator.cxx @@ -0,0 +1,180 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackTarBZip2Generator.cxx,v $ + Language: C++ + Date: $Date: 2007/02/02 21:52:20 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackTarBZip2Generator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include + +// Includes needed for implementation of RenameFile. This is not in +// system tools because it is not implemented robustly enough to move +// files across directories. +#ifdef _WIN32 +# include +# include +#endif + +//---------------------------------------------------------------------- +cmCPackTarBZip2Generator::cmCPackTarBZip2Generator() +{ + this->Compress = false; +} + +//---------------------------------------------------------------------- +cmCPackTarBZip2Generator::~cmCPackTarBZip2Generator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackTarBZip2Generator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "1"); + std::vector path; + std::string pkgPath = cmSystemTools::FindProgram("bzip2", path, false); + if ( pkgPath.empty() ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find BZip2" << std::endl); + return 0; + } + this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM", pkgPath.c_str()); + cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Found Compress program: " + << pkgPath.c_str() + << std::endl); + + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackTarBZip2Generator::BZip2File(const char* packageDirFileName) +{ + int retVal = 0; + cmOStringStream dmgCmd1; + dmgCmd1 << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM") + << "\" \"" << packageDirFileName + << "\""; + retVal = -1; + std::string output; + int res = cmSystemTools::RunSingleCommand(dmgCmd1.str().c_str(), &output, + &retVal, 0, this->GeneratorVerbose, 0); + if ( !res || retVal ) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/CompressBZip2.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << dmgCmd1.str().c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running BZip2 command: " + << dmgCmd1.str().c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackTarBZip2Generator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + std::string packageDirFileName + = this->GetOption("CPACK_TEMPORARY_DIRECTORY"); + packageDirFileName += ".tar"; + std::string output; + if ( !this->Superclass::CompressFiles(packageDirFileName.c_str(), + toplevel, files) ) + { + return 0; + } + + if(!this->BZip2File(packageDirFileName.c_str())) + { + return 0; + } + + std::string compressOutFile = packageDirFileName + ".bz2"; + if ( !cmSystemTools::SameFile(compressOutFile.c_str(), outFileName ) ) + { + if ( !this->RenameFile(compressOutFile.c_str(), outFileName) ) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem renaming: \"" + << compressOutFile.c_str() << "\" to \"" + << (outFileName ? outFileName : "(NULL)") << std::endl); + return 0; + } + } + + return 1; +} + +//---------------------------------------------------------------------------- +int cmCPackTarBZip2Generator::RenameFile(const char* oldname, + const char* newname) +{ +#ifdef _WIN32 + /* On Windows the move functions will not replace existing files. + Check if the destination exists. */ + struct stat newFile; + if(stat(newname, &newFile) == 0) + { + /* The destination exists. We have to replace it carefully. The + MoveFileEx function does what we need but is not available on + Win9x. */ + OSVERSIONINFO osv; + DWORD attrs; + + /* Make sure the destination is not read only. */ + attrs = GetFileAttributes(newname); + if(attrs & FILE_ATTRIBUTE_READONLY) + { + SetFileAttributes(newname, attrs & ~FILE_ATTRIBUTE_READONLY); + } + + /* Check the windows version number. */ + osv.dwOSVersionInfoSize = sizeof(osv); + GetVersionEx(&osv); + if(osv.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) + { + /* This is Win9x. There is no MoveFileEx implementation. We + cannot quite rename the file atomically. Just delete the + destination and then move the file. */ + DeleteFile(newname); + return MoveFile(oldname, newname); + } + else + { + /* This is not Win9x. Use the MoveFileEx implementation. */ + return MoveFileEx(oldname, newname, MOVEFILE_REPLACE_EXISTING); + } + } + else + { + /* The destination does not exist. Just move the file. */ + return MoveFile(oldname, newname); + } +#else + /* On UNIX we have an OS-provided call to do this atomically. */ + return rename(oldname, newname) == 0; +#endif +} + diff --git a/CMakeLua/Source/CPack/cmCPackTarBZip2Generator.h b/CMakeLua/Source/CPack/cmCPackTarBZip2Generator.h new file mode 100644 index 0000000..6217832 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackTarBZip2Generator.h @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackTarBZip2Generator.h,v $ + Language: C++ + Date: $Date: 2007/02/02 19:40:26 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackTarBZip2Generator_h +#define cmCPackTarBZip2Generator_h + +#include "cmCPackTGZGenerator.h" + +/** \class cmCPackTarBZip2Generator + * \brief A generator for TarBZip2 files + */ +class cmCPackTarBZip2Generator : public cmCPackTGZGenerator +{ +public: + friend class cmCPackTarBZip2GeneratorForward; + cmCPackTypeMacro(cmCPackTarBZip2Generator, cmCPackTGZGenerator); + + /** + * Construct generator + */ + cmCPackTarBZip2Generator(); + virtual ~cmCPackTarBZip2Generator(); + +protected: + virtual int InitializeInternal(); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".tar.bz2"; } + int BZip2File(const char* filename); + int RenameFile(const char* oldname, const char* newname); +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackTarCompressGenerator.cxx b/CMakeLua/Source/CPack/cmCPackTarCompressGenerator.cxx new file mode 100644 index 0000000..70e5a29 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackTarCompressGenerator.cxx @@ -0,0 +1,255 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackTarCompressGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/07/31 02:51:21 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackTarCompressGenerator.h" + +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include +#include +#include +#include // auto_ptr +#include +#include + +//---------------------------------------------------------------------- +class cmCPackTarCompressGeneratorForward +{ +public: + static int GenerateHeader(cmCPackTarCompressGenerator* gg, std::ostream* os) + { + return gg->GenerateHeader(os); + } +}; + +//---------------------------------------------------------------------- +cmCPackTarCompressGenerator::cmCPackTarCompressGenerator() +{ +} + +//---------------------------------------------------------------------- +cmCPackTarCompressGenerator::~cmCPackTarCompressGenerator() +{ +} + +//---------------------------------------------------------------------- +class cmCPackTarCompress_Data +{ +public: + cmCPackTarCompress_Data(cmCPackTarCompressGenerator* gen) : + OutputStream(0), Generator(gen) {} + std::ostream* OutputStream; + cmCPackTarCompressGenerator* Generator; + cmcompress_stream CMCompressStream; +}; + +//---------------------------------------------------------------------- +extern "C" { + // For cmTar + int cmCPackTarCompress_Data_Open(void *client_data, const char* name, + int oflags, mode_t mode); + ssize_t cmCPackTarCompress_Data_Write(void *client_data, void *buff, + size_t n); + int cmCPackTarCompress_Data_Close(void *client_data); + + // For cmCompress + int cmCPackTarCompress_Compress_Output(void* cdata, const char* data, + int len); +} + + +//---------------------------------------------------------------------- +int cmCPackTarCompress_Data_Open(void *client_data, const char* pathname, + int, mode_t) +{ + cmCPackTarCompress_Data *mydata = (cmCPackTarCompress_Data*)client_data; + + if ( !cmcompress_compress_initialize(&mydata->CMCompressStream) ) + { + return -1; + } + + mydata->CMCompressStream.client_data = mydata; + mydata->CMCompressStream.output_stream = cmCPackTarCompress_Compress_Output; + + cmGeneratedFileStream* gf = new cmGeneratedFileStream; + // Open binary + gf->Open(pathname, false, true); + mydata->OutputStream = gf; + if ( !*mydata->OutputStream ) + { + return -1; + } + + if ( !cmcompress_compress_start(&mydata->CMCompressStream) ) + { + return -1; + } + + + if ( !cmCPackTarCompressGeneratorForward::GenerateHeader( + mydata->Generator,gf)) + { + return -1; + } + + return 0; +} + +//---------------------------------------------------------------------- +ssize_t cmCPackTarCompress_Data_Write(void *client_data, void *buff, size_t n) +{ + cmCPackTarCompress_Data *mydata = (cmCPackTarCompress_Data*)client_data; + + if ( !cmcompress_compress(&mydata->CMCompressStream, buff, n) ) + { + return 0; + } + return n; +} + +//---------------------------------------------------------------------- +int cmCPackTarCompress_Data_Close(void *client_data) +{ + cmCPackTarCompress_Data *mydata = (cmCPackTarCompress_Data*)client_data; + + if ( !cmcompress_compress_finalize(&mydata->CMCompressStream) ) + { + delete mydata->OutputStream; + return -1; + } + + delete mydata->OutputStream; + mydata->OutputStream = 0; + return (0); +} + +//---------------------------------------------------------------------- +int cmCPackTarCompressGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "1"); + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackTarCompressGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + cmCPackLogger(cmCPackLog::LOG_DEBUG, "Toplevel: " + << (toplevel ? toplevel : "(NULL)") << std::endl); + cmCPackTarCompress_Data mydata(this); + TAR *t; + char buf[TAR_MAXPATHLEN]; + char pathname[TAR_MAXPATHLEN]; + + tartype_t compressType = { + (openfunc_t)cmCPackTarCompress_Data_Open, + (closefunc_t)cmCPackTarCompress_Data_Close, + (readfunc_t)0, + (writefunc_t)cmCPackTarCompress_Data_Write, + &mydata + }; + + // Ok, this libtar is not const safe. for now use auto_ptr hack + char* realName = new char[ strlen(outFileName) + 1 ]; + std::auto_ptr realNamePtr(realName); + strcpy(realName, outFileName); + int flags = O_WRONLY | O_CREAT; + int options = 0; + if(this->GeneratorVerbose) + { + options |= TAR_VERBOSE; + } +#ifdef __CYGWIN__ + options |= TAR_GNU; +#endif + if (tar_open(&t, realName, + &compressType, + flags, 0644, + options) == -1) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_open(): " + << strerror(errno) << std::endl); + return 0; + } + + std::vector::const_iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt ) + { + std::string rp = cmSystemTools::RelativePath(toplevel, fileIt->c_str()); + strncpy(pathname, fileIt->c_str(), sizeof(pathname)); + pathname[sizeof(pathname)-1] = 0; + strncpy(buf, rp.c_str(), sizeof(buf)); + buf[sizeof(buf)-1] = 0; + if (tar_append_tree(t, pathname, buf) != 0) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Problem with tar_append_tree(\"" << buf << "\", \"" + << pathname << "\"): " + << strerror(errno) << std::endl); + tar_close(t); + return 0; + } + } + if (tar_append_eof(t) != 0) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_append_eof(): " + << strerror(errno) << std::endl); + tar_close(t); + return 0; + } + + if (tar_close(t) != 0) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_close(): " + << strerror(errno) << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCPackTarCompress_Compress_Output(void* client_data, + const char* data, int data_length) +{ + if(!client_data) + { + return 0; + } + cmcompress_stream *cstream = static_cast(client_data); + cmCPackTarCompress_Data *mydata + = static_cast(cstream->client_data); + if ( !mydata->OutputStream ) + { + return 0; + } + mydata->OutputStream->write(data, data_length); + return data_length; +} + +//---------------------------------------------------------------------- +int cmCPackTarCompressGenerator::GenerateHeader(std::ostream* os) +{ + (void)os; + return 1; +} diff --git a/CMakeLua/Source/CPack/cmCPackTarCompressGenerator.h b/CMakeLua/Source/CPack/cmCPackTarCompressGenerator.h new file mode 100644 index 0000000..0bcd5c4 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackTarCompressGenerator.h @@ -0,0 +1,48 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackTarCompressGenerator.h,v $ + Language: C++ + Date: $Date: 2007/02/02 19:40:26 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackTarCompressGenerator_h +#define cmCPackTarCompressGenerator_h + +#include "cmCPackTGZGenerator.h" + +/** \class cmCPackTarCompressGenerator + * \brief A generator for TarCompress files + */ +class cmCPackTarCompressGenerator : public cmCPackTGZGenerator +{ +public: + friend class cmCPackTarCompressGeneratorForward; + cmCPackTypeMacro(cmCPackTarCompressGenerator, cmCPackTGZGenerator); + + /** + * Construct generator + */ + cmCPackTarCompressGenerator(); + virtual ~cmCPackTarCompressGenerator(); + +protected: + virtual int InitializeInternal(); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".tar.Z"; } + + int RenameFile(const char* oldname, const char* newname); + int GenerateHeader(std::ostream* os); +}; + +#endif diff --git a/CMakeLua/Source/CPack/cmCPackZIPGenerator.cxx b/CMakeLua/Source/CPack/cmCPackZIPGenerator.cxx new file mode 100644 index 0000000..9127e24 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackZIPGenerator.cxx @@ -0,0 +1,103 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackZIPGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCPackZIPGenerator.h" + +#include "cmSystemTools.h" +#include "cmGeneratedFileStream.h" +#include "cmCPackLog.h" + +#include + +//---------------------------------------------------------------------- +cmCPackZIPGenerator::cmCPackZIPGenerator() +{ +} + +//---------------------------------------------------------------------- +cmCPackZIPGenerator::~cmCPackZIPGenerator() +{ +} + +//---------------------------------------------------------------------- +int cmCPackZIPGenerator::InitializeInternal() +{ + this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "1"); + this->ReadListFile("CPackZIP.cmake"); + if ((!this->IsSet("ZIP_EXECUTABLE")) + || (!this->IsSet("CPACK_ZIP_COMMAND"))) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find a suitable ZIP program" + << std::endl); + return 0; + } + return this->Superclass::InitializeInternal(); +} + +//---------------------------------------------------------------------- +int cmCPackZIPGenerator::CompressFiles(const char* outFileName, + const char* toplevel, const std::vector& files) +{ + std::string tempFileName; + tempFileName = toplevel; + tempFileName += "/winZip.filelist"; + bool needQuotesInFile = cmSystemTools::IsOn( + this->GetOption("CPACK_ZIP_NEED_QUOTES")); + + std::string cmd = this->GetOption("CPACK_ZIP_COMMAND"); + cmsys::SystemTools::ReplaceString(cmd, "", outFileName); + cmsys::SystemTools::ReplaceString(cmd, "", "winZip.filelist"); + + { // the scope is needed for cmGeneratedFileStream + cmGeneratedFileStream out(tempFileName.c_str()); + std::vector::const_iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt ) + { + if ( needQuotesInFile ) + { + out << "\""; + } + out << cmSystemTools::RelativePath(toplevel, fileIt->c_str()); + if ( needQuotesInFile ) + { + out << "\""; + } + out << std::endl; + } + } + + + std::string output; + int retVal = -1; + int res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, + &retVal, toplevel, this->GeneratorVerbose, 0); + + if ( !res || retVal ) + { + std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); + tmpFile += "/CompressZip.log"; + cmGeneratedFileStream ofs(tmpFile.c_str()); + ofs << "# Run command: " << cmd.c_str() << std::endl + << "# Output:" << std::endl + << output.c_str() << std::endl; + cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running zip command: " + << cmd.c_str() << std::endl + << "Please check " << tmpFile.c_str() << " for errors" << std::endl); + return 0; + } + return 1; +} diff --git a/CMakeLua/Source/CPack/cmCPackZIPGenerator.h b/CMakeLua/Source/CPack/cmCPackZIPGenerator.h new file mode 100644 index 0000000..57dea89 --- /dev/null +++ b/CMakeLua/Source/CPack/cmCPackZIPGenerator.h @@ -0,0 +1,49 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPackZIPGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/05 21:55:45 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackZIPGenerator_h +#define cmCPackZIPGenerator_h + +#include "cmCPackGenerator.h" + +class cmCPackZIPGeneratorForward; + +/** \class cmCPackZIPGenerator + * \brief A generator for ZIP files + */ +class cmCPackZIPGenerator : public cmCPackGenerator +{ +public: + friend class cmCPackZIPGeneratorForward; + cmCPackTypeMacro(cmCPackZIPGenerator, cmCPackGenerator); + + /** + * Construct generator + */ + cmCPackZIPGenerator(); + virtual ~cmCPackZIPGenerator(); + +protected: + virtual int InitializeInternal(); + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector& files); + virtual const char* GetOutputExtension() { return ".zip"; } + + int ZipStyle; +}; + +#endif diff --git a/CMakeLua/Source/CPack/cpack.cxx b/CMakeLua/Source/CPack/cpack.cxx new file mode 100644 index 0000000..724fcde --- /dev/null +++ b/CMakeLua/Source/CPack/cpack.cxx @@ -0,0 +1,477 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cpack.cxx,v $ + Language: C++ + Date: $Date: 2007/12/13 22:56:49 $ + Version: $Revision: 1.42 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSystemTools.h" + +// Need these for documentation support. +#include "cmake.h" +#include "cmDocumentation.h" +#include "cmCPackGeneratorFactory.h" +#include "cmCPackGenerator.h" +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" + +#include "cmCPackLog.h" + +#include + +//---------------------------------------------------------------------------- +static const char * cmDocumentationName[][3] = +{ + {0, + " cpack - Packaging driver provided by CMake.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationUsage[][3] = +{ + {0, + " cpack -G [options]", + 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationDescription[][3] = +{ + {0, + "The \"cpack\" executable is the CMake packaging program. " + "CMake-generated build trees created for projects that use " + "the INSTALL_* commands have packaging support. " + "This program will generate the package.", 0}, + CMAKE_STANDARD_INTRODUCTION, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationOptions[][3] = +{ + {"-G ", "Use the specified generator to generate package.", + "CPack may support multiple native packaging systems on certain " + "platforms. A generator is responsible for generating input files for " + "particular system and invoking that systems. Possible generator names " + "are specified in the Generators section." }, + {"-C ", "Specify the project configuration", + "This option specifies the configuration that the project was build " + "with, for example 'Debug', 'Release'." }, + {"-D =", "Set a CPack variable.", \ + "Set a variable that can be used by the generator."}, \ + {"--config ", "Specify the config file.", + "Specify the config file to use to create the package. By default " + "CPackConfig.cmake in the current directory will be used." }, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationSeeAlso[][3] = +{ + {0, "cmake", 0}, + {0, "ccmake", 0}, + {0, 0, 0} +}; + +//---------------------------------------------------------------------------- +int cpackUnknownArgument(const char*, void*) +{ + return 1; +} + +//---------------------------------------------------------------------------- +struct cpackDefinitions +{ + typedef std::map MapType; + MapType Map; + cmCPackLog *Log; +}; + +//---------------------------------------------------------------------------- +int cpackDefinitionArgument(const char* argument, const char* cValue, + void* call_data) +{ + (void)argument; + cpackDefinitions* def = static_cast(call_data); + std::string value = cValue; + size_t pos = value.find_first_of("="); + if ( pos == std::string::npos ) + { + cmCPack_Log(def->Log, cmCPackLog::LOG_ERROR, + "Please specify CPack definitions as: KEY=VALUE" << std::endl); + return 0; + } + std::string key = value.substr(0, pos); + value = value.c_str() + pos + 1; + def->Map[key] = value; + cmCPack_Log(def->Log, cmCPackLog::LOG_DEBUG, "Set CPack variable: " + << key.c_str() << " to \"" << value.c_str() << "\"" << std::endl); + return 1; +} + +//---------------------------------------------------------------------------- +// this is CPack. +int main (int argc, char *argv[]) +{ + cmSystemTools::FindExecutableDirectory(argv[0]); + cmCPackLog log; + log.SetErrorPrefix("CPack Error: "); + log.SetWarningPrefix("CPack Warning: "); + log.SetOutputPrefix("CPack: "); + log.SetVerbosePrefix("CPack Verbose: "); + + cmSystemTools::EnableMSVCDebugHook(); + + if ( cmSystemTools::GetCurrentWorkingDirectory().size() == 0 ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Current working directory cannot be established." << std::endl); + } + + std::string generator; + bool help = false; + bool helpVersion = false; + bool verbose = false; + bool debug = false; + std::string helpFull; + std::string helpMAN; + std::string helpHTML; + + std::string cpackProjectName; + std::string cpackProjectDirectory + = cmsys::SystemTools::GetCurrentWorkingDirectory(); + std::string cpackBuildConfig; + std::string cpackProjectVersion; + std::string cpackProjectPatch; + std::string cpackProjectVendor; + std::string cpackConfigFile; + + cpackDefinitions definitions; + definitions.Log = &log; + + cpackConfigFile = ""; + + cmDocumentation doc; + cmsys::CommandLineArguments arg; + arg.Initialize(argc, argv); + typedef cmsys::CommandLineArguments argT; + // Help arguments + arg.AddArgument("--help", argT::NO_ARGUMENT, &help, "CPack help"); + arg.AddArgument("--help-full", argT::SPACE_ARGUMENT, &helpFull, + "CPack help"); + arg.AddArgument("--help-html", argT::SPACE_ARGUMENT, &helpHTML, + "CPack help"); + arg.AddArgument("--help-man", argT::SPACE_ARGUMENT, &helpMAN, "CPack help"); + arg.AddArgument("--version", argT::NO_ARGUMENT, &helpVersion, "CPack help"); + + arg.AddArgument("-V", argT::NO_ARGUMENT, &verbose, "CPack verbose"); + arg.AddArgument("--verbose", argT::NO_ARGUMENT, &verbose, "-V"); + arg.AddArgument("--debug", argT::NO_ARGUMENT, &debug, "-V"); + arg.AddArgument("--config", argT::SPACE_ARGUMENT, &cpackConfigFile, + "CPack configuration file"); + arg.AddArgument("-C", argT::SPACE_ARGUMENT, &cpackBuildConfig, + "CPack build configuration"); + arg.AddArgument("-G", argT::SPACE_ARGUMENT, + &generator, "CPack generator"); + arg.AddArgument("-P", argT::SPACE_ARGUMENT, + &cpackProjectName, "CPack project name"); + arg.AddArgument("-R", argT::SPACE_ARGUMENT, + &cpackProjectVersion, "CPack project version"); + arg.AddArgument("-B", argT::SPACE_ARGUMENT, + &cpackProjectDirectory, "CPack project directory"); + arg.AddArgument("--patch", argT::SPACE_ARGUMENT, + &cpackProjectPatch, "CPack project patch"); + arg.AddArgument("--vendor", argT::SPACE_ARGUMENT, + &cpackProjectVendor, "CPack project vendor"); + arg.AddCallback("-D", argT::SPACE_ARGUMENT, + cpackDefinitionArgument, &definitions, "CPack Definitions"); + arg.SetUnknownArgumentCallback(cpackUnknownArgument); + + // Parse command line + int parsed = arg.Parse(); + + // Setup logging + if ( verbose ) + { + log.SetVerbose(verbose); + cmCPack_Log(&log, cmCPackLog::LOG_OUTPUT, "Enable Verbse" << std::endl); + } + if ( debug ) + { + log.SetDebug(debug); + cmCPack_Log(&log, cmCPackLog::LOG_OUTPUT, "Enable Debug" << std::endl); + } + + cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, + "Read CPack config file: " << cpackConfigFile.c_str() << std::endl); + + cmake cminst; + cminst.RemoveUnscriptableCommands(); + cmGlobalGenerator cmgg; + cmgg.SetCMakeInstance(&cminst); + cmLocalGenerator* cmlg = cmgg.CreateLocalGenerator(); + cmMakefile* globalMF = cmlg->GetMakefile(); + + bool cpackConfigFileSpecified = true; + if ( cpackConfigFile.empty() ) + { + cpackConfigFile = cmSystemTools::GetCurrentWorkingDirectory(); + cpackConfigFile += "/CPackConfig.cmake"; + cpackConfigFileSpecified = false; + } + + cmCPackGeneratorFactory generators; + generators.SetLogger(&log); + cmCPackGenerator* cpackGenerator = 0; + + if ( !helpFull.empty() || !helpMAN.empty() || + !helpHTML.empty() || helpVersion ) + { + help = true; + } + + if ( parsed && !help ) + { + // find out which system cpack is running on, so it can setup the search + // paths, so FIND_XXX() commands can be used in scripts + cminst.AddCMakePaths(); + std::string systemFile = + globalMF->GetModulesFile("CMakeDetermineSystem.cmake"); + if (!globalMF->ReadListFile(0, systemFile.c_str())) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Error reading CMakeDetermineSystem.cmake" << std::endl); + return 1; + } + + systemFile = + globalMF->GetModulesFile("CMakeSystemSpecificInformation.cmake"); + if (!globalMF->ReadListFile(0, systemFile.c_str())) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Error reading CMakeSystemSpecificInformation.cmake" << std::endl); + return 1; + } + + if ( cmSystemTools::FileExists(cpackConfigFile.c_str()) ) + { + cpackConfigFile = + cmSystemTools::CollapseFullPath(cpackConfigFile.c_str()); + cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, + "Read CPack configuration file: " << cpackConfigFile.c_str() + << std::endl); + if ( !globalMF->ReadListFile(0, cpackConfigFile.c_str()) ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Problem reading CPack config file: \"" + << cpackConfigFile.c_str() << "\"" << std::endl); + return 1; + } + } + else if ( cpackConfigFileSpecified ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Cannot find CPack config file: \"" << cpackConfigFile.c_str() + << "\"" << std::endl); + return 1; + } + + if ( !generator.empty() ) + { + globalMF->AddDefinition("CPACK_GENERATOR", generator.c_str()); + } + if ( !cpackProjectName.empty() ) + { + globalMF->AddDefinition("CPACK_PACKAGE_NAME", cpackProjectName.c_str()); + } + if ( !cpackProjectVersion.empty() ) + { + globalMF->AddDefinition("CPACK_PACKAGE_VERSION", + cpackProjectVersion.c_str()); + } + if ( !cpackProjectVendor.empty() ) + { + globalMF->AddDefinition("CPACK_PACKAGE_VENDOR", + cpackProjectVendor.c_str()); + } + if ( !cpackProjectDirectory.empty() ) + { + globalMF->AddDefinition("CPACK_PACKAGE_DIRECTORY", + cpackProjectDirectory.c_str()); + } + if ( !cpackBuildConfig.empty() ) + { + globalMF->AddDefinition("CPACK_BUILD_CONFIG", cpackBuildConfig.c_str()); + } + cpackDefinitions::MapType::iterator cdit; + for ( cdit = definitions.Map.begin(); + cdit != definitions.Map.end(); + ++cdit ) + { + globalMF->AddDefinition(cdit->first.c_str(), cdit->second.c_str()); + } + + const char* cpackModulesPath = + globalMF->GetDefinition("CPACK_MODULE_PATH"); + if ( cpackModulesPath ) + { + globalMF->AddDefinition("CMAKE_MODULE_PATH", cpackModulesPath); + } + const char* genList = globalMF->GetDefinition("CPACK_GENERATOR"); + if ( !genList ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "CPack generator not specified" << std::endl); + parsed = 0; + } + else + { + std::vector generatorsVector; + cmSystemTools::ExpandListArgument(genList, + generatorsVector); + std::vector::iterator it; + for ( it = generatorsVector.begin(); + it != generatorsVector.end(); + ++it ) + { + const char* gen = it->c_str(); + cmMakefile newMF(*globalMF); + cmMakefile* mf = &newMF; + cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, + "Specified generator: " << gen << std::endl); + if ( parsed && !mf->GetDefinition("CPACK_PACKAGE_NAME") ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "CPack project name not specified" << std::endl); + parsed = 0; + } + if ( parsed && !(mf->GetDefinition("CPACK_PACKAGE_VERSION") + || mf->GetDefinition("CPACK_PACKAGE_VERSION_MAJOR") && + mf->GetDefinition("CPACK_PACKAGE_VERSION_MINOR") + && mf->GetDefinition("CPACK_PACKAGE_VERSION_PATCH")) ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "CPack project version not specified" << std::endl + << "Specify CPACK_PACKAGE_VERSION, or " + "CPACK_PACKAGE_VERSION_MAJOR, " + "CPACK_PACKAGE_VERSION_MINOR, and CPACK_PACKAGE_VERSION_PATCH." + << std::endl); + parsed = 0; + } + if ( parsed ) + { + cpackGenerator = generators.NewGenerator(gen); + if ( !cpackGenerator ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Cannot initialize CPack generator: " + << gen << std::endl); + parsed = 0; + } + if ( parsed && !cpackGenerator->Initialize(gen, mf, argv[0]) ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Cannot initialize the generator " << gen << std::endl); + parsed = 0; + } + + if ( !mf->GetDefinition("CPACK_INSTALL_COMMANDS") && + !mf->GetDefinition("CPACK_INSTALLED_DIRECTORIES") && + !mf->GetDefinition("CPACK_INSTALL_CMAKE_PROJECTS") ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Please specify build tree of the project that uses CMake " + "using CPACK_INSTALL_CMAKE_PROJECTS, specify " + "CPACK_INSTALL_COMMANDS, or specify " + "CPACK_INSTALLED_DIRECTORIES." + << std::endl); + parsed = 0; + } + if ( parsed ) + { +#ifdef _WIN32 + std::string comspec = "cmw9xcom.exe"; + cmSystemTools::SetWindows9xComspecSubstitute(comspec.c_str()); +#endif + + const char* projName = mf->GetDefinition("CPACK_PACKAGE_NAME"); + cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, "Use generator: " + << cpackGenerator->GetNameOfClass() << std::endl); + cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, "For project: " + << projName << std::endl); + + const char* projVersion = + mf->GetDefinition("CPACK_PACKAGE_VERSION"); + if ( !projVersion ) + { + const char* projVersionMajor + = mf->GetDefinition("CPACK_PACKAGE_VERSION_MAJOR"); + const char* projVersionMinor + = mf->GetDefinition("CPACK_PACKAGE_VERSION_MINOR"); + const char* projVersionPatch + = mf->GetDefinition("CPACK_PACKAGE_VERSION_PATCH"); + cmOStringStream ostr; + ostr << projVersionMajor << "." << projVersionMinor << "." + << projVersionPatch; + mf->AddDefinition("CPACK_PACKAGE_VERSION", + ostr.str().c_str()); + } + + int res = cpackGenerator->DoPackage(); + if ( !res ) + { + cmCPack_Log(&log, cmCPackLog::LOG_ERROR, + "Error when generating package: " << projName << std::endl); + return 1; + } + } + } + } + } + } + + if ( help ) + { + doc.CheckOptions(argc, argv); + // Construct and print requested documentation. + doc.SetName("cpack"); + doc.SetSection("Name",cmDocumentationName); + doc.SetSection("Usage",cmDocumentationUsage); + doc.SetSection("Description",cmDocumentationDescription); + doc.SetSection("Options",cmDocumentationOptions); + + std::vector v; + cmCPackGeneratorFactory::DescriptionsMap::const_iterator generatorIt; + for( generatorIt = generators.GetGeneratorsList().begin(); + generatorIt != generators.GetGeneratorsList().end(); + ++ generatorIt ) + { + cmDocumentationEntry e; + e.Name = generatorIt->first.c_str(); + e.Brief = generatorIt->second.c_str(); + e.Full = ""; + v.push_back(e); + } + doc.SetSection("Generators",v); + + doc.SetSeeAlsoList(cmDocumentationSeeAlso); +#undef cout + return doc.PrintRequestedDocumentation(std::cout)? 0:1; +#define cout no_cout_use_cmCPack_Log + } + + return 0; +} diff --git a/CMakeLua/Source/CPack/cygwin.readme b/CMakeLua/Source/CPack/cygwin.readme new file mode 100755 index 0000000..88922d3 --- /dev/null +++ b/CMakeLua/Source/CPack/cygwin.readme @@ -0,0 +1,69 @@ +http://cygwin.com/setup.html + + +Need to produce two tar files: + +Source- + +- create subdirs +- copy src +- duplicate src +- configure files into duplicate src + CPack.cygwin-readme.in + CPack.cygwin-install.sh.in + CPack.setup.hint.in +- diff duplicate src and orig src +- write diff into toplevel +- create tar file call super class + +cmake-2.2.3-1 + + +1. a source release +cmake-2.2.3-2-src.tar.bz2 + +cmake-2.2.3-2.patch has cmake-2.2.3/CYGWIN-PATCHES/cmake.README cmake-2.2.3/CYGWIN-PATCHES/setup.hint +cmake-2.2.3-2.sh -> script to create cygwin release +cmake-2.2.3.tar.bz2 -> unmodified cmake sources for 2.2.3 + + + + + +2 a binary release +cmake-2.2.3-2.tar.bz2 + +normal binary release with use as the root of the tree: + +Here is the bootstrap command used: + + ${SOURCE_DIR}/bootstrap --prefix=/usr --datadir=/share/cmake-${VER} \ + --docdir=/share/doc/cmake-${VER} --mandir=/share/man + +CMAKE_DOC_DIR /share/doc/${PKG}-${VER} +CMAKE_MAN_DIR /share/man +CMAKE_DATA_DIR /share/${PKG}-${VER} + +Here is the directory stucture: + +usr/bin/cmake.exe +usr/share/doc/cmake-2.2.3/MANIFEST *** +usr/share/doc/Cygwin/cmake-2.2.3-2.README **** +usr/share/cmake-2.2.3/Modules + + + +usr/bin +usr/share/cmake-2.2.3/include +usr/share/cmake-2.2.3/Modules/Platform +usr/share/cmake-2.2.3/Modules +usr/share/cmake-2.2.3/Templates +usr/share/cmake-2.2.3 +usr/share/doc/cmake-2.2.3 +usr/share/doc/Cygwin +usr/share/doc +usr/share/man/man1 +usr/share/man +usr/share +usr + diff --git a/CMakeLua/Source/CTest/CVS/Entries b/CMakeLua/Source/CTest/CVS/Entries new file mode 100644 index 0000000..016bd19 --- /dev/null +++ b/CMakeLua/Source/CTest/CVS/Entries @@ -0,0 +1,48 @@ +/cmCTestBuildAndTestHandler.cxx/1.20/Mon Sep 17 14:40:57 2007//T1.20 +/cmCTestBuildAndTestHandler.h/1.6/Mon Mar 19 17:04:10 2007//T1.6 +/cmCTestBuildCommand.cxx/1.18/Mon Sep 17 14:40:57 2007//T1.18 +/cmCTestBuildCommand.h/1.5/Wed Mar 29 17:01:24 2006//T1.5 +/cmCTestCommand.h/1.3/Fri Mar 10 20:03:09 2006//T1.3 +/cmCTestConfigureCommand.cxx/1.11/Tue Jul 11 19:58:07 2006//T1.11 +/cmCTestConfigureCommand.h/1.5/Wed Mar 29 17:01:24 2006//T1.5 +/cmCTestConfigureHandler.h/1.5/Thu Mar 9 16:17:10 2006//T1.5 +/cmCTestCoverageCommand.cxx/1.8/Wed Mar 29 17:33:41 2006//T1.8 +/cmCTestCoverageCommand.h/1.4/Wed Mar 29 17:01:24 2006//T1.4 +/cmCTestCoverageHandler.h/1.17/Fri Jun 8 16:29:40 2007//T1.17 +/cmCTestGenericHandler.cxx/1.16/Tue Aug 28 17:46:57 2007//T1.16 +/cmCTestGenericHandler.h/1.11/Fri Apr 28 15:59:31 2006//T1.11 +/cmCTestMemCheckCommand.cxx/1.5/Wed Mar 15 16:02:08 2006//T1.5 +/cmCTestMemCheckCommand.h/1.4/Fri Mar 10 20:03:09 2006//T1.4 +/cmCTestMemCheckHandler.h/1.4/Tue Jul 24 18:43:31 2007//T1.4 +/cmCTestScriptHandler.h/1.19/Fri Jun 8 20:06:33 2007//T1.19 +/cmCTestSubmitCommand.cxx/1.13/Wed Mar 29 17:33:41 2006//T1.13 +/cmCTestSubmitCommand.h/1.5/Wed Mar 29 17:01:24 2006//T1.5 +/cmCTestSubmitHandler.cxx/1.29/Wed Nov 7 14:12:34 2007//T1.29 +/cmCTestSubmitHandler.h/1.4/Fri Mar 10 20:03:09 2006//T1.4 +/cmCTestTestCommand.cxx/1.10/Wed Mar 15 16:02:08 2006//T1.10 +/cmCTestTestCommand.h/1.6/Wed Mar 29 17:01:24 2006//T1.6 +/cmCTestUpdateCommand.cxx/1.15/Tue Jul 11 19:58:07 2006//T1.15 +/cmCTestUpdateCommand.h/1.5/Wed Mar 29 17:01:24 2006//T1.5 +/cmCTestUpdateHandler.h/1.8/Fri Mar 10 20:03:09 2006//T1.8 +/cmCTestReadCustomFilesCommand.h/1.3/Sat Feb 2 02:54:15 2008/-kb/T1.3 +/cmCTestSleepCommand.h/1.3/Sat Feb 2 02:54:15 2008//T1.3 +/cmCTestEmptyBinaryDirectoryCommand.cxx/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmCTestEmptyBinaryDirectoryCommand.h/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmCTestHandlerCommand.h/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmCTestReadCustomFilesCommand.cxx/1.4/Sat Feb 2 02:54:16 2008/-kb/T1.4 +/cmCTestRunScriptCommand.h/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmCTestSleepCommand.cxx/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmCTestStartCommand.h/1.5/Sat Feb 2 02:54:17 2008//T1.5 +/cmCTestRunScriptCommand.cxx/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmCTestHandlerCommand.cxx/1.11/Sat Feb 2 02:54:25 2008//T1.11 +/cmCTestStartCommand.cxx/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmCTestScriptHandler.cxx/1.43/Sat Feb 2 02:55:02 2008//T1.43 +/cmCTestBuildHandler.h/1.13/Sat Feb 2 02:59:47 2008//T1.13 +/cmCTestConfigureHandler.cxx/1.14/Sat Feb 2 02:59:48 2008//T1.14 +/cmCTestMemCheckHandler.cxx/1.19/Sat Feb 2 02:59:49 2008//T1.19 +/cmCTestTestHandler.h/1.27/Sat Feb 2 02:59:50 2008//T1.27 +/cmCTestCoverageHandler.cxx/1.51/Sat Feb 2 02:59:52 2008//T1.51 +/cmCTestBuildHandler.cxx/1.61/Sat Feb 2 02:59:53 2008//T1.61 +/cmCTestTestHandler.cxx/1.68/Sat Feb 2 03:02:00 2008//T1.68 +/cmCTestUpdateHandler.cxx/1.41/Sat Feb 2 03:02:04 2008//T1.41 +D diff --git a/CMakeLua/Source/CTest/CVS/Repository b/CMakeLua/Source/CTest/CVS/Repository new file mode 100644 index 0000000..32b65a7 --- /dev/null +++ b/CMakeLua/Source/CTest/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/CTest diff --git a/CMakeLua/Source/CTest/CVS/Root b/CMakeLua/Source/CTest/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/CTest/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/CTest/CVS/Tag b/CMakeLua/Source/CTest/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/CTest/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/CTest/CVS/Template b/CMakeLua/Source/CTest/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/CTest/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.cxx b/CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.cxx new file mode 100644 index 0000000..9c36958 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -0,0 +1,504 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestBuildAndTestHandler.cxx,v $ + Language: C++ + Date: $Date: 2007/09/17 14:40:57 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestBuildAndTestHandler.h" + +#include "cmSystemTools.h" +#include "cmCTest.h" +#include "cmake.h" +#include "cmGlobalGenerator.h" +#include +#include "cmCTestTestHandler.h" + +//---------------------------------------------------------------------- +cmCTestBuildAndTestHandler::cmCTestBuildAndTestHandler() +{ + this->BuildTwoConfig = false; + this->BuildNoClean = false; + this->BuildNoCMake = false; + this->Timeout = 0; +} + +//---------------------------------------------------------------------- +void cmCTestBuildAndTestHandler::Initialize() +{ + this->BuildTargets.erase( + this->BuildTargets.begin(), this->BuildTargets.end()); + this->Superclass::Initialize(); +} + +//---------------------------------------------------------------------- +const char* cmCTestBuildAndTestHandler::GetOutput() +{ + return this->Output.c_str(); +} +//---------------------------------------------------------------------- +int cmCTestBuildAndTestHandler::ProcessHandler() +{ + this->Output = ""; + std::string output; + cmSystemTools::ResetErrorOccuredFlag(); + int retv = this->RunCMakeAndTest(&this->Output); + cmSystemTools::ResetErrorOccuredFlag(); + return retv; +} + +//---------------------------------------------------------------------- +int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring, + cmOStringStream &out, std::string &cmakeOutString, std::string &cwd, + cmake *cm) +{ + unsigned int k; + std::vector args; + args.push_back(this->CTest->GetCMakeExecutable()); + args.push_back(this->SourceDir); + if(this->BuildGenerator.size()) + { + std::string generator = "-G"; + generator += this->BuildGenerator; + args.push_back(generator); + } + + const char* config = 0; + if ( this->CTest->GetConfigType().size() > 0 ) + { + config = this->CTest->GetConfigType().c_str(); + } +#ifdef CMAKE_INTDIR + config = CMAKE_INTDIR; +#endif + + if ( config ) + { + std::string btype + = "-DCMAKE_BUILD_TYPE:STRING=" + std::string(config); + args.push_back(btype); + } + + for(k=0; k < this->BuildOptions.size(); ++k) + { + args.push_back(this->BuildOptions[k]); + } + if (cm->Run(args) != 0) + { + out << "Error: cmake execution failed\n"; + out << cmakeOutString << "\n"; + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + if(outstring) + { + *outstring = out.str(); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, out.str() << std::endl); + } + return 1; + } + // do another config? + if(this->BuildTwoConfig) + { + if (cm->Run(args) != 0) + { + out << "Error: cmake execution failed\n"; + out << cmakeOutString << "\n"; + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + if(outstring) + { + *outstring = out.str(); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, out.str() << std::endl); + } + return 1; + } + } + out << "======== CMake output ======\n"; + out << cmakeOutString; + out << "======== End CMake output ======\n"; + return 0; +} + +//---------------------------------------------------------------------- +void CMakeMessageCallback(const char* m, const char*, bool&, void* s) +{ + std::string* out = (std::string*)s; + *out += m; + *out += "\n"; +} + +//---------------------------------------------------------------------- +void CMakeStdoutCallback(const char* m, int len, void* s) +{ + std::string* out = (std::string*)s; + out->append(m, len); +} + +//---------------------------------------------------------------------- +int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) +{ + unsigned int k; + std::string cmakeOutString; + cmSystemTools::SetErrorCallback(CMakeMessageCallback, &cmakeOutString); + cmSystemTools::SetStdoutCallback(CMakeStdoutCallback, &cmakeOutString); + cmOStringStream out; + + // if the generator and make program are not specified then it is an error + if (!this->BuildGenerator.size() || !this->BuildMakeProgram.size()) + { + if(outstring) + { + *outstring = + "--build-and-test requires that both the generator and makeprogram " + "be provided using the --build-generator and --build-makeprogram " + "command line options. "; + } + return 1; + } + + if ( this->CTest->GetConfigType().size() == 0 && + this->ConfigSample.size()) + { + // use the config sample to set the ConfigType + std::string fullPath; + std::string resultingConfig; + std::vector extraPaths; + std::vector failed; + fullPath = + cmCTestTestHandler::FindExecutable(this->CTest, + this->ConfigSample.c_str(), + resultingConfig, + extraPaths, + failed); + if (fullPath.size() && resultingConfig.size()) + { + this->CTest->SetConfigType(resultingConfig.c_str()); + } + out << "Using config sample with results: " + << fullPath << " and " << resultingConfig << std::endl; + } + + // we need to honor the timeout specified, the timeout include cmake, build + // and test time + double clock_start = cmSystemTools::GetTime(); + + // make sure the binary dir is there + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + out << "Internal cmake changing into directory: " + << this->BinaryDir << std::endl; + if (!cmSystemTools::FileIsDirectory(this->BinaryDir.c_str())) + { + cmSystemTools::MakeDirectory(this->BinaryDir.c_str()); + } + cmSystemTools::ChangeDirectory(this->BinaryDir.c_str()); + + // should we cmake? + cmake cm; + cm.SetGlobalGenerator(cm.CreateGlobalGenerator( + this->BuildGenerator.c_str())); + + if(!this->BuildNoCMake) + { + // do the cmake step, no timeout here since it is not a sub process + if (this->RunCMake(outstring,out,cmakeOutString,cwd,&cm)) + { + return 1; + } + } + + // do the build + std::vector::iterator tarIt; + if ( this->BuildTargets.size() == 0 ) + { + this->BuildTargets.push_back(""); + } + for ( tarIt = this->BuildTargets.begin(); + tarIt != this->BuildTargets.end(); ++ tarIt ) + { + double remainingTime = 0; + if (this->Timeout) + { + remainingTime = this->Timeout - cmSystemTools::GetTime() + clock_start; + if (remainingTime <= 0) + { + if(outstring) + { + *outstring = "--build-and-test timeout exceeded. "; + } + return 1; + } + } + std::string output; + const char* config = 0; + if ( this->CTest->GetConfigType().size() > 0 ) + { + config = this->CTest->GetConfigType().c_str(); + } +#ifdef CMAKE_INTDIR + config = CMAKE_INTDIR; +#endif + if(!config) + { + config = "Debug"; + } + int retVal = cm.GetGlobalGenerator()->Build( + this->SourceDir.c_str(), this->BinaryDir.c_str(), + this->BuildProject.c_str(), tarIt->c_str(), + &output, this->BuildMakeProgram.c_str(), + config, + !this->BuildNoClean, + false, remainingTime); + out << output; + // if the build failed then return + if (retVal) + { + if(outstring) + { + *outstring = out.str(); + } + return 1; + } + } + if(outstring) + { + *outstring = out.str(); + } + + // if no test was specified then we are done + if (!this->TestCommand.size()) + { + return 0; + } + + // now run the compiled test if we can find it + // store the final location in fullPath + std::string fullPath; + std::string resultingConfig; + std::vector extraPaths; + // if this->ExecutableDirectory is set try that as well + if (this->ExecutableDirectory.size()) + { + std::string tempPath = this->ExecutableDirectory; + tempPath += "/"; + tempPath += this->TestCommand; + extraPaths.push_back(tempPath); + } + std::vector failed; + fullPath = + cmCTestTestHandler::FindExecutable(this->CTest, + this->TestCommand.c_str(), + resultingConfig, + extraPaths, + failed); + + if(!cmSystemTools::FileExists(fullPath.c_str())) + { + out << "Could not find path to executable, perhaps it was not built: " + << this->TestCommand << "\n"; + out << "tried to find it in these places:\n"; + out << fullPath.c_str() << "\n"; + for(unsigned int i=0; i < failed.size(); ++i) + { + out << failed[i] << "\n"; + } + if(outstring) + { + *outstring = out.str(); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, out.str()); + } + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + return 1; + } + + std::vector testCommand; + testCommand.push_back(fullPath.c_str()); + for(k=0; k < this->TestCommandArgs.size(); ++k) + { + testCommand.push_back(this->TestCommandArgs[k].c_str()); + } + testCommand.push_back(0); + std::string outs; + int retval = 0; + // run the test from the this->BuildRunDir if set + if(this->BuildRunDir.size()) + { + out << "Run test in directory: " << this->BuildRunDir << "\n"; + cmSystemTools::ChangeDirectory(this->BuildRunDir.c_str()); + } + out << "Running test executable: " << fullPath << " "; + for(k=0; k < this->TestCommandArgs.size(); ++k) + { + out << this->TestCommandArgs[k] << " "; + } + out << "\n"; + + // how much time is remaining + double remainingTime = 0; + if (this->Timeout) + { + remainingTime = this->Timeout - cmSystemTools::GetTime() + clock_start; + if (remainingTime <= 0) + { + if(outstring) + { + *outstring = "--build-and-test timeout exceeded. "; + } + return 1; + } + } + + int runTestRes = this->CTest->RunTest(testCommand, &outs, &retval, 0, + remainingTime); + + if(runTestRes != cmsysProcess_State_Exited || retval != 0) + { + out << "Failed to run test command: " << testCommand[0] << "\n"; + retval = 1; + } + + out << outs << "\n"; + if(outstring) + { + *outstring = out.str(); + } + else + { + cmCTestLog(this->CTest, OUTPUT, out.str() << std::endl); + } + return retval; +} + +//---------------------------------------------------------------------- +int cmCTestBuildAndTestHandler::ProcessCommandLineArguments( + const std::string& currentArg, size_t& idx, + const std::vector& allArgs) +{ + // --build-and-test options + if(currentArg.find("--build-and-test",0) == 0 && idx < allArgs.size() - 1) + { + if(idx+2 < allArgs.size()) + { + idx++; + this->SourceDir = allArgs[idx]; + idx++; + this->BinaryDir = allArgs[idx]; + // dir must exist before CollapseFullPath is called + cmSystemTools::MakeDirectory(this->BinaryDir.c_str()); + this->BinaryDir + = cmSystemTools::CollapseFullPath(this->BinaryDir.c_str()); + this->SourceDir + = cmSystemTools::CollapseFullPath(this->SourceDir.c_str()); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "--build-and-test must have source and binary dir" << std::endl); + return 0; + } + } + if(currentArg.find("--build-target",0) == 0 && idx < allArgs.size() - 1) + { + idx++; + this->BuildTargets.push_back(allArgs[idx]); + } + if(currentArg.find("--build-nocmake",0) == 0) + { + this->BuildNoCMake = true; + } + if(currentArg.find("--build-run-dir",0) == 0 && idx < allArgs.size() - 1) + { + idx++; + this->BuildRunDir = allArgs[idx]; + } + if(currentArg.find("--build-two-config",0) == 0) + { + this->BuildTwoConfig = true; + } + if(currentArg.find("--build-exe-dir",0) == 0 && idx < allArgs.size() - 1) + { + idx++; + this->ExecutableDirectory = allArgs[idx]; + } + if(currentArg.find("--test-timeout",0) == 0 && idx < allArgs.size() - 1) + { + idx++; + this->Timeout = atof(allArgs[idx].c_str()); + } + if(currentArg.find("--build-generator",0) == 0 && idx < allArgs.size() - 1) + { + idx++; + this->BuildGenerator = allArgs[idx]; + } + if(currentArg.find("--build-project",0) == 0 && idx < allArgs.size() - 1) + { + idx++; + this->BuildProject = allArgs[idx]; + } + if(currentArg.find("--build-makeprogram",0) == 0 && + idx < allArgs.size() - 1) + { + idx++; + this->BuildMakeProgram = allArgs[idx]; + } + if(currentArg.find("--build-config-sample",0) == 0 && + idx < allArgs.size() - 1) + { + idx++; + this->ConfigSample = allArgs[idx]; + } + if(currentArg.find("--build-noclean",0) == 0) + { + this->BuildNoClean = true; + } + if(currentArg.find("--build-options",0) == 0 && idx < allArgs.size() - 1) + { + ++idx; + bool done = false; + while(idx < allArgs.size() && !done) + { + this->BuildOptions.push_back(allArgs[idx]); + if(idx+1 < allArgs.size() + && (allArgs[idx+1] == "--build-target" || + allArgs[idx+1] == "--test-command")) + { + done = true; + } + else + { + ++idx; + } + } + } + if(currentArg.find("--test-command",0) == 0 && idx < allArgs.size() - 1) + { + ++idx; + this->TestCommand = allArgs[idx]; + while(idx+1 < allArgs.size()) + { + ++idx; + this->TestCommandArgs.push_back(allArgs[idx]); + } + } + return 1; +} + diff --git a/CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.h b/CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.h new file mode 100644 index 0000000..6d6d1cb --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestBuildAndTestHandler.h @@ -0,0 +1,83 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestBuildAndTestHandler.h,v $ + Language: C++ + Date: $Date: 2007/03/19 17:04:10 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestBuildAndTestHandler_h +#define cmCTestBuildAndTestHandler_h + + +#include "cmCTestGenericHandler.h" +#include "cmListFileCache.h" + +class cmake; + +/** \class cmCTestBuildAndTestHandler + * \brief A class that handles ctest -S invocations + * + */ +class cmCTestBuildAndTestHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestBuildAndTestHandler, cmCTestGenericHandler); + + /* + * The main entry point for this class + */ + int ProcessHandler(); + + //! Set all the build and test arguments + virtual int ProcessCommandLineArguments( + const std::string& currentArg, size_t& idx, + const std::vector& allArgs); + + /* + * Get the output variable + */ + const char* GetOutput(); + + cmCTestBuildAndTestHandler(); + + virtual void Initialize(); + +protected: + ///! Run CMake and build a test and then run it as a single test. + int RunCMakeAndTest(std::string* output); + int RunCMake(std::string* outstring, cmOStringStream &out, + std::string &cmakeOutString, + std::string &cwd, cmake *cm); + + cmStdString Output; + + std::string BuildGenerator; + std::vector BuildOptions; + bool BuildTwoConfig; + std::string BuildMakeProgram; + std::string ConfigSample; + std::string SourceDir; + std::string BinaryDir; + std::string BuildProject; + std::string TestCommand; + bool BuildNoClean; + std::string BuildRunDir; + std::string ExecutableDirectory; + std::vector TestCommandArgs; + std::vector BuildTargets; + bool BuildNoCMake; + double Timeout; +}; + +#endif + diff --git a/CMakeLua/Source/CTest/cmCTestBuildCommand.cxx b/CMakeLua/Source/CTest/cmCTestBuildCommand.cxx new file mode 100755 index 0000000..1727396 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestBuildCommand.cxx @@ -0,0 +1,134 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestBuildCommand.cxx,v $ + Language: C++ + Date: $Date: 2007/09/17 14:40:57 $ + Version: $Revision: 1.18 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestBuildCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" +#include "cmake.h" +#include "cmGlobalGenerator.h" + + +//---------------------------------------------------------------------------- +cmCTestBuildCommand::cmCTestBuildCommand() +{ + this->GlobalGenerator = 0; +} + +//---------------------------------------------------------------------------- +cmCTestBuildCommand::~cmCTestBuildCommand() +{ + if ( this->GlobalGenerator ) + { + delete this->GlobalGenerator; + this->GlobalGenerator = 0; + } +} + +//---------------------------------------------------------------------------- +cmCTestGenericHandler* cmCTestBuildCommand::InitializeHandler() +{ + cmCTestGenericHandler* handler + = this->CTest->GetInitializedHandler("build"); + if ( !handler ) + { + this->SetError("internal CTest error. Cannot instantiate build handler"); + return 0; + } + + const char* ctestBuildCommand + = this->Makefile->GetDefinition("CTEST_BUILD_COMMAND"); + if ( ctestBuildCommand && *ctestBuildCommand ) + { + this->CTest->SetCTestConfiguration("MakeCommand", ctestBuildCommand); + } + else + { + const char* cmakeGeneratorName + = this->Makefile->GetDefinition("CTEST_CMAKE_GENERATOR"); + const char* cmakeProjectName + = this->Makefile->GetDefinition("CTEST_PROJECT_NAME"); + const char* cmakeBuildConfiguration + = this->Makefile->GetDefinition("CTEST_BUILD_CONFIGURATION"); + const char* cmakeBuildAdditionalFlags + = this->Makefile->GetDefinition("CTEST_BUILD_FLAGS"); + const char* cmakeBuildTarget + = this->Makefile->GetDefinition("CTEST_BUILD_TARGET"); + if ( cmakeGeneratorName && *cmakeGeneratorName && + cmakeProjectName && *cmakeProjectName ) + { + if ( !cmakeBuildConfiguration ) + { + cmakeBuildConfiguration = "Release"; + } + if ( this->GlobalGenerator ) + { + if ( strcmp(this->GlobalGenerator->GetName(), + cmakeGeneratorName) != 0 ) + { + delete this->GlobalGenerator; + this->GlobalGenerator = 0; + } + } + if ( !this->GlobalGenerator ) + { + this->GlobalGenerator = + this->Makefile->GetCMakeInstance()->CreateGlobalGenerator( + cmakeGeneratorName); + } + this->GlobalGenerator->FindMakeProgram(this->Makefile); + const char* cmakeMakeProgram + = this->Makefile->GetDefinition("CMAKE_MAKE_PROGRAM"); + if(strlen(cmakeBuildConfiguration) == 0) + { + const char* config = 0; +#ifdef CMAKE_INTDIR + config = CMAKE_INTDIR; +#endif + if(!config) + { + config = "Debug"; + } + cmakeBuildConfiguration = config; + } + + std::string buildCommand + = this->GlobalGenerator-> + GenerateBuildCommand(cmakeMakeProgram, + cmakeProjectName, + cmakeBuildAdditionalFlags, cmakeBuildTarget, + cmakeBuildConfiguration, true, false); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "SetMakeCommand:" + << buildCommand.c_str() << "\n"); + this->CTest->SetCTestConfiguration("MakeCommand", buildCommand.c_str()); + } + else + { + cmOStringStream ostr; + ostr << "CTEST_BUILD_COMMAND or CTEST_CMAKE_GENERATOR not specified. " + "Please specify the CTEST_CMAKE_GENERATOR and CTEST_PROJECT_NAME if " + "this is a CMake project, or specify the CTEST_BUILD_COMMAND for " + "cmake or any other project."; + this->SetError(ostr.str().c_str()); + return 0; + } + } + + return handler; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestBuildCommand.h b/CMakeLua/Source/CTest/cmCTestBuildCommand.h new file mode 100755 index 0000000..2a592a5 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestBuildCommand.h @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestBuildCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/29 17:01:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestBuildCommand_h +#define cmCTestBuildCommand_h + +#include "cmCTestHandlerCommand.h" + +class cmGlobalGenerator; + +/** \class cmCTestBuild + * \brief Run a ctest script + * + * cmCTestBuildCommand defineds the command to build the project. + */ +class cmCTestBuildCommand : public cmCTestHandlerCommand +{ +public: + + cmCTestBuildCommand(); + ~cmCTestBuildCommand(); + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestBuildCommand* ni = new cmCTestBuildCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_BUILD";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Builds the repository."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_BUILD([BUILD build_dir] [RETURN_VALUE res])\n" + "Builds the given build directory and stores results in Build.xml."; + } + + cmTypeMacro(cmCTestBuildCommand, cmCTestHandlerCommand); + + cmGlobalGenerator* GlobalGenerator; + +protected: + cmCTestGenericHandler* InitializeHandler(); +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestBuildHandler.cxx b/CMakeLua/Source/CTest/cmCTestBuildHandler.cxx new file mode 100755 index 0000000..937356d --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestBuildHandler.cxx @@ -0,0 +1,1021 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestBuildHandler.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:17:36 $ + Version: $Revision: 1.61 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestBuildHandler.h" + +#include "cmCTest.h" +#include "cmake.h" +#include "cmMakefile.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" +#include "cmGeneratedFileStream.h" + +//#include +#include + +// used for sleep +#ifdef _WIN32 +#include "windows.h" +#endif + +#include +#include +#include +#include + +#if defined(__BORLANDC__) +# pragma warn -8060 /* possibly incorrect assignment */ +#endif + +static const char* cmCTestErrorMatches[] = { + "^[Bb]us [Ee]rror", + "^[Ss]egmentation [Vv]iolation", + "^[Ss]egmentation [Ff]ault", + "([^ :]+):([0-9]+): ([^ \\t])", + "([^:]+): error[ \\t]*[0-9]+[ \\t]*:", + "^Error ([0-9]+):", + "^Fatal", + "^Error: ", + "^Error ", + "[0-9] ERROR: ", + "^\"[^\"]+\", line [0-9]+: [^Ww]", + "^cc[^C]*CC: ERROR File = ([^,]+), Line = ([0-9]+)", + "^ld([^:])*:([ \\t])*ERROR([^:])*:", + "^ild:([ \\t])*\\(undefined symbol\\)", + "([^ :]+) : (error|fatal error|catastrophic error)", + "([^:]+): (Error:|error|undefined reference|multiply defined)", + "([^:]+)\\(([^\\)]+)\\) : (error|fatal error|catastrophic error)", + "^fatal error C[0-9]+:", + ": syntax error ", + "^collect2: ld returned 1 exit status", + "Unsatisfied symbols:", + "^Unresolved:", + "Undefined symbols:", + "^Undefined[ \\t]+first referenced", + "^CMake Error:", + ":[ \\t]cannot find", + ":[ \\t]can't find", + ": \\*\\*\\* No rule to make target \\`.*\\'. Stop", + ": \\*\\*\\* No targets specified and no makefile found", + ": Invalid loader fixup for symbol", + ": Invalid fixups exist", + ": Can't find library for", + ": internal link edit command failed", + ": Unrecognized option \\`.*\\'", + "\", line [0-9]+\\.[0-9]+: [0-9]+-[0-9]+ \\([^WI]\\)", + "ld: 0706-006 Cannot find or open library file: -l ", + "ild: \\(argument error\\) can't find library argument ::", + "^could not be found and will not be loaded.", + "s:616 string too big", + "make: Fatal error: ", + "ld: 0711-993 Error occurred while writing to the output file:", + "ld: fatal: ", + "final link failed:", + "make: \\*\\*\\*.*Error", + "make\\[.*\\]: \\*\\*\\*.*Error", + "\\*\\*\\* Error code", + "nternal error:", + "Makefile:[0-9]+: \\*\\*\\* .* Stop\\.", + ": No such file or directory", + ": Invalid argument", + "^The project cannot be built\\.", + 0 +}; + +static const char* cmCTestErrorExceptions[] = { + "instantiated from ", + "candidates are:", + ": warning", + ": \\(Warning\\)", + ": note", + "makefile:", + "Makefile:", + ":[ \\t]+Where:", + "([^ :]+):([0-9]+): Warning", + "------ Build started: .* ------", + 0 +}; + +static const char* cmCTestWarningMatches[] = { + "([^ :]+):([0-9]+): warning:", + "([^ :]+):([0-9]+): note:", + "^cc[^C]*CC: WARNING File = ([^,]+), Line = ([0-9]+)", + "^ld([^:])*:([ \\t])*WARNING([^:])*:", + "([^:]+): warning ([0-9]+):", + "^\"[^\"]+\", line [0-9]+: [Ww](arning|arnung)", + "([^:]+): warning[ \\t]*[0-9]+[ \\t]*:", + "^(Warning|Warnung) ([0-9]+):", + "^(Warning|Warnung) ", + "WARNING: ", + "([^ :]+) : warning", + "([^:]+): warning", + "\", line [0-9]+\\.[0-9]+: [0-9]+-[0-9]+ \\([WI]\\)", + "^cxx: Warning:", + ".*file: .* has no symbols", + "([^ :]+):([0-9]+): (Warning|Warnung)", + "\\([0-9]*\\): remark #[0-9]*", + "\".*\", line [0-9]+: remark\\([0-9]*\\):", + "cc-[0-9]* CC: REMARK File = .*, Line = [0-9]*", + 0 +}; + +static const char* cmCTestWarningExceptions[] = { + "/usr/.*/X11/Xlib\\.h:[0-9]+: war.*: ANSI C\\+\\+ forbids declaration", + "/usr/.*/X11/Xutil\\.h:[0-9]+: war.*: ANSI C\\+\\+ forbids declaration", + "/usr/.*/X11/XResource\\.h:[0-9]+: war.*: ANSI C\\+\\+ forbids declaration", + "WARNING 84 :", + "WARNING 47 :", + "makefile:", + "Makefile:", + "warning: Clock skew detected. Your build may be incomplete.", + "/usr/openwin/include/GL/[^:]+:", + "bind_at_load", + "XrmQGetResource", + "IceFlush", + "warning LNK4089: all references to [^ \\t]+ discarded by .OPT:REF", + "ld32: WARNING 85: definition of dataKey in", + "cc: warning 422: Unknown option \"\\+b", + "_with_warning_C", + 0 +}; + +struct cmCTestBuildCompileErrorWarningRex +{ + const char* RegularExpressionString; + int FileIndex; + int LineIndex; +}; + +static cmCTestBuildCompileErrorWarningRex +cmCTestWarningErrorFileLine[] = { + { "^Warning W[0-9]+ ([a-zA-Z.\\:/0-9_+ ~-]+) ([0-9]+):", 1, 2 }, + { "^([a-zA-Z./0-9_+ ~-]+):([0-9]+):", 1, 2 }, + { "^([a-zA-Z.\\:/0-9_+ ~-]+)\\(([0-9]+)\\)", 1, 2 }, + { "^([a-zA-Z./0-9_+ ~-]+)\\(([0-9]+)\\)", 1, 2 }, + { "\"([a-zA-Z./0-9_+ ~-]+)\", line ([0-9]+)", 1, 2 }, + { "File = ([a-zA-Z./0-9_+ ~-]+), Line = ([0-9]+)", 1, 2 }, + { 0, 0, 0 } +}; + +//---------------------------------------------------------------------- +cmCTestBuildHandler::cmCTestBuildHandler() +{ + this->MaxPreContext = 6; + this->MaxPostContext = 6; + + this->MaxErrors = 50; + this->MaxWarnings = 50; + + this->LastErrorOrWarning = this->ErrorsAndWarnings.end(); + +} + +//---------------------------------------------------------------------- +void cmCTestBuildHandler::Initialize() +{ + this->Superclass::Initialize(); + this->StartBuild = ""; + this->EndBuild = ""; + this->CustomErrorMatches.clear(); + this->CustomErrorExceptions.clear(); + this->CustomWarningMatches.clear(); + this->CustomWarningExceptions.clear(); + this->ErrorWarningFileLineRegex.clear(); + + this->ErrorMatchRegex.clear(); + this->ErrorExceptionRegex.clear(); + this->WarningMatchRegex.clear(); + this->WarningExceptionRegex.clear(); + this->BuildProcessingQueue.clear(); + this->BuildProcessingErrorQueue.clear(); + this->BuildOutputLogSize = 0; + this->CurrentProcessingLine.clear(); + + this->SimplifySourceDir = ""; + this->SimplifyBuildDir = ""; + this->OutputLineCounter = 0; + this->ErrorsAndWarnings.clear(); + this->LastErrorOrWarning = this->ErrorsAndWarnings.end(); + this->PostContextCount = 0; + this->MaxPreContext = 6; + this->MaxPostContext = 6; + this->PreContext.clear(); + + this->TotalErrors = 0; + this->TotalWarnings = 0; + this->LastTickChar = 0; + + this->ErrorQuotaReached = false; + this->WarningQuotaReached = false; + + this->MaxErrors = 50; + this->MaxWarnings = 50; +} + +//---------------------------------------------------------------------- +void cmCTestBuildHandler::PopulateCustomVectors(cmMakefile *mf) +{ + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_ERROR_MATCH", + this->CustomErrorMatches); + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_ERROR_EXCEPTION", + this->CustomErrorExceptions); + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_WARNING_MATCH", + this->CustomWarningMatches); + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_WARNING_EXCEPTION", + this->CustomWarningExceptions); + this->CTest->PopulateCustomInteger(mf, + "CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS", + this->MaxErrors); + this->CTest->PopulateCustomInteger(mf, + "CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS", + this->MaxWarnings); +} + +//---------------------------------------------------------------------- +//clearly it would be nice if this were broken up into a few smaller +//functions and commented... +int cmCTestBuildHandler::ProcessHandler() +{ + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Build project" << std::endl); + + // do we have time for this + if (this->CTest->GetRemainingTimeAllowed() < 120) + { + return 0; + } + + int entry; + for ( entry = 0; + cmCTestWarningErrorFileLine[entry].RegularExpressionString; + ++ entry ) + { + cmCTestBuildHandler::cmCTestCompileErrorWarningRex r; + if ( r.RegularExpression.compile( + cmCTestWarningErrorFileLine[entry].RegularExpressionString) ) + { + r.FileIndex = cmCTestWarningErrorFileLine[entry].FileIndex; + r.LineIndex = cmCTestWarningErrorFileLine[entry].LineIndex; + this->ErrorWarningFileLineRegex.push_back(r); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem Compiling regular expression: " + << cmCTestWarningErrorFileLine[entry].RegularExpressionString + << std::endl); + } + } + + // Determine build command and build directory + const std::string &makeCommand + = this->CTest->GetCTestConfiguration("MakeCommand"); + cmCTestLog(this->CTest, + HANDLER_VERBOSE_OUTPUT, "MakeCommand:" << makeCommand << + "\n"); + if ( makeCommand.size() == 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find MakeCommand key in the DartConfiguration.tcl" + << std::endl); + return -1; + } + const std::string &buildDirectory + = this->CTest->GetCTestConfiguration("BuildDirectory"); + if ( buildDirectory.size() == 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find BuildDirectory key in the DartConfiguration.tcl" + << std::endl); + return -1; + } + + // Create a last build log + cmGeneratedFileStream ofs; + double elapsed_time_start = cmSystemTools::GetTime(); + if ( !this->StartLogFile("Build", ofs) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot create build log file" + << std::endl); + } + + // Create lists of regular expression strings for errors, error exceptions, + // warnings and warning exceptions. + std::vector::size_type cc; + for ( cc = 0; cmCTestErrorMatches[cc]; cc ++ ) + { + this->CustomErrorMatches.push_back(cmCTestErrorMatches[cc]); + } + for ( cc = 0; cmCTestErrorExceptions[cc]; cc ++ ) + { + this->CustomErrorExceptions.push_back(cmCTestErrorExceptions[cc]); + } + for ( cc = 0; cmCTestWarningMatches[cc]; cc ++ ) + { + this->CustomWarningMatches.push_back(cmCTestWarningMatches[cc]); + } + + for ( cc = 0; cmCTestWarningExceptions[cc]; cc ++ ) + { + this->CustomWarningExceptions.push_back(cmCTestWarningExceptions[cc]); + } + + // Pre-compile regular expressions objects for all regular expressions + std::vector::iterator it; + +#define cmCTestBuildHandlerPopulateRegexVector(strings, regexes) \ + regexes.clear(); \ + cmCTestLog(this->CTest, DEBUG, this << "Add " #regexes \ + << std::endl); \ + for ( it = strings.begin(); it != strings.end(); ++it ) \ + { \ + cmCTestLog(this->CTest, DEBUG, "Add " #strings ": " \ + << it->c_str() << std::endl); \ + regexes.push_back(it->c_str()); \ + } + cmCTestBuildHandlerPopulateRegexVector( + this->CustomErrorMatches, this->ErrorMatchRegex); + cmCTestBuildHandlerPopulateRegexVector( + this->CustomErrorExceptions, this->ErrorExceptionRegex); + cmCTestBuildHandlerPopulateRegexVector( + this->CustomWarningMatches, this->WarningMatchRegex); + cmCTestBuildHandlerPopulateRegexVector( + this->CustomWarningExceptions, this->WarningExceptionRegex); + + + // Determine source and binary tree substitutions to simplify the output. + this->SimplifySourceDir = ""; + this->SimplifyBuildDir = ""; + if ( this->CTest->GetCTestConfiguration("SourceDirectory").size() > 20 ) + { + std::string srcdir + = this->CTest->GetCTestConfiguration("SourceDirectory") + "/"; + std::string srcdirrep; + for ( cc = srcdir.size()-2; cc > 0; cc -- ) + { + if ( srcdir[cc] == '/' ) + { + srcdirrep = srcdir.c_str() + cc; + srcdirrep = "/..." + srcdirrep; + srcdir = srcdir.substr(0, cc+1); + break; + } + } + this->SimplifySourceDir = srcdir; + } + if ( this->CTest->GetCTestConfiguration("BuildDirectory").size() > 20 ) + { + std::string bindir + = this->CTest->GetCTestConfiguration("BuildDirectory") + "/"; + std::string bindirrep; + for ( cc = bindir.size()-2; cc > 0; cc -- ) + { + if ( bindir[cc] == '/' ) + { + bindirrep = bindir.c_str() + cc; + bindirrep = "/..." + bindirrep; + bindir = bindir.substr(0, cc+1); + break; + } + } + this->SimplifyBuildDir = bindir; + } + + + // Ok, let's do the build + + // Remember start build time + this->StartBuild = this->CTest->CurrentTime(); + this->StartBuildTime = cmSystemTools::GetTime(); + int retVal = 0; + int res = cmsysProcess_State_Exited; + if ( !this->CTest->GetShowOnly() ) + { + res = this->RunMakeCommand(makeCommand.c_str(), &retVal, + buildDirectory.c_str(), 0, ofs); + } + else + { + cmCTestLog(this->CTest, DEBUG, "Build with command: " << makeCommand + << std::endl); + } + + // Remember end build time and calculate elapsed time + this->EndBuild = this->CTest->CurrentTime(); + this->EndBuildTime = cmSystemTools::GetTime(); + double elapsed_build_time = cmSystemTools::GetTime() - elapsed_time_start; + if (res != cmsysProcess_State_Exited || retVal ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Error(s) when building project" + << std::endl); + } + + // Cleanups strings in the errors and warnings list. + t_ErrorsAndWarningsVector::iterator evit; + if ( !this->SimplifySourceDir.empty() ) + { + for ( evit = this->ErrorsAndWarnings.begin(); + evit != this->ErrorsAndWarnings.end(); + ++ evit ) + { + cmSystemTools::ReplaceString( + evit->Text, this->SimplifySourceDir.c_str(), "/.../"); + cmSystemTools::ReplaceString( + evit->PreContext, this->SimplifySourceDir.c_str(), "/.../"); + cmSystemTools::ReplaceString( + evit->PostContext, this->SimplifySourceDir.c_str(), "/.../"); + } + } + + if ( !this->SimplifyBuildDir.empty() ) + { + for ( evit = this->ErrorsAndWarnings.begin(); + evit != this->ErrorsAndWarnings.end(); + ++ evit ) + { + cmSystemTools::ReplaceString( + evit->Text, this->SimplifyBuildDir.c_str(), "/.../"); + cmSystemTools::ReplaceString( + evit->PreContext, this->SimplifyBuildDir.c_str(), "/.../"); + cmSystemTools::ReplaceString( + evit->PostContext, this->SimplifyBuildDir.c_str(), "/.../"); + } + } + + // Display message about number of errors and warnings + cmCTestLog(this->CTest, HANDLER_OUTPUT, " " << this->TotalErrors + << (this->TotalErrors >= this->MaxErrors ? " or more" : "") + << " Compiler errors" << std::endl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " " << this->TotalWarnings + << (this->TotalWarnings >= this->MaxWarnings ? " or more" : "") + << " Compiler warnings" << std::endl); + + // Generate XML output + cmGeneratedFileStream xofs; + if( !this->StartResultingXML("Build", xofs)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot create build XML file" + << std::endl); + return -1; + } + this->GenerateDartBuildOutput( + xofs, this->ErrorsAndWarnings, elapsed_build_time); + return 0; +} + +//---------------------------------------------------------------------- +void cmCTestBuildHandler::GenerateDartBuildOutput( + std::ostream& os, + std::vector ew, + double elapsed_build_time) +{ + this->CTest->StartXML(os); + os << "\n" + << "\t" << this->StartBuild << "\n" + << "\t" << + static_cast(this->StartBuildTime) + << "\n" + << "" + << this->CTest->MakeXMLSafe( + this->CTest->GetCTestConfiguration("MakeCommand")) + << "" << std::endl; + + std::vector::iterator it; + + // only report the first 50 warnings and first 50 errors + unsigned short numErrorsAllowed = this->MaxErrors; + unsigned short numWarningsAllowed = this->MaxWarnings; + std::string srcdir = this->CTest->GetCTestConfiguration("SourceDirectory"); + // make sure the source dir is in the correct case on windows + // via a call to collapse full path. + srcdir = cmSystemTools::CollapseFullPath(srcdir.c_str()); + srcdir += "/"; + for ( it = ew.begin(); + it != ew.end() && (numErrorsAllowed || numWarningsAllowed); it++ ) + { + cmCTestBuildErrorWarning *cm = &(*it); + if (cm->Error && numErrorsAllowed || + !cm->Error && numWarningsAllowed) + { + if (cm->Error) + { + numErrorsAllowed--; + } + else + { + numWarningsAllowed--; + } + os << "\t<" << (cm->Error ? "Error" : "Warning") << ">\n" + << "\t\t" << cm->LogLine << "\n" + << "\t\t" << this->CTest->MakeXMLSafe(cm->Text) + << "\n" << std::endl; + std::vector::iterator rit; + for ( rit = this->ErrorWarningFileLineRegex.begin(); + rit != this->ErrorWarningFileLineRegex.end(); ++ rit ) + { + cmsys::RegularExpression* re = &rit->RegularExpression; + if ( re->find(cm->Text.c_str() ) ) + { + cm->SourceFile = re->match(rit->FileIndex); + // At this point we need to make this->SourceFile relative to + // the source root of the project, so cvs links will work + cmSystemTools::ConvertToUnixSlashes(cm->SourceFile); + if(cm->SourceFile.find("/.../") != cm->SourceFile.npos) + { + cmSystemTools::ReplaceString(cm->SourceFile, "/.../", ""); + std::string::size_type p = cm->SourceFile.find("/"); + if(p != cm->SourceFile.npos) + { + cm->SourceFile = cm->SourceFile.substr( + p+1, cm->SourceFile.size()-p); + } + } + else + { + // make sure it is a full path with the correct case + cm->SourceFile = cmSystemTools::CollapseFullPath( + cm->SourceFile.c_str()); + cmSystemTools::ReplaceString( + cm->SourceFile, srcdir.c_str(), ""); + } + cm->LineNumber = atoi(re->match(rit->LineIndex).c_str()); + break; + } + } + if ( !cm->SourceFile.empty() && cm->LineNumber >= 0 ) + { + if ( cm->SourceFile.size() > 0 ) + { + os << "\t\t" << cm->SourceFile << "" + << std::endl; + } + if ( cm->SourceFileTail.size() > 0 ) + { + os << "\t\t" << cm->SourceFileTail + << "" << std::endl; + } + if ( cm->LineNumber >= 0 ) + { + os << "\t\t" << cm->LineNumber + << "" << std::endl; + } + } + os << "\t\t" << this->CTest->MakeXMLSafe(cm->PreContext) + << "\n" + << "\t\t" << this->CTest->MakeXMLSafe(cm->PostContext); + // is this the last warning or error, if so notify + if (cm->Error && !numErrorsAllowed || + !cm->Error && !numWarningsAllowed) + { + os << "\nThe maximum number of reported warnings or errors has been " + "reached!!!\n"; + } + os << "\n" + << "\t\t0\n" + << "Error ? "Error" : "Warning") << ">\n\n" + << std::endl; + } + } + os << "\t\n\t\n" + << "\t" << this->EndBuild << "\n" + << "\t" << static_cast(this->EndBuildTime) + << "\n" + << "" << static_cast(elapsed_build_time/6)/10.0 + << "" + << "" << std::endl; + this->CTest->EndXML(os); +} + +//###################################################################### +//###################################################################### +//###################################################################### +//###################################################################### + +//---------------------------------------------------------------------- +int cmCTestBuildHandler::RunMakeCommand(const char* command, + int* retVal, const char* dir, int timeout, std::ofstream& ofs) +{ + // First generate the command and arguments + std::vector args = cmSystemTools::ParseArguments(command); + + if(args.size() < 1) + { + return false; + } + + std::vector argv; + for(std::vector::const_iterator a = args.begin(); + a != args.end(); ++a) + { + argv.push_back(a->c_str()); + } + argv.push_back(0); + + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Run command:"); + std::vector::iterator ait; + for ( ait = argv.begin(); ait != argv.end() && *ait; ++ ait ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " \"" << *ait << "\""); + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, std::endl); + + // Now create process object + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetCommand(cp, &*argv.begin()); + cmsysProcess_SetWorkingDirectory(cp, dir); + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + cmsysProcess_SetTimeout(cp, timeout); + cmsysProcess_Execute(cp); + + // Initialize tick's + std::string::size_type tick = 0; + const std::string::size_type tick_len = 1024; + + char* data; + int length; + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Each symbol represents " << tick_len << " bytes of output." + << std::endl + << " '!' represents an error and '*' a warning." << std::endl + << " " << std::flush); + + // Initialize building structures + this->BuildProcessingQueue.clear(); + this->OutputLineCounter = 0; + this->ErrorsAndWarnings.clear(); + this->TotalErrors = 0; + this->TotalWarnings = 0; + this->BuildOutputLogSize = 0; + this->LastTickChar = '.'; + this->WarningQuotaReached = false; + this->ErrorQuotaReached = false; + + // For every chunk of data + int res; + while((res = cmsysProcess_WaitForData(cp, &data, &length, 0))) + { + // Replace '\0' with '\n', since '\0' does not really make sense. This is + // for Visual Studio output + for(int cc =0; cc < length; ++cc) + { + if(data[cc] == 0) + { + data[cc] = '\n'; + } + } + + // Process the chunk of data + if ( res == cmsysProcess_Pipe_STDERR ) + { + this->ProcessBuffer(data, length, tick, tick_len, ofs, + &this->BuildProcessingErrorQueue); + } + else + { + this->ProcessBuffer(data, length, tick, tick_len, ofs, + &this->BuildProcessingQueue); + } + } + + this->ProcessBuffer(0, 0, tick, tick_len, ofs, &this->BuildProcessingQueue); + this->ProcessBuffer(0, 0, tick, tick_len, ofs, + &this->BuildProcessingErrorQueue); + cmCTestLog(this->CTest, OUTPUT, " Size of output: " + << int(this->BuildOutputLogSize / 1024.0) << "K" << std::endl); + + // Properly handle output of the build command + cmsysProcess_WaitForExit(cp, 0); + int result = cmsysProcess_GetState(cp); + + if(result == cmsysProcess_State_Exited) + { + if (retVal) + { + *retVal = cmsysProcess_GetExitValue(cp); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Command exited with the value: " << *retVal << std::endl); + // if a non zero return value + if (*retVal) + { + // If there was an error running command, report that on the + // dashboard. + cmCTestBuildErrorWarning errorwarning; + errorwarning.LogLine = 1; + errorwarning.Text + = "*** WARNING non-zero return value in ctest from: "; + errorwarning.Text += argv[0]; + errorwarning.PreContext = ""; + errorwarning.PostContext = ""; + errorwarning.Error = false; + this->ErrorsAndWarnings.push_back(errorwarning); + this->TotalWarnings ++; + } + } + } + else if(result == cmsysProcess_State_Exception) + { + if (retVal) + { + *retVal = cmsysProcess_GetExitException(cp); + cmCTestLog(this->CTest, WARNING, "There was an exception: " << *retVal + << std::endl); + } + } + else if(result == cmsysProcess_State_Expired) + { + cmCTestLog(this->CTest, WARNING, "There was a timeout" << std::endl); + } + else if(result == cmsysProcess_State_Error) + { + // If there was an error running command, report that on the dashboard. + cmCTestBuildErrorWarning errorwarning; + errorwarning.LogLine = 1; + errorwarning.Text = "*** ERROR executing: "; + errorwarning.Text += cmsysProcess_GetErrorString(cp); + errorwarning.PreContext = ""; + errorwarning.PostContext = ""; + errorwarning.Error = true; + this->ErrorsAndWarnings.push_back(errorwarning); + this->TotalErrors ++; + cmCTestLog(this->CTest, ERROR_MESSAGE, "There was an error: " + << cmsysProcess_GetErrorString(cp) << std::endl); + } + + cmsysProcess_Delete(cp); + + return result; +} + +//###################################################################### +//###################################################################### +//###################################################################### +//###################################################################### + +//---------------------------------------------------------------------- +void cmCTestBuildHandler::ProcessBuffer(const char* data, int length, + size_t& tick, size_t tick_len, std::ofstream& ofs, + t_BuildProcessingQueueType* queue) +{ + const std::string::size_type tick_line_len = 50; + const char* ptr; + for ( ptr = data; ptr < data+length; ptr ++ ) + { + queue->push_back(*ptr); + } + this->BuildOutputLogSize += length; + + // until there are any lines left in the buffer + while ( 1 ) + { + // Find the end of line + t_BuildProcessingQueueType::iterator it; + for ( it = queue->begin(); + it != queue->end(); + ++ it ) + { + if ( *it == '\n' ) + { + break; + } + } + + // Once certain number of errors or warnings reached, ignore future errors + // or warnings. + if ( this->TotalWarnings >= this->MaxWarnings ) + { + this->WarningQuotaReached = true; + } + if ( this->TotalErrors >= this->MaxErrors ) + { + this->ErrorQuotaReached = true; + } + + // If the end of line was found + if ( it != queue->end() ) + { + // Create a contiguous array for the line + this->CurrentProcessingLine.clear(); + t_BuildProcessingQueueType::iterator cit; + for ( cit = queue->begin(); cit != it; ++cit ) + { + this->CurrentProcessingLine.push_back(*cit); + } + this->CurrentProcessingLine.push_back(0); + const char* line = &*this->CurrentProcessingLine.begin(); + + // Process the line + int lineType = this->ProcessSingleLine(line); + + // Erase the line from the queue + queue->erase(queue->begin(), it+1); + + // Depending on the line type, produce error or warning, or nothing + cmCTestBuildErrorWarning errorwarning; + bool found = false; + switch ( lineType ) + { + case b_WARNING_LINE: + this->LastTickChar = '*'; + errorwarning.Error = false; + found = true; + this->TotalWarnings ++; + break; + case b_ERROR_LINE: + this->LastTickChar = '!'; + errorwarning.Error = true; + found = true; + this->TotalErrors ++; + break; + } + if ( found ) + { + // This is an error or warning, so generate report + errorwarning.LogLine = static_cast(this->OutputLineCounter+1); + errorwarning.Text = line; + errorwarning.PreContext = ""; + errorwarning.PostContext = ""; + + // Copy pre-context to report + std::deque::iterator pcit; + for ( pcit = this->PreContext.begin(); + pcit != this->PreContext.end(); + ++pcit ) + { + errorwarning.PreContext += *pcit + "\n"; + } + this->PreContext.clear(); + + // Store report + this->ErrorsAndWarnings.push_back(errorwarning); + this->LastErrorOrWarning = this->ErrorsAndWarnings.end()-1; + this->PostContextCount = 0; + } + else + { + // This is not an error or warning. + // So, figure out if this is a post-context line + if ( this->ErrorsAndWarnings.size() && + this->LastErrorOrWarning != this->ErrorsAndWarnings.end() && + this->PostContextCount < this->MaxPostContext ) + { + this->PostContextCount ++; + this->LastErrorOrWarning->PostContext += line; + if ( this->PostContextCount < this->MaxPostContext ) + { + this->LastErrorOrWarning->PostContext += "\n"; + } + } + else + { + // Otherwise store pre-context for the next error + this->PreContext.push_back(line); + if ( this->PreContext.size() > this->MaxPreContext ) + { + this->PreContext.erase(this->PreContext.begin(), + this->PreContext.end()-this->MaxPreContext); + } + } + } + this->OutputLineCounter ++; + } + else + { + break; + } + } + + // Now that the buffer is processed, display missing ticks + int tickDisplayed = false; + while ( this->BuildOutputLogSize > (tick * tick_len) ) + { + tick ++; + cmCTestLog(this->CTest, HANDLER_OUTPUT, this->LastTickChar); + tickDisplayed = true; + if ( tick % tick_line_len == 0 && tick > 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Size: " + << int((this->BuildOutputLogSize / 1024.0) + 1) << "K" << std::endl + << " "); + } + } + if ( tickDisplayed ) + { + this->LastTickChar = '.'; + } + + // And if this is verbose output, display the content of the chunk + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + cmCTestLogWrite(data, length)); + + // Always store the chunk to the file + ofs << cmCTestLogWrite(data, length); +} + +//---------------------------------------------------------------------- +int cmCTestBuildHandler::ProcessSingleLine(const char* data) +{ + cmCTestLog(this->CTest, DEBUG, "Line: [" << data << "]" << std::endl); + + std::vector::iterator it; + + int warningLine = 0; + int errorLine = 0; + + // Check for regular expressions + + if ( !this->ErrorQuotaReached ) + { + // Errors + int wrxCnt = 0; + for ( it = this->ErrorMatchRegex.begin(); + it != this->ErrorMatchRegex.end(); + ++ it ) + { + if ( it->find(data) ) + { + errorLine = 1; + cmCTestLog(this->CTest, DEBUG, " Error Line: " << data + << " (matches: " << this->CustomErrorMatches[wrxCnt] << ")" + << std::endl); + break; + } + wrxCnt ++; + } + // Error exceptions + wrxCnt = 0; + for ( it = this->ErrorExceptionRegex.begin(); + it != this->ErrorExceptionRegex.end(); + ++ it ) + { + if ( it->find(data) ) + { + errorLine = 0; + cmCTestLog(this->CTest, DEBUG, " Not an error Line: " << data + << " (matches: " << this->CustomErrorExceptions[wrxCnt] << ")" + << std::endl); + break; + } + wrxCnt ++; + } + } + if ( !this->WarningQuotaReached ) + { + // Warnings + int wrxCnt = 0; + for ( it = this->WarningMatchRegex.begin(); + it != this->WarningMatchRegex.end(); + ++ it ) + { + if ( it->find(data) ) + { + warningLine = 1; + cmCTestLog(this->CTest, DEBUG, + " Warning Line: " << data + << " (matches: " << this->CustomWarningMatches[wrxCnt] << ")" + << std::endl); + break; + } + wrxCnt ++; + } + + wrxCnt = 0; + // Warning exceptions + for ( it = this->WarningExceptionRegex.begin(); + it != this->WarningExceptionRegex.end(); + ++ it ) + { + if ( it->find(data) ) + { + warningLine = 0; + cmCTestLog(this->CTest, DEBUG, " Not a warning Line: " << data + << " (matches: " << this->CustomWarningExceptions[wrxCnt] << ")" + << std::endl); + break; + } + wrxCnt ++; + } + } + if ( errorLine ) + { + return b_ERROR_LINE; + } + if ( warningLine ) + { + return b_WARNING_LINE; + } + return b_REGULAR_LINE; +} + diff --git a/CMakeLua/Source/CTest/cmCTestBuildHandler.h b/CMakeLua/Source/CTest/cmCTestBuildHandler.h new file mode 100755 index 0000000..c4b9c95 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestBuildHandler.h @@ -0,0 +1,141 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestBuildHandler.h,v $ + Language: C++ + Date: $Date: 2008/01/30 16:17:36 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestBuildHandler_h +#define cmCTestBuildHandler_h + + +#include "cmCTestGenericHandler.h" +#include "cmListFileCache.h" + +#include + +class cmMakefile; + +/** \class cmCTestBuildHandler + * \brief A class that handles ctest -S invocations + * + */ +class cmCTestBuildHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestBuildHandler, cmCTestGenericHandler); + + /* + * The main entry point for this class + */ + int ProcessHandler(); + + cmCTestBuildHandler(); + + void PopulateCustomVectors(cmMakefile *mf); + + /** + * Initialize handler + */ + virtual void Initialize(); + +private: + //! Run command specialized for make and configure. Returns process status + // and retVal is return value or exception. + int RunMakeCommand(const char* command, + int* retVal, const char* dir, int timeout, + std::ofstream& ofs); + + enum { + b_REGULAR_LINE, + b_WARNING_LINE, + b_ERROR_LINE + }; + + class cmCTestCompileErrorWarningRex + { + public: + cmCTestCompileErrorWarningRex() {} + int FileIndex; + int LineIndex; + cmsys::RegularExpression RegularExpression; + }; + + struct cmCTestBuildErrorWarning + { + bool Error; + int LogLine; + std::string Text; + std::string SourceFile; + std::string SourceFileTail; + int LineNumber; + std::string PreContext; + std::string PostContext; + }; + + // generate the XML output + void GenerateDartBuildOutput(std::ostream& os, + std::vector, + double elapsed_time); + + + std::string StartBuild; + std::string EndBuild; + double StartBuildTime; + double EndBuildTime; + + std::vector CustomErrorMatches; + std::vector CustomErrorExceptions; + std::vector CustomWarningMatches; + std::vector CustomWarningExceptions; + std::vector ErrorWarningFileLineRegex; + + std::vector ErrorMatchRegex; + std::vector ErrorExceptionRegex; + std::vector WarningMatchRegex; + std::vector WarningExceptionRegex; + + typedef std::deque t_BuildProcessingQueueType; + + void ProcessBuffer(const char* data, int length, size_t& tick, + size_t tick_len, std::ofstream& ofs, t_BuildProcessingQueueType* queue); + int ProcessSingleLine(const char* data); + + t_BuildProcessingQueueType BuildProcessingQueue; + t_BuildProcessingQueueType BuildProcessingErrorQueue; + size_t BuildOutputLogSize; + std::vector CurrentProcessingLine; + + cmStdString SimplifySourceDir; + cmStdString SimplifyBuildDir; + size_t OutputLineCounter; + typedef std::vector t_ErrorsAndWarningsVector; + t_ErrorsAndWarningsVector ErrorsAndWarnings; + t_ErrorsAndWarningsVector::iterator LastErrorOrWarning; + size_t PostContextCount; + size_t MaxPreContext; + size_t MaxPostContext; + std::deque PreContext; + + int TotalErrors; + int TotalWarnings; + char LastTickChar; + + bool ErrorQuotaReached; + bool WarningQuotaReached; + + int MaxErrors; + int MaxWarnings; +}; + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestCommand.h b/CMakeLua/Source/CTest/cmCTestCommand.h new file mode 100755 index 0000000..4f8e6f1 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestCommand.h @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/10 20:03:09 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestCommand_h +#define cmCTestCommand_h + +#include "cmCommand.h" + +class cmCTest; +class cmCTestScriptHandler; + +/** \class cmCTestCommand + * \brief A superclass for all commands added to the CTestScriptHandler + * + * cmCTestCommand is the superclass for all commands that will be added to + * the ctest script handlers parser. + * + */ +class cmCTestCommand : public cmCommand +{ +public: + + cmCTestCommand() {this->CTest = 0; this->CTestScriptHandler = 0;} + + cmCTest *CTest; + cmCTestScriptHandler *CTestScriptHandler; + + cmTypeMacro(cmCTestCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestConfigureCommand.cxx b/CMakeLua/Source/CTest/cmCTestConfigureCommand.cxx new file mode 100755 index 0000000..ea5fce7 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestConfigureCommand.cxx @@ -0,0 +1,108 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestConfigureCommand.cxx,v $ + Language: C++ + Date: $Date: 2006/07/11 19:58:07 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestConfigureCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" + +cmCTestGenericHandler* cmCTestConfigureCommand::InitializeHandler() +{ + if ( this->Values[ct_BUILD] ) + { + this->CTest->SetCTestConfiguration("BuildDirectory", + cmSystemTools::CollapseFullPath( + this->Values[ct_BUILD]).c_str()); + } + else + { + this->CTest->SetCTestConfiguration("BuildDirectory", + cmSystemTools::CollapseFullPath( + this->Makefile->GetDefinition("CTEST_BINARY_DIRECTORY")).c_str()); + } + if ( this->Values[ct_SOURCE] ) + { + this->CTest->SetCTestConfiguration("SourceDirectory", + cmSystemTools::CollapseFullPath( + this->Values[ct_SOURCE]).c_str()); + } + else + { + this->CTest->SetCTestConfiguration("SourceDirectory", + cmSystemTools::CollapseFullPath( + this->Makefile->GetDefinition("CTEST_SOURCE_DIRECTORY")).c_str()); + } + if ( this->CTest->GetCTestConfiguration("BuildDirectory").empty() ) + { + this->SetError("Build directory not specified. Either use BUILD " + "argument to CTEST_CONFIGURE command or set CTEST_BINARY_DIRECTORY " + "variable"); + return 0; + } + + const char* ctestConfigureCommand + = this->Makefile->GetDefinition("CTEST_CONFIGURE_COMMAND"); + if ( ctestConfigureCommand && *ctestConfigureCommand ) + { + this->CTest->SetCTestConfiguration("ConfigureCommand", + ctestConfigureCommand); + } + else + { + const char* cmakeGeneratorName + = this->Makefile->GetDefinition("CTEST_CMAKE_GENERATOR"); + if ( cmakeGeneratorName && *cmakeGeneratorName ) + { + const std::string& source_dir + = this->CTest->GetCTestConfiguration("SourceDirectory"); + if ( source_dir.empty() ) + { + this->SetError("Source directory not specified. Either use SOURCE " + "argument to CTEST_CONFIGURE command or set CTEST_SOURCE_DIRECTORY " + "variable"); + return 0; + } + std::string cmakeConfigureCommand = "\""; + cmakeConfigureCommand += this->CTest->GetCMakeExecutable(); + cmakeConfigureCommand += "\" \"-G"; + cmakeConfigureCommand += cmakeGeneratorName; + cmakeConfigureCommand += "\" \""; + cmakeConfigureCommand += source_dir; + cmakeConfigureCommand += "\""; + this->CTest->SetCTestConfiguration("ConfigureCommand", + cmakeConfigureCommand.c_str()); + } + else + { + this->SetError("Configure command is not specified. If this is a CMake " + "project, specify CTEST_CMAKE_GENERATOR, or if this is not CMake " + "project, specify CTEST_CONFIGURE_COMMAND."); + return 0; + } + } + + cmCTestGenericHandler* handler + = this->CTest->GetInitializedHandler("configure"); + if ( !handler ) + { + this->SetError( + "internal CTest error. Cannot instantiate configure handler"); + return 0; + } + return handler; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestConfigureCommand.h b/CMakeLua/Source/CTest/cmCTestConfigureCommand.h new file mode 100755 index 0000000..c69b389 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestConfigureCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestConfigureCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/29 17:01:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestConfigureCommand_h +#define cmCTestConfigureCommand_h + +#include "cmCTestHandlerCommand.h" + +/** \class cmCTestConfigure + * \brief Run a ctest script + * + * cmCTestConfigureCommand defineds the command to configures the project. + */ +class cmCTestConfigureCommand : public cmCTestHandlerCommand +{ +public: + + cmCTestConfigureCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestConfigureCommand* ni = new cmCTestConfigureCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_CONFIGURE";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Configures the repository."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_CONFIGURE(BUILD build_dir RETURN_VALUE res)\n" + "Configures the given build directory and stores results in " + "Configure.xml. The second argument is a variable that will hold " + "return value."; + } + + cmTypeMacro(cmCTestConfigureCommand, cmCTestHandlerCommand); + +protected: + cmCTestGenericHandler* InitializeHandler(); + +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestConfigureHandler.cxx b/CMakeLua/Source/CTest/cmCTestConfigureHandler.cxx new file mode 100755 index 0000000..80d78d8 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestConfigureHandler.cxx @@ -0,0 +1,136 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestConfigureHandler.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:17:36 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestConfigureHandler.h" + +#include "cmCTest.h" +#include "cmGeneratedFileStream.h" +#include "cmake.h" +#include + + +//---------------------------------------------------------------------- +cmCTestConfigureHandler::cmCTestConfigureHandler() +{ +} + +//---------------------------------------------------------------------- +void cmCTestConfigureHandler::Initialize() +{ + this->Superclass::Initialize(); +} + +//---------------------------------------------------------------------- +//clearly it would be nice if this were broken up into a few smaller +//functions and commented... +int cmCTestConfigureHandler::ProcessHandler() +{ + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Configure project" << std::endl); + std::string cCommand + = this->CTest->GetCTestConfiguration("ConfigureCommand"); + if ( cCommand.size() == 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find ConfigureCommand key in the DartConfiguration.tcl" + << std::endl); + return -1; + } + + std::string buildDirectory + = this->CTest->GetCTestConfiguration("BuildDirectory"); + if ( buildDirectory.size() == 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find BuildDirectory key in the DartConfiguration.tcl" + << std::endl); + return -1; + } + + double elapsed_time_start = cmSystemTools::GetTime(); + std::string output; + int retVal = 0; + int res = 0; + if ( !this->CTest->GetShowOnly() ) + { + cmGeneratedFileStream os; + if ( !this->StartResultingXML("Configure", os) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot open configure file" + << std::endl); + return 1; + } + std::string start_time = this->CTest->CurrentTime(); + unsigned int start_time_time = static_cast( + cmSystemTools::GetTime()); + + cmGeneratedFileStream ofs; + this->StartLogFile("Configure", ofs); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Configure with command: " + << cCommand.c_str() << std::endl); + res = this->CTest->RunMakeCommand(cCommand.c_str(), &output, + &retVal, buildDirectory.c_str(), + 0, ofs); + + if ( ofs ) + { + ofs.close(); + } + + if ( os ) + { + this->CTest->StartXML(os); + os << "\n" + << "\t" << start_time << "" + << std::endl + << "\t" << start_time_time + << "\n"; + + if ( res == cmsysProcess_State_Exited && retVal ) + { + os << retVal; + } + os << "" << cCommand.c_str() << "" + << std::endl; + cmCTestLog(this->CTest, DEBUG, "End" << std::endl); + os << "" << cmCTest::MakeXMLSafe(output) << "" << std::endl; + std::string end_time = this->CTest->CurrentTime(); + os << "\t" << retVal << "\n" + << "\t" << end_time << "\n" + << "\t" << + static_cast(cmSystemTools::GetTime()) + << "\n" + << "" + << static_cast( + (cmSystemTools::GetTime() - elapsed_time_start)/6)/10.0 + << "" + << "" << std::endl; + this->CTest->EndXML(os); + } + } + else + { + cmCTestLog(this->CTest, DEBUG, "Configure with command: " << cCommand + << std::endl); + } + if (! res || retVal ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Error(s) when updating the project" << std::endl); + return -1; + } + return 0; +} diff --git a/CMakeLua/Source/CTest/cmCTestConfigureHandler.h b/CMakeLua/Source/CTest/cmCTestConfigureHandler.h new file mode 100755 index 0000000..17066a7 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestConfigureHandler.h @@ -0,0 +1,44 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestConfigureHandler.h,v $ + Language: C++ + Date: $Date: 2006/03/09 16:17:10 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestConfigureHandler_h +#define cmCTestConfigureHandler_h + + +#include "cmCTestGenericHandler.h" +#include "cmListFileCache.h" + +/** \class cmCTestConfigureHandler + * \brief A class that handles ctest -S invocations + * + */ +class cmCTestConfigureHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestConfigureHandler, cmCTestGenericHandler); + + /* + * The main entry point for this class + */ + int ProcessHandler(); + + cmCTestConfigureHandler(); + + void Initialize(); +}; + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestCoverageCommand.cxx b/CMakeLua/Source/CTest/cmCTestCoverageCommand.cxx new file mode 100644 index 0000000..2855a45 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestCoverageCommand.cxx @@ -0,0 +1,38 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestCoverageCommand.cxx,v $ + Language: C++ + Date: $Date: 2006/03/29 17:33:41 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestCoverageCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" + +cmCTestGenericHandler* cmCTestCoverageCommand::InitializeHandler() +{ + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "CoverageCommand", "CTEST_COVERAGE_COMMAND"); + + cmCTestGenericHandler* handler + = this->CTest->GetInitializedHandler("coverage"); + if ( !handler ) + { + this->SetError("internal CTest error. Cannot instantiate test handler"); + return 0; + } + return handler; +} + + + diff --git a/CMakeLua/Source/CTest/cmCTestCoverageCommand.h b/CMakeLua/Source/CTest/cmCTestCoverageCommand.h new file mode 100644 index 0000000..b6e5bed --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestCoverageCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestCoverageCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/29 17:01:24 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestCoverageCommand_h +#define cmCTestCoverageCommand_h + +#include "cmCTestHandlerCommand.h" + +/** \class cmCTestCoverage + * \brief Run a ctest script + * + * cmCTestCoverageCommand defineds the command to test the project. + */ +class cmCTestCoverageCommand : public cmCTestHandlerCommand +{ +public: + + cmCTestCoverageCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestCoverageCommand* ni = new cmCTestCoverageCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_COVERAGE";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Tests the repository."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_COVERAGE([BUILD build_dir] [RETURN_VALUE res])\n" + "Perform the coverage of the given build directory and stores results " + "in Coverage.xml. The second argument is a variable that will hold " + "value."; + } + + cmTypeMacro(cmCTestCoverageCommand, cmCTestHandlerCommand); + +protected: + cmCTestGenericHandler* InitializeHandler(); +}; + + +#endif + diff --git a/CMakeLua/Source/CTest/cmCTestCoverageHandler.cxx b/CMakeLua/Source/CTest/cmCTestCoverageHandler.cxx new file mode 100755 index 0000000..043e482 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestCoverageHandler.cxx @@ -0,0 +1,1691 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestCoverageHandler.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:17:36 $ + Version: $Revision: 1.51 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestCoverageHandler.h" +#include "cmCTest.h" +#include "cmake.h" +#include "cmSystemTools.h" +#include "cmGeneratedFileStream.h" + +#include +#include +#include + +#include +#include +#include + +#define SAFEDIV(x,y) (((y)!=0)?((x)/(y)):(0)) + +class cmCTestRunProcess +{ +public: + cmCTestRunProcess() + { + this->Process = cmsysProcess_New(); + this->PipeState = -1; + this->TimeOut = -1; + } + ~cmCTestRunProcess() + { + if(!(this->PipeState == -1) + && !(this->PipeState == cmsysProcess_Pipe_None ) + && !(this->PipeState == cmsysProcess_Pipe_Timeout)) + { + this->WaitForExit(); + } + cmsysProcess_Delete(this->Process); + } + void SetCommand(const char* command) + { + this->CommandLineStrings.clear(); + this->CommandLineStrings.push_back(command);; + } + void AddArgument(const char* arg) + { + if(arg) + { + this->CommandLineStrings.push_back(arg); + } + } + void SetWorkingDirectory(const char* dir) + { + this->WorkingDirectory = dir; + } + void SetTimeout(double t) + { + this->TimeOut = t; + } + bool StartProcess() + { + std::vector args; + for(std::vector::iterator i = + this->CommandLineStrings.begin(); + i != this->CommandLineStrings.end(); ++i) + { + args.push_back(i->c_str()); + } + args.push_back(0); // null terminate + cmsysProcess_SetCommand(this->Process, &*args.begin()); + if(this->WorkingDirectory.size()) + { + cmsysProcess_SetWorkingDirectory(this->Process, + this->WorkingDirectory.c_str()); + } + + cmsysProcess_SetOption(this->Process, + cmsysProcess_Option_HideWindow, 1); + if(this->TimeOut != -1) + { + cmsysProcess_SetTimeout(this->Process, this->TimeOut); + } + cmsysProcess_Execute(this->Process); + this->PipeState = cmsysProcess_GetState(this->Process); + // if the process is running or exited return true + if(this->PipeState == cmsysProcess_State_Executing + || this->PipeState == cmsysProcess_State_Exited) + { + return true; + } + return false; + } + void SetStdoutFile(const char* fname) + { + cmsysProcess_SetPipeFile(this->Process, cmsysProcess_Pipe_STDOUT, fname); + } + void SetStderrFile(const char* fname) + { + cmsysProcess_SetPipeFile(this->Process, cmsysProcess_Pipe_STDERR, fname); + } + int WaitForExit(double* timeout =0) + { + this->PipeState = cmsysProcess_WaitForExit(this->Process, + timeout); + return this->PipeState; + } + int GetProcessState() { return this->PipeState;} +private: + int PipeState; + cmsysProcess* Process; + std::vector CommandLineStrings; + std::string WorkingDirectory; + double TimeOut; +}; + + +//---------------------------------------------------------------------- +//********************************************************************** +class cmCTestCoverageHandlerContainer +{ +public: + int Error; + std::string SourceDir; + std::string BinaryDir; + typedef std::vector SingleFileCoverageVector; + typedef std::map TotalCoverageMap; + TotalCoverageMap TotalCoverage; + std::ostream* OFS; +}; +//********************************************************************** +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +cmCTestCoverageHandler::cmCTestCoverageHandler() +{ +} + +//---------------------------------------------------------------------- +void cmCTestCoverageHandler::Initialize() +{ + this->Superclass::Initialize(); + this->CustomCoverageExclude.empty(); +} + +//---------------------------------------------------------------------- +bool cmCTestCoverageHandler::StartCoverageLogFile( + cmGeneratedFileStream& covLogFile, int logFileCount) +{ + char covLogFilename[1024]; + sprintf(covLogFilename, "CoverageLog-%d", logFileCount); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Open file: " + << covLogFilename << std::endl); + if (!this->StartResultingXML(covLogFilename, covLogFile) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot open log file: " + << covLogFilename << std::endl); + return false; + } + std::string local_start_time = this->CTest->CurrentTime(); + this->CTest->StartXML(covLogFile); + covLogFile << "" << std::endl + << "\t" << local_start_time << "" + << "\t" + << static_cast(cmSystemTools::GetTime()) + << "" + << std::endl; + return true; +} + +//---------------------------------------------------------------------- +void cmCTestCoverageHandler::EndCoverageLogFile(cmGeneratedFileStream& ostr, + int logFileCount) +{ + std::string local_end_time = this->CTest->CurrentTime(); + ostr << "\t" << local_end_time << "" << std::endl + << "\t" << + static_cast(cmSystemTools::GetTime()) + << "" << std::endl + << "" << std::endl; + this->CTest->EndXML(ostr); + char covLogFilename[1024]; + sprintf(covLogFilename, "CoverageLog-%d.xml", logFileCount); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Close file: " + << covLogFilename << std::endl); + ostr.Close(); +} + +//---------------------------------------------------------------------- +bool cmCTestCoverageHandler::ShouldIDoCoverage(const char* file, + const char* srcDir, + const char* binDir) +{ + std::vector::iterator sit; + for ( sit = this->CustomCoverageExcludeRegex.begin(); + sit != this->CustomCoverageExcludeRegex.end(); ++ sit ) + { + if ( sit->find(file) ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " File " << file + << " is excluded in CTestCustom.ctest" << std::endl;); + return false; + } + } + + std::string fSrcDir = cmSystemTools::CollapseFullPath(srcDir); + std::string fBinDir = cmSystemTools::CollapseFullPath(binDir); + std::string fFile = cmSystemTools::CollapseFullPath(file); + bool sourceSubDir = cmSystemTools::IsSubDirectory(fFile.c_str(), + fSrcDir.c_str()); + bool buildSubDir = cmSystemTools::IsSubDirectory(fFile.c_str(), + fBinDir.c_str()); + // Always check parent directory of the file. + std::string fileDir = cmSystemTools::GetFilenamePath(fFile.c_str()); + std::string checkDir; + + // We also need to check the binary/source directory pair. + if ( sourceSubDir && buildSubDir ) + { + if ( fSrcDir.size() > fBinDir.size() ) + { + checkDir = fSrcDir; + } + else + { + checkDir = fBinDir; + } + } + else if ( sourceSubDir ) + { + checkDir = fSrcDir; + } + else if ( buildSubDir ) + { + checkDir = fBinDir; + } + std::string ndc + = cmSystemTools::FileExistsInParentDirectories(".NoDartCoverage", + fFile.c_str(), checkDir.c_str()); + if ( ndc.size() ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Found: " << ndc.c_str() + << " so skip coverage of " << file << std::endl); + return false; + } + + // By now checkDir should be set to parent directory of the file. + // Get the relative path to the file an apply it to the opposite directory. + // If it is the same as fileDir, then ignore, otherwise check. + std::string relPath; + if(checkDir.size() ) + { + relPath = cmSystemTools::RelativePath(checkDir.c_str(), + fFile.c_str()); + } + else + { + relPath = fFile; + } + if ( checkDir == fSrcDir ) + { + checkDir = fBinDir; + } + else + { + checkDir = fSrcDir; + } + fFile = checkDir + "/" + relPath; + fFile = cmSystemTools::GetFilenamePath(fFile.c_str()); + + if ( fileDir == fFile ) + { + // This is in-source build, so we trust the previous check. + return true; + } + + ndc = cmSystemTools::FileExistsInParentDirectories(".NoDartCoverage", + fFile.c_str(), checkDir.c_str()); + if ( ndc.size() ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Found: " << ndc.c_str() + << " so skip coverage of: " << file << std::endl); + return false; + } + // Ok, nothing in source tree, nothing in binary tree + return true; +} + +//---------------------------------------------------------------------- +//clearly it would be nice if this were broken up into a few smaller +//functions and commented... +int cmCTestCoverageHandler::ProcessHandler() +{ + int error = 0; + // do we have time for this + if (this->CTest->GetRemainingTimeAllowed() < 120) + { + return error; + } + + std::string coverage_start_time = this->CTest->CurrentTime(); + unsigned int coverage_start_time_time = static_cast( + cmSystemTools::GetTime()); + std::string sourceDir + = this->CTest->GetCTestConfiguration("SourceDirectory"); + std::string binaryDir + = this->CTest->GetCTestConfiguration("BuildDirectory"); + + cmGeneratedFileStream ofs; + double elapsed_time_start = cmSystemTools::GetTime(); + if ( !this->StartLogFile("Coverage", ofs) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot create LastCoverage.log file" << std::endl); + } + + ofs << "Performing coverage: " << elapsed_time_start << std::endl; + + cmSystemTools::ConvertToUnixSlashes(sourceDir); + cmSystemTools::ConvertToUnixSlashes(binaryDir); + + std::string asfGlob = sourceDir + "/*"; + std::string abfGlob = binaryDir + "/*"; + + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Performing coverage" << std::endl); + + cmCTestCoverageHandlerContainer cont; + cont.Error = error; + cont.SourceDir = sourceDir; + cont.BinaryDir = binaryDir; + cont.OFS = &ofs; + + // setup the regex exclude stuff + this->CustomCoverageExcludeRegex.empty(); + std::vector::iterator rexIt; + for ( rexIt = this->CustomCoverageExclude.begin(); + rexIt != this->CustomCoverageExclude.end(); + ++ rexIt ) + { + this->CustomCoverageExcludeRegex.push_back( + cmsys::RegularExpression(rexIt->c_str())); + } + + + if(this->HandleBullseyeCoverage(&cont)) + { + return cont.Error; + } + int file_count = 0; + file_count += this->HandleGCovCoverage(&cont); + if ( file_count < 0 ) + { + return error; + } + file_count += this->HandleTracePyCoverage(&cont); + if ( file_count < 0 ) + { + return error; + } + error = cont.Error; + + + if ( file_count == 0 ) + { + cmCTestLog(this->CTest, WARNING, + " Cannot find any coverage files. Ignoring Coverage request." + << std::endl); + return error; + } + cmGeneratedFileStream covSumFile; + cmGeneratedFileStream covLogFile; + + if (!this->StartResultingXML("Coverage", covSumFile)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot open coverage summary file." << std::endl); + return -1; + } + + this->CTest->StartXML(covSumFile); + // Produce output xml files + + covSumFile << "" << std::endl + << "\t" << coverage_start_time << "" + << std::endl + << "\t" << coverage_start_time_time << "" + << std::endl; + int logFileCount = 0; + if ( !this->StartCoverageLogFile(covLogFile, logFileCount) ) + { + return -1; + } + cmCTestCoverageHandlerContainer::TotalCoverageMap::iterator fileIterator; + int cnt = 0; + long total_tested = 0; + long total_untested = 0; + //std::string fullSourceDir = sourceDir + "/"; + //std::string fullBinaryDir = binaryDir + "/"; + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Acumulating results (each . represents one file):" << std::endl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " "); + + std::vector errorsWhileAccumulating; + + file_count = 0; + for ( fileIterator = cont.TotalCoverage.begin(); + fileIterator != cont.TotalCoverage.end(); + ++fileIterator ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "." << std::flush); + file_count ++; + if ( file_count % 50 == 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " processed: " << file_count + << " out of " + << cont.TotalCoverage.size() << std::endl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " "); + } + if ( cnt % 100 == 0 ) + { + this->EndCoverageLogFile(covLogFile, logFileCount); + logFileCount ++; + if ( !this->StartCoverageLogFile(covLogFile, logFileCount) ) + { + return -1; + } + } + const std::string fullFileName = fileIterator->first; + const std::string fileName + = cmSystemTools::GetFilenameName(fullFileName.c_str()); + std::string fullFilePath + = cmSystemTools::GetFilenamePath(fullFileName.c_str()); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Process file: " << fullFileName << std::endl); + + cmSystemTools::ConvertToUnixSlashes(fullFilePath); + + if ( !cmSystemTools::FileExists(fullFileName.c_str()) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot find file: " + << fullFileName.c_str() << std::endl); + continue; + } + + bool shouldIDoCoverage + = this->ShouldIDoCoverage(fullFileName.c_str(), + sourceDir.c_str(), binaryDir.c_str()); + if ( !shouldIDoCoverage ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + ".NoDartCoverage found, so skip coverage check for: " + << fullFileName.c_str() + << std::endl); + continue; + } + + const cmCTestCoverageHandlerContainer::SingleFileCoverageVector& fcov + = fileIterator->second; + covLogFile << "\tCTest->MakeXMLSafe(fileName.c_str()) + << "\" FullPath=\"" << this->CTest->MakeXMLSafe( + this->CTest->GetShortPathToFile( + fileIterator->first.c_str())) << "\">" << std::endl + << "\t\t" << std::endl; + + std::ifstream ifs(fullFileName.c_str()); + if ( !ifs) + { + cmOStringStream ostr; + ostr << "Cannot open source file: " << fullFileName.c_str(); + errorsWhileAccumulating.push_back(ostr.str()); + error ++; + continue; + } + + int tested = 0; + int untested = 0; + + cmCTestCoverageHandlerContainer::SingleFileCoverageVector::size_type cc; + std::string line; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Actually perfoming coverage for: " << fullFileName << std::endl); + for ( cc= 0; cc < fcov.size(); cc ++ ) + { + if ( !cmSystemTools::GetLineFromStream(ifs, line) && + cc != fcov.size() -1 ) + { + cmOStringStream ostr; + ostr << "Problem reading source file: " << fullFileName.c_str() + << " line:" << cc; + errorsWhileAccumulating.push_back(ostr.str()); + error ++; + break; + } + covLogFile << "\t\t" + << this->CTest->MakeXMLSafe(line.c_str()) << "" << std::endl; + if ( fcov[cc] == 0 ) + { + untested ++; + } + else if ( fcov[cc] > 0 ) + { + tested ++; + } + } + if ( cmSystemTools::GetLineFromStream(ifs, line) ) + { + cmOStringStream ostr; + ostr << "Looks like there are more lines in the file: " << line; + errorsWhileAccumulating.push_back(ostr.str()); + } + float cper = 0; + float cmet = 0; + if ( tested + untested > 0 ) + { + cper = (100 * SAFEDIV(static_cast(tested), + static_cast(tested + untested))); + cmet = ( SAFEDIV(static_cast(tested + 10), + static_cast(tested + untested + 10))); + } + total_tested += tested; + total_untested += untested; + covLogFile << "\t\t" << std::endl + << "\t" << std::endl; + covSumFile << "\tCTest->MakeXMLSafe(fileName) + << "\" FullPath=\"" << this->CTest->MakeXMLSafe( + this->CTest->GetShortPathToFile(fullFileName.c_str())) + << "\" Covered=\"" << (tested==0?"true":"false") << "\">\n" + << "\t\t" << tested << "\n" + << "\t\t" << untested << "\n" + << "\t\t"; + covSumFile.setf(std::ios::fixed, std::ios::floatfield); + covSumFile.precision(2); + covSumFile << (cper) << "\n" + << "\t\t"; + covSumFile.setf(std::ios::fixed, std::ios::floatfield); + covSumFile.precision(2); + covSumFile << (cmet) << "\n" + << "\t" << std::endl; + cnt ++; + } + this->EndCoverageLogFile(covLogFile, logFileCount); + + if ( errorsWhileAccumulating.size() > 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, std::endl); + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Error(s) while acumulating results:" << std::endl); + std::vector::iterator erIt; + for ( erIt = errorsWhileAccumulating.begin(); + erIt != errorsWhileAccumulating.end(); + ++ erIt ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " " << erIt->c_str() << std::endl); + } + } + + int total_lines = total_tested + total_untested; + float percent_coverage = 100 * SAFEDIV(static_cast(total_tested), + static_cast(total_lines)); + if ( total_lines == 0 ) + { + percent_coverage = 0; + } + + std::string end_time = this->CTest->CurrentTime(); + + covSumFile << "\t" << total_tested << "\n" + << "\t" << total_untested << "\n" + << "\t" << total_lines << "\n" + << "\t"; + covSumFile.setf(std::ios::fixed, std::ios::floatfield); + covSumFile.precision(2); + covSumFile << (percent_coverage)<< "\n" + << "\t" << end_time << "\n" + << "\t" << + static_cast(cmSystemTools::GetTime()) + << "\n"; + covSumFile << "" << + static_cast((cmSystemTools::GetTime() - elapsed_time_start)/6)/10.0 + << "" + << "" << std::endl; + this->CTest->EndXML(covSumFile); + + cmCTestLog(this->CTest, HANDLER_OUTPUT, "" << std::endl + << "\tCovered LOC: " + << total_tested << std::endl + << "\tNot covered LOC: " << total_untested << std::endl + << "\tTotal LOC: " << total_lines << std::endl + << "\tPercentage Coverage: " + << std::setiosflags(std::ios::fixed) + << std::setprecision(2) + << (percent_coverage) << "%" << std::endl); + + ofs << "\tCovered LOC: " << total_tested << std::endl + << "\tNot covered LOC: " << total_untested << std::endl + << "\tTotal LOC: " << total_lines << std::endl + << "\tPercentage Coverage: " + << std::setiosflags(std::ios::fixed) + << std::setprecision(2) + << (percent_coverage) << "%" << std::endl; + + + if ( error ) + { + return -1; + } + return 0; +} + +//---------------------------------------------------------------------- +void cmCTestCoverageHandler::PopulateCustomVectors(cmMakefile *mf) +{ + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " Add coverage exclude regular expressions." << std::endl); + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_COVERAGE_EXCLUDE", + this->CustomCoverageExclude); + std::vector::iterator it; + for ( it = this->CustomCoverageExclude.begin(); + it != this->CustomCoverageExclude.end(); + ++ it ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " Add coverage exclude: " + << it->c_str() << std::endl); + } +} + +//---------------------------------------------------------------------- +int cmCTestCoverageHandler::HandleGCovCoverage( + cmCTestCoverageHandlerContainer* cont) +{ + std::string gcovCommand + = this->CTest->GetCTestConfiguration("CoverageCommand"); + + // Style 1 + std::string st1gcovOutputRex1 + = "[0-9]+\\.[0-9]+% of [0-9]+ (source |)lines executed in file (.*)$"; + std::string st1gcovOutputRex2 = "^Creating (.*\\.gcov)\\."; + cmsys::RegularExpression st1re1(st1gcovOutputRex1.c_str()); + cmsys::RegularExpression st1re2(st1gcovOutputRex2.c_str()); + + + // Style 2 + std::string st2gcovOutputRex1 = "^File *[`'](.*)'$"; + std::string st2gcovOutputRex2 + = "Lines executed: *[0-9]+\\.[0-9]+% of [0-9]+$"; + std::string st2gcovOutputRex3 = "^(.*):creating [`'](.*\\.gcov)'"; + std::string st2gcovOutputRex4 = "^(.*):unexpected EOF *$"; + std::string st2gcovOutputRex5 = "^(.*):cannot open source file*$"; + std::string st2gcovOutputRex6 + = "^(.*):source file is newer than graph file `(.*)'$"; + cmsys::RegularExpression st2re1(st2gcovOutputRex1.c_str()); + cmsys::RegularExpression st2re2(st2gcovOutputRex2.c_str()); + cmsys::RegularExpression st2re3(st2gcovOutputRex3.c_str()); + cmsys::RegularExpression st2re4(st2gcovOutputRex4.c_str()); + cmsys::RegularExpression st2re5(st2gcovOutputRex5.c_str()); + cmsys::RegularExpression st2re6(st2gcovOutputRex6.c_str()); + + + cmsys::Glob gl; + gl.RecurseOn(); + std::string daGlob = cont->BinaryDir + "/*.da"; + gl.FindFiles(daGlob); + std::vector files = gl.GetFiles(); + daGlob = cont->BinaryDir + "/*.gcda"; + gl.FindFiles(daGlob); + std::vector& moreFiles = gl.GetFiles(); + files.insert(files.end(), moreFiles.begin(), moreFiles.end()); + std::vector::iterator it; + + if ( files.size() == 0 ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " Cannot find any GCov coverage files." + << std::endl); + // No coverage files is a valid thing, so the exit code is 0 + return 0; + } + + std::string testingDir = this->CTest->GetBinaryDir() + "/Testing"; + std::string tempDir = testingDir + "/CoverageInfo"; + std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::MakeDirectory(tempDir.c_str()); + cmSystemTools::ChangeDirectory(tempDir.c_str()); + + int gcovStyle = 0; + + std::set missingFiles; + + std::string actualSourceFile = ""; + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Processing coverage (each . represents one file):" << std::endl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " "); + int file_count = 0; + for ( it = files.begin(); it != files.end(); ++ it ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "." << std::flush); + std::string fileDir = cmSystemTools::GetFilenamePath(it->c_str()); + std::string command = "\"" + gcovCommand + "\" -l -o \"" + fileDir + + "\" \"" + *it + "\""; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, command.c_str() + << std::endl); + std::string output = ""; + std::string errors = ""; + int retVal = 0; + *cont->OFS << "* Run coverage for: " << fileDir.c_str() << std::endl; + *cont->OFS << " Command: " << command.c_str() << std::endl; + int res = this->CTest->RunCommand(command.c_str(), &output, &errors, + &retVal, tempDir.c_str(), 0 /*this->TimeOut*/); + + *cont->OFS << " Output: " << output.c_str() << std::endl; + *cont->OFS << " Errors: " << errors.c_str() << std::endl; + if ( ! res ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem running coverage on file: " << it->c_str() << std::endl); + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Command produced error: " << errors << std::endl); + cont->Error ++; + continue; + } + if ( retVal != 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Coverage command returned: " + << retVal << " while processing: " << it->c_str() << std::endl); + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Command produced error: " << cont->Error << std::endl); + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "--------------------------------------------------------------" + << std::endl + << output << std::endl + << "--------------------------------------------------------------" + << std::endl); + std::vector lines; + std::vector::iterator line; + + + // Globals for storing current source file and current gcov file; + cmSystemTools::Split(output.c_str(), lines); + for ( line = lines.begin(); line != lines.end(); ++line) + { + std::string sourceFile; + std::string gcovFile; + cmCTestLog(this->CTest, DEBUG, "Line: [" << line->c_str() << "]" + << std::endl); + if ( line->size() == 0 ) + { + // Ignore empty line; probably style 2 + } + else if ( st1re1.find(line->c_str()) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 1 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 1; + } + + actualSourceFile = ""; + sourceFile = st1re1.match(2); + } + else if ( st1re2.find(line->c_str() ) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 1 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 1; + } + + gcovFile = st1re2.match(1); + } + else if ( st2re1.find(line->c_str() ) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 2 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 2; + } + + actualSourceFile = ""; + sourceFile = st2re1.match(1); + } + else if ( st2re2.find(line->c_str() ) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 2 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 2; + } + } + else if ( st2re3.find(line->c_str() ) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 2 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 2; + } + + gcovFile = st2re3.match(2); + } + else if ( st2re4.find(line->c_str() ) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 2 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 2; + } + + cmCTestLog(this->CTest, WARNING, "Warning: " << st2re4.match(1) + << " had unexpected EOF" << std::endl); + } + else if ( st2re5.find(line->c_str() ) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 2 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 2; + } + + cmCTestLog(this->CTest, WARNING, "Warning: Cannot open file: " + << st2re5.match(1) << std::endl); + } + else if ( st2re6.find(line->c_str() ) ) + { + if ( gcovStyle != 0 ) + { + if ( gcovStyle != 2 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown gcov output style" + << std::endl); + cont->Error ++; + break; + } + gcovStyle = 2; + } + + cmCTestLog(this->CTest, WARNING, "Warning: File: " << st2re6.match(1) + << " is newer than " << st2re6.match(2) << std::endl); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Unknown line: [" << line->c_str() << "]" << std::endl); + cont->Error ++; + //abort(); + } + if ( !gcovFile.empty() && actualSourceFile.size() ) + { + cmCTestCoverageHandlerContainer::SingleFileCoverageVector* vec + = &cont->TotalCoverage[actualSourceFile]; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " in file: " + << gcovFile << std::endl); + std::ifstream ifile(gcovFile.c_str()); + if ( ! ifile ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot open file: " + << gcovFile << std::endl); + } + else + { + long cnt = -1; + std::string nl; + while ( cmSystemTools::GetLineFromStream(ifile, nl) ) + { + cnt ++; + + //TODO: Handle gcov 3.0 non-coverage lines + + // Skip empty lines + if ( !nl.size() ) + { + continue; + } + + // Skip unused lines + if ( nl.size() < 12 ) + { + continue; + } + + // Read the coverage count from the beginning of the gcov output + // line + std::string prefix = nl.substr(0, 12); + int cov = atoi(prefix.c_str()); + // Read the line number starting at the 10th character of the gcov + // output line + std::string lineNumber = nl.substr(10, 5); + int lineIdx = atoi(lineNumber.c_str())-1; + if ( lineIdx >= 0 ) + { + while ( vec->size() <= + static_cast(lineIdx) ) + { + vec->push_back(-1); + } + // Initially all entries are -1 (not used). If we get coverage + // information, increment it to 0 first. + if ( (*vec)[lineIdx] < 0 ) + { + if ( cov > 0 || prefix.find("#") != prefix.npos ) + { + (*vec)[lineIdx] = 0; + } + } + (*vec)[lineIdx] += cov; + } + } + } + actualSourceFile = ""; + } + if ( !sourceFile.empty() && actualSourceFile.empty() ) + { + gcovFile = ""; + // Is it in the source dir? + if ( sourceFile.size() > cont->SourceDir.size() && + sourceFile.substr(0, cont->SourceDir.size()) == cont->SourceDir && + sourceFile[cont->SourceDir.size()] == '/' ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " produced s: " + << sourceFile.c_str() << std::endl); + *cont->OFS << " produced in source dir: " << sourceFile.c_str() + << std::endl; + actualSourceFile + = cmSystemTools::CollapseFullPath(sourceFile.c_str()); + } + // Binary dir? + if ( sourceFile.size() > cont->BinaryDir.size() && + sourceFile.substr(0, cont->BinaryDir.size()) == cont->BinaryDir && + sourceFile[cont->BinaryDir.size()] == '/' ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " produced b: " + << sourceFile.c_str() << std::endl); + *cont->OFS << " produced in binary dir: " << sourceFile.c_str() + << std::endl; + actualSourceFile + = cmSystemTools::CollapseFullPath(sourceFile.c_str()); + } + if ( actualSourceFile.empty() ) + { + if ( missingFiles.find(actualSourceFile) == missingFiles.end() ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Something went wrong" << std::endl); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "File: [" + << sourceFile.c_str() << "]" << std::endl); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "s: [" + << sourceFile.substr(0, cont->SourceDir.size()) << "]" + << std::endl); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "b: [" + << sourceFile.substr(0, cont->BinaryDir.size()) << "]" + << std::endl); + *cont->OFS << " Something went wrong. Cannot find: " + << sourceFile.c_str() + << " in source dir: " << cont->SourceDir.c_str() + << " or binary dir: " << cont->BinaryDir.c_str() << std::endl; + missingFiles.insert(actualSourceFile); + } + } + } + } + file_count ++; + if ( file_count % 50 == 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " processed: " << file_count + << " out of " << files.size() << std::endl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " "); + } + } + cmSystemTools::ChangeDirectory(currentDirectory.c_str()); + return file_count; +} + +//---------------------------------------------------------------------- +int cmCTestCoverageHandler::HandleTracePyCoverage( + cmCTestCoverageHandlerContainer* cont) +{ + cmsys::Glob gl; + gl.RecurseOn(); + std::string daGlob = cont->BinaryDir + "/*.cover"; + gl.FindFiles(daGlob); + std::vector files = gl.GetFiles(); + + if ( files.size() == 0 ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " Cannot find any Python Trace.py coverage files." + << std::endl); + // No coverage files is a valid thing, so the exit code is 0 + return 0; + } + + std::string testingDir = this->CTest->GetBinaryDir() + "/Testing"; + std::string tempDir = testingDir + "/CoverageInfo"; + std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::MakeDirectory(tempDir.c_str()); + cmSystemTools::ChangeDirectory(tempDir.c_str()); + + cmSystemTools::ChangeDirectory(currentDirectory.c_str()); + + std::vector::iterator fileIt; + int file_count = 0; + for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt ) + { + std::string fileName = this->FindFile(cont, *fileIt); + if ( fileName.empty() ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find source Python file corresponding to: " + << fileIt->c_str() << std::endl); + continue; + } + + std::string actualSourceFile + = cmSystemTools::CollapseFullPath(fileName.c_str()); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " Check coverage for file: " << actualSourceFile.c_str() + << std::endl); + cmCTestCoverageHandlerContainer::SingleFileCoverageVector* vec + = &cont->TotalCoverage[actualSourceFile]; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " in file: " << fileIt->c_str() << std::endl); + std::ifstream ifile(fileIt->c_str()); + if ( ! ifile ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot open file: " + << fileIt->c_str() << std::endl); + } + else + { + long cnt = -1; + std::string nl; + while ( cmSystemTools::GetLineFromStream(ifile, nl) ) + { + cnt ++; + + // Skip empty lines + if ( !nl.size() ) + { + continue; + } + + // Skip unused lines + if ( nl.size() < 12 ) + { + continue; + } + + // Read the coverage count from the beginning of the Trace.py output + // line + std::string prefix = nl.substr(0, 6); + if ( prefix[5] != ' ' && prefix[5] != ':' ) + { + // This is a hack. We should really do something more elaborate + prefix = nl.substr(0, 7); + if ( prefix[6] != ' ' && prefix[6] != ':' ) + { + prefix = nl.substr(0, 8); + if ( prefix[7] != ' ' && prefix[7] != ':' ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Currently the limit is maximum coverage of 999999" + << std::endl); + } + } + } + int cov = atoi(prefix.c_str()); + if ( prefix[prefix.size()-1] != ':' ) + { + // This line does not have ':' so no coverage here. That said, + // Trace.py does not handle not covered lines versus comments etc. + // So, this will be set to 0. + cov = 0; + } + cmCTestLog(this->CTest, DEBUG, "Prefix: " << prefix.c_str() + << " cov: " << cov + << std::endl); + // Read the line number starting at the 10th character of the gcov + // output line + int lineIdx = cnt; + if ( lineIdx >= 0 ) + { + while ( vec->size() <= + static_cast(lineIdx) ) + { + vec->push_back(-1); + } + // Initially all entries are -1 (not used). If we get coverage + // information, increment it to 0 first. + if ( (*vec)[lineIdx] < 0 ) + { + if ( cov >= 0 ) + { + (*vec)[lineIdx] = 0; + } + } + (*vec)[lineIdx] += cov; + } + } + } + ++ file_count; + } + cmSystemTools::ChangeDirectory(currentDirectory.c_str()); + return file_count; +} + +//---------------------------------------------------------------------- +std::string cmCTestCoverageHandler::FindFile( + cmCTestCoverageHandlerContainer* cont, + std::string fileName) +{ + std::string fileNameNoE + = cmSystemTools::GetFilenameWithoutLastExtension(fileName); + // First check in source and binary directory + std::string fullName = cont->SourceDir + "/" + fileNameNoE + ".py"; + if ( cmSystemTools::FileExists(fullName.c_str()) ) + { + return fullName; + } + fullName = cont->BinaryDir + "/" + fileNameNoE + ".py"; + if ( cmSystemTools::FileExists(fullName.c_str()) ) + { + return fullName; + } + return ""; +} + +// This is a header put on each marked up source file +namespace +{ + const char* bullseyeHelp[] = + {" Coverage produced by bullseye covbr tool: ", + " www.bullseye.com/help/ref_covbr.html", + " * An arrow --> indicates incomplete coverage.", + " * An X indicates a function that was invoked, a switch label that ", + " was exercised, a try-block that finished, or an exception handler ", + " that was invoked.", + " * A T or F indicates a boolean decision that evaluated true or false,", + " respectively.", + " * A t or f indicates a boolean condition within a decision if the ", + " condition evaluated true or false, respectively.", + " * A k indicates a constant decision or condition.", + " * The slash / means this probe is excluded from summary results. ", + 0}; +} + +//---------------------------------------------------------------------- +int cmCTestCoverageHandler::RunBullseyeCoverageBranch( + cmCTestCoverageHandlerContainer* cont, + std::set& coveredFileNames, + std::vector& files, + std::vector& filesFullPath) +{ + if(files.size() != filesFullPath.size()) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Files and full path files not the same size?:\n"); + return 0; + } + // create the output stream for the CoverageLog-N.xml file + cmGeneratedFileStream covLogFile; + int logFileCount = 0; + if ( !this->StartCoverageLogFile(covLogFile, logFileCount) ) + { + return -1; + } + // for each file run covbr on that file to get the coverage + // information for that file + std::string outputFile; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "run covbr: " + << std::endl); + + if(!this->RunBullseyeCommand(cont, "covbr", 0, outputFile)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "error running covbr for." << "\n"); + return -1; + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "covbr output in " << outputFile + << std::endl); + // open the output file + std::ifstream fin(outputFile.c_str()); + if(!fin) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot open coverage file: " << + outputFile.c_str() << std::endl); + return 0; + } + std::map fileMap; + std::vector::iterator fp = filesFullPath.begin(); + for(std::vector::iterator f = files.begin(); + f != files.end(); ++f, ++fp) + { + fileMap[*f] = *fp; + } + + int count =0; // keep count of the number of files + // Now parse each line from the bullseye cov log file + std::string lineIn; + bool valid = false; // are we in a valid output file + int line = 0; // line of the current file + cmStdString file; + while(cmSystemTools::GetLineFromStream(fin, lineIn)) + { + bool startFile = false; + if(lineIn.size() > 1 && lineIn[lineIn.size()-1] == ':') + { + file = lineIn.substr(0, lineIn.size()-1); + if(coveredFileNames.find(file) != coveredFileNames.end()) + { + startFile = true; + } + } + if(startFile) + { + // if we are in a valid file close it because a new one started + if(valid) + { + covLogFile << "\t\t" << std::endl + << "\t" << std::endl; + } + // only allow 100 files in each log file + if ( count != 0 && count % 100 == 0 ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "start a new log file: " + << count + << std::endl); + this->EndCoverageLogFile(covLogFile, logFileCount); + logFileCount ++; + if ( !this->StartCoverageLogFile(covLogFile, logFileCount) ) + { + return -1; + } + count++; // move on one + } + std::map::iterator + i = fileMap.find(file); + // if the file should be covered write out the header for that file + if(i != fileMap.end()) + { + // we have a new file so count it in the output + count++; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Produce coverage for file: " + << file.c_str() << " " << count + << std::endl); + // start the file output + covLogFile << "\tCTest->MakeXMLSafe(i->first.c_str()) + << "\" FullPath=\"" << this->CTest->MakeXMLSafe( + this->CTest->GetShortPathToFile( + i->second.c_str())) << "\">" << std::endl + << "\t\t" << std::endl; + // write the bullseye header + line =0; + for(int k =0; bullseyeHelp[k] != 0; ++k) + { + covLogFile << "\t\t" + << this->CTest->MakeXMLSafe(bullseyeHelp[k]) + << "" << std::endl; + line++; + } + valid = true; // we are in a valid file section + } + else + { + // this is not a file that we want coverage for + valid = false; + } + } + // we are not at a start file, and we are in a valid file output the line + else if(valid) + { + covLogFile << "\t\t" + << this->CTest->MakeXMLSafe(lineIn.c_str()) + << "" << std::endl; + line++; + } + } + // if we ran out of lines a valid file then close that file + if(valid) + { + covLogFile << "\t\t" << std::endl + << "\t" << std::endl; + } + this->EndCoverageLogFile(covLogFile, logFileCount); + return 1; +} + +//---------------------------------------------------------------------- +int cmCTestCoverageHandler::RunBullseyeCommand( + cmCTestCoverageHandlerContainer* cont, + const char* cmd, + const char* arg, + std::string& outputFile) +{ + std::string program = cmSystemTools::FindProgram(cmd); + if(program.size() == 0) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot find :" << cmd << "\n"); + return 0; + } + if(arg) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Run : " << program.c_str() << " " << arg << "\n"); + } + else + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Run : " << program.c_str() << "\n"); + } + // create a process object and start it + cmCTestRunProcess runCoverageSrc; + runCoverageSrc.SetCommand(program.c_str()); + runCoverageSrc.AddArgument(arg); + std::string stdoutFile = cont->BinaryDir + "/Testing/Temporary/"; + stdoutFile += this->GetCTestInstance()->GetCurrentTag(); + stdoutFile += "-"; + stdoutFile += cmd; + std::string stderrFile = stdoutFile; + stdoutFile += ".stdout"; + stderrFile += ".stderr"; + runCoverageSrc.SetStdoutFile(stdoutFile.c_str()); + runCoverageSrc.SetStderrFile(stderrFile.c_str()); + if(!runCoverageSrc.StartProcess()) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Could not run : " + << program.c_str() << " " << arg << "\n" + << "kwsys process state : " + << runCoverageSrc.GetProcessState()); + return 0; + } + // since we set the output file names wait for it to end + runCoverageSrc.WaitForExit(); + outputFile = stdoutFile; + return 1; +} + +//---------------------------------------------------------------------- +int cmCTestCoverageHandler::RunBullseyeSourceSummary( + cmCTestCoverageHandlerContainer* cont) +{ + // Run the covsrc command and create a temp outputfile + std::string outputFile; + if(!this->RunBullseyeCommand(cont, "covsrc", "-c", outputFile)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "error running covsrc:\n"); + return 0; + } + + std::ostream& tmpLog = *cont->OFS; + // copen the Coverage.xml file in the Testing directory + cmGeneratedFileStream covSumFile; + if (!this->StartResultingXML("Coverage", covSumFile)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot open coverage summary file." << std::endl); + return 0; + } + this->CTest->StartXML(covSumFile); + double elapsed_time_start = cmSystemTools::GetTime(); + std::string coverage_start_time = this->CTest->CurrentTime(); + covSumFile << "" << std::endl + << "\t" + << coverage_start_time << "" + << std::endl + << "\t" + << static_cast(cmSystemTools::GetTime()) + << "" + << std::endl; + std::string stdline; + std::string errline; + // expected output: + // first line is: + // "Source","Function Coverage","out of","%","C/D Coverage","out of","%" + // after that data follows in that format + std::string sourceFile; + int functionsCalled = 0; + int totalFunctions = 0; + int percentFunction = 0; + int branchCovered = 0; + int totalBranches = 0; + int percentBranch = 0; + double total_tested = 0; + double total_untested = 0; + double total_functions = 0; + double percent_coverage =0; + double number_files = 0; + std::vector coveredFiles; + std::vector coveredFilesFullPath; + // Read and parse the summary output file + std::ifstream fin(outputFile.c_str()); + if(!fin) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot open coverage summary file: " << + outputFile.c_str() << std::endl); + return 0; + } + std::set coveredFileNames; + while(cmSystemTools::GetLineFromStream(fin, stdline)) + { + // if we have a line of output from stdout + if(stdline.size()) + { + // parse the comma separated output + this->ParseBullsEyeCovsrcLine(stdline, + sourceFile, + functionsCalled, + totalFunctions, + percentFunction, + branchCovered, + totalBranches, + percentBranch); + // The first line is the header + if(sourceFile == "Source" || sourceFile == "Total") + { + continue; + } + std::string file = sourceFile; + coveredFileNames.insert(file); + if(!cmSystemTools::FileIsFullPath(sourceFile.c_str())) + { + // file will be relative to the binary dir + file = cont->BinaryDir; + file += "/"; + file += sourceFile; + } + file = cmSystemTools::CollapseFullPath(file.c_str()); + bool shouldIDoCoverage + = this->ShouldIDoCoverage(file.c_str(), + cont->SourceDir.c_str(), + cont->BinaryDir.c_str()); + if ( !shouldIDoCoverage ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + ".NoDartCoverage found, so skip coverage check for: " + << file.c_str() + << std::endl); + continue; + } + + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Doing coverage for: " + << file.c_str() + << std::endl); + + coveredFiles.push_back(sourceFile); + coveredFilesFullPath.push_back(file); + + number_files++; + total_functions += totalFunctions; + total_tested += functionsCalled; + total_untested += (totalFunctions - functionsCalled); + + std::string fileName = cmSystemTools::GetFilenameName(file.c_str()); + + float cper = percentBranch + percentFunction; + if(totalBranches > 0) + { + cper /= 2.0f; + } + percent_coverage += cper; + float cmet = percentFunction + percentBranch; + if(totalBranches > 0) + { + cmet /= 2.0f; + } + cmet /= 100.0f; + tmpLog << stdline.c_str() << "\n"; + tmpLog << fileName << "\n"; + tmpLog << "functionsCalled: " << functionsCalled/100 << "\n"; + tmpLog << "totalFunctions: " << totalFunctions/100 << "\n"; + tmpLog << "percentFunction: " << percentFunction << "\n"; + tmpLog << "branchCovered: " << branchCovered << "\n"; + tmpLog << "totalBranches: " << totalBranches << "\n"; + tmpLog << "percentBranch: " << percentBranch << "\n"; + tmpLog << "percentCoverage: " << percent_coverage << "\n"; + tmpLog << "coverage metric: " << cmet << "\n"; + covSumFile << "\tCTest->MakeXMLSafe(sourceFile) + << "\" FullPath=\"" << this->CTest->MakeXMLSafe( + this->CTest->GetShortPathToFile(file.c_str())) + << "\" Covered=\"" << (cmet>0?"true":"false") << "\">\n" + << "\t\t" + << branchCovered + << "\n" + << "\t\t" + << totalBranches - branchCovered + << "\n" + << "\t\t" + << functionsCalled + << "\n" + << "\t\t" + << totalFunctions - functionsCalled + << "\n" + // Hack for conversion of function to loc assume a function + // has 100 lines of code + << "\t\t" << functionsCalled *100 + << "\n" + << "\t\t" + << (totalFunctions - functionsCalled)*100 + << "\n" + << "\t\t"; + covSumFile.setf(std::ios::fixed, std::ios::floatfield); + covSumFile.precision(2); + covSumFile << (cper) << "\n" + << "\t\t"; + covSumFile.setf(std::ios::fixed, std::ios::floatfield); + covSumFile.precision(2); + covSumFile << (cmet) << "\n" + << "\t" << std::endl; + } + } + std::string end_time = this->CTest->CurrentTime(); + covSumFile << "\t" << total_tested << "\n" + << "\t" << total_untested << "\n" + << "\t" << total_functions << "\n" + << "\t"; + covSumFile.setf(std::ios::fixed, std::ios::floatfield); + covSumFile.precision(2); + covSumFile + << SAFEDIV(percent_coverage,number_files)<< "\n" + << "\t" << end_time << "\n" + << "\t" << static_cast(cmSystemTools::GetTime()) + << "\n"; + covSumFile + << "" << + static_cast((cmSystemTools::GetTime() - elapsed_time_start)/6)/10.0 + << "" + << "" << std::endl; + this->CTest->EndXML(covSumFile); + // Now create the coverage information for each file + return this->RunBullseyeCoverageBranch(cont, + coveredFileNames, + coveredFiles, + coveredFilesFullPath); +} + +//---------------------------------------------------------------------- +int cmCTestCoverageHandler::HandleBullseyeCoverage( + cmCTestCoverageHandlerContainer* cont) +{ + const char* covfile = cmSystemTools::GetEnv("COVFILE"); + if(!covfile) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " COVFILE environment variable not found, not running " + " bullseye\n"); + return 0; + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " run covsrc with COVFILE=[" + << covfile + << "]" << std::endl); + if(!this->RunBullseyeSourceSummary(cont)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Error running bullseye summary.\n"); + return 0; + } + return 1; +} + +bool cmCTestCoverageHandler::GetNextInt(std::string const& inputLine, + std::string::size_type& pos, + int& value) +{ + std::string::size_type start = pos; + pos = inputLine.find(',', start); + value = atoi(inputLine.substr(start, pos).c_str()); + if(pos == inputLine.npos) + { + return true; + } + pos++; + return true; +} + +bool cmCTestCoverageHandler::ParseBullsEyeCovsrcLine( + std::string const& inputLine, + std::string& sourceFile, + int& functionsCalled, + int& totalFunctions, + int& percentFunction, + int& branchCovered, + int& totalBranches, + int& percentBranch) +{ + // find the first comma + std::string::size_type pos = inputLine.find(','); + if(pos == inputLine.npos) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Error parsing string : " + << inputLine.c_str() << "\n"); + return false; + } + // the source file has "" around it so extract out the file name + sourceFile = inputLine.substr(1,pos-2); + pos++; + if(!this->GetNextInt(inputLine, pos, functionsCalled)) + { + return false; + } + if(!this->GetNextInt(inputLine, pos, totalFunctions)) + { + return false; + } + if(!this->GetNextInt(inputLine, pos, percentFunction)) + { + return false; + } + if(!this->GetNextInt(inputLine, pos, branchCovered)) + { + return false; + } + if(!this->GetNextInt(inputLine, pos, totalBranches)) + { + return false; + } + if(!this->GetNextInt(inputLine, pos, percentBranch)) + { + return false; + } + // should be at the end now + if(pos != inputLine.npos) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Error parsing input : " + << inputLine.c_str() << " last pos not npos = " << pos << + "\n"); + } + return true; +} diff --git a/CMakeLua/Source/CTest/cmCTestCoverageHandler.h b/CMakeLua/Source/CTest/cmCTestCoverageHandler.h new file mode 100755 index 0000000..4c55578 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestCoverageHandler.h @@ -0,0 +1,142 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestCoverageHandler.h,v $ + Language: C++ + Date: $Date: 2007/06/08 16:29:40 $ + Version: $Revision: 1.17 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestCoverageHandler_h +#define cmCTestCoverageHandler_h + + +#include "cmCTestGenericHandler.h" +#include "cmListFileCache.h" + +#include + +class cmGeneratedFileStream; +class cmCTestCoverageHandlerContainer; + +/** \class cmCTestCoverageHandler + * \brief A class that handles coverage computaiton for ctest + * + */ +class cmCTestCoverageHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestCoverageHandler, cmCTestGenericHandler); + + /* + * The main entry point for this class + */ + int ProcessHandler(); + + cmCTestCoverageHandler(); + + virtual void Initialize(); + + /** + * This method is called when reading CTest custom file + */ + void PopulateCustomVectors(cmMakefile *mf); + +private: + bool ShouldIDoCoverage(const char* file, const char* srcDir, + const char* binDir); + bool StartCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount); + void EndCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount); + + //! Handle coverage using GCC's GCov + int HandleGCovCoverage(cmCTestCoverageHandlerContainer* cont); + + //! Handle coverage using Bullseye + int HandleBullseyeCoverage(cmCTestCoverageHandlerContainer* cont); + int RunBullseyeSourceSummary(cmCTestCoverageHandlerContainer* cont); + int RunBullseyeCoverageBranch(cmCTestCoverageHandlerContainer* cont, + std::set& coveredFileNames, + std::vector& files, + std::vector& filesFullPath); + int RunBullseyeCommand( + cmCTestCoverageHandlerContainer* cont, + const char* cmd, + const char* arg, + std::string& outputFile); + bool ParseBullsEyeCovsrcLine( + std::string const& inputLine, + std::string& sourceFile, + int& functionsCalled, + int& totalFunctions, + int& percentFunction, + int& branchCovered, + int& totalBranches, + int& percentBranch); + bool GetNextInt(std::string const& inputLine, + std::string::size_type& pos, + int& value); + //! Handle Python coverage using Python's Trace.py + int HandleTracePyCoverage(cmCTestCoverageHandlerContainer* cont); + + // Find the source file based on the source and build tree. This is used for + // Trace.py mode, since that one does not tell us where the source file is. + std::string FindFile(cmCTestCoverageHandlerContainer* cont, + std::string fileName); + + struct cmCTestCoverage + { + cmCTestCoverage() + { + this->AbsolutePath = ""; + this->FullPath = ""; + this->Covered = false; + this->Tested = 0; + this->UnTested = 0; + this->Lines.clear(); + this->Show = false; + } + cmCTestCoverage(const cmCTestCoverage& rhs) : + AbsolutePath(rhs.AbsolutePath), + FullPath(rhs.FullPath), + Covered(rhs.Covered), + Tested(rhs.Tested), + UnTested(rhs.UnTested), + Lines(rhs.Lines), + Show(rhs.Show) + { + } + cmCTestCoverage& operator=(const cmCTestCoverage& rhs) + { + this->AbsolutePath = rhs.AbsolutePath; + this->FullPath = rhs.FullPath; + this->Covered = rhs.Covered; + this->Tested = rhs.Tested; + this->UnTested = rhs.UnTested; + this->Lines = rhs.Lines; + this->Show = rhs.Show; + return *this; + } + std::string AbsolutePath; + std::string FullPath; + bool Covered; + int Tested; + int UnTested; + std::vector Lines; + bool Show; + }; + + std::vector CustomCoverageExclude; + std::vector CustomCoverageExcludeRegex; + + typedef std::map CoverageMap; +}; + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx b/CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx new file mode 100755 index 0000000..e49d453 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx @@ -0,0 +1,41 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestEmptyBinaryDirectoryCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestEmptyBinaryDirectoryCommand.h" + +#include "cmCTestScriptHandler.h" + +bool cmCTestEmptyBinaryDirectoryCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() != 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + if ( !cmCTestScriptHandler::EmptyBinaryDirectory(args[0].c_str()) ) + { + cmOStringStream ostr; + ostr << "problem removing the binary directory: " << args[0].c_str(); + this->SetError(ostr.str().c_str()); + return false; + } + + return true; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.h b/CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.h new file mode 100755 index 0000000..5d9e1da --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestEmptyBinaryDirectoryCommand.h @@ -0,0 +1,83 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestEmptyBinaryDirectoryCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestEmptyBinaryDirectoryCommand_h +#define cmCTestEmptyBinaryDirectoryCommand_h + +#include "cmCTestCommand.h" + +/** \class cmCTestEmptyBinaryDirectory + * \brief Run a ctest script + * + * cmLibrarysCommand defines a list of executable (i.e., test) + * programs to create. + */ +class cmCTestEmptyBinaryDirectoryCommand : public cmCTestCommand +{ +public: + + cmCTestEmptyBinaryDirectoryCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestEmptyBinaryDirectoryCommand* ni + = new cmCTestEmptyBinaryDirectoryCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_EMPTY_BINARY_DIRECTORY";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "empties the binary directory"; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_EMPTY_BINARY_DIRECTORY( directory )\n" + "Removes a binary directory. This command will perform some checks " + "prior to deleting the directory in an attempt to avoid malicious " + "or accidental directory deletion."; + } + + cmTypeMacro(cmCTestEmptyBinaryDirectoryCommand, cmCTestCommand); + +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestGenericHandler.cxx b/CMakeLua/Source/CTest/cmCTestGenericHandler.cxx new file mode 100644 index 0000000..fe12d83 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestGenericHandler.cxx @@ -0,0 +1,172 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestGenericHandler.cxx,v $ + Language: C++ + Date: $Date: 2007/08/28 17:46:57 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestGenericHandler.h" +#include "cmSystemTools.h" + +#include "cmCTest.h" + +//---------------------------------------------------------------------- +cmCTestGenericHandler::cmCTestGenericHandler() +{ + this->HandlerVerbose = false; + this->CTest = 0; + this->SubmitIndex = 0; +} + +//---------------------------------------------------------------------- +cmCTestGenericHandler::~cmCTestGenericHandler() +{ +} + +//---------------------------------------------------------------------- +void cmCTestGenericHandler::SetOption(const char* op, const char* value) +{ + if ( !op ) + { + return; + } + if ( !value ) + { + cmCTestGenericHandler::t_StringToString::iterator remit + = this->Options.find(op); + if ( remit != this->Options.end() ) + { + this->Options.erase(remit); + } + return; + } + + this->Options[op] = value; +} + +//---------------------------------------------------------------------- +void cmCTestGenericHandler::SetPersistentOption(const char* op, + const char* value) +{ + this->SetOption(op, value); + if ( !op ) + { + return; + } + if ( !value ) + { + cmCTestGenericHandler::t_StringToString::iterator remit + = this->PersistentOptions.find(op); + if ( remit != this->PersistentOptions.end() ) + { + this->PersistentOptions.erase(remit); + } + return; + } + + this->PersistentOptions[op] = value; +} + +//---------------------------------------------------------------------- +void cmCTestGenericHandler::Initialize() +{ + this->Options.clear(); + t_StringToString::iterator it; + for ( it = this->PersistentOptions.begin(); + it != this->PersistentOptions.end(); + ++ it ) + { + this->Options[it->first.c_str()] = it->second.c_str(); + } +} + +//---------------------------------------------------------------------- +const char* cmCTestGenericHandler::GetOption(const char* op) +{ + cmCTestGenericHandler::t_StringToString::iterator remit + = this->Options.find(op); + if ( remit == this->Options.end() ) + { + return 0; + } + return remit->second.c_str(); +} + +//---------------------------------------------------------------------- +bool cmCTestGenericHandler::StartResultingXML(const char* name, + cmGeneratedFileStream& xofs) +{ + if ( !name ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot create resulting XML file without providing the name" + << std::endl;); + return false; + } + cmOStringStream ostr; + ostr << name; + if ( this->SubmitIndex > 0 ) + { + ostr << "_" << this->SubmitIndex; + } + ostr << ".xml"; + if(this->CTest->GetCurrentTag().empty()) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Current Tag empty, this may mean" + " NightlyStartTime was not set correctly." << std::endl); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + if( !this->CTest->OpenOutputFile(this->CTest->GetCurrentTag(), + ostr.str().c_str(), xofs, true) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot create resulting XML file: " << ostr.str().c_str() + << std::endl); + return false; + } + this->CTest->AddSubmitFile(ostr.str().c_str()); + return true; +} + +//---------------------------------------------------------------------- +bool cmCTestGenericHandler::StartLogFile(const char* name, + cmGeneratedFileStream& xofs) +{ + if ( !name ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot create log file without providing the name" << std::endl;); + return false; + } + cmOStringStream ostr; + ostr << "Last" << name; + if ( this->SubmitIndex > 0 ) + { + ostr << "_" << this->SubmitIndex; + } + if ( !this->CTest->GetCurrentTag().empty() ) + { + ostr << "_" << this->CTest->GetCurrentTag(); + } + ostr << ".log"; + if( !this->CTest->OpenOutputFile("Temporary", ostr.str().c_str(), xofs) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot create log file: " + << ostr.str().c_str() << std::endl); + return false; + } + return true; +} + diff --git a/CMakeLua/Source/CTest/cmCTestGenericHandler.h b/CMakeLua/Source/CTest/cmCTestGenericHandler.h new file mode 100644 index 0000000..298d4b1 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestGenericHandler.h @@ -0,0 +1,105 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestGenericHandler.h,v $ + Language: C++ + Date: $Date: 2006/04/28 15:59:31 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestGenericHandler_h +#define cmCTestGenericHandler_h + + +#include "cmObject.h" + +class cmCTest; +class cmMakefile; +class cmCTestCommand; +class cmGeneratedFileStream; + +/** \class cmCTestGenericHandler + * \brief A superclass of all CTest Handlers + * + */ +class cmCTestGenericHandler : public cmObject +{ +public: + /** + * If verbose then more informaiton is printed out + */ + void SetVerbose(bool val) { this->HandlerVerbose = val; } + + /** + * Populate internals from CTest custom scripts + */ + virtual void PopulateCustomVectors(cmMakefile *) {} + + /** + * Do the actual processing. Subclass has to override it. + * Return < 0 if error. + */ + virtual int ProcessHandler() = 0; + + /** + * Process command line arguments that are applicable for the handler + */ + virtual int ProcessCommandLineArguments( + const std::string& /*currentArg*/, size_t& /*idx*/, + const std::vector& /*allArgs*/) { return 1; } + + /** + * Initialize handler + */ + virtual void Initialize(); + + /** + * Set the CTest instance + */ + void SetCTestInstance(cmCTest* ctest) { this->CTest = ctest; } + cmCTest* GetCTestInstance() { return this->CTest; } + + /** + * Construct handler + */ + cmCTestGenericHandler(); + virtual ~cmCTestGenericHandler(); + + typedef std::map t_StringToString; + + + void SetPersistentOption(const char* op, const char* value); + void SetOption(const char* op, const char* value); + const char* GetOption(const char* op); + + void SetCommand(cmCTestCommand* command) + { + this->Command = command; + } + + void SetSubmitIndex(int idx) { this->SubmitIndex = idx; } + int GetSubmitIndex() { return this->SubmitIndex; } + +protected: + bool StartResultingXML(const char* name, cmGeneratedFileStream& xofs); + bool StartLogFile(const char* name, cmGeneratedFileStream& xofs); + + bool HandlerVerbose; + cmCTest *CTest; + t_StringToString Options; + t_StringToString PersistentOptions; + + cmCTestCommand* Command; + int SubmitIndex; +}; + +#endif + diff --git a/CMakeLua/Source/CTest/cmCTestHandlerCommand.cxx b/CMakeLua/Source/CTest/cmCTestHandlerCommand.cxx new file mode 100644 index 0000000..e765b3f --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestHandlerCommand.cxx @@ -0,0 +1,170 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestHandlerCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestHandlerCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" + +cmCTestHandlerCommand::cmCTestHandlerCommand() +{ + const size_t INIT_SIZE = 100; + size_t cc; + this->Arguments.reserve(INIT_SIZE); + for ( cc = 0; cc < INIT_SIZE; ++ cc ) + { + this->Arguments.push_back(0); + } + this->Arguments[ct_RETURN_VALUE] = "RETURN_VALUE"; + this->Arguments[ct_SOURCE] = "SOURCE"; + this->Arguments[ct_BUILD] = "BUILD"; + this->Arguments[ct_SUBMIT_INDEX] = "SUBMIT_INDEX"; + this->Last = ct_LAST; +} + +bool cmCTestHandlerCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if ( !this->ProcessArguments(args, (unsigned int)this->Last, + &*this->Arguments.begin(),this->Values) ) + { + return false; + } + + cmCTestLog(this->CTest, DEBUG, "Initialize handler" << std::endl;); + cmCTestGenericHandler* handler = this->InitializeHandler(); + if ( !handler ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot instantiate test handler " << this->GetName() + << std::endl); + return false; + } + + cmCTestLog(this->CTest, DEBUG, "Populate Custom Vectors" << std::endl;); + handler->PopulateCustomVectors(this->Makefile); + + if ( this->Values[ct_BUILD] ) + { + this->CTest->SetCTestConfiguration("BuildDirectory", + cmSystemTools::CollapseFullPath( + this->Values[ct_BUILD]).c_str()); + } + else + { + this->CTest->SetCTestConfiguration("BuildDirectory", + cmSystemTools::CollapseFullPath( + this->Makefile->GetDefinition("CTEST_BINARY_DIRECTORY")).c_str()); + } + if ( this->Values[ct_SOURCE] ) + { + cmCTestLog(this->CTest, DEBUG, + "Set source directory to: " << this->Values[ct_SOURCE] << std::endl); + this->CTest->SetCTestConfiguration("SourceDirectory", + cmSystemTools::CollapseFullPath( + this->Values[ct_SOURCE]).c_str()); + } + else + { + this->CTest->SetCTestConfiguration("SourceDirectory", + cmSystemTools::CollapseFullPath( + this->Makefile->GetDefinition("CTEST_SOURCE_DIRECTORY")).c_str()); + } + if ( this->Values[ct_SUBMIT_INDEX] ) + { + if ( this->CTest->GetDartVersion() <= 1 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Dart before version 2.0 does not support collecting submissions." + << std::endl + << "Please upgrade the server to Dart 2 or higher, or do not use " + "SUBMIT_INDEX." << std::endl); + } + else + { + handler->SetSubmitIndex(atoi(this->Values[ct_SUBMIT_INDEX])); + } + } + + std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory( + this->CTest->GetCTestConfiguration("BuildDirectory").c_str()); + int res = handler->ProcessHandler(); + if ( this->Values[ct_RETURN_VALUE] && *this->Values[ct_RETURN_VALUE]) + { + cmOStringStream str; + str << res; + this->Makefile->AddDefinition( + this->Values[ct_RETURN_VALUE], str.str().c_str()); + } + cmSystemTools::ChangeDirectory(current_dir.c_str()); + return true; +} + +bool cmCTestHandlerCommand::ProcessArguments( + std::vector const& args, int last, const char** strings, + std::vector& values) +{ + int state = 0; + int cc; + values.resize(last); + for ( cc = 0; cc < last; ++ cc ) + { + values[cc] = 0; + } + + for(size_t i=0; i < args.size(); ++i) + { + if ( state > 0 && state < last ) + { + values[state] = args[i].c_str(); + cmCTestLog(this->CTest, DEBUG, "Set " << strings[state] << " to " + << args[i].c_str() << std::endl); + state = 0; + } + else + { + bool found = false; + for ( cc = 0; cc < last; ++ cc ) + { + if ( strings[cc] && args[i] == strings[cc] ) + { + state = cc; + if ( values[state] ) + { + cmOStringStream ostr; + ostr << "called with incorrect number of arguments. " + << strings[state] << " specified twice."; + this->SetError(ostr.str().c_str()); + return false; + } + found = true; + break; + } + } + if ( !found ) + { + cmOStringStream str; + str + << "called with incorrect number of arguments. Extra argument is: " + << args[i].c_str() << "."; + this->SetError(str.str().c_str()); + return false; + } + } + } + return true; +} diff --git a/CMakeLua/Source/CTest/cmCTestHandlerCommand.h b/CMakeLua/Source/CTest/cmCTestHandlerCommand.h new file mode 100644 index 0000000..23552ff --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestHandlerCommand.h @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestHandlerCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestHandlerCommand_h +#define cmCTestHandlerCommand_h + +#include "cmCTestCommand.h" + +class cmCTestGenericHandler; + +/** \class cmCTestHandler + * \brief Run a ctest script + * + * cmCTestHandlerCommand defineds the command to test the project. + */ +class cmCTestHandlerCommand : public cmCTestCommand +{ +public: + cmCTestHandlerCommand(); + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + cmTypeMacro(cmCTestHandlerCommand, cmCTestCommand); + + enum + { + ct_NONE, + ct_RETURN_VALUE, + ct_BUILD, + ct_SOURCE, + ct_SUBMIT_INDEX, + ct_LAST + }; + +protected: + virtual cmCTestGenericHandler* InitializeHandler() = 0; + bool ProcessArguments(std::vector const& args, + int last, const char** strings, std::vector& values); + + std::string ReturnVariable; + std::vector Arguments; + std::vector Values; + size_t Last; +}; + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestMemCheckCommand.cxx b/CMakeLua/Source/CTest/cmCTestMemCheckCommand.cxx new file mode 100644 index 0000000..f1e368b --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestMemCheckCommand.cxx @@ -0,0 +1,37 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestMemCheckCommand.cxx,v $ + Language: C++ + Date: $Date: 2006/03/15 16:02:08 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestMemCheckCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" + + +cmCTestGenericHandler* cmCTestMemCheckCommand::InitializeActualHandler() +{ + cmCTestGenericHandler* handler + = this->CTest->GetInitializedHandler("memcheck"); + + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "MemoryCheckCommand", "CTEST_MEMORYCHECK_COMMAND"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "MemoryCheckCommandOptions", "CTEST_MEMORYCHECK_COMMAND_OPTIONS"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "MemoryCheckSuppressionFile", "CTEST_MEMORYCHECK_SUPPRESSIONS_FILE"); + + return handler; +} + diff --git a/CMakeLua/Source/CTest/cmCTestMemCheckCommand.h b/CMakeLua/Source/CTest/cmCTestMemCheckCommand.h new file mode 100644 index 0000000..25b6494 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestMemCheckCommand.h @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestMemCheckCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/10 20:03:09 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestMemCheckCommand_h +#define cmCTestMemCheckCommand_h + +#include "cmCTestTestCommand.h" + +class cmCTestGenericHandler; + +/** \class cmCTestMemCheck + * \brief Run a ctest script + * + * cmCTestMemCheckCommand defineds the command to test the project. + */ +class cmCTestMemCheckCommand : public cmCTestTestCommand +{ +public: + + cmCTestMemCheckCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestMemCheckCommand* ni = new cmCTestMemCheckCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_MEMCHECK";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Tests the repository."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_MEMCHECK([BUILD build_dir] [RETURN_VALUE res])\n" + "Performs a memory checking of tests in the given build directory and " + "stores results in MemCheck.xml. The second argument is a variable " + "that will hold value."; + } + + cmTypeMacro(cmCTestMemCheckCommand, cmCTestTestCommand); + +protected: + cmCTestGenericHandler* InitializeActualHandler(); +}; + + +#endif + diff --git a/CMakeLua/Source/CTest/cmCTestMemCheckHandler.cxx b/CMakeLua/Source/CTest/cmCTestMemCheckHandler.cxx new file mode 100644 index 0000000..50c80af --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestMemCheckHandler.cxx @@ -0,0 +1,966 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestMemCheckHandler.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:17:36 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestMemCheckHandler.h" +#include "cmXMLParser.h" +#include "cmCTest.h" +#include "cmake.h" +#include "cmGeneratedFileStream.h" +#include +#include +#include +#include "cmMakefile.h" + +#include +#include +#include + +struct CatToErrorType +{ + const char* ErrorCategory; + int ErrorCode; +}; + + +static CatToErrorType cmCTestMemCheckBoundsChecker[] = { + // Error tags + {"Write Overrun", cmCTestMemCheckHandler::ABW}, + {"Read Overrun", cmCTestMemCheckHandler::ABR}, + {"Memory Overrun", cmCTestMemCheckHandler::ABW}, + {"Allocation Conflict", cmCTestMemCheckHandler::FMM}, + {"Bad Pointer Use", cmCTestMemCheckHandler::FMW}, + {"Dangling Pointer", cmCTestMemCheckHandler::FMR}, + {0,0} +}; + +// parse the xml file storing the installed version of Xcode on +// the machine +class cmBoundsCheckerParser : public cmXMLParser +{ +public: + cmBoundsCheckerParser(cmCTest* c) { this->CTest = c;} + void StartElement(const char* name, const char** atts) + { + if(strcmp(name, "MemoryLeak") == 0) + { + this->Errors.push_back(cmCTestMemCheckHandler::MLK); + } + if(strcmp(name, "ResourceLeak") == 0) + { + this->Errors.push_back(cmCTestMemCheckHandler::MLK); + } + if(strcmp(name, "Error") == 0) + { + this->ParseError(atts); + } + if(strcmp(name, "Dangling Pointer") == 0) + { + this->ParseError(atts); + } + // Create the log + cmOStringStream ostr; + ostr << name << ":\n"; + int i = 0; + for(; atts[i] != 0; i+=2) + { + ostr << " " << this->CTest->MakeXMLSafe(atts[i]).c_str() + << " - " << this->CTest->MakeXMLSafe(atts[i+1]).c_str() << "\n"; + } + ostr << "\n"; + this->Log += ostr.str(); + } + void EndElement(const char* ) + { + } + + const char* GetAttribute(const char* name, const char** atts) + { + int i = 0; + for(; atts[i] != 0; ++i) + { + if(strcmp(name, atts[i]) == 0) + { + return atts[i+1]; + } + } + return 0; + } + void ParseError(const char** atts) + { + CatToErrorType* ptr = cmCTestMemCheckBoundsChecker; + const char* cat = this->GetAttribute("ErrorCategory", atts); + if(!cat) + { + this->Errors.push_back(cmCTestMemCheckHandler::ABW); // do not know + cmCTestLog(this->CTest, ERROR_MESSAGE, + "No Category found in Bounds checker XML\n" ); + return; + } + while(ptr->ErrorCategory && cat) + { + if(strcmp(ptr->ErrorCategory, cat) == 0) + { + this->Errors.push_back(ptr->ErrorCode); + return; // found it we are done + } + ptr++; + } + if(ptr->ErrorCategory) + { + this->Errors.push_back(cmCTestMemCheckHandler::ABW); // do not know + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Found unknown Bounds Checker error " + << ptr->ErrorCategory << std::endl); + } + } + cmCTest* CTest; + std::vector Errors; + std::string Log; +}; + +#define BOUNDS_CHECKER_MARKER \ +"******######*****Begin BOUNDS CHECKER XML******######******" +//---------------------------------------------------------------------- +static const char* cmCTestMemCheckResultStrings[] = { + "ABR", + "ABW", + "ABWL", + "COR", + "EXU", + "FFM", + "FIM", + "FMM", + "FMR", + "FMW", + "FUM", + "IPR", + "IPW", + "MAF", + "MLK", + "MPK", + "NPR", + "ODS", + "PAR", + "PLK", + "UMC", + "UMR", + 0 +}; + + +//---------------------------------------------------------------------- +static const char* cmCTestMemCheckResultLongStrings[] = { + "Threading Problem", + "ABW", + "ABWL", + "COR", + "EXU", + "FFM", + "FIM", + "Mismatched deallocation", + "FMR", + "FMW", + "FUM", + "IPR", + "IPW", + "MAF", + "Memory Leak", + "Potential Memory Leak", + "NPR", + "ODS", + "Invalid syscall param", + "PLK", + "Uninitialized Memory Conditional", + "Uninitialized Memory Read", + 0 +}; + + +//---------------------------------------------------------------------- +cmCTestMemCheckHandler::cmCTestMemCheckHandler() +{ + this->MemCheck = true; + this->CustomMaximumPassedTestOutputSize = 0; + this->CustomMaximumFailedTestOutputSize = 0; +} + +//---------------------------------------------------------------------- +void cmCTestMemCheckHandler::Initialize() +{ + this->Superclass::Initialize(); + this->CustomMaximumPassedTestOutputSize = 0; + this->CustomMaximumFailedTestOutputSize = 0; + this->MemoryTester = ""; + this->MemoryTesterOptionsParsed.clear(); + this->MemoryTesterOptions = ""; + this->MemoryTesterStyle = UNKNOWN; + this->MemoryTesterOutputFile = ""; + int cc; + for ( cc = 0; cc < NO_MEMORY_FAULT; cc ++ ) + { + this->MemoryTesterGlobalResults[cc] = 0; + } + +} + +//---------------------------------------------------------------------- +int cmCTestMemCheckHandler::PreProcessHandler() +{ + if ( !this->InitializeMemoryChecking() ) + { + return 0; + } + + if ( !this->ExecuteCommands(this->CustomPreMemCheck) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem executing pre-memcheck command(s)." << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCTestMemCheckHandler::PostProcessHandler() +{ + if ( !this->ExecuteCommands(this->CustomPostMemCheck) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem executing post-memcheck command(s)." << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +void cmCTestMemCheckHandler::GenerateTestCommand( + std::vector& args) +{ + std::vector::size_type pp; + args.push_back(this->MemoryTester.c_str()); + std::string memcheckcommand = ""; + memcheckcommand = this->MemoryTester; + for ( pp = 0; pp < this->MemoryTesterOptionsParsed.size(); pp ++ ) + { + args.push_back(this->MemoryTesterOptionsParsed[pp].c_str()); + memcheckcommand += " "; + memcheckcommand += cmSystemTools::EscapeSpaces( + this->MemoryTesterOptionsParsed[pp].c_str()); + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Memory check command: " + << memcheckcommand << std::endl); +} + +//---------------------------------------------------------------------- +void cmCTestMemCheckHandler::PopulateCustomVectors(cmMakefile *mf) +{ + this->cmCTestTestHandler::PopulateCustomVectors(mf); + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_PRE_MEMCHECK", + this->CustomPreMemCheck); + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_POST_MEMCHECK", + this->CustomPostMemCheck); + + this->CTest->PopulateCustomVector(mf, + "CTEST_CUSTOM_MEMCHECK_IGNORE", + this->CustomTestsIgnore); +} + +//---------------------------------------------------------------------- +void cmCTestMemCheckHandler::GenerateDartOutput(std::ostream& os) +{ + if ( !this->CTest->GetProduceXML() ) + { + return; + } + + this->CTest->StartXML(os); + os << "MemoryTesterStyle ) + { + case cmCTestMemCheckHandler::VALGRIND: + os << "Valgrind"; + break; + case cmCTestMemCheckHandler::PURIFY: + os << "Purify"; + break; + case cmCTestMemCheckHandler::BOUNDS_CHECKER: + os << "BoundsChecker"; + break; + default: + os << "Unknown"; + } + os << "\">" << std::endl; + + os << "\t" << this->StartTest << "\n" + << "\t" << this->StartTestTime << "\n" + << "\t\n"; + cmCTestMemCheckHandler::TestResultsVector::size_type cc; + for ( cc = 0; cc < this->TestResults.size(); cc ++ ) + { + cmCTestTestResult *result = &this->TestResults[cc]; + std::string testPath = result->Path + "/" + result->Name; + os << "\t\t" << cmCTest::MakeXMLSafe( + this->CTest->GetShortPathToFile(testPath.c_str())) + << "" << std::endl; + } + os << "\t\n"; + cmCTestLog(this->CTest, HANDLER_OUTPUT, + "-- Processing memory checking output: "); + size_t total = this->TestResults.size(); + size_t step = total / 10; + size_t current = 0; + for ( cc = 0; cc < this->TestResults.size(); cc ++ ) + { + cmCTestTestResult *result = &this->TestResults[cc]; + std::string memcheckstr; + int memcheckresults[cmCTestMemCheckHandler::NO_MEMORY_FAULT]; + int kk; + bool res = this->ProcessMemCheckOutput(result->Output, memcheckstr, + memcheckresults); + if ( res && result->Status == cmCTestMemCheckHandler::COMPLETED ) + { + continue; + } + this->CleanTestOutput(memcheckstr, + static_cast(this->CustomMaximumFailedTestOutputSize)); + os << "\tStatus == cmCTestMemCheckHandler::COMPLETED ) + { + os << "passed"; + } + else if ( result->Status == cmCTestMemCheckHandler::NOT_RUN ) + { + os << "notrun"; + } + else + { + os << "failed"; + } + std::string testPath = result->Path + "/" + result->Name; + os << "\">\n" + << "\t\t" << cmCTest::MakeXMLSafe(result->Name) << "\n" + << "\t\t" << cmCTest::MakeXMLSafe( + this->CTest->GetShortPathToFile(result->Path.c_str())) << "\n" + << "\t\t" << cmCTest::MakeXMLSafe( + this->CTest->GetShortPathToFile(testPath.c_str())) << "\n" + << "\t\t" + << cmCTest::MakeXMLSafe(result->FullCommandLine) + << "\n" + << "\t\t" << std::endl; + for ( kk = 0; cmCTestMemCheckResultLongStrings[kk]; kk ++ ) + { + if ( memcheckresults[kk] ) + { + os << "\t\t\t" + << memcheckresults[kk] + << "" << std::endl; + } + this->MemoryTesterGlobalResults[kk] += memcheckresults[kk]; + } + os + << "\t\t\n" + << "\t\n" << memcheckstr << std::endl + << "\t\n" + << "\t" << std::endl; + if ( current < cc ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "#" << std::flush); + current += step; + } + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Memory checking results:" + << std::endl); + os << "\t" << std::endl; + for ( cc = 0; cmCTestMemCheckResultStrings[cc]; cc ++ ) + { + if ( this->MemoryTesterGlobalResults[cc] ) + { +#ifdef cerr +# undef cerr +#endif + std::cerr.width(35); +#define cerr no_cerr + cmCTestLog(this->CTest, HANDLER_OUTPUT, + cmCTestMemCheckResultLongStrings[cc] << " - " + << this->MemoryTesterGlobalResults[cc] << std::endl); + os << "\t\t" << std::endl; + } + } + os << "\t" << std::endl; + + os << "\t" << this->EndTest << "" << std::endl; + os << "\t" << this->EndTestTime + << "" << std::endl; + os << "" + << static_cast(this->ElapsedTestingTime/6)/10.0 + << "\n"; + + os << "" << std::endl; + this->CTest->EndXML(os); + + +} + +//---------------------------------------------------------------------- +bool cmCTestMemCheckHandler::InitializeMemoryChecking() +{ + // Setup the command + if ( cmSystemTools::FileExists(this->CTest->GetCTestConfiguration( + "MemoryCheckCommand").c_str()) ) + { + this->MemoryTester + = cmSystemTools::ConvertToOutputPath(this->CTest->GetCTestConfiguration( + "MemoryCheckCommand").c_str()); + } + else if ( cmSystemTools::FileExists(this->CTest->GetCTestConfiguration( + "PurifyCommand").c_str()) ) + { + this->MemoryTester + = cmSystemTools::ConvertToOutputPath(this->CTest->GetCTestConfiguration( + "PurifyCommand").c_str()); + } + else if ( cmSystemTools::FileExists(this->CTest->GetCTestConfiguration( + "ValgrindCommand").c_str()) ) + { + this->MemoryTester + = cmSystemTools::ConvertToOutputPath(this->CTest->GetCTestConfiguration( + "ValgrindCommand").c_str()); + } + else if ( cmSystemTools::FileExists(this->CTest->GetCTestConfiguration( + "BoundsCheckerCommand").c_str()) ) + { + this->MemoryTester + = cmSystemTools::ConvertToOutputPath(this->CTest->GetCTestConfiguration( + "BoundsCheckerCommand").c_str()); + } + else + { + cmCTestLog(this->CTest, WARNING, + "Memory checker (MemoryCheckCommand) " + "not set, or cannot find the specified program." + << std::endl); + return false; + } + + if ( this->MemoryTester[0] == '\"' && + this->MemoryTester[this->MemoryTester.size()-1] == '\"' ) + { + this->MemoryTester + = this->MemoryTester.substr(1, this->MemoryTester.size()-2); + } + + // Setup the options + if ( this->CTest->GetCTestConfiguration( + "MemoryCheckCommandOptions").size() ) + { + this->MemoryTesterOptions = this->CTest->GetCTestConfiguration( + "MemoryCheckCommandOptions"); + } + else if ( this->CTest->GetCTestConfiguration( + "ValgrindCommandOptions").size() ) + { + this->MemoryTesterOptions = this->CTest->GetCTestConfiguration( + "ValgrindCommandOptions"); + } + + this->MemoryTesterOutputFile + = this->CTest->GetBinaryDir() + "/Testing/Temporary/MemoryChecker.log"; + + if ( this->MemoryTester.find("valgrind") != std::string::npos ) + { + this->MemoryTesterStyle = cmCTestMemCheckHandler::VALGRIND; + if ( !this->MemoryTesterOptions.size() ) + { + this->MemoryTesterOptions = "-q --tool=memcheck --leak-check=yes " + "--show-reachable=yes --workaround-gcc296-bugs=yes --num-callers=100"; + } + if ( this->CTest->GetCTestConfiguration( + "MemoryCheckSuppressionFile").size() ) + { + if ( !cmSystemTools::FileExists(this->CTest->GetCTestConfiguration( + "MemoryCheckSuppressionFile").c_str()) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find memory checker suppression file: " + << this->CTest->GetCTestConfiguration( + "MemoryCheckSuppressionFile").c_str() << std::endl); + return false; + } + this->MemoryTesterOptions += " --suppressions=" + + cmSystemTools::EscapeSpaces(this->CTest->GetCTestConfiguration( + "MemoryCheckSuppressionFile").c_str()) + ""; + } + } + else if ( this->MemoryTester.find("purify") != std::string::npos ) + { + this->MemoryTesterStyle = cmCTestMemCheckHandler::PURIFY; + std::string outputFile = + cmSystemTools::EscapeSpaces(this->MemoryTesterOutputFile.c_str()); + +#ifdef _WIN32 + this->MemoryTesterOptions += " /SAVETEXTDATA=" + outputFile; +#else + this->MemoryTesterOptions += " -log-file=" + outputFile; +#endif + } + else if ( this->MemoryTester.find("BC") != std::string::npos ) + { + this->BoundsCheckerXMLFile = this->MemoryTesterOutputFile; + std::string outputFile = + cmSystemTools::EscapeSpaces(this->MemoryTesterOutputFile.c_str()); + std::string dpbdFile = this->CTest->GetBinaryDir() + + "/Testing/Temporary/MemoryChecker.DPbd"; + std::string errorFile = this->CTest->GetBinaryDir() + + "/Testing/Temporary/MemoryChecker.error"; + errorFile = cmSystemTools::EscapeSpaces(errorFile.c_str()); + this->BoundsCheckerDPBDFile = dpbdFile; + dpbdFile = cmSystemTools::EscapeSpaces(dpbdFile.c_str()); + this->MemoryTesterStyle = cmCTestMemCheckHandler::BOUNDS_CHECKER; + this->MemoryTesterOptions += " /B " + dpbdFile; + this->MemoryTesterOptions += " /X " + outputFile; + this->MemoryTesterOptions += " /M "; + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Do not understand memory checker: " << this->MemoryTester.c_str() + << std::endl); + return false; + } + + this->MemoryTesterOptionsParsed + = cmSystemTools::ParseArguments(this->MemoryTesterOptions.c_str()); + std::vector::size_type cc; + for ( cc = 0; cmCTestMemCheckResultStrings[cc]; cc ++ ) + { + this->MemoryTesterGlobalResults[cc] = 0; + } + return true; +} + +//---------------------------------------------------------------------- +bool cmCTestMemCheckHandler::ProcessMemCheckOutput(const std::string& str, + std::string& log, int* results) +{ + std::string::size_type cc; + for ( cc = 0; cc < cmCTestMemCheckHandler::NO_MEMORY_FAULT; cc ++ ) + { + results[cc] = 0; + } + + if ( this->MemoryTesterStyle == cmCTestMemCheckHandler::VALGRIND ) + { + return this->ProcessMemCheckValgrindOutput(str, log, results); + } + else if ( this->MemoryTesterStyle == cmCTestMemCheckHandler::PURIFY ) + { + return this->ProcessMemCheckPurifyOutput(str, log, results); + } + else if ( this->MemoryTesterStyle == + cmCTestMemCheckHandler::BOUNDS_CHECKER ) + { + return this->ProcessMemCheckBoundsCheckerOutput(str, log, results); + } + else + { + log.append("\nMemory checking style used was: "); + log.append("None that I know"); + log = str; + } + + + return true; +} + +//---------------------------------------------------------------------- +bool cmCTestMemCheckHandler::ProcessMemCheckPurifyOutput( + const std::string& str, std::string& log, + int* results) +{ + std::vector lines; + cmSystemTools::Split(str.c_str(), lines); + cmOStringStream ostr; + log = ""; + + cmsys::RegularExpression pfW("^\\[[WEI]\\] ([A-Z][A-Z][A-Z][A-Z]*): "); + + int defects = 0; + + for( std::vector::iterator i = lines.begin(); + i != lines.end(); ++i) + { + int failure = cmCTestMemCheckHandler::NO_MEMORY_FAULT; + if ( pfW.find(*i) ) + { + int cc; + for ( cc = 0; cc < cmCTestMemCheckHandler::NO_MEMORY_FAULT; cc ++ ) + { + if ( pfW.match(1) == cmCTestMemCheckResultStrings[cc] ) + { + failure = cc; + break; + } + } + if ( cc == cmCTestMemCheckHandler::NO_MEMORY_FAULT ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unknown Purify memory fault: " + << pfW.match(1) << std::endl); + ostr << "*** Unknown Purify memory fault: " << pfW.match(1) + << std::endl; + } + } + if ( failure != NO_MEMORY_FAULT ) + { + ostr << "" << cmCTestMemCheckResultStrings[failure] << " "; + results[failure] ++; + defects ++; + } + ostr << cmCTest::MakeXMLSafe(*i) << std::endl; + } + + log = ostr.str(); + if ( defects ) + { + return false; + } + return true; +} + +//---------------------------------------------------------------------- +bool cmCTestMemCheckHandler::ProcessMemCheckValgrindOutput( + const std::string& str, std::string& log, + int* results) +{ + std::vector lines; + cmSystemTools::Split(str.c_str(), lines); + bool unlimitedOutput = false; + if(str.find("CTEST_FULL_OUTPUT") != str.npos || + this->CustomMaximumFailedTestOutputSize == 0) + { + unlimitedOutput = true; + } + + std::string::size_type cc; + + cmOStringStream ostr; + log = ""; + + int defects = 0; + + cmsys::RegularExpression valgrindLine("^==[0-9][0-9]*=="); + + cmsys::RegularExpression vgFIM( + "== .*Invalid free\\(\\) / delete / delete\\[\\]"); + cmsys::RegularExpression vgFMM( + "== .*Mismatched free\\(\\) / delete / delete \\[\\]"); + cmsys::RegularExpression vgMLK( + "== .*[0-9][0-9]* bytes in [0-9][0-9]* blocks are definitely lost" + " in loss record [0-9][0-9]* of [0-9]"); + cmsys::RegularExpression vgPAR( + "== .*Syscall param .* contains unaddressable byte\\(s\\)"); + cmsys::RegularExpression vgMPK1( + "== .*[0-9][0-9]* bytes in [0-9][0-9]* blocks are possibly lost in" + " loss record [0-9][0-9]* of [0-9]"); + cmsys::RegularExpression vgMPK2( + "== .*[0-9][0-9]* bytes in [0-9][0-9]* blocks are still reachable" + " in loss record [0-9][0-9]* of [0-9]"); + cmsys::RegularExpression vgUMC( + "== .*Conditional jump or move depends on uninitialised value\\(s\\)"); + cmsys::RegularExpression vgUMR1( + "== .*Use of uninitialised value of size [0-9][0-9]*"); + cmsys::RegularExpression vgUMR2("== .*Invalid read of size [0-9][0-9]*"); + cmsys::RegularExpression vgUMR3("== .*Jump to the invalid address "); + cmsys::RegularExpression vgUMR4("== .*Syscall param .* contains " + "uninitialised or unaddressable byte\\(s\\)"); + cmsys::RegularExpression vgUMR5("== .*Syscall param .* uninitialised"); + cmsys::RegularExpression vgIPW("== .*Invalid write of size [0-9]"); + cmsys::RegularExpression vgABR("== .*pthread_mutex_unlock: mutex is " + "locked by a different thread"); + std::vector nonValGrindOutput; + double sttime = cmSystemTools::GetTime(); + cmCTestLog(this->CTest, DEBUG, "Start test: " << lines.size() << std::endl); + std::string::size_type totalOutputSize = 0; + bool outputFull = false; + for ( cc = 0; cc < lines.size(); cc ++ ) + { + cmCTestLog(this->CTest, DEBUG, "test line " + << lines[cc] << std::endl); + + if ( valgrindLine.find(lines[cc]) ) + { + cmCTestLog(this->CTest, DEBUG, "valgrind line " + << lines[cc] << std::endl); + int failure = cmCTestMemCheckHandler::NO_MEMORY_FAULT; + if ( vgFIM.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::FIM; + } + else if ( vgFMM.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::FMM; + } + else if ( vgMLK.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::MLK; + } + else if ( vgPAR.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::PAR; + } + else if ( vgMPK1.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::MPK; + } + else if ( vgMPK2.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::MPK; + } + else if ( vgUMC.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::UMC; + } + else if ( vgUMR1.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::UMR; + } + else if ( vgUMR2.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::UMR; + } + else if ( vgUMR3.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::UMR; + } + else if ( vgUMR4.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::UMR; + } + else if ( vgUMR5.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::UMR; + } + else if ( vgIPW.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::IPW; + } + else if ( vgABR.find(lines[cc]) ) + { + failure = cmCTestMemCheckHandler::ABR; + } + + if ( failure != cmCTestMemCheckHandler::NO_MEMORY_FAULT ) + { + ostr << "" << cmCTestMemCheckResultStrings[failure] << " "; + results[failure] ++; + defects ++; + } + totalOutputSize += lines[cc].size(); + ostr << cmCTest::MakeXMLSafe(lines[cc]) << std::endl; + } + else + { + nonValGrindOutput.push_back(cc); + } + } + // Now put all all the non valgrind output into the test output + if(!outputFull) + { + for(std::vector::iterator i = + nonValGrindOutput.begin(); i != nonValGrindOutput.end(); ++i) + { + totalOutputSize += lines[*i].size(); + cmCTestLog(this->CTest, DEBUG, "before xml safe " + << lines[*i] << std::endl); + cmCTestLog(this->CTest, DEBUG, "after xml safe " + << cmCTest::MakeXMLSafe(lines[*i]) << std::endl); + + ostr << cmCTest::MakeXMLSafe(lines[*i]) << std::endl; + if(!unlimitedOutput && totalOutputSize > + static_cast(this->CustomMaximumFailedTestOutputSize)) + { + outputFull = true; + ostr << "....\n"; + ostr << "Test Output for this test has been truncated see testing" + " machine logs for full output,\n"; + ostr << "or put CTEST_FULL_OUTPUT in the output of " + "this test program.\n"; + } + } + } + cmCTestLog(this->CTest, DEBUG, "End test (elapsed: " + << (cmSystemTools::GetTime() - sttime) << std::endl); + log = ostr.str(); + if ( defects ) + { + return false; + } + return true; +} + + + +//---------------------------------------------------------------------- +bool cmCTestMemCheckHandler::ProcessMemCheckBoundsCheckerOutput( + const std::string& str, std::string& log, + int* results) +{ + log = ""; + double sttime = cmSystemTools::GetTime(); + std::vector lines; + cmSystemTools::Split(str.c_str(), lines); + cmCTestLog(this->CTest, DEBUG, "Start test: " << lines.size() << std::endl); + std::vector::size_type cc; + for ( cc = 0; cc < lines.size(); cc ++ ) + { + if(lines[cc] == BOUNDS_CHECKER_MARKER) + { + break; + } + } + cmBoundsCheckerParser parser(this->CTest); + parser.InitializeParser(); + if(cc < lines.size()) + { + for(cc++; cc < lines.size(); ++cc) + { + std::string& theLine = lines[cc]; + // check for command line arguments that are not escaped + // correctly by BC + if(theLine.find("TargetArgs=") != theLine.npos) + { + // skip this because BC gets it wrong and we can't parse it + } + else if(!parser.ParseChunk(theLine.c_str(), theLine.size())) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Error in ParseChunk: " << theLine.c_str() + << std::endl); + } + } + } + int defects = 0; + for(cc =0; cc < parser.Errors.size(); ++cc) + { + results[parser.Errors[cc]]++; + defects++; + } + cmCTestLog(this->CTest, DEBUG, "End test (elapsed: " + << (cmSystemTools::GetTime() - sttime) << std::endl); + if(defects) + { + // only put the output of Bounds Checker if there were + // errors or leaks detected + log = parser.Log; + return false; + } + return true; +} + +void +cmCTestMemCheckHandler::ProcessOneTest(cmCTestTestProperties *props, + std::vector &passed, + std::vector &failed, + int count, int tmsize) +{ + // run parent test + cmCTestTestHandler::ProcessOneTest(props, passed, failed, count, tmsize); + cmCTestTestResult& res = this->TestResults[this->TestResults.size()-1]; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "process test output now: " + << props->Name.c_str() << " " << res.Name.c_str() << std::endl); + if( this->MemoryTesterStyle == cmCTestMemCheckHandler::BOUNDS_CHECKER) + { + this->PostProcessBoundsCheckerTest(res); + } + else if(this->MemoryTesterStyle == cmCTestMemCheckHandler::PURIFY ) + { + this->PostProcessPurifyTest(res); + } +} + +// This method puts the bounds checker output file into the output +// for the test +void +cmCTestMemCheckHandler::PostProcessBoundsCheckerTest(cmCTestTestResult& res) +{ + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "PostProcessBoundsCheckerTest for : " + << res.Name.c_str() << std::endl); + if ( !cmSystemTools::FileExists(this->MemoryTesterOutputFile.c_str()) ) + { + std::string log = "Cannot find memory tester output file: " + + this->MemoryTesterOutputFile; + cmCTestLog(this->CTest, ERROR_MESSAGE, log.c_str() << std::endl); + return; + } + // put a scope around this to close ifs so the file can be removed + { + std::ifstream ifs(this->MemoryTesterOutputFile.c_str()); + if ( !ifs ) + { + std::string log = "Cannot read memory tester output file: " + + this->MemoryTesterOutputFile; + cmCTestLog(this->CTest, ERROR_MESSAGE, log.c_str() << std::endl); + return; + } + res.Output += BOUNDS_CHECKER_MARKER; + res.Output += "\n"; + std::string line; + while ( cmSystemTools::GetLineFromStream(ifs, line) ) + { + res.Output += line; + res.Output += "\n"; + } + } + cmSystemTools::Delay(1000); + cmSystemTools::RemoveFile(this->BoundsCheckerDPBDFile.c_str()); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Remove: " + << this->BoundsCheckerDPBDFile.c_str() << std::endl); + cmSystemTools::RemoveFile(this->BoundsCheckerXMLFile.c_str()); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Remove: " + << this->BoundsCheckerXMLFile.c_str() << std::endl); +} + +void +cmCTestMemCheckHandler::PostProcessPurifyTest(cmCTestTestResult& res) +{ + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "PostProcessPurifyTest for : " + << res.Name.c_str() << std::endl); + if ( !cmSystemTools::FileExists(this->MemoryTesterOutputFile.c_str()) ) + { + std::string log = "Cannot find memory tester output file: " + + this->MemoryTesterOutputFile; + cmCTestLog(this->CTest, ERROR_MESSAGE, log.c_str() << std::endl); + return; + } + std::ifstream ifs(this->MemoryTesterOutputFile.c_str()); + if ( !ifs ) + { + std::string log = "Cannot read memory tester output file: " + + this->MemoryTesterOutputFile; + cmCTestLog(this->CTest, ERROR_MESSAGE, log.c_str() << std::endl); + return; + } + std::string line; + while ( cmSystemTools::GetLineFromStream(ifs, line) ) + { + res.Output += line; + } +} diff --git a/CMakeLua/Source/CTest/cmCTestMemCheckHandler.h b/CMakeLua/Source/CTest/cmCTestMemCheckHandler.h new file mode 100644 index 0000000..593685e --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestMemCheckHandler.h @@ -0,0 +1,136 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestMemCheckHandler.h,v $ + Language: C++ + Date: $Date: 2007/07/24 18:43:31 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestMemCheckHandler_h +#define cmCTestMemCheckHandler_h + + +#include "cmCTestTestHandler.h" +#include "cmListFileCache.h" + +class cmMakefile; + +/** \class cmCTestMemCheckHandler + * \brief A class that handles ctest -S invocations + * + */ +class cmCTestMemCheckHandler : public cmCTestTestHandler +{ +public: + cmTypeMacro(cmCTestMemCheckHandler, cmCTestTestHandler); + + void PopulateCustomVectors(cmMakefile *mf); + + cmCTestMemCheckHandler(); + + void Initialize(); +protected: + virtual int PreProcessHandler(); + virtual int PostProcessHandler(); + virtual void GenerateTestCommand(std::vector& args); + +private: + + enum { // Memory checkers + UNKNOWN = 0, + VALGRIND, + PURIFY, + BOUNDS_CHECKER + }; +public: + enum { // Memory faults + ABR = 0, + ABW, + ABWL, + COR, + EXU, + FFM, + FIM, + FMM, + FMR, + FMW, + FUM, + IPR, + IPW, + MAF, + MLK, + MPK, + NPR, + ODS, + PAR, + PLK, + UMC, + UMR, + NO_MEMORY_FAULT + }; +private: + enum { // Program statuses + NOT_RUN = 0, + TIMEOUT, + SEGFAULT, + ILLEGAL, + INTERRUPT, + NUMERICAL, + OTHER_FAULT, + FAILED, + BAD_COMMAND, + COMPLETED + }; + std::string BoundsCheckerDPBDFile; + std::string BoundsCheckerXMLFile; + std::string MemoryTester; + std::vector MemoryTesterOptionsParsed; + std::string MemoryTesterOptions; + int MemoryTesterStyle; + std::string MemoryTesterOutputFile; + int MemoryTesterGlobalResults[NO_MEMORY_FAULT]; + + ///! Initialize memory checking subsystem. + bool InitializeMemoryChecking(); + + /** + * Generate the Dart compatible output + */ + void GenerateDartOutput(std::ostream& os); + + std::vector CustomPreMemCheck; + std::vector CustomPostMemCheck; + + //! Parse Valgrind/Purify/Bounds Checker result out of the output + //string. After running, log holds the output and results hold the + //different memmory errors. + bool ProcessMemCheckOutput(const std::string& str, + std::string& log, int* results); + bool ProcessMemCheckValgrindOutput(const std::string& str, + std::string& log, int* results); + bool ProcessMemCheckPurifyOutput(const std::string& str, + std::string& log, int* results); + bool ProcessMemCheckBoundsCheckerOutput(const std::string& str, + std::string& log, int* results); + /** + * Run one test + */ + virtual void ProcessOneTest(cmCTestTestProperties *props, + std::vector &passed, + std::vector &failed, + int count, int tmsize); + void PostProcessPurifyTest(cmCTestTestResult& res); + void PostProcessBoundsCheckerTest(cmCTestTestResult& res); +}; + +#endif + diff --git a/CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.cxx b/CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.cxx new file mode 100755 index 0000000..65e9b75 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.cxx @@ -0,0 +1,40 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestReadCustomFilesCommand.cxx,v $ + Language: C++ + Date: $Date: 2006/03/10 20:03:09 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestReadCustomFilesCommand.h" + +#include "cmCTest.h" + +bool cmCTestReadCustomFilesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if (args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::vector::const_iterator dit; + for ( dit = args.begin(); dit != args.end(); ++ dit ) + { + this->CTest->ReadCustomConfigurationFileTree(dit->c_str(), + this->Makefile); + } + + return true; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.h b/CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.h new file mode 100755 index 0000000..b964b54 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestReadCustomFilesCommand.h @@ -0,0 +1,80 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestReadCustomFilesCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/10 20:03:09 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestReadCustomFilesCommand_h +#define cmCTestReadCustomFilesCommand_h + +#include "cmCTestCommand.h" + +/** \class cmCTestReadCustomFiles + * \brief Run a ctest script + * + * cmLibrarysCommand defines a list of executable (i.e., test) + * programs to create. + */ +class cmCTestReadCustomFilesCommand : public cmCTestCommand +{ +public: + + cmCTestReadCustomFilesCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestReadCustomFilesCommand* ni = new cmCTestReadCustomFilesCommand; + ni->CTest = this->CTest; + return ni; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_READ_CUSTOM_FILES";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "read CTestCustom files."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_READ_CUSTOM_FILES( directory ... )\n" + "Read all the CTestCustom.ctest or CTestCustom.cmake files from " + "the given directory."; + } + + cmTypeMacro(cmCTestReadCustomFilesCommand, cmCTestCommand); + +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestRunScriptCommand.cxx b/CMakeLua/Source/CTest/cmCTestRunScriptCommand.cxx new file mode 100755 index 0000000..7876359 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestRunScriptCommand.cxx @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestRunScriptCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestRunScriptCommand.h" + +#include "cmCTestScriptHandler.h" + +bool cmCTestRunScriptCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->CTestScriptHandler->RunCurrentScript(); + return true; + } + + bool np = false; + unsigned int i = 0; + if (args[i] == "NEW_PROCESS") + { + np = true; + i++; + } + // run each script + for (; i < args.size(); ++i) + { + cmCTestScriptHandler::RunScript(this->CTest, args[i].c_str(), !np); + } + return true; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestRunScriptCommand.h b/CMakeLua/Source/CTest/cmCTestRunScriptCommand.h new file mode 100755 index 0000000..5ee2611 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestRunScriptCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestRunScriptCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestRunScriptCommand_h +#define cmCTestRunScriptCommand_h + +#include "cmCTestCommand.h" + +/** \class cmCTestRunScript + * \brief Run a ctest script + * + * cmLibrarysCommand defines a list of executable (i.e., test) + * programs to create. + */ +class cmCTestRunScriptCommand : public cmCTestCommand +{ +public: + + cmCTestRunScriptCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestRunScriptCommand* ni = new cmCTestRunScriptCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_RUN_SCRIPT";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "runs a ctest -S script"; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_RUN_SCRIPT([NEW_PROCESS] script_file_name script_file_name1 \n" + " script_file_name2 ...)\n" + "Runs a script or scripts much like if it was run from ctest -S. " + "If no argument is provided then the current script is run using " + "the current settings of the variables. If NEW_PROCESS is specified " + "then each script will be run in a seperate process."; + } + + cmTypeMacro(cmCTestRunScriptCommand, cmCTestCommand); + +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestScriptHandler.cxx b/CMakeLua/Source/CTest/cmCTestScriptHandler.cxx new file mode 100755 index 0000000..01bc2ef --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestScriptHandler.cxx @@ -0,0 +1,1005 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestScriptHandler.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.43 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestScriptHandler.h" + +#include "cmCTest.h" +#include "cmake.h" +#include "cmFunctionBlocker.h" +#include "cmMakefile.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" +#include "cmGeneratedFileStream.h" + +//#include +#include + +// used for sleep +#ifdef _WIN32 +#include "windows.h" +#endif + +#include +#include +#include +#include + +// needed for sleep +#if !defined(_WIN32) +# include +#endif + +#include "cmCTestBuildCommand.h" +#include "cmCTestConfigureCommand.h" +#include "cmCTestCoverageCommand.h" +#include "cmCTestEmptyBinaryDirectoryCommand.h" +#include "cmCTestMemCheckCommand.h" +#include "cmCTestReadCustomFilesCommand.h" +#include "cmCTestRunScriptCommand.h" +#include "cmCTestSleepCommand.h" +#include "cmCTestStartCommand.h" +#include "cmCTestSubmitCommand.h" +#include "cmCTestTestCommand.h" +#include "cmCTestUpdateCommand.h" + +#define CTEST_INITIAL_CMAKE_OUTPUT_FILE_NAME "CTestInitialCMakeOutput.log" + +// used to keep elapsed time up to date +class cmCTestScriptFunctionBlocker : public cmFunctionBlocker +{ +public: + cmCTestScriptFunctionBlocker() {} + virtual ~cmCTestScriptFunctionBlocker() {} + virtual bool IsFunctionBlocked(const cmListFileFunction& lff, + cmMakefile &mf, + cmExecutionStatus &); + //virtual bool ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf); + //virtual void ScopeEnded(cmMakefile &mf); + + cmCTestScriptHandler* CTestScriptHandler; +}; + +// simply update the time and don't block anything +bool cmCTestScriptFunctionBlocker:: +IsFunctionBlocked(const cmListFileFunction& , cmMakefile &, + cmExecutionStatus &) +{ + this->CTestScriptHandler->UpdateElapsedTime(); + return false; +} + +//---------------------------------------------------------------------- +cmCTestScriptHandler::cmCTestScriptHandler() +{ + this->Backup = false; + this->EmptyBinDir = false; + this->EmptyBinDirOnce = false; + this->Makefile = 0; + this->LocalGenerator = 0; + this->CMake = 0; + this->GlobalGenerator = 0; + + this->ScriptStartTime = 0; + + // the *60 is becuase the settings are in minutes but GetTime is seconds + this->MinimumInterval = 30*60; + this->ContinuousDuration = -1; +} + +//---------------------------------------------------------------------- +void cmCTestScriptHandler::Initialize() +{ + this->Superclass::Initialize(); + this->Backup = false; + this->EmptyBinDir = false; + this->EmptyBinDirOnce = false; + + this->SourceDir = ""; + this->BinaryDir = ""; + this->BackupSourceDir = ""; + this->BackupBinaryDir = ""; + this->CTestRoot = ""; + this->CVSCheckOut = ""; + this->CTestCmd = ""; + this->UpdateCmd = ""; + this->CTestEnv = ""; + this->InitCache = ""; + this->CMakeCmd = ""; + this->CMOutFile = ""; + this->ExtraUpdates.clear(); + + this->MinimumInterval = 20*60; + this->ContinuousDuration = -1; + + // what time in seconds did this script start running + this->ScriptStartTime = 0; + + this->Makefile = 0; + if (this->LocalGenerator) + { + delete this->LocalGenerator; + } + this->LocalGenerator = 0; + if (this->GlobalGenerator) + { + delete this->GlobalGenerator; + } + this->GlobalGenerator = 0; + if (this->CMake) + { + delete this->CMake; + } +} + +//---------------------------------------------------------------------- +cmCTestScriptHandler::~cmCTestScriptHandler() +{ + // local generator owns the makefile + this->Makefile = 0; + if (this->LocalGenerator) + { + delete this->LocalGenerator; + } + this->LocalGenerator = 0; + if (this->GlobalGenerator) + { + delete this->GlobalGenerator; + } + this->GlobalGenerator = 0; + if (this->CMake) + { + delete this->CMake; + } +} + + +//---------------------------------------------------------------------- +// just adds an argument to the vector +void cmCTestScriptHandler::AddConfigurationScript(const char *script, + bool pscope) +{ + this->ConfigurationScripts.push_back(script); + this->ScriptProcessScope.push_back(pscope); +} + + +//---------------------------------------------------------------------- +// the generic entry point for handling scripts, this routine will run all +// the scripts provides a -S arguments +int cmCTestScriptHandler::ProcessHandler() +{ + int res = 0; + for (size_t i=0; i < this->ConfigurationScripts.size(); ++i) + { + // for each script run it + res += this->RunConfigurationScript + (cmSystemTools::CollapseFullPath(this->ConfigurationScripts[i].c_str()), + this->ScriptProcessScope[i]); + } + if ( res ) + { + return -1; + } + return 0; +} + +void cmCTestScriptHandler::UpdateElapsedTime() +{ + if (this->LocalGenerator) + { + // set the current elapsed time + char timeString[20]; + int itime = static_cast(cmSystemTools::GetTime() + - this->ScriptStartTime); + sprintf(timeString,"%i",itime); + this->LocalGenerator->GetMakefile()->AddDefinition("CTEST_ELAPSED_TIME", + timeString); + } +} + +//---------------------------------------------------------------------- +void cmCTestScriptHandler::AddCTestCommand(cmCTestCommand* command) +{ + cmCTestCommand* newCom = command; + newCom->CTest = this->CTest; + newCom->CTestScriptHandler = this; + this->CMake->AddCommand(newCom); +} + +int cmCTestScriptHandler::ExecuteScript(const std::string& total_script_arg) +{ + // execute the script passing in the arguments to the script as well as the + // arguments from this invocation of cmake + std::vector argv; + argv.push_back(this->CTest->GetCTestExecutable()); + argv.push_back("-SR"); + argv.push_back(total_script_arg.c_str()); + + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Executable for CTest is: " << + this->CTest->GetCTestExecutable() << "\n"); + + // now pass through all the other arguments + std::vector &initArgs = + this->CTest->GetInitialCommandLineArguments(); + for(size_t i=1; i < initArgs.size(); ++i) + { + argv.push_back(initArgs[i].c_str()); + } + argv.push_back(0); + + // Now create process object + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetCommand(cp, &*argv.begin()); + //cmsysProcess_SetWorkingDirectory(cp, dir); + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + //cmsysProcess_SetTimeout(cp, timeout); + cmsysProcess_Execute(cp); + + std::vector out; + std::vector err; + std::string line; + int pipe = cmSystemTools::WaitForLine(cp, line, 100.0, out, err); + while(pipe != cmsysProcess_Pipe_None) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Output: " + << line << "\n"); + if(pipe == cmsysProcess_Pipe_STDERR) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, line << "\n"); + } + else if(pipe == cmsysProcess_Pipe_STDOUT) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, line << "\n"); + } + pipe = cmSystemTools::WaitForLine(cp, line, 100, out, err); + } + + // Properly handle output of the build command + cmsysProcess_WaitForExit(cp, 0); + int result = cmsysProcess_GetState(cp); + + int retVal = 0; + if(result == cmsysProcess_State_Exited) + { + retVal = cmsysProcess_GetExitValue(cp); + } + else + { + abort(); + } + return retVal; +} + +void cmCTestScriptHandler::CreateCMake() +{ + // create a cmake instance to read the configuration script + if (this->CMake) + { + delete this->CMake; + delete this->GlobalGenerator; + delete this->LocalGenerator; + } + this->CMake = new cmake; + this->CMake->AddCMakePaths(); + this->GlobalGenerator = new cmGlobalGenerator; + this->GlobalGenerator->SetCMakeInstance(this->CMake); + + this->LocalGenerator = this->GlobalGenerator->CreateLocalGenerator(); + this->LocalGenerator->SetGlobalGenerator(this->GlobalGenerator); + this->Makefile = this->LocalGenerator->GetMakefile(); + + // remove all cmake commands which are not scriptable, since they can't be + // used in ctest scripts + this->CMake->RemoveUnscriptableCommands(); + + // add any ctest specific commands, probably should have common superclass + // for ctest commands to clean this up. If a couple more commands are + // created with the same format lets do that - ken + this->AddCTestCommand(new cmCTestBuildCommand); + this->AddCTestCommand(new cmCTestConfigureCommand); + this->AddCTestCommand(new cmCTestCoverageCommand); + this->AddCTestCommand(new cmCTestEmptyBinaryDirectoryCommand); + this->AddCTestCommand(new cmCTestMemCheckCommand); + this->AddCTestCommand(new cmCTestReadCustomFilesCommand); + this->AddCTestCommand(new cmCTestRunScriptCommand); + this->AddCTestCommand(new cmCTestSleepCommand); + this->AddCTestCommand(new cmCTestStartCommand); + this->AddCTestCommand(new cmCTestSubmitCommand); + this->AddCTestCommand(new cmCTestTestCommand); + this->AddCTestCommand(new cmCTestUpdateCommand); +} + +void cmCTestScriptHandler::GetCommandDocumentation( + std::vector& v) const +{ + this->CMake->GetCommandDocumentation(v); +} + +//---------------------------------------------------------------------- +// this sets up some variables for the script to use, creates the required +// cmake instance and generators, and then reads in the script +int cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg) +{ + // if the argument has a , in it then it needs to be broken into the fist + // argument (which is the script) and the second argument which will be + // passed into the scripts as S_ARG + std::string script = total_script_arg; + std::string script_arg; + if (total_script_arg.find(",") != std::string::npos) + { + script = total_script_arg.substr(0,total_script_arg.find(",")); + script_arg = total_script_arg.substr(total_script_arg.find(",")+1); + } + + // make sure the file exists + if (!cmSystemTools::FileExists(script.c_str())) + { + cmSystemTools::Error("Cannot find file: ", script.c_str()); + return 1; + } + + // read in the list file to fill the cache + // create a cmake instance to read the configuration script + this->CreateCMake(); + + // set a variable with the path to the current script + this->Makefile->AddDefinition("CTEST_SCRIPT_DIRECTORY", + cmSystemTools::GetFilenamePath(script).c_str()); + this->Makefile->AddDefinition("CTEST_SCRIPT_NAME", + cmSystemTools::GetFilenameName(script).c_str()); + this->Makefile->AddDefinition("CTEST_EXECUTABLE_NAME", + this->CTest->GetCTestExecutable()); + this->Makefile->AddDefinition("CMAKE_EXECUTABLE_NAME", + this->CTest->GetCMakeExecutable()); + this->Makefile->AddDefinition("CTEST_RUN_CURRENT_SCRIPT", true); + this->UpdateElapsedTime(); + + // add the script arg if defined + if (script_arg.size()) + { + this->Makefile->AddDefinition("CTEST_SCRIPT_ARG", script_arg.c_str()); + } + + // always add a function blocker to update the elapsed time + cmCTestScriptFunctionBlocker *f = new cmCTestScriptFunctionBlocker(); + f->CTestScriptHandler = this; + this->Makefile->AddFunctionBlocker(f); + + // finally read in the script + if (!this->Makefile->ReadListFile(0, script.c_str()) || + cmSystemTools::GetErrorOccuredFlag()) + { + return 2; + } + + return 0; +} + + +//---------------------------------------------------------------------- +// extract variabels from the script to set ivars +int cmCTestScriptHandler::ExtractVariables() +{ + // Temporary variables + const char* minInterval; + const char* contDuration; + + this->SourceDir + = this->Makefile->GetSafeDefinition("CTEST_SOURCE_DIRECTORY"); + this->BinaryDir + = this->Makefile->GetSafeDefinition("CTEST_BINARY_DIRECTORY"); + + // add in translations for src and bin + cmSystemTools::AddKeepPath(this->SourceDir.c_str()); + cmSystemTools::AddKeepPath(this->BinaryDir.c_str()); + + this->CTestCmd + = this->Makefile->GetSafeDefinition("CTEST_COMMAND"); + this->CVSCheckOut + = this->Makefile->GetSafeDefinition("CTEST_CVS_CHECKOUT"); + this->CTestRoot + = this->Makefile->GetSafeDefinition("CTEST_DASHBOARD_ROOT"); + this->UpdateCmd + = this->Makefile->GetSafeDefinition("CTEST_UPDATE_COMMAND"); + if ( this->UpdateCmd.empty() ) + { + this->UpdateCmd + = this->Makefile->GetSafeDefinition("CTEST_CVS_COMMAND"); + } + this->CTestEnv + = this->Makefile->GetSafeDefinition("CTEST_ENVIRONMENT"); + this->InitCache + = this->Makefile->GetSafeDefinition("CTEST_INITIAL_CACHE"); + this->CMakeCmd + = this->Makefile->GetSafeDefinition("CTEST_CMAKE_COMMAND"); + this->CMOutFile + = this->Makefile->GetSafeDefinition("CTEST_CMAKE_OUTPUT_FILE_NAME"); + + this->Backup + = this->Makefile->IsOn("CTEST_BACKUP_AND_RESTORE"); + this->EmptyBinDir + = this->Makefile->IsOn("CTEST_START_WITH_EMPTY_BINARY_DIRECTORY"); + this->EmptyBinDirOnce + = this->Makefile->IsOn("CTEST_START_WITH_EMPTY_BINARY_DIRECTORY_ONCE"); + + minInterval + = this->Makefile->GetDefinition("CTEST_CONTINUOUS_MINIMUM_INTERVAL"); + contDuration + = this->Makefile->GetDefinition("CTEST_CONTINUOUS_DURATION"); + + char updateVar[40]; + int i; + for (i = 1; i < 10; ++i) + { + sprintf(updateVar,"CTEST_EXTRA_UPDATES_%i",i); + const char *updateVal = this->Makefile->GetDefinition(updateVar); + if ( updateVal ) + { + if ( this->UpdateCmd.empty() ) + { + cmSystemTools::Error(updateVar, + " specified without specifying CTEST_CVS_COMMAND."); + return 12; + } + this->ExtraUpdates.push_back(updateVal); + } + } + + // in order to backup and restore we also must have the cvs root + if (this->Backup && this->CVSCheckOut.empty()) + { + cmSystemTools::Error( + "Backup was requested without specifying CTEST_CVS_CHECKOUT."); + return 3; + } + + // make sure the required info is here + if (this->SourceDir.empty() || + this->BinaryDir.empty() || + this->CTestCmd.empty()) + { + std::string msg = "CTEST_SOURCE_DIRECTORY = "; + msg += (!this->SourceDir.empty()) ? this->SourceDir.c_str() : "(Null)"; + msg += "\nCTEST_BINARY_DIRECTORY = "; + msg += (!this->BinaryDir.empty()) ? this->BinaryDir.c_str() : "(Null)"; + msg += "\nCTEST_COMMAND = "; + msg += (!this->CTestCmd.empty()) ? this->CTestCmd.c_str() : "(Null)"; + cmSystemTools::Error( + "Some required settings in the configuration file were missing:\n", + msg.c_str()); + return 4; + } + + // if the dashboard root isn't specified then we can compute it from the + // this->SourceDir + if (this->CTestRoot.empty() ) + { + this->CTestRoot = cmSystemTools::GetFilenamePath(this->SourceDir).c_str(); + } + + // the script may override the minimum continuous interval + if (minInterval) + { + this->MinimumInterval = 60 * atof(minInterval); + } + if (contDuration) + { + this->ContinuousDuration = 60.0 * atof(contDuration); + } + + + this->UpdateElapsedTime(); + + return 0; +} + +//---------------------------------------------------------------------- +void cmCTestScriptHandler::SleepInSeconds(unsigned int secondsToWait) +{ +#if defined(_WIN32) + Sleep(1000*secondsToWait); +#else + sleep(secondsToWait); +#endif +} + +//---------------------------------------------------------------------- +// run a specific script +int cmCTestScriptHandler::RunConfigurationScript +(const std::string& total_script_arg, bool pscope) +{ + int result; + + this->ScriptStartTime = + cmSystemTools::GetTime(); + + // read in the script + if (pscope) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Reading Script: " << total_script_arg << std::endl); + result = this->ReadInScript(total_script_arg); + } + else + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Executing Script: " << total_script_arg << std::endl); + result = this->ExecuteScript(total_script_arg); + } + if (result) + { + return result; + } + + // only run the curent script if we should + if (this->Makefile && this->Makefile->IsOn("CTEST_RUN_CURRENT_SCRIPT")) + { + return this->RunCurrentScript(); + } + return result; +} + +//---------------------------------------------------------------------- +int cmCTestScriptHandler::RunCurrentScript() +{ + int result; + + // do not run twice + this->Makefile->AddDefinition("CTEST_RUN_CURRENT_SCRIPT", false); + + // no popup widows + cmSystemTools::SetRunCommandHideConsole(true); + + // extract the vars from the cache and store in ivars + result = this->ExtractVariables(); + if (result) + { + return result; + } + + // set any environment variables + if (!this->CTestEnv.empty()) + { + std::vector envArgs; + cmSystemTools::ExpandListArgument(this->CTestEnv.c_str(),envArgs); + // for each variable/argument do a putenv + for (unsigned i = 0; i < envArgs.size(); ++i) + { + cmSystemTools::PutEnv(envArgs[i].c_str()); + } + } + + // now that we have done most of the error checking finally run the + // dashboard, we may be asked to repeatedly run this dashboard, such as + // for a continuous, do we ned to run it more than once? + if ( this->ContinuousDuration >= 0 ) + { + this->UpdateElapsedTime(); + double ending_time = cmSystemTools::GetTime() + this->ContinuousDuration; + if (this->EmptyBinDirOnce) + { + this->EmptyBinDir = true; + } + do + { + double interval = cmSystemTools::GetTime(); + result = this->RunConfigurationDashboard(); + interval = cmSystemTools::GetTime() - interval; + if (interval < this->MinimumInterval) + { + this->SleepInSeconds( + static_cast(this->MinimumInterval - interval)); + } + if (this->EmptyBinDirOnce) + { + this->EmptyBinDir = false; + } + } + while (cmSystemTools::GetTime() < ending_time); + } + // otherwise just run it once + else + { + result = this->RunConfigurationDashboard(); + } + + return result; +} + +//---------------------------------------------------------------------- +int cmCTestScriptHandler::CheckOutSourceDir() +{ + std::string command; + std::string output; + int retVal; + bool res; + + if (!cmSystemTools::FileExists(this->SourceDir.c_str()) && + !this->CVSCheckOut.empty()) + { + // we must now checkout the src dir + output = ""; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Run cvs: " << this->CVSCheckOut << std::endl); + res = cmSystemTools::RunSingleCommand(this->CVSCheckOut.c_str(), &output, + &retVal, this->CTestRoot.c_str(), this->HandlerVerbose, + 0 /*this->TimeOut*/); + if (!res || retVal != 0) + { + cmSystemTools::Error("Unable to perform cvs checkout:\n", + output.c_str()); + return 6; + } + } + return 0; +} + +//---------------------------------------------------------------------- +int cmCTestScriptHandler::BackupDirectories() +{ + int retVal; + + // compute the backup names + this->BackupSourceDir = this->SourceDir; + this->BackupSourceDir += "_CMakeBackup"; + this->BackupBinaryDir = this->BinaryDir; + this->BackupBinaryDir += "_CMakeBackup"; + + // backup the binary and src directories if requested + if (this->Backup) + { + // if for some reason those directories exist then first delete them + if (cmSystemTools::FileExists(this->BackupSourceDir.c_str())) + { + cmSystemTools::RemoveADirectory(this->BackupSourceDir.c_str()); + } + if (cmSystemTools::FileExists(this->BackupBinaryDir.c_str())) + { + cmSystemTools::RemoveADirectory(this->BackupBinaryDir.c_str()); + } + + // first rename the src and binary directories + rename(this->SourceDir.c_str(), this->BackupSourceDir.c_str()); + rename(this->BinaryDir.c_str(), this->BackupBinaryDir.c_str()); + + // we must now checkout the src dir + retVal = this->CheckOutSourceDir(); + if (retVal) + { + this->RestoreBackupDirectories(); + return retVal; + } + } + + return 0; +} + + +//---------------------------------------------------------------------- +int cmCTestScriptHandler::PerformExtraUpdates() +{ + std::string command; + std::string output; + int retVal; + bool res; + + // do an initial cvs update as required + command = this->UpdateCmd; + std::vector::iterator it; + for (it = this->ExtraUpdates.begin(); + it != this->ExtraUpdates.end(); + ++ it ) + { + std::vector cvsArgs; + cmSystemTools::ExpandListArgument(it->c_str(),cvsArgs); + if (cvsArgs.size() == 2) + { + std::string fullCommand = command; + fullCommand += " update "; + fullCommand += cvsArgs[1]; + output = ""; + retVal = 0; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Run Update: " + << fullCommand.c_str() << std::endl); + res = cmSystemTools::RunSingleCommand(fullCommand.c_str(), &output, + &retVal, cvsArgs[0].c_str(), + this->HandlerVerbose, 0 /*this->TimeOut*/); + if (!res || retVal != 0) + { + cmSystemTools::Error("Unable to perform extra updates:\n", + it->c_str(), "\nWith output:\n", + output.c_str()); + return 0; + } + } + } + return 0; +} + + +//---------------------------------------------------------------------- +// run a single dashboard entry +int cmCTestScriptHandler::RunConfigurationDashboard() +{ + // local variables + std::string command; + std::string output; + int retVal; + bool res; + + // make sure the src directory is there, if it isn't then we might be able + // to check it out from cvs + retVal = this->CheckOutSourceDir(); + if (retVal) + { + return retVal; + } + + // backup the dirs if requested + retVal = this->BackupDirectories(); + if (retVal) + { + return retVal; + } + + // clear the binary directory? + if (this->EmptyBinDir) + { + if ( !cmCTestScriptHandler::EmptyBinaryDirectory( + this->BinaryDir.c_str()) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem removing the binary directory" << std::endl); + } + } + + // make sure the binary directory exists if it isn't the srcdir + if (!cmSystemTools::FileExists(this->BinaryDir.c_str()) && + this->SourceDir != this->BinaryDir) + { + if (!cmSystemTools::MakeDirectory(this->BinaryDir.c_str())) + { + cmSystemTools::Error("Unable to create the binary directory:\n", + this->BinaryDir.c_str()); + this->RestoreBackupDirectories(); + return 7; + } + } + + // if the binary directory and the source directory are the same, + // and we are starting with an empty binary directory, then that means + // we must check out the source tree + if (this->EmptyBinDir && this->SourceDir == this->BinaryDir) + { + // make sure we have the required info + if (this->CVSCheckOut.empty()) + { + cmSystemTools::Error("You have specified the source and binary " + "directories to be the same (an in source build). You have also " + "specified that the binary directory is to be erased. This means " + "that the source will have to be checked out from CVS. But you have " + "not specified CTEST_CVS_CHECKOUT"); + return 8; + } + + // we must now checkout the src dir + retVal = this->CheckOutSourceDir(); + if (retVal) + { + this->RestoreBackupDirectories(); + return retVal; + } + } + + // backup the dirs if requested + retVal = this->PerformExtraUpdates(); + if (retVal) + { + return retVal; + } + + // put the initial cache into the bin dir + if (!this->InitCache.empty()) + { + std::string cacheFile = this->BinaryDir; + cacheFile += "/CMakeCache.txt"; + cmGeneratedFileStream fout(cacheFile.c_str()); + if(!fout) + { + this->RestoreBackupDirectories(); + return 9; + } + + fout.write(this->InitCache.c_str(), this->InitCache.size()); + + // Make sure the operating system has finished writing the file + // before closing it. This will ensure the file is finished before + // the check below. + fout.flush(); + fout.close(); + } + + // do an initial cmake to setup the DartConfig file + int cmakeFailed = 0; + std::string cmakeFailedOuput; + if (!this->CMakeCmd.empty()) + { + command = this->CMakeCmd; + command += " \""; + command += this->SourceDir; + output = ""; + command += "\""; + retVal = 0; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Run cmake command: " + << command.c_str() << std::endl); + res = cmSystemTools::RunSingleCommand(command.c_str(), &output, + &retVal, this->BinaryDir.c_str(), + this->HandlerVerbose, 0 /*this->TimeOut*/); + + if ( !this->CMOutFile.empty() ) + { + std::string cmakeOutputFile = this->CMOutFile; + if ( !cmSystemTools::FileIsFullPath(cmakeOutputFile.c_str()) ) + { + cmakeOutputFile = this->BinaryDir + "/" + cmakeOutputFile; + } + + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Write CMake output to file: " << cmakeOutputFile.c_str() + << std::endl); + cmGeneratedFileStream fout(cmakeOutputFile.c_str()); + if ( fout ) + { + fout << output.c_str(); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot open CMake output file: " + << cmakeOutputFile.c_str() << " for writing" << std::endl); + } + } + if (!res || retVal != 0) + { + // even if this fails continue to the next step + cmakeFailed = 1; + cmakeFailedOuput = output; + } + } + + // run ctest, it may be more than one command in here + std::vector ctestCommands; + cmSystemTools::ExpandListArgument(this->CTestCmd,ctestCommands); + // for each variable/argument do a putenv + for (unsigned i = 0; i < ctestCommands.size(); ++i) + { + command = ctestCommands[i]; + output = ""; + retVal = 0; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Run ctest command: " + << command.c_str() << std::endl); + res = cmSystemTools::RunSingleCommand(command.c_str(), &output, + &retVal, this->BinaryDir.c_str(), this->HandlerVerbose, + 0 /*this->TimeOut*/); + + // did something critical fail in ctest + if (!res || cmakeFailed || + retVal & cmCTest::BUILD_ERRORS) + { + this->RestoreBackupDirectories(); + if (cmakeFailed) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Unable to run cmake:" << std::endl + << cmakeFailedOuput.c_str() << std::endl); + return 10; + } + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Unable to run ctest:" << std::endl + << output.c_str() << std::endl); + if (!res) + { + return 11; + } + return retVal * 100; + } + } + + // if all was succesful, delete the backup dirs to free up disk space + if (this->Backup) + { + cmSystemTools::RemoveADirectory(this->BackupSourceDir.c_str()); + cmSystemTools::RemoveADirectory(this->BackupBinaryDir.c_str()); + } + + return 0; +} + + +//------------------------------------------------------------------------- +void cmCTestScriptHandler::RestoreBackupDirectories() +{ + // if we backed up the dirs and the build failed, then restore + // the backed up dirs + if (this->Backup) + { + // if for some reason those directories exist then first delete them + if (cmSystemTools::FileExists(this->SourceDir.c_str())) + { + cmSystemTools::RemoveADirectory(this->SourceDir.c_str()); + } + if (cmSystemTools::FileExists(this->BinaryDir.c_str())) + { + cmSystemTools::RemoveADirectory(this->BinaryDir.c_str()); + } + // rename the src and binary directories + rename(this->BackupSourceDir.c_str(), this->SourceDir.c_str()); + rename(this->BackupBinaryDir.c_str(), this->BinaryDir.c_str()); + } +} + +bool cmCTestScriptHandler::RunScript(cmCTest* ctest, const char *sname, + bool InProcess) +{ + cmCTestScriptHandler* sh = new cmCTestScriptHandler(); + sh->SetCTestInstance(ctest); + sh->AddConfigurationScript(sname,InProcess); + sh->ProcessHandler(); + delete sh; + return true; +} + +bool cmCTestScriptHandler::EmptyBinaryDirectory(const char *sname) +{ + // try to avoid deleting root + if (!sname || strlen(sname) < 2) + { + return false; + } + + // try to avoid deleting directories that we shouldn't + std::string check = sname; + check += "/CMakeCache.txt"; + if(cmSystemTools::FileExists(check.c_str()) && + !cmSystemTools::RemoveADirectory(sname)) + { + return false; + } + return true; +} + +//------------------------------------------------------------------------- +double cmCTestScriptHandler::GetRemainingTimeAllowed() +{ + if (!this->Makefile) + { + return 1.0e7; + } + + const char *timelimitS + = this->Makefile->GetDefinition("CTEST_TIME_LIMIT"); + + if (!timelimitS) + { + return 1.0e7; + } + + double timelimit = atof(timelimitS); + + return timelimit - cmSystemTools::GetTime() + this->ScriptStartTime; +} diff --git a/CMakeLua/Source/CTest/cmCTestScriptHandler.h b/CMakeLua/Source/CTest/cmCTestScriptHandler.h new file mode 100755 index 0000000..8f04e1a --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestScriptHandler.h @@ -0,0 +1,171 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestScriptHandler.h,v $ + Language: C++ + Date: $Date: 2007/06/08 20:06:33 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestScriptHandler_h +#define cmCTestScriptHandler_h + + +#include "cmCTestGenericHandler.h" +#include "cmListFileCache.h" + +class cmMakefile; +class cmLocalGenerator; +class cmGlobalGenerator; +class cmake; +class cmCTestCommand; + +/** \class cmCTestScriptHandler + * \brief A class that handles ctest -S invocations + * + * CTest script is controlled using several variables that script has to + * specify and some optional ones. Required ones are: + * CTEST_SOURCE_DIRECTORY - Source directory of the project + * CTEST_BINARY_DIRECTORY - Binary directory of the project + * CTEST_COMMAND - Testing commands + * + * Optional variables are: + * CTEST_BACKUP_AND_RESTORE + * CTEST_CMAKE_COMMAND + * CTEST_CMAKE_OUTPUT_FILE_NAME + * CTEST_CONTINUOUS_DURATION + * CTEST_CONTINUOUS_MINIMUM_INTERVAL + * CTEST_CVS_CHECKOUT + * CTEST_CVS_COMMAND + * CTEST_UPDATE_COMMAND + * CTEST_DASHBOARD_ROOT + * CTEST_ENVIRONMENT + * CTEST_INITIAL_CACHE + * CTEST_START_WITH_EMPTY_BINARY_DIRECTORY + * CTEST_START_WITH_EMPTY_BINARY_DIRECTORY_ONCE + * + * In addition the following variables can be used. The number can be 1-10. + * CTEST_EXTRA_UPDATES_1 + * CTEST_EXTRA_UPDATES_2 + * ... + * CTEST_EXTRA_UPDATES_10 + * + * CTest script can use the following arguments CTest provides: + * CTEST_SCRIPT_ARG + * CTEST_SCRIPT_DIRECTORY + * CTEST_SCRIPT_NAME + * + */ +class cmCTestScriptHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestScriptHandler, cmCTestGenericHandler); + + /** + * Add a script to run, and if is should run in the current process + */ + void AddConfigurationScript(const char *, bool pscope); + + /** + * Run a dashboard using a specified confiuration script + */ + int ProcessHandler(); + + /* + * Run a script + */ + static bool RunScript(cmCTest* ctest, const char *script, bool InProcess); + int RunCurrentScript(); + + /* + * Empty Binary Directory + */ + static bool EmptyBinaryDirectory(const char *dir); + + /* + * Some elapsed time handling functions + */ + static void SleepInSeconds(unsigned int secondsToWait); + void UpdateElapsedTime(); + + /** + * Return the time remaianing that the script is allowed to run in + * seconds if the user has set the variable CTEST_TIME_LIMIT. If that has + * not been set it returns 1e7 seconds + */ + double GetRemainingTimeAllowed(); + + cmCTestScriptHandler(); + ~cmCTestScriptHandler(); + + void Initialize(); + + void CreateCMake(); + void GetCommandDocumentation(std::vector& v) const; + +private: + // reads in a script + int ReadInScript(const std::string& total_script_arg); + int ExecuteScript(const std::string& total_script_arg); + + // extract vars from the script to set ivars + int ExtractVariables(); + + // perform a CVS checkout of the source dir + int CheckOutSourceDir(); + + // perform any extra cvs updates that were requested + int PerformExtraUpdates(); + + // backup and restore dirs + int BackupDirectories(); + void RestoreBackupDirectories(); + + int RunConfigurationScript(const std::string& script, bool pscope); + int RunConfigurationDashboard(); + + // Add ctest command + void AddCTestCommand(cmCTestCommand* command); + + std::vector ConfigurationScripts; + std::vector ScriptProcessScope; + + bool Backup; + bool EmptyBinDir; + bool EmptyBinDirOnce; + + cmStdString SourceDir; + cmStdString BinaryDir; + cmStdString BackupSourceDir; + cmStdString BackupBinaryDir; + cmStdString CTestRoot; + cmStdString CVSCheckOut; + cmStdString CTestCmd; + cmStdString UpdateCmd; + cmStdString CTestEnv; + cmStdString InitCache; + cmStdString CMakeCmd; + cmStdString CMOutFile; + std::vector ExtraUpdates; + + double MinimumInterval; + double ContinuousDuration; + + // what time in seconds did this script start running + double ScriptStartTime; + + cmMakefile *Makefile; + cmLocalGenerator *LocalGenerator; + cmGlobalGenerator *GlobalGenerator; + cmake *CMake; +}; + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestSleepCommand.cxx b/CMakeLua/Source/CTest/cmCTestSleepCommand.cxx new file mode 100755 index 0000000..662645d --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestSleepCommand.cxx @@ -0,0 +1,60 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestSleepCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestSleepCommand.h" + +#include "cmCTestScriptHandler.h" +#include // required for atoi + +bool cmCTestSleepCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if (args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // sleep for specified seconds + unsigned int time1 = atoi(args[0].c_str()); + if(args.size() == 1 ) + { + cmCTestScriptHandler::SleepInSeconds(time1); + // update the elapsed time since it could have slept for a while + this->CTestScriptHandler->UpdateElapsedTime(); + return true; + } + + // sleep up to a duration + if(args.size() == 3 ) + { + unsigned int duration = atoi(args[1].c_str()); + unsigned int time2 = atoi(args[2].c_str()); + if (time1 + duration > time2) + { + duration = (time1 + duration - time2); + cmCTestScriptHandler::SleepInSeconds(duration); + // update the elapsed time since it could have slept for a while + this->CTestScriptHandler->UpdateElapsedTime(); + } + return true; + } + + this->SetError("called with incorrect number of arguments"); + return false; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestSleepCommand.h b/CMakeLua/Source/CTest/cmCTestSleepCommand.h new file mode 100755 index 0000000..5ff21ce --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestSleepCommand.h @@ -0,0 +1,83 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestSleepCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestSleepCommand_h +#define cmCTestSleepCommand_h + +#include "cmCTestCommand.h" + +/** \class cmCTestSleep + * \brief Run a ctest script + * + * cmLibrarysCommand defines a list of executable (i.e., test) + * programs to create. + */ +class cmCTestSleepCommand : public cmCTestCommand +{ +public: + + cmCTestSleepCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestSleepCommand* ni = new cmCTestSleepCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_SLEEP";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "sleeps for some amount of time"; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_SLEEP( seconds )\n" + " CTEST_SLEEP( time1 duration time2 )\n" + "With one argument it will sleep for a given number of seconds. " + "With three arguments it will wait for time2 - time1 - duration " + "seconds."; + } + + cmTypeMacro(cmCTestSleepCommand, cmCTestCommand); + +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestStartCommand.cxx b/CMakeLua/Source/CTest/cmCTestStartCommand.cxx new file mode 100755 index 0000000..140811c --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestStartCommand.cxx @@ -0,0 +1,109 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestStartCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestStartCommand.h" + +#include "cmCTest.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" + +bool cmCTestStartCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if (args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + size_t cnt = 0; + const char* smodel = args[cnt].c_str(); + const char* src_dir = 0; + const char* bld_dir = 0; + + cnt++; + + this->CTest->SetSpecificTrack(0); + if ( cnt < args.size() -1 ) + { + if ( args[cnt] == "TRACK" ) + { + cnt ++; + this->CTest->SetSpecificTrack(args[cnt].c_str()); + cnt ++; + } + } + + if ( cnt < args.size() ) + { + src_dir = args[cnt].c_str(); + cnt ++; + if ( cnt < args.size() ) + { + bld_dir = args[cnt].c_str(); + } + } + if ( !src_dir ) + { + src_dir = this->Makefile->GetDefinition("CTEST_SOURCE_DIRECTORY"); + } + if ( !bld_dir) + { + bld_dir = this->Makefile->GetDefinition("CTEST_BINARY_DIRECTORY"); + } + if ( !src_dir ) + { + this->SetError("source directory not specified. Specify source directory " + "as an argument or set CTEST_SOURCE_DIRECTORY"); + return false; + } + if ( !bld_dir) + { + this->SetError("binary directory not specified. Specify binary directory " + "as an argument or set CTEST_BINARY_DIRECTORY"); + return false; + } + + cmSystemTools::AddKeepPath(src_dir); + cmSystemTools::AddKeepPath(bld_dir); + + this->CTest->EmptyCTestConfiguration(); + this->CTest->SetCTestConfiguration("SourceDirectory", + cmSystemTools::CollapseFullPath(src_dir).c_str()); + this->CTest->SetCTestConfiguration("BuildDirectory", + cmSystemTools::CollapseFullPath(bld_dir).c_str()); + + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Run dashboard with model " + << smodel << std::endl + << " Source directory: " << src_dir << std::endl + << " Build directory: " << bld_dir << std::endl); + const char* track = this->CTest->GetSpecificTrack(); + if ( track ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Track: " << track << std::endl); + } + + this->Makefile->AddDefinition("CTEST_RUN_CURRENT_SCRIPT", "OFF"); + this->CTest->SetSuppressUpdatingCTestConfiguration(true); + int model = this->CTest->GetTestModelFromString(smodel); + this->CTest->SetTestModel(model); + this->CTest->SetProduceXML(true); + + return this->CTest->InitializeFromCommand(this, true); +} + + diff --git a/CMakeLua/Source/CTest/cmCTestStartCommand.h b/CMakeLua/Source/CTest/cmCTestStartCommand.h new file mode 100755 index 0000000..5c71e90 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestStartCommand.h @@ -0,0 +1,83 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestStartCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:01 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestStartCommand_h +#define cmCTestStartCommand_h + +#include "cmCTestCommand.h" + +/** \class cmCTestStart + * \brief Run a ctest script + * + * cmCTestStartCommand defineds the command to start the nightly testing. + */ +class cmCTestStartCommand : public cmCTestCommand +{ +public: + + cmCTestStartCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestStartCommand* ni = new cmCTestStartCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_START";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Starts the testing for a given model"; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_START(Model [TRACK ] [source [binary]])\n" + "Starts the testing for a given model. The command should be called " + "after the binary directory is initialized. If the 'source' and " + "'binary' directory are not specified, it reads the " + "CTEST_SOURCE_DIRECTORY and CTEST_BINARY_DIRECTORY. If the track is " + "specified, the submissions will go to the specified track."; + } + + cmTypeMacro(cmCTestStartCommand, cmCTestCommand); + +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestSubmitCommand.cxx b/CMakeLua/Source/CTest/cmCTestSubmitCommand.cxx new file mode 100644 index 0000000..3060ad3 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestSubmitCommand.cxx @@ -0,0 +1,112 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestSubmitCommand.cxx,v $ + Language: C++ + Date: $Date: 2006/03/29 17:33:41 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestSubmitCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" + +cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler() +{ + const char* ctestDropMethod + = this->Makefile->GetDefinition("CTEST_DROP_METHOD"); + const char* ctestDropSite + = this->Makefile->GetDefinition("CTEST_DROP_SITE"); + const char* ctestDropLocation + = this->Makefile->GetDefinition("CTEST_DROP_LOCATION"); + const char* ctestTriggerSite + = this->Makefile->GetDefinition("CTEST_TRIGGER_SITE"); + + if ( !ctestDropMethod ) + { + ctestDropMethod = "http"; + } + if ( !ctestDropSite ) + { + ctestDropSite = "public.kitware.com"; + } + if ( !ctestDropLocation ) + { + ctestDropLocation = "/cgi-bin/HTTPUploadDartFile.cgi"; + } + if ( !ctestTriggerSite ) + { + ctestTriggerSite + = "http://public.kitware.com/cgi-bin/Submit-Random-TestingResults.cgi"; + cmCTestLog(this->CTest, HANDLER_OUTPUT, "* Use default trigger site: " + << ctestTriggerSite << std::endl;); + } + + this->CTest->SetCTestConfiguration("DropMethod", ctestDropMethod); + this->CTest->SetCTestConfiguration("DropSite", ctestDropSite); + this->CTest->SetCTestConfiguration("DropLocation", ctestDropLocation); + this->CTest->SetCTestConfiguration("TriggerSite", ctestTriggerSite); + + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "DropSiteUser", "CTEST_DROP_SITE_USER"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "DropSitePassword", "CTEST_DROP_SITE_PASSWORD"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "ScpCommand", "CTEST_SCP_COMMAND"); + + const char* notesFilesVariable + = this->Makefile->GetDefinition("CTEST_NOTES_FILES"); + if (notesFilesVariable) + { + std::vector notesFiles; + std::vector newNotesFiles; + cmSystemTools::ExpandListArgument(notesFilesVariable,notesFiles); + std::vector::iterator it; + for ( it = notesFiles.begin(); + it != notesFiles.end(); + ++ it ) + { + newNotesFiles.push_back(*it); + } + this->CTest->GenerateNotesFile(newNotesFiles); + } + const char* extraFilesVariable + = this->Makefile->GetDefinition("CTEST_EXTRA_SUBMIT_FILES"); + if (extraFilesVariable) + { + std::vector extraFiles; + std::vector newExtraFiles; + cmSystemTools::ExpandListArgument(extraFilesVariable,extraFiles); + std::vector::iterator it; + for ( it = extraFiles.begin(); + it != extraFiles.end(); + ++ it ) + { + newExtraFiles.push_back(*it); + } + if ( !this->CTest->SubmitExtraFiles(newExtraFiles)) + { + this->SetError("problem submitting extra files."); + return 0; + } + } + + cmCTestGenericHandler* handler + = this->CTest->GetInitializedHandler("submit"); + if ( !handler ) + { + this->SetError("internal CTest error. Cannot instantiate submit handler"); + return 0; + } + return handler; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestSubmitCommand.h b/CMakeLua/Source/CTest/cmCTestSubmitCommand.h new file mode 100644 index 0000000..b8c62d5 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestSubmitCommand.h @@ -0,0 +1,75 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestSubmitCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/29 17:01:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestSubmitCommand_h +#define cmCTestSubmitCommand_h + +#include "cmCTestHandlerCommand.h" + +/** \class cmCTestSubmit + * \brief Run a ctest script + * + * cmCTestSubmitCommand defineds the command to submit the test results for + * the project. + */ +class cmCTestSubmitCommand : public cmCTestHandlerCommand +{ +public: + + cmCTestSubmitCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestSubmitCommand* ni = new cmCTestSubmitCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_SUBMIT";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Submits the repository."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_SUBMIT([RETURN_VALUE res])\n" + "Submits the test results for the project."; + } + + cmTypeMacro(cmCTestSubmitCommand, cmCTestHandlerCommand); + +protected: + cmCTestGenericHandler* InitializeHandler(); +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestSubmitHandler.cxx b/CMakeLua/Source/CTest/cmCTestSubmitHandler.cxx new file mode 100644 index 0000000..be2beaa --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestSubmitHandler.cxx @@ -0,0 +1,1088 @@ +/*========================================================================= + +Program: CMake - Cross-Platform Makefile Generator +Module: $RCSfile: cmCTestSubmitHandler.cxx,v $ +Language: C++ +Date: $Date: 2007/11/07 14:12:34 $ +Version: $Revision: 1.29 $ + +Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestSubmitHandler.h" + +#include "cmSystemTools.h" +#include "cmVersion.h" +#include "cmGeneratedFileStream.h" +#include "cmCTest.h" + +#include +#include + +// For XML-RPC submission +#include "cm_xmlrpc.h" + +// For curl submission +#include "cm_curl.h" + +#include + +typedef std::vector cmCTestSubmitHandlerVectorOfChar; + +static size_t +cmCTestSubmitHandlerWriteMemoryCallback(void *ptr, size_t size, size_t nmemb, + void *data) +{ + register int realsize = (int)(size * nmemb); + + cmCTestSubmitHandlerVectorOfChar *vec + = static_cast(data); + const char* chPtr = static_cast(ptr); + vec->insert(vec->end(), chPtr, chPtr + realsize); + + return realsize; +} + +static size_t +cmCTestSubmitHandlerCurlDebugCallback(CURL *, curl_infotype, char *chPtr, + size_t size, void *data) +{ + cmCTestSubmitHandlerVectorOfChar *vec + = static_cast(data); + vec->insert(vec->end(), chPtr, chPtr + size); + + return size; +} + +//---------------------------------------------------------------------------- +cmCTestSubmitHandler::cmCTestSubmitHandler() : HTTPProxy(), FTPProxy() +{ + this->HTTPProxy = ""; + this->HTTPProxyType = 0; + this->HTTPProxyAuth = ""; + + this->FTPProxy = ""; + this->FTPProxyType = 0; +} + +//---------------------------------------------------------------------------- +void cmCTestSubmitHandler::Initialize() +{ + this->Superclass::Initialize(); + this->HTTPProxy = ""; + this->HTTPProxyType = 0; + this->HTTPProxyAuth = ""; + this->FTPProxy = ""; + this->FTPProxyType = 0; + this->LogFile = 0; +} + +//---------------------------------------------------------------------------- +bool cmCTestSubmitHandler::SubmitUsingFTP(const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url) +{ + CURL *curl; + CURLcode res; + FILE* ftpfile; + char error_buffer[1024]; + + /* In windows, this will init the winsock stuff */ + ::curl_global_init(CURL_GLOBAL_ALL); + + cmCTest::SetOfStrings::const_iterator file; + for ( file = files.begin(); file != files.end(); ++file ) + { + /* get a curl handle */ + curl = curl_easy_init(); + if(curl) + { + // Using proxy + if ( this->FTPProxyType > 0 ) + { + curl_easy_setopt(curl, CURLOPT_PROXY, this->FTPProxy.c_str()); + switch (this->FTPProxyType) + { + case 2: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4); + break; + case 3: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); + break; + default: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); + } + } + + // enable uploading + ::curl_easy_setopt(curl, CURLOPT_UPLOAD, 1) ; + + cmStdString local_file = *file; + if ( !cmSystemTools::FileExists(local_file.c_str()) ) + { + local_file = localprefix + "/" + *file; + } + cmStdString upload_as + = url + "/" + remoteprefix + cmSystemTools::GetFilenameName(*file); + + struct stat st; + if ( ::stat(local_file.c_str(), &st) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, " Cannot find file: " + << local_file.c_str() << std::endl); + ::curl_easy_cleanup(curl); + ::curl_global_cleanup(); + return false; + } + + ftpfile = ::fopen(local_file.c_str(), "rb"); + *this->LogFile << "\tUpload file: " << local_file.c_str() << " to " + << upload_as.c_str() << std::endl; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " Upload file: " + << local_file.c_str() << " to " + << upload_as.c_str() << std::endl); + + ::curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); + + // specify target + ::curl_easy_setopt(curl,CURLOPT_URL, upload_as.c_str()); + + // now specify which file to upload + ::curl_easy_setopt(curl, CURLOPT_INFILE, ftpfile); + + // and give the size of the upload (optional) + ::curl_easy_setopt(curl, CURLOPT_INFILESIZE, + static_cast(st.st_size)); + + // and give curl the buffer for errors + ::curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &error_buffer); + + // specify handler for output + ::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, + cmCTestSubmitHandlerWriteMemoryCallback); + ::curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, + cmCTestSubmitHandlerCurlDebugCallback); + + /* we pass our 'chunk' struct to the callback function */ + cmCTestSubmitHandlerVectorOfChar chunk; + cmCTestSubmitHandlerVectorOfChar chunkDebug; + ::curl_easy_setopt(curl, CURLOPT_FILE, (void *)&chunk); + ::curl_easy_setopt(curl, CURLOPT_DEBUGDATA, (void *)&chunkDebug); + + // Now run off and do what you've been told! + res = ::curl_easy_perform(curl); + + if ( chunk.size() > 0 ) + { + cmCTestLog(this->CTest, DEBUG, "CURL output: [" + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "]" + << std::endl); + } + if ( chunkDebug.size() > 0 ) + { + cmCTestLog(this->CTest, DEBUG, "CURL debug output: [" + << cmCTestLogWrite(&*chunkDebug.begin(), chunkDebug.size()) << "]" + << std::endl); + } + + fclose(ftpfile); + if ( res ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Error when uploading file: " + << local_file.c_str() << std::endl); + cmCTestLog(this->CTest, ERROR_MESSAGE, " Error message was: " + << error_buffer << std::endl); + *this->LogFile << " Error when uploading file: " + << local_file.c_str() + << std::endl + << " Error message was: " + << error_buffer << std::endl + << " Curl output was: "; + // avoid dereference of empty vector + if(chunk.size()) + { + *this->LogFile << cmCTestLogWrite(&*chunk.begin(), chunk.size()); + cmCTestLog(this->CTest, ERROR_MESSAGE, "CURL output: [" + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "]" + << std::endl); + } + *this->LogFile << std::endl; + ::curl_easy_cleanup(curl); + ::curl_global_cleanup(); + return false; + } + // always cleanup + ::curl_easy_cleanup(curl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Uploaded: " + local_file + << std::endl); + } + } + ::curl_global_cleanup(); + return true; +} + +//---------------------------------------------------------------------------- +// Uploading files is simpler +bool cmCTestSubmitHandler::SubmitUsingHTTP(const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url) +{ + CURL *curl; + CURLcode res; + FILE* ftpfile; + char error_buffer[1024]; + + /* In windows, this will init the winsock stuff */ + ::curl_global_init(CURL_GLOBAL_ALL); + + cmStdString::size_type kk; + cmCTest::SetOfStrings::const_iterator file; + for ( file = files.begin(); file != files.end(); ++file ) + { + /* get a curl handle */ + curl = curl_easy_init(); + if(curl) + { + + // Using proxy + if ( this->HTTPProxyType > 0 ) + { + curl_easy_setopt(curl, CURLOPT_PROXY, this->HTTPProxy.c_str()); + switch (this->HTTPProxyType) + { + case 2: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4); + break; + case 3: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); + break; + default: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); + if (this->HTTPProxyAuth.size() > 0) + { + curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, + this->HTTPProxyAuth.c_str()); + } + } + } + + /* enable uploading */ + curl_easy_setopt(curl, CURLOPT_UPLOAD, 1) ; + + /* HTTP PUT please */ + ::curl_easy_setopt(curl, CURLOPT_PUT, 1); + ::curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); + + cmStdString local_file = *file; + if ( !cmSystemTools::FileExists(local_file.c_str()) ) + { + local_file = localprefix + "/" + *file; + } + cmStdString remote_file + = remoteprefix + cmSystemTools::GetFilenameName(*file); + + *this->LogFile << "\tUpload file: " << local_file.c_str() << " to " + << remote_file.c_str() << std::endl; + + cmStdString ofile = ""; + for ( kk = 0; kk < remote_file.size(); kk ++ ) + { + char c = remote_file[kk]; + char hexCh[4] = { 0, 0, 0, 0 }; + hexCh[0] = c; + switch ( c ) + { + case '+': + case '?': + case '/': + case '\\': + case '&': + case ' ': + case '=': + case '%': + sprintf(hexCh, "%%%02X", (int)c); + ofile.append(hexCh); + break; + default: + ofile.append(hexCh); + } + } + cmStdString upload_as + = url + ((url.find("?",0) == cmStdString::npos) ? "?" : "&") + + "FileName=" + ofile; + + struct stat st; + if ( ::stat(local_file.c_str(), &st) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, " Cannot find file: " + << local_file.c_str() << std::endl); + ::curl_easy_cleanup(curl); + ::curl_global_cleanup(); + return false; + } + + ftpfile = ::fopen(local_file.c_str(), "rb"); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " Upload file: " + << local_file.c_str() << " to " + << upload_as.c_str() << " Size: " << st.st_size << std::endl); + + + // specify target + ::curl_easy_setopt(curl,CURLOPT_URL, upload_as.c_str()); + + // now specify which file to upload + ::curl_easy_setopt(curl, CURLOPT_INFILE, ftpfile); + + // and give the size of the upload (optional) + ::curl_easy_setopt(curl, CURLOPT_INFILESIZE, + static_cast(st.st_size)); + + // and give curl the buffer for errors + ::curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &error_buffer); + + // specify handler for output + ::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, + cmCTestSubmitHandlerWriteMemoryCallback); + ::curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, + cmCTestSubmitHandlerCurlDebugCallback); + + /* we pass our 'chunk' struct to the callback function */ + cmCTestSubmitHandlerVectorOfChar chunk; + cmCTestSubmitHandlerVectorOfChar chunkDebug; + ::curl_easy_setopt(curl, CURLOPT_FILE, (void *)&chunk); + ::curl_easy_setopt(curl, CURLOPT_DEBUGDATA, (void *)&chunkDebug); + + // Now run off and do what you've been told! + res = ::curl_easy_perform(curl); + + if ( chunk.size() > 0 ) + { + cmCTestLog(this->CTest, DEBUG, "CURL output: [" + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "]" + << std::endl); + } + if ( chunkDebug.size() > 0 ) + { + cmCTestLog(this->CTest, DEBUG, "CURL debug output: [" + << cmCTestLogWrite(&*chunkDebug.begin(), chunkDebug.size()) << "]" + << std::endl); + } + + fclose(ftpfile); + if ( res ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Error when uploading file: " + << local_file.c_str() << std::endl); + cmCTestLog(this->CTest, ERROR_MESSAGE, " Error message was: " + << error_buffer << std::endl); + *this->LogFile << " Error when uploading file: " + << local_file.c_str() + << std::endl + << " Error message was: " << error_buffer + << std::endl; + // avoid deref of begin for zero size array + if(chunk.size()) + { + *this->LogFile << " Curl output was: " + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) + << std::endl; + cmCTestLog(this->CTest, ERROR_MESSAGE, "CURL output: [" + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "]" + << std::endl); + } + ::curl_easy_cleanup(curl); + ::curl_global_cleanup(); + return false; + } + // always cleanup + ::curl_easy_cleanup(curl); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Uploaded: " + local_file + << std::endl); + } + } + ::curl_global_cleanup(); + return true; +} + +//---------------------------------------------------------------------------- +bool cmCTestSubmitHandler::TriggerUsingHTTP( + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url) +{ + CURL *curl; + char error_buffer[1024]; + + /* In windows, this will init the winsock stuff */ + ::curl_global_init(CURL_GLOBAL_ALL); + + cmCTest::SetOfStrings::const_iterator file; + for ( file = files.begin(); file != files.end(); ++file ) + { + /* get a curl handle */ + curl = curl_easy_init(); + if(curl) + { + // Using proxy + if ( this->HTTPProxyType > 0 ) + { + curl_easy_setopt(curl, CURLOPT_PROXY, this->HTTPProxy.c_str()); + switch (this->HTTPProxyType) + { + case 2: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4); + break; + case 3: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); + break; + default: + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); + if (this->HTTPProxyAuth.size() > 0) + { + curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, + this->HTTPProxyAuth.c_str()); + } + } + } + + ::curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); + + // and give curl the buffer for errors + ::curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &error_buffer); + + // specify handler for output + ::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, + cmCTestSubmitHandlerWriteMemoryCallback); + ::curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, + cmCTestSubmitHandlerCurlDebugCallback); + + /* we pass our 'chunk' struct to the callback function */ + cmCTestSubmitHandlerVectorOfChar chunk; + cmCTestSubmitHandlerVectorOfChar chunkDebug; + ::curl_easy_setopt(curl, CURLOPT_FILE, (void *)&chunk); + ::curl_easy_setopt(curl, CURLOPT_DEBUGDATA, (void *)&chunkDebug); + + cmStdString rfile + = remoteprefix + cmSystemTools::GetFilenameName(*file); + cmStdString ofile = ""; + cmStdString::iterator kk; + for ( kk = rfile.begin(); kk < rfile.end(); ++ kk) + { + char c = *kk; + char hexCh[4] = { 0, 0, 0, 0 }; + hexCh[0] = c; + switch ( c ) + { + case '+': + case '?': + case '/': + case '\\': + case '&': + case ' ': + case '=': + case '%': + sprintf(hexCh, "%%%02X", (int)c); + ofile.append(hexCh); + break; + default: + ofile.append(hexCh); + } + } + cmStdString turl + = url + ((url.find("?",0) == cmStdString::npos) ? "?" : "&") + + "xmlfile=" + ofile; + *this->LogFile << "Trigger url: " << turl.c_str() << std::endl; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " Trigger url: " + << turl.c_str() << std::endl); + curl_easy_setopt(curl, CURLOPT_URL, turl.c_str()); + if ( curl_easy_perform(curl) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, " Error when triggering: " + << turl.c_str() << std::endl); + cmCTestLog(this->CTest, ERROR_MESSAGE, " Error message was: " + << error_buffer << std::endl); + *this->LogFile << "\tTrigerring failed with error: " << error_buffer + << std::endl + << " Error message was: " << error_buffer + << std::endl; + if(chunk.size()) + { + *this->LogFile + << " Curl output was: " + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) << std::endl; + cmCTestLog(this->CTest, ERROR_MESSAGE, "CURL output: [" + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "]" + << std::endl); + } + ::curl_easy_cleanup(curl); + ::curl_global_cleanup(); + return false; + } + + if ( chunk.size() > 0 ) + { + cmCTestLog(this->CTest, DEBUG, "CURL output: [" + << cmCTestLogWrite(&*chunk.begin(), chunk.size()) << "]" + << std::endl); + } + if ( chunkDebug.size() > 0 ) + { + cmCTestLog(this->CTest, DEBUG, "CURL debug output: [" + << cmCTestLogWrite(&*chunkDebug.begin(), chunkDebug.size()) + << "]" << std::endl); + } + + // always cleanup + ::curl_easy_cleanup(curl); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, std::endl); + } + } + ::curl_global_cleanup(); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Dart server triggered..." + << std::endl); + return true; +} + +//---------------------------------------------------------------------------- +bool cmCTestSubmitHandler::SubmitUsingSCP( + const cmStdString& scp_command, + const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url) +{ + if ( !scp_command.size() || !localprefix.size() || + !files.size() || !remoteprefix.size() || !url.size() ) + { + return 0; + } + std::vector argv; + argv.push_back(scp_command.c_str()); // Scp command + argv.push_back(scp_command.c_str()); // Dummy string for file + argv.push_back(scp_command.c_str()); // Dummy string for remote url + argv.push_back(0); + + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + //cmsysProcess_SetTimeout(cp, timeout); + + int problems = 0; + + cmCTest::SetOfStrings::const_iterator file; + for ( file = files.begin(); file != files.end(); ++file ) + { + int retVal; + + std::string lfname = localprefix; + cmSystemTools::ConvertToUnixSlashes(lfname); + lfname += "/" + *file; + lfname = cmSystemTools::ConvertToOutputPath(lfname.c_str()); + argv[1] = lfname.c_str(); + std::string rfname = url + "/" + remoteprefix + *file; + argv[2] = rfname.c_str(); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Execute \"" << argv[0] + << "\" \"" << argv[1] << "\" \"" + << argv[2] << "\"" << std::endl); + *this->LogFile << "Execute \"" << argv[0] << "\" \"" << argv[1] << "\" \"" + << argv[2] << "\"" << std::endl; + + cmsysProcess_SetCommand(cp, &*argv.begin()); + cmsysProcess_Execute(cp); + char* data; + int length; + + while(cmsysProcess_WaitForData(cp, &data, &length, 0)) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + cmCTestLogWrite(data, length)); + } + + cmsysProcess_WaitForExit(cp, 0); + + int result = cmsysProcess_GetState(cp); + + if(result == cmsysProcess_State_Exited) + { + retVal = cmsysProcess_GetExitValue(cp); + if ( retVal != 0 ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "\tSCP returned: " + << retVal << std::endl); + *this->LogFile << "\tSCP returned: " << retVal << std::endl; + problems ++; + } + } + else if(result == cmsysProcess_State_Exception) + { + retVal = cmsysProcess_GetExitException(cp); + cmCTestLog(this->CTest, ERROR_MESSAGE, "\tThere was an exception: " + << retVal << std::endl); + *this->LogFile << "\tThere was an exception: " << retVal << std::endl; + problems ++; + } + else if(result == cmsysProcess_State_Expired) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "\tThere was a timeout" + << std::endl); + *this->LogFile << "\tThere was a timeout" << std::endl; + problems ++; + } + else if(result == cmsysProcess_State_Error) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "\tError executing SCP: " + << cmsysProcess_GetErrorString(cp) << std::endl); + *this->LogFile << "\tError executing SCP: " + << cmsysProcess_GetErrorString(cp) << std::endl; + problems ++; + } + } + cmsysProcess_Delete(cp); + if ( problems ) + { + return false; + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmCTestSubmitHandler::SubmitUsingXMLRPC(const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url) +{ + xmlrpc_env env; + char ctestString[] = "CTest"; + std::string ctestVersionString = cmVersion::GetCMakeVersion(); + char* ctestVersion = const_cast(ctestVersionString.c_str()); + + cmStdString realURL = url + "/" + remoteprefix + "/Command/"; + + /* Start up our XML-RPC client library. */ + xmlrpc_client_init(XMLRPC_CLIENT_NO_FLAGS, ctestString, ctestVersion); + + /* Initialize our error-handling environment. */ + xmlrpc_env_init(&env); + + /* Call the famous server at UserLand. */ + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submitting to: " + << realURL.c_str() << " (" << remoteprefix.c_str() << ")" << std::endl); + cmCTest::SetOfStrings::const_iterator file; + for ( file = files.begin(); file != files.end(); ++file ) + { + xmlrpc_value *result; + + cmStdString local_file = *file; + if ( !cmSystemTools::FileExists(local_file.c_str()) ) + { + local_file = localprefix + "/" + *file; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submit file: " + << local_file.c_str() << std::endl); + struct stat st; + if ( ::stat(local_file.c_str(), &st) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, " Cannot find file: " + << local_file.c_str() << std::endl); + return false; + } + + // off_t can be bigger than size_t. fread takes size_t. + // make sure the file is not too big. + if(static_cast(static_cast(st.st_size)) != + static_cast(st.st_size)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, " File too big: " + << local_file.c_str() << std::endl); + return false; + } + size_t fileSize = static_cast(st.st_size); + FILE* fp = fopen(local_file.c_str(), "rb"); + if ( !fp ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, " Cannot open file: " + << local_file.c_str() << std::endl); + return false; + } + + unsigned char *fileBuffer = new unsigned char[fileSize]; + if ( fread(fileBuffer, 1, fileSize, fp) != fileSize ) + { + delete [] fileBuffer; + fclose(fp); + cmCTestLog(this->CTest, ERROR_MESSAGE, " Cannot read file: " + << local_file.c_str() << std::endl); + return false; + } + fclose(fp); + + char remoteCommand[] = "Submit.put"; + char* pRealURL = const_cast(realURL.c_str()); + result = xmlrpc_client_call(&env, pRealURL, remoteCommand, + "(6)", fileBuffer, (xmlrpc_int32)fileSize ); + + delete [] fileBuffer; + + if ( env.fault_occurred ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, " Submission problem: " + << env.fault_string << " (" << env.fault_code << ")" << std::endl); + xmlrpc_env_clean(&env); + xmlrpc_client_cleanup(); + return false; + } + + /* Dispose of our result value. */ + xmlrpc_DECREF(result); + } + + /* Clean up our error-handling environment. */ + xmlrpc_env_clean(&env); + + /* Shutdown our XML-RPC client library. */ + xmlrpc_client_cleanup(); + return true; +} + +//---------------------------------------------------------------------------- +int cmCTestSubmitHandler::ProcessHandler() +{ + const std::string &buildDirectory + = this->CTest->GetCTestConfiguration("BuildDirectory"); + if ( buildDirectory.size() == 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find BuildDirectory key in the DartConfiguration.tcl" + << std::endl); + return -1; + } + + if ( getenv("HTTP_PROXY") ) + { + this->HTTPProxyType = 1; + this->HTTPProxy = getenv("HTTP_PROXY"); + if ( getenv("HTTP_PROXY_PORT") ) + { + this->HTTPProxy += ":"; + this->HTTPProxy += getenv("HTTP_PROXY_PORT"); + } + if ( getenv("HTTP_PROXY_TYPE") ) + { + cmStdString type = getenv("HTTP_PROXY_TYPE"); + // HTTP/SOCKS4/SOCKS5 + if ( type == "HTTP" ) + { + this->HTTPProxyType = 1; + } + else if ( type == "SOCKS4" ) + { + this->HTTPProxyType = 2; + } + else if ( type == "SOCKS5" ) + { + this->HTTPProxyType = 3; + } + } + if ( getenv("HTTP_PROXY_USER") ) + { + this->HTTPProxyAuth = getenv("HTTP_PROXY_USER"); + } + if ( getenv("HTTP_PROXY_PASSWD") ) + { + this->HTTPProxyAuth += ":"; + this->HTTPProxyAuth += getenv("HTTP_PROXY_PASSWD"); + } + } + + if ( getenv("FTP_PROXY") ) + { + this->FTPProxyType = 1; + this->FTPProxy = getenv("FTP_PROXY"); + if ( getenv("FTP_PROXY_PORT") ) + { + this->FTPProxy += ":"; + this->FTPProxy += getenv("FTP_PROXY_PORT"); + } + if ( getenv("FTP_PROXY_TYPE") ) + { + cmStdString type = getenv("FTP_PROXY_TYPE"); + // HTTP/SOCKS4/SOCKS5 + if ( type == "HTTP" ) + { + this->FTPProxyType = 1; + } + else if ( type == "SOCKS4" ) + { + this->FTPProxyType = 2; + } + else if ( type == "SOCKS5" ) + { + this->FTPProxyType = 3; + } + } + } + + if ( this->HTTPProxy.size() > 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Use HTTP Proxy: " + << this->HTTPProxy << std::endl); + } + if ( this->FTPProxy.size() > 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Use FTP Proxy: " + << this->FTPProxy << std::endl); + } + cmGeneratedFileStream ofs; + this->StartLogFile("Submit", ofs); + + cmCTest::SetOfStrings files; + std::string prefix = this->GetSubmitResultsPrefix(); + // TODO: + // Check if test is enabled + this->CTest->AddIfExists(files, "Update.xml"); + this->CTest->AddIfExists(files, "Configure.xml"); + this->CTest->AddIfExists(files, "Build.xml"); + this->CTest->AddIfExists(files, "Test.xml"); + if ( this->CTest->AddIfExists(files, "Coverage.xml") ) + { + cmCTest::VectorOfStrings gfiles; + std::string gpath + = buildDirectory + "/Testing/" + this->CTest->GetCurrentTag(); + std::string::size_type glen = gpath.size() + 1; + gpath = gpath + "/CoverageLog*"; + cmCTestLog(this->CTest, DEBUG, "Globbing for: " << gpath.c_str() + << std::endl); + if ( cmSystemTools::SimpleGlob(gpath, gfiles, 1) ) + { + size_t cc; + for ( cc = 0; cc < gfiles.size(); cc ++ ) + { + gfiles[cc] = gfiles[cc].substr(glen); + cmCTestLog(this->CTest, DEBUG, "Glob file: " << gfiles[cc].c_str() + << std::endl); + files.insert(gfiles[cc]); + } + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Problem globbing" << std::endl); + } + } + this->CTest->AddIfExists(files, "DynamicAnalysis.xml"); + this->CTest->AddIfExists(files, "Purify.xml"); + this->CTest->AddIfExists(files, "Notes.xml"); + + cmCTest::SetOfStrings::iterator it; + for ( it = this->CTest->GetSubmitFiles()->begin(); + it != this->CTest->GetSubmitFiles()->end(); + ++ it ) + { + files.insert(files.end(), *it); + } + + if ( ofs ) + { + ofs << "Upload files:" << std::endl; + int cnt = 0; + for ( it = files.begin(); it != files.end(); ++ it ) + { + ofs << cnt << "\t" << it->c_str() << std::endl; + cnt ++; + } + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Submit files (using " + << this->CTest->GetCTestConfiguration("DropMethod") << ")" + << std::endl); + const char* specificTrack = this->CTest->GetSpecificTrack(); + if ( specificTrack ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Send to track: " + << specificTrack << std::endl); + } + this->SetLogFile(&ofs); + if ( this->CTest->GetCTestConfiguration("DropMethod") == "" || + this->CTest->GetCTestConfiguration("DropMethod") == "ftp" ) + { + ofs << "Using drop method: FTP" << std::endl; + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Using FTP submit method" + << std::endl + << " Drop site: ftp://"); + std::string url = "ftp://"; + url += cmCTest::MakeURLSafe( + this->CTest->GetCTestConfiguration("DropSiteUser")) + ":" + + cmCTest::MakeURLSafe(this->CTest->GetCTestConfiguration( + "DropSitePassword")) + "@" + + this->CTest->GetCTestConfiguration("DropSite") + + cmCTest::MakeURLSafe( + this->CTest->GetCTestConfiguration("DropLocation")); + if ( this->CTest->GetCTestConfiguration("DropSiteUser").size() > 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, + this->CTest->GetCTestConfiguration( + "DropSiteUser").c_str()); + if ( this->CTest->GetCTestConfiguration("DropSitePassword").size() > 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, ":******"); + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, "@"); + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, + this->CTest->GetCTestConfiguration("DropSite") + << this->CTest->GetCTestConfiguration("DropLocation") << std::endl); + if ( !this->SubmitUsingFTP(buildDirectory + "/Testing/" + + this->CTest->GetCurrentTag(), + files, prefix, url) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Problems when submitting via FTP" + << std::endl); + ofs << " Problems when submitting via FTP" << std::endl; + return -1; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Using HTTP trigger method" + << std::endl + << " Trigger site: " + << this->CTest->GetCTestConfiguration("TriggerSite") + << std::endl); + if ( !this->TriggerUsingHTTP(files, prefix, + this->CTest->GetCTestConfiguration("TriggerSite")) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Problems when triggering via HTTP" << std::endl); + ofs << " Problems when triggering via HTTP" << std::endl; + return -1; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submission successful" + << std::endl); + ofs << " Submission successful" << std::endl; + return 0; + } + else if ( this->CTest->GetCTestConfiguration("DropMethod") == "http" ) + { + ofs << "Using drop method: HTTP" << std::endl; + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Using HTTP submit method" + << std::endl + << " Drop site: http://"); + std::string url = "http://"; + if ( this->CTest->GetCTestConfiguration("DropSiteUser").size() > 0 ) + { + url += this->CTest->GetCTestConfiguration("DropSiteUser"); + cmCTestLog(this->CTest, HANDLER_OUTPUT, + this->CTest->GetCTestConfiguration("DropSiteUser").c_str()); + if ( this->CTest->GetCTestConfiguration("DropSitePassword").size() > 0 ) + { + url += ":" + this->CTest->GetCTestConfiguration("DropSitePassword"); + cmCTestLog(this->CTest, HANDLER_OUTPUT, ":******"); + } + url += "@"; + cmCTestLog(this->CTest, HANDLER_OUTPUT, "@"); + } + url += this->CTest->GetCTestConfiguration("DropSite") + + this->CTest->GetCTestConfiguration("DropLocation"); + cmCTestLog(this->CTest, HANDLER_OUTPUT, + this->CTest->GetCTestConfiguration("DropSite") + << this->CTest->GetCTestConfiguration("DropLocation") << std::endl); + if ( !this->SubmitUsingHTTP(buildDirectory + "/Testing/" + + this->CTest->GetCurrentTag(), files, prefix, url) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Problems when submitting via HTTP" << std::endl); + ofs << " Problems when submitting via HTTP" << std::endl; + return -1; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Using HTTP trigger method" + << std::endl + << " Trigger site: " + << this->CTest->GetCTestConfiguration("TriggerSite") + << std::endl); + if ( !this->TriggerUsingHTTP(files, prefix, + this->CTest->GetCTestConfiguration("TriggerSite")) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Problems when triggering via HTTP" << std::endl); + ofs << " Problems when triggering via HTTP" << std::endl; + return -1; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submission successful" + << std::endl); + ofs << " Submission successful" << std::endl; + return 0; + } + else if ( this->CTest->GetCTestConfiguration("DropMethod") == "xmlrpc" ) + { + ofs << "Using drop method: XML-RPC" << std::endl; + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Using XML-RPC submit method" + << std::endl); + std::string url = this->CTest->GetCTestConfiguration("DropSite"); + prefix = this->CTest->GetCTestConfiguration("DropLocation"); + if ( !this->SubmitUsingXMLRPC(buildDirectory + "/Testing/" + + this->CTest->GetCurrentTag(), files, prefix, url) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Problems when submitting via XML-RPC" << std::endl); + ofs << " Problems when submitting via XML-RPC" << std::endl; + return -1; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submission successful" + << std::endl); + ofs << " Submission successful" << std::endl; + return 0; + } + else if ( this->CTest->GetCTestConfiguration("DropMethod") == "scp" ) + { + std::string url; + std::string oldWorkingDirectory; + if ( this->CTest->GetCTestConfiguration("DropSiteUser").size() > 0 ) + { + url += this->CTest->GetCTestConfiguration("DropSiteUser") + "@"; + } + url += this->CTest->GetCTestConfiguration("DropSite") + ":" + + this->CTest->GetCTestConfiguration("DropLocation"); + + // change to the build directory so that we can uses a relative path + // on windows since scp dosn't support "c:" a drive in the path + oldWorkingDirectory = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(buildDirectory.c_str()); + + if ( !this->SubmitUsingSCP( + this->CTest->GetCTestConfiguration("ScpCommand"), + "Testing/"+this->CTest->GetCurrentTag(), files, prefix, url) ) + { + cmSystemTools::ChangeDirectory(oldWorkingDirectory.c_str()); + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Problems when submitting via SCP" + << std::endl); + ofs << " Problems when submitting via SCP" << std::endl; + return -1; + } + cmSystemTools::ChangeDirectory(oldWorkingDirectory.c_str()); + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Submission successful" + << std::endl); + ofs << " Submission successful" << std::endl; + return 0; + } + + cmCTestLog(this->CTest, ERROR_MESSAGE, " Unknown submission method: \"" + << this->CTest->GetCTestConfiguration("DropMethod") << "\"" << std::endl); + return -1; +} + +//---------------------------------------------------------------------------- +std::string cmCTestSubmitHandler::GetSubmitResultsPrefix() +{ + std::string name = this->CTest->GetCTestConfiguration("Site") + + "___" + this->CTest->GetCTestConfiguration("BuildName") + + "___" + this->CTest->GetCurrentTag() + "-" + + this->CTest->GetTestModelString() + "___XML___"; + return name; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestSubmitHandler.h b/CMakeLua/Source/CTest/cmCTestSubmitHandler.h new file mode 100644 index 0000000..446ba7a --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestSubmitHandler.h @@ -0,0 +1,82 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestSubmitHandler.h,v $ + Language: C++ + Date: $Date: 2006/03/10 20:03:09 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestSubmitHandler_h +#define cmCTestSubmitHandler_h + +#include "cmCTestGenericHandler.h" + +/** \class cmCTestSubmitHandler + * \brief Helper class for CTest + * + * Submit testing results + * + */ +class cmCTestSubmitHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestSubmitHandler, cmCTestGenericHandler); + + cmCTestSubmitHandler(); + ~cmCTestSubmitHandler() { this->LogFile = 0; } + + /* + * The main entry point for this class + */ + int ProcessHandler(); + + void Initialize(); + +private: + void SetLogFile(std::ostream* ost) { this->LogFile = ost; } + + /** + * Submit file using various ways + */ + bool SubmitUsingFTP(const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url); + bool SubmitUsingHTTP(const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url); + bool SubmitUsingSCP(const cmStdString& scp_command, + const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url); + + bool TriggerUsingHTTP(const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url); + + bool SubmitUsingXMLRPC(const cmStdString& localprefix, + const std::set& files, + const cmStdString& remoteprefix, + const cmStdString& url); + + std::string GetSubmitResultsPrefix(); + + cmStdString HTTPProxy; + int HTTPProxyType; + cmStdString HTTPProxyAuth; + cmStdString FTPProxy; + int FTPProxyType; + std::ostream* LogFile; +}; + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestTestCommand.cxx b/CMakeLua/Source/CTest/cmCTestTestCommand.cxx new file mode 100644 index 0000000..c8fb886 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestTestCommand.cxx @@ -0,0 +1,78 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestTestCommand.cxx,v $ + Language: C++ + Date: $Date: 2006/03/15 16:02:08 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestTestCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" + +cmCTestTestCommand::cmCTestTestCommand() +{ + this->Arguments[ctt_START] = "START"; + this->Arguments[ctt_END] = "END"; + this->Arguments[ctt_STRIDE] = "STRIDE"; + this->Arguments[ctt_LAST] = 0; + this->Last = ctt_LAST; +} + +cmCTestGenericHandler* cmCTestTestCommand::InitializeHandler() +{ + const char* ctestTimeout = + this->Makefile->GetDefinition("CTEST_TEST_TIMEOUT"); + double timeout = this->CTest->GetTimeOut(); + if ( ctestTimeout ) + { + timeout = atof(ctestTimeout); + } + else + { + if ( timeout <= 0 ) + { + // By default use timeout of 10 minutes + timeout = 600; + } + } + this->CTest->SetTimeOut(timeout); + cmCTestGenericHandler* handler = this->InitializeActualHandler(); + if ( this->Values[ctt_START] || this->Values[ctt_END] || + this->Values[ctt_STRIDE] ) + { + cmOStringStream testsToRunString; + if ( this->Values[ctt_START] ) + { + testsToRunString << this->Values[ctt_START]; + } + testsToRunString << ","; + if ( this->Values[ctt_END] ) + { + testsToRunString << this->Values[ctt_END]; + } + testsToRunString << ","; + if ( this->Values[ctt_STRIDE] ) + { + testsToRunString << this->Values[ctt_STRIDE]; + } + handler->SetOption("TestsToRunInformation", + testsToRunString.str().c_str()); + } + return handler; +} + +cmCTestGenericHandler* cmCTestTestCommand::InitializeActualHandler() +{ + return this->CTest->GetInitializedHandler("test"); +} + diff --git a/CMakeLua/Source/CTest/cmCTestTestCommand.h b/CMakeLua/Source/CTest/cmCTestTestCommand.h new file mode 100644 index 0000000..16cdc06 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestTestCommand.h @@ -0,0 +1,85 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestTestCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/29 17:01:24 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestTestCommand_h +#define cmCTestTestCommand_h + +#include "cmCTestHandlerCommand.h" + +/** \class cmCTestTest + * \brief Run a ctest script + * + * cmCTestTestCommand defineds the command to test the project. + */ +class cmCTestTestCommand : public cmCTestHandlerCommand +{ +public: + + cmCTestTestCommand(); + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestTestCommand* ni = new cmCTestTestCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_TEST";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Tests the repository."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_TEST([BUILD build_dir] [RETURN_VALUE res])\n" + "Tests the given build directory and stores results in Test.xml. The " + "second argument is a variable that will hold value."; + } + + cmTypeMacro(cmCTestTestCommand, cmCTestHandlerCommand); + +protected: + virtual cmCTestGenericHandler* InitializeActualHandler(); + cmCTestGenericHandler* InitializeHandler(); + + enum { + ctt_BUILD = ct_LAST, + ctt_RETURN_VALUE, + ctt_START, + ctt_END, + ctt_STRIDE, + ctt_LAST + }; +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestTestHandler.cxx b/CMakeLua/Source/CTest/cmCTestTestHandler.cxx new file mode 100755 index 0000000..5f0adc5 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestTestHandler.cxx @@ -0,0 +1,1968 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestTestHandler.cxx,v $ + Language: C++ + Date: $Date: 2008/01/31 21:33:07 $ + Version: $Revision: 1.68 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestTestHandler.h" + +#include "cmCTest.h" +#include "cmake.h" +#include "cmGeneratedFileStream.h" +#include +#include +#include +#include "cmMakefile.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmCommand.h" +#include "cmSystemTools.h" + +#include +#include +#include + +#include // auto_ptr + +//---------------------------------------------------------------------- +class cmCTestSubdirCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestSubdirCommand* c = new cmCTestSubdirCommand; + c->TestHandler = this->TestHandler; + return c; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "subdirs";} + + // Unused methods + virtual const char* GetTerseDocumentation() { return ""; } + virtual const char* GetFullDocumentation() { return ""; } + + cmTypeMacro(cmCTestSubdirCommand, cmCommand); + + cmCTestTestHandler* TestHandler; +}; + +//---------------------------------------------------------------------- +bool cmCTestSubdirCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::vector::const_iterator it; + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + for ( it = args.begin(); it != args.end(); ++ it ) + { + cmSystemTools::ChangeDirectory(cwd.c_str()); + std::string fname = cwd; + fname += "/"; + fname += *it; + + if ( !cmSystemTools::FileExists(fname.c_str()) ) + { + // No subdirectory? So what... + continue; + } + cmSystemTools::ChangeDirectory(fname.c_str()); + const char* testFilename; + if( cmSystemTools::FileExists("CTestTestfile.cmake") ) + { + // does the CTestTestfile.cmake exist ? + testFilename = "CTestTestfile.cmake"; + } + else if( cmSystemTools::FileExists("DartTestfile.txt") ) + { + // does the DartTestfile.txt exist ? + testFilename = "DartTestfile.txt"; + } + else + { + // No CTestTestfile? Who cares... + cmSystemTools::ChangeDirectory(cwd.c_str()); + continue; + } + fname += "/"; + fname += testFilename; + bool readit = + this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(), + fname.c_str()); + cmSystemTools::ChangeDirectory(cwd.c_str()); + if(!readit) + { + std::string m = "Could not find include file: "; + m += fname; + this->SetError(m.c_str()); + return false; + } + } + return true; +} + +//---------------------------------------------------------------------- +class cmCTestAddSubdirectoryCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestAddSubdirectoryCommand* c = new cmCTestAddSubdirectoryCommand; + c->TestHandler = this->TestHandler; + return c; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "add_subdirectory";} + + // Unused methods + virtual const char* GetTerseDocumentation() { return ""; } + virtual const char* GetFullDocumentation() { return ""; } + + cmTypeMacro(cmCTestAddSubdirectoryCommand, cmCommand); + + cmCTestTestHandler* TestHandler; +}; + +//---------------------------------------------------------------------- +bool cmCTestAddSubdirectoryCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(cwd.c_str()); + std::string fname = cwd; + fname += "/"; + fname += args[1]; + + if ( !cmSystemTools::FileExists(fname.c_str()) ) + { + // No subdirectory? So what... + return true; + } + cmSystemTools::ChangeDirectory(fname.c_str()); + const char* testFilename; + if( cmSystemTools::FileExists("CTestTestfile.cmake") ) + { + // does the CTestTestfile.cmake exist ? + testFilename = "CTestTestfile.cmake"; + } + else if( cmSystemTools::FileExists("DartTestfile.txt") ) + { + // does the DartTestfile.txt exist ? + testFilename = "DartTestfile.txt"; + } + else + { + // No CTestTestfile? Who cares... + cmSystemTools::ChangeDirectory(cwd.c_str()); + return true; + } + fname += "/"; + fname += testFilename; + bool readit = + this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(), + fname.c_str()); + cmSystemTools::ChangeDirectory(cwd.c_str()); + if(!readit) + { + std::string m = "Could not find include file: "; + m += fname; + this->SetError(m.c_str()); + return false; + } + return true; +} + +//---------------------------------------------------------------------- +class cmCTestAddTestCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestAddTestCommand* c = new cmCTestAddTestCommand; + c->TestHandler = this->TestHandler; + return c; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "ADD_TEST";} + + // Unused methods + virtual const char* GetTerseDocumentation() { return ""; } + virtual const char* GetFullDocumentation() { return ""; } + + cmTypeMacro(cmCTestAddTestCommand, cmCommand); + + cmCTestTestHandler* TestHandler; +}; + +//---------------------------------------------------------------------- +bool cmCTestAddTestCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if ( args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + return this->TestHandler->AddTest(args); +} + +//---------------------------------------------------------------------- +class cmCTestSetTestsPropertiesCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestSetTestsPropertiesCommand* c + = new cmCTestSetTestsPropertiesCommand; + c->TestHandler = this->TestHandler; + return c; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "SET_TESTS_PROPERTIES";} + + // Unused methods + virtual const char* GetTerseDocumentation() { return ""; } + virtual const char* GetFullDocumentation() { return ""; } + + cmTypeMacro(cmCTestSetTestsPropertiesCommand, cmCommand); + + cmCTestTestHandler* TestHandler; +}; + +//---------------------------------------------------------------------- +bool cmCTestSetTestsPropertiesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + return this->TestHandler->SetTestsProperties(args); +} + +//---------------------------------------------------------------------- +// get the next number in a string with numbers separated by , +// pos is the start of the search and pos2 is the end of the search +// pos becomes pos2 after a call to GetNextNumber. +// -1 is returned at the end of the list. +inline int GetNextNumber(std::string const& in, + int& val, + std::string::size_type& pos, + std::string::size_type& pos2) +{ + pos2 = in.find(',', pos); + if(pos2 != in.npos) + { + if(pos2-pos == 0) + { + val = -1; + } + else + { + val = atoi(in.substr(pos, pos2-pos).c_str()); + } + pos = pos2+1; + return 1; + } + else + { + if(in.size()-pos == 0) + { + val = -1; + } + else + { + val = atoi(in.substr(pos, in.size()-pos).c_str()); + } + return 0; + } +} + +//---------------------------------------------------------------------- +// get the next number in a string with numbers separated by , +// pos is the start of the search and pos2 is the end of the search +// pos becomes pos2 after a call to GetNextNumber. +// -1 is returned at the end of the list. +inline int GetNextRealNumber(std::string const& in, + double& val, + std::string::size_type& pos, + std::string::size_type& pos2) +{ + pos2 = in.find(',', pos); + if(pos2 != in.npos) + { + if(pos2-pos == 0) + { + val = -1; + } + else + { + val = atof(in.substr(pos, pos2-pos).c_str()); + } + pos = pos2+1; + return 1; + } + else + { + if(in.size()-pos == 0) + { + val = -1; + } + else + { + val = atof(in.substr(pos, in.size()-pos).c_str()); + } + return 0; + } +} + + +//---------------------------------------------------------------------- +cmCTestTestHandler::cmCTestTestHandler() +{ + this->UseUnion = false; + + this->UseIncludeRegExpFlag = false; + this->UseExcludeRegExpFlag = false; + this->UseExcludeRegExpFirst = false; + + this->CustomMaximumPassedTestOutputSize = 1 * 1024; + this->CustomMaximumFailedTestOutputSize = 300 * 1024; + + this->MemCheck = false; + + this->LogFile = 0; + + this->DartStuff.compile("()"); +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::Initialize() +{ + this->Superclass::Initialize(); + + this->ElapsedTestingTime = -1; + + this->TestResults.clear(); + + this->CustomTestsIgnore.clear(); + this->StartTest = ""; + this->EndTest = ""; + + this->CustomPreTest.clear(); + this->CustomPostTest.clear(); + this->CustomMaximumPassedTestOutputSize = 1 * 1024; + this->CustomMaximumFailedTestOutputSize = 300 * 1024; + + this->TestsToRun.clear(); + + this->UseIncludeRegExpFlag = false; + this->UseExcludeRegExpFlag = false; + this->UseExcludeRegExpFirst = false; + this->IncludeRegExp = ""; + this->ExcludeRegExp = ""; + + TestsToRunString = ""; + this->UseUnion = false; + this->TestList.clear(); +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::PopulateCustomVectors(cmMakefile *mf) +{ + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_PRE_TEST", + this->CustomPreTest); + this->CTest->PopulateCustomVector(mf, "CTEST_CUSTOM_POST_TEST", + this->CustomPostTest); + this->CTest->PopulateCustomVector(mf, + "CTEST_CUSTOM_TESTS_IGNORE", + this->CustomTestsIgnore); + this->CTest->PopulateCustomInteger(mf, + "CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE", + this->CustomMaximumPassedTestOutputSize); + this->CTest->PopulateCustomInteger(mf, + "CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE", + this->CustomMaximumFailedTestOutputSize); +} + +//---------------------------------------------------------------------- +int cmCTestTestHandler::PreProcessHandler() +{ + if ( !this->ExecuteCommands(this->CustomPreTest) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem executing pre-test command(s)." << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +int cmCTestTestHandler::PostProcessHandler() +{ + if ( !this->ExecuteCommands(this->CustomPostTest) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem executing post-test command(s)." << std::endl); + return 0; + } + return 1; +} + +//---------------------------------------------------------------------- +//clearly it would be nice if this were broken up into a few smaller +//functions and commented... +int cmCTestTestHandler::ProcessHandler() +{ + // Update internal data structure from generic one + this->SetTestsToRunInformation(this->GetOption("TestsToRunInformation")); + this->SetUseUnion(cmSystemTools::IsOn(this->GetOption("UseUnion"))); + const char* val; + val = this->GetOption("IncludeRegularExpression"); + if ( val ) + { + this->UseIncludeRegExp(); + this->SetIncludeRegExp(val); + } + val = this->GetOption("ExcludeRegularExpression"); + if ( val ) + { + this->UseExcludeRegExp(); + this->SetExcludeRegExp(val); + } + + this->TestResults.clear(); + + cmCTestLog(this->CTest, HANDLER_OUTPUT, + (this->MemCheck ? "Memory check" : "Test") + << " project " << cmSystemTools::GetCurrentWorkingDirectory() + << std::endl); + if ( ! this->PreProcessHandler() ) + { + return -1; + } + + cmGeneratedFileStream mLogFile; + this->StartLogFile((this->MemCheck ? "DynamicAnalysis" : "Test"), mLogFile); + this->LogFile = &mLogFile; + + std::vector passed; + std::vector failed; + int total; + + this->ProcessDirectory(passed, failed); + + total = int(passed.size()) + int(failed.size()); + + if (total == 0) + { + if ( !this->CTest->GetShowOnly() ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "No tests were found!!!" + << std::endl); + } + } + else + { + if (this->HandlerVerbose && passed.size() && + (this->UseIncludeRegExpFlag || this->UseExcludeRegExpFlag)) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, std::endl + << "The following tests passed:" << std::endl); + for(std::vector::iterator j = passed.begin(); + j != passed.end(); ++j) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "\t" << *j + << std::endl); + } + } + + float percent = float(passed.size()) * 100.0f / total; + if ( failed.size() > 0 && percent > 99) + { + percent = 99; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl + << static_cast(percent + .5) << "% tests passed, " + << failed.size() << " tests failed out of " << total << std::endl); + //fprintf(stderr,"\n%.0f%% tests passed, %i tests failed out of %i\n", + // percent, int(failed.size()), total); + + if (failed.size()) + { + cmGeneratedFileStream ofs; + + cmCTestLog(this->CTest, ERROR_MESSAGE, std::endl + << "The following tests FAILED:" << std::endl); + this->StartLogFile("TestsFailed", ofs); + + std::vector::iterator ftit; + for(ftit = this->TestResults.begin(); + ftit != this->TestResults.end(); ++ftit) + { + if ( ftit->Status != cmCTestTestHandler::COMPLETED ) + { + ofs << ftit->TestCount << ":" << ftit->Name << std::endl; + cmCTestLog(this->CTest, HANDLER_OUTPUT, "\t" << std::setw(3) + << ftit->TestCount << " - " << ftit->Name.c_str() << " (" + << this->GetTestStatus(ftit->Status) << ")" << std::endl); + } + } + + } + } + + if ( this->CTest->GetProduceXML() ) + { + cmGeneratedFileStream xmlfile; + if( !this->StartResultingXML( + (this->MemCheck ? "DynamicAnalysis" : "Test"), xmlfile) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot create " + << (this->MemCheck ? "memory check" : "testing") + << " XML file" << std::endl); + this->LogFile = 0; + return 1; + } + this->GenerateDartOutput(xmlfile); + } + + if ( ! this->PostProcessHandler() ) + { + this->LogFile = 0; + return -1; + } + + if ( !failed.empty() ) + { + this->LogFile = 0; + return -1; + } + this->LogFile = 0; + return 0; +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::ProcessOneTest(cmCTestTestProperties *it, + std::vector &passed, + std::vector &failed, + int cnt, int tmsize) +{ + const std::string& testname = it->Name; + std::vector& args = it->Args; + cmCTestTestResult cres; + cres.Properties = &*it; + cres.ExecutionTime = 0; + cres.ReturnValue = -1; + cres.Status = cmCTestTestHandler::NOT_RUN; + cres.TestCount = cnt; + cres.Name = testname; + cres.Path = it->Directory.c_str(); + + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::setw(3) << cnt << "/"); + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::setw(3) << tmsize << " "); + if ( this->MemCheck ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Memory Check"); + } + else + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Testing"); + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " "); + std::string outname = testname; + outname.resize(30, ' '); + *this->LogFile << cnt << "/" << tmsize << " Testing: " << testname + << std::endl; + + if ( this->CTest->GetShowOnly() ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, outname.c_str() << std::endl); + } + else + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, outname.c_str()); + } + + cmCTestLog(this->CTest, DEBUG, "Testing " << args[0].c_str() << " ... "); + // find the test executable + std::string actualCommand = this->FindTheExecutable(args[1].c_str()); + std::string testCommand + = cmSystemTools::ConvertToOutputPath(actualCommand.c_str()); + + // continue if we did not find the executable + if (testCommand == "") + { + *this->LogFile << "Unable to find executable: " << args[1].c_str() + << std::endl; + cmCTestLog(this->CTest, ERROR_MESSAGE, "Unable to find executable: " + << args[1].c_str() << std::endl); + cres.Output = "Unable to find executable: " + args[1]; + if ( !this->CTest->GetShowOnly() ) + { + cres.FullCommandLine = actualCommand; + this->TestResults.push_back( cres ); + failed.push_back(testname); + return; + } + } + + // add the arguments + std::vector::const_iterator j = args.begin(); + ++j; + ++j; + std::vector arguments; + this->GenerateTestCommand(arguments); + arguments.push_back(actualCommand.c_str()); + for(;j != args.end(); ++j) + { + testCommand += " "; + testCommand += cmSystemTools::EscapeSpaces(j->c_str()); + arguments.push_back(j->c_str()); + } + arguments.push_back(0); + + /** + * Run an executable command and put the stdout in output. + */ + std::string output; + int retVal = 0; + + + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, std::endl + << (this->MemCheck?"MemCheck":"Test") + << " command: " << testCommand + << std::endl); + *this->LogFile << cnt << "/" << tmsize + << " Test: " << testname.c_str() << std::endl; + *this->LogFile << "Command: "; + std::vector::size_type ll; + for ( ll = 0; ll < arguments.size()-1; ll ++ ) + { + *this->LogFile << "\"" << arguments[ll] << "\" "; + } + *this->LogFile + << std::endl + << "Directory: " << it->Directory << std::endl + << "\"" << testname.c_str() << "\" start time: " + << this->CTest->CurrentTime() << std::endl + << "Output:" << std::endl + << "----------------------------------------------------------" + << std::endl; + int res = 0; + double clock_start, clock_finish; + clock_start = cmSystemTools::GetTime(); + + if ( !this->CTest->GetShowOnly() ) + { + res = this->CTest->RunTest(arguments, &output, &retVal, this->LogFile, + it->Timeout); + } + + clock_finish = cmSystemTools::GetTime(); + + if ( this->LogFile ) + { + double ttime = clock_finish - clock_start; + int hours = static_cast(ttime / (60 * 60)); + int minutes = static_cast(ttime / 60) % 60; + int seconds = static_cast(ttime) % 60; + char buffer[100]; + sprintf(buffer, "%02d:%02d:%02d", hours, minutes, seconds); + *this->LogFile + << "----------------------------------------------------------" + << std::endl + << "\"" << testname.c_str() << "\" end time: " + << this->CTest->CurrentTime() << std::endl + << "\"" << testname.c_str() << "\" time elapsed: " + << buffer << std::endl + << "----------------------------------------------------------" + << std::endl << std::endl; + } + + cres.ExecutionTime = (double)(clock_finish - clock_start); + cres.FullCommandLine = testCommand; + std::string reason; + if ( !this->CTest->GetShowOnly() ) + { + bool testFailed = false; + std::vector >::iterator passIt; + bool forceFail = false; + if ( it->RequiredRegularExpressions.size() > 0 ) + { + bool found = false; + for ( passIt = it->RequiredRegularExpressions.begin(); + passIt != it->RequiredRegularExpressions.end(); + ++ passIt ) + { + if ( passIt->first.find(output.c_str()) ) + { + found = true; + } + } + if ( !found ) + { + reason = "Required regular expression not found."; + reason += "Regex=["; + for ( passIt = it->RequiredRegularExpressions.begin(); + passIt != it->RequiredRegularExpressions.end(); + ++ passIt ) + { + reason += passIt->second; + reason += "\n"; + } + reason += "]"; + forceFail = true; + } + } + if ( it->ErrorRegularExpressions.size() > 0 ) + { + for ( passIt = it->ErrorRegularExpressions.begin(); + passIt != it->ErrorRegularExpressions.end(); + ++ passIt ) + { + if ( passIt->first.find(output.c_str()) ) + { + reason = "Error regular expression found in output."; + reason += " Regex=["; + reason += passIt->second; + reason += "]"; + forceFail = true; + } + } + } + + if (res == cmsysProcess_State_Exited && + (retVal == 0 || it->RequiredRegularExpressions.size()) && + !forceFail) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Passed"); + if ( it->WillFail ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " - But it should fail!"); + cres.Status = cmCTestTestHandler::FAILED; + testFailed = true; + } + else + { + cres.Status = cmCTestTestHandler::COMPLETED; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl); + } + else + { + testFailed = true; + + cres.Status = cmCTestTestHandler::FAILED; + if ( res == cmsysProcess_State_Expired ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Timeout" << std::endl); + cres.Status = cmCTestTestHandler::TIMEOUT; + } + else if ( res == cmsysProcess_State_Exception ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Exception: "); + switch ( retVal ) + { + case cmsysProcess_Exception_Fault: + cmCTestLog(this->CTest, HANDLER_OUTPUT, "SegFault"); + cres.Status = cmCTestTestHandler::SEGFAULT; + break; + case cmsysProcess_Exception_Illegal: + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Illegal"); + cres.Status = cmCTestTestHandler::ILLEGAL; + break; + case cmsysProcess_Exception_Interrupt: + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Interrupt"); + cres.Status = cmCTestTestHandler::INTERRUPT; + break; + case cmsysProcess_Exception_Numerical: + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Numerical"); + cres.Status = cmCTestTestHandler::NUMERICAL; + break; + default: + cmCTestLog(this->CTest, HANDLER_OUTPUT, "Other"); + cres.Status = cmCTestTestHandler::OTHER_FAULT; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl); + } + else if ( res == cmsysProcess_State_Error ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Bad command " << res + << std::endl); + cres.Status = cmCTestTestHandler::BAD_COMMAND; + } + else + { + // Force fail will also be here? + cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Failed " << reason); + if ( it->WillFail ) + { + cres.Status = cmCTestTestHandler::COMPLETED; + cmCTestLog(this->CTest, HANDLER_OUTPUT, " - supposed to fail"); + testFailed = false; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl); + } + } + if ( testFailed ) + { + failed.push_back(testname); + } + else + { + passed.push_back(testname); + } + if (!output.empty() && output.find("DartStuff.find(output.c_str())) + { + std::string dartString = this->DartStuff.match(1); + cmSystemTools::ReplaceString(output, dartString.c_str(),""); + cres.RegressionImages + = this->GenerateRegressionImages(dartString); + } + } + } + + // if this is doing MemCheck then all the output needs to be put into + // Output since that it what is parsed to by cmCTestMemCheckHandler + if(!this->MemCheck) + { + if ( cres.Status == cmCTestTestHandler::COMPLETED ) + { + this->CleanTestOutput(output, static_cast + (this->CustomMaximumPassedTestOutputSize)); + } + else + { + this->CleanTestOutput(output, static_cast + (this->CustomMaximumFailedTestOutputSize)); + } + } + + cres.Output = output; + cres.ReturnValue = retVal; + cres.CompletionStatus = "Completed"; + this->TestResults.push_back( cres ); +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::ProcessDirectory(std::vector &passed, + std::vector &failed) +{ + std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); + this->TestList.clear(); + + this->GetListOfTests(); + cmCTestTestHandler::ListOfTests::size_type tmsize = this->TestList.size(); + + this->StartTest = this->CTest->CurrentTime(); + this->StartTestTime = static_cast(cmSystemTools::GetTime()); + double elapsed_time_start = cmSystemTools::GetTime(); + + *this->LogFile << "Start testing: " << this->StartTest << std::endl + << "----------------------------------------------------------" + << std::endl; + + // how many tests are in based on RegExp? + int inREcnt = 0; + cmCTestTestHandler::ListOfTests::iterator it; + for ( it = this->TestList.begin(); it != this->TestList.end(); it ++ ) + { + if (it->IsInBasedOnREOptions) + { + inREcnt ++; + } + } + // expand the test list based on the union flag + if (this->UseUnion) + { + this->ExpandTestsToRunInformation((int)tmsize); + } + else + { + this->ExpandTestsToRunInformation(inREcnt); + } + + int cnt = 0; + inREcnt = 0; + std::string last_directory = ""; + for ( it = this->TestList.begin(); it != this->TestList.end(); it ++ ) + { + cnt ++; + if (it->IsInBasedOnREOptions) + { + inREcnt++; + } + + // if we are out of time then skip this test, we leave two minutes + // to submit results + if (this->CTest->GetRemainingTimeAllowed() - 120 <= 0) + { + continue; + } + + if (!(last_directory == it->Directory)) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Changing directory into " << it->Directory.c_str() << "\n"); + *this->LogFile << "Changing directory into: " << it->Directory.c_str() + << std::endl; + last_directory = it->Directory; + cmSystemTools::ChangeDirectory(it->Directory.c_str()); + } + + if (this->UseUnion) + { + // if it is not in the list and not in the regexp then skip + if ((this->TestsToRun.size() && + std::find(this->TestsToRun.begin(), this->TestsToRun.end(), cnt) + == this->TestsToRun.end()) && !it->IsInBasedOnREOptions) + { + continue; + } + } + else + { + // is this test in the list of tests to run? If not then skip it + if ((this->TestsToRun.size() && + std::find(this->TestsToRun.begin(), + this->TestsToRun.end(), inREcnt) + == this->TestsToRun.end()) || !it->IsInBasedOnREOptions) + { + continue; + } + } + + // process this one test + this->ProcessOneTest(&(*it), passed, failed, cnt, + static_cast(tmsize)); + } + + this->EndTest = this->CTest->CurrentTime(); + this->EndTestTime = static_cast(cmSystemTools::GetTime()); + this->ElapsedTestingTime = cmSystemTools::GetTime() - elapsed_time_start; + if ( this->LogFile ) + { + *this->LogFile << "End testing: " << this->EndTest << std::endl; + } + cmSystemTools::ChangeDirectory(current_dir.c_str()); +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::GenerateTestCommand(std::vector&) +{ +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::GenerateDartOutput(std::ostream& os) +{ + if ( !this->CTest->GetProduceXML() ) + { + return; + } + + this->CTest->StartXML(os); + os << "\n" + << "\t" << this->StartTest << "\n" + << "\t" << this->StartTestTime << "\n" + << "\t\n"; + cmCTestTestHandler::TestResultsVector::size_type cc; + for ( cc = 0; cc < this->TestResults.size(); cc ++ ) + { + cmCTestTestResult *result = &this->TestResults[cc]; + std::string testPath = result->Path + "/" + result->Name; + os << "\t\t" << cmCTest::MakeXMLSafe( + this->CTest->GetShortPathToFile(testPath.c_str())) + << "" << std::endl; + } + os << "\t\n"; + for ( cc = 0; cc < this->TestResults.size(); cc ++ ) + { + cmCTestTestResult *result = &this->TestResults[cc]; + os << "\tStatus == cmCTestTestHandler::COMPLETED ) + { + os << "passed"; + } + else if ( result->Status == cmCTestTestHandler::NOT_RUN ) + { + os << "notrun"; + } + else + { + os << "failed"; + } + std::string testPath = result->Path + "/" + result->Name; + os << "\">\n" + << "\t\t" << cmCTest::MakeXMLSafe(result->Name) << "\n" + << "\t\t" << cmCTest::MakeXMLSafe( + this->CTest->GetShortPathToFile(result->Path.c_str())) << "\n" + << "\t\t" << cmCTest::MakeXMLSafe( + this->CTest->GetShortPathToFile(testPath.c_str())) << "\n" + << "\t\t" + << cmCTest::MakeXMLSafe(result->FullCommandLine) + << "\n" + << "\t\t" << std::endl; + if ( result->Status != cmCTestTestHandler::NOT_RUN ) + { + if ( result->Status != cmCTestTestHandler::COMPLETED || + result->ReturnValue ) + { + os << "\t\t\t" + << this->GetTestStatus(result->Status) << "" + "\n" + << "\t\t\t" + << result->ReturnValue << "" + << std::endl; + } + os << result->RegressionImages; + os << "\t\t\t" + << result->ExecutionTime << "\n"; + os + << "\t\t\t" + << result->CompletionStatus << "\n"; + } + os + << "\t\t\t" + << result->FullCommandLine << "\n"; + std::map::iterator measureIt; + for ( measureIt = result->Properties->Measurements.begin(); + measureIt != result->Properties->Measurements.end(); + ++ measureIt ) + { + os + << "\t\t\tfirst.c_str() << "\">" + << measureIt->second.c_str() << "\n"; + } + os + << "\t\t\t\n" + << "\t\t\t\t"; + os << cmCTest::MakeXMLSafe(result->Output); + os + << "\n" + << "\t\t\t\n" + << "\t\t\n" + << "\t" << std::endl; + } + + os << "\t" << this->EndTest << "\n" + << "\t" << this->EndTestTime << "\n" + << "" + << static_cast(this->ElapsedTestingTime/6)/10.0 + << "" + << "" << std::endl; + this->CTest->EndXML(os); +} + +//---------------------------------------------------------------------- +int cmCTestTestHandler::ExecuteCommands(std::vector& vec) +{ + std::vector::iterator it; + for ( it = vec.begin(); it != vec.end(); ++it ) + { + int retVal = 0; + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Run command: " << *it + << std::endl); + if ( !cmSystemTools::RunSingleCommand(it->c_str(), 0, &retVal, 0, true + /*this->Verbose*/) || retVal != 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Problem running command: " + << *it << std::endl); + return 0; + } + } + return 1; +} + + +//---------------------------------------------------------------------- +// Find the appropriate executable to run for a test +std::string cmCTestTestHandler::FindTheExecutable(const char *exe) +{ + std::string resConfig; + std::vector extraPaths; + std::vector failedPaths; + return cmCTestTestHandler::FindExecutable(this->CTest, + exe, resConfig, + extraPaths, + failedPaths); +} + +// add additional configuraitons to the search path +void cmCTestTestHandler +::AddConfigurations(cmCTest *ctest, + std::vector &attempted, + std::vector &attemptedConfigs, + std::string filepath, + std::string &filename) +{ + std::string tempPath; + + if (filepath.size()) + { + filepath += "/"; + } + tempPath = filepath + filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back(""); + + if(ctest->GetConfigType().size()) + { + tempPath = filepath; + tempPath += ctest->GetConfigType(); + tempPath += "/"; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back(ctest->GetConfigType()); + // If the file is an OSX bundle then the configtyp + // will be at the start of the path + tempPath = ctest->GetConfigType(); + tempPath += "/"; + tempPath += filepath; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back(ctest->GetConfigType()); + } + else + { + // no config specified to try some options + tempPath = filepath; + tempPath += "Release/"; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back("Release"); + tempPath = filepath; + tempPath += "Debug/"; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back("Debug"); + tempPath = filepath; + tempPath += "MinSizeRel/"; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back("MinSizeRel"); + tempPath = filepath; + tempPath += "RelWithDebInfo/"; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back("RelWithDebInfo"); + tempPath = filepath; + tempPath += "Deployment/"; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back("Deployment"); + tempPath = filepath; + tempPath += "Development/"; + tempPath += filename; + attempted.push_back(tempPath); + attemptedConfigs.push_back("Deployment"); + } +} + + +//---------------------------------------------------------------------- +// Find the appropriate executable to run for a test +std::string cmCTestTestHandler +::FindExecutable(cmCTest *ctest, + const char *testCommand, + std::string &resultingConfig, + std::vector &extraPaths, + std::vector &failed) +{ + // now run the compiled test if we can find it + std::vector attempted; + std::vector attemptedConfigs; + std::string tempPath; + std::string filepath = + cmSystemTools::GetFilenamePath(testCommand); + std::string filename = + cmSystemTools::GetFilenameName(testCommand); + + cmCTestTestHandler::AddConfigurations(ctest, attempted, + attemptedConfigs, + filepath,filename); + + // if extraPaths are provided and we were not passed a full path, try them, + // try any extra paths + if (filepath.size() == 0) + { + for (unsigned int i = 0; i < extraPaths.size(); ++i) + { + std::string filepathExtra = + cmSystemTools::GetFilenamePath(extraPaths[i]); + std::string filenameExtra = + cmSystemTools::GetFilenameName(extraPaths[i]); + cmCTestTestHandler::AddConfigurations(ctest,attempted, + attemptedConfigs, + filepathExtra, + filenameExtra); + } + } + + // store the final location in fullPath + std::string fullPath; + + // now look in the paths we specified above + for(unsigned int ai=0; + ai < attempted.size() && fullPath.size() == 0; ++ai) + { + // first check without exe extension + if(cmSystemTools::FileExists(attempted[ai].c_str()) + && !cmSystemTools::FileIsDirectory(attempted[ai].c_str())) + { + fullPath = cmSystemTools::CollapseFullPath(attempted[ai].c_str()); + resultingConfig = attemptedConfigs[ai]; + } + // then try with the exe extension + else + { + failed.push_back(attempted[ai].c_str()); + tempPath = attempted[ai]; + tempPath += cmSystemTools::GetExecutableExtension(); + if(cmSystemTools::FileExists(tempPath.c_str()) + && !cmSystemTools::FileIsDirectory(tempPath.c_str())) + { + fullPath = cmSystemTools::CollapseFullPath(tempPath.c_str()); + resultingConfig = attemptedConfigs[ai]; + } + else + { + failed.push_back(tempPath.c_str()); + } + } + } + + // if everything else failed, check the users path, but only if a full path + // wasn't specified + if (fullPath.size() == 0 && filepath.size() == 0) + { + std::string path = cmSystemTools::FindProgram(filename.c_str()); + if (path != "") + { + resultingConfig = ""; + return path; + } + } + if(fullPath.size() == 0) + { + cmCTestLog(ctest, HANDLER_OUTPUT, + "Could not find executable " << testCommand << "\n" + << "Looked in the following places:\n"); + for(std::vector::iterator i = failed.begin(); + i != failed.end(); ++i) + { + cmCTestLog(ctest, HANDLER_OUTPUT, + i->c_str() << "\n"); + } + } + + return fullPath; +} + + +//---------------------------------------------------------------------- +void cmCTestTestHandler::GetListOfTests() +{ + if ( !this->IncludeRegExp.empty() ) + { + this->IncludeTestsRegularExpression.compile(this->IncludeRegExp.c_str()); + } + if ( !this->ExcludeRegExp.empty() ) + { + this->ExcludeTestsRegularExpression.compile(this->ExcludeRegExp.c_str()); + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Constructing a list of tests" << std::endl); + cmake cm; + cmGlobalGenerator gg; + gg.SetCMakeInstance(&cm); + std::auto_ptr lg(gg.CreateLocalGenerator()); + lg->SetGlobalGenerator(&gg); + cmMakefile *mf = lg->GetMakefile(); + mf->AddDefinition("CTEST_CONFIGURATION_TYPE", + this->CTest->GetConfigType().c_str()); + + // Add handler for ADD_TEST + cmCTestAddTestCommand* newCom1 = new cmCTestAddTestCommand; + newCom1->TestHandler = this; + cm.AddCommand(newCom1); + + // Add handler for SUBDIRS + cmCTestSubdirCommand* newCom2 = + new cmCTestSubdirCommand; + newCom2->TestHandler = this; + cm.AddCommand(newCom2); + + // Add handler for ADD_SUBDIRECTORY + cmCTestAddSubdirectoryCommand* newCom3 = + new cmCTestAddSubdirectoryCommand; + newCom3->TestHandler = this; + cm.AddCommand(newCom3); + + // Add handler for SET_SOURCE_FILES_PROPERTIES + cmCTestSetTestsPropertiesCommand* newCom4 + = new cmCTestSetTestsPropertiesCommand; + newCom4->TestHandler = this; + cm.AddCommand(newCom4); + + const char* testFilename; + if( cmSystemTools::FileExists("CTestTestfile.cmake") ) + { + // does the CTestTestfile.cmake exist ? + testFilename = "CTestTestfile.cmake"; + } + else if( cmSystemTools::FileExists("DartTestfile.txt") ) + { + // does the DartTestfile.txt exist ? + testFilename = "DartTestfile.txt"; + } + else + { + return; + } + + if ( !mf->ReadListFile(0, testFilename) ) + { + return; + } + if ( cmSystemTools::GetErrorOccuredFlag() ) + { + return; + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Done constructing a list of tests" << std::endl); +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::UseIncludeRegExp() +{ + this->UseIncludeRegExpFlag = true; +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::UseExcludeRegExp() +{ + this->UseExcludeRegExpFlag = true; + this->UseExcludeRegExpFirst = this->UseIncludeRegExpFlag ? false : true; +} + +//---------------------------------------------------------------------- +const char* cmCTestTestHandler::GetTestStatus(int status) +{ + static const char statuses[][100] = { + "Not Run", + "Timeout", + "SEGFAULT", + "ILLEGAL", + "INTERRUPT", + "NUMERICAL", + "OTHER_FAULT", + "Failed", + "BAD_COMMAND", + "Completed" + }; + + if ( status < cmCTestTestHandler::NOT_RUN || + status > cmCTestTestHandler::COMPLETED ) + { + return "No Status"; + } + return statuses[status]; +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::ExpandTestsToRunInformation(int numTests) +{ + if (this->TestsToRunString.empty()) + { + return; + } + + int start; + int end = -1; + double stride = -1; + std::string::size_type pos = 0; + std::string::size_type pos2; + // read start + if(GetNextNumber(this->TestsToRunString, start, pos, pos2)) + { + // read end + if(GetNextNumber(this->TestsToRunString, end, pos, pos2)) + { + // read stride + if(GetNextRealNumber(this->TestsToRunString, stride, pos, pos2)) + { + int val =0; + // now read specific numbers + while(GetNextNumber(this->TestsToRunString, val, pos, pos2)) + { + this->TestsToRun.push_back(val); + } + this->TestsToRun.push_back(val); + } + } + } + + // if start is not specified then we assume we start at 1 + if(start == -1) + { + start = 1; + } + + // if end isnot specified then we assume we end with the last test + if(end == -1) + { + end = numTests; + } + + // if the stride wasn't specified then it defaults to 1 + if(stride == -1) + { + stride = 1; + } + + // if we have a range then add it + if(end != -1 && start != -1 && stride > 0) + { + int i = 0; + while (i*stride + start <= end) + { + this->TestsToRun.push_back(static_cast(i*stride+start)); + ++i; + } + } + + // sort the array + std::sort(this->TestsToRun.begin(), this->TestsToRun.end(), + std::less()); + // remove duplicates + std::vector::iterator new_end = + std::unique(this->TestsToRun.begin(), this->TestsToRun.end()); + this->TestsToRun.erase(new_end, this->TestsToRun.end()); +} + +//---------------------------------------------------------------------- +// Just for convenience +#define SPACE_REGEX "[ \t\r\n]" +//---------------------------------------------------------------------- +std::string cmCTestTestHandler::GenerateRegressionImages( + const std::string& xml) +{ + cmsys::RegularExpression twoattributes( + "([^<]*)"); + cmsys::RegularExpression threeattributes( + "([^<]*)"); + cmsys::RegularExpression fourattributes( + "([^<]*)"); + cmsys::RegularExpression measurementfile( + "([^<]*)"); + + cmOStringStream ostr; + bool done = false; + std::string cxml = xml; + while ( ! done ) + { + if ( twoattributes.find(cxml) ) + { + ostr + << "\t\t\t" << twoattributes.match(5) + << "" + << std::endl; + cxml.erase(twoattributes.start(), + twoattributes.end() - twoattributes.start()); + } + else if ( threeattributes.find(cxml) ) + { + ostr + << "\t\t\t" << threeattributes.match(7) + << "" + << std::endl; + cxml.erase(threeattributes.start(), + threeattributes.end() - threeattributes.start()); + } + else if ( fourattributes.find(cxml) ) + { + ostr + << "\t\t\t" << fourattributes.match(9) + << "" + << std::endl; + cxml.erase(fourattributes.start(), + fourattributes.end() - fourattributes.start()); + } + else if ( measurementfile.find(cxml) ) + { + const std::string& filename = + cmCTest::CleanString(measurementfile.match(5)); + if ( cmSystemTools::FileExists(filename.c_str()) ) + { + long len = cmSystemTools::FileLength(filename.c_str()); + if ( len == 0 ) + { + std::string k1 = measurementfile.match(1); + std::string v1 = measurementfile.match(2); + std::string k2 = measurementfile.match(3); + std::string v2 = measurementfile.match(4); + if ( cmSystemTools::LowerCase(k1) == "type" ) + { + v1 = "text/string"; + } + if ( cmSystemTools::LowerCase(k2) == "type" ) + { + v2 = "text/string"; + } + + ostr + << "\t\t\tImage " << filename.c_str() + << " is empty"; + } + else + { + std::ifstream ifs(filename.c_str(), std::ios::in +#ifdef _WIN32 + | std::ios::binary +#endif + ); + unsigned char *file_buffer = new unsigned char [ len + 1 ]; + ifs.read(reinterpret_cast(file_buffer), len); + unsigned char *encoded_buffer + = new unsigned char [ static_cast(len * 1.5 + 5) ]; + + unsigned long rlen + = cmsysBase64_Encode(file_buffer, len, encoded_buffer, 1); + unsigned long cc; + + ostr + << "\t\t\t" << std::endl << "\t\t\t\t"; + for ( cc = 0; cc < rlen; cc ++ ) + { + ostr << encoded_buffer[cc]; + if ( cc % 60 == 0 && cc ) + { + ostr << std::endl; + } + } + ostr + << "" << std::endl << "\t\t\t" + << std::endl; + delete [] file_buffer; + delete [] encoded_buffer; + } + } + else + { + int idx = 4; + if ( measurementfile.match(1) == "name" ) + { + idx = 2; + } + ostr + << "\t\t\tFile " << filename.c_str() + << " not found" + << std::endl; + cmCTestLog(this->CTest, HANDLER_OUTPUT, "File \"" << filename.c_str() + << "\" not found." << std::endl); + } + cxml.erase(measurementfile.start(), + measurementfile.end() - measurementfile.start()); + } + else + { + done = true; + } + } + return ostr.str(); +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::SetIncludeRegExp(const char *arg) +{ + this->IncludeRegExp = arg; +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::SetExcludeRegExp(const char *arg) +{ + this->ExcludeRegExp = arg; +} + +//---------------------------------------------------------------------- +void cmCTestTestHandler::SetTestsToRunInformation(const char* in) +{ + if ( !in ) + { + return; + } + this->TestsToRunString = in; + // if the argument is a file, then read it and use the contents as the + // string + if(cmSystemTools::FileExists(in)) + { + std::ifstream fin(in); + unsigned long filelen = cmSystemTools::FileLength(in); + char* buff = new char[filelen+1]; + fin.getline(buff, filelen); + buff[fin.gcount()] = 0; + this->TestsToRunString = buff; + } +} + +//---------------------------------------------------------------------- +bool cmCTestTestHandler::CleanTestOutput(std::string& output, + size_t remove_threshold) +{ + if ( remove_threshold == 0 ) + { + return true; + } + if ( output.find("CTEST_FULL_OUTPUT") != output.npos ) + { + return true; + } + cmOStringStream ostr; + std::string::size_type cc; + std::string::size_type skipsize = 0; + int inTag = 0; + int skipped = 0; + for ( cc = 0; cc < output.size(); cc ++ ) + { + int ch = output[cc]; + if ( ch < 0 || ch > 255 ) + { + break; + } + if ( ch == '<' ) + { + inTag = 1; + } + if ( !inTag ) + { + int notskip = 0; + // Skip + if ( skipsize < remove_threshold ) + { + ostr << static_cast(ch); + notskip = 1; + } + skipsize ++; + if ( notskip && skipsize >= remove_threshold ) + { + skipped = 1; + } + } + else + { + ostr << static_cast(ch); + } + if ( ch == '>' ) + { + inTag = 0; + } + } + if ( skipped ) + { + ostr << "..." << std::endl << "The rest of the test output was removed " + "since it exceeds the threshold of " + << remove_threshold << " characters." << std::endl; + } + output = ostr.str(); + return true; +} + +//---------------------------------------------------------------------- +bool cmCTestTestHandler::SetTestsProperties( + const std::vector& args) +{ + std::vector::const_iterator it; + std::vector tests; + bool found = false; + for ( it = args.begin(); it != args.end(); ++ it ) + { + if ( *it == "PROPERTIES" ) + { + found = true; + break; + } + tests.push_back(*it); + } + if ( !found ) + { + return false; + } + ++ it; // skip PROPERTIES + for ( ; it != args.end(); ++ it ) + { + std::string key = *it; + ++ it; + if ( it == args.end() ) + { + break; + } + std::string val = *it; + std::vector::const_iterator tit; + for ( tit = tests.begin(); tit != tests.end(); ++ tit ) + { + cmCTestTestHandler::ListOfTests::iterator rtit; + for ( rtit = this->TestList.begin(); + rtit != this->TestList.end(); + ++ rtit ) + { + if ( *tit == rtit->Name ) + { + if ( key == "WILL_FAIL" ) + { + rtit->WillFail = cmSystemTools::IsOn(val.c_str()); + } + if ( key == "TIMEOUT" ) + { + rtit->Timeout = atof(val.c_str()); + } + if ( key == "FAIL_REGULAR_EXPRESSION" ) + { + std::vector lval; + cmSystemTools::ExpandListArgument(val.c_str(), lval); + std::vector::iterator crit; + for ( crit = lval.begin(); crit != lval.end(); ++ crit ) + { + rtit->ErrorRegularExpressions.push_back( + std::pair( + cmsys::RegularExpression(crit->c_str()), + std::string(crit->c_str()))); + } + } + if ( key == "MEASUREMENT" ) + { + size_t pos = val.find_first_of("="); + if ( pos != val.npos ) + { + std::string mKey = val.substr(0, pos); + const char* mVal = val.c_str() + pos + 1; + rtit->Measurements[mKey] = mVal; + } + else + { + rtit->Measurements[val] = "1"; + } + } + if ( key == "PASS_REGULAR_EXPRESSION" ) + { + std::vector lval; + cmSystemTools::ExpandListArgument(val.c_str(), lval); + std::vector::iterator crit; + for ( crit = lval.begin(); crit != lval.end(); ++ crit ) + { + rtit->RequiredRegularExpressions.push_back( + std::pair( + cmsys::RegularExpression(crit->c_str()), + std::string(crit->c_str()))); + } + } + } + } + } + } + return true; +} + +//---------------------------------------------------------------------- +bool cmCTestTestHandler::AddTest(const std::vector& args) +{ + const std::string& testname = args[0]; + cmCTestLog(this->CTest, DEBUG, "Add test: " << args[0] << std::endl); + if (this->UseExcludeRegExpFlag && + this->UseExcludeRegExpFirst && + this->ExcludeTestsRegularExpression.find(testname.c_str())) + { + return true; + } + if ( this->MemCheck ) + { + std::vector::iterator it; + bool found = false; + for ( it = this->CustomTestsIgnore.begin(); + it != this->CustomTestsIgnore.end(); ++ it ) + { + if ( *it == testname ) + { + found = true; + break; + } + } + if ( found ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Ignore memcheck: " + << *it << std::endl); + return true; + } + } + else + { + std::vector::iterator it; + bool found = false; + for ( it = this->CustomTestsIgnore.begin(); + it != this->CustomTestsIgnore.end(); ++ it ) + { + if ( *it == testname ) + { + found = true; + break; + } + } + if ( found ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Ignore test: " + << *it << std::endl); + return true; + } + } + + cmCTestTestProperties test; + test.Name = testname; + test.Args = args; + test.Directory = cmSystemTools::GetCurrentWorkingDirectory(); + cmCTestLog(this->CTest, DEBUG, "Set test directory: " + << test.Directory << std::endl); + + test.IsInBasedOnREOptions = true; + test.WillFail = false; + test.Timeout = 0; + if (this->UseIncludeRegExpFlag && + !this->IncludeTestsRegularExpression.find(testname.c_str())) + { + test.IsInBasedOnREOptions = false; + } + else if (this->UseExcludeRegExpFlag && + !this->UseExcludeRegExpFirst && + this->ExcludeTestsRegularExpression.find(testname.c_str())) + { + test.IsInBasedOnREOptions = false; + } + this->TestList.push_back(test); + return true; +} + diff --git a/CMakeLua/Source/CTest/cmCTestTestHandler.h b/CMakeLua/Source/CTest/cmCTestTestHandler.h new file mode 100755 index 0000000..cf95fa6 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestTestHandler.h @@ -0,0 +1,218 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestTestHandler.h,v $ + Language: C++ + Date: $Date: 2008/01/30 16:17:36 $ + Version: $Revision: 1.27 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestTestHandler_h +#define cmCTestTestHandler_h + + +#include "cmCTestGenericHandler.h" +#include + +class cmMakefile; + +/** \class cmCTestTestHandler + * \brief A class that handles ctest -S invocations + * + */ +class cmCTestTestHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestTestHandler, cmCTestGenericHandler); + + /** + * The main entry point for this class + */ + int ProcessHandler(); + + /** + * When both -R and -I are used should te resulting test list be the + * intersection or the union of the lists. By default it is the + * intersection. + */ + void SetUseUnion(bool val) { this->UseUnion = val; } + + /** + * This method is called when reading CTest custom file + */ + void PopulateCustomVectors(cmMakefile *mf); + + ///! Control the use of the regular expresisons, call these methods to turn + ///them on + void UseIncludeRegExp(); + void UseExcludeRegExp(); + void SetIncludeRegExp(const char *); + void SetExcludeRegExp(const char *); + + + ///! pass the -I argument down + void SetTestsToRunInformation(const char*); + + cmCTestTestHandler(); + + /* + * Add the test to the list of tests to be executed + */ + bool AddTest(const std::vector& args); + + /* + * Set tests properties + */ + bool SetTestsProperties(const std::vector& args); + + void Initialize(); + + struct cmCTestTestProperties + { + cmStdString Name; + cmStdString Directory; + std::vector Args; + std::vector > ErrorRegularExpressions; + std::vector > RequiredRegularExpressions; + std::map Measurements; + bool IsInBasedOnREOptions; + bool WillFail; + double Timeout; + }; + + struct cmCTestTestResult + { + std::string Name; + std::string Path; + std::string FullCommandLine; + double ExecutionTime; + int ReturnValue; + int Status; + std::string CompletionStatus; + std::string Output; + std::string RegressionImages; + int TestCount; + cmCTestTestProperties* Properties; + }; + + // add configuraitons to a search path for an executable + static void AddConfigurations(cmCTest *ctest, + std::vector &attempted, + std::vector &attemptedConfigs, + std::string filepath, + std::string &filename); + + // full signature static method to find an executable + static std::string FindExecutable(cmCTest *ctest, + const char *testCommand, + std::string &resultingConfig, + std::vector &extraPaths, + std::vector &failed); + +protected: + virtual int PreProcessHandler(); + virtual int PostProcessHandler(); + virtual void GenerateTestCommand(std::vector& args); + int ExecuteCommands(std::vector& vec); + + //! Clean test output to specified length + bool CleanTestOutput(std::string& output, size_t length); + + double ElapsedTestingTime; + + typedef std::vector TestResultsVector; + TestResultsVector TestResults; + + std::vector CustomTestsIgnore; + std::string StartTest; + std::string EndTest; + unsigned int StartTestTime; + unsigned int EndTestTime; + bool MemCheck; + int CustomMaximumPassedTestOutputSize; + int CustomMaximumFailedTestOutputSize; +protected: + /** + * Run one test + */ + virtual void ProcessOneTest(cmCTestTestProperties *props, + std::vector &passed, + std::vector &failed, + int count, int tmsize); + + + +private: + enum { // Program statuses + NOT_RUN = 0, + TIMEOUT, + SEGFAULT, + ILLEGAL, + INTERRUPT, + NUMERICAL, + OTHER_FAULT, + FAILED, + BAD_COMMAND, + COMPLETED + }; + + + /** + * Generate the Dart compatible output + */ + virtual void GenerateDartOutput(std::ostream& os); + + /** + * Run the tests for a directory and any subdirectories + */ + void ProcessDirectory(std::vector &passed, + std::vector &failed); + + typedef std::vector ListOfTests; + /** + * Get the list of tests in directory and subdirectories. + */ + void GetListOfTests(); + + /** + * Find the executable for a test + */ + std::string FindTheExecutable(const char *exe); + + const char* GetTestStatus(int status); + void ExpandTestsToRunInformation(int numPossibleTests); + + std::vector CustomPreTest; + std::vector CustomPostTest; + + std::vector TestsToRun; + + bool UseIncludeRegExpFlag; + bool UseExcludeRegExpFlag; + bool UseExcludeRegExpFirst; + std::string IncludeRegExp; + std::string ExcludeRegExp; + cmsys::RegularExpression IncludeTestsRegularExpression; + cmsys::RegularExpression ExcludeTestsRegularExpression; + + std::string GenerateRegressionImages(const std::string& xml); + + std::string TestsToRunString; + bool UseUnion; + ListOfTests TestList; + cmsys::RegularExpression DartStuff; + + std::ostream* LogFile; +}; + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestUpdateCommand.cxx b/CMakeLua/Source/CTest/cmCTestUpdateCommand.cxx new file mode 100755 index 0000000..d7003c7 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestUpdateCommand.cxx @@ -0,0 +1,95 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestUpdateCommand.cxx,v $ + Language: C++ + Date: $Date: 2006/07/11 19:58:07 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTestUpdateCommand.h" + +#include "cmCTest.h" +#include "cmCTestGenericHandler.h" + +cmCTestGenericHandler* cmCTestUpdateCommand::InitializeHandler() +{ + if ( this->Values[ct_SOURCE] ) + { + this->CTest->SetCTestConfiguration("SourceDirectory", + cmSystemTools::CollapseFullPath( + this->Values[ct_SOURCE]).c_str()); + } + else + { + this->CTest->SetCTestConfiguration("SourceDirectory", + cmSystemTools::CollapseFullPath( + this->Makefile->GetDefinition("CTEST_SOURCE_DIRECTORY")).c_str()); + } + std::string source_dir + = this->CTest->GetCTestConfiguration("SourceDirectory"); + + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "UpdateCommand", "CTEST_UPDATE_COMMAND"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "UpdateOptions", "CTEST_UPDATE_OPTIONS"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "CVSCommand", "CTEST_CVS_COMMAND"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "CVSUpdateOptions", "CTEST_CVS_UPDATE_OPTIONS"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "SVNCommand", "CTEST_SVN_COMMAND"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "SVNUpdateOptions", "CTEST_SVN_UPDATE_OPTIONS"); + + const char* initialCheckoutCommand + = this->Makefile->GetDefinition("CTEST_CHECKOUT_COMMAND"); + if ( !initialCheckoutCommand ) + { + initialCheckoutCommand = + this->Makefile->GetDefinition("CTEST_CVS_CHECKOUT"); + } + + cmCTestGenericHandler* handler + = this->CTest->GetInitializedHandler("update"); + if ( !handler ) + { + this->SetError("internal CTest error. Cannot instantiate update handler"); + return 0; + } + handler->SetCommand(this); + if ( source_dir.empty() ) + { + this->SetError("source directory not specified. Please use SOURCE tag"); + return 0; + } + handler->SetOption("SourceDirectory", source_dir.c_str()); + if ( initialCheckoutCommand ) + { + handler->SetOption("InitialCheckout", initialCheckoutCommand); + } + if ( (!cmSystemTools::FileExists(source_dir.c_str()) || + !cmSystemTools::FileIsDirectory(source_dir.c_str())) + && !initialCheckoutCommand ) + { + cmOStringStream str; + str << "cannot find source directory: " << source_dir.c_str() << "."; + if ( !cmSystemTools::FileExists(source_dir.c_str()) ) + { + str << " Looks like it is not checked out yet. Please specify " + "CTEST_CHECKOUT_COMMAND."; + } + this->SetError(str.str().c_str()); + return 0; + } + return handler; +} + + diff --git a/CMakeLua/Source/CTest/cmCTestUpdateCommand.h b/CMakeLua/Source/CTest/cmCTestUpdateCommand.h new file mode 100755 index 0000000..aab3519 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestUpdateCommand.h @@ -0,0 +1,76 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestUpdateCommand.h,v $ + Language: C++ + Date: $Date: 2006/03/29 17:01:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCTestUpdateCommand_h +#define cmCTestUpdateCommand_h + +#include "cmCTestHandlerCommand.h" + +/** \class cmCTestUpdate + * \brief Run a ctest script + * + * cmCTestUpdateCommand defineds the command to updates the repository. + */ +class cmCTestUpdateCommand : public cmCTestHandlerCommand +{ +public: + + cmCTestUpdateCommand() {} + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmCTestUpdateCommand* ni = new cmCTestUpdateCommand; + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return ni; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CTEST_UPDATE";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Updates the repository."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " CTEST_UPDATE([SOURCE source] [RETURN_VALUE res])\n" + "Updates the given source directory and stores results in Update.xml. " + "The second argument is a variable that will hold the number of files " + "modified. If there is a problem, the variable will be -1."; + } + + cmTypeMacro(cmCTestUpdateCommand, cmCTestHandlerCommand); + +protected: + cmCTestGenericHandler* InitializeHandler(); +}; + + +#endif diff --git a/CMakeLua/Source/CTest/cmCTestUpdateHandler.cxx b/CMakeLua/Source/CTest/cmCTestUpdateHandler.cxx new file mode 100755 index 0000000..17156f6 --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestUpdateHandler.cxx @@ -0,0 +1,1115 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestUpdateHandler.cxx,v $ + Language: C++ + Date: $Date: 2008/01/31 21:38:14 $ + Version: $Revision: 1.41 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCTestUpdateHandler.h" + +#include "cmCTest.h" +#include "cmake.h" +#include "cmMakefile.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" +#include "cmVersion.h" +#include "cmGeneratedFileStream.h" +#include "cmXMLParser.h" + +//#include +#include + +// used for sleep +#ifdef _WIN32 +#include "windows.h" +#endif + +#include +#include +#include + +//---------------------------------------------------------------------- +static const char* cmCTestUpdateHandlerUpdateStrings[] = +{ + "Unknown", + "CVS", + "SVN" +}; + +static const char* cmCTestUpdateHandlerUpdateToString(int type) +{ + if ( type < cmCTestUpdateHandler::e_UNKNOWN || + type >= cmCTestUpdateHandler::e_LAST ) + { + return cmCTestUpdateHandlerUpdateStrings[cmCTestUpdateHandler::e_UNKNOWN]; + } + return cmCTestUpdateHandlerUpdateStrings[type]; +} + +//---------------------------------------------------------------------- +//********************************************************************** +class cmCTestUpdateHandlerSVNXMLParser : public cmXMLParser +{ +public: + struct t_CommitLog + { + int Revision; + std::string Author; + std::string Date; + std::string Message; + }; + cmCTestUpdateHandlerSVNXMLParser(cmCTestUpdateHandler* up) + : cmXMLParser(), UpdateHandler(up), MinRevision(-1), MaxRevision(-1) + { + } + + int Parse(const char* str) + { + this->MinRevision = -1; + this->MaxRevision = -1; + int res = this->cmXMLParser::Parse(str); + if ( this->MinRevision == -1 || this->MaxRevision == -1 ) + { + return 0; + } + return res; + } + + typedef std::vector t_VectorOfCommits; + + t_VectorOfCommits* GetCommits() { return &this->Commits; } + int GetMinRevision() { return this->MinRevision; } + int GetMaxRevision() { return this->MaxRevision; } + +protected: + void StartElement(const char* name, const char** atts) + { + if ( strcmp(name, "logentry") == 0 ) + { + this->CommitLog = t_CommitLog(); + const char* rev = this->FindAttribute(atts, "revision"); + if ( rev) + { + this->CommitLog.Revision = atoi(rev); + if ( this->MinRevision < 0 || + this->MinRevision > this->CommitLog.Revision ) + { + this->MinRevision = this->CommitLog.Revision; + } + if ( this->MaxRevision < 0 || + this->MaxRevision < this->CommitLog.Revision ) + { + this->MaxRevision = this->CommitLog.Revision; + } + } + } + this->CharacterData.erase( + this->CharacterData.begin(), this->CharacterData.end()); + } + void EndElement(const char* name) + { + if ( strcmp(name, "logentry") == 0 ) + { + cmCTestLog(this->UpdateHandler->GetCTestInstance(), + HANDLER_VERBOSE_OUTPUT, + "\tRevision: " << this->CommitLog.Revision<< std::endl + << "\tAuthor: " << this->CommitLog.Author.c_str() << std::endl + << "\tDate: " << this->CommitLog.Date.c_str() << std::endl + << "\tMessage: " << this->CommitLog.Message.c_str() << std::endl); + this->Commits.push_back(this->CommitLog); + } + else if ( strcmp(name, "author") == 0 ) + { + this->CommitLog.Author.assign(&(*(this->CharacterData.begin())), + this->CharacterData.size()); + } + else if ( strcmp(name, "date") == 0 ) + { + this->CommitLog.Date.assign(&(*(this->CharacterData.begin())), + this->CharacterData.size()); + } + else if ( strcmp(name, "msg") == 0 ) + { + this->CommitLog.Message.assign(&(*(this->CharacterData.begin())), + this->CharacterData.size()); + } + this->CharacterData.erase(this->CharacterData.begin(), + this->CharacterData.end()); + } + void CharacterDataHandler(const char* data, int length) + { + this->CharacterData.insert(this->CharacterData.end(), data, data+length); + } + const char* FindAttribute( const char** atts, const char* attribute ) + { + if ( !atts || !attribute ) + { + return 0; + } + const char **atr = atts; + while ( *atr && **atr && **(atr+1) ) + { + if ( strcmp(*atr, attribute) == 0 ) + { + return *(atr+1); + } + atr+=2; + } + return 0; + } + +private: + std::vector CharacterData; + cmCTestUpdateHandler* UpdateHandler; + t_CommitLog CommitLog; + + t_VectorOfCommits Commits; + int MinRevision; + int MaxRevision; +}; +//********************************************************************** +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +cmCTestUpdateHandler::cmCTestUpdateHandler() +{ +} + +//---------------------------------------------------------------------- +void cmCTestUpdateHandler::Initialize() +{ + this->Superclass::Initialize(); +} + +//---------------------------------------------------------------------- +int cmCTestUpdateHandler::DetermineType(const char* cmd, const char* type) +{ + cmCTestLog(this->CTest, DEBUG, "Determine update type from command: " << cmd + << " and type: " << type << std::endl); + if ( type && *type ) + { + cmCTestLog(this->CTest, DEBUG, "Type specified: " << type << std::endl); + std::string stype = cmSystemTools::LowerCase(type); + if ( stype.find("cvs") != std::string::npos ) + { + return cmCTestUpdateHandler::e_CVS; + } + if ( stype.find("svn") != std::string::npos ) + { + return cmCTestUpdateHandler::e_SVN; + } + } + else + { + cmCTestLog(this->CTest, DEBUG, "Type not specified, check command: " + << cmd << std::endl); + std::string stype = cmSystemTools::LowerCase(cmd); + if ( stype.find("cvs") != std::string::npos ) + { + return cmCTestUpdateHandler::e_CVS; + } + if ( stype.find("svn") != std::string::npos ) + { + return cmCTestUpdateHandler::e_SVN; + } + } + std::string sourceDirectory = this->GetOption("SourceDirectory"); + cmCTestLog(this->CTest, DEBUG, "Check directory: " + << sourceDirectory.c_str() << std::endl); + sourceDirectory += "/.svn"; + if ( cmSystemTools::FileExists(sourceDirectory.c_str()) ) + { + return cmCTestUpdateHandler::e_SVN; + } + sourceDirectory = this->GetOption("SourceDirectory"); + sourceDirectory += "/CVS"; + if ( cmSystemTools::FileExists(sourceDirectory.c_str()) ) + { + return cmCTestUpdateHandler::e_CVS; + } + return cmCTestUpdateHandler::e_UNKNOWN; +} + +//---------------------------------------------------------------------- +//clearly it would be nice if this were broken up into a few smaller +//functions and commented... +int cmCTestUpdateHandler::ProcessHandler() +{ + int count = 0; + int updateType = e_CVS; + std::string::size_type cc, kk; + bool updateProducedError = false; + std::string goutput; + std::string errors; + + std::string checkoutErrorMessages; + int retVal = 0; + + // Get source dir + const char* sourceDirectory = this->GetOption("SourceDirectory"); + if ( !sourceDirectory ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find SourceDirectory key in the DartConfiguration.tcl" + << std::endl); + return -1; + } + + cmGeneratedFileStream ofs; + if ( !this->CTest->GetShowOnly() ) + { + this->StartLogFile("Update", ofs); + } + + cmCTestLog(this->CTest, HANDLER_OUTPUT, + "Updating the repository" << std::endl); + + const char* initialCheckoutCommand = this->GetOption("InitialCheckout"); + if ( initialCheckoutCommand ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " First perform the initial checkout: " << initialCheckoutCommand + << std::endl); + cmStdString parent = cmSystemTools::GetParentDirectory(sourceDirectory); + if ( parent.empty() ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Something went wrong when trying " + "to determine the parent directory of " << sourceDirectory + << std::endl); + return -1; + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Perform checkout in directory: " << parent.c_str() << std::endl); + if ( !cmSystemTools::MakeDirectory(parent.c_str()) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot create parent directory: " << parent.c_str() + << " of the source directory: " << sourceDirectory << std::endl); + return -1; + } + ofs << "* Run initial checkout" << std::endl; + ofs << " Command: " << initialCheckoutCommand << std::endl; + cmCTestLog(this->CTest, DEBUG, " Before: " + << initialCheckoutCommand << std::endl); + bool retic = this->CTest->RunCommand(initialCheckoutCommand, &goutput, + &errors, &retVal, parent.c_str(), 0 /* Timeout */); + cmCTestLog(this->CTest, DEBUG, " After: " + << initialCheckoutCommand << std::endl); + ofs << " Output: " << goutput.c_str() << std::endl; + ofs << " Errors: " << errors.c_str() << std::endl; + if ( !retic || retVal ) + { + cmOStringStream ostr; + ostr << "Problem running initial checkout Output [" << goutput + << "] Errors [" << errors << "]"; + cmCTestLog(this->CTest, ERROR_MESSAGE, ostr.str().c_str() << std::endl); + checkoutErrorMessages += ostr.str(); + updateProducedError = true; + } + if(!this->CTest->InitializeFromCommand(this->Command)) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Fatal Error in initialize: " + << std::endl); + cmSystemTools::SetFatalErrorOccured(); + return -1; + } + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Updating the repository: " + << sourceDirectory << std::endl); + + // Get update command + std::string updateCommand + = this->CTest->GetCTestConfiguration("UpdateCommand"); + if ( updateCommand.empty() ) + { + updateCommand = this->CTest->GetCTestConfiguration("CVSCommand"); + if ( updateCommand.empty() ) + { + updateCommand = this->CTest->GetCTestConfiguration("SVNCommand"); + if ( updateCommand.empty() ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Cannot find CVSCommand, SVNCommand, or UpdateCommand key in the " + "DartConfiguration.tcl" << std::endl); + return -1; + } + else + { + updateType = e_SVN; + } + } + else + { + updateType = e_CVS; + } + } + else + { + updateType = this->DetermineType(updateCommand.c_str(), + this->CTest->GetCTestConfiguration("UpdateType").c_str()); + } + + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Use " + << cmCTestUpdateHandlerUpdateToString(updateType) << " repository type" + << std::endl;); + + // And update options + std::string updateOptions + = this->CTest->GetCTestConfiguration("UpdateOptions"); + if ( updateOptions.empty() ) + { + switch (updateType) + { + case cmCTestUpdateHandler::e_CVS: + updateOptions = this->CTest->GetCTestConfiguration("CVSUpdateOptions"); + if ( updateOptions.empty() ) + { + updateOptions = "-dP"; + } + break; + case cmCTestUpdateHandler::e_SVN: + updateOptions = this->CTest->GetCTestConfiguration("SVNUpdateOptions"); + break; + } + } + + // Get update time + std::string extra_update_opts; + if ( this->CTest->GetTestModel() == cmCTest::NIGHTLY ) + { + struct tm* t = this->CTest->GetNightlyTime( + this->CTest->GetCTestConfiguration("NightlyStartTime"), + this->CTest->GetTomorrowTag()); + char current_time[1024]; + sprintf(current_time, "%04d-%02d-%02d %02d:%02d:%02d", + t->tm_year + 1900, + t->tm_mon + 1, + t->tm_mday, + t->tm_hour, + t->tm_min, + t->tm_sec); + std::string today_update_date = current_time; + + // TODO: SVN + switch ( updateType ) + { + case cmCTestUpdateHandler::e_CVS: + extra_update_opts += "-D \"" + today_update_date +" UTC\""; + break; + case cmCTestUpdateHandler::e_SVN: + extra_update_opts += "-r \"{" + today_update_date +" +0000}\""; + break; + } + } + + bool res = true; + + updateCommand = "\"" + updateCommand + "\""; + + // First, check what the current state of repository is + std::string command = ""; + switch( updateType ) + { + case cmCTestUpdateHandler::e_CVS: + // TODO: CVS - for now just leave empty + break; + case cmCTestUpdateHandler::e_SVN: + command = updateCommand + " cleanup"; + break; + } + + // + // Get initial repository information if that is possible. With subversion, + // this will check the current revision. + // + if ( !command.empty() ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "* Cleanup repository: " << command.c_str() << std::endl); + if ( !this->CTest->GetShowOnly() ) + { + ofs << "* Cleanup repository" << std::endl; + ofs << " Command: " << command.c_str() << std::endl; + res = this->CTest->RunCommand(command.c_str(), &goutput, &errors, + &retVal, sourceDirectory, 0 /*this->TimeOut*/); + + ofs << " Output: " << goutput.c_str() << std::endl; + ofs << " Errors: " << errors.c_str() << std::endl; + if ( ofs ) + { + ofs << "--- Cleanup ---" << std::endl; + ofs << goutput << std::endl; + } + } + else + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Cleanup with command: " << command << std::endl); + } + } + + // First, check what the current state of repository is + command = ""; + switch( updateType ) + { + case cmCTestUpdateHandler::e_CVS: + // TODO: CVS - for now just leave empty + break; + case cmCTestUpdateHandler::e_SVN: + command = updateCommand + " info"; + break; + } + + // CVS variables + // SVN variables + int svn_current_revision = 0; + int svn_latest_revision = 0; + int svn_use_status = 0; + + // + // Get initial repository information if that is possible. With subversion, + // this will check the current revision. + // + if ( !command.empty() ) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "* Get repository information: " << command.c_str() << std::endl); + if ( !this->CTest->GetShowOnly() ) + { + ofs << "* Get repository information" << std::endl; + ofs << " Command: " << command.c_str() << std::endl; + res = this->CTest->RunCommand(command.c_str(), &goutput, &errors, + &retVal, sourceDirectory, 0 /*this->TimeOut*/); + + ofs << " Output: " << goutput.c_str() << std::endl; + ofs << " Errors: " << errors.c_str() << std::endl; + if ( ofs ) + { + ofs << "--- Update information ---" << std::endl; + ofs << goutput << std::endl; + } + switch ( updateType ) + { + case cmCTestUpdateHandler::e_CVS: + // TODO: CVS - for now just leave empty + break; + case cmCTestUpdateHandler::e_SVN: + { + cmsys::RegularExpression current_revision_regex( + "Revision: ([0-9]+)"); + if ( current_revision_regex.find(goutput.c_str()) ) + { + std::string currentRevisionString + = current_revision_regex.match(1); + svn_current_revision = atoi(currentRevisionString.c_str()); + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Old revision of repository is: " << svn_current_revision + << std::endl); + } + } + break; + } + } + else + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Get information with command: " << command << std::endl); + } + } + + + // + // Now update repository and remember what files were updated + // + cmGeneratedFileStream os; + if ( !this->StartResultingXML("Update", os) ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot open log file" + << std::endl); + return -1; + } + std::string start_time = this->CTest->CurrentTime(); + unsigned int start_time_time = + static_cast(cmSystemTools::GetTime()); + double elapsed_time_start = cmSystemTools::GetTime(); + + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "* Update repository: " + << command.c_str() << std::endl); + if ( !this->CTest->GetShowOnly() ) + { + command = ""; + switch( updateType ) + { + case cmCTestUpdateHandler::e_CVS: + command = updateCommand + " -z3 update " + updateOptions + + " " + extra_update_opts; + ofs << "* Update repository: " << std::endl; + ofs << " Command: " << command.c_str() << std::endl; + res = this->CTest->RunCommand(command.c_str(), &goutput, &errors, + &retVal, sourceDirectory, 0 /*this->TimeOut*/); + ofs << " Output: " << goutput.c_str() << std::endl; + ofs << " Errors: " << errors.c_str() << std::endl; + break; + case cmCTestUpdateHandler::e_SVN: + { + std::string partialOutput; + command = updateCommand + " update " + updateOptions + + " " + extra_update_opts; + ofs << "* Update repository: " << std::endl; + ofs << " Command: " << command.c_str() << std::endl; + bool res1 = this->CTest->RunCommand(command.c_str(), &partialOutput, + &errors, + &retVal, sourceDirectory, 0 /*this->TimeOut*/); + ofs << " Output: " << partialOutput.c_str() << std::endl; + ofs << " Errors: " << errors.c_str() << std::endl; + goutput = partialOutput; + command = updateCommand + " status"; + ofs << "* Status repository: " << std::endl; + ofs << " Command: " << command.c_str() << std::endl; + res = this->CTest->RunCommand(command.c_str(), &partialOutput, + &errors, &retVal, sourceDirectory, 0 /*this->TimeOut*/); + ofs << " Output: " << partialOutput.c_str() << std::endl; + ofs << " Errors: " << errors.c_str() << std::endl; + goutput += partialOutput; + res = res && res1; + ofs << " Total output of update: " << goutput.c_str() << std::endl; + } + } + if ( ofs ) + { + ofs << "--- Update repository ---" << std::endl; + ofs << goutput << std::endl; + } + } + if ( !res || retVal ) + { + updateProducedError = true; + checkoutErrorMessages += " " + goutput; + } + + os << "\n" + << "\n" + << "\t" << this->CTest->GetCTestConfiguration("Site") << "\n" + << "\t" << this->CTest->GetCTestConfiguration("BuildName") + << "\n" + << "\t" << this->CTest->GetCurrentTag() << "-" + << this->CTest->GetTestModelString() << "" << std::endl; + os << "\t" << start_time << "\n" + << "\t" << start_time_time << "\n" + << "\t" << this->CTest->MakeXMLSafe(command) + << "\n" + << "\t" << this->CTest->MakeXMLSafe( + cmCTestUpdateHandlerUpdateToString(updateType)) + << "\n"; + + // Even though it failed, we may have some useful information. Try to + // continue... + std::vector lines; + cmSystemTools::Split(goutput.c_str(), lines); + std::vector errLines; + cmSystemTools::Split(errors.c_str(), errLines); + lines.insert(lines.end(), errLines.begin(), errLines.end()); + + // CVS style regular expressions + cmsys::RegularExpression cvs_date_author_regex( + "^date: +([^;]+); +author: +([^;]+); +state: +[^;]+;"); + cmsys::RegularExpression cvs_revision_regex("^revision +([^ ]*) *$"); + cmsys::RegularExpression cvs_end_of_file_regex( + "^==========================================" + "===================================$"); + cmsys::RegularExpression cvs_end_of_comment_regex( + "^----------------------------$"); + + // Subversion style regular expressions + cmsys::RegularExpression svn_status_line_regex( + "^ *([0-9]+) *([0-9]+) *([^ ]+) *([^ ][^\t\r\n]*)[ \t\r\n]*$"); + cmsys::RegularExpression svn_latest_revision_regex( + "(Updated to|At) revision ([0-9]+)\\."); + + cmsys::RegularExpression file_removed_line( + "cvs update: `(.*)' is no longer in the repository"); + cmsys::RegularExpression file_update_line("([A-Z]) *(.*)"); + std::string current_path = ""; + bool first_file = true; + + cmCTestUpdateHandler::AuthorsToUpdatesMap authors_files_map; + int numUpdated = 0; + int numModiefied = 0; + int numConflicting = 0; + // In subversion, get the latest revision + if ( updateType == cmCTestUpdateHandler::e_SVN ) + { + for ( cc= 0; cc < lines.size(); cc ++ ) + { + const char* line = lines[cc].c_str(); + if ( svn_latest_revision_regex.find(line) ) + { + svn_latest_revision = atoi( + svn_latest_revision_regex.match(2).c_str()); + } + } + if ( svn_latest_revision <= 0 ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Problem determining the current " + "revision of the repository from output:" << std::endl + << goutput.c_str() << std::endl); + } + else + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Current revision of repository is: " << svn_latest_revision + << std::endl); + } + } + + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Gathering version information (each . represents one updated file):" + << std::endl); + int file_count = 0; + std::string removed_line; + for ( cc= 0; cc < lines.size(); cc ++ ) + { + const char* line = lines[cc].c_str(); + if ( file_removed_line.find(line) ) + { + removed_line = "D " + file_removed_line.match(1); + line = removed_line.c_str(); + } + if ( file_update_line.find(line) ) + { + if ( file_count == 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " " << std::flush); + } + cmCTestLog(this->CTest, HANDLER_OUTPUT, "." << std::flush); + std::string upChar = file_update_line.match(1); + std::string upFile = file_update_line.match(2); + char mod = upChar[0]; + bool modifiedOrConflict = false; + if ( mod == 'X') + { + continue; + } + if ( mod != 'M' && mod != 'C' && mod != 'G' ) + { + count ++; + modifiedOrConflict = true; + } + const char* file = upFile.c_str(); + cmCTestLog(this->CTest, DEBUG, "Line" << cc << ": " << mod << " - " + << file << std::endl); + + std::string output; + if ( modifiedOrConflict ) + { + std::string logcommand; + switch ( updateType ) + { + case cmCTestUpdateHandler::e_CVS: + logcommand = updateCommand + " -z3 log -N \"" + file + "\""; + break; + case cmCTestUpdateHandler::e_SVN: + if ( svn_latest_revision > 0 && + svn_latest_revision > svn_current_revision ) + { + cmOStringStream logCommandStream; + logCommandStream << updateCommand << " log -r " + << svn_current_revision << ":" << svn_latest_revision + << " --xml \"" << file << "\""; + logcommand = logCommandStream.str(); + } + else + { + logcommand = updateCommand + + " status --verbose \"" + file + "\""; + svn_use_status = 1; + } + break; + } + cmCTestLog(this->CTest, DEBUG, "Do log: " << logcommand << std::endl); + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "* Get file update information: " << logcommand.c_str() + << std::endl); + ofs << "* Get log information for file: " << file << std::endl; + ofs << " Command: " << logcommand.c_str() << std::endl; + res = this->CTest->RunCommand(logcommand.c_str(), &output, &errors, + &retVal, sourceDirectory, 0 /*this->TimeOut*/); + ofs << " Output: " << output.c_str() << std::endl; + ofs << " Errors: " << errors.c_str() << std::endl; + if ( ofs ) + { + ofs << output << std::endl; + } + } + if ( res ) + { + cmCTestLog(this->CTest, DEBUG, output << std::endl); + std::string::size_type sline = 0; + std::string srevision1 = "Unknown"; + std::string sdate1 = "Unknown"; + std::string sauthor1 = "Unknown"; + std::string semail1 = "Unknown"; + std::string comment1 = ""; + std::string srevision2 = "Unknown"; + std::string sdate2 = "Unknown"; + std::string sauthor2 = "Unknown"; + std::string comment2 = ""; + std::string semail2 = "Unknown"; + if ( updateType == cmCTestUpdateHandler::e_CVS ) + { + bool have_first = false; + bool have_second = false; + std::vector ulines; + cmSystemTools::Split(output.c_str(), ulines); + for ( kk = 0; kk < ulines.size(); kk ++ ) + { + const char* clp = ulines[kk].c_str(); + if ( !have_second && !sline && cvs_revision_regex.find(clp) ) + { + if ( !have_first ) + { + srevision1 = cvs_revision_regex.match(1); + } + else + { + srevision2 = cvs_revision_regex.match(1); + } + } + else if ( !have_second && !sline && + cvs_date_author_regex.find(clp) ) + { + sline = kk + 1; + if ( !have_first ) + { + sdate1 = cvs_date_author_regex.match(1); + sauthor1 = cvs_date_author_regex.match(2); + } + else + { + sdate2 = cvs_date_author_regex.match(1); + sauthor2 = cvs_date_author_regex.match(2); + } + } + else if ( sline && cvs_end_of_comment_regex.find(clp) || + cvs_end_of_file_regex.find(clp)) + { + if ( !have_first ) + { + have_first = true; + } + else if ( !have_second ) + { + have_second = true; + } + sline = 0; + } + else if ( sline ) + { + if ( !have_first ) + { + comment1 += clp; + comment1 += "\n"; + } + else + { + comment2 += clp; + comment2 += "\n"; + } + } + } + } + else if ( updateType == cmCTestUpdateHandler::e_SVN ) + { + if ( svn_use_status ) + { + cmOStringStream str; + str << svn_current_revision; + srevision1 = str.str(); + if (!svn_status_line_regex.find(output)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Bad output from SVN status command: " << output + << std::endl); + } + else if ( svn_status_line_regex.match(4) != file ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Bad output from SVN status command. " + "The file name returned: \"" + << svn_status_line_regex.match(4) + << "\" was different than the file specified: \"" << file + << "\"" << std::endl); + } + else + { + srevision1 = svn_status_line_regex.match(2); + int latest_revision = atoi( + svn_status_line_regex.match(2).c_str()); + if ( svn_current_revision < latest_revision ) + { + srevision2 = str.str(); + } + sauthor1 = svn_status_line_regex.match(3); + } + } + else + { + cmCTestUpdateHandlerSVNXMLParser parser(this); + if ( parser.Parse(output.c_str()) ) + { + int minrev = parser.GetMinRevision(); + int maxrev = parser.GetMaxRevision(); + cmCTestUpdateHandlerSVNXMLParser:: + t_VectorOfCommits::iterator it; + for ( it = parser.GetCommits()->begin(); + it != parser.GetCommits()->end(); + ++ it ) + { + if ( it->Revision == maxrev ) + { + cmOStringStream mRevStream; + mRevStream << maxrev; + srevision1 = mRevStream.str(); + sauthor1 = it->Author; + comment1 = it->Message; + sdate1 = it->Date; + } + else if ( it->Revision == minrev ) + { + cmOStringStream mRevStream; + mRevStream << minrev; + srevision2 = mRevStream.str(); + sauthor2 = it->Author; + comment2 = it->Message; + sdate2 = it->Date; + } + } + } + } + } + if ( mod == 'M' ) + { + comment1 = "Locally modified file\n"; + sauthor1 = "Local User"; + } + if ( mod == 'D' ) + { + comment1 += " - Removed file\n"; + } + if ( mod == 'C' ) + { + comment1 = "Conflict while updating\n"; + sauthor1 = "Local User"; + } + std::string path = cmSystemTools::GetFilenamePath(file); + std::string fname = cmSystemTools::GetFilenameName(file); + if ( path != current_path ) + { + if ( !first_file ) + { + os << "\t" << std::endl; + } + else + { + first_file = false; + } + os << "\t\n" + << "\t\t" << path << "" << std::endl; + } + if ( mod == 'C' ) + { + numConflicting ++; + os << "\t" << std::endl; + } + else if ( mod == 'G' ) + { + numConflicting ++; + os << "\t" << std::endl; + } + else if ( mod == 'M' ) + { + numModiefied ++; + os << "\t" << std::endl; + } + else + { + numUpdated ++; + os << "\t" << std::endl; + } + if ( srevision2 == "Unknown" ) + { + srevision2 = srevision1; + } + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "File: " + << path.c_str() << " / " << fname.c_str() << " was updated by " + << sauthor1.c_str() << " to revision: " << srevision1.c_str() + << " from revision: " << srevision2.c_str() << std::endl); + os << "\t\t" + << cmCTest::MakeXMLSafe(fname) + << "\n" + << "\t\t" << cmCTest::MakeXMLSafe(path) + << "\n" + << "\t\t" << cmCTest::MakeXMLSafe(file) << "\n" + << "\t\t" << cmCTest::MakeXMLSafe(sdate1) + << "\n" + << "\t\t" << cmCTest::MakeXMLSafe(sauthor1) << "\n" + << "\t\t" << cmCTest::MakeXMLSafe(semail1) << "\n" + << "\t\t" << cmCTest::MakeXMLSafe(comment1) << "\n" + << "\t\t" << srevision1 << "\n" + << "\t\t" << srevision2 << "" + << std::endl; + if ( srevision2 != srevision1 ) + { + os + << "\t\t\n" + << "\t\t\t" << srevision1 << "\n" + << "\t\t\t" << srevision2 + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(sauthor1) + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(sdate1) + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(comment1) + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(semail1) + << "\n" + << "\t\t\n" + << "\t\t\n" + << "\t\t\t" << srevision2 << "\n" + << "\t\t\t" << srevision2 + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(sauthor2) + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(sdate2) + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(comment2) + << "\n" + << "\t\t\t" << cmCTest::MakeXMLSafe(semail2) + << "\n" + << "\t\t" << std::endl; + } + if ( mod == 'C' ) + { + os << "\t" << std::endl; + } + else if ( mod == 'G' ) + { + os << "\t" << std::endl; + } + else if ( mod == 'M' ) + { + os << "\t" << std::endl; + } + else + { + os << "\t" << std::endl; + } + cmCTestUpdateHandler::UpdateFiles *u = &authors_files_map[sauthor1]; + cmCTestUpdateHandler::StringPair p; + p.first = path; + p.second = fname; + u->push_back(p); + + current_path = path; + } + file_count ++; + } + } + if ( file_count ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl); + } + if ( numUpdated ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Found " << numUpdated + << " updated files" << std::endl); + } + if ( numModiefied ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Found " << numModiefied + << " locally modified files" + << std::endl); + } + if ( numConflicting ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Found " << numConflicting + << " conflicting files" + << std::endl); + } + if ( numModiefied == 0 && numConflicting == 0 && numUpdated == 0 ) + { + cmCTestLog(this->CTest, HANDLER_OUTPUT, " Project is up-to-date" + << std::endl); + } + if ( !first_file ) + { + os << "\t" << std::endl; + } + + cmCTestUpdateHandler::AuthorsToUpdatesMap::iterator it; + for ( it = authors_files_map.begin(); + it != authors_files_map.end(); + it ++ ) + { + os << "\t\n" + << "\t\t" << it->first << "" << std::endl; + cmCTestUpdateHandler::UpdateFiles *u = &(it->second); + for ( cc = 0; cc < u->size(); cc ++ ) + { + os << "\t\t" + << (*u)[cc].second << "" << std::endl; + } + os << "\t" << std::endl; + } + + cmCTestLog(this->CTest, DEBUG, "End" << std::endl); + std::string end_time = this->CTest->CurrentTime(); + os << "\t" << end_time << "\n" + << "\t" << static_cast(cmSystemTools::GetTime()) + << "\n" + << "" << + static_cast((cmSystemTools::GetTime() - elapsed_time_start)/6)/10.0 + << "\n" + << "\t"; + if ( numModiefied > 0 || numConflicting > 0 ) + { + os << "Update error: There are modified or conflicting files in the " + "repository"; + cmCTestLog(this->CTest, ERROR_MESSAGE, + " There are modified or conflicting files in the repository" + << std::endl); + } + if ( updateProducedError ) + { + os << "Update error: "; + os << this->CTest->MakeXMLSafe(checkoutErrorMessages); + cmCTestLog(this->CTest, ERROR_MESSAGE, " Update with command: " + << command << " failed" << std::endl); + } + os << "" << std::endl; + os << "" << std::endl; + + if (! res ) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Error(s) when updating the project" << std::endl); + cmCTestLog(this->CTest, ERROR_MESSAGE, "Output: " + << goutput << std::endl); + return -1; + } + return count; +} diff --git a/CMakeLua/Source/CTest/cmCTestUpdateHandler.h b/CMakeLua/Source/CTest/cmCTestUpdateHandler.h new file mode 100755 index 0000000..4d1eefb --- /dev/null +++ b/CMakeLua/Source/CTest/cmCTestUpdateHandler.h @@ -0,0 +1,73 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTestUpdateHandler.h,v $ + Language: C++ + Date: $Date: 2006/03/10 20:03:09 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTestUpdateHandler_h +#define cmCTestUpdateHandler_h + + +#include "cmCTestGenericHandler.h" +#include "cmListFileCache.h" + +#if defined(__sgi) && !defined(__GNUC__) +# pragma set woff 1375 /* base class destructor not virtual */ +#endif + +/** \class cmCTestUpdateHandler + * \brief A class that handles ctest -S invocations + * + */ +class cmCTestUpdateHandler : public cmCTestGenericHandler +{ +public: + cmTypeMacro(cmCTestUpdateHandler, cmCTestGenericHandler); + + /* + * The main entry point for this class + */ + int ProcessHandler(); + + cmCTestUpdateHandler(); + + enum { + e_UNKNOWN = 0, + e_CVS, + e_SVN, + e_LAST + }; + + /** + * Initialize handler + */ + virtual void Initialize(); + +private: + // Some structures needed for update + struct StringPair : + public std::pair{}; + struct UpdateFiles : public std::vector{}; + struct AuthorsToUpdatesMap : + public std::map{}; + + // Determine the type of version control + int DetermineType(const char* cmd, const char* type); +}; + +#if defined(__sgi) && !defined(__GNUC__) +# pragma reset woff 1375 /* base class destructor not virtual */ +#endif + +#endif diff --git a/CMakeLua/Source/CVS/Entries b/CMakeLua/Source/CVS/Entries new file mode 100644 index 0000000..0c77176 --- /dev/null +++ b/CMakeLua/Source/CVS/Entries @@ -0,0 +1,427 @@ +/.cvsignore/1.1/Wed Apr 24 14:08:24 2002//T1.1 +/cmCPluginAPI.h/1.25/Thu Dec 7 14:44:45 2006//T1.25 +/cmCallVisualStudioMacro.cxx/1.2/Tue Nov 20 16:10:11 2007//T1.2 +/cmCallVisualStudioMacro.h/1.1/Fri Nov 16 12:01:58 2007//T1.1 +/cmCommandArgumentLexer.cxx/1.15/Mon Sep 24 15:16:13 2007//T1.15 +/cmCommandArgumentLexer.h/1.5/Fri Jul 27 14:55:24 2007//T1.5 +/cmCommandArgumentLexer.in.l/1.10/Tue Jun 5 13:19:27 2007//T1.10 +/cmCommandArgumentParser.cxx/1.13/Fri Jul 27 14:55:24 2007//T1.13 +/cmCommandArgumentParser.y/1.10/Wed Oct 4 18:37:41 2006//T1.10 +/cmCommandArgumentParserHelper.cxx/1.20/Wed Jun 6 20:20:02 2007//T1.20 +/cmCommandArgumentParserHelper.h/1.11/Wed Jun 6 20:20:02 2007//T1.11 +/cmCommandArgumentParserTokens.h/1.5/Fri Jul 27 14:55:24 2007//T1.5 +/cmCommandArgumentsHelper.cxx/1.4/Thu Aug 23 20:13:15 2007//T1.4 +/cmCommandArgumentsHelper.h/1.2/Thu Aug 23 20:13:15 2007//T1.2 +/cmCommands.h/1.6/Fri Jan 21 15:27:51 2005//T1.6 +/cmConfigure.cmake.h.in/1.12/Tue Oct 16 18:28:12 2007//T1.12 +/cmCoreTryCompile.h/1.1/Thu May 24 15:27:51 2007//T1.1 +/cmCustomCommand.cxx/1.24/Mon Sep 17 14:50:46 2007//T1.24 +/cmCustomCommand.h/1.23/Mon Sep 17 14:50:46 2007//T1.23 +/cmData.h/1.4/Thu Mar 16 14:33:23 2006//T1.4 +/cmDependsC.h/1.20/Mon Feb 5 14:48:38 2007//T1.20 +/cmDependsFortranLexer.cxx/1.10/Wed Oct 3 19:41:39 2007//T1.10 +/cmDependsFortranLexer.h/1.7/Wed Oct 3 19:41:39 2007//T1.7 +/cmDependsFortranLexer.in.l/1.10/Wed Oct 3 19:41:39 2007//T1.10 +/cmDependsFortranParser.h/1.4/Wed Oct 3 19:41:39 2007//T1.4 +/cmDependsFortranParserTokens.h/1.5/Wed Oct 3 19:41:39 2007//T1.5 +/cmDependsJava.cxx/1.7/Wed Oct 12 17:52:29 2005//T1.7 +/cmDependsJava.h/1.5/Wed Oct 12 17:52:29 2005//T1.5 +/cmDependsJavaLexer.cxx/1.12/Mon Sep 24 15:16:13 2007//T1.12 +/cmDependsJavaLexer.h/1.5/Fri Jul 27 14:55:24 2007//T1.5 +/cmDependsJavaLexer.in.l/1.9/Tue Aug 8 18:00:27 2006//T1.9 +/cmDependsJavaParser.cxx/1.7/Mon Mar 5 15:36:06 2007//T1.7 +/cmDependsJavaParser.y/1.5/Tue Aug 1 15:38:41 2006//T1.5 +/cmDependsJavaParserHelper.cxx/1.5/Wed May 10 19:01:22 2006//T1.5 +/cmDependsJavaParserHelper.h/1.3/Wed May 10 19:01:22 2006//T1.3 +/cmDependsJavaParserTokens.h/1.4/Fri Mar 10 18:54:57 2006//T1.4 +/cmDocumentVariables.h/1.1/Thu Oct 18 13:10:42 2007//T1.1 +/cmDocumentation.h/1.31/Wed Oct 24 15:36:47 2007//T1.31 +/cmDocumentationFormatter.cxx/1.1/Wed Sep 19 13:05:28 2007//T1.1 +/cmDocumentationFormatter.h/1.5/Wed Oct 24 15:36:47 2007//T1.5 +/cmDocumentationFormatterHTML.cxx/1.7/Tue Nov 27 20:59:22 2007//T1.7 +/cmDocumentationFormatterHTML.h/1.2/Mon Oct 22 16:48:39 2007//T1.2 +/cmDocumentationFormatterMan.cxx/1.5/Mon Oct 22 16:48:39 2007//T1.5 +/cmDocumentationFormatterMan.h/1.2/Mon Oct 22 16:48:39 2007//T1.2 +/cmDocumentationFormatterText.cxx/1.4/Mon Oct 22 16:48:39 2007//T1.4 +/cmDocumentationFormatterText.h/1.2/Mon Oct 22 16:48:39 2007//T1.2 +/cmDocumentationFormatterUsage.cxx/1.4/Mon Oct 22 16:48:39 2007//T1.4 +/cmDocumentationFormatterUsage.h/1.2/Mon Oct 22 16:48:39 2007//T1.2 +/cmDocumentationSection.cxx/1.2/Mon Oct 22 19:33:19 2007//T1.2 +/cmDocumentationSection.h/1.3/Wed Oct 24 15:36:47 2007//T1.3 +/cmDynamicLoader.cxx/1.29/Thu Mar 16 22:09:08 2006//T1.29 +/cmDynamicLoader.h/1.9/Thu Mar 16 22:09:08 2006//T1.9 +/cmExprLexer.cxx/1.7/Mon Sep 24 15:16:13 2007//T1.7 +/cmExprLexer.h/1.4/Fri Jul 27 14:55:24 2007//T1.4 +/cmExprLexer.in.l/1.3/Tue Aug 8 18:00:28 2006//T1.3 +/cmExprParser.cxx/1.6/Mon Mar 5 15:36:06 2007//T1.6 +/cmExprParser.y/1.3/Tue Aug 1 15:38:41 2006//T1.3 +/cmExprParserHelper.cxx/1.3/Thu May 11 14:45:28 2006//T1.3 +/cmExprParserHelper.h/1.2/Wed Mar 15 16:02:01 2006//T1.2 +/cmExprParserTokens.h/1.2/Fri Mar 10 18:54:57 2006//T1.2 +/cmExternalMakefileProjectGenerator.cxx/1.2/Tue Jul 3 20:10:50 2007//T1.2 +/cmExternalMakefileProjectGenerator.h/1.3/Wed Jun 13 16:52:29 2007//T1.3 +/cmExtraCodeBlocksGenerator.cxx/1.18/Sun Nov 25 12:45:18 2007//T1.18 +/cmExtraCodeBlocksGenerator.h/1.5/Sun Nov 25 12:45:18 2007//T1.5 +/cmExtraEclipseCDT4Generator.cxx/1.7/Sun Nov 25 12:40:57 2007//T1.7 +/cmExtraEclipseCDT4Generator.h/1.2/Fri Aug 17 14:05:39 2007//T1.2 +/cmFindFileCommand.cxx/1.30/Wed Oct 10 15:47:43 2007//T1.30 +/cmFindFileCommand.h/1.20/Wed Oct 10 15:47:43 2007//T1.20 +/cmGeneratedFileStream.cxx/1.19/Fri Nov 16 12:01:58 2007//T1.19 +/cmGeneratedFileStream.h/1.23/Fri Nov 16 12:01:58 2007//T1.23 +/cmGlobalBorlandMakefileGenerator.cxx/1.28/Mon Oct 22 16:48:39 2007//T1.28 +/cmGlobalBorlandMakefileGenerator.h/1.7/Thu Jun 28 13:09:26 2007//T1.7 +/cmGlobalKdevelopGenerator.cxx/1.29/Mon Oct 22 17:28:49 2007//T1.29 +/cmGlobalKdevelopGenerator.h/1.7/Sun Aug 26 23:27:33 2007//T1.7 +/cmGlobalMSYSMakefileGenerator.cxx/1.14/Mon Oct 22 16:48:39 2007//T1.14 +/cmGlobalMSYSMakefileGenerator.h/1.6/Thu Aug 9 19:57:30 2007//T1.6 +/cmGlobalMinGWMakefileGenerator.cxx/1.12/Mon Oct 22 16:48:39 2007//T1.12 +/cmGlobalMinGWMakefileGenerator.h/1.5/Thu Aug 9 19:57:30 2007//T1.5 +/cmGlobalNMakeMakefileGenerator.h/1.13/Thu Aug 9 19:57:30 2007//T1.13 +/cmGlobalVisualStudio6Generator.h/1.29/Thu Jun 28 13:09:26 2007//T1.29 +/cmGlobalVisualStudio8Win64Generator.cxx/1.5/Mon Oct 22 16:48:39 2007//T1.5 +/cmGlobalVisualStudio8Win64Generator.h/1.3/Thu Jun 28 13:09:26 2007//T1.3 +/cmGlobalWatcomWMakeGenerator.cxx/1.14/Mon Oct 22 16:48:39 2007//T1.14 +/cmGlobalWatcomWMakeGenerator.h/1.4/Thu Aug 9 19:57:30 2007//T1.4 +/cmGlobalXCode21Generator.cxx/1.7/Tue Aug 14 15:45:14 2007//T1.7 +/cmGlobalXCode21Generator.h/1.4/Thu May 11 15:47:03 2006//T1.4 +/cmHexFileConverter.cxx/1.5/Fri Jul 20 12:36:16 2007//T1.5 +/cmHexFileConverter.h/1.1/Fri May 25 19:22:22 2007//T1.1 +/cmInstallDirectoryGenerator.h/1.4/Mon Jul 2 18:56:57 2007//T1.4 +/cmInstallFilesGenerator.h/1.8/Mon Jul 2 18:56:57 2007//T1.8 +/cmInstallScriptGenerator.cxx/1.4/Mon Oct 15 11:08:10 2007//T1.4 +/cmInstallScriptGenerator.h/1.3/Mon Oct 15 11:08:10 2007//T1.3 +/cmListFileCache.cxx/1.30/Mon Nov 19 18:42:05 2007//T1.30 +/cmListFileCache.h/1.18/Fri May 11 12:36:05 2007//T1.18 +/cmListFileLexer.c/1.15/Wed Aug 9 13:45:04 2006//T1.15 +/cmListFileLexer.h/1.3/Tue Aug 31 22:39:42 2004//T1.3 +/cmListFileLexer.in.l/1.15/Wed Aug 9 13:45:04 2006//T1.15 +/cmLocalVisualStudioGenerator.h/1.8/Mon Aug 27 21:05:43 2007//T1.8 +/cmLocalXCodeGenerator.cxx/1.7/Tue Aug 14 15:45:14 2007//T1.7 +/cmLocalXCodeGenerator.h/1.5/Wed Aug 1 19:25:40 2007//T1.5 +/cmMakeDepend.h/1.24/Fri May 12 16:29:09 2006//T1.24 +/cmMakefileExecutableTargetGenerator.h/1.3/Thu Sep 28 20:40:35 2006//T1.3 +/cmMakefileLibraryTargetGenerator.h/1.5/Tue Aug 14 18:12:08 2007//T1.5 +/cmMakefileUtilityTargetGenerator.h/1.2/Fri Mar 2 19:31:04 2007//T1.2 +/cmObject.h/1.2/Fri May 12 17:39:34 2006//T1.2 +/cmPropertyDefinition.cxx/1.9/Mon Oct 22 16:48:39 2007//T1.9 +/cmPropertyDefinition.h/1.4/Wed Oct 24 18:43:10 2007//T1.4 +/cmPropertyDefinitionMap.cxx/1.5/Tue Oct 23 14:40:49 2007//T1.5 +/cmPropertyDefinitionMap.h/1.3/Mon Oct 22 16:48:39 2007//T1.3 +/cmSourceFileLocation.cxx/1.2/Mon Jun 18 15:59:23 2007//T1.2 +/cmSourceFileLocation.h/1.2/Mon Jun 18 15:59:23 2007//T1.2 +/cmSourceGroup.cxx/1.19/Fri Aug 24 18:21:49 2007//T1.19 +/cmSourceGroup.h/1.19/Wed Mar 15 16:02:07 2006//T1.19 +/cmStandardLexer.h/1.4/Thu Aug 24 13:34:53 2006//T1.4 +/cmVariableWatch.cxx/1.5/Wed Apr 11 19:13:05 2007//T1.5 +/cmVariableWatch.h/1.10/Thu May 17 21:40:59 2007//T1.10 +/cmVersion.cxx/1.1027/Thu Nov 15 02:17:53 2007//T1.1027 +/cmVersion.h/1.2/Fri Jun 17 13:49:06 2005//T1.2 +/cmWin32ProcessExecution.cxx/1.32/Thu Sep 27 18:16:20 2007//T1.32 +/cmWin32ProcessExecution.h/1.13/Fri May 12 18:12:13 2006//T1.13 +/cmXCode21Object.cxx/1.7/Tue Aug 14 15:45:14 2007//T1.7 +/cmXCode21Object.h/1.4/Tue Aug 14 15:45:14 2007//T1.4 +/cmXCodeObject.cxx/1.24/Tue Aug 14 15:45:14 2007//T1.24 +/cmXCodeObject.h/1.18/Fri Jul 27 14:55:24 2007//T1.18 +/cmXMLParser.cxx/1.8/Tue Jul 31 01:38:50 2007//T1.8 +/cmXMLParser.h/1.4/Thu Jul 26 18:36:06 2007//T1.4 +/cmaketest.h.in/1.7/Fri Jul 27 14:55:24 2007//T1.7 +/cmakewizard.cxx/1.23/Wed Mar 15 16:02:07 2006//T1.23 +/cmakewizard.h/1.14/Wed Mar 15 16:02:08 2006//T1.14 +/cmakexbuild.cxx/1.5/Fri Jul 27 14:55:24 2007//T1.5 +/cmw9xcom.cxx/1.5/Wed Dec 11 16:49:08 2002//T1.5 +D/CPack//// +D/CTest//// +D/CursesDialog//// +D/FLTKDialog//// +D/MFCDialog//// +D/QtDialog//// +D/WXDialog//// +D/kwsys//// +/cmCommands.cxx/1.120/Sun Dec 16 12:36:23 2007//T1.120 +/cmCoreTryCompile.cxx/1.5/Sun Dec 16 12:36:57 2007//T1.5 +/cmDumpDocumentation.cxx/1.20/Sun Dec 16 12:37:45 2007//T1.20 +/cmakemain.cxx/1.76/Sun Dec 16 12:37:48 2007//T1.76 +/cmCTest.h/1.99/Sun Dec 16 12:37:50 2007//T1.99 +/cmDependsC.cxx/1.33/Sun Dec 16 12:38:12 2007//T1.33 +/cmMakeDepend.cxx/1.46/Sun Dec 16 12:38:13 2007//T1.46 +/cmGlobalVisualStudio9Win64Generator.cxx/1.1/Mon Dec 17 19:43:11 2007//T1.1 +/cmGlobalVisualStudio9Win64Generator.h/1.1/Mon Dec 17 19:43:11 2007//T1.1 +/cmMakefileUtilityTargetGenerator.cxx/1.7/Tue Dec 25 11:34:58 2007//T1.7 +/cmGlobalVisualStudioGenerator.h/1.6/Tue Dec 25 11:35:14 2007//T1.6 +/cmGlobalVisualStudio8Generator.h/1.12/Tue Dec 25 11:35:16 2007//T1.12 +/cmDepends.h/1.14/Mon Dec 31 08:23:26 2007//T1.14 +/cmDepends.cxx/1.17/Mon Dec 31 08:23:28 2007//T1.17 +/cmStandardIncludes.h/1.71/Mon Dec 31 08:23:47 2007//T1.71 +/cmFileTimeComparison.h/1.3/Fri Feb 1 16:15:52 2008//T1.3 +/cmFileTimeComparison.cxx/1.7/Fri Feb 1 16:15:53 2008//T1.7 +/cmDependsFortranParser.cxx/1.16/Sat Feb 2 02:46:29 2008//T1.16 +/cmDependsFortranParser.y/1.18/Sat Feb 2 02:46:30 2008//T1.18 +/cmDependsFortran.h/1.14/Sat Feb 2 02:46:59 2008//T1.14 +/cmGlobalNMakeMakefileGenerator.cxx/1.26/Sat Feb 2 02:48:08 2008//T1.26 +/cmLocalUnixMakefileGenerator3.h/1.82/Sat Feb 2 02:48:09 2008//T1.82 +/cmGlobalXCodeGenerator.h/1.52/Sat Feb 2 02:48:34 2008//T1.52 +/cmDocumentation.cxx/1.65/Sat Feb 2 02:48:51 2008//T1.65 +/cmLocalVisualStudioGenerator.cxx/1.16/Sat Feb 2 02:49:13 2008//T1.16 +/cmFindCommon.cxx/1.1/Thu Jan 17 14:02:31 2008//T1.1 +/cmFindCommon.h/1.1/Thu Jan 17 14:02:31 2008//T1.1 +/cmFindBase.h/1.13/Sat Feb 2 02:49:55 2008//T1.13 +/cmFindBase.cxx/1.34/Sat Feb 2 02:50:54 2008//T1.34 +/cmProperty.cxx/1.2/Sat Feb 2 02:50:56 2008//T1.2 +/cmPropertyMap.h/1.2/Sat Feb 2 02:50:56 2008//T1.2 +/cmProperty.h/1.3/Sat Feb 2 02:50:57 2008//T1.3 +/cmTest.h/1.6/Sat Feb 2 02:50:58 2008//T1.6 +/cmTest.cxx/1.9/Sat Feb 2 02:50:59 2008//T1.9 +/cmPropertyMap.cxx/1.11/Sat Feb 2 02:51:01 2008//T1.11 +/cmake.h/1.99/Sat Feb 2 02:51:06 2008//T1.99 +/cmLocalUnixMakefileGenerator3.cxx/1.235/Sat Feb 2 02:51:47 2008//T1.235 +/cmGlobalVisualStudio9Generator.h/1.3/Sat Feb 2 02:52:10 2008//T1.3 +/cmGlobalVisualStudio9Generator.cxx/1.5/Sat Feb 2 02:52:12 2008//T1.5 +/cmDependsFortran.cxx/1.46/Sat Feb 2 02:52:29 2008//T1.46 +/cmBreakCommand.cxx/1.1/Wed Jan 23 15:28:26 2008//T1.1 +/cmBreakCommand.h/1.1/Wed Jan 23 15:28:26 2008//T1.1 +/cmExecutionStatus.h/1.1/Wed Jan 23 15:28:26 2008//T1.1 +/cmReturnCommand.cxx/1.1/Wed Jan 23 15:28:26 2008//T1.1 +/cmElseIfCommand.cxx/1.2/Sat Feb 2 02:54:12 2008//T1.2 +/cmEndFunctionCommand.cxx/1.2/Sat Feb 2 02:54:13 2008//T1.2 +/cmEndFunctionCommand.h/1.2/Sat Feb 2 02:54:13 2008//T1.2 +/cmEndMacroCommand.cxx/1.2/Sat Feb 2 02:54:13 2008//T1.2 +/cmDefinePropertyCommand.cxx/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmElseIfCommand.h/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmEndMacroCommand.h/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmEndWhileCommand.cxx/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmFunctionCommand.h/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmMathCommand.cxx/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmSetPropertyCommand.h/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmVariableWatchCommand.cxx/1.3/Sat Feb 2 02:54:14 2008//T1.3 +/cmFunctionCommand.cxx/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmGetTestPropertyCommand.cxx/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmRemoveDefinitionsCommand.cxx/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmVariableWatchCommand.h/1.4/Sat Feb 2 02:54:16 2008//T1.4 +/cmDefinePropertyCommand.h/1.5/Sat Feb 2 02:54:17 2008//T1.5 +/cmEnableLanguageCommand.cxx/1.5/Sat Feb 2 02:54:17 2008//T1.5 +/cmGetTestPropertyCommand.h/1.5/Sat Feb 2 02:54:17 2008//T1.5 +/cmMathCommand.h/1.5/Sat Feb 2 02:54:17 2008//T1.5 +/cmEndWhileCommand.h/1.6/Sat Feb 2 02:54:18 2008//T1.6 +/cmExecuteProcessCommand.h/1.6/Sat Feb 2 02:54:18 2008//T1.6 +/cmGetPropertyCommand.h/1.6/Sat Feb 2 02:54:18 2008//T1.6 +/cmSeparateArgumentsCommand.cxx/1.6/Sat Feb 2 02:54:18 2008//T1.6 +/cmAddSubDirectoryCommand.h/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmRemoveCommand.cxx/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmRemoveDefinitionsCommand.h/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmSetDirectoryPropertiesCommand.cxx/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmSetDirectoryPropertiesCommand.h/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmSetTestsPropertiesCommand.cxx/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmSubdirDependsCommand.cxx/1.7/Sat Feb 2 02:54:19 2008//T1.7 +/cmEnableLanguageCommand.h/1.8/Sat Feb 2 02:54:21 2008//T1.8 +/cmGetCMakePropertyCommand.cxx/1.8/Sat Feb 2 02:54:21 2008//T1.8 +/cmGetCMakePropertyCommand.h/1.8/Sat Feb 2 02:54:21 2008//T1.8 +/cmGetDirectoryPropertyCommand.h/1.8/Sat Feb 2 02:54:21 2008//T1.8 +/cmIncludeExternalMSProjectCommand.h/1.8/Sat Feb 2 02:54:21 2008//T1.8 +/cmSetTestsPropertiesCommand.h/1.8/Sat Feb 2 02:54:21 2008//T1.8 +/cmExportLibraryDependencies.h/1.9/Sat Feb 2 02:54:22 2008//T1.9 +/cmLoadCommandCommand.h/1.9/Sat Feb 2 02:54:22 2008//T1.9 +/cmSeparateArgumentsCommand.h/1.9/Sat Feb 2 02:54:22 2008//T1.9 +/cmWhileCommand.h/1.9/Sat Feb 2 02:54:22 2008//T1.9 +/cmAddDependenciesCommand.h/1.10/Sat Feb 2 02:54:23 2008//T1.10 +/cmCMakeMinimumRequired.h/1.10/Sat Feb 2 02:54:23 2008//T1.10 +/cmEndForEachCommand.cxx/1.10/Sat Feb 2 02:54:23 2008//T1.10 +/cmExecuteProcessCommand.cxx/1.10/Sat Feb 2 02:54:23 2008//T1.10 +/cmIncludeRegularExpressionCommand.cxx/1.10/Sat Feb 2 02:54:24 2008//T1.10 +/cmMakeDirectoryCommand.cxx/1.10/Sat Feb 2 02:54:24 2008//T1.10 +/cmWhileCommand.cxx/1.10/Sat Feb 2 02:54:24 2008//T1.10 +/cmAddSubDirectoryCommand.cxx/1.11/Sat Feb 2 02:54:25 2008//T1.11 +/cmGetDirectoryPropertyCommand.cxx/1.11/Sat Feb 2 02:54:25 2008//T1.11 +/cmRemoveCommand.h/1.11/Sat Feb 2 02:54:25 2008//T1.11 +/cmSiteNameCommand.h/1.11/Sat Feb 2 02:54:25 2008//T1.11 +/cmFunctionBlocker.h/1.12/Sat Feb 2 02:54:26 2008//T1.12 +/cmGetTargetPropertyCommand.h/1.12/Sat Feb 2 02:54:26 2008//T1.12 +/cmMarkAsAdvancedCommand.h/1.12/Sat Feb 2 02:54:26 2008//T1.12 +/cmOutputRequiredFilesCommand.h/1.12/Sat Feb 2 02:54:26 2008//T1.12 +/cmSubdirDependsCommand.h/1.12/Sat Feb 2 02:54:26 2008//T1.12 +/cmWriteFileCommand.h/1.12/Sat Feb 2 02:54:26 2008//T1.12 +/cmBuildCommand.h/1.13/Sat Feb 2 02:54:27 2008//T1.13 +/cmCMakeMinimumRequired.cxx/1.13/Sat Feb 2 02:54:27 2008//T1.13 +/cmEndForEachCommand.h/1.13/Sat Feb 2 02:54:27 2008//T1.13 +/cmEndIfCommand.h/1.13/Sat Feb 2 02:54:27 2008//T1.13 +/cmGetSourceFilePropertyCommand.h/1.13/Sat Feb 2 02:54:27 2008//T1.13 +/cmLinkDirectoriesCommand.cxx/1.13/Sat Feb 2 02:54:27 2008//T1.13 +/cmLinkDirectoriesCommand.h/1.13/Sat Feb 2 02:54:27 2008//T1.13 +/cmMakeDirectoryCommand.h/1.13/Sat Feb 2 02:54:28 2008//T1.13 +/cmAddDefinitionsCommand.cxx/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmAddDefinitionsCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmElseCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmGetFilenameComponentCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmIncludeRegularExpressionCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmListCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmLoadCacheCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmQTWrapUICommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmTargetLinkLibrariesCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmUseMangledMesaCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmUtilitySourceCommand.h/1.14/Sat Feb 2 02:54:29 2008//T1.14 +/cmEnableTestingCommand.h/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmEndIfCommand.cxx/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmInstallTargetsCommand.cxx/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmMarkAsAdvancedCommand.cxx/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmQTWrapCPPCommand.h/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmSetSourceFilesPropertiesCommand.h/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmTryRunCommand.h/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmVariableRequiresCommand.cxx/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmVariableRequiresCommand.h/1.15/Sat Feb 2 02:54:30 2008//T1.15 +/cmAddTestCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmAuxSourceDirectoryCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmBuildNameCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmCreateTestSourceList.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmFLTKWrapUICommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmIncludeDirectoryCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmInstallTargetsCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmMacroCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmMessageCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmOptionCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmOutputRequiredFilesCommand.cxx/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmProjectCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmSourceGroupCommand.h/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmWriteFileCommand.cxx/1.16/Sat Feb 2 02:54:31 2008//T1.16 +/cmGetFilenameComponentCommand.cxx/1.17/Sat Feb 2 02:54:32 2008//T1.17 +/cmIncludeCommand.h/1.17/Sat Feb 2 02:54:32 2008//T1.17 +/cmListCommand.cxx/1.17/Sat Feb 2 02:54:32 2008//T1.17 +/cmFindPathCommand.h/1.18/Sat Feb 2 02:54:33 2008//T1.18 +/cmSetSourceFilesPropertiesCommand.cxx/1.18/Sat Feb 2 02:54:33 2008//T1.18 +/cmUseMangledMesaCommand.cxx/1.18/Sat Feb 2 02:54:33 2008//T1.18 +/cmBuildNameCommand.cxx/1.19/Sat Feb 2 02:54:34 2008//T1.19 +/cmEnableTestingCommand.cxx/1.19/Sat Feb 2 02:54:34 2008//T1.19 +/cmExportLibraryDependencies.cxx/1.19/Sat Feb 2 02:54:34 2008//T1.19 +/cmForEachCommand.h/1.19/Sat Feb 2 02:54:34 2008//T1.19 +/cmLoadCacheCommand.cxx/1.19/Sat Feb 2 02:54:34 2008//T1.19 +/cmSubdirCommand.cxx/1.19/Sat Feb 2 02:54:34 2008//T1.19 +/cmIncludeCommand.cxx/1.20/Sat Feb 2 02:54:35 2008//T1.20 +/cmInstallProgramsCommand.h/1.20/Sat Feb 2 02:54:35 2008//T1.20 +/cmLinkLibrariesCommand.h/1.20/Sat Feb 2 02:54:35 2008//T1.20 +/cmSetCommand.h/1.20/Sat Feb 2 02:54:35 2008//T1.20 +/cmSourceGroupCommand.cxx/1.20/Sat Feb 2 02:54:35 2008//T1.20 +/cmFindProgramCommand.h/1.21/Sat Feb 2 02:54:36 2008//T1.21 +/cmSubdirCommand.h/1.21/Sat Feb 2 02:54:36 2008//T1.21 +/cmAddCustomTargetCommand.h/1.22/Sat Feb 2 02:54:37 2008//T1.22 +/cmConfigureFileCommand.h/1.22/Sat Feb 2 02:54:37 2008//T1.22 +/cmMessageCommand.cxx/1.22/Sat Feb 2 02:54:37 2008//T1.22 +/cmBootstrapCommands.cxx/1.23/Sat Feb 2 02:54:38 2008//T1.23 +/cmExecProgramCommand.cxx/1.23/Sat Feb 2 02:54:38 2008//T1.23 +/cmExecProgramCommand.h/1.23/Sat Feb 2 02:54:38 2008//T1.23 +/cmInstallFilesCommand.h/1.23/Sat Feb 2 02:54:38 2008//T1.23 +/cmOptionCommand.cxx/1.23/Sat Feb 2 02:54:38 2008//T1.23 +/cmBuildCommand.cxx/1.24/Sat Feb 2 02:54:39 2008//T1.24 +/cmLinkLibrariesCommand.cxx/1.24/Sat Feb 2 02:54:39 2008//T1.24 +/cmSiteNameCommand.cxx/1.24/Sat Feb 2 02:54:39 2008//T1.24 +/cmProjectCommand.cxx/1.25/Sat Feb 2 02:54:40 2008//T1.25 +/cmTargetLinkLibrariesCommand.cxx/1.25/Sat Feb 2 02:54:40 2008//T1.25 +/cmUtilitySourceCommand.cxx/1.25/Sat Feb 2 02:54:40 2008//T1.25 +/cmAuxSourceDirectoryCommand.cxx/1.26/Sat Feb 2 02:54:41 2008//T1.26 +/cmCommand.h/1.26/Sat Feb 2 02:54:41 2008//T1.26 +/cmElseCommand.cxx/1.26/Sat Feb 2 02:54:41 2008//T1.26 +/cmForEachCommand.cxx/1.26/Sat Feb 2 02:54:42 2008//T1.26 +/cmQTWrapUICommand.cxx/1.26/Sat Feb 2 02:54:42 2008//T1.26 +/cmAddCustomTargetCommand.cxx/1.27/Sat Feb 2 02:54:43 2008//T1.27 +/cmIncludeDirectoryCommand.cxx/1.27/Sat Feb 2 02:54:43 2008//T1.27 +/cmQTWrapCPPCommand.cxx/1.27/Sat Feb 2 02:54:43 2008//T1.27 +/cmStringCommand.cxx/1.27/Sat Feb 2 02:54:43 2008//T1.27 +/cmTryCompileCommand.h/1.27/Sat Feb 2 02:54:44 2008//T1.27 +/cmStringCommand.h/1.28/Sat Feb 2 02:54:45 2008//T1.28 +/cmAddTestCommand.cxx/1.29/Sat Feb 2 02:54:46 2008//T1.29 +/cmLoadCommandCommand.cxx/1.29/Sat Feb 2 02:54:46 2008//T1.29 +/cmConfigureFileCommand.cxx/1.30/Sat Feb 2 02:54:49 2008//T1.30 +/cmSetTargetPropertiesCommand.h/1.31/Sat Feb 2 02:54:51 2008//T1.31 +/cmFileCommand.h/1.32/Sat Feb 2 02:54:52 2008//T1.32 +/cmSetCommand.cxx/1.32/Sat Feb 2 02:54:52 2008//T1.32 +/cmMacroCommand.cxx/1.34/Sat Feb 2 02:54:56 2008//T1.34 +/cmFLTKWrapUICommand.cxx/1.38/Sat Feb 2 02:54:58 2008//T1.38 +/cmFindPathCommand.cxx/1.41/Sat Feb 2 02:55:00 2008//T1.41 +/cmTryRunCommand.cxx/1.41/Sat Feb 2 02:55:00 2008//T1.41 +/cmCPluginAPI.cxx/1.42/Sat Feb 2 02:55:01 2008//T1.42 +/cmFindProgramCommand.cxx/1.42/Sat Feb 2 02:55:01 2008//T1.42 +/cmCreateTestSourceList.cxx/1.44/Sat Feb 2 02:55:04 2008//T1.44 +/cmIfCommand.h/1.45/Sat Feb 2 02:55:05 2008//T1.45 +/cmTryCompileCommand.cxx/1.63/Sat Feb 2 02:55:07 2008//T1.63 +/cmIfCommand.cxx/1.82/Sat Feb 2 02:55:09 2008//T1.82 +/cmFileCommand.cxx/1.96/Sat Feb 2 02:55:10 2008//T1.96 +/cmReturnCommand.h/1.2/Sat Feb 2 02:56:00 2008//T1.2 +/cmake.cxx/1.355/Sat Feb 2 02:56:15 2008//T1.355 +/cmSystemTools.h/1.147/Sat Feb 2 02:56:17 2008//T1.147 +/cmSystemTools.cxx/1.361/Sat Feb 2 02:56:30 2008//T1.361 +/cmInstallCommandArguments.cxx/1.3/Sat Feb 2 02:57:02 2008//T1.3 +/cmInstallCommandArguments.h/1.4/Sat Feb 2 02:57:03 2008//T1.4 +/cmInstallExportGenerator.h/1.5/Sat Feb 2 02:57:04 2008//T1.5 +/cmSetPropertyCommand.cxx/1.5/Sat Feb 2 02:57:04 2008//T1.5 +/cmInstallDirectoryGenerator.cxx/1.6/Sat Feb 2 02:57:05 2008//T1.6 +/cmInstallExportGenerator.cxx/1.8/Sat Feb 2 02:57:07 2008//T1.8 +/cmSetTargetPropertiesCommand.cxx/1.9/Sat Feb 2 02:57:08 2008//T1.9 +/cmGlobalVisualStudioGenerator.cxx/1.10/Sat Feb 2 02:57:10 2008//T1.10 +/cmInstallFilesGenerator.cxx/1.10/Sat Feb 2 02:57:10 2008//T1.10 +/cmGetTargetPropertyCommand.cxx/1.11/Sat Feb 2 02:57:11 2008//T1.11 +/cmInstallGenerator.h/1.13/Sat Feb 2 02:57:12 2008//T1.13 +/cmInstallGenerator.cxx/1.15/Sat Feb 2 02:57:13 2008//T1.15 +/cmAddDependenciesCommand.cxx/1.17/Sat Feb 2 02:57:14 2008//T1.17 +/cmAddExecutableCommand.h/1.20/Sat Feb 2 02:57:15 2008//T1.20 +/cmAddLibraryCommand.h/1.21/Sat Feb 2 02:57:16 2008//T1.21 +/cmInstallProgramsCommand.cxx/1.21/Sat Feb 2 02:57:16 2008//T1.21 +/cmIncludeExternalMSProjectCommand.cxx/1.23/Sat Feb 2 02:57:17 2008//T1.23 +/cmInstallFilesCommand.cxx/1.29/Sat Feb 2 02:57:19 2008//T1.29 +/cmAddExecutableCommand.cxx/1.33/Sat Feb 2 02:57:20 2008//T1.33 +/cmAddLibraryCommand.cxx/1.34/Sat Feb 2 02:57:21 2008//T1.34 +/cmGlobalVisualStudio8Generator.cxx/1.34/Sat Feb 2 02:57:21 2008//T1.34 +/cmGlobalVisualStudio6Generator.cxx/1.75/Sat Feb 2 02:57:26 2008//T1.75 +/cmMakefile.h/1.222/Sat Feb 2 02:57:36 2008//T1.222 +/cmInstallCommand.cxx/1.42/Sat Feb 2 02:58:20 2008//T1.42 +/cmInstallCommand.h/1.28/Sat Feb 2 02:58:27 2008//T1.28 +/cmFindPackageCommand.h/1.19/Sat Feb 2 02:58:38 2008//T1.19 +/cmFindPackageCommand.cxx/1.36/Sat Feb 2 02:58:50 2008//T1.36 +/cmInstallTargetGenerator.h/1.22/Sat Feb 2 02:58:56 2008//T1.22 +/cmGlobalXCodeGenerator.cxx/1.183/Sat Feb 2 02:59:01 2008//T1.183 +/cmLocalVisualStudio6Generator.h/1.23/Sat Feb 2 02:59:16 2008//T1.23 +/cmLocalVisualStudio6Generator.cxx/1.141/Sat Feb 2 02:59:19 2008//T1.141 +/cmCacheManager.h/1.48/Sat Feb 2 02:59:23 2008//T1.48 +/cmCacheManager.cxx/1.100/Sat Feb 2 02:59:24 2008//T1.100 +/cmMakefileTargetGenerator.h/1.20/Sat Feb 2 02:59:27 2008//T1.20 +/cmMakefileTargetGenerator.cxx/1.88/Sat Feb 2 02:59:30 2008//T1.88 +/cmMakefileExecutableTargetGenerator.cxx/1.41/Sat Feb 2 02:59:32 2008//T1.41 +/cmMakefileLibraryTargetGenerator.cxx/1.53/Sat Feb 2 02:59:33 2008//T1.53 +/cmLocalGenerator.h/1.102/Sat Feb 2 02:59:34 2008//T1.102 +/cmMakefile.cxx/1.432/Sat Feb 2 02:59:44 2008//T1.432 +/cmGetPropertyCommand.cxx/1.7/Sat Feb 2 02:59:59 2008//T1.7 +/cmGetSourceFilePropertyCommand.cxx/1.14/Sat Feb 2 03:00:00 2008//T1.14 +/cmSourceFile.h/1.25/Sat Feb 2 03:00:01 2008//T1.25 +/cmSourceFile.cxx/1.45/Sat Feb 2 03:00:02 2008//T1.45 +/cmAddCustomCommandCommand.h/1.33/Sat Feb 2 03:00:05 2008//T1.33 +/cmAddCustomCommandCommand.cxx/1.37/Sat Feb 2 03:00:06 2008//T1.37 +/cmGlobalVisualStudio71Generator.h/1.17/Sat Feb 2 03:00:12 2008//T1.17 +/cmGlobalVisualStudio71Generator.cxx/1.47/Sat Feb 2 03:00:16 2008//T1.47 +/cmLocalVisualStudio7Generator.h/1.50/Sat Feb 2 03:00:17 2008//T1.50 +/cmLocalVisualStudio7Generator.cxx/1.217/Sat Feb 2 03:00:22 2008//T1.217 +/cmGlobalVisualStudio7Generator.cxx/1.98/Sat Feb 2 03:00:31 2008//T1.98 +/cmExportCommand.h/1.9/Sat Feb 2 03:00:39 2008//T1.9 +/cmExportCommand.cxx/1.10/Sat Feb 2 03:00:40 2008//T1.10 +/cmGlobalUnixMakefileGenerator3.h/1.54/Sat Feb 2 03:00:56 2008//T1.54 +/cmGlobalGenerator.h/1.105/Sat Feb 2 03:00:57 2008//T1.105 +/cmGlobalUnixMakefileGenerator3.cxx/1.125/Sat Feb 2 03:00:58 2008//T1.125 +/cmFindLibraryCommand.h/1.27/Sat Feb 2 03:01:09 2008//T1.27 +/cmFindLibraryCommand.cxx/1.55/Sat Feb 2 03:01:10 2008//T1.55 +/ctest.cxx/1.102/Sat Feb 2 03:01:25 2008//T1.102 +/cmComputeLinkDepends.h/1.3/Sat Feb 2 03:01:41 2008//T1.3 +/cmCTest.cxx/1.333/Sat Feb 2 03:01:58 2008//T1.333 +/cmGlobalVisualStudio7Generator.h/1.45/Sat Feb 2 03:02:05 2008//T1.45 +/cmOrderRuntimeDirectories.cxx/1.1/Fri Feb 1 13:56:00 2008//T1.1 +/cmOrderRuntimeDirectories.h/1.1/Fri Feb 1 13:56:00 2008//T1.1 +/cmExportInstallFileGenerator.h/1.2/Sat Feb 2 03:02:14 2008//T1.2 +/cmExportBuildFileGenerator.h/1.4/Sat Feb 2 03:02:15 2008//T1.4 +/cmExportBuildFileGenerator.cxx/1.5/Sat Feb 2 03:02:17 2008//T1.5 +/cmComputeLinkDepends.cxx/1.7/Sat Feb 2 03:02:19 2008//T1.7 +/cmExportFileGenerator.h/1.8/Sat Feb 2 03:02:20 2008//T1.8 +/cmExportFileGenerator.cxx/1.10/Sat Feb 2 03:02:21 2008//T1.10 +/cmComputeLinkInformation.h/1.11/Sat Feb 2 03:02:23 2008//T1.11 +/cmDocumentVariables.cxx/1.15/Sat Feb 2 03:02:24 2008//T1.15 +/cmComputeLinkInformation.cxx/1.16/Sat Feb 2 03:02:25 2008//T1.16 +/cmTarget.cxx/1.190/Sat Feb 2 03:02:35 2008//T1.190 +/cmLocalGenerator.cxx/1.264/Sat Feb 2 03:02:38 2008//T1.264 +/CMakeLists.txt/1.390/Sat Feb 2 03:02:39 2008//T1.390 +/cmInstallTargetGenerator.cxx/1.56/Sat Feb 2 03:03:16 2008//T1.56 +/cmTarget.h/1.104/Sat Feb 2 03:03:17 2008//T1.104 +/cmExportInstallFileGenerator.cxx/1.7/Sat Feb 2 03:03:21 2008//T1.7 +/cmGlobalGenerator.cxx/1.224/Sat Feb 2 03:03:23 2008//T1.224 diff --git a/CMakeLua/Source/CVS/Repository b/CMakeLua/Source/CVS/Repository new file mode 100644 index 0000000..d09c154 --- /dev/null +++ b/CMakeLua/Source/CVS/Repository @@ -0,0 +1 @@ +CMake/Source diff --git a/CMakeLua/Source/CVS/Root b/CMakeLua/Source/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/CVS/Tag b/CMakeLua/Source/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/CVS/Template b/CMakeLua/Source/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/CursesDialog/.NoDartCoverage b/CMakeLua/Source/CursesDialog/.NoDartCoverage new file mode 100644 index 0000000..3c99729 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/.NoDartCoverage @@ -0,0 +1 @@ +# do not do coverage in this directory diff --git a/CMakeLua/Source/CursesDialog/CMakeLists.txt b/CMakeLua/Source/CursesDialog/CMakeLists.txt new file mode 100644 index 0000000..a6a16ad --- /dev/null +++ b/CMakeLua/Source/CursesDialog/CMakeLists.txt @@ -0,0 +1,26 @@ + +SET( CURSES_SRCS + CursesDialog/cmCursesBoolWidget + CursesDialog/cmCursesCacheEntryComposite + CursesDialog/cmCursesDummyWidget + CursesDialog/cmCursesFilePathWidget + CursesDialog/cmCursesForm + CursesDialog/cmCursesLabelWidget + CursesDialog/cmCursesLongMessageForm + CursesDialog/cmCursesMainForm + CursesDialog/cmCursesPathWidget + CursesDialog/cmCursesStringWidget + CursesDialog/cmCursesWidget + CursesDialog/ccmake + ) + +INCLUDE_DIRECTORIES(${CMake_SOURCE_DIR}/Source/CursesDialog/form + ${CMake_BINARY_DIR}/Source/CursesDialog/form) +INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH}) + + +ADD_EXECUTABLE(ccmake ${CURSES_SRCS} ) +TARGET_LINK_LIBRARIES(ccmake CMakeLib) +TARGET_LINK_LIBRARIES(ccmake cmForm) + +INSTALL_TARGETS(/bin ccmake) diff --git a/CMakeLua/Source/CursesDialog/CVS/Entries b/CMakeLua/Source/CursesDialog/CVS/Entries new file mode 100644 index 0000000..a9e01eb --- /dev/null +++ b/CMakeLua/Source/CursesDialog/CVS/Entries @@ -0,0 +1,27 @@ +/.NoDartCoverage/1.1/Mon Jun 20 21:37:40 2005//T1.1 +/cmCursesBoolWidget.cxx/1.8/Thu Mar 16 15:44:55 2006//T1.8 +/cmCursesBoolWidget.h/1.4/Wed Oct 23 22:03:27 2002//T1.4 +/cmCursesCacheEntryComposite.cxx/1.8/Thu Mar 16 15:44:55 2006//T1.8 +/cmCursesCacheEntryComposite.h/1.9/Thu Mar 16 15:44:55 2006//T1.9 +/cmCursesDummyWidget.cxx/1.6/Thu Mar 16 15:44:55 2006//T1.6 +/cmCursesDummyWidget.h/1.4/Wed Oct 23 22:03:27 2002//T1.4 +/cmCursesFilePathWidget.cxx/1.5/Thu Mar 16 15:44:55 2006//T1.5 +/cmCursesFilePathWidget.h/1.4/Tue Nov 5 13:52:31 2002//T1.4 +/cmCursesForm.cxx/1.5/Thu Mar 16 15:44:55 2006//T1.5 +/cmCursesForm.h/1.9/Thu Mar 16 15:44:55 2006//T1.9 +/cmCursesLabelWidget.cxx/1.7/Thu Mar 16 15:44:55 2006//T1.7 +/cmCursesLabelWidget.h/1.7/Wed Oct 23 22:03:27 2002//T1.7 +/cmCursesLongMessageForm.cxx/1.16/Wed Nov 29 22:25:46 2006//T1.16 +/cmCursesLongMessageForm.h/1.5/Thu Mar 16 15:44:55 2006//T1.5 +/cmCursesMainForm.cxx/1.71/Wed Nov 29 22:17:16 2006//T1.71 +/cmCursesMainForm.h/1.24/Thu Mar 16 15:44:55 2006//T1.24 +/cmCursesPathWidget.cxx/1.10/Thu Mar 16 15:44:55 2006//T1.10 +/cmCursesPathWidget.h/1.5/Thu Mar 16 15:44:55 2006//T1.5 +/cmCursesStandardIncludes.h/1.16/Mon Aug 27 13:01:14 2007//T1.16 +/cmCursesStringWidget.cxx/1.13/Thu Mar 16 15:44:55 2006//T1.13 +/cmCursesStringWidget.h/1.6/Thu Mar 16 15:44:55 2006//T1.6 +/cmCursesWidget.cxx/1.5/Thu Mar 16 15:44:55 2006//T1.5 +/cmCursesWidget.h/1.8/Thu Mar 16 15:44:55 2006//T1.8 +D/form//// +/ccmake.cxx/1.37/Sun Dec 16 12:37:46 2007//T1.37 +/CMakeLists.txt/1.15/Sat Feb 2 02:55:54 2008//T1.15 diff --git a/CMakeLua/Source/CursesDialog/CVS/Repository b/CMakeLua/Source/CursesDialog/CVS/Repository new file mode 100644 index 0000000..307cfb6 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/CursesDialog diff --git a/CMakeLua/Source/CursesDialog/CVS/Root b/CMakeLua/Source/CursesDialog/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/CursesDialog/CVS/Tag b/CMakeLua/Source/CursesDialog/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/CursesDialog/CVS/Template b/CMakeLua/Source/CursesDialog/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/CursesDialog/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/CursesDialog/ccmake.cxx b/CMakeLua/Source/CursesDialog/ccmake.cxx new file mode 100644 index 0000000..f19c3d2 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/ccmake.cxx @@ -0,0 +1,221 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: ccmake.cxx,v $ + Language: C++ + Date: $Date: 2007/12/13 22:56:50 $ + Version: $Revision: 1.37 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "../cmCacheManager.h" +#include "../cmSystemTools.h" +#include "../cmake.h" +#include "../cmDocumentation.h" + +#include +#include + +#include "cmCursesMainForm.h" +#include "cmCursesStandardIncludes.h" + +#include + +//---------------------------------------------------------------------------- +static const char * cmDocumentationName[][3] = +{ + {0, + " ccmake - Curses Interface for CMake.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationUsage[][3] = +{ + {0, + " ccmake \n" + " ccmake ", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationDescription[][3] = +{ + {0, + "The \"ccmake\" executable is the CMake curses interface. Project " + "configuration settings may be specified interactively through " + "this GUI. Brief instructions are provided at the bottom of the " + "terminal when the program is running.", 0}, + CMAKE_STANDARD_INTRODUCTION, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationOptions[][3] = +{ + CMAKE_STANDARD_OPTIONS_TABLE, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationSeeAlso[][3] = +{ + {0, "cmake", 0}, + {0, "ctest", 0}, + {0, 0, 0} +}; + +cmCursesForm* cmCursesForm::CurrentForm=0; + +extern "C" +{ + +void onsig(int) +{ + if (cmCursesForm::CurrentForm) + { + endwin(); + initscr(); /* Initialization */ + noecho(); /* Echo off */ + cbreak(); /* nl- or cr not needed */ + keypad(stdscr,TRUE); /* Use key symbols as + KEY_DOWN*/ + refresh(); + int x,y; + getmaxyx(stdscr, y, x); + cmCursesForm::CurrentForm->Render(1,1,x,y); + cmCursesForm::CurrentForm->UpdateStatusBar(); + } + signal(SIGWINCH, onsig); +} + +} + +void CMakeErrorHandler(const char* message, const char* title, bool&, void* clientData) +{ + cmCursesForm* self = static_cast( clientData ); + self->AddError(message, title); +} + +int main(int argc, char** argv) +{ + cmSystemTools::FindExecutableDirectory(argv[0]); + cmDocumentation doc; + if(doc.CheckOptions(argc, argv)) + { + cmake hcm; + std::vector commands; + std::vector compatCommands; + std::vector generators; + hcm.GetCommandDocumentation(commands, true, false); + hcm.GetCommandDocumentation(compatCommands, false, true); + hcm.GetGeneratorDocumentation(generators); + doc.SetName("ccmake"); + doc.SetSection("Name",cmDocumentationName); + doc.SetSection("Usage",cmDocumentationUsage); + doc.SetSection("Description",cmDocumentationDescription); + doc.SetSection("Generators",generators); + doc.SetSection("Options",cmDocumentationOptions); + doc.SetSection("Command",commands); + doc.SetSection("Compatibility Commands",compatCommands); + doc.SetSeeAlsoList(cmDocumentationSeeAlso); + return doc.PrintRequestedDocumentation(std::cout)? 0:1; + } + + bool debug = false; + unsigned int i; + int j; + std::vector args; + for(j =0; j < argc; ++j) + { + if(strcmp(argv[j], "-debug") == 0) + { + debug = true; + } + else + { + args.push_back(argv[j]); + } + } + + std::string cacheDir = cmSystemTools::GetCurrentWorkingDirectory(); + for(i=1; i < args.size(); ++i) + { + std::string arg = args[i]; + if(arg.find("-B",0) == 0) + { + cacheDir = arg.substr(2); + } + } + + cmSystemTools::DisableRunCommandOutput(); + + if (debug) + { + cmCursesForm::DebugStart(); + } + + initscr(); /* Initialization */ + noecho(); /* Echo off */ + cbreak(); /* nl- or cr not needed */ + keypad(stdscr,TRUE); /* Use key symbols as + KEY_DOWN*/ + + signal(SIGWINCH, onsig); + + int x,y; + getmaxyx(stdscr, y, x); + if ( x < cmCursesMainForm::MIN_WIDTH || + y < cmCursesMainForm::MIN_HEIGHT ) + { + endwin(); + std::cerr << "Window is too small. A size of at least " + << cmCursesMainForm::MIN_WIDTH << " x " + << cmCursesMainForm::MIN_HEIGHT + << " is required to run ccmake." << std::endl; + return 1; + } + + + cmCursesMainForm* myform; + + myform = new cmCursesMainForm(args, x); + if(myform->LoadCache(cacheDir.c_str())) + { + curses_clear(); + touchwin(stdscr); + endwin(); + delete myform; + std::cerr << "Error running cmake::LoadCache(). Aborting.\n"; + return 1; + } + + cmSystemTools::SetErrorCallback(CMakeErrorHandler, myform); + + cmCursesForm::CurrentForm = myform; + + myform->InitializeUI(); + if ( myform->Configure(1) == 0 ) + { + myform->Render(1, 1, x, y); + myform->HandleInput(); + } + + // Need to clean-up better + curses_clear(); + touchwin(stdscr); + endwin(); + delete cmCursesForm::CurrentForm; + cmCursesForm::CurrentForm = 0; + + std::cout << std::endl << std::endl; + + return 0; + +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesBoolWidget.cxx b/CMakeLua/Source/CursesDialog/cmCursesBoolWidget.cxx new file mode 100644 index 0000000..13d5e16 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesBoolWidget.cxx @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesBoolWidget.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesBoolWidget.h" +#include "cmCursesMainForm.h" + +cmCursesBoolWidget::cmCursesBoolWidget(int width, int height, + int left, int top) : + cmCursesWidget(width, height, left, top) +{ + this->Type = cmCacheManager::BOOL; + set_field_fore(this->Field, A_NORMAL); + set_field_back(this->Field, A_STANDOUT); + field_opts_off(this->Field, O_STATIC); + this->SetValueAsBool(false); +} + +bool cmCursesBoolWidget::HandleInput(int& key, cmCursesMainForm*, WINDOW* w) +{ + + // 10 == enter + if (key == 10 || key == KEY_ENTER) + { + if (this->GetValueAsBool()) + { + this->SetValueAsBool(false); + } + else + { + this->SetValueAsBool(true); + } + + touchwin(w); + wrefresh(w); + return true; + } + else + { + return false; + } + +} + +void cmCursesBoolWidget::SetValueAsBool(bool value) +{ + if (value) + { + this->SetValue("ON"); + } + else + { + this->SetValue("OFF"); + } +} + +bool cmCursesBoolWidget::GetValueAsBool() +{ + if (this->Value == "ON") + { + return true; + } + else + { + return false; + } +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesBoolWidget.h b/CMakeLua/Source/CursesDialog/cmCursesBoolWidget.h new file mode 100644 index 0000000..3fdb829 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesBoolWidget.h @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesBoolWidget.h,v $ + Language: C++ + Date: $Date: 2002/10/23 22:03:27 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesBoolWidget_h +#define __cmCursesBoolWidget_h + +#include "cmCursesWidget.h" +class cmCursesMainForm; + +class cmCursesBoolWidget : public cmCursesWidget +{ +public: + cmCursesBoolWidget(int width, int height, int left, int top); + + // Description: + // Handle user input. Called by the container of this widget + // when this widget has focus. Returns true if the input was + // handled. + virtual bool HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w); + + // Description: + // Set/Get the value (on/off). + void SetValueAsBool(bool value); + bool GetValueAsBool(); + +protected: + cmCursesBoolWidget(const cmCursesBoolWidget& from); + void operator=(const cmCursesBoolWidget&); + +}; + +#endif // __cmCursesBoolWidget_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.cxx b/CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.cxx new file mode 100644 index 0000000..a09dd3b --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.cxx @@ -0,0 +1,107 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesCacheEntryComposite.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesCacheEntryComposite.h" +#include "cmCursesStringWidget.h" +#include "cmCursesLabelWidget.h" +#include "cmCursesBoolWidget.h" +#include "cmCursesPathWidget.h" +#include "cmCursesFilePathWidget.h" +#include "cmCursesDummyWidget.h" +#include "../cmSystemTools.h" + +cmCursesCacheEntryComposite::cmCursesCacheEntryComposite(const char* key, + int labelwidth, + int entrywidth) : + Key(key), LabelWidth(labelwidth), EntryWidth(entrywidth) +{ + this->Label = new cmCursesLabelWidget(this->LabelWidth, 1, 1, 1, key); + this->IsNewLabel = new cmCursesLabelWidget(1, 1, 1, 1, " "); + this->Entry = 0; +} + +cmCursesCacheEntryComposite::cmCursesCacheEntryComposite( + const char* key, const cmCacheManager::CacheIterator& it, bool isNew, + int labelwidth, int entrywidth) + : Key(key), LabelWidth(labelwidth), EntryWidth(entrywidth) +{ + this->Label = new cmCursesLabelWidget(this->LabelWidth, 1, 1, 1, key); + if (isNew) + { + this->IsNewLabel = new cmCursesLabelWidget(1, 1, 1, 1, "*"); + } + else + { + this->IsNewLabel = new cmCursesLabelWidget(1, 1, 1, 1, " "); + } + + this->Entry = 0; + switch ( it.GetType() ) + { + case cmCacheManager::BOOL: + this->Entry = new cmCursesBoolWidget(this->EntryWidth, 1, 1, 1); + if (cmSystemTools::IsOn(it.GetValue())) + { + static_cast(this->Entry)->SetValueAsBool(true); + } + else + { + static_cast(this->Entry)->SetValueAsBool(false); + } + break; + case cmCacheManager::PATH: + this->Entry = new cmCursesPathWidget(this->EntryWidth, 1, 1, 1); + static_cast(this->Entry)->SetString( + it.GetValue()); + break; + case cmCacheManager::FILEPATH: + this->Entry = new cmCursesFilePathWidget(this->EntryWidth, 1, 1, 1); + static_cast(this->Entry)->SetString( + it.GetValue()); + break; + case cmCacheManager::STRING: + this->Entry = new cmCursesStringWidget(this->EntryWidth, 1, 1, 1); + static_cast(this->Entry)->SetString( + it.GetValue()); + break; + case cmCacheManager::UNINITIALIZED: + cmSystemTools::Error("Found an undefined variable: ", it.GetName()); + break; + default: + // TODO : put warning message here + break; + } + +} + +cmCursesCacheEntryComposite::~cmCursesCacheEntryComposite() +{ + delete this->Label; + delete this->IsNewLabel; + delete this->Entry; +} + +const char* cmCursesCacheEntryComposite::GetValue() +{ + if (this->Label) + { + return this->Label->GetValue(); + } + else + { + return 0; + } +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.h b/CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.h new file mode 100644 index 0000000..a124499 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesCacheEntryComposite.h @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesCacheEntryComposite.h,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesCacheEntryComposite_h +#define __cmCursesCacheEntryComposite_h + +#include "../cmCacheManager.h" +#include "cmCursesLabelWidget.h" + +class cmCursesCacheEntryComposite +{ +public: + cmCursesCacheEntryComposite(const char* key, int labelwidth, int entrywidth); + cmCursesCacheEntryComposite(const char* key, + const cmCacheManager::CacheIterator& it, + bool isNew, int labelwidth, int entrywidth); + ~cmCursesCacheEntryComposite(); + const char* GetValue(); + + friend class cmCursesMainForm; + +protected: + cmCursesCacheEntryComposite(const cmCursesCacheEntryComposite& from); + void operator=(const cmCursesCacheEntryComposite&); + + cmCursesLabelWidget* Label; + cmCursesLabelWidget* IsNewLabel; + cmCursesWidget* Entry; + std::string Key; + int LabelWidth; + int EntryWidth; +}; + +#endif // __cmCursesCacheEntryComposite_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesDummyWidget.cxx b/CMakeLua/Source/CursesDialog/cmCursesDummyWidget.cxx new file mode 100644 index 0000000..acafa35 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesDummyWidget.cxx @@ -0,0 +1,31 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesDummyWidget.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesDummyWidget.h" + +cmCursesDummyWidget::cmCursesDummyWidget(int width, int height, + int left, int top) : + cmCursesWidget(width, height, left, top) +{ + this->Type = cmCacheManager::INTERNAL; +} + + +bool cmCursesDummyWidget::HandleInput(int&, cmCursesMainForm*, WINDOW* ) +{ + return false; +} + diff --git a/CMakeLua/Source/CursesDialog/cmCursesDummyWidget.h b/CMakeLua/Source/CursesDialog/cmCursesDummyWidget.h new file mode 100644 index 0000000..04eb27a --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesDummyWidget.h @@ -0,0 +1,41 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesDummyWidget.h,v $ + Language: C++ + Date: $Date: 2002/10/23 22:03:27 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesDummyWidget_h +#define __cmCursesDummyWidget_h + +#include "cmCursesWidget.h" + +class cmCursesMainForm; + +class cmCursesDummyWidget : public cmCursesWidget +{ +public: + cmCursesDummyWidget(int width, int height, int left, int top); + + // Description: + // Handle user input. Called by the container of this widget + // when this widget has focus. Returns true if the input was + // handled. + virtual bool HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w); + +protected: + cmCursesDummyWidget(const cmCursesDummyWidget& from); + void operator=(const cmCursesDummyWidget&); + +}; + +#endif // __cmCursesDummyWidget_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.cxx b/CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.cxx new file mode 100644 index 0000000..6b46396 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.cxx @@ -0,0 +1,25 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesFilePathWidget.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesFilePathWidget.h" + +cmCursesFilePathWidget::cmCursesFilePathWidget(int width, int height, + int left, int top) : + cmCursesPathWidget(width, height, left, top) +{ + this->Type = cmCacheManager::FILEPATH; +} + diff --git a/CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.h b/CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.h new file mode 100644 index 0000000..dbd2736 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesFilePathWidget.h @@ -0,0 +1,33 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesFilePathWidget.h,v $ + Language: C++ + Date: $Date: 2002/11/05 13:52:31 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesFilePathWidget_h +#define __cmCursesFilePathWidget_h + +#include "cmCursesPathWidget.h" + +class cmCursesFilePathWidget : public cmCursesPathWidget +{ +public: + cmCursesFilePathWidget(int width, int height, int left, int top); + +protected: + cmCursesFilePathWidget(const cmCursesFilePathWidget& from); + void operator=(const cmCursesFilePathWidget&); + +}; + +#endif // __cmCursesFilePathWidget_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesForm.cxx b/CMakeLua/Source/CursesDialog/cmCursesForm.cxx new file mode 100644 index 0000000..b0ee083 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesForm.cxx @@ -0,0 +1,62 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesForm.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesForm.h" + +std::ofstream cmCursesForm::DebugFile; +bool cmCursesForm::Debug = false; + +cmCursesForm::cmCursesForm() +{ + this->Form = 0; +} + +cmCursesForm::~cmCursesForm() +{ + if (this->Form) + { + unpost_form(this->Form); + free_form(this->Form); + this->Form = 0; + } +} + +void cmCursesForm::DebugStart() +{ + cmCursesForm::Debug = true; + cmCursesForm::DebugFile.open("ccmakelog.txt"); +} + +void cmCursesForm::DebugEnd() +{ + if (!cmCursesForm::Debug) + { + return; + } + + cmCursesForm::Debug = false; + cmCursesForm::DebugFile.close(); +} + +void cmCursesForm::LogMessage(const char* msg) +{ + if (!cmCursesForm::Debug) + { + return; + } + + cmCursesForm::DebugFile << msg << std::endl; +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesForm.h b/CMakeLua/Source/CursesDialog/cmCursesForm.h new file mode 100644 index 0000000..356c265 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesForm.h @@ -0,0 +1,80 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesForm.h,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesForm_h +#define __cmCursesForm_h + +#include "../cmStandardIncludes.h" +#include "cmCursesStandardIncludes.h" + +class cmCursesForm +{ +public: + cmCursesForm(); + virtual ~cmCursesForm(); + + // Description: + // Handle user input. + virtual void HandleInput() = 0; + + // Description: + // Display form. + virtual void Render(int left, int top, int width, int height) = 0; + + // Description: + // This method should normally called only by the form. + // The only exception is during a resize. + virtual void UpdateStatusBar() = 0; + + // Description: + // During a CMake run, an error handle should add errors + // to be displayed afterwards. + virtual void AddError(const char*, const char*) {} + + // Description: + // Turn debugging on. This will create ccmakelog.txt. + static void DebugStart(); + + // Description: + // Turn debugging off. This will close ccmakelog.txt. + static void DebugEnd(); + + // Description: + // Write a debugging message. + static void LogMessage(const char* msg); + + // Description: + // Return the FORM. Should be only used by low-level methods. + FORM* GetForm() + { + return this->Form; + } + + static cmCursesForm* CurrentForm; + + +protected: + + static std::ofstream DebugFile; + static bool Debug; + + cmCursesForm(const cmCursesForm& form); + void operator=(const cmCursesForm&); + + FORM* Form; +}; + +#endif // __cmCursesForm_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesLabelWidget.cxx b/CMakeLua/Source/CursesDialog/cmCursesLabelWidget.cxx new file mode 100644 index 0000000..35df7ab --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesLabelWidget.cxx @@ -0,0 +1,38 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesLabelWidget.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesLabelWidget.h" + +cmCursesLabelWidget::cmCursesLabelWidget(int width, int height, + int left, int top, + const std::string& name) : + cmCursesWidget(width, height, left, top) +{ + field_opts_off(this->Field, O_EDIT); + field_opts_off(this->Field, O_ACTIVE); + field_opts_off(this->Field, O_STATIC); + this->SetValue(name.c_str()); +} + +cmCursesLabelWidget::~cmCursesLabelWidget() +{ +} + +bool cmCursesLabelWidget::HandleInput(int&, cmCursesMainForm*, WINDOW* ) +{ + // Static text. No input is handled here. + return false; +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesLabelWidget.h b/CMakeLua/Source/CursesDialog/cmCursesLabelWidget.h new file mode 100644 index 0000000..dff5638 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesLabelWidget.h @@ -0,0 +1,43 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesLabelWidget.h,v $ + Language: C++ + Date: $Date: 2002/10/23 22:03:27 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesLabelWidget_h +#define __cmCursesLabelWidget_h + +#include "cmCursesWidget.h" +#include "cmCursesStandardIncludes.h" + +class cmCursesMainForm; + +class cmCursesLabelWidget : public cmCursesWidget +{ +public: + cmCursesLabelWidget(int width, int height, int left, int top, + const std::string& name); + virtual ~cmCursesLabelWidget(); + + // Description: + // Handle user input. Called by the container of this widget + // when this widget has focus. Returns true if the input was + // handled + virtual bool HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w); + +protected: + cmCursesLabelWidget(const cmCursesLabelWidget& from); + void operator=(const cmCursesLabelWidget&); +}; + +#endif // __cmCursesLabelWidget_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.cxx b/CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.cxx new file mode 100644 index 0000000..bf05ecd --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.cxx @@ -0,0 +1,213 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesLongMessageForm.cxx,v $ + Language: C++ + Date: $Date: 2006/11/29 22:25:46 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "../cmCacheManager.h" +#include "../cmSystemTools.h" +#include "../cmake.h" +#include "../cmVersion.h" +#include "cmCursesLongMessageForm.h" +#include "cmCursesMainForm.h" + +inline int ctrl(int z) +{ + return (z&037); +} + +cmCursesLongMessageForm::cmCursesLongMessageForm(std::vector + const& messages, const char* + title) +{ + // Append all messages into on big string + std::vector::const_iterator it; + for(it=messages.begin(); it != messages.end(); it++) + { + this->Messages += (*it); + // Add one blank line after each message + this->Messages += "\n\n"; + } + this->Title = title; + this->Fields[0] = 0; + this->Fields[1] = 0; +} + +cmCursesLongMessageForm::~cmCursesLongMessageForm() +{ + if (this->Fields[0]) + { + free_field(this->Fields[0]); + } +} + + +void cmCursesLongMessageForm::UpdateStatusBar() +{ + int x,y; + getmaxyx(stdscr, y, x); + + char bar[cmCursesMainForm::MAX_WIDTH]; + int size = strlen(this->Title.c_str()); + if ( size >= cmCursesMainForm::MAX_WIDTH ) + { + size = cmCursesMainForm::MAX_WIDTH-1; + } + strncpy(bar, this->Title.c_str(), size); + for(int i=size-1; iForm); +} + +void cmCursesLongMessageForm::PrintKeys() +{ + int x,y; + getmaxyx(stdscr, y, x); + if ( x < cmCursesMainForm::MIN_WIDTH || + y < cmCursesMainForm::MIN_HEIGHT ) + { + return; + } + char firstLine[512]; + sprintf(firstLine, "Press [e] to exit help"); + + curses_move(y-2,0); + printw(firstLine); + pos_form_cursor(this->Form); + +} + +void cmCursesLongMessageForm::Render(int, int, int, int) +{ + int x,y; + getmaxyx(stdscr, y, x); + + if (this->Form) + { + unpost_form(this->Form); + free_form(this->Form); + this->Form = 0; + } + + const char* msg = this->Messages.c_str(); + + curses_clear(); + + if (this->Fields[0]) + { + free_field(this->Fields[0]); + this->Fields[0] = 0; + } + + this->Fields[0] = new_field(y-6, x-2, 1, 1, 0, 0); + + field_opts_off(this->Fields[0], O_STATIC); + + this->Form = new_form(this->Fields); + post_form(this->Form); + + int i=0; + form_driver(this->Form, REQ_BEG_FIELD); + while(msg[i] != '\0' && i < 60000) + { + if (msg[i] == '\n' && msg[i+1] != '\0') + { + form_driver(this->Form, REQ_NEW_LINE); + } + else + { + form_driver(this->Form, msg[i]); + } + i++; + } + form_driver(this->Form, REQ_BEG_FIELD); + + this->UpdateStatusBar(); + this->PrintKeys(); + touchwin(stdscr); + refresh(); + +} + +void cmCursesLongMessageForm::HandleInput() +{ + if (!this->Form) + { + return; + } + + char debugMessage[128]; + + for(;;) + { + int key = getch(); + + sprintf(debugMessage, "Message widget handling input, key: %d", key); + cmCursesForm::LogMessage(debugMessage); + + // quit + if ( key == 'o' || key == 'e' ) + { + break; + } + else if ( key == KEY_DOWN || key == ctrl('n') ) + { + form_driver(this->Form, REQ_SCR_FLINE); + } + else if ( key == KEY_UP || key == ctrl('p') ) + { + form_driver(this->Form, REQ_SCR_BLINE); + } + else if ( key == KEY_NPAGE || key == ctrl('d') ) + { + form_driver(this->Form, REQ_SCR_FPAGE); + } + else if ( key == KEY_PPAGE || key == ctrl('u') ) + { + form_driver(this->Form, REQ_SCR_BPAGE); + } + + this->UpdateStatusBar(); + this->PrintKeys(); + touchwin(stdscr); + wrefresh(stdscr); + } + +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.h b/CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.h new file mode 100644 index 0000000..1062bda --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesLongMessageForm.h @@ -0,0 +1,63 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesLongMessageForm.h,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesLongMessageForm_h +#define __cmCursesLongMessageForm_h + +#include "../cmStandardIncludes.h" +#include "cmCursesForm.h" +#include "cmCursesStandardIncludes.h" + +class cmCursesCacheEntryComposite; + +class cmCursesLongMessageForm : public cmCursesForm +{ +public: + cmCursesLongMessageForm(std::vector const& messages, + const char* title); + virtual ~cmCursesLongMessageForm(); + + // Description: + // Handle user input. + virtual void HandleInput(); + + // Description: + // Display form. Use a window of size width x height, starting + // at top, left. + virtual void Render(int left, int top, int width, int height); + + // Description: + // This method should normally called only by the form. + // The only exception is during a resize. + void PrintKeys(); + + // Description: + // This method should normally called only by the form. + // The only exception is during a resize. + virtual void UpdateStatusBar(); + +protected: + cmCursesLongMessageForm(const cmCursesLongMessageForm& from); + void operator=(const cmCursesLongMessageForm&); + + std::string Messages; + std::string Title; + + FIELD* Fields[2]; + +}; + +#endif // __cmCursesLongMessageForm_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesMainForm.cxx b/CMakeLua/Source/CursesDialog/cmCursesMainForm.cxx new file mode 100644 index 0000000..6ab72ca --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesMainForm.cxx @@ -0,0 +1,1295 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesMainForm.cxx,v $ + Language: C++ + Date: $Date: 2006/11/29 22:17:16 $ + Version: $Revision: 1.71 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "../cmCacheManager.h" +#include "../cmSystemTools.h" +#include "../cmVersion.h" +#include "../cmake.h" +#include "cmCursesMainForm.h" +#include "cmCursesStringWidget.h" +#include "cmCursesLabelWidget.h" +#include "cmCursesBoolWidget.h" +#include "cmCursesPathWidget.h" +#include "cmCursesFilePathWidget.h" +#include "cmCursesDummyWidget.h" +#include "cmCursesCacheEntryComposite.h" +#include "cmCursesLongMessageForm.h" + + +inline int ctrl(int z) +{ + return (z&037); +} + +cmCursesMainForm::cmCursesMainForm(std::vector const& args, + int initWidth) : + Args(args), InitialWidth(initWidth) +{ + this->NumberOfPages = 0; + this->Fields = 0; + this->Entries = 0; + this->AdvancedMode = false; + this->NumberOfVisibleEntries = 0; + this->OkToGenerate = false; + this->HelpMessage.push_back("Welcome to ccmake, curses based user interface for CMake."); + this->HelpMessage.push_back(""); + this->HelpMessage.push_back(s_ConstHelpMessage); + this->CMakeInstance = new cmake; + + // create the arguments for the cmake object + std::string whereCMake = cmSystemTools::GetProgramPath(this->Args[0].c_str()); + whereCMake += "/cmake"; + this->Args[0] = whereCMake; + this->CMakeInstance->SetArgs(this->Args); + this->CMakeInstance->SetCMakeCommand(whereCMake.c_str()); + this->SearchString = ""; + this->OldSearchString = ""; + this->SearchMode = false; +} + +cmCursesMainForm::~cmCursesMainForm() +{ + if (this->Form) + { + unpost_form(this->Form); + free_form(this->Form); + this->Form = 0; + } + delete[] this->Fields; + + // Clean-up composites + if (this->Entries) + { + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + delete *it; + } + } + delete this->Entries; + if (this->CMakeInstance) + { + delete this->CMakeInstance; + this->CMakeInstance = 0; + } +} + +// See if a cache entry is in the list of entries in the ui. +bool cmCursesMainForm::LookForCacheEntry(const char* key) +{ + if (!key || !this->Entries) + { + return false; + } + + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + if (!strcmp(key, (*it)->Key.c_str())) + { + return true; + } + } + + return false; +} + +// Create new cmCursesCacheEntryComposite entries from the cache +void cmCursesMainForm::InitializeUI() +{ + // Create a vector of cmCursesCacheEntryComposite's + // which contain labels, entries and new entry markers + std::vector* newEntries = + new std::vector; + newEntries->reserve(this->CMakeInstance->GetCacheManager()->GetSize()); + + // Count non-internal and non-static entries + int count=0; + for(cmCacheManager::CacheIterator i = + this->CMakeInstance->GetCacheManager()->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + if ( i.GetType() != cmCacheManager::INTERNAL && + i.GetType() != cmCacheManager::STATIC && + i.GetType() != cmCacheManager::UNINITIALIZED) + { + ++count; + } + } + + int entrywidth = this->InitialWidth - 35; + + cmCursesCacheEntryComposite* comp; + if ( count == 0 ) + { + // If cache is empty, display a label saying so and a + // dummy entry widget (does not respond to input) + comp = new cmCursesCacheEntryComposite("EMPTY CACHE", 30, 30); + comp->Entry = new cmCursesDummyWidget(1, 1, 1, 1); + newEntries->push_back(comp); + } + else + { + // Create the composites. + + // First add entries which are new + for(cmCacheManager::CacheIterator i = + this->CMakeInstance->GetCacheManager()->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + const char* key = i.GetName(); + if ( i.GetType() == cmCacheManager::INTERNAL || + i.GetType() == cmCacheManager::STATIC || + i.GetType() == cmCacheManager::UNINITIALIZED ) + { + continue; + } + + if (!this->LookForCacheEntry(key)) + { + newEntries->push_back(new cmCursesCacheEntryComposite(key, i, + true, 30, + entrywidth)); + this->OkToGenerate = false; + } + } + + // then add entries which are old + for(cmCacheManager::CacheIterator i = + this->CMakeInstance->GetCacheManager()->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + const char* key = i.GetName(); + if ( i.GetType() == cmCacheManager::INTERNAL || + i.GetType() == cmCacheManager::STATIC || + i.GetType() == cmCacheManager::UNINITIALIZED ) + { + continue; + } + + if (this->LookForCacheEntry(key)) + { + newEntries->push_back(new cmCursesCacheEntryComposite(key, i, + false, 30, + entrywidth)); + } + } + } + + // Clean old entries + if (this->Entries) + { + // Have to call delete on each pointer + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + delete *it; + } + } + delete this->Entries; + this->Entries = newEntries; + + // Compute fields from composites + this->RePost(); +} + + +void cmCursesMainForm::RePost() +{ + // Create the fields to be passed to the form. + if (this->Form) + { + unpost_form(this->Form); + free_form(this->Form); + this->Form = 0; + } + delete[] this->Fields; + + if (this->AdvancedMode) + { + this->NumberOfVisibleEntries = this->Entries->size(); + } + else + { + // If normal mode, count only non-advanced entries + this->NumberOfVisibleEntries = 0; + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + cmCacheManager::CacheIterator mit = + this->CMakeInstance->GetCacheManager()->GetCacheIterator((*it)->GetValue()); + if (mit.IsAtEnd() || !this->AdvancedMode && mit.GetPropertyAsBool("ADVANCED")) + { + continue; + } + this->NumberOfVisibleEntries++; + } + } + + // Assign the fields: 3 for each entry: label, new entry marker + // ('*' or ' ') and entry widget + this->Fields = new FIELD*[3*this->NumberOfVisibleEntries+1]; + int cc; + for ( cc = 0; cc < 3 * this->NumberOfVisibleEntries+1; cc ++ ) + { + this->Fields[cc] = 0; + } + + // Assign fields + int j=0; + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + cmCacheManager::CacheIterator mit = + this->CMakeInstance->GetCacheManager()->GetCacheIterator((*it)->GetValue()); + if (mit.IsAtEnd() || !this->AdvancedMode && mit.GetPropertyAsBool("ADVANCED")) + { + continue; + } + this->Fields[3*j] = (*it)->Label->Field; + this->Fields[3*j+1] = (*it)->IsNewLabel->Field; + this->Fields[3*j+2] = (*it)->Entry->Field; + j++; + } + + // Has to be null terminated. + this->Fields[3*this->NumberOfVisibleEntries] = 0; +} + +void cmCursesMainForm::Render(int left, int top, int width, int height) +{ + + if (this->Form) + { + FIELD* currentField = current_field(this->Form); + cmCursesWidget* cw = reinterpret_cast + (field_userptr(currentField)); + // If in edit mode, get out of it + if ( cw->GetType() == cmCacheManager::STRING || + cw->GetType() == cmCacheManager::PATH || + cw->GetType() == cmCacheManager::FILEPATH ) + { + cmCursesStringWidget* sw = static_cast(cw); + sw->SetInEdit(false); + } + // Delete the previous form + unpost_form(this->Form); + free_form(this->Form); + this->Form = 0; + } + + // Wrong window size + if ( width < cmCursesMainForm::MIN_WIDTH || + width < this->InitialWidth || + height < cmCursesMainForm::MIN_HEIGHT ) + { + return; + } + + // Leave room for toolbar + height -= 7; + + if (this->AdvancedMode) + { + this->NumberOfVisibleEntries = this->Entries->size(); + } + else + { + // If normal, display only non-advanced entries + this->NumberOfVisibleEntries = 0; + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + cmCacheManager::CacheIterator mit = + this->CMakeInstance->GetCacheManager()->GetCacheIterator((*it)->GetValue()); + if (mit.IsAtEnd() || !this->AdvancedMode && mit.GetPropertyAsBool("ADVANCED")) + { + continue; + } + this->NumberOfVisibleEntries++; + } + } + + // Re-adjust the fields according to their place + bool isNewPage; + int i=0; + this->NumberOfPages = 1; + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + cmCacheManager::CacheIterator mit = + this->CMakeInstance->GetCacheManager()->GetCacheIterator((*it)->GetValue()); + if (mit.IsAtEnd() || !this->AdvancedMode && mit.GetPropertyAsBool("ADVANCED")) + { + continue; + } + int row = (i % height) + 1; + int page = (i / height) + 1; + isNewPage = ( page > 1 ) && ( row == 1 ); + + if (isNewPage) + { + this->NumberOfPages++; + } + (*it)->Label->Move(left, top+row-1, isNewPage); + (*it)->IsNewLabel->Move(left+32, top+row-1, false); + (*it)->Entry->Move(left+33, top+row-1, false); + (*it)->Entry->SetPage(this->NumberOfPages); + i++; + } + + // Post the form + this->Form = new_form(this->Fields); + post_form(this->Form); + // Update toolbar + this->UpdateStatusBar(); + this->PrintKeys(); + + touchwin(stdscr); + refresh(); +} + +void cmCursesMainForm::PrintKeys(int process /* = 0 */) +{ + int x,y; + getmaxyx(stdscr, y, x); + if ( x < cmCursesMainForm::MIN_WIDTH || + x < this->InitialWidth || + y < cmCursesMainForm::MIN_HEIGHT ) + { + return; + } + + // Give the current widget (if it exists), a chance to print keys + cmCursesWidget* cw = 0; + if (this->Form) + { + FIELD* currentField = current_field(this->Form); + cw = reinterpret_cast(field_userptr(currentField)); + } + + if (cw) + { + cw->PrintKeys(); + } + +// { +// } +// else +// { + char firstLine[512]=""; + char secondLine[512]=""; + char thirdLine[512]=""; + if (process) + { + sprintf(firstLine, + " "); + sprintf(secondLine, + " "); + sprintf(thirdLine, + " "); + } + else + { + if (this->OkToGenerate) + { + sprintf(firstLine, + "Press [c] to configure Press [g] to generate and exit"); + } + else + { + sprintf(firstLine, "Press [c] to configure "); + } + if (this->AdvancedMode) + { + sprintf(thirdLine, "Press [t] to toggle advanced mode (Currently On)"); + } + else + { + sprintf(thirdLine, "Press [t] to toggle advanced mode (Currently Off)"); + } + + sprintf(secondLine, + "Press [h] for help Press [q] to quit without generating"); + } + + curses_move(y-4,0); + char fmt[512] = "Press [enter] to edit option"; + if ( process ) + { + strcpy(fmt, " "); + } + printw(fmt); + curses_move(y-3,0); + printw(firstLine); + curses_move(y-2,0); + printw(secondLine); + curses_move(y-1,0); + printw(thirdLine); + + if (cw) + { + sprintf(firstLine, "Page %d of %d", cw->GetPage(), this->NumberOfPages); + curses_move(0,65-strlen(firstLine)-1); + printw(firstLine); + } +// } + + pos_form_cursor(this->Form); + +} + +// Print the key of the current entry and the CMake version +// on the status bar. Designed for a width of 80 chars. +void cmCursesMainForm::UpdateStatusBar(const char* message) +{ + int x,y; + getmaxyx(stdscr, y, x); + // If window size is too small, display error and return + if ( x < cmCursesMainForm::MIN_WIDTH || + x < this->InitialWidth || + y < cmCursesMainForm::MIN_HEIGHT ) + { + curses_clear(); + curses_move(0,0); + char fmt[] = "Window is too small. A size of at least %dx%d is required."; + printw(fmt, + (cmCursesMainForm::MIN_WIDTH < this->InitialWidth ? + this->InitialWidth : cmCursesMainForm::MIN_WIDTH), + cmCursesMainForm::MIN_HEIGHT); + touchwin(stdscr); + wrefresh(stdscr); + return; + } + + // Get the key of the current entry + FIELD* cur = current_field(this->Form); + int findex = field_index(cur); + cmCursesWidget* lbl = 0; + if ( findex >= 0 ) + { + lbl = reinterpret_cast(field_userptr(this->Fields[findex-2])); + } + char help[128] = ""; + const char* curField = ""; + if ( lbl ) + { + curField = lbl->GetValue(); + + // Get the help string of the current entry + // and add it to the help string + cmCacheManager::CacheIterator it = + this->CMakeInstance->GetCacheManager()->GetCacheIterator(curField); + if (!it.IsAtEnd()) + { + const char* hs = it.GetProperty("HELPSTRING"); + if ( hs ) + { + strncpy(help, hs, 127); + help[127] = '\0'; + } + else + { + help[0] = 0; + } + } + else + { + sprintf(help," "); + } + } + + // Join the key, help string and pad with spaces + // (or truncate) as necessary + char bar[cmCursesMainForm::MAX_WIDTH]; + int i, curFieldLen = strlen(curField); + int helpLen = strlen(help); + + int width; + if (x < cmCursesMainForm::MAX_WIDTH ) + { + width = x; + } + else + { + width = cmCursesMainForm::MAX_WIDTH; + } + + if ( message ) + { + curField = message; + curFieldLen = strlen(message); + if ( curFieldLen < width ) + { + strcpy(bar, curField); + for(i=curFieldLen; i < width; ++i) + { + bar[i] = ' '; + } + } + else + { + strncpy(bar, curField, width); + } + } + else + { + if (curFieldLen >= width) + { + strncpy(bar, curField, width); + } + else + { + strcpy(bar, curField); + bar[curFieldLen] = ':'; + bar[curFieldLen+1] = ' '; + if (curFieldLen + helpLen + 2 >= width) + { + strncpy(bar+curFieldLen+2, help, width + - curFieldLen - 2); + } + else + { + strcpy(bar+curFieldLen+2, help); + for(i=curFieldLen+helpLen+2; i < width; ++i) + { + bar[i] = ' '; + } + } + } + } + + + bar[width] = '\0'; + + + // Display CMake version info on the next line + // We want to display this on the right + char version[cmCursesMainForm::MAX_WIDTH]; + char vertmp[128]; + sprintf(vertmp,"CMake Version %d.%d - %s", cmVersion::GetMajorVersion(), + cmVersion::GetMinorVersion(),cmVersion::GetReleaseVersion().c_str()); + int sideSpace = (width-strlen(vertmp)); + for(i=0; iForm); +} + +void cmCursesMainForm::UpdateProgress(const char *msg, float prog, void* vp) +{ + cmCursesMainForm* cm = static_cast(vp); + if ( !cm ) + { + return; + } + char tmp[1024]; + const char *cmsg = tmp; + if ( prog >= 0 ) + { + sprintf(tmp, "%s %i%%",msg,(int)(100*prog)); + } + else + { + cmsg = msg; + } + cm->UpdateStatusBar(cmsg); + cm->PrintKeys(1); + curses_move(1,1); + touchwin(stdscr); + refresh(); +} + +int cmCursesMainForm::Configure(int noconfigure) +{ + int xi,yi; + getmaxyx(stdscr, yi, xi); + + curses_move(1,1); + this->UpdateStatusBar("Configuring, please wait..."); + this->PrintKeys(1); + touchwin(stdscr); + refresh(); + this->CMakeInstance->SetProgressCallback(cmCursesMainForm::UpdateProgress, this); + + // always save the current gui values to disk + this->FillCacheManagerFromUI(); + this->CMakeInstance->GetCacheManager()->SaveCache( + this->CMakeInstance->GetHomeOutputDirectory()); + this->LoadCache(0); + + // Get rid of previous errors + this->Errors = std::vector(); + + // run the generate process + this->OkToGenerate = true; + int retVal; + if ( noconfigure ) + { + retVal = this->CMakeInstance->DoPreConfigureChecks(); + this->OkToGenerate = false; + if ( retVal > 0 ) + { + retVal = 0; + } + } + else + { + retVal = this->CMakeInstance->Configure(); + } + this->CMakeInstance->SetProgressCallback(0, 0); + + keypad(stdscr,TRUE); /* Use key symbols as + KEY_DOWN*/ + + if( retVal != 0 || !this->Errors.empty()) + { + // see if there was an error + if(cmSystemTools::GetErrorOccuredFlag()) + { + this->OkToGenerate = false; + } + // reset error condition + cmSystemTools::ResetErrorOccuredFlag(); + int xx,yy; + getmaxyx(stdscr, yy, xx); + cmCursesLongMessageForm* msgs = new cmCursesLongMessageForm( + this->Errors, + cmSystemTools::GetErrorOccuredFlag() ? "Errors occurred during the last pass." : + "CMake produced the following output."); + CurrentForm = msgs; + msgs->Render(1,1,xx,yy); + msgs->HandleInput(); + // If they typed the wrong source directory, we report + // an error and exit + if ( retVal == -2 ) + { + return retVal; + } + CurrentForm = this; + this->Render(1,1,xx,yy); + } + + this->InitializeUI(); + this->Render(1, 1, xi, yi); + + return 0; +} + +int cmCursesMainForm::Generate() +{ + int xi,yi; + getmaxyx(stdscr, yi, xi); + + curses_move(1,1); + this->UpdateStatusBar("Generating, please wait..."); + this->PrintKeys(1); + touchwin(stdscr); + refresh(); + this->CMakeInstance->SetProgressCallback(cmCursesMainForm::UpdateProgress, this); + + // Get rid of previous errors + this->Errors = std::vector(); + + // run the generate process + int retVal = this->CMakeInstance->Generate(); + + this->CMakeInstance->SetProgressCallback(0, 0); + keypad(stdscr,TRUE); /* Use key symbols as + KEY_DOWN*/ + + if( retVal != 0 || !this->Errors.empty()) + { + // see if there was an error + if(cmSystemTools::GetErrorOccuredFlag()) + { + this->OkToGenerate = false; + } + // reset error condition + cmSystemTools::ResetErrorOccuredFlag(); + int xx,yy; + getmaxyx(stdscr, yy, xx); + const char* title = "Messages during last pass."; + if(cmSystemTools::GetErrorOccuredFlag()) + { + title = "Errors occurred during the last pass."; + } + cmCursesLongMessageForm* msgs = new cmCursesLongMessageForm(this->Errors, + title); + CurrentForm = msgs; + msgs->Render(1,1,xx,yy); + msgs->HandleInput(); + // If they typed the wrong source directory, we report + // an error and exit + if ( retVal == -2 ) + { + return retVal; + } + CurrentForm = this; + this->Render(1,1,xx,yy); + } + + this->InitializeUI(); + this->Render(1, 1, xi, yi); + + return 0; +} + +void cmCursesMainForm::AddError(const char* message, const char*) +{ + this->Errors.push_back(message); +} + +void cmCursesMainForm::RemoveEntry(const char* value) +{ + if (!value) + { + return; + } + + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + const char* val = (*it)->GetValue(); + if ( val && !strcmp(value, val) ) + { + this->Entries->erase(it); + break; + } + } +} + +// copy from the list box to the cache manager +void cmCursesMainForm::FillCacheManagerFromUI() +{ + int size = this->Entries->size(); + for(int i=0; i < size; i++) + { + cmCacheManager::CacheIterator it = + this->CMakeInstance->GetCacheManager()->GetCacheIterator( + (*this->Entries)[i]->Key.c_str()); + if (!it.IsAtEnd()) + { + std::string oldValue = it.GetValue(); + std::string newValue = (*this->Entries)[i]->Entry->GetValue(); + std::string fixedOldValue; + std::string fixedNewValue; + this->FixValue(it.GetType(), oldValue, fixedOldValue); + this->FixValue(it.GetType(), newValue, fixedNewValue); + + if(!(fixedOldValue == fixedNewValue)) + { + // The user has changed the value. Mark it as modified. + it.SetProperty("MODIFIED", true); + it.SetValue(fixedNewValue.c_str()); + } + } + } +} + +void cmCursesMainForm::FixValue(cmCacheManager::CacheEntryType type, + const std::string& in, std::string& out) const +{ + out = in.substr(0,in.find_last_not_of(" ")+1); + if(type == cmCacheManager::PATH || type == cmCacheManager::FILEPATH) + { + cmSystemTools::ConvertToUnixSlashes(out); + } + if(type == cmCacheManager::BOOL) + { + if(cmSystemTools::IsOff(out.c_str())) + { + out = "OFF"; + } + else + { + out = "ON"; + } + } +} + +#include + +void cmCursesMainForm::HandleInput() +{ + int x=0,y=0; + + if (!this->Form) + { + return; + } + + FIELD* currentField; + cmCursesWidget* currentWidget; + + char debugMessage[128]; + + for(;;) + { + this->UpdateStatusBar(); + this->PrintKeys(); + if ( this->SearchMode ) + { + std::string searchstr = "Search: " + this->SearchString; + this->UpdateStatusBar( searchstr.c_str() ); + this->PrintKeys(1); + curses_move(y-5,searchstr.size()); + //curses_move(1,1); + touchwin(stdscr); + refresh(); + } + int key = getch(); + + getmaxyx(stdscr, y, x); + // If window too small, handle 'q' only + if ( x < cmCursesMainForm::MIN_WIDTH || + y < cmCursesMainForm::MIN_HEIGHT ) + { + // quit + if ( key == 'q' ) + { + break; + } + else + { + continue; + } + } + + currentField = current_field(this->Form); + currentWidget = reinterpret_cast(field_userptr( + currentField)); + + bool widgetHandled=false; + + if ( this->SearchMode ) + { + if ( key == 10 || key == KEY_ENTER ) + { + this->SearchMode = false; + if ( this->SearchString.size() > 0 ) + { + this->JumpToCacheEntry(-1, this->SearchString.c_str()); + this->OldSearchString = this->SearchString; + } + this->SearchString = ""; + } + /* + else if ( key == KEY_ESCAPE ) + { + this->SearchMode = false; + } + */ + else if ( key >= 'a' && key <= 'z' || + key >= 'A' && key <= 'Z' || + key >= '0' && key <= '9' || + key == '_' ) + { + if ( this->SearchString.size() < static_cast(x-10) ) + { + this->SearchString += key; + } + } + else if ( key == ctrl('h') || key == KEY_BACKSPACE || key == KEY_DC ) + { + if ( this->SearchString.size() > 0 ) + { + this->SearchString.resize(this->SearchString.size()-1); + } + } + } + else if (currentWidget && !this->SearchMode) + { + // Ask the current widget if it wants to handle input + widgetHandled = currentWidget->HandleInput(key, this, stdscr); + if (widgetHandled) + { + this->OkToGenerate = false; + this->UpdateStatusBar(); + this->PrintKeys(); + } + } + if ((!currentWidget || !widgetHandled) && !this->SearchMode) + { + // If the current widget does not want to handle input, + // we handle it. + sprintf(debugMessage, "Main form handling input, key: %d", key); + cmCursesForm::LogMessage(debugMessage); + // quit + if ( key == 'q' ) + { + break; + } + // if not end of page, next field otherwise next page + // each entry consists of fields: label, isnew, value + // therefore, the label field for the prev. entry is index-5 + // and the label field for the next entry is index+1 + // (index always corresponds to the value field) + else if ( key == KEY_DOWN || key == ctrl('n') ) + { + FIELD* cur = current_field(this->Form); + int findex = field_index(cur); + if ( findex == 3*this->NumberOfVisibleEntries-1 ) + { + continue; + } + if (new_page(this->Fields[findex+1])) + { + form_driver(this->Form, REQ_NEXT_PAGE); + } + else + { + form_driver(this->Form, REQ_NEXT_FIELD); + } + } + // if not beginning of page, previous field, otherwise previous page + // each entry consists of fields: label, isnew, value + // therefore, the label field for the prev. entry is index-5 + // and the label field for the next entry is index+1 + // (index always corresponds to the value field) + else if ( key == KEY_UP || key == ctrl('p') ) + { + FIELD* cur = current_field(this->Form); + int findex = field_index(cur); + if ( findex == 2 ) + { + continue; + } + if ( new_page(this->Fields[findex-2]) ) + { + form_driver(this->Form, REQ_PREV_PAGE); + set_current_field(this->Form, this->Fields[findex-3]); + } + else + { + form_driver(this->Form, REQ_PREV_FIELD); + } + } + // pg down + else if ( key == KEY_NPAGE || key == ctrl('d') ) + { + form_driver(this->Form, REQ_NEXT_PAGE); + } + // pg up + else if ( key == KEY_PPAGE || key == ctrl('u') ) + { + form_driver(this->Form, REQ_PREV_PAGE); + } + // configure + else if ( key == 'c' ) + { + this->Configure(); + } + // display help + else if ( key == 'h' ) + { + getmaxyx(stdscr, y, x); + + FIELD* cur = current_field(this->Form); + int findex = field_index(cur); + cmCursesWidget* lbl = reinterpret_cast(field_userptr( + this->Fields[findex-2])); + const char* curField = lbl->GetValue(); + const char* helpString=0; + cmCacheManager::CacheIterator it = + this->CMakeInstance->GetCacheManager()->GetCacheIterator(curField); + if (!it.IsAtEnd()) + { + helpString = it.GetProperty("HELPSTRING"); + } + if (helpString) + { + char* message = new char[strlen(curField)+strlen(helpString) + +strlen("Current option is: \n Help string for this option is: \n")+10]; + sprintf(message,"Current option is: %s\nHelp string for this option is: %s\n", curField, helpString); + this->HelpMessage[1] = message; + delete[] message; + } + else + { + this->HelpMessage[1] = ""; + } + + cmCursesLongMessageForm* msgs = new cmCursesLongMessageForm(this->HelpMessage, + "Help."); + CurrentForm = msgs; + msgs->Render(1,1,x,y); + msgs->HandleInput(); + CurrentForm = this; + this->Render(1,1,x,y); + set_current_field(this->Form, cur); + } + // display last errors + else if ( key == 'l' ) + { + getmaxyx(stdscr, y, x); + cmCursesLongMessageForm* msgs = new cmCursesLongMessageForm(this->Errors, + "Errors occurred during the last pass."); + CurrentForm = msgs; + msgs->Render(1,1,x,y); + msgs->HandleInput(); + CurrentForm = this; + this->Render(1,1,x,y); + } + else if ( key == '/' ) + { + this->SearchMode = true; + this->UpdateStatusBar("Search"); + this->PrintKeys(1); + touchwin(stdscr); + refresh(); + } + else if ( key == 'n' ) + { + if ( this->OldSearchString.size() > 0 ) + { + this->JumpToCacheEntry(-1, this->OldSearchString.c_str()); + } + } + // switch advanced on/off + else if ( key == 't' ) + { + if (this->AdvancedMode) + { + this->AdvancedMode = false; + } + else + { + this->AdvancedMode = true; + } + getmaxyx(stdscr, y, x); + this->RePost(); + this->Render(1, 1, x, y); + } + // generate and exit + else if ( key == 'g' ) + { + if ( this->OkToGenerate ) + { + this->Generate(); + break; + } + } + // delete cache entry + else if ( key == 'd' && this->NumberOfVisibleEntries ) + { + this->OkToGenerate = false; + FIELD* cur = current_field(this->Form); + int findex = field_index(cur); + + // make the next or prev. current field after deletion + // each entry consists of fields: label, isnew, value + // therefore, the label field for the prev. entry is findex-5 + // and the label field for the next entry is findex+1 + // (findex always corresponds to the value field) + FIELD* nextCur; + if ( findex == 2 ) + { + nextCur=0; + } + else if ( findex == 3*this->NumberOfVisibleEntries-1 ) + { + nextCur = this->Fields[findex-5]; + } + else + { + nextCur = this->Fields[findex+1]; + } + + // Get the label widget + // each entry consists of fields: label, isnew, value + // therefore, the label field for the is findex-2 + // (findex always corresponds to the value field) + cmCursesWidget* lbl + = reinterpret_cast( + field_userptr(this->Fields[findex-2])); + if ( lbl ) + { + this->CMakeInstance->GetCacheManager()->RemoveCacheEntry(lbl->GetValue()); + + std::string nextVal; + if (nextCur) + { + nextVal = (reinterpret_cast(field_userptr(nextCur))->GetValue()); + } + + getmaxyx(stdscr, y, x); + this->RemoveEntry(lbl->GetValue()); + this->RePost(); + this->Render(1, 1, x, y); + + if (nextCur) + { + // make the next or prev. current field after deletion + nextCur = 0; + std::vector::iterator it; + for (it = this->Entries->begin(); it != this->Entries->end(); ++it) + { + if (nextVal == (*it)->Key) + { + nextCur = (*it)->Entry->Field; + } + } + + if (nextCur) + { + set_current_field(this->Form, nextCur); + } + } + } + } + } + + touchwin(stdscr); + wrefresh(stdscr); + } +} + +int cmCursesMainForm::LoadCache(const char *) + +{ + int r = this->CMakeInstance->LoadCache(); + if(r < 0) + { + return r; + } + this->CMakeInstance->SetCacheArgs(this->Args); + this->CMakeInstance->PreLoadCMakeFiles(); + return r; +} + +void cmCursesMainForm::JumpToCacheEntry(int idx, const char* astr) +{ + std::string str; + if ( astr ) + { + str = cmSystemTools::LowerCase(astr); + } + + if ( idx > this->NumberOfVisibleEntries ) + { + return; + } + if ( idx < 0 && str.size() == 0) + { + return; + } + FIELD* cur = current_field(this->Form); + int start_index = field_index(cur); + int findex = start_index; + while ( (findex / 3) != idx ) + { + if ( str.size() > 0 ) + { + cmCursesWidget* lbl = 0; + if ( findex >= 0 ) + { + lbl = reinterpret_cast(field_userptr(this->Fields[findex-2])); + } + if ( lbl ) + { + const char* curField = lbl->GetValue(); + if ( curField ) + { + std::string cfld = cmSystemTools::LowerCase(curField); + if ( cfld.find(str) != cfld.npos && findex != start_index ) + { + break; + } + } + } + } + if ( findex >= 3* this->NumberOfVisibleEntries-1 ) + { + set_current_field(this->Form, this->Fields[2]); + } + else if (new_page(this->Fields[findex+1])) + { + form_driver(this->Form, REQ_NEXT_PAGE); + } + else + { + form_driver(this->Form, REQ_NEXT_FIELD); + } + /* + char buffer[1024]; + sprintf(buffer, "Line: %d != %d / %d\n", findex, idx, this->NumberOfVisibleEntries); + touchwin(stdscr); + refresh(); + this->UpdateStatusBar( buffer ); + usleep(100000); + */ + cur = current_field(this->Form); + findex = field_index(cur); + if ( findex == start_index ) + { + break; + } + } +} + + +const char* cmCursesMainForm::s_ConstHelpMessage = +"CMake is used to configure and generate build files for software projects. " +"The basic steps for configuring a project with ccmake are as follows:\n\n" +"1. Run ccmake in the directory where you want the object and executable files to be placed (build directory). If the source directory is not the same as this build directory, you have to specify it as an argument on the command line.\n\n" +"2. When ccmake is run, it will read the configuration files and display the current build options. " +"If you have run CMake before and have updated the configuration files since then, any new entries will be displayed on top and will be marked with a *. " +"On the other hand, the first time you run ccmake, all build options will be new and will be marked as such. " +"At this point, you can modify any options (see keys below) you want to change. " +"When you are satisfied with your changes, press 'c' to have CMake process the configuration files. " +"Please note that changing some options may cause new ones to appear. These will be shown on top and will be marked with *. " +"Repeat this procedure until you are satisfied with all the options and there are no new entries. " +"At this point, a new command will appear: G)enerate and Exit. You can now hit 'g' to have CMake generate all the build files (i.e. makefiles or project files) and exit. " +"At any point during the process, you can exit ccmake with 'q'. However, this will not generate/change any build files.\n\n" +"ccmake KEYS:\n\n" +"Navigation: " +"You can use the arrow keys and page up, down to navigate the options. Alternatively, you can use the following keys: \n" +" C-n : next option\n" +" C-p : previous options\n" +" C-d : down one page\n" +" C-u : up one page\n\n" +"Editing options: " +"To change an option press enter or return. If the current options is a boolean, this will toggle it's value. " +"Otherwise, ccmake will enter edit mode. In this mode you can edit an option using arrow keys and backspace. Alternatively, you can use the following keys:\n" +" C-b : back one character\n" +" C-f : forward one character\n" +" C-a : go to the beginning of the field\n" +" C-e : go to the end of the field\n" +" C-d : delete previous character\n" +" C-k : kill the rest of the field\n" +" Esc : Restore field (discard last changes)\n" +" Enter : Leave edit mode\n" +"You can also delete an option by pressing 'd'\n\n" +"Commands:\n" +" q : quit ccmake without generating build files\n" +" h : help, shows this screen\n" +" c : process the configuration files with the current options\n" +" g : generate build files and exit, only available when there are no " +"new options and no errors have been detected during last configuration.\n" +" l : shows last errors\n" +" t : toggles advanced mode. In normal mode, only the most important options are shown. In advanced mode, all options are shown. We recommend using normal mode unless you are an expert.\n"; + + diff --git a/CMakeLua/Source/CursesDialog/cmCursesMainForm.h b/CMakeLua/Source/CursesDialog/cmCursesMainForm.h new file mode 100644 index 0000000..2ca40ff --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesMainForm.h @@ -0,0 +1,170 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesMainForm.h,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.24 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesMainForm_h +#define __cmCursesMainForm_h + +#include "../cmStandardIncludes.h" +#include "cmCursesForm.h" +#include "cmCursesStandardIncludes.h" + +class cmCursesCacheEntryComposite; +class cmCursesWidget; +class cmake; + +/** \class cmCursesMainForm + * \brief The main page of ccmake + * + * cmCursesMainForm is the main page of ccmake. + */ +class cmCursesMainForm : public cmCursesForm +{ +public: + cmCursesMainForm(std::vector const& args, int initwidth); + virtual ~cmCursesMainForm(); + + /** + * Set the widgets which represent the cache entries. + */ + void InitializeUI(); + + /** + * Handle user input. + */ + virtual void HandleInput(); + + /** + * Display form. Use a window of size width x height, starting + * at top, left. + */ + virtual void Render(int left, int top, int width, int height); + + /** + * Returns true if an entry with the given key is in the + * list of current composites. + */ + bool LookForCacheEntry(const char* key); + + enum { + MIN_WIDTH = 65, + MIN_HEIGHT = 6, + IDEAL_WIDTH = 80, + MAX_WIDTH = 512 + }; + + /** + * This method should normally be called only by the form. The only + * exception is during a resize. The optional argument specifies the + * string to be displayed in the status bar. + */ + virtual void UpdateStatusBar() { this->UpdateStatusBar(0); } + virtual void UpdateStatusBar(const char* message); + + /** + * Display current commands and their keys on the toolbar. This + * method should normally called only by the form. The only + * exception is during a resize. If the optional argument process is + * specified and is either 1 (configure) or 2 (generate), then keys + * will be displayed accordingly. + */ + void PrintKeys(int process = 0); + + /** + * During a CMake run, an error handle should add errors + * to be displayed afterwards. + */ + virtual void AddError(const char* message, const char* title); + + /** + * Used to do a configure. If argument is specified, it does only the check + * and not configure. + */ + int Configure(int noconfigure=0); + + /** + * Used to generate + */ + int Generate(); + + /** + * Used by main program + */ + int LoadCache(const char *dir); + + /** + * Progress callback + */ + static void UpdateProgressOld(const char *msg, float prog, void*); + static void UpdateProgress(const char *msg, float prog, void*); + +protected: + cmCursesMainForm(const cmCursesMainForm& from); + void operator=(const cmCursesMainForm&); + + // Copy the cache values from the user interface to the actual + // cache. + void FillCacheManagerFromUI(); + // Fix formatting of values to a consistent form. + void FixValue(cmCacheManager::CacheEntryType type, + const std::string& in, std::string& out) const; + // Re-post the existing fields. Used to toggle between + // normal and advanced modes. Render() should be called + // afterwards. + void RePost(); + // Remove an entry from the interface and the cache. + void RemoveEntry(const char* value); + + // Jump to the cache value with index idx. If string str is + // specified, it will stop on widget that contain that string. + void JumpToCacheEntry(int idx, const char* str); + + // Copies of cache entries stored in the user interface + std::vector* Entries; + // Errors produced during last run of cmake + std::vector Errors; + // Command line argumens to be passed to cmake each time + // it is run + std::vector Args; + // Message displayed when user presses 'h' + // It is: Welcome + info about current entry + common help + std::vector HelpMessage; + + // Common help + static const char* s_ConstHelpMessage; + + // Fields displayed. Includes labels, new entry markers, entries + FIELD** Fields; + // Where is source of current project + std::string WhereSource; + // Where is cmake executable + std::string WhereCMake; + // Number of entries shown (depends on mode -normal or advanced-) + int NumberOfVisibleEntries; + bool AdvancedMode; + // Did the iteration converge (no new entries) ? + bool OkToGenerate; + // Number of pages displayed + int NumberOfPages; + + int InitialWidth; + cmake *CMakeInstance; + + std::string SearchString; + std::string OldSearchString; + bool SearchMode; +}; + +#endif // __cmCursesMainForm_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesPathWidget.cxx b/CMakeLua/Source/CursesDialog/cmCursesPathWidget.cxx new file mode 100644 index 0000000..fe1c4f9 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesPathWidget.cxx @@ -0,0 +1,99 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesPathWidget.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesPathWidget.h" + +#include "cmCursesMainForm.h" +#include "cmSystemTools.h" + +cmCursesPathWidget::cmCursesPathWidget(int width, int height, + int left, int top) : + cmCursesStringWidget(width, height, left, top) +{ + this->Type = cmCacheManager::PATH; + this->Cycle = false; + this->CurrentIndex = 0; +} + +void cmCursesPathWidget::OnType(int& key, cmCursesMainForm* fm, WINDOW* w) +{ + this->Cycle = false; + this->CurrentIndex = 0; + this->LastGlob = ""; + this->cmCursesStringWidget::OnType(key, fm, w); +} + +void cmCursesPathWidget::OnTab(cmCursesMainForm* fm, WINDOW* w) +{ + if ( !this->GetString() ) + { + return; + } + FORM* form = fm->GetForm(); + form_driver(form, REQ_NEXT_FIELD); + form_driver(form, REQ_PREV_FIELD); + std::string cstr = this->GetString(); + cstr = cstr.substr(0, cstr.find_last_not_of(" \t\n\r")+1); + if ( this->LastString != cstr ) + { + this->Cycle = false; + this->CurrentIndex = 0; + this->LastGlob = ""; + } + std::string glob; + if ( this->Cycle ) + { + glob = this->LastGlob; + } + else + { + glob = cstr + "*"; + } + std::vector dirs; + + cmSystemTools::SimpleGlob(glob.c_str(), dirs, (this->Type == cmCacheManager::PATH?-1:0)); + if ( this->CurrentIndex < dirs.size() ) + { + cstr = dirs[this->CurrentIndex]; + } + if ( cstr[cstr.size()-1] == '*' ) + { + cstr = cstr.substr(0, cstr.size()-1); + } + + if ( cmSystemTools::FileIsDirectory(cstr.c_str()) ) + { + cstr += "/"; + } + + this->SetString(cstr.c_str()); + touchwin(w); + wrefresh(w); + form_driver(form, REQ_END_FIELD); + this->LastGlob = glob; + this->LastString = cstr; + this->Cycle = true; + this->CurrentIndex ++; + if ( this->CurrentIndex >= dirs.size() ) + { + this->CurrentIndex = 0; + } +} + +void cmCursesPathWidget::OnReturn(cmCursesMainForm* fm, WINDOW* w) +{ + this->cmCursesStringWidget::OnReturn(fm, w); +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesPathWidget.h b/CMakeLua/Source/CursesDialog/cmCursesPathWidget.h new file mode 100644 index 0000000..5703e30 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesPathWidget.h @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesPathWidget.h,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesPathWidget_h +#define __cmCursesPathWidget_h + +#include "cmCursesStringWidget.h" + +class cmCursesPathWidget : public cmCursesStringWidget +{ +public: + cmCursesPathWidget(int width, int height, int left, int top); + + /** + * This method is called when different keys are pressed. The + * subclass can have a special implementation handler for this. + */ + virtual void OnTab(cmCursesMainForm* fm, WINDOW* w); + virtual void OnReturn(cmCursesMainForm* fm, WINDOW* w); + virtual void OnType(int& key, cmCursesMainForm* fm, WINDOW* w); + +protected: + cmCursesPathWidget(const cmCursesPathWidget& from); + void operator=(const cmCursesPathWidget&); + + std::string LastString; + std::string LastGlob; + bool Cycle; + std::string::size_type CurrentIndex; +}; + +#endif // __cmCursesPathWidget_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesStandardIncludes.h b/CMakeLua/Source/CursesDialog/cmCursesStandardIncludes.h new file mode 100644 index 0000000..30496ab --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesStandardIncludes.h @@ -0,0 +1,88 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesStandardIncludes.h,v $ + Language: C++ + Date: $Date: 2007/08/27 13:01:14 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCursesStandardIncludes_h +#define cmCursesStandardIncludes_h +#if defined(__sun__) && defined(__GNUC__) + #define _MSE_INT_H +#endif + +#include + +#if defined(__hpux) +# define _BOOL_DEFINED +# include +# define _XOPEN_SOURCE_EXTENDED +# include +# include +# undef _XOPEN_SOURCE_EXTENDED +#else +/* figure out which curses.h to include */ +# if defined(CURSES_HAVE_NCURSES_H) +# include +# elif defined(CURSES_HAVE_NCURSES_NCURSES_H) +# include +# elif defined(CURSES_HAVE_NCURSES_CURSES_H) +# include +# else +# include +# endif + +# include +#endif + +// This is a hack to prevent warnings about these functions being +// declared but not referenced. +#if defined(__sgi) && !defined(__GNUC__) +class cmCursesStandardIncludesHack +{ +public: + enum + { + Ref1 = sizeof(cfgetospeed(0)), + Ref2 = sizeof(cfgetispeed(0)), + Ref3 = sizeof(tcgetattr(0, 0)), + Ref4 = sizeof(tcsetattr(0, 0, 0)), + Ref5 = sizeof(cfsetospeed(0,0)), + Ref6 = sizeof(cfsetispeed(0,0)) + }; +}; +#endif + +#ifndef getmaxyx + #define getmaxyx(w,y,x) ((y) = getmaxy(w), (x) = getmaxx(w)) +#endif + + +// on some machines move erase and clear conflict with stl +// so remove them from the namespace +inline void curses_move(unsigned int x, unsigned int y) +{ + move(x,y); +} + +inline void curses_clear() +{ + erase(); + clearok(stdscr, TRUE); +} + +#undef move +#undef erase +#undef clear + + +#endif // cmCursesStandardIncludes_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesStringWidget.cxx b/CMakeLua/Source/CursesDialog/cmCursesStringWidget.cxx new file mode 100644 index 0000000..40136f1 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesStringWidget.cxx @@ -0,0 +1,247 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesStringWidget.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesStringWidget.h" +#include "cmCursesMainForm.h" + +inline int ctrl(int z) +{ + return (z&037); +} + +cmCursesStringWidget::cmCursesStringWidget(int width, int height, + int left, int top) : + cmCursesWidget(width, height, left, top) +{ + this->InEdit = false; + this->Type = cmCacheManager::STRING; + set_field_fore(this->Field, A_NORMAL); + set_field_back(this->Field, A_STANDOUT); + field_opts_off(this->Field, O_STATIC); +} + +void cmCursesStringWidget::OnTab(cmCursesMainForm*, WINDOW*) +{ + //FORM* form = fm->GetForm(); +} + +void cmCursesStringWidget::OnReturn(cmCursesMainForm* fm, WINDOW*) +{ + FORM* form = fm->GetForm(); + if (this->InEdit) + { + cmCursesForm::LogMessage("String widget leaving edit."); + this->InEdit = false; + fm->PrintKeys(); + delete[] this->OriginalString; + // trick to force forms to update the field buffer + form_driver(form, REQ_NEXT_FIELD); + form_driver(form, REQ_PREV_FIELD); + this->Done = true; + } + else + { + cmCursesForm::LogMessage("String widget entering edit."); + this->InEdit = true; + fm->PrintKeys(); + char* buf = field_buffer(this->Field, 0); + this->OriginalString = new char[strlen(buf)+1]; + strcpy(this->OriginalString, buf); + } +} + +void cmCursesStringWidget::OnType(int& key, cmCursesMainForm* fm, WINDOW*) +{ + form_driver(fm->GetForm(), key); +} + +bool cmCursesStringWidget::HandleInput(int& key, cmCursesMainForm* fm, + WINDOW* w) +{ + int x,y; + + FORM* form = fm->GetForm(); + // 10 == enter + if (!this->InEdit && ( key != 10 && key != KEY_ENTER ) ) + { + return false; + } + + this->OriginalString=0; + this->Done = false; + + char debugMessage[128]; + + // is used to change edit mode (like in vi). + while(!this->Done) + { + sprintf(debugMessage, "String widget handling input, key: %d", key); + cmCursesForm::LogMessage(debugMessage); + + fm->PrintKeys(); + + getmaxyx(stdscr, y, x); + // If window too small, handle 'q' only + if ( x < cmCursesMainForm::MIN_WIDTH || + y < cmCursesMainForm::MIN_HEIGHT ) + { + // quit + if ( key == 'q' ) + { + return false; + } + else + { + key=getch(); + continue; + } + } + + // If resize occured during edit, move out of edit mode + if (!this->InEdit && ( key != 10 && key != KEY_ENTER ) ) + { + return false; + } + // 10 == enter + if (key == 10 || key == KEY_ENTER) + { + this->OnReturn(fm, w); + } + else if ( key == KEY_DOWN || key == ctrl('n') || + key == KEY_UP || key == ctrl('p') || + key == KEY_NPAGE || key == ctrl('d') || + key == KEY_PPAGE || key == ctrl('u')) + { + this->InEdit = false; + delete[] this->OriginalString; + // trick to force forms to update the field buffer + form_driver(form, REQ_NEXT_FIELD); + form_driver(form, REQ_PREV_FIELD); + return false; + } + // esc + else if (key == 27) + { + if (this->InEdit) + { + this->InEdit = false; + fm->PrintKeys(); + this->SetString(this->OriginalString); + delete[] this->OriginalString; + touchwin(w); + wrefresh(w); + return true; + } + } + else if ( key == 9 ) + { + this->OnTab(fm, w); + } + else if ( key == KEY_LEFT || key == ctrl('b') ) + { + form_driver(form, REQ_PREV_CHAR); + } + else if ( key == KEY_RIGHT || key == ctrl('f') ) + { + form_driver(form, REQ_NEXT_CHAR); + } + else if ( key == ctrl('k') ) + { + form_driver(form, REQ_CLR_EOL); + } + else if ( key == ctrl('a') || key == KEY_HOME ) + { + form_driver(form, REQ_BEG_FIELD); + } + else if ( key == ctrl('e') || key == KEY_END ) + { + form_driver(form, REQ_END_FIELD); + } + else if ( key == ctrl('d') || key == 127 || + key == KEY_BACKSPACE || key == KEY_DC ) + { + if ( form->curcol > 0 ) + { + form_driver(form, REQ_DEL_PREV); + } + } + else + { + this->OnType(key, fm, w); + } + if ( !this->Done ) + { + touchwin(w); + wrefresh(w); + + key=getch(); + } + } + return true; +} + +void cmCursesStringWidget::SetString(const char* value) +{ + this->SetValue(value); +} + +const char* cmCursesStringWidget::GetString() +{ + return this->GetValue(); +} + +const char* cmCursesStringWidget::GetValue() +{ + return field_buffer(this->Field, 0); +} + +bool cmCursesStringWidget::PrintKeys() +{ + int x,y; + getmaxyx(stdscr, y, x); + if ( x < cmCursesMainForm::MIN_WIDTH || + y < cmCursesMainForm::MIN_HEIGHT ) + { + return false; + } + if (this->InEdit) + { + char firstLine[512]; + // Clean the toolbar + for(int i=0; i<512; i++) + { + firstLine[i] = ' '; + } + firstLine[511] = '\0'; + curses_move(y-4,0); + printw(firstLine); + curses_move(y-3,0); + printw(firstLine); + curses_move(y-2,0); + printw(firstLine); + curses_move(y-1,0); + printw(firstLine); + + sprintf(firstLine, "Editing option, press [enter] to leave edit."); + curses_move(y-3,0); + printw(firstLine); + return true; + } + else + { + return false; + } +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesStringWidget.h b/CMakeLua/Source/CursesDialog/cmCursesStringWidget.h new file mode 100644 index 0000000..8b138f0 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesStringWidget.h @@ -0,0 +1,81 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesStringWidget.h,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesStringWidget_h +#define __cmCursesStringWidget_h + +#include "cmCursesWidget.h" + +class cmCursesMainForm; + +/** \class cmCursesStringWidget + * \brief A simple entry widget. + * + * cmCursesStringWdiget is a simple text entry widget. + */ + +class cmCursesStringWidget : public cmCursesWidget +{ +public: + cmCursesStringWidget(int width, int height, int left, int top); + + /** + * Handle user input. Called by the container of this widget + * when this widget has focus. Returns true if the input was + * handled. + */ + virtual bool HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w); + + /** + * Set/Get the string. + */ + void SetString(const char* value); + const char* GetString(); + virtual const char* GetValue(); + + /** + * Set/Get InEdit flag. Can be used to tell the widget to leave + * edit mode (in case of a resize for example). + */ + void SetInEdit(bool inedit) { this->InEdit = inedit; } + bool GetInEdit() { return this->InEdit; } + + /** + * This method is called when different keys are pressed. The + * subclass can have a special implementation handler for this. + */ + virtual void OnTab(cmCursesMainForm* fm, WINDOW* w); + virtual void OnReturn(cmCursesMainForm* fm, WINDOW* w); + virtual void OnType(int& key, cmCursesMainForm* fm, WINDOW* w); + + /** + * If there are any, print the widget specific commands + * in the toolbar and return true. Otherwise, return false + * and the parent widget will print. + */ + virtual bool PrintKeys(); + +protected: + cmCursesStringWidget(const cmCursesStringWidget& from); + void operator=(const cmCursesStringWidget&); + + // true if the widget is in edit mode + bool InEdit; + char* OriginalString; + bool Done; +}; + +#endif // __cmCursesStringWidget_h diff --git a/CMakeLua/Source/CursesDialog/cmCursesWidget.cxx b/CMakeLua/Source/CursesDialog/cmCursesWidget.cxx new file mode 100644 index 0000000..55f053e --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesWidget.cxx @@ -0,0 +1,63 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesWidget.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCursesWidget.h" + +cmCursesWidget::cmCursesWidget(int width, int height, int left, int top) +{ + this->Field = new_field(height, width, top, left, 0, 0); + set_field_userptr(this->Field, reinterpret_cast(this)); + field_opts_off(this->Field, O_AUTOSKIP); + this->Page = 0; +} + +cmCursesWidget::~cmCursesWidget() +{ + if (this->Field) + { + free_field(this->Field); + this->Field = 0; + } +} + +void cmCursesWidget::Move(int x, int y, bool isNewPage) +{ + if (!this->Field) + { + return; + } + + move_field(this->Field, y, x); + if (isNewPage) + { + set_new_page(this->Field, TRUE); + } + else + { + set_new_page(this->Field, FALSE); + } +} + +void cmCursesWidget::SetValue(const char* value) +{ + this->Value = value; + set_field_buffer(this->Field, 0, value); +} + +const char* cmCursesWidget::GetValue() +{ + return this->Value.c_str(); +} diff --git a/CMakeLua/Source/CursesDialog/cmCursesWidget.h b/CMakeLua/Source/CursesDialog/cmCursesWidget.h new file mode 100644 index 0000000..297f542 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/cmCursesWidget.h @@ -0,0 +1,92 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCursesWidget.h,v $ + Language: C++ + Date: $Date: 2006/03/16 15:44:55 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __cmCursesWidget_h +#define __cmCursesWidget_h + +#include "../cmCacheManager.h" +#include "cmCursesStandardIncludes.h" + +class cmCursesMainForm; + +class cmCursesWidget +{ +public: + cmCursesWidget(int width, int height, int left, int top); + virtual ~cmCursesWidget(); + + /** + * Handle user input. Called by the container of this widget + * when this widget has focus. Returns true if the input was + * handled + */ + virtual bool HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w) = 0; + + /** + * Change the position of the widget. Set isNewPage to true + * if this widget marks the beginning of a new page. + */ + virtual void Move(int x, int y, bool isNewPage); + + /** + * Set/Get the value (setting the value also changes the contents + * of the field buffer). + */ + virtual void SetValue(const char* value); + virtual const char* GetValue(); + + /** + * Get the type of the widget (STRING, PATH etc...) + */ + cmCacheManager::CacheEntryType GetType() + { return this->Type; } + + /** + * If there are any, print the widget specific commands + * in the toolbar and return true. Otherwise, return false + * and the parent widget will print. + */ + virtual bool PrintKeys() + { + return false; + } + + /** + * Set/Get the page this widget is in. + */ + void SetPage(int page) + { + this->Page = page; + } + int GetPage() + { + return this->Page; + } + + friend class cmCursesMainForm; + +protected: + cmCursesWidget(const cmCursesWidget& from); + void operator=(const cmCursesWidget&); + + cmCacheManager::CacheEntryType Type; + std::string Value; + FIELD* Field; + // The page in the main form this widget is in + int Page; +}; + +#endif // __cmCursesWidget_h diff --git a/CMakeLua/Source/CursesDialog/form/.NoDartCoverage b/CMakeLua/Source/CursesDialog/form/.NoDartCoverage new file mode 100644 index 0000000..3c99729 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/.NoDartCoverage @@ -0,0 +1 @@ +# do not do coverage in this directory diff --git a/CMakeLua/Source/CursesDialog/form/CMakeLists.txt b/CMakeLua/Source/CursesDialog/form/CMakeLists.txt new file mode 100644 index 0000000..a3d9977 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/CMakeLists.txt @@ -0,0 +1,55 @@ +PROJECT(CMAKE_FORM) + +INCLUDE_REGULAR_EXPRESSION("^.*$") +INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH} "${CMAKE_CURRENT_BINARY_DIR}") + +CONFIGURE_FILE(cmFormConfigure.h.in "${CMAKE_CURRENT_BINARY_DIR}/cmFormConfigure.h") + +SET( FORM_SRCS + fld_arg.c + fld_attr.c + fld_current.c + fld_def.c + fld_dup.c + fld_ftchoice.c + fld_ftlink.c + fld_info.c + fld_just.c + fld_link.c + fld_max.c + fld_move.c + fld_newftyp.c + fld_opts.c + fld_pad.c + fld_page.c + fld_stat.c + fld_type.c + fld_user.c + frm_cursor.c + frm_data.c + frm_def.c + frm_driver.c + frm_hook.c + frm_opts.c + frm_page.c + frm_post.c + frm_req_name.c + frm_scale.c + frm_sub.c + frm_user.c + frm_win.c + fty_alnum.c + fty_alpha.c + fty_enum.c + fty_int.c + fty_ipv4.c + fty_num.c + fty_regex.c + ) + +INCLUDE_DIRECTORIES(${CMAKE_FORM_SOURCE_DIR}) +ADD_LIBRARY(cmForm ${FORM_SRCS} ) +TARGET_LINK_LIBRARIES(cmForm ${CURSES_LIBRARY}) +IF(CURSES_EXTRA_LIBRARY) + TARGET_LINK_LIBRARIES(cmForm ${CURSES_EXTRA_LIBRARY}) +ENDIF(CURSES_EXTRA_LIBRARY) diff --git a/CMakeLua/Source/CursesDialog/form/CVS/Entries b/CMakeLua/Source/CursesDialog/form/CVS/Entries new file mode 100644 index 0000000..41791dd --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/CVS/Entries @@ -0,0 +1,50 @@ +/.NoDartCoverage/1.1/Wed Feb 13 21:17:26 2002//T1.1 +/CMakeLists.txt/1.9/Mon Aug 27 13:01:14 2007//T1.9 +/READ.ME/1.1/Mon Nov 5 16:52:59 2001//T1.1 +/cmFormConfigure.h.in/1.1/Mon Aug 27 13:01:14 2007//T1.1 +/eti.h/1.1/Mon Nov 5 16:52:59 2001//T1.1 +/fld_arg.c/1.1/Mon Nov 5 16:52:59 2001//T1.1 +/fld_attr.c/1.2/Tue Mar 11 20:25:50 2003//T1.2 +/fld_current.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_def.c/1.2/Fri Jan 25 14:06:38 2002//T1.2 +/fld_dup.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_ftchoice.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_ftlink.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_info.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_just.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_link.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_max.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_move.c/1.1/Mon Nov 5 16:53:00 2001//T1.1 +/fld_newftyp.c/1.1/Mon Nov 5 16:53:01 2001//T1.1 +/fld_opts.c/1.1/Mon Nov 5 16:53:01 2001//T1.1 +/fld_pad.c/1.1/Mon Nov 5 16:53:01 2001//T1.1 +/fld_page.c/1.1/Mon Nov 5 16:53:01 2001//T1.1 +/fld_stat.c/1.1/Mon Nov 5 16:53:01 2001//T1.1 +/fld_type.c/1.2/Tue Nov 6 13:40:07 2001//T1.2 +/fld_user.c/1.1/Mon Nov 5 16:53:01 2001//T1.1 +/form.h/1.7/Mon Aug 27 13:01:14 2007//T1.7 +/form.priv.h/1.2/Tue Jun 27 13:57:02 2006//T1.2 +/frm_cursor.c/1.1/Mon Nov 5 16:53:01 2001//T1.1 +/frm_data.c/1.3/Tue Jun 18 20:30:00 2002//T1.3 +/frm_def.c/1.2/Fri Jan 25 14:06:39 2002//T1.2 +/frm_driver.c/1.15/Wed Oct 23 20:43:34 2002//T1.15 +/frm_hook.c/1.1/Mon Nov 5 16:53:02 2001//T1.1 +/frm_opts.c/1.1/Mon Nov 5 16:53:02 2001//T1.1 +/frm_page.c/1.1/Mon Nov 5 16:53:02 2001//T1.1 +/frm_post.c/1.1/Mon Nov 5 16:53:03 2001//T1.1 +/frm_req_name.c/1.7/Tue Jun 18 21:19:38 2002//T1.7 +/frm_scale.c/1.1/Mon Nov 5 16:53:03 2001//T1.1 +/frm_sub.c/1.1/Mon Nov 5 16:53:03 2001//T1.1 +/frm_user.c/1.1/Mon Nov 5 16:53:03 2001//T1.1 +/frm_win.c/1.1/Mon Nov 5 16:53:04 2001//T1.1 +/fty_alnum.c/1.2/Tue Jun 18 21:19:38 2002//T1.2 +/fty_alpha.c/1.2/Wed Jun 19 12:57:14 2002//T1.2 +/fty_enum.c/1.1/Mon Nov 5 16:53:04 2001//T1.1 +/fty_int.c/1.2/Tue Jun 18 21:19:38 2002//T1.2 +/fty_ipv4.c/1.2/Tue Jun 18 21:19:38 2002//T1.2 +/fty_num.c/1.3/Tue Jun 18 21:19:38 2002//T1.3 +/fty_regex.c/1.2/Tue Jun 18 21:19:38 2002//T1.2 +/llib-lform/1.1/Mon Nov 5 16:53:05 2001//T1.1 +/mf_common.h/1.1/Mon Nov 5 16:53:05 2001//T1.1 +/nc_alloc.h/1.2/Thu Nov 8 22:03:52 2001//T1.2 +D diff --git a/CMakeLua/Source/CursesDialog/form/CVS/Repository b/CMakeLua/Source/CursesDialog/form/CVS/Repository new file mode 100644 index 0000000..40557dc --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/CursesDialog/form diff --git a/CMakeLua/Source/CursesDialog/form/CVS/Root b/CMakeLua/Source/CursesDialog/form/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/CursesDialog/form/CVS/Tag b/CMakeLua/Source/CursesDialog/form/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/CursesDialog/form/CVS/Template b/CMakeLua/Source/CursesDialog/form/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/CursesDialog/form/READ.ME b/CMakeLua/Source/CursesDialog/form/READ.ME new file mode 100644 index 0000000..dd91693 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/READ.ME @@ -0,0 +1,15 @@ +This is a clone of the form library that is available with typical +System V curses implementations (ETI). + +It is modelled after the documentation that comes for this library with +a 386 based SVR4 implementation (ESIX). + +The development environment was and is an ELF based Linux system. + +For things that still need doing, see the TO-DO file in the top-level +directory. + +Juergen Pfeifer + +eMail: juergen.pfeifer@gmx.net + diff --git a/CMakeLua/Source/CursesDialog/form/cmFormConfigure.h.in b/CMakeLua/Source/CursesDialog/form/cmFormConfigure.h.in new file mode 100644 index 0000000..45af2f4 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/cmFormConfigure.h.in @@ -0,0 +1,26 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFormConfigure.h.in,v $ + Language: C++ + Date: $Date: 2007/08/27 13:01:14 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef CMFORMCONFIGURE_H +#define CMFORMCONFIGURE_H + +#cmakedefine CURSES_HAVE_CURSES_H +#cmakedefine CURSES_HAVE_NCURSES_H +#cmakedefine CURSES_HAVE_NCURSES_NCURSES_H +#cmakedefine CURSES_HAVE_NCURSES_CURSES_H + +#endif diff --git a/CMakeLua/Source/CursesDialog/form/eti.h b/CMakeLua/Source/CursesDialog/form/eti.h new file mode 100644 index 0000000..cc1c830 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/eti.h @@ -0,0 +1,52 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#ifndef _ETI_ERRNO_H_ +#define _ETI_ERRNO_H_ + +#define E_OK (0) +#define E_SYSTEM_ERROR (-1) +#define E_BAD_ARGUMENT (-2) +#define E_POSTED (-3) +#define E_CONNECTED (-4) +#define E_BAD_STATE (-5) +#define E_NO_ROOM (-6) +#define E_NOT_POSTED (-7) +#define E_UNKNOWN_COMMAND (-8) +#define E_NO_MATCH (-9) +#define E_NOT_SELECTABLE (-10) +#define E_NOT_CONNECTED (-11) +#define E_REQUEST_DENIED (-12) +#define E_INVALID_FIELD (-13) +#define E_CURRENT (-14) + +#endif diff --git a/CMakeLua/Source/CursesDialog/form/fld_arg.c b/CMakeLua/Source/CursesDialog/form/fld_arg.c new file mode 100644 index 0000000..56a5738 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_arg.c @@ -0,0 +1,91 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_arg.c,v 1.1 2001/11/05 16:52:59 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_fieldtype_arg( +| FIELDTYPE *typ, +| void * (* const make_arg)(va_list *), +| void * (* const copy_arg)(const void *), +| void (* const free_arg)(void *) ) +| +| Description : Connects to the type additional arguments necessary +| for a set_field_type call. The various function pointer +| arguments are: +| make_arg : allocates a structure for the field +| specific parameters. +| copy_arg : duplicate the structure created by +| make_arg +| free_arg : Release the memory allocated by make_arg +| or copy_arg +| +| At least make_arg must be non-NULL. +| You may pass NULL for copy_arg and free_arg if your +| make_arg function doesn't allocate memory and your +| arg fits into the storage for a (void*). +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid argument ++--------------------------------------------------------------------------*/ +int set_fieldtype_arg(FIELDTYPE * typ, + void * (* const make_arg)(va_list *), + void * (* const copy_arg)(const void *), + void (* const free_arg)(void *)) +{ + if ( !typ || !make_arg ) + RETURN(E_BAD_ARGUMENT); + + typ->status |= _HAS_ARGS; + typ->makearg = make_arg; + typ->copyarg = copy_arg; + typ->freearg = free_arg; + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : void *field_arg(const FIELD *field) +| +| Description : Retrieve pointer to the fields argument structure. +| +| Return Values : Pointer to structure or NULL if none is defined. ++--------------------------------------------------------------------------*/ +void *field_arg(const FIELD * field) +{ + return Normalize_Field(field)->arg; +} + +/* fld_arg.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_attr.c b/CMakeLua/Source/CursesDialog/form/fld_attr.c new file mode 100644 index 0000000..d4c0b57 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_attr.c @@ -0,0 +1,116 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ +#if defined(__hpux) + #define _XOPEN_SOURCE_EXTENDED +#endif + #include "form.priv.h" +#if defined(__hpux) + #undef _XOPEN_SOURCE_EXTENDED +#endif +MODULE_ID("$Id: fld_attr.c,v 1.2 2003/03/11 20:25:50 hoffman Exp $") + +/*---------------------------------------------------------------------------- + Field-Attribute manipulation routines + --------------------------------------------------------------------------*/ +/* "Template" macro to generate a function to set a fields attribute */ +#define GEN_FIELD_ATTR_SET_FCT( name ) \ +int set_field_ ## name (FIELD * field, chtype attr)\ +{\ + int res = E_BAD_ARGUMENT;\ + if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\ + {\ + Normalize_Field( field );\ + if ((field -> name) != attr)\ + {\ + field -> name = attr;\ + res = _nc_Synchronize_Attributes( field );\ + }\ + else\ + res = E_OK;\ + }\ + RETURN(res);\ +} + +/* "Template" macro to generate a function to get a fields attribute */ +#define GEN_FIELD_ATTR_GET_FCT( name ) \ +chtype field_ ## name (const FIELD * field)\ +{\ + return ( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\ +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_fore(FIELD *field, chtype attr) +| +| Description : Sets the foreground of the field used to display the +| field contents. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid attributes +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +GEN_FIELD_ATTR_SET_FCT( fore ) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : chtype field_fore(const FIELD *) +| +| Description : Retrieve fields foreground attribute +| +| Return Values : The foreground attribute ++--------------------------------------------------------------------------*/ +GEN_FIELD_ATTR_GET_FCT( fore ) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_back(FIELD *field, chtype attr) +| +| Description : Sets the background of the field used to display the +| fields extend. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid attributes +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +GEN_FIELD_ATTR_SET_FCT( back ) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : chtype field_back(const +| +| Description : Retrieve fields background attribute +| +| Return Values : The background attribute ++--------------------------------------------------------------------------*/ +GEN_FIELD_ATTR_GET_FCT( back ) + +/* fld_attr.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_current.c b/CMakeLua/Source/CursesDialog/form/fld_current.c new file mode 100644 index 0000000..6265023 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_current.c @@ -0,0 +1,124 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ +#include "form.priv.h" + +MODULE_ID("$Id: fld_current.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_current_field(FORM * form,FIELD * field) +| +| Description : Set the current field of the form to the specified one. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid form or field pointer +| E_REQUEST_DENIED - field not selectable +| E_BAD_STATE - called from a hook routine +| E_INVALID_FIELD - current field can't be left +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int set_current_field(FORM * form, FIELD * field) +{ + int err = E_OK; + + if ( !form || !field ) + RETURN(E_BAD_ARGUMENT); + + if ( (form != field->form) || Field_Is_Not_Selectable(field) ) + RETURN(E_REQUEST_DENIED); + + if (!(form->status & _POSTED)) + { + form->current = field; + form->curpage = field->page; + } + else + { + if (form->status & _IN_DRIVER) + err = E_BAD_STATE; + else + { + if (form->current != field) + { + if (!_nc_Internal_Validation(form)) + err = E_INVALID_FIELD; + else + { + Call_Hook(form,fieldterm); + if (field->page != form->curpage) + { + Call_Hook(form,formterm); + err = _nc_Set_Form_Page(form,field->page,field); + Call_Hook(form,forminit); + } + else + { + err = _nc_Set_Current_Field(form,field); + } + Call_Hook(form,fieldinit); + _nc_Refresh_Current_Field(form); + } + } + } + } + RETURN(err); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELD *current_field(const FORM * form) +| +| Description : Return the current field. +| +| Return Values : Pointer to the current field. ++--------------------------------------------------------------------------*/ +FIELD *current_field(const FORM * form) +{ + return Normalize_Form(form)->current; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int field_index(const FIELD * field) +| +| Description : Return the index of the field in the field-array of +| the form. +| +| Return Values : >= 0 : field index +| -1 : fieldpointer invalid or field not connected ++--------------------------------------------------------------------------*/ +int field_index(const FIELD * field) +{ + return ( (field && field->form) ? field->index : -1 ); +} + +/* fld_current.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_def.c b/CMakeLua/Source/CursesDialog/form/fld_def.c new file mode 100644 index 0000000..320422f --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_def.c @@ -0,0 +1,346 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_def.c,v 1.2 2002/01/25 14:06:38 king Exp $") + +/* this can't be readonly */ +static FIELD default_field = { + 0, /* status */ + 0, /* rows */ + 0, /* cols */ + 0, /* frow */ + 0, /* fcol */ + 0, /* drows */ + 0, /* dcols */ + 0, /* maxgrow*/ + 0, /* nrow */ + 0, /* nbuf */ + NO_JUSTIFICATION, /* just */ + 0, /* page */ + 0, /* index */ + (int)' ', /* pad */ + A_NORMAL, /* fore */ + A_NORMAL, /* back */ + ALL_FIELD_OPTS, /* opts */ + (FIELD *)0, /* snext */ + (FIELD *)0, /* sprev */ + (FIELD *)0, /* link */ + (FORM *)0, /* form */ + (FIELDTYPE *)0, /* type */ + (char *)0, /* arg */ + (char *)0, /* buf */ + (char *)0 /* usrptr */ +}; + +FIELD *_nc_Default_Field = &default_field; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : TypeArgument *_nc_Make_Argument( +| const FIELDTYPE *typ, +| va_list *ap, +| int *err ) +| +| Description : Create an argument structure for the specified type. +| Use the type-dependant argument list to construct +| it. +| +| Return Values : Pointer to argument structure. Maybe NULL. +| In case of an error in *err an errorcounter is increased. ++--------------------------------------------------------------------------*/ +TypeArgument* +_nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err) +{ + TypeArgument *res = (TypeArgument *)0; + TypeArgument *p; + + if (typ && (typ->status & _HAS_ARGS)) + { + assert(err && ap); + if (typ->status & _LINKED_TYPE) + { + p = (TypeArgument *)malloc(sizeof(TypeArgument)); + if (p) + { + p->left = _nc_Make_Argument(typ->left ,ap,err); + p->right = _nc_Make_Argument(typ->right,ap,err); + return p; + } + else + *err += 1; + } else + { + assert(typ->makearg != 0); + if ( !(res=(TypeArgument *)typ->makearg(ap)) ) + *err += 1; + } + } + return res; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : TypeArgument *_nc_Copy_Argument(const FIELDTYPE *typ, +| const TypeArgument *argp, +| int *err ) +| +| Description : Create a copy of an argument structure for the specified +| type. +| +| Return Values : Pointer to argument structure. Maybe NULL. +| In case of an error in *err an errorcounter is increased. ++--------------------------------------------------------------------------*/ +TypeArgument* +_nc_Copy_Argument(const FIELDTYPE *typ, + const TypeArgument *argp, int *err) +{ + TypeArgument *res = (TypeArgument *)0; + TypeArgument *p; + + if ( typ && (typ->status & _HAS_ARGS) ) + { + assert(err && argp); + if (typ->status & _LINKED_TYPE) + { + p = (TypeArgument *)malloc(sizeof(TypeArgument)); + if (p) + { + p->left = _nc_Copy_Argument(typ,argp->left ,err); + p->right = _nc_Copy_Argument(typ,argp->right,err); + return p; + } + *err += 1; + } + else + { + if (typ->copyarg) + { + if (!(res = (TypeArgument *)(typ->copyarg((const void *)argp)))) + *err += 1; + } + else + res = (TypeArgument *)argp; + } + } + return res; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : void _nc_Free_Argument(const FIELDTYPE *typ, +| TypeArgument * argp ) +| +| Description : Release memory associated with the argument structure +| for the given fieldtype. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +void +_nc_Free_Argument(const FIELDTYPE * typ, TypeArgument * argp) +{ + if (!typ || !(typ->status & _HAS_ARGS)) + return; + + if (typ->status & _LINKED_TYPE) + { + assert(argp != 0); + _nc_Free_Argument(typ->left ,argp->left ); + _nc_Free_Argument(typ->right,argp->right); + free(argp); + } + else + { + if (typ->freearg) + typ->freearg((void *)argp); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : bool _nc_Copy_Type( FIELD *dst, FIELD const *src ) +| +| Description : Copy argument structure of field src to field dst +| +| Return Values : TRUE - copy worked +| FALSE - error occured ++--------------------------------------------------------------------------*/ +bool +_nc_Copy_Type(FIELD *dst, FIELD const *src) +{ + int err = 0; + + assert(dst && src); + + dst->type = src->type; + dst->arg = (void *)_nc_Copy_Argument(src->type,(TypeArgument *)(src->arg),&err); + + if (err) + { + _nc_Free_Argument(dst->type,(TypeArgument *)(dst->arg)); + dst->type = (FIELDTYPE *)0; + dst->arg = (void *)0; + return FALSE; + } + else + { + if (dst->type) + dst->type->ref++; + return TRUE; + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : void _nc_Free_Type( FIELD *field ) +| +| Description : Release Argument structure for this field +| +| Return Values : - ++--------------------------------------------------------------------------*/ +void +_nc_Free_Type(FIELD *field) +{ + assert(field != 0); + if (field->type) + field->type->ref--; + _nc_Free_Argument(field->type,(TypeArgument *)(field->arg)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELD *new_field( int rows, int cols, +| int frow, int fcol, +| int nrow, int nbuf ) +| +| Description : Create a new field with this many 'rows' and 'cols', +| starting at 'frow/fcol' in the subwindow of the form. +| Allocate 'nrow' off-screen rows and 'nbuf' additional +| buffers. If an error occurs, errno is set to +| +| E_BAD_ARGUMENT - invalid argument +| E_SYSTEM_ERROR - system error +| +| Return Values : Pointer to the new field or NULL if failure. ++--------------------------------------------------------------------------*/ +FIELD *new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf) +{ + FIELD *New_Field = (FIELD *)0; + int err = E_BAD_ARGUMENT; + + if (rows>0 && + cols>0 && + frow>=0 && + fcol>=0 && + nrow>=0 && + nbuf>=0 && + ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */ + (New_Field=(FIELD *)malloc(sizeof(FIELD))) ) + { + *New_Field = default_field; + New_Field->rows = rows; + New_Field->cols = cols; + New_Field->drows = rows + nrow; + New_Field->dcols = cols; + New_Field->frow = frow; + New_Field->fcol = fcol; + New_Field->nrow = nrow; + New_Field->nbuf = nbuf; + New_Field->link = New_Field; + + if (_nc_Copy_Type(New_Field,&default_field)) + { + size_t len; + + len = Total_Buffer_Size(New_Field); + if ((New_Field->buf = (char *)malloc(len))) + { + /* Prefill buffers with blanks and insert terminating zeroes + between buffers */ + int i; + + memset(New_Field->buf,' ',len); + for(i=0;i<=New_Field->nbuf;i++) + { + New_Field->buf[(New_Field->drows*New_Field->cols+1)*(i+1)-1] + = '\0'; + } + return New_Field; + } + } + } + + if (New_Field) + free_field(New_Field); + + SET_ERROR( err ); + return (FIELD *)0; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int free_field( FIELD *field ) +| +| Description : Frees the storage allocated for the field. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid field pointer +| E_CONNECTED - field is connected ++--------------------------------------------------------------------------*/ +int free_field(FIELD * field) +{ + if (!field) + RETURN(E_BAD_ARGUMENT); + + if (field->form) + RETURN(E_CONNECTED); + + if (field == field->link) + { + if (field->buf) + free(field->buf); + } + else + { + FIELD *f; + + for(f=field;f->link != field;f = f->link) + {} + f->link = field->link; + } + _nc_Free_Type(field); + free(field); + RETURN(E_OK); +} + +/* fld_def.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_dup.c b/CMakeLua/Source/CursesDialog/form/fld_dup.c new file mode 100644 index 0000000..ecbcd83 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_dup.c @@ -0,0 +1,97 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_dup.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELD *dup_field(FIELD *field, int frow, int fcol) +| +| Description : Duplicates the field at the specified position. All +| field attributes and the buffers are copied. +| If an error occurs, errno is set to +| +| E_BAD_ARGUMENT - invalid argument +| E_SYSTEM_ERROR - system error +| +| Return Values : Pointer to the new field or NULL if failure ++--------------------------------------------------------------------------*/ +FIELD *dup_field(FIELD * field, int frow, int fcol) +{ + FIELD *New_Field = (FIELD *)0; + int err = E_BAD_ARGUMENT; + + if (field && (frow>=0) && (fcol>=0) && + ((err=E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */ + (New_Field=(FIELD *)malloc(sizeof(FIELD))) ) + { + *New_Field = *_nc_Default_Field; + New_Field->frow = frow; + New_Field->fcol = fcol; + New_Field->link = New_Field; + New_Field->rows = field->rows; + New_Field->cols = field->cols; + New_Field->nrow = field->nrow; + New_Field->drows = field->drows; + New_Field->dcols = field->dcols; + New_Field->maxgrow = field->maxgrow; + New_Field->nbuf = field->nbuf; + New_Field->just = field->just; + New_Field->fore = field->fore; + New_Field->back = field->back; + New_Field->pad = field->pad; + New_Field->opts = field->opts; + New_Field->usrptr = field->usrptr; + + if (_nc_Copy_Type(New_Field,field)) + { + size_t len; + + len = Total_Buffer_Size(New_Field); + if ( (New_Field->buf=(char *)malloc(len)) ) + { + memcpy(New_Field->buf,field->buf,len); + return New_Field; + } + } + } + + if (New_Field) + free_field(New_Field); + + SET_ERROR(err); + return (FIELD *)0; +} + +/* fld_dup.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_ftchoice.c b/CMakeLua/Source/CursesDialog/form/fld_ftchoice.c new file mode 100644 index 0000000..df40ce8 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_ftchoice.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_ftchoice.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_fieldtype_choice( +| FIELDTYPE *typ, +| bool (* const next_choice)(FIELD *,const void *), +| bool (* const prev_choice)(FIELD *,const void *)) +| +| Description : Define implementation of enumeration requests. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid arguments ++--------------------------------------------------------------------------*/ +int set_fieldtype_choice(FIELDTYPE * typ, + bool (* const next_choice) (FIELD *,const void *), + bool (* const prev_choice) (FIELD *,const void *)) +{ + if ( !typ || !next_choice || !prev_choice ) + RETURN(E_BAD_ARGUMENT); + + typ->status |= _HAS_CHOICE; + typ->next = next_choice; + typ->prev = prev_choice; + RETURN(E_OK); +} + +/* fld_ftchoice.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_ftlink.c b/CMakeLua/Source/CursesDialog/form/fld_ftlink.c new file mode 100644 index 0000000..6eec3af --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_ftlink.c @@ -0,0 +1,83 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_ftlink.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELDTYPE *link_fieldtype( +| FIELDTYPE *type1, +| FIELDTYPE *type2) +| +| Description : Create a new fieldtype built from the two given types. +| They are connected by an logical 'OR'. +| If an error occurs, errno is set to +| E_BAD_ARGUMENT - invalid arguments +| E_SYSTEM_ERROR - system error (no memory) +| +| Return Values : Fieldtype pointer or NULL if error occured. ++--------------------------------------------------------------------------*/ +FIELDTYPE *link_fieldtype(FIELDTYPE * type1, FIELDTYPE * type2) +{ + FIELDTYPE *nftyp = (FIELDTYPE *)0; + + if ( type1 && type2 ) + { + nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE)); + if (nftyp) + { + *nftyp = *_nc_Default_FieldType; + nftyp->status |= _LINKED_TYPE; + if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS) ) + nftyp->status |= _HAS_ARGS; + if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE) ) + nftyp->status |= _HAS_CHOICE; + nftyp->left = type1; + nftyp->right = type2; + type1->ref++; + type2->ref++; + } + else + { + SET_ERROR( E_SYSTEM_ERROR ); + } + } + else + { + SET_ERROR( E_BAD_ARGUMENT ); + } + return nftyp; +} + +/* fld_ftlink.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_info.c b/CMakeLua/Source/CursesDialog/form/fld_info.c new file mode 100644 index 0000000..26e8fea --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_info.c @@ -0,0 +1,91 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_info.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int field_info(const FIELD *field, +| int *rows, int *cols, +| int *frow, int *fcol, +| int *nrow, int *nbuf) +| +| Description : Retrieve infos about the fields creation parameters. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid field pointer ++--------------------------------------------------------------------------*/ +int field_info(const FIELD *field, + int *rows, int *cols, + int *frow, int *fcol, + int *nrow, int *nbuf) +{ + if (!field) + RETURN(E_BAD_ARGUMENT); + + if (rows) *rows = field->rows; + if (cols) *cols = field->cols; + if (frow) *frow = field->frow; + if (fcol) *fcol = field->fcol; + if (nrow) *nrow = field->nrow; + if (nbuf) *nbuf = field->nbuf; + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int dynamic_field_info(const FIELD *field, +| int *drows, int *dcols, +| int *maxgrow) +| +| Description : Retrieve informations about a dynamic fields current +| dynamic parameters. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid argument ++--------------------------------------------------------------------------*/ +int dynamic_field_info(const FIELD *field, + int *drows, int *dcols, int *maxgrow) +{ + if (!field) + RETURN(E_BAD_ARGUMENT); + + if (drows) *drows = field->drows; + if (dcols) *dcols = field->dcols; + if (maxgrow) *maxgrow = field->maxgrow; + + RETURN(E_OK); +} + +/* fld_info.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_just.c b/CMakeLua/Source/CursesDialog/form/fld_just.c new file mode 100644 index 0000000..212d133 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_just.c @@ -0,0 +1,81 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_just.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_just(FIELD *field, int just) +| +| Description : Set the fields type of justification. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - one of the arguments was incorrect +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int set_field_just(FIELD * field, int just) +{ + int res = E_BAD_ARGUMENT; + + if ((just==NO_JUSTIFICATION) || + (just==JUSTIFY_LEFT) || + (just==JUSTIFY_CENTER) || + (just==JUSTIFY_RIGHT) ) + { + Normalize_Field( field ); + if (field->just != just) + { + field->just = just; + res = _nc_Synchronize_Attributes( field ); + } + else + res = E_OK; + } + RETURN(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int field_just( const FIELD *field ) +| +| Description : Retrieve the fields type of justification +| +| Return Values : The justification type. ++--------------------------------------------------------------------------*/ +int field_just(const FIELD * field) +{ + return Normalize_Field( field )->just; +} + +/* fld_just.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_link.c b/CMakeLua/Source/CursesDialog/form/fld_link.c new file mode 100644 index 0000000..6153cdb --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_link.c @@ -0,0 +1,90 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_link.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELD *link_field(FIELD *field, int frow, int fcol) +| +| Description : Duplicates the field at the specified position. The +| new field shares its buffers with the original one, +| the attributes are independent. +| If an error occurs, errno is set to +| +| E_BAD_ARGUMENT - invalid argument +| E_SYSTEM_ERROR - system error +| +| Return Values : Pointer to the new field or NULL if failure ++--------------------------------------------------------------------------*/ +FIELD *link_field(FIELD * field, int frow, int fcol) +{ + FIELD *New_Field = (FIELD *)0; + int err = E_BAD_ARGUMENT; + + if (field && (frow>=0) && (fcol>=0) && + ((err=E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */ + (New_Field = (FIELD *)malloc(sizeof(FIELD))) ) + { + *New_Field = *_nc_Default_Field; + New_Field->frow = frow; + New_Field->fcol = fcol; + New_Field->link = field->link; + field->link = New_Field; + New_Field->buf = field->buf; + New_Field->rows = field->rows; + New_Field->cols = field->cols; + New_Field->nrow = field->nrow; + New_Field->nbuf = field->nbuf; + New_Field->drows = field->drows; + New_Field->dcols = field->dcols; + New_Field->maxgrow= field->maxgrow; + New_Field->just = field->just; + New_Field->fore = field->fore; + New_Field->back = field->back; + New_Field->pad = field->pad; + New_Field->opts = field->opts; + New_Field->usrptr = field->usrptr; + if (_nc_Copy_Type(New_Field,field)) + return New_Field; + } + + if (New_Field) + free_field(New_Field); + + SET_ERROR( err ); + return (FIELD *)0; +} + +/* fld_link.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_max.c b/CMakeLua/Source/CursesDialog/form/fld_max.c new file mode 100644 index 0000000..7454d15 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_max.c @@ -0,0 +1,74 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_max.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_max_field(FIELD *field, int maxgrow) +| +| Description : Set the maximum growth for a dynamic field. If maxgrow=0 +| the field may grow to any possible size. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid argument ++--------------------------------------------------------------------------*/ +int set_max_field(FIELD *field, int maxgrow) +{ + if (!field || (maxgrow<0)) + RETURN(E_BAD_ARGUMENT); + else + { + bool single_line_field = Single_Line_Field(field); + + if (maxgrow>0) + { + if (( single_line_field && (maxgrow < field->dcols)) || + (!single_line_field && (maxgrow < field->drows))) + RETURN(E_BAD_ARGUMENT); + } + field->maxgrow = maxgrow; + field->status &= ~_MAY_GROW; + if (!(field->opts & O_STATIC)) + { + if ((maxgrow==0) || + ( single_line_field && (field->dcols < maxgrow)) || + (!single_line_field && (field->drows < maxgrow))) + field->status |= _MAY_GROW; + } + } + RETURN(E_OK); +} + +/* fld_max.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_move.c b/CMakeLua/Source/CursesDialog/form/fld_move.c new file mode 100644 index 0000000..31249b2 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_move.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_move.c,v 1.1 2001/11/05 16:53:00 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int move_field(FIELD *field,int frow, int fcol) +| +| Description : Moves the disconnected field to the new location in +| the forms subwindow. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid argument passed +| E_CONNECTED - field is connected ++--------------------------------------------------------------------------*/ +int move_field(FIELD *field, int frow, int fcol) +{ + if ( !field || (frow<0) || (fcol<0) ) + RETURN(E_BAD_ARGUMENT); + + if (field->form) + RETURN(E_CONNECTED); + + field->frow = frow; + field->fcol = fcol; + RETURN(E_OK); +} + +/* fld_move.c ends here */ + diff --git a/CMakeLua/Source/CursesDialog/form/fld_newftyp.c b/CMakeLua/Source/CursesDialog/form/fld_newftyp.c new file mode 100644 index 0000000..e69b5f0 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_newftyp.c @@ -0,0 +1,125 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_newftyp.c,v 1.1 2001/11/05 16:53:01 berk Exp $") + +static FIELDTYPE const default_fieldtype = { + 0, /* status */ + 0L, /* reference count */ + (FIELDTYPE *)0, /* pointer to left operand */ + (FIELDTYPE *)0, /* pointer to right operand */ + NULL, /* makearg function */ + NULL, /* copyarg function */ + NULL, /* freearg function */ + NULL, /* field validation function */ + NULL, /* Character check function */ + NULL, /* enumerate next function */ + NULL /* enumerate previous function */ +}; + +const FIELDTYPE* _nc_Default_FieldType = &default_fieldtype; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELDTYPE *new_fieldtype( +| bool (* const field_check)(FIELD *,const void *), +| bool (* const char_check) (int, const void *) ) +| +| Description : Create a new fieldtype. The application programmer must +| write a field_check and a char_check function and give +| them as input to this call. +| If an error occurs, errno is set to +| E_BAD_ARGUMENT - invalid arguments +| E_SYSTEM_ERROR - system error (no memory) +| +| Return Values : Fieldtype pointer or NULL if error occured ++--------------------------------------------------------------------------*/ +FIELDTYPE *new_fieldtype( + bool (* const field_check)(FIELD *,const void *), + bool (* const char_check) (int,const void *) ) +{ + FIELDTYPE *nftyp = (FIELDTYPE *)0; + + if ( (field_check) || (char_check) ) + { + nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE)); + if (nftyp) + { + *nftyp = default_fieldtype; + nftyp->fcheck = field_check; + nftyp->ccheck = char_check; + } + else + { + SET_ERROR( E_SYSTEM_ERROR ); + } + } + else + { + SET_ERROR( E_BAD_ARGUMENT ); + } + return nftyp; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int free_fieldtype(FIELDTYPE *typ) +| +| Description : Release the memory associated with this fieldtype. +| +| Return Values : E_OK - success +| E_CONNECTED - there are fields referencing the type +| E_BAD_ARGUMENT - invalid fieldtype pointer ++--------------------------------------------------------------------------*/ +int free_fieldtype(FIELDTYPE *typ) +{ + if (!typ) + RETURN(E_BAD_ARGUMENT); + + if (typ->ref!=0) + RETURN(E_CONNECTED); + + if (typ->status & _RESIDENT) + RETURN(E_CONNECTED); + + if (typ->status & _LINKED_TYPE) + { + if (typ->left ) typ->left->ref--; + if (typ->right) typ->right->ref--; + } + free(typ); + RETURN(E_OK); +} + +/* fld_newftyp.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_opts.c b/CMakeLua/Source/CursesDialog/form/fld_opts.c new file mode 100644 index 0000000..eb2d4a8 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_opts.c @@ -0,0 +1,124 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ +#include "form.priv.h" + +MODULE_ID("$Id: fld_opts.c,v 1.1 2001/11/05 16:53:01 berk Exp $") + +/*---------------------------------------------------------------------------- + Field-Options manipulation routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_opts(FIELD *field, Field_Options opts) +| +| Description : Turns on the named options for this field and turns +| off all the remaining options. +| +| Return Values : E_OK - success +| E_CURRENT - the field is the current field +| E_BAD_ARGUMENT - invalid options +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int set_field_opts(FIELD * field, Field_Options opts) +{ + int res = E_BAD_ARGUMENT; + opts &= ALL_FIELD_OPTS; + if (!(opts & ~ALL_FIELD_OPTS)) + res = _nc_Synchronize_Options( Normalize_Field(field), opts ); + RETURN(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : Field_Options field_opts(const FIELD *field) +| +| Description : Retrieve the fields options. +| +| Return Values : The options. ++--------------------------------------------------------------------------*/ +Field_Options field_opts(const FIELD * field) +{ + return ALL_FIELD_OPTS & Normalize_Field( field )->opts; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int field_opts_on(FIELD *field, Field_Options opts) +| +| Description : Turns on the named options for this field and all the +| remaining options are unchanged. +| +| Return Values : E_OK - success +| E_CURRENT - the field is the current field +| E_BAD_ARGUMENT - invalid options +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int field_opts_on(FIELD * field, Field_Options opts) +{ + int res = E_BAD_ARGUMENT; + + opts &= ALL_FIELD_OPTS; + if (!(opts & ~ALL_FIELD_OPTS)) + { + Normalize_Field( field ); + res = _nc_Synchronize_Options( field, field->opts | opts ); + } + RETURN(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int field_opts_off(FIELD *field, Field_Options opts) +| +| Description : Turns off the named options for this field and all the +| remaining options are unchanged. +| +| Return Values : E_OK - success +| E_CURRENT - the field is the current field +| E_BAD_ARGUMENT - invalid options +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int field_opts_off(FIELD * field, Field_Options opts) +{ + int res = E_BAD_ARGUMENT; + + opts &= ALL_FIELD_OPTS; + if (!(opts & ~ALL_FIELD_OPTS)) + { + Normalize_Field( field ); + res = _nc_Synchronize_Options( field, field->opts & ~opts ); + } + RETURN(res); +} + +/* fld_opts.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_pad.c b/CMakeLua/Source/CursesDialog/form/fld_pad.c new file mode 100644 index 0000000..27d48d9 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_pad.c @@ -0,0 +1,78 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ +#include "form.priv.h" + +MODULE_ID("$Id: fld_pad.c,v 1.1 2001/11/05 16:53:01 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_pad(FIELD *field, int ch) +| +| Description : Set the pad character used to fill the field. This must +| be a printable character. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid field pointer or pad character +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int set_field_pad(FIELD * field, int ch) +{ + int res = E_BAD_ARGUMENT; + + Normalize_Field( field ); + if (isprint((unsigned char)ch)) + { + if (field->pad != ch) + { + field->pad = ch; + res = _nc_Synchronize_Attributes( field ); + } + else + res = E_OK; + } + RETURN(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int field_pad(const FIELD *field) +| +| Description : Retrieve the fields pad character. +| +| Return Values : The pad character. ++--------------------------------------------------------------------------*/ +int field_pad(const FIELD * field) +{ + return Normalize_Field( field )->pad; +} + +/* fld_pad.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_page.c b/CMakeLua/Source/CursesDialog/form/fld_page.c new file mode 100644 index 0000000..d7af996 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_page.c @@ -0,0 +1,76 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_page.c,v 1.1 2001/11/05 16:53:01 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_new_page(FIELD *field, bool new_page_flag) +| +| Description : Marks the field as the beginning of a new page of +| the form. +| +| Return Values : E_OK - success +| E_CONNECTED - field is connected ++--------------------------------------------------------------------------*/ +int set_new_page(FIELD * field, bool new_page_flag) +{ + Normalize_Field(field); + if (field->form) + RETURN(E_CONNECTED); + + if (new_page_flag) + field->status |= _NEWPAGE; + else + field->status &= ~_NEWPAGE; + + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : bool new_page(const FIELD *field) +| +| Description : Retrieve the info whether or not the field starts a +| new page on the form. +| +| Return Values : TRUE - field starts a new page +| FALSE - field doesn't start a new page ++--------------------------------------------------------------------------*/ +bool new_page(const FIELD * field) +{ + return (Normalize_Field(field)->status & _NEWPAGE) ? TRUE : FALSE; +} + +/* fld_page.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_stat.c b/CMakeLua/Source/CursesDialog/form/fld_stat.c new file mode 100644 index 0000000..b60bab4 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_stat.c @@ -0,0 +1,73 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_stat.c,v 1.1 2001/11/05 16:53:01 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_status(FIELD *field, bool status) +| +| Description : Set or clear the 'changed' indication flag for that +| fields primary buffer. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +int set_field_status(FIELD * field, bool status) +{ + Normalize_Field( field ); + + if (status) + field->status |= _CHANGED; + else + field->status &= ~_CHANGED; + + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : bool field_status(const FIELD *field) +| +| Description : Retrieve the value of the 'changed' indication flag +| for that fields primary buffer. +| +| Return Values : TRUE - buffer has been changed +| FALSE - buffer has not been changed ++--------------------------------------------------------------------------*/ +bool field_status(const FIELD * field) +{ + return ((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE); +} + +/* fld_stat.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_type.c b/CMakeLua/Source/CursesDialog/form/fld_type.c new file mode 100644 index 0000000..a77ceb9 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_type.c @@ -0,0 +1,51 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_type.c,v 1.2 2001/11/06 13:40:07 hoffman Exp $") + + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELDTYPE *field_type(const FIELD *field) +| +| Description : Retrieve the associated fieldtype for this field. +| +| Return Values : Pointer to fieldtype of NULL if none is defined. ++--------------------------------------------------------------------------*/ +FIELDTYPE *field_type(const FIELD * field) +{ + return Normalize_Field(field)->type; +} + +/* fld_type.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fld_user.c b/CMakeLua/Source/CursesDialog/form/fld_user.c new file mode 100644 index 0000000..f0b6042 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fld_user.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fld_user.c,v 1.1 2001/11/05 16:53:01 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_userptr(FIELD *field, void *usrptr) +| +| Description : Set the pointer that is reserved in any field to store +| application relevant informations +| +| Return Values : E_OK - on success ++--------------------------------------------------------------------------*/ +int set_field_userptr(FIELD * field, void *usrptr) +{ + Normalize_Field( field )->usrptr = usrptr; + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : void *field_userptr(const FIELD *field) +| +| Description : Return the pointer that is reserved in any field to +| store application relevant informations. +| +| Return Values : Value of pointer. If no such pointer has been set, +| NULL is returned ++--------------------------------------------------------------------------*/ +void *field_userptr(const FIELD *field) +{ + return Normalize_Field( field )->usrptr; +} + +/* fld_user.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/form.h b/CMakeLua/Source/CursesDialog/form/form.h new file mode 100644 index 0000000..94f05af --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/form.h @@ -0,0 +1,401 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#ifndef FORM_H +#define FORM_H + +#if defined(__sun__) && defined(__GNUC__) + #define _MSE_INT_H +#endif + +#include + +/* figure out which curses.h to include */ +# if defined(CURSES_HAVE_NCURSES_H) +# include +# elif defined(CURSES_HAVE_NCURSES_NCURSES_H) +# include +# elif defined(CURSES_HAVE_NCURSES_CURSES_H) +# include +# else +# include +# endif + +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + +typedef int Form_Options; +typedef int Field_Options; + + /********** + * _PAGE * + **********/ + +typedef struct { + short pmin; /* index of first field on page */ + short pmax; /* index of last field on page */ + short smin; /* index of top leftmost field on page */ + short smax; /* index of bottom rightmost field on page */ +} _PAGE; + + /********** + * FIELD * + **********/ + +typedef struct fieldnode { + unsigned short status; /* flags */ + short rows; /* size in rows */ + short cols; /* size in cols */ + short frow; /* first row */ + short fcol; /* first col */ + int drows; /* dynamic rows */ + int dcols; /* dynamic cols */ + int maxgrow; /* maximum field growth */ + int nrow; /* offscreen rows */ + short nbuf; /* additional buffers */ + short just; /* justification */ + short page; /* page on form */ + short index; /* into form -> field */ + int pad; /* pad character */ + chtype fore; /* foreground attribute */ + chtype back; /* background attribute */ + Field_Options opts; /* options */ + struct fieldnode * snext; /* sorted order pointer */ + struct fieldnode * sprev; /* sorted order pointer */ + struct fieldnode * link; /* linked field chain */ + struct formnode * form; /* containing form */ + struct typenode * type; /* field type */ + void * arg; /* argument for type */ + char * buf; /* field buffers */ + void * usrptr; /* user pointer */ +} FIELD; + + /************** + * FIELDTYPE * + **************/ + +typedef struct typenode { + unsigned short status; /* flags */ + long ref; /* reference count */ + struct typenode * left; /* ptr to operand for | */ + struct typenode * right; /* ptr to operand for | */ + + void* (*makearg)(va_list *); /* make fieldtype arg */ + void* (*copyarg)(const void *); /* copy fieldtype arg */ + void (*freearg)(void *); /* free fieldtype arg */ + + bool (*fcheck)(FIELD *,const void *); /* field validation */ + bool (*ccheck)(int,const void *); /* character validation */ + + bool (*next)(FIELD *,const void *); /* enumerate next value */ + bool (*prev)(FIELD *,const void *); /* enumerate prev value */ + +} FIELDTYPE; + + /********* + * FORM * + *********/ + +typedef struct formnode { + unsigned short status; /* flags */ + short rows; /* size in rows */ + short cols; /* size in cols */ + int currow; /* current row in field window*/ + int curcol; /* current col in field window*/ + int toprow; /* in scrollable field window */ + int begincol; /* in horiz. scrollable field */ + short maxfield; /* number of fields */ + short maxpage; /* number of pages */ + short curpage; /* index into page */ + Form_Options opts; /* options */ + WINDOW * win; /* window */ + WINDOW * sub; /* subwindow */ + WINDOW * w; /* window for current field */ + FIELD ** field; /* field [maxfield] */ + FIELD * current; /* current field */ + _PAGE * page; /* page [maxpage] */ + void * usrptr; /* user pointer */ + + void (*forminit)(struct formnode *); + void (*formterm)(struct formnode *); + void (*fieldinit)(struct formnode *); + void (*fieldterm)(struct formnode *); + +} FORM; + +typedef void (*Form_Hook)(FORM *); + + /*************************** + * miscellaneous #defines * + ***************************/ + +/* field justification */ +#define NO_JUSTIFICATION (0) +#define JUSTIFY_LEFT (1) +#define JUSTIFY_CENTER (2) +#define JUSTIFY_RIGHT (3) + +/* field options */ +#define O_VISIBLE (0x0001) +#define O_ACTIVE (0x0002) +#define O_PUBLIC (0x0004) +#define O_EDIT (0x0008) +#define O_WRAP (0x0010) +#define O_BLANK (0x0020) +#define O_AUTOSKIP (0x0040) +#define O_NULLOK (0x0080) +#define O_PASSOK (0x0100) +#define O_STATIC (0x0200) + +/* form options */ +#define O_NL_OVERLOAD (0x0001) +#define O_BS_OVERLOAD (0x0002) + +/* form driver commands */ +#define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */ +#define REQ_PREV_PAGE (KEY_MAX + 2) /* move to previous page */ +#define REQ_FIRST_PAGE (KEY_MAX + 3) /* move to first page */ +#define REQ_LAST_PAGE (KEY_MAX + 4) /* move to last page */ + +#define REQ_NEXT_FIELD (KEY_MAX + 5) /* move to next field */ +#define REQ_PREV_FIELD (KEY_MAX + 6) /* move to previous field */ +#define REQ_FIRST_FIELD (KEY_MAX + 7) /* move to first field */ +#define REQ_LAST_FIELD (KEY_MAX + 8) /* move to last field */ +#define REQ_SNEXT_FIELD (KEY_MAX + 9) /* move to sorted next field */ +#define REQ_SPREV_FIELD (KEY_MAX + 10) /* move to sorted prev field */ +#define REQ_SFIRST_FIELD (KEY_MAX + 11) /* move to sorted first field */ +#define REQ_SLAST_FIELD (KEY_MAX + 12) /* move to sorted last field */ +#define REQ_LEFT_FIELD (KEY_MAX + 13) /* move to left to field */ +#define REQ_RIGHT_FIELD (KEY_MAX + 14) /* move to right to field */ +#define REQ_UP_FIELD (KEY_MAX + 15) /* move to up to field */ +#define REQ_DOWN_FIELD (KEY_MAX + 16) /* move to down to field */ + +#define REQ_NEXT_CHAR (KEY_MAX + 17) /* move to next char in field */ +#define REQ_PREV_CHAR (KEY_MAX + 18) /* move to prev char in field */ +#define REQ_NEXT_LINE (KEY_MAX + 19) /* move to next line in field */ +#define REQ_PREV_LINE (KEY_MAX + 20) /* move to prev line in field */ +#define REQ_NEXT_WORD (KEY_MAX + 21) /* move to next word in field */ +#define REQ_PREV_WORD (KEY_MAX + 22) /* move to prev word in field */ +#define REQ_BEG_FIELD (KEY_MAX + 23) /* move to first char in field */ +#define REQ_END_FIELD (KEY_MAX + 24) /* move after last char in fld */ +#define REQ_BEG_LINE (KEY_MAX + 25) /* move to beginning of line */ +#define REQ_END_LINE (KEY_MAX + 26) /* move after last char in line */ +#define REQ_LEFT_CHAR (KEY_MAX + 27) /* move left in field */ +#define REQ_RIGHT_CHAR (KEY_MAX + 28) /* move right in field */ +#define REQ_UP_CHAR (KEY_MAX + 29) /* move up in field */ +#define REQ_DOWN_CHAR (KEY_MAX + 30) /* move down in field */ + +#define REQ_NEW_LINE (KEY_MAX + 31) /* insert/overlay new line */ +#define REQ_INS_CHAR (KEY_MAX + 32) /* insert blank char at cursor */ +#define REQ_INS_LINE (KEY_MAX + 33) /* insert blank line at cursor */ +#define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */ +#define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */ +#define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */ +#define REQ_DEL_WORD (KEY_MAX + 37) /* delete line at cursor */ +#define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */ +#define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */ +#define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */ +#define REQ_OVL_MODE (KEY_MAX + 41) /* begin overlay mode */ +#define REQ_INS_MODE (KEY_MAX + 42) /* begin insert mode */ +#define REQ_SCR_FLINE (KEY_MAX + 43) /* scroll field forward a line */ +#define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */ +#define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */ +#define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */ +#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */ +#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */ +#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */ +#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */ +#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */ +#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */ +#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */ +#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */ + +#define REQ_VALIDATION (KEY_MAX + 55) /* validate field */ +#define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */ +#define REQ_PREV_CHOICE (KEY_MAX + 57) /* display prev field choice */ + +#define MIN_FORM_COMMAND (KEY_MAX + 1) /* used by form_driver */ +#define MAX_FORM_COMMAND (KEY_MAX + 57) /* used by form_driver */ + +#if defined(MAX_COMMAND) +# if (MAX_FORM_COMMAND > MAX_COMMAND) +# error Something is wrong -- MAX_FORM_COMMAND is greater than MAX_COMMAND +# elif (MAX_COMMAND != (KEY_MAX + 128)) +# error Something is wrong -- MAX_COMMAND is already inconsistently defined. +# endif +#else +# define MAX_COMMAND (KEY_MAX + 128) +#endif + + /************************* + * standard field types * + *************************/ +extern FIELDTYPE *TYPE_ALPHA, + *TYPE_ALNUM, + *TYPE_ENUM, + *TYPE_INTEGER, + *TYPE_NUMERIC, + *TYPE_REGEXP; + + /************************************ + * built-in additional field types * + * They are not defined in SVr4 * + ************************************/ +extern FIELDTYPE *TYPE_IPV4; /* Internet IP Version 4 address */ + + /*********************** + * Default objects * + ***********************/ +extern FORM *_nc_Default_Form; +extern FIELD *_nc_Default_Field; + + + /*********************** + * FIELDTYPE routines * + ***********************/ +extern FIELDTYPE + *new_fieldtype( + bool (* const field_check)(FIELD *,const void *), + bool (* const char_check)(int,const void *)), + *link_fieldtype(FIELDTYPE *,FIELDTYPE *); + +extern int free_fieldtype(FIELDTYPE *), + set_fieldtype_choice (FIELDTYPE *, + bool (* const next_choice)(FIELD *,const void *), + bool (* const prev_choice)(FIELD *,const void *)); + + /******************* + * FIELD routines * + *******************/ +extern FIELD *new_field(int,int,int,int,int,int), + *dup_field(FIELD *,int,int), + *link_field(FIELD *,int,int); + +extern int free_field(FIELD *), + field_info(const FIELD *,int *,int *,int *,int *,int *,int *), + dynamic_field_info(const FIELD *,int *,int *,int *), + set_max_field( FIELD *,int), + move_field(FIELD *,int,int), + set_field_type(FIELD *,FIELDTYPE *,...), + set_new_page(FIELD *,bool), + set_field_just(FIELD *,int), + field_just(const FIELD *), + set_field_fore(FIELD *,chtype), + set_field_back(FIELD *,chtype), + set_field_pad(FIELD *,int), + field_pad(const FIELD *), + set_field_buffer(FIELD *,int,const char *), + set_field_status(FIELD *,bool), + set_field_userptr(FIELD *, void *), + set_field_opts(FIELD *,Field_Options), + field_opts_on(FIELD *,Field_Options), + field_opts_off(FIELD *,Field_Options); + +extern chtype field_fore(const FIELD *), + field_back(const FIELD *); + +extern bool new_page(const FIELD *), + field_status(const FIELD *); + +extern void *field_arg(const FIELD *); + +extern void *field_userptr(const FIELD *); + +extern FIELDTYPE + *field_type(const FIELD *); + +extern char* field_buffer(const FIELD *,int); + +extern Field_Options + field_opts(const FIELD *); + + /****************** + * FORM routines * + ******************/ +extern FORM *new_form(FIELD **); + +extern FIELD **form_fields(const FORM *), + *current_field(const FORM *); + +extern WINDOW *form_win(const FORM *), + *form_sub(const FORM *); + +extern Form_Hook + form_init(const FORM *), + form_term(const FORM *), + field_init(const FORM *), + field_term(const FORM *); + +extern int free_form(FORM *), + set_form_fields(FORM *,FIELD **), + field_count(const FORM *), + set_form_win(FORM *,WINDOW *), + set_form_sub(FORM *,WINDOW *), + set_current_field(FORM *,FIELD *), + field_index(const FIELD *), + set_form_page(FORM *,int), + form_page(const FORM *), + scale_form(const FORM *,int *,int *), + set_form_init(FORM *,Form_Hook), + set_form_term(FORM *,Form_Hook), + set_field_init(FORM *,Form_Hook), + set_field_term(FORM *,Form_Hook), + post_form(FORM *), + unpost_form(FORM *), + pos_form_cursor(FORM *), + form_driver(FORM *,int), + set_form_userptr(FORM *,void *), + set_form_opts(FORM *,Form_Options), + form_opts_on(FORM *,Form_Options), + form_opts_off(FORM *,Form_Options), + form_request_by_name(const char *); + +extern const char + *form_request_name(int); + +extern void *form_userptr(const FORM *); + +extern Form_Options + form_opts(const FORM *); + +extern bool data_ahead(const FORM *), + data_behind(const FORM *); + +#ifdef __cplusplus + } +#endif + +#endif /* FORM_H */ diff --git a/CMakeLua/Source/CursesDialog/form/form.priv.h b/CMakeLua/Source/CursesDialog/form/form.priv.h new file mode 100644 index 0000000..3691f2f --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/form.priv.h @@ -0,0 +1,134 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "mf_common.h" +#include "form.h" + +/* get around odd bug on aCC and itanium */ +#if defined(__hpux) && defined(__ia64) +#define getmaxx __getmaxx +#define getmaxy __getmaxy +#endif + +/* form status values */ +#define _OVLMODE (0x04) /* Form is in overlay mode */ +#define _WINDOW_MODIFIED (0x10) /* Current field window has been modified */ +#define _FCHECK_REQUIRED (0x20) /* Current field needs validation */ + +/* field status values */ +#define _CHANGED (0x01) /* Field has been changed */ +#define _NEWTOP (0x02) /* Vertical scrolling occured */ +#define _NEWPAGE (0x04) /* field begins new page of form */ +#define _MAY_GROW (0x08) /* dynamic field may still grow */ + +/* fieldtype status values */ +#define _LINKED_TYPE (0x01) /* Type is a linked type */ +#define _HAS_ARGS (0x02) /* Type has arguments */ +#define _HAS_CHOICE (0x04) /* Type has choice methods */ +#define _RESIDENT (0x08) /* Type is builtin */ + +/* This are the field options required to be a selectable field in field + navigation requests */ +#define O_SELECTABLE (O_ACTIVE | O_VISIBLE) + +/* If form is NULL replace form argument by default-form */ +#define Normalize_Form(form) ((form)=(form)?(form):_nc_Default_Form) + +/* If field is NULL replace field argument by default-field */ +#define Normalize_Field(field) ((field)=(field)?(field):_nc_Default_Field) + +/* Retrieve forms window */ +#define Get_Form_Window(form) \ + ((form)->sub?(form)->sub:((form)->win?(form)->win:stdscr)) + +/* Calculate the size for a single buffer for this field */ +#define Buffer_Length(field) ((field)->drows * (field)->dcols) + +/* Calculate the total size of all buffers for this field */ +#define Total_Buffer_Size(field) \ + ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) ) + +/* Logic to determine whether or not a field is single lined */ +#define Single_Line_Field(field) \ + (((field)->rows + (field)->nrow) == 1) + +/* Logic to determine whether or not a field is selectable */ +#define Field_Is_Selectable(f) (((f)->opts & O_SELECTABLE)==O_SELECTABLE) +#define Field_Is_Not_Selectable(f) (((f)->opts & O_SELECTABLE)!=O_SELECTABLE) + +typedef struct typearg { + struct typearg *left; + struct typearg *right; +} TypeArgument; + +/* This is a dummy request code (normally invalid) to be used internally + with the form_driver() routine to position to the first active field + on the form +*/ +#define FIRST_ACTIVE_MAGIC (-291056) + +#define ALL_FORM_OPTS ( \ + O_NL_OVERLOAD |\ + O_BS_OVERLOAD ) + +#define ALL_FIELD_OPTS ( \ + O_VISIBLE |\ + O_ACTIVE |\ + O_PUBLIC |\ + O_EDIT |\ + O_WRAP |\ + O_BLANK |\ + O_AUTOSKIP|\ + O_NULLOK |\ + O_PASSOK |\ + O_STATIC ) + + +#define C_BLANK ' ' +#define is_blank(c) ((c)==C_BLANK) + +extern const FIELDTYPE* _nc_Default_FieldType; + +extern TypeArgument* _nc_Make_Argument(const FIELDTYPE*,va_list*,int*); +extern TypeArgument *_nc_Copy_Argument(const FIELDTYPE*,const TypeArgument*, int*); +extern void _nc_Free_Argument(const FIELDTYPE*,TypeArgument*); +extern bool _nc_Copy_Type(FIELD*, FIELD const *); +extern void _nc_Free_Type(FIELD *); + +extern int _nc_Synchronize_Attributes(FIELD*); +extern int _nc_Synchronize_Options(FIELD*,Field_Options); +extern int _nc_Set_Form_Page(FORM*,int,FIELD*); +extern int _nc_Refresh_Current_Field(FORM*); +extern FIELD* _nc_First_Active_Field(FORM*); +extern bool _nc_Internal_Validation(FORM*); +extern int _nc_Set_Current_Field(FORM*,FIELD*); +extern int _nc_Position_Form_Cursor(FORM*); diff --git a/CMakeLua/Source/CursesDialog/form/frm_cursor.c b/CMakeLua/Source/CursesDialog/form/frm_cursor.c new file mode 100644 index 0000000..291a4cf --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_cursor.c @@ -0,0 +1,66 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ +#include "form.priv.h" + +MODULE_ID("$Id: frm_cursor.c,v 1.1 2001/11/05 16:53:01 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int pos_form_cursor(FORM * form) +| +| Description : Moves the form window cursor to the location required +| by the form driver to resume form processing. This may +| be needed after the application calls a curses library +| I/O routine that modifies the cursor position. +| +| Return Values : E_OK - Success +| E_SYSTEM_ERROR - System error. +| E_BAD_ARGUMENT - Invalid form pointer +| E_NOT_POSTED - Form is not posted ++--------------------------------------------------------------------------*/ +int pos_form_cursor(FORM * form) +{ + int res; + + if (!form) + res = E_BAD_ARGUMENT; + else + { + if (!(form->status & _POSTED)) + res = E_NOT_POSTED; + else + res = _nc_Position_Form_Cursor(form); + } + RETURN(res); +} + +/* frm_cursor.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_data.c b/CMakeLua/Source/CursesDialog/form/frm_data.c new file mode 100644 index 0000000..efe20a3 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_data.c @@ -0,0 +1,183 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_data.c,v 1.3 2002/06/18 20:30:00 king Exp $") + +extern int winnstr(WINDOW *, char *, int); + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : bool data_behind(const FORM *form) +| +| Description : Check for off-screen data behind. This is nearly trivial +| becose the begin of a field is fixed. +| +| Return Values : TRUE - there are off-screen data behind +| FALSE - there are no off-screen data behind ++--------------------------------------------------------------------------*/ +bool data_behind(const FORM *form) +{ + bool result = FALSE; + + if (form && (form->status & _POSTED) && form->current) + { + FIELD *field; + + field = form->current; + if (!Single_Line_Field(field)) + { + result = (form->toprow==0) ? FALSE : TRUE; + } + else + { + result = (form->begincol==0) ? FALSE : TRUE; + } + } + return(result); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static char * After_Last_Non_Pad_Position( +| char *buffer, +| int len, +| int pad) +| +| Description : Find the last position in the buffer that doesn't +| contain a padding character. +| +| Return Values : The pointer to this position ++--------------------------------------------------------------------------*/ +INLINE +static char * After_Last_Non_Pad_Position(char *buffer, int len, int pad) +{ + char *end = buffer + len; + + assert(buffer && len>=0); + while ( (buffer < end) && (*(end-1)==pad) ) + end--; + + return end; +} + +#define SMALL_BUFFER_SIZE (80) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : bool data_ahead(const FORM *form) +| +| Description : Check for off-screen data ahead. This is more difficult +| because a dynamic field has a variable end. +| +| Return Values : TRUE - there are off-screen data ahead +| FALSE - there are no off-screen data ahead ++--------------------------------------------------------------------------*/ +bool data_ahead(const FORM *form) +{ + bool result = FALSE; + + if (form && (form->status & _POSTED) && form->current) + { + static char buffer[SMALL_BUFFER_SIZE + 1]; + FIELD *field; + bool large_buffer; + bool cursor_moved = FALSE; + char *bp; + char *found_content; + int pos; + + field = form->current; + assert(form->w != 0); + + large_buffer = (field->cols > SMALL_BUFFER_SIZE); + if (large_buffer) + bp = (char *)malloc((size_t)(field->cols) + 1); + else + bp = buffer; + + assert(bp != 0); + + if (Single_Line_Field(field)) + { + int check_len; + + pos = form->begincol + field->cols; + while (pos < field->dcols) + { + check_len = field->dcols - pos; + if ( check_len >= field->cols ) + check_len = field->cols; + cursor_moved = TRUE; + wmove(form->w,0,pos); + winnstr(form->w,bp,check_len); + found_content = + After_Last_Non_Pad_Position(bp,check_len,field->pad); + if (found_content==bp) + pos += field->cols; + else + { + result = TRUE; + break; + } + } + } + else + { + pos = form->toprow + field->rows; + while (pos < field->drows) + { + cursor_moved = TRUE; + wmove(form->w,pos,0); + pos++; + winnstr(form->w,bp,field->cols); + found_content = + After_Last_Non_Pad_Position(bp,field->cols,field->pad); + if (found_content!=bp) + { + result = TRUE; + break; + } + } + } + + if (large_buffer) + free(bp); + + if (cursor_moved) + wmove(form->w,form->currow,form->curcol); + } + return(result); +} + +/* frm_data.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_def.c b/CMakeLua/Source/CursesDialog/form/frm_def.c new file mode 100644 index 0000000..4c0d2e0 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_def.c @@ -0,0 +1,376 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_def.c,v 1.2 2002/01/25 14:06:39 king Exp $") + +/* this can't be readonly */ +static FORM default_form = { + 0, /* status */ + 0, /* rows */ + 0, /* cols */ + 0, /* currow */ + 0, /* curcol */ + 0, /* toprow */ + 0, /* begincol */ + -1, /* maxfield */ + -1, /* maxpage */ + -1, /* curpage */ + ALL_FORM_OPTS, /* opts */ + (WINDOW *)0, /* win */ + (WINDOW *)0, /* sub */ + (WINDOW *)0, /* w */ + (FIELD **)0, /* field */ + (FIELD *)0, /* current */ + (_PAGE *)0, /* page */ + (char *)0, /* usrptr */ + NULL, /* forminit */ + NULL, /* formterm */ + NULL, /* fieldinit */ + NULL /* fieldterm */ +}; + +FORM *_nc_Default_Form = &default_form; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Insert_Field_By_Position( +| FIELD *new_field, +| FIELD *head ) +| +| Description : Insert new_field into sorted fieldlist with head "head" +| and return new head of sorted fieldlist. Sorting +| criteria is (row,column). This is a circular list. +| +| Return Values : New head of sorted fieldlist ++--------------------------------------------------------------------------*/ +static FIELD *Insert_Field_By_Position(FIELD *newfield, FIELD *head) +{ + FIELD *current, *newhead; + + assert(newfield != 0); + + if (!head) + { /* empty list is trivial */ + newhead = newfield->snext = newfield->sprev = newfield; + } + else + { + newhead = current = head; + while((current->frow < newfield->frow) || + ((current->frow==newfield->frow) && + (current->fcol < newfield->fcol)) ) + { + current = current->snext; + if (current==head) + { /* We cycled through. Reset head to indicate that */ + head = (FIELD *)0; + break; + } + } + /* we leave the loop with current pointing to the field after newfield*/ + newfield->snext = current; + newfield->sprev = current->sprev; + newfield->snext->sprev = newfield; + newfield->sprev->snext = newfield; + if (current==head) + newhead = newfield; + } + return(newhead); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Disconnect_Fields(FORM *form) +| +| Description : Break association between form and array of fields. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Disconnect_Fields( FORM * form ) +{ + if (form->field) + { + FIELD **fields; + + for(fields=form->field;*fields;fields++) + { + if (form == (*fields)->form) + (*fields)->form = (FORM *)0; + } + + form->rows = form->cols = 0; + form->maxfield = form->maxpage = -1; + form->field = (FIELD **)0; + if (form->page) + free(form->page); + form->page = (_PAGE *)0; + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Connect_Fields(FORM *form, FIELD **fields) +| +| Description : Set association between form and array of fields. +| +| Return Values : E_OK - no error +| E_CONNECTED - a field is already connected +| E_BAD_ARGUMENT - Invalid form pointer or field array +| E_SYSTEM_ERROR - not enough memory ++--------------------------------------------------------------------------*/ +static int Connect_Fields(FORM * form, FIELD ** fields) +{ + int field_cnt, j; + int page_nr; + int maximum_row_in_field, maximum_col_in_field; + _PAGE *pg; + + assert(form != 0); + + form->field = fields; + form->maxfield = 0; + form->maxpage = 0; + + if (!fields) + RETURN(E_OK); + + page_nr = 0; + /* store formpointer in fields and count pages */ + for(field_cnt=0;fields[field_cnt];field_cnt++) + { + if (fields[field_cnt]->form) + RETURN(E_CONNECTED); + if ( field_cnt==0 || + (fields[field_cnt]->status & _NEWPAGE)) + page_nr++; + fields[field_cnt]->form = form; + } + if (field_cnt==0) + RETURN(E_BAD_ARGUMENT); + + /* allocate page structures */ + if ( (pg = (_PAGE *)malloc(page_nr * sizeof(_PAGE))) != (_PAGE *)0 ) + { + form->page = pg; + } + else + RETURN(E_SYSTEM_ERROR); + + /* Cycle through fields and calculate page boundaries as well as + size of the form */ + for(j=0;jpmin = j; + else + { + if (fields[j]->status & _NEWPAGE) + { + pg->pmax = j-1; + pg++; + pg->pmin = j; + } + } + + maximum_row_in_field = fields[j]->frow + fields[j]->rows; + maximum_col_in_field = fields[j]->fcol + fields[j]->cols; + + if (form->rows < maximum_row_in_field) + form->rows = maximum_row_in_field; + if (form->cols < maximum_col_in_field) + form->cols = maximum_col_in_field; + } + + pg->pmax = field_cnt-1; + form->maxfield = field_cnt; + form->maxpage = page_nr; + + /* Sort fields on form pages */ + for(page_nr = 0;page_nr < form->maxpage; page_nr++) + { + FIELD *fld = (FIELD *)0; + for(j = form->page[page_nr].pmin;j <= form->page[page_nr].pmax;j++) + { + fields[j]->index = j; + fields[j]->page = page_nr; + fld = Insert_Field_By_Position(fields[j],fld); + } + form->page[page_nr].smin = fld->index; + form->page[page_nr].smax = fld->sprev->index; + } + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Associate_Fields(FORM *form, FIELD **fields) +| +| Description : Set association between form and array of fields. +| If there are fields, position to first active field. +| +| Return Values : E_OK - success +| any other - error occured ++--------------------------------------------------------------------------*/ +INLINE static int Associate_Fields(FORM *form, FIELD **fields) +{ + int res = Connect_Fields(form,fields); + if (res == E_OK) + { + if (form->maxpage>0) + { + form->curpage = 0; + form_driver(form,FIRST_ACTIVE_MAGIC); + } + else + { + form->curpage = -1; + form->current = (FIELD *)0; + } + } + return(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FORM *new_form( FIELD **fields ) +| +| Description : Create new form with given array of fields. +| +| Return Values : Pointer to form. NULL if error occured. ++--------------------------------------------------------------------------*/ +FORM *new_form(FIELD ** fields) +{ + int err = E_SYSTEM_ERROR; + + FORM *form = (FORM *)malloc(sizeof(FORM)); + + if (form) + { + *form = *_nc_Default_Form; + if ((err=Associate_Fields(form,fields))!=E_OK) + { + free_form(form); + form = (FORM *)0; + } + } + + if (!form) + SET_ERROR(err); + + return(form); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int free_form( FORM *form ) +| +| Description : Release internal memory associated with form. +| +| Return Values : E_OK - no error +| E_BAD_ARGUMENT - invalid form pointer +| E_POSTED - form is posted ++--------------------------------------------------------------------------*/ +int free_form(FORM * form) +{ + if ( !form ) + RETURN(E_BAD_ARGUMENT); + + if ( form->status & _POSTED) + RETURN(E_POSTED); + + Disconnect_Fields( form ); + if (form->page) + free(form->page); + free(form); + + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_fields( FORM *form, FIELD **fields ) +| +| Description : Set a new association of an array of fields to a form +| +| Return Values : E_OK - no error +| E_BAD_ARGUMENT - invalid form pointer +| E_POSTED - form is posted ++--------------------------------------------------------------------------*/ +int set_form_fields(FORM * form, FIELD ** fields) +{ + FIELD **old; + int res; + + if ( !form ) + RETURN(E_BAD_ARGUMENT); + + if ( form->status & _POSTED ) + RETURN(E_POSTED); + + old = form->field; + Disconnect_Fields( form ); + + if( (res = Associate_Fields( form, fields )) != E_OK ) + Connect_Fields( form, old ); + + RETURN(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELD **form_fields( const FORM *form ) +| +| Description : Retrieve array of fields +| +| Return Values : Pointer to field array ++--------------------------------------------------------------------------*/ +FIELD **form_fields(const FORM * form) +{ + return (Normalize_Form( form )->field); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int field_count( const FORM *form ) +| +| Description : Retrieve number of fields +| +| Return Values : Number of fields, -1 if none are defined ++--------------------------------------------------------------------------*/ +int field_count(const FORM * form) +{ + return (Normalize_Form( form )->maxfield); +} + +/* frm_def.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_driver.c b/CMakeLua/Source/CursesDialog/form/frm_driver.c new file mode 100644 index 0000000..a2deec1 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_driver.c @@ -0,0 +1,3880 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ +#if defined(__hpux) + #define _XOPEN_SOURCE_EXTENDED +#endif +#include "form.priv.h" +#if defined(__hpux) + #undef _XOPEN_SOURCE_EXTENDED +#endif + +/* AIX seems to define this */ +#undef lines +#undef columns + +MODULE_ID("$Id: frm_driver.c,v 1.15 2002/10/23 20:43:34 king Exp $") + +/* These declarations are missing from curses.h on some platforms. */ +extern int winnstr(WINDOW *, char *, int); +#if defined(__DECCXX_VER) || (defined(__GNUC__) && defined(__osf__)) +extern int waddnstr(WINDOW *,const char *const,int); +extern void wbkgdset(WINDOW *,chtype); +#ifndef untouchwin +extern int untouchwin(WINDOW *); +#endif +extern void wcursyncup(WINDOW *); +extern int copywin(const WINDOW*,WINDOW*,int,int,int,int,int,int,int); +extern bool is_linetouched(WINDOW *,int); +extern void wsyncup(WINDOW *); +extern WINDOW *derwin(WINDOW *,int,int,int,int); +extern int winsnstr(WINDOW *, const char *,int); +extern int winsdelln(WINDOW *,int); +#endif + +/*---------------------------------------------------------------------------- + This is the core module of the form library. It contains the majority + of the driver routines as well as the form_driver function. + + Essentially this module is nearly the whole library. This is because + all the functions in this module depends on some others in the module, + so it makes no sense to split them into separate files because they + will always be linked together. The only acceptable concern is turnaround + time for this module, but now we have all Pentiums or Riscs, so what! + + The driver routines are grouped into nine generic categories: + + a) Page Navigation ( all functions prefixed by PN_ ) + The current page of the form is left and some new page is + entered. + b) Inter-Field Navigation ( all functions prefixed by FN_ ) + The current field of the form is left and some new field is + entered. + c) Intra-Field Navigation ( all functions prefixed by IFN_ ) + The current position in the current field is changed. + d) Vertical Scrolling ( all functions prefixed by VSC_ ) + Esseantially this is a specialization of Intra-Field navigation. + It has to check for a multi-line field. + e) Horizontal Scrolling ( all functions prefixed by HSC_ ) + Esseantially this is a specialization of Intra-Field navigation. + It has to check for a single-line field. + f) Field Editing ( all functions prefixed by FE_ ) + The content of the current field is changed + g) Edit Mode requests ( all functions prefixed by EM_ ) + Switching between insert and overlay mode + h) Field-Validation requests ( all functions prefixed by FV_ ) + Perform verifications of the field. + i) Choice requests ( all functions prefixed by CR_ ) + Requests to enumerate possible field values + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Some remarks on the placements of assert() macros : + I use them only on "strategic" places, i.e. top level entries where + I want to make sure that things are set correctly. Throughout subordinate + routines I omit them mostly. + --------------------------------------------------------------------------*/ + +/* +Some options that may effect compatibility in behavior to SVr4 forms, +but they are here to allow a more intuitive and user friendly behaviour of +our form implementation. This doesn't affect the API, so we feel it is +uncritical. + +The initial implementation tries to stay very close with the behaviour +of the original SVr4 implementation, although in some areas it is quite +clear that this isn't the most appropriate way. As far as possible this +sources will allow you to build a forms lib that behaves quite similar +to SVr4, but now and in the future we will give you better options. +Perhaps at some time we will make this configurable at runtime. +*/ + +/* Implement a more user-friendly previous/next word behaviour */ +#define FRIENDLY_PREV_NEXT_WORD (1) +/* Fix the wrong behaviour for forms with all fields inactive */ +#define FIX_FORM_INACTIVE_BUG (1) +/* Allow dynamic field growth also when navigating past the end */ +#define GROW_IF_NAVIGATE (1) + +/*---------------------------------------------------------------------------- + Forward references to some internally used static functions + --------------------------------------------------------------------------*/ +static int Inter_Field_Navigation ( int (* const fct) (FORM *), FORM * form ); +static int FN_Next_Field (FORM * form); +static int FN_Previous_Field (FORM * form); +static int FE_New_Line(FORM *); +static int FE_Delete_Previous(FORM *); + +/*---------------------------------------------------------------------------- + Macro Definitions. + + Some Remarks on that: I use the convention to use UPPERCASE for constants + defined by Macros. If I provide a macro as a kind of inline routine to + provide some logic, I use my Upper_Lower case style. + --------------------------------------------------------------------------*/ + +/* Calculate the position of a single row in a field buffer */ +#define Position_Of_Row_In_Buffer(field,row) ((row)*(field)->dcols) + +/* Calculate start address for the fields buffer# N */ +#define Address_Of_Nth_Buffer(field,N) \ + ((field)->buf + (N)*(1+Buffer_Length(field))) + +/* Calculate the start address of the row in the fields specified buffer# N */ +#define Address_Of_Row_In_Nth_Buffer(field,N,row) \ + (Address_Of_Nth_Buffer(field,N) + Position_Of_Row_In_Buffer(field,row)) + +/* Calculate the start address of the row in the fields primary buffer */ +#define Address_Of_Row_In_Buffer(field,row) \ + Address_Of_Row_In_Nth_Buffer(field,0,row) + +/* Calculate the start address of the row in the forms current field + buffer# N */ +#define Address_Of_Current_Row_In_Nth_Buffer(form,N) \ + Address_Of_Row_In_Nth_Buffer((form)->current,N,(form)->currow) + +/* Calculate the start address of the row in the forms current field + primary buffer */ +#define Address_Of_Current_Row_In_Buffer(form) \ + Address_Of_Current_Row_In_Nth_Buffer(form,0) + +/* Calculate the address of the cursor in the forms current field + primary buffer */ +#define Address_Of_Current_Position_In_Nth_Buffer(form,N) \ + (Address_Of_Current_Row_In_Nth_Buffer(form,N) + (form)->curcol) + +/* Calculate the address of the cursor in the forms current field + buffer# N */ +#define Address_Of_Current_Position_In_Buffer(form) \ + Address_Of_Current_Position_In_Nth_Buffer(form,0) + +/* Logic to decide wether or not a field is actually a field with + vertical or horizontal scrolling */ +#define Is_Scroll_Field(field) \ + (((field)->drows > (field)->rows) || \ + ((field)->dcols > (field)->cols)) + +/* Logic to decide whether or not a field needs to have an individual window + instead of a derived window because it contains invisible parts. + This is true for non-public fields and for scrollable fields. */ +#define Has_Invisible_Parts(field) \ + (!((field)->opts & O_PUBLIC) || \ + Is_Scroll_Field(field)) + +/* Logic to decide whether or not a field needs justification */ +#define Justification_Allowed(field) \ + (((field)->just != NO_JUSTIFICATION) && \ + (Single_Line_Field(field)) && \ + (((field)->dcols == (field)->cols) && \ + ((field)->opts & O_STATIC)) ) + +/* Logic to determine whether or not a dynamic field may still grow */ +#define Growable(field) ((field)->status & _MAY_GROW) + +/* Macro to set the attributes for a fields window */ +#define Set_Field_Window_Attributes(field,win) \ +( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \ + wattrset((win),(field)->fore) ) + +/* Logic to decide whether or not a field really appears on the form */ +#define Field_Really_Appears(field) \ + ((field->form) &&\ + (field->form->status & _POSTED) &&\ + (field->opts & O_VISIBLE) &&\ + (field->page == field->form->curpage)) + +/* Logic to determine whether or not we are on the first position in the + current field */ +#define First_Position_In_Current_Field(form) \ + (((form)->currow==0) && ((form)->curcol==0)) + + +#define Minimum(a,b) (((a)<=(b)) ? (a) : (b)) +#define Maximum(a,b) (((a)>=(b)) ? (a) : (b)) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static char *Get_Start_Of_Data(char * buf, int blen) +| +| Description : Return pointer to first non-blank position in buffer. +| If buffer is empty return pointer to buffer itself. +| +| Return Values : Pointer to first non-blank position in buffer ++--------------------------------------------------------------------------*/ +INLINE static char *Get_Start_Of_Data(char * buf, int blen) +{ + char *p = buf; + char *end = &buf[blen]; + + assert(buf && blen>=0); + while( (p < end) && is_blank(*p) ) + p++; + return( (p==end) ? buf : p ); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static char *After_End_Of_Data(char * buf, int blen) +| +| Description : Return pointer after last non-blank position in buffer. +| If buffer is empty, return pointer to buffer itself. +| +| Return Values : Pointer to position after last non-blank position in +| buffer. ++--------------------------------------------------------------------------*/ +INLINE static char *After_End_Of_Data(char * buf,int blen) +{ + char *p = &buf[blen]; + + assert(buf && blen>=0); + while( (p>buf) && is_blank(p[-1]) ) + p--; + return( p ); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static char *Get_First_Whitespace_Character( +| char * buf, int blen) +| +| Description : Position to the first whitespace character. +| +| Return Values : Pointer to first whitespace character in buffer. ++--------------------------------------------------------------------------*/ +INLINE static char *Get_First_Whitespace_Character(char * buf, int blen) +{ + char *p = buf; + char *end = &p[blen]; + + assert(buf && blen>=0); + while( (p < end) && !is_blank(*p)) + p++; + return( (p==end) ? buf : p ); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static char *After_Last_Whitespace_Character( +| char * buf, int blen) +| +| Description : Get the position after the last whitespace character. +| +| Return Values : Pointer to position after last whitespace character in +| buffer. ++--------------------------------------------------------------------------*/ +INLINE static char *After_Last_Whitespace_Character(char * buf, int blen) +{ + char *p = &buf[blen]; + + assert(buf && blen>=0); + while( (p>buf) && !is_blank(p[-1]) ) + p--; + return( p ); +} + +/* Set this to 1 to use the div_t version. This is a good idea if your + compiler has an intrinsic div() support. Unfortunately GNU-C has it + not yet. + N.B.: This only works if form->curcol follows immediately form->currow + and both are of type int. +*/ +#define USE_DIV_T (0) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Adjust_Cursor_Position( +| FORM * form, const char * pos) +| +| Description : Set current row and column of the form to values +| corresponding to the buffer position. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +INLINE static void Adjust_Cursor_Position(FORM * form, const char * pos) +{ + FIELD *field; + int idx; + + field = form->current; + assert( pos >= field->buf && field->dcols > 0); + idx = (int)( pos - field->buf ); +#if USE_DIV_T + *((div_t *)&(form->currow)) = div(idx,field->dcols); +#else + form->currow = idx / field->dcols; + form->curcol = idx - field->cols * form->currow; +#endif + if ( field->drows < form->currow ) + form->currow = 0; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Buffer_To_Window( +| const FIELD * field, +| WINDOW * win) +| +| Description : Copy the buffer to the window. If its a multiline +| field, the buffer is split to the lines of the +| window without any editing. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Buffer_To_Window(const FIELD * field, WINDOW * win) +{ + int width, height; + int len; + int row; + char *pBuffer; + + assert(win && field); + + width = getmaxx(win); + height = getmaxy(win); + + for(row=0, pBuffer=field->buf; + row < height; + row++, pBuffer += width ) + { + if ((len = (int)( After_End_Of_Data( pBuffer, width ) - pBuffer )) > 0) + { + wmove( win, row, 0 ); + waddnstr( win, pBuffer, len ); + } + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Window_To_Buffer( +| WINDOW * win, +| FIELD * field) +| +| Description : Copy the content of the window into the buffer. +| The multiple lines of a window are simply +| concatenated into the buffer. Pad characters in +| the window will be replaced by blanks in the buffer. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Window_To_Buffer(WINDOW * win, FIELD * field) +{ + int pad; + int len = 0; + char *p; + int row, height; + + assert(win && field && field->buf ); + + pad = field->pad; + p = field->buf; + height = getmaxy(win); + + for(row=0; (row < height) && (row < field->drows); row++ ) + { + wmove( win, row, 0 ); + len += winnstr( win, p+len, field->dcols ); + } + p[len] = '\0'; + + /* replace visual padding character by blanks in buffer */ + if (pad != C_BLANK) + { + int i; + for(i=0; istatus & _WINDOW_MODIFIED) + { + form->status &= ~_WINDOW_MODIFIED; + form->status |= _FCHECK_REQUIRED; + Window_To_Buffer(form->w,form->current); + wmove(form->w,form->currow,form->curcol); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Field_Grown( FIELD *field, int amount) +| +| Description : This function is called for growable dynamic fields +| only. It has to increase the buffers and to allocate +| a new window for this field. +| This function has the side effect to set a new +| field-buffer pointer, the dcols and drows values +| as well as a new current Window for the field. +| +| Return Values : TRUE - field successfully increased +| FALSE - there was some error ++--------------------------------------------------------------------------*/ +static bool Field_Grown(FIELD * field, int amount) +{ + bool result = FALSE; + + if (field && Growable(field)) + { + bool single_line_field = Single_Line_Field(field); + int old_buflen = Buffer_Length(field); + int new_buflen; + int old_dcols = field->dcols; + int old_drows = field->drows; + char *oldbuf = field->buf; + char *newbuf; + + int growth; + FORM *form = field->form; + bool need_visual_update = ((form != (FORM *)0) && + (form->status & _POSTED) && + (form->current==field)); + + if (need_visual_update) + Synchronize_Buffer(form); + + if (single_line_field) + { + growth = field->cols * amount; + if (field->maxgrow) + growth = Minimum(field->maxgrow - field->dcols,growth); + field->dcols += growth; + if (field->dcols == field->maxgrow) + field->status &= ~_MAY_GROW; + } + else + { + growth = (field->rows + field->nrow) * amount; + if (field->maxgrow) + growth = Minimum(field->maxgrow - field->drows,growth); + field->drows += growth; + if (field->drows == field->maxgrow) + field->status &= ~_MAY_GROW; + } + /* drows, dcols changed, so we get really the new buffer length */ + new_buflen = Buffer_Length(field); + newbuf=(char *)malloc((size_t)Total_Buffer_Size(field)); + if (!newbuf) + { /* restore to previous state */ + field->dcols = old_dcols; + field->drows = old_drows; + if (( single_line_field && (field->dcols!=field->maxgrow)) || + (!single_line_field && (field->drows!=field->maxgrow))) + field->status |= _MAY_GROW; + return FALSE; + } + else + { /* Copy all the buffers. This is the reason why we can't + just use realloc(). + */ + int i; + char *old_bp; + char *new_bp; + + field->buf = newbuf; + for(i=0;i<=field->nbuf;i++) + { + new_bp = Address_Of_Nth_Buffer(field,i); + old_bp = oldbuf + i*(1+old_buflen); + memcpy(new_bp,old_bp,(size_t)old_buflen); + if (new_buflen > old_buflen) + memset(new_bp + old_buflen,C_BLANK, + (size_t)(new_buflen - old_buflen)); + *(new_bp + new_buflen) = '\0'; + } + + if (need_visual_update) + { + WINDOW *new_window = newpad(field->drows,field->dcols); + if (!new_window) + { /* restore old state */ + field->dcols = old_dcols; + field->drows = old_drows; + field->buf = oldbuf; + if (( single_line_field && + (field->dcols!=field->maxgrow)) || + (!single_line_field && + (field->drows!=field->maxgrow))) + field->status |= _MAY_GROW; + free( newbuf ); + return FALSE; + } + assert(form!=(FORM *)0); + delwin(form->w); + form->w = new_window; + Set_Field_Window_Attributes(field,form->w); + werase(form->w); + Buffer_To_Window(field,form->w); + untouchwin(form->w); + wmove(form->w,form->currow,form->curcol); + } + + free(oldbuf); + /* reflect changes in linked fields */ + if (field != field->link) + { + FIELD *linked_field; + for(linked_field = field->link; + linked_field!= field; + linked_field = linked_field->link) + { + linked_field->buf = field->buf; + linked_field->drows = field->drows; + linked_field->dcols = field->dcols; + } + } + result = TRUE; + } + } + return(result); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int _nc_Position_Form_Cursor(FORM * form) +| +| Description : Position the cursor in the window for the current +| field to be in sync. with the currow and curcol +| values. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid form pointer +| E_SYSTEM_ERROR - form has no current field or +| field-window ++--------------------------------------------------------------------------*/ +int +_nc_Position_Form_Cursor(FORM * form) +{ + FIELD *field; + WINDOW *formwin; + + if (!form) + return(E_BAD_ARGUMENT); + + if (!form->w || !form->current) + return(E_SYSTEM_ERROR); + + field = form->current; + formwin = Get_Form_Window(form); + + wmove( form->w, form->currow, form->curcol ); + if ( Has_Invisible_Parts(field) ) + { + /* in this case fieldwin isn't derived from formwin, so we have + to move the cursor in formwin by hand... */ + wmove(formwin, + field->frow + form->currow - form->toprow, + field->fcol + form->curcol - form->begincol); + wcursyncup(formwin); + } + else + wcursyncup(form->w); + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int _nc_Refresh_Current_Field(FORM * form) +| +| Description : Propagate the changes in the fields window to the +| window of the form. +| +| Return Values : E_OK - on success +| E_BAD_ARGUMENT - invalid form pointer +| E_SYSTEM_ERROR - general error ++--------------------------------------------------------------------------*/ +int +_nc_Refresh_Current_Field(FORM * form) +{ + WINDOW *formwin; + FIELD *field; + + if (!form) + RETURN(E_BAD_ARGUMENT); + + if (!form->w || !form->current) + RETURN(E_SYSTEM_ERROR); + + field = form->current; + formwin = Get_Form_Window(form); + + if (field->opts & O_PUBLIC) + { + if (Is_Scroll_Field(field)) + { + /* Again, in this case the fieldwin isn't derived from formwin, + so we have to perform a copy operation. */ + if (Single_Line_Field(field)) + { /* horizontal scrolling */ + if (form->curcol < form->begincol) + form->begincol = form->curcol; + else + { + if (form->curcol >= (form->begincol + field->cols)) + form->begincol = form->curcol - field->cols + 1; + } + copywin(form->w, + formwin, + 0, + form->begincol, + field->frow, + field->fcol, + field->frow, + field->cols + field->fcol - 1, + 0); + } + else + { /* A multiline, i.e. vertical scrolling field */ + int row_after_bottom,first_modified_row,first_unmodified_row; + + if (field->drows > field->rows) + { + row_after_bottom = form->toprow + field->rows; + if (form->currow < form->toprow) + { + form->toprow = form->currow; + field->status |= _NEWTOP; + } + if (form->currow >= row_after_bottom) + { + form->toprow = form->currow - field->rows + 1; + field->status |= _NEWTOP; + } + if (field->status & _NEWTOP) + { /* means we have to copy whole range */ + first_modified_row = form->toprow; + first_unmodified_row = first_modified_row + field->rows; + field->status &= ~_NEWTOP; + } + else + { /* we try to optimize : finding the range of touched + lines */ + first_modified_row = form->toprow; + while(first_modified_row < row_after_bottom) + { + if (is_linetouched(form->w,first_modified_row)) + break; + first_modified_row++; + } + first_unmodified_row = first_modified_row; + while(first_unmodified_row < row_after_bottom) + { + if (!is_linetouched(form->w,first_unmodified_row)) + break; + first_unmodified_row++; + } + } + } + else + { + first_modified_row = form->toprow; + first_unmodified_row = first_modified_row + field->rows; + } + if (first_unmodified_row != first_modified_row) + copywin(form->w, + formwin, + first_modified_row, + 0, + field->frow + first_modified_row - form->toprow, + field->fcol, + field->frow + first_unmodified_row - form->toprow - 1, + field->cols + field->fcol - 1, + 0); + } + wsyncup(formwin); + } + else + { /* if the field-window is simply a derived window, i.e. contains + no invisible parts, the whole thing is trivial + */ + wsyncup(form->w); + } + } + untouchwin(form->w); + return _nc_Position_Form_Cursor(form); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Perform_Justification( +| FIELD * field, +| WINDOW * win) +| +| Description : Output field with requested justification +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Perform_Justification(FIELD * field, WINDOW * win) +{ + char *bp; + int len; + int col = 0; + + bp = Get_Start_Of_Data(field->buf,Buffer_Length(field)); + len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field)) - bp); + + if (len>0) + { + assert(win && (field->drows == 1) && (field->dcols == field->cols)); + + switch(field->just) + { + case JUSTIFY_LEFT: + break; + case JUSTIFY_CENTER: + col = (field->cols - len)/2; + break; + case JUSTIFY_RIGHT: + col = field->cols - len; + break; + default: + break; + } + + wmove(win,0,col); + waddnstr(win,bp,len); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Undo_Justification( +| FIELD * field, +| WINDOW * win) +| +| Description : Display field without any justification, i.e. +| left justified +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Undo_Justification(FIELD * field, WINDOW * win) +{ + char *bp; + int len; + + bp = Get_Start_Of_Data(field->buf,Buffer_Length(field)); + len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field))-bp); + + if (len>0) + { + assert(win != 0); + wmove(win,0,0); + waddnstr(win,bp,len); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Char( +| FIELDTYPE * typ, +| int ch, +| TypeArgument *argp) +| +| Description : Perform a single character check for character ch +| according to the fieldtype instance. +| +| Return Values : TRUE - Character is valid +| FALSE - Character is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Char(FIELDTYPE * typ, int ch, TypeArgument *argp) +{ + if (typ) + { + if (typ->status & _LINKED_TYPE) + { + assert(argp != 0); + return( + Check_Char(typ->left ,ch,argp->left ) || + Check_Char(typ->right,ch,argp->right) ); + } + else + { + if (typ->ccheck) + return typ->ccheck(ch,(void *)argp); + } + } + return (isprint((unsigned char)ch) ? TRUE : FALSE); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Display_Or_Erase_Field( +| FIELD * field, +| bool bEraseFlag) +| +| Description : Create a subwindow for the field and display the +| buffer contents (apply justification if required) +| or simply erase the field. +| +| Return Values : E_OK - on success +| E_SYSTEM_ERROR - some error (typical no memory) ++--------------------------------------------------------------------------*/ +static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag) +{ + WINDOW *win; + WINDOW *fwin; + + if (!field) + return E_SYSTEM_ERROR; + + fwin = Get_Form_Window(field->form); + win = derwin(fwin, + field->rows,field->cols,field->frow,field->fcol); + + if (!win) + return E_SYSTEM_ERROR; + else + { + if (field->opts & O_VISIBLE) + Set_Field_Window_Attributes(field,win); + else + wattrset(win,getattrs(fwin)); + werase(win); + } + + if (!bEraseFlag) + { + if (field->opts & O_PUBLIC) + { + if (Justification_Allowed(field)) + Perform_Justification(field,win); + else + Buffer_To_Window(field,win); + } + field->status &= ~_NEWTOP; + } + wsyncup(win); + delwin(win); + return E_OK; +} + +/* Macros to preset the bEraseFlag */ +#define Display_Field(field) Display_Or_Erase_Field(field,FALSE) +#define Erase_Field(field) Display_Or_Erase_Field(field,TRUE) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Synchronize_Field(FIELD * field) +| +| Description : Synchronize the windows content with the value in +| the buffer. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid field pointer +| E_SYSTEM_ERROR - some severe basic error ++--------------------------------------------------------------------------*/ +static int Synchronize_Field(FIELD * field) +{ + FORM *form; + int res = E_OK; + + if (!field) + return(E_BAD_ARGUMENT); + + if (((form=field->form) != (FORM *)0) + && Field_Really_Appears(field)) + { + if (field == form->current) + { + form->currow = form->curcol = form->toprow = form->begincol = 0; + werase(form->w); + + if ( (field->opts & O_PUBLIC) && Justification_Allowed(field) ) + Undo_Justification( field, form->w ); + else + Buffer_To_Window( field, form->w ); + + field->status |= _NEWTOP; + res = _nc_Refresh_Current_Field( form ); + } + else + res = Display_Field( field ); + } + field->status |= _CHANGED; + return(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Synchronize_Linked_Fields(FIELD * field) +| +| Description : Propagate the Synchronize_Field function to all linked +| fields. The first error that occurs in the sequence +| of updates is the returnvalue. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid field pointer +| E_SYSTEM_ERROR - some severe basic error ++--------------------------------------------------------------------------*/ +static int Synchronize_Linked_Fields(FIELD * field) +{ + FIELD *linked_field; + int res = E_OK; + int syncres; + + if (!field) + return(E_BAD_ARGUMENT); + + if (!field->link) + return(E_SYSTEM_ERROR); + + for(linked_field = field->link; + linked_field!= field; + linked_field = linked_field->link ) + { + if (((syncres=Synchronize_Field(linked_field)) != E_OK) && + (res==E_OK)) + res = syncres; + } + return(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int _nc_Synchronize_Attributes(FIELD * field) +| +| Description : If a fields visual attributes have changed, this +| routine is called to propagate those changes to the +| screen. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid field pointer +| E_SYSTEM_ERROR - some severe basic error ++--------------------------------------------------------------------------*/ +int _nc_Synchronize_Attributes(FIELD * field) +{ + FORM *form; + int res = E_OK; + WINDOW *formwin; + + if (!field) + return(E_BAD_ARGUMENT); + + if (((form=field->form) != (FORM *)0) + && Field_Really_Appears(field)) + { + if (form->current==field) + { + Synchronize_Buffer(form); + Set_Field_Window_Attributes(field,form->w); + werase(form->w); + if (field->opts & O_PUBLIC) + { + if (Justification_Allowed(field)) + Undo_Justification(field,form->w); + else + Buffer_To_Window(field,form->w); + } + else + { + formwin = Get_Form_Window(form); + copywin(form->w,formwin, + 0,0, + field->frow,field->fcol, + field->rows-1,field->cols-1,0); + wsyncup(formwin); + Buffer_To_Window(field,form->w); + field->status |= _NEWTOP; /* fake refresh to paint all */ + _nc_Refresh_Current_Field(form); + } + } + else + { + res = Display_Field(field); + } + } + return(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int _nc_Synchronize_Options(FIELD * field, +| Field_Options newopts) +| +| Description : If a fields options have changed, this routine is +| called to propagate these changes to the screen and +| to really change the behaviour of the field. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid field pointer +| E_SYSTEM_ERROR - some severe basic error ++--------------------------------------------------------------------------*/ +int +_nc_Synchronize_Options(FIELD *field, Field_Options newopts) +{ + Field_Options oldopts; + Field_Options changed_opts; + FORM *form; + int res = E_OK; + + if (!field) + return(E_BAD_ARGUMENT); + + oldopts = field->opts; + changed_opts = oldopts ^ newopts; + field->opts = newopts; + form = field->form; + + if (form) + { + if (form->current == field) + { + field->opts = oldopts; + return(E_CURRENT); + } + + if (form->status & _POSTED) + { + if ((form->curpage == field->page)) + { + if (changed_opts & O_VISIBLE) + { + if (newopts & O_VISIBLE) + res = Display_Field(field); + else + res = Erase_Field(field); + } + else + { + if ((changed_opts & O_PUBLIC) && + (newopts & O_VISIBLE)) + res = Display_Field(field); + } + } + } + } + + if (changed_opts & O_STATIC) + { + bool single_line_field = Single_Line_Field(field); + int res2 = E_OK; + + if (newopts & O_STATIC) + { /* the field becomes now static */ + field->status &= ~_MAY_GROW; + /* if actually we have no hidden columns, justification may + occur again */ + if (single_line_field && + (field->cols == field->dcols) && + (field->just != NO_JUSTIFICATION) && + Field_Really_Appears(field)) + { + res2 = Display_Field(field); + } + } + else + { /* field is no longer static */ + if ((field->maxgrow==0) || + ( single_line_field && (field->dcols < field->maxgrow)) || + (!single_line_field && (field->drows < field->maxgrow))) + { + field->status |= _MAY_GROW; + /* a field with justification now changes its behaviour, + so we must redisplay it */ + if (single_line_field && + (field->just != NO_JUSTIFICATION) && + Field_Really_Appears(field)) + { + res2 = Display_Field(field); + } + } + } + if (res2 != E_OK) + res = res2; + } + + return(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int _nc_Set_Current_Field(FORM * form, +| FIELD * newfield) +| +| Description : Make the newfield the new current field. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid form or field pointer +| E_SYSTEM_ERROR - some severe basic error ++--------------------------------------------------------------------------*/ +int +_nc_Set_Current_Field(FORM *form, FIELD *newfield) +{ + FIELD *field; + WINDOW *new_window; + + if (!form || !newfield || !form->current || (newfield->form!=form)) + return(E_BAD_ARGUMENT); + + if ( (form->status & _IN_DRIVER) ) + return(E_BAD_STATE); + + if (!(form->field)) + return(E_NOT_CONNECTED); + + field = form->current; + + if ((field!=newfield) || + !(form->status & _POSTED)) + { + if ((form->w) && + (field->opts & O_VISIBLE) && + (field->form->curpage == field->page)) + { + _nc_Refresh_Current_Field(form); + if (field->opts & O_PUBLIC) + { + if (field->drows > field->rows) + { + if (form->toprow==0) + field->status &= ~_NEWTOP; + else + field->status |= _NEWTOP; + } + else + { + if (Justification_Allowed(field)) + { + Window_To_Buffer(form->w,field); + werase(form->w); + Perform_Justification(field,form->w); + wsyncup(form->w); + } + } + } + delwin(form->w); + } + + field = newfield; + + if (Has_Invisible_Parts(field)) + new_window = newpad(field->drows,field->dcols); + else + new_window = derwin(Get_Form_Window(form), + field->rows,field->cols,field->frow,field->fcol); + + if (!new_window) + return(E_SYSTEM_ERROR); + + form->current = field; + form->w = new_window; + form->status &= ~_WINDOW_MODIFIED; + Set_Field_Window_Attributes(field,form->w); + + if (Has_Invisible_Parts(field)) + { + werase(form->w); + Buffer_To_Window(field,form->w); + } + else + { + if (Justification_Allowed(field)) + { + werase(form->w); + Undo_Justification(field,form->w); + wsyncup(form->w); + } + } + + untouchwin(form->w); + } + + form->currow = form->curcol = form->toprow = form->begincol = 0; + return(E_OK); +} + +/*---------------------------------------------------------------------------- + Intra-Field Navigation routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Next_Character(FORM * form) +| +| Description : Move to the next character in the field. In a multiline +| field this wraps at the end of the line. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - at the rightmost position ++--------------------------------------------------------------------------*/ +static int IFN_Next_Character(FORM * form) +{ + FIELD *field = form->current; + + if ((++(form->curcol))==field->dcols) + { + if ((++(form->currow))==field->drows) + { +#if GROW_IF_NAVIGATE + if (!Single_Line_Field(field) && Field_Grown(field,1)) { + form->curcol = 0; + return(E_OK); + } +#endif + form->currow--; +#if GROW_IF_NAVIGATE + if (Single_Line_Field(field) && Field_Grown(field,1)) + return(E_OK); +#endif + form->curcol--; + return(E_REQUEST_DENIED); + } + form->curcol = 0; + } + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Previous_Character(FORM * form) +| +| Description : Move to the previous character in the field. In a +| multiline field this wraps and the beginning of the +| line. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - at the leftmost position ++--------------------------------------------------------------------------*/ +static int IFN_Previous_Character(FORM * form) +{ + if ((--(form->curcol))<0) + { + if ((--(form->currow))<0) + { + form->currow++; + form->curcol++; + return(E_REQUEST_DENIED); + } + form->curcol = form->current->dcols - 1; + } + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Next_Line(FORM * form) +| +| Description : Move to the beginning of the next line in the field +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - at the last line ++--------------------------------------------------------------------------*/ +static int IFN_Next_Line(FORM * form) +{ + FIELD *field = form->current; + + if ((++(form->currow))==field->drows) + { +#if GROW_IF_NAVIGATE + if (!Single_Line_Field(field) && Field_Grown(field,1)) + return(E_OK); +#endif + form->currow--; + return(E_REQUEST_DENIED); + } + form->curcol = 0; + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Previous_Line(FORM * form) +| +| Description : Move to the beginning of the previous line in the field +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - at the first line ++--------------------------------------------------------------------------*/ +static int IFN_Previous_Line(FORM * form) +{ + if ( (--(form->currow)) < 0 ) + { + form->currow++; + return(E_REQUEST_DENIED); + } + form->curcol = 0; + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Next_Word(FORM * form) +| +| Description : Move to the beginning of the next word in the field. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - there is no next word ++--------------------------------------------------------------------------*/ +static int IFN_Next_Word(FORM * form) +{ + FIELD *field = form->current; + char *bp = Address_Of_Current_Position_In_Buffer(form); + char *s; + char *t; + + /* We really need access to the data, so we have to synchronize */ + Synchronize_Buffer(form); + + /* Go to the first whitespace after the current position (including + current position). This is then the startpoint to look for the + next non-blank data */ + s = Get_First_Whitespace_Character(bp,Buffer_Length(field) - + (int)(bp - field->buf)); + + /* Find the start of the next word */ + t = Get_Start_Of_Data(s,Buffer_Length(field) - + (int)(s - field->buf)); +#if !FRIENDLY_PREV_NEXT_WORD + if (s==t) + return(E_REQUEST_DENIED); + else +#endif + { + Adjust_Cursor_Position(form,t); + return(E_OK); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Previous_Word(FORM * form) +| +| Description : Move to the beginning of the previous word in the field. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - there is no previous word ++--------------------------------------------------------------------------*/ +static int IFN_Previous_Word(FORM * form) +{ + FIELD *field = form->current; + char *bp = Address_Of_Current_Position_In_Buffer(form); + char *s; + char *t; + bool again = FALSE; + + /* We really need access to the data, so we have to synchronize */ + Synchronize_Buffer(form); + + s = After_End_Of_Data(field->buf,(int)(bp-field->buf)); + /* s points now right after the last non-blank in the buffer before bp. + If bp was in a word, s equals bp. In this case we must find the last + whitespace in the buffer before bp and repeat the game to really find + the previous word! */ + if (s==bp) + again = TRUE; + + /* And next call now goes backward to look for the last whitespace + before that, pointing right after this, so it points to the begin + of the previous word. + */ + t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf)); +#if !FRIENDLY_PREV_NEXT_WORD + if (s==t) + return(E_REQUEST_DENIED); +#endif + if (again) + { /* and do it again, replacing bp by t */ + s = After_End_Of_Data(field->buf,(int)(t - field->buf)); + t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf)); +#if !FRIENDLY_PREV_NEXT_WORD + if (s==t) + return(E_REQUEST_DENIED); +#endif + } + Adjust_Cursor_Position(form,t); + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Beginning_Of_Field(FORM * form) +| +| Description : Place the cursor at the first non-pad character in +| the field. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int IFN_Beginning_Of_Field(FORM * form) +{ + FIELD *field = form->current; + + Synchronize_Buffer(form); + Adjust_Cursor_Position(form, + Get_Start_Of_Data(field->buf,Buffer_Length(field))); + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_End_Of_Field(FORM * form) +| +| Description : Place the cursor after the last non-pad character in +| the field. If the field occupies the last position in +| the buffer, the cursos is positioned on the last +| character. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int IFN_End_Of_Field(FORM * form) +{ + FIELD *field = form->current; + char *pos; + + Synchronize_Buffer(form); + pos = After_End_Of_Data(field->buf,Buffer_Length(field)); + if (pos==(field->buf + Buffer_Length(field))) + pos--; + Adjust_Cursor_Position(form,pos); + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Beginning_Of_Line(FORM * form) +| +| Description : Place the cursor on the first non-pad character in +| the current line of the field. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int IFN_Beginning_Of_Line(FORM * form) +{ + FIELD *field = form->current; + + Synchronize_Buffer(form); + Adjust_Cursor_Position(form, + Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form), + field->dcols)); + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_End_Of_Line(FORM * form) +| +| Description : Place the cursor after the last non-pad character in the +| current line of the field. If the field occupies the +| last column in the line, the cursor is positioned on the +| last character of the line. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int IFN_End_Of_Line(FORM * form) +{ + FIELD *field = form->current; + char *pos; + char *bp; + + Synchronize_Buffer(form); + bp = Address_Of_Current_Row_In_Buffer(form); + pos = After_End_Of_Data(bp,field->dcols); + if (pos == (bp + field->dcols)) + pos--; + Adjust_Cursor_Position(form,pos); + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Left_Character(FORM * form) +| +| Description : Move one character to the left in the current line. +| This doesn't cycle. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - already in first column ++--------------------------------------------------------------------------*/ +static int IFN_Left_Character(FORM * form) +{ + if ( (--(form->curcol)) < 0 ) + { + form->curcol++; + return(E_REQUEST_DENIED); + } + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Right_Character(FORM * form) +| +| Description : Move one character to the right in the current line. +| This doesn't cycle. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - already in last column ++--------------------------------------------------------------------------*/ +static int IFN_Right_Character(FORM * form) +{ + if ( (++(form->curcol)) == form->current->dcols ) + { +#if GROW_IF_NAVIGATE + FIELD *field = form->current; + if (Single_Line_Field(field) && Field_Grown(field,1)) + return(E_OK); +#endif + --(form->curcol); + return(E_REQUEST_DENIED); + } + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Up_Character(FORM * form) +| +| Description : Move one line up. This doesn't cycle through the lines +| of the field. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - already in last column ++--------------------------------------------------------------------------*/ +static int IFN_Up_Character(FORM * form) +{ + if ( (--(form->currow)) < 0 ) + { + form->currow++; + return(E_REQUEST_DENIED); + } + return(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int IFN_Down_Character(FORM * form) +| +| Description : Move one line down. This doesn't cycle through the +| lines of the field. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - already in last column ++--------------------------------------------------------------------------*/ +static int IFN_Down_Character(FORM * form) +{ + FIELD *field = form->current; + + if ( (++(form->currow)) == field->drows ) + { +#if GROW_IF_NAVIGATE + if (!Single_Line_Field(field) && Field_Grown(field,1)) + return(E_OK); +#endif + --(form->currow); + return(E_REQUEST_DENIED); + } + return(E_OK); +} +/*---------------------------------------------------------------------------- + END of Intra-Field Navigation routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Vertical scrolling helper routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int VSC_Generic(FORM *form, int lines) +| +| Description : Scroll multi-line field forward (lines>0) or +| backward (lines<0) this many lines. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - can't scroll ++--------------------------------------------------------------------------*/ +static int VSC_Generic(FORM *form, int lines) +{ + FIELD *field = form->current; + int res = E_REQUEST_DENIED; + int rows_to_go = (lines > 0 ? lines : -lines); + + if (lines > 0) + { + if ( (rows_to_go + form->toprow) > (field->drows - field->rows) ) + rows_to_go = (field->drows - field->rows - form->toprow); + + if (rows_to_go > 0) + { + form->currow += rows_to_go; + form->toprow += rows_to_go; + res = E_OK; + } + } + else + { + if (rows_to_go > form->toprow) + rows_to_go = form->toprow; + + if (rows_to_go > 0) + { + form->currow -= rows_to_go; + form->toprow -= rows_to_go; + res = E_OK; + } + } + return(res); +} +/*---------------------------------------------------------------------------- + End of Vertical scrolling helper routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Vertical scrolling routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Vertical_Scrolling( +| int (* const fct) (FORM *), +| FORM * form) +| +| Description : Performs the generic vertical scrolling routines. +| This has to check for a multi-line field and to set +| the _NEWTOP flag if scrolling really occured. +| +| Return Values : Propagated error code from low-level driver calls ++--------------------------------------------------------------------------*/ +static int Vertical_Scrolling(int (* const fct) (FORM *), FORM * form) +{ + int res = E_REQUEST_DENIED; + + if (!Single_Line_Field(form->current)) + { + res = fct(form); + if (res == E_OK) + form->current->status |= _NEWTOP; + } + return(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int VSC_Scroll_Line_Forward(FORM * form) +| +| Description : Scroll multi-line field forward a line +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data ahead ++--------------------------------------------------------------------------*/ +static int VSC_Scroll_Line_Forward(FORM * form) +{ + return VSC_Generic(form,1); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int VSC_Scroll_Line_Backward(FORM * form) +| +| Description : Scroll multi-line field backward a line +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data behind ++--------------------------------------------------------------------------*/ +static int VSC_Scroll_Line_Backward(FORM * form) +{ + return VSC_Generic(form,-1); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int VSC_Scroll_Page_Forward(FORM * form) +| +| Description : Scroll a multi-line field forward a page +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data ahead ++--------------------------------------------------------------------------*/ +static int VSC_Scroll_Page_Forward(FORM * form) +{ + return VSC_Generic(form,form->current->rows); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int VSC_Scroll_Half_Page_Forward(FORM * form) +| +| Description : Scroll a multi-line field forward half a page +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data ahead ++--------------------------------------------------------------------------*/ +static int VSC_Scroll_Half_Page_Forward(FORM * form) +{ + return VSC_Generic(form,(form->current->rows + 1)/2); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int VSC_Scroll_Page_Backward(FORM * form) +| +| Description : Scroll a multi-line field backward a page +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data behind ++--------------------------------------------------------------------------*/ +static int VSC_Scroll_Page_Backward(FORM * form) +{ + return VSC_Generic(form, -(form->current->rows)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int VSC_Scroll_Half_Page_Backward(FORM * form) +| +| Description : Scroll a multi-line field backward half a page +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data behind ++--------------------------------------------------------------------------*/ +static int VSC_Scroll_Half_Page_Backward(FORM * form) +{ + return VSC_Generic(form, -((form->current->rows + 1)/2)); +} +/*---------------------------------------------------------------------------- + End of Vertical scrolling routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Horizontal scrolling helper routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int HSC_Generic(FORM *form, int columns) +| +| Description : Scroll single-line field forward (columns>0) or +| backward (columns<0) this many columns. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - can't scroll ++--------------------------------------------------------------------------*/ +static int HSC_Generic(FORM *form, int columns) +{ + FIELD *field = form->current; + int res = E_REQUEST_DENIED; + int cols_to_go = (columns > 0 ? columns : -columns); + + if (columns > 0) + { + if ((cols_to_go + form->begincol) > (field->dcols - field->cols)) + cols_to_go = field->dcols - field->cols - form->begincol; + + if (cols_to_go > 0) + { + form->curcol += cols_to_go; + form->begincol += cols_to_go; + res = E_OK; + } + } + else + { + if ( cols_to_go > form->begincol ) + cols_to_go = form->begincol; + + if (cols_to_go > 0) + { + form->curcol -= cols_to_go; + form->begincol -= cols_to_go; + res = E_OK; + } + } + return(res); +} +/*---------------------------------------------------------------------------- + End of Horizontal scrolling helper routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Horizontal scrolling routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Horizontal_Scrolling( +| int (* const fct) (FORM *), +| FORM * form) +| +| Description : Performs the generic horizontal scrolling routines. +| This has to check for a single-line field. +| +| Return Values : Propagated error code from low-level driver calls ++--------------------------------------------------------------------------*/ +static int Horizontal_Scrolling(int (* const fct) (FORM *), FORM * form) +{ + if (Single_Line_Field(form->current)) + return fct(form); + else + return(E_REQUEST_DENIED); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int HSC_Scroll_Char_Forward(FORM * form) +| +| Description : Scroll single-line field forward a character +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data ahead ++--------------------------------------------------------------------------*/ +static int HSC_Scroll_Char_Forward(FORM *form) +{ + return HSC_Generic(form,1); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int HSC_Scroll_Char_Backward(FORM * form) +| +| Description : Scroll single-line field backward a character +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data behind ++--------------------------------------------------------------------------*/ +static int HSC_Scroll_Char_Backward(FORM *form) +{ + return HSC_Generic(form,-1); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int HSC_Horizontal_Line_Forward(FORM* form) +| +| Description : Scroll single-line field forward a line +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data ahead ++--------------------------------------------------------------------------*/ +static int HSC_Horizontal_Line_Forward(FORM * form) +{ + return HSC_Generic(form,form->current->cols); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int HSC_Horizontal_Half_Line_Forward(FORM* form) +| +| Description : Scroll single-line field forward half a line +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data ahead ++--------------------------------------------------------------------------*/ +static int HSC_Horizontal_Half_Line_Forward(FORM * form) +{ + return HSC_Generic(form,(form->current->cols + 1)/2); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int HSC_Horizontal_Line_Backward(FORM* form) +| +| Description : Scroll single-line field backward a line +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data behind ++--------------------------------------------------------------------------*/ +static int HSC_Horizontal_Line_Backward(FORM * form) +{ + return HSC_Generic(form,-(form->current->cols)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int HSC_Horizontal_Half_Line_Backward(FORM* form) +| +| Description : Scroll single-line field backward half a line +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - no data behind ++--------------------------------------------------------------------------*/ +static int HSC_Horizontal_Half_Line_Backward(FORM * form) +{ + return HSC_Generic(form,-((form->current->cols + 1)/2)); +} + +/*---------------------------------------------------------------------------- + End of Horizontal scrolling routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Helper routines for Field Editing + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Is_There_Room_For_A_Line(FORM * form) +| +| Description : Check whether or not there is enough room in the +| buffer to enter a whole line. +| +| Return Values : TRUE - there is enough space +| FALSE - there is not enough space ++--------------------------------------------------------------------------*/ +INLINE static bool Is_There_Room_For_A_Line(FORM * form) +{ + FIELD *field = form->current; + char *begin_of_last_line, *s; + + Synchronize_Buffer(form); + begin_of_last_line = Address_Of_Row_In_Buffer(field,(field->drows-1)); + s = After_End_Of_Data(begin_of_last_line,field->dcols); + return ((s==begin_of_last_line) ? TRUE : FALSE); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Is_There_Room_For_A_Char_In_Line(FORM * form) +| +| Description : Checks whether or not there is room for a new character +| in the current line. +| +| Return Values : TRUE - there is room +| FALSE - there is not enough room (line full) ++--------------------------------------------------------------------------*/ +INLINE static bool Is_There_Room_For_A_Char_In_Line(FORM * form) +{ + int last_char_in_line; + + wmove(form->w,form->currow,form->current->dcols-1); + last_char_in_line = (int)(winch(form->w) & A_CHARTEXT); + wmove(form->w,form->currow,form->curcol); + return (((last_char_in_line == form->current->pad) || + is_blank(last_char_in_line)) ? TRUE : FALSE); +} + +#define There_Is_No_Room_For_A_Char_In_Line(f) \ + !Is_There_Room_For_A_Char_In_Line(f) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Insert_String( +| FORM * form, +| int row, +| char *txt, +| int len ) +| +| Description : Insert the 'len' characters beginning at pointer 'txt' +| into the 'row' of the 'form'. The insertion occurs +| on the beginning of the row, all other characters are +| moved to the right. After the text a pad character will +| be inserted to separate the text from the rest. If +| necessary the insertion moves characters on the next +| line to make place for the requested insertion string. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +static int Insert_String(FORM *form, int row, char *txt, int len) +{ + FIELD *field = form->current; + char *bp = Address_Of_Row_In_Buffer(field,row); + int datalen = (int)(After_End_Of_Data(bp,field->dcols) - bp); + int freelen = field->dcols - datalen; + int requiredlen = len+1; + char *split; + int result = E_REQUEST_DENIED; + char *Space; + + Space = (char*)malloc(2*sizeof(char)); + strcpy(Space, " "); + + if (freelen >= requiredlen) + { + wmove(form->w,row,0); + winsnstr(form->w,txt,len); + wmove(form->w,row,len); + winsnstr(form->w,Space,1); + free(Space); + return E_OK; + } + else + { /* we have to move characters on the next line. If we are on the + last line this may work, if the field is growable */ + if ((row == (field->drows - 1)) && Growable(field)) + { + if (!Field_Grown(field,1)) + { + free(Space); + return(E_SYSTEM_ERROR); + } + /* !!!Side-Effect : might be changed due to growth!!! */ + bp = Address_Of_Row_In_Buffer(field,row); + } + + if (row < (field->drows - 1)) + { + split = After_Last_Whitespace_Character(bp, + (int)(Get_Start_Of_Data(bp + field->dcols - requiredlen , + requiredlen) - bp)); + /* split points now to the first character of the portion of the + line that must be moved to the next line */ + datalen = (int)(split-bp); /* + freelen has to stay on this line */ + freelen = field->dcols - (datalen + freelen); /* for the next line */ + + if ((result=Insert_String(form,row+1,split,freelen))==E_OK) + { + wmove(form->w,row,datalen); + wclrtoeol(form->w); + wmove(form->w,row,0); + winsnstr(form->w,txt,len); + wmove(form->w,row,len); + winsnstr(form->w,Space,1); + free(Space); + return E_OK; + } + } + free(Space); + return(result); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Wrapping_Not_Necessary_Or_Wrapping_Ok( +| FORM * form) +| +| Description : If a character has been entered into a field, it may +| be that wrapping has to occur. This routine checks +| whether or not wrapping is required and if so, performs +| the wrapping. +| +| Return Values : E_OK - no wrapping required or wrapping +| was successfull +| E_REQUEST_DENIED - +| E_SYSTEM_ERROR - some system error ++--------------------------------------------------------------------------*/ +static int Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM * form) +{ + FIELD *field = form->current; + int result = E_REQUEST_DENIED; + bool Last_Row = ((field->drows - 1) == form->currow); + + if ( (field->opts & O_WRAP) && /* wrapping wanted */ + (!Single_Line_Field(field)) && /* must be multi-line */ + (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */ + (!Last_Row || Growable(field)) ) /* there are more lines*/ + { + char *bp; + char *split; + int chars_to_be_wrapped; + int chars_to_remain_on_line; + if (Last_Row) + { /* the above logic already ensures, that in this case the field + is growable */ + if (!Field_Grown(field,1)) + return E_SYSTEM_ERROR; + } + bp = Address_Of_Current_Row_In_Buffer(form); + Window_To_Buffer(form->w,field); + split = After_Last_Whitespace_Character(bp,field->dcols); + /* split points to the first character of the sequence to be brought + on the next line */ + chars_to_remain_on_line = (int)(split - bp); + chars_to_be_wrapped = field->dcols - chars_to_remain_on_line; + if (chars_to_remain_on_line > 0) + { + if ((result=Insert_String(form,form->currow+1,split, + chars_to_be_wrapped)) == E_OK) + { + wmove(form->w,form->currow,chars_to_remain_on_line); + wclrtoeol(form->w); + if (form->curcol >= chars_to_remain_on_line) + { + form->currow++; + form->curcol -= chars_to_remain_on_line; + } + return E_OK; + } + } + else + return E_OK; + if (result!=E_OK) + { + wmove(form->w,form->currow,form->curcol); + wdelch(form->w); + Window_To_Buffer(form->w,field); + result = E_REQUEST_DENIED; + } + } + else + result = E_OK; /* wrapping was not necessary */ + return(result); +} + +/*---------------------------------------------------------------------------- + Field Editing routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Field_Editing( +| int (* const fct) (FORM *), +| FORM * form) +| +| Description : Generic routine for field editing requests. The driver +| routines are only called for editable fields, the +| _WINDOW_MODIFIED flag is set if editing occured. +| This is somewhat special due to the overload semantics +| of the NEW_LINE and DEL_PREV requests. +| +| Return Values : Error code from low level drivers. ++--------------------------------------------------------------------------*/ +static int Field_Editing(int (* const fct) (FORM *), FORM * form) +{ + int res = E_REQUEST_DENIED; + + /* We have to deal here with the specific case of the overloaded + behaviour of New_Line and Delete_Previous requests. + They may end up in navigational requests if we are on the first + character in a field. But navigation is also allowed on non- + editable fields. + */ + if ((fct==FE_Delete_Previous) && + (form->opts & O_BS_OVERLOAD) && + First_Position_In_Current_Field(form) ) + { + res = Inter_Field_Navigation(FN_Previous_Field,form); + } + else + { + if (fct==FE_New_Line) + { + if ((form->opts & O_NL_OVERLOAD) && + First_Position_In_Current_Field(form)) + { + res = Inter_Field_Navigation(FN_Next_Field,form); + } + else + /* FE_New_Line deals itself with the _WINDOW_MODIFIED flag */ + res = fct(form); + } + else + { + /* From now on, everything must be editable */ + if (form->current->opts & O_EDIT) + { + res = fct(form); + if (res==E_OK) + form->status |= _WINDOW_MODIFIED; + } + } + } + return res; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_New_Line(FORM * form) +| +| Description : Perform a new line request. This is rather complex +| compared to other routines in this code due to the +| rather difficult to understand description in the +| manuals. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - new line not allowed +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +static int FE_New_Line(FORM * form) +{ + FIELD *field = form->current; + char *bp, *t; + bool Last_Row = ((field->drows - 1)==form->currow); + + if (form->status & _OVLMODE) + { + if (Last_Row && + (!(Growable(field) && !Single_Line_Field(field)))) + { + if (!(form->opts & O_NL_OVERLOAD)) + return(E_REQUEST_DENIED); + wclrtoeol(form->w); + /* we have to set this here, although it is also + handled in the generic routine. The reason is, + that FN_Next_Field may fail, but the form is + definitively changed */ + form->status |= _WINDOW_MODIFIED; + return Inter_Field_Navigation(FN_Next_Field,form); + } + else + { + if (Last_Row && !Field_Grown(field,1)) + { /* N.B.: due to the logic in the 'if', LastRow==TRUE + means here that the field is growable and not + a single-line field */ + return(E_SYSTEM_ERROR); + } + wclrtoeol(form->w); + form->currow++; + form->curcol = 0; + form->status |= _WINDOW_MODIFIED; + return(E_OK); + } + } + else + { /* Insert Mode */ + if (Last_Row && + !(Growable(field) && !Single_Line_Field(field))) + { + if (!(form->opts & O_NL_OVERLOAD)) + return(E_REQUEST_DENIED); + return Inter_Field_Navigation(FN_Next_Field,form); + } + else + { + bool May_Do_It = !Last_Row && Is_There_Room_For_A_Line(form); + + if (!(May_Do_It || Growable(field))) + return(E_REQUEST_DENIED); + if (!May_Do_It && !Field_Grown(field,1)) + return(E_SYSTEM_ERROR); + + bp= Address_Of_Current_Position_In_Buffer(form); + t = After_End_Of_Data(bp,field->dcols - form->curcol); + wclrtoeol(form->w); + form->currow++; + form->curcol=0; + wmove(form->w,form->currow,form->curcol); + winsertln(form->w); + waddnstr(form->w,bp,(int)(t-bp)); + form->status |= _WINDOW_MODIFIED; + return E_OK; + } + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Insert_Character(FORM * form) +| +| Description : Insert blank character at the cursor position +| +| Return Values : E_OK +| E_REQUEST_DENIED ++--------------------------------------------------------------------------*/ +static int FE_Insert_Character(FORM * form) +{ + FIELD *field = form->current; + int result = E_REQUEST_DENIED; + + if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg))) + { + bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); + + if (There_Is_Room || + ((Single_Line_Field(field) && Growable(field)))) + { + if (!There_Is_Room && !Field_Grown(field,1)) + result = E_SYSTEM_ERROR; + else + { + winsch(form->w,(chtype)C_BLANK); + result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form); + } + } + } + return result; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Insert_Line(FORM * form) +| +| Description : Insert a blank line at the cursor position +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - line can not be inserted ++--------------------------------------------------------------------------*/ +static int FE_Insert_Line(FORM * form) +{ + FIELD *field = form->current; + int result = E_REQUEST_DENIED; + + if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg))) + { + bool Maybe_Done = (form->currow!=(field->drows-1)) && + Is_There_Room_For_A_Line(form); + + if (!Single_Line_Field(field) && + (Maybe_Done || Growable(field))) + { + if (!Maybe_Done && !Field_Grown(field,1)) + result = E_SYSTEM_ERROR; + else + { + form->curcol = 0; + winsertln(form->w); + result = E_OK; + } + } + } + return result; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Delete_Character(FORM * form) +| +| Description : Delete character at the cursor position +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int FE_Delete_Character(FORM * form) +{ + wdelch(form->w); + return E_OK; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Delete_Previous(FORM * form) +| +| Description : Delete character before cursor. Again this is a rather +| difficult piece compared to others due to the overloading +| semantics of backspace. +| N.B.: The case of overloaded BS on first field position +| is already handled in the generic routine. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - Character can't be deleted ++--------------------------------------------------------------------------*/ +static int FE_Delete_Previous(FORM * form) +{ + FIELD *field = form->current; + + if (First_Position_In_Current_Field(form)) + return E_REQUEST_DENIED; + + if ( (--(form->curcol))<0 ) + { + char *this_line, *prev_line, *prev_end, *this_end; + + form->curcol++; + if (form->status & _OVLMODE) + return E_REQUEST_DENIED; + + prev_line = Address_Of_Row_In_Buffer(field,(form->currow-1)); + this_line = Address_Of_Row_In_Buffer(field,(form->currow)); + Synchronize_Buffer(form); + prev_end = After_End_Of_Data(prev_line,field->dcols); + this_end = After_End_Of_Data(this_line,field->dcols); + if ((int)(this_end-this_line) > + (field->cols-(int)(prev_end-prev_line))) + return E_REQUEST_DENIED; + wdeleteln(form->w); + Adjust_Cursor_Position(form,prev_end); + wmove(form->w,form->currow,form->curcol); + waddnstr(form->w,this_line,(int)(this_end-this_line)); + } + else + { + wmove(form->w,form->currow,form->curcol); + wdelch(form->w); + } + return E_OK; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Delete_Line(FORM * form) +| +| Description : Delete line at cursor position. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int FE_Delete_Line(FORM * form) +{ + form->curcol = 0; + wdeleteln(form->w); + return E_OK; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Delete_Word(FORM * form) +| +| Description : Delete word at cursor position +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - failure ++--------------------------------------------------------------------------*/ +static int FE_Delete_Word(FORM * form) +{ + FIELD *field = form->current; + char *bp = Address_Of_Current_Row_In_Buffer(form); + char *ep = bp + field->dcols; + char *cp = bp + form->curcol; + char *s; + + Synchronize_Buffer(form); + if (is_blank(*cp)) + return E_REQUEST_DENIED; /* not in word */ + + /* move cursor to begin of word and erase to end of screen-line */ + Adjust_Cursor_Position(form, + After_Last_Whitespace_Character(bp,form->curcol)); + wmove(form->w,form->currow,form->curcol); + wclrtoeol(form->w); + + /* skip over word in buffer */ + s = Get_First_Whitespace_Character(cp,(int)(ep-cp)); + /* to begin of next word */ + s = Get_Start_Of_Data(s,(int)(ep - s)); + if ( (s!=cp) && !is_blank(*s)) + { + /* copy remaining line to window */ + waddnstr(form->w,s,(int)(s - After_End_Of_Data(s,(int)(ep - s)))); + } + return E_OK; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Clear_To_End_Of_Line(FORM * form) +| +| Description : Clear to end of current line. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int FE_Clear_To_End_Of_Line(FORM * form) +{ + wclrtoeol(form->w); + return E_OK; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Clear_To_End_Of_Form(FORM * form) +| +| Description : Clear to end of form. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int FE_Clear_To_End_Of_Form(FORM * form) +{ + wclrtobot(form->w); + return E_OK; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FE_Clear_Field(FORM * form) +| +| Description : Clear entire field. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int FE_Clear_Field(FORM * form) +{ + form->currow = form->curcol = 0; + werase(form->w); + return E_OK; +} +/*---------------------------------------------------------------------------- + END of Field Editing routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Edit Mode routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int EM_Overlay_Mode(FORM * form) +| +| Description : Switch to overlay mode. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int EM_Overlay_Mode(FORM * form) +{ + form->status |= _OVLMODE; + return E_OK; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int EM_Insert_Mode(FORM * form) +| +| Description : Switch to insert mode +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +static int EM_Insert_Mode(FORM * form) +{ + form->status &= ~_OVLMODE; + return E_OK; +} + +/*---------------------------------------------------------------------------- + END of Edit Mode routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Helper routines for Choice Requests + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Next_Choice( +| FIELDTYPE * typ, +| FIELD * field, +| TypeArgument *argp) +| +| Description : Get the next field choice. For linked types this is +| done recursively. +| +| Return Values : TRUE - next choice successfully retrieved +| FALSE - couldn't retrieve next choice ++--------------------------------------------------------------------------*/ +static bool Next_Choice(FIELDTYPE * typ, FIELD *field, TypeArgument *argp) +{ + if (!typ || !(typ->status & _HAS_CHOICE)) + return FALSE; + + if (typ->status & _LINKED_TYPE) + { + assert(argp != 0); + return( + Next_Choice(typ->left ,field,argp->left) || + Next_Choice(typ->right,field,argp->right) ); + } + else + { + assert(typ->next != 0); + return typ->next(field,(void *)argp); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Previous_Choice( +| FIELDTYPE * typ, +| FIELD * field, +| TypeArgument *argp) +| +| Description : Get the previous field choice. For linked types this +| is done recursively. +| +| Return Values : TRUE - previous choice successfully retrieved +| FALSE - couldn't retrieve previous choice ++--------------------------------------------------------------------------*/ +static bool Previous_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp) +{ + if (!typ || !(typ->status & _HAS_CHOICE)) + return FALSE; + + if (typ->status & _LINKED_TYPE) + { + assert(argp != 0); + return( + Previous_Choice(typ->left ,field,argp->left) || + Previous_Choice(typ->right,field,argp->right)); + } + else + { + assert(typ->prev != 0); + return typ->prev(field,(void *)argp); + } +} +/*---------------------------------------------------------------------------- + End of Helper routines for Choice Requests + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Routines for Choice Requests + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int CR_Next_Choice(FORM * form) +| +| Description : Get the next field choice. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - next choice couldn't be retrieved ++--------------------------------------------------------------------------*/ +static int CR_Next_Choice(FORM * form) +{ + FIELD *field = form->current; + Synchronize_Buffer(form); + return ((Next_Choice(field->type,field,(TypeArgument *)(field->arg))) ? + E_OK : E_REQUEST_DENIED); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int CR_Previous_Choice(FORM * form) +| +| Description : Get the previous field choice. +| +| Return Values : E_OK - success +| E_REQUEST_DENIED - prev. choice couldn't be retrieved ++--------------------------------------------------------------------------*/ +static int CR_Previous_Choice(FORM * form) +{ + FIELD *field = form->current; + Synchronize_Buffer(form); + return ((Previous_Choice(field->type,field,(TypeArgument *)(field->arg))) ? + E_OK : E_REQUEST_DENIED); +} +/*---------------------------------------------------------------------------- + End of Routines for Choice Requests + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Helper routines for Field Validations. + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Field( +| FIELDTYPE * typ, +| FIELD * field, +| TypeArgument * argp) +| +| Description : Check the field according to its fieldtype and its +| actual arguments. For linked fieldtypes this is done +| recursively. +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid. ++--------------------------------------------------------------------------*/ +static bool Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp) +{ + if (typ) + { + if (field->opts & O_NULLOK) + { + char *bp = field->buf; + assert(bp != 0); + while(is_blank(*bp)) + { bp++; } + if (*bp == '\0') + return TRUE; + } + + if (typ->status & _LINKED_TYPE) + { + assert(argp != 0); + return( + Check_Field(typ->left ,field,argp->left ) || + Check_Field(typ->right,field,argp->right) ); + } + else + { + if (typ->fcheck) + return typ->fcheck(field,(void *)argp); + } + } + return TRUE; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : bool _nc_Internal_Validation(FORM * form ) +| +| Description : Validate the current field of the form. +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +bool +_nc_Internal_Validation(FORM *form) +{ + FIELD *field; + + field = form->current; + + Synchronize_Buffer(form); + if ((form->status & _FCHECK_REQUIRED) || + (!(field->opts & O_PASSOK))) + { + if (!Check_Field(field->type,field,(TypeArgument *)(field->arg))) + return FALSE; + form->status &= ~_FCHECK_REQUIRED; + field->status |= _CHANGED; + Synchronize_Linked_Fields(field); + } + return TRUE; +} +/*---------------------------------------------------------------------------- + End of Helper routines for Field Validations. + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Routines for Field Validation. + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FV_Validation(FORM * form) +| +| Description : Validate the current field of the form. +| +| Return Values : E_OK - field valid +| E_INVALID_FIELD - field not valid ++--------------------------------------------------------------------------*/ +static int FV_Validation(FORM * form) +{ + if (_nc_Internal_Validation(form)) + return E_OK; + else + return E_INVALID_FIELD; +} +/*---------------------------------------------------------------------------- + End of routines for Field Validation. + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Helper routines for Inter-Field Navigation + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Next_Field_On_Page(FIELD * field) +| +| Description : Get the next field after the given field on the current +| page. The order of fields is the one defined by the +| fields array. Only visible and active fields are +| counted. +| +| Return Values : Pointer to the next field. ++--------------------------------------------------------------------------*/ +INLINE static FIELD *Next_Field_On_Page(FIELD * field) +{ + FORM *form = field->form; + FIELD **field_on_page = &form->field[field->index]; + FIELD **first_on_page = &form->field[form->page[form->curpage].pmin]; + FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; + + do + { + field_on_page = + (field_on_page==last_on_page) ? first_on_page : field_on_page + 1; + if (Field_Is_Selectable(*field_on_page)) + break; + } while(field!=(*field_on_page)); + return(*field_on_page); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELD* _nc_First_Active_Field(FORM * form) +| +| Description : Get the first active field on the current page, +| if there are such. If there are none, get the first +| visible field on the page. If there are also none, +| we return the first field on page and hope the best. +| +| Return Values : Pointer to calculated field. ++--------------------------------------------------------------------------*/ +FIELD* +_nc_First_Active_Field(FORM * form) +{ + FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; + FIELD *proposed = Next_Field_On_Page(*last_on_page); + + if (proposed == *last_on_page) + { /* there might be the special situation, where there is no + active and visible field on the current page. We then select + the first visible field on this readonly page + */ + if (Field_Is_Not_Selectable(proposed)) + { + FIELD **field = &form->field[proposed->index]; + FIELD **first = &form->field[form->page[form->curpage].pmin]; + + do + { + field = (field==last_on_page) ? first : field + 1; + if (((*field)->opts & O_VISIBLE)) + break; + } while(proposed!=(*field)); + + proposed = *field; + + if ((proposed == *last_on_page) && !(proposed->opts&O_VISIBLE)) + { /* This means, there is also no visible field on the page. + So we propose the first one and hope the very best... + Some very clever user has designed a readonly and invisible + page on this form. + */ + proposed = *first; + } + } + } + return(proposed); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Previous_Field_On_Page(FIELD * field) +| +| Description : Get the previous field before the given field on the +| current page. The order of fields is the one defined by +| the fields array. Only visible and active fields are +| counted. +| +| Return Values : Pointer to the previous field. ++--------------------------------------------------------------------------*/ +INLINE static FIELD *Previous_Field_On_Page(FIELD * field) +{ + FORM *form = field->form; + FIELD **field_on_page = &form->field[field->index]; + FIELD **first_on_page = &form->field[form->page[form->curpage].pmin]; + FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; + + do + { + field_on_page = + (field_on_page==first_on_page) ? last_on_page : field_on_page - 1; + if (Field_Is_Selectable(*field_on_page)) + break; + } while(field!=(*field_on_page)); + + return (*field_on_page); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Sorted_Next_Field(FIELD * field) +| +| Description : Get the next field after the given field on the current +| page. The order of fields is the one defined by the +| (row,column) geometry, rows are major. +| +| Return Values : Pointer to the next field. ++--------------------------------------------------------------------------*/ +INLINE static FIELD *Sorted_Next_Field(FIELD * field) +{ + FIELD *field_on_page = field; + + do + { + field_on_page = field_on_page->snext; + if (Field_Is_Selectable(field_on_page)) + break; + } while(field_on_page!=field); + + return (field_on_page); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Sorted_Previous_Field(FIELD * field) +| +| Description : Get the previous field before the given field on the +| current page. The order of fields is the one defined +| by the (row,column) geometry, rows are major. +| +| Return Values : Pointer to the previous field. ++--------------------------------------------------------------------------*/ +INLINE static FIELD *Sorted_Previous_Field(FIELD * field) +{ + FIELD *field_on_page = field; + + do + { + field_on_page = field_on_page->sprev; + if (Field_Is_Selectable(field_on_page)) + break; + } while(field_on_page!=field); + + return (field_on_page); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Left_Neighbour_Field(FIELD * field) +| +| Description : Get the left neighbour of the field on the same line +| and the same page. Cycles through the line. +| +| Return Values : Pointer to left neighbour field. ++--------------------------------------------------------------------------*/ +INLINE static FIELD *Left_Neighbour_Field(FIELD * field) +{ + FIELD *field_on_page = field; + + /* For a field that has really a left neighbour, the while clause + immediately fails and the loop is left, positioned at the right + neighbour. Otherwise we cycle backwards through the sorted fieldlist + until we enter the same line (from the right end). + */ + do + { + field_on_page = Sorted_Previous_Field(field_on_page); + } while(field_on_page->frow != field->frow); + + return (field_on_page); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Right_Neighbour_Field(FIELD * field) +| +| Description : Get the right neighbour of the field on the same line +| and the same page. +| +| Return Values : Pointer to right neighbour field. ++--------------------------------------------------------------------------*/ +INLINE static FIELD *Right_Neighbour_Field(FIELD * field) +{ + FIELD *field_on_page = field; + + /* See the comments on Left_Neighbour_Field to understand how it works */ + do + { + field_on_page = Sorted_Next_Field(field_on_page); + } while(field_on_page->frow != field->frow); + + return (field_on_page); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Upper_Neighbour_Field(FIELD * field) +| +| Description : Because of the row-major nature of sorting the fields, +| its more difficult to define whats the upper neighbour +| field really means. We define that it must be on a +| 'previous' line (cyclic order!) and is the rightmost +| field laying on the left side of the given field. If +| this set is empty, we take the first field on the line. +| +| Return Values : Pointer to the upper neighbour field. ++--------------------------------------------------------------------------*/ +static FIELD *Upper_Neighbour_Field(FIELD * field) +{ + FIELD *field_on_page = field; + int frow = field->frow; + int fcol = field->fcol; + + /* Walk back to the 'previous' line. The second term in the while clause + just guarantees that we stop if we cycled through the line because + there might be no 'previous' line if the page has just one line. + */ + do + { + field_on_page = Sorted_Previous_Field(field_on_page); + } while(field_on_page->frow==frow && field_on_page->fcol!=fcol); + + if (field_on_page->frow!=frow) + { /* We really found a 'previous' line. We are positioned at the + rightmost field on this line */ + frow = field_on_page->frow; + + /* We walk to the left as long as we are really right of the + field. */ + while(field_on_page->frow==frow && field_on_page->fcol>fcol) + field_on_page = Sorted_Previous_Field(field_on_page); + + /* If we wrapped, just go to the right which is the first field on + the row */ + if (field_on_page->frow!=frow) + field_on_page = Sorted_Next_Field(field_on_page); + } + + return (field_on_page); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static FIELD *Down_Neighbour_Field(FIELD * field) +| +| Description : Because of the row-major nature of sorting the fields, +| its more difficult to define whats the down neighbour +| field really means. We define that it must be on a +| 'next' line (cyclic order!) and is the leftmost +| field laying on the right side of the given field. If +| this set is empty, we take the last field on the line. +| +| Return Values : Pointer to the upper neighbour field. ++--------------------------------------------------------------------------*/ +static FIELD *Down_Neighbour_Field(FIELD * field) +{ + FIELD *field_on_page = field; + int frow = field->frow; + int fcol = field->fcol; + + /* Walk forward to the 'next' line. The second term in the while clause + just guarantees that we stop if we cycled through the line because + there might be no 'next' line if the page has just one line. + */ + do + { + field_on_page = Sorted_Next_Field(field_on_page); + } while(field_on_page->frow==frow && field_on_page->fcol!=fcol); + + if (field_on_page->frow!=frow) + { /* We really found a 'next' line. We are positioned at the rightmost + field on this line */ + frow = field_on_page->frow; + + /* We walk to the right as long as we are really left of the + field. */ + while(field_on_page->frow==frow && field_on_page->fcolfrow!=frow) + field_on_page = Sorted_Previous_Field(field_on_page); + } + + return(field_on_page); +} + +/*---------------------------------------------------------------------------- + Inter-Field Navigation routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Inter_Field_Navigation( +| int (* const fct) (FORM *), +| FORM * form) +| +| Description : Generic behaviour for changing the current field, the +| field is left and a new field is entered. So the field +| must be validated and the field init/term hooks must +| be called. +| +| Return Values : E_OK - success +| E_INVALID_FIELD - field is invalid +| some other - error from subordinate call ++--------------------------------------------------------------------------*/ +static int Inter_Field_Navigation(int (* const fct) (FORM *),FORM *form) +{ + int res; + + if (!_nc_Internal_Validation(form)) + res = E_INVALID_FIELD; + else + { + Call_Hook(form,fieldterm); + res = fct(form); + Call_Hook(form,fieldinit); + } + return res; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Next_Field(FORM * form) +| +| Description : Move to the next field on the current page of the form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Next_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Next_Field_On_Page(form->current)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Previous_Field(FORM * form) +| +| Description : Move to the previous field on the current page of the +| form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Previous_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Previous_Field_On_Page(form->current)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_First_Field(FORM * form) +| +| Description : Move to the first field on the current page of the form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_First_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Next_Field_On_Page(form->field[form->page[form->curpage].pmax])); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Last_Field(FORM * form) +| +| Description : Move to the last field on the current page of the form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Last_Field(FORM * form) +{ + return + _nc_Set_Current_Field(form, + Previous_Field_On_Page(form->field[form->page[form->curpage].pmin])); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Sorted_Next_Field(FORM * form) +| +| Description : Move to the sorted next field on the current page +| of the form. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Sorted_Next_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Sorted_Next_Field(form->current)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Sorted_Previous_Field(FORM * form) +| +| Description : Move to the sorted previous field on the current page +| of the form. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Sorted_Previous_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Sorted_Previous_Field(form->current)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Sorted_First_Field(FORM * form) +| +| Description : Move to the sorted first field on the current page +| of the form. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Sorted_First_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Sorted_Next_Field(form->field[form->page[form->curpage].smax])); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Sorted_Last_Field(FORM * form) +| +| Description : Move to the sorted last field on the current page +| of the form. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Sorted_Last_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Sorted_Previous_Field(form->field[form->page[form->curpage].smin])); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Left_Field(FORM * form) +| +| Description : Get the field on the left of the current field on the +| same line and the same page. Cycles through the line. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Left_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Left_Neighbour_Field(form->current)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Right_Field(FORM * form) +| +| Description : Get the field on the right of the current field on the +| same line and the same page. Cycles through the line. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Right_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Right_Neighbour_Field(form->current)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Up_Field(FORM * form) +| +| Description : Get the upper neighbour of the current field. This +| cycles through the page. See the comments of the +| Upper_Neighbour_Field function to understand how +| 'upper' is defined. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Up_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Upper_Neighbour_Field(form->current)); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int FN_Down_Field(FORM * form) +| +| Description : Get the down neighbour of the current field. This +| cycles through the page. See the comments of the +| Down_Neighbour_Field function to understand how +| 'down' is defined. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int FN_Down_Field(FORM * form) +{ + return _nc_Set_Current_Field(form, + Down_Neighbour_Field(form->current)); +} +/*---------------------------------------------------------------------------- + END of Field Navigation routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Helper routines for Page Navigation + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int _nc_Set_Form_Page(FORM * form, +| int page, +| FIELD * field) +| +| Description : Make the given page nr. the current page and make +| the given field the current field on the page. If +| for the field NULL is given, make the first field on +| the page the current field. The routine acts only +| if the requested page is not the current page. +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +int +_nc_Set_Form_Page(FORM * form, int page, FIELD * field) +{ + int res = E_OK; + + if ((form->curpage!=page)) + { + FIELD *last_field, *field_on_page; + + werase(Get_Form_Window(form)); + form->curpage = page; + last_field = field_on_page = form->field[form->page[page].smin]; + do + { + if (field_on_page->opts & O_VISIBLE) + if ((res=Display_Field(field_on_page))!=E_OK) + return(res); + field_on_page = field_on_page->snext; + } while(field_on_page != last_field); + + if (field) + res = _nc_Set_Current_Field(form,field); + else + /* N.B.: we don't encapsulate this by Inter_Field_Navigation(), + because this is already executed in a page navigation + context that contains field navigation + */ + res = FN_First_Field(form); + } + return(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Next_Page_Number(const FORM * form) +| +| Description : Calculate the page number following the current page +| number. This cycles if the highest page number is +| reached. +| +| Return Values : The next page number ++--------------------------------------------------------------------------*/ +INLINE static int Next_Page_Number(const FORM * form) +{ + return (form->curpage + 1) % form->maxpage; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Previous_Page_Number(const FORM * form) +| +| Description : Calculate the page number before the current page +| number. This cycles if the first page number is +| reached. +| +| Return Values : The previous page number ++--------------------------------------------------------------------------*/ +INLINE static int Previous_Page_Number(const FORM * form) +{ + return (form->curpage!=0 ? form->curpage - 1 : form->maxpage - 1); +} + +/*---------------------------------------------------------------------------- + Page Navigation routines + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Page_Navigation( +| int (* const fct) (FORM *), +| FORM * form) +| +| Description : Generic behaviour for changing a page. This means +| that the field is left and a new field is entered. +| So the field must be validated and the field init/term +| hooks must be called. Because also the page is changed, +| the forms init/term hooks must be called also. +| +| Return Values : E_OK - success +| E_INVALID_FIELD - field is invalid +| some other - error from subordinate call ++--------------------------------------------------------------------------*/ +static int Page_Navigation(int (* const fct) (FORM *), FORM * form) +{ + int res; + + if (!_nc_Internal_Validation(form)) + res = E_INVALID_FIELD; + else + { + Call_Hook(form,fieldterm); + Call_Hook(form,formterm); + res = fct(form); + Call_Hook(form,forminit); + Call_Hook(form,fieldinit); + } + return res; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int PN_Next_Page(FORM * form) +| +| Description : Move to the next page of the form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int PN_Next_Page(FORM * form) +{ + return _nc_Set_Form_Page(form,Next_Page_Number(form),(FIELD *)0); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int PN_Previous_Page(FORM * form) +| +| Description : Move to the previous page of the form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int PN_Previous_Page(FORM * form) +{ + return _nc_Set_Form_Page(form,Previous_Page_Number(form),(FIELD *)0); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int PN_First_Page(FORM * form) +| +| Description : Move to the first page of the form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int PN_First_Page(FORM * form) +{ + return _nc_Set_Form_Page(form,0,(FIELD *)0); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int PN_Last_Page(FORM * form) +| +| Description : Move to the last page of the form +| +| Return Values : E_OK - success +| != E_OK - error from subordinate call ++--------------------------------------------------------------------------*/ +static int PN_Last_Page(FORM * form) +{ + return _nc_Set_Form_Page(form,form->maxpage-1,(FIELD *)0); +} +/*---------------------------------------------------------------------------- + END of Field Navigation routines + --------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------- + Helper routines for the core form driver. + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Data_Entry(FORM * form,int c) +| +| Description : Enter character c into at the current position of the +| current field of the form. +| +| Return Values : E_OK - +| E_REQUEST_DENIED - +| E_SYSTEM_ERROR - ++--------------------------------------------------------------------------*/ +static int Data_Entry(FORM * form, int c) +{ + FIELD *field = form->current; + int result = E_REQUEST_DENIED; + + if ( (field->opts & O_EDIT) +#if FIX_FORM_INACTIVE_BUG + && (field->opts & O_ACTIVE) +#endif + ) + { + if ( (field->opts & O_BLANK) && + First_Position_In_Current_Field(form) && + !(form->status & _FCHECK_REQUIRED) && + !(form->status & _WINDOW_MODIFIED) ) + werase(form->w); + + if (form->status & _OVLMODE) + { + waddch(form->w,(chtype)c); + } + else /* no _OVLMODE */ + { + bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); + + if (!(There_Is_Room || + ((Single_Line_Field(field) && Growable(field))))) + return E_REQUEST_DENIED; + + if (!There_Is_Room && !Field_Grown(field,1)) + return E_SYSTEM_ERROR; + + winsch(form->w,(chtype)c); + } + + if ((result=Wrapping_Not_Necessary_Or_Wrapping_Ok(form))==E_OK) + { + bool End_Of_Field= (((field->drows-1)==form->currow) && + ((field->dcols-1)==form->curcol)); + form->status |= _WINDOW_MODIFIED; + if (End_Of_Field && !Growable(field) && (field->opts & O_AUTOSKIP)) + result = Inter_Field_Navigation(FN_Next_Field,form); + else + { + if (End_Of_Field && Growable(field) && !Field_Grown(field,1)) + result = E_SYSTEM_ERROR; + else + { + IFN_Next_Character(form); + result = E_OK; + } + } + } + } + return result; +} + +/* Structure to describe the binding of a request code to a function. + The member keycode codes the request value as well as the generic + routine to use for the request. The code for the generic routine + is coded in the upper 16 Bits while the request code is coded in + the lower 16 bits. + + In terms of C++ you might think of a request as a class with a + virtual method "perform". The different types of request are + derived from this base class and overload (or not) the base class + implementation of perform. +*/ +typedef struct { + int keycode; /* must be at least 32 bit: hi:mode, lo: key */ + int (*cmd)(FORM *); /* low level driver routine for this key */ +} Binding_Info; + +/* You may see this is the class-id of the request type class */ +#define ID_PN (0x00000000) /* Page navigation */ +#define ID_FN (0x00010000) /* Inter-Field navigation */ +#define ID_IFN (0x00020000) /* Intra-Field navigation */ +#define ID_VSC (0x00030000) /* Vertical Scrolling */ +#define ID_HSC (0x00040000) /* Horizontal Scrolling */ +#define ID_FE (0x00050000) /* Field Editing */ +#define ID_EM (0x00060000) /* Edit Mode */ +#define ID_FV (0x00070000) /* Field Validation */ +#define ID_CH (0x00080000) /* Choice */ +#define ID_Mask (0xffff0000) +#define Key_Mask (0x0000ffff) +#define ID_Shft (16) + +/* This array holds all the Binding Infos */ +static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] = +{ + { REQ_NEXT_PAGE |ID_PN ,PN_Next_Page}, + { REQ_PREV_PAGE |ID_PN ,PN_Previous_Page}, + { REQ_FIRST_PAGE |ID_PN ,PN_First_Page}, + { REQ_LAST_PAGE |ID_PN ,PN_Last_Page}, + + { REQ_NEXT_FIELD |ID_FN ,FN_Next_Field}, + { REQ_PREV_FIELD |ID_FN ,FN_Previous_Field}, + { REQ_FIRST_FIELD |ID_FN ,FN_First_Field}, + { REQ_LAST_FIELD |ID_FN ,FN_Last_Field}, + { REQ_SNEXT_FIELD |ID_FN ,FN_Sorted_Next_Field}, + { REQ_SPREV_FIELD |ID_FN ,FN_Sorted_Previous_Field}, + { REQ_SFIRST_FIELD |ID_FN ,FN_Sorted_First_Field}, + { REQ_SLAST_FIELD |ID_FN ,FN_Sorted_Last_Field}, + { REQ_LEFT_FIELD |ID_FN ,FN_Left_Field}, + { REQ_RIGHT_FIELD |ID_FN ,FN_Right_Field}, + { REQ_UP_FIELD |ID_FN ,FN_Up_Field}, + { REQ_DOWN_FIELD |ID_FN ,FN_Down_Field}, + + { REQ_NEXT_CHAR |ID_IFN ,IFN_Next_Character}, + { REQ_PREV_CHAR |ID_IFN ,IFN_Previous_Character}, + { REQ_NEXT_LINE |ID_IFN ,IFN_Next_Line}, + { REQ_PREV_LINE |ID_IFN ,IFN_Previous_Line}, + { REQ_NEXT_WORD |ID_IFN ,IFN_Next_Word}, + { REQ_PREV_WORD |ID_IFN ,IFN_Previous_Word}, + { REQ_BEG_FIELD |ID_IFN ,IFN_Beginning_Of_Field}, + { REQ_END_FIELD |ID_IFN ,IFN_End_Of_Field}, + { REQ_BEG_LINE |ID_IFN ,IFN_Beginning_Of_Line}, + { REQ_END_LINE |ID_IFN ,IFN_End_Of_Line}, + { REQ_LEFT_CHAR |ID_IFN ,IFN_Left_Character}, + { REQ_RIGHT_CHAR |ID_IFN ,IFN_Right_Character}, + { REQ_UP_CHAR |ID_IFN ,IFN_Up_Character}, + { REQ_DOWN_CHAR |ID_IFN ,IFN_Down_Character}, + + { REQ_NEW_LINE |ID_FE ,FE_New_Line}, + { REQ_INS_CHAR |ID_FE ,FE_Insert_Character}, + { REQ_INS_LINE |ID_FE ,FE_Insert_Line}, + { REQ_DEL_CHAR |ID_FE ,FE_Delete_Character}, + { REQ_DEL_PREV |ID_FE ,FE_Delete_Previous}, + { REQ_DEL_LINE |ID_FE ,FE_Delete_Line}, + { REQ_DEL_WORD |ID_FE ,FE_Delete_Word}, + { REQ_CLR_EOL |ID_FE ,FE_Clear_To_End_Of_Line}, + { REQ_CLR_EOF |ID_FE ,FE_Clear_To_End_Of_Form}, + { REQ_CLR_FIELD |ID_FE ,FE_Clear_Field}, + + { REQ_OVL_MODE |ID_EM ,EM_Overlay_Mode}, + { REQ_INS_MODE |ID_EM ,EM_Insert_Mode}, + + { REQ_SCR_FLINE |ID_VSC ,VSC_Scroll_Line_Forward}, + { REQ_SCR_BLINE |ID_VSC ,VSC_Scroll_Line_Backward}, + { REQ_SCR_FPAGE |ID_VSC ,VSC_Scroll_Page_Forward}, + { REQ_SCR_BPAGE |ID_VSC ,VSC_Scroll_Page_Backward}, + { REQ_SCR_FHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Forward}, + { REQ_SCR_BHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Backward}, + + { REQ_SCR_FCHAR |ID_HSC ,HSC_Scroll_Char_Forward}, + { REQ_SCR_BCHAR |ID_HSC ,HSC_Scroll_Char_Backward}, + { REQ_SCR_HFLINE |ID_HSC ,HSC_Horizontal_Line_Forward}, + { REQ_SCR_HBLINE |ID_HSC ,HSC_Horizontal_Line_Backward}, + { REQ_SCR_HFHALF |ID_HSC ,HSC_Horizontal_Half_Line_Forward}, + { REQ_SCR_HBHALF |ID_HSC ,HSC_Horizontal_Half_Line_Backward}, + + { REQ_VALIDATION |ID_FV ,FV_Validation}, + + { REQ_NEXT_CHOICE |ID_CH ,CR_Next_Choice}, + { REQ_PREV_CHOICE |ID_CH ,CR_Previous_Choice} +}; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int form_driver(FORM * form,int c) +| +| Description : This is the workhorse of the forms system. It checks +| to determine whether the character c is a request or +| data. If it is a request, the form driver executes +| the request and returns the result. If it is data +| (printable character), it enters the data into the +| current position in the current field. If it is not +| recognized, the form driver assumes it is an application +| defined command and returns E_UNKNOWN_COMMAND. +| Application defined command should be defined relative +| to MAX_FORM_COMMAND, the maximum value of a request. +| +| Return Values : E_OK - success +| E_SYSTEM_ERROR - system error +| E_BAD_ARGUMENT - an argument is incorrect +| E_NOT_POSTED - form is not posted +| E_INVALID_FIELD - field contents are invalid +| E_BAD_STATE - called from inside a hook routine +| E_REQUEST_DENIED - request failed +| E_UNKNOWN_COMMAND - command not known ++--------------------------------------------------------------------------*/ +int form_driver(FORM * form, int c) +{ + const Binding_Info* BI = (Binding_Info *)0; + int res = E_UNKNOWN_COMMAND; + + if (!form) + RETURN(E_BAD_ARGUMENT); + + if (!(form->field)) + RETURN(E_NOT_CONNECTED); + + assert(form->page != 0); + + if (c==FIRST_ACTIVE_MAGIC) + { + form->current = _nc_First_Active_Field(form); + return E_OK; + } + + assert(form->current && + form->current->buf && + (form->current->form == form) + ); + + if ( form->status & _IN_DRIVER ) + RETURN(E_BAD_STATE); + + if ( !( form->status & _POSTED ) ) + RETURN(E_NOT_POSTED); + + if ((c>=MIN_FORM_COMMAND && c<=MAX_FORM_COMMAND) && + ((bindings[c-MIN_FORM_COMMAND].keycode & Key_Mask) == c)) + BI = &(bindings[c-MIN_FORM_COMMAND]); + + if (BI) + { + typedef int (*Generic_Method)(int (* const)(FORM *),FORM *); + static const Generic_Method Generic_Methods[] = + { + Page_Navigation, /* overloaded to call field&form hooks */ + Inter_Field_Navigation, /* overloaded to call field hooks */ + NULL, /* Intra-Field is generic */ + Vertical_Scrolling, /* Overloaded to check multi-line */ + Horizontal_Scrolling, /* Overloaded to check single-line */ + Field_Editing, /* Overloaded to mark modification */ + NULL, /* Edit Mode is generic */ + NULL, /* Field Validation is generic */ + NULL /* Choice Request is generic */ + }; + size_t nMethods = (sizeof(Generic_Methods)/sizeof(Generic_Methods[0])); + size_t method = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff; + + if ( (method >= nMethods) || !(BI->cmd) ) + res = E_SYSTEM_ERROR; + else + { + Generic_Method fct = Generic_Methods[method]; + if (fct) + res = fct(BI->cmd,form); + else + res = (BI->cmd)(form); + } + } + else + { + if (!(c & (~(int)MAX_REGULAR_CHARACTER)) && + isprint((unsigned char)c) && + Check_Char(form->current->type,c, + (TypeArgument *)(form->current->arg))) + res = Data_Entry(form,c); + } + _nc_Refresh_Current_Field(form); + RETURN(res); +} + +/*---------------------------------------------------------------------------- + Field-Buffer manipulation routines. + The effects of setting a buffer is tightly coupled to the core of the form + driver logic. This is especially true in the case of growable fields. + So I don't separate this into an own module. + --------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_buffer(FIELD *field, +| int buffer, char *value) +| +| Description : Set the given buffer of the field to the given value. +| Buffer 0 stores the displayed content of the field. +| For dynamic fields this may grow the fieldbuffers if +| the length of the value exceeds the current buffer +| length. For buffer 0 only printable values are allowed. +| For static fields, the value needs not to be zero ter- +| minated. It is copied up to the length of the buffer. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid argument +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int set_field_buffer(FIELD * field, int buffer, const char * value) +{ + char *s, *p; + int res = E_OK; + unsigned int len; + + if ( !field || !value || ((buffer < 0)||(buffer > field->nbuf)) ) + RETURN(E_BAD_ARGUMENT); + + len = Buffer_Length(field); + + if (buffer==0) + { + const char *v; + unsigned int i = 0; + + for(v=value; *v && (i len) + { + if (!Field_Grown(field, + (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols)))) + RETURN(E_SYSTEM_ERROR); + + /* in this case we also have to check, wether or not the remaining + characters in value are also printable for buffer 0. */ + if (buffer==0) + { + unsigned int i; + + for(i=len; i= (unsigned int)(s-p)); + if (len > (unsigned int)(s-p)) + memset(s,C_BLANK,len-(unsigned int)(s-p)); + } + + if (buffer==0) + { + int syncres; + if (((syncres=Synchronize_Field( field ))!=E_OK) && + (res==E_OK)) + res = syncres; + if (((syncres=Synchronize_Linked_Fields(field ))!=E_OK) && + (res==E_OK)) + res = syncres; + } + RETURN(res); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : char *field_buffer(const FIELD *field,int buffer) +| +| Description : Return the address of the buffer for the field. +| +| Return Values : Pointer to buffer or NULL if arguments were invalid. ++--------------------------------------------------------------------------*/ +char *field_buffer(const FIELD * field, int buffer) +{ + if (field && (buffer >= 0) && (buffer <= field->nbuf)) + return Address_Of_Nth_Buffer(field,buffer); + else + return (char *)0; +} + +/* frm_driver.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_hook.c b/CMakeLua/Source/CursesDialog/form/frm_hook.c new file mode 100644 index 0000000..3eb3375 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_hook.c @@ -0,0 +1,140 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_hook.c,v 1.1 2001/11/05 16:53:02 berk Exp $") + +/* "Template" macro to generate function to set application specific hook */ +#define GEN_HOOK_SET_FUNCTION( typ, name ) \ +int set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\ +{\ + (Normalize_Form( form ) -> typ ## name) = func ;\ + RETURN(E_OK);\ +} + +/* "Template" macro to generate function to get application specific hook */ +#define GEN_HOOK_GET_FUNCTION( typ, name ) \ +Form_Hook typ ## _ ## name ( const FORM *form )\ +{\ + return ( Normalize_Form( form ) -> typ ## name );\ +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_init(FORM *form, Form_Hook f) +| +| Description : Assigns an application defined initialization function +| to be called when the form is posted and just after +| the current field changes. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +GEN_HOOK_SET_FUNCTION(field,init) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : Form_Hook field_init(const FORM *form) +| +| Description : Retrieve field initialization routine address. +| +| Return Values : The address or NULL if no hook defined. ++--------------------------------------------------------------------------*/ +GEN_HOOK_GET_FUNCTION(field,init) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_field_term(FORM *form, Form_Hook f) +| +| Description : Assigns an application defined finalization function +| to be called when the form is unposted and just before +| the current field changes. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +GEN_HOOK_SET_FUNCTION(field,term) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : Form_Hook field_term(const FORM *form) +| +| Description : Retrieve field finalization routine address. +| +| Return Values : The address or NULL if no hook defined. ++--------------------------------------------------------------------------*/ +GEN_HOOK_GET_FUNCTION(field,term) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_init(FORM *form, Form_Hook f) +| +| Description : Assigns an application defined initialization function +| to be called when the form is posted and just after +| a page change. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +GEN_HOOK_SET_FUNCTION(form,init) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : Form_Hook form_init(const FORM *form) +| +| Description : Retrieve form initialization routine address. +| +| Return Values : The address or NULL if no hook defined. ++--------------------------------------------------------------------------*/ +GEN_HOOK_GET_FUNCTION(form,init) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_term(FORM *form, Form_Hook f) +| +| Description : Assigns an application defined finalization function +| to be called when the form is unposted and just before +| a page change. +| +| Return Values : E_OK - success ++--------------------------------------------------------------------------*/ +GEN_HOOK_SET_FUNCTION(form,term) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : Form_Hook form_term(const FORM *form) +| +| Description : Retrieve form finalization routine address. +| +| Return Values : The address or NULL if no hook defined. ++--------------------------------------------------------------------------*/ +GEN_HOOK_GET_FUNCTION(form,term) + +/* frm_hook.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_opts.c b/CMakeLua/Source/CursesDialog/form/frm_opts.c new file mode 100644 index 0000000..cedaf49 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_opts.c @@ -0,0 +1,116 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_opts.c,v 1.1 2001/11/05 16:53:02 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_opts(FORM *form, Form_Options opts) +| +| Description : Turns on the named options and turns off all the +| remaining options for that form. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid options ++--------------------------------------------------------------------------*/ +int set_form_opts(FORM * form, Form_Options opts) +{ + opts &= ALL_FORM_OPTS; + if (opts & ~ALL_FORM_OPTS) + RETURN(E_BAD_ARGUMENT); + else + { + Normalize_Form( form )->opts = opts; + RETURN(E_OK); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : Form_Options form_opts(const FORM *) +| +| Description : Retrieves the current form options. +| +| Return Values : The option flags. ++--------------------------------------------------------------------------*/ +Form_Options form_opts(const FORM * form) +{ + return (Normalize_Form(form)->opts & ALL_FORM_OPTS); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int form_opts_on(FORM *form, Form_Options opts) +| +| Description : Turns on the named options; no other options are +| changed. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid options ++--------------------------------------------------------------------------*/ +int form_opts_on(FORM * form, Form_Options opts) +{ + opts &= ALL_FORM_OPTS; + if (opts & ~ALL_FORM_OPTS) + RETURN(E_BAD_ARGUMENT); + else + { + Normalize_Form( form )->opts |= opts; + RETURN(E_OK); + } +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int form_opts_off(FORM *form, Form_Options opts) +| +| Description : Turns off the named options; no other options are +| changed. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid options ++--------------------------------------------------------------------------*/ +int form_opts_off(FORM * form, Form_Options opts) +{ + opts &= ALL_FORM_OPTS; + if (opts & ~ALL_FORM_OPTS) + RETURN(E_BAD_ARGUMENT); + else + { + Normalize_Form(form)->opts &= ~opts; + RETURN(E_OK); + } +} + +/* frm_opts.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_page.c b/CMakeLua/Source/CursesDialog/form/frm_page.c new file mode 100644 index 0000000..9c86e6b --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_page.c @@ -0,0 +1,100 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_page.c,v 1.1 2001/11/05 16:53:02 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_page(FORM * form,int page) +| +| Description : Set the page number of the form. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid form pointer or page number +| E_BAD_STATE - called from a hook routine +| E_INVALID_FIELD - current field can't be left +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int set_form_page(FORM * form, int page) +{ + int err = E_OK; + + if ( !form || (page<0) || (page>=form->maxpage) ) + RETURN(E_BAD_ARGUMENT); + + if (!(form->status & _POSTED)) + { + form->curpage = page; + form->current = _nc_First_Active_Field(form); + } + else + { + if (form->status & _IN_DRIVER) + err = E_BAD_STATE; + else + { + if (form->curpage != page) + { + if (!_nc_Internal_Validation(form)) + err = E_INVALID_FIELD; + else + { + Call_Hook(form,fieldterm); + Call_Hook(form,formterm); + err = _nc_Set_Form_Page(form,page,(FIELD *)0); + Call_Hook(form,forminit); + Call_Hook(form,fieldinit); + _nc_Refresh_Current_Field(form); + } + } + } + } + RETURN(err); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int form_page(const FORM * form) +| +| Description : Return the current page of the form. +| +| Return Values : >= 0 : current page number +| -1 : invalid form pointer ++--------------------------------------------------------------------------*/ +int form_page(const FORM * form) +{ + return Normalize_Form(form)->curpage; +} + +/* frm_page.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_post.c b/CMakeLua/Source/CursesDialog/form/frm_post.c new file mode 100644 index 0000000..87c628c --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_post.c @@ -0,0 +1,117 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ +#include "form.priv.h" + +MODULE_ID("$Id: frm_post.c,v 1.1 2001/11/05 16:53:03 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int post_form(FORM * form) +| +| Description : Writes the form into its associated subwindow. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid form pointer +| E_POSTED - form already posted +| E_NOT_CONNECTED - no fields connected to form +| E_NO_ROOM - form doesn't fit into subwindow +| E_SYSTEM_ERROR - system error ++--------------------------------------------------------------------------*/ +int post_form(FORM * form) +{ + WINDOW *formwin; + int err; + int page; + + if (!form) + RETURN(E_BAD_ARGUMENT); + + if (form->status & _POSTED) + RETURN(E_POSTED); + + if (!(form->field)) + RETURN(E_NOT_CONNECTED); + + formwin = Get_Form_Window(form); + if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin))) + RETURN(E_NO_ROOM); + + /* reset form->curpage to an invald value. This forces Set_Form_Page + to do the page initialization which is required by post_form. + */ + page = form->curpage; + form->curpage = -1; + if ((err = _nc_Set_Form_Page(form,page,form->current))!=E_OK) + RETURN(err); + + form->status |= _POSTED; + + Call_Hook(form,forminit); + Call_Hook(form,fieldinit); + + _nc_Refresh_Current_Field(form); + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int unpost_form(FORM * form) +| +| Description : Erase form from its associated subwindow. +| +| Return Values : E_OK - success +| E_BAD_ARGUMENT - invalid form pointer +| E_NOT_POSTED - form isn't posted +| E_BAD_STATE - called from a hook routine ++--------------------------------------------------------------------------*/ +int unpost_form(FORM * form) +{ + if (!form) + RETURN(E_BAD_ARGUMENT); + + if (!(form->status & _POSTED)) + RETURN(E_NOT_POSTED); + + if (form->status & _IN_DRIVER) + RETURN(E_BAD_STATE); + + Call_Hook(form,fieldterm); + Call_Hook(form,formterm); + + werase(Get_Form_Window(form)); + delwin(form->w); + form->w = (WINDOW *)0; + form->status &= ~_POSTED; + RETURN(E_OK); +} + +/* frm_post.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_req_name.c b/CMakeLua/Source/CursesDialog/form/frm_req_name.c new file mode 100644 index 0000000..e6c6d1e --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_req_name.c @@ -0,0 +1,169 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +/*************************************************************************** +* Module form_request_name * +* Routines to handle external names of menu requests * +***************************************************************************/ + +#if defined(__hpux) + #define _XOPEN_SOURCE_EXTENDED +#endif +#include "form.priv.h" +#if defined(__hpux) + #undef _XOPEN_SOURCE_EXTENDED +#endif + +MODULE_ID("$Id: frm_req_name.c,v 1.7 2002/06/18 21:19:38 king Exp $") + +static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = { + "NEXT_PAGE" , + "PREV_PAGE" , + "FIRST_PAGE" , + "LAST_PAGE" , + + "NEXT_FIELD" , + "PREV_FIELD" , + "FIRST_FIELD" , + "LAST_FIELD" , + "SNEXT_FIELD" , + "SPREV_FIELD" , + "SFIRST_FIELD" , + "SLAST_FIELD" , + "LEFT_FIELD" , + "RIGHT_FIELD" , + "UP_FIELD" , + "DOWN_FIELD" , + + "NEXT_CHAR" , + "PREV_CHAR" , + "NEXT_LINE" , + "PREV_LINE" , + "NEXT_WORD" , + "PREV_WORD" , + "BEG_FIELD" , + "END_FIELD" , + "BEG_LINE" , + "END_LINE" , + "LEFT_CHAR" , + "RIGHT_CHAR" , + "UP_CHAR" , + "DOWN_CHAR" , + + "NEW_LINE" , + "INS_CHAR" , + "INS_LINE" , + "DEL_CHAR" , + "DEL_PREV" , + "DEL_LINE" , + "DEL_WORD" , + "CLR_EOL" , + "CLR_EOF" , + "CLR_FIELD" , + "OVL_MODE" , + "INS_MODE" , + "SCR_FLINE" , + "SCR_BLINE" , + "SCR_FPAGE" , + "SCR_BPAGE" , + "SCR_FHPAGE" , + "SCR_BHPAGE" , + "SCR_FCHAR" , + "SCR_BCHAR" , + "SCR_HFLINE" , + "SCR_HBLINE" , + "SCR_HFHALF" , + "SCR_HBHALF" , + + "VALIDATION" , + "NEXT_CHOICE" , + "PREV_CHOICE" +}; +#define A_SIZE (sizeof(request_names)/sizeof(request_names[0])) + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : const char * form_request_name (int request); +| +| Description : Get the external name of a form request. +| +| Return Values : Pointer to name - on success +| NULL - on invalid request code ++--------------------------------------------------------------------------*/ +const char *form_request_name( int request ) +{ + if ( (request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND) ) + { + SET_ERROR (E_BAD_ARGUMENT); + return (const char *)0; + } + else + return request_names[ request - MIN_FORM_COMMAND ]; +} + + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int form_request_by_name (const char *str); +| +| Description : Search for a request with this name. +| +| Return Values : Request Id - on success +| E_NO_MATCH - request not found ++--------------------------------------------------------------------------*/ +int form_request_by_name( const char *str ) +{ + /* because the table is so small, it doesn't really hurt + to run sequentially through it. + */ + unsigned int i = 0; + char buf[16]; + + if (str) + { + strncpy(buf,str,sizeof(buf)); + while( (i 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_scale.c,v 1.1 2001/11/05 16:53:03 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int scale_form( const FORM *form, int *rows, int *cols ) +| +| Description : Retrieve size of form +| +| Return Values : E_OK - no error +| E_BAD_ARGUMENT - invalid form pointer +| E_NOT_CONNECTED - no fields connected to form ++--------------------------------------------------------------------------*/ +int scale_form(const FORM * form, int * rows, int * cols) +{ + if ( !form ) + RETURN(E_BAD_ARGUMENT); + + if ( !(form->field) ) + RETURN(E_NOT_CONNECTED); + + if (rows) + *rows = form->rows; + if (cols) + *cols = form->cols; + + RETURN(E_OK); +} + +/* frm_scale.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_sub.c b/CMakeLua/Source/CursesDialog/form/frm_sub.c new file mode 100644 index 0000000..1c681df --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_sub.c @@ -0,0 +1,69 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_sub.c,v 1.1 2001/11/05 16:53:03 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_sub(FORM *form, WINDOW *win) +| +| Description : Set the subwindow of the form to win. +| +| Return Values : E_OK - success +| E_POSTED - form is posted ++--------------------------------------------------------------------------*/ +int set_form_sub(FORM * form, WINDOW * win) +{ + if (form && (form->status & _POSTED)) + RETURN(E_POSTED); + + Normalize_Form( form )->sub = win; + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : WINDOW *form_sub(const FORM *) +| +| Description : Retrieve the window of the form. +| +| Return Values : The pointer to the Subwindow. ++--------------------------------------------------------------------------*/ +WINDOW *form_sub(const FORM * form) +{ + const FORM* f = Normalize_Form( form ); + return Get_Form_Window(f); +} + +/* frm_sub.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_user.c b/CMakeLua/Source/CursesDialog/form/frm_user.c new file mode 100644 index 0000000..6f3a4dc --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_user.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_user.c,v 1.1 2001/11/05 16:53:03 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_userptr(FORM *form, void *usrptr) +| +| Description : Set the pointer that is reserved in any form to store +| application relevant informations +| +| Return Values : E_OK - on success ++--------------------------------------------------------------------------*/ +int set_form_userptr(FORM * form, void *usrptr) +{ + Normalize_Form(form)->usrptr = usrptr; + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : void *form_userptr(const FORM *form) +| +| Description : Return the pointer that is reserved in any form to +| store application relevant informations. +| +| Return Values : Value of pointer. If no such pointer has been set, +| NULL is returned ++--------------------------------------------------------------------------*/ +void *form_userptr(const FORM * form) +{ + return Normalize_Form(form)->usrptr; +} + +/* frm_user.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/frm_win.c b/CMakeLua/Source/CursesDialog/form/frm_win.c new file mode 100644 index 0000000..5e50948 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/frm_win.c @@ -0,0 +1,70 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: frm_win.c,v 1.1 2001/11/05 16:53:04 berk Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int set_form_win(FORM *form,WINDOW *win) +| +| Description : Set the window of the form to win. +| +| Return Values : E_OK - success +| E_POSTED - form is posted ++--------------------------------------------------------------------------*/ +int set_form_win(FORM * form, WINDOW * win) +{ + if (form && (form->status & _POSTED)) + RETURN(E_POSTED); + + Normalize_Form( form )->win = win; + RETURN(E_OK); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : WINDOW *form_win(const FORM *) +| +| Description : Retrieve the window of the form. +| +| Return Values : The pointer to the Window or stdscr if there is none. ++--------------------------------------------------------------------------*/ +WINDOW *form_win(const FORM * form) +{ + const FORM* f = Normalize_Form( form ); + return (f->win ? f->win : stdscr); +} + +/* frm_win.c ends here */ + diff --git a/CMakeLua/Source/CursesDialog/form/fty_alnum.c b/CMakeLua/Source/CursesDialog/form/fty_alnum.c new file mode 100644 index 0000000..58c2519 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fty_alnum.c @@ -0,0 +1,138 @@ + +/* + * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + * You may freely copy it for use as a template for your own field types. + * If you develop a field type that might be of general use, please send + * it back to the ncurses maintainers for inclusion in the next version. + */ +/*************************************************************************** +* * +* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_alnum.c,v 1.2 2002/06/18 21:19:38 king Exp $") + +typedef struct { + int width; +} alnumARG; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Make_AlphaNumeric_Type(va_list *ap) +| +| Description : Allocate structure for alphanumeric type argument. +| +| Return Values : Pointer to argument structure or NULL on error ++--------------------------------------------------------------------------*/ +static void *Make_AlphaNumeric_Type(va_list * ap) +{ + alnumARG *argp = (alnumARG *)malloc(sizeof(alnumARG)); + + if (argp) + argp->width = va_arg(*ap,int); + + return ((void *)argp); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Copy_AlphaNumericType(const void *argp) +| +| Description : Copy structure for alphanumeric type argument. +| +| Return Values : Pointer to argument structure or NULL on error. ++--------------------------------------------------------------------------*/ +static void *Copy_AlphaNumeric_Type(const void *argp) +{ + const alnumARG *ap = (const alnumARG *)argp; + alnumARG *result = (alnumARG *)malloc(sizeof(alnumARG)); + + if (result) + *result = *ap; + + return ((void *)result); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Free_AlphaNumeric_Type(void *argp) +| +| Description : Free structure for alphanumeric type argument. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Free_AlphaNumeric_Type(void * argp) +{ + if (argp) + free(argp); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_AlphaNumeric_Field( +| FIELD *field, +| const void *argp) +| +| Description : Validate buffer content to be a valid alphanumeric value +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +static bool Check_AlphaNumeric_Field(FIELD * field, const void * argp) +{ + int width = ((const alnumARG *)argp)->width; + unsigned char *bp = (unsigned char *)field_buffer(field,0); + int l = -1; + unsigned char *s; + + while(*bp && *bp==' ') + bp++; + if (*bp) + { + s = bp; + while(*bp && isalnum(*bp)) + bp++; + l = (int)(bp-s); + while(*bp && *bp==' ') + bp++; + } + return ((*bp || (l < width)) ? FALSE : TRUE); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_AlphaNumeric_Character( +| int c, +| const void *argp ) +| +| Description : Check a character for the alphanumeric type. +| +| Return Values : TRUE - character is valid +| FALSE - character is invalid ++--------------------------------------------------------------------------*/ +static bool Check_AlphaNumeric_Character(int c, const void * argp) +{ + argp=0; /* Silence unused parameter warning. */ + return (isalnum(c) ? TRUE : FALSE); +} + +static FIELDTYPE typeALNUM = { + _HAS_ARGS | _RESIDENT, + 1, /* this is mutable, so we can't be const */ + (FIELDTYPE *)0, + (FIELDTYPE *)0, + Make_AlphaNumeric_Type, + Copy_AlphaNumeric_Type, + Free_AlphaNumeric_Type, + Check_AlphaNumeric_Field, + Check_AlphaNumeric_Character, + NULL, + NULL +}; + +FIELDTYPE* TYPE_ALNUM = &typeALNUM; + +/* fty_alnum.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fty_alpha.c b/CMakeLua/Source/CursesDialog/form/fty_alpha.c new file mode 100644 index 0000000..79756db --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fty_alpha.c @@ -0,0 +1,139 @@ + +/* + * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + * You may freely copy it for use as a template for your own field types. + * If you develop a field type that might be of general use, please send + * it back to the ncurses maintainers for inclusion in the next version. + */ +/*************************************************************************** +* * +* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_alpha.c,v 1.2 2002/06/19 12:57:14 king Exp $") + +typedef struct { + int width; +} alphaARG; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Make_Alpha_Type(va_list *ap) +| +| Description : Allocate structure for alpha type argument. +| +| Return Values : Pointer to argument structure or NULL on error ++--------------------------------------------------------------------------*/ +static void *Make_Alpha_Type(va_list * ap) +{ + alphaARG *argp = (alphaARG *)malloc(sizeof(alphaARG)); + if (argp) + { + argp->width = va_arg(*ap,int); + } + return ((void *)argp); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Copy_Alpha_Type(const void * argp) +| +| Description : Copy structure for alpha type argument. +| +| Return Values : Pointer to argument structure or NULL on error. ++--------------------------------------------------------------------------*/ +static void *Copy_Alpha_Type(const void * argp) +{ + const alphaARG *ap = (const alphaARG *)argp; + alphaARG *result = (alphaARG *)malloc(sizeof(alphaARG)); + + if (result) + { + *result = *ap; + } + return ((void *)result); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Free_Alpha_Type( void * argp ) +| +| Description : Free structure for alpha type argument. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Free_Alpha_Type(void * argp) +{ + if (argp) + free(argp); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Alpha_Field( +| FIELD * field, +| const void * argp) +| +| Description : Validate buffer content to be a valid alpha value +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Alpha_Field(FIELD * field, const void * argp) +{ + int width = ((const alphaARG *)argp)->width; + unsigned char *bp = (unsigned char *)field_buffer(field,0); + int l = -1; + unsigned char *s; + + while(*bp && *bp==' ') + bp++; + if (*bp) + { + s = bp; + while(*bp && isalpha(*bp)) + bp++; + l = (int)(bp-s); + while(*bp && *bp==' ') + bp++; + } + return ((*bp || (l < width)) ? FALSE : TRUE); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Alpha_Character( +| int c, +| const void * argp) +| +| Description : Check a character for the alpha type. +| +| Return Values : TRUE - character is valid +| FALSE - character is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Alpha_Character(int c, const void * argp) +{ + argp=0; /* Silence unused parameter warning. */ + return (isalpha(c) ? TRUE : FALSE); +} + +static FIELDTYPE typeALPHA = { + _HAS_ARGS | _RESIDENT, + 1, /* this is mutable, so we can't be const */ + (FIELDTYPE *)0, + (FIELDTYPE *)0, + Make_Alpha_Type, + Copy_Alpha_Type, + Free_Alpha_Type, + Check_Alpha_Field, + Check_Alpha_Character, + NULL, + NULL +}; + +FIELDTYPE* TYPE_ALPHA = &typeALPHA; + +/* fty_alpha.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fty_enum.c b/CMakeLua/Source/CursesDialog/form/fty_enum.c new file mode 100644 index 0000000..a82f0ae --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fty_enum.c @@ -0,0 +1,295 @@ + +/* + * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + * You may freely copy it for use as a template for your own field types. + * If you develop a field type that might be of general use, please send + * it back to the ncurses maintainers for inclusion in the next version. + */ +/*************************************************************************** +* * +* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_enum.c,v 1.1 2001/11/05 16:53:04 berk Exp $") + +typedef struct { + char **kwds; + int count; + bool checkcase; + bool checkunique; +} enumARG; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Make_Enum_Type( va_list * ap ) +| +| Description : Allocate structure for enumeration type argument. +| +| Return Values : Pointer to argument structure or NULL on error ++--------------------------------------------------------------------------*/ +static void *Make_Enum_Type(va_list * ap) +{ + enumARG *argp = (enumARG *)malloc(sizeof(enumARG)); + + if (argp) + { + int cnt = 0; + char **kp = (char **)0; + int ccase, cunique; + + argp->kwds = va_arg(*ap,char **); + ccase = va_arg(*ap,int); + cunique = va_arg(*ap,int); + argp->checkcase = ccase ? TRUE : FALSE; + argp->checkunique = cunique ? TRUE : FALSE; + + kp = argp->kwds; + while( kp && (*kp++) ) cnt++; + argp->count = cnt; + } + return (void *)argp; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Copy_Enum_Type( const void * argp ) +| +| Description : Copy structure for enumeration type argument. +| +| Return Values : Pointer to argument structure or NULL on error. ++--------------------------------------------------------------------------*/ +static void *Copy_Enum_Type(const void * argp) +{ + enumARG *result = (enumARG *)0; + + if (argp) + { + const enumARG *ap = (const enumARG *)argp; + + result = (enumARG *)malloc(sizeof(enumARG)); + if (result) + *result = *ap; + } + return (void *)result; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Free_Enum_Type( void * argp ) +| +| Description : Free structure for enumeration type argument. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Free_Enum_Type(void * argp) +{ + if (argp) + free(argp); +} + +#define SKIP_SPACE(x) while(((*(x))!='\0') && (is_blank(*(x)))) (x)++ +#define NOMATCH 0 +#define PARTIAL 1 +#define EXACT 2 + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static int Compare(const unsigned char * s, +| const unsigned char * buf, +| bool ccase ) +| +| Description : Check wether or not the text in 'buf' matches the +| text in 's', at least partial. +| +| Return Values : NOMATCH - buffer doesn't match +| PARTIAL - buffer matches partially +| EXACT - buffer matches exactly ++--------------------------------------------------------------------------*/ +static int Compare(const unsigned char *s, const unsigned char *buf, + bool ccase) +{ + SKIP_SPACE(buf); /* Skip leading spaces in both texts */ + SKIP_SPACE(s); + + if (*buf=='\0') + { + return (((*s)!='\0') ? NOMATCH : EXACT); + } + else + { + if (ccase) + { + while(*s++ == *buf) + { + if (*buf++=='\0') return EXACT; + } + } + else + { + while(toupper(*s++)==toupper(*buf)) + { + if (*buf++=='\0') return EXACT; + } + } + } + /* At this location buf points to the first character where it no longer + matches with s. So if only blanks are following, we have a partial + match otherwise there is no match */ + SKIP_SPACE(buf); + if (*buf) + return NOMATCH; + + /* If it happens that the reference buffer is at its end, the partial + match is actually an exact match. */ + return ((s[-1]!='\0') ? PARTIAL : EXACT); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Enum_Field( +| FIELD * field, +| const void * argp) +| +| Description : Validate buffer content to be a valid enumeration value +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Enum_Field(FIELD * field, const void * argp) +{ + char **kwds = ((const enumARG *)argp)->kwds; + bool ccase = ((const enumARG *)argp)->checkcase; + bool unique = ((const enumARG *)argp)->checkunique; + unsigned char *bp = (unsigned char *)field_buffer(field,0); + char *s, *t, *p; + int res; + + while( kwds && (s=(*kwds++)) ) + { + if ((res=Compare((unsigned char *)s,bp,ccase))!=NOMATCH) + { + p=t=s; /* t is at least a partial match */ + if ((unique && res!=EXACT)) + { + while( kwds && (p = *kwds++) ) + { + if ((res=Compare((unsigned char *)p,bp,ccase))!=NOMATCH) + { + if (res==EXACT) + { + t = p; + break; + } + else + t = (char *)0; + } + } + } + if (t) + { + set_field_buffer(field,0,t); + return TRUE; + } + if (!p) + break; + } + } + return FALSE; +} + +static const char *dummy[] = { (char *)0 }; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Next_Enum(FIELD * field, +| const void * argp) +| +| Description : Check for the next enumeration value +| +| Return Values : TRUE - next value found and loaded +| FALSE - no next value loaded ++--------------------------------------------------------------------------*/ +static bool Next_Enum(FIELD * field, const void * argp) +{ + const enumARG *args = (const enumARG *)argp; + char **kwds = args->kwds; + bool ccase = args->checkcase; + int cnt = args->count; + unsigned char *bp = (unsigned char *)field_buffer(field,0); + + if (kwds) { + while(cnt--) + { + if (Compare((unsigned char *)(*kwds++),bp,ccase)==EXACT) + break; + } + if (cnt<=0) + kwds = args->kwds; + if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT)) + { + set_field_buffer(field,0,*kwds); + return TRUE; + } + } + return FALSE; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Previous_Enum( +| FIELD * field, +| const void * argp) +| +| Description : Check for the previous enumeration value +| +| Return Values : TRUE - previous value found and loaded +| FALSE - no previous value loaded ++--------------------------------------------------------------------------*/ +static bool Previous_Enum(FIELD * field, const void * argp) +{ + const enumARG *args = (const enumARG *)argp; + int cnt = args->count; + char **kwds = &args->kwds[cnt-1]; + bool ccase = args->checkcase; + unsigned char *bp = (unsigned char *)field_buffer(field,0); + + if (kwds) { + while(cnt--) + { + if (Compare((unsigned char *)(*kwds--),bp,ccase)==EXACT) + break; + } + + if (cnt<=0) + kwds = &args->kwds[args->count-1]; + + if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT)) + { + set_field_buffer(field,0,*kwds); + return TRUE; + } + } + return FALSE; +} + + +static FIELDTYPE typeENUM = { + _HAS_ARGS | _HAS_CHOICE | _RESIDENT, + 1, /* this is mutable, so we can't be const */ + (FIELDTYPE *)0, + (FIELDTYPE *)0, + Make_Enum_Type, + Copy_Enum_Type, + Free_Enum_Type, + Check_Enum_Field, + NULL, + Next_Enum, + Previous_Enum +}; + +FIELDTYPE* TYPE_ENUM = &typeENUM; + +/* fty_enum.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fty_int.c b/CMakeLua/Source/CursesDialog/form/fty_int.c new file mode 100644 index 0000000..dd7501f --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fty_int.c @@ -0,0 +1,161 @@ + +/* + * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + * You may freely copy it for use as a template for your own field types. + * If you develop a field type that might be of general use, please send + * it back to the ncurses maintainers for inclusion in the next version. + */ +/*************************************************************************** +* * +* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_int.c,v 1.2 2002/06/18 21:19:38 king Exp $") + +typedef struct { + int precision; + long low; + long high; +} integerARG; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Make_Integer_Type( va_list * ap ) +| +| Description : Allocate structure for integer type argument. +| +| Return Values : Pointer to argument structure or NULL on error ++--------------------------------------------------------------------------*/ +static void *Make_Integer_Type(va_list * ap) +{ + integerARG *argp = (integerARG *)malloc(sizeof(integerARG)); + + if (argp) + { + argp->precision = va_arg(*ap,int); + argp->low = va_arg(*ap,long); + argp->high = va_arg(*ap,long); + } + return (void *)argp; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Copy_Integer_Type(const void * argp) +| +| Description : Copy structure for integer type argument. +| +| Return Values : Pointer to argument structure or NULL on error. ++--------------------------------------------------------------------------*/ +static void *Copy_Integer_Type(const void * argp) +{ + const integerARG *ap = (const integerARG *)argp; + integerARG *result = (integerARG *)0; + + if (argp) + { + result = (integerARG *)malloc(sizeof(integerARG)); + if (result) + *result = *ap; + } + return (void *)result; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Free_Integer_Type(void * argp) +| +| Description : Free structure for integer type argument. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Free_Integer_Type(void * argp) +{ + if (argp) + free(argp); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Integer_Field( +| FIELD * field, +| const void * argp) +| +| Description : Validate buffer content to be a valid integer value +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Integer_Field(FIELD * field, const void * argp) +{ + const integerARG *argi = (const integerARG *)argp; + long low = argi->low; + long high = argi->high; + int prec = argi->precision; + unsigned char *bp = (unsigned char *)field_buffer(field,0); + char *s = (char *)bp; + long val; + char buf[100]; + + while( *bp && *bp==' ') bp++; + if (*bp) + { + if (*bp=='-') bp++; + while (*bp) + { + if (!isdigit(*bp)) break; + bp++; + } + while(*bp && *bp==' ') bp++; + if (*bp=='\0') + { + val = atol(s); + if (lowhigh) return FALSE; + } + sprintf(buf,"%.*ld",(prec>0?prec:0),val); + set_field_buffer(field,0,buf); + return TRUE; + } + } + return FALSE; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Integer_Character( +| int c, +| const void * argp) +| +| Description : Check a character for the integer type. +| +| Return Values : TRUE - character is valid +| FALSE - character is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Integer_Character(int c, const void * argp) +{ + argp=0; /* Silence unused parameter warning. */ + return ((isdigit(c) || (c=='-')) ? TRUE : FALSE); +} + +static FIELDTYPE typeINTEGER = { + _HAS_ARGS | _RESIDENT, + 1, /* this is mutable, so we can't be const */ + (FIELDTYPE *)0, + (FIELDTYPE *)0, + Make_Integer_Type, + Copy_Integer_Type, + Free_Integer_Type, + Check_Integer_Field, + Check_Integer_Character, + NULL, + NULL +}; + +FIELDTYPE* TYPE_INTEGER = &typeINTEGER; + +/* fty_int.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fty_ipv4.c b/CMakeLua/Source/CursesDialog/form/fty_ipv4.c new file mode 100644 index 0000000..fd7494e --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fty_ipv4.c @@ -0,0 +1,84 @@ + +/* + * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + * You may freely copy it for use as a template for your own field types. + * If you develop a field type that might be of general use, please send + * it back to the ncurses maintainers for inclusion in the next version. + */ +/*************************************************************************** +* * +* Author : Per Foreby, perf@efd.lth.se * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_ipv4.c,v 1.2 2002/06/18 21:19:38 king Exp $") + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_IPV4_Field( +| FIELD * field, +| const void * argp) +| +| Description : Validate buffer content to be a valid IP number (Ver. 4) +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +static bool Check_IPV4_Field(FIELD * field, const void * argp) +{ + char *bp = field_buffer(field,0); + int num = 0, len; + unsigned int d1, d2, d3, d4; + + argp=0; /* Silence unused parameter warning. */ + + if(isdigit((int)(*bp))) /* Must start with digit */ + { + num = sscanf(bp, "%u.%u.%u.%u%n", &d1, &d2, &d3, &d4, &len); + if (num == 4) + { + bp += len; /* Make bp point to what sscanf() left */ + while (*bp && isspace((int)(*bp))) + bp++; /* Allow trailing whitespace */ + } + } + return ((num != 4 || *bp || d1 > 255 || d2 > 255 + || d3 > 255 || d4 > 255) ? FALSE : TRUE); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_IPV4_Character( +| int c, +| const void *argp ) +| +| Description : Check a character for unsigned type or period. +| +| Return Values : TRUE - character is valid +| FALSE - character is invalid ++--------------------------------------------------------------------------*/ +static bool Check_IPV4_Character(int c, const void * argp) +{ + argp=0; /* Silence unused parameter warning. */ + return ((isdigit(c) || (c=='.')) ? TRUE : FALSE); +} + +static FIELDTYPE typeIPV4 = { + _RESIDENT, + 1, /* this is mutable, so we can't be const */ + (FIELDTYPE *)0, + (FIELDTYPE *)0, + NULL, + NULL, + NULL, + Check_IPV4_Field, + Check_IPV4_Character, + NULL, + NULL +}; + +FIELDTYPE* TYPE_IPV4 = &typeIPV4; + +/* fty_ipv4.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fty_num.c b/CMakeLua/Source/CursesDialog/form/fty_num.c new file mode 100644 index 0000000..04455ac --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fty_num.c @@ -0,0 +1,192 @@ + +/* + * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + * You may freely copy it for use as a template for your own field types. + * If you develop a field type that might be of general use, please send + * it back to the ncurses maintainers for inclusion in the next version. + */ +/*************************************************************************** +* * +* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_num.c,v 1.3 2002/06/18 21:19:38 king Exp $") + +#if HAVE_LOCALE_H +#include +#endif + +typedef struct { + int precision; + double low; + double high; + struct lconv* L; +} numericARG; + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Make_Numeric_Type(va_list * ap) +| +| Description : Allocate structure for numeric type argument. +| +| Return Values : Pointer to argument structure or NULL on error ++--------------------------------------------------------------------------*/ +static void *Make_Numeric_Type(va_list * ap) +{ + numericARG *argn = (numericARG *)malloc(sizeof(numericARG)); + + if (argn) + { + argn->precision = va_arg(*ap,int); + argn->low = va_arg(*ap,double); + argn->high = va_arg(*ap,double); +#if HAVE_LOCALE_H + argn->L = localeconv(); +#else + argn->L = NULL; +#endif + } + return (void *)argn; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Copy_Numeric_Type(const void * argp) +| +| Description : Copy structure for numeric type argument. +| +| Return Values : Pointer to argument structure or NULL on error. ++--------------------------------------------------------------------------*/ +static void *Copy_Numeric_Type(const void * argp) +{ + const numericARG *ap = (const numericARG *)argp; + numericARG *result = (numericARG *)0; + + if (argp) + { + result = (numericARG *)malloc(sizeof(numericARG)); + if (result) + *result = *ap; + } + return (void *)result; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Free_Numeric_Type(void * argp) +| +| Description : Free structure for numeric type argument. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Free_Numeric_Type(void * argp) +{ + if (argp) + free(argp); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Numeric_Field(FIELD * field, +| const void * argp) +| +| Description : Validate buffer content to be a valid numeric value +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Numeric_Field(FIELD * field, const void * argp) +{ + const numericARG *argn = (const numericARG *)argp; + double low = argn->low; + double high = argn->high; + int prec = argn->precision; + unsigned char *bp = (unsigned char *)field_buffer(field,0); + char *s = (char *)bp; + double val = 0.0; + char buf[64]; + + while(*bp && *bp==' ') bp++; + if (*bp) + { + if (*bp=='-' || *bp=='+') + bp++; + while(*bp) + { + if (!isdigit(*bp)) break; + bp++; + } + if (*bp==( +#if HAVE_LOCALE_H + (L && L->decimal_point) ? *(L->decimal_point) : +#endif + '.')) + { + bp++; + while(*bp) + { + if (!isdigit(*bp)) break; + bp++; + } + } + while(*bp && *bp==' ') bp++; + if (*bp=='\0') + { + val = atof(s); + if (lowhigh) return FALSE; + } + sprintf(buf,"%.*f",(prec>0?prec:0),val); + set_field_buffer(field,0,buf); + return TRUE; + } + } + return FALSE; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_Numeric_Character( +| int c, +| const void * argp) +| +| Description : Check a character for the numeric type. +| +| Return Values : TRUE - character is valid +| FALSE - character is invalid ++--------------------------------------------------------------------------*/ +static bool Check_Numeric_Character(int c, const void * argp) +{ + argp=0; /* Silence unused parameter warning. */ + return (isdigit(c) || + c == '+' || + c == '-' || + c == ( +#if HAVE_LOCALE_H + (L && L->decimal_point) ? *(L->decimal_point) : +#endif + '.') + ) ? TRUE : FALSE; +} + +static FIELDTYPE typeNUMERIC = { + _HAS_ARGS | _RESIDENT, + 1, /* this is mutable, so we can't be const */ + (FIELDTYPE *)0, + (FIELDTYPE *)0, + Make_Numeric_Type, + Copy_Numeric_Type, + Free_Numeric_Type, + Check_Numeric_Field, + Check_Numeric_Character, + NULL, + NULL +}; + +FIELDTYPE* TYPE_NUMERIC = &typeNUMERIC; + +/* fty_num.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/fty_regex.c b/CMakeLua/Source/CursesDialog/form/fty_regex.c new file mode 100644 index 0000000..a754986 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/fty_regex.c @@ -0,0 +1,264 @@ + +/* + * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + * You may freely copy it for use as a template for your own field types. + * If you develop a field type that might be of general use, please send + * it back to the ncurses maintainers for inclusion in the next version. + */ +/*************************************************************************** +* * +* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_regex.c,v 1.2 2002/06/18 21:19:38 king Exp $") + +#if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */ +#include + +typedef struct +{ + regex_t *pRegExp; + unsigned long *refCount; +} RegExp_Arg; + +#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS +#undef RETURN +static int reg_errno; + +static char *RegEx_Init(char *instring) +{ + reg_errno = 0; + return instring; +} + +static char *RegEx_Error(int code) +{ + reg_errno = code; + return 0; +} + +#define INIT register char *sp = RegEx_Init(instring); +#define GETC() (*sp++) +#define PEEKC() (*sp) +#define UNGETC(c) (--sp) +#define RETURN(c) return(c) +#define ERROR(c) return RegEx_Error(c) + +#if HAVE_REGEXP_H_FUNCS +#include +#else +#include +#endif + +typedef struct +{ + char *compiled_expression; + unsigned long *refCount; +} RegExp_Arg; + +/* Maximum Length we allow for a compiled regular expression */ +#define MAX_RX_LEN (2048) +#define RX_INCREMENT (256) + +#endif + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Make_RegularExpression_Type(va_list * ap) +| +| Description : Allocate structure for regex type argument. +| +| Return Values : Pointer to argument structure or NULL on error ++--------------------------------------------------------------------------*/ +static void *Make_RegularExpression_Type(va_list * ap) +{ +#if HAVE_REGEX_H_FUNCS + char *rx = va_arg(*ap,char *); + RegExp_Arg *preg; + + preg = (RegExp_Arg*)malloc(sizeof(RegExp_Arg)); + if (preg) + { + if (((preg->pRegExp = (regex_t*)malloc(sizeof(regex_t))) != (regex_t*)0) + && !regcomp(preg->pRegExp,rx, + (REG_EXTENDED | REG_NOSUB | REG_NEWLINE) )) + { + preg->refCount = (unsigned long *)malloc(sizeof(unsigned long)); + *(preg->refCount) = 1; + } + else + { + if (preg->pRegExp) + free(preg->pRegExp); + free(preg); + preg = (RegExp_Arg*)0; + } + } + return((void *)preg); +#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS + char *rx = va_arg(*ap,char *); + RegExp_Arg *pArg; + + pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg)); + + if (pArg) + { + int blen = RX_INCREMENT; + pArg->compiled_expression = NULL; + pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long)); + *(pArg->refCount) = 1; + + do { + char *buf = (char *)malloc(blen); + if (buf) + { +#if HAVE_REGEXP_H_FUNCS + char *last_pos = compile (rx, buf, &buf[blen], '\0'); +#else /* HAVE_REGEXPR_H_FUNCS */ + char *last_pos = compile (rx, buf, &buf[blen]); +#endif + if (reg_errno) + { + free(buf); + if (reg_errno==50) + blen += RX_INCREMENT; + else + { + free(pArg); + pArg = NULL; + break; + } + } + else + { + pArg->compiled_expression = buf; + break; + } + } + } while( blen <= MAX_RX_LEN ); + } + if (pArg && !pArg->compiled_expression) + { + free(pArg); + pArg = NULL; + } + return (void *)pArg; +#else + ap=0; /* Silence unused parameter warning. */ + return 0; +#endif +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Copy_RegularExpression_Type( +| const void * argp) +| +| Description : Copy structure for regex type argument. +| +| Return Values : Pointer to argument structure or NULL on error. ++--------------------------------------------------------------------------*/ +static void *Copy_RegularExpression_Type(const void * argp) +{ +#if (HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS) + const RegExp_Arg *ap = (const RegExp_Arg *)argp; + const RegExp_Arg *result = (const RegExp_Arg *)0; + + if (ap) + { + *(ap->refCount) += 1; + result = ap; + } + return (void *)result; +#else + argp=0; /* Silence unused parameter warning. */ + return 0; +#endif +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void Free_RegularExpression_Type(void * argp) +| +| Description : Free structure for regex type argument. +| +| Return Values : - ++--------------------------------------------------------------------------*/ +static void Free_RegularExpression_Type(void * argp) +{ +#if HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS + RegExp_Arg *ap = (RegExp_Arg *)argp; + if (ap) + { + if (--(*(ap->refCount)) == 0) + { +#if HAVE_REGEX_H_FUNCS + if (ap->pRegExp) + { + free(ap->refCount); + regfree(ap->pRegExp); + } +#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS + if (ap->compiled_expression) + { + free(ap->refCount); + free(ap->compiled_expression); + } +#endif + free(ap); + } + } +#else + argp=0; /* Silence unused parameter warning. */ +#endif +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static bool Check_RegularExpression_Field( +| FIELD * field, +| const void * argp) +| +| Description : Validate buffer content to be a valid regular expression +| +| Return Values : TRUE - field is valid +| FALSE - field is invalid ++--------------------------------------------------------------------------*/ +static bool Check_RegularExpression_Field(FIELD * field, const void * argp) +{ + bool match = FALSE; +#if HAVE_REGEX_H_FUNCS + const RegExp_Arg *ap = (const RegExp_Arg*)argp; + if (ap && ap->pRegExp) + match = (regexec(ap->pRegExp,field_buffer(field,0),0,NULL,0) ? FALSE:TRUE); +#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS + RegExp_Arg *ap = (RegExp_Arg *)argp; + if (ap && ap->compiled_expression) + match = (step(field_buffer(field,0),ap->compiled_expression) ? TRUE:FALSE); +#else + argp=0; /* Silence unused parameter warning. */ + field=0; /* Silence unused parameter warning. */ +#endif + return match; +} + +static FIELDTYPE typeREGEXP = { + _HAS_ARGS | _RESIDENT, + 1, /* this is mutable, so we can't be const */ + (FIELDTYPE *)0, + (FIELDTYPE *)0, + Make_RegularExpression_Type, + Copy_RegularExpression_Type, + Free_RegularExpression_Type, + Check_RegularExpression_Field, + NULL, + NULL, + NULL +}; + +FIELDTYPE* TYPE_REGEXP = &typeREGEXP; + +/* fty_regex.c ends here */ diff --git a/CMakeLua/Source/CursesDialog/form/llib-lform b/CMakeLua/Source/CursesDialog/form/llib-lform new file mode 100644 index 0000000..ac2ba43 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/llib-lform @@ -0,0 +1,694 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996,1997 * + ****************************************************************************/ +/* LINTLIBRARY */ + +/* ./fld_arg.c */ + +#include "form.priv.h" + +#undef set_fieldtype_arg +int set_fieldtype_arg( + FIELDTYPE *typ, + void *(*const make_arg)( + va_list *p1), + void *(*const copy_arg)( + const void *p1), + void (*const free_arg)( + void *p1)) + { return(*(int *)0); } + +#undef field_arg +void *field_arg( + const FIELD *field) + { return(*(void **)0); } + +/* ./fld_attr.c */ + +#undef set_field_fore +int set_field_fore( + FIELD *field, + chtype attr) + { return(*(int *)0); } + +#undef field_fore +chtype field_fore( + const FIELD *field) + { return(*(chtype *)0); } + +#undef set_field_back +int set_field_back( + FIELD *field, + chtype attr) + { return(*(int *)0); } + +#undef field_back +chtype field_back( + const FIELD *field) + { return(*(chtype *)0); } + +/* ./fld_current.c */ + +#undef set_current_field +int set_current_field( + FORM *form, + FIELD *field) + { return(*(int *)0); } + +#undef current_field +FIELD *current_field( + const FORM *form) + { return(*(FIELD **)0); } + +#undef field_index +int field_index( + const FIELD *field) + { return(*(int *)0); } + +/* ./fld_def.c */ + +#undef _nc_Default_Field +FIELD *_nc_Default_Field; + +#undef _nc_Make_Argument +TypeArgument *_nc_Make_Argument( + const FIELDTYPE *typ, + va_list *ap, + int *err) + { return(*(TypeArgument **)0); } + +#undef _nc_Copy_Argument +TypeArgument *_nc_Copy_Argument( + const FIELDTYPE *typ, + const TypeArgument *argp, + int *err) + { return(*(TypeArgument **)0); } + +#undef _nc_Free_Argument +void _nc_Free_Argument( + const FIELDTYPE *typ, + TypeArgument *argp) + { /* void */ } + +#undef _nc_Copy_Type +bool _nc_Copy_Type( + FIELD *dst, + FIELD const *src) + { return(*(bool *)0); } + +#undef _nc_Free_Type +void _nc_Free_Type( + FIELD *field) + { /* void */ } + +#undef new_field +FIELD *new_field( + int rows, + int cols, + int frow, + int fcol, + int nrow, + int nbuf) + { return(*(FIELD **)0); } + +#undef free_field +int free_field( + FIELD *field) + { return(*(int *)0); } + +/* ./fld_dup.c */ + +#undef dup_field +FIELD *dup_field( + FIELD *field, + int frow, + int fcol) + { return(*(FIELD **)0); } + +/* ./fld_ftchoice.c */ + +#undef set_fieldtype_choice +int set_fieldtype_choice( + FIELDTYPE *typ, + bool (*const next_choice)( + FIELD *p1, + const void *p2), + bool (*const prev_choice)( + FIELD *p1, + const void *p2)) + { return(*(int *)0); } + +/* ./fld_ftlink.c */ + +#undef link_fieldtype +FIELDTYPE *link_fieldtype( + FIELDTYPE *type1, + FIELDTYPE *type2) + { return(*(FIELDTYPE **)0); } + +/* ./fld_info.c */ + +#undef field_info +int field_info( + const FIELD *field, + int *rows, + int *cols, + int *frow, + int *fcol, + int *nrow, + int *nbuf) + { return(*(int *)0); } + +#undef dynamic_field_info +int dynamic_field_info( + const FIELD *field, + int *drows, + int *dcols, + int *maxgrow) + { return(*(int *)0); } + +/* ./fld_just.c */ + +#undef set_field_just +int set_field_just( + FIELD *field, + int just) + { return(*(int *)0); } + +#undef field_just +int field_just( + const FIELD *field) + { return(*(int *)0); } + +/* ./fld_link.c */ + +#undef link_field +FIELD *link_field( + FIELD *field, + int frow, + int fcol) + { return(*(FIELD **)0); } + +/* ./fld_max.c */ + +#undef set_max_field +int set_max_field( + FIELD *field, + int maxgrow) + { return(*(int *)0); } + +/* ./fld_move.c */ + +#undef move_field +int move_field( + FIELD *field, + int frow, + int fcol) + { return(*(int *)0); } + +/* ./fld_newftyp.c */ + +#undef _nc_Default_FieldType +const FIELDTYPE *_nc_Default_FieldType = {0}; + +#undef new_fieldtype +FIELDTYPE *new_fieldtype( + bool (*const field_check)( + FIELD *p1, + const void *p2), + bool (*const char_check)( + int p1, + const void *p2)) + { return(*(FIELDTYPE **)0); } + +#undef free_fieldtype +int free_fieldtype( + FIELDTYPE *typ) + { return(*(int *)0); } + +/* ./fld_opts.c */ + +#undef set_field_opts +int set_field_opts( + FIELD *field, + Field_Options opts) + { return(*(int *)0); } + +#undef field_opts +Field_Options field_opts( + const FIELD *field) + { return(*(Field_Options *)0); } + +#undef field_opts_on +int field_opts_on( + FIELD *field, + Field_Options opts) + { return(*(int *)0); } + +#undef field_opts_off +int field_opts_off( + FIELD *field, + Field_Options opts) + { return(*(int *)0); } + +/* ./fld_pad.c */ + +#undef set_field_pad +int set_field_pad( + FIELD *field, + int ch) + { return(*(int *)0); } + +#undef field_pad +int field_pad( + const FIELD *field) + { return(*(int *)0); } + +/* ./fld_page.c */ + +#undef set_new_page +int set_new_page( + FIELD *field, + bool new_page_flag) + { return(*(int *)0); } + +#undef new_page +bool new_page( + const FIELD *field) + { return(*(bool *)0); } + +/* ./fld_stat.c */ + +#undef set_field_status +int set_field_status( + FIELD *field, + bool status) + { return(*(int *)0); } + +#undef field_status +bool field_status( + const FIELD *field) + { return(*(bool *)0); } + +/* ./fld_type.c */ + +#undef set_field_type +int set_field_type( + FIELD *field, + FIELDTYPE *type, + ...) + { return(*(int *)0); } + +#undef field_type +FIELDTYPE *field_type( + const FIELD *field) + { return(*(FIELDTYPE **)0); } + +/* ./fld_user.c */ + +#undef set_field_userptr +int set_field_userptr( + FIELD *field, + void *usrptr) + { return(*(int *)0); } + +#undef field_userptr +void *field_userptr( + const FIELD *field) + { return(*(void **)0); } + +/* ./frm_cursor.c */ + +#undef pos_form_cursor +int pos_form_cursor( + FORM *form) + { return(*(int *)0); } + +/* ./frm_data.c */ + +#undef data_behind +bool data_behind( + const FORM *form) + { return(*(bool *)0); } + +#undef data_ahead +bool data_ahead( + const FORM *form) + { return(*(bool *)0); } + +/* ./frm_def.c */ + +#undef _nc_Default_Form +FORM *_nc_Default_Form; + +#undef new_form +FORM *new_form( + FIELD **fields) + { return(*(FORM **)0); } + +#undef free_form +int free_form( + FORM *form) + { return(*(int *)0); } + +#undef set_form_fields +int set_form_fields( + FORM *form, + FIELD **fields) + { return(*(int *)0); } + +#undef form_fields +FIELD **form_fields( + const FORM *form) + { return(*(FIELD ***)0); } + +#undef field_count +int field_count( + const FORM *form) + { return(*(int *)0); } + +/* ./frm_driver.c */ + +#undef _nc_Position_Form_Cursor +int _nc_Position_Form_Cursor( + FORM *form) + { return(*(int *)0); } + +#undef _nc_Refresh_Current_Field +int _nc_Refresh_Current_Field( + FORM *form) + { return(*(int *)0); } + +#undef _nc_Synchronize_Attributes +int _nc_Synchronize_Attributes( + FIELD *field) + { return(*(int *)0); } + +#undef _nc_Synchronize_Options +int _nc_Synchronize_Options( + FIELD *field, + Field_Options newopts) + { return(*(int *)0); } + +#undef _nc_Set_Current_Field +int _nc_Set_Current_Field( + FORM *form, + FIELD *newfield) + { return(*(int *)0); } + +#undef _nc_Internal_Validation +bool _nc_Internal_Validation( + FORM *form) + { return(*(bool *)0); } + +#undef _nc_First_Active_Field +FIELD *_nc_First_Active_Field( + FORM *form) + { return(*(FIELD **)0); } + +#undef _nc_Set_Form_Page +int _nc_Set_Form_Page( + FORM *form, + int page, + FIELD *field) + { return(*(int *)0); } + +typedef struct { + int keycode; + int (*cmd)(FORM *); +} Binding_Info; + +#undef form_driver +int form_driver( + FORM *form, + int c) + { return(*(int *)0); } + +#undef set_field_buffer +int set_field_buffer( + FIELD *field, + int buffer, + const char *value) + { return(*(int *)0); } + +#undef field_buffer +char *field_buffer( + const FIELD *field, + int buffer) + { return(*(char **)0); } + +/* ./frm_hook.c */ + +#undef set_field_init +int set_field_init( + FORM *form, + Form_Hook func) + { return(*(int *)0); } + +#undef field_init +Form_Hook field_init( + const FORM *form) + { return(*(Form_Hook *)0); } + +#undef set_field_term +int set_field_term( + FORM *form, + Form_Hook func) + { return(*(int *)0); } + +#undef field_term +Form_Hook field_term( + const FORM *form) + { return(*(Form_Hook *)0); } + +#undef set_form_init +int set_form_init( + FORM *form, + Form_Hook func) + { return(*(int *)0); } + +#undef form_init +Form_Hook form_init( + const FORM *form) + { return(*(Form_Hook *)0); } + +#undef set_form_term +int set_form_term( + FORM *form, + Form_Hook func) + { return(*(int *)0); } + +#undef form_term +Form_Hook form_term( + const FORM *form) + { return(*(Form_Hook *)0); } + +/* ./frm_opts.c */ + +#undef set_form_opts +int set_form_opts( + FORM *form, + Form_Options opts) + { return(*(int *)0); } + +#undef form_opts +Form_Options form_opts( + const FORM *form) + { return(*(Form_Options *)0); } + +#undef form_opts_on +int form_opts_on( + FORM *form, + Form_Options opts) + { return(*(int *)0); } + +#undef form_opts_off +int form_opts_off( + FORM *form, + Form_Options opts) + { return(*(int *)0); } + +/* ./frm_page.c */ + +#undef set_form_page +int set_form_page( + FORM *form, + int page) + { return(*(int *)0); } + +#undef form_page +int form_page( + const FORM *form) + { return(*(int *)0); } + +/* ./frm_post.c */ + +#undef post_form +int post_form( + FORM *form) + { return(*(int *)0); } + +#undef unpost_form +int unpost_form( + FORM *form) + { return(*(int *)0); } + +/* ./frm_req_name.c */ + +#undef form_request_name +const char *form_request_name( + int request) + { return(*(const char **)0); } + +#undef form_request_by_name +int form_request_by_name( + const char *str) + { return(*(int *)0); } + +/* ./frm_scale.c */ + +#undef scale_form +int scale_form( + const FORM *form, + int *rows, + int *cols) + { return(*(int *)0); } + +/* ./frm_sub.c */ + +#undef set_form_sub +int set_form_sub( + FORM *form, + WINDOW *win) + { return(*(int *)0); } + +#undef form_sub +WINDOW *form_sub( + const FORM *form) + { return(*(WINDOW **)0); } + +/* ./frm_user.c */ + +#undef set_form_userptr +int set_form_userptr( + FORM *form, + void *usrptr) + { return(*(int *)0); } + +#undef form_userptr +void *form_userptr( + const FORM *form) + { return(*(void **)0); } + +/* ./frm_win.c */ + +#undef set_form_win +int set_form_win( + FORM *form, + WINDOW *win) + { return(*(int *)0); } + +#undef form_win +WINDOW *form_win( + const FORM *form) + { return(*(WINDOW **)0); } + +/* ./fty_alnum.c */ + +typedef struct { + int width; +} alnumARG; + +#undef TYPE_ALNUM +FIELDTYPE *TYPE_ALNUM; + +/* ./fty_alpha.c */ + +typedef struct { + int width; +} alphaARG; + +#undef TYPE_ALPHA +FIELDTYPE *TYPE_ALPHA; + +/* ./fty_enum.c */ + +typedef struct { + char **kwds; + int count; + bool checkcase; + bool checkunique; +} enumARG; + +#undef TYPE_ENUM +FIELDTYPE *TYPE_ENUM; + +/* ./fty_int.c */ + +typedef struct { + int precision; + long low; + long high; +} integerARG; + +#undef TYPE_INTEGER +FIELDTYPE *TYPE_INTEGER; + +/* ./fty_ipv4.c */ +#undef TYPE_IPV4 +FIELDTYPE *TYPE_IPV4; + +/* ./fty_num.c */ + +#include + +typedef struct { + int precision; + double low; + double high; + struct lconv* L; +} numericARG; + +#undef TYPE_NUMERIC +FIELDTYPE *TYPE_NUMERIC; + +/* ./fty_regex.c */ + +#include + +typedef struct +{ + regex_t *pRegExp; + unsigned long *refCount; +} RegExp_Arg; + +#undef TYPE_REGEXP +FIELDTYPE *TYPE_REGEXP; diff --git a/CMakeLua/Source/CursesDialog/form/mf_common.h b/CMakeLua/Source/CursesDialog/form/mf_common.h new file mode 100644 index 0000000..6b1e8fe --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/mf_common.h @@ -0,0 +1,93 @@ +/**************************************************************************** + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1995,1997 * + ****************************************************************************/ + +/* Common internal header for menu and form library */ + +#if HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include + +#if DECL_ERRNO +extern int errno; +#endif + +/* in case of debug version we ignore the suppression of assertions */ +#ifdef TRACE +# ifdef NDEBUG +# undef NDEBUG +# endif +#endif + +#include + +#if USE_RCS_IDS +#define MODULE_ID(id) static const char Ident[] = id; +#else +#define MODULE_ID(id) /*nothing*/ +#endif + + +/* Maximum regular 8-bit character code */ +#define MAX_REGULAR_CHARACTER (0xff) + +#define SET_ERROR(code) (errno=(code)) +#define GET_ERROR() (errno) +#define RETURN(code) return( SET_ERROR(code) ) + +/* The few common values in the status fields for menus and forms */ +#define _POSTED (0x01) /* menu or form is posted */ +#define _IN_DRIVER (0x02) /* menu or form is processing hook routine */ + +/* Call object hook */ +#define Call_Hook( object, handler ) \ + if ( (object) && ((object)->handler) )\ + {\ + (object)->status |= _IN_DRIVER;\ + (object)->handler(object);\ + (object)->status &= ~_IN_DRIVER;\ + } + +#define INLINE + +#ifndef TRACE +# if CC_HAS_INLINE_FUNCS +# undef INLINE +# define INLINE inline +# endif +#endif diff --git a/CMakeLua/Source/CursesDialog/form/nc_alloc.h b/CMakeLua/Source/CursesDialog/form/nc_alloc.h new file mode 100644 index 0000000..4423e69 --- /dev/null +++ b/CMakeLua/Source/CursesDialog/form/nc_alloc.h @@ -0,0 +1,83 @@ +/**************************************************************************** + * Copyright (c) 1998 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996,1997 * + ****************************************************************************/ +/* $Id: nc_alloc.h,v 1.2 2001/11/08 22:03:52 berk Exp $ */ + +#ifndef NC_ALLOC_included +#define NC_ALLOC_included 1 + +#if HAVE_LIBDMALLOC +#include /* Gray Watson's library */ +#else +#undef HAVE_LIBDMALLOC +#define HAVE_LIBDMALLOC 0 +#endif + +#if HAVE_LIBDBMALLOC +#include /* Conor Cahill's library */ +#else +#undef HAVE_LIBDBMALLOC +#define HAVE_LIBDBMALLOC 0 +#endif + +#ifndef NO_LEAKS +#define NO_LEAKS 0 +#endif + +#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS +#define HAVE_NC_FREEALL 1 +struct termtype; +extern void _nc_free_and_exit(int) GCC_NORETURN; +extern void _nc_free_tparm(void); +extern void _nc_leaks_dump_entry(void); +#define ExitProgram(code) _nc_free_and_exit(code) +#endif + +#ifndef HAVE_NC_FREEALL +#define HAVE_NC_FREEALL 0 +#endif + +#ifndef ExitProgram +#define ExitProgram(code) return code +#endif + +/* doalloc.c */ +extern void *_nc_doalloc(void *, size_t); +#if !HAVE_STRDUP +/* #define strdup _nc_strdup */ +extern char *_nc_strdup(const char *); +#endif + +#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type)) +#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type)) +#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type)) + +#endif /* NC_ALLOC_included */ diff --git a/CMakeLua/Source/FLTKDialog/CMakeLists.txt b/CMakeLua/Source/FLTKDialog/CMakeLists.txt new file mode 100644 index 0000000..47eea55 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CMakeLists.txt @@ -0,0 +1,20 @@ +FIND_PACKAGE(FLTK REQUIRED) + +SET(SRCS + CMakeSetupGUIImplementation.cxx + FLTKDialog.cxx + FLTKPropertyItemRow.cxx + FLTKPropertyList.cxx + ) + +SET(FLTK_GUI_Files_SRCS + CMakeSetupGUI.fl + ) + +INCLUDE_DIRECTORIES(${FLTK_INCLUDE_PATH}) + +FLTK_WRAP_UI(FLCMakeSetup ${FLTK_GUI_Files_SRCS}) + +ADD_EXECUTABLE(FLCMakeSetup ${SRCS} ${FLCMakeSetup_FLTK_UI_SRCS} ) +TARGET_LINK_LIBRARIES(FLCMakeSetup ${FLTK_LIBRARY} CMakeLib) + diff --git a/CMakeLua/Source/FLTKDialog/CMakeSetupGUI.fl b/CMakeLua/Source/FLTKDialog/CMakeSetupGUI.fl new file mode 100644 index 0000000..f13d696 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CMakeSetupGUI.fl @@ -0,0 +1,116 @@ +# data file for the Fltk User Interface Designer (fluid) +version 1.0009 +header_name {.h} +code_name {.cxx} +gridx 5 +gridy 5 +snap 3 +class CMakeSetupGUI {open +} { + Function {CMakeSetupGUI()} {open + } { + Fl_Window dialogWindow { + label CMakeSetupDialog + callback {recentSourceDirectoriesBrowser->hide(); +recentBinaryDirectoriesBrowser->hide();} + xywh {646 144 562 373} resizable visible + } { + Fl_Input sourcePathTextInput { + label {Where is the source code: } + callback {SetSourcePath( sourcePathTextInput->value() );} + xywh {219 15 200 20} labelsize 11 when 8 textsize 11 + } + Fl_Button {} { + label {Browse...} + callback {BrowseForSourcePath();} + xywh {453 14 65 22} shortcut 0x80073 labelsize 11 + } + Fl_Input binaryPathTextInput { + label {Where do you want to build the binaries: } + callback {SetBinaryPath( binaryPathTextInput->value() );} + xywh {219 50 200 20} labelsize 11 when 8 textsize 11 + } + Fl_Button {} { + label {Browse...} + callback {BrowseForBinaryPath();} + xywh {453 49 65 22} shortcut 0x80062 labelsize 11 + } + Fl_Button m_CancelButton { + label Cancel + callback {ClickOnCancel();} + xywh {390 332 100 23} shortcut 0x80071 labelsize 11 + } + Fl_Button m_ConfigureButton { + label Configure + callback {ClickOnConfigure();} + xywh {105 332 100 23} shortcut 0x8006d labelsize 11 + } + Fl_Group {} { + xywh {25 80 515 222} box ENGRAVED_BOX labelsize 11 align 0 resizable + } { + Fl_Scroll cacheValuesScroll { + label {Cache Values} open + xywh {40 98 485 190} type BOTH_ALWAYS box DOWN_FRAME labelsize 11 align 5 when 1 resizable + } { + Fl_Pack propertyListPack { + xywh {40 99 485 185} resizable + } {} + } + } + Fl_Box {} { + label {Right click on cache entries for additional options} + xywh {160 305 275 25} labelsize 11 + } + Fl_Button {} { + label {@\#2>} + callback {ShowRecentSourceDirectories();} + xywh {420 15 22 21} labeltype SYMBOL_LABEL + } + Fl_Button {} { + label {@\#2>} + callback {ShowRecentBinaryDirectories();} + xywh {420 50 22 21} labeltype SYMBOL_LABEL + } + Fl_Browser recentSourceDirectoriesBrowser { + callback {SelectOneRecentSourceDirectory();} + xywh {15 35 535 115} type Hold box BORDER_BOX hide + } + Fl_Browser recentBinaryDirectoriesBrowser { + callback {SelectOneRecentBinaryDirectory();} + xywh {15 70 535 115} type Hold box BORDER_BOX hide + } + Fl_Button m_OKButton { + label OK + callback {ClickOnOK();} selected + xywh {250 332 100 23} shortcut 0x8006d labelsize 11 + } + } + } + Function {~CMakeSetupGUI()} {} {} + Function {Close(void)} {return_type {virtual void} + } {} + Function {BrowseForSourcePath(void)} {return_type {virtual void} + } {} + Function {BrowseForBinaryPath(void)} {return_type {virtual void} + } {} + Function {Show(void)} {return_type {virtual void} + } {} + Function {SetBinaryPath(const char *)} {return_type {virtual void} + } { } + Function {SetSourcePath(const char *)} {return_type {virtual void} + } { } + Function {ShowRecentBinaryDirectories(void)} {return_type {virtual void} + } {} + Function {ShowRecentSourceDirectories(void)} {return_type {virtual void} + } {} + Function {SelectOneRecentBinaryDirectory(void)} {return_type {virtual void} + } {} + Function {SelectOneRecentSourceDirectory(void)} {return_type {virtual void} + } {} + Function {ClickOnConfigure(void)} {return_type {virtual void} + } {} + Function {ClickOnOK(void)} {return_type {virtual void} + } {} + Function {ClickOnCancel(void)} {return_type {virtual void} + } {} +} diff --git a/CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx b/CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx new file mode 100644 index 0000000..98ed2e7 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx @@ -0,0 +1,844 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile: CMakeSetupGUIImplementation.cxx,v $ + Language: C++ + Date: $Date: 2007/08/21 20:21:09 $ + Version: $Revision: 1.30 $ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "CMakeSetupGUIImplementation.h" +#include "FL/Fl_File_Chooser.H" +#include "FL/filename.H" +#include "FL/fl_ask.H" +#include "../cmCacheManager.h" +#include "../cmMakefile.h" +#include +#include "FLTKPropertyList.h" +#include "FLTKPropertyItemRow.h" +#include "FL/fl_draw.H" +#include "../cmake.h" + +void FLTKMessageCallback(const char* message, const char* title, bool& nomore, void*) +{ + std::string msg = message; + msg += "\nPress cancel to suppress any further messages."; + int choice = fl_choice( msg.c_str(), "Cancel","Ok",0); + if(choice==0) + { + nomore = true; + } +} + +/** + * Constructor + */ +CMakeSetupGUIImplementation +::CMakeSetupGUIImplementation():m_CacheEntriesList(this) +{ + m_CMakeInstance = new cmake; + cmSystemTools::SetErrorCallback(FLTKMessageCallback); + m_BuildPathChanged = false; +} + + + +/** + * Destructor + */ +CMakeSetupGUIImplementation +::~CMakeSetupGUIImplementation() +{ +} + + + + +/** + * Show the graphic interface + */ +void +CMakeSetupGUIImplementation +::Show( void ) +{ + dialogWindow->show(); +} + + + + + +/** + * Hide the graphic interface + */ +void +CMakeSetupGUIImplementation +::Close( void ) +{ + SaveRecentDirectories(); + dialogWindow->hide(); +} + + + + + +/** + * Browse for the path to the sources + */ +void +CMakeSetupGUIImplementation +::BrowseForSourcePath( void ) +{ + const char * path = + fl_dir_chooser( + "Path to Sources", + sourcePathTextInput->value() ); + + if( !path ) + { + return; + } + + SetSourcePath( path ); + +} + + + + +/** + * Browse for the path to the binaries + */ +void +CMakeSetupGUIImplementation +::BrowseForBinaryPath( void ) +{ + const char * path = + fl_dir_chooser( + "Path to Binaries", + binaryPathTextInput->value() ); + + if( !path ) + { + return; + } + + SetBinaryPath( path ); + +} + + + + + +/** + * Set path to executable. Used to get the path to CMake + */ +void +CMakeSetupGUIImplementation +::SetPathToExecutable( const char * path ) +{ + m_PathToExecutable = cmSystemTools::CollapseFullPath(path); + m_PathToExecutable = cmSystemTools::GetProgramPath(m_PathToExecutable.c_str()).c_str(); +#ifdef _WIN32 + m_PathToExecutable += "/cmake.exe"; +#else + m_PathToExecutable += "/cmake"; +#endif +} + + + +/** + * Set the source path + */ +void +CMakeSetupGUIImplementation +::SetSourcePath( const char * path ) +{ + + if( !path || strlen(path)==0 ) + { + fl_alert("Please select the path to the sources"); + return; + } + + std::string expandedAbsolutePath = ExpandPathAndMakeItAbsolute( path ); + + sourcePathTextInput->value( expandedAbsolutePath.c_str() ); + + if( VerifySourcePath( expandedAbsolutePath ) ) + { + m_WhereSource = expandedAbsolutePath; + } + +} + + + + +/** + * Expand environment variables in the path and make it absolute + */ +std::string +CMakeSetupGUIImplementation +::ExpandPathAndMakeItAbsolute( const std::string & inputPath ) const +{ + return cmSystemTools::CollapseFullPath(inputPath.c_str()); +} + + +/** + * Set the binary path + */ +void +CMakeSetupGUIImplementation +::SetBinaryPath( const char * path ) +{ + + if( !path || strlen(path)==0 ) + { + fl_alert("Please select the path to the binaries"); + return; + } + + std::string expandedAbsolutePath = ExpandPathAndMakeItAbsolute( path ); + + binaryPathTextInput->value( expandedAbsolutePath.c_str() ); + + if( !VerifyBinaryPath( expandedAbsolutePath.c_str() ) ) + { + return; + } + + if( m_WhereBuild != expandedAbsolutePath ) + { + m_BuildPathChanged = true; + m_WhereBuild = expandedAbsolutePath; + m_CacheEntriesList.RemoveAll(); // remove data from other project + this->LoadCacheFromDiskToGUI(); + } + else + { + m_BuildPathChanged = false; + } + + +} + + + +/** + * Verify the path to binaries + */ +bool +CMakeSetupGUIImplementation +::VerifyBinaryPath( const std::string & path ) const +{ + + bool pathIsOK = false; + + if( cmSystemTools::FileIsDirectory( path.c_str() ) ) + { + pathIsOK = true; + } + else + { + int userWantsToCreateDirectory = + fl_ask("The directory \n %s \n Doesn't exist. Do you want to create it ?", + path.c_str() ); + + if( userWantsToCreateDirectory ) + { + cmSystemTools::MakeDirectory( path.c_str() ); + pathIsOK = true; + } + else + { + pathIsOK = false; + } + } + + return pathIsOK; + +} + + + +/** + * Verify the path to sources + */ +bool +CMakeSetupGUIImplementation +::VerifySourcePath( const std::string & path ) const +{ + + if( !cmSystemTools::FileIsDirectory(( path.c_str()))) + { + fl_alert("The Source directory \n %s \n Doesn't exist or is not a directory", path.c_str() ); + return false; + } + + return true; +} + + + + +/** + * Build the project files + */ +void +CMakeSetupGUIImplementation +::RunCMake( bool generateProjectFiles ) +{ + + if(!cmSystemTools::FileIsDirectory( m_WhereBuild.c_str() )) + { + std::string message = + "Build directory does not exist, should I create it?\n\n" + "Directory: "; + message += m_WhereBuild; + int userWantToCreateDirectory = + fl_ask(message.c_str()); + if( userWantToCreateDirectory ) + { + cmSystemTools::MakeDirectory( m_WhereBuild.c_str() ); + } + else + { + fl_alert("Build Project aborted, nothing done."); + return; + } + } + + + // set the wait cursor + fl_cursor(FL_CURSOR_WAIT,FL_BLACK,FL_WHITE); + + + // save the current GUI values to the cache + this->SaveCacheFromGUI(); + + // Make sure we are working from the cache on disk + this->LoadCacheFromDiskToGUI(); + + UpdateListOfRecentDirectories(); + SaveRecentDirectories(); + if (generateProjectFiles) + { + if(m_CMakeInstance->Generate() != 0) + { + cmSystemTools::Error( + "Error in generation process, project files may be invalid"); + } + } + else + { + m_CMakeInstance->SetHomeDirectory(m_WhereSource.c_str()); + m_CMakeInstance->SetStartDirectory(m_WhereSource.c_str()); + m_CMakeInstance->SetHomeOutputDirectory(m_WhereBuild.c_str()); + m_CMakeInstance->SetStartOutputDirectory(m_WhereBuild.c_str()); + const char* defaultGenerator = 0; +#if defined(_WIN32) + defaultGenerator = "NMake Makefiles"; +#else defined(_WIN32) + defaultGenerator = "Unix Makefiles"; +#endif defined(_WIN32) + m_CMakeInstance->SetGlobalGenerator( + m_CMakeInstance->CreateGlobalGenerator(defaultGenerator)); + m_CMakeInstance->SetCMakeCommand(m_PathToExecutable.c_str()); + m_CMakeInstance->LoadCache(); + if(m_CMakeInstance->Configure() != 0) + { + cmSystemTools::Error( + "Error in configuration process, project files may be invalid"); + } + // update the GUI with any new values in the caused by the + // generation process + this->LoadCacheFromDiskToGUI(); + } + + // path is up-to-date now + m_BuildPathChanged = false; + + + // put the cursor back + fl_cursor(FL_CURSOR_DEFAULT,FL_BLACK,FL_WHITE); + fl_message("Done !"); + +} + + + + +/** + * Load Cache from disk to GUI + */ +void +CMakeSetupGUIImplementation +::LoadCacheFromDiskToGUI( void ) +{ + + + if( m_WhereBuild != "" ) + { + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + cachem->LoadCache( m_WhereBuild.c_str() ); + this->FillCacheGUIFromCacheManager(); + } +} + + +/** + * Save Cache from disk to GUI + */ +void +CMakeSetupGUIImplementation +::SaveCacheFromGUI( void ) +{ + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + this->FillCacheManagerFromCacheGUI(); + if(m_WhereBuild != "") + { + cachem->SaveCache(m_WhereBuild.c_str()); + } +} + + +/** + * Fill Cache GUI from cache manager + */ +void +CMakeSetupGUIImplementation +::FillCacheGUIFromCacheManager( void ) +{ + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + size_t size = m_CacheEntriesList.GetItems().size(); + bool reverseOrder = false; + // if there are already entries in the cache, then + // put the new ones in the top, so they show up first + if(size) + { + reverseOrder = true; + } + + // all the current values are not new any more + std::set items = m_CacheEntriesList.GetItems(); + for(std::set::iterator i = items.begin(); + i != items.end(); ++i) + { + fltk::PropertyItem* item = *i; + item->m_NewValue = false; + } + // Prepare to add rows to the FLTK scroll/pack + propertyListPack->clear(); + propertyListPack->begin(); + +// const cmCacheManager::CacheEntryMap &cache = +// cmCacheManager::GetInstance()->GetCacheMap(); +// if(cache.size() == 0) +// { +// m_OKButton->deactivate(); +// } +// else +// { +// m_OKButton->activate(); +// } + + + + + for(cmCacheManager::CacheIterator i = cachem->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + const char* key = i.GetName(); + std::string value = i.GetValue(); + bool advanced = i.GetPropertyAsBool("ADVANCED"); + switch(i.GetType() ) + { + case cmCacheManager::BOOL: + if(cmSystemTools::IsOn(value.c_str())) + { + m_CacheEntriesList.AddProperty(key, + "ON", + i.GetProperty("HELPSTRING"), + fltk::PropertyList::CHECKBOX,"", + reverseOrder); + } + else + { + m_CacheEntriesList.AddProperty(key, + "OFF", + i.GetProperty("HELPSTRING"), + fltk::PropertyList::CHECKBOX,"", + reverseOrder); + } + break; + case cmCacheManager::PATH: + m_CacheEntriesList.AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + fltk::PropertyList::PATH,"", + reverseOrder); + break; + case cmCacheManager::FILEPATH: + m_CacheEntriesList.AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + fltk::PropertyList::FILE,"", + reverseOrder); + break; + case cmCacheManager::STRING: + m_CacheEntriesList.AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + fltk::PropertyList::EDIT,"", + reverseOrder); + break; + case cmCacheManager::STATIC: + case cmCacheManager::INTERNAL: + m_CacheEntriesList.RemoveProperty(key); + break; + } + } + + // Add the old entry to the end of the pack + for(std::set::iterator i = items.begin(); + i != items.end(); ++i) + { + fltk::PropertyItem* item = *i; + if( !(item->m_NewValue) ) + { + new fltk::PropertyItemRow( item ); // GUI of the old property row + } + } + + propertyListPack->end(); + propertyListPack->init_sizes(); + cacheValuesScroll->position( 0, 0 ); + + propertyListPack->redraw(); + + Fl::check(); + + this->UpdateData(false); + +} + + +/** + * UpdateData + */ +void +CMakeSetupGUIImplementation +::UpdateData( bool option ) +{ + dialogWindow->redraw(); + Fl::check(); +} + + + +/** + * Fill cache manager from Cache GUI + */ +void +CMakeSetupGUIImplementation +::FillCacheManagerFromCacheGUI( void ) +{ + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + std::set items = m_CacheEntriesList.GetItems(); + for(std::set::iterator i = items.begin(); + i != items.end(); ++i) + { + fltk::PropertyItem* item = *i; + if ( it.Find((const char*)item->m_propName.c_str()) ) + { + it.SetValue(item->m_curValue.c_str()); + } + if( item->m_Dirty ) + { + m_CacheEntriesList.SetDirty(); + } + } +} + + + + +/** + * Load Recent Directories + */ +void +CMakeSetupGUIImplementation +::LoadRecentDirectories( void ) +{ + std::string home = getenv("HOME"); + std::string filename = home + "/.cmakerc"; + + std::ifstream input; + input.open(filename.c_str()); + + if( input.fail() ) + { + // probably the file doesn't exist + return; + } + + m_RecentBinaryDirectories.clear(); + m_RecentSourceDirectories.clear(); + + std::string key; + std::string onedirectory; + + while( !input.eof() ) + { + input >> key; + + if( input.eof() ) break; + + if( key == "MostRecentSource" ) + { + input >> onedirectory; + m_WhereSource = onedirectory; + sourcePathTextInput->value( m_WhereSource.c_str() ); + } else + if( key == "MostRecentBinary" ) + { + input >> onedirectory; + m_WhereBuild = onedirectory; + binaryPathTextInput->value( m_WhereBuild.c_str() ); + LoadCacheFromDiskToGUI(); + } else + if( key == "Binary" ) + { + input >> onedirectory; + // insert is only done if the directory doesn't exist + m_RecentBinaryDirectories.insert( onedirectory ); + recentBinaryDirectoriesBrowser->add( + (onedirectory.c_str()), + (void*)(onedirectory.c_str()) ); + } else + if( key == "Source" ) + { + input >> onedirectory; + // insert is only done if the directory doesn't exist + m_RecentSourceDirectories.insert( onedirectory ); + recentSourceDirectoriesBrowser->add( + (onedirectory.c_str()), + (void*)(onedirectory.c_str()) ); + } + + } + + input.close(); +} + + + +/** + * Save Recent Directories + */ +void +CMakeSetupGUIImplementation +::SaveRecentDirectories( void ) +{ + std::string home = getenv("HOME"); + + if( home.empty() ) + { + return; + } + + std::string filename = home + "/.cmakerc"; + + std::ofstream output; + output.open(filename.c_str()); + + output << "MostRecentBinary " << m_WhereBuild << std::endl; + output << "MostRecentSource " << m_WhereSource << std::endl; + + // Save Recent binary directories + std::set< std::string >::iterator bindir = + m_RecentBinaryDirectories.begin(); + + while( bindir != m_RecentBinaryDirectories.end() ) + { + output << "Binary " << *bindir << std::endl; + bindir++; + } + + + // Save Recent source directories + std::set< std::string >::iterator srcdir = + m_RecentSourceDirectories.begin(); + + while( srcdir != m_RecentSourceDirectories.end() ) + { + output << "Source " << *srcdir << std::endl; + srcdir++; + } + +} + + +/** + * Show Recent Binary Directories + */ +void +CMakeSetupGUIImplementation +::ShowRecentBinaryDirectories( void ) +{ + if( recentBinaryDirectoriesBrowser->size() ) + { + recentBinaryDirectoriesBrowser->Fl_Widget::show(); + } +} + + +/** + * Show Recent Source Directories + */ +void +CMakeSetupGUIImplementation +::ShowRecentSourceDirectories( void ) +{ + if( recentSourceDirectoriesBrowser->size() ) + { + recentSourceDirectoriesBrowser->Fl_Widget::show(); + } +} + + +/** + * Select one Recent Binary Directory + */ +void +CMakeSetupGUIImplementation +::SelectOneRecentBinaryDirectory( void ) +{ + const int selected = recentBinaryDirectoriesBrowser->value(); + if( selected == 0 ) + { + return; + } + + m_WhereBuild = static_cast( + recentBinaryDirectoriesBrowser->data( selected )); + binaryPathTextInput->value( m_WhereBuild.c_str() ); + recentBinaryDirectoriesBrowser->Fl_Widget::hide(); + m_CacheEntriesList.RemoveAll(); // remove data from other project + LoadCacheFromDiskToGUI(); +} + + +/** + * Select one Recent Source Directory + */ +void +CMakeSetupGUIImplementation +::SelectOneRecentSourceDirectory( void ) +{ + const int selected = recentSourceDirectoriesBrowser->value(); + if( selected == 0 ) + { + return; + } + m_WhereSource = static_cast< char * >( + recentSourceDirectoriesBrowser->data( selected )); + sourcePathTextInput->value( m_WhereSource.c_str() ); + recentSourceDirectoriesBrowser->Fl_Widget::hide(); +} + + + +/** + * Update List of Recent Directories + */ +void +CMakeSetupGUIImplementation +::UpdateListOfRecentDirectories( void ) +{ + + // Update Recent binary directories + // insert is only done if the directory doesn't exist + m_RecentBinaryDirectories.insert( m_WhereBuild ); + + // Update Recent source directories + // insert is only done if the directory doesn't exist + m_RecentSourceDirectories.insert( m_WhereSource ); + +} + + + + + +/** + * Clicked on Configure Button + */ +void +CMakeSetupGUIImplementation +::ClickOnConfigure( void ) +{ + this->RunCMake(false); +} + + + + +/** + * Clicked on OK Button + */ +void +CMakeSetupGUIImplementation +::ClickOnOK( void ) +{ + m_CacheEntriesList.ClearDirty(); + this->RunCMake(true); + this->Close(); +} + + + + +/** + * Clicked on Cancel Button + */ +void +CMakeSetupGUIImplementation +::ClickOnCancel( void ) +{ + if(m_CacheEntriesList.IsDirty()) + { + int userWantsExitEvenThoughOptionsHaveChanged = + fl_ask("You have changed options but not rebuilt, \n" + "are you sure you want to exit?"); + if( userWantsExitEvenThoughOptionsHaveChanged ) + { + this->Close(); + } + } + else + { + this->Close(); + } + +} + + + + + diff --git a/CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.h b/CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.h new file mode 100644 index 0000000..def9ec2 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CMakeSetupGUIImplementation.h @@ -0,0 +1,85 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile: CMakeSetupGUIImplementation.h,v $ + Language: C++ + Date: $Date: 2005/09/23 21:47:32 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef CMakeSetupGUIImplementation_h +#define CMakeSetupGUIImplementation_h + +#include "CMakeSetupGUI.h" +#include "FLTKPropertyList.h" +#include + + +/** + * + * This class implements the virtual methods + * declared in the GUI interface + * + */ + +class cmake; + +class CMakeSetupGUIImplementation : public CMakeSetupGUI +{ + +public: + + CMakeSetupGUIImplementation(); + virtual ~CMakeSetupGUIImplementation(); + virtual void Close( void ); + virtual void Show( void ); + virtual void UpdateData( bool option ); + virtual void BrowseForBinaryPath( void ); + virtual void BrowseForSourcePath( void ); + virtual void SetBinaryPath( const char * path ); + virtual void SetSourcePath( const char * path ); + virtual void SaveCacheFromGUI( void ); + virtual void LoadCacheFromDiskToGUI( void ); + virtual void FillCacheGUIFromCacheManager( void ); + virtual void FillCacheManagerFromCacheGUI( void ); + virtual void SetPathToExecutable( const char * path ); + virtual void LoadRecentDirectories(void); + virtual void SaveRecentDirectories(void); + virtual void ShowRecentBinaryDirectories(void); + virtual void ShowRecentSourceDirectories(void); + virtual void SelectOneRecentSourceDirectory(void); + virtual void SelectOneRecentBinaryDirectory(void); + virtual void UpdateListOfRecentDirectories(void); + virtual void ClickOnConfigure(void); + virtual void ClickOnOK(void); + virtual void ClickOnCancel(void); + virtual void RunCMake( bool generateProjectFiles ); + cmake *GetCMakeInstance() {return m_CMakeInstance; } +private: + virtual bool VerifyBinaryPath( const std::string & path ) const; + virtual bool VerifySourcePath( const std::string & path ) const; + virtual std::string ExpandPathAndMakeItAbsolute( const std::string & inputPath ) const; + +private: + fltk::PropertyList m_CacheEntriesList; + std::string m_WhereBuild; + std::string m_WhereSource; + std::string m_PathToExecutable; + std::string m_GeneratorChoiceString; + bool m_BuildPathChanged; + + std::set< std::string > m_RecentBinaryDirectories; + std::set< std::string > m_RecentSourceDirectories; + cmake *m_CMakeInstance; +}; + + +#endif diff --git a/CMakeLua/Source/FLTKDialog/CVS/Entries b/CMakeLua/Source/FLTKDialog/CVS/Entries new file mode 100644 index 0000000..f268e09 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CVS/Entries @@ -0,0 +1,11 @@ +/CMakeLists.txt/1.11/Tue Aug 21 20:21:09 2007//T1.11 +/CMakeSetupGUI.fl/1.10/Fri Sep 23 21:47:32 2005//T1.10 +/CMakeSetupGUIImplementation.cxx/1.30/Tue Aug 21 20:21:09 2007//T1.30 +/CMakeSetupGUIImplementation.h/1.14/Fri Sep 23 21:47:32 2005//T1.14 +/FLTKDialog.dsp/1.4/Fri Sep 23 21:47:32 2005/-kb/T1.4 +/FLTKPropertyItemRow.cxx/1.20/Tue Aug 21 20:21:09 2007//T1.20 +/FLTKPropertyItemRow.h/1.12/Fri Sep 23 21:47:32 2005//T1.12 +/FLTKPropertyList.cxx/1.10/Tue Aug 21 20:21:09 2007//T1.10 +/FLTKPropertyList.h/1.8/Fri Sep 23 21:47:32 2005//T1.8 +/FLTKDialog.cxx/1.8/Sun Dec 16 12:37:43 2007//T1.8 +D diff --git a/CMakeLua/Source/FLTKDialog/CVS/Repository b/CMakeLua/Source/FLTKDialog/CVS/Repository new file mode 100644 index 0000000..0d22787 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/FLTKDialog diff --git a/CMakeLua/Source/FLTKDialog/CVS/Root b/CMakeLua/Source/FLTKDialog/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/FLTKDialog/CVS/Tag b/CMakeLua/Source/FLTKDialog/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/FLTKDialog/CVS/Template b/CMakeLua/Source/FLTKDialog/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/FLTKDialog/FLTKDialog.cxx b/CMakeLua/Source/FLTKDialog/FLTKDialog.cxx new file mode 100644 index 0000000..3c4f278 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/FLTKDialog.cxx @@ -0,0 +1,44 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile: FLTKDialog.cxx,v $ + Language: C++ + Date: $Date: 2007/12/13 22:56:50 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "CMakeSetupGUIImplementation.h" +#include "FL/Fl.H" +#include "FL/fl_ask.H" + +#include "cmSystemTools.h" + +int main(int argc, char * argv[] ) +{ + cmSystemTools::FindExecutableDirectory(argv[0]); + + fl_message_font(FL_HELVETICA,11); + + CMakeSetupGUIImplementation * gui + = new CMakeSetupGUIImplementation; + + gui->SetPathToExecutable( argv[0] ); + gui->Show(); + gui->LoadRecentDirectories(); + gui->LoadCacheFromDiskToGUI(); + + Fl::run(); + + delete gui; + + return 0; + +} diff --git a/CMakeLua/Source/FLTKDialog/FLTKDialog.dsp b/CMakeLua/Source/FLTKDialog/FLTKDialog.dsp new file mode 100644 index 0000000..d912409 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/FLTKDialog.dsp @@ -0,0 +1,116 @@ +# Microsoft Developer Studio Project File - Name="FLTKDialog" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=FLTKDialog - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "FLTKDialog.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "FLTKDialog.mak" CFG="FLTKDialog - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "FLTKDialog - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "FLTKDialog - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "FLTKDialog - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "H:/usr/local/fltk" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 fltk.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "FLTKDialog - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "FLTKDialog___Win32_Debug" +# PROP BASE Intermediate_Dir "FLTKDialog___Win32_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "FLTKDialog___Win32_Debug" +# PROP Intermediate_Dir "FLTKDialog___Win32_Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "H:/usr/local/fltk" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 fltk.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"H:/usr/local/fltk/lib/Debug" + +!ENDIF + +# Begin Target + +# Name "FLTKDialog - Win32 Release" +# Name "FLTKDialog - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\CMakeSetupGUI.cpp +# End Source File +# Begin Source File + +SOURCE=.\CMakeSetupGUIImplementation.cpp +# End Source File +# Begin Source File + +SOURCE=.\FLTKDialog.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\CMakeSetupGUI.h +# End Source File +# Begin Source File + +SOURCE=.\CMakeSetupGUIImplementation.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.cxx b/CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.cxx new file mode 100644 index 0000000..7b851b7 --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.cxx @@ -0,0 +1,387 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile: FLTKPropertyItemRow.cxx,v $ + Language: C++ + Date: $Date: 2007/08/21 20:21:09 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "FLTKPropertyItemRow.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../cmCacheManager.h" +#include "FLTKPropertyList.h" +#include "CMakeSetupGUIImplementation.h" +#include +#include "../cmake.h" +#include "../cmCacheManager.h" + +namespace fltk { + + + +CMakeSetupGUIImplementation * PropertyItemRow::m_CMakeSetup = 0; + + + + +PropertyItemRow +::PropertyItemRow( PropertyItem * pItem ):Fl_Tile(0,0,10,10,"") +{ + + m_PropertyItem = pItem; + m_ItemValue = new ItemValue; + + const unsigned int fontsize = 11; + const unsigned int nameWidth = 200; + const unsigned int textWidth = 1400; + const unsigned int checkWidth = textWidth; + const unsigned int browseWidth = 20; + const unsigned int firstColumn = 0; + + const unsigned int secondColumn = nameWidth; + + const unsigned int rowHeight = 20; + + size( nameWidth + textWidth , rowHeight ); + + // Make the parent Fl_Pack widget at least a row wide. + parent()->size( nameWidth + textWidth , rowHeight ); + + m_NameButton = new + Fl_Button( firstColumn, 0, nameWidth, rowHeight, + m_PropertyItem->m_propName.c_str() ); + + m_NameButton->align( FL_ALIGN_CLIP | FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); + m_NameButton->labelsize( fontsize ); + m_NameButton->box( FL_DOWN_BOX ); + m_NameButton->size( secondColumn, rowHeight ); + m_NameButton->callback( NameButtonCallback, (void *)m_PropertyItem ); + if( m_PropertyItem->m_NewValue ) + { + m_NameButton->color(FL_RED); + } + + switch( m_PropertyItem->m_nItemType ) + { + case PropertyList::COMBO: + { + break; + } + case PropertyList::EDIT: + { + + Fl_Input * input = new + Fl_Input( secondColumn, 0, textWidth ,rowHeight ,""); + input->value( m_PropertyItem->m_curValue.c_str() ); + input->textsize( fontsize ); + input->callback( InputTextCallback, (void *)m_PropertyItem ); + input->when( FL_WHEN_CHANGED ); + + break; + } + case PropertyList::COLOR: + { + Fl_Button * colorButton = new + Fl_Button( secondColumn, 0, textWidth ,rowHeight ,""); + colorButton->labelsize( fontsize ); + //colorButton->color(); + colorButton->callback( ColorSelectionCallback, (void *)m_PropertyItem ); + + break; + } + case PropertyList::FILE: + { + + Fl_Button * browseButton = new + Fl_Button( secondColumn, 0, browseWidth ,rowHeight ,"..."); + browseButton->labelsize( fontsize ); + + Fl_Input * input = new + Fl_Input( secondColumn+browseWidth, 0, textWidth ,rowHeight ,""); + input->value( m_PropertyItem->m_curValue.c_str() ); + input->textsize( fontsize ); + + m_ItemValue->m_InputText = input; + m_ItemValue->m_PropertyItem = m_PropertyItem; + + browseButton->callback( BrowsePathCallback, (void *)m_ItemValue ); + input->callback( InputTextCallback, m_PropertyItem ); + input->when( FL_WHEN_CHANGED ); + + break; + } + case PropertyList::CHECKBOX: + { + Fl_Button * button = new + Fl_Button( secondColumn, 0, checkWidth ,rowHeight ,""); + button->align( FL_ALIGN_INSIDE | FL_ALIGN_LEFT ); + button->callback( CheckButtonCallback, (void *)m_PropertyItem ); + + if( m_PropertyItem->m_curValue == "ON" ) + { + button->label(" ON "); + button->value(1); + } + else if( m_PropertyItem->m_curValue == "OFF" ) + { + button->label(" OFF "); + button->value(0); + } + button->type( FL_TOGGLE_BUTTON ); + button->labelsize( fontsize ); + break; + } + case PropertyList::PATH: + { + + Fl_Button * browseButton = new + Fl_Button( secondColumn, 0, browseWidth ,rowHeight ,"..."); + browseButton->labelsize( fontsize ); + + Fl_Input * input = new + Fl_Input( secondColumn+browseWidth, 0, textWidth ,rowHeight ,""); + input->value( m_PropertyItem->m_curValue.c_str() ); + input->textsize( fontsize ); + + m_ItemValue->m_InputText = input; + m_ItemValue->m_PropertyItem = m_PropertyItem; + + browseButton->callback( BrowsePathCallback, (void *)m_ItemValue ); + input->callback( InputTextCallback, (void *)m_PropertyItem ); + input->when( FL_WHEN_CHANGED ); + + break; + } + break; + default: + fl_alert("Unkown item type %d",m_PropertyItem->m_nItemType); + break; + } + + + end(); // Close the inclusion of widgets in the Tile object + +} + + + + + +PropertyItemRow::~PropertyItemRow( ) +{ + delete m_ItemValue; +} + + + +void PropertyItemRow +::SetCMakeSetupGUI( CMakeSetupGUIImplementation * cmakeSetup ) +{ + m_CMakeSetup = cmakeSetup; +} + + + +void +PropertyItemRow:: +NameButtonCallback( Fl_Widget * widget, void * data) +{ + Fl_Button * button = (Fl_Button *)widget; + PropertyItem * pItem = (PropertyItem *)data; + + static Fl_Menu_Button * popupMenu = 0; + if( !popupMenu ) + { + int lastMousePositionX = Fl::event_x(); + int lastMousePositionY = Fl::event_y(); + popupMenu = new Fl_Menu_Button(lastMousePositionX, + lastMousePositionY,100,200); + } + + popupMenu->type( Fl_Menu_Button::POPUP3 ); + popupMenu->add("Help|Remove|Properties..."); + popupMenu->popup(); + + typedef enum { + HELP=0, + REMOVE, + PROPERTIES + } MenuOptions; + + + switch( popupMenu->value() ) + { + case HELP: + fl_message( pItem->m_HelpString.c_str() ); + break; + case REMOVE: // Remove + { + const char * propertyName = pItem->m_propName.c_str(); + int answer = fl_ask( "Do you want to remove property %s", propertyName ); + if( answer == 1 ) + { + // Remove the entry from the cache + m_CMakeSetup->GetCMakeInstance()->GetCacheManager()->RemoveCacheEntry(propertyName); + // Get the parent: Fl_Tile that manages the whole row in the GUI + Fl_Group * parentGroup = dynamic_cast(button->parent()); + // Get the grandParent: Fl_Pack with the property list + Fl_Group * grandParentGroup = dynamic_cast( parentGroup->parent() ); + // Remove the row from the list + grandParentGroup->remove( *parentGroup ); + // Destroy the row + delete parentGroup; // Patricide... ? + // Redraw the list + grandParentGroup->redraw(); + FillCacheManagerFromCacheGUI(); + return; + } + break; + } + case PROPERTIES: // Properties + break; + } +} + + + +void +PropertyItemRow:: +FillCacheManagerFromCacheGUI( void ) +{ + if( m_CMakeSetup ) + { + m_CMakeSetup->FillCacheManagerFromCacheGUI(); + } +} + + + +void +PropertyItemRow:: +CheckButtonCallback( Fl_Widget * widget, void * data) +{ + Fl_Button * button = (Fl_Button *)widget; + PropertyItem * pItem = (PropertyItem *)data; + + int value = button->value(); + + if( value ) + { + button->label(" ON "); + pItem->m_curValue = "ON"; + } + else + { + button->label(" OFF "); + pItem->m_curValue = "OFF"; + } + + pItem->m_Dirty = true; + + button->redraw(); + + FillCacheManagerFromCacheGUI(); + +} + + + +void +PropertyItemRow:: +InputTextCallback( Fl_Widget * widget, void * data) +{ + Fl_Input * input = (Fl_Input *)widget; + PropertyItem * item = (PropertyItem *)data; + + item->m_curValue = input->value(); + + item->m_Dirty = true; + + FillCacheManagerFromCacheGUI(); + +} + + + +void +PropertyItemRow:: +ColorSelectionCallback( Fl_Widget * widget, void * data) +{ + Fl_Button * colorButton = (Fl_Button *)widget; + PropertyItem * propertyItem = (PropertyItem *)data; + + static Fl_Color colorIndex = FL_FREE_COLOR; + + unsigned char red = 0; + unsigned char blue = 0; + unsigned char green = 0; + fl_color_chooser("Please pick a color",red,green,blue); + char buffer[300]; + sprintf( buffer,"RGB(%d,%d,%d)", red, green, blue ); + propertyItem->m_curValue = buffer; + Fl::set_color( colorIndex, red, green, blue ); + colorButton->color( colorIndex ); + colorIndex = (Fl_Color)( colorIndex + 1 ); + if( colorIndex == FL_FREE_COLOR + FL_NUM_FREE_COLOR ) + { + fl_alert("Maximum number of free colors used, recycling..."); + colorIndex = FL_FREE_COLOR; + } + + propertyItem->m_Dirty = true; + + colorButton->redraw(); + + FillCacheManagerFromCacheGUI(); + +} + + + + + + +void +PropertyItemRow:: +BrowsePathCallback( Fl_Widget * widget, void * data) +{ + ItemValue * itemValue = (ItemValue *)data; + Fl_Input * inputText = itemValue->m_InputText; + PropertyItem * propertyItem = itemValue->m_PropertyItem; + + const char * newpath = + fl_file_chooser("Select a path","*", inputText->value() ); + + if( newpath ) + { + propertyItem->m_curValue = newpath; + inputText->value( newpath ); + } + + propertyItem->m_Dirty = true; + + FillCacheManagerFromCacheGUI(); + +} + + + + +} // end namespace fltk diff --git a/CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.h b/CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.h new file mode 100644 index 0000000..41a29df --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/FLTKPropertyItemRow.h @@ -0,0 +1,83 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile: FLTKPropertyItemRow.h,v $ + Language: C++ + Date: $Date: 2005/09/23 21:47:32 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef FLTKPropertyItemRow_h +#define FLTKPropertyItemRow_h + +#include "FLTKPropertyList.h" + +#include +#include +#include + + +class CMakeSetupGUIImplementation; + + +namespace fltk { + + +/** + + Class to manage a GUI row corresponding to a property + + */ +class PropertyItemRow : public Fl_Tile +{ + + // Helper class for passing data to callbacks + struct ItemValue + { + PropertyItem * m_PropertyItem; + Fl_Input * m_InputText; + }; + + + public: + + PropertyItemRow( PropertyItem *); + ~PropertyItemRow(); + + private: + + PropertyItem * m_PropertyItem; + ItemValue * m_ItemValue; + Fl_Button * m_NameButton; + + static CMakeSetupGUIImplementation * m_CMakeSetup; + + static void CheckButtonCallback( Fl_Widget *, void *); + static void NameButtonCallback( Fl_Widget *, void *); + static void InputTextCallback( Fl_Widget *, void *); + static void BrowsePathCallback( Fl_Widget *, void *); + static void ColorSelectionCallback( Fl_Widget * widget, void * data); + + + static void FillCacheManagerFromCacheGUI( void ); + + public: + + static void SetCMakeSetupGUI( CMakeSetupGUIImplementation * ); +}; + + +} // end namespace fltk + + +#endif + + diff --git a/CMakeLua/Source/FLTKDialog/FLTKPropertyList.cxx b/CMakeLua/Source/FLTKDialog/FLTKPropertyList.cxx new file mode 100644 index 0000000..332807e --- /dev/null +++ b/CMakeLua/Source/FLTKDialog/FLTKPropertyList.cxx @@ -0,0 +1,184 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile: FLTKPropertyList.cxx,v $ + Language: C++ + Date: $Date: 2007/08/21 20:21:09 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// FLTKPropertyList.cxx : implementation file +// + +#include "FLTKPropertyList.h" +#include "../cmCacheManager.h" +#include "FLTKPropertyItemRow.h" +#include "FL/filename.H" +#include "FL/Fl_File_Chooser.H" +#include "FL/Fl_Color_Chooser.H" +#include "FL/fl_ask.H" +#include "FL/Fl_Button.H" +#include "CMakeSetupGUIImplementation.h" + + +namespace fltk { + +///////////////////////////////////////////////////////////////////////////// +// PropertyList + +PropertyList::PropertyList( CMakeSetupGUIImplementation * cmakeSetup ) +{ + m_CMakeSetup = cmakeSetup; + PropertyItemRow::SetCMakeSetupGUI( cmakeSetup ); + m_Dirty = false; +} + + + +PropertyList::~PropertyList() +{ + for(std::set::iterator i = m_PropertyItems.begin(); + i != m_PropertyItems.end(); ++i) + { + delete *i; + } +} + + + + +int PropertyList::AddItem( std::string txt) +{ + int nIndex =0; + return nIndex; +} + + + +int PropertyList::AddPropItem(PropertyItem* pItem, bool reverseOrder) +{ + + int nIndex =0; + if(reverseOrder) + { + nIndex = 0; + } + else + { + nIndex = m_PropertyItems.size(); + } + + new PropertyItemRow( pItem ); // GUI of the new property row + + m_PropertyItems.insert(pItem); + + return nIndex; +} + + + +int PropertyList::AddProperty(const char* name, + const char* value, + const char* helpString, + int type, + const char* comboItems, + bool reverseOrder) +{ + + PropertyItem* pItem = 0; + for(int i =0; i < this->GetCount(); ++i) + { + PropertyItem* item = this->GetItem(i); + if(item->m_propName == name) + { + pItem = item; + if(pItem->m_curValue != value) + { + pItem->m_curValue = value; + pItem->m_HelpString = helpString; + Invalidate(); + } + return i; + } + } + // if it is not found, then create a new one + if(!pItem) + { + pItem = new PropertyItem(name, value, helpString, type, comboItems); + } + return this->AddPropItem(pItem,reverseOrder); +} + + +void PropertyList::RemoveProperty(const char* name) +{ + for(int i =0; i < this->GetCount(); ++i) + { + PropertyItem* pItem = (PropertyItem*) GetItemDataPtr(i); + if(pItem->m_propName == name) + { + m_PropertyItems.erase(pItem); + delete pItem; + return; + } + } +} + + + +void PropertyList::RemoveAll() +{ + int c = this->GetCount(); + for(int i =0; i < c; ++i) + { + PropertyItem* pItem = (PropertyItem*) GetItemDataPtr(0); +// cmCacheManager::GetInstance()->RemoveCacheEntry(pItem->m_propName.c_str()); + m_PropertyItems.erase(pItem); + delete pItem; + } + Invalidate(); +} + + + +PropertyItem * PropertyList::GetItemDataPtr(int index) +{ + std::set::iterator it = m_PropertyItems.begin(); + for(int i=0; it != m_PropertyItems.end() && i::iterator it = m_PropertyItems.begin(); + for(int i=0; it != m_PropertyItems.end() && i + + +class CMakeSetupGUIImplementation; + + +namespace fltk { + + +///////////////////////////////////////////////////////////////////////////// +//PropertyList Items +class PropertyItem +{ +// Attributes +public: + std::string m_HelpString; + std::string m_propName; + std::string m_curValue; + int m_nItemType; + std::string m_cmbItems; + bool m_Removed; + bool m_NewValue; + bool m_Dirty; +public: + PropertyItem( std::string propName, + std::string curValue, + std::string helpString, + int nItemType, + std::string cmbItems ) + { + m_HelpString = helpString; + m_propName = propName; + m_curValue = curValue; + m_nItemType = nItemType; + m_cmbItems = cmbItems; + m_Removed = false; + m_NewValue = true; + m_Dirty = false; + } +}; + + + + + +///////////////////////////////////////////////////////////////////////////// +// PropertyList window + +class PropertyList +{ +// Construction +public: + enum ItemType + { + COMBO = 0, + EDIT, + COLOR, + FONT, + FILE, + CHECKBOX, + PATH + }; + + PropertyList( CMakeSetupGUIImplementation * ); + +// Attributes +public: + +// Operations +public: + int AddItem( std::string txt ); + int AddProperty(const char* name, + const char* value, + const char* helpString, + int type, + const char* comboItems, + bool reverseOrder); + void RemoveProperty(const char* name); + std::set & GetItems() + { + return m_PropertyItems; + } + + void InvalidateList(void); + void Invalidate(void) + { + // fltk redraw(); + } + + int GetCount(void) const + { + return m_PropertyItems.size(); + } + void OnButton(void); + void OnHelp(void); + void RemoveAll(); + PropertyItem* GetItem(int index); + PropertyItem* GetItemDataPtr(int m_curSel); + + void ClearDirty(void) { m_Dirty = false; } + void SetDirty(void) { m_Dirty = true; } + bool IsDirty(void) const { return m_Dirty; } + +// Implementation +public: + virtual ~PropertyList(); + +protected: + + int AddPropItem(PropertyItem* pItem,bool reverseOrder); + + std::set m_PropertyItems; + + CMakeSetupGUIImplementation * m_CMakeSetup; + + bool m_Dirty; + +}; + + +} // end namespace fltk + +#endif diff --git a/CMakeLua/Source/MFCDialog/.cvsignore b/CMakeLua/Source/MFCDialog/.cvsignore new file mode 100644 index 0000000..329d484 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/.cvsignore @@ -0,0 +1 @@ +Debug diff --git a/CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.cpp b/CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.cpp new file mode 100644 index 0000000..15c5c81 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.cpp @@ -0,0 +1,142 @@ +// CMakeCommandLineInfo.cpp : command line arguments +// + +#include "stdafx.h" +#include "CMakeCommandLineInfo.h" +#include "cmSystemTools.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +/////////////////////////////////////////////////////////////// +// CMakeCommandLineInfo + +CMakeCommandLineInfo::CMakeCommandLineInfo() +{ + this->m_WhereSource = _T(""); + this->m_WhereBuild = _T(""); + this->m_AdvancedValues = FALSE; + this->m_GeneratorChoiceString = _T(""); + this->m_LastUnknownParameter = _T(""); + + // Find the path to the CMakeSetup executable. + char fname[4096]; + ::GetModuleFileName(0, fname, 4096); + m_Argv0 = fname; + m_Argv.push_back(m_Argv0.c_str()); +} + +CMakeCommandLineInfo::~CMakeCommandLineInfo() +{ +} + +int CMakeCommandLineInfo::GetBoolValue(const CString& v) { + CString value = v; + value.MakeLower(); + if (value == "1" || + value == "on" || + value == "true" || + value == "yes") + { + return 1; + } + else if (value == "0" || + value == "off" || + value == "false" || + value == "no") + { + return -1; + } + return 0; +} + +/////////////////////////////////////////////////////////////// +// Parse param + +void CMakeCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) +{ + // Construct the full name of the argument. + cmStdString param = lpszParam; + cmStdString value; + if(bFlag) + { + // Since bFlag is set, either a - or a / was removed from the + // parameter value. Assume it was a - unless the second character + // was a / which indicates a network path argument. + if(param.length() > 0 && param[0] == '/') + { + value = "/"; + } + else + { + value = "-"; + } + } + value += param; + + // Add the argument and reset the argv table in case strings were + // moved. + m_Arguments.push_back(value); + m_Argv.clear(); + m_Argv.push_back(m_Argv0.c_str()); + for(unsigned int i=0; i < m_Arguments.size(); ++i) + { + m_Argv.push_back(m_Arguments[i].c_str()); + } + + // Look for known flags. + if(!bFlag) + { + this->m_LastUnknownParameter = lpszParam; + } + else + { + CString sParam(lpszParam); + // Single letter valued flag like /B=value or /B:value + CString value; + if (sParam[1] == '=' || sParam[1] == ':') + { + value = sParam.Right(sParam.GetLength() - 2); + } + else + { + value = sParam.Right(sParam.GetLength()-1); + } + int res; + switch (sParam[0]) + { + case 'A': + res = CMakeCommandLineInfo::GetBoolValue(value); + if (res == 1) + { + this->m_AdvancedValues = TRUE; + } + else if (res == -1) + { + this->m_AdvancedValues = FALSE; + } + break; + case 'B': + { + std::string path = cmSystemTools::CollapseFullPath((const char*)value); + this->m_WhereBuild = path.c_str(); + break; + } + case 'G': + this->m_GeneratorChoiceString = value; + break; + case 'H': + { + std::string path = cmSystemTools::CollapseFullPath((const char*)value); + this->m_WhereSource = path.c_str(); + break; + } + } + } + + // Call the base class to ensure proper command line processing + CCommandLineInfo::ParseParam(lpszParam, bFlag, bLast); +} diff --git a/CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.h b/CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.h new file mode 100644 index 0000000..717d9fd --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeCommandLineInfo.h @@ -0,0 +1,70 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: CMakeCommandLineInfo.h,v $ + Language: C++ + Date: $Date: 2003/07/23 21:31:25 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// CMakeCommandLineInfo.h : main header file for the command line arguments +// + +#if !defined(CMAKECOMMANDLINEINFO_H) +#define CMAKECOMMANDLINEINFO_H + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ +#error include 'stdafx.h' before including this file for PCH +#endif + +#include "../cmStandardIncludes.h" + +/////////////////////////////////////////////////////////////// +// CMakeCommandLineInfo: +// See CMakeCommandLineInfo.cpp for the implementation of this class +// + +class CMakeCommandLineInfo : public CCommandLineInfo +{ + // Construction +public: + CMakeCommandLineInfo(); + + // Attributes +public: + CString m_WhereSource; + CString m_WhereBuild; + BOOL m_AdvancedValues; + CString m_GeneratorChoiceString; + CString m_LastUnknownParameter; + + int GetArgC() { return static_cast(m_Argv.size()); } + const char*const* GetArgV() { return &*m_Argv.begin(); } + + std::string m_Argv0; + std::vector m_Arguments; + std::vector m_Argv; + + // Operations +public: + void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast); + + // Implementation +public: + virtual ~CMakeCommandLineInfo(); +protected: + static int GetBoolValue(const CString&); +}; + +#endif // !defined(CMAKECOMMANDLINEINFO_H) diff --git a/CMakeLua/Source/MFCDialog/CMakeGenDialog.cpp b/CMakeLua/Source/MFCDialog/CMakeGenDialog.cpp new file mode 100755 index 0000000..e1769b6 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeGenDialog.cpp @@ -0,0 +1,122 @@ +// CMakeGenDialog.cpp : implementation file +// + +#include "stdafx.h" +#include "CMakeSetup.h" +#include "CMakeGenDialog.h" +#include "../cmake.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CCMakeGenDialog dialog + + +CCMakeGenDialog::CCMakeGenDialog(CWnd* pParent /*=NULL*/) + : CDialog(CCMakeGenDialog::IDD, pParent) +{ + //{{AFX_DATA_INIT(CCMakeGenDialog) + //}}AFX_DATA_INIT +} + + +void CCMakeGenDialog::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CCMakeGenDialog) + DDX_Control(pDX, IDC_BuildForLabel, m_BuildForLabel); + DDX_Control(pDX, IDC_Generator, m_GeneratorChoice); + DDX_CBStringExact(pDX, IDC_Generator, m_GeneratorChoiceString); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CCMakeGenDialog, CDialog) + //{{AFX_MSG_MAP(CCMakeGenDialog) + // NOTE: the ClassWizard will add message map macros here + ON_CBN_EDITCHANGE(IDC_Generator, OnEditchangeGenerator) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CCMakeGenDialog message handler + + void CCMakeGenDialog::OnEditchangeGenerator() +{ + // TODO: Add your control notification handler code here + +} + + +BOOL CCMakeGenDialog::OnInitDialog() +{ + CDialog::OnInitDialog(); + std::vector names; + this->m_CMakeInstance->GetRegisteredGenerators(names); + for(std::vector::iterator i = names.begin(); + i != names.end(); ++i) + { + m_GeneratorChoice.AddString(i->c_str()); + } + + // we want to pick the best generator for their system first we check to + // see if they have run cmake before, if so we use that generator + std::string mp; + bool done = false; + + // is the last generator set? If so use it + mp = "[HKEY_CURRENT_USER\\Software\\Kitware" + "\\CMakeSetup\\Settings\\StartPath;LastGenerator]"; + cmSystemTools::ExpandRegistryValues(mp); + if(mp != "/registry") + { + m_GeneratorChoiceString = mp.c_str(); + done = true; + } + struct regToGen + { + const char* Registry; + const char* GeneratorName; + }; + regToGen installedGenerators[] = { + // VS 9 + { "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft" + "\\VisualStudio\\9.0\\Setup;Dbghelp_path]", "Visual Studio 9 2008"}, + // VS 8 + { "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft" + "\\VisualStudio\\8.0\\Setup;Dbghelp_path]", "Visual Studio 8 2005"}, + // VS 7.1 + {"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft" + "\\VisualStudio\\7.1;InstallDir]", "Visual Studio 7 .NET 2003"}, + // VS 7 + {"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft" + "\\VisualStudio\\7.0;InstallDir]", "Visual Studio 7"}, + {0,0} + }; + for(regToGen* ptr = installedGenerators; ptr->Registry != 0 && !done; ptr++) + { + mp = ptr->Registry; + cmSystemTools::ExpandRegistryValues(mp); + if(mp != "/registry") + { + m_GeneratorChoiceString = ptr->GeneratorName; + done = true; + } + } + + // if still not done just guess on VS 6 + if (!done) + { + m_GeneratorChoiceString = "Visual Studio 6"; + } + + this->UpdateData(FALSE); + + return TRUE; // return TRUE unless you set the focus to a control +} + + diff --git a/CMakeLua/Source/MFCDialog/CMakeGenDialog.h b/CMakeLua/Source/MFCDialog/CMakeGenDialog.h new file mode 100755 index 0000000..1e5b890 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeGenDialog.h @@ -0,0 +1,70 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: CMakeGenDialog.h,v $ + Language: C++ + Date: $Date: 2005/03/28 18:23:07 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#if !defined(CMAKE_GEN_DIALOG_INCLUDED) +#define CMAKE_GEN_DIALOG_INCLUDED + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// CMakeGenDialog.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CCMakeGenDialog dialog + +class cmake; + +class CCMakeGenDialog : public CDialog +{ +// Construction +public: + CCMakeGenDialog(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CCMakeGenDialog) + enum { IDD = IDD_GEN_DIALOG }; + CStatic m_BuildForLabel; + CComboBox m_GeneratorChoice; + CString m_GeneratorChoiceString; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CCMakeGenDialog) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CCMakeGenDialog) + virtual BOOL OnInitDialog(); + afx_msg void OnEditchangeGenerator(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + public: + cmake *m_CMakeInstance; +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif diff --git a/CMakeLua/Source/MFCDialog/CMakeLists.txt b/CMakeLua/Source/MFCDialog/CMakeLists.txt new file mode 100644 index 0000000..3b1f3b9 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeLists.txt @@ -0,0 +1,109 @@ +SET( SRCS + CMakeSetup.h + CMakeSetup.cpp + MakeHelp.h + MakeHelp.cpp + CMakeGenDialog.h + CMakeGenDialog.cpp + CMakeSetup.rc + CMakeSetupDialog.h + CMakeSetupDialog.cpp + PathDialog.h + PathDialog.cpp + PropertyList.cpp + StdAfx.h + StdAfx.cpp + resource.h + CMakeCommandLineInfo.cpp +) + +# add stuff to use MFC in this executable +ADD_DEFINITIONS(-D_AFXDLL) + +# Use of CMAKE_MFC_FLAG +# Values: +# 0: Use Standard Windows Libraries +# 1: Use MFC in a Static Library +# 2: Use MFC in a Shared DLL +SET(CMAKE_MFC_FLAG 2) + +ADD_EXECUTABLE(CMakeSetup WIN32 ${SRCS}) +TARGET_LINK_LIBRARIES(CMakeSetup CMakeLib) +ADD_DEPENDENCIES(CMakeSetup cmake) + + +# some older versions of cmake do not have +# a patch version set so we need to set it +# so that a later if will not fail, this has +# to be done all the time for all generators +# since if statements are evaluated even if +# inside a false if, they must still parse so for +# if (CMAKE_PATCH_VERSION GREATER 4) not to +# fail CMAKE_PATCH_VERSION must be set +IF(${CMAKE_MAJOR_VERSION} LESS 3) + IF(NOT DEFINED CMAKE_PATCH_VERSION) + SET(CMAKE_PATCH_VERSION 0) + ENDIF(NOT DEFINED CMAKE_PATCH_VERSION) +ENDIF(${CMAKE_MAJOR_VERSION} LESS 3) + +# for MSVC greater than 71 assume mt is around +# for other versions allow for the cache to be +# seeded with a value for CMAKE_MT_EXECUTABLE +# this allows for MSVC71 to build CMakeSetup that +# will have the manifest stuff for windows vista +IF(MSVC AND NOT MSVC60 AND NOT MSVC70 AND NOT MSVC71) + SET(CMAKE_MT_EXECUTABLE mt) +ENDIF(MSVC AND NOT MSVC60 AND NOT MSVC70 AND NOT MSVC71) +IF(CMAKE_MT_EXECUTABLE) + SET(exe "${CMAKE_CFG_INTDIR}/CMakeSetup.exe") + IF(EXECUTABLE_OUTPUT_PATH) + SET(exe "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/CMakeSetup.exe") + ENDIF(EXECUTABLE_OUTPUT_PATH) + + # VERBATIM flag should be avoided if building with Visual Studio. + # (OK to add the flag if ${CMAKE_CFG_INTDIR} is "." which is one + # indicator that you are not building with Visual Studio.) + # + SET(verbatim_flag) + IF(NOT CMAKE_CONFIGURATION_TYPES) + # VERBATIM flag should also be avoided if using an older CMake. + # VERBATIM flag support was added in CMake 2.4.5 + # + IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} EQUAL 2.4) + IF(${CMAKE_PATCH_VERSION} GREATER 4) + SET(verbatim_flag "VERBATIM") + ENDIF(${CMAKE_PATCH_VERSION} GREATER 4) + ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} EQUAL 2.4) + + IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4) + SET(verbatim_flag "VERBATIM") + ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4) + + IF(NOT verbatim_flag) + MESSAGE("${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): warning + warning: The VERBATIM flag for ADD_CUSTOM_COMMAND may be required to execute mt correctly, + but you are using a CMake ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} which does not parse the VERBATIM flag. + Upgrade to CMake 2.4.5 or later to eliminate this warning.") + ENDIF(NOT verbatim_flag) + ENDIF(NOT CMAKE_CONFIGURATION_TYPES) + + SET(_CMAKE_INPUT_RESOURCE "-inputresource:${exe};#1") + # if msvc71 then you can not replace the resource + # but you can add one, so set the input resource to empty + IF(MSVC71) + SET(_CMAKE_INPUT_RESOURCE ) + ENDIF(MSVC71) + # Solve the "things named like *Setup prompt for admin privileges + # on Vista" problem by merging a manifest fragment that contains a + # requestedExecutionLevel element: + # + ADD_CUSTOM_COMMAND(TARGET CMakeSetup + POST_BUILD COMMAND mt + "${_CMAKE_INPUT_RESOURCE}" + -manifest "${CMAKE_CURRENT_SOURCE_DIR}/CMakeSetupManifest.xml" + "-outputresource:${exe};#1" + ${verbatim_flag} + ) +ENDIF(CMAKE_MT_EXECUTABLE) + +INSTALL_TARGETS(/bin CMakeSetup) diff --git a/CMakeLua/Source/MFCDialog/CMakeSetup.cpp b/CMakeLua/Source/MFCDialog/CMakeSetup.cpp new file mode 100644 index 0000000..8d318a6 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeSetup.cpp @@ -0,0 +1,158 @@ +// CMakeSetupdialog.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "CMakeSetup.h" +#include "CMakeSetupDialog.h" +#include "CMakeCommandLineInfo.h" +#include "../cmDocumentation.h" +#include "../cmake.h" +#include "../cmSystemTools.h" + + +//---------------------------------------------------------------------------- +static const char * cmDocumentationName[][3] = +{ + {0, + " CMakeSetup - CMake Windows GUI.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationUsage[][3] = +{ + {0, + " CMakeSetup [options]\n" + " CMakeSetup [options] \n" + " CMakeSetup [options] ", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationDescription[][3] = +{ + {0, + "The \"CMakeSetup\" executable is the CMake Windows GUI. Project " + "configuration settings may be specified interactively. " + "Brief instructions are provided at the bottom of the " + "window when the program is running.", 0}, + CMAKE_STANDARD_INTRODUCTION, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationOptions[][3] = +{ + {"-A[on|off]", "Enable/disable display of advanced cache values.", + "There are two categories of CMake cache values: non-advanced and " + "advanced. Most users will not need to change the advanced options. " + "The CMakeSetup GUI contains a checkbox to enable/disable display of " + "advanced options. This command line flag changes its default setting."}, + {0,0,0} +}; + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMakeSetup + +BEGIN_MESSAGE_MAP(CMakeSetup, CWinApp) + //{{AFX_MSG_MAP(CMakeSetup) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG + ON_COMMAND(ID_HELP, CWinApp::OnHelp) + END_MESSAGE_MAP(); + + +///////////////////////////////////////////////////////////////////////////// +// CMakeSetup construction +CMakeSetup::CMakeSetup() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CMakeSetup object + +CMakeSetup theApp; + +///////////////////////////////////////////////////////////////////////////// +// CMakeSetup initialization + +BOOL CMakeSetup::InitInstance() +{ + AfxEnableControlContainer(); + + // Standard initialization + // If you are not using these features and wish to reduce the size + // of your final executable, you should remove from the following + // the specific initialization routines you do not need. +#if _MFC_VER <= 0x421 +#ifdef _AFXDLL + Enable3dControls(); // Call this when using MFC in a shared DLL +#else + Enable3dControlsStatic(); // Call this when linking to MFC statically +#endif +#endif + CMakeCommandLineInfo cmdInfo; + ParseCommandLine(cmdInfo); + cmSystemTools::FindExecutableDirectory(cmdInfo.GetArgV()[0]); + + // Check for documentation options. If there are no arguments skip + // the check because the GUI should be displayed instead of showing + // usage in this case. + cmDocumentation doc; + if(cmdInfo.GetArgC() > 1 && + doc.CheckOptions(cmdInfo.GetArgC(), cmdInfo.GetArgV())) + { + // Construct and print requested documentation. + cmake hcm; + hcm.AddCMakePaths(); + doc.SetCMakeRoot(hcm.GetCacheDefinition("CMAKE_ROOT")); + std::vector commands; + std::vector compatCommands; + std::map propDocs; + + std::vector generators; + hcm.GetCommandDocumentation(commands, true, false); + hcm.GetCommandDocumentation(compatCommands, false, true); + hcm.GetGeneratorDocumentation(generators); + hcm.GetPropertiesDocumentation(propDocs); + doc.SetName("cmake"); + doc.SetSection("Name",cmDocumentationName); + doc.SetSection("Usage",cmDocumentationUsage); + doc.SetSection("Description",cmDocumentationDescription); + doc.AppendSection("Generators",generators); + doc.PrependSection("Options",cmDocumentationOptions); + doc.SetSection("Commands",commands); + doc.SetSection("Compatilbility Commands", compatCommands); + doc.SetSections(propDocs); + + return (doc.PrintRequestedDocumentation(std::cout)? 0:1); + } + + CMakeSetupDialog dlg(cmdInfo); + + m_pMainWnd = &dlg; + INT_PTR nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + else if (nResponse == IDCANCEL) + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} diff --git a/CMakeLua/Source/MFCDialog/CMakeSetup.h b/CMakeLua/Source/MFCDialog/CMakeSetup.h new file mode 100644 index 0000000..c518ea3 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeSetup.h @@ -0,0 +1,65 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: CMakeSetup.h,v $ + Language: C++ + Date: $Date: 2002/10/23 22:03:27 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// CMakeSetupdialog.h : main header file for the CMakeSetupDIALOG application +// + +#if !defined(AFX_CMakeSetupDIALOG_H__AC17A6F4_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_) +#define AFX_CMakeSetupDIALOG_H__AC17A6F4_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ +#error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CMakeSetup: +// See CMakeSetupdialog.cpp for the implementation of this class +// + +class CMakeSetup : public CWinApp +{ +public: + CMakeSetup(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMakeSetup) +public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + +// Implementation + + //{{AFX_MSG(CMakeSetup) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CMakeSetupDIALOG_H__AC17A6F4_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_) diff --git a/CMakeLua/Source/MFCDialog/CMakeSetup.rc b/CMakeLua/Source/MFCDialog/CMakeSetup.rc new file mode 100644 index 0000000..37f25aa --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeSetup.rc @@ -0,0 +1,256 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\CMakeSetupDialog.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON "res\\CMakeSetupDialog.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About CMakeSetup" +BEGIN + ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 + LTEXT "CMakeSetup\nwww.cmake.org",IDC_STATIC,40,18,119,16 + DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP +END + +IDD_CMakeSetupDialog_DIALOG DIALOGEX 0, 0, 447, 255 +STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +EXSTYLE WS_EX_APPWINDOW +CAPTION "CMakeSetupDialog" +BEGIN + RTEXT "Where is the source code:",IDC_STATIC,6,7,86,9 + COMBOBOX IDC_WhereSource,96,6,169,12,CBS_SIMPLE | CBS_AUTOHSCROLL | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Browse...",IDC_BROWSE_SOURCE,267,6,34,13 + RTEXT "Where to build the binaries:",IDC_STATIC,5,27,90,9 + COMBOBOX IDC_WhereBuild,96,26,169,68,CBS_DROPDOWN | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Browse...",IDC_BROWSE_BUILD,267,25,34,13 + CONTROL "Show Advanced Values",IDC_AdvancedValues,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,321,18,98,9 + DEFPUSHBUTTON "Configure",IDC_BuildProjects,84,221,51,15 + PUSHBUTTON "OK",IDC_OK,141,221,51,15 + PUSHBUTTON "Cancel",IDCANCEL,198,221,51,15 + PUSHBUTTON "Help",IDC_HELP_BUTTON,312,221,51,15 + LISTBOX IDC_LIST2,15,53,419,126,LBS_SORT | LBS_OWNERDRAWVARIABLE | + LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | + WS_HSCROLL + GROUPBOX "Cache Values",IDC_FRAME,10,44,432,140 + CTEXT "Right click on a cache value for additional options (delete, ignore, and help).\nPress Configure to update and display new values in red.\nPress OK to generate selected build files and exit.", + IDC_MouseHelpCaption,0,191,442,27 + LTEXT "Static",IDC_PROGRESS,2,240,442,12,SS_CENTERIMAGE | + SS_SUNKEN + PUSHBUTTON "Delete Cache",IDC_DELETE_BUTTON,255,221,51,15 +END + +IDD_CMAKE_HELP_DIALOG DIALOG 0, 0, 365, 183 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "CMake Help" +BEGIN + DEFPUSHBUTTON "OK",IDOK,155,159,50,14 + EDITTEXT IDC_EDIT1,7,7,351,152,ES_MULTILINE | ES_READONLY | NOT + WS_BORDER +END + +IDD_GEN_DIALOG DIALOGEX 0, 0, 263, 86 +STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | + WS_SYSMENU +CAPTION "Select Generator" +BEGIN + DEFPUSHBUTTON "OK",IDOK,70,65,50,14 + PUSHBUTTON "Cancel",IDCANCEL,143,65,50,14 + RTEXT "Build For:",IDC_BuildForLabel,7,45,34,11,SS_CENTERIMAGE + COMBOBOX IDC_Generator,52,45,204,117,CBS_DROPDOWN | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + CTEXT "Please select what build system you want CMake to generate files for.\nYou should select the tool that you will use to build the project.\nPress OK once you have made your selection.", + IDC_MouseHelpCaption,7,7,245,36 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 2,2,0,0 + PRODUCTVERSION 2,2,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "FileDescription", "CMakeSetup MFC Application" + VALUE "FileVersion", "2, 2, 0, 0" + VALUE "InternalName", "CMakeSetup" + VALUE "LegalCopyright", "Copyright (C) 2000" + VALUE "OriginalFilename", "CMakeSetup.EXE" + VALUE "ProductName", "CMakeSetup Application" + VALUE "ProductVersion", "2, 2, 0, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 228 + TOPMARGIN, 7 + BOTTOMMARGIN, 48 + END + + IDD_CMakeSetupDialog_DIALOG, DIALOG + BEGIN + RIGHTMARGIN, 442 + BOTTOMMARGIN, 252 + END + + IDD_CMAKE_HELP_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 358 + TOPMARGIN, 7 + BOTTOMMARGIN, 176 + END + + IDD_GEN_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 256 + TOPMARGIN, 7 + BOTTOMMARGIN, 79 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_ABOUTBOX "&About CMakeSetup..." + IDS_CREATESHORTCUT "&Create shortcut" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\CMakeSetupDialog.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/CMakeLua/Source/MFCDialog/CMakeSetupDialog.cpp b/CMakeLua/Source/MFCDialog/CMakeSetupDialog.cpp new file mode 100644 index 0000000..d9094c0 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeSetupDialog.cpp @@ -0,0 +1,1523 @@ +// pcbuilderdialogDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "shellapi.h" +// a fun undef for DOT NET +#undef DEBUG +#include "CMakeSetup.h" +#include "MakeHelp.h" +#include "cmVersion.h" +#include "PathDialog.h" +#include "CMakeSetupDialog.h" +#include "CMakeCommandLineInfo.h" +#include "../cmExternalMakefileProjectGenerator.h" +#include "../cmListFileCache.h" +#include "../cmCacheManager.h" +#include "../cmake.h" +#include "../cmGlobalGenerator.h" +#include "../cmDynamicLoader.h" +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + + +///////////////////////////////////////////////////////////////////////////// +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialog +{ +public: + CAboutDlg(); + + // Dialog Data + //{{AFX_DATA(CAboutDlg) + enum { IDD = IDD_ABOUTBOX }; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CAboutDlg) +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + //{{AFX_MSG(CAboutDlg) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + }; + +CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) +{ + //{{AFX_DATA_INIT(CAboutDlg) + //}}AFX_DATA_INIT +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CAboutDlg) + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + //{{AFX_MSG_MAP(CAboutDlg) + // No message handlers + //}}AFX_MSG_MAP + END_MESSAGE_MAP(); + + +void MFCMessageCallback(const char* m, const char* title, bool& nomore, void*) +{ + std::string message = m; + message += "\n\n(Press Cancel to suppress any further messages.)"; + if(::MessageBox(0, message.c_str(), title, + MB_OKCANCEL|MB_TASKMODAL) == IDCANCEL) + { + nomore = true; + } +} + +///////////////////////////////////////////////////////////////////////////// +// CMakeSetupDialog dialog +void updateProgress(const char *msg, float prog, void *cd) +{ + char* tmp = new char[strlen(msg) + 40]; + if (prog >= 0) + { + sprintf(tmp,"%s %i%%",msg,(int)(100*prog)); + } + else + { + sprintf(tmp,"%s",msg); + } + CMakeSetupDialog *self = (CMakeSetupDialog *)cd; + self->SetDlgItemText(IDC_PROGRESS, tmp); + CWnd* cancel = self->GetDlgItem(IDCANCEL); + // + // Retrieve and dispatch any waiting messages. + // + MSG wmsg; + while (::PeekMessage (&wmsg, NULL, 0, 0, PM_REMOVE)) + { + switch(wmsg.message) + { + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case WM_LBUTTONDBLCLK: + { + if(wmsg.hwnd == cancel->m_hWnd) + { + ::DispatchMessage(&wmsg); + } + } + break; + case WM_COMMAND: + case WM_SETCURSOR: + case WM_PAINT: + ::DispatchMessage(&wmsg); + break; + } + } + delete [] tmp; +} + +// Convert to Win32 path (slashes). This calls the system tools one and then +// removes the spaces. It is not in system tools because we don't want any +// generators accidentally use it +std::string ConvertToWindowsPath(const char* path) +{ + // Convert to output path. + // Remove the "" around it (if any) since it's an output path for + // the shell. If another shell-oriented feature is not designed + // for a GUI use, then we are in trouble. + // save the value of the force to unix path option + bool saveForce = cmSystemTools::GetForceUnixPaths(); + // make sure we get windows paths no matter what for the GUI + cmSystemTools::SetForceUnixPaths(false); + std::string s = cmSystemTools::ConvertToOutputPath(path); + // now restore the force unix path to its previous value + cmSystemTools::SetForceUnixPaths(saveForce); + if (s.size()) + { + std::string::iterator i = s.begin(); + if (*i == '\"') + { + s.erase(i, i + 1); + } + i = s.begin() + s.length() - 1; + if (*i == '\"') + { + s.erase(i, i + 1); + } + } + return s; +} + +CMakeSetupDialog::CMakeSetupDialog(const CMakeCommandLineInfo& cmdInfo, + CWnd* pParent /*=NULL*/) + : CDialog(CMakeSetupDialog::IDD, pParent) +{ + m_GeneratorPicked = false; + m_Cursor = LoadCursor(NULL, IDC_ARROW); + m_RunningConfigure = false; + cmSystemTools::SetRunCommandHideConsole(true); + cmSystemTools::SetErrorCallback(MFCMessageCallback); + m_RegistryKey = "Software\\Kitware\\CMakeSetup\\Settings\\StartPath"; + m_CacheEntriesList.m_CMakeSetupDialog = this; + + m_CMakeInstance = new cmake; + m_CMakeInstance->SetProgressCallback(updateProgress, (void *)this); + + //{{AFX_DATA_INIT(CMakeSetupDialog) + //}}AFX_DATA_INIT + + // Get the parameters from the command line info + // If an unknown parameter is found, try to interpret it too, since it + // is likely to be a file dropped on the shortcut :) + if (cmdInfo.m_LastUnknownParameter.IsEmpty()) + { + this->m_WhereSource = cmdInfo.m_WhereSource; + this->m_WhereBuild = cmdInfo.m_WhereBuild; + this->m_GeneratorDialog.m_GeneratorChoiceString = + cmdInfo.m_GeneratorChoiceString; + this->m_AdvancedValues = cmdInfo.m_AdvancedValues; + } + else + { + this->m_WhereSource = _T(""); + this->m_WhereBuild = _T(""); + this->m_AdvancedValues = FALSE; + this->m_GeneratorDialog.m_GeneratorChoiceString = + cmdInfo.m_GeneratorChoiceString; + this->ChangeDirectoriesFromFile((LPCTSTR)cmdInfo.m_LastUnknownParameter); + } + + // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + m_BuildPathChanged = false; + // Find the path to the cmake.exe executable + char fname[1024]; + ::GetModuleFileName(NULL,fname,1023); + // extract just the path part + m_PathToExecutable = cmSystemTools::GetProgramPath(fname).c_str(); + // add the cmake.exe to the path + m_PathToExecutable += "/cmake.exe"; + + m_oldCX = -1; + m_deltaXRemainder = 0; +} + +CMakeSetupDialog::~CMakeSetupDialog() +{ + delete m_CMakeInstance; + // clean up globals + cmDynamicLoader::FlushCache(); +} + +void CMakeSetupDialog::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CMakeSetupDialog) + DDX_Control(pDX, IDC_AdvancedValues, m_AdvancedValuesControl); + DDX_Control(pDX, IDC_BROWSE_SOURCE, m_BrowseSource); + DDX_Control(pDX, IDC_BROWSE_BUILD, m_BrowseBuild); + DDX_Control(pDX, IDC_DELETE_BUTTON, m_DeleteButton); + DDX_Control(pDX, IDC_HELP_BUTTON, m_HelpButton); + DDX_Control(pDX, IDC_OK, m_OKButton); + DDX_Control(pDX, IDCANCEL, m_CancelButton); + DDX_CBStringExact(pDX, IDC_WhereSource, m_WhereSource); + DDX_CBStringExact(pDX, IDC_WhereBuild, m_WhereBuild); + DDX_Control(pDX, IDC_FRAME, m_ListFrame); + DDX_Control(pDX, IDC_WhereSource, m_WhereSourceControl); + DDX_Control(pDX, IDC_WhereBuild, m_WhereBuildControl); + DDX_Control(pDX, IDC_LIST2, m_CacheEntriesList); + DDX_Control(pDX, IDC_MouseHelpCaption, m_MouseHelp); + DDX_Control(pDX, IDC_PROGRESS, m_StatusDisplay); + DDX_Control(pDX, IDC_BuildProjects, m_Configure); + DDX_Check(pDX, IDC_AdvancedValues, m_AdvancedValues); + //}}AFX_DATA_MAP +} + +BEGIN_MESSAGE_MAP(CMakeSetupDialog, CDialog) + //{{AFX_MSG_MAP(CMakeSetupDialog) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_BUTTON2, OnBrowseWhereSource) + ON_BN_CLICKED(IDC_BuildProjects, OnConfigure) + ON_BN_CLICKED(IDC_BUTTON3, OnBrowseWhereBuild) + ON_CBN_EDITCHANGE(IDC_WhereBuild, OnChangeWhereBuild) + ON_CBN_SELCHANGE(IDC_WhereBuild, OnSelendokWhereBuild) + ON_CBN_EDITCHANGE(IDC_WhereSource, OnChangeWhereSource) + ON_CBN_SELENDOK(IDC_WhereSource, OnSelendokWhereSource) + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_BN_CLICKED(IDC_OK, OnOk) + ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton) + ON_BN_CLICKED(IDC_HELP_BUTTON, OnHelpButton) + ON_BN_CLICKED(IDC_AdvancedValues, OnAdvancedValues) + ON_BN_DOUBLECLICKED(IDC_AdvancedValues, OnDoubleclickedAdvancedValues) + ON_WM_DROPFILES() + ON_BN_CLICKED(IDCANCEL, OnCancel) + ON_WM_SETCURSOR() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMakeSetupDialog message handlers + +BOOL CMakeSetupDialog::OnInitDialog() +{ + CDialog::OnInitDialog(); + this->DragAcceptFiles(true); + + // Add "Create shortcut" menu item to system menu. + + // IDM_CREATESHORTCUT must be in the system command range. + ASSERT((IDM_CREATESHORTCUT & 0xFFF0) == IDM_CREATESHORTCUT); + ASSERT(IDM_CREATESHORTCUT < 0xF000); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + CString strCreateShortcutMenu; + strCreateShortcutMenu.LoadString(IDS_CREATESHORTCUT); + if (!strCreateShortcutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, + IDM_CREATESHORTCUT, + strCreateShortcutMenu); + } + + CString strAboutMenu; + strAboutMenu.LoadString(IDS_ABOUTBOX); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, + IDM_ABOUTBOX, + strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + // Load source and build dirs from registry + this->LoadFromRegistry(); + + // try to load the cmake cache from disk + this->LoadCacheFromDiskToGUI(); + m_WhereBuildControl.LimitText(2048); + m_WhereSourceControl.LimitText(2048); + + // Set the version number + char tmp[1024]; + sprintf(tmp,"CMake %d.%d - %s", cmVersion::GetMajorVersion(), + cmVersion::GetMinorVersion(), + cmVersion::GetReleaseVersion().c_str()); + SetDlgItemText(IDC_PROGRESS, ""); + this->SetWindowText(tmp); + this->UpdateData(FALSE); + return TRUE; // return TRUE unless you set the focus to a control +} + + +// About dialog invoke +void CMakeSetupDialog::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else if ((nID & 0xFFF0) == IDM_CREATESHORTCUT) + { + CreateShortcut(); + } + else + { + CDialog::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CMakeSetupDialog::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} + +// The system calls this to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CMakeSetupDialog::OnQueryDragIcon() +{ + return (HCURSOR) m_hIcon; +} + + + +// Browse button +bool CMakeSetupDialog::Browse(CString &result, const char *title) +{ + CString initialDir = result; + initialDir.Replace("/", "\\"); + CPathDialog dlg("Select Path", title, initialDir); + if(dlg.DoModal()==IDOK) + { + result = dlg.GetPathName(); + return true; + } + else + { + return false; + } +} + + + + +void CMakeSetupDialog::SaveToRegistry() +{ + HKEY hKey; + DWORD dwDummy; + + if(RegCreateKeyEx(HKEY_CURRENT_USER, + m_RegistryKey, + 0, "", REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, + NULL, &hKey, &dwDummy) != ERROR_SUCCESS) + { + return; + } + else + { + // save some values + CString regvalue; + + // write the size of the dialog + CRect size; + this->GetWindowRect(&size); + unsigned long width = size.Width(); + unsigned long height = size.Height(); + RegSetValueEx(hKey, _T("Width"), 0, REG_DWORD, + (CONST BYTE *)(&width),4); + RegSetValueEx(hKey, _T("Height"), 0, REG_DWORD, + (CONST BYTE *)(&height),4); + + this->ReadRegistryValue(hKey, &(regvalue),"WhereSource1","C:\\"); + int shiftEnd = 9; + if(m_WhereSource != regvalue) + { + char keyName[1024]; + char keyName2[1024]; + int i; + for (i = 2; i < 10; ++i) + { + regvalue = ""; + sprintf(keyName,"WhereSource%i",i); + this->ReadRegistryValue(hKey, &(regvalue),keyName,""); + // check for short circuit, if the new value is already in + // the list then we stop + if (m_WhereSource == regvalue) + { + shiftEnd = i - 1; + } + } + + for (i = shiftEnd; i; --i) + { + regvalue = ""; + sprintf(keyName,"WhereSource%i",i); + sprintf(keyName2,"WhereSource%i",i+1); + + this->ReadRegistryValue(hKey, &(regvalue),keyName,""); + if (strlen(regvalue)) + { + RegSetValueEx(hKey, _T(keyName2), 0, REG_SZ, + (CONST BYTE *)(const char *)regvalue, + regvalue.GetLength()); + } + } + RegSetValueEx(hKey, _T("WhereSource1"), 0, REG_SZ, + (CONST BYTE *)(const char *)m_WhereSource, + m_WhereSource.GetLength()); + } + + this->ReadRegistryValue(hKey, &(regvalue),"WhereBuild1","C:\\"); + if(m_WhereBuild != regvalue) + { + int i; + char keyName[1024]; + char keyName2[1024]; + for (i = 2; i < 10; ++i) + { + regvalue = ""; + sprintf(keyName,"WhereBuild%i",i); + this->ReadRegistryValue(hKey, &(regvalue),keyName,""); + // check for short circuit, if the new value is already in + // the list then we stop + if (m_WhereBuild == regvalue) + { + shiftEnd = i - 1; + } + } + for (i = shiftEnd; i; --i) + { + regvalue = ""; + sprintf(keyName,"WhereBuild%i",i); + sprintf(keyName2,"WhereBuild%i",i+1); + + this->ReadRegistryValue(hKey, &(regvalue),keyName,""); + if (strlen(regvalue)) + { + RegSetValueEx(hKey, _T(keyName2), 0, REG_SZ, + (CONST BYTE *)(const char *)regvalue, + regvalue.GetLength()); + } + } + RegSetValueEx(hKey, _T("WhereBuild1"), 0, REG_SZ, + (CONST BYTE *)(const char *)m_WhereBuild, + m_WhereBuild.GetLength()); + } + } + RegCloseKey(hKey); +} + + +void CMakeSetupDialog::ReadRegistryValue(HKEY hKey, + CString *val, + const char *key, + const char *adefault) +{ + DWORD dwType, dwSize; + char *pb; + + dwType = REG_SZ; + pb = val->GetBuffer(MAX_PATH); + dwSize = MAX_PATH; + if(RegQueryValueEx(hKey,_T(key), NULL, &dwType, + (BYTE *)pb, &dwSize) != ERROR_SUCCESS) + { + val->ReleaseBuffer(); + *val = _T(adefault); + } + else + { + val->ReleaseBuffer(); + } +} + + +void CMakeSetupDialog::LoadFromRegistry() +{ + HKEY hKey; + if(RegOpenKeyEx(HKEY_CURRENT_USER, + m_RegistryKey, + 0, KEY_READ, &hKey) != ERROR_SUCCESS) + { + return; + } + else + { + // load some values + DWORD dwSize = 4; + DWORD width, height; + + if (RegQueryValueEx(hKey,_T("Width"), NULL, NULL, + (BYTE *)&width, &dwSize) == ERROR_SUCCESS && + RegQueryValueEx(hKey,_T("Height"), NULL, NULL, + (BYTE *)&height, &dwSize) == ERROR_SUCCESS) + { + this->SetWindowPos(0,0,0,width,height,SWP_NOZORDER | SWP_NOMOVE); + } + + if (m_WhereSource.IsEmpty()) + { + this->ReadRegistryValue(hKey, &(m_WhereSource),"WhereSource1","C:\\"); + } + if (m_WhereBuild.IsEmpty()) + { + this->ReadRegistryValue(hKey, &(m_WhereBuild),"WhereBuild1","C:\\"); + } + m_WhereSourceControl.AddString(m_WhereSource); + m_WhereBuildControl.AddString(m_WhereBuild); + + char keyname[1024]; + CString regvalue; + int i; + for (i = 2; i <= 10; ++i) + { + sprintf(keyname,"WhereSource%i",i); + regvalue = ""; + this->ReadRegistryValue(hKey, &(regvalue),keyname,"C:\\"); + if (strcmp("C:\\",regvalue)) + { + m_WhereSourceControl.AddString(regvalue); + } + sprintf(keyname,"WhereBuild%i",i); + regvalue = ""; + this->ReadRegistryValue(hKey, &(regvalue),keyname,"C:\\"); + if (strcmp("C:\\",regvalue)) + { + m_WhereBuildControl.AddString(regvalue); + } + } + } + RegCloseKey(hKey); +} + + + +// Callback for browse source button +void CMakeSetupDialog::OnBrowseWhereSource() +{ + this->UpdateData(); + Browse(m_WhereSource, "Enter Path to Source"); + this->UpdateData(false); + this->OnChangeWhereSource(); +} + +// Callback for browser build button +void CMakeSetupDialog::OnBrowseWhereBuild() +{ + this->UpdateData(); + Browse(m_WhereBuild, "Enter Path to Build"); + this->UpdateData(false); + this->OnChangeWhereBuild(); +} + +void CMakeSetupDialog::RunCMake(bool generateProjectFiles) +{ + if(!cmSystemTools::FileExists(m_WhereBuild)) + { + std::string message = + "Build directory does not exist, should I create it?\n\n" + "Directory: "; + message += (const char*)m_WhereBuild; + if(MessageBox(message.c_str(), "Create Directory", MB_OKCANCEL) == IDOK) + { + cmSystemTools::MakeDirectory(m_WhereBuild); + } + else + { + MessageBox("Build Project aborted, nothing done."); + return; + } + } + // set the wait cursor + m_Cursor = LoadCursor(NULL, IDC_WAIT); + ::SetCursor(m_Cursor); + m_RunningConfigure = true; + + // get all the info from the dialog + this->UpdateData(); + // always save the current gui values to disk + this->SaveCacheFromGUI(); + // Make sure we are working from the cache on disk + this->LoadCacheFromDiskToGUI(); + m_OKButton.EnableWindow(false); + + // setup the cmake instance + if (generateProjectFiles) + { + if(m_CMakeInstance->Generate() != 0) + { + cmSystemTools::Error( + "Error in generation process, project files may be invalid"); + } + } + else + { + m_CMakeInstance->SetHomeDirectory(m_WhereSource); + m_CMakeInstance->SetStartDirectory(m_WhereSource); + m_CMakeInstance->SetHomeOutputDirectory(m_WhereBuild); + m_CMakeInstance->SetStartOutputDirectory(m_WhereBuild); + m_CMakeInstance->SetGlobalGenerator( + m_CMakeInstance->CreateGlobalGenerator(m_GeneratorDialog.m_GeneratorChoiceString)); + m_CMakeInstance->SetCMakeCommand(m_PathToExecutable); + m_CMakeInstance->LoadCache(); + if(m_CMakeInstance->Configure() != 0) + { + cmSystemTools::Error( + "Error in configuration process, project files may be invalid"); + } + // update the GUI with any new values in the caused by the + // generation process + this->LoadCacheFromDiskToGUI(); + } + + // save source and build paths to registry + this->SaveToRegistry(); + // path is up-to-date now + m_BuildPathChanged = false; + // put the cursor back + m_Cursor = LoadCursor(NULL, IDC_ARROW); + ::SetCursor(m_Cursor); + m_RunningConfigure = false; + cmSystemTools::ResetErrorOccuredFlag(); +} + + +// Callback for build projects button +void CMakeSetupDialog::OnConfigure() +{ + if(!m_GeneratorPicked) + { + m_GeneratorDialog.m_CMakeInstance = this->m_CMakeInstance; + if(m_GeneratorDialog.DoModal() != IDOK) + { + return; + } + // save the generator choice in the registry + HKEY hKey; + DWORD dwDummy; + + if(RegCreateKeyEx(HKEY_CURRENT_USER, + m_RegistryKey, + 0, "", REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, + NULL, &hKey, &dwDummy) == ERROR_SUCCESS) + { + // save some values + RegSetValueEx(hKey, _T("LastGenerator"), 0, REG_SZ, + (CONST BYTE *)(const char *)m_GeneratorDialog.m_GeneratorChoiceString, + m_GeneratorDialog.m_GeneratorChoiceString.GetLength()); + } + } + + // enable error messages each time configure is pressed + cmSystemTools::EnableMessages(); + this->RunCMake(false); +} + + + + +// callback for combo box menu where build selection +void CMakeSetupDialog::OnSelendokWhereBuild() +{ + m_WhereBuildControl.GetLBText(m_WhereBuildControl.GetCurSel(), + m_WhereBuild); + m_WhereBuildControl.SetWindowText( m_WhereBuild); + this->UpdateData(FALSE); + this->OnChangeWhereBuild(); +} + +// callback for combo box menu where source selection +void CMakeSetupDialog::OnSelendokWhereSource() +{ + m_WhereSourceControl.GetLBText(m_WhereSourceControl.GetCurSel(), + m_WhereSource); + this->UpdateData(FALSE); + this->OnChangeWhereSource(); +} + +// callback for chaing source directory +void CMakeSetupDialog::OnChangeWhereSource() +{ +} + +// callback for changing the build directory +void CMakeSetupDialog::OnChangeWhereBuild() +{ + this->UpdateData(); + + // The build dir has changed, check if there is a cache, and + // grab the source dir from it + + std::string path = this->m_WhereBuild; + cmSystemTools::ConvertToUnixSlashes(path); + + // adjust the cmake instance + m_CMakeInstance->SetHomeOutputDirectory(m_WhereBuild); + m_CMakeInstance->SetStartOutputDirectory(m_WhereBuild); + + std::string cache_file = path; + cache_file += "/CMakeCache.txt"; + + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + + m_GeneratorPicked = false; + + // make sure we have a normal cache file, specifically if one exists make + // sure it can be read + if (cmSystemTools::FileExists(cache_file.c_str())) + { + if (cachem->LoadCache(path.c_str())) + { + if (it.Find("CMAKE_HOME_DIRECTORY")) + { + path = ConvertToWindowsPath(it.GetValue()); + this->m_WhereSource = path.c_str(); + this->m_WhereSourceControl.SetWindowText(this->m_WhereSource); + this->OnChangeWhereSource(); + m_GeneratorPicked = true; + } + } + else + { + //file exists but cqnnot be read + cmSystemTools::Error("There is a CMakeCache.txt file for the current binary tree but cmake does not have permission to read it. Please check the permissions of the directory you are trying to run CMake on."); + return; + } + } + + m_CacheEntriesList.RemoveAll(); + m_CacheEntriesList.ShowWindow(SW_SHOW); + this->LoadCacheFromDiskToGUI(); + m_BuildPathChanged = true; +} + + +// copy from the cache manager to the cache edit list box +void CMakeSetupDialog::FillCacheGUIFromCacheManager() +{ + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + + // if there are already entries in the cache, then + // put the new ones in the top, so they show up first + bool reverseOrder = false; + // all the current values are not new any more + std::set items = m_CacheEntriesList.GetItems(); + for(std::set::iterator i = items.begin(); + i != items.end(); ++i) + { + // first check to see if it is still in the cache + CPropertyItem* item = *i; + if ( !it.Find((const char*)item->m_propName) ) + { + m_CacheEntriesList.RemoveProperty((const char*)item->m_propName); + } + else + { + // if it is still in the cache then it is no longer new + item->m_NewValue = false; + } + } + for(cmCacheManager::CacheIterator i = cachem->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + const char* key = i.GetName(); + + // if value has trailing space or tab, enclose it in single quotes + // to enforce the fact that it has 'invisible' trailing stuff + std::string value = i.GetValue(); + if (value.size() && + (value[value.size() - 1] == ' ' || + value[value.size() - 1] == '\t')) + { + value = '\'' + value + '\''; + } + bool advanced = i.GetPropertyAsBool("ADVANCED"); + switch(i.GetType() ) + { + case cmCacheManager::BOOL: + if(cmSystemTools::IsOn(value.c_str())) + { + m_CacheEntriesList.AddProperty(key, + "ON", + i.GetProperty("HELPSTRING"), + CPropertyList::COMBO,"ON|OFF", + reverseOrder, + advanced + ); + } + else + { + m_CacheEntriesList.AddProperty(key, + "OFF", + i.GetProperty("HELPSTRING"), + CPropertyList::COMBO,"ON|OFF", + reverseOrder, advanced + ); + } + break; + case cmCacheManager::PATH: + m_CacheEntriesList.AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + CPropertyList::PATH,"", + reverseOrder, advanced + ); + break; + case cmCacheManager::FILEPATH: + m_CacheEntriesList.AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + CPropertyList::FILE,"", + reverseOrder, advanced + ); + break; + case cmCacheManager::STRING: + m_CacheEntriesList.AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + CPropertyList::EDIT,"", + reverseOrder, advanced + ); + break; + case cmCacheManager::INTERNAL: + m_CacheEntriesList.RemoveProperty(key); + break; + } + } + if(m_CacheEntriesList.GetShowAdvanced()) + { + m_CacheEntriesList.ShowAdvanced(); + } + else + { + m_CacheEntriesList.HideAdvanced(); + } + + m_OKButton.EnableWindow(false); + if(cachem->GetSize() > 0 && !cmSystemTools::GetErrorOccuredFlag()) + { + bool enable = true; + items = m_CacheEntriesList.GetItems(); + for(std::set::iterator i = items.begin(); + i != items.end(); ++i) + { + CPropertyItem* item = *i; + if(item->m_Advanced ) + { + if(item->m_NewValue && m_CacheEntriesList.GetShowAdvanced()) + { + enable = false; + break; + } + } + else + { + if(item->m_NewValue) + { + // if one new value then disable to OK button + enable = false; + break; + } + } + } + if(enable) + { + m_OKButton.EnableWindow(true); + } + } + + // redraw the list + m_CacheEntriesList.SetTopIndex(0); + m_CacheEntriesList.Invalidate(); +} + +// copy from the list box to the cache manager +void CMakeSetupDialog::FillCacheManagerFromCacheGUI() +{ + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + std::set items = m_CacheEntriesList.GetItems(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + for(std::set::iterator i = items.begin(); + i != items.end(); ++i) + { + CPropertyItem* item = *i; + if ( it.Find((const char*)item->m_propName) ) + { + // if value is enclosed in single quotes ('foo') then remove them + // they were used to enforce the fact that it had 'invisible' + // trailing stuff + if (item->m_curValue.GetLength() >= 2 && + item->m_curValue[0] == '\'' && + item->m_curValue[item->m_curValue.GetLength() - 1] == '\'') + { + it.SetValue(item->m_curValue.Mid( + 1, item->m_curValue.GetLength() - 2)); + } + else + { + it.SetValue(item->m_curValue); + } + } + } +} + + + +//! Load cache file from m_WhereBuild and display in GUI editor +void CMakeSetupDialog::LoadCacheFromDiskToGUI() +{ + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + if(m_WhereBuild != "") + { + if (!cachem->LoadCache(m_WhereBuild)) + { + // if it does exist, but isn;t readable then warn the user + std::string cacheFile = m_WhereBuild; + cacheFile += "/CMakeCache.txt"; + if(cmSystemTools::FileExists(cacheFile.c_str())) + { + cmSystemTools::Error("There is a CMakeCache.txt file for the current binary tree but cmake does not have permission to read it. Please check the permissions of the directory you are trying to run CMake on."); + return; + } + } + cmCacheManager::CacheIterator itm = cachem->NewIterator(); + if ( itm.Find("CMAKE_HOME_DIRECTORY")) + { + std::string path = ConvertToWindowsPath(itm.GetValue()); + this->m_WhereSource = path.c_str(); + this->m_WhereSourceControl.SetWindowText(this->m_WhereSource); + this->OnChangeWhereSource(); + } + m_CMakeInstance->SetHomeDirectory(m_WhereSource); + m_CMakeInstance->SetStartDirectory(m_WhereSource); + m_CMakeInstance->SetHomeOutputDirectory(m_WhereBuild); + m_CMakeInstance->SetStartOutputDirectory(m_WhereBuild); + m_CMakeInstance->PreLoadCMakeFiles(); + this->FillCacheGUIFromCacheManager(); + cmCacheManager::CacheIterator it = + cachem->GetCacheIterator("CMAKE_GENERATOR"); + if(!it.IsAtEnd()) + { + m_GeneratorPicked = true; + const char* extraGen = cachem->GetCacheValue("CMAKE_EXTRA_GENERATOR"); + std::string curGen = cmExternalMakefileProjectGenerator:: + CreateFullGeneratorName(it.GetValue(), extraGen); + + if(m_GeneratorDialog.m_GeneratorChoiceString != curGen.c_str()) + { + m_GeneratorDialog.m_GeneratorChoiceString = curGen.c_str(); + this->UpdateData(FALSE); + } + } + } +} + +//! Save GUI values to cmCacheManager and then save to disk. +void CMakeSetupDialog::SaveCacheFromGUI() +{ + cmCacheManager *cachem = this->m_CMakeInstance->GetCacheManager(); + this->FillCacheManagerFromCacheGUI(); + if(m_WhereBuild != "") + { + cachem->SaveCache(m_WhereBuild); + } +} + + +void CMakeSetupDialog::OnSize(UINT nType, int cx, int cy) +{ + if (nType == SIZE_MINIMIZED) + { + CDialog::OnSize(nType, cx, cy); + return; + } + if (m_oldCX == -1) + { + m_oldCX = cx; + m_oldCY = cy; + } + int deltax = cx - m_oldCX; + int deltay = cy - m_oldCY; + + m_oldCX = cx; + m_oldCY = cy; + + CDialog::OnSize(nType, cx, cy); + + if (deltax == 0 && deltay == 0) + { + return; + } + + if(m_CacheEntriesList.m_hWnd) + { + // get the original sizes/positions + CRect cRect; + m_AdvancedValuesControl.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_AdvancedValuesControl.SetWindowPos(&wndTop, cRect.left + deltax, + cRect.top, + 0, 0, + SWP_NOCOPYBITS | + SWP_NOSIZE | SWP_NOZORDER); + m_BrowseSource.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_BrowseSource.SetWindowPos(&wndTop, cRect.left + deltax, + cRect.top, + 0, 0, + SWP_NOCOPYBITS | SWP_NOSIZE | SWP_NOZORDER); + m_BrowseBuild.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_BrowseBuild.SetWindowPos(&wndTop, cRect.left + deltax, + cRect.top, + 0, 0, + SWP_NOCOPYBITS | SWP_NOSIZE | SWP_NOZORDER); + + m_WhereSourceControl.GetWindowRect(&cRect); + m_WhereSourceControl.SetWindowPos(&wndTop, cRect.left, cRect.top, + cRect.Width() + deltax, + cRect.Height(), + SWP_NOCOPYBITS | + SWP_NOMOVE | SWP_NOZORDER); + m_WhereBuildControl.GetWindowRect(&cRect); + m_WhereBuildControl.SetWindowPos(&wndTop, cRect.left, cRect.top, + cRect.Width() + deltax, + cRect.Height(), + SWP_NOCOPYBITS | + SWP_NOMOVE | SWP_NOZORDER); + m_ListFrame.GetWindowRect(&cRect); + m_ListFrame.SetWindowPos(&wndTop, cRect.left, cRect.top, + cRect.Width() + deltax, + cRect.Height() + deltay, + SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOZORDER); + m_CacheEntriesList.GetWindowRect(&cRect); + m_CacheEntriesList.SetWindowPos(&wndTop, cRect.left, cRect.top, + cRect.Width() + deltax, + cRect.Height() + deltay, + SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOZORDER); + + m_StatusDisplay.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_StatusDisplay.SetWindowPos(&wndBottom, cRect.left, + cRect.top + deltay, + cRect.Width() + deltax, cRect.Height(), + SWP_NOCOPYBITS); + + m_MouseHelp.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_MouseHelp.SetWindowPos(&wndTop, cRect.left , + cRect.top + deltay, + cRect.Width() + deltax, cRect.Height(), + SWP_NOCOPYBITS | SWP_NOZORDER); + + deltax = int(deltax + m_deltaXRemainder); + m_deltaXRemainder = float(deltax%2); + + + m_Configure.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_Configure.SetWindowPos(&wndTop, cRect.left + deltax/2, + cRect.top + deltay, + 0, 0, + SWP_NOCOPYBITS | SWP_NOSIZE); + m_CancelButton.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_CancelButton.SetWindowPos(&wndTop, cRect.left + deltax/2, + cRect.top + deltay, + 0, 0, + SWP_NOCOPYBITS | SWP_NOSIZE); + m_OKButton.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_OKButton.SetWindowPos(&wndTop, cRect.left + deltax/2, + cRect.top + deltay, + 0, 0, + SWP_NOCOPYBITS | SWP_NOSIZE); + m_DeleteButton.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_DeleteButton.SetWindowPos(&wndTop, cRect.left + deltax/2, + cRect.top + deltay, + 0, 0, + SWP_NOCOPYBITS | SWP_NOSIZE); + m_HelpButton.GetWindowRect(&cRect); + this->ScreenToClient(&cRect); + m_HelpButton.SetWindowPos(&wndTop, cRect.left + deltax/2, + cRect.top + deltay, + 0, 0, + SWP_NOCOPYBITS | SWP_NOSIZE); + } + +} + + +void CMakeSetupDialog::OnGetMinMaxInfo( MINMAXINFO FAR* lpMMI ) +{ + lpMMI->ptMinTrackSize.x = 550; + lpMMI->ptMinTrackSize.y = 272; +} + +void CMakeSetupDialog::OnCancel() +{ + if(m_RunningConfigure) + { + if(MessageBox("You are in the middle of a Configure.\n" + "If you Cancel now the configure information will be lost.\n" + "Are you sure you want to Cancel?", "Confirm Exit", + MB_YESNO) == IDYES) + { + cmSystemTools::SetFatalErrorOccured(); + } + return; + } + if(m_CacheEntriesList.IsDirty()) + { + if(MessageBox("You have changed options but not rebuilt, " + "are you sure you want to exit?", "Confirm Exit", + MB_YESNO) == IDYES) + { + CDialog::OnOK(); + } + } + else + { + CDialog::OnOK(); + } +} + +void CMakeSetupDialog::OnOk() +{ + // enable error messages each time configure is pressed + cmSystemTools::EnableMessages(); + m_CacheEntriesList.ClearDirty(); + this->RunCMake(true); + + // save the size of the dialog + + + if (!(::GetKeyState(VK_SHIFT) & 0x1000)) + { + CDialog::OnOK(); + } +} + +// Create a shortcut on the desktop with the current Source/Build dir. +int CMakeSetupDialog::CreateShortcut() +{ + // Find the desktop folder and create the link name + + HKEY hKey; + if(RegOpenKeyEx(HKEY_CURRENT_USER, + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", + 0, KEY_READ, &hKey) != ERROR_SUCCESS) + { + AfxMessageBox ("Create shortcut: unable to find 'Shell Folders' key in registry!"); + return 1; + } + + DWORD dwType, dwSize; +#define MAXPATH 1024 + char link_name[MAXPATH]; + dwSize = MAXPATH; + if(RegQueryValueEx(hKey, + (LPCTSTR)"Desktop", + NULL, + &dwType, + (BYTE *)link_name, + &dwSize) != ERROR_SUCCESS) + { + AfxMessageBox ("Create shortcut: unable to find 'Desktop' registry value in 'Shell Folders' key!"); + return 1; + } + + if(dwType != REG_SZ) + { + AfxMessageBox ("Create shortcut: 'Desktop' registry value in 'Shell Folders' key has wrong type!"); + return 1; + } + + strcat(link_name, "\\CMake - "); + std::string current_dir = cmSystemTools::GetFilenameName((LPCTSTR)m_WhereSource); + strcat(link_name, current_dir.c_str()); + strcat(link_name, ".lnk"); + + // Find the path to the current executable + + char path_to_current_exe[MAXPATH]; + ::GetModuleFileName(NULL, path_to_current_exe, MAXPATH); + + // Create the shortcut + + HRESULT hres; + IShellLink *psl; + + // Initialize the COM library + + hres = CoInitialize(NULL); + + if (! SUCCEEDED (hres)) + { + AfxMessageBox ("Create shortcut: unable to initialize the COM library!"); + return 1; + } + + // Create an IShellLink object and get a pointer to the IShellLink + // interface (returned from CoCreateInstance). + + hres = CoCreateInstance(CLSID_ShellLink, + NULL, + CLSCTX_INPROC_SERVER, + IID_IShellLink, + (void **)&psl); + + if (! SUCCEEDED (hres)) + { + AfxMessageBox ("Create shortcut: unable to create IShellLink instance!"); + return 1; + } + + IPersistFile *ppf; + + // Query IShellLink for the IPersistFile interface for + // saving the shortcut in persistent storage. + + hres = psl->QueryInterface(IID_IPersistFile, (void **)&ppf); + + if (SUCCEEDED (hres)) + { + // Set the path to the shortcut target. + hres = psl->SetPath(path_to_current_exe); + + if (! SUCCEEDED (hres)) + { + AfxMessageBox ("Create shortcut: SetPath failed!"); + } + + // Set the arguments of the shortcut. + CString args = " /H=\"" + m_WhereSource + "\" /B=\"" + m_WhereBuild + "\" /G=\"" + m_GeneratorDialog.m_GeneratorChoiceString + "\" /A=\"" + (m_AdvancedValues ? "TRUE" : "FALSE") + "\""; + + hres = psl->SetArguments(args); + + if (! SUCCEEDED (hres)) + { + AfxMessageBox ("Create shortcut: SetArguments failed!"); + } + + // Set the description of the shortcut. + hres = psl->SetDescription("Shortcut to CMakeSetup"); + + if (! SUCCEEDED (hres)) + { + AfxMessageBox ("Create shortcut: SetDescription failed!"); + } + + // Ensure that the string consists of ANSI characters. + WORD wszAr[MAX_PATH]; + LPWSTR wsz = (LPWSTR)wszAr; + MultiByteToWideChar(CP_ACP, 0, link_name, -1, (LPWSTR)(wsz), MAX_PATH); + + // Save the shortcut via the IPersistFile::Save member function. + hres = ppf->Save(wsz, TRUE); + + if (! SUCCEEDED (hres)) + { + AfxMessageBox ("Create shortcut: Save failed!"); + } + + // Release the pointer to IPersistFile. + ppf->Release (); + } + // Release the pointer to IShellLink. + psl->Release (); + + return 0; +} + +void CMakeSetupDialog::OnHelpButton() +{ + CMakeHelp dialog; + dialog.DoModal(); +} + +void CMakeSetupDialog::OnDeleteButton() +{ + std::string message = "Are you sure you want to delete the CMakeCache.txt file for:\n"; + message += m_WhereBuild; + if(::MessageBox(0, message.c_str(), "Delete Cache?", + MB_YESNO|MB_TASKMODAL) == IDNO) + { + return; + } + m_GeneratorPicked = false; + + if(m_WhereBuild != "" && this->m_CMakeInstance) + { + this->m_CMakeInstance->GetCacheManager()->DeleteCache(m_WhereBuild); + } + + // Make sure we are working from the cache on disk + this->LoadCacheFromDiskToGUI(); + + m_OKButton.EnableWindow(false); +} + +void CMakeSetupDialog::ShowAdvancedValues() +{ + m_CacheEntriesList.ShowAdvanced(); +} + +void CMakeSetupDialog::RemoveAdvancedValues() +{ + m_CacheEntriesList.HideAdvanced(); +} + + +void CMakeSetupDialog::OnAdvancedValues() +{ + this->UpdateData(); + if(m_AdvancedValues) + { + this->ShowAdvancedValues(); + } + else + { + this->RemoveAdvancedValues(); + } +} + +void CMakeSetupDialog::OnDoubleclickedAdvancedValues() +{ + this->OnAdvancedValues(); +} + +// Handle param or single dropped file. +void CMakeSetupDialog::ChangeDirectoriesFromFile(const char* arg) +{ + // Check if the argument refers to a CMakeCache.txt or + // CMakeLists.txt file. + std::string listPath; + std::string cachePath; + bool argIsFile = false; + if(cmSystemTools::FileIsDirectory(arg)) + { + std::string path = cmSystemTools::CollapseFullPath(arg); + cmSystemTools::ConvertToUnixSlashes(path); + std::string cacheFile = path; + cacheFile += "/CMakeCache.txt"; + std::string listFile = path; + listFile += "/CMakeLists.txt"; + if(cmSystemTools::FileExists(cacheFile.c_str())) + { + cachePath = path; + } + if(cmSystemTools::FileExists(listFile.c_str())) + { + listPath = path; + } + } + else if(cmSystemTools::FileExists(arg)) + { + argIsFile = true; + std::string fullPath = cmSystemTools::CollapseFullPath(arg); + std::string name = cmSystemTools::GetFilenameName(fullPath.c_str()); + name = cmSystemTools::LowerCase(name); + if(name == "cmakecache.txt") + { + cachePath = cmSystemTools::GetFilenamePath(fullPath.c_str()); + } + else if(name == "cmakelists.txt") + { + listPath = cmSystemTools::GetFilenamePath(fullPath.c_str()); + } + } + + // If there is a CMakeCache.txt file, use its settings. + if(cachePath.length() > 0) + { + cmCacheManager* cachem = m_CMakeInstance->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + if(cachem->LoadCache(cachePath.c_str()) && it.Find("CMAKE_HOME_DIRECTORY")) + { + std::string path = ConvertToWindowsPath(cachePath.c_str()); + m_WhereBuild = path.c_str(); + + path = ConvertToWindowsPath(it.GetValue()); + m_WhereSource = path.c_str(); + + m_GeneratorDialog.m_GeneratorChoiceString = _T(""); + return; + } + } + + // If there is a CMakeLists.txt file, use it as the source tree. + if(listPath.length() > 0) + { + std::string path = ConvertToWindowsPath(listPath.c_str()); + m_WhereSource = path.c_str(); + + if(argIsFile) + { + // Source CMakeLists.txt file given. It was probably dropped + // onto the window or executable. Default to an in-source + // build. + m_WhereBuild = path.c_str(); + } + else + { + // Source directory given on command line. Use current working + // directory as build tree. + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + path = ConvertToWindowsPath(cwd.c_str()); + m_WhereBuild = path.c_str(); + } + } +} + + +// The framework calls this member function when the user releases the +// left mouse button over a window that has registered itself as the +// recipient of dropped files. + +void CMakeSetupDialog::OnDropFiles(HDROP hDropInfo) +{ + UINT nb_files = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0); + if (nb_files > 0) + { + UINT buffer_size = DragQueryFile(hDropInfo, 0, NULL, 0); + char *buffer = new char [buffer_size + 1]; + DragQueryFile(hDropInfo, 0, buffer, buffer_size + 1); + + this->ChangeDirectoriesFromFile(buffer); + delete [] buffer; + + this->m_WhereSourceControl.SetWindowText(this->m_WhereSource); + this->m_WhereBuildControl.SetWindowText(this->m_WhereBuild); + + this->UpdateData(FALSE); + + this->OnChangeWhereSource(); + this->OnChangeWhereBuild(); + } + + DragFinish(hDropInfo); +} + +BOOL CMakeSetupDialog::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) +{ + CDialog::OnSetCursor(pWnd, nHitTest, message); + if(m_Cursor == LoadCursor(NULL, IDC_WAIT)) + { + ::SetCursor(m_Cursor); + } + return true; +} diff --git a/CMakeLua/Source/MFCDialog/CMakeSetupDialog.h b/CMakeLua/Source/MFCDialog/CMakeSetupDialog.h new file mode 100644 index 0000000..30180a6 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeSetupDialog.h @@ -0,0 +1,148 @@ +/*========================================================================= + +Program: CMake - Cross-Platform Makefile Generator +Module: $RCSfile: CMakeSetupDialog.h,v $ +Language: C++ +Date: $Date: 2005/03/28 18:20:55 $ +Version: $Revision: 1.30 $ + +Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// CMakeSetupDialogDlg.h : header file +// + +#if !defined(AFX_CMakeSetupDialogDLG_H__AC17A6F6_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_) +#define AFX_CMakeSetupDialogDLG_H__AC17A6F6_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + +#include "PropertyList.h" +#include "CMakeGenDialog.h" + +///////////////////////////////////////////////////////////////////////////// +// CMakeSetupDialog dialog + +class CMakeCommandLineInfo; +class cmake; + +class CMakeSetupDialog : public CDialog +{ +// Construction +public: + CMakeSetupDialog(const CMakeCommandLineInfo& cmdInfo, + CWnd* pParent = NULL); + + ~CMakeSetupDialog(); + // return the cmake that is currently being used + cmake *GetCMakeInstance() { + return m_CMakeInstance; } +protected: + //! Load cache file from m_WhereBuild and display in GUI editor + void LoadCacheFromDiskToGUI(); + //! Save GUI values to cmCacheManager and then save to disk. + void SaveCacheFromGUI(); + void SaveToRegistry(); + void LoadFromRegistry(); + bool Browse(CString&, const char* title); + void ReadRegistryValue(HKEY hKey, + CString *val, + const char *key, + const char *aadefault); + void ShowAdvancedValues(); + void RemoveAdvancedValues(); + // Dialog Data + //{{AFX_DATA(CMakeSetupDialog) + enum { IDD = IDD_CMakeSetupDialog_DIALOG }; + CButton m_AdvancedValuesControl; + CButton m_BrowseSource; + CButton m_BrowseBuild; + CButton m_HelpButton; + CButton m_DeleteButton; + CButton m_OKButton; + CButton m_CancelButton; + CString m_WhereSource; + CString m_WhereBuild; + CButton m_ListFrame; + bool m_BuildPathChanged; + CComboBox m_WhereSourceControl; + CComboBox m_WhereBuildControl; + CPropertyList m_CacheEntriesList; + CStatic m_MouseHelp; + CStatic m_StatusDisplay; + CButton m_Configure; + BOOL m_AdvancedValues; + //}}AFX_DATA + + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMakeSetupDialog) +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + void RunCMake(bool generateProjectFiles); + // copy from the cache manager to the cache edit list box + void FillCacheGUIFromCacheManager(); + // copy from the list box to the cache manager + void FillCacheManagerFromCacheGUI(); + // Create a shortcut on the desktop with the current Source/Build dir. + int CreateShortcut(); + + // Set initial directories from a file path. + void ChangeDirectoriesFromFile(const char* arg); + + HICON m_hIcon; + CString m_RegistryKey; + CString m_PathToExecutable; + // Generated message map functions + //{{AFX_MSG(CMakeSetupDialog) + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnCancel(); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnBrowseWhereSource(); + virtual void OnConfigure(); + afx_msg void OnBrowseWhereBuild(); + afx_msg void OnChangeWhereBuild(); + afx_msg void OnSelendokWhereBuild(); + afx_msg void OnChangeWhereSource(); + afx_msg void OnSelendokWhereSource(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnGetMinMaxInfo( MINMAXINFO FAR* lpMMI ); + afx_msg void OnOk(); + afx_msg void OnHelpButton(); + afx_msg void OnDeleteButton(); + afx_msg void OnAdvancedValues(); + afx_msg void OnDoubleclickedAdvancedValues(); + afx_msg void OnDropFiles(HDROP); + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + int m_oldCX; + int m_oldCY; + float m_deltaXRemainder; + cmake *m_CMakeInstance; + HCURSOR m_Cursor; + bool m_RunningConfigure; + bool m_GeneratorPicked; + + CCMakeGenDialog m_GeneratorDialog; + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CMakeSetupDialogDLG_H__AC17A6F6_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_) diff --git a/CMakeLua/Source/MFCDialog/CMakeSetupManifest.xml b/CMakeLua/Source/MFCDialog/CMakeSetupManifest.xml new file mode 100644 index 0000000..1a662f3 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CMakeSetupManifest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/CMakeLua/Source/MFCDialog/CVS/Entries b/CMakeLua/Source/MFCDialog/CVS/Entries new file mode 100644 index 0000000..ff729fb --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CVS/Entries @@ -0,0 +1,22 @@ +/.cvsignore/1.1/Wed Apr 24 14:08:24 2002//T1.1 +/CMakeCommandLineInfo.cpp/1.8/Tue Dec 13 19:14:16 2005//T1.8 +/CMakeCommandLineInfo.h/1.6/Wed Jul 23 21:31:25 2003//T1.6 +/CMakeGenDialog.cpp/1.2/Tue Sep 25 15:01:36 2007//T1.2 +/CMakeGenDialog.h/1.1/Mon Mar 28 18:23:07 2005//T1.1 +/CMakeLists.txt/1.15/Wed Nov 7 22:30:56 2007//T1.15 +/CMakeSetup.h/1.3/Wed Oct 23 22:03:27 2002//T1.3 +/CMakeSetup.rc/1.37/Mon Mar 12 17:30:36 2007//T1.37 +/CMakeSetupDialog.cpp/1.123/Wed Aug 1 18:58:55 2007//T1.123 +/CMakeSetupDialog.h/1.30/Mon Mar 28 18:20:55 2005//T1.30 +/CMakeSetupManifest.xml/1.1/Tue Sep 11 19:21:37 2007//T1.1 +/MakeHelp.cpp/1.2/Fri Dec 28 22:01:00 2001//T1.2 +/MakeHelp.h/1.3/Wed Oct 23 22:03:27 2002//T1.3 +/PathDialog.cpp/1.5/Mon Mar 5 14:51:13 2007//T1.5 +/PathDialog.h/1.4/Wed Oct 23 22:03:27 2002//T1.4 +/PropertyList.cpp/1.32/Mon Mar 5 14:51:13 2007//T1.32 +/PropertyList.h/1.13/Fri Jan 2 22:24:19 2004//T1.13 +/StdAfx.cpp/1.1/Tue Aug 29 19:26:09 2000//T1.1 +/StdAfx.h/1.5/Mon Sep 17 19:20:55 2007//T1.5 +/resource.h/1.21/Mon Mar 28 18:20:55 2005//T1.21 +D/res//// +/CMakeSetup.cpp/1.20/Sun Dec 16 12:37:45 2007//T1.20 diff --git a/CMakeLua/Source/MFCDialog/CVS/Repository b/CMakeLua/Source/MFCDialog/CVS/Repository new file mode 100644 index 0000000..28571aa --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/MFCDialog diff --git a/CMakeLua/Source/MFCDialog/CVS/Root b/CMakeLua/Source/MFCDialog/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/MFCDialog/CVS/Tag b/CMakeLua/Source/MFCDialog/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/MFCDialog/CVS/Template b/CMakeLua/Source/MFCDialog/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/MFCDialog/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/MFCDialog/MakeHelp.cpp b/CMakeLua/Source/MFCDialog/MakeHelp.cpp new file mode 100644 index 0000000..53ee3ee --- /dev/null +++ b/CMakeLua/Source/MFCDialog/MakeHelp.cpp @@ -0,0 +1,43 @@ +// MakeHelp.cpp : implementation file +// + +#include "stdafx.h" +#include "CMakeSetup.h" +#include "MakeHelp.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CMakeHelp dialog + + +CMakeHelp::CMakeHelp(CWnd* pParent /*=NULL*/) + : CDialog(CMakeHelp::IDD, pParent) +{ + //{{AFX_DATA_INIT(CMakeHelp) + m_HelpMessage = _T("CMake is used to configure and generate build files for software projects. The basic steps for configuring a project are as follows:\r\n\r\n1. Select the source directory for the project. This should contain the CMakeLists.txt files for the project.\r\n\r\n2. Select the build directory for the project. This is the directory where the project will be built. It can be the same or a different directory than the source directory. For easy clean up, a separate build directory is recommended. CMake will create the directory if it does not exist.\r\n\r\n3. Once the source and binary directories are selected, it is time to press the Configure button. This will cause CMake to read all of the input files and discover all the variables used by the project. The first time a variable is displayed it will be in Red. Users should inspect red variables making sure the values are correct. For some projects the Configure process can be iterative, so continue to press the Configure button until there are no longer red entries.\r\n\r\n4. Once there are no longer red entries, you should click the OK button. This will write the build files to the build directory and exit CMake."); + //}}AFX_DATA_INIT +} + + +void CMakeHelp::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CMakeHelp) + DDX_Text(pDX, IDC_EDIT1, m_HelpMessage); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CMakeHelp, CDialog) + //{{AFX_MSG_MAP(CMakeHelp) + // NOTE: the ClassWizard will add message map macros here + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CMakeHelp message handlers diff --git a/CMakeLua/Source/MFCDialog/MakeHelp.h b/CMakeLua/Source/MFCDialog/MakeHelp.h new file mode 100644 index 0000000..fb1e550 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/MakeHelp.h @@ -0,0 +1,62 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: MakeHelp.h,v $ + Language: C++ + Date: $Date: 2002/10/23 22:03:27 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#if !defined(AFX_MAKEHELP_H__DD327AED_1E65_43E8_A605_0933065D1757__INCLUDED_) +#define AFX_MAKEHELP_H__DD327AED_1E65_43E8_A605_0933065D1757__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// MakeHelp.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CMakeHelp dialog + +class CMakeHelp : public CDialog +{ +// Construction +public: + CMakeHelp(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CMakeHelp) + enum { IDD = IDD_CMAKE_HELP_DIALOG }; + CString m_HelpMessage; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CMakeHelp) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CMakeHelp) + // NOTE: the ClassWizard will add member functions here + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_MAKEHELP_H__DD327AED_1E65_43E8_A605_0933065D1757__INCLUDED_) diff --git a/CMakeLua/Source/MFCDialog/PathDialog.cpp b/CMakeLua/Source/MFCDialog/PathDialog.cpp new file mode 100644 index 0000000..d7bd427 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/PathDialog.cpp @@ -0,0 +1,377 @@ +////////////////////////////////////////////////////////////////////////// +//PathDialog.h file +// +//Written by Nguyen Tan Hung +////////////////////////////////////////////////////////////////////////// + +#include "stdafx.h" +#include "PathDialog.h" +#include + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define IDC_FOLDERTREE 0x3741 +#define IDC_TITLE 0x3742 +#define IDC_STATUSTEXT 0x3743 + +#define IDC_NEW_EDIT_PATH 0x3744 + +// Class CDlgWnd +BEGIN_MESSAGE_MAP(CPathDialogSub, CWnd) + ON_BN_CLICKED(IDOK, OnOK) + ON_EN_CHANGE(IDC_NEW_EDIT_PATH, OnChangeEditPath) + END_MESSAGE_MAP() + + void CPathDialogSub::OnOK() +{ + ::GetWindowText(::GetDlgItem(m_hWnd, IDC_NEW_EDIT_PATH), + m_pPathDialog->m_szPathName, MAX_PATH); + + if(CPathDialog::MakeSurePathExists(m_pPathDialog->m_szPathName)==0) + { + m_pPathDialog->m_bGetSuccess=TRUE; + ::EndDialog(m_pPathDialog->m_hWnd, IDOK); + } + else + { + ::SetFocus(::GetDlgItem(m_hWnd, IDC_NEW_EDIT_PATH)); + } +} + +void CPathDialogSub::OnChangeEditPath() +{ + ::GetWindowText(::GetDlgItem(m_hWnd, IDC_NEW_EDIT_PATH), + m_pPathDialog->m_szPathName, MAX_PATH); + BOOL bEnableOKButton = (_tcslen(m_pPathDialog->m_szPathName)>0); + SendMessage(BFFM_ENABLEOK, 0, bEnableOKButton); +} +///////////////////////////////////////////////////////////////////////////// +// CPathDialog dialog + + +CPathDialog::CPathDialog(LPCTSTR lpszCaption, + LPCTSTR lpszTitle, + LPCTSTR lpszInitialPath, + CWnd* pParent) +{ + m_hWnd=NULL; + m_PathDialogSub.m_pPathDialog= this; + m_bParentDisabled = FALSE; + + // Get the true parent of the dialog + m_pParentWnd = CWnd::GetSafeOwner(pParent); + + m_lpszCaption = lpszCaption; + m_lpszInitialPath = lpszInitialPath; + + memset(&m_bi, 0, sizeof(BROWSEINFO) ); + m_bi.hwndOwner = (m_pParentWnd==NULL)?NULL:m_pParentWnd->GetSafeHwnd(); + m_bi.pszDisplayName = 0; + m_bi.pidlRoot = 0; + m_bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT; + m_bi.lpfn = BrowseCallbackProc; + m_bi.lpszTitle = lpszTitle; +} + + +///////////////////////////////////////////////////////////////////////////// +// CPathDialog message handlers + +CString CPathDialog::GetPathName() +{ + return CString(m_szPathName); +} + +int CALLBACK CPathDialog::BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam, LPARAM pData) +{ + CPathDialog* pDlg = (CPathDialog*)pData; + + switch(uMsg) + { + case BFFM_INITIALIZED: + { + RECT rc; + HWND hEdit; + HFONT hFont; + + pDlg->m_hWnd = hwnd; + + if(pDlg->m_lpszCaption!=NULL) + { + ::SetWindowText(hwnd, pDlg->m_lpszCaption); + } + + VERIFY(pDlg->m_PathDialogSub.SubclassWindow(hwnd)); + ::ShowWindow(::GetDlgItem(hwnd, IDC_STATUSTEXT), SW_HIDE); + ::GetWindowRect(::GetDlgItem(hwnd, IDC_FOLDERTREE), &rc); + rc.bottom = rc.top - 4; + rc.top = rc.bottom - 23; + ::ScreenToClient(hwnd, (LPPOINT)&rc); + ::ScreenToClient(hwnd, ((LPPOINT)&rc)+1); + hEdit = ::CreateWindowEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""), + WS_CHILD|WS_TABSTOP|WS_VISIBLE|ES_AUTOHSCROLL, + rc.left, rc.top, + rc.right-rc.left, rc.bottom-rc.top, + hwnd, NULL, NULL, NULL); + ::SetWindowLong(hEdit, GWL_ID, IDC_NEW_EDIT_PATH); + ::ShowWindow(hEdit, SW_SHOW); + + hFont = (HFONT)::SendMessage(hwnd, WM_GETFONT, 0, 0); + ::SendMessage(hEdit, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0)); + + LPCTSTR lpszPath = pDlg->m_lpszInitialPath; + TCHAR szTemp[MAX_PATH]; + if(lpszPath==NULL) + { + ::GetCurrentDirectory(MAX_PATH, szTemp ); + lpszPath = szTemp; + } + // WParam is TRUE since you are passing a path. + // It would be FALSE if you were passing a pidl. + ::SendMessage(hwnd,BFFM_SETSELECTION,TRUE, + (LPARAM)lpszPath); + break; + } + case BFFM_SELCHANGED: + { + char szSelection[MAX_PATH]; + if(!::SHGetPathFromIDList((LPITEMIDLIST)lParam, szSelection) || + (szSelection[1] !=':' && szSelection[1] != '\\')) + { + szSelection[0] = '\0'; + ::SendMessage(hwnd, BFFM_ENABLEOK, 0, FALSE); + } + else + { + ::SendMessage(hwnd, BFFM_ENABLEOK, 0, TRUE); + } + ::SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szSelection); + ::SetWindowText(::GetDlgItem(hwnd, IDC_NEW_EDIT_PATH), szSelection); + break; + } + default: + break; + } + return 0; +} + + + +int CPathDialog::DoModal() +{ + + ///////////////////////////////////////////////////////// + TCHAR szPathTemp[MAX_PATH]; + m_bi.lpfn = BrowseCallbackProc; // address of callback function + m_bi.lParam = (LPARAM)this; // pass address of object to callback function + m_bi.pszDisplayName = szPathTemp; + + LPITEMIDLIST pidl; + LPMALLOC pMalloc; + + int iResult=-1; + if(SUCCEEDED(SHGetMalloc(&pMalloc))) + { + m_bGetSuccess = FALSE; + pidl = SHBrowseForFolder(&m_bi); + if (pidl!=NULL) + { +#if defined(_WIN64) && defined(__INTEL_COMPILER) +# pragma warning ( disable : 167) +#endif + // In C++: + pMalloc->Free(pidl); + //In C: + //pMalloc->lpVtbl->Free(pMalloc,pidl); + //pMalloc->lpVtbl->Release(pMalloc); + } + if(m_bGetSuccess) + { + iResult = IDOK; + } + pMalloc->Release(); + } + + if(m_bParentDisabled && (m_pParentWnd!=NULL)) + { + m_pParentWnd->EnableWindow(TRUE); + } + m_bParentDisabled=FALSE; + + return iResult; +} + +BOOL CPathDialog::IsFileNameValid(LPCTSTR /* lpFileName */) +{ + return TRUE; +} + +const TCHAR c_FolderDoesNotExist[] = _T( + "The folder:\n\n" + "%s\n\n" + "does not exist. Do you want the folder to be created?"); +const TCHAR c_szErrInvalidPath[] = _T( + "The folder:" + "\n\n" + "%s\n\n" + "is invalid. Please reenter."); +const TCHAR c_szErrCreatePath[] = _T( + "The folder:" + "\n\n" + "%s" + "\n\ncan not be created. Please double check."); + +//return -1: user break; +//return 0: no error +//return 1: lpPath is invalid +//return 2: can not create lpPath +int CPathDialog::MakeSurePathExists(LPCTSTR lpPath) +{ + CString strMsg; + int iRet = -1; + try + { + //validate path + iRet=Touch(lpPath, TRUE); + if(iRet!=0) + { + throw iRet; + } + + if(_taccess(lpPath, 0)==0) + { + return (int)0; + } + + strMsg.Format(c_FolderDoesNotExist, lpPath); + if(AfxMessageBox(strMsg, MB_YESNO|MB_ICONQUESTION) == IDYES) + { + //create path + iRet=Touch(lpPath, FALSE); + if(iRet!=0) + { + throw iRet; + } + } + return 0; + } + catch(int nErrCode) + { + switch(nErrCode) + { + case 1: + strMsg.Format(c_szErrInvalidPath, lpPath); + break; + case 2: + default: + strMsg.Format(c_szErrCreatePath, lpPath); + break; + } + + AfxMessageBox(strMsg, MB_OK|MB_ICONEXCLAMATION); + } + + return iRet; +} + +//return 0: no error +//return 1: lpPath is invalid +//return 2: lpPath can not be created(bValidate==FALSE) +int CPathDialog::Touch(LPCTSTR lpPath, BOOL bValidate) +{ + if(lpPath==NULL) + { + return 1; + } + + TCHAR szPath[MAX_PATH]; + _tcscpy(szPath, lpPath); + size_t nLen = _tcslen(szPath); + + int i; + if(nLen==3) + { + if(!bValidate) + { + if(_access(szPath, 0)!=0) + { + return 2; + } + } + return 0; + } + + i = 3; + BOOL bLastOne=TRUE; + LPTSTR lpCurrentName; + while(szPath[i]!=0) + { + lpCurrentName = &szPath[i]; + while( (szPath[i]!=0) && (szPath[i]!=_T('\\')) ) + { + i++; + } + + bLastOne =(szPath[i]==0); + szPath[i] = 0; + + if(!bValidate) + { + CreateDirectory(szPath, NULL); + if(_taccess(szPath, 0)!=0) + { + return 2; + } + } + + if(bLastOne) + { + break; //it's done + } + else + { + szPath[i] = _T('\\'); + } + + i++; + } + + return (bLastOne?0:1); +} + +//return 0: ok +//return 1: error +int CPathDialog::ConcatPath(LPTSTR lpRoot, LPCTSTR lpMorePath) +{ + if(lpRoot==NULL) + { + return 1; + } + + size_t nLen = _tcslen(lpRoot); + + if(nLen<3) + { + return 1; + } + + if(lpMorePath==NULL) + { + return 0; + } + + if(nLen==3) + { + _tcscat(lpRoot, lpMorePath); + return 0; + } + + _tcscat(lpRoot, _T("\\")); + _tcscat(lpRoot, lpMorePath); + + return 0; +} diff --git a/CMakeLua/Source/MFCDialog/PathDialog.h b/CMakeLua/Source/MFCDialog/PathDialog.h new file mode 100644 index 0000000..4f9317a --- /dev/null +++ b/CMakeLua/Source/MFCDialog/PathDialog.h @@ -0,0 +1,90 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: PathDialog.h,v $ + Language: C++ + Date: $Date: 2002/10/23 22:03:27 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +////////////////////////////////////////////////////////////////////////// +//PathDialog.h file +// +//Written by Nguyen Tan Hung +////////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_PATHDIALOG_H__0F70BC86_11DB_11D4_B012_0000E8DD8DAA__INCLUDED_) +#define AFX_PATHDIALOG_H__0F70BC86_11DB_11D4_B012_0000E8DD8DAA__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// PathDialog.h : header file +// +#include "shlobj.h" + +class CPathDialog; + +// CPathDialogSub - intercepts messages from child controls +class CPathDialogSub : public CWnd +{ + friend CPathDialog; +public: + CPathDialog* m_pPathDialog; +protected: + afx_msg void OnOK(); // OK button clicked + afx_msg void OnChangeEditPath(); + DECLARE_MESSAGE_MAP() +private: +}; + +///////////////////////////////////////////////////////////////////////////// +// CPathDialog dialog + +class CPathDialog +{ + friend CPathDialogSub; +// Construction +public: + CPathDialog(LPCTSTR lpszCaption=NULL, + LPCTSTR lpszTitle=NULL, + LPCTSTR lpszInitialPath=NULL, + CWnd* pParent = NULL); + + CString GetPathName(); + virtual int DoModal(); + + static int Touch(LPCTSTR lpPath, BOOL bValidate=TRUE); + static int MakeSurePathExists(LPCTSTR lpPath); + static BOOL IsFileNameValid(LPCTSTR lpFileName); + static int ConcatPath(LPTSTR lpRoot, LPCTSTR lpMorePath); + +private: + static int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam, LPARAM pData); + + LPCTSTR m_lpszCaption; + LPCTSTR m_lpszInitialPath; + + TCHAR m_szPathName[MAX_PATH]; + + BROWSEINFO m_bi; + HWND m_hWnd; + CWnd* m_pParentWnd; + BOOL m_bParentDisabled; + BOOL m_bGetSuccess; + + CPathDialogSub m_PathDialogSub; + +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PATHDIALOG_H__0F70BC86_11DB_11D4_B012_0000E8DD8DAA__INCLUDED_) diff --git a/CMakeLua/Source/MFCDialog/PropertyList.cpp b/CMakeLua/Source/MFCDialog/PropertyList.cpp new file mode 100644 index 0000000..e316451 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/PropertyList.cpp @@ -0,0 +1,847 @@ +// PropertyList.cpp : implementation file +// + +#include "stdafx.h" +#include "shellapi.h" +#include "CMakeSetup.h" +#include "CMakeSetupDialog.h" +#include "PathDialog.h" +#include "../cmCacheManager.h" +#include "../cmSystemTools.h" +#include "../cmake.h" +#define IDC_PROPCMBBOX 712 +#define IDC_PROPEDITBOX 713 +#define IDC_PROPBTNCTRL 714 +#define IDC_PROPCHECKBOXCTRL 715 + +///////////////////////////////////////////////////////////////////////////// +// CPropertyList + +CPropertyList::CPropertyList() +{ + m_Dirty = false; + m_ShowAdvanced = false; + m_curSel = -1; +} + +CPropertyList::~CPropertyList() +{ + for(std::set::iterator i = m_PropertyItems.begin(); + i != m_PropertyItems.end(); ++i) + { + delete *i; + } +} + + +BEGIN_MESSAGE_MAP(CPropertyList, CListBox) + //{{AFX_MSG_MAP(CPropertyList) + ON_WM_CREATE() + ON_WM_VSCROLL() + ON_CONTROL_REFLECT(LBN_SELCHANGE, OnSelchange) + ON_WM_LBUTTONUP() + ON_WM_KILLFOCUS() + ON_WM_LBUTTONDOWN() + ON_WM_RBUTTONUP() + ON_WM_MOUSEMOVE() + //}}AFX_MSG_MAP + ON_CBN_KILLFOCUS(IDC_PROPCMBBOX, OnKillfocusCmbBox) + ON_CBN_SELCHANGE(IDC_PROPCMBBOX, OnSelchangeCmbBox) + ON_EN_KILLFOCUS(IDC_PROPEDITBOX, OnKillfocusEditBox) + ON_EN_CHANGE(IDC_PROPEDITBOX, OnChangeEditBox) + ON_BN_CLICKED(IDC_PROPBTNCTRL, OnButton) + ON_BN_CLICKED(IDC_PROPCHECKBOXCTRL, OnCheckBox) + ON_COMMAND(42, OnDelete) + ON_COMMAND(43, OnHelp) + ON_COMMAND(44, OnIgnore) +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CPropertyList message handlers + +BOOL CPropertyList::PreCreateWindow(CREATESTRUCT& cs) +{ + if (!CListBox::PreCreateWindow(cs)) + return FALSE; + + cs.style &= ~(LBS_OWNERDRAWVARIABLE | LBS_SORT); + cs.style |= LBS_OWNERDRAWFIXED; + + m_bTracking = FALSE; + m_nDivider = 0; + m_bDivIsSet = FALSE; + + return TRUE; +} + +void CPropertyList::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct) +{ + lpMeasureItemStruct->itemHeight = 20; //pixels +} + + +void CPropertyList::DrawItem(LPDRAWITEMSTRUCT lpDIS) +{ + CDC dc; + dc.Attach(lpDIS->hDC); + CRect rectFull = lpDIS->rcItem; + CRect rect = rectFull; + if (m_nDivider==0) + m_nDivider = rect.Width() / 2; + rect.left = m_nDivider; + CRect rect2 = rectFull; + rect2.right = rect.left - 1; + UINT nIndex = lpDIS->itemID; + + if (nIndex != (UINT) -1) + { + //get the CPropertyItem for the current row + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(nIndex); + //draw two rectangles, one for each row column + if(pItem->m_NewValue) + { + dc.FillSolidRect(rect2,RGB(255,100, 100)); + } + else + { + dc.FillSolidRect(rect2,RGB(192,192,192)); + } + + dc.DrawEdge(rect2,EDGE_SUNKEN,BF_BOTTOMRIGHT); + dc.DrawEdge(rect,EDGE_SUNKEN,BF_BOTTOM); + + + //write the property name in the first rectangle + dc.SetBkMode(TRANSPARENT); + dc.DrawText(pItem->m_propName,CRect(rect2.left+3,rect2.top+3, + rect2.right-3,rect2.bottom+3), + DT_LEFT | DT_SINGLELINE); + + //write the initial property value in the second rectangle + dc.DrawText(pItem->m_curValue,CRect(rect.left+3,rect.top+3, + rect.right+3,rect.bottom+3), + DT_LEFT | DT_SINGLELINE); + } + dc.Detach(); +} + +int CPropertyList::AddItem(CString txt) +{ + int nIndex = AddString(txt); + return nIndex; +} +// order = 0 sorted +// order = 1 add to top +// order = 2 add to bottom +int CPropertyList::AddPropItem(CPropertyItem* pItem, int order) +{ + if(pItem->m_Advanced && ! m_ShowAdvanced) + { + m_PropertyItems.insert(pItem); + return 0; + } + this->HideControls(); + int nIndex; + if(order) + { + if(order == 1) + { + order = 0; + } + if(order == 2) + { + order = -1; + } + nIndex = InsertString(order, _T("")); + } + else + { + nIndex = AddString(pItem->m_propName); + } + SetItemDataPtr(nIndex,pItem); + m_PropertyItems.insert(pItem); + return nIndex; +} + +void CPropertyList::AddProperty(const char* name, + const char* value, + const char* helpString, + int type, + const char* comboItems, + bool reverseOrder, + bool advanced) +{ + CPropertyItem* pItem = 0; + for(std::set::iterator i = m_PropertyItems.begin(); + i != m_PropertyItems.end(); ++i) + { + CPropertyItem* item = *i; + if(item->m_propName == name) + { + pItem = item; + if(pItem->m_curValue != value) + { + pItem->m_curValue = value; + pItem->m_HelpString = helpString; + InvalidateList(); + } + pItem->m_Advanced = advanced; + return; + } + } + // if it is not found, then create a new one + if(!pItem) + { + pItem = new CPropertyItem(name, value, helpString, type, comboItems); + pItem->m_NewValue = true; + } + pItem->m_Advanced = advanced; + int order = 0; + if(reverseOrder) + { + order = 1; + } + this->AddPropItem(pItem, order); + return; +} + +int CPropertyList::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CListBox::OnCreate(lpCreateStruct) == -1) + return -1; + + m_bDivIsSet = FALSE; + m_nDivider = 0; + m_bTracking = FALSE; + + m_hCursorSize = AfxGetApp()->LoadStandardCursor(IDC_SIZEWE); + m_hCursorArrow = AfxGetApp()->LoadStandardCursor(IDC_ARROW); + + m_SSerif8Font.CreatePointFont(80,_T("MS Sans Serif")); + + return 0; +} + +void CPropertyList::OnSelchange() +{ + CRect rect; + CString lBoxSelText; + + GetItemRect(m_curSel,rect); + rect.left = m_nDivider; + + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + + if (m_btnCtrl) + m_btnCtrl.ShowWindow(SW_HIDE); + if (m_CheckBoxControl) + m_CheckBoxControl.ShowWindow(SW_HIDE); + + if (pItem->m_nItemType==CPropertyList::COMBO) + { + //display the combo box. If the combo box has already been + //created then simply move it to the new location, else create it + m_nLastBox = 0; + if (m_cmbBox) + m_cmbBox.MoveWindow(rect); + else + { + rect.bottom += 100; + m_cmbBox.Create(CBS_DROPDOWNLIST + | CBS_NOINTEGRALHEIGHT | WS_VISIBLE + | WS_CHILD | WS_BORDER, + rect,this,IDC_PROPCMBBOX); + m_cmbBox.SetFont(&m_SSerif8Font); + } + + //add the choices for this particular property + CString cmbItems = pItem->m_cmbItems; + lBoxSelText = pItem->m_curValue; + + m_cmbBox.ResetContent(); + int i,i2; + i=0; + while ((i2=cmbItems.Find('|',i)) != -1) + { + m_cmbBox.AddString(cmbItems.Mid(i,i2-i)); + i=i2+1; + } + if(i != 0) + m_cmbBox.AddString(cmbItems.Mid(i)); + + m_cmbBox.ShowWindow(SW_SHOW); + m_cmbBox.SetFocus(); + + //jump to the property's current value in the combo box + int j = m_cmbBox.FindStringExact(0,lBoxSelText); + if (j != CB_ERR) + m_cmbBox.SetCurSel(j); + else + m_cmbBox.SetCurSel(0); + } + else if (pItem->m_nItemType==CPropertyList::EDIT) + { + //display edit box + m_nLastBox = 1; + m_prevSel = m_curSel; + rect.bottom -= 3; + if (m_editBox) + m_editBox.MoveWindow(rect); + else + { + m_editBox.Create(ES_LEFT | ES_AUTOHSCROLL | WS_VISIBLE + | WS_CHILD | WS_BORDER, + rect,this,IDC_PROPEDITBOX); + m_editBox.SetFont(&m_SSerif8Font); + } + + lBoxSelText = pItem->m_curValue; + + m_editBox.ShowWindow(SW_SHOW); + m_editBox.SetFocus(); + //set the text in the edit box to the property's current value + m_editBox.SetWindowText(lBoxSelText); + } + else if (pItem->m_nItemType == CPropertyList::CHECKBOX) + { + rect.bottom -= 3; + if (m_CheckBoxControl) + m_CheckBoxControl.MoveWindow(rect); + else + { + m_CheckBoxControl.Create("check",BS_CHECKBOX + | BM_SETCHECK |BS_LEFTTEXT + | WS_VISIBLE | WS_CHILD, + rect,this,IDC_PROPCHECKBOXCTRL); + m_CheckBoxControl.SetFont(&m_SSerif8Font); + } + + lBoxSelText = pItem->m_curValue; + + m_CheckBoxControl.ShowWindow(SW_SHOW); + m_CheckBoxControl.SetFocus(); + //set the text in the edit box to the property's current value + if(lBoxSelText == "ON") + { + m_CheckBoxControl.SetCheck(1); + } + else + { + m_CheckBoxControl.SetCheck(0); + } + } + + else + { + DisplayButton(rect); + m_nLastBox = 1; + m_prevSel = m_curSel; + rect.bottom -= 3; + rect.right -= 25; + if (m_editBox) + { + m_editBox.MoveWindow(rect); + } + else + { + m_editBox.Create(ES_LEFT | ES_AUTOHSCROLL | WS_VISIBLE + | WS_CHILD | WS_BORDER, + rect,this,IDC_PROPEDITBOX); + m_editBox.SetFont(&m_SSerif8Font); + } + + lBoxSelText = pItem->m_curValue; + + m_editBox.ShowWindow(SW_SHOW); + m_editBox.SetFocus(); + //set the text in the edit box to the property's current value + m_editBox.SetWindowText(lBoxSelText); + } +} + +void CPropertyList::DisplayButton(CRect region) +{ + //displays a button if the property is a file/color/font chooser + m_nLastBox = 2; + m_prevSel = m_curSel; + + if (region.Width() > 25) + region.left = region.right - 25; + region.bottom -= 3; + + if (m_btnCtrl) + m_btnCtrl.MoveWindow(region); + else + { + m_btnCtrl.Create("...",BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, + region,this,IDC_PROPBTNCTRL); + m_btnCtrl.SetFont(&m_SSerif8Font); + } + + m_btnCtrl.ShowWindow(SW_SHOW); + m_btnCtrl.SetFocus(); +} + +void CPropertyList::OnKillFocus(CWnd* pNewWnd) +{ + //m_btnCtrl.ShowWindow(SW_HIDE); + + CListBox::OnKillFocus(pNewWnd); +} + +void CPropertyList::OnKillfocusCmbBox() +{ + m_cmbBox.ShowWindow(SW_HIDE); + + Invalidate(); +} + +void CPropertyList::OnKillfocusEditBox() +{ + CString newStr; + m_editBox.ShowWindow(SW_HIDE); + + Invalidate(); +} + +void CPropertyList::OnSelchangeCmbBox() +{ + CString selStr; + if (m_cmbBox) + { + m_cmbBox.GetLBText(m_cmbBox.GetCurSel(),selStr); + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + pItem->m_curValue = selStr; + m_Dirty = true; + } +} + +void CPropertyList::OnChangeEditBox() +{ + CString newStr; + m_editBox.GetWindowText(newStr); + + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + if(pItem->m_curValue != newStr) + { + pItem->m_curValue = newStr; + m_Dirty = true; + } +} + +void CPropertyList::HideControls() +{ + if(m_editBox) + { + m_editBox.ShowWindow(SW_HIDE); + } + if(m_cmbBox) + { + m_cmbBox.ShowWindow(SW_HIDE); + } + if(m_CheckBoxControl) + { + m_CheckBoxControl.ShowWindow(SW_HIDE); + } + if(m_btnCtrl) + { + m_btnCtrl.ShowWindow(SW_HIDE); + } +} + +void CPropertyList::OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar ) +{ + this->HideControls(); + CListBox::OnVScroll(nSBCode, nPos, pScrollBar); +} + +void CPropertyList::OnCheckBox() +{ + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + if(m_CheckBoxControl.GetCheck()) + { + pItem->m_curValue = "ON"; + } + else + { + pItem->m_curValue = "OFF"; + } + m_Dirty = true; +} + + +void CPropertyList::OnButton() +{ + if(m_PropertyItems.size() == 0) + { + return; + } + + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + + // The dialogs might change the working directory. Save it. + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + + //display the appropriate common dialog depending on what type + //of chooser is associated with the property + + if (pItem->m_nItemType == CPropertyList::FILE) + { + CString SelectedFile; + CString Filter("All Files (*.*)||"); + + CFileDialog FileDlg(TRUE, NULL, NULL, NULL, + Filter); + CString initialDir; + CString currPath = pItem->m_curValue; + if (currPath.Right(9) == "-NOTFOUND" || currPath == "NOTFOUND") + { + currPath = ""; + } + if (currPath.GetLength() > 0) + { + int endSlash = currPath.ReverseFind('\\'); + if(endSlash == -1) + { + endSlash = currPath.ReverseFind('/'); + } + initialDir = currPath.Left(endSlash); + } + initialDir.Replace("/", "\\"); + FileDlg.m_ofn.lpstrTitle = "Select file"; + if (currPath.GetLength() > 0) + FileDlg.m_ofn.lpstrInitialDir = initialDir; + + if(IDOK == FileDlg.DoModal()) + { + SelectedFile = FileDlg.GetPathName(); + + m_btnCtrl.ShowWindow(SW_HIDE); + std::string path = SelectedFile; + cmSystemTools::ConvertToUnixSlashes(path); + pItem->m_curValue = path.c_str(); + m_Dirty = true; + InvalidateList(); + } + } + else if (pItem->m_nItemType == CPropertyList::PATH) + { + CString initialDir = pItem->m_curValue; + // convert back to windos style path + initialDir.Replace("/", "\\"); + CString title = "Setting Cache Value: "; + title += pItem->m_propName; + CPathDialog dlg("Select Path", title, initialDir); + if(dlg.DoModal()==IDOK) + { + CString SelectedFile = dlg.GetPathName(); + m_btnCtrl.ShowWindow(SW_HIDE); + std::string path = SelectedFile; + cmSystemTools::ConvertToUnixSlashes(path); + pItem->m_curValue = path.c_str(); + m_Dirty = true; + InvalidateList(); + } + } + + cmSystemTools::ChangeDirectory(cwd.c_str()); +} + +void CPropertyList::OnLButtonUp(UINT nFlags, CPoint point) +{ + if (m_bTracking) + { + //if columns were being resized then this indicates + //that mouse is up so resizing is done. Need to redraw + //columns to reflect their new widths. + + m_bTracking = FALSE; + //if mouse was captured then release it + if (GetCapture()==this) + ::ReleaseCapture(); + + ::ClipCursor(NULL); + + CClientDC dc(this); + InvertLine(&dc,CPoint(point.x,m_nDivTop),CPoint(point.x,m_nDivBtm)); + //set the divider position to the new value + m_nDivider = point.x; + + //redraw + Invalidate(); + } + else + { + BOOL loc; + int i = ItemFromPoint(point,loc); + m_curSel = i; + CListBox::OnLButtonUp(nFlags, point); + } +} + +void CPropertyList::OnLButtonDown(UINT nFlags, CPoint point) +{ + if ((point.x>=m_nDivider-5) && (point.x<=m_nDivider+5)) + { + //if mouse clicked on divider line, then start resizing + + ::SetCursor(m_hCursorSize); + + CRect windowRect; + GetWindowRect(windowRect); + windowRect.left += 10; windowRect.right -= 10; + //do not let mouse leave the list box boundary + ::ClipCursor(windowRect); + + if (m_cmbBox) + m_cmbBox.ShowWindow(SW_HIDE); + if (m_editBox) + m_editBox.ShowWindow(SW_HIDE); + + CRect clientRect; + GetClientRect(clientRect); + + m_bTracking = TRUE; + m_nDivTop = clientRect.top; + m_nDivBtm = clientRect.bottom; + m_nOldDivX = point.x; + + CClientDC dc(this); + InvertLine(&dc,CPoint(m_nOldDivX,m_nDivTop),CPoint(m_nOldDivX,m_nDivBtm)); + + //capture the mouse + SetCapture(); + } + else + { + m_bTracking = FALSE; + CListBox::OnLButtonDown(nFlags, point); + } +} + +void CPropertyList::OnMouseMove(UINT nFlags, CPoint point) +{ + if (m_bTracking) + { + //move divider line to the mouse pos. if columns are + //currently being resized + CClientDC dc(this); + //remove old divider line + InvertLine(&dc,CPoint(m_nOldDivX,m_nDivTop),CPoint(m_nOldDivX,m_nDivBtm)); + //draw new divider line + InvertLine(&dc,CPoint(point.x,m_nDivTop),CPoint(point.x,m_nDivBtm)); + m_nOldDivX = point.x; + } + else if ((point.x >= m_nDivider-5) && (point.x <= m_nDivider+5)) + //set the cursor to a sizing cursor if the cursor is over the row divider + ::SetCursor(m_hCursorSize); + else + { + BOOL loc; + int curSel = ItemFromPoint(point,loc); + if(!loc && curSel < 65535) + { + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(curSel); + m_CMakeSetupDialog->SetDlgItemText(IDC_PROGRESS, pItem->m_HelpString); + } + CListBox::OnMouseMove(nFlags, point); + } + +} + +void CPropertyList::InvertLine(CDC* pDC,CPoint ptFrom,CPoint ptTo) +{ + int nOldMode = pDC->SetROP2(R2_NOT); + + pDC->MoveTo(ptFrom); + pDC->LineTo(ptTo); + + pDC->SetROP2(nOldMode); +} + +void CPropertyList::PreSubclassWindow() +{ + m_bDivIsSet = FALSE; + m_nDivider = 0; + m_bTracking = FALSE; + m_curSel = 1; + + m_hCursorSize = AfxGetApp()->LoadStandardCursor(IDC_SIZEWE); + m_hCursorArrow = AfxGetApp()->LoadStandardCursor(IDC_ARROW); + + m_SSerif8Font.CreatePointFont(80,_T("MS Sans Serif")); +} + +CPropertyItem* CPropertyList::GetItem(int index) +{ + return (CPropertyItem*)GetItemDataPtr(index); +} + +void CPropertyList::OnRButtonUp( UINT /* nFlags */, CPoint point ) +{ + CMenu menu; + CRect rect; + this->GetWindowRect(&rect); + BOOL loc; + m_curSel = ItemFromPoint(point,loc); + menu.CreatePopupMenu(); + menu.AppendMenu(MF_STRING | MF_ENABLED, 44, "Ignore Cache Entry"); + menu.AppendMenu(MF_STRING | MF_ENABLED, 42, "Delete Cache Entry"); + menu.AppendMenu(MF_STRING | MF_ENABLED, 43, "Help For Cache Entry"); + menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, + rect.TopLeft().x + point.x, + rect.TopLeft().y + point.y, this, NULL); +} + +void CPropertyList::RemoveProperty(const char* name) +{ + this->HideControls(); + for(int i =0; i < this->GetCount(); ++i) + { + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(i); + if(pItem->m_propName == name) + { + m_PropertyItems.erase(pItem); + delete pItem; + this->DeleteString(i); + return; + } + } +} + +void CPropertyList::OnIgnore() +{ + if(m_curSel == -1 || this->GetCount() <= 0) + { + return; + } + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + pItem->m_curValue = "IGNORE"; + InvalidateList(); +} + + + +void CPropertyList::OnDelete() +{ + if(m_curSel == -1 || this->GetCount() <= 0) + { + return; + } + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + m_CMakeSetupDialog->GetCMakeInstance()->GetCacheManager()->RemoveCacheEntry(pItem->m_propName); + m_PropertyItems.erase(pItem); + delete pItem; + this->DeleteString(m_curSel); + this->HideControls(); + this->SetTopIndex(0); + InvalidateList(); + m_curSel += 1; + if(m_curSel > this->GetCount()) + { + m_curSel = this->GetCount(); + } + this->SetCurSel(m_curSel); +} + +void CPropertyList::OnHelp() +{ + if(m_curSel == -1 || this->GetCount() <= 0) + { + return; + } + CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); + MessageBox(pItem->m_HelpString, pItem->m_propName, MB_OK|MB_ICONINFORMATION); +} + +void CPropertyList::RemoveAll() +{ + int c = this->GetCount(); + for(int i =0; i < c; ++i) + { + this->DeleteString(0); + } + for(std::set::iterator ii = m_PropertyItems.begin(); + ii != m_PropertyItems.end(); ++ii) + { + delete *ii; + } + m_PropertyItems.clear(); + m_Dirty = false; + this->HideControls(); + InvalidateList(); +} + +void CPropertyList::InvalidateList() +{ + Invalidate(); + m_Dirty = true; +} + +void CPropertyList::ShowAdvanced() +{ + this->SetRedraw(FALSE); + this->ResetContent(); + m_ShowAdvanced = true; + std::map sortProps; + for(std::set::iterator i = m_PropertyItems.begin(); + i != m_PropertyItems.end(); ++i) + { + sortProps[(const char*)(*i)->m_propName] = *i; + } + for(std::map::iterator i = sortProps.begin(); + i != sortProps.end(); ++i) + { + CPropertyItem* item = i->second; + if(item->m_NewValue) + { + this->AddPropItem(item, 2); + } + } + for(std::map::iterator i = sortProps.begin(); + i != sortProps.end(); ++i) + { + CPropertyItem* item = i->second; + if(!item->m_NewValue) + { + this->AddPropItem(item, 2); + } + } + this->SetRedraw(TRUE); + this->InvalidateList(); +} + + +void CPropertyList::HideAdvanced() +{ + this->SetRedraw(FALSE); + this->ResetContent(); + m_ShowAdvanced = false; + std::map sortProps; + for(std::set::iterator i = m_PropertyItems.begin(); + i != m_PropertyItems.end(); ++i) + { + sortProps[(const char*)(*i)->m_propName] = *i; + } + for(std::map::iterator i = sortProps.begin(); + i != sortProps.end(); ++i) + { + CPropertyItem* item = i->second; + if(item->m_NewValue && !item->m_Advanced) + { + this->AddPropItem(item, 2); + } + } + for(std::map::iterator i = sortProps.begin(); + i != sortProps.end(); ++i) + { + CPropertyItem* item = i->second; + if(!item->m_Advanced && !item->m_NewValue) + { + this->AddPropItem(item, 2); + } + } + this->SetRedraw(TRUE); + this->InvalidateList(); +} + diff --git a/CMakeLua/Source/MFCDialog/PropertyList.h b/CMakeLua/Source/MFCDialog/PropertyList.h new file mode 100644 index 0000000..0450258 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/PropertyList.h @@ -0,0 +1,179 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: PropertyList.h,v $ + Language: C++ + Date: $Date: 2004/01/02 22:24:19 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef CPROPERTYLIST_H +#define CPROPERTYLIST_H + + + +#include "../cmStandardIncludes.h" +class CMakeSetupDialog; + +///////////////////////////////////////////////////////////////////////////// +//CPropertyList Items +class CPropertyItem +{ +// Attributes +public: + CString m_HelpString; + CString m_propName; + CString m_curValue; + int m_nItemType; + CString m_cmbItems; + bool m_NewValue; + bool m_Removed; + bool m_Advanced; + +public: + CPropertyItem(CString propName, CString curValue, + CString helpString, + int nItemType, CString cmbItems) + { + m_NewValue = true; + m_HelpString = helpString; + m_Removed = false; + m_propName = propName; + m_curValue = curValue; + m_nItemType = nItemType; + m_cmbItems = cmbItems; + m_Advanced = false; + } +}; + +///////////////////////////////////////////////////////////////////////////// +// CPropertyList window + +class CPropertyList : public CListBox +{ +// Construction +public: + enum ItemType + { + COMBO = 0, + EDIT, + COLOR, + FONT, + FILE, + CHECKBOX, + PATH + }; + CPropertyList(); + +// Attributes +public: + CMakeSetupDialog *m_CMakeSetupDialog; + +// Operations +public: + bool GetShowAdvanced() {return m_ShowAdvanced;} + bool IsDirty() { return m_Dirty; } + void ClearDirty() { m_Dirty = false; } + + int AddItem(CString txt); + void AddProperty(const char* name, + const char* value, + const char* helpString, + int type, + const char* comboItems, + bool reverseOrder, + bool advanced); + void RemoveProperty(const char* name); + void HideControls(); + void ShowAdvanced(); + void HideAdvanced(); + std::set GetItems() + { + return m_PropertyItems; + } + void RemoveAll(); + CPropertyItem* GetItem(int index); +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CPropertyList) +public: + virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); +protected: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual void PreSubclassWindow(); + //}}AFX_VIRTUAL + +// Implementation +public: + virtual ~CPropertyList(); + + // Generated message map functions +protected: + //{{AFX_MSG(CPropertyList) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSelchange(); + afx_msg void OnLButtonUp(UINT nFlags, CPoint point); + afx_msg void OnKillFocus(CWnd* pNewWnd); + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg void OnMouseMove(UINT nFlags, CPoint point); + afx_msg void OnRButtonUp( UINT nFlags, CPoint point ); + //}}AFX_MSG + afx_msg void OnKillfocusCmbBox(); + afx_msg void OnSelchangeCmbBox(); + afx_msg void OnKillfocusEditBox(); + afx_msg void OnChangeEditBox(); + afx_msg void OnButton(); + afx_msg void OnIgnore(); + afx_msg void OnDelete(); + afx_msg void OnHelp(); + afx_msg void OnCheckBox(); + afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar ); + + + DECLARE_MESSAGE_MAP() + + void InvertLine(CDC* pDC,CPoint ptFrom,CPoint ptTo); + void DisplayButton(CRect region); +// order = 0 sorted +// order = 1 add to top +// order = 2 add to bottom + int AddPropItem(CPropertyItem* pItem, int order); + void InvalidateList(); + + CComboBox m_cmbBox; + CEdit m_editBox; + CButton m_btnCtrl; + CButton m_CheckBoxControl; + + CFont m_SSerif8Font; + + bool m_Dirty; + int m_curSel; + int m_prevSel; + int m_nDivider; + int m_nDivTop; + int m_nDivBtm; + int m_nOldDivX; + int m_nLastBox; + BOOL m_bTracking; + BOOL m_bDivIsSet; + HCURSOR m_hCursorArrow; + HCURSOR m_hCursorSize; + bool m_ShowAdvanced; + std::set m_PropertyItems; +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PROPERTYLIST_H__74205380_1B56_11D4_BC48_00105AA2186F__INCLUDED_) diff --git a/CMakeLua/Source/MFCDialog/StdAfx.cpp b/CMakeLua/Source/MFCDialog/StdAfx.cpp new file mode 100644 index 0000000..4ec72a4 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// pcbuilderdialog.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/CMakeLua/Source/MFCDialog/StdAfx.h b/CMakeLua/Source/MFCDialog/StdAfx.h new file mode 100644 index 0000000..55f45d3 --- /dev/null +++ b/CMakeLua/Source/MFCDialog/StdAfx.h @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: StdAfx.h,v $ + Language: C++ + Date: $Date: 2007/09/17 19:20:55 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__AC17A6F8_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_) +#define AFX_STDAFX_H__AC17A6F8_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_ +#define _WIN32_WINNT 0x0400 +#define _WIN32_IE 0x0400 + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include // MFC core and standard components +#include // MFC extensions +#include // MFC Automation classes +#include // MFC support for Internet Explorer 4 Common Controls +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__AC17A6F8_4634_11D4_8F21_00A0CC33FCD3__INCLUDED_) diff --git a/CMakeLua/Source/MFCDialog/res/CMakeSetupDialog.ico b/CMakeLua/Source/MFCDialog/res/CMakeSetupDialog.ico new file mode 100644 index 0000000000000000000000000000000000000000..e13bb156f4e0bd05a4c5df7de920ebc681e82799 GIT binary patch literal 24542 zcwX(BO^6)F6@cF`l1EvDN6JCDD9lDkV2Q9cv!=a1WjV z`&R;gdv*ZNzW*M6_oweL0s=yaCBl-3%>e%kur9#5fa;hyB*gjL;f1`jb%h)zRf;imz2hG>My5+VyfEyxifM~EC@M0HG@D&z=}Aw-4{8R*o7$Ppq# zhztqFV)#Elg&0TtB5B7ZaC*$Hsb$ zA7T6mc?gqLF5xt9<1496Y@e_2$upz^P z!jP^JUPneT$TuAm!cX82aP#I(xO3+Y3a_zqH99Ctr7!T>BWd;GICo#rnBJ*xG{l zE^T$s9v&WE!ELJOe*W+tZqjbrj^ihddvbSL@oTwTY{$K9x2X6c+by^DRiH$|DWM47flnf3YU|6hy^}K%aFCw?#{u?*CH(b)~-uQ~Yhi?Z?xp?86*uVGPFY7jbB^Y`}G>CWzhPtv{GdmbIcx5eIr##OoBc+bc9+vLH+ zM&sZ>?$>`0kOTVda&Vybo4*It0r}>cgZPQsZ~dMS`{TWXdyeMHLA>`{S99ec{>If@ zb8ytzTsi1Dn=1!jxSMAVI_~C~gN~=UbkOlMmkv6<=BWd3bKzjtK6H!`IQQ9+6`b-qYcB$0R z5tTY)`&1f?jj1#ln^0*nHl@;LY=(vPDKw*g3JoD|f!0s?f%b;k^iwwdlubWn(@*&? z2vn8yaA&v2A=lD=itK|F3Jzzt)8hws%MQk#koM~mN4$=nloA>#qiko#4{|*#O?ED9 z+g%Cz1?p~a@x1JGDfc2k?8rKEZTA)UZ)m%}nDysu_i2DwKTX{SZ>}Ed;_63br>Xn! zpmAUvzik~q5WSX9g=^~nnaBJ3SvSZv?++dvYOJ`E7>iG!`<{rxcP3JSSb5Y z@_4U%D}X${xSyz`+`SRtQ3dyUfMEsqdVpaS_ga8q757?zUM2S`K(CT}6~H?_u|*rN zRB)dK@Q+_?$;LC4+{*x!-EYb9PDS@3K;ihu7Cs)T?4AcG9v|5Pac>Uyc>LXx@slm3 z<0(tL^R??1K3EccA+E>N523kW(sfHW)PAmMo>bB4` zsr&kQmYT+?9T3CMY@B)mlx)VSn{n!9oVppOZe(k#Y(VUmYgzkB17%CzKiA6I4?Le7 zys|?hV{Pse=svQtlox5m_MTr@J*M1;1(6F>zA7wg){+L}40 zu4D0KP@zS5vpw&tz7zPw2<-?j0DPCh4DAY^0yrQS234a%`JAZIl;N(@HPR!c z>!kOUZjc@;-AvDr)Gg9erQ4)uO7}@KrMco0#9Y^e9!XsndSB{>&||5aLQkY_2|bm% zE%Z$4KJyFB6W_vuS*v;Cv!G-%PrR8Y-pmtk=7~4*76`0EH244f@`tMz6#y=m&LPh! zJLk{pw>}J38h}>AePs9#%V)u>idf>-GM`)+l+2P>6*;B-k>x+kuZNpo)atyJ{o*!AWG=YTz?F4uL1D%WgzB>W!Hgfx~jPFYzyN#TW*Bto11msnA`kw>en?M@C z<$o@GZvx^ra=jkr!uKb@ZzG5QIr04o&{cLkzH{OiB@q85?|*Lmq6FffFOOfCz$)+y z63`b8ER0`}K+gX{`2GZP{ujdcC!j5CSO(vlfbD-ld~X7l|Ap~=3H)kB_`U=>hq^3* z?@7S)zXZM~0mJ`N`0fN&hwn~ch4`)njK_CLd{+Xx|E2LA3F!Wp#&;y3J-#cz&nKYy zUjcqT0p))s__+ksl0Ur(U74tylF8|4S)YLRczO zwHBl`QFc?aTT{0!*N@t^Tt{l#a$Tuq%XOu;E!UUYwp?dw+s$lYtZBEjBz3!;u0OTy zK4Z*f)7je1+j3p1ZOiqkwk_AG+O}M;YTGUCD(QBc>{;IKlg;urH?x(!nJw3~+O}NZ zYTI(1t8L5muD0D0_SCl9!k*c7U)apHQ!`r`oZ2;Mk4(ER?S0d3NPBGBO=(X|yCv + +static const int NumTypes = 4; +static const QString TypeStrings[NumTypes] = + { "BOOL", "PATH", "FILEPATH", "STRING" }; +static const QCMakeCacheProperty::PropertyType Types[NumTypes] = + { QCMakeCacheProperty::BOOL, QCMakeCacheProperty::PATH, + QCMakeCacheProperty::FILEPATH, QCMakeCacheProperty::STRING}; + +AddCacheEntry::AddCacheEntry(QWidget* p) + : QWidget(p) +{ + this->setupUi(this); + for(int i=0; iType->addItem(TypeStrings[i]); + } + QWidget* cb = new QCheckBox(); + QWidget* path = new QCMakeCachePathEditor(); + QWidget* filepath = new QCMakeCacheFilePathEditor(); + QWidget* string = new QLineEdit(); + this->StackedWidget->addWidget(cb); + this->StackedWidget->addWidget(path); + this->StackedWidget->addWidget(filepath); + this->StackedWidget->addWidget(string); + this->setTabOrder(this->Name, this->Type); + this->setTabOrder(this->Type, cb); + this->setTabOrder(cb, path); + this->setTabOrder(path, filepath); + this->setTabOrder(filepath, string); + this->setTabOrder(string, this->Description); +} + +QString AddCacheEntry::name() const +{ + return this->Name->text(); +} + +QVariant AddCacheEntry::value() const +{ + QWidget* w = this->StackedWidget->currentWidget(); + if(qobject_cast(w)) + { + return static_cast(w)->text(); + } + else if(qobject_cast(w)) + { + return static_cast(w)->isChecked(); + } + return QVariant(); +} + +QString AddCacheEntry::description() const +{ + return this->Description->text(); +} + +QCMakeCacheProperty::PropertyType AddCacheEntry::type() const +{ + int idx = this->Type->currentIndex(); + if(idx >= 0 && idx < NumTypes) + { + return Types[idx]; + } + return QCMakeCacheProperty::BOOL; +} + + diff --git a/CMakeLua/Source/QtDialog/AddCacheEntry.h b/CMakeLua/Source/QtDialog/AddCacheEntry.h new file mode 100644 index 0000000..28777b5 --- /dev/null +++ b/CMakeLua/Source/QtDialog/AddCacheEntry.h @@ -0,0 +1,40 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: AddCacheEntry.h,v $ + Language: C++ + Date: $Date: 2007/11/13 04:59:25 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef AddCacheEntry_h +#define AddCacheEntry_h + +#include +#include + +#include "QCMake.h" +#include "ui_AddCacheEntry.h" + +class AddCacheEntry : public QWidget, public Ui::AddCacheEntry +{ + Q_OBJECT +public: + AddCacheEntry(QWidget* p); + + QString name() const; + QVariant value() const; + QString description() const; + QCMakeCacheProperty::PropertyType type() const; +}; + +#endif + diff --git a/CMakeLua/Source/QtDialog/AddCacheEntry.ui b/CMakeLua/Source/QtDialog/AddCacheEntry.ui new file mode 100644 index 0000000..3ed9b49 --- /dev/null +++ b/CMakeLua/Source/QtDialog/AddCacheEntry.ui @@ -0,0 +1,97 @@ + + AddCacheEntry + + + + 0 + 0 + 380 + 158 + + + + Form + + + + 0 + + + + + Name: + + + + + + + + + + Type: + + + + + + + + + + + Value: + + + + + + + 0 + + + + + + + Description: + + + + + + + + + + + QCMakeCachePathEditor + QLineEdit +
    QCMakeCacheView.h
    +
    + + QCMakeCacheFilePathEditor + QLineEdit +
    QCMakeCacheView.h
    +
    +
    + + + + Type + currentIndexChanged(int) + StackedWidget + setCurrentIndex(int) + + + 229 + 34 + + + 287 + 65 + + + + +
    diff --git a/CMakeLua/Source/QtDialog/CMakeLists.txt b/CMakeLua/Source/QtDialog/CMakeLists.txt new file mode 100644 index 0000000..87e6c1a --- /dev/null +++ b/CMakeLua/Source/QtDialog/CMakeLists.txt @@ -0,0 +1,54 @@ + +SET(QT_MIN_VERSION "4.2.0") +FIND_PACKAGE(Qt4 REQUIRED) + +IF(NOT QT4_FOUND) + MESSAGE(SEND_ERROR "Failed to find Qt 4.3 or greater.") +ELSE(NOT QT4_FOUND) + + INCLUDE(${QT_USE_FILE}) + + SET(SRCS + AddCacheEntry.cxx + AddCacheEntry.h + CMakeSetup.cxx + CMakeSetupDialog.cxx + CMakeSetupDialog.h + QCMake.cxx + QCMake.h + QCMakeCacheView.cxx + QCMakeCacheView.h + ) + QT4_WRAP_UI(UI_SRCS + CMakeSetupDialog.ui + AddCacheEntry.ui + ) + QT4_WRAP_CPP(MOC_SRCS + AddCacheEntry.h + CMakeSetupDialog.h + QCMake.h + QCMakeCacheView.h + ) + QT4_ADD_RESOURCES(RC_SRCS CMakeSetup.qrc) + + SET(SRCS ${SRCS} ${UI_SRCS} ${MOC_SRCS} ${RC_SRCS}) + IF(Q_WS_WIN) + SET(SRCS ${SRCS} CMakeSetup.rc) + ENDIF(Q_WS_WIN) + IF(Q_WS_MAC) + SET(SRCS ${SRCS} CMakeSetup.icns) + SET(MACOSX_BUNDLE_ICON_FILE CMakeSetup.icns) + SET_SOURCE_FILES_PROPERTIES(CMakeSetup.icns PROPERTIES + MACOSX_PACKAGE_LOCATION Resources) + ENDIF(Q_WS_MAC) + + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) + + ADD_EXECUTABLE(QtDialog WIN32 MACOSX_BUNDLE ${SRCS}) + TARGET_LINK_LIBRARIES(QtDialog CMakeLib ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES}) + + INSTALL_TARGETS(/bin QtDialog) + +ENDIF(NOT QT4_FOUND) + diff --git a/CMakeLua/Source/QtDialog/CMakeSetup.cxx b/CMakeLua/Source/QtDialog/CMakeSetup.cxx new file mode 100644 index 0000000..fe8eeee --- /dev/null +++ b/CMakeLua/Source/QtDialog/CMakeSetup.cxx @@ -0,0 +1,134 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: CMakeSetup.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 16:48:00 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "QCMake.h" // include to disable MS warnings +#include +#include +#include +#include + +#include "CMakeSetupDialog.h" +#include "cmDocumentation.h" +#include "cmSystemTools.h" +#include "cmake.h" +#include "cmVersion.h" + +//---------------------------------------------------------------------------- +static const char * cmDocumentationName[][3] = +{ + {0, + " CMakeSetup - CMake GUI.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationUsage[][3] = +{ + {0, + " CMakeSetup [options]\n" + " CMakeSetup [options] \n" + " CMakeSetup [options] ", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationDescription[][3] = +{ + {0, + "The \"CMakeSetup\" executable is the CMake GUI. Project " + "configuration settings may be specified interactively. " + "Brief instructions are provided at the bottom of the " + "window when the program is running.", 0}, + CMAKE_STANDARD_INTRODUCTION, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationOptions[][3] = +{ + {0,0,0} +}; + +int main(int argc, char** argv) +{ + cmSystemTools::FindExecutableDirectory(argv[0]); + QApplication app(argc, argv); + + QTranslator translator; + QString transfile = QString("cmake_%1").arg(QLocale::system().name()); + translator.load(transfile, app.applicationDirPath()); + app.installTranslator(&translator); + + app.setApplicationName("CMakeSetup"); + app.setOrganizationName("Kitware"); + app.setWindowIcon(QIcon(":/Icons/CMakeSetup.png")); + + cmDocumentation doc; + if(app.arguments().size() > 1 && + doc.CheckOptions(app.argc(), app.argv())) + { + // Construct and print requested documentation. + cmake hcm; + hcm.AddCMakePaths(); + doc.SetCMakeRoot(hcm.GetCacheDefinition("CMAKE_ROOT")); + std::vector commands; + std::vector compatCommands; + std::map propDocs; + + std::vector generators; + hcm.GetCommandDocumentation(commands, true, false); + hcm.GetCommandDocumentation(compatCommands, false, true); + hcm.GetGeneratorDocumentation(generators); + hcm.GetPropertiesDocumentation(propDocs); + doc.SetName("cmake"); + doc.SetSection("Name",cmDocumentationName); + doc.SetSection("Usage",cmDocumentationUsage); + doc.SetSection("Description",cmDocumentationDescription); + doc.AppendSection("Generators",generators); + doc.PrependSection("Options",cmDocumentationOptions); + doc.SetSection("Commands",commands); + doc.SetSection("Compatilbility Commands", compatCommands); + doc.SetSections(propDocs); + + return (doc.PrintRequestedDocumentation(std::cout)? 0:1); + } + + CMakeSetupDialog dialog; + QString title = QString("CMake %1"); + title = title.arg(cmVersion::GetCMakeVersion().c_str()); + dialog.setWindowTitle(title); + dialog.show(); + + // for now: args support specifying build and/or source directory + QStringList args = app.arguments(); + if(args.count() == 2) + { + QFileInfo buildFileInfo(args[1], "CMakeCache.txt"); + QFileInfo srcFileInfo(args[1], "CMakeLists.txt"); + if(buildFileInfo.exists()) + { + dialog.setBinaryDirectory(buildFileInfo.absolutePath()); + } + else if(srcFileInfo.exists()) + { + dialog.setSourceDirectory(srcFileInfo.absolutePath()); + dialog.setBinaryDirectory(QDir::currentPath()); + } + } + + return app.exec(); +} + diff --git a/CMakeLua/Source/QtDialog/CMakeSetup.icns b/CMakeLua/Source/QtDialog/CMakeSetup.icns new file mode 100644 index 0000000000000000000000000000000000000000..8808dd62db64540292417e8865bdf627aaf8792e GIT binary patch literal 33452 zcwX&WdvsLiasT!yiRBR>?y*x^_2h95|6sRVoIr>XvEx_m#B~p8TGG=xPP;a-NqkJ= zI(8CvC9R~@>Vc4ibkP%#03$GXC1F4YNk%;NVQe^#iaD-vl!T-Xwzp0k?8EWx%s1b6 z_wH(?)k?d|Kc1YuzISHsZ)Rua-kqQ2toi;A*D+SOd(HRPeStA{4`Vi;W56+xb1CQ2 zocHIvpMN#~YQeRFYwJH*|A_&T%)VxwwitYd>YO&6mpdI1FE@fthpus>%;}0~@Xtu8 z)1~7HFLAPnPjl!7j|7}d7pDd<2CZLn;%THvr~%4nFkUF!?fL***?7b+Y<92C{b2Mt z?SSrQHcj^#P9AYO^#F5gK5iJ!NKkWl0WTC`1}3IsVwy&YF`W`)noNu_y+ov72NmVz z10AMSs5uxYRaQFc&8*JV0qJ`poh6EvEUHIT*fNmt_>qr5qE7Ev5L5B!-!SHT^kljaBalM zm}?`6+Ozf)C%gvq zMdIAXM>l{0E_8gltHDq#&cRRx2DtDQf}s)&0WcJzp+XpJUS0&2khsO}4Z{`K$|agF zTnxsb2xQX-@Di+LA_=(mhXY_PWsDbTF0Vc?5C#P}l!)a0%%OS110~=R02jYj%+_gW`Iz!1$sp;dl-%#moWU9^RTZUEmZk2UJ)Oal7utFQ#FMy&KRB-(8g0TgRb( z@J@7$>N?-3JK;s>9aCm8&)loyJj06;%M5;4X7>o5V42~?tE(z=S>;0R&{UDRQ$yuO zRwUl_vdZFI)VUbGgs!ck z;WtRPR@X0LI&pesbx|Y6SCiF+-z=?0)D_P*ih|nV7pP7ZQw$ppYoo@@B0esDES%&0 zSd1&NKO$qz#>5Uu?Be}Bb-Vlln5x|{CU!_-H=;5XyJ3~o?MAGmYB%B~HTxKIoI?_O z0&|Q*5_>|k#UY7(9JA?=#6GS$soh9oHjWF)dI^u2vkm`sFk~-p&q>f@yl1GEeKu27d z)Df2^b;QL<9dUV5$E*4A$7`f#$aV(I5tdE8ld&)@o4kX;-eWL*8>r-_$+t4vEt$Rrv}(`f z?Tj`{rniAwZJE54(O${)7Er^v7k5nF%t~-g0d*6o=^WIXSt*>t;)lyxxJ<*Xk~gv- z1VJTiY+*VFH7pU4a=3s^Q?C~W8|{#|7Xw$ddj~kIn0l>1a=`C6T!IyToFipGjNxaU zmx3Lx!=;+79o7I?S4`t;4PsAQ_g|doh@U4*Iw%wcwyU)odUg#woWw#*r=ExpzRap-UVDli~;QP zatdJnxm`>F(}J{*LXlv_g0~f|KCz(M+V!nyEXFy|$IgLxXXsur2i%Ku z;6%FW#dij7^f(A^U7XP{>C^I{YKt|?|-xUIu7FW^uDG$UqSN_ccyzz(Tfr-i#TO}9)7co5rx*G5O&zz|_` ziFb#b8E^;w0kMEjcSOgAi_*ZvfE`GPw^>aKK(~rPaYmqRTAP>=M;O@J7C9d}zUpx_ zI=o#l72AO>(@;Dr2ufbc1SL%}ncc}MMv6D2=#Rg*soapFzhR_yLyG=}k=hL@`WsP6 z<|-sbf5R%toLS2LMyw=rPu1Uum-PCNaZhqXiv9`QC%hp=|Ag-2-!P7Q%KqcrFs^&b z{t0iGz&&OE1UF3Rp0fX#8>qbSGVj#=V{S<1i;}9pk)nIb{zi)KDf=5Kx@X)! z)f-smWzCO~Sby;lo*U->_A!_7#_P>ByZ+2vul?%3+Z)UN%yQ2B^6ch~9s7+xv7FF` z$|rvkKD_?}mS?=N^JmZe=)Yb#*aH`@{c8A|_mtMQwA6jTJZFA+^zM}vdRyDh{YHd& zLK{j7R#vnQ4jnnX|2;Mf?_2k^l@;y7XOA500R`UswIwSnIBHACH{rdAY{x*R})r9_* zLXR2<{w)PB4TTc^ErJhfjyrqKTrE=YZxTGHS8nY3ph&@ARPbo1=tKj-UsUkYP%Pmu z5`2iX0R?}7;G=4SA5rjNz_tez{D^`F12(@z!jBMqrRKo)l`8nx2|lVO`11-rY9RRY z3SJt@B>Z`TuLdnlK~TZJM)1`%1VIIVR>9Y3w)=k@RN!Y7xKNi%=(7Y}D@LYVA)g`S zTFrqYVZSE=BS5qwll@JAJV)Ijh@6}&W5N%*4#uhS4zEBHZz*J%W* z6@0&f*Qt5c3cg>#OTz{U-%s#Oq^(i#hY3EaCip%DA2kqspMsZ$jS{|3!Mm0$UAe~p zZmkM%Pz7);TfL?&{HIzK;>GAU$hmdJU5`JrtM9{F73Rh0x5!!Hui4uZ?)$J#hI&yI zD(}{U`)juzI^5m&VZ931tICyEP|~pfP%qwCuR?Z5douIZf^RnN=sVmU4)?wPQJsq0 z9c_*q0AB3t?eT>j`(GLPSViwvLzcH>=~r)mU{fbx_{qgg;srHvxyx2Ry1C=|eLX#e zVLQaxq%zqXoo!LDr+1Yq2TEjbbjC&Do_nE`f^3p`?4>-+`-5Re@2PViHK-i+P!8tp zQ9EVOr820|TvYy$=|L%UsT687r|3ZiIW)=)x+sGhXrJtZM9@_Z&ruFFqL$c<3e$m- z*rAfB6y+?qU$mss^rA#|s6;BUp#NFAaX+-BikvpfWOh(8)mqN7)!vGRgNJ*4Dq53D zr<2mD);vp=7CiD)SMT8?N6e&~R8HGeP9e><_-6m2ncAv{>soj3J9wx&+|yGA-p9|P zH|4fXa_4^T&Q+z2r=kyL10@x}*6n2;*TOG9 z@^lv^Wxf>aDJkKz4^d{%y^*pqUyrpaE5FLBHzunpl~t|E%1>Fn7?YLyb*ZJS{8XyL zv3Z$4l{J)?Ulgl9CNcAOvzmD*F-=3LV=-BksI02l49ZH=0O~|cPHK;-W_g$s;S9&7 zWbR~@EEiJ}FlS;iGWW9(tm7gh#5vFATk;WW=HB5y7(tdx`2fu8Fz(T8a8cg&>-R>3 zu@4*llcKVRwG_SWU!2ATWW!e?%SyD#G72uXZtZSjfW_LltzdV~A)_HQhcJOxXC%i|_b!6JXI!@^TQ;l2UxHF*jua&P;_ zviB6P$XVoeExh>=q$!e9fQGqmY($n~@(I+j&sMcJzZ2yWLYKSz_GOZz6lr;=AvDQQ z@IiC?m{Z`H{6uK|%z=O=IZ;YPG?|G|xd_rECZH^okQQ13+9HCqa1v4?q)AAGNyiVl}KPSCF%*azgkg`slC;LYElTHttL>DJ}4zZ9#z}7P)W!^wRwYbgM>6`gV5Fx zq)8c+5+NmDXd#t^lx#sLH%dq=RamlgaZW9P#t?DD_Ixy^VcQSd0DfMyld!W3pjnF4y$ zQ|QD*K{{agad^VkyZ;V6WDW^=f}`_a?#SCD^GL)K9NYixo*504Mnamf^N0UDvw^Zm zz!G*ou^Oy0g9I!A?Ts>gLXv4VBV6iedF<8403+zz>EEZgZ(|k4)(SM=eJO57H;5L{=@bA2T%LB z?bIpXu@fAsDp|=6z;%Vc_NAfW zGCt$fsbK^qcHqFrK&5P@2e+=cudefWCAdd(mSZb(won5E?>{kIMLByYXL<-^$|f_A z!1dfCQ@eA?e)&n}G? z&dLj@*E{%(~M zNev{}VM}5aDlwB8NT|cs#MCcqHSCQdG1b1Kl-J6e=6?qADxi}F(KJ4$JVD~q4R zwB*(y*#UKM7=c1yyujx~v+*pv^EKoLInNdbLK_bbo(8KW56@q1 zlMLZ!b*+PMAI}?Xt-5d7{J+_Z48e(7eY7oCZ>TDH=;4i$AN;K4a)+z!=O#bc{j1Br zb^YejvK^SS?;QiNoB|&&~d*j-FUt$u3#(_gm zuAXNSgcpJ}L;dSk&ol|bNOQ|ER1iU!gZFnHANc7*vlK&^gBT}rgr}5>CwK^x)G<^6asAwJyt87yl`J4KsE1EHf1^nkT!dZ3?cMn} z6^b#q2)u|p4t#x~OQDY{^Z<7pyvw8_qY6E$Cgvc~O|{7$B)l{zQu3C9FC~4Eg+m~G zR81^G!h`zIeT#EUa`L8v2SY!+8)K*h!UsVQ-LjGigpaC;PDprDZBhyeFAXuY0^vj4 zfxWj93xo$X_TQuy5+2mpKnuN)@X`=NF%Z6z^j4CA@KH6<3<+OJb6}ww626iqA%<=s zd=0mC-(;m52(FYwHzah87@G1ZS$M}ez>cbkdAQEJIt=Kh z+GHQDP;~>qOM`m#o>1`hGzOIx3WD(UGz2CEk?{4@JPQqx@X`=NMG(G$^j0#0@KH6< z5eeTwGhm@4625_^AcmG8yiV=25)*`vs)?FNcvEfC6A3R3F%$*in@De^C9trx(+2^C^CgjuxSo;J(rN6nBxG;Xz#vp2nwdL ziQ7*d?@ho?X!`7Mds!Sck>Tsaonx7aIp}zAc>-dBVc}*dc>-1 z;QpUJJiBPj-!9_liA)-9fW3RcYJCt%~-*;Bbh6i)D&*FA#6kjyN2+k0 zh4eiStkT4ZqA;%Jw$7JvJpr_;FT!Hn&YU)nC&#_TN@02%+W^RgQ}NVi&R9sx`Bq^N z6JS51Sc(koSIs^f^?K9F5qcY2`VLe+^_jP0 zSi$+$x~G9U+CgjK0Vg+yzW0D<6j9CX-~Yt-ZuHoG4Up!_|C5JT&AaS&;JF#inj`wNaYk}UZ@7XJnJ%Io!CaDOVF%JjvtAU}VBBbis` zWWms-OG68id1X%WFB!(@^6OUtjDKzPdR4%&VEHKicb=E>lX+%F77UGEyPol}`Y6|H z0#y9#GXbjm*Q*1n``0VJs{Zww0Bij0Pk^=i*P{d0?q84i*6O2VdjjI)XLkbPyN{C1 z4#amq+wtS8kCM#^NEAPN6OgF;DB0>jqV8uiexmB5WNQM(i=Ukd7_a*%+33J{-OpD1 z@v4uKjR}}2e&qVA()x&sq+KO6BUsy<4lCm>n;%uYbE?xSR~1IfCd>G;X2kCMp= zm`wc4O~7QjkCLelOs4xNnTkJ|>Z4?80wxbwfiXP>_DpBM@eV=RI87Y&Iy=G{Pa!0 zRJxCnt`1D4`zYy(Kb7jEq-z4E8b3V~FxBp(q@x2BOJ@1Wc#< zDAVo0bh?i+-T2d~KFV|_V7l?AHv!Y_KFV}DFx~E>Oeg+ytB*3B2}no$sZT&Ux{or| z4y2>|C{vA}j_RXKbpp~Ae`*tuuI{5ur32~eKFU<$r>puXQ<;Et#!r0$(%F5KR6CH) z?xUm{Kb_S_Np%9!9Y3`RNO$*9Qt3dtyN{Ae{B&0zC6x)tMEuE5Kqk76GT9DfqWdV5 zjh~6?qfB-JG8KPv6OgIyqfDj)nd&~uWa4M4`Y4l`fK0|uJ^`8RK1#9L|S z`Y6dJAk*Z2r@fNaJeI|143K1zHAve|u<_zGmR`XsS4_-XuP o{^^$3_}QMn`1sj={>Huo@&8MiO&R+J%Fn7KXJVhqr;>5`e*+V}zW@LL literal 0 HcwPel00001 diff --git a/CMakeLua/Source/QtDialog/CMakeSetup.ico b/CMakeLua/Source/QtDialog/CMakeSetup.ico new file mode 100644 index 0000000000000000000000000000000000000000..e13bb156f4e0bd05a4c5df7de920ebc681e82799 GIT binary patch literal 24542 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 Eg5PG87XSbN literal 0 HcwPel00001 diff --git a/CMakeLua/Source/QtDialog/CMakeSetup.qrc b/CMakeLua/Source/QtDialog/CMakeSetup.qrc new file mode 100644 index 0000000..5ceb1df --- /dev/null +++ b/CMakeLua/Source/QtDialog/CMakeSetup.qrc @@ -0,0 +1,7 @@ + + + CMakeSetup.png + Delete16.png + Plus16.png + + diff --git a/CMakeLua/Source/QtDialog/CMakeSetup.rc b/CMakeLua/Source/QtDialog/CMakeSetup.rc new file mode 100644 index 0000000..fcc887d --- /dev/null +++ b/CMakeLua/Source/QtDialog/CMakeSetup.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "CMakeSetup.ico" diff --git a/CMakeLua/Source/QtDialog/CMakeSetupDialog.cxx b/CMakeLua/Source/QtDialog/CMakeSetupDialog.cxx new file mode 100644 index 0000000..5abc607 --- /dev/null +++ b/CMakeLua/Source/QtDialog/CMakeSetupDialog.cxx @@ -0,0 +1,806 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: CMakeSetupDialog.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 16:48:00 $ + Version: $Revision: 1.30 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "CMakeSetupDialog.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "QCMake.h" +#include "QCMakeCacheView.h" +#include "AddCacheEntry.h" + +QCMakeThread::QCMakeThread(QObject* p) + : QThread(p), CMakeInstance(NULL) +{ +} + +QCMake* QCMakeThread::cmakeInstance() const +{ + return this->CMakeInstance; +} + +void QCMakeThread::run() +{ + this->CMakeInstance = new QCMake; + // emit that this cmake thread is ready for use + emit this->cmakeInitialized(); + this->exec(); + delete this->CMakeInstance; + this->CMakeInstance = NULL; +} + +CMakeSetupDialog::CMakeSetupDialog() + : ExitAfterGenerate(true), CacheModified(false), CurrentState(Interrupting) +{ + // create the GUI + QSettings settings; + settings.beginGroup("Settings/StartPath"); + int h = settings.value("Height", 500).toInt(); + int w = settings.value("Width", 700).toInt(); + this->resize(w, h); + + QWidget* cont = new QWidget(this); + this->setupUi(cont); + this->Splitter->setStretchFactor(0, 3); + this->Splitter->setStretchFactor(1, 1); + this->setCentralWidget(cont); + this->ProgressBar->reset(); + this->RemoveEntry->setEnabled(false); + this->AddEntry->setEnabled(false); + + QMenu* FileMenu = this->menuBar()->addMenu(tr("&File")); + this->ReloadCacheAction = FileMenu->addAction(tr("&Reload Cache")); + QObject::connect(this->ReloadCacheAction, SIGNAL(triggered(bool)), + this, SLOT(doReloadCache())); + this->DeleteCacheAction = FileMenu->addAction(tr("&Delete Cache")); + QObject::connect(this->DeleteCacheAction, SIGNAL(triggered(bool)), + this, SLOT(doDeleteCache())); + this->ExitAction = FileMenu->addAction(tr("&Exit")); + QObject::connect(this->ExitAction, SIGNAL(triggered(bool)), + this, SLOT(close())); + + QMenu* ToolsMenu = this->menuBar()->addMenu(tr("&Tools")); + this->ConfigureAction = ToolsMenu->addAction(tr("&Configure")); + // prevent merging with Preferences menu item on Mac OS X + this->ConfigureAction->setMenuRole(QAction::NoRole); + QObject::connect(this->ConfigureAction, SIGNAL(triggered(bool)), + this, SLOT(doConfigure())); + this->GenerateAction = ToolsMenu->addAction(tr("&Generate")); + QObject::connect(this->GenerateAction, SIGNAL(triggered(bool)), + this, SLOT(doGenerate())); + + QMenu* HelpMenu = this->menuBar()->addMenu(tr("&Help")); + QAction* a = HelpMenu->addAction(tr("About")); + QObject::connect(a, SIGNAL(triggered(bool)), + this, SLOT(doAbout())); + a = HelpMenu->addAction(tr("Help")); + QObject::connect(a, SIGNAL(triggered(bool)), + this, SLOT(doHelp())); + + this->setAcceptDrops(true); + + // get the saved binary directories + QStringList buildPaths = this->loadBuildPaths(); + this->BinaryDirectory->addItems(buildPaths); + + QCompleter* compBinaryDir = new QCompleter(this); + QDirModel* modelBinaryDir = new QDirModel(compBinaryDir); + modelBinaryDir->setFilter(QDir::NoDotAndDotDot | QDir::Dirs); + compBinaryDir->setModel(modelBinaryDir); + this->BinaryDirectory->setCompleter(compBinaryDir); + QCompleter* compSourceDir = new QCompleter(this); + QDirModel* modelSourceDir = new QDirModel(compSourceDir); + modelSourceDir->setFilter(QDir::NoDotAndDotDot | QDir::Dirs); + compSourceDir->setModel(modelSourceDir); + this->SourceDirectory->setCompleter(compSourceDir); + + + // start the cmake worker thread + this->CMakeThread = new QCMakeThread(this); + QObject::connect(this->CMakeThread, SIGNAL(cmakeInitialized()), + this, SLOT(initialize()), Qt::QueuedConnection); + this->CMakeThread->start(); + + this->enterState(ReadyConfigure); +} + +void CMakeSetupDialog::initialize() +{ + // now the cmake worker thread is running, lets make our connections to it + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(propertiesChanged(const QCMakeCachePropertyList&)), + this->CacheValues->cacheModel(), + SLOT(setProperties(const QCMakeCachePropertyList&))); + + QObject::connect(this->ConfigureButton, SIGNAL(clicked(bool)), + this, SLOT(doConfigure())); + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(configureDone(int)), + this, SLOT(finishConfigure(int))); + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(generateDone(int)), + this, SLOT(finishGenerate(int))); + + QObject::connect(this->GenerateButton, SIGNAL(clicked(bool)), + this, SLOT(doGenerate())); + + QObject::connect(this->BrowseSourceDirectoryButton, SIGNAL(clicked(bool)), + this, SLOT(doSourceBrowse())); + QObject::connect(this->BrowseBinaryDirectoryButton, SIGNAL(clicked(bool)), + this, SLOT(doBinaryBrowse())); + + QObject::connect(this->BinaryDirectory, SIGNAL(editTextChanged(QString)), + this, SLOT(onBinaryDirectoryChanged(QString))); + QObject::connect(this->SourceDirectory, SIGNAL(textChanged(QString)), + this, SLOT(onSourceDirectoryChanged(QString))); + + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(sourceDirChanged(QString)), + this, SLOT(updateSourceDirectory(QString))); + + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(progressChanged(QString, float)), + this, SLOT(showProgress(QString,float))); + + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(errorMessage(QString)), + this, SLOT(error(QString))); + + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(outputMessage(QString)), + this->Output, SLOT(append(QString))); + + QObject::connect(this->Advanced, SIGNAL(clicked(bool)), + this->CacheValues, SLOT(setShowAdvanced(bool))); + QObject::connect(this->Search, SIGNAL(textChanged(QString)), + this->CacheValues, SLOT(setSearchFilter(QString))); + + QObject::connect(this->CMakeThread->cmakeInstance(), + SIGNAL(generatorChanged(QString)), + this, SLOT(updateGeneratorLabel(QString))); + this->updateGeneratorLabel(QString()); + + QObject::connect(this->CacheValues->cacheModel(), + SIGNAL(dataChanged(QModelIndex,QModelIndex)), + this, SLOT(setCacheModified())); + + QObject::connect(this->CacheValues->selectionModel(), + SIGNAL(selectionChanged(QItemSelection,QItemSelection)), + this, SLOT(selectionChanged())); + QObject::connect(this->RemoveEntry, SIGNAL(clicked(bool)), + this, SLOT(removeSelectedCacheEntries())); + QObject::connect(this->AddEntry, SIGNAL(clicked(bool)), + this, SLOT(addCacheEntry())); + + + if(!this->SourceDirectory->text().isEmpty() || + !this->BinaryDirectory->lineEdit()->text().isEmpty()) + { + this->onSourceDirectoryChanged(this->SourceDirectory->text()); + this->onBinaryDirectoryChanged(this->BinaryDirectory->lineEdit()->text()); + } + else + { + this->onBinaryDirectoryChanged(this->BinaryDirectory->lineEdit()->text()); + } +} + +CMakeSetupDialog::~CMakeSetupDialog() +{ + QSettings settings; + settings.beginGroup("Settings/StartPath"); + settings.setValue("Height", this->height()); + settings.setValue("Width", this->width()); + + // wait for thread to stop + this->CMakeThread->quit(); + this->CMakeThread->wait(2000); +} + +void CMakeSetupDialog::doConfigure() +{ + if(this->CurrentState == Configuring) + { + // stop configure + doInterrupt(); + return; + } + + QString bindir = this->CMakeThread->cmakeInstance()->binaryDirectory(); + QDir dir(bindir); + if(!dir.exists()) + { + QString message = tr("Build directory does not exist, " + "should I create it?") + + "\n\n" + + tr("Directory: "); + message += bindir; + QString title = tr("Create Directory"); + QMessageBox::StandardButton btn; + btn = QMessageBox::information(this, title, message, + QMessageBox::Yes | QMessageBox::No); + if(btn == QMessageBox::No) + { + return; + } + dir.mkpath("."); + } + + // prompt for generator if one doesn't exist + if(this->CMakeThread->cmakeInstance()->generator().isEmpty()) + { + this->promptForGenerator(); + } + + // remember path + this->addBinaryPath(dir.absolutePath()); + + this->enterState(Configuring); + + this->Output->clear(); + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "setProperties", Qt::QueuedConnection, + Q_ARG(QCMakeCachePropertyList, + this->CacheValues->cacheModel()->properties())); + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "configure", Qt::QueuedConnection); +} + +void CMakeSetupDialog::finishConfigure(int err) +{ + if(0 == err && 0 == this->CacheValues->cacheModel()->newCount()) + { + this->enterState(ReadyGenerate); + } + else + { + this->enterState(ReadyConfigure); + this->CacheValues->scrollToTop(); + } + + if(err != 0) + { + QMessageBox::critical(this, tr("Error"), + tr("Error in configuration process, project files may be invalid"), + QMessageBox::Ok); + } +} + +void CMakeSetupDialog::finishGenerate(int err) +{ + this->enterState(ReadyGenerate); + if(err != 0) + { + QMessageBox::critical(this, tr("Error"), + tr("Error in generation process, project files may be invalid"), + QMessageBox::Ok); + } +} + +void CMakeSetupDialog::doGenerate() +{ + if(this->CurrentState == Generating) + { + // stop generate + doInterrupt(); + return; + } + this->enterState(Generating); + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "generate", Qt::QueuedConnection); +} + +void CMakeSetupDialog::closeEvent(QCloseEvent* e) +{ + // prompt for close if there are unsaved changes, and we're not busy + if(this->CacheModified) + { + QString message = tr("You have changed options but not rebuilt, " + "are you sure you want to exit?"); + QString title = tr("Confirm Exit"); + QMessageBox::StandardButton btn; + btn = QMessageBox::critical(this, title, message, + QMessageBox::Yes | QMessageBox::No); + if(btn == QMessageBox::No) + { + e->ignore(); + } + } + + // don't close if we're busy, unless the user really wants to + if(this->CurrentState == Configuring) + { + QString message = "You are in the middle of a Configure.\n" + "If you Exit now the configure information will be lost.\n" + "Are you sure you want to Exit?"; + QString title = tr("Confirm Exit"); + QMessageBox::StandardButton btn; + btn = QMessageBox::critical(this, title, message, + QMessageBox::Yes | QMessageBox::No); + if(btn == QMessageBox::No) + { + e->ignore(); + } + else + { + this->doInterrupt(); + } + } + + // let the generate finish + if(this->CurrentState == Generating) + { + e->ignore(); + } +} + +void CMakeSetupDialog::doHelp() +{ + QString msg = tr("CMake is used to configure and generate build files for " + "software projects. The basic steps for configuring a project are as " + "follows:\r\n\r\n1. Select the source directory for the project. This should " + "contain the CMakeLists.txt files for the project.\r\n\r\n2. Select the build " + "directory for the project. This is the directory where the project will be " + "built. It can be the same or a different directory than the source " + "directory. For easy clean up, a separate build directory is recommended. " + "CMake will create the directory if it does not exist.\r\n\r\n3. Once the " + "source and binary directories are selected, it is time to press the " + "Configure button. This will cause CMake to read all of the input files and " + "discover all the variables used by the project. The first time a variable " + "is displayed it will be in Red. Users should inspect red variables making " + "sure the values are correct. For some projects the Configure process can " + "be iterative, so continue to press the Configure button until there are no " + "longer red entries.\r\n\r\n4. Once there are no longer red entries, you " + "should click the Generate button. This will write the build files to the build " + "directory."); + + QDialog dialog; + dialog.setWindowTitle(tr("Help")); + QVBoxLayout* l = new QVBoxLayout(&dialog); + QLabel* lab = new QLabel(&dialog); + l->addWidget(lab); + lab->setText(msg); + lab->setWordWrap(true); + QDialogButtonBox* btns = new QDialogButtonBox(QDialogButtonBox::Ok, + Qt::Horizontal, &dialog); + QObject::connect(btns, SIGNAL(accepted()), &dialog, SLOT(accept())); + l->addWidget(btns); + dialog.exec(); +} + +void CMakeSetupDialog::doInterrupt() +{ + this->enterState(Interrupting); + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "interrupt", Qt::QueuedConnection); +} + +void CMakeSetupDialog::doSourceBrowse() +{ + QString dir = QFileDialog::getExistingDirectory(this, + tr("Enter Path to Source"), this->SourceDirectory->text()); + if(!dir.isEmpty()) + { + this->setSourceDirectory(dir); + } +} + +void CMakeSetupDialog::updateSourceDirectory(const QString& dir) +{ + if(this->SourceDirectory->text() != dir) + { + this->setSourceDirectory(dir); + } +} + +void CMakeSetupDialog::doBinaryBrowse() +{ + QString dir = QFileDialog::getExistingDirectory(this, + tr("Enter Path to Build"), this->BinaryDirectory->currentText()); + if(!dir.isEmpty() && dir != this->BinaryDirectory->currentText()) + { + this->setBinaryDirectory(dir); + } +} + +void CMakeSetupDialog::setBinaryDirectory(const QString& dir) +{ + this->BinaryDirectory->setEditText(dir); +} + +void CMakeSetupDialog::onSourceDirectoryChanged(const QString& dir) +{ + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "setSourceDirectory", Qt::QueuedConnection, Q_ARG(QString, dir)); +} + +void CMakeSetupDialog::onBinaryDirectoryChanged(const QString& dir) +{ + this->CacheModified = false; + this->CacheValues->cacheModel()->clear(); + this->Output->clear(); + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "setBinaryDirectory", Qt::QueuedConnection, Q_ARG(QString, dir)); +} + +void CMakeSetupDialog::setSourceDirectory(const QString& dir) +{ + this->SourceDirectory->setText(dir); +} + +void CMakeSetupDialog::showProgress(const QString& /*msg*/, float percent) +{ + this->ProgressBar->setValue(qRound(percent * 100)); +} + +void CMakeSetupDialog::error(const QString& message) +{ + QStringList messages = message.split('\n'); + foreach(QString m, messages) + { + this->Output->append(QString("%1").arg(m)); + } +} + +void CMakeSetupDialog::setEnabledState(bool enabled) +{ + // disable parts of the GUI during configure/generate + this->CacheValues->cacheModel()->setEditEnabled(enabled); + this->SourceDirectory->setEnabled(enabled); + this->BrowseSourceDirectoryButton->setEnabled(enabled); + this->BinaryDirectory->setEnabled(enabled); + this->BrowseBinaryDirectoryButton->setEnabled(enabled); + this->ReloadCacheAction->setEnabled(enabled); + this->DeleteCacheAction->setEnabled(enabled); + this->ExitAction->setEnabled(enabled); + this->ConfigureAction->setEnabled(enabled); + this->AddEntry->setEnabled(enabled); + this->RemoveEntry->setEnabled(false); // let selection re-enable it +} + +void CMakeSetupDialog::promptForGenerator() +{ + QSettings settings; + settings.beginGroup("Settings/StartPath"); + QString lastGen = settings.value("LastGenerator").toString(); + + QStringList gens = this->CMakeThread->cmakeInstance()->availableGenerators(); + QDialog dialog; + dialog.setWindowTitle(tr("Choose Generator")); + QLabel* lab = new QLabel(&dialog); + lab->setText(tr("Please select what build system you want CMake to generate files for.\n" + "You should select the tool that you will use to build the project.\n" + "Press OK once you have made your selection.")); + QComboBox* combo = new QComboBox(&dialog); + combo->addItems(gens); + int idx = combo->findText(lastGen); + if(idx != -1) + { + combo->setCurrentIndex(idx); + } + QDialogButtonBox* btns = new QDialogButtonBox(QDialogButtonBox::Ok, + Qt::Horizontal, &dialog); + QObject::connect(btns, SIGNAL(accepted()), &dialog, SLOT(accept())); + + QVBoxLayout* l = new QVBoxLayout(&dialog); + l->addWidget(lab); + l->addWidget(combo); + l->addWidget(btns); + dialog.exec(); + + lastGen = combo->currentText(); + settings.setValue("LastGenerator", lastGen); + this->CMakeThread->cmakeInstance()->setGenerator(combo->currentText()); +} + +void CMakeSetupDialog::updateGeneratorLabel(const QString& gen) +{ + QString str = tr("Current Generator: "); + if(gen.isEmpty()) + { + str += tr("None"); + } + else + { + str += gen; + } + this->Generator->setText(str); +} + +void CMakeSetupDialog::doReloadCache() +{ + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "reloadCache", Qt::QueuedConnection); +} + +void CMakeSetupDialog::doDeleteCache() +{ + QMetaObject::invokeMethod(this->CMakeThread->cmakeInstance(), + "deleteCache", Qt::QueuedConnection); +} + +void CMakeSetupDialog::doAbout() +{ + QString msg = "CMake\nwww.cmake.org"; + + QDialog dialog; + dialog.setWindowTitle(tr("About")); + QVBoxLayout* l = new QVBoxLayout(&dialog); + QLabel* lab = new QLabel(&dialog); + l->addWidget(lab); + lab->setText(msg); + lab->setWordWrap(true); + QDialogButtonBox* btns = new QDialogButtonBox(QDialogButtonBox::Ok, + Qt::Horizontal, &dialog); + QObject::connect(btns, SIGNAL(accepted()), &dialog, SLOT(accept())); + l->addWidget(btns); + dialog.exec(); +} + +void CMakeSetupDialog::setExitAfterGenerate(bool b) +{ + this->ExitAfterGenerate = b; +} + +void CMakeSetupDialog::addBinaryPath(const QString& path) +{ + QString cleanpath = QDir::cleanPath(path); + + // update UI + this->BinaryDirectory->blockSignals(true); + int idx = this->BinaryDirectory->findText(cleanpath); + if(idx != -1) + { + this->BinaryDirectory->removeItem(idx); + } + this->BinaryDirectory->insertItem(0, cleanpath); + this->BinaryDirectory->setCurrentIndex(0); + this->BinaryDirectory->blockSignals(false); + + // save to registry + QStringList buildPaths = this->loadBuildPaths(); + buildPaths.removeAll(cleanpath); + buildPaths.prepend(cleanpath); + this->saveBuildPaths(buildPaths); +} + +void CMakeSetupDialog::dragEnterEvent(QDragEnterEvent* e) +{ + if(!(this->CurrentState == ReadyConfigure || + this->CurrentState == ReadyGenerate)) + { + e->ignore(); + return; + } + + const QMimeData* dat = e->mimeData(); + QList urls = dat->urls(); + QString file = urls.count() ? urls[0].toLocalFile() : QString(); + if(!file.isEmpty() && + (file.endsWith("CMakeCache.txt", Qt::CaseInsensitive) || + file.endsWith("CMakeLists.txt", Qt::CaseInsensitive) ) ) + { + e->accept(); + } + else + { + e->ignore(); + } +} + +void CMakeSetupDialog::dropEvent(QDropEvent* e) +{ + if(!(this->CurrentState == ReadyConfigure || + this->CurrentState == ReadyGenerate)) + { + return; + } + + const QMimeData* dat = e->mimeData(); + QList urls = dat->urls(); + QString file = urls.count() ? urls[0].toLocalFile() : QString(); + if(file.endsWith("CMakeCache.txt", Qt::CaseInsensitive)) + { + QFileInfo info(file); + if(this->CMakeThread->cmakeInstance()->binaryDirectory() != info.absolutePath()) + { + this->setBinaryDirectory(info.absolutePath()); + } + } + else if(file.endsWith("CMakeLists.txt", Qt::CaseInsensitive)) + { + QFileInfo info(file); + if(this->CMakeThread->cmakeInstance()->binaryDirectory() != info.absolutePath()) + { + this->setSourceDirectory(info.absolutePath()); + this->setBinaryDirectory(info.absolutePath()); + } + } +} + +QStringList CMakeSetupDialog::loadBuildPaths() +{ + QSettings settings; + settings.beginGroup("Settings/StartPath"); + + QStringList buildPaths; + for(int i=0; i<10; i++) + { + QString p = settings.value(QString("WhereBuild%1").arg(i)).toString(); + if(!p.isEmpty()) + { + buildPaths.append(p); + } + } + return buildPaths; +} + +void CMakeSetupDialog::saveBuildPaths(const QStringList& paths) +{ + QSettings settings; + settings.beginGroup("Settings/StartPath"); + + int num = paths.count(); + if(num > 10) + { + num = 10; + } + + for(int i=0; iCacheModified = true; + this->enterState(ReadyConfigure); +} + +void CMakeSetupDialog::removeSelectedCacheEntries() +{ + QModelIndexList idxs = this->CacheValues->selectionModel()->selectedRows(); + QList pidxs; + foreach(QModelIndex i, idxs) + { + pidxs.append(i); + } + foreach(QPersistentModelIndex pi, pidxs) + { + this->CacheValues->model()->removeRow(pi.row()); + } +} + +void CMakeSetupDialog::selectionChanged() +{ + QModelIndexList idxs = this->CacheValues->selectionModel()->selectedRows(); + if(idxs.count() && + (this->CurrentState == ReadyConfigure || + this->CurrentState == ReadyGenerate) ) + { + this->RemoveEntry->setEnabled(true); + } + else + { + this->RemoveEntry->setEnabled(false); + } +} + +void CMakeSetupDialog::enterState(CMakeSetupDialog::State s) +{ + if(s == this->CurrentState) + { + return; + } + + this->CurrentState = s; + + if(s == Interrupting) + { + this->ConfigureButton->setEnabled(false); + this->GenerateButton->setEnabled(false); + } + else if(s == Configuring) + { + this->Output->clear(); + this->setEnabledState(false); + this->GenerateButton->setEnabled(false); + this->GenerateAction->setEnabled(false); + this->ConfigureButton->setText(tr("Stop")); + } + else if(s == Generating) + { + this->CacheModified = false; + this->Output->clear(); + this->setEnabledState(false); + this->ConfigureButton->setEnabled(false); + this->GenerateAction->setEnabled(false); + this->GenerateButton->setText(tr("Stop")); + } + else if(s == ReadyConfigure) + { + this->ProgressBar->reset(); + this->setEnabledState(true); + this->GenerateButton->setEnabled(false); + this->GenerateAction->setEnabled(false); + this->ConfigureButton->setEnabled(true); + this->ConfigureButton->setText(tr("Configure")); + this->GenerateButton->setText(tr("Generate")); + } + else if(s == ReadyGenerate) + { + this->ProgressBar->reset(); + this->setEnabledState(true); + this->GenerateButton->setEnabled(true); + this->GenerateAction->setEnabled(true); + this->ConfigureButton->setEnabled(true); + this->ConfigureButton->setText(tr("Configure")); + this->GenerateButton->setText(tr("Generate")); + } +} + +void CMakeSetupDialog::addCacheEntry() +{ + QDialog dialog(this); + dialog.resize(400, 200); + dialog.setWindowTitle(tr("Add Cache Entry")); + QVBoxLayout* l = new QVBoxLayout(&dialog); + AddCacheEntry* w = new AddCacheEntry(&dialog); + QDialogButtonBox* btns = new QDialogButtonBox( + QDialogButtonBox::Ok | QDialogButtonBox::Cancel, + Qt::Horizontal, &dialog); + QObject::connect(btns, SIGNAL(accepted()), &dialog, SLOT(accept())); + QObject::connect(btns, SIGNAL(rejected()), &dialog, SLOT(reject())); + l->addWidget(w); + l->addStretch(); + l->addWidget(btns); + if(QDialog::Accepted == dialog.exec()) + { + QCMakeCacheModel* m = this->CacheValues->cacheModel(); + m->insertRows(0, 1, QModelIndex()); + m->setData(m->index(0, 0), w->type(), QCMakeCacheModel::TypeRole); + m->setData(m->index(0, 0), w->name(), Qt::DisplayRole); + m->setData(m->index(0, 0), w->description(), QCMakeCacheModel::HelpRole); + m->setData(m->index(0, 0), 0, QCMakeCacheModel::AdvancedRole); + if(w->type() == QCMakeCacheProperty::BOOL) + { + m->setData(m->index(0, 1), w->value().toBool() ? + Qt::Checked : Qt::Unchecked, Qt::CheckStateRole); + } + else + { + m->setData(m->index(0, 1), w->value(), Qt::DisplayRole); + } + } +} + diff --git a/CMakeLua/Source/QtDialog/CMakeSetupDialog.h b/CMakeLua/Source/QtDialog/CMakeSetupDialog.h new file mode 100644 index 0000000..0592b32 --- /dev/null +++ b/CMakeLua/Source/QtDialog/CMakeSetupDialog.h @@ -0,0 +1,111 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: CMakeSetupDialog.h,v $ + Language: C++ + Date: $Date: 2008/02/01 15:41:29 $ + Version: $Revision: 1.18 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef CMakeSetupDialog_h +#define CMakeSetupDialog_h + +#include "QCMake.h" +#include +#include +#include "ui_CMakeSetupDialog.h" + +class QCMakeThread; +class CMakeCacheModel; +class QProgressBar; +class QToolButton; + +/// Qt user interface for CMake +class CMakeSetupDialog : public QMainWindow, public Ui::CMakeSetupDialog +{ + Q_OBJECT +public: + CMakeSetupDialog(); + ~CMakeSetupDialog(); + +public slots: + void setBinaryDirectory(const QString& dir); + void setSourceDirectory(const QString& dir); + +protected slots: + void initialize(); + void doConfigure(); + void doGenerate(); + void doHelp(); + void doAbout(); + void doInterrupt(); + void finishConfigure(int error); + void finishGenerate(int error); + void error(const QString& message); + + void doSourceBrowse(); + void doBinaryBrowse(); + void doReloadCache(); + void doDeleteCache(); + void updateSourceDirectory(const QString& dir); + void showProgress(const QString& msg, float percent); + void setEnabledState(bool); + void promptForGenerator(); + void updateGeneratorLabel(const QString& gen); + void setExitAfterGenerate(bool); + void addBinaryPath(const QString&); + QStringList loadBuildPaths(); + void saveBuildPaths(const QStringList&); + void onBinaryDirectoryChanged(const QString& dir); + void onSourceDirectoryChanged(const QString& dir); + void setCacheModified(); + void removeSelectedCacheEntries(); + void selectionChanged(); + void addCacheEntry(); + +protected: + + enum State { Interrupting, ReadyConfigure, ReadyGenerate, Configuring, Generating }; + void enterState(State s); + + void closeEvent(QCloseEvent*); + void dragEnterEvent(QDragEnterEvent*); + void dropEvent(QDropEvent*); + + QCMakeThread* CMakeThread; + bool ExitAfterGenerate; + bool CacheModified; + QAction* ReloadCacheAction; + QAction* DeleteCacheAction; + QAction* ExitAction; + QAction* ConfigureAction; + QAction* GenerateAction; + State CurrentState; + +}; + +// QCMake instance on a thread +class QCMakeThread : public QThread +{ + Q_OBJECT +public: + QCMakeThread(QObject* p); + QCMake* cmakeInstance() const; + +signals: + void cmakeInitialized(); + +protected: + virtual void run(); + QCMake* CMakeInstance; +}; + +#endif // CMakeSetupDialog_h diff --git a/CMakeLua/Source/QtDialog/CMakeSetupDialog.ui b/CMakeLua/Source/QtDialog/CMakeSetupDialog.ui new file mode 100644 index 0000000..fb80cc0 --- /dev/null +++ b/CMakeLua/Source/QtDialog/CMakeSetupDialog.ui @@ -0,0 +1,306 @@ + + CMakeSetupDialog + + + + 0 + 0 + 707 + 582 + + + + + 9 + + + 6 + + + + + 0 + + + 6 + + + + + Where is the source code: + + + + + + + + + + Browse... + + + + + + + Where to build the binaries: + + + + + + + + 7 + 0 + 0 + 0 + + + + true + + + + + + + Browse... + + + + + + + + + Qt::Vertical + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + 6 + + + + + 0 + + + 6 + + + + + + 0 + 0 + 0 + 0 + + + + Search: + + + + + + + + 7 + 0 + 0 + 0 + + + + + + + + Show Advanced Entries + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 40 + 23 + + + + + + + + Add New Entry + + + Add Entry + + + :/Icons/Plus16.png + + + Qt::ToolButtonTextBesideIcon + + + + + + + Remove Selected Entries + + + Remove Entry + + + :/Icons/Delete16.png + + + Qt::ToolButtonTextBesideIcon + + + + + + + + + true + + + QAbstractItemView::ExtendedSelection + + + QAbstractItemView::SelectRows + + + + + + + Press Configure to update and display new values in red, then press Generate to generate selected build files. + + + Qt::AlignCenter + + + true + + + + + + + 0 + + + 6 + + + + + Configure + + + + + + + Generate + + + + + + + Current Generator: + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 121 + 27 + + + + + + + + 0 + + + 100 + + + 0 + + + false + + + Qt::Horizontal + + + QProgressBar::BottomToTop + + + + + + + + + + QTextEdit::NoWrap + + + true + + + + + + + + + QCMakeCacheView + QTableView +
    QCMakeCacheView.h
    +
    +
    + + + + +
    diff --git a/CMakeLua/Source/QtDialog/CVS/Entries b/CMakeLua/Source/QtDialog/CVS/Entries new file mode 100644 index 0000000..6e5f1ee --- /dev/null +++ b/CMakeLua/Source/QtDialog/CVS/Entries @@ -0,0 +1,21 @@ +/AddCacheEntry.cxx/1.3/Sat Nov 17 02:18:48 2007//T1.3 +/AddCacheEntry.h/1.2/Tue Nov 13 04:59:25 2007//T1.2 +/AddCacheEntry.ui/1.1/Tue Nov 13 04:54:49 2007//T1.1 +/CMakeLists.txt/1.7/Mon Nov 19 19:08:57 2007//T1.7 +/CMakeSetup.icns/1.1/Wed Nov 7 04:00:23 2007/-kb/T1.1 +/CMakeSetup.ico/1.2/Thu Nov 8 20:54:22 2007/-kb/T1.2 +/CMakeSetup.png/1.1/Sat Nov 3 14:30:52 2007/-kb/T1.1 +/CMakeSetup.qrc/1.4/Tue Nov 13 04:54:49 2007//T1.4 +/CMakeSetup.rc/1.1/Sat Nov 3 14:30:52 2007//T1.1 +/CMakeSetupDialog.ui/1.16/Tue Nov 13 04:54:49 2007//T1.16 +/Delete16.png/1.1/Sat Nov 10 16:36:09 2007/-kb/T1.1 +/Plus16.png/1.1/Tue Nov 13 04:54:49 2007/-kb/T1.1 +/QCMake.h/1.8/Fri Nov 9 20:18:49 2007//T1.8 +/QCMakeCacheView.cxx/1.21/Fri Nov 16 15:40:23 2007//T1.21 +/QCMakeCacheView.h/1.15/Tue Nov 13 05:17:10 2007//T1.15 +/README/1.2/Sat Feb 2 02:49:12 2008//T1.2 +/QCMake.cxx/1.13/Sat Feb 2 03:02:53 2008//T1.13 +/CMakeSetupDialog.h/1.18/Sat Feb 2 03:02:54 2008//T1.18 +/CMakeSetup.cxx/1.11/Sat Feb 2 03:03:08 2008//T1.11 +/CMakeSetupDialog.cxx/1.30/Sat Feb 2 03:03:09 2008//T1.30 +D diff --git a/CMakeLua/Source/QtDialog/CVS/Repository b/CMakeLua/Source/QtDialog/CVS/Repository new file mode 100644 index 0000000..231a072 --- /dev/null +++ b/CMakeLua/Source/QtDialog/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/QtDialog diff --git a/CMakeLua/Source/QtDialog/CVS/Root b/CMakeLua/Source/QtDialog/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/QtDialog/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/QtDialog/CVS/Tag b/CMakeLua/Source/QtDialog/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/QtDialog/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/QtDialog/CVS/Template b/CMakeLua/Source/QtDialog/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/QtDialog/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/QtDialog/Delete16.png b/CMakeLua/Source/QtDialog/Delete16.png new file mode 100644 index 0000000000000000000000000000000000000000..16989fee1288db63c3d4831a6f7ddc52443df7e0 GIT binary patch literal 731 zcwPb90wn#3P)s0$52zK~#9!ty4`;6HydBZ$3IxL52jECL*S_$cTJ}AovmZ1+Y+y z+K4XISRtYbVQXBdAq_!eqH9Pn#!7`BfCeVPAW&GiaHA2aNP&Tw_h#BY7t#qrWW`PH z;=Pk|-o5v{3+#79qv85Ju*RKt;`T##*OgXPlHzAiR|ab8E8ZDK(!+W>+n-86e^Z10 z?c-!}W|zSIuB)vjiu$r!uh2|J%hC=DRoClr!$_jHv%N1Uk{h>u*}?^vpRZ}qmp&Nt zGXOxgN;@VC!otJqDxc4F0EgoBkHz)R8+HQVzk(t5h5;?a4(HaK{wbe&TRuuQaloi1X66b7Js6&OY`eXc?O zG7G7tcJsIYy`q^@{^GF>QNHlFe>f3psx3{)YB03=QyDnfvSQ1=dr$g@N4<}fj|X=y zUXpn36*wQ+5ar9;r`>b2?HPb;oRF?Z18-jJwM=KC(J=WB*1YfA`v>dX9zW4_2%i7| N002ovPDHLkV1l+-LHGaw literal 0 HcwPel00001 diff --git a/CMakeLua/Source/QtDialog/Plus16.png b/CMakeLua/Source/QtDialog/Plus16.png new file mode 100644 index 0000000000000000000000000000000000000000..552f6f0045f036955e577ac8ca64650e58a083f1 GIT binary patch literal 358 zcwXxa@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#GUy~NYkmHirxiUnk8ypU!@Qr>oI5@}!XTZnLP> zL1)fBe)s8b)#Q*3r(_jpJ1k8zYo6(|XodbY;Z6Oe#jGh#DQO#9V$ZkFRW4B5^lXL8 z$1qW&eVkRyjXRQNo~(Z=q`F`V`|Zb^0!)GhyRUfMZH +#include + +#include "cmake.h" +#include "cmCacheManager.h" +#include "cmSystemTools.h" +#include "cmExternalMakefileProjectGenerator.h" + +QCMake::QCMake(QObject* p) + : QObject(p) +{ + qRegisterMetaType(); + qRegisterMetaType(); + + QDir appDir(QCoreApplication::applicationDirPath()); +#if defined(Q_OS_WIN) + this->CMakeExecutable = appDir.filePath("cmake.exe"); +#elif defined(Q_OS_MAC) + appDir.cd("../../../"); // path to cmake in build directory (need to fix for deployment) + this->CMakeExecutable = appDir.filePath("cmake"); +#else + this->CMakeExecutable = appDir.filePath("cmake"); +#endif + // TODO: check for existence? + + cmSystemTools::DisableRunCommandOutput(); + cmSystemTools::SetRunCommandHideConsole(true); + cmSystemTools::SetErrorCallback(QCMake::errorCallback, this); + + this->CMakeInstance = new cmake; + this->CMakeInstance->SetProgressCallback(QCMake::progressCallback, this); + + std::vector generators; + this->CMakeInstance->GetRegisteredGenerators(generators); + std::vector::iterator iter; + for(iter = generators.begin(); iter != generators.end(); ++iter) + { + this->AvailableGenerators.append(iter->c_str()); + } +} + +QCMake::~QCMake() +{ + delete this->CMakeInstance; + //cmDynamicLoader::FlushCache(); +} + +void QCMake::loadCache(const QString& dir) +{ + this->setBinaryDirectory(dir); +} + +void QCMake::setSourceDirectory(const QString& dir) +{ + if(this->SourceDirectory != dir) + { + this->SourceDirectory = dir; + emit this->sourceDirChanged(dir); + } +} + +void QCMake::setBinaryDirectory(const QString& dir) +{ + if(this->BinaryDirectory != dir) + { + cmCacheManager *cachem = this->CMakeInstance->GetCacheManager(); + this->BinaryDirectory = dir; + this->setGenerator(QString()); + if(!this->CMakeInstance->GetCacheManager()->LoadCache(dir.toLocal8Bit().data())) + { + QDir testDir(dir); + if(testDir.exists("CMakeCache.txt")) + { + cmSystemTools::Error("There is a CMakeCache.txt file for the current binary " + "tree but cmake does not have permission to read it. " + "Please check the permissions of the directory you are trying to run CMake on."); + } + } + QCMakeCachePropertyList props = this->properties(); + emit this->propertiesChanged(props); + cmCacheManager::CacheIterator itm = cachem->NewIterator(); + if ( itm.Find("CMAKE_HOME_DIRECTORY")) + { + setSourceDirectory(itm.GetValue()); + } + if ( itm.Find("CMAKE_GENERATOR")) + { + const char* extraGen = cachem->GetCacheValue("CMAKE_EXTRA_GENERATOR"); + std::string curGen = cmExternalMakefileProjectGenerator:: + CreateFullGeneratorName(itm.GetValue(), extraGen); + this->setGenerator(curGen.c_str()); + } + } +} + + +void QCMake::setGenerator(const QString& gen) +{ + if(this->Generator != gen) + { + this->Generator = gen; + emit this->generatorChanged(this->Generator); + } +} + +void QCMake::configure() +{ + this->CMakeInstance->SetHomeDirectory(this->SourceDirectory.toAscii().data()); + this->CMakeInstance->SetStartDirectory(this->SourceDirectory.toAscii().data()); + this->CMakeInstance->SetHomeOutputDirectory(this->BinaryDirectory.toAscii().data()); + this->CMakeInstance->SetStartOutputDirectory(this->BinaryDirectory.toAscii().data()); + this->CMakeInstance->SetGlobalGenerator( + this->CMakeInstance->CreateGlobalGenerator(this->Generator.toAscii().data())); + this->CMakeInstance->SetCMakeCommand(this->CMakeExecutable.toAscii().data()); + this->CMakeInstance->LoadCache(); + + cmSystemTools::ResetErrorOccuredFlag(); + + int err = this->CMakeInstance->Configure(); + + emit this->propertiesChanged(this->properties()); + emit this->configureDone(err); +} + +void QCMake::generate() +{ + cmSystemTools::ResetErrorOccuredFlag(); + int err = this->CMakeInstance->Generate(); + emit this->generateDone(err); +} + +void QCMake::setProperties(const QCMakeCachePropertyList& newProps) +{ + QCMakeCachePropertyList props = newProps; + + QStringList toremove; + + // set the value of properties + cmCacheManager *cachem = this->CMakeInstance->GetCacheManager(); + for(cmCacheManager::CacheIterator i = cachem->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + + if(i.GetType() == cmCacheManager::INTERNAL || + i.GetType() == cmCacheManager::STATIC) + { + continue; + } + + QCMakeCacheProperty prop; + prop.Key = i.GetName(); + int idx = props.indexOf(prop); + if(idx == -1) + { + toremove.append(i.GetName()); + } + else + { + prop = props[idx]; + if(prop.Value.type() == QVariant::Bool) + { + i.SetValue(prop.Value.toBool() ? "ON" : "OFF"); + } + else + { + i.SetValue(prop.Value.toString().toAscii().data()); + } + props.removeAt(idx); + } + + } + + // remove some properites + foreach(QString s, toremove) + { + cachem->RemoveCacheEntry(s.toAscii().data()); + } + + // add some new properites + foreach(QCMakeCacheProperty s, props) + { + if(s.Type == QCMakeCacheProperty::BOOL) + { + this->CMakeInstance->AddCacheEntry(s.Key.toAscii().data(), + s.Value.toBool() ? "ON" : "OFF", + s.Help.toAscii().data(), + cmCacheManager::BOOL); + } + else if(s.Type == QCMakeCacheProperty::STRING) + { + this->CMakeInstance->AddCacheEntry(s.Key.toAscii().data(), + s.Value.toString().toAscii().data(), + s.Help.toAscii().data(), + cmCacheManager::STRING); + } + else if(s.Type == QCMakeCacheProperty::PATH) + { + this->CMakeInstance->AddCacheEntry(s.Key.toAscii().data(), + s.Value.toString().toAscii().data(), + s.Help.toAscii().data(), + cmCacheManager::PATH); + } + else if(s.Type == QCMakeCacheProperty::FILEPATH) + { + this->CMakeInstance->AddCacheEntry(s.Key.toAscii().data(), + s.Value.toString().toAscii().data(), + s.Help.toAscii().data(), + cmCacheManager::FILEPATH); + } + } + + cachem->SaveCache(this->BinaryDirectory.toAscii().data()); +} + +QCMakeCachePropertyList QCMake::properties() const +{ + QCMakeCachePropertyList ret; + + cmCacheManager *cachem = this->CMakeInstance->GetCacheManager(); + for(cmCacheManager::CacheIterator i = cachem->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + + if(i.GetType() == cmCacheManager::INTERNAL || + i.GetType() == cmCacheManager::STATIC) + { + continue; + } + + QCMakeCacheProperty prop; + prop.Key = i.GetName(); + prop.Help = i.GetProperty("HELPSTRING"); + prop.Value = i.GetValue(); + prop.Advanced = i.GetPropertyAsBool("ADVANCED"); + + if(i.GetType() == cmCacheManager::BOOL) + { + prop.Type = QCMakeCacheProperty::BOOL; + prop.Value = cmSystemTools::IsOn(i.GetValue()); + } + else if(i.GetType() == cmCacheManager::PATH) + { + prop.Type = QCMakeCacheProperty::PATH; + } + else if(i.GetType() == cmCacheManager::FILEPATH) + { + prop.Type = QCMakeCacheProperty::FILEPATH; + } + else if(i.GetType() == cmCacheManager::STRING) + { + prop.Type = QCMakeCacheProperty::STRING; + } + + ret.append(prop); + } + + return ret; +} + +void QCMake::interrupt() +{ + cmSystemTools::SetFatalErrorOccured(); +} + +void QCMake::progressCallback(const char* msg, float percent, void* cd) +{ + QCMake* self = reinterpret_cast(cd); + if(percent >= 0) + { + emit self->progressChanged(msg, percent); + } + else + { + emit self->outputMessage(msg); + } + QCoreApplication::processEvents(); +} + +void QCMake::errorCallback(const char* msg, const char* /*title*/, + bool& /*stop*/, void* cd) +{ + QCMake* self = reinterpret_cast(cd); + emit self->errorMessage(msg); + QCoreApplication::processEvents(); +} + +QString QCMake::binaryDirectory() const +{ + return this->BinaryDirectory; +} + +QString QCMake::sourceDirectory() const +{ + return this->SourceDirectory; +} + +QString QCMake::generator() const +{ + return this->Generator; +} + +QStringList QCMake::availableGenerators() const +{ + return this->AvailableGenerators; +} + +void QCMake::deleteCache() +{ + // delete cache + this->CMakeInstance->GetCacheManager()->DeleteCache(this->BinaryDirectory.toAscii().data()); + // reload to make our cache empty + this->CMakeInstance->GetCacheManager()->LoadCache(this->BinaryDirectory.toAscii().data()); + // emit no generator and no properties + this->setGenerator(QString()); + QCMakeCachePropertyList props = this->properties(); + emit this->propertiesChanged(props); +} + +void QCMake::reloadCache() +{ + // emit that the cache was cleaned out + QCMakeCachePropertyList props; + emit this->propertiesChanged(props); + // reload + this->CMakeInstance->GetCacheManager()->LoadCache(this->BinaryDirectory.toAscii().data()); + // emit new cache properties + props = this->properties(); + emit this->propertiesChanged(props); +} + diff --git a/CMakeLua/Source/QtDialog/QCMake.h b/CMakeLua/Source/QtDialog/QCMake.h new file mode 100644 index 0000000..8d1bb9c --- /dev/null +++ b/CMakeLua/Source/QtDialog/QCMake.h @@ -0,0 +1,137 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: QCMake.h,v $ + Language: C++ + Date: $Date: 2007/11/09 20:18:49 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef __QCMake_h +#define __QCMake_h +#ifdef _MSC_VER +#pragma warning ( disable : 4127 ) +#pragma warning ( disable : 4512 ) +#endif + +#include +#include +#include +#include +#include +#include + +class cmake; + +/// struct to represent cache properties in Qt +/// Value is of type String or Bool +struct QCMakeCacheProperty +{ + enum PropertyType { BOOL, PATH, FILEPATH, STRING }; + QString Key; + QVariant Value; + QString Help; + PropertyType Type; + bool Advanced; + bool operator==(const QCMakeCacheProperty& other) const + { + return this->Key == other.Key; + } + bool operator<(const QCMakeCacheProperty& other) const + { + return this->Key < other.Key; + } +}; + +// make types usable with QVariant +Q_DECLARE_METATYPE(QCMakeCacheProperty) +typedef QList QCMakeCachePropertyList; +Q_DECLARE_METATYPE(QCMakeCachePropertyList) + +/// Qt API for CMake library. +/// Wrapper like class allows for easier integration with +/// Qt features such as, signal/slot connections, multi-threading, etc.. +class QCMake : public QObject +{ + Q_OBJECT +public: + QCMake(QObject* p=0); + ~QCMake(); + +public slots: + /// load the cache file in a directory + void loadCache(const QString& dir); + /// set the source directory containing the source + void setSourceDirectory(const QString& dir); + /// set the binary directory to build in + void setBinaryDirectory(const QString& dir); + /// set the desired generator to use + void setGenerator(const QString& generator); + /// do the configure step + void configure(); + /// generate the files + void generate(); + /// set the property values + void setProperties(const QCMakeCachePropertyList&); + /// interrupt the configure or generate process + void interrupt(); + /// delete the cache in binary directory + void deleteCache(); + /// reload the cache in binary directory + void reloadCache(); + +public: + /// get the list of cache properties + QCMakeCachePropertyList properties() const; + /// get the current binary directory + QString binaryDirectory() const; + /// get the current source directory + QString sourceDirectory() const; + /// get the current generator + QString generator() const; + /// get the available generators + QStringList availableGenerators() const; + +signals: + /// signal when properties change (during read from disk or configure process) + void propertiesChanged(const QCMakeCachePropertyList& vars); + /// signal when the generator changes + void generatorChanged(const QString& gen); + /// signal when the source directory changes (binary directory already + /// containing a CMakeCache.txt file) + void sourceDirChanged(const QString& dir); + /// signal for progress events + void progressChanged(const QString& msg, float percent); + /// signal when configure is done + void configureDone(int error); + /// signal when generate is done + void generateDone(int error); + /// signal when there is an output message + void outputMessage(const QString& msg); + /// signal when there is an error message + void errorMessage(const QString& msg); + +protected: + cmake* CMakeInstance; + + static void progressCallback(const char* msg, float percent, void* cd); + static void errorCallback(const char* msg, const char* title, + bool&, void* cd); + + QString SourceDirectory; + QString BinaryDirectory; + QString Generator; + QStringList AvailableGenerators; + QString CMakeExecutable; +}; + +#endif // __QCMake_h + diff --git a/CMakeLua/Source/QtDialog/QCMakeCacheView.cxx b/CMakeLua/Source/QtDialog/QCMakeCacheView.cxx new file mode 100644 index 0000000..6476b9e --- /dev/null +++ b/CMakeLua/Source/QtDialog/QCMakeCacheView.cxx @@ -0,0 +1,523 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: QCMakeCacheView.cxx,v $ + Language: C++ + Date: $Date: 2007/11/16 15:40:23 $ + Version: $Revision: 1.21 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "QCMakeCacheView.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static QRegExp AdvancedRegExp[2] = { QRegExp("(false)"), QRegExp("(true|false)") }; + +// filter for searches +class QCMakeSearchFilter : public QSortFilterProxyModel +{ +public: + QCMakeSearchFilter(QObject* o) : QSortFilterProxyModel(o) {} +protected: + bool filterAcceptsRow(int row, const QModelIndex& p) const + { + // accept row if either column matches + QModelIndex idx0 = this->sourceModel()->index(row, 0, p); + QModelIndex idx1 = this->sourceModel()->index(row, 1, p); + QString str0 = this->sourceModel()->data(idx0).toString(); + QString str1 = this->sourceModel()->data(idx1).toString(); + + return str0.contains(this->filterRegExp()) || + str1.contains(this->filterRegExp()); + } +}; + +QCMakeCacheView::QCMakeCacheView(QWidget* p) + : QTableView(p), Init(false) +{ + // hook up our model and search/filter proxies + this->CacheModel = new QCMakeCacheModel(this); + this->AdvancedFilter = new QSortFilterProxyModel(this); + this->AdvancedFilter->setSourceModel(this->CacheModel); + this->AdvancedFilter->setFilterRole(QCMakeCacheModel::AdvancedRole); + this->AdvancedFilter->setFilterRegExp(AdvancedRegExp[0]); + this->AdvancedFilter->setDynamicSortFilter(true); + this->SearchFilter = new QCMakeSearchFilter(this); + this->SearchFilter->setSourceModel(this->AdvancedFilter); + this->SearchFilter->setFilterCaseSensitivity(Qt::CaseInsensitive); + this->SearchFilter->setDynamicSortFilter(true); + this->setModel(this->SearchFilter); + + // our delegate for creating our editors + QCMakeCacheModelDelegate* delegate = new QCMakeCacheModelDelegate(this); + this->setItemDelegate(delegate); + + this->setEditTriggers(QAbstractItemView::AllEditTriggers); + + // set up headers and sizes + int h = 0; + QFontMetrics met(this->font()); + h = qMax(met.height(), this->style()->pixelMetric(QStyle::PM_IndicatorHeight)); + this->verticalHeader()->setDefaultSectionSize(h + 4); + this->horizontalHeader()->setStretchLastSection(true); + this->verticalHeader()->hide(); +} + +void QCMakeCacheView::showEvent(QShowEvent* e) +{ + if(!this->Init) + { + // initialize the table view column size + int colWidth = this->columnWidth(0) + this->columnWidth(1); + this->setColumnWidth(0, colWidth/2); + this->setColumnWidth(1, colWidth/2); + this->Init = true; + } + return QTableView::showEvent(e); +} + +QCMakeCacheModel* QCMakeCacheView::cacheModel() const +{ + return this->CacheModel; +} + +QModelIndex QCMakeCacheView::moveCursor(CursorAction act, + Qt::KeyboardModifiers mod) +{ + // tab through values only (not names) + QModelIndex current = this->currentIndex(); + if(act == MoveNext) + { + if(!current.isValid()) + { + return this->model()->index(0, 1); + } + else if(current.column() == 0) + { + return this->model()->index(current.row(), 1); + } + else + { + return this->model()->index(current.row()+1, 1); + } + } + else if(act == MovePrevious) + { + if(!current.isValid()) + { + return this->model()->index(0, 1); + } + else + { + return this->model()->index(current.row()-1, 1); + } + } + return QTableView::moveCursor(act, mod); +} + +void QCMakeCacheView::setShowAdvanced(bool s) +{ + this->AdvancedFilter->setFilterRegExp( + s ? AdvancedRegExp[1] : AdvancedRegExp[0]); +} + +bool QCMakeCacheView::showAdvanced() const +{ + return this->AdvancedFilter->filterRegExp() == AdvancedRegExp[1]; +} + +void QCMakeCacheView::setSearchFilter(const QString& s) +{ + this->SearchFilter->setFilterFixedString(s); +} + +QCMakeCacheModel::QCMakeCacheModel(QObject* p) + : QAbstractTableModel(p), + NewCount(0), EditEnabled(true) +{ +} + +QCMakeCacheModel::~QCMakeCacheModel() +{ +} + +static uint qHash(const QCMakeCacheProperty& p) +{ + return qHash(p.Key); +} + +void QCMakeCacheModel::clear() +{ + this->setProperties(QCMakeCachePropertyList()); +} + +void QCMakeCacheModel::setProperties(const QCMakeCachePropertyList& props) +{ + QSet newProps = props.toSet(); + QSet newProps2 = props.toSet(); + QSet oldProps = this->Properties.toSet(); + + oldProps.intersect(newProps); + newProps.subtract(oldProps); + newProps2.subtract(newProps); + + this->NewCount = newProps.count(); + this->Properties.clear(); + + this->Properties = newProps.toList(); + qSort(this->Properties); + QCMakeCachePropertyList tmp = newProps2.toList(); + qSort(tmp); + this->Properties += tmp; + + this->reset(); +} + +QCMakeCachePropertyList QCMakeCacheModel::properties() const +{ + return this->Properties; +} + +void QCMakeCacheModel::setEditEnabled(bool e) +{ + this->EditEnabled = e; +} + +bool QCMakeCacheModel::editEnabled() const +{ + return this->EditEnabled; +} + +int QCMakeCacheModel::newCount() const +{ + return this->NewCount; +} + +int QCMakeCacheModel::columnCount (const QModelIndex& /*p*/ ) const +{ + return 2; +} + +QVariant QCMakeCacheModel::data (const QModelIndex& idx, int role) const +{ + if(idx.column() == 0 && (role == Qt::DisplayRole || role == Qt::EditRole)) + { + return this->Properties[idx.row()].Key; + } + else if(idx.column() == 0 && role == Qt::ToolTipRole) + { + return this->data(idx, Qt::DisplayRole).toString() + "\n" + + this->data(idx, QCMakeCacheModel::HelpRole).toString(); + } + else if(idx.column() == 1 && (role == Qt::DisplayRole || role == Qt::EditRole)) + { + if(this->Properties[idx.row()].Type != QCMakeCacheProperty::BOOL) + { + return this->Properties[idx.row()].Value; + } + } + else if(idx.column() == 1 && role == Qt::CheckStateRole) + { + if(this->Properties[idx.row()].Type == QCMakeCacheProperty::BOOL) + { + return this->Properties[idx.row()].Value.toBool() ? Qt::Checked : Qt::Unchecked; + } + } + else if(role == QCMakeCacheModel::HelpRole) + { + return this->Properties[idx.row()].Help; + } + else if(role == QCMakeCacheModel::TypeRole) + { + return this->Properties[idx.row()].Type; + } + else if(role == QCMakeCacheModel::AdvancedRole) + { + return this->Properties[idx.row()].Advanced; + } + else if(role == Qt::BackgroundRole && idx.row()+1 <= this->NewCount) + { + return QBrush(QColor(255,100,100)); + } + return QVariant(); +} + +QModelIndex QCMakeCacheModel::parent (const QModelIndex& /*idx*/) const +{ + return QModelIndex(); +} + +int QCMakeCacheModel::rowCount (const QModelIndex& p) const +{ + if(p.isValid()) + { + return 0; + } + return this->Properties.count(); +} + +QVariant QCMakeCacheModel::headerData (int section, Qt::Orientation orient, int role) const +{ + // return header labels + if(role == Qt::DisplayRole && orient == Qt::Horizontal) + { + return section == 0 ? "Name" : "Value"; + } + return QVariant(); +} + +Qt::ItemFlags QCMakeCacheModel::flags (const QModelIndex& idx) const +{ + Qt::ItemFlags f = Qt::ItemIsEnabled | Qt::ItemIsSelectable; + // all column 1's are editable + if(idx.column() == 1 && this->EditEnabled) + { + f |= Qt::ItemIsEditable; + // booleans are editable in place + if(this->Properties[idx.row()].Type == QCMakeCacheProperty::BOOL) + { + f |= Qt::ItemIsUserCheckable; + } + } + return f; +} + + +bool QCMakeCacheModel::setData (const QModelIndex& idx, const QVariant& value, int role) +{ + if(idx.column() == 0 && (role == Qt::DisplayRole || role == Qt::EditRole)) + { + this->Properties[idx.row()].Key = value.toString(); + emit this->dataChanged(idx, idx); + } + else if(idx.column() == 1 && (role == Qt::DisplayRole || role == Qt::EditRole)) + { + this->Properties[idx.row()].Value = value.toString(); + emit this->dataChanged(idx, idx); + } + else if(idx.column() == 1 && (role == Qt::CheckStateRole)) + { + this->Properties[idx.row()].Value = value.toInt() == Qt::Checked; + emit this->dataChanged(idx, idx); + } + else if(role == QCMakeCacheModel::HelpRole) + { + this->Properties[idx.row()].Help = value.toString(); + emit this->dataChanged(idx, idx); + } + else if(role == QCMakeCacheModel::TypeRole) + { + this->Properties[idx.row()].Type = static_cast(value.toInt()); + } + else if(role == QCMakeCacheModel::AdvancedRole) + { + this->Properties[idx.row()].Advanced = value.toBool(); + } + return false; +} + +QModelIndex QCMakeCacheModel::buddy(const QModelIndex& idx) const +{ + if(idx.column() == 0) + { + if(this->Properties[idx.row()].Type != QCMakeCacheProperty::BOOL) + { + return this->index(idx.row(), 1); + } + } + return idx; +} + +bool QCMakeCacheModel::removeRows(int row, int num, const QModelIndex&) +{ + if(row < 0 || row+num > this->Properties.count()) + { + return false; + } + this->beginRemoveRows(QModelIndex(), row, row+num-1); + for(int i=0; iProperties.removeAt(row); + if(this->NewCount >= row+1) + { + this->NewCount--; + } + } + this->endRemoveRows(); + return true; +} + +bool QCMakeCacheModel::insertRows(int row, int num, const QModelIndex&) +{ + if(row < 0) + row = 0; + if(row > this->rowCount()) + row = this->rowCount(); + + this->beginInsertRows(QModelIndex(), row, row+num-1); + for(int i=0; iProperties.insert(row+i, QCMakeCacheProperty()); + if(this->NewCount >= row) + { + this->NewCount++; + } + } + this->endInsertRows(); + return true; +} + +QCMakeCacheModelDelegate::QCMakeCacheModelDelegate(QObject* p) + : QItemDelegate(p) +{ +} + +QWidget* QCMakeCacheModelDelegate::createEditor(QWidget* p, + const QStyleOptionViewItem&, const QModelIndex& idx) const +{ + QVariant type = idx.data(QCMakeCacheModel::TypeRole); + if(type == QCMakeCacheProperty::BOOL) + { + return NULL; + } + else if(type == QCMakeCacheProperty::PATH) + { + return new QCMakeCachePathEditor(p); + } + else if(type == QCMakeCacheProperty::FILEPATH) + { + return new QCMakeCacheFilePathEditor(p); + } + + return new QLineEdit(p); +} + +bool QCMakeCacheModelDelegate::editorEvent(QEvent* e, QAbstractItemModel* model, + const QStyleOptionViewItem& option, const QModelIndex& index) +{ + Qt::ItemFlags flags = model->flags(index); + if (!(flags & Qt::ItemIsUserCheckable) || !(option.state & QStyle::State_Enabled) + || !(flags & Qt::ItemIsEnabled)) + { + return false; + } + + QVariant value = index.data(Qt::CheckStateRole); + if (!value.isValid()) + { + return false; + } + + if ((e->type() == QEvent::MouseButtonRelease) + || (e->type() == QEvent::MouseButtonDblClick)) + { + // eat the double click events inside the check rect + if (e->type() == QEvent::MouseButtonDblClick) + { + return true; + } + } + else if (e->type() == QEvent::KeyPress) + { + if(static_cast(e)->key() != Qt::Key_Space && + static_cast(e)->key() != Qt::Key_Select) + { + return false; + } + } + else + { + return false; + } + + Qt::CheckState state = (static_cast(value.toInt()) == Qt::Checked + ? Qt::Unchecked : Qt::Checked); + return model->setData(index, state, Qt::CheckStateRole); +} + +QCMakeCacheFileEditor::QCMakeCacheFileEditor(QWidget* p) + : QLineEdit(p) +{ + // this *is* instead of has a line edit so QAbstractItemView + // doesn't get confused with what the editor really is + this->setContentsMargins(0, 0, 0, 0); + this->ToolButton = new QToolButton(this); + this->ToolButton->setText("..."); + this->ToolButton->setCursor(QCursor(Qt::ArrowCursor)); + QObject::connect(this->ToolButton, SIGNAL(clicked(bool)), + this, SLOT(chooseFile())); +} + +QCMakeCacheFilePathEditor::QCMakeCacheFilePathEditor(QWidget* p) + : QCMakeCacheFileEditor(p) +{ + QCompleter* comp = new QCompleter(this); + QDirModel* model = new QDirModel(comp); + comp->setModel(model); + this->setCompleter(comp); +} + +QCMakeCachePathEditor::QCMakeCachePathEditor(QWidget* p) + : QCMakeCacheFileEditor(p) +{ + QCompleter* comp = new QCompleter(this); + QDirModel* model = new QDirModel(comp); + model->setFilter(QDir::AllDirs | QDir::Drives); + comp->setModel(model); + this->setCompleter(comp); +} + +void QCMakeCacheFileEditor::resizeEvent(QResizeEvent* e) +{ + // make the tool button fit on the right side + int h = e->size().height(); + this->ToolButton->resize(h, h); + this->ToolButton->move(this->width() - h, 0); + this->setContentsMargins(0, 0, h, 0); +} + +void QCMakeCacheFilePathEditor::chooseFile() +{ + // choose a file and set it + QString path; + QFileInfo info(this->text()); + path = QFileDialog::getOpenFileName(this, tr("Select File"), + info.absolutePath()); + + if(!path.isEmpty()) + { + this->setText(path); + } +} + +void QCMakeCachePathEditor::chooseFile() +{ + // choose a file and set it + QString path; + path = QFileDialog::getExistingDirectory(this, tr("Select Path"), + this->text()); + if(!path.isEmpty()) + { + this->setText(path); + } +} + + diff --git a/CMakeLua/Source/QtDialog/QCMakeCacheView.h b/CMakeLua/Source/QtDialog/QCMakeCacheView.h new file mode 100644 index 0000000..476ca98 --- /dev/null +++ b/CMakeLua/Source/QtDialog/QCMakeCacheView.h @@ -0,0 +1,142 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: QCMakeCacheView.h,v $ + Language: C++ + Date: $Date: 2007/11/13 05:17:10 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef QCMakeCacheView_h +#define QCMakeCacheView_h + +#include "QCMake.h" +#include +#include +#include +#include +#include +#include + +class QCMakeCacheModel; +class QToolButton; + + +/// Qt view class for cache properties +class QCMakeCacheView : public QTableView +{ + Q_OBJECT +public: + QCMakeCacheView(QWidget* p); + + QCMakeCacheModel* cacheModel() const; + bool showAdvanced() const; + +public slots: + void setShowAdvanced(bool); + void setSearchFilter(const QString&); + +protected: + QModelIndex moveCursor(CursorAction, Qt::KeyboardModifiers); + void showEvent(QShowEvent* e); + bool Init; + QCMakeCacheModel* CacheModel; + QSortFilterProxyModel* AdvancedFilter; + QSortFilterProxyModel* SearchFilter; +}; + +/// Qt model class for cache properties +class QCMakeCacheModel : public QAbstractTableModel +{ + Q_OBJECT +public: + QCMakeCacheModel(QObject* parent); + ~QCMakeCacheModel(); + + enum { HelpRole = Qt::UserRole, TypeRole, AdvancedRole }; + +public slots: + void setProperties(const QCMakeCachePropertyList& props); + void clear(); + void setEditEnabled(bool); + bool removeRows(int row, int count, const QModelIndex& idx = QModelIndex()); + bool insertRows(int row, int num, const QModelIndex&); + +public: + // satisfy [pure] virtuals + int columnCount (const QModelIndex& parent) const; + QVariant data (const QModelIndex& index, int role = Qt::DisplayRole) const; + QModelIndex parent (const QModelIndex& index) const; + int rowCount (const QModelIndex& parent = QModelIndex()) const; + QVariant headerData (int section, Qt::Orientation orient, int role) const; + Qt::ItemFlags flags (const QModelIndex& index) const; + bool setData (const QModelIndex& index, const QVariant& value, int role); + QModelIndex buddy (const QModelIndex& index) const; + + // get the properties + QCMakeCachePropertyList properties() const; + + // editing enabled + bool editEnabled() const; + + int newCount() const; + +protected: + QCMakeCachePropertyList Properties; + int NewCount; + bool EditEnabled; +}; + +/// Qt delegate class for interaction (or other customization) +/// with cache properties +class QCMakeCacheModelDelegate : public QItemDelegate +{ + Q_OBJECT +public: + QCMakeCacheModelDelegate(QObject* p); + /// create our own editors for cache properties + QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, + const QModelIndex& index ) const; + bool editorEvent (QEvent* event, QAbstractItemModel* model, + const QStyleOptionViewItem& option, const QModelIndex& index); +}; + +/// Editor widget for editing paths or file paths +class QCMakeCacheFileEditor : public QLineEdit +{ + Q_OBJECT +public: + QCMakeCacheFileEditor(QWidget* p); +protected slots: + virtual void chooseFile() = 0; +protected: + void resizeEvent(QResizeEvent* e); + QToolButton* ToolButton; +}; + +class QCMakeCachePathEditor : public QCMakeCacheFileEditor +{ + Q_OBJECT +public: + QCMakeCachePathEditor(QWidget* p = NULL); + void chooseFile(); +}; + +class QCMakeCacheFilePathEditor : public QCMakeCacheFileEditor +{ + Q_OBJECT +public: + QCMakeCacheFilePathEditor(QWidget* p = NULL); + void chooseFile(); +}; + +#endif + diff --git a/CMakeLua/Source/QtDialog/README b/CMakeLua/Source/QtDialog/README new file mode 100755 index 0000000..0701a2b --- /dev/null +++ b/CMakeLua/Source/QtDialog/README @@ -0,0 +1,3 @@ +This is the Qt interface to CMake. It has a BSD license compatible with the +Qt license exception. Only developers with a paid QT license are permitted +to make changes to this code. Small patches and bug fixes can diff --git a/CMakeLua/Source/WXDialog/CMakeIcon.xpm b/CMakeLua/Source/WXDialog/CMakeIcon.xpm new file mode 100644 index 0000000..4c694c3 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeIcon.xpm @@ -0,0 +1,276 @@ +/* XPM */ +static char *CMakeIcon_xpm[] = { +"16 16 256 3", +"000 c black", +"001 c #003F00", +"002 c #003F3F", +"003 c #3F0000", +"004 c #3F003F", +"005 c #3F3F00", +"006 c gray19", +"007 c #00007F", +"008 c #007F00", +"009 c #306F30", +"010 c #7F0000", +"011 c #606060", +"012 c #0000BF", +"013 c blue", +"014 c #00BF00", +"015 c green", +"016 c #BF0000", +"017 c red", +"018 c #909090", +"019 c #C0C0C0", +"020 c none", +"021 c black", +"022 c black", +"023 c black", +"024 c black", +"025 c black", +"026 c black", +"027 c black", +"028 c black", +"029 c black", +"030 c black", +"031 c black", +"032 c black", +"033 c black", +"034 c black", +"035 c black", +"036 c black", +"037 c black", +"038 c black", +"039 c black", +"040 c black", +"041 c black", +"042 c black", +"043 c black", +"044 c black", +"045 c black", +"046 c black", +"047 c black", +"048 c black", +"049 c black", +"050 c black", +"051 c black", +"052 c black", +"053 c black", +"054 c black", +"055 c black", +"056 c black", +"057 c black", +"058 c black", +"059 c black", +"060 c black", +"061 c black", +"062 c black", +"063 c black", +"064 c black", +"065 c black", +"066 c black", +"067 c black", +"068 c black", +"069 c black", +"070 c black", +"071 c black", +"072 c black", +"073 c black", +"074 c black", +"075 c black", +"076 c black", +"077 c black", +"078 c black", +"079 c black", +"080 c black", +"081 c black", +"082 c black", +"083 c black", +"084 c black", +"085 c black", +"086 c black", +"087 c black", +"088 c black", +"089 c black", +"090 c black", +"091 c black", +"092 c black", +"093 c black", +"094 c black", +"095 c black", +"096 c black", +"097 c black", +"098 c black", +"099 c black", +"100 c black", +"101 c black", +"102 c black", +"103 c black", +"104 c black", +"105 c black", +"106 c black", +"107 c black", +"108 c black", +"109 c black", +"110 c black", +"111 c black", +"112 c black", +"113 c black", +"114 c black", +"115 c black", +"116 c black", +"117 c black", +"118 c black", +"119 c black", +"120 c black", +"121 c black", +"122 c black", +"123 c black", +"124 c black", +"125 c black", +"126 c black", +"127 c black", +"128 c black", +"129 c black", +"130 c black", +"131 c black", +"132 c black", +"133 c black", +"134 c black", +"135 c black", +"136 c black", +"137 c black", +"138 c black", +"139 c black", +"140 c black", +"141 c black", +"142 c black", +"143 c black", +"144 c black", +"145 c black", +"146 c black", +"147 c black", +"148 c black", +"149 c black", +"150 c black", +"151 c black", +"152 c black", +"153 c black", +"154 c black", +"155 c black", +"156 c black", +"157 c black", +"158 c black", +"159 c black", +"160 c black", +"161 c black", +"162 c black", +"163 c black", +"164 c black", +"165 c black", +"166 c black", +"167 c black", +"168 c black", +"169 c black", +"170 c black", +"171 c black", +"172 c black", +"173 c black", +"174 c black", +"175 c black", +"176 c black", +"177 c black", +"178 c black", +"179 c black", +"180 c black", +"181 c black", +"182 c black", +"183 c black", +"184 c black", +"185 c black", +"186 c black", +"187 c black", +"188 c black", +"189 c black", +"190 c black", +"191 c black", +"192 c black", +"193 c black", +"194 c black", +"195 c black", +"196 c black", +"197 c black", +"198 c black", +"199 c black", +"200 c black", +"201 c black", +"202 c black", +"203 c black", +"204 c black", +"205 c black", +"206 c black", +"207 c black", +"208 c black", +"209 c black", +"210 c black", +"211 c black", +"212 c black", +"213 c black", +"214 c black", +"215 c black", +"216 c black", +"217 c black", +"218 c black", +"219 c black", +"220 c black", +"221 c black", +"222 c black", +"223 c black", +"224 c black", +"225 c black", +"226 c black", +"227 c black", +"228 c black", +"229 c black", +"230 c black", +"231 c black", +"232 c black", +"233 c black", +"234 c black", +"235 c black", +"236 c black", +"237 c black", +"238 c black", +"239 c black", +"240 c black", +"241 c black", +"242 c black", +"243 c black", +"244 c black", +"245 c black", +"246 c black", +"247 c black", +"248 c black", +"249 c black", +"250 c black", +"251 c black", +"252 c black", +"253 c black", +"254 c black", +"255 c black", +"020020020020020020020020020020020020020020020020", +"020020020020020020020000000020020020020020020020", +"020020020020020020020000003020020020020020020020", +"020020020020020020000012010000020020020020020020", +"020020020020020020007013010003020020020020020020", +"020020020020020000013013010016000020020020020020", +"020020020020020007013013004017003020020020020020", +"020020020020000013013013007017016000020020020020", +"020020020020007013013012006017017003020020020020", +"020020020000012013012018011017017016000020020020", +"020020020007013012009018019010017017003020020020", +"020020000013012014015014009010017017016000020020", +"020020007007014015015015015008005016017003020020", +"020000002015015015015015015015015014005010000020", +"020000008008008008008008008008008008008001000020", +"020020020020020020020020020020020020020020020020" +}; diff --git a/CMakeLua/Source/WXDialog/CMakeLists.txt b/CMakeLua/Source/WXDialog/CMakeLists.txt new file mode 100644 index 0000000..7249bd6 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeLists.txt @@ -0,0 +1,87 @@ +##--------------------------------------------------------------------------- +## $RCSfile: CMakeLists.txt,v $ +## $Source: /cvsroot/CMake/CMake/Source/WXDialog/CMakeLists.txt,v $ +## $Revision: 1.25 $ +## $Date: 2007/11/05 19:47:20 $ +##--------------------------------------------------------------------------- +## Author: Jorgen Bodde +## Copyright: (c) Jorgen Bodde +## License: wxWidgets License +##--------------------------------------------------------------------------- + +# wxWindows -> wxWidgets Jan Woetzel 07/2006 +# tested with wx 2.6.3 with "multilib" build on Windows XP + +# CMake Options +SET(CMAKE_VERBOSE_MAKEFILE TRUE) + +# suppress wx header warnings? +#SET(HAVE_ISYSTEM 1) + +# in addition to wx std libs we need +SET( wxWidgets_USE_LIBS + std + html adv xml xrc ) +FIND_PACKAGE(wxWidgets REQUIRED) +#INCLUDE(${CMAKE_ROOT}/Modules/FindwxWidgets.cmake) + +# Start using wx stuff when it is fully found and set +IF(wxWidgets_FOUND) + INCLUDE( ${wxWidgets_USE_FILE} ) + + SET (CMAKE_SRCS + CMakeSetupFrame.cpp + CMakeSetup.cpp + CMakeSetupFrame.h + CMakeSetup.h + PropertyList.cpp + PropertyList.h + app_resources.cpp + app_resources.h + progressdlg.cpp + progressdlg.h + aboutdlg.cpp + aboutdlg.h + optionsdlg.cpp + optionsdlg.h + config.h + CommandLineInfo.cpp + CommandLineInfo.h ) + + # include .rc when windows + IF(WIN32) + SET ( CMAKE_SRCS ${CMAKE_SRCS} CMakeSetup.rc ) + ENDIF(WIN32) + + INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Source/WXDialog + ${wxWidgets_INCLUDE_DIR} ) + LINK_DIRECTORIES( ${wxWidgets_LINK_DIRECTORIES} + ${CMake_BINARY_DIR}/Source + ${CMake_BINARY_DIR}/Source/kwsys ) + + IF(APPLE) + ADD_EXECUTABLE(WXDialog MACOSX_BUNDLE ${CMAKE_SRCS}) + ELSE(APPLE) + ADD_EXECUTABLE(WXDialog WIN32 ${CMAKE_SRCS}) + ENDIF(APPLE) + INSTALL_TARGETS(/bin WXDialog) + + # not required on MSVS beause bound to _DEBUG, + # but other compiler may need it. + # However, the define prevents multiple build configurations + # in one build tree, + # e.g. MSVS supports Debug;Release + # TODO: shall we add the define or not - + # favor multi config or all compilers? (JW) + SET(CMAKE_CXX_FLAGS_DEBUG + "${CMAKE_CXX_FLAGS_DEBUG} -D__WXDEBUG__ -DWXDEBUG=1") + + IF(LINUX) + ADD_DEFINITIONS( -DLINUX=1 ) + ENDIF(LINUX) + + # if the checkbox view functionality is not desired, + # exclude this part from the smple + TARGET_LINK_LIBRARIES(WXDialog ${wxWidgets_LIBRARIES} cmsys CMakeLib) + INSTALL_TARGETS(/bin WXDialog) +ENDIF(wxWidgets_FOUND) diff --git a/CMakeLua/Source/WXDialog/CMakeSetup.cpp b/CMakeLua/Source/WXDialog/CMakeSetup.cpp new file mode 100644 index 0000000..81c0229 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeSetup.cpp @@ -0,0 +1,123 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: CMakeSetup.cpp,v $ + Language: C++ + Date: $Date: 2005/08/09 19:42:49 $ + Version: $Revision: 1.3 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma implementation "CMakeSetup.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +////@begin includes +////@end includes + +#include + +#include "cmSystemTools.h" +#include "CommandLineInfo.h" + +#include "CMakeSetup.h" +#include "CMakeSetupFrame.h" + +////@begin XPM images +////@end XPM images + +/*! + * Application instance implementation + */ + +////@begin implement app +IMPLEMENT_APP( CMakeSetupApp ) +////@end implement app + +/*! + * CMakeSetupApp type definition + */ + +IMPLEMENT_CLASS( CMakeSetupApp, wxApp ) + +/*! + * CMakeSetupApp event table definition + */ + +BEGIN_EVENT_TABLE( CMakeSetupApp, wxApp ) + +////@begin CMakeSetupApp event table entries +////@end CMakeSetupApp event table entries + +END_EVENT_TABLE() + +/*! + * Constructor for CMakeSetupApp + */ + +CMakeSetupApp::CMakeSetupApp() +{ +////@begin CMakeSetupApp member initialisation +////@end CMakeSetupApp member initialisation +} + +/*! + * Initialisation for CMakeSetupApp + */ + +bool CMakeSetupApp::OnInit() +{ + cmSystemTools::DisableRunCommandOutput(); + + // parse command line params + cmCommandLineInfo cm; + if(!cm.ParseCommandLine(wxApp::argc, wxApp::argv)) + { + printf("Error while parsing the command line\n"); + return false; + } + + // set vendor name and app for config + SetVendorName("Kitware"); + SetAppName("CMakeSetup"); + + CMakeSetupFrm *MyFrame = new CMakeSetupFrm(NULL); + + // alternative app path way, somehow otherwise it does not work + wxFileName fname(argv[0]); + MyFrame->DoInitFrame(cm, fname.GetPath(wxPATH_GET_SEPARATOR | wxPATH_GET_VOLUME)); + MyFrame->Show(TRUE); + + return true; +} + +/*! + * Cleanup for CMakeSetupApp + */ +int CMakeSetupApp::OnExit() +{ +////@begin CMakeSetupApp cleanup + return wxApp::OnExit(); +////@end CMakeSetupApp cleanup +} + diff --git a/CMakeLua/Source/WXDialog/CMakeSetup.h b/CMakeLua/Source/WXDialog/CMakeSetup.h new file mode 100644 index 0000000..12d61bc --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeSetup.h @@ -0,0 +1,92 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: CMakeSetup.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef _CMAKESETUP_H_ +#define _CMAKESETUP_H_ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "CMakeSetup.cpp" +#endif + +/*! + * Includes + */ + +////@begin includes +#include "wx/image.h" +////@end includes + +/*! + * Forward declarations + */ + +////@begin forward declarations +////@end forward declarations + +/*! + * Control identifiers + */ + +////@begin control identifiers +////@end control identifiers + +/*! + * CMakeSetupApp class declaration + */ + +class CMakeSetupApp: public wxApp +{ + DECLARE_CLASS( CMakeSetupApp ) + DECLARE_EVENT_TABLE() + +public: + /// Constructor + CMakeSetupApp(); + + /// Initialises the application + virtual bool OnInit(); + + /// Called on exit + virtual int OnExit(); + +////@begin CMakeSetupApp event handler declarations + +////@end CMakeSetupApp event handler declarations + +////@begin CMakeSetupApp member function declarations + +////@end CMakeSetupApp member function declarations + +////@begin CMakeSetupApp member variables +////@end CMakeSetupApp member variables + +private: + wxString m_AppPath; +}; + +/*! + * Application instance declaration + */ + +////@begin declare app +DECLARE_APP(CMakeSetupApp) +////@end declare app + +#endif + // _CMAKESETUP_H_ diff --git a/CMakeLua/Source/WXDialog/CMakeSetup.pjd b/CMakeLua/Source/WXDialog/CMakeSetup.pjd new file mode 100644 index 0000000..fec0a4f --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeSetup.pjd @@ -0,0 +1,3514 @@ + + + + 1.0 + dialogblocks + + Project File + + + 0 + + + + + 87 + + FALSE + FALSE + FALSE + TRUE + TRUE + FALSE + Jorgen Bodde + + + FALSE + <All platforms> + <Any> + ///////////////////////////////////////////////////////////////////////////// +// Name: %HEADER-FILENAME% +// Purpose: +// Author: %AUTHOR% +// Modified by: +// Created: %DATE% +// RCS-ID: +// Copyright: %COPYRIGHT% +// Licence: +///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// +// Name: %SOURCE-FILENAME% +// Purpose: +// Author: %AUTHOR% +// Modified by: +// Created: %DATE% +// RCS-ID: +// Copyright: %COPYRIGHT% +// Licence: +///////////////////////////////////////////////////////////////////////////// + + + /*! + * %BODY% + */ + + + ///////////////////////////////////////////////////////////////////////////// +// Name: %SYMBOLS-FILENAME% +// Purpose: Symbols file +// Author: %AUTHOR% +// Modified by: +// Created: %DATE% +// RCS-ID: +// Copyright: %COPYRIGHT% +// Licence: +///////////////////////////////////////////////////////////////////////////// + + + app_resources.h + app_resources.cpp + AppResources + app.h + app.cpp + Application + FALSE + + <None> + + + 15088528 + data-document + + + 0 + 1 + 0 + 0 + 0 + + Configurations + 15310432 + config-data-document + + + 0 + 1 + 0 + 15088528 + 0 + + TRUE + + Debug + ANSI + Static + Modular + GUI + wxMSW + Dynamic + Yes + No + No + %WXVERSION% + %EXECUTABLE% + + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + %AUTO% + + + + Projects + 15057456 + root-document + + project + 1 + 1 + 0 + 0 + 0 + + Windows + 15140496 + html-document + + dialogsfolder + 1 + 1 + 0 + 15057456 + 1 + + CMakeSetupApp + 14833712 + dialog-document + + app + 0 + 1 + 0 + 15140496 + 0 + 7/4/2005 + wbAppProxy + 10000 + FALSE + + CMakeSetupApp + wxApp + CMakeSetup.cpp + CMakeSetup.h + + + + + CMake Setup + 15139352 + dialog-document + + frame + 0 + 1 + 0 + 15140496 + 0 + 7/4/2005 + wbFrameProxy + 10100 + FALSE + + wxEVT_CLOSE_WINDOW|OnCloseWindow + ID_FRAME + 10100 + CMakeSetupFrm + wxFrame + CMakeSetupFrame.cpp + CMakeSetupFrame.h + + CMake Setup v2.0.x + TRUE + cmake_icon.xpm + FALSE + + + + + + FALSE + <Any platform> + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + FALSE + + FALSE + FALSE + -1 + -1 + 600 + 550 + + + wxSplitterWindow: ID_SPLITTERWINDOW + 15327264 + dialog-control-document + + splitter + 0 + 1 + 0 + 15139352 + 0 + 7/4/2005 + wbSplitterWindowProxy + wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING|OnSplitterPosChanging + wxEVT_COMMAND_SPLITTER_DOUBLECLICKED|OnSplitterwindowSashDClick + ID_SPLITTERWINDOW + 10101 + wxSplitterWindow + wxSplitterWindow + m_splitter + TRUE + Horizontal + 300 + + + + + + FALSE + <Any platform> + TRUE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + 100 + 100 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + wxPanel: ID_MAINPANEL + 15222232 + dialog-control-document + + panel + 0 + 1 + 0 + 15327264 + 0 + 7/4/2005 + wbPanelProxy + ID_MAINPANEL + 10102 + wxPanel + wxPanel + + FALSE + + + + + + FALSE + <Any platform> + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + TRUE + FALSE + + TRUE + -1 + -1 + 600 + 400 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + TRUE + + + + + wxBoxSizer V + 15211392 + dialog-control-document + + sizer + 0 + 1 + 0 + 15222232 + 0 + 7/4/2005 + wbBoxSizerProxy + Vertical + + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxBoxSizer H + 15336232 + dialog-control-document + + sizer + 0 + 1 + 0 + 15211392 + 0 + 7/4/2005 + wbBoxSizerProxy + Horizontal + + Expand + Centre + 0 + 5 + FALSE + FALSE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxFlexGridSizer + 15345208 + dialog-control-document + + sizer + 0 + 1 + 0 + 15336232 + 0 + 7/4/2005 + wbFlexGridSizerProxy + 1 + 1 + 3 + 2 + 0 + 0 + + <Any platform> + Centre + Top + 1 + 5 + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + wxStaticText: wxID_STATIC + 15174904 + dialog-control-document + + statictext + 0 + 1 + 0 + 15345208 + 0 + 7/4/2005 + wbStaticTextProxy + wxID_STATIC + 5105 + wxStaticText + + CMake project path + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Left + Centre + 0 + 5 + TRUE + TRUE + FALSE + FALSE + FALSE + TRUE + FALSE + + + + + wxTextCtrl: ID_PROJECT_PATH + 15369448 + dialog-control-document + + textctrl + 0 + 1 + 0 + 15345208 + 0 + 7/4/2005 + wbTextCtrlProxy + ID_PROJECT_PATH + 10103 + wxTextCtrl + m_cmProjectPath + + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + 50 + -1 + Expand + Centre + 1 + 5 + FALSE + FALSE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxButton: ID_BROWSE_PROJECT + 15341600 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 15345208 + 0 + 7/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnButtonBrowseProject + ID_BROWSE_PROJECT + 10104 + wxButton + m_BrowseProjectPathButton + Browse + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + 55 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxStaticText: wxID_STATIC + 15095456 + dialog-control-document + + statictext + 0 + 1 + 0 + 15345208 + 0 + 7/4/2005 + wbStaticTextProxy + wxID_STATIC + 5105 + wxStaticText + + Project build path + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Left + Centre + 0 + 5 + TRUE + TRUE + FALSE + FALSE + FALSE + TRUE + FALSE + + + + + wxTextCtrl: ID_SOURCE_BUILD_PATH + 15114544 + dialog-control-document + + textctrl + 0 + 1 + 0 + 15345208 + 0 + 7/4/2005 + wbTextCtrlProxy + wxEVT_COMMAND_TEXT_UPDATED|OnSourceBuildPathUpdated + wxEVT_COMMAND_TEXT_ENTER|OnSourceBuildPathEnter + ID_SOURCE_BUILD_PATH + 10105 + wxTextCtrl + m_cmBuildPath + + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + 50 + -1 + Expand + Top + 1 + 5 + FALSE + FALSE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxButton: ID_BROWSE_BUILD + 15258912 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 15345208 + 0 + 7/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnButtonBrowseBuild + ID_BROWSE_BUILD + 10106 + wxButton + m_BrowseSourcePathButton + Browse + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + 55 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + wxBoxSizer V + 15234376 + dialog-control-document + + sizer + 0 + 1 + 0 + 15336232 + 0 + 7/4/2005 + wbBoxSizerProxy + Vertical + + Centre + Expand + 0 + 5 + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + <Any platform> + + wxFlexGridSizer + 15190200 + dialog-control-document + + sizer + 0 + 1 + 0 + 15234376 + 0 + 21/4/2005 + wbFlexGridSizerProxy + + + 2 + 2 + 0 + 0 + + <Any platform> + Centre + Centre + 0 + 5 + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + + wxStaticText: wxID_STATIC + 15184416 + dialog-control-document + + statictext + 0 + 1 + 0 + 15190200 + 0 + 28/4/2005 + wbStaticTextProxy + wxID_STATIC + 5105 + wxStaticText + + Generate + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Left + Centre + 0 + 5 + FALSE + TRUE + FALSE + FALSE + FALSE + TRUE + FALSE + + + + + wxComboBox: ID_CHOOSE_GENERATOR + 15380104 + dialog-control-document + + combobox + 0 + 1 + 0 + 15190200 + 0 + 28/4/2005 + wbComboBoxProxy + ID_CHOOSE_GENERATOR + 10107 + wxComboBox + m_cmGeneratorChoice + + + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + TRUE + FALSE + FALSE + + -1 + -1 + 170 + -1 + Centre + Expand + 1 + 5 + FALSE + FALSE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxStaticText: wxID_STATIC + 15143832 + dialog-control-document + + statictext + 0 + 1 + 0 + 15190200 + 0 + 21/4/2005 + wbStaticTextProxy + wxID_STATIC + 5105 + wxStaticText + + Search + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Left + Centre + 0 + 5 + FALSE + TRUE + FALSE + FALSE + FALSE + TRUE + FALSE + + + + + wxComboBox: ID_SEARCHQUERY + 15164688 + dialog-control-document + + combobox + 0 + 1 + 0 + 15190200 + 0 + 21/4/2005 + wbComboBoxProxy + wxEVT_COMMAND_COMBOBOX_SELECTED|OnSearchquerySelected + wxEVT_COMMAND_TEXT_UPDATED|OnSearchqueryUpdated + ID_SEARCHQUERY + 10109 + wxComboBox + m_cmSearchQuery + + + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + TRUE + + -1 + -1 + 170 + -1 + Centre + Expand + 1 + 5 + FALSE + FALSE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + wxCheckBox: ID_SHOW_ADVANCED + 15248616 + dialog-control-document + + checkbox + 0 + 1 + 0 + 15234376 + 0 + 7/4/2005 + wbCheckBoxProxy + wxEVT_COMMAND_CHECKBOX_CLICKED|OnShowAdvancedValues + ID_SHOW_ADVANCED + 10108 + wxCheckBox + m_cmShowAdvanced + Show advanced values + FALSE + + + + + + + + FALSE + <Any platform> + FALSE + TRUE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Right + Centre + 0 + 5 + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + + + + + + + wxGrid: ID_OPTIONS + 15335040 + dialog-control-document + + grid + 0 + 1 + 0 + 15211392 + 0 + 7/4/2005 + wbGridProxy + wxEVT_GRID_CELL_CHANGE|OnCellChange + wxEVT_GRID_SELECT_CELL|OnGridSelectCell + wxEVT_MOTION|OnPropertyMotion + ID_OPTIONS + 10110 + wxPropertyList + wxGrid + m_cmOptions + TRUE + 10 + 2 + 250 + 25 + 20 + 0 + Rows + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + TRUE + FALSE + FALSE + TRUE + FALSE + + -1 + -1 + 200 + 150 + Expand + Centre + 1 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + + wxPanel: ID_LOGPANEL + 15443800 + dialog-control-document + + panel + 0 + 1 + 0 + 15327264 + 0 + 7/4/2005 + wbPanelProxy + ID_LOGPANEL + 10111 + wxPanel + wxPanel + + FALSE + + + + + + FALSE + <Any platform> + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + FALSE + + TRUE + -1 + -1 + -1 + 100 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + TRUE + + + + + wxBoxSizer V + 15414728 + dialog-control-document + + sizer + 0 + 1 + 0 + 15443800 + 0 + 7/4/2005 + wbBoxSizerProxy + Vertical + + Centre + Centre + 1 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxBoxSizer H + 15422736 + dialog-control-document + + sizer + 0 + 1 + 0 + 15414728 + 0 + 8/4/2005 + wbBoxSizerProxy + Horizontal + + Expand + Centre + 1 + 5 + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + <Any platform> + + wxTextCtrl: ID_LOG_AREA + 15432752 + dialog-control-document + + textctrl + 0 + 1 + 0 + 15422736 + 0 + 8/4/2005 + wbTextCtrlProxy + ID_LOG_AREA + 10112 + wxTextCtrl + m_cmLog + Select your project path (where CMakeLists.txt is) and then select the build path (where the projects should be saved), or select a previous build path. + +Right click on a cache value for additional options (delete and ignore). Press configure to update and display new values in red, press OK to generate the projects and exit. + + + + + + FALSE + <Any platform> + + + TRUE + FALSE + FALSE + FALSE + TRUE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + + -1 + -1 + -1 + -1 + Expand + Expand + 1 + 5 + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + + + + + wxTextCtrl: ID_DESCRIPTION + 35749000 + dialog-control-document + + textctrl + 0 + 1 + 0 + 15422736 + 0 + 8/4/2005 + wbTextCtrlProxy + ID_DESCRIPTION + 10113 + wxTextCtrl + m_cmDescription + + + + + + + FALSE + <Any platform> + + + TRUE + FALSE + FALSE + FALSE + TRUE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + + -1 + -1 + 200 + -1 + Centre + Expand + 0 + 5 + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + + + + + wxBoxSizer H + 35769328 + dialog-control-document + + sizer + 0 + 1 + 0 + 15414728 + 0 + 7/4/2005 + wbBoxSizerProxy + Horizontal + + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxButton: ID_DO_CONFIGURE + 35775496 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 35769328 + 0 + 7/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnButtonConfigure + ID_DO_CONFIGURE + 10114 + wxButton + m_ConfigureButton + Co&nfigure + TRUE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxButton: ID_DO_OK + 35789784 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 35769328 + 0 + 7/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnButtonOk + ID_DO_OK + 10115 + wxButton + m_OkButton + &Generate! + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxButton: ID_DO_CANCEL + 35804120 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 35769328 + 0 + 23/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnButtonCancel + ID_DO_CANCEL + 10116 + wxButton + m_CancelButton + C&ancel + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxStaticLine: wxID_STATIC + 35818312 + dialog-control-document + + staticline + 0 + 1 + 0 + 35769328 + 0 + 23/4/2005 + wbStaticLineProxy + wxID_STATIC + 5105 + wxStaticLine + + + + + FALSE + __WXMSW__ + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Expand + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + wxButton: ID_DO_DELETE_CACHE + 35831264 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 35769328 + 0 + 8/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnButtonDeleteCache + ID_DO_DELETE_CACHE + 10117 + wxButton + m_DeleteCacheButton + &Delete Cache + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxButton: ID_CLEAR_LOG + 35845416 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 35769328 + 0 + 23/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnClearLogClick + ID_CLEAR_LOG + 10118 + wxButton + m_ClearLogButton + Clear &Log + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxStaticLine: wxID_STATIC + 35859640 + dialog-control-document + + staticline + 0 + 1 + 0 + 35769328 + 0 + 23/4/2005 + wbStaticLineProxy + wxID_STATIC + 5105 + wxStaticLine + + + + + FALSE + __WXMSW__ + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Expand + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + wxButton: ID_BROWSE_GRID + 35872520 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 35769328 + 0 + 23/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnBrowseGridClick + ID_BROWSE_GRID + 10119 + wxButton + m_cmBrowseCell + &Browse + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + + + + wxStatusBar: ID_STATUSBAR + 15182152 + dialog-control-document + + statusbar + 0 + 1 + 0 + 15139352 + 0 + 7/4/2005 + wbStatusBarProxy + ID_STATUSBAR + 10120 + wxStatusBar + + + + + + + FALSE + <Any platform> + 2 + + + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxMenuBar: ID_CMAKE_MENUBAR + 35895160 + dialog-control-document + + menubar + 0 + 1 + 0 + 15139352 + 0 + 19/4/2005 + wbMenuBarProxy + ID_CMAKE_MENUBAR + <Any platform> + + File + 35897080 + dialog-control-document + + menu + 0 + 1 + 0 + 35895160 + 0 + 19/4/2005 + wbMenuProxy + &File + <Any platform> + + &Reload Cache\tCtrl+R: ID_MENU_RELOAD_CACHE + 35899080 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35897080 + 0 + 19/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnMenuReloadCacheClick + ID_MENU_RELOAD_CACHE + 10122 + &Reload Cache\tCtrl+R + Normal + FALSE + Reload the cache from disk + + <Any platform> + + + &Delete Cache\tCtrl+D: ID_MENU_DELETE_CACHE + 35902816 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35897080 + 0 + 19/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnMenuDeleteCacheClick + ID_MENU_DELETE_CACHE + 10123 + &Delete Cache\tCtrl+D + Normal + FALSE + Delete the cache on disk of the current path + + <Any platform> + + + ------------ + 35906472 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35897080 + 0 + 19/4/2005 + wbMenuSeparatorProxy + <Any platform> + + + E&xit\tAlt+F4: ID_MENU_QUIT + 35908352 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35897080 + 0 + 19/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnMenuQuitClick + ID_MENU_QUIT + 10125 + E&xit\tAlt+F4 + Normal + FALSE + Quit CMake Setup + + <Any platform> + + + + Tools + 35912048 + dialog-control-document + + menu + 0 + 1 + 0 + 35895160 + 0 + 29/4/2005 + wbMenuProxy + &Tools + <Any platform> + + &Configure\tCtrl+N: ID_MENU_CONFIGURE + 35913904 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35912048 + 0 + 31/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnMenuConfigureClick + ID_MENU_CONFIGURE + 10126 + &Configure\tCtrl+N + Normal + FALSE + + + <Any platform> + + + &Generate and Exit\tCtrl+G: ID_MENU_EXITGENERATE + 35917648 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35912048 + 0 + 31/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnMenuGenerateClick + ID_MENU_EXITGENERATE + 10127 + &Generate and Exit\tCtrl+G + Normal + FALSE + + + <Any platform> + + + Toggle &Advanced\tCtrl+A: ID_MENU_TOGGLE_ADVANCED + 35921344 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35912048 + 0 + 31/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnMenuToggleAdvancedClick + ID_MENU_TOGGLE_ADVANCED + 10128 + Toggle &Advanced\tCtrl+A + Normal + FALSE + + + <Any platform> + + + ------------ + 35925000 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35912048 + 0 + 31/4/2005 + wbMenuSeparatorProxy + <Any platform> + + + &Options\tCtrl+O: ID_CMAKE_OPTIONS + 35926880 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35912048 + 0 + 31/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnOptionsClick + ID_CMAKE_OPTIONS + 10124 + &Options\tCtrl+O + Normal + FALSE + + + <Any platform> + + + + Help + 35930576 + dialog-control-document + + menu + 0 + 1 + 0 + 35895160 + 0 + 29/4/2005 + wbMenuProxy + &Help + <Any platform> + + &About ...: ID_ABOUTDLG + 35932424 + dialog-control-document + + menuitem + 0 + 1 + 0 + 35930576 + 0 + 29/4/2005 + wbMenuItemProxy + wxEVT_COMMAND_MENU_SELECTED|OnAboutClick + ID_ABOUTDLG + 10121 + &About ... + Normal + FALSE + Shows the about dialog ... + + <Any platform> + + + + + + CachePopupMenu + 15138824 + dialog-document + + menu + 0 + 1 + 0 + 15140496 + 0 + wbStandaloneMenuProxy + 10050 + FALSE + + ID_MENU + CreatePopupMenu + <Any platform> + + &Ignore cache entry: ID_CACHE_IGNORE + 35936824 + dialog-control-document + + menuitem + 0 + 1 + 0 + 15138824 + 0 + 16/4/2005 + wbMenuItemProxy + ID_CACHE_IGNORE + 10051 + &Ignore cache entry + Normal + FALSE + Ignores the value of the current cache entry + + <Any platform> + + + &Delete cache entry: ID_CACHE_DELETE + 35940576 + dialog-control-document + + menuitem + 0 + 1 + 0 + 15138824 + 0 + 16/4/2005 + wbMenuItemProxy + ID_CACHE_DELETE + 10052 + &Delete cache entry + Normal + FALSE + Deletes the current cache entry (reverts on next configure) + + <Any platform> + + + ------------ + 35944192 + dialog-control-document + + menuitem + 0 + 1 + 0 + 15138824 + 0 + 23/4/2005 + wbMenuSeparatorProxy + <Any platform> + + + &Browse ...: ID_CACHE_BROWSE + 35945856 + dialog-control-document + + menuitem + 0 + 1 + 0 + 15138824 + 0 + 23/4/2005 + wbMenuItemProxy + ID_CACHE_BROWSE + 10053 + &Browse ... + Normal + FALSE + + + <Any platform> + + + + Progress Dialog + 35949536 + dialog-document + + dialog + 0 + 1 + 0 + 15140496 + 0 + 27/4/2005 + wbDialogProxy + 10000 + FALSE + + ID_PROGRESSDLG + 10000 + CMProgressDialog + wxDialog + wxDialog + progressdlg.cpp + progressdlg.h + + Progress Dialog + TRUE + + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + + FALSE + TRUE + -1 + -1 + 400 + 300 + + + wxBoxSizer V + 35967376 + dialog-control-document + + sizer + 0 + 1 + 0 + 35949536 + 0 + wbBoxSizerProxy + Vertical + + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + Spacer + 35975296 + dialog-control-document + + spacer + 0 + 1 + 0 + 35967376 + 0 + 27/4/2005 + wbSpacerProxy + 5 + 5 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + + wxStaticText: wxID_STATIC + 35982864 + dialog-control-document + + statictext + 0 + 1 + 0 + 35967376 + 0 + 27/4/2005 + wbStaticTextProxy + wxID_STATIC + 5105 + wxStaticText + m_textMessage + Please wait while CMake configures ... + + + + + + FALSE + <Any platform> + + + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + TRUE + FALSE + + + + + wxBoxSizer H + 35998688 + dialog-control-document + + sizer + 0 + 1 + 0 + 35967376 + 0 + 27/4/2005 + wbBoxSizerProxy + Horizontal + + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxGauge: ID_CMAKE_PROGRESS + 36006648 + dialog-control-document + + gauge + 0 + 1 + 0 + 35998688 + 0 + 27/4/2005 + wbGaugeProxy + ID_CMAKE_PROGRESS + 10001 + wxGauge + m_progress + 0 + 100 + + + + + + FALSE + <Any platform> + + + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + 250 + 20 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + wxButton: ID_CMAKE_BUTTON + 36022448 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 35967376 + 0 + 27/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnCmakeCancelClick + ID_CMAKE_BUTTON + 10002 + wxButton + + &Cancel + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + Spacer + 36035776 + dialog-control-document + + spacer + 0 + 1 + 0 + 35967376 + 0 + 27/4/2005 + wbSpacerProxy + 5 + 5 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + <Any platform> + + + + + About ... + 15317784 + dialog-document + + dialog + 0 + 1 + 0 + 15140496 + 0 + 27/4/2005 + wbDialogProxy + 10000 + FALSE + + ID_SOME_ABOUTDLG + 10003 + CMAboutDlg + wxDialog + wxDialog + aboutdlg.cpp + aboutdlg.h + + About ... + TRUE + + FALSE + + + + + + FALSE + <Any platform> + FALSE + TRUE + TRUE + FALSE + TRUE + FALSE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + + FALSE + TRUE + -1 + -1 + 400 + 300 + + + wxBoxSizer V + 36057296 + dialog-control-document + + sizer + 0 + 1 + 0 + 15317784 + 0 + wbBoxSizerProxy + Vertical + + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxFlexGridSizer + 36065536 + dialog-control-document + + sizer + 0 + 1 + 0 + 36057296 + 0 + 28/4/2005 + wbFlexGridSizerProxy + 1 + 0 + 2 + 1 + 0 + 0 + + <Any platform> + Expand + Centre + 1 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + wxStaticBitmap: wxID_STATIC + 36075864 + dialog-control-document + + staticbitmap + 0 + 1 + 0 + 36065536 + 0 + 28/4/2005 + wbStaticBitmapProxy + wxID_STATIC + 5105 + wxStaticBitmap + m_cmIcon + + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + 32 + 32 + Centre + Top + 0 + 5 + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + + + + + wxHtmlWindow: ID_HTMLWINDOW + 36090408 + dialog-control-document + + htmlwindow + 0 + 1 + 0 + 36065536 + 0 + 28/4/2005 + wbHtmlWindowProxy + ID_HTMLWINDOW + 10000 + wxHtmlWindow + m_html + + + + + + + + FALSE + <Any platform> + + + FALSE + TRUE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + TRUE + FALSE + + -1 + -1 + 500 + 300 + Expand + Expand + 1 + 5 + FALSE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + wxButton: ID_ABOUT_DLG_OK + 36107664 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 36057296 + 0 + 28/4/2005 + wbButtonProxy + wxEVT_COMMAND_BUTTON_CLICKED|OnAboutDlgClick + ID_ABOUT_DLG_OK + 10005 + wxButton + + &Ok + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + + CMakeSetup Options ... + 35982000 + dialog-document + + dialog + 0 + 1 + 0 + 15140496 + 0 + 29/4/2005 + wbDialogProxy + 10000 + FALSE + + ID_DIALOG + 10004 + CMOptionsDlg + wxDialog + wxDialog + optionsdlg.cpp + optionsdlg.h + + CMakeSetup Options ... + TRUE + + FALSE + + + + + + FALSE + <Any platform> + FALSE + TRUE + TRUE + FALSE + TRUE + FALSE + FALSE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + + FALSE + FALSE + -1 + -1 + 400 + 300 + + + wxBoxSizer V + 36135880 + dialog-control-document + + sizer + 0 + 1 + 0 + 35982000 + 0 + wbBoxSizerProxy + Vertical + + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxNotebook: ID_NOTEBOOK + 36145472 + dialog-control-document + + notebook + 0 + 1 + 0 + 36135880 + 0 + 29/4/2005 + wbNotebookProxy + ID_NOTEBOOK + 10006 + wxNotebook + + FALSE + + + + + + FALSE + <Any platform> + + + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Expand + Centre + 1 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + TRUE + + + + wxPanel: ID_PANEL + 36166888 + dialog-control-document + + panel + 0 + 1 + 0 + 36145472 + 0 + 29/4/2005 + wbPanelProxy + ID_PANEL + 10007 + wxPanel + wxPanel + + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + FALSE + + TRUE + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + General + + + wxBoxSizer V + 36317128 + dialog-control-document + + sizer + 0 + 1 + 0 + 36166888 + 0 + 29/4/2005 + wbBoxSizerProxy + Vertical + + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + Spacer + 36325216 + dialog-control-document + + spacer + 0 + 1 + 0 + 36317128 + 0 + 29/4/2005 + wbSpacerProxy + 5 + 5 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + + wxCheckBox: ID_CHECKBOX_CLOSECMAKE + 36332952 + dialog-control-document + + checkbox + 0 + 1 + 0 + 36317128 + 0 + 29/4/2005 + wbCheckBoxProxy + wxEVT_COMMAND_CHECKBOX_CLICKED|OnButtonOK + ID_CHECKBOX_CLOSECMAKE + 10008 + wxCheckBox + m_closeAfterGenerate + Close down CMakeSetup after generation of project + FALSE + + + + + + + + FALSE + <Any platform> + FALSE + TRUE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Left + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + + + wxBoxSizer H + 36164088 + dialog-control-document + + sizer + 0 + 1 + 0 + 36135880 + 0 + 29/4/2005 + wbBoxSizerProxy + Horizontal + + Centre + Centre + 0 + 5 + TRUE + TRUE + FALSE + TRUE + FALSE + FALSE + FALSE + <Any platform> + + wxButton: wxID_OK + 36348448 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 36164088 + 0 + 29/4/2005 + wbButtonProxy + wxID_OK + 5100 + wxButton + + &OK + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + wxButton: wxID_CANCEL + 36362168 + dialog-control-document + + dialogcontrol + 0 + 1 + 0 + 36164088 + 0 + 29/4/2005 + wbButtonProxy + wxID_CANCEL + 5101 + wxButton + + &Cancel + FALSE + + + + + + FALSE + <Any platform> + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + + -1 + -1 + -1 + -1 + Centre + Centre + 0 + 5 + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + + + + + + + + + Sources + 15191936 + html-document + + sourcesfolder + 1 + 1 + 0 + 15057456 + 1 + + CMakeSetup.rc + 15091464 + source-editor-document + CMakeSetup.rc + source-editor + 0 + 0 + 1 + 15191936 + 0 + 7/4/2005 + + + + + Images + 36089928 + html-document + + bitmapsfolder + 1 + 1 + 0 + 15057456 + 1 + + NGDialog.ico + 36090080 + image-document + NGDialog.ico + image + 0 + 0 + 0 + 36089928 + 0 + 25/4/2005 + 100 + + + + diff --git a/CMakeLua/Source/WXDialog/CMakeSetup.rc b/CMakeLua/Source/WXDialog/CMakeSetup.rc new file mode 100644 index 0000000..1cd7ef2 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeSetup.rc @@ -0,0 +1,12 @@ +#ifndef APSTUDIO_INVOKED +#include "wx/msw/wx.rc" +#endif + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +DID_AAAAAAA ICON "NGDialog.ico" diff --git a/CMakeLua/Source/WXDialog/CMakeSetupFrame.cpp b/CMakeLua/Source/WXDialog/CMakeSetupFrame.cpp new file mode 100644 index 0000000..b492c53 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeSetupFrame.cpp @@ -0,0 +1,1778 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: CMakeSetupFrame.cpp,v $ + Language: C++ + Date: $Date: 2007/11/05 19:47:20 $ + Version: $Revision: 1.3 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma implementation "CMakeSetupFrame.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +////@begin includes +////@end includes + +#include +#include +#include + +#include "CMakeSetupFrame.h" +#include "PropertyList.h" +#include "app_resources.h" +#include "CMakeIcon.xpm" +#include "aboutdlg.h" + +// cmake includes +#include "../cmVersion.h" +#include "../cmListFileCache.h" +#include "../cmCacheManager.h" +#include "../cmGlobalGenerator.h" +#include "../cmDynamicLoader.h" + +////@begin XPM images +////@end XPM images + +/*! + * CMakeSetupFrm type definition + */ + +IMPLEMENT_CLASS( CMakeSetupFrm, wxFrame ) + +/*! + * CMakeSetupFrm event table definition + */ + +BEGIN_EVENT_TABLE( CMakeSetupFrm, wxFrame ) + +////@begin CMakeSetupFrm event table entries + EVT_CLOSE( CMakeSetupFrm::OnCloseWindow ) + + EVT_SPLITTER_SASH_POS_CHANGING( ID_SPLITTERWINDOW, CMakeSetupFrm::OnSplitterPosChanging ) + EVT_SPLITTER_DCLICK( ID_SPLITTERWINDOW, CMakeSetupFrm::OnSplitterwindowSashDClick ) + + EVT_BUTTON( ID_BROWSE_PROJECT, CMakeSetupFrm::OnButtonBrowseProject ) + + EVT_TEXT( ID_SOURCE_BUILD_PATH, CMakeSetupFrm::OnSourceBuildPathUpdated ) + EVT_TEXT_ENTER( ID_SOURCE_BUILD_PATH, CMakeSetupFrm::OnSourceBuildPathEnter ) + + EVT_BUTTON( ID_BROWSE_BUILD, CMakeSetupFrm::OnButtonBrowseBuild ) + + EVT_COMBOBOX( ID_SEARCHQUERY, CMakeSetupFrm::OnSearchquerySelected ) + EVT_TEXT( ID_SEARCHQUERY, CMakeSetupFrm::OnSearchqueryUpdated ) + + EVT_CHECKBOX( ID_SHOW_ADVANCED, CMakeSetupFrm::OnShowAdvancedValues ) + + EVT_GRID_CELL_CHANGE( CMakeSetupFrm::OnCellChange ) + EVT_GRID_SELECT_CELL( CMakeSetupFrm::OnGridSelectCell ) + EVT_MOTION( CMakeSetupFrm::OnPropertyMotion ) + + EVT_BUTTON( ID_DO_CONFIGURE, CMakeSetupFrm::OnButtonConfigure ) + + EVT_BUTTON( ID_DO_OK, CMakeSetupFrm::OnButtonOk ) + + EVT_BUTTON( ID_DO_CANCEL, CMakeSetupFrm::OnButtonCancel ) + + EVT_BUTTON( ID_DO_DELETE_CACHE, CMakeSetupFrm::OnButtonDeleteCache ) + + EVT_BUTTON( ID_CLEAR_LOG, CMakeSetupFrm::OnClearLogClick ) + + EVT_BUTTON( ID_BROWSE_GRID, CMakeSetupFrm::OnBrowseGridClick ) + + EVT_MENU( ID_MENU_RELOAD_CACHE, CMakeSetupFrm::OnMenuReloadCacheClick ) + + EVT_MENU( ID_MENU_DELETE_CACHE, CMakeSetupFrm::OnMenuDeleteCacheClick ) + + EVT_MENU( ID_MENU_QUIT, CMakeSetupFrm::OnMenuQuitClick ) + + EVT_MENU( ID_MENU_CONFIGURE, CMakeSetupFrm::OnMenuConfigureClick ) + + EVT_MENU( ID_MENU_EXITGENERATE, CMakeSetupFrm::OnMenuGenerateClick ) + + EVT_MENU( ID_MENU_TOGGLE_ADVANCED, CMakeSetupFrm::OnMenuToggleAdvancedClick ) + + EVT_MENU( ID_CMAKE_OPTIONS, CMakeSetupFrm::OnOptionsClick ) + + EVT_MENU( ID_ABOUTDLG, CMakeSetupFrm::OnAboutClick ) + +////@end CMakeSetupFrm event table entries + + EVT_MENU_RANGE(CM_RECENT_BUILD_ITEM, CM_RECENT_BUILD_ITEM + CM_MAX_RECENT_PATHS, CMakeSetupFrm::OnRecentFileMenu) + + EVT_TEXT_ENTER(ID_SEARCHQUERY, CMakeSetupFrm::OnAddQuery ) + +END_EVENT_TABLE() + +/** Callback function for CMake generator, to tell user how + far the generation actually is */ +void updateProgress(const char *msg, float prog, void *cd) +{ + // TODO: Make some kind of progress counter + + CMakeSetupFrm *fm = (CMakeSetupFrm *)cd; + + if(fm) + { + if(prog < 0) + fm->LogMessage(0, msg); + else + { + fm->UpdateProgress(prog); + fm->IssueUpdate(); + } + } +} + +/** Callback function for CMake generator, to tell user about stuff. This should be + logged in the m_log window */ +void MFCMessageCallback(const char* m, const char* title, bool& nomore, void *clientdata) +{ + CMakeSetupFrm *fm = (CMakeSetupFrm *)clientdata; + + if(fm) + { + wxString what = m, msg; + if(what.StartsWith("CMake Error: ")) + fm->LogMessage(-1, m); + else + fm->LogMessage(1, m); + } +} + +// Convert to Win32 path (slashes). This calls the system tools one and then +// removes the spaces. It is not in system tools because we don't want any +// generators accidentally use it +std::string ConvertToWindowsPath(const char* path) +{ + // Convert to output path. + // Remove the "" around it (if any) since it's an output path for + // the shell. If another shell-oriented feature is not designed + // for a GUI use, then we are in trouble. + // save the value of the force to unix path option + bool saveForce = cmSystemTools::GetForceUnixPaths(); + // make sure we get windows paths no matter what for the GUI + cmSystemTools::SetForceUnixPaths(false); + std::string s = cmSystemTools::ConvertToOutputPath(path); + // now restore the force unix path to its previous value + cmSystemTools::SetForceUnixPaths(saveForce); + if (s.size()) + { + std::string::iterator i = s.begin(); + if (*i == '\"') + { + s.erase(i, i + 1); + } + i = s.begin() + s.length() - 1; + if (*i == '\"') + { + s.erase(i, i + 1); + } + } + return s; +} + + +bool DnDFile::OnDropFiles(wxCoord, wxCoord, const wxArrayString& filenames) +{ + size_t nFiles = filenames.GetCount(); + + // only one item allowed + if(nFiles > 1) + return false; + + if(nFiles == 1) + { + // only one dir allowed + if(!wxDirExists(filenames[0])) + return false; + + // strip the seperator + wxFileName name; + name.AssignDir(filenames[0]); + + // issue a 'drop' by changing text ctrl + m_pOwner->SetValue(name.GetFullPath()); + + return true; + } + + return false; +} + +/*! + * CMakeSetupFrm constructors + */ + +CMakeSetupFrm::CMakeSetupFrm( ) + : m_cmake(0) +{ +} + +CMakeSetupFrm::CMakeSetupFrm( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) + : m_cmake(0) +{ + Create( parent, id, caption, pos, size, style ); +} + +/*! + * CMakeSetupFrm creator + */ + +bool CMakeSetupFrm::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ +////@begin CMakeSetupFrm member initialisation + m_splitter = NULL; + m_cmProjectPath = NULL; + m_BrowseProjectPathButton = NULL; + m_cmBuildPath = NULL; + m_BrowseSourcePathButton = NULL; + m_cmGeneratorChoice = NULL; + m_cmSearchQuery = NULL; + m_cmShowAdvanced = NULL; + m_cmOptions = NULL; + m_cmLog = NULL; + m_cmDescription = NULL; + m_ConfigureButton = NULL; + m_OkButton = NULL; + m_CancelButton = NULL; + m_DeleteCacheButton = NULL; + m_ClearLogButton = NULL; + m_cmBrowseCell = NULL; +////@end CMakeSetupFrm member initialisation + + wxFrame::Create( parent, id, caption, pos, size, style ); + + // make sure the developer does not assign more then 100 + // would be rediculous but also overlap other id's + wxASSERT(CM_MAX_RECENT_PATHS < 100); + + m_ExitTimer = 0; + + m_progressDlg = 0; + m_noRefresh = false; + m_quitAfterGenerating = false; + + m_config = new wxConfig("CMakeSetup"); + + wxIcon icon(CMakeIcon_xpm); + SetIcon(icon); + + CreateControls(); + + //SetIcon(GetIconResource(wxT("cmake_icon.xpm"))); + //SetIcon(wxIcon("NGDialog.ico", wxBITMAP_TYPE_ICO_RESOURCE)); + Centre(); + + // is it needed to hide console? + m_RunningConfigure = false; + cmSystemTools::SetRunCommandHideConsole(true); + cmSystemTools::SetErrorCallback(MFCMessageCallback, (void *)this); + + // create our cmake instance + m_cmake = new cmake; + m_cmake->SetProgressCallback(updateProgress, (void *)this); + + return TRUE; +} + +CMakeSetupFrm::~CMakeSetupFrm() +{ + wxString str; + + // write configs back to disk + m_config->Write(CM_LASTPROJECT_PATH, m_cmProjectPath->GetValue()); + m_config->Write(CM_LASTBUILD_PATH, m_cmBuildPath->GetValue()); + + // clear the config first + for(size_t i = 0 ; i < CM_MAX_RECENT_PATHS; i++) + { + str.Printf("%s%i", _(CM_RECENT_BUILD_PATH), i); + m_config->Write(str, _("")); + } + + // write the last CM_MAX_RECENT_PATHS items back to config + int i = (m_recentPaths.Count() >= CM_MAX_RECENT_PATHS ? CM_MAX_RECENT_PATHS : m_recentPaths.Count()); + while(i > 0) + { + str.Printf("%s%i", _(CM_RECENT_BUILD_PATH), i); + m_config->Write(str, m_recentPaths[i - 1]); + i--; + } + + // write recent query list to config + for(int j = 0; j < m_cmSearchQuery->GetCount(); j++) + { + // allow max to be written + if(j < CM_MAX_SEARCH_QUERIES) + { + str.Printf("%s%i", _(CM_SEARCH_QUERY), j); + m_config->Write(str, m_cmSearchQuery->GetString(j)); + } + else + break; + } + + // set window pos + size in settings + if(!IsIconized() && !IsMaximized()) + { + int xsize, ysize; + GetSize(&xsize, &ysize); + if(xsize > 0 && ysize > 0) + { + m_config->Write(CM_XSIZE, (long)xsize); + m_config->Write(CM_YSIZE, (long)ysize); + } + + if(m_splitter->GetSashPosition() > 0) + m_config->Write(CM_SPLITTERPOS, (long)m_splitter->GetSashPosition()); + + GetPosition(&xsize, &ysize); + if(xsize != 0 && ysize != 0) + { + m_config->Write(CM_XPOS, (long)xsize); + m_config->Write(CM_YPOS, (long)ysize); + } + } + + // write changes (will be done before deletion) + delete m_config; + + // delete timer + if(m_ExitTimer) + delete m_ExitTimer; + + // delete our cmake instance again + if(m_cmake) + delete m_cmake; +} + +void CMakeSetupFrm::UpdateWindowState() +{ + bool dogenerate = !m_RunningConfigure && !m_cmOptions->IsCacheDirty() && + (m_cmOptions->GetCount() != 0); + + // when configure is running, disable a lot of stuff + m_cmProjectPath->Enable(!m_RunningConfigure); + m_BrowseProjectPathButton->Enable(!m_RunningConfigure); + m_cmBuildPath->Enable(!m_RunningConfigure); + m_BrowseSourcePathButton->Enable(!m_RunningConfigure); + m_cmGeneratorChoice->Enable(!m_RunningConfigure); + m_cmShowAdvanced->Enable(!m_RunningConfigure); + m_cmOptions->Enable(!m_RunningConfigure); + m_ConfigureButton->Enable(!m_RunningConfigure); + m_OkButton->Enable(dogenerate); + m_CancelButton->Enable(m_RunningConfigure); + m_DeleteCacheButton->Enable(!m_RunningConfigure); + m_ClearLogButton->Enable(!m_RunningConfigure); + if(m_RunningConfigure) + m_cmBrowseCell->Enable(false); + + // when cache loaded (items available show other control) + m_cmGeneratorChoice->Enable(m_cmOptions->GetCount() == 0 && !m_RunningConfigure); + m_cmSearchQuery->Enable(!m_RunningConfigure); + m_cmBrowseCell->Enable(!m_RunningConfigure && m_cmOptions->IsSelectedItemBrowsable()); + + // disable the menus when configuring + if(GetMenuBar()) + { + // disable configure button when there is nothing, and generate and exit + // only when it is allowed to generate + GetMenuBar()->Enable(ID_MENU_EXITGENERATE, dogenerate); + GetMenuBar()->Enable(ID_MENU_CONFIGURE, !m_RunningConfigure); + + for(size_t i = 0; i < GetMenuBar()->GetMenuCount(); i++) + GetMenuBar()->EnableTop(i, !m_RunningConfigure); + } +} + +void CMakeSetupFrm::LogMessage(int logkind, const char *msg) +{ + // put CR first but prevent a CR at the end +#ifndef __LINUX__ + if(m_cmLog->IsModified()) + (*m_cmLog) << wxT("\n"); +#else + // Linux requires a different approach + if(!m_cmLog->GetValue().IsEmpty()) + (*m_cmLog) << wxT("\n"); +#endif + + // log error, warning, or message + wxTextAttr defattr = m_cmLog->GetDefaultStyle(); + + switch(logkind) + { + // user message + case 1: + { + wxTextAttr colattr(*wxBLUE); + m_cmLog->SetDefaultStyle(colattr); + (*m_cmLog) << msg; + m_cmLog->SetDefaultStyle(defattr); + } + break; + + // progress + case 0: + (*m_cmLog) << msg; + break; + + // error + case -1: + { + wxTextAttr colattr(*wxRED); + m_cmLog->SetDefaultStyle(colattr); + (*m_cmLog) << msg; + m_cmLog->SetDefaultStyle(defattr); + } + break; + } + + IssueUpdate(); +} + +void CMakeSetupFrm::IssueUpdate() +{ + //::wxSafeYield(m_CancelButton, true); + ::wxYield(); + + // when we pressed cancel on the progress dialog + // stop all activities + if(m_progressDlg) + { + if(m_progressDlg->CancelPressed() && !m_progressDlg->IsCancelling()) + { + m_progressDlg->CancelAcknowledged(); + + // send a button event to cancel the progress + wxCommandEvent event( wxEVT_COMMAND_BUTTON_CLICKED, ID_DO_CANCEL); + wxPostEvent(this, event); + } + } +} + +/*! + * Control creation for CMakeSetupFrm + */ + +void CMakeSetupFrm::CreateControls() +{ +////@begin CMakeSetupFrm content construction + CMakeSetupFrm* itemFrame1 = this; + + wxMenuBar* menuBar = new wxMenuBar; + wxMenu* itemMenu37 = new wxMenu; + itemMenu37->Append(ID_MENU_RELOAD_CACHE, _("&Reload Cache\tCtrl+R"), _("Reload the cache from disk"), wxITEM_NORMAL); + itemMenu37->Append(ID_MENU_DELETE_CACHE, _("&Delete Cache\tCtrl+D"), _("Delete the cache on disk of the current path"), wxITEM_NORMAL); + itemMenu37->AppendSeparator(); + itemMenu37->Append(ID_MENU_QUIT, _("E&xit\tAlt+F4"), _("Quit CMake Setup"), wxITEM_NORMAL); + menuBar->Append(itemMenu37, _("&File")); + wxMenu* itemMenu42 = new wxMenu; + itemMenu42->Append(ID_MENU_CONFIGURE, _("&Configure\tCtrl+N"), _T(""), wxITEM_NORMAL); + itemMenu42->Append(ID_MENU_EXITGENERATE, _("&Generate and Exit\tCtrl+G"), _T(""), wxITEM_NORMAL); + itemMenu42->Append(ID_MENU_TOGGLE_ADVANCED, _("Toggle &Advanced\tCtrl+A"), _T(""), wxITEM_NORMAL); + itemMenu42->AppendSeparator(); + itemMenu42->Append(ID_CMAKE_OPTIONS, _("&Options\tCtrl+O"), _T(""), wxITEM_NORMAL); + menuBar->Append(itemMenu42, _("&Tools")); + wxMenu* itemMenu48 = new wxMenu; + itemMenu48->Append(ID_ABOUTDLG, _("&About ..."), _("Shows the about dialog ..."), wxITEM_NORMAL); + menuBar->Append(itemMenu48, _("&Help")); + itemFrame1->SetMenuBar(menuBar); + + m_splitter = new wxSplitterWindow( itemFrame1, ID_SPLITTERWINDOW, wxDefaultPosition, wxSize(100, 100), wxSP_3DBORDER|wxSP_3DSASH|wxNO_BORDER ); + + wxPanel* itemPanel3 = new wxPanel( m_splitter, ID_MAINPANEL, wxDefaultPosition, wxSize(600, 400), wxNO_BORDER|wxTAB_TRAVERSAL ); + itemPanel3->SetExtraStyle(itemPanel3->GetExtraStyle()|wxWS_EX_VALIDATE_RECURSIVELY); + wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL); + itemPanel3->SetSizer(itemBoxSizer4); + + wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL); + itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW|wxTOP|wxBOTTOM, 5); + wxFlexGridSizer* itemFlexGridSizer6 = new wxFlexGridSizer(2, 3, 0, 0); + itemFlexGridSizer6->AddGrowableRow(1); + itemFlexGridSizer6->AddGrowableCol(1); + itemBoxSizer5->Add(itemFlexGridSizer6, 1, wxALIGN_TOP|wxLEFT, 5); + wxStaticText* itemStaticText7 = new wxStaticText( itemPanel3, wxID_STATIC, _("CMake project path"), wxDefaultPosition, wxDefaultSize, 0 ); + itemFlexGridSizer6->Add(itemStaticText7, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); + + m_cmProjectPath = new wxTextCtrl( itemPanel3, ID_PROJECT_PATH, _T(""), wxDefaultPosition, wxSize(50, -1), 0 ); + itemFlexGridSizer6->Add(m_cmProjectPath, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5); + + m_BrowseProjectPathButton = new wxButton( itemPanel3, ID_BROWSE_PROJECT, _("Browse"), wxDefaultPosition, wxSize(55, -1), 0 ); + itemFlexGridSizer6->Add(m_BrowseProjectPathButton, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); + + wxStaticText* itemStaticText10 = new wxStaticText( itemPanel3, wxID_STATIC, _("Project build path"), wxDefaultPosition, wxDefaultSize, 0 ); + itemFlexGridSizer6->Add(itemStaticText10, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); + + m_cmBuildPath = new wxTextCtrl( itemPanel3, ID_SOURCE_BUILD_PATH, _T(""), wxDefaultPosition, wxSize(50, -1), 0 ); + itemFlexGridSizer6->Add(m_cmBuildPath, 1, wxGROW|wxALIGN_TOP|wxTOP|wxBOTTOM, 5); + + m_BrowseSourcePathButton = new wxButton( itemPanel3, ID_BROWSE_BUILD, _("Browse"), wxDefaultPosition, wxSize(55, -1), 0 ); + itemFlexGridSizer6->Add(m_BrowseSourcePathButton, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); + + wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxVERTICAL); + itemBoxSizer5->Add(itemBoxSizer13, 0, wxGROW|wxLEFT|wxRIGHT, 5); + wxFlexGridSizer* itemFlexGridSizer14 = new wxFlexGridSizer(2, 2, 0, 0); + itemBoxSizer13->Add(itemFlexGridSizer14, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT, 5); + wxStaticText* itemStaticText15 = new wxStaticText( itemPanel3, wxID_STATIC, _("Generate"), wxDefaultPosition, wxDefaultSize, 0 ); + itemFlexGridSizer14->Add(itemStaticText15, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxADJUST_MINSIZE, 5); + + wxString* m_cmGeneratorChoiceStrings = NULL; + m_cmGeneratorChoice = new wxComboBox( itemPanel3, ID_CHOOSE_GENERATOR, _T(""), wxDefaultPosition, wxSize(170, -1), 0, m_cmGeneratorChoiceStrings, wxCB_READONLY ); + itemFlexGridSizer14->Add(m_cmGeneratorChoice, 1, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxTOP|wxBOTTOM, 5); + + wxStaticText* itemStaticText17 = new wxStaticText( itemPanel3, wxID_STATIC, _("Search"), wxDefaultPosition, wxDefaultSize, 0 ); + itemFlexGridSizer14->Add(itemStaticText17, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxADJUST_MINSIZE, 5); + + wxString* m_cmSearchQueryStrings = NULL; + m_cmSearchQuery = new wxComboBox( itemPanel3, ID_SEARCHQUERY, _T(""), wxDefaultPosition, wxSize(170, -1), 0, m_cmSearchQueryStrings, wxWANTS_CHARS ); + itemFlexGridSizer14->Add(m_cmSearchQuery, 1, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxTOP|wxBOTTOM, 5); + + m_cmShowAdvanced = new wxCheckBox( itemPanel3, ID_SHOW_ADVANCED, _("Show advanced values"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); + m_cmShowAdvanced->SetValue(FALSE); + itemBoxSizer13->Add(m_cmShowAdvanced, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5); + + m_cmOptions = new wxPropertyList( itemPanel3, ID_OPTIONS, wxDefaultPosition, wxSize(200, 150), wxSTATIC_BORDER|wxWANTS_CHARS|wxVSCROLL ); + m_cmOptions->SetDefaultColSize(250); + m_cmOptions->SetDefaultRowSize(25); + m_cmOptions->SetColLabelSize(20); + m_cmOptions->SetRowLabelSize(0); + m_cmOptions->CreateGrid(10, 2, wxGrid::wxGridSelectRows); + itemBoxSizer4->Add(m_cmOptions, 1, wxGROW|wxALL, 5); + + wxPanel* itemPanel21 = new wxPanel( m_splitter, ID_LOGPANEL, wxDefaultPosition, wxSize(-1, 100), wxNO_BORDER|wxTAB_TRAVERSAL ); + wxBoxSizer* itemBoxSizer22 = new wxBoxSizer(wxVERTICAL); + itemPanel21->SetSizer(itemBoxSizer22); + + wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxHORIZONTAL); + itemBoxSizer22->Add(itemBoxSizer23, 1, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5); + m_cmLog = new wxTextCtrl( itemPanel21, ID_LOG_AREA, _("Select your project path (where CMakeLists.txt is) and then select the build path (where the projects should be saved), or select a previous build path.\n\nRight click on a cache value for additional options (delete and ignore). Press configure to update and display new values in red, press OK to generate the projects and exit."), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_RICH2|wxSTATIC_BORDER ); + itemBoxSizer23->Add(m_cmLog, 1, wxGROW|wxRIGHT, 5); + + m_cmDescription = new wxTextCtrl( itemPanel21, ID_DESCRIPTION, _T(""), wxDefaultPosition, wxSize(200, -1), wxTE_MULTILINE|wxTE_READONLY|wxTE_RICH2|wxSTATIC_BORDER ); + itemBoxSizer23->Add(m_cmDescription, 0, wxGROW|wxLEFT, 5); + + wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxHORIZONTAL); + itemBoxSizer22->Add(itemBoxSizer26, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + m_ConfigureButton = new wxButton( itemPanel21, ID_DO_CONFIGURE, _("Co&nfigure"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ConfigureButton->SetDefault(); + itemBoxSizer26->Add(m_ConfigureButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + m_OkButton = new wxButton( itemPanel21, ID_DO_OK, _("&Generate!"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer26->Add(m_OkButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + m_CancelButton = new wxButton( itemPanel21, ID_DO_CANCEL, _("C&ancel"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer26->Add(m_CancelButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + +#if defined(__WXMSW__) + wxStaticLine* itemStaticLine30 = new wxStaticLine( itemPanel21, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + itemBoxSizer26->Add(itemStaticLine30, 0, wxGROW|wxALL, 5); +#endif + + m_DeleteCacheButton = new wxButton( itemPanel21, ID_DO_DELETE_CACHE, _("&Delete Cache"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer26->Add(m_DeleteCacheButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + m_ClearLogButton = new wxButton( itemPanel21, ID_CLEAR_LOG, _("Clear &Log"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer26->Add(m_ClearLogButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + +#if defined(__WXMSW__) + wxStaticLine* itemStaticLine33 = new wxStaticLine( itemPanel21, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + itemBoxSizer26->Add(itemStaticLine33, 0, wxGROW|wxALL, 5); +#endif + + m_cmBrowseCell = new wxButton( itemPanel21, ID_BROWSE_GRID, _("&Browse"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer26->Add(m_cmBrowseCell, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + m_splitter->SplitHorizontally(itemPanel3, itemPanel21, 300); + + wxStatusBar* itemStatusBar35 = new wxStatusBar( itemFrame1, ID_STATUSBAR, wxST_SIZEGRIP|wxNO_BORDER ); + itemStatusBar35->SetFieldsCount(2); + itemFrame1->SetStatusBar(itemStatusBar35); + +////@end CMakeSetupFrm content construction +} + +void CMakeSetupFrm::DoInitFrame(cmCommandLineInfo &cm, const wxString &fn) +{ + // path to where cmake.exe is + // m_PathToExecutable = cm.GetPathToExecutable().c_str(); + m_PathToExecutable = fn; + + // adjust size of last bar, to display % progress + wxStatusBar *bar = GetStatusBar(); + if(bar) + { + wxASSERT(bar->GetFieldsCount() > 1); + + // fill all with -1. Why this way? because the count of the status bars + // can change. All of the widths must be accounted for and initialised + int *widths = new int[bar->GetFieldsCount()]; + for(int i = 0; i < bar->GetFieldsCount(); i++) + widths[i] = -1; + + // the % field + widths[1] = 75; + bar->SetStatusWidths(bar->GetFieldsCount(), widths); + delete widths; + } + + wxString name, generator; + std::vector names; + + m_RunningConfigure = false; + + // set grid labels + m_cmOptions->SetColLabelValue(0, wxT("Cache Name")); + m_cmOptions->SetColLabelValue(1, wxT("Cache Value")); + m_cmOptions->SetProjectGenerated(false); + + // set drop target + m_cmOptions->SetDropTarget(new DnDFile(m_cmBuildPath)); + + m_cmake->GetRegisteredGenerators(names); + for(std::vector::iterator i = names.begin(); i != names.end(); ++i) + { + name = i->c_str(); + m_cmGeneratorChoice->Append(name); + } + + // sync advanced option with grid + m_cmOptions->SetShowAdvanced(m_cmShowAdvanced->GetValue()); + + // if we have a command line query that a generator + // needs to be chosen instead of the default, take it + bool foundGivenGenerator = false; + if(!cm.m_GeneratorChoiceString.IsEmpty()) + { + // set proper discovered generator + foundGivenGenerator = m_cmGeneratorChoice->SetStringSelection(cm.m_GeneratorChoiceString); + } + + // if none selected, we will see if VS8, VS7 or VS6 is present + if(!foundGivenGenerator || m_cmGeneratorChoice->GetValue().IsEmpty()) + { + std::string mp; + mp = "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup;Dbghelp_path]"; + cmSystemTools::ExpandRegistryValues(mp); + if(mp != "/registry") + generator = wxT("Visual Studio 8 2005"); + else + { + mp = "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1;InstallDir]"; + cmSystemTools::ExpandRegistryValues(mp); + if (mp != "/registry") + generator = wxT("Visual Studio 7 .NET 2003"); + else + { + mp = "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.0;InstallDir]"; + cmSystemTools::ExpandRegistryValues(mp); + if (mp != "/registry") + generator = wxT("Visual Studio 7"); + else + generator = wxT("Visual Studio 6"); + } + } + } + + // set proper discovered generator + m_cmGeneratorChoice->SetStringSelection(generator); + + wxString str; + str.Printf("CMake %d.%d - %s", cmVersion::GetMajorVersion(), + cmVersion::GetMinorVersion(), + cmVersion::GetReleaseVersion().c_str()); + str.Printf("CMakeSetup v%i.%i%s", CMAKEGUI_MAJORVER, CMAKEGUI_MINORVER, CMAKEGUI_ADDVER); + + SetTitle(str); + wxString path; + + // get last 5 used projects + for(size_t i = 0; i < CM_MAX_RECENT_PATHS; i++) + { + path.Printf("%s%i", _(CM_RECENT_BUILD_PATH), i); + if(m_config->Read(path, &str)) + AppendPathToRecentList(str); + } + + // get query items + for(size_t i = 0; i < CM_MAX_SEARCH_QUERIES; i++) + { + path.Printf("%s%i", _(CM_SEARCH_QUERY), i); + if(m_config->Read(path, &str)) + m_cmSearchQuery->Append(str); + } + + + // make sure the call to update grid is not executed + m_noRefresh = true; + m_cmSearchQuery->SetValue(_("")); + m_noRefresh = false; + + // Get the parameters from the command line info + // If an unknown parameter is found, try to interpret it too, since it + // is likely to be a file dropped on the shortcut :) + bool sourceDirLoaded = false, + buildDirLoaded = false; + + if(cm.m_LastUnknownParameter.empty()) + { + if(cm.m_WhereSource.size() > 0 ) + { + m_cmProjectPath->SetValue(cm.m_WhereSource.c_str()); + sourceDirLoaded = true; + } + + if (cm.m_WhereBuild.size() > 0 ) + { + m_cmBuildPath->SetValue(cm.m_WhereBuild.c_str()); + buildDirLoaded = true; + } + + m_cmShowAdvanced->SetValue(cm.m_AdvancedValues); + } + else + { + m_cmShowAdvanced->SetValue(false); + + // TODO: Interpret directory from dropped shortcut + //this->ChangeDirectoriesFromFile(cmdInfo->m_LastUnknownParameter.c_str()); + } + + if (cm.m_ExitAfterLoad) + { + int id = GetId(); + m_ExitTimer = new wxTimer(this, id); + m_ExitTimer->Start(3000); + + Connect( id, wxEVT_TIMER,(wxObjectEventFunction) &CMakeSetupFrm::OnExitTimer ); + + } + + // retrieve settings, this needs to be done here + // because writing to the m_cmBuildPath triggers a cache reload + if(!sourceDirLoaded && m_config->Read(CM_LASTPROJECT_PATH, &str)) + m_cmProjectPath->SetValue(str); + + if(!buildDirLoaded) + { + m_cmOptions->RemoveAll(); + if(m_config->Read(CM_LASTBUILD_PATH, &str)) + m_cmBuildPath->SetValue(str); + } + + // set window size from settings + long xsize, ysize, splitpos; + if(m_config->Read(CM_XSIZE, &xsize) && m_config->Read(CM_YSIZE, &ysize) && + m_config->Read(CM_SPLITTERPOS, &splitpos)) + { + SetSize(xsize, ysize); + m_splitter->SetSashPosition(splitpos); + } + + if(m_config->Read(CM_XPOS, &xsize) && m_config->Read(CM_YPOS, &ysize)) + SetSize(xsize, ysize, -1, -1, wxSIZE_USE_EXISTING); + + UpdateWindowState(); +} + +void CMakeSetupFrm::LoadCacheFromDiskToGUI() +{ + wxString builddir = m_cmBuildPath->GetValue(); + + cmCacheManager *cachem = m_cmake->GetCacheManager(); + if(cachem && !builddir.Trim().IsEmpty()) + { + if(cachem->LoadCache(builddir.c_str())) + AppendPathToRecentList(builddir); + + // represent this cache in the grid, but not before we + // wiped all of the old items + FillCacheGUIFromCacheManager(); + + // set the generator string to the one used in the cache + cmCacheManager::CacheIterator it = cachem->GetCacheIterator("CMAKE_GENERATOR"); + if(!it.IsAtEnd()) + { + wxString curGen = it.GetValue(); + m_cmGeneratorChoice->SetStringSelection(curGen); + } + } +} + +void CMakeSetupFrm::AppendPathToRecentList(const wxString &p) +{ + wxFileName path; + wxString str; + + if(p.IsEmpty()) + return; + + // cheap way to get rid of trailing seperators + path.AssignDir(p); + str = path.GetPath(); + + // append the item, or add it to end to make sure + // it is remembered between sessions + for(size_t i = 0; i < m_recentPaths.Count(); i++) + { + if(m_recentPaths[i].IsSameAs(str, false)) + { + m_recentPaths.RemoveAt(i); + + // only re-add when item is still valid + if(::wxDirExists(str)) + m_recentPaths.Add(str); + else + return; // no add when the item is not existing + + return; + } + } + + if(GetMenuBar()) + { + // get file menu + int lastUsedID = 0; + wxMenu *mnu = GetMenuBar()->GetMenu(0); + wxASSERT(mnu != 0); + + if(::wxDirExists(str)) + { + // add to array + if(m_recentPaths.Count() == 0) + mnu->AppendSeparator(); + + lastUsedID = CM_RECENT_BUILD_ITEM + m_recentPaths.Count(); + m_recentPaths.Add(str); + + // when we have more in list then we can display, prune and + // remove some menu items until we have room (and available ID's again) + if(m_recentPaths.Count() > CM_MAX_RECENT_PATHS) + { + // prune the list + while(m_recentPaths.Count() > CM_MAX_RECENT_PATHS) + m_recentPaths.RemoveAt(0); + + // now determine count, and remove until we have room + int index = mnu->GetMenuItemCount() - 1; + int count = 0; + wxASSERT(index > 0); + + wxMenuItem *item; + do + { + item = mnu->FindItemByPosition(index); + if(item) + { + if(item->IsSeparator()) + { + // next index is valid item + index ++; + break; + } + else + count ++; + } + + index --; + } + while(index >= 0 && item); + + // ok, if count > CM_MAX_RECENT_PATHS then we are going to + // delete some items on the index position + if(count >= CM_MAX_RECENT_PATHS) + { + // delete items that are exceeding + while(count >= CM_MAX_RECENT_PATHS) + { + lastUsedID = mnu->FindItemByPosition(index)->GetId(); + mnu->Delete(lastUsedID); + count --; + } + } + } + + // append item + mnu->Append(lastUsedID, str); + } + } +} + +bool CMakeSetupFrm::PerformCacheRun() +{ + bool enable = false; + cmCacheManager *cachem = m_cmake->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + + // remove all items that are no longer present + size_t j = 0; + while(j < m_cmOptions->GetCount()) + { + // check to see if it is still in the CMake cache + // if it is still in the cache then it is no longer new + wxPropertyItem *item = m_cmOptions->GetItem(j); + if ( !it.Find((const char*)item->GetPropName().c_str()) ) + m_cmOptions->RemoveProperty(item); + else + { + // ok we found it, mark as old + item->SetNewValue(false); + int row = m_cmOptions->FindProperty(item); + if(row != -1) + m_cmOptions->UpdatePropertyItem(item, row); + j++; + } + } + + if(cachem->GetSize() > 0 && !cmSystemTools::GetErrorOccuredFlag()) + { + bool enable = true; + for(size_t i = 0; i < m_cmOptions->GetCount(); i++) + { + wxPropertyItem* item = m_cmOptions->GetItem(i); + if(item->GetAdvanced()) + { + if(item->GetNewValue() && m_cmOptions->GetShowAdvanced()) + { + // if one new value then disable to OK button + enable = false; + break; + } + } + else + { + if(item->GetNewValue()) + { + // if one new value then disable to OK button + enable = false; + break; + } + } + } + } + + return enable; +} + +void CMakeSetupFrm::FillCacheGUIFromCacheManager() +{ + cmCacheManager *cachem = m_cmake->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + + // remove all items that are no longer present + size_t j = 0; + while(j < m_cmOptions->GetCount()) + { + // check to see if it is still in the CMake cache + // if it is still in the cache then it is no longer new + wxPropertyItem *item = m_cmOptions->GetItem(j); + if ( !it.Find((const char*)item->GetPropName().c_str()) ) + m_cmOptions->RemoveProperty(item); + else + j++; + } + + // if there are already entries in the cache, then + // put the new ones in the top, so they show up first + bool reverseOrder = false; + for(cmCacheManager::CacheIterator i = cachem->NewIterator(); !i.IsAtEnd(); i.Next()) + { + const char* key = i.GetName(); + + // if value has trailing space or tab, enclose it in single quotes + // to enforce the fact that it has 'invisible' trailing stuff + std::string value = i.GetValue(); + if (value.size() && (value[value.size() - 1] == ' ' || value[value.size() - 1] == '\t')) + value = '\'' + value + '\''; + + bool advanced = i.GetPropertyAsBool("ADVANCED"); + switch(i.GetType() ) + { + case cmCacheManager::BOOL: + { + wxString OnOff; + + if(cmSystemTools::IsOn(value.c_str())) + OnOff = wxT("ON"); + else + OnOff = wxT("OFF"); + + m_cmOptions->AddProperty(key, + OnOff.c_str(), + i.GetProperty("HELPSTRING"), + wxPropertyList::CHECKBOX, "ON|OFF", + reverseOrder, + advanced ); + } + break; + + case cmCacheManager::PATH: + m_cmOptions->AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + wxPropertyList::PATH,"", + reverseOrder, advanced); + break; + + case cmCacheManager::FILEPATH: + m_cmOptions->AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + wxPropertyList::FILE,"", + reverseOrder, advanced); + break; + + case cmCacheManager::STRING: + m_cmOptions->AddProperty(key, + value.c_str(), + i.GetProperty("HELPSTRING"), + wxPropertyList::EDIT,"", + reverseOrder, advanced); + break; + + case cmCacheManager::INTERNAL: + { + wxPropertyItem *pItem = m_cmOptions->FindPropertyByName(key); + if(pItem) + m_cmOptions->RemoveProperty(pItem); + } + break; + } + } +} + +void CMakeSetupFrm::OnExitTimer(wxTimerEvent &event) +{ + Close(); +} + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BROWSE_PROJECT + */ + +void CMakeSetupFrm::OnButtonBrowseProject( wxCommandEvent& event ) +{ + const wxString& dir = wxDirSelector("Select project directory", m_cmProjectPath->GetValue()); + if(!dir.IsEmpty()) + m_cmProjectPath->SetValue(dir); +} + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BROWSE_BUILD + */ + +void CMakeSetupFrm::OnButtonBrowseBuild( wxCommandEvent& event ) +{ + const wxString& dir = wxDirSelector("Select build directory", m_cmBuildPath->GetValue()); + if(!dir.IsEmpty()) + m_cmBuildPath->SetValue(dir); +} + +/*! + * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_SHOW_ADVANCED + */ + +void CMakeSetupFrm::OnShowAdvancedValues( wxCommandEvent& event ) +{ + if(m_cmShowAdvanced->GetValue()) + m_cmOptions->ShowAdvanced(); + else + m_cmOptions->HideAdvanced(); +} + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_CONFIGURE + */ + +void CMakeSetupFrm::OnButtonConfigure( wxCommandEvent& event ) +{ + DoConfigure(); +} + +void CMakeSetupFrm::DoConfigure() +{ + // enable error messages each time configure is pressed + cmSystemTools::EnableMessages(); + m_cmOptions->HideControls(); + + cmSystemTools::ResetErrorOccuredFlag(); + + // instantiate a dialog for the progress meter + + PerformCacheRun(); + RunCMake(false); +} + +int CMakeSetupFrm::RunCMake(bool generateProjectFiles) +{ + int value = -1; + + // clear log + m_cmLog->Clear(); + m_cmLog->DiscardEdits(); + + wxString builddir = m_cmBuildPath->GetValue(), + sourcedir = m_cmProjectPath->GetValue(), + err = wxT("Error in configuration process, project files may be invalid"); + + + // sanity check for people pressing OK on empty dirs + if(builddir.Trim().IsEmpty() || sourcedir.Trim().IsEmpty()) + { + wxMessageBox(wxT("Please enter a valid source directory and build directory"), wxT("Error"), wxOK | wxICON_ERROR, this); + return -1; + } + + // check if the directory exists, if not, create it + if(!cmSystemTools::FileExists(builddir.c_str())) + { + wxString str; + str << wxT("Build directory does not exist, should I create it?\n\nDirectory: ") << builddir; + + int answer = wxMessageBox(str, wxT("Create directory"), wxYES_NO, this); + if (answer == wxYES) + { + if(!cmSystemTools::MakeDirectory(builddir.c_str())) + { + // could not create, tell and abort + wxMessageBox(wxT("Could not create directory"), wxT("Error"), wxOK | wxICON_ERROR, this); + return -1; + } + } + else + { + // we abort because the user did not want to make the directory + wxMessageBox(wxT("Build Project aborted, nothing done."), wxT("Aborted"), + wxOK | wxICON_EXCLAMATION, this); + return -1; + } + } + + /** show progress dialog that informs the user with a progress bar */ + if(m_progressDlg) + m_progressDlg->Destroy(); + + m_progressDlg = new CMProgressDialog(this); + m_progressDlg->Show(); + + // set the wait cursor + m_RunningConfigure = true; + UpdateWindowState(); + + // always save the current gui values to disk + SaveCacheFromGUI(); + + // Make sure we are working from the cache on disk + LoadCacheFromDiskToGUI(); + + // setup the cmake instance + if (generateProjectFiles) + { + if(m_cmake->Generate() != 0) + { + wxMessageBox(err, wxT("Error"), wxOK | wxICON_ERROR, this); + cmSystemTools::Error(err.c_str()); + value = -1; + } + else + { + value = 0; + m_cmOptions->SetProjectGenerated(true); // clear cache dirty when generated + } + } + else + { + // set paths + m_cmake->SetHomeDirectory(m_cmProjectPath->GetValue().c_str()); + m_cmake->SetStartDirectory(m_cmProjectPath->GetValue().c_str()); + m_cmake->SetHomeOutputDirectory(m_cmBuildPath->GetValue().c_str()); + m_cmake->SetStartOutputDirectory(m_cmBuildPath->GetValue().c_str()); + + m_cmake->SetGlobalGenerator(m_cmake->CreateGlobalGenerator(m_cmGeneratorChoice->GetValue().c_str())); + m_cmake->SetCMakeCommand(m_PathToExecutable.c_str()); + m_cmake->LoadCache(); + if(m_cmake->Configure() != 0) + { + wxMessageBox(err, wxT("Error"), wxOK | wxICON_ERROR, this); + cmSystemTools::Error(err.c_str()); + } + + // update the GUI with any new values in the caused by the + // generation process + LoadCacheFromDiskToGUI(); + } + + m_RunningConfigure = false; + + if(!value) + cmSystemTools::ResetErrorOccuredFlag(); + + m_progressDlg->Destroy(); + m_progressDlg = 0; + + // reset the statusbar progress + wxStatusBar *bar = GetStatusBar(); + if(bar) + bar->SetStatusText(wxEmptyString, 1); + + UpdateWindowState(); + return value; +} + +//! Save GUI values to cmCacheManager and then save to disk. +void CMakeSetupFrm::SaveCacheFromGUI() +{ + cmCacheManager *cachem = m_cmake->GetCacheManager(); + FillCacheManagerFromCacheGUI(); + + // write the cache to disk + if(!m_cmBuildPath->GetValue().Trim().IsEmpty()) + cachem->SaveCache(m_cmBuildPath->GetValue().c_str()); +} + +void CMakeSetupFrm::FillCacheManagerFromCacheGUI() +{ + cmCacheManager *cachem = m_cmake->GetCacheManager(); + + cmCacheManager::CacheIterator it = cachem->NewIterator(); + for(size_t i = 0; i < m_cmOptions->GetCount(); i++) + { + wxPropertyItem* item = m_cmOptions->GetItem(i); + if ( it.Find((const char*)item->GetPropName().c_str()) ) + { + // if value is enclosed in single quotes ('foo') then remove them + // they were used to enforce the fact that it had 'invisible' + // trailing stuff + if (item->GetCurValue().Len() >= 2 && + item->GetCurValue().GetChar(0) == '\'' && + item->GetCurValue().GetChar(item->GetCurValue().Len() - 1) == '\'') + { + it.SetValue(item->GetCurValue().Mid(1, item->GetCurValue().Len() - 2).c_str()); + } + else + it.SetValue(item->GetCurValue().c_str()); + } + } +} + + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_OK + */ + +void CMakeSetupFrm::OnButtonOk( wxCommandEvent& event ) +{ + DoGenerate(); +} + +void CMakeSetupFrm::DoGenerate() +{ + cmSystemTools::EnableMessages(); + + cmSystemTools::ResetErrorOccuredFlag(); + + m_cmOptions->HideControls(); + PerformCacheRun(); + + if(!RunCMake(true)) + { + // issue a close when this is done (this is issued by menu "Generate and Exit" + if(m_quitAfterGenerating) + Close(); + else if(!wxGetKeyState(WXK_SHIFT)) + { + bool close; + m_config->Read(CM_CLOSEAFTERGEN, &close, CM_CLOSEAFTERGEN_DEF); + + if(!close) + wxMessageBox(wxT("Building of project files succesful!"), wxT("Success!"), wxOK|wxICON_INFORMATION); + else + Close(); + } + } +} + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_CANCEL + */ + +void CMakeSetupFrm::OnButtonCancel( wxCommandEvent& event ) +{ + DoCancelButton(); +} + +void CMakeSetupFrm::DoCancelButton() +{ + if(m_RunningConfigure) + { + int result = wxMessageBox(wxT("You are in the middle of a Configure.\n" + "If you Cancel now the configure information will be lost.\n" + "Are you sure you want to Cancel?"), wxT("Warning"), wxYES_NO|wxICON_WARNING); + if(result == wxYES) + cmSystemTools::SetFatalErrorOccured(); + else + if(m_progressDlg) + m_progressDlg->ResetCancel(); + } +} + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_DELETE_CACHE + */ + +void CMakeSetupFrm::OnButtonDeleteCache( wxCommandEvent& event ) +{ + DoDeleteCache(); +} + +void CMakeSetupFrm::DoDeleteCache() +{ + bool deletecache = true; + if(m_cmOptions->IsCacheDirty() || (m_cmOptions->GetCount() > 0 && !m_cmOptions->IsGenerated())) + { + int result = ::wxMessageBox(_("You have changed options, are you sure you want to delete all items?\n"), + _("Warning"), wxYES_NO|wxICON_QUESTION); + + // when user wants to wait, wait.. else quit + if(result == wxNO) + deletecache = false; + + } + + if(deletecache) + { + // indicate that we haven't generated a project yet + m_cmOptions->SetProjectGenerated(false); + + if(!m_cmBuildPath->GetValue().Trim().IsEmpty() && m_cmake != 0) + m_cmake->GetCacheManager()->DeleteCache(m_cmBuildPath->GetValue().Trim()); + + LoadCacheFromDiskToGUI(); + UpdateWindowState(); + } +} + +/*! + * Should we show tooltips? + */ + +bool CMakeSetupFrm::ShowToolTips() +{ + return TRUE; +} + +/*! + * Get bitmap resources + */ + +wxBitmap CMakeSetupFrm::GetBitmapResource( const wxString& name ) +{ + // Bitmap retrieval +////@begin CMakeSetupFrm bitmap retrieval + return wxNullBitmap; +////@end CMakeSetupFrm bitmap retrieval +} + +/*! + * Get icon resources + */ + +wxIcon CMakeSetupFrm::GetIconResource( const wxString& name ) +{ + // Icon retrieval +////@begin CMakeSetupFrm icon retrieval + if (name == wxT("cmake_icon.xpm")) + { + wxIcon icon(_T("cmake_icon.xpm"), wxBITMAP_TYPE_XPM); + return icon; + } + return wxNullIcon; +////@end CMakeSetupFrm icon retrieval +} + +/*! + * wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING event handler for ID_SPLITTERWINDOW + */ + +void CMakeSetupFrm::OnSplitterPosChanging( wxSplitterEvent& event ) +{ + int width, height; + + GetSize(&width, &height); + + if((height > 100)) + { + if(event.GetSashPosition() < 170) + event.SetSashPosition(170); + else + { + if(event.GetSashPosition() > (height - 180)) + event.SetSashPosition(height - 180); + } + } + else + event.Veto(); + +} + + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CLEAR_LOG + */ + +void CMakeSetupFrm::OnClearLogClick( wxCommandEvent& event ) +{ + // delete the log text + m_cmLog->Clear(); + m_cmLog->DiscardEdits(); +} + + +/*! + * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_SOURCE_BUILD_PATH + */ + +void CMakeSetupFrm::OnSourceBuildPathUpdated( wxCommandEvent& event ) +{ + DoReloadCache(); +} + +void CMakeSetupFrm::DoReloadCache() +{ + wxString buildpath = m_cmBuildPath->GetValue(); + // The build dir has changed, check if there is a cache, and + // grab the source dir from it + + // make sure the call to update grid is not executed + m_noRefresh = true; + m_cmSearchQuery->SetValue(_("")); + m_noRefresh = false; + + std::string path = buildpath.c_str(); + cmSystemTools::ConvertToUnixSlashes(path); + + // adjust the cmake instance + m_cmake->SetHomeOutputDirectory(buildpath.c_str()); + m_cmake->SetStartOutputDirectory(buildpath.c_str()); + + std::string cache_file = path; + cache_file += "/CMakeCache.txt"; + + // fill in the project path where the source is located, this is + // read from the CMake cache + cmCacheManager *cachem = m_cmake->GetCacheManager(); + cmCacheManager::CacheIterator it = cachem->NewIterator(); + if (cmSystemTools::FileExists(cache_file.c_str()) && cachem->LoadCache(path.c_str()) && + it.Find("CMAKE_HOME_DIRECTORY")) + { + path = ConvertToWindowsPath(it.GetValue()); + m_cmProjectPath->SetValue(path.c_str()); + } + + m_cmOptions->RemoveAll(); + LoadCacheFromDiskToGUI(); + UpdateWindowState(); +} + + +/*! + * wxEVT_COMMAND_TEXT_ENTER event handler for ID_SOURCE_BUILD_PATH + */ + +void CMakeSetupFrm::OnSourceBuildPathEnter( wxCommandEvent& event ) +{ + OnSourceBuildPathUpdated(event); +} + +/*! + * wxEVT_MOTION event handler for ID_OPTIONS + */ + +void CMakeSetupFrm::OnPropertyMotion( wxMouseEvent& event ) +{ + ShowPropertyDescription(m_cmOptions->YToRow(event.GetY())); + event.Skip(); +} + + +/*! + * wxEVT_GRID_SELECT_CELL event handler for ID_OPTIONS + */ + +void CMakeSetupFrm::OnGridSelectCell( wxGridEvent& event ) +{ + // show description + ShowPropertyDescription(event.GetRow()); + + // enable or disable the browse button + m_cmBrowseCell->Enable(m_cmOptions->IsSelectedItemBrowsable(event.GetRow())); + event.Skip(); +} + +void CMakeSetupFrm::ShowPropertyDescription(int row) +{ + if(row == wxNOT_FOUND || row < 0) + m_cmDescription->SetValue(wxEmptyString); + else + { + wxPropertyItem *pItem = m_cmOptions->GetPropertyItemFromRow(row); + if(pItem) + m_cmDescription->SetValue(pItem->GetHelpString()); + else + m_cmDescription->SetValue(wxEmptyString); + } +} + +/*! + * wxEVT_GRID_CELL_CHANGE event handler for ID_OPTIONS + */ + +void CMakeSetupFrm::OnCellChange( wxGridEvent& event ) +{ + // update the button state when the cache is invalidated + UpdateWindowState(); +} + +void CMakeSetupFrm::OnRecentFileMenu( wxCommandEvent &event ) +{ + if(GetMenuBar()) + { + // get file menu + wxMenu *mnu = GetMenuBar()->GetMenu(0); + wxASSERT(mnu != 0); + + wxMenuItem *item = mnu->FindItem(event.GetId()); + if(item) + m_cmBuildPath->SetValue(item->GetLabel()); + } +} +/*! + * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX + */ + +void CMakeSetupFrm::OnSearchquerySelected( wxCommandEvent& event ) +{ + m_cmOptions->SetQuery(m_cmSearchQuery->GetValue()); +} + +void CMakeSetupFrm::OnAddQuery ( wxCommandEvent &event ) +{ + // add current text if not yet present + if(m_cmSearchQuery->FindString(m_cmSearchQuery->GetValue()) == wxNOT_FOUND) + { + m_cmSearchQuery->Append(m_cmSearchQuery->GetValue()); + + // if too many items are present, prune + while(m_cmSearchQuery->GetCount() > CM_MAX_SEARCH_QUERIES) + m_cmSearchQuery->Delete(0); + } +} + +/*! + * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_SEARCHQUERY + */ + +void CMakeSetupFrm::OnSearchqueryUpdated( wxCommandEvent& event ) +{ + // only refresh when this event was caused by user + if(!m_noRefresh) + m_cmOptions->SetQuery(m_cmSearchQuery->GetValue()); +} + + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BROWSE_GRID + */ + +void CMakeSetupFrm::OnBrowseGridClick( wxCommandEvent& event ) +{ + m_cmOptions->BrowseSelectedItem(); +} + + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_RELOAD_CACHE + */ + +void CMakeSetupFrm::OnMenuReloadCacheClick( wxCommandEvent& event ) +{ + bool reload = true; + if(m_cmOptions->IsCacheDirty() || (m_cmOptions->GetCount() > 0 && !m_cmOptions->IsGenerated())) + { + int result = ::wxMessageBox(_("You have changed options, are you sure you want to reload?\n"), + _("Warning"), wxYES_NO|wxICON_QUESTION); + + // when user wants to wait, wait.. else quit + if(result == wxNO) + reload = false; + + } + + if(reload) + DoReloadCache(); +} + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_DELETE_CACHE + */ + +void CMakeSetupFrm::OnMenuDeleteCacheClick( wxCommandEvent& event ) +{ + DoDeleteCache(); +} + + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_QUIT + */ + +void CMakeSetupFrm::OnMenuQuitClick( wxCommandEvent& event ) +{ + // the close event will veto if the user + // did not want to quit due to unsaved changes + Close(); +} + + +/*! + * wxEVT_CLOSE_WINDOW event handler for ID_FRAME + */ + +void CMakeSetupFrm::OnCloseWindow( wxCloseEvent& event ) +{ + // ask quit if: + // - The cache is dirty + // - Or the cache is OK and has some items, and no project was generated recently (configure -> generate) + if(m_cmOptions->IsCacheDirty() || (m_cmOptions->GetCount() > 0 && !m_cmOptions->IsGenerated())) + { + int result = ::wxMessageBox(_("You have changed options, but not yet generated the projects\n" + "are you sure you want to quit?"), _("Warning"), wxYES_NO|wxICON_QUESTION); + + // when user wants to wait, wait.. else quit + if(result == wxNO) + event.Veto(); + else + event.Skip(); + } + else + event.Skip(); +} + + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_ABOUTDLG + */ + +void CMakeSetupFrm::OnAboutClick( wxCommandEvent& event ) +{ + CMAboutDlg *dlg = new CMAboutDlg(this); + + wxArrayString generators; + std::vector names; + m_cmake->GetRegisteredGenerators(names); + for(std::vector::iterator i = names.begin(); i != names.end(); ++i) + generators.Add(i->c_str()); + + wxString cmversion, cmsversion; +// cmversion.Printf("v%i.%i %s", cmake::GetMajorVersion(), cmake::GetMinorVersion(), cmake::GetReleaseVersion()); + cmsversion.Printf("v%i.%i%s", CMAKEGUI_MAJORVER, CMAKEGUI_MINORVER, CMAKEGUI_ADDVER); + + dlg->SetAboutText(cmversion, cmsversion, generators); + + dlg->ShowModal(); + dlg->Destroy(); +} + + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_CMAKE_OPTIONS + */ + +void CMakeSetupFrm::OnOptionsClick( wxCommandEvent& event ) +{ + CMOptionsDlg *dlg = new CMOptionsDlg(this); + + dlg->SetConfig(m_config); + if(dlg->ShowModal() == wxID_OK) + { + // store volatile settings + dlg->GetConfig(m_config); + + // apply non volatile setting such as clear search query, recent menu, etc. + SyncFormOptions(dlg); + } + + dlg->Destroy(); +} + +void CMakeSetupFrm::SyncFormOptions(CMOptionsDlg *dlg) +{ + // TODO: Clear search query etc. +} +/*! + * wxEVT_COMMAND_SPLITTER_DOUBLECLICKED event handler for ID_SPLITTERWINDOW + */ + +void CMakeSetupFrm::OnSplitterwindowSashDClick( wxSplitterEvent& event ) +{ + event.Veto(); +} + + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_CONFIGURE + */ + +void CMakeSetupFrm::OnMenuConfigureClick( wxCommandEvent& event ) +{ + DoConfigure(); +} + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_EXITGENERATE + */ + +void CMakeSetupFrm::OnMenuGenerateClick( wxCommandEvent& event ) +{ + // set flag so that a close command is issued + // after generating the cmake cache to projects + m_quitAfterGenerating = true; + DoGenerate(); + m_quitAfterGenerating = false; +} + + +/*! + * wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_TOGGLE_ADVANCED + */ + +void CMakeSetupFrm::OnMenuToggleAdvancedClick( wxCommandEvent& event ) +{ + // toggle the check box + m_cmShowAdvanced->SetValue(!m_cmShowAdvanced->GetValue()); + OnShowAdvancedValues(event); +} + + diff --git a/CMakeLua/Source/WXDialog/CMakeSetupFrame.h b/CMakeLua/Source/WXDialog/CMakeSetupFrame.h new file mode 100644 index 0000000..cf48988 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CMakeSetupFrame.h @@ -0,0 +1,360 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: CMakeSetupFrame.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef _CMAKESETUPFRAME_H_ +#define _CMAKESETUPFRAME_H_ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "CMakeSetupFrame.cpp" +#endif + +/*! + * Includes + */ + +////@begin includes +#include "wx/frame.h" +#include "wx/splitter.h" +#include "wx/grid.h" +#include "wx/statline.h" +#include "wx/statusbr.h" +////@end includes + +#include +#include +#include + + +#include "../cmake.h" +#include "progressdlg.h" +#include "optionsdlg.h" +#include "CommandLineInfo.h" +#include "config.h" + +// this ID should be taken as base to make sure they are unique +// NOTE: DialogBlocks starts at 10100 so 10000 to 10099 are free +#define CM_NEXT_USABLEID CM_RECENT_BUILD_ITEM + CM_MAX_RECENT_PATHS + +/*! + * Forward declarations + */ + +////@begin forward declarations +class wxSplitterWindow; +class wxPropertyList; +////@end forward declarations + +/*! + * Control identifiers + */ + +////@begin control identifiers +#define ID_FRAME 10100 +#define SYMBOL_CMAKESETUPFRM_STYLE wxDEFAULT_FRAME_STYLE|wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxCLOSE_BOX|wxSUNKEN_BORDER +#define SYMBOL_CMAKESETUPFRM_TITLE _("CMake Setup v2.0.x") +#define SYMBOL_CMAKESETUPFRM_IDNAME ID_FRAME +#define SYMBOL_CMAKESETUPFRM_SIZE wxSize(600, 550) +#define SYMBOL_CMAKESETUPFRM_POSITION wxDefaultPosition +#define ID_SPLITTERWINDOW 10101 +#define ID_MAINPANEL 10102 +#define ID_PROJECT_PATH 10103 +#define ID_BROWSE_PROJECT 10104 +#define ID_SOURCE_BUILD_PATH 10105 +#define ID_BROWSE_BUILD 10106 +#define ID_CHOOSE_GENERATOR 10107 +#define ID_SEARCHQUERY 10109 +#define ID_SHOW_ADVANCED 10108 +#define ID_OPTIONS 10110 +#define ID_LOGPANEL 10111 +#define ID_LOG_AREA 10112 +#define ID_DESCRIPTION 10113 +#define ID_DO_CONFIGURE 10114 +#define ID_DO_OK 10115 +#define ID_DO_CANCEL 10116 +#define ID_DO_DELETE_CACHE 10117 +#define ID_CLEAR_LOG 10118 +#define ID_BROWSE_GRID 10119 +#define ID_STATUSBAR 10120 +#define ID_MENU_RELOAD_CACHE 10122 +#define ID_MENU_DELETE_CACHE 10123 +#define ID_MENU_QUIT 10125 +#define ID_MENU_CONFIGURE 10126 +#define ID_MENU_EXITGENERATE 10127 +#define ID_MENU_TOGGLE_ADVANCED 10128 +#define ID_CMAKE_OPTIONS 10124 +#define ID_ABOUTDLG 10121 +////@end control identifiers + +/*! + * Compatibility + */ + +#ifndef wxCLOSE_BOX +#define wxCLOSE_BOX 0x1000 +#endif +#ifndef wxFIXED_MINSIZE +#define wxFIXED_MINSIZE 0 +#endif + +class DnDFile : public wxFileDropTarget +{ +public: + DnDFile(wxTextCtrl *pOwner) + : m_pOwner(pOwner) + { + }; + + virtual bool OnDropFiles(wxCoord x, wxCoord y, + const wxArrayString& filenames); + +private: + wxTextCtrl *m_pOwner; +}; + + +/*! + * CMakeSetupFrm class declaration + */ + +class CMakeSetupFrm: public wxFrame +{ + DECLARE_CLASS( CMakeSetupFrm ) + DECLARE_EVENT_TABLE() + +public: + /// Constructors + CMakeSetupFrm( ); + CMakeSetupFrm( wxWindow* parent, wxWindowID id = SYMBOL_CMAKESETUPFRM_IDNAME, const wxString& caption = SYMBOL_CMAKESETUPFRM_TITLE, const wxPoint& pos = SYMBOL_CMAKESETUPFRM_POSITION, const wxSize& size = SYMBOL_CMAKESETUPFRM_SIZE, long style = SYMBOL_CMAKESETUPFRM_STYLE ); + + // Destructor + virtual ~CMakeSetupFrm(); + + bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CMAKESETUPFRM_IDNAME, const wxString& caption = SYMBOL_CMAKESETUPFRM_TITLE, const wxPoint& pos = SYMBOL_CMAKESETUPFRM_POSITION, const wxSize& size = SYMBOL_CMAKESETUPFRM_SIZE, long style = SYMBOL_CMAKESETUPFRM_STYLE ); + + /// Creates the controls and sizers + void CreateControls(); + + /** Logs a message. For the kind parameter use; + 1 - neutral message + 0 - warning message (blue text) + -1 - error message (red text) + */ + void LogMessage(int logkind, const char *msg); + + void UpdateProgress(float progress) { + if(m_progressDlg) + m_progressDlg->SetProgress(progress); + + // also show in the tiny field + wxStatusBar *bar = GetStatusBar(); + if(bar) + { + wxString str; + str.Printf("%2.1f %%", (progress * 100)); + bar->SetStatusText(str, 1); + } + }; + + void IssueUpdate(); + + /** Initialise all crap in the frame, like listing the make generators, + selecting the best one to use, and loading the cache for the first time + when the build paths were set */ + void DoInitFrame(cmCommandLineInfo &cm, const wxString &fn); + +////@begin CMakeSetupFrm event handler declarations + + /// wxEVT_CLOSE_WINDOW event handler for ID_FRAME + void OnCloseWindow( wxCloseEvent& event ); + + /// wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING event handler for ID_SPLITTERWINDOW + void OnSplitterPosChanging( wxSplitterEvent& event ); + + /// wxEVT_COMMAND_SPLITTER_DOUBLECLICKED event handler for ID_SPLITTERWINDOW + void OnSplitterwindowSashDClick( wxSplitterEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BROWSE_PROJECT + void OnButtonBrowseProject( wxCommandEvent& event ); + + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_SOURCE_BUILD_PATH + void OnSourceBuildPathUpdated( wxCommandEvent& event ); + + /// wxEVT_COMMAND_TEXT_ENTER event handler for ID_SOURCE_BUILD_PATH + void OnSourceBuildPathEnter( wxCommandEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BROWSE_BUILD + void OnButtonBrowseBuild( wxCommandEvent& event ); + + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_SEARCHQUERY + void OnSearchquerySelected( wxCommandEvent& event ); + + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_SEARCHQUERY + void OnSearchqueryUpdated( wxCommandEvent& event ); + + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_SHOW_ADVANCED + void OnShowAdvancedValues( wxCommandEvent& event ); + + /// wxEVT_GRID_CELL_CHANGE event handler for ID_OPTIONS + void OnCellChange( wxGridEvent& event ); + + /// wxEVT_GRID_SELECT_CELL event handler for ID_OPTIONS + void OnGridSelectCell( wxGridEvent& event ); + + /// wxEVT_MOTION event handler for ID_OPTIONS + void OnPropertyMotion( wxMouseEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_CONFIGURE + void OnButtonConfigure( wxCommandEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_OK + void OnButtonOk( wxCommandEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_CANCEL + void OnButtonCancel( wxCommandEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DO_DELETE_CACHE + void OnButtonDeleteCache( wxCommandEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CLEAR_LOG + void OnClearLogClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BROWSE_GRID + void OnBrowseGridClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_RELOAD_CACHE + void OnMenuReloadCacheClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_DELETE_CACHE + void OnMenuDeleteCacheClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_QUIT + void OnMenuQuitClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_CONFIGURE + void OnMenuConfigureClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_EXITGENERATE + void OnMenuGenerateClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_MENU_TOGGLE_ADVANCED + void OnMenuToggleAdvancedClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_CMAKE_OPTIONS + void OnOptionsClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_ABOUTDLG + void OnAboutClick( wxCommandEvent& event ); + +////@end CMakeSetupFrm event handler declarations + + void OnRecentFileMenu( wxCommandEvent &event ); + + void OnAddQuery ( wxCommandEvent &event ); + +////@begin CMakeSetupFrm member function declarations + + /// Retrieves bitmap resources + wxBitmap GetBitmapResource( const wxString& name ); + + /// Retrieves icon resources + wxIcon GetIconResource( const wxString& name ); +////@end CMakeSetupFrm member function declarations + + /// Should we show tooltips? + static bool ShowToolTips(); + + /** Load cache for the CMakeLists to the GUI */ + void LoadCacheFromDiskToGUI(); + + /** Display the grid with the loaded cache. */ + void FillCacheGUIFromCacheManager(); + + int RunCMake(bool generateProjectFiles); + + /** Save cache to disk from the GUI */ + void SaveCacheFromGUI(); + + void FillCacheManagerFromCacheGUI(); + + /** Update the cache and mark all the new items as old */ + bool PerformCacheRun(); + + /** Shows the property matched by the row in the description area + or nothing when the row is not correct */ + void ShowPropertyDescription(int row); + + /** Disable or enable controls based upon the internal state of the + program */ + void UpdateWindowState(); + + void AppendPathToRecentList(const wxString &p); + + /** Used to synchonise any options that have immediate effect on the GUI + form, like clearing a search list, resetting a spitter perhaps, etc */ + void SyncFormOptions(CMOptionsDlg *dlg); + + void DoCancelButton(); + + void DoReloadCache(); + + void DoDeleteCache(); + + void DoConfigure(); + + void DoGenerate(); + + void OnExitTimer(wxTimerEvent &event); + +////@begin CMakeSetupFrm member variables + wxSplitterWindow* m_splitter; + wxTextCtrl* m_cmProjectPath; + wxButton* m_BrowseProjectPathButton; + wxTextCtrl* m_cmBuildPath; + wxButton* m_BrowseSourcePathButton; + wxComboBox* m_cmGeneratorChoice; + wxComboBox* m_cmSearchQuery; + wxCheckBox* m_cmShowAdvanced; + wxPropertyList* m_cmOptions; + wxTextCtrl* m_cmLog; + wxTextCtrl* m_cmDescription; + wxButton* m_ConfigureButton; + wxButton* m_OkButton; + wxButton* m_CancelButton; + wxButton* m_DeleteCacheButton; + wxButton* m_ClearLogButton; + wxButton* m_cmBrowseCell; +////@end CMakeSetupFrm member variables + + // this is the cmake instance with which we will communicate + // to generate our stuff, and get the info from. + cmake *m_cmake; + + // the config class for project build dir and source path + wxTimer *m_ExitTimer; + wxConfig *m_config; + wxString m_PathToExecutable; + wxArrayString m_recentPaths; + CMProgressDialog *m_progressDlg; + bool m_RunningConfigure; + bool m_noRefresh; + bool m_quitAfterGenerating; +}; + +#endif + // _CMAKESETUPFRAME_H_ diff --git a/CMakeLua/Source/WXDialog/CVS/Entries b/CMakeLua/Source/WXDialog/CVS/Entries new file mode 100644 index 0000000..9fbac38 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CVS/Entries @@ -0,0 +1,31 @@ +/CMakeIcon.xpm/1.3/Thu Jun 30 19:54:14 2005/-kb/T1.3 +/CMakeLists.txt/1.25/Mon Nov 5 19:47:20 2007//T1.25 +/CMakeSetup.cpp/1.3/Tue Aug 9 19:42:49 2005//T1.3 +/CMakeSetup.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/CMakeSetup.pjd/1.2/Mon Aug 8 21:14:08 2005//T1.2 +/CMakeSetup.rc/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/CMakeSetupFrame.cpp/1.3/Mon Nov 5 19:47:20 2007//T1.3 +/CMakeSetupFrame.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/CommandLineInfo.cpp/1.4/Wed Aug 10 20:18:54 2005//T1.4 +/CommandLineInfo.h/1.4/Wed Aug 10 20:18:54 2005//T1.4 +/NGDialog.exe.manifest/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/NGDialog.ico/1.3/Thu Nov 8 20:54:23 2007/-kb/T1.3 +/PropertyList.cpp/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/PropertyList.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/about.html/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/aboutdlg.cpp/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/aboutdlg.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/app_resources.cpp/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/app_resources.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/changelog.txt/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/cmake_icon.gif/1.1/Thu Jun 30 19:54:14 2005/-kb/T1.1 +/cmake_icon.xpm/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/cmake_logo.xpm/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/cmakesetup.done.xml/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/cmakesetup.xml/1.4/Wed Aug 10 20:18:54 2005//T1.4 +/config.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/optionsdlg.cpp/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/optionsdlg.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/progressdlg.cpp/1.1/Thu Jun 30 19:54:14 2005//T1.1 +/progressdlg.h/1.1/Thu Jun 30 19:54:14 2005//T1.1 +D/bin//// diff --git a/CMakeLua/Source/WXDialog/CVS/Repository b/CMakeLua/Source/WXDialog/CVS/Repository new file mode 100644 index 0000000..7ba53f6 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/WXDialog diff --git a/CMakeLua/Source/WXDialog/CVS/Root b/CMakeLua/Source/WXDialog/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/WXDialog/CVS/Tag b/CMakeLua/Source/WXDialog/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/WXDialog/CVS/Template b/CMakeLua/Source/WXDialog/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/WXDialog/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/WXDialog/CommandLineInfo.cpp b/CMakeLua/Source/WXDialog/CommandLineInfo.cpp new file mode 100644 index 0000000..8cdb481 --- /dev/null +++ b/CMakeLua/Source/WXDialog/CommandLineInfo.cpp @@ -0,0 +1,191 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: CommandLineInfo.cpp,v $ + Language: C++ + Date: $Date: 2005/08/10 20:18:54 $ + Version: $Revision: 1.4 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +#include "CommandLineInfo.h" + +#include "cmSystemTools.h" + +/////////////////////////////////////////////////////////////// +// cmCommandLineInfo + +cmCommandLineInfo::cmCommandLineInfo() +{ + m_WhereSource = _(""); + m_WhereBuild = _(""); + m_AdvancedValues = false; + m_GeneratorChoiceString.Empty(); + m_LastUnknownParameter = ""; + m_ValidArguments = ""; + m_ExitAfterLoad = false; +} + +/////////////////////////////////////////////////////////////// +cmCommandLineInfo::~cmCommandLineInfo() +{ +} + +/////////////////////////////////////////////////////////////// +bool cmCommandLineInfo::ParseCommandLine(int argc, char* argv[]) +{ + bool result = true; + wxString cachePath; + + // parse all commands + int cc = 1; + if(argc < cc) + return true; // no command line options + + while(cc < argc) + { + wxString arg = argv[cc]; + + // if we have a switch + if(arg.Len() > 1 && arg.GetChar(0) == '-') + { + int next_argc = ParseSwitch(argv, cc, argc); + if(next_argc > 0) + cc += next_argc; + else + return false; // sorry error while parsing + } + else + { + // gather all what is left + for(int leftcc = cc; leftcc < argc; leftcc++) + { + if(cc != leftcc) + m_WhereBuild << _(" "); + m_WhereBuild << argv[leftcc]; + } + break; + } + } + + m_ExecutablePath = cmSystemTools::GetFilenamePath(argv[0]).c_str(); + + return true; +} + +/////////////////////////////////////////////////////////////// +int cmCommandLineInfo::GetBoolValue(const wxString& v) { + + wxString value = v.Lower(); + + if (!value.Cmp("1") || + !value.Cmp("on") || + !value.Cmp("true") || + !value.Cmp("yes")) + { + // true + return 1; + } + else if (!value.Cmp("0") || + !value.Cmp("off") || + !value.Cmp("false") || + !value.Cmp("no")) + { + // false + return -1; + } + + // not recognised + return 0; +} + +/////////////////////////////////////////////////////////////// +// Parse param + +size_t cmCommandLineInfo::ParseSwitch(char **argv, int arg_index, int argc) +{ + wxString param = argv[arg_index]; + + // we need this for a switch, at least 2 + if(param.Len() > 1) + { + // determine switch type + switch (param.GetChar(1)) + { + case 'G': + // when it's G<.....> we split else we take the + // other argc + if(param.Len() > 2) + { + m_GeneratorChoiceString = GetStringParam(param.Mid(2)); + return 1; // one arg is passed + } + else + { + if((arg_index+1) < argc) + { + m_GeneratorChoiceString = GetStringParam(wxString(argv[arg_index+1])); + return 2; // two args are passed + } + } + // no luck + return 0; + + case 'Q': + m_ExitAfterLoad = true; + return 1; + + // unknown param + default: + break; + } + } + + // error, unrecognised or too small arg + return 0; +} + +// When the string param given has string quotes around it +// we remove them and we pass back the string. If not, we +// simply pass back the string as-is +wxString cmCommandLineInfo::GetStringParam(const wxString &str) +{ + wxString mystr = str.Strip(wxString::both); + + // if we have only one (or no chars return the current string) + if(mystr.Len() < 2) + return str; + + // if we have quotes + if(mystr.GetChar(0) == '\"' && mystr.Last() == '\"') + { + // when we only have 2 in size, return empty string + if(mystr.Len() == 2) + return wxEmptyString; + + // now remove the outer and inner, and return + return mystr.Mid(1, mystr.Len()-1); + } + + return str; +} diff --git a/CMakeLua/Source/WXDialog/CommandLineInfo.h b/CMakeLua/Source/WXDialog/CommandLineInfo.h new file mode 100644 index 0000000..f1e934f --- /dev/null +++ b/CMakeLua/Source/WXDialog/CommandLineInfo.h @@ -0,0 +1,67 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: CommandLineInfo.h,v $ + Language: C++ + Date: $Date: 2005/08/10 20:18:54 $ + Version: $Revision: 1.4 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if !defined(CMAKECOMMANDLINEINFO_H) +#define CMAKECOMMANDLINEINFO_H + +#include "cmStandardIncludes.h" + +/////////////////////////////////////////////////////////////// +// cmCommandLineInfo: +// See cmCommandLineInfo.cxx for the implementation of this class +// + +class cmCommandLineInfo +{ + // Construction +public: + cmCommandLineInfo(); + virtual ~cmCommandLineInfo(); + + // Parse the command line + bool ParseCommandLine(int argc, char* argv[]); + + // Retrieve the path of executable + wxString GetPathToExecutable() { return this->m_ExecutablePath; } + + // Attributes +public: + wxString m_WhereSource; + wxString m_WhereBuild; + bool m_AdvancedValues; + wxString m_GeneratorChoiceString; + wxString m_LastUnknownParameter; + wxString m_ExecutablePath; + bool m_ExitAfterLoad; + +private: + // Parse one argument + size_t ParseSwitch(char **argv, int arg_index, int argc); + + // Return boolean value of the string + static int GetBoolValue(const wxString&); + + // on windows the argument with spaces SUCKS! So we need to + // incorporate it with quotes. + wxString GetStringParam(const wxString &str); + + wxString m_ValidArguments; +}; + +#endif // !defined(CMAKECOMMANDLINEINFO_H) diff --git a/CMakeLua/Source/WXDialog/NGDialog.exe.manifest b/CMakeLua/Source/WXDialog/NGDialog.exe.manifest new file mode 100644 index 0000000..6cdabd0 --- /dev/null +++ b/CMakeLua/Source/WXDialog/NGDialog.exe.manifest @@ -0,0 +1,22 @@ + + + + CMake Next Generation Dialog + + + + + + \ No newline at end of file diff --git a/CMakeLua/Source/WXDialog/NGDialog.ico b/CMakeLua/Source/WXDialog/NGDialog.ico new file mode 100644 index 0000000000000000000000000000000000000000..e13bb156f4e0bd05a4c5df7de920ebc681e82799 GIT binary patch literal 24542 zcwX(BO^6)F6@cF`l1EvDN6JCDD9lDkV2Q9cv!=a1WjV z`&R;gdv*ZNzW*M6_oweL0s=yaCBl-3%>e%kur9#5fa;hyB*gjL;f1`jb%h)zRf;imz2hG>My5+VyfEyxifM~EC@M0HG@D&z=}Aw-4{8R*o7$Ppq# zhztqFV)#Elg&0TtB5B7ZaC*$Hsb$ zA7T6mc?gqLF5xt9<1496Y@e_2$upz^P z!jP^JUPneT$TuAm!cX82aP#I(xO3+Y3a_zqH99Ctr7!T>BWd;GICo#rnBJ*xG{l zE^T$s9v&WE!ELJOe*W+tZqjbrj^ihddvbSL@oTwTY{$K9x2X6c+by^DRiH$|DWM47flnf3YU|6hy^}K%aFCw?#{u?*CH(b)~-uQ~Yhi?Z?xp?86*uVGPFY7jbB^Y`}G>CWzhPtv{GdmbIcx5eIr##OoBc+bc9+vLH+ zM&sZ>?$>`0kOTVda&Vybo4*It0r}>cgZPQsZ~dMS`{TWXdyeMHLA>`{S99ec{>If@ zb8ytzTsi1Dn=1!jxSMAVI_~C~gN~=UbkOlMmkv6<=BWd3bKzjtK6H!`IQQ9+6`b-qYcB$0R z5tTY)`&1f?jj1#ln^0*nHl@;LY=(vPDKw*g3JoD|f!0s?f%b;k^iwwdlubWn(@*&? z2vn8yaA&v2A=lD=itK|F3Jzzt)8hws%MQk#koM~mN4$=nloA>#qiko#4{|*#O?ED9 z+g%Cz1?p~a@x1JGDfc2k?8rKEZTA)UZ)m%}nDysu_i2DwKTX{SZ>}Ed;_63br>Xn! zpmAUvzik~q5WSX9g=^~nnaBJ3SvSZv?++dvYOJ`E7>iG!`<{rxcP3JSSb5Y z@_4U%D}X${xSyz`+`SRtQ3dyUfMEsqdVpaS_ga8q757?zUM2S`K(CT}6~H?_u|*rN zRB)dK@Q+_?$;LC4+{*x!-EYb9PDS@3K;ihu7Cs)T?4AcG9v|5Pac>Uyc>LXx@slm3 z<0(tL^R??1K3EccA+E>N523kW(sfHW)PAmMo>bB4` zsr&kQmYT+?9T3CMY@B)mlx)VSn{n!9oVppOZe(k#Y(VUmYgzkB17%CzKiA6I4?Le7 zys|?hV{Pse=svQtlox5m_MTr@J*M1;1(6F>zA7wg){+L}40 zu4D0KP@zS5vpw&tz7zPw2<-?j0DPCh4DAY^0yrQS234a%`JAZIl;N(@HPR!c z>!kOUZjc@;-AvDr)Gg9erQ4)uO7}@KrMco0#9Y^e9!XsndSB{>&||5aLQkY_2|bm% zE%Z$4KJyFB6W_vuS*v;Cv!G-%PrR8Y-pmtk=7~4*76`0EH244f@`tMz6#y=m&LPh! zJLk{pw>}J38h}>AePs9#%V)u>idf>-GM`)+l+2P>6*;B-k>x+kuZNpo)atyJ{o*!AWG=YTz?F4uL1D%WgzB>W!Hgfx~jPFYzyN#TW*Bto11msnA`kw>en?M@C z<$o@GZvx^ra=jkr!uKb@ZzG5QIr04o&{cLkzH{OiB@q85?|*Lmq6FffFOOfCz$)+y z63`b8ER0`}K+gX{`2GZP{ujdcC!j5CSO(vlfbD-ld~X7l|Ap~=3H)kB_`U=>hq^3* z?@7S)zXZM~0mJ`N`0fN&hwn~ch4`)njK_CLd{+Xx|E2LA3F!Wp#&;y3J-#cz&nKYy zUjcqT0p))s__+ksl0Ur(U74tylF8|4S)YLRczO zwHBl`QFc?aTT{0!*N@t^Tt{l#a$Tuq%XOu;E!UUYwp?dw+s$lYtZBEjBz3!;u0OTy zK4Z*f)7je1+j3p1ZOiqkwk_AG+O}M;YTGUCD(QBc>{;IKlg;urH?x(!nJw3~+O}NZ zYTI(1t8L5muD0D0_SCl9!k*c7U)apHQ!`r`oZ2;Mk4(ER?S0d3NPBGBO=(X|yCvSetMaxLength(m_maxChars); + } + + wxGridCellEditor::Create(parent, id, evtHandler); +} + +void wxGridCellPathEditor::PaintBackground(const wxRect& WXUNUSED(rectCell), + wxGridCellAttr * WXUNUSED(attr)) +{ + // as we fill the entire client area, don't do anything here to minimize + // flicker +} + +void wxGridCellPathEditor::SetSize(const wxRect& rectOrig) +{ + wxRect rect(rectOrig); + + // Make the edit control large enough to allow for internal + // margins + // + // TODO: remove this if the text ctrl sizing is improved esp. for + // unix + // +#if defined(__WXGTK__) + if (rect.x != 0) + { + rect.x += 1; + rect.y += 1; + rect.width -= 1; + rect.height -= 1; + } +#else // !GTK + int extra_x = ( rect.x > 2 )? 2 : 1; + +// MB: treat MSW separately here otherwise the caret doesn't show +// when the editor is in the first row. +#if defined(__WXMSW__) + int extra_y = 2; +#else + int extra_y = ( rect.y > 2 )? 2 : 1; +#endif // MSW + +#if defined(__WXMOTIF__) + extra_x *= 2; + extra_y *= 2; +#endif + rect.SetLeft( wxMax(0, rect.x - extra_x) ); + rect.SetTop( wxMax(0, rect.y - extra_y) ); + rect.SetRight( rect.GetRight() + 2*extra_x ); + rect.SetBottom( rect.GetBottom() + 2*extra_y ); +#endif // GTK/!GTK + + wxGridCellEditor::SetSize(rect); +} + +void wxGridCellPathEditor::BeginEdit(int row, int col, wxGrid* grid) +{ + wxASSERT_MSG(m_control, + wxT("The wxGridCellEditor must be Created first!")); + + m_startValue = grid->GetTable()->GetValue(row, col); + + DoBeginEdit(m_startValue); +} + +void wxGridCellPathEditor::DoBeginEdit(const wxString& startValue) +{ + Text()->SetValue(startValue); + Text()->SetInsertionPointEnd(); + Text()->SetSelection(-1,-1); + Text()->SetFocus(); +} + +bool wxGridCellPathEditor::EndEdit(int row, int col, + wxGrid* grid) +{ + wxASSERT_MSG(m_control, + wxT("The wxGridCellEditor must be Created first!")); + + bool changed = false; + wxString value = Text()->GetValue(); + if (value != m_startValue) + changed = true; + + if (changed) + grid->GetTable()->SetValue(row, col, value); + + m_startValue = wxEmptyString; + // No point in setting the text of the hidden control + //Text()->SetValue(m_startValue); + + return changed; +} + + +void wxGridCellPathEditor::Reset() +{ + wxASSERT_MSG(m_control, + wxT("The wxGridCellEditor must be Created first!")); + + DoReset(m_startValue); +} + +void wxGridCellPathEditor::DoReset(const wxString& startValue) +{ + Text()->SetValue(startValue); + Text()->SetInsertionPointEnd(); +} + +bool wxGridCellPathEditor::IsAcceptedKey(wxKeyEvent& event) +{ + return wxGridCellEditor::IsAcceptedKey(event); +} + +void wxGridCellPathEditor::StartingKey(wxKeyEvent& event) +{ + // Since this is now happening in the EVT_CHAR event EmulateKeyPress is no + // longer an appropriate way to get the character into the text control. + // Do it ourselves instead. We know that if we get this far that we have + // a valid character, so not a whole lot of testing needs to be done. + + wxTextCtrl* tc = Text(); + wxChar ch; + long pos; + +#if wxUSE_UNICODE + ch = event.GetUnicodeKey(); + if (ch <= 127) + ch = (wxChar)event.GetKeyCode(); +#else + ch = (wxChar)event.GetKeyCode(); +#endif + switch (ch) + { + case WXK_DELETE: + // delete the character at the cursor + pos = tc->GetInsertionPoint(); + if (pos < tc->GetLastPosition()) + tc->Remove(pos, pos+1); + break; + + case WXK_BACK: + // delete the character before the cursor + pos = tc->GetInsertionPoint(); + if (pos > 0) + tc->Remove(pos-1, pos); + break; + + default: + tc->WriteText(ch); + break; + } +} + +void wxGridCellPathEditor::HandleReturn( wxKeyEvent &event ) +{ +#if defined(__WXMOTIF__) || defined(__WXGTK__) + // wxMotif needs a little extra help... + size_t pos = (size_t)( Text()->GetInsertionPoint() ); + wxString s( Text()->GetValue() ); + s = s.Left(pos) + wxT("\n") + s.Mid(pos); + Text()->SetValue(s); + Text()->SetInsertionPoint( pos ); +#else + // the other ports can handle a Return key press + // + event.Skip(); +#endif +} + +void wxGridCellPathEditor::SetParameters(const wxString& params) +{ + if ( !params ) + { + // reset to default + m_maxChars = 0; + } + else + { + long tmp; + if ( !params.ToLong(&tmp) ) + { + wxLogDebug(_T("Invalid wxGridCellPathEditor parameter string '%s' ignored"), params.c_str()); + } + else + { + m_maxChars = (size_t)tmp; + } + } +} + +// return the value in the text control +wxString wxGridCellPathEditor::GetValue() const +{ + return Text()->GetValue(); +} + +#endif + +///////////////////////////////////////////////////////////////////////////// +// wxPropertyItem + +// returns true when this property item is a filepath +bool wxPropertyItem::IsFilePath() +{ + return m_nItemType == wxPropertyList::FILE; +} + +// returns true when this property item is a dir path +bool wxPropertyItem::IsDirPath() +{ + return m_nItemType == wxPropertyList::PATH; +} + +///////////////////////////////////////////////////////////////////////////// +// wxPropertyList + +wxPropertyList::~wxPropertyList() +{ + WX_CLEAR_ARRAY(m_PropertyItems); +} + +int wxPropertyList::AddItem(const wxString &txt) +{ + // TODO: Add the item to the grid! + + //int nIndex = AddString(txt); + //return nIndex; + + return 0; +} + +// order = 0 sorted (not supported yet) +// order = 1 add to top +// order = 2 add to bottom +int wxPropertyList::AddPropItem(wxPropertyItem* pItem, int order) +{ + m_PropertyItems.Add(pItem); + if(pItem->GetAdvanced() && ! m_ShowAdvanced) + return 0; + + // disable in progress editing + HideControls(); + + return AddPropertyToGrid(pItem, order); +} + +int wxPropertyList::AddPropertyToGrid(wxPropertyItem *pItem, int order) +{ + int row = 0; + if(order == 1) + InsertRows(0,1); + else + { + AppendRows(1); + row = GetNumberRows() - 1; + } + + // initialise the type of renderer + if(pItem->GetItemType() == wxPropertyList::CHECKBOX) + { + SetCellRenderer(row, 1, new wxGridCellBoolRenderer); + SetCellEditor(row, 1, new wxGridCellBoolEditor); + } + +#ifdef __LINUX__ + // fix to make sure scrollbars are drawn properly + wxGrid::AdjustScrollbars(); +#endif + + // the property display is read only + UpdatePropertyItem(pItem, row); + return row; +} + +void wxPropertyList::AddProperty(const char* name, const char* value, const char* helpString, + int type, const char* comboItems, bool reverseOrder, bool advanced) +{ + wxPropertyItem* pItem = 0; + + // add or update the property item + for(size_t i = 0; i < m_PropertyItems.Count(); i++) + { + if(m_PropertyItems[i]->GetPropName().IsSameAs(name)) + { + pItem = m_PropertyItems[i]; + if(!pItem->GetCurValue().IsSameAs(value)) + { + pItem->SetCurValue(value); + pItem->SetHelpString(helpString); + pItem->SetAdvanced(advanced); + + // update the property item + int row = FindProperty(pItem); + if(row != -1) + UpdatePropertyItem(pItem, row); + } + return; + } + } + + // if it is not found, then create a new one + if(!pItem) + { + pItem = new wxPropertyItem(name, value, helpString, type, comboItems); + pItem->SetAdvanced(advanced); + + AddPropItem(pItem, 1); + } +} + +void wxPropertyList::UpdateGridView() +{ + // make sure all items are shown, remove items that should not be shown + bool keepItem; + int row; + for(size_t i = 0; i < m_PropertyItems.Count(); i++) + { + // to begin with, does this item fit the query? + keepItem = m_strQuery.IsEmpty() || (m_PropertyItems[i]->GetPropName().Find(m_strQuery) != -1); + if(keepItem) + { + // when advanced items are allowed to be shown, keep when ok + if(!m_ShowAdvanced) + keepItem = !m_PropertyItems[i]->GetAdvanced(); + } + + // find the item, if not present but keep is true, add, if + // present but keep is false, remove + row = -1; + for(size_t j = 0; j < (size_t)GetNumberRows(); j++) + { + if(m_PropertyItems[i]->GetPropName().IsSameAs(GetCellValue(j, 0))) + { + row = j; + break; + } + } + + if(row == -1 && keepItem) + AddPropertyToGrid(m_PropertyItems[i], (m_ShowAdvanced ? 2 : 0)); + else if(row != -1 && !keepItem) + DeleteRows(row, 1); + } + +#ifdef __LINUX__ + // fix to make sure scrollbars are drawn properly + wxGrid::AdjustScrollbars(); +#endif +} + +void wxPropertyList::HideControls() +{ + DisableCellEditControl(); +} + +void wxPropertyList::RemoveProperty(wxPropertyItem *pItem) +{ + HideControls(); + + // look for property in grid, delete it when present + for(size_t j = 0; j < (size_t)GetNumberRows(); j++) + { + if(pItem->GetPropName().IsSameAs(GetCellValue(j, 0), false)) + { + DeleteRows(j, 1); + +#ifdef __LINUX__ + // fix to make sure scrollbars are drawn properly + wxGrid::AdjustScrollbars(); +#endif + break; + } + } + + // delete the item from the list + m_PropertyItems.Remove(pItem); + delete pItem; +} + +wxPropertyItem *wxPropertyList::FindPropertyByName(const wxString &name) +{ + for(size_t i = 0; i < m_PropertyItems.Count(); i++) + { + // we have an advanced item, go through table and if not present, show it + if(m_PropertyItems[i]->GetPropName().IsSameAs(name, true)) + return m_PropertyItems[i]; + } + + return 0; +} + +/** +void wxPropertyList::OnIgnore() +{ + if(m_curSel == -1 || this->GetCount() <= 0) + { + return; + } + wxPropertyItem* pItem = (wxPropertyItem*) GetItemDataPtr(m_curSel); + pItem->m_curValue = "IGNORE"; + InvalidateList(); +} +*/ + +/** +void wxPropertyList::OnDelete() +{ + if(m_curSel == -1 || this->GetCount() <= 0) + { + return; + } + wxPropertyItem* pItem = (wxPropertyItem*) GetItemDataPtr(m_curSel); + m_CMakeSetupDialog->GetCMakeInstance()->GetCacheManager()->RemoveCacheEntry(pItem->m_propName); + m_PropertyItems.erase(pItem); + delete pItem; + this->DeleteString(m_curSel); + this->HideControls(); + this->SetTopIndex(0); + InvalidateList(); +} +*/ + +/** +void wxPropertyList::OnHelp() +{ + if(m_curSel == -1 || this->GetCount() <= 0) + { + return; + } + wxPropertyItem* pItem = (wxPropertyItem*) GetItemDataPtr(m_curSel); + MessageBox(pItem->m_HelpString, pItem->m_propName, MB_OK|MB_ICONINFORMATION); +} +*/ + +void wxPropertyList::RemoveAll() +{ + WX_CLEAR_ARRAY(m_PropertyItems); + m_generatedProjects = false; + + if(GetNumberRows() > 0) + DeleteRows(0, GetNumberRows()); + + m_strQuery.Empty(); + +#ifdef __LINUX__ + // fix to make sure scrollbars are drawn properly + wxGrid::AdjustScrollbars(); +#endif +} + +void wxPropertyList::ShowAdvanced() +{ + // set flag in the control + m_ShowAdvanced = true; + UpdateGridView(); +} + + +void wxPropertyList::HideAdvanced() +{ + // set flag in the control + m_ShowAdvanced = false; + UpdateGridView(); +} + +int wxPropertyList::FindProperty(wxPropertyItem *pItem) +{ + if(GetNumberRows() > 0 && pItem != 0) + { + // find the property the traditional way + for(size_t j = 0; j < (size_t)GetNumberRows(); j++) + { + if(pItem->GetPropName().IsSameAs(GetCellValue(j, 0))) + return j; + } + } + + return -1; +} + +wxPropertyItem *wxPropertyList::GetPropertyItemFromRow(int row) +{ + if(row < GetNumberRows() && row >= 0) + { + wxString str = GetCellValue(row, 0); + // find the property the traditional way + for(size_t i = 0; i < (size_t)m_PropertyItems.Count(); i++) + { + if(m_PropertyItems[i]->GetPropName().IsSameAs(str)) + return m_PropertyItems[i]; + } + } + + return 0; +} + +bool wxPropertyList::UpdatePropertyItem(wxPropertyItem *pItem, int row) +{ + wxCHECK(row < GetNumberRows(), false); + + // reflect the property's state to match the grid row + + SetReadOnly(row, 0); + // TODO: Make this a UpdatePropItem where ADVANCED, and new edit values are reflected + SetCellValue(row,0, pItem->GetPropName()); + + // boolean renderer + if(pItem->GetItemType() == wxPropertyList::CHECKBOX) + { + // translate ON or TRUE (case insensitive to a checkbox) + if(pItem->GetCurValue().IsSameAs(wxT("ON"), false) || + pItem->GetCurValue().IsSameAs(wxT("TRUE"), false)) + SetCellValue(row, 1, wxT("1")); + else + SetCellValue(row, 1, wxT("0")); + } + else + { + // for normal path values, give bold in cell when + // the NOTFOUND is present, for emphasis + wxString str = pItem->GetPropName() + wxT("-NOTFOUND"); + if(pItem->GetCurValue().IsSameAs(str)) + { + wxFont fnt = GetCellFont(row, 0); + fnt.SetWeight(wxFONTWEIGHT_BOLD); + SetCellFont(row, 1, fnt); + } + else + SetCellFont(row, 1, GetCellFont(row, 0)); + + SetCellValue(row,1, pItem->GetCurValue()); + } + + if(pItem->GetCurValue().IsSameAs("IGNORE")) + { + // ignored cell is completely dimmed + wxColour col(192,192,192); + SetCellTextColour(row, 1, col); + } + else + { + // we colour paths blue, filenames green, all else black + wxColour col; + if(pItem->IsDirPath()) + col.Set(0,0,255); + else if(pItem->IsFilePath()) + col.Set(0,128,0); + else + col = GetCellTextColour(row, 0); + + SetCellTextColour(row, 1, col); + } + + if(pItem->GetNewValue()) + { + // new cell is red + wxColour col(255,100,100); + SetCellBackgroundColour(row, 0, col); + } + else + { + // old cell is grey + wxColour col(192, 192, 192); + SetCellBackgroundColour(row, 0, col); + } + + return true; +} + +void wxPropertyList::OnSelectCell( wxGridEvent& event ) +{ + this->SetFocus(); + event.Skip(); +} + +void wxPropertyList::OnCellChange( wxGridEvent& event ) +{ + int row = event.GetRow(); + + wxPropertyItem *pItem = GetPropertyItemFromRow(row); + if(pItem && row != wxNOT_FOUND) + { + // write propery back, and set as new + pItem->SetNewValue(true); + + // write back bool + if(pItem->GetItemType() == CHECKBOX) + { + if(GetCellValue(row, 1).IsSameAs("1")) + pItem->SetCurValue("ON"); + else + pItem->SetCurValue("OFF"); + } + else + pItem->SetCurValue(GetCellValue(row, 1)); + + UpdatePropertyItem(pItem, row); + event.Skip(); + } +} + +void wxPropertyList::OnCellPopup( wxGridEvent& event ) +{ + wxPoint pt; + int row = event.GetRow(); + + //pt = ::wxGetMousePosition(); + //ScreenToClient(pt); + + //row = YToRow(pt.y); + if(row != wxNOT_FOUND) + { + wxPropertyItem *pItem = GetPropertyItemFromRow(row); + + if(pItem) + { + // select the row first if already in selection, don't + // this will clear the previous selection + if(!IsInSelection(row, 0)) + SelectRow(row); + + // show popup menu + wxMenu *menu = AppResources::CreatePopupMenu(); + + // enable when it is browsable, and selected one only + wxMenuItem *item = menu->FindItem(ID_CACHE_BROWSE); + if(item) + item->Enable(IsSelectedItemBrowsable()); + + PopupMenu(menu); + + delete menu; + } + } +} + +void wxPropertyList::OnIgnoreCache( wxCommandEvent& event ) +{ + HideControls(); + + // ignore all selected items + for(size_t i = 0; i < (size_t)GetNumberRows(); i++) + { + if(IsInSelection(i, 0)) + { + wxPropertyItem *pItem = GetPropertyItemFromRow(i); + if(pItem) + { + pItem->SetCurValue("IGNORE"); + UpdatePropertyItem(pItem, i); + } + } + } +} + +void wxPropertyList::OnDeleteCache( wxCommandEvent& event ) +{ + HideControls(); + + // convert selections to prop items + wxArrayPtrVoid items; + for(size_t i = 0; i < (size_t)GetNumberRows(); i++) + { + // if selected, query for removal + if(IsInSelection(i, 0)) + { + wxPropertyItem *pItem = GetPropertyItemFromRow(i); + if(pItem) + items.Add((void *)pItem); + } + } + + // now delete all prop items in cells + for(size_t i = 0; i < items.Count(); i++) + RemoveProperty((wxPropertyItem *)items[i]); +} + +void wxPropertyList::OnBrowseItem( wxCommandEvent& event ) +{ + BrowseSelectedItem(); +} + +bool wxPropertyList::IsSelectedItemBrowsable(int row) +{ + // when there is only one selection, and our current item + // is browsable, make sure it can be selected. + wxPropertyItem *pItem = 0; + + size_t count = 0; + for(size_t i = 0; i < (size_t)GetNumberRows() && (count < 2); i++) + { + if(IsInSelection(i, 0)) + { + if(!pItem) + pItem = GetPropertyItemFromRow(i); + count ++; + } + } + + // if we found nothing, take row (because the event EVT_GRID_CELL_SELECTED + // deselects the cells first before selecting the new one again + if(row != -1 && !pItem) + { + pItem = GetPropertyItemFromRow(row); + count ++; // needed because of next loop + } + + // only one item allowed to select + if(pItem && count == 1) + { + if(pItem) + return pItem->IsDirPath() || pItem->IsFilePath(); + } + + return false; +} + + +void wxPropertyList::BrowseSelectedItem() +{ + HideControls(); + + for(size_t i = 0; i < (size_t)GetNumberRows(); i++) + { + if(IsInSelection(i, 0)) + { + // browse for file or directory + wxPropertyItem *pItem = GetPropertyItemFromRow(i); + if(pItem) + { + wxString title; + wxString str = pItem->GetPropName() + _("-NOTFOUND"); + if(pItem->GetCurValue().IsSameAs(str, true)) + str.Empty(); + else + str = pItem->GetCurValue(); + + // browse the directory path + + if(pItem->IsDirPath()) + { + title = _("Select path for ") + pItem->GetPropName(); + str = ::wxDirSelector(title, str, 0, wxDefaultPosition, this); + } + else if(pItem->IsFilePath()) + { + title = _("Select file for ") + pItem->GetPropName(); + str = ::wxFileSelector(title, str, _(""), _(""), _(MC_DEFAULT_WILDCARD), wxFILE_MUST_EXIST, this); + } + else + str.Empty(); + + if(!str.IsEmpty()) + { + pItem->SetCurValue(str.c_str()); + UpdatePropertyItem(pItem, i); + } + } + + // only allow one item to browse + break; + } + } +} + +void wxPropertyList::OnSizeGrid( wxSizeEvent &event ) +{ + int width, height; + + // make sure the grid's cells are equally adjusted + GetClientSize(&width, &height); + SetDefaultColSize(width / 2, true); + + wxGrid::AdjustScrollbars(); +} + +void wxPropertyList::OnKeyPressed( wxKeyEvent &event ) +{ + event.Skip(); +} diff --git a/CMakeLua/Source/WXDialog/PropertyList.h b/CMakeLua/Source/WXDialog/PropertyList.h new file mode 100644 index 0000000..3c0bdb9 --- /dev/null +++ b/CMakeLua/Source/WXDialog/PropertyList.h @@ -0,0 +1,339 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: PropertyList.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef __WXPROPERTYLIST_H +#define __WXPROPERTYLIST_H + + +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#include +#include + +#include "../cmStandardIncludes.h" + +#ifdef __LINUX__ + #define MC_DEFAULT_WILDCARD "*" +#else + #define MC_DEFAULT_WILDCARD "*.*" +#endif + +#if 0 + +// the editor for string/text data +class wxGridCellPathEditor : public wxGridCellEditor +{ +public: + wxGridCellPathEditor(); + + virtual void Create(wxWindow* parent, + wxWindowID id, + wxEvtHandler* evtHandler); + virtual void SetSize(const wxRect& rect); + + virtual void PaintBackground(const wxRect& rectCell, wxGridCellAttr *attr); + + virtual bool IsAcceptedKey(wxKeyEvent& event); + virtual void BeginEdit(int row, int col, wxGrid* grid); + virtual bool EndEdit(int row, int col, wxGrid* grid); + + virtual void Reset(); + virtual void StartingKey(wxKeyEvent& event); + virtual void HandleReturn(wxKeyEvent& event); + + // parameters string format is "max_width" + virtual void SetParameters(const wxString& params); + + virtual wxGridCellEditor *Clone() const + { return new wxGridCellPathEditor; } + + // DJC MAPTEK + // added GetValue so we can get the value which is in the control + virtual wxString GetValue() const; +protected: + wxTextCtrl *Text() const { return (wxTextCtrl *)m_control; } + + // parts of our virtual functions reused by the derived classes + void DoBeginEdit(const wxString& startValue); + void DoReset(const wxString& startValue); + +private: + size_t m_maxChars; // max number of chars allowed + wxString m_startValue; + + DECLARE_NO_COPY_CLASS(wxGridCellPathEditor) +}; + +#endif + +///////////////////////////////////////////////////////////////////////////// +//wxPropertyItem Items +class wxPropertyItem +{ +public: + wxPropertyItem(const wxString &propName, const wxString &curValue, + const wxString &helpString, int nItemType, const wxString &cmbItems) + : m_NewValue(true) + , m_HelpString(helpString) + , m_Removed(false) + , m_propName(propName) + , m_curValue(curValue) + , m_nItemType(nItemType) + , m_cmbItems(cmbItems) + , m_Advanced(false) + { + //m_NewValue = true; + //m_HelpString = helpString; + //m_Removed = false; + //m_propName = propName; + //m_curValue = curValue; + //m_nItemType = nItemType; + //m_cmbItems = cmbItems; + //m_Advanced = false; + } + + const wxString &GetCurValue() const { + return m_curValue; + }; + + const wxString &GetPropName() const { + return m_propName; + }; + + void SetCurValue(const char *str) { + m_curValue = str; + }; + + void SetPropName(const char *str) { + m_propName = str; + }; + + void SetAdvanced(bool value) { + m_Advanced = value; + }; + + void SetHelpString(const char *str) { + m_HelpString = str; + }; + + bool GetAdvanced() const { + return m_Advanced; + }; + + void SetNewValue(bool value) { + m_NewValue = value; + }; + + bool GetNewValue() const { + return m_NewValue; + }; + + int GetItemType() const { + return m_nItemType; + }; + + const wxString &GetHelpString() const { + return m_HelpString; + }; + + // returns true when this property item is a filepath + bool IsFilePath(); + + // returns true when this property item is a dir path + bool IsDirPath(); + +private: + wxString m_HelpString; + wxString m_propName; + wxString m_curValue; + int m_nItemType; + wxString m_cmbItems; + bool m_NewValue; + bool m_Removed; + bool m_Advanced; +}; + +WX_DEFINE_ARRAY(wxPropertyItem *, wxPropertyItems); + +///////////////////////////////////////////////////////////////////////////// +// wxPropertyList Grid +class wxPropertyList : public wxGrid +{ +// Construction +public: + wxPropertyList(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxWANTS_CHARS, + const wxString& name = wxPanelNameStr) + : wxGrid(parent, id, pos, size, style, name) + { + }; + + enum ItemType + { + COMBO = 0, + EDIT, + COLOR, + FONT, + FILE, + CHECKBOX, + PATH + }; + + virtual ~wxPropertyList(); + +public: + bool GetShowAdvanced() const { + return m_ShowAdvanced; + }; + + void SetProjectGenerated(bool value) { + m_generatedProjects = value; + }; + + bool IsGenerated() { + return m_generatedProjects; + }; + + int AddItem(const wxString &txt); + + void AddProperty(const char* name, const char* value, const char* helpString, int type, + const char* comboItems, bool reverseOrder, bool advanced); + + void RemoveProperty(wxPropertyItem *pItem); + + void HideControls(); + void ShowAdvanced(); + void HideAdvanced(); + + void RemoveAll(); + + wxPropertyItem* GetItem(size_t index) { + wxCHECK(index < GetCount(), 0); + return m_PropertyItems[index]; + }; + + size_t GetCount() const { + return m_PropertyItems.Count(); + }; + + const wxPropertyItems &GetItems() { + return m_PropertyItems; + }; + + void SetShowAdvanced(bool value) { + m_ShowAdvanced = value; + }; + + bool UpdatePropertyItem(wxPropertyItem *pItem, int row); + + /** Returns the row of the grid on which the item is found. -1 is returned when not found */ + int FindProperty(wxPropertyItem *pItem); + + /** Returns true when the cache is still dirty, which means + after a configuration run, there are still new items */ + bool IsCacheDirty() { + // check if we have items that are new + for(size_t i = 0; i < m_PropertyItems.Count(); i++) + { + //if((m_PropertyItems[i]->GetNewValue() && m_ShowAdvanced && m_PropertyItems[i]->GetAdvanced()) || + // (m_PropertyItems[i]->GetNewValue() && !m_ShowAdvanced)) + if(m_PropertyItems[i]->GetNewValue()) + return true; + } + + // return flag if generated cache or not + return false; + }; + + /** Returns the property item from the current row. 0 if no property item found */ + wxPropertyItem *GetPropertyItemFromRow(int row); + + /** Finds the property by name and returns the property item */ + wxPropertyItem *FindPropertyByName(const wxString &name); + + /** Sets the search filter. Making sure that the items currently displayed + match this substring query */ + void SetQuery(const wxString &query) { + m_strQuery = query; + UpdateGridView(); + }; + + /** Returns the last used query. */ + const wxString &GetQuery() { + return m_strQuery; + }; + + /** Function that tries to browse for the item that is selected */ + void BrowseSelectedItem(); + + /** Returns true when the item is browsable (file or path) and only one item is + selected */ + bool IsSelectedItemBrowsable(int row = -1); + +private: + // order = 0 sorted + // order = 1 add to top + // order = 2 add to bottom + int AddPropItem(wxPropertyItem* pItem, int order); + + /** Adds the property item to the grid. */ + int AddPropertyToGrid(wxPropertyItem *pItem, int order) ; + + /** Adds / removes all the items that are currently (not) matching the + query filter */ + void UpdateGridView(); + + void OnSelectCell( wxGridEvent& event ); + + void OnCellChange( wxGridEvent& event ); + + void OnCellPopup( wxGridEvent& event ); + + void OnIgnoreCache( wxCommandEvent& event ); + + void OnDeleteCache( wxCommandEvent& event ); + + void OnSizeGrid( wxSizeEvent &event ); + + void OnBrowseItem( wxCommandEvent& event ); + + void OnKeyPressed( wxKeyEvent &event ); + + int m_curSel; + int m_prevSel; + int m_nDivider; + int m_nDivTop; + int m_nDivBtm; + int m_nOldDivX; + int m_nLastBox; + bool m_bTracking; + bool m_bDivIsSet; + bool m_ShowAdvanced; + // flag to indicate the last cache load has resulted + // in generating a valid project + bool m_generatedProjects; + wxString m_strQuery; + wxPropertyItems m_PropertyItems; + + DECLARE_EVENT_TABLE() +}; + +#endif diff --git a/CMakeLua/Source/WXDialog/about.html b/CMakeLua/Source/WXDialog/about.html new file mode 100644 index 0000000..52187ed --- /dev/null +++ b/CMakeLua/Source/WXDialog/about.html @@ -0,0 +1,21 @@ + + +CMake - CMakeSetup GUI Build System + + + +CMake - CMakeSetup GUI Build System +

    Welcome to CMake! The cross-platform, open-source make system. + +CMake is used to control the software compilation process using simple platform and compiler independent configuration files. +CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. +Please go to http://www.cmake.org to learn more about CMake.

    +CMakeSetup.exe is enhanced and ported to wxWidgets 2.6.0 by Jorgen Bodde (jorgb@xs4all.nl).
    +Current CMakeSetup version is: @V@
    +Current CMake build system is: @B@

    +Current generators are supported:
    +@G@ +
    +

    + + diff --git a/CMakeLua/Source/WXDialog/aboutdlg.cpp b/CMakeLua/Source/WXDialog/aboutdlg.cpp new file mode 100644 index 0000000..ecfbd83 --- /dev/null +++ b/CMakeLua/Source/WXDialog/aboutdlg.cpp @@ -0,0 +1,210 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: aboutdlg.cpp,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma implementation "aboutdlg.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +////@begin includes +////@end includes + +#include "cmake_logo.xpm" +#include "aboutdlg.h" + +////@begin XPM images +////@end XPM images + +/*! + * CMAboutDlg type definition + */ + +IMPLEMENT_DYNAMIC_CLASS( CMAboutDlg, wxDialog ) + +/*! + * CMAboutDlg event table definition + */ + +BEGIN_EVENT_TABLE( CMAboutDlg, wxDialog ) + +////@begin CMAboutDlg event table entries + EVT_BUTTON( ID_ABOUT_DLG_OK, CMAboutDlg::OnAboutDlgClick ) + +////@end CMAboutDlg event table entries + +END_EVENT_TABLE() + +/*! + * CMAboutDlg constructors + */ + +CMAboutDlg::CMAboutDlg( ) +{ +} + +CMAboutDlg::CMAboutDlg( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ + Create(parent, id, caption, pos, size, style); +} + +/*! + * CMAboutDlg creator + */ + +bool CMAboutDlg::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ +////@begin CMAboutDlg member initialisation + m_cmIcon = NULL; + m_html = NULL; +////@end CMAboutDlg member initialisation + +////@begin CMAboutDlg creation + SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); + wxDialog::Create( parent, id, caption, pos, size, style ); + + CreateControls(); + GetSizer()->Fit(this); + GetSizer()->SetSizeHints(this); + Centre(); +////@end CMAboutDlg creation + + // set logo on the dialog + wxBitmap bmp(cmake_logo); + m_cmIcon->SetBitmap(bmp); + + return TRUE; +} + +/*! + * Control creation for CMAboutDlg + */ + +void CMAboutDlg::CreateControls() +{ +////@begin CMAboutDlg content construction + CMAboutDlg* itemDialog1 = this; + + wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); + itemDialog1->SetSizer(itemBoxSizer2); + + wxFlexGridSizer* itemFlexGridSizer3 = new wxFlexGridSizer(1, 2, 0, 0); + itemFlexGridSizer3->AddGrowableRow(0); + itemFlexGridSizer3->AddGrowableCol(1); + itemBoxSizer2->Add(itemFlexGridSizer3, 1, wxGROW|wxALL, 5); + + wxBitmap m_cmIconBitmap(wxNullBitmap); + m_cmIcon = new wxStaticBitmap( itemDialog1, wxID_STATIC, m_cmIconBitmap, wxDefaultPosition, wxSize(32, 32), 0 ); + itemFlexGridSizer3->Add(m_cmIcon, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_TOP|wxLEFT|wxRIGHT|wxTOP, 5); + + m_html = new wxHtmlWindow( itemDialog1, ID_HTMLWINDOW, wxDefaultPosition, wxSize(500, 300), wxHW_SCROLLBAR_AUTO|wxNO_BORDER|wxHSCROLL|wxVSCROLL ); + itemFlexGridSizer3->Add(m_html, 1, wxGROW|wxGROW|wxRIGHT|wxTOP|wxBOTTOM, 5); + + wxButton* itemButton6 = new wxButton( itemDialog1, ID_ABOUT_DLG_OK, _("&Ok"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer2->Add(itemButton6, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + +////@end CMAboutDlg content construction +} + +/*! + * Should we show tooltips? + */ + +bool CMAboutDlg::ShowToolTips() +{ + return TRUE; +} + +void CMAboutDlg::SetAboutText(const wxString &cmversion, const wxString &cmsversion, const wxArrayString &generators) +{ + // set HTML text in window + + wxString text = _("CMakeSetup - GUI Build System for CMake" + "CMakeSetup - GUI Build System for CMake" + "

    Welcome to CMake! The cross-platform, open-source make system." + "CMake is used to control the software compilation process using simple platform and compiler independent configuration files. " + "CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. " + "Please go to http://www.cmake.org to learn more about CMake.

    " + "CMakeSetup.exe is enhanced and ported by Jorgen Bodde using @WXV@. The original CMakeSetup.exe is " + "written by Bill Hoffman, Ken Martin, Brad King and Andy Cedilnik.

    " + "Current CMakeSetup version is: @B@
    " + "Current CMake build system is: @V@

    " + "Current generators are supported:
    " + "@G@

    "); + + // compile list of generators in a bulleted list + wxString gens = _("
      "); + for(size_t i = 0; i < generators.Count(); i++) + gens << "
    • " << generators[i] << "
    • "; + gens << _("
    "); + + // replace stuff + text.Replace(_("@V@"), cmversion, true); + text.Replace(_("@B@"), cmsversion, true); + text.Replace(_("@G@"), gens, true); + text.Replace(_("@WXV@"), wxVERSION_STRING, true); + + m_html->SetPage(text); + + // set color of HTML window to bg window + m_html->SetBackgroundColour(GetBackgroundColour()); +} + +/*! + * Get bitmap resources + */ + +wxBitmap CMAboutDlg::GetBitmapResource( const wxString& name ) +{ + // Bitmap retrieval +////@begin CMAboutDlg bitmap retrieval + return wxNullBitmap; +////@end CMAboutDlg bitmap retrieval +} + +/*! + * Get icon resources + */ + +wxIcon CMAboutDlg::GetIconResource( const wxString& name ) +{ + // Icon retrieval +////@begin CMAboutDlg icon retrieval + return wxNullIcon; +////@end CMAboutDlg icon retrieval +} +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_ABOUT_DLG_OK + */ + +void CMAboutDlg::OnAboutDlgClick( wxCommandEvent& event ) +{ + Close(); +} + + diff --git a/CMakeLua/Source/WXDialog/aboutdlg.h b/CMakeLua/Source/WXDialog/aboutdlg.h new file mode 100644 index 0000000..d7efb0f --- /dev/null +++ b/CMakeLua/Source/WXDialog/aboutdlg.h @@ -0,0 +1,117 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: aboutdlg.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef _ABOUTDLG_H_ +#define _ABOUTDLG_H_ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "aboutdlg.cpp" +#endif + +/*! + * Includes + */ + +////@begin includes +#include "wx/html/htmlwin.h" +////@end includes + +/*! + * Forward declarations + */ + +////@begin forward declarations +class wxHtmlWindow; +////@end forward declarations + +/*! + * Control identifiers + */ + +////@begin control identifiers +#define ID_SOME_ABOUTDLG 10003 +#define SYMBOL_CMABOUTDLG_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX +#define SYMBOL_CMABOUTDLG_TITLE _("About ...") +#define SYMBOL_CMABOUTDLG_IDNAME ID_SOME_ABOUTDLG +#define SYMBOL_CMABOUTDLG_SIZE wxSize(400, 300) +#define SYMBOL_CMABOUTDLG_POSITION wxDefaultPosition +#define ID_HTMLWINDOW 10000 +#define ID_ABOUT_DLG_OK 10005 +////@end control identifiers + +/*! + * Compatibility + */ + +#ifndef wxCLOSE_BOX +#define wxCLOSE_BOX 0x1000 +#endif +#ifndef wxFIXED_MINSIZE +#define wxFIXED_MINSIZE 0 +#endif + +/*! + * CMAboutDlg class declaration + */ + +class CMAboutDlg: public wxDialog +{ + DECLARE_DYNAMIC_CLASS( CMAboutDlg ) + DECLARE_EVENT_TABLE() + +public: + /// Constructors + CMAboutDlg( ); + CMAboutDlg( wxWindow* parent, wxWindowID id = SYMBOL_CMABOUTDLG_IDNAME, const wxString& caption = SYMBOL_CMABOUTDLG_TITLE, const wxPoint& pos = SYMBOL_CMABOUTDLG_POSITION, const wxSize& size = SYMBOL_CMABOUTDLG_SIZE, long style = SYMBOL_CMABOUTDLG_STYLE ); + + /// Creation + bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CMABOUTDLG_IDNAME, const wxString& caption = SYMBOL_CMABOUTDLG_TITLE, const wxPoint& pos = SYMBOL_CMABOUTDLG_POSITION, const wxSize& size = SYMBOL_CMABOUTDLG_SIZE, long style = SYMBOL_CMABOUTDLG_STYLE ); + + /// Creates the controls and sizers + void CreateControls(); + + void SetAboutText(const wxString &cmversion, const wxString &cmsversion, const wxArrayString &generators); + +////@begin CMAboutDlg event handler declarations + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_ABOUT_DLG_OK + void OnAboutDlgClick( wxCommandEvent& event ); + +////@end CMAboutDlg event handler declarations + +////@begin CMAboutDlg member function declarations + + /// Retrieves bitmap resources + wxBitmap GetBitmapResource( const wxString& name ); + + /// Retrieves icon resources + wxIcon GetIconResource( const wxString& name ); +////@end CMAboutDlg member function declarations + + /// Should we show tooltips? + static bool ShowToolTips(); + +////@begin CMAboutDlg member variables + wxStaticBitmap* m_cmIcon; + wxHtmlWindow* m_html; +////@end CMAboutDlg member variables +}; + +#endif + // _ABOUTDLG_H_ diff --git a/CMakeLua/Source/WXDialog/app_resources.cpp b/CMakeLua/Source/WXDialog/app_resources.cpp new file mode 100644 index 0000000..484a9b1 --- /dev/null +++ b/CMakeLua/Source/WXDialog/app_resources.cpp @@ -0,0 +1,86 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: app_resources.cpp,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma implementation "app_resources.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +////@begin includes +////@end includes + +#include "app_resources.h" + +////@begin XPM images +////@end XPM images + +/*! + * Resource functions + */ + +////@begin AppResources resource functions +/*! + * Menu creation function for ID_MENU + */ + +wxMenu* AppResources::CreatePopupMenu() +{ + wxMenu* itemMenu1 = new wxMenu; + itemMenu1->Append(ID_CACHE_IGNORE, _("&Ignore cache entry"), _("Ignores the value of the current cache entry"), wxITEM_NORMAL); + itemMenu1->Append(ID_CACHE_DELETE, _("&Delete cache entry"), _("Deletes the current cache entry (reverts on next configure)"), wxITEM_NORMAL); + itemMenu1->AppendSeparator(); + itemMenu1->Append(ID_CACHE_BROWSE, _("&Browse ..."), _T(""), wxITEM_NORMAL); + return itemMenu1; +} + +////@end AppResources resource functions + +/*! + * Get bitmap resources + */ + +wxBitmap AppResources::GetBitmapResource( const wxString& name ) +{ + // Bitmap retrieval +////@begin AppResources bitmap retrieval + return wxNullBitmap; +////@end AppResources bitmap retrieval +} + +/*! + * Get icon resources + */ + +wxIcon AppResources::GetIconResource( const wxString& name ) +{ + // Icon retrieval +////@begin AppResources icon retrieval + return wxNullIcon; +////@end AppResources icon retrieval +} diff --git a/CMakeLua/Source/WXDialog/app_resources.h b/CMakeLua/Source/WXDialog/app_resources.h new file mode 100644 index 0000000..e7b17c1 --- /dev/null +++ b/CMakeLua/Source/WXDialog/app_resources.h @@ -0,0 +1,60 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: app_resources.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef _APP_RESOURCES_H_ +#define _APP_RESOURCES_H_ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "app_resources.cpp" +#endif + +/*! + * Control identifiers + */ + +////@begin control identifiers +#define ID_CACHE_IGNORE 10051 +#define ID_CACHE_DELETE 10052 +#define ID_CACHE_BROWSE 10053 +////@end control identifiers + +class AppResources +{ +public: + AppResources() {} + +/*! + * Resource functions + */ + +////@begin AppResources resource functions + /// Menu creation function for ID_MENU + static wxMenu* CreatePopupMenu(); + + /// Retrieves bitmap resources + static wxBitmap GetBitmapResource( const wxString& name ); + + /// Retrieves icon resources + static wxIcon GetIconResource( const wxString& name ); +////@end AppResources resource functions + +}; + +#endif + // _APP_RESOURCES_H_ diff --git a/CMakeLua/Source/WXDialog/bin/CVS/Entries b/CMakeLua/Source/WXDialog/bin/CVS/Entries new file mode 100644 index 0000000..7a0c0db --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/CVS/Entries @@ -0,0 +1,5 @@ +/FindUPX.cmake/1.2/Fri Jul 21 19:43:18 2006//T1.2 +/FindwxW.cmake/1.2/Fri Jul 21 19:43:18 2006//T1.2 +/FindwxWin.cmake/1.5/Fri Jul 21 19:43:19 2006//T1.5 +/UsewxW.cmake/1.2/Fri Jul 21 19:43:19 2006//T1.2 +D diff --git a/CMakeLua/Source/WXDialog/bin/CVS/Repository b/CMakeLua/Source/WXDialog/bin/CVS/Repository new file mode 100644 index 0000000..f6202b1 --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/CVS/Repository @@ -0,0 +1 @@ +CMake/Source/WXDialog/bin diff --git a/CMakeLua/Source/WXDialog/bin/CVS/Root b/CMakeLua/Source/WXDialog/bin/CVS/Root new file mode 100644 index 0000000..69bc119 --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@www.cmake.org:/cvsroot/CMake diff --git a/CMakeLua/Source/WXDialog/bin/CVS/Tag b/CMakeLua/Source/WXDialog/bin/CVS/Tag new file mode 100644 index 0000000..60e5f33 --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/CVS/Tag @@ -0,0 +1 @@ +D2007.12.03.00.00.00 diff --git a/CMakeLua/Source/WXDialog/bin/CVS/Template b/CMakeLua/Source/WXDialog/bin/CVS/Template new file mode 100644 index 0000000..41a624a --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/CVS/Template @@ -0,0 +1,22 @@ +CVS: ---------------------------------------------------------------------- +CVS: CVS Commits to CMake/ITK/ParaView/VTK require commit type in the +CVS: comment. Valid commit types are: +CVS: +CVS: BUG: - a change made to fix a runtime issue +CVS: (crash, segmentation fault, exception, or incorrect result, +CVS: COMP: - a fix for a compilation issue, error or warning, +CVS: ENH: - new functionality added to the project, +CVS: PERF: - a performance improvement, +CVS: STYLE: - a change that does not impact the logic or execution of the +CVS: code. (improve coding style, comments, documentation). +CVS: +CVS: The cvs command to commit the change is: +CVS: +CVS: cvs commit -m "BUG: fixed core dump when passed float data" filename +CVS: +CVS: you can also use the syntax below which omits the -m flag. In this +CVS: case cvs will start up an editor for you to enter a comment on why you +CVS: made the change. +CVS: +CVS: cvs commit filename +CVS: ---------------------------------------------------------------------- diff --git a/CMakeLua/Source/WXDialog/bin/FindUPX.cmake b/CMakeLua/Source/WXDialog/bin/FindUPX.cmake new file mode 100644 index 0000000..fc9113d --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/FindUPX.cmake @@ -0,0 +1,18 @@ +# +# Find the UPX packer program +# +# UPX_PROGRAM_PATH The full path to the UPX command (or UPX_PROGRAM_PATH-NOTFOUND when not found) +# UPX_FOUND Is set to 1 when upx is found + +FIND_PATH(UPX_PROGRAM_PATH upx.exe + ${UPX_DIR} + $ENV{UPX_DIR} + "$ENV{ProgramFiles}/upx" + ) + +# when found, note this as target +IF(UPX_PROGRAM_PATH) + SET(UPX_FOUND 1) +ELSE(UPX_PROGRAM_PATH) + SET(UPX_FOUND 0) +ENDIF(UPX_PROGRAM_PATH) diff --git a/CMakeLua/Source/WXDialog/bin/FindwxW.cmake b/CMakeLua/Source/WXDialog/bin/FindwxW.cmake new file mode 100644 index 0000000..f88eb0e --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/FindwxW.cmake @@ -0,0 +1,438 @@ + +MESSAGE("${CMAKE_CURRENT_FILE} is deprecated, please use FindwxWidgets.cmake instead.") + +# +# FindwxW.cmake +# v1.01 2005-05-27 +# Jerry Fath 2005 +# Based on work by Jorgen Bodde +# +# This module finds if wxWindows is installed and determines where the +# include files and libraries are. It also determines what the name of +# the library is. This code sets the following variables: +# +# WXWIDGETS_LINK_DIRECTORIES = link directories, useful for rpath on Unix +# WXWIDGETS_LIBRARIES = all the wxWindows libraries ( and linker flags on unix ) +# WXWIDGETS_CXX_FLAGS = compiler flags for building wxWindows +# WXWIDGETS_INCLUDE_DIR = all include path of wxWindows +# WXWIDGETS_DEFINITIONS = all flags of wxWindows + + +# NOTE: This module REQUIRES that an environment variable named WXWIN +# be set to the base wxWidgets installation directory. +# Under Unix, you must also set and environment variable named WXWINCFG +# to the name of the active build subdirectory (eg buildgtk). +# + +# These variable should be set before including this module +# +# WXWIDGETS_FILE_VERSION (26) +# WXWIDGETS_VERSION (2.6) +# + +# +# Set WX_USE vars in CMakeLists if you don't want to default to all off +# +SET(WXWIDGETS_USE_DEBUG ${WXW_USE_DEBUG} CACHE BOOL "Use Debug versions of wxWindows libraries") +SET(WXWIDGETS_USE_UNICODE ${WXW_USE_UNICODE} CACHE BOOL "Use Unicode versions of wxWindows libraries") +SET(WXWIDGETS_USE_SHARED ${WXW_USE_SHARED} CACHE BOOL "Use shared versions of wxWindows libraries") +SET(WXWIDGETS_USE_UNIV ${WXW_USE_UNIV} CACHE BOOL "Use Universal versions of wxWindows libraries") +SET(WXWIDGETS_USE_MONO ${WXW_USE_MONO} CACHE BOOL "Use monolithic versions of wxWindows libraries") + +# +# Style can be non-Win32 even under Windows when using MinGW +# +IF(WIN32) + SET(WIN32_STYLE_FIND 1) +ENDIF(WIN32) +IF(MINGW) + SET(WIN32_STYLE_FIND 0) + SET(UNIX_STYLE_FIND 1) +ENDIF(MINGW) +IF(UNIX) + SET(UNIX_STYLE_FIND 1) +ENDIF(UNIX) + +# +# Versions should be set before this file is included. If not, +# default to 2.6 +# +IF(WXW_FILE_VERSION) + SET( WXVERSIONSUFFIX ${WXW_FILE_VERSION}) +ELSE(WXW_FILE_VERSION) + SET( WXVERSIONSUFFIX "26") +ENDIF(WXW_FILE_VERSION) + +IF(WXW_VERSION) + SET( WXVERSION ${WXW_VERSION}) +ELSE(WXW_VERSION) + SET( WXVERSION "2.6") +ENDIF(WXW_VERSION) + +# +# Find the base wxWidgets install path +# NOTE: WXWIN must be set +# +FIND_PATH( WXWIDGETS_INSTALL_PATH + wx-config.in + $ENV{WXWIN} +) +IF(WXWIDGETS_INSTALL_PATH STREQUAL "WXWIDGETS_INSTALL_PATH-NOTFOUND") + MESSAGE( FATAL_ERROR "FATAL_ERROR: wx-config.in NOT found. Set WXWIN") +ENDIF(WXWIDGETS_INSTALL_PATH STREQUAL "WXWIDGETS_INSTALL_PATH-NOTFOUND") +SET(WXWIDGETS_CONFIG_PATH ${WXWIDGETS_INSTALL_PATH}) + +# +# Find library path (platform specific) +# +IF( WIN32_STYLE_FIND ) + + IF( WXWIDGETS_USE_SHARED ) + SET(WXWIDGETS_LIB_PATH "${WXWIDGETS_INSTALL_PATH}/lib/vc_dll" ) + ELSE( WXWIDGETS_USE_SHARED ) + SET(WXWIDGETS_LIB_PATH "${WXWIDGETS_INSTALL_PATH}/lib/vc_lib" ) + ENDIF( WXWIDGETS_USE_SHARED ) + SET( WXWIDGETS_LINK_DIRECTORIES ${WXWIDGETS_LIB_PATH} ) + +ELSE( WIN32_STYLE_FIND ) + IF (UNIX_STYLE_FIND) + + # + # Unix uses a config specific directory under the install path + # specified in the WXWINCFG environment variable. + # + SET(WXWIDGETS_CONFIG_PATH "${WXWIDGETS_INSTALL_PATH}/$ENV{WXWINCFG}") + + # + # Check wether wx-config can be found + # + SET(WX_WXCONFIG_EXECUTABLE "${WXWIDGETS_CONFIG_PATH}/wx-config" ) + IF(NOT EXISTS ${WX_WXCONFIG_EXECUTABLE}) + # we really need wx-config... + MESSAGE(FATAL_ERROR "FATAL_ERROR: Cannot find wx-config. Set WXWIN and WXWINCFG environment variables.") + ENDIF(NOT EXISTS ${WX_WXCONFIG_EXECUTABLE}) + + SET(WXWIDGETS_LIB_PATH "${WXWIDGETS_CONFIG_PATH}/lib" ) + SET( WXWIDGETS_LINK_DIRECTORIES ${WXWIDGETS_LIB_PATH} ) + + ELSE(UNIX_STYLE_FIND) + MESSAGE(FATAL_ERROR "FATAL_ERROR: FindwxWindows.cmake: Platform unsupported by FindwxW.cmake. It's neither WIN32 nor UNIX") + ENDIF(UNIX_STYLE_FIND) +ENDIF( WIN32_STYLE_FIND ) + +# +# Check options against installed libraries +# +SET(WX_CONFIG_ARGS "") +SET( LIBRARYWANT "${WXWIDGETS_LIB_PATH}/msw" ) + +IF( WXWIDGETS_USE_UNIV ) + SET( LIBRARYWANT "${LIBRARYWANT}univ") + SET( PFUNIV "univ" ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --universal=yes") +ELSE( WXWIDGETS_USE_UNIV ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --universal=no") +ENDIF( WXWIDGETS_USE_UNIV ) + +IF( WXWIDGETS_USE_UNICODE ) + SET( LIBRARYWANT "${LIBRARYWANT}u" ) + SET( PFUNICODE "u" ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --unicode=yes") +ELSE( WXWIDGETS_USE_UNICODE ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --unicode=no") +ENDIF( WXWIDGETS_USE_UNICODE ) + +IF( WXWIDGETS_USE_DEBUG ) + SET( LIBRARYWANT "${LIBRARYWANT}d" ) + SET( PFDEBUG "d" ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --debug=yes") +ELSE( WXWIDGETS_USE_DEBUG ) + SET( PFDEBUG "" ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --debug=no") +ENDIF( WXWIDGETS_USE_DEBUG ) + +IF( WXWIDGETS_USE_SHARED ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --static=no") +ELSE( WXWIDGETS_USE_SHARED ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS} --static=yes") +ENDIF( WXWIDGETS_USE_SHARED ) + +# Not sure how to check this yet!!!!! +IF( WXWIDGETS_USE_MONO ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS}") +ELSE( WXWIDGETS_USE_MONO ) + SET(WX_CONFIG_ARGS "${WX_CONFIG_ARGS}") +ENDIF( WXWIDGETS_USE_MONO ) + +SET(WX_CONFIG_ARGS_LIBS "${WX_CONFIG_ARGS} --libs") + +# +# Platform specific method for testing installed wx Builds +# +IF( WIN32_STYLE_FIND ) + + IF( NOT EXISTS "${LIBRARYWANT}/wx/setup.h" ) + MESSAGE( SEND_ERROR "ERROR: WXWidgets config NOT found ${WX_CONFIG_ARGS}") + ENDIF( NOT EXISTS "${LIBRARYWANT}/wx/setup.h" ) + +ELSE( WIN32_STYLE_FIND ) + + EXEC_PROGRAM(${WX_WXCONFIG_EXECUTABLE} + ARGS ${WX_CONFIG_ARGS_LIBS} + OUTPUT_VARIABLE WXWIDGETS_LIBRARIES + RETURN_VALUE BAD_WXCONFIG ) + IF(BAD_WXCONFIG) + MESSAGE( SEND_ERROR "ERROR: WXWidgets config NOT found ${WX_CONFIG_ARGS}") + ENDIF(BAD_WXCONFIG) + +ENDIF( WIN32_STYLE_FIND ) + +# +# Get compiler flags +# +IF( WIN32_STYLE_FIND ) + # Not used for Windows + SET( WXWIDGETS_CXX_FLAGS "" ) +ELSE( WIN32_STYLE_FIND ) + # + # Get CXXFLAGS from wx-config + # + EXEC_PROGRAM(${WX_WXCONFIG_EXECUTABLE} + ARGS "--cxxflags" + OUTPUT_VARIABLE WXWIDGETS_CXX_FLAGS + RETURN_VALUE BAD_WXCONFIG ) + IF (BAD_WXCONFIG) + MESSAGE( SEND_ERROR "ERROR: wx-config --cxxflags returned an error") + ENDIF (BAD_WXCONFIG) +ENDIF( WIN32_STYLE_FIND ) + +# +# Find include directories (platform specific) +# +IF( WIN32_STYLE_FIND ) + # + # Set non-build specific include directories + # + SET ( WX_INCLUDE_PATH ${WXWIDGETS_INSTALL_PATH}/include ) + SET ( WXWIDGETS_INCLUDE_DIR ${WX_INCLUDE_PATH} ) + SET( WXWIDGETS_INCLUDE_DIR ${WXWIDGETS_INCLUDE_DIR} ${WXWIDGETS_INCLUDE_DIR}/../contrib/include ) + # + # Append the build specific include dir for wx/setup.h: + # + IF ( EXISTS ${LIBRARYWANT}/wx/setup.h ) + SET( WX_INCLUDE_LIB_PATH ${LIBRARYWANT}) + SET( WXWIDGETS_INCLUDE_DIR ${WXWIDGETS_INCLUDE_DIR} ${LIBRARYWANT} ) + ELSE ( EXISTS ${LIBRARYWANT}/wx/setup.h ) + SET( WX_INCLUDE_LIB_PATH, "") + MESSAGE(SEND_ERROR "ERROR: Can't find ${LIBRARYWANT}/wx/setup.h") + ENDIF ( EXISTS ${LIBRARYWANT}/wx/setup.h ) +ELSE( WIN32_STYLE_FIND ) + + # Pull out -I options + # evaluate wx-config output to separate include dirs + SET(WX_INCLUDE_DIR ${WXWIDGETS_CXX_FLAGS}) + # extract include dirs (-I) + # use regular expression to match wildcard equivalent "-I*" + # with is a space or a semicolon + STRING(REGEX MATCHALL "[-][I]([^ ;])+" WX_INCLUDE_DIRS_WITH_PREFIX "${WX_INCLUDE_DIR}" ) + # remove prefix -I because we need the pure directory + IF(WX_INCLUDE_DIRS_WITH_PREFIX) + STRING(REGEX REPLACE "[-][I]" ";" WXWIDGETS_INCLUDE_DIR ${WX_INCLUDE_DIRS_WITH_PREFIX} ) + ENDIF(WX_INCLUDE_DIRS_WITH_PREFIX) + # replace space separated string by semicolon separated vector + SEPARATE_ARGUMENTS(WXWIDGETS_INCLUDE_DIR) + # Remove the -I options from the CXX_FLAGS no need to duplicate + STRING(REGEX REPLACE "[-][I]([^ ;])+" "" WXWIDGETS_CXX_FLAGS ${WXWIDGETS_CXX_FLAGS} ) + + # + # Find XWindows + # + IF( NOT CYGWIN OR MINGW ) + INCLUDE( ${CMAKE_ROOT}/Modules/FindX11.cmake ) + SET( WXWIDGETS_INCLUDE_DIR ${WXWIDGETS_INCLUDE_DIR} ${X11_INCLUDE_DIR} ) + ENDIF( NOT CYGWIN OR MINGW ) +ENDIF( WIN32_STYLE_FIND ) + +# +# Find library list (platform specific) +# +IF( WIN32_STYLE_FIND ) + # + #Misc vars used to build lib names + # + SET( PFLIBEXT ${CMAKE_STATIC_LIBRARY_SUFFIX} ) + SET( WXPF "${WXPF}${WXVERSIONSUFFIX}" ) + SET( PFVERSION ${WXVERSIONSUFFIX} ) + SET( PFCOMPILER "" ) + + # + # Build the libraries list + # + SET( WXWIDGETS_LIBRARIES "" ) + SET( WXWIDGETS_MULTI_LIBRARIES "" ) + SET( WXWIDGETS_MONO_LIBRARIES "" ) + + SET(WX_LIBRARIES ${WX_LIBRARIES} comctl32${PFLIBEXT} wsock32${PFLIBEXT} rpcrt4${PFLIBEXT}) + #MESSAGE( "WX_LIBRARIES: ${WX_LIBRARIES}") + + #start filling library string with needed libraries for the choosen configuration. + SET( WXWIDGETS_LIBRARIES ${WXWIDGETS_LIBRARIES} ${WX_LIBRARIES} ) + + SET( WXPF "${PFVERSION}${PFUNICODE}${PFDEBUG}" ) + SET(WXWIDGETS_MULTI_LIBRARIES ${WXWIDGETS_MULTI_LIBRARIES} + wxbase${WXPF}${PFCOMPILER}${PFLIBEXT} + wxbase${WXPF}_net${PFCOMPILER}${PFLIBEXT} wxbase${WXPF}_xml${PFCOMPILER}${PFLIBEXT} + ) + + SET( WXPF "${PFVERSION}${PFUNICODE}${PFDEBUG}" ) + SET(WXWIDGETS_MULTI_LIBRARIES ${WXWIDGETS_MULTI_LIBRARIES} + wxmsw${WXPF}_adv${PFCOMPILER}${PFLIBEXT} + wxmsw${WXPF}_core${PFCOMPILER}${PFLIBEXT} + wxmsw${WXPF}_html${PFCOMPILER}${PFLIBEXT} + wxmsw${WXPF}_xrc${PFCOMPILER}${PFLIBEXT} +# wxmsw${WXPF}_media${PFCOMPILER}${PFLIBEXT} + ) + + IF( NOT WXWIDGETS_USE_SHARED ) + SET( WXPF "${PFVERSION}${PFUNICODE}${PFDEBUG}" ) + # ODBC is not needed + #SET(WXWIDGETS_MULTI_LIBRARIES ${WXWIDGETS_MULTI_LIBRARIES} wxbase${WXPF}_odbc${PFCOMPILER}${PFLIBEXT} ) + + SET( WXPF "${PFVERSION}${PFUNICODE}${PFDEBUG}" ) + #SET(WXWIDGETS_MULTI_LIBRARIES ${WXWIDGETS_MULTI_LIBRARIES} + # wxmsw${WXPF}_dbgrid${PFLIBEXT} + # wxmsw${WXPF}_gl${PFCOMPILER}${PFLIBEXT} + #) + ENDIF( NOT WXWIDGETS_USE_SHARED ) + + IF ( WXWIDGETS_USE_UNIV ) + SET( WXPF "${PFUNIV}${PFVERSION}${PFUNICODE}${PFDEBUG}" ) + SET(WXWIDGETS_MULTI_LIBRARIES ${WXWIDGETS_MULTI_LIBRARIES} + wxmsw${WXPF}_core${PFCOMPILER}${PFLIBEXT} + ) + ENDIF ( WXWIDGETS_USE_UNIV ) + + SET(WXWIDGETS_MONO_LIBRARIES ${WXWIDGETS_MONO_LIBRARIES} + wxmsw${WXPF}${PFCOMPILER}${PFLIBEXT} + ) + + IF ( WXWIDGETS_USE_MONO ) + SET(WXWIDGETS_LIBRARIES ${WXWIDGETS_LIBRARIES} ${WXWIDGETS_MONO_LIBRARIES}) + ELSE ( WXWIDGETS_USE_MONO ) + SET(WXWIDGETS_LIBRARIES ${WXWIDGETS_LIBRARIES} ${WXWIDGETS_MULTI_LIBRARIES}) + ENDIF ( WXWIDGETS_USE_MONO ) + + SET( WXPF "${PFUNICODE}${PFDEBUG}" ) + SET(WXWIDGETS_LIBRARIES ${WXWIDGETS_LIBRARIES} + wxregex${WXPF}.lib + ) + + SET( WXPF "${PFDEBUG}" ) + SET(WXWIDGETS_LIBRARIES ${WXWIDGETS_LIBRARIES} + wxexpat${WXPF}.lib + wxpng${WXPF}.lib + wxtiff${WXPF}.lib + wxjpeg${WXPF}.lib + wxzlib${WXPF}.lib + ) + +ELSE( WIN32_STYLE_FIND ) + # + # Get Library list from wx-config + # + # do we need additionial wx GL stuff like GLCanvas ? + IF(WXWIDGETS_USE_GL) + SET(WX_CONFIG_ARGS_LIBS "${WX_CONFIG_ARGS_LIBS} --gl-libs" ) + ENDIF(WXWIDGETS_USE_GL) + + EXEC_PROGRAM(${WX_WXCONFIG_EXECUTABLE} + ARGS ${WX_CONFIG_ARGS_LIBS} + OUTPUT_VARIABLE WXWIDGETS_LIBRARIES + RETURN_VALUE BAD_WXCONFIG ) + IF (BAD_WXCONFIG) + MESSAGE( SEND_ERROR "ERROR: Specified WXWidgets config NOT found") + ENDIF (BAD_WXCONFIG) + + # Pull out the -L options + # evaluate wx-config output to separate linker flags and linkdirs for + # rpath: + SET(WX_CONFIG_LIBS ${WXWIDGETS_LIBRARIES}) + # extract linkdirs (-L) for rpath + # use regular expression to match wildcard equivalent "-L*" + # with is a space or a semicolon + STRING(REGEX MATCHALL "[-][L]([^ ;])+" WX_LINK_DIRECTORIES_WITH_PREFIX "${WX_CONFIG_LIBS}" ) + #MESSAGE("DBG WX_LINK_DIRECTORIES_WITH_PREFIX=${WX_LINK_DIRECTORIES_WITH_PREFIX}") + # remove prefix -L because we need the pure directory for LINK_DIRECTORIES + # replace -L by ; because the separator seems to be lost otherwise (bug or + # feature?) + IF(WX_LINK_DIRECTORIES_WITH_PREFIX) + STRING(REGEX REPLACE "[-][L]" ";" WXWIDGETS_LINK_DIRECTORIES ${WX_LINK_DIRECTORIES_WITH_PREFIX} ) + #MESSAGE("DBG WXWIDGETS_LINK_DIRECTORIES=${WXWIDGETS_LINK_DIRECTORIES}") + ENDIF(WX_LINK_DIRECTORIES_WITH_PREFIX) + # replace space separated string by semicolon separated vector to make it + # work with LINK_DIRECTORIES + SEPARATE_ARGUMENTS(WXWIDGETS_LINK_DIRECTORIES) + # Remove -L options from lib list, no need to duplicate + STRING(REGEX REPLACE "[-][L]([^ ;])+" "" WXWIDGETS_LIBRARIES ${WXWIDGETS_LIBRARIES} ) + + +ENDIF( WIN32_STYLE_FIND ) + + +# +# Find wx.rc +# +SET( WXWIDGETS_RC ${WXWIDGETS_INSTALL_PATH}/include/wx/msw/wx.rc ) +IF( NOT WIN32_STYLE_FIND ) + IF( NOT CYGWIN OR MINGW ) + SET( WXWIDGETS_RC "" ) + ENDIF( NOT CYGWIN OR MINGW ) +ENDIF( NOT WIN32_STYLE_FIND ) + +# +# Set preprocessor defs +# +STRING(TOUPPER ${CMAKE_SYSTEM_NAME} WX_SYSNAME) +SET( WXWIDGETS_DEFINITIONS ${WXWIDGETS_DEFINITIONS} "-D${WX_SYSNAME}" ) + +IF(WIN32_STYLE_FIND) + SET( WXWIDGETS_DEFINITIONS ${WXWIDGETS_DEFINITIONS} -DWIN32 -D__WXMSW__ ) +ELSE(WIN32_STYLE_FIND) + IF( CYGWIN ) + SET( WXWIDGETS_DEFINITIONS ${WXWIDGETS_DEFINITIONS} -D__GNUWIN32__ -O2 -D_WIN32_IE=0x400 -MMD -Wall ) + ENDIF( CYGWIN ) +ENDIF(WIN32_STYLE_FIND) + +IF( WXWIDGETS_USE_SHARED ) + SET( WXWIDGETS_DEFINITIONS ${WXWIDGETS_DEFINITIONS} -DWXUSINGDLL ) +ENDIF( WXWIDGETS_USE_SHARED ) + +IF( WXWIDGETS_USE_DEBUG ) + SET( WXWIDGETS_DEFINITIONS ${WXWIDGETS_DEFINITIONS} -D_DEBUG_ -D__WXDEBUG__ -DWXDEBUG=1 ) +ENDIF( WXWIDGETS_USE_DEBUG ) + +IF ( WXWIDGETS_USE_UNICODE ) + SET( WXWIDGETS_DEFINITIONS ${WXWIDGETS_DEFINITIONS} -DwxUSE_UNICODE ) +ENDIF ( WXWIDGETS_USE_UNICODE ) + +# +# Set the WXWIDGETS_FOUND var +# +IF(WXWIDGETS_LIBRARIES AND WXWIDGETS_INCLUDE_DIR) + SET(WXWIDGETS_FOUND 1) +ENDIF(WXWIDGETS_LIBRARIES AND WXWIDGETS_INCLUDE_DIR) + +# +# Mark advanced vars +# +MARK_AS_ADVANCED(WXWIDGETS_INSTALL_PATH) + +# +# Log results +# +FILE( WRITE "${PROJECT_BINARY_DIR}/findwxw.log" "WXWIDGETS_FOUND: ${WXWIDGETS_FOUND}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/findwxw.log" "WXWIDGETS_LINK_DIRECTORIES: ${WXWIDGETS_LINK_DIRECTORIES}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/findwxw.log" "WXWIDGETS_LIBRARIES: ${WXWIDGETS_LIBRARIES}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/findwxw.log" "WXWIDGETS_CXX_FLAGS: ${WXWIDGETS_CXX_FLAGS}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/findwxw.log" "WXWIDGETS_INCLUDE_DIR: ${WXWIDGETS_INCLUDE_DIR}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/findwxw.log" "WXWIDGETS_DEFINITIONS: ${WXWIDGETS_DEFINITIONS}\n" ) diff --git a/CMakeLua/Source/WXDialog/bin/FindwxWin.cmake b/CMakeLua/Source/WXDialog/bin/FindwxWin.cmake new file mode 100644 index 0000000..3b76b6f --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/FindwxWin.cmake @@ -0,0 +1,469 @@ + + +MESSAGE("${CMAKE_CURRENT_FILE} is deprecated, please use FindwxWidgets.cmake instead.") + + +##--------------------------------------------------------------------------- +## $RCSfile: FindwxWin.cmake,v $ +## $Source: /cvsroot/CMake/CMake/Source/WXDialog/bin/FindwxWin.cmake,v $ +## $Revision: 1.5 $ +## $Date: 2006/07/21 19:43:19 $ +##--------------------------------------------------------------------------- +## Author: Jorgen Bodde +## Copyright: (c) Jorgen Bodde +## License: wxWidgets License +##--------------------------------------------------------------------------- +## +## This module finds if wxWindows 2.5.x / 2.6.x is installed and determines +## where the include files and seperate libraries are. It also determines what +## the name of the library is. +## +## WARNING: Monolithic build support is not present here (it is not desired +## by wxWidgets anyway). Also the shared DLL option is not yet present. +## +## Current working combinations are; +## - Static debug and release libs +## - Static unicode debug and release libs +## - Static universal unicode debug and release libs +## - Static unicode universal unicode debug and release libs +## +## +## The linux part of this CMake file is unaltered and will always use because of +## 'wx-config'. The linux part will not use the WX_LIB_IGNORE vars because of +## the way wxWidgets is built and configured. +## +## This code sets the following variables: +## +## ------------------------------------------------------------------ +## +## WXWINDOWS_FOUND = system has WxWindows (in desired config. build) +## +## WXWINDOWS_LIBRARIES = full path to the wxWindows libraries +## on Unix/Linux with additional linker flags from +## "wx-config --libs" +## +## CMAKE_WXWINDOWS_CXX_FLAGS = Unix compiler flags for wxWindows, essentially +## "`wx-config --cxxflags`" +## +## WXWINDOWS_INCLUDE_DIR = where to find headers "wx/wx.h" "wx/setup.h" +## +## WXWINDOWS_LINK_DIRECTORIES = link directories, useful for rpath on Unix +## +## WXWINDOWS_DEFINITIONS = extra defines +## + +IF( WIN32 ) + + ## + ## Find root path of wxWidgets, either in the registry or as environment var + ## + + SET (WXWINDOWS_POSSIBLE_ROOT_PATHS + $ENV{WXWIN} + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWindows_is1;Inno Setup: App Path]" ) + + FIND_PATH(WXWIDGETS_PATH_ROOT include/wx/wx.h + ${WXWINDOWS_POSSIBLE_ROOT_PATHS} ) + + SET(WXWINDOWS_FOUND 0) + IF(NOT WXWIDGETS_PATH_ROOT) + MESSAGE(SEND_ERROR "wxWidgets root is not found. Please point out the wxWidgets root using the WXWIN environment var") + ENDIF(NOT WXWIDGETS_PATH_ROOT) + + OPTION(WX_USE_DEBUG_ONLY "Only attempt to setup the debug libraries, ignore the release libraries." ON) + + ## Find a multi library path, this is the path where the seperate libs are located + SET(WXMSW_SETUPH "wx/setup.h") + + SET(WXDEBUG_POSTFIX "") + IF(WX_USE_DEBUG_ONLY) + SET(WXDEBUG_POSTFIX "d") + ENDIF(WX_USE_DEBUG_ONLY) + + ## Try the VS compilation path + SET(WXWINDOWS_POSSIBLE_SETUPH + "${WXWIDGETS_PATH_ROOT}/lib/vc_lib/msw${WXDEBUG_POSTFIX}/${WXMSW_SETUPH}") + + ## Try borland and VS7 path + IF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH}) + SET(WXWINDOWS_POSSIBLE_MULTILIB_PATHS + "${WXWIDGETS_PATH_ROOT}/lib/vc_lib") + ELSE(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH}) + ## Try the borland path + SET(WXWINDOWS_POSSIBLE_SETUPH + "${WXWIDGETS_PATH_ROOT}/lib/bcc_lib/msw${WXDEBUG_POSTFIX}/${WXMSW_SETUPH}") + IF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH}) + SET(WXWINDOWS_POSSIBLE_MULTILIB_PATHS + "${WXWIDGETS_PATH_ROOT}/lib/bcc_lib") + ELSE(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH}) + MESSAGE(SEND_ERROR "wxWidgets libraries are not found.") + ENDIF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH}) + ENDIF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH}) + + ## Ask user what config should be used, after asking, verify if it will work + OPTION(WX_LINK_AGAINST_UNIVERSAL "Use wxWidgets universal builds" OFF) + OPTION(WX_LINK_AGAINST_UNICODE "Use wxWidgets unicode builds" OFF) + + SET(WXMSW_SETUPH "wx/setup.h") + + SET(WX_RELEASE 0) + SET(WX_DEBUG 0) + + SET(WX_RELEASE_UNI 0) + SET(WX_DEBUG_UNI 0) + + SET(WX_RELEASE_UNIV 0) + SET(WX_DEBUG_UNIV 0) + + SET(WX_RELEASE_UNIV_UNI 0) + SET(WX_DEBUG_UNIV_UNI 0) + + SET(WX_FOUND_VALID_CONF 0) + + ## Scan for wxWidgets static multilib release + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/msw/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_RELEASE 1) + SET(WX_RELEASE_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/msw/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/msw/${WXMSW_SETUPH}") + + ## Scan for wxWidgets static multilib debug + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswd/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_DEBUG 1) + SET(WX_DEBUG_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswd/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswd/${WXMSW_SETUPH}") + + ## Scan for wxWidgets multilib unicode + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_RELEASE_UNI 1) + SET(WX_RELEASE_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH}") + + ## Scan for wxWidgets multilib unicode debug + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswud/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_DEBUG_UNI 1) + SET(WX_DEBUG_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswud/${WXMSW_SETUPH}") + + ## Scan for wxWidgets multilib universal + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswuniv/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_RELEASE_UNIV 1) + SET(WX_RELEASE_UNIV_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswuniv/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswuniv/${WXMSW_SETUPH}") + + ## Scan for wxWidgets multilib universal debug + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivd/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_DEBUG_UNIV 1) + SET(WX_DEBUG_UNIV_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivd/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivd/${WXMSW_SETUPH}") + + ## Scan for wxWidgets multilib universal unicode + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivu/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_RELEASE_UNIV_UNI 1) + SET(WX_RELEASE_UNIV_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivu/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivu/${WXMSW_SETUPH}") + + ## Scan for wxWidgets multilib universal unicode debug + IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivud/${WXMSW_SETUPH}") + SET(WX_FOUND_VALID_CONF 1) + SET(WX_DEBUG_UNIV_UNI 1) + SET(WX_DEBUG_UNIV_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivud/${WXMSW_SETUPH} ) + ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivud/${WXMSW_SETUPH}") + + ## If no valid config is found, mention this + IF(NOT WX_FOUND_VALID_CONF) + MESSAGE(SEND_ERROR "Did not found a valid setup.h for any library. Please compile your wxWidgets libraries first") + ENDIF(NOT WX_FOUND_VALID_CONF) + + ## Search for wx version automatically + SET (WXVERSION "") + + SET(WXLIBS + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25d.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25u.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25ud.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25_core.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25d_core.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25u_core.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25ud_core.lib" ) + + FOREACH(WXLIB ${WXLIBS}) + IF(EXISTS "${WXLIB}") + SET(WXVERSION "25") + ENDIF(EXISTS "${WXLIB}") + ENDFOREACH(WXLIB ${WXLIBS}) + + IF(NOT WXLIB) + SET(WXLIBS + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26d.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26u.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26ud.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26_core.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26d_core.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26u_core.lib" + "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26ud_core.lib") + + FOREACH(WXLIB ${WXLIBS}) + IF(EXISTS "${WXLIB}") + SET(WXVERSION "26") + ENDIF(EXISTS "${WXLIB}") + ENDFOREACH(WXLIB ${WXLIBS}) + ENDIF(NOT WXLIB) + + IF(NOT WXVERSION) + MESSAGE(SEND_ERROR "There are no suitable wxWidgets libraries found (monolithic builds are no longer supported") + ENDIF(NOT WXVERSION) + + ## + ## Verify unicode universal builds + ## + IF(WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE) + IF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV AND NOT WX_RELEASE_UNIV_UNI AND NOT WX_DEBUG_UNIV_UNI) + MESSAGE(SEND_ERROR "Not all wx${WXVERSION} universal unicode libraries are found (check debug and release builds)") + ENDIF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV AND NOT WX_RELEASE_UNIV_UNI AND NOT WX_DEBUG_UNIV_UNI) + ELSE(WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE) + ## + ## Verify unicode builds + ## + IF(NOT WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE) + IF(NOT WX_RELEASE_UNI AND NOT WX_DEBUG_UNI) + MESSAGE(SEND_ERROR "Not all wx${WXVERSION} unicode libraries are found (check debug and release builds)") + ENDIF(NOT WX_RELEASE_UNI AND NOT WX_DEBUG_UNI) + ELSE(NOT WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE) + ## + ## Verify universal builds + ## + IF(WX_LINK_AGAINST_UNIVERSAL AND NOT WX_LINK_AGAINST_UNICODE) + IF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV) + MESSAGE(SEND_ERROR "Not all wx${WXVERSION} universal libraries are found (check debug and release builds)") + ENDIF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV) + ELSE(WX_LINK_AGAINST_UNIVERSAL AND NOT WX_LINK_AGAINST_UNICODE) + ## + ## Must be normal build now + ## + IF(NOT WX_RELEASE AND NOT WX_DEBUG) + MESSAGE(SEND_ERROR "Not all wx${WXVERSION} libraries are found (check debug and release builds)") + ENDIF(NOT WX_RELEASE AND NOT WX_DEBUG) + ENDIF(WX_LINK_AGAINST_UNIVERSAL AND NOT WX_LINK_AGAINST_UNICODE) + ENDIF(NOT WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE) + ENDIF(WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE) + + ## Prepare the representation for the library + IF(WX_LINK_AGAINST_UNICODE) + SET(WXLIB_POST "u") + ELSE(WX_LINK_AGAINST_UNICODE) + SET(WXLIB_POST "") + ENDIF(WX_LINK_AGAINST_UNICODE) + + ## Prepare for universal presentation + IF(WX_LINK_AGAINST_UNIVERSAL) + SET(WXLIB_UNIV "univ") + ELSE(WX_LINK_AGAINST_UNIVERSAL) + SET(WXLIB_UNIV "") + ENDIF(WX_LINK_AGAINST_UNIVERSAL) + + FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h + ${WXWIDGETS_PATH_ROOT}/lib/vc_lib/msw${WXLIB_UNIV}${WXLIB_POST} + ${WXWIDGETS_PATH_ROOT}/lib/vc_lib/msw${WXLIB_UNIV}${WXLIB_POST}d ) + + ## Find setup.h belonging to multi libs + SET(WXWINDOWS_LINK_DIRECTORIES + ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS} ) + + ## Append all multi libs + SET (WXWINDOWS_STATIC_RELEASE_LIBS + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_gl.lib + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_xrc.lib + optimized wxbase${WXVERSION}${WXLIB_POST}_xml.lib + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_qa.lib + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_html.lib + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_dbgrid.lib + optimized wxbase${WXVERSION}${WXLIB_POST}_odbc.lib + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_media.lib + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_adv.lib + optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_core.lib + optimized wxbase${WXVERSION}${WXLIB_POST}_net.lib + optimized wxbase${WXVERSION}${WXLIB_POST}.lib + optimized wxexpat.lib + optimized wxtiff.lib + optimized wxjpeg.lib + optimized wxpng.lib + optimized wxzlib.lib + optimized wxregex${WXLIB_POST}.lib ) + + SET (WXWINDOWS_STATIC_DEBUG_LIBS + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_gl.lib + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_xrc.lib + debug wxbase${WXVERSION}${WXLIB_POST}d_xml.lib + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_qa.lib + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_html.lib + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_dbgrid.lib + debug wxbase${WXVERSION}${WXLIB_POST}d_odbc.lib + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_media.lib + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_adv.lib + debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_core.lib + debug wxbase${WXVERSION}${WXLIB_POST}d_net.lib + debug wxbase${WXVERSION}${WXLIB_POST}d.lib + debug wxexpatd.lib + debug wxtiffd.lib + debug wxjpegd.lib + debug wxpngd.lib + debug wxzlibd.lib + debug wxregex${WXLIB_POST}d.lib ) + + ## Add the common libraries to the big list + SET(CMAKE_WXWINDOWS_COMMON_LIBRARIES + winmm + comctl32 + rpcrt4 + wsock32 ) + + ## Set wxWidgets library in WXWINDOWS_LIBRARIES + SET(WXWINDOWS_LIBRARIES + ${CMAKE_WXWINDOWS_COMMON_LIBRARIES} + ${WXWINDOWS_STATIC_DEBUG_LIBS} + ${WXWINDOWS_STATIC_RELEASE_LIBS} ) + + ## Find include directory + SET (WXWINDOWS_POSSIBLE_INCLUDE_PATHS + "${WXWIDGETS_PATH_ROOT}/include" ) + + FIND_PATH(WXWIDGETS_INCLUDE_DIR wx/wx.h + ${WXWINDOWS_POSSIBLE_INCLUDE_PATHS} ) + + ## Blank the setup.h dir when this is not found + IF (NOT WXWINDOWS_INCLUDE_DIR_SETUPH) + SET(WXWINDOWS_INCLUDE_DIR_SETUPH "") + ENDIF (NOT WXWINDOWS_INCLUDE_DIR_SETUPH) + + ## Set include paths + SET(WXWINDOWS_INCLUDE_DIR + ${WXWIDGETS_INCLUDE_DIR} + ${WXWINDOWS_INCLUDE_DIR_SETUPH} ) + + IF(WX_LINK_AGAINST_UNICODE) + SET(WX_UNICODE_FLAGS " -DUNICODE=1" ) + ELSE(WX_LINK_AGAINST_UNICODE) + SET(WX_UNICODE_FLAGS "" ) + ENDIF(WX_LINK_AGAINST_UNICODE) + + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}${WX_UNICODE_FLAGS} -D__WXDEBUG__ -D__WXMSW__ -DWINVER=0x0400 -DwxUSE_BASE=1") + + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}${WX_UNICODE_FLAGS} -D__WXMSW__ -DWINVER=0x0400 -DwxUSE_BASE=1" ) + + ## TODO: Once these tags work, this is more efficient + ##ADD_DEFINITIONS(debug ) + ##ADD_DEFINITIONS(-D__WXMSW__ -DWINVER=0x0400 -DwxUSE_BASE=1 ) + + MARK_AS_ADVANCED( + WXWIDGETS_INCLUDE_DIR + WXWIDGETS_PATH_MONOLIB_DEBUG + WXWIDGETS_PATH_MONOLIB_RELEASE + WXWIDGETS_PATH_ROOT + WXWINDOWS_INCLUDE_DIR_SETUPH ) + + IF(WXWINDOWS_LINK_DIRECTORIES AND WXWINDOWS_LIBRARIES AND WXWINDOWS_INCLUDE_DIR) + SET(WXWINDOWS_FOUND 1) + ENDIF(WXWINDOWS_LINK_DIRECTORIES AND WXWINDOWS_LIBRARIES AND WXWINDOWS_INCLUDE_DIR) + +ELSE( WIN32 ) + + FIND_PROGRAM( CMAKE_WX_CONFIG wx-config ../wx/bin ../../wx/bin ) + IF(CMAKE_WX_CONFIG) + SET(WXWINDOWS_FOUND 1) + # run the config program to get cxxflags + EXEC_PROGRAM(${CMAKE_WX_CONFIG} ARGS --cxxflags OUTPUT_VARIABLE + CMAKE_WX_CXX_FLAGS RETURN_VALUE RET1) + # run the config program to get the libs + EXEC_PROGRAM(${CMAKE_WX_CONFIG} ARGS --libs OUTPUT_VARIABLE + WXWINDOWS_LIBRARIES_TMP RETURN_VALUE RET2) + # for libraries break things up into a ; separated variable + SEPARATE_ARGUMENTS(WXWINDOWS_LIBRARIES_TMP) + SET(LAST_FRAME 0) + # now put the stuff back into WXWINDOWS_LIBRARIES + # but combine all the -framework foo arguments back together + FOREACH(arg ${WXWINDOWS_LIBRARIES_TMP}) + IF(${arg} MATCHES "-framework") + SET(LAST_FRAME 1) + ELSE(${arg} MATCHES "-framework") + # not a -framework argument + IF(LAST_FRAME) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} "-framework ${arg}") + SET(LAST_FRAME 0) + ELSE(LAST_FRAME) + SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} ${arg}) + ENDIF(LAST_FRAME) + ENDIF(${arg} MATCHES "-framework") + ENDFOREACH(arg) + ENDIF(CMAKE_WX_CONFIG) + + + ## extract linkdirs (-L) for rpath + ## use regular expression to match wildcard equivalent "-L*" + ## with is a space or a semicolon + STRING(REGEX MATCHALL "[-][L]([^ ;])+" WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX "${WX_CONFIG_LIBS}" ) + #MESSAGE("DBG WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX=${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX}") + + ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES + ## replace -L by ; because the separator seems to be lost otherwise (bug or + ## feature?) + IF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX) + STRING(REGEX REPLACE "[-][L]" ";" WXWINDOWS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX} ) + #MESSAGE("DBG WXWINDOWS_LINK_DIRECTORIES=${WXWINDOWS_LINK_DIRECTORIES}") + ENDIF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX) + + ## replace space separated string by semicolon separated vector to make it + ## work with LINK_DIRECTORIES + SEPARATE_ARGUMENTS(WXWINDOWS_LINK_DIRECTORIES) + + IF( CYGWIN OR MINGW ) + GET_FILENAME_COMPONENT(WXWINDOWS_INSTALL_PATH ${CMAKE_WX_CONFIG} PATH) + SET( WXWINDOWS_INSTALL_PATH ${WXWINDOWS_INSTALL_PATH}/.. ) + SET( WXWINDOWS_RC ${WXWINDOWS_INSTALL_PATH}/include/wx/msw/wx.rc ) + ELSE( CYGWIN OR MINGW ) + SET( WXWINDOWS_RC "" ) + ENDIF( CYGWIN OR MINGW ) + SET( WIN32GUI "" ) + + #keep debug settings as indicated by wx-config + #SET( WXWINDOWS_DEFINITIONS ${WXWINDOWS_DEFINITIONS} "${CMAKE_WX_CXX_FLAGS}" ) + #IF( WXWINDOWS_USE_DEBUG ) + # SET( WXWINDOWS_DEFINITIONS ${WXWINDOWS_DEFINITIONS} -ggdb ) + #ENDIF( WXWINDOWS_USE_DEBUG ) + + IF( CYGWIN OR MINGW ) + IF( CYGWIN ) + SET( WXWINDOWS_DEFINITIONS ${WXWINDOWS_DEFINITIONS} -D__GNUWIN32__ -O2 -D_WIN32_IE=0x400 -MMD -Wall ) + ENDIF( CYGWIN ) + ELSE( CYGWIN OR MINGW ) + # just in case `gtk-config --cflags`does not work + # SET( WXWINDOWS_INCLUDE_DIR ${WXWINDOWS_INCLUDE_DIR} /usr/include/gtk-2.0 /usr/include/gtk-2.0/include /usr/lib/gtk-2.0/include /usr/include/glib-2.0 /usr/lib/glib-2.0/include /usr/include/pango-1.0 /usr/include/atk-1.0 ) + # What about FindGTK.cmake? and what if somebody uses wxMotif? + IF(NOT APPLE) + SET( CMAKE_WX_CXX_FLAGS "${CMAKE_WX_CXX_FLAGS} `gtk-config --cflags`" ) + #find Xwindows + INCLUDE( ${CMAKE_ROOT}/Modules/FindX11.cmake ) + SET( WXWINDOWS_INCLUDE_DIR ${WXWINDOWS_INCLUDE_DIR} ${X11_INCLUDE_DIR} ) + ENDIF(NOT APPLE) + ENDIF( CYGWIN OR MINGW ) + +ENDIF( WIN32 ) + +MARK_AS_ADVANCED( + CMAKE_WX_CXX_FLAGS +) + +#MESSAGE( "${WXWINDOWS_LINK_DIRECTORIES}" ) +#MESSAGE( "${WXWINDOWS_LIBRARIES}" ) +#MESSAGE( "CMAKE_WX_CXX_FLAGS}" ) +#MESSAGE( "WXWINDOWS_INCLUDE_PATH}" ) +#MESSAGE( "WXWINDOWS_INCLUDE_DIR}" ) +#MESSAGE( "WXWINDOWS_DEFINITIONS}" ) diff --git a/CMakeLua/Source/WXDialog/bin/UsewxW.cmake b/CMakeLua/Source/WXDialog/bin/UsewxW.cmake new file mode 100644 index 0000000..702ab9d --- /dev/null +++ b/CMakeLua/Source/WXDialog/bin/UsewxW.cmake @@ -0,0 +1,80 @@ + +MESSAGE("${CMAKE_CURRENT_FILE} is deprecated, please use FindwxWidgets.cmake instead.") + + +# +# UsewxW.cmake +# v1.0 2005-05-27 +# Jerry Fath 2005 +# Based on work by Jorgen Bodde +# + +# +# wxWidgets CMake helper +# + +# These project specific variables should be set before including this file +#PROJECT_NAME +#PROJECT_SOURCE_FILES +#PROJECT_SOURCE_DIR +#PROJECT_BINARY_DIR +# These variables can be set to add addition directories, libraries, and definitions +#PROJECT_DEFINITIONS +#PROJECT_INCLUDE_PATH +#PROJECT_LINK_DIRECTORIES +#PROJECT_LIBRARIES + +#These WX specific variable should be set by FindwxW.cmake before including this file +# WXWIDGETS_LINK_DIRECTORIES = link directories, useful for rpath on Unix +# WXWIDGETS_LIBRARIES = all the wxWindows libraries ( and linker flags on unix ) +# WXWIDGETS_CXX_FLAGS = compiler flags for building wxWindows +# WXWIDGETS_INCLUDE_DIR = all include path of wxWindows +# WXWIDGETS_DEFINITIONS = all flags of wxWindows + + +# +# The flags for the compiler are stored in WXWIDGETS_CXX_FLAGS, we will set those so that +# we know we will always compile wxWidgets programs properly. In case of debugging, we +# will add the __WXDEBUG__ and WXDEBUG flags as well. For linux, you might want LINUX +# to be defined. +# +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${WXWIDGETS_CXX_FLAGS}") + +ADD_DEFINITIONS( ${WXWIDGETS_DEFINITIONS} ${PROJECT_DEFINITIONS} ) + +# +# The include dirs +# +INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR} + ${PROJECT_INCLUDE_PATH} + ${WXWIDGETS_INCLUDE_DIR}) + +# +# This is needed to tell CMake what directories contain the libraries we need. This will +# allow us to just specify the lib files without prepending them with a full path to that +# library +# +LINK_DIRECTORIES( ${WXWIDGETS_LINK_DIRECTORIES} ${PROJECT_LINK_DIRECTORIES}) + +# +# This is our target. As you can see, we specify WIN32 for windows makefiles. In Linux and +# other OS'es this flag is ignored. Under windows it will make sure we generate a Win32 file with GUI. +# +ADD_EXECUTABLE(${PROJECT_NAME} WIN32 ${PROJECT_SOURCE_FILES} ${PROJECT_RC_FILE}) + +# +# Here we specify what libraries are linked to our project +# +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${WXWIDGETS_LIBRARIES} ${PROJECT_LIBRARIES}) + +# +# Log results +# +FILE( WRITE "${PROJECT_BINARY_DIR}/usewxw.log" "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/usewxw.log" "Definitions: ${WXWIDGETS_DEFINITIONS} ${PROJECT_DEFINITIONS}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/usewxw.log" "INCLUDE_DIRECTORIES: ${PROJECT_SOURCE_DIR} ${PROJECT_INCLUDE_PATH} ${WXWIDGETS_INCLUDE_DIR}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/usewxw.log" "LINK_DIRECTORIES: ${WXWIDGETS_LINK_DIRECTORIES} ${PROJECT_LINK_DIRECTORIES}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/usewxw.log" "TARGET_LINK_LIBRARIES: ${PROJECT_NAME} ${WXWIDGETS_LIBRARIES} ${PROJECT_LIBRARIES}\n" ) +FILE( APPEND "${PROJECT_BINARY_DIR}/usewxw.log" "Sources: ${PROJECT_SOURCE_FILES}\n" ) + + diff --git a/CMakeLua/Source/WXDialog/changelog.txt b/CMakeLua/Source/WXDialog/changelog.txt new file mode 100644 index 0000000..3f94d0e --- /dev/null +++ b/CMakeLua/Source/WXDialog/changelog.txt @@ -0,0 +1,22 @@ +Changes for new CMakeSetup dialog (v0.9) +- Cancel button on progress dialog now cancels the process +- Generator cannot be chosen anymore after there are cache items (this is pointless anyway) +- Drop target on grid (a folder) will load this in the build path and load up the cache +- Deletion of cache before something is generated, will ask the user if this is what he/she wants +- Reloading of cache added, after deleting cache items (and it was a mistake, a reload can bring it back to previous state) +- Added a search query. Typing a substring will narrow the search. When ENTER is pressed the substring is stored in the search query history for easy lookup +- Added a message display window, that will show all messages for easy copy-pasting and reference. This also obsoleted the "stop reporting errors" option +- A status percentage is shown in the task bar (when configuring, next to the configure window) +- Added menu bar with most common options (reload cache, delete cache, options, about etc) +- Added browse option in context menu on grid. Blue and green items are browsable (paths and files) +- Added about dialog +- Added options dialog (for future options) +- OPTION cache items are now implemented as checkboxes instead of comboboxes. Easier to double click instead of figuring out if you want to go up or down for YES or NO +- Added XP look to window (XP manifest) +- Added progress dialog that shows configuration progress +- Closing of dialog can be postponed by SHIFT (when option "close after generation is done" is selected) +- Window position X, Y and size is remembered between sessions +- Added most recent used list, with 5 last used build directories for easy lookup +- Cache options for paths are colored blue, cache options for files are green, and the rest is black +- NOTFOUND entries are made bold for easy recognition +- The selected item is described in a seperate text box for easy reading instead of in the statusbar diff --git a/CMakeLua/Source/WXDialog/cmake_icon.gif b/CMakeLua/Source/WXDialog/cmake_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..ccf1f992e0a92692b3c8dcbb4de311ea3b4770dc GIT binary patch literal 892 zcwTe&bhEHbWif!py+H%Af<{fbs+bM diff --git a/CMakeLua/Source/WXDialog/cmakesetup.xml b/CMakeLua/Source/WXDialog/cmakesetup.xml new file mode 100644 index 0000000..e2dddf2 --- /dev/null +++ b/CMakeLua/Source/WXDialog/cmakesetup.xml @@ -0,0 +1,104 @@ + + diff --git a/CMakeLua/Source/WXDialog/config.h b/CMakeLua/Source/WXDialog/config.h new file mode 100644 index 0000000..cd3bb9a --- /dev/null +++ b/CMakeLua/Source/WXDialog/config.h @@ -0,0 +1,43 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: config.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef __CMAKE_CONFIG_H__ +#define __CMAKE_CONFIG_H__ + +#define CM_LASTPROJECT_PATH "LastProjectPath" // last project path for CMakeLists.txt in edit box +#define CM_LASTBUILD_PATH "LastBuildPath" // last build path for cache in edit box +#define CM_MAX_RECENT_PATHS 5 // max amount most recent used paths in menu +#define CM_MAX_SEARCH_QUERIES 10 // max amount of entries in search query window +#define CM_RECENT_BUILD_PATH "LastRecentPath" // will be enumerated like LastRecentPath0 LastRecentPath1 etc +#define CM_SEARCH_QUERY "SearchQuery" // will be enumerated like SearchQuery0 SearchQuery1 etc +#define CM_XSIZE "CMakeXSize" // x size of window +#define CM_YSIZE "CMakeYSize" // y size of window +#define CM_XPOS "CMakeXPos" // x pos of window +#define CM_YPOS "CMakeYPos" // y pos of window +#define CM_SPLITTERPOS "CMakeSplitterPos" // position of splitter window + +#define CM_CLOSEAFTERGEN "CMakeCloseAfterGenerate" // close CMake after succesful generation (old behaviour) +#define CM_CLOSEAFTERGEN_DEF false // inherit default false when not present + +#define CM_RECENT_BUILD_ITEM 10000 // ID of menu item for recent builds +#define CMAKEGUI_MAJORVER 0 // major build +#define CMAKEGUI_MINORVER 9 // minor build +#define CMAKEGUI_ADDVER "b" // postfix (beta, alpha, none) + +#endif diff --git a/CMakeLua/Source/WXDialog/optionsdlg.cpp b/CMakeLua/Source/WXDialog/optionsdlg.cpp new file mode 100644 index 0000000..9348bbf --- /dev/null +++ b/CMakeLua/Source/WXDialog/optionsdlg.cpp @@ -0,0 +1,199 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: optionsdlg.cpp,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma implementation "optionsdlg.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +////@begin includes +////@end includes + +#include "optionsdlg.h" + +////@begin XPM images +////@end XPM images + +/*! + * CMOptionsDlg type definition + */ + +IMPLEMENT_DYNAMIC_CLASS( CMOptionsDlg, wxDialog ) + +/*! + * CMOptionsDlg event table definition + */ + +BEGIN_EVENT_TABLE( CMOptionsDlg, wxDialog ) + +////@begin CMOptionsDlg event table entries + EVT_CHECKBOX( ID_CHECKBOX_CLOSECMAKE, CMOptionsDlg::OnButtonOK ) + +////@end CMOptionsDlg event table entries + +END_EVENT_TABLE() + +/*! + * CMOptionsDlg constructors + */ + +CMOptionsDlg::CMOptionsDlg( ) +{ +} + +CMOptionsDlg::CMOptionsDlg( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ + Create(parent, id, caption, pos, size, style); +} + +/*! + * CMOptionsDlg creator + */ + +bool CMOptionsDlg::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ +////@begin CMOptionsDlg member initialisation + m_closeAfterGenerate = NULL; +////@end CMOptionsDlg member initialisation + +////@begin CMOptionsDlg creation + SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); + wxDialog::Create( parent, id, caption, pos, size, style ); + + CreateControls(); + Centre(); +////@end CMOptionsDlg creation + return TRUE; +} + +/*! + * Control creation for CMOptionsDlg + */ + +void CMOptionsDlg::CreateControls() +{ +////@begin CMOptionsDlg content construction + CMOptionsDlg* itemDialog1 = this; + + wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); + itemDialog1->SetSizer(itemBoxSizer2); + + wxNotebook* itemNotebook3 = new wxNotebook( itemDialog1, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxNB_TOP ); + + wxPanel* itemPanel4 = new wxPanel( itemNotebook3, ID_PANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL); + itemPanel4->SetSizer(itemBoxSizer5); + + itemBoxSizer5->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + + m_closeAfterGenerate = new wxCheckBox( itemPanel4, ID_CHECKBOX_CLOSECMAKE, _("Close down CMakeSetup after generation of project"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); + m_closeAfterGenerate->SetValue(FALSE); + itemBoxSizer5->Add(m_closeAfterGenerate, 0, wxALIGN_LEFT|wxALL, 5); + + itemNotebook3->AddPage(itemPanel4, _("General")); + + itemBoxSizer2->Add(itemNotebook3, 1, wxGROW|wxALL|wxFIXED_MINSIZE, 5); + + wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL); + itemBoxSizer2->Add(itemBoxSizer8, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxBOTTOM, 5); + + wxButton* itemButton9 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer8->Add(itemButton9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + wxButton* itemButton10 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer8->Add(itemButton10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + +////@end CMOptionsDlg content construction +} + +/*! + * Should we show tooltips? + */ + +bool CMOptionsDlg::ShowToolTips() +{ + return TRUE; +} + +/*! + * Get bitmap resources + */ + +wxBitmap CMOptionsDlg::GetBitmapResource( const wxString& name ) +{ + // Bitmap retrieval +////@begin CMOptionsDlg bitmap retrieval + return wxNullBitmap; +////@end CMOptionsDlg bitmap retrieval +} + +/*! + * Get icon resources + */ + +wxIcon CMOptionsDlg::GetIconResource( const wxString& name ) +{ + // Icon retrieval +////@begin CMOptionsDlg icon retrieval + return wxNullIcon; +////@end CMOptionsDlg icon retrieval +} + +void CMOptionsDlg::SetConfig(wxConfig *cfg) +{ + bool boolval; + + // close after generation + cfg->Read(CM_CLOSEAFTERGEN, &boolval, CM_CLOSEAFTERGEN_DEF); + m_closeAfterGenerate->SetValue(boolval); +} + +void CMOptionsDlg::GetConfig(wxConfig *cfg) +{ + // close after generation + cfg->Write(CM_CLOSEAFTERGEN, m_closeAfterGenerate->GetValue()); +} + +/*! + * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_CLOSECMAKE + */ + +void CMOptionsDlg::OnButtonOK( wxCommandEvent& event ) +{ +////@begin wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_CLOSECMAKE in CMOptionsDlg. + // Before editing this code, remove the block markers. + event.Skip(); +////@end wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_CLOSECMAKE in CMOptionsDlg. +} + + + + + + diff --git a/CMakeLua/Source/WXDialog/optionsdlg.h b/CMakeLua/Source/WXDialog/optionsdlg.h new file mode 100644 index 0000000..78586ca --- /dev/null +++ b/CMakeLua/Source/WXDialog/optionsdlg.h @@ -0,0 +1,125 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: optionsdlg.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef _OPTIONSDLG_H_ +#define _OPTIONSDLG_H_ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "optionsdlg.cpp" +#endif + +/*! + * Includes + */ + +////@begin includes +#include "wx/notebook.h" +////@end includes + +#include +#include "config.h" + +/*! + * Forward declarations + */ + +////@begin forward declarations +////@end forward declarations + +/*! + * Control identifiers + */ + +////@begin control identifiers +#define ID_DIALOG 10004 +#define SYMBOL_CMOPTIONSDLG_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX +#define SYMBOL_CMOPTIONSDLG_TITLE _("CMakeSetup Options ...") +#define SYMBOL_CMOPTIONSDLG_IDNAME ID_DIALOG +#define SYMBOL_CMOPTIONSDLG_SIZE wxSize(400, 300) +#define SYMBOL_CMOPTIONSDLG_POSITION wxDefaultPosition +#define ID_NOTEBOOK 10006 +#define ID_PANEL 10007 +#define ID_CHECKBOX_CLOSECMAKE 10008 +////@end control identifiers + +/*! + * Compatibility + */ + +#ifndef wxCLOSE_BOX +#define wxCLOSE_BOX 0x1000 +#endif +#ifndef wxFIXED_MINSIZE +#define wxFIXED_MINSIZE 0 +#endif + +/*! + * CMOptionsDlg class declaration + */ + +class CMOptionsDlg: public wxDialog +{ + DECLARE_DYNAMIC_CLASS( CMOptionsDlg ) + DECLARE_EVENT_TABLE() + +public: + /// Constructors + CMOptionsDlg( ); + CMOptionsDlg( wxWindow* parent, wxWindowID id = SYMBOL_CMOPTIONSDLG_IDNAME, const wxString& caption = SYMBOL_CMOPTIONSDLG_TITLE, const wxPoint& pos = SYMBOL_CMOPTIONSDLG_POSITION, const wxSize& size = SYMBOL_CMOPTIONSDLG_SIZE, long style = SYMBOL_CMOPTIONSDLG_STYLE ); + + /// Creation + bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CMOPTIONSDLG_IDNAME, const wxString& caption = SYMBOL_CMOPTIONSDLG_TITLE, const wxPoint& pos = SYMBOL_CMOPTIONSDLG_POSITION, const wxSize& size = SYMBOL_CMOPTIONSDLG_SIZE, long style = SYMBOL_CMOPTIONSDLG_STYLE ); + + /// Creates the controls and sizers + void CreateControls(); + +////@begin CMOptionsDlg event handler declarations + + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_CLOSECMAKE + void OnButtonOK( wxCommandEvent& event ); + +////@end CMOptionsDlg event handler declarations + +////@begin CMOptionsDlg member function declarations + + /// Retrieves bitmap resources + wxBitmap GetBitmapResource( const wxString& name ); + + /// Retrieves icon resources + wxIcon GetIconResource( const wxString& name ); +////@end CMOptionsDlg member function declarations + + /// Should we show tooltips? + static bool ShowToolTips(); + + // write values from config to GUI controls + void SetConfig(wxConfig *cfg); + + // write GUI controls back to config + void GetConfig(wxConfig *cfg); + +private: + +////@begin CMOptionsDlg member variables + wxCheckBox* m_closeAfterGenerate; +////@end CMOptionsDlg member variables +}; + +#endif + // _OPTIONSDLG_H_ diff --git a/CMakeLua/Source/WXDialog/progressdlg.cpp b/CMakeLua/Source/WXDialog/progressdlg.cpp new file mode 100644 index 0000000..4a34a07 --- /dev/null +++ b/CMakeLua/Source/WXDialog/progressdlg.cpp @@ -0,0 +1,177 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: progressdlg.cpp,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma implementation "progressdlg.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +////@begin includes +////@end includes + +#include "progressdlg.h" + +////@begin XPM images +////@end XPM images + +/*! + * CMProgressDialog type definition + */ + +IMPLEMENT_DYNAMIC_CLASS( CMProgressDialog, wxDialog ) + +/*! + * CMProgressDialog event table definition + */ + +BEGIN_EVENT_TABLE( CMProgressDialog, wxDialog ) + +////@begin CMProgressDialog event table entries + EVT_BUTTON( ID_CMAKE_BUTTON, CMProgressDialog::OnCmakeCancelClick ) + +////@end CMProgressDialog event table entries + +END_EVENT_TABLE() + +/*! + * CMProgressDialog constructors + */ + +CMProgressDialog::CMProgressDialog( ) +{ +} + +CMProgressDialog::CMProgressDialog( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ + Create(parent, id, caption, pos, size, style); +} + +/*! + * CMProgressDialog creator + */ + +bool CMProgressDialog::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ +////@begin CMProgressDialog member initialisation + m_textMessage = NULL; + m_progress = NULL; +////@end CMProgressDialog member initialisation + +////@begin CMProgressDialog creation + SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); + wxDialog::Create( parent, id, caption, pos, size, style ); + + CreateControls(); + GetSizer()->Fit(this); + GetSizer()->SetSizeHints(this); + Centre(); +////@end CMProgressDialog creation + + m_cancelPressed = false; + m_cancelling = false; + + return TRUE; +} + +/*! + * Control creation for CMProgressDialog + */ + +void CMProgressDialog::CreateControls() +{ +////@begin CMProgressDialog content construction + CMProgressDialog* itemDialog1 = this; + + wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); + itemDialog1->SetSizer(itemBoxSizer2); + + itemBoxSizer2->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + + m_textMessage = new wxStaticText( itemDialog1, wxID_STATIC, _("Please wait while CMake configures ..."), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer2->Add(m_textMessage, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5); + + wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL); + itemBoxSizer2->Add(itemBoxSizer5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + + m_progress = new wxGauge( itemDialog1, ID_CMAKE_PROGRESS, 100, wxDefaultPosition, wxSize(250, 20), wxGA_HORIZONTAL ); + m_progress->SetValue(0); + itemBoxSizer5->Add(m_progress, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + wxButton* itemButton7 = new wxButton( itemDialog1, ID_CMAKE_BUTTON, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer2->Add(itemButton7, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + + itemBoxSizer2->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxTOP, 5); + +////@end CMProgressDialog content construction +} + +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CMAKE_BUTTON + */ + +void CMProgressDialog::OnCmakeCancelClick( wxCommandEvent& event ) +{ + m_cancelPressed = true; +} + +/*! + * Should we show tooltips? + */ + +bool CMProgressDialog::ShowToolTips() +{ + return TRUE; +} + +/*! + * Get bitmap resources + */ + +wxBitmap CMProgressDialog::GetBitmapResource( const wxString& name ) +{ + // Bitmap retrieval +////@begin CMProgressDialog bitmap retrieval + return wxNullBitmap; +////@end CMProgressDialog bitmap retrieval +} + +/*! + * Get icon resources + */ + +wxIcon CMProgressDialog::GetIconResource( const wxString& name ) +{ + // Icon retrieval +////@begin CMProgressDialog icon retrieval + return wxNullIcon; +////@end CMProgressDialog icon retrieval +} + + + diff --git a/CMakeLua/Source/WXDialog/progressdlg.h b/CMakeLua/Source/WXDialog/progressdlg.h new file mode 100644 index 0000000..02af926 --- /dev/null +++ b/CMakeLua/Source/WXDialog/progressdlg.h @@ -0,0 +1,139 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile: progressdlg.h,v $ + Language: C++ + Date: $Date: 2005/06/30 19:54:14 $ + Version: $Revision: 1.1 $ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef _PROGRESSDLG_H_ +#define _PROGRESSDLG_H_ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "progressdlg.cpp" +#endif + +/*! + * Includes + */ + +////@begin includes +////@end includes + +/*! + * Forward declarations + */ + +////@begin forward declarations +////@end forward declarations + +/*! + * Control identifiers + */ + +////@begin control identifiers +#define ID_PROGRESSDLG 10000 +#define SYMBOL_CMPROGRESSDIALOG_STYLE wxRAISED_BORDER +#define SYMBOL_CMPROGRESSDIALOG_TITLE _("Progress Dialog") +#define SYMBOL_CMPROGRESSDIALOG_IDNAME ID_PROGRESSDLG +#define SYMBOL_CMPROGRESSDIALOG_SIZE wxSize(400, 300) +#define SYMBOL_CMPROGRESSDIALOG_POSITION wxDefaultPosition +#define ID_CMAKE_PROGRESS 10001 +#define ID_CMAKE_BUTTON 10002 +////@end control identifiers + +/*! + * Compatibility + */ + +#ifndef wxCLOSE_BOX +#define wxCLOSE_BOX 0x1000 +#endif +#ifndef wxFIXED_MINSIZE +#define wxFIXED_MINSIZE 0 +#endif + +/*! + * CMProgressDialog class declaration + */ + +class CMProgressDialog: public wxDialog +{ + DECLARE_DYNAMIC_CLASS( CMProgressDialog ) + DECLARE_EVENT_TABLE() + +public: + /// Constructors + CMProgressDialog( ); + CMProgressDialog( wxWindow* parent, wxWindowID id = SYMBOL_CMPROGRESSDIALOG_IDNAME, const wxString& caption = SYMBOL_CMPROGRESSDIALOG_TITLE, const wxPoint& pos = SYMBOL_CMPROGRESSDIALOG_POSITION, const wxSize& size = SYMBOL_CMPROGRESSDIALOG_SIZE, long style = SYMBOL_CMPROGRESSDIALOG_STYLE ); + + /// Creation + bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CMPROGRESSDIALOG_IDNAME, const wxString& caption = SYMBOL_CMPROGRESSDIALOG_TITLE, const wxPoint& pos = SYMBOL_CMPROGRESSDIALOG_POSITION, const wxSize& size = SYMBOL_CMPROGRESSDIALOG_SIZE, long style = SYMBOL_CMPROGRESSDIALOG_STYLE ); + + /// Creates the controls and sizers + void CreateControls(); + + void SetProgress(float progress) { + m_progress->SetValue((int)(progress * 100)); + }; + +////@begin CMProgressDialog event handler declarations + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CMAKE_BUTTON + void OnCmakeCancelClick( wxCommandEvent& event ); + +////@end CMProgressDialog event handler declarations + +////@begin CMProgressDialog member function declarations + + /// Retrieves bitmap resources + wxBitmap GetBitmapResource( const wxString& name ); + + /// Retrieves icon resources + wxIcon GetIconResource( const wxString& name ); +////@end CMProgressDialog member function declarations + + /// Should we show tooltips? + static bool ShowToolTips(); + + bool CancelPressed() const { + return m_cancelPressed; + }; + + void CancelAcknowledged() { + m_cancelling = true; + }; + + bool IsCancelling() const { + return m_cancelling; + }; + + void ResetCancel() { + m_cancelling = false; + m_cancelPressed = false; + }; + +////@begin CMProgressDialog member variables + wxStaticText* m_textMessage; + wxGauge* m_progress; +////@end CMProgressDialog member variables + +private: + bool m_cancelPressed; + bool m_cancelling; + +}; + +#endif + // _PROGRESSDLG_H_ diff --git a/CMakeLua/Source/cmAddCustomCommandCommand.cxx b/CMakeLua/Source/cmAddCustomCommandCommand.cxx new file mode 100644 index 0000000..7c74bf7 --- /dev/null +++ b/CMakeLua/Source/cmAddCustomCommandCommand.cxx @@ -0,0 +1,378 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddCustomCommandCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:22:10 $ + Version: $Revision: 1.37 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddCustomCommandCommand.h" + +#include "cmTarget.h" + +#include "cmSourceFile.h" + +// cmAddCustomCommandCommand +bool cmAddCustomCommandCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + /* Let's complain at the end of this function about the lack of a particular + arg. For the moment, let's say that COMMAND, and either TARGET or SOURCE + are required. + */ + if (args.size() < 4) + { + this->SetError("called with wrong number of arguments."); + return false; + } + + std::string source, target, main_dependency, working; + std::string comment_buffer; + const char* comment = 0; + std::vector depends, outputs, output; + bool verbatim = false; + bool append = false; + std::string implicit_depends_lang; + cmCustomCommand::ImplicitDependsList implicit_depends; + + // Accumulate one command line at a time. + cmCustomCommandLine currentLine; + + // Save all command lines. + cmCustomCommandLines commandLines; + + cmTarget::CustomCommandType cctype = cmTarget::POST_BUILD; + + enum tdoing { + doing_source, + doing_command, + doing_target, + doing_depends, + doing_implicit_depends_lang, + doing_implicit_depends_file, + doing_main_dependency, + doing_output, + doing_outputs, + doing_comment, + doing_working_directory, + doing_nothing + }; + + tdoing doing = doing_nothing; + + for (unsigned int j = 0; j < args.size(); ++j) + { + std::string const& copy = args[j]; + + if(copy == "SOURCE") + { + doing = doing_source; + } + else if(copy == "COMMAND") + { + doing = doing_command; + + // Save the current command before starting the next command. + if(!currentLine.empty()) + { + commandLines.push_back(currentLine); + currentLine.clear(); + } + } + else if(copy == "PRE_BUILD") + { + cctype = cmTarget::PRE_BUILD; + } + else if(copy == "PRE_LINK") + { + cctype = cmTarget::PRE_LINK; + } + else if(copy == "POST_BUILD") + { + cctype = cmTarget::POST_BUILD; + } + else if(copy == "VERBATIM") + { + verbatim = true; + } + else if(copy == "APPEND") + { + append = true; + } + else if(copy == "TARGET") + { + doing = doing_target; + } + else if(copy == "ARGS") + { + // Ignore this old keyword. + } + else if (copy == "DEPENDS") + { + doing = doing_depends; + } + else if (copy == "OUTPUTS") + { + doing = doing_outputs; + } + else if (copy == "OUTPUT") + { + doing = doing_output; + } + else if (copy == "WORKING_DIRECTORY") + { + doing = doing_working_directory; + } + else if (copy == "MAIN_DEPENDENCY") + { + doing = doing_main_dependency; + } + else if (copy == "IMPLICIT_DEPENDS") + { + doing = doing_implicit_depends_lang; + } + else if (copy == "COMMENT") + { + doing = doing_comment; + } + else + { + std::string filename; + switch (doing) + { + case doing_output: + case doing_outputs: + if (!cmSystemTools::FileIsFullPath(copy.c_str())) + { + // This is an output to be generated, so it should be + // under the build tree. CMake 2.4 placed this under the + // source tree. However the only case that this change + // will break is when someone writes + // + // add_custom_command(OUTPUT out.txt ...) + // + // and later references "${CMAKE_CURRENT_SOURCE_DIR}/out.txt". + // This is fairly obscure so we can wait for someone to + // complain. + filename = this->Makefile->GetCurrentOutputDirectory(); + filename += "/"; + } + filename += copy; + break; + case doing_source: + // We do not want to convert the argument to SOURCE because + // that option is only available for backward compatibility. + // Old-style use of this command may use the SOURCE==TARGET + // trick which we must preserve. If we convert the source + // to a full path then it will no longer equal the target. + default: + break; + } + + switch (doing) + { + case doing_working_directory: + working = copy; + break; + case doing_source: + source = copy; + break; + case doing_output: + output.push_back(filename); + break; + case doing_main_dependency: + main_dependency = copy; + break; + case doing_implicit_depends_lang: + implicit_depends_lang = copy; + doing = doing_implicit_depends_file; + break; + case doing_implicit_depends_file: + { + // An implicit dependency starting point is also an + // explicit dependency. + depends.push_back(copy); + + // Add the implicit dependency language and file. + cmCustomCommand::ImplicitDependsPair + entry(implicit_depends_lang, copy); + implicit_depends.push_back(entry); + + // Switch back to looking for a language. + doing = doing_implicit_depends_lang; + } + break; + case doing_command: + currentLine.push_back(copy); + break; + case doing_target: + target = copy; + break; + case doing_depends: + depends.push_back(copy); + break; + case doing_outputs: + outputs.push_back(filename); + break; + case doing_comment: + comment_buffer = copy; + comment = comment_buffer.c_str(); + break; + default: + this->SetError("Wrong syntax. Unknown type of argument."); + return false; + } + } + } + + // Store the last command line finished. + if(!currentLine.empty()) + { + commandLines.push_back(currentLine); + currentLine.clear(); + } + + // At this point we could complain about the lack of arguments. For + // the moment, let's say that COMMAND, TARGET are always required. + if(output.empty() && target.empty()) + { + this->SetError("Wrong syntax. A TARGET or OUTPUT must be specified."); + return false; + } + + if(source.empty() && !target.empty() && !output.empty()) + { + this->SetError( + "Wrong syntax. A TARGET and OUTPUT can not both be specified."); + return false; + } + if(append && output.empty()) + { + this->SetError("given APPEND option with no OUTPUT."); + return false; + } + + // Make sure the output names and locations are safe. + if(!this->CheckOutputs(output) || !this->CheckOutputs(outputs)) + { + return false; + } + + // Check for an append request. + if(append) + { + // Lookup an existing command. + if(cmSourceFile* sf = + this->Makefile->GetSourceFileWithOutput(output[0].c_str())) + { + if(cmCustomCommand* cc = sf->GetCustomCommand()) + { + cc->AppendCommands(commandLines); + cc->AppendDepends(depends); + cc->AppendImplicitDepends(implicit_depends); + return true; + } + } + + // No command for this output exists. + cmOStringStream e; + e << "given APPEND option with output \"" << output[0].c_str() + << "\" which is not already a custom command output."; + this->SetError(e.str().c_str()); + return false; + } + + // Choose which mode of the command to use. + bool escapeOldStyle = !verbatim; + if(source.empty() && output.empty()) + { + // Source is empty, use the target. + std::vector no_depends; + this->Makefile->AddCustomCommandToTarget(target.c_str(), no_depends, + commandLines, cctype, + comment, working.c_str(), + escapeOldStyle); + } + else if(target.empty()) + { + // Target is empty, use the output. + this->Makefile->AddCustomCommandToOutput(output, depends, + main_dependency.c_str(), + commandLines, comment, + working.c_str(), false, + escapeOldStyle); + + // Add implicit dependency scanning requests if any were given. + if(!implicit_depends.empty()) + { + bool okay = false; + if(cmSourceFile* sf = + this->Makefile->GetSourceFileWithOutput(output[0].c_str())) + { + if(cmCustomCommand* cc = sf->GetCustomCommand()) + { + okay = true; + cc->SetImplicitDepends(implicit_depends); + } + } + if(!okay) + { + cmOStringStream e; + e << "could not locate source file with a custom command producing \"" + << output[0] << "\" even though this command tried to create it!"; + this->SetError(e.str().c_str()); + return false; + } + } + } + else + { + // Use the old-style mode for backward compatibility. + this->Makefile->AddCustomCommandOldStyle(target.c_str(), outputs, depends, + source.c_str(), commandLines, + comment); + } + + return true; +} + +//---------------------------------------------------------------------------- +bool +cmAddCustomCommandCommand +::CheckOutputs(const std::vector& outputs) +{ + for(std::vector::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) + { + // Make sure the file will not be generated into the source + // directory during an out of source build. + if(!this->Makefile->CanIWriteThisFile(o->c_str())) + { + std::string e = "attempted to have a file \"" + *o + + "\" in a source directory as an output of custom command."; + this->SetError(e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + + // Make sure the output file name has no invalid characters. + std::string::size_type pos = o->find_first_of("#<>"); + if(pos != o->npos) + { + cmOStringStream msg; + msg << "called with OUTPUT containing a \"" << (*o)[pos] + << "\". This character is not allowed."; + this->SetError(msg.str().c_str()); + return false; + } + } + return true; +} diff --git a/CMakeLua/Source/cmAddCustomCommandCommand.h b/CMakeLua/Source/cmAddCustomCommandCommand.h new file mode 100644 index 0000000..511c015 --- /dev/null +++ b/CMakeLua/Source/cmAddCustomCommandCommand.h @@ -0,0 +1,169 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddCustomCommandCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/30 16:22:10 $ + Version: $Revision: 1.33 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmAddCustomCommandCommand_h +#define cmAddCustomCommandCommand_h + +#include "cmCommand.h" + +/** \class cmAddCustomCommandCommand + * \brief + * + * cmAddCustomCommandCommand defines a new command (rule) that can + * be executed within the build process + * + */ + +class cmAddCustomCommandCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddCustomCommandCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "add_custom_command";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Add a custom build rule to the generated build system."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "There are two main signatures for add_custom_command " + "The first signature is for adding a custom command " + "to produce an output.\n" + " add_custom_command(OUTPUT output1 [output2 ...]\n" + " COMMAND command1 [ARGS] [args1...]\n" + " [COMMAND command2 [ARGS] [args2...] ...]\n" + " [MAIN_DEPENDENCY depend]\n" + " [DEPENDS [depends...]]\n" + " [IMPLICIT_DEPENDS depend1 ...]\n" + " [WORKING_DIRECTORY dir]\n" + " [COMMENT comment] [VERBATIM] [APPEND])\n" + "This defines a new command that can be executed during the build " + "process. The outputs named should be listed as source files in the " + "target for which they are to be generated. " + "If an output name is a relative path it will be interpreted " + "relative to the build tree directory corresponding to the current " + "source directory. " + "Note that MAIN_DEPENDENCY is completely optional and is " + "used as a suggestion to visual studio about where to hang the " + "custom command. In makefile terms this creates a new target in the " + "following form:\n" + " OUTPUT: MAIN_DEPENDENCY DEPENDS\n" + " COMMAND\n" + "If more than one command is specified they will be executed in order. " + "The optional ARGS argument is for backward compatibility and will be " + "ignored.\n" + "The second signature adds a custom command to a target " + "such as a library or executable. This is useful for " + "performing an operation before or after building the target. " + "The command becomes part of the target and will only execute " + "when the target itself is built. If the target is already built," + " the command will not execute.\n" + " add_custom_command(TARGET target\n" + " PRE_BUILD | PRE_LINK | POST_BUILD\n" + " COMMAND command1 [ARGS] [args1...]\n" + " [COMMAND command2 [ARGS] [args2...] ...]\n" + " [WORKING_DIRECTORY dir]\n" + " [COMMENT comment] [VERBATIM])\n" + "This defines a new command that will be associated with " + "building the specified target. When the command will " + "happen is determined by which of the following is specified:\n" + " PRE_BUILD - run before all other dependencies\n" + " PRE_LINK - run after other dependencies\n" + " POST_BUILD - run after the target has been built\n" + "Note that the PRE_BUILD option is only supported on Visual " + "Studio 7 or later. For all other generators PRE_BUILD " + "will be treated as PRE_LINK.\n" + "If WORKING_DIRECTORY is specified the command will be executed " + "in the directory given. " + "If COMMENT is set, the value will be displayed as a " + "message before the commands are executed at build time. " + "If APPEND is specified the COMMAND and DEPENDS option values " + "are appended to the custom command for the first output specified. " + "There must have already been a previous call to this command with " + "the same output. The COMMENT, WORKING_DIRECTORY, and MAIN_DEPENDENCY " + "options are currently ignored when APPEND is given, " + "but may be used in the future." + "\n" + "If VERBATIM is given then all the arguments to the commands will be " + "passed exactly as specified no matter the build tool used. " + "Note that one level of escapes is still used by the CMake language " + "processor before ADD_CUSTOM_TARGET even sees the arguments. " + "Use of VERBATIM is recommended as it enables correct behavior. " + "When VERBATIM is not given the behavior is platform specific. " + "In the future VERBATIM may be enabled by default. The only reason " + "it is an option is to preserve compatibility with older CMake code.\n" + "If the output of the custom command is not actually " + "created as a file on disk it should be marked as SYMBOLIC with " + "SET_SOURCE_FILES_PROPERTIES.\n" + + "The IMPLICIT_DEPENDS option requests scanning of implicit " + "dependencies of an input file. The language given specifies the " + "programming language whose corresponding dependency scanner should " + "be used. Currently only C and CXX language scanners are supported. " + "Dependencies discovered from the scanning are added to those of " + "the custom command at build time. Note that the IMPLICIT_DEPENDS " + "option is currently supported only for Makefile generators and " + "will be ignored by other generators." + "\n" + "If COMMAND specifies an executable target (created by " + "ADD_EXECUTABLE) it will automatically be replaced by the location " + "of the executable created at build time. Additionally a " + "target-level dependency will be added so that the executable target " + "will be built before any target using this custom command. However " + "this does NOT add a file-level dependency that would cause the " + "custom command to re-run whenever the executable is recompiled.\n" + + "If DEPENDS specifies any target (created by an ADD_* command) " + "a target-level dependency is created to make sure the target is " + "built before any target using this custom command. Additionally, " + "if the target is an executable or library a file-level dependency " + "is created to cause the custom command to re-run whenever the target " + "is recompiled.\n" + ; + } + + cmTypeMacro(cmAddCustomCommandCommand, cmCommand); +protected: + bool CheckOutputs(const std::vector& outputs); +}; + + +#endif diff --git a/CMakeLua/Source/cmAddCustomTargetCommand.cxx b/CMakeLua/Source/cmAddCustomTargetCommand.cxx new file mode 100644 index 0000000..e4f6951 --- /dev/null +++ b/CMakeLua/Source/cmAddCustomTargetCommand.cxx @@ -0,0 +1,168 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddCustomTargetCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.27 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddCustomTargetCommand.h" + +// cmAddCustomTargetCommand +bool cmAddCustomTargetCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Check the target name. + if(args[0].find_first_of("/\\") != args[0].npos) + { + int major = 0; + int minor = 0; + if(const char* versionValue = + this->Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY")) + { + sscanf(versionValue, "%d.%d", &major, &minor); + } + if(!major || major > 3 || (major == 2 && minor > 2)) + { + cmOStringStream e; + e << "called with invalid target name \"" << args[0] + << "\". Target names may not contain a slash. " + << "Use ADD_CUSTOM_COMMAND to generate files. " + << "Set CMAKE_BACKWARDS_COMPATIBILITY to 2.2 " + << "or lower to skip this check."; + this->SetError(e.str().c_str()); + return false; + } + } + + // Accumulate one command line at a time. + cmCustomCommandLine currentLine; + + // Save all command lines. + cmCustomCommandLines commandLines; + + // Accumulate dependencies. + std::vector depends; + std::string working_directory; + bool verbatim = false; + std::string comment_buffer; + const char* comment = 0; + + // Keep track of parser state. + enum tdoing { + doing_command, + doing_depends, + doing_working_directory, + doing_comment, + doing_verbatim + }; + tdoing doing = doing_command; + + // Look for the ALL option. + bool excludeFromAll = true; + unsigned int start = 1; + if(args.size() > 1) + { + if(args[1] == "ALL") + { + excludeFromAll = false; + start = 2; + } + } + + // Parse the rest of the arguments. + for(unsigned int j = start; j < args.size(); ++j) + { + std::string const& copy = args[j]; + + if(copy == "DEPENDS") + { + doing = doing_depends; + } + else if(copy == "WORKING_DIRECTORY") + { + doing = doing_working_directory; + } + else if(copy == "VERBATIM") + { + doing = doing_verbatim; + verbatim = true; + } + else if (copy == "COMMENT") + { + doing = doing_comment; + } + else if(copy == "COMMAND") + { + doing = doing_command; + + // Save the current command before starting the next command. + if(!currentLine.empty()) + { + commandLines.push_back(currentLine); + currentLine.clear(); + } + } + else + { + switch (doing) + { + case doing_working_directory: + working_directory = copy; + break; + case doing_command: + currentLine.push_back(copy); + break; + case doing_depends: + depends.push_back(copy); + break; + case doing_comment: + comment_buffer = copy; + comment = comment_buffer.c_str(); + break; + default: + this->SetError("Wrong syntax. Unknown type of argument."); + return false; + } + } + } + + std::string::size_type pos = args[0].find_first_of("#<>"); + if(pos != args[0].npos) + { + cmOStringStream msg; + msg << "called with target name containing a \"" << args[0][pos] + << "\". This character is not allowed."; + this->SetError(msg.str().c_str()); + return false; + } + + // Store the last command line finished. + if(!currentLine.empty()) + { + commandLines.push_back(currentLine); + currentLine.clear(); + } + + // Add the utility target to the makefile. + bool escapeOldStyle = !verbatim; + this->Makefile->AddUtilityCommand(args[0].c_str(), excludeFromAll, + working_directory.c_str(), depends, + commandLines, escapeOldStyle, comment); + + return true; +} diff --git a/CMakeLua/Source/cmAddCustomTargetCommand.h b/CMakeLua/Source/cmAddCustomTargetCommand.h new file mode 100644 index 0000000..046743b --- /dev/null +++ b/CMakeLua/Source/cmAddCustomTargetCommand.h @@ -0,0 +1,103 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddCustomTargetCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.22 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmAddCustomTargetCommand_h +#define cmAddCustomTargetCommand_h + +#include "cmCommand.h" + +/** \class cmAddCustomTargetCommand + * \brief Command that adds a target to the build system. + * + * cmAddCustomTargetCommand adds an extra target to the build system. + * This is useful when you would like to add special + * targets like "install,", "clean," and so on. + */ +class cmAddCustomTargetCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddCustomTargetCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() + {return "add_custom_target";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Add a target with no output so it will always be built."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " add_custom_target(Name [ALL] [command1 [args1...]]\n" + " [COMMAND command2 [args2...] ...]\n" + " [DEPENDS depend depend depend ... ]\n" + " [WORKING_DIRECTORY dir]\n" + " [COMMENT comment] [VERBATIM])\n" + "Adds a target with the given name that executes the given commands. " + "The target has no output file and is ALWAYS CONSIDERED OUT OF DATE " + "even if the commands try to create a file with the name of the " + "target. Use ADD_CUSTOM_COMMAND to generate a file with dependencies. " + "By default nothing depends on the custom target. Use " + "ADD_DEPENDENCIES to add dependencies to or from other targets. " + "If the ALL option is specified " + "it indicates that this target should be added to the default build " + "target so that it will be run every time " + "(the command cannot be called ALL). " + "The command and arguments are optional and if not specified an " + "empty target will be created. " + "If WORKING_DIRECTORY is set, then the command will be run in that " + "directory. " + "If COMMENT is set, the value will be displayed as a " + "message before the commands are executed at build time. " + "Dependencies listed with the DEPENDS argument may reference files " + "and outputs of custom commands created with ADD_CUSTOM_COMMAND.\n" + "If VERBATIM is given then all the arguments to the commands will be " + "passed exactly as specified no matter the build tool used. " + "Note that one level of escapes is still used by the CMake language " + "processor before add_custom_target even sees the arguments. " + "Use of VERBATIM is recommended as it enables correct behavior. " + "When VERBATIM is not given the behavior is platform specific. " + "In the future VERBATIM may be enabled by default. The only reason " + "it is an option is to preserve compatibility with older CMake code."; + } + + cmTypeMacro(cmAddCustomTargetCommand, cmCommand); +}; + +#endif diff --git a/CMakeLua/Source/cmAddDefinitionsCommand.cxx b/CMakeLua/Source/cmAddDefinitionsCommand.cxx new file mode 100644 index 0000000..2ae6d5e --- /dev/null +++ b/CMakeLua/Source/cmAddDefinitionsCommand.cxx @@ -0,0 +1,36 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddDefinitionsCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddDefinitionsCommand.h" + +// cmAddDefinitionsCommand +bool cmAddDefinitionsCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + // it is OK to have no arguments + if(args.size() < 1 ) + { + return true; + } + + for(std::vector::const_iterator i = args.begin(); + i != args.end(); ++i) + { + this->Makefile->AddDefineFlag(i->c_str()); + } + return true; +} + diff --git a/CMakeLua/Source/cmAddDefinitionsCommand.h b/CMakeLua/Source/cmAddDefinitionsCommand.h new file mode 100644 index 0000000..a91804f --- /dev/null +++ b/CMakeLua/Source/cmAddDefinitionsCommand.h @@ -0,0 +1,87 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddDefinitionsCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmAddDefinitionsCommand_h +#define cmAddDefinitionsCommand_h + +#include "cmCommand.h" + +/** \class cmAddDefinitionsCommand + * \brief Specify a list of compiler defines + * + * cmAddDefinitionsCommand specifies a list of compiler defines. These defines + * will be added to the compile command. + */ +class cmAddDefinitionsCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddDefinitionsCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "add_definitions";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Adds -D define flags to the compilation of source files."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " add_definitions(-DFOO -DBAR ...)\n" + "Adds flags to the compiler command line for sources in the current " + "directory and below. This command can be used to add any flags, " + "but it was originally intended to add preprocessor definitions. " + "Flags beginning in -D or /D that look like preprocessor definitions " + "are automatically added to the COMPILE_DEFINITIONS property for " + "the current directory. Definitions with non-trival values may be " + "left in the set of flags instead of being converted for reasons of " + "backwards compatibility. See documentation of the directory, " + "target, and source file COMPILE_DEFINITIONS properties for details " + "on adding preprocessor definitions to specific scopes and " + "configurations." + ; + } + + cmTypeMacro(cmAddDefinitionsCommand, cmCommand); +private: + bool ParseDefinition(std::string const& def); +}; + + + +#endif diff --git a/CMakeLua/Source/cmAddDependenciesCommand.cxx b/CMakeLua/Source/cmAddDependenciesCommand.cxx new file mode 100644 index 0000000..b0ecb4a --- /dev/null +++ b/CMakeLua/Source/cmAddDependenciesCommand.cxx @@ -0,0 +1,55 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddDependenciesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.17 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddDependenciesCommand.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" + +// cmDependenciesCommand +bool cmAddDependenciesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::string target_name = args[0]; + + cmTarget* target = + this->GetMakefile()->GetLocalGenerator()-> + GetGlobalGenerator()->FindTarget(0, target_name.c_str()); + if(target) + { + std::vector::const_iterator s = args.begin(); + ++s; // skip over target_name + for (; s != args.end(); ++s) + { + target->AddUtility(s->c_str()); + } + } + else + { + std::string error = "Adding dependency to non-existent target: "; + error += target_name; + this->SetError(error.c_str()); + return false; + } + + return true; +} + diff --git a/CMakeLua/Source/cmAddDependenciesCommand.h b/CMakeLua/Source/cmAddDependenciesCommand.h new file mode 100644 index 0000000..aef139b --- /dev/null +++ b/CMakeLua/Source/cmAddDependenciesCommand.h @@ -0,0 +1,81 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddDependenciesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependenciessCommand_h +#define cmDependenciessCommand_h + +#include "cmCommand.h" + +/** \class cmAddDependenciesCommand + * \brief Add a dependency to a target + * + * cmAddDependenciesCommand adds a dependency to a target + */ +class cmAddDependenciesCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddDependenciesCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "add_dependencies";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Add a dependency between top-level targets."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " add_dependencies(target-name depend-target1\n" + " depend-target2 ...)\n" + "Make a top-level target depend on other top-level targets. A " + "top-level target is one created by ADD_EXECUTABLE, ADD_LIBRARY, " + "or ADD_CUSTOM_TARGET. Adding dependencies with this command " + "can be used to make sure one target is built before another target. " + "See the DEPENDS option of ADD_CUSTOM_TARGET " + "and ADD_CUSTOM_COMMAND for adding file-level dependencies in custom " + "rules. See the OBJECT_DEPENDS option in " + "SET_SOURCE_FILES_PROPERTIES to add file-level dependencies to object " + "files."; + } + + cmTypeMacro(cmAddDependenciesCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmAddExecutableCommand.cxx b/CMakeLua/Source/cmAddExecutableCommand.cxx new file mode 100644 index 0000000..c382da2 --- /dev/null +++ b/CMakeLua/Source/cmAddExecutableCommand.cxx @@ -0,0 +1,139 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddExecutableCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.33 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddExecutableCommand.h" + +// cmExecutableCommand +bool cmAddExecutableCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::vector::const_iterator s = args.begin(); + + std::string exename = *s; + + ++s; + bool use_win32 = false; + bool use_macbundle = false; + bool excludeFromAll = false; + bool importTarget = false; + while ( s != args.end() ) + { + if (*s == "WIN32") + { + ++s; + use_win32 = true; + } + else if ( *s == "MACOSX_BUNDLE" ) + { + ++s; + use_macbundle = true; + } + else if(*s == "EXCLUDE_FROM_ALL") + { + ++s; + excludeFromAll = true; + } + else if(*s == "IMPORTED") + { + ++s; + importTarget = true; + } + else + { + break; + } + } + + // Special modifiers are not allowed with IMPORTED signature. + if(importTarget && (use_win32 || use_macbundle || excludeFromAll)) + { + if(use_win32) + { + this->SetError("may not be given WIN32 for an IMPORTED target."); + } + else if(use_macbundle) + { + this->SetError( + "may not be given MACOSX_BUNDLE for an IMPORTED target."); + } + else // if(excludeFromAll) + { + this->SetError( + "may not be given EXCLUDE_FROM_ALL for an IMPORTED target."); + } + return false; + } + + // Check for an existing target with this name. + cmTarget* existing = this->Makefile->FindTargetToUse(exename.c_str()); + if(importTarget) + { + // Make sure the target does not already exist. + if(existing) + { + cmOStringStream e; + e << "cannot create imported target \"" << exename + << "\" because another target with the same name already exists."; + this->SetError(e.str().c_str()); + return false; + } + + // Create the imported target. + this->Makefile->AddImportedTarget(exename.c_str(), cmTarget::EXECUTABLE); + return true; + } + else + { + // Make sure the target does not conflict with an imported target. + // This should really enforce global name uniqueness for targets + // built within the project too, but that may break compatiblity + // with projects in which it was accidentally working. + if(existing && existing->IsImported()) + { + cmOStringStream e; + e << "cannot create target \"" << exename + << "\" because an imported target with the same name already exists."; + this->SetError(e.str().c_str()); + return false; + } + } + + if (s == args.end()) + { + this->SetError + ("called with incorrect number of arguments, no sources provided"); + return false; + } + + std::vector srclists(s, args.end()); + cmTarget* tgt = this->Makefile->AddExecutable(exename.c_str(), srclists, + excludeFromAll); + if ( use_win32 ) + { + tgt->SetProperty("WIN32_EXECUTABLE", "ON"); + } + if ( use_macbundle) + { + tgt->SetProperty("MACOSX_BUNDLE", "ON"); + } + + return true; +} diff --git a/CMakeLua/Source/cmAddExecutableCommand.h b/CMakeLua/Source/cmAddExecutableCommand.h new file mode 100644 index 0000000..a88d751 --- /dev/null +++ b/CMakeLua/Source/cmAddExecutableCommand.h @@ -0,0 +1,118 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddExecutableCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExecutablesCommand_h +#define cmExecutablesCommand_h + +#include "cmCommand.h" + +/** \class cmExecutablesCommand + * \brief Defines a list of executables to build. + * + * cmExecutablesCommand defines a list of executable (i.e., test) + * programs to create. + */ +class cmAddExecutableCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddExecutableCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "add_executable";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return + "Add an executable to the project using the specified source files."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " add_executable(exename [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL]\n" + " source1 source2 ... sourceN)\n" + "This command adds an executable target to the current directory. " + "The executable will be built from the list of source files " + "specified.\n" + "After specifying the executable name, WIN32 and/or MACOSX_BUNDLE can " + "be specified. WIN32 indicates that the executable (when compiled on " + "windows) is a windows app (using WinMain) not a console app " + "(using main). The variable CMAKE_MFC_FLAG be used if the windows app " + "uses MFC. This variable can be set to the following values:\n" + " 0: Use Standard Windows Libraries\n" + " 1: Use MFC in a Static Library\n" + " 2: Use MFC in a Shared DLL\n" + "MACOSX_BUNDLE indicates that when build on Mac OSX, executable should " + "be in the bundle form. The MACOSX_BUNDLE also allows several " + "variables to be specified:\n" + " MACOSX_BUNDLE_INFO_STRING\n" + " MACOSX_BUNDLE_ICON_FILE\n" + " MACOSX_BUNDLE_GUI_IDENTIFIER\n" + " MACOSX_BUNDLE_LONG_VERSION_STRING\n" + " MACOSX_BUNDLE_BUNDLE_NAME\n" + " MACOSX_BUNDLE_SHORT_VERSION_STRING\n" + " MACOSX_BUNDLE_BUNDLE_VERSION\n" + " MACOSX_BUNDLE_COPYRIGHT\n" + "If EXCLUDE_FROM_ALL is given the target will not be built by default. " + "It will be built only if the user explicitly builds the target or " + "another target that requires the target depends on it." + "\n" + "The add_executable command can also create IMPORTED executable " + "targets using this signature:\n" + " add_executable( IMPORTED)\n" + "An IMPORTED executable target references an executable file located " + "outside the project. " + "No rules are generated to build it. " + "The target name has scope in the directory in which it is created " + "and below. " + "It may be referenced like any target built within the project. " + "IMPORTED executables are useful for convenient reference from " + "commands like add_custom_command. " + "Details about the imported executable are specified by setting " + "properties whose names begin in \"IMPORTED_\". " + "The most important such property is IMPORTED_LOCATION " + "(and its per-configuration version IMPORTED_LOCATION_) " + "which specifies the location of the main executable file on disk. " + "See documentation of the IMPORTED_* properties for more information." + ; + } + + cmTypeMacro(cmAddExecutableCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmAddLibraryCommand.cxx b/CMakeLua/Source/cmAddLibraryCommand.cxx new file mode 100644 index 0000000..878e3da --- /dev/null +++ b/CMakeLua/Source/cmAddLibraryCommand.cxx @@ -0,0 +1,168 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddLibraryCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.34 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddLibraryCommand.h" + +#include "cmake.h" + +// cmLibraryCommand +bool cmAddLibraryCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + // Library type defaults to value of BUILD_SHARED_LIBS, if it exists, + // otherwise it defaults to static library. + cmTarget::TargetType type = cmTarget::SHARED_LIBRARY; + if (cmSystemTools::IsOff(this->Makefile->GetDefinition("BUILD_SHARED_LIBS"))) + { + type = cmTarget::STATIC_LIBRARY; + } + bool excludeFromAll = false; + bool importTarget = false; + + std::vector::const_iterator s = args.begin(); + + std::string libName = *s; + + ++s; + + // If the second argument is "SHARED" or "STATIC", then it controls + // the type of library. Otherwise, it is treated as a source or + // source list name. There may be two keyword arguments, check for them + bool haveSpecifiedType = false; + while ( s != args.end() ) + { + std::string libType = *s; + if(libType == "STATIC") + { + ++s; + type = cmTarget::STATIC_LIBRARY; + haveSpecifiedType = true; + } + else if(libType == "SHARED") + { + ++s; + type = cmTarget::SHARED_LIBRARY; + haveSpecifiedType = true; + } + else if(libType == "MODULE") + { + ++s; + type = cmTarget::MODULE_LIBRARY; + haveSpecifiedType = true; + } + else if(*s == "EXCLUDE_FROM_ALL") + { + ++s; + excludeFromAll = true; + } + else if(*s == "IMPORTED") + { + ++s; + importTarget = true; + } + else + { + break; + } + } + + /* ideally we should check whether for the linker language of the target + CMAKE_${LANG}_CREATE_SHARED_LIBRARY is defined and if not default to + STATIC. But at this point we know only the name of the target, but not + yet its linker language. */ + if ((type != cmTarget::STATIC_LIBRARY) && + (this->Makefile->GetCMakeInstance()->GetPropertyAsBool( + "TARGET_SUPPORTS_SHARED_LIBS") == false)) + { + std::string msg = "ADD_LIBRARY for library "; + msg += args[0]; + msg += " is used with the "; + msg += type==cmTarget::SHARED_LIBRARY ? "SHARED" : "MODULE"; + msg += " option, but the target platform supports only STATIC libraries. " + "Building it STATIC instead. This may lead to problems."; + cmSystemTools::Message(msg.c_str() ,"Warning"); + type = cmTarget::STATIC_LIBRARY; + } + + // The IMPORTED signature requires a type to be specified explicitly. + if(importTarget && !haveSpecifiedType) + { + this->SetError("called with IMPORTED argument but no library type."); + return false; + } + + // Check for an existing target with this name. + cmTarget* existing = this->Makefile->FindTargetToUse(libName.c_str()); + if(importTarget) + { + // Make sure the target does not already exist. + if(existing) + { + cmOStringStream e; + e << "cannot create imported target \"" << libName + << "\" because another target with the same name already exists."; + this->SetError(e.str().c_str()); + return false; + } + + // Create the imported target. + this->Makefile->AddImportedTarget(libName.c_str(), type); + return true; + } + else + { + // Make sure the target does not conflict with an imported target. + // This should really enforce global name uniqueness for targets + // built within the project too, but that may break compatiblity + // with projects in which it was accidentally working. + if(existing && existing->IsImported()) + { + cmOStringStream e; + e << "cannot create target \"" << libName + << "\" because an imported target with the same name already exists."; + this->SetError(e.str().c_str()); + return false; + } + } + + if (s == args.end()) + { + std::string msg = "You have called ADD_LIBRARY for library "; + msg += args[0]; + msg += " without any source files. This typically indicates a problem "; + msg += "with your CMakeLists.txt file"; + cmSystemTools::Message(msg.c_str() ,"Warning"); + } + + std::vector srclists; + while (s != args.end()) + { + srclists.push_back(*s); + ++s; + } + + this->Makefile->AddLibrary(libName.c_str(), type, srclists, + excludeFromAll); + + return true; +} + + diff --git a/CMakeLua/Source/cmAddLibraryCommand.h b/CMakeLua/Source/cmAddLibraryCommand.h new file mode 100644 index 0000000..0ab2b13 --- /dev/null +++ b/CMakeLua/Source/cmAddLibraryCommand.h @@ -0,0 +1,102 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddLibraryCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.21 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLibrarysCommand_h +#define cmLibrarysCommand_h + +#include "cmCommand.h" + +/** \class cmLibrarysCommand + * \brief Defines a list of executables to build. + * + * cmLibrarysCommand defines a list of executable (i.e., test) + * programs to create. + */ +class cmAddLibraryCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddLibraryCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "add_library";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Add a library to the project using the specified source files."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " add_library(libname [SHARED | STATIC | MODULE] [EXCLUDE_FROM_ALL]\n" + " source1 source2 ... sourceN)\n" + "Adds a library target. SHARED, STATIC or MODULE keywords are used " + "to set the library type. If the keyword MODULE appears, the library " + "type is set to MH_BUNDLE on systems which use dyld. On systems " + "without dyld, MODULE is treated like SHARED. If no keywords appear " + " as the second argument, the type defaults to the current value of " + "BUILD_SHARED_LIBS. If this variable is not set, the type defaults " + "to STATIC.\n" + "If EXCLUDE_FROM_ALL is given the target will not be built by default. " + "It will be built only if the user explicitly builds the target or " + "another target that requires the target depends on it." + "\n" + "The add_library command can also create IMPORTED library " + "targets using this signature:\n" + " add_library( IMPORTED)\n" + "An IMPORTED library target references a library file located " + "outside the project. " + "No rules are generated to build it. " + "The target name has scope in the directory in which it is created " + "and below. " + "It may be referenced like any target built within the project. " + "IMPORTED libraries are useful for convenient reference from " + "commands like target_link_libraries. " + "Details about the imported library are specified by setting " + "properties whose names begin in \"IMPORTED_\". " + "The most important such property is IMPORTED_LOCATION " + "(and its per-configuration version IMPORTED_LOCATION_) " + "which specifies the location of the main library file on disk. " + "See documentation of the IMPORTED_* properties for more information." + ; + } + + cmTypeMacro(cmAddLibraryCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmAddSubDirectoryCommand.cxx b/CMakeLua/Source/cmAddSubDirectoryCommand.cxx new file mode 100644 index 0000000..7987d89 --- /dev/null +++ b/CMakeLua/Source/cmAddSubDirectoryCommand.cxx @@ -0,0 +1,128 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddSubDirectoryCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddSubDirectoryCommand.h" + +// cmAddSubDirectoryCommand +bool cmAddSubDirectoryCommand::InitialPass +(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // store the binpath + std::string srcArg = args[0]; + std::string binArg; + + bool excludeFromAll = false; + + // process the rest of the arguments looking for optional args + std::vector::const_iterator i = args.begin(); + ++i; + for(;i != args.end(); ++i) + { + if(*i == "EXCLUDE_FROM_ALL") + { + excludeFromAll = true; + continue; + } + else if (!binArg.size()) + { + binArg = *i; + } + else + { + this->SetError("called with incorrect number of arguments"); + return false; + } + } + + // Compute the full path to the specified source directory. + // Interpret a relative path with respect to the current source directory. + std::string srcPath; + if(cmSystemTools::FileIsFullPath(srcArg.c_str())) + { + srcPath = srcArg; + } + else + { + srcPath = this->Makefile->GetCurrentDirectory(); + srcPath += "/"; + srcPath += srcArg; + } + if(!cmSystemTools::FileIsDirectory(srcPath.c_str())) + { + std::string error = "given source \""; + error += srcArg; + error += "\" which is not an existing directory."; + this->SetError(error.c_str()); + return false; + } + srcPath = cmSystemTools::CollapseFullPath(srcPath.c_str()); + + // Compute the full path to the binary directory. + std::string binPath; + if(binArg.empty()) + { + // No binary directory was specified. If the source directory is + // not a subdirectory of the current directory then it is an + // error. + if(!cmSystemTools::FindLastString(srcPath.c_str(), + this->Makefile->GetCurrentDirectory())) + { + cmOStringStream e; + e << "not given a binary directory but the given source directory " + << "\"" << srcPath << "\" is not a subdirectory of \"" + << this->Makefile->GetCurrentDirectory() << "\". " + << "When specifying an out-of-tree source a binary directory " + << "must be explicitly specified."; + this->SetError(e.str().c_str()); + return false; + } + + // Remove the CurrentDirectory from the srcPath and replace it + // with the CurrentOutputDirectory. + binPath = srcPath; + cmSystemTools::ReplaceString(binPath, + this->Makefile->GetCurrentDirectory(), + this->Makefile->GetCurrentOutputDirectory()); + } + else + { + // Use the binary directory specified. + // Interpret a relative path with respect to the current binary directory. + if(cmSystemTools::FileIsFullPath(binArg.c_str())) + { + binPath = binArg; + } + else + { + binPath = this->Makefile->GetCurrentOutputDirectory(); + binPath += "/"; + binPath += binArg; + } + } + binPath = cmSystemTools::CollapseFullPath(binPath.c_str()); + + // Add the subdirectory using the computed full paths. + this->Makefile->AddSubDirectory(srcPath.c_str(), binPath.c_str(), + excludeFromAll, false, true); + + return true; +} diff --git a/CMakeLua/Source/cmAddSubDirectoryCommand.h b/CMakeLua/Source/cmAddSubDirectoryCommand.h new file mode 100644 index 0000000..35ceba0 --- /dev/null +++ b/CMakeLua/Source/cmAddSubDirectoryCommand.h @@ -0,0 +1,96 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddSubDirectoryCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmAddSubDirectoryCommand_h +#define cmAddSubDirectoryCommand_h + +#include "cmCommand.h" + +/** \class cmAddSubDirectoryCommand + * \brief Specify a subdirectory to build + * + * cmAddSubDirectoryCommand specifies a subdirectory to process + * by CMake. CMake will descend + * into the specified source directory and process any CMakeLists.txt found. + */ +class cmAddSubDirectoryCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddSubDirectoryCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "add_subdirectory";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Add a subdirectory to the build."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " add_subdirectory(source_dir [binary_dir] \n" + " [EXCLUDE_FROM_ALL])\n" + "Add a subdirectory to the build. The source_dir specifies the " + "directory in which the source CmakeLists.txt and code files are " + "located. If it is a relative " + "path it will be evaluated with respect to the current " + "directory (the typical usage), but it may also be an absolute path. " + "The binary_dir specifies the directory in which to place the output " + "files. If it is a relative path it will be evaluated with respect " + "to the current output directory, but it may also be an absolute " + "path. If binary_dir is not specified, the value of source_dir, " + "before expanding any relative path, will be used (the typical usage). " + "The CMakeLists.txt file in the specified source directory will " + "be processed immediately by CMake before processing in the current " + "input file continues beyond this command.\n" + + "If the EXCLUDE_FROM_ALL argument is provided then this subdirectory " + "will not be included in build by default. Users will have to " + "explicitly start a build in the generated output directory. " + "This is useful for having cmake create a build system for a " + "set of examples in a project. One would want cmake to generate " + "a single build system for all the examples, but one may not want " + "the targets to show up in the main build system."; + } + + cmTypeMacro(cmAddSubDirectoryCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmAddTestCommand.cxx b/CMakeLua/Source/cmAddTestCommand.cxx new file mode 100644 index 0000000..2ba8810 --- /dev/null +++ b/CMakeLua/Source/cmAddTestCommand.cxx @@ -0,0 +1,50 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddTestCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.29 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAddTestCommand.h" + +#include "cmTest.h" + + +// cmExecutableCommand +bool cmAddTestCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + // First argument is the name of the test Second argument is the name of + // the executable to run (a target or external program) Remaining arguments + // are the arguments to pass to the executable + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // store the arguments for the final pass + // also expand any CMake variables + + std::vector arguments; + std::vector::const_iterator it; + for ( it = args.begin() + 2; it != args.end(); ++ it ) + { + arguments.push_back(*it); + } + + cmTest* test = this->Makefile->CreateTest(args[0].c_str()); + test->SetCommand(args[1].c_str()); + test->SetArguments(arguments); + + return true; +} diff --git a/CMakeLua/Source/cmAddTestCommand.h b/CMakeLua/Source/cmAddTestCommand.h new file mode 100644 index 0000000..6a85ebe --- /dev/null +++ b/CMakeLua/Source/cmAddTestCommand.h @@ -0,0 +1,81 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAddTestCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmAddTestCommand_h +#define cmAddTestCommand_h + +#include "cmCommand.h" + +/** \class cmAddTestCommand + * \brief Add a test to the lists of tests to run. + * + * cmAddTestCommand adds a test to the list of tests to run . + */ +class cmAddTestCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAddTestCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "add_test";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Add a test to the project with the specified arguments."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " add_test(testname Exename arg1 arg2 ...)\n" + "If the ENABLE_TESTING command has been run, this command adds a " + "test target to the current directory. If ENABLE_TESTING has not " + "been run, this command does nothing. " + "The tests are run by the testing subsystem by executing Exename " + "with the specified arguments. Exename can be either an executable " + "built by this project or an arbitrary executable on the " + "system (like tclsh). The test will be run with the current working " + "directory set to the CMakeList.txt files corresponding directory " + "in the binary tree."; + } + + cmTypeMacro(cmAddTestCommand, cmCommand); + +}; + + +#endif diff --git a/CMakeLua/Source/cmAuxSourceDirectoryCommand.cxx b/CMakeLua/Source/cmAuxSourceDirectoryCommand.cxx new file mode 100644 index 0000000..800519b --- /dev/null +++ b/CMakeLua/Source/cmAuxSourceDirectoryCommand.cxx @@ -0,0 +1,94 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAuxSourceDirectoryCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.26 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmAuxSourceDirectoryCommand.h" +#include "cmSourceFile.h" + +#include + +// cmAuxSourceDirectoryCommand +bool cmAuxSourceDirectoryCommand::InitialPass +(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 || args.size() > 2) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::string sourceListValue; + std::string templateDirectory = args[0]; + this->Makefile->AddExtraDirectory(templateDirectory.c_str()); + std::string tdir; + if(!cmSystemTools::FileExists(templateDirectory.c_str())) + { + tdir = this->Makefile->GetCurrentDirectory(); + tdir += "/"; + tdir += templateDirectory; + } + else + { + tdir = templateDirectory; + } + + // was the list already populated + const char *def = this->Makefile->GetDefinition(args[1].c_str()); + if (def) + { + sourceListValue = def; + } + + // Load all the files in the directory + cmsys::Directory dir; + if(dir.Load(tdir.c_str())) + { + size_t numfiles = dir.GetNumberOfFiles(); + for(size_t i =0; i < numfiles; ++i) + { + std::string file = dir.GetFile(static_cast(i)); + // Split the filename into base and extension + std::string::size_type dotpos = file.rfind("."); + if( dotpos != std::string::npos ) + { + std::string ext = file.substr(dotpos+1); + std::string base = file.substr(0, dotpos); + // Process only source files + if( base.size() != 0 + && std::find( this->Makefile->GetSourceExtensions().begin(), + this->Makefile->GetSourceExtensions().end(), ext ) + != this->Makefile->GetSourceExtensions().end() ) + { + std::string fullname = templateDirectory; + fullname += "/"; + fullname += file; + // add the file as a class file so + // depends can be done + cmSourceFile* sf = + this->Makefile->GetOrCreateSource(fullname.c_str()); + sf->SetProperty("ABSTRACT","0"); + if(!sourceListValue.empty()) + { + sourceListValue += ";"; + } + sourceListValue += fullname; + } + } + } + } + this->Makefile->AddDefinition(args[1].c_str(), sourceListValue.c_str()); + return true; +} + diff --git a/CMakeLua/Source/cmAuxSourceDirectoryCommand.h b/CMakeLua/Source/cmAuxSourceDirectoryCommand.h new file mode 100644 index 0000000..b906cf9 --- /dev/null +++ b/CMakeLua/Source/cmAuxSourceDirectoryCommand.h @@ -0,0 +1,91 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmAuxSourceDirectoryCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmAuxSourceDirectoryCommand_h +#define cmAuxSourceDirectoryCommand_h + +#include "cmCommand.h" + +/** \class cmAuxSourceDirectoryCommand + * \brief Specify auxiliary source code directories. + * + * cmAuxSourceDirectoryCommand specifies source code directories + * that must be built as part of this build process. This directories + * are not recursively processed like the SUBDIR command (cmSubdirCommand). + * A side effect of this command is to create a subdirectory in the build + * directory structure. + */ +class cmAuxSourceDirectoryCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmAuxSourceDirectoryCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "aux_source_directory";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Find all source files in a directory."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " aux_source_directory( )\n" + "Collects the names of all the source files in the specified " + "directory and stores the list in the provided. This " + "command is intended to be used by projects that use explicit " + "template instantiation. Template instantiation files can be " + "stored in a \"Templates\" subdirectory and collected automatically " + "using this command to avoid manually listing all instantiations.\n" + "It is tempting to use this command to avoid writing the list of " + "source files for a library or executable target. While this seems " + "to work, there is no way for CMake to generate a build system that " + "knows when a new source file has been added. Normally the " + "generated build system knows when it needs to rerun CMake because " + "the CMakeLists.txt file is modified to add a new source. When the " + "source is just added to the directory without modifying this file, " + "one would have to manually rerun CMake to generate a build system " + "incorporating the new file."; + } + + cmTypeMacro(cmAuxSourceDirectoryCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmBootstrapCommands.cxx b/CMakeLua/Source/cmBootstrapCommands.cxx new file mode 100644 index 0000000..b192d14 --- /dev/null +++ b/CMakeLua/Source/cmBootstrapCommands.cxx @@ -0,0 +1,147 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmBootstrapCommands.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// This file is used to compile all the commands +// that CMake knows about at compile time. +// This is sort of a boot strapping approach since you would +// like to have CMake to build CMake. +#include "cmCommands.h" +#include "cmAddCustomCommandCommand.cxx" +#include "cmAddCustomTargetCommand.cxx" +#include "cmAddDefinitionsCommand.cxx" +#include "cmAddDependenciesCommand.cxx" +#include "cmAddExecutableCommand.cxx" +#include "cmAddLibraryCommand.cxx" +#include "cmAddSubDirectoryCommand.cxx" +#include "cmAddTestCommand.cxx" +#include "cmBreakCommand.cxx" +#include "cmBuildCommand.cxx" +#include "cmCMakeMinimumRequired.cxx" +#include "cmCommandArgumentsHelper.cxx" +#include "cmConfigureFileCommand.cxx" +#include "cmCoreTryCompile.cxx" +#include "cmCreateTestSourceList.cxx" +#include "cmElseCommand.cxx" +#include "cmEnableTestingCommand.cxx" +#include "cmEndForEachCommand.cxx" +#include "cmEndFunctionCommand.cxx" +#include "cmEndIfCommand.cxx" +#include "cmEndMacroCommand.cxx" +#include "cmExecProgramCommand.cxx" +#include "cmExternalMakefileProjectGenerator.cxx" +#include "cmFindBase.cxx" +#include "cmFindCommon.cxx" +#include "cmFileCommand.cxx" +#include "cmFindFileCommand.cxx" +#include "cmFindLibraryCommand.cxx" +#include "cmFindPackageCommand.cxx" +#include "cmFindPathCommand.cxx" +#include "cmFindProgramCommand.cxx" +#include "cmForEachCommand.cxx" +#include "cmFunctionCommand.cxx" +#include "cmGetCMakePropertyCommand.cxx" +#include "cmGetFilenameComponentCommand.cxx" +#include "cmGetSourceFilePropertyCommand.cxx" +#include "cmGetTargetPropertyCommand.cxx" +#include "cmHexFileConverter.cxx" +#include "cmIfCommand.cxx" +#include "cmIncludeCommand.cxx" +#include "cmIncludeDirectoryCommand.cxx" +#include "cmIncludeRegularExpressionCommand.cxx" +#include "cmInstallFilesCommand.cxx" +#include "cmInstallTargetsCommand.cxx" +#include "cmLinkDirectoriesCommand.cxx" +#include "cmListCommand.cxx" +#include "cmMacroCommand.cxx" +#include "cmMakeDirectoryCommand.cxx" +#include "cmMarkAsAdvancedCommand.cxx" +#include "cmMessageCommand.cxx" +#include "cmOptionCommand.cxx" +#include "cmProjectCommand.cxx" +#include "cmReturnCommand.cxx" +#include "cmSetCommand.cxx" +#include "cmSetPropertyCommand.cxx" +#include "cmSetSourceFilesPropertiesCommand.cxx" +#include "cmSetTargetPropertiesCommand.cxx" +#include "cmSetTestsPropertiesCommand.cxx" +#include "cmSiteNameCommand.cxx" +#include "cmStringCommand.cxx" +#include "cmSubdirCommand.cxx" +#include "cmTargetLinkLibrariesCommand.cxx" +#include "cmTryCompileCommand.cxx" +#include "cmTryRunCommand.cxx" + +void GetBootstrapCommands(std::list& commands) +{ + commands.push_back(new cmAddCustomCommandCommand); + commands.push_back(new cmAddCustomTargetCommand); + commands.push_back(new cmAddDefinitionsCommand); + commands.push_back(new cmAddDependenciesCommand); + commands.push_back(new cmAddExecutableCommand); + commands.push_back(new cmAddLibraryCommand); + commands.push_back(new cmAddSubDirectoryCommand); + commands.push_back(new cmAddTestCommand); + commands.push_back(new cmBreakCommand); + commands.push_back(new cmBuildCommand); + commands.push_back(new cmCMakeMinimumRequired); + commands.push_back(new cmConfigureFileCommand); + commands.push_back(new cmCreateTestSourceList); + commands.push_back(new cmElseCommand); + commands.push_back(new cmEnableTestingCommand); + commands.push_back(new cmEndForEachCommand); + commands.push_back(new cmEndFunctionCommand); + commands.push_back(new cmEndIfCommand); + commands.push_back(new cmEndMacroCommand); + commands.push_back(new cmExecProgramCommand); + commands.push_back(new cmFileCommand); + commands.push_back(new cmFindFileCommand); + commands.push_back(new cmFindLibraryCommand); + commands.push_back(new cmFindPackageCommand); + commands.push_back(new cmFindPathCommand); + commands.push_back(new cmFindProgramCommand); + commands.push_back(new cmForEachCommand); + commands.push_back(new cmFunctionCommand); + commands.push_back(new cmGetCMakePropertyCommand); + commands.push_back(new cmGetFilenameComponentCommand); + commands.push_back(new cmGetSourceFilePropertyCommand); + commands.push_back(new cmGetTargetPropertyCommand); + commands.push_back(new cmIfCommand); + commands.push_back(new cmIncludeCommand); + commands.push_back(new cmIncludeDirectoryCommand); + commands.push_back(new cmIncludeRegularExpressionCommand); + commands.push_back(new cmInstallFilesCommand); + commands.push_back(new cmInstallTargetsCommand); + commands.push_back(new cmLinkDirectoriesCommand); + commands.push_back(new cmListCommand); + commands.push_back(new cmMacroCommand); + commands.push_back(new cmMakeDirectoryCommand); + commands.push_back(new cmMarkAsAdvancedCommand); + commands.push_back(new cmMessageCommand); + commands.push_back(new cmOptionCommand); + commands.push_back(new cmProjectCommand); + commands.push_back(new cmReturnCommand); + commands.push_back(new cmSetCommand); + commands.push_back(new cmSetPropertyCommand); + commands.push_back(new cmSetSourceFilesPropertiesCommand); + commands.push_back(new cmSetTargetPropertiesCommand); + commands.push_back(new cmSetTestsPropertiesCommand); + commands.push_back(new cmSiteNameCommand); + commands.push_back(new cmStringCommand); + commands.push_back(new cmSubdirCommand); + commands.push_back(new cmTargetLinkLibrariesCommand); + commands.push_back(new cmTryCompileCommand); + commands.push_back(new cmTryRunCommand); +} diff --git a/CMakeLua/Source/cmBreakCommand.cxx b/CMakeLua/Source/cmBreakCommand.cxx new file mode 100755 index 0000000..28901de --- /dev/null +++ b/CMakeLua/Source/cmBreakCommand.cxx @@ -0,0 +1,26 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmBreakCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:26 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmBreakCommand.h" + +// cmBreakCommand +bool cmBreakCommand::InitialPass(std::vector const&, + cmExecutionStatus &status) +{ + status.SetBreakInvoked(true); + return true; +} + diff --git a/CMakeLua/Source/cmBreakCommand.h b/CMakeLua/Source/cmBreakCommand.h new file mode 100755 index 0000000..1ae800c --- /dev/null +++ b/CMakeLua/Source/cmBreakCommand.h @@ -0,0 +1,78 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmBreakCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:26 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmBreakCommand_h +#define cmBreakCommand_h + +#include "cmCommand.h" + +/** \class cmBreakCommand + * \brief Break from an enclosing foreach or while loop + * + * cmBreakCommand returns from an enclosing foreach or while loop + */ +class cmBreakCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmBreakCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "break";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Break from an enclosing foreach or while loop."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " break()\n" + "Breaks from an enclosing foreach loop or while loop"; + } + + cmTypeMacro(cmBreakCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmBuildCommand.cxx b/CMakeLua/Source/cmBuildCommand.cxx new file mode 100644 index 0000000..314e04c --- /dev/null +++ b/CMakeLua/Source/cmBuildCommand.cxx @@ -0,0 +1,57 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmBuildCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.24 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmBuildCommand.h" + +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" + +// cmBuildCommand +bool cmBuildCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + const char* define = args[0].c_str(); + const char* cacheValue + = this->Makefile->GetDefinition(define); + std::string makeprogram = args[1]; + std::string configType = "Release"; + const char* cfg = getenv("CMAKE_CONFIG_TYPE"); + if ( cfg ) + { + configType = cfg; + } + std::string makecommand = this->Makefile->GetLocalGenerator() + ->GetGlobalGenerator()->GenerateBuildCommand + (makeprogram.c_str(), this->Makefile->GetProjectName(), 0, + 0, configType.c_str(), true, false); + + if(cacheValue) + { + return true; + } + this->Makefile->AddCacheDefinition(define, + makecommand.c_str(), + "Command used to build entire project " + "from the command line.", + cmCacheManager::STRING); + return true; +} + diff --git a/CMakeLua/Source/cmBuildCommand.h b/CMakeLua/Source/cmBuildCommand.h new file mode 100644 index 0000000..be3a465 --- /dev/null +++ b/CMakeLua/Source/cmBuildCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmBuildCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmBuildCommand_h +#define cmBuildCommand_h + +#include "cmCommand.h" + +/** \class cmBuildCommand + * \brief Build a CMAKE variable + * + * cmBuildCommand sets a variable to a value with expansion. + */ +class cmBuildCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmBuildCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "build_command";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get the command line that will build this project."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " build_command( )\n" + "Sets the given to a string containing the command that " + "will build this project from the root of the build tree using the " + "build tool given by . should be msdev, " + "nmake, make or one of the end user build tools. " + "This is useful for configuring testing systems."; + } + + cmTypeMacro(cmBuildCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmBuildNameCommand.cxx b/CMakeLua/Source/cmBuildNameCommand.cxx new file mode 100644 index 0000000..ca4deb2 --- /dev/null +++ b/CMakeLua/Source/cmBuildNameCommand.cxx @@ -0,0 +1,82 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmBuildNameCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmBuildNameCommand.h" + +#include + +// cmBuildNameCommand +bool cmBuildNameCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + const char* cacheValue = this->Makefile->GetDefinition(args[0].c_str()); + if(cacheValue) + { + // do we need to correct the value? + cmsys::RegularExpression reg("[()/]"); + if (reg.find(cacheValue)) + { + std::string cv = cacheValue; + cmSystemTools::ReplaceString(cv,"/", "_"); + cmSystemTools::ReplaceString(cv,"(", "_"); + cmSystemTools::ReplaceString(cv,")", "_"); + this->Makefile->AddCacheDefinition(args[0].c_str(), + cv.c_str(), + "Name of build.", + cmCacheManager::STRING); + } + return true; + } + + + std::string buildname = "WinNT"; + if(this->Makefile->GetDefinition("UNIX")) + { + buildname = ""; + cmSystemTools::RunSingleCommand("uname -a", &buildname); + if(buildname.length()) + { + std::string RegExp = "([^ ]*) [^ ]* ([^ ]*) "; + cmsys::RegularExpression reg( RegExp.c_str() ); + if(reg.find(buildname.c_str())) + { + buildname = reg.match(1) + "-" + reg.match(2); + } + } + } + std::string compiler = "${CMAKE_CXX_COMPILER}"; + this->Makefile->ExpandVariablesInString ( compiler ); + buildname += "-"; + buildname += cmSystemTools::GetFilenameName(compiler); + cmSystemTools::ReplaceString(buildname, + "/", "_"); + cmSystemTools::ReplaceString(buildname, + "(", "_"); + cmSystemTools::ReplaceString(buildname, + ")", "_"); + + this->Makefile->AddCacheDefinition(args[0].c_str(), + buildname.c_str(), + "Name of build.", + cmCacheManager::STRING); + return true; +} + diff --git a/CMakeLua/Source/cmBuildNameCommand.h b/CMakeLua/Source/cmBuildNameCommand.h new file mode 100644 index 0000000..477ef5b --- /dev/null +++ b/CMakeLua/Source/cmBuildNameCommand.h @@ -0,0 +1,87 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmBuildNameCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmBuildNameCommand_h +#define cmBuildNameCommand_h + +#include "cmCommand.h" + +/** \class cmBuildNameCommand + * \brief BuildName a CMAKE variable + * + * cmBuildNameCommand sets a variable to a value with expansion. + */ +class cmBuildNameCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmBuildNameCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "build_name";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return + "Deprecated. Use ${CMAKE_SYSTEM} and ${CMAKE_CXX_COMPILER} instead."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " build_name(variable)\n" + "Sets the specified variable to a string representing the platform " + "and compiler settings. These values are now available through the " + "CMAKE_SYSTEM and CMAKE_CXX_COMPILER variables."; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmBuildNameCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmCMakeMinimumRequired.cxx b/CMakeLua/Source/cmCMakeMinimumRequired.cxx new file mode 100644 index 0000000..87f8a3a --- /dev/null +++ b/CMakeLua/Source/cmCMakeMinimumRequired.cxx @@ -0,0 +1,126 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCMakeMinimumRequired.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCMakeMinimumRequired.h" + +#include "cmVersion.h" + +// cmCMakeMinimumRequired +bool cmCMakeMinimumRequired +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + // Process arguments. + std::string version_string; + bool doing_version = false; + bool fatal_error = false; + for(unsigned int i=0; i < args.size(); ++i) + { + if(args[i] == "VERSION") + { + doing_version = true; + } + else if(args[i] == "FATAL_ERROR") + { + if(doing_version) + { + this->SetError("called with no value for VERSION."); + return false; + } + doing_version = false; + fatal_error = true; + } + else if(doing_version) + { + doing_version = false; + version_string = args[i]; + } + else + { + cmOStringStream e; + e << "called with unknown argument \"" << args[i].c_str() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + if(doing_version) + { + this->SetError("called with no value for VERSION."); + return false; + } + + // Make sure there was a version to check. + if(version_string.empty()) + { + return true; + } + + // Save the required version string. + this->Makefile->AddDefinition("CMAKE_MINIMUM_REQUIRED_VERSION", + version_string.c_str()); + + + // Get the current version number. + int current_major = cmVersion::GetMajorVersion(); + int current_minor = cmVersion::GetMinorVersion(); + int current_patch = cmVersion::GetPatchVersion(); + + // Parse the required version number. If no patch-level is given + // use zero. + int required_major = 0; + int required_minor = 0; + int required_patch = 0; + if(sscanf(version_string.c_str(), "%d.%d.%d", + &required_major, &required_minor, &required_patch) < 2) + { + cmOStringStream e; + e << "could not parse VERSION \"" << version_string.c_str() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + + // Compare the version numbers. + if(current_major < required_major || + current_major == required_major && + current_minor < required_minor || + current_major == required_major && + current_minor == required_minor && + current_patch < required_patch) + { + // The current version is too low. + cmOStringStream e; + if(!fatal_error) + { + e << "WARNING: "; + } + e << "This project requires version " << version_string.c_str() + << " of CMake. " + << "You are running version " + << current_major << "." << current_minor << "." << current_patch + << ".\n"; + if(fatal_error) + { + cmSystemTools::Error(e.str().c_str()); + cmSystemTools::SetFatalErrorOccured(); + } + else + { + cmSystemTools::Message(e.str().c_str()); + } + } + + return true; +} + diff --git a/CMakeLua/Source/cmCMakeMinimumRequired.h b/CMakeLua/Source/cmCMakeMinimumRequired.h new file mode 100644 index 0000000..0ddb7d0 --- /dev/null +++ b/CMakeLua/Source/cmCMakeMinimumRequired.h @@ -0,0 +1,82 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCMakeMinimumRequired.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCMakeMinimumRequired_h +#define cmCMakeMinimumRequired_h + +#include "cmCommand.h" + +/** \class cmCMakeMinimumRequired + * \brief Build a CMAKE variable + * + * cmCMakeMinimumRequired sets a variable to a value with expansion. + */ +class cmCMakeMinimumRequired : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmCMakeMinimumRequired; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "cmake_minimum_required";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set the minimum required version of cmake for a project."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " cmake_minimum_required(VERSION versionNumber [FATAL_ERROR])\n" + "Let cmake know that the project requires a certain version of a " + "cmake, or newer. CMake will also try to be backwards compatible to " + "the version of cmake specified, if a newer version of cmake is " + "running. If FATAL_ERROR is given then failure to meet the " + "requirements will be considered an error instead of a warning."; + } + + cmTypeMacro(cmCMakeMinimumRequired, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmCPluginAPI.cxx b/CMakeLua/Source/cmCPluginAPI.cxx new file mode 100644 index 0000000..f03e94d --- /dev/null +++ b/CMakeLua/Source/cmCPluginAPI.cxx @@ -0,0 +1,950 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPluginAPI.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.42 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + this file contains the implementation of the C API to CMake. Generally + these routines just manipulate arguments and then call the associated + methods on the CMake classes. */ + +#include "cmMakefile.h" +#include "cmCPluginAPI.h" +#include "cmVersion.h" + +#include "cmSourceFile.h" + +#include + +#ifdef __QNX__ +# include /* for malloc/free on QNX */ +#endif + +extern "C" +{ + +void CCONV *cmGetClientData(void *info) +{ + return ((cmLoadedCommandInfo *)info)->ClientData; +} + +void CCONV cmSetClientData(void *info, void *cd) +{ + ((cmLoadedCommandInfo *)info)->ClientData = cd; +} + +void CCONV cmSetError(void *info, const char *err) +{ + if (((cmLoadedCommandInfo *)info)->Error) + { + free(((cmLoadedCommandInfo *)info)->Error); + } + ((cmLoadedCommandInfo *)info)->Error = strdup(err); +} + +unsigned int CCONV cmGetCacheMajorVersion(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetCacheMajorVersion(); +} +unsigned int CCONV cmGetCacheMinorVersion(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetCacheMinorVersion(); +} + +unsigned int CCONV cmGetMajorVersion(void *) +{ + return cmVersion::GetMajorVersion(); +} + +unsigned int CCONV cmGetMinorVersion(void *) +{ + return cmVersion::GetMinorVersion(); +} + +void CCONV cmAddDefinition(void *arg, const char* name, const char* value) +{ + cmMakefile *mf = static_cast(arg); + mf->AddDefinition(name,value); +} + +/* Add a definition to this makefile and the global cmake cache. */ +void CCONV cmAddCacheDefinition(void *arg, const char* name, + const char* value, const char* doc, int type) +{ + cmMakefile *mf = static_cast(arg); + + switch (type) + { + case CM_CACHE_BOOL: + mf->AddCacheDefinition(name,value,doc, + cmCacheManager::BOOL); + break; + case CM_CACHE_PATH: + mf->AddCacheDefinition(name,value,doc, + cmCacheManager::PATH); + break; + case CM_CACHE_FILEPATH: + mf->AddCacheDefinition(name,value,doc, + cmCacheManager::FILEPATH); + break; + case CM_CACHE_STRING: + mf->AddCacheDefinition(name,value,doc, + cmCacheManager::STRING); + break; + case CM_CACHE_INTERNAL: + mf->AddCacheDefinition(name,value,doc, + cmCacheManager::INTERNAL); + break; + case CM_CACHE_STATIC: + mf->AddCacheDefinition(name,value,doc, + cmCacheManager::STATIC); + break; + } +} + +const char* CCONV cmGetProjectName(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetProjectName(); +} + +const char* CCONV cmGetHomeDirectory(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetHomeDirectory(); +} +const char* CCONV cmGetHomeOutputDirectory(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetHomeOutputDirectory(); +} +const char* CCONV cmGetStartDirectory(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetStartDirectory(); +} +const char* CCONV cmGetStartOutputDirectory(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetStartOutputDirectory(); +} +const char* CCONV cmGetCurrentDirectory(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetCurrentDirectory(); +} +const char* CCONV cmGetCurrentOutputDirectory(void *arg) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetCurrentOutputDirectory(); +} +const char* CCONV cmGetDefinition(void *arg,const char*def) +{ + cmMakefile *mf = static_cast(arg); + return mf->GetDefinition(def); +} + +int CCONV cmIsOn(void *arg, const char* name) +{ + cmMakefile *mf = static_cast(arg); + return static_cast(mf->IsOn(name)); +} + +/** Check if a command exists. */ +int CCONV cmCommandExists(void *arg, const char* name) +{ + cmMakefile *mf = static_cast(arg); + return static_cast(mf->CommandExists(name)); +} + +void CCONV cmAddDefineFlag(void *arg, const char* definition) +{ + cmMakefile *mf = static_cast(arg); + mf->AddDefineFlag(definition); +} + +void CCONV cmAddLinkDirectoryForTarget(void *arg, const char *tgt, + const char* d) +{ + cmMakefile *mf = static_cast(arg); + mf->AddLinkDirectoryForTarget(tgt,d); +} + + +void CCONV cmAddExecutable(void *arg, const char *exename, + int numSrcs, const char **srcs, int win32) +{ + cmMakefile *mf = static_cast(arg); + std::vector srcs2; + int i; + for (i = 0; i < numSrcs; ++i) + { + srcs2.push_back(srcs[i]); + } + cmTarget* tg = mf->AddExecutable(exename, srcs2); + if ( win32 ) + { + tg->SetProperty("WIN32_EXECUTABLE", "ON"); + } +} + +void CCONV cmAddUtilityCommand(void *arg, const char* utilityName, + const char* command, + const char* arguments, + int all, + int numDepends, + const char **depends, + int, + const char **) +{ + // Get the makefile instance. Perform an extra variable expansion + // now because the API caller expects it. + cmMakefile* mf = static_cast(arg); + + // Construct the command line for the command. + cmCustomCommandLine commandLine; + std::string expand = command; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + if(arguments && arguments[0]) + { + // TODO: Parse arguments! + expand = arguments; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + } + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + // Accumulate the list of dependencies. + std::vector depends2; + for(int i = 0; i < numDepends; ++i) + { + expand = depends[i]; + depends2.push_back(mf->ExpandVariablesInString(expand)); + } + + // Pass the call to the makefile instance. + mf->AddUtilityCommand(utilityName, (all ? false : true), + 0, depends2, commandLines); +} +void CCONV cmAddCustomCommand(void *arg, const char* source, + const char* command, + int numArgs, const char **args, + int numDepends, const char **depends, + int numOutputs, const char **outputs, + const char *target) +{ + // Get the makefile instance. Perform an extra variable expansion + // now because the API caller expects it. + cmMakefile* mf = static_cast(arg); + + // Construct the command line for the command. + cmCustomCommandLine commandLine; + std::string expand = command; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + for(int i=0; i < numArgs; ++i) + { + expand = args[i]; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + } + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + // Accumulate the list of dependencies. + std::vector depends2; + for(int i = 0; i < numDepends; ++i) + { + expand = depends[i]; + depends2.push_back(mf->ExpandVariablesInString(expand)); + } + + // Accumulate the list of outputs. + std::vector outputs2; + for(int i = 0; i < numOutputs; ++i) + { + expand = outputs[i]; + outputs2.push_back(mf->ExpandVariablesInString(expand)); + } + + // Pass the call to the makefile instance. + const char* no_comment = 0; + mf->AddCustomCommandOldStyle(target, outputs2, depends2, source, + commandLines, no_comment); +} + +void CCONV cmAddCustomCommandToOutput(void *arg, const char* output, + const char* command, + int numArgs, const char **args, + const char* main_dependency, + int numDepends, const char **depends) +{ + // Get the makefile instance. Perform an extra variable expansion + // now because the API caller expects it. + cmMakefile* mf = static_cast(arg); + + // Construct the command line for the command. + cmCustomCommandLine commandLine; + std::string expand = command; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + for(int i=0; i < numArgs; ++i) + { + expand = args[i]; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + } + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + // Accumulate the list of dependencies. + std::vector depends2; + for(int i = 0; i < numDepends; ++i) + { + expand = depends[i]; + depends2.push_back(mf->ExpandVariablesInString(expand)); + } + + // Pass the call to the makefile instance. + const char* no_comment = 0; + const char* no_working_dir = 0; + mf->AddCustomCommandToOutput(output, depends2, main_dependency, + commandLines, no_comment, no_working_dir); +} + +void CCONV cmAddCustomCommandToTarget(void *arg, const char* target, + const char* command, + int numArgs, const char **args, + int commandType) +{ + // Get the makefile instance. + cmMakefile* mf = static_cast(arg); + + // Construct the command line for the command. Perform an extra + // variable expansion now because the API caller expects it. + cmCustomCommandLine commandLine; + std::string expand = command; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + for(int i=0; i < numArgs; ++i) + { + expand = args[i]; + commandLine.push_back(mf->ExpandVariablesInString(expand)); + } + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + // Select the command type. + cmTarget::CustomCommandType cctype = cmTarget::POST_BUILD; + switch (commandType) + { + case CM_PRE_BUILD: + cctype = cmTarget::PRE_BUILD; + break; + case CM_PRE_LINK: + cctype = cmTarget::PRE_LINK; + break; + case CM_POST_BUILD: + cctype = cmTarget::POST_BUILD; + break; + } + + // Pass the call to the makefile instance. + std::vector no_depends; + const char* no_comment = 0; + const char* no_working_dir = 0; + mf->AddCustomCommandToTarget(target, no_depends, commandLines, + cctype, no_comment, no_working_dir); +} + +void CCONV cmAddLinkLibraryForTarget(void *arg, const char *tgt, + const char*value, int libtype) +{ + cmMakefile *mf = static_cast(arg); + + switch (libtype) + { + case CM_LIBRARY_GENERAL: + mf->AddLinkLibraryForTarget(tgt,value, cmTarget::GENERAL); + break; + case CM_LIBRARY_DEBUG: + mf->AddLinkLibraryForTarget(tgt,value, cmTarget::DEBUG); + break; + case CM_LIBRARY_OPTIMIZED: + mf->AddLinkLibraryForTarget(tgt,value, cmTarget::OPTIMIZED); + break; + } +} + +void CCONV cmAddLibrary(void *arg, const char *libname, int shared, + int numSrcs, const char **srcs) +{ + cmMakefile *mf = static_cast(arg); + std::vector srcs2; + int i; + for (i = 0; i < numSrcs; ++i) + { + srcs2.push_back(srcs[i]); + } + mf->AddLibrary(libname, + (shared? cmTarget::SHARED_LIBRARY : cmTarget::STATIC_LIBRARY), + srcs2); +} + +char CCONV *cmExpandVariablesInString(void *arg, const char *source, + int escapeQuotes, int atOnly) +{ + cmMakefile *mf = static_cast(arg); + std::string barf = source; + std::string result = + mf->ExpandVariablesInString(barf, + (escapeQuotes ? true : false), + (atOnly ? true : false)); + char *res = static_cast(malloc(result.size() + 1)); + if (result.size()) + { + strcpy(res,result.c_str()); + } + res[result.size()] = '\0'; + return res; +} + + +int CCONV cmExecuteCommand(void *arg, const char *name, + int numArgs, const char **args) +{ + cmMakefile *mf = static_cast(arg); + cmListFileFunction lff; + lff.Name = name; + for(int i = 0; i < numArgs; ++i) + { + // Assume all arguments are quoted. + lff.Arguments.push_back(cmListFileArgument(args[i], true, + "[CMake-Plugin]", 0)); + } + cmExecutionStatus status; + return mf->ExecuteCommand(lff,status); +} + +void CCONV cmExpandSourceListArguments(void *arg, + int numArgs, + const char **args, + int *resArgc, + char ***resArgv, + unsigned int startArgumentIndex) +{ + cmMakefile *mf = static_cast(arg); + std::vector result; + std::vector args2; + int i; + for (i = 0; i < numArgs; ++i) + { + args2.push_back(args[i]); + } + mf->ExpandSourceListArguments(args2, result, startArgumentIndex); + int resargc = static_cast(result.size()); + char **resargv = 0; + if (resargc) + { + resargv = (char **)malloc(resargc*sizeof(char *)); + } + for (i = 0; i < resargc; ++i) + { + resargv[i] = strdup(result[i].c_str()); + } + *resArgc = resargc; + *resArgv = resargv; +} + +void CCONV cmFreeArguments(int argc, char **argv) +{ + int i; + for (i = 0; i < argc; ++i) + { + free(argv[i]); + } + if (argv) + { + free(argv); + } +} + +int CCONV cmGetTotalArgumentSize(int argc, char **argv) +{ + int i; + int result = 0; + for (i = 0; i < argc; ++i) + { + if (argv[i]) + { + result = result + static_cast(strlen(argv[i])); + } + } + return result; +} + +// Source file proxy object to support the old cmSourceFile/cmMakefile +// API for source files. +struct cmCPluginAPISourceFile +{ + cmCPluginAPISourceFile(): RealSourceFile(0) {} + cmSourceFile* RealSourceFile; + std::string SourceName; + std::string SourceExtension; + std::string FullPath; + std::vector Depends; + cmPropertyMap Properties; +}; + +// Keep a map from real cmSourceFile instances stored in a makefile to +// the CPluginAPI proxy source file. +class cmCPluginAPISourceFileMap: + public std::map +{ +public: + typedef std::map derived; + typedef derived::iterator iterator; + typedef derived::value_type value_type; + ~cmCPluginAPISourceFileMap() + { + for(iterator i=this->begin(); i != this->end(); ++i) + { + delete i->second; + } + } +}; +cmCPluginAPISourceFileMap cmCPluginAPISourceFiles; + +void * CCONV cmCreateSourceFile() +{ + return (void*)new cmCPluginAPISourceFile; +} + +void * CCONV cmCreateNewSourceFile(void *arg) +{ + cmMakefile *mf = static_cast(arg); + cmCPluginAPISourceFile *sf = new cmCPluginAPISourceFile; + sf->Properties.SetCMakeInstance(mf->GetCMakeInstance()); + return (void*)sf; +} + +void CCONV cmDestroySourceFile(void *arg) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + // Only delete if it was created by cmCreateSourceFile or + // cmCreateNewSourceFile and is therefore not in the map. + if(!sf->RealSourceFile) + { + delete sf; + } +} + +void CCONV *cmGetSource(void *arg, const char *name) +{ + cmMakefile *mf = static_cast(arg); + if(cmSourceFile* rsf = mf->GetSource(name)) + { + // Lookup the proxy source file object for this source. + cmCPluginAPISourceFileMap::iterator i = cmCPluginAPISourceFiles.find(rsf); + if(i == cmCPluginAPISourceFiles.end()) + { + // Create a proxy source file object for this source. + cmCPluginAPISourceFile* sf = new cmCPluginAPISourceFile; + sf->RealSourceFile = rsf; + sf->FullPath = rsf->GetFullPath(); + sf->SourceName = + cmSystemTools::GetFilenameWithoutLastExtension(sf->FullPath.c_str()); + sf->SourceExtension = + cmSystemTools::GetFilenameLastExtension(sf->FullPath.c_str()); + + // Store the proxy in the map so it can be re-used and deleted later. + cmCPluginAPISourceFileMap::value_type entry(rsf, sf); + i = cmCPluginAPISourceFiles.insert(entry).first; + } + return (void *)i->second; + } + else + { + return 0; + } +} + +void * CCONV cmAddSource(void *arg, void *arg2) +{ + cmMakefile *mf = static_cast(arg); + cmCPluginAPISourceFile* osf = static_cast(arg2); + if(osf->FullPath.empty()) + { + return 0; + } + + // Create the real cmSourceFile instance and copy over saved information. + cmSourceFile* rsf = mf->GetOrCreateSource(osf->FullPath.c_str()); + rsf->GetProperties() = osf->Properties; + for(std::vector::iterator i = osf->Depends.begin(); + i != osf->Depends.end(); ++i) + { + rsf->AddDepend(i->c_str()); + } + + // Create the proxy for the real source file. + cmCPluginAPISourceFile* sf = new cmCPluginAPISourceFile; + sf->RealSourceFile = rsf; + sf->FullPath = osf->FullPath; + sf->SourceName = osf->SourceName; + sf->SourceExtension = osf->SourceExtension; + + // Store the proxy in the map so it can be re-used and deleted later. + cmCPluginAPISourceFiles[rsf] = sf; + return (void *)sf; +} + +const char * CCONV cmSourceFileGetSourceName(void *arg) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + return sf->SourceName.c_str(); +} + +const char * CCONV cmSourceFileGetFullPath(void *arg) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + return sf->FullPath.c_str(); +} + +const char * CCONV cmSourceFileGetProperty(void *arg,const char *prop) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + if(cmSourceFile* rsf = sf->RealSourceFile) + { + return rsf->GetProperty(prop); + } + else + { + if(!strcmp(prop,"LOCATION")) + { + return sf->FullPath.c_str(); + } + bool chain = false; + // Ignore chain because old code will not expect it and it is a + // pain to implement here anyway. + return sf->Properties.GetPropertyValue(prop, cmProperty::SOURCE_FILE, + chain); + } +} + +int CCONV cmSourceFileGetPropertyAsBool(void *arg,const char *prop) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + if(cmSourceFile* rsf = sf->RealSourceFile) + { + return rsf->GetPropertyAsBool(prop) ? 1:0; + } + else + { + return cmSystemTools::IsOn(cmSourceFileGetProperty(arg, prop))? 1:0; + } +} + +void CCONV cmSourceFileSetProperty(void *arg,const char *prop, + const char *value) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + if(cmSourceFile* rsf = sf->RealSourceFile) + { + rsf->SetProperty(prop, value); + } + else if(prop) + { + if(!value) { value = "NOTFOUND"; } + sf->Properties.SetProperty(prop, value, cmProperty::SOURCE_FILE); + } +} + +void CCONV cmSourceFileAddDepend(void *arg, const char *depend) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + if(cmSourceFile* rsf = sf->RealSourceFile) + { + rsf->AddDepend(depend); + } + else + { + sf->Depends.push_back(depend); + } +} + +void CCONV cmSourceFileSetName(void *arg, const char* name, const char* dir, + int numSourceExtensions, + const char **sourceExtensions, + int numHeaderExtensions, + const char **headerExtensions) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + if(sf->RealSourceFile) + { + // SetName is allowed only on temporary source files created by + // the command for building and passing to AddSource. + return; + } + std::vector sourceExts; + std::vector headerExts; + int i; + for (i = 0; i < numSourceExtensions; ++i) + { + sourceExts.push_back(sourceExtensions[i]); + } + for (i = 0; i < numHeaderExtensions; ++i) + { + headerExts.push_back(headerExtensions[i]); + } + + // Implement the old SetName method code here. + sf->Properties.SetProperty("HEADER_FILE_ONLY", "1", + cmProperty::SOURCE_FILE); + + // Save the original name given. + sf->SourceName = name; + + // Convert the name to a full path in case the given name is a + // relative path. + std::string pathname = cmSystemTools::CollapseFullPath(name, dir); + + // First try and see whether the listed file can be found + // as is without extensions added on. + std::string hname = pathname; + if(cmSystemTools::FileExists(hname.c_str())) + { + sf->SourceName = cmSystemTools::GetFilenamePath(name); + if ( sf->SourceName.size() > 0 ) + { + sf->SourceName += "/"; + } + sf->SourceName += cmSystemTools::GetFilenameWithoutLastExtension(name); + std::string::size_type pos = hname.rfind('.'); + if(pos != std::string::npos) + { + sf->SourceExtension = hname.substr(pos+1, hname.size()-pos); + if ( cmSystemTools::FileIsFullPath(name) ) + { + std::string::size_type pos2 = hname.rfind('/'); + if(pos2 != std::string::npos) + { + sf->SourceName = hname.substr(pos2+1, pos - pos2-1); + } + } + } + + // See if the file is a header file + if(std::find( headerExts.begin(), headerExts.end(), + sf->SourceExtension ) == headerExts.end()) + { + sf->Properties.SetProperty("HEADER_FILE_ONLY", "0", + cmProperty::SOURCE_FILE); + } + sf->FullPath = hname; + return; + } + + // Next, try the various source extensions + for( std::vector::const_iterator ext = sourceExts.begin(); + ext != sourceExts.end(); ++ext ) + { + hname = pathname; + hname += "."; + hname += *ext; + if(cmSystemTools::FileExists(hname.c_str())) + { + sf->SourceExtension = *ext; + sf->Properties.SetProperty("HEADER_FILE_ONLY", "0", + cmProperty::SOURCE_FILE); + sf->FullPath = hname; + return; + } + } + + // Finally, try the various header extensions + for( std::vector::const_iterator ext = headerExts.begin(); + ext != headerExts.end(); ++ext ) + { + hname = pathname; + hname += "."; + hname += *ext; + if(cmSystemTools::FileExists(hname.c_str())) + { + sf->SourceExtension = *ext; + sf->FullPath = hname; + return; + } + } + + cmOStringStream e; + e << "Cannot find source file \"" << pathname << "\""; + e << "\n\nTried extensions"; + for( std::vector::const_iterator ext = sourceExts.begin(); + ext != sourceExts.end(); ++ext ) + { + e << " ." << *ext; + } + for( std::vector::const_iterator ext = headerExts.begin(); + ext != headerExts.end(); ++ext ) + { + e << " ." << *ext; + } + cmSystemTools::Error(e.str().c_str()); + return; +} + +void CCONV cmSourceFileSetName2(void *arg, const char* name, const char* dir, + const char *ext, int headerFileOnly) +{ + cmCPluginAPISourceFile* sf = static_cast(arg); + if(sf->RealSourceFile) + { + // SetName is allowed only on temporary source files created by + // the command for building and passing to AddSource. + return; + } + + // Implement the old SetName method code here. + sf->Properties.SetProperty("HEADER_FILE_ONLY", + headerFileOnly? "1" : "0", + cmProperty::SOURCE_FILE); + sf->SourceName = name; + std::string fname = sf->SourceName; + if(ext && strlen(ext)) + { + fname += "."; + fname += ext; + } + sf->FullPath = cmSystemTools::CollapseFullPath(fname.c_str(), dir); + cmSystemTools::ConvertToUnixSlashes(sf->FullPath); + sf->SourceExtension = ext; +} + +char * CCONV cmGetFilenameWithoutExtension(const char *name) +{ + std::string sres = cmSystemTools::GetFilenameWithoutExtension(name); + char *result = (char *)malloc(sres.size()+1); + strcpy(result,sres.c_str()); + return result; +} + +char * CCONV cmGetFilenamePath(const char *name) +{ + std::string sres = cmSystemTools::GetFilenamePath(name); + char *result = (char *)malloc(sres.size()+1); + strcpy(result,sres.c_str()); + return result; +} + +char * CCONV cmCapitalized(const char *name) +{ + std::string sres = cmSystemTools::Capitalized(name); + char *result = (char *)malloc(sres.size()+1); + strcpy(result,sres.c_str()); + return result; +} + +void CCONV cmCopyFileIfDifferent(const char *name1, const char *name2) +{ + cmSystemTools::CopyFileIfDifferent(name1,name2); +} + +void CCONV cmRemoveFile(const char *name) +{ + cmSystemTools::RemoveFile(name); +} + +void CCONV cmDisplayStatus(void *arg, const char* message) +{ + cmMakefile *mf = static_cast(arg); + mf->DisplayStatus(message, -1); +} + +void CCONV cmFree(void *data) +{ + free(data); +} + +void CCONV DefineSourceFileProperty (void *arg, const char *name, + const char *briefDocs, + const char *longDocs, + int chained) +{ + cmMakefile *mf = static_cast(arg); + mf->GetCMakeInstance()->DefineProperty(name,cmProperty::SOURCE_FILE, + briefDocs, longDocs, + chained != 0); +} + +} // close the extern "C" scope + +cmCAPI cmStaticCAPI = +{ + cmGetClientData, + cmGetTotalArgumentSize, + cmFreeArguments, + cmSetClientData, + cmSetError, + cmAddCacheDefinition, + cmAddCustomCommand, + cmAddDefineFlag, + cmAddDefinition, + cmAddExecutable, + cmAddLibrary, + cmAddLinkDirectoryForTarget, + cmAddLinkLibraryForTarget, + cmAddUtilityCommand, + cmCommandExists, + cmExecuteCommand, + cmExpandSourceListArguments, + cmExpandVariablesInString, + cmGetCacheMajorVersion, + cmGetCacheMinorVersion, + cmGetCurrentDirectory, + cmGetCurrentOutputDirectory, + cmGetDefinition, + cmGetHomeDirectory, + cmGetHomeOutputDirectory, + cmGetMajorVersion, + cmGetMinorVersion, + cmGetProjectName, + cmGetStartDirectory, + cmGetStartOutputDirectory, + cmIsOn, + + cmAddSource, + cmCreateSourceFile, + cmDestroySourceFile, + cmGetSource, + cmSourceFileAddDepend, + cmSourceFileGetProperty, + cmSourceFileGetPropertyAsBool, + cmSourceFileGetSourceName, + cmSourceFileGetFullPath, + cmSourceFileSetName, + cmSourceFileSetName2, + cmSourceFileSetProperty, + + cmCapitalized, + cmCopyFileIfDifferent, + cmGetFilenameWithoutExtension, + cmGetFilenamePath, + cmRemoveFile, + cmFree, + + cmAddCustomCommandToOutput, + cmAddCustomCommandToTarget, + cmDisplayStatus, + cmCreateNewSourceFile, + DefineSourceFileProperty, +}; + diff --git a/CMakeLua/Source/cmCPluginAPI.h b/CMakeLua/Source/cmCPluginAPI.h new file mode 100644 index 0000000..41c102d --- /dev/null +++ b/CMakeLua/Source/cmCPluginAPI.h @@ -0,0 +1,248 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCPluginAPI.h,v $ + Language: C++ + Date: $Date: 2006/12/07 14:44:45 $ + Version: $Revision: 1.25 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* This header file defines the API that loadable commands can use. In many + of these commands C++ instances of cmMakefile of cmSourceFile are passed + in as arguments or returned. In these cases they are passed as a void * + argument. In the function prototypes mf is used to represent a makefile + and sf is used to represent a source file. The functions are grouped + loosely into four groups 1) Utility 2) cmMakefile 3) cmSourceFile 4) + cmSystemTools. Within each grouping functions are listed alphabetically */ +/*=========================================================================*/ +#ifndef cmCPluginAPI_h +#define cmCPluginAPI_h + +#define CMAKE_VERSION_MAJOR 2 +#define CMAKE_VERSION_MINOR 5 + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __WATCOMC__ +#define CCONV __cdecl +#else +#define CCONV +#endif +/*========================================================================= +this is the structure of function entry points that a plugin may call. This +structure must be kept in sync with the static decaled at the bottom of +cmCPLuginAPI.cxx +=========================================================================*/ +typedef struct +{ + /*========================================================================= + Here we define the set of functions that a plugin may call. The first goup + of functions are utility functions that are specific to the plugin API + =========================================================================*/ + /* set/Get the ClientData in the cmLoadedCommandInfo structure, this is how + information is passed from the InitialPass to FInalPass for commands + that need a FinalPass and need information from the InitialPass */ + void *(CCONV *GetClientData) (void *info); + /* return the summed size in characters of all the arguments */ + int (CCONV *GetTotalArgumentSize) (int argc, char **argv); + /* free all the memory associated with an argc, argv pair */ + void (CCONV *FreeArguments) (int argc, char **argv); + /* set/Get the ClientData in the cmLoadedCommandInfo structure, this is how + information is passed from the InitialPass to FInalPass for commands + that need a FinalPass and need information from the InitialPass */ + void (CCONV *SetClientData) (void *info, void *cd); + /* when an error occurs, call this function to set the error string */ + void (CCONV *SetError) (void *info, const char *err); + + /*========================================================================= + The following functions all directly map to methods in the cmMakefile + class. See cmMakefile.h for descriptions of what each method does. All of + these methods take the void * makefile pointer as their first argument. + =========================================================================*/ + void (CCONV *AddCacheDefinition) (void *mf, const char* name, + const char* value, + const char* doc, int cachetype); + void (CCONV *AddCustomCommand) (void *mf, const char* source, + const char* command, + int numArgs, const char **args, + int numDepends, const char **depends, + int numOutputs, const char **outputs, + const char *target); + void (CCONV *AddDefineFlag) (void *mf, const char* definition); + void (CCONV *AddDefinition) (void *mf, const char* name, + const char* value); + void (CCONV *AddExecutable) (void *mf, const char *exename, + int numSrcs, const char **srcs, int win32); + void (CCONV *AddLibrary) (void *mf, const char *libname, + int shared, int numSrcs, const char **srcs); + void (CCONV *AddLinkDirectoryForTarget) (void *mf, const char *tgt, + const char* d); + void (CCONV *AddLinkLibraryForTarget) (void *mf, const char *tgt, + const char *libname, int libtype); + void (CCONV *AddUtilityCommand) (void *mf, const char* utilityName, + const char *command, const char *arguments, + int all, int numDepends, const char **depends, + int numOutputs, const char **outputs); + int (CCONV *CommandExists) (void *mf, const char* name); + int (CCONV *ExecuteCommand) (void *mf, const char *name, + int numArgs, const char **args); + void (CCONV *ExpandSourceListArguments) (void *mf,int argc, + const char **argv, + int *resArgc, char ***resArgv, + unsigned int startArgumentIndex); + char *(CCONV *ExpandVariablesInString) (void *mf, const char *source, + int escapeQuotes, int atOnly); + unsigned int (CCONV *GetCacheMajorVersion) (void *mf); + unsigned int (CCONV *GetCacheMinorVersion) (void *mf); + const char* (CCONV *GetCurrentDirectory) (void *mf); + const char* (CCONV *GetCurrentOutputDirectory) (void *mf); + const char* (CCONV *GetDefinition) (void *mf, const char *def); + const char* (CCONV *GetHomeDirectory) (void *mf); + const char* (CCONV *GetHomeOutputDirectory) (void *mf); + unsigned int (CCONV *GetMajorVersion) (void *mf); + unsigned int (CCONV *GetMinorVersion) (void *mf); + const char* (CCONV *GetProjectName) (void *mf); + const char* (CCONV *GetStartDirectory) (void *mf); + const char* (CCONV *GetStartOutputDirectory) (void *mf); + int (CCONV *IsOn) (void *mf, const char* name); + + + /*========================================================================= + The following functions are designed to operate or manipulate + cmSourceFiles. Please see cmSourceFile.h for additional information on many + of these methods. Some of these methods are in cmMakefile.h. + =========================================================================*/ + void *(CCONV *AddSource) (void *mf, void *sf); + void *(CCONV *CreateSourceFile) (); + void (CCONV *DestroySourceFile) (void *sf); + void *(CCONV *GetSource) (void *mf, const char* sourceName); + void (CCONV *SourceFileAddDepend) (void *sf, const char *depend); + const char *(CCONV *SourceFileGetProperty) (void *sf, const char *prop); + int (CCONV *SourceFileGetPropertyAsBool) (void *sf, const char *prop); + const char *(CCONV *SourceFileGetSourceName) (void *sf); + const char *(CCONV *SourceFileGetFullPath) (void *sf); + void (CCONV *SourceFileSetName) (void *sf, const char* name, + const char* dir, + int numSourceExtensions, + const char **sourceExtensions, + int numHeaderExtensions, + const char **headerExtensions); + void (CCONV *SourceFileSetName2) (void *sf, const char* name, + const char* dir, + const char *ext, int headerFileOnly); + void (CCONV *SourceFileSetProperty) (void *sf, const char *prop, + const char *value); + + + /*========================================================================= + The following methods are from cmSystemTools.h see that file for specific + documentation on each method. + =========================================================================*/ + char *(CCONV *Capitalized)(const char *); + void (CCONV *CopyFileIfDifferent)(const char *f1, const char *f2); + char *(CCONV *GetFilenameWithoutExtension)(const char *); + char *(CCONV *GetFilenamePath)(const char *); + void (CCONV *RemoveFile)(const char *f1); + void (CCONV *Free)(void *); + + /*========================================================================= + The following are new functions added after 1.6 + =========================================================================*/ + void (CCONV *AddCustomCommandToOutput) (void *mf, const char* output, + const char* command, + int numArgs, const char **args, + const char* main_dependency, + int numDepends, const char **depends); + void (CCONV *AddCustomCommandToTarget) (void *mf, const char* target, + const char* command, + int numArgs, const char **args, + int commandType); + + /* display status information */ + void (CCONV *DisplaySatus) (void *info, const char *message); + + /* new functions added after 2.4 */ + void *(CCONV *CreateNewSourceFile) (void *mf); + void (CCONV *DefineSourceFileProperty) (void *mf, const char *name, + const char *briefDocs, + const char *longDocs, + int chained); + + /* this is the end of the C function stub API structure */ +} cmCAPI; + + +/*========================================================================= +CM_PLUGIN_EXPORT should be used by plugins +=========================================================================*/ +#ifdef _WIN32 +#define CM_PLUGIN_EXPORT __declspec( dllexport ) +#else +#define CM_PLUGIN_EXPORT +#endif + +/*========================================================================= +define the different types of cache entries, see cmCacheManager.h for more +information +=========================================================================*/ +#define CM_CACHE_BOOL 0 +#define CM_CACHE_PATH 1 +#define CM_CACHE_FILEPATH 2 +#define CM_CACHE_STRING 3 +#define CM_CACHE_INTERNAL 4 +#define CM_CACHE_STATIC 5 + +/*========================================================================= +define the different types of compiles a library may be +=========================================================================*/ +#define CM_LIBRARY_GENERAL 0 +#define CM_LIBRARY_DEBUG 1 +#define CM_LIBRARY_OPTIMIZED 2 + +/*========================================================================= +define the different types of custom commands for a target +=========================================================================*/ +#define CM_PRE_BUILD 0 +#define CM_PRE_LINK 1 +#define CM_POST_BUILD 2 + +/*========================================================================= +Finally we define the key data structures and function prototypes +=========================================================================*/ + typedef const char* (CCONV *CM_DOC_FUNCTION)(); + typedef int (CCONV *CM_INITIAL_PASS_FUNCTION)(void *info, void *mf, + int argc, char *[]); + typedef void (CCONV *CM_FINAL_PASS_FUNCTION)(void *info, void *mf); + typedef void (CCONV *CM_DESTRUCTOR_FUNCTION)(void *info); + + typedef struct { + unsigned long reserved1; /* Reserved for future use. DO NOT USE. */ + unsigned long reserved2; /* Reserved for future use. DO NOT USE. */ + cmCAPI *CAPI; + int m_Inherited; /* this ivar is no longer used in CMake 2.2 or later */ + CM_INITIAL_PASS_FUNCTION InitialPass; + CM_FINAL_PASS_FUNCTION FinalPass; + CM_DESTRUCTOR_FUNCTION Destructor; + CM_DOC_FUNCTION GetTerseDocumentation; + CM_DOC_FUNCTION GetFullDocumentation; + const char *Name; + char *Error; + void *ClientData; + } cmLoadedCommandInfo; + + typedef void (CCONV *CM_INIT_FUNCTION)(cmLoadedCommandInfo *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/CMakeLua/Source/cmCTest.cxx b/CMakeLua/Source/cmCTest.cxx new file mode 100644 index 0000000..4c27213 --- /dev/null +++ b/CMakeLua/Source/cmCTest.cxx @@ -0,0 +1,2609 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTest.cxx,v $ + Language: C++ + Date: $Date: 2008/01/31 21:10:32 $ + Version: $Revision: 1.333 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cm_curl.h" + +#include "cmCTest.h" +#include "cmake.h" +#include "cmMakefile.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" +#include +#include +#include "cmDynamicLoader.h" +#include "cmGeneratedFileStream.h" +#include "cmCTestCommand.h" + +#include "cmCTestBuildHandler.h" +#include "cmCTestBuildAndTestHandler.h" +#include "cmCTestConfigureHandler.h" +#include "cmCTestCoverageHandler.h" +#include "cmCTestMemCheckHandler.h" +#include "cmCTestScriptHandler.h" +#include "cmCTestTestHandler.h" +#include "cmCTestUpdateHandler.h" +#include "cmCTestSubmitHandler.h" + +#include "cmVersion.h" + +#include +#include +#include + +#include +#include +#include + +#include // auto_ptr + +#if defined(__BEOS__) +#include /* disable_debugger() API. */ +#endif + +#define DEBUGOUT std::cout << __LINE__ << " "; std::cout +#define DEBUGERR std::cerr << __LINE__ << " "; std::cerr + +//---------------------------------------------------------------------- +struct tm* cmCTest::GetNightlyTime(std::string str, + bool tomorrowtag) +{ + struct tm* lctime; + time_t tctime = time(0); + lctime = gmtime(&tctime); + char buf[1024]; + // add todays year day and month to the time in str because + // curl_getdate no longer assumes the day is today + sprintf(buf, "%d%02d%02d %s", lctime->tm_year+1900, lctime->tm_mday, + lctime->tm_mon, str.c_str()); + cmCTestLog(this, OUTPUT, "Determine Nightly Start Time" << std::endl + << " Specified time: " << str.c_str() << std::endl); + //Convert the nightly start time to seconds. Since we are + //providing only a time and a timezone, the current date of + //the local machine is assumed. Consequently, nightlySeconds + //is the time at which the nightly dashboard was opened or + //will be opened on the date of the current client machine. + //As such, this time may be in the past or in the future. + time_t ntime = curl_getdate(buf, &tctime); + cmCTestLog(this, DEBUG, " Get curl time: " << ntime << std::endl); + tctime = time(0); + cmCTestLog(this, DEBUG, " Get the current time: " << tctime << std::endl); + + const int dayLength = 24 * 60 * 60; + cmCTestLog(this, DEBUG, "Seconds: " << tctime << std::endl); + while ( ntime > tctime ) + { + // If nightlySeconds is in the past, this is the current + // open dashboard, then return nightlySeconds. If + // nightlySeconds is in the future, this is the next + // dashboard to be opened, so subtract 24 hours to get the + // time of the current open dashboard + ntime -= dayLength; + cmCTestLog(this, DEBUG, "Pick yesterday" << std::endl); + cmCTestLog(this, DEBUG, " Future time, subtract day: " << ntime + << std::endl); + } + while ( tctime > (ntime + dayLength) ) + { + ntime += dayLength; + cmCTestLog(this, DEBUG, " Past time, add day: " << ntime << std::endl); + } + cmCTestLog(this, DEBUG, "nightlySeconds: " << ntime << std::endl); + cmCTestLog(this, DEBUG, " Current time: " << tctime + << " Nightly time: " << ntime << std::endl); + if ( tomorrowtag ) + { + cmCTestLog(this, OUTPUT, " Use future tag, Add a day" << std::endl); + ntime += dayLength; + } + lctime = gmtime(&ntime); + return lctime; +} + +//---------------------------------------------------------------------- +std::string cmCTest::CleanString(const std::string& str) +{ + std::string::size_type spos = str.find_first_not_of(" \n\t\r\f\v"); + std::string::size_type epos = str.find_last_not_of(" \n\t\r\f\v"); + if ( spos == str.npos ) + { + return std::string(); + } + if ( epos != str.npos ) + { + epos = epos - spos + 1; + } + return str.substr(spos, epos); +} + +//---------------------------------------------------------------------- +std::string cmCTest::CurrentTime() +{ + time_t currenttime = time(0); + struct tm* t = localtime(¤ttime); + //return ::CleanString(ctime(¤ttime)); + char current_time[1024]; + if ( this->ShortDateFormat ) + { + strftime(current_time, 1000, "%b %d %H:%M %Z", t); + } + else + { + strftime(current_time, 1000, "%a %b %d %H:%M:%S %Z %Y", t); + } + cmCTestLog(this, DEBUG, " Current_Time: " << current_time << std::endl); + return cmCTest::MakeXMLSafe(cmCTest::CleanString(current_time)); +} + + +//---------------------------------------------------------------------- +std::string cmCTest::MakeXMLSafe(const std::string& str) +{ + std::vector result; + result.reserve(500); + const char* pos = str.c_str(); + for ( ;*pos; ++pos) + { + char ch = *pos; + if ( (ch > 126 || ch < 32) && ch != 9 && + ch != 10 && ch != 13 && ch != '\r' ) + { + char buffer[33]; + sprintf(buffer, "<%d>", (int)ch); + //sprintf(buffer, "&#x%0x;", (unsigned int)ch); + result.insert(result.end(), buffer, buffer+strlen(buffer)); + } + else + { + const char* const encodedChars[] = { + "&", + "<", + ">" + }; + switch ( ch ) + { + case '&': + result.insert(result.end(), encodedChars[0], encodedChars[0]+5); + break; + case '<': + result.insert(result.end(), encodedChars[1], encodedChars[1]+4); + break; + case '>': + result.insert(result.end(), encodedChars[2], encodedChars[2]+4); + break; + case '\n': + result.push_back('\n'); + break; + case '\r': break; // Ignore \r + default: + result.push_back(ch); + } + } + } + if ( result.size() == 0 ) + { + return ""; + } + return std::string(&*result.begin(), result.size()); +} + +//---------------------------------------------------------------------- +std::string cmCTest::MakeURLSafe(const std::string& str) +{ + cmOStringStream ost; + char buffer[10]; + for ( std::string::size_type pos = 0; pos < str.size(); pos ++ ) + { + unsigned char ch = str[pos]; + if ( ( ch > 126 || ch < 32 || + ch == '&' || + ch == '%' || + ch == '+' || + ch == '=' || + ch == '@' + ) && ch != 9 ) + { + sprintf(buffer, "%02x;", (unsigned int)ch); + ost << buffer; + } + else + { + ost << ch; + } + } + return ost.str(); +} + +//---------------------------------------------------------------------- +cmCTest::cmCTest() +{ + this->SubmitIndex = 0; + this->ForceNewCTestProcess = false; + this->TomorrowTag = false; + this->Verbose = false; + this->Debug = false; + this->ShowLineNumbers = false; + this->Quiet = false; + this->ExtraVerbose = false; + this->ProduceXML = false; + this->ShowOnly = false; + this->RunConfigurationScript = false; + this->TestModel = cmCTest::EXPERIMENTAL; + this->InteractiveDebugMode = true; + this->TimeOut = 0; + this->CompressXMLFiles = false; + this->CTestConfigFile = ""; + this->OutputLogFile = 0; + this->OutputLogFileLastTag = -1; + this->SuppressUpdatingCTestConfiguration = false; + this->DartVersion = 1; + + int cc; + for ( cc=0; cc < cmCTest::LAST_TEST; cc ++ ) + { + this->Tests[cc] = 0; + } + this->ShortDateFormat = true; + + this->TestingHandlers["build"] = new cmCTestBuildHandler; + this->TestingHandlers["buildtest"] = new cmCTestBuildAndTestHandler; + this->TestingHandlers["coverage"] = new cmCTestCoverageHandler; + this->TestingHandlers["script"] = new cmCTestScriptHandler; + this->TestingHandlers["test"] = new cmCTestTestHandler; + this->TestingHandlers["update"] = new cmCTestUpdateHandler; + this->TestingHandlers["configure"] = new cmCTestConfigureHandler; + this->TestingHandlers["memcheck"] = new cmCTestMemCheckHandler; + this->TestingHandlers["submit"] = new cmCTestSubmitHandler; + + cmCTest::t_TestingHandlers::iterator it; + for ( it = this->TestingHandlers.begin(); + it != this->TestingHandlers.end(); ++ it ) + { + it->second->SetCTestInstance(this); + } + + // Make sure we can capture the build tool output. + cmSystemTools::EnableVSConsoleOutput(); +} + +//---------------------------------------------------------------------- +cmCTest::~cmCTest() +{ + cmCTest::t_TestingHandlers::iterator it; + for ( it = this->TestingHandlers.begin(); + it != this->TestingHandlers.end(); ++ it ) + { + delete it->second; + it->second = 0; + } + this->SetOutputLogFileName(0); +} + +//---------------------------------------------------------------------- +int cmCTest::Initialize(const char* binary_dir, bool new_tag, + bool verbose_tag) +{ + cmCTestLog(this, DEBUG, "Here: " << __LINE__ << std::endl); + if(!this->InteractiveDebugMode) + { + this->BlockTestErrorDiagnostics(); + } + else + { + cmSystemTools::PutEnv("CTEST_INTERACTIVE_DEBUG_MODE=1"); + } + + this->BinaryDir = binary_dir; + cmSystemTools::ConvertToUnixSlashes(this->BinaryDir); + + this->UpdateCTestConfiguration(); + + cmCTestLog(this, DEBUG, "Here: " << __LINE__ << std::endl); + if ( this->ProduceXML ) + { + cmCTestLog(this, DEBUG, "Here: " << __LINE__ << std::endl); + cmCTestLog(this, OUTPUT, + " Site: " << this->GetCTestConfiguration("Site") << std::endl + << " Build name: " << this->GetCTestConfiguration("BuildName") + << std::endl); + cmCTestLog(this, DEBUG, "Produce XML is on" << std::endl); + if ( this->TestModel == cmCTest::NIGHTLY && + this->GetCTestConfiguration("NightlyStartTime").empty() ) + { + cmCTestLog(this, WARNING, + "WARNING: No nightly start time found please set in" + " CTestConfig.cmake or DartConfig.cmake" << std::endl); + cmCTestLog(this, DEBUG, "Here: " << __LINE__ << std::endl); + return 0; + } + } + + cmake cm; + cmGlobalGenerator gg; + gg.SetCMakeInstance(&cm); + std::auto_ptr lg(gg.CreateLocalGenerator()); + lg->SetGlobalGenerator(&gg); + cmMakefile *mf = lg->GetMakefile(); + if ( !this->ReadCustomConfigurationFileTree(this->BinaryDir.c_str(), mf) ) + { + cmCTestLog(this, DEBUG, "Cannot find custom configuration file tree" + << std::endl); + return 0; + } + + if ( this->ProduceXML ) + { + std::string testingDir = this->BinaryDir + "/Testing"; + if ( cmSystemTools::FileExists(testingDir.c_str()) ) + { + if ( !cmSystemTools::FileIsDirectory(testingDir.c_str()) ) + { + cmCTestLog(this, ERROR_MESSAGE, "File " << testingDir + << " is in the place of the testing directory" << std::endl); + return 0; + } + } + else + { + if ( !cmSystemTools::MakeDirectory(testingDir.c_str()) ) + { + cmCTestLog(this, ERROR_MESSAGE, "Cannot create directory " + << testingDir << std::endl); + return 0; + } + } + std::string tagfile = testingDir + "/TAG"; + std::ifstream tfin(tagfile.c_str()); + std::string tag; + time_t tctime = time(0); + if ( this->TomorrowTag ) + { + tctime += ( 24 * 60 * 60 ); + } + struct tm *lctime = gmtime(&tctime); + if ( tfin && cmSystemTools::GetLineFromStream(tfin, tag) ) + { + int year = 0; + int mon = 0; + int day = 0; + int hour = 0; + int min = 0; + sscanf(tag.c_str(), "%04d%02d%02d-%02d%02d", + &year, &mon, &day, &hour, &min); + if ( year != lctime->tm_year + 1900 || + mon != lctime->tm_mon+1 || + day != lctime->tm_mday ) + { + tag = ""; + } + std::string tagmode; + if ( cmSystemTools::GetLineFromStream(tfin, tagmode) ) + { + if ( tagmode.size() > 4 && !( this->Tests[cmCTest::START_TEST] || + this->Tests[ALL_TEST] )) + { + this->TestModel = cmCTest::GetTestModelFromString(tagmode.c_str()); + } + } + tfin.close(); + } + if ( tag.size() == 0 || new_tag || this->Tests[cmCTest::START_TEST] || + this->Tests[ALL_TEST]) + { + cmCTestLog(this, DEBUG, "TestModel: " << this->GetTestModelString() + << std::endl); + cmCTestLog(this, DEBUG, "TestModel: " << this->TestModel << std::endl); + if ( this->TestModel == cmCTest::NIGHTLY ) + { + lctime = this->GetNightlyTime( + this->GetCTestConfiguration("NightlyStartTime"), this->TomorrowTag); + } + char datestring[100]; + sprintf(datestring, "%04d%02d%02d-%02d%02d", + lctime->tm_year + 1900, + lctime->tm_mon+1, + lctime->tm_mday, + lctime->tm_hour, + lctime->tm_min); + tag = datestring; + std::ofstream ofs(tagfile.c_str()); + if ( ofs ) + { + ofs << tag << std::endl; + ofs << this->GetTestModelString() << std::endl; + } + ofs.close(); + if ( verbose_tag ) + { + cmCTestLog(this, OUTPUT, "Create new tag: " << tag << " - " + << this->GetTestModelString() << std::endl); + } + } + this->CurrentTag = tag; + } + return 1; +} + +//---------------------------------------------------------------------- +bool cmCTest::InitializeFromCommand(cmCTestCommand* command, bool first) +{ + if ( !first && !this->CurrentTag.empty() ) + { + return true; + } + + std::string src_dir + = this->GetCTestConfiguration("SourceDirectory").c_str(); + std::string bld_dir = this->GetCTestConfiguration("BuildDirectory").c_str(); + this->DartVersion = 1; + this->SubmitFiles.clear(); + + cmMakefile* mf = command->GetMakefile(); + std::string fname = src_dir; + fname += "/CTestConfig.cmake"; + cmSystemTools::ConvertToUnixSlashes(fname); + if ( cmSystemTools::FileExists(fname.c_str()) ) + { + cmCTestLog(this, OUTPUT, " Reading ctest configuration file: " + << fname.c_str() << std::endl); + bool readit = mf->ReadListFile(mf->GetCurrentListFile(), + fname.c_str() ); + if(!readit) + { + std::string m = "Could not find include file: "; + m += fname; + command->SetError(m.c_str()); + return false; + } + } + else if ( !first ) + { + cmCTestLog(this, WARNING, "Cannot locate CTest configuration: " + << fname.c_str() << std::endl); + } + else + { + cmCTestLog(this, HANDLER_OUTPUT, " Cannot locate CTest configuration: " + << fname.c_str() << std::endl + << " Delay the initialization of CTest" << std::endl); + } + + this->SetCTestConfigurationFromCMakeVariable(mf, "NightlyStartTime", + "CTEST_NIGHTLY_START_TIME"); + this->SetCTestConfigurationFromCMakeVariable(mf, "Site", "CTEST_SITE"); + this->SetCTestConfigurationFromCMakeVariable(mf, "BuildName", + "CTEST_BUILD_NAME"); + const char* dartVersion = mf->GetDefinition("CTEST_DART_SERVER_VERSION"); + if ( dartVersion ) + { + this->DartVersion = atoi(dartVersion); + if ( this->DartVersion < 0 ) + { + cmCTestLog(this, ERROR_MESSAGE, "Invalid Dart server version: " + << dartVersion << ". Please specify the version number." + << std::endl); + return false; + } + } + + if ( !this->Initialize(bld_dir.c_str(), true, false) ) + { + if ( this->GetCTestConfiguration("NightlyStartTime").empty() && first) + { + return true; + } + return false; + } + cmCTestLog(this, OUTPUT, " Use " << this->GetTestModelString() + << " tag: " << this->GetCurrentTag() << std::endl); + return true; +} + + +//---------------------------------------------------------------------- +bool cmCTest::UpdateCTestConfiguration() +{ + if ( this->SuppressUpdatingCTestConfiguration ) + { + return true; + } + std::string fileName = this->CTestConfigFile; + if ( fileName.empty() ) + { + fileName = this->BinaryDir + "/CTestConfiguration.ini"; + if ( !cmSystemTools::FileExists(fileName.c_str()) ) + { + fileName = this->BinaryDir + "/DartConfiguration.tcl"; + } + } + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "UpdateCTestConfiguration from :" + << fileName.c_str() << "\n"); + if ( !cmSystemTools::FileExists(fileName.c_str()) ) + { + // No need to exit if we are not producing XML + if ( this->ProduceXML ) + { + cmCTestLog(this, ERROR_MESSAGE, "Cannot find file: " << fileName.c_str() + << std::endl); + return false; + } + } + else + { + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "Parse Config file:" + << fileName.c_str() << "\n"); + // parse the dart test file + std::ifstream fin(fileName.c_str()); + if(!fin) + { + return false; + } + + char buffer[1024]; + while ( fin ) + { + buffer[0] = 0; + fin.getline(buffer, 1023); + buffer[1023] = 0; + std::string line = cmCTest::CleanString(buffer); + if(line.size() == 0) + { + continue; + } + while ( fin && (line[line.size()-1] == '\\') ) + { + line = line.substr(0, line.size()-1); + buffer[0] = 0; + fin.getline(buffer, 1023); + buffer[1023] = 0; + line += cmCTest::CleanString(buffer); + } + if ( line[0] == '#' ) + { + continue; + } + std::string::size_type cpos = line.find_first_of(":"); + if ( cpos == line.npos ) + { + continue; + } + std::string key = line.substr(0, cpos); + std::string value + = cmCTest::CleanString(line.substr(cpos+1, line.npos)); + this->CTestConfiguration[key] = value; + } + fin.close(); + } + if ( !this->GetCTestConfiguration("BuildDirectory").empty() ) + { + this->BinaryDir = this->GetCTestConfiguration("BuildDirectory"); + cmSystemTools::ChangeDirectory(this->BinaryDir.c_str()); + } + this->TimeOut = atoi(this->GetCTestConfiguration("TimeOut").c_str()); + if ( this->ProduceXML ) + { + this->CompressXMLFiles = cmSystemTools::IsOn( + this->GetCTestConfiguration("CompressSubmission").c_str()); + } + return true; +} + +//---------------------------------------------------------------------- +void cmCTest::BlockTestErrorDiagnostics() +{ + cmSystemTools::PutEnv("DART_TEST_FROM_DART=1"); + cmSystemTools::PutEnv("DASHBOARD_TEST_FROM_CTEST=" CMake_VERSION); +#if defined(_WIN32) + SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); +#elif defined(__BEOS__) + disable_debugger(1); +#endif +} + +//---------------------------------------------------------------------- +void cmCTest::SetTestModel(int mode) +{ + this->InteractiveDebugMode = false; + this->TestModel = mode; +} + +//---------------------------------------------------------------------- +bool cmCTest::SetTest(const char* ttype, bool report) +{ + if ( cmSystemTools::LowerCase(ttype) == "all" ) + { + this->Tests[cmCTest::ALL_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "start" ) + { + this->Tests[cmCTest::START_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "update" ) + { + this->Tests[cmCTest::UPDATE_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "configure" ) + { + this->Tests[cmCTest::CONFIGURE_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "build" ) + { + this->Tests[cmCTest::BUILD_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "test" ) + { + this->Tests[cmCTest::TEST_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "coverage" ) + { + this->Tests[cmCTest::COVERAGE_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "memcheck" ) + { + this->Tests[cmCTest::MEMCHECK_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "notes" ) + { + this->Tests[cmCTest::NOTES_TEST] = 1; + } + else if ( cmSystemTools::LowerCase(ttype) == "submit" ) + { + this->Tests[cmCTest::SUBMIT_TEST] = 1; + } + else + { + if ( report ) + { + cmCTestLog(this, ERROR_MESSAGE, "Don't know about test \"" << ttype + << "\" yet..." << std::endl); + } + return false; + } + return true; +} + +//---------------------------------------------------------------------- +void cmCTest::Finalize() +{ +} + +//---------------------------------------------------------------------- +bool cmCTest::OpenOutputFile(const std::string& path, + const std::string& name, cmGeneratedFileStream& stream, + bool compress) +{ + std::string testingDir = this->BinaryDir + "/Testing"; + if ( path.size() > 0 ) + { + testingDir += "/" + path; + } + if ( cmSystemTools::FileExists(testingDir.c_str()) ) + { + if ( !cmSystemTools::FileIsDirectory(testingDir.c_str()) ) + { + cmCTestLog(this, ERROR_MESSAGE, "File " << testingDir + << " is in the place of the testing directory" + << std::endl); + return false; + } + } + else + { + if ( !cmSystemTools::MakeDirectory(testingDir.c_str()) ) + { + cmCTestLog(this, ERROR_MESSAGE, "Cannot create directory " << testingDir + << std::endl); + return false; + } + } + std::string filename = testingDir + "/" + name; + stream.Open(filename.c_str()); + if( !stream ) + { + cmCTestLog(this, ERROR_MESSAGE, "Problem opening file: " << filename + << std::endl); + return false; + } + if ( compress ) + { + if ( this->CompressXMLFiles ) + { + stream.SetCompression(true); + } + } + return true; +} + +//---------------------------------------------------------------------- +bool cmCTest::AddIfExists(SetOfStrings& files, const char* file) +{ + if ( this->CTestFileExists(file) ) + { + files.insert(file); + } + else + { + std::string name = file; + name += ".gz"; + if ( this->CTestFileExists(name.c_str()) ) + { + files.insert(name.c_str()); + } + else + { + return false; + } + } + return true; +} + +//---------------------------------------------------------------------- +bool cmCTest::CTestFileExists(const std::string& filename) +{ + std::string testingDir = this->BinaryDir + "/Testing/" + + this->CurrentTag + "/" + filename; + return cmSystemTools::FileExists(testingDir.c_str()); +} + +//---------------------------------------------------------------------- +cmCTestGenericHandler* cmCTest::GetInitializedHandler(const char* handler) +{ + cmCTest::t_TestingHandlers::iterator it = + this->TestingHandlers.find(handler); + if ( it == this->TestingHandlers.end() ) + { + return 0; + } + it->second->Initialize(); + return it->second; +} + +//---------------------------------------------------------------------- +cmCTestGenericHandler* cmCTest::GetHandler(const char* handler) +{ + cmCTest::t_TestingHandlers::iterator it = + this->TestingHandlers.find(handler); + if ( it == this->TestingHandlers.end() ) + { + return 0; + } + return it->second; +} + +//---------------------------------------------------------------------- +int cmCTest::ExecuteHandler(const char* shandler) +{ + cmCTestGenericHandler* handler = this->GetHandler(shandler); + if ( !handler ) + { + return -1; + } + handler->Initialize(); + return handler->ProcessHandler(); +} + +//---------------------------------------------------------------------- +int cmCTest::ProcessTests() +{ + int res = 0; + bool notest = true; + int cc; + int update_count = 0; + + cmCTestLog(this, OUTPUT, "Start processing tests" << std::endl); + + for ( cc = 0; cc < LAST_TEST; cc ++ ) + { + if ( this->Tests[cc] ) + { + notest = false; + break; + } + } + if (( this->Tests[UPDATE_TEST] || this->Tests[ALL_TEST] ) && + (this->GetRemainingTimeAllowed() - 120 > 0)) + { + cmCTestGenericHandler* uphandler = this->GetHandler("update"); + uphandler->SetPersistentOption("SourceDirectory", + this->GetCTestConfiguration("SourceDirectory").c_str()); + update_count = uphandler->ProcessHandler(); + if ( update_count < 0 ) + { + res |= cmCTest::UPDATE_ERRORS; + } + } + if ( this->TestModel == cmCTest::CONTINUOUS && !update_count ) + { + return 0; + } + if (( this->Tests[CONFIGURE_TEST] || this->Tests[ALL_TEST] )&& + (this->GetRemainingTimeAllowed() - 120 > 0)) + { + if (this->GetHandler("configure")->ProcessHandler() < 0) + { + res |= cmCTest::CONFIGURE_ERRORS; + } + } + if (( this->Tests[BUILD_TEST] || this->Tests[ALL_TEST] )&& + (this->GetRemainingTimeAllowed() - 120 > 0)) + { + this->UpdateCTestConfiguration(); + if (this->GetHandler("build")->ProcessHandler() < 0) + { + res |= cmCTest::BUILD_ERRORS; + } + } + if (( this->Tests[TEST_TEST] || this->Tests[ALL_TEST] || notest ) && + (this->GetRemainingTimeAllowed() - 120 > 0)) + { + this->UpdateCTestConfiguration(); + if (this->GetHandler("test")->ProcessHandler() < 0) + { + res |= cmCTest::TEST_ERRORS; + } + } + if (( this->Tests[COVERAGE_TEST] || this->Tests[ALL_TEST] ) && + (this->GetRemainingTimeAllowed() - 120 > 0)) + { + this->UpdateCTestConfiguration(); + if (this->GetHandler("coverage")->ProcessHandler() < 0) + { + res |= cmCTest::COVERAGE_ERRORS; + } + } + if (( this->Tests[MEMCHECK_TEST] || this->Tests[ALL_TEST] )&& + (this->GetRemainingTimeAllowed() - 120 > 0)) + { + this->UpdateCTestConfiguration(); + if (this->GetHandler("memcheck")->ProcessHandler() < 0) + { + res |= cmCTest::MEMORY_ERRORS; + } + } + if ( !notest ) + { + std::string notes_dir = this->BinaryDir + "/Testing/Notes"; + if ( cmSystemTools::FileIsDirectory(notes_dir.c_str()) ) + { + cmsys::Directory d; + d.Load(notes_dir.c_str()); + unsigned long kk; + for ( kk = 0; kk < d.GetNumberOfFiles(); kk ++ ) + { + const char* file = d.GetFile(kk); + std::string fullname = notes_dir + "/" + file; + if ( cmSystemTools::FileExists(fullname.c_str()) && + !cmSystemTools::FileIsDirectory(fullname.c_str()) ) + { + if ( this->NotesFiles.size() > 0 ) + { + this->NotesFiles += ";"; + } + this->NotesFiles += fullname; + this->Tests[NOTES_TEST] = 1; + } + } + } + } + if ( this->Tests[NOTES_TEST] || this->Tests[ALL_TEST] ) + { + this->UpdateCTestConfiguration(); + if ( this->NotesFiles.size() ) + { + this->GenerateNotesFile(this->NotesFiles.c_str()); + } + } + if ( this->Tests[SUBMIT_TEST] || this->Tests[ALL_TEST] ) + { + this->UpdateCTestConfiguration(); + if (this->GetHandler("submit")->ProcessHandler() < 0) + { + res |= cmCTest::SUBMIT_ERRORS; + } + } + if ( res != 0 ) + { + cmCTestLog(this, ERROR_MESSAGE, "Errors while running CTest" + << std::endl); + } + return res; +} + +//---------------------------------------------------------------------- +std::string cmCTest::GetTestModelString() +{ + if ( !this->SpecificTrack.empty() ) + { + return this->SpecificTrack; + } + switch ( this->TestModel ) + { + case cmCTest::NIGHTLY: + return "Nightly"; + case cmCTest::CONTINUOUS: + return "Continuous"; + } + return "Experimental"; +} + +//---------------------------------------------------------------------- +int cmCTest::GetTestModelFromString(const char* str) +{ + if ( !str ) + { + return cmCTest::EXPERIMENTAL; + } + std::string rstr = cmSystemTools::LowerCase(str); + if ( strncmp(rstr.c_str(), "cont", 4) == 0 ) + { + return cmCTest::CONTINUOUS; + } + if ( strncmp(rstr.c_str(), "nigh", 4) == 0 ) + { + return cmCTest::NIGHTLY; + } + return cmCTest::EXPERIMENTAL; +} + +//###################################################################### +//###################################################################### +//###################################################################### +//###################################################################### + +//---------------------------------------------------------------------- +int cmCTest::RunMakeCommand(const char* command, std::string* output, + int* retVal, const char* dir, int timeout, std::ofstream& ofs) +{ + // First generate the command and arguments + std::vector args = cmSystemTools::ParseArguments(command); + + if(args.size() < 1) + { + return false; + } + + std::vector argv; + for(std::vector::const_iterator a = args.begin(); + a != args.end(); ++a) + { + argv.push_back(a->c_str()); + } + argv.push_back(0); + + if ( output ) + { + *output = ""; + } + + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "Run command:"); + std::vector::iterator ait; + for ( ait = argv.begin(); ait != argv.end() && *ait; ++ ait ) + { + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, " \"" << *ait << "\""); + } + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, std::endl); + + // Now create process object + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetCommand(cp, &*argv.begin()); + cmsysProcess_SetWorkingDirectory(cp, dir); + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + cmsysProcess_SetTimeout(cp, timeout); + cmsysProcess_Execute(cp); + + // Initialize tick's + std::string::size_type tick = 0; + std::string::size_type tick_len = 1024; + std::string::size_type tick_line_len = 50; + + char* data; + int length; + cmCTestLog(this, HANDLER_OUTPUT, + " Each . represents " << tick_len << " bytes of output" << std::endl + << " " << std::flush); + while(cmsysProcess_WaitForData(cp, &data, &length, 0)) + { + if ( output ) + { + for(int cc =0; cc < length; ++cc) + { + if(data[cc] == 0) + { + data[cc] = '\n'; + } + } + + output->append(data, length); + while ( output->size() > (tick * tick_len) ) + { + tick ++; + cmCTestLog(this, HANDLER_OUTPUT, "." << std::flush); + if ( tick % tick_line_len == 0 && tick > 0 ) + { + cmCTestLog(this, HANDLER_OUTPUT, " Size: " + << int((output->size() / 1024.0) + 1) << "K" << std::endl + << " " << std::flush); + } + } + } + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, cmCTestLogWrite(data, length)); + if ( ofs ) + { + ofs << cmCTestLogWrite(data, length); + } + } + cmCTestLog(this, OUTPUT, " Size of output: " + << int(output->size() / 1024.0) << "K" << std::endl); + + cmsysProcess_WaitForExit(cp, 0); + + int result = cmsysProcess_GetState(cp); + + if(result == cmsysProcess_State_Exited) + { + *retVal = cmsysProcess_GetExitValue(cp); + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "Command exited with the value: " + << *retVal << std::endl); + } + else if(result == cmsysProcess_State_Exception) + { + *retVal = cmsysProcess_GetExitException(cp); + cmCTestLog(this, WARNING, "There was an exception: " << *retVal + << std::endl); + } + else if(result == cmsysProcess_State_Expired) + { + cmCTestLog(this, WARNING, "There was a timeout" << std::endl); + } + else if(result == cmsysProcess_State_Error) + { + *output += "\n*** ERROR executing: "; + *output += cmsysProcess_GetErrorString(cp); + *output += "\n***The build process failed."; + cmCTestLog(this, ERROR_MESSAGE, "There was an error: " + << cmsysProcess_GetErrorString(cp) << std::endl); + } + + cmsysProcess_Delete(cp); + + return result; +} + +//###################################################################### +//###################################################################### +//###################################################################### +//###################################################################### + +//---------------------------------------------------------------------- +int cmCTest::RunTest(std::vector argv, + std::string* output, int *retVal, + std::ostream* log, double testTimeOut) +{ + // determine how much time we have + double timeout = this->GetRemainingTimeAllowed() - 120; + if (this->TimeOut && this->TimeOut < timeout) + { + timeout = this->TimeOut; + } + if (testTimeOut + && testTimeOut < this->GetRemainingTimeAllowed()) + { + timeout = testTimeOut; + } + + // always have at least 1 second if we got to here + if (timeout <= 0) + { + timeout = 1; + } + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, + "Test timeout computed to be: " << timeout << "\n"); + if(cmSystemTools::SameFile(argv[0], this->CTestSelf.c_str()) && + !this->ForceNewCTestProcess) + { + cmCTest inst; + inst.ConfigType = this->ConfigType; + inst.TimeOut = timeout; + std::vector args; + for(unsigned int i =0; i < argv.size(); ++i) + { + if(argv[i]) + { + // make sure we pass the timeout in for any build and test + // invocations. Since --build-generator is required this is a + // good place to check for it, and to add the arguments in + if (strcmp(argv[i],"--build-generator") == 0 && timeout) + { + args.push_back("--test-timeout"); + cmOStringStream msg; + msg << timeout; + args.push_back(msg.str()); + } + args.push_back(argv[i]); + } + } + if ( *log ) + { + *log << "* Run internal CTest" << std::endl; + } + std::string oldpath = cmSystemTools::GetCurrentWorkingDirectory(); + + *retVal = inst.Run(args, output); + if ( *log ) + { + *log << output->c_str(); + } + cmSystemTools::ChangeDirectory(oldpath.c_str()); + + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, + "Internal cmCTest object used to run test." << std::endl + << *output << std::endl); + return cmsysProcess_State_Exited; + } + std::vector tempOutput; + if ( output ) + { + *output = ""; + } + + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetCommand(cp, &*argv.begin()); + cmCTestLog(this, DEBUG, "Command is: " << argv[0] << std::endl); + if(cmSystemTools::GetRunCommandHideConsole()) + { + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + } + + cmsysProcess_SetTimeout(cp, timeout); + cmsysProcess_Execute(cp); + + char* data; + int length; + while(cmsysProcess_WaitForData(cp, &data, &length, 0)) + { + if ( output ) + { + tempOutput.insert(tempOutput.end(), data, data+length); + } + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, cmCTestLogWrite(data, length)); + if ( log ) + { + log->write(data, length); + } + } + + cmsysProcess_WaitForExit(cp, 0); + if(output && tempOutput.begin() != tempOutput.end()) + { + output->append(&*tempOutput.begin(), tempOutput.size()); + } + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "-- Process completed" + << std::endl); + + int result = cmsysProcess_GetState(cp); + + if(result == cmsysProcess_State_Exited) + { + *retVal = cmsysProcess_GetExitValue(cp); + } + else if(result == cmsysProcess_State_Exception) + { + *retVal = cmsysProcess_GetExitException(cp); + std::string outerr = "\n*** Exception executing: "; + outerr += cmsysProcess_GetExceptionString(cp); + *output += outerr; + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, outerr.c_str() << std::endl + << std::flush); + } + else if(result == cmsysProcess_State_Error) + { + std::string outerr = "\n*** ERROR executing: "; + outerr += cmsysProcess_GetErrorString(cp); + *output += outerr; + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, outerr.c_str() << std::endl + << std::flush); + } + cmsysProcess_Delete(cp); + + return result; +} + +//---------------------------------------------------------------------- +void cmCTest::StartXML(std::ostream& ostr) +{ + if(this->CurrentTag.empty()) + { + cmCTestLog(this, ERROR_MESSAGE, + "Current Tag empty, this may mean" + " NightlStartTime was not set correctly." << std::endl); + cmSystemTools::SetFatalErrorOccured(); + } + // find out about the system + cmsys::SystemInformation info; + info.RunCPUCheck(); + info.RunOSCheck(); + info.RunMemoryCheck(); + ostr << "\n" + << "GetCTestConfiguration("BuildName") + << "\"\n\tBuildStamp=\"" << this->CurrentTag << "-" + << this->GetTestModelString() << "\"\n\tName=\"" + << this->GetCTestConfiguration("Site") << "\"\n\tGenerator=\"ctest" + << cmVersion::GetCMakeVersion() << "\"" + << "\tOSName=\"" << info.GetOSName() << "\"\n" + << "\tHostname=\"" << info.GetHostname() << "\"\n" + << "\tOSRelease=\"" << info.GetOSRelease() << "\"\n" + << "\tOSVersion=\"" << info.GetOSVersion() << "\"\n" + << "\tOSPlatform=\"" << info.GetOSPlatform() << "\"\n" + << "\tIs64Bits=\"" << info.Is64Bits() << "\"\n" + << "\tVendorString=\"" << info.GetVendorString() << "\"\n" + << "\tVendorID=\"" << info.GetVendorID() << "\"\n" + << "\tFamilyID=\"" << info.GetFamilyID() << "\"\n" + << "\tModelID=\"" << info.GetModelID() << "\"\n" + << "\tProcessorCacheSize=\"" << info.GetProcessorCacheSize() << "\"\n" + << "\tNumberOfLogicalCPU=\"" << info.GetNumberOfLogicalCPU() << "\"\n" + << "\tNumberOfPhysicalCPU=\""<< info.GetNumberOfPhysicalCPU() << "\"\n" + << "\tTotalVirtualMemory=\"" << info.GetTotalVirtualMemory() << "\"\n" + << "\tTotalPhysicalMemory=\""<< info.GetTotalPhysicalMemory() << "\"\n" + << "\tLogicalProcessorsPerPhysical=\"" + << info.GetLogicalProcessorsPerPhysical() << "\"\n" + << "\tProcessorClockFrequency=\"" + << info.GetProcessorClockFrequency() << "\"\n" + << ">" << std::endl; +} + +//---------------------------------------------------------------------- +void cmCTest::EndXML(std::ostream& ostr) +{ + ostr << "" << std::endl; +} + +//---------------------------------------------------------------------- +int cmCTest::GenerateCTestNotesOutput(std::ostream& os, + const cmCTest::VectorOfStrings& files) +{ + cmCTest::VectorOfStrings::const_iterator it; + os << "\n" + << " \"?>\n" + << "GetCTestConfiguration("BuildName") + << "\" BuildStamp=\"" + << this->CurrentTag << "-" << this->GetTestModelString() << "\" Name=\"" + << this->GetCTestConfiguration("Site") << "\" Generator=\"ctest" + << cmVersion::GetCMakeVersion() + << "\">\n" + << "" << std::endl; + + for ( it = files.begin(); it != files.end(); it ++ ) + { + cmCTestLog(this, OUTPUT, "\tAdd file: " << it->c_str() << std::endl); + std::string note_time = this->CurrentTime(); + os << "MakeXMLSafe(it->c_str()) << "\">\n" + << "\n" + << "" << note_time << "\n" + << "" << std::endl; + std::ifstream ifs(it->c_str()); + if ( ifs ) + { + std::string line; + while ( cmSystemTools::GetLineFromStream(ifs, line) ) + { + os << this->MakeXMLSafe(line) << std::endl; + } + ifs.close(); + } + else + { + os << "Problem reading file: " << it->c_str() << std::endl; + cmCTestLog(this, ERROR_MESSAGE, "Problem reading file: " << it->c_str() + << " while creating notes" << std::endl); + } + os << "\n" + << "" << std::endl; + } + os << "\n" + << "" << std::endl; + return 1; +} + +//---------------------------------------------------------------------- +int cmCTest::GenerateNotesFile(const std::vector &files) +{ + cmGeneratedFileStream ofs; + if ( !this->OpenOutputFile(this->CurrentTag, "Notes.xml", ofs) ) + { + cmCTestLog(this, ERROR_MESSAGE, "Cannot open notes file" << std::endl); + return 1; + } + + this->GenerateCTestNotesOutput(ofs, files); + return 0; +} + +//---------------------------------------------------------------------- +int cmCTest::GenerateNotesFile(const char* cfiles) +{ + if ( !cfiles ) + { + return 1; + } + + std::vector files; + + cmCTestLog(this, OUTPUT, "Create notes file" << std::endl); + + files = cmSystemTools::SplitString(cfiles, ';'); + if ( files.size() == 0 ) + { + return 1; + } + + return this->GenerateNotesFile(files); +} + +//---------------------------------------------------------------------- +bool cmCTest::SubmitExtraFiles(const std::vector &files) +{ + std::vector::const_iterator it; + for ( it = files.begin(); + it != files.end(); + ++ it ) + { + if ( !cmSystemTools::FileExists(it->c_str()) ) + { + cmCTestLog(this, ERROR_MESSAGE, "Cannot find extra file: " + << it->c_str() << " to submit." + << std::endl;); + return false; + } + this->AddSubmitFile(it->c_str()); + } + return true; +} + +//---------------------------------------------------------------------- +bool cmCTest::SubmitExtraFiles(const char* cfiles) +{ + if ( !cfiles ) + { + return 1; + } + + std::vector files; + + cmCTestLog(this, OUTPUT, "Submit extra files" << std::endl); + + files = cmSystemTools::SplitString(cfiles, ';'); + if ( files.size() == 0 ) + { + return 1; + } + + return this->SubmitExtraFiles(files); +} + + +//------------------------------------------------------- +// for a -D argument convert the next argument into +// the proper list of dashboard steps via SetTest +bool cmCTest::AddTestsForDashboardType(std::string &targ) +{ + if ( targ == "Experimental" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Start"); + this->SetTest("Configure"); + this->SetTest("Build"); + this->SetTest("Test"); + this->SetTest("Coverage"); + this->SetTest("Submit"); + } + else if ( targ == "ExperimentalStart" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Start"); + } + else if ( targ == "ExperimentalUpdate" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Update"); + } + else if ( targ == "ExperimentalConfigure" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Configure"); + } + else if ( targ == "ExperimentalBuild" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Build"); + } + else if ( targ == "ExperimentalTest" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Test"); + } + else if ( targ == "ExperimentalMemCheck" + || targ == "ExperimentalPurify" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("MemCheck"); + } + else if ( targ == "ExperimentalCoverage" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Coverage"); + } + else if ( targ == "ExperimentalSubmit" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Submit"); + } + else if ( targ == "Continuous" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Start"); + this->SetTest("Update"); + this->SetTest("Configure"); + this->SetTest("Build"); + this->SetTest("Test"); + this->SetTest("Coverage"); + this->SetTest("Submit"); + } + else if ( targ == "ContinuousStart" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Start"); + } + else if ( targ == "ContinuousUpdate" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Update"); + } + else if ( targ == "ContinuousConfigure" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Configure"); + } + else if ( targ == "ContinuousBuild" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Build"); + } + else if ( targ == "ContinuousTest" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Test"); + } + else if ( targ == "ContinuousMemCheck" + || targ == "ContinuousPurify" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("MemCheck"); + } + else if ( targ == "ContinuousCoverage" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Coverage"); + } + else if ( targ == "ContinuousSubmit" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + this->SetTest("Submit"); + } + else if ( targ == "Nightly" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Start"); + this->SetTest("Update"); + this->SetTest("Configure"); + this->SetTest("Build"); + this->SetTest("Test"); + this->SetTest("Coverage"); + this->SetTest("Submit"); + } + else if ( targ == "NightlyStart" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Start"); + } + else if ( targ == "NightlyUpdate" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Update"); + } + else if ( targ == "NightlyConfigure" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Configure"); + } + else if ( targ == "NightlyBuild" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Build"); + } + else if ( targ == "NightlyTest" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Test"); + } + else if ( targ == "NightlyMemCheck" + || targ == "NightlyPurify" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("MemCheck"); + } + else if ( targ == "NightlyCoverage" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Coverage"); + } + else if ( targ == "NightlySubmit" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Submit"); + } + else if ( targ == "MemoryCheck" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + this->SetTest("Start"); + this->SetTest("Configure"); + this->SetTest("Build"); + this->SetTest("MemCheck"); + this->SetTest("Coverage"); + this->SetTest("Submit"); + } + else if ( targ == "NightlyMemoryCheck" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + this->SetTest("Start"); + this->SetTest("Update"); + this->SetTest("Configure"); + this->SetTest("Build"); + this->SetTest("MemCheck"); + this->SetTest("Coverage"); + this->SetTest("Submit"); + } + else + { + cmCTestLog(this, ERROR_MESSAGE, + "CTest -D called with incorrect option: " + << targ << std::endl); + cmCTestLog(this, ERROR_MESSAGE, "Available options are:" << std::endl + << " " << "ctest" << " -D Continuous" << std::endl + << " " << "ctest" + << " -D Continuous(Start|Update|Configure|Build)" << std::endl + << " " << "ctest" + << " -D Continuous(Test|Coverage|MemCheck|Submit)" + << std::endl + << " " << "ctest" << " -D Experimental" << std::endl + << " " << "ctest" + << " -D Experimental(Start|Update|Configure|Build)" + << std::endl + << " " << "ctest" + << " -D Experimental(Test|Coverage|MemCheck|Submit)" + << std::endl + << " " << "ctest" << " -D Nightly" << std::endl + << " " << "ctest" + << " -D Nightly(Start|Update|Configure|Build)" << std::endl + << " " << "ctest" + << " -D Nightly(Test|Coverage|MemCheck|Submit)" << std::endl + << " " << "ctest" << " -D NightlyMemoryCheck" << std::endl); + return false; + } + return true; +} + + +//---------------------------------------------------------------------- +bool cmCTest::CheckArgument(const std::string& arg, const char* varg1, + const char* varg2) +{ + if ( varg1 && arg == varg1 || varg2 && arg == varg2 ) + { + return true; + } + return false; +} + + +//---------------------------------------------------------------------- +// Processes one command line argument (and its arguments if any) +// for many simple options and then returns +void cmCTest::HandleCommandLineArguments(size_t &i, + std::vector &args) +{ + std::string arg = args[i]; + if(this->CheckArgument(arg, "--ctest-config") && i < args.size() - 1) + { + i++; + this->CTestConfigFile= args[i]; + } + + if(this->CheckArgument(arg, "-C", "--build-config") && + i < args.size() - 1) + { + i++; + this->SetConfigType(args[i].c_str()); + } + + if(this->CheckArgument(arg, "--debug")) + { + this->Debug = true; + this->ShowLineNumbers = true; + } + if(this->CheckArgument(arg, "--track") && i < args.size() - 1) + { + i++; + this->SpecificTrack = args[i]; + } + if(this->CheckArgument(arg, "--show-line-numbers")) + { + this->ShowLineNumbers = true; + } + if(this->CheckArgument(arg, "-Q", "--quiet")) + { + this->Quiet = true; + } + if(this->CheckArgument(arg, "-V", "--verbose")) + { + this->Verbose = true; + } + if(this->CheckArgument(arg, "-VV", "--extra-verbose")) + { + this->ExtraVerbose = true; + this->Verbose = true; + } + + if(this->CheckArgument(arg, "-N", "--show-only")) + { + this->ShowOnly = true; + } + + if(this->CheckArgument(arg, "-O", "--output-log") && i < args.size() - 1 ) + { + i++; + this->SetOutputLogFileName(args[i].c_str()); + } + + if(this->CheckArgument(arg, "--tomorrow-tag")) + { + this->TomorrowTag = true; + } + if(this->CheckArgument(arg, "--force-new-ctest-process")) + { + this->ForceNewCTestProcess = true; + } + if(this->CheckArgument(arg, "--interactive-debug-mode") && + i < args.size() - 1 ) + { + i++; + this->InteractiveDebugMode = cmSystemTools::IsOn(args[i].c_str()); + } + if(this->CheckArgument(arg, "--submit-index") && i < args.size() - 1 ) + { + i++; + this->SubmitIndex = atoi(args[i].c_str()); + if ( this->SubmitIndex < 0 ) + { + this->SubmitIndex = 0; + } + } + + if(this->CheckArgument(arg, "--overwrite") && i < args.size() - 1) + { + i++; + this->AddCTestConfigurationOverwrite(args[i].c_str()); + } + if(this->CheckArgument(arg, "-A", "--add-notes") && i < args.size() - 1) + { + this->ProduceXML = true; + this->SetTest("Notes"); + i++; + this->SetNotesFiles(args[i].c_str()); + } + + // options that control what tests are run + if(this->CheckArgument(arg, "-I", "--tests-information") && + i < args.size() - 1) + { + i++; + this->GetHandler("test")->SetPersistentOption("TestsToRunInformation", + args[i].c_str()); + this->GetHandler("memcheck")-> + SetPersistentOption("TestsToRunInformation",args[i].c_str()); + } + if(this->CheckArgument(arg, "-U", "--union")) + { + this->GetHandler("test")->SetPersistentOption("UseUnion", "true"); + this->GetHandler("memcheck")->SetPersistentOption("UseUnion", "true"); + } + if(this->CheckArgument(arg, "-R", "--tests-regex") && i < args.size() - 1) + { + i++; + this->GetHandler("test")-> + SetPersistentOption("IncludeRegularExpression", args[i].c_str()); + this->GetHandler("memcheck")-> + SetPersistentOption("IncludeRegularExpression", args[i].c_str()); + } + + if(this->CheckArgument(arg, "-E", "--exclude-regex") && + i < args.size() - 1) + { + i++; + this->GetHandler("test")-> + SetPersistentOption("ExcludeRegularExpression", args[i].c_str()); + this->GetHandler("memcheck")-> + SetPersistentOption("ExcludeRegularExpression", args[i].c_str()); + } +} + +//---------------------------------------------------------------------- +// handle the -S -SR and -SP arguments +void cmCTest::HandleScriptArguments(size_t &i, + std::vector &args, + bool &SRArgumentSpecified) +{ + std::string arg = args[i]; + if(this->CheckArgument(arg, "-SP", "--script-new-process") && + i < args.size() - 1 ) + { + this->RunConfigurationScript = true; + i++; + cmCTestScriptHandler* ch + = static_cast(this->GetHandler("script")); + // -SR is an internal argument, -SP should be ignored when it is passed + if (!SRArgumentSpecified) + { + ch->AddConfigurationScript(args[i].c_str(),false); + } + } + + if(this->CheckArgument(arg, "-SR", "--script-run") && + i < args.size() - 1 ) + { + SRArgumentSpecified = true; + this->RunConfigurationScript = true; + i++; + cmCTestScriptHandler* ch + = static_cast(this->GetHandler("script")); + ch->AddConfigurationScript(args[i].c_str(),true); + } + + if(this->CheckArgument(arg, "-S", "--script") && i < args.size() - 1 ) + { + this->RunConfigurationScript = true; + i++; + cmCTestScriptHandler* ch + = static_cast(this->GetHandler("script")); + // -SR is an internal argument, -S should be ignored when it is passed + if (!SRArgumentSpecified) + { + ch->AddConfigurationScript(args[i].c_str(),true); + } + } +} + +//---------------------------------------------------------------------- +// the main entry point of ctest, called from main +int cmCTest::Run(std::vector &args, std::string* output) +{ + this->FindRunningCMake(); + const char* ctestExec = "ctest"; + bool cmakeAndTest = false; + bool performSomeTest = true; + bool SRArgumentSpecified = false; + + // copy the command line + for(size_t i=0; i < args.size(); ++i) + { + this->InitialCommandLineArguments.push_back(args[i]); + } + + // process the command line arguments + for(size_t i=1; i < args.size(); ++i) + { + // handle the simple commandline arguments + this->HandleCommandLineArguments(i,args); + + // handle the script arguments -S -SR -SP + this->HandleScriptArguments(i,args,SRArgumentSpecified); + + // handle a request for a dashboard + std::string arg = args[i]; + if(this->CheckArgument(arg, "-D", "--dashboard") && i < args.size() - 1 ) + { + this->ProduceXML = true; + i++; + std::string targ = args[i]; + // AddTestsForDashboard parses the dashborad type and converts it + // into the seperate stages + if (!this->AddTestsForDashboardType(targ)) + { + performSomeTest = false; + } + } + + if(this->CheckArgument(arg, "-T", "--test-action") && + (i < args.size() -1) ) + { + this->ProduceXML = true; + i++; + if ( !this->SetTest(args[i].c_str(), false) ) + { + performSomeTest = false; + cmCTestLog(this, ERROR_MESSAGE, + "CTest -T called with incorrect option: " + << args[i].c_str() << std::endl); + cmCTestLog(this, ERROR_MESSAGE, "Available options are:" << std::endl + << " " << ctestExec << " -T all" << std::endl + << " " << ctestExec << " -T start" << std::endl + << " " << ctestExec << " -T update" << std::endl + << " " << ctestExec << " -T configure" << std::endl + << " " << ctestExec << " -T build" << std::endl + << " " << ctestExec << " -T test" << std::endl + << " " << ctestExec << " -T coverage" << std::endl + << " " << ctestExec << " -T memcheck" << std::endl + << " " << ctestExec << " -T notes" << std::endl + << " " << ctestExec << " -T submit" << std::endl); + } + } + + // what type of test model + if(this->CheckArgument(arg, "-M", "--test-model") && + (i < args.size() -1) ) + { + i++; + std::string const& str = args[i]; + if ( cmSystemTools::LowerCase(str) == "nightly" ) + { + this->SetTestModel(cmCTest::NIGHTLY); + } + else if ( cmSystemTools::LowerCase(str) == "continuous" ) + { + this->SetTestModel(cmCTest::CONTINUOUS); + } + else if ( cmSystemTools::LowerCase(str) == "experimental" ) + { + this->SetTestModel(cmCTest::EXPERIMENTAL); + } + else + { + performSomeTest = false; + cmCTestLog(this, ERROR_MESSAGE, + "CTest -M called with incorrect option: " << str.c_str() + << std::endl); + cmCTestLog(this, ERROR_MESSAGE, "Available options are:" << std::endl + << " " << ctestExec << " -M Continuous" << std::endl + << " " << ctestExec << " -M Experimental" << std::endl + << " " << ctestExec << " -M Nightly" << std::endl); + } + } + + if(this->CheckArgument(arg, "--extra-submit") && i < args.size() - 1) + { + this->ProduceXML = true; + this->SetTest("Submit"); + i++; + if ( !this->SubmitExtraFiles(args[i].c_str()) ) + { + return 0; + } + } + + // --build-and-test options + if(this->CheckArgument(arg, "--build-and-test") && i < args.size() - 1) + { + cmakeAndTest = true; + } + + // pass the argument to all the handlers as well, but i may no longer be + // set to what it was originally so I'm not sure this is working as + // intended + cmCTest::t_TestingHandlers::iterator it; + for ( it = this->TestingHandlers.begin(); + it != this->TestingHandlers.end(); + ++ it ) + { + if ( !it->second->ProcessCommandLineArguments(arg, i, args) ) + { + cmCTestLog(this, ERROR_MESSAGE, + "Problem parsing command line arguments within a handler"); + return 0; + } + } + } // the close of the for argument loop + + + // now what sould cmake do? if --build-and-test was specified then + // we run the build and test handler and return + if(cmakeAndTest) + { + this->Verbose = true; + cmCTestBuildAndTestHandler* handler = + static_cast(this->GetHandler("buildtest")); + int retv = handler->ProcessHandler(); + *output = handler->GetOutput(); +#ifdef CMAKE_BUILD_WITH_CMAKE + cmDynamicLoader::FlushCache(); +#endif + return retv; + } + + // if some tests must be run + if(performSomeTest) + { + int res; + // call process directory + if (this->RunConfigurationScript) + { + if ( this->ExtraVerbose ) + { + cmCTestLog(this, OUTPUT, "* Extra verbosity turned on" << std::endl); + } + cmCTest::t_TestingHandlers::iterator it; + for ( it = this->TestingHandlers.begin(); + it != this->TestingHandlers.end(); + ++ it ) + { + it->second->SetVerbose(this->ExtraVerbose); + it->second->SetSubmitIndex(this->SubmitIndex); + } + this->GetHandler("script")->SetVerbose(this->Verbose); + res = this->GetHandler("script")->ProcessHandler(); + } + else + { + this->ExtraVerbose = this->Verbose; + this->Verbose = true; + cmCTest::t_TestingHandlers::iterator it; + for ( it = this->TestingHandlers.begin(); + it != this->TestingHandlers.end(); + ++ it ) + { + it->second->SetVerbose(this->Verbose); + it->second->SetSubmitIndex(this->SubmitIndex); + } + if ( !this->Initialize( + cmSystemTools::GetCurrentWorkingDirectory().c_str()) ) + { + res = 12; + cmCTestLog(this, ERROR_MESSAGE, "Problem initializing the dashboard." + << std::endl); + } + else + { + res = this->ProcessTests(); + } + this->Finalize(); + } + return res; + } + + return 1; +} + +//---------------------------------------------------------------------- +void cmCTest::FindRunningCMake() +{ + // Find our own executable. + this->CTestSelf = cmSystemTools::GetExecutableDirectory(); + this->CTestSelf += "/ctest"; + this->CTestSelf += cmSystemTools::GetExecutableExtension(); + if(!cmSystemTools::FileExists(this->CTestSelf.c_str())) + { + cmSystemTools::Error("CTest executable cannot be found at ", + this->CTestSelf.c_str()); + } + + this->CMakeSelf = cmSystemTools::GetExecutableDirectory(); + this->CMakeSelf += "/cmake"; + this->CMakeSelf += cmSystemTools::GetExecutableExtension(); + if(!cmSystemTools::FileExists(this->CMakeSelf.c_str())) + { + cmSystemTools::Error("CMake executable cannot be found at ", + this->CMakeSelf.c_str()); + } +} + +//---------------------------------------------------------------------- +void cmCTest::SetNotesFiles(const char* notes) +{ + if ( !notes ) + { + return; + } + this->NotesFiles = notes; +} + +//---------------------------------------------------------------------- +int cmCTest::ReadCustomConfigurationFileTree(const char* dir, cmMakefile* mf) +{ + bool found = false; + VectorOfStrings dirs; + VectorOfStrings ndirs; + cmCTestLog(this, DEBUG, "* Read custom CTest configuration directory: " + << dir << std::endl); + + std::string fname = dir; + fname += "/CTestCustom.cmake"; + cmCTestLog(this, DEBUG, "* Check for file: " + << fname.c_str() << std::endl); + if ( cmSystemTools::FileExists(fname.c_str()) ) + { + cmCTestLog(this, DEBUG, "* Read custom CTest configuration file: " + << fname.c_str() << std::endl); + bool erroroc = cmSystemTools::GetErrorOccuredFlag(); + cmSystemTools::ResetErrorOccuredFlag(); + + if ( !mf->ReadListFile(0, fname.c_str()) || + cmSystemTools::GetErrorOccuredFlag() ) + { + cmCTestLog(this, ERROR_MESSAGE, + "Problem reading custom configuration: " + << fname.c_str() << std::endl); + } + found = true; + if ( erroroc ) + { + cmSystemTools::SetErrorOccured(); + } + } + + std::string rexpr = dir; + rexpr += "/CTestCustom.ctest"; + cmCTestLog(this, DEBUG, "* Check for file: " + << rexpr.c_str() << std::endl); + if ( !found && cmSystemTools::FileExists(rexpr.c_str()) ) + { + cmsys::Glob gl; + gl.RecurseOn(); + gl.FindFiles(rexpr); + std::vector& files = gl.GetFiles(); + std::vector::iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); + ++ fileIt ) + { + cmCTestLog(this, DEBUG, "* Read custom CTest configuration file: " + << fileIt->c_str() << std::endl); + if ( !mf->ReadListFile(0, fileIt->c_str()) || + cmSystemTools::GetErrorOccuredFlag() ) + { + cmCTestLog(this, ERROR_MESSAGE, + "Problem reading custom configuration: " + << fileIt->c_str() << std::endl); + } + } + found = true; + } + + if ( found ) + { + cmCTest::t_TestingHandlers::iterator it; + for ( it = this->TestingHandlers.begin(); + it != this->TestingHandlers.end(); ++ it ) + { + cmCTestLog(this, DEBUG, + "* Read custom CTest configuration vectors for handler: " + << it->first.c_str() << " (" << it->second << ")" << std::endl); + it->second->PopulateCustomVectors(mf); + } + } + + return 1; +} + +//---------------------------------------------------------------------- +void cmCTest::PopulateCustomVector(cmMakefile* mf, const char* def, + VectorOfStrings& vec) +{ + if ( !def) + { + return; + } + const char* dval = mf->GetDefinition(def); + if ( !dval ) + { + return; + } + cmCTestLog(this, DEBUG, "PopulateCustomVector: " << def << std::endl); + std::vector slist; + cmSystemTools::ExpandListArgument(dval, slist); + std::vector::iterator it; + + for ( it = slist.begin(); it != slist.end(); ++it ) + { + cmCTestLog(this, DEBUG, " -- " << it->c_str() << std::endl); + vec.push_back(it->c_str()); + } +} + +//---------------------------------------------------------------------- +void cmCTest::PopulateCustomInteger(cmMakefile* mf, const char* def, int& val) +{ + if ( !def) + { + return; + } + const char* dval = mf->GetDefinition(def); + if ( !dval ) + { + return; + } + val = atoi(dval); +} + +//---------------------------------------------------------------------- +std::string cmCTest::GetShortPathToFile(const char* cfname) +{ + const std::string& sourceDir + = cmSystemTools::CollapseFullPath( + this->GetCTestConfiguration("SourceDirectory").c_str()); + const std::string& buildDir + = cmSystemTools::CollapseFullPath( + this->GetCTestConfiguration("BuildDirectory").c_str()); + std::string fname = cmSystemTools::CollapseFullPath(cfname); + + // Find relative paths to both directories + std::string srcRelpath + = cmSystemTools::RelativePath(sourceDir.c_str(), fname.c_str()); + std::string bldRelpath + = cmSystemTools::RelativePath(buildDir.c_str(), fname.c_str()); + + // If any contains "." it is not parent directory + bool inSrc = srcRelpath.find("..") == srcRelpath.npos; + bool inBld = bldRelpath.find("..") == bldRelpath.npos; + // TODO: Handle files with .. in their name + + std::string* res = 0; + + if ( inSrc && inBld ) + { + // If both have relative path with no dots, pick the shorter one + if ( srcRelpath.size() < bldRelpath.size() ) + { + res = &srcRelpath; + } + else + { + res = &bldRelpath; + } + } + else if ( inSrc ) + { + res = &srcRelpath; + } + else if ( inBld ) + { + res = &bldRelpath; + } + + std::string path; + + if ( !res ) + { + path = fname; + } + else + { + cmSystemTools::ConvertToUnixSlashes(*res); + + path = "./" + *res; + if ( path[path.size()-1] == '/' ) + { + path = path.substr(0, path.size()-1); + } + } + + cmsys::SystemTools::ReplaceString(path, ":", "_"); + cmsys::SystemTools::ReplaceString(path, " ", "_"); + return path; +} + +//---------------------------------------------------------------------- +std::string cmCTest::GetCTestConfiguration(const char *name) +{ + if ( this->CTestConfigurationOverwrites.find(name) != + this->CTestConfigurationOverwrites.end() ) + { + return this->CTestConfigurationOverwrites[name]; + } + return this->CTestConfiguration[name]; +} + +//---------------------------------------------------------------------- +void cmCTest::EmptyCTestConfiguration() +{ + this->CTestConfiguration.clear(); +} + +//---------------------------------------------------------------------- +void cmCTest::SetCTestConfiguration(const char *name, const char* value) +{ + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "SetCTestConfiguration:" + << name << ":" << value << "\n"); + + if ( !name ) + { + return; + } + if ( !value ) + { + this->CTestConfiguration.erase(name); + return; + } + this->CTestConfiguration[name] = value; +} + + +//---------------------------------------------------------------------- +std::string cmCTest::GetCurrentTag() +{ + return this->CurrentTag; +} + +//---------------------------------------------------------------------- +std::string cmCTest::GetBinaryDir() +{ + return this->BinaryDir; +} + +//---------------------------------------------------------------------- +std::string cmCTest::GetConfigType() +{ + return this->ConfigType; +} + +//---------------------------------------------------------------------- +bool cmCTest::GetShowOnly() +{ + return this->ShowOnly; +} + +//---------------------------------------------------------------------- +void cmCTest::SetProduceXML(bool v) +{ + this->ProduceXML = v; +} + +//---------------------------------------------------------------------- +bool cmCTest::GetProduceXML() +{ + return this->ProduceXML; +} + +//---------------------------------------------------------------------- +const char* cmCTest::GetSpecificTrack() +{ + if ( this->SpecificTrack.empty() ) + { + return 0; + } + return this->SpecificTrack.c_str(); +} + +//---------------------------------------------------------------------- +void cmCTest::SetSpecificTrack(const char* track) +{ + if ( !track ) + { + this->SpecificTrack = ""; + return; + } + this->SpecificTrack = track; +} + +//---------------------------------------------------------------------- +void cmCTest::AddSubmitFile(const char* name) +{ + this->SubmitFiles.insert(name); +} + +//---------------------------------------------------------------------- +void cmCTest::AddCTestConfigurationOverwrite(const char* encstr) +{ + std::string overStr = encstr; + size_t epos = overStr.find("="); + if ( epos == overStr.npos ) + { + cmCTestLog(this, ERROR_MESSAGE, + "CTest configuration overwrite specified in the wrong format." + << std::endl + << "Valid format is: --overwrite key=value" << std::endl + << "The specified was: --overwrite " << overStr.c_str() << std::endl); + return; + } + std::string key = overStr.substr(0, epos); + std::string value = overStr.substr(epos+1, overStr.npos); + this->CTestConfigurationOverwrites[key] = value; +} + +//---------------------------------------------------------------------- +void cmCTest::SetConfigType(const char* ct) +{ + this->ConfigType = ct?ct:""; + cmSystemTools::ReplaceString(this->ConfigType, ".\\", ""); + std::string confTypeEnv + = "CMAKE_CONFIG_TYPE=" + this->ConfigType; + cmSystemTools::PutEnv(confTypeEnv.c_str()); +} + +//---------------------------------------------------------------------- +bool cmCTest::SetCTestConfigurationFromCMakeVariable(cmMakefile* mf, + const char* dconfig, const char* cmake_var) +{ + const char* ctvar; + ctvar = mf->GetDefinition(cmake_var); + if ( !ctvar ) + { + return false; + } + cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, + "SetCTestConfigurationFromCMakeVariable:" + << dconfig << ":" << cmake_var); + this->SetCTestConfiguration(dconfig, ctvar); + return true; +} + +bool cmCTest::RunCommand( + const char* command, + std::string* stdOut, + std::string* stdErr, + int *retVal, + const char* dir, + double timeout) +{ + std::vector args = cmSystemTools::ParseArguments(command); + + if(args.size() < 1) + { + return false; + } + + std::vector argv; + for(std::vector::const_iterator a = args.begin(); + a != args.end(); ++a) + { + argv.push_back(a->c_str()); + } + argv.push_back(0); + + *stdOut = ""; + *stdErr = ""; + + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetCommand(cp, &*argv.begin()); + cmsysProcess_SetWorkingDirectory(cp, dir); + if(cmSystemTools::GetRunCommandHideConsole()) + { + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + } + cmsysProcess_SetTimeout(cp, timeout); + cmsysProcess_Execute(cp); + + std::vector tempOutput; + std::vector tempError; + char* data; + int length; + int res; + bool done = false; + while(!done) + { + res = cmsysProcess_WaitForData(cp, &data, &length, 0); + switch ( res ) + { + case cmsysProcess_Pipe_STDOUT: + tempOutput.insert(tempOutput.end(), data, data+length); + break; + case cmsysProcess_Pipe_STDERR: + tempError.insert(tempError.end(), data, data+length); + break; + default: + done = true; + } + if ( (res == cmsysProcess_Pipe_STDOUT || + res == cmsysProcess_Pipe_STDERR) && this->ExtraVerbose ) + { + cmSystemTools::Stdout(data, length); + } + } + + cmsysProcess_WaitForExit(cp, 0); + if ( tempOutput.size() > 0 ) + { + stdOut->append(&*tempOutput.begin(), tempOutput.size()); + } + if ( tempError.size() > 0 ) + { + stdErr->append(&*tempError.begin(), tempError.size()); + } + + bool result = true; + if(cmsysProcess_GetState(cp) == cmsysProcess_State_Exited) + { + if ( retVal ) + { + *retVal = cmsysProcess_GetExitValue(cp); + } + else + { + if ( cmsysProcess_GetExitValue(cp) != 0 ) + { + result = false; + } + } + } + else if(cmsysProcess_GetState(cp) == cmsysProcess_State_Exception) + { + const char* exception_str = cmsysProcess_GetExceptionString(cp); + cmCTestLog(this, ERROR_MESSAGE, exception_str << std::endl); + stdErr->append(exception_str, strlen(exception_str)); + result = false; + } + else if(cmsysProcess_GetState(cp) == cmsysProcess_State_Error) + { + const char* error_str = cmsysProcess_GetErrorString(cp); + cmCTestLog(this, ERROR_MESSAGE, error_str << std::endl); + stdErr->append(error_str, strlen(error_str)); + result = false; + } + else if(cmsysProcess_GetState(cp) == cmsysProcess_State_Expired) + { + const char* error_str = "Process terminated due to timeout\n"; + cmCTestLog(this, ERROR_MESSAGE, error_str << std::endl); + stdErr->append(error_str, strlen(error_str)); + result = false; + } + + cmsysProcess_Delete(cp); + return result; +} + +//---------------------------------------------------------------------- +void cmCTest::SetOutputLogFileName(const char* name) +{ + if ( this->OutputLogFile) + { + delete this->OutputLogFile; + this->OutputLogFile= 0; + } + if ( name ) + { + this->OutputLogFile = new cmGeneratedFileStream(name); + } +} + +//---------------------------------------------------------------------- +static const char* cmCTestStringLogType[] = +{ + "DEBUG", + "OUTPUT", + "HANDLER_OUTPUT", + "HANDLER_VERBOSE_OUTPUT", + "WARNING", + "ERROR_MESSAGE", + 0 +}; + +//---------------------------------------------------------------------- +#ifdef cerr +# undef cerr +#endif +#ifdef cout +# undef cout +#endif + +#define cmCTestLogOutputFileLine(stream) \ + if ( this->ShowLineNumbers ) \ + { \ + (stream) << std::endl << file << ":" << line << " "; \ + } + +void cmCTest::Log(int logType, const char* file, int line, const char* msg) +{ + if ( !msg || !*msg ) + { + return; + } + if ( this->OutputLogFile ) + { + bool display = true; + if ( logType == cmCTest::DEBUG && !this->Debug ) { display = false; } + if ( logType == cmCTest::HANDLER_VERBOSE_OUTPUT && !this->Debug && + !this->ExtraVerbose ) { display = false; } + if ( display ) + { + cmCTestLogOutputFileLine(*this->OutputLogFile); + if ( logType != this->OutputLogFileLastTag ) + { + *this->OutputLogFile << "["; + if ( logType >= OTHER || logType < 0 ) + { + *this->OutputLogFile << "OTHER"; + } + else + { + *this->OutputLogFile << cmCTestStringLogType[logType]; + } + *this->OutputLogFile << "] " << std::endl << std::flush; + } + *this->OutputLogFile << msg << std::flush; + if ( logType != this->OutputLogFileLastTag ) + { + *this->OutputLogFile << std::endl << std::flush; + this->OutputLogFileLastTag = logType; + } + } + } + if ( !this->Quiet ) + { + switch ( logType ) + { + case DEBUG: + if ( this->Debug ) + { + cmCTestLogOutputFileLine(std::cout); + std::cout << msg; + std::cout.flush(); + } + break; + case OUTPUT: case HANDLER_OUTPUT: + if ( this->Debug || this->Verbose ) + { + cmCTestLogOutputFileLine(std::cout); + std::cout << msg; + std::cout.flush(); + } + break; + case HANDLER_VERBOSE_OUTPUT: + if ( this->Debug || this->ExtraVerbose ) + { + cmCTestLogOutputFileLine(std::cout); + std::cout << msg; + std::cout.flush(); + } + break; + case WARNING: + cmCTestLogOutputFileLine(std::cerr); + std::cerr << msg; + std::cerr.flush(); + break; + case ERROR_MESSAGE: + cmCTestLogOutputFileLine(std::cerr); + std::cerr << msg; + std::cerr.flush(); + cmSystemTools::SetErrorOccured(); + break; + default: + cmCTestLogOutputFileLine(std::cout); + std::cout << msg; + std::cout.flush(); + } + } +} + +//------------------------------------------------------------------------- +double cmCTest::GetRemainingTimeAllowed() +{ + if (!this->GetHandler("script")) + { + return 1.0e7; + } + + cmCTestScriptHandler* ch + = static_cast(this->GetHandler("script")); + + return ch->GetRemainingTimeAllowed(); +} diff --git a/CMakeLua/Source/cmCTest.h b/CMakeLua/Source/cmCTest.h new file mode 100644 index 0000000..c35ea1d --- /dev/null +++ b/CMakeLua/Source/cmCTest.h @@ -0,0 +1,445 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCTest.h,v $ + Language: C++ + Date: $Date: 2007/12/13 22:56:49 $ + Version: $Revision: 1.99 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCTest_h +#define cmCTest_h + +#include "cmStandardIncludes.h" +#include "cmListFileCache.h" +#include + +class cmake; +class cmMakefile; +class cmCTestGenericHandler; +class cmGeneratedFileStream; +class cmCTestCommand; + +#define cmCTestLog(ctSelf, logType, msg) \ + do { \ + cmOStringStream cmCTestLog_msg; \ + cmCTestLog_msg << msg; \ + (ctSelf)->Log(cmCTest::logType, __FILE__, __LINE__,\ + cmCTestLog_msg.str().c_str());\ + } while ( 0 ) + +#ifdef cerr +# undef cerr +#endif +#define cerr no_cerr_use_cmCTestLog + +#ifdef cout +# undef cout +#endif +#define cout no_cout_use_cmCTestLog + +class cmCTest +{ +public: + typedef std::vector VectorOfStrings; + typedef std::set SetOfStrings; + + ///! Process Command line arguments + int Run(std::vector &, std::string* output = 0); + + /** + * Initialize and finalize testing + */ + int Initialize(const char* binary_dir, bool new_tag = false, + bool verbose_tag = true); + bool InitializeFromCommand(cmCTestCommand* command, bool first = false); + void Finalize(); + + /** + * Process the tests. This is the main routine. The execution of the + * tests should look like this: + * + * ctest foo; + * foo.Initialize(); + * // Set some things on foo + * foo.ProcessTests(); + * foo.Finalize(); + */ + int ProcessTests(); + + /* + * A utility function that returns the nightly time + */ + struct tm* GetNightlyTime(std::string str, + bool tomorrowtag); + + /* + * Is the tomorrow tag set? + */ + bool GetTomorrowTag() { return this->TomorrowTag; }; + + /** + * Try to run tests of the project + */ + int TestDirectory(bool memcheck); + + ///! what is the configuraiton type, e.g. Debug, Release etc. + std::string GetConfigType(); + double GetTimeOut() { return this->TimeOut; } + void SetTimeOut(double t) { this->TimeOut = t; } + + /** + * Check if CTest file exists + */ + bool CTestFileExists(const std::string& filename); + bool AddIfExists(SetOfStrings& files, const char* file); + + /** + * Set the cmake test + */ + bool SetTest(const char*, bool report = true); + + /** + * Set the cmake test mode (experimental, nightly, continuous). + */ + void SetTestModel(int mode); + int GetTestModel() { return this->TestModel; }; + + std::string GetTestModelString(); + static int GetTestModelFromString(const char* str); + static std::string CleanString(const std::string& str); + std::string GetCTestConfiguration(const char *name); + void SetCTestConfiguration(const char *name, const char* value); + void EmptyCTestConfiguration(); + + /** + * constructor and destructor + */ + cmCTest(); + ~cmCTest(); + + //! Set the notes files to be created. + void SetNotesFiles(const char* notes); + + void PopulateCustomVector(cmMakefile* mf, const char* definition, + VectorOfStrings& vec); + void PopulateCustomInteger(cmMakefile* mf, const char* def, + int& val); + + ///! Get the current time as string + std::string CurrentTime(); + + /** + * Return the time remaianing that the script is allowed to run in + * seconds if the user has set the variable CTEST_TIME_LIMIT. If that has + * not been set it returns 1e7 seconds + */ + double GetRemainingTimeAllowed(); + + ///! Open file in the output directory and set the stream + bool OpenOutputFile(const std::string& path, + const std::string& name, + cmGeneratedFileStream& stream, + bool compress = false); + + ///! Convert string to something that is XML safe + static std::string MakeXMLSafe(const std::string&); + + ///! Should we only show what we would do? + bool GetShowOnly(); + + /** + * Run a single executable command and put the stdout and stderr + * in output. + * + * If verbose is false, no user-viewable output from the program + * being run will be generated. + * + * If timeout is specified, the command will be terminated after + * timeout expires. Timeout is specified in seconds. + * + * Argument retVal should be a pointer to the location where the + * exit code will be stored. If the retVal is not specified and + * the program exits with a code other than 0, then the this + * function will return false. + * + * If the command has spaces in the path the caller MUST call + * cmSystemTools::ConvertToRunCommandPath on the command before passing + * it into this function or it will not work. The command must be correctly + * escaped for this to with spaces. + */ + bool RunCommand(const char* command, + std::string* stdOut, std::string* stdErr, + int* retVal = 0, const char* dir = 0, double timeout = 0.0); + + //! Start CTest XML output file + void StartXML(std::ostream& ostr); + + //! End CTest XML output file + void EndXML(std::ostream& ostr); + + //! Run command specialized for make and configure. Returns process status + // and retVal is return value or exception. + int RunMakeCommand(const char* command, std::string* output, + int* retVal, const char* dir, int timeout, + std::ofstream& ofs); + + /* + * return the current tag + */ + std::string GetCurrentTag(); + + //! Get the path to the build tree + std::string GetBinaryDir(); + + //! Get the short path to the file. This means if the file is in binary or + //source directory, it will become /.../relative/path/to/file + std::string GetShortPathToFile(const char* fname); + + //! Get the path to CTest + const char* GetCTestExecutable() { return this->CTestSelf.c_str(); } + const char* GetCMakeExecutable() { return this->CMakeSelf.c_str(); } + + enum { + EXPERIMENTAL, + NIGHTLY, + CONTINUOUS + }; + + // provide some more detailed info on the return code for ctest + enum { + UPDATE_ERRORS = 0x01, + CONFIGURE_ERRORS = 0x02, + BUILD_ERRORS = 0x04, + TEST_ERRORS = 0x08, + MEMORY_ERRORS = 0x10, + COVERAGE_ERRORS = 0x20, + SUBMIT_ERRORS = 0x40 + }; + + ///! Are we producing XML + bool GetProduceXML(); + void SetProduceXML(bool v); + + //! Run command specialized for tests. Returns process status and retVal is + // return value or exception. + int RunTest(std::vector args, std::string* output, int *retVal, + std::ostream* logfile, double testTimeOut); + + /** + * Execute handler and return its result. If the handler fails, it returns + * negative value. + */ + int ExecuteHandler(const char* handler); + + /* + * Get the handler object + */ + cmCTestGenericHandler* GetHandler(const char* handler); + cmCTestGenericHandler* GetInitializedHandler(const char* handler); + + /* + * Set the CTest variable from CMake variable + */ + bool SetCTestConfigurationFromCMakeVariable(cmMakefile* mf, + const char* dconfig, const char* cmake_var); + + //! Make string safe to be send as an URL + static std::string MakeURLSafe(const std::string&); + + //! Should ctect configuration be updated. When using new style ctest + // script, this should be true. + void SetSuppressUpdatingCTestConfiguration(bool val) + { + this->SuppressUpdatingCTestConfiguration = val; + } + + //! Add overwrite to ctest configuration. + // The format is key=value + void AddCTestConfigurationOverwrite(const char* encstr); + + //! Create XML file that contains all the notes specified + int GenerateNotesFile(const std::vector &files); + + //! Submit extra files to the server + bool SubmitExtraFiles(const char* files); + bool SubmitExtraFiles(const std::vector &files); + + //! Set the output log file name + void SetOutputLogFileName(const char* name); + + //! Set the visual studio or Xcode config type + void SetConfigType(const char* ct); + + //! Various log types + enum { + DEBUG = 0, + OUTPUT, + HANDLER_OUTPUT, + HANDLER_VERBOSE_OUTPUT, + WARNING, + ERROR_MESSAGE, + OTHER + }; + + //! Add log to the output + void Log(int logType, const char* file, int line, const char* msg); + + //! Get the version of dart server + int GetDartVersion() { return this->DartVersion; } + + //! Add file to be submitted + void AddSubmitFile(const char* name); + SetOfStrings* GetSubmitFiles() { return &this->SubmitFiles; } + + //! Read the custom configuration files and apply them to the current ctest + int ReadCustomConfigurationFileTree(const char* dir, cmMakefile* mf); + + std::vector &GetInitialCommandLineArguments() + { return this->InitialCommandLineArguments; }; + + //! Set the track to submit to + void SetSpecificTrack(const char* track); + const char* GetSpecificTrack(); + +private: + std::string ConfigType; + bool Verbose; + bool ExtraVerbose; + bool ProduceXML; + + bool ForceNewCTestProcess; + + bool RunConfigurationScript; + + int GenerateNotesFile(const char* files); + + // these are helper classes + typedef std::map t_TestingHandlers; + t_TestingHandlers TestingHandlers; + + bool ShowOnly; + + enum { + FIRST_TEST = 0, + UPDATE_TEST = 1, + START_TEST = 2, + CONFIGURE_TEST = 3, + BUILD_TEST = 4, + TEST_TEST = 5, + COVERAGE_TEST = 6, + MEMCHECK_TEST = 7, + SUBMIT_TEST = 8, + NOTES_TEST = 9, + ALL_TEST = 10, + LAST_TEST = 11 + }; + + //! Map of configuration properties + typedef std::map CTestConfigurationMap; + + std::string CTestConfigFile; + CTestConfigurationMap CTestConfiguration; + CTestConfigurationMap CTestConfigurationOverwrites; + int Tests[LAST_TEST]; + + std::string CurrentTag; + bool TomorrowTag; + + int TestModel; + std::string SpecificTrack; + + double TimeOut; + + int CompatibilityMode; + + // information for the --build-and-test options + std::string CMakeSelf; + std::string CTestSelf; + std::string BinaryDir; + + std::string NotesFiles; + + + bool InteractiveDebugMode; + + bool ShortDateFormat; + + bool CompressXMLFiles; + + void BlockTestErrorDiagnostics(); + + + //! parse the option after -D and convert it into the appropriate steps + bool AddTestsForDashboardType(std::string &targ); + + //! parse and process most common command line arguments + void HandleCommandLineArguments(size_t &i, + std::vector &args); + + //! hande the -S -SP and -SR arguments + void HandleScriptArguments(size_t &i, + std::vector &args, + bool &SRArgumentSpecified); + + //! Reread the configuration file + bool UpdateCTestConfiguration(); + + //! Create not from files. + int GenerateCTestNotesOutput(std::ostream& os, + const VectorOfStrings& files); + + ///! Find the running cmake + void FindRunningCMake(); + + //! Check if the argument is the one specified + bool CheckArgument(const std::string& arg, const char* varg1, + const char* varg2 = 0); + + bool SuppressUpdatingCTestConfiguration; + + bool Debug; + bool ShowLineNumbers; + bool Quiet; + + int DartVersion; + + std::set SubmitFiles; + std::vector InitialCommandLineArguments; + + int SubmitIndex; + + cmGeneratedFileStream* OutputLogFile; + int OutputLogFileLastTag; +}; + +class cmCTestLogWrite +{ +public: + cmCTestLogWrite(const char* data, size_t length) + : Data(data), Length(length) {} + + const char* Data; + size_t Length; +}; + +inline std::ostream& operator<< (std::ostream& os, const cmCTestLogWrite& c) +{ + if (!c.Length) + { + return os; + } + os.write(c.Data, c.Length); + os.flush(); + return os; +} + +#endif diff --git a/CMakeLua/Source/cmCacheManager.cxx b/CMakeLua/Source/cmCacheManager.cxx new file mode 100644 index 0000000..7a8360a --- /dev/null +++ b/CMakeLua/Source/cmCacheManager.cxx @@ -0,0 +1,993 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCacheManager.cxx,v $ + Language: C++ + Date: $Date: 2008/01/29 22:30:48 $ + Version: $Revision: 1.100 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCacheManager.h" +#include "cmSystemTools.h" +#include "cmCacheManager.h" +#include "cmMakefile.h" +#include "cmake.h" +#include "cmVersion.h" + +#include +#include + +#include + +#if defined(_WIN32) || defined(__CYGWIN__) +# include +#endif // _WIN32 + +const char* cmCacheManagerTypes[] = +{ "BOOL", + "PATH", + "FILEPATH", + "STRING", + "INTERNAL", + "STATIC", + "UNINITIALIZED", + 0 +}; + +cmCacheManager::cmCacheManager() +{ + this->CacheMajorVersion = 0; + this->CacheMinorVersion = 0; +} + +const char* cmCacheManager::TypeToString(cmCacheManager::CacheEntryType type) +{ + if ( type > 6 ) + { + return cmCacheManagerTypes[6]; + } + return cmCacheManagerTypes[type]; +} + +cmCacheManager::CacheEntryType cmCacheManager::StringToType(const char* s) +{ + int i = 0; + while(cmCacheManagerTypes[i]) + { + if(strcmp(s, cmCacheManagerTypes[i]) == 0) + { + return static_cast(i); + } + ++i; + } + return STRING; +} + +bool cmCacheManager::LoadCache(cmMakefile* mf) +{ + return this->LoadCache(mf->GetHomeOutputDirectory()); +} + + +bool cmCacheManager::LoadCache(const char* path) +{ + return this->LoadCache(path,true); +} + +bool cmCacheManager::LoadCache(const char* path, + bool internal) +{ + std::set emptySet; + return this->LoadCache(path, internal, emptySet, emptySet); +} + +bool cmCacheManager::ParseEntry(const char* entry, + std::string& var, + std::string& value) +{ + // input line is: key:type=value + static cmsys::RegularExpression reg( + "^([^:]*)=(.*[^\r\t ]|[\r\t ]*)[\r\t ]*$"); + // input line is: "key":type=value + static cmsys::RegularExpression regQuoted( + "^\"([^\"]*)\"=(.*[^\r\t ]|[\r\t ]*)[\r\t ]*$"); + bool flag = false; + if(regQuoted.find(entry)) + { + var = regQuoted.match(1); + value = regQuoted.match(2); + flag = true; + } + else if (reg.find(entry)) + { + var = reg.match(1); + value = reg.match(2); + flag = true; + } + + // if value is enclosed in single quotes ('foo') then remove them + // it is used to enclose trailing space or tab + if (flag && + value.size() >= 2 && + value[0] == '\'' && + value[value.size() - 1] == '\'') + { + value = value.substr(1, + value.size() - 2); + } + + return flag; +} + +bool cmCacheManager::ParseEntry(const char* entry, + std::string& var, + std::string& value, + CacheEntryType& type) +{ + // input line is: key:type=value + static cmsys::RegularExpression reg( + "^([^:]*):([^=]*)=(.*[^\r\t ]|[\r\t ]*)[\r\t ]*$"); + // input line is: "key":type=value + static cmsys::RegularExpression regQuoted( + "^\"([^\"]*)\":([^=]*)=(.*[^\r\t ]|[\r\t ]*)[\r\t ]*$"); + bool flag = false; + if(regQuoted.find(entry)) + { + var = regQuoted.match(1); + type = cmCacheManager::StringToType(regQuoted.match(2).c_str()); + value = regQuoted.match(3); + flag = true; + } + else if (reg.find(entry)) + { + var = reg.match(1); + type = cmCacheManager::StringToType(reg.match(2).c_str()); + value = reg.match(3); + flag = true; + } + + // if value is enclosed in single quotes ('foo') then remove them + // it is used to enclose trailing space or tab + if (flag && + value.size() >= 2 && + value[0] == '\'' && + value[value.size() - 1] == '\'') + { + value = value.substr(1, + value.size() - 2); + } + + return flag; +} + +void cmCacheManager::CleanCMakeFiles(const char* path) +{ + std::string glob = path; + glob += cmake::GetCMakeFilesDirectory(); + glob += "/*.cmake"; + cmsys::Glob globIt; + globIt.FindFiles(glob); + std::vector files = globIt.GetFiles(); + for(std::vector::iterator i = files.begin(); + i != files.end(); ++i) + { + cmSystemTools::RemoveFile(i->c_str()); + } +} + +bool cmCacheManager::LoadCache(const char* path, + bool internal, + std::set& excludes, + std::set& includes) +{ + std::string cacheFile = path; + cacheFile += "/CMakeCache.txt"; + // clear the old cache, if we are reading in internal values + if ( internal ) + { + this->Cache.clear(); + } + if(!cmSystemTools::FileExists(cacheFile.c_str())) + { + this->CleanCMakeFiles(path); + return false; + } + + std::ifstream fin(cacheFile.c_str()); + if(!fin) + { + return false; + } + const char *realbuffer; + std::string buffer; + std::string entryKey; + while(fin) + { + // Format is key:type=value + CacheEntry e; + cmSystemTools::GetLineFromStream(fin, buffer); + realbuffer = buffer.c_str(); + while(*realbuffer != '0' && + (*realbuffer == ' ' || + *realbuffer == '\t' || + *realbuffer == '\r' || + *realbuffer == '\n')) + { + realbuffer++; + } + // skip blank lines and comment lines + if(realbuffer[0] == '#' || realbuffer[0] == 0) + { + continue; + } + while(realbuffer[0] == '/' && realbuffer[1] == '/') + { + if ((realbuffer[2] == '\\') && (realbuffer[3]=='n')) + { + e.Properties["HELPSTRING"] += "\n"; + e.Properties["HELPSTRING"] += &realbuffer[4]; + } + else + { + e.Properties["HELPSTRING"] += &realbuffer[2]; + } + cmSystemTools::GetLineFromStream(fin, buffer); + realbuffer = buffer.c_str(); + if(!fin) + { + continue; + } + } + if(cmCacheManager::ParseEntry(realbuffer, entryKey, e.Value, e.Type)) + { + if ( excludes.find(entryKey) == excludes.end() ) + { + // Load internal values if internal is set. + // If the entry is not internal to the cache being loaded + // or if it is in the list of internal entries to be + // imported, load it. + if ( internal || (e.Type != INTERNAL) || + (includes.find(entryKey) != includes.end()) ) + { + // If we are loading the cache from another project, + // make all loaded entries internal so that it is + // not visible in the gui + if (!internal) + { + e.Type = INTERNAL; + e.Properties["HELPSTRING"] = "DO NOT EDIT, "; + e.Properties["HELPSTRING"] += entryKey; + e.Properties["HELPSTRING"] += " loaded from external file. " + "To change this value edit this file: "; + e.Properties["HELPSTRING"] += path; + e.Properties["HELPSTRING"] += "/CMakeCache.txt" ; + } + if ( e.Type == cmCacheManager::INTERNAL && + (entryKey.size() > strlen("-ADVANCED")) && + strcmp(entryKey.c_str() + (entryKey.size() - + strlen("-ADVANCED")), "-ADVANCED") == 0 ) + { + std::string value = e.Value; + std::string akey = + entryKey.substr(0, (entryKey.size() - strlen("-ADVANCED"))); + cmCacheManager::CacheIterator it = + this->GetCacheIterator(akey.c_str()); + if ( it.IsAtEnd() ) + { + e.Type = cmCacheManager::UNINITIALIZED; + this->Cache[akey] = e; + } + if (!it.Find(akey.c_str())) + { + cmSystemTools::Error("Internal CMake error when reading cache"); + } + it.SetProperty("ADVANCED", value.c_str()); + } + else if ( e.Type == cmCacheManager::INTERNAL && + (entryKey.size() > strlen("-MODIFIED")) && + strcmp(entryKey.c_str() + (entryKey.size() - + strlen("-MODIFIED")), "-MODIFIED") == 0 ) + { + std::string value = e.Value; + std::string akey = + entryKey.substr(0, (entryKey.size() - strlen("-MODIFIED"))); + cmCacheManager::CacheIterator it = + this->GetCacheIterator(akey.c_str()); + if ( it.IsAtEnd() ) + { + e.Type = cmCacheManager::UNINITIALIZED; + this->Cache[akey] = e; + } + if (!it.Find(akey.c_str())) + { + cmSystemTools::Error("Internal CMake error when reading cache"); + } + it.SetProperty("MODIFIED", value.c_str()); + } + else + { + e.Initialized = true; + this->Cache[entryKey] = e; + } + } + } + } + else + { + cmSystemTools::Error("Parse error in cache file ", cacheFile.c_str(), + ". Offending entry: ", realbuffer); + } + } + this->CacheMajorVersion = 0; + this->CacheMinorVersion = 0; + if(const char* cmajor = this->GetCacheValue("CMAKE_CACHE_MAJOR_VERSION")) + { + unsigned int v=0; + if(sscanf(cmajor, "%u", &v) == 1) + { + this->CacheMajorVersion = v; + } + if(const char* cminor = this->GetCacheValue("CMAKE_CACHE_MINOR_VERSION")) + { + if(sscanf(cminor, "%u", &v) == 1) + { + this->CacheMinorVersion = v; + } + } + } + else + { + // CMake version not found in the list file. + // Set as version 0.0 + this->AddCacheEntry("CMAKE_CACHE_MINOR_VERSION", "0", + "Minor version of cmake used to create the " + "current loaded cache", cmCacheManager::INTERNAL); + this->AddCacheEntry("CMAKE_CACHE_MAJOR_VERSION", "0", + "Major version of cmake used to create the " + "current loaded cache", cmCacheManager::INTERNAL); + + } + // check to make sure the cache directory has not + // been moved + if ( internal && this->GetCacheValue("CMAKE_CACHEFILE_DIR") ) + { + std::string currentcwd = path; + std::string oldcwd = this->GetCacheValue("CMAKE_CACHEFILE_DIR"); + cmSystemTools::ConvertToUnixSlashes(currentcwd); + currentcwd += "/CMakeCache.txt"; + oldcwd += "/CMakeCache.txt"; + if(!cmSystemTools::SameFile(oldcwd.c_str(), currentcwd.c_str())) + { + std::string message = + std::string("The current CMakeCache.txt directory ") + + currentcwd + std::string(" is different than the directory ") + + std::string(this->GetCacheValue("CMAKE_CACHEFILE_DIR")) + + std::string(" where CMackeCache.txt was created. This may result " + "in binaries being created in the wrong place. If you " + "are not sure, reedit the CMakeCache.txt"); + cmSystemTools::Error(message.c_str()); + } + } + return true; +} + +bool cmCacheManager::SaveCache(cmMakefile* mf) +{ + return this->SaveCache(mf->GetHomeOutputDirectory()); +} + + +bool cmCacheManager::SaveCache(const char* path) +{ + std::string cacheFile = path; + cacheFile += "/CMakeCache.txt"; + std::string tempFile = cacheFile; + tempFile += ".tmp"; + std::ofstream fout(tempFile.c_str()); + if(!fout) + { + cmSystemTools::Error("Unable to open cache file for save. ", + cacheFile.c_str()); + cmSystemTools::ReportLastSystemError(""); + return false; + } + // before writing the cache, update the version numbers + // to the + char temp[1024]; + sprintf(temp, "%d", cmVersion::GetMinorVersion()); + this->AddCacheEntry("CMAKE_CACHE_MINOR_VERSION", temp, + "Minor version of cmake used to create the " + "current loaded cache", cmCacheManager::INTERNAL); + sprintf(temp, "%d", cmVersion::GetMajorVersion()); + this->AddCacheEntry("CMAKE_CACHE_MAJOR_VERSION", temp, + "Major version of cmake used to create the " + "current loaded cache", cmCacheManager::INTERNAL); + + this->AddCacheEntry("CMAKE_CACHE_RELEASE_VERSION", + cmVersion::GetReleaseVersion().c_str(), + "Major version of cmake used to create the " + "current loaded cache", cmCacheManager::INTERNAL); + + // Let us store the current working directory so that if somebody + // Copies it, he will not be surprised + std::string currentcwd = path; + if ( currentcwd[0] >= 'A' && currentcwd[0] <= 'Z' && + currentcwd[1] == ':' ) + { + currentcwd[0] = currentcwd[0] - 'A' + 'a'; + } + cmSystemTools::ConvertToUnixSlashes(currentcwd); + this->AddCacheEntry("CMAKE_CACHEFILE_DIR", currentcwd.c_str(), + "This is the directory where this CMakeCahe.txt" + " was created", cmCacheManager::INTERNAL); + + fout << "# This is the CMakeCache file.\n" + << "# For build in directory: " << currentcwd << "\n"; + cmCacheManager::CacheEntry* cmakeCacheEntry + = this->GetCacheEntry("CMAKE_COMMAND"); + if ( cmakeCacheEntry ) + { + fout << "# It was generated by CMake: " << + cmakeCacheEntry->Value << std::endl; + } + + fout << "# You can edit this file to change values found and used by cmake." + << std::endl + << "# If you do not want to change any of the values, simply exit the " + "editor." << std::endl + << "# If you do want to change a value, simply edit, save, and exit " + "the editor." << std::endl + << "# The syntax for the file is as follows:\n" + << "# KEY:TYPE=VALUE\n" + << "# KEY is the name of a variable in the cache.\n" + << "# TYPE is a hint to GUI's for the type of VALUE, DO NOT EDIT " + "TYPE!." << std::endl + << "# VALUE is the current value for the KEY.\n\n"; + + fout << "########################\n"; + fout << "# EXTERNAL cache entries\n"; + fout << "########################\n"; + fout << "\n"; + + for( std::map::const_iterator i = + this->Cache.begin(); i != this->Cache.end(); ++i) + { + const CacheEntry& ce = (*i).second; + CacheEntryType t = ce.Type; + if(!ce.Initialized) + { + /* + // This should be added in, but is not for now. + cmSystemTools::Error("Cache entry \"", (*i).first.c_str(), + "\" is uninitialized"); + */ + } + else if(t != INTERNAL) + { + // Format is key:type=value + std::map::const_iterator it = + ce.Properties.find("HELPSTRING"); + if ( it == ce.Properties.end() ) + { + cmCacheManager::OutputHelpString(fout, "Missing description"); + } + else + { + cmCacheManager::OutputHelpString(fout, it->second); + } + std::string key; + // support : in key name by double quoting + if((*i).first.find(':') != std::string::npos || + (*i).first.find("//") == 0) + { + key = "\""; + key += i->first; + key += "\""; + } + else + { + key = i->first; + } + fout << key.c_str() << ":" + << cmCacheManagerTypes[t] << "="; + // if value has trailing space or tab, enclose it in single quotes + if (ce.Value.size() && + (ce.Value[ce.Value.size() - 1] == ' ' || + ce.Value[ce.Value.size() - 1] == '\t')) + { + fout << '\'' << ce.Value << '\''; + } + else + { + fout << ce.Value; + } + fout << "\n\n"; + } + } + + fout << "\n"; + fout << "########################\n"; + fout << "# INTERNAL cache entries\n"; + fout << "########################\n"; + fout << "\n"; + + for( cmCacheManager::CacheIterator i = this->NewIterator(); + !i.IsAtEnd(); i.Next()) + { + if ( !i.Initialized() ) + { + continue; + } + + CacheEntryType t = i.GetType(); + bool advanced = i.PropertyExists("ADVANCED"); + if ( advanced ) + { + // Format is key:type=value + std::string key; + std::string rkey = i.GetName(); + std::string helpstring; + // If this is advanced variable, we have to do some magic for + // backward compatibility + helpstring = "Advanced flag for variable: "; + helpstring += i.GetName(); + rkey += "-ADVANCED"; + cmCacheManager::OutputHelpString(fout, helpstring.c_str()); + // support : in key name by double quoting + if(rkey.find(':') != std::string::npos || + rkey.find("//") == 0) + { + key = "\""; + key += rkey; + key += "\""; + } + else + { + key = rkey; + } + fout << key.c_str() << ":INTERNAL=" + << (i.GetPropertyAsBool("ADVANCED") ? "1" : "0") << "\n"; + } + bool modified = i.PropertyExists("MODIFIED"); + if ( modified ) + { + // Format is key:type=value + std::string key; + std::string rkey = i.GetName(); + std::string helpstring; + // If this is advanced variable, we have to do some magic for + // backward compatibility + helpstring = "Modified flag for variable: "; + helpstring += i.GetName(); + rkey += "-MODIFIED"; + cmCacheManager::OutputHelpString(fout, helpstring.c_str()); + // support : in key name by double quoting + if(rkey.find(':') != std::string::npos || + rkey.find("//") == 0) + { + key = "\""; + key += rkey; + key += "\""; + } + else + { + key = rkey; + } + fout << key.c_str() << ":INTERNAL=" + << (i.GetPropertyAsBool("MODIFIED") ? "1" : "0") << "\n"; + } + if(t == cmCacheManager::INTERNAL) + { + // Format is key:type=value + std::string key; + std::string rkey = i.GetName(); + std::string helpstring; + const char* hs = i.GetProperty("HELPSTRING"); + if ( hs ) + { + helpstring = i.GetProperty("HELPSTRING"); + } + else + { + helpstring = ""; + } + cmCacheManager::OutputHelpString(fout, helpstring.c_str()); + // support : in key name by double quoting + if(rkey.find(':') != std::string::npos || + rkey.find("//") == 0) + { + key = "\""; + key += rkey; + key += "\""; + } + else + { + key = rkey; + } + fout << key.c_str() << ":" + << cmCacheManagerTypes[t] << "="; + // if value has trailing space or tab, enclose it in single quotes + std::string value = i.GetValue(); + if (value.size() && + (value[value.size() - 1] == ' ' || + value[value.size() - 1] == '\t')) + { + fout << '\'' << value << '\''; + } + else + { + fout << value; + } + fout << "\n"; + } + } + fout << "\n"; + fout.close(); + cmSystemTools::CopyFileIfDifferent(tempFile.c_str(), + cacheFile.c_str()); + cmSystemTools::RemoveFile(tempFile.c_str()); + std::string checkCacheFile = path; + checkCacheFile += cmake::GetCMakeFilesDirectory(); + cmSystemTools::MakeDirectory(checkCacheFile.c_str()); + checkCacheFile += "/cmake.check_cache"; + std::ofstream checkCache(checkCacheFile.c_str()); + if(!checkCache) + { + cmSystemTools::Error("Unable to open check cache file for write. ", + checkCacheFile.c_str()); + return false; + } + checkCache << "# This file is generated by cmake for dependency checking " + "of the CMakeCache.txt file\n"; + return true; +} + +bool cmCacheManager::DeleteCache(const char* path) +{ + std::string cacheFile = path; + cmSystemTools::ConvertToUnixSlashes(cacheFile); + std::string cmakeFiles = cacheFile; + cacheFile += "/CMakeCache.txt"; + cmSystemTools::RemoveFile(cacheFile.c_str()); + // now remove the files in the CMakeFiles directory + // this cleans up language cache files + cmsys::Directory dir; + cmakeFiles += cmake::GetCMakeFilesDirectory(); + dir.Load(cmakeFiles.c_str()); + for (unsigned long fileNum = 0; + fileNum < dir.GetNumberOfFiles(); + ++fileNum) + { + if(!cmSystemTools:: + FileIsDirectory(dir.GetFile(fileNum))) + { + std::string fullPath = cmakeFiles; + fullPath += "/"; + fullPath += dir.GetFile(fileNum); + cmSystemTools::RemoveFile(fullPath.c_str()); + } + } + return true; +} + +void cmCacheManager::OutputHelpString(std::ofstream& fout, + const std::string& helpString) +{ + std::string::size_type end = helpString.size(); + if(end == 0) + { + return; + } + std::string oneLine; + std::string::size_type pos = 0; + for (std::string::size_type i=0; i<=end; i++) + { + if ((i==end) + || (helpString[i]=='\n') + || ((i-pos >= 60) && (helpString[i]==' '))) + { + fout << "//"; + if (helpString[pos] == '\n') + { + pos++; + fout << "\\n"; + } + oneLine = helpString.substr(pos, i - pos); + fout << oneLine.c_str() << "\n"; + pos = i; + } + } +} + +void cmCacheManager::RemoveCacheEntry(const char* key) +{ + CacheEntryMap::iterator i = this->Cache.find(key); + if(i != this->Cache.end()) + { + this->Cache.erase(i); + } + else + { + std::cerr << "Failed to remove entry:" << key << std::endl; + } +} + + +cmCacheManager::CacheEntry *cmCacheManager::GetCacheEntry(const char* key) +{ + CacheEntryMap::iterator i = this->Cache.find(key); + if(i != this->Cache.end()) + { + return &i->second; + } + return 0; +} + +cmCacheManager::CacheIterator cmCacheManager::GetCacheIterator( + const char *key) +{ + return CacheIterator(*this, key); +} + +const char* cmCacheManager::GetCacheValue(const char* key) const +{ + CacheEntryMap::const_iterator i = this->Cache.find(key); + if(i != this->Cache.end() && + i->second.Initialized) + { + return i->second.Value.c_str(); + } + return 0; +} + + +void cmCacheManager::PrintCache(std::ostream& out) const +{ + out << "=================================================" << std::endl; + out << "CMakeCache Contents:" << std::endl; + for(std::map::const_iterator i = + this->Cache.begin(); i != this->Cache.end(); ++i) + { + if((*i).second.Type != INTERNAL) + { + out << (*i).first.c_str() << " = " << (*i).second.Value.c_str() + << std::endl; + } + } + out << "\n\n"; + out << "To change values in the CMakeCache, " + << std::endl << "edit CMakeCache.txt in your output directory.\n"; + out << "=================================================" << std::endl; +} + + +void cmCacheManager::AddCacheEntry(const char* key, + const char* value, + const char* helpString, + CacheEntryType type) +{ + CacheEntry& e = this->Cache[key]; + if ( value ) + { + e.Value = value; + e.Initialized = true; + } + else + { + e.Value = ""; + } + e.Type = type; + // make sure we only use unix style paths + if(type == FILEPATH || type == PATH) + { + cmSystemTools::ConvertToUnixSlashes(e.Value); + } + if ( helpString ) + { + e.Properties["HELPSTRING"] = helpString; + } + else + { + e.Properties["HELPSTRING"] = + "(This variable does not exist and should not be used)"; + } + this->Cache[key] = e; +} + +void cmCacheManager::AddCacheEntry(const char* key, bool v, + const char* helpString) +{ + if(v) + { + this->AddCacheEntry(key, "ON", helpString, cmCacheManager::BOOL); + } + else + { + this->AddCacheEntry(key, "OFF", helpString, cmCacheManager::BOOL); + } +} + +bool cmCacheManager::CacheIterator::IsAtEnd() const +{ + return this->Position == this->Container.Cache.end(); +} + +void cmCacheManager::CacheIterator::Begin() +{ + this->Position = this->Container.Cache.begin(); +} + +bool cmCacheManager::CacheIterator::Find(const char* key) +{ + this->Position = this->Container.Cache.find(key); + return !this->IsAtEnd(); +} + +void cmCacheManager::CacheIterator::Next() +{ + if (!this->IsAtEnd()) + { + ++this->Position; + } +} + +void cmCacheManager::CacheIterator::SetValue(const char* value) +{ + if (this->IsAtEnd()) + { + return; + } + CacheEntry* entry = &this->GetEntry(); + if ( value ) + { + entry->Value = value; + entry->Initialized = true; + } + else + { + entry->Value = ""; + } +} + +const char* cmCacheManager::CacheIterator::GetProperty( + const char* property) const +{ + // make sure it is not at the end + if (this->IsAtEnd()) + { + return 0; + } + + if ( !strcmp(property, "TYPE") || !strcmp(property, "VALUE") ) + { + cmSystemTools::Error("Property \"", property, + "\" cannot be accessed through the GetProperty()"); + return 0; + } + const CacheEntry* ent = &this->GetEntry(); + std::map::const_iterator it = + ent->Properties.find(property); + if ( it == ent->Properties.end() ) + { + return 0; + } + return it->second.c_str(); +} + +void cmCacheManager::CacheIterator::SetProperty(const char* p, const char* v) +{ + // make sure it is not at the end + if (this->IsAtEnd()) + { + return; + } + + if ( !strcmp(p, "TYPE") || !strcmp(p, "VALUE") ) + { + cmSystemTools::Error("Property \"", p, + "\" cannot be accessed through the SetProperty()"); + return; + } + CacheEntry* ent = &this->GetEntry(); + ent->Properties[p] = v; +} + + +bool cmCacheManager::CacheIterator::GetValueAsBool() const +{ + return cmSystemTools::IsOn(this->GetEntry().Value.c_str()); +} + +bool cmCacheManager::CacheIterator::GetPropertyAsBool( + const char* property) const +{ + // make sure it is not at the end + if (this->IsAtEnd()) + { + return false; + } + + if ( !strcmp(property, "TYPE") || !strcmp(property, "VALUE") ) + { + cmSystemTools::Error("Property \"", property, + "\" cannot be accessed through the GetPropertyAsBool()"); + return false; + } + const CacheEntry* ent = &this->GetEntry(); + std::map::const_iterator it = + ent->Properties.find(property); + if ( it == ent->Properties.end() ) + { + return false; + } + return cmSystemTools::IsOn(it->second.c_str()); +} + + +void cmCacheManager::CacheIterator::SetProperty(const char* p, bool v) +{ + // make sure it is not at the end + if (this->IsAtEnd()) + { + return; + } + + if ( !strcmp(p, "TYPE") || !strcmp(p, "VALUE") ) + { + cmSystemTools::Error("Property \"", p, + "\" cannot be accessed through the SetProperty()"); + return; + } + CacheEntry* ent = &this->GetEntry(); + ent->Properties[p] = v ? "ON" : "OFF"; +} + +bool cmCacheManager::CacheIterator::PropertyExists(const char* property) const +{ + // make sure it is not at the end + if (this->IsAtEnd()) + { + return false; + } + + if ( !strcmp(property, "TYPE") || !strcmp(property, "VALUE") ) + { + cmSystemTools::Error("Property \"", property, + "\" cannot be accessed through the PropertyExists()"); + return false; + } + const CacheEntry* ent = &this->GetEntry(); + std::map::const_iterator it = + ent->Properties.find(property); + if ( it == ent->Properties.end() ) + { + return false; + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmCacheManager::NeedCacheCompatibility(int major, int minor) +{ + // Compatibility is not needed if the cache version is zero because + // the cache was created or modified by the user. + if(this->CacheMajorVersion == 0) + { + return false; + } + + // Compatibility is needed if the cache version is equal to or lower + // than the given version. + unsigned int actual_compat = + CMake_VERSION_ENCODE(this->CacheMajorVersion, this->CacheMinorVersion, 0); + return (actual_compat && + actual_compat <= CMake_VERSION_ENCODE(major, minor, 0)); +} diff --git a/CMakeLua/Source/cmCacheManager.h b/CMakeLua/Source/cmCacheManager.h new file mode 100644 index 0000000..99c9b18 --- /dev/null +++ b/CMakeLua/Source/cmCacheManager.h @@ -0,0 +1,180 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCacheManager.h,v $ + Language: C++ + Date: $Date: 2008/01/29 22:30:48 $ + Version: $Revision: 1.48 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCacheManager_h +#define cmCacheManager_h + +#include "cmStandardIncludes.h" +class cmMakefile; +class cmMarkAsAdvancedCommand; + +/** \class cmCacheManager + * \brief Control class for cmake's cache + * + * Load and Save CMake cache files. + * + */ +class cmCacheManager +{ +public: + cmCacheManager(); + class CacheIterator; + friend class cmCacheManager::CacheIterator; + enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL,STATIC, + UNINITIALIZED }; + +private: + struct CacheEntry + { + std::string Value; + CacheEntryType Type; + std::map Properties; + bool Initialized; + CacheEntry() : Value(""), Type(UNINITIALIZED), Initialized(false) + {} + }; + +public: + class CacheIterator + { + public: + void Begin(); + bool Find(const char*); + bool IsAtEnd() const; + void Next(); + const char *GetName() const { + return this->Position->first.c_str(); } + const char* GetProperty(const char*) const ; + bool GetPropertyAsBool(const char*) const ; + bool PropertyExists(const char*) const; + void SetProperty(const char* property, const char* value); + void SetProperty(const char* property, bool value); + const char* GetValue() const { return this->GetEntry().Value.c_str(); } + bool GetValueAsBool() const; + void SetValue(const char*); + CacheEntryType GetType() const { return this->GetEntry().Type; } + bool Initialized() { return this->GetEntry().Initialized; } + cmCacheManager &Container; + std::map::iterator Position; + CacheIterator(cmCacheManager &cm) : Container(cm) { + this->Begin(); + } + CacheIterator(cmCacheManager &cm, const char* key) : Container(cm) + { + if ( key ) + { + this->Find(key); + } + } + private: + CacheEntry const& GetEntry() const { return this->Position->second; } + CacheEntry& GetEntry() { return this->Position->second; } + }; + + ///! return an iterator to iterate through the cache map + cmCacheManager::CacheIterator NewIterator() + { + return CacheIterator(*this); + } + + /** + * Types for the cache entries. These are useful as + * hints for a cache editor program. Path should bring + * up a file chooser, BOOL a check box, and STRING a + * text entry box, FILEPATH is a full path to a file which + * can be different than just a path input + */ + static CacheEntryType StringToType(const char*); + static const char* TypeToString(CacheEntryType); + + ///! Load a cache for given makefile. Loads from ouput home. + bool LoadCache(cmMakefile*); + ///! Load a cache for given makefile. Loads from path/CMakeCache.txt. + bool LoadCache(const char* path); + bool LoadCache(const char* path, bool internal); + bool LoadCache(const char* path, bool internal, + std::set& excludes, + std::set& includes); + + ///! Save cache for given makefile. Saves to ouput home CMakeCache.txt. + bool SaveCache(cmMakefile*) ; + ///! Save cache for given makefile. Saves to ouput path/CMakeCache.txt + bool SaveCache(const char* path) ; + + ///! Delete the cache given + bool DeleteCache(const char* path); + + ///! Print the cache to a stream + void PrintCache(std::ostream&) const; + + ///! Get the iterator for an entry with a given key. + cmCacheManager::CacheIterator GetCacheIterator(const char *key=0); + + ///! Remove an entry from the cache + void RemoveCacheEntry(const char* key); + + ///! Get the number of entries in the cache + int GetSize() { + return static_cast(this->Cache.size()); } + + ///! Break up a line like VAR:type="value" into var, type and value + static bool ParseEntry(const char* entry, + std::string& var, + std::string& value, + CacheEntryType& type); + + static bool ParseEntry(const char* entry, + std::string& var, + std::string& value); + + ///! Get a value from the cache given a key + const char* GetCacheValue(const char* key) const; + + /** Get the version of CMake that wrote the cache. */ + unsigned int GetCacheMajorVersion() { return this->CacheMajorVersion; } + unsigned int GetCacheMinorVersion() { return this->CacheMinorVersion; } + bool NeedCacheCompatibility(int major, int minor); + +protected: + ///! Add an entry into the cache + void AddCacheEntry(const char* key, const char* value, + const char* helpString, CacheEntryType type); + + ///! Add a BOOL entry into the cache + void AddCacheEntry(const char* key, bool, const char* helpString); + + ///! Get a cache entry object for a key + CacheEntry *GetCacheEntry(const char *key); + ///! Clean out the CMakeFiles directory if no CMakeCache.txt + void CleanCMakeFiles(const char* path); + + // Cache version info + unsigned int CacheMajorVersion; + unsigned int CacheMinorVersion; +private: + typedef std::map CacheEntryMap; + static void OutputHelpString(std::ofstream& fout, + const std::string& helpString); + CacheEntryMap Cache; + // Only cmake and cmMakefile should be able to add cache values + // the commands should never use the cmCacheManager directly + friend class cmMakefile; // allow access to add cache values + friend class cmake; // allow access to add cache values + friend class cmakewizard; // allow access to add cache values + friend class cmMarkAsAdvancedCommand; // allow access to add cache values +}; + +#endif diff --git a/CMakeLua/Source/cmCallVisualStudioMacro.cxx b/CMakeLua/Source/cmCallVisualStudioMacro.cxx new file mode 100644 index 0000000..78eb3ee --- /dev/null +++ b/CMakeLua/Source/cmCallVisualStudioMacro.cxx @@ -0,0 +1,470 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCallVisualStudioMacro.cxx,v $ + Language: C++ + Date: $Date: 2007/11/20 16:10:11 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCallVisualStudioMacro.h" +#include "cmSystemTools.h" + + +#if defined(_MSC_VER) +#define HAVE_COMDEF_H +#endif + + +#if defined(HAVE_COMDEF_H) + + +#include + + +//---------------------------------------------------------------------------- +///! Use ReportHRESULT to make a cmSystemTools::Error after calling +///! a COM method that may have failed. +#define ReportHRESULT(hr, context) \ + if (FAILED(hr)) \ + { \ + std::ostringstream oss; \ + oss.flags(std::ios::hex); \ + oss << context << " failed HRESULT, hr = 0x" << hr << std::endl; \ + oss.flags(std::ios::dec); \ + oss << __FILE__ << "(" << __LINE__ << ")"; \ + cmSystemTools::Error(oss.str().c_str()); \ + } + + +//---------------------------------------------------------------------------- +///! Using the given instance of Visual Studio, call the named macro +HRESULT InstanceCallMacro( + IDispatch* vsIDE, + const std::string& macro, + const std::string& args) +{ + HRESULT hr = E_POINTER; + + _bstr_t macroName(macro.c_str()); + _bstr_t macroArgs(args.c_str()); + + if (0 != vsIDE) + { + DISPID dispid = (DISPID) -1; + OLECHAR *name = L"ExecuteCommand"; + + hr = vsIDE->GetIDsOfNames(IID_NULL, &name, 1, + LOCALE_USER_DEFAULT, &dispid); + ReportHRESULT(hr, "GetIDsOfNames(ExecuteCommand)"); + + if (SUCCEEDED(hr)) + { + VARIANTARG vargs[2]; + DISPPARAMS params; + VARIANT result; + EXCEPINFO excep; + UINT arg = (UINT) -1; + + // No VariantInit or VariantClear calls are necessary for + // these two vargs. They are both local _bstr_t variables + // that remain in scope for the duration of the Invoke call. + // + V_VT(&vargs[1]) = VT_BSTR; + V_BSTR(&vargs[1]) = macroName; + V_VT(&vargs[0]) = VT_BSTR; + V_BSTR(&vargs[0]) = macroArgs; + + params.rgvarg = &vargs[0]; + params.rgdispidNamedArgs = 0; + params.cArgs = sizeof(vargs)/sizeof(vargs[0]); + params.cNamedArgs = 0; + + VariantInit(&result); + + memset(&excep, 0, sizeof(excep)); + + hr = vsIDE->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, + DISPATCH_METHOD, ¶ms, &result, &excep, &arg); + ReportHRESULT(hr, "Invoke(ExecuteCommand)"); + + VariantClear(&result); + } + } + + return hr; +} + + +//---------------------------------------------------------------------------- +///! Get the Solution object from the IDE object +HRESULT GetSolutionObject( + IDispatch* vsIDE, + IDispatchPtr& vsSolution) +{ + HRESULT hr = E_POINTER; + + if (0 != vsIDE) + { + DISPID dispid = (DISPID) -1; + OLECHAR *name = L"Solution"; + + hr = vsIDE->GetIDsOfNames(IID_NULL, &name, 1, + LOCALE_USER_DEFAULT, &dispid); + ReportHRESULT(hr, "GetIDsOfNames(Solution)"); + + if (SUCCEEDED(hr)) + { + DISPPARAMS params; + VARIANT result; + EXCEPINFO excep; + UINT arg = (UINT) -1; + + params.rgvarg = 0; + params.rgdispidNamedArgs = 0; + params.cArgs = 0; + params.cNamedArgs = 0; + + VariantInit(&result); + + memset(&excep, 0, sizeof(excep)); + + hr = vsIDE->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, + DISPATCH_PROPERTYGET, ¶ms, &result, &excep, &arg); + ReportHRESULT(hr, "Invoke(Solution)"); + + if (SUCCEEDED(hr)) + { + vsSolution = V_DISPATCH(&result); + } + + VariantClear(&result); + } + } + + return hr; +} + + +//---------------------------------------------------------------------------- +///! Get the FullName property from the Solution object +HRESULT GetSolutionFullName( + IDispatch* vsSolution, + std::string& fullName) +{ + HRESULT hr = E_POINTER; + + if (0 != vsSolution) + { + DISPID dispid = (DISPID) -1; + OLECHAR *name = L"FullName"; + + hr = vsSolution->GetIDsOfNames(IID_NULL, &name, 1, + LOCALE_USER_DEFAULT, &dispid); + ReportHRESULT(hr, "GetIDsOfNames(FullName)"); + + if (SUCCEEDED(hr)) + { + DISPPARAMS params; + VARIANT result; + EXCEPINFO excep; + UINT arg = (UINT) -1; + + params.rgvarg = 0; + params.rgdispidNamedArgs = 0; + params.cArgs = 0; + params.cNamedArgs = 0; + + VariantInit(&result); + + memset(&excep, 0, sizeof(excep)); + + hr = vsSolution->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, + DISPATCH_PROPERTYGET, ¶ms, &result, &excep, &arg); + ReportHRESULT(hr, "Invoke(FullName)"); + + if (SUCCEEDED(hr)) + { + fullName = (std::string) (_bstr_t) V_BSTR(&result); + } + + VariantClear(&result); + } + } + + return hr; +} + + +//---------------------------------------------------------------------------- +///! Get the FullName property from the Solution object, given the IDE object +HRESULT GetIDESolutionFullName( + IDispatch* vsIDE, + std::string& fullName) +{ + IDispatchPtr vsSolution; + HRESULT hr = GetSolutionObject(vsIDE, vsSolution); + ReportHRESULT(hr, "GetSolutionObject"); + + if (SUCCEEDED(hr)) + { + GetSolutionFullName(vsSolution, fullName); + ReportHRESULT(hr, "GetSolutionFullName"); + } + + return hr; +} + + +//---------------------------------------------------------------------------- +///! Get all running objects from the Windows running object table. +///! Save them in a map by their display names. +HRESULT GetRunningInstances(std::map& mrot) +{ + // mrot == Map of the Running Object Table + + IRunningObjectTablePtr runningObjectTable; + IEnumMonikerPtr monikerEnumerator; + IMonikerPtr moniker; + ULONG numFetched = 0; + + HRESULT hr = GetRunningObjectTable(0, &runningObjectTable); + ReportHRESULT(hr, "GetRunningObjectTable"); + + if(SUCCEEDED(hr)) + { + hr = runningObjectTable->EnumRunning(&monikerEnumerator); + ReportHRESULT(hr, "EnumRunning"); + } + + if(SUCCEEDED(hr)) + { + hr = monikerEnumerator->Reset(); + ReportHRESULT(hr, "Reset"); + } + + if(SUCCEEDED(hr)) + { + while (S_OK == monikerEnumerator->Next(1, &moniker, &numFetched)) + { + std::string runningObjectName; + IUnknownPtr runningObjectVal; + IBindCtxPtr ctx; + + hr = CreateBindCtx(0, &ctx); + ReportHRESULT(hr, "CreateBindCtx"); + + if(SUCCEEDED(hr)) + { + LPOLESTR displayName = 0; + hr = moniker->GetDisplayName(ctx, 0, &displayName); + ReportHRESULT(hr, "GetDisplayName"); + if (displayName) + { + runningObjectName = (std::string) (_bstr_t) displayName; + CoTaskMemFree(displayName); + } + + hr = runningObjectTable->GetObject(moniker, &runningObjectVal); + ReportHRESULT(hr, "GetObject"); + if(SUCCEEDED(hr)) + { + mrot.insert(std::make_pair(runningObjectName, runningObjectVal)); + } + } + + numFetched = 0; + moniker = 0; + } + } + + return hr; +} + + +//---------------------------------------------------------------------------- +///! Do the two file names refer to the same Visual Studio solution? Or are +///! we perhaps looking for any and all solutions? +bool FilesSameSolution( + const std::string& slnFile, + const std::string& slnName) +{ + if (slnFile == "ALL" || slnName == "ALL") + { + return true; + } + + // Otherwise, make lowercase local copies, convert to Unix slashes, and + // see if the resulting strings are the same: + std::string s1 = cmSystemTools::LowerCase(slnFile); + std::string s2 = cmSystemTools::LowerCase(slnName); + cmSystemTools::ConvertToUnixSlashes(s1); + cmSystemTools::ConvertToUnixSlashes(s2); + + return s1 == s2; +} + + +//---------------------------------------------------------------------------- +///! Find instances of Visual Studio with the given solution file +///! open. Pass "ALL" for slnFile to gather all running instances +///! of Visual Studio. +HRESULT FindVisualStudioInstances( + const std::string& slnFile, + std::vector& instances) +{ + std::map mrot; + + HRESULT hr = GetRunningInstances(mrot); + ReportHRESULT(hr, "GetRunningInstances"); + + if(SUCCEEDED(hr)) + { + std::map::iterator it; + for(it = mrot.begin(); it != mrot.end(); ++it) + { + if (cmSystemTools::StringStartsWith(it->first.c_str(), + "!VisualStudio.DTE.")) + { + IDispatchPtr disp(it->second); + if (disp != (IDispatch*) 0) + { + std::string slnName; + hr = GetIDESolutionFullName(disp, slnName); + ReportHRESULT(hr, "GetIDESolutionFullName"); + + if (FilesSameSolution(slnFile, slnName)) + { + instances.push_back(disp); + + //std::cout << "Found Visual Studio instance." << std::endl; + //std::cout << " ROT entry name: " << it->first << std::endl; + //std::cout << " ROT entry object: " + // << (IUnknown*) it->second << std::endl; + //std::cout << " slnFile: " << slnFile << std::endl; + //std::cout << " slnName: " << slnName << std::endl; + } + } + } + } + } + + return hr; +} + + +#endif //defined(HAVE_COMDEF_H) + + +//---------------------------------------------------------------------------- +int cmCallVisualStudioMacro::GetNumberOfRunningVisualStudioInstances( + const std::string& slnFile) +{ + int count = 0; + +#if defined(HAVE_COMDEF_H) + HRESULT hr = CoInitialize(0); + ReportHRESULT(hr, "CoInitialize"); + + if(SUCCEEDED(hr)) + { + std::vector instances; + hr = FindVisualStudioInstances(slnFile, instances); + ReportHRESULT(hr, "FindVisualStudioInstances"); + + if(SUCCEEDED(hr)) + { + count = static_cast(instances.size()); + } + + // Force release all COM pointers before CoUninitialize: + instances.clear(); + + CoUninitialize(); + } +#else + (void)slnFile; +#endif + + return count; +} + + +//---------------------------------------------------------------------------- +///! Get all running objects from the Windows running object table. +///! Save them in a map by their display names. +int cmCallVisualStudioMacro::CallMacro( + const std::string& slnFile, + const std::string& macro, + const std::string& args) +{ + int err = 1; // no comdef.h + +#if defined(HAVE_COMDEF_H) + err = 2; // error initializing + + HRESULT hr = CoInitialize(0); + ReportHRESULT(hr, "CoInitialize"); + + if(SUCCEEDED(hr)) + { + std::vector instances; + hr = FindVisualStudioInstances(slnFile, instances); + ReportHRESULT(hr, "FindVisualStudioInstances"); + + if(SUCCEEDED(hr)) + { + err = 0; // no error + + std::vector::iterator it; + for(it = instances.begin(); it != instances.end(); ++it) + { + hr = InstanceCallMacro(*it, macro, args); + ReportHRESULT(hr, "InstanceCallMacro"); + + if (FAILED(hr)) + { + err = 3; // error attempting to call the macro + } + } + + if(0 == instances.size()) + { + // no instances to call + + //cmSystemTools::Message( + // "cmCallVisualStudioMacro::CallMacro no instances found to call", + // "Warning"); + } + } + + // Force release all COM pointers before CoUninitialize: + instances.clear(); + + CoUninitialize(); + } +#else + (void)slnFile; + (void)macro; + (void)args; + cmSystemTools::Error("cmCallVisualStudioMacro::CallMacro is not " + "supported on this platform"); +#endif + + if (err) + { + std::ostringstream oss; + oss << "cmCallVisualStudioMacro::CallMacro failed, err = " << err; + cmSystemTools::Error(oss.str().c_str()); + } + + return err; +} diff --git a/CMakeLua/Source/cmCallVisualStudioMacro.h b/CMakeLua/Source/cmCallVisualStudioMacro.h new file mode 100644 index 0000000..88a1c1b --- /dev/null +++ b/CMakeLua/Source/cmCallVisualStudioMacro.h @@ -0,0 +1,49 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCallVisualStudioMacro.h,v $ + Language: C++ + Date: $Date: 2007/11/16 12:01:58 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCallVisualStudioMacro_h +#define cmCallVisualStudioMacro_h + +#include "cmStandardIncludes.h" + +/** \class cmCallVisualStudioMacro + * \brief Control class for communicating with CMake's Visual Studio macros + * + * Find running instances of Visual Studio by full path solution name. + * Call a Visual Studio IDE macro in any of those instances. + */ +class cmCallVisualStudioMacro +{ +public: + ///! Call the named macro in instances of Visual Studio with the + ///! given solution file open. Pass "ALL" for slnFile to call the + ///! macro in each Visual Studio instance. + static int CallMacro(const std::string& slnFile, + const std::string& macro, + const std::string& args); + + ///! Count the number of running instances of Visual Studio with the + ///! given solution file open. Pass "ALL" for slnFile to count all + ///! running Visual Studio instances. + static int GetNumberOfRunningVisualStudioInstances( + const std::string& slnFile); + +protected: + +private: +}; + +#endif diff --git a/CMakeLua/Source/cmCommand.h b/CMakeLua/Source/cmCommand.h new file mode 100644 index 0000000..b0a4639 --- /dev/null +++ b/CMakeLua/Source/cmCommand.h @@ -0,0 +1,187 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.26 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCommand_h +#define cmCommand_h + +#include "cmObject.h" +#include "cmListFileCache.h" +#include "cmMakefile.h" +#include "cmCommandArgumentsHelper.h" + +/** \class cmCommand + * \brief Superclass for all commands in CMake. + * + * cmCommand is the base class for all commands in CMake. A command + * manifests as an entry in CMakeLists.txt and produces one or + * more makefile rules. Commands are associated with a particular + * makefile. This base class cmCommand defines the API for commands + * to support such features as enable/disable, inheritance, + * documentation, and construction. + */ +class cmCommand : public cmObject +{ +public: + cmTypeMacro(cmCommand, cmObject); + + /** + * Construct the command. By default it is enabled with no makefile. + */ + cmCommand() + {this->Makefile = 0; this->Enabled = true;} + + /** + * Need virtual destructor to destroy real command type. + */ + virtual ~cmCommand() {} + + /** + * Specify the makefile. + */ + void SetMakefile(cmMakefile*m) + {this->Makefile = m; } + cmMakefile* GetMakefile() { return this->Makefile; } + + /** + * This is called by the cmMakefile when the command is first + * encountered in the CMakeLists.txt file. It expands the command's + * arguments and then invokes the InitialPass. + */ + virtual bool InvokeInitialPass(const std::vector& args, + cmExecutionStatus &status) + { + std::vector expandedArguments; + this->Makefile->ExpandArguments(args, expandedArguments); + return this->InitialPass(expandedArguments,status); + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &) = 0; + + /** + * This is called at the end after all the information + * specified by the command is accumulated. Most commands do + * not implement this method. At this point, reading and + * writing to the cache can be done. + */ + virtual void FinalPass() {}; + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() = 0; + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() + { + return false; + } + + /** + * This determines if the method is deprecated or not. + */ + virtual bool IsDeprecated(int /*major*/, int /*minor*/) + { + return false; + } + + /** + * This determines if usage of the method is discouraged or not. + * This is currently only used for generating the documentation. + */ + virtual bool IsDiscouraged() + { + return false; + } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() = 0; + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() = 0; + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() = 0; + + /** + * Enable the command. + */ + void EnabledOn() + {this->Enabled = true;} + + /** + * Disable the command. + */ + void EnabledOff() + {this->Enabled = false;} + + /** + * Query whether the command is enabled. + */ + bool GetEnabled() + {return this->Enabled;} + + /** + * Disable or enable the command. + */ + void SetEnabled(bool enabled) + {this->Enabled = enabled;} + + /** + * Return the last error string. + */ + const char* GetError() + { + if(this->Error.length() == 0) + { + this->Error = this->GetName(); + this->Error += " unknown error."; + } + return this->Error.c_str(); + } + + /** + * Set the error message + */ + void SetError(const char* e) + { + this->Error = this->GetName(); + this->Error += " "; + this->Error += e; + } + +protected: + cmMakefile* Makefile; + cmCommandArgumentsHelper Helper; + +private: + bool Enabled; + std::string Error; +}; + +#endif diff --git a/CMakeLua/Source/cmCommandArgumentLexer.cxx b/CMakeLua/Source/cmCommandArgumentLexer.cxx new file mode 100644 index 0000000..60f6f05 --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentLexer.cxx @@ -0,0 +1,2006 @@ +#include "cmStandardIncludes.h" + +#line 2 "cmCommandArgumentLexer.cxx" + +#line 4 "cmCommandArgumentLexer.cxx" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 33 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmCommandArgument_yylex_init (yyscan_t* scanner); + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yyg->yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yyg->yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE cmCommandArgument_yyrestart(yyin ,yyscanner ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = yyg->yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via cmCommandArgument_yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ + ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] + +void cmCommandArgument_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmCommandArgument_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmCommandArgument_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); +void cmCommandArgument_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmCommandArgument_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmCommandArgument_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +void cmCommandArgument_yypop_buffer_state (yyscan_t yyscanner ); + +static void cmCommandArgument_yyensure_buffer_stack (yyscan_t yyscanner ); +static void cmCommandArgument_yy_load_buffer_state (yyscan_t yyscanner ); +static void cmCommandArgument_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); + +#define YY_FLUSH_BUFFER cmCommandArgument_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) + +YY_BUFFER_STATE cmCommandArgument_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmCommandArgument_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmCommandArgument_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); + +void *cmCommandArgument_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmCommandArgument_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmCommandArgument_yyfree (void * ,yyscan_t yyscanner ); + +#define yy_new_buffer cmCommandArgument_yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + cmCommandArgument_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmCommandArgument_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + cmCommandArgument_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmCommandArgument_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define cmCommandArgument_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +typedef int yy_state_type; + +#define yytext_ptr yytext_r + +static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner ); +static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yyg->yytext_ptr = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + yyg->yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yyg->yy_c_buf_p = yy_cp; + +#define YY_NUM_RULES 13 +#define YY_END_OF_BUFFER 14 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[26] = + { 0, + 0, 0, 0, 0, 0, 0, 14, 8, 9, 6, + 5, 13, 10, 4, 11, 12, 8, 0, 3, 6, + 0, 7, 1, 2, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, + 1, 1, 4, 1, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 1, 1, 5, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 1, 6, 1, 1, 4, 1, 4, 4, 4, 4, + + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 7, 1, 8, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[9] = + { 0, + 1, 2, 3, 1, 3, 3, 3, 3 + } ; + +static yyconst flex_int16_t yy_base[28] = + { 0, + 0, 0, 18, 17, 16, 15, 20, 0, 5, 14, + 7, 25, 25, 25, 0, 25, 0, 3, 25, 0, + 9, 25, 25, 25, 25, 14, 16 + } ; + +static yyconst flex_int16_t yy_def[28] = + { 0, + 25, 1, 1, 1, 1, 1, 25, 26, 25, 26, + 25, 25, 25, 25, 27, 25, 26, 9, 25, 10, + 25, 25, 25, 25, 0, 25, 25 + } ; + +static yyconst flex_int16_t yy_nxt[34] = + { 0, + 8, 8, 9, 10, 11, 12, 13, 14, 18, 23, + 21, 19, 21, 24, 17, 17, 22, 20, 22, 25, + 16, 16, 15, 15, 7, 25, 25, 25, 25, 25, + 25, 25, 25 + } ; + +static yyconst flex_int16_t yy_chk[34] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 9, 18, + 11, 9, 21, 21, 26, 26, 27, 10, 27, 7, + 6, 5, 4, 3, 25, 25, 25, 25, 25, 25, + 25, 25, 25 + } ; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +#line 1 "cmCommandArgumentLexer.in.l" +#line 2 "cmCommandArgumentLexer.in.l" +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentLexer.cxx,v $ + Language: C++ + Date: $Date: 2007/09/24 15:16:13 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmCommandArgument_yy --header-file=cmCommandArgumentLexer.h -ocmCommandArgumentLexer.cxx cmCommandArgumentLexer.in.l + +Modify cmCommandArgumentLexer.cxx: + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmCommandArgument_yyalloc, cmCommandArgument_yyrealloc, cmCommandArgument_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmCommandArgumentLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#include "cmCommandArgumentParserHelper.h" + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = yyextra->LexInput(buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmCommandArgumentParserTokens.h" + +/*--------------------------------------------------------------------------*/ + + +#line 505 "cmCommandArgumentLexer.cxx" + +#define INITIAL 0 +#define ESCAPES 1 +#define NOESCAPES 2 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Holds the entire state of the reentrant scanner. */ +struct yyguts_t + { + + /* User-defined. Not touched by flex. */ + YY_EXTRA_TYPE yyextra_r; + + /* The rest are the same as the globals declared in the non-reentrant scanner. */ + FILE *yyin_r, *yyout_r; + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + char yy_hold_char; + int yy_n_chars; + int yyleng_r; + char *yy_c_buf_p; + int yy_init; + int yy_start; + int yy_did_buffer_switch_on_eof; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int *yy_start_stack; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + int yylineno_r; + int yy_flex_debug_r; + + char *yytext_r; + int yy_more_flag; + int yy_more_len; + + }; /* end struct yyguts_t */ + +static int yy_init_globals (yyscan_t yyscanner ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmCommandArgument_yylex_destroy (yyscan_t yyscanner ); + +int cmCommandArgument_yyget_debug (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmCommandArgument_yyget_extra (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *cmCommandArgument_yyget_in (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmCommandArgument_yyget_out (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmCommandArgument_yyget_leng (yyscan_t yyscanner ); + +char *cmCommandArgument_yyget_text (yyscan_t yyscanner ); + +int cmCommandArgument_yyget_lineno (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmCommandArgument_yywrap (yyscan_t yyscanner ); +#else +extern int cmCommandArgument_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (yyscan_t yyscanner ); +#else +static int input (yyscan_t yyscanner ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmCommandArgument_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmCommandArgument_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + +#line 62 "cmCommandArgumentLexer.in.l" + + +#line 727 "cmCommandArgumentLexer.cxx" + + if ( !yyg->yy_init ) + { + yyg->yy_init = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yyg->yy_start ) + yyg->yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + cmCommandArgument_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmCommandArgument_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmCommandArgument_yy_load_buffer_state(yyscanner ); + } + + for(;;) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 26 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 25 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 64 "cmCommandArgumentLexer.in.l" +{ + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2); + return cal_NCURLY; +} +case 2: +YY_RULE_SETUP +#line 70 "cmCommandArgumentLexer.in.l" +{ + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2); + return cal_ATNAME; +} +case 3: +YY_RULE_SETUP +#line 76 "cmCommandArgumentLexer.in.l" +{ + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->DCURLYVariable; + return cal_DCURLY; +} +case 4: +YY_RULE_SETUP +#line 83 "cmCommandArgumentLexer.in.l" +{ + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->RCURLYVariable; + return cal_RCURLY; +} +case 5: +YY_RULE_SETUP +#line 90 "cmCommandArgumentLexer.in.l" +{ + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->ATVariable; + return cal_AT; +} +case 6: +YY_RULE_SETUP +#line 97 "cmCommandArgumentLexer.in.l" +{ + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + return cal_NAME; +} +case 7: +YY_RULE_SETUP +#line 103 "cmCommandArgumentLexer.in.l" +{ + if ( !yyextra->HandleEscapeSymbol(yylvalp, *(yytext+1)) ) + { + return cal_ERROR; + } + return cal_SYMBOL; +} +case 8: +/* rule 8 can match eol */ +YY_RULE_SETUP +#line 111 "cmCommandArgumentLexer.in.l" +{ + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + return cal_SYMBOL; +} +case 9: +YY_RULE_SETUP +#line 117 "cmCommandArgumentLexer.in.l" +{ + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->DOLLARVariable; + return cal_DOLLAR; +} +case 10: +YY_RULE_SETUP +#line 123 "cmCommandArgumentLexer.in.l" +{ + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->LCURLYVariable; + return cal_LCURLY; +} +case 11: +YY_RULE_SETUP +#line 129 "cmCommandArgumentLexer.in.l" +{ + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->BSLASHVariable; + return cal_BSLASH; +} +case 12: +YY_RULE_SETUP +#line 135 "cmCommandArgumentLexer.in.l" +{ + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->BSLASHVariable; + return cal_SYMBOL; +} +case 13: +YY_RULE_SETUP +#line 141 "cmCommandArgumentLexer.in.l" +ECHO; + YY_BREAK +#line 929 "cmCommandArgumentLexer.cxx" +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(ESCAPES): +case YY_STATE_EOF(NOESCAPES): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * cmCommandArgument_yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yyg->yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yyg->yy_c_buf_p; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if ( cmCommandArgument_yywrap(yyscanner ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +return 0; /* this should not happend but it should silence a warning */ +} /* end of cmCommandArgument_yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + cmCommandArgument_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, (size_t) num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if ( yyg->yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + cmCommandArgument_yyrestart(yyin ,yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_current_state = yyg->yy_start; + + for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 26 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +{ + register int yy_is_jam; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 26 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 25); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (yyscan_t yyscanner) +#else + static int input (yyscan_t yyscanner) +#endif + +{ + int c; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + cmCommandArgument_yyrestart(yyin ,yyscanner); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( cmCommandArgument_yywrap(yyscanner ) ) + return EOF; + + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(yyscanner); +#else + return input(yyscanner); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * @param yyscanner The scanner object. + * @note This function does not reset the start condition to @c INITIAL . + */ + void cmCommandArgument_yyrestart (FILE * input_file , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! YY_CURRENT_BUFFER ){ + cmCommandArgument_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmCommandArgument_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmCommandArgument_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); + cmCommandArgument_yy_load_buffer_state(yyscanner ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * @param yyscanner The scanner object. + */ + void cmCommandArgument_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* TODO. We should be able to replace this entire function body + * with + * cmCommandArgument_yypop_buffer_state(); + * cmCommandArgument_yypush_buffer_state(new_buffer); + */ + cmCommandArgument_yyensure_buffer_stack (yyscanner); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + cmCommandArgument_yy_load_buffer_state(yyscanner ); + + /* We don't actually know whether we did this switch during + * EOF (cmCommandArgument_yywrap()) processing, but the only time this flag + * is looked at is after cmCommandArgument_yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; +} + +static void cmCommandArgument_yy_load_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * @param yyscanner The scanner object. + * @return the allocated buffer state. + */ + YY_BUFFER_STATE cmCommandArgument_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) cmCommandArgument_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmCommandArgument_yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) cmCommandArgument_yyalloc(b->yy_buf_size + 2 ,yyscanner ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmCommandArgument_yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + cmCommandArgument_yy_init_buffer(b,file ,yyscanner); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with cmCommandArgument_yy_create_buffer() + * @param yyscanner The scanner object. + */ + void cmCommandArgument_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + cmCommandArgument_yyfree((void *) b->yy_ch_buf ,yyscanner ); + + cmCommandArgument_yyfree((void *) b ,yyscanner ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a cmCommandArgument_yyrestart() or at EOF. + */ + static void cmCommandArgument_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) + +{ + int oerrno = errno; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + cmCommandArgument_yy_flush_buffer(b ,yyscanner); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then cmCommandArgument_yy_init_buffer was _probably_ + * called from cmCommandArgument_yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * @param yyscanner The scanner object. + */ + void cmCommandArgument_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + cmCommandArgument_yy_load_buffer_state(yyscanner ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * @param yyscanner The scanner object. + */ +void cmCommandArgument_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (new_buffer == NULL) + return; + + cmCommandArgument_yyensure_buffer_stack(yyscanner); + + /* This block is copied from cmCommandArgument_yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from cmCommandArgument_yy_switch_to_buffer. */ + cmCommandArgument_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * @param yyscanner The scanner object. + */ +void cmCommandArgument_yypop_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + cmCommandArgument_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) { + cmCommandArgument_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void cmCommandArgument_yyensure_buffer_stack (yyscan_t yyscanner) +{ + int num_to_alloc; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (!yyg->yy_buffer_stack) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmCommandArgument_yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmCommandArgument_yyrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + /* zero only the new slots.*/ + memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); + yyg->yy_buffer_stack_max = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmCommandArgument_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) cmCommandArgument_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmCommandArgument_yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + cmCommandArgument_yy_switch_to_buffer(b ,yyscanner ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to cmCommandArgument_yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * cmCommandArgument_yy_scan_bytes() instead. + */ +YY_BUFFER_STATE cmCommandArgument_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) +{ + + return cmCommandArgument_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner); +} + +/** Setup the input buffer state to scan the given bytes. The next call to cmCommandArgument_yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmCommandArgument_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) cmCommandArgument_yyalloc(n ,yyscanner ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmCommandArgument_yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = cmCommandArgument_yy_scan_buffer(buf,n ,yyscanner); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in cmCommandArgument_yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg , yyscan_t) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = yyg->yy_hold_char; \ + yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ + yyg->yy_hold_char = *yyg->yy_c_buf_p; \ + *yyg->yy_c_buf_p = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the user-defined data for this scanner. + * @param yyscanner The scanner object. + */ +YY_EXTRA_TYPE cmCommandArgument_yyget_extra (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyextra; +} + +/** Get the current line number. + * @param yyscanner The scanner object. + */ +int cmCommandArgument_yyget_lineno (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yylineno; +} + +/** Get the current column number. + * @param yyscanner The scanner object. + */ +int cmCommandArgument_yyget_column (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yycolumn; +} + +/** Get the input stream. + * @param yyscanner The scanner object. + */ +FILE *cmCommandArgument_yyget_in (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyin; +} + +/** Get the output stream. + * @param yyscanner The scanner object. + */ +FILE *cmCommandArgument_yyget_out (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyout; +} + +/** Get the length of the current token. + * @param yyscanner The scanner object. + */ +int cmCommandArgument_yyget_leng (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyleng; +} + +/** Get the current token. + * @param yyscanner The scanner object. + */ + +char *cmCommandArgument_yyget_text (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yytext; +} + +/** Set the user-defined data. This data is never touched by the scanner. + * @param user_defined The data to be associated with this scanner. + * @param yyscanner The scanner object. + */ +void cmCommandArgument_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyextra = user_defined ; +} + +/** Set the current line number. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmCommandArgument_yyset_lineno (int line_number , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmCommandArgument_yyset_lineno called with no buffer" , yyscanner); + + yylineno = line_number; +} + +/** Set the current column. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmCommandArgument_yyset_column (int column_no , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* column is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmCommandArgument_yyset_column called with no buffer" , yyscanner); + + yycolumn = column_no; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * @param yyscanner The scanner object. + * @see cmCommandArgument_yy_switch_to_buffer + */ +void cmCommandArgument_yyset_in (FILE * in_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyin = in_str ; +} + +void cmCommandArgument_yyset_out (FILE * out_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyout = out_str ; +} + +int cmCommandArgument_yyget_debug (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yy_flex_debug; +} + +void cmCommandArgument_yyset_debug (int bdebug , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yy_flex_debug = bdebug ; +} + +/* Accessor methods for yylval and yylloc */ + +/* User-visible API */ + +/* cmCommandArgument_yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. + */ + +int cmCommandArgument_yylex_init(yyscan_t* ptr_yy_globals) + +{ + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) cmCommandArgument_yyalloc ( sizeof( struct yyguts_t ), NULL ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ + memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + + return yy_init_globals ( *ptr_yy_globals ); +} + +static int yy_init_globals (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from cmCommandArgument_yylex_destroy(), so don't allocate here. + */ + + yyg->yy_buffer_stack = 0; + yyg->yy_buffer_stack_top = 0; + yyg->yy_buffer_stack_max = 0; + yyg->yy_c_buf_p = (char *) 0; + yyg->yy_init = 0; + yyg->yy_start = 0; + + yyg->yy_start_stack_ptr = 0; + yyg->yy_start_stack_depth = 0; + yyg->yy_start_stack = NULL; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * cmCommandArgument_yylex_init() + */ + return 0; +} + +/* cmCommandArgument_yylex_destroy is for both reentrant and non-reentrant scanners. */ +int cmCommandArgument_yylex_destroy (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + cmCommandArgument_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); + YY_CURRENT_BUFFER_LVALUE = NULL; + cmCommandArgument_yypop_buffer_state(yyscanner); + } + + /* Destroy the stack itself. */ + cmCommandArgument_yyfree(yyg->yy_buffer_stack ,yyscanner); + yyg->yy_buffer_stack = NULL; + + /* Destroy the start condition stack. */ + cmCommandArgument_yyfree(yyg->yy_start_stack ,yyscanner ); + yyg->yy_start_stack = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * cmCommandArgument_yylex() is called, initialization will occur. */ + yy_init_globals( yyscanner); + + /* Destroy the main struct (reentrant only). */ + cmCommandArgument_yyfree ( yyscanner , yyscanner ); + yyscanner = NULL; + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *cmCommandArgument_yyalloc (yy_size_t size , yyscan_t) +{ + return (void *) malloc( size ); +} + +void *cmCommandArgument_yyrealloc (void * ptr, yy_size_t size , yyscan_t) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void cmCommandArgument_yyfree (void * ptr , yyscan_t) +{ + free( (char *) ptr ); /* see cmCommandArgument_yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 141 "cmCommandArgumentLexer.in.l" + + + +/*--------------------------------------------------------------------------*/ +void cmCommandArgument_SetupEscapes(yyscan_t yyscanner, bool noEscapes) +{ + /* Hack into the internal flex-generated scanner to set the state. */ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if(noEscapes) + { + BEGIN(NOESCAPES); + } + else + { + BEGIN(ESCAPES); + } +} + diff --git a/CMakeLua/Source/cmCommandArgumentLexer.h b/CMakeLua/Source/cmCommandArgumentLexer.h new file mode 100644 index 0000000..ee3034b --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentLexer.h @@ -0,0 +1,344 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentLexer.h,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCommandArgument_yyHEADER_H +#define cmCommandArgument_yyHEADER_H 1 +#define cmCommandArgument_yyIN_HEADER 1 + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 33 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmCommandArgument_yylex_init (yyscan_t* scanner); + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void cmCommandArgument_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmCommandArgument_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmCommandArgument_yy_create_buffer (FILE *file,int size , + yyscan_t yyscanner ); +void cmCommandArgument_yy_delete_buffer (YY_BUFFER_STATE b , + yyscan_t yyscanner ); +void cmCommandArgument_yy_flush_buffer (YY_BUFFER_STATE b , + yyscan_t yyscanner ); +void cmCommandArgument_yypush_buffer_state (YY_BUFFER_STATE new_buffer , + yyscan_t yyscanner ); +void cmCommandArgument_yypop_buffer_state (yyscan_t yyscanner ); + +YY_BUFFER_STATE cmCommandArgument_yy_scan_buffer (char *base,yy_size_t size , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmCommandArgument_yy_scan_string (yyconst char *yy_str , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmCommandArgument_yy_scan_bytes (yyconst char *bytes,int len , + yyscan_t yyscanner ); + +void *cmCommandArgument_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmCommandArgument_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmCommandArgument_yyfree (void * ,yyscan_t yyscanner ); + +/* Begin user sect3 */ + +#define cmCommandArgument_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +#define yytext_ptr yytext_r + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 +#define ESCAPES 1 +#define NOESCAPES 2 + +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmCommandArgument_yylex_destroy (yyscan_t yyscanner ); + +int cmCommandArgument_yyget_debug (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmCommandArgument_yyget_extra (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_extra (YY_EXTRA_TYPE user_defined , + yyscan_t yyscanner ); + +FILE *cmCommandArgument_yyget_in (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmCommandArgument_yyget_out (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmCommandArgument_yyget_leng (yyscan_t yyscanner ); + +char *cmCommandArgument_yyget_text (yyscan_t yyscanner ); + +int cmCommandArgument_yyget_lineno (yyscan_t yyscanner ); + +void cmCommandArgument_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmCommandArgument_yywrap (yyscan_t yyscanner ); +#else +extern int cmCommandArgument_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmCommandArgument_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmCommandArgument_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before + the EOB char was reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + +#undef cmCommandArgument_yyIN_HEADER +#endif /* cmCommandArgument_yyHEADER_H */ diff --git a/CMakeLua/Source/cmCommandArgumentLexer.in.l b/CMakeLua/Source/cmCommandArgumentLexer.in.l new file mode 100644 index 0000000..f068603 --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentLexer.in.l @@ -0,0 +1,157 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentLexer.in.l,v $ + Language: C++ + Date: $Date: 2007/06/05 13:19:27 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmCommandArgument_yy --header-file=cmCommandArgumentLexer.h -ocmCommandArgumentLexer.cxx cmCommandArgumentLexer.in.l + +Modify cmCommandArgumentLexer.cxx: + - add #include "cmStandardIncludes.h" to top of file + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmCommandArgument_yyalloc, cmCommandArgument_yyrealloc, cmCommandArgument_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmCommandArgumentLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#include "cmCommandArgumentParserHelper.h" + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = yyextra->LexInput(buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmCommandArgumentParserTokens.h" + +/*--------------------------------------------------------------------------*/ +%} + +%option reentrant +%option noyywrap +%pointer +%s ESCAPES +%s NOESCAPES + +%% + +\$[A-Za-z0-9/_.+-]+\{ { + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2); + return cal_NCURLY; +} + +@[A-Za-z0-9/_.+-]+@ { + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2); + return cal_ATNAME; +} + +"${" { + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->DCURLYVariable; + return cal_DCURLY; +} + +"}" { + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->RCURLYVariable; + return cal_RCURLY; +} + +"@" { + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->ATVariable; + return cal_AT; +} + +[A-Za-z0-9/_.+-]+ { + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + return cal_NAME; +} + +\\. { + if ( !yyextra->HandleEscapeSymbol(yylvalp, *(yytext+1)) ) + { + return cal_ERROR; + } + return cal_SYMBOL; +} + +[^\${}\\@]+ { + //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl; + yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + return cal_SYMBOL; +} + +"$" { + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->DOLLARVariable; + return cal_DOLLAR; +} + +"{" { + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->LCURLYVariable; + return cal_LCURLY; +} + +"\\" { + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->BSLASHVariable; + return cal_BSLASH; +} + +"\\" { + //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + yylvalp->str = yyextra->BSLASHVariable; + return cal_SYMBOL; +} + +%% + +/*--------------------------------------------------------------------------*/ +void cmCommandArgument_SetupEscapes(yyscan_t yyscanner, bool noEscapes) +{ + /* Hack into the internal flex-generated scanner to set the state. */ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if(noEscapes) + { + BEGIN(NOESCAPES); + } + else + { + BEGIN(ESCAPES); + } +} diff --git a/CMakeLua/Source/cmCommandArgumentParser.cxx b/CMakeLua/Source/cmCommandArgumentParser.cxx new file mode 100644 index 0000000..8b5851c --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentParser.cxx @@ -0,0 +1,1658 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentParser.cxx,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* A Bison parser, made by GNU Bison 2.1. */ + +/* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, + 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* turn off some warning as this is generated code */ +#if defined(_MSC_VER) +# pragma warning ( disable : 4702 ) /* unreachable code */ +#endif + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.1" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* Substitute the variable and function names. */ +#define yyparse cmCommandArgument_yyparse +#define yylex cmCommandArgument_yylex +#define yyerror cmCommandArgument_yyerror +#define yylval cmCommandArgument_yylval +#define yychar cmCommandArgument_yychar +#define yydebug cmCommandArgument_yydebug +#define yynerrs cmCommandArgument_yynerrs + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + cal_NCURLY = 258, + cal_DCURLY = 259, + cal_DOLLAR = 260, + cal_LCURLY = 261, + cal_RCURLY = 262, + cal_NAME = 263, + cal_BSLASH = 264, + cal_SYMBOL = 265, + cal_AT = 266, + cal_ERROR = 267, + cal_ATNAME = 268 + }; +#endif +/* Tokens. */ +#define cal_NCURLY 258 +#define cal_DCURLY 259 +#define cal_DOLLAR 260 +#define cal_LCURLY 261 +#define cal_RCURLY 262 +#define cal_NAME 263 +#define cal_BSLASH 264 +#define cal_SYMBOL 265 +#define cal_AT 266 +#define cal_ERROR 267 +#define cal_ATNAME 268 + + + + +/* Copy the first part of user declarations. */ +#line 1 "cmCommandArgumentParser.y" + +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentParser.cxx,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmCommandArgument_yy + --defines=cmCommandArgumentParserTokens.h -ocmCommandArgumentParser.cxx + cmCommandArgumentParser.y + +Modify cmCommandArgumentParser.cxx: + - remove TABs + +*/ + +#include "cmStandardIncludes.h" + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmCommandArgument_yyerror(x) \ + cmCommandArgumentError(yyscanner, x) +#define yyGetParser (cmCommandArgument_yyget_extra(yyscanner)) + +/* Make sure malloc and free are available on QNX. */ +#ifdef __QNX__ +# include +#endif + +/* Make sure the parser uses standard memory allocation. The default + generated parser malloc/free declarations do not work on all + platforms. */ +#include +#define YYMALLOC malloc +#define YYFREE free + +/*-------------------------------------------------------------------------*/ +#include "cmCommandArgumentParserHelper.h" /* Interface to parser object. */ +#include "cmCommandArgumentLexer.h" /* Interface to lexer object. */ +#include "cmCommandArgumentParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Internal utility functions. */ +static void cmCommandArgumentError(yyscan_t yyscanner, const char* message); + +#define YYDEBUG 1 +// Set these high so that +#define YYMAXDEPTH 100000 +#define YYINITDEPTH 10000 + + +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch statement contains default but no + case. */ +#endif + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 219 of yacc.c. */ +#line 195 "cmCommandArgumentParser.cxx" + +#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) +# define YYSIZE_T __SIZE_TYPE__ +#endif +#if ! defined (YYSIZE_T) && defined (size_t) +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus)) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) +# define YYSIZE_T unsigned int +#endif + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +#if ! defined (yyoverflow) || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# else +# define YYSTACK_ALLOC alloca +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYINCLUDED_STDLIB_H +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) +# endif +# ifdef __cplusplus +extern "C" { +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ + && (defined (__STDC__) || defined (__cplusplus))) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ + && (defined (__STDC__) || defined (__cplusplus))) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifdef __cplusplus +} +# endif +# endif +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + short int yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined (__GNUC__) && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 21 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 25 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 14 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 9 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 21 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 27 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 268 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned char yyprhs[] = +{ + 0, 0, 3, 5, 7, 10, 11, 14, 16, 18, + 20, 22, 24, 26, 28, 30, 34, 38, 40, 41, + 44, 46 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yysigned_char yyrhs[] = +{ + 15, 0, -1, 16, -1, 17, -1, 17, 9, -1, + -1, 18, 17, -1, 19, -1, 20, -1, 8, -1, + 11, -1, 5, -1, 6, -1, 7, -1, 10, -1, + 3, 21, 7, -1, 4, 21, 7, -1, 13, -1, + -1, 22, 21, -1, 8, -1, 20, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned char yyrline[] = +{ + 0, 95, 95, 102, 107, 113, 117, 123, 128, 134, + 139, 144, 149, 154, 159, 165, 171, 177, 183, 187, + 193, 198 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "cal_NCURLY", "cal_DCURLY", "\"$\"", + "\"{\"", "\"}\"", "cal_NAME", "\"\\\\\"", "cal_SYMBOL", "\"@\"", + "cal_ERROR", "cal_ATNAME", "$accept", "Start", + "GoalWithOptionalBackSlash", "Goal", "String", "OuterText", "Variable", + "MultipleIds", "ID", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 14, 15, 16, 16, 17, 17, 18, 18, 19, + 19, 19, 19, 19, 19, 20, 20, 20, 21, 21, + 22, 22 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 1, 1, 2, 0, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 1, 0, 2, + 1, 1 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned char yydefact[] = +{ + 5, 18, 18, 11, 12, 13, 9, 14, 10, 17, + 0, 2, 3, 5, 7, 8, 20, 21, 0, 18, + 0, 1, 4, 6, 15, 19, 16 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yysigned_char yydefgoto[] = +{ + -1, 10, 11, 12, 13, 14, 17, 18, 19 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -3 +static const yysigned_char yypact[] = +{ + -1, 12, 12, -3, -3, -3, -3, -3, -3, -3, + 8, -3, 2, -1, -3, -3, -3, -3, 6, 12, + 11, -3, -3, -3, -3, -3, -3 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yysigned_char yypgoto[] = +{ + -3, -3, -3, 9, -3, -3, 1, -2, -3 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const unsigned char yytable[] = +{ + 20, 15, 1, 2, 3, 4, 5, 6, 21, 7, + 8, 22, 9, 24, 15, 1, 2, 25, 26, 0, + 16, 0, 23, 0, 0, 9 +}; + +static const yysigned_char yycheck[] = +{ + 2, 0, 3, 4, 5, 6, 7, 8, 0, 10, + 11, 9, 13, 7, 13, 3, 4, 19, 7, -1, + 8, -1, 13, -1, -1, 13 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 3, 4, 5, 6, 7, 8, 10, 11, 13, + 15, 16, 17, 18, 19, 20, 8, 20, 21, 22, + 21, 0, 9, 17, 7, 21, 7 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined (__GLIBC__) && defined (_STRING_H) +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +# if defined (__STDC__) || defined (__cplusplus) +yystrlen (const char *yystr) +# else +yystrlen (yystr) + const char *yystr; +# endif +{ + const char *yys = yystr; + + while (*yys++ != '\0') + continue; + + return yys - yystr - 1; +} +# endif +# endif + +# ifndef yystpcpy +# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +# if defined (__STDC__) || defined (__cplusplus) +yystpcpy (char *yydest, const char *yysrc) +# else +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +# endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + size_t yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +#endif /* YYERROR_VERBOSE */ + + + +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM); +# else +int yyparse (); +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int +yyparse (void) +#else +int +yyparse () + ; +#endif +#endif +{ + /* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + short int *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + +#define YYPOPSTACK (yyvsp--, yyssp--) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ + int yylen; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. + */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + short int *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + short int *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a look-ahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to look-ahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a look-ahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; + + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + yystate = yyn; + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 96 "cmCommandArgumentParser.y" + { + (yyval.str) = 0; + yyGetParser->SetResult((yyvsp[0].str)); +} + break; + + case 3: +#line 103 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 4: +#line 108 "cmCommandArgumentParser.y" + { + (yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str)); +} + break; + + case 5: +#line 113 "cmCommandArgumentParser.y" + { + (yyval.str) = 0; +} + break; + + case 6: +#line 118 "cmCommandArgumentParser.y" + { + (yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str)); +} + break; + + case 7: +#line 124 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 8: +#line 129 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 9: +#line 135 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 10: +#line 140 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 11: +#line 145 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 12: +#line 150 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 13: +#line 155 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 14: +#line 160 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 15: +#line 166 "cmCommandArgumentParser.y" + { + (yyval.str) = + yyGetParser->ExpandSpecialVariable((yyvsp[-2].str),(yyvsp[-1].str)); + //std::cerr << __LINE__ << " here: [" << $1 << "] [" << $2 << "] + //[" << $3 << "]" << std::endl; +} + break; + + case 16: +#line 172 "cmCommandArgumentParser.y" + { + (yyval.str) = yyGetParser->ExpandVariable((yyvsp[-1].str)); + //std::cerr << __LINE__ << " here: [" << $1 << "] [" << $2 << "] + //[" << $3 << "]" << std::endl; +} + break; + + case 17: +#line 178 "cmCommandArgumentParser.y" + { + (yyval.str) = yyGetParser->ExpandVariableForAt((yyvsp[0].str)); +} + break; + + case 18: +#line 183 "cmCommandArgumentParser.y" + { + (yyval.str) = 0; +} + break; + + case 19: +#line 188 "cmCommandArgumentParser.y" + { + (yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str)); +} + break; + + case 20: +#line 194 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 21: +#line 199 "cmCommandArgumentParser.y" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + + default: break; + } + +/* Line 1126 of yacc.c. */ +#line 1338 "cmCommandArgumentParser.cxx" + + yyvsp -= yylen; + yyssp -= yylen; + + + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (YYPACT_NINF < yyn && yyn < YYLAST) + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + char *yymsg = 0; +# define YYERROR_VERBOSE_ARGS_MAXIMUM 5 + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +#if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +#endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= yysize1 < yysize; + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= yysize1 < yysize; + yysize = yysize1; + + if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM) + yymsg = (char *) YYSTACK_ALLOC (yysize); + if (yymsg) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yymsg; + int yyi = 0; + while ((*yyp = *yyf)) + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + yyerror (yymsg); + YYSTACK_FREE (yymsg); + } + else + { + yyerror (YY_("syntax error")); + goto yyexhaustedlab; + } + } + else +#endif /* YYERROR_VERBOSE */ + yyerror (YY_("syntax error")); + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (0) + goto yyerrorlab; + +yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK; + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + return yyresult; +} + + +#line 204 "cmCommandArgumentParser.y" + +/* End of grammar */ + +/*--------------------------------------------------------------------------*/ +void cmCommandArgumentError(yyscan_t yyscanner, const char* message) +{ + yyGetParser->Error(message); +} diff --git a/CMakeLua/Source/cmCommandArgumentParser.y b/CMakeLua/Source/cmCommandArgumentParser.y new file mode 100644 index 0000000..e850446 --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentParser.y @@ -0,0 +1,229 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentParser.y,v $ + Language: C++ + Date: $Date: 2006/10/04 18:37:41 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmCommandArgument_yy --defines=cmCommandArgumentParserTokens.h -ocmCommandArgumentParser.cxx cmCommandArgumentParser.y + +Modify cmCommandArgumentParser.cxx: + - remove TABs + +*/ + +#include "cmStandardIncludes.h" + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmCommandArgument_yyerror(x) \ + cmCommandArgumentError(yyscanner, x) +#define yyGetParser (cmCommandArgument_yyget_extra(yyscanner)) + +/* Make sure malloc and free are available on QNX. */ +#ifdef __QNX__ +# include +#endif + +/* Make sure the parser uses standard memory allocation. The default + generated parser malloc/free declarations do not work on all + platforms. */ +#include +#define YYMALLOC malloc +#define YYFREE free + +/*-------------------------------------------------------------------------*/ +#include "cmCommandArgumentParserHelper.h" /* Interface to parser object. */ +#include "cmCommandArgumentLexer.h" /* Interface to lexer object. */ +#include "cmCommandArgumentParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Internal utility functions. */ +static void cmCommandArgumentError(yyscan_t yyscanner, const char* message); + +#define YYDEBUG 1 +//#define YYMAXDEPTH 100000 +//#define YYINITDEPTH 10000 + + +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch statement contains default but no + case. */ +#endif +%} + +/* Generate a reentrant parser object. */ +%pure_parser + +/* +%union { + char* string; +} +*/ + +/*-------------------------------------------------------------------------*/ +/* Tokens */ +%token cal_NCURLY +%token cal_DCURLY +%token cal_DOLLAR "$" +%token cal_LCURLY "{" +%token cal_RCURLY "}" +%token cal_NAME +%token cal_BSLASH "\\" +%token cal_SYMBOL +%token cal_AT "@" +%token cal_ERROR +%token cal_ATNAME + +/*-------------------------------------------------------------------------*/ +/* grammar */ +%% + + +Start: +GoalWithOptionalBackSlash +{ + $$ = 0; + yyGetParser->SetResult($1); +} + +GoalWithOptionalBackSlash: +Goal +{ + $$ = $1; +} +| +Goal cal_BSLASH +{ + $$ = yyGetParser->CombineUnions($1, $2); +} + +Goal: +{ + $$ = 0; +} +| +String Goal +{ + $$ = yyGetParser->CombineUnions($1, $2); +} + +String: +OuterText +{ + $$ = $1; +} +| +Variable +{ + $$ = $1; +} + +OuterText: +cal_NAME +{ + $$ = $1; +} +| +cal_AT +{ + $$ = $1; +} +| +cal_DOLLAR +{ + $$ = $1; +} +| +cal_LCURLY +{ + $$ = $1; +} +| +cal_RCURLY +{ + $$ = $1; +} +| +cal_SYMBOL +{ + $$ = $1; +} + +Variable: +cal_NCURLY MultipleIds cal_RCURLY +{ + $$ = yyGetParser->ExpandSpecialVariable($1,$2); + //std::cerr << __LINE__ << " here: [" << $1 << "] [" << $2 << "] [" << $3 << "]" << std::endl; +} +| +cal_DCURLY MultipleIds cal_RCURLY +{ + $$ = yyGetParser->ExpandVariable($2); + //std::cerr << __LINE__ << " here: [" << $1 << "] [" << $2 << "] [" << $3 << "]" << std::endl; +} +| +cal_ATNAME +{ + $$ = yyGetParser->ExpandVariableForAt($1); +} + +MultipleIds: +{ + $$ = 0; +} +| +ID MultipleIds +{ + $$ = yyGetParser->CombineUnions($1, $2); +} + +ID: +cal_NAME +{ + $$ = $1; +} +| +Variable +{ + $$ = $1; +} + + +%% +/* End of grammar */ + +/*--------------------------------------------------------------------------*/ +void cmCommandArgumentError(yyscan_t yyscanner, const char* message) +{ + yyGetParser->Error(message); +} + diff --git a/CMakeLua/Source/cmCommandArgumentParserHelper.cxx b/CMakeLua/Source/cmCommandArgumentParserHelper.cxx new file mode 100644 index 0000000..7143f31 --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentParserHelper.cxx @@ -0,0 +1,320 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentParserHelper.cxx,v $ + Language: C++ + Date: $Date: 2007/06/06 20:20:02 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCommandArgumentParserHelper.h" + +#include "cmSystemTools.h" +#include "cmCommandArgumentLexer.h" + +#include "cmMakefile.h" + +int cmCommandArgument_yyparse( yyscan_t yyscanner ); +// +cmCommandArgumentParserHelper::cmCommandArgumentParserHelper() +{ + this->FileLine = -1; + this->FileName = 0; + this->RemoveEmpty = true; + this->EmptyVariable[0] = 0; + strcpy(this->DCURLYVariable, "${"); + strcpy(this->RCURLYVariable, "}"); + strcpy(this->ATVariable, "@"); + strcpy(this->DOLLARVariable, "$"); + strcpy(this->LCURLYVariable, "{"); + strcpy(this->BSLASHVariable, "\\"); + + this->NoEscapeMode = false; + this->ReplaceAtSyntax = false; +} + + +cmCommandArgumentParserHelper::~cmCommandArgumentParserHelper() +{ + this->CleanupParser(); +} + +void cmCommandArgumentParserHelper::SetLineFile(long line, const char* file) +{ + this->FileLine = line; + this->FileName = file; +} + +char* cmCommandArgumentParserHelper::AddString(const char* str) +{ + if ( !str || !*str ) + { + return this->EmptyVariable; + } + char* stVal = new char[strlen(str)+1]; + strcpy(stVal, str); + this->Variables.push_back(stVal); + return stVal; +} + +char* cmCommandArgumentParserHelper::ExpandSpecialVariable(const char* key, + const char* var) +{ + if ( !key ) + { + return this->ExpandVariable(var); + } + if ( strcmp(key, "ENV") == 0 ) + { + char *ptr = getenv(var); + if (ptr) + { + if (this->EscapeQuotes) + { + return this->AddString(cmSystemTools::EscapeQuotes(ptr).c_str()); + } + else + { + return ptr; + } + } + return this->EmptyVariable; + } + cmSystemTools::Error("Key ", key, + " is not used yet. For now only $ENV{..} is allowed"); + return 0; +} + +char* cmCommandArgumentParserHelper::ExpandVariable(const char* var) +{ + if(!var) + { + return 0; + } + if(this->FileName && strcmp(var, "CMAKE_CURRENT_LIST_FILE") == 0) + { + return this->AddString(this->FileName); + } + else if(this->FileLine >= 0 && strcmp(var, "CMAKE_CURRENT_LIST_LINE") == 0) + { + cmOStringStream ostr; + ostr << this->FileLine; + return this->AddString(ostr.str().c_str()); + } + const char* value = this->Makefile->GetDefinition(var); + if(!value && !this->RemoveEmpty) + { + return 0; + } + if (this->EscapeQuotes && value) + { + return this->AddString(cmSystemTools::EscapeQuotes(value).c_str()); + } + return this->AddString(value); +} + +char* cmCommandArgumentParserHelper::ExpandVariableForAt(const char* var) +{ + if(this->ReplaceAtSyntax) + { + // try to expand the variable + char* ret = this->ExpandVariable(var); + // if the return was 0 and we want to replace empty strings + // then return an empty string + if(!ret && this->RemoveEmpty) + { + return this->AddString(ret); + } + // if the ret was not 0, then return it + if(ret) + { + return ret; + } + } + // at this point we want to put it back because of one of these cases: + // - this->ReplaceAtSyntax is false + // - this->ReplaceAtSyntax is true, but this->RemoveEmpty is false, + // and the variable was not defined + std::string ref = "@"; + ref += var; + ref += "@"; + return this->AddString(ref.c_str()); +} + +char* cmCommandArgumentParserHelper::CombineUnions(char* in1, char* in2) +{ + if ( !in1 ) + { + return in2; + } + else if ( !in2 ) + { + return in1; + } + size_t len = strlen(in1) + strlen(in2) + 1; + char* out = new char [ len ]; + strcpy(out, in1); + strcat(out, in2); + this->Variables.push_back(out); + return out; +} + +void cmCommandArgumentParserHelper::AllocateParserType +(cmCommandArgumentParserHelper::ParserType* pt,const char* str, int len) +{ + pt->str = 0; + if ( len == 0 ) + { + len = static_cast(strlen(str)); + } + if ( len == 0 ) + { + return; + } + pt->str = new char[ len + 1 ]; + strncpy(pt->str, str, len); + pt->str[len] = 0; + this->Variables.push_back(pt->str); +} + +bool cmCommandArgumentParserHelper::HandleEscapeSymbol +(cmCommandArgumentParserHelper::ParserType* pt, char symbol) +{ + switch ( symbol ) + { + case '\\': + case '"': + case ' ': + case '#': + case '(': + case ')': + case '$': + case '@': + case '^': + this->AllocateParserType(pt, &symbol, 1); + break; + case ';': + this->AllocateParserType(pt, "\\;", 2); + break; + case 't': + this->AllocateParserType(pt, "\t", 1); + break; + case 'n': + this->AllocateParserType(pt, "\n", 1); + break; + case 'r': + this->AllocateParserType(pt, "\r", 1); + break; + case '0': + this->AllocateParserType(pt, "\0", 1); + break; + default: + char buffer[2]; + buffer[0] = symbol; + buffer[1] = 0; + cmSystemTools::Error("Invalid escape sequence \\", buffer); + return false; + } + return true; +} + +void cmCommandArgument_SetupEscapes(yyscan_t yyscanner, bool noEscapes); + +int cmCommandArgumentParserHelper::ParseString(const char* str, int verb) +{ + if ( !str) + { + return 0; + } + this->Verbose = verb; + this->InputBuffer = str; + this->InputBufferPos = 0; + this->CurrentLine = 0; + + this->Result = ""; + + yyscan_t yyscanner; + cmCommandArgument_yylex_init(&yyscanner); + cmCommandArgument_yyset_extra(this, yyscanner); + cmCommandArgument_SetupEscapes(yyscanner, this->NoEscapeMode); + int res = cmCommandArgument_yyparse(yyscanner); + cmCommandArgument_yylex_destroy(yyscanner); + if ( res != 0 ) + { + return 0; + } + + this->CleanupParser(); + + if ( Verbose ) + { + std::cerr << "Expanding [" << str << "] produced: [" + << this->Result.c_str() << "]" << std::endl; + } + return 1; +} + +void cmCommandArgumentParserHelper::CleanupParser() +{ + std::vector::iterator sit; + for ( sit = this->Variables.begin(); + sit != this->Variables.end(); + ++ sit ) + { + delete [] *sit; + } + this->Variables.erase(this->Variables.begin(), this->Variables.end()); +} + +int cmCommandArgumentParserHelper::LexInput(char* buf, int maxlen) +{ + if ( maxlen < 1 ) + { + return 0; + } + if ( this->InputBufferPos < this->InputBuffer.size() ) + { + buf[0] = this->InputBuffer[ this->InputBufferPos++ ]; + if ( buf[0] == '\n' ) + { + this->CurrentLine ++; + } + return(1); + } + else + { + buf[0] = '\n'; + return( 0 ); + } +} + +void cmCommandArgumentParserHelper::Error(const char* str) +{ + unsigned long pos = static_cast(this->InputBufferPos); + cmOStringStream ostr; + ostr << str << " (" << pos << ")"; + this->ErrorString = ostr.str(); +} + +void cmCommandArgumentParserHelper::SetMakefile(const cmMakefile* mf) +{ + this->Makefile = mf; +} + +void cmCommandArgumentParserHelper::SetResult(const char* value) +{ + if ( !value ) + { + this->Result = ""; + return; + } + this->Result = value; +} + diff --git a/CMakeLua/Source/cmCommandArgumentParserHelper.h b/CMakeLua/Source/cmCommandArgumentParserHelper.h new file mode 100644 index 0000000..cc3fd09 --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentParserHelper.h @@ -0,0 +1,113 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentParserHelper.h,v $ + Language: C++ + Date: $Date: 2007/06/06 20:20:02 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCommandArgumentParserHelper_h +#define cmCommandArgumentParserHelper_h + +#include "cmStandardIncludes.h" + +#define YYSTYPE cmCommandArgumentParserHelper::ParserType +#define YYSTYPE_IS_DECLARED +#define YY_EXTRA_TYPE cmCommandArgumentParserHelper* +#define YY_DECL int cmCommandArgument_yylex(YYSTYPE* yylvalp,\ + yyscan_t yyscanner) + +/** \class cmCommandArgumentParserHelper + * \brief Helper class for parsing java source files + * + * Finds dependencies for java file and list of outputs + */ + +class cmMakefile; + +class cmCommandArgumentParserHelper +{ +public: + typedef struct { + char* str; + } ParserType; + + cmCommandArgumentParserHelper(); + ~cmCommandArgumentParserHelper(); + + int ParseString(const char* str, int verb); + + // For the lexer: + void AllocateParserType(cmCommandArgumentParserHelper::ParserType* pt, + const char* str, int len = 0); + bool HandleEscapeSymbol(cmCommandArgumentParserHelper::ParserType* pt, + char symbol); + + int LexInput(char* buf, int maxlen); + void Error(const char* str); + + // For yacc + char* CombineUnions(char* in1, char* in2); + + char* ExpandSpecialVariable(const char* key, const char* var); + char* ExpandVariable(const char* var); + char* ExpandVariableForAt(const char* var); + void SetResult(const char* value); + + void SetMakefile(const cmMakefile* mf); + + std::string& GetResult() { return this->Result; } + + void SetLineFile(long line, const char* file); + void SetEscapeQuotes(bool b) { this->EscapeQuotes = b; } + void SetNoEscapeMode(bool b) { this->NoEscapeMode = b; } + void SetReplaceAtSyntax(bool b) { this->ReplaceAtSyntax = b; } + void SetRemoveEmpty(bool b) { this->RemoveEmpty = b; } + + const char* GetError() { return this->ErrorString.c_str(); } + char EmptyVariable[1]; + char DCURLYVariable[3]; + char RCURLYVariable[3]; + char ATVariable[3]; + char DOLLARVariable[3]; + char LCURLYVariable[3]; + char BSLASHVariable[3]; + +private: + cmStdString::size_type InputBufferPos; + cmStdString InputBuffer; + std::vector OutputBuffer; + int CurrentLine; + int UnionsAvailable; + int Verbose; + + void Print(const char* place, const char* str); + void SafePrintMissing(const char* str, int line, int cnt); + + char* AddString(const char* str); + + void CleanupParser(); + + std::vector Variables; + const cmMakefile* Makefile; + std::string Result; + const char* FileName; + long FileLine; + bool EscapeQuotes; + std::string ErrorString; + bool NoEscapeMode; + bool ReplaceAtSyntax; + bool RemoveEmpty; +}; + +#endif + + diff --git a/CMakeLua/Source/cmCommandArgumentParserTokens.h b/CMakeLua/Source/cmCommandArgumentParserTokens.h new file mode 100644 index 0000000..f7d33a5 --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentParserTokens.h @@ -0,0 +1,88 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentParserTokens.h,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* A Bison parser, made by GNU Bison 2.1. */ + +/* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, + 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + cal_NCURLY = 258, + cal_DCURLY = 259, + cal_DOLLAR = 260, + cal_LCURLY = 261, + cal_RCURLY = 262, + cal_NAME = 263, + cal_BSLASH = 264, + cal_SYMBOL = 265, + cal_AT = 266, + cal_ERROR = 267, + cal_ATNAME = 268 + }; +#endif +/* Tokens. */ +#define cal_NCURLY 258 +#define cal_DCURLY 259 +#define cal_DOLLAR 260 +#define cal_LCURLY 261 +#define cal_RCURLY 262 +#define cal_NAME 263 +#define cal_BSLASH 264 +#define cal_SYMBOL 265 +#define cal_AT 266 +#define cal_ERROR 267 +#define cal_ATNAME 268 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + + + diff --git a/CMakeLua/Source/cmCommandArgumentsHelper.cxx b/CMakeLua/Source/cmCommandArgumentsHelper.cxx new file mode 100644 index 0000000..887e3e4 --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentsHelper.cxx @@ -0,0 +1,312 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentsHelper.cxx,v $ + Language: C++ + Date: $Date: 2007/08/23 20:13:15 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmCommandArgumentsHelper.h" + +cmCommandArgument::cmCommandArgument(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group) +:Key(key) +,Group(group) +,WasActive(false) +,ArgumentsBeforeEmpty(true) +,CurrentIndex(0) +{ + if (args!=0) + { + args->AddArgument(this); + } + + if (this->Group!=0) + { + this->Group->ContainedArguments.push_back(this); + } +} + +void cmCommandArgument::Reset() +{ + this->WasActive =false; + this->CurrentIndex = 0; + this->DoReset(); +} + +void cmCommandArgument::Follows(const cmCommandArgument* arg) +{ + this->ArgumentsBeforeEmpty = false; + this->ArgumentsBefore.insert(arg); +} + +void cmCommandArgument::FollowsGroup(const cmCommandArgumentGroup* group) +{ + if (group!=0) + { + this->ArgumentsBeforeEmpty = false; + for(std::vector::const_iterator + argIt= group->ContainedArguments.begin(); + argIt != group->ContainedArguments.end(); + ++argIt) + { + this->ArgumentsBefore.insert(*argIt); + } + } +} + +bool cmCommandArgument::MayFollow(const cmCommandArgument* current) const +{ + if (this->ArgumentsBeforeEmpty) + { + return true; + } + + std::set::const_iterator argIt + = this->ArgumentsBefore.find(current); + if (argIt != this->ArgumentsBefore.end()) + { + return true; + } + + return false; +} + +bool cmCommandArgument::KeyMatches(const std::string& key) const +{ + if ((this->Key==0) || (this->Key[0]=='\0')) + { + return true; + } + return (key==this->Key); +} + +void cmCommandArgument::ApplyOwnGroup() +{ + if (this->Group!=0) + { + for (std::vector::const_iterator + it = this->Group->ContainedArguments.begin(); + it != this->Group->ContainedArguments.end(); + ++it) + { + if(*it != this) + { + this->ArgumentsBefore.insert(*it); + } + } + } +} + +void cmCommandArgument::Activate() +{ + this->WasActive = true; + this->CurrentIndex = 0; +} + +bool cmCommandArgument::Consume(const std::string& arg) +{ + bool res=this->DoConsume(arg, this->CurrentIndex); + this->CurrentIndex++; + return res; +} + + +cmCAStringVector::cmCAStringVector(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group) +:cmCommandArgument(args, key, group) +,Ignore(0) +{ + if ((key==0) || (*key==0)) + { + this->DataStart = 0; + } + else + { + this->DataStart = 1; + } +} + +bool cmCAStringVector::DoConsume(const std::string& arg,unsigned int index) +{ + if (index >= this->DataStart) + { + if ((this->Ignore==0) || (arg != this->Ignore)) + { + this->Vector.push_back(arg); + } + } + + return false; +} + +void cmCAStringVector::DoReset() +{ + this->Vector.clear(); +} + +cmCAString::cmCAString(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group) +:cmCommandArgument(args, key, group) +{ + if ((key==0) || (*key==0)) + { + this->DataStart = 0; + } + else + { + this->DataStart = 1; + } +} + +bool cmCAString::DoConsume(const std::string& arg, unsigned int index) +{ + if (index == this->DataStart) + { + this->String = arg; + } + + return index >= this->DataStart; +} + +void cmCAString::DoReset() +{ + this->String = this->DefaultString; +} + +cmCAEnabler::cmCAEnabler(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group) +:cmCommandArgument(args, key, group) +,Enabled(false) +{} + +bool cmCAEnabler::DoConsume(const std::string&, unsigned int index) +{ + if (index==0) + { + this->Enabled = true; + } + return true; +} + +void cmCAEnabler::DoReset() +{ + this->Enabled = false; +} + +cmCADisabler::cmCADisabler(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group) +:cmCommandArgument(args, key, group) +,Enabled(true) +{} + +bool cmCADisabler::DoConsume(const std::string&, unsigned int index) +{ + if (index==0) + { + this->Enabled = false; + } + return true; +} + +void cmCADisabler::DoReset() +{ + this->Enabled = true; +} + +void cmCommandArgumentGroup::Follows(const cmCommandArgument* arg) +{ + for(std::vector::iterator + it = this->ContainedArguments.begin(); + it != this->ContainedArguments.end(); + ++it) + { + (*it)->Follows(arg); + } +} + +void cmCommandArgumentGroup::FollowsGroup(const cmCommandArgumentGroup* group) +{ + for(std::vector::iterator + it = this->ContainedArguments.begin(); + it != this->ContainedArguments.end(); + ++it) + { + (*it)->FollowsGroup(group); + } +} + +void cmCommandArgumentsHelper::Parse(const std::vector* args, + std::vector* unconsumedArgs) +{ + if(args==0) + { + return; + } + + for(std::vector::iterator + argIt = this->Arguments.begin(); + argIt != this->Arguments.end(); + ++argIt) + { + (*argIt)->ApplyOwnGroup(); + (*argIt)->Reset(); + } + + cmCommandArgument* activeArgument = 0; + const cmCommandArgument* previousArgument = 0; + for(std::vector::const_iterator it = args->begin(); + it != args->end(); + ++it) + { + for(std::vector::iterator + argIt = this->Arguments.begin(); + argIt != this->Arguments.end(); + ++argIt) + { + if ((*argIt)->KeyMatches(*it) && ((*argIt)->MayFollow(previousArgument))) + { + activeArgument = *argIt; + activeArgument->Activate(); + break; + } + } + + if (activeArgument) + { + bool argDone = activeArgument->Consume(*it); + previousArgument = activeArgument; + if (argDone) + { + activeArgument = 0; + } + } + else + { + if (unconsumedArgs!=0) + { + unconsumedArgs->push_back(*it); + } + } + } +} + +void cmCommandArgumentsHelper::AddArgument(cmCommandArgument* arg) +{ + this->Arguments.push_back(arg); +} + diff --git a/CMakeLua/Source/cmCommandArgumentsHelper.h b/CMakeLua/Source/cmCommandArgumentsHelper.h new file mode 100644 index 0000000..b66665f --- /dev/null +++ b/CMakeLua/Source/cmCommandArgumentsHelper.h @@ -0,0 +1,212 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommandArgumentsHelper.h,v $ + Language: C++ + Date: $Date: 2007/08/23 20:13:15 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCommandArgumentsHelper_h +#define cmCommandArgumentsHelper_h + +#include "cmStandardIncludes.h" + +class cmCommandArgumentsHelper; +class cmCommandArgumentGroup; + +/* cmCommandArgumentsHelper, cmCommandArgumentGroup and cmCommandArgument (i.e. +its derived classes cmCAXXX can be used to simplify the processing of +arguments to cmake commands. Maybe they can also be used to generate +documentation. + +For every argument supported by a command one cmCommandArgument is created +and added to cmCommandArgumentsHelper. cmCommand has a cmCommandArgumentsHelper +as member variable so this should be used. + +The order of the arguments is defined using the Follows(arg) method. It says +that this argument follows immediateley the given argument. It can be used +with multiple arguments if the argument can follow after different arguments. + +Arguments can be arranged in groups using cmCommandArgumentGroup. Every +member of a group can follow any other member of the group. These groups +can also be used to define the order. + +Once all arguments and groups are set up, cmCommandArgumentsHelper::Parse() +is called and afterwards the values of the arguments can be evaluated. + +For an example see cmExportCommand.cxx. +*/ +class cmCommandArgument +{ + public: + cmCommandArgument(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group=0); + virtual ~cmCommandArgument() {} + + /// this argument may follow after arg. 0 means it comes first. + void Follows(const cmCommandArgument* arg); + + /// this argument may follow after any of the arguments in the given group + void FollowsGroup(const cmCommandArgumentGroup* group); + + /// Returns true if the argument was found in the argument list + bool WasFound() const {return this->WasActive;} + + // The following methods are only called from + // cmCommandArgumentsHelper::Parse(), but making this a friend would + // give it access to everything + + /// Make the current argument the currently active argument + void Activate(); + /// Consume the current string + bool Consume(const std::string& arg); + + /// Return true if this argument may follow after the given argument. + bool MayFollow(const cmCommandArgument* current) const; + + /** Returns true if the given key matches the key for this argument. + If this argument has an empty key everything matches. */ + bool KeyMatches(const std::string& key) const; + + /// Make this argument follow all members of the own group + void ApplyOwnGroup(); + + /// Reset argument, so it's back to its initial state + void Reset(); + private: + const char* Key; + std::set ArgumentsBefore; + cmCommandArgumentGroup* Group; + bool WasActive; + bool ArgumentsBeforeEmpty; + unsigned int CurrentIndex; + + virtual bool DoConsume(const std::string& arg, unsigned int index) = 0; + virtual void DoReset() = 0; +}; + +/** cmCAStringVector is to be used for arguments which can consist of more +than one string, e.g. the FILES argument in INSTALL(FILES f1 f2 f3 ...). */ +class cmCAStringVector : public cmCommandArgument +{ + public: + cmCAStringVector(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group=0); + + /// Return the vector of strings + const std::vector& GetVector() const {return this->Vector;} + + /** Is there a keyword which should be skipped in + the arguments (e.g. ARGS for ADD_CUSTOM_COMMAND) ? */ + void SetIgnore(const char* ignore) {this->Ignore=ignore;} + private: + std::vector Vector; + unsigned int DataStart; + const char* Ignore; + cmCAStringVector(); + virtual bool DoConsume(const std::string& arg, unsigned int index); + virtual void DoReset(); +}; + +/** cmCAString is to be used for arguments which consist of one value, +e.g. the executable name in ADD_EXECUTABLE(). */ +class cmCAString : public cmCommandArgument +{ + public: + cmCAString(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group=0); + + /// Return the string + const std::string& GetString() const {return this->String;} + const char* GetCString() const {return this->String.c_str();} + void SetDefaultString(const char* text) + {this->DefaultString = (text ? text : "");} + private: + std::string String; + std::string DefaultString; + unsigned int DataStart; + virtual bool DoConsume(const std::string& arg, unsigned int index); + virtual void DoReset(); + cmCAString(); +}; + +/** cmCAEnabler is to be used for options which are off by default and can be +enabled using a special argument, e.g. EXCLUDE_FROM_ALL in ADD_EXECUTABLE(). */ +class cmCAEnabler : public cmCommandArgument +{ + public: + cmCAEnabler(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group=0); + + /// Has it been enabled ? + bool IsEnabled() const {return this->Enabled;} + private: + bool Enabled; + virtual bool DoConsume(const std::string& arg, unsigned int index); + virtual void DoReset(); + cmCAEnabler(); +}; + +/** cmCADisable is to be used for options which are on by default and can be +disabled using a special argument.*/ +class cmCADisabler : public cmCommandArgument +{ + public: + cmCADisabler(cmCommandArgumentsHelper* args, + const char* key, + cmCommandArgumentGroup* group=0); + + /// Is it still enabled ? + bool IsEnabled() const {return this->Enabled;} + private: + bool Enabled; + virtual bool DoConsume(const std::string& arg, unsigned int index); + virtual void DoReset(); + cmCADisabler(); +}; + + +/** Group of arguments, needed for ordering. E.g. WIN32, EXCLUDE_FROM_ALL and +MACSOX_BUNDLE from ADD_EXECUTABLE() are a group. +*/ +class cmCommandArgumentGroup +{ + friend class cmCommandArgument; + public: + cmCommandArgumentGroup() {} + + /// All members of this group may follow the given argument + void Follows(const cmCommandArgument* arg); + + /// All members of this group may follow all members of the given group + void FollowsGroup(const cmCommandArgumentGroup* group); + private: + std::vector ContainedArguments; +}; + +class cmCommandArgumentsHelper +{ + public: + /// Parse the argument list + void Parse(const std::vector* args, + std::vector* unconsumedArgs); + /// Add an argument. + void AddArgument(cmCommandArgument* arg); + private: + std::vector Arguments; +}; + + +#endif diff --git a/CMakeLua/Source/cmCommands.cxx b/CMakeLua/Source/cmCommands.cxx new file mode 100644 index 0000000..a6ef09b --- /dev/null +++ b/CMakeLua/Source/cmCommands.cxx @@ -0,0 +1,105 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommands.cxx,v $ + Language: C++ + Date: $Date: 2007/12/03 18:35:33 $ + Version: $Revision: 1.120 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCommands.h" +#if defined(CMAKE_BUILD_WITH_CMAKE) +#include "cmAuxSourceDirectoryCommand.cxx" +#include "cmBuildNameCommand.cxx" +#include "cmDefinePropertyCommand.cxx" +#include "cmElseIfCommand.cxx" +#include "cmEnableLanguageCommand.cxx" +#include "cmEndWhileCommand.cxx" +#include "cmExecuteProcessCommand.cxx" +#include "cmExportCommand.cxx" +#include "cmExportLibraryDependencies.cxx" +#include "cmFLTKWrapUICommand.cxx" +#include "cmGetDirectoryPropertyCommand.cxx" +#include "cmGetPropertyCommand.cxx" +#include "cmGetTestPropertyCommand.cxx" +#include "cmIncludeExternalMSProjectCommand.cxx" +#include "cmInstallCommand.cxx" +#include "cmInstallCommandArguments.cxx" +#include "cmInstallProgramsCommand.cxx" +#include "cmLinkLibrariesCommand.cxx" +#include "cmLoadCacheCommand.cxx" +#include "cmMathCommand.cxx" +#include "cmOutputRequiredFilesCommand.cxx" +#include "cmQTWrapCPPCommand.cxx" +#include "cmQTWrapUICommand.cxx" +#include "cmRemoveCommand.cxx" +#include "cmRemoveDefinitionsCommand.cxx" +#include "cmSeparateArgumentsCommand.cxx" +#include "cmSetDirectoryPropertiesCommand.cxx" +#include "cmSourceGroupCommand.cxx" +#include "cmSubdirDependsCommand.cxx" +#include "cmUseMangledMesaCommand.cxx" +#include "cmUtilitySourceCommand.cxx" +#include "cmVariableRequiresCommand.cxx" +#include "cmVariableWatchCommand.cxx" + +#include "cmWhileCommand.cxx" +#include "cmWriteFileCommand.cxx" + +// This one must be last because it includes windows.h and +// windows.h #defines GetCurrentDirectory which is a member +// of cmMakefile +#include "cmLoadCommandCommand.cxx" +#endif + +void GetPredefinedCommands(std::list& +#if defined(CMAKE_BUILD_WITH_CMAKE) + commands +#endif + ) +{ +#if defined(CMAKE_BUILD_WITH_CMAKE) + commands.push_back(new cmAuxSourceDirectoryCommand); + commands.push_back(new cmBuildNameCommand); + commands.push_back(new cmDefinePropertyCommand); + commands.push_back(new cmElseIfCommand); + commands.push_back(new cmEnableLanguageCommand); + commands.push_back(new cmEndWhileCommand); + commands.push_back(new cmExecuteProcessCommand); + commands.push_back(new cmExportCommand); + commands.push_back(new cmExportLibraryDependenciesCommand); + commands.push_back(new cmFLTKWrapUICommand); + commands.push_back(new cmGetDirectoryPropertyCommand); + commands.push_back(new cmGetPropertyCommand); + commands.push_back(new cmGetTestPropertyCommand); + commands.push_back(new cmIncludeExternalMSProjectCommand); + commands.push_back(new cmInstallCommand); + commands.push_back(new cmInstallProgramsCommand); + commands.push_back(new cmLinkLibrariesCommand); + commands.push_back(new cmLoadCacheCommand); + commands.push_back(new cmLoadCommandCommand); + commands.push_back(new cmMathCommand); + commands.push_back(new cmOutputRequiredFilesCommand); + commands.push_back(new cmQTWrapCPPCommand); + commands.push_back(new cmQTWrapUICommand); + commands.push_back(new cmRemoveCommand); + commands.push_back(new cmRemoveDefinitionsCommand); + commands.push_back(new cmSeparateArgumentsCommand); + commands.push_back(new cmSetDirectoryPropertiesCommand); + commands.push_back(new cmSourceGroupCommand); + commands.push_back(new cmSubdirDependsCommand); + commands.push_back(new cmUseMangledMesaCommand); + commands.push_back(new cmUtilitySourceCommand); + commands.push_back(new cmVariableRequiresCommand); + commands.push_back(new cmVariableWatchCommand); + commands.push_back(new cmWhileCommand); + commands.push_back(new cmWriteFileCommand); +#endif +} diff --git a/CMakeLua/Source/cmCommands.h b/CMakeLua/Source/cmCommands.h new file mode 100644 index 0000000..79fab9d --- /dev/null +++ b/CMakeLua/Source/cmCommands.h @@ -0,0 +1,33 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCommands.h,v $ + Language: C++ + Date: $Date: 2005/01/21 15:27:51 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCommands_h +#define cmCommands_h +#include "cmStandardIncludes.h" + +class cmCommand; +/** + * Global function to return all compiled in commands. + * To add a new command edit cmCommands.cxx or cmBootstrapCommands.cxx + * and add your command. + * It is up to the caller to delete the commands created by this + * call. + */ +void GetBootstrapCommands(std::list& commands); +void GetPredefinedCommands(std::list& commands); + + +#endif diff --git a/CMakeLua/Source/cmComputeLinkDepends.cxx b/CMakeLua/Source/cmComputeLinkDepends.cxx new file mode 100644 index 0000000..27a7f3d --- /dev/null +++ b/CMakeLua/Source/cmComputeLinkDepends.cxx @@ -0,0 +1,630 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmComputeLinkDepends.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmComputeLinkDepends.h" + +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" +#include "cmTarget.h" + +#include + +/* + +This file computes an ordered list of link items to use when linking a +single target in one configuration. Each link item is identified by +the string naming it. A graph of dependencies is created in which +each node corresponds to one item and directed eges lead from nodes to +those which must *precede* them on the link line. For example, the +graph + + C -> B -> A + +will lead to the link line order + + A B C + +The set of items placed in the graph is formed with a breadth-first +search of the link dependencies starting from the main target. + +There are two types of items: those with known direct dependencies and +those without known dependencies. We will call the two types "known +items" and "unknown items", respecitvely. Known items are those whose +names correspond to targets (built or imported) and those for which an +old-style _LIB_DEPENDS variable is defined. All other items are +unknown and we must infer dependencies for them. + +Known items have dependency lists ordered based on how the user +specified them. We can use this order to infer potential dependencies +of unknown items. For example, if link items A and B are unknown and +items X and Y are known, then we might have the following dependency +lists: + + X: Y A B + Y: A B + +The explicitly known dependencies form graph edges + + X <- Y , X <- A , X <- B , Y <- A , Y <- B + +We can also infer the edge + + A <- B + +because *every* time A appears B is seen on its right. We do not know +whether A really needs symbols from B to link, but it *might* so we +must preserve their order. This is the case also for the following +explict lists: + + X: A B Y + Y: A B + +Here, A is followed by the set {B,Y} in one list, and {B} in the other +list. The intersection of these sets is {B}, so we can infer that A +depends on at most B. Meanwhile B is followed by the set {Y} in one +list and {} in the other. The intersection is {} so we can infer that +B has no dependencies. + +Let's make a more complex example by adding unknown item C and +considering these dependency lists: + + X: A B Y C + Y: A C B + +The explicit edges are + + X <- Y , X <- A , X <- B , X <- C , Y <- A , Y <- B , Y <- C + +For the unknown items, we infer dependencies by looking at the +"follow" sets: + + A: intersect( {B,Y,C} , {C,B} ) = {B,C} ; infer edges A <- B , A <- C + B: intersect( {Y,C} , {} ) = {} ; infer no edges + C: intersect( {} , {B} ) = {} ; infer no edges + +Once the complete graph is formed from all known and inferred +dependencies, we walk the graph with a series of depth-first-searches +in order to emit link items. When visiting a node all edges are +followed first because the neighbors must precede the item. Once +neighbors across all edges have been emitted it is safe to emit the +current node. + +If a single DFS returns to a node it previously reached then a cycle +is present. Cyclic link dependencies are resolved simply by repeating +one of the cycle entries at the beginning and end of the cycle +members. For example, the graph + + A <- B , B <- C , C <- A + +can be satisfied with the link item list + + A B C A + +When a node is reached a second time during the same DFS we make sure +its item has been emitted and then skip following its outgoing edges +again. + +The initial exploration of dependencies using a BFS associates an +integer index with each link item. When the graph is built outgoing +edges are sorted by this index. This preserves the original link +order as much as possible subject to the dependencies. + +After the initial exploration of the link interface tree, any +transitive (dependent) shared libraries that were encountered and not +included in the interface are processed in their own BFS. This BFS +follows only the dependent library lists and not the link interfaces. +They are added to the link items with a mark indicating that the are +transitive dependencies. Then cmComputeLinkInformation deals with +them on a per-platform basis. + +*/ + +//---------------------------------------------------------------------------- +cmComputeLinkDepends +::cmComputeLinkDepends(cmTarget* target, const char* config) +{ + // Store context information. + this->Target = target; + this->Makefile = this->Target->GetMakefile(); + this->LocalGenerator = this->Makefile->GetLocalGenerator(); + this->GlobalGenerator = this->LocalGenerator->GetGlobalGenerator(); + + // The configuration being linked. + this->Config = config; + + // Enable debug mode if requested. + this->DebugMode = this->Makefile->IsOn("CMAKE_LINK_DEPENDS_DEBUG_MODE"); +} + +//---------------------------------------------------------------------------- +cmComputeLinkDepends::~cmComputeLinkDepends() +{ + for(std::vector::iterator + i = this->InferredDependSets.begin(); + i != this->InferredDependSets.end(); ++i) + { + delete *i; + } +} + +//---------------------------------------------------------------------------- +std::vector const& +cmComputeLinkDepends::Compute() +{ + // Follow the link dependencies of the target to be linked. + this->AddTargetLinkEntries(-1, this->Target->GetOriginalLinkLibraries()); + + // Complete the breadth-first search of dependencies. + while(!this->BFSQueue.empty()) + { + // Get the next entry. + BFSEntry qe = this->BFSQueue.front(); + this->BFSQueue.pop(); + + // Follow the entry's dependencies. + this->FollowLinkEntry(qe); + } + + // Complete the search of shared library dependencies. + while(!this->SharedDepQueue.empty()) + { + // Handle the next entry. + this->HandleSharedDependency(this->SharedDepQueue.front()); + this->SharedDepQueue.pop(); + } + + // Infer dependencies of targets for which they were not known. + this->InferDependencies(); + + // Display the constraint graph. + if(this->DebugMode) + { + fprintf(stderr, + "---------------------------------------" + "---------------------------------------\n"); + fprintf(stderr, "Link dependency analysis for target %s, config %s\n", + this->Target->GetName(), this->Config?this->Config:"noconfig"); + this->DisplayConstraintGraph(); + } + + // Compute the final set of link entries. + this->OrderLinkEntires(); + + // Display the final set. + if(this->DebugMode) + { + this->DisplayFinalEntries(); + } + + return this->FinalLinkEntries; +} + +//---------------------------------------------------------------------------- +std::map::iterator +cmComputeLinkDepends::AllocateLinkEntry(std::string const& item) +{ + std::map::value_type + index_entry(item, static_cast(this->EntryList.size())); + std::map::iterator + lei = this->LinkEntryIndex.insert(index_entry).first; + this->EntryList.push_back(LinkEntry()); + this->InferredDependSets.push_back(0); + this->EntryConstraintGraph.push_back(EntryConstraintSet()); + return lei; +} + +//---------------------------------------------------------------------------- +int cmComputeLinkDepends::AddLinkEntry(std::string const& item) +{ + // Check if the item entry has already been added. + std::map::iterator lei = this->LinkEntryIndex.find(item); + if(lei != this->LinkEntryIndex.end()) + { + // Yes. We do not need to follow the item's dependencies again. + return lei->second; + } + + // Allocate a spot for the item entry. + lei = this->AllocateLinkEntry(item); + + // Initialize the item entry. + int index = lei->second; + LinkEntry& entry = this->EntryList[index]; + entry.Item = item; + entry.Target = this->Makefile->FindTargetToUse(entry.Item.c_str()); + + // If the item has dependencies queue it to follow them. + if(entry.Target) + { + // Target dependencies are always known. Follow them. + BFSEntry qe = {index, 0}; + this->BFSQueue.push(qe); + } + else + { + // Look for an old-style _LIB_DEPENDS variable. + std::string var = entry.Item; + var += "_LIB_DEPENDS"; + if(const char* val = this->Makefile->GetDefinition(var.c_str())) + { + // The item dependencies are known. Follow them. + BFSEntry qe = {index, val}; + this->BFSQueue.push(qe); + } + else + { + // The item dependencies are not known. We need to infer them. + this->InferredDependSets[index] = new DependSetList; + } + } + + return index; +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::FollowLinkEntry(BFSEntry const& qe) +{ + // Get this entry representation. + int depender_index = qe.Index; + LinkEntry const& entry = this->EntryList[depender_index]; + + // Follow the item's dependencies. + if(entry.Target) + { + // Follow the target dependencies. + if(cmTargetLinkInterface const* interface = + entry.Target->GetLinkInterface(this->Config)) + { + // This target provides its own link interface information. + this->AddLinkEntries(depender_index, interface->Libraries); + + // Handle dependent shared libraries. + this->QueueSharedDependencies(depender_index, interface->SharedDeps); + } + else if(!entry.Target->IsImported() && + entry.Target->GetType() != cmTarget::EXECUTABLE) + { + // Use the target's link implementation as the interface. + this->AddTargetLinkEntries(depender_index, + entry.Target->GetOriginalLinkLibraries()); + } + } + else + { + // Follow the old-style dependency list. + this->AddVarLinkEntries(depender_index, qe.LibDepends); + } +} + +//---------------------------------------------------------------------------- +void +cmComputeLinkDepends +::QueueSharedDependencies(int depender_index, + std::vector const& deps) +{ + for(std::vector::const_iterator li = deps.begin(); + li != deps.end(); ++li) + { + SharedDepEntry qe; + qe.Item = *li; + qe.DependerIndex = depender_index; + this->SharedDepQueue.push(qe); + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::HandleSharedDependency(SharedDepEntry const& dep) +{ + // Check if the target already has an entry. + std::map::iterator lei = + this->LinkEntryIndex.find(dep.Item); + if(lei == this->LinkEntryIndex.end()) + { + // Allocate a spot for the item entry. + lei = this->AllocateLinkEntry(dep.Item); + + // Initialize the item entry. + LinkEntry& entry = this->EntryList[lei->second]; + entry.Item = dep.Item; + entry.Target = this->Makefile->FindTargetToUse(dep.Item.c_str()); + + // This item was added specifically because it is a dependent + // shared library. It may get special treatment + // in cmComputeLinkInformation. + entry.IsSharedDep = true; + } + + // Get the link entry for this target. + int index = lei->second; + LinkEntry& entry = this->EntryList[index]; + + // This shared library dependency must be preceded by the item that + // listed it. + this->EntryConstraintGraph[index].insert(dep.DependerIndex); + + // Target items may have their own dependencies. + if(entry.Target) + { + if(cmTargetLinkInterface const* interface = + entry.Target->GetLinkInterface(this->Config)) + { + // We use just the shared dependencies, not the interface. + this->QueueSharedDependencies(index, interface->SharedDeps); + } + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::AddVarLinkEntries(int depender_index, + const char* value) +{ + // This is called to add the dependencies named by + // _LIB_DEPENDS. The variable contains a semicolon-separated + // list. The list contains link-type;item pairs and just items. + std::vector deplist; + cmSystemTools::ExpandListArgument(value, deplist); + + // Compute which library configuration to link. + cmTarget::LinkLibraryType linkType = cmTarget::OPTIMIZED; + if(this->Config && cmSystemTools::UpperCase(this->Config) == "DEBUG") + { + linkType = cmTarget::DEBUG; + } + + // Look for entries meant for this configuration. + std::vector actual_libs; + cmTarget::LinkLibraryType llt = cmTarget::GENERAL; + for(std::vector::const_iterator di = deplist.begin(); + di != deplist.end(); ++di) + { + if(*di == "debug") + { + llt = cmTarget::DEBUG; + } + else if(*di == "optimized") + { + llt = cmTarget::OPTIMIZED; + } + else if(*di == "general") + { + llt = cmTarget::GENERAL; + } + else if(!di->empty()) + { + if(llt == cmTarget::GENERAL || llt == linkType) + { + actual_libs.push_back(*di); + } + linkType = cmTarget::GENERAL; + } + } + + // Add the entries from this list. + this->AddLinkEntries(depender_index, actual_libs); +} + +//---------------------------------------------------------------------------- +void +cmComputeLinkDepends::AddTargetLinkEntries(int depender_index, + LinkLibraryVectorType const& libs) +{ + // Compute which library configuration to link. + cmTarget::LinkLibraryType linkType = cmTarget::OPTIMIZED; + if(this->Config && cmSystemTools::UpperCase(this->Config) == "DEBUG") + { + linkType = cmTarget::DEBUG; + } + + // Look for entries meant for this configuration. + std::vector actual_libs; + for(cmTarget::LinkLibraryVectorType::const_iterator li = libs.begin(); + li != libs.end(); ++li) + { + if(li->second == cmTarget::GENERAL || li->second == linkType) + { + actual_libs.push_back(li->first); + } + } + + // Add these entries. + this->AddLinkEntries(depender_index, actual_libs); +} + +//---------------------------------------------------------------------------- +void +cmComputeLinkDepends::AddLinkEntries(int depender_index, + std::vector const& libs) +{ + // Track inferred dependency sets implied by this list. + std::map dependSets; + + // Loop over the libraries linked directly by the depender. + for(std::vector::const_iterator li = libs.begin(); + li != libs.end(); ++li) + { + // Skip entries that will resolve to the target getting linked or + // are empty. + if(*li == this->Target->GetName() || li->empty()) + { + continue; + } + + // Add a link entry for this item. + int dependee_index = this->AddLinkEntry(*li); + + // The depender must come before the dependee. + if(depender_index >= 0) + { + this->EntryConstraintGraph[dependee_index].insert(depender_index); + } + + // Update the inferred dependencies for earlier items. + for(std::map::iterator dsi = dependSets.begin(); + dsi != dependSets.end(); ++dsi) + { + if(dependee_index != dsi->first) + { + dsi->second.insert(dependee_index); + } + } + + // If this item needs to have dependencies inferred, do so. + if(this->InferredDependSets[dependee_index]) + { + // Make sure an entry exists to hold the set for the item. + dependSets[dependee_index]; + } + } + + // Store the inferred dependency sets discovered for this list. + for(std::map::iterator dsi = dependSets.begin(); + dsi != dependSets.end(); ++dsi) + { + this->InferredDependSets[dsi->first]->push_back(dsi->second); + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::InferDependencies() +{ + // The inferred dependency sets for each item list the possible + // dependencies. The intersection of the sets for one item form its + // inferred dependencies. + for(unsigned int depender_index=0; + depender_index < this->InferredDependSets.size(); ++depender_index) + { + // Skip items for which dependencies do not need to be inferred or + // for which the inferred dependency sets are empty. + DependSetList* sets = this->InferredDependSets[depender_index]; + if(!sets || sets->empty()) + { + continue; + } + + // Intersect the sets for this item. + DependSetList::const_iterator i = sets->begin(); + DependSet common = *i; + for(++i; i != sets->end(); ++i) + { + DependSet intersection; + cmsys_stl::set_intersection + (common.begin(), common.end(), i->begin(), i->end(), + std::inserter(intersection, intersection.begin())); + common = intersection; + } + + // Add the inferred dependencies to the graph. + for(DependSet::const_iterator j = common.begin(); j != common.end(); ++j) + { + int dependee_index = *j; + this->EntryConstraintGraph[dependee_index].insert(depender_index); + } + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::DisplayConstraintGraph() +{ + // Display the conflict graph. + cmOStringStream e; + for(unsigned int i=0; i < this->EntryConstraintGraph.size(); ++i) + { + EntryConstraintSet const& cset = this->EntryConstraintGraph[i]; + e << "item " << i << " is [" << this->EntryList[i].Item << "]\n"; + for(EntryConstraintSet::const_iterator j = cset.begin(); + j != cset.end(); ++j) + { + e << " item " << *j << " must precede it\n"; + } + } + fprintf(stderr, "%s\n", e.str().c_str()); +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::OrderLinkEntires() +{ + // Setup visit tracking. + this->EntryVisited.resize(this->EntryList.size(), 0); + this->WalkId = 0; + + // Start a DFS from every entry. + for(unsigned int i=0; i < this->EntryList.size(); ++i) + { + ++this->WalkId; + this->VisitLinkEntry(i); + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::VisitLinkEntry(unsigned int i) +{ + // Check if the node has already been visited. + if(this->EntryVisited[i]) + { + if(this->EntryVisited[i] == this->WalkId) + { + // We have reached a node previously visited on this DFS. There + // is a cycle. In order to allow linking with cyclic + // dependencies we make sure the item is emitted but do not + // follow its outgoing edges again. + if(this->EntryEmitted.insert(i).second) + { + // The item has not been previously emitted so we emit it now. + // It will be emitted again when the stack unwinds back up to + // the beginning of the cycle. + this->FinalLinkEntries.push_back(this->EntryList[i]); + } + } + return; + } + + // We are now visiting this node so mark it. + this->EntryVisited[i] = this->WalkId; + + // Visit the neighbors of the node first. + EntryConstraintSet const& cset = this->EntryConstraintGraph[i]; + for(EntryConstraintSet::const_iterator j = cset.begin(); + j != cset.end(); ++j) + { + this->VisitLinkEntry(*j); + } + + // Now that all items required to come before this one have been + // emmitted, emit this item. + this->EntryEmitted.insert(i); + this->FinalLinkEntries.push_back(this->EntryList[i]); +} + +//---------------------------------------------------------------------------- +void cmComputeLinkDepends::DisplayFinalEntries() +{ + fprintf(stderr, "target [%s] links to:\n", this->Target->GetName()); + for(std::vector::const_iterator lei = + this->FinalLinkEntries.begin(); + lei != this->FinalLinkEntries.end(); ++lei) + { + if(lei->Target) + { + fprintf(stderr, " target [%s]\n", lei->Target->GetName()); + } + else + { + fprintf(stderr, " item [%s]\n", lei->Item.c_str()); + } + } + fprintf(stderr, "\n"); +} diff --git a/CMakeLua/Source/cmComputeLinkDepends.h b/CMakeLua/Source/cmComputeLinkDepends.h new file mode 100644 index 0000000..b7af2dc --- /dev/null +++ b/CMakeLua/Source/cmComputeLinkDepends.h @@ -0,0 +1,125 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmComputeLinkDepends.h,v $ + Language: C++ + Date: $Date: 2008/01/31 20:45:30 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmComputeLinkDepends_h +#define cmComputeLinkDepends_h + +#include "cmStandardIncludes.h" +#include "cmTarget.h" + +#include + +class cmGlobalGenerator; +class cmLocalGenerator; +class cmMakefile; +class cmTarget; + +/** \class cmComputeLinkDepends + * \brief Compute link dependencies for targets. + */ +class cmComputeLinkDepends +{ +public: + cmComputeLinkDepends(cmTarget* target, const char* config); + ~cmComputeLinkDepends(); + + // Basic information about each link item. + struct LinkEntry + { + std::string Item; + cmTarget* Target; + bool IsSharedDep; + LinkEntry(): Item(), Target(0), IsSharedDep(false) {} + LinkEntry(LinkEntry const& r): + Item(r.Item), Target(r.Target), IsSharedDep(r.IsSharedDep) {} + }; + + typedef std::vector EntryVector; + EntryVector const& Compute(); + +private: + + // Context information. + cmTarget* Target; + cmMakefile* Makefile; + cmLocalGenerator* LocalGenerator; + cmGlobalGenerator* GlobalGenerator; + bool DebugMode; + + // Configuration information. + const char* Config; + + // Output information. + EntryVector FinalLinkEntries; + + typedef cmTarget::LinkLibraryVectorType LinkLibraryVectorType; + + std::map::iterator + AllocateLinkEntry(std::string const& item); + int AddLinkEntry(std::string const& item); + void AddVarLinkEntries(int depender_index, const char* value); + void AddTargetLinkEntries(int depender_index, + LinkLibraryVectorType const& libs); + void AddLinkEntries(int depender_index, + std::vector const& libs); + + // One entry for each unique item. + std::vector EntryList; + std::map LinkEntryIndex; + + // BFS of initial dependencies. + struct BFSEntry + { + int Index; + const char* LibDepends; + }; + std::queue BFSQueue; + void FollowLinkEntry(BFSEntry const&); + + // Shared libraries that are included only because they are + // dependencies of other shared libraries, not because they are part + // of the interface. + struct SharedDepEntry + { + std::string Item; + int DependerIndex; + }; + std::queue SharedDepQueue; + void QueueSharedDependencies(int depender_index, + std::vector const& deps); + void HandleSharedDependency(SharedDepEntry const& dep); + + // Dependency inferral for each link item. + struct DependSet: public std::set {}; + struct DependSetList: public std::vector {}; + std::vector InferredDependSets; + void InferDependencies(); + + // Ordering constraint graph adjacency list. + struct EntryConstraintSet: public std::set {}; + std::vector EntryConstraintGraph; + void DisplayConstraintGraph(); + + // Ordering algorithm. + std::vector EntryVisited; + std::set EntryEmitted; + int WalkId; + void OrderLinkEntires(); + void VisitLinkEntry(unsigned int i); + void DisplayFinalEntries(); +}; + +#endif diff --git a/CMakeLua/Source/cmComputeLinkInformation.cxx b/CMakeLua/Source/cmComputeLinkInformation.cxx new file mode 100644 index 0000000..27ff960 --- /dev/null +++ b/CMakeLua/Source/cmComputeLinkInformation.cxx @@ -0,0 +1,1371 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmComputeLinkInformation.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmComputeLinkInformation.h" + +#include "cmComputeLinkDepends.h" +#include "cmOrderRuntimeDirectories.h" + +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" +#include "cmTarget.h" + +#include + +/* +Notes about linking on various platforms: + +------------------------------------------------------------------------------ + +Linux, FreeBSD, Mac OS X, IRIX, Sun, Windows: + +Linking to libraries using the full path works fine. + +------------------------------------------------------------------------------ + +On AIX, more work is needed. + + The "-bnoipath" option is needed. From "man ld": + + Note: If you specify a shared object, or an archive file + containing a shared object, with an absolute or relative path + name, instead of with the -lName flag, the path name is + included in the import file ID string in the loader section of + the output file. You can override this behavior with the + -bnoipath option. + + noipath + + For shared objects listed on the command-line, rather than + specified with the -l flag, use a null path component when + listing the shared object in the loader section of the + output file. A null path component is always used for + shared objects specified with the -l flag. This option + does not affect the specification of a path component by + using a line beginning with #! in an import file. The + default is the ipath option. + + This prevents the full path specified on the compile line from being + compiled directly into the binary. + + By default the linker places -L paths in the embedded runtime path. + In order to implement CMake's RPATH interface correctly, we need the + -blibpath:Path option. From "man ld": + + libpath:Path + + Uses Path as the library path when writing the loader section + of the output file. Path is neither checked for validity nor + used when searching for libraries specified by the -l flag. + Path overrides any library paths generated when the -L flag is + used. + + If you do not specify any -L flags, or if you specify the + nolibpath option, the default library path information is + written in the loader section of the output file. The default + library path information is the value of the LIBPATH + environment variable if it is defined, and /usr/lib:/lib, + otherwise. + + We can pass -Wl,-blibpath:/usr/lib:/lib always to avoid the -L stuff + and not break when the user sets LIBPATH. Then if we want to add an + rpath we insert it into the option before /usr/lib. + +------------------------------------------------------------------------------ + +On HP-UX, more work is needed. There are differences between +versions. + +ld: 92453-07 linker linker ld B.10.33 990520 + + Linking with a full path works okay for static and shared libraries. + The linker seems to always put the full path to where the library + was found in the binary whether using a full path or -lfoo syntax. + Transitive link dependencies work just fine due to the full paths. + + It has the "-l:libfoo.sl" option. The +nodefaultrpath is accepted + but not documented and does not seem to do anything. There is no + +forceload option. + +ld: 92453-07 linker ld HP Itanium(R) B.12.41 IPF/IPF + + Linking with a full path works okay for static libraries. + + Linking with a full path works okay for shared libraries. However + dependent (transitive) libraries of those linked directly must be + either found with an rpath stored in the direct dependencies or + found in -L paths as if they were specified with "-l:libfoo.sl" + (really "-l:"). The search matches that of the dynamic + loader but only with -L paths. In other words, if we have an + executable that links to shared library bar which links to shared + library foo, the link line for the exe must contain + + /dir/with/bar/libbar.sl -L/dir/with/foo + + It does not matter whether the exe wants to link to foo directly or + whether /dir/with/foo/libfoo.sl is listed. The -L path must still + be present. It should match the runtime path computed for the + executable taking all directly and transitively linked libraries + into account. + + The "+nodefaultrpath" option should be used to avoid getting -L + paths in the rpath unless we add our own rpath with +b. This means + that skip-build-rpath should use this option. + + See documentation in "man ld", "man dld.so", and + http://docs.hp.com/en/B2355-90968/creatingandusinglibraries.htm + + +[no]defaultrpath + +defaultrpath is the default. Include any paths that are + specified with -L in the embedded path, unless you specify the + +b option. If you use +b, only the path list specified by +b is + in the embedded path. + + The +nodefaultrpath option removes all library paths that were + specified with the -L option from the embedded path. The linker + searches the library paths specified by the -L option at link + time. At run time, the only library paths searched are those + specified by the environment variables LD_LIBRARY_PATH and + SHLIB_PATH, library paths specified by the +b linker option, and + finally the default library paths. + + +rpathfirst + This option will cause the paths specified in RPATH (embedded + path) to be used before the paths specified in LD_LIBRARY_PATH + or SHLIB_PATH, in searching for shared libraries. This changes + the default search order of LD_LIBRARY_PATH, SHLIB_PATH, and + RPATH (embedded path). + +------------------------------------------------------------------------------ +Notes about dependent (transitive) shared libraries: + +On non-Windows systems shared libraries may have transitive +dependencies. In order to support LINK_INTERFACE_LIBRARIES we must +support linking to a shared library without listing all the libraries +to which it links. Some linkers want to be able to find the +transitive dependencies (dependent libraries) of shared libraries +listed on the command line. + + - On Windows, DLLs are not directly linked, and the import libraries + have no transitive dependencies. + + - On Mac, we need to actually list the transitive dependencies. + Otherwise when using -isysroot for universal binaries it cannot + find the dependent libraries. Listing them on the command line + tells the linker where to find them, but unfortunately also links + the library. + + - On HP-UX, the linker wants to find the transitive dependencies of + shared libraries in the -L paths even if the dependent libraries + are given on the link line. + + - On AIX the transitive dependencies are not needed. + + - On SGI, the linker wants to find the transitive dependencies of + shared libraries in the -L paths if they are not given on the link + line. Transitive linking can be disabled using the options + + -no_transitive_link -Wl,-no_transitive_link + + which disable it. Both options must be given when invoking the + linker through the compiler. + + - On Sun, the linker wants to find the transitive dependencies of + shared libraries in the -L paths if they are not given on the link + line. + + - On Linux, FreeBSD, and QNX: + + The linker wants to find the transitive dependencies of shared + libraries in the "-rpath-link" paths option if they have not been + given on the link line. The option is like rpath but just for + link time: + + -Wl,-rpath-link,"/path1:/path2" + +For -rpath-link, we need a separate runtime path ordering pass +including just the dependent libraries that are not linked. + +For -L paths on non-HP, we can do the same thing as with rpath-link +but put the results in -L paths. The paths should be listed at the +end to avoid conflicting with user search paths (?). + +For -L paths on HP, we should do a runtime path ordering pass with +all libraries, both linked and non-linked. Even dependent +libraries that are also linked need to be listed in -L paths. + +In our implementation we add all dependent libraries to the runtime +path computation. Then the auto-generated RPATH will find everything. + +*/ + +//---------------------------------------------------------------------------- +cmComputeLinkInformation +::cmComputeLinkInformation(cmTarget* target, const char* config) +{ + // Store context information. + this->Target = target; + this->Makefile = this->Target->GetMakefile(); + this->LocalGenerator = this->Makefile->GetLocalGenerator(); + this->GlobalGenerator = this->LocalGenerator->GetGlobalGenerator(); + + // The configuration being linked. + this->Config = config; + + // Allocate internals. + this->OrderRuntimeSearchPath = + new cmOrderRuntimeDirectories(this->GlobalGenerator, target->GetName(), + "runtime path"); + this->OrderDependentRPath = 0; + + // Get the language used for linking this target. + this->LinkLanguage = + this->Target->GetLinkerLanguage(this->GlobalGenerator); + if(!this->LinkLanguage) + { + // The Compute method will do nothing, so skip the rest of the + // initialization. + return; + } + + // Check whether we should use an import library for linking a target. + this->UseImportLibrary = + this->Makefile->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX")?true:false; + + // On platforms without import libraries there may be a special flag + // to use when creating a plugin (module) that obtains symbols from + // the program that will load it. + this->LoaderFlag = 0; + if(!this->UseImportLibrary && + this->Target->GetType() == cmTarget::MODULE_LIBRARY) + { + std::string loader_flag_var = "CMAKE_SHARED_MODULE_LOADER_"; + loader_flag_var += this->LinkLanguage; + loader_flag_var += "_FLAG"; + this->LoaderFlag = this->Makefile->GetDefinition(loader_flag_var.c_str()); + } + + // Get options needed to link libraries. + this->LibLinkFlag = + this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_FLAG"); + this->LibLinkFileFlag = + this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_FILE_FLAG"); + this->LibLinkSuffix = + this->Makefile->GetSafeDefinition("CMAKE_LINK_LIBRARY_SUFFIX"); + + // Get options needed to specify RPATHs. + this->RuntimeUseChrpath = false; + if(this->Target->GetType() != cmTarget::STATIC_LIBRARY) + { + const char* tType = + ((this->Target->GetType() == cmTarget::EXECUTABLE)? + "EXECUTABLE" : "SHARED_LIBRARY"); + std::string rtVar = "CMAKE_"; + rtVar += tType; + rtVar += "_RUNTIME_"; + rtVar += this->LinkLanguage; + rtVar += "_FLAG"; + std::string rtSepVar = rtVar + "_SEP"; + this->RuntimeFlag = this->Makefile->GetSafeDefinition(rtVar.c_str()); + this->RuntimeSep = this->Makefile->GetSafeDefinition(rtSepVar.c_str()); + this->RuntimeAlways = + (this->Makefile-> + GetSafeDefinition("CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH")); + this->RuntimeUseChrpath = this->Target->IsChrpathUsed(); + + // Get options needed to help find dependent libraries. + std::string rlVar = "CMAKE_"; + rlVar += tType; + rlVar += "_RPATH_LINK_"; + rlVar += this->LinkLanguage; + rlVar += "_FLAG"; + this->RPathLinkFlag = this->Makefile->GetSafeDefinition(rlVar.c_str()); + } + + // Get link type information. + this->ComputeLinkTypeInfo(); + + // Setup the link item parser. + this->ComputeItemParserInfo(); + + // Setup framework support. + this->ComputeFrameworkInfo(); + + // Choose a mode for dealing with shared library dependencies. + this->SharedDependencyMode = SharedDepModeNone; + if(this->Makefile->IsOn("CMAKE_LINK_DEPENDENT_LIBRARY_FILES")) + { + this->SharedDependencyMode = SharedDepModeLink; + } + else if(this->Makefile->IsOn("CMAKE_LINK_DEPENDENT_LIBRARY_DIRS")) + { + this->SharedDependencyMode = SharedDepModeDir; + } + else if(!this->RPathLinkFlag.empty()) + { + this->SharedDependencyMode = SharedDepModeDir; + } + if(this->SharedDependencyMode == SharedDepModeDir) + { + this->OrderDependentRPath = + new cmOrderRuntimeDirectories(this->GlobalGenerator, target->GetName(), + "dependent library path"); + } + + // Get the implicit link directories for this platform. + if(const char* implicitLinks = + (this->Makefile->GetDefinition + ("CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES"))) + { + std::vector implicitLinkVec; + cmSystemTools::ExpandListArgument(implicitLinks, implicitLinkVec); + for(std::vector::const_iterator + i = implicitLinkVec.begin(); + i != implicitLinkVec.end(); ++i) + { + this->ImplicitLinkDirs.insert(*i); + } + } + + // Initial state. + this->HaveUserFlagItem = false; + + // Decide whether to enable compatible library search path mode. + // There exists code that effectively does + // + // /path/to/libA.so -lB + // + // where -lB is meant to link to /path/to/libB.so. This is broken + // because it specified -lB without specifying a link directory (-L) + // in which to search for B. This worked in CMake 2.4 and below + // because -L/path/to would be added by the -L/-l split for A. In + // order to support such projects we need to add the directories + // containing libraries linked with a full path to the -L path. + this->OldLinkDirMode = false; + if(this->Makefile->IsOn("CMAKE_LINK_OLD_PATHS") || + this->Makefile->GetLocalGenerator() + ->NeedBackwardsCompatibility(2, 4)) + { + this->OldLinkDirMode = true; + } +} + +//---------------------------------------------------------------------------- +cmComputeLinkInformation::~cmComputeLinkInformation() +{ + delete this->OrderRuntimeSearchPath; + delete this->OrderDependentRPath; +} + +//---------------------------------------------------------------------------- +cmComputeLinkInformation::ItemVector const& +cmComputeLinkInformation::GetItems() +{ + return this->Items; +} + +//---------------------------------------------------------------------------- +std::vector const& cmComputeLinkInformation::GetDirectories() +{ + return this->Directories; +} + +//---------------------------------------------------------------------------- +std::string cmComputeLinkInformation::GetRPathLinkString() +{ + // If there is no separate linker runtime search flag (-rpath-link) + // there is no reason to compute a string. + if(!this->OrderDependentRPath || this->RPathLinkFlag.empty()) + { + return ""; + } + + // Construct the linker runtime search path. + std::string rpath_link; + const char* sep = ""; + std::vector const& dirs = + this->OrderDependentRPath->GetRuntimePath(); + for(std::vector::const_iterator di = dirs.begin(); + di != dirs.end(); ++di) + { + rpath_link += sep; + sep = ":"; + rpath_link += *di; + } + return rpath_link; +} + +//---------------------------------------------------------------------------- +std::vector const& cmComputeLinkInformation::GetDepends() +{ + return this->Depends; +} + +//---------------------------------------------------------------------------- +std::vector const& cmComputeLinkInformation::GetFrameworkPaths() +{ + return this->FrameworkPaths; +} + +//---------------------------------------------------------------------------- +std::set const& +cmComputeLinkInformation::GetSharedLibrariesLinked() +{ + return this->SharedLibrariesLinked; +} + +//---------------------------------------------------------------------------- +bool cmComputeLinkInformation::Compute() +{ + // Skip targets that do not link. + if(!(this->Target->GetType() == cmTarget::EXECUTABLE || + this->Target->GetType() == cmTarget::SHARED_LIBRARY || + this->Target->GetType() == cmTarget::MODULE_LIBRARY || + this->Target->GetType() == cmTarget::STATIC_LIBRARY)) + { + return false; + } + + // We require a link language for the target. + if(!this->LinkLanguage) + { + cmSystemTools:: + Error("CMake can not determine linker language for target:", + this->Target->GetName()); + return false; + } + + // Compute the ordered link line items. + cmComputeLinkDepends cld(this->Target, this->Config); + cmComputeLinkDepends::EntryVector const& linkEntries = cld.Compute(); + + // Add the link line items. + for(cmComputeLinkDepends::EntryVector::const_iterator + lei = linkEntries.begin(); + lei != linkEntries.end(); ++lei) + { + if(lei->IsSharedDep) + { + this->AddSharedDepItem(lei->Item, lei->Target); + } + else + { + this->AddItem(lei->Item, lei->Target); + } + } + + // Restore the target link type so the correct system runtime + // libraries are found. + const char* lss = this->Target->GetProperty("LINK_SEARCH_END_STATIC"); + if(cmSystemTools::IsOn(lss)) + { + this->SetCurrentLinkType(LinkStatic); + } + else + { + this->SetCurrentLinkType(this->StartLinkType); + } + + // Compute the linker search path. + this->ComputeLinkerSearchDirectories(); + + return true; +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddItem(std::string const& item, cmTarget* tgt) +{ + // Compute the proper name to use to link this library. + const char* config = this->Config; + bool impexe = (tgt && tgt->IsExecutableWithExports()); + if(impexe && !this->UseImportLibrary && !this->LoaderFlag) + { + // Skip linking to executables on platforms with no import + // libraries or loader flags. + return; + } + + if(tgt && (tgt->GetType() == cmTarget::STATIC_LIBRARY || + tgt->GetType() == cmTarget::SHARED_LIBRARY || + tgt->GetType() == cmTarget::MODULE_LIBRARY || + impexe)) + { + // This is a CMake target. Ask the target for its real name. + if(impexe && this->LoaderFlag) + { + // This link item is an executable that may provide symbols + // used by this target. A special flag is needed on this + // platform. Add it now. + std::string linkItem; + linkItem = this->LoaderFlag; + std::string exe = tgt->GetFullPath(config, this->UseImportLibrary); + linkItem += exe; + this->Items.push_back(Item(linkItem, true)); + this->Depends.push_back(exe); + } + else + { + // Decide whether to use an import library. + bool implib = + (this->UseImportLibrary && + (impexe || tgt->GetType() == cmTarget::SHARED_LIBRARY)); + + // Pass the full path to the target file. + std::string lib = tgt->GetFullPath(config, implib); + this->Depends.push_back(lib); + + if(tgt->IsFrameworkOnApple()) + { + // Frameworks on OS X need only the framework directory to + // link. + std::string fw = tgt->GetDirectory(config, implib); + this->AddFrameworkItem(fw); + } + else + { + this->AddTargetItem(lib, tgt); + this->AddLibraryRuntimeInfo(lib, tgt); + } + } + } + else + { + // This is not a CMake target. Use the name given. + if(cmSystemTools::FileIsFullPath(item.c_str())) + { + if(cmSystemTools::FileIsDirectory(item.c_str())) + { + // This is a directory. + this->AddDirectoryItem(item); + } + else + { + // Use the full path given to the library file. + this->Depends.push_back(item); + this->AddFullItem(item); + this->AddLibraryRuntimeInfo(item); + } + } + else + { + // This is a library or option specified by the user. + this->AddUserItem(item); + } + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddSharedDepItem(std::string const& item, + cmTarget* tgt) +{ + // If dropping shared library dependencies, ignore them. + if(this->SharedDependencyMode == SharedDepModeNone) + { + return; + } + + // The user may have incorrectly named an item. Skip items that are + // not full paths to shared libraries. + if(tgt) + { + // The target will provide a full path. Make sure it is a shared + // library. + if(tgt->GetType() != cmTarget::SHARED_LIBRARY) + { + return; + } + } + else + { + // Skip items that are not full paths. We will not be able to + // reliably specify them. + if(!cmSystemTools::FileIsFullPath(item.c_str())) + { + return; + } + + // Get the name of the library from the file name. + std::string file = cmSystemTools::GetFilenameName(item); + if(!this->ExtractSharedLibraryName.find(file.c_str())) + { + // This is not the name of a shared library. + return; + } + } + + // If in linking mode, just link to the shared library. + if(this->SharedDependencyMode == SharedDepModeLink) + { + this->AddItem(item, tgt); + return; + } + + // Get a full path to the dependent shared library. + // Add it to the runtime path computation so that the target being + // linked will be able to find it. + std::string lib; + if(tgt) + { + lib = tgt->GetFullPath(this->Config, this->UseImportLibrary); + this->AddLibraryRuntimeInfo(lib, tgt); + } + else + { + lib = item; + this->AddLibraryRuntimeInfo(lib); + } + + // Add the item to the separate dependent library search path if + // this platform wants one. + if(this->OrderDependentRPath) + { + if(tgt) + { + std::string soName = tgt->GetSOName(this->Config); + const char* soname = soName.empty()? 0 : soName.c_str(); + this->OrderDependentRPath->AddLibrary(lib, soname); + } + else + { + this->OrderDependentRPath->AddLibrary(lib); + } + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::ComputeLinkTypeInfo() +{ + // First assume we cannot do link type stuff. + this->LinkTypeEnabled = false; + + // Lookup link type selection flags. + const char* static_link_type_flag = 0; + const char* shared_link_type_flag = 0; + const char* target_type_str = 0; + switch(this->Target->GetType()) + { + case cmTarget::EXECUTABLE: target_type_str = "EXE"; break; + case cmTarget::SHARED_LIBRARY: target_type_str = "SHARED_LIBRARY"; break; + case cmTarget::MODULE_LIBRARY: target_type_str = "SHARED_MODULE"; break; + default: break; + } + if(target_type_str) + { + std::string static_link_type_flag_var = "CMAKE_"; + static_link_type_flag_var += target_type_str; + static_link_type_flag_var += "_LINK_STATIC_"; + static_link_type_flag_var += this->LinkLanguage; + static_link_type_flag_var += "_FLAGS"; + static_link_type_flag = + this->Makefile->GetDefinition(static_link_type_flag_var.c_str()); + + std::string shared_link_type_flag_var = "CMAKE_"; + shared_link_type_flag_var += target_type_str; + shared_link_type_flag_var += "_LINK_DYNAMIC_"; + shared_link_type_flag_var += this->LinkLanguage; + shared_link_type_flag_var += "_FLAGS"; + shared_link_type_flag = + this->Makefile->GetDefinition(shared_link_type_flag_var.c_str()); + } + + // We can support link type switching only if all needed flags are + // known. + if(static_link_type_flag && *static_link_type_flag && + shared_link_type_flag && *shared_link_type_flag) + { + this->LinkTypeEnabled = true; + this->StaticLinkTypeFlag = static_link_type_flag; + this->SharedLinkTypeFlag = shared_link_type_flag; + } + + // TODO: Lookup the starting link type from the target (is it being + // linked statically?). + this->StartLinkType = LinkShared; + this->CurrentLinkType = this->StartLinkType; +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::ComputeItemParserInfo() +{ + // Get possible library name prefixes. + cmMakefile* mf = this->Makefile; + this->AddLinkPrefix(mf->GetDefinition("CMAKE_STATIC_LIBRARY_PREFIX")); + this->AddLinkPrefix(mf->GetDefinition("CMAKE_SHARED_LIBRARY_PREFIX")); + + // Import library names should be matched and treated as shared + // libraries for the purposes of linking. + this->AddLinkExtension(mf->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX"), + LinkShared); + this->AddLinkExtension(mf->GetDefinition("CMAKE_STATIC_LIBRARY_SUFFIX"), + LinkStatic); + this->AddLinkExtension(mf->GetDefinition("CMAKE_SHARED_LIBRARY_SUFFIX"), + LinkShared); + this->AddLinkExtension(mf->GetDefinition("CMAKE_LINK_LIBRARY_SUFFIX"), + LinkUnknown); + if(const char* linkSuffixes = + mf->GetDefinition("CMAKE_EXTRA_LINK_EXTENSIONS")) + { + std::vector linkSuffixVec; + cmSystemTools::ExpandListArgument(linkSuffixes, linkSuffixVec); + for(std::vector::iterator i = linkSuffixVec.begin(); + i != linkSuffixVec.end(); ++i) + { + this->AddLinkExtension(i->c_str(), LinkUnknown); + } + } + + // Compute a regex to match link extensions. + std::string libext = this->CreateExtensionRegex(this->LinkExtensions); + + // Create regex to remove any library extension. + std::string reg("(.*)"); + reg += libext; + this->RemoveLibraryExtension.compile(reg.c_str()); + + // Create a regex to match a library name. Match index 1 will be + // the prefix if it exists and empty otherwise. Match index 2 will + // be the library name. Match index 3 will be the library + // extension. + reg = "^("; + for(std::set::iterator p = this->LinkPrefixes.begin(); + p != this->LinkPrefixes.end(); ++p) + { + reg += *p; + reg += "|"; + } + reg += ")"; + reg += "([^/]*)"; + + // Create a regex to match any library name. + std::string reg_any = reg; + reg_any += libext; +#ifdef CM_COMPUTE_LINK_INFO_DEBUG + fprintf(stderr, "any regex [%s]\n", reg_any.c_str()); +#endif + this->ExtractAnyLibraryName.compile(reg_any.c_str()); + + // Create a regex to match static library names. + if(!this->StaticLinkExtensions.empty()) + { + std::string reg_static = reg; + reg_static += this->CreateExtensionRegex(this->StaticLinkExtensions); +#ifdef CM_COMPUTE_LINK_INFO_DEBUG + fprintf(stderr, "static regex [%s]\n", reg_static.c_str()); +#endif + this->ExtractStaticLibraryName.compile(reg_static.c_str()); + } + + // Create a regex to match shared library names. + if(!this->SharedLinkExtensions.empty()) + { + std::string reg_shared = reg; + reg_shared += this->CreateExtensionRegex(this->SharedLinkExtensions); +#ifdef CM_COMPUTE_LINK_INFO_DEBUG + fprintf(stderr, "shared regex [%s]\n", reg_shared.c_str()); +#endif + this->ExtractSharedLibraryName.compile(reg_shared.c_str()); + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddLinkPrefix(const char* p) +{ + if(p) + { + this->LinkPrefixes.insert(p); + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddLinkExtension(const char* e, LinkType type) +{ + if(e && *e) + { + if(type == LinkStatic) + { + this->StaticLinkExtensions.push_back(e); + } + if(type == LinkShared) + { + this->SharedLinkExtensions.push_back(e); + } + this->LinkExtensions.push_back(e); + } +} + +//---------------------------------------------------------------------------- +std::string +cmComputeLinkInformation +::CreateExtensionRegex(std::vector const& exts) +{ + // Build a list of extension choices. + std::string libext = "("; + const char* sep = ""; + for(std::vector::const_iterator i = exts.begin(); + i != exts.end(); ++i) + { + // Separate this choice from the previous one. + libext += sep; + sep = "|"; + + // Store this extension choice with the "." escaped. + libext += "\\"; +#if defined(_WIN32) && !defined(__CYGWIN__) + libext += this->NoCaseExpression(i->c_str()); +#else + libext += *i; +#endif + } + + // Finish the list. + libext += ").*"; + return libext; +} + +//---------------------------------------------------------------------------- +std::string cmComputeLinkInformation::NoCaseExpression(const char* str) +{ + std::string ret; + const char* s = str; + while(*s) + { + if(*s == '.') + { + ret += *s; + } + else + { + ret += "["; + ret += tolower(*s); + ret += toupper(*s); + ret += "]"; + } + s++; + } + return ret; +} + +//------------------------------------------------------------------- +void cmComputeLinkInformation::SetCurrentLinkType(LinkType lt) +{ + // If we are changing the current link type add the flag to tell the + // linker about it. + if(this->CurrentLinkType != lt) + { + this->CurrentLinkType = lt; + + if(this->LinkTypeEnabled) + { + switch(this->CurrentLinkType) + { + case LinkStatic: + this->Items.push_back(Item(this->StaticLinkTypeFlag, false)); + break; + case LinkShared: + this->Items.push_back(Item(this->SharedLinkTypeFlag, false)); + break; + default: + break; + } + } + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddTargetItem(std::string const& item, + cmTarget* target) +{ + // This is called to handle a link item that is a full path to a target. + // If the target is not a static library make sure the link type is + // shared. This is because dynamic-mode linking can handle both + // shared and static libraries but static-mode can handle only + // static libraries. If a previous user item changed the link type + // to static we need to make sure it is back to shared. + if(target->GetType() != cmTarget::STATIC_LIBRARY) + { + this->SetCurrentLinkType(LinkShared); + } + + // If this platform wants a flag before the full path, add it. + if(!this->LibLinkFileFlag.empty()) + { + this->Items.push_back(Item(this->LibLinkFileFlag, false)); + } + + // Keep track of shared library targets linked. + if(target->GetType() == cmTarget::SHARED_LIBRARY) + { + this->SharedLibrariesLinked.insert(target); + } + + // Now add the full path to the library. + this->Items.push_back(Item(item, true)); +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddFullItem(std::string const& item) +{ + // Check for the implicit link directory special case. + if(this->CheckImplicitDirItem(item)) + { + return; + } + + // This is called to handle a link item that is a full path. + // If the target is not a static library make sure the link type is + // shared. This is because dynamic-mode linking can handle both + // shared and static libraries but static-mode can handle only + // static libraries. If a previous user item changed the link type + // to static we need to make sure it is back to shared. + if(this->LinkTypeEnabled) + { + std::string name = cmSystemTools::GetFilenameName(item); + if(this->ExtractSharedLibraryName.find(name)) + { + this->SetCurrentLinkType(LinkShared); + } + else if(!this->ExtractStaticLibraryName.find(item)) + { + // We cannot determine the type. Assume it is the target's + // default type. + this->SetCurrentLinkType(this->StartLinkType); + } + } + + // Record the directory in which the library appears because CMake + // 2.4 in below added these as -L paths. + if(this->OldLinkDirMode) + { + this->OldLinkDirs.push_back(cmSystemTools::GetFilenamePath(item)); + } + + // If this platform wants a flag before the full path, add it. + if(!this->LibLinkFileFlag.empty()) + { + this->Items.push_back(Item(this->LibLinkFileFlag, false)); + } + + // Now add the full path to the library. + this->Items.push_back(Item(item, true)); +} + +//---------------------------------------------------------------------------- +bool cmComputeLinkInformation::CheckImplicitDirItem(std::string const& item) +{ + // We only switch to a pathless item if the link type may be + // enforced. Fortunately only platforms that support link types + // seem to have magic per-architecture implicit link directories. + if(!this->LinkTypeEnabled) + { + return false; + } + + // Check if this item is in an implicit link directory. + std::string dir = cmSystemTools::GetFilenamePath(item); + if(this->ImplicitLinkDirs.find(dir) == this->ImplicitLinkDirs.end()) + { + // Only libraries in implicit link directories are converted to + // pathless items. + return false; + } + + // Many system linkers support multiple architectures by + // automatically selecting the implicit linker search path for the + // current architecture. If the library appears in an implicit link + // directory then just report the file name without the directory + // portion. This will allow the system linker to locate the proper + // library for the architecture at link time. + std::string file = cmSystemTools::GetFilenameName(item); + this->AddUserItem(file); + return true; +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddUserItem(std::string const& item) +{ + // This is called to handle a link item that does not match a CMake + // target and is not a full path. We check here if it looks like a + // library file name to automatically request the proper link type + // from the linker. For example: + // + // foo ==> -lfoo + // libfoo.a ==> -Wl,-Bstatic -lfoo + std::string lib; + + // Parse out the prefix, base, and suffix components of the + // library name. If the name matches that of a shared or static + // library then set the link type accordingly. + // + // Search for shared library names first because some platforms + // have shared libraries with names that match the static library + // pattern. For example cygwin and msys use the convention + // libfoo.dll.a for import libraries and libfoo.a for static + // libraries. On AIX a library with the name libfoo.a can be + // shared! + if(this->ExtractSharedLibraryName.find(item)) + { + // This matches a shared library file name. +#ifdef CM_COMPUTE_LINK_INFO_DEBUG + fprintf(stderr, "shared regex matched [%s] [%s] [%s]\n", + this->ExtractSharedLibraryName.match(1).c_str(), + this->ExtractSharedLibraryName.match(2).c_str(), + this->ExtractSharedLibraryName.match(3).c_str()); +#endif + // Set the link type to shared. + this->SetCurrentLinkType(LinkShared); + + // Use just the library name so the linker will search. + lib = this->ExtractSharedLibraryName.match(2); + } + else if(this->ExtractStaticLibraryName.find(item)) + { + // This matches a static library file name. +#ifdef CM_COMPUTE_LINK_INFO_DEBUG + fprintf(stderr, "static regex matched [%s] [%s] [%s]\n", + this->ExtractStaticLibraryName.match(1).c_str(), + this->ExtractStaticLibraryName.match(2).c_str(), + this->ExtractStaticLibraryName.match(3).c_str()); +#endif + // Set the link type to static. + this->SetCurrentLinkType(LinkStatic); + + // Use just the library name so the linker will search. + lib = this->ExtractStaticLibraryName.match(2); + } + else if(this->ExtractAnyLibraryName.find(item)) + { + // This matches a library file name. +#ifdef CM_COMPUTE_LINK_INFO_DEBUG + fprintf(stderr, "any regex matched [%s] [%s] [%s]\n", + this->ExtractAnyLibraryName.match(1).c_str(), + this->ExtractAnyLibraryName.match(2).c_str(), + this->ExtractAnyLibraryName.match(3).c_str()); +#endif + // Restore the target link type since this item does not specify + // one. + this->SetCurrentLinkType(this->StartLinkType); + + // Use just the library name so the linker will search. + lib = this->ExtractAnyLibraryName.match(2); + } + else if(item[0] == '-' || item[0] == '$' || item[0] == '`') + { + // This is a linker option provided by the user. + this->HaveUserFlagItem = true; + + // Restore the target link type since this item does not specify + // one. + this->SetCurrentLinkType(this->StartLinkType); + + // Use the item verbatim. + this->Items.push_back(Item(item, false)); + return; + } + else + { + // This is a name specified by the user. + this->HaveUserFlagItem = true; + + // We must ask the linker to search for a library with this name. + // Restore the target link type since this item does not specify + // one. + this->SetCurrentLinkType(this->StartLinkType); + lib = item; + } + + // Create an option to ask the linker to search for the library. + std::string out = this->LibLinkFlag; + out += lib; + out += this->LibLinkSuffix; + this->Items.push_back(Item(out, false)); + + // Here we could try to find the library the linker will find and + // add a runtime information entry for it. It would probably not be + // reliable and we want to encourage use of full paths for library + // specification. +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddFrameworkItem(std::string const& item) +{ + // Try to separate the framework name and path. + if(!this->SplitFramework.find(item.c_str())) + { + cmOStringStream e; + e << "Could not parse framework path \"" << item << "\" " + << "linked by target " << this->Target->GetName() << "."; + cmSystemTools::Error(e.str().c_str()); + return; + } + + // Add the directory portion to the framework search path. + this->AddFrameworkPath(this->SplitFramework.match(1)); + + // Add the item using the -framework option. + std::string fw = "-framework "; + fw += this->SplitFramework.match(2); + this->Items.push_back(Item(fw, false)); +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddDirectoryItem(std::string const& item) +{ +#ifdef __APPLE__ + if(cmSystemTools::IsPathToFramework(item.c_str())) + { + this->AddFrameworkItem(item); + } + else +#endif + { + this->DropDirectoryItem(item); + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::DropDirectoryItem(std::string const& item) +{ + // A full path to a directory was found as a link item. Warn the + // user. + cmOStringStream e; + e << "WARNING: Target \"" << this->Target->GetName() + << "\" requests linking to directory \"" << item << "\". " + << "Targets may link only to libraries. " + << "CMake is dropping the item."; + cmSystemTools::Message(e.str().c_str()); +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::ComputeFrameworkInfo() +{ + // Avoid adding system framework paths. See "man ld" on OS X. + this->FrameworkPathsEmmitted.insert("/Library/Frameworks"); + this->FrameworkPathsEmmitted.insert("/Network/Library/Frameworks"); + this->FrameworkPathsEmmitted.insert("/System/Library/Frameworks"); + + // Regular expression to extract a framework path and name. + this->SplitFramework.compile("(.*)/(.*)\\.framework$"); +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::AddFrameworkPath(std::string const& p) +{ + if(this->FrameworkPathsEmmitted.insert(p).second) + { + this->FrameworkPaths.push_back(p); + } +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::ComputeLinkerSearchDirectories() +{ + // Some search paths should never be emitted. + this->DirectoriesEmmitted = this->ImplicitLinkDirs; + this->DirectoriesEmmitted.insert(""); + + // Check if we need to include the runtime search path at link time. + std::string var = "CMAKE_SHARED_LIBRARY_LINK_"; + var += this->LinkLanguage; + var += "_WITH_RUNTIME_PATH"; + if(this->Makefile->IsOn(var.c_str())) + { + // This platform requires the runtime library path for shared + // libraries to be specified at link time as -L paths. It needs + // them so that transitive dependencies of the libraries linked + // may be found by the linker. + this->AddLinkerSearchDirectories(this->GetRuntimeSearchPath()); + } + + // Get the search path entries requested by the user. + this->AddLinkerSearchDirectories(this->Target->GetLinkDirectories()); + + // Support broken projects if necessary. + if(this->HaveUserFlagItem && this->OldLinkDirMode) + { + this->AddLinkerSearchDirectories(this->OldLinkDirs); + } + + // If there is no separate linker runtime search flag (-rpath-link) + // and we have a search path for dependent libraries add it to the + // link directories. + if(this->OrderDependentRPath && this->RPathLinkFlag.empty()) + { + this->AddLinkerSearchDirectories + (this->OrderDependentRPath->GetRuntimePath()); + } +} + +//---------------------------------------------------------------------------- +void +cmComputeLinkInformation +::AddLinkerSearchDirectories(std::vector const& dirs) +{ + for(std::vector::const_iterator i = dirs.begin(); + i != dirs.end(); ++i) + { + if(this->DirectoriesEmmitted.insert(*i).second) + { + this->Directories.push_back(*i); + } + } +} + +//---------------------------------------------------------------------------- +std::vector const& +cmComputeLinkInformation::GetRuntimeSearchPath() +{ + return this->OrderRuntimeSearchPath->GetRuntimePath(); +} + +//---------------------------------------------------------------------------- +void +cmComputeLinkInformation::AddLibraryRuntimeInfo(std::string const& fullPath, + cmTarget* target) +{ + // Skip targets that are not shared libraries (modules cannot be linked). + if(target->GetType() != cmTarget::SHARED_LIBRARY) + { + return; + } + + // Try to get the soname of the library. Only files with this name + // could possibly conflict. + std::string soName = target->GetSOName(this->Config); + const char* soname = soName.empty()? 0 : soName.c_str(); + + // Add the library runtime entry. + this->AddLibraryRuntimeInfo(fullPath, soname); +} + +//---------------------------------------------------------------------------- +void +cmComputeLinkInformation::AddLibraryRuntimeInfo(std::string const& fullPath, + const char* soname) +{ + // Get the name of the library from the file name. + std::string file = cmSystemTools::GetFilenameName(fullPath); + if(!this->ExtractSharedLibraryName.find(file.c_str())) + { + // This is not the name of a shared library. + return; + } + + // Include this library in the runtime path ordering. + this->OrderRuntimeSearchPath->AddLibrary(fullPath, soname); +} + +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::GetRPath(std::vector& runtimeDirs, + bool for_install) +{ + // Select whether to generate runtime search directories. + bool outputRuntime = + !this->Makefile->IsOn("CMAKE_SKIP_RPATH") && !this->RuntimeFlag.empty(); + + // Select whether to generate an rpath for the install tree or the + // build tree. + bool linking_for_install = + (for_install || + this->Target->GetPropertyAsBool("BUILD_WITH_INSTALL_RPATH")); + bool use_install_rpath = + (outputRuntime && this->Target->HaveInstallTreeRPATH() && + linking_for_install); + bool use_build_rpath = + (outputRuntime && this->Target->HaveBuildTreeRPATH() && + !linking_for_install); + bool use_link_rpath = + outputRuntime && linking_for_install && + this->Target->GetPropertyAsBool("INSTALL_RPATH_USE_LINK_PATH"); + + // Construct the RPATH. + if(use_install_rpath) + { + const char* install_rpath = this->Target->GetProperty("INSTALL_RPATH"); + cmSystemTools::ExpandListArgument(install_rpath, runtimeDirs); + } + if(use_build_rpath || use_link_rpath) + { + std::vector const& rdirs = this->GetRuntimeSearchPath(); + for(std::vector::const_iterator ri = rdirs.begin(); + ri != rdirs.end(); ++ri) + { + // Put this directory in the rpath if using build-tree rpath + // support or if using the link path as an rpath. + if(use_build_rpath) + { + runtimeDirs.push_back(*ri); + } + else if(use_link_rpath) + { + // Do not add any path inside the source or build tree. + const char* topSourceDir = this->Makefile->GetHomeDirectory(); + const char* topBinaryDir = this->Makefile->GetHomeOutputDirectory(); + if(!cmSystemTools::ComparePath(ri->c_str(), topSourceDir) && + !cmSystemTools::ComparePath(ri->c_str(), topBinaryDir) && + !cmSystemTools::IsSubDirectory(ri->c_str(), topSourceDir) && + !cmSystemTools::IsSubDirectory(ri->c_str(), topBinaryDir)) + { + runtimeDirs.push_back(*ri); + } + } + } + } + + // Add runtime paths required by the platform to always be + // present. This is done even when skipping rpath support. + cmSystemTools::ExpandListArgument(this->RuntimeAlways.c_str(), runtimeDirs); +} + +//---------------------------------------------------------------------------- +std::string cmComputeLinkInformation::GetRPathString(bool for_install) +{ + // Get the directories to use. + std::vector runtimeDirs; + this->GetRPath(runtimeDirs, for_install); + + // Concatenate the paths. + std::string rpath; + const char* sep = ""; + for(std::vector::const_iterator ri = runtimeDirs.begin(); + ri != runtimeDirs.end(); ++ri) + { + // Separate from previous path. + rpath += sep; + sep = this->GetRuntimeSep().c_str(); + + // Add this path. + rpath += *ri; + } + return rpath; +} + +//---------------------------------------------------------------------------- +std::string cmComputeLinkInformation::GetChrpathString() +{ + if(!this->RuntimeUseChrpath) + { + return ""; + } + + return this->GetRPathString(true); +} + +//---------------------------------------------------------------------------- +std::string cmComputeLinkInformation::GetChrpathTool() +{ + return this->Makefile->GetSafeDefinition("CMAKE_CHRPATH"); +} diff --git a/CMakeLua/Source/cmComputeLinkInformation.h b/CMakeLua/Source/cmComputeLinkInformation.h new file mode 100644 index 0000000..44e3c33 --- /dev/null +++ b/CMakeLua/Source/cmComputeLinkInformation.h @@ -0,0 +1,169 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmComputeLinkInformation.h,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmComputeLinkInformation_h +#define cmComputeLinkInformation_h + +#include "cmStandardIncludes.h" + +#include + +class cmGlobalGenerator; +class cmLocalGenerator; +class cmMakefile; +class cmTarget; +class cmOrderRuntimeDirectories; + +/** \class cmComputeLinkInformation + * \brief Compute link information for a target in one configuration. + */ +class cmComputeLinkInformation +{ +public: + cmComputeLinkInformation(cmTarget* target, const char* config); + ~cmComputeLinkInformation(); + bool Compute(); + + struct Item + { + Item(): Value(), IsPath(true) {} + Item(Item const& item): Value(item.Value), IsPath(item.IsPath) {} + Item(std::string const& v, bool p): Value(v), IsPath(p) {} + std::string Value; + bool IsPath; + }; + typedef std::vector ItemVector; + ItemVector const& GetItems(); + std::vector const& GetDirectories(); + std::vector const& GetDepends(); + std::vector const& GetFrameworkPaths(); + const char* GetLinkLanguage() const { return this->LinkLanguage; } + std::vector const& GetRuntimeSearchPath(); + std::string const& GetRuntimeFlag() const { return this->RuntimeFlag; } + std::string const& GetRuntimeSep() const { return this->RuntimeSep; } + void GetRPath(std::vector& runtimeDirs, bool for_install); + std::string GetRPathString(bool for_install); + std::string GetChrpathString(); + std::string GetChrpathTool(); + std::set const& GetSharedLibrariesLinked(); + + std::string const& GetRPathLinkFlag() const { return this->RPathLinkFlag; } + std::string GetRPathLinkString(); +private: + void AddItem(std::string const& item, cmTarget* tgt); + void AddSharedDepItem(std::string const& item, cmTarget* tgt); + + // Output information. + ItemVector Items; + std::vector Directories; + std::vector Depends; + std::vector FrameworkPaths; + std::vector RuntimeSearchPath; + std::set SharedLibrariesLinked; + + // Context information. + cmTarget* Target; + cmMakefile* Makefile; + cmLocalGenerator* LocalGenerator; + cmGlobalGenerator* GlobalGenerator; + + // Configuration information. + const char* Config; + const char* LinkLanguage; + + // Modes for dealing with dependent shared libraries. + enum SharedDepMode + { + SharedDepModeNone, // Drop + SharedDepModeDir, // Use in runtime information + SharedDepModeLink // List file on link line + }; + + // System info. + bool UseImportLibrary; + const char* LoaderFlag; + std::string LibLinkFlag; + std::string LibLinkFileFlag; + std::string LibLinkSuffix; + std::string RuntimeFlag; + std::string RuntimeSep; + std::string RuntimeAlways; + bool RuntimeUseChrpath; + std::string RPathLinkFlag; + SharedDepMode SharedDependencyMode; + + // Link type adjustment. + void ComputeLinkTypeInfo(); + enum LinkType { LinkUnknown, LinkStatic, LinkShared }; + LinkType StartLinkType; + LinkType CurrentLinkType; + std::string StaticLinkTypeFlag; + std::string SharedLinkTypeFlag; + bool LinkTypeEnabled; + void SetCurrentLinkType(LinkType lt); + + // Link item parsing. + void ComputeItemParserInfo(); + std::vector StaticLinkExtensions; + std::vector SharedLinkExtensions; + std::vector LinkExtensions; + std::set LinkPrefixes; + cmsys::RegularExpression RemoveLibraryExtension; + cmsys::RegularExpression ExtractStaticLibraryName; + cmsys::RegularExpression ExtractSharedLibraryName; + cmsys::RegularExpression ExtractAnyLibraryName; + void AddLinkPrefix(const char* p); + void AddLinkExtension(const char* e, LinkType type); + std::string CreateExtensionRegex(std::vector const& exts); + std::string NoCaseExpression(const char* str); + + // Handling of link items that are not targets or full file paths. + void AddTargetItem(std::string const& item, cmTarget* target); + void AddFullItem(std::string const& item); + bool CheckImplicitDirItem(std::string const& item); + void AddUserItem(std::string const& item); + void AddDirectoryItem(std::string const& item); + void AddFrameworkItem(std::string const& item); + void DropDirectoryItem(std::string const& item); + + // Framework info. + void ComputeFrameworkInfo(); + void AddFrameworkPath(std::string const& p); + std::set FrameworkPathsEmmitted; + cmsys::RegularExpression SplitFramework; + + // Linker search path computation. + void ComputeLinkerSearchDirectories(); + void AddLinkerSearchDirectories(std::vector const& dirs); + std::set DirectoriesEmmitted; + std::set ImplicitLinkDirs; + + // Linker search path compatibility mode. + std::vector OldLinkDirs; + bool OldLinkDirMode; + bool HaveUserFlagItem; + + // Runtime path computation. + cmOrderRuntimeDirectories* OrderRuntimeSearchPath; + void AddLibraryRuntimeInfo(std::string const& fullPath, cmTarget* target); + void AddLibraryRuntimeInfo(std::string const& fullPath, + const char* soname = 0); + + // Dependent library path computation. + cmOrderRuntimeDirectories* OrderDependentRPath; +}; + +#endif diff --git a/CMakeLua/Source/cmConfigure.cmake.h.in b/CMakeLua/Source/cmConfigure.cmake.h.in new file mode 100644 index 0000000..41c43d0 --- /dev/null +++ b/CMakeLua/Source/cmConfigure.cmake.h.in @@ -0,0 +1,32 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmConfigure.cmake.h.in,v $ + Language: C++ + Date: $Date: 2007/10/16 18:28:12 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#cmakedefine CMAKE_NO_STD_NAMESPACE +#cmakedefine CMAKE_NO_ANSI_STREAM_HEADERS +#cmakedefine CMAKE_NO_ANSI_STRING_STREAM +#cmakedefine CMAKE_NO_ANSI_FOR_SCOPE +#cmakedefine HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE +#cmakedefine HAVE_UNSETENV +#cmakedefine CMAKE_STRICT +#define CMAKE_ROOT_DIR "${CMake_SOURCE_DIR}" +#define CMAKE_BUILD_DIR "${CMake_BINARY_DIR}" +#define CMAKE_PREFIX "${CMAKE_INSTALL_PREFIX}" + +#define CMake_VERSION_MAJOR @CMake_VERSION_MAJOR@ +#define CMake_VERSION_MINOR @CMake_VERSION_MINOR@ +#define CMake_VERSION_PATCH @CMake_VERSION_PATCH@ +#cmakedefine CMake_VERSION_RC @CMake_VERSION_RC@ +#define CMAKE_DATA_DIR "@CMAKE_DATA_DIR@" diff --git a/CMakeLua/Source/cmConfigureFileCommand.cxx b/CMakeLua/Source/cmConfigureFileCommand.cxx new file mode 100644 index 0000000..b683722 --- /dev/null +++ b/CMakeLua/Source/cmConfigureFileCommand.cxx @@ -0,0 +1,114 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmConfigureFileCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.30 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmConfigureFileCommand.h" + +#include + +// cmConfigureFileCommand +bool cmConfigureFileCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments, expected 2"); + return false; + } + this->InputFile = args[0]; + this->OuputFile = args[1]; + if ( !this->Makefile->CanIWriteThisFile(this->OuputFile.c_str()) ) + { + std::string e = "attempted to configure a file: " + this->OuputFile + + " into a source directory."; + this->SetError(e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + this->CopyOnly = false; + this->EscapeQuotes = false; + + + // for CMake 2.0 and earlier CONFIGURE_FILE defaults to the FinalPass, + // after 2.0 it only does InitialPass + this->Immediate = false; + const char* versionValue + = this->Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + if (versionValue && atof(versionValue) > 2.0) + { + this->Immediate = true; + } + + + this->AtOnly = false; + for(unsigned int i=2;i < args.size();++i) + { + if(args[i] == "COPYONLY") + { + this->CopyOnly = true; + } + else if(args[i] == "ESCAPE_QUOTES") + { + this->EscapeQuotes = true; + } + else if(args[i] == "@ONLY") + { + this->AtOnly = true; + } + else if(args[i] == "IMMEDIATE") + { + this->Immediate = true; + } + } + + // If we were told to copy the file immediately, then do it on the + // first pass (now). + if(this->Immediate) + { + if ( !this->ConfigureFile() ) + { + this->SetError("Problem configuring file"); + return false; + } + } + + return true; +} + +void cmConfigureFileCommand::FinalPass() +{ + if(!this->Immediate) + { + this->ConfigureFile(); + } +} + +int cmConfigureFileCommand::ConfigureFile() +{ + std::string inFile = this->InputFile; + if (!cmSystemTools::FileIsFullPath(inFile.c_str())) + { + inFile = this->Makefile->GetStartDirectory(); + inFile += "/"; + inFile += this->InputFile; + } + return this->Makefile->ConfigureFile(inFile.c_str(), + this->OuputFile.c_str(), + this->CopyOnly, + this->AtOnly, + this->EscapeQuotes); +} + + diff --git a/CMakeLua/Source/cmConfigureFileCommand.h b/CMakeLua/Source/cmConfigureFileCommand.h new file mode 100644 index 0000000..22339ce --- /dev/null +++ b/CMakeLua/Source/cmConfigureFileCommand.h @@ -0,0 +1,95 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmConfigureFileCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.22 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmConfigureFileCommand_h +#define cmConfigureFileCommand_h + +#include "cmCommand.h" + +class cmConfigureFileCommand : public cmCommand +{ +public: + cmTypeMacro(cmConfigureFileCommand, cmCommand); + + virtual cmCommand* Clone() + { + return new cmConfigureFileCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "configure_file";} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Copy a file to another location and modify its contents."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " configure_file(InputFile OutputFile\n" + " [COPYONLY] [ESCAPE_QUOTES] [@ONLY])\n" + "The Input and Output files have to have full paths. " + "This command replaces any variables in the input file referenced as " + "${VAR} or @VAR@ with their values as determined by CMake. If a " + "variable is not defined, it will be replaced with nothing. " + "If COPYONLY is specified, then no variable expansion will take " + "place. If ESCAPE_QUOTES is specified then any substituted quotes " + "will be C-style escaped. " + "The file will be configured with the current values of CMake " + "variables. If @ONLY is specified, only variables " + "of the form @VAR@ will be replaces and ${VAR} will be ignored. " + "This is useful for configuring scripts that use ${VAR}. " + "Any occurrences of #cmakedefine VAR will be replaced with " + "either #define VAR or /* #undef VAR */ depending on " + "the setting of VAR in CMake"; + } + + virtual void FinalPass(); +private: + int ConfigureFile(); + + std::string InputFile; + std::string OuputFile; + bool CopyOnly; + bool EscapeQuotes; + bool Immediate; + bool AtOnly; +}; + + + +#endif diff --git a/CMakeLua/Source/cmCoreTryCompile.cxx b/CMakeLua/Source/cmCoreTryCompile.cxx new file mode 100644 index 0000000..6a5eb85 --- /dev/null +++ b/CMakeLua/Source/cmCoreTryCompile.cxx @@ -0,0 +1,426 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCoreTryCompile.cxx,v $ + Language: C++ + Date: $Date: 2007/12/06 14:56:02 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2007 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCoreTryCompile.h" +#include "cmake.h" +#include "cmCacheManager.h" +#include "cmGlobalGenerator.h" +#include + +int cmCoreTryCompile::TryCompileCode(std::vector const& argv) +{ + + this->BinaryDirectory = argv[1].c_str(); + this->OutputFile = ""; + // which signature were we called with ? + this->SrcFileSignature = false; + unsigned int i; + + const char* sourceDirectory = argv[2].c_str(); + const char* projectName = 0; + const char* targetName = 0; + int extraArgs = 0; + + // look for CMAKE_FLAGS and store them + std::vector cmakeFlags; + for (i = 3; i < argv.size(); ++i) + { + if (argv[i] == "CMAKE_FLAGS") + { + // CMAKE_FLAGS is the first argument because we need an argv[0] that + // is not used, so it matches regular command line parsing which has + // the program name as arg 0 + for (; i < argv.size() && argv[i] != "COMPILE_DEFINITIONS" && + argv[i] != "OUTPUT_VARIABLE"; + ++i) + { + extraArgs++; + cmakeFlags.push_back(argv[i]); + } + break; + } + } + + // look for OUTPUT_VARIABLE and store them + std::string outputVariable; + for (i = 3; i < argv.size(); ++i) + { + if (argv[i] == "OUTPUT_VARIABLE") + { + if ( argv.size() <= (i+1) ) + { + cmSystemTools::Error( + "OUTPUT_VARIABLE specified but there is no variable"); + return -1; + } + extraArgs += 2; + outputVariable = argv[i+1]; + break; + } + } + + // look for COMPILE_DEFINITIONS and store them + std::vector compileFlags; + for (i = 3; i < argv.size(); ++i) + { + if (argv[i] == "COMPILE_DEFINITIONS") + { + extraArgs++; + for (i = i + 1; i < argv.size() && argv[i] != "CMAKE_FLAGS" && + argv[i] != "OUTPUT_VARIABLE"; + ++i) + { + extraArgs++; + compileFlags.push_back(argv[i]); + } + break; + } + } + + // look for COPY_FILE + std::string copyFile; + for (i = 3; i < argv.size(); ++i) + { + if (argv[i] == "COPY_FILE") + { + if ( argv.size() <= (i+1) ) + { + cmSystemTools::Error( + "COPY_FILE specified but there is no variable"); + return -1; + } + extraArgs += 2; + copyFile = argv[i+1]; + break; + } + } + + // do we have a srcfile signature + if (argv.size() - extraArgs == 3) + { + this->SrcFileSignature = true; + } + + // compute the binary dir when TRY_COMPILE is called with a src file + // signature + if (this->SrcFileSignature) + { + this->BinaryDirectory += cmake::GetCMakeFilesDirectory(); + this->BinaryDirectory += "/CMakeTmp"; + } + else + { + // only valid for srcfile signatures + if (compileFlags.size()) + { + cmSystemTools::Error( + "COMPILE_FLAGS specified on a srcdir type TRY_COMPILE"); + return -1; + } + if (copyFile.size()) + { + cmSystemTools::Error("COPY_FILE specified on a srcdir type TRY_COMPILE"); + return -1; + } + } + // make sure the binary directory exists + cmSystemTools::MakeDirectory(this->BinaryDirectory.c_str()); + + // do not allow recursive try Compiles + if (this->BinaryDirectory == this->Makefile->GetHomeOutputDirectory()) + { + cmSystemTools::Error( + "Attempt at a recursive or nested TRY_COMPILE in directory ", + this->BinaryDirectory.c_str()); + return -1; + } + + std::string outFileName = this->BinaryDirectory + "/CMakeLists.txt"; + // which signature are we using? If we are using var srcfile bindir + if (this->SrcFileSignature) + { + // remove any CMakeCache.txt files so we will have a clean test + std::string ccFile = this->BinaryDirectory + "/CMakeCache.txt"; + cmSystemTools::RemoveFile(ccFile.c_str()); + + // we need to create a directory and CMakeList file etc... + // first create the directories + sourceDirectory = this->BinaryDirectory.c_str(); + + // now create a CMakeList.txt file in that directory + FILE *fout = fopen(outFileName.c_str(),"w"); + if (!fout) + { + cmSystemTools::Error("Failed to create CMakeList file for ", + outFileName.c_str()); + cmSystemTools::ReportLastSystemError(""); + return -1; + } + + std::string source = argv[2]; + std::string ext = cmSystemTools::GetFilenameExtension(source); + const char* lang =(this->Makefile->GetCMakeInstance()->GetGlobalGenerator() + ->GetLanguageFromExtension(ext.c_str())); + const char* def = this->Makefile->GetDefinition("CMAKE_MODULE_PATH"); + if(def) + { + fprintf(fout, "SET(CMAKE_MODULE_PATH %s)\n", def); + } + if(lang) + { + fprintf(fout, "PROJECT(CMAKE_TRY_COMPILE %s)\n", lang); + } + else + { + cmOStringStream err; + err << "Unknown extension \"" << ext << "\" for file \"" + << source << "\". TRY_COMPILE only works for enabled languages.\n" + << "Currently enabled languages are:"; + std::vector langs; + this->Makefile->GetCMakeInstance()->GetGlobalGenerator()-> + GetEnabledLanguages(langs); + for(std::vector::iterator l = langs.begin(); + l != langs.end(); ++l) + { + err << " " << *l; + } + err << "\nSee PROJECT command for help enabling other languages."; + cmSystemTools::Error(err.str().c_str()); + fclose(fout); + return -1; + } + std::string langFlags = "CMAKE_"; + langFlags += lang; + langFlags += "_FLAGS"; + fprintf(fout, "SET(CMAKE_VERBOSE_MAKEFILE 1)\n"); + fprintf(fout, "SET(CMAKE_%s_FLAGS \"", lang); + const char* flags = this->Makefile->GetDefinition(langFlags.c_str()); + if(flags) + { + fprintf(fout, " %s ", flags); + } + fprintf(fout, " ${COMPILE_DEFINITIONS}\")\n"); + fprintf(fout, "INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES})\n"); + fprintf(fout, "SET(CMAKE_SUPPRESS_REGENERATION 1)\n"); + fprintf(fout, "LINK_DIRECTORIES(${LINK_DIRECTORIES})\n"); + // handle any compile flags we need to pass on + if (compileFlags.size()) + { + fprintf(fout, "ADD_DEFINITIONS( "); + for (i = 0; i < compileFlags.size(); ++i) + { + fprintf(fout,"%s ",compileFlags[i].c_str()); + } + fprintf(fout, ")\n"); + } + + /* for the TRY_COMPILEs we want to be able to specify the architecture. + So the user can set CMAKE_OSX_ARCHITECTURE to i386;ppc and then set + CMAKE_TRY_COMPILE_OSX_ARCHITECTURE first to i386 and then to ppc to + have the tests run for each specific architecture. Since + cmLocalGenerator doesn't allow building for "the other" + architecture only via CMAKE_OSX_ARCHITECTURES,use to CMAKE_DO_TRY_COMPILE + to enforce it for this case here. + */ + cmakeFlags.push_back("-DCMAKE_DO_TRY_COMPILE=TRUE"); + if(this->Makefile->GetDefinition("CMAKE_TRY_COMPILE_OSX_ARCHITECTURES")!=0) + { + std::string flag="-DCMAKE_OSX_ARCHITECTURES="; + flag += this->Makefile->GetSafeDefinition( + "CMAKE_TRY_COMPILE_OSX_ARCHITECTURES"); + cmakeFlags.push_back(flag); + } + else if (this->Makefile->GetDefinition("CMAKE_OSX_ARCHITECTURES")!=0) + { + std::string flag="-DCMAKE_OSX_ARCHITECTURES="; + flag += this->Makefile->GetSafeDefinition("CMAKE_OSX_ARCHITECTURES"); + cmakeFlags.push_back(flag); + } + + fprintf(fout, "ADD_EXECUTABLE(cmTryCompileExec \"%s\")\n",source.c_str()); + fprintf(fout, + "TARGET_LINK_LIBRARIES(cmTryCompileExec ${LINK_LIBRARIES})\n"); + fclose(fout); + projectName = "CMAKE_TRY_COMPILE"; + targetName = "cmTryCompileExec"; + // if the source is not in CMakeTmp + if(source.find("CMakeTmp") == source.npos) + { + this->Makefile->AddCMakeDependFile(source.c_str()); + } + + } + // else the srcdir bindir project target signature + else + { + projectName = argv[3].c_str(); + + if (argv.size() - extraArgs == 5) + { + targetName = argv[4].c_str(); + } + } + + bool erroroc = cmSystemTools::GetErrorOccuredFlag(); + cmSystemTools::ResetErrorOccuredFlag(); + std::string output; + // actually do the try compile now that everything is setup + int res = this->Makefile->TryCompile(sourceDirectory, + this->BinaryDirectory.c_str(), + projectName, + targetName, + &cmakeFlags, + &output); + if ( erroroc ) + { + cmSystemTools::SetErrorOccured(); + } + + // set the result var to the return value to indicate success or failure + this->Makefile->AddCacheDefinition(argv[0].c_str(), + (res == 0 ? "TRUE" : "FALSE"), + "Result of TRY_COMPILE", + cmCacheManager::INTERNAL); + + if ( outputVariable.size() > 0 ) + { + this->Makefile->AddDefinition(outputVariable.c_str(), output.c_str()); + } + + if (this->SrcFileSignature) + { + this->FindOutputFile(targetName); + if ((res==0) && (copyFile.size())) + { + if(!cmSystemTools::CopyFileAlways(this->OutputFile.c_str(), + copyFile.c_str())) + { + cmSystemTools::Error("Could not COPY_FILE"); + return -1; + } + } + } + return res; +} + +void cmCoreTryCompile::CleanupFiles(const char* binDir) +{ + if ( !binDir ) + { + return; + } + + std::string bdir = binDir; + if(bdir.find("CMakeTmp") == std::string::npos) + { + cmSystemTools::Error( + "TRY_COMPILE attempt to remove -rf directory that does not contain " + "CMakeTmp:", binDir); + return; + } + + cmsys::Directory dir; + dir.Load(binDir); + size_t fileNum; + std::set deletedFiles; + for (fileNum = 0; fileNum < dir.GetNumberOfFiles(); ++fileNum) + { + if (strcmp(dir.GetFile(static_cast(fileNum)),".") && + strcmp(dir.GetFile(static_cast(fileNum)),"..")) + { + + if(deletedFiles.find( dir.GetFile(static_cast(fileNum))) + == deletedFiles.end()) + { + deletedFiles.insert(dir.GetFile(static_cast(fileNum))); + std::string fullPath = binDir; + fullPath += "/"; + fullPath += dir.GetFile(static_cast(fileNum)); + if(cmSystemTools::FileIsDirectory(fullPath.c_str())) + { + this->CleanupFiles(fullPath.c_str()); + } + else + { + if(!cmSystemTools::RemoveFile(fullPath.c_str())) + { + std::string m = "Remove failed on file: "; + m += fullPath; + cmSystemTools::ReportLastSystemError(m.c_str()); + } + } + } + } + } +} + +void cmCoreTryCompile::FindOutputFile(const char* targetName) +{ + this->FindErrorMessage = ""; + this->OutputFile = ""; + std::string tmpOutputFile = "/"; + tmpOutputFile += targetName; + tmpOutputFile +=this->Makefile->GetSafeDefinition("CMAKE_EXECUTABLE_SUFFIX"); + + // a list of directories where to search for the compilation result + // at first directly in the binary dir + std::vector searchDirs; + searchDirs.push_back(""); + + const char* config = this->Makefile->GetDefinition( + "CMAKE_TRY_COMPILE_CONFIGURATION"); + // if a config was specified try that first + if (config && config[0]) + { + std::string tmp = "/"; + tmp += config; + searchDirs.push_back(tmp); + } + searchDirs.push_back("/Debug"); + searchDirs.push_back("/Development"); + + for(std::vector::const_iterator it = searchDirs.begin(); + it != searchDirs.end(); + ++it) + { + std::string command = this->BinaryDirectory; + command += *it; + command += tmpOutputFile; + if(cmSystemTools::FileExists(command.c_str())) + { + tmpOutputFile = cmSystemTools::CollapseFullPath(command.c_str()); + this->OutputFile = tmpOutputFile; + return; + } + } + + cmOStringStream emsg; + emsg << "Unable to find executable for " << this->GetName() << ": tried \""; + for (unsigned int i = 0; i < searchDirs.size(); ++i) + { + emsg << this->BinaryDirectory << searchDirs[i] << tmpOutputFile; + if (i < searchDirs.size() - 1) + { + emsg << "\" and \""; + } + else + { + emsg << "\"."; + } + } + this->FindErrorMessage = emsg.str(); + return; +} diff --git a/CMakeLua/Source/cmCoreTryCompile.h b/CMakeLua/Source/cmCoreTryCompile.h new file mode 100644 index 0000000..de489da --- /dev/null +++ b/CMakeLua/Source/cmCoreTryCompile.h @@ -0,0 +1,65 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCoreTryCompile.h,v $ + Language: C++ + Date: $Date: 2007/05/24 15:27:51 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2007 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCoreTryCompile_h +#define cmCoreTryCompile_h + +#include "cmCommand.h" + +/** \class cmCoreTryCompile + * \brief Base class for cmTryCompileCommand and cmTryRunCommand + * + * cmCoreTryCompile implements the functionality to build a program. + * It is the base class for cmTryCompileCommand and cmTryRunCommand. + */ +class cmCoreTryCompile : public cmCommand +{ +public: + + protected: + /** + * This is the core code for try compile. It is here so that other + * commands, such as TryRun can access the same logic without + * duplication. + */ + int TryCompileCode(std::vector const& argv); + + /** + * This deletes all the files created by TryCompileCode. + * This way we do not have to rely on the timing and + * dependencies of makefiles. + */ + void CleanupFiles(const char* binDir); + + /** + * This tries to find the (executable) file created by + TryCompileCode. The result is stored in OutputFile. If nothing is found, + the error message is stored in FindErrorMessage. + */ + void FindOutputFile(const char* targetName); + + + cmTypeMacro(cmCoreTryCompile, cmCommand); + + std::string BinaryDirectory; + std::string OutputFile; + std::string FindErrorMessage; + bool SrcFileSignature; + +}; + + +#endif diff --git a/CMakeLua/Source/cmCreateTestSourceList.cxx b/CMakeLua/Source/cmCreateTestSourceList.cxx new file mode 100644 index 0000000..56ab584 --- /dev/null +++ b/CMakeLua/Source/cmCreateTestSourceList.cxx @@ -0,0 +1,194 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCreateTestSourceList.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.44 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCreateTestSourceList.h" +#include "cmSourceFile.h" + +// cmCreateTestSourceList +bool cmCreateTestSourceList +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if (args.size() < 3) + { + this->SetError("called with wrong number of arguments."); + return false; + } + + + std::vector::const_iterator i = args.begin(); + std::string extraInclude; + std::string function; + std::vector tests; + // extract extra include and function ot + for(; i != args.end(); i++) + { + if(*i == "EXTRA_INCLUDE") + { + ++i; + if(i == args.end()) + { + this->SetError("incorrect arguments to EXTRA_INCLUDE"); + return false; + } + extraInclude = "#include \""; + extraInclude += *i; + extraInclude += "\"\n"; + } + else if(*i == "FUNCTION") + { + ++i; + if(i == args.end()) + { + this->SetError("incorrect arguments to FUNCTION"); + return false; + } + function = *i; + function += "(&ac, &av);\n"; + } + else + { + tests.push_back(*i); + } + } + i = tests.begin(); + + // Name of the source list + + const char* sourceList = i->c_str(); + ++i; + + // Name of the test driver + // make sure they specified an extension + if (cmSystemTools::GetFilenameExtension(*i).size() < 2) + { + this->SetError( + "You must specify a file extenion for the test driver file."); + return false; + } + std::string driver = this->Makefile->GetCurrentOutputDirectory(); + driver += "/"; + driver += *i; + ++i; + + std::string configFile = + this->Makefile->GetRequiredDefinition("CMAKE_ROOT"); + + configFile += "/Templates/TestDriver.cxx.in"; + // Create the test driver file + + std::vector::const_iterator testsBegin = i; + std::vector tests_func_name; + + // The rest of the arguments consist of a list of test source files. + // Sadly, they can be in directories. Let's find a unique function + // name for the corresponding test, and push it to the tests_func_name + // list. + // For the moment: + // - replace spaces ' ', ':' and '/' with underscores '_' + std::string forwardDeclareCode; + for(i = testsBegin; i != tests.end(); ++i) + { + if(*i == "EXTRA_INCLUDE") + { + break; + } + std::string func_name; + if (cmSystemTools::GetFilenamePath(*i).size() > 0) + { + func_name = cmSystemTools::GetFilenamePath(*i) + "/" + + cmSystemTools::GetFilenameWithoutLastExtension(*i); + } + else + { + func_name = cmSystemTools::GetFilenameWithoutLastExtension(*i); + } + cmSystemTools::ConvertToUnixSlashes(func_name); + cmSystemTools::ReplaceString(func_name, " ", "_"); + cmSystemTools::ReplaceString(func_name, "/", "_"); + cmSystemTools::ReplaceString(func_name, ":", "_"); + tests_func_name.push_back(func_name); + forwardDeclareCode += "int "; + forwardDeclareCode += func_name; + forwardDeclareCode += "(int, char*[]);\n"; + } + + std::string functionMapCode; + int numTests = 0; + std::vector::iterator j; + for(i = testsBegin, j = tests_func_name.begin(); i != tests.end(); ++i, ++j) + { + std::string func_name; + if (cmSystemTools::GetFilenamePath(*i).size() > 0) + { + func_name = cmSystemTools::GetFilenamePath(*i) + "/" + + cmSystemTools::GetFilenameWithoutLastExtension(*i); + } + else + { + func_name = cmSystemTools::GetFilenameWithoutLastExtension(*i); + } + functionMapCode += " {\n" + " \""; + functionMapCode += func_name; + functionMapCode += "\",\n" + " "; + functionMapCode += *j; + functionMapCode += "\n" + " },\n"; + numTests++; + } + if(extraInclude.size()) + { + this->Makefile->AddDefinition("CMAKE_TESTDRIVER_EXTRA_INCLUDES", + extraInclude.c_str()); + } + if(function.size()) + { + this->Makefile->AddDefinition("CMAKE_TESTDRIVER_ARGVC_FUNCTION", + function.c_str()); + } + this->Makefile->AddDefinition("CMAKE_FORWARD_DECLARE_TESTS", + forwardDeclareCode.c_str()); + this->Makefile->AddDefinition("CMAKE_FUNCTION_TABLE_ENTIRES", + functionMapCode.c_str()); + bool res = true; + if ( !this->Makefile->ConfigureFile(configFile.c_str(), driver.c_str(), + false, true, false) ) + { + res = false; + } + + // Construct the source list. + std::string sourceListValue; + { + cmSourceFile* sf = this->Makefile->GetOrCreateSource(driver.c_str()); + sf->SetProperty("ABSTRACT","0"); + sourceListValue = args[1]; + } + for(i = testsBegin; i != tests.end(); ++i) + { + cmSourceFile* sf = this->Makefile->GetOrCreateSource(i->c_str()); + sf->SetProperty("ABSTRACT","0"); + sourceListValue += ";"; + sourceListValue += *i; + } + + this->Makefile->AddDefinition(sourceList, sourceListValue.c_str()); + return res; +} + + + diff --git a/CMakeLua/Source/cmCreateTestSourceList.h b/CMakeLua/Source/cmCreateTestSourceList.h new file mode 100644 index 0000000..239dfda --- /dev/null +++ b/CMakeLua/Source/cmCreateTestSourceList.h @@ -0,0 +1,95 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCreateTestSourceList.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCreateTestSourceList_h +#define cmCreateTestSourceList_h + +#include "cmCommand.h" + +/** \class cmCreateTestSourceList + * \brief + * + */ + +class cmCreateTestSourceList : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmCreateTestSourceList; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "create_test_sourcelist";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Create a test driver and source list for building test programs."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " create_test_sourcelist(sourceListName driverName\n" + " test1 test2 test3\n" + " EXTRA_INCLUDE include.h\n" + " FUNCTION function)\n" + "A test driver is a program that links together many small tests into " + "a single executable. This is useful when building static executables " + "with large libraries to shrink the total required size. " + "The list of source files " + "needed to build the test driver will be in sourceListName. " + "DriverName is the name of the test driver program. The rest of " + "the arguments consist of a list of test source files, can be " + "semicolon separated. Each test source file should have a function in " + "it that is the same name as the file with no extension (foo.cxx " + "should have int foo(int, char*[]);) DriverName will be able to " + "call each of the " + "tests by name on the command line. If EXTRA_INCLUDE is specified, " + "then the next argument is included into the generated file. If " + "FUNCTION is specified, then the next argument is taken as a function " + "name that is passed a pointer to ac and av. This can be used to add " + "extra command line processing to each test. The cmake variable " + "CMAKE_TESTDRIVER_BEFORE_TESTMAIN can be set to have code that will be " + "placed directly before calling the test main function. " + "CMAKE_TESTDRIVER_AFTER_TESTMAIN can be set to have code that will be " + "placed directly after the call to the test main function."; + } + + cmTypeMacro(cmCreateTestSourceList, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmCustomCommand.cxx b/CMakeLua/Source/cmCustomCommand.cxx new file mode 100644 index 0000000..458d0f8 --- /dev/null +++ b/CMakeLua/Source/cmCustomCommand.cxx @@ -0,0 +1,156 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCustomCommand.cxx,v $ + Language: C++ + Date: $Date: 2007/09/17 14:50:46 $ + Version: $Revision: 1.24 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCustomCommand.h" + +//---------------------------------------------------------------------------- +cmCustomCommand::cmCustomCommand() +{ + this->HaveComment = false; + this->EscapeOldStyle = true; + this->EscapeAllowMakeVars = false; +} + +//---------------------------------------------------------------------------- +cmCustomCommand::cmCustomCommand(const cmCustomCommand& r): + Outputs(r.Outputs), + Depends(r.Depends), + CommandLines(r.CommandLines), + HaveComment(r.HaveComment), + Comment(r.Comment), + WorkingDirectory(r.WorkingDirectory), + EscapeAllowMakeVars(r.EscapeAllowMakeVars), + EscapeOldStyle(r.EscapeOldStyle) +{ +} + +//---------------------------------------------------------------------------- +cmCustomCommand::cmCustomCommand(const std::vector& outputs, + const std::vector& depends, + const cmCustomCommandLines& commandLines, + const char* comment, + const char* workingDirectory): + Outputs(outputs), + Depends(depends), + CommandLines(commandLines), + HaveComment(comment?true:false), + Comment(comment?comment:""), + WorkingDirectory(workingDirectory?workingDirectory:""), + EscapeAllowMakeVars(false), + EscapeOldStyle(true) +{ + this->EscapeOldStyle = true; + this->EscapeAllowMakeVars = false; +} + +//---------------------------------------------------------------------------- +const std::vector& cmCustomCommand::GetOutputs() const +{ + return this->Outputs; +} + +//---------------------------------------------------------------------------- +const char* cmCustomCommand::GetWorkingDirectory() const +{ + if(this->WorkingDirectory.size() == 0) + { + return 0; + } + return this->WorkingDirectory.c_str(); +} + +//---------------------------------------------------------------------------- +const std::vector& cmCustomCommand::GetDepends() const +{ + return this->Depends; +} + +//---------------------------------------------------------------------------- +const cmCustomCommandLines& cmCustomCommand::GetCommandLines() const +{ + return this->CommandLines; +} + +//---------------------------------------------------------------------------- +const char* cmCustomCommand::GetComment() const +{ + const char* no_comment = 0; + return this->HaveComment? this->Comment.c_str() : no_comment; +} + +//---------------------------------------------------------------------------- +void cmCustomCommand::AppendCommands(const cmCustomCommandLines& commandLines) +{ + for(cmCustomCommandLines::const_iterator i=commandLines.begin(); + i != commandLines.end(); ++i) + { + this->CommandLines.push_back(*i); + } +} + +//---------------------------------------------------------------------------- +void cmCustomCommand::AppendDepends(const std::vector& depends) +{ + for(std::vector::const_iterator i=depends.begin(); + i != depends.end(); ++i) + { + this->Depends.push_back(*i); + } +} + +//---------------------------------------------------------------------------- +bool cmCustomCommand::GetEscapeOldStyle() const +{ + return this->EscapeOldStyle; +} + +//---------------------------------------------------------------------------- +void cmCustomCommand::SetEscapeOldStyle(bool b) +{ + this->EscapeOldStyle = b; +} + +//---------------------------------------------------------------------------- +bool cmCustomCommand::GetEscapeAllowMakeVars() const +{ + return this->EscapeAllowMakeVars; +} + +//---------------------------------------------------------------------------- +void cmCustomCommand::SetEscapeAllowMakeVars(bool b) +{ + this->EscapeAllowMakeVars = b; +} + +//---------------------------------------------------------------------------- +cmCustomCommand::ImplicitDependsList const& +cmCustomCommand::GetImplicitDepends() const +{ + return this->ImplicitDepends; +} + +//---------------------------------------------------------------------------- +void cmCustomCommand::SetImplicitDepends(ImplicitDependsList const& l) +{ + this->ImplicitDepends = l; +} + +//---------------------------------------------------------------------------- +void cmCustomCommand::AppendImplicitDepends(ImplicitDependsList const& l) +{ + this->ImplicitDepends.insert(this->ImplicitDepends.end(), + l.begin(), l.end()); +} diff --git a/CMakeLua/Source/cmCustomCommand.h b/CMakeLua/Source/cmCustomCommand.h new file mode 100644 index 0000000..25dea6b --- /dev/null +++ b/CMakeLua/Source/cmCustomCommand.h @@ -0,0 +1,89 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmCustomCommand.h,v $ + Language: C++ + Date: $Date: 2007/09/17 14:50:46 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmCustomCommand_h +#define cmCustomCommand_h + +#include "cmStandardIncludes.h" + +/** \class cmCustomCommand + * \brief A class to encapsulate a custom command + * + * cmCustomCommand encapsulates the properties of a custom command + */ +class cmCustomCommand +{ +public: + /** Default and copy constructors for STL containers. */ + cmCustomCommand(); + cmCustomCommand(const cmCustomCommand& r); + + /** Main constructor specifies all information for the command. */ + cmCustomCommand(const std::vector& outputs, + const std::vector& depends, + const cmCustomCommandLines& commandLines, + const char* comment, + const char* workingDirectory); + + /** Get the output file produced by the command. */ + const std::vector& GetOutputs() const; + + /** Get the working directory. */ + const char* GetWorkingDirectory() const; + + /** Get the vector that holds the list of dependencies. */ + const std::vector& GetDepends() const; + + /** Get the list of command lines. */ + const cmCustomCommandLines& GetCommandLines() const; + + /** Get the comment string for the command. */ + const char* GetComment() const; + + /** Append to the list of command lines. */ + void AppendCommands(const cmCustomCommandLines& commandLines); + + /** Append to the list of dependencies. */ + void AppendDepends(const std::vector& depends); + + /** Set/Get whether old-style escaping should be used. */ + bool GetEscapeOldStyle() const; + void SetEscapeOldStyle(bool b); + + /** Set/Get whether the build tool can replace variables in + arguments to the command. */ + bool GetEscapeAllowMakeVars() const; + void SetEscapeAllowMakeVars(bool b); + + typedef std::pair ImplicitDependsPair; + class ImplicitDependsList: public std::vector {}; + void SetImplicitDepends(ImplicitDependsList const&); + void AppendImplicitDepends(ImplicitDependsList const&); + ImplicitDependsList const& GetImplicitDepends() const; + +private: + std::vector Outputs; + std::vector Depends; + cmCustomCommandLines CommandLines; + bool HaveComment; + std::string Comment; + std::string WorkingDirectory; + bool EscapeAllowMakeVars; + bool EscapeOldStyle; + ImplicitDependsList ImplicitDepends; +}; + +#endif diff --git a/CMakeLua/Source/cmData.h b/CMakeLua/Source/cmData.h new file mode 100644 index 0000000..26743e2 --- /dev/null +++ b/CMakeLua/Source/cmData.h @@ -0,0 +1,43 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmData.h,v $ + Language: C++ + Date: $Date: 2006/03/16 14:33:23 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmData_h +#define cmData_h + +#include "cmStandardIncludes.h" + +/** \class cmData + * \brief Hold extra data on a cmMakefile instance for a command. + * + * When CMake commands need to store extra information in a cmMakefile + * instance, but the information is not needed by the makefile generators, + * it can be held in a subclass of cmData. The cmMakefile class has a map + * from std::string to cmData*. On its destruction, it destroys all the + * extra data through the virtual destructor of cmData. + */ +class cmData +{ +public: + cmData(const char* name): Name(name) {} + virtual ~cmData() {} + + const std::string& GetName() const + { return this->Name; } +protected: + std::string Name; +}; + +#endif diff --git a/CMakeLua/Source/cmDefinePropertyCommand.cxx b/CMakeLua/Source/cmDefinePropertyCommand.cxx new file mode 100755 index 0000000..2d15c94 --- /dev/null +++ b/CMakeLua/Source/cmDefinePropertyCommand.cxx @@ -0,0 +1,72 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDefinePropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDefinePropertyCommand.h" +#include "cmake.h" + +// cmDefinePropertiesCommand +bool cmDefinePropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 5 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // determine the scope + cmProperty::ScopeType scope; + if (args[1] == "GLOBAL") + { + scope = cmProperty::GLOBAL; + } + else if (args[1] == "DIRECTORY") + { + scope = cmProperty::DIRECTORY; + } + else if (args[1] == "TARGET") + { + scope = cmProperty::TARGET; + } + else if (args[1] == "SOURCE_FILE") + { + scope = cmProperty::SOURCE_FILE; + } + else if (args[1] == "TEST") + { + scope = cmProperty::TEST; + } + else if (args[1] == "VARIABLE") + { + scope = cmProperty::VARIABLE; + } + else if (args[1] == "CACHED_VARIABLE") + { + scope = cmProperty::CACHED_VARIABLE; + } + else + { + this->SetError("called with illegal arguments."); + return false; + } + + this->Makefile->GetCMakeInstance()->DefineProperty + (args[0].c_str(), scope,args[2].c_str(), args[3].c_str(), + cmSystemTools::IsOn(args[4].c_str())); + + return true; +} + diff --git a/CMakeLua/Source/cmDefinePropertyCommand.h b/CMakeLua/Source/cmDefinePropertyCommand.h new file mode 100755 index 0000000..6cf0216 --- /dev/null +++ b/CMakeLua/Source/cmDefinePropertyCommand.h @@ -0,0 +1,75 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDefinePropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDefinesPropertyCommand_h +#define cmDefinesPropertyCommand_h + +#include "cmCommand.h" + +class cmDefinePropertyCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmDefinePropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "define_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Define properties used by CMake."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " define_property(property_name scope_value\n" + " short_description\n" + " full_description inherit)\n" + "Define a property for a scope. scope_value is either GLOBAL, " + "DIRECTORY, TARGET, TEST, SOURCE_FILE, VARIABLE or CACHED_VARIABLE. " + "The short and full descriptions are used to document the property. " + "If inherit is TRUE, it will inherit its value from the next more " + "global property if it hasn't been set at the specified scope. " + "This means that e.g. a TARGET property inherits it's value from the " + "DIRECTORY property with the same name if it hasn't been set for the " + "target, and then from GLOBAL if it hasn't been set for the directory." + ; + } + + cmTypeMacro(cmDefinePropertyCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmDepends.cxx b/CMakeLua/Source/cmDepends.cxx new file mode 100644 index 0000000..4fb0e0d --- /dev/null +++ b/CMakeLua/Source/cmDepends.cxx @@ -0,0 +1,234 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDepends.cxx,v $ + Language: C++ + Date: $Date: 2007/12/28 16:49:59 $ + Version: $Revision: 1.17 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDepends.h" + +#include "cmLocalGenerator.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmSystemTools.h" +#include "cmFileTimeComparison.h" +#include + +//---------------------------------------------------------------------------- +cmDepends::cmDepends(): + CompileDirectory(), + LocalGenerator(0), + Verbose(false), + FileComparison(0), + MaxPath(cmSystemTools::GetMaximumFilePathLength()), + Dependee(new char[MaxPath]), + Depender(new char[MaxPath]) +{ +} + +//---------------------------------------------------------------------------- +cmDepends::~cmDepends() +{ + delete [] this->Dependee; + delete [] this->Depender; +} + +//---------------------------------------------------------------------------- +bool cmDepends::Write(std::ostream &makeDepends, + std::ostream &internalDepends) +{ + // Lookup the set of sources to scan. + std::string srcLang = "CMAKE_DEPENDS_CHECK_"; + srcLang += this->Language; + cmMakefile* mf = this->LocalGenerator->GetMakefile(); + const char* srcStr = mf->GetSafeDefinition(srcLang.c_str()); + std::vector pairs; + cmSystemTools::ExpandListArgument(srcStr, pairs); + + for(std::vector::iterator si = pairs.begin(); + si != pairs.end();) + { + // Get the source and object file. + std::string const& src = *si++; + if(si == pairs.end()) { break; } + std::string obj = *si++; + + // Make sure the object file is relative to the top of the build tree. + obj = this->LocalGenerator->Convert(obj.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE); + + // Write the dependencies for this pair. + if(!this->WriteDependencies(src.c_str(), obj.c_str(), + makeDepends, internalDepends)) + { + return false; + } + } + + return this->Finalize(makeDepends, internalDepends); +} + +//---------------------------------------------------------------------------- +bool cmDepends::Finalize(std::ostream&, + std::ostream&) +{ + return true; +} + +//---------------------------------------------------------------------------- +bool cmDepends::Check(const char *makeFile, const char *internalFile) +{ + // Dependency checks must be done in proper working directory. + std::string oldcwd = "."; + if(this->CompileDirectory != ".") + { + // Get the CWD but do not call CollapseFullPath because + // we only need it to cd back, and the form does not matter + oldcwd = cmSystemTools::GetCurrentWorkingDirectory(false); + cmSystemTools::ChangeDirectory(this->CompileDirectory.c_str()); + } + + // Check whether dependencies must be regenerated. + bool okay = true; + std::ifstream fin(internalFile); + if(!(fin && this->CheckDependencies(fin))) + { + // Clear all dependencies so they will be regenerated. + this->Clear(makeFile); + cmSystemTools::RemoveFile(internalFile); + okay = false; + } + + // Restore working directory. + if(oldcwd != ".") + { + cmSystemTools::ChangeDirectory(oldcwd.c_str()); + } + + return okay; +} + +//---------------------------------------------------------------------------- +void cmDepends::Clear(const char *file) +{ + // Print verbose output. + if(this->Verbose) + { + cmOStringStream msg; + msg << "Clearing dependencies in \"" << file << "\"." << std::endl; + cmSystemTools::Stdout(msg.str().c_str()); + } + + // Write an empty dependency file. + cmGeneratedFileStream depFileStream(file); + depFileStream + << "# Empty dependencies file\n" + << "# This may be replaced when dependencies are built." << std::endl; +} + +//---------------------------------------------------------------------------- +bool cmDepends::WriteDependencies(const char*, const char*, + std::ostream&, std::ostream&) +{ + // This should be implemented by the subclass. + return false; +} + +//---------------------------------------------------------------------------- +bool cmDepends::CheckDependencies(std::istream& internalDepends) +{ + // Parse dependencies from the stream. If any dependee is missing + // or newer than the depender then dependencies should be + // regenerated. + bool okay = true; + while(internalDepends.getline(this->Dependee, this->MaxPath)) + { + if ( this->Dependee[0] == 0 || this->Dependee[0] == '#' || + this->Dependee[0] == '\r' ) + { + continue; + } + size_t len = internalDepends.gcount()-1; + if ( this->Dependee[len-1] == '\r' ) + { + len --; + this->Dependee[len] = 0; + } + if ( this->Dependee[0] != ' ' ) + { + memcpy(this->Depender, this->Dependee, len+1); + continue; + } + /* + // Parse the dependency line. + if(!this->ParseDependency(line.c_str())) + { + continue; + } + */ + + // Dependencies must be regenerated if the dependee does not exist + // or if the depender exists and is older than the dependee. + bool regenerate = false; + const char* dependee = this->Dependee+1; + const char* depender = this->Depender; + if(!cmSystemTools::FileExists(dependee)) + { + // The dependee does not exist. + regenerate = true; + + // Print verbose output. + if(this->Verbose) + { + cmOStringStream msg; + msg << "Dependee \"" << dependee + << "\" does not exist for depender \"" + << depender << "\"." << std::endl; + cmSystemTools::Stdout(msg.str().c_str()); + } + } + else if(cmSystemTools::FileExists(depender)) + { + // The dependee and depender both exist. Compare file times. + int result = 0; + if((!this->FileComparison->FileTimeCompare(depender, dependee, + &result) || result < 0)) + { + // The depender is older than the dependee. + regenerate = true; + + // Print verbose output. + if(this->Verbose) + { + cmOStringStream msg; + msg << "Dependee \"" << dependee + << "\" is newer than depender \"" + << depender << "\"." << std::endl; + cmSystemTools::Stdout(msg.str().c_str()); + } + } + } + if(regenerate) + { + // Dependencies must be regenerated. + okay = false; + + // Remove the depender to be sure it is rebuilt. + cmSystemTools::RemoveFile(depender); + } + } + + return okay; +} + + diff --git a/CMakeLua/Source/cmDepends.h b/CMakeLua/Source/cmDepends.h new file mode 100644 index 0000000..a1ee842 --- /dev/null +++ b/CMakeLua/Source/cmDepends.h @@ -0,0 +1,116 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDepends.h,v $ + Language: C++ + Date: $Date: 2007/12/28 16:49:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDepends_h +#define cmDepends_h + +#include "cmStandardIncludes.h" + +class cmFileTimeComparison; +class cmLocalGenerator; + +/** \class cmDepends + * \brief Dependency scanner superclass. + * + * This class is responsible for maintaining a .depends.make file in + * the build tree corresponding to an object file. Subclasses help it + * maintain dependencies for particular languages. + */ +class cmDepends +{ +public: + /** Instances need to know the build directory name and the relative + path from the build directory to the target file. */ + cmDepends(); + + /** at what level will the compile be done from */ + void SetCompileDirectory(const char *dir) {this->CompileDirectory = dir;}; + + /** Set the local generator for the directory in which we are + scanning dependencies. This is not a full local generator; it + has been setup to do relative path conversions for the current + directory. */ + void SetLocalGenerator(cmLocalGenerator* lg) { this->LocalGenerator = lg; } + + /** Set the specific language to be scanned. */ + void SetLanguage(const char* lang) { this->Language = lang; } + + /** Set the target build directory. */ + void SetTargetDirectory(const char* dir) { this->TargetDirectory = dir; } + + /** should this be verbose in its output */ + void SetVerbose(bool verb) { this->Verbose = verb; } + + /** Virtual destructor to cleanup subclasses properly. */ + virtual ~cmDepends(); + + /** Write dependencies for the target file. */ + bool Write(std::ostream &makeDepends, std::ostream &internalDepends); + + /** Check dependencies for the target file. Returns true if + dependencies are okay and false if they must be generated. If + they must be generated Clear has already been called to wipe out + the old dependencies. */ + bool Check(const char *makeFile, const char* internalFile); + + /** Clear dependencies for the target file so they will be regenerated. */ + void Clear(const char *file); + + /** Set the file comparison object */ + void SetFileComparison(cmFileTimeComparison* fc) { + this->FileComparison = fc; } + +protected: + + // Write dependencies for the target file to the given stream. + // Return true for success and false for failure. + virtual bool WriteDependencies(const char *src, const char* obj, + std::ostream& makeDepends, std::ostream& internalDepends); + + // Check dependencies for the target file in the given stream. + // Return false if dependencies must be regenerated and true + // otherwise. + virtual bool CheckDependencies(std::istream& internalDepends); + + // Finalize the dependency information for the target. + virtual bool Finalize(std::ostream& makeDepends, + std::ostream& internalDepends); + + // The directory in which the build rule for the target file is executed. + std::string CompileDirectory; + + // The local generator. + cmLocalGenerator* LocalGenerator; + + // Flag for verbose output. + bool Verbose; + cmFileTimeComparison* FileComparison; + + std::string Language; + + // The full path to the target's build directory. + std::string TargetDirectory; + + size_t MaxPath; + char* Dependee; + char* Depender; + +private: + cmDepends(cmDepends const&); // Purposely not implemented. + void operator=(cmDepends const&); // Purposely not implemented. +}; + +#endif diff --git a/CMakeLua/Source/cmDependsC.cxx b/CMakeLua/Source/cmDependsC.cxx new file mode 100644 index 0000000..b4f73f0 --- /dev/null +++ b/CMakeLua/Source/cmDependsC.cxx @@ -0,0 +1,429 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsC.cxx,v $ + Language: C++ + Date: $Date: 2007/12/15 01:31:27 $ + Version: $Revision: 1.33 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDependsC.h" + +#include "cmFileTimeComparison.h" +#include "cmLocalGenerator.h" +#include "cmSystemTools.h" + +#include // isspace + + +#define INCLUDE_REGEX_LINE \ + "^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])" + +#define INCLUDE_REGEX_LINE_MARKER "#IncludeRegexLine: " +#define INCLUDE_REGEX_SCAN_MARKER "#IncludeRegexScan: " +#define INCLUDE_REGEX_COMPLAIN_MARKER "#IncludeRegexComplain: " + +//---------------------------------------------------------------------------- +cmDependsC::cmDependsC(): + IncludePath(0) +{ +} +//---------------------------------------------------------------------------- +// yummy look at all those constructor arguments +cmDependsC::cmDependsC(std::vector const& includes, + const char* scanRegex, const char* complainRegex, + const cmStdString& cacheFileName): + IncludePath(&includes), + IncludeRegexLine(INCLUDE_REGEX_LINE), + IncludeRegexScan(scanRegex), + IncludeRegexComplain(complainRegex), + IncludeRegexLineString(INCLUDE_REGEX_LINE_MARKER INCLUDE_REGEX_LINE), + IncludeRegexScanString(std::string(INCLUDE_REGEX_SCAN_MARKER)+scanRegex), + IncludeRegexComplainString( + std::string(INCLUDE_REGEX_COMPLAIN_MARKER)+complainRegex), + CacheFileName(cacheFileName) +{ + this->ReadCacheFile(); +} + +//---------------------------------------------------------------------------- +cmDependsC::~cmDependsC() +{ + this->WriteCacheFile(); + + for (std::map::iterator it= + this->FileCache.begin(); it!=this->FileCache.end(); ++it) + { + delete it->second; + } +} + +//---------------------------------------------------------------------------- +bool cmDependsC::WriteDependencies(const char *src, const char *obj, + std::ostream& makeDepends, std::ostream& internalDepends) +{ + // Make sure this is a scanning instance. + if(!src || src[0] == '\0') + { + cmSystemTools::Error("Cannot scan dependencies without a source file."); + return false; + } + if(!obj || obj[0] == '\0') + { + cmSystemTools::Error("Cannot scan dependencies without an object file."); + return false; + } + if(!this->IncludePath) + { + cmSystemTools::Error("Cannot scan dependencies without an include path."); + return false; + } + + // Walk the dependency graph starting with the source file. + bool first = true; + UnscannedEntry root; + root.FileName = src; + this->Unscanned.push(root); + this->Encountered.clear(); + this->Encountered.insert(src); + std::set dependencies; + std::set scanned; + + // Use reserve to allocate enough memory for both strings, + // so that during the loops no memory is allocated or freed + std::string cacheKey; + cacheKey.reserve(4*1024); + std::string tempPathStr; + tempPathStr.reserve(4*1024); + + while(!this->Unscanned.empty()) + { + // Get the next file to scan. + UnscannedEntry current = this->Unscanned.front(); + this->Unscanned.pop(); + + // If not a full path, find the file in the include path. + std::string fullName; + if(first || cmSystemTools::FileIsFullPath(current.FileName.c_str())) + { + if(cmSystemTools::FileExists(current.FileName.c_str(), true)) + { + fullName = current.FileName; + } + } + else if(!current.QuotedLocation.empty() && + cmSystemTools::FileExists(current.QuotedLocation.c_str(), true)) + { + // The include statement producing this entry was a double-quote + // include and the included file is present in the directory of + // the source containing the include statement. + fullName = current.QuotedLocation; + } + else + { + // With GCC distribution of STL, assigning to a string directly + // throws away the internal buffer of the left-hand-side. We + // want to keep the pre-allocated buffer so we use C-style + // string assignment and then operator+=. We could call + // .clear() instead of assigning to an empty string but the + // method does not exist on some older compilers. + cacheKey = ""; + cacheKey += current.FileName; + + for(std::vector::const_iterator i = + this->IncludePath->begin(); i != this->IncludePath->end(); ++i) + { + cacheKey+=*i; + } + std::map::iterator + headerLocationIt=this->HeaderLocationCache.find(cacheKey); + if (headerLocationIt!=this->HeaderLocationCache.end()) + { + fullName=headerLocationIt->second; + } + else for(std::vector::const_iterator i = + this->IncludePath->begin(); i != this->IncludePath->end(); ++i) + { + // Construct the name of the file as if it were in the current + // include directory. Avoid using a leading "./". + + tempPathStr = ""; + if((*i) == ".") + { + tempPathStr += current.FileName; + } + else + { + tempPathStr += *i; + tempPathStr+="/"; + tempPathStr+=current.FileName; + } + + // Look for the file in this location. + if(cmSystemTools::FileExists(tempPathStr.c_str(), true)) + { + fullName = tempPathStr; + HeaderLocationCache[cacheKey]=fullName; + break; + } + } + } + + // Complain if the file cannot be found and matches the complain + // regex. + if(fullName.empty() && + this->IncludeRegexComplain.find(current.FileName.c_str())) + { + cmSystemTools::Error("Cannot find file \"", + current.FileName.c_str(), "\"."); + return false; + } + + // Scan the file if it was found and has not been scanned already. + if(!fullName.empty() && (scanned.find(fullName) == scanned.end())) + { + // Record scanned files. + scanned.insert(fullName); + + // Check whether this file is already in the cache + std::map::iterator fileIt= + this->FileCache.find(fullName); + if (fileIt!=this->FileCache.end()) + { + fileIt->second->Used=true; + dependencies.insert(fullName); + for (std::vector::const_iterator incIt= + fileIt->second->UnscannedEntries.begin(); + incIt!=fileIt->second->UnscannedEntries.end(); ++incIt) + { + if (this->Encountered.find(incIt->FileName) == + this->Encountered.end()) + { + this->Encountered.insert(incIt->FileName); + this->Unscanned.push(*incIt); + } + } + } + else + { + + // Try to scan the file. Just leave it out if we cannot find + // it. + std::ifstream fin(fullName.c_str()); + if(fin) + { + // Add this file as a dependency. + dependencies.insert(fullName); + + // Scan this file for new dependencies. Pass the directory + // containing the file to handle double-quote includes. + std::string dir = cmSystemTools::GetFilenamePath(fullName); + this->Scan(fin, dir.c_str(), fullName); + } + } + } + + first = false; + } + + // Write the dependencies to the output stream. Makefile rules + // written by the original local generator for this directory + // convert the dependencies to paths relative to the home output + // directory. We must do the same here. + internalDepends << obj << std::endl; + for(std::set::iterator i=dependencies.begin(); + i != dependencies.end(); ++i) + { + makeDepends << obj << ": " << + this->LocalGenerator->Convert(i->c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE) + << std::endl; + internalDepends << " " << i->c_str() << std::endl; + } + makeDepends << std::endl; + + return true; +} + +//---------------------------------------------------------------------------- +void cmDependsC::ReadCacheFile() +{ + if(this->CacheFileName.size() == 0) + { + return; + } + std::ifstream fin(this->CacheFileName.c_str()); + if(!fin) + { + return; + } + + std::string line; + cmIncludeLines* cacheEntry=0; + bool haveFileName=false; + + while(cmSystemTools::GetLineFromStream(fin, line)) + { + if (line.empty()) + { + cacheEntry=0; + haveFileName=false; + continue; + } + //the first line after an empty line is the name of the parsed file + if (haveFileName==false) + { + haveFileName=true; + int newer=0; + cmFileTimeComparison comp; + bool res=comp.FileTimeCompare(this->CacheFileName.c_str(), + line.c_str(), &newer); + + if ((res==true) && (newer==1)) //cache is newer than the parsed file + { + cacheEntry=new cmIncludeLines; + this->FileCache[line]=cacheEntry; + } + // file doesn't exist, check that the regular expressions + // haven't changed + else if (res==false) + { + if (line.find(INCLUDE_REGEX_LINE_MARKER) == 0) + { + if (line != this->IncludeRegexLineString) + { + return; + } + } + else if (line.find(INCLUDE_REGEX_SCAN_MARKER) == 0) + { + if (line != this->IncludeRegexScanString) + { + return; + } + } + else if (line.find(INCLUDE_REGEX_COMPLAIN_MARKER) == 0) + { + if (line != this->IncludeRegexComplainString) + { + return; + } + } + } + } + else if (cacheEntry!=0) + { + UnscannedEntry entry; + entry.FileName = line; + if (cmSystemTools::GetLineFromStream(fin, line)) + { + if (line!="-") + { + entry.QuotedLocation=line; + } + cacheEntry->UnscannedEntries.push_back(entry); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmDependsC::WriteCacheFile() const +{ + if(this->CacheFileName.size() == 0) + { + return; + } + std::ofstream cacheOut(this->CacheFileName.c_str()); + if(!cacheOut) + { + return; + } + + cacheOut << this->IncludeRegexLineString << "\n\n"; + cacheOut << this->IncludeRegexScanString << "\n\n"; + cacheOut << this->IncludeRegexComplainString << "\n\n"; + + for (std::map::const_iterator fileIt= + this->FileCache.begin(); + fileIt!=this->FileCache.end(); ++fileIt) + { + if (fileIt->second->Used) + { + cacheOut<first.c_str()<::const_iterator + incIt=fileIt->second->UnscannedEntries.begin(); + incIt!=fileIt->second->UnscannedEntries.end(); ++incIt) + { + cacheOut<FileName.c_str()<QuotedLocation.empty()) + { + cacheOut<<"-"<QuotedLocation.c_str()<Used=true; + this->FileCache[fullName]=newCacheEntry; + + // Read one line at a time. + std::string line; + while(cmSystemTools::GetLineFromStream(is, line)) + { + // Match include directives. + if(this->IncludeRegexLine.find(line.c_str())) + { + // Get the file being included. + UnscannedEntry entry; + entry.FileName = this->IncludeRegexLine.match(2); + if(this->IncludeRegexLine.match(3) == "\"" && + !cmSystemTools::FileIsFullPath(entry.FileName.c_str())) + { + // This was a double-quoted include with a relative path. We + // must check for the file in the directory containing the + // file we are scanning. + entry.QuotedLocation = directory; + entry.QuotedLocation += "/"; + entry.QuotedLocation += entry.FileName; + } + + // Queue the file if it has not yet been encountered and it + // matches the regular expression for recursive scanning. Note + // that this check does not account for the possibility of two + // headers with the same name in different directories when one + // is included by double-quotes and the other by angle brackets. + // This kind of problem will be fixed when a more + // preprocessor-like implementation of this scanner is created. + if (this->IncludeRegexScan.find(entry.FileName.c_str())) + { + newCacheEntry->UnscannedEntries.push_back(entry); + if(this->Encountered.find(entry.FileName) == this->Encountered.end()) + { + this->Encountered.insert(entry.FileName); + this->Unscanned.push(entry); + } + } + } + } +} diff --git a/CMakeLua/Source/cmDependsC.h b/CMakeLua/Source/cmDependsC.h new file mode 100644 index 0000000..bb99d32 --- /dev/null +++ b/CMakeLua/Source/cmDependsC.h @@ -0,0 +1,98 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsC.h,v $ + Language: C++ + Date: $Date: 2007/02/05 14:48:38 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsC_h +#define cmDependsC_h + +#include "cmDepends.h" +#include +#include + +/** \class cmDependsC + * \brief Dependency scanner for C and C++ object files. + */ +class cmDependsC: public cmDepends +{ +public: + /** Checking instances need to know the build directory name and the + relative path from the build directory to the target file. */ + cmDependsC(); + cmDependsC(std::vector const& includes, + const char* scanRegex, const char* complainRegex, + const cmStdString& cachFileName); + + /** Virtual destructor to cleanup subclasses properly. */ + virtual ~cmDependsC(); + +protected: + typedef std::vector t_CharBuffer; + + // Implement writing/checking methods required by superclass. + virtual bool WriteDependencies(const char *src, + const char *file, + std::ostream& makeDepends, + std::ostream& internalDepends); + + // Method to scan a single file. + void Scan(std::istream& is, const char* directory, + const cmStdString& fullName); + + // The include file search path. + std::vector const* IncludePath; + + // Regular expression to identify C preprocessor include directives. + cmsys::RegularExpression IncludeRegexLine; + + // Regular expressions to choose which include files to scan + // recursively and which to complain about not finding. + cmsys::RegularExpression IncludeRegexScan; + cmsys::RegularExpression IncludeRegexComplain; + const std::string IncludeRegexLineString; + const std::string IncludeRegexScanString; + const std::string IncludeRegexComplainString; + +public: + // Data structures for dependency graph walk. + struct UnscannedEntry + { + cmStdString FileName; + cmStdString QuotedLocation; + }; + + struct cmIncludeLines + { + cmIncludeLines(): Used(false) {} + std::vector UnscannedEntries; + bool Used; + }; +protected: + std::set Encountered; + std::queue Unscanned; + t_CharBuffer Buffer; + + std::map FileCache; + std::map HeaderLocationCache; + + cmStdString CacheFileName; + + void WriteCacheFile() const; + void ReadCacheFile(); +private: + cmDependsC(cmDependsC const&); // Purposely not implemented. + void operator=(cmDependsC const&); // Purposely not implemented. +}; + +#endif diff --git a/CMakeLua/Source/cmDependsFortran.cxx b/CMakeLua/Source/cmDependsFortran.cxx new file mode 100644 index 0000000..f656773 --- /dev/null +++ b/CMakeLua/Source/cmDependsFortran.cxx @@ -0,0 +1,1253 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortran.cxx,v $ + Language: C++ + Date: $Date: 2008/01/18 23:40:05 $ + Version: $Revision: 1.46 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDependsFortran.h" + +#include "cmSystemTools.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" + +#include "cmDependsFortranParser.h" /* Interface to parser object. */ + +#include +#include + +// TODO: Test compiler for the case of the mod file. Some always +// use lower case and some always use upper case. I do not know if any +// use the case from the source code. + +//---------------------------------------------------------------------------- +// Information about a single source file. +class cmDependsFortranSourceInfo +{ +public: + // The name of the soruce file. + std::string Source; + + // Set of provided and required modules. + std::set Provides; + std::set Requires; + + // Set of files included in the translation unit. + std::set Includes; +}; + +//---------------------------------------------------------------------------- +// Parser methods not included in generated interface. + +// Get the current buffer processed by the lexer. +YY_BUFFER_STATE cmDependsFortranLexer_GetCurrentBuffer(yyscan_t yyscanner); + +// The parser entry point. +int cmDependsFortran_yyparse(yyscan_t); + +//---------------------------------------------------------------------------- +// Define parser object internal structure. +struct cmDependsFortranFile +{ + cmDependsFortranFile(FILE* file, YY_BUFFER_STATE buffer, + const std::string& dir): + File(file), Buffer(buffer), Directory(dir) {} + FILE* File; + YY_BUFFER_STATE Buffer; + std::string Directory; +}; + +struct cmDependsFortranParser_s +{ + cmDependsFortranParser_s(cmDependsFortran* self, + std::set& ppDefines, + cmDependsFortranSourceInfo& info); + ~cmDependsFortranParser_s(); + + // Pointer back to the main class. + cmDependsFortran* Self; + + // Lexical scanner instance. + yyscan_t Scanner; + + // Stack of open files in the translation unit. + std::stack FileStack; + + // Buffer for string literals. + std::string TokenString; + + // Flag for whether lexer is reading from inside an interface. + bool InInterface; + + int OldStartcond; + std::set PPDefinitions; + size_t InPPFalseBranch; + std::stack SkipToEnd; + + // Information about the parsed source. + cmDependsFortranSourceInfo& Info; +}; + +//---------------------------------------------------------------------------- +class cmDependsFortranInternals +{ +public: + // The set of modules provided by this target. + std::set TargetProvides; + + // Map modules required by this target to locations. + typedef std::map TargetRequiresMap; + TargetRequiresMap TargetRequires; + + // Information about each object file. + typedef std::map ObjectInfoMap; + ObjectInfoMap ObjectInfo; + + cmDependsFortranSourceInfo& CreateObjectInfo(const char* obj, + const char* src) + { + std::map::iterator i = + this->ObjectInfo.find(obj); + if(i == this->ObjectInfo.end()) + { + std::map::value_type + entry(obj, cmDependsFortranSourceInfo()); + i = this->ObjectInfo.insert(entry).first; + i->second.Source = src; + } + return i->second; + } +}; + +//---------------------------------------------------------------------------- +cmDependsFortran::cmDependsFortran(): + IncludePath(0), PPDefinitions(0), Internal(0) +{ +} + +//---------------------------------------------------------------------------- +cmDependsFortran +::cmDependsFortran(std::vector const& includes, + std::vector const& definitions): + IncludePath(&includes), + Internal(new cmDependsFortranInternals) +{ + // translate i.e. FOO=BAR to FOO and add it to the list of defined + // preprocessor symbols + for(std::vector::const_iterator + it = definitions.begin(); it != definitions.end(); ++it) + { + std::string def = *it; + std::string::size_type assignment = def.find("="); + if(assignment != std::string::npos) + { + def = it->substr(0, assignment); + } + this->PPDefinitions.push_back(def); + } +} + +//---------------------------------------------------------------------------- +cmDependsFortran::~cmDependsFortran() +{ + delete this->Internal; +} + +//---------------------------------------------------------------------------- +bool cmDependsFortran::WriteDependencies(const char *src, const char *obj, + std::ostream&, std::ostream&) +{ + // Make sure this is a scanning instance. + if(!src || src[0] == '\0') + { + cmSystemTools::Error("Cannot scan dependencies without an source file."); + return false; + } + if(!obj || obj[0] == '\0') + { + cmSystemTools::Error("Cannot scan dependencies without an object file."); + return false; + } + if(!this->IncludePath) + { + cmSystemTools::Error("Cannot scan dependencies without an include path."); + return false; + } + + // Get the information object for this source. + cmDependsFortranSourceInfo& info = + this->Internal->CreateObjectInfo(obj, src); + + // Make a copy of the macros defined via ADD_DEFINITIONS + std::set ppDefines(this->PPDefinitions.begin(), + this->PPDefinitions.end()); + + // Create the parser object. The constructor takes ppMacro and info per + // reference, so we may look into the resulting objects later. + cmDependsFortranParser parser(this, ppDefines, info); + + // Push on the starting file. + cmDependsFortranParser_FilePush(&parser, src); + + // Parse the translation unit. + if(cmDependsFortran_yyparse(parser.Scanner) != 0) + { + // Failed to parse the file. Report failure to write dependencies. + return false; + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmDependsFortran::Finalize(std::ostream& makeDepends, + std::ostream& internalDepends) +{ + // Prepare the module search process. + this->LocateModules(); + + // Get the directory in which stamp files will be stored. + const char* stamp_dir = this->TargetDirectory.c_str(); + + // Get the directory in which module files will be created. + const char* mod_dir; + cmMakefile* mf = this->LocalGenerator->GetMakefile(); + if(const char* target_mod_dir = + mf->GetDefinition("CMAKE_Fortran_TARGET_MODULE_DIR")) + { + mod_dir = target_mod_dir; + } + else + { + mod_dir = + this->LocalGenerator->GetMakefile()->GetCurrentOutputDirectory(); + } + + // Actually write dependencies to the streams. + typedef cmDependsFortranInternals::ObjectInfoMap ObjectInfoMap; + ObjectInfoMap const& objInfo = this->Internal->ObjectInfo; + for(ObjectInfoMap::const_iterator i = objInfo.begin(); + i != objInfo.end(); ++i) + { + if(!this->WriteDependenciesReal(i->first.c_str(), i->second, + mod_dir, stamp_dir, + makeDepends, internalDepends)) + { + return false; + } + } + + // Store the list of modules provided by this target. + std::string fiName = this->TargetDirectory; + fiName += "/fortran.internal"; + cmGeneratedFileStream fiStream(fiName.c_str()); + fiStream << "# The fortran modules provided by this target.\n"; + fiStream << "provides\n"; + std::set const& provides = this->Internal->TargetProvides; + for(std::set::const_iterator i = provides.begin(); + i != provides.end(); ++i) + { + fiStream << " " << *i << "\n"; + } + + // Create a script to clean the modules. + if(!provides.empty()) + { + std::string fcName = this->TargetDirectory; + fcName += "/cmake_clean_Fortran.cmake"; + cmGeneratedFileStream fcStream(fcName.c_str()); + fcStream << "# Remove fortran modules provided by this target.\n"; + fcStream << "FILE(REMOVE"; + for(std::set::const_iterator i = provides.begin(); + i != provides.end(); ++i) + { + std::string mod_upper = mod_dir; + mod_upper += "/"; + mod_upper += cmSystemTools::UpperCase(*i); + mod_upper += ".mod"; + std::string mod_lower = mod_dir; + mod_lower += "/"; + mod_lower += *i; + mod_lower += ".mod"; + std::string stamp = stamp_dir; + stamp += "/"; + stamp += *i; + stamp += ".mod.stamp"; + fcStream << "\n"; + fcStream << " \"" << + this->LocalGenerator->Convert(mod_lower.c_str(), + cmLocalGenerator::START_OUTPUT) + << "\"\n"; + fcStream << " \"" << + this->LocalGenerator->Convert(mod_upper.c_str(), + cmLocalGenerator::START_OUTPUT) + << "\"\n"; + fcStream << " \"" << + this->LocalGenerator->Convert(stamp.c_str(), + cmLocalGenerator::START_OUTPUT) + << "\"\n"; + } + fcStream << " )\n"; + } + return true; +} + +//---------------------------------------------------------------------------- +void cmDependsFortran::LocateModules() +{ + // Collect the set of modules provided and required by all sources. + typedef cmDependsFortranInternals::ObjectInfoMap ObjectInfoMap; + ObjectInfoMap const& objInfo = this->Internal->ObjectInfo; + for(ObjectInfoMap::const_iterator infoI = objInfo.begin(); + infoI != objInfo.end(); ++infoI) + { + cmDependsFortranSourceInfo const& info = infoI->second; + for(std::set::const_iterator i = info.Provides.begin(); + i != info.Provides.end(); ++i) + { + // Include this module in the set provided by this target. + this->Internal->TargetProvides.insert(*i); + } + + for(std::set::const_iterator i = info.Requires.begin(); + i != info.Requires.end(); ++i) + { + // Include this module in the set required by this target. + this->Internal->TargetRequires[*i] = ""; + } + } + + // Short-circuit for simple targets. + if(this->Internal->TargetRequires.empty()) + { + return; + } + + // Match modules provided by this target to those it requires. + this->MatchLocalModules(); + + // Load information about other targets. + cmMakefile* mf = this->LocalGenerator->GetMakefile(); + std::vector infoFiles; + if(const char* infoFilesValue = + mf->GetDefinition("CMAKE_TARGET_LINKED_INFO_FILES")) + { + cmSystemTools::ExpandListArgument(infoFilesValue, infoFiles); + } + for(std::vector::const_iterator i = infoFiles.begin(); + i != infoFiles.end(); ++i) + { + std::string targetDir = cmSystemTools::GetFilenamePath(*i); + std::string fname = targetDir + "/fortran.internal"; + std::ifstream fin(fname.c_str()); + if(fin) + { + this->MatchRemoteModules(fin, targetDir.c_str()); + } + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortran::MatchLocalModules() +{ + const char* stampDir = this->TargetDirectory.c_str(); + std::set const& provides = this->Internal->TargetProvides; + for(std::set::const_iterator i = provides.begin(); + i != provides.end(); ++i) + { + this->ConsiderModule(i->c_str(), stampDir); + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortran::MatchRemoteModules(std::istream& fin, + const char* stampDir) +{ + std::string line; + bool doing_provides = false; + while(cmSystemTools::GetLineFromStream(fin, line)) + { + // Ignore comments and empty lines. + if(line.empty() || line[0] == '#' || line[0] == '\r') + { + continue; + } + + if(line[0] == ' ') + { + if(doing_provides) + { + this->ConsiderModule(line.c_str()+1, stampDir); + } + } + else if(line == "provides") + { + doing_provides = true; + } + else + { + doing_provides = false; + } + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortran::ConsiderModule(const char* name, + const char* stampDir) +{ + // Locate each required module. + typedef cmDependsFortranInternals::TargetRequiresMap TargetRequiresMap; + TargetRequiresMap::iterator required = + this->Internal->TargetRequires.find(name); + if(required != this->Internal->TargetRequires.end() && + required->second.empty()) + { + // The module is provided by a CMake target. It will have a stamp file. + std::string stampFile = stampDir; + stampFile += "/"; + stampFile += name; + stampFile += ".mod.stamp"; + required->second = stampFile; + } +} + +//---------------------------------------------------------------------------- +bool +cmDependsFortran +::WriteDependenciesReal(const char *obj, + cmDependsFortranSourceInfo const& info, + const char* mod_dir, const char* stamp_dir, + std::ostream& makeDepends, + std::ostream& internalDepends) +{ + typedef cmDependsFortranInternals::TargetRequiresMap TargetRequiresMap; + + // Get the source file for this object. + const char* src = info.Source.c_str(); + + // Write the include dependencies to the output stream. + internalDepends << obj << std::endl; + internalDepends << " " << src << std::endl; + for(std::set::const_iterator i = info.Includes.begin(); + i != info.Includes.end(); ++i) + { + makeDepends << obj << ": " + << cmSystemTools::ConvertToOutputPath(i->c_str()).c_str() + << std::endl; + internalDepends << " " << i->c_str() << std::endl; + } + makeDepends << std::endl; + + // Write module requirements to the output stream. + for(std::set::const_iterator i = info.Requires.begin(); + i != info.Requires.end(); ++i) + { + // Require only modules not provided in the same source. + if(std::set::const_iterator(info.Provides.find(*i)) != + info.Provides.end()) + { + continue; + } + + // If the module is provided in this target special handling is + // needed. + if(this->Internal->TargetProvides.find(*i) != + this->Internal->TargetProvides.end()) + { + // The module is provided by a different source in the same + // target. Add the proxy dependency to make sure the other + // source builds first. + std::string proxy = stamp_dir; + proxy += "/"; + proxy += *i; + proxy += ".mod.proxy"; + proxy = this->LocalGenerator->Convert(proxy.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE); + + // since we require some things add them to our list of requirements + makeDepends << obj << ".requires: " << proxy << std::endl; + } + + // The object file should depend on timestamped files for the + // modules it uses. + TargetRequiresMap::const_iterator required = + this->Internal->TargetRequires.find(*i); + if(required == this->Internal->TargetRequires.end()) { abort(); } + if(!required->second.empty()) + { + // This module is known. Depend on its timestamp file. + std::string stampFile = + this->LocalGenerator->Convert(required->second.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::SHELL); + makeDepends << obj << ": " << stampFile << "\n"; + } + else + { + // This module is not known to CMake. Try to locate it where + // the compiler will and depend on that. + std::string module; + if(this->FindModule(*i, module)) + { + module = + this->LocalGenerator->Convert(module.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::SHELL); + makeDepends << obj << ": " << module << "\n"; + } + } + } + + // Write provided modules to the output stream. + for(std::set::const_iterator i = info.Provides.begin(); + i != info.Provides.end(); ++i) + { + std::string proxy = stamp_dir; + proxy += "/"; + proxy += *i; + proxy += ".mod.proxy"; + proxy = this->LocalGenerator->Convert(proxy.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE); + makeDepends << proxy << ": " << obj << ".provides" << std::endl; + } + + // If any modules are provided then they must be converted to stamp files. + if(!info.Provides.empty()) + { + // Create a target to copy the module after the object file + // changes. + makeDepends << obj << ".provides.build:\n"; + for(std::set::const_iterator i = info.Provides.begin(); + i != info.Provides.end(); ++i) + { + // Include this module in the set provided by this target. + this->Internal->TargetProvides.insert(*i); + + // Always use lower case for the mod stamp file name. The + // cmake_copy_f90_mod will call back to this class, which will + // try various cases for the real mod file name. + std::string m = cmSystemTools::LowerCase(*i); + std::string modFile = mod_dir; + modFile += "/"; + modFile += *i; + modFile = + this->LocalGenerator->Convert(modFile.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::SHELL); + std::string stampFile = stamp_dir; + stampFile += "/"; + stampFile += m; + stampFile += ".mod.stamp"; + stampFile = + this->LocalGenerator->Convert(stampFile.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::SHELL); + makeDepends << "\t$(CMAKE_COMMAND) -E cmake_copy_f90_mod " + << modFile << " " << stampFile; + cmMakefile* mf = this->LocalGenerator->GetMakefile(); + const char* cid = mf->GetDefinition("CMAKE_Fortran_COMPILER_ID"); + if(cid && *cid) + { + makeDepends << " " << cid; + } + makeDepends << "\n"; + } + // After copying the modules update the timestamp file so that + // copying will not be done again until the source rebuilds. + makeDepends << "\t$(CMAKE_COMMAND) -E touch " << obj + << ".provides.build\n"; + + // Make sure the module timestamp rule is evaluated by the time + // the target finishes building. + std::string driver = this->TargetDirectory; + driver += "/build"; + driver = this->LocalGenerator->Convert(driver.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE); + makeDepends << driver << ": " << obj << ".provides.build\n"; + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmDependsFortran::FindModule(std::string const& name, + std::string& module) +{ + // Construct possible names for the module file. + std::string mod_upper = cmSystemTools::UpperCase(name); + std::string mod_lower = name; + mod_upper += ".mod"; + mod_lower += ".mod"; + + // Search the include path for the module. + std::string fullName; + for(std::vector::const_iterator i = + this->IncludePath->begin(); i != this->IncludePath->end(); ++i) + { + // Try the lower-case name. + fullName = *i; + fullName += "/"; + fullName += mod_lower; + if(cmSystemTools::FileExists(fullName.c_str(), true)) + { + module = fullName; + return true; + } + + // Try the upper-case name. + fullName = *i; + fullName += "/"; + fullName += mod_upper; + if(cmSystemTools::FileExists(fullName.c_str(), true)) + { + module = fullName; + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmDependsFortran::CopyModule(const std::vector& args) +{ + // Implements + // + // $(CMAKE_COMMAND) -E cmake_copy_f90_mod input.mod output.mod.stamp + // [compiler-id] + // + // Note that the case of the .mod file depends on the compiler. In + // the future this copy could also account for the fact that some + // compilers include a timestamp in the .mod file so it changes even + // when the interface described in the module does not. + + std::string mod = args[2]; + std::string stamp = args[3]; + std::string compilerId; + if(args.size() >= 5) + { + compilerId = args[4]; + } + std::string mod_dir = cmSystemTools::GetFilenamePath(mod); + if(!mod_dir.empty()) { mod_dir += "/"; } + std::string mod_upper = mod_dir; + mod_upper += cmSystemTools::UpperCase(cmSystemTools::GetFilenameName(mod)); + std::string mod_lower = mod_dir; + mod_lower += cmSystemTools::LowerCase(cmSystemTools::GetFilenameName(mod)); + mod += ".mod"; + mod_upper += ".mod"; + mod_lower += ".mod"; + if(cmSystemTools::FileExists(mod_upper.c_str(), true)) + { + if(cmDependsFortran::ModulesDiffer(mod_upper.c_str(), stamp.c_str(), + compilerId.c_str())) + { + if(!cmSystemTools::CopyFileAlways(mod_upper.c_str(), stamp.c_str())) + { + std::cerr << "Error copying Fortran module from \"" + << mod_upper.c_str() << "\" to \"" << stamp.c_str() + << "\".\n"; + return false; + } + } + return true; + } + else if(cmSystemTools::FileExists(mod_lower.c_str(), true)) + { + if(cmDependsFortran::ModulesDiffer(mod_lower.c_str(), stamp.c_str(), + compilerId.c_str())) + { + if(!cmSystemTools::CopyFileAlways(mod_lower.c_str(), stamp.c_str())) + { + std::cerr << "Error copying Fortran module from \"" + << mod_lower.c_str() << "\" to \"" << stamp.c_str() + << "\".\n"; + return false; + } + } + return true; + } + + std::cerr << "Error copying Fortran module \"" << args[2].c_str() + << "\". Tried \"" << mod_upper.c_str() + << "\" and \"" << mod_lower.c_str() << "\".\n"; + return false; +} + +//---------------------------------------------------------------------------- +// Helper function to look for a short sequence in a stream. If this +// is later used for longer sequences it should be re-written using an +// efficient string search algorithm such as Boyer-Moore. +static +bool cmDependsFortranStreamContainsSequence(std::ifstream& ifs, + const char* seq, int len) +{ + assert(len > 0); + + int cur = 0; + while(cur < len) + { + // Get the next character. + int token = ifs.get(); + if(!ifs) + { + return false; + } + + // Check the character. + if(token == static_cast(seq[cur])) + { + ++cur; + } + else + { + // Assume the sequence has no repeating subsequence. + cur = 0; + } + } + + // The entire sequence was matched. + return true; +} + +//---------------------------------------------------------------------------- +// Helper function to compare the remaining content in two streams. +static bool cmDependsFortranStreamsDiffer(std::ifstream& ifs1, + std::ifstream& ifs2) +{ + // Compare the remaining content. + for(;;) + { + int ifs1_c = ifs1.get(); + int ifs2_c = ifs2.get(); + if(!ifs1 && !ifs2) + { + // We have reached the end of both streams simultaneously. + // The streams are identical. + return false; + } + + if(!ifs1 || !ifs2 || ifs1_c != ifs2_c) + { + // We have reached the end of one stream before the other or + // found differing content. The streams are different. + break; + } + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmDependsFortran::ModulesDiffer(const char* modFile, + const char* stampFile, + const char* compilerId) +{ + /* + gnu: + A mod file is an ascii file. + + FORTRAN module created from /path/to/foo.f90 on Sun Dec 30 22:47:58 2007 + If you edit this, you'll get what you deserve. + ... + + As you can see the first line contains the date. + + intel: + A mod file is a binary file. + However, looking into both generated bar.mod files with a hex editor + shows that they differ only before a sequence linefeed-zero (0x0A 0x00) + which is located some bytes in front of the absoulte path to the source + file. + + sun: + A mod file is a binary file. Compiling twice produces identical modules. + + others: + TODO ... + */ + + + /* Compilers which do _not_ produce different mod content when the same + * source is compiled twice + * -SunPro + */ + if(strcmp(compilerId, "SunPro") == 0) + { + return cmSystemTools::FilesDiffer(modFile, stampFile); + } + +#if defined(_WIN32) || defined(__CYGWIN__) + std::ifstream finModFile(modFile, std::ios::in | std::ios::binary); + std::ifstream finStampFile(stampFile, std::ios::in | std::ios::binary); +#else + std::ifstream finModFile(modFile, std::ios::in); + std::ifstream finStampFile(stampFile, std::ios::in); +#endif + if(!finModFile || !finStampFile) + { + // At least one of the files does not exist. The modules differ. + return true; + } + + /* Compilers which _do_ produce different mod content when the same + * source is compiled twice + * -GNU + * -Intel + * + * Eat the stream content until all recompile only realated changes + * are left bedind. + */ + if (strcmp(compilerId, "GNU") == 0 ) + { + const char seq[1] = {'\n'}; + const int seqlen = 1; + + if(!cmDependsFortranStreamContainsSequence(finModFile, seq, seqlen)) + { + // The module is of unexpected format. Assume it is different. + std::cerr << compilerId << " fortran module " << modFile + << " has unexpected format." << std::endl; + return true; + } + + if(!cmDependsFortranStreamContainsSequence(finStampFile, seq, seqlen)) + { + // The stamp must differ if the sequence is not contained. + return true; + } + } + else if(strcmp(compilerId, "Intel") == 0) + { + const char seq[2] = {'\n', '\0'}; + const int seqlen = 2; + + if(!cmDependsFortranStreamContainsSequence(finModFile, seq, seqlen)) + { + // The module is of unexpected format. Assume it is different. + std::cerr << compilerId << " fortran module " << modFile + << " has unexpected format." << std::endl; + return true; + } + + if(!cmDependsFortranStreamContainsSequence(finStampFile, seq, seqlen)) + { + // The stamp must differ if the sequence is not contained. + return true; + } + } + + // Compare the remainng content. If no compiler id matched above, + // including the case none was given, this will compare the whole + // content. + if(!cmDependsFortranStreamsDiffer(finModFile, finStampFile)) + { + return false; + } + + // The modules are different. + return true; +} + +//---------------------------------------------------------------------------- +bool cmDependsFortran::FindIncludeFile(const char* dir, + const char* includeName, + std::string& fileName) +{ + // If the file is a full path, include it directly. + if(cmSystemTools::FileIsFullPath(includeName)) + { + fileName = includeName; + return cmSystemTools::FileExists(fileName.c_str(), true); + } + else + { + // Check for the file in the directory containing the including + // file. + std::string fullName = dir; + fullName += "/"; + fullName += includeName; + if(cmSystemTools::FileExists(fullName.c_str(), true)) + { + fileName = fullName; + return true; + } + + // Search the include path for the file. + for(std::vector::const_iterator i = + this->IncludePath->begin(); i != this->IncludePath->end(); ++i) + { + fullName = *i; + fullName += "/"; + fullName += includeName; + if(cmSystemTools::FileExists(fullName.c_str(), true)) + { + fileName = fullName; + return true; + } + } + } + return false; +} + +//---------------------------------------------------------------------------- +cmDependsFortranParser_s +::cmDependsFortranParser_s(cmDependsFortran* self, + std::set& ppDefines, + cmDependsFortranSourceInfo& info): + Self(self), PPDefinitions(ppDefines), Info(info) +{ + this->InInterface = 0; + this->InPPFalseBranch = 0; + + // Initialize the lexical scanner. + cmDependsFortran_yylex_init(&this->Scanner); + cmDependsFortran_yyset_extra(this, this->Scanner); + + // Create a dummy buffer that is never read but is the fallback + // buffer when the last file is popped off the stack. + YY_BUFFER_STATE buffer = + cmDependsFortran_yy_create_buffer(0, 4, this->Scanner); + cmDependsFortran_yy_switch_to_buffer(buffer, this->Scanner); +} + +//---------------------------------------------------------------------------- +cmDependsFortranParser_s::~cmDependsFortranParser_s() +{ + cmDependsFortran_yylex_destroy(this->Scanner); +} + +//---------------------------------------------------------------------------- +bool cmDependsFortranParser_FilePush(cmDependsFortranParser* parser, + const char* fname) +{ + // Open the new file and push it onto the stack. Save the old + // buffer with it on the stack. + if(FILE* file = fopen(fname, "rb")) + { + YY_BUFFER_STATE current = + cmDependsFortranLexer_GetCurrentBuffer(parser->Scanner); + std::string dir = cmSystemTools::GetParentDirectory(fname); + cmDependsFortranFile f(file, current, dir); + YY_BUFFER_STATE buffer = + cmDependsFortran_yy_create_buffer(0, 16384, parser->Scanner); + cmDependsFortran_yy_switch_to_buffer(buffer, parser->Scanner); + parser->FileStack.push(f); + return 1; + } + else + { + return 0; + } +} + +//---------------------------------------------------------------------------- +bool cmDependsFortranParser_FilePop(cmDependsFortranParser* parser) +{ + // Pop one file off the stack and close it. Switch the lexer back + // to the next one on the stack. + if(parser->FileStack.empty()) + { + return 0; + } + else + { + cmDependsFortranFile f = parser->FileStack.top(); parser->FileStack.pop(); + fclose(f.File); + YY_BUFFER_STATE current = + cmDependsFortranLexer_GetCurrentBuffer(parser->Scanner); + cmDependsFortran_yy_delete_buffer(current, parser->Scanner); + cmDependsFortran_yy_switch_to_buffer(f.Buffer, parser->Scanner); + return 1; + } +} + +//---------------------------------------------------------------------------- +int cmDependsFortranParser_Input(cmDependsFortranParser* parser, + char* buffer, size_t bufferSize) +{ + // Read from the file on top of the stack. If the stack is empty, + // the end of the translation unit has been reached. + if(!parser->FileStack.empty()) + { + FILE* file = parser->FileStack.top().File; + return (int)fread(buffer, 1, bufferSize, file); + } + return 0; +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_StringStart(cmDependsFortranParser* parser) +{ + parser->TokenString = ""; +} + +//---------------------------------------------------------------------------- +const char* cmDependsFortranParser_StringEnd(cmDependsFortranParser* parser) +{ + return parser->TokenString.c_str(); +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_StringAppend(cmDependsFortranParser* parser, + char c) +{ + parser->TokenString += c; +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_SetInInterface(cmDependsFortranParser* parser, + bool in) +{ + if(parser->InPPFalseBranch) + { + return; + } + + parser->InInterface = in; +} + +//---------------------------------------------------------------------------- +bool cmDependsFortranParser_GetInInterface(cmDependsFortranParser* parser) +{ + return parser->InInterface; +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_SetOldStartcond(cmDependsFortranParser* parser, + int arg) +{ + parser->OldStartcond = arg; +} + +//---------------------------------------------------------------------------- +int cmDependsFortranParser_GetOldStartcond(cmDependsFortranParser* parser) +{ + return parser->OldStartcond; +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_Error(cmDependsFortranParser*, const char*) +{ + // If there is a parser error just ignore it. The source will not + // compile and the user will edit it. Then dependencies will have + // to be regenerated anyway. +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleUse(cmDependsFortranParser* parser, + const char* name) +{ + if(!parser->InPPFalseBranch) + { + parser->Info.Requires.insert(cmSystemTools::LowerCase(name) ); + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleInclude(cmDependsFortranParser* parser, + const char* name) +{ + if(parser->InPPFalseBranch) + { + return; + } + + // If processing an include statement there must be an open file. + assert(!parser->FileStack.empty()); + + // Get the directory containing the source in which the include + // statement appears. This is always the first search location for + // Fortran include files. + std::string dir = parser->FileStack.top().Directory; + + // Find the included file. If it cannot be found just ignore the + // problem because either the source will not compile or the user + // does not care about depending on this included source. + std::string fullName; + if(parser->Self->FindIncludeFile(dir.c_str(), name, fullName)) + { + // Found the included file. Save it in the set of included files. + parser->Info.Includes.insert(fullName); + + // Parse it immediately to translate the source inline. + cmDependsFortranParser_FilePush(parser, fullName.c_str()); + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleModule(cmDependsFortranParser* parser, + const char* name) +{ + if(!parser->InPPFalseBranch && !parser->InInterface) + { + parser->Info.Provides.insert(cmSystemTools::LowerCase(name)); + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleDefine(cmDependsFortranParser* parser, + const char* macro) +{ + if(!parser->InPPFalseBranch) + { + parser->PPDefinitions.insert(macro); + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleUndef(cmDependsFortranParser* parser, + const char* macro) +{ + if(!parser->InPPFalseBranch) + { + std::set::iterator match; + match = parser->PPDefinitions.find(macro); + if(match != parser->PPDefinitions.end()) + { + parser->PPDefinitions.erase(match); + } + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleIfdef(cmDependsFortranParser* parser, + const char* macro) +{ + // A new PP branch has been opened + parser->SkipToEnd.push(false); + + if (parser->InPPFalseBranch) + { + parser->InPPFalseBranch++; + } + else if(parser->PPDefinitions.find(macro) == parser->PPDefinitions.end()) + { + parser->InPPFalseBranch=1; + } + else + { + parser->SkipToEnd.top() = true; + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleIfndef(cmDependsFortranParser* parser, + const char* macro) +{ + // A new PP branch has been opened + parser->SkipToEnd.push(false); + + if (parser->InPPFalseBranch) + { + parser->InPPFalseBranch++; + } + else if(parser->PPDefinitions.find(macro) != parser->PPDefinitions.end()) + { + parser->InPPFalseBranch = 1; + } + else + { + // ignore other branches + parser->SkipToEnd.top() = true; + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleIf(cmDependsFortranParser* parser) +{ + /* Note: The current parser is _not_ able to get statements like + * #if 0 + * #if 1 + * #if MYSMBOL + * #if defined(MYSYMBOL) + * #if defined(MYSYMBOL) && ... + * right. The same for #elif. Thus in + * #if SYMBOL_1 + * .. + * #elif SYMBOL_2 + * ... + * ... + * #elif SYMBOL_N + * .. + * #else + * .. + * #endif + * _all_ N+1 branches are considered. If you got something like this + * #if defined(MYSYMBOL) + * #if !defined(MYSYMBOL) + * use + * #ifdef MYSYMBOL + * #ifndef MYSYMBOL + * instead. + */ + + // A new PP branch has been opened + // Never skip! See note above. + parser->SkipToEnd.push(false); +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleElif(cmDependsFortranParser* parser) +{ + /* Note: There are parser limitations. See the note at + * cmDependsFortranParser_RuleIf(..) + */ + + // Allways taken unless an #ifdef or #ifndef-branch has been taken + // already. If the second condition isn't meet already + // (parser->InPPFalseBranch == 0) correct it. + if(parser->SkipToEnd.top() && !parser->InPPFalseBranch) + { + parser->InPPFalseBranch = 1; + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleElse(cmDependsFortranParser* parser) +{ + // if the parent branch is false do nothing! + if(parser->InPPFalseBranch > 1) + { + return; + } + + // parser->InPPFalseBranch is either 0 or 1. We change it denpending on + // parser->SkipToEnd.top() + if(parser->SkipToEnd.top()) + { + parser->InPPFalseBranch = 1; + } + else + { + parser->InPPFalseBranch = 0; + } +} + +//---------------------------------------------------------------------------- +void cmDependsFortranParser_RuleEndif(cmDependsFortranParser* parser) +{ + if(!parser->SkipToEnd.empty()) + { + parser->SkipToEnd.pop(); + } + + // #endif doesn't know if there was a "#else" in before, so it + // always decreases InPPFalseBranch + if(parser->InPPFalseBranch) + { + parser->InPPFalseBranch--; + } +} diff --git a/CMakeLua/Source/cmDependsFortran.h b/CMakeLua/Source/cmDependsFortran.h new file mode 100644 index 0000000..274700a --- /dev/null +++ b/CMakeLua/Source/cmDependsFortran.h @@ -0,0 +1,100 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortran.h,v $ + Language: C++ + Date: $Date: 2008/01/09 15:30:10 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsFortran_h +#define cmDependsFortran_h + +#include "cmDepends.h" + +class cmDependsFortranInternals; +class cmDependsFortranSourceInfo; + +/** \class cmDependsFortran + * \brief Dependency scanner for Fortran object files. + */ +class cmDependsFortran: public cmDepends +{ +public: + /** Checking instances need to know the build directory name and the + relative path from the build directory to the target file. */ + cmDependsFortran(); + + /** Scanning need to know the build directory name, the relative + path from the build directory to the target file, the source + file from which to start scanning, the include file search + path, and the target directory. */ + cmDependsFortran(std::vector const& includes, + std::vector const& defines); + + /** Virtual destructor to cleanup subclasses properly. */ + virtual ~cmDependsFortran(); + + /** Callback from build system after a .mod file has been generated + by a Fortran90 compiler to copy the .mod file to the + corresponding stamp file. */ + static bool CopyModule(const std::vector& args); + + /** Determine if a mod file and the corresponding mod.stamp file + are representing different module information. */ + static bool ModulesDiffer(const char* modFile, const char* stampFile, + const char* compilerId); + + /** Method to find an included file in the include path. Fortran + always searches the directory containing the including source + first. */ + bool FindIncludeFile(const char* dir, const char* includeName, + std::string& fileName); + +protected: + // Finalize the dependency information for the target. + virtual bool Finalize(std::ostream& makeDepends, + std::ostream& internalDepends); + + // Find all the modules required by the target. + void LocateModules(); + void MatchLocalModules(); + void MatchRemoteModules(std::istream& fin, const char* stampDir); + void ConsiderModule(const char* name, const char* stampDir); + bool FindModule(std::string const& name, std::string& module); + + // Implement writing/checking methods required by superclass. + virtual bool WriteDependencies( + const char *src, const char *file, + std::ostream& makeDepends, std::ostream& internalDepends); + + // Actually write the depenencies to the streams. + bool WriteDependenciesReal(const char *obj, + cmDependsFortranSourceInfo const& info, + const char* mod_dir, const char* stamp_dir, + std::ostream& makeDepends, + std::ostream& internalDepends); + + // The source file from which to start scanning. + std::string SourceFile; + + // The include file search path. + std::vector const* IncludePath; + std::vector PPDefinitions; + + // Internal implementation details. + cmDependsFortranInternals* Internal; + +private: + cmDependsFortran(cmDependsFortran const&); // Purposely not implemented. + void operator=(cmDependsFortran const&); // Purposely not implemented. +}; + +#endif diff --git a/CMakeLua/Source/cmDependsFortranLexer.cxx b/CMakeLua/Source/cmDependsFortranLexer.cxx new file mode 100644 index 0000000..fe484bd --- /dev/null +++ b/CMakeLua/Source/cmDependsFortranLexer.cxx @@ -0,0 +1,2295 @@ +#line 2 "cmDependsFortranLexer.cxx" + +#line 4 "cmDependsFortranLexer.cxx" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 33 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmDependsFortran_yylex_init (yyscan_t* scanner); + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yyg->yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yyg->yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE cmDependsFortran_yyrestart(yyin ,yyscanner ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = yyg->yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via cmDependsFortran_yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ + ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] + +void cmDependsFortran_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmDependsFortran_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsFortran_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); +void cmDependsFortran_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsFortran_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsFortran_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +void cmDependsFortran_yypop_buffer_state (yyscan_t yyscanner ); + +static void cmDependsFortran_yyensure_buffer_stack (yyscan_t yyscanner ); +static void cmDependsFortran_yy_load_buffer_state (yyscan_t yyscanner ); +static void cmDependsFortran_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); + +#define YY_FLUSH_BUFFER cmDependsFortran_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) + +YY_BUFFER_STATE cmDependsFortran_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsFortran_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsFortran_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); + +void *cmDependsFortran_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmDependsFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmDependsFortran_yyfree (void * ,yyscan_t yyscanner ); + +#define yy_new_buffer cmDependsFortran_yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + cmDependsFortran_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmDependsFortran_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + cmDependsFortran_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmDependsFortran_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define cmDependsFortran_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +typedef int yy_state_type; + +#define yytext_ptr yytext_r + +static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner ); +static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yyg->yytext_ptr = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + yyg->yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yyg->yy_c_buf_p = yy_cp; + +#define YY_NUM_RULES 41 +#define YY_END_OF_BUFFER 42 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[155] = + { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 36, 38, 37, 40, 1, 36, 36, 31, 2, + 37, 34, 36, 35, 36, 35, 37, 36, 35, 9, + 8, 9, 4, 3, 36, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 31, 31, 32, + 34, 36, 35, 0, 39, 35, 0, 36, 0, 11, + 35, 0, 0, 5, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 0, 27, 0, 31, 31, 31, 31, + 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 22, 23, 0, 0, + 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 24, 19, 0, 0, 17, + 0, 18, 30, 25, 0, 0, 0, 0, 0, 15, + 20, 0, 16, 26, 0, 0, 7, 33, 7, 12, + 13, 0, 14, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 5, 6, 7, 8, 9, 1, 10, 11, 1, + 1, 12, 1, 4, 1, 1, 1, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 1, 14, 1, + 15, 16, 17, 1, 18, 18, 19, 20, 21, 22, + 18, 18, 23, 18, 18, 18, 18, 24, 18, 18, + 18, 18, 18, 18, 25, 18, 18, 18, 18, 18, + 1, 26, 1, 1, 27, 1, 18, 18, 28, 29, + + 30, 31, 18, 18, 32, 18, 18, 33, 18, 34, + 18, 18, 18, 18, 35, 18, 36, 18, 18, 18, + 18, 18, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[37] = + { 0, + 1, 2, 2, 3, 4, 3, 3, 1, 1, 3, + 3, 1, 5, 3, 3, 1, 1, 6, 6, 6, + 6, 6, 6, 6, 6, 1, 5, 6, 6, 6, + 6, 6, 6, 6, 6, 6 + } ; + +static yyconst flex_int16_t yy_base[163] = + { 0, + 0, 0, 0, 0, 276, 34, 37, 39, 48, 49, + 277, 0, 356, 356, 273, 356, 62, 97, 63, 356, + 356, 259, 257, 0, 36, 129, 267, 156, 183, 356, + 266, 69, 356, 356, 0, 267, 356, 218, 239, 10, + 26, 234, 253, 246, 242, 42, 46, 76, 98, 356, + 356, 82, 0, 104, 356, 0, 260, 285, 261, 356, + 0, 258, 108, 83, 231, 80, 232, 61, 232, 230, + 235, 236, 84, 224, 89, 224, 129, 148, 219, 225, + 131, 217, 244, 241, 138, 356, 213, 213, 213, 210, + 211, 211, 206, 208, 214, 215, 203, 203, 200, 196, + + 152, 147, 151, 173, 172, 142, 356, 356, 144, 143, + 141, 134, 136, 142, 140, 356, 356, 130, 129, 122, + 113, 114, 139, 123, 96, 356, 356, 94, 95, 356, + 100, 356, 356, 356, 89, 76, 53, 94, 0, 356, + 356, 53, 356, 356, 40, 32, 356, 356, 356, 356, + 356, 15, 356, 356, 312, 318, 323, 325, 331, 337, + 343, 349 + } ; + +static yyconst flex_int16_t yy_def[163] = + { 0, + 154, 1, 1, 1, 1, 1, 155, 155, 155, 155, + 154, 156, 154, 154, 157, 154, 156, 156, 154, 154, + 154, 154, 156, 158, 156, 158, 154, 159, 154, 154, + 154, 154, 154, 154, 156, 157, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 160, 154, + 154, 156, 158, 154, 154, 26, 154, 159, 159, 154, + 29, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 160, 160, 160, 160, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 161, 162, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 0, 154, 154, 154, 154, 154, 154, + 154, 154 + } ; + +static yyconst flex_int16_t yy_nxt[393] = + { 0, + 12, 13, 14, 13, 13, 15, 16, 17, 18, 19, + 20, 12, 12, 21, 22, 12, 23, 24, 24, 24, + 24, 24, 24, 24, 24, 25, 26, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 27, 54, 55, 31, + 54, 31, 66, 67, 153, 28, 32, 33, 32, 33, + 31, 31, 29, 29, 34, 34, 68, 32, 32, 69, + 152, 29, 29, 38, 48, 48, 38, 48, 49, 151, + 63, 64, 50, 63, 73, 74, 75, 48, 48, 76, + 48, 49, 150, 81, 85, 50, 81, 85, 146, 91, + 39, 40, 86, 41, 92, 148, 148, 42, 43, 78, + + 48, 43, 78, 79, 145, 54, 55, 80, 54, 63, + 64, 88, 63, 82, 89, 97, 44, 100, 98, 144, + 143, 45, 101, 142, 141, 140, 46, 139, 47, 35, + 78, 48, 81, 78, 79, 81, 35, 35, 80, 85, + 35, 56, 85, 138, 35, 35, 137, 86, 136, 78, + 48, 135, 78, 79, 35, 56, 58, 80, 60, 134, + 133, 132, 82, 58, 58, 131, 130, 58, 58, 129, + 128, 58, 58, 127, 126, 125, 124, 123, 122, 121, + 120, 58, 58, 59, 59, 60, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 61, 59, 59, 59, 59, + + 61, 61, 61, 61, 61, 61, 61, 61, 59, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, + 78, 48, 38, 78, 79, 119, 78, 48, 80, 78, + 79, 118, 117, 116, 80, 115, 114, 113, 112, 111, + 110, 109, 108, 107, 106, 105, 39, 40, 104, 41, + 103, 102, 99, 42, 43, 96, 95, 43, 94, 93, + 90, 87, 84, 60, 83, 72, 71, 70, 65, 37, + 62, 57, 44, 52, 51, 37, 154, 45, 27, 154, + 154, 154, 46, 154, 47, 58, 154, 60, 154, 154, + 154, 154, 58, 58, 154, 154, 58, 58, 154, 154, + + 58, 58, 154, 154, 154, 154, 154, 154, 154, 154, + 58, 58, 30, 30, 30, 30, 30, 30, 35, 154, + 154, 154, 35, 36, 36, 36, 36, 36, 36, 53, + 53, 59, 59, 59, 59, 59, 59, 77, 77, 77, + 77, 77, 77, 147, 147, 147, 154, 147, 147, 149, + 154, 149, 154, 149, 149, 11, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154 + + } ; + +static yyconst flex_int16_t yy_chk[393] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 6, 25, 25, 7, + 25, 8, 40, 40, 152, 6, 7, 7, 8, 8, + 9, 10, 6, 6, 9, 10, 41, 9, 10, 41, + 146, 6, 6, 17, 19, 19, 17, 19, 19, 145, + 32, 32, 19, 32, 46, 46, 47, 48, 48, 47, + 48, 48, 142, 52, 64, 48, 52, 64, 137, 68, + 17, 17, 64, 17, 68, 138, 138, 17, 18, 49, + + 49, 18, 49, 49, 136, 54, 54, 49, 54, 63, + 63, 66, 63, 52, 66, 73, 18, 75, 73, 135, + 131, 18, 75, 129, 128, 125, 18, 124, 18, 26, + 77, 77, 81, 77, 77, 81, 26, 26, 77, 85, + 26, 26, 85, 123, 26, 26, 122, 85, 121, 78, + 78, 120, 78, 78, 26, 26, 28, 78, 28, 119, + 118, 115, 81, 28, 28, 114, 113, 28, 28, 112, + 111, 28, 28, 110, 109, 106, 105, 104, 103, 102, + 101, 28, 28, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 38, + 79, 79, 38, 79, 79, 100, 80, 80, 79, 80, + 80, 99, 98, 97, 80, 96, 95, 94, 93, 92, + 91, 90, 89, 88, 87, 84, 38, 38, 83, 38, + 82, 76, 74, 38, 43, 72, 71, 43, 70, 69, + 67, 65, 62, 59, 57, 45, 44, 42, 39, 36, + 31, 27, 43, 23, 22, 15, 11, 43, 5, 0, + 0, 0, 43, 0, 43, 58, 0, 58, 0, 0, + 0, 0, 58, 58, 0, 0, 58, 58, 0, 0, + + 58, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 58, 58, 155, 155, 155, 155, 155, 155, 156, 0, + 0, 0, 156, 157, 157, 157, 157, 157, 157, 158, + 158, 159, 159, 159, 159, 159, 159, 160, 160, 160, + 160, 160, 160, 161, 161, 161, 0, 161, 161, 162, + 0, 162, 0, 162, 162, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154 + + } ; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +#line 1 "cmDependsFortranLexer.in.l" +#line 2 "cmDependsFortranLexer.in.l" +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortranLexer.cxx,v $ + Language: C++ + Date: $Date: 2007/10/03 19:41:39 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/*------------------------------------------------------------------------- + Portions of this source have been derived from makefdep90 version 2.8.8, + + Copyright (C) 2000,2001 Erik Edelmann . + + The code was originally distributed under the GPL but permission + from the copyright holder has been obtained to distribute this + derived work under the CMake license. +-------------------------------------------------------------------------*/ + +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex -i --prefix=cmDependsFortran_yy --header-file=cmDependsFortranLexer.h -ocmDependsFortranLexer.cxx cmDependsFortranLexer.in.l + +Modify cmDependsFortranLexer.cxx: + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmDependsFortran_yyalloc, cmDependsFortran_yyrealloc, cmDependsFortran_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmDependsFortranLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#define cmDependsFortranLexer_cxx +#include "cmDependsFortranParser.h" /* Interface to parser object. */ + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = cmDependsFortranParser_Input(yyextra, buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmDependsFortranParserTokens.h" + +/*--------------------------------------------------------------------------*/ + + +#line 643 "cmDependsFortranLexer.cxx" + +#define INITIAL 0 +#define free_fmt 1 +#define fixed_fmt 2 +#define str_sq 3 +#define str_dq 4 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Holds the entire state of the reentrant scanner. */ +struct yyguts_t + { + + /* User-defined. Not touched by flex. */ + YY_EXTRA_TYPE yyextra_r; + + /* The rest are the same as the globals declared in the non-reentrant scanner. */ + FILE *yyin_r, *yyout_r; + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + char yy_hold_char; + int yy_n_chars; + int yyleng_r; + char *yy_c_buf_p; + int yy_init; + int yy_start; + int yy_did_buffer_switch_on_eof; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int *yy_start_stack; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + int yylineno_r; + int yy_flex_debug_r; + + char *yytext_r; + int yy_more_flag; + int yy_more_len; + + }; /* end struct yyguts_t */ + +static int yy_init_globals (yyscan_t yyscanner ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmDependsFortran_yylex_destroy (yyscan_t yyscanner ); + +int cmDependsFortran_yyget_debug (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmDependsFortran_yyget_extra (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *cmDependsFortran_yyget_in (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmDependsFortran_yyget_out (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmDependsFortran_yyget_leng (yyscan_t yyscanner ); + +char *cmDependsFortran_yyget_text (yyscan_t yyscanner ); + +int cmDependsFortran_yyget_lineno (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmDependsFortran_yywrap (yyscan_t yyscanner ); +#else +extern int cmDependsFortran_yywrap (yyscan_t yyscanner ); +#endif +#endif + + static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner); + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (yyscan_t yyscanner ); +#else +static int input (yyscan_t yyscanner ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmDependsFortran_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmDependsFortran_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + if ( yyleng > 0 ) \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ + (yytext[yyleng - 1] == '\n'); \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + +#line 75 "cmDependsFortranLexer.in.l" + + +#line 870 "cmDependsFortranLexer.cxx" + + if ( !yyg->yy_init ) + { + yyg->yy_init = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yyg->yy_start ) + yyg->yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + cmDependsFortran_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmDependsFortran_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmDependsFortran_yy_load_buffer_state(yyscanner ); + } + + for(;;) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; + yy_current_state += YY_AT_BOL(); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 155 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 356 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 77 "cmDependsFortranLexer.in.l" +{ + cmDependsFortranParser_StringStart(yyextra); + cmDependsFortranParser_SetOldStartcond(yyextra, YY_START); + BEGIN(str_dq); +} + YY_BREAK +case 2: +YY_RULE_SETUP +#line 83 "cmDependsFortranLexer.in.l" +{ + cmDependsFortranParser_StringStart(yyextra); + cmDependsFortranParser_SetOldStartcond(yyextra, YY_START); + BEGIN(str_sq); +} + YY_BREAK +case 3: +#line 90 "cmDependsFortranLexer.in.l" +case 4: +YY_RULE_SETUP +#line 90 "cmDependsFortranLexer.in.l" +{ + BEGIN(cmDependsFortranParser_GetOldStartcond(yyextra) ); + yylvalp->string = strdup(cmDependsFortranParser_StringEnd(yyextra)); + return STRING; +} +case 5: +/* rule 5 can match eol */ +#line 97 "cmDependsFortranLexer.in.l" +case 6: +/* rule 6 can match eol */ +YY_RULE_SETUP +#line 97 "cmDependsFortranLexer.in.l" +/* Ignore (continued strings, free fmt) */ + YY_BREAK +case 7: +/* rule 7 can match eol */ +YY_RULE_SETUP +#line 99 "cmDependsFortranLexer.in.l" +{ + if (cmDependsFortranParser_GetOldStartcond(yyextra) == fixed_fmt) + ; /* Ignore (cont. strings, fixed fmt) */ + else + { + unput(yytext[strlen(yytext)-1]); + } +} + YY_BREAK +case 8: +/* rule 8 can match eol */ +YY_RULE_SETUP +#line 109 "cmDependsFortranLexer.in.l" +{ + unput ('\n'); + BEGIN(INITIAL); + return UNTERMINATED_STRING; +} +case 9: +YY_RULE_SETUP +#line 115 "cmDependsFortranLexer.in.l" +{ + cmDependsFortranParser_StringAppend(yyextra, yytext[0]); +} + YY_BREAK +case 10: +/* rule 10 can match eol */ +YY_RULE_SETUP +#line 119 "cmDependsFortranLexer.in.l" +{ return EOSTMT; } /* Treat comments like */ +case 11: +/* rule 11 can match eol */ +YY_RULE_SETUP +#line 120 "cmDependsFortranLexer.in.l" +{ return EOSTMT; } /* empty lines */ +case 12: +YY_RULE_SETUP +#line 122 "cmDependsFortranLexer.in.l" +{ return CPP_INCLUDE; } +case 13: +YY_RULE_SETUP +#line 123 "cmDependsFortranLexer.in.l" +{ return F90PPR_INCLUDE; } +case 14: +YY_RULE_SETUP +#line 124 "cmDependsFortranLexer.in.l" +{ return COCO_INCLUDE; } +case 15: +YY_RULE_SETUP +#line 126 "cmDependsFortranLexer.in.l" +{ return CPP_DEFINE; } +case 16: +YY_RULE_SETUP +#line 127 "cmDependsFortranLexer.in.l" +{ return F90PPR_DEFINE; } +case 17: +YY_RULE_SETUP +#line 129 "cmDependsFortranLexer.in.l" +{ return CPP_UNDEF; } +case 18: +YY_RULE_SETUP +#line 130 "cmDependsFortranLexer.in.l" +{ return F90PPR_UNDEF; } +case 19: +YY_RULE_SETUP +#line 132 "cmDependsFortranLexer.in.l" +{ return CPP_IFDEF; } +case 20: +YY_RULE_SETUP +#line 133 "cmDependsFortranLexer.in.l" +{ return CPP_IFNDEF; } +case 21: +YY_RULE_SETUP +#line 134 "cmDependsFortranLexer.in.l" +{ return CPP_IF; } +case 22: +YY_RULE_SETUP +#line 135 "cmDependsFortranLexer.in.l" +{ return CPP_ELIF; } +case 23: +YY_RULE_SETUP +#line 136 "cmDependsFortranLexer.in.l" +{ return CPP_ELSE; } +case 24: +YY_RULE_SETUP +#line 137 "cmDependsFortranLexer.in.l" +{ return CPP_ENDIF; } +case 25: +YY_RULE_SETUP +#line 139 "cmDependsFortranLexer.in.l" +{ return F90PPR_IFDEF; } +case 26: +YY_RULE_SETUP +#line 140 "cmDependsFortranLexer.in.l" +{ return F90PPR_IFNDEF; } +case 27: +YY_RULE_SETUP +#line 141 "cmDependsFortranLexer.in.l" +{ return F90PPR_IF; } +case 28: +YY_RULE_SETUP +#line 142 "cmDependsFortranLexer.in.l" +{ return F90PPR_ELIF; } +case 29: +YY_RULE_SETUP +#line 143 "cmDependsFortranLexer.in.l" +{ return F90PPR_ELSE; } +case 30: +YY_RULE_SETUP +#line 144 "cmDependsFortranLexer.in.l" +{ return F90PPR_ENDIF; } +/* Line continuations, possible involving comments. */ +case 31: +/* rule 31 can match eol */ +YY_RULE_SETUP +#line 147 "cmDependsFortranLexer.in.l" + + YY_BREAK +case 32: +/* rule 32 can match eol */ +YY_RULE_SETUP +#line 148 "cmDependsFortranLexer.in.l" + + YY_BREAK +case 33: +/* rule 33 can match eol */ +YY_RULE_SETUP +#line 150 "cmDependsFortranLexer.in.l" +{ return GARBAGE; } +case 34: +YY_RULE_SETUP +#line 152 "cmDependsFortranLexer.in.l" +{ return ASSIGNMENT_OP; } +case 35: +YY_RULE_SETUP +#line 154 "cmDependsFortranLexer.in.l" +{ + yylvalp->string = strdup(yytext); + return WORD; +} +case 36: +YY_RULE_SETUP +#line 159 "cmDependsFortranLexer.in.l" +{ return GARBAGE; } +case 37: +/* rule 37 can match eol */ +YY_RULE_SETUP +#line 161 "cmDependsFortranLexer.in.l" +{ return EOSTMT; } +case 38: +YY_RULE_SETUP +#line 164 "cmDependsFortranLexer.in.l" +/* Ignore */ + YY_BREAK +case 39: +/* rule 39 can match eol */ +YY_RULE_SETUP +#line 165 "cmDependsFortranLexer.in.l" +/* Ignore line-endings preceeded by \ */ + YY_BREAK +case 40: +YY_RULE_SETUP +#line 167 "cmDependsFortranLexer.in.l" +{ return *yytext; } +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(free_fmt): +case YY_STATE_EOF(fixed_fmt): +case YY_STATE_EOF(str_sq): +case YY_STATE_EOF(str_dq): +#line 169 "cmDependsFortranLexer.in.l" +{ + if(!cmDependsFortranParser_FilePop(yyextra) ) + { + return YY_NULL; + } +} + YY_BREAK +case 41: +YY_RULE_SETUP +#line 176 "cmDependsFortranLexer.in.l" +ECHO; + YY_BREAK +#line 1206 "cmDependsFortranLexer.cxx" + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * cmDependsFortran_yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yyg->yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yyg->yy_c_buf_p; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if ( cmDependsFortran_yywrap(yyscanner ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of cmDependsFortran_yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + cmDependsFortran_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, (size_t) num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if ( yyg->yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + cmDependsFortran_yyrestart(yyin ,yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_current_state = yyg->yy_start; + yy_current_state += YY_AT_BOL(); + + for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 155 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +{ + register int yy_is_jam; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 155 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 154); + + return yy_is_jam ? 0 : yy_current_state; +} + + static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner) +{ + register char *yy_cp; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_cp = yyg->yy_c_buf_p; + + /* undo effects of setting up yytext */ + *yy_cp = yyg->yy_hold_char; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register int number_to_move = yyg->yy_n_chars + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + register char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + yyg->yytext_ptr = yy_bp; + yyg->yy_hold_char = *yy_cp; + yyg->yy_c_buf_p = yy_cp; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (yyscan_t yyscanner) +#else + static int input (yyscan_t yyscanner) +#endif + +{ + int c; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + cmDependsFortran_yyrestart(yyin ,yyscanner); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( cmDependsFortran_yywrap(yyscanner ) ) + return EOF; + + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(yyscanner); +#else + return input(yyscanner); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; + + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * @param yyscanner The scanner object. + * @note This function does not reset the start condition to @c INITIAL . + */ + void cmDependsFortran_yyrestart (FILE * input_file , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! YY_CURRENT_BUFFER ){ + cmDependsFortran_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmDependsFortran_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmDependsFortran_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); + cmDependsFortran_yy_load_buffer_state(yyscanner ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * @param yyscanner The scanner object. + */ + void cmDependsFortran_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* TODO. We should be able to replace this entire function body + * with + * cmDependsFortran_yypop_buffer_state(); + * cmDependsFortran_yypush_buffer_state(new_buffer); + */ + cmDependsFortran_yyensure_buffer_stack (yyscanner); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + cmDependsFortran_yy_load_buffer_state(yyscanner ); + + /* We don't actually know whether we did this switch during + * EOF (cmDependsFortran_yywrap()) processing, but the only time this flag + * is looked at is after cmDependsFortran_yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; +} + +static void cmDependsFortran_yy_load_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * @param yyscanner The scanner object. + * @return the allocated buffer state. + */ + YY_BUFFER_STATE cmDependsFortran_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) cmDependsFortran_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsFortran_yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) cmDependsFortran_yyalloc(b->yy_buf_size + 2 ,yyscanner ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsFortran_yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + cmDependsFortran_yy_init_buffer(b,file ,yyscanner); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with cmDependsFortran_yy_create_buffer() + * @param yyscanner The scanner object. + */ + void cmDependsFortran_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + cmDependsFortran_yyfree((void *) b->yy_ch_buf ,yyscanner ); + + cmDependsFortran_yyfree((void *) b ,yyscanner ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a cmDependsFortran_yyrestart() or at EOF. + */ + static void cmDependsFortran_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) + +{ + int oerrno = errno; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + cmDependsFortran_yy_flush_buffer(b ,yyscanner); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then cmDependsFortran_yy_init_buffer was _probably_ + * called from cmDependsFortran_yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * @param yyscanner The scanner object. + */ + void cmDependsFortran_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + cmDependsFortran_yy_load_buffer_state(yyscanner ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * @param yyscanner The scanner object. + */ +void cmDependsFortran_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (new_buffer == NULL) + return; + + cmDependsFortran_yyensure_buffer_stack(yyscanner); + + /* This block is copied from cmDependsFortran_yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from cmDependsFortran_yy_switch_to_buffer. */ + cmDependsFortran_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * @param yyscanner The scanner object. + */ +void cmDependsFortran_yypop_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + cmDependsFortran_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) { + cmDependsFortran_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void cmDependsFortran_yyensure_buffer_stack (yyscan_t yyscanner) +{ + int num_to_alloc; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (!yyg->yy_buffer_stack) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmDependsFortran_yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmDependsFortran_yyrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + /* zero only the new slots.*/ + memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); + yyg->yy_buffer_stack_max = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmDependsFortran_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) cmDependsFortran_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsFortran_yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + cmDependsFortran_yy_switch_to_buffer(b ,yyscanner ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to cmDependsFortran_yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * cmDependsFortran_yy_scan_bytes() instead. + */ +YY_BUFFER_STATE cmDependsFortran_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) +{ + + return cmDependsFortran_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner); +} + +/** Setup the input buffer state to scan the given bytes. The next call to cmDependsFortran_yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmDependsFortran_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) cmDependsFortran_yyalloc(n ,yyscanner ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsFortran_yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = cmDependsFortran_yy_scan_buffer(buf,n ,yyscanner); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in cmDependsFortran_yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg , yyscan_t) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = yyg->yy_hold_char; \ + yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ + yyg->yy_hold_char = *yyg->yy_c_buf_p; \ + *yyg->yy_c_buf_p = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the user-defined data for this scanner. + * @param yyscanner The scanner object. + */ +YY_EXTRA_TYPE cmDependsFortran_yyget_extra (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyextra; +} + +/** Get the current line number. + * @param yyscanner The scanner object. + */ +int cmDependsFortran_yyget_lineno (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yylineno; +} + +/** Get the current column number. + * @param yyscanner The scanner object. + */ +int cmDependsFortran_yyget_column (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yycolumn; +} + +/** Get the input stream. + * @param yyscanner The scanner object. + */ +FILE *cmDependsFortran_yyget_in (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyin; +} + +/** Get the output stream. + * @param yyscanner The scanner object. + */ +FILE *cmDependsFortran_yyget_out (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyout; +} + +/** Get the length of the current token. + * @param yyscanner The scanner object. + */ +int cmDependsFortran_yyget_leng (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyleng; +} + +/** Get the current token. + * @param yyscanner The scanner object. + */ + +char *cmDependsFortran_yyget_text (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yytext; +} + +/** Set the user-defined data. This data is never touched by the scanner. + * @param user_defined The data to be associated with this scanner. + * @param yyscanner The scanner object. + */ +void cmDependsFortran_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyextra = user_defined ; +} + +/** Set the current line number. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmDependsFortran_yyset_lineno (int line_number , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmDependsFortran_yyset_lineno called with no buffer" , yyscanner); + + yylineno = line_number; +} + +/** Set the current column. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmDependsFortran_yyset_column (int column_no , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* column is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmDependsFortran_yyset_column called with no buffer" , yyscanner); + + yycolumn = column_no; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * @param yyscanner The scanner object. + * @see cmDependsFortran_yy_switch_to_buffer + */ +void cmDependsFortran_yyset_in (FILE * in_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyin = in_str ; +} + +void cmDependsFortran_yyset_out (FILE * out_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyout = out_str ; +} + +int cmDependsFortran_yyget_debug (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yy_flex_debug; +} + +void cmDependsFortran_yyset_debug (int bdebug , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yy_flex_debug = bdebug ; +} + +/* Accessor methods for yylval and yylloc */ + +/* User-visible API */ + +/* cmDependsFortran_yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. + */ + +int cmDependsFortran_yylex_init(yyscan_t* ptr_yy_globals) + +{ + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) cmDependsFortran_yyalloc ( sizeof( struct yyguts_t ), NULL ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ + memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + + return yy_init_globals ( *ptr_yy_globals ); +} + +static int yy_init_globals (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from cmDependsFortran_yylex_destroy(), so don't allocate here. + */ + + yyg->yy_buffer_stack = 0; + yyg->yy_buffer_stack_top = 0; + yyg->yy_buffer_stack_max = 0; + yyg->yy_c_buf_p = (char *) 0; + yyg->yy_init = 0; + yyg->yy_start = 0; + + yyg->yy_start_stack_ptr = 0; + yyg->yy_start_stack_depth = 0; + yyg->yy_start_stack = NULL; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * cmDependsFortran_yylex_init() + */ + return 0; +} + +/* cmDependsFortran_yylex_destroy is for both reentrant and non-reentrant scanners. */ +int cmDependsFortran_yylex_destroy (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + cmDependsFortran_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); + YY_CURRENT_BUFFER_LVALUE = NULL; + cmDependsFortran_yypop_buffer_state(yyscanner); + } + + /* Destroy the stack itself. */ + cmDependsFortran_yyfree(yyg->yy_buffer_stack ,yyscanner); + yyg->yy_buffer_stack = NULL; + + /* Destroy the start condition stack. */ + cmDependsFortran_yyfree(yyg->yy_start_stack ,yyscanner ); + yyg->yy_start_stack = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * cmDependsFortran_yylex() is called, initialization will occur. */ + yy_init_globals( yyscanner); + + /* Destroy the main struct (reentrant only). */ + cmDependsFortran_yyfree ( yyscanner , yyscanner ); + yyscanner = NULL; + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *cmDependsFortran_yyalloc (yy_size_t size , yyscan_t) +{ + return (void *) malloc( size ); +} + +void *cmDependsFortran_yyrealloc (void * ptr, yy_size_t size , yyscan_t) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void cmDependsFortran_yyfree (void * ptr , yyscan_t) +{ + free( (char *) ptr ); /* see cmDependsFortran_yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 176 "cmDependsFortranLexer.in.l" + + + +/*--------------------------------------------------------------------------*/ +YY_BUFFER_STATE cmDependsFortranLexer_GetCurrentBuffer(yyscan_t yyscanner) +{ + /* Hack into the internal flex-generated scanner to get the buffer. */ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return YY_CURRENT_BUFFER; +} + diff --git a/CMakeLua/Source/cmDependsFortranLexer.h b/CMakeLua/Source/cmDependsFortranLexer.h new file mode 100644 index 0000000..9b38a7b --- /dev/null +++ b/CMakeLua/Source/cmDependsFortranLexer.h @@ -0,0 +1,336 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortranLexer.h,v $ + Language: C++ + Date: $Date: 2007/10/03 19:41:39 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsFortran_yyHEADER_H +#define cmDependsFortran_yyHEADER_H 1 +#define cmDependsFortran_yyIN_HEADER 1 + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 33 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmDependsFortran_yylex_init (yyscan_t* scanner); + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void cmDependsFortran_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmDependsFortran_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsFortran_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); +void cmDependsFortran_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsFortran_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsFortran_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +void cmDependsFortran_yypop_buffer_state (yyscan_t yyscanner ); + +YY_BUFFER_STATE cmDependsFortran_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsFortran_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsFortran_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); + +void *cmDependsFortran_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmDependsFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmDependsFortran_yyfree (void * ,yyscan_t yyscanner ); + +/* Begin user sect3 */ + +#define cmDependsFortran_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +#define yytext_ptr yytext_r + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 +#define free_fmt 1 +#define fixed_fmt 2 +#define str_sq 3 +#define str_dq 4 + +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmDependsFortran_yylex_destroy (yyscan_t yyscanner ); + +int cmDependsFortran_yyget_debug (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmDependsFortran_yyget_extra (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *cmDependsFortran_yyget_in (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmDependsFortran_yyget_out (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmDependsFortran_yyget_leng (yyscan_t yyscanner ); + +char *cmDependsFortran_yyget_text (yyscan_t yyscanner ); + +int cmDependsFortran_yyget_lineno (yyscan_t yyscanner ); + +void cmDependsFortran_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmDependsFortran_yywrap (yyscan_t yyscanner ); +#else +extern int cmDependsFortran_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmDependsFortran_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmDependsFortran_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + +#undef cmDependsFortran_yyIN_HEADER +#endif /* cmDependsFortran_yyHEADER_H */ diff --git a/CMakeLua/Source/cmDependsFortranLexer.in.l b/CMakeLua/Source/cmDependsFortranLexer.in.l new file mode 100644 index 0000000..e52da45 --- /dev/null +++ b/CMakeLua/Source/cmDependsFortranLexer.in.l @@ -0,0 +1,184 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortranLexer.in.l,v $ + Language: C++ + Date: $Date: 2007/10/03 19:41:39 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/*------------------------------------------------------------------------- + Portions of this source have been derived from makefdep90 version 2.8.8, + + Copyright (C) 2000,2001 Erik Edelmann . + + The code was originally distributed under the GPL but permission + from the copyright holder has been obtained to distribute this + derived work under the CMake license. +-------------------------------------------------------------------------*/ + +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex -i --prefix=cmDependsFortran_yy --header-file=cmDependsFortranLexer.h -ocmDependsFortranLexer.cxx cmDependsFortranLexer.in.l + +Modify cmDependsFortranLexer.cxx: + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmDependsFortran_yyalloc, cmDependsFortran_yyrealloc, cmDependsFortran_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmDependsFortranLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#define cmDependsFortranLexer_cxx +#include "cmDependsFortranParser.h" /* Interface to parser object. */ + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = cmDependsFortranParser_Input(yyextra, buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmDependsFortranParserTokens.h" + +/*--------------------------------------------------------------------------*/ +%} + + +%option reentrant +%option noyywrap +%pointer + +%s free_fmt fixed_fmt +%x str_sq str_dq + +%% + +\" { + cmDependsFortranParser_StringStart(yyextra); + cmDependsFortranParser_SetOldStartcond(yyextra, YY_START); + BEGIN(str_dq); +} + +' { + cmDependsFortranParser_StringStart(yyextra); + cmDependsFortranParser_SetOldStartcond(yyextra, YY_START); + BEGIN(str_sq); +} + +\" | +' { + BEGIN(cmDependsFortranParser_GetOldStartcond(yyextra) ); + yylvalp->string = strdup(cmDependsFortranParser_StringEnd(yyextra)); + return STRING; +} + +&[ \t]*\n | +&[ \t]*\n[ \t]*& /* Ignore (continued strings, free fmt) */ + +\n[ ]{5}[^ \t\n] { + if (cmDependsFortranParser_GetOldStartcond(yyextra) == fixed_fmt) + ; /* Ignore (cont. strings, fixed fmt) */ + else + { + unput(yytext[strlen(yytext)-1]); + } +} + + +\n { + unput ('\n'); + BEGIN(INITIAL); + return UNTERMINATED_STRING; +} + +. { + cmDependsFortranParser_StringAppend(yyextra, yytext[0]); +} + +!.*\n { return EOSTMT; } /* Treat comments like */ +^[cC*dD].*\n { return EOSTMT; } /* empty lines */ + +#[ \t]*include { return CPP_INCLUDE; } +\$[ \t]*include { return F90PPR_INCLUDE; } +\?\?[ \t]*include { return COCO_INCLUDE; } + +#[ \t]*define { return CPP_DEFINE; } +\$[ \t]*DEFINE { return F90PPR_DEFINE; } + +#[ \t]*undef { return CPP_UNDEF; } +\$[ \t]*UNDEF { return F90PPR_UNDEF; } + +#[ \t]*ifdef { return CPP_IFDEF; } +#[ \t]*ifndef { return CPP_IFNDEF; } +#[ \t]*if { return CPP_IF; } +#[ \t]*elif { return CPP_ELIF; } +#[ \t]*else { return CPP_ELSE; } +#[ \t]*endif { return CPP_ENDIF; } + +$[ \t]*ifdef { return F90PPR_IFDEF; } +$[ \t]*ifndef { return F90PPR_IFNDEF; } +$[ \t]*if { return F90PPR_IF; } +$[ \t]*elif { return F90PPR_ELIF; } +$[ \t]*else { return F90PPR_ELSE; } +$[ \t]*endif { return F90PPR_ENDIF; } + + /* Line continuations, possible involving comments. */ +&([ \t\n]*|!.*)* +&([ \t\n]*|!.*)*& + +\n[ ]{5}[^ ] { return GARBAGE; } + +=|=> { return ASSIGNMENT_OP; } + +[a-zA-Z_][a-zA-Z_0-9]* { + yylvalp->string = strdup(yytext); + return WORD; +} + +[^ \t\n\r;,!'"a-zA-Z=&]+ { return GARBAGE; } + +;|\n { return EOSTMT; } + + +[ \t\r,] /* Ignore */ +\\[ \t]*\n /* Ignore line-endings preceeded by \ */ + +. { return *yytext; } + +<> { + if(!cmDependsFortranParser_FilePop(yyextra) ) + { + return YY_NULL; + } +} + +%% + +/*--------------------------------------------------------------------------*/ +YY_BUFFER_STATE cmDependsFortranLexer_GetCurrentBuffer(yyscan_t yyscanner) +{ + /* Hack into the internal flex-generated scanner to get the buffer. */ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return YY_CURRENT_BUFFER; +} diff --git a/CMakeLua/Source/cmDependsFortranParser.cxx b/CMakeLua/Source/cmDependsFortranParser.cxx new file mode 100644 index 0000000..39a1c2d --- /dev/null +++ b/CMakeLua/Source/cmDependsFortranParser.cxx @@ -0,0 +1,1966 @@ +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* Substitute the variable and function names. */ +#define yyparse cmDependsFortran_yyparse +#define yylex cmDependsFortran_yylex +#define yyerror cmDependsFortran_yyerror +#define yylval cmDependsFortran_yylval +#define yychar cmDependsFortran_yychar +#define yydebug cmDependsFortran_yydebug +#define yynerrs cmDependsFortran_yynerrs + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + EOSTMT = 258, + ASSIGNMENT_OP = 259, + GARBAGE = 260, + CPP_INCLUDE = 261, + F90PPR_INCLUDE = 262, + COCO_INCLUDE = 263, + F90PPR_DEFINE = 264, + CPP_DEFINE = 265, + F90PPR_UNDEF = 266, + CPP_UNDEF = 267, + CPP_IFDEF = 268, + CPP_IFNDEF = 269, + CPP_IF = 270, + CPP_ELSE = 271, + CPP_ELIF = 272, + CPP_ENDIF = 273, + F90PPR_IFDEF = 274, + F90PPR_IFNDEF = 275, + F90PPR_IF = 276, + F90PPR_ELSE = 277, + F90PPR_ELIF = 278, + F90PPR_ENDIF = 279, + CPP_TOENDL = 280, + UNTERMINATED_STRING = 281, + STRING = 282, + WORD = 283 + }; +#endif +/* Tokens. */ +#define EOSTMT 258 +#define ASSIGNMENT_OP 259 +#define GARBAGE 260 +#define CPP_INCLUDE 261 +#define F90PPR_INCLUDE 262 +#define COCO_INCLUDE 263 +#define F90PPR_DEFINE 264 +#define CPP_DEFINE 265 +#define F90PPR_UNDEF 266 +#define CPP_UNDEF 267 +#define CPP_IFDEF 268 +#define CPP_IFNDEF 269 +#define CPP_IF 270 +#define CPP_ELSE 271 +#define CPP_ELIF 272 +#define CPP_ENDIF 273 +#define F90PPR_IFDEF 274 +#define F90PPR_IFNDEF 275 +#define F90PPR_IF 276 +#define F90PPR_ELSE 277 +#define F90PPR_ELIF 278 +#define F90PPR_ENDIF 279 +#define CPP_TOENDL 280 +#define UNTERMINATED_STRING 281 +#define STRING 282 +#define WORD 283 + + + + +/* Copy the first part of user declarations. */ +#line 1 "cmDependsFortranParser.y" + +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortranParser.cxx,v $ + Language: C++ + Date: $Date: 2008/01/08 04:08:42 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/*------------------------------------------------------------------------- + Portions of this source have been derived from makefdep90 version 2.6.2, + + Copyright (C) 2000,2001 Erik Edelmann . + + The code was originally distributed under the GPL but permission + from the copyright holder has been obtained to distribute this + derived work under the CMake license. +-------------------------------------------------------------------------*/ + +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmDependsFortran_yy + --defines=cmDependsFortranParserTokens.h + -ocmDependsFortranParser.cxx + cmDependsFortranParser.y + +Modify cmDependsFortranParser.cxx: + - remove TABs + - Remove the yyerrorlab block in range ["goto yyerrlab1", "yyerrlab1:"] +*/ + +/*-------------------------------------------------------------------------*/ +#define cmDependsFortranParser_cxx +#include "cmDependsFortranParser.h" /* Interface to parser object. */ +#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmDependsFortran_yyerror(x) \ + cmDependsFortranError(yyscanner, x) + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Helper function to forward error callback. */ +static void cmDependsFortranError(yyscan_t yyscanner, const char* message) +{ + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_Error(parser, message); +} + +static char charmap[] = { + '\000', '\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', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +inline int strcasecmpCM(const char *s1, const char *s2) +{ + const char *cm = charmap; + const char* us1 = s1; + const char* us2 = s2; + + while(cm[*us1] == cm[*us2++]) + if(*us1++ == '\0') + { + return(0); + } + return(cm[*us1] - cm[*--us2]); +} + +static bool cmDependsFortranParserIsKeyword(const char* word, + const char* keyword) +{ + return strcasecmpCM(word, keyword) == 0; +} + +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch contains default but no case. */ +# pragma warning (disable: 4701) /* Local variable may not be initialized. */ +# pragma warning (disable: 4702) /* Unreachable code. */ +# pragma warning (disable: 4127) /* Conditional expression is constant. */ +# pragma warning (disable: 4244) /* Conversion to smaller type, data loss. */ +#endif + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 141 "cmDependsFortranParser.y" +{ + char* string; +} +/* Line 187 of yacc.c. */ +#line 301 "cmDependsFortranParser.cxx" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 216 of yacc.c. */ +#line 314 "cmDependsFortranParser.cxx" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 2 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 139 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 29 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 16 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 48 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 82 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 283 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint8 yyprhs[] = +{ + 0, 0, 3, 4, 7, 9, 11, 16, 19, 24, + 29, 34, 39, 44, 49, 54, 58, 62, 66, 70, + 75, 79, 81, 83, 85, 87, 89, 91, 93, 95, + 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, + 117, 119, 121, 122, 125, 127, 129, 131, 133 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int8 yyrhs[] = +{ + 30, 0, -1, -1, 30, 31, -1, 33, -1, 32, + -1, 28, 4, 43, 3, -1, 28, 3, -1, 28, + 28, 43, 3, -1, 28, 27, 43, 3, -1, 34, + 27, 43, 3, -1, 35, 28, 43, 3, -1, 36, + 28, 43, 3, -1, 37, 28, 43, 3, -1, 38, + 28, 43, 3, -1, 39, 43, 3, -1, 40, 43, + 3, -1, 41, 43, 3, -1, 42, 43, 3, -1, + 28, 5, 43, 3, -1, 5, 43, 3, -1, 3, + -1, 1, -1, 6, -1, 7, -1, 8, -1, 10, + -1, 9, -1, 12, -1, 11, -1, 13, -1, 19, + -1, 14, -1, 20, -1, 15, -1, 21, -1, 17, + -1, 23, -1, 16, -1, 22, -1, 18, -1, 24, + -1, -1, 43, 44, -1, 28, -1, 27, -1, 5, + -1, 4, -1, 26, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 161, 161, 161, 163, 163, 165, 171, 181, 211, + 222, 229, 235, 241, 247, 253, 258, 263, 268, 273, + 277, 278, 279, 284, 284, 284, 285, 285, 286, 286, + 287, 287, 288, 288, 289, 289, 290, 290, 291, 291, + 292, 292, 293, 293, 296, 297, 298, 299, 300 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "EOSTMT", "ASSIGNMENT_OP", "GARBAGE", + "CPP_INCLUDE", "F90PPR_INCLUDE", "COCO_INCLUDE", "F90PPR_DEFINE", + "CPP_DEFINE", "F90PPR_UNDEF", "CPP_UNDEF", "CPP_IFDEF", "CPP_IFNDEF", + "CPP_IF", "CPP_ELSE", "CPP_ELIF", "CPP_ENDIF", "F90PPR_IFDEF", + "F90PPR_IFNDEF", "F90PPR_IF", "F90PPR_ELSE", "F90PPR_ELIF", + "F90PPR_ENDIF", "CPP_TOENDL", "UNTERMINATED_STRING", "STRING", "WORD", + "$accept", "code", "stmt", "assignment_stmt", "keyword_stmt", "include", + "define", "undef", "ifdef", "ifndef", "if", "elif", "else", "endif", + "other", "misc_code", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 29, 30, 30, 31, 31, 32, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 34, 34, 34, 35, 35, 36, 36, + 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, + 42, 42, 43, 43, 44, 44, 44, 44, 44 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0, 2, 1, 1, 4, 2, 4, 4, + 4, 4, 4, 4, 4, 3, 3, 3, 3, 4, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 2, 1, 1, 1, 1, 1 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 2, 0, 1, 22, 21, 42, 23, 24, 25, 27, + 26, 29, 28, 30, 32, 34, 38, 36, 40, 31, + 33, 35, 39, 37, 41, 0, 3, 5, 4, 0, + 0, 0, 0, 0, 42, 42, 42, 42, 0, 7, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 0, + 0, 0, 0, 20, 47, 46, 48, 45, 44, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 16, 17, 18, 6, 19, 9, 8, 10, 11, 12, + 13, 14 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 1, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 59 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -26 +static const yytype_int8 yypact[] = +{ + -26, 0, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, -26, 111, -26, -26, -26, -25, + -24, 19, 23, 63, -26, -26, -26, -26, 22, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, 26, + 29, 32, 35, -26, -26, -26, -26, -26, -26, -26, + 38, 41, 67, 70, 73, 76, 79, 82, 85, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int8 yypgoto[] = +{ + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -26, -26, -26, 83, -26 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const yytype_uint8 yytable[] = +{ + 2, 3, 44, 4, 45, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 53, 54, 55, 25, 69, + 54, 55, 70, 54, 55, 71, 54, 55, 72, 54, + 55, 73, 54, 55, 74, 54, 55, 46, 56, 57, + 58, 47, 56, 57, 58, 56, 57, 58, 56, 57, + 58, 56, 57, 58, 56, 57, 58, 56, 57, 58, + 75, 54, 55, 76, 54, 55, 77, 54, 55, 78, + 54, 55, 79, 54, 55, 80, 54, 55, 81, 54, + 55, 48, 0, 56, 57, 58, 56, 57, 58, 56, + 57, 58, 56, 57, 58, 56, 57, 58, 56, 57, + 58, 56, 57, 58, 39, 40, 41, 49, 50, 51, + 52, 0, 0, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 0, 0, 0, 0, 0, 0, 42, 43 +}; + +static const yytype_int8 yycheck[] = +{ + 0, 1, 27, 3, 28, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 3, 4, 5, 28, 3, + 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, + 5, 3, 4, 5, 3, 4, 5, 28, 26, 27, + 28, 28, 26, 27, 28, 26, 27, 28, 26, 27, + 28, 26, 27, 28, 26, 27, 28, 26, 27, 28, + 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, + 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, + 5, 28, -1, 26, 27, 28, 26, 27, 28, 26, + 27, 28, 26, 27, 28, 26, 27, 28, 26, 27, + 28, 26, 27, 28, 3, 4, 5, 34, 35, 36, + 37, -1, -1, 40, 41, 42, 43, 44, 45, 46, + 47, 48, -1, -1, -1, -1, -1, -1, 27, 28 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 30, 0, 1, 3, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 28, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 3, + 4, 5, 27, 28, 27, 28, 28, 28, 28, 43, + 43, 43, 43, 3, 4, 5, 26, 27, 28, 44, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + YYUSE (yyvaluep); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif +{ + /* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to look-ahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a look-ahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 6: +#line 166 "cmDependsFortranParser.y" + { + free((yyvsp[(1) - (4)].string)); + } + break; + + case 7: +#line 172 "cmDependsFortranParser.y" + { + if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (2)].string), "interface")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_SetInInterface(parser, true); + } + free((yyvsp[(1) - (2)].string)); + } + break; + + case 8: +#line 182 "cmDependsFortranParser.y" + { + if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "use")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleUse(parser, (yyvsp[(2) - (4)].string)); + } + else if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "module")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleModule(parser, (yyvsp[(2) - (4)].string)); + } + else if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "interface")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_SetInInterface(parser, true); + } + else if (cmDependsFortranParserIsKeyword((yyvsp[(2) - (4)].string), "interface") && + cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "end")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_SetInInterface(parser, false); + } + free((yyvsp[(1) - (4)].string)); + free((yyvsp[(2) - (4)].string)); + } + break; + + case 9: +#line 212 "cmDependsFortranParser.y" + { + if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "include")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleInclude(parser, (yyvsp[(2) - (4)].string)); + } + free((yyvsp[(1) - (4)].string)); + free((yyvsp[(2) - (4)].string)); + } + break; + + case 10: +#line 223 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleInclude(parser, (yyvsp[(2) - (4)].string)); + free((yyvsp[(2) - (4)].string)); + } + break; + + case 11: +#line 230 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleDefine(parser, (yyvsp[(2) - (4)].string)); + free((yyvsp[(2) - (4)].string)); + } + break; + + case 12: +#line 236 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleUndef(parser, (yyvsp[(2) - (4)].string)); + free((yyvsp[(2) - (4)].string)); + } + break; + + case 13: +#line 242 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleIfdef(parser, (yyvsp[(2) - (4)].string)); + free((yyvsp[(2) - (4)].string)); + } + break; + + case 14: +#line 248 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleIfndef(parser, (yyvsp[(2) - (4)].string)); + free((yyvsp[(2) - (4)].string)); + } + break; + + case 15: +#line 254 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleIf(parser); + } + break; + + case 16: +#line 259 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleElif(parser); + } + break; + + case 17: +#line 264 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleElse(parser); + } + break; + + case 18: +#line 269 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleEndif(parser); + } + break; + + case 19: +#line 274 "cmDependsFortranParser.y" + { + free((yyvsp[(1) - (4)].string)); + } + break; + + case 44: +#line 296 "cmDependsFortranParser.y" + { free ((yyvsp[(1) - (1)].string)); } + break; + + case 45: +#line 297 "cmDependsFortranParser.y" + { free ((yyvsp[(1) - (1)].string)); } + break; + + +/* Line 1267 of yacc.c. */ +#line 1748 "cmDependsFortranParser.cxx" + default: break; + } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + +#if 0 + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: +#endif + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + + +#line 303 "cmDependsFortranParser.y" + +/* End of grammar */ + diff --git a/CMakeLua/Source/cmDependsFortranParser.h b/CMakeLua/Source/cmDependsFortranParser.h new file mode 100644 index 0000000..14d95c8 --- /dev/null +++ b/CMakeLua/Source/cmDependsFortranParser.h @@ -0,0 +1,101 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortranParser.h,v $ + Language: C++ + Date: $Date: 2007/10/03 19:41:39 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsFortranParser_h +#define cmDependsFortranParser_h + +#include /* size_t */ + +/* Forward declare parser object type. */ +typedef struct cmDependsFortranParser_s cmDependsFortranParser; + +/* Functions to enter/exit #include'd files in order. */ +bool cmDependsFortranParser_FilePush(cmDependsFortranParser* parser, + const char* fname); +bool cmDependsFortranParser_FilePop(cmDependsFortranParser* parser); + +/* Callbacks for lexer. */ +int cmDependsFortranParser_Input(cmDependsFortranParser* parser, + char* buffer, size_t bufferSize); + + +void cmDependsFortranParser_StringStart(cmDependsFortranParser* parser); +const char* cmDependsFortranParser_StringEnd(cmDependsFortranParser* parser); +void cmDependsFortranParser_StringAppend(cmDependsFortranParser* parser, + char c); + +void cmDependsFortranParser_SetInInterface(cmDependsFortranParser* parser, + bool is_in); +bool cmDependsFortranParser_GetInInterface(cmDependsFortranParser* parser); + + +void cmDependsFortranParser_SetInPPFalseBranch(cmDependsFortranParser* parser, + bool is_in); +bool cmDependsFortranParser_GetInPPFalseBranch(cmDependsFortranParser* parser); + + +void cmDependsFortranParser_SetOldStartcond(cmDependsFortranParser* parser, + int arg); +int cmDependsFortranParser_GetOldStartcond(cmDependsFortranParser* parser); + +/* Callbacks for parser. */ +void cmDependsFortranParser_Error(cmDependsFortranParser* parser, + const char* message); +void cmDependsFortranParser_RuleUse(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleInclude(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleModule(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleDefine(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleUndef(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleIfdef(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleIfndef(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleIf(cmDependsFortranParser* parser); +void cmDependsFortranParser_RuleElif(cmDependsFortranParser* parser); +void cmDependsFortranParser_RuleElse(cmDependsFortranParser* parser); +void cmDependsFortranParser_RuleEndif(cmDependsFortranParser* parser); + +/* Define the parser stack element type. */ +typedef union cmDependsFortran_yystype_u cmDependsFortran_yystype; +union cmDependsFortran_yystype_u +{ + char* string; +}; + +/* Setup the proper yylex interface. */ +#define YY_EXTRA_TYPE cmDependsFortranParser* +#define YY_DECL \ +int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner) +#define YYSTYPE cmDependsFortran_yystype +#define YYSTYPE_IS_DECLARED 1 +#if !defined(cmDependsFortranLexer_cxx) +# include "cmDependsFortranLexer.h" +#endif +#if !defined(cmDependsFortranLexer_cxx) +#if !defined(cmDependsFortranParser_cxx) +# undef YY_EXTRA_TYPE +# undef YY_DECL +# undef YYSTYPE +# undef YYSTYPE_IS_DECLARED +#endif +#endif + +#endif diff --git a/CMakeLua/Source/cmDependsFortranParser.y b/CMakeLua/Source/cmDependsFortranParser.y new file mode 100644 index 0000000..d57ec94 --- /dev/null +++ b/CMakeLua/Source/cmDependsFortranParser.y @@ -0,0 +1,304 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsFortranParser.y,v $ + Language: C++ + Date: $Date: 2008/01/08 04:08:42 $ + Version: $Revision: 1.18 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/*------------------------------------------------------------------------- + Portions of this source have been derived from makefdep90 version 2.6.2, + + Copyright (C) 2000,2001 Erik Edelmann . + + The code was originally distributed under the GPL but permission + from the copyright holder has been obtained to distribute this + derived work under the CMake license. +-------------------------------------------------------------------------*/ + +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmDependsFortran_yy + --defines=cmDependsFortranParserTokens.h + -ocmDependsFortranParser.cxx + cmDependsFortranParser.y + +Modify cmDependsFortranParser.cxx: + - remove TABs + - Remove the yyerrorlab block in range ["goto yyerrlab1", "yyerrlab1:"] +*/ + +/*-------------------------------------------------------------------------*/ +#define cmDependsFortranParser_cxx +#include "cmDependsFortranParser.h" /* Interface to parser object. */ +#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmDependsFortran_yyerror(x) \ + cmDependsFortranError(yyscanner, x) + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Helper function to forward error callback. */ +static void cmDependsFortranError(yyscan_t yyscanner, const char* message) +{ + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_Error(parser, message); +} + +static char charmap[] = { + '\000', '\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', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +inline int strcasecmpCM(const char *s1, const char *s2) +{ + const char *cm = charmap; + const char* us1 = s1; + const char* us2 = s2; + + while(cm[*us1] == cm[*us2++]) + if(*us1++ == '\0') + { + return(0); + } + return(cm[*us1] - cm[*--us2]); +} + +static bool cmDependsFortranParserIsKeyword(const char* word, + const char* keyword) +{ + return strcasecmpCM(word, keyword) == 0; +} + +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch contains default but no case. */ +# pragma warning (disable: 4701) /* Local variable may not be initialized. */ +# pragma warning (disable: 4702) /* Unreachable code. */ +# pragma warning (disable: 4127) /* Conditional expression is constant. */ +# pragma warning (disable: 4244) /* Conversion to smaller type, data loss. */ +#endif +%} + +/* Generate a reentrant parser object. */ +%pure-parser + +%union { + char* string; +} + +/*-------------------------------------------------------------------------*/ +/* Tokens */ +%token EOSTMT ASSIGNMENT_OP GARBAGE +%token CPP_INCLUDE F90PPR_INCLUDE COCO_INCLUDE +%token F90PPR_DEFINE CPP_DEFINE F90PPR_UNDEF CPP_UNDEF +%token CPP_IFDEF CPP_IFNDEF CPP_IF CPP_ELSE CPP_ELIF CPP_ENDIF +%token F90PPR_IFDEF F90PPR_IFNDEF F90PPR_IF +%token F90PPR_ELSE F90PPR_ELIF F90PPR_ENDIF +%token CPP_TOENDL +%token UNTERMINATED_STRING +%token STRING WORD + +/*-------------------------------------------------------------------------*/ +/* grammar */ +%% + +code: /* empty */ | code stmt; + +stmt: keyword_stmt | assignment_stmt; + +assignment_stmt: WORD ASSIGNMENT_OP other EOSTMT /* Ignore */ + { + free($1); + } + +keyword_stmt: + WORD EOSTMT + { + if (cmDependsFortranParserIsKeyword($1, "interface")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_SetInInterface(parser, true); + } + free($1); + } +| WORD WORD other EOSTMT + { + if (cmDependsFortranParserIsKeyword($1, "use")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleUse(parser, $2); + } + else if (cmDependsFortranParserIsKeyword($1, "module")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleModule(parser, $2); + } + else if (cmDependsFortranParserIsKeyword($1, "interface")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_SetInInterface(parser, true); + } + else if (cmDependsFortranParserIsKeyword($2, "interface") && + cmDependsFortranParserIsKeyword($1, "end")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_SetInInterface(parser, false); + } + free($1); + free($2); + } +| WORD STRING other EOSTMT /* Ignore */ + { + if (cmDependsFortranParserIsKeyword($1, "include")) + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleInclude(parser, $2); + } + free($1); + free($2); + } +| include STRING other EOSTMT + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleInclude(parser, $2); + free($2); + } +| define WORD other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleDefine(parser, $2); + free($2); + } +| undef WORD other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleUndef(parser, $2); + free($2); + } +| ifdef WORD other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleIfdef(parser, $2); + free($2); + } +| ifndef WORD other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleIfndef(parser, $2); + free($2); + } +| if other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleIf(parser); + } +| elif other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleElif(parser); + } +| else other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleElse(parser); + } +| endif other EOSTMT + { + cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleEndif(parser); + } +| WORD GARBAGE other EOSTMT /* Ignore */ + { + free($1); + } +| GARBAGE other EOSTMT +| EOSTMT +| error +; + + + +include: CPP_INCLUDE | F90PPR_INCLUDE | COCO_INCLUDE ; +define: CPP_DEFINE | F90PPR_DEFINE; +undef: CPP_UNDEF | F90PPR_UNDEF ; +ifdef: CPP_IFDEF | F90PPR_IFDEF ; +ifndef: CPP_IFNDEF | F90PPR_IFNDEF ; +if: CPP_IF | F90PPR_IF ; +elif: CPP_ELIF | F90PPR_ELIF ; +else: CPP_ELSE | F90PPR_ELSE ; +endif: CPP_ENDIF | F90PPR_ENDIF ; +other: /* empty */ | other misc_code ; + +misc_code: + WORD { free ($1); } +| STRING { free ($1); } +| GARBAGE +| ASSIGNMENT_OP +| UNTERMINATED_STRING +; + +%% +/* End of grammar */ diff --git a/CMakeLua/Source/cmDependsFortranParserTokens.h b/CMakeLua/Source/cmDependsFortranParserTokens.h new file mode 100644 index 0000000..97f48a6 --- /dev/null +++ b/CMakeLua/Source/cmDependsFortranParserTokens.h @@ -0,0 +1,113 @@ +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + EOSTMT = 258, + ASSIGNMENT_OP = 259, + GARBAGE = 260, + CPP_INCLUDE = 261, + F90PPR_INCLUDE = 262, + COCO_INCLUDE = 263, + F90PPR_DEFINE = 264, + CPP_DEFINE = 265, + F90PPR_UNDEF = 266, + CPP_UNDEF = 267, + CPP_IFDEF = 268, + CPP_IFNDEF = 269, + CPP_IF = 270, + CPP_ELSE = 271, + CPP_ELIF = 272, + CPP_ENDIF = 273, + F90PPR_IFDEF = 274, + F90PPR_IFNDEF = 275, + F90PPR_IF = 276, + F90PPR_ELSE = 277, + F90PPR_ELIF = 278, + F90PPR_ENDIF = 279, + CPP_TOENDL = 280, + UNTERMINATED_STRING = 281, + STRING = 282, + WORD = 283 + }; +#endif +/* Tokens. */ +#define EOSTMT 258 +#define ASSIGNMENT_OP 259 +#define GARBAGE 260 +#define CPP_INCLUDE 261 +#define F90PPR_INCLUDE 262 +#define COCO_INCLUDE 263 +#define F90PPR_DEFINE 264 +#define CPP_DEFINE 265 +#define F90PPR_UNDEF 266 +#define CPP_UNDEF 267 +#define CPP_IFDEF 268 +#define CPP_IFNDEF 269 +#define CPP_IF 270 +#define CPP_ELSE 271 +#define CPP_ELIF 272 +#define CPP_ENDIF 273 +#define F90PPR_IFDEF 274 +#define F90PPR_IFNDEF 275 +#define F90PPR_IF 276 +#define F90PPR_ELSE 277 +#define F90PPR_ELIF 278 +#define F90PPR_ENDIF 279 +#define CPP_TOENDL 280 +#define UNTERMINATED_STRING 281 +#define STRING 282 +#define WORD 283 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 81 "cmDependsFortranParser.y" +{ + char* string; +} +/* Line 1489 of yacc.c. */ +#line 109 "cmDependsFortranParserTokens.h" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif diff --git a/CMakeLua/Source/cmDependsJava.cxx b/CMakeLua/Source/cmDependsJava.cxx new file mode 100644 index 0000000..0f753eb --- /dev/null +++ b/CMakeLua/Source/cmDependsJava.cxx @@ -0,0 +1,49 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJava.cxx,v $ + Language: C++ + Date: $Date: 2005/10/12 17:52:29 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDependsJava.h" + +#include "cmDependsJavaParserHelper.h" +#include "cmSystemTools.h" + +//---------------------------------------------------------------------------- +cmDependsJava::cmDependsJava() +{ +} + +//---------------------------------------------------------------------------- +cmDependsJava::~cmDependsJava() +{ +} + +//---------------------------------------------------------------------------- +bool cmDependsJava::WriteDependencies(const char *src, const char *, + std::ostream&, std::ostream&) +{ + // Make sure this is a scanning instance. + if(!src || src[0] == '\0') + { + cmSystemTools::Error("Cannot scan dependencies without an source file."); + return false; + } + + return true; +} + +bool cmDependsJava::CheckDependencies(std::istream&) +{ + return true; +} diff --git a/CMakeLua/Source/cmDependsJava.h b/CMakeLua/Source/cmDependsJava.h new file mode 100644 index 0000000..57aa832 --- /dev/null +++ b/CMakeLua/Source/cmDependsJava.h @@ -0,0 +1,46 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJava.h,v $ + Language: C++ + Date: $Date: 2005/10/12 17:52:29 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsJava_h +#define cmDependsJava_h + +#include "cmDepends.h" + +/** \class cmDependsJava + * \brief Dependency scanner for Java class files. + */ +class cmDependsJava: public cmDepends +{ +public: + /** Checking instances need to know the build directory name and the + relative path from the build directory to the target file. */ + cmDependsJava(); + + /** Virtual destructor to cleanup subclasses properly. */ + virtual ~cmDependsJava(); + +protected: + // Implement writing/checking methods required by superclass. + virtual bool WriteDependencies(const char *src, const char *file, + std::ostream& makeDepends, std::ostream& internalDepends); + virtual bool CheckDependencies(std::istream& internalDepends); + +private: + cmDependsJava(cmDependsJava const&); // Purposely not implemented. + void operator=(cmDependsJava const&); // Purposely not implemented. +}; + +#endif diff --git a/CMakeLua/Source/cmDependsJavaLexer.cxx b/CMakeLua/Source/cmDependsJavaLexer.cxx new file mode 100644 index 0000000..1f9d982 --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaLexer.cxx @@ -0,0 +1,2547 @@ +#include "cmStandardIncludes.h" +#line 2 "cmDependsJavaLexer.cxx" + +#line 4 "cmDependsJavaLexer.cxx" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 31 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +#if defined(__BEOS__) +#include /* prevents a conflict with a #define later on... */ +#endif + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmDependsJava_yylex_init (yyscan_t* scanner); + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yyg->yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yyg->yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE cmDependsJava_yyrestart(yyin ,yyscanner ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = yyg->yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via cmDependsJava_yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ + ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] + +void cmDependsJava_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmDependsJava_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsJava_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); +void cmDependsJava_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsJava_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsJava_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +void cmDependsJava_yypop_buffer_state (yyscan_t yyscanner ); + +static void cmDependsJava_yyensure_buffer_stack (yyscan_t yyscanner ); +static void cmDependsJava_yy_load_buffer_state (yyscan_t yyscanner ); +static void cmDependsJava_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); + +#define YY_FLUSH_BUFFER cmDependsJava_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) + +YY_BUFFER_STATE cmDependsJava_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsJava_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsJava_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); + +void *cmDependsJava_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmDependsJava_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmDependsJava_yyfree (void * ,yyscan_t yyscanner ); + +#define yy_new_buffer cmDependsJava_yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + cmDependsJava_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmDependsJava_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + cmDependsJava_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmDependsJava_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define cmDependsJava_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +typedef int yy_state_type; + +#define yytext_ptr yytext_r + +static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner ); +static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yyg->yytext_ptr = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + yyg->yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yyg->yy_c_buf_p = yy_cp; + +#define YY_NUM_RULES 111 +#define YY_END_OF_BUFFER 112 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[327] = + { 0, + 0, 0, 0, 0, 0, 0, 112, 110, 109, 109, + 77, 4, 73, 94, 60, 110, 93, 92, 105, 99, + 68, 89, 74, 71, 56, 56, 67, 103, 86, 75, + 79, 102, 107, 64, 63, 65, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 70, 96, 69, 104, 3, 3, 6, 111, 5, + 78, 95, 61, 62, 0, 0, 106, 101, 100, 91, + 90, 57, 1, 0, 72, 57, 56, 57, 0, 56, + 0, 88, 87, 76, 80, 81, 107, 66, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 18, 107, + + 107, 107, 107, 107, 107, 26, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 97, 98, 2, 55, 55, + 0, 0, 0, 108, 57, 0, 57, 58, 85, 82, + 83, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 25, 107, + 107, 30, 107, 107, 34, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 50, 107, 107, 107, 0, 0, 58, 84, 107, + 107, 107, 107, 11, 12, 107, 14, 107, 107, 107, + + 107, 20, 107, 107, 107, 107, 107, 107, 107, 107, + 32, 107, 59, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 46, 107, 107, 54, 51, 107, + 107, 107, 107, 107, 10, 13, 15, 107, 107, 107, + 107, 22, 24, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 40, 107, 107, 43, 107, 107, 47, + 107, 107, 53, 107, 8, 107, 107, 107, 19, 107, + 107, 107, 28, 107, 107, 33, 107, 107, 107, 38, + 39, 41, 107, 44, 107, 48, 107, 107, 107, 9, + 107, 17, 21, 23, 107, 107, 107, 35, 36, 107, + + 107, 107, 107, 107, 7, 16, 107, 107, 107, 107, + 42, 107, 107, 52, 107, 107, 31, 37, 107, 49, + 27, 29, 107, 107, 45, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 4, 5, 1, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, + 19, 19, 19, 19, 19, 20, 20, 21, 22, 23, + 24, 25, 26, 1, 27, 27, 27, 28, 29, 28, + 30, 30, 30, 30, 30, 31, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 32, 30, 30, + 33, 34, 35, 36, 30, 1, 37, 38, 39, 40, + + 41, 42, 43, 44, 45, 30, 46, 47, 48, 49, + 50, 51, 30, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[65] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, + 4, 4, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 1, 1, 1, 1 + } ; + +static yyconst flex_int16_t yy_base[334] = + { 0, + 0, 0, 401, 400, 62, 63, 411, 414, 414, 414, + 386, 414, 414, 385, 61, 374, 414, 414, 383, 57, + 414, 56, 54, 65, 74, 43, 414, 414, 55, 382, + 59, 414, 0, 414, 414, 381, 38, 36, 60, 46, + 51, 75, 69, 354, 82, 76, 362, 85, 56, 352, + 357, 414, 100, 414, 414, 414, 383, 414, 414, 414, + 414, 414, 414, 414, 390, 127, 414, 414, 414, 414, + 414, 129, 414, 395, 414, 132, 95, 414, 165, 414, + 0, 373, 414, 414, 414, 109, 0, 414, 343, 342, + 344, 352, 338, 101, 354, 353, 340, 346, 332, 333, + + 331, 337, 334, 332, 329, 0, 329, 110, 330, 324, + 320, 329, 336, 93, 336, 319, 322, 89, 320, 325, + 320, 114, 131, 120, 323, 414, 414, 414, 414, 358, + 170, 357, 362, 414, 173, 157, 176, 150, 414, 414, + 340, 309, 321, 314, 323, 318, 317, 318, 304, 302, + 300, 316, 314, 310, 309, 296, 311, 310, 0, 153, + 292, 304, 301, 298, 0, 295, 295, 284, 285, 291, + 282, 284, 281, 289, 292, 278, 292, 277, 279, 279, + 286, 0, 286, 288, 277, 189, 314, 414, 414, 270, + 269, 279, 273, 0, 0, 274, 0, 264, 271, 260, + + 267, 0, 264, 271, 264, 256, 268, 256, 270, 254, + 0, 249, 0, 267, 266, 261, 256, 248, 245, 253, + 258, 244, 256, 250, 0, 236, 239, 0, 0, 237, + 249, 252, 234, 250, 0, 0, 0, 237, 238, 243, + 243, 235, 0, 233, 226, 230, 236, 236, 233, 221, + 235, 234, 223, 0, 232, 216, 0, 225, 216, 214, + 221, 220, 0, 225, 0, 214, 207, 207, 0, 207, + 200, 217, 0, 218, 219, 0, 214, 213, 199, 0, + 0, 0, 210, 0, 201, 0, 209, 202, 194, 0, + 206, 0, 0, 0, 197, 204, 205, 0, 0, 202, + + 191, 192, 191, 198, 0, 0, 163, 162, 170, 170, + 0, 164, 152, 0, 152, 157, 0, 0, 127, 0, + 0, 0, 115, 95, 0, 414, 218, 222, 226, 228, + 232, 96, 235 + } ; + +static yyconst flex_int16_t yy_def[334] = + { 0, + 326, 1, 327, 327, 328, 328, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 329, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 25, 326, 326, 326, 326, + 326, 326, 330, 326, 326, 326, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 329, 326, 326, 326, 326, + 326, 326, 326, 331, 326, 326, 25, 326, 326, 326, + 332, 326, 326, 326, 326, 326, 330, 326, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 326, 326, 326, 326, 326, + 326, 333, 331, 326, 326, 326, 326, 332, 326, 326, + 326, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 326, 333, 326, 326, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 0, 326, 326, 326, 326, + 326, 326, 326 + } ; + +static yyconst flex_int16_t yy_nxt[479] = + { 0, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, + 27, 28, 29, 30, 31, 32, 33, 33, 33, 33, + 33, 33, 34, 8, 35, 36, 37, 38, 39, 40, + 41, 42, 33, 33, 43, 33, 44, 33, 45, 33, + 46, 47, 48, 49, 33, 50, 51, 33, 33, 33, + 52, 53, 54, 55, 59, 59, 60, 60, 63, 68, + 70, 72, 72, 72, 326, 89, 73, 82, 83, 71, + 69, 74, 85, 86, 64, 91, 98, 92, 75, 76, + 90, 77, 77, 77, 93, 99, 94, 100, 138, 122, + + 326, 78, 79, 95, 80, 81, 96, 123, 101, 97, + 106, 102, 113, 78, 79, 78, 107, 108, 110, 103, + 80, 104, 111, 126, 105, 173, 326, 114, 117, 326, + 115, 81, 140, 141, 325, 130, 112, 168, 118, 119, + 174, 120, 169, 121, 131, 131, 72, 72, 72, 135, + 135, 135, 326, 147, 148, 324, 78, 79, 178, 78, + 79, 127, 161, 162, 183, 179, 184, 180, 78, 79, + 78, 78, 79, 78, 137, 137, 137, 136, 129, 136, + 188, 132, 137, 137, 137, 181, 323, 186, 186, 182, + 135, 135, 135, 137, 137, 137, 188, 129, 322, 207, + + 78, 79, 208, 78, 321, 320, 186, 186, 319, 318, + 317, 316, 78, 79, 78, 78, 315, 78, 56, 56, + 56, 56, 58, 58, 58, 58, 65, 65, 65, 65, + 87, 87, 133, 133, 133, 133, 187, 187, 314, 313, + 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, + 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, + 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, + 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, + 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, + 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, + + 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, + 242, 228, 241, 240, 239, 238, 237, 236, 235, 234, + 233, 232, 129, 231, 230, 229, 228, 227, 226, 225, + 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, + 214, 213, 212, 211, 210, 209, 206, 205, 204, 203, + 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, + 192, 191, 190, 189, 134, 129, 129, 185, 177, 176, + 175, 172, 171, 170, 167, 166, 165, 164, 163, 160, + 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, + 149, 146, 145, 144, 143, 142, 139, 134, 129, 128, + + 125, 124, 116, 109, 88, 84, 67, 66, 62, 61, + 326, 57, 57, 7, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326 + } ; + +static yyconst flex_int16_t yy_chk[479] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 5, 6, 5, 6, 15, 20, + 22, 23, 23, 23, 26, 37, 24, 29, 29, 22, + 20, 24, 31, 31, 15, 38, 40, 38, 24, 25, + 37, 25, 25, 25, 38, 40, 39, 41, 332, 49, + + 26, 25, 25, 39, 25, 25, 39, 49, 41, 39, + 43, 42, 46, 25, 25, 25, 43, 43, 45, 42, + 25, 42, 45, 53, 42, 118, 77, 46, 48, 66, + 46, 25, 86, 86, 324, 66, 45, 114, 48, 48, + 118, 48, 114, 48, 66, 66, 72, 72, 72, 76, + 76, 76, 77, 94, 94, 323, 72, 72, 122, 76, + 76, 53, 108, 108, 124, 122, 124, 123, 72, 72, + 72, 76, 76, 76, 136, 136, 136, 79, 131, 79, + 138, 66, 79, 79, 79, 123, 319, 131, 131, 123, + 135, 135, 135, 137, 137, 137, 138, 186, 316, 160, + + 135, 135, 160, 137, 315, 313, 186, 186, 312, 310, + 309, 308, 135, 135, 135, 137, 307, 137, 327, 327, + 327, 327, 328, 328, 328, 328, 329, 329, 329, 329, + 330, 330, 331, 331, 331, 331, 333, 333, 304, 303, + 302, 301, 300, 297, 296, 295, 291, 289, 288, 287, + 285, 283, 279, 278, 277, 275, 274, 272, 271, 270, + 268, 267, 266, 264, 262, 261, 260, 259, 258, 256, + 255, 253, 252, 251, 250, 249, 248, 247, 246, 245, + 244, 242, 241, 240, 239, 238, 234, 233, 232, 231, + 230, 227, 226, 224, 223, 222, 221, 220, 219, 218, + + 217, 216, 215, 214, 212, 210, 209, 208, 207, 206, + 205, 204, 203, 201, 200, 199, 198, 196, 193, 192, + 191, 190, 187, 185, 184, 183, 181, 180, 179, 178, + 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, + 167, 166, 164, 163, 162, 161, 158, 157, 156, 155, + 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, + 144, 143, 142, 141, 133, 132, 130, 125, 121, 120, + 119, 117, 116, 115, 113, 112, 111, 110, 109, 107, + 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, + 95, 93, 92, 91, 90, 89, 82, 74, 65, 57, + + 51, 50, 47, 44, 36, 30, 19, 16, 14, 11, + 7, 4, 3, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326 + } ; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +#line 1 "cmDependsJavaLexer.in.l" +#line 2 "cmDependsJavaLexer.in.l" +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJavaLexer.cxx,v $ + Language: C++ + Date: $Date: 2007/09/24 15:16:13 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmDependsJava_yy --header-file=cmDependsJavaLexer.h -ocmDependsJavaLexer.cxx cmDependsJavaLexer.in.l + +Modify cmDependsJavaLexer.c: + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmDependsJava_yyalloc, cmDependsJava_yyrealloc, cmDependsJava_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmDependsJavaLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#include "cmDependsJavaParserHelper.h" + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = yyextra->LexInput(buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmDependsJavaParserTokens.h" + +#define KEYWORD yylvalp->str = 0 +#define SYMBOL yylvalp->str = 0 +#define PRIMITIVE yylvalp->str = 0 + +/*--------------------------------------------------------------------------*/ + + +#line 721 "cmDependsJavaLexer.cxx" + +#define INITIAL 0 +#define comment 1 +#define string 2 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Holds the entire state of the reentrant scanner. */ +struct yyguts_t + { + + /* User-defined. Not touched by flex. */ + YY_EXTRA_TYPE yyextra_r; + + /* The rest are the same as the globals declared in the non-reentrant scanner. */ + FILE *yyin_r, *yyout_r; + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + char yy_hold_char; + int yy_n_chars; + int yyleng_r; + char *yy_c_buf_p; + int yy_init; + int yy_start; + int yy_did_buffer_switch_on_eof; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int *yy_start_stack; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + int yylineno_r; + int yy_flex_debug_r; + + char *yytext_r; + int yy_more_flag; + int yy_more_len; + + }; /* end struct yyguts_t */ + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmDependsJava_yylex_destroy (yyscan_t yyscanner ); + +int cmDependsJava_yyget_debug (yyscan_t yyscanner ); + +void cmDependsJava_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmDependsJava_yyget_extra (yyscan_t yyscanner ); + +void cmDependsJava_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *cmDependsJava_yyget_in (yyscan_t yyscanner ); + +void cmDependsJava_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmDependsJava_yyget_out (yyscan_t yyscanner ); + +void cmDependsJava_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmDependsJava_yyget_leng (yyscan_t yyscanner ); + +char *cmDependsJava_yyget_text (yyscan_t yyscanner ); + +int cmDependsJava_yyget_lineno (yyscan_t yyscanner ); + +void cmDependsJava_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmDependsJava_yywrap (yyscan_t yyscanner ); +#else +extern int cmDependsJava_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (yyscan_t yyscanner ); +#else +static int input (yyscan_t yyscanner ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmDependsJava_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmDependsJava_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + +#line 88 "cmDependsJavaLexer.in.l" + +#line 940 "cmDependsJavaLexer.cxx" + + if ( yyg->yy_init ) + { + yyg->yy_init = 0; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yyg->yy_start ) + yyg->yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + cmDependsJava_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmDependsJava_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmDependsJava_yy_load_buffer_state(yyscanner ); + } + + for(;;) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 327 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 414 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 89 "cmDependsJavaLexer.in.l" +{ BEGIN(comment); } + YY_BREAK +case 2: +YY_RULE_SETUP +#line 90 "cmDependsJavaLexer.in.l" +{ BEGIN(INITIAL); } + YY_BREAK +case 3: +/* rule 3 can match eol */ +YY_RULE_SETUP +#line 91 "cmDependsJavaLexer.in.l" +{} + YY_BREAK +case 4: +YY_RULE_SETUP +#line 93 "cmDependsJavaLexer.in.l" +{ BEGIN(string); } + YY_BREAK +case 5: +YY_RULE_SETUP +#line 94 "cmDependsJavaLexer.in.l" +{ BEGIN(INITIAL); return jp_STRINGLITERAL; } +case 6: +YY_RULE_SETUP +#line 95 "cmDependsJavaLexer.in.l" +{} + YY_BREAK +case 7: +YY_RULE_SETUP +#line 97 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_ABSTRACT; } +case 8: +YY_RULE_SETUP +#line 98 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_ASSERT; } +case 9: +YY_RULE_SETUP +#line 99 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_BOOLEAN_TYPE; } +case 10: +YY_RULE_SETUP +#line 100 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_BREAK; } +case 11: +YY_RULE_SETUP +#line 101 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_BYTE_TYPE; } +case 12: +YY_RULE_SETUP +#line 102 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_CASE; } +case 13: +YY_RULE_SETUP +#line 103 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_CATCH; } +case 14: +YY_RULE_SETUP +#line 104 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_CHAR_TYPE; } +case 15: +YY_RULE_SETUP +#line 105 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_CLASS; } +case 16: +YY_RULE_SETUP +#line 106 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_CONTINUE; } +case 17: +YY_RULE_SETUP +#line 107 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_DEFAULT; } +case 18: +YY_RULE_SETUP +#line 108 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_DO; } +case 19: +YY_RULE_SETUP +#line 109 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_DOUBLE_TYPE; } +case 20: +YY_RULE_SETUP +#line 110 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_ELSE; } +case 21: +YY_RULE_SETUP +#line 111 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_EXTENDS; } +case 22: +YY_RULE_SETUP +#line 112 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_FINAL; } +case 23: +YY_RULE_SETUP +#line 113 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_FINALLY; } +case 24: +YY_RULE_SETUP +#line 114 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_FLOAT_TYPE; } +case 25: +YY_RULE_SETUP +#line 115 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_FOR; } +case 26: +YY_RULE_SETUP +#line 116 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_IF; } +case 27: +YY_RULE_SETUP +#line 117 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_IMPLEMENTS; } +case 28: +YY_RULE_SETUP +#line 118 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_IMPORT; } +case 29: +YY_RULE_SETUP +#line 119 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_INSTANCEOF; } +case 30: +YY_RULE_SETUP +#line 120 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_INT_TYPE; } +case 31: +YY_RULE_SETUP +#line 121 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_INTERFACE; } +case 32: +YY_RULE_SETUP +#line 122 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_LONG_TYPE; } +case 33: +YY_RULE_SETUP +#line 123 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_NATIVE; } +case 34: +YY_RULE_SETUP +#line 124 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_NEW; } +case 35: +YY_RULE_SETUP +#line 125 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_PACKAGE; } +case 36: +YY_RULE_SETUP +#line 126 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_PRIVATE; } +case 37: +YY_RULE_SETUP +#line 127 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_PROTECTED; } +case 38: +YY_RULE_SETUP +#line 128 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_PUBLIC; } +case 39: +YY_RULE_SETUP +#line 129 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_RETURN; } +case 40: +YY_RULE_SETUP +#line 130 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_SHORT_TYPE; } +case 41: +YY_RULE_SETUP +#line 131 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_STATIC; } +case 42: +YY_RULE_SETUP +#line 132 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_STRICTFP; } +case 43: +YY_RULE_SETUP +#line 133 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_SUPER; } +case 44: +YY_RULE_SETUP +#line 134 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_SWITCH; } +case 45: +YY_RULE_SETUP +#line 135 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_SYNCHRONIZED; } +case 46: +YY_RULE_SETUP +#line 136 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_THIS; } +case 47: +YY_RULE_SETUP +#line 137 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_THROW; } +case 48: +YY_RULE_SETUP +#line 138 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_THROWS; } +case 49: +YY_RULE_SETUP +#line 139 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_TRANSIENT; } +case 50: +YY_RULE_SETUP +#line 140 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_TRY; } +case 51: +YY_RULE_SETUP +#line 141 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_VOID; } +case 52: +YY_RULE_SETUP +#line 142 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_VOLATILE; } +case 53: +YY_RULE_SETUP +#line 143 "cmDependsJavaLexer.in.l" +{ KEYWORD; return jp_WHILE; } +case 54: +YY_RULE_SETUP +#line 145 "cmDependsJavaLexer.in.l" +{ PRIMITIVE; return jp_BOOLEANLITERAL; } +case 55: +/* rule 55 can match eol */ +YY_RULE_SETUP +#line 146 "cmDependsJavaLexer.in.l" +{ PRIMITIVE; return jp_CHARACTERLITERAL; } +case 56: +YY_RULE_SETUP +#line 147 "cmDependsJavaLexer.in.l" +{ PRIMITIVE; return jp_DECIMALINTEGERLITERAL; } +case 57: +YY_RULE_SETUP +#line 148 "cmDependsJavaLexer.in.l" +{ PRIMITIVE; return jp_FLOATINGPOINTLITERAL; } +case 58: +YY_RULE_SETUP +#line 149 "cmDependsJavaLexer.in.l" +{ PRIMITIVE; return jp_HEXINTEGERLITERAL; } +case 59: +YY_RULE_SETUP +#line 150 "cmDependsJavaLexer.in.l" +{ PRIMITIVE; return jp_NULLLITERAL; } +case 60: +YY_RULE_SETUP +#line 152 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_AND; } +case 61: +YY_RULE_SETUP +#line 153 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_ANDAND; } +case 62: +YY_RULE_SETUP +#line 154 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_ANDEQUALS; } +case 63: +YY_RULE_SETUP +#line 155 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_BRACKETEND; } +case 64: +YY_RULE_SETUP +#line 156 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_BRACKETSTART; } +case 65: +YY_RULE_SETUP +#line 157 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_CARROT; } +case 66: +YY_RULE_SETUP +#line 158 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_CARROTEQUALS; } +case 67: +YY_RULE_SETUP +#line 159 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_COLON; } +case 68: +YY_RULE_SETUP +#line 160 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_COMMA; } +case 69: +YY_RULE_SETUP +#line 161 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_CURLYEND; } +case 70: +YY_RULE_SETUP +#line 162 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_CURLYSTART; } +case 71: +YY_RULE_SETUP +#line 163 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_DIVIDE; } +case 72: +YY_RULE_SETUP +#line 164 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_DIVIDEEQUALS; } +case 73: +YY_RULE_SETUP +#line 165 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_DOLLAR; } +case 74: +YY_RULE_SETUP +#line 166 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_DOT; } +case 75: +YY_RULE_SETUP +#line 167 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_EQUALS; } +case 76: +YY_RULE_SETUP +#line 168 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_EQUALSEQUALS; } +case 77: +YY_RULE_SETUP +#line 169 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_EXCLAMATION; } +case 78: +YY_RULE_SETUP +#line 170 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_EXCLAMATIONEQUALS; } +case 79: +YY_RULE_SETUP +#line 171 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_GREATER; } +case 80: +YY_RULE_SETUP +#line 172 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_GTEQUALS; } +case 81: +YY_RULE_SETUP +#line 173 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_GTGT; } +case 82: +YY_RULE_SETUP +#line 174 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_GTGTEQUALS; } +case 83: +YY_RULE_SETUP +#line 175 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_GTGTGT; } +case 84: +YY_RULE_SETUP +#line 176 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_GTGTGTEQUALS; } +case 85: +YY_RULE_SETUP +#line 177 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_LESLESEQUALS; } +case 86: +YY_RULE_SETUP +#line 178 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_LESSTHAN; } +case 87: +YY_RULE_SETUP +#line 179 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_LTEQUALS; } +case 88: +YY_RULE_SETUP +#line 180 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_LTLT; } +case 89: +YY_RULE_SETUP +#line 181 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_MINUS; } +case 90: +YY_RULE_SETUP +#line 182 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_MINUSEQUALS; } +case 91: +YY_RULE_SETUP +#line 183 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_MINUSMINUS; } +case 92: +YY_RULE_SETUP +#line 184 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PAREEND; } +case 93: +YY_RULE_SETUP +#line 185 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PARESTART; } +case 94: +YY_RULE_SETUP +#line 186 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PERCENT; } +case 95: +YY_RULE_SETUP +#line 187 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PERCENTEQUALS; } +case 96: +YY_RULE_SETUP +#line 188 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PIPE; } +case 97: +YY_RULE_SETUP +#line 189 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PIPEEQUALS; } +case 98: +YY_RULE_SETUP +#line 190 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PIPEPIPE; } +case 99: +YY_RULE_SETUP +#line 191 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PLUS; } +case 100: +YY_RULE_SETUP +#line 192 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PLUSEQUALS; } +case 101: +YY_RULE_SETUP +#line 193 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_PLUSPLUS; } +case 102: +YY_RULE_SETUP +#line 194 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_QUESTION; } +case 103: +YY_RULE_SETUP +#line 195 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_SEMICOL; } +case 104: +YY_RULE_SETUP +#line 196 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_TILDE; } +case 105: +YY_RULE_SETUP +#line 197 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_TIMES; } +case 106: +YY_RULE_SETUP +#line 198 "cmDependsJavaLexer.in.l" +{ SYMBOL; return jp_TIMESEQUALS; } +case 107: +YY_RULE_SETUP +#line 200 "cmDependsJavaLexer.in.l" +{ + yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + return jp_NAME; +} +case 108: +/* rule 108 can match eol */ +YY_RULE_SETUP +#line 205 "cmDependsJavaLexer.in.l" +{ } + YY_BREAK +case 109: +/* rule 109 can match eol */ +YY_RULE_SETUP +#line 206 "cmDependsJavaLexer.in.l" +{ } + YY_BREAK +case 110: +YY_RULE_SETUP +#line 207 "cmDependsJavaLexer.in.l" +{ + std::cerr << "Unknown character: " << yytext[0] + << " (" << (int)yytext[0] << ")" << std::endl; + yyextra->Error("Unknown character"); + return jp_ERROR; +} +case 111: +YY_RULE_SETUP +#line 214 "cmDependsJavaLexer.in.l" +ECHO; + YY_BREAK +#line 1590 "cmDependsJavaLexer.cxx" +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(comment): +case YY_STATE_EOF(string): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * cmDependsJava_yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yyg->yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yyg->yy_c_buf_p; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if ( cmDependsJava_yywrap(yyscanner ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +return 0; /* this should not happen but it silences a warning*/ +} /* end of cmDependsJava_yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; + + else + { + size_t nuto_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( nuto_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + cmDependsJava_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + nuto_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( nuto_read > YY_READ_BUF_SIZE ) + nuto_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, nuto_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if ( yyg->yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + cmDependsJava_yyrestart(yyin ,yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_current_state = yyg->yy_start; + + for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 327 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +{ + register int yy_is_jam; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 327 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 326); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (yyscan_t yyscanner) +#else + static int input (yyscan_t yyscanner) +#endif + +{ + int c; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + cmDependsJava_yyrestart(yyin ,yyscanner); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( cmDependsJava_yywrap(yyscanner ) ) + return EOF; + + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(yyscanner); +#else + return input(yyscanner); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * @param yyscanner The scanner object. + * @note This function does not reset the start condition to @c INITIAL . + */ + void cmDependsJava_yyrestart (FILE * input_file , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! YY_CURRENT_BUFFER ){ + cmDependsJava_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmDependsJava_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmDependsJava_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); + cmDependsJava_yy_load_buffer_state(yyscanner ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * @param yyscanner The scanner object. + */ + void cmDependsJava_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* TODO. We should be able to replace this entire function body + * with + * cmDependsJava_yypop_buffer_state(); + * cmDependsJava_yypush_buffer_state(new_buffer); + */ + cmDependsJava_yyensure_buffer_stack (yyscanner); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + cmDependsJava_yy_load_buffer_state(yyscanner ); + + /* We don't actually know whether we did this switch during + * EOF (cmDependsJava_yywrap()) processing, but the only time this flag + * is looked at is after cmDependsJava_yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; +} + +static void cmDependsJava_yy_load_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * @param yyscanner The scanner object. + * @return the allocated buffer state. + */ + YY_BUFFER_STATE cmDependsJava_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) cmDependsJava_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsJava_yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) cmDependsJava_yyalloc(b->yy_buf_size + 2 ,yyscanner ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsJava_yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + cmDependsJava_yy_init_buffer(b,file ,yyscanner); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with cmDependsJava_yy_create_buffer() + * @param yyscanner The scanner object. + */ + void cmDependsJava_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + cmDependsJava_yyfree((void *) b->yy_ch_buf ,yyscanner ); + + cmDependsJava_yyfree((void *) b ,yyscanner ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a cmDependsJava_yyrestart() or at EOF. + */ + static void cmDependsJava_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) + +{ + int oerrno = errno; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + cmDependsJava_yy_flush_buffer(b ,yyscanner); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then cmDependsJava_yy_init_buffer was _probably_ + * called from cmDependsJava_yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * @param yyscanner The scanner object. + */ + void cmDependsJava_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + cmDependsJava_yy_load_buffer_state(yyscanner ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * @param yyscanner The scanner object. + */ +void cmDependsJava_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (new_buffer == NULL) + return; + + cmDependsJava_yyensure_buffer_stack(yyscanner); + + /* This block is copied from cmDependsJava_yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from cmDependsJava_yy_switch_to_buffer. */ + cmDependsJava_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * @param yyscanner The scanner object. + */ +void cmDependsJava_yypop_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + cmDependsJava_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) { + cmDependsJava_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void cmDependsJava_yyensure_buffer_stack (yyscan_t yyscanner) +{ + int nuto_alloc; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (!yyg->yy_buffer_stack) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + nuto_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmDependsJava_yyalloc + (nuto_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + memset(yyg->yy_buffer_stack, 0, nuto_alloc * sizeof(struct yy_buffer_state*)); + + yyg->yy_buffer_stack_max = nuto_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + nuto_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmDependsJava_yyrealloc + (yyg->yy_buffer_stack, + nuto_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + /* zero only the new slots.*/ + memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); + yyg->yy_buffer_stack_max = nuto_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmDependsJava_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) cmDependsJava_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsJava_yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + cmDependsJava_yy_switch_to_buffer(b ,yyscanner ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to cmDependsJava_yylex() will + * scan from a @e copy of @a str. + * @param str a NUL-terminated string to scan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * cmDependsJava_yy_scan_bytes() instead. + */ +YY_BUFFER_STATE cmDependsJava_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner) +{ + + return cmDependsJava_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner); +} + +/** Setup the input buffer state to scan the given bytes. The next call to cmDependsJava_yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmDependsJava_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = len + 2; + buf = (char *) cmDependsJava_yyalloc(n ,yyscanner ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmDependsJava_yy_scan_bytes()" ); + + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; + + buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + + b = cmDependsJava_yy_scan_buffer(buf,n ,yyscanner); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in cmDependsJava_yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg , yyscan_t) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = yyg->yy_hold_char; \ + yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ + yyg->yy_hold_char = *yyg->yy_c_buf_p; \ + *yyg->yy_c_buf_p = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the user-defined data for this scanner. + * @param yyscanner The scanner object. + */ +YY_EXTRA_TYPE cmDependsJava_yyget_extra (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyextra; +} + +/** Get the current line number. + * @param yyscanner The scanner object. + */ +int cmDependsJava_yyget_lineno (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yylineno; +} + +/** Get the current column number. + * @param yyscanner The scanner object. + */ +int cmDependsJava_yyget_column (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yycolumn; +} + +/** Get the input stream. + * @param yyscanner The scanner object. + */ +FILE *cmDependsJava_yyget_in (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyin; +} + +/** Get the output stream. + * @param yyscanner The scanner object. + */ +FILE *cmDependsJava_yyget_out (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyout; +} + +/** Get the length of the current token. + * @param yyscanner The scanner object. + */ +int cmDependsJava_yyget_leng (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyleng; +} + +/** Get the current token. + * @param yyscanner The scanner object. + */ + +char *cmDependsJava_yyget_text (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yytext; +} + +/** Set the user-defined data. This data is never touched by the scanner. + * @param user_defined The data to be associated with this scanner. + * @param yyscanner The scanner object. + */ +void cmDependsJava_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyextra = user_defined ; +} + +/** Set the current line number. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmDependsJava_yyset_lineno (int line_number , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmDependsJava_yyset_lineno called with no buffer" , yyscanner); + + yylineno = line_number; +} + +/** Set the current column. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmDependsJava_yyset_column (int column_no , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* column is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmDependsJava_yyset_column called with no buffer" , yyscanner); + + yycolumn = column_no; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * @param yyscanner The scanner object. + * @see cmDependsJava_yy_switch_to_buffer + */ +void cmDependsJava_yyset_in (FILE * in_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyin = in_str ; +} + +void cmDependsJava_yyset_out (FILE * out_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyout = out_str ; +} + +int cmDependsJava_yyget_debug (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yy_flex_debug; +} + +void cmDependsJava_yyset_debug (int bdebug , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yy_flex_debug = bdebug ; +} + +/* Accessor methods for yylval and yylloc */ + +static int yy_init_globals (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + /* Initialization is the same as for the non-reentrant scanner. + This function is called once per scanner lifetime. */ + + yyg->yy_buffer_stack = 0; + yyg->yy_buffer_stack_top = 0; + yyg->yy_buffer_stack_max = 0; + yyg->yy_c_buf_p = (char *) 0; + yyg->yy_init = 1; + yyg->yy_start = 0; + yyg->yy_start_stack_ptr = 0; + yyg->yy_start_stack_depth = 0; + yyg->yy_start_stack = (int *) 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * cmDependsJava_yylex_init() + */ + return 0; +} + +/* User-visible API */ + +/* cmDependsJava_yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. + */ + +int cmDependsJava_yylex_init(yyscan_t* ptr_yy_globals) + +{ + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) cmDependsJava_yyalloc ( sizeof( struct yyguts_t ), NULL ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + memset(*ptr_yy_globals,0,sizeof(struct yyguts_t)); + + return yy_init_globals ( *ptr_yy_globals ); +} + +/* cmDependsJava_yylex_destroy is for both reentrant and non-reentrant scanners. */ +int cmDependsJava_yylex_destroy (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + cmDependsJava_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); + YY_CURRENT_BUFFER_LVALUE = NULL; + cmDependsJava_yypop_buffer_state(yyscanner); + } + + /* Destroy the stack itself. */ + cmDependsJava_yyfree(yyg->yy_buffer_stack ,yyscanner); + yyg->yy_buffer_stack = NULL; + + /* Destroy the start condition stack. */ + cmDependsJava_yyfree(yyg->yy_start_stack ,yyscanner ); + yyg->yy_start_stack = NULL; + + /* Destroy the main struct (reentrant only). */ + cmDependsJava_yyfree ( yyscanner , yyscanner ); + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +{ + register int i; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +{ + register int n; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *cmDependsJava_yyalloc (yy_size_t size , yyscan_t) +{ + return (void *) malloc( size ); +} + +void *cmDependsJava_yyrealloc (void * ptr, yy_size_t size , yyscan_t) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void cmDependsJava_yyfree (void * ptr , yyscan_t) +{ + free( (char *) ptr ); /* see cmDependsJava_yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef yytext_ptr +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif +#line 214 "cmDependsJavaLexer.in.l" + + + diff --git a/CMakeLua/Source/cmDependsJavaLexer.h b/CMakeLua/Source/cmDependsJavaLexer.h new file mode 100644 index 0000000..4563c9e --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaLexer.h @@ -0,0 +1,339 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJavaLexer.h,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsJava_yyHEADER_H +#define cmDependsJava_yyHEADER_H 1 +#define cmDependsJava_yyIN_HEADER 1 + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 31 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +#if defined(__BEOS__) +#include /* prevents a conflict with a #define later on... */ +#endif + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmDependsJava_yylex_init (yyscan_t* scanner); + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void cmDependsJava_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmDependsJava_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsJava_yy_create_buffer (FILE *file,int size , + yyscan_t yyscanner ); +void cmDependsJava_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsJava_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmDependsJava_yypush_buffer_state (YY_BUFFER_STATE new_buffer , + yyscan_t yyscanner ); +void cmDependsJava_yypop_buffer_state (yyscan_t yyscanner ); + +YY_BUFFER_STATE cmDependsJava_yy_scan_buffer (char *base,yy_size_t size , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsJava_yy_scan_string (yyconst char *yy_str , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmDependsJava_yy_scan_bytes (yyconst char *bytes,int len , + yyscan_t yyscanner ); + +void *cmDependsJava_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmDependsJava_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmDependsJava_yyfree (void * ,yyscan_t yyscanner ); + +/* Begin user sect3 */ + +#define cmDependsJava_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +#define yytext_ptr yytext_r + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 +#define comment 1 +#define string 2 + +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmDependsJava_yylex_destroy (yyscan_t yyscanner ); + +int cmDependsJava_yyget_debug (yyscan_t yyscanner ); + +void cmDependsJava_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmDependsJava_yyget_extra (yyscan_t yyscanner ); + +void cmDependsJava_yyset_extra (YY_EXTRA_TYPE user_defined , + yyscan_t yyscanner ); + +FILE *cmDependsJava_yyget_in (yyscan_t yyscanner ); + +void cmDependsJava_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmDependsJava_yyget_out (yyscan_t yyscanner ); + +void cmDependsJava_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmDependsJava_yyget_leng (yyscan_t yyscanner ); + +char *cmDependsJava_yyget_text (yyscan_t yyscanner ); + +int cmDependsJava_yyget_lineno (yyscan_t yyscanner ); + +void cmDependsJava_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmDependsJava_yywrap (yyscan_t yyscanner ); +#else +extern int cmDependsJava_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmDependsJava_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmDependsJava_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before the + EOB char was reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef yytext_ptr +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + +#undef cmDependsJava_yyIN_HEADER +#endif /* cmDependsJava_yyHEADER_H */ diff --git a/CMakeLua/Source/cmDependsJavaLexer.in.l b/CMakeLua/Source/cmDependsJavaLexer.in.l new file mode 100644 index 0000000..3de2e12 --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaLexer.in.l @@ -0,0 +1,193 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJavaLexer.in.l,v $ + Language: C++ + Date: $Date: 2006/08/08 18:00:27 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmDependsJava_yy --header-file=cmDependsJavaLexer.h -ocmDependsJavaLexer.cxx cmDependsJavaLexer.in.l + +Modify cmDependsJavaLexer.c: + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmDependsJava_yyalloc, cmDependsJava_yyrealloc, cmDependsJava_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmDependsJavaLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#include "cmDependsJavaParserHelper.h" + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = yyextra->LexInput(buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmDependsJavaParserTokens.h" + +#define KEYWORD yylvalp->str = 0 +#define SYMBOL yylvalp->str = 0 +#define PRIMITIVE yylvalp->str = 0 + +/*--------------------------------------------------------------------------*/ +%} + +%option reentrant +%option noyywrap +%pointer + +%x comment +%x string + +%% +"/*" { BEGIN(comment); } +"*/" { BEGIN(INITIAL); } +.|\n {} + +\" { BEGIN(string); } +\" { BEGIN(INITIAL); return jp_STRINGLITERAL; } +. {} + +abstract { KEYWORD; return jp_ABSTRACT; } +assert { KEYWORD; return jp_ASSERT; } +boolean { KEYWORD; return jp_BOOLEAN_TYPE; } +break { KEYWORD; return jp_BREAK; } +byte { KEYWORD; return jp_BYTE_TYPE; } +case { KEYWORD; return jp_CASE; } +catch { KEYWORD; return jp_CATCH; } +char { KEYWORD; return jp_CHAR_TYPE; } +class { KEYWORD; return jp_CLASS; } +continue { KEYWORD; return jp_CONTINUE; } +default { KEYWORD; return jp_DEFAULT; } +do { KEYWORD; return jp_DO; } +double { KEYWORD; return jp_DOUBLE_TYPE; } +else { KEYWORD; return jp_ELSE; } +extends { KEYWORD; return jp_EXTENDS; } +final { KEYWORD; return jp_FINAL; } +finally { KEYWORD; return jp_FINALLY; } +float { KEYWORD; return jp_FLOAT_TYPE; } +for { KEYWORD; return jp_FOR; } +if { KEYWORD; return jp_IF; } +implements { KEYWORD; return jp_IMPLEMENTS; } +import { KEYWORD; return jp_IMPORT; } +instanceof { KEYWORD; return jp_INSTANCEOF; } +int { KEYWORD; return jp_INT_TYPE; } +interface { KEYWORD; return jp_INTERFACE; } +long { KEYWORD; return jp_LONG_TYPE; } +native { KEYWORD; return jp_NATIVE; } +new { KEYWORD; return jp_NEW; } +package { KEYWORD; return jp_PACKAGE; } +private { KEYWORD; return jp_PRIVATE; } +protected { KEYWORD; return jp_PROTECTED; } +public { KEYWORD; return jp_PUBLIC; } +return { KEYWORD; return jp_RETURN; } +short { KEYWORD; return jp_SHORT_TYPE; } +static { KEYWORD; return jp_STATIC; } +strictfp { KEYWORD; return jp_STRICTFP; } +super { KEYWORD; return jp_SUPER; } +switch { KEYWORD; return jp_SWITCH; } +synchronized { KEYWORD; return jp_SYNCHRONIZED; } +this { KEYWORD; return jp_THIS; } +throw { KEYWORD; return jp_THROW; } +throws { KEYWORD; return jp_THROWS; } +transient { KEYWORD; return jp_TRANSIENT; } +try { KEYWORD; return jp_TRY; } +void { KEYWORD; return jp_VOID; } +volatile { KEYWORD; return jp_VOLATILE; } +while { KEYWORD; return jp_WHILE; } + +(true|false) { PRIMITIVE; return jp_BOOLEANLITERAL; } +\'([^\\]|\\.|\\u[0-9a-fA-F]*|\\[0-7]*)\' { PRIMITIVE; return jp_CHARACTERLITERAL; } +(0|[0-9]+)[lL]? { PRIMITIVE; return jp_DECIMALINTEGERLITERAL; } +([0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)([eE][+\-]?[0-9]+)?[fFdD]? { PRIMITIVE; return jp_FLOATINGPOINTLITERAL; } +0[xX][0-9a-fA-F]+[lL]? { PRIMITIVE; return jp_HEXINTEGERLITERAL; } +null { PRIMITIVE; return jp_NULLLITERAL; } + +"&" { SYMBOL; return jp_AND; } +"&&" { SYMBOL; return jp_ANDAND; } +"&=" { SYMBOL; return jp_ANDEQUALS; } +"\]" { SYMBOL; return jp_BRACKETEND; } +"\[" { SYMBOL; return jp_BRACKETSTART; } +"\^" { SYMBOL; return jp_CARROT; } +"\^=" { SYMBOL; return jp_CARROTEQUALS; } +":" { SYMBOL; return jp_COLON; } +"," { SYMBOL; return jp_COMMA; } +"}" { SYMBOL; return jp_CURLYEND; } +"{" { SYMBOL; return jp_CURLYSTART; } +"/" { SYMBOL; return jp_DIVIDE; } +"/=" { SYMBOL; return jp_DIVIDEEQUALS; } +"\$" { SYMBOL; return jp_DOLLAR; } +"\." { SYMBOL; return jp_DOT; } +"=" { SYMBOL; return jp_EQUALS; } +"==" { SYMBOL; return jp_EQUALSEQUALS; } +"\!" { SYMBOL; return jp_EXCLAMATION; } +"\!=" { SYMBOL; return jp_EXCLAMATIONEQUALS; } +">" { SYMBOL; return jp_GREATER; } +">=" { SYMBOL; return jp_GTEQUALS; } +">>" { SYMBOL; return jp_GTGT; } +">>=" { SYMBOL; return jp_GTGTEQUALS; } +">>>" { SYMBOL; return jp_GTGTGT; } +">>>=" { SYMBOL; return jp_GTGTGTEQUALS; } +"<<=" { SYMBOL; return jp_LESLESEQUALS; } +"<" { SYMBOL; return jp_LESSTHAN; } +"<=" { SYMBOL; return jp_LTEQUALS; } +"<<" { SYMBOL; return jp_LTLT; } +"-" { SYMBOL; return jp_MINUS; } +"-=" { SYMBOL; return jp_MINUSEQUALS; } +"--" { SYMBOL; return jp_MINUSMINUS; } +"\)" { SYMBOL; return jp_PAREEND; } +"\(" { SYMBOL; return jp_PARESTART; } +"%" { SYMBOL; return jp_PERCENT; } +"%=" { SYMBOL; return jp_PERCENTEQUALS; } +"\|" { SYMBOL; return jp_PIPE; } +"\|=" { SYMBOL; return jp_PIPEEQUALS; } +"\|\|" { SYMBOL; return jp_PIPEPIPE; } +"\+" { SYMBOL; return jp_PLUS; } +"\+=" { SYMBOL; return jp_PLUSEQUALS; } +"\+\+" { SYMBOL; return jp_PLUSPLUS; } +"\?" { SYMBOL; return jp_QUESTION; } +";" { SYMBOL; return jp_SEMICOL; } +"\~" { SYMBOL; return jp_TILDE; } +"\*" { SYMBOL; return jp_TIMES; } +"\*=" { SYMBOL; return jp_TIMESEQUALS; } + +[a-z_A-Z][a-z_0-9A-Z]* { + yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext)); + return jp_NAME; +} + +\/\/.*\n { } +[ \f\t\n\r] { } +. { + std::cerr << "Unknown character: " << yytext[0] + << " (" << (int)yytext[0] << ")" << std::endl; + yyextra->Error("Unknown character"); + return jp_ERROR; +} + +%% diff --git a/CMakeLua/Source/cmDependsJavaParser.cxx b/CMakeLua/Source/cmDependsJavaParser.cxx new file mode 100644 index 0000000..64f56fe --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaParser.cxx @@ -0,0 +1,6026 @@ +/* A Bison parser, made by GNU Bison 1.875d. */ + +/* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, + 1989, 1990, 2000, 2001, 2002, 2003, 2004 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* turn off some warning as this is generated code */ +#if defined(_MSC_VER) +# pragma warning ( disable : 4702 ) /* unreachable code */ +#endif + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* If NAME_PREFIX is specified substitute the variables and functions + names. */ +#define yyparse cmDependsJava_yyparse +#define yylex cmDependsJava_yylex +#define yyerror cmDependsJava_yyerror +#define yylval cmDependsJava_yylval +#define yychar cmDependsJava_yychar +#define yydebug cmDependsJava_yydebug +#define yynerrs cmDependsJava_yynerrs + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + jp_ABSTRACT = 258, + jp_ASSERT = 259, + jp_BOOLEAN_TYPE = 260, + jp_BREAK = 261, + jp_BYTE_TYPE = 262, + jp_CASE = 263, + jp_CATCH = 264, + jp_CHAR_TYPE = 265, + jp_CLASS = 266, + jp_CONTINUE = 267, + jp_DEFAULT = 268, + jp_DO = 269, + jp_DOUBLE_TYPE = 270, + jp_ELSE = 271, + jp_EXTENDS = 272, + jp_FINAL = 273, + jp_FINALLY = 274, + jp_FLOAT_TYPE = 275, + jp_FOR = 276, + jp_IF = 277, + jp_IMPLEMENTS = 278, + jp_IMPORT = 279, + jp_INSTANCEOF = 280, + jp_INT_TYPE = 281, + jp_INTERFACE = 282, + jp_LONG_TYPE = 283, + jp_NATIVE = 284, + jp_NEW = 285, + jp_PACKAGE = 286, + jp_PRIVATE = 287, + jp_PROTECTED = 288, + jp_PUBLIC = 289, + jp_RETURN = 290, + jp_SHORT_TYPE = 291, + jp_STATIC = 292, + jp_STRICTFP = 293, + jp_SUPER = 294, + jp_SWITCH = 295, + jp_SYNCHRONIZED = 296, + jp_THIS = 297, + jp_THROW = 298, + jp_THROWS = 299, + jp_TRANSIENT = 300, + jp_TRY = 301, + jp_VOID = 302, + jp_VOLATILE = 303, + jp_WHILE = 304, + jp_BOOLEANLITERAL = 305, + jp_CHARACTERLITERAL = 306, + jp_DECIMALINTEGERLITERAL = 307, + jp_FLOATINGPOINTLITERAL = 308, + jp_HEXINTEGERLITERAL = 309, + jp_NULLLITERAL = 310, + jp_STRINGLITERAL = 311, + jp_NAME = 312, + jp_AND = 313, + jp_ANDAND = 314, + jp_ANDEQUALS = 315, + jp_BRACKETEND = 316, + jp_BRACKETSTART = 317, + jp_CARROT = 318, + jp_CARROTEQUALS = 319, + jp_COLON = 320, + jp_COMMA = 321, + jp_CURLYEND = 322, + jp_CURLYSTART = 323, + jp_DIVIDE = 324, + jp_DIVIDEEQUALS = 325, + jp_DOLLAR = 326, + jp_DOT = 327, + jp_EQUALS = 328, + jp_EQUALSEQUALS = 329, + jp_EXCLAMATION = 330, + jp_EXCLAMATIONEQUALS = 331, + jp_GREATER = 332, + jp_GTEQUALS = 333, + jp_GTGT = 334, + jp_GTGTEQUALS = 335, + jp_GTGTGT = 336, + jp_GTGTGTEQUALS = 337, + jp_LESLESEQUALS = 338, + jp_LESSTHAN = 339, + jp_LTEQUALS = 340, + jp_LTLT = 341, + jp_MINUS = 342, + jp_MINUSEQUALS = 343, + jp_MINUSMINUS = 344, + jp_PAREEND = 345, + jp_PARESTART = 346, + jp_PERCENT = 347, + jp_PERCENTEQUALS = 348, + jp_PIPE = 349, + jp_PIPEEQUALS = 350, + jp_PIPEPIPE = 351, + jp_PLUS = 352, + jp_PLUSEQUALS = 353, + jp_PLUSPLUS = 354, + jp_QUESTION = 355, + jp_SEMICOL = 356, + jp_TILDE = 357, + jp_TIMES = 358, + jp_TIMESEQUALS = 359, + jp_ERROR = 360 + }; +#endif +#define jp_ABSTRACT 258 +#define jp_ASSERT 259 +#define jp_BOOLEAN_TYPE 260 +#define jp_BREAK 261 +#define jp_BYTE_TYPE 262 +#define jp_CASE 263 +#define jp_CATCH 264 +#define jp_CHAR_TYPE 265 +#define jp_CLASS 266 +#define jp_CONTINUE 267 +#define jp_DEFAULT 268 +#define jp_DO 269 +#define jp_DOUBLE_TYPE 270 +#define jp_ELSE 271 +#define jp_EXTENDS 272 +#define jp_FINAL 273 +#define jp_FINALLY 274 +#define jp_FLOAT_TYPE 275 +#define jp_FOR 276 +#define jp_IF 277 +#define jp_IMPLEMENTS 278 +#define jp_IMPORT 279 +#define jp_INSTANCEOF 280 +#define jp_INT_TYPE 281 +#define jp_INTERFACE 282 +#define jp_LONG_TYPE 283 +#define jp_NATIVE 284 +#define jp_NEW 285 +#define jp_PACKAGE 286 +#define jp_PRIVATE 287 +#define jp_PROTECTED 288 +#define jp_PUBLIC 289 +#define jp_RETURN 290 +#define jp_SHORT_TYPE 291 +#define jp_STATIC 292 +#define jp_STRICTFP 293 +#define jp_SUPER 294 +#define jp_SWITCH 295 +#define jp_SYNCHRONIZED 296 +#define jp_THIS 297 +#define jp_THROW 298 +#define jp_THROWS 299 +#define jp_TRANSIENT 300 +#define jp_TRY 301 +#define jp_VOID 302 +#define jp_VOLATILE 303 +#define jp_WHILE 304 +#define jp_BOOLEANLITERAL 305 +#define jp_CHARACTERLITERAL 306 +#define jp_DECIMALINTEGERLITERAL 307 +#define jp_FLOATINGPOINTLITERAL 308 +#define jp_HEXINTEGERLITERAL 309 +#define jp_NULLLITERAL 310 +#define jp_STRINGLITERAL 311 +#define jp_NAME 312 +#define jp_AND 313 +#define jp_ANDAND 314 +#define jp_ANDEQUALS 315 +#define jp_BRACKETEND 316 +#define jp_BRACKETSTART 317 +#define jp_CARROT 318 +#define jp_CARROTEQUALS 319 +#define jp_COLON 320 +#define jp_COMMA 321 +#define jp_CURLYEND 322 +#define jp_CURLYSTART 323 +#define jp_DIVIDE 324 +#define jp_DIVIDEEQUALS 325 +#define jp_DOLLAR 326 +#define jp_DOT 327 +#define jp_EQUALS 328 +#define jp_EQUALSEQUALS 329 +#define jp_EXCLAMATION 330 +#define jp_EXCLAMATIONEQUALS 331 +#define jp_GREATER 332 +#define jp_GTEQUALS 333 +#define jp_GTGT 334 +#define jp_GTGTEQUALS 335 +#define jp_GTGTGT 336 +#define jp_GTGTGTEQUALS 337 +#define jp_LESLESEQUALS 338 +#define jp_LESSTHAN 339 +#define jp_LTEQUALS 340 +#define jp_LTLT 341 +#define jp_MINUS 342 +#define jp_MINUSEQUALS 343 +#define jp_MINUSMINUS 344 +#define jp_PAREEND 345 +#define jp_PARESTART 346 +#define jp_PERCENT 347 +#define jp_PERCENTEQUALS 348 +#define jp_PIPE 349 +#define jp_PIPEEQUALS 350 +#define jp_PIPEPIPE 351 +#define jp_PLUS 352 +#define jp_PLUSEQUALS 353 +#define jp_PLUSPLUS 354 +#define jp_QUESTION 355 +#define jp_SEMICOL 356 +#define jp_TILDE 357 +#define jp_TIMES 358 +#define jp_TIMESEQUALS 359 +#define jp_ERROR 360 + + + + +/* Copy the first part of user declarations. */ +#line 1 "cmDependsJavaParser.y" + +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJavaParser.cxx,v $ + Language: C++ + Date: $Date: 2007/03/05 15:36:06 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmDependsJava_yy + --defines=cmDependsJavaParserTokens.h -ocmDependsJavaParser.cxx + cmDependsJavaParser.y + +Modify cmDependsJavaParser.c: + - remove TABs + +*/ + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmDependsJava_yyerror(x) \ + cmDependsJavaError(yyscanner, x) +#define yyGetParser (cmDependsJava_yyget_extra(yyscanner)) + +/*-------------------------------------------------------------------------*/ +#include "cmDependsJavaParserHelper.h" /* Interface to parser object. */ +#include "cmDependsJavaLexer.h" /* Interface to lexer object. */ +#include "cmDependsJavaParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Internal utility functions. */ +static void cmDependsJavaError(yyscan_t yyscanner, const char* message); + +#define YYDEBUG 1 +#define YYMAXDEPTH 1000000 + + +#define jpCheckEmpty(cnt) yyGetParser->CheckEmpty(__LINE__, cnt, yyvsp); +#define jpElementStart(cnt) yyGetParser->PrepareElement(&yyval) +#define jpStoreClass(str) \ +yyGetParser->AddClassFound(str); yyGetParser->DeallocateParserType(&(str)) +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch statement contains default but + no case. */ +#endif + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 214 of yacc.c. */ +#line 372 "cmDependsJavaParser.cxx" + +#if ! defined (yyoverflow) || YYERROR_VERBOSE + +# ifndef YYFREE +# define YYFREE free +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# endif + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# define YYSTACK_ALLOC alloca +# endif +# else +# if defined (alloca) || defined (_ALLOCA_H) +# define YYSTACK_ALLOC alloca +# else +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# else +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# endif +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + short int yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined (__GNUC__) && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + register YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 23 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 2215 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 106 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 158 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 351 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 575 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 360 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned short int yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, + 39, 41, 43, 45, 47, 49, 51, 54, 57, 59, + 61, 63, 65, 68, 72, 76, 80, 84, 86, 88, + 92, 93, 95, 96, 99, 100, 103, 107, 109, 111, + 115, 121, 123, 125, 127, 129, 132, 134, 136, 138, + 140, 142, 144, 146, 148, 150, 152, 154, 158, 161, + 165, 169, 174, 175, 177, 180, 183, 185, 189, 193, + 194, 197, 199, 201, 203, 205, 207, 209, 214, 216, + 220, 222, 226, 228, 232, 234, 236, 239, 242, 246, + 251, 256, 257, 259, 264, 268, 269, 271, 273, 277, + 281, 284, 286, 290, 292, 295, 300, 306, 311, 316, + 317, 320, 326, 332, 336, 340, 341, 343, 346, 350, + 354, 355, 358, 360, 362, 364, 367, 369, 372, 374, + 377, 379, 382, 386, 387, 389, 392, 394, 398, 402, + 403, 405, 407, 410, 412, 414, 416, 419, 423, 426, + 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, + 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, + 468, 470, 472, 474, 478, 482, 485, 487, 489, 491, + 493, 495, 497, 499, 505, 513, 521, 527, 532, 533, + 535, 536, 539, 542, 544, 547, 551, 554, 560, 566, + 574, 584, 585, 587, 588, 590, 600, 601, 603, 605, + 607, 609, 611, 615, 619, 625, 629, 630, 632, 636, + 640, 644, 650, 654, 659, 660, 662, 664, 667, 673, + 676, 678, 680, 682, 684, 688, 690, 692, 694, 696, + 703, 704, 706, 707, 709, 711, 715, 720, 725, 730, + 735, 736, 738, 740, 743, 747, 750, 754, 758, 762, + 766, 770, 775, 782, 789, 796, 801, 806, 808, 810, + 814, 816, 818, 821, 824, 826, 828, 831, 834, 836, + 839, 842, 844, 847, 850, 852, 858, 863, 869, 871, + 875, 879, 883, 885, 889, 893, 895, 899, 903, 907, + 909, 913, 917, 921, 925, 929, 931, 935, 939, 941, + 945, 947, 951, 953, 957, 959, 963, 965, 969, 971, + 977, 979, 981, 985, 987, 989, 991, 993, 995, 997, + 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017, + 1019, 1021 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const short int yyrhs[] = +{ + 107, 0, -1, 122, -1, 109, -1, 53, -1, 50, + -1, 51, -1, 56, -1, 55, -1, 52, -1, 54, + -1, 111, -1, 112, -1, 7, -1, 36, -1, 26, + -1, 28, -1, 10, -1, 20, -1, 15, -1, 5, + -1, 113, -1, 116, -1, 117, -1, 113, -1, 113, + -1, 111, 234, -1, 117, 234, -1, 118, -1, 120, + -1, 119, -1, 57, -1, 71, 57, -1, 117, 72, + 119, -1, 117, 72, 11, -1, 117, 72, 42, -1, + 121, 72, 11, -1, 111, -1, 47, -1, 123, 124, + 125, -1, -1, 126, -1, -1, 124, 127, -1, -1, + 125, 130, -1, 31, 117, 101, -1, 128, -1, 129, + -1, 24, 117, 101, -1, 24, 117, 72, 103, 101, + -1, 134, -1, 165, -1, 101, -1, 132, -1, 131, + 132, -1, 34, -1, 33, -1, 32, -1, 37, -1, + 3, -1, 18, -1, 29, -1, 41, -1, 45, -1, + 48, -1, 38, -1, 135, 11, 119, -1, 133, 139, + -1, 133, 137, 139, -1, 133, 136, 139, -1, 133, + 136, 137, 139, -1, -1, 131, -1, 17, 114, -1, + 23, 138, -1, 115, -1, 138, 66, 115, -1, 68, + 140, 67, -1, -1, 140, 141, -1, 142, -1, 158, + -1, 159, -1, 130, -1, 143, -1, 148, -1, 135, + 110, 144, 101, -1, 145, -1, 144, 66, 145, -1, + 146, -1, 146, 73, 147, -1, 119, -1, 146, 62, + 61, -1, 261, -1, 174, -1, 149, 101, -1, 149, + 157, -1, 149, 157, 101, -1, 135, 110, 151, 150, + -1, 135, 47, 151, 150, -1, -1, 155, -1, 119, + 91, 152, 90, -1, 151, 62, 61, -1, -1, 153, + -1, 154, -1, 153, 66, 154, -1, 135, 110, 146, + -1, 44, 156, -1, 114, -1, 156, 66, 114, -1, + 177, -1, 37, 177, -1, 135, 160, 150, 161, -1, + 135, 160, 150, 161, 101, -1, 118, 91, 152, 90, + -1, 68, 162, 178, 67, -1, -1, 162, 163, -1, + 42, 91, 228, 90, 101, -1, 39, 91, 228, 90, + 101, -1, 135, 27, 119, -1, 164, 166, 168, -1, + -1, 167, -1, 17, 115, -1, 167, 66, 115, -1, + 68, 169, 67, -1, -1, 169, 170, -1, 171, -1, + 172, -1, 134, -1, 134, 101, -1, 165, -1, 165, + 101, -1, 143, -1, 149, 173, -1, 101, -1, 173, + 101, -1, 68, 175, 67, -1, -1, 176, -1, 176, + 66, -1, 147, -1, 176, 66, 147, -1, 68, 178, + 67, -1, -1, 179, -1, 180, -1, 179, 180, -1, + 181, -1, 183, -1, 134, -1, 182, 101, -1, 131, + 110, 144, -1, 110, 144, -1, 185, -1, 187, -1, + 191, -1, 192, -1, 201, -1, 204, -1, 185, -1, + 188, -1, 193, -1, 202, -1, 207, -1, 177, -1, + 186, -1, 189, -1, 194, -1, 203, -1, 213, -1, + 215, -1, 216, -1, 218, -1, 217, -1, 219, -1, + 212, -1, 101, -1, 119, 65, 183, -1, 119, 65, + 184, -1, 190, 101, -1, 258, -1, 242, -1, 243, + -1, 239, -1, 240, -1, 236, -1, 226, -1, 22, + 91, 261, 90, 183, -1, 22, 91, 261, 90, 184, + 16, 183, -1, 22, 91, 261, 90, 184, 16, 184, + -1, 40, 91, 261, 90, 195, -1, 68, 197, 196, + 67, -1, -1, 199, -1, -1, 197, 198, -1, 199, + 179, -1, 200, -1, 199, 200, -1, 8, 262, 65, + -1, 13, 65, -1, 49, 91, 261, 90, 183, -1, + 49, 91, 261, 90, 184, -1, 14, 183, 49, 91, + 261, 90, 101, -1, 21, 91, 206, 101, 208, 101, + 205, 90, 183, -1, -1, 210, -1, -1, 209, -1, + 21, 91, 206, 101, 208, 101, 205, 90, 184, -1, + -1, 261, -1, 211, -1, 182, -1, 211, -1, 190, + -1, 211, 66, 190, -1, 4, 261, 101, -1, 4, + 261, 65, 261, 101, -1, 6, 214, 101, -1, -1, + 119, -1, 12, 214, 101, -1, 35, 208, 101, -1, + 43, 261, 101, -1, 41, 91, 261, 90, 177, -1, + 46, 177, 221, -1, 46, 177, 220, 223, -1, -1, + 221, -1, 222, -1, 221, 222, -1, 9, 91, 154, + 90, 177, -1, 19, 177, -1, 225, -1, 230, -1, + 108, -1, 42, -1, 91, 261, 90, -1, 226, -1, + 235, -1, 236, -1, 237, -1, 263, 114, 91, 228, + 90, 227, -1, -1, 139, -1, -1, 229, -1, 261, + -1, 229, 66, 261, -1, 263, 111, 232, 231, -1, + 263, 113, 232, 231, -1, 263, 111, 234, 174, -1, + 263, 113, 234, 174, -1, -1, 234, -1, 233, -1, + 232, 233, -1, 62, 261, 61, -1, 62, 61, -1, + 234, 62, 61, -1, 224, 72, 119, -1, 39, 72, + 119, -1, 42, 72, 119, -1, 224, 72, 42, -1, + 117, 91, 228, 90, -1, 224, 72, 119, 91, 228, + 90, -1, 39, 72, 119, 91, 228, 90, -1, 42, + 72, 119, 91, 228, 90, -1, 117, 62, 261, 61, + -1, 225, 62, 261, 61, -1, 224, -1, 117, -1, + 116, 72, 11, -1, 239, -1, 240, -1, 238, 99, + -1, 238, 89, -1, 242, -1, 243, -1, 97, 241, + -1, 87, 241, -1, 244, -1, 99, 241, -1, 89, + 241, -1, 238, -1, 102, 241, -1, 75, 241, -1, + 245, -1, 91, 111, 231, 90, 241, -1, 91, 261, + 90, 244, -1, 91, 117, 234, 90, 244, -1, 241, + -1, 246, 103, 241, -1, 246, 69, 241, -1, 246, + 92, 241, -1, 246, -1, 247, 97, 246, -1, 247, + 87, 246, -1, 247, -1, 248, 86, 247, -1, 248, + 79, 247, -1, 248, 81, 247, -1, 248, -1, 249, + 84, 248, -1, 249, 77, 248, -1, 249, 85, 248, + -1, 249, 78, 248, -1, 249, 25, 112, -1, 249, + -1, 250, 74, 249, -1, 250, 76, 249, -1, 250, + -1, 251, 58, 250, -1, 251, -1, 252, 63, 251, + -1, 252, -1, 253, 94, 252, -1, 253, -1, 254, + 59, 253, -1, 254, -1, 255, 96, 254, -1, 255, + -1, 255, 100, 261, 65, 256, -1, 256, -1, 258, + -1, 259, 260, 257, -1, 117, -1, 235, -1, 237, + -1, 73, -1, 104, -1, 70, -1, 93, -1, 98, + -1, 88, -1, 83, -1, 80, -1, 82, -1, 60, + -1, 64, -1, 95, -1, 257, -1, 261, -1, 30, + -1, 117, 72, 30, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned short int yyrline[] = +{ + 0, 191, 191, 200, 208, 216, 224, 232, 240, 249, + 257, 266, 274, 283, 288, 293, 298, 303, 308, 313, + 318, 324, 332, 341, 351, 360, 369, 377, 387, 393, + 400, 407, 413, 420, 429, 439, 449, 458, 466, 475, + 484, 490, 499, 505, 514, 520, 529, 541, 549, 558, + 570, 583, 591, 599, 608, 616, 625, 625, 625, 626, + 627, 627, 627, 627, 627, 627, 628, 631, 641, 650, + 659, 668, 678, 684, 693, 702, 711, 719, 728, 737, + 743, 752, 760, 768, 776, 785, 793, 802, 808, 816, + 825, 833, 842, 851, 860, 868, 877, 885, 893, 902, + 911, 921, 928, 938, 948, 955, 962, 965, 971, 981, + 991, 1001, 1007, 1017, 1027, 1037, 1046, 1056, 1067, 1077, + 1084, 1094, 1103, 1113, 1122, 1132, 1138, 1148, 1157, 1167, + 1177, 1184, 1193, 1202, 1211, 1220, 1228, 1237, 1246, 1256, + 1266, 1275, 1285, 1295, 1302, 1311, 1321, 1330, 1340, 1349, + 1356, 1366, 1375, 1385, 1394, 1403, 1413, 1423, 1432, 1442, + 1451, 1460, 1469, 1478, 1487, 1497, 1506, 1515, 1524, 1533, + 1543, 1552, 1561, 1570, 1579, 1588, 1597, 1606, 1615, 1624, + 1633, 1642, 1652, 1662, 1673, 1683, 1693, 1702, 1711, 1720, + 1729, 1738, 1747, 1757, 1767, 1777, 1787, 1794, 1801, 1808, + 1818, 1825, 1835, 1845, 1854, 1864, 1873, 1883, 1890, 1897, + 1904, 1912, 1919, 1929, 1936, 1946, 1956, 1963, 1973, 1982, + 1992, 2002, 2011, 2021, 2030, 2040, 2051, 2058, 2065, 2076, + 2086, 2096, 2106, 2115, 2125, 2132, 2142, 2151, 2161, 2168, + 2178, 2187, 2197, 2206, 2212, 2221, 2230, 2239, 2248, 2258, + 2268, 2275, 2285, 2292, 2302, 2311, 2321, 2330, 2339, 2348, + 2358, 2365, 2375, 2384, 2394, 2404, 2410, 2417, 2427, 2437, + 2447, 2458, 2468, 2479, 2489, 2500, 2510, 2520, 2529, 2538, + 2547, 2556, 2566, 2576, 2586, 2595, 2604, 2613, 2622, 2632, + 2642, 2652, 2661, 2670, 2679, 2689, 2698, 2707, 2714, 2723, + 2732, 2741, 2751, 2760, 2769, 2779, 2788, 2797, 2806, 2816, + 2825, 2834, 2843, 2852, 2861, 2871, 2880, 2889, 2899, 2908, + 2918, 2927, 2937, 2946, 2956, 2965, 2975, 2984, 2994, 3003, + 3013, 3022, 3032, 3042, 3052, 3061, 3071, 3080, 3089, 3098, + 3107, 3116, 3125, 3134, 3143, 3152, 3161, 3170, 3180, 3190, + 3200, 3209 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "jp_ABSTRACT", "jp_ASSERT", + "jp_BOOLEAN_TYPE", "jp_BREAK", "jp_BYTE_TYPE", "jp_CASE", "jp_CATCH", + "jp_CHAR_TYPE", "jp_CLASS", "jp_CONTINUE", "jp_DEFAULT", "jp_DO", + "jp_DOUBLE_TYPE", "jp_ELSE", "jp_EXTENDS", "jp_FINAL", "jp_FINALLY", + "jp_FLOAT_TYPE", "jp_FOR", "jp_IF", "jp_IMPLEMENTS", "jp_IMPORT", + "jp_INSTANCEOF", "jp_INT_TYPE", "jp_INTERFACE", "jp_LONG_TYPE", + "jp_NATIVE", "jp_NEW", "jp_PACKAGE", "jp_PRIVATE", "jp_PROTECTED", + "jp_PUBLIC", "jp_RETURN", "jp_SHORT_TYPE", "jp_STATIC", "jp_STRICTFP", + "jp_SUPER", "jp_SWITCH", "jp_SYNCHRONIZED", "jp_THIS", "jp_THROW", + "jp_THROWS", "jp_TRANSIENT", "jp_TRY", "jp_VOID", "jp_VOLATILE", + "jp_WHILE", "jp_BOOLEANLITERAL", "jp_CHARACTERLITERAL", + "jp_DECIMALINTEGERLITERAL", "jp_FLOATINGPOINTLITERAL", + "jp_HEXINTEGERLITERAL", "jp_NULLLITERAL", "jp_STRINGLITERAL", "jp_NAME", + "jp_AND", "jp_ANDAND", "jp_ANDEQUALS", "jp_BRACKETEND", + "jp_BRACKETSTART", "jp_CARROT", "jp_CARROTEQUALS", "jp_COLON", + "jp_COMMA", "jp_CURLYEND", "jp_CURLYSTART", "jp_DIVIDE", + "jp_DIVIDEEQUALS", "jp_DOLLAR", "jp_DOT", "jp_EQUALS", "jp_EQUALSEQUALS", + "jp_EXCLAMATION", "jp_EXCLAMATIONEQUALS", "jp_GREATER", "jp_GTEQUALS", + "jp_GTGT", "jp_GTGTEQUALS", "jp_GTGTGT", "jp_GTGTGTEQUALS", + "jp_LESLESEQUALS", "jp_LESSTHAN", "jp_LTEQUALS", "jp_LTLT", "jp_MINUS", + "jp_MINUSEQUALS", "jp_MINUSMINUS", "jp_PAREEND", "jp_PARESTART", + "jp_PERCENT", "jp_PERCENTEQUALS", "jp_PIPE", "jp_PIPEEQUALS", + "jp_PIPEPIPE", "jp_PLUS", "jp_PLUSEQUALS", "jp_PLUSPLUS", "jp_QUESTION", + "jp_SEMICOL", "jp_TILDE", "jp_TIMES", "jp_TIMESEQUALS", "jp_ERROR", + "$accept", "Goal", "Literal", "IntegerLiteral", "Type", "PrimitiveType", + "ReferenceType", "ClassOrInterfaceType", "ClassType", "InterfaceType", + "ArrayType", "Name", "SimpleName", "Identifier", "QualifiedName", + "SimpleType", "CompilationUnit", "PackageDeclarationopt", + "ImportDeclarations", "TypeDeclarations", "PackageDeclaration", + "ImportDeclaration", "SingleTypeImportDeclaration", + "TypeImportOnDemandDeclaration", "TypeDeclaration", "Modifiers", + "Modifier", "ClassHeader", "ClassDeclaration", "Modifiersopt", "Super", + "Interfaces", "InterfaceTypeList", "ClassBody", "ClassBodyDeclarations", + "ClassBodyDeclaration", "ClassMemberDeclaration", "FieldDeclaration", + "VariableDeclarators", "VariableDeclarator", "VariableDeclaratorId", + "VariableInitializer", "MethodDeclaration", "MethodHeader", "Throwsopt", + "MethodDeclarator", "FormalParameterListopt", "FormalParameterList", + "FormalParameter", "Throws", "ClassTypeList", "MethodBody", + "StaticInitializer", "ConstructorDeclaration", "ConstructorDeclarator", + "ConstructorBody", "ExplicitConstructorInvocationopt", + "ExplicitConstructorInvocation", "InterfaceHeader", + "InterfaceDeclaration", "ExtendsInterfacesopt", "ExtendsInterfaces", + "InterfaceBody", "InterfaceMemberDeclarations", + "InterfaceMemberDeclaration", "ConstantDeclaration", + "AbstractMethodDeclaration", "Semicols", "ArrayInitializer", + "VariableInitializersOptional", "VariableInitializers", "Block", + "BlockStatementsopt", "BlockStatements", "BlockStatement", + "LocalVariableDeclarationStatement", "LocalVariableDeclaration", + "Statement", "StatementNoShortIf", + "StatementWithoutTrailingSubstatement", "EmptyStatement", + "LabeledStatement", "LabeledStatementNoShortIf", "ExpressionStatement", + "StatementExpression", "IfThenStatement", "IfThenElseStatement", + "IfThenElseStatementNoShortIf", "SwitchStatement", "SwitchBlock", + "SwitchLabelsopt", "SwitchBlockStatementGroups", + "SwitchBlockStatementGroup", "SwitchLabels", "SwitchLabel", + "WhileStatement", "WhileStatementNoShortIf", "DoStatement", + "ForStatement", "ForUpdateopt", "ForInitopt", "ForStatementNoShortIf", + "Expressionopt", "ForInit", "ForUpdate", "StatementExpressionList", + "AssertStatement", "BreakStatement", "Identifieropt", + "ContinueStatement", "ReturnStatement", "ThrowStatement", + "SynchronizedStatement", "TryStatement", "Catchesopt", "Catches", + "CatchClause", "Finally", "Primary", "PrimaryNoNewArray", + "ClassInstanceCreationExpression", "ClassBodyOpt", "ArgumentListopt", + "ArgumentList", "ArrayCreationExpression", "Dimsopt", "DimExprs", + "DimExpr", "Dims", "FieldAccess", "MethodInvocation", "ArrayAccess", + "PostfixExpression", "PostIncrementExpression", + "PostDecrementExpression", "UnaryExpression", "PreIncrementExpression", + "PreDecrementExpression", "UnaryExpressionNotPlusMinus", + "CastExpression", "MultiplicativeExpression", "AdditiveExpression", + "ShiftExpression", "RelationalExpression", "EqualityExpression", + "AndExpression", "ExclusiveOrExpression", "InclusiveOrExpression", + "ConditionalAndExpression", "ConditionalOrExpression", + "ConditionalExpression", "AssignmentExpression", "Assignment", + "LeftHandSide", "AssignmentOperator", "Expression", "ConstantExpression", + "New", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned short int yyr1[] = +{ + 0, 106, 107, 108, 108, 108, 108, 108, 108, 109, + 109, 110, 110, 111, 111, 111, 111, 111, 111, 111, + 111, 112, 112, 113, 114, 115, 116, 116, 117, 117, + 118, 119, 119, 120, 120, 120, 120, 121, 121, 122, + 123, 123, 124, 124, 125, 125, 126, 127, 127, 128, + 129, 130, 130, 130, 131, 131, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 133, 134, 134, + 134, 134, 135, 135, 136, 137, 138, 138, 139, 140, + 140, 141, 141, 141, 141, 142, 142, 143, 144, 144, + 145, 145, 146, 146, 147, 147, 148, 148, 148, 149, + 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, + 155, 156, 156, 157, 158, 159, 159, 160, 161, 162, + 162, 163, 163, 164, 165, 166, 166, 167, 167, 168, + 169, 169, 170, 170, 170, 170, 170, 170, 171, 172, + 173, 173, 174, 175, 175, 175, 176, 176, 177, 178, + 178, 179, 179, 180, 180, 180, 181, 182, 182, 183, + 183, 183, 183, 183, 183, 184, 184, 184, 184, 184, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 186, 187, 188, 189, 190, 190, 190, 190, + 190, 190, 190, 191, 192, 193, 194, 195, 196, 196, + 197, 197, 198, 199, 199, 200, 200, 201, 202, 203, + 204, 205, 205, 206, 206, 207, 208, 208, 209, 209, + 210, 211, 211, 212, 212, 213, 214, 214, 215, 216, + 217, 218, 219, 219, 220, 220, 221, 221, 222, 223, + 224, 224, 225, 225, 225, 225, 225, 225, 225, 226, + 227, 227, 228, 228, 229, 229, 230, 230, 230, 230, + 231, 231, 232, 232, 233, 234, 234, 235, 235, 235, + 235, 236, 236, 236, 236, 237, 237, 238, 238, 238, + 238, 238, 239, 240, 241, 241, 241, 241, 241, 242, + 243, 244, 244, 244, 244, 245, 245, 245, 246, 246, + 246, 246, 247, 247, 247, 248, 248, 248, 248, 249, + 249, 249, 249, 249, 249, 250, 250, 250, 251, 251, + 252, 252, 253, 253, 254, 254, 255, 255, 256, 256, + 257, 257, 258, 259, 259, 259, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 261, 262, + 263, 263 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 2, 3, 3, 3, 3, 1, 1, 3, + 0, 1, 0, 2, 0, 2, 3, 1, 1, 3, + 5, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, + 3, 4, 0, 1, 2, 2, 1, 3, 3, 0, + 2, 1, 1, 1, 1, 1, 1, 4, 1, 3, + 1, 3, 1, 3, 1, 1, 2, 2, 3, 4, + 4, 0, 1, 4, 3, 0, 1, 1, 3, 3, + 2, 1, 3, 1, 2, 4, 5, 4, 4, 0, + 2, 5, 5, 3, 3, 0, 1, 2, 3, 3, + 0, 2, 1, 1, 1, 2, 1, 2, 1, 2, + 1, 2, 3, 0, 1, 2, 1, 3, 3, 0, + 1, 1, 2, 1, 1, 1, 2, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 5, 7, 7, 5, 4, 0, 1, + 0, 2, 2, 1, 2, 3, 2, 5, 5, 7, + 9, 0, 1, 0, 1, 9, 0, 1, 1, 1, + 1, 1, 3, 3, 5, 3, 0, 1, 3, 3, + 3, 5, 3, 4, 0, 1, 1, 2, 5, 2, + 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, + 0, 1, 0, 1, 1, 3, 4, 4, 4, 4, + 0, 1, 1, 2, 3, 2, 3, 3, 3, 3, + 3, 4, 6, 6, 6, 4, 4, 1, 1, 3, + 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, + 2, 1, 2, 2, 1, 5, 4, 5, 1, 3, + 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, + 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned short int yydefact[] = +{ + 40, 0, 0, 2, 42, 41, 20, 13, 17, 19, + 18, 15, 16, 14, 38, 31, 0, 37, 0, 28, + 30, 29, 0, 1, 44, 32, 0, 46, 0, 0, + 72, 43, 47, 48, 34, 35, 33, 36, 0, 60, + 61, 62, 58, 57, 56, 59, 66, 63, 64, 65, + 53, 45, 73, 54, 0, 51, 0, 125, 52, 0, + 49, 55, 0, 0, 79, 0, 0, 68, 0, 0, + 0, 0, 126, 0, 24, 74, 23, 25, 76, 75, + 72, 0, 70, 69, 67, 123, 127, 130, 124, 0, + 50, 0, 59, 78, 84, 0, 80, 81, 85, 86, + 0, 82, 83, 71, 72, 128, 77, 72, 114, 38, + 0, 11, 12, 21, 22, 23, 28, 101, 96, 97, + 113, 129, 134, 0, 138, 0, 136, 131, 132, 133, + 0, 226, 226, 0, 0, 0, 350, 216, 0, 0, + 63, 243, 0, 0, 0, 5, 6, 9, 4, 10, + 8, 7, 0, 0, 0, 182, 242, 3, 0, 22, + 333, 30, 73, 155, 0, 170, 0, 72, 151, 153, + 0, 154, 159, 171, 160, 172, 0, 161, 162, 173, + 163, 174, 164, 181, 175, 176, 177, 179, 178, 180, + 277, 240, 245, 241, 246, 247, 248, 0, 189, 190, + 187, 188, 186, 0, 0, 0, 101, 92, 0, 88, + 90, 101, 0, 26, 27, 72, 0, 0, 102, 98, + 135, 140, 139, 137, 0, 0, 0, 0, 0, 37, + 0, 278, 245, 247, 291, 280, 281, 298, 284, 285, + 288, 294, 302, 305, 309, 315, 318, 320, 322, 324, + 326, 328, 330, 348, 331, 0, 227, 0, 0, 0, + 0, 213, 0, 0, 217, 0, 0, 0, 0, 0, + 234, 0, 278, 246, 248, 290, 0, 289, 92, 158, + 0, 0, 0, 252, 0, 0, 148, 152, 156, 185, + 0, 0, 283, 282, 345, 346, 338, 336, 343, 344, + 342, 341, 339, 347, 340, 337, 0, 37, 24, 0, + 72, 0, 100, 0, 87, 0, 0, 99, 265, 0, + 0, 0, 106, 107, 111, 110, 119, 115, 141, 293, + 287, 37, 278, 0, 286, 292, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 225, + 228, 0, 0, 219, 221, 0, 214, 218, 0, 229, + 268, 0, 0, 269, 230, 0, 0, 232, 236, 0, + 244, 279, 0, 351, 0, 253, 254, 183, 157, 270, + 267, 0, 332, 0, 260, 262, 0, 260, 0, 252, + 0, 104, 89, 93, 143, 91, 95, 94, 266, 0, + 117, 72, 0, 72, 116, 0, 26, 27, 244, 300, + 301, 299, 304, 303, 307, 308, 306, 314, 311, 313, + 310, 312, 316, 317, 319, 321, 323, 325, 327, 0, + 0, 0, 216, 0, 0, 252, 0, 0, 252, 72, + 0, 233, 237, 0, 275, 271, 0, 252, 276, 0, + 256, 263, 261, 258, 257, 259, 0, 103, 146, 0, + 144, 109, 108, 112, 0, 243, 120, 0, 0, 0, + 296, 0, 224, 0, 0, 222, 0, 0, 0, 30, + 193, 0, 159, 166, 167, 168, 169, 0, 200, 196, + 231, 0, 0, 239, 207, 255, 0, 264, 250, 142, + 145, 252, 252, 118, 295, 297, 329, 0, 211, 213, + 0, 0, 0, 0, 273, 198, 274, 0, 272, 251, + 249, 147, 0, 0, 209, 0, 212, 220, 0, 0, + 0, 184, 194, 0, 0, 0, 201, 72, 203, 238, + 0, 0, 0, 216, 0, 0, 349, 0, 206, 197, + 202, 204, 122, 121, 210, 0, 0, 208, 205, 211, + 0, 0, 195, 0, 215 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const short int yydefgoto[] = +{ + -1, 2, 156, 157, 158, 229, 112, 113, 75, 78, + 230, 231, 19, 20, 21, 22, 3, 4, 24, 30, + 5, 31, 32, 33, 51, 52, 53, 54, 163, 164, + 65, 66, 79, 67, 80, 96, 97, 98, 208, 209, + 210, 405, 99, 100, 217, 206, 321, 322, 323, 218, + 325, 119, 101, 102, 117, 327, 413, 476, 57, 58, + 71, 72, 88, 104, 127, 128, 129, 222, 406, 469, + 470, 165, 166, 167, 168, 169, 170, 171, 491, 172, + 173, 174, 493, 175, 176, 177, 178, 494, 179, 499, + 545, 525, 546, 547, 548, 180, 495, 181, 182, 535, + 365, 496, 263, 366, 536, 367, 183, 184, 257, 185, + 186, 187, 188, 189, 376, 377, 378, 451, 190, 191, + 232, 530, 384, 385, 193, 415, 394, 395, 214, 194, + 233, 196, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 203, 306, 386, 557, 204 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -503 +static const short int yypact[] = +{ + 159, 1039, 236, -503, -503, -503, -503, -503, -503, -503, + -503, -503, -503, -503, -503, -503, 186, -503, 56, -503, + -503, -503, 178, -503, 35, -503, 21, -503, 248, 1039, + 273, -503, -503, -503, -503, -503, -503, -503, 78, -503, + -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, + -503, -503, 2088, -503, 32, -503, 16, 245, -503, 28, + -503, -503, 1039, 1039, -503, 80, 206, -503, 129, 129, + 1039, 221, 228, 194, -503, -503, 225, -503, -503, 234, + 164, 206, -503, -503, -503, -503, -503, -503, -503, 1039, + -503, 1039, 233, -503, -503, 739, -503, -503, -503, -503, + -49, -503, -503, -503, 1116, -503, -503, 1276, -503, 129, + 129, 40, -503, -503, -503, 122, 212, 265, -503, 215, + -503, -503, 219, 739, -503, 222, 224, -503, -503, -503, + 1820, 129, 129, 1627, 237, 238, -503, 1820, 241, 239, + 242, 283, 1820, 233, 266, -503, -503, -503, -503, -503, + -503, -503, 1820, 1820, 1820, -503, -503, -503, 129, 284, + 476, 293, 2067, -503, 349, -503, 296, 1366, -503, -503, + 264, -503, -503, -503, -503, -503, 268, -503, -503, -503, + -503, -503, -503, -503, -503, -503, -503, -503, -503, -503, + 294, 305, 72, -503, 2070, 88, 2084, 121, 130, 148, + -503, -503, -503, 2111, 1039, 281, 133, 281, -25, -503, + 126, 133, 314, 315, 315, 921, 1039, 308, -503, -503, + -503, -503, 277, -503, 1820, 1820, 1820, 1820, 1820, 317, + 284, 545, -503, -503, 121, -503, -503, -503, -503, -503, + -503, -503, 73, 124, 163, 59, 196, 323, 319, 290, + 324, 18, -503, -503, -503, -30, -503, 285, 286, 242, + 342, 1941, 1820, 291, -503, 129, 1820, 1820, 129, 292, + 385, 1820, 96, -503, -503, -503, 310, -503, -503, 329, + 387, 1085, 3, 1820, 1627, 129, -503, -503, -503, -503, + 175, 1820, -503, -503, -503, -503, -503, -503, -503, -503, + -503, -503, -503, -503, -503, -503, 1820, 339, 339, 311, + 921, 343, -503, 129, -503, 344, 1766, -503, -503, 346, + 1039, 313, 347, -503, -503, 353, -503, 307, -503, -503, + -503, 6, 545, 326, -503, -503, 1820, 1820, 1820, 1820, + 1820, 1820, 1820, 1820, 1039, 1820, 1820, 1820, 1820, 1820, + 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, -503, -503, + -503, 330, 2067, -503, -503, 327, -503, 354, 334, -503, + 345, 335, 340, 348, -503, 351, 416, 232, -503, 356, + -503, -503, 376, -503, 357, 377, -503, -503, 329, -503, + 358, 390, -503, 1085, 339, -503, 154, 339, 154, 1820, + 362, -503, -503, -503, 1766, -503, -503, -503, -503, 129, + -503, 2088, 1039, 1456, -503, 363, 70, 93, 1874, -503, + -503, -503, 73, 73, 124, 124, 124, -503, 163, 163, + 163, 163, 59, 59, 196, 323, 319, 290, 324, 383, + 360, 1820, 1820, 1995, 1699, 1820, 386, 233, 1820, 2088, + 233, -503, -503, 1627, -503, -503, 1820, 1820, -503, 394, + -503, -503, 315, -503, -503, -503, 369, -503, -503, 396, + 404, 410, -503, -503, 26, 113, -503, 407, 1820, 1874, + -503, 1820, -503, 391, 374, -503, 393, 395, 397, 411, + -503, 466, 471, -503, -503, -503, -503, 399, -503, -503, + -503, 400, 401, -503, -503, -503, 402, -503, 206, -503, + 1766, 1820, 1820, -503, -503, -503, -503, 403, 1995, 1941, + 1820, 1820, 1699, 1627, -503, 34, -503, 233, -503, -503, + -503, -503, 405, 412, -503, 413, -503, 354, 406, 418, + 421, -503, -503, 1820, 429, 430, -503, 1186, -503, -503, + 419, 422, 1627, 1820, 1699, 1699, -503, 447, -503, -503, + 1555, -503, -503, -503, -503, 423, 497, -503, -503, 1995, + 1699, 432, -503, 1699, -503 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const short int yypgoto[] = +{ + -503, -503, -503, -503, -85, 2, 181, -41, -198, -45, + -87, -1, 431, 14, -503, -503, -503, -503, -503, -503, + -503, -503, -503, -503, 448, -81, -47, -503, 7, -23, + -503, 462, -503, -64, -503, -503, -503, 425, -146, 217, + 123, -391, -503, 427, -101, 424, 230, -503, -360, -503, + -503, -503, -503, -503, -503, -503, -503, -503, -503, 439, + -503, -503, -503, -503, -503, -503, -503, -503, -110, -503, + -503, -77, 138, -12, -163, -503, -250, -13, -421, -414, + -503, -503, -503, -503, -252, -503, -503, -503, -503, -503, + -503, -503, -503, -503, 5, -503, -503, -503, -503, -16, + 36, -503, -418, -503, -503, -502, -503, -503, 440, -503, + -503, -503, -503, -503, -503, -503, 179, -503, -503, -503, + -54, -503, -341, -503, -503, -149, 255, -136, 102, 652, + 101, 688, 145, 157, 201, -98, 289, 338, -384, -503, + -59, -58, -92, -57, 213, 226, 218, 223, 227, -503, + 95, 274, 350, -503, -503, 660, -503, -503 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -336 +static const short int yytable[] = +{ + 18, 82, 83, 17, 287, 61, 309, 56, 114, 364, + 110, 363, 279, 468, 34, 108, 537, 103, 324, 107, + 159, 74, 77, 120, 484, 86, 162, 68, 38, 77, + 492, 17, 34, 383, 480, 357, 114, 55, 110, 34, + 36, 313, 543, 69, 105, 35, 106, 544, 77, 62, + 77, 472, 118, 192, 275, 63, 277, 95, 466, 29, + 15, 76, 76, 35, 17, 17, 270, 537, 212, 76, + 35, 358, 17, 36, 16, 114, 314, 285, 15, 192, + 159, 123, 84, 85, 344, 15, 162, 55, 76, 502, + 76, 17, 16, 17, 115, 515, -260, 111, 265, 16, + 64, 541, 212, 63, 497, 312, 160, 501, 492, 111, + 317, 122, -37, 192, 355, 61, 506, 511, 356, 531, + 260, 161, 115, 205, 207, 111, 329, 330, 26, 334, + 335, 73, 319, 566, 567, 565, 345, 346, -192, 388, + 492, 492, 336, 347, 348, 256, 256, 161, 64, 572, + 59, 272, 574, 272, -191, 319, 492, 27, 281, 492, + -261, 115, -192, 308, 111, 337, 160, 39, 282, 111, + 532, 533, 278, -192, 159, 74, 338, 216, -191, 60, + 362, 161, 40, 479, 212, 268, 15, 283, 315, -191, + 1, 485, 320, 41, 26, 311, 42, 43, 44, 316, + 16, 92, 46, 76, 512, 47, 307, 192, 195, 48, + 292, 339, 49, 213, 473, 76, 319, 389, 17, -280, + 293, 340, 404, 272, 272, 332, 272, 272, 331, -280, + 192, 93, 15, 114, 195, 409, 23, -281, 419, 420, + 421, 375, 341, 25, 342, 460, 16, -281, 464, 343, + 28, -235, 197, 428, 429, 430, 431, 114, 461, 37, + 160, 461, 70, 111, 198, 50, 364, 364, 195, 363, + 349, 387, 350, -39, 64, 114, 39, 285, 197, 370, + 422, 423, 373, 424, 425, 426, 463, 320, 465, 87, + 198, 40, 432, 433, 89, 90, 36, 26, 161, 278, + 91, 107, 41, 215, 390, 42, 43, 44, 199, 216, + 45, 46, 197, 265, 47, 61, 219, 364, 48, 115, + 220, 49, 111, 221, 198, 223, 159, 278, 261, 262, + 266, 213, 162, 267, 199, 272, 272, 272, 272, 272, + 272, 272, 272, 115, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 268, 280, 271, 284, 192, + 68, 115, 195, 286, 111, 288, 290, 291, 199, 289, + 500, 74, 310, 503, 50, 318, 326, 319, 328, 212, + 514, 351, 352, 354, 353, 195, 359, 360, 320, 192, + 192, 361, 369, 374, 375, 313, 200, 287, 381, 192, + 380, 393, 399, 410, 401, 403, 197, 408, 414, 396, + 398, 76, 160, 411, 17, 111, 418, 272, 198, 412, + 443, 441, 200, 278, 444, 446, 320, 161, 442, 197, + 447, 490, 159, 416, 417, 450, 445, 454, 362, 448, + 504, 198, 449, 456, 529, 201, 453, 455, 481, 457, + 549, 458, 467, 478, 498, 507, 200, 202, 489, 508, + 159, 482, 199, 509, 192, 192, 162, 161, 192, 192, + 510, 201, 315, 159, 513, 518, 522, 272, 272, 162, + 272, 517, 523, 202, 519, 199, 520, -165, 521, 524, + 526, 527, 528, 192, 558, 550, 462, 559, 192, 462, + 192, 192, 551, 552, 534, 201, 192, 553, 554, 387, + 542, 555, 568, 570, 195, 192, 192, 202, 160, 192, + 562, 111, 573, 563, 569, 427, 116, 81, 94, 124, + 402, 125, 471, -23, 211, 560, 489, 161, 281, 564, + 400, 490, 504, 126, 195, 195, 160, -23, 282, 111, + 200, 477, 561, 571, 195, 538, 452, 542, 197, 160, + 564, 161, 111, 397, 434, -278, 161, 283, 489, 489, + 198, 436, 258, 200, 161, -278, 516, 437, 435, 0, + 392, 0, 438, 0, 489, 0, 0, 489, 197, 197, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 201, + 198, 198, 0, 0, 0, -333, 0, 281, 0, -333, + 198, 202, 0, 0, 199, -333, 0, 282, -333, 195, + 195, 0, 201, 195, 195, -333, 0, -333, -333, 0, + 0, 0, 0, -333, 202, 0, 283, 0, -333, 0, + -333, 0, 0, -333, 199, 199, 0, 0, 195, -333, + 0, 0, 0, 195, 199, 195, 195, 0, 0, 0, + 0, 195, 0, 197, 197, 0, 0, 197, 197, 0, + 195, 195, 0, 0, 195, 198, 198, 0, 0, 198, + 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 197, 0, 197, + 197, 0, 200, 0, 198, 197, 0, 0, 0, 198, + 0, 198, 198, 0, 197, 197, 0, 198, 197, 199, + 199, 0, 0, 199, 199, 0, 198, 198, 0, 0, + 198, 0, 200, 200, 0, 0, 0, 0, 0, 0, + 0, 0, 200, 0, 6, 0, 7, 0, 199, 8, + 68, 201, 0, 199, 9, 199, 199, 0, 0, 10, + 0, 199, 0, 202, 0, 11, 69, 12, 0, 0, + 199, 199, 0, 0, 199, 13, 0, 0, 0, 0, + 0, 201, 201, 0, 0, 0, 109, 0, 0, 0, + 255, 201, 0, 202, 202, 0, 15, 264, 0, 0, + 0, 0, 269, 202, 273, 0, 273, 200, 200, 0, + 16, 200, 200, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, + 274, 200, 274, 200, 200, 0, 0, 0, 0, 200, + 0, 0, 0, 0, 0, 0, 201, 201, 200, 200, + 201, 201, 200, 0, 0, 0, 0, 0, 202, 202, + 0, 0, 202, 202, 0, 0, 273, 273, 0, 273, + 273, 0, 0, 0, 0, 201, 333, 0, 0, 0, + 201, 0, 201, 201, 0, 0, 0, 202, 201, 0, + 0, 0, 202, 0, 202, 202, 0, 201, 201, 0, + 202, 201, 274, 274, 0, 274, 274, 0, 0, 202, + 202, 0, 368, 202, 39, 0, 371, 372, 0, 0, + 0, 379, 0, 0, 0, 0, 0, 0, 0, 40, + 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, + 41, 391, 0, 42, 43, 44, 0, 0, 45, 46, + 0, 0, 47, 0, 0, 0, 48, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 407, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, + 273, 273, 273, 273, 273, 273, 0, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 0, 0, + 0, -105, 0, 0, 0, 0, 439, 440, 0, 0, + 0, 0, 0, 0, 274, 274, 274, 274, 274, 274, + 274, 274, 0, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 6, 0, 7, 0, 0, 8, + 0, 0, 0, 459, 9, 0, 0, 0, 0, 10, + 0, 0, 0, 0, 407, 11, 0, 12, 0, 0, + 273, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 6, 0, 7, 0, 0, 8, 15, 0, 0, 0, + 9, 483, 264, 0, 0, 10, 274, 0, 0, 0, + 16, 11, 0, 12, 0, 136, 505, 0, 0, 39, + 0, 13, 0, 0, 138, 0, 0, 141, 0, 0, + 273, 273, 14, 273, 40, 145, 146, 147, 148, 149, + 150, 151, 15, 0, 0, 41, 318, 0, 42, 43, + 44, 0, 0, 45, 46, 0, 16, 47, 0, 0, + 224, 48, 0, 0, 49, 0, 274, 274, 0, 274, + 407, 0, 225, 0, 152, 0, 226, 0, 0, 0, + 539, 540, 227, 121, 154, 0, 0, 228, 0, 39, + 130, 6, 131, 7, 543, 0, 8, 0, 132, 544, + 133, 9, 0, 556, 40, 0, 10, 134, 135, 0, + 0, 0, 11, 264, 12, 41, 136, 0, 42, 43, + 44, 137, 13, 45, 46, 138, 139, 140, 141, 142, + 0, 48, 143, 14, 49, 144, 145, 146, 147, 148, + 149, 150, 151, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -199, 107, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 153, 0, 39, + 130, 6, 131, 7, 0, 154, 8, 155, 132, 0, + 133, 9, 0, 0, 40, 0, 10, 134, 135, 0, + 0, 0, 11, 0, 12, 41, 136, 0, 42, 43, + 44, 137, 13, 45, 46, 138, 139, 140, 141, 142, + 0, 48, 143, 14, 49, 144, 145, 146, 147, 148, + 149, 150, 151, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -149, 107, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 153, 0, 39, + 130, 6, 131, 7, 0, 154, 8, 155, 132, 0, + 133, 9, 0, 0, 40, 0, 10, 134, 135, 0, + 0, 0, 11, 0, 12, 41, 136, 0, 42, 43, + 44, 137, 13, 45, 46, 138, 139, 140, 141, 142, + 0, 48, 143, 14, 49, 144, 145, 146, 147, 148, + 149, 150, 151, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -150, 107, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 153, 0, 39, + 130, 6, 131, 7, 0, 154, 8, 155, 132, 0, + 133, 9, 0, 0, 40, 0, 10, 134, 135, 0, + 0, 0, 11, 0, 12, 41, 136, 0, 42, 43, + 44, 137, 13, 45, 46, 474, 139, 140, 475, 142, + 0, 48, 143, 14, 49, 144, 145, 146, 147, 148, + 149, 150, 151, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -149, 107, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 153, 0, 0, + 0, 0, 0, 0, 0, 154, 0, 155, 39, 130, + 6, 131, 7, 0, 0, 8, -72, 132, 0, 133, + 9, 0, 0, 40, 0, 10, 134, 135, 0, 0, + 0, 11, 0, 12, 41, 136, 0, 42, 43, 44, + 137, 13, 45, 46, 138, 139, 140, 141, 142, 0, + 48, 143, 14, 49, 144, 145, 146, 147, 148, 149, + 150, 151, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 107, 0, 0, 16, 0, 0, 0, + 0, 130, 6, 131, 7, 0, 0, 8, 0, 132, + 0, 133, 9, 0, 152, 0, 153, 10, 134, 135, + 0, 0, 0, 11, 154, 12, 155, 136, 0, 0, + 0, 0, 137, 13, 0, 0, 138, 139, 259, 141, + 142, 0, 0, 143, 14, 0, 144, 145, 146, 147, + 148, 149, 150, 151, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 107, 0, 0, 16, 0, + 0, 0, 0, 130, 6, 131, 7, 0, 0, 8, + 0, 132, 0, 133, 9, 0, 152, 0, 153, 10, + 486, 487, 0, 0, 0, 11, 154, 12, 155, 136, + 0, 0, 0, 0, 137, 13, 0, 0, 138, 139, + 259, 141, 142, 0, 0, 143, 14, 0, 488, 145, + 146, 147, 148, 149, 150, 151, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, + 16, 6, 0, 7, 0, 0, 8, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 10, 0, 152, 0, + 153, 0, 11, 0, 12, 0, 136, 0, 154, 0, + 155, 0, 13, 0, 0, 138, 0, 0, 141, 0, + 0, 0, 0, 14, 0, 0, 145, 146, 147, 148, + 149, 150, 151, 15, 0, 6, 0, 7, 0, 0, + 8, 0, 0, 0, 404, 9, 0, 16, 0, 0, + 10, 224, 0, 0, 0, 0, 11, 0, 12, 0, + 136, 0, 0, 225, 0, 152, 13, 226, 0, 138, + 0, 0, 141, 227, 0, 154, 0, 14, 228, 0, + 145, 146, 147, 148, 149, 150, 151, 15, 0, 6, + 0, 7, 0, 0, 8, 0, 0, 0, 0, 9, + 0, 16, 0, 0, 10, 224, 0, 0, 0, 0, + 11, 0, 12, 0, 136, 0, 0, 225, 0, 152, + 13, 226, 0, 138, 0, 0, 141, 227, 0, 154, + 0, 14, 228, 0, 145, 146, 147, 148, 149, 150, + 151, 15, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 16, 6, 0, 7, 224, + 0, 8, 0, 0, 0, 0, 9, 0, 0, 40, + 0, 10, 0, 0, 0, 226, 0, 11, 0, 12, + 41, 136, 0, 42, 43, 44, 228, 13, 45, 46, + 138, 0, 47, 141, 0, 0, 48, 0, 14, 49, + 0, 145, 146, 147, 148, 149, 150, 151, 15, 0, + 6, 0, 7, 0, 0, 8, 0, 0, 0, 0, + 9, 0, 16, 0, 0, 10, 0, 0, 0, 0, + 0, 11, 0, 12, 0, 136, 0, 0, 0, 0, + 152, 13, 153, 0, 138, 0, 0, 141, 0, 0, + 154, 0, 14, 0, 0, 145, 146, 147, 148, 149, + 150, 151, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 39, 0, 6, 0, 7, 0, 0, 8, 0, 0, + 0, 0, 9, 0, 152, 40, 153, 10, 0, 0, + 0, 39, 0, 11, 154, 12, 41, 0, 0, 42, + 43, 44, 0, 13, 45, 46, 40, 0, 47, 0, + 0, 0, 48, 0, 14, 49, 0, 41, 0, 0, + 42, 43, 44, 0, 15, 45, 46, 0, 0, 47, + -334, 0, 0, 48, -334, 0, 49, 0, 16, 0, + -334, 0, 0, -334, -335, 0, 0, 0, -335, 0, + -334, 0, -334, -334, -335, 0, 0, -335, -334, 0, + 0, 0, 0, -334, -335, -334, -335, -335, -334, 0, + 0, 294, -335, 0, -334, 295, 0, -335, 0, -335, + 0, 296, -335, 0, 297, 0, 0, 0, -335, 0, + 0, 298, 0, 299, 300, 0, 0, 0, 0, 301, + 0, 0, 0, 0, 302, 0, 303, 0, 0, 304, + 0, 0, 0, 0, 0, 305 +}; + +static const short int yycheck[] = +{ + 1, 65, 66, 1, 167, 52, 204, 30, 95, 261, + 95, 261, 158, 404, 11, 92, 518, 81, 216, 68, + 107, 62, 63, 100, 442, 70, 107, 11, 29, 70, + 444, 29, 11, 30, 418, 65, 123, 30, 123, 11, + 26, 66, 8, 27, 89, 42, 91, 13, 89, 17, + 91, 411, 101, 107, 152, 23, 154, 80, 399, 24, + 57, 62, 63, 42, 62, 63, 143, 569, 62, 70, + 42, 101, 70, 59, 71, 162, 101, 162, 57, 133, + 167, 104, 68, 69, 25, 57, 167, 80, 89, 449, + 91, 89, 71, 91, 95, 479, 90, 95, 72, 71, + 68, 522, 62, 23, 445, 206, 107, 448, 522, 107, + 211, 104, 72, 167, 96, 162, 457, 91, 100, 510, + 133, 107, 123, 109, 110, 123, 224, 225, 72, 227, + 228, 103, 62, 554, 555, 553, 77, 78, 66, 285, + 554, 555, 69, 84, 85, 131, 132, 133, 68, 570, + 72, 152, 573, 154, 66, 62, 570, 101, 62, 573, + 90, 162, 90, 204, 162, 92, 167, 3, 72, 167, + 511, 512, 158, 101, 261, 216, 103, 44, 90, 101, + 261, 167, 18, 90, 62, 72, 57, 91, 62, 101, + 31, 443, 215, 29, 72, 62, 32, 33, 34, 73, + 71, 37, 38, 204, 91, 41, 204, 261, 107, 45, + 89, 87, 48, 111, 412, 216, 62, 42, 216, 89, + 99, 97, 68, 224, 225, 226, 227, 228, 226, 99, + 284, 67, 57, 320, 133, 320, 0, 89, 336, 337, + 338, 9, 79, 57, 81, 394, 71, 99, 397, 86, + 72, 19, 107, 345, 346, 347, 348, 344, 394, 11, + 261, 397, 17, 261, 107, 101, 518, 519, 167, 519, + 74, 284, 76, 0, 68, 362, 3, 362, 133, 265, + 339, 340, 268, 341, 342, 343, 396, 310, 398, 68, + 133, 18, 349, 350, 66, 101, 282, 72, 284, 285, + 66, 68, 29, 91, 290, 32, 33, 34, 107, 44, + 37, 38, 167, 72, 41, 362, 101, 569, 45, 320, + 101, 48, 320, 101, 167, 101, 413, 313, 91, 91, + 91, 229, 413, 91, 133, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 72, 72, 91, 65, 413, + 11, 362, 261, 67, 362, 101, 72, 62, 167, 101, + 447, 412, 91, 450, 101, 61, 68, 62, 101, 62, + 478, 58, 63, 59, 94, 284, 101, 101, 411, 443, + 444, 49, 101, 101, 9, 66, 107, 560, 11, 453, + 90, 62, 91, 90, 61, 61, 261, 61, 101, 307, + 308, 412, 413, 66, 412, 413, 90, 418, 261, 66, + 66, 91, 133, 409, 90, 90, 449, 413, 101, 284, + 90, 444, 519, 331, 332, 19, 91, 61, 519, 91, + 453, 284, 91, 66, 508, 107, 90, 90, 65, 91, + 527, 61, 90, 90, 68, 61, 167, 107, 444, 90, + 547, 101, 261, 67, 518, 519, 547, 453, 522, 523, + 66, 133, 62, 560, 67, 101, 65, 478, 479, 560, + 481, 90, 16, 133, 91, 284, 91, 16, 91, 90, + 90, 90, 90, 547, 65, 90, 394, 67, 552, 397, + 554, 555, 90, 90, 101, 167, 560, 101, 90, 522, + 523, 90, 65, 16, 413, 569, 570, 167, 519, 573, + 101, 519, 90, 101, 101, 344, 95, 65, 80, 104, + 313, 104, 409, 57, 110, 547, 522, 523, 62, 552, + 310, 554, 555, 104, 443, 444, 547, 71, 72, 547, + 261, 413, 547, 569, 453, 519, 377, 570, 413, 560, + 573, 547, 560, 308, 351, 89, 552, 91, 554, 555, + 413, 353, 132, 284, 560, 99, 481, 354, 352, -1, + 306, -1, 355, -1, 570, -1, -1, 573, 443, 444, + -1, -1, -1, -1, -1, -1, -1, -1, 453, 261, + 443, 444, -1, -1, -1, 60, -1, 62, -1, 64, + 453, 261, -1, -1, 413, 70, -1, 72, 73, 518, + 519, -1, 284, 522, 523, 80, -1, 82, 83, -1, + -1, -1, -1, 88, 284, -1, 91, -1, 93, -1, + 95, -1, -1, 98, 443, 444, -1, -1, 547, 104, + -1, -1, -1, 552, 453, 554, 555, -1, -1, -1, + -1, 560, -1, 518, 519, -1, -1, 522, 523, -1, + 569, 570, -1, -1, 573, 518, 519, -1, -1, 522, + 523, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 547, -1, -1, -1, -1, 552, -1, 554, + 555, -1, 413, -1, 547, 560, -1, -1, -1, 552, + -1, 554, 555, -1, 569, 570, -1, 560, 573, 518, + 519, -1, -1, 522, 523, -1, 569, 570, -1, -1, + 573, -1, 443, 444, -1, -1, -1, -1, -1, -1, + -1, -1, 453, -1, 5, -1, 7, -1, 547, 10, + 11, 413, -1, 552, 15, 554, 555, -1, -1, 20, + -1, 560, -1, 413, -1, 26, 27, 28, -1, -1, + 569, 570, -1, -1, 573, 36, -1, -1, -1, -1, + -1, 443, 444, -1, -1, -1, 47, -1, -1, -1, + 130, 453, -1, 443, 444, -1, 57, 137, -1, -1, + -1, -1, 142, 453, 152, -1, 154, 518, 519, -1, + 71, 522, 523, 153, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 547, -1, -1, -1, + 152, 552, 154, 554, 555, -1, -1, -1, -1, 560, + -1, -1, -1, -1, -1, -1, 518, 519, 569, 570, + 522, 523, 573, -1, -1, -1, -1, -1, 518, 519, + -1, -1, 522, 523, -1, -1, 224, 225, -1, 227, + 228, -1, -1, -1, -1, 547, 226, -1, -1, -1, + 552, -1, 554, 555, -1, -1, -1, 547, 560, -1, + -1, -1, 552, -1, 554, 555, -1, 569, 570, -1, + 560, 573, 224, 225, -1, 227, 228, -1, -1, 569, + 570, -1, 262, 573, 3, -1, 266, 267, -1, -1, + -1, 271, -1, -1, -1, -1, -1, -1, -1, 18, + -1, 281, -1, -1, -1, -1, -1, -1, -1, -1, + 29, 291, -1, 32, 33, 34, -1, -1, 37, 38, + -1, -1, 41, -1, -1, -1, 45, -1, -1, 48, + -1, -1, -1, -1, -1, -1, 316, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 336, 337, + 338, 339, 340, 341, 342, 343, -1, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, -1, -1, + -1, 90, -1, -1, -1, -1, 356, 357, -1, -1, + -1, -1, -1, -1, 336, 337, 338, 339, 340, 341, + 342, 343, -1, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 5, -1, 7, -1, -1, 10, + -1, -1, -1, 393, 15, -1, -1, -1, -1, 20, + -1, -1, -1, -1, 404, 26, -1, 28, -1, -1, + 418, -1, -1, -1, -1, 36, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, + 5, -1, 7, -1, -1, 10, 57, -1, -1, -1, + 15, 441, 442, -1, -1, 20, 418, -1, -1, -1, + 71, 26, -1, 28, -1, 30, 456, -1, -1, 3, + -1, 36, -1, -1, 39, -1, -1, 42, -1, -1, + 478, 479, 47, 481, 18, 50, 51, 52, 53, 54, + 55, 56, 57, -1, -1, 29, 61, -1, 32, 33, + 34, -1, -1, 37, 38, -1, 71, 41, -1, -1, + 75, 45, -1, -1, 48, -1, 478, 479, -1, 481, + 510, -1, 87, -1, 89, -1, 91, -1, -1, -1, + 520, 521, 97, 67, 99, -1, -1, 102, -1, 3, + 4, 5, 6, 7, 8, -1, 10, -1, 12, 13, + 14, 15, -1, 543, 18, -1, 20, 21, 22, -1, + -1, -1, 26, 553, 28, 29, 30, -1, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 89, -1, 91, -1, 3, + 4, 5, 6, 7, -1, 99, 10, 101, 12, -1, + 14, 15, -1, -1, 18, -1, 20, 21, 22, -1, + -1, -1, 26, -1, 28, 29, 30, -1, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 89, -1, 91, -1, 3, + 4, 5, 6, 7, -1, 99, 10, 101, 12, -1, + 14, 15, -1, -1, 18, -1, 20, 21, 22, -1, + -1, -1, 26, -1, 28, 29, 30, -1, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 89, -1, 91, -1, 3, + 4, 5, 6, 7, -1, 99, 10, 101, 12, -1, + 14, 15, -1, -1, 18, -1, 20, 21, 22, -1, + -1, -1, 26, -1, 28, 29, 30, -1, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 89, -1, 91, -1, -1, + -1, -1, -1, -1, -1, 99, -1, 101, 3, 4, + 5, 6, 7, -1, -1, 10, 11, 12, -1, 14, + 15, -1, -1, 18, -1, 20, 21, 22, -1, -1, + -1, 26, -1, 28, 29, 30, -1, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, + -1, 4, 5, 6, 7, -1, -1, 10, -1, 12, + -1, 14, 15, -1, 89, -1, 91, 20, 21, 22, + -1, -1, -1, 26, 99, 28, 101, 30, -1, -1, + -1, -1, 35, 36, -1, -1, 39, 40, 41, 42, + 43, -1, -1, 46, 47, -1, 49, 50, 51, 52, + 53, 54, 55, 56, 57, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, + -1, -1, -1, 4, 5, 6, 7, -1, -1, 10, + -1, 12, -1, 14, 15, -1, 89, -1, 91, 20, + 21, 22, -1, -1, -1, 26, 99, 28, 101, 30, + -1, -1, -1, -1, 35, 36, -1, -1, 39, 40, + 41, 42, 43, -1, -1, 46, 47, -1, 49, 50, + 51, 52, 53, 54, 55, 56, 57, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, + 71, 5, -1, 7, -1, -1, 10, -1, -1, -1, + -1, 15, -1, -1, -1, -1, 20, -1, 89, -1, + 91, -1, 26, -1, 28, -1, 30, -1, 99, -1, + 101, -1, 36, -1, -1, 39, -1, -1, 42, -1, + -1, -1, -1, 47, -1, -1, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 5, -1, 7, -1, -1, + 10, -1, -1, -1, 68, 15, -1, 71, -1, -1, + 20, 75, -1, -1, -1, -1, 26, -1, 28, -1, + 30, -1, -1, 87, -1, 89, 36, 91, -1, 39, + -1, -1, 42, 97, -1, 99, -1, 47, 102, -1, + 50, 51, 52, 53, 54, 55, 56, 57, -1, 5, + -1, 7, -1, -1, 10, -1, -1, -1, -1, 15, + -1, 71, -1, -1, 20, 75, -1, -1, -1, -1, + 26, -1, 28, -1, 30, -1, -1, 87, -1, 89, + 36, 91, -1, 39, -1, -1, 42, 97, -1, 99, + -1, 47, 102, -1, 50, 51, 52, 53, 54, 55, + 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3, 71, 5, -1, 7, 75, + -1, 10, -1, -1, -1, -1, 15, -1, -1, 18, + -1, 20, -1, -1, -1, 91, -1, 26, -1, 28, + 29, 30, -1, 32, 33, 34, 102, 36, 37, 38, + 39, -1, 41, 42, -1, -1, 45, -1, 47, 48, + -1, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 5, -1, 7, -1, -1, 10, -1, -1, -1, -1, + 15, -1, 71, -1, -1, 20, -1, -1, -1, -1, + -1, 26, -1, 28, -1, 30, -1, -1, -1, -1, + 89, 36, 91, -1, 39, -1, -1, 42, -1, -1, + 99, -1, 47, -1, -1, 50, 51, 52, 53, 54, + 55, 56, 57, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + 3, -1, 5, -1, 7, -1, -1, 10, -1, -1, + -1, -1, 15, -1, 89, 18, 91, 20, -1, -1, + -1, 3, -1, 26, 99, 28, 29, -1, -1, 32, + 33, 34, -1, 36, 37, 38, 18, -1, 41, -1, + -1, -1, 45, -1, 47, 48, -1, 29, -1, -1, + 32, 33, 34, -1, 57, 37, 38, -1, -1, 41, + 60, -1, -1, 45, 64, -1, 48, -1, 71, -1, + 70, -1, -1, 73, 60, -1, -1, -1, 64, -1, + 80, -1, 82, 83, 70, -1, -1, 73, 88, -1, + -1, -1, -1, 93, 80, 95, 82, 83, 98, -1, + -1, 60, 88, -1, 104, 64, -1, 93, -1, 95, + -1, 70, 98, -1, 73, -1, -1, -1, 104, -1, + -1, 80, -1, 82, 83, -1, -1, -1, -1, 88, + -1, -1, -1, -1, 93, -1, 95, -1, -1, 98, + -1, -1, -1, -1, -1, 104 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned short int yystos[] = +{ + 0, 31, 107, 122, 123, 126, 5, 7, 10, 15, + 20, 26, 28, 36, 47, 57, 71, 111, 117, 118, + 119, 120, 121, 0, 124, 57, 72, 101, 72, 24, + 125, 127, 128, 129, 11, 42, 119, 11, 117, 3, + 18, 29, 32, 33, 34, 37, 38, 41, 45, 48, + 101, 130, 131, 132, 133, 134, 135, 164, 165, 72, + 101, 132, 17, 23, 68, 136, 137, 139, 11, 27, + 17, 166, 167, 103, 113, 114, 117, 113, 115, 138, + 140, 137, 139, 139, 119, 119, 115, 68, 168, 66, + 101, 66, 37, 67, 130, 135, 141, 142, 143, 148, + 149, 158, 159, 139, 169, 115, 115, 68, 177, 47, + 110, 111, 112, 113, 116, 117, 118, 160, 101, 157, + 177, 67, 134, 135, 143, 149, 165, 170, 171, 172, + 4, 6, 12, 14, 21, 22, 30, 35, 39, 40, + 41, 42, 43, 46, 49, 50, 51, 52, 53, 54, + 55, 56, 89, 91, 99, 101, 108, 109, 110, 116, + 117, 119, 131, 134, 135, 177, 178, 179, 180, 181, + 182, 183, 185, 186, 187, 189, 190, 191, 192, 194, + 201, 203, 204, 212, 213, 215, 216, 217, 218, 219, + 224, 225, 226, 230, 235, 236, 237, 238, 239, 240, + 242, 243, 258, 259, 263, 119, 151, 119, 144, 145, + 146, 151, 62, 234, 234, 91, 44, 150, 155, 101, + 101, 101, 173, 101, 75, 87, 91, 97, 102, 111, + 116, 117, 226, 236, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 261, 119, 214, 214, 41, + 183, 91, 91, 208, 261, 72, 91, 91, 72, 261, + 177, 91, 117, 235, 237, 241, 261, 241, 119, 144, + 72, 62, 72, 91, 65, 110, 67, 180, 101, 101, + 72, 62, 89, 99, 60, 64, 70, 73, 80, 82, + 83, 88, 93, 95, 98, 104, 260, 111, 113, 114, + 91, 62, 150, 66, 101, 62, 73, 150, 61, 62, + 135, 152, 153, 154, 114, 156, 68, 161, 101, 241, + 241, 111, 117, 261, 241, 241, 69, 92, 103, 87, + 97, 79, 81, 86, 25, 77, 78, 84, 85, 74, + 76, 58, 63, 94, 59, 96, 100, 65, 101, 101, + 101, 49, 131, 182, 190, 206, 209, 211, 261, 101, + 119, 261, 261, 119, 101, 9, 220, 221, 222, 261, + 90, 11, 261, 30, 228, 229, 261, 183, 144, 42, + 119, 261, 257, 62, 232, 233, 234, 232, 234, 91, + 152, 61, 145, 61, 68, 147, 174, 261, 61, 110, + 90, 66, 66, 162, 101, 231, 234, 234, 90, 241, + 241, 241, 246, 246, 247, 247, 247, 112, 248, 248, + 248, 248, 249, 249, 250, 251, 252, 253, 254, 261, + 261, 91, 101, 66, 90, 91, 90, 90, 91, 91, + 19, 223, 222, 90, 61, 90, 66, 91, 61, 261, + 231, 233, 234, 174, 231, 174, 228, 90, 147, 175, + 176, 146, 154, 114, 39, 42, 163, 178, 90, 90, + 244, 65, 101, 261, 208, 190, 21, 22, 49, 119, + 183, 184, 185, 188, 193, 202, 207, 228, 68, 195, + 177, 228, 154, 177, 183, 261, 228, 61, 90, 67, + 66, 91, 91, 67, 241, 244, 256, 90, 101, 91, + 91, 91, 65, 16, 90, 197, 90, 90, 90, 139, + 227, 147, 228, 228, 101, 205, 210, 211, 206, 261, + 261, 184, 183, 8, 13, 196, 198, 199, 200, 177, + 90, 90, 90, 101, 90, 90, 261, 262, 65, 67, + 179, 200, 101, 101, 183, 208, 184, 184, 65, 101, + 16, 205, 184, 90, 184 +}; + +#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) +# define YYSIZE_T __SIZE_TYPE__ +#endif +#if ! defined (YYSIZE_T) && defined (size_t) +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +#endif +#if ! defined (YYSIZE_T) +# define YYSIZE_T unsigned int +#endif + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror ("syntax error: cannot back up");\ + YYERROR; \ + } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +/* YYLLOC_DEFAULT -- Compute the default location (before the actions + are run). */ + +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + ((Current).first_line = (Rhs)[1].first_line, \ + (Current).first_column = (Rhs)[1].first_column, \ + (Current).last_line = (Rhs)[N].last_line, \ + (Current).last_column = (Rhs)[N].last_column) +#endif + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +# define YYDSYMPRINT(Args) \ +do { \ + if (yydebug) \ + yysymprint Args; \ +} while (0) + +# define YYDSYMPRINTF(Title, Token, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YYDSYMPRINT(Args) +# define YYDSYMPRINTF(Title, Token, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 +# undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined (__GLIBC__) && defined (_STRING_H) +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +# if defined (__STDC__) || defined (__cplusplus) +yystrlen (const char *yystr) +# else +yystrlen (yystr) + const char *yystr; +# endif +{ + register const char *yys = yystr; + + while (*yys++ != '\0') + continue; + + return yys - yystr - 1; +} +# endif +# endif + +# ifndef yystpcpy +# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +# if defined (__STDC__) || defined (__cplusplus) +yystpcpy (char *yydest, const char *yysrc) +# else +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +# endif +{ + register char *yyd = yydest; + register const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +#endif /* !YYERROR_VERBOSE */ + + + +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (yytype < YYNTOKENS) + { + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); +# ifdef YYPRINT + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + } + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yytype, yyvaluep) + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM); +# else +int yyparse (); +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif +{ + /* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + register int yystate; + register int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + register short int *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + register YYSTYPE *yyvsp; + + + +#define YYPOPSTACK (yyvsp--, yyssp--) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ + int yylen; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. + */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + short int *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow ("parser stack overflow", + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyoverflowlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyoverflowlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + short int *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyoverflowlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; + + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + yystate = yyn; + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 192 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 3: +#line 201 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 4: +#line 209 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 5: +#line 217 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 6: +#line 225 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 7: +#line 233 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 8: +#line 241 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 9: +#line 250 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 10: +#line 258 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 11: +#line 267 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 12: +#line 275 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 13: +#line 284 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 14: +#line 289 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 15: +#line 294 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 16: +#line 299 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 17: +#line 304 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 18: +#line 309 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 19: +#line 314 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 20: +#line 319 "cmDependsJavaParser.y" + { + jpElementStart(0); +} + break; + + case 21: +#line 325 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 22: +#line 333 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 23: +#line 342 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpStoreClass(yyvsp[0].str); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 24: +#line 352 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 25: +#line 361 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 26: +#line 370 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 27: +#line 378 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpStoreClass(yyvsp[-1].str); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 28: +#line 388 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = yyvsp[0].str; +} + break; + + case 29: +#line 394 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = yyvsp[0].str; +} + break; + + case 30: +#line 401 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = yyvsp[0].str; +} + break; + + case 31: +#line 408 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = yyvsp[0].str; +} + break; + + case 32: +#line 414 "cmDependsJavaParser.y" + { + jpElementStart(2); + yyval.str = yyvsp[0].str; +} + break; + + case 33: +#line 421 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->AddClassFound(yyvsp[-2].str); + yyGetParser->UpdateCombine(yyvsp[-2].str, yyvsp[0].str); + yyGetParser->DeallocateParserType(&(yyvsp[-2].str)); + yyval.str = const_cast(yyGetParser->GetCurrentCombine()); +} + break; + + case 34: +#line 430 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpStoreClass(yyvsp[-2].str); + jpCheckEmpty(3); + yyGetParser->SetCurrentCombine(""); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 35: +#line 440 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpStoreClass(yyvsp[-2].str); + yyGetParser->SetCurrentCombine(""); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 36: +#line 450 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 37: +#line 459 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 38: +#line 467 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 39: +#line 476 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 40: +#line 484 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 41: +#line 491 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 42: +#line 499 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 43: +#line 506 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 44: +#line 514 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 45: +#line 521 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 46: +#line 530 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->SetCurrentPackage(yyvsp[-1].str); + yyGetParser->DeallocateParserType(&(yyvsp[-1].str)); + yyGetParser->SetCurrentCombine(""); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 47: +#line 542 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 48: +#line 550 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 49: +#line 559 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->AddPackagesImport(yyvsp[-1].str); + yyGetParser->DeallocateParserType(&(yyvsp[-1].str)); + yyGetParser->SetCurrentCombine(""); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 50: +#line 571 "cmDependsJavaParser.y" + { + jpElementStart(5); + std::string str = yyvsp[-3].str; + str += ".*"; + yyGetParser->AddPackagesImport(str.c_str()); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + yyGetParser->SetCurrentCombine(""); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 51: +#line 584 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 52: +#line 592 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 53: +#line 600 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 54: +#line 609 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 55: +#line 617 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 67: +#line 632 "cmDependsJavaParser.y" + { + yyGetParser->StartClass(yyvsp[0].str); + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(3); +} + break; + + case 68: +#line 642 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} + break; + + case 69: +#line 651 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} + break; + + case 70: +#line 660 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} + break; + + case 71: +#line 669 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} + break; + + case 72: +#line 678 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 73: +#line 685 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 74: +#line 694 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 75: +#line 703 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 76: +#line 712 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 77: +#line 720 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 78: +#line 729 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 79: +#line 737 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 80: +#line 744 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 81: +#line 753 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 82: +#line 761 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 83: +#line 769 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 84: +#line 777 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 85: +#line 786 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 86: +#line 794 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 87: +#line 803 "cmDependsJavaParser.y" + { + jpElementStart(4); +} + break; + + case 88: +#line 809 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 89: +#line 817 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 90: +#line 826 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 91: +#line 834 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 92: +#line 843 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 93: +#line 852 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 94: +#line 861 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 95: +#line 869 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 96: +#line 878 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 97: +#line 886 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 98: +#line 894 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 99: +#line 903 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 100: +#line 912 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 101: +#line 921 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 102: +#line 929 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 103: +#line 939 "cmDependsJavaParser.y" + { + jpElementStart(4); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 104: +#line 949 "cmDependsJavaParser.y" + { + jpElementStart(3); + +} + break; + + case 105: +#line 955 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 107: +#line 966 "cmDependsJavaParser.y" + { + jpElementStart(1); + +} + break; + + case 108: +#line 972 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 109: +#line 982 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 110: +#line 992 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 111: +#line 1002 "cmDependsJavaParser.y" + { + jpElementStart(1); + +} + break; + + case 112: +#line 1008 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 113: +#line 1018 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 114: +#line 1028 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 115: +#line 1038 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 116: +#line 1047 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 117: +#line 1057 "cmDependsJavaParser.y" + { + jpElementStart(4); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 118: +#line 1068 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 119: +#line 1077 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 120: +#line 1085 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 121: +#line 1095 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 122: +#line 1104 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 123: +#line 1114 "cmDependsJavaParser.y" + { + yyGetParser->StartClass(yyvsp[0].str); + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(3); +} + break; + + case 124: +#line 1123 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} + break; + + case 125: +#line 1132 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); +} + break; + + case 126: +#line 1139 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 127: +#line 1149 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 128: +#line 1158 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 129: +#line 1168 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 130: +#line 1177 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 131: +#line 1185 "cmDependsJavaParser.y" + { + jpElementStart(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 132: +#line 1194 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 133: +#line 1203 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 134: +#line 1212 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 135: +#line 1221 "cmDependsJavaParser.y" + { + jpElementStart(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 136: +#line 1229 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 137: +#line 1238 "cmDependsJavaParser.y" + { + jpElementStart(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 138: +#line 1247 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 139: +#line 1257 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 140: +#line 1267 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 141: +#line 1276 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 142: +#line 1286 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 143: +#line 1295 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 144: +#line 1303 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 145: +#line 1312 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 146: +#line 1322 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 147: +#line 1331 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 148: +#line 1341 "cmDependsJavaParser.y" + { + jpElementStart(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 149: +#line 1349 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 150: +#line 1357 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 151: +#line 1367 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 152: +#line 1376 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 153: +#line 1386 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 154: +#line 1395 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 155: +#line 1404 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 156: +#line 1414 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 157: +#line 1424 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 158: +#line 1433 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 159: +#line 1443 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 160: +#line 1452 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 161: +#line 1461 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 162: +#line 1470 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 163: +#line 1479 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 164: +#line 1488 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 165: +#line 1498 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 166: +#line 1507 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 167: +#line 1516 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 168: +#line 1525 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 169: +#line 1534 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 170: +#line 1544 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 171: +#line 1553 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 172: +#line 1562 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 173: +#line 1571 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 174: +#line 1580 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 175: +#line 1589 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 176: +#line 1598 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 177: +#line 1607 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 178: +#line 1616 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 179: +#line 1625 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 180: +#line 1634 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 181: +#line 1643 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 182: +#line 1653 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 183: +#line 1663 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[-2].str)); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 184: +#line 1674 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 185: +#line 1684 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 186: +#line 1694 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 187: +#line 1703 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 188: +#line 1712 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 189: +#line 1721 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 190: +#line 1730 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 191: +#line 1739 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 192: +#line 1748 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 193: +#line 1758 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 194: +#line 1768 "cmDependsJavaParser.y" + { + jpElementStart(7); + jpCheckEmpty(7); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 195: +#line 1778 "cmDependsJavaParser.y" + { + jpElementStart(7); + jpCheckEmpty(7); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 196: +#line 1788 "cmDependsJavaParser.y" + { + jpElementStart(5); + +} + break; + + case 197: +#line 1795 "cmDependsJavaParser.y" + { + jpElementStart(4); + +} + break; + + case 198: +#line 1801 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 199: +#line 1809 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 200: +#line 1818 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 201: +#line 1826 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 202: +#line 1836 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 203: +#line 1846 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 204: +#line 1855 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 205: +#line 1865 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 206: +#line 1874 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 207: +#line 1884 "cmDependsJavaParser.y" + { + jpElementStart(5); + +} + break; + + case 208: +#line 1891 "cmDependsJavaParser.y" + { + jpElementStart(5); + +} + break; + + case 209: +#line 1898 "cmDependsJavaParser.y" + { + jpElementStart(7); + +} + break; + + case 210: +#line 1906 "cmDependsJavaParser.y" + { + jpElementStart(9); + +} + break; + + case 211: +#line 1912 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 212: +#line 1920 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 213: +#line 1929 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 214: +#line 1937 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 215: +#line 1948 "cmDependsJavaParser.y" + { + jpElementStart(9); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 216: +#line 1956 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 217: +#line 1964 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 218: +#line 1974 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 219: +#line 1983 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 220: +#line 1993 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 221: +#line 2003 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 222: +#line 2012 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 223: +#line 2022 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 224: +#line 2031 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 225: +#line 2041 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[-1].str)); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 226: +#line 2051 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 227: +#line 2059 "cmDependsJavaParser.y" + { + jpElementStart(1); + +} + break; + + case 228: +#line 2066 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[-1].str)); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 229: +#line 2077 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 230: +#line 2087 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 231: +#line 2097 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 232: +#line 2107 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 233: +#line 2116 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 234: +#line 2125 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 235: +#line 2133 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 236: +#line 2143 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 237: +#line 2152 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 238: +#line 2162 "cmDependsJavaParser.y" + { + jpElementStart(5); + +} + break; + + case 239: +#line 2169 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 240: +#line 2179 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 241: +#line 2188 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 242: +#line 2198 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 243: +#line 2207 "cmDependsJavaParser.y" + { + jpElementStart(1); + +} + break; + + case 244: +#line 2213 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 245: +#line 2222 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 246: +#line 2231 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 247: +#line 2240 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 248: +#line 2249 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 249: +#line 2259 "cmDependsJavaParser.y" + { + jpElementStart(6); + jpCheckEmpty(6); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 250: +#line 2268 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 251: +#line 2276 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 252: +#line 2285 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 253: +#line 2293 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 254: +#line 2303 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 255: +#line 2312 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 256: +#line 2322 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 257: +#line 2331 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 258: +#line 2340 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 259: +#line 2349 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 260: +#line 2358 "cmDependsJavaParser.y" + { + jpElementStart(0); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 261: +#line 2366 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 262: +#line 2376 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 263: +#line 2385 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 264: +#line 2395 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 265: +#line 2405 "cmDependsJavaParser.y" + { + jpElementStart(2); + +} + break; + + case 266: +#line 2411 "cmDependsJavaParser.y" + { + jpElementStart(3); + +} + break; + + case 267: +#line 2418 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 268: +#line 2428 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 269: +#line 2438 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 270: +#line 2448 "cmDependsJavaParser.y" + { + jpElementStart(3); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 271: +#line 2459 "cmDependsJavaParser.y" + { + jpElementStart(4); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 272: +#line 2469 "cmDependsJavaParser.y" + { + jpElementStart(6); + yyGetParser->DeallocateParserType(&(yyvsp[-5].str)); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + jpCheckEmpty(6); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 273: +#line 2480 "cmDependsJavaParser.y" + { + jpElementStart(6); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + jpCheckEmpty(6); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 274: +#line 2490 "cmDependsJavaParser.y" + { + jpElementStart(6); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + jpCheckEmpty(6); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 275: +#line 2501 "cmDependsJavaParser.y" + { + jpElementStart(4); + yyGetParser->DeallocateParserType(&(yyvsp[-3].str)); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 276: +#line 2511 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 277: +#line 2521 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 278: +#line 2530 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 279: +#line 2539 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 280: +#line 2548 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 281: +#line 2557 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 282: +#line 2567 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 283: +#line 2577 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 284: +#line 2587 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 285: +#line 2596 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 286: +#line 2605 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 287: +#line 2614 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 288: +#line 2623 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 289: +#line 2633 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 290: +#line 2643 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 291: +#line 2653 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 292: +#line 2662 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 293: +#line 2671 "cmDependsJavaParser.y" + { + jpElementStart(2); + jpCheckEmpty(2); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 294: +#line 2680 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 295: +#line 2690 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 296: +#line 2699 "cmDependsJavaParser.y" + { + jpElementStart(4); + jpCheckEmpty(4); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 297: +#line 2708 "cmDependsJavaParser.y" + { + jpElementStart(5); + +} + break; + + case 298: +#line 2715 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 299: +#line 2724 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 300: +#line 2733 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 301: +#line 2742 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 302: +#line 2752 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 303: +#line 2761 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 304: +#line 2770 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 305: +#line 2780 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 306: +#line 2789 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 307: +#line 2798 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 308: +#line 2807 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 309: +#line 2817 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 310: +#line 2826 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 311: +#line 2835 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 312: +#line 2844 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 313: +#line 2853 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 314: +#line 2862 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 315: +#line 2872 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 316: +#line 2881 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 317: +#line 2890 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 318: +#line 2900 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 319: +#line 2909 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 320: +#line 2919 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 321: +#line 2928 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 322: +#line 2938 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 323: +#line 2947 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 324: +#line 2957 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 325: +#line 2966 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 326: +#line 2976 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 327: +#line 2985 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 328: +#line 2995 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 329: +#line 3004 "cmDependsJavaParser.y" + { + jpElementStart(5); + jpCheckEmpty(5); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 330: +#line 3014 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 331: +#line 3023 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 332: +#line 3033 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 333: +#line 3043 "cmDependsJavaParser.y" + { + jpElementStart(1); + yyGetParser->DeallocateParserType(&(yyvsp[0].str)); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 334: +#line 3053 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 335: +#line 3062 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 336: +#line 3072 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 337: +#line 3081 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 338: +#line 3090 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 339: +#line 3099 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 340: +#line 3108 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 341: +#line 3117 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 342: +#line 3126 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 343: +#line 3135 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 344: +#line 3144 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 345: +#line 3153 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 346: +#line 3162 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 347: +#line 3171 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 348: +#line 3181 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 349: +#line 3191 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 350: +#line 3201 "cmDependsJavaParser.y" + { + jpElementStart(1); + jpCheckEmpty(1); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + case 351: +#line 3210 "cmDependsJavaParser.y" + { + jpElementStart(3); + jpStoreClass(yyvsp[-2].str); + jpCheckEmpty(3); + yyval.str = 0; + yyGetParser->SetCurrentCombine(""); + +} + break; + + + } + +/* Line 1010 of yacc.c. */ +#line 5780 "cmDependsJavaParser.cxx" + + yyvsp -= yylen; + yyssp -= yylen; + + + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (YYPACT_NINF < yyn && yyn < YYLAST) + { + YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); + const char* yyprefix; + char *yymsg; + int yyx; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 0; + + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); + yycount += 1; + if (yycount == 5) + { + yysize = 0; + break; + } + } + yysize += (sizeof ("syntax error, unexpected ") + + yystrlen (yytname[yytype])); + yymsg = (char *) YYSTACK_ALLOC (yysize); + if (yymsg != 0) + { + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); + + if (yycount < 5) + { + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yyp = yystpcpy (yyp, yyprefix); + yyp = yystpcpy (yyp, yytname[yyx]); + yyprefix = " or "; + } + } + yyerror (yymsg); + YYSTACK_FREE (yymsg); + } + else + yyerror ("syntax error; also virtual memory exhausted"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror ("syntax error"); + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* If at end of input, pop the error token, + then the rest of the stack, then return failure. */ + if (yychar == YYEOF) + for (;;) + { + YYPOPSTACK; + if (yyssp == yyss) + YYABORT; + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[*yyssp], yyvsp); + } + } + else + { + YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); + yydestruct (yytoken, &yylval); + yychar = YYEMPTY; + + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + +#if defined(__GNUC__) || defined(__HP_aCC) + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) + goto yyerrorlab; +#endif + + yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + YYDPRINTF ((stderr, "Shifting error token, ")); + + *++yyvsp = yylval; + + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ +yyoverflowlab: + yyerror ("parser stack overflow"); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + return yyresult; +} + + +#line 3219 "cmDependsJavaParser.y" + +/* End of grammar */ + +/*--------------------------------------------------------------------------*/ +void cmDependsJavaError(yyscan_t yyscanner, const char* message) +{ + yyGetParser->Error(message); +} + + diff --git a/CMakeLua/Source/cmDependsJavaParser.y b/CMakeLua/Source/cmDependsJavaParser.y new file mode 100644 index 0000000..823ae8c --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaParser.y @@ -0,0 +1,3231 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJavaParser.y,v $ + Language: C++ + Date: $Date: 2006/08/01 15:38:41 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmDependsJava_yy --defines=cmDependsJavaParserTokens.h -ocmDependsJavaParser.cxx cmDependsJavaParser.y + +Modify cmDependsJavaParser.cxx: + - remove TABs + - add __HP_aCC to the #if test for yyerrorlab warning suppression + +*/ + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmDependsJava_yyerror(x) \ + cmDependsJavaError(yyscanner, x) +#define yyGetParser (cmDependsJava_yyget_extra(yyscanner)) + +/*-------------------------------------------------------------------------*/ +#include "cmDependsJavaParserHelper.h" /* Interface to parser object. */ +#include "cmDependsJavaLexer.h" /* Interface to lexer object. */ +#include "cmDependsJavaParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Internal utility functions. */ +static void cmDependsJavaError(yyscan_t yyscanner, const char* message); + +#define YYDEBUG 1 +#define YYMAXDEPTH 1000000 + + +#define jpCheckEmpty(cnt) yyGetParser->CheckEmpty(__LINE__, cnt, yyvsp); +#define jpElementStart(cnt) yyGetParser->PrepareElement(&yyval) +#define jpStoreClass(str) yyGetParser->AddClassFound(str); yyGetParser->DeallocateParserType(&(str)) +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch statement contains default but no case. */ +#endif +%} + +/* Generate a reentrant parser object. */ +%pure_parser + +/* +%union { + char* string; +} +*/ + +/*-------------------------------------------------------------------------*/ +/* Tokens */ +%token jp_ABSTRACT +%token jp_ASSERT +%token jp_BOOLEAN_TYPE +%token jp_BREAK +%token jp_BYTE_TYPE +%token jp_CASE +%token jp_CATCH +%token jp_CHAR_TYPE +%token jp_CLASS +%token jp_CONTINUE +%token jp_DEFAULT +%token jp_DO +%token jp_DOUBLE_TYPE +%token jp_ELSE +%token jp_EXTENDS +%token jp_FINAL +%token jp_FINALLY +%token jp_FLOAT_TYPE +%token jp_FOR +%token jp_IF +%token jp_IMPLEMENTS +%token jp_IMPORT +%token jp_INSTANCEOF +%token jp_INT_TYPE +%token jp_INTERFACE +%token jp_LONG_TYPE +%token jp_NATIVE +%token jp_NEW +%token jp_PACKAGE +%token jp_PRIVATE +%token jp_PROTECTED +%token jp_PUBLIC +%token jp_RETURN +%token jp_SHORT_TYPE +%token jp_STATIC +%token jp_STRICTFP +%token jp_SUPER +%token jp_SWITCH +%token jp_SYNCHRONIZED +%token jp_THIS +%token jp_THROW +%token jp_THROWS +%token jp_TRANSIENT +%token jp_TRY +%token jp_VOID +%token jp_VOLATILE +%token jp_WHILE + +%token jp_BOOLEANLITERAL +%token jp_CHARACTERLITERAL +%token jp_DECIMALINTEGERLITERAL +%token jp_FLOATINGPOINTLITERAL +%token jp_HEXINTEGERLITERAL +%token jp_NULLLITERAL +%token jp_STRINGLITERAL + +%token jp_NAME + +%token jp_AND +%token jp_ANDAND +%token jp_ANDEQUALS +%token jp_BRACKETEND +%token jp_BRACKETSTART +%token jp_CARROT +%token jp_CARROTEQUALS +%token jp_COLON +%token jp_COMMA +%token jp_CURLYEND +%token jp_CURLYSTART +%token jp_DIVIDE +%token jp_DIVIDEEQUALS +%token jp_DOLLAR +%token jp_DOT +%token jp_EQUALS +%token jp_EQUALSEQUALS +%token jp_EXCLAMATION +%token jp_EXCLAMATIONEQUALS +%token jp_GREATER +%token jp_GTEQUALS +%token jp_GTGT +%token jp_GTGTEQUALS +%token jp_GTGTGT +%token jp_GTGTGTEQUALS +%token jp_LESLESEQUALS +%token jp_LESSTHAN +%token jp_LTEQUALS +%token jp_LTLT +%token jp_MINUS +%token jp_MINUSEQUALS +%token jp_MINUSMINUS +%token jp_PAREEND +%token jp_PARESTART +%token jp_PERCENT +%token jp_PERCENTEQUALS +%token jp_PIPE +%token jp_PIPEEQUALS +%token jp_PIPEPIPE +%token jp_PLUS +%token jp_PLUSEQUALS +%token jp_PLUSPLUS +%token jp_QUESTION +%token jp_SEMICOL +%token jp_TILDE +%token jp_TIMES +%token jp_TIMESEQUALS + +%token jp_ERROR + +/*-------------------------------------------------------------------------*/ +/* grammar */ +%% + +Goal: +CompilationUnit +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +Literal: +IntegerLiteral +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_FLOATINGPOINTLITERAL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_BOOLEANLITERAL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_CHARACTERLITERAL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_STRINGLITERAL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_NULLLITERAL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +IntegerLiteral: +jp_DECIMALINTEGERLITERAL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_HEXINTEGERLITERAL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +Type: +PrimitiveType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +ReferenceType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +PrimitiveType: +jp_BYTE_TYPE +{ + jpElementStart(0); +} +| +jp_SHORT_TYPE +{ + jpElementStart(0); +} +| +jp_INT_TYPE +{ + jpElementStart(0); +} +| +jp_LONG_TYPE +{ + jpElementStart(0); +} +| +jp_CHAR_TYPE +{ + jpElementStart(0); +} +| +jp_FLOAT_TYPE +{ + jpElementStart(0); +} +| +jp_DOUBLE_TYPE +{ + jpElementStart(0); +} +| +jp_BOOLEAN_TYPE +{ + jpElementStart(0); +} + +ReferenceType: +ClassOrInterfaceType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +ArrayType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ClassOrInterfaceType: +Name +{ + jpElementStart(1); + jpStoreClass($1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ClassType: +ClassOrInterfaceType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +InterfaceType: +ClassOrInterfaceType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ArrayType: +PrimitiveType Dims +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +Name Dims +{ + jpElementStart(2); + jpStoreClass($1); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +Name: +SimpleName +{ + jpElementStart(1); + $$ = $1; +} +| +QualifiedName +{ + jpElementStart(1); + $$ = $1; +} + +SimpleName: +Identifier +{ + jpElementStart(1); + $$ = $1; +} + +Identifier: +jp_NAME +{ + jpElementStart(1); + $$ = $1; +} +| +jp_DOLLAR jp_NAME +{ + jpElementStart(2); + $$ = $2; +} + +QualifiedName: +Name jp_DOT Identifier +{ + jpElementStart(3); + yyGetParser->AddClassFound($1); + yyGetParser->UpdateCombine($1, $3); + yyGetParser->DeallocateParserType(&($1)); + $$ = const_cast(yyGetParser->GetCurrentCombine()); +} +| +Name jp_DOT jp_CLASS +{ + jpElementStart(3); + jpStoreClass($1); + jpCheckEmpty(3); + yyGetParser->SetCurrentCombine(""); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +Name jp_DOT jp_THIS +{ + jpElementStart(3); + jpStoreClass($1); + yyGetParser->SetCurrentCombine(""); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +SimpleType jp_DOT jp_CLASS +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +SimpleType: +PrimitiveType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_VOID +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +CompilationUnit: +PackageDeclarationopt ImportDeclarations TypeDeclarations +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +PackageDeclarationopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +PackageDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ImportDeclarations: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +ImportDeclarations ImportDeclaration +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +TypeDeclarations: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +TypeDeclarations TypeDeclaration +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +PackageDeclaration: +jp_PACKAGE Name jp_SEMICOL +{ + jpElementStart(3); + yyGetParser->SetCurrentPackage($2); + yyGetParser->DeallocateParserType(&($2)); + yyGetParser->SetCurrentCombine(""); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ImportDeclaration: +SingleTypeImportDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +TypeImportOnDemandDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +SingleTypeImportDeclaration: +jp_IMPORT Name jp_SEMICOL +{ + jpElementStart(3); + yyGetParser->AddPackagesImport($2); + yyGetParser->DeallocateParserType(&($2)); + yyGetParser->SetCurrentCombine(""); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +TypeImportOnDemandDeclaration: +jp_IMPORT Name jp_DOT jp_TIMES jp_SEMICOL +{ + jpElementStart(5); + std::string str = $2; + str += ".*"; + yyGetParser->AddPackagesImport(str.c_str()); + yyGetParser->DeallocateParserType(&($2)); + yyGetParser->SetCurrentCombine(""); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +TypeDeclaration: +ClassDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +InterfaceDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +jp_SEMICOL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +Modifiers: +Modifier +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +Modifiers Modifier +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +Modifier: +jp_PUBLIC | jp_PROTECTED | jp_PRIVATE | +jp_STATIC | +jp_ABSTRACT | jp_FINAL | jp_NATIVE | jp_SYNCHRONIZED | jp_TRANSIENT | jp_VOLATILE | +jp_STRICTFP + +ClassHeader: +Modifiersopt jp_CLASS Identifier +{ + yyGetParser->StartClass($3); + jpElementStart(3); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(3); +} + + +ClassDeclaration: +ClassHeader ClassBody +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} +| +ClassHeader Interfaces ClassBody +{ + jpElementStart(3); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} +| +ClassHeader Super ClassBody +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} +| +ClassHeader Super Interfaces ClassBody +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} + +Modifiersopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +Modifiers +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +Super: +jp_EXTENDS ClassType +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +Interfaces: +jp_IMPLEMENTS InterfaceTypeList +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +InterfaceTypeList: +InterfaceType +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +InterfaceTypeList jp_COMMA InterfaceType +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ClassBody: +jp_CURLYSTART ClassBodyDeclarations jp_CURLYEND +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ClassBodyDeclarations: +{ + jpElementStart(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +ClassBodyDeclarations ClassBodyDeclaration +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ClassBodyDeclaration: +ClassMemberDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +StaticInitializer +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +ConstructorDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +TypeDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +ClassMemberDeclaration: +FieldDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +MethodDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +FieldDeclaration: +Modifiersopt Type VariableDeclarators jp_SEMICOL +{ + jpElementStart(4); +} + +VariableDeclarators: +VariableDeclarator +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +VariableDeclarators jp_COMMA VariableDeclarator +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +VariableDeclarator: +VariableDeclaratorId +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +VariableDeclaratorId jp_EQUALS VariableInitializer +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +VariableDeclaratorId: +Identifier +{ + jpElementStart(1); + yyGetParser->DeallocateParserType(&($1)); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +VariableDeclaratorId jp_BRACKETSTART jp_BRACKETEND +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +VariableInitializer: +Expression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +ArrayInitializer +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +MethodDeclaration: +MethodHeader jp_SEMICOL +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +MethodHeader MethodBody +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +MethodHeader MethodBody jp_SEMICOL +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} + +MethodHeader: +Modifiersopt Type MethodDeclarator Throwsopt +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Modifiersopt jp_VOID MethodDeclarator Throwsopt +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Throwsopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Throws +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +MethodDeclarator: +Identifier jp_PARESTART FormalParameterListopt jp_PAREEND +{ + jpElementStart(4); + yyGetParser->DeallocateParserType(&($1)); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +MethodDeclarator jp_BRACKETSTART jp_BRACKETEND +{ + jpElementStart(3); + +} + +FormalParameterListopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +FormalParameterList + +FormalParameterList: +FormalParameter +{ + jpElementStart(1); + +} +| +FormalParameterList jp_COMMA FormalParameter +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +FormalParameter: +Modifiersopt Type VariableDeclaratorId +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Throws: +jp_THROWS ClassTypeList +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ClassTypeList: +ClassType +{ + jpElementStart(1); + +} +| +ClassTypeList jp_COMMA ClassType +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +MethodBody: +Block +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +StaticInitializer: +jp_STATIC Block +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConstructorDeclaration: +Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody jp_SEMICOL +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConstructorDeclarator: +SimpleName jp_PARESTART FormalParameterListopt jp_PAREEND +{ + jpElementStart(4); + yyGetParser->DeallocateParserType(&($1)); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConstructorBody: +jp_CURLYSTART ExplicitConstructorInvocationopt BlockStatementsopt jp_CURLYEND +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ExplicitConstructorInvocationopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ExplicitConstructorInvocationopt ExplicitConstructorInvocation +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ExplicitConstructorInvocation: +jp_THIS jp_PARESTART ArgumentListopt jp_PAREEND jp_SEMICOL +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_SUPER jp_PARESTART ArgumentListopt jp_PAREEND jp_SEMICOL +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +InterfaceHeader: +Modifiersopt jp_INTERFACE Identifier +{ + yyGetParser->StartClass($3); + jpElementStart(3); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(3); +} + +InterfaceDeclaration: +InterfaceHeader ExtendsInterfacesopt InterfaceBody +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + yyGetParser->EndClass(); +} + +ExtendsInterfacesopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); +} +| +ExtendsInterfaces +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ExtendsInterfaces: +jp_EXTENDS InterfaceType +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ExtendsInterfaces jp_COMMA InterfaceType +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +InterfaceBody: +jp_CURLYSTART InterfaceMemberDeclarations jp_CURLYEND +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +InterfaceMemberDeclarations: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +InterfaceMemberDeclarations InterfaceMemberDeclaration +{ + jpElementStart(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +InterfaceMemberDeclaration: +ConstantDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +AbstractMethodDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ClassDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ClassDeclaration jp_SEMICOL +{ + jpElementStart(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +InterfaceDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +InterfaceDeclaration jp_SEMICOL +{ + jpElementStart(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConstantDeclaration: +FieldDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +AbstractMethodDeclaration: +MethodHeader Semicols +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Semicols: +jp_SEMICOL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Semicols jp_SEMICOL +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ArrayInitializer: +jp_CURLYSTART VariableInitializersOptional jp_CURLYEND +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +VariableInitializersOptional: +{ + jpElementStart(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +VariableInitializers +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +VariableInitializers jp_COMMA +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +VariableInitializers: +VariableInitializer +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +VariableInitializers jp_COMMA VariableInitializer +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Block: +jp_CURLYSTART BlockStatementsopt jp_CURLYEND +{ + jpElementStart(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +BlockStatementsopt: +{ + jpElementStart(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +BlockStatements +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +BlockStatements: +BlockStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +BlockStatements BlockStatement +{ + jpElementStart(1); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +BlockStatement: +LocalVariableDeclarationStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Statement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ClassDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +LocalVariableDeclarationStatement: +LocalVariableDeclaration jp_SEMICOL +{ + jpElementStart(1); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +LocalVariableDeclaration: +Modifiers Type VariableDeclarators +{ + jpElementStart(1); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Type VariableDeclarators +{ + jpElementStart(1); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Statement: +StatementWithoutTrailingSubstatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +LabeledStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +IfThenStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +IfThenElseStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +WhileStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ForStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +StatementNoShortIf: +StatementWithoutTrailingSubstatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +LabeledStatementNoShortIf +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +IfThenElseStatementNoShortIf +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +WhileStatementNoShortIf +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ForStatementNoShortIf +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +StatementWithoutTrailingSubstatement: +Block +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +EmptyStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ExpressionStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +SwitchStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +DoStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +BreakStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ContinueStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ReturnStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +SynchronizedStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ThrowStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +TryStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +AssertStatement +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +EmptyStatement: +jp_SEMICOL +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +LabeledStatement: +Identifier jp_COLON Statement +{ + jpElementStart(3); + yyGetParser->DeallocateParserType(&($1)); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +LabeledStatementNoShortIf: +Identifier jp_COLON StatementNoShortIf +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ExpressionStatement: +StatementExpression jp_SEMICOL +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +StatementExpression: +Assignment +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PreIncrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PreDecrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PostIncrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PostDecrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +MethodInvocation +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ClassInstanceCreationExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +IfThenStatement: +jp_IF jp_PARESTART Expression jp_PAREEND Statement +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +IfThenElseStatement: +jp_IF jp_PARESTART Expression jp_PAREEND StatementNoShortIf jp_ELSE Statement +{ + jpElementStart(7); + jpCheckEmpty(7); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +IfThenElseStatementNoShortIf: +jp_IF jp_PARESTART Expression jp_PAREEND StatementNoShortIf jp_ELSE StatementNoShortIf +{ + jpElementStart(7); + jpCheckEmpty(7); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +SwitchStatement: +jp_SWITCH jp_PARESTART Expression jp_PAREEND SwitchBlock +{ + jpElementStart(5); + +} + +SwitchBlock: +jp_CURLYSTART SwitchBlockStatementGroups SwitchLabelsopt jp_CURLYEND +{ + jpElementStart(4); + +} + +SwitchLabelsopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +SwitchLabels +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +SwitchBlockStatementGroups: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +SwitchBlockStatementGroups SwitchBlockStatementGroup +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +SwitchBlockStatementGroup: +SwitchLabels BlockStatements +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +SwitchLabels: +SwitchLabel +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +SwitchLabels SwitchLabel +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +SwitchLabel: +jp_CASE ConstantExpression jp_COLON +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_DEFAULT jp_COLON +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +WhileStatement: +jp_WHILE jp_PARESTART Expression jp_PAREEND Statement +{ + jpElementStart(5); + +} + +WhileStatementNoShortIf: +jp_WHILE jp_PARESTART Expression jp_PAREEND StatementNoShortIf +{ + jpElementStart(5); + +} + +DoStatement: +jp_DO Statement jp_WHILE jp_PARESTART Expression jp_PAREEND jp_SEMICOL +{ + jpElementStart(7); + +} + +ForStatement: +jp_FOR jp_PARESTART ForInitopt jp_SEMICOL Expressionopt jp_SEMICOL ForUpdateopt jp_PAREEND +Statement +{ + jpElementStart(9); + +} + +ForUpdateopt: +{ + jpElementStart(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ForUpdate +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ForInitopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ForInit +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ForStatementNoShortIf: +jp_FOR jp_PARESTART ForInitopt jp_SEMICOL Expressionopt jp_SEMICOL ForUpdateopt jp_PAREEND +StatementNoShortIf +{ + jpElementStart(9); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Expressionopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Expression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ForInit: +StatementExpressionList +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +LocalVariableDeclaration +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ForUpdate: +StatementExpressionList +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +StatementExpressionList: +StatementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +StatementExpressionList jp_COMMA StatementExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +AssertStatement: +jp_ASSERT Expression jp_SEMICOL +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_ASSERT Expression jp_COLON Expression jp_SEMICOL +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +BreakStatement: +jp_BREAK Identifieropt jp_SEMICOL +{ + jpElementStart(3); + yyGetParser->DeallocateParserType(&($2)); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Identifieropt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Identifier +{ + jpElementStart(1); + +} + +ContinueStatement: +jp_CONTINUE Identifieropt jp_SEMICOL +{ + jpElementStart(3); + yyGetParser->DeallocateParserType(&($2)); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ReturnStatement: +jp_RETURN Expressionopt jp_SEMICOL +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ThrowStatement: +jp_THROW Expression jp_SEMICOL +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +SynchronizedStatement: +jp_SYNCHRONIZED jp_PARESTART Expression jp_PAREEND Block +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +TryStatement: +jp_TRY Block Catches +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_TRY Block Catchesopt Finally +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Catchesopt: +{ + jpElementStart(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Catches +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Catches: +CatchClause +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Catches CatchClause +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +CatchClause: +jp_CATCH jp_PARESTART FormalParameter jp_PAREEND Block +{ + jpElementStart(5); + +} + +Finally: +jp_FINALLY Block +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Primary: +PrimaryNoNewArray +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ArrayCreationExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +PrimaryNoNewArray: +Literal +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_THIS +{ + jpElementStart(1); + +} +| +jp_PARESTART Expression jp_PAREEND +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ClassInstanceCreationExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +FieldAccess +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +MethodInvocation +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ArrayAccess +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ClassInstanceCreationExpression: +New ClassType jp_PARESTART ArgumentListopt jp_PAREEND ClassBodyOpt +{ + jpElementStart(6); + jpCheckEmpty(6); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ClassBodyOpt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ClassBody +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ArgumentListopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ArgumentList +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ArgumentList: +Expression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ArgumentList jp_COMMA Expression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ArrayCreationExpression: +New PrimitiveType DimExprs Dimsopt +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +New ClassOrInterfaceType DimExprs Dimsopt +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +New PrimitiveType Dims ArrayInitializer +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +New ClassOrInterfaceType Dims ArrayInitializer +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Dimsopt: +{ + jpElementStart(0); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Dims +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +DimExprs: +DimExpr +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +DimExprs DimExpr +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +DimExpr: +jp_BRACKETSTART Expression jp_BRACKETEND +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Dims: +jp_BRACKETSTART jp_BRACKETEND +{ + jpElementStart(2); + +} +| +Dims jp_BRACKETSTART jp_BRACKETEND +{ + jpElementStart(3); + +} + +FieldAccess: +Primary jp_DOT Identifier +{ + jpElementStart(3); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_SUPER jp_DOT Identifier +{ + jpElementStart(3); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_THIS jp_DOT Identifier +{ + jpElementStart(3); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Primary jp_DOT jp_THIS +{ + jpElementStart(3); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +MethodInvocation: +Name jp_PARESTART ArgumentListopt jp_PAREEND +{ + jpElementStart(4); + yyGetParser->DeallocateParserType(&($1)); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Primary jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND +{ + jpElementStart(6); + yyGetParser->DeallocateParserType(&($1)); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(6); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_SUPER jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND +{ + jpElementStart(6); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(6); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_THIS jp_DOT Identifier jp_PARESTART ArgumentListopt jp_PAREEND +{ + jpElementStart(6); + yyGetParser->DeallocateParserType(&($3)); + jpCheckEmpty(6); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ArrayAccess: +Name jp_BRACKETSTART Expression jp_BRACKETEND +{ + jpElementStart(4); + yyGetParser->DeallocateParserType(&($1)); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PrimaryNoNewArray jp_BRACKETSTART Expression jp_BRACKETEND +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +PostfixExpression: +Primary +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Name +{ + jpElementStart(1); + yyGetParser->DeallocateParserType(&($1)); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ArrayType jp_DOT jp_CLASS +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PostIncrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PostDecrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +PostIncrementExpression: +PostfixExpression jp_PLUSPLUS +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +PostDecrementExpression: +PostfixExpression jp_MINUSMINUS +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +UnaryExpression: +PreIncrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +PreDecrementExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_PLUS UnaryExpression +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_MINUS UnaryExpression +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +UnaryExpressionNotPlusMinus +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +PreIncrementExpression: +jp_PLUSPLUS UnaryExpression +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +PreDecrementExpression: +jp_MINUSMINUS UnaryExpression +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +UnaryExpressionNotPlusMinus: +PostfixExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_TILDE UnaryExpression +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_EXCLAMATION UnaryExpression +{ + jpElementStart(2); + jpCheckEmpty(2); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +CastExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +CastExpression: +jp_PARESTART PrimitiveType Dimsopt jp_PAREEND UnaryExpression +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_PARESTART Expression jp_PAREEND UnaryExpressionNotPlusMinus +{ + jpElementStart(4); + jpCheckEmpty(4); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_PARESTART Name Dims jp_PAREEND UnaryExpressionNotPlusMinus +{ + jpElementStart(5); + +} + +MultiplicativeExpression: +UnaryExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +MultiplicativeExpression jp_TIMES UnaryExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +MultiplicativeExpression jp_DIVIDE UnaryExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +MultiplicativeExpression jp_PERCENT UnaryExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +AdditiveExpression: +MultiplicativeExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +AdditiveExpression jp_PLUS MultiplicativeExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +AdditiveExpression jp_MINUS MultiplicativeExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ShiftExpression: +AdditiveExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ShiftExpression jp_LTLT AdditiveExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ShiftExpression jp_GTGT AdditiveExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ShiftExpression jp_GTGTGT AdditiveExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +RelationalExpression: +ShiftExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +RelationalExpression jp_LESSTHAN ShiftExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +RelationalExpression jp_GREATER ShiftExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +RelationalExpression jp_LTEQUALS ShiftExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +RelationalExpression jp_GTEQUALS ShiftExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +RelationalExpression jp_INSTANCEOF ReferenceType +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +EqualityExpression: +RelationalExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +EqualityExpression jp_EQUALSEQUALS RelationalExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +EqualityExpression jp_EXCLAMATIONEQUALS RelationalExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +AndExpression: +EqualityExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +AndExpression jp_AND EqualityExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ExclusiveOrExpression: +AndExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ExclusiveOrExpression jp_CARROT AndExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +InclusiveOrExpression: +ExclusiveOrExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +InclusiveOrExpression jp_PIPE ExclusiveOrExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConditionalAndExpression: +InclusiveOrExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ConditionalAndExpression jp_ANDAND InclusiveOrExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConditionalOrExpression: +ConditionalAndExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ConditionalOrExpression jp_PIPEPIPE ConditionalAndExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConditionalExpression: +ConditionalOrExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ConditionalOrExpression jp_QUESTION Expression jp_COLON ConditionalExpression +{ + jpElementStart(5); + jpCheckEmpty(5); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +AssignmentExpression: +ConditionalExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Assignment +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Assignment: +LeftHandSide AssignmentOperator AssignmentExpression +{ + jpElementStart(3); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +LeftHandSide: +Name +{ + jpElementStart(1); + yyGetParser->DeallocateParserType(&($1)); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +FieldAccess +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +ArrayAccess +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +AssignmentOperator: +jp_EQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_TIMESEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_DIVIDEEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_PERCENTEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_PLUSEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_MINUSEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_LESLESEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_GTGTEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_GTGTGTEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_ANDEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_CARROTEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +jp_PIPEEQUALS +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +Expression: +AssignmentExpression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +ConstantExpression: +Expression +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +New: +jp_NEW +{ + jpElementStart(1); + jpCheckEmpty(1); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} +| +Name jp_DOT jp_NEW +{ + jpElementStart(3); + jpStoreClass($1); + jpCheckEmpty(3); + $$ = 0; + yyGetParser->SetCurrentCombine(""); + +} + +%% +/* End of grammar */ + +/*--------------------------------------------------------------------------*/ +void cmDependsJavaError(yyscan_t yyscanner, const char* message) +{ + yyGetParser->Error(message); +} + diff --git a/CMakeLua/Source/cmDependsJavaParserHelper.cxx b/CMakeLua/Source/cmDependsJavaParserHelper.cxx new file mode 100644 index 0000000..1595b27 --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaParserHelper.cxx @@ -0,0 +1,434 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJavaParserHelper.cxx,v $ + Language: C++ + Date: $Date: 2006/05/10 19:01:22 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDependsJavaParserHelper.h" + +#include "cmSystemTools.h" +#include "cmDependsJavaLexer.h" + +int cmDependsJava_yyparse( yyscan_t yyscanner ); + +cmDependsJavaParserHelper::cmDependsJavaParserHelper() +{ + this->CurrentDepth = 0; + + this->UnionsAvailable = 0; + this->LastClassId = 0; + + CurrentClass tl; + tl.Name = "*"; + this->ClassStack.push_back(tl); +} + + +cmDependsJavaParserHelper::~cmDependsJavaParserHelper() +{ + this->CleanupParser(); +} + +void cmDependsJavaParserHelper::CurrentClass +::AddFileNamesForPrinting(std::vector *files, + const char* prefix, const char* sep) +{ + cmStdString rname = ""; + if ( prefix ) + { + rname += prefix; + rname += sep; + } + rname += this->Name; + files->push_back(rname); + std::vector::iterator it; + for ( it = this->NestedClasses.begin(); + it != this->NestedClasses.end(); + ++ it ) + { + it->AddFileNamesForPrinting(files, rname.c_str(), sep); + } +} + +void cmDependsJavaParserHelper::DeallocateParserType(char** pt) +{ + if (!pt) + { + return; + } + if (!*pt) + { + return; + } + *pt = 0; + this->UnionsAvailable --; +} + +void cmDependsJavaParserHelper::AddClassFound(const char* sclass) +{ + if( ! sclass ) + { + return; + } + std::vector::iterator it; + for ( it = this->ClassesFound.begin(); + it != this->ClassesFound.end(); + it ++ ) + { + if ( *it == sclass ) + { + return; + } + } + this->ClassesFound.push_back(sclass); +} + +void cmDependsJavaParserHelper::AddPackagesImport(const char* sclass) +{ + std::vector::iterator it; + for ( it = this->PackagesImport.begin(); + it != this->PackagesImport.end(); + it ++ ) + { + if ( *it == sclass ) + { + return; + } + } + this->PackagesImport.push_back(sclass); +} + +void cmDependsJavaParserHelper::SafePrintMissing(const char* str, + int line, int cnt) +{ + if ( str ) + { + std::cout << line << " String " << cnt << " exists: "; + unsigned int cc; + for ( cc = 0; cc < strlen(str); cc ++ ) + { + unsigned char ch = str[cc]; + if ( ch >= 32 && ch <= 126 ) + { + std::cout << (char)ch; + } + else + { + std::cout << "<" << (int)ch << ">"; + break; + } + } + std::cout << "- " << strlen(str) << std::endl; + } +} +void cmDependsJavaParserHelper::Print(const char* place, const char* str) +{ + if ( this->Verbose ) + { + std::cout << "[" << place << "=" << str << "]" << std::endl; + } +} + +void cmDependsJavaParserHelper::CombineUnions(char** out, + const char* in1, char** in2, + const char* sep) +{ + size_t len = 1; + if ( in1 ) + { + len += strlen(in1); + } + if ( *in2 ) + { + len += strlen(*in2); + } + if ( sep ) + { + len += strlen(sep); + } + *out = new char [ len ]; + *out[0] = 0; + if ( in1 ) + { + strcat(*out, in1); + } + if ( sep ) + { + strcat(*out, sep); + } + if ( *in2 ) + { + strcat(*out, *in2); + } + if ( *in2 ) + { + this->DeallocateParserType(in2); + } + this->UnionsAvailable ++; +} + +void cmDependsJavaParserHelper +::CheckEmpty(int line, int cnt, cmDependsJavaParserHelper::ParserType* pt) +{ + int cc; + int kk = -cnt + 1; + for ( cc = 1; cc <= cnt; cc ++) + { + cmDependsJavaParserHelper::ParserType* cpt = pt + kk; + this->SafePrintMissing(cpt->str, line, cc); + kk ++; + } +} + +void cmDependsJavaParserHelper +::PrepareElement(cmDependsJavaParserHelper::ParserType* me) +{ + // Inititalize self + me->str = 0; +} + +void cmDependsJavaParserHelper +::AllocateParserType(cmDependsJavaParserHelper::ParserType* pt, + const char* str, int len) +{ + pt->str = 0; + if ( len == 0 ) + { + len = (int)strlen(str); + } + if ( len == 0 ) + { + return; + } + this->UnionsAvailable ++; + pt->str = new char[ len + 1 ]; + strncpy(pt->str, str, len); + pt->str[len] = 0; + this->Allocates.push_back(pt->str); +} + +void cmDependsJavaParserHelper::StartClass(const char* cls) +{ + CurrentClass cl; + cl.Name = cls; + this->ClassStack.push_back(cl); + + this->CurrentDepth ++; +} + +void cmDependsJavaParserHelper::EndClass() +{ + CurrentClass* parent = 0; + CurrentClass* current = 0; + if ( this->ClassStack.size() > 0 ) + { + current = &(*(this->ClassStack.end() - 1)); + if ( this->ClassStack.size() > 1 ) + { + parent = &(*(this->ClassStack.end() - 2)); + } + } + if ( current == 0 ) + { + std::cerr << "Error when parsing. Current class is null" << std::endl; + abort(); + } + if ( parent == 0 ) + { + std::cerr << "Error when parsing. Parent class is null" << std::endl; + abort(); + } + this->CurrentDepth --; + parent->NestedClasses.push_back(*current); + this->ClassStack.erase(this->ClassStack.end()-1, this->ClassStack.end()); +} + +void cmDependsJavaParserHelper::PrintClasses() +{ + if ( this->ClassStack.size() == 0 ) + { + std::cerr << "Error when parsing. No classes on class stack" << std::endl; + abort(); + } + std::vector files = this->GetFilesProduced(); + std::vector::iterator sit; + for ( sit = files.begin(); + sit != files.end(); + ++ sit ) + { + std::cout << " " << sit->c_str() << ".class" << std::endl; + } +} + +std::vector cmDependsJavaParserHelper::GetFilesProduced() +{ + std::vector files; + CurrentClass* toplevel = &(*(this->ClassStack.begin())); + std::vector::iterator it; + for ( it = toplevel->NestedClasses.begin(); + it != toplevel->NestedClasses.end(); + ++ it ) + { + it->AddFileNamesForPrinting(&files, 0, "$"); + } + return files; +} + +int cmDependsJavaParserHelper::ParseString(const char* str, int verb) +{ + if ( !str) + { + return 0; + } + this->Verbose = verb; + this->InputBuffer = str; + this->InputBufferPos = 0; + this->CurrentLine = 0; + + + yyscan_t yyscanner; + cmDependsJava_yylex_init(&yyscanner); + cmDependsJava_yyset_extra(this, yyscanner); + int res = cmDependsJava_yyparse(yyscanner); + cmDependsJava_yylex_destroy(yyscanner); + if ( res != 0 ) + { + std::cout << "JP_Parse returned: " << res << std::endl; + return 0; + } + + if ( verb ) + { + if ( this->CurrentPackage.size() > 0 ) + { + std::cout << "Current package is: " << + this->CurrentPackage.c_str() << std::endl; + } + std::cout << "Imports packages:"; + if ( this->PackagesImport.size() > 0 ) + { + std::vector::iterator it; + for ( it = this->PackagesImport.begin(); + it != this->PackagesImport.end(); + ++ it ) + { + std::cout << " " << it->c_str(); + } + } + std::cout << std::endl; + std::cout << "Depends on:"; + if ( this->ClassesFound.size() > 0 ) + { + std::vector::iterator it; + for ( it = this->ClassesFound.begin(); + it != this->ClassesFound.end(); + ++ it ) + { + std::cout << " " << it->c_str(); + } + } + std::cout << std::endl; + std::cout << "Generated files:" << std::endl; + this->PrintClasses(); + if ( this->UnionsAvailable != 0 ) + { + std::cout << "There are still " << + this->UnionsAvailable << " unions available" << std::endl; + } + } + this->CleanupParser(); + return 1; +} + +void cmDependsJavaParserHelper::CleanupParser() +{ + std::vector::iterator it; + for ( it = this->Allocates.begin(); + it != this->Allocates.end(); + ++ it ) + { + delete [] *it; + } + this->Allocates.erase(this->Allocates.begin(), + this->Allocates.end()); +} + +int cmDependsJavaParserHelper::LexInput(char* buf, int maxlen) +{ + if ( maxlen < 1 ) + { + return 0; + } + if ( this->InputBufferPos < this->InputBuffer.size() ) + { + buf[0] = this->InputBuffer[ this->InputBufferPos++ ]; + if ( buf[0] == '\n' ) + { + this->CurrentLine ++; + } + return(1); + } + else + { + buf[0] = '\n'; + return( 0 ); + } +} +void cmDependsJavaParserHelper::Error(const char* str) +{ + unsigned long pos = static_cast(this->InputBufferPos); + fprintf(stderr, "JPError: %s (%lu / Line: %d)\n", + str, pos, this->CurrentLine); + int cc; + std::cerr << "String: ["; + for ( cc = 0; + cc < 30 && *(this->InputBuffer.c_str() + this->InputBufferPos + cc); + cc ++ ) + { + std::cerr << *(this->InputBuffer.c_str() + this->InputBufferPos + cc); + } + std::cerr << "]" << std::endl; +} + +void cmDependsJavaParserHelper::UpdateCombine(const char* str1, + const char* str2) +{ + if ( this->CurrentCombine == "" && str1 != 0) + { + this->CurrentCombine = str1; + } + this->CurrentCombine += "."; + this->CurrentCombine += str2; +} + +int cmDependsJavaParserHelper::ParseFile(const char* file) +{ + if ( !cmSystemTools::FileExists(file)) + { + return 0; + } + std::ifstream ifs(file); + if ( !ifs ) + { + return 0; + } + + cmStdString fullfile = ""; + cmStdString line; + while ( cmSystemTools::GetLineFromStream(ifs, line) ) + { + fullfile += line + "\n"; + } + return this->ParseString(fullfile.c_str(), 0); +} + diff --git a/CMakeLua/Source/cmDependsJavaParserHelper.h b/CMakeLua/Source/cmDependsJavaParserHelper.h new file mode 100644 index 0000000..a3d4fb8 --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaParserHelper.h @@ -0,0 +1,110 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDependsJavaParserHelper.h,v $ + Language: C++ + Date: $Date: 2006/05/10 19:01:22 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsJavaParserHelper_h +#define cmDependsJavaParserHelper_h + +#include "cmStandardIncludes.h" + +#define YYSTYPE cmDependsJavaParserHelper::ParserType +#define YYSTYPE_IS_DECLARED +#define YY_EXTRA_TYPE cmDependsJavaParserHelper* +#define YY_DECL int cmDependsJava_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner) + +/** \class cmDependsJavaParserHelper + * \brief Helper class for parsing java source files + * + * Finds dependencies for java file and list of outputs + */ + +class cmDependsJavaParserHelper +{ +public: + typedef struct { + char* str; + } ParserType; + + cmDependsJavaParserHelper(); + ~cmDependsJavaParserHelper(); + + int ParseString(const char* str, int verb); + int ParseFile(const char* file); + + // For the lexer: + void AllocateParserType(cmDependsJavaParserHelper::ParserType* pt, + const char* str, int len = 0); + + int LexInput(char* buf, int maxlen); + void Error(const char* str); + + // For yacc + void AddClassFound(const char* sclass); + void PrepareElement(ParserType* opt); + void DeallocateParserType(char** pt); + void CheckEmpty(int line, int cnt, ParserType* pt); + void StartClass(const char* cls); + void EndClass(); + void AddPackagesImport(const char* sclass); + void SetCurrentPackage(const char* pkg) { this->CurrentPackage = pkg; } + const char* GetCurrentPackage() { return this->CurrentPackage.c_str(); } + void SetCurrentCombine(const char* cmb) { this->CurrentCombine = cmb; } + const char* GetCurrentCombine() { return this->CurrentCombine.c_str(); } + void UpdateCombine(const char* str1, const char* str2); + + std::vector& GetClassesFound() { return this->ClassesFound; } + + std::vector GetFilesProduced(); + +private: + class CurrentClass + { + public: + cmStdString Name; + std::vector NestedClasses; + CurrentClass() {} + void AddFileNamesForPrinting(std::vector *files, + const char* prefix, const char* sep); + }; + cmStdString CurrentPackage; + cmStdString::size_type InputBufferPos; + cmStdString InputBuffer; + std::vector OutputBuffer; + std::vector ClassesFound; + std::vector PackagesImport; + cmStdString CurrentCombine; + + std::vector ClassStack; + + int CurrentLine; + int UnionsAvailable; + int LastClassId; + int CurrentDepth; + int Verbose; + + std::vector Allocates; + + void PrintClasses(); + + void Print(const char* place, const char* str); + void CombineUnions(char** out, const char* in1, char** in2, + const char* sep); + void SafePrintMissing(const char* str, int line, int cnt); + + void CleanupParser(); +}; + +#endif + diff --git a/CMakeLua/Source/cmDependsJavaParserTokens.h b/CMakeLua/Source/cmDependsJavaParserTokens.h new file mode 100644 index 0000000..c7a414f --- /dev/null +++ b/CMakeLua/Source/cmDependsJavaParserTokens.h @@ -0,0 +1,254 @@ +/* A Bison parser, made by GNU Bison 1.875d. */ + +/* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, + 1989, 1990, 2000, 2001, 2002, 2003, 2004 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + jp_ABSTRACT = 258, + jp_ASSERT = 259, + jp_BOOLEAN_TYPE = 260, + jp_BREAK = 261, + jp_BYTE_TYPE = 262, + jp_CASE = 263, + jp_CATCH = 264, + jp_CHAR_TYPE = 265, + jp_CLASS = 266, + jp_CONTINUE = 267, + jp_DEFAULT = 268, + jp_DO = 269, + jp_DOUBLE_TYPE = 270, + jp_ELSE = 271, + jp_EXTENDS = 272, + jp_FINAL = 273, + jp_FINALLY = 274, + jp_FLOAT_TYPE = 275, + jp_FOR = 276, + jp_IF = 277, + jp_IMPLEMENTS = 278, + jp_IMPORT = 279, + jp_INSTANCEOF = 280, + jp_INT_TYPE = 281, + jp_INTERFACE = 282, + jp_LONG_TYPE = 283, + jp_NATIVE = 284, + jp_NEW = 285, + jp_PACKAGE = 286, + jp_PRIVATE = 287, + jp_PROTECTED = 288, + jp_PUBLIC = 289, + jp_RETURN = 290, + jp_SHORT_TYPE = 291, + jp_STATIC = 292, + jp_STRICTFP = 293, + jp_SUPER = 294, + jp_SWITCH = 295, + jp_SYNCHRONIZED = 296, + jp_THIS = 297, + jp_THROW = 298, + jp_THROWS = 299, + jp_TRANSIENT = 300, + jp_TRY = 301, + jp_VOID = 302, + jp_VOLATILE = 303, + jp_WHILE = 304, + jp_BOOLEANLITERAL = 305, + jp_CHARACTERLITERAL = 306, + jp_DECIMALINTEGERLITERAL = 307, + jp_FLOATINGPOINTLITERAL = 308, + jp_HEXINTEGERLITERAL = 309, + jp_NULLLITERAL = 310, + jp_STRINGLITERAL = 311, + jp_NAME = 312, + jp_AND = 313, + jp_ANDAND = 314, + jp_ANDEQUALS = 315, + jp_BRACKETEND = 316, + jp_BRACKETSTART = 317, + jp_CARROT = 318, + jp_CARROTEQUALS = 319, + jp_COLON = 320, + jp_COMMA = 321, + jp_CURLYEND = 322, + jp_CURLYSTART = 323, + jp_DIVIDE = 324, + jp_DIVIDEEQUALS = 325, + jp_DOLLAR = 326, + jp_DOT = 327, + jp_EQUALS = 328, + jp_EQUALSEQUALS = 329, + jp_EXCLAMATION = 330, + jp_EXCLAMATIONEQUALS = 331, + jp_GREATER = 332, + jp_GTEQUALS = 333, + jp_GTGT = 334, + jp_GTGTEQUALS = 335, + jp_GTGTGT = 336, + jp_GTGTGTEQUALS = 337, + jp_LESLESEQUALS = 338, + jp_LESSTHAN = 339, + jp_LTEQUALS = 340, + jp_LTLT = 341, + jp_MINUS = 342, + jp_MINUSEQUALS = 343, + jp_MINUSMINUS = 344, + jp_PAREEND = 345, + jp_PARESTART = 346, + jp_PERCENT = 347, + jp_PERCENTEQUALS = 348, + jp_PIPE = 349, + jp_PIPEEQUALS = 350, + jp_PIPEPIPE = 351, + jp_PLUS = 352, + jp_PLUSEQUALS = 353, + jp_PLUSPLUS = 354, + jp_QUESTION = 355, + jp_SEMICOL = 356, + jp_TILDE = 357, + jp_TIMES = 358, + jp_TIMESEQUALS = 359, + jp_ERROR = 360 + }; +#endif +#define jp_ABSTRACT 258 +#define jp_ASSERT 259 +#define jp_BOOLEAN_TYPE 260 +#define jp_BREAK 261 +#define jp_BYTE_TYPE 262 +#define jp_CASE 263 +#define jp_CATCH 264 +#define jp_CHAR_TYPE 265 +#define jp_CLASS 266 +#define jp_CONTINUE 267 +#define jp_DEFAULT 268 +#define jp_DO 269 +#define jp_DOUBLE_TYPE 270 +#define jp_ELSE 271 +#define jp_EXTENDS 272 +#define jp_FINAL 273 +#define jp_FINALLY 274 +#define jp_FLOAT_TYPE 275 +#define jp_FOR 276 +#define jp_IF 277 +#define jp_IMPLEMENTS 278 +#define jp_IMPORT 279 +#define jp_INSTANCEOF 280 +#define jp_INT_TYPE 281 +#define jp_INTERFACE 282 +#define jp_LONG_TYPE 283 +#define jp_NATIVE 284 +#define jp_NEW 285 +#define jp_PACKAGE 286 +#define jp_PRIVATE 287 +#define jp_PROTECTED 288 +#define jp_PUBLIC 289 +#define jp_RETURN 290 +#define jp_SHORT_TYPE 291 +#define jp_STATIC 292 +#define jp_STRICTFP 293 +#define jp_SUPER 294 +#define jp_SWITCH 295 +#define jp_SYNCHRONIZED 296 +#define jp_THIS 297 +#define jp_THROW 298 +#define jp_THROWS 299 +#define jp_TRANSIENT 300 +#define jp_TRY 301 +#define jp_VOID 302 +#define jp_VOLATILE 303 +#define jp_WHILE 304 +#define jp_BOOLEANLITERAL 305 +#define jp_CHARACTERLITERAL 306 +#define jp_DECIMALINTEGERLITERAL 307 +#define jp_FLOATINGPOINTLITERAL 308 +#define jp_HEXINTEGERLITERAL 309 +#define jp_NULLLITERAL 310 +#define jp_STRINGLITERAL 311 +#define jp_NAME 312 +#define jp_AND 313 +#define jp_ANDAND 314 +#define jp_ANDEQUALS 315 +#define jp_BRACKETEND 316 +#define jp_BRACKETSTART 317 +#define jp_CARROT 318 +#define jp_CARROTEQUALS 319 +#define jp_COLON 320 +#define jp_COMMA 321 +#define jp_CURLYEND 322 +#define jp_CURLYSTART 323 +#define jp_DIVIDE 324 +#define jp_DIVIDEEQUALS 325 +#define jp_DOLLAR 326 +#define jp_DOT 327 +#define jp_EQUALS 328 +#define jp_EQUALSEQUALS 329 +#define jp_EXCLAMATION 330 +#define jp_EXCLAMATIONEQUALS 331 +#define jp_GREATER 332 +#define jp_GTEQUALS 333 +#define jp_GTGT 334 +#define jp_GTGTEQUALS 335 +#define jp_GTGTGT 336 +#define jp_GTGTGTEQUALS 337 +#define jp_LESLESEQUALS 338 +#define jp_LESSTHAN 339 +#define jp_LTEQUALS 340 +#define jp_LTLT 341 +#define jp_MINUS 342 +#define jp_MINUSEQUALS 343 +#define jp_MINUSMINUS 344 +#define jp_PAREEND 345 +#define jp_PARESTART 346 +#define jp_PERCENT 347 +#define jp_PERCENTEQUALS 348 +#define jp_PIPE 349 +#define jp_PIPEEQUALS 350 +#define jp_PIPEPIPE 351 +#define jp_PLUS 352 +#define jp_PLUSEQUALS 353 +#define jp_PLUSPLUS 354 +#define jp_QUESTION 355 +#define jp_SEMICOL 356 +#define jp_TILDE 357 +#define jp_TIMES 358 +#define jp_TIMESEQUALS 359 +#define jp_ERROR 360 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + + + diff --git a/CMakeLua/Source/cmDocumentVariables.cxx b/CMakeLua/Source/cmDocumentVariables.cxx new file mode 100755 index 0000000..c70ddea --- /dev/null +++ b/CMakeLua/Source/cmDocumentVariables.cxx @@ -0,0 +1,1115 @@ +#include "cmDocumentVariables.h" +#include "cmake.h" + +void cmDocumentVariables::DefineVariables(cmake* cm) +{ + // Subsection: variables defined by cmake, that give + // information about the project, and cmake + cm->DefineProperty + ("CMAKE_AR", cmProperty::VARIABLE, + "Name of archiving tool for static libraries.", + "This specifies name of the program that creates archive " + "or static libraries.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_COMMAND", cmProperty::VARIABLE, + "The full path to the cmake executable.", + "This is the full path to the CMake executable cmake which is " + "useful from custom commands that want to use the cmake -E " + "option for portable system commands. " + "(e.g. /usr/local/bin/cmake", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_BINARY_DIR", cmProperty::VARIABLE, + "The path to the top level of the build tree.", + "This is the full path to the top level of the current CMake " + "build tree. For an in-source build, this would be the same " + "as CMAKE_SOURCE_DIR. ", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SOURCE_DIR", cmProperty::VARIABLE, + "The path to the top level of the source tree.", + "This is the full path to the top level of the current CMake " + "source tree. For an in-source build, this would be the same " + "as CMAKE_BINARY_DIR. ", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_CURRENT_BINARY_DIR", cmProperty::VARIABLE, + "The path to the binary directory currently being processed.", + "This the full path to the build directory that is currently " + "being processed by cmake. Each directory added by " + "add_subdirectory will create a binary directory in the build " + "tree, and as it is being processed this variable will be set. " + "For in-source builds this is the current source directory " + "being processed.", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_CURRENT_SOURCE_DIR", cmProperty::VARIABLE, + "The path to the source directory currently being processed.", + "This the full path to the source directory that is currently " + "being processed by cmake. ", false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_CURRENT_LIST_FILE", cmProperty::VARIABLE, + "Full path to the listfile currently being processed.", + "As CMake processes the listfiles in your project this " + "variable will always be set to the one currently being " + "processed. See also CMAKE_PARENT_LIST_FILE.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_CURRENT_LIST_LINE", cmProperty::VARIABLE, + "The line number of the current file being processed.", + "This is the line number of the file currently being" + " processed by cmake.", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_BUILD_TOOL", cmProperty::VARIABLE, + "Tool used for the acutal build process.", + "This variable is set to the program that will be" + " needed to build the output of CMake. If the " + "generator selected was Visual Studio 6, the " + "CMAKE_MAKE_PROGRAM will be set to msdev, for " + "Unix makefiles it will be set to make or gmake, " + "and for Visual Studio 7 it set to devenv. For " + "Nmake Makefiles the value is nmake. This can be " + "useful for adding special flags and commands based" + " on the final build environment. ", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_CACHEFILE_DIR", cmProperty::VARIABLE, + "The directory with the CMakeCache.txt file.", + "This is the full path to the directory that has the " + "CMakeCache.txt file in it. This is the same as " + "CMAKE_BINARY_DIR.", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_CACHE_MAJOR_VERSION", cmProperty::VARIABLE, + "Major version of CMake used to create the CMakeCache.txt file", + "This is stores the major version of CMake used to " + "write a CMake cache file. It is only different when " + "a different version of CMake is run on a previously " + "created cache file.", false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_CACHE_MINOR_VERSION", cmProperty::VARIABLE, + "Minor version of CMake used to create the CMakeCache.txt file", + "This is stores the minor version of CMake used to " + "write a CMake cache file. It is only different when " + "a different version of CMake is run on a previously " + "created cache file.", false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_CACHE_RELEASE_VERSION", cmProperty::VARIABLE, + "Release version of CMake used to create the CMakeCache.txt file", + "This is stores the release version of CMake used to " + "write a CMake cache file. It is only different when " + "a different version of CMake is run on a previously " + "created cache file.", false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_CFG_INTDIR", cmProperty::VARIABLE, + "Build time configuration directory for project.", + "This is a variable that is used to provide developers" + " access to the intermediate directory used by Visual " + "Studio IDE projects. For example, if building " + "Debug all executables and libraries end up in a " + "Debug directory. On UNIX systems this variable " + "is set to \".\". However, with Visual Studio this " + "variable is set to $(IntDir). $(IntDir) is expanded " + "by the IDE only. So this variable should only be " + "used in custom commands that will be run during " + "the build process. This variable should not be " + "used directly in a CMake command. CMake has no " + "way of knowing if Debug or Release will be picked " + "by the IDE for a build type. If a program needs to " + "know the directory it was built in, it can use " + "CMAKE_INTDIR. CMAKE_INTDIR is a C/C++ preprocessor " + "macro that is defined on the command line of the " + "compiler. If it has a value, it will be the " + "intermediate directory used to build the file. " + "This way an executable or a library can find files " + "that are located in the build directory.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_CTEST_COMMAND", cmProperty::VARIABLE, + "Full path to ctest command installed with cmake.", + "This is the full path to the CTest executable ctest " + "which is useful from custom commands that want " + " to use the cmake -E option for portable system " + "commands.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_DL_LIBS", cmProperty::VARIABLE, + "Name of library containing dlopen and dlcose.", + "The name of the library that has dlopen and " + "dlclose in it, usually -ldl on most UNIX machines.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_EDIT_COMMAND", cmProperty::VARIABLE, + "Full path to CMakeSetup or ccmake.", + "This is the full path to the CMake executable " + "that can graphically edit the cache. For example," + " CMakeSetup, ccmake, or cmake -i.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_GENERATOR", cmProperty::VARIABLE, + "The generator used to build the project.", + "The name of the generator that is being used to generate the " + "build files. (e.g. \"Unix Makefiles\", " + "\"Visual Studio 6\", etc.)",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_HOME_DIRECTORY", cmProperty::VARIABLE, + "Path to top of source tree.", + "This is the path to the top level of the source tree.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_LINK_LIBRARY_SUFFIX", cmProperty::VARIABLE, + "The suffix for libraries that you link to.", + "The suffix to use for the end of a library, .lib on Windows.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_EXECUTABLE_SUFFIX", cmProperty::VARIABLE, + "The suffix for executables on this platform.", + "The suffix to use for the end of an executable if any, " + ".exe on Windows.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_MAJOR_VERSION", cmProperty::VARIABLE, + "The Major version of cmake (i.e. the 2 in 2.X.X)", + "This specifies the major version of the CMake executable" + " being run.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_MAKE_PROGRAM", cmProperty::VARIABLE, + "See CMAKE_BUILD_TOOL.", + "This variable is around for backwards compatibility, " + "see CMAKE_BUILD_TOOL.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_MINOR_VERSION", cmProperty::VARIABLE, + "The Minor version of cmake (i.e. the 4 in X.4.X).", + "This specifies the minor version of the CMake" + " executable being run.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_PARENT_LIST_FILE", cmProperty::VARIABLE, + "Full path to the parent listfile of the one currently being processed.", + "As CMake processes the listfiles in your project this " + "variable will always be set to the listfile that included " + "or somehow invoked the one currently being " + "processed. See also CMAKE_CURRENT_LIST_FILE.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_PROJECT_NAME", cmProperty::VARIABLE, + "The name of the current project.", + "This specifies name of the current project from" + " the closest inherited PROJECT command.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_RANLIB", cmProperty::VARIABLE, + "Name of randomizing tool for static libraries.", + "This specifies name of the program that randomizes " + "libraries on UNIX, not used on Windows, but may be present.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_ROOT", cmProperty::VARIABLE, + "Install directory for running cmake.", + "This is the install root for the running CMake and" + " the Modules directory can be found here. This is" + " commonly used in this format: ${CMAKE_ROOT}/Modules",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SIZEOF_VOID_P", cmProperty::VARIABLE, + "Size of a void pointer.", + "This is set to the size of a pointer on the machine, " + "and is determined by a try compile. If a 64 bit size " + "is found, then the library search path is modified to " + "look for 64 bit libraries first.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SKIP_RPATH", cmProperty::VARIABLE, + "If true, do not add run time path information.", + "If this is set to TRUE, then the rpath information " + "is not added to compiled executables. The default" + "is to add rpath information if the platform supports it." + "This allows for easy running from the build tree.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SOURCE_DIR", cmProperty::VARIABLE, + "Source directory for project.", + "This is the top level source directory for the project. " + "It corresponds to the source directory given to " + "CMakeSetup or ccmake.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_STANDARD_LIBRARIES", cmProperty::VARIABLE, + "Libraries linked into every executable and shared library.", + "This is the list of libraries that are linked " + "into all executables and libraries.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_USING_VC_FREE_TOOLS", cmProperty::VARIABLE, + "True if free visual studio tools being used.", + "This is set to true if the compiler is Visual " + "Studio free tools.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_VERBOSE_MAKEFILE", cmProperty::VARIABLE, + "Create verbose makefiles if on.", + "This variable defaults to false. You can set " + "this variable to true to make CMake produce verbose " + "makefiles that show each command line as it is used.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("PROJECT_BINARY_DIR", cmProperty::VARIABLE, + "Full path to build directory for project.", + "This is the binary directory of the most recent " + "PROJECT command.",false,"Variables that Provide Information"); + cm->DefineProperty + ("PROJECT_NAME", cmProperty::VARIABLE, + "Name of the project given to the project command.", + "This is the name given to the most " + "recent PROJECT command. ",false, + "Variables that Provide Information"); + cm->DefineProperty + ("PROJECT_SOURCE_DIR", cmProperty::VARIABLE, + "Top level source directory for the current project.", + "This is the source directory of the most recent " + "PROJECT command.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("[Project name]_BINARY_DIR", cmProperty::VARIABLE, + "Top level binary directory for the named project.", + "A variable is created with the name used in the PROJECT " + "command, and is the binary directory for the project. " + " This can be useful when SUBDIR is used to connect " + "several projects.",false, + "Variables that Provide Information"); + cm->DefineProperty + ("[Project name]_SOURCE_DIR", cmProperty::VARIABLE, + "Top level source directory for the named project.", + "A variable is created with the name used in the PROJECT " + "command, and is the source directory for the project." + " This can be useful when add_subdirectory " + "is used to connect several projects.",false, + "Variables that Provide Information"); + + cm->DefineProperty + ("CMAKE_IMPORT_LIBRARY_PREFIX", cmProperty::VARIABLE, + "The prefix for import libraries that you link to.", + "The prefix to use for the name of an import library if used " + "on this platform.", + false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_IMPORT_LIBRARY_SUFFIX", cmProperty::VARIABLE, + "The suffix for import libraries that you link to.", + "The suffix to use for the end of an import library if used " + "onthis platform.", + false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SHARED_LIBRARY_PREFIX", cmProperty::VARIABLE, + "The prefix for shared libraries that you link to.", + "The prefix to use for the name of a shared library, lib on UNIX.", + false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SHARED_LIBRARY_SUFFIX", cmProperty::VARIABLE, + "The suffix for shared libraries that you link to.", + "The suffix to use for the end of a shared library, .dll on Windows.", + false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SHARED_MODULE_PREFIX", cmProperty::VARIABLE, + "The prefix for loadable modules that you link to.", + "The prefix to use for the name of a loadable module on this platform.", + false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_SHARED_MODULE_SUFFIX", cmProperty::VARIABLE, + "The suffix for shared libraries that you link to.", + "The suffix to use for the end of a loadable module on this platform", + false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_STATIC_LIBRARY_PREFIX", cmProperty::VARIABLE, + "The prefix for static libraries that you link to.", + "The prefix to use for the name of a static library, lib on UNIX.", + false, + "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_STATIC_LIBRARY_SUFFIX", cmProperty::VARIABLE, + "The suffix for static libraries that you link to.", + "The suffix to use for the end of a static library, .lib on Windows.", + false, + "Variables that Provide Information"); + + + // Variables defined by cmake, that change the behavior + // of cmake + cm->DefineProperty + ("CMAKE_FIND_LIBRARY_PREFIXES", cmProperty::VARIABLE, + "Prefixes to prepend when looking for libraries.", + "This specifies what prefixes to add to library names when " + "the find_library command looks for libraries. On UNIX " + "systems this is typically lib, meaning that when trying " + "to find the foo library it will look for libfoo.", + false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_FIND_LIBRARY_SUFFIXES", cmProperty::VARIABLE, + "Suffixes to append when looking for libraries.", + "This specifies what suffixes to add to library names when " + "the find_library command looks for libraries. On Windows " + "systems this is typically .lib and .dll, meaning that when trying " + "to find the foo library it will look for foo.dll etc.", + false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_CONFIGURATION_TYPES", cmProperty::VARIABLE, + "Specifies the available build types.", + "This specifies what build types will be available such as " + "Debug, Release, RelWithDebInfo etc. This has reasonable defaults " + "on most platforms. But can be extended to provide other " + "build types. See also CMAKE_BUILD_TYPE.", + false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_BUILD_TYPE", cmProperty::VARIABLE, + "Specifies the build type for make based generators.", + "This specifies what build type will be built in this tree. " + " Possible values are empty, Debug, Release, RelWithDebInfo" + " and MinSizeRel. This variable is only supported for " + "make based generators. If this variable is supported, " + "then CMake will also provide initial values for the " + "variables with the name " + " CMAKE_C_FLAGS_[Debug|Release|RelWithDebInfo|MinSizeRel]." + " For example, if CMAKE_BUILD_TYPE is Debug, then " + "CMAKE_C_FLAGS_DEBUG will be added to the CMAKE_C_FLAGS.",false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_BACKWARDS_COMPATIBILITY", cmProperty::VARIABLE, + "Version of cmake required to build project", + "From the point of view of backwards compatibility, this " + "specifies what version of CMake should be supported. By " + "default this value is the version number of CMake that " + "you are running. You can set this to an older version of" + " CMake to support deprecated commands of CMake in projects" + " that were written to use older versions of CMake. This " + "can be set by the user or set at the beginning of a " + "CMakeLists file.",false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_CROSSCOMPILING", cmProperty::VARIABLE, + "Is CMake currently cross compiling.", + "This variable will be set to true by CMake if CMake is cross " + "compiling. Specifically if the build platform is different " + "from the target platform.", false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_INSTALL_PREFIX", cmProperty::VARIABLE, + "Install directory used by install.", + "If \"make install\" is invoked or INSTALL is built" + ", this directory is pre-pended onto all install " + "directories. This variable defaults to /usr/local" + " on UNIX and c:/Program Files on Windows.",false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_MODULE_PATH", cmProperty::VARIABLE, + "Path to look for cmake modules to load.", + "Specifies a path to override the default seach path for " + "CMake modules. For example include commands will look " + "in this path first for modules to include.", + false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_USER_MAKE_RULES_OVERRIDE", cmProperty::VARIABLE, + "Specify a file that can change the build rule variables.", + "If this variable is set, it should to point to a " + "CMakeLists.txt file that will be read in by CMake " + "after all the system settings have been set, but " + "before they have been used. This would allow you " + "to override any variables that need to be changed " + "for some special project. ",false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("BUILD_SHARED_LIBS", cmProperty::VARIABLE, + "Global flag to cause add_library to create shared libraries if on.", + "If present and true, this will cause all libraries to be " + "built shared unless the library was explicitly added as a " + "static library. This variable is often added to projects " + "as an OPTION so that each user of a project can decide if " + "they want to build the project using shared or static " + "libraries.",false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_NOT_USING_CONFIG_FLAGS", cmProperty::VARIABLE, + "Skip _BUILD_TYPE flags if true.", + "This is an internal flag used by the generators in " + "CMake to tell CMake to skip the _BUILD_TYPE flags.",false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_MFC_FLAG", cmProperty::VARIABLE, + "Tell cmake to use MFC for an executable or dll.", + "This can be set in a CMakeLists.txt file and will " + "enable MFC in the application. It should be set " + "to 1 for static the static MFC library, and 2 for " + "the shared MFC library. This is used in visual " + "studio 6 and 7 project files. The CMakeSetup " + "dialog uses MFC and the CMakeLists.txt looks like this:\n" + "ADD_DEFINITIONS(-D_AFXDLL)\n" + "set(CMAKE_MFC_FLAG 2)\n" + "add_executable(CMakeSetup WIN32 ${SRCS})\n",false, + "Variables That Change Behavior"); + + + // Variables defined by CMake that describe the system + + cm->DefineProperty + ("CMAKE_SYSTEM", cmProperty::VARIABLE, + "Name of system cmake is compiling for.", + "This variable is the composite of CMAKE_SYSTEM_NAME" + "and CMAKE_SYSTEM_VERSION, like this " + "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}. " + "If CMAKE_SYSTEM_VERSION is not set, then " + "CMAKE_SYSTEM is the same as CMAKE_SYSTEM_NAME.",false, + "Variables That Describe the System"); + cm->DefineProperty + ("CMAKE_SYSTEM_NAME", cmProperty::VARIABLE, + "Name of the OS CMake is building for.", + "This is the name of the operating system on " + "which CMake is targeting. On systems that " + "have the uname command, this variable is set " + "to the output of uname -s. Linux, Windows, " + " and Darwin for Mac OSX are the values found " + " on the big three operating systems." ,false, + "Variables That Describe the System"); + cm->DefineProperty + ("CMAKE_SYSTEM_PROCESSOR", cmProperty::VARIABLE, + "The name of the CPU CMake is building for.", + "On systems that support uname, this variable is " + "set to the output of uname -p, on windows it is " + "set to the value of the environment variable " + "PROCESSOR_ARCHITECTURE",false, + "Variables That Describe the System"); + cm->DefineProperty + ("CMAKE_SYSTEM_VERSION", cmProperty::VARIABLE, + "OS version CMake is building for.", + "A numeric version string for the system, on " + "systems that support uname, this variable is " + "set to the output of uname -r. On other " + "systems this is set to major-minor version numbers.",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("CMAKE_HOST_SYSTEM", cmProperty::VARIABLE, + "Name of system cmake is being run on.", + "The same as CMAKE_SYSTEM but for the host system instead " + "of the target system when cross compiling.",false, + "Variables That Describe the System"); + cm->DefineProperty + ("CMAKE_HOST_SYSTEM_NAME", cmProperty::VARIABLE, + "Name of the OS CMake is running on.", + "The same as CMAKE_SYSTEM_NAME but for the host system instead " + "of the target system when cross compiling.",false, + "Variables That Describe the System"); + cm->DefineProperty + ("CMAKE_HOST_SYSTEM_PROCESSOR", cmProperty::VARIABLE, + "The name of the CPU CMake is running on.", + "The same as CMAKE_SYSTEM_PROCESSOR but for the host system instead " + "of the target system when cross compiling.",false, + "Variables That Describe the System"); + cm->DefineProperty + ("CMAKE_HOST_SYSTEM_VERSION", cmProperty::VARIABLE, + "OS version CMake is running on.", + "The same as CMAKE_SYSTEM_VERSION but for the host system instead " + "of the target system when cross compiling.",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("APPLE", cmProperty::VARIABLE, + "True if running on Mac OSX.", + "Set to true on Mac OSX.",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("BORLAND", cmProperty::VARIABLE, + "True of the borland compiler is being used.", + "This is set to true if the Borland compiler is being used.",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("CYGWIN", cmProperty::VARIABLE, + "True for cygwin.", + "Set to true when using CYGWIN.",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("MSVC", cmProperty::VARIABLE, + "True when using Microsoft Visual C", + "Set to true when the compiler is some version of Microsoft Visual C.", + false, + "Variables That Describe the System"); + + cm->DefineProperty + ("MSVC80", cmProperty::VARIABLE, + "True when using Microsoft Visual C 8.0", + "Set to true when the compiler is version 8.0 of Microsoft Visual C.", + false, + "Variables That Describe the System"); + + cm->DefineProperty + ("MSVC_IDE", cmProperty::VARIABLE, + "True when using the Microsoft Visual C IDE", + "Set to true when the target platform is the Microsoft Visual C IDE, " + "as opposed to the command line compiler.", + false, + "Variables That Describe the System"); + + cm->DefineProperty + ("MSVC_VERSION", cmProperty::VARIABLE, + "The version of Microsoft Visual C/C++ being used if any.", + "The version of Microsoft Visual C/C++ being used if any. " + "For example 1300 is MSVC 6.0.", + false, + "Variables That Describe the System"); + + cm->DefineProperty + ("CMAKE_CL_64", cmProperty::VARIABLE, + "Using the 64 bit compiler from Microsoft", + "Set to true when using the 64 bit cl compiler from Microsoft.", + false, + "Variables That Describe the System"); + + cm->DefineProperty + ("CMAKE_COMPILER_2005", cmProperty::VARIABLE, + "Using the Visual Studio 2005 compiler from Microsoft", + "Set to true when using the Visual Studio 2005 compiler " + "from Microsoft.", + false, + "Variables That Describe the System"); + + cm->DefineProperty + ("UNIX", cmProperty::VARIABLE, + "True for UNIX and UNIX like operating systems.", + "Set to true when the target system is UNIX or UNIX like " + "(i.e. APPLE and CYGWIN).",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("WIN32", cmProperty::VARIABLE, + "True on windows systems, including win64.", + "Set to true when the target system is Windows and on cygwin.",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("CMAKE_HOST_APPLE", cmProperty::VARIABLE, + "True for Apple OSXoperating systems.", + "Set to true when the host system is Apple OSX.", + false, + "Variables That Describe the System"); + + cm->DefineProperty + ("CMAKE_HOST_UNIX", cmProperty::VARIABLE, + "True for UNIX and UNIX like operating systems.", + "Set to true when the host system is UNIX or UNIX like " + "(i.e. APPLE and CYGWIN).",false, + "Variables That Describe the System"); + + cm->DefineProperty + ("CMAKE_HOST_WIN32", cmProperty::VARIABLE, + "True on windows systems, including win64.", + "Set to true when the host system is Windows and on cygwin.",false, + "Variables That Describe the System"); + + // Variables that affect the building of object files and + // targets. + // + cm->DefineProperty + ("CMAKE_INSTALL_RPATH", cmProperty::VARIABLE, + "The rpath to use for installed targets.", + "A semicolon-separated list specifying the rpath " + "to use in installed targets (for platforms that support it). " + "This is used to initialize the target property " + "INSTALL_RPATH for all targets.", + false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_INSTALL_RPATH_USE_LINK_PATH", cmProperty::VARIABLE, + "Add paths to linker search and installed rpath.", + "CMAKE_INSTALL_RPATH_USE_LINK_PATH is a boolean that if set to true " + "will append directories in the linker search path and outside the " + "project to the INSTALL_RPATH. " + "This is used to initialize the target property " + "INSTALL_RPATH_USE_LINK_PATH for all targets.", + false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_INSTALL_NAME_DIR", cmProperty::VARIABLE, + "Mac OSX directory name for installed targets.", + "CMAKE_INSTALL_NAME_DIR is used to initialize the " + "INSTALL_NAME_DIR property on all targets. See that target " + "property for more information.", + false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_Fortran_MODULE_DIRECTORY", cmProperty::VARIABLE, + "Fortran module output directory.", + "This variable is used to initialize the " + "Fortran_MODULE_DIRECTORY property on all the targets. " + "See that target property for additional information.", + false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_LIBRARY_OUTPUT_DIRECTORY", cmProperty::VARIABLE, + "Where to put all the LIBRARY targets when built.", + "This variable is used to initialize the " + "LIBRARY_OUTPUT_DIRECTORY property on all the targets. " + "See that target property for additional information.", + false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_ARCHIVE_OUTPUT_DIRECTORY", cmProperty::VARIABLE, + "Where to put all the ARCHIVE targets when built.", + "This variable is used to initialize the " + "ARCHIVE_OUTPUT_DIRECTORY property on all the targets. " + "See that target property for additional information.", + false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_RUNTIME_OUTPUT_DIRECTORY", cmProperty::VARIABLE, + "Where to put all the RUNTIME targets when built.", + "This variable is used to initialize the " + "RUNTIME_OUTPUT_DIRECTORY property on all the targets. " + "See that target property for additional information.", + false, + "Variables that Control the Build"); + + + cm->DefineProperty + ("CMAKE_DEBUG_POSTFIX", cmProperty::VARIABLE, + "A postfix to add to targets when build as debug.", + "This variable is used to initialize the DEBUG_POSTFIX " + "property on all the targets. If set the postfix will be " + "appended to any targets built when the configuration is " + "Debug.", + false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_BUILD_WITH_INSTALL_RPATH", cmProperty::VARIABLE, + "Use the install path for the RPATH", + "Normally CMake uses the build tree for the RPATH when building " + "executables etc on systems that use RPATH. When the software " + "is installed the executables etc are relinked by CMake to have " + "the install RPATH. If this variable is set to true then the software " + "is always built with the install path for the RPATH and does not " + "need to be relinked when installed.",false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_SKIP_BUILD_RPATH", cmProperty::VARIABLE, + "Do not include RPATHs in the build tree.", + "Normally CMake uses the build tree for the RPATH when building " + "executables etc on systems that use RPATH. When the software " + "is installed the executables etc are relinked by CMake to have " + "the install RPATH. If this variable is set to true then the software " + "is always built with no RPATH.",false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_EXE_LINKER_FLAGS", cmProperty::VARIABLE, + "Linker flags used to create executables.", + "Flags used by the linker when creating an executable.",false, + "Variables that Control the Build"); + + cm->DefineProperty + ("CMAKE_EXE_LINKER_FLAGS_[CMAKE_BUILD_TYPE]", cmProperty::VARIABLE, + "Flag used when linking an executable.", + "Same as CMAKE_C_FLAGS_* but used by the linker " + "when creating executables.",false, + "Variables that Control the Build"); + cm->DefineProperty + ("CMAKE_LIBRARY_PATH_FLAG", cmProperty::VARIABLE, + "The flag used to add a library search path to a compiler.", + "The flag used to specify a library directory to the compiler. " + "On most compilers this is \"-L\".",false, + "Variables that Control the Build"); + cm->DefineProperty + ("CMAKE_LINK_DEF_FILE_FLAG ", cmProperty::VARIABLE, + "Linker flag used to specify a .def file for dll creation.", + "The flag used to add a .def file when creating " + "a dll on Windows, this is only defined on Windows.",false, + "Variables that Control the Build"); + cm->DefineProperty + ("CMAKE_LINK_LIBRARY_FLAG", cmProperty::VARIABLE, + "Flag used to link a library into an executable.", + "The flag used to specify a library to link to an executable. " + "On most compilers this is \"-l\".",false, + "Variables that Control the Build"); + cm->DefineProperty + ("CMAKE_LINK_LIBRARY_FILE_FLAG", cmProperty::VARIABLE, + "Flag used to link a library specified by a path to its file.", + "The flag used before a library file path is given to the linker. " + "This is needed only on very few platforms.", false, + "Variables that Control the Build"); + cm->DefineProperty + ("CMAKE_LINK_OLD_PATHS", cmProperty::VARIABLE, + "Enable linker search path compatibility mode.", + "This option enables linking compatibility mode for broken projects. " + "There exists code that effectively does\n" + " target_link_libraries(myexe /path/to/libA.so -lB)\n" + "where -lB is meant to link to /path/to/libB.so. This is broken " + "because it specifies -lB without adding \"/path/to\" to the linker " + "search path with the link_directories command. With CMake 2.4 and " + "below the code worked accidentally because \"/path/to\" would be " + "added to the linker search path by its implementation of linking to " + "/path/to/libA.so (which passed -L/path/to -lA to the linker). " + "This option tells CMake to add the directories containing libraries " + "specified with a full path to the linker search path if the link " + "line contains any items like -lB. " + "The behavior is also enabled if CMAKE_BACKWARDS_COMPATIBILITY is " + "set to 2.4 or lower.", false, + "Variables that Control the Build"); + cm->DefineProperty + ("CMAKE_USE_RELATIVE_PATHS", cmProperty::VARIABLE, + "Use relative paths (May not work!).", + "If this is set to TRUE, then the CMake will use " + "relative paths between the source and binary tree. " + "This option does not work for more complicated " + "projects, and relative paths are used when possible. " + "In general, it is not possible to move CMake generated" + " makefiles to a different location regardless " + "of the value of this variable.",false, + "Variables that Control the Build"); + cm->DefineProperty + ("EXECUTABLE_OUTPUT_PATH", cmProperty::VARIABLE, + "Location for all executables in a project.", + "If set, this is the directory where all executables " + "built during the build process will be placed.",false, + "Variables that Control the Build"); + cm->DefineProperty + ("LIBRARY_OUTPUT_PATH", cmProperty::VARIABLE, + "Location for all libraries in a project.", + "If set, this is the directory where all the libraries " + "built during the build process will be placed.",false, + "Variables that Control the Build"); + + +// Variables defined when the a language is enabled These variables will +// also be defined whenever CMake has loaded its support for compiling (LANG) +// programs. This support will be loaded whenever CMake is used to compile +// (LANG) files. C and CXX are examples of the most common values for (LANG). + + cm->DefineProperty + ("CMAKE_USER_MAKE_RULES_OVERRIDE_", cmProperty::VARIABLE, + "Specify a file that can change the build rule variables.", + "If this variable is set, it should to point to a " + "CMakeLists.txt file that will be read in by CMake " + "after all the system settings have been set, but " + "before they have been used. This would allow you " + "to override any variables that need to be changed " + "for some language. ",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__COMPILER", cmProperty::VARIABLE, + "The full path to the compiler for LANG.", + "This is the command that will be used as the compiler. " + "Once set, you can not change this variable.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__COMPILER_ID", cmProperty::VARIABLE, + "An internal variable subject to change.", + "This is used in determining the compiler and is subject to change.", + false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__PLATFORM_ID", cmProperty::VARIABLE, + "An internal variable subject to change.", + "This is used in determining the platform and is subject to change.", + false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__COMPILER_ABI", cmProperty::VARIABLE, + "An internal variable subject to change.", + "This is used in determining the compiler ABI and is subject to change.", + false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE_INTERNAL_PLATFORM_ABI", cmProperty::VARIABLE, + "An internal variable subject to change.", + "This is used in determining the compiler ABI and is subject to change.", + false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__SIZEOF_DATA_PTR", cmProperty::VARIABLE, + "An internal variable subject to change.", + "This is used in determining the architecture and is subject to change.", + false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE_COMPILER_IS_GNU", cmProperty::VARIABLE, + "True if the compiler is GNU.", + "If the selected compiler is the GNU " + "compiler then this is TRUE, if not it is FALSE.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__FLAGS_DEBUG", cmProperty::VARIABLE, + "Flags for Debug build type or configuration.", + " flags used when CMAKE_BUILD_TYPE is Debug.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__FLAGS_MINSIZEREL", cmProperty::VARIABLE, + "Flags for MinSizeRel build type or configuration.", + " flags used when CMAKE_BUILD_TYPE is MinSizeRel." + "Short for minimum size release.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__FLAGS_RELEASE", cmProperty::VARIABLE, + "Flags for Release build type or configuration.", + " flags used when CMAKE_BUILD_TYPE is Release",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__FLAGS_RELWITHDEBINFO", cmProperty::VARIABLE, + "Flags for RelWithDebInfo type or configuration.", + " flags used when CMAKE_BUILD_TYPE is RelWithDebInfo. " + "Short for Release With Debug Information.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__COMPILE_OBJECT", cmProperty::VARIABLE, + "Rule variable to compile a single object file.", + "This is a rule variable that tells CMake how to " + "compile a single object file for for the language .",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__CREATE_SHARED_LIBRARY", cmProperty::VARIABLE, + "Rule variable to create a shared library.", + "This is a rule variable that tells CMake how to " + "create a shared library for the language .",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__CREATE_SHARED_MODULE", cmProperty::VARIABLE, + "Rule variable to create a shared module.", + "This is a rule variable that tells CMake how to " + "create a shared library for the language .",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__CREATE_STATIC_LIBRARY", cmProperty::VARIABLE, + "Rule variable to create a static library.", + "This is a rule variable that tells CMake how " + "to create a static library for the language .",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__ARCHIVE_CREATE", cmProperty::VARIABLE, + "Rule variable to create a new static archive.", + "This is a rule variable that tells CMake how to create a static " + "archive. It is used in place of CMAKE__CREATE_STATIC_LIBRARY " + "on some platforms in order to support large object counts. " + "See also CMAKE__ARCHIVE_APPEND and CMAKE__ARCHIVE_FINISH.", + false, "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__ARCHIVE_APPEND", cmProperty::VARIABLE, + "Rule variable to append to a static archive.", + "This is a rule variable that tells CMake how to append to a static " + "archive. It is used in place of CMAKE__CREATE_STATIC_LIBRARY " + "on some platforms in order to support large object counts. " + "See also CMAKE__ARCHIVE_CREATE and CMAKE__ARCHIVE_FINISH.", + false, "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__ARCHIVE_FINISH", cmProperty::VARIABLE, + "Rule variable to finish an existing static archive.", + "This is a rule variable that tells CMake how to finish a static " + "archive. It is used in place of CMAKE__CREATE_STATIC_LIBRARY " + "on some platforms in order to support large object counts. " + "See also CMAKE__ARCHIVE_CREATE and CMAKE__ARCHIVE_APPEND.", + false, "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__IGNORE_EXTENSIONS", cmProperty::VARIABLE, + "File extensions that should be ignored by the build.", + "This is a list of file extensions that may be " + "part of a project for a given language but are not compiled. ",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__LINKER_PREFERENCE", cmProperty::VARIABLE, + "Determine if a language should be used for linking.", + "If this is \"Preferred\" then if there is a mixed " + "language shared library or executable, then this " + "languages linker command will be used.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__LINK_EXECUTABLE ", cmProperty::VARIABLE, + "Rule variable to link and executable.", + "Rule variable to link and executable for the given language.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__OUTPUT_EXTENSION", cmProperty::VARIABLE, + "Extension for the output of a compile for a single file.", + "This is the extension for an object file for " + "the given . For example .obj for C on Windows.",false, + "Variables for Languages"); + + cm->DefineProperty + ("CMAKE__SOURCE_FILE_EXTENSIONS", cmProperty::VARIABLE, + "Extensions of source files for the given language.", + "This is the list of extensions for a " + "given languages source files.",false,"Variables for Languages"); + + // variables that are used by cmake but not to be documented + cm->DefineProperty("CMAKE_MATCH_0", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_1", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_2", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_3", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_4", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_5", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_6", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_7", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_8", cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_MATCH_9", cmProperty::VARIABLE,0,0); + + cm->DefineProperty("CMAKE__COMPILER_ARG1", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__COMPILER_ENV_VAR", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__COMPILER_ID_RUN", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__COMPILER_LOADED", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__CREATE_ASSEMBLY_SOURCE", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__CREATE_PREPROCESSED_SOURCE", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__FLAGS_DEBUG_INIT", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__FLAGS_INIT", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__FLAGS_MINSIZEREL_INIT", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__FLAGS_RELEASE_INIT", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__FLAGS_RELWITHDEBINFO_INIT", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__INFORMATION_LOADED", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__LINK_EXECUTABLE", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__LINK_FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__STANDARD_LIBRARIES", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE__STANDARD_LIBRARIES_INIT", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_EXECUTABLE_SUFFIX_", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_EXE_LINK_DYNAMIC__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_EXE_LINK_STATIC__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_GENERATOR_", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_IMPORT_LIBRARY_PREFIX_", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_IMPORT_LIBRARY_SUFFIX_", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_INCLUDE_FLAG_", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_INCLUDE_FLAG_SEP_", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_INCLUDE_SYSTEM_FLAG_", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_NEEDS_REQUIRES_STEP__FLAG", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY_CREATE__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_DYNAMIC__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_STATIC__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY_RUNTIME__FLAG", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY_RUNTIME__FLAG_SEP", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_LIBRARY_RPATH_LINK__FLAG", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_EXECUTABLE_RUNTIME__FLAG", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_EXECUTABLE_RUNTIME__FLAG_SEP", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_EXECUTABLE_RPATH_LINK__FLAG", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_MODULE_CREATE__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_MODULE__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_MODULE_LINK_DYNAMIC__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_MODULE_LINK_STATIC__FLAGS", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_MODULE_RUNTIME__FLAG", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_SHARED_MODULE_RUNTIME__FLAG_SEP", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_LINK_DEPENDENT_LIBRARY_FILES", + cmProperty::VARIABLE,0,0); + cm->DefineProperty("CMAKE_LINK_DEPENDENT_LIBRARY_DIRS", + cmProperty::VARIABLE,0,0); +} diff --git a/CMakeLua/Source/cmDocumentVariables.h b/CMakeLua/Source/cmDocumentVariables.h new file mode 100755 index 0000000..cddb7fc --- /dev/null +++ b/CMakeLua/Source/cmDocumentVariables.h @@ -0,0 +1,26 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentVariables.h,v $ + Language: C++ + Date: $Date: 2007/10/18 13:10:42 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDocumentVariables_h +#define cmDocumentVariables_h +class cmake; +class cmDocumentVariables +{ +public: + static void DefineVariables(cmake* cm); +}; + +#endif diff --git a/CMakeLua/Source/cmDocumentation.cxx b/CMakeLua/Source/cmDocumentation.cxx new file mode 100644 index 0000000..226b7f2 --- /dev/null +++ b/CMakeLua/Source/cmDocumentation.cxx @@ -0,0 +1,1407 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentation.cxx,v $ + Language: C++ + Date: $Date: 2008/01/14 22:05:09 $ + Version: $Revision: 1.65 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDocumentation.h" + +#include "cmSystemTools.h" +#include "cmVersion.h" +#include + + +//---------------------------------------------------------------------------- +static const char *cmDocumentationStandardOptions[][3] = +{ + {"--copyright [file]", "Print the CMake copyright and exit.", + "If a file is specified, the copyright is written into it."}, + {"--help", "Print usage information and exit.", + "Usage describes the basic command line interface and its options."}, + {"--help-full [file]", "Print full help and exit.", + "Full help displays most of the documentation provided by the UNIX " + "man page. It is provided for use on non-UNIX platforms, but is " + "also convenient if the man page is not installed. If a file is " + "specified, the help is written into it."}, + {"--help-html [file]", "Print full help in HTML format.", + "This option is used by CMake authors to help produce web pages. " + "If a file is specified, the help is written into it."}, + {"--help-man [file]", "Print full help as a UNIX man page and exit.", + "This option is used by the cmake build to generate the UNIX man page. " + "If a file is specified, the help is written into it."}, + {"--version [file]", "Show program name/version banner and exit.", + "If a file is specified, the version is written into it."}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmModulesDocumentationDescription[][3] = +{ + {0, + " CMake Modules - Modules coming with CMake, the Cross-Platform Makefile " + "Generator.", 0}, +// CMAKE_DOCUMENTATION_OVERVIEW, + {0, + "This is the documentation for the modules and scripts coming with CMake. " + "Using these modules you can check the computer system for " + "installed software packages, features of the compiler and the " + "existance of headers to name just a few.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmCustomModulesDocumentationDescription[][3] = +{ + {0, + " Custom CMake Modules - Additional Modules for CMake.", 0}, +// CMAKE_DOCUMENTATION_OVERVIEW, + {0, + "This is the documentation for additional modules and scripts for CMake. " + "Using these modules you can check the computer system for " + "installed software packages, features of the compiler and the " + "existance of headers to name just a few.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmPropertiesDocumentationDescription[][3] = +{ + {0, + " CMake Properties - Properties supported by CMake, " + "the Cross-Platform Makefile Generator.", 0}, +// CMAKE_DOCUMENTATION_OVERVIEW, + {0, + "This is the documentation for the properties supported by CMake. " + "Properties can have different scopes. They can either be assigned to a " + "source file, a directory, a target or globally to CMake. By modifying the " + "values of properties the behaviour of the build system can be customized.", + 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmCompatCommandsDocumentationDescription[][3] = +{ + {0, + " CMake Compatibility Listfile Commands - " + "Obsolete commands supported by CMake for compatibility.", 0}, +// CMAKE_DOCUMENTATION_OVERVIEW, + {0, + "This is the documentation for now obsolete listfile commands from previous " + "CMake versions, which are still supported for compatibility reasons. You " + "should instead use the newer, faster and shinier new commands. ;-)", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationModulesHeader[][3] = +{ + {0, + "The following modules are provided with CMake. " + "They can be used with INCLUDE(ModuleName).", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationCustomModulesHeader[][3] = +{ + {0, + "The following modules are also available for CMake. " + "They can be used with INCLUDE(ModuleName).", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationGeneratorsHeader[][3] = +{ + {0, + "The following generators are available on this platform:", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationStandardSeeAlso[][3] = +{ + {0, + "The following resources are available to get help using CMake:", 0}, + {"Home Page", + "http://www.cmake.org", + "The primary starting point for learning about CMake."}, + {"Frequently Asked Questions", + "http://www.cmake.org/Wiki/CMake_FAQ", + "A Wiki is provided containing answers to frequently asked questions. "}, + {"Online Documentation", + "http://www.cmake.org/HTML/Documentation.html", + "Links to available documentation may be found on this web page."}, + {"Mailing List", + "http://www.cmake.org/HTML/MailingLists.html", + "For help and discussion about using cmake, a mailing list is provided at " + "cmake@cmake.org. " + "The list is member-post-only but one may sign up on the CMake web page. " + "Please first read the full documentation at " + "http://www.cmake.org before posting questions to the list."}, + {0, + "Summary of helpful links:\n" + " Home: http://www.cmake.org\n" + " Docs: http://www.cmake.org/HTML/Documentation.html\n" + " Mail: http://www.cmake.org/HTML/MailingLists.html\n" + " FAQ: http://www.cmake.org/Wiki/CMake_FAQ\n" + , 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationCopyright[][3] = +{ + {0, + "Copyright (c) 2002 Kitware, Inc., Insight Consortium. " + "All rights reserved.", 0}, + {0, + "Redistribution and use in source and binary forms, with or without " + "modification, are permitted provided that the following conditions are " + "met:", 0}, + {"", + "Redistributions of source code must retain the above copyright notice, " + "this list of conditions and the following disclaimer.", 0}, + {"", + "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.", + 0}, + {"", + "The names of Kitware, Inc., the Insight Consortium, or the names of " + "any consortium members, or of any contributors, may not be used to " + "endorse or promote products derived from this software without " + "specific prior written permission.", 0}, + {"", + "Modified source versions must be plainly marked as such, and must " + "not be misrepresented as being the original software.", 0}, + {0, + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER 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 AUTHORS 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.", 0}, + {0, 0, 0} +}; + +//---------------------------------------------------------------------------- +cmDocumentation::cmDocumentation() +:CurrentFormatter(0) +{ + this->SetForm(TextForm); + + cmDocumentationSection *sec; + + sec = new cmDocumentationSection("Author","AUTHOR"); + sec->Append(cmDocumentationEntry + (0, + "This manual page was generated by the \"--help-man\" option.", + 0)); + this->AllSections["Author"] = sec; + + sec = new cmDocumentationSection("Copyright","COPYRIGHT"); + sec->Append(cmDocumentationCopyright); + this->AllSections["Copyright"] = sec; + + sec = new cmDocumentationSection("See Also","SEE ALSO"); + sec->Append(cmDocumentationStandardSeeAlso); + this->AllSections["Standard See Also"] = sec; + + sec = new cmDocumentationSection("Options","OPTIONS"); + sec->Append(cmDocumentationStandardOptions); + this->AllSections["Options"] = sec; + + sec = new cmDocumentationSection("Properties","PROPERTIES"); + sec->Append(cmPropertiesDocumentationDescription); + this->AllSections["Properties Description"] = sec; + + sec = new cmDocumentationSection("Generators","GENERATORS"); + sec->Append(cmDocumentationGeneratorsHeader); + this->AllSections["Generators"] = sec; + + sec = new cmDocumentationSection("Compatibility Commands", + "COMPATIBILITY COMMANDS"); + sec->Append(cmCompatCommandsDocumentationDescription); + this->AllSections["Compatibility Commands"] = sec; + + + this->PropertySections.push_back("Properties of Global Scope"); + this->PropertySections.push_back("Properties on Directories"); + this->PropertySections.push_back("Properties on Targets"); + this->PropertySections.push_back("Properties on Tests"); + this->PropertySections.push_back("Properties on Source Files"); + + this->VariableSections.push_back("Variables that Provide Information"); + this->VariableSections.push_back("Variables That Change Behavior"); + this->VariableSections.push_back("Variables That Describe the System"); + this->VariableSections.push_back("Variables that Control the Build"); + this->VariableSections.push_back("Variables for Languages"); +} + +//---------------------------------------------------------------------------- +cmDocumentation::~cmDocumentation() +{ + for(std::vector< char* >::iterator i = this->ModuleStrings.begin(); + i != this->ModuleStrings.end(); ++i) + { + delete [] *i; + } + for(std::map::iterator i = + this->AllSections.begin(); + i != this->AllSections.end(); ++i) + { + delete i->second; + } +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintCopyright(std::ostream& os) +{ + cmDocumentationSection *sec = this->AllSections["Copyright"]; + const std::vector &entries = sec->GetEntries(); + for(std::vector::const_iterator op = entries.begin(); + op != entries.end(); ++op) + { + if(op->Name.size()) + { + os << " * "; + this->TextFormatter.SetIndent(" "); + this->TextFormatter.PrintColumn(os, op->Brief.c_str()); + } + else + { + this->TextFormatter.SetIndent(""); + this->TextFormatter.PrintColumn(os, op->Brief.c_str()); + } + os << "\n"; + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintVersion(std::ostream& os) +{ + os << this->GetNameString() << " version " + << cmVersion::GetCMakeVersion() << "\n"; + return true; +} + +//---------------------------------------------------------------------------- +void cmDocumentation::AddSectionToPrint(const char *section) +{ + if (this->AllSections.find(section) != this->AllSections.end()) + { + this->PrintSections.push_back(this->AllSections[section]); + } +} + +//---------------------------------------------------------------------------- +void cmDocumentation::ClearSections() +{ + this->PrintSections.erase(this->PrintSections.begin(), + this->PrintSections.end()); + this->ModulesFound.clear(); +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentation(Type ht, std::ostream& os) +{ + if ((this->CurrentFormatter->GetForm() != HTMLForm) + && (this->CurrentFormatter->GetForm() != ManForm)) + { + this->PrintVersion(os); + } + + switch (ht) + { + case cmDocumentation::Usage: + return this->PrintDocumentationUsage(os); + case cmDocumentation::Single: + return this->PrintDocumentationSingle(os); + case cmDocumentation::SingleModule: + return this->PrintDocumentationSingleModule(os); + case cmDocumentation::SingleProperty: + return this->PrintDocumentationSingleProperty(os); + case cmDocumentation::SingleVariable: + return this->PrintDocumentationSingleVariable(os); + case cmDocumentation::List: + this->PrintDocumentationList(os,"Commands"); + this->PrintDocumentationList(os,"Compatibility Commands"); + return true; + case cmDocumentation::ModuleList: + // find the modules first, print the custom module docs only if + // any custom modules have been found actually, Alex + this->CreateCustomModulesSection(); + this->CreateModulesSection(); + if (this->AllSections.find("Custom CMake Modules") + != this->AllSections.end()) + { + this->PrintDocumentationList(os,"Custom CMake Modules"); + } + this->PrintDocumentationList(os,"Modules"); + return true; + case cmDocumentation::PropertyList: + this->PrintDocumentationList(os,"Properties Description"); + for (std::vector::iterator i = + this->PropertySections.begin(); + i != this->PropertySections.end(); ++i) + { + this->PrintDocumentationList(os,i->c_str()); + } + return true; + case cmDocumentation::VariableList: + for (std::vector::iterator i = + this->VariableSections.begin(); + i != this->VariableSections.end(); ++i) + { + this->PrintDocumentationList(os,i->c_str()); + } + return true; + case cmDocumentation::Full: + return this->PrintDocumentationFull(os); + case cmDocumentation::Modules: + return this->PrintDocumentationModules(os); + case cmDocumentation::CustomModules: + return this->PrintDocumentationCustomModules(os); + case cmDocumentation::Properties: + return this->PrintDocumentationProperties(os); + case cmDocumentation::Variables: + return this->PrintDocumentationVariables(os); + case cmDocumentation::Commands: + return this->PrintDocumentationCurrentCommands(os); + case cmDocumentation::CompatCommands: + return this->PrintDocumentationCompatCommands(os); + + case cmDocumentation::Copyright: + return this->PrintCopyright(os); + case cmDocumentation::Version: + return true; + default: return false; + } +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::CreateModulesSection() +{ + cmDocumentationSection *sec = + new cmDocumentationSection("Standard CMake Modules", "MODULES"); + this->AllSections["Modules"] = sec; + std::string cmakeModules = this->CMakeRoot; + cmakeModules += "/Modules"; + cmsys::Directory dir; + dir.Load(cmakeModules.c_str()); + if (dir.GetNumberOfFiles() > 0) + { + sec->Append(cmDocumentationModulesHeader[0]); + sec->Append(cmModulesDocumentationDescription); + this->CreateModuleDocsForDir(dir, *this->AllSections["Modules"]); + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::CreateCustomModulesSection() +{ + bool sectionHasHeader = false; + + std::vector dirs; + cmSystemTools::ExpandListArgument(this->CMakeModulePath, dirs); + + for(std::vector::const_iterator dirIt = dirs.begin(); + dirIt != dirs.end(); + ++dirIt) + { + cmsys::Directory dir; + dir.Load(dirIt->c_str()); + if (dir.GetNumberOfFiles() > 0) + { + if (!sectionHasHeader) + { + cmDocumentationSection *sec = + new cmDocumentationSection("Custom CMake Modules","CUSTOM MODULES"); + this->AllSections["Custom CMake Modules"] = sec; + sec->Append(cmDocumentationCustomModulesHeader[0]); + sec->Append(cmCustomModulesDocumentationDescription); + sectionHasHeader = true; + } + this->CreateModuleDocsForDir + (dir, *this->AllSections["Custom CMake Modules"]); + } + } + + return true; +} + +//---------------------------------------------------------------------------- +void cmDocumentation +::CreateModuleDocsForDir(cmsys::Directory& dir, + cmDocumentationSection &moduleSection) +{ + // sort the files alphabetically, so the docs for one module are easier + // to find than if they are in random order + std::vector sortedFiles; + for(unsigned int i = 0; i < dir.GetNumberOfFiles(); ++i) + { + sortedFiles.push_back(dir.GetFile(i)); + } + std::sort(sortedFiles.begin(), sortedFiles.end()); + + for(std::vector::const_iterator fname = sortedFiles.begin(); + fname!=sortedFiles.end(); ++fname) + { + if(fname->length() > 6) + { + if(fname->substr(fname->length()-6, 6) == ".cmake") + { + std::string moduleName = fname->substr(0, fname->length()-6); + // this check is to avoid creating documentation for the modules with + // the same name in multiple directories of CMAKE_MODULE_PATH + if (this->ModulesFound.find(moduleName) == this->ModulesFound.end()) + { + this->ModulesFound.insert(moduleName); + std::string path = dir.GetPath(); + path += "/"; + path += (*fname); + this->CreateSingleModule(path.c_str(), moduleName.c_str(), + moduleSection); + } + } + } + } +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::CreateSingleModule(const char* fname, + const char* moduleName, + cmDocumentationSection &moduleSection) +{ + std::ifstream fin(fname); + if(!fin) + { + std::cerr << "Internal error: can not open module." << fname << std::endl; + return false; + } + std::string line; + std::string text; + std::string brief; + brief = " "; + bool newParagraph = true; + while ( fin && cmSystemTools::GetLineFromStream(fin, line) ) + { + if(line.size() && line[0] == '#') + { + // blank line + if(line.size() <= 2) + { + text += "\n"; + newParagraph = true; + } + else if(line[2] == '-') + { + brief = line.c_str()+4; + } + else + { + // two spaces + if(line[1] == ' ' && line[2] == ' ') + { + if(!newParagraph) + { + text += "\n"; + newParagraph = true; + } + // Skip #, and leave space for preformatted + text += line.c_str()+1; + text += "\n"; + } + else if(line[1] == ' ') + { + if(!newParagraph) + { + text += " "; + } + newParagraph = false; + // skip # and space + text += line.c_str()+2; + } + else + { + if(!newParagraph) + { + text += " "; + } + newParagraph = false; + // skip # + text += line.c_str()+1; + } + } + } + else + { + if(text.length() < 2 && brief.length() == 1) + { + return false; + } + char* pname = strcpy(new char[strlen(moduleName)+1], moduleName); + char* ptext = strcpy(new char[text.length()+1], text.c_str()); + this->ModuleStrings.push_back(pname); + this->ModuleStrings.push_back(ptext); + char* pbrief = strcpy(new char[brief.length()+1], brief.c_str()); + this->ModuleStrings.push_back(pbrief); + moduleSection.Append(pname, pbrief, ptext); + return true; + } + } + return true; +} + + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintRequestedDocumentation(std::ostream& os) +{ + bool result = true; + + // Loop over requested documentation types. + for(std::vector::const_iterator + i = this->RequestedHelpItems.begin(); + i != this->RequestedHelpItems.end(); + ++i) + { + this->SetForm(i->HelpForm); + this->CurrentArgument = i->Argument; + // If a file name was given, use it. Otherwise, default to the + // given stream. + std::ofstream* fout = 0; + std::ostream* s = &os; + if(i->Filename.length() > 0) + { + fout = new std::ofstream(i->Filename.c_str(), std::ios::out); + if(fout) + { + s = fout; + } + else + { + result = false; + } + } + + // Print this documentation type to the stream. + if(!this->PrintDocumentation(i->HelpType, *s) || !*s) + { + result = false; + } + + // Close the file if we wrote one. + if(fout) + { + delete fout; + } + } + return result; +} + +#define GET_OPT_ARGUMENT(target) \ + if((i+1 < argc) && !this->IsOption(argv[i+1])) \ + { \ + target = argv[i+1]; \ + i = i+1; \ + }; + + +cmDocumentation::Form cmDocumentation::GetFormFromFilename( + const std::string& filename) +{ + std::string ext = cmSystemTools::GetFilenameExtension(filename); + ext = cmSystemTools::UpperCase(ext); + if ((ext == ".HTM") || (ext == ".HTML")) + { + return cmDocumentation::HTMLForm; + } + + // ".1" to ".9" should be manpages + if ((ext.length()==2) && (ext[1] >='1') && (ext[1]<='9')) + { + return cmDocumentation::ManForm; + } + + return cmDocumentation::TextForm; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::CheckOptions(int argc, const char* const* argv) +{ + // Providing zero arguments gives usage information. + if(argc == 1) + { + RequestedHelpItem help; + help.HelpType = cmDocumentation::Usage; + help.HelpForm = cmDocumentation::UsageForm; + this->RequestedHelpItems.push_back(help); + return true; + } + + // Search for supported help options. + + bool result = false; + for(int i=1; i < argc; ++i) + { + RequestedHelpItem help; + // Check if this is a supported help option. + if((strcmp(argv[i], "-help") == 0) || + (strcmp(argv[i], "--help") == 0) || + (strcmp(argv[i], "/?") == 0) || + (strcmp(argv[i], "-usage") == 0) || + (strcmp(argv[i], "-h") == 0) || + (strcmp(argv[i], "-H") == 0)) + { + help.HelpType = cmDocumentation::Usage; + help.HelpForm = cmDocumentation::UsageForm; + GET_OPT_ARGUMENT(help.Argument); + help.Argument = cmSystemTools::LowerCase(help.Argument); + // special case for single command + if (!help.Argument.empty()) + { + help.HelpType = cmDocumentation::Single; + } + } + else if(strcmp(argv[i], "--help-properties") == 0) + { + help.HelpType = cmDocumentation::Properties; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-variables") == 0) + { + help.HelpType = cmDocumentation::Variables; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-modules") == 0) + { + help.HelpType = cmDocumentation::Modules; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-custom-modules") == 0) + { + help.HelpType = cmDocumentation::CustomModules; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-commands") == 0) + { + help.HelpType = cmDocumentation::Commands; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-compatcommands") == 0) + { + help.HelpType = cmDocumentation::CompatCommands; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-full") == 0) + { + help.HelpType = cmDocumentation::Full; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-html") == 0) + { + help.HelpType = cmDocumentation::Full; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::HTMLForm; + } + else if(strcmp(argv[i], "--help-man") == 0) + { + help.HelpType = cmDocumentation::Full; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::ManForm; + } + else if(strcmp(argv[i], "--help-command") == 0) + { + help.HelpType = cmDocumentation::Single; + GET_OPT_ARGUMENT(help.Argument); + GET_OPT_ARGUMENT(help.Filename); + help.Argument = cmSystemTools::LowerCase(help.Argument); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-module") == 0) + { + help.HelpType = cmDocumentation::SingleModule; + GET_OPT_ARGUMENT(help.Argument); + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-property") == 0) + { + help.HelpType = cmDocumentation::SingleProperty; + GET_OPT_ARGUMENT(help.Argument); + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-variable") == 0) + { + help.HelpType = cmDocumentation::SingleVariable; + GET_OPT_ARGUMENT(help.Argument); + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = this->GetFormFromFilename(help.Filename); + } + else if(strcmp(argv[i], "--help-command-list") == 0) + { + help.HelpType = cmDocumentation::List; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::TextForm; + } + else if(strcmp(argv[i], "--help-module-list") == 0) + { + help.HelpType = cmDocumentation::ModuleList; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::TextForm; + } + else if(strcmp(argv[i], "--help-property-list") == 0) + { + help.HelpType = cmDocumentation::PropertyList; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::TextForm; + } + else if(strcmp(argv[i], "--help-variable-list") == 0) + { + help.HelpType = cmDocumentation::VariableList; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::TextForm; + } + else if(strcmp(argv[i], "--copyright") == 0) + { + help.HelpType = cmDocumentation::Copyright; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::UsageForm; + } + else if((strcmp(argv[i], "--version") == 0) || + (strcmp(argv[i], "-version") == 0) || + (strcmp(argv[i], "/V") == 0)) + { + help.HelpType = cmDocumentation::Version; + GET_OPT_ARGUMENT(help.Filename); + help.HelpForm = cmDocumentation::UsageForm; + } + if(help.HelpType != None) + { + // This is a help option. See if there is a file name given. + result = true; + this->RequestedHelpItems.push_back(help); + } + } + return result; +} + +//---------------------------------------------------------------------------- +void cmDocumentation::Print(Form f, std::ostream& os) +{ + this->SetForm(f); + this->Print(os); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::Print(std::ostream& os) +{ + for(unsigned int i=0; i < this->PrintSections.size(); ++i) + { + std::string name = this->PrintSections[i]-> + GetName((this->CurrentFormatter->GetForm())); + this->CurrentFormatter->PrintSection(os,*this->PrintSections[i], + name.c_str()); + } +} + +//---------------------------------------------------------------------------- +void cmDocumentation::SetName(const char* name) +{ + this->NameString = name?name:""; +} + +//---------------------------------------------------------------------------- +void cmDocumentation::SetSection(const char *name, + cmDocumentationSection *section) +{ + if (this->AllSections.find(name) != this->AllSections.end()) + { + delete this->AllSections[name]; + } + this->AllSections[name] = section; +} + +//---------------------------------------------------------------------------- +void cmDocumentation::SetSection(const char *name, + std::vector &docs) +{ + cmDocumentationSection *sec = + new cmDocumentationSection(name, + cmSystemTools::UpperCase(name).c_str()); + sec->Append(docs); + this->SetSection(name,sec); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::SetSection(const char *name, + const char *docs[][3]) +{ + cmDocumentationSection *sec = + new cmDocumentationSection(name, + cmSystemTools::UpperCase(name).c_str()); + sec->Append(docs); + this->SetSection(name,sec); +} + +//---------------------------------------------------------------------------- +void cmDocumentation +::SetSections(std::map §ions) +{ + for (std::map::const_iterator + it = sections.begin(); it != sections.end(); ++it) + { + this->SetSection(it->first.c_str(),it->second); + } +} + +//---------------------------------------------------------------------------- +void cmDocumentation::PrependSection(const char *name, + const char *docs[][3]) +{ + cmDocumentationSection *sec = 0; + if (this->AllSections.find(name) == this->AllSections.end()) + { + sec = new cmDocumentationSection + (name, cmSystemTools::UpperCase(name).c_str()); + this->SetSection(name,sec); + } + else + { + sec = this->AllSections[name]; + } + sec->Prepend(docs); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::PrependSection(const char *name, + std::vector &docs) +{ + cmDocumentationSection *sec = 0; + if (this->AllSections.find(name) == this->AllSections.end()) + { + sec = new cmDocumentationSection + (name, cmSystemTools::UpperCase(name).c_str()); + this->SetSection(name,sec); + } + else + { + sec = this->AllSections[name]; + } + sec->Prepend(docs); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::AppendSection(const char *name, + const char *docs[][3]) +{ + cmDocumentationSection *sec = 0; + if (this->AllSections.find(name) == this->AllSections.end()) + { + sec = new cmDocumentationSection + (name, cmSystemTools::UpperCase(name).c_str()); + this->SetSection(name,sec); + } + else + { + sec = this->AllSections[name]; + } + sec->Append(docs); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::AppendSection(const char *name, + std::vector &docs) +{ + cmDocumentationSection *sec = 0; + if (this->AllSections.find(name) == this->AllSections.end()) + { + sec = new cmDocumentationSection + (name, cmSystemTools::UpperCase(name).c_str()); + this->SetSection(name,sec); + } + else + { + sec = this->AllSections[name]; + } + sec->Append(docs); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::AppendSection(const char *name, + cmDocumentationEntry &docs) +{ + + std::vector docsVec; + docsVec.push_back(docs); + this->AppendSection(name,docsVec); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::PrependSection(const char *name, + cmDocumentationEntry &docs) +{ + + std::vector docsVec; + docsVec.push_back(docs); + this->PrependSection(name,docsVec); +} + +//---------------------------------------------------------------------------- +void cmDocumentation::SetSeeAlsoList(const char *data[][3]) +{ + cmDocumentationSection *sec = + new cmDocumentationSection("See Also", "SEE ALSO"); + this->AllSections["See Also"] = sec; + this->SeeAlsoString = ".B "; + int i = 0; + while(data[i][1]) + { + this->SeeAlsoString += data[i][1]; + this->SeeAlsoString += data[i+1][1]? "(1), ":"(1)"; + ++i; + } + sec->Append(0,this->SeeAlsoString.c_str(),0); + sec->Append(cmDocumentationStandardSeeAlso); +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationGeneric(std::ostream& os, + const char *section) +{ + if(this->AllSections.find(section) == this->AllSections.end()) + { + os << "Internal error: " << section << " list is empty." << std::endl; + return false; + } + if(this->CurrentArgument.length() == 0) + { + os << "Required argument missing.\n"; + return false; + } + const std::vector &entries = + this->AllSections[section]->GetEntries(); + for(std::vector::const_iterator ei = + entries.begin(); + ei != entries.end(); ++ei) + { + if(this->CurrentArgument == ei->Name) + { + this->PrintDocumentationCommand(os, *ei); + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationSingle(std::ostream& os) +{ + if (this->PrintDocumentationGeneric(os,"Commands")) + { + return true; + } + if (this->PrintDocumentationGeneric(os,"Compatibility Commands")) + { + return true; + } + + // Argument was not a command. Complain. + os << "Argument \"" << this->CurrentArgument.c_str() + << "\" to --help-command is not a CMake command. " + << "Use --help-command-list to see all commands.\n"; + return false; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationSingleModule(std::ostream& os) +{ + if(this->CurrentArgument.length() == 0) + { + os << "Argument --help-module needs a module name.\n"; + return false; + } + + std::string moduleName; + // find the module + std::vector dirs; + cmSystemTools::ExpandListArgument(this->CMakeModulePath, dirs); + for(std::vector::const_iterator dirIt = dirs.begin(); + dirIt != dirs.end(); + ++dirIt) + { + moduleName = *dirIt; + moduleName += "/"; + moduleName += this->CurrentArgument; + moduleName += ".cmake"; + if(cmSystemTools::FileExists(moduleName.c_str())) + { + break; + } + moduleName = ""; + } + + if (moduleName.empty()) + { + moduleName = this->CMakeRoot; + moduleName += "/Modules/"; + moduleName += this->CurrentArgument; + moduleName += ".cmake"; + if(!cmSystemTools::FileExists(moduleName.c_str())) + { + moduleName = ""; + } + } + + if(!moduleName.empty()) + { + cmDocumentationSection *sec = + new cmDocumentationSection("Standard CMake Modules", "MODULES"); + this->AllSections["Modules"] = sec; + if (this->CreateSingleModule(moduleName.c_str(), + this->CurrentArgument.c_str(), + *this->AllSections["Modules"])) + { + this->PrintDocumentationCommand + (os, this->AllSections["Modules"]->GetEntries()[0]); + os << "\n Defined in: "; + os << moduleName << "\n"; + return true; + } + } + + // Argument was not a module. Complain. + os << "Argument \"" << this->CurrentArgument.c_str() + << "\" to --help-module is not a CMake module.\n"; + return false; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationSingleProperty(std::ostream& os) +{ + bool done = false; + for (std::vector::iterator i = + this->PropertySections.begin(); + !done && i != this->PropertySections.end(); ++i) + { + done = this->PrintDocumentationGeneric(os,i->c_str()); + } + + if (done) + { + return true; + } + + // Argument was not a command. Complain. + os << "Argument \"" << this->CurrentArgument.c_str() + << "\" to --help-property is not a CMake property. " + << "Use --help-property-list to see all properties.\n"; + return false; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationSingleVariable(std::ostream& os) +{ + bool done = false; + for (std::vector::iterator i = + this->VariableSections.begin(); + !done && i != this->VariableSections.end(); ++i) + { + done = this->PrintDocumentationGeneric(os,i->c_str()); + } + + if (done) + { + return true; + } + + // Argument was not a command. Complain. + os << "Argument \"" << this->CurrentArgument.c_str() + << "\" to --help-variable is not a defined variable. " + << "Use --help-variable-list to see all defined variables.\n"; + return false; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationList(std::ostream& os, + const char *section) +{ + if(this->AllSections.find(section) == this->AllSections.end()) + { + os << "Internal error: " << section << " list is empty." << std::endl; + return false; + } + + const std::vector &entries = + this->AllSections[section]->GetEntries(); + for(std::vector::const_iterator ei = + entries.begin(); + ei != entries.end(); ++ei) + { + if(ei->Name.size()) + { + os << ei->Name << std::endl; + } + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationUsage(std::ostream& os) +{ + this->ClearSections(); + this->AddSectionToPrint("Usage"); + this->AddSectionToPrint("Options"); + this->AddSectionToPrint("Generators"); + this->Print(os); + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationFull(std::ostream& os) +{ + this->CreateFullDocumentation(); + this->CurrentFormatter->PrintHeader(GetNameString(), os); + this->Print(os); + this->CurrentFormatter->PrintFooter(os); + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationModules(std::ostream& os) +{ + this->ClearSections(); + this->CreateModulesSection(); + this->AddSectionToPrint("Description"); + this->AddSectionToPrint("Modules"); + this->AddSectionToPrint("Copyright"); + this->AddSectionToPrint("See Also"); + this->CurrentFormatter->PrintHeader(this->GetNameString(), os); + this->Print(os); + this->CurrentFormatter->PrintFooter(os); + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationCustomModules(std::ostream& os) +{ + this->ClearSections(); + this->CreateCustomModulesSection(); + this->AddSectionToPrint("Description"); + this->AddSectionToPrint("Custom Modules"); + this->AddSectionToPrint("Copyright"); + this->AddSectionToPrint("See Also"); + + this->CurrentFormatter->PrintHeader(this->GetNameString(), os); + this->Print(os); + this->CurrentFormatter->PrintFooter(os); + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationProperties(std::ostream& os) +{ + this->ClearSections(); + this->AddSectionToPrint("Properties Description"); + for (std::vector::iterator i = + this->PropertySections.begin(); + i != this->PropertySections.end(); ++i) + { + this->AddSectionToPrint(i->c_str()); + } + this->AddSectionToPrint("Copyright"); + this->AddSectionToPrint("Standard See Also"); + this->CurrentFormatter->PrintHeader(this->GetNameString(), os); + this->Print(os); + this->CurrentFormatter->PrintFooter(os); + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationVariables(std::ostream& os) +{ + this->ClearSections(); + for (std::vector::iterator i = + this->VariableSections.begin(); + i != this->VariableSections.end(); ++i) + { + this->AddSectionToPrint(i->c_str()); + } + this->AddSectionToPrint("Copyright"); + this->AddSectionToPrint("Standard See Also"); + this->CurrentFormatter->PrintHeader(this->GetNameString(), os); + this->Print(os); + this->CurrentFormatter->PrintFooter(os); + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationCurrentCommands(std::ostream& os) +{ + this->ClearSections(); + this->AddSectionToPrint("Commands"); + this->AddSectionToPrint("Copyright"); + this->AddSectionToPrint("Standard See Also"); + this->CurrentFormatter->PrintHeader(this->GetNameString(), os); + this->Print(os); + this->CurrentFormatter->PrintFooter(os); + return true; +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintDocumentationCompatCommands(std::ostream& os) +{ + this->ClearSections(); + this->AddSectionToPrint("Compatibility Commands Description"); + this->AddSectionToPrint("Compatibility Commands"); + this->AddSectionToPrint("Copyright"); + this->AddSectionToPrint("Standard See Also"); + this->CurrentFormatter->PrintHeader(GetNameString(), os); + this->Print(os); + this->CurrentFormatter->PrintFooter(os); + return true; +} + +//---------------------------------------------------------------------------- +void cmDocumentation +::PrintDocumentationCommand(std::ostream& os, + const cmDocumentationEntry &entry) +{ + cmDocumentationSection *sec = new cmDocumentationSection("",""); + sec->Append(entry); + this->AllSections["temp"] = sec; + this->ClearSections(); + this->AddSectionToPrint("temp"); + this->Print(os); + this->AllSections.erase("temp"); + delete sec; +} + +//---------------------------------------------------------------------------- +void cmDocumentation::CreateFullDocumentation() +{ + this->ClearSections(); + this->CreateCustomModulesSection(); + this->CreateModulesSection(); + + std::set emitted; + this->AddSectionToPrint("Name"); + emitted.insert("Name"); + this->AddSectionToPrint("Usage"); + emitted.insert("Usage"); + this->AddSectionToPrint("Description"); + emitted.insert("Description"); + this->AddSectionToPrint("Options"); + emitted.insert("Options"); + this->AddSectionToPrint("Generators"); + emitted.insert("Generators"); + this->AddSectionToPrint("Commands"); + emitted.insert("Commands"); + + + this->AddSectionToPrint("Properties Description"); + emitted.insert("Properties Description"); + for (std::vector::iterator i = + this->PropertySections.begin(); + i != this->PropertySections.end(); ++i) + { + this->AddSectionToPrint(i->c_str()); + emitted.insert(i->c_str()); + } + + emitted.insert("Copyright"); + emitted.insert("See Also"); + emitted.insert("Standard See Also"); + emitted.insert("Author"); + + // add any sections not yet written out, or to be written out + for (std::map::iterator i = + this->AllSections.begin(); + i != this->AllSections.end(); ++i) + { + if (emitted.find(i->first) == emitted.end()) + { + this->AddSectionToPrint(i->first.c_str()); + } + } + + this->AddSectionToPrint("Copyright"); + + if(this->CurrentFormatter->GetForm() == ManForm) + { + this->AddSectionToPrint("See Also"); + this->AddSectionToPrint("Author"); + } + else + { + this->AddSectionToPrint("Standard See Also"); + } +} + +//---------------------------------------------------------------------------- +void cmDocumentation::SetForm(Form f) +{ + switch(f) + { + case HTMLForm: + this->CurrentFormatter = &this->HTMLFormatter; + break; + case ManForm: + this->CurrentFormatter = &this->ManFormatter; + break; + case TextForm: + this->CurrentFormatter = &this->TextFormatter; + break; + case UsageForm: + this->CurrentFormatter = & this->UsageFormatter; + break; + } +} + + +//---------------------------------------------------------------------------- +const char* cmDocumentation::GetNameString() const +{ + if(this->NameString.length() > 0) + { + return this->NameString.c_str(); + } + else + { + return "CMake"; + } +} + +//---------------------------------------------------------------------------- +bool cmDocumentation::IsOption(const char* arg) const +{ + return ((arg[0] == '-') || (strcmp(arg, "/V") == 0) || + (strcmp(arg, "/?") == 0)); +} diff --git a/CMakeLua/Source/cmDocumentation.h b/CMakeLua/Source/cmDocumentation.h new file mode 100644 index 0000000..5964e32 --- /dev/null +++ b/CMakeLua/Source/cmDocumentation.h @@ -0,0 +1,187 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentation.h,v $ + Language: C++ + Date: $Date: 2007/10/24 15:36:47 $ + Version: $Revision: 1.31 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentation_h +#define _cmDocumentation_h + +#include "cmStandardIncludes.h" +#include "cmProperty.h" +#include "cmDocumentationFormatter.h" +#include "cmDocumentationFormatterHTML.h" +#include "cmDocumentationFormatterMan.h" +#include "cmDocumentationFormatterText.h" +#include "cmDocumentationFormatterUsage.h" +#include "cmDocumentationSection.h" + +namespace cmsys +{ + class Directory; +} + +/** Class to generate documentation. */ +class cmDocumentation: public cmDocumentationEnums +{ +public: + cmDocumentation(); + + ~cmDocumentation(); + // High-level interface for standard documents: + + /** + * Check command line arguments for documentation options. Returns + * true if documentation options are found, and false otherwise. + * When true is returned, PrintRequestedDocumentation should be + * called. + */ + bool CheckOptions(int argc, const char* const* argv); + + /** + * Print help requested on the command line. Call after + * CheckOptions returns true. Returns true on success, and false + * otherwise. Failure can occur when output files specified on the + * command line cannot be written. + */ + bool PrintRequestedDocumentation(std::ostream& os); + + /** Print help of the given type. */ + bool PrintDocumentation(Type ht, std::ostream& os); + + /** Set the program name for standard document generation. */ + void SetName(const char* name); + + /** Set a section of the documentation. Typical sections include Name, + Usage, Description, Options, SeeAlso */ + void SetSection(const char *sectionName, + cmDocumentationSection *section); + void SetSection(const char *sectionName, + std::vector &docs); + void SetSection(const char *sectionName, + const char *docs[][3]); + void SetSections(std::map + §ions); + + /** Add the documentation to the beginning/end of the section */ + void PrependSection(const char *sectionName, + const char *docs[][3]); + void PrependSection(const char *sectionName, + std::vector &docs); + void PrependSection(const char *sectionName, + cmDocumentationEntry &docs); + void AppendSection(const char *sectionName, + const char *docs[][3]); + void AppendSection(const char *sectionName, + std::vector &docs); + void AppendSection(const char *sectionName, + cmDocumentationEntry &docs); + + /** + * Print documentation in the given form. All previously added + * sections will be generated. + */ + void Print(Form f, std::ostream& os); + + /** + * Print documentation in the current form. All previously added + * sections will be generated. + */ + void Print(std::ostream& os); + + /** + * Add a section of documentation. This can be used to generate custom help + * documents. + */ + void AddSectionToPrint(const char *section); + + void SetSeeAlsoList(const char *data[][3]); + + /** Clear all previously added sections of help. */ + void ClearSections(); + + /** Set cmake root so we can find installed files */ + void SetCMakeRoot(const char* root) { this->CMakeRoot = root;} + + /** Set CMAKE_MODULE_PATH so we can find additional cmake modules */ + void SetCMakeModulePath(const char* path) { this->CMakeModulePath = path;} + + static Form GetFormFromFilename(const std::string& filename); + +private: + void SetForm(Form f); + + bool CreateSingleModule(const char* fname, + const char* moduleName, + cmDocumentationSection &sec); + void CreateModuleDocsForDir(cmsys::Directory& dir, + cmDocumentationSection &moduleSection); + bool CreateModulesSection(); + bool CreateCustomModulesSection(); + void CreateFullDocumentation(); + + bool PrintCopyright(std::ostream& os); + bool PrintVersion(std::ostream& os); + bool PrintDocumentationGeneric(std::ostream& os, const char *section); + bool PrintDocumentationList(std::ostream& os, const char *section); + bool PrintDocumentationSingle(std::ostream& os); + bool PrintDocumentationSingleModule(std::ostream& os); + bool PrintDocumentationSingleProperty(std::ostream& os); + bool PrintDocumentationSingleVariable(std::ostream& os); + bool PrintDocumentationUsage(std::ostream& os); + bool PrintDocumentationFull(std::ostream& os); + bool PrintDocumentationModules(std::ostream& os); + bool PrintDocumentationCustomModules(std::ostream& os); + bool PrintDocumentationProperties(std::ostream& os); + bool PrintDocumentationVariables(std::ostream& os); + bool PrintDocumentationCurrentCommands(std::ostream& os); + bool PrintDocumentationCompatCommands(std::ostream& os); + void PrintDocumentationCommand(std::ostream& os, + const cmDocumentationEntry &entry); + + + const char* GetNameString() const; + bool IsOption(const char* arg) const; + + std::string NameString; + std::map AllSections; + + std::string SeeAlsoString; + std::string CMakeRoot; + std::string CMakeModulePath; + std::set ModulesFound; + std::vector< char* > ModuleStrings; + std::vector PrintSections; + std::string CurrentArgument; + + struct RequestedHelpItem + { + RequestedHelpItem():HelpForm(TextForm), HelpType(None) {} + cmDocumentationEnums::Form HelpForm; + cmDocumentationEnums::Type HelpType; + std::string Filename; + std::string Argument; + }; + + std::vector RequestedHelpItems; + cmDocumentationFormatter* CurrentFormatter; + cmDocumentationFormatterHTML HTMLFormatter; + cmDocumentationFormatterMan ManFormatter; + cmDocumentationFormatterText TextFormatter; + cmDocumentationFormatterUsage UsageFormatter; + + std::vector PropertySections; + std::vector VariableSections; +}; + +#endif diff --git a/CMakeLua/Source/cmDocumentationFormatter.cxx b/CMakeLua/Source/cmDocumentationFormatter.cxx new file mode 100644 index 0000000..b02be79 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatter.cxx @@ -0,0 +1,73 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatter.cxx,v $ + Language: C++ + Date: $Date: 2007/09/19 13:05:28 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDocumentationFormatter.h" + +cmDocumentationFormatter::cmDocumentationFormatter() +{ +} + +cmDocumentationFormatter::~cmDocumentationFormatter() +{ +} + +void cmDocumentationFormatter::PrintFormatted(std::ostream& os, + const char* text) +{ + if(!text) + { + return; + } + const char* ptr = text; + while(*ptr) + { + // Any ptrs starting in a space are treated as preformatted text. + std::string preformatted; + while(*ptr == ' ') + { + for(char ch = *ptr; ch && ch != '\n'; ++ptr, ch = *ptr) + { + preformatted.append(1, ch); + } + if(*ptr) + { + ++ptr; + preformatted.append(1, '\n'); + } + } + if(preformatted.length()) + { + this->PrintPreformatted(os, preformatted.c_str()); + } + + // Other ptrs are treated as paragraphs. + std::string paragraph; + for(char ch = *ptr; ch && ch != '\n'; ++ptr, ch = *ptr) + { + paragraph.append(1, ch); + } + if(*ptr) + { + ++ptr; + paragraph.append(1, '\n'); + } + if(paragraph.length()) + { + this->PrintParagraph(os, paragraph.c_str()); + } + } +} + diff --git a/CMakeLua/Source/cmDocumentationFormatter.h b/CMakeLua/Source/cmDocumentationFormatter.h new file mode 100644 index 0000000..643dec4 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatter.h @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatter.h,v $ + Language: C++ + Date: $Date: 2007/10/24 15:36:47 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentationFormatter_h +#define _cmDocumentationFormatter_h + +#include "cmStandardIncludes.h" + +/** This is just a helper class to make it build with MSVC 6.0. +Actually the enums and internal classes could directly go into +cmDocumentation, but then MSVC6 complains in RequestedHelpItem that +cmDocumentation is an undefined type and so it doesn't know the enums. +Moving the enums to a class which is then already completely parsed helps +against this. */ +class cmDocumentationEnums +{ +public: + /** Types of help provided. */ + enum Type + { None, Usage, Single, SingleModule, SingleProperty, SingleVariable, + List, ModuleList, PropertyList, VariableList, + Full, Properties, Variables, Modules, CustomModules, Commands, + CompatCommands, Copyright, Version }; + + /** Forms of documentation output. */ + enum Form { TextForm, HTMLForm, ManForm, UsageForm }; +}; + +class cmDocumentationSection; + +/** Base class for printing the documentation in the various supported + formats. */ +class cmDocumentationFormatter +{ +public: + cmDocumentationFormatter(); + virtual ~cmDocumentationFormatter(); + void PrintFormatted(std::ostream& os, const char* text); + + virtual cmDocumentationEnums::Form GetForm() const = 0; + + virtual void PrintHeader(const char* /*name*/, std::ostream& /*os*/) {} + virtual void PrintFooter(std::ostream& /*os*/) {} + virtual void PrintSection(std::ostream& os, + const cmDocumentationSection& section, + const char* name) = 0; + virtual void PrintPreformatted(std::ostream& os, const char* text) = 0; + virtual void PrintParagraph(std::ostream& os, const char* text) = 0; +}; + +#endif diff --git a/CMakeLua/Source/cmDocumentationFormatterHTML.cxx b/CMakeLua/Source/cmDocumentationFormatterHTML.cxx new file mode 100644 index 0000000..9bd068c --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterHTML.cxx @@ -0,0 +1,206 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterHTML.cxx,v $ + Language: C++ + Date: $Date: 2007/11/27 20:59:22 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDocumentationFormatterHTML.h" +#include "cmDocumentationSection.h" + +//---------------------------------------------------------------------------- +static bool cmDocumentationIsHyperlinkChar(char c) +{ + // This is not a complete list but works for CMake documentation. + return ((c >= 'A' && c <= 'Z') || + (c >= 'a' && c <= 'z') || + (c >= '0' && c <= '9') || + c == '-' || c == '.' || c == '/' || c == '~' || c == '@' || + c == ':' || c == '_' || c == '&' || c == '?' || c == '='); +} + +//---------------------------------------------------------------------------- +static void cmDocumentationPrintHTMLChar(std::ostream& os, char c) +{ + // Use an escape sequence if necessary. + std::map escapes; + escapes['<'] = "<"; + escapes['>'] = ">"; + escapes['&'] = "&"; + escapes['\n'] = "
    "; + + if (escapes.find(c) == escapes.end()) + { + // No escape sequence is needed. + os << c; + return; + } + + os << escapes[c]; + return; +} + +//---------------------------------------------------------------------------- +const char* cmDocumentationPrintHTMLLink(std::ostream& os, const char* begin) +{ + // Look for the end of the link. + const char* end = begin; + while(cmDocumentationIsHyperlinkChar(*end)) + { + ++end; + } + + // Print the hyperlink itself. + os << ""; + + // The name of the hyperlink is the text itself. + for(const char* c = begin; c != end; ++c) + { + cmDocumentationPrintHTMLChar(os, *c); + } + os << ""; + + // Return the position at which to continue scanning the input + // string. + return end; +} + + +cmDocumentationFormatterHTML::cmDocumentationFormatterHTML() +:cmDocumentationFormatter() +{ +} + +void cmDocumentationFormatterHTML +::PrintSection(std::ostream& os, + const cmDocumentationSection §ion, + const char* name) +{ + if(name) + { + os << "

    " << name << "

    \n"; + } + + const std::vector &entries = + section.GetEntries(); + + os << "\n" ; + + for(std::vector::const_iterator op = entries.begin(); + op != entries.end();) + { + if(op->Name.size()) + { + os << "\n"; + } + else + { + this->PrintFormatted(os, op->Brief.c_str()); + os << "\n"; + ++op; + } + } +} + +void cmDocumentationFormatterHTML::PrintPreformatted(std::ostream& os, + const char* text) +{ + os << "
    ";
    +  this->PrintHTMLEscapes(os, text);
    +  os << "
    \n "; +} + +void cmDocumentationFormatterHTML::PrintParagraph(std::ostream& os, + const char* text) +{ + os << "

    "; + this->PrintHTMLEscapes(os, text); +} + +//---------------------------------------------------------------------------- +void cmDocumentationFormatterHTML::PrintHeader(const char* /*name*/, + std::ostream& os) +{ + os << "\n"; +} + +//---------------------------------------------------------------------------- +void cmDocumentationFormatterHTML::PrintFooter(std::ostream& os) +{ + os << "\n"; +} + +//---------------------------------------------------------------------------- +void cmDocumentationFormatterHTML::PrintHTMLEscapes(std::ostream& os, + const char* text) +{ + // Hyperlink prefixes. + static const char* hyperlinks[] = {"http://", "ftp://", "mailto:", 0}; + + // Print each character. + for(const char* p = text; *p;) + { + // Handle hyperlinks specially to make them active. + bool found_hyperlink = false; + for(const char** h = hyperlinks; !found_hyperlink && *h; ++h) + { + if(strncmp(p, *h, strlen(*h)) == 0) + { + p = cmDocumentationPrintHTMLLink(os, p); + found_hyperlink = true; + } + } + + // Print other characters normally. + if(!found_hyperlink) + { + cmDocumentationPrintHTMLChar(os, *p++); + } + } +} diff --git a/CMakeLua/Source/cmDocumentationFormatterHTML.h b/CMakeLua/Source/cmDocumentationFormatterHTML.h new file mode 100644 index 0000000..664ddfc --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterHTML.h @@ -0,0 +1,44 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterHTML.h,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentationFormatterHTML_h +#define _cmDocumentationFormatterHTML_h + +#include "cmStandardIncludes.h" + +#include "cmDocumentationFormatter.h" + +/** Class to print the documentation as HTML. */ +class cmDocumentationFormatterHTML : public cmDocumentationFormatter +{ +public: + cmDocumentationFormatterHTML(); + + virtual cmDocumentationEnums::Form GetForm() const + { return cmDocumentationEnums::HTMLForm;} + + virtual void PrintHeader(const char* name, std::ostream& os); + virtual void PrintFooter(std::ostream& os); + virtual void PrintSection(std::ostream& os, + const cmDocumentationSection& section, + const char* name); + virtual void PrintPreformatted(std::ostream& os, const char* text); + virtual void PrintParagraph(std::ostream& os, const char* text); +private: + void PrintHTMLEscapes(std::ostream& os, const char* text); +}; + +#endif diff --git a/CMakeLua/Source/cmDocumentationFormatterMan.cxx b/CMakeLua/Source/cmDocumentationFormatterMan.cxx new file mode 100644 index 0000000..9089a0d --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterMan.cxx @@ -0,0 +1,87 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterMan.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmDocumentationFormatterMan.h" +#include "cmDocumentationSection.h" + +#include "cmSystemTools.h" +#include "cmVersion.h" + + +cmDocumentationFormatterMan::cmDocumentationFormatterMan() +:cmDocumentationFormatter() +{ +} + +void cmDocumentationFormatterMan +::PrintSection(std::ostream& os, + const cmDocumentationSection §ion, + const char* name) +{ + if(name) + { + os << ".SH " << name << "\n"; + } + + const std::vector &entries = + section.GetEntries(); + for(std::vector::const_iterator op = entries.begin(); + op != entries.end(); ++op) + { + if(op->Name.size()) + { + os << ".TP\n" + << ".B " << (op->Name.size()?op->Name.c_str():"*") << "\n"; + this->PrintFormatted(os, op->Brief.c_str()); + this->PrintFormatted(os, op->Full.c_str()); + } + else + { + os << ".PP\n"; + this->PrintFormatted(os, op->Brief.c_str()); + } + } +} + +void cmDocumentationFormatterMan::PrintPreformatted(std::ostream& os, + const char* text) +{ + std::string man_text = text; + cmSystemTools::ReplaceString(man_text, "\\", "\\\\"); + os << man_text << "\n"; +} + +void cmDocumentationFormatterMan::PrintParagraph(std::ostream& os, + const char* text) +{ + std::string man_text = text; + cmSystemTools::ReplaceString(man_text, "\\", "\\\\"); + os << man_text << "\n\n"; +} + + +//---------------------------------------------------------------------------- +void cmDocumentationFormatterMan::PrintHeader(const char* name, + std::ostream& os) +{ + os << ".TH " << name << " 1 \"" + << cmSystemTools::GetCurrentDateTime("%B %d, %Y").c_str() + << "\" \"" << name + << " " << cmVersion::GetCMakeVersion() + << "\"\n"; +} + diff --git a/CMakeLua/Source/cmDocumentationFormatterMan.h b/CMakeLua/Source/cmDocumentationFormatterMan.h new file mode 100644 index 0000000..d2e8f4f --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterMan.h @@ -0,0 +1,41 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterMan.h,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentationFormatterMan_h +#define _cmDocumentationFormatterMan_h + +#include "cmStandardIncludes.h" + +#include "cmDocumentationFormatter.h" + +/** Class to print the documentation as man page. */ +class cmDocumentationFormatterMan : public cmDocumentationFormatter +{ +public: + cmDocumentationFormatterMan(); + + virtual cmDocumentationEnums::Form GetForm() const + { return cmDocumentationEnums::ManForm;} + + virtual void PrintHeader(const char* name, std::ostream& os); + virtual void PrintSection(std::ostream& os, + const cmDocumentationSection& section, + const char* name); + virtual void PrintPreformatted(std::ostream& os, const char* text); + virtual void PrintParagraph(std::ostream& os, const char* text); +}; + +#endif diff --git a/CMakeLua/Source/cmDocumentationFormatterText.cxx b/CMakeLua/Source/cmDocumentationFormatterText.cxx new file mode 100644 index 0000000..b84c577 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterText.cxx @@ -0,0 +1,185 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterText.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmDocumentationFormatterText.h" +#include "cmDocumentationSection.h" + +cmDocumentationFormatterText::cmDocumentationFormatterText() +:cmDocumentationFormatter() +,TextWidth(77) +,TextIndent("") +{ +} + +void cmDocumentationFormatterText +::PrintSection(std::ostream& os, + const cmDocumentationSection §ion, + const char* name) +{ + if(name) + { + os << + "---------------------------------------" + "---------------------------------------\n"; + os << name << "\n\n"; + } + + const std::vector &entries = + section.GetEntries(); + for(std::vector::const_iterator op = entries.begin(); + op != entries.end(); ++op) + { + if(op->Name.size()) + { + os << " " << op->Name << "\n"; + this->TextIndent = " "; + this->PrintFormatted(os, op->Brief.c_str()); + if(op->Full.size()) + { + os << "\n"; + this->PrintFormatted(os, op->Full.c_str()); + } + } + else + { + this->TextIndent = ""; + this->PrintFormatted(os, op->Brief.c_str()); + } + os << "\n"; + } +} + +void cmDocumentationFormatterText::PrintPreformatted(std::ostream& os, + const char* text) +{ + bool newline = true; + for(const char* ptr = text; *ptr; ++ptr) + { + if(newline) + { + os << this->TextIndent; + newline = false; + } + os << *ptr; + if(*ptr == '\n') + { + newline = true; + } + } + os << "\n"; +} + +void cmDocumentationFormatterText::PrintParagraph(std::ostream& os, + const char* text) +{ + os << this->TextIndent; + this->PrintColumn(os, text); + os << "\n"; +} + +void cmDocumentationFormatterText::SetIndent(const char* indent) +{ + this->TextIndent = indent; +} + +void cmDocumentationFormatterText::PrintColumn(std::ostream& os, + const char* text) +{ + // Print text arranged in an indented column of fixed witdh. + const char* l = text; + int column = 0; + bool newSentence = false; + bool firstLine = true; + int width = this->TextWidth - static_cast(strlen(this->TextIndent)); + + // Loop until the end of the text. + while(*l) + { + // Parse the next word. + const char* r = l; + while(*r && (*r != '\n') && (*r != ' ')) { ++r; } + + // Does it fit on this line? + if(r-l < (width-column-(newSentence?1:0))) + { + // Word fits on this line. + if(r > l) + { + if(column) + { + // Not first word on line. Separate from the previous word + // by a space, or two if this is a new sentence. + if(newSentence) + { + os << " "; + column += 2; + } + else + { + os << " "; + column += 1; + } + } + else + { + // First word on line. Print indentation unless this is the + // first line. + os << (firstLine?"":this->TextIndent); + } + + // Print the word. + os.write(l, static_cast(r-l)); + newSentence = (*(r-1) == '.'); + } + + if(*r == '\n') + { + // Text provided a newline. Start a new line. + os << "\n"; + ++r; + column = 0; + firstLine = false; + } + else + { + // No provided newline. Continue this line. + column += static_cast(r-l); + } + } + else + { + // Word does not fit on this line. Start a new line. + os << "\n"; + firstLine = false; + if(r > l) + { + os << this->TextIndent; + os.write(l, static_cast(r-l)); + column = static_cast(r-l); + newSentence = (*(r-1) == '.'); + } + else + { + column = 0; + } + } + + // Move to beginning of next word. Skip over whitespace. + l = r; + while(*l && (*l == ' ')) { ++l; } + } +} diff --git a/CMakeLua/Source/cmDocumentationFormatterText.h b/CMakeLua/Source/cmDocumentationFormatterText.h new file mode 100644 index 0000000..f4e67c0 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterText.h @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterText.h,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentationFormatterText_h +#define _cmDocumentationFormatterText_h + +#include "cmStandardIncludes.h" + +#include "cmDocumentationFormatter.h" + +/** Class to print the documentation as plain text. */ +class cmDocumentationFormatterText : public cmDocumentationFormatter +{ +public: + cmDocumentationFormatterText(); + + virtual cmDocumentationEnums::Form GetForm() const + { return cmDocumentationEnums::TextForm;} + + virtual void PrintSection(std::ostream& os, + const cmDocumentationSection& section, + const char* name); + virtual void PrintPreformatted(std::ostream& os, const char* text); + virtual void PrintParagraph(std::ostream& os, const char* text); + void PrintColumn(std::ostream& os, const char* text); + void SetIndent(const char* indent); +protected: + int TextWidth; + const char* TextIndent; +}; + +#endif diff --git a/CMakeLua/Source/cmDocumentationFormatterUsage.cxx b/CMakeLua/Source/cmDocumentationFormatterUsage.cxx new file mode 100644 index 0000000..655ca98 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterUsage.cxx @@ -0,0 +1,68 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterUsage.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmDocumentationFormatterUsage.h" +#include "cmDocumentationSection.h" + +cmDocumentationFormatterUsage::cmDocumentationFormatterUsage() +:cmDocumentationFormatterText() +{ +} + +void cmDocumentationFormatterUsage +::PrintSection(std::ostream& os, + const cmDocumentationSection §ion, + const char* name) +{ + if(name) + { + os << name << "\n"; + } + + const std::vector &entries = + section.GetEntries(); + for(std::vector::const_iterator op = entries.begin(); + op != entries.end(); ++op) + { + if(op->Name.size()) + { + os << " " << op->Name; + this->TextIndent = " "; + int align = static_cast(strlen(this->TextIndent))-4; + for(int i = static_cast(op->Name.size()); i < align; ++i) + { + os << " "; + } + if (op->Name.size() > strlen(this->TextIndent)-4 ) + { + os << "\n"; + os.write(this->TextIndent, strlen(this->TextIndent)-2); + } + os << "= "; + this->PrintColumn(os, op->Brief.c_str()); + os << "\n"; + } + else + { + os << "\n"; + this->TextIndent = ""; + this->PrintFormatted(os, op->Brief.c_str()); + } + } + os << "\n"; +} + diff --git a/CMakeLua/Source/cmDocumentationFormatterUsage.h b/CMakeLua/Source/cmDocumentationFormatterUsage.h new file mode 100644 index 0000000..5c41ac3 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationFormatterUsage.h @@ -0,0 +1,36 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationFormatterUsage.h,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentationFormatterUsage_h +#define _cmDocumentationFormatterUsage_h + +#include "cmDocumentationFormatterText.h" + +/** Class to print the documentation as usage on the command line. */ +class cmDocumentationFormatterUsage : public cmDocumentationFormatterText +{ +public: + cmDocumentationFormatterUsage(); + + virtual cmDocumentationEnums::Form GetForm() const + { return cmDocumentationEnums::UsageForm;} + + virtual void PrintSection(std::ostream& os, + const cmDocumentationSection& section, + const char* name); +}; + +#endif diff --git a/CMakeLua/Source/cmDocumentationSection.cxx b/CMakeLua/Source/cmDocumentationSection.cxx new file mode 100755 index 0000000..a4b5468 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationSection.cxx @@ -0,0 +1,86 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationSection.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 19:33:19 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDocumentationSection.h" + + +//---------------------------------------------------------------------------- +void cmDocumentationSection::Append(const char *data[][3]) +{ + int i = 0; + while(data[i][1]) + { + this->Entries.push_back(cmDocumentationEntry(data[i][0], + data[i][1], + data[i][2])); + data += 1; + } +} + +//---------------------------------------------------------------------------- +void cmDocumentationSection::Prepend(const char *data[][3]) +{ + std::vector tmp; + int i = 0; + while(data[i][1]) + { + tmp.push_back(cmDocumentationEntry(data[i][0], + data[i][1], + data[i][2])); + data += 1; + } + this->Entries.insert(this->Entries.begin(),tmp.begin(),tmp.end()); +} + +//---------------------------------------------------------------------------- +void cmDocumentationSection::Append(const char *n, const char *b, + const char *f) +{ + this->Entries.push_back(cmDocumentationEntry(n,b,f)); +} + +#if 0 +//---------------------------------------------------------------------------- +void cmDocumentationSection::Set(const cmDocumentationEntry* header, + const cmDocumentationEntry* section, + const cmDocumentationEntry* footer) +{ + this->Entries.erase(this->Entries.begin(), this->Entries.end()); + if(header) + { + for(const cmDocumentationEntry* op = header; op->brief; ++op) + { + this->Entries.push_back(*op); + } + } + if(section) + { + for(const cmDocumentationEntry* op = section; op->brief; ++op) + { + this->Entries.push_back(*op); + } + } + if(footer) + { + for(const cmDocumentationEntry* op = footer; op->brief; ++op) + { + this->Entries.push_back(*op); + } + } + cmDocumentationEntry empty = {0,0,0}; + this->Entries.push_back(empty); +} +#endif diff --git a/CMakeLua/Source/cmDocumentationSection.h b/CMakeLua/Source/cmDocumentationSection.h new file mode 100755 index 0000000..0824d46 --- /dev/null +++ b/CMakeLua/Source/cmDocumentationSection.h @@ -0,0 +1,73 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDocumentationSection.h,v $ + Language: C++ + Date: $Date: 2007/10/24 15:36:47 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentationSection_h +#define _cmDocumentationSection_h + +#include "cmStandardIncludes.h" +#include "cmDocumentationFormatter.h" + +// Low-level interface for custom documents: +/** Internal class representing a section of the documentation. + * Cares e.g. for the different section titles in the different + * output formats. + */ +class cmDocumentationSection +{ +public: + /** Create a cmSection, with a special name for man-output mode. */ + cmDocumentationSection(const char* name, const char* manName) + :Name(name), ManName(manName) {} + + /** Has any content been added to this section or is it empty ? */ + bool IsEmpty() const { return this->Entries.empty(); } + + /** Clear contents. */ + void Clear() { this->Entries.clear(); } + + /** Return the name of this section for the given output form. */ + const char* GetName(cmDocumentationEnums::Form form) const + { return (form==cmDocumentationEnums::ManForm ? + this->ManName.c_str() : this->Name.c_str()); } + + /** Return a pointer to the first entry of this section. */ + const std::vector &GetEntries() const + { return this->Entries; } + + /** Append an entry to this section. */ + void Append(const cmDocumentationEntry& entry) + { this->Entries.push_back(entry); } + void Append(const std::vector &entries) + { this->Entries.insert(this->Entries.end(),entries.begin(),entries.end()); } + + /** Append an entry to this section using NULL terminated chars */ + void Append(const char *[][3]); + void Append(const char *n, const char *b, const char *f); + + /** prepend some documentation to this section */ + void Prepend(const char *[][3]); + void Prepend(const std::vector &entries) + { this->Entries.insert(this->Entries.begin(), + entries.begin(),entries.end()); } + + +private: + std::string Name; + std::string ManName; + std::vector Entries; +}; + +#endif diff --git a/CMakeLua/Source/cmDumpDocumentation.cxx b/CMakeLua/Source/cmDumpDocumentation.cxx new file mode 100644 index 0000000..d5db8cc --- /dev/null +++ b/CMakeLua/Source/cmDumpDocumentation.cxx @@ -0,0 +1,155 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDumpDocumentation.cxx,v $ + Language: C++ + Date: $Date: 2007/12/13 22:56:49 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// Program extracts documentation describing commands from +// the CMake system. +// +#include "cmake.h" + +#include "cmDocumentation.h" +#include "cmVersion.h" + +//---------------------------------------------------------------------------- +static const char *cmDocumentationName[][3] = +{ + {0, + " DumpDocumentation - Dump documentation for CMake.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationUsage[][3] = +{ + {0, + " DumpDocumentation [filename]", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationDescription[][3] = +{ + {0, + "The \"DumpDocumentation\" executable is only available in the build " + "tree. It is used for testing, coverage, and documentation.", 0}, + CMAKE_STANDARD_INTRODUCTION, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char *cmDocumentationOptions[][3] = +{ + {"--all-for-coverage", + "Dump all documentation to stdout. For testing.", 0}, + {0,0,0} +}; + + +int DumpHTML(const char* outname) +{ + std::ofstream fout(outname); + if(!fout) + { + std::cerr << "failed to open output file: " << outname << "\n"; + cmSystemTools::ReportLastSystemError(""); + return -1; + } + + cmake cmi; + cmDocumentation doc; + std::vector commands; + cmi.GetCommandDocumentation(commands); + cmOStringStream str; + str << "Documentation for Commands of CMake " + << cmVersion::GetCMakeVersion(); + doc.SetSection(str.str().c_str(), commands); + doc.Print(cmDocumentation::HTMLForm, fout); + + return 0; +} + +int DumpForCoverageToStream(std::ostream& out) +{ + cmake cmi; + cmDocumentation doc; + std::vector commands; + std::vector generators; + cmi.GetCommandDocumentation(commands); + cmi.GetGeneratorDocumentation(generators); + doc.SetSection("Name",cmDocumentationName); + doc.SetSection("Usage",cmDocumentationUsage); + doc.SetSection("Description",cmDocumentationDescription); + doc.SetSection("options",cmDocumentationOptions); + doc.SetSection("Commands",commands); + doc.SetSection("Generators",generators); + doc.PrintDocumentation(cmDocumentation::Usage, out); + doc.PrintDocumentation(cmDocumentation::Full, out); + return 0; +} + +int DumpForCoverage(const char* outname) +{ + if(outname) + { + std::ofstream fout(outname); + if(!fout) + { + std::cerr << "failed to open output file: " << outname << "\n"; + cmSystemTools::ReportLastSystemError(""); + return -1; + } + return DumpForCoverageToStream(fout); + } + else + { + return DumpForCoverageToStream(std::cout); + } +} + +int main(int ac, char** av) +{ + cmSystemTools::EnableMSVCDebugHook(); + cmSystemTools::FindExecutableDirectory(av[0]); + const char* outname = "cmake.html"; + bool coverage = false; + if(ac > 1) + { + if(strcmp(av[1], "--all-for-coverage") == 0) + { + coverage = true; + if(ac > 2) + { + outname = av[2]; + } + else + { + outname = 0; + } + } + else + { + outname = av[1]; + } + } + + if(coverage) + { + return DumpForCoverage(outname); + } + else + { + return DumpHTML(outname); + } +} diff --git a/CMakeLua/Source/cmDynamicLoader.cxx b/CMakeLua/Source/cmDynamicLoader.cxx new file mode 100644 index 0000000..fa05d6b --- /dev/null +++ b/CMakeLua/Source/cmDynamicLoader.cxx @@ -0,0 +1,117 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDynamicLoader.cxx,v $ + Language: C++ + Date: $Date: 2006/03/16 22:09:08 $ + Version: $Revision: 1.29 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDynamicLoader.h" + +class cmDynamicLoaderCache +{ +public: + ~cmDynamicLoaderCache(); + void CacheFile(const char* path, + const cmsys::DynamicLoader::LibraryHandle&); + bool GetCacheFile(const char* path, cmsys::DynamicLoader::LibraryHandle&); + bool FlushCache(const char* path); + void FlushCache(); + static cmDynamicLoaderCache* GetInstance(); + +private: + std::map CacheMap; + static cmDynamicLoaderCache* Instance; +}; + +cmDynamicLoaderCache* cmDynamicLoaderCache::Instance = 0; + +cmDynamicLoaderCache::~cmDynamicLoaderCache() +{ +} + +void cmDynamicLoaderCache::CacheFile(const char* path, + const cmsys::DynamicLoader::LibraryHandle& p) +{ + cmsys::DynamicLoader::LibraryHandle h; + if ( this->GetCacheFile(path, h) ) + { + this->FlushCache(path); + } + this->CacheMap[path] = p; +} + +bool cmDynamicLoaderCache::GetCacheFile(const char* path, + cmsys::DynamicLoader::LibraryHandle& p) +{ + std::map::iterator it + = this->CacheMap.find(path); + if ( it != this->CacheMap.end() ) + { + p = it->second; + return true; + } + return false; +} + +bool cmDynamicLoaderCache::FlushCache(const char* path) +{ + std::map::iterator it + = this->CacheMap.find(path); + bool ret = false; + if ( it != this->CacheMap.end() ) + { + cmsys::DynamicLoader::CloseLibrary(it->second); + this->CacheMap.erase(it); + ret = true; + } + return ret; +} + +void cmDynamicLoaderCache::FlushCache() +{ + for ( std::map::iterator it + = this->CacheMap.begin(); + it != this->CacheMap.end(); it++ ) + { + cmsys::DynamicLoader::CloseLibrary(it->second); + } + delete cmDynamicLoaderCache::Instance; + cmDynamicLoaderCache::Instance = 0; +} + +cmDynamicLoaderCache* cmDynamicLoaderCache::GetInstance() +{ + if ( !cmDynamicLoaderCache::Instance ) + { + cmDynamicLoaderCache::Instance = new cmDynamicLoaderCache; + } + return cmDynamicLoaderCache::Instance; +} + +cmsys::DynamicLoader::LibraryHandle cmDynamicLoader::OpenLibrary( + const char* libname ) +{ + cmsys::DynamicLoader::LibraryHandle lh; + if ( cmDynamicLoaderCache::GetInstance()->GetCacheFile(libname, lh) ) + { + return lh; + } + lh = cmsys::DynamicLoader::OpenLibrary(libname); + cmDynamicLoaderCache::GetInstance()->CacheFile(libname, lh); + return lh; +} + +void cmDynamicLoader::FlushCache() +{ + cmDynamicLoaderCache::GetInstance()->FlushCache(); +} diff --git a/CMakeLua/Source/cmDynamicLoader.h b/CMakeLua/Source/cmDynamicLoader.h new file mode 100644 index 0000000..a4f5baf --- /dev/null +++ b/CMakeLua/Source/cmDynamicLoader.h @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmDynamicLoader.h,v $ + Language: C++ + Date: $Date: 2006/03/16 22:09:08 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// .NAME cmDynamicLoader - class interface to system dynamic libraries +// .SECTION Description +// cmDynamicLoader provides a portable interface to loading dynamic +// libraries into a process. + + +#ifndef __cmDynamicLoader_h +#define __cmDynamicLoader_h + +#include "cmStandardIncludes.h" + +#include + +class cmDynamicLoader +{ +public: + // Description: + // Load a dynamic library into the current process. + // The returned cmsys::DynamicLoader::LibraryHandle can be used to access + // the symbols in the library. + static cmsys::DynamicLoader::LibraryHandle OpenLibrary(const char*); + + // Description: + // Flush the cache of dynamic loader. + static void FlushCache(); + +protected: + cmDynamicLoader() {}; + ~cmDynamicLoader() {}; + +private: + cmDynamicLoader(const cmDynamicLoader&); // Not implemented. + void operator=(const cmDynamicLoader&); // Not implemented. +}; + +#endif diff --git a/CMakeLua/Source/cmElseCommand.cxx b/CMakeLua/Source/cmElseCommand.cxx new file mode 100644 index 0000000..ff4b88d --- /dev/null +++ b/CMakeLua/Source/cmElseCommand.cxx @@ -0,0 +1,26 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmElseCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.26 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmElseCommand.h" + +bool cmElseCommand::InitialPass(std::vector const&, + cmExecutionStatus &) +{ + this->SetError("An ELSE command was found outside of a proper " + "IF ENDIF structure. Or its arguments did not match " + "the opening IF command."); + return false; +} diff --git a/CMakeLua/Source/cmElseCommand.h b/CMakeLua/Source/cmElseCommand.h new file mode 100644 index 0000000..f21deeb --- /dev/null +++ b/CMakeLua/Source/cmElseCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmElseCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmElseCommand_h +#define cmElseCommand_h + +#include "cmIfCommand.h" + +/** \class cmElseCommand + * \brief ends an if block + * + * cmElseCommand ends an if block + */ +class cmElseCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmElseCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "else";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Starts the else portion of an if block."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " else(expression)\n" + "See the if command."; + } + + cmTypeMacro(cmElseCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmElseIfCommand.cxx b/CMakeLua/Source/cmElseIfCommand.cxx new file mode 100755 index 0000000..b685b0a --- /dev/null +++ b/CMakeLua/Source/cmElseIfCommand.cxx @@ -0,0 +1,25 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmElseIfCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmElseIfCommand.h" + +bool cmElseIfCommand::InitialPass(std::vector const&, + cmExecutionStatus &) +{ + this->SetError("An ELSEIF command was found outside of a proper " + "IF ENDIF structure."); + return false; +} diff --git a/CMakeLua/Source/cmElseIfCommand.h b/CMakeLua/Source/cmElseIfCommand.h new file mode 100755 index 0000000..ab8bfa4 --- /dev/null +++ b/CMakeLua/Source/cmElseIfCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmElseIfCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmElseIfCommand_h +#define cmElseIfCommand_h + +#include "cmIfCommand.h" + +/** \class cmElseIfCommand + * \brief ends an if block + * + * cmElseIfCommand ends an if block + */ +class cmElseIfCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmElseIfCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "elseif";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Starts the elseif portion of an if block."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " elseif(expression)\n" + "See the if command."; + } + + cmTypeMacro(cmElseIfCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmEnableLanguageCommand.cxx b/CMakeLua/Source/cmEnableLanguageCommand.cxx new file mode 100644 index 0000000..718723f --- /dev/null +++ b/CMakeLua/Source/cmEnableLanguageCommand.cxx @@ -0,0 +1,48 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEnableLanguageCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmEnableLanguageCommand.h" + +// cmEnableLanguageCommand +bool cmEnableLanguageCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + bool optional = false; + std::vector languages; + if(args.size() < 1 ) + { + this->SetError + ("ENABLE_LANGUAGE called with incorrect number of arguments"); + return false; + } + for (std::vector::const_iterator it = args.begin(); + it != args.end(); + ++it) + { + if ((*it) == "OPTIONAL") + { + optional = true; + } + else + { + languages.push_back(*it); + } + } + + this->Makefile->EnableLanguage(languages, optional); + return true; +} + diff --git a/CMakeLua/Source/cmEnableLanguageCommand.h b/CMakeLua/Source/cmEnableLanguageCommand.h new file mode 100644 index 0000000..9d07473 --- /dev/null +++ b/CMakeLua/Source/cmEnableLanguageCommand.h @@ -0,0 +1,81 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEnableLanguageCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmEnableLanguageCommand_h +#define cmEnableLanguageCommand_h + +#include "cmCommand.h" + +/** \class cmEnableLanguageCommand + * \brief Specify the name for this build project. + * + * cmEnableLanguageCommand is used to specify a name for this build project. + * It is defined once per set of CMakeList.txt files (including + * all subdirectories). Currently it just sets the name of the workspace + * file for Microsoft Visual C++ + */ +class cmEnableLanguageCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmEnableLanguageCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "enable_language";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Enable a language (CXX/C/Fortran/etc)"; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " enable_language(languageName [OPTIONAL] )\n" + "This command enables support for the named language in CMake. " + "This is the same as the project command but does not create " + "any of the extra variables that are created by the project command. " + "Example languages are CXX, C, Fortran.\n" + "If OPTIONAL is used, use the CMAKE__COMPILER_WORKS " + "variable to check whether the language has been enabled successfully."; + } + + cmTypeMacro(cmEnableLanguageCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmEnableTestingCommand.cxx b/CMakeLua/Source/cmEnableTestingCommand.cxx new file mode 100644 index 0000000..19c10b6 --- /dev/null +++ b/CMakeLua/Source/cmEnableTestingCommand.cxx @@ -0,0 +1,27 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEnableTestingCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmEnableTestingCommand.h" +#include "cmLocalGenerator.h" + +// we do this in the final pass so that we now the subdirs have all +// been defined +bool cmEnableTestingCommand::InitialPass(std::vector const&, + cmExecutionStatus &) +{ + this->Makefile->AddDefinition("CMAKE_TESTING_ENABLED","1"); + return true; +} diff --git a/CMakeLua/Source/cmEnableTestingCommand.h b/CMakeLua/Source/cmEnableTestingCommand.h new file mode 100644 index 0000000..856dc9a --- /dev/null +++ b/CMakeLua/Source/cmEnableTestingCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEnableTestingCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmEnableTestingCommand_h +#define cmEnableTestingCommand_h + +#include "cmCommand.h" + +/** \class cmEnableTestingCommand + * \brief Enable testing for this directory and below. + * + * Produce the output testfile. This produces a file in the build directory + * called CMakeTestfile with a syntax similar to CMakeLists.txt. It contains + * the SUBDIRS() and ADD_TEST() commands from the source CMakeLists.txt + * file with CMake variables expanded. Only the subdirs and tests + * within the valid control structures are replicated in Testfile + * (i.e. SUBDIRS() and ADD_TEST() commands within IF() commands that are + * not entered by CMake are not replicated in Testfile). + * Note that CTest expects to find this file in the build directory root; + * therefore, this command should be in the source directory root too. + */ +class cmEnableTestingCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmEnableTestingCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "enable_testing";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Enable testing for current directory and below."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " enable_testing()\n" + "Enables testing for this directory and below. " + "See also the add_test command. Note that ctest expects to find " + "a test file in the build directory root. Therefore, this command " + "should be in the source directory root."; + } + + cmTypeMacro(cmEnableTestingCommand, cmCommand); + +}; + + +#endif diff --git a/CMakeLua/Source/cmEndForEachCommand.cxx b/CMakeLua/Source/cmEndForEachCommand.cxx new file mode 100644 index 0000000..5eb6002 --- /dev/null +++ b/CMakeLua/Source/cmEndForEachCommand.cxx @@ -0,0 +1,28 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndForEachCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmEndForEachCommand.h" + +bool cmEndForEachCommand +::InvokeInitialPass(std::vector const&, + cmExecutionStatus &) +{ + this->SetError("An ENDFOREACH command was found outside of a proper " + "FOREACH ENDFOREACH structure. Or its arguments did " + "not match the opening FOREACH command."); + return false; +} + diff --git a/CMakeLua/Source/cmEndForEachCommand.h b/CMakeLua/Source/cmEndForEachCommand.h new file mode 100644 index 0000000..f9a8dd0 --- /dev/null +++ b/CMakeLua/Source/cmEndForEachCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndForEachCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmEndForEachCommand_h +#define cmEndForEachCommand_h + +#include "cmCommand.h" + +/** \class cmEndForEachCommand + * \brief ends an if block + * + * cmEndForEachCommand ends an if block + */ +class cmEndForEachCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmEndForEachCommand; + } + + /** + * Override cmCommand::InvokeInitialPass to get arguments before + * expansion. + */ + virtual bool InvokeInitialPass(std::vector const&, + cmExecutionStatus &); + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &) {return false;} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "endforeach";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Ends a list of commands in a FOREACH block."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " endforeach(expression)\n" + "See the FOREACH command."; + } + + cmTypeMacro(cmEndForEachCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmEndFunctionCommand.cxx b/CMakeLua/Source/cmEndFunctionCommand.cxx new file mode 100755 index 0000000..6a4afbc --- /dev/null +++ b/CMakeLua/Source/cmEndFunctionCommand.cxx @@ -0,0 +1,28 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndFunctionCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmEndFunctionCommand.h" + +bool cmEndFunctionCommand +::InvokeInitialPass(std::vector const&, + cmExecutionStatus &) +{ + this->SetError("An ENDFUNCTION command was found outside of a proper " + "FUNCTION ENDFUNCTION structure. Or its arguments did not " + "match the opening FUNCTION command."); + return false; +} + diff --git a/CMakeLua/Source/cmEndFunctionCommand.h b/CMakeLua/Source/cmEndFunctionCommand.h new file mode 100755 index 0000000..27e3aa1 --- /dev/null +++ b/CMakeLua/Source/cmEndFunctionCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndFunctionCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmEndFunctionCommand_h +#define cmEndFunctionCommand_h + +#include "cmCommand.h" + +/** \class cmEndFunctionCommand + * \brief ends an if block + * + * cmEndFunctionCommand ends an if block + */ +class cmEndFunctionCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmEndFunctionCommand; + } + + /** + * Override cmCommand::InvokeInitialPass to get arguments before + * expansion. + */ + virtual bool InvokeInitialPass(std::vector const&, + cmExecutionStatus &); + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &) {return false;} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "endfunction";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Ends a list of commands in a function block."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " endfunction(expression)\n" + "See the function command."; + } + + cmTypeMacro(cmEndFunctionCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmEndIfCommand.cxx b/CMakeLua/Source/cmEndIfCommand.cxx new file mode 100644 index 0000000..56c3acb --- /dev/null +++ b/CMakeLua/Source/cmEndIfCommand.cxx @@ -0,0 +1,34 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndIfCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmEndIfCommand.h" +#include // required for atof +bool cmEndIfCommand::InitialPass(std::vector const&, + cmExecutionStatus &) +{ + const char* versionValue + = this->Makefile->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION"); + if (!versionValue || (atof(versionValue) <= 1.4)) + { + return true; + } + + this->SetError("An ENDIF command was found outside of a proper " + "IF ENDIF structure. Or its arguments did not match " + "the opening IF command."); + return false; +} + diff --git a/CMakeLua/Source/cmEndIfCommand.h b/CMakeLua/Source/cmEndIfCommand.h new file mode 100644 index 0000000..23e9dfd --- /dev/null +++ b/CMakeLua/Source/cmEndIfCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndIfCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmEndIfCommand_h +#define cmEndIfCommand_h + +#include "cmIfCommand.h" + +/** \class cmEndIfCommand + * \brief ends an if block + * + * cmEndIfCommand ends an if block + */ +class cmEndIfCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmEndIfCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "endif";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Ends a list of commands in an if block."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " endif(expression)\n" + "See the if command."; + } + + cmTypeMacro(cmEndIfCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmEndMacroCommand.cxx b/CMakeLua/Source/cmEndMacroCommand.cxx new file mode 100755 index 0000000..1af9054 --- /dev/null +++ b/CMakeLua/Source/cmEndMacroCommand.cxx @@ -0,0 +1,28 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndMacroCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmEndMacroCommand.h" + +bool cmEndMacroCommand +::InvokeInitialPass(std::vector const&, + cmExecutionStatus &) +{ + this->SetError("An ENDMACRO command was found outside of a proper " + "MACRO ENDMACRO structure. Or its arguments did not " + "match the opening MACRO command."); + return false; +} + diff --git a/CMakeLua/Source/cmEndMacroCommand.h b/CMakeLua/Source/cmEndMacroCommand.h new file mode 100755 index 0000000..df4b4aa --- /dev/null +++ b/CMakeLua/Source/cmEndMacroCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndMacroCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmEndMacroCommand_h +#define cmEndMacroCommand_h + +#include "cmCommand.h" + +/** \class cmEndMacroCommand + * \brief ends an if block + * + * cmEndMacroCommand ends an if block + */ +class cmEndMacroCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmEndMacroCommand; + } + + /** + * Override cmCommand::InvokeInitialPass to get arguments before + * expansion. + */ + virtual bool InvokeInitialPass(std::vector const&, + cmExecutionStatus &); + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &) {return false;} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "endmacro";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Ends a list of commands in a macro block."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " endmacro(expression)\n" + "See the macro command."; + } + + cmTypeMacro(cmEndMacroCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmEndWhileCommand.cxx b/CMakeLua/Source/cmEndWhileCommand.cxx new file mode 100644 index 0000000..31dd43a --- /dev/null +++ b/CMakeLua/Source/cmEndWhileCommand.cxx @@ -0,0 +1,28 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndWhileCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmEndWhileCommand.h" + +bool cmEndWhileCommand +::InvokeInitialPass(std::vector const&, + cmExecutionStatus &) +{ + this->SetError("An ENDWHILE command was found outside of a proper " + "WHILE ENDWHILE structure. Or its arguments did not " + "match the opening WHILE command."); + return false; +} + diff --git a/CMakeLua/Source/cmEndWhileCommand.h b/CMakeLua/Source/cmEndWhileCommand.h new file mode 100644 index 0000000..99bb7d6 --- /dev/null +++ b/CMakeLua/Source/cmEndWhileCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmEndWhileCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmEndWhileCommand_h +#define cmEndWhileCommand_h + +#include "cmCommand.h" + +/** \class cmEndWhileCommand + * \brief ends a while loop + * + * cmEndWhileCommand ends a while loop + */ +class cmEndWhileCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmEndWhileCommand; + } + + /** + * Override cmCommand::InvokeInitialPass to get arguments before + * expansion. + */ + virtual bool InvokeInitialPass(std::vector const&, + cmExecutionStatus &status); + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &) {return false;} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "endwhile";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Ends a list of commands in a while block."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " endwhile(expression)\n" + "See the while command."; + } + + cmTypeMacro(cmEndWhileCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmExecProgramCommand.cxx b/CMakeLua/Source/cmExecProgramCommand.cxx new file mode 100644 index 0000000..7f91989 --- /dev/null +++ b/CMakeLua/Source/cmExecProgramCommand.cxx @@ -0,0 +1,150 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExecProgramCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExecProgramCommand.h" +#include "cmSystemTools.h" + +// cmExecProgramCommand +bool cmExecProgramCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::string arguments; + bool doingargs = false; + int count = 0; + std::string output_variable; + bool haveoutput_variable = false; + std::string return_variable; + bool havereturn_variable = false; + for(size_t i=0; i < args.size(); ++i) + { + if(args[i] == "OUTPUT_VARIABLE") + { + count++; + doingargs = false; + havereturn_variable = false; + haveoutput_variable = true; + } + else if ( haveoutput_variable ) + { + if ( output_variable.size() > 0 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + output_variable = args[i]; + haveoutput_variable = false; + count ++; + } + else if(args[i] == "RETURN_VALUE") + { + count++; + doingargs = false; + haveoutput_variable = false; + havereturn_variable = true; + } + else if ( havereturn_variable ) + { + if ( return_variable.size() > 0 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + return_variable = args[i]; + havereturn_variable = false; + count ++; + } + else if(args[i] == "ARGS") + { + count++; + havereturn_variable = false; + haveoutput_variable = false; + doingargs = true; + } + else if(doingargs) + { + arguments += args[i]; + arguments += " "; + count++; + } + } + + std::string command; + if(arguments.size()) + { + command = cmSystemTools::ConvertToRunCommandPath(args[0].c_str()); + command += " "; + command += arguments; + } + else + { + command = args[0]; + } + bool verbose = true; + if(output_variable.size() > 0) + { + verbose = false; + } + int retVal = 0; + std::string output; + bool result = true; + if(args.size() - count == 2) + { + cmSystemTools::MakeDirectory(args[1].c_str()); + result = cmSystemTools::RunCommand(command.c_str(), output, retVal, + args[1].c_str(), verbose); + } + else + { + result = cmSystemTools::RunCommand(command.c_str(), output, + retVal, 0, verbose); + } + if(!result) + { + retVal = -1; + } + + if ( output_variable.size() > 0 ) + { + std::string::size_type first = output.find_first_not_of(" \n\t\r"); + std::string::size_type last = output.find_last_not_of(" \n\t\r"); + if(first == std::string::npos) + { + first = 0; + } + if(last == std::string::npos) + { + last = output.size()-1; + } + + std::string coutput = std::string(output, first, last-first+1); + this->Makefile->AddDefinition(output_variable.c_str(), coutput.c_str()); + } + + if ( return_variable.size() > 0 ) + { + char buffer[100]; + sprintf(buffer, "%d", retVal); + this->Makefile->AddDefinition(return_variable.c_str(), buffer); + } + + return true; +} + diff --git a/CMakeLua/Source/cmExecProgramCommand.h b/CMakeLua/Source/cmExecProgramCommand.h new file mode 100644 index 0000000..2f56c4d --- /dev/null +++ b/CMakeLua/Source/cmExecProgramCommand.h @@ -0,0 +1,100 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExecProgramCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExecProgramCommand_h +#define cmExecProgramCommand_h + +#include "cmCommand.h" + +/** \class cmExecProgramCommand + * \brief Command that adds a target to the build system. + * + * cmExecProgramCommand adds an extra target to the build system. + * This is useful when you would like to add special + * targets like "install,", "clean," and so on. + */ +class cmExecProgramCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmExecProgramCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() + {return "exec_program";} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return + "Deprecated. Use the execute_process() command instead."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "Run an executable program during the processing of the CMakeList.txt" + " file.\n" + " exec_program(Executable [directory in which to run]\n" + " [ARGS ]\n" + " [OUTPUT_VARIABLE ]\n" + " [RETURN_VALUE ])\n" + "The executable is run in the optionally specified directory. The " + "executable can include arguments if it is double quoted, but it is " + "better to use the optional ARGS argument to specify arguments to the " + "program. This is because cmake will then be able to escape spaces " + "in the executable path. An optional argument OUTPUT_VARIABLE " + "specifies a variable in which to store the output. " + "To capture the return value of the execution, provide a RETURN_VALUE. " + "If OUTPUT_VARIABLE is specified, then no output will go to the " + "stdout/stderr of the console running cmake.\n" + ; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmExecProgramCommand, cmCommand); +}; + +#endif diff --git a/CMakeLua/Source/cmExecuteProcessCommand.cxx b/CMakeLua/Source/cmExecuteProcessCommand.cxx new file mode 100644 index 0000000..b60e768 --- /dev/null +++ b/CMakeLua/Source/cmExecuteProcessCommand.cxx @@ -0,0 +1,427 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExecuteProcessCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExecuteProcessCommand.h" +#include "cmSystemTools.h" + +#include + +#include /* isspace */ + +static bool cmExecuteProcessCommandIsWhitespace(char c) +{ + return (isspace((int)c) || c == '\n' || c == '\r'); +} + +void cmExecuteProcessCommandFixText(std::vector& output, + bool strip_trailing_whitespace); +void cmExecuteProcessCommandAppend(std::vector& output, + const char* data, int length); + +// cmExecuteProcessCommand +bool cmExecuteProcessCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::vector< std::vector > cmds; + std::string arguments; + bool doing_command = false; + size_t command_index = 0; + bool output_quiet = false; + bool error_quiet = false; + bool output_strip_trailing_whitespace = false; + bool error_strip_trailing_whitespace = false; + std::string timeout_string; + std::string input_file; + std::string output_file; + std::string error_file; + std::string output_variable; + std::string error_variable; + std::string result_variable; + std::string working_directory; + for(size_t i=0; i < args.size(); ++i) + { + if(args[i] == "COMMAND") + { + doing_command = true; + command_index = cmds.size(); + cmds.push_back(std::vector()); + } + else if(args[i] == "OUTPUT_VARIABLE") + { + doing_command = false; + if(++i < args.size()) + { + output_variable = args[i]; + } + else + { + this->SetError(" called with no value for OUTPUT_VARIABLE."); + return false; + } + } + else if(args[i] == "ERROR_VARIABLE") + { + doing_command = false; + if(++i < args.size()) + { + error_variable = args[i]; + } + else + { + this->SetError(" called with no value for ERROR_VARIABLE."); + return false; + } + } + else if(args[i] == "RESULT_VARIABLE") + { + doing_command = false; + if(++i < args.size()) + { + result_variable = args[i]; + } + else + { + this->SetError(" called with no value for RESULT_VARIABLE."); + return false; + } + } + else if(args[i] == "WORKING_DIRECTORY") + { + doing_command = false; + if(++i < args.size()) + { + working_directory = args[i]; + } + else + { + this->SetError(" called with no value for WORKING_DIRECTORY."); + return false; + } + } + else if(args[i] == "INPUT_FILE") + { + doing_command = false; + if(++i < args.size()) + { + input_file = args[i]; + } + else + { + this->SetError(" called with no value for INPUT_FILE."); + return false; + } + } + else if(args[i] == "OUTPUT_FILE") + { + doing_command = false; + if(++i < args.size()) + { + output_file = args[i]; + } + else + { + this->SetError(" called with no value for OUTPUT_FILE."); + return false; + } + } + else if(args[i] == "ERROR_FILE") + { + doing_command = false; + if(++i < args.size()) + { + error_file = args[i]; + } + else + { + this->SetError(" called with no value for ERROR_FILE."); + return false; + } + } + else if(args[i] == "TIMEOUT") + { + doing_command = false; + if(++i < args.size()) + { + timeout_string = args[i]; + } + else + { + this->SetError(" called with no value for TIMEOUT."); + return false; + } + } + else if(args[i] == "OUTPUT_QUIET") + { + doing_command = false; + output_quiet = true; + } + else if(args[i] == "ERROR_QUIET") + { + doing_command = false; + error_quiet = true; + } + else if(args[i] == "OUTPUT_STRIP_TRAILING_WHITESPACE") + { + doing_command = false; + output_strip_trailing_whitespace = true; + } + else if(args[i] == "ERROR_STRIP_TRAILING_WHITESPACE") + { + doing_command = false; + error_strip_trailing_whitespace = true; + } + else if(doing_command) + { + cmds[command_index].push_back(args[i].c_str()); + } + else + { + cmOStringStream e; + e << " given unknown argument \"" << args[i] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + + if ( !this->Makefile->CanIWriteThisFile(output_file.c_str()) ) + { + std::string e = "attempted to output into a file: " + output_file + + " into a source directory."; + this->SetError(e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + + // Check for commands given. + if(cmds.empty()) + { + this->SetError(" called with no COMMAND argument."); + return false; + } + for(unsigned int i=0; i < cmds.size(); ++i) + { + if(cmds[i].empty()) + { + this->SetError(" given COMMAND argument with no value."); + return false; + } + else + { + // Add the null terminating pointer to the command argument list. + cmds[i].push_back(0); + } + } + + // Parse the timeout string. + double timeout = -1; + if(!timeout_string.empty()) + { + if(sscanf(timeout_string.c_str(), "%lg", &timeout) != 1) + { + this->SetError(" called with TIMEOUT value that could not be parsed."); + return false; + } + } + + // Create a process instance. + cmsysProcess* cp = cmsysProcess_New(); + + // Set the command sequence. + for(unsigned int i=0; i < cmds.size(); ++i) + { + cmsysProcess_AddCommand(cp, &*cmds[i].begin()); + } + + // Set the process working directory. + if(!working_directory.empty()) + { + cmsysProcess_SetWorkingDirectory(cp, working_directory.c_str()); + } + + // Always hide the process window. + cmsysProcess_SetOption(cp, cmsysProcess_Option_HideWindow, 1); + + // Check the output variables. + bool merge_output = (output_variable == error_variable); + if(error_variable.empty() && !error_quiet) + { + cmsysProcess_SetPipeShared(cp, cmsysProcess_Pipe_STDERR, 1); + } + if(!input_file.empty()) + { + cmsysProcess_SetPipeFile(cp, cmsysProcess_Pipe_STDIN, input_file.c_str()); + } + if(!output_file.empty()) + { + cmsysProcess_SetPipeFile(cp, cmsysProcess_Pipe_STDOUT, + output_file.c_str()); + } + if(!error_file.empty()) + { + cmsysProcess_SetPipeFile(cp, cmsysProcess_Pipe_STDERR, + error_file.c_str()); + } + + // Set the timeout if any. + if(timeout >= 0) + { + cmsysProcess_SetTimeout(cp, timeout); + } + + // Start the process. + cmsysProcess_Execute(cp); + + // Read the process output. + std::vector tempOutput; + std::vector tempError; + int length; + char* data; + int p; + while((p = cmsysProcess_WaitForData(cp, &data, &length, 0), p)) + { + // Put the output in the right place. + if(p == cmsysProcess_Pipe_STDOUT && !output_quiet || + p == cmsysProcess_Pipe_STDERR && !error_quiet && merge_output) + { + if(output_variable.empty()) + { + cmSystemTools::Stdout(data, length); + } + else + { + cmExecuteProcessCommandAppend(tempOutput, data, length); + } + } + else if(p == cmsysProcess_Pipe_STDERR && !error_quiet) + { + if(!error_variable.empty()) + { + cmExecuteProcessCommandAppend(tempError, data, length); + } + } + } + + // All output has been read. Wait for the process to exit. + cmsysProcess_WaitForExit(cp, 0); + + // Fix the text in the output strings. + cmExecuteProcessCommandFixText(tempOutput, + output_strip_trailing_whitespace); + cmExecuteProcessCommandFixText(tempError, + error_strip_trailing_whitespace); + + // Store the output obtained. + if(!output_variable.empty() && tempOutput.size()) + { + this->Makefile->AddDefinition(output_variable.c_str(), + &*tempOutput.begin()); + } + if(!merge_output && !error_variable.empty() && tempError.size()) + { + this->Makefile->AddDefinition(error_variable.c_str(), + &*tempError.begin()); + } + + // Store the result of running the process. + if(!result_variable.empty()) + { + switch(cmsysProcess_GetState(cp)) + { + case cmsysProcess_State_Exited: + { + int v = cmsysProcess_GetExitValue(cp); + char buf[100]; + sprintf(buf, "%d", v); + this->Makefile->AddDefinition(result_variable.c_str(), buf); + } + break; + case cmsysProcess_State_Exception: + this->Makefile->AddDefinition(result_variable.c_str(), + cmsysProcess_GetExceptionString(cp)); + break; + case cmsysProcess_State_Error: + this->Makefile->AddDefinition(result_variable.c_str(), + cmsysProcess_GetErrorString(cp)); + break; + case cmsysProcess_State_Expired: + this->Makefile->AddDefinition(result_variable.c_str(), + "Process terminated due to timeout"); + break; + } + } + + // Delete the process instance. + cmsysProcess_Delete(cp); + + return true; +} + +//---------------------------------------------------------------------------- +void cmExecuteProcessCommandFixText(std::vector& output, + bool strip_trailing_whitespace) +{ + // Remove \0 characters and the \r part of \r\n pairs. + unsigned int in_index = 0; + unsigned int out_index = 0; + while(in_index < output.size()) + { + char c = output[in_index++]; + if((c != '\r' || !(in_index < output.size() && output[in_index] == '\n')) + && c != '\0') + { + output[out_index++] = c; + } + } + + // Remove trailing whitespace if requested. + if(strip_trailing_whitespace) + { + while(out_index > 0 && + cmExecuteProcessCommandIsWhitespace(output[out_index-1])) + { + --out_index; + } + } + + // Shrink the vector to the size needed. + output.resize(out_index); + + // Put a terminator on the text string. + output.push_back('\0'); +} + +//---------------------------------------------------------------------------- +void cmExecuteProcessCommandAppend(std::vector& output, + const char* data, int length) +{ +#if defined(__APPLE__) + // HACK on Apple to work around bug with inserting at the + // end of an empty vector. This resulted in random failures + // that were hard to reproduce. + if(output.empty() && length > 0) + { + output.push_back(data[0]); + ++data; + --length; + } +#endif + output.insert(output.end(), data, data+length); +} diff --git a/CMakeLua/Source/cmExecuteProcessCommand.h b/CMakeLua/Source/cmExecuteProcessCommand.h new file mode 100644 index 0000000..e432452 --- /dev/null +++ b/CMakeLua/Source/cmExecuteProcessCommand.h @@ -0,0 +1,118 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExecuteProcessCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExecuteProcessCommand_h +#define cmExecuteProcessCommand_h + +#include "cmCommand.h" + +/** \class cmExecuteProcessCommand + * \brief Command that adds a target to the build system. + * + * cmExecuteProcessCommand is a CMake language interface to the KWSys + * Process Execution implementation. + */ +class cmExecuteProcessCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmExecuteProcessCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() + {return "execute_process";} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Execute one or more child processes."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " execute_process(COMMAND [args1...]]\n" + " [COMMAND [args2...] [...]]\n" + " [WORKING_DIRECTORY ]\n" + " [TIMEOUT ]\n" + " [RESULT_VARIABLE ]\n" + " [OUTPUT_VARIABLE ]\n" + " [ERROR_VARIABLE ]\n" + " [INPUT_FILE ]\n" + " [OUTPUT_FILE ]\n" + " [ERROR_FILE ]\n" + " [OUTPUT_QUIET]\n" + " [ERROR_QUIET]\n" + " [OUTPUT_STRIP_TRAILING_WHITESPACE]\n" + " [ERROR_STRIP_TRAILING_WHITESPACE])\n" + "Runs the given sequence of one or more commands with the standard " + "output of each process piped to the standard input of the next. " + "A single standard error pipe is used for all processes. " + "If WORKING_DIRECTORY is given the named directory will be set as " + "the current working directory of the child processes. " + "If TIMEOUT is given the child processes will be terminated if they " + "do not finish in the specified number of seconds " + "(fractions are allowed). " + "If RESULT_VARIABLE is given the variable will be set to contain " + "the result of running the processes. This will be an integer return " + "code from the last child or a string describing an error condition. " + "If OUTPUT_VARIABLE or ERROR_VARIABLE are given the variable named " + "will be set with the contents of the standard output and standard " + "error pipes respectively. If the same variable is named for both " + "pipes their output will be merged in the order produced. " + "If INPUT_FILE, OUTPUT_FILE, or ERROR_FILE is given the file named " + "will be attached to the standard input of the first process, " + "standard output of the last process, or standard error of all " + "processes respectively. " + "If OUTPUT_QUIET or ERROR_QUIET is given then the standard output " + "or standard error results will be quietly ignored. " + "If more than one OUTPUT_* or ERROR_* option is given for the same " + "pipe the precedence is not specified. " + "If no OUTPUT_* or ERROR_* options are given the output will be shared " + "with the corresponding pipes of the CMake process itself.\n" + "The execute_process command is a newer more powerful version of " + "exec_program, but the old command has been kept for compatibility." + ; + } + + cmTypeMacro(cmExecuteProcessCommand, cmCommand); +}; + +#endif diff --git a/CMakeLua/Source/cmExecutionStatus.h b/CMakeLua/Source/cmExecutionStatus.h new file mode 100755 index 0000000..022380c --- /dev/null +++ b/CMakeLua/Source/cmExecutionStatus.h @@ -0,0 +1,53 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExecutionStatus.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:26 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExecutionStatus_h +#define cmExecutionStatus_h + +#include "cmObject.h" + +/** \class cmExecutionStatus + * \brief Superclass for all command status classes + * + * when a command is involked it may set values on a command status instance + */ +class cmExecutionStatus : public cmObject +{ +public: + cmTypeMacro(cmExecutionStatus, cmObject); + + cmExecutionStatus() { this->Clear();}; + + virtual void SetReturnInvoked(bool val) + { this->ReturnInvoked = val; } + virtual bool GetReturnInvoked() + { return this->ReturnInvoked; } + + virtual void SetBreakInvoked(bool val) + { this->BreakInvoked = val; } + virtual bool GetBreakInvoked() + { return this->BreakInvoked; } + + virtual void Clear() + { this->ReturnInvoked = false; this->BreakInvoked = false; } + + +protected: + bool ReturnInvoked; + bool BreakInvoked; +}; + +#endif diff --git a/CMakeLua/Source/cmExportBuildFileGenerator.cxx b/CMakeLua/Source/cmExportBuildFileGenerator.cxx new file mode 100644 index 0000000..6903f28 --- /dev/null +++ b/CMakeLua/Source/cmExportBuildFileGenerator.cxx @@ -0,0 +1,140 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportBuildFileGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExportBuildFileGenerator.h" + +#include "cmExportCommand.h" + +//---------------------------------------------------------------------------- +cmExportBuildFileGenerator::cmExportBuildFileGenerator() +{ + this->ExportCommand = 0; +} + +//---------------------------------------------------------------------------- +bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os) +{ + // Create all the imported targets. + for(std::vector::const_iterator + tei = this->Exports->begin(); + tei != this->Exports->end(); ++tei) + { + cmTarget* te = *tei; + this->ExportedTargets.insert(te); + this->GenerateImportTargetCode(os, te); + } + + // Generate import file content for each configuration. + for(std::vector::const_iterator + ci = this->Configurations.begin(); + ci != this->Configurations.end(); ++ci) + { + this->GenerateImportConfig(os, ci->c_str()); + } + + return true; +} + +//---------------------------------------------------------------------------- +void +cmExportBuildFileGenerator +::GenerateImportTargetsConfig(std::ostream& os, + const char* config, std::string const& suffix) +{ + for(std::vector::const_iterator + tei = this->Exports->begin(); + tei != this->Exports->end(); ++tei) + { + // Collect import properties for this target. + cmTarget* target = *tei; + ImportPropertyMap properties; + this->SetImportLocationProperty(config, suffix, target, properties); + if(!properties.empty()) + { + // Get the rest of the target details. + this->SetImportDetailProperties(config, suffix, + target, properties); + + // TOOD: PUBLIC_HEADER_LOCATION + // This should wait until the build feature propagation stuff + // is done. Then this can be a propagated include directory. + // this->GenerateImportProperty(config, te->HeaderGenerator, + // properties); + + // Generate code in the export file. + this->GenerateImportPropertyCode(os, config, target, properties); + } + } +} + +//---------------------------------------------------------------------------- +void +cmExportBuildFileGenerator +::SetImportLocationProperty(const char* config, std::string const& suffix, + cmTarget* target, ImportPropertyMap& properties) +{ + // Get the makefile in which to lookup target information. + cmMakefile* mf = target->GetMakefile(); + + // Add the main target file. + { + std::string prop = "IMPORTED_LOCATION"; + prop += suffix; + std::string value = target->GetFullPath(config, false); + if(target->IsAppBundleOnApple()) + { + value += ".app/Contents/MacOS/"; + value += target->GetFullName(config, false); + } + properties[prop] = value; + } + + // Check whether this is a DLL platform. + bool dll_platform = + (mf->IsOn("WIN32") || mf->IsOn("CYGWIN") || mf->IsOn("MINGW")); + + // Add the import library for windows DLLs. + if(dll_platform && + (target->GetType() == cmTarget::SHARED_LIBRARY || + target->IsExecutableWithExports()) && + mf->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX")) + { + std::string prop = "IMPORTED_IMPLIB"; + prop += suffix; + std::string value = target->GetFullPath(config, true); + properties[prop] = value; + } +} + +//---------------------------------------------------------------------------- +void +cmExportBuildFileGenerator +::ComplainAboutMissingTarget(cmTarget* depender, + cmTarget* dependee) +{ + if(!this->ExportCommand || !this->ExportCommand->ErrorMessage.empty()) + { + return; + } + + cmOStringStream e; + e << "called with target \"" << depender->GetName() + << "\" which requires target \"" << dependee->GetName() + << "\" that is not in the export list.\n" + << "If the required target is not easy to reference in this call, " + << "consider using the APPEND option with multiple separate calls."; + this->ExportCommand->ErrorMessage = e.str(); +} diff --git a/CMakeLua/Source/cmExportBuildFileGenerator.h b/CMakeLua/Source/cmExportBuildFileGenerator.h new file mode 100644 index 0000000..b595c3e --- /dev/null +++ b/CMakeLua/Source/cmExportBuildFileGenerator.h @@ -0,0 +1,66 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportBuildFileGenerator.h,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExportBuildFileGenerator_h +#define cmExportBuildFileGenerator_h + +#include "cmExportFileGenerator.h" + +class cmExportCommand; + +/** \class cmExportBuildFileGenerator + * \brief Generate a file exporting targets from a build tree. + * + * cmExportBuildFileGenerator generates a file exporting targets from + * a build tree. A single file exports information for all + * configurations built. + * + * This is used to implement the EXPORT() command. + */ +class cmExportBuildFileGenerator: public cmExportFileGenerator +{ +public: + cmExportBuildFileGenerator(); + + /** Set the list of targets to export. */ + void SetExports(std::vector const* exports) + { this->Exports = exports; } + + /** Set whether to append generated code to the output file. */ + void SetAppendMode(bool append) { this->AppendMode = append; } + + /** Set the command instance through which errors should be reported. */ + void SetCommand(cmExportCommand* cmd) { this->ExportCommand = cmd; } +protected: + // Implement virtual methods from the superclass. + virtual bool GenerateMainFile(std::ostream& os); + virtual void GenerateImportTargetsConfig(std::ostream& os, + const char* config, + std::string const& suffix); + virtual void ComplainAboutMissingTarget(cmTarget* depender, + cmTarget* dependee); + + /** Fill in properties indicating built file locations. */ + void SetImportLocationProperty(const char* config, + std::string const& suffix, + cmTarget* target, + ImportPropertyMap& properties); + + std::vector const* Exports; + cmExportCommand* ExportCommand; +}; + +#endif diff --git a/CMakeLua/Source/cmExportCommand.cxx b/CMakeLua/Source/cmExportCommand.cxx new file mode 100644 index 0000000..4b2e36d --- /dev/null +++ b/CMakeLua/Source/cmExportCommand.cxx @@ -0,0 +1,186 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 22:25:52 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExportCommand.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmGeneratedFileStream.h" +#include "cmake.h" + +#include "cmExportBuildFileGenerator.h" + +cmExportCommand::cmExportCommand() +:cmCommand() +,ArgumentGroup() +,Targets(&Helper, "TARGETS") +,Append(&Helper, "APPEND", &ArgumentGroup) +,Namespace(&Helper, "NAMESPACE", &ArgumentGroup) +,Filename(&Helper, "FILE", &ArgumentGroup) +{ + // at first TARGETS + this->Targets.Follows(0); + // and after that the other options in any order + this->ArgumentGroup.Follows(&this->Targets); +} + + +// cmExportCommand +bool cmExportCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with too few arguments"); + return false; + } + + std::vector unknownArgs; + this->Helper.Parse(&args, &unknownArgs); + + if (!unknownArgs.empty()) + { + this->SetError("Unknown arguments."); + return false; + } + + if (this->Targets.WasFound() == false) + { + this->SetError("TARGETS option missing."); + return false; + } + + if(!this->Filename.WasFound()) + { + this->SetError("FILE option missing."); + return false; + } + + // Make sure the file has a .cmake extension. + if(cmSystemTools::GetFilenameLastExtension(this->Filename.GetCString()) + != ".cmake") + { + cmOStringStream e; + e << "FILE option given filename \"" << this->Filename.GetString() + << "\" which does not have an extension of \".cmake\".\n"; + this->SetError(e.str().c_str()); + return false; + } + + // Get the file to write. + std::string fname = this->Filename.GetString(); + if(cmSystemTools::FileIsFullPath(fname.c_str())) + { + if(!this->Makefile->CanIWriteThisFile(fname.c_str())) + { + cmOStringStream e; + e << "FILE option given filename \"" << fname + << "\" which is in the source tree.\n"; + this->SetError(e.str().c_str()); + return false; + } + } + else + { + // Interpret relative paths with respect to the current build dir. + fname = this->Makefile->GetCurrentOutputDirectory(); + fname += "/"; + fname += this->Filename.GetString(); + } + + // Collect the targets to be exported. + std::vector targets; + for(std::vector::const_iterator + currentTarget = this->Targets.GetVector().begin(); + currentTarget != this->Targets.GetVector().end(); + ++currentTarget) + { + if(cmTarget* target = + this->Makefile->GetLocalGenerator()-> + GetGlobalGenerator()->FindTarget(0, currentTarget->c_str())) + { + if((target->GetType() == cmTarget::EXECUTABLE) || + (target->GetType() == cmTarget::STATIC_LIBRARY) || + (target->GetType() == cmTarget::SHARED_LIBRARY) || + (target->GetType() == cmTarget::MODULE_LIBRARY)) + { + targets.push_back(target); + } + else + { + cmOStringStream e; + e << "given target \"" << *currentTarget + << "\" which is not an executable or library."; + this->SetError(e.str().c_str()); + return false; + } + } + else + { + cmOStringStream e; + e << "given target \"" << *currentTarget + << "\" which is not built by this project."; + this->SetError(e.str().c_str()); + return false; + } + } + + // Setup export file generation. + cmExportBuildFileGenerator ebfg; + ebfg.SetExportFile(fname.c_str()); + ebfg.SetNamespace(this->Namespace.GetCString()); + ebfg.SetAppendMode(this->Append.IsEnabled()); + ebfg.SetExports(&targets); + ebfg.SetCommand(this); + + // Compute the set of configurations exported. + if(const char* types = + this->Makefile->GetDefinition("CMAKE_CONFIGURATION_TYPES")) + { + std::vector configurationTypes; + cmSystemTools::ExpandListArgument(types, configurationTypes); + for(std::vector::const_iterator + ci = configurationTypes.begin(); + ci != configurationTypes.end(); ++ci) + { + ebfg.AddConfiguration(ci->c_str()); + } + } + else if(const char* config = + this->Makefile->GetDefinition("CMAKE_BUILD_TYPE")) + { + ebfg.AddConfiguration(config); + } + else + { + ebfg.AddConfiguration(""); + } + + // Generate the import file. + if(!ebfg.GenerateImportFile()) + { + this->SetError("could not write export file."); + return false; + } + + // Report generated error message if any. + if(!this->ErrorMessage.empty()) + { + this->SetError(this->ErrorMessage.c_str()); + return false; + } + + return true; +} diff --git a/CMakeLua/Source/cmExportCommand.h b/CMakeLua/Source/cmExportCommand.h new file mode 100644 index 0000000..5ad5019 --- /dev/null +++ b/CMakeLua/Source/cmExportCommand.h @@ -0,0 +1,104 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/30 22:25:52 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExportCommand_h +#define cmExportCommand_h + +#include "cmCommand.h" + +class cmExportBuildFileGenerator; + +/** \class cmExportLibraryDependenciesCommand + * \brief Add a test to the lists of tests to run. + * + * cmExportLibraryDependenciesCommand adds a test to the list of tests to run + * + */ +class cmExportCommand : public cmCommand +{ +public: + cmExportCommand(); + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmExportCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "export";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return + "Export targets from the build tree for use by outside projects."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " export(TARGETS [target1 [target2 [...]]] [NAMESPACE ]\n" + " [APPEND] FILE )\n" + "Create a file that may be included by outside projects to " + "import targets from the current project's build tree. " + "This is useful during cross-compiling to build utility executables " + "that can run on the host platform in one project and then import " + "them into another project being compiled for the target platform. " + "If the NAMESPACE option is given the string will be " + "prepended to all target names written to the file. " + "If the APPEND option is given the generated code will be appended " + "to the file instead of overwriting it. " + "If a library target is included in the export but " + "a target to which it links is not included the behavior is " + "unspecified." + "\n" + "The file created by this command is specific to the build tree and " + "should never be installed. " + "See the install(EXPORT) command to export targets from an " + "installation tree."; + } + + cmTypeMacro(cmExportCommand, cmCommand); + +private: + cmCommandArgumentGroup ArgumentGroup; + cmCAStringVector Targets; + cmCAEnabler Append; + cmCAString Namespace; + cmCAString Filename; + + friend class cmExportBuildFileGenerator; + std::string ErrorMessage; +}; + + +#endif diff --git a/CMakeLua/Source/cmExportFileGenerator.cxx b/CMakeLua/Source/cmExportFileGenerator.cxx new file mode 100644 index 0000000..37f1c39 --- /dev/null +++ b/CMakeLua/Source/cmExportFileGenerator.cxx @@ -0,0 +1,390 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportFileGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExportFileGenerator.h" + +#include "cmGeneratedFileStream.h" +#include "cmMakefile.h" +#include "cmSystemTools.h" +#include "cmTarget.h" + +#include + +//---------------------------------------------------------------------------- +cmExportFileGenerator::cmExportFileGenerator() +{ + this->AppendMode = false; +} + +//---------------------------------------------------------------------------- +void cmExportFileGenerator::AddConfiguration(const char* config) +{ + this->Configurations.push_back(config); +} + +//---------------------------------------------------------------------------- +void cmExportFileGenerator::SetExportFile(const char* mainFile) +{ + this->MainImportFile = mainFile; + this->FileDir = + cmSystemTools::GetFilenamePath(this->MainImportFile); + this->FileBase = + cmSystemTools::GetFilenameWithoutLastExtension(this->MainImportFile); + this->FileExt = + cmSystemTools::GetFilenameLastExtension(this->MainImportFile); +} + +//---------------------------------------------------------------------------- +bool cmExportFileGenerator::GenerateImportFile() +{ + // Open the output file to generate it. + cmsys::auto_ptr foutPtr; + if(this->AppendMode) + { + // Open for append. + cmsys::auto_ptr + ap(new std::ofstream(this->MainImportFile.c_str(), std::ios::app)); + foutPtr = ap; + } + else + { + // Generate atomically and with copy-if-different. + cmsys::auto_ptr + ap(new cmGeneratedFileStream(this->MainImportFile.c_str(), true)); + ap->SetCopyIfDifferent(true); + foutPtr = ap; + } + if(!foutPtr.get() || !*foutPtr) + { + std::string se = cmSystemTools::GetLastSystemError(); + cmOStringStream e; + e << "cannot write to file \"" << this->MainImportFile + << "\": " << se; + cmSystemTools::Error(e.str().c_str()); + return false; + } + std::ostream& os = *foutPtr; + + // Start with the import file header. + this->GenerateImportHeaderCode(os); + + // Create all the imported targets. + bool result = this->GenerateMainFile(os); + + // End with the import file footer. + this->GenerateImportFooterCode(os); + + return result; +} + +//---------------------------------------------------------------------------- +void cmExportFileGenerator::GenerateImportConfig(std::ostream& os, + const char* config) +{ + // Construct the property configuration suffix. + std::string suffix = "_"; + if(config && *config) + { + suffix += cmSystemTools::UpperCase(config); + } + else + { + suffix += "NOCONFIG"; + } + + // Generate the per-config target information. + this->GenerateImportTargetsConfig(os, config, suffix); +} + +//---------------------------------------------------------------------------- +void +cmExportFileGenerator +::SetImportDetailProperties(const char* config, std::string const& suffix, + cmTarget* target, ImportPropertyMap& properties) +{ + // Get the makefile in which to lookup target information. + cmMakefile* mf = target->GetMakefile(); + + // Add the soname for unix shared libraries. + if(target->GetType() == cmTarget::SHARED_LIBRARY || + target->GetType() == cmTarget::MODULE_LIBRARY) + { + // Check whether this is a DLL platform. + bool dll_platform = + (mf->IsOn("WIN32") || mf->IsOn("CYGWIN") || mf->IsOn("MINGW")); + if(!dll_platform) + { + std::string soname = target->GetSOName(config); + std::string prop = "IMPORTED_SONAME"; + prop += suffix; + properties[prop] = soname; + } + } + + // Add the transitive link dependencies for this configuration. + if(cmTargetLinkInterface const* interface = + target->GetLinkInterface(config)) + { + // This target provides a link interface, so use it. + this->SetImportLinkProperty(suffix, target, + "IMPORTED_LINK_INTERFACE_LIBRARIES", + interface->Libraries, properties); + this->SetImportLinkProperty(suffix, target, + "IMPORTED_LINK_DEPENDENT_LIBRARIES", + interface->SharedDeps, properties); + } + else if(target->GetType() == cmTarget::STATIC_LIBRARY || + target->GetType() == cmTarget::SHARED_LIBRARY) + { + // The default link interface for static and shared libraries is + // their link implementation library list. + this->SetImportLinkProperties(config, suffix, target, properties); + } +} + +//---------------------------------------------------------------------------- +void +cmExportFileGenerator +::SetImportLinkProperties(const char* config, std::string const& suffix, + cmTarget* target, ImportPropertyMap& properties) +{ + // Compute which library configuration to link. + cmTarget::LinkLibraryType linkType = cmTarget::OPTIMIZED; + if(config && cmSystemTools::UpperCase(config) == "DEBUG") + { + linkType = cmTarget::DEBUG; + } + + // Construct the list of libs linked for this configuration. + std::vector actual_libs; + cmTarget::LinkLibraryVectorType const& libs = + target->GetOriginalLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator li = libs.begin(); + li != libs.end(); ++li) + { + // Skip entries that will resolve to the target itself, are empty, + // or are not meant for this configuration. + if(li->first == target->GetName() || li->first.empty() || + !(li->second == cmTarget::GENERAL || li->second == linkType)) + { + continue; + } + + // Store this entry. + actual_libs.push_back(li->first); + } + + // Store the entries in the property. + this->SetImportLinkProperty(suffix, target, + "IMPORTED_LINK_INTERFACE_LIBRARIES", + actual_libs, properties); +} + +//---------------------------------------------------------------------------- +void +cmExportFileGenerator +::SetImportLinkProperty(std::string const& suffix, + cmTarget* target, + const char* propName, + std::vector const& libs, + ImportPropertyMap& properties) +{ + // Skip the property if there are no libraries. + if(libs.empty()) + { + return; + } + + // Get the makefile in which to lookup target information. + cmMakefile* mf = target->GetMakefile(); + + // Construct the property value. + std::string link_libs; + const char* sep = ""; + for(std::vector::const_iterator li = libs.begin(); + li != libs.end(); ++li) + { + // Separate this from the previous entry. + link_libs += sep; + sep = ";"; + + // Append this entry. + if(cmTarget* tgt = mf->FindTargetToUse(li->c_str())) + { + // This is a target. + if(tgt->IsImported()) + { + // The target is imported (and therefore is not in the + // export). Append the raw name. + link_libs += *li; + } + else if(this->ExportedTargets.find(tgt) != this->ExportedTargets.end()) + { + // The target is in the export. Append it with the export + // namespace. + link_libs += this->Namespace; + link_libs += *li; + } + else + { + // The target is not in the export. + if(!this->AppendMode) + { + // We are not appending, so all exported targets should be + // known here. This is probably user-error. + this->ComplainAboutMissingTarget(target, tgt); + } + // Assume the target will be exported by another command. + // Append it with the export namespace. + link_libs += this->Namespace; + link_libs += *li; + } + } + else + { + // Append the raw name. + link_libs += *li; + } + } + + // Store the property. + std::string prop = propName; + prop += suffix; + properties[prop] = link_libs; +} + +//---------------------------------------------------------------------------- +void cmExportFileGenerator::GenerateImportHeaderCode(std::ostream& os, + const char* config) +{ + os << "#----------------------------------------------------------------\n" + << "# Generated CMake target import file"; + if(config) + { + os << " for configuration \"" << config << "\".\n"; + } + else + { + os << ".\n"; + } + os << "#----------------------------------------------------------------\n" + << "\n"; + this->GenerateImportVersionCode(os); +} + +//---------------------------------------------------------------------------- +void cmExportFileGenerator::GenerateImportFooterCode(std::ostream& os) +{ + os << "# Commands beyond this point should not need to know the version.\n" + << "SET(CMAKE_IMPORT_FILE_VERSION)\n"; +} + +//---------------------------------------------------------------------------- +void cmExportFileGenerator::GenerateImportVersionCode(std::ostream& os) +{ + // Store an import file format version. This will let us change the + // format later while still allowing old import files to work. + os << "# Commands may need to know the format version.\n" + << "SET(CMAKE_IMPORT_FILE_VERSION 1)\n" + << "\n"; +} + +//---------------------------------------------------------------------------- +void +cmExportFileGenerator +::GenerateImportTargetCode(std::ostream& os, cmTarget* target) +{ + // Construct the imported target name. + std::string targetName = this->Namespace; + targetName += target->GetName(); + + // Create the imported target. + os << "# Create imported target " << targetName << "\n"; + switch(target->GetType()) + { + case cmTarget::EXECUTABLE: + os << "ADD_EXECUTABLE(" << targetName << " IMPORTED)\n"; + break; + case cmTarget::STATIC_LIBRARY: + os << "ADD_LIBRARY(" << targetName << " STATIC IMPORTED)\n"; + break; + case cmTarget::SHARED_LIBRARY: + os << "ADD_LIBRARY(" << targetName << " SHARED IMPORTED)\n"; + break; + case cmTarget::MODULE_LIBRARY: + os << "ADD_LIBRARY(" << targetName << " MODULE IMPORTED)\n"; + break; + default: // should never happen + break; + } + + // Mark the imported executable if it has exports. + if(target->IsExecutableWithExports()) + { + os << "SET_PROPERTY(TARGET " << targetName + << " PROPERTY ENABLE_EXPORTS 1)\n"; + } + + // Mark the imported library if it is a framework. + if(target->IsFrameworkOnApple()) + { + os << "SET_PROPERTY(TARGET " << targetName + << " PROPERTY FRAMEWORK 1)\n"; + } + + // Mark the imported executable if it is an application bundle. + if(target->IsAppBundleOnApple()) + { + os << "SET_PROPERTY(TARGET " << targetName + << " PROPERTY MACOSX_BUNDLE 1)\n"; + } + os << "\n"; +} + +//---------------------------------------------------------------------------- +void +cmExportFileGenerator +::GenerateImportPropertyCode(std::ostream& os, const char* config, + cmTarget* target, + ImportPropertyMap const& properties) +{ + // Construct the imported target name. + std::string targetName = this->Namespace; + targetName += target->GetName(); + + // Set the import properties. + os << "# Import target \"" << targetName << "\" for configuration \"" + << config << "\"\n"; + os << "SET_PROPERTY(TARGET " << targetName + << " APPEND PROPERTY IMPORTED_CONFIGURATIONS "; + if(config && *config) + { + os << cmSystemTools::UpperCase(config); + } + else + { + os << "NOCONFIG"; + } + os << ")\n"; + os << "SET_TARGET_PROPERTIES(" << targetName << " PROPERTIES\n"; + for(ImportPropertyMap::const_iterator pi = properties.begin(); + pi != properties.end(); ++pi) + { + os << " " << pi->first << " \"" << pi->second << "\"\n"; + } + os << " )\n" + << "\n"; +} diff --git a/CMakeLua/Source/cmExportFileGenerator.h b/CMakeLua/Source/cmExportFileGenerator.h new file mode 100644 index 0000000..e44994e --- /dev/null +++ b/CMakeLua/Source/cmExportFileGenerator.h @@ -0,0 +1,108 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportFileGenerator.h,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExportFileGenerator_h +#define cmExportFileGenerator_h + +#include "cmCommand.h" + +/** \class cmExportFileGenerator + * \brief Generate a file exporting targets from a build or install tree. + * + * cmExportFileGenerator is the superclass for + * cmExportBuildFileGenerator and cmExportInstallFileGenerator. It + * contains common code generation routines for the two kinds of + * export implementations. + */ +class cmExportFileGenerator +{ +public: + cmExportFileGenerator(); + virtual ~cmExportFileGenerator() {} + + /** Set the full path to the export file to generate. */ + void SetExportFile(const char* mainFile); + + /** Set the namespace in which to place exported target names. */ + void SetNamespace(const char* ns) { this->Namespace = ns; } + + /** Add a configuration to be exported. */ + void AddConfiguration(const char* config); + + /** Actually generate the export file. Returns whether there was an + error. */ + bool GenerateImportFile(); +protected: + + typedef std::map ImportPropertyMap; + + // Generate per-configuration target information to the given output + // stream. + void GenerateImportConfig(std::ostream& os, const char* config); + + // Methods to implement export file code generation. + void GenerateImportHeaderCode(std::ostream& os, const char* config = 0); + void GenerateImportFooterCode(std::ostream& os); + void GenerateImportVersionCode(std::ostream& os); + void GenerateImportTargetCode(std::ostream& os, cmTarget* target); + void GenerateImportPropertyCode(std::ostream& os, const char* config, + cmTarget* target, + ImportPropertyMap const& properties); + + // Collect properties with detailed information about targets beyond + // their location on disk. + void SetImportDetailProperties(const char* config, + std::string const& suffix, cmTarget* target, + ImportPropertyMap& properties); + void SetImportLinkProperties(const char* config, + std::string const& suffix, cmTarget* target, + ImportPropertyMap& properties); + void SetImportLinkProperty(std::string const& suffix, + cmTarget* target, const char* propName, + std::vector const& libs, + ImportPropertyMap& properties); + + /** Each subclass knows how to generate its kind of export file. */ + virtual bool GenerateMainFile(std::ostream& os) = 0; + + /** Each subclass knows where the target files are located. */ + virtual void GenerateImportTargetsConfig(std::ostream& os, + const char* config, + std::string const& suffix) = 0; + + /** Each subclass knows how to complain about a target that is + missing from an export set. */ + virtual void ComplainAboutMissingTarget(cmTarget* depender, + cmTarget* dependee) = 0; + + // The namespace in which the exports are placed in the generated file. + std::string Namespace; + + // The set of configurations to export. + std::vector Configurations; + + // The file to generate. + std::string MainImportFile; + std::string FileDir; + std::string FileBase; + std::string FileExt; + bool AppendMode; + + // The set of targets included in the export. + std::set ExportedTargets; +}; + +#endif diff --git a/CMakeLua/Source/cmExportInstallFileGenerator.cxx b/CMakeLua/Source/cmExportInstallFileGenerator.cxx new file mode 100644 index 0000000..bd0ae07 --- /dev/null +++ b/CMakeLua/Source/cmExportInstallFileGenerator.cxx @@ -0,0 +1,275 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportInstallFileGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 19:35:14 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExportInstallFileGenerator.h" + +#include "cmGeneratedFileStream.h" +#include "cmInstallExportGenerator.h" +#include "cmInstallTargetGenerator.h" + +//---------------------------------------------------------------------------- +cmExportInstallFileGenerator +::cmExportInstallFileGenerator(cmInstallExportGenerator* iegen): + InstallExportGenerator(iegen) +{ +} + +//---------------------------------------------------------------------------- +bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os) +{ + // Create all the imported targets. + for(std::vector::const_iterator + tei = this->ExportSet->begin(); + tei != this->ExportSet->end(); ++tei) + { + cmTargetExport* te = *tei; + this->ExportedTargets.insert(te->Target); + this->GenerateImportTargetCode(os, te->Target); + } + + // Now load per-configuration properties for them. + os << "# Load information for each installed configuration.\n" + << "GET_FILENAME_COMPONENT(_DIR \"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n" + << "FILE(GLOB CONFIG_FILES \"${_DIR}/" + << this->FileBase << "-*" << this->FileExt << "\")\n" + << "FOREACH(f ${CONFIG_FILES})\n" + << " INCLUDE(${f})\n" + << "ENDFOREACH(f)\n" + << "\n"; + + // Generate an import file for each configuration. + bool result = true; + for(std::vector::const_iterator + ci = this->Configurations.begin(); + ci != this->Configurations.end(); ++ci) + { + if(!this->GenerateImportFileConfig(ci->c_str())) + { + result = false; + } + } + return result; +} + +//---------------------------------------------------------------------------- +bool +cmExportInstallFileGenerator::GenerateImportFileConfig(const char* config) +{ + // Skip configurations not enabled for this export. + if(!this->InstallExportGenerator->InstallsForConfig(config)) + { + return true; + } + + // Construct the name of the file to generate. + std::string fileName = this->FileDir; + fileName += "/"; + fileName += this->FileBase; + fileName += "-"; + if(config && *config) + { + fileName += cmSystemTools::LowerCase(config); + } + else + { + fileName += "noconfig"; + } + fileName += this->FileExt; + + // Open the output file to generate it. + cmGeneratedFileStream exportFileStream(fileName.c_str(), true); + if(!exportFileStream) + { + std::string se = cmSystemTools::GetLastSystemError(); + cmOStringStream e; + e << "cannot write to file \"" << fileName.c_str() + << "\": " << se; + cmSystemTools::Error(e.str().c_str()); + return false; + } + std::ostream& os = exportFileStream; + + // Start with the import file header. + this->GenerateImportHeaderCode(os, config); + + // Generate the per-config target information. + this->GenerateImportConfig(os, config); + + // End with the import file footer. + this->GenerateImportFooterCode(os); + + // Record this per-config import file. + this->ConfigImportFiles[config] = fileName; + + return true; +} + +//---------------------------------------------------------------------------- +void +cmExportInstallFileGenerator +::GenerateImportTargetsConfig(std::ostream& os, + const char* config, std::string const& suffix) +{ + // Add code to compute the installation prefix relative to the + // import file location. + const char* installDest = this->InstallExportGenerator->GetDestination(); + if(!cmSystemTools::FileIsFullPath(installDest)) + { + std::string dest = installDest; + os << "# Compute the installation prefix relative to this file.\n" + << "GET_FILENAME_COMPONENT(_IMPORT_PREFIX " + << "\"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n"; + while(!dest.empty()) + { + os << + "GET_FILENAME_COMPONENT(_IMPORT_PREFIX \"${_IMPORT_PREFIX}\" PATH)\n"; + dest = cmSystemTools::GetFilenamePath(dest); + } + os << "\n"; + + // Import location properties may reference this variable. + this->ImportPrefix = "${_IMPORT_PREFIX}/"; + } + + // Add each target in the set to the export. + for(std::vector::const_iterator + tei = this->ExportSet->begin(); + tei != this->ExportSet->end(); ++tei) + { + // Collect import properties for this target. + cmTargetExport* te = *tei; + ImportPropertyMap properties; + this->SetImportLocationProperty(config, suffix, + te->ArchiveGenerator, properties); + this->SetImportLocationProperty(config, suffix, + te->LibraryGenerator, properties); + this->SetImportLocationProperty(config, suffix, + te->RuntimeGenerator, properties); + this->SetImportLocationProperty(config, suffix, + te->FrameworkGenerator, properties); + this->SetImportLocationProperty(config, suffix, + te->BundleGenerator, properties); + + // If any file location was set for the target add it to the + // import file. + if(!properties.empty()) + { + // Get the rest of the target details. + this->SetImportDetailProperties(config, suffix, + te->Target, properties); + + // TOOD: PUBLIC_HEADER_LOCATION + // This should wait until the build feature propagation stuff + // is done. Then this can be a propagated include directory. + // this->GenerateImportProperty(config, te->HeaderGenerator, + // properties); + + // Generate code in the export file. + this->GenerateImportPropertyCode(os, config, te->Target, properties); + } + } + + // Cleanup the import prefix variable. + if(!this->ImportPrefix.empty()) + { + os << "# Cleanup temporary variables.\n" + << "SET(_IMPORT_PREFIX)\n" + << "\n"; + } +} + +//---------------------------------------------------------------------------- +void +cmExportInstallFileGenerator +::SetImportLocationProperty(const char* config, std::string const& suffix, + cmInstallTargetGenerator* itgen, + ImportPropertyMap& properties) +{ + // Skip rules that do not match this configuration. + if(!(itgen && itgen->InstallsForConfig(config))) + { + return; + } + + { + // Construct the property name. + std::string prop = (itgen->IsImportLibrary()? + "IMPORTED_IMPLIB" : "IMPORTED_LOCATION"); + prop += suffix; + + // Construct the installed location of the target. + std::string dest = itgen->GetDestination(); + std::string value; + if(!cmSystemTools::FileIsFullPath(dest.c_str())) + { + // The target is installed relative to the installation prefix. + if(this->ImportPrefix.empty()) + { + this->ComplainAboutImportPrefix(itgen); + } + value = this->ImportPrefix; + } + value += dest; + value += "/"; + + // Append the installed file name. + std::string fname = itgen->GetInstallFilename(config); + value += fname; + + // Fix name for frameworks and bundles. + if(itgen->GetTarget()->IsFrameworkOnApple()) + { + value += ".framework/"; + value += fname; + } + else if(itgen->GetTarget()->IsAppBundleOnApple()) + { + value += ".app/Contents/MacOS/"; + value += fname; + } + + // Store the property. + properties[prop] = value; + } +} + +//---------------------------------------------------------------------------- +void +cmExportInstallFileGenerator +::ComplainAboutImportPrefix(cmInstallTargetGenerator* itgen) +{ + const char* installDest = this->InstallExportGenerator->GetDestination(); + cmOStringStream e; + e << "INSTALL(EXPORT \"" << this->Name << "\") given absolute " + << "DESTINATION \"" << installDest << "\" but the export " + << "references an installation of target \"" + << itgen->GetTarget()->GetName() << "\" which has relative " + << "DESTINATION \"" << itgen->GetDestination() << "\"."; + cmSystemTools::Error(e.str().c_str()); +} + +//---------------------------------------------------------------------------- +void +cmExportInstallFileGenerator +::ComplainAboutMissingTarget(cmTarget* depender, cmTarget* dependee) +{ + cmOStringStream e; + e << "INSTALL(EXPORT \"" << this->Name << "\" ...) " + << "includes target \"" << depender->GetName() + << "\" which requires target \"" << dependee->GetName() + << "\" that is not in the export set."; + cmSystemTools::Error(e.str().c_str()); +} diff --git a/CMakeLua/Source/cmExportInstallFileGenerator.h b/CMakeLua/Source/cmExportInstallFileGenerator.h new file mode 100644 index 0000000..adf3f19 --- /dev/null +++ b/CMakeLua/Source/cmExportInstallFileGenerator.h @@ -0,0 +1,123 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportInstallFileGenerator.h,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExportInstallFileGenerator_h +#define cmExportInstallFileGenerator_h + +#include "cmExportFileGenerator.h" + +class cmInstallExportGenerator; +class cmInstallFilesGenerator; +class cmInstallTargetGenerator; +class cmTargetExport; + +/** \class cmExportInstallFileGenerator + * \brief Generate a file exporting targets from an install tree. + * + * cmExportInstallFileGenerator generates files exporting targets from + * install an installation tree. The files are placed in a temporary + * location for installation by cmInstallExportGenerator. One main + * file is generated that creates the imported targets and loads + * per-configuration files. Target locations and settings for each + * configuration are written to these per-configuration files. After + * installation the main file loads the configurations that have been + * installed. + * + * This is used to implement the INSTALL(EXPORT) command. + */ +class cmExportInstallFileGenerator: public cmExportFileGenerator +{ +public: + /** Construct with the export installer that will install the + files. */ + cmExportInstallFileGenerator(cmInstallExportGenerator* iegen); + + /** Set the name of the export associated with the files. This is + the name given to the install(EXPORT) command mode. */ + void SetName(const char* name) { this->Name = name; } + + /** Set the set of targets to be exported. These are the targets + associated with the export name. */ + void SetExportSet(std::vector const* eSet) + { this->ExportSet = eSet; } + + /** Get the per-config file generated for each configuraiton. This + maps from the configuration name to the file temporary location + for installation. */ + std::map const& GetConfigImportFiles() + { return this->ConfigImportFiles; } +protected: + + // Implement virtual methods from the superclass. + virtual bool GenerateMainFile(std::ostream& os); + virtual void GenerateImportTargetsConfig(std::ostream& os, + const char* config, + std::string const& suffix); + virtual void ComplainAboutMissingTarget(cmTarget* depender, + cmTarget* dependee); + + /** Generate a per-configuration file for the targets. */ + bool GenerateImportFileConfig(const char* config); + + /** Fill in properties indicating installed file locations. */ + void SetImportLocationProperty(const char* config, + std::string const& suffix, + cmInstallTargetGenerator* itgen, + ImportPropertyMap& properties); + + void ComplainAboutImportPrefix(cmInstallTargetGenerator* itgen); + + cmInstallExportGenerator* InstallExportGenerator; + std::string Name; + std::vector const* ExportSet; + + std::string ImportPrefix; + + // The import file generated for each configuration. + std::map ConfigImportFiles; +}; + +/* + cmTargetExport is used in cmGlobalGenerator to collect the install + generators for targets associated with an export. +*/ +class cmTargetExport +{ +public: + cmTargetExport(cmTarget* tgt, + cmInstallTargetGenerator* archive, + cmInstallTargetGenerator* runtime, + cmInstallTargetGenerator* library, + cmInstallTargetGenerator* framework, + cmInstallTargetGenerator* bundle, + cmInstallFilesGenerator* headers + ) : Target(tgt), ArchiveGenerator(archive), + RuntimeGenerator(runtime), LibraryGenerator(library), + FrameworkGenerator(framework), BundleGenerator(bundle), + HeaderGenerator(headers) {} + + cmTarget* Target; + cmInstallTargetGenerator* ArchiveGenerator; + cmInstallTargetGenerator* RuntimeGenerator; + cmInstallTargetGenerator* LibraryGenerator; + cmInstallTargetGenerator* FrameworkGenerator; + cmInstallTargetGenerator* BundleGenerator; + cmInstallFilesGenerator* HeaderGenerator; +private: + cmTargetExport(); +}; + +#endif diff --git a/CMakeLua/Source/cmExportLibraryDependencies.cxx b/CMakeLua/Source/cmExportLibraryDependencies.cxx new file mode 100644 index 0000000..66ab7a6 --- /dev/null +++ b/CMakeLua/Source/cmExportLibraryDependencies.cxx @@ -0,0 +1,118 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportLibraryDependencies.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExportLibraryDependencies.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmGeneratedFileStream.h" +#include "cmake.h" + +#include + +bool cmExportLibraryDependenciesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // store the arguments for the final pass + this->Filename = args[0]; + this->Append = false; + if(args.size() > 1) + { + if(args[1] == "APPEND") + { + this->Append = true; + } + } + return true; +} + + +void cmExportLibraryDependenciesCommand::FinalPass() +{ + // export_library_dependencies() shouldn't modify anything + // ensure this by calling a const method + this->ConstFinalPass(); +} + +void cmExportLibraryDependenciesCommand::ConstFinalPass() const +{ + // Use copy-if-different if not appending. + cmsys::auto_ptr foutPtr; + if(this->Append) + { + cmsys::auto_ptr ap( + new std::ofstream(this->Filename.c_str(), std::ios::app)); + foutPtr = ap; + } + else + { + cmsys::auto_ptr ap( + new cmGeneratedFileStream(this->Filename.c_str(), true)); + ap->SetCopyIfDifferent(true); + foutPtr = ap; + } + std::ostream& fout = *foutPtr.get(); + + if (!fout) + { + cmSystemTools::Error("Error Writing ", this->Filename.c_str()); + cmSystemTools::ReportLastSystemError(""); + return; + } + const cmake* cm = this->Makefile->GetCMakeInstance(); + const cmGlobalGenerator* global = cm->GetGlobalGenerator(); + const std::vector& locals = global->GetLocalGenerators(); + std::string libDepName; + for(std::vector::const_iterator i = locals.begin(); + i != locals.end(); ++i) + { + const cmLocalGenerator* gen = *i; + const cmTargets &tgts = gen->GetMakefile()->GetTargets(); + std::vector depends; + const char *defType; + for(cmTargets::const_iterator l = tgts.begin(); + l != tgts.end(); ++l) + { + libDepName = l->first; + libDepName += "_LIB_DEPENDS"; + const char* def = this->Makefile->GetDefinition(libDepName.c_str()); + if(def) + { + fout << "SET(" << libDepName << " \"" << def << "\")\n"; + // now for each dependency, check for link type + cmSystemTools::ExpandListArgument(def, depends); + for(std::vector::const_iterator d = depends.begin(); + d != depends.end(); ++d) + { + libDepName = *d; + libDepName += "_LINK_TYPE"; + defType = this->Makefile->GetDefinition(libDepName.c_str()); + libDepName = cmSystemTools::EscapeSpaces(libDepName.c_str()); + if(defType) + { + fout << "SET(" << libDepName << " \"" << defType << "\")\n"; + } + } + } + } + } + return; +} diff --git a/CMakeLua/Source/cmExportLibraryDependencies.h b/CMakeLua/Source/cmExportLibraryDependencies.h new file mode 100644 index 0000000..9dd46b7 --- /dev/null +++ b/CMakeLua/Source/cmExportLibraryDependencies.h @@ -0,0 +1,91 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExportLibraryDependencies.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExportLibraryDependenciesCommand_h +#define cmExportLibraryDependenciesCommand_h + +#include "cmCommand.h" + +/** \class cmExportLibraryDependenciesCommand + * \brief Add a test to the lists of tests to run. + * + * cmExportLibraryDependenciesCommand adds a test to the list of tests to run + * + */ +class cmExportLibraryDependenciesCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmExportLibraryDependenciesCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This is called at the end after all the information + * specified by the command is accumulated. + */ + virtual void FinalPass(); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "export_library_dependencies";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return + "Write out the dependency information for all targets of a project."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " export_library_dependencies( [APPEND])\n" + "Create a file named that can be included into a CMake listfile " + "with the INCLUDE command. The file will contain a number of SET " + "commands that will set all the variables needed for library dependency " + "information. This should be the last command in the top level " + "CMakeLists.txt file of the project. If the APPEND option is " + "specified, the SET commands will be appended to the given file " + "instead of replacing it."; + } + + cmTypeMacro(cmExportLibraryDependenciesCommand, cmCommand); + +private: + std::string Filename; + bool Append; + void ConstFinalPass() const; +}; + + +#endif diff --git a/CMakeLua/Source/cmExprLexer.cxx b/CMakeLua/Source/cmExprLexer.cxx new file mode 100644 index 0000000..4f25a31 --- /dev/null +++ b/CMakeLua/Source/cmExprLexer.cxx @@ -0,0 +1,1934 @@ +#include "cmStandardIncludes.h" +#line 2 "/home/andy/vtk/CMake-bin/Source/cmExprLexer.cxx" + +#line 4 "/home/andy/vtk/CMake-bin/Source/cmExprLexer.cxx" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 31 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmExpr_yylex_init (yyscan_t* scanner); + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yyg->yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yyg->yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE cmExpr_yyrestart(yyin ,yyscanner ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input + stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = yyg->yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via cmExpr_yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ + ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is + * not NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] + +void cmExpr_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmExpr_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmExpr_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); +void cmExpr_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmExpr_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmExpr_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +void cmExpr_yypop_buffer_state (yyscan_t yyscanner ); + +static void cmExpr_yyensure_buffer_stack (yyscan_t yyscanner ); +static void cmExpr_yy_load_buffer_state (yyscan_t yyscanner ); +static void cmExpr_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); + +#define YY_FLUSH_BUFFER cmExpr_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) + +YY_BUFFER_STATE cmExpr_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmExpr_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmExpr_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); + +void *cmExpr_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmExpr_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmExpr_yyfree (void * ,yyscan_t yyscanner ); + +#define yy_new_buffer cmExpr_yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + cmExpr_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmExpr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + cmExpr_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmExpr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define cmExpr_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +typedef int yy_state_type; + +#define yytext_ptr yytext_r + +static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state , + yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner ); +static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yyg->yytext_ptr = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + yyg->yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yyg->yy_c_buf_p = yy_cp; + +#define YY_NUM_RULES 15 +#define YY_END_OF_BUFFER 16 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[23] = + { 0, + 0, 0, 16, 15, 6, 8, 13, 14, 4, 2, + 3, 5, 1, 15, 15, 9, 7, 10, 1, 11, + 12, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 3, 1, 4, + 5, 6, 7, 1, 8, 1, 9, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 1, 1, 11, + 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 13, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 14, 1, 15, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[16] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int16_t yy_base[23] = + { 0, + 0, 0, 20, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 9, 7, 5, 21, 21, 21, 6, 21, + 21, 21 + } ; + +static yyconst flex_int16_t yy_def[23] = + { 0, + 22, 1, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 0 + } ; + +static yyconst flex_int16_t yy_nxt[37] = + { 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 21, 20, 19, 22, + 3, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22 + } ; + +static yyconst flex_int16_t yy_chk[37] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 19, 15, 14, 13, 3, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22 + } ; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +#line 1 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +#line 2 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExprLexer.cxx,v $ + Language: C++ + Date: $Date: 2007/09/24 15:16:13 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmExpr_yy --header-file=cmExprLexer.h -ocmExprLexer.cxx cmExprLexer.in.l + +Modify cmExprLexer.cxx: + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmExpr_yyalloc, cmExpr_yyrealloc, cmExpr_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmExprLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#include "cmExprParserHelper.h" + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = yyextra->LexInput(buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmExprParserTokens.h" + +/*--------------------------------------------------------------------------*/ +#line 518 "/home/andy/vtk/CMake-bin/Source/cmExprLexer.cxx" + +#define INITIAL 0 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Holds the entire state of the reentrant scanner. */ +struct yyguts_t + { + + /* User-defined. Not touched by flex. */ + YY_EXTRA_TYPE yyextra_r; + + /* The rest are the same as the globals declared in the non-reentrant + scanner. */ + FILE *yyin_r, *yyout_r; + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + char yy_hold_char; + int yy_n_chars; + int yyleng_r; + char *yy_c_buf_p; + int yy_init; + int yy_start; + int yy_did_buffer_switch_on_eof; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int *yy_start_stack; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + int yylineno_r; + int yy_flex_debug_r; + + char *yytext_r; + int yy_more_flag; + int yy_more_len; + + }; /* end struct yyguts_t */ + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmExpr_yylex_destroy (yyscan_t yyscanner ); + +int cmExpr_yyget_debug (yyscan_t yyscanner ); + +void cmExpr_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmExpr_yyget_extra (yyscan_t yyscanner ); + +void cmExpr_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *cmExpr_yyget_in (yyscan_t yyscanner ); + +void cmExpr_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmExpr_yyget_out (yyscan_t yyscanner ); + +void cmExpr_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmExpr_yyget_leng (yyscan_t yyscanner ); + +char *cmExpr_yyget_text (yyscan_t yyscanner ); + +int cmExpr_yyget_lineno (yyscan_t yyscanner ); + +void cmExpr_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmExpr_yywrap (yyscan_t yyscanner ); +#else +extern int cmExpr_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (yyscan_t yyscanner ); +#else +static int input (yyscan_t yyscanner ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmExpr_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmExpr_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + +#line 86 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" + + +#line 736 "/home/andy/vtk/CMake-bin/Source/cmExprLexer.cxx" + + if ( yyg->yy_init ) + { + yyg->yy_init = 0; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yyg->yy_start ) + yyg->yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + cmExpr_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmExpr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmExpr_yy_load_buffer_state(yyscanner ); + } + + for(;;) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 23 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 21 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 88 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ yylvalp->Number = atoi(yytext); return exp_NUMBER; } +case 2: +YY_RULE_SETUP +#line 90 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_PLUS; } +case 3: +YY_RULE_SETUP +#line 91 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_MINUS; } +case 4: +YY_RULE_SETUP +#line 92 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_TIMES; } +case 5: +YY_RULE_SETUP +#line 93 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_DIVIDE; } +case 6: +YY_RULE_SETUP +#line 94 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_MOD; } +case 7: +YY_RULE_SETUP +#line 95 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_OR; } +case 8: +YY_RULE_SETUP +#line 96 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_AND; } +case 9: +YY_RULE_SETUP +#line 97 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_XOR; } +case 10: +YY_RULE_SETUP +#line 98 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_NOT; } +case 11: +YY_RULE_SETUP +#line 99 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_SHIFTLEFT; } +case 12: +YY_RULE_SETUP +#line 100 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_SHIFTRIGHT; } +case 13: +YY_RULE_SETUP +#line 101 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_OPENPARENT; } +case 14: +YY_RULE_SETUP +#line 102 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +{ return exp_CLOSEPARENT; } +case 15: +YY_RULE_SETUP +#line 104 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" +ECHO; + YY_BREAK +#line 894 "/home/andy/vtk/CMake-bin/Source/cmExprLexer.cxx" +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * cmExpr_yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yyg->yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yyg->yy_c_buf_p; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if ( cmExpr_yywrap(yyscanner ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +return 0; /* this should not happen but it silences a warning*/ +} /* end of cmExpr_yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; + + else + { + size_t nuto_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( nuto_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + cmExpr_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + nuto_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( nuto_read > YY_READ_BUF_SIZE ) + nuto_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, nuto_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if ( yyg->yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + cmExpr_yyrestart(yyin ,yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was + reached */ + + static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_current_state = yyg->yy_start; + + for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 23 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +{ + register int yy_is_jam; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 23 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 22); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (yyscan_t yyscanner) +#else + static int input (yyscan_t yyscanner) +#endif + +{ + int c; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + cmExpr_yyrestart(yyin ,yyscanner); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( cmExpr_yywrap(yyscanner ) ) + return EOF; + + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(yyscanner); +#else + return input(yyscanner); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * @param yyscanner The scanner object. + * @note This function does not reset the start condition to @c INITIAL . + */ + void cmExpr_yyrestart (FILE * input_file , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! YY_CURRENT_BUFFER ){ + cmExpr_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmExpr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmExpr_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); + cmExpr_yy_load_buffer_state(yyscanner ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * @param yyscanner The scanner object. + */ + void cmExpr_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* TODO. We should be able to replace this entire function body + * with + * cmExpr_yypop_buffer_state(); + * cmExpr_yypush_buffer_state(new_buffer); + */ + cmExpr_yyensure_buffer_stack (yyscanner); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + cmExpr_yy_load_buffer_state(yyscanner ); + + /* We don't actually know whether we did this switch during + * EOF (cmExpr_yywrap()) processing, but the only time this flag + * is looked at is after cmExpr_yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; +} + +static void cmExpr_yy_load_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * @param yyscanner The scanner object. + * @return the allocated buffer state. + */ + YY_BUFFER_STATE cmExpr_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) cmExpr_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmExpr_yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) cmExpr_yyalloc(b->yy_buf_size + 2 ,yyscanner ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmExpr_yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + cmExpr_yy_init_buffer(b,file ,yyscanner); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with cmExpr_yy_create_buffer() + * @param yyscanner The scanner object. + */ + void cmExpr_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + cmExpr_yyfree((void *) b->yy_ch_buf ,yyscanner ); + + cmExpr_yyfree((void *) b ,yyscanner ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a cmExpr_yyrestart() or at EOF. + */ + static void cmExpr_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) + +{ + int oerrno = errno; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + cmExpr_yy_flush_buffer(b ,yyscanner); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then cmExpr_yy_init_buffer was _probably_ + * called from cmExpr_yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * @param yyscanner The scanner object. + */ + void cmExpr_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + cmExpr_yy_load_buffer_state(yyscanner ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * @param yyscanner The scanner object. + */ +void cmExpr_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (new_buffer == NULL) + return; + + cmExpr_yyensure_buffer_stack(yyscanner); + + /* This block is copied from cmExpr_yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from cmExpr_yy_switch_to_buffer. */ + cmExpr_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * @param yyscanner The scanner object. + */ +void cmExpr_yypop_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + cmExpr_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) { + cmExpr_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void cmExpr_yyensure_buffer_stack (yyscan_t yyscanner) +{ + int nuto_alloc; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (!yyg->yy_buffer_stack) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + nuto_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmExpr_yyalloc + (nuto_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + memset(yyg->yy_buffer_stack, 0, nuto_alloc * sizeof(struct yy_buffer_state*)); + + yyg->yy_buffer_stack_max = nuto_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + nuto_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmExpr_yyrealloc + (yyg->yy_buffer_stack, + nuto_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + /* zero only the new slots.*/ + memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); + yyg->yy_buffer_stack_max = nuto_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmExpr_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) cmExpr_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmExpr_yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + cmExpr_yy_switch_to_buffer(b ,yyscanner ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to cmExpr_yylex() will + * scan from a @e copy of @a str. + * @param str a NUL-terminated string to scan + * @param yy_str a NUL-terminated string to scan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * cmExpr_yy_scan_bytes() instead. + */ +YY_BUFFER_STATE cmExpr_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner) +{ + + return cmExpr_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner); +} + +/** Setup the input buffer state to scan the given bytes. The next call to cmExpr_yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmExpr_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = len + 2; + buf = (char *) cmExpr_yyalloc(n ,yyscanner ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmExpr_yy_scan_bytes()" ); + + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; + + buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + + b = cmExpr_yy_scan_buffer(buf,n ,yyscanner); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in cmExpr_yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg , yyscan_t) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = yyg->yy_hold_char; \ + yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ + yyg->yy_hold_char = *yyg->yy_c_buf_p; \ + *yyg->yy_c_buf_p = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the user-defined data for this scanner. + * @param yyscanner The scanner object. + */ +YY_EXTRA_TYPE cmExpr_yyget_extra (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyextra; +} + +/** Get the current line number. + * @param yyscanner The scanner object. + */ +int cmExpr_yyget_lineno (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yylineno; +} + +/** Get the current column number. + * @param yyscanner The scanner object. + */ +int cmExpr_yyget_column (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yycolumn; +} + +/** Get the input stream. + * @param yyscanner The scanner object. + */ +FILE *cmExpr_yyget_in (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyin; +} + +/** Get the output stream. + * @param yyscanner The scanner object. + */ +FILE *cmExpr_yyget_out (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyout; +} + +/** Get the length of the current token. + * @param yyscanner The scanner object. + */ +int cmExpr_yyget_leng (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyleng; +} + +/** Get the current token. + * @param yyscanner The scanner object. + */ + +char *cmExpr_yyget_text (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yytext; +} + +/** Set the user-defined data. This data is never touched by the scanner. + * @param user_defined The data to be associated with this scanner. + * @param yyscanner The scanner object. + */ +void cmExpr_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyextra = user_defined ; +} + +/** Set the current line number. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmExpr_yyset_lineno (int line_number , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmExpr_yyset_lineno called with no buffer" , yyscanner); + + yylineno = line_number; +} + +/** Set the current column. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmExpr_yyset_column (int column_no , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* column is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmExpr_yyset_column called with no buffer" , yyscanner); + + yycolumn = column_no; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * @param yyscanner The scanner object. + * @see cmExpr_yy_switch_to_buffer + */ +void cmExpr_yyset_in (FILE * in_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyin = in_str ; +} + +void cmExpr_yyset_out (FILE * out_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyout = out_str ; +} + +int cmExpr_yyget_debug (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yy_flex_debug; +} + +void cmExpr_yyset_debug (int bdebug , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yy_flex_debug = bdebug ; +} + +/* Accessor methods for yylval and yylloc */ + +static int yy_init_globals (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + /* Initialization is the same as for the non-reentrant scanner. + This function is called once per scanner lifetime. */ + + yyg->yy_buffer_stack = 0; + yyg->yy_buffer_stack_top = 0; + yyg->yy_buffer_stack_max = 0; + yyg->yy_c_buf_p = (char *) 0; + yyg->yy_init = 1; + yyg->yy_start = 0; + yyg->yy_start_stack_ptr = 0; + yyg->yy_start_stack_depth = 0; + yyg->yy_start_stack = (int *) 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * cmExpr_yylex_init() + */ + return 0; +} + +/* User-visible API */ + +/* cmExpr_yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. + */ + +int cmExpr_yylex_init(yyscan_t* ptr_yy_globals) + +{ + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) cmExpr_yyalloc ( sizeof( struct yyguts_t ), NULL ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + memset(*ptr_yy_globals,0,sizeof(struct yyguts_t)); + + return yy_init_globals ( *ptr_yy_globals ); +} + +/* cmExpr_yylex_destroy is for both reentrant and non-reentrant scanners. */ +int cmExpr_yylex_destroy (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + cmExpr_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); + YY_CURRENT_BUFFER_LVALUE = NULL; + cmExpr_yypop_buffer_state(yyscanner); + } + + /* Destroy the stack itself. */ + cmExpr_yyfree(yyg->yy_buffer_stack ,yyscanner); + yyg->yy_buffer_stack = NULL; + + /* Destroy the start condition stack. */ + cmExpr_yyfree(yyg->yy_start_stack ,yyscanner ); + yyg->yy_start_stack = NULL; + + /* Destroy the main struct (reentrant only). */ + cmExpr_yyfree ( yyscanner , yyscanner ); + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +{ + register int i; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +{ + register int n; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *cmExpr_yyalloc (yy_size_t size , yyscan_t) +{ + return (void *) malloc( size ); +} + +void *cmExpr_yyrealloc (void * ptr, yy_size_t size , yyscan_t) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void cmExpr_yyfree (void * ptr , yyscan_t) +{ + free( (char *) ptr ); /* see cmExpr_yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef yytext_ptr +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif +#line 104 "/home/andy/vtk/CMake/Source/cmExprLexer.in.l" + + + diff --git a/CMakeLua/Source/cmExprLexer.h b/CMakeLua/Source/cmExprLexer.h new file mode 100644 index 0000000..24d1874 --- /dev/null +++ b/CMakeLua/Source/cmExprLexer.h @@ -0,0 +1,339 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExprLexer.h,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2007 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExpr_yyHEADER_H +#define cmExpr_yyHEADER_H 1 +#define cmExpr_yyIN_HEADER 1 + + + + + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 31 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmExpr_yylex_init (yyscan_t* scanner); + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void cmExpr_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmExpr_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmExpr_yy_create_buffer (FILE *file,int size , + yyscan_t yyscanner ); +void cmExpr_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmExpr_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmExpr_yypush_buffer_state (YY_BUFFER_STATE new_buffer , + yyscan_t yyscanner ); +void cmExpr_yypop_buffer_state (yyscan_t yyscanner ); + +YY_BUFFER_STATE cmExpr_yy_scan_buffer (char *base,yy_size_t size , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmExpr_yy_scan_string (yyconst char *yy_str , + yyscan_t yyscanner ); +YY_BUFFER_STATE cmExpr_yy_scan_bytes (yyconst char *bytes,int len , + yyscan_t yyscanner ); + +void *cmExpr_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmExpr_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmExpr_yyfree (void * ,yyscan_t yyscanner ); + +/* Begin user sect3 */ + +#define cmExpr_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +#define yytext_ptr yytext_r + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 + +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmExpr_yylex_destroy (yyscan_t yyscanner ); + +int cmExpr_yyget_debug (yyscan_t yyscanner ); + +void cmExpr_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmExpr_yyget_extra (yyscan_t yyscanner ); + +void cmExpr_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *cmExpr_yyget_in (yyscan_t yyscanner ); + +void cmExpr_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmExpr_yyget_out (yyscan_t yyscanner ); + +void cmExpr_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmExpr_yyget_leng (yyscan_t yyscanner ); + +char *cmExpr_yyget_text (yyscan_t yyscanner ); + +int cmExpr_yyget_lineno (yyscan_t yyscanner ); + +void cmExpr_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmExpr_yywrap (yyscan_t yyscanner ); +#else +extern int cmExpr_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmExpr_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmExpr_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before the EOB char was + reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef yytext_ptr +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + + + + +#undef cmExpr_yyIN_HEADER +#endif /* cmExpr_yyHEADER_H */ diff --git a/CMakeLua/Source/cmExprLexer.in.l b/CMakeLua/Source/cmExprLexer.in.l new file mode 100644 index 0000000..b571e8c --- /dev/null +++ b/CMakeLua/Source/cmExprLexer.in.l @@ -0,0 +1,78 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExprLexer.in.l,v $ + Language: C++ + Date: $Date: 2006/08/08 18:00:28 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmExpr_yy --header-file=cmExprLexer.h -ocmExprLexer.cxx cmExprLexer.in.l + +Modify cmExprLexer.cxx: + - remove TABs + - remove "yyscanner" argument from these methods: + yy_fatal_error, cmExpr_yyalloc, cmExpr_yyrealloc, cmExpr_yyfree + - remove all YY_BREAK lines occurring right after return statements + - change while ( 1 ) to for(;;) + +Modify cmExprLexer.h: + - remove TABs + - remove the yy_init_globals function + - remove the block that includes unistd.h + - remove #line directives (avoids bogus warning on old Sun) + +*/ + +#include "cmStandardLexer.h" + +#include "cmExprParserHelper.h" + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = yyextra->LexInput(buf, max_size); } + +/* Include the set of tokens from the parser. */ +#include "cmExprParserTokens.h" + +/*--------------------------------------------------------------------------*/ +%} + +%option reentrant +%option noyywrap +%pointer + +%% + +[0-9][0-9]* { yylvalp->Number = atoi(yytext); return exp_NUMBER; } + +"+" { return exp_PLUS; } +"-" { return exp_MINUS; } +"*" { return exp_TIMES; } +"/" { return exp_DIVIDE; } +"%" { return exp_MOD; } +"\|" { return exp_OR; } +"&" { return exp_AND; } +"^" { return exp_XOR; } +"~" { return exp_NOT; } +"<<" { return exp_SHIFTLEFT; } +">>" { return exp_SHIFTRIGHT; } +"(" { return exp_OPENPARENT; } +")" { return exp_CLOSEPARENT; } + +%% diff --git a/CMakeLua/Source/cmExprParser.cxx b/CMakeLua/Source/cmExprParser.cxx new file mode 100644 index 0000000..a746799 --- /dev/null +++ b/CMakeLua/Source/cmExprParser.cxx @@ -0,0 +1,1438 @@ +/* A Bison parser, made by GNU Bison 1.875d. */ + +/* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, + 1989, 1990, 2000, 2001, 2002, 2003, 2004 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* turn off some warning as this is generated code */ +#if defined(_MSC_VER) +# pragma warning ( disable : 4702 ) /* unreachable code */ +#endif + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* If NAME_PREFIX is specified substitute the variables and functions + names. */ +#define yyparse cmExpr_yyparse +#define yylex cmExpr_yylex +#define yyerror cmExpr_yyerror +#define yylval cmExpr_yylval +#define yychar cmExpr_yychar +#define yydebug cmExpr_yydebug +#define yynerrs cmExpr_yynerrs + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + exp_PLUS = 258, + exp_MINUS = 259, + exp_TIMES = 260, + exp_DIVIDE = 261, + exp_MOD = 262, + exp_SHIFTLEFT = 263, + exp_SHIFTRIGHT = 264, + exp_OPENPARENT = 265, + exp_CLOSEPARENT = 266, + exp_OR = 267, + exp_AND = 268, + exp_XOR = 269, + exp_NOT = 270, + exp_NUMBER = 271 + }; +#endif +#define exp_PLUS 258 +#define exp_MINUS 259 +#define exp_TIMES 260 +#define exp_DIVIDE 261 +#define exp_MOD 262 +#define exp_SHIFTLEFT 263 +#define exp_SHIFTRIGHT 264 +#define exp_OPENPARENT 265 +#define exp_CLOSEPARENT 266 +#define exp_OR 267 +#define exp_AND 268 +#define exp_XOR 269 +#define exp_NOT 270 +#define exp_NUMBER 271 + + + + +/* Copy the first part of user declarations. */ + + +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExprParser.cxx,v $ + Language: C++ + Date: $Date: 2007/03/05 15:36:06 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmExpr_yy --defines=cmExprParserTokens.h + -ocmExprParser.cxx cmExprParser.y + +Modify cmExprParser.cxx: + - remove TABs + - add __HP_aCC to the #if test for yyerrorlab warning suppression + +*/ + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmExpr_yyerror(x) \ + cmExprError(yyscanner, x) +#define yyGetParser (cmExpr_yyget_extra(yyscanner)) + +/*-------------------------------------------------------------------------*/ +#include "cmExprParserHelper.h" /* Interface to parser object. */ +#include "cmExprLexer.h" /* Interface to lexer object. */ +#include "cmExprParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +#include + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Internal utility functions. */ +static void cmExprError(yyscan_t yyscanner, const char* message); + +#define YYDEBUG 1 +//#define YYMAXDEPTH 100000 +//#define YYINITDEPTH 10000 + + +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch statement contains default but + no case. */ +#endif + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 214 of yacc.c. */ + + +#if ! defined (yyoverflow) || YYERROR_VERBOSE + +# ifndef YYFREE +# define YYFREE free +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# endif + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# define YYSTACK_ALLOC alloca +# endif +# else +# if defined (alloca) || defined (_ALLOCA_H) +# define YYSTACK_ALLOC alloca +# else +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# else +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# endif +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + short int yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined (__GNUC__) && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + register YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 12 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 25 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 17 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 9 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 20 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 34 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 271 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned char yyprhs[] = +{ + 0, 0, 3, 5, 7, 11, 13, 17, 19, 23, + 25, 29, 33, 35, 39, 43, 45, 49, 53, 57, + 59 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yysigned_char yyrhs[] = +{ + 18, 0, -1, 19, -1, 20, -1, 19, 12, 20, + -1, 21, -1, 20, 14, 21, -1, 22, -1, 21, + 13, 22, -1, 23, -1, 22, 8, 23, -1, 22, + 9, 23, -1, 24, -1, 23, 3, 24, -1, 23, + 4, 24, -1, 25, -1, 24, 5, 25, -1, 24, + 6, 25, -1, 24, 7, 25, -1, 16, -1, 10, + 19, 11, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned char yyrline[] = +{ + 0, 94, 94, 100, 103, 107, 110, 114, 117, 121, + 124, 127, 132, 135, 138, 142, 145, 148, 151, 155, + 158 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "exp_PLUS", "exp_MINUS", "exp_TIMES", + "exp_DIVIDE", "exp_MOD", "exp_SHIFTLEFT", "exp_SHIFTRIGHT", + "exp_OPENPARENT", "exp_CLOSEPARENT", "exp_OR", "exp_AND", "exp_XOR", + "exp_NOT", "exp_NUMBER", "$accept", "Start", "exp", "bitwiseor", + "bitwisexor", "bitwiseand", "shift", "term", "factor", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 17, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, + 25 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 1, 1, 3, 1, 3, 1, 3, 1, + 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, + 3 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned char yydefact[] = +{ + 0, 0, 19, 0, 2, 3, 5, 7, 9, 12, + 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 20, 4, 6, 8, 10, 11, 13, + 14, 16, 17, 18 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yysigned_char yydefgoto[] = +{ + -1, 3, 4, 5, 6, 7, 8, 9, 10 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -14 +static const yysigned_char yypact[] = +{ + -10, -10, -14, 18, 7, 6, 8, 2, 1, -4, + -14, 3, -14, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -14, 6, 8, 2, 1, 1, -4, + -4, -14, -14, -14 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yysigned_char yypgoto[] = +{ + -14, -14, 21, 10, 11, 9, 0, -6, -13 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const unsigned char yytable[] = +{ + 1, 20, 21, 22, 18, 19, 2, 31, 32, 33, + 16, 17, 29, 30, 23, 13, 27, 28, 12, 13, + 14, 15, 11, 24, 26, 25 +}; + +static const unsigned char yycheck[] = +{ + 10, 5, 6, 7, 3, 4, 16, 20, 21, 22, + 8, 9, 18, 19, 11, 12, 16, 17, 0, 12, + 14, 13, 1, 13, 15, 14 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 10, 16, 18, 19, 20, 21, 22, 23, 24, + 25, 19, 0, 12, 14, 13, 8, 9, 3, 4, + 5, 6, 7, 11, 20, 21, 22, 23, 23, 24, + 24, 25, 25, 25 +}; + +#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) +# define YYSIZE_T __SIZE_TYPE__ +#endif +#if ! defined (YYSIZE_T) && defined (size_t) +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +#endif +#if ! defined (YYSIZE_T) +# define YYSIZE_T unsigned int +#endif + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror ("syntax error: cannot back up");\ + YYERROR; \ + } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +/* YYLLOC_DEFAULT -- Compute the default location (before the actions + are run). */ + +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + ((Current).first_line = (Rhs)[1].first_line, \ + (Current).first_column = (Rhs)[1].first_column, \ + (Current).last_line = (Rhs)[N].last_line, \ + (Current).last_column = (Rhs)[N].last_column) +#endif + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +# define YYDSYMPRINT(Args) \ +do { \ + if (yydebug) \ + yysymprint Args; \ +} while (0) + +# define YYDSYMPRINTF(Title, Token, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YYDSYMPRINT(Args) +# define YYDSYMPRINTF(Title, Token, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 +# undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined (__GLIBC__) && defined (_STRING_H) +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +# if defined (__STDC__) || defined (__cplusplus) +yystrlen (const char *yystr) +# else +yystrlen (yystr) + const char *yystr; +# endif +{ + register const char *yys = yystr; + + while (*yys++ != '\0') + continue; + + return yys - yystr - 1; +} +# endif +# endif + +# ifndef yystpcpy +# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +# if defined (__STDC__) || defined (__cplusplus) +yystpcpy (char *yydest, const char *yysrc) +# else +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +# endif +{ + register char *yyd = yydest; + register const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +#endif /* !YYERROR_VERBOSE */ + + + +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (yytype < YYNTOKENS) + { + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); +# ifdef YYPRINT + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + } + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yytype, yyvaluep) + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM); +# else +int yyparse (); +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif +{ + /* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + register int yystate; + register int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + register short int *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + register YYSTYPE *yyvsp; + + + +#define YYPOPSTACK (yyvsp--, yyssp--) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ + int yylen; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. + */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + short int *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow ("parser stack overflow", + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyoverflowlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyoverflowlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + short int *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyoverflowlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; + + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + yystate = yyn; + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: + + { + yyGetParser->SetResult(yyvsp[0].Number); +} + break; + + case 3: + + {yyval.Number = yyvsp[0].Number;} + break; + + case 4: + + {yyval.Number = yyvsp[-2].Number | yyvsp[0].Number;} + break; + + case 5: + + {yyval.Number = yyvsp[0].Number;} + break; + + case 6: + + {yyval.Number = yyvsp[-2].Number ^ yyvsp[0].Number;} + break; + + case 7: + + {yyval.Number = yyvsp[0].Number;} + break; + + case 8: + + {yyval.Number = yyvsp[-2].Number & yyvsp[0].Number;} + break; + + case 9: + + {yyval.Number = yyvsp[0].Number;} + break; + + case 10: + + {yyval.Number = yyvsp[-2].Number << yyvsp[0].Number;} + break; + + case 11: + + {yyval.Number = yyvsp[-2].Number >> yyvsp[0].Number;} + break; + + case 12: + + {yyval.Number = yyvsp[0].Number;} + break; + + case 13: + + {yyval.Number = yyvsp[-2].Number + yyvsp[0].Number;} + break; + + case 14: + + {yyval.Number = yyvsp[-2].Number - yyvsp[0].Number;} + break; + + case 15: + + {yyval.Number = yyvsp[0].Number;} + break; + + case 16: + + {yyval.Number = yyvsp[-2].Number * yyvsp[0].Number;} + break; + + case 17: + + {yyval.Number = yyvsp[-2].Number / yyvsp[0].Number;} + break; + + case 18: + + {yyval.Number = yyvsp[-2].Number % yyvsp[0].Number;} + break; + + case 19: + + {yyval.Number = yyvsp[0].Number;} + break; + + case 20: + + {yyval.Number = yyvsp[-1].Number;} + break; + + + } + +/* Line 1010 of yacc.c. */ + + + yyvsp -= yylen; + yyssp -= yylen; + + + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (YYPACT_NINF < yyn && yyn < YYLAST) + { + YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); + const char* yyprefix; + char *yymsg; + int yyx; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 0; + + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); + yycount += 1; + if (yycount == 5) + { + yysize = 0; + break; + } + } + yysize += (sizeof ("syntax error, unexpected ") + + yystrlen (yytname[yytype])); + yymsg = (char *) YYSTACK_ALLOC (yysize); + if (yymsg != 0) + { + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); + + if (yycount < 5) + { + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yyp = yystpcpy (yyp, yyprefix); + yyp = yystpcpy (yyp, yytname[yyx]); + yyprefix = " or "; + } + } + yyerror (yymsg); + YYSTACK_FREE (yymsg); + } + else + yyerror ("syntax error; also virtual memory exhausted"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror ("syntax error"); + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* If at end of input, pop the error token, + then the rest of the stack, then return failure. */ + if (yychar == YYEOF) + for (;;) + { + YYPOPSTACK; + if (yyssp == yyss) + YYABORT; + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[*yyssp], yyvsp); + } + } + else + { + YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); + yydestruct (yytoken, &yylval); + yychar = YYEMPTY; + + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + +#if defined( __GNUC__ ) || defined(__HP_aCC) + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) + goto yyerrorlab; +#endif + + yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + YYDPRINTF ((stderr, "Shifting error token, ")); + + *++yyvsp = yylval; + + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ +yyoverflowlab: + yyerror ("parser stack overflow"); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + return yyresult; +} + + + + +/* End of grammar */ + +/*--------------------------------------------------------------------------*/ +void cmExprError(yyscan_t yyscanner, const char* message) +{ + yyGetParser->Error(message); +} + + diff --git a/CMakeLua/Source/cmExprParser.y b/CMakeLua/Source/cmExprParser.y new file mode 100644 index 0000000..a7cb951 --- /dev/null +++ b/CMakeLua/Source/cmExprParser.y @@ -0,0 +1,174 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExprParser.y,v $ + Language: C++ + Date: $Date: 2006/08/01 15:38:41 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run bison like this: + + bison --yacc --name-prefix=cmExpr_yy --defines=cmExprParserTokens.h -ocmExprParser.cxx cmExprParser.y + +Modify cmExprParser.cxx: + - remove TABs + - add __HP_aCC to the #if test for yyerrorlab warning suppression + +*/ + +/* Configure the parser to use a lexer object. */ +#define YYPARSE_PARAM yyscanner +#define YYLEX_PARAM yyscanner +#define YYERROR_VERBOSE 1 +#define cmExpr_yyerror(x) \ + cmExprError(yyscanner, x) +#define yyGetParser (cmExpr_yyget_extra(yyscanner)) + +/*-------------------------------------------------------------------------*/ +#include "cmExprParserHelper.h" /* Interface to parser object. */ +#include "cmExprLexer.h" /* Interface to lexer object. */ +#include "cmExprParserTokens.h" /* Need YYSTYPE for YY_DECL. */ + +#include + +/* Forward declare the lexer entry point. */ +YY_DECL; + +/* Internal utility functions. */ +static void cmExprError(yyscan_t yyscanner, const char* message); + +#define YYDEBUG 1 +//#define YYMAXDEPTH 100000 +//#define YYINITDEPTH 10000 + + +/* Disable some warnings in the generated code. */ +#ifdef __BORLANDC__ +# pragma warn -8004 /* Variable assigned a value that is not used. */ +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8060 /* possibly incorrect assignment */ +# pragma warn -8066 /* unreachable code */ +#endif +#ifdef _MSC_VER +# pragma warning (disable: 4102) /* Unused goto label. */ +# pragma warning (disable: 4065) /* Switch statement contains default but no case. */ +#endif +%} + +/* Generate a reentrant parser object. */ +%pure_parser + +/*-------------------------------------------------------------------------*/ +/* Tokens */ +%token exp_PLUS +%token exp_MINUS +%token exp_TIMES +%token exp_DIVIDE +%token exp_MOD +%token exp_SHIFTLEFT +%token exp_SHIFTRIGHT +%token exp_OPENPARENT +%token exp_CLOSEPARENT +%token exp_OR; +%token exp_AND; +%token exp_XOR; +%token exp_NOT; +%token exp_NUMBER; + +/*-------------------------------------------------------------------------*/ +/* grammar */ +%% + + +Start: +exp +{ + yyGetParser->SetResult($1); +} + +exp: +bitwiseor +{$$ = $1;} +| +exp exp_OR bitwiseor +{$$ = $1 | $3;} + +bitwiseor: +bitwisexor +{$$ = $1;} +| +bitwiseor exp_XOR bitwisexor +{$$ = $1 ^ $3;} + +bitwisexor: +bitwiseand +{$$ = $1;} +| +bitwisexor exp_AND bitwiseand +{$$ = $1 & $3;} + +bitwiseand: +shift +{$$ = $1;} +| +bitwiseand exp_SHIFTLEFT shift +{$$ = $1 << $3;} +| +bitwiseand exp_SHIFTRIGHT shift +{$$ = $1 >> $3;} + + +shift: +term +{$$ = $1;} +| +shift exp_PLUS term +{$$ = $1 + $3;} +| +shift exp_MINUS term +{$$ = $1 - $3;} + +term: +factor +{$$ = $1;} +| +term exp_TIMES factor +{$$ = $1 * $3;} +| +term exp_DIVIDE factor +{$$ = $1 / $3;} +| +term exp_MOD factor +{$$ = $1 % $3;} + +factor: +exp_NUMBER +{$$ = $1;} +| +exp_OPENPARENT exp exp_CLOSEPARENT +{$$ = $2;} +; + + +%% +/* End of grammar */ + +/*--------------------------------------------------------------------------*/ +void cmExprError(yyscan_t yyscanner, const char* message) +{ + yyGetParser->Error(message); +} + diff --git a/CMakeLua/Source/cmExprParserHelper.cxx b/CMakeLua/Source/cmExprParserHelper.cxx new file mode 100644 index 0000000..1e8107e --- /dev/null +++ b/CMakeLua/Source/cmExprParserHelper.cxx @@ -0,0 +1,123 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExprParserHelper.cxx,v $ + Language: C++ + Date: $Date: 2006/05/11 14:45:28 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmExprParserHelper.h" + +#include "cmSystemTools.h" +#include "cmExprLexer.h" + +#include "cmMakefile.h" + +int cmExpr_yyparse( yyscan_t yyscanner ); +// +cmExprParserHelper::cmExprParserHelper() +{ + this->FileLine = -1; + this->FileName = 0; +} + + +cmExprParserHelper::~cmExprParserHelper() +{ + this->CleanupParser(); +} + +void cmExprParserHelper::SetLineFile(long line, const char* file) +{ + this->FileLine = line; + this->FileName = file; +} + +int cmExprParserHelper::ParseString(const char* str, int verb) +{ + if ( !str) + { + return 0; + } + //printf("Do some parsing: %s\n", str); + + this->Verbose = verb; + this->InputBuffer = str; + this->InputBufferPos = 0; + this->CurrentLine = 0; + + this->Result = 0; + + yyscan_t yyscanner; + cmExpr_yylex_init(&yyscanner); + cmExpr_yyset_extra(this, yyscanner); + int res = cmExpr_yyparse(yyscanner); + cmExpr_yylex_destroy(yyscanner); + if ( res != 0 ) + { + //str << "CAL_Parser returned: " << res << std::endl; + //std::cerr << "When parsing: [" << str << "]" << std::endl; + return 0; + } + + this->CleanupParser(); + + if ( Verbose ) + { + std::cerr << "Expanding [" << str << "] produced: [" + << this->Result << "]" << std::endl; + } + return 1; +} + +void cmExprParserHelper::CleanupParser() +{ +} + +int cmExprParserHelper::LexInput(char* buf, int maxlen) +{ + //std::cout << "JPLexInput "; + //std::cout.write(buf, maxlen); + //std::cout << std::endl; + if ( maxlen < 1 ) + { + return 0; + } + if ( this->InputBufferPos < this->InputBuffer.size() ) + { + buf[0] = this->InputBuffer[ this->InputBufferPos++ ]; + if ( buf[0] == '\n' ) + { + this->CurrentLine ++; + } + return(1); + } + else + { + buf[0] = '\n'; + return( 0 ); + } +} + +void cmExprParserHelper::Error(const char* str) +{ + unsigned long pos = static_cast(this->InputBufferPos); + cmOStringStream ostr; + ostr << str << " (" << pos << ")"; + this->ErrorString = ostr.str(); +} + +void cmExprParserHelper::SetResult(int value) +{ + this->Result = value; +} + + diff --git a/CMakeLua/Source/cmExprParserHelper.h b/CMakeLua/Source/cmExprParserHelper.h new file mode 100644 index 0000000..b963c7e --- /dev/null +++ b/CMakeLua/Source/cmExprParserHelper.h @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExprParserHelper.h,v $ + Language: C++ + Date: $Date: 2006/03/15 16:02:01 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExprParserHelper_h +#define cmExprParserHelper_h + +#include "cmStandardIncludes.h" + +#define YYSTYPE cmExprParserHelper::ParserType +#define YYSTYPE_IS_DECLARED +#define YY_EXTRA_TYPE cmExprParserHelper* +#define YY_DECL int cmExpr_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner) + +/** \class cmExprParserHelper + * \brief Helper class for parsing java source files + * + * Finds dependencies for java file and list of outputs + */ + +class cmMakefile; + +class cmExprParserHelper +{ +public: + typedef struct { + int Number; + } ParserType; + + cmExprParserHelper(); + ~cmExprParserHelper(); + + int ParseString(const char* str, int verb); + + int LexInput(char* buf, int maxlen); + void Error(const char* str); + + void SetResult(int value); + + int GetResult() { return this->Result; } + + void SetLineFile(long line, const char* file); + + const char* GetError() { return this->ErrorString.c_str(); } + +private: + cmStdString::size_type InputBufferPos; + cmStdString InputBuffer; + std::vector OutputBuffer; + int CurrentLine; + int UnionsAvailable; + int Verbose; + + void Print(const char* place, const char* str); + + void CleanupParser(); + + int Result; + const char* FileName; + long FileLine; + std::string ErrorString; +}; + +#endif + + + diff --git a/CMakeLua/Source/cmExprParserTokens.h b/CMakeLua/Source/cmExprParserTokens.h new file mode 100644 index 0000000..0309c09 --- /dev/null +++ b/CMakeLua/Source/cmExprParserTokens.h @@ -0,0 +1,76 @@ +/* A Bison parser, made by GNU Bison 1.875d. */ + +/* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, + 1989, 1990, 2000, 2001, 2002, 2003, 2004 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + exp_PLUS = 258, + exp_MINUS = 259, + exp_TIMES = 260, + exp_DIVIDE = 261, + exp_MOD = 262, + exp_SHIFTLEFT = 263, + exp_SHIFTRIGHT = 264, + exp_OPENPARENT = 265, + exp_CLOSEPARENT = 266, + exp_OR = 267, + exp_AND = 268, + exp_XOR = 269, + exp_NOT = 270, + exp_NUMBER = 271 + }; +#endif +#define exp_PLUS 258 +#define exp_MINUS 259 +#define exp_TIMES 260 +#define exp_DIVIDE 261 +#define exp_MOD 262 +#define exp_SHIFTLEFT 263 +#define exp_SHIFTRIGHT 264 +#define exp_OPENPARENT 265 +#define exp_CLOSEPARENT 266 +#define exp_OR 267 +#define exp_AND 268 +#define exp_XOR 269 +#define exp_NOT 270 +#define exp_NUMBER 271 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + + + diff --git a/CMakeLua/Source/cmExternalMakefileProjectGenerator.cxx b/CMakeLua/Source/cmExternalMakefileProjectGenerator.cxx new file mode 100644 index 0000000..685101a --- /dev/null +++ b/CMakeLua/Source/cmExternalMakefileProjectGenerator.cxx @@ -0,0 +1,70 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExternalMakefileProjectGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/07/03 20:10:50 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2007 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include + +#include "cmExternalMakefileProjectGenerator.h" + +std::string cmExternalMakefileProjectGenerator::CreateFullGeneratorName( + const char* globalGenerator, + const char* extraGenerator) +{ + std::string fullName; + if (globalGenerator) + { + if (extraGenerator && *extraGenerator) + { + fullName = extraGenerator; + fullName += " - "; + } + fullName += globalGenerator; + } + return fullName; +} + +const char* cmExternalMakefileProjectGenerator::GetGlobalGeneratorName( + const char* fullName) +{ + // at least one global generator must be supported + assert(!this->SupportedGlobalGenerators.empty()); + + if (fullName==0) + { + return 0; + } + + std::string currentName = fullName; + // if we get only the short name, take the first global generator as default + if (currentName == this->GetName()) + { + return this->SupportedGlobalGenerators[0].c_str(); + } + + // otherwise search for the matching global generator + for (std::vector::const_iterator + it = this->SupportedGlobalGenerators.begin(); + it != this->SupportedGlobalGenerators.end(); + ++it) + { + if (this->CreateFullGeneratorName(it->c_str(), this->GetName()) + == currentName) + { + return it->c_str(); + } + } + return 0; +} diff --git a/CMakeLua/Source/cmExternalMakefileProjectGenerator.h b/CMakeLua/Source/cmExternalMakefileProjectGenerator.h new file mode 100644 index 0000000..5d3968c --- /dev/null +++ b/CMakeLua/Source/cmExternalMakefileProjectGenerator.h @@ -0,0 +1,75 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExternalMakefileProjectGenerator.h,v $ + Language: C++ + Date: $Date: 2007/06/13 16:52:29 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2007 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExternalMakefileProjectGenerator_h +#define cmExternalMakefileProjectGenerator_h + +#include "cmStandardIncludes.h" + +#include "cmDocumentation.h" + +class cmGlobalGenerator; + +/** \class cmExternalMakefileProjectGenerator + * \brief Base class for generators for "External Makefile based IDE projects". + * + * cmExternalMakefileProjectGenerator is a base class for generators + * for "external makefile based projects", i.e. IDE projects which work + * an already existing makefiles. + * See cmGlobalKdevelopGenerator as an example. + * After the makefiles have been generated by one of the Makefile + * generators, the Generate() method is called and this generator + * can iterate over the local generators and/or projects to produce the + * project files for the IDE. + */ +class cmExternalMakefileProjectGenerator +{ +public: + + virtual ~cmExternalMakefileProjectGenerator() {} + + ///! Get the name for this generator. + virtual const char* GetName() const = 0; + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry, + const char* fullName) const = 0; + + ///! set the global generator which will generate the makefiles + virtual void SetGlobalGenerator(cmGlobalGenerator* generator) + {this->GlobalGenerator = generator;} + + ///! Return the list of global generators supported by this extra generator + const std::vector& GetSupportedGlobalGenerators() const + {return this->SupportedGlobalGenerators;} + + ///! Get the name of the global generator for the given full name + const char* GetGlobalGeneratorName(const char* fullName); + /** Create a full name from the given global generator name and the + * extra generator name + */ + static std::string CreateFullGeneratorName(const char* globalGenerator, + const char* extraGenerator); + + ///! Generate the project files, the Makefiles have already been generated + virtual void Generate() = 0; +protected: + ///! Contains the names of the global generators support by this generator. + std::vector SupportedGlobalGenerators; + ///! the global generator which creates the makefiles + const cmGlobalGenerator* GlobalGenerator; +}; + +#endif diff --git a/CMakeLua/Source/cmExtraCodeBlocksGenerator.cxx b/CMakeLua/Source/cmExtraCodeBlocksGenerator.cxx new file mode 100644 index 0000000..9e2f3b7 --- /dev/null +++ b/CMakeLua/Source/cmExtraCodeBlocksGenerator.cxx @@ -0,0 +1,440 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExtraCodeBlocksGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/11/25 12:45:18 $ + Version: $Revision: 1.18 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf neundorf@kde.org, All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmExtraCodeBlocksGenerator.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmake.h" +#include "cmSourceFile.h" +#include "cmGeneratedFileStream.h" +#include "cmTarget.h" +#include "cmSystemTools.h" + +#include + +/* Some useful URLs: +Homepage: +http://www.codeblocks.org + +File format docs: +http://wiki.codeblocks.org/index.php?title=File_formats_description +http://wiki.codeblocks.org/index.php?title=Workspace_file +http://wiki.codeblocks.org/index.php?title=Project_file + +Discussion: +http://forums.codeblocks.org/index.php/topic,6789.0.html +*/ + +//---------------------------------------------------------------------------- +void cmExtraCodeBlocksGenerator +::GetDocumentation(cmDocumentationEntry& entry, const char*) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates CodeBlocks project files."; + entry.Full = + "Project files for CodeBlocks will be created in the top directory " + "and in every subdirectory which features a CMakeLists.txt file " + "containing a PROJECT() call. " + "Additionally a hierarchy of makefiles is generated into the " + "build tree. The appropriate make program can build the project through " + "the default make target. A \"make install\" target is also provided."; +} + +cmExtraCodeBlocksGenerator::cmExtraCodeBlocksGenerator() +:cmExternalMakefileProjectGenerator() +{ +#if defined(_WIN32) + this->SupportedGlobalGenerators.push_back("MinGW Makefiles"); +// disable until somebody actually tests it: +// this->SupportedGlobalGenerators.push_back("NMake Makefiles"); +// this->SupportedGlobalGenerators.push_back("MSYS Makefiles"); +#endif + this->SupportedGlobalGenerators.push_back("Unix Makefiles"); +} + + +void cmExtraCodeBlocksGenerator::SetGlobalGenerator( + cmGlobalGenerator* generator) +{ + cmExternalMakefileProjectGenerator::SetGlobalGenerator(generator); + cmGlobalUnixMakefileGenerator3* mf = (cmGlobalUnixMakefileGenerator3*) + generator; + mf->SetToolSupportsColor(false); + mf->SetForceVerboseMakefiles(true); +} + +void cmExtraCodeBlocksGenerator::Generate() +{ + // for each sub project in the project create a codeblocks project + for (std::map >::const_iterator + it = this->GlobalGenerator->GetProjectMap().begin(); + it!= this->GlobalGenerator->GetProjectMap().end(); + ++it) + { + // create a project file + this->CreateProjectFile(it->second); + } +} + + +/* create the project file, if it already exists, merge it with the +existing one, otherwise create a new one */ +void cmExtraCodeBlocksGenerator::CreateProjectFile( + const std::vector& lgs) +{ + const cmMakefile* mf=lgs[0]->GetMakefile(); + std::string outputDir=mf->GetStartOutputDirectory(); + std::string projectDir=mf->GetHomeDirectory(); + std::string projectName=mf->GetProjectName(); + + std::string filename=outputDir+"/"; + filename+=projectName+".cbp"; + std::string sessionFilename=outputDir+"/"; + sessionFilename+=projectName+".layout"; + +/* if (cmSystemTools::FileExists(filename.c_str())) + { + this->MergeProjectFiles(outputDir, projectDir, filename, + cmakeFilePattern, sessionFilename); + } + else */ + { + this->CreateNewProjectFile(lgs, filename); + } + +} + + +void cmExtraCodeBlocksGenerator + ::CreateNewProjectFile(const std::vector& lgs, + const std::string& filename) +{ + const cmMakefile* mf=lgs[0]->GetMakefile(); + cmGeneratedFileStream fout(filename.c_str()); + if(!fout) + { + return; + } + + // figure out the compiler + std::string compiler = this->GetCBCompilerId(mf); + std::string make = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + + fout<<"\n" + "\n" + " \n" + " \n" + " \n" + "\n"; +} + + +// Generate the xml code for one target. +void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout, + const char* targetName, + cmTarget* target, + const char* make, + const cmMakefile* makefile, + const char* compiler) +{ + std::string makefileName = makefile->GetStartOutputDirectory(); + makefileName += "/Makefile"; + makefileName = cmSystemTools::ConvertToOutputPath(makefileName.c_str()); + + fout<<" \n"; + if (target!=0) + { + int cbTargetType = this->GetCBTargetType(target); + fout<<" \n"; + +} + + +// Translate the cmake compiler id into the CodeBlocks compiler id +std::string cmExtraCodeBlocksGenerator::GetCBCompilerId(const cmMakefile* mf) +{ + // figure out which language to use + // for now care only for C and C++ + std::string compilerIdVar = "CMAKE_CXX_COMPILER_ID"; + if (this->GlobalGenerator->GetLanguageEnabled("CXX") == false) + { + compilerIdVar = "CMAKE_C_COMPILER_ID"; + } + + std::string hostSystemName = mf->GetSafeDefinition("CMAKE_HOST_SYSTEM_NAME"); + std::string systemName = mf->GetSafeDefinition("CMAKE_SYSTEM_NAME"); + std::string compilerId = mf->GetRequiredDefinition(compilerIdVar.c_str()); + std::string compiler = "gcc"; + if (compilerId == "MSVC") + { + compiler = "msvc"; + } + else if (compilerId == "Borland") + { + compiler = "bcc"; + } + else if (compilerId == "SDCC") + { + compiler = "sdcc"; + } + else if (compilerId == "Intel") + { + compiler = "icc"; + } + else if (compilerId == "Watcom") + { + compiler = "ow"; + } + else if (compilerId == "GNU") + { + compiler = "gcc"; + } + return compiler; +} + + +// Translate the cmake target type into the CodeBlocks target type id +int cmExtraCodeBlocksGenerator::GetCBTargetType(cmTarget* target) +{ + if ( target->GetType()==cmTarget::EXECUTABLE) + { + if ((target->GetPropertyAsBool("WIN32_EXECUTABLE")) + || (target->GetPropertyAsBool("MACOSX_BUNDLE"))) + { + return 0; + } + else + { + return 1; + } + } + else if ( target->GetType()==cmTarget::STATIC_LIBRARY) + { + return 2; + } + else if ((target->GetType()==cmTarget::SHARED_LIBRARY) + || (target->GetType()==cmTarget::MODULE_LIBRARY)) + { + return 3; + } + return 4; +} + +// Create the command line for building the given target using the selected +// make +std::string cmExtraCodeBlocksGenerator::BuildMakeCommand( + const std::string& make, const char* makefile, const char* target) +{ + std::string command = make; + if (strcmp(this->GlobalGenerator->GetName(), "NMake Makefiles")==0) + { + command += " /NOLOGO /f ""; + command += makefile; + command += "" "; + command += target; + } + else + { + command += " -f ""; + command += makefile; + command += "" "; + command += target; + } + return command; +} diff --git a/CMakeLua/Source/cmExtraCodeBlocksGenerator.h b/CMakeLua/Source/cmExtraCodeBlocksGenerator.h new file mode 100644 index 0000000..647db0d --- /dev/null +++ b/CMakeLua/Source/cmExtraCodeBlocksGenerator.h @@ -0,0 +1,68 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExtraCodeBlocksGenerator.h,v $ + Language: C++ + Date: $Date: 2007/11/25 12:45:18 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExtraCodeBlocksGenerator_h +#define cmExtraCodeBlocksGenerator_h + +#include "cmExternalMakefileProjectGenerator.h" + +class cmLocalGenerator; +class cmMakefile; +class cmTarget; +class cmGeneratedFileStream; + +/** \class cmExtraCodeBlocksGenerator + * \brief Write CodeBlocks project files for Makefile based projects + * + * This generator is in early alpha stage. + */ +class cmExtraCodeBlocksGenerator : public cmExternalMakefileProjectGenerator +{ +public: + cmExtraCodeBlocksGenerator(); + virtual void SetGlobalGenerator(cmGlobalGenerator* generator); + + virtual const char* GetName() const + { return cmExtraCodeBlocksGenerator::GetActualName();} + static const char* GetActualName() { return "CodeBlocks";} + static cmExternalMakefileProjectGenerator* New() + { return new cmExtraCodeBlocksGenerator; } + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry, + const char* fullName) const; + + virtual void Generate(); +private: + + void CreateProjectFile(const std::vector& lgs); + + void CreateNewProjectFile(const std::vector& lgs, + const std::string& filename); + std::string GetCBCompilerId(const cmMakefile* mf); + int GetCBTargetType(cmTarget* target); + std::string BuildMakeCommand(const std::string& make, const char* makefile, + const char* target); + void AppendTarget(cmGeneratedFileStream& fout, + const char* targetName, + cmTarget* target, + const char* make, + const cmMakefile* makefile, + const char* compiler); + +}; + +#endif diff --git a/CMakeLua/Source/cmExtraEclipseCDT4Generator.cxx b/CMakeLua/Source/cmExtraEclipseCDT4Generator.cxx new file mode 100644 index 0000000..a6e72c5 --- /dev/null +++ b/CMakeLua/Source/cmExtraEclipseCDT4Generator.cxx @@ -0,0 +1,813 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExtraEclipseCDT4Generator.cxx,v $ + Language: C++ + Date: $Date: 2007/11/25 12:40:57 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf neundorf@kde.org, All rights reserved. + Copyright (c) 2007 Miguel A. Figueroa-Villanueva. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmExtraEclipseCDT4Generator.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmGeneratedFileStream.h" +#include "cmTarget.h" + +#include "cmSystemTools.h" +#include + +//---------------------------------------------------------------------------- +cmExtraEclipseCDT4Generator +::cmExtraEclipseCDT4Generator() : cmExternalMakefileProjectGenerator() +{ +// TODO: Verify if __CYGWIN__ should be checked. +//#if defined(_WIN32) && !defined(__CYGWIN__) +#if defined(_WIN32) + this->SupportedGlobalGenerators.push_back("NMake Makefiles"); + this->SupportedGlobalGenerators.push_back("MinGW Makefiles"); +// this->SupportedGlobalGenerators.push_back("MSYS Makefiles"); +#endif + this->SupportedGlobalGenerators.push_back("Unix Makefiles"); +} + +//---------------------------------------------------------------------------- +void cmExtraEclipseCDT4Generator +::GetDocumentation(cmDocumentationEntry& entry, const char*) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Eclipse CDT 4.0 project files."; + entry.Full = + "Project files for Eclipse will be created in the top directory " + "and will have a linked resource to every subdirectory which " + "features a CMakeLists.txt file containing a PROJECT() call." + "Additionally a hierarchy of makefiles is generated into the " + "build tree. The appropriate make program can build the project through " + "the default make target. A \"make install\" target is also provided."; +} + +//---------------------------------------------------------------------------- +void cmExtraEclipseCDT4Generator +::SetGlobalGenerator(cmGlobalGenerator* generator) +{ + cmExternalMakefileProjectGenerator::SetGlobalGenerator(generator); + cmGlobalUnixMakefileGenerator3* mf + = static_cast(generator); + mf->SetToolSupportsColor(false); + mf->SetForceVerboseMakefiles(true); + mf->EnableInstallTarget(); +} + +//---------------------------------------------------------------------------- +void cmExtraEclipseCDT4Generator::Generate() +{ + // create a .project file + this->CreateProjectFile(); + + // create a .cproject file + this->CreateCProjectFile(); +} + +//---------------------------------------------------------------------------- +void cmExtraEclipseCDT4Generator::CreateProjectFile() const +{ + const cmMakefile* mf + = this->GlobalGenerator->GetLocalGenerators()[0]->GetMakefile(); + + const std::string homeDirectory(mf->GetHomeDirectory()); + const std::string homeOutputDirectory(mf->GetHomeOutputDirectory()); + const std::string filename = homeOutputDirectory + "/.project"; + + cmGeneratedFileStream fout(filename.c_str()); + if (!fout) + { + return; + } + + fout << + "\n" + "\n" + "\t" << this->GetPathBasename(homeOutputDirectory) << "\n" + "\t\n" + "\t\n" + "\t\n" + "\t\n" + "\t\t\n" + "\t\t\torg.eclipse.cdt.make.core.makeBuilder\n" + "\t\t\tclean,full,incremental,\n" + "\t\t\t\n" + ; + + // use clean target + fout << + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.cleanBuildTarget\n" + "\t\t\t\t\tclean\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.enableCleanBuild\n" + "\t\t\t\t\ttrue\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.append_environment\n" + "\t\t\t\t\ttrue\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.stopOnError\n" + "\t\t\t\t\ttrue\n" + "\t\t\t\t\n" + ; + + // set the make command + std::string make = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + fout << + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.enabledIncrementalBuild\n" + "\t\t\t\t\ttrue\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.build.command\n" + "\t\t\t\t\t" + this->GetEclipsePath(make) + "\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.contents\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.activeConfigSettings\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.build.target.inc\n" + "\t\t\t\t\tall\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.build.arguments\n" + "\t\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.buildLocation\n" + "\t\t\t\t\t" + << this->GetEclipsePath(homeOutputDirectory) << "\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.useDefaultBuildCmd\n" + "\t\t\t\t\tfalse\n" + "\t\t\t\t\n" + ; + + // set project specific environment + fout << + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.environment\n" + "\t\t\t\t\t" + ; + // set vsvars32.bat environment available at CMake time, + // but not necessarily when eclipse is open + if (make.find("nmake") != std::string::npos) + { + if (getenv("PATH")) + { + fout << "PATH=" << getenv("PATH") << "|"; + } + if (getenv("INCLUDE")) + { + fout << "INCLUDE=" << getenv("INCLUDE") << "|"; + } + if (getenv("LIB")) + { + fout << "LIB=" << getenv("LIB") << "|"; + } + if (getenv("LIBPATH")) + { + fout << "LIBPATH=" << getenv("LIBPATH") << "|"; + } + } + fout << + "\n" + "\t\t\t\t\n" + ; + + fout << + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.enableFullBuild\n" + "\t\t\t\t\ttrue\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.build.target.auto\n" + "\t\t\t\t\tall\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.enableAutoBuild\n" + "\t\t\t\t\tfalse\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.build.target.clean\n" + "\t\t\t\t\tclean\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.fullBuildTarget\n" + "\t\t\t\t\tall\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.buildArguments\n" + "\t\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.build.location\n" + "\t\t\t\t\t" + << this->GetEclipsePath(homeOutputDirectory) << "\n" + "\t\t\t\t\n" + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.make.core.autoBuildTarget\n" + "\t\t\t\t\tall\n" + "\t\t\t\t\n" + ; + + // set error parsers + fout << + "\t\t\t\t\n" + "\t\t\t\t\torg.eclipse.cdt.core.errorOutputParser\n" + "\t\t\t\t\t" + ; + if (this->GetToolChainType(*mf) == EclipseToolchainOther) + { + fout << "org.eclipse.cdt.core.VCErrorParser;"; + } + fout << + "org.eclipse.cdt.core.MakeErrorParser;" + "org.eclipse.cdt.core.GCCErrorParser;" + "org.eclipse.cdt.core.GASErrorParser;" + "org.eclipse.cdt.core.GLDErrorParser;" + "\n" + "\t\t\t\t\n" + ; + + fout << + "\t\t\t\n" + "\t\t\n" + "\t\t\n" + "\t\t\torg.eclipse.cdt.make.core.ScannerConfigBuilder\n" + "\t\t\t\n" + "\t\t\t\n" + "\t\t\n" + "\t\n" + ; + + // set natures for c/c++ projects + fout << + "\t\n" + // TODO: ccnature only if it is c++ ??? + "\t\torg.eclipse.cdt.core.ccnature\n" + "\t\torg.eclipse.cdt.make.core.makeNature\n" + "\t\torg.eclipse.cdt.make.core.ScannerConfigNature\n" + "\t\torg.eclipse.cdt.core.cnature\n" + "\t\n" + ; + + // TODO: refactor this + // create linked resources + if (homeDirectory != homeOutputDirectory) + { + fout << "\t\n"; + // for each sub project create a linked resource to the source dir + // - only if it is an out-of-source build + for (std::map >::const_iterator + it = this->GlobalGenerator->GetProjectMap().begin(); + it != this->GlobalGenerator->GetProjectMap().end(); + ++it) + { + fout << + "\t\t\n" + "\t\t\t" << it->first << "\n" + "\t\t\t2\n" + "\t\t\t" + << this->GetEclipsePath( + it->second[0]->GetMakefile()->GetStartDirectory()) + << "\n" + "\t\t\n" + ; + } + // for EXECUTABLE_OUTPUT_PATH when not in binary dir + std::string output_path = mf->GetDefinition("EXECUTABLE_OUTPUT_PATH"); + if (!cmSystemTools::IsSubDirectory(output_path.c_str(), + homeOutputDirectory.c_str())) + { + std::string name = this->GetPathBasename(output_path); + while (this->GlobalGenerator->GetProjectMap().find(name) + != this->GlobalGenerator->GetProjectMap().end()) + { + name += "_"; + } + fout << + "\t\t\n" + "\t\t\t" << name << "\n" + "\t\t\t2\n" + "\t\t\t" + << this->GetEclipsePath(output_path) + << "\n" + "\t\t\n" + ; + } + // for LIBRARY_OUTPUT_PATH when not in binary dir + if (output_path != mf->GetDefinition("LIBRARY_OUTPUT_PATH")) + { + output_path = mf->GetDefinition("LIBRARY_OUTPUT_PATH"); + if (!cmSystemTools::IsSubDirectory(output_path.c_str(), + homeOutputDirectory.c_str())) + { + std::string name = this->GetPathBasename(output_path); + while (this->GlobalGenerator->GetProjectMap().find(name) + != this->GlobalGenerator->GetProjectMap().end()) + { + name += "_"; + } + fout << + "\t\t\n" + "\t\t\t" << name << "\n" + "\t\t\t2\n" + "\t\t\t" + << this->GetEclipsePath(output_path) + << "\n" + "\t\t\n" + ; + } + } + fout << "\t\n"; + } + + fout << "\n"; +} + +//---------------------------------------------------------------------------- +void cmExtraEclipseCDT4Generator::CreateCProjectFile() const +{ + std::set emmited; + + const cmMakefile* mf + = this->GlobalGenerator->GetLocalGenerators()[0]->GetMakefile(); + + const std::string homeOutputDirectory(mf->GetHomeOutputDirectory()); + const std::string filename = homeOutputDirectory + "/.cproject"; + + cmGeneratedFileStream fout(filename.c_str()); + if (!fout) + { + return; + } + + // add header + fout << + "\n" + "\n\n" + "\n" + "\n" + ; + + fout << "\n"; + + // Configuration settings... + fout << + "\n" + "\n" + "\n" + ; + // TODO: refactor this out... + switch (this->GetToolChainType(*mf)) + { + case EclipseToolchainLinux : + fout << "\n" + ; + fout << "\n" + "\n" + "\n" + "\n" + ; + break; + case EclipseToolchainCygwin : + fout << "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + ; + break; + case EclipseToolchainMinGW : + fout << "\n" + ; + break; + case EclipseToolchainSolaris : + fout << "\n" + ; + break; + case EclipseToolchainMacOSX : + fout << "\n" + "\n" + "\n" + ; + break; + case EclipseToolchainOther : + fout << "\n" + ; + fout << "\n" + ; + break; + default : + // *** Should never get here *** + fout << "\n"; + } + fout << "\n" + "\n" + ; + + // ??? + fout << + "\n" + "\n" + "\n" + ; + + // ??? + fout<<"\n" + ; + + // set the path entries (includes, libs, source dirs, etc.) + fout << "\n" + ; + // for each sub project with a linked resource to the source dir: + // - make it type 'src' + // - and exclude it from type 'out' + std::string exclude_from_out; + for (std::map >::const_iterator + it = this->GlobalGenerator->GetProjectMap().begin(); + it != this->GlobalGenerator->GetProjectMap().end(); + ++it) + { + fout << "first << "\"/>\n"; + + // exlude source directory from output search path + // - only if not named the same as an output directory + if (!cmSystemTools::FileIsDirectory( + std::string(homeOutputDirectory + "/" + it->first).c_str())) + { + exclude_from_out += it->first + "/|"; + } + } + exclude_from_out += "**/CMakeFiles/"; + fout << "\n"; + // add output entry for EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH + // - if it is a subdir of homeOutputDirectory, there is no need to add it + // - if it is not then create a linked resource and add the linked name + // but check it doesn't conflict with other linked resources names + std::string output_path = mf->GetDefinition("EXECUTABLE_OUTPUT_PATH"); + if (!cmSystemTools::IsSubDirectory(output_path.c_str(), + homeOutputDirectory.c_str())) + { + std::string name = this->GetPathBasename(output_path); + while (this->GlobalGenerator->GetProjectMap().find(name) + != this->GlobalGenerator->GetProjectMap().end()) + { + name += "_"; + } + fout << "\n"; + } + // for LIBRARY_OUTPUT_PATH when not in binary dir + if (output_path != mf->GetDefinition("LIBRARY_OUTPUT_PATH")) + { + output_path = mf->GetDefinition("LIBRARY_OUTPUT_PATH"); + if (!cmSystemTools::IsSubDirectory(output_path.c_str(), + homeOutputDirectory.c_str())) + { + std::string name = this->GetPathBasename(output_path); + while (this->GlobalGenerator->GetProjectMap().find(name) + != this->GlobalGenerator->GetProjectMap().end()) + { + name += "_"; + } + fout << "\n"; + } + } + + // include dirs + emmited.clear(); + for (std::vector::const_iterator + it = this->GlobalGenerator->GetLocalGenerators().begin(); + it != this->GlobalGenerator->GetLocalGenerators().end(); + ++it) + { + const std::vector& includeDirs + = (*it)->GetMakefile()->GetIncludeDirectories(); + for(std::vector::const_iterator inc = includeDirs.begin(); + inc != includeDirs.end(); + ++inc) + { + std::string dir = cmSystemTools::CollapseFullPath(inc->c_str()); + if(emmited.find(dir) == emmited.end()) + { + emmited.insert(dir); + fout << "GetEclipsePath(dir) + << "\" kind=\"inc\" path=\"\" system=\"true\"/>\n"; + } + } + } + fout << "\n"; + + // add build targets + fout << + "\n" + "\n" + ; + emmited.clear(); + const std::string make = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + cmGlobalGenerator* generator + = const_cast(this->GlobalGenerator); + if (generator->GetAllTargetName()) + { + emmited.insert(generator->GetAllTargetName()); + cmExtraEclipseCDT4Generator::AppendTarget(fout, + generator->GetAllTargetName(), + make); + } + if (generator->GetPreinstallTargetName()) + { + emmited.insert(generator->GetPreinstallTargetName()); + cmExtraEclipseCDT4Generator + ::AppendTarget(fout, generator->GetPreinstallTargetName(), make); + } + + if (generator->GetCleanTargetName()) + { + emmited.insert(generator->GetCleanTargetName()); + cmExtraEclipseCDT4Generator + ::AppendTarget(fout, generator->GetCleanTargetName(), make); + } + + bool installTargetCreated = false; + bool installStripTargetCreated = false; + bool testTargetCreated = false; + bool experimentalTargetCreated = false; + bool nightlyTargetCreated = false; + bool packageTargetCreated = false; + bool packageSourceTargetCreated = false; + bool rebuildCacheTargetCreated = false; + + // add all executable and library targets and some of the GLOBAL + // and UTILITY targets + for (std::vector::const_iterator + it = this->GlobalGenerator->GetLocalGenerators().begin(); + it != this->GlobalGenerator->GetLocalGenerators().end(); + ++it) + { + const cmTargets& targets = (*it)->GetMakefile()->GetTargets(); + for(cmTargets::const_iterator t = targets.begin(); t != targets.end(); ++t) + { + switch(t->second.GetType()) + { + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + { + // only add these global targets once + if ((t->first=="install") && (installTargetCreated==false)) + { + installTargetCreated=true; + } + else if ((t->first=="install/strip") + && (installStripTargetCreated==false)) + { + installStripTargetCreated=true; + } + else if ((t->first=="test") && (testTargetCreated==false)) + { + testTargetCreated=true; + } + else if ((t->first=="Experimental") + && (experimentalTargetCreated==false)) + { + experimentalTargetCreated=true; + } + else if ((t->first=="Nightly") && (nightlyTargetCreated==false)) + { + nightlyTargetCreated=true; + } + else if ((t->first=="package") && (packageTargetCreated==false)) + { + packageTargetCreated=true; + } + else if ((t->first=="package_source") + && (packageSourceTargetCreated==false)) + { + packageSourceTargetCreated=true; + } + else if ((t->first=="rebuild_cache") + && (rebuildCacheTargetCreated==false)) + { + rebuildCacheTargetCreated=true; + } + else // in all cases above fallthrough + { + break; + } + } + case cmTarget::EXECUTABLE: + case cmTarget::STATIC_LIBRARY: + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + { + if(emmited.find(t->first) == emmited.end()) + { + emmited.insert(t->first); + cmExtraEclipseCDT4Generator::AppendTarget(fout, t->first, make); + } + break; + } + // ignore these: + case cmTarget::INSTALL_FILES: + case cmTarget::INSTALL_PROGRAMS: + case cmTarget::INSTALL_DIRECTORY: + default: + break; + } + } + } + fout << "\n" + "\n" + ; + + this->AppendStorageScanners(fout); + + fout << "\n" + "\n" + "\n" + "GetProjectName() << ".null.1\"" + " name=\"" << mf->GetProjectName() << "\"/>\n" + "\n" + "\n" + ; +} + +//---------------------------------------------------------------------------- +cmExtraEclipseCDT4Generator::EclipseToolchainType +cmExtraEclipseCDT4Generator::GetToolChainType(const cmMakefile& makefile) +{ + if (makefile.IsSet("UNIX")) + { + if (makefile.IsSet("CYGWIN")) + { + return EclipseToolchainCygwin; + } + if (makefile.IsSet("APPLE" )) + { + return EclipseToolchainMacOSX; + } + // *** how do I determine if it is Solaris ??? + return EclipseToolchainLinux; + } + else if (makefile.IsSet("WIN32")) + { + if (makefile.IsSet("MINGW")) + { + return EclipseToolchainMinGW; + } + if (makefile.IsSet("MSYS" )) + { + return EclipseToolchainMinGW; + } + return EclipseToolchainOther; + } + else + { + return EclipseToolchainOther; + } +} + +std::string +cmExtraEclipseCDT4Generator::GetEclipsePath(const std::string& path) +{ +#if defined(__CYGWIN__) + std::string cmd = "cygpath -m " + path; + std::string out; + if (!cmSystemTools::RunCommand(cmd.c_str(), out, 0, false)) + { + return path; + } + else + { + out.erase(out.find_last_of('\n')); + return out; + } +#else + return path; +#endif +} + +std::string +cmExtraEclipseCDT4Generator::GetPathBasename(const std::string& path) +{ + std::string outputBasename = path; + while (outputBasename.size() > 0 && + (outputBasename[outputBasename.size() - 1] == '/' || + outputBasename[outputBasename.size() - 1] == '\\')) + { + outputBasename.resize(outputBasename.size() - 1); + } + std::string::size_type loc = outputBasename.find_last_of("/\\"); + if (loc != std::string::npos) + { + outputBasename = outputBasename.substr(loc + 1); + } + + return outputBasename; +} + +//---------------------------------------------------------------------------- +// Helper functions +//---------------------------------------------------------------------------- +void cmExtraEclipseCDT4Generator +::AppendStorageScanners(cmGeneratedFileStream& fout) +{ + fout << + "\n" + "\n" + ; + cmExtraEclipseCDT4Generator::AppendScannerProfile(fout, + "org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile", + true, "", true, "specsFile", + "-E -P -v -dD ${plugin_state_location}/${specs_file}", + "gcc", true, true); + cmExtraEclipseCDT4Generator::AppendScannerProfile(fout, + "org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile", + true, "", true, "makefileGenerator", + "-f ${project_name}_scd.mk", + "make", true, true); + + fout << "\n"; +} + +void cmExtraEclipseCDT4Generator::AppendTarget(cmGeneratedFileStream& fout, + const std::string& target, + const std::string& make) +{ + fout << + "\n" + "" + << cmExtraEclipseCDT4Generator::GetEclipsePath(make) + << "\n" + "\n" + "" << target << "\n" + "true\n" + "false\n" + "\n" + ; +} + +void cmExtraEclipseCDT4Generator +::AppendScannerProfile(cmGeneratedFileStream& fout, + const std::string& profileID, + bool openActionEnabled, + const std::string& openActionFilePath, + bool pParserEnabled, + const std::string& scannerInfoProviderID, + const std::string& runActionArguments, + const std::string& runActionCommand, + bool runActionUseDefault, + bool sipParserEnabled) +{ + fout << + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + ; +} diff --git a/CMakeLua/Source/cmExtraEclipseCDT4Generator.h b/CMakeLua/Source/cmExtraEclipseCDT4Generator.h new file mode 100644 index 0000000..ab90f71 --- /dev/null +++ b/CMakeLua/Source/cmExtraEclipseCDT4Generator.h @@ -0,0 +1,96 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmExtraEclipseCDT4Generator.h,v $ + Language: C++ + Date: $Date: 2007/08/17 14:05:39 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved. + Copyright (c) 2007 Miguel A. Figueroa-Villanueva. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmExtraEclipseCDT4Generator_h +#define cmExtraEclipseCDT4Generator_h + +#include "cmExternalMakefileProjectGenerator.h" + +class cmMakefile; +class cmGeneratedFileStream; + +/** \class cmExtraEclipseCDT4Generator + * \brief Write Eclipse project files for Makefile based projects + * + * This generator is in early alpha stage. + */ +class cmExtraEclipseCDT4Generator : public cmExternalMakefileProjectGenerator +{ +public: + cmExtraEclipseCDT4Generator(); + + static cmExternalMakefileProjectGenerator* New() { + return new cmExtraEclipseCDT4Generator; + } + + virtual const char* GetName() const { + return cmExtraEclipseCDT4Generator::GetActualName(); + } + + static const char* GetActualName() { return "Eclipse CDT4"; } + + virtual void GetDocumentation(cmDocumentationEntry& entry, + const char* fullName) const; + + virtual void SetGlobalGenerator(cmGlobalGenerator* generator); + + virtual void Generate(); + +private: + // create .project file + void CreateProjectFile() const; + + // create .cproject file + void CreateCProjectFile() const; + + // Eclipse supported toolchain types + enum EclipseToolchainType + { + EclipseToolchainOther, + EclipseToolchainLinux, + EclipseToolchainCygwin, + EclipseToolchainMinGW, + EclipseToolchainSolaris, + EclipseToolchainMacOSX + }; + static EclipseToolchainType GetToolChainType(const cmMakefile& makefile); + + // If built with cygwin cmake, convert posix to windows path. + static std::string GetEclipsePath(const std::string& path); + + // Extract basename. + static std::string GetPathBasename(const std::string& path); + + // Helper functions + static void AppendStorageScanners(cmGeneratedFileStream& fout); + static void AppendTarget (cmGeneratedFileStream& fout, + const std::string& target, + const std::string& make); + static void AppendScannerProfile (cmGeneratedFileStream& fout, + const std::string& profileID, + bool openActionEnabled, + const std::string& openActionFilePath, + bool pParserEnabled, + const std::string& scannerInfoProviderID, + const std::string& runActionArguments, + const std::string& runActionCommand, + bool runActionUseDefault, + bool sipParserEnabled); +}; + +#endif diff --git a/CMakeLua/Source/cmFLTKWrapUICommand.cxx b/CMakeLua/Source/cmFLTKWrapUICommand.cxx new file mode 100644 index 0000000..6d6a584 --- /dev/null +++ b/CMakeLua/Source/cmFLTKWrapUICommand.cxx @@ -0,0 +1,166 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFLTKWrapUICommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.38 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFLTKWrapUICommand.h" + +#include "cmSourceFile.h" + +// cmFLTKWrapUICommand +bool cmFLTKWrapUICommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // what is the current source dir + std::string cdir = this->Makefile->GetCurrentDirectory(); + const char* fluid_exe = + this->Makefile->GetRequiredDefinition("FLTK_FLUID_EXECUTABLE"); + + // get parameter for the command + this->Target = args[0]; // Target that will use the generated files + + std::vector newArgs; + this->Makefile->ExpandSourceListArguments(args,newArgs, 1); + + // get the list of GUI files from which .cxx and .h will be generated + std::string outputDirectory = this->Makefile->GetCurrentOutputDirectory(); + + // Some of the generated files are *.h so the directory "GUI" + // where they are created have to be added to the include path + this->Makefile->AddIncludeDirectory( outputDirectory.c_str() ); + + for(std::vector::iterator i = (newArgs.begin() + 1); + i != newArgs.end(); i++) + { + cmSourceFile *curr = this->Makefile->GetSource(i->c_str()); + // if we should use the source GUI + // to generate .cxx and .h files + if (!curr || !curr->GetPropertyAsBool("WRAP_EXCLUDE")) + { + std::string outName = outputDirectory; + outName += "/"; + outName += cmSystemTools::GetFilenameWithoutExtension(*i); + std::string hname = outName; + hname += ".h"; + std::string origname = cdir + "/" + *i; + // add starting depends + std::vector depends; + depends.push_back(origname); + depends.push_back(fluid_exe); + std::string cxxres = outName; + cxxres += ".cxx"; + + cmCustomCommandLine commandLine; + commandLine.push_back(fluid_exe); + commandLine.push_back("-c"); // instructs Fluid to run in command line + commandLine.push_back("-h"); // optionally rename .h files + commandLine.push_back(hname); + commandLine.push_back("-o"); // optionally rename .cxx files + commandLine.push_back(cxxres); + commandLine.push_back(origname);// name of the GUI fluid file + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + // Add command for generating the .h and .cxx files + const char* no_main_dependency = 0; + const char* no_comment = 0; + const char* no_working_dir = 0; + this->Makefile->AddCustomCommandToOutput(cxxres.c_str(), + depends, no_main_dependency, + commandLines, no_comment, + no_working_dir); + this->Makefile->AddCustomCommandToOutput(hname.c_str(), + depends, no_main_dependency, + commandLines, no_comment, + no_working_dir); + + cmSourceFile *sf = this->Makefile->GetSource(cxxres.c_str()); + sf->AddDepend(hname.c_str()); + sf->AddDepend(origname.c_str()); + this->GeneratedSourcesClasses.push_back(sf); + } + } + + // create the variable with the list of sources in it + size_t lastHeadersClass = this->GeneratedSourcesClasses.size(); + std::string sourceListValue; + for(size_t classNum = 0; classNum < lastHeadersClass; classNum++) + { + if (classNum) + { + sourceListValue += ";"; + } + sourceListValue += this->GeneratedSourcesClasses[classNum]->GetFullPath(); + } + std::string varName = this->Target; + varName += "_FLTK_UI_SRCS"; + this->Makefile->AddDefinition(varName.c_str(), sourceListValue.c_str()); + + return true; +} + +void cmFLTKWrapUICommand::FinalPass() +{ + // people should add the srcs to the target themselves, but the old command + // didn't support that, so check and see if they added the files in and if + // they didn;t then print a warning and add then anyhow + std::vector const& srcs = + this->Makefile->GetTargets()[this->Target].GetSourceFiles(); + bool found = false; + for (unsigned int i = 0; i < srcs.size(); ++i) + { + if (srcs[i]->GetFullPath() == + this->GeneratedSourcesClasses[0]->GetFullPath()) + { + found = true; + break; + } + } + if (!found) + { + std::string msg = + "In CMake 2.2 the FLTK_WRAP_UI command sets a variable to the list of " + "source files that should be added to your executable or library. It " + "appears that you have not added these source files to your target. " + "You should change your CMakeLists.txt file to " + "directly add the generated files to the target. " + "For example FTLK_WRAP_UI(foo src1 src2 src3) " + "will create a variable named foo_FLTK_UI_SRCS that contains the list " + "of sources to add to your target when you call ADD_LIBRARY or " + "ADD_EXECUTABLE. For now CMake will add the sources to your target " + "for you as was done in CMake 2.0 and earlier. In the future this may " + "become an error."; + msg +="The problem was found while processing the source directory: "; + msg += this->Makefile->GetStartDirectory(); + cmSystemTools::Message(msg.c_str(),"Warning"); + // first we add the rules for all the .fl to .h and .cxx files + size_t lastHeadersClass = this->GeneratedSourcesClasses.size(); + + // Generate code for all the .fl files + for(size_t classNum = 0; classNum < lastHeadersClass; classNum++) + { + this->Makefile->GetTargets()[this->Target] + .AddSourceFile(this->GeneratedSourcesClasses[classNum]); + } + } +} + + + diff --git a/CMakeLua/Source/cmFLTKWrapUICommand.h b/CMakeLua/Source/cmFLTKWrapUICommand.h new file mode 100644 index 0000000..6122a12 --- /dev/null +++ b/CMakeLua/Source/cmFLTKWrapUICommand.h @@ -0,0 +1,98 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFLTKWrapUICommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFLTKWrapUICommand_h +#define cmFLTKWrapUICommand_h + +#include "cmCommand.h" + +/** \class cmFLTKWrapUICommand + * \brief Create .h and .cxx files rules for FLTK user interfaces files + * + * cmFLTKWrapUICommand is used to create wrappers for FLTK classes into + * normal C++ + */ +class cmFLTKWrapUICommand : public cmCommand +{ +public: + cmTypeMacro(cmFLTKWrapUICommand, cmCommand); + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFLTKWrapUICommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This is called at the end after all the information + * specified by the command is accumulated. Most commands do + * not implement this method. At this point, reading and + * writing to the cache can be done. + */ + virtual void FinalPass(); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "fltk_wrap_ui";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Create FLTK user interfaces Wrappers."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " fltk_wrap_ui(resultingLibraryName source1\n" + " source2 ... sourceN )\n" + "Produce .h and .cxx files for all the .fl and .fld files listed. " + "The resulting .h and .cxx files will be added to a variable named " + "resultingLibraryName_FLTK_UI_SRCS which should be added to your " + "library."; + } + +private: + /** + * List of produced files. + */ + std::vector GeneratedSourcesClasses; + + /** + * List of Fluid files that provide the source + * generating .cxx and .h files + */ + std::string Target; +}; + + + +#endif diff --git a/CMakeLua/Source/cmFileCommand.cxx b/CMakeLua/Source/cmFileCommand.cxx new file mode 100644 index 0000000..ee3775d --- /dev/null +++ b/CMakeLua/Source/cmFileCommand.cxx @@ -0,0 +1,1873 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFileCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.96 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFileCommand.h" +#include "cmake.h" +#include "cmHexFileConverter.h" +#include "cmFileTimeComparison.h" + +#include +#include + +#include +#include +#include + +// Table of permissions flags. +#if defined(_WIN32) && !defined(__CYGWIN__) +static mode_t mode_owner_read = S_IREAD; +static mode_t mode_owner_write = S_IWRITE; +static mode_t mode_owner_execute = S_IEXEC; +static mode_t mode_group_read = 0; +static mode_t mode_group_write = 0; +static mode_t mode_group_execute = 0; +static mode_t mode_world_read = 0; +static mode_t mode_world_write = 0; +static mode_t mode_world_execute = 0; +static mode_t mode_setuid = 0; +static mode_t mode_setgid = 0; +#else +static mode_t mode_owner_read = S_IRUSR; +static mode_t mode_owner_write = S_IWUSR; +static mode_t mode_owner_execute = S_IXUSR; +static mode_t mode_group_read = S_IRGRP; +static mode_t mode_group_write = S_IWGRP; +static mode_t mode_group_execute = S_IXGRP; +static mode_t mode_world_read = S_IROTH; +static mode_t mode_world_write = S_IWOTH; +static mode_t mode_world_execute = S_IXOTH; +static mode_t mode_setuid = S_ISUID; +static mode_t mode_setgid = S_ISGID; +#endif + +// cmLibraryCommand +bool cmFileCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("must be called with at least two arguments."); + return false; + } + std::string subCommand = args[0]; + if ( subCommand == "WRITE" ) + { + return this->HandleWriteCommand(args, false); + } + else if ( subCommand == "APPEND" ) + { + return this->HandleWriteCommand(args, true); + } + else if ( subCommand == "READ" ) + { + return this->HandleReadCommand(args); + } + else if ( subCommand == "STRINGS" ) + { + return this->HandleStringsCommand(args); + } + else if ( subCommand == "GLOB" ) + { + return this->HandleGlobCommand(args, false); + } + else if ( subCommand == "GLOB_RECURSE" ) + { + return this->HandleGlobCommand(args, true); + } + else if ( subCommand == "MAKE_DIRECTORY" ) + { + return this->HandleMakeDirectoryCommand(args); + } + else if ( subCommand == "REMOVE" ) + { + return this->HandleRemove(args, false); + } + else if ( subCommand == "REMOVE_RECURSE" ) + { + return this->HandleRemove(args, true); + } + else if ( subCommand == "INSTALL" ) + { + return this->HandleInstallCommand(args); + } + else if ( subCommand == "RELATIVE_PATH" ) + { + return this->HandleRelativePathCommand(args); + } + else if ( subCommand == "TO_CMAKE_PATH" ) + { + return this->HandleCMakePathCommand(args, false); + } + else if ( subCommand == "TO_NATIVE_PATH" ) + { + return this->HandleCMakePathCommand(args, true); + } + + std::string e = "does not recognize sub-command "+subCommand; + this->SetError(e.c_str()); + return false; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleWriteCommand(std::vector const& args, + bool append) +{ + std::string message; + std::vector::const_iterator i = args.begin(); + + i++; // Get rid of subcommand + + std::string fileName = *i; + if ( !cmsys::SystemTools::FileIsFullPath(i->c_str()) ) + { + fileName = this->Makefile->GetCurrentDirectory(); + fileName += "/" + *i; + } + + i++; + + for(;i != args.end(); ++i) + { + message += *i; + } + if ( !this->Makefile->CanIWriteThisFile(fileName.c_str()) ) + { + std::string e + = "attempted to write a file: " + fileName + + " into a source directory."; + this->SetError(e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + std::string dir = cmSystemTools::GetFilenamePath(fileName); + cmSystemTools::MakeDirectory(dir.c_str()); + + mode_t mode = +#if defined( _MSC_VER ) || defined( __MINGW32__ ) + S_IREAD | S_IWRITE +#elif defined( __BORLANDC__ ) + S_IRUSR | S_IWUSR +#else + S_IRUSR | S_IWUSR | + S_IRGRP | + S_IROTH +#endif + ; + + // Set permissions to writable + if ( cmSystemTools::GetPermissions(fileName.c_str(), mode) ) + { + cmSystemTools::SetPermissions(fileName.c_str(), +#if defined( _MSC_VER ) || defined( __MINGW32__ ) + S_IREAD | S_IWRITE +#else + S_IRUSR | S_IWUSR +#endif + ); + } + // If GetPermissions fails, pretend like it is ok. File open will fail if + // the file is not writable + std::ofstream file(fileName.c_str(), append?std::ios::app: std::ios::out); + if ( !file ) + { + std::string error = "Internal CMake error when trying to open file: "; + error += fileName.c_str(); + error += " for writing."; + this->SetError(error.c_str()); + return false; + } + file << message; + file.close(); + cmSystemTools::SetPermissions(fileName.c_str(), mode); + this->Makefile->AddWrittenFile(fileName.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleReadCommand(std::vector const& args) +{ + if ( args.size() < 3 ) + { + this->SetError("READ must be called with at least two additional " + "arguments"); + return false; + } + + cmCommandArgumentsHelper argHelper; + cmCommandArgumentGroup group; + + cmCAString readArg (&argHelper, "READ"); + cmCAString fileNameArg (&argHelper, 0); + cmCAString resultArg (&argHelper, 0); + + cmCAString offsetArg (&argHelper, "OFFSET", &group); + cmCAString limitArg (&argHelper, "LIMIT", &group); + cmCAEnabler hexOutputArg (&argHelper, "HEX", &group); + readArg.Follows(0); + fileNameArg.Follows(&readArg); + resultArg.Follows(&fileNameArg); + group.Follows(&resultArg); + argHelper.Parse(&args, 0); + + std::string fileName = fileNameArg.GetString(); + if ( !cmsys::SystemTools::FileIsFullPath(fileName.c_str()) ) + { + fileName = this->Makefile->GetCurrentDirectory(); + fileName += "/" + fileNameArg.GetString(); + } + + std::string variable = resultArg.GetString(); + + // Open the specified file. +#if defined(_WIN32) || defined(__CYGWIN__) + std::ifstream file(fileName.c_str(), std::ios::in | + (hexOutputArg.IsEnabled() ? std::ios::binary : std::ios::in)); +#else + std::ifstream file(fileName.c_str(), std::ios::in); +#endif + + if ( !file ) + { + std::string error = "Internal CMake error when trying to open file: "; + error += fileName.c_str(); + error += " for reading."; + this->SetError(error.c_str()); + return false; + } + + // is there a limit? + long sizeLimit = -1; + if (limitArg.GetString().size() > 0) + { + sizeLimit = atoi(limitArg.GetCString()); + } + + // is there an offset? + long offset = 0; + if (offsetArg.GetString().size() > 0) + { + offset = atoi(offsetArg.GetCString()); + } + + file.seekg(offset); + + std::string output; + + if (hexOutputArg.IsEnabled()) + { + // Convert part of the file into hex code + int c; + while((sizeLimit != 0) && (c = file.get(), file)) + { + char hex[4]; + sprintf(hex, "%x", c&0xff); + output += hex; + if (sizeLimit > 0) + { + sizeLimit--; + } + } + } + else + { + std::string line; + bool has_newline = false; + while (sizeLimit != 0 && + cmSystemTools::GetLineFromStream(file, line, &has_newline, + sizeLimit) ) + { + if (sizeLimit > 0) + { + sizeLimit = sizeLimit - static_cast(line.size()); + if (has_newline) + { + sizeLimit--; + } + if (sizeLimit < 0) + { + sizeLimit = 0; + } + } + output += line; + if ( has_newline ) + { + output += "\n"; + } + } + } + this->Makefile->AddDefinition(variable.c_str(), output.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleStringsCommand(std::vector const& args) +{ + if(args.size() < 3) + { + this->SetError("STRINGS requires a file name and output variable"); + return false; + } + + // Get the file to read. + std::string fileName = args[1]; + if(!cmsys::SystemTools::FileIsFullPath(fileName.c_str())) + { + fileName = this->Makefile->GetCurrentDirectory(); + fileName += "/" + args[1]; + } + + // Get the variable in which to store the results. + std::string outVar = args[2]; + + // Parse the options. + enum { arg_none, + arg_limit_input, + arg_limit_output, + arg_limit_count, + arg_length_minimum, + arg_length_maximum, + arg__maximum, + arg_regex }; + unsigned int minlen = 0; + unsigned int maxlen = 0; + int limit_input = -1; + int limit_output = -1; + unsigned int limit_count = 0; + cmsys::RegularExpression regex; + bool have_regex = false; + bool newline_consume = false; + bool hex_conversion_enabled = true; + int arg_mode = arg_none; + for(unsigned int i=3; i < args.size(); ++i) + { + if(args[i] == "LIMIT_INPUT") + { + arg_mode = arg_limit_input; + } + else if(args[i] == "LIMIT_OUTPUT") + { + arg_mode = arg_limit_output; + } + else if(args[i] == "LIMIT_COUNT") + { + arg_mode = arg_limit_count; + } + else if(args[i] == "LENGTH_MINIMUM") + { + arg_mode = arg_length_minimum; + } + else if(args[i] == "LENGTH_MAXIMUM") + { + arg_mode = arg_length_maximum; + } + else if(args[i] == "REGEX") + { + arg_mode = arg_regex; + } + else if(args[i] == "NEWLINE_CONSUME") + { + newline_consume = true; + arg_mode = arg_none; + } + else if(args[i] == "NO_HEX_CONVERSION") + { + hex_conversion_enabled = false; + arg_mode = arg_none; + } + else if(arg_mode == arg_limit_input) + { + if(sscanf(args[i].c_str(), "%d", &limit_input) != 1 || + limit_input < 0) + { + cmOStringStream e; + e << "STRINGS option LIMIT_INPUT value \"" + << args[i] << "\" is not an unsigned integer."; + this->SetError(e.str().c_str()); + return false; + } + arg_mode = arg_none; + } + else if(arg_mode == arg_limit_output) + { + if(sscanf(args[i].c_str(), "%d", &limit_output) != 1 || + limit_output < 0) + { + cmOStringStream e; + e << "STRINGS option LIMIT_OUTPUT value \"" + << args[i] << "\" is not an unsigned integer."; + this->SetError(e.str().c_str()); + return false; + } + arg_mode = arg_none; + } + else if(arg_mode == arg_limit_count) + { + int count; + if(sscanf(args[i].c_str(), "%d", &count) != 1 || count < 0) + { + cmOStringStream e; + e << "STRINGS option LIMIT_COUNT value \"" + << args[i] << "\" is not an unsigned integer."; + this->SetError(e.str().c_str()); + return false; + } + limit_count = count; + arg_mode = arg_none; + } + else if(arg_mode == arg_length_minimum) + { + int len; + if(sscanf(args[i].c_str(), "%d", &len) != 1 || len < 0) + { + cmOStringStream e; + e << "STRINGS option LENGTH_MINIMUM value \"" + << args[i] << "\" is not an unsigned integer."; + this->SetError(e.str().c_str()); + return false; + } + minlen = len; + arg_mode = arg_none; + } + else if(arg_mode == arg_length_maximum) + { + int len; + if(sscanf(args[i].c_str(), "%d", &len) != 1 || len < 0) + { + cmOStringStream e; + e << "STRINGS option LENGTH_MAXIMUM value \"" + << args[i] << "\" is not an unsigned integer."; + this->SetError(e.str().c_str()); + return false; + } + maxlen = len; + arg_mode = arg_none; + } + else if(arg_mode == arg_regex) + { + if(!regex.compile(args[i].c_str())) + { + cmOStringStream e; + e << "STRINGS option REGEX value \"" + << args[i] << "\" could not be compiled."; + this->SetError(e.str().c_str()); + return false; + } + have_regex = true; + arg_mode = arg_none; + } + else + { + cmOStringStream e; + e << "STRINGS given unknown argument \"" + << args[i] << "\""; + this->SetError(e.str().c_str()); + return false; + } + } + + if (hex_conversion_enabled) + { + // TODO: should work without temp file, but just on a memory buffer + std::string binaryFileName = this->Makefile->GetCurrentOutputDirectory(); + binaryFileName += cmake::GetCMakeFilesDirectory(); + binaryFileName += "/FileCommandStringsBinaryFile"; + if(cmHexFileConverter::TryConvert(fileName.c_str(),binaryFileName.c_str())) + { + fileName = binaryFileName; + } + } + + // Open the specified file. +#if defined(_WIN32) || defined(__CYGWIN__) + std::ifstream fin(fileName.c_str(), std::ios::in | std::ios::binary); +#else + std::ifstream fin(fileName.c_str(), std::ios::in); +#endif + if(!fin) + { + cmOStringStream e; + e << "STRINGS file \"" << fileName << "\" cannot be read."; + this->SetError(e.str().c_str()); + return false; + } + + // Parse strings out of the file. + int output_size = 0; + std::vector strings; + std::string s; + int c; + while((!limit_count || strings.size() < limit_count) && + (limit_input < 0 || static_cast(fin.tellg()) < limit_input) && + (c = fin.get(), fin)) + { + if(c == '\0') + { + // A terminating null character has been found. Check if the + // current string matches the requirements. Since it was + // terminated by a null character, we require that the length be + // at least one no matter what the user specified. + if(s.length() >= minlen && s.length() >= 1 && + (!have_regex || regex.find(s.c_str()))) + { + output_size += static_cast(s.size()) + 1; + if(limit_output >= 0 && output_size >= limit_output) + { + s = ""; + break; + } + strings.push_back(s); + } + + // Reset the string to empty. + s = ""; + } + else if(c == '\n' && !newline_consume) + { + // The current line has been terminated. Check if the current + // string matches the requirements. The length may now be as + // low as zero since blank lines are allowed. + if(s.length() >= minlen && + (!have_regex || regex.find(s.c_str()))) + { + output_size += static_cast(s.size()) + 1; + if(limit_output >= 0 && output_size >= limit_output) + { + s = ""; + break; + } + strings.push_back(s); + } + + // Reset the string to empty. + s = ""; + } + else if(c == '\r') + { + // Ignore CR character to make output always have UNIX newlines. + } + else if(c >= 0x20 && c < 0x7F || c == '\t' || + (c == '\n' && newline_consume)) + { + // This is an ASCII character that may be part of a string. + s += c; + } + else + { + // This is a non-string character. Reset the string to emtpy. + s = ""; + } + + // Terminate a string if the maximum length is reached. + if(maxlen > 0 && s.size() == maxlen) + { + if(s.length() >= minlen && + (!have_regex || regex.find(s.c_str()))) + { + output_size += static_cast(s.size()) + 1; + if(limit_output >= 0 && output_size >= limit_output) + { + s = ""; + break; + } + strings.push_back(s); + } + s = ""; + } + } + + // If there is a non-empty current string we have hit the end of the + // input file or the input size limit. Check if the current string + // matches the requirements. + if((!limit_count || strings.size() < limit_count) && + !s.empty() && s.length() >= minlen && + (!have_regex || regex.find(s.c_str()))) + { + output_size += static_cast(s.size()) + 1; + if(limit_output < 0 || output_size < limit_output) + { + strings.push_back(s); + } + } + + // Encode the result in a CMake list. + const char* sep = ""; + std::string output; + for(std::vector::const_iterator si = strings.begin(); + si != strings.end(); ++si) + { + // Separate the strings in the output to make it a list. + output += sep; + sep = ";"; + + // Store the string in the output, but escape semicolons to + // make sure it is a list. + std::string const& sr = *si; + for(unsigned int i=0; i < sr.size(); ++i) + { + if(sr[i] == ';') + { + output += '\\'; + } + output += sr[i]; + } + } + + // Save the output in a makefile variable. + this->Makefile->AddDefinition(outVar.c_str(), output.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleGlobCommand(std::vector const& args, + bool recurse) +{ + if ( args.size() < 2 ) + { + this->SetError("GLOB requires at least a variable name"); + return false; + } + + std::vector::const_iterator i = args.begin(); + + i++; // Get rid of subcommand + + std::string variable = *i; + i++; + cmsys::Glob g; + g.SetRecurse(recurse); + std::string output = ""; + bool first = true; + for ( ; i != args.end(); ++i ) + { + if ( *i == "RELATIVE" ) + { + ++i; // skip RELATIVE + if ( i == args.end() ) + { + this->SetError("GLOB requires a directory after the RELATIVE tag"); + return false; + } + g.SetRelative(i->c_str()); + ++i; + if(i == args.end()) + { + this->SetError("GLOB requires a glob expression after the directory"); + return false; + } + } + if ( !cmsys::SystemTools::FileIsFullPath(i->c_str()) ) + { + std::string expr = this->Makefile->GetCurrentDirectory(); + // Handle script mode + if ( expr.size() > 0 ) + { + expr += "/" + *i; + g.FindFiles(expr); + } + else + { + g.FindFiles(*i); + } + } + else + { + g.FindFiles(*i); + } + std::vector::size_type cc; + std::vector& files = g.GetFiles(); + for ( cc = 0; cc < files.size(); cc ++ ) + { + if ( !first ) + { + output += ";"; + } + output += files[cc]; + first = false; + } + } + this->Makefile->AddDefinition(variable.c_str(), output.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleMakeDirectoryCommand( + std::vector const& args) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::vector::const_iterator i = args.begin(); + + i++; // Get rid of subcommand + + std::string expr; + for ( ; i != args.end(); ++i ) + { + const std::string* cdir = &(*i); + if ( !cmsys::SystemTools::FileIsFullPath(i->c_str()) ) + { + expr = this->Makefile->GetCurrentDirectory(); + expr += "/" + *i; + cdir = &expr; + } + if ( !this->Makefile->CanIWriteThisFile(cdir->c_str()) ) + { + std::string e = "attempted to create a directory: " + *cdir + + " into a source directory."; + this->SetError(e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + if ( !cmSystemTools::MakeDirectory(cdir->c_str()) ) + { + std::string error = "problem creating directory: " + *cdir; + this->SetError(error.c_str()); + return false; + } + } + return true; +} + +//---------------------------------------------------------------------------- +// File installation helper class. +struct cmFileInstaller +{ + // Methods to actually install files. + bool InstallFile(const char* fromFile, const char* toFile, bool always); + bool InstallDirectory(const char* source, const char* destination, + bool always); + + // All instances need the file command and makefile using them. + cmFileInstaller(cmFileCommand* fc, cmMakefile* mf): + FileCommand(fc), Makefile(mf), DestDirLength(0), MatchlessFiles(true) + { + // Get the current manifest. + this->Manifest = + this->Makefile->GetSafeDefinition("CMAKE_INSTALL_MANIFEST_FILES"); + } + ~cmFileInstaller() + { + // Save the updated install manifest. + this->Makefile->AddDefinition("CMAKE_INSTALL_MANIFEST_FILES", + this->Manifest.c_str()); + } + +private: + cmFileCommand* FileCommand; + cmMakefile* Makefile; + cmFileTimeComparison FileTimes; +public: + + // The length of the destdir setting. + int DestDirLength; + + // Whether to install a file not matching any expression. + bool MatchlessFiles; + + // The current file manifest (semicolon separated list). + std::string Manifest; + + // Permissions for files and directories installed by this object. + mode_t FilePermissions; + mode_t DirPermissions; + + // Properties set by pattern and regex match rules. + struct MatchProperties + { + bool Exclude; + mode_t Permissions; + MatchProperties(): Exclude(false), Permissions(0) {} + }; + struct MatchRule + { + cmsys::RegularExpression Regex; + MatchProperties Properties; + std::string RegexString; + MatchRule(std::string const& regex): + Regex(regex.c_str()), RegexString(regex) {} + }; + std::vector MatchRules; + + // Get the properties from rules matching this input file. + MatchProperties CollectMatchProperties(const char* file, + bool isDirectory) + { + // Match rules are case-insensitive on some platforms. +#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) + std::string lower = cmSystemTools::LowerCase(file); + file = lower.c_str(); +#endif + + // Collect properties from all matching rules. + bool matched = false; + MatchProperties result; + for(std::vector::iterator mr = this->MatchRules.begin(); + mr != this->MatchRules.end(); ++mr) + { + if(mr->Regex.find(file)) + { + matched = true; + result.Exclude |= mr->Properties.Exclude; + result.Permissions |= mr->Properties.Permissions; + } + } + if(!matched && !this->MatchlessFiles && !isDirectory) + { + result.Exclude = true; + } + return result; + } + + // Append a file to the installation manifest. + void ManifestAppend(std::string const& file) + { + this->Manifest += ";"; + this->Manifest += file.substr(this->DestDirLength); + } + + // Translate an argument to a permissions bit. + bool CheckPermissions(std::string const& arg, mode_t& permissions) + { + if(arg == "OWNER_READ") { permissions |= mode_owner_read; } + else if(arg == "OWNER_WRITE") { permissions |= mode_owner_write; } + else if(arg == "OWNER_EXECUTE") { permissions |= mode_owner_execute; } + else if(arg == "GROUP_READ") { permissions |= mode_group_read; } + else if(arg == "GROUP_WRITE") { permissions |= mode_group_write; } + else if(arg == "GROUP_EXECUTE") { permissions |= mode_group_execute; } + else if(arg == "WORLD_READ") { permissions |= mode_world_read; } + else if(arg == "WORLD_WRITE") { permissions |= mode_world_write; } + else if(arg == "WORLD_EXECUTE") { permissions |= mode_world_execute; } + else if(arg == "SETUID") { permissions |= mode_setuid; } + else if(arg == "SETGID") { permissions |= mode_setgid; } + else + { + cmOStringStream e; + e << "INSTALL given invalid permission \"" << arg << "\"."; + this->FileCommand->SetError(e.str().c_str()); + return false; + } + return true; + } + +private: + bool InstallSymlink(const char* fromFile, const char* toFile, bool always); +}; + +//---------------------------------------------------------------------------- +bool cmFileInstaller::InstallSymlink(const char* fromFile, const char* toFile, + bool always) +{ + // Read the original symlink. + std::string symlinkTarget; + if(!cmSystemTools::ReadSymlink(fromFile, symlinkTarget)) + { + cmOStringStream e; + e << "INSTALL cannot read symlink \"" << fromFile + << "\" to duplicate at \"" << toFile << "\"."; + this->FileCommand->SetError(e.str().c_str()); + return false; + } + + // Compare the symlink value to that at the destination if not + // always installing. + bool copy = true; + if(!always) + { + std::string oldSymlinkTarget; + if(cmSystemTools::ReadSymlink(toFile, oldSymlinkTarget)) + { + if(symlinkTarget == oldSymlinkTarget) + { + copy = false; + } + } + } + + // Inform the user about this file installation. + std::string message = (copy? "Installing: " : "Up-to-date: "); + message += toFile; + this->Makefile->DisplayStatus(message.c_str(), -1); + + if(copy) + { + // Remove the destination file so we can always create the symlink. + cmSystemTools::RemoveFile(toFile); + + // Create the symlink. + if(!cmSystemTools::CreateSymlink(symlinkTarget.c_str(), toFile)) + { + cmOStringStream e; + e << "INSTALL cannot duplicate symlink \"" << fromFile + << "\" at \"" << toFile << "\"."; + this->FileCommand->SetError(e.str().c_str()); + return false; + } + } + + // Add the file to the manifest. + this->ManifestAppend(toFile); + + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileInstaller::InstallFile(const char* fromFile, const char* toFile, + bool always) +{ + // Collect any properties matching this file name. + MatchProperties match_properties = + this->CollectMatchProperties(fromFile, false); + + // Skip the file if it is excluded. + if(match_properties.Exclude) + { + return true; + } + + // Short-circuit for symbolic links. + if(cmSystemTools::FileIsSymlink(fromFile)) + { + return this->InstallSymlink(fromFile, toFile, always); + } + + // Determine whether we will copy the file. + bool copy = true; + if(!always) + { + // If both files exist with the same time do not copy. + if(!this->FileTimes.FileTimesDiffer(fromFile, toFile)) + { + copy = false; + } + } + + // Inform the user about this file installation. + std::string message = (copy? "Installing: " : "Up-to-date: "); + message += toFile; + this->Makefile->DisplayStatus(message.c_str(), -1); + + // Copy the file. + if(copy && !cmSystemTools::CopyAFile(fromFile, toFile, true)) + { + cmOStringStream e; + e << "INSTALL cannot copy file \"" << fromFile + << "\" to \"" << toFile << "\"."; + this->FileCommand->SetError(e.str().c_str()); + return false; + } + + // Add the file to the manifest. + this->ManifestAppend(toFile); + + // Set the file modification time of the destination file. + if(copy && !always) + { + cmSystemTools::CopyFileTime(fromFile, toFile); + } + + // Set permissions of the destination file. + mode_t permissions = (match_properties.Permissions? + match_properties.Permissions : this->FilePermissions); + if(!permissions) + { + // No permissions were explicitly provided but the user requested + // that the source file permissions be used. + cmSystemTools::GetPermissions(fromFile, permissions); + } + if(permissions && !cmSystemTools::SetPermissions(toFile, permissions)) + { + cmOStringStream e; + e << "Problem setting permissions on file \"" << toFile << "\""; + this->FileCommand->SetError(e.str().c_str()); + return false; + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileInstaller::InstallDirectory(const char* source, + const char* destination, + bool always) +{ + // Collect any properties matching this directory name. + MatchProperties match_properties = + this->CollectMatchProperties(source, true); + + // Skip the directory if it is excluded. + if(match_properties.Exclude) + { + return true; + } + + // Short-circuit for symbolic links. + if(cmSystemTools::FileIsSymlink(source)) + { + return this->InstallSymlink(source, destination, always); + } + + // Inform the user about this directory installation. + std::string message = "Installing: "; + message += destination; + this->Makefile->DisplayStatus(message.c_str(), -1); + + // Make sure the destination directory exists. + if(!cmSystemTools::MakeDirectory(destination)) + { + return false; + } + + // Compute the requested permissions for the destination directory. + mode_t permissions = (match_properties.Permissions? + match_properties.Permissions : this->DirPermissions); + if(!permissions) + { + // No permissions were explicitly provided but the user requested + // that the source directory permissions be used. + cmSystemTools::GetPermissions(source, permissions); + } + + // Compute the set of permissions required on this directory to + // recursively install files and subdirectories safely. + mode_t required_permissions = + mode_owner_read | mode_owner_write | mode_owner_execute; + + // If the required permissions are specified it is safe to set the + // final permissions now. Otherwise we must add the required + // permissions temporarily during file installation. + mode_t permissions_before = 0; + mode_t permissions_after = 0; + if(permissions & required_permissions) + { + permissions_before = permissions; + } + else + { + permissions_before = permissions | required_permissions; + permissions_after = permissions; + } + + // Set the required permissions of the destination directory. + if(permissions_before && + !cmSystemTools::SetPermissions(destination, permissions_before)) + { + cmOStringStream e; + e << "Problem setting permissions on directory \"" + << destination << "\""; + this->FileCommand->SetError(e.str().c_str()); + return false; + } + + // Load the directory contents to traverse it recursively. + cmsys::Directory dir; + if(source && *source) + { + dir.Load(source); + } + unsigned long numFiles = static_cast(dir.GetNumberOfFiles()); + for(unsigned long fileNum = 0; fileNum < numFiles; ++fileNum) + { + if(!(strcmp(dir.GetFile(fileNum), ".") == 0 || + strcmp(dir.GetFile(fileNum), "..") == 0)) + { + cmsys_stl::string fromPath = source; + fromPath += "/"; + fromPath += dir.GetFile(fileNum); + if(cmSystemTools::FileIsDirectory(fromPath.c_str())) + { + cmsys_stl::string toDir = destination; + toDir += "/"; + toDir += dir.GetFile(fileNum); + if(!this->InstallDirectory(fromPath.c_str(), toDir.c_str(), always)) + { + return false; + } + } + else + { + // Install this file. + std::string toFile = destination; + toFile += "/"; + toFile += dir.GetFile(fileNum); + if(!this->InstallFile(fromPath.c_str(), toFile.c_str(), always)) + { + return false; + } + } + } + } + + // Set the requested permissions of the destination directory. + if(permissions_after && + !cmSystemTools::SetPermissions(destination, permissions_after)) + { + cmOStringStream e; + e << "Problem setting permissions on directory \"" << destination << "\""; + this->FileCommand->SetError(e.str().c_str()); + return false; + } + + return true; +} + +//---------------------------------------------------------------------------- +void cmFileCommand::HandleInstallPermissions(cmFileInstaller& installer, + mode_t& permissions_file, + mode_t& permissions_dir, + int itype, + bool use_given_permissions_file, + bool use_given_permissions_dir, + bool use_source_permissions) const +{ + // Choose a default for shared library permissions. + bool install_so_no_exe = this->Makefile->IsOn("CMAKE_INSTALL_SO_NO_EXE"); + // If file permissions were not specified set default permissions + // for this target type. + if(!use_given_permissions_file && !use_source_permissions) + { + switch(itype) + { + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + if(install_so_no_exe) + { + // Use read/write permissions. + permissions_file = 0; + permissions_file |= mode_owner_read; + permissions_file |= mode_owner_write; + permissions_file |= mode_group_read; + permissions_file |= mode_world_read; + break; + } + case cmTarget::EXECUTABLE: + case cmTarget::INSTALL_PROGRAMS: + // Use read/write/executable permissions. + permissions_file = 0; + permissions_file |= mode_owner_read; + permissions_file |= mode_owner_write; + permissions_file |= mode_owner_execute; + permissions_file |= mode_group_read; + permissions_file |= mode_group_execute; + permissions_file |= mode_world_read; + permissions_file |= mode_world_execute; + break; + default: + // Use read/write permissions. + permissions_file = 0; + permissions_file |= mode_owner_read; + permissions_file |= mode_owner_write; + permissions_file |= mode_group_read; + permissions_file |= mode_world_read; + break; + } + } + + // If directory permissions were not specified set default permissions. + if(!use_given_permissions_dir && !use_source_permissions) + { + // Use read/write/executable permissions. + permissions_dir = 0; + permissions_dir |= mode_owner_read; + permissions_dir |= mode_owner_write; + permissions_dir |= mode_owner_execute; + permissions_dir |= mode_group_read; + permissions_dir |= mode_group_execute; + permissions_dir |= mode_world_read; + permissions_dir |= mode_world_execute; + } + // Set the installer permissions. + installer.FilePermissions = permissions_file; + installer.DirPermissions = permissions_dir; +} + +//---------------------------------------------------------------------------- +void cmFileCommand +::GetTargetTypeFromString(const std::string& stype, int& itype) const +{ + if ( stype == "EXECUTABLE" ) + { + itype = cmTarget::EXECUTABLE; + } + else if ( stype == "PROGRAM" ) + { + itype = cmTarget::INSTALL_PROGRAMS; + } + else if ( stype == "STATIC_LIBRARY" ) + { + itype = cmTarget::STATIC_LIBRARY; + } + else if ( stype == "SHARED_LIBRARY" ) + { + itype = cmTarget::SHARED_LIBRARY; + } + else if ( stype == "MODULE" ) + { + itype = cmTarget::MODULE_LIBRARY; + } + else if ( stype == "DIRECTORY" ) + { + itype = cmTarget::INSTALL_DIRECTORY; + } +} + + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleInstallDestination(cmFileInstaller& installer, + std::string& destination) +{ + if ( destination.size() < 2 ) + { + this->SetError("called with inapropriate arguments. " + "No DESTINATION provided or ."); + return false; + } + + const char* destdir = cmSystemTools::GetEnv("DESTDIR"); + if ( destdir && *destdir ) + { + std::string sdestdir = destdir; + cmSystemTools::ConvertToUnixSlashes(sdestdir); + + char ch1 = destination[0]; + char ch2 = destination[1]; + char ch3 = 0; + if ( destination.size() > 2 ) + { + ch3 = destination[2]; + } + int skip = 0; + if ( ch1 != '/' ) + { + int relative = 0; + if ( ( ch1 >= 'a' && ch1 <= 'z' || ch1 >= 'A' && ch1 <= 'Z' ) && + ch2 == ':' ) + { + // Assume windows + // let's do some destdir magic: + skip = 2; + if ( ch3 != '/' ) + { + relative = 1; + } + } + else + { + relative = 1; + } + if ( relative ) + { + // This is relative path on unix or windows. Since we are doing + // destdir, this case does not make sense. + this->SetError("called with relative DESTINATION. This " + "does not make sense when using DESTDIR. Specify " + "absolute path or remove DESTDIR environment variable."); + return false; + } + } + else + { + if ( ch2 == '/' ) + { + // looks like a network path. + this->SetError("called with network path DESTINATION. This " + "does not make sense when using DESTDIR. Specify local " + "absolute path or remove DESTDIR environment variable."); + return false; + } + } + destination = sdestdir + (destination.c_str() + skip); + installer.DestDirLength = int(sdestdir.size()); + } + + if ( !cmSystemTools::FileExists(destination.c_str()) ) + { + if ( !cmSystemTools::MakeDirectory(destination.c_str()) ) + { + std::string errstring = "cannot create directory: " + destination + + ". Maybe need administrative privileges."; + this->SetError(errstring.c_str()); + return false; + } + } + if ( !cmSystemTools::FileIsDirectory(destination.c_str()) ) + { + std::string errstring = "INSTALL destination: " + destination + + " is not a directory."; + this->SetError(errstring.c_str()); + return false; + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleInstallCommand(std::vector const& args) +{ + if ( args.size() < 6 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Construct a file installer object. + cmFileInstaller installer(this, this->Makefile); + + std::string rename = ""; + std::string destination = ""; + + std::vector files; + int itype = cmTarget::INSTALL_FILES; + + std::map properties; + bool optional = false; + bool result = this->ParseInstallArgs(args, installer, properties, + itype, rename, destination, files, + optional); + if (result == true) + { + result = this->DoInstall(installer, + itype, rename, destination, files, optional); + } + return result; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::ParseInstallArgs(std::vector const& args, + cmFileInstaller& installer, + std::map& properties, + int& itype, + std::string& rename, + std::string& destination, + std::vector& files, + bool& optional) +{ + std::string stype = "FILES"; + bool doing_files = false; + bool doing_properties = false; + bool doing_permissions_file = false; + bool doing_permissions_dir = false; + bool doing_permissions_match = false; + bool use_given_permissions_file = false; + bool use_given_permissions_dir = false; + bool use_source_permissions = false; + mode_t permissions_file = 0; + mode_t permissions_dir = 0; + + cmFileInstaller::MatchRule* current_match_rule = 0; + std::vector::size_type i = 0; + i++; // Get rid of subcommand + for ( ; i != args.size(); ++i ) + { + const std::string* cstr = &args[i]; + if ( *cstr == "DESTINATION" && i < args.size()-1 ) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + i++; + destination = args[i]; + doing_files = false; + doing_properties = false; + doing_permissions_file = false; + doing_permissions_dir = false; + } + else if ( *cstr == "TYPE" && i < args.size()-1 ) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + i++; + stype = args[i]; + if ( args[i+1] == "OPTIONAL" ) + { + i++; + optional = true; + } + doing_properties = false; + doing_files = false; + doing_permissions_file = false; + doing_permissions_dir = false; + } + else if ( *cstr == "RENAME" && i < args.size()-1 ) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + i++; + rename = args[i]; + doing_properties = false; + doing_files = false; + doing_permissions_file = false; + doing_permissions_dir = false; + } + else if ( *cstr == "REGEX" && i < args.size()-1 ) + { + i++; + installer.MatchRules.push_back(cmFileInstaller::MatchRule(args[i])); + current_match_rule = &*(installer.MatchRules.end()-1); + if(!current_match_rule->Regex.is_valid()) + { + cmOStringStream e; + e << "INSTALL could not compile REGEX \"" << args[i] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + doing_properties = false; + doing_files = false; + doing_permissions_file = false; + doing_permissions_dir = false; + } + else if ( *cstr == "EXCLUDE" ) + { + // Add this property to the current match rule. + if(!current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" + << *cstr << "\" before a REGEX is given."; + this->SetError(e.str().c_str()); + return false; + } + current_match_rule->Properties.Exclude = true; + doing_permissions_match = true; + } + else if ( *cstr == "PROPERTIES" ) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + doing_properties = true; + doing_files = false; + doing_permissions_file = false; + doing_permissions_dir = false; + } + else if ( *cstr == "PERMISSIONS" ) + { + if(current_match_rule) + { + doing_permissions_match = true; + doing_permissions_file = false; + } + else + { + doing_permissions_match = false; + doing_permissions_file = true; + use_given_permissions_file = true; + } + doing_properties = false; + doing_files = false; + doing_permissions_dir = false; + } + else if ( *cstr == "DIR_PERMISSIONS" ) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + use_given_permissions_dir = true; + doing_properties = false; + doing_files = false; + doing_permissions_file = false; + doing_permissions_dir = true; + } + else if ( *cstr == "USE_SOURCE_PERMISSIONS" ) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + doing_properties = false; + doing_files = false; + doing_permissions_file = false; + doing_permissions_dir = false; + use_source_permissions = true; + } + else if ( *cstr == "FILES_MATCHING" ) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + doing_properties = false; + doing_files = false; + doing_permissions_file = false; + doing_permissions_dir = false; + installer.MatchlessFiles = false; + } + else if ( *cstr == "COMPONENTS" ) + { + cmOStringStream e; + e << "INSTALL called with old-style COMPONENTS argument. " + << "This script was generated with an older version of CMake. " + << "Re-run this cmake version on your build tree."; + this->SetError(e.str().c_str()); + return false; + } + else if ( *cstr == "CONFIGURATIONS" ) + { + cmOStringStream e; + e << "INSTALL called with old-style CONFIGURATIONS argument. " + << "This script was generated with an older version of CMake. " + << "Re-run this cmake version on your build tree."; + this->SetError(e.str().c_str()); + return false; + } + else if ( *cstr == "FILES" && !doing_files) + { + if(current_match_rule) + { + cmOStringStream e; + e << "INSTALL does not allow \"" << *cstr << "\" after REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + doing_files = true; + doing_properties = false; + doing_permissions_file = false; + doing_permissions_dir = false; + } + else if ( doing_properties && i < args.size()-1 ) + { + properties[args[i]] = args[i+1].c_str(); + i++; + } + else if ( doing_files ) + { + files.push_back(*cstr); + } + else if(doing_permissions_file) + { + if(!installer.CheckPermissions(args[i], permissions_file)) + { + return false; + } + } + else if(doing_permissions_dir) + { + if(!installer.CheckPermissions(args[i], permissions_dir)) + { + return false; + } + } + else if(doing_permissions_match) + { + if(!installer.CheckPermissions( + args[i], current_match_rule->Properties.Permissions)) + { + return false; + } + } + else + { + this->SetError("called with inappropriate arguments"); + return false; + } + } + + // now check and postprocess what has been parsed + if ( files.size() == 0 ) + { + // nothing to do, no files were listed. + // if this is handled as error, INSTALL_FILES() creates an invalid + // cmake_install.cmake script with no FILES() arguments if no files were + // given to INSTALL_FILES(). This was accepted with CMake 2.4.x. + return true; + } + + // Check rename form. + if(!rename.empty()) + { + if(itype != cmTarget::INSTALL_FILES && + itype != cmTarget::INSTALL_PROGRAMS) + { + this->SetError("INSTALL option RENAME may be used only with " + "FILES or PROGRAMS."); + return false; + } + if(files.size() > 1) + { + this->SetError("INSTALL option RENAME may be used only with " + "one file."); + return false; + } + } + + if (this->HandleInstallDestination(installer, destination) == false) + { + return false; + } + + if(properties.find("VERSION") != properties.end()) + { + cmOStringStream e; + e << "INSTALL called with old-style VERSION property. " + << "This script was generated with an older version of CMake. " + << "Re-run this cmake version on your build tree."; + this->SetError(e.str().c_str()); + return false; + } + if(properties.find("SOVERSION") != properties.end()) + { + cmOStringStream e; + e << "INSTALL called with old-style SOVERSION property. " + << "This script was generated with an older version of CMake. " + << "Re-run this cmake version on your build tree."; + this->SetError(e.str().c_str()); + return false; + } + + this->GetTargetTypeFromString(stype, itype); + + this->HandleInstallPermissions(installer, + permissions_file, + permissions_dir, + itype, + use_given_permissions_file, + use_given_permissions_dir, + use_source_permissions); + + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::DoInstall( cmFileInstaller& installer, + const int itype, + const std::string& rename, + const std::string& destination, + const std::vector& files, + const bool optional) +{ + typedef std::set::const_iterator iter_type; + + // Check whether files should be copied always or only if they have + // changed. + bool copy_always = + cmSystemTools::IsOn(cmSystemTools::GetEnv("CMAKE_INSTALL_ALWAYS")); + + // Handle each file listed. + for (std::vector::size_type i = 0; i < files.size(); i ++ ) + { + // Split the input file into its directory and name components. + std::vector fromPathComponents; + cmSystemTools::SplitPath(files[i].c_str(), fromPathComponents); + std::string fromName = *(fromPathComponents.end()-1); + std::string fromDir = cmSystemTools::JoinPath(fromPathComponents.begin(), + fromPathComponents.end()-1); + + // Compute the full path to the destination file. + std::string toFile = destination; + std::string const& toName = rename.empty()? fromName : rename; + if(!toName.empty()) + { + toFile += "/"; + toFile += toName; + } + + // Construct the full path to the source file. The file name may + // have been changed above. + std::string fromFile = fromDir; + if(!fromName.empty()) + { + fromFile += "/"; + fromFile += fromName; + } + + std::string message; + if(!cmSystemTools::SameFile(fromFile.c_str(), toFile.c_str())) + { + if(itype == cmTarget::INSTALL_DIRECTORY && + (fromFile.empty() || + cmSystemTools::FileIsDirectory(fromFile.c_str()))) + { + // Try installing this directory. + if(!installer.InstallDirectory(fromFile.c_str(), toFile.c_str(), + copy_always)) + { + return false; + } + } + else if(cmSystemTools::FileExists(fromFile.c_str())) + { + // Install this file. + if(!installer.InstallFile(fromFile.c_str(), toFile.c_str(), + copy_always)) + { + return false; + } + } + else if(!optional) + { + // The input file does not exist and installation is not optional. + cmOStringStream e; + e << "INSTALL cannot find file \"" << fromFile << "\" to install."; + this->SetError(e.str().c_str()); + return false; + } + } + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleRelativePathCommand( + std::vector const& args) +{ + if(args.size() != 4 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + const std::string& outVar = args[1]; + const std::string& directoryName = args[2]; + const std::string& fileName = args[3]; + + if(!cmSystemTools::FileIsFullPath(directoryName.c_str())) + { + std::string errstring = + "RelativePath must be passed a full path to the directory: " + + directoryName; + this->SetError(errstring.c_str()); + return false; + } + if(!cmSystemTools::FileIsFullPath(fileName.c_str())) + { + std::string errstring = + "RelativePath must be passed a full path to the file: " + + fileName; + this->SetError(errstring.c_str()); + return false; + } + + std::string res = cmSystemTools::RelativePath(directoryName.c_str(), + fileName.c_str()); + this->Makefile->AddDefinition(outVar.c_str(), + res.c_str()); + return true; +} + + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleRemove(std::vector const& args, + bool recurse) +{ + + std::string message; + std::vector::const_iterator i = args.begin(); + + i++; // Get rid of subcommand + for(;i != args.end(); ++i) + { + if(cmSystemTools::FileIsDirectory(i->c_str()) && recurse) + { + cmSystemTools::RemoveADirectory(i->c_str()); + } + else + { + cmSystemTools::RemoveFile(i->c_str()); + } + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmFileCommand::HandleCMakePathCommand(std::vector + const& args, + bool nativePath) +{ + std::vector::const_iterator i = args.begin(); + if(args.size() != 3) + { + this->SetError("FILE(SYSTEM_PATH ENV result) must be called with " + "only three arguments."); + return false; + } + i++; // Get rid of subcommand +#if defined(_WIN32) && !defined(__CYGWIN__) + char pathSep = ';'; +#else + char pathSep = ':'; +#endif + std::vector path = cmSystemTools::SplitString(i->c_str(), + pathSep); + i++; + const char* var = i->c_str(); + std::string value; + for(std::vector::iterator j = path.begin(); + j != path.end(); ++j) + { + if(j != path.begin()) + { + value += ";"; + } + if(!nativePath) + { + cmSystemTools::ConvertToUnixSlashes(*j); + } + else + { + *j = cmSystemTools::ConvertToOutputPath(j->c_str()); + // remove double quotes in the path + cmsys::String& s = *j; + + if(s.size() > 1 && s[0] == '\"' && s[s.size()-1] == '\"') + { + s = s.substr(1,s.size()-2); + } + } + value += *j; + } + this->Makefile->AddDefinition(var, value.c_str()); + return true; +} + + diff --git a/CMakeLua/Source/cmFileCommand.h b/CMakeLua/Source/cmFileCommand.h new file mode 100644 index 0000000..4f4dae0 --- /dev/null +++ b/CMakeLua/Source/cmFileCommand.h @@ -0,0 +1,196 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFileCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.32 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFileCommand_h +#define cmFileCommand_h + +#include "cmCommand.h" + +struct cmFileInstaller; + +/** \class cmFileCommand + * \brief Command for manipulation of files + * + */ +class cmFileCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFileCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "file";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "File manipulation command."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " file(WRITE filename \"message to write\"... )\n" + " file(APPEND filename \"message to write\"... )\n" + " file(READ filename variable [LIMIT numBytes] [OFFSET offset] [HEX])\n" + " file(STRINGS filename variable [LIMIT_COUNT num]\n" + " [LIMIT_INPUT numBytes] [LIMIT_OUTPUT numBytes]\n" + " [LENGTH_MINIMUM numBytes] [LENGTH_MAXIMUM numBytes]\n" + " [NEWLINE_CONSUME] [REGEX regex]\n" + " [NO_HEX_CONVERSION])\n" + " file(GLOB variable [RELATIVE path] [globbing expressions]...)\n" + " file(GLOB_RECURSE variable [RELATIVE path] \n" + " [globbing expressions]...)\n" + " file(REMOVE [file1 ...])\n" + " file(REMOVE_RECURSE [file1 ...])\n" + " file(MAKE_DIRECTORY [directory1 directory2 ...])\n" + " file(RELATIVE_PATH variable directory file)\n" + " file(TO_CMAKE_PATH path result)\n" + " file(TO_NATIVE_PATH path result)\n" + "WRITE will write a message into a file called 'filename'. It " + "overwrites the file if it already exists, and creates the file " + "if it does not exist.\n" + "APPEND will write a message into a file same as WRITE, except " + "it will append it to the end of the file\n" + "NOTE: When using file WRITE and file APPEND, the produced file " + "cannot be used as an input to CMake (configure_file, source file ...) " + "because it will lead to an infinite loop. Use configure_file if you " + "want to generate input files to CMake.\n" + "READ will read the content of a file and store it into the " + "variable. It will start at the given offset and read up to numBytes. " + "If the argument HEX is given, the binary data will be converted to " + "hexadecimal representation and this will be stored in the variable.\n" + "STRINGS will parse a list of ASCII strings from a file and " + "store it in a variable. Binary data in the file are ignored. Carriage " + "return (CR) characters are ignored. It works also for Intel Hex and " + "Motorola S-record files, which are automatically converted to binary " + "format when reading them. Disable this using NO_HEX_CONVERSION.\n" + "LIMIT_COUNT sets the maximum number of strings to return. " + "LIMIT_INPUT sets the maximum number of bytes to read from " + "the input file. " + "LIMIT_OUTPUT sets the maximum number of bytes to store in the " + "output variable. " + "LENGTH_MINIMUM sets the minimum length of a string to return. " + "Shorter strings are ignored. " + "LENGTH_MAXIMUM sets the maximum length of a string to return. Longer " + "strings are split into strings no longer than the maximum length. " + "NEWLINE_CONSUME allows newlines to be included in strings instead " + "of terminating them.\n" + "REGEX specifies a regular expression that a string must match to be " + "returned. Typical usage \n" + " file(STRINGS myfile.txt myfile)\n" + "stores a list in the variable \"myfile\" in which each item is " + "a line from the input file.\n" + "GLOB will generate a list of all files that match the globbing " + "expressions and store it into the variable. Globbing expressions " + "are similar to regular expressions, but much simpler. If RELATIVE " + "flag is specified for an expression, the results will be returned " + "as a relative path to the given path.\n" + "Examples of globbing expressions include:\n" + " *.cxx - match all files with extension cxx\n" + " *.vt? - match all files with extension vta,...,vtz\n" + " f[3-5].txt - match files f3.txt, f4.txt, f5.txt\n" + "GLOB_RECURSE will generate similar list as the regular GLOB, except " + "it will traverse all the subdirectories of the matched directory and " + "match the files.\n" + "Examples of recursive globbing include:\n" + " /dir/*.py - match all python files in /dir and subdirectories\n" + "MAKE_DIRECTORY will create the given directories, also if their parent " + "directories don't exist yet\n" + "REMOVE will remove the given files, also in subdirectories\n" + "REMOVE_RECURSE will remove the given files and directories, also " + "non-empty directories\n" + "RELATIVE_PATH will determine relative path from directory to the given" + " file.\n" + "TO_CMAKE_PATH will convert path into a cmake style path with unix /. " + " The input can be a single path or a system path like \"$ENV{PATH}\". " + " Note the double quotes around the ENV call TO_CMAKE_PATH only takes " + " one argument.\n" + "TO_NATIVE_PATH works just like TO_CMAKE_PATH, but will convert from " + " a cmake style path into the native path style \\ for windows and / " + "for UNIX."; + } + + cmTypeMacro(cmFileCommand, cmCommand); + +protected: + bool HandleRemove(std::vector const& args, bool recurse); + bool HandleWriteCommand(std::vector const& args, bool append); + bool HandleReadCommand(std::vector const& args); + bool HandleStringsCommand(std::vector const& args); + bool HandleGlobCommand(std::vector const& args, bool recurse); + bool HandleMakeDirectoryCommand(std::vector const& args); + + bool HandleRelativePathCommand(std::vector const& args); + bool HandleCMakePathCommand(std::vector const& args, + bool nativePath); + + // file(INSTALL ...) related functions + bool HandleInstallCommand(std::vector const& args); + bool ParseInstallArgs(std::vector const& args, + cmFileInstaller& installer, + std::map& properties, + int& itype, + std::string& destination, + std::string& rename, + std::vector& files, + bool& optional + ); + bool DoInstall(cmFileInstaller& installer, + const int itype, + const std::string& rename, + const std::string& destination, + const std::vector& files, + const bool optional + ); + void GetTargetTypeFromString(const std::string& stype, int& itype) const; + bool HandleInstallDestination(cmFileInstaller& installer, + std::string& destination); + void HandleInstallPermissions(cmFileInstaller& installer, + mode_t& permissions_file, + mode_t& permissions_dir, + int itype, + bool use_given_permissions_file, + bool use_given_permissions_dir, + bool use_source_permissions) const; +}; + + +#endif diff --git a/CMakeLua/Source/cmFileTimeComparison.cxx b/CMakeLua/Source/cmFileTimeComparison.cxx new file mode 100644 index 0000000..03a03c5 --- /dev/null +++ b/CMakeLua/Source/cmFileTimeComparison.cxx @@ -0,0 +1,279 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFileTimeComparison.cxx,v $ + Language: C++ + Date: $Date: 2008/01/03 05:01:38 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFileTimeComparison.h" + +// Use a hash table to avoid duplicate file time checks from disk. +#if defined(CMAKE_BUILD_WITH_CMAKE) +# include +#endif + +// Use a platform-specific API to get file times efficiently. +#if !defined(_WIN32) || defined(__CYGWIN__) +# define cmFileTimeComparison_Type struct stat +# include +# include +#else +# define cmFileTimeComparison_Type FILETIME +# include +#endif + +//---------------------------------------------------------------------------- +class cmFileTimeComparisonInternal +{ +public: + // Internal comparison method. + inline bool FileTimeCompare(const char* f1, const char* f2, int* result); + + bool FileTimesDiffer(const char* f1, const char* f2); + +private: +#if defined(CMAKE_BUILD_WITH_CMAKE) + // Use a hash table to efficiently map from file name to modification time. + class HashString + { + public: + size_t operator()(const cmStdString& s) const + { + return h(s.c_str()); + } + cmsys::hash h; + }; + typedef cmsys::hash_map FileStatsMap; + FileStatsMap Files; +#endif + + // Internal methods to lookup and compare modification times. + inline bool Stat(const char* fname, cmFileTimeComparison_Type* st); + inline int Compare(cmFileTimeComparison_Type* st1, + cmFileTimeComparison_Type* st2); + inline bool TimesDiffer(cmFileTimeComparison_Type* st1, + cmFileTimeComparison_Type* st2); +}; + +//---------------------------------------------------------------------------- +bool cmFileTimeComparisonInternal::Stat(const char* fname, + cmFileTimeComparison_Type* st) +{ +#if defined(CMAKE_BUILD_WITH_CMAKE) + // Use the stored time if available. + cmFileTimeComparisonInternal::FileStatsMap::iterator fit = + this->Files.find(fname); + if ( fit != this->Files.end() ) + { + *st = fit->second; + return true; + } +#endif + +#if !defined(_WIN32) || defined(__CYGWIN__) + // POSIX version. Use the stat function. + int res = ::stat(fname, st); + if ( res != 0 ) + { + return false; + } +#else + // Windows version. Get the modification time from extended file + // attributes. + WIN32_FILE_ATTRIBUTE_DATA fdata; + if(!GetFileAttributesEx(fname, GetFileExInfoStandard, &fdata)) + { + return false; + } + + // Copy the file time to the output location. + *st = fdata.ftLastWriteTime; +#endif + +#if defined(CMAKE_BUILD_WITH_CMAKE) + // Store the time for future use. + this->Files[fname] = *st; +#endif + + return true; +} + +//---------------------------------------------------------------------------- +cmFileTimeComparison::cmFileTimeComparison() +{ + this->Internals = new cmFileTimeComparisonInternal; +} + +//---------------------------------------------------------------------------- +cmFileTimeComparison::~cmFileTimeComparison() +{ + delete this->Internals; +} + +//---------------------------------------------------------------------------- +bool cmFileTimeComparison::FileTimeCompare(const char* f1, + const char* f2, int* result) +{ + return this->Internals->FileTimeCompare(f1, f2, result); +} + +//---------------------------------------------------------------------------- +bool cmFileTimeComparison::FileTimesDiffer(const char* f1, const char* f2) +{ + return this->Internals->FileTimesDiffer(f1, f2); +} + +//---------------------------------------------------------------------------- +int cmFileTimeComparisonInternal::Compare(cmFileTimeComparison_Type* s1, + cmFileTimeComparison_Type* s2) +{ +#if !defined(_WIN32) || defined(__CYGWIN__) +# if cmsys_STAT_HAS_ST_MTIM + // Compare using nanosecond resolution. + if(s1->st_mtim.tv_sec < s2->st_mtim.tv_sec) + { + return -1; + } + else if(s1->st_mtim.tv_sec > s2->st_mtim.tv_sec) + { + return 1; + } + else if(s1->st_mtim.tv_nsec < s2->st_mtim.tv_nsec) + { + return -1; + } + else if(s1->st_mtim.tv_nsec > s2->st_mtim.tv_nsec) + { + return 1; + } +# else + // Compare using 1 second resolution. + if(s1->st_mtime < s2->st_mtime) + { + return -1; + } + else if(s1->st_mtime > s2->st_mtime) + { + return 1; + } +# endif + // Files have the same time. + return 0; +#else + // Compare using system-provided function. + return (int)CompareFileTime(s1, s2); +#endif +} + +//---------------------------------------------------------------------------- +bool cmFileTimeComparisonInternal::TimesDiffer(cmFileTimeComparison_Type* s1, + cmFileTimeComparison_Type* s2) +{ +#if !defined(_WIN32) || defined(__CYGWIN__) +# if cmsys_STAT_HAS_ST_MTIM + // Times are integers in units of 1ns. + long long bil = 1000000000; + long long t1 = s1->st_mtim.tv_sec * bil + s1->st_mtim.tv_nsec; + long long t2 = s2->st_mtim.tv_sec * bil + s2->st_mtim.tv_nsec; + if(t1 < t2) + { + return (t2 - t1) >= bil; + } + else if(t2 < t1) + { + return (t1 - t2) >= bil; + } + else + { + return false; + } +# else + // Times are integers in units of 1s. + if(s1->st_mtime < s2->st_mtime) + { + return (s2->st_mtime - s1->st_mtime) >= 1; + } + else if(s1->st_mtime > s2->st_mtime) + { + return (s1->st_mtime - s2->st_mtime) >= 1; + } + else + { + return false; + } +# endif +#else + // Times are integers in units of 100ns. + LARGE_INTEGER t1; + LARGE_INTEGER t2; + t1.LowPart = s1->dwLowDateTime; + t1.HighPart = s1->dwHighDateTime; + t2.LowPart = s2->dwLowDateTime; + t2.HighPart = s2->dwHighDateTime; + if(t1.QuadPart < t2.QuadPart) + { + return (t2.QuadPart - t1.QuadPart) >= static_cast(10000000); + } + else if(t2.QuadPart < t1.QuadPart) + { + return (t1.QuadPart - t2.QuadPart) >= static_cast(10000000); + } + else + { + return false; + } +#endif +} + +//---------------------------------------------------------------------------- +bool cmFileTimeComparisonInternal::FileTimeCompare(const char* f1, + const char* f2, + int* result) +{ + // Get the modification time for each file. + cmFileTimeComparison_Type s1; + cmFileTimeComparison_Type s2; + if(this->Stat(f1, &s1) && + this->Stat(f2, &s2)) + { + // Compare the two modification times. + *result = this->Compare(&s1, &s2); + return true; + } + else + { + // No comparison available. Default to the same time. + *result = 0; + return false; + } +} + +//---------------------------------------------------------------------------- +bool cmFileTimeComparisonInternal::FileTimesDiffer(const char* f1, + const char* f2) +{ + // Get the modification time for each file. + cmFileTimeComparison_Type s1; + cmFileTimeComparison_Type s2; + if(this->Stat(f1, &s1) && + this->Stat(f2, &s2)) + { + // Compare the two modification times. + return this->TimesDiffer(&s1, &s2); + } + else + { + // No comparison available. Default to different times. + return true; + } +} diff --git a/CMakeLua/Source/cmFileTimeComparison.h b/CMakeLua/Source/cmFileTimeComparison.h new file mode 100644 index 0000000..72bbdfd --- /dev/null +++ b/CMakeLua/Source/cmFileTimeComparison.h @@ -0,0 +1,56 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFileTimeComparison.h,v $ + Language: C++ + Date: $Date: 2008/01/03 05:01:38 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFileTimeComparison_h +#define cmFileTimeComparison_h + +#include "cmStandardIncludes.h" + +class cmFileTimeComparisonInternal; + +/** \class cmFileTimeComparison + * \brief Helper class for performing globbing searches. + * + * Finds all files that match a given globbing expression. + */ +class cmFileTimeComparison +{ +public: + cmFileTimeComparison(); + ~cmFileTimeComparison(); + + /** + * Compare file modification times. + * Return true for successful comparison and false for error. + * When true is returned, result has -1, 0, +1 for + * f1 older, same, or newer than f2. + */ + bool FileTimeCompare(const char* f1, const char* f2, int* result); + + /** + * Compare file modification times. Return true unless both files + * exist and have modification times less than 1 second apart. + */ + bool FileTimesDiffer(const char* f1, const char* f2); + +protected: + + cmFileTimeComparisonInternal* Internals; +}; + + +#endif + diff --git a/CMakeLua/Source/cmFindBase.cxx b/CMakeLua/Source/cmFindBase.cxx new file mode 100755 index 0000000..83dd09a --- /dev/null +++ b/CMakeLua/Source/cmFindBase.cxx @@ -0,0 +1,595 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindBase.cxx,v $ + Language: C++ + Date: $Date: 2008/01/17 22:49:30 $ + Version: $Revision: 1.34 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFindBase.h" + +cmFindBase::cmFindBase() +{ + cmSystemTools::ReplaceString(this->GenericDocumentationPathsOrder, + "FIND_ARGS_XXX", " NAMES name"); + this->AlreadyInCache = false; + this->AlreadyInCacheWithoutMetaInfo = false; + this->GenericDocumentation = + " FIND_XXX( name1 [path1 path2 ...])\n" + "This is the short-hand signature for the command that " + "is sufficient in many cases. It is the same " + "as FIND_XXX( name1 [PATHS path1 path2 ...])\n" + " FIND_XXX(\n" + " \n" + " name | NAMES name1 [name2 ...]\n" + " [PATHS path1 [path2 ... ENV var]]\n" + " [PATH_SUFFIXES suffix1 [suffix2 ...]]\n" + " [DOC \"cache documentation string\"]\n" + " [NO_DEFAULT_PATH]\n" + " [NO_CMAKE_ENVIRONMENT_PATH]\n" + " [NO_CMAKE_PATH]\n" + " [NO_SYSTEM_ENVIRONMENT_PATH]\n" + " [NO_CMAKE_SYSTEM_PATH]\n" + " [CMAKE_FIND_ROOT_PATH_BOTH |\n" + " ONLY_CMAKE_FIND_ROOT_PATH |\n" + " NO_CMAKE_FIND_ROOT_PATH]\n" + " )\n" + "" + "This command is used to find a SEARCH_XXX_DESC. " + "A cache entry named by is created to store the result " + "of this command. " + "If the SEARCH_XXX is found the result is stored in the variable " + "and the search will not be repeated unless the variable is cleared. " + "If nothing is found, the result will be " + "-NOTFOUND, and the search will be attempted again the " + "next time FIND_XXX is invoked with the same variable. " + "The name of the SEARCH_XXX that " + "is searched for is specified by the names listed " + "after the NAMES argument. Additional search locations " + "can be specified after the PATHS argument. If ENV var is " + "found in the PATHS section the environment variable var " + "will be read and converted from a system environment variable to " + "a cmake style list of paths. For example ENV PATH would be a way " + "to list the system path variable. The argument " + "after DOC will be used for the documentation string in " + "the cache. PATH_SUFFIXES can be used to give sub directories " + "that will be appended to the search paths.\n" + "If NO_DEFAULT_PATH is specified, then no additional paths are " + "added to the search. " + "If NO_DEFAULT_PATH is not specified, the search process is as follows:\n" + "1. Search cmake specific environment variables. This " + "can be skipped if NO_CMAKE_ENVIRONMENT_PATH is passed.\n" + "" + " /XXX_SUBDIR for each in CMAKE_PREFIX_PATH\n" + " CMAKE_XXX_PATH\n" + " CMAKE_XXX_MAC_PATH\n" + "2. Search cmake variables with the same names as " + "the cmake specific environment variables. These " + "are intended to be used on the command line with a " + "-DVAR=value. This can be skipped if NO_CMAKE_PATH " + "is passed.\n" + "" + " /XXX_SUBDIR for each in CMAKE_PREFIX_PATH\n" + " CMAKE_XXX_PATH\n" + " CMAKE_XXX_MAC_PATH\n" + "3. Search the standard system environment variables. " + "This can be skipped if NO_SYSTEM_ENVIRONMENT_PATH is an argument.\n" + " PATH\n" + " XXX_SYSTEM\n" // replace with "", LIB, or INCLUDE + "4. Search cmake variables defined in the Platform files " + "for the current system. This can be skipped if NO_CMAKE_SYSTEM_PATH " + "is passed.\n" + " /XXX_SUBDIR for each in CMAKE_SYSTEM_PREFIX_PATH\n" + " CMAKE_SYSTEM_XXX_PATH\n" + " CMAKE_SYSTEM_XXX_MAC_PATH\n" + "5. Search the paths specified after PATHS or in the short-hand version " + "of the command.\n" + ; + this->GenericDocumentation += this->GenericDocumentationMacPolicy; + this->GenericDocumentation += this->GenericDocumentationRootPath; + this->GenericDocumentation += this->GenericDocumentationPathsOrder; +} + +bool cmFindBase::ParseArguments(std::vector const& argsIn) +{ + if(argsIn.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // CMake versions below 2.3 did not search all these extra + // locations. Preserve compatibility unless a modern argument is + // passed. + bool compatibility = false; + const char* versionValue = + this->Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + int major = 0; + int minor = 0; + if(versionValue && sscanf(versionValue, "%d.%d", &major, &minor) != 2) + { + versionValue = 0; + } + if(versionValue && (major < 2 || major == 2 && minor < 3)) + { + compatibility = true; + } + + // copy argsIn into args so it can be modified, + // in the process extract the DOC "documentation" + size_t size = argsIn.size(); + std::vector args; + bool foundDoc = false; + for(unsigned int j = 0; j < size; ++j) + { + if(foundDoc || argsIn[j] != "DOC" ) + { + if(argsIn[j] == "ENV") + { + if(j+1 < size) + { + j++; + cmSystemTools::GetPath(args, argsIn[j].c_str()); + } + } + else + { + args.push_back(argsIn[j]); + } + } + else + { + if(j+1 < size) + { + foundDoc = true; + this->VariableDocumentation = argsIn[j+1]; + j++; + if(j >= size) + { + break; + } + } + } + } + this->VariableName = args[0]; + if(this->CheckForVariableInCache()) + { + this->AlreadyInCache = true; + return true; + } + this->AlreadyInCache = false; + + // Find the current root path mode. + this->SelectDefaultRootPathMode(); + + // Find the current bundle/framework search policy. + this->SelectDefaultMacMode(); + + std::vector userPaths; + std::string doc; + bool doingNames = true; // assume it starts with a name + bool doingPaths = false; + bool doingPathSuf = false; + bool newStyle = false; + + for (unsigned int j = 1; j < args.size(); ++j) + { + if(args[j] == "NAMES") + { + doingNames = true; + newStyle = true; + doingPathSuf = false; + doingPaths = false; + } + else if (args[j] == "PATHS") + { + doingPaths = true; + newStyle = true; + doingNames = false; + doingPathSuf = false; + } + else if (args[j] == "PATH_SUFFIXES") + { + compatibility = false; + doingPathSuf = true; + newStyle = true; + doingNames = false; + doingPaths = false; + } + else if (args[j] == "NO_SYSTEM_PATH") + { + doingPaths = false; + doingPathSuf = false; + doingNames = false; + this->NoDefaultPath = true; + } + else if (this->CheckCommonArgument(args[j])) + { + compatibility = false; + doingPaths = false; + doingPathSuf = false; + doingNames = false; + } + else + { + if(doingNames) + { + this->Names.push_back(args[j]); + } + else if(doingPaths) + { + userPaths.push_back(args[j]); + } + else if(doingPathSuf) + { + this->AddPathSuffix(args[j]); + } + } + } + + // Now that arguments have been parsed check the compatibility + // setting. If we need to be compatible with CMake 2.2 and earlier + // do not add the CMake system paths. It is safe to add the CMake + // environment paths and system environment paths because that + // existed in 2.2. It is safe to add the CMake user variable paths + // because the user or project has explicitly set them. + if(compatibility) + { + this->NoCMakeSystemPath = true; + } + + if(this->VariableDocumentation.size() == 0) + { + this->VariableDocumentation = "Where can "; + if(this->Names.size() == 0) + { + this->VariableDocumentation += "the (unknown) library be found"; + } + else if(this->Names.size() == 1) + { + this->VariableDocumentation += "the " + + this->Names[0] + " library be found"; + } + else + { + this->VariableDocumentation += "one of the " + this->Names[0]; + for (unsigned int j = 1; j < this->Names.size() - 1; ++j) + { + this->VariableDocumentation += ", " + this->Names[j]; + } + this->VariableDocumentation += " or " + + this->Names[this->Names.size() - 1] + " libraries be found"; + } + } + + // look for old style + // FIND_*(VAR name path1 path2 ...) + if(!newStyle) + { + this->Names.clear(); // clear out any values in Names + this->Names.push_back(args[1]); + for(unsigned int j = 2; j < args.size(); ++j) + { + userPaths.push_back(args[j]); + } + } + this->ExpandPaths(userPaths); + + // Handle search root stuff. + this->RerootPaths(this->SearchPaths); + return true; +} + +void cmFindBase::ExpandPaths(std::vector userPaths) +{ + // if NO Default paths was not specified add the + // standard search paths. + if(!this->NoDefaultPath) + { + if(this->SearchFrameworkFirst || this->SearchFrameworkOnly) + { + this->AddFrameWorkPaths(); + } + if(this->SearchAppBundleFirst || this->SearchAppBundleOnly) + { + this->AddAppBundlePaths(); + } + if(!this->NoCMakeEnvironmentPath && + !(this->SearchFrameworkOnly || this->SearchAppBundleOnly)) + { + // Add CMAKE_*_PATH environment variables + this->AddEnvironmentVariables(); + } + if(!this->NoCMakePath && + !(this->SearchFrameworkOnly || this->SearchAppBundleOnly)) + { + // Add CMake varibles of the same name as the previous environment + // varibles CMAKE_*_PATH to be used most of the time with -D + // command line options + this->AddCMakeVariables(); + } + if(!this->NoSystemEnvironmentPath && + !(this->SearchFrameworkOnly || this->SearchAppBundleOnly)) + { + // add System environment PATH and (LIB or INCLUDE) + this->AddSystemEnvironmentVariables(); + } + if(!this->NoCMakeSystemPath && + !(this->SearchFrameworkOnly || this->SearchAppBundleOnly)) + { + // Add CMAKE_SYSTEM_*_PATH variables which are defined in platform files + this->AddCMakeSystemVariables(); + } + if(this->SearchAppBundleLast) + { + this->AddAppBundlePaths(); + } + if(this->SearchFrameworkLast) + { + this->AddFrameWorkPaths(); + } + } + std::vector paths; + // add the paths specified in the FIND_* call + for(unsigned int i =0; i < userPaths.size(); ++i) + { + paths.push_back(userPaths[i]); + } + this->AddPaths(paths); +} + +//---------------------------------------------------------------------------- +void cmFindBase::AddEnvironmentVariables() +{ + std::vector paths; + + std::vector prefixPaths; + cmSystemTools::GetPath(prefixPaths, "CMAKE_PREFIX_PATH"); + this->AddFindPrefix(paths, prefixPaths); + + std::string var = "CMAKE_"; + var += this->CMakePathName; + var += "_PATH"; + cmSystemTools::GetPath(paths, var.c_str()); + this->AddPaths(paths); +} + +void cmFindBase::AddFindPrefix(std::vector& dest, + const std::vector& src) +{ + // default for programs + std::string subdir = "bin"; + + if (this->CMakePathName == "INCLUDE") + { + subdir = "include"; + } + else if (this->CMakePathName == "LIBRARY") + { + subdir = "lib"; + } + else if (this->CMakePathName == "FRAMEWORK") + { + subdir = ""; // ? what to do for frameworks ? + } + + for (std::vector::const_iterator it = src.begin(); + it != src.end(); + ++it) + { + std::string dir = it->c_str(); + if(!subdir.empty() && !dir.empty() && dir[dir.size()-1] != '/') + { + dir += "/"; + } + dest.push_back(dir + subdir); + if (subdir == "bin") + { + dest.push_back(dir + "sbin"); + } + if(!subdir.empty()) + { + dest.push_back(*it); + } + } +} + +void cmFindBase::AddFrameWorkPaths() +{ + std::vector paths; + this->GetFrameworkPaths(paths); + this->AddPaths(paths); +} + +void cmFindBase::AddPaths(std::vector & paths) +{ + // add suffixes and clean up paths + this->ExpandRegistryAndCleanPath(paths); + // add the paths to the search paths + this->SearchPaths.insert(this->SearchPaths.end(), + paths.begin(), + paths.end()); +} + +void cmFindBase::AddAppBundlePaths() +{ + std::vector paths; + this->GetAppBundlePaths(paths); + this->AddPaths(paths); +} + +void cmFindBase::AddCMakeVariables() +{ + std::string var = "CMAKE_"; + var += this->CMakePathName; + var += "_PATH"; + std::vector paths; + + if(const char* prefixPath = + this->Makefile->GetDefinition("CMAKE_PREFIX_PATH")) + { + std::vector prefixPaths; + cmSystemTools::ExpandListArgument(prefixPath, prefixPaths); + this->AddFindPrefix(paths, prefixPaths); + } + + if(const char* path = this->Makefile->GetDefinition(var.c_str())) + { + cmSystemTools::ExpandListArgument(path, paths); + } + this->AddPaths(paths); +} + +void cmFindBase::AddSystemEnvironmentVariables() +{ + // Add LIB or INCLUDE + std::vector paths; + if(this->EnvironmentPath.size()) + { + cmSystemTools::GetPath(paths, this->EnvironmentPath.c_str()); + } + // Add PATH + cmSystemTools::GetPath(paths); + this->AddPaths(paths); +} + +void cmFindBase::AddCMakeSystemVariables() +{ + std::string var = "CMAKE_SYSTEM_"; + var += this->CMakePathName; + var += "_PATH"; + std::vector paths; + if(const char* prefixPath = + this->Makefile->GetDefinition("CMAKE_SYSTEM_PREFIX_PATH")) + { + std::vector prefixPaths; + cmSystemTools::ExpandListArgument(prefixPath, prefixPaths); + this->AddFindPrefix(paths, prefixPaths); + } + if(const char* path = this->Makefile->GetDefinition(var.c_str())) + { + cmSystemTools::ExpandListArgument(path, paths); + } + this->AddPaths(paths); +} + +void cmFindBase::ExpandRegistryAndCleanPath(std::vector& paths) +{ + std::vector finalPath; + std::vector::iterator i; + // glob and expand registry stuff from paths and put + // into finalPath + for(i = paths.begin(); + i != paths.end(); ++i) + { + cmSystemTools::ExpandRegistryValues(*i); + cmSystemTools::GlobDirs(i->c_str(), finalPath); + } + // clear the path + paths.clear(); + // convert all paths to unix slashes and add search path suffixes + // if there are any + for(i = finalPath.begin(); + i != finalPath.end(); ++i) + { + cmSystemTools::ConvertToUnixSlashes(*i); + // copy each finalPath combined with SearchPathSuffixes + // to the SearchPaths ivar + for(std::vector::iterator j = + this->SearchPathSuffixes.begin(); + j != this->SearchPathSuffixes.end(); ++j) + { + std::string p = *i + std::string("/") + *j; + // add to all paths because the search path may be modified + // later with lib being replaced for lib64 which may exist + paths.push_back(p); + } + } + // now put the path without the path suffixes in the SearchPaths + for(i = finalPath.begin(); + i != finalPath.end(); ++i) + { + // put all search paths in because it may later be replaced + // by lib64 stuff fixes bug 4009 + paths.push_back(*i); + } +} + +void cmFindBase::PrintFindStuff() +{ + std::cerr << "SearchFrameworkLast: " << this->SearchFrameworkLast << "\n"; + std::cerr << "SearchFrameworkOnly: " << this->SearchFrameworkOnly << "\n"; + std::cerr << "SearchFrameworkFirst: " << this->SearchFrameworkFirst << "\n"; + std::cerr << "SearchAppBundleLast: " << this->SearchAppBundleLast << "\n"; + std::cerr << "SearchAppBundleOnly: " << this->SearchAppBundleOnly << "\n"; + std::cerr << "SearchAppBundleFirst: " << this->SearchAppBundleFirst << "\n"; + std::cerr << "VariableName " << this->VariableName << "\n"; + std::cerr << "VariableDocumentation " + << this->VariableDocumentation << "\n"; + std::cerr << "NoDefaultPath " << this->NoDefaultPath << "\n"; + std::cerr << "NoCMakeEnvironmentPath " + << this->NoCMakeEnvironmentPath << "\n"; + std::cerr << "NoCMakePath " << this->NoCMakePath << "\n"; + std::cerr << "NoSystemEnvironmentPath " + << this->NoSystemEnvironmentPath << "\n"; + std::cerr << "NoCMakeSystemPath " << this->NoCMakeSystemPath << "\n"; + std::cerr << "EnvironmentPath " << this->EnvironmentPath << "\n"; + std::cerr << "CMakePathName " << this->CMakePathName << "\n"; + std::cerr << "Names "; + for(unsigned int i =0; i < this->Names.size(); ++i) + { + std::cerr << this->Names[i] << " "; + } + std::cerr << "\n"; + std::cerr << "\n"; + std::cerr << "SearchPathSuffixes "; + for(unsigned int i =0; i < this->SearchPathSuffixes.size(); ++i) + { + std::cerr << this->SearchPathSuffixes[i] << "\n"; + } + std::cerr << "\n"; + std::cerr << "SearchPaths\n"; + for(unsigned int i =0; i < this->SearchPaths.size(); ++i) + { + std::cerr << "[" << this->SearchPaths[i] << "]\n"; + } +} + +bool cmFindBase::CheckForVariableInCache() +{ + if(const char* cacheValue = + this->Makefile->GetDefinition(this->VariableName.c_str())) + { + cmCacheManager::CacheIterator it = + this->Makefile->GetCacheManager()-> + GetCacheIterator(this->VariableName.c_str()); + bool found = !cmSystemTools::IsNOTFOUND(cacheValue); + bool cached = !it.IsAtEnd(); + if(found) + { + // If the user specifies the entry on the command line without a + // type we should add the type and docstring but keep the + // original value. Tell the subclass implementations to do + // this. + if(cached && it.GetType() == cmCacheManager::UNINITIALIZED) + { + this->AlreadyInCacheWithoutMetaInfo = true; + } + return true; + } + else if(cached) + { + const char* hs = it.GetProperty("HELPSTRING"); + this->VariableDocumentation = hs?hs:"(none)"; + } + } + return false; +} diff --git a/CMakeLua/Source/cmFindBase.h b/CMakeLua/Source/cmFindBase.h new file mode 100755 index 0000000..e5a60c8 --- /dev/null +++ b/CMakeLua/Source/cmFindBase.h @@ -0,0 +1,78 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindBase.h,v $ + Language: C++ + Date: $Date: 2008/01/17 14:02:31 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFindBase_h +#define cmFindBase_h + +#include "cmFindCommon.h" + +/** \class cmFindBase + * \brief Base class for most FIND_XXX commands. + * + * cmFindBase is a parent class for cmFindProgramCommand, cmFindPathCommand, + * and cmFindLibraryCommand, cmFindFileCommand + */ +class cmFindBase : public cmFindCommon +{ +public: + cmFindBase(); + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool ParseArguments(std::vector const& args); + cmTypeMacro(cmFindBase, cmFindCommon); + + virtual const char* GetFullDocumentation() + {return this->GenericDocumentation.c_str();} + +protected: + void PrintFindStuff(); + void ExpandPaths(std::vector userPaths); + + // add to the SearchPaths + void AddPaths(std::vector& paths); + void AddFrameWorkPaths(); + void AddAppBundlePaths(); + void AddEnvironmentVariables(); + void AddFindPrefix(std::vector& dest, + const std::vector& src); + void AddCMakeVariables(); + void AddSystemEnvironmentVariables(); + void AddCMakeSystemVariables(); + void ExpandRegistryAndCleanPath(std::vector& paths); + // see if the VariableName is already set in the cache, + // also copy the documentation from the cache to VariableDocumentation + // if it has documentation in the cache + bool CheckForVariableInCache(); + + cmStdString GenericDocumentation; + // use by command during find + cmStdString VariableDocumentation; + cmStdString VariableName; + std::vector Names; + std::vector SearchPaths; + + // CMAKE_*_PATH CMAKE_SYSTEM_*_PATH FRAMEWORK|LIBRARY|INCLUDE|PROGRAM + cmStdString EnvironmentPath; // LIB,INCLUDE + + bool AlreadyInCache; + bool AlreadyInCacheWithoutMetaInfo; +}; + + + +#endif diff --git a/CMakeLua/Source/cmFindCommon.cxx b/CMakeLua/Source/cmFindCommon.cxx new file mode 100644 index 0000000..7e1ebc6 --- /dev/null +++ b/CMakeLua/Source/cmFindCommon.cxx @@ -0,0 +1,479 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindCommon.cxx,v $ + Language: C++ + Date: $Date: 2008/01/17 14:02:31 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFindCommon.h" + +//---------------------------------------------------------------------------- +cmFindCommon::cmFindCommon() +{ + this->FindRootPathMode = RootPathModeBoth; + this->NoDefaultPath = false; + this->NoCMakePath = false; + this->NoCMakeEnvironmentPath = false; + this->NoSystemEnvironmentPath = false; + this->NoCMakeSystemPath = false; + + // OS X Bundle and Framework search policy. The default is to + // search frameworks first on apple. +#if defined(__APPLE__) + this->SearchFrameworkFirst = true; + this->SearchAppBundleFirst = true; +#else + this->SearchFrameworkFirst = false; + this->SearchAppBundleFirst = false; +#endif + this->SearchFrameworkOnly = false; + this->SearchFrameworkLast = false; + this->SearchAppBundleOnly = false; + this->SearchAppBundleLast = false; + + // Documentation components. + this->GenericDocumentationMacPolicy = + "On Darwin or systems supporting OS X Frameworks, the cmake variable" + " CMAKE_FIND_FRAMEWORK can be set to empty or one of the following:\n" + " \"FIRST\" - Try to find frameworks before standard\n" + " libraries or headers. This is the default on Darwin.\n" + " \"LAST\" - Try to find frameworks after standard\n" + " libraries or headers.\n" + " \"ONLY\" - Only try to find frameworks.\n" + " \"NEVER\". - Never try to find frameworks.\n" + "On Darwin or systems supporting OS X Application Bundles, the cmake " + "variable CMAKE_FIND_APPBUNDLE can be set to empty or one of the " + "following:\n" + " \"FIRST\" - Try to find application bundles before standard\n" + " programs. This is the default on Darwin.\n" + " \"LAST\" - Try to find application bundles after standard\n" + " programs.\n" + " \"ONLY\" - Only try to find application bundles.\n" + " \"NEVER\". - Never try to find application bundles.\n"; + this->GenericDocumentationRootPath = + "The CMake variable CMAKE_FIND_ROOT_PATH specifies one or more " + "directories to be prepended to all other search directories. " + "This effectively \"re-roots\" the entire search under given locations. " + "By default it is empty. It is especially useful when " + "cross-compiling to point to the root directory of the " + "target environment and CMake will search there too. By default at first " + "the directories listed in CMAKE_FIND_ROOT_PATH and then the non-rooted " + "directories will be searched. " + "The default behavior can be adjusted by setting " + "CMAKE_FIND_ROOT_PATH_MODE_XXX. This behavior can be manually " + "overridden on a per-call basis. " + "By using CMAKE_FIND_ROOT_PATH_BOTH the search order will " + "be as described above. If NO_CMAKE_FIND_ROOT_PATH is used " + "then CMAKE_FIND_ROOT_PATH will not be used. If ONLY_CMAKE_FIND_ROOT_PATH " + "is used then only the re-rooted directories will be searched.\n"; + this->GenericDocumentationPathsOrder = + "The reason the paths listed in the call to the command are searched " + "last is that most users of CMake would expect things to be found " + "first in the locations specified by their environment. Projects may " + "override this behavior by simply calling the command twice:\n" + " FIND_XXX(FIND_ARGS_XXX PATHS paths... NO_DEFAULT_PATH)\n" + " FIND_XXX(FIND_ARGS_XXX)\n" + "Once one of these calls succeeds the result variable will be set " + "and stored in the cache so that neither call will search again."; +} + +//---------------------------------------------------------------------------- +cmFindCommon::~cmFindCommon() +{ +} + +//---------------------------------------------------------------------------- +void cmFindCommon::SelectDefaultRootPathMode() +{ + // Use both by default. + this->FindRootPathMode = RootPathModeBoth; + + // Check the policy variable for this find command type. + std::string findRootPathVar = "CMAKE_FIND_ROOT_PATH_MODE_"; + findRootPathVar += this->CMakePathName; + std::string rootPathMode = + this->Makefile->GetSafeDefinition(findRootPathVar.c_str()); + if (rootPathMode=="NEVER") + { + this->FindRootPathMode = RootPathModeNoRootPath; + } + else if (rootPathMode=="ONLY") + { + this->FindRootPathMode = RootPathModeOnlyRootPath; + } + else if (rootPathMode=="BOTH") + { + this->FindRootPathMode = RootPathModeBoth; + } +} + +//---------------------------------------------------------------------------- +void cmFindCommon::SelectDefaultMacMode() +{ + std::string ff = this->Makefile->GetSafeDefinition("CMAKE_FIND_FRAMEWORK"); + if(ff == "NEVER") + { + this->SearchFrameworkLast = false; + this->SearchFrameworkFirst = false; + this->SearchFrameworkOnly = false; + } + else if(ff == "ONLY") + { + this->SearchFrameworkLast = false; + this->SearchFrameworkFirst = false; + this->SearchFrameworkOnly = true; + } + else if(ff == "FIRST") + { + this->SearchFrameworkLast = false; + this->SearchFrameworkFirst = true; + this->SearchFrameworkOnly = false; + } + else if(ff == "LAST") + { + this->SearchFrameworkLast = true; + this->SearchFrameworkFirst = false; + this->SearchFrameworkOnly = false; + } + + std::string fab = this->Makefile->GetSafeDefinition("CMAKE_FIND_APPBUNDLE"); + if(fab == "NEVER") + { + this->SearchAppBundleLast = false; + this->SearchAppBundleFirst = false; + this->SearchAppBundleOnly = false; + } + else if(fab == "ONLY") + { + this->SearchAppBundleLast = false; + this->SearchAppBundleFirst = false; + this->SearchAppBundleOnly = true; + } + else if(fab == "FIRST") + { + this->SearchAppBundleLast = false; + this->SearchAppBundleFirst = true; + this->SearchAppBundleOnly = false; + } + else if(fab == "LAST") + { + this->SearchAppBundleLast = true; + this->SearchAppBundleFirst = false; + this->SearchAppBundleOnly = false; + } +} + +//---------------------------------------------------------------------------- +void cmFindCommon::RerootPaths(std::vector& paths) +{ +#if 0 + for(std::vector::const_iterator i = paths.begin(); + i != paths.end(); ++i) + { + fprintf(stderr, "[%s]\n", i->c_str()); + } +#endif + + // Short-circuit if there is nothing to do. + if(this->FindRootPathMode == RootPathModeNoRootPath) + { + return; + } + const char* rootPath = + this->Makefile->GetDefinition("CMAKE_FIND_ROOT_PATH"); + if((rootPath == 0) || (strlen(rootPath) == 0)) + { + return; + } + + // Construct the list of path roots with no trailing slashes. + std::vector roots; + cmSystemTools::ExpandListArgument(rootPath, roots); + for(std::vector::iterator ri = roots.begin(); + ri != roots.end(); ++ri) + { + cmSystemTools::ConvertToUnixSlashes(*ri); + } + + // Copy the original set of unrooted paths. + std::vector unrootedPaths = paths; + paths.clear(); + + for(std::vector::const_iterator ri = roots.begin(); + ri != roots.end(); ++ri) + { + for(std::vector::const_iterator ui = unrootedPaths.begin(); + ui != unrootedPaths.end(); ++ui) + { + // Place the unrooted path under the current root if it is not + // already inside. Skip the unrooted path if it is relative to + // a user home directory or is empty. + std::string rootedDir; + if(cmSystemTools::IsSubDirectory(ui->c_str(), ri->c_str())) + { + rootedDir = *ui; + } + else if(!ui->empty() && (*ui)[0] != '~') + { + // Start with the new root. + rootedDir = *ri; + rootedDir += "/"; + + // Append the original path with its old root removed. + rootedDir += cmSystemTools::SplitPathRootComponent(ui->c_str()); + } + + // Store the new path. + paths.push_back(rootedDir); + } + } + + // If searching both rooted and unrooted paths add the original + // paths again. + if(this->FindRootPathMode == RootPathModeBoth) + { + paths.insert(paths.end(), unrootedPaths.begin(), unrootedPaths.end()); + } +} + +//---------------------------------------------------------------------------- +bool cmFindCommon::CheckCommonArgument(std::string const& arg) +{ + if(arg == "NO_DEFAULT_PATH") + { + this->NoDefaultPath = true; + } + else if(arg == "NO_CMAKE_ENVIRONMENT_PATH") + { + this->NoCMakeEnvironmentPath = true; + } + else if(arg == "NO_CMAKE_PATH") + { + this->NoCMakePath = true; + } + else if(arg == "NO_SYSTEM_ENVIRONMENT_PATH") + { + this->NoSystemEnvironmentPath = true; + } + else if(arg == "NO_CMAKE_SYSTEM_PATH") + { + this->NoCMakeSystemPath = true; + } + else if(arg == "NO_CMAKE_FIND_ROOT_PATH") + { + this->FindRootPathMode = RootPathModeNoRootPath; + } + else if(arg == "ONLY_CMAKE_FIND_ROOT_PATH") + { + this->FindRootPathMode = RootPathModeOnlyRootPath; + } + else if(arg == "CMAKE_FIND_ROOT_PATH_BOTH") + { + this->FindRootPathMode = RootPathModeBoth; + } + else + { + // The argument is not one of the above. + return false; + } + + // The argument is one of the above. + return true; +} + +//---------------------------------------------------------------------------- +void cmFindCommon::AddPathSuffix(std::string const& arg) +{ + std::string suffix = arg; + + // Strip leading and trailing slashes. + if(suffix.empty()) + { + return; + } + if(suffix[0] == '/') + { + suffix = suffix.substr(1, suffix.npos); + } + if(suffix.empty()) + { + return; + } + if(suffix[suffix.size()-1] == '/') + { + suffix = suffix.substr(0, suffix.size()-1); + } + if(suffix.empty()) + { + return; + } + + // Store the suffix. + this->SearchPathSuffixes.push_back(suffix); +} + +//---------------------------------------------------------------------------- +void cmFindCommon::GetAppBundlePaths(std::vector& paths) +{ + if(this->NoDefaultPath) + { + return; + } + std::vector tmp; + + // first environment variables + if(!this->NoCMakeEnvironmentPath) + { + cmSystemTools::GetPath(tmp, "CMAKE_APPBUNDLE_PATH"); + this->AddPathsInternal(paths, tmp, EnvPath); + tmp.clear(); + } + + // add cmake variables + if(!this->NoCMakePath) + { + if(const char* path = + this->Makefile->GetDefinition("CMAKE_APPBUNDLE_PATH")) + { + cmSystemTools::ExpandListArgument(path, tmp); + this->AddPathsInternal(paths, tmp, CMakePath); + tmp.clear(); + } + } + + // add cmake system variables + if(!this->NoCMakeSystemPath) + { + if(const char* path = + this->Makefile->GetDefinition("CMAKE_SYSTEM_APPBUNDLE_PATH")) + { + cmSystemTools::ExpandListArgument(path, tmp); + this->AddPathsInternal(paths, tmp, CMakePath); + tmp.clear(); + } + } +} + +//---------------------------------------------------------------------------- +void cmFindCommon::GetFrameworkPaths(std::vector& paths) +{ + if(this->NoDefaultPath) + { + return; + } + std::vector tmp; + + // first environment variables + if(!this->NoCMakeEnvironmentPath) + { + cmSystemTools::GetPath(tmp, "CMAKE_FRAMEWORK_PATH"); + this->AddPathsInternal(paths, tmp, EnvPath); + tmp.clear(); + } + + // add cmake variables + if(!this->NoCMakePath) + { + if(const char* path = + this->Makefile->GetDefinition("CMAKE_FRAMEWORK_PATH")) + { + cmSystemTools::ExpandListArgument(path, tmp); + this->AddPathsInternal(paths, tmp, CMakePath); + tmp.clear(); + } + } + + // add cmake system variables + if(!this->NoCMakeSystemPath) + { + if(const char* path = + this->Makefile->GetDefinition("CMAKE_SYSTEM_FRAMEWORK_PATH")) + { + cmSystemTools::ExpandListArgument(path, tmp); + this->AddPathsInternal(paths, tmp, CMakePath); + tmp.clear(); + } + } +} + +//---------------------------------------------------------------------------- +void cmFindCommon::AddCMakePath(std::vector& out_paths, + const char* variable, + std::set* emmitted) +{ + // Get a path from a CMake variable. + if(const char* varPath = this->Makefile->GetDefinition(variable)) + { + std::vector tmp; + cmSystemTools::ExpandListArgument(varPath, tmp); + + // Relative paths are interpreted with respect to the current + // source directory. + this->AddPathsInternal(out_paths, tmp, CMakePath, emmitted); + } +} + +//---------------------------------------------------------------------------- +void cmFindCommon::AddEnvPath(std::vector& out_paths, + const char* variable, + std::set* emmitted) +{ + // Get a path from the environment. + std::vector tmp; + cmSystemTools::GetPath(tmp, variable); + + // Relative paths are interpreted with respect to the current + // working directory. + this->AddPathsInternal(out_paths, tmp, EnvPath, emmitted); +} + +//---------------------------------------------------------------------------- +void cmFindCommon::AddPathsInternal(std::vector& out_paths, + std::vector const& in_paths, + PathType pathType, + std::set* emmitted) +{ + for(std::vector::const_iterator i = in_paths.begin(); + i != in_paths.end(); ++i) + { + this->AddPathInternal(out_paths, *i, pathType, emmitted); + } +} + +//---------------------------------------------------------------------------- +void cmFindCommon::AddPathInternal(std::vector& out_paths, + std::string const& in_path, + PathType pathType, + std::set* emmitted) +{ + if(in_path.empty()) + { + return; + } + + // Select the base path with which to interpret relative paths. + const char* relbase = 0; + if(pathType == CMakePath) + { + relbase = this->Makefile->GetCurrentDirectory(); + } + + // Convert to clean full path. + std::string fullPath = + cmSystemTools::CollapseFullPath(in_path.c_str(), relbase); + + // Insert the path if has not already been emmitted. + if(!emmitted || emmitted->insert(fullPath).second) + { + out_paths.push_back(fullPath.c_str()); + } +} diff --git a/CMakeLua/Source/cmFindCommon.h b/CMakeLua/Source/cmFindCommon.h new file mode 100644 index 0000000..d0b571f --- /dev/null +++ b/CMakeLua/Source/cmFindCommon.h @@ -0,0 +1,95 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindCommon.h,v $ + Language: C++ + Date: $Date: 2008/01/17 14:02:31 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFindCommon_h +#define cmFindCommon_h + +#include "cmCommand.h" + +/** \class cmFindCommon + * \brief Base class for FIND_XXX implementations. + * + * cmFindCommon is a parent class for cmFindBase, + * cmFindProgramCommand, cmFindPathCommand, cmFindLibraryCommand, + * cmFindFileCommand, and cmFindPackageCommand. + */ +class cmFindCommon : public cmCommand +{ +public: + cmFindCommon(); + ~cmFindCommon(); + cmTypeMacro(cmFindCommon, cmCommand); + +protected: + + enum RootPathMode { RootPathModeBoth, + RootPathModeOnlyRootPath, + RootPathModeNoRootPath }; + + enum PathType { FullPath, CMakePath, EnvPath }; + + /** Place a set of search paths under the search roots. */ + void RerootPaths(std::vector& paths); + + /** Compute the current default root path mode. */ + void SelectDefaultRootPathMode(); + + /** Compute the current default bundle/framework search policy. */ + void SelectDefaultMacMode(); + + cmStdString CMakePathName; + RootPathMode FindRootPathMode; + + bool CheckCommonArgument(std::string const& arg); + void AddPathSuffix(std::string const& arg); + void GetAppBundlePaths(std::vector& paths); + void GetFrameworkPaths(std::vector& paths); + + void AddCMakePath(std::vector& out_paths, + const char* variable, std::set* emmitted = 0); + void AddEnvPath(std::vector& out_paths, + const char* variable, std::set* emmitted = 0); + void AddPathsInternal(std::vector& out_paths, + std::vector const& in_paths, + PathType pathType, + std::set* emmitted = 0); + void AddPathInternal(std::vector& out_paths, + std::string const& in_path, + PathType pathType, + std::set* emmitted = 0); + + bool NoDefaultPath; + bool NoCMakePath; + bool NoCMakeEnvironmentPath; + bool NoSystemEnvironmentPath; + bool NoCMakeSystemPath; + + std::vector SearchPathSuffixes; + + std::string GenericDocumentationMacPolicy; + std::string GenericDocumentationRootPath; + std::string GenericDocumentationPathsOrder; + + bool SearchFrameworkFirst; + bool SearchFrameworkOnly; + bool SearchFrameworkLast; + + bool SearchAppBundleFirst; + bool SearchAppBundleOnly; + bool SearchAppBundleLast; +}; + +#endif diff --git a/CMakeLua/Source/cmFindFileCommand.cxx b/CMakeLua/Source/cmFindFileCommand.cxx new file mode 100644 index 0000000..de89877 --- /dev/null +++ b/CMakeLua/Source/cmFindFileCommand.cxx @@ -0,0 +1,30 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindFileCommand.cxx,v $ + Language: C++ + Date: $Date: 2007/10/10 15:47:43 $ + Version: $Revision: 1.30 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFindFileCommand.h" +#include "cmSystemTools.h" + +cmFindFileCommand::cmFindFileCommand() +{ + this->IncludeFileInPath = true; + cmSystemTools::ReplaceString(this->GenericDocumentation, + "FIND_PATH", "find_file"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "directory containing the named file", + "full path to named file"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "file in a directory", "full path to a file"); +} diff --git a/CMakeLua/Source/cmFindFileCommand.h b/CMakeLua/Source/cmFindFileCommand.h new file mode 100644 index 0000000..6b4479b --- /dev/null +++ b/CMakeLua/Source/cmFindFileCommand.h @@ -0,0 +1,56 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindFileCommand.h,v $ + Language: C++ + Date: $Date: 2007/10/10 15:47:43 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFindFileCommand_h +#define cmFindFileCommand_h + +#include "cmFindPathCommand.h" + +/** \class cmFindFileCommand + * \brief Define a command to search for an executable program. + * + * cmFindFileCommand is used to define a CMake variable + * that specifies an executable program. The command searches + * in the current path (e.g., PATH environment variable) for + * an executable that matches one of the supplied names. + */ +class cmFindFileCommand : public cmFindPathCommand +{ +public: + cmFindFileCommand(); + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFindFileCommand; + } + virtual const char* GetName() { return "find_file";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Find the full path to a file."; + } + + cmTypeMacro(cmFindFileCommand, cmFindPathCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmFindLibraryCommand.cxx b/CMakeLua/Source/cmFindLibraryCommand.cxx new file mode 100644 index 0000000..bad37d4 --- /dev/null +++ b/CMakeLua/Source/cmFindLibraryCommand.cxx @@ -0,0 +1,290 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindLibraryCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/31 12:50:40 $ + Version: $Revision: 1.55 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFindLibraryCommand.h" +#include "cmCacheManager.h" + +cmFindLibraryCommand::cmFindLibraryCommand() +{ + cmSystemTools::ReplaceString(this->GenericDocumentation, + "FIND_XXX", "find_library"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_XXX_PATH", "CMAKE_LIBRARY_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_XXX_MAC_PATH", + "CMAKE_FRAMEWORK_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_SYSTEM_XXX_MAC_PATH", + "CMAKE_SYSTEM_FRAMEWORK_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "XXX_SYSTEM", "LIB"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_SYSTEM_XXX_PATH", + "CMAKE_SYSTEM_LIBRARY_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "SEARCH_XXX_DESC", "library"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "SEARCH_XXX", "library"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "XXX_SUBDIR", "lib"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_FIND_ROOT_PATH_MODE_XXX", + "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY"); + + this->EnvironmentPath = "LIB"; + this->GenericDocumentation += + "\n" + "If the library found is a framework, then VAR will be set to " + "the full path to the framework /A.framework. " + "When a full path to a framework is used as a library, " + "CMake will use a -framework A, and a -F to " + "link the framework to the target. "; +} + +// cmFindLibraryCommand +bool cmFindLibraryCommand +::InitialPass(std::vector const& argsIn, cmExecutionStatus &) +{ + this->VariableDocumentation = "Path to a library."; + this->CMakePathName = "LIBRARY"; + if(!this->ParseArguments(argsIn)) + { + return false; + } + if(this->AlreadyInCache) + { + // If the user specifies the entry on the command line without a + // type we should add the type and docstring but keep the original + // value. + if(this->AlreadyInCacheWithoutMetaInfo) + { + this->Makefile->AddCacheDefinition(this->VariableName.c_str(), "", + this->VariableDocumentation.c_str(), + cmCacheManager::FILEPATH); + } + return true; + } + + if(const char* abi_name = + this->Makefile->GetDefinition("CMAKE_INTERNAL_PLATFORM_ABI")) + { + std::string abi = abi_name; + if(abi.find("ELF N32") != abi.npos) + { + // Convert lib to lib32. + this->AddArchitecturePaths("32"); + } + } + + if(this->Makefile->GetCMakeInstance() + ->GetPropertyAsBool("FIND_LIBRARY_USE_LIB64_PATHS")) + { + // add special 64 bit paths if this is a 64 bit compile. + this->AddLib64Paths(); + } + + std::string library; + for(std::vector::iterator i = this->Names.begin(); + i != this->Names.end() ; ++i) + { + library = this->FindLibrary(i->c_str()); + if(library != "") + { + this->Makefile->AddCacheDefinition(this->VariableName.c_str(), + library.c_str(), + this->VariableDocumentation.c_str(), + cmCacheManager::FILEPATH); + return true; + } + } + std::string notfound = this->VariableName + "-NOTFOUND"; + this->Makefile->AddCacheDefinition(this->VariableName.c_str(), + notfound.c_str(), + this->VariableDocumentation.c_str(), + cmCacheManager::FILEPATH); + return true; +} + +//---------------------------------------------------------------------------- +void cmFindLibraryCommand::AddArchitecturePaths(const char* suffix) +{ + std::vector newPaths; + bool found = false; + std::string subpath = "lib"; + subpath += suffix; + subpath += "/"; + for(std::vector::iterator i = this->SearchPaths.begin(); + i != this->SearchPaths.end(); ++i) + { + // Try replacing lib/ with lib/ + std::string s = *i; + cmSystemTools::ReplaceString(s, "lib/", subpath.c_str()); + if((s != *i) && cmSystemTools::FileIsDirectory(s.c_str())) + { + found = true; + newPaths.push_back(s); + } + + // Now look for lib + s = *i; + s += suffix; + if(cmSystemTools::FileIsDirectory(s.c_str())) + { + found = true; + newPaths.push_back(s); + } + // now add the original unchanged path + if(cmSystemTools::FileIsDirectory(i->c_str())) + { + newPaths.push_back(*i); + } + } + + // If any new paths were found replace the original set. + if(found) + { + this->SearchPaths = newPaths; + } +} + +void cmFindLibraryCommand::AddLib64Paths() +{ + if(!this->Makefile->GetLocalGenerator()->GetGlobalGenerator()-> + GetLanguageEnabled("C")) + { + return; + } + std::string voidsize = + this->Makefile->GetRequiredDefinition("CMAKE_SIZEOF_VOID_P"); + int size = atoi(voidsize.c_str()); + if(size != 8) + { + return; + } + std::vector path64; + bool found64 = false; + for(std::vector::iterator i = this->SearchPaths.begin(); + i != this->SearchPaths.end(); ++i) + { + std::string s = *i; + std::string s2 = *i; + cmSystemTools::ReplaceString(s, "lib/", "lib64/"); + // try to replace lib with lib64 and see if it is there, + // then prepend it to the path + if((s != *i) && cmSystemTools::FileIsDirectory(s.c_str())) + { + path64.push_back(s); + found64 = true; + } + // now just add a 64 to the path name and if it is there, + // add it to the path + s2 += "64"; + if(cmSystemTools::FileIsDirectory(s2.c_str())) + { + found64 = true; + path64.push_back(s2); + } + // now add the original unchanged path + if(cmSystemTools::FileIsDirectory(i->c_str())) + { + path64.push_back(*i); + } + } + // now replace the SearchPaths with the 64 bit converted path + // if any 64 bit paths were discovered + if(found64) + { + this->SearchPaths = path64; + } +} + +std::string cmFindLibraryCommand::FindLibrary(const char* name) +{ + bool supportFrameworks = false; + bool onlyFrameworks = false; + std::string ff = this->Makefile->GetSafeDefinition("CMAKE_FIND_FRAMEWORK"); + if(ff == "FIRST" || ff == "LAST") + { + supportFrameworks = true; + } + if(ff == "ONLY") + { + onlyFrameworks = true; + supportFrameworks = true; + } + + const char* prefixes_list = + this->Makefile->GetRequiredDefinition("CMAKE_FIND_LIBRARY_PREFIXES"); + const char* suffixes_list = + this->Makefile->GetRequiredDefinition("CMAKE_FIND_LIBRARY_SUFFIXES"); + std::vector prefixes; + std::vector suffixes; + cmSystemTools::ExpandListArgument(prefixes_list, prefixes, true); + cmSystemTools::ExpandListArgument(suffixes_list, suffixes, true); + // Add a trailing slash to all paths to aid the search process. + for(std::vector::iterator i = this->SearchPaths.begin(); + i != this->SearchPaths.end(); ++i) + { + std::string& p = *i; + if(p.empty() || p[p.size()-1] != '/') + { + p += "/"; + } + } + std::string tryPath; + for(std::vector::const_iterator p = this->SearchPaths.begin(); + p != this->SearchPaths.end(); ++p) + { + if(supportFrameworks) + { + tryPath = *p; + tryPath += name; + tryPath += ".framework"; + if(cmSystemTools::FileExists(tryPath.c_str()) + && cmSystemTools::FileIsDirectory(tryPath.c_str())) + { + tryPath = cmSystemTools::CollapseFullPath(tryPath.c_str()); + cmSystemTools::ConvertToUnixSlashes(tryPath); + return tryPath; + } + } + if(!onlyFrameworks) + { + // Try various library naming conventions. + for(std::vector::iterator prefix = prefixes.begin(); + prefix != prefixes.end(); ++prefix) + { + for(std::vector::iterator suffix = suffixes.begin(); + suffix != suffixes.end(); ++suffix) + { + tryPath = *p; + tryPath += *prefix; + tryPath += name; + tryPath += *suffix; + if(cmSystemTools::FileExists(tryPath.c_str()) + && !cmSystemTools::FileIsDirectory(tryPath.c_str())) + { + tryPath = cmSystemTools::CollapseFullPath(tryPath.c_str()); + cmSystemTools::ConvertToUnixSlashes(tryPath); + return tryPath; + } + } + } + } + } + // Couldn't find the library. + return ""; +} diff --git a/CMakeLua/Source/cmFindLibraryCommand.h b/CMakeLua/Source/cmFindLibraryCommand.h new file mode 100644 index 0000000..dccf943 --- /dev/null +++ b/CMakeLua/Source/cmFindLibraryCommand.h @@ -0,0 +1,76 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindLibraryCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/31 12:50:40 $ + Version: $Revision: 1.27 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFindLibraryCommand_h +#define cmFindLibraryCommand_h + +#include "cmFindBase.h" + + +/** \class cmFindLibraryCommand + * \brief Define a command to search for a library. + * + * cmFindLibraryCommand is used to define a CMake variable + * that specifies a library. The command searches for a given + * file in a list of directories. + */ +class cmFindLibraryCommand : public cmFindBase +{ +public: + cmFindLibraryCommand(); + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFindLibraryCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "find_library";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Find a library."; + } + cmTypeMacro(cmFindLibraryCommand, cmFindBase); + +protected: + void AddArchitecturePaths(const char* suffix); + void AddLib64Paths(); + std::string FindLibrary(const char* name); +}; + + + +#endif diff --git a/CMakeLua/Source/cmFindPackageCommand.cxx b/CMakeLua/Source/cmFindPackageCommand.cxx new file mode 100644 index 0000000..a732f58 --- /dev/null +++ b/CMakeLua/Source/cmFindPackageCommand.cxx @@ -0,0 +1,1838 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindPackageCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/29 14:57:39 $ + Version: $Revision: 1.36 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFindPackageCommand.h" +#include + +#ifdef CMAKE_BUILD_WITH_CMAKE +#include "cmVariableWatch.h" +#endif + +void cmFindPackageNeedBackwardsCompatibility(const std::string& variable, + int access_type, void*, const char* newValue, + const cmMakefile*) +{ + (void)newValue; +#ifdef CMAKE_BUILD_WITH_CMAKE + if(access_type == cmVariableWatch::UNKNOWN_VARIABLE_READ_ACCESS) + { + std::string message = "An attempt was made to access a variable: "; + message += variable; + message += + " that has not been defined. This variable is created by the " + "FIND_PACKAGE command. CMake version 1.6 always converted the " + "variable name to upper-case, but this behavior is no longer the " + "case. To fix this you might need to set the cache value of " + "CMAKE_BACKWARDS_COMPATIBILITY to 1.6 or less. If you are writing a " + "CMake listfile, you should change the variable reference to use " + "the case of the argument to FIND_PACKAGE."; + cmSystemTools::Error(message.c_str()); + } +#else + (void)variable; + (void)access_type; +#endif +} + +//---------------------------------------------------------------------------- +cmFindPackageCommand::cmFindPackageCommand() +{ + cmSystemTools::ReplaceString(this->GenericDocumentationRootPath, + "CMAKE_FIND_ROOT_PATH_MODE_XXX", + "CMAKE_FIND_ROOT_PATH_MODE_PACKAGE"); + cmSystemTools::ReplaceString(this->GenericDocumentationPathsOrder, + "FIND_ARGS_XXX", ""); + cmSystemTools::ReplaceString(this->GenericDocumentationPathsOrder, + "FIND_XXX", "find_package"); + this->CMakePathName = "PACKAGE"; + this->Quiet = false; + this->Required = false; + this->NoBuilds = false; + this->NoModule = false; + this->DebugMode = false; + this->VersionMajor = 0; + this->VersionMinor = 0; + this->VersionPatch = 0; + this->VersionCount = 0; + this->VersionExact = false; + this->VersionFoundMajor = 0; + this->VersionFoundMinor = 0; + this->VersionFoundPatch = 0; + this->VersionFoundCount = 0; + this->CommandDocumentation = + " find_package( [major[.minor[.patch]]] [EXACT] [QUIET]\n" + " [[REQUIRED|COMPONENTS] [components...]])\n" + "Finds and loads settings from an external project. " + "_FOUND will be set to indicate whether the package was found. " + "When the package is found package-specific information is provided " + "through variables documented by the package itself. " + "The QUIET option disables messages if the package cannot be found. " + "The REQUIRED option stops processing with an error message if the " + "package cannot be found. " + "A package-specific list of components may be listed after the " + "REQUIRED option or after the COMPONENTS option if no REQUIRED " + "option is given. " + "The \"[major[.minor[.patch]]]\" version argument specifies a desired " + "version with which the package found should be compatible. " + "The EXACT option requests that the version be matched exactly. " + "Version support is currently provided only on a package-by-package " + "basis (details below).\n" + "User code should generally look for packages using the above simple " + "signature. The remainder of this command documentation specifies the " + "full command signature and details of the search process. Project " + "maintainers wishing to provide a package to be found by this command " + "are encouraged to read on.\n" + "The command has two modes by which it searches for packages: " + "\"Module\" mode and \"Config\" mode. " + "Module mode is available when the command is invoked with the above " + "reduced signature. " + "CMake searches for a file called \"Find.cmake\" in " + "the CMAKE_MODULE_PATH followed by the CMake installation. " + "If the file is found, it is read and processed by CMake. " + "It is responsible for finding the package, checking the version, " + "and producing any needed messages. " + "Many find-modules provide limited or no support for versioning; " + "check the module documentation. " + "If no module is found the command proceeds to Config mode.\n" + "The complete Config mode command signature is:\n" + " find_package( [major[.minor[.patch]]] [EXACT] [QUIET]\n" + " [[REQUIRED|COMPONENTS] [components...]] [NO_MODULE]\n" + " [NAMES name1 [name2 ...]]\n" + " [CONFIGS config1 [config2 ...]]\n" + " [PATHS path1 [path2 ... ]]\n" + " [PATH_SUFFIXES suffix1 [suffix2 ...]]\n" + " [NO_DEFAULT_PATH]\n" + " [NO_CMAKE_ENVIRONMENT_PATH]\n" + " [NO_CMAKE_PATH]\n" + " [NO_SYSTEM_ENVIRONMENT_PATH]\n" + " [NO_CMAKE_BUILDS_PATH]\n" + " [NO_CMAKE_SYSTEM_PATH]\n" + " [CMAKE_FIND_ROOT_PATH_BOTH |\n" + " ONLY_CMAKE_FIND_ROOT_PATH |\n" + " NO_CMAKE_FIND_ROOT_PATH])\n" + "The NO_MODULE option may be used to skip Module mode explicitly. " + "It is also implied by use of options not specified in the reduced " + "signature. " + "\n" + "Config mode attempts to locate a configuration file provided by the " + "package to be found. A cache entry called _DIR is created to " + "hold the directory containing the file. " + "By default the command searches for a package with the name . " + "If the NAMES option is given the names following it are used instead " + "of . " + "The command searches for a file called \"Config.cmake\" or " + "\"-config.cmake\" for each name specified. " + "A replacement set of possible configuration file names may be given " + "using the CONFIGS option. " + "The search procedure is specified below. Once found, the configuration " + "file is read and processed by CMake. Since the file is provided by the " + "package it already knows the location of package contents. " + "The full path to the configuration file is stored in the cmake " + "variable _CONFIG." + "\n" + "If the package configuration file cannot be found CMake " + "will generate an error describing the problem unless the QUIET " + "argument is specified. If REQUIRED is specified and the package " + "is not found a fatal error is generated and the configure step stops " + "executing. If _DIR has been set to a directory not containing " + "a configuration file a fatal error is always generated because user " + "intervention is required." + "\n" + "When the \"[major[.minor[.patch]]]\" version argument is specified " + "Config mode will only find a version of the package that claims " + "compatibility with the requested version. " + "If the EXACT option is given only a version of the package claiming " + "an exact match of the requested version may be found. " + "CMake does not establish any convention for the meaning of version " + "numbers. " + "Package version numbers are checked by \"version\" files provided by " + "the packages themselves. " + "For a candidate package confguration file \".cmake\" the " + "corresponding version file is located next to it and named either " + "\"-version.cmake\" or \"Version.cmake\". " + "If no such version file is available then the configuration file " + "is assumed to not be compatible with any requested version. " + "When a version file is found it is loaded to check the requested " + "version number. " + "The version file is loaded in a nested scope in which the following " + "variables have been defined:\n" + " PACKAGE_FIND_NAME = the name\n" + " PACKAGE_FIND_VERSION = full requested version string\n" + " PACKAGE_FIND_VERSION_MAJOR = requested major version, if any\n" + " PACKAGE_FIND_VERSION_MINOR = requested minor version, if any\n" + " PACKAGE_FIND_VERSION_PATCH = requested patch version, if any\n" + "The version file checks whether it satisfies the requested version " + "and sets these variables:\n" + " PACKAGE_VERSION = package version (major[.minor[.patch]])\n" + " PACKAGE_VERSION_EXACT = true if version is exact match\n" + " PACKAGE_VERSION_COMPATIBLE = true if version is compatible\n" + "These variables are checked by the find_package command to determine " + "whether the configuration file provides an acceptable version. " + "They are not available after the find_package call returns. " + "If the version is acceptable the following variables are set:\n" + " _VERSION = package version (major[.minor[.patch]])\n" + " _VERSION_MAJOR = major from major[.minor[.patch]], if any\n" + " _VERSION_MINOR = minor from major[.minor[.patch]], if any\n" + " _VERSION_PATCH = patch from major[.minor[.patch]], if any\n" + "and the corresponding package configuration file is loaded. " + "When multiple package configuration files are available whose version " + "files claim compatibility with the version requested it is unspecified " + "which one is chosen. " + "No attempt is made to choose a highest or closest version number." + "\n" + "Config mode provides an elaborate interface and search procedure. " + "Much of the interface is provided for completeness and for use " + "internally by find-modules loaded by Module mode. " + "Most user code should simply call\n" + " find_package( [major[.minor]] [EXACT] [REQUIRED|QUIET])\n" + "in order to find a package. Package maintainers providing CMake " + "package configuration files are encouraged to name and install " + "them such that the procedure outlined below will find them " + "without requiring use of additional options." + "\n" + "CMake constructs a set of possible installation prefixes for the " + "package. Under each prefix several directories are searched for a " + "configuration file. The tables below show the directories searched. " + "Each entry is meant for installation trees following Windows (W), " + "UNIX (U), or Apple (A) conventions.\n" + " / (W)\n" + " /(cmake|CMake)/ (W)\n" + " /(share|lib)/*/ (U)\n" + " /(share|lib)/*/(cmake|CMake)/ (U)\n" + "On systems supporting OS X Frameworks and Application Bundles " + "the following directories are searched for frameworks or bundles " + "containing a configuration file:\n" + " /.framework/Resources/ (A)\n" + " /.framework/Resources/CMake/ (A)\n" + " /.framework/Versions/*/Resources/ (A)\n" + " /.framework/Versions/*/Resources/CMake/ (A)\n" + " /.app/Contents/Resources/ (A)\n" + " /.app/Contents/Resources/CMake/ (A)\n" + "In all cases the is treated as case-insensitive and corresponds " + "to any of the names specified ( or names given by NAMES). " + "If PATH_SUFFIXES is specified the suffixes are appended to each " + "(W) or (U) directory entry one-by-one.\n" + "This set of directories is intended to work in cooperation with " + "projects that provide configuration files in their installation trees. " + "Directories above marked with (W) are intended for installations on " + "Windows where the prefix may point at the top of an application's " + "installation directory. Those marked with (U) are intended for " + "installations on UNIX platforms where the prefix is shared by " + "multiple packages. This is merely a convention, so all (W) and (U) " + "directories are still searched on all platforms. " + "Directories marked with (A) are intended for installations on " + "Apple platforms. The cmake variables CMAKE_FIND_FRAMEWORK and " + "CMAKE_FIND_APPBUNDLE determine the order of preference " + "as specified below.\n" + "The set of installation prefixes is constructed using the following " + "steps. If NO_DEFAULT_PATH is specified steps 1-5 are skipped.\n" + "1. Search cmake specific environment variables. This " + "can be skipped if NO_CMAKE_ENVIRONMENT_PATH is passed.\n" + " CMAKE_PREFIX_PATH\n" + " CMAKE_FRAMEWORK_PATH\n" + " CMAKE_APPBUNDLE_PATH\n" + "2. Search cmake variables with the same names as the cmake specific " + "environment variables. These are intended to be used on the command " + "line with a -DVAR=value. This can be skipped if NO_CMAKE_PATH " + "is passed.\n" + " CMAKE_PREFIX_PATH\n" + " CMAKE_FRAMEWORK_PATH\n" + " CMAKE_APPBUNDLE_PATH\n" + "3. Search the standard system environment variables. " + "This can be skipped if NO_SYSTEM_ENVIRONMENT_PATH is passed. " + "Path entries ending in \"/bin\" or \"/sbin\" are automatically " + "converted to their parent directories.\n" + " PATH\n" + "4. Search project build trees recently configured in a CMake GUI. " + "This can be skipped if NO_CMAKE_BUILDS_PATH is passed. " + "It is intended for the case when a user is building multiple " + "dependent projects one after another.\n" + "5. Search cmake variables defined in the Platform files " + "for the current system. This can be skipped if NO_CMAKE_SYSTEM_PATH " + "is passed.\n" + " CMAKE_SYSTEM_PREFIX_PATH\n" + " CMAKE_SYSTEM_FRAMEWORK_PATH\n" + " CMAKE_SYSTEM_APPBUNDLE_PATH\n" + "6. Search paths specified by the PATHS option.\n" + ; + this->CommandDocumentation += this->GenericDocumentationMacPolicy; + this->CommandDocumentation += this->GenericDocumentationRootPath; + this->CommandDocumentation += this->GenericDocumentationPathsOrder; +} + +//---------------------------------------------------------------------------- +const char* cmFindPackageCommand::GetFullDocumentation() +{ + return this->CommandDocumentation.c_str(); +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Check for debug mode. + this->DebugMode = this->Makefile->IsOn("CMAKE_FIND_DEBUG_MODE"); + + // Find the current root path mode. + this->SelectDefaultRootPathMode(); + + // Find the current bundle/framework search policy. + this->SelectDefaultMacMode(); + + // Record options. + this->Name = args[0]; + std::string components; + const char* components_sep = ""; + + // Check ancient compatibility. + this->Compatibility_1_6 = + this->Makefile->GetLocalGenerator() + ->NeedBackwardsCompatibility(1, 6); + + // Always search directly in a generated path. + this->SearchPathSuffixes.push_back(""); + + // Parse the arguments. + enum Doing { DoingNone, DoingComponents, DoingNames, DoingPaths, + DoingPathSuffixes, DoingConfigs }; + Doing doing = DoingNone; + cmsys::RegularExpression version("^[0-9.]+$"); + bool haveVersion = false; + for(unsigned int i=1; i < args.size(); ++i) + { + if(args[i] == "QUIET") + { + this->Quiet = true; + doing = DoingNone; + } + else if(args[i] == "EXACT") + { + this->VersionExact = true; + this->Compatibility_1_6 = false; + doing = DoingNone; + } + else if(args[i] == "NO_MODULE") + { + this->NoModule = true; + doing = DoingNone; + } + else if(args[i] == "REQUIRED") + { + this->Required = true; + doing = DoingComponents; + } + else if(args[i] == "COMPONENTS") + { + this->Compatibility_1_6 = false; + doing = DoingComponents; + } + else if(args[i] == "NAMES") + { + this->NoModule = true; + this->Compatibility_1_6 = false; + doing = DoingNames; + } + else if(args[i] == "PATHS") + { + this->NoModule = true; + this->Compatibility_1_6 = false; + doing = DoingPaths; + } + else if(args[i] == "PATH_SUFFIXES") + { + this->NoModule = true; + this->Compatibility_1_6 = false; + doing = DoingPathSuffixes; + } + else if(args[i] == "CONFIGS") + { + this->NoModule = true; + this->Compatibility_1_6 = false; + doing = DoingConfigs; + } + else if(args[i] == "NO_CMAKE_BUILDS_PATH") + { + this->NoBuilds = true; + this->NoModule = true; + this->Compatibility_1_6 = false; + doing = DoingNone; + } + else if(this->CheckCommonArgument(args[i])) + { + this->NoModule = true; + this->Compatibility_1_6 = false; + doing = DoingNone; + } + else if(doing == DoingComponents) + { + // Set a variable telling the find script this component + // is required. + std::string req_var = Name + "_FIND_REQUIRED_" + args[i]; + this->Makefile->AddDefinition(req_var.c_str(), "1"); + + // Append to the list of required components. + components += components_sep; + components += args[i]; + components_sep = ";"; + } + else if(doing == DoingNames) + { + this->Names.push_back(args[i]); + } + else if(doing == DoingPaths) + { + this->AddUserPath(args[i]); + } + else if(doing == DoingPathSuffixes) + { + this->AddPathSuffix(args[i]); + } + else if(doing == DoingConfigs) + { + if(args[i].find_first_of(":/\\") != args[i].npos || + cmSystemTools::GetFilenameLastExtension(args[i]) != ".cmake") + { + cmOStringStream e; + e << "given CONFIGS option followed by invalid file name \"" + << args[i] << "\". The names given must be file names without " + << "a path and with a \".cmake\" extension."; + return false; + } + this->Configs.push_back(args[i]); + } + else if(!haveVersion && version.find(args[i].c_str())) + { + haveVersion = true; + this->Version = args[i]; + } + else + { + cmOStringStream e; + e << "called with invalid argument \"" << args[i].c_str() << "\""; + this->SetError(e.str().c_str()); + return false; + } + } + + if(!this->Version.empty()) + { + // Try to parse the version number and store the results that were + // successfully parsed. + unsigned int parsed_major; + unsigned int parsed_minor; + unsigned int parsed_patch; + this->VersionCount = sscanf(this->Version.c_str(), "%u.%u.%u", + &parsed_major, &parsed_minor, &parsed_patch); + switch(this->VersionCount) + { + case 3: this->VersionPatch = parsed_patch; // no break! + case 2: this->VersionMinor = parsed_minor; // no break! + case 1: this->VersionMajor = parsed_major; // no break! + default: break; + } + } + + // Store the list of components. + std::string components_var = Name + "_FIND_COMPONENTS"; + this->Makefile->AddDefinition(components_var.c_str(), components.c_str()); + + // See if there is a Find.cmake module. + if(!this->NoModule) + { + bool foundModule = false; + if(!this->FindModule(foundModule)) + { + this->AppendSuccessInformation(); + return false; + } + if(foundModule) + { + this->AppendSuccessInformation(); + return true; + } + } + + // No find module. Assume the project has a CMake config file. Use + // a _DIR cache variable to locate it. + this->Variable = this->Name; + this->Variable += "_DIR"; + + // Add the default name. + if(this->Names.empty()) + { + this->Names.push_back(this->Name); + } + + // Add the default configs. + if(this->Configs.empty()) + { + for(std::vector::const_iterator ni = this->Names.begin(); + ni != this->Names.end(); ++ni) + { + std::string config = *ni; + config += "Config.cmake"; + this->Configs.push_back(config); + + config = cmSystemTools::LowerCase(*ni); + config += "-config.cmake"; + this->Configs.push_back(config); + } + } + + // Find and load the package. + bool result = this->HandlePackageMode(); + this->AppendSuccessInformation(); + return result; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::FindModule(bool& found) +{ + std::string module = "Find"; + module += this->Name; + module += ".cmake"; + std::string mfile = this->Makefile->GetModulesFile(module.c_str()); + if ( mfile.size() ) + { + if(this->Quiet) + { + // Tell the module that is about to be read that it should find + // quietly. + std::string quietly = this->Name; + quietly += "_FIND_QUIETLY"; + this->Makefile->AddDefinition(quietly.c_str(), "1"); + } + + if(this->Required) + { + // Tell the module that is about to be read that it should report + // a fatal error if the package is not found. + std::string req = this->Name; + req += "_FIND_REQUIRED"; + this->Makefile->AddDefinition(req.c_str(), "1"); + } + + if(!this->Version.empty()) + { + // Tell the module that is about to be read what version of the + // package has been requested. + std::string ver = this->Name; + ver += "_FIND_VERSION"; + this->Makefile->AddDefinition(ver.c_str(), this->Version.c_str()); + char buf[64]; + switch(this->VersionCount) + { + case 3: + { + sprintf(buf, "%u", this->VersionPatch); + this->Makefile->AddDefinition((ver+"_PATCH").c_str(), buf); + } // no break + case 2: + { + sprintf(buf, "%u", this->VersionMinor); + this->Makefile->AddDefinition((ver+"_MINOR").c_str(), buf); + } // no break + case 1: + { + sprintf(buf, "%u", this->VersionMajor); + this->Makefile->AddDefinition((ver+"_MAJOR").c_str(), buf); + } // no break + default: break; + } + + // Tell the module whether an exact version has been requested. + std::string exact = this->Name; + exact += "_FIND_VERSION_EXACT"; + this->Makefile->AddDefinition(exact.c_str(), + this->VersionExact? "1":"0"); + } + + // Load the module we found. + found = true; + return this->ReadListFile(mfile.c_str()); + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::HandlePackageMode() +{ + // Support old capitalization behavior. + std::string upperDir = cmSystemTools::UpperCase(this->Name); + std::string upperFound = cmSystemTools::UpperCase(this->Name); + upperDir += "_DIR"; + upperFound += "_FOUND"; + if(upperDir == this->Variable) + { + this->Compatibility_1_6 = false; + } + + // Try to find the config file. + const char* def = this->Makefile->GetDefinition(this->Variable.c_str()); + if(this->Compatibility_1_6 && cmSystemTools::IsOff(def)) + { + // Use the setting of the old name of the variable to provide the + // value of the new. + const char* oldDef = this->Makefile->GetDefinition(upperDir.c_str()); + if(!cmSystemTools::IsOff(oldDef)) + { + this->Makefile->AddDefinition(this->Variable.c_str(), oldDef); + def = this->Makefile->GetDefinition(this->Variable.c_str()); + } + } + + // Search for the config file if it is not already found. + if(cmSystemTools::IsOff(def)) + { + this->FindConfig(); + def = this->Makefile->GetDefinition(this->Variable.c_str()); + } + + // If the config file was found, load it. + std::string file; + bool result = true; + bool found = false; + if(!cmSystemTools::IsOff(def)) + { + // Get the directory from the variable value. + std::string dir = def; + cmSystemTools::ConvertToUnixSlashes(dir); + + // Treat relative paths with respect to the current source dir. + if(!cmSystemTools::FileIsFullPath(dir.c_str())) + { + dir = "/" + dir; + dir = this->Makefile->GetCurrentDirectory() + dir; + } + + // Find the configuration file. + if(this->FindConfigFileToLoad(dir, file)) + { + // Set the version variables before loading the config file. + // It may override them. + this->StoreVersionFound(); + + // Parse the configuration file. + if(this->ReadListFile(file.c_str())) + { + // The package has been found. + found = true; + } + else + { + // The configuration file is invalid. + result = false; + } + } + else + { + // The variable setting is wrong. + cmOStringStream e; + e << "cannot find package " << this->Name << " because " + << this->Variable << " is set to \"" << def << "\" " + << "which is not a directory containing a package configuration " + << "file (or it is not for the requested version). " + << "Please set the cache entry " << this->Variable << " " + << "to the correct directory, or delete it to ask CMake " + << "to search."; + this->SetError(e.str().c_str()); + result = false; + } + } + else if(!this->Quiet || this->Required) + { + // The variable is not set. + cmOStringStream e; + e << "could not find "; + if(!this->NoModule) + { + e << "module Find" << this->Name << ".cmake or "; + } + e << "a configuration file for package " << this->Name << ".\n"; + if(!this->NoModule) + { + e << "Adjust CMAKE_MODULE_PATH to find Find" + << this->Name << ".cmake or set "; + } + else + { + e << "Set "; + } + e << this->Variable << " to the directory containing a CMake " + << "configuration file for " << this->Name << ". "; + if(this->Configs.size() == 1) + { + e << "The file will be called " << this->Configs[0]; + } + else + { + e << "The file will have one of the following names:\n"; + for(std::vector::const_iterator ci = this->Configs.begin(); + ci != this->Configs.end(); ++ci) + { + e << " " << *ci << "\n"; + } + } + if(this->Required) + { + this->SetError(e.str().c_str()); + result = false; + } + else + { + cmSystemTools::Error("find_package ", e.str().c_str()); + } + } + + // Set a variable marking whether the package was found. + std::string foundVar = this->Name; + foundVar += "_FOUND"; + this->Makefile->AddDefinition(foundVar.c_str(), found? "1":"0"); + + // Set a variable naming the configuration file that was found. + std::string fileVar = this->Name; + fileVar += "_CONFIG"; + if(found) + { + this->Makefile->AddDefinition(fileVar.c_str(), file.c_str()); + } + else + { + this->Makefile->RemoveDefinition(fileVar.c_str()); + } + + // Handle some ancient compatibility stuff. + if(this->Compatibility_1_6) + { + // Listfiles will be looking for the capitalized version of the + // name. Provide it. + this->Makefile->AddDefinition + (upperDir.c_str(), + this->Makefile->GetDefinition(this->Variable.c_str())); + this->Makefile->AddDefinition + (upperFound.c_str(), + this->Makefile->GetDefinition(foundVar.c_str())); + } + +#ifdef CMAKE_BUILD_WITH_CMAKE + if(!(upperDir == this->Variable)) + { + if(this->Compatibility_1_6) + { + // Listfiles may use the capitalized version of the name. + // Remove any previously added watch. + this->Makefile->GetVariableWatch()->RemoveWatch( + upperDir.c_str(), + cmFindPackageNeedBackwardsCompatibility + ); + } + else + { + // Listfiles should not be using the capitalized version of the + // name. Add a watch to warn the user. + this->Makefile->GetVariableWatch()->AddWatch( + upperDir.c_str(), + cmFindPackageNeedBackwardsCompatibility + ); + } + } +#endif + + return result; +} + +//---------------------------------------------------------------------------- +void cmFindPackageCommand::FindConfig() +{ + // Compute the set of search prefixes. + this->ComputePrefixes(); + + // Look for the project's configuration file. + bool found = false; + + // Search for frameworks. + if(!found && this->SearchFrameworkFirst || this->SearchFrameworkOnly) + { + found = this->FindFrameworkConfig(); + } + + // Search for apps. + if(!found && this->SearchAppBundleFirst || this->SearchAppBundleOnly) + { + found = this->FindAppBundleConfig(); + } + + // Search prefixes. + if(!found && !(this->SearchFrameworkOnly || this->SearchAppBundleOnly)) + { + found = this->FindPrefixedConfig(); + } + + // Search for frameworks. + if(!found && this->SearchFrameworkLast) + { + found = this->FindFrameworkConfig(); + } + + // Search for apps. + if(!found && this->SearchAppBundleLast) + { + found = this->FindAppBundleConfig(); + } + + // Store the entry in the cache so it can be set by the user. + std::string init; + if(found) + { + init = cmSystemTools::GetFilenamePath(this->FileFound); + } + else + { + init = this->Variable + "-NOTFOUND"; + } + std::string help = + "The directory containing a CMake configuration file for "; + help += this->Name; + help += "."; + this->Makefile->AddCacheDefinition(this->Variable.c_str(), + init.c_str(), help.c_str(), + cmCacheManager::PATH); +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::FindPrefixedConfig() +{ + for(std::vector::const_iterator pi = this->Prefixes.begin(); + pi != this->Prefixes.end(); ++pi) + { + if(this->SearchPrefix(*pi)) + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::FindFrameworkConfig() +{ + for(std::vector::const_iterator i = this->Prefixes.begin(); + i != this->Prefixes.end(); ++i) + { + if(this->SearchFrameworkPrefix(*i)) + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::FindAppBundleConfig() +{ + for(std::vector::const_iterator i = this->Prefixes.begin(); + i != this->Prefixes.end(); ++i) + { + if(this->SearchAppBundlePrefix(*i)) + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::ReadListFile(const char* f) +{ + if(this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(),f)) + { + return true; + } + std::string e = "Error reading CMake code from \""; + e += f; + e += "\"."; + this->SetError(e.c_str()); + return false; +} + +//---------------------------------------------------------------------------- +void cmFindPackageCommand::AppendToProperty(const char* propertyName) +{ + std::string propertyValue; + const char *prop = + this->Makefile->GetCMakeInstance()->GetProperty(propertyName); + if (prop && *prop) + { + propertyValue = prop; + + std::vector contents; + cmSystemTools::ExpandListArgument(propertyValue, contents, false); + + bool alreadyInserted = false; + for(std::vector::const_iterator it = contents.begin(); + it != contents.end(); ++ it ) + { + if (*it == this->Name) + { + alreadyInserted = true; + break; + } + } + if (!alreadyInserted) + { + propertyValue += ";"; + propertyValue += this->Name; + } + } + else + { + propertyValue = this->Name; + } + this->Makefile->GetCMakeInstance()->SetProperty(propertyName, + propertyValue.c_str()); + } + +//---------------------------------------------------------------------------- +void cmFindPackageCommand::AppendSuccessInformation() +{ + std::string found = this->Name; + found += "_FOUND"; + std::string upperFound = cmSystemTools::UpperCase(found); + + const char* upperResult = this->Makefile->GetDefinition(upperFound.c_str()); + const char* result = this->Makefile->GetDefinition(found.c_str()); + if ((cmSystemTools::IsOn(result)) || (cmSystemTools::IsOn(upperResult))) + { + this->AppendToProperty("PACKAGES_FOUND"); + if (!this->Quiet) + { + this->AppendToProperty("ENABLED_FEATURES"); + } + } + else + { + this->AppendToProperty("PACKAGES_NOT_FOUND"); + if (!this->Quiet) + { + this->AppendToProperty("DISABLED_FEATURES"); + } + } +} + +//---------------------------------------------------------------------------- +void cmFindPackageCommand::AddUserPath(std::string const& p) +{ + std::string userPath = p; + cmSystemTools::ExpandRegistryValues(userPath); + this->UserPaths.push_back(userPath); +} + +//---------------------------------------------------------------------------- +void cmFindPackageCommand::ComputePrefixes() +{ + std::vector& prefixes = this->Prefixes; + std::set emmitted; + + if(!this->NoCMakeEnvironmentPath && !this->NoDefaultPath) + { + // Check the environment variable with the same name as the cache + // entry. + std::string env; + if(cmSystemTools::GetEnv(this->Variable.c_str(), env) && env.length() > 0) + { + cmSystemTools::ConvertToUnixSlashes(env); + this->AddPathInternal(prefixes, env, EnvPath, &emmitted); + } + + this->AddEnvPath(prefixes, "CMAKE_PREFIX_PATH", &emmitted); + this->AddEnvPath(prefixes, "CMAKE_FRAMEWORK_PATH", &emmitted); + this->AddEnvPath(prefixes, "CMAKE_APPBUNDLE_PATH", &emmitted); + } + + if(!this->NoCMakePath && !this->NoDefaultPath) + { + this->AddCMakePath(prefixes, "CMAKE_PREFIX_PATH", &emmitted); + this->AddCMakePath(prefixes, "CMAKE_FRAMEWORK_PATH", &emmitted); + this->AddCMakePath(prefixes, "CMAKE_APPBUNDLE_PATH", &emmitted); + } + + if(!this->NoSystemEnvironmentPath && !this->NoDefaultPath) + { + // Use the system search path to generate prefixes. + // Relative paths are interpreted with respect to the current + // working directory. + std::vector tmp; + cmSystemTools::GetPath(tmp); + for(std::vector::iterator i = tmp.begin(); + i != tmp.end(); ++i) + { + std::string const& d = *i; + + // If the path is a PREFIX/bin case then add its parent instead. + if(d.size() >= 4 && strcmp(d.c_str()+d.size()-4, "/bin") == 0 || + d.size() >= 5 && strcmp(d.c_str()+d.size()-5, "/sbin") == 0) + { + this->AddPathInternal(prefixes, + cmSystemTools::GetFilenamePath(d), + EnvPath, &emmitted); + } + else + { + this->AddPathInternal(prefixes, d, EnvPath, &emmitted); + } + } + } + + if(!this->NoBuilds && !this->NoDefaultPath) + { + // It is likely that CMake will have recently built the project. + for(int i=1; i <= 10; ++i) + { + cmOStringStream r; + r << + "[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\" + "Settings\\StartPath;WhereBuild" << i << "]"; + std::string f = r.str(); + cmSystemTools::ExpandRegistryValues(f); + cmSystemTools::ConvertToUnixSlashes(f); + if(cmSystemTools::FileIsFullPath(f.c_str()) && + cmSystemTools::FileIsDirectory(f.c_str())) + { + this->AddPathInternal(prefixes, f, FullPath, &emmitted); + } + } + } + + if(!this->NoCMakeSystemPath && !this->NoDefaultPath) + { + this->AddCMakePath(prefixes, "CMAKE_SYSTEM_PREFIX_PATH", &emmitted); + this->AddCMakePath(prefixes, "CMAKE_SYSTEM_FRAMEWORK_PATH", &emmitted); + this->AddCMakePath(prefixes, "CMAKE_SYSTEM_APPBUNDLE_PATH", &emmitted); + } + + if(!this->UserPaths.empty()) + { + // Add paths specified by the caller. + this->AddPathsInternal(prefixes, this->UserPaths, CMakePath, &emmitted); + } + + // Construct the final set of prefixes. + this->RerootPaths(prefixes); + + // Add a trailing slash to all prefixes to aid the search process. + for(std::vector::iterator i = prefixes.begin(); + i != prefixes.end(); ++i) + { + std::string& prefix = *i; + if(prefix[prefix.size()-1] != '/') + { + prefix += "/"; + } + } +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::SearchDirectory(std::string const& dir) +{ + assert(!dir.empty() && dir[dir.size()-1] == '/'); + + // Check each path suffix on this directory. + for(std::vector::const_iterator + si = this->SearchPathSuffixes.begin(); + si != this->SearchPathSuffixes.end(); ++si) + { + std::string d = dir; + if(!si->empty()) + { + d += *si; + d += "/"; + } + if(this->CheckDirectory(d)) + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::CheckDirectory(std::string const& dir) +{ + assert(!dir.empty() && dir[dir.size()-1] == '/'); + + // Look for the file in this directory. + std::string d = dir.substr(0, dir.size()-1); + if(this->FindConfigFile(d, this->FileFound)) + { + // Remove duplicate slashes. + cmSystemTools::ConvertToUnixSlashes(this->FileFound); + return true; + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::FindConfigFile(std::string const& dir, + std::string& file) +{ + for(std::vector::const_iterator ci = this->Configs.begin(); + ci != this->Configs.end(); ++ci) + { + file = dir; + file += "/"; + file += *ci; + if(this->DebugMode) + { + fprintf(stderr, "Checking file [%s]\n", file.c_str()); + } + if(cmSystemTools::FileExists(file.c_str(), true) && + this->CheckVersion(file)) + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::FindConfigFileToLoad(std::string const& dir, + std::string& file) +{ + if(this->FileFound.empty()) + { + // The file location was cached. Look for the correct file. + return this->FindConfigFile(dir, file); + } + else + { + // The file location was just found during this call. + // Use the file found without searching again. + file = this->FileFound; + return true; + } +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::CheckVersion(std::string const& config_file) +{ + // Get the filename without the .cmake extension. + std::string::size_type pos = config_file.rfind('.'); + std::string version_file_base = config_file.substr(0, pos); + + // Look for foo-config-version.cmake + std::string version_file = version_file_base; + version_file += "-version.cmake"; + if(cmSystemTools::FileExists(version_file.c_str(), true)) + { + return this->CheckVersionFile(version_file); + } + + // Look for fooConfigVersion.cmake + version_file = version_file_base; + version_file += "Version.cmake"; + if(cmSystemTools::FileExists(version_file.c_str(), true)) + { + return this->CheckVersionFile(version_file); + } + + // If no version was requested a versionless package is acceptable. + if(this->Version.empty()) + { + return true; + } + + // No version file found. Assume the version is incompatible. + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::CheckVersionFile(std::string const& version_file) +{ + // The version file will be loaded in an isolated scope. + this->Makefile->PushScope(); + + // Clear the output variables. + this->Makefile->RemoveDefinition("PACKAGE_VERSION"); + this->Makefile->RemoveDefinition("PACKAGE_VERSION_COMPATIBLE"); + this->Makefile->RemoveDefinition("PACKAGE_VERSION_EXACT"); + + // Set the input variables. + this->Makefile->AddDefinition("PACKAGE_FIND_NAME", this->Name.c_str()); + this->Makefile->AddDefinition("PACKAGE_FIND_VERSION", + this->Version.c_str()); + if(this->VersionCount >= 3) + { + char buf[64]; + sprintf(buf, "%u", this->VersionPatch); + this->Makefile->AddDefinition("PACKAGE_FIND_VERSION_PATCH", buf); + } + else + { + this->Makefile->RemoveDefinition("PACKAGE_FIND_VERSION_PATCH"); + } + if(this->VersionCount >= 2) + { + char buf[64]; + sprintf(buf, "%u", this->VersionMinor); + this->Makefile->AddDefinition("PACKAGE_FIND_VERSION_MINOR", buf); + } + else + { + this->Makefile->RemoveDefinition("PACKAGE_FIND_VERSION_MINOR"); + } + if(this->VersionCount >= 1) + { + char buf[64]; + sprintf(buf, "%u", this->VersionMajor); + this->Makefile->AddDefinition("PACKAGE_FIND_VERSION_MAJOR", buf); + } + else + { + this->Makefile->RemoveDefinition("PACKAGE_FIND_VERSION_MAJOR"); + } + + // Load the version check file. + bool found = false; + if(this->ReadListFile(version_file.c_str())) + { + // Check the output variables. + found = this->Makefile->IsOn("PACKAGE_VERSION_EXACT"); + if(!found && !this->VersionExact) + { + found = this->Makefile->IsOn("PACKAGE_VERSION_COMPATIBLE"); + } + if(found || this->Version.empty()) + { + // Get the version found. + this->VersionFound = + this->Makefile->GetSafeDefinition("PACKAGE_VERSION"); + + // Try to parse the version number and store the results that were + // successfully parsed. + unsigned int parsed_major; + unsigned int parsed_minor; + unsigned int parsed_patch; + this->VersionFoundCount = + sscanf(this->VersionFound.c_str(), "%u.%u.%u", + &parsed_major, &parsed_minor, &parsed_patch); + switch(this->VersionFoundCount) + { + case 3: this->VersionFoundPatch = parsed_patch; // no break! + case 2: this->VersionFoundMinor = parsed_minor; // no break! + case 1: this->VersionFoundMajor = parsed_major; // no break! + default: break; + } + } + } + + // Restore the original scope. + this->Makefile->PopScope(); + + // Succeed if the version was found or no version was requested. + return found || this->Version.empty(); +} + +//---------------------------------------------------------------------------- +void cmFindPackageCommand::StoreVersionFound() +{ + // Store the whole version string. + std::string ver = this->Name; + ver += "_VERSION"; + if(this->VersionFound.empty()) + { + this->Makefile->RemoveDefinition(ver.c_str()); + } + else + { + this->Makefile->AddDefinition(ver.c_str(), this->VersionFound.c_str()); + } + + // Store the portions that could be parsed. + char buf[64]; + switch(this->VersionFoundCount) + { + case 3: + { + sprintf(buf, "%u", this->VersionFoundPatch); + this->Makefile->AddDefinition((ver+"_PATCH").c_str(), buf); + } // no break + case 2: + { + sprintf(buf, "%u", this->VersionFoundMinor); + this->Makefile->AddDefinition((ver+"_MINOR").c_str(), buf); + } // no break + case 1: + { + sprintf(buf, "%u", this->VersionFoundMajor); + this->Makefile->AddDefinition((ver+"_MAJOR").c_str(), buf); + } // no break + default: break; + } +} + +//---------------------------------------------------------------------------- +#include +#include +#include +#include + +class cmFileList; +class cmFileListGeneratorBase +{ +public: + virtual ~cmFileListGeneratorBase() {} +protected: + bool Consider(std::string const& fullPath, cmFileList& listing); +private: + bool Search(cmFileList&); + virtual bool Search(std::string const& parent, cmFileList&) = 0; + virtual cmsys::auto_ptr Clone() const = 0; + friend class cmFileList; + cmFileListGeneratorBase* SetNext(cmFileListGeneratorBase const& next); + cmsys::auto_ptr Next; +}; + +class cmFileList +{ +public: + cmFileList(): First(), Last(0) {} + virtual ~cmFileList() {} + cmFileList& operator/(cmFileListGeneratorBase const& rhs) + { + if(this->Last) + { + this->Last = this->Last->SetNext(rhs); + } + else + { + this->First = rhs.Clone(); + this->Last = this->First.get(); + } + return *this; + } + bool Search() + { + if(this->First.get()) + { + return this->First->Search(*this); + } + return false; + } +private: + virtual bool Visit(std::string const& fullPath) = 0; + friend class cmFileListGeneratorBase; + cmsys::auto_ptr First; + cmFileListGeneratorBase* Last; +}; + +class cmFindPackageFileList: public cmFileList +{ +public: + cmFindPackageFileList(cmFindPackageCommand* fpc, + bool use_suffixes = true): + cmFileList(), FPC(fpc), UseSuffixes(use_suffixes) {} +private: + bool Visit(std::string const& fullPath) + { + if(this->UseSuffixes) + { + return this->FPC->SearchDirectory(fullPath); + } + else + { + return this->FPC->CheckDirectory(fullPath); + } + } + cmFindPackageCommand* FPC; + bool UseSuffixes; +}; + +bool cmFileListGeneratorBase::Search(cmFileList& listing) +{ + return this->Search("", listing); +} + +cmFileListGeneratorBase* +cmFileListGeneratorBase::SetNext(cmFileListGeneratorBase const& next) +{ + this->Next = next.Clone(); + return this->Next.get(); +} + +bool cmFileListGeneratorBase::Consider(std::string const& fullPath, + cmFileList& listing) +{ + if(this->Next.get()) + { + return this->Next->Search(fullPath + "/", listing); + } + else + { + return listing.Visit(fullPath + "/"); + } +} + +class cmFileListGeneratorFixed: public cmFileListGeneratorBase +{ +public: + cmFileListGeneratorFixed(std::string const& str): + cmFileListGeneratorBase(), String(str) {} + cmFileListGeneratorFixed(cmFileListGeneratorFixed const& r): + cmFileListGeneratorBase(), String(r.String) {} +private: + std::string String; + virtual bool Search(std::string const& parent, cmFileList& lister) + { + std::string fullPath = parent + this->String; + return this->Consider(fullPath, lister); + } + virtual cmsys::auto_ptr Clone() const + { + cmsys::auto_ptr + g(new cmFileListGeneratorFixed(*this)); + return g; + } +}; + +class cmFileListGeneratorEnumerate: public cmFileListGeneratorBase +{ +public: + cmFileListGeneratorEnumerate(const char* p1, const char* p2): + cmFileListGeneratorBase() + { + this->Vector.push_back(p1); + this->Vector.push_back(p2); + } + cmFileListGeneratorEnumerate(cmFileListGeneratorEnumerate const& r): + cmFileListGeneratorBase(), Vector(r.Vector) {} +private: + std::vector Vector; + virtual bool Search(std::string const& parent, cmFileList& lister) + { + for(std::vector::const_iterator i = this->Vector.begin(); + i != this->Vector.end(); ++i) + { + if(this->Consider(parent + *i, lister)) + { + return true; + } + } + return false; + } + virtual cmsys::auto_ptr Clone() const + { + cmsys::auto_ptr + g(new cmFileListGeneratorEnumerate(*this)); + return g; + } +}; + +class cmFileListGeneratorProject: public cmFileListGeneratorBase +{ +public: + cmFileListGeneratorProject(std::vector const& names): + cmFileListGeneratorBase(), Names(names) {} + cmFileListGeneratorProject(cmFileListGeneratorProject const& r): + cmFileListGeneratorBase(), Names(r.Names) {} +private: + std::vector const& Names; + virtual bool Search(std::string const& parent, cmFileList& lister) + { + // Construct a list of matches. + std::vector matches; + cmsys::Directory d; + d.Load(parent.c_str()); + for(unsigned long i=0; i < d.GetNumberOfFiles(); ++i) + { + const char* fname = d.GetFile(i); + if(strcmp(fname, ".") == 0 || + strcmp(fname, "..") == 0) + { + continue; + } + for(std::vector::const_iterator ni = this->Names.begin(); + ni != this->Names.end(); ++ni) + { + if(cmsysString_strncasecmp(fname, ni->c_str(), + ni->length()) == 0) + { + matches.push_back(fname); + } + } + } + + for(std::vector::const_iterator i = matches.begin(); + i != matches.end(); ++i) + { + if(this->Consider(parent + *i, lister)) + { + return true; + } + } + return false; + } + virtual cmsys::auto_ptr Clone() const + { + cmsys::auto_ptr + g(new cmFileListGeneratorProject(*this)); + return g; + } +}; + +class cmFileListGeneratorMacProject: public cmFileListGeneratorBase +{ +public: + cmFileListGeneratorMacProject(std::vector const& names, + const char* ext): + cmFileListGeneratorBase(), Names(names), Extension(ext) {} + cmFileListGeneratorMacProject(cmFileListGeneratorMacProject const& r): + cmFileListGeneratorBase(), Names(r.Names), Extension(r.Extension) {} +private: + std::vector const& Names; + std::string Extension; + virtual bool Search(std::string const& parent, cmFileList& lister) + { + // Construct a list of matches. + std::vector matches; + cmsys::Directory d; + d.Load(parent.c_str()); + for(unsigned long i=0; i < d.GetNumberOfFiles(); ++i) + { + const char* fname = d.GetFile(i); + if(strcmp(fname, ".") == 0 || + strcmp(fname, "..") == 0) + { + continue; + } + for(std::vector::const_iterator ni = this->Names.begin(); + ni != this->Names.end(); ++ni) + { + std::string name = *ni; + name += this->Extension; + if(cmsysString_strcasecmp(fname, name.c_str()) == 0) + { + matches.push_back(fname); + } + } + } + + for(std::vector::const_iterator i = matches.begin(); + i != matches.end(); ++i) + { + if(this->Consider(parent + *i, lister)) + { + return true; + } + } + return false; + } + virtual cmsys::auto_ptr Clone() const + { + cmsys::auto_ptr + g(new cmFileListGeneratorMacProject(*this)); + return g; + } +}; + +class cmFileListGeneratorCaseInsensitive: public cmFileListGeneratorBase +{ +public: + cmFileListGeneratorCaseInsensitive(std::string const& str): + cmFileListGeneratorBase(), String(str) {} + cmFileListGeneratorCaseInsensitive( + cmFileListGeneratorCaseInsensitive const& r): + cmFileListGeneratorBase(), String(r.String) {} +private: + std::string String; + virtual bool Search(std::string const& parent, cmFileList& lister) + { + // Look for matching files. + std::vector matches; + cmsys::Directory d; + d.Load(parent.c_str()); + for(unsigned long i=0; i < d.GetNumberOfFiles(); ++i) + { + const char* fname = d.GetFile(i); + if(strcmp(fname, ".") == 0 || + strcmp(fname, "..") == 0) + { + continue; + } + if(cmsysString_strcasecmp(fname, this->String.c_str()) == 0) + { + if(this->Consider(parent + fname, lister)) + { + return true; + } + } + } + return false; + } + virtual cmsys::auto_ptr Clone() const + { + cmsys::auto_ptr + g(new cmFileListGeneratorCaseInsensitive(*this)); + return g; + } +}; + +class cmFileListGeneratorGlob: public cmFileListGeneratorBase +{ +public: + cmFileListGeneratorGlob(std::string const& str): + cmFileListGeneratorBase(), Pattern(str) {} + cmFileListGeneratorGlob(cmFileListGeneratorGlob const& r): + cmFileListGeneratorBase(), Pattern(r.Pattern) {} +private: + std::string Pattern; + virtual bool Search(std::string const& parent, cmFileList& lister) + { + // Glob the set of matching files. + std::string expr = parent; + expr += this->Pattern; + cmsys::Glob g; + if(!g.FindFiles(expr)) + { + return false; + } + std::vector const& files = g.GetFiles(); + + // Look for directories among the matches. + for(std::vector::const_iterator fi = files.begin(); + fi != files.end(); ++fi) + { + if(cmSystemTools::FileIsDirectory(fi->c_str())) + { + if(this->Consider(*fi, lister)) + { + return true; + } + } + } + return false; + } + virtual cmsys::auto_ptr Clone() const + { + cmsys::auto_ptr + g(new cmFileListGeneratorGlob(*this)); + return g; + } +}; + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::SearchPrefix(std::string const& prefix_in) +{ + assert(!prefix_in.empty() && prefix_in[prefix_in.size()-1] == '/'); + if(this->DebugMode) + { + fprintf(stderr, "Checking prefix [%s]\n", prefix_in.c_str()); + } + + // Skip this if the prefix does not exist. + if(!cmSystemTools::FileIsDirectory(prefix_in.c_str())) + { + return false; + } + + // PREFIX/ (useful on windows or in build trees) + if(this->SearchDirectory(prefix_in)) + { + return true; + } + + // Strip the trailing slash because the path generator is about to + // add one. + std::string prefix = prefix_in.substr(0, prefix_in.size()-1); + + // PREFIX/(cmake|CMake)/ (useful on windows or in build trees) + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorCaseInsensitive("cmake"); + if(lister.Search()) + { + return true; + } + } + + // PREFIX/(share|lib)/(Foo|foo|FOO).*/ + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorEnumerate("lib", "share") + / cmFileListGeneratorProject(this->Names); + if(lister.Search()) + { + return true; + } + } + + // PREFIX/(share|lib)/(Foo|foo|FOO).*/(cmake|CMake)/ + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorEnumerate("lib", "share") + / cmFileListGeneratorProject(this->Names) + / cmFileListGeneratorCaseInsensitive("cmake"); + if(lister.Search()) + { + return true; + } + } + + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::SearchFrameworkPrefix(std::string const& prefix_in) +{ + assert(!prefix_in.empty() && prefix_in[prefix_in.size()-1] == '/'); + if(this->DebugMode) + { + fprintf(stderr, "Checking framework prefix [%s]\n", prefix_in.c_str()); + } + + // Strip the trailing slash because the path generator is about to + // add one. + std::string prefix = prefix_in.substr(0, prefix_in.size()-1); + + // /Foo.framework/Resources/ + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorMacProject(this->Names, ".framework") + / cmFileListGeneratorFixed("Resources"); + if(lister.Search()) + { + return true; + } + } + // /Foo.framework/Resources/CMake/ + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorMacProject(this->Names, ".framework") + / cmFileListGeneratorFixed("Resources") + / cmFileListGeneratorCaseInsensitive("cmake"); + if(lister.Search()) + { + return true; + } + } + + // /Foo.framework/Versions/*/Resources/ + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorMacProject(this->Names, ".framework") + / cmFileListGeneratorFixed("Versions") + / cmFileListGeneratorGlob("*/Resources"); + if(lister.Search()) + { + return true; + } + } + + // /Foo.framework/Versions/*/Resources/CMake/ + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorMacProject(this->Names, ".framework") + / cmFileListGeneratorFixed("Versions") + / cmFileListGeneratorGlob("*/Resources") + / cmFileListGeneratorCaseInsensitive("cmake"); + if(lister.Search()) + { + return true; + } + } + + return false; +} + +//---------------------------------------------------------------------------- +bool cmFindPackageCommand::SearchAppBundlePrefix(std::string const& prefix_in) +{ + assert(!prefix_in.empty() && prefix_in[prefix_in.size()-1] == '/'); + if(this->DebugMode) + { + fprintf(stderr, "Checking bundle prefix [%s]\n", prefix_in.c_str()); + } + + // Strip the trailing slash because the path generator is about to + // add one. + std::string prefix = prefix_in.substr(0, prefix_in.size()-1); + + // /Foo.app/Contents/Resources + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorMacProject(this->Names, ".app") + / cmFileListGeneratorFixed("Contents/Resources"); + if(lister.Search()) + { + return true; + } + } + + // /Foo.app/Contents/Resources/CMake + { + cmFindPackageFileList lister(this); + lister + / cmFileListGeneratorFixed(prefix) + / cmFileListGeneratorMacProject(this->Names, ".app") + / cmFileListGeneratorFixed("Contents/Resources") + / cmFileListGeneratorCaseInsensitive("cmake"); + if(lister.Search()) + { + return true; + } + } + + return false; +} + +// TODO: Version numbers? Perhaps have a listing component class that +// sorts by lexicographic and numerical ordering. Also try to match +// some command argument for the version. Alternatively provide an +// API that just returns a list of valid directories? Perhaps push a +// scope and try loading the target file just to get its version +// number? Could add a foo-version.cmake or FooVersion.cmake file +// in the projects that contains just version information. + +// TODO: Debug cmsys::Glob double slash problem. + +// TODO: Add registry entries after cmake system search path? +// Currently the user must specify them with the PATHS option. +// +// [HKEY_CURRENT_USER\Software\*\Foo*;InstallDir] +// [HKEY_CURRENT_USER\Software\*\*\Foo*;InstallDir] +// [HKEY_LOCAL_MACHINE\Software\*\Foo*;InstallDir] +// [HKEY_LOCAL_MACHINE\Software\*\*\Foo*;InstallDir] diff --git a/CMakeLua/Source/cmFindPackageCommand.h b/CMakeLua/Source/cmFindPackageCommand.h new file mode 100644 index 0000000..79e47b0 --- /dev/null +++ b/CMakeLua/Source/cmFindPackageCommand.h @@ -0,0 +1,126 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindPackageCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/29 01:38:48 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFindPackageCommand_h +#define cmFindPackageCommand_h + +#include "cmFindCommon.h" + +class cmFindPackageFileList; + +/** \class cmFindPackageCommand + * \brief Load settings from an external project. + * + * cmFindPackageCommand + */ +class cmFindPackageCommand : public cmFindCommon +{ +public: + cmFindPackageCommand(); + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFindPackageCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "find_package";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Load settings for an external project."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation(); + + cmTypeMacro(cmFindPackageCommand, cmFindCommon); +private: + void AppendSuccessInformation(); + void AppendToProperty(const char* propertyName); + bool FindModule(bool& found); + bool HandlePackageMode(); + void FindConfig(); + bool FindPrefixedConfig(); + bool FindFrameworkConfig(); + bool FindAppBundleConfig(); + bool ReadListFile(const char* f); + void StoreVersionFound(); + + void AddUserPath(std::string const& p); + void ComputePrefixes(); + bool SearchDirectory(std::string const& dir); + bool CheckDirectory(std::string const& dir); + bool FindConfigFile(std::string const& dir, std::string& file); + bool FindConfigFileToLoad(std::string const& dir, std::string& file); + bool CheckVersion(std::string const& config_file); + bool CheckVersionFile(std::string const& version_file); + bool SearchPrefix(std::string const& prefix); + bool SearchFrameworkPrefix(std::string const& prefix_in); + bool SearchAppBundlePrefix(std::string const& prefix_in); + + friend class cmFindPackageFileList; + + std::string CommandDocumentation; + cmStdString Name; + cmStdString Variable; + cmStdString Version; + unsigned int VersionMajor; + unsigned int VersionMinor; + unsigned int VersionPatch; + unsigned int VersionCount; + bool VersionExact; + cmStdString FileFound; + cmStdString VersionFound; + unsigned int VersionFoundMajor; + unsigned int VersionFoundMinor; + unsigned int VersionFoundPatch; + unsigned int VersionFoundCount; + bool Quiet; + bool Required; + bool Compatibility_1_6; + bool NoModule; + bool NoBuilds; + bool DebugMode; + std::vector Names; + std::vector Configs; + std::vector Prefixes; + std::vector UserPaths; +}; + +#endif diff --git a/CMakeLua/Source/cmFindPathCommand.cxx b/CMakeLua/Source/cmFindPathCommand.cxx new file mode 100644 index 0000000..c1100d8 --- /dev/null +++ b/CMakeLua/Source/cmFindPathCommand.cxx @@ -0,0 +1,229 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindPathCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.41 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFindPathCommand.h" +#include "cmCacheManager.h" + +#include + +cmFindPathCommand::cmFindPathCommand() +{ + this->EnvironmentPath = "INCLUDE"; + this->IncludeFileInPath = false; + cmSystemTools::ReplaceString(this->GenericDocumentation, + "FIND_XXX", "find_path"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_XXX_PATH", "CMAKE_INCLUDE_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_XXX_MAC_PATH", + "CMAKE_FRAMEWORK_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_SYSTEM_XXX_MAC_PATH", + "CMAKE_SYSTEM_FRAMEWORK_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "XXX_SYSTEM", "INCLUDE"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_SYSTEM_XXX_PATH", + "CMAKE_SYSTEM_INCLUDE_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "SEARCH_XXX_DESC", + "directory containing the named file"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "SEARCH_XXX", "file in a directory"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "XXX_SUBDIR", "include"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_FIND_ROOT_PATH_MODE_XXX", + "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE"); + + this->ExtraDocAdded = false; +} + +const char* cmFindPathCommand::GetFullDocumentation() +{ + if(!this->ExtraDocAdded && !this->IncludeFileInPath) + { + this->GenericDocumentation += + "\n" + "When searching for frameworks, if the file is specified as " + "A/b.h, then the framework search will look for " + "A.framework/Headers/b.h. " + "If that is found the path will be set to the path to the framework. " + "CMake will convert this to the correct -F option to include the " + "file. "; + this->ExtraDocAdded = true; + } + return this->GenericDocumentation.c_str(); +} + +// cmFindPathCommand +bool cmFindPathCommand +::InitialPass(std::vector const& argsIn, cmExecutionStatus &) +{ + this->VariableDocumentation = "Path to a file."; + this->CMakePathName = "INCLUDE"; + if(!this->ParseArguments(argsIn)) + { + return false; + } + if(this->AlreadyInCache) + { + // If the user specifies the entry on the command line without a + // type we should add the type and docstring but keep the original + // value. + if(this->AlreadyInCacheWithoutMetaInfo) + { + this->Makefile->AddCacheDefinition( + this->VariableName.c_str(), "", + this->VariableDocumentation.c_str(), + (this->IncludeFileInPath ? + cmCacheManager::FILEPATH :cmCacheManager::PATH) + ); + } + return true; + } + std::string ff = this->Makefile->GetSafeDefinition("CMAKE_FIND_FRAMEWORK"); + bool supportFrameworks = true; + if( ff.size() == 0 || ff == "NEVER" ) + { + supportFrameworks = false; + } + std::string framework; + // Add a trailing slash to all paths to aid the search process. + for(std::vector::iterator i = this->SearchPaths.begin(); + i != this->SearchPaths.end(); ++i) + { + std::string& p = *i; + if(p.empty() || p[p.size()-1] != '/') + { + p += "/"; + } + } + // Use the search path to find the file. + unsigned int k; + std::string result; + for(k=0; k < this->SearchPaths.size(); k++) + { + for(unsigned int j =0; j < this->Names.size(); ++j) + { + // if frameworks are supported try to find the header in a framework + std::string tryPath; + if(supportFrameworks) + { + tryPath = this->FindHeaderInFramework(this->Names[j], + this->SearchPaths[k]); + if(tryPath.size()) + { + result = tryPath; + } + } + if(result.size() == 0) + { + tryPath = this->SearchPaths[k]; + tryPath += this->Names[j]; + if(cmSystemTools::FileExists(tryPath.c_str())) + { + if(this->IncludeFileInPath) + { + result = tryPath; + } + else + { + result = this->SearchPaths[k]; + } + } + } + if(result.size() != 0) + { + this->Makefile->AddCacheDefinition + (this->VariableName.c_str(), result.c_str(), + this->VariableDocumentation.c_str(), + (this->IncludeFileInPath) ? + cmCacheManager::FILEPATH :cmCacheManager::PATH); + return true; + } + } + } + this->Makefile->AddCacheDefinition + (this->VariableName.c_str(), + (this->VariableName + "-NOTFOUND").c_str(), + this->VariableDocumentation.c_str(), + (this->IncludeFileInPath) ? + cmCacheManager::FILEPATH :cmCacheManager::PATH); + return true; +} + +std::string cmFindPathCommand::FindHeaderInFramework(std::string& file, + std::string& dir) +{ + cmStdString fileName = file; + cmStdString frameWorkName; + cmStdString::size_type pos = fileName.find("/"); + // if there is a / in the name try to find the header as a framework + // For example bar/foo.h would look for: + // bar.framework/Headers/foo.h + if(pos != fileName.npos) + { + // remove the name from the slash; + fileName = fileName.substr(pos+1); + frameWorkName = file; + frameWorkName = + frameWorkName.substr(0, frameWorkName.size()-fileName.size()-1); + // if the framework has a path in it then just use the filename + if(frameWorkName.find("/") != frameWorkName.npos) + { + fileName = file; + frameWorkName = ""; + } + if(frameWorkName.size()) + { + std::string fpath = dir; + fpath += frameWorkName; + fpath += ".framework"; + std::string intPath = fpath; + intPath += "/Headers/"; + intPath += fileName; + if(cmSystemTools::FileExists(intPath.c_str())) + { + if(this->IncludeFileInPath) + { + return intPath; + } + return fpath; + } + } + } + // if it is not found yet or not a framework header, then do a glob search + // for all files in dir/*/Headers/ + cmStdString glob = dir; + glob += "*/Headers/"; + glob += file; + cmsys::Glob globIt; + globIt.FindFiles(glob); + std::vector files = globIt.GetFiles(); + if(files.size()) + { + cmStdString fheader = cmSystemTools::CollapseFullPath(files[0].c_str()); + if(this->IncludeFileInPath) + { + return fheader; + } + fheader = cmSystemTools::GetFilenamePath(fheader); + return fheader; + } + return ""; +} + diff --git a/CMakeLua/Source/cmFindPathCommand.h b/CMakeLua/Source/cmFindPathCommand.h new file mode 100644 index 0000000..13f24db --- /dev/null +++ b/CMakeLua/Source/cmFindPathCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindPathCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.18 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFindPathCommand_h +#define cmFindPathCommand_h + +#include "cmFindBase.h" + + +/** \class cmFindPathCommand + * \brief Define a command to search for a library. + * + * cmFindPathCommand is used to define a CMake variable + * that specifies a library. The command searches for a given + * file in a list of directories. + */ +class cmFindPathCommand : public cmFindBase +{ +public: + cmFindPathCommand(); + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFindPathCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "find_path";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Find the directory containing a file."; + } + + std::string FindHeaderInFramework( std::string& file, + std::string& dir); + virtual const char* GetFullDocumentation(); + cmTypeMacro(cmFindPathCommand, cmFindBase); + bool IncludeFileInPath; + bool ExtraDocAdded; +}; + + + +#endif diff --git a/CMakeLua/Source/cmFindProgramCommand.cxx b/CMakeLua/Source/cmFindProgramCommand.cxx new file mode 100644 index 0000000..a7af217 --- /dev/null +++ b/CMakeLua/Source/cmFindProgramCommand.cxx @@ -0,0 +1,189 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindProgramCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.42 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFindProgramCommand.h" +#include "cmCacheManager.h" +#include + +#if defined(__APPLE__) +#include +#endif + +cmFindProgramCommand::cmFindProgramCommand() +{ + cmSystemTools::ReplaceString(this->GenericDocumentation, + "FIND_XXX", "find_program"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_XXX_PATH", "CMAKE_PROGRAM_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_XXX_MAC_PATH", + "CMAKE_APPBUNDLE_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_SYSTEM_XXX_MAC_PATH", + "CMAKE_SYSTEM_APPBUNDLE_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "XXX_SYSTEM", ""); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_SYSTEM_XXX_PATH", + "CMAKE_SYSTEM_PROGRAM_PATH"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "SEARCH_XXX_DESC", "program"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "SEARCH_XXX", "program"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "XXX_SUBDIR", "[s]bin"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "CMAKE_FIND_ROOT_PATH_MODE_XXX", + "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM"); +} + +// cmFindProgramCommand +bool cmFindProgramCommand +::InitialPass(std::vector const& argsIn, cmExecutionStatus &) +{ + this->VariableDocumentation = "Path to a program."; + this->CMakePathName = "PROGRAM"; + // call cmFindBase::ParseArguments + if(!this->ParseArguments(argsIn)) + { + return false; + } + if(this->AlreadyInCache) + { + // If the user specifies the entry on the command line without a + // type we should add the type and docstring but keep the original + // value. + if(this->AlreadyInCacheWithoutMetaInfo) + { + this->Makefile->AddCacheDefinition(this->VariableName.c_str(), "", + this->VariableDocumentation.c_str(), + cmCacheManager::FILEPATH); + } + return true; + } + + std::string result = FindProgram(this->Names); + if(result != "") + { + // Save the value in the cache + this->Makefile->AddCacheDefinition(this->VariableName.c_str(), + result.c_str(), + this->VariableDocumentation.c_str(), + cmCacheManager::FILEPATH); + + return true; + } + this->Makefile->AddCacheDefinition(this->VariableName.c_str(), + (this->VariableName + "-NOTFOUND").c_str(), + this->VariableDocumentation.c_str(), + cmCacheManager::FILEPATH); + return true; +} + +std::string cmFindProgramCommand::FindProgram(std::vector names) +{ + std::string program = ""; + + // First/last order taken care of in cmFindBase when the paths are setup. + if(this->SearchAppBundleFirst || this->SearchAppBundleLast) + { + program = FindAppBundle(names); + } + if(program.empty() && !this->SearchAppBundleOnly) + { + program = cmSystemTools::FindProgram(names, this->SearchPaths, true); + } + + return program; +} + +std::string cmFindProgramCommand +::FindAppBundle(std::vector names) +{ + for(std::vector::const_iterator name = names.begin(); + name != names.end() ; ++name) + { + + std::string appName = *name + std::string(".app"); + std::string appPath = cmSystemTools::FindDirectory(appName.c_str(), + this->SearchPaths, + true); + + if ( !appPath.empty() ) + { + std::string executable = GetBundleExecutable(appPath); + if (!executable.empty()) + { + return cmSystemTools::CollapseFullPath(executable.c_str()); + } + } + } + + // Couldn't find app bundle + return ""; +} + +std::string cmFindProgramCommand::GetBundleExecutable(std::string bundlePath) +{ + std::string executable = ""; + (void)bundlePath; +#if defined(__APPLE__) + // Started with an example on developer.apple.com about finding bundles + // and modified from that. + + // Get a CFString of the app bundle path + // XXX - Is it safe to assume everything is in UTF8? + CFStringRef bundlePathCFS = + CFStringCreateWithCString(kCFAllocatorDefault , + bundlePath.c_str(), kCFStringEncodingUTF8 ); + + // Make a CFURLRef from the CFString representation of the + // bundle’s path. + CFURLRef bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, + bundlePathCFS, + kCFURLPOSIXPathStyle, + true ); + + // Make a bundle instance using the URLRef. + CFBundleRef appBundle = CFBundleCreate( kCFAllocatorDefault, bundleURL ); + + // returned executableURL is relative to /Contents/MacOS/ + CFURLRef executableURL = CFBundleCopyExecutableURL(appBundle); + + if (executableURL != NULL) + { + const int MAX_OSX_PATH_SIZE = 1024; + char buffer[MAX_OSX_PATH_SIZE]; + + // Convert the CFString to a C string + CFStringGetCString( CFURLGetString(executableURL), buffer, + MAX_OSX_PATH_SIZE, kCFStringEncodingUTF8 ); + + // And finally to a c++ string + executable = bundlePath + "/Contents/MacOS/" + std::string(buffer); + } + + // Any CF objects returned from functions with "create" or + // "copy" in their names must be released by us! + CFRelease( bundlePathCFS ); + CFRelease( bundleURL ); + CFRelease( appBundle ); + CFRelease( executableURL ); +#endif + + return executable; +} + diff --git a/CMakeLua/Source/cmFindProgramCommand.h b/CMakeLua/Source/cmFindProgramCommand.h new file mode 100644 index 0000000..d7d553a --- /dev/null +++ b/CMakeLua/Source/cmFindProgramCommand.h @@ -0,0 +1,80 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFindProgramCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.21 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFindProgramCommand_h +#define cmFindProgramCommand_h + +#include "cmFindBase.h" + +/** \class cmFindProgramCommand + * \brief Define a command to search for an executable program. + * + * cmFindProgramCommand is used to define a CMake variable + * that specifies an executable program. The command searches + * in the current path (e.g., PATH environment variable) for + * an executable that matches one of the supplied names. + */ +class cmFindProgramCommand : public cmFindBase +{ +public: + cmFindProgramCommand(); + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFindProgramCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "find_program";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Find an executable program."; + } + + cmTypeMacro(cmFindProgramCommand, cmFindBase); + +protected: + std::string FindProgram(std::vector names); + +private: + std::string FindAppBundle(std::vector names); + std::string GetBundleExecutable(std::string bundlePath); + +}; + + + +#endif diff --git a/CMakeLua/Source/cmForEachCommand.cxx b/CMakeLua/Source/cmForEachCommand.cxx new file mode 100644 index 0000000..2cd27a7 --- /dev/null +++ b/CMakeLua/Source/cmForEachCommand.cxx @@ -0,0 +1,214 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmForEachCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.26 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmForEachCommand.h" + +bool cmForEachFunctionBlocker:: +IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf, + cmExecutionStatus &inStatus) +{ + // Prevent recusion and don't let this blocker block its own + // commands. + if (this->Executing) + { + return false; + } + + if (!cmSystemTools::Strucmp(lff.Name.c_str(),"foreach")) + { + // record the number of nested foreach commands + this->Depth++; + } + else if (!cmSystemTools::Strucmp(lff.Name.c_str(),"endforeach")) + { + // if this is the endofreach for this statement + if (!this->Depth) + { + // at end of for each execute recorded commands + // store the old value + std::string oldDef; + if (mf.GetDefinition(this->Args[0].c_str())) + { + oldDef = mf.GetDefinition(this->Args[0].c_str()); + } + this->Executing = true; + std::vector::const_iterator j = this->Args.begin(); + ++j; + + std::string tmps; + cmListFileArgument arg; + for( ; j != this->Args.end(); ++j) + { + // set the variable to the loop value + mf.AddDefinition(this->Args[0].c_str(),j->c_str()); + // Invoke all the functions that were collected in the block. + cmExecutionStatus status; + for(unsigned int c = 0; c < this->Functions.size(); ++c) + { + status.Clear(); + mf.ExecuteCommand(this->Functions[c],status); + if (status.GetReturnInvoked()) + { + inStatus.SetReturnInvoked(true); + // restore the variable to its prior value + mf.AddDefinition(this->Args[0].c_str(),oldDef.c_str()); + mf.RemoveFunctionBlocker(lff); + return true; + } + if (status.GetBreakInvoked()) + { + // restore the variable to its prior value + mf.AddDefinition(this->Args[0].c_str(),oldDef.c_str()); + mf.RemoveFunctionBlocker(lff); + return true; + } + } + } + // restore the variable to its prior value + mf.AddDefinition(this->Args[0].c_str(),oldDef.c_str()); + mf.RemoveFunctionBlocker(lff); + return true; + } + else + { + // close out a nested foreach + this->Depth--; + } + } + + // record the command + this->Functions.push_back(lff); + + // always return true + return true; +} + +bool cmForEachFunctionBlocker:: +ShouldRemove(const cmListFileFunction& lff, cmMakefile& mf) +{ + if(!cmSystemTools::Strucmp(lff.Name.c_str(),"endforeach")) + { + std::vector expandedArguments; + mf.ExpandArguments(lff.Arguments, expandedArguments); + if ((!expandedArguments.empty() && + (expandedArguments[0] == this->Args[0])) + || cmSystemTools::IsOn + (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS"))) + { + return true; + } + } + return false; +} + +void cmForEachFunctionBlocker:: +ScopeEnded(cmMakefile &mf) +{ + cmSystemTools::Error("The end of a CMakeLists file was reached with a " + "FOREACH statement that was not closed properly. " + "Within the directory: ", + mf.GetCurrentDirectory()); +} + +bool cmForEachCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // create a function blocker + cmForEachFunctionBlocker *f = new cmForEachFunctionBlocker(); + if ( args.size() > 1 ) + { + if ( args[1] == "RANGE" ) + { + int start = 0; + int stop = 0; + int step = 0; + if ( args.size() == 3 ) + { + stop = atoi(args[2].c_str()); + } + if ( args.size() == 4 ) + { + start = atoi(args[2].c_str()); + stop = atoi(args[3].c_str()); + } + if ( args.size() == 5 ) + { + start = atoi(args[2].c_str()); + stop = atoi(args[3].c_str()); + step = atoi(args[4].c_str()); + } + if ( step == 0 ) + { + if ( start > stop ) + { + step = -1; + } + else + { + step = 1; + } + } + if ( + (start > stop && step > 0) || + (start < stop && step < 0) || + step == 0 + ) + { + cmOStringStream str; + str << "called with incorrect range specification: start "; + str << start << ", stop " << stop << ", step " << step; + this->SetError(str.str().c_str()); + return false; + } + std::vector range; + char buffer[100]; + range.push_back(args[0]); + int cc; + for ( cc = start; ; cc += step ) + { + if ( (step > 0 && cc > stop) || (step < 0 && cc < stop) ) + { + break; + } + sprintf(buffer, "%d", cc); + range.push_back(buffer); + if ( cc == stop ) + { + break; + } + } + f->Args = range; + } + else + { + f->Args = args; + } + } + else + { + f->Args = args; + } + this->Makefile->AddFunctionBlocker(f); + + return true; +} + diff --git a/CMakeLua/Source/cmForEachCommand.h b/CMakeLua/Source/cmForEachCommand.h new file mode 100644 index 0000000..92b1b61 --- /dev/null +++ b/CMakeLua/Source/cmForEachCommand.h @@ -0,0 +1,121 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmForEachCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmForEachCommand_h +#define cmForEachCommand_h + +#include "cmCommand.h" +#include "cmFunctionBlocker.h" +#include "cmListFileCache.h" + +/** \class cmForEachFunctionBlocker + * \brief subclass of function blocker + * + * + */ +class cmForEachFunctionBlocker : public cmFunctionBlocker +{ +public: + cmForEachFunctionBlocker() {this->Executing = false; Depth = 0;} + virtual ~cmForEachFunctionBlocker() {} + virtual bool IsFunctionBlocked(const cmListFileFunction& lff, + cmMakefile &mf, + cmExecutionStatus &); + virtual bool ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf); + virtual void ScopeEnded(cmMakefile &mf); + + std::vector Args; + std::vector Functions; + bool Executing; +private: + int Depth; +}; + +/** \class cmForEachCommand + * \brief starts an if block + * + * cmForEachCommand starts an if block + */ +class cmForEachCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmForEachCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "foreach";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Evaluate a group of commands for each value in a list."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " foreach(loop_var arg1 arg2 ...)\n" + " COMMAND1(ARGS ...)\n" + " COMMAND2(ARGS ...)\n" + " ...\n" + " endforeach(loop_var)\n" + " foreach(loop_var RANGE total)\n" + " foreach(loop_var RANGE start stop [step])\n" + "All commands between foreach and the matching endforeach are recorded " + "without being invoked. Once the endforeach is evaluated, the " + "recorded list of commands is invoked once for each argument listed " + "in the original foreach command. Before each iteration of the loop " + "\"${loop_var}\" will be set as a variable with " + "the current value in the list.\n" + "Foreach can also iterate over a generated range of numbers. " + "There are three types of this iteration:\n" + "* When specifying single number, the range will have elements " + "0 to \"total\".\n" + "* When specifying two numbers, the range will have elements from " + "the first number to the second number.\n" + "* The third optional number is the increment used to iterate from " + "the first number to the second number."; + } + + cmTypeMacro(cmForEachCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmFunctionBlocker.h b/CMakeLua/Source/cmFunctionBlocker.h new file mode 100644 index 0000000..06bcfcd --- /dev/null +++ b/CMakeLua/Source/cmFunctionBlocker.h @@ -0,0 +1,56 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFunctionBlocker.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFunctionBlocker_h +#define cmFunctionBlocker_h + +#include "cmStandardIncludes.h" +#include "cmExecutionStatus.h" +class cmMakefile; + +/** \class cmFunctionBlocker + * \brief A class that defines an interface for blocking cmake functions + * + * This is the superclass for any classes that need to block a cmake function + */ +class cmFunctionBlocker +{ +public: + /** + * should a function be blocked + */ + virtual bool IsFunctionBlocked(const cmListFileFunction& lff, + cmMakefile&mf, + cmExecutionStatus &status) = 0; + + /** + * should this function blocker be removed, useful when one function adds a + * blocker and another must remove it + */ + virtual bool ShouldRemove(const cmListFileFunction&, + cmMakefile&) {return false;} + + /** + * When the end of a CMakeList file is reached this method is called. It + * is not called on the end of an INCLUDE cmake file, just at the end of a + * regular CMakeList file + */ + virtual void ScopeEnded(cmMakefile&) {} + + virtual ~cmFunctionBlocker() {} +}; + +#endif diff --git a/CMakeLua/Source/cmFunctionCommand.cxx b/CMakeLua/Source/cmFunctionCommand.cxx new file mode 100755 index 0000000..17ecb80 --- /dev/null +++ b/CMakeLua/Source/cmFunctionCommand.cxx @@ -0,0 +1,298 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFunctionCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmFunctionCommand.h" + +#include "cmake.h" + +// define the class for function commands +class cmFunctionHelperCommand : public cmCommand +{ +public: + cmFunctionHelperCommand() {} + + ///! clean up any memory allocated by the function + ~cmFunctionHelperCommand() {}; + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmFunctionHelperCommand *newC = new cmFunctionHelperCommand; + // we must copy when we clone + newC->Args = this->Args; + newC->Functions = this->Functions; + return newC; + } + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InvokeInitialPass(const std::vector& args, + cmExecutionStatus &); + + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &) { return false; }; + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return this->Args[0].c_str(); } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + std::string docs = "Function named: "; + docs += this->GetName(); + return docs.c_str(); + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return this->GetTerseDocumentation(); + } + + cmTypeMacro(cmFunctionHelperCommand, cmCommand); + + std::vector Args; + std::vector Functions; +}; + + +bool cmFunctionHelperCommand::InvokeInitialPass +(const std::vector& args, + cmExecutionStatus &) +{ + // Expand the argument list to the function. + std::vector expandedArgs; + this->Makefile->ExpandArguments(args, expandedArgs); + + // make sure the number of arguments passed is at least the number + // required by the signature + if (expandedArgs.size() < this->Args.size() - 1) + { + std::string errorMsg = + "Function invoked with incorrect arguments for function named: "; + errorMsg += this->Args[0]; + this->SetError(errorMsg.c_str()); + return false; + } + + // we push a scope on the makefile + this->Makefile->PushScope(); + + // set the value of argc + cmOStringStream strStream; + strStream << expandedArgs.size(); + this->Makefile->AddDefinition("ARGC",strStream.str().c_str()); + + // set the values for ARGV0 ARGV1 ... + for (unsigned int t = 0; t < expandedArgs.size(); ++t) + { + cmOStringStream tmpStream; + tmpStream << "ARGV" << t; + this->Makefile->AddDefinition(tmpStream.str().c_str(), + expandedArgs[t].c_str()); + } + + // define the formal arguments + for (unsigned int j = 1; j < this->Args.size(); ++j) + { + this->Makefile->AddDefinition(this->Args[j].c_str(), + expandedArgs[j-1].c_str()); + } + + // define ARGV and ARGN + std::vector::const_iterator eit; + std::string argvDef; + std::string argnDef; + unsigned int cnt = 0; + for ( eit = expandedArgs.begin(); eit != expandedArgs.end(); ++eit ) + { + if ( argvDef.size() > 0 ) + { + argvDef += ";"; + } + argvDef += *eit; + if ( cnt >= this->Args.size()-1 ) + { + if ( argnDef.size() > 0 ) + { + argnDef += ";"; + } + argnDef += *eit; + } + cnt ++; + } + this->Makefile->AddDefinition("ARGV", argvDef.c_str()); + this->Makefile->AddDefinition("ARGN", argnDef.c_str()); + + // Invoke all the functions that were collected in the block. + // for each function + for(unsigned int c = 0; c < this->Functions.size(); ++c) + { + cmExecutionStatus status; + if (!this->Makefile->ExecuteCommand(this->Functions[c],status)) + { + cmOStringStream error; + error << "Error in cmake code at\n" + << this->Functions[c].FilePath << ":" + << this->Functions[c].Line << ":\n" + << "A command failed during the invocation of function \"" + << this->Args[0].c_str() << "\"."; + cmSystemTools::Error(error.str().c_str()); + + // pop scope on the makefile and return + this->Makefile->PopScope(); + return false; + } + if (status.GetReturnInvoked()) + { + this->Makefile->PopScope(); + return true; + } + } + + // pop scope on the makefile + this->Makefile->PopScope(); + return true; +} + +bool cmFunctionFunctionBlocker:: +IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf, + cmExecutionStatus &) +{ + // record commands until we hit the ENDFUNCTION + // at the ENDFUNCTION call we shift gears and start looking for invocations + if(!cmSystemTools::Strucmp(lff.Name.c_str(),"function")) + { + this->Depth++; + } + else if(!cmSystemTools::Strucmp(lff.Name.c_str(),"endfunction")) + { + // if this is the endfunction for this function then execute + if (!this->Depth) + { + std::string name = this->Args[0]; + std::vector::size_type cc; + name += "("; + for ( cc = 0; cc < this->Args.size(); cc ++ ) + { + name += " " + this->Args[cc]; + } + name += " )"; + + // create a new command and add it to cmake + cmFunctionHelperCommand *f = new cmFunctionHelperCommand(); + f->Args = this->Args; + f->Functions = this->Functions; + + // Set the FilePath on the arguments to match the function since it is + // not stored and the original values may be freed + for (unsigned int i = 0; i < f->Functions.size(); ++i) + { + for (unsigned int j = 0; j < f->Functions[i].Arguments.size(); ++j) + { + f->Functions[i].Arguments[j].FilePath = + f->Functions[i].FilePath.c_str(); + } + } + + std::string newName = "_" + this->Args[0]; + mf.GetCMakeInstance()->RenameCommand(this->Args[0].c_str(), + newName.c_str()); + mf.AddCommand(f); + + // remove the function blocker now that the function is defined + mf.RemoveFunctionBlocker(lff); + return true; + } + else + { + // decrement for each nested function that ends + this->Depth--; + } + } + + // if it wasn't an endfunction and we are not executing then we must be + // recording + this->Functions.push_back(lff); + return true; +} + + +bool cmFunctionFunctionBlocker:: +ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf) +{ + if(!cmSystemTools::Strucmp(lff.Name.c_str(),"endfunction")) + { + std::vector expandedArguments; + mf.ExpandArguments(lff.Arguments, expandedArguments); + if ((!expandedArguments.empty() && + (expandedArguments[0] == this->Args[0])) + || cmSystemTools::IsOn + (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS"))) + { + return true; + } + } + + return false; +} + +void cmFunctionFunctionBlocker:: +ScopeEnded(cmMakefile &mf) +{ + // functions should end with an EndFunction + cmSystemTools::Error( + "The end of a CMakeLists file was reached with a FUNCTION statement that " + "was not closed properly. Within the directory: ", + mf.GetCurrentDirectory(), " with function ", + this->Args[0].c_str()); +} + +bool cmFunctionCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // create a function blocker + cmFunctionFunctionBlocker *f = new cmFunctionFunctionBlocker(); + for(std::vector::const_iterator j = args.begin(); + j != args.end(); ++j) + { + f->Args.push_back(*j); + } + this->Makefile->AddFunctionBlocker(f); + return true; +} + diff --git a/CMakeLua/Source/cmFunctionCommand.h b/CMakeLua/Source/cmFunctionCommand.h new file mode 100755 index 0000000..9aada9d --- /dev/null +++ b/CMakeLua/Source/cmFunctionCommand.h @@ -0,0 +1,115 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmFunctionCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmFunctionCommand_h +#define cmFunctionCommand_h + +#include "cmCommand.h" +#include "cmFunctionBlocker.h" + +/** \class cmFunctionFunctionBlocker + * \brief subclass of function blocker + * + * + */ +class cmFunctionFunctionBlocker : public cmFunctionBlocker +{ +public: + cmFunctionFunctionBlocker() {this->Depth=0;} + virtual ~cmFunctionFunctionBlocker() {} + virtual bool IsFunctionBlocked(const cmListFileFunction&, + cmMakefile &mf, + cmExecutionStatus &); + virtual bool ShouldRemove(const cmListFileFunction&, cmMakefile &mf); + virtual void ScopeEnded(cmMakefile &mf); + + std::vector Args; + std::vector Functions; + int Depth; +}; + +/** \class cmFunctionCommand + * \brief starts an if block + * + * cmFunctionCommand starts an if block + */ +class cmFunctionCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmFunctionCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "function";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Start recording a function for later invocation as a command."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " function( [arg1 [arg2 [arg3 ...]]])\n" + " COMMAND1(ARGS ...)\n" + " COMMAND2(ARGS ...)\n" + " ...\n" + " endfunction()\n" + "Define a function named that takes arguments named " + "arg1 arg2 arg3 (...). Commands listed after function, but before " + "the matching endfunction, are not invoked until the function " + "is invoked. When it is invoked, the commands recorded in the " + "function are first modified by replacing formal parameters (${arg1}) " + "with the arguments passed, and then invoked as normal commands. In " + "addition to referencing the formal parameters you can reference " + "the variable ARGC which will be set to the number of arguments " + "passed into the function as well as ARGV0 ARGV1 ARGV2 ... which " + "will have the actual values of the arguments passed in. This " + "facilitates creating functions with optional arguments. Additionally " + "ARGV holds the list of all arguments given to the function and ARGN " + "holds the list of argument pass the last expected argument."; + } + + cmTypeMacro(cmFunctionCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmGeneratedFileStream.cxx b/CMakeLua/Source/cmGeneratedFileStream.cxx new file mode 100644 index 0000000..36767eb --- /dev/null +++ b/CMakeLua/Source/cmGeneratedFileStream.cxx @@ -0,0 +1,313 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGeneratedFileStream.cxx,v $ + Language: C++ + Date: $Date: 2007/11/16 12:01:58 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGeneratedFileStream.h" + +#include "cmSystemTools.h" + +// Includes needed for implementation of RenameFile. This is not in +// system tools because it is not implemented robustly enough to move +// files across directories. +#ifdef _WIN32 +# include +# include +#endif + +#if defined(CMAKE_BUILD_WITH_CMAKE) +# include +#endif + +//---------------------------------------------------------------------------- +cmGeneratedFileStream::cmGeneratedFileStream(): + cmGeneratedFileStreamBase(), Stream() +{ +} + +//---------------------------------------------------------------------------- +cmGeneratedFileStream::cmGeneratedFileStream(const char* name, bool quiet): + cmGeneratedFileStreamBase(name), + Stream(TempName.c_str()) +{ + // Check if the file opened. + if(!*this && !quiet) + { + cmSystemTools::Error("Cannot open file for write: ", + this->TempName.c_str()); + cmSystemTools::ReportLastSystemError(""); + } +} + +//---------------------------------------------------------------------------- +cmGeneratedFileStream::~cmGeneratedFileStream() +{ + // This is the first destructor called. Check the status of the + // stream and give the information to the private base. Next the + // stream will be destroyed which will close the temporary file. + // Finally the base destructor will be called to replace the + // destination file. + this->Okay = (*this)?true:false; +} + +//---------------------------------------------------------------------------- +cmGeneratedFileStream& +cmGeneratedFileStream::Open(const char* name, bool quiet, bool binaryFlag) +{ + // Store the file name and construct the temporary file name. + this->cmGeneratedFileStreamBase::Open(name); + + // Open the temporary output file. + if ( binaryFlag ) + { + this->Stream::open(this->TempName.c_str(), + std::ios::out | std::ios::binary); + } + else + { + this->Stream::open(this->TempName.c_str(), std::ios::out); + } + + // Check if the file opened. + if(!*this && !quiet) + { + cmSystemTools::Error("Cannot open file for write: ", + this->TempName.c_str()); + cmSystemTools::ReportLastSystemError(""); + } + return *this; +} + +//---------------------------------------------------------------------------- +bool +cmGeneratedFileStream::Close() +{ + // Save whether the temporary output file is valid before closing. + this->Okay = (*this)?true:false; + + // Close the temporary output file. + this->Stream::close(); + + // Remove the temporary file (possibly by renaming to the real file). + return this->cmGeneratedFileStreamBase::Close(); +} + +//---------------------------------------------------------------------------- +void cmGeneratedFileStream::SetCopyIfDifferent(bool copy_if_different) +{ + this->CopyIfDifferent = copy_if_different; +} + +//---------------------------------------------------------------------------- +void cmGeneratedFileStream::SetCompression(bool compression) +{ + this->Compress = compression; +} + +//---------------------------------------------------------------------------- +void cmGeneratedFileStream::SetCompressionExtraExtension(bool ext) +{ + this->CompressExtraExtension = ext; +} + +//---------------------------------------------------------------------------- +cmGeneratedFileStreamBase::cmGeneratedFileStreamBase(): + Name(), + TempName(), + CopyIfDifferent(false), + Okay(false), + Compress(false), + CompressExtraExtension(true) +{ +} + +//---------------------------------------------------------------------------- +cmGeneratedFileStreamBase::cmGeneratedFileStreamBase(const char* name): + Name(), + TempName(), + CopyIfDifferent(false), + Okay(false), + Compress(false), + CompressExtraExtension(true) +{ + this->Open(name); +} + +//---------------------------------------------------------------------------- +cmGeneratedFileStreamBase::~cmGeneratedFileStreamBase() +{ + this->Close(); +} + +//---------------------------------------------------------------------------- +void cmGeneratedFileStreamBase::Open(const char* name) +{ + // Save the original name of the file. + this->Name = name; + + // Create the name of the temporary file. + this->TempName = name; + this->TempName += ".tmp"; + + // Make sure the temporary file that will be used is not present. + cmSystemTools::RemoveFile(this->TempName.c_str()); + + std::string dir = cmSystemTools::GetFilenamePath(this->TempName); + cmSystemTools::MakeDirectory(dir.c_str()); +} + +//---------------------------------------------------------------------------- +bool cmGeneratedFileStreamBase::Close() +{ + bool replaced = false; + + std::string resname = this->Name; + if ( this->Compress && this->CompressExtraExtension ) + { + resname += ".gz"; + } + + // Only consider replacing the destination file if no error + // occurred. + if(!this->Name.empty() && + this->Okay && + (!this->CopyIfDifferent || + cmSystemTools::FilesDiffer(this->TempName.c_str(), resname.c_str()))) + { + // The destination is to be replaced. Rename the temporary to the + // destination atomically. + if ( this->Compress ) + { + std::string gzname = this->TempName + ".temp.gz"; + if ( this->CompressFile(this->TempName.c_str(), gzname.c_str()) ) + { + this->RenameFile(gzname.c_str(), resname.c_str()); + } + cmSystemTools::RemoveFile(gzname.c_str()); + } + else + { + this->RenameFile(this->TempName.c_str(), resname.c_str()); + } + + replaced = true; + } + + // Else, the destination was not replaced. + // + // Always delete the temporary file. We never want it to stay around. + cmSystemTools::RemoveFile(this->TempName.c_str()); + + return replaced; +} + +//---------------------------------------------------------------------------- +#ifdef CMAKE_BUILD_WITH_CMAKE +int cmGeneratedFileStreamBase::CompressFile(const char* oldname, + const char* newname) +{ + gzFile gf = gzopen(newname, "w"); + if ( !gf ) + { + return 0; + } + FILE* ifs = fopen(oldname, "r"); + if ( !ifs ) + { + return 0; + } + size_t res; + const size_t BUFFER_SIZE = 1024; + char buffer[BUFFER_SIZE]; + while ( (res = fread(buffer, 1, BUFFER_SIZE, ifs)) > 0 ) + { + if ( !gzwrite(gf, buffer, static_cast(res)) ) + { + fclose(ifs); + gzclose(gf); + return 0; + } + } + fclose(ifs); + gzclose(gf); + return 1; +} +#else +int cmGeneratedFileStreamBase::CompressFile(const char*, const char*) +{ + return 0; +} +#endif + +//---------------------------------------------------------------------------- +int cmGeneratedFileStreamBase::RenameFile(const char* oldname, + const char* newname) +{ +#ifdef _WIN32 + /* On Windows the move functions will not replace existing files. + Check if the destination exists. */ + struct stat newFile; + if(stat(newname, &newFile) == 0) + { + /* The destination exists. We have to replace it carefully. The + MoveFileEx function does what we need but is not available on + Win9x. */ + OSVERSIONINFO osv; + DWORD attrs; + + /* Make sure the destination is not read only. */ + attrs = GetFileAttributes(newname); + if(attrs & FILE_ATTRIBUTE_READONLY) + { + SetFileAttributes(newname, attrs & ~FILE_ATTRIBUTE_READONLY); + } + + /* Check the windows version number. */ + osv.dwOSVersionInfoSize = sizeof(osv); + GetVersionEx(&osv); + if(osv.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) + { + /* This is Win9x. There is no MoveFileEx implementation. We + cannot quite rename the file atomically. Just delete the + destination and then move the file. */ + DeleteFile(newname); + return MoveFile(oldname, newname); + } + else + { + /* This is not Win9x. Use the MoveFileEx implementation. */ + return MoveFileEx(oldname, newname, MOVEFILE_REPLACE_EXISTING); + } + } + else + { + /* The destination does not exist. Just move the file. */ + return MoveFile(oldname, newname); + } +#else + /* On UNIX we have an OS-provided call to do this atomically. */ + return rename(oldname, newname) == 0; +#endif +} + +//---------------------------------------------------------------------------- +void cmGeneratedFileStream::SetName(const char* fname) +{ + if ( !fname ) + { + this->Name = ""; + return; + } + this->Name = fname; +} diff --git a/CMakeLua/Source/cmGeneratedFileStream.h b/CMakeLua/Source/cmGeneratedFileStream.h new file mode 100644 index 0000000..616b86c --- /dev/null +++ b/CMakeLua/Source/cmGeneratedFileStream.h @@ -0,0 +1,157 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGeneratedFileStream.h,v $ + Language: C++ + Date: $Date: 2007/11/16 12:01:58 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGeneratedFileStream_h +#define cmGeneratedFileStream_h + +#include "cmStandardIncludes.h" + +#if defined(__sgi) && !defined(__GNUC__) +# pragma set woff 1375 /* base class destructor not virtual */ +#endif + +// This is the first base class of cmGeneratedFileStream. It will be +// created before and destroyed after the ofstream portion and can +// therefore be used to manage the temporary file. +class cmGeneratedFileStreamBase +{ +protected: + // This constructor does not prepare the temporary file. The open + // method must be used. + cmGeneratedFileStreamBase(); + + // This constructor prepares the temporary output file. + cmGeneratedFileStreamBase(const char* name); + + // The destructor renames the temporary output file to the real name. + ~cmGeneratedFileStreamBase(); + + // Internal methods to handle the temporary file. Open is always + // called before the real stream is opened. Close is always called + // after the real stream is closed and Okay is set to whether the + // real stream was still valid for writing when it was closed. + void Open(const char* name); + bool Close(); + + // Internal file replacement implementation. + int RenameFile(const char* oldname, const char* newname); + + // Internal file compression implementation. + int CompressFile(const char* oldname, const char* newname); + + // The name of the final destination file for the output. + std::string Name; + + // The name of the temporary file. + std::string TempName; + + // Whether to do a copy-if-different. + bool CopyIfDifferent; + + // Whether the real file stream was valid when it was closed. + bool Okay; + + // Whether the destionation file is compressed + bool Compress; + + // Whether the destionation file is compressed + bool CompressExtraExtension; +}; + +/** \class cmGeneratedFileStream + * \brief Output stream for generated files. + * + * File generation should be atomic so that if CMake is killed then a + * generated file is either the original version or the complete new + * version. This stream is used to make sure file generation is + * atomic. Optionally the output file is only replaced if its + * contents have changed to prevent the file modification time from + * being updated. + */ +class cmGeneratedFileStream: private cmGeneratedFileStreamBase, + public std::ofstream +{ +public: + typedef std::ofstream Stream; + + /** + * This constructor prepares a default stream. The open method must + * be used before writing to the stream. + */ + cmGeneratedFileStream(); + + /** + * This constructor takes the name of the file to be generated. It + * automatically generates a name for the temporary file. If the + * file cannot be opened an error message is produced unless the + * second argument is set to true. + */ + cmGeneratedFileStream(const char* name, bool quiet=false); + + /** + * The destructor checks the stream status to be sure the temporary + * file was successfully written before allowing the original to be + * replaced. + */ + ~cmGeneratedFileStream(); + + /** + * Open an output file by name. This should be used only with a + * non-open stream. It automatically generates a name for the + * temporary file. If the file cannot be opened an error message is + * produced unless the second argument is set to true. + */ + cmGeneratedFileStream& Open(const char* name, bool quiet=false, + bool binaryFlag=false); + + /** + * Close the output file. This should be used only with an open + * stream. The temporary file is atomically renamed to the + * destionation file if the stream is still valid when this method + * is called. + */ + bool Close(); + + /** + * Set whether copy-if-different is done. + */ + void SetCopyIfDifferent(bool copy_if_different); + + /** + * Set whether compression is done. + */ + void SetCompression(bool compression); + + /** + * Set whether compression has extra extension + */ + void SetCompressionExtraExtension(bool ext); + + /** + * Set name of the file that will hold the actual output. This method allows + * the output file to be changed during the use of cmGeneratedFileStream. + */ + void SetName(const char* fname); + +private: + cmGeneratedFileStream(cmGeneratedFileStream const&); // not implemented +}; + +#if defined(__sgi) && !defined(__GNUC__) +# pragma reset woff 1375 /* base class destructor not virtual */ +#endif + +#endif diff --git a/CMakeLua/Source/cmGetCMakePropertyCommand.cxx b/CMakeLua/Source/cmGetCMakePropertyCommand.cxx new file mode 100644 index 0000000..a8c8466 --- /dev/null +++ b/CMakeLua/Source/cmGetCMakePropertyCommand.cxx @@ -0,0 +1,65 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetCMakePropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGetCMakePropertyCommand.h" + +#include "cmake.h" + +// cmGetCMakePropertyCommand +bool cmGetCMakePropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::vector::size_type cc; + std::string variable = args[0]; + std::string output = "NOTFOUND"; + + if ( args[1] == "VARIABLES") + { + int cacheonly = 0; + std::vector vars = this->Makefile->GetDefinitions(cacheonly); + for ( cc = 0; cc < vars.size(); cc ++ ) + { + if ( cc > 0 ) + { + output += ";"; + } + output += vars[cc]; + } + } + else if ( args[1] == "MACROS" ) + { + this->Makefile->GetListOfMacros(output); + } + else + { + const char *prop = + this->Makefile->GetCMakeInstance()->GetProperty(args[1].c_str()); + if (prop) + { + output = prop; + } + } + this->Makefile->AddDefinition(variable.c_str(), output.c_str()); + + return true; +} + diff --git a/CMakeLua/Source/cmGetCMakePropertyCommand.h b/CMakeLua/Source/cmGetCMakePropertyCommand.h new file mode 100644 index 0000000..67bb897 --- /dev/null +++ b/CMakeLua/Source/cmGetCMakePropertyCommand.h @@ -0,0 +1,73 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetCMakePropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGetCMakePropertyCommand_h +#define cmGetCMakePropertyCommand_h + +#include "cmCommand.h" + +class cmGetCMakePropertyCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmGetCMakePropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "get_cmake_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get a property of the CMake instance."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " get_cmake_property(VAR property)\n" + "Get a property from the CMake instance. The value of the " + "property is stored in the variable VAR. If the property is " + "not found, CMake will report an error. Some supported properties " + "include: VARIABLES, CACHE_VARIABLES, COMMANDS, and MACROS."; + } + + cmTypeMacro(cmGetCMakePropertyCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmGetDirectoryPropertyCommand.cxx b/CMakeLua/Source/cmGetDirectoryPropertyCommand.cxx new file mode 100644 index 0000000..48b3a87 --- /dev/null +++ b/CMakeLua/Source/cmGetDirectoryPropertyCommand.cxx @@ -0,0 +1,101 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetDirectoryPropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGetDirectoryPropertyCommand.h" + +#include "cmake.h" + +// cmGetDirectoryPropertyCommand +bool cmGetDirectoryPropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::vector::const_iterator i = args.begin(); + std::string variable = *i; + ++i; + std::string output = ""; + + // get the directory argument if there is one + cmMakefile *dir = this->Makefile; + if (*i == "DIRECTORY") + { + ++i; + if (i == args.end()) + { + this->SetError + ("DIRECTORY argument provided without subsequent arguments"); + return false; + } + std::string sd = *i; + // make sure the start dir is a full path + if (!cmSystemTools::FileIsFullPath(sd.c_str())) + { + sd = this->Makefile->GetStartDirectory(); + sd += "/"; + sd += *i; + } + + // The local generators are associated with collapsed paths. + sd = cmSystemTools::CollapseFullPath(sd.c_str()); + + // lookup the makefile from the directory name + cmLocalGenerator *lg = + this->Makefile->GetLocalGenerator()->GetGlobalGenerator()-> + FindLocalGenerator(sd.c_str()); + if (!lg) + { + this->SetError + ("DIRECTORY argument provided but requested directory not found. " + "This could be because the directory argument was invalid or, " + "it is valid but has not been processed yet."); + return false; + } + dir = lg->GetMakefile(); + ++i; + } + + // OK, now we have the directory to process, we just get the requested + // information out of it + + if ( *i == "DEFINITION" ) + { + ++i; + if (i == args.end()) + { + this->SetError("A request for a variable definition was made without " + "providing the name of the variable to get."); + return false; + } + output = dir->GetSafeDefinition(i->c_str()); + this->Makefile->AddDefinition(variable.c_str(), output.c_str()); + return true; + } + + const char *prop = dir->GetProperty(i->c_str()); + if (prop) + { + this->Makefile->AddDefinition(variable.c_str(), prop); + return true; + } + this->Makefile->AddDefinition(variable.c_str(), ""); + return true; +} + diff --git a/CMakeLua/Source/cmGetDirectoryPropertyCommand.h b/CMakeLua/Source/cmGetDirectoryPropertyCommand.h new file mode 100644 index 0000000..21d2a63 --- /dev/null +++ b/CMakeLua/Source/cmGetDirectoryPropertyCommand.h @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetDirectoryPropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGetDirectoryPropertyCommand_h +#define cmGetDirectoryPropertyCommand_h + +#include "cmCommand.h" + +class cmGetDirectoryPropertyCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmGetDirectoryPropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "get_directory_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get a property of the directory."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " get_directory_property(VAR [DIRECTORY dir] property)\n" + "Get a property from the Directory. The value of the property is " + "stored in the variable VAR. If the property is not found, " + "CMake will report an error. The properties include: VARIABLES, " + "CACHE_VARIABLES, COMMANDS, MACROS, INCLUDE_DIRECTORIES, " + "LINK_DIRECTORIES, DEFINITIONS, INCLUDE_REGULAR_EXPRESSION, " + "LISTFILE_STACK, PARENT_DIRECTORY, and " + "DEFINITION varname. If the DIRECTORY argument is provided then " + "the property of the provided directory will be retrieved " + "instead of the current directory. You can only get properties " + "of a directory during or after it has been traversed by cmake."; + } + + cmTypeMacro(cmGetDirectoryPropertyCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmGetFilenameComponentCommand.cxx b/CMakeLua/Source/cmGetFilenameComponentCommand.cxx new file mode 100644 index 0000000..87f534a --- /dev/null +++ b/CMakeLua/Source/cmGetFilenameComponentCommand.cxx @@ -0,0 +1,128 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetFilenameComponentCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.17 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGetFilenameComponentCommand.h" +#include "cmSystemTools.h" + +// cmGetFilenameComponentCommand +bool cmGetFilenameComponentCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 3) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Check and see if the value has been stored in the cache + // already, if so use that value + if(args.size() == 4 && args[3] == "CACHE") + { + const char* cacheValue = this->Makefile->GetDefinition(args[0].c_str()); + if(cacheValue && !cmSystemTools::IsNOTFOUND(cacheValue)) + { + return true; + } + } + + std::string result; + std::string filename = args[1]; + cmSystemTools::ExpandRegistryValues(filename); + std::string storeArgs; + std::string programArgs; + if (args[2] == "PATH") + { + result = cmSystemTools::GetFilenamePath(filename); + } + else if (args[2] == "NAME") + { + result = cmSystemTools::GetFilenameName(filename); + } + else if (args[2] == "PROGRAM") + { + for(unsigned int i=2; i < args.size(); ++i) + { + if(args[i] == "PROGRAM_ARGS") + { + i++; + if(i < args.size()) + { + storeArgs = args[i]; + } + } + } + cmSystemTools::SplitProgramFromArgs(filename.c_str(), + result, programArgs); + } + else if (args[2] == "EXT") + { + result = cmSystemTools::GetFilenameExtension(filename); + } + else if (args[2] == "NAME_WE") + { + result = cmSystemTools::GetFilenameWithoutExtension(filename); + } + else if (args[2] == "ABSOLUTE") + { + // If the path given is relative evaluate it relative to the + // current source directory. + if(!cmSystemTools::FileIsFullPath(filename.c_str())) + { + std::string fname = this->Makefile->GetCurrentDirectory(); + if(!fname.empty()) + { + fname += "/"; + fname += filename; + filename = fname; + } + } + + // Collapse the path to its simplest form. + result = cmSystemTools::CollapseFullPath(filename.c_str()); + } + else + { + std::string err = "unknown component " + args[2]; + this->SetError(err.c_str()); + return false; + } + + if(args.size() == 4 && args[3] == "CACHE") + { + if(programArgs.size() && storeArgs.size()) + { + this->Makefile->AddCacheDefinition + (storeArgs.c_str(), programArgs.c_str(), + "", args[2] == "PATH" ? cmCacheManager::FILEPATH + : cmCacheManager::STRING); + } + this->Makefile->AddCacheDefinition + (args[0].c_str(), result.c_str(), "", + args[2] == "PATH" ? cmCacheManager::FILEPATH + : cmCacheManager::STRING); + } + else + { + if(programArgs.size() && storeArgs.size()) + { + this->Makefile->AddDefinition(storeArgs.c_str(), programArgs.c_str()); + } + this->Makefile->AddDefinition(args[0].c_str(), result.c_str()); + } + + return true; +} + diff --git a/CMakeLua/Source/cmGetFilenameComponentCommand.h b/CMakeLua/Source/cmGetFilenameComponentCommand.h new file mode 100644 index 0000000..16477d6 --- /dev/null +++ b/CMakeLua/Source/cmGetFilenameComponentCommand.h @@ -0,0 +1,95 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetFilenameComponentCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGetFilenameComponentCommand_h +#define cmGetFilenameComponentCommand_h + +#include "cmCommand.h" + +/** \class cmGetFilenameComponentCommand + * \brief Get a specific component of a filename. + * + * cmGetFilenameComponentCommand is a utility command used to get the path, + * name, extension or name without extension of a full filename. + */ +class cmGetFilenameComponentCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmGetFilenameComponentCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "get_filename_component";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get a specific component of a full filename."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " get_filename_component(VarName FileName\n" + " PATH|ABSOLUTE|NAME|EXT|NAME_WE\n" + " [CACHE])\n" + "Set VarName to be the path (PATH), file name (NAME), file " + "extension (EXT), file name without extension (NAME_WE) of FileName, " + "or the full absolute (ABSOLUTE) file name without symlinks. " + "Note that the path is converted to Unix slashes format and has no " + "trailing slashes. The longest file extension is always considered. " + "If the optional CACHE argument is specified, the result variable is " + "added to the cache.\n" + " get_filename_component(VarName FileName\n" + " PROGRAM [PROGRAM_ARGS ArgVar]\n" + " [CACHE])\n" + "The program in FileName will be found in the system search path or " + "left as a full path. If PROGRAM_ARGS is present with PROGRAM, then " + "any command-line arguments present in the FileName string are split " + "from the program name and stored in ArgVar. This is used to separate " + "a program name from its arguments in a command line string."; + } + + cmTypeMacro(cmGetFilenameComponentCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmGetPropertyCommand.cxx b/CMakeLua/Source/cmGetPropertyCommand.cxx new file mode 100755 index 0000000..15fac9b --- /dev/null +++ b/CMakeLua/Source/cmGetPropertyCommand.cxx @@ -0,0 +1,342 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetPropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:21:54 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGetPropertyCommand.h" + +#include "cmake.h" +#include "cmTest.h" +#include "cmPropertyDefinition.h" + +//---------------------------------------------------------------------------- +cmGetPropertyCommand::cmGetPropertyCommand() +{ + this->InfoType = OutValue; +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 3 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // The cmake variable in which to store the result. + this->Variable = args[0]; + + // Get the scope from which to get the property. + cmProperty::ScopeType scope; + if(args[1] == "GLOBAL") + { + scope = cmProperty::GLOBAL; + } + else if(args[1] == "DIRECTORY") + { + scope = cmProperty::DIRECTORY; + } + else if(args[1] == "TARGET") + { + scope = cmProperty::TARGET; + } + else if(args[1] == "SOURCE") + { + scope = cmProperty::SOURCE_FILE; + } + else if(args[1] == "TEST") + { + scope = cmProperty::TEST; + } + else if(args[1] == "VARIABLE") + { + scope = cmProperty::VARIABLE; + } + else + { + cmOStringStream e; + e << "given invalid scope " << args[1] << ". " + << "Valid scopes are " + << "GLOBAL, DIRECTORY, TARGET, SOURCE, TEST, VARIABLE."; + this->SetError(e.str().c_str()); + return false; + } + + // Parse remaining arguments. + enum Doing { DoingNone, DoingName, DoingProperty, DoingType }; + Doing doing = DoingName; + for(unsigned int i=2; i < args.size(); ++i) + { + if(args[i] == "PROPERTY") + { + doing = DoingProperty; + } + else if(args[i] == "BRIEF_DOCS") + { + doing = DoingNone; + this->InfoType = OutBriefDoc; + } + else if(args[i] == "FULL_DOCS") + { + doing = DoingNone; + this->InfoType = OutFullDoc; + } + else if(args[i] == "DEFINED") + { + doing = DoingNone; + this->InfoType = OutDefined; + } + else if(doing == DoingName) + { + doing = DoingNone; + this->Name = args[i]; + } + else if(doing == DoingProperty) + { + doing = DoingNone; + this->PropertyName = args[i]; + } + else + { + cmOStringStream e; + e << "given invalid argument \"" << args[i] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + + // Make sure a property name was found. + if(this->PropertyName.empty()) + { + this->SetError("not given a PROPERTY argument."); + return false; + } + + // Compute requested output. + if(this->InfoType == OutBriefDoc) + { + // Lookup brief documentation. + std::string output; + if(cmPropertyDefinition* def = + this->Makefile->GetCMakeInstance()-> + GetPropertyDefinition(this->PropertyName.c_str(), scope)) + { + output = def->GetShortDescription(); + } + else + { + output = "NOTFOUND"; + } + this->Makefile->AddDefinition(this->Variable.c_str(), output.c_str()); + } + else if(this->InfoType == OutFullDoc) + { + // Lookup full documentation. + std::string output; + if(cmPropertyDefinition* def = + this->Makefile->GetCMakeInstance()-> + GetPropertyDefinition(this->PropertyName.c_str(), scope)) + { + output = def->GetFullDescription(); + } + else + { + output = "NOTFOUND"; + } + this->Makefile->AddDefinition(this->Variable.c_str(), output.c_str()); + } + else + { + // Dispatch property getting. + switch(scope) + { + case cmProperty::GLOBAL: return this->HandleGlobalMode(); + case cmProperty::DIRECTORY: return this->HandleDirectoryMode(); + case cmProperty::TARGET: return this->HandleTargetMode(); + case cmProperty::SOURCE_FILE: return this->HandleSourceMode(); + case cmProperty::TEST: return this->HandleTestMode(); + case cmProperty::VARIABLE: return this->HandleVariableMode(); + + case cmProperty::CACHED_VARIABLE: + break; // should never happen + } + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand::StoreResult(const char* value) +{ + if(this->InfoType == OutDefined) + { + this->Makefile->AddDefinition(this->Variable.c_str(), value? "1":"0"); + } + else // if(this->InfoType == OutValue) + { + this->Makefile->AddDefinition(this->Variable.c_str(), value); + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand::HandleGlobalMode() +{ + if(!this->Name.empty()) + { + this->SetError("given name for GLOBAL scope."); + return false; + } + + // Get the property. + cmake* cm = this->Makefile->GetCMakeInstance(); + return this->StoreResult(cm->GetProperty(this->PropertyName.c_str())); +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand::HandleDirectoryMode() +{ + // Default to the current directory. + cmMakefile* mf = this->Makefile; + + // Lookup the directory if given. + if(!this->Name.empty()) + { + // Construct the directory name. Interpret relative paths with + // respect to the current directory. + std::string dir = this->Name; + if(!cmSystemTools::FileIsFullPath(dir.c_str())) + { + dir = this->Makefile->GetCurrentDirectory(); + dir += "/"; + dir += this->Name; + } + + // The local generators are associated with collapsed paths. + dir = cmSystemTools::CollapseFullPath(dir.c_str()); + + // Lookup the generator. + if(cmLocalGenerator* lg = + (this->Makefile->GetLocalGenerator() + ->GetGlobalGenerator()->FindLocalGenerator(dir.c_str()))) + { + // Use the makefile for the directory found. + mf = lg->GetMakefile(); + } + else + { + // Could not find the directory. + this->SetError + ("DIRECTORY scope provided but requested directory was not found. " + "This could be because the directory argument was invalid or, " + "it is valid but has not been processed yet."); + return false; + } + } + + // Get the property. + return this->StoreResult(mf->GetProperty(this->PropertyName.c_str())); +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand::HandleTargetMode() +{ + if(this->Name.empty()) + { + this->SetError("not given name for TARGET scope."); + return false; + } + + if(cmTarget* target = this->Makefile->FindTargetToUse(this->Name.c_str())) + { + return this->StoreResult(target->GetProperty(this->PropertyName.c_str())); + } + else + { + cmOStringStream e; + e << "could not find TARGET " << this->Name + << ". Perhaps it has not yet been created."; + this->SetError(e.str().c_str()); + return false; + } +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand::HandleSourceMode() +{ + if(this->Name.empty()) + { + this->SetError("not given name for SOURCE scope."); + return false; + } + + // Get the source file. + if(cmSourceFile* sf = + this->Makefile->GetOrCreateSource(this->Name.c_str())) + { + return + this->StoreResult(sf->GetPropertyForUser(this->PropertyName.c_str())); + } + else + { + cmOStringStream e; + e << "given SOURCE name that could not be found or created: " + << this->Name; + this->SetError(e.str().c_str()); + return false; + } +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand::HandleTestMode() +{ + if(this->Name.empty()) + { + this->SetError("not given name for TEST scope."); + return false; + } + + // Loop over all tests looking for matching names. + std::vector const& tests = *this->Makefile->GetTests(); + for(std::vector::const_iterator ti = tests.begin(); + ti != tests.end(); ++ti) + { + cmTest* test = *ti; + if(test->GetName() == this->Name) + { + return this->StoreResult(test->GetProperty(this->PropertyName.c_str())); + } + } + + // If not found it is an error. + cmOStringStream e; + e << "given TEST name that does not exist: " << this->Name; + this->SetError(e.str().c_str()); + return false; +} + +//---------------------------------------------------------------------------- +bool cmGetPropertyCommand::HandleVariableMode() +{ + if(!this->Name.empty()) + { + this->SetError("given name for VARIABLE scope."); + return false; + } + + return this->StoreResult + (this->Makefile->GetDefinition(this->PropertyName.c_str())); +} diff --git a/CMakeLua/Source/cmGetPropertyCommand.h b/CMakeLua/Source/cmGetPropertyCommand.h new file mode 100755 index 0000000..050df08 --- /dev/null +++ b/CMakeLua/Source/cmGetPropertyCommand.h @@ -0,0 +1,116 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetPropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGetPropertyCommand_h +#define cmGetPropertyCommand_h + +#include "cmCommand.h" + +class cmGetPropertyCommand : public cmCommand +{ +public: + cmGetPropertyCommand(); + + virtual cmCommand* Clone() + { + return new cmGetPropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "get_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get a property."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " get_property(\n" + " |\n" + " SOURCE |\n" + " TEST |\n" + " VARIABLE>\n" + " PROPERTY \n" + " [DEFINED | BRIEF_DOCS | FULL_DOCS])\n" + "Get one property from one object in a scope. " + "The first argument specifies the variable in which to store the " + "result. " + "The second argument determines the scope from which to get the " + "property. It must be one of the following:\n" + "GLOBAL scope is unique and does not accept a name.\n" + "DIRECTORY scope defaults to the current directory but another " + "directory (already processed by CMake) may be named by full or " + "relative path.\n" + "TARGET scope must name one existing target.\n" + "SOURCE scope must name one source file.\n" + "TEST scope must name one existing test.\n" + "VARIABLE scope is unique and does not accept a name.\n" + "The required PROPERTY option is immediately followed by the name " + "of the property to get. " + "If the property is not set an empty value is returned. " + "If the DEFINED option is given the variable is set to a boolean " + "value indicating whether the property has been set. " + "If BRIEF_DOCS or FULL_DOCS is given then the variable is set to " + "a string containing documentation for the requested property. " + "If documentation is requested for a property that has not been " + "defined NOTFOUND is returned."; + } + + cmTypeMacro(cmGetPropertyCommand, cmCommand); +private: + enum OutType { OutValue, OutDefined, OutBriefDoc, OutFullDoc }; + std::string Variable; + std::string Name; + std::string PropertyName; + OutType InfoType; + + // Implementation of result storage. + bool StoreResult(const char* value); + + // Implementation of each property type. + bool HandleGlobalMode(); + bool HandleDirectoryMode(); + bool HandleTargetMode(); + bool HandleSourceMode(); + bool HandleTestMode(); + bool HandleVariableMode(); +}; + +#endif diff --git a/CMakeLua/Source/cmGetSourceFilePropertyCommand.cxx b/CMakeLua/Source/cmGetSourceFilePropertyCommand.cxx new file mode 100644 index 0000000..9986440 --- /dev/null +++ b/CMakeLua/Source/cmGetSourceFilePropertyCommand.cxx @@ -0,0 +1,57 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetSourceFilePropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:21:54 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGetSourceFilePropertyCommand.h" + +#include "cmSourceFile.h" + +// cmSetSourceFilePropertyCommand +bool cmGetSourceFilePropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() != 3 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + const char* var = args[0].c_str(); + const char* file = args[1].c_str(); + cmSourceFile* sf = this->Makefile->GetSource(file); + + // for the location we must create a source file first + if (!sf && args[2] == "LOCATION") + { + sf = this->Makefile->GetOrCreateSource(file); + } + if(sf) + { + if(args[2] == "LANGUAGE") + { + this->Makefile->AddDefinition(var, sf->GetLanguage()); + return true; + } + const char *prop = sf->GetPropertyForUser(args[2].c_str()); + if (prop) + { + this->Makefile->AddDefinition(var, prop); + return true; + } + } + + this->Makefile->AddDefinition(var, "NOTFOUND"); + return true; +} + diff --git a/CMakeLua/Source/cmGetSourceFilePropertyCommand.h b/CMakeLua/Source/cmGetSourceFilePropertyCommand.h new file mode 100644 index 0000000..b893528 --- /dev/null +++ b/CMakeLua/Source/cmGetSourceFilePropertyCommand.h @@ -0,0 +1,69 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetSourceFilePropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGetSourceFilePropertyCommand_h +#define cmGetSourceFilePropertyCommand_h + +#include "cmCommand.h" + +class cmGetSourceFilePropertyCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmGetSourceFilePropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "get_source_file_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get a property for a source file."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " get_source_file_property(VAR file property)\n" + "Get a property from a source file. The value of the property is " + "stored in the variable VAR. If the property is not found, VAR " + "will be set to \"NOTFOUND\". Use set_source_files_properties to set " + "property values. Source file properties usually control how the " + "file is built. One property that is always there is LOCATION"; + } + + cmTypeMacro(cmGetSourceFilePropertyCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmGetTargetPropertyCommand.cxx b/CMakeLua/Source/cmGetTargetPropertyCommand.cxx new file mode 100644 index 0000000..b436582 --- /dev/null +++ b/CMakeLua/Source/cmGetTargetPropertyCommand.cxx @@ -0,0 +1,44 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetTargetPropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGetTargetPropertyCommand.h" + +// cmSetTargetPropertyCommand +bool cmGetTargetPropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() != 3 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::string var = args[0].c_str(); + const char* targetName = args[1].c_str(); + + if(cmTarget* tgt = this->Makefile->FindTargetToUse(targetName)) + { + cmTarget& target = *tgt; + const char *prop = target.GetProperty(args[2].c_str()); + if (prop) + { + this->Makefile->AddDefinition(var.c_str(), prop); + return true; + } + } + this->Makefile->AddDefinition(var.c_str(), (var+"-NOTFOUND").c_str()); + return true; +} + diff --git a/CMakeLua/Source/cmGetTargetPropertyCommand.h b/CMakeLua/Source/cmGetTargetPropertyCommand.h new file mode 100644 index 0000000..d85bf71 --- /dev/null +++ b/CMakeLua/Source/cmGetTargetPropertyCommand.h @@ -0,0 +1,85 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetTargetPropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGetTargetPropertyCommand_h +#define cmGetTargetPropertyCommand_h + +#include "cmCommand.h" + +class cmGetTargetPropertyCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmGetTargetPropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "get_target_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get a property from a target."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " get_target_property(VAR target property)\n" + "Get a property from a target. The value of the property is " + "stored in the variable VAR. If the property is not found, VAR " + "will be set to \"NOTFOUND\". Use set_target_properties to set " + "property values. Properties are usually used to control how " + "a target is built.\n" + "The read-only property \"_LOCATION\" provides the full " + "path to the file on disk that will be created for the target when " + "building under configuration " + "(in upper-case, such as \"DEBUG_LOCATION\"). " + "The read-only property \"LOCATION\" specifies " + "the full path to the file on disk that will be created for the " + "target. The path may contain a build-system-specific portion that " + "is replaced at build time with the configuration getting built " + "(such as \"$(ConfigurationName)\" in VS). " + "This is very useful for executable targets to get " + "the path to the executable file for use in a custom command.\n" + "The read-only property \"TYPE\" returns which type the specified " + "target has (EXECUTABLE, STATIC_LIBRARY, SHARED_LIBRARY, " + "MODULE_LIBRARY, UTILITY, INSTALL_FILES or INSTALL_PROGRAMS). " + "This command can get properties for any target so far created. " + "The targets do not need to be in the current CMakeLists.txt file."; + } + + cmTypeMacro(cmGetTargetPropertyCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmGetTestPropertyCommand.cxx b/CMakeLua/Source/cmGetTestPropertyCommand.cxx new file mode 100644 index 0000000..529b87b --- /dev/null +++ b/CMakeLua/Source/cmGetTestPropertyCommand.cxx @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetTestPropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGetTestPropertyCommand.h" + +#include "cmake.h" +#include "cmTest.h" + +// cmGetTestPropertyCommand +bool cmGetTestPropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 3 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::string testName = args[0]; + std::string var = args[2]; + cmTest *test = this->Makefile->GetTest(testName.c_str()); + if (test) + { + const char *prop = test->GetProperty(args[1].c_str()); + if (prop) + { + this->Makefile->AddDefinition(var.c_str(), prop); + return true; + } + } + this->Makefile->AddDefinition(var.c_str(), "NOTFOUND"); + return true; +} + diff --git a/CMakeLua/Source/cmGetTestPropertyCommand.h b/CMakeLua/Source/cmGetTestPropertyCommand.h new file mode 100644 index 0000000..f6556ec --- /dev/null +++ b/CMakeLua/Source/cmGetTestPropertyCommand.h @@ -0,0 +1,68 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGetTestPropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGetTestPropertyCommand_h +#define cmGetTestPropertyCommand_h + +#include "cmCommand.h" + +class cmGetTestPropertyCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmGetTestPropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "get_test_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Get a property of the test."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " get_test_property(test VAR property)\n" + "Get a property from the Test. The value of the property is " + "stored in the variable VAR. If the property is not found, " + "CMake will report an error. For a list of standard properties " + "you can type cmake --help-property-list"; + } + + cmTypeMacro(cmGetTestPropertyCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmGlobalBorlandMakefileGenerator.cxx b/CMakeLua/Source/cmGlobalBorlandMakefileGenerator.cxx new file mode 100644 index 0000000..ddbe219 --- /dev/null +++ b/CMakeLua/Source/cmGlobalBorlandMakefileGenerator.cxx @@ -0,0 +1,68 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalBorlandMakefileGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.28 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalBorlandMakefileGenerator.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmake.h" + +cmGlobalBorlandMakefileGenerator::cmGlobalBorlandMakefileGenerator() +{ + this->EmptyRuleHackDepends = "NUL"; + this->FindMakeProgramFile = "CMakeBorlandFindMake.cmake"; + this->ForceUnixPaths = false; + this->ToolSupportsColor = true; + this->UseLinkScript = false; +} + + +void cmGlobalBorlandMakefileGenerator +::EnableLanguage(std::vectorconst& l, + cmMakefile *mf, + bool optional) +{ + std::string outdir = this->CMakeInstance->GetStartOutputDirectory(); + mf->AddDefinition("BORLAND", "1"); + mf->AddDefinition("CMAKE_GENERATOR_CC", "bcc32"); + mf->AddDefinition("CMAKE_GENERATOR_CXX", "bcc32"); + this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalBorlandMakefileGenerator::CreateLocalGenerator() +{ + cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3; + lg->SetIncludeDirective("!include"); + lg->SetWindowsShell(true); + lg->SetDefineWindowsNULL(true); + lg->SetMakefileVariableSize(32); + lg->SetPassMakeflags(true); + lg->SetGlobalGenerator(this); + lg->SetUnixCD(false); + lg->SetMakeCommandEscapeTargetTwice(true); + lg->SetBorlandMakeCurlyHack(true); + return lg; +} + + +//---------------------------------------------------------------------------- +void cmGlobalBorlandMakefileGenerator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Borland makefiles."; + entry.Full = ""; +} diff --git a/CMakeLua/Source/cmGlobalBorlandMakefileGenerator.h b/CMakeLua/Source/cmGlobalBorlandMakefileGenerator.h new file mode 100644 index 0000000..ac88dc1 --- /dev/null +++ b/CMakeLua/Source/cmGlobalBorlandMakefileGenerator.h @@ -0,0 +1,53 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalBorlandMakefileGenerator.h,v $ + Language: C++ + Date: $Date: 2007/06/28 13:09:26 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalBorlandMakefileGenerator_h +#define cmGlobalBorlandMakefileGenerator_h + +#include "cmGlobalNMakeMakefileGenerator.h" + +/** \class cmGlobalBorlandMakefileGenerator + * \brief Write a Borland makefiles. + * + * cmGlobalBorlandMakefileGenerator manages nmake build process for a tree + */ +class cmGlobalBorlandMakefileGenerator : public cmGlobalNMakeMakefileGenerator +{ +public: + cmGlobalBorlandMakefileGenerator(); + static cmGlobalGenerator* New() + { return new cmGlobalBorlandMakefileGenerator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalBorlandMakefileGenerator::GetActualName();} + static const char* GetActualName() {return "Borland Makefiles";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalGenerator.cxx b/CMakeLua/Source/cmGlobalGenerator.cxx new file mode 100644 index 0000000..49c5558 --- /dev/null +++ b/CMakeLua/Source/cmGlobalGenerator.cxx @@ -0,0 +1,1992 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 21:05:40 $ + Version: $Revision: 1.224 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#if defined(_WIN32) && !defined(__CYGWIN__) +#include "windows.h" // this must be first to define GetCurrentDirectory +#endif + +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmExternalMakefileProjectGenerator.h" +#include "cmake.h" +#include "cmMakefile.h" +#include "cmSourceFile.h" +#include "cmVersion.h" +#include "cmExportInstallFileGenerator.h" + +#include + +#include // required for atof + +#include + +cmGlobalGenerator::cmGlobalGenerator() +{ + // By default the .SYMBOLIC dependency is not needed on symbolic rules. + this->NeedSymbolicMark = false; + + // by default use the native paths + this->ForceUnixPaths = false; + + // By default do not try to support color. + this->ToolSupportsColor = false; + + // By default do not use link scripts. + this->UseLinkScript = false; + + // Whether an install target is needed. + this->InstallTargetEnabled = false; + + // how long to let try compiles run + this->TryCompileTimeout = 0; + + this->ExtraGenerator = 0; + this->CurrentLocalGenerator = 0; +} + +cmGlobalGenerator::~cmGlobalGenerator() +{ + // Delete any existing cmLocalGenerators + for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i) + { + delete this->LocalGenerators[i]; + } + this->LocalGenerators.clear(); + + if (this->ExtraGenerator) + { + delete this->ExtraGenerator; + } + + for (std::map >::iterator + setIt = this->ExportSets.begin(); + setIt != this->ExportSets.end(); + ++setIt) + { + for (unsigned int i = 0; i < setIt->second.size(); ++i) + { + delete setIt->second[i]; + } + } +} + +// Find the make program for the generator, required for try compiles +void cmGlobalGenerator::FindMakeProgram(cmMakefile* mf) +{ + if(this->FindMakeProgramFile.size() == 0) + { + cmSystemTools::Error( + "Generator implementation error, " + "all generators must specify this->FindMakeProgramFile"); + } + if(!mf->GetDefinition("CMAKE_MAKE_PROGRAM") + || cmSystemTools::IsOff(mf->GetDefinition("CMAKE_MAKE_PROGRAM"))) + { + std::string setMakeProgram = + mf->GetModulesFile(this->FindMakeProgramFile.c_str()); + if(setMakeProgram.size()) + { + mf->ReadListFile(0, setMakeProgram.c_str()); + } + } + if(!mf->GetDefinition("CMAKE_MAKE_PROGRAM") + || cmSystemTools::IsOff(mf->GetDefinition("CMAKE_MAKE_PROGRAM"))) + { + cmOStringStream err; + err << "CMake was unable to find a build program corresponding to \"" + << this->GetName() << "\". CMAKE_MAKE_PROGRAM is not set. You " + << "probably need to select a different build tool."; + cmSystemTools::Error(err.str().c_str()); + cmSystemTools::SetFatalErrorOccured(); + return; + } + std::string makeProgram = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + // if there are spaces in the make program use short path + // but do not short path the actual program name, as + // this can cause trouble with VSExpress + if(makeProgram.find(' ') != makeProgram.npos) + { + std::string dir; + std::string file; + cmSystemTools::SplitProgramPath(makeProgram.c_str(), + dir, file); + std::string saveFile = file; + cmSystemTools::GetShortPath(makeProgram.c_str(), makeProgram); + cmSystemTools::SplitProgramPath(makeProgram.c_str(), + dir, file); + makeProgram = dir; + makeProgram += "/"; + makeProgram += saveFile; + mf->AddCacheDefinition("CMAKE_MAKE_PROGRAM", makeProgram.c_str(), + "make program", + cmCacheManager::FILEPATH); + } + + if(makeProgram.find("xcodebuild") != makeProgram.npos) + { + // due to the text file busy /bin/sh problem with xcodebuild + // use the cmakexbuild wrapper instead. This program + // will run xcodebuild and if it sees the error text file busy + // it will stop forwarding output, and let the build finish. + // Then it will retry the build. It will continue this + // untill no text file busy errors occur. + std::string cmakexbuild = + this->CMakeInstance->GetCacheManager()->GetCacheValue("CMAKE_COMMAND"); + cmakexbuild = cmakexbuild.substr(0, cmakexbuild.length()-5); + cmakexbuild += "cmakexbuild"; + + mf->AddCacheDefinition("CMAKE_MAKE_PROGRAM", + cmakexbuild.c_str(), + "make program", + cmCacheManager::FILEPATH); + } +} + +// enable the given language +// +// The following files are loaded in this order: +// +// First figure out what OS we are running on: +// +// CMakeSystem.cmake - configured file created by CMakeDetermineSystem.cmake +// CMakeDetermineSystem.cmake - figure out os info and create +// CMakeSystem.cmake IF CMAKE_SYSTEM +// not set +// CMakeSystem.cmake - configured file created by +// CMakeDetermineSystem.cmake IF CMAKE_SYSTEM_LOADED + +// Next try and enable all languages found in the languages vector +// +// FOREACH LANG in languages +// CMake(LANG)Compiler.cmake - configured file create by +// CMakeDetermine(LANG)Compiler.cmake +// CMakeDetermine(LANG)Compiler.cmake - Finds compiler for LANG and +// creates CMake(LANG)Compiler.cmake +// CMake(LANG)Compiler.cmake - configured file created by +// CMakeDetermine(LANG)Compiler.cmake +// +// CMakeSystemSpecificInformation.cmake +// - includes Platform/${CMAKE_SYSTEM_NAME}.cmake +// may use compiler stuff + +// FOREACH LANG in languages +// CMake(LANG)Information.cmake +// - loads Platform/${CMAKE_SYSTEM_NAME}-${COMPILER}.cmake +// CMakeTest(LANG)Compiler.cmake +// - Make sure the compiler works with a try compile if +// CMakeDetermine(LANG) was loaded +// +// Now load a few files that can override values set in any of the above +// (PROJECTNAME)Compatibility.cmake +// - load any backwards compatibility stuff for current project +// ${CMAKE_USER_MAKE_RULES_OVERRIDE} +// - allow users a chance to override system variables +// +// + +void +cmGlobalGenerator::EnableLanguage(std::vectorconst& languages, + cmMakefile *mf, bool) +{ + if(languages.size() == 0) + { + cmSystemTools::Error("EnableLanguage must have a lang specified!"); + cmSystemTools::SetFatalErrorOccured(); + return; + } + mf->AddDefinition("RUN_CONFIGURE", true); + std::string rootBin = mf->GetHomeOutputDirectory(); + rootBin += cmake::GetCMakeFilesDirectory(); + + // If the configuration files path has been set, + // then we are in a try compile and need to copy the enable language + // files from the parent cmake bin dir, into the try compile bin dir + if(this->ConfiguredFilesPath.size()) + { + for(std::vector::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + if(*l == "NONE") + { + this->SetLanguageEnabled("NONE", mf); + break; + } + } + rootBin = this->ConfiguredFilesPath; + } + + // set the dir for parent files so they can be used by modules + mf->AddDefinition("CMAKE_PLATFORM_ROOT_BIN",rootBin.c_str()); + + // find and make sure CMAKE_MAKE_PROGRAM is defined + this->FindMakeProgram(mf); + + // try and load the CMakeSystem.cmake if it is there + std::string fpath = rootBin; + if(!mf->GetDefinition("CMAKE_SYSTEM_LOADED")) + { + fpath += "/CMakeSystem.cmake"; + if(cmSystemTools::FileExists(fpath.c_str())) + { + mf->ReadListFile(0,fpath.c_str()); + } + } + // Load the CMakeDetermineSystem.cmake file and find out + // what platform we are running on + if (!mf->GetDefinition("CMAKE_SYSTEM")) + { +#if defined(_WIN32) && !defined(__CYGWIN__) + /* Windows version number data. */ + OSVERSIONINFO osvi; + ZeroMemory(&osvi, sizeof(osvi)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx (&osvi); + cmOStringStream windowsVersionString; + windowsVersionString << osvi.dwMajorVersion << "." << osvi.dwMinorVersion; + windowsVersionString.str(); + mf->AddDefinition("CMAKE_HOST_SYSTEM_VERSION", + windowsVersionString.str().c_str()); +#endif + // Read the DetermineSystem file + std::string systemFile = mf->GetModulesFile("CMakeDetermineSystem.cmake"); + mf->ReadListFile(0, systemFile.c_str()); + // load the CMakeSystem.cmake from the binary directory + // this file is configured by the CMakeDetermineSystem.cmake file + fpath = rootBin; + fpath += "/CMakeSystem.cmake"; + mf->ReadListFile(0,fpath.c_str()); + } + std::map needTestLanguage; + std::map needSetLanguageEnabledMaps; + // foreach language + // load the CMakeDetermine(LANG)Compiler.cmake file to find + // the compiler + + for(std::vector::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + const char* lang = l->c_str(); + needSetLanguageEnabledMaps[lang] = false; + if(*l == "NONE") + { + this->SetLanguageEnabled("NONE", mf); + continue; + } + std::string loadedLang = "CMAKE_"; + loadedLang += lang; + loadedLang += "_COMPILER_LOADED"; + // If the existing build tree was already configured with this + // version of CMake then try to load the configured file first + // to avoid duplicate compiler tests. + unsigned int cacheMajor = mf->GetCacheMajorVersion(); + unsigned int cacheMinor = mf->GetCacheMinorVersion(); + unsigned int selfMajor = cmVersion::GetMajorVersion(); + unsigned int selfMinor = cmVersion::GetMinorVersion(); + if((this->CMakeInstance->GetIsInTryCompile() || + (selfMajor == cacheMajor && selfMinor == cacheMinor)) + && !mf->GetDefinition(loadedLang.c_str())) + { + fpath = rootBin; + fpath += "/CMake"; + fpath += lang; + fpath += "Compiler.cmake"; + if(cmSystemTools::FileExists(fpath.c_str())) + { + if(!mf->ReadListFile(0,fpath.c_str())) + { + cmSystemTools::Error("Could not find cmake module file:", + fpath.c_str()); + } + // if this file was found then the language was already determined + // to be working + needTestLanguage[lang] = false; + this->SetLanguageEnabledFlag(lang, mf); + needSetLanguageEnabledMaps[lang] = true; + // this can only be called after loading CMake(LANG)Compiler.cmake + } + } + + if(!this->GetLanguageEnabled(lang) ) + { + if (this->CMakeInstance->GetIsInTryCompile()) + { + cmSystemTools::Error("This should not have happen. " + "If you see this message, you are probably " + "using a broken CMakeLists.txt file or a " + "problematic release of CMake"); + } + // if the CMake(LANG)Compiler.cmake file was not found then + // load CMakeDetermine(LANG)Compiler.cmake + std::string determineCompiler = "CMakeDetermine"; + determineCompiler += lang; + determineCompiler += "Compiler.cmake"; + std::string determineFile = + mf->GetModulesFile(determineCompiler.c_str()); + if(!mf->ReadListFile(0,determineFile.c_str())) + { + cmSystemTools::Error("Could not find cmake module file:", + determineFile.c_str()); + } + needTestLanguage[lang] = true; + // Some generators like visual studio should not use the env variables + // So the global generator can specify that in this variable + if(!mf->GetDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV")) + { + // put ${CMake_(LANG)_COMPILER_ENV_VAR}=${CMAKE_(LANG)_COMPILER + // into the environment, in case user scripts want to run + // configure, or sub cmakes + std::string compilerName = "CMAKE_"; + compilerName += lang; + compilerName += "_COMPILER"; + std::string compilerEnv = "CMAKE_"; + compilerEnv += lang; + compilerEnv += "_COMPILER_ENV_VAR"; + std::string envVar = mf->GetRequiredDefinition(compilerEnv.c_str()); + std::string envVarValue = + mf->GetRequiredDefinition(compilerName.c_str()); + std::string env = envVar; + env += "="; + env += envVarValue; + cmSystemTools::PutEnv(env.c_str()); + } + + // if determineLanguage was called then load the file it + // configures CMake(LANG)Compiler.cmake + fpath = rootBin; + fpath += "/CMake"; + fpath += lang; + fpath += "Compiler.cmake"; + if(!mf->ReadListFile(0,fpath.c_str())) + { + cmSystemTools::Error("Could not find cmake module file:", + fpath.c_str()); + } + this->SetLanguageEnabledFlag(lang, mf); + needSetLanguageEnabledMaps[lang] = true; + // this can only be called after loading CMake(LANG)Compiler.cmake + // the language must be enabled for try compile to work, but we do + // not know if it is a working compiler yet so set the test language + // flag + needTestLanguage[lang] = true; + } // end if(!this->GetLanguageEnabled(lang) ) + } // end loop over languages + + // **** Load the system specific information if not yet loaded + if (!mf->GetDefinition("CMAKE_SYSTEM_SPECIFIC_INFORMATION_LOADED")) + { + fpath = mf->GetModulesFile("CMakeSystemSpecificInformation.cmake"); + if(!mf->ReadListFile(0,fpath.c_str())) + { + cmSystemTools::Error("Could not find cmake module file:", + fpath.c_str()); + } + } + // loop over languages again loading CMake(LANG)Information.cmake + // + for(std::vector::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + const char* lang = l->c_str(); + if(*l == "NONE") + { + this->SetLanguageEnabled("NONE", mf); + continue; + } + std::string langLoadedVar = "CMAKE_"; + langLoadedVar += lang; + langLoadedVar += "_INFORMATION_LOADED"; + if (!mf->GetDefinition(langLoadedVar.c_str())) + { + fpath = "CMake"; + fpath += lang; + fpath += "Information.cmake"; + fpath = mf->GetModulesFile(fpath.c_str()); + if(!mf->ReadListFile(0,fpath.c_str())) + { + cmSystemTools::Error("Could not find cmake module file:", + fpath.c_str()); + } + } + if (needSetLanguageEnabledMaps[lang]) + { + this->SetLanguageEnabledMaps(lang, mf); + } + + // Test the compiler for the language just setup + // At this point we should have enough info for a try compile + // which is used in the backward stuff + // If the language is untested then test it now with a try compile. + if(needTestLanguage[lang]) + { + if (!this->CMakeInstance->GetIsInTryCompile()) + { + std::string testLang = "CMakeTest"; + testLang += lang; + testLang += "Compiler.cmake"; + std::string ifpath = mf->GetModulesFile(testLang.c_str()); + if(!mf->ReadListFile(0,ifpath.c_str())) + { + cmSystemTools::Error("Could not find cmake module file:", + ifpath.c_str()); + } + std::string compilerWorks = "CMAKE_"; + compilerWorks += lang; + compilerWorks += "_COMPILER_WORKS"; + // if the compiler did not work, then remove the + // CMake(LANG)Compiler.cmake file so that it will get tested the + // next time cmake is run + if(!mf->IsOn(compilerWorks.c_str())) + { + fpath = rootBin; + fpath += "/CMake"; + fpath += lang; + fpath += "Compiler.cmake"; + cmSystemTools::RemoveFile(fpath.c_str()); + } + else + { + // load backwards compatibility stuff for C and CXX + // for old versions of CMake ListFiles C and CXX had some + // backwards compatibility files they have to load + // These files have a bunch of try compiles in them so + // should only be done + const char* versionValue + = mf->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + if (atof(versionValue) <= 1.4) + { + if(strcmp(lang, "C") == 0) + { + ifpath = + mf->GetModulesFile("CMakeBackwardCompatibilityC.cmake"); + mf->ReadListFile(0,ifpath.c_str()); + } + if(strcmp(lang, "CXX") == 0) + { + ifpath = + mf->GetModulesFile("CMakeBackwardCompatibilityCXX.cmake"); + mf->ReadListFile(0,ifpath.c_str()); + } + } + } + } // end if in try compile + } // end need test language + } // end for each language + + // Now load files that can override any settings on the platform or for + // the project First load the project compatibility file if it is in + // cmake + std::string projectCompatibility = mf->GetDefinition("CMAKE_ROOT"); + projectCompatibility += "/Modules/"; + projectCompatibility += mf->GetSafeDefinition("PROJECT_NAME"); + projectCompatibility += "Compatibility.cmake"; + if(cmSystemTools::FileExists(projectCompatibility.c_str())) + { + mf->ReadListFile(0,projectCompatibility.c_str()); + } +} + +//---------------------------------------------------------------------------- +const char* +cmGlobalGenerator::GetLanguageOutputExtension(cmSourceFile const& source) +{ + if(const char* lang = source.GetLanguage()) + { + if(this->LanguageToOutputExtension.count(lang) > 0) + { + return this->LanguageToOutputExtension[lang].c_str(); + } + } + else + { + // if no language is found then check to see if it is already an + // ouput extension for some language. In that case it should be ignored + // and in this map, so it will not be compiled but will just be used. + std::string const& ext = source.GetExtension(); + if(!ext.empty()) + { + if(this->OutputExtensions.count(ext)) + { + return ext.c_str(); + } + } + } + return ""; +} + + +const char* cmGlobalGenerator::GetLanguageFromExtension(const char* ext) +{ + // if there is an extension and it starts with . then move past the + // . because the extensions are not stored with a . in the map + if(ext && *ext == '.') + { + ++ext; + } + if(this->ExtensionToLanguage.count(ext) > 0) + { + return this->ExtensionToLanguage[ext].c_str(); + } + return 0; +} + +/* SetLanguageEnabled() is now split in two parts: +at first the enabled-flag is set. This can then be used in EnabledLanguage() +for checking whether the language is already enabled. After setting this +flag still the values from the cmake variables have to be copied into the +internal maps, this is done in SetLanguageEnabledMaps() which is called +after the system- and compiler specific files have been loaded. +*/ +void cmGlobalGenerator::SetLanguageEnabled(const char* l, cmMakefile* mf) +{ + this->SetLanguageEnabledFlag(l, mf); + this->SetLanguageEnabledMaps(l, mf); +} + +void cmGlobalGenerator::SetLanguageEnabledFlag(const char* l, cmMakefile*) +{ + this->LanguageEnabled[l] = true; +} + +void cmGlobalGenerator::SetLanguageEnabledMaps(const char* l, cmMakefile* mf) +{ + // use LanguageToLinkerPreference to detect whether this functions has + // run before + if (this->LanguageToLinkerPreference.find(l) != + this->LanguageToLinkerPreference.end()) + { + return; + } + + std::string linkerPrefVar = std::string("CMAKE_") + + std::string(l) + std::string("_LINKER_PREFERENCE"); + const char* linkerPref = mf->GetDefinition(linkerPrefVar.c_str()); + int preference = 0; + if(linkerPref) + { + if (sscanf(linkerPref, "%d", &preference)!=1) + { + // backward compatibility: before 2.6 LINKER_PREFERENCE + // was either "None" or "Prefered", and only the first character was + // tested. So if there is a custom language out there and it is + // "Prefered", set its preference high + if (linkerPref[0]=='P') + { + preference = 100; + } + else + { + preference = 0; + } + } + } + + if (preference < 0) + { + std::string msg = linkerPrefVar; + msg += " is negative, adjusting it to 0"; + cmSystemTools::Message(msg.c_str(), "Warning"); + preference = 0; + } + + this->LanguageToLinkerPreference[l] = preference; + + std::string outputExtensionVar = std::string("CMAKE_") + + std::string(l) + std::string("_OUTPUT_EXTENSION"); + const char* outputExtension = mf->GetDefinition(outputExtensionVar.c_str()); + if(outputExtension) + { + this->LanguageToOutputExtension[l] = outputExtension; + this->OutputExtensions[outputExtension] = outputExtension; + if(outputExtension[0] == '.') + { + this->OutputExtensions[outputExtension+1] = outputExtension+1; + } + } + + std::string extensionsVar = std::string("CMAKE_") + + std::string(l) + std::string("_SOURCE_FILE_EXTENSIONS"); + std::string ignoreExtensionsVar = std::string("CMAKE_") + + std::string(l) + std::string("_IGNORE_EXTENSIONS"); + std::string ignoreExts = mf->GetSafeDefinition(ignoreExtensionsVar.c_str()); + std::string exts = mf->GetSafeDefinition(extensionsVar.c_str()); + std::vector extensionList; + cmSystemTools::ExpandListArgument(exts, extensionList); + for(std::vector::iterator i = extensionList.begin(); + i != extensionList.end(); ++i) + { + this->ExtensionToLanguage[*i] = l; + } + cmSystemTools::ExpandListArgument(ignoreExts, extensionList); + for(std::vector::iterator i = extensionList.begin(); + i != extensionList.end(); ++i) + { + this->IgnoreExtensions[*i] = true; + } + +} + +bool cmGlobalGenerator::IgnoreFile(const char* l) +{ + if(this->GetLanguageFromExtension(l)) + { + return false; + } + return (this->IgnoreExtensions.count(l) > 0); +} + +bool cmGlobalGenerator::GetLanguageEnabled(const char* l) const +{ + return (this->LanguageEnabled.find(l)!= this->LanguageEnabled.end()); +} + +void cmGlobalGenerator::ClearEnabledLanguages() +{ + this->LanguageEnabled.clear(); +} + +bool cmGlobalGenerator::IsDependedOn(const char* project, + cmTarget* targetIn) +{ + // Get all local gens for this project + std::vector* gens = &this->ProjectMap[project]; + // loop over local gens and get the targets for each one + for(unsigned int i = 0; i < gens->size(); ++i) + { + cmTargets& targets = (*gens)[i]->GetMakefile()->GetTargets(); + for (cmTargets::iterator l = targets.begin(); + l != targets.end(); l++) + { + cmTarget& target = l->second; + std::set::const_iterator pos = + target.GetUtilities().find(targetIn->GetName()); + if(pos != target.GetUtilities().end()) + { + return true; + } + } + } + return false; +} + +void cmGlobalGenerator::Configure() +{ + this->FirstTimeProgress = 0.0f; + // Delete any existing cmLocalGenerators + unsigned int i; + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + delete this->LocalGenerators[i]; + } + this->LocalGenerators.clear(); + this->TargetDependencies.clear(); + this->TotalTargets.clear(); + this->LocalGeneratorToTargetMap.clear(); + this->ProjectMap.clear(); + + // start with this directory + cmLocalGenerator *lg = this->CreateLocalGenerator(); + this->LocalGenerators.push_back(lg); + + // set the Start directories + lg->GetMakefile()->SetStartDirectory + (this->CMakeInstance->GetStartDirectory()); + lg->GetMakefile()->SetStartOutputDirectory + (this->CMakeInstance->GetStartOutputDirectory()); + lg->GetMakefile()->MakeStartDirectoriesCurrent(); + + // now do it + lg->Configure(); + + // update the cache entry for the number of local generators, this is used + // for progress + char num[100]; + sprintf(num,"%d",static_cast(this->LocalGenerators.size())); + this->GetCMakeInstance()->AddCacheEntry + ("CMAKE_NUMBER_OF_LOCAL_GENERATORS", num, + "number of local generators", cmCacheManager::INTERNAL); + + // check for link libraries and include directories containing "NOTFOUND" + // and for infinite loops + this->CheckLocalGenerators(); + + // at this point this->LocalGenerators has been filled, + // so create the map from project name to vector of local generators + this->FillProjectMap(); + + if ( !this->CMakeInstance->GetScriptMode() ) + { + this->CMakeInstance->UpdateProgress("Configuring done", -1); + } +} + +void cmGlobalGenerator::Generate() +{ + // Some generators track files replaced during the Generate. + // Start with an empty vector: + this->FilesReplacedDuringGenerate.clear(); + + // For each existing cmLocalGenerator + unsigned int i; + + // Consolidate global targets + cmTargets globalTargets; + this->CreateDefaultGlobalTargets(&globalTargets); + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + cmTargets* targets = + &(this->LocalGenerators[i]->GetMakefile()->GetTargets()); + cmTargets::iterator tarIt; + for ( tarIt = targets->begin(); tarIt != targets->end(); ++ tarIt ) + { + if ( tarIt->second.GetType() == cmTarget::GLOBAL_TARGET ) + { + globalTargets[tarIt->first] = tarIt->second; + } + } + } + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + cmMakefile* mf = this->LocalGenerators[i]->GetMakefile(); + cmTargets* targets = &(mf->GetTargets()); + cmTargets::iterator tit; + for ( tit = globalTargets.begin(); tit != globalTargets.end(); ++ tit ) + { + (*targets)[tit->first] = tit->second; + (*targets)[tit->first].SetMakefile(mf); + } + } + + // Add generator specific helper commands + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + this->LocalGenerators[i]->AddHelperCommands(); + } + + // Trace the dependencies, after that no custom commands should be added + // because their dependencies might not be handled correctly + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + this->LocalGenerators[i]->TraceDependencies(); + } + + // Compute the manifest of main targets generated. + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + this->LocalGenerators[i]->GenerateTargetManifest(); + } + + // Create a map from local generator to the complete set of targets + // it builds by default. + this->FillLocalGeneratorToTargetMap(); + + // Generate project files + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + this->SetCurrentLocalGenerator(this->LocalGenerators[i]); + this->LocalGenerators[i]->Generate(); + this->LocalGenerators[i]->GenerateInstallRules(); + this->LocalGenerators[i]->GenerateTestFiles(); + this->CMakeInstance->UpdateProgress("Generating", + (i+1.0f)/this->LocalGenerators.size()); + } + this->SetCurrentLocalGenerator(0); + + if (this->ExtraGenerator != 0) + { + this->ExtraGenerator->Generate(); + } + + this->CMakeInstance->UpdateProgress("Generating done", -1); +} + +void cmGlobalGenerator::CheckLocalGenerators() +{ + std::map notFoundMap; +// std::set notFoundMap; + // after it is all done do a ConfigureFinalPass + cmCacheManager* manager = 0; + for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i) + { + manager = this->LocalGenerators[i]->GetMakefile()->GetCacheManager(); + this->LocalGenerators[i]->ConfigureFinalPass(); + const cmTargets & targets = + this->LocalGenerators[i]->GetMakefile()->GetTargets(); + for (cmTargets::const_iterator l = targets.begin(); + l != targets.end(); l++) + { + const cmTarget::LinkLibraryVectorType& libs=l->second.GetLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator lib = libs.begin(); + lib != libs.end(); ++lib) + { + if(lib->first.size() > 9 && + cmSystemTools::IsNOTFOUND(lib->first.c_str())) + { + std::string varName = lib->first.substr(0, lib->first.size()-9); + cmCacheManager::CacheIterator it = + manager->GetCacheIterator(varName.c_str()); + if(it.GetPropertyAsBool("ADVANCED")) + { + varName += " (ADVANCED)"; + } + std::string text = notFoundMap[varName]; + text += "\n linked by target \""; + text += l->second.GetName(); + text += "\" in directory "; + text+=this->LocalGenerators[i]->GetMakefile()->GetCurrentDirectory(); + notFoundMap[varName] = text; + } + } + } + const std::vector& incs = + this->LocalGenerators[i]->GetMakefile()->GetIncludeDirectories(); + + for( std::vector::const_iterator incDir = incs.begin(); + incDir != incs.end(); ++incDir) + { + if(incDir->size() > 9 && + cmSystemTools::IsNOTFOUND(incDir->c_str())) + { + std::string varName = incDir->substr(0, incDir->size()-9); + cmCacheManager::CacheIterator it = + manager->GetCacheIterator(varName.c_str()); + if(it.GetPropertyAsBool("ADVANCED")) + { + varName += " (ADVANCED)"; + } + std::string text = notFoundMap[varName]; + text += "\n used as include directory in directory "; + text += this->LocalGenerators[i]->GetMakefile()->GetCurrentDirectory(); + notFoundMap[varName] = text; + } + } + this->CMakeInstance->UpdateProgress + ("Configuring", 0.9f+0.1f*(i+1.0f)/this->LocalGenerators.size()); + this->LocalGenerators[i]->GetMakefile()->CheckInfiniteLoops(); + } + + if(notFoundMap.size()) + { + std::string notFoundVars; + for(std::map::const_iterator + ii = notFoundMap.begin(); + ii != notFoundMap.end(); + ++ii) + { + notFoundVars += ii->first; + notFoundVars += ii->second; + notFoundVars += "\n"; + } + cmSystemTools::Error("The following variables are used in this project, " + "but they are set to NOTFOUND.\n" + "Please set them or make sure they are set and " + "tested correctly in the CMake files:\n", + notFoundVars.c_str()); + } +} + +int cmGlobalGenerator::TryCompile(const char *srcdir, const char *bindir, + const char *projectName, + const char *target, + std::string *output, cmMakefile *mf) +{ + // if this is not set, then this is a first time configure + // and there is a good chance that the try compile stuff will + // take the bulk of the time, so try and guess some progress + // by getting closer and closer to 100 without actually getting there. + if (!this->CMakeInstance->GetCacheManager()->GetCacheValue + ("CMAKE_NUMBER_OF_LOCAL_GENERATORS")) + { + // If CMAKE_NUMBER_OF_LOCAL_GENERATORS is not set + // we are in the first time progress and we have no + // idea how long it will be. So, just move 1/10th of the way + // there each time, and don't go over 95% + this->FirstTimeProgress += ((1.0f - this->FirstTimeProgress) /30.0f); + if(this->FirstTimeProgress > 0.95f) + { + this->FirstTimeProgress = 0.95f; + } + this->CMakeInstance->UpdateProgress("Configuring", + this->FirstTimeProgress); + } + + std::string makeCommand = this->CMakeInstance-> + GetCacheManager()->GetCacheValue("CMAKE_MAKE_PROGRAM"); + if(makeCommand.size() == 0) + { + cmSystemTools::Error( + "Generator cannot find the appropriate make command."); + return 1; + } + + std::string newTarget; + if (target && strlen(target)) + { + newTarget += target; +#if 0 +#if defined(_WIN32) || defined(__CYGWIN__) + std::string tmp = target; + // if the target does not already end in . something + // then assume .exe + if(tmp.size() < 4 || tmp[tmp.size()-4] != '.') + { + newTarget += ".exe"; + } +#endif // WIN32 +#endif + } + const char* config = mf->GetDefinition("CMAKE_TRY_COMPILE_CONFIGURATION"); + return this->Build(srcdir,bindir,projectName, + newTarget.c_str(), + output,makeCommand.c_str(),config,false,true, + this->TryCompileTimeout); +} + +std::string cmGlobalGenerator +::GenerateBuildCommand(const char* makeProgram, const char *projectName, + const char* additionalOptions, const char *targetName, + const char* config, bool ignoreErrors, bool) +{ + // Project name and config are not used yet. + (void)projectName; + (void)config; + + std::string makeCommand = + cmSystemTools::ConvertToUnixOutputPath(makeProgram); + + // Since we have full control over the invocation of nmake, let us + // make it quiet. + if ( strcmp(this->GetName(), "NMake Makefiles") == 0 ) + { + makeCommand += " /NOLOGO "; + } + if ( ignoreErrors ) + { + makeCommand += " -i"; + } + if ( additionalOptions ) + { + makeCommand += " "; + makeCommand += additionalOptions; + } + if ( targetName ) + { + makeCommand += " "; + makeCommand += targetName; + } + return makeCommand; +} + +int cmGlobalGenerator::Build( + const char *, const char *bindir, + const char *projectName, const char *target, + std::string *output, + const char *makeCommandCSTR, + const char *config, + bool clean, bool fast, + double timeout) +{ + /** + * Run an executable command and put the stdout in output. + */ + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(bindir); + if(output) + { + *output += "Change Dir: "; + *output += bindir; + *output += "\n"; + } + + int retVal; + bool hideconsole = cmSystemTools::GetRunCommandHideConsole(); + cmSystemTools::SetRunCommandHideConsole(true); + std::string outputBuffer; + std::string* outputPtr = 0; + if(output) + { + outputPtr = &outputBuffer; + } + + // should we do a clean first? + if (clean) + { + std::string cleanCommand = + this->GenerateBuildCommand(makeCommandCSTR, projectName, + 0, "clean", config, false, fast); + if(output) + { + *output += "\nRun Clean Command:"; + *output += cleanCommand; + *output += "\n"; + } + + if (!cmSystemTools::RunSingleCommand(cleanCommand.c_str(), outputPtr, + &retVal, 0, false, timeout)) + { + cmSystemTools::SetRunCommandHideConsole(hideconsole); + cmSystemTools::Error("Generator: execution of make clean failed."); + if (output) + { + *output += *outputPtr; + *output += "\nGenerator: execution of make clean failed.\n"; + } + + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + return 1; + } + if (output) + { + *output += *outputPtr; + } + } + + // now build + std::string makeCommand = + this->GenerateBuildCommand(makeCommandCSTR, projectName, + 0, target, config, false, fast); + if(output) + { + *output += "\nRun Build Command:"; + *output += makeCommand; + *output += "\n"; + } + + if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), outputPtr, + &retVal, 0, false, timeout)) + { + cmSystemTools::SetRunCommandHideConsole(hideconsole); + cmSystemTools::Error + ("Generator: execution of make failed. Make command was: ", + makeCommand.c_str()); + if (output) + { + *output += *outputPtr; + *output += "\nGenerator: execution of make failed. Make command was: " + + makeCommand + "\n"; + } + + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + return 1; + } + if (output) + { + *output += *outputPtr; + } + cmSystemTools::SetRunCommandHideConsole(hideconsole); + + // The SGI MipsPro 7.3 compiler does not return an error code when + // the source has a #error in it! This is a work-around for such + // compilers. + if((retVal == 0) && (output->find("#error") != std::string::npos)) + { + retVal = 1; + } + + cmSystemTools::ChangeDirectory(cwd.c_str()); + return retVal; +} + +void cmGlobalGenerator::AddLocalGenerator(cmLocalGenerator *lg) +{ + this->LocalGenerators.push_back(lg); + + // update progress + // estimate how many lg there will be + const char *numGenC = + this->CMakeInstance->GetCacheManager()->GetCacheValue + ("CMAKE_NUMBER_OF_LOCAL_GENERATORS"); + + if (!numGenC) + { + // If CMAKE_NUMBER_OF_LOCAL_GENERATORS is not set + // we are in the first time progress and we have no + // idea how long it will be. So, just move half way + // there each time, and don't go over 95% + this->FirstTimeProgress += ((1.0f - this->FirstTimeProgress) /30.0f); + if(this->FirstTimeProgress > 0.95f) + { + this->FirstTimeProgress = 0.95f; + } + this->CMakeInstance->UpdateProgress("Configuring", + this->FirstTimeProgress); + return; + } + + int numGen = atoi(numGenC); + float prog = 0.9f*this->LocalGenerators.size()/numGen; + if (prog > 0.9f) + { + prog = 0.9f; + } + this->CMakeInstance->UpdateProgress("Configuring", prog); +} + +void cmGlobalGenerator::AddInstallComponent(const char* component) +{ + if(component && *component) + { + this->InstallComponents.insert(component); + } +} + +void cmGlobalGenerator::AddTargetToExports(const char* exportSetName, + cmTarget* target, + cmInstallTargetGenerator* archive, + cmInstallTargetGenerator* runTime, + cmInstallTargetGenerator* library, + cmInstallTargetGenerator* framework, + cmInstallTargetGenerator* bundle, + cmInstallFilesGenerator* headers) +{ + if ((exportSetName) && (*exportSetName) && (target)) + { + cmTargetExport* te = new cmTargetExport(target, archive, runTime, library, + framework, bundle, headers); + this->ExportSets[exportSetName].push_back(te); + } +} + +const std::vector* cmGlobalGenerator::GetExportSet( + const char* name) const +{ + std::map >::const_iterator + exportSetIt = this->ExportSets.find(name); + if (exportSetIt != this->ExportSets.end()) + { + return &exportSetIt->second; + } + + return 0; +} + + +void cmGlobalGenerator::EnableInstallTarget() +{ + this->InstallTargetEnabled = true; +} + +cmLocalGenerator *cmGlobalGenerator::CreateLocalGenerator() +{ + cmLocalGenerator *lg = new cmLocalGenerator; + lg->SetGlobalGenerator(this); + return lg; +} + +void cmGlobalGenerator::EnableLanguagesFromGenerator(cmGlobalGenerator *gen ) +{ + std::string cfp = gen->GetCMakeInstance()->GetHomeOutputDirectory(); + cfp += cmake::GetCMakeFilesDirectory(); + this->SetConfiguredFilesPath(cfp.c_str()); + const char* make = + gen->GetCMakeInstance()->GetCacheDefinition("CMAKE_MAKE_PROGRAM"); + this->GetCMakeInstance()->AddCacheEntry("CMAKE_MAKE_PROGRAM", make, + "make program", + cmCacheManager::FILEPATH); + // copy the enabled languages + this->LanguageEnabled = gen->LanguageEnabled; + this->ExtensionToLanguage = gen->ExtensionToLanguage; + this->IgnoreExtensions = gen->IgnoreExtensions; + this->LanguageToOutputExtension = gen->LanguageToOutputExtension; + this->LanguageToLinkerPreference = gen->LanguageToLinkerPreference; + this->OutputExtensions = gen->OutputExtensions; +} + +//---------------------------------------------------------------------------- +void cmGlobalGenerator::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = ""; + entry.Full = ""; +} + +bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root, + cmLocalGenerator* gen) +{ + if(!gen || gen == root) + { + // No directory excludes itself. + return false; + } + + if(gen->GetMakefile()->GetPropertyAsBool("EXCLUDE_FROM_ALL")) + { + // This directory is excluded from its parent. + return true; + } + + // This directory is included in its parent. Check whether the + // parent is excluded. + return this->IsExcluded(root, gen->GetParent()); +} + +bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root, + cmTarget& target) +{ + if(target.GetPropertyAsBool("EXCLUDE_FROM_ALL")) + { + // This target is excluded from its directory. + return true; + } + else + { + // This target is included in its directory. Check whether the + // directory is excluded. + return this->IsExcluded(root, target.GetMakefile()->GetLocalGenerator()); + } +} + +void cmGlobalGenerator::GetEnabledLanguages(std::vector& lang) +{ + for(std::map::iterator i = + this->LanguageEnabled.begin(); i != this->LanguageEnabled.end(); ++i) + { + lang.push_back(i->first); + } +} + +int cmGlobalGenerator::GetLinkerPreference(const char* lang) +{ + std::map::const_iterator it = + this->LanguageToLinkerPreference.find(lang); + if (it != this->LanguageToLinkerPreference.end()) + { + return it->second; + } + return 0; +} + +void cmGlobalGenerator::FillProjectMap() +{ + this->ProjectMap.clear(); // make sure we start with a clean map + unsigned int i; + for(i = 0; i < this->LocalGenerators.size(); ++i) + { + // for each local generator add all projects + cmLocalGenerator *lg = this->LocalGenerators[i]; + std::string name; + do + { + if (name != lg->GetMakefile()->GetProjectName()) + { + name = lg->GetMakefile()->GetProjectName(); + this->ProjectMap[name].push_back(this->LocalGenerators[i]); + } + lg = lg->GetParent(); + } + while (lg); + } +} + + +// Build a map that contains a the set of targets used by each local +// generator directory level. +void cmGlobalGenerator::FillLocalGeneratorToTargetMap() +{ + this->LocalGeneratorToTargetMap.clear(); + // Loop over all targets in all local generators. + for(std::vector::const_iterator + lgi = this->LocalGenerators.begin(); + lgi != this->LocalGenerators.end(); ++lgi) + { + cmLocalGenerator* lg = *lgi; + cmMakefile* mf = lg->GetMakefile(); + cmTargets& targets = mf->GetTargets(); + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + cmTarget& target = t->second; + + // Consider the directory containing the target and all its + // parents until something excludes the target. + for(cmLocalGenerator* clg = lg; clg && !this->IsExcluded(clg, target); + clg = clg->GetParent()) + { + // This local generator includes the target. + std::set& targetSet = + this->LocalGeneratorToTargetMap[clg]; + targetSet.insert(&target); + + // Add dependencies of the included target. An excluded + // target may still be included if it is a dependency of a + // non-excluded target. + TargetDependSet & tgtdeps = this->GetTargetDirectDepends(target); + for(TargetDependSet::const_iterator ti = tgtdeps.begin(); + ti != tgtdeps.end(); ++ti) + { + targetSet.insert(*ti); + } + } + } + } +} + + +///! Find a local generator by its startdirectory +cmLocalGenerator* cmGlobalGenerator::FindLocalGenerator(const char* start_dir) +{ + std::vector* gens = &this->LocalGenerators; + for(unsigned int i = 0; i < gens->size(); ++i) + { + std::string sd = (*gens)[i]->GetMakefile()->GetStartDirectory(); + if (sd == start_dir) + { + return (*gens)[i]; + } + } + return 0; +} + + +//---------------------------------------------------------------------------- +cmTarget* +cmGlobalGenerator::FindTarget(const char* project, const char* name) +{ + // if project specific + if(project) + { + std::vector* gens = &this->ProjectMap[project]; + for(unsigned int i = 0; i < gens->size(); ++i) + { + cmTarget* ret = (*gens)[i]->GetMakefile()->FindTarget(name); + if(ret) + { + return ret; + } + } + } + // if all projects/directories + else + { + std::map::iterator i = + this->TotalTargets.find ( name ); + if ( i != this->TotalTargets.end() ) + { + return i->second; + } + } + return 0; +} + +//---------------------------------------------------------------------------- +bool cmGlobalGenerator::NameResolvesToFramework(const std::string& libname) +{ + if(cmSystemTools::IsPathToFramework(libname.c_str())) + { + return true; + } + + if(cmTarget* tgt = this->FindTarget(0, libname.c_str())) + { + if(tgt->IsFrameworkOnApple()) + { + return true; + } + } + + return false; +} + +//---------------------------------------------------------------------------- +inline std::string removeQuotes(const std::string& s) +{ + if(s[0] == '\"' && s[s.size()-1] == '\"') + { + return s.substr(1, s.size()-2); + } + return s; +} + +void cmGlobalGenerator::SetCMakeInstance(cmake* cm) +{ + // Store a pointer to the cmake object instance. + this->CMakeInstance = cm; +} + +void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets) +{ + cmMakefile* mf = this->LocalGenerators[0]->GetMakefile(); + const char* cmakeCfgIntDir = this->GetCMakeCFGInitDirectory(); + const char* cmakeCommand = mf->GetRequiredDefinition("CMAKE_COMMAND"); + + // CPack + cmCustomCommandLines cpackCommandLines; + std::vector depends; + cmCustomCommandLine singleLine; + singleLine.push_back(this->GetCMakeInstance()->GetCPackCommand()); + if ( cmakeCfgIntDir && *cmakeCfgIntDir && cmakeCfgIntDir[0] != '.' ) + { + singleLine.push_back("-C"); + singleLine.push_back(cmakeCfgIntDir); + } + singleLine.push_back("--config"); + std::string configFile = mf->GetStartOutputDirectory();; + configFile += "/CPackConfig.cmake"; + singleLine.push_back(configFile); + cpackCommandLines.push_back(singleLine); + if ( this->GetPreinstallTargetName() ) + { + depends.push_back("preinstall"); + } + else + { + const char* noPackageAll = + mf->GetDefinition("CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY"); + if(!noPackageAll || cmSystemTools::IsOff(noPackageAll)) + { + depends.push_back(this->GetAllTargetName()); + } + } + if(cmSystemTools::FileExists(configFile.c_str())) + { + (*targets)[this->GetPackageTargetName()] + = this->CreateGlobalTarget(this->GetPackageTargetName(), + "Run CPack packaging tool...", + &cpackCommandLines, depends); + } + // CPack source + const char* packageSourceTargetName = this->GetPackageSourceTargetName(); + if ( packageSourceTargetName ) + { + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + singleLine.erase(singleLine.begin(), singleLine.end()); + depends.erase(depends.begin(), depends.end()); + singleLine.push_back(this->GetCMakeInstance()->GetCPackCommand()); + singleLine.push_back("--config"); + configFile = mf->GetStartOutputDirectory();; + configFile += "/CPackSourceConfig.cmake"; + if(cmSystemTools::FileExists(configFile.c_str())) + { + singleLine.push_back(configFile); + cpackCommandLines.push_back(singleLine); + (*targets)[packageSourceTargetName] + = this->CreateGlobalTarget(packageSourceTargetName, + "Run CPack packaging tool for source...", + &cpackCommandLines, depends); + } + } + + // Test + if(mf->IsOn("CMAKE_TESTING_ENABLED")) + { + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + singleLine.erase(singleLine.begin(), singleLine.end()); + depends.erase(depends.begin(), depends.end()); + singleLine.push_back(this->GetCMakeInstance()->GetCTestCommand()); + singleLine.push_back("--force-new-ctest-process"); + if(cmakeCfgIntDir && *cmakeCfgIntDir && cmakeCfgIntDir[0] != '.') + { + singleLine.push_back("-C"); + singleLine.push_back(cmakeCfgIntDir); + } + else // TODO: This is a hack. Should be something to do with the generator + { + singleLine.push_back("$(ARGS)"); + } + cpackCommandLines.push_back(singleLine); + (*targets)[this->GetTestTargetName()] + = this->CreateGlobalTarget(this->GetTestTargetName(), + "Running tests...", &cpackCommandLines, depends); + } + + //Edit Cache + const char* editCacheTargetName = this->GetEditCacheTargetName(); + if ( editCacheTargetName ) + { + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + singleLine.erase(singleLine.begin(), singleLine.end()); + depends.erase(depends.begin(), depends.end()); + + // Use CMAKE_EDIT_COMMAND for the edit_cache rule if it is defined. + // Otherwise default to the interactive command-line interface. + if(mf->GetDefinition("CMAKE_EDIT_COMMAND")) + { + singleLine.push_back(mf->GetDefinition("CMAKE_EDIT_COMMAND")); + singleLine.push_back("-H$(CMAKE_SOURCE_DIR)"); + singleLine.push_back("-B$(CMAKE_BINARY_DIR)"); + cpackCommandLines.push_back(singleLine); + (*targets)[editCacheTargetName] = + this->CreateGlobalTarget( + editCacheTargetName, "Running CMake cache editor...", + &cpackCommandLines, depends); + } + else + { + singleLine.push_back(cmakeCommand); + singleLine.push_back("-i"); + singleLine.push_back("."); + cpackCommandLines.push_back(singleLine); + (*targets)[editCacheTargetName] = + this->CreateGlobalTarget( + editCacheTargetName, + "Running interactive CMake command-line interface...", + &cpackCommandLines, depends); + } + } + + //Rebuild Cache + const char* rebuildCacheTargetName = this->GetRebuildCacheTargetName(); + if ( rebuildCacheTargetName ) + { + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + singleLine.erase(singleLine.begin(), singleLine.end()); + depends.erase(depends.begin(), depends.end()); + singleLine.push_back(cmakeCommand); + singleLine.push_back("-H$(CMAKE_SOURCE_DIR)"); + singleLine.push_back("-B$(CMAKE_BINARY_DIR)"); + cpackCommandLines.push_back(singleLine); + (*targets)[rebuildCacheTargetName] = + this->CreateGlobalTarget( + rebuildCacheTargetName, "Running CMake to regenerate build system...", + &cpackCommandLines, depends); + } + + //Install + if(this->InstallTargetEnabled) + { + if(!cmakeCfgIntDir || !*cmakeCfgIntDir || cmakeCfgIntDir[0] == '.') + { + std::set* componentsSet = &this->InstallComponents; + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + depends.erase(depends.begin(), depends.end()); + cmOStringStream ostr; + if ( componentsSet->size() > 0 ) + { + ostr << "Available install components are:"; + std::set::iterator it; + for ( + it = componentsSet->begin(); + it != componentsSet->end(); + ++ it ) + { + ostr << " \"" << it->c_str() << "\""; + } + } + else + { + ostr << "Only default component available"; + } + singleLine.push_back(ostr.str().c_str()); + (*targets)["list_install_components"] + = this->CreateGlobalTarget("list_install_components", + ostr.str().c_str(), + &cpackCommandLines, depends); + } + std::string cmd; + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + singleLine.erase(singleLine.begin(), singleLine.end()); + depends.erase(depends.begin(), depends.end()); + if ( this->GetPreinstallTargetName() ) + { + depends.push_back(this->GetPreinstallTargetName()); + } + else + { + const char* noall = + mf->GetDefinition("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"); + if(!noall || cmSystemTools::IsOff(noall)) + { + depends.push_back(this->GetAllTargetName()); + } + } + if(mf->GetDefinition("CMake_BINARY_DIR")) + { + // We are building CMake itself. We cannot use the original + // executable to install over itself. + cmd = mf->GetDefinition("EXECUTABLE_OUTPUT_PATH"); + if(cmakeCfgIntDir && *cmakeCfgIntDir && cmakeCfgIntDir[0] != '.') + { + cmd += "/"; + cmd += cmakeCfgIntDir; + } + cmd += "/cmake"; + } + else + { + cmd = cmakeCommand; + } + singleLine.push_back(cmd.c_str()); + if ( cmakeCfgIntDir && *cmakeCfgIntDir && cmakeCfgIntDir[0] != '.' ) + { + std::string cfgArg = "-DBUILD_TYPE="; + cfgArg += mf->GetDefinition("CMAKE_CFG_INTDIR"); + singleLine.push_back(cfgArg); + } + singleLine.push_back("-P"); + singleLine.push_back("cmake_install.cmake"); + cpackCommandLines.push_back(singleLine); + (*targets)[this->GetInstallTargetName()] = + this->CreateGlobalTarget( + this->GetInstallTargetName(), "Install the project...", + &cpackCommandLines, depends); + + // install_local + if(const char* install_local = this->GetInstallLocalTargetName()) + { + cmCustomCommandLine localCmdLine = singleLine; + + localCmdLine.insert(localCmdLine.begin()+1, + "-DCMAKE_INSTALL_LOCAL_ONLY=1"); + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + cpackCommandLines.push_back(localCmdLine); + + (*targets)[install_local] = + this->CreateGlobalTarget( + install_local, "Installing only the local directory...", + &cpackCommandLines, depends); + } + + // install_strip + const char* install_strip = this->GetInstallStripTargetName(); + if((install_strip !=0) && (mf->IsSet("CMAKE_STRIP"))) + { + cmCustomCommandLine stripCmdLine = singleLine; + + stripCmdLine.insert(stripCmdLine.begin()+1,"-DCMAKE_INSTALL_DO_STRIP=1"); + cpackCommandLines.erase(cpackCommandLines.begin(), + cpackCommandLines.end()); + cpackCommandLines.push_back(stripCmdLine); + + (*targets)[install_strip] = + this->CreateGlobalTarget( + install_strip, "Installing the project stripped...", + &cpackCommandLines, depends); + } + } +} + +cmTarget cmGlobalGenerator::CreateGlobalTarget( + const char* name, const char* message, + const cmCustomCommandLines* commandLines, + std::vector depends, + bool depends_on_all /* = false */) +{ + // Package + cmTarget target; + target.GetProperties().SetCMakeInstance(this->CMakeInstance); + target.SetType(cmTarget::GLOBAL_TARGET, name); + target.SetProperty("EXCLUDE_FROM_ALL","TRUE"); + + std::vector no_outputs; + std::vector no_depends; + // Store the custom command in the target. + cmCustomCommand cc(no_outputs, no_depends, *commandLines, 0, 0); + target.GetPostBuildCommands().push_back(cc); + target.SetProperty("EchoString", message); + if ( depends_on_all ) + { + target.AddUtility("all"); + } + std::vector::iterator dit; + for ( dit = depends.begin(); dit != depends.end(); ++ dit ) + { + target.AddUtility(dit->c_str()); + } + return target; +} + +//---------------------------------------------------------------------------- +void cmGlobalGenerator::AppendDirectoryForConfig(const char*, const char*, + const char*, std::string&) +{ + // Subclasses that support multiple configurations should implement + // this method to append the subdirectory for the given build + // configuration. +} + +//---------------------------------------------------------------------------- +cmGlobalGenerator::TargetDependSet & +cmGlobalGenerator::GetTargetDirectDepends(cmTarget & target) +{ + // Clarify the role of the input target. + cmTarget * depender = ⌖ + + // if the depends are already in the map then return + TargetDependMap::iterator tgtI = + this->TargetDependencies.find(depender); + if(tgtI != this->TargetDependencies.end()) + { + return tgtI->second; + } + + // Create an entry for this depender. + TargetDependSet& depender_depends = this->TargetDependencies[depender]; + + // Keep track of dependencies already listed. + std::set emitted; + + // A target should not depend on itself. + emitted.insert(depender->GetName()); + + // Loop over all targets linked directly. + cmTarget::LinkLibraryVectorType const& tlibs = + target.GetOriginalLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator lib = tlibs.begin(); + lib != tlibs.end(); ++lib) + { + // Don't emit the same library twice for this target. + if(emitted.insert(lib->first).second) + { + this->ConsiderTargetDepends(depender, depender_depends, + lib->first.c_str()); + } + } + + // Loop over all utility dependencies. + std::set const& tutils = target.GetUtilities(); + for(std::set::const_iterator util = tutils.begin(); + util != tutils.end(); ++util) + { + // Don't emit the same utility twice for this target. + if(emitted.insert(*util).second) + { + this->ConsiderTargetDepends(depender, depender_depends, + util->c_str()); + } + } + + return depender_depends; +} + +//---------------------------------------------------------------------------- +bool +cmGlobalGenerator::ConsiderTargetDepends(cmTarget * depender, + TargetDependSet& depender_depends, + const char* dependee_name) +{ + // Check the target's makefile first. + cmTarget * dependee = + depender->GetMakefile()->FindTarget(dependee_name); + + // Then search globally. + if(!dependee) + { + dependee = this->FindTarget(0, dependee_name); + } + + // If not found then skip then the dependee. + if(!dependee) + { + return false; + } + + // Check whether the depender is among the dependee's dependencies. + std::vector steps; + if(this->FindDependency(depender, dependee, steps)) + { + // This creates a cyclic dependency. + bool isStatic = depender->GetType() == cmTarget::STATIC_LIBRARY; + cmOStringStream e; + e << "Cyclic dependency among targets:\n" + << " " << depender->GetName() << "\n"; + for(unsigned int i = static_cast(steps.size()); + i > 0; --i) + { + cmTarget * step = steps[i-1]; + e << " -> " << step->GetName() << "\n"; + isStatic = isStatic && step->GetType() == cmTarget::STATIC_LIBRARY; + } + if(isStatic) + { + e << " All targets are STATIC libraries.\n"; + e << " Dropping " + << depender->GetName() << " -> " << dependee->GetName() + << " to resolve.\n"; + cmSystemTools::Message(e.str().c_str()); + } + else + { + e << " At least one target is not a STATIC library.\n"; + cmSystemTools::Error(e.str().c_str()); + } + return false; + } + else + { + // This does not create a cyclic dependency. + depender_depends.insert(dependee); + return true; + } +} + +//---------------------------------------------------------------------------- +bool +cmGlobalGenerator +::FindDependency(cmTarget * goal, cmTarget * current, + std::vector& steps) +{ + if(current == goal) + { + steps.push_back(current); + return true; + } + TargetDependMap::iterator i = this->TargetDependencies.find(current); + if(i == this->TargetDependencies.end()) + { + return false; + } + TargetDependSet & depends = i->second; + for(TargetDependSet::iterator j = depends.begin(); + j != depends.end(); ++j) + { + if(this->FindDependency(goal, *j, steps)) + { + steps.push_back(current); + return true; + } + } + return false; +} + +void cmGlobalGenerator::AddTarget(cmTargets::value_type &v) +{ + assert(!v.second.IsImported()); + this->TotalTargets[v.first] = &v.second; +} + +void cmGlobalGenerator::SetExternalMakefileProjectGenerator( + cmExternalMakefileProjectGenerator *extraGenerator) +{ + this->ExtraGenerator = extraGenerator; + if (this->ExtraGenerator!=0) + { + this->ExtraGenerator->SetGlobalGenerator(this); + } +} + +const char* cmGlobalGenerator::GetExtraGeneratorName() const +{ + return this->ExtraGenerator==0 ? 0 : this->ExtraGenerator->GetName(); +} + +void cmGlobalGenerator::FileReplacedDuringGenerate(const std::string& filename) +{ + this->FilesReplacedDuringGenerate.push_back(filename); +} + +void +cmGlobalGenerator +::GetFilesReplacedDuringGenerate(std::vector& filenames) +{ + filenames.clear(); + std::copy( + this->FilesReplacedDuringGenerate.begin(), + this->FilesReplacedDuringGenerate.end(), + std::back_inserter(filenames)); +} + +void +cmGlobalGenerator +::GetTargetSets(cmGlobalGenerator::TargetDependSet& projectTargets, + cmGlobalGenerator::TargetDependSet& originalTargets, + cmLocalGenerator* root, + std::vector const& generators) +{ + // loop over all local generators + for(std::vector::const_iterator i = generators.begin(); + i != generators.end(); ++i) + { + // check to make sure generator is not excluded + if(this->IsExcluded(root, *i)) + { + continue; + } + cmMakefile* mf = (*i)->GetMakefile(); + // Get the targets in the makefile + cmTargets &tgts = mf->GetTargets(); + // loop over all the targets + for (cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l) + { + cmTarget* target = &l->second; + // put the target in the set of original targets + originalTargets.insert(target); + // Get the set of targets that depend on target + this->AddTargetDepends(target, + projectTargets); + } + } +} + +void +cmGlobalGenerator::AddTargetDepends(cmTarget* target, + cmGlobalGenerator::TargetDependSet& + projectTargets) +{ + // add the target itself + projectTargets.insert(target); + // get the direct depends of target + cmGlobalGenerator::TargetDependSet const& tset + = this->GetTargetDirectDepends(*target); + if(tset.size()) + { + // if there are targets that depend on target + // add them and their depends as well + for(cmGlobalGenerator::TargetDependSet::const_iterator i = + tset.begin(); i != tset.end(); ++i) + { + cmTarget* dtarget = *i; + this->AddTargetDepends(dtarget, projectTargets); + } + } +} + + +//---------------------------------------------------------------------------- +void cmGlobalGenerator::AddToManifest(const char* config, + std::string const& f) +{ + // Add to the main manifest for this configuration. + this->TargetManifest[config].insert(f); + + // Add to the content listing for the file's directory. + std::string dir = cmSystemTools::GetFilenamePath(f); + std::string file = cmSystemTools::GetFilenameName(f); + this->DirectoryContentMap[dir].insert(file); +} + +//---------------------------------------------------------------------------- +std::set const& +cmGlobalGenerator::GetDirectoryContent(std::string const& dir, bool needDisk) +{ + DirectoryContent& dc = this->DirectoryContentMap[dir]; + if(needDisk && !dc.LoadedFromDisk) + { + // Load the directory content from disk. + cmsys::Directory d; + if(d.Load(dir.c_str())) + { + unsigned long n = d.GetNumberOfFiles(); + for(unsigned long i = 0; i < n; ++i) + { + const char* f = d.GetFile(i); + if(strcmp(f, ".") != 0 && strcmp(f, "..") != 0) + { + dc.insert(f); + } + } + } + dc.LoadedFromDisk = true; + } + return dc; +} + diff --git a/CMakeLua/Source/cmGlobalGenerator.h b/CMakeLua/Source/cmGlobalGenerator.h new file mode 100644 index 0000000..a351d02 --- /dev/null +++ b/CMakeLua/Source/cmGlobalGenerator.h @@ -0,0 +1,337 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalGenerator.h,v $ + Language: C++ + Date: $Date: 2008/01/31 03:56:34 $ + Version: $Revision: 1.105 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmGlobalGenerator_h +#define cmGlobalGenerator_h + +#include "cmStandardIncludes.h" + +#include "cmTarget.h" // For cmTargets + +class cmake; +class cmMakefile; +class cmLocalGenerator; +class cmExternalMakefileProjectGenerator; +class cmTarget; +class cmTargetExport; +class cmInstallTargetGenerator; +class cmInstallFilesGenerator; + +/** \class cmGlobalGenerator + * \brief Responable for overseeing the generation process for the entire tree + * + * Subclasses of this class generate makefiles for various + * platforms. + */ +class cmGlobalGenerator +{ +public: + ///! Free any memory allocated with the GlobalGenerator + cmGlobalGenerator(); + virtual ~cmGlobalGenerator(); + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + ///! Get the name for this generator + virtual const char *GetName() const { return "Generic"; }; + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + /** + * Create LocalGenerators and process the CMakeLists files. This does not + * actually produce any makefiles, DSPs, etc. + */ + virtual void Configure(); + + /** + * Generate the all required files for building this project/tree. This + * basically creates a series of LocalGenerators for each directory and + * requests that they Generate. + */ + virtual void Generate(); + + /** + * Set/Get and Clear the enabled languages. + */ + void SetLanguageEnabled(const char*, cmMakefile* mf); + bool GetLanguageEnabled(const char*) const; + void ClearEnabledLanguages(); + void GetEnabledLanguages(std::vector& lang); + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); + + /** + * Try to determine system infomation, get it from another generator + */ + virtual void EnableLanguagesFromGenerator(cmGlobalGenerator *gen); + + /** + * Try running cmake and building a file. This is used for dynalically + * loaded commands, not as part of the usual build process. + */ + virtual int TryCompile(const char *srcdir, const char *bindir, + const char *projectName, const char *targetName, + std::string *output, cmMakefile* mf); + + + /** + * Build a file given the following information. This is a more direct call + * that is used by both CTest and TryCompile. If target name is NULL or + * empty then all is assumed. clean indicates if a "make clean" should be + * done first. + */ + virtual int Build(const char *srcdir, const char *bindir, + const char *projectName, const char *targetName, + std::string *output, + const char *makeProgram, const char *config, + bool clean, bool fast, + double timeout); + virtual std::string GenerateBuildCommand + (const char* makeProgram, + const char *projectName, const char* additionalOptions, + const char *targetName, + const char* config, bool ignoreErrors, bool fast); + + + ///! Set the CMake instance + void SetCMakeInstance(cmake *cm); + + ///! Get the CMake instance + cmake *GetCMakeInstance() { return this->CMakeInstance; }; + + void SetConfiguredFilesPath(const char* s){this->ConfiguredFilesPath = s;} + const std::vector& GetLocalGenerators() const { + return this->LocalGenerators;} + + cmLocalGenerator* GetCurrentLocalGenerator() + {return this->CurrentLocalGenerator;} + + void SetCurrentLocalGenerator(cmLocalGenerator* lg) + {this->CurrentLocalGenerator = lg;} + + void AddLocalGenerator(cmLocalGenerator *lg); + + ///! Set an generator for an "external makefile based project" + void SetExternalMakefileProjectGenerator( + cmExternalMakefileProjectGenerator *extraGenerator); + + const char* GetExtraGeneratorName() const; + + void AddInstallComponent(const char* component); + + ///! Add one installed target to the sets of the exports + void AddTargetToExports(const char* exportSet, cmTarget* target, + cmInstallTargetGenerator* archive, + cmInstallTargetGenerator* runTime, + cmInstallTargetGenerator* library, + cmInstallTargetGenerator* framework, + cmInstallTargetGenerator* bundle, + cmInstallFilesGenerator* publicHeaders); + ///! Get the export target set with the given name + const std::vector* GetExportSet(const char* name) const; + + /** Add a file to the manifest of generated targets for a configuration. */ + void AddToManifest(const char* config, std::string const& f); + + void EnableInstallTarget(); + + int TryCompileTimeout; + + bool GetForceUnixPaths() {return this->ForceUnixPaths;} + bool GetToolSupportsColor() { return this->ToolSupportsColor; } + void SetToolSupportsColor(bool enable) { this->ToolSupportsColor = enable; } + + ///! return the language for the given extension + const char* GetLanguageFromExtension(const char* ext); + ///! is an extension to be ignored + bool IgnoreFile(const char* ext); + ///! What is the preference for linkers and this language (None or Prefered) + int GetLinkerPreference(const char* lang); + ///! What is the object file extension for a given source file? + const char* GetLanguageOutputExtension(cmSourceFile const&); + + ///! What is the configurations directory variable called? + virtual const char* GetCMakeCFGInitDirectory() { return "."; } + + /** Get whether the generator should use a script for link commands. */ + bool GetUseLinkScript() { return this->UseLinkScript; } + + /** Get whether the generator should produce special marks on rules + producing symbolic (non-file) outputs. */ + bool GetNeedSymbolicMark() { return this->NeedSymbolicMark; } + + /* + * Determine what program to use for building the project. + */ + void FindMakeProgram(cmMakefile*); + + ///! Find a target by name by searching the local generators. + cmTarget* FindTarget(const char* project, const char* name); + + /** Determine if a name resolves to a framework on disk or a built target + that is a framework. */ + bool NameResolvesToFramework(const std::string& libname); + + /** If check to see if the target is linked to by any other + target in the project */ + bool IsDependedOn(const char* project, cmTarget* target); + ///! Find a local generator by its startdirectory + cmLocalGenerator* FindLocalGenerator(const char* start_dir); + + /** Append the subdirectory for the given configuration. If anything is + appended the given prefix and suffix will be appended around it, which + is useful for leading or trailing slashes. */ + virtual void AppendDirectoryForConfig(const char* prefix, + const char* config, + const char* suffix, + std::string& dir); + + /** Get the manifest of all targets that will be built for each + configuration. This is valid during generation only. */ + cmTargetManifest const& GetTargetManifest() { return this->TargetManifest; } + + /** Get the content of a directory on disk including the target + files to be generated. This may be called only during the + generation step. It is intended for use only by + cmComputeLinkInformation. */ + std::set const& GetDirectoryContent(std::string const& dir, + bool needDisk); + + void AddTarget(cmTargets::value_type &v); + + virtual const char* GetAllTargetName() { return "ALL_BUILD"; } + virtual const char* GetInstallTargetName() { return "INSTALL"; } + virtual const char* GetInstallLocalTargetName() { return 0; } + virtual const char* GetInstallStripTargetName() { return 0; } + virtual const char* GetPreinstallTargetName() { return 0; } + virtual const char* GetTestTargetName() { return "RUN_TESTS"; } + virtual const char* GetPackageTargetName() { return "PACKAGE"; } + virtual const char* GetPackageSourceTargetName(){ return 0; } + virtual const char* GetEditCacheTargetName() { return 0; } + virtual const char* GetRebuildCacheTargetName() { return 0; } + virtual const char* GetCleanTargetName() { return 0; } + + // Class to track a set of dependencies. + class TargetDependSet: public std::set {}; + + // what targets does the specified target depend on directly + // via a target_link_libraries or add_dependencies + TargetDependSet & GetTargetDirectDepends(cmTarget & target); + + const std::map >& GetProjectMap() + const {return this->ProjectMap;} + + // track files replaced during a Generate + void FileReplacedDuringGenerate(const std::string& filename); + void GetFilesReplacedDuringGenerate(std::vector& filenames); + +protected: + // for a project collect all its targets by following depend + // information, and also collect all the targets + void GetTargetSets(cmGlobalGenerator::TargetDependSet& projectTargets, + cmGlobalGenerator::TargetDependSet& originalTargets, + cmLocalGenerator* root, + std::vector const& generators); + void AddTargetDepends(cmTarget* target, + cmGlobalGenerator::TargetDependSet& + projectTargets); + void SetLanguageEnabledFlag(const char* l, cmMakefile* mf); + void SetLanguageEnabledMaps(const char* l, cmMakefile* mf); + + // Fill the ProjectMap, this must be called after LocalGenerators + // has been populated. + void FillProjectMap(); + void CheckLocalGenerators(); + bool IsExcluded(cmLocalGenerator* root, cmLocalGenerator* gen); + bool IsExcluded(cmLocalGenerator* root, cmTarget& target); + void FillLocalGeneratorToTargetMap(); + void CreateDefaultGlobalTargets(cmTargets* targets); + cmTarget CreateGlobalTarget(const char* name, const char* message, + const cmCustomCommandLines* commandLines, + std::vector depends, bool depends_on_all = false); + + bool NeedSymbolicMark; + bool UseLinkScript; + bool ForceUnixPaths; + bool ToolSupportsColor; + cmStdString FindMakeProgramFile; + cmStdString ConfiguredFilesPath; + cmake *CMakeInstance; + std::vector LocalGenerators; + cmLocalGenerator* CurrentLocalGenerator; + // map from project name to vector of local generators in that project + std::map > ProjectMap; + std::map > + LocalGeneratorToTargetMap; + + // Set of named installation components requested by the project. + std::set InstallComponents; + bool InstallTargetEnabled; + // Sets of named target exports + std::map > ExportSets; + + // Manifest of all targets that will be built for each configuration. + // This is computed just before local generators generate. + cmTargetManifest TargetManifest; + +private: + float FirstTimeProgress; + // If you add a new map here, make sure it is copied + // in EnableLanguagesFromGenerator + std::map IgnoreExtensions; + std::map LanguageEnabled; + std::map OutputExtensions; + std::map LanguageToOutputExtension; + std::map ExtensionToLanguage; + std::map LanguageToLinkerPreference; + + // this is used to improve performance + std::map TotalTargets; + + cmExternalMakefileProjectGenerator* ExtraGenerator; + + // track files replaced during a Generate + std::vector FilesReplacedDuringGenerate; + + // Track inter-target dependencies. + bool ConsiderTargetDepends(cmTarget * depender, + TargetDependSet& depender_depends, + const char* dependee_name); + bool FindDependency(cmTarget * goal, cmTarget * current, + std::vector& steps); + typedef std::map TargetDependMap; + TargetDependMap TargetDependencies; + + // Cache directory content and target files to be built. + struct DirectoryContent: public std::set + { + typedef std::set derived; + bool LoadedFromDisk; + DirectoryContent(): LoadedFromDisk(false) {} + DirectoryContent(DirectoryContent const& dc): + derived(dc), LoadedFromDisk(dc.LoadedFromDisk) {} + }; + std::map DirectoryContentMap; +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalKdevelopGenerator.cxx b/CMakeLua/Source/cmGlobalKdevelopGenerator.cxx new file mode 100644 index 0000000..7e045ca --- /dev/null +++ b/CMakeLua/Source/cmGlobalKdevelopGenerator.cxx @@ -0,0 +1,623 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalKdevelopGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 17:28:49 $ + Version: $Revision: 1.29 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf neundorf@kde.org, All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmGlobalKdevelopGenerator.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmake.h" +#include "cmSourceFile.h" +#include "cmGeneratedFileStream.h" +#include "cmSystemTools.h" + +#include +#include + +//---------------------------------------------------------------------------- +void cmGlobalKdevelopGenerator +::GetDocumentation(cmDocumentationEntry& entry, const char*) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates KDevelop 3 project files."; + entry.Full = + "Project files for KDevelop 3 will be created in the top directory " + "and in every subdirectory which features a CMakeLists.txt file " + "containing a PROJECT() call. " + "If you change the settings using KDevelop cmake will try its best " + "to keep your changes when regenerating the project files. " + "Additionally a hierarchy of UNIX makefiles is generated into the " + "build tree. Any " + "standard UNIX-style make program can build the project through the " + "default make target. A \"make install\" target is also provided."; +} + +cmGlobalKdevelopGenerator::cmGlobalKdevelopGenerator() +:cmExternalMakefileProjectGenerator() +{ + this->SupportedGlobalGenerators.push_back("Unix Makefiles"); +} + + +void cmGlobalKdevelopGenerator::SetGlobalGenerator( + cmGlobalGenerator* generator) +{ + cmExternalMakefileProjectGenerator::SetGlobalGenerator(generator); + cmGlobalUnixMakefileGenerator3* mf = (cmGlobalUnixMakefileGenerator3*) + generator; + mf->SetToolSupportsColor(false); + mf->SetForceVerboseMakefiles(true); +} + +void cmGlobalKdevelopGenerator::Generate() +{ + // for each sub project in the project create + // a kdevelop project + for (std::map >::const_iterator + it = this->GlobalGenerator->GetProjectMap().begin(); + it!= this->GlobalGenerator->GetProjectMap().end(); + ++it) + { + cmMakefile* mf = it->second[0]->GetMakefile(); + std::string outputDir=mf->GetStartOutputDirectory(); + std::string projectDir=mf->GetHomeDirectory(); + std::string projectName=mf->GetProjectName(); + std::string cmakeFilePattern("CMakeLists.txt;*.cmake;"); + std::string fileToOpen; + const std::vector& lgs= it->second; + // create the project.kdevelop.filelist file + if(!this->CreateFilelistFile(lgs, outputDir, projectDir, + projectName, cmakeFilePattern, fileToOpen)) + { + cmSystemTools::Error("Can not create filelist file"); + return; + } + //try to find the name of an executable so we have something to + //run from kdevelop for now just pick the first executable found + std::string executable; + for (std::vector::const_iterator lg=lgs.begin(); + lg!=lgs.end(); lg++) + { + cmMakefile* makefile=(*lg)->GetMakefile(); + cmTargets& targets=makefile->GetTargets(); + for (cmTargets::iterator ti = targets.begin(); + ti != targets.end(); ti++) + { + if (ti->second.GetType()==cmTarget::EXECUTABLE) + { + executable = ti->second.GetProperty("LOCATION"); + break; + } + } + if (!executable.empty()) + { + break; + } + } + + // now create a project file + this->CreateProjectFile(outputDir, projectDir, projectName, + executable, cmakeFilePattern, fileToOpen); + } +} + +bool cmGlobalKdevelopGenerator +::CreateFilelistFile(const std::vector& lgs, + const std::string& outputDir, + const std::string& projectDirIn, + const std::string& projectname, + std::string& cmakeFilePattern, + std::string& fileToOpen) +{ + std::string projectDir = projectDirIn + "/"; + std::string filename = outputDir+ "/" + projectname +".kdevelop.filelist"; + + std::set files; + std::string tmp; + + for (std::vector::const_iterator it=lgs.begin(); + it!=lgs.end(); it++) + { + cmMakefile* makefile=(*it)->GetMakefile(); + const std::vector& listFiles=makefile->GetListFiles(); + for (std::vector::const_iterator lt=listFiles.begin(); + lt!=listFiles.end(); lt++) + { + tmp=*lt; + cmSystemTools::ReplaceString(tmp, projectDir.c_str(), ""); + // make sure the file is part of this source tree + if ((tmp[0]!='/') && + (strstr(tmp.c_str(), + cmake::GetCMakeFilesDirectoryPostSlash())==0)) + { + files.insert(tmp); + tmp=cmSystemTools::GetFilenameName(tmp); + //add all files which dont match the default + // */CMakeLists.txt;*cmake; to the file pattern + if ((tmp!="CMakeLists.txt") + && (strstr(tmp.c_str(), ".cmake")==0)) + { + cmakeFilePattern+=tmp+";"; + } + } + } + + //get all sources + cmTargets& targets=makefile->GetTargets(); + for (cmTargets::iterator ti = targets.begin(); + ti != targets.end(); ti++) + { + const std::vector& sources=ti->second.GetSourceFiles(); + for (std::vector::const_iterator si=sources.begin(); + si!=sources.end(); si++) + { + tmp=(*si)->GetFullPath(); + std::string headerBasename=cmSystemTools::GetFilenamePath(tmp); + headerBasename+="/"; + headerBasename+=cmSystemTools::GetFilenameWithoutExtension(tmp); + + cmSystemTools::ReplaceString(tmp, projectDir.c_str(), ""); + + if ((tmp[0]!='/') && + (strstr(tmp.c_str(), + cmake::GetCMakeFilesDirectoryPostSlash())==0) && + (cmSystemTools::GetFilenameExtension(tmp)!=".moc")) + { + files.insert(tmp); + + // check if there's a matching header around + for(std::vector::const_iterator + ext = makefile->GetHeaderExtensions().begin(); + ext != makefile->GetHeaderExtensions().end(); ++ext) + { + std::string hname=headerBasename; + hname += "."; + hname += *ext; + if(cmSystemTools::FileExists(hname.c_str())) + { + cmSystemTools::ReplaceString(hname, projectDir.c_str(), ""); + files.insert(hname); + break; + } + } + } + } + for (std::vector::const_iterator lt=listFiles.begin(); + lt!=listFiles.end(); lt++) + { + tmp=*lt; + cmSystemTools::ReplaceString(tmp, projectDir.c_str(), ""); + if ((tmp[0]!='/') && + (strstr(tmp.c_str(), + cmake::GetCMakeFilesDirectoryPostSlash())==0)) + { + files.insert(tmp.c_str()); + } + } + } + } + + //check if the output file already exists and read it + //insert all files which exist into the set of files + std::ifstream oldFilelist(filename.c_str()); + if (oldFilelist) + { + while (cmSystemTools::GetLineFromStream(oldFilelist, tmp)) + { + if (tmp[0]=='/') + { + continue; + } + std::string completePath=projectDir+tmp; + if (cmSystemTools::FileExists(completePath.c_str())) + { + files.insert(tmp); + } + } + oldFilelist.close(); + } + + //now write the new filename + cmGeneratedFileStream fout(filename.c_str()); + if(!fout) + { + return false; + } + + fileToOpen=""; + for (std::set::const_iterator it=files.begin(); + it!=files.end(); it++) + { + // get the full path to the file + tmp=cmSystemTools::CollapseFullPath(it->c_str(), projectDir.c_str()); + // just select the first source file + if (fileToOpen.empty()) + { + std::string ext = cmSystemTools::GetFilenameExtension(tmp); + if ((ext==".c") || (ext==".cc") || (ext==".cpp") || (ext==".cxx") + || (ext==".C") || (ext==".h") || (ext==".hpp")) + { + fileToOpen=tmp; + } + } + // make it relative to the project dir + cmSystemTools::ReplaceString(tmp, projectDir.c_str(), ""); + // only put relative paths + if (tmp.size() && tmp[0] != '/') + { + fout << tmp.c_str() <<"\n"; + } + } + return true; +} + + +/* create the project file, if it already exists, merge it with the +existing one, otherwise create a new one */ +void cmGlobalKdevelopGenerator +::CreateProjectFile(const std::string& outputDir, + const std::string& projectDir, + const std::string& projectname, + const std::string& executable, + const std::string& cmakeFilePattern, + const std::string& fileToOpen) +{ + this->Blacklist.clear(); + + std::string filename=outputDir+"/"; + filename+=projectname+".kdevelop"; + std::string sessionFilename=outputDir+"/"; + sessionFilename+=projectname+".kdevses"; + + if (cmSystemTools::FileExists(filename.c_str())) + { + this->MergeProjectFiles(outputDir, projectDir, filename, + executable, cmakeFilePattern, + fileToOpen, sessionFilename); + } + else + { + // add all subdirectories to the kdevelop blacklist + // so they are not monitored for added or removed files + // since this is basically handled by adding files to the cmake files + cmsys::Directory d; + if (d.Load(projectDir.c_str())) + { + size_t numf = d.GetNumberOfFiles(); + for (unsigned int i = 0; i < numf; i++) + { + std::string nextFile = d.GetFile(i); + if ((nextFile!=".") && (nextFile!="..")) + { + std::string tmp = projectDir; + tmp += "/"; + tmp += nextFile; + if (cmSystemTools::FileIsDirectory(tmp.c_str())) + { + this->Blacklist.push_back(nextFile); + } + } + } + } + this->CreateNewProjectFile(outputDir, projectDir, filename, + executable, cmakeFilePattern, + fileToOpen, sessionFilename); + } + +} + +void cmGlobalKdevelopGenerator +::MergeProjectFiles(const std::string& outputDir, + const std::string& projectDir, + const std::string& filename, + const std::string& executable, + const std::string& cmakeFilePattern, + const std::string& fileToOpen, + const std::string& sessionFilename) +{ + std::ifstream oldProjectFile(filename.c_str()); + if (!oldProjectFile) + { + this->CreateNewProjectFile(outputDir, projectDir, filename, + executable, cmakeFilePattern, + fileToOpen, sessionFilename); + return; + } + + /* Read the existing project file (line by line), copy all lines + into the new project file, except the ones which can be reliably + set from contents of the CMakeLists.txt */ + std::string tmp; + std::vector lines; + while (cmSystemTools::GetLineFromStream(oldProjectFile, tmp)) + { + lines.push_back(tmp); + } + oldProjectFile.close(); + + cmGeneratedFileStream fout(filename.c_str()); + if(!fout) + { + return; + } + + for (std::vector::const_iterator it=lines.begin(); + it!=lines.end(); it++) + { + const char* line=(*it).c_str(); + // skip these tags as they are always replaced + if ((strstr(line, "")!=0) + || (strstr(line, "")!=0) + || (strstr(line, "")!=0) + || (strstr(line, "")!=0) + || (strstr(line, "")!=0) + || (strstr(line, "")!=0)) + { + continue; + } + + // output the line from the file if it is not one of the above tags + fout<<*it<<"\n"; + // if this is the tag output the stuff that goes in the + // general tag + if (strstr(line, "")) + { + fout<< " KDevCustomProject\n"; + fout<< " " <\n"; //this one is important + fout<<" true\n"; + //and this one + } + // inside kdevcustomproject the must be put + if (strstr(line, "")) + { + fout<<" "<\n"; + } + // buildtool and builddir go inside + if (strstr(line, "")) + { + fout<<" make\n"; + fout<<" "<\n"; + } + } +} + +void cmGlobalKdevelopGenerator +::CreateNewProjectFile(const std::string& outputDir, + const std::string& projectDir, + const std::string& filename, + const std::string& executable, + const std::string& cmakeFilePattern, + const std::string& fileToOpen, + const std::string& sessionFilename) +{ + cmGeneratedFileStream fout(filename.c_str()); + if(!fout) + { + return; + } + + // check for a version control system + bool hasSvn = cmSystemTools::FileExists((projectDir + "/.svn").c_str()); + bool hasCvs = cmSystemTools::FileExists((projectDir + "/CVS").c_str()); + + bool enableCxx = (this->GlobalGenerator->GetLanguageEnabled("C") + || this->GlobalGenerator->GetLanguageEnabled("CXX")); + bool enableFortran = this->GlobalGenerator->GetLanguageEnabled("Fortran"); + std::string primaryLanguage = "C++"; + if (enableFortran && !enableCxx) + { + primaryLanguage="Fortran77"; + } + + fout<<"\n" + "\n" + " \n" + " \n" + " \n" + " $VERSION$\n" + " KDevCustomProject\n" + " " << primaryLanguage << "\n" + " \n" + " " << projectDir.c_str() << + "\n"; //this one is important + fout<<" true\n"; //and this one + + // setup additional languages + fout<<" \n"; + if (enableFortran && enableCxx) + { + fout<<" Fortran\n"; + } + if (enableCxx) + { + fout<<" C\n"; + } + fout<<" \n"; + + if (hasSvn) + { + fout << " kdevsubversion\n"; + } + else if (hasCvs) + { + fout << " kdevcvsservice\n"; + } + + fout<<" \n" + " \n" + " " << outputDir.c_str() << + "\n" + " \n" + " " << executable.c_str() << "\n" + " custom\n" + " "<\n" + " \n" + " false\n" + " true\n" + " \n" + " \n" + " \n" + " make\n"; //this one is important + fout<<" "<\n"; //and this one + fout<<" \n" + " \n" + " false\n" + " 1\n" + " false\n" + " \n" + " default\n" + " \n" + " \n" + " \n" + " \n"; + + fout<<" \n"; + for(std::vector::const_iterator dirIt=this->Blacklist.begin(); + dirIt != this->Blacklist.end(); + ++dirIt) + { + fout<<" " << dirIt->c_str() << "\n"; + } + fout<<" \n"; + + fout<<" \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " html/\n" + " html/\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n"; + + if (enableCxx) + { + fout<<" \n" + " \n" + " .h\n" + " .cpp\n" + " \n" + " \n" + " \n" + " \n" + " true\n" + " true\n" + " true\n" + " false\n" + " true\n" + " true\n" + " true\n" + " 250\n" + " 400\n" + " 250\n" + " \n" + " \n" + " \n"; + } + + if (enableFortran) + { + fout<<" \n" + " \n" + " false\n" + " false\n" + " false\n" + " false\n" + " false\n" + " false\n" + " false\n" + " false\n" + " false\n" + " false\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n"; + } + + // set up file groups. maybe this can be used with the CMake SOURCE_GROUP() + // command + fout<<" \n" + " \n" + " \n"; + + if (enableCxx) + { + fout<<" \n" + " \n" + " \n"; + } + + if (enableFortran) + { + fout<<" \n"; + } + + fout<<" \n" + " true\n" + " \n" + " \n" + " *.o,*.lo,CVS,*~,cmake*\n" + " true\n" + " \n" + " \n" + "\n"; + + if (sessionFilename.empty()) + { + return; + } + + // and a session file, so that kdevelop opens a file if it opens the + // project the first time + cmGeneratedFileStream devses(sessionFilename.c_str()); + if(!devses) + { + return; + } + devses<<"\n" + "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n"; +} + diff --git a/CMakeLua/Source/cmGlobalKdevelopGenerator.h b/CMakeLua/Source/cmGlobalKdevelopGenerator.h new file mode 100644 index 0000000..dca88e7 --- /dev/null +++ b/CMakeLua/Source/cmGlobalKdevelopGenerator.h @@ -0,0 +1,98 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalKdevelopGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/26 23:27:33 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalKdevelopGenerator_h +#define cmGlobalKdevelopGenerator_h + +#include "cmExternalMakefileProjectGenerator.h" + +class cmLocalGenerator; + +/** \class cmGlobalKdevelopGenerator + * \brief Write Unix Makefiles accompanied by KDevelop3 project files. + * + * cmGlobalKdevelopGenerator produces a project file for KDevelop 3 (KDevelop + * > 3.1.1). The project is based on the "Custom Makefile based C/C++" + * project of KDevelop. Such a project consists of Unix Makefiles in the + * build directory together with a .kdevelop project file, + * which contains the project settings and a .kdevelop.filelist + * file, which lists the source files relative to the kdevelop project + * directory. The kdevelop project directory is the base source directory. + */ +class cmGlobalKdevelopGenerator : public cmExternalMakefileProjectGenerator +{ +public: + cmGlobalKdevelopGenerator(); + virtual void SetGlobalGenerator(cmGlobalGenerator* generator); + + virtual const char* GetName() const + { return cmGlobalKdevelopGenerator::GetActualName();} + static const char* GetActualName() { return "KDevelop3";} + static cmExternalMakefileProjectGenerator* New() + { return new cmGlobalKdevelopGenerator; } + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry, + const char* fullName) const; + + virtual void Generate(); +private: + /*** Create the foo.kdevelop.filelist file, return false if it doesn't + succeed. If the file already exists the contents will be merged. + */ + bool CreateFilelistFile(const std::vector& lgs, + const std::string& outputDir, + const std::string& projectDirIn, + const std::string& projectname, + std::string& cmakeFilePattern, + std::string& fileToOpen); + + /** Create the foo.kdevelop file. This one calls MergeProjectFiles() + if it already exists, otherwise createNewProjectFile() The project + files will be created in \a outputDir (in the build tree), the + kdevelop project dir will be set to \a projectDir (in the source + tree). \a cmakeFilePattern consists of a lists of all cmake + listfiles used by this CMakeLists.txt */ + void CreateProjectFile(const std::string& outputDir, + const std::string& projectDir, + const std::string& projectname, + const std::string& executable, + const std::string& cmakeFilePattern, + const std::string& fileToOpen); + + /*** Reads the old foo.kdevelop line by line and only replaces the + "important" lines + */ + void MergeProjectFiles(const std::string& outputDir, + const std::string& projectDir, + const std::string& filename, + const std::string& executable, + const std::string& cmakeFilePattern, + const std::string& fileToOpen, + const std::string& sessionFilename); + ///! Creates a new foo.kdevelop and a new foo.kdevses file + void CreateNewProjectFile(const std::string& outputDir, + const std::string& projectDir, + const std::string& filename, + const std::string& executable, + const std::string& cmakeFilePattern, + const std::string& fileToOpen, + const std::string& sessionFilename); + + std::vector Blacklist; +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalMSYSMakefileGenerator.cxx b/CMakeLua/Source/cmGlobalMSYSMakefileGenerator.cxx new file mode 100644 index 0000000..bf2c53c --- /dev/null +++ b/CMakeLua/Source/cmGlobalMSYSMakefileGenerator.cxx @@ -0,0 +1,110 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalMSYSMakefileGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalMSYSMakefileGenerator.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmake.h" + +cmGlobalMSYSMakefileGenerator::cmGlobalMSYSMakefileGenerator() +{ + this->FindMakeProgramFile = "CMakeMSYSFindMake.cmake"; + this->ForceUnixPaths = true; + this->ToolSupportsColor = true; + this->UseLinkScript = false; +} + +std::string +cmGlobalMSYSMakefileGenerator::FindMinGW(std::string const& makeloc) +{ + std::string fstab = makeloc; + fstab += "/../etc/fstab"; + std::ifstream fin(fstab.c_str()); + std::string path; + std::string mount; + std::string mingwBin; + while(fin) + { + fin >> path; + fin >> mount; + if(mount == "/mingw") + { + mingwBin = path; + mingwBin += "/bin"; + } + } + return mingwBin; +} + +void cmGlobalMSYSMakefileGenerator +::EnableLanguage(std::vectorconst& l, + cmMakefile *mf, + bool optional) +{ + this->FindMakeProgram(mf); + std::string makeProgram = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + std::vector locations; + std::string makeloc = cmSystemTools::GetProgramPath(makeProgram.c_str()); + locations.push_back(this->FindMinGW(makeloc)); + locations.push_back(makeloc); + locations.push_back("/mingw/bin"); + locations.push_back("c:/mingw/bin"); + std::string tgcc = cmSystemTools::FindProgram("gcc", locations); + std::string gcc = "gcc.exe"; + if(tgcc.size()) + { + gcc = tgcc; + } + std::string tgxx = cmSystemTools::FindProgram("g++", locations); + std::string gxx = "g++.exe"; + if(tgxx.size()) + { + gxx = tgxx; + } + mf->AddDefinition("MSYS", "1"); + mf->AddDefinition("CMAKE_GENERATOR_CC", gcc.c_str()); + mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx.c_str()); + this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); + if(!mf->IsSet("CMAKE_AR") && !this->CMakeInstance->GetIsInTryCompile()) + { + cmSystemTools::Error + ("CMAKE_AR was not found, please set to archive program. ", + mf->GetDefinition("CMAKE_AR")); + } +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalMSYSMakefileGenerator::CreateLocalGenerator() +{ + cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3; + lg->SetWindowsShell(false); + lg->SetMSYSShell(true); + lg->SetGlobalGenerator(this); + lg->SetIgnoreLibPrefix(true); + lg->SetPassMakeflags(false); + lg->SetUnixCD(true); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalMSYSMakefileGenerator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates MSYS makefiles."; + entry.Full = "The makefiles use /bin/sh as the shell. " + "They require msys to be installed on the machine."; +} diff --git a/CMakeLua/Source/cmGlobalMSYSMakefileGenerator.h b/CMakeLua/Source/cmGlobalMSYSMakefileGenerator.h new file mode 100644 index 0000000..c02e289 --- /dev/null +++ b/CMakeLua/Source/cmGlobalMSYSMakefileGenerator.h @@ -0,0 +1,56 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalMSYSMakefileGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/09 19:57:30 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalMSYSMakefileGenerator_h +#define cmGlobalMSYSMakefileGenerator_h + +#include "cmGlobalUnixMakefileGenerator3.h" + +/** \class cmGlobalMSYSMakefileGenerator + * \brief Write a NMake makefiles. + * + * cmGlobalMSYSMakefileGenerator manages nmake build process for a tree + */ +class cmGlobalMSYSMakefileGenerator : public cmGlobalUnixMakefileGenerator3 +{ +public: + cmGlobalMSYSMakefileGenerator(); + static cmGlobalGenerator* New() { + return new cmGlobalMSYSMakefileGenerator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalMSYSMakefileGenerator::GetActualName();} + static const char* GetActualName() {return "MSYS Makefiles";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); + +private: + std::string FindMinGW(std::string const& makeloc); +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalMinGWMakefileGenerator.cxx b/CMakeLua/Source/cmGlobalMinGWMakefileGenerator.cxx new file mode 100644 index 0000000..949f2ac --- /dev/null +++ b/CMakeLua/Source/cmGlobalMinGWMakefileGenerator.cxx @@ -0,0 +1,90 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalMinGWMakefileGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalMinGWMakefileGenerator.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" + +cmGlobalMinGWMakefileGenerator::cmGlobalMinGWMakefileGenerator() +{ + this->FindMakeProgramFile = "CMakeMinGWFindMake.cmake"; + this->ForceUnixPaths = true; + this->ToolSupportsColor = true; + this->UseLinkScript = true; +} + +void cmGlobalMinGWMakefileGenerator +::EnableLanguage(std::vectorconst& l, + cmMakefile *mf, + bool optional) +{ + this->FindMakeProgram(mf); + std::string makeProgram = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + std::vector locations; + locations.push_back(cmSystemTools::GetProgramPath(makeProgram.c_str())); + locations.push_back("/mingw/bin"); + locations.push_back("c:/mingw/bin"); + std::string tgcc = cmSystemTools::FindProgram("gcc", locations); + std::string gcc = "gcc.exe"; + if(tgcc.size()) + { + gcc = tgcc; + } + std::string tgxx = cmSystemTools::FindProgram("g++", locations); + std::string gxx = "g++.exe"; + if(tgxx.size()) + { + gxx = tgxx; + } + mf->AddDefinition("CMAKE_GENERATOR_CC", gcc.c_str()); + mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx.c_str()); + this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalMinGWMakefileGenerator::CreateLocalGenerator() +{ + cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3; + lg->SetWindowsShell(true); + lg->SetGlobalGenerator(this); + lg->SetIgnoreLibPrefix(true); + lg->SetPassMakeflags(false); + lg->SetUnixCD(true); + lg->SetMinGWMake(true); + + // mingw32-make has trouble running code like + // + // @echo message with spaces + // + // If quotes are added + // + // @echo "message with spaces" + // + // it runs but the quotes are displayed. Instead just use cmake to + // echo. + lg->SetNativeEchoCommand("@$(CMAKE_COMMAND) -E echo ", false); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalMinGWMakefileGenerator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates a make file for use with mingw32-make."; + entry.Full = "The makefiles generated use cmd.exe as the shell. " + "They do not require msys or a unix shell."; +} diff --git a/CMakeLua/Source/cmGlobalMinGWMakefileGenerator.h b/CMakeLua/Source/cmGlobalMinGWMakefileGenerator.h new file mode 100644 index 0000000..7e92a84 --- /dev/null +++ b/CMakeLua/Source/cmGlobalMinGWMakefileGenerator.h @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalMinGWMakefileGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/09 19:57:30 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalMinGWMakefileGenerator_h +#define cmGlobalMinGWMakefileGenerator_h + +#include "cmGlobalUnixMakefileGenerator3.h" + +/** \class cmGlobalMinGWMakefileGenerator + * \brief Write a NMake makefiles. + * + * cmGlobalMinGWMakefileGenerator manages nmake build process for a tree + */ +class cmGlobalMinGWMakefileGenerator : public cmGlobalUnixMakefileGenerator3 +{ +public: + cmGlobalMinGWMakefileGenerator(); + static cmGlobalGenerator* New() { + return new cmGlobalMinGWMakefileGenerator; } + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalMinGWMakefileGenerator::GetActualName();} + static const char* GetActualName() {return "MinGW Makefiles";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalNMakeMakefileGenerator.cxx b/CMakeLua/Source/cmGlobalNMakeMakefileGenerator.cxx new file mode 100644 index 0000000..a20bf89 --- /dev/null +++ b/CMakeLua/Source/cmGlobalNMakeMakefileGenerator.cxx @@ -0,0 +1,62 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalNMakeMakefileGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/13 21:36:20 $ + Version: $Revision: 1.26 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalNMakeMakefileGenerator.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" + +cmGlobalNMakeMakefileGenerator::cmGlobalNMakeMakefileGenerator() +{ + this->FindMakeProgramFile = "CMakeNMakeFindMake.cmake"; + this->ForceUnixPaths = false; + this->ToolSupportsColor = true; + this->UseLinkScript = false; +} + +void cmGlobalNMakeMakefileGenerator +::EnableLanguage(std::vectorconst& l, + cmMakefile *mf, + bool optional) +{ + // pick a default + mf->AddDefinition("CMAKE_GENERATOR_CC", "cl"); + mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl"); + this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalNMakeMakefileGenerator::CreateLocalGenerator() +{ + cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3; + lg->SetDefineWindowsNULL(true); + lg->SetWindowsShell(true); + lg->SetMakeSilentFlag("/nologo"); + lg->SetGlobalGenerator(this); + lg->SetIgnoreLibPrefix(true); + lg->SetPassMakeflags(true); + lg->SetNMake(true); + lg->SetUnixCD(false); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalNMakeMakefileGenerator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates NMake makefiles."; + entry.Full = ""; +} diff --git a/CMakeLua/Source/cmGlobalNMakeMakefileGenerator.h b/CMakeLua/Source/cmGlobalNMakeMakefileGenerator.h new file mode 100644 index 0000000..df0dbf3 --- /dev/null +++ b/CMakeLua/Source/cmGlobalNMakeMakefileGenerator.h @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalNMakeMakefileGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/09 19:57:30 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalNMakeMakefileGenerator_h +#define cmGlobalNMakeMakefileGenerator_h + +#include "cmGlobalUnixMakefileGenerator3.h" + +/** \class cmGlobalNMakeMakefileGenerator + * \brief Write a NMake makefiles. + * + * cmGlobalNMakeMakefileGenerator manages nmake build process for a tree + */ +class cmGlobalNMakeMakefileGenerator : public cmGlobalUnixMakefileGenerator3 +{ +public: + cmGlobalNMakeMakefileGenerator(); + static cmGlobalGenerator* New() { + return new cmGlobalNMakeMakefileGenerator; } + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalNMakeMakefileGenerator::GetActualName();} + static const char* GetActualName() {return "NMake Makefiles";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalUnixMakefileGenerator3.cxx b/CMakeLua/Source/cmGlobalUnixMakefileGenerator3.cxx new file mode 100644 index 0000000..c7bc734 --- /dev/null +++ b/CMakeLua/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -0,0 +1,997 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator3 + Module: $RCSfile: cmGlobalUnixMakefileGenerator3.cxx,v $ + Language: C++ + Date: $Date: 2008/01/31 03:56:34 $ + Version: $Revision: 1.125 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmake.h" +#include "cmGeneratedFileStream.h" +#include "cmSourceFile.h" +#include "cmTarget.h" + +cmGlobalUnixMakefileGenerator3::cmGlobalUnixMakefileGenerator3() +{ + // This type of makefile always requires unix style paths + this->ForceUnixPaths = true; + this->FindMakeProgramFile = "CMakeUnixFindMake.cmake"; + this->ToolSupportsColor = true; + this->ForceVerboseMakefiles = false; + +#ifdef _WIN32 + this->UseLinkScript = false; +#else + this->UseLinkScript = true; +#endif +} + +void cmGlobalUnixMakefileGenerator3 +::EnableLanguage(std::vectorconst& languages, + cmMakefile *mf, + bool optional) +{ + this->cmGlobalGenerator::EnableLanguage(languages, mf, optional); + std::string path; + for(std::vector::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + if(*l == "NONE") + { + continue; + } + const char* lang = l->c_str(); + std::string langComp = "CMAKE_"; + langComp += lang; + langComp += "_COMPILER"; + + if(!mf->GetDefinition(langComp.c_str())) + { + cmSystemTools::Error(langComp.c_str(), + " not set, after EnableLanguage"); + continue; + } + const char* name = mf->GetRequiredDefinition(langComp.c_str()); + if(!cmSystemTools::FileIsFullPath(name)) + { + path = cmSystemTools::FindProgram(name); + } + else + { + path = name; + } + if((path.size() == 0 || !cmSystemTools::FileExists(path.c_str())) + && (optional==false)) + { + std::string message = "your "; + message += lang; + message += " compiler: \""; + message += name; + message += "\" was not found. Please set "; + message += langComp; + message += " to a valid compiler path or name."; + cmSystemTools::Error(message.c_str()); + path = name; + } + std::string doc = lang; + doc += " compiler."; + const char* cname = this->GetCMakeInstance()-> + GetCacheManager()->GetCacheValue(langComp.c_str()); + std::string changeVars; + if(cname && (path != cname)) + { + const char* cvars = + this->GetCMakeInstance()->GetProperty( + "__CMAKE_DELETE_CACHE_CHANGE_VARS_"); + if(cvars) + { + changeVars += cvars; + changeVars += ";"; + } + changeVars += langComp; + changeVars += ";"; + changeVars += cname; + this->GetCMakeInstance()->SetProperty( + "__CMAKE_DELETE_CACHE_CHANGE_VARS_", + changeVars.c_str()); + } + mf->AddCacheDefinition(langComp.c_str(), path.c_str(), + doc.c_str(), cmCacheManager::FILEPATH); + } +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalUnixMakefileGenerator3::CreateLocalGenerator() +{ + cmLocalGenerator* lg = new cmLocalUnixMakefileGenerator3; + lg->SetGlobalGenerator(this); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalUnixMakefileGenerator3 +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates standard UNIX makefiles."; + entry.Full = + "A hierarchy of UNIX makefiles is generated into the build tree. Any " + "standard UNIX-style make program can build the project through the " + "default make target. A \"make install\" target is also provided."; +} + +//---------------------------------------------------------------------------- +void cmGlobalUnixMakefileGenerator3::Generate() +{ + // first do superclass method + this->cmGlobalGenerator::Generate(); + + // initialize progress + unsigned int i; + unsigned long total = 0; + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + cmLocalUnixMakefileGenerator3 *lg = + static_cast(this->LocalGenerators[i]); + total += lg->GetNumberOfProgressActions(); + } + + // write each target's progress.make this loop is done twice. Bascially the + // Generate pass counts all the actions, the first loop below determines + // how many actions have progress updates for each target and writes to + // corrrect variable values for everything except the all targets. The + // second loop actually writes out correct values for the all targets as + // well. This is because the all targets require more information that is + // computed in the first loop. + unsigned long current = 0; + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + cmLocalUnixMakefileGenerator3 *lg = + static_cast(this->LocalGenerators[i]); + lg->WriteProgressVariables(total,current); + } + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + cmLocalUnixMakefileGenerator3 *lg = + static_cast(this->LocalGenerators[i]); + lg->WriteAllProgressVariable(); + } + + // write the main makefile + this->WriteMainMakefile2(); + this->WriteMainCMakefile(); +} + +void cmGlobalUnixMakefileGenerator3::WriteMainMakefile2() +{ + // Open the output file. This should not be copy-if-different + // because the check-build-system step compares the makefile time to + // see if the build system must be regenerated. + std::string makefileName = + this->GetCMakeInstance()->GetHomeOutputDirectory(); + makefileName += cmake::GetCMakeFilesDirectory(); + makefileName += "/Makefile2"; + cmGeneratedFileStream makefileStream(makefileName.c_str()); + if(!makefileStream) + { + return; + } + + // get a local generator for some useful methods + cmLocalUnixMakefileGenerator3 *lg = + static_cast(this->LocalGenerators[0]); + + // Write the do not edit header. + lg->WriteDisclaimer(makefileStream); + + // Write the main entry point target. This must be the VERY first + // target so that make with no arguments will run it. + // Just depend on the all target to drive the build. + std::vector depends; + std::vector no_commands; + depends.push_back("all"); + + // Write the rule. + lg->WriteMakeRule(makefileStream, + "Default target executed when no arguments are " + "given to make.", + "default_target", + depends, + no_commands, true); + + depends.clear(); + + // The all and preinstall rules might never have any dependencies + // added to them. + if(this->EmptyRuleHackDepends != "") + { + depends.push_back(this->EmptyRuleHackDepends); + } + + // Write and empty all: + lg->WriteMakeRule(makefileStream, + "The main recursive all target", "all", + depends, no_commands, true); + + // Write an empty preinstall: + lg->WriteMakeRule(makefileStream, + "The main recursive preinstall target", "preinstall", + depends, no_commands, true); + + // Write out the "special" stuff + lg->WriteSpecialTargetsTop(makefileStream); + + // write the target convenience rules + unsigned int i; + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + lg = + static_cast(this->LocalGenerators[i]); + this->WriteConvenienceRules2(makefileStream,lg); + } + + lg = static_cast(this->LocalGenerators[0]); + lg->WriteSpecialTargetsBottom(makefileStream); +} + + +//---------------------------------------------------------------------------- +void cmGlobalUnixMakefileGenerator3::WriteMainCMakefile() +{ + // Open the output file. This should not be copy-if-different + // because the check-build-system step compares the makefile time to + // see if the build system must be regenerated. + std::string cmakefileName = + this->GetCMakeInstance()->GetHomeOutputDirectory(); + cmakefileName += cmake::GetCMakeFilesDirectory(); + cmakefileName += "/Makefile.cmake"; + cmGeneratedFileStream cmakefileStream(cmakefileName.c_str()); + if(!cmakefileStream) + { + return; + } + + std::string makefileName = + this->GetCMakeInstance()->GetHomeOutputDirectory(); + makefileName += "/Makefile"; + + // get a local generator for some useful methods + cmLocalUnixMakefileGenerator3 *lg = + static_cast(this->LocalGenerators[0]); + + // Write the do not edit header. + lg->WriteDisclaimer(cmakefileStream); + + // Save the generator name + cmakefileStream + << "# The generator used is:\n" + << "SET(CMAKE_DEPENDS_GENERATOR \"" << this->GetName() << "\")\n\n"; + + // for each cmMakefile get its list of dependencies + std::vector lfiles; + for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i) + { + lg = + static_cast(this->LocalGenerators[i]); + + // Get the list of files contributing to this generation step. + lfiles.insert(lfiles.end(),lg->GetMakefile()->GetListFiles().begin(), + lg->GetMakefile()->GetListFiles().end()); + } + // Sort the list and remove duplicates. + std::sort(lfiles.begin(), lfiles.end(), std::less()); + std::vector::iterator new_end = + std::unique(lfiles.begin(),lfiles.end()); + lfiles.erase(new_end, lfiles.end()); + + // reset lg to the first makefile + lg = static_cast(this->LocalGenerators[0]); + + // Build the path to the cache file. + std::string cache = this->GetCMakeInstance()->GetHomeOutputDirectory(); + cache += "/CMakeCache.txt"; + + // Save the list to the cmake file. + cmakefileStream + << "# The top level Makefile was generated from the following files:\n" + << "SET(CMAKE_MAKEFILE_DEPENDS\n" + << " \"" + << lg->Convert(cache.c_str(), + cmLocalGenerator::START_OUTPUT).c_str() << "\"\n"; + for(std::vector::const_iterator i = lfiles.begin(); + i != lfiles.end(); ++i) + { + cmakefileStream + << " \"" + << lg->Convert(i->c_str(), cmLocalGenerator::START_OUTPUT).c_str() + << "\"\n"; + } + cmakefileStream + << " )\n\n"; + + // Build the path to the cache check file. + std::string check = this->GetCMakeInstance()->GetHomeOutputDirectory(); + check += cmake::GetCMakeFilesDirectory(); + check += "/cmake.check_cache"; + + // Set the corresponding makefile in the cmake file. + cmakefileStream + << "# The corresponding makefile is:\n" + << "SET(CMAKE_MAKEFILE_OUTPUTS\n" + << " \"" + << lg->Convert(makefileName.c_str(), + cmLocalGenerator::START_OUTPUT).c_str() << "\"\n" + << " \"" + << lg->Convert(check.c_str(), + cmLocalGenerator::START_OUTPUT).c_str() << "\"\n"; + + // add in all the directory information files + std::string tmpStr; + for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i) + { + lg = + static_cast(this->LocalGenerators[i]); + tmpStr = lg->GetMakefile()->GetStartOutputDirectory(); + tmpStr += cmake::GetCMakeFilesDirectory(); + tmpStr += "/CMakeDirectoryInformation.cmake"; + cmakefileStream << " \"" << + lg->Convert(tmpStr.c_str(),cmLocalGenerator::HOME_OUTPUT).c_str() + << "\"\n"; + const std::vector& outfiles = + lg->GetMakefile()->GetOutputFiles(); + for(std::vector::const_iterator k= outfiles.begin(); + k != outfiles.end(); ++k) + { + cmakefileStream << " \"" << + lg->Convert(k->c_str(),cmLocalGenerator::HOME_OUTPUT).c_str() + << "\"\n"; + } + } + cmakefileStream << " )\n\n"; + + this->WriteMainCMakefileLanguageRules(cmakefileStream, + this->LocalGenerators); +} + +void cmGlobalUnixMakefileGenerator3 +::WriteMainCMakefileLanguageRules(cmGeneratedFileStream& cmakefileStream, + std::vector &lGenerators + ) +{ + cmLocalUnixMakefileGenerator3 *lg; + + // now list all the target info files + cmakefileStream + << "# Dependency information for all targets:\n"; + cmakefileStream + << "SET(CMAKE_DEPEND_INFO_FILES\n"; + for (unsigned int i = 0; i < lGenerators.size(); ++i) + { + lg = static_cast(lGenerators[i]); + // for all of out targets + for (cmTargets::iterator l = lg->GetMakefile()->GetTargets().begin(); + l != lg->GetMakefile()->GetTargets().end(); l++) + { + if((l->second.GetType() == cmTarget::EXECUTABLE) || + (l->second.GetType() == cmTarget::STATIC_LIBRARY) || + (l->second.GetType() == cmTarget::SHARED_LIBRARY) || + (l->second.GetType() == cmTarget::MODULE_LIBRARY) || + (l->second.GetType() == cmTarget::UTILITY)) + { + std::string tname = lg->GetRelativeTargetDirectory(l->second); + tname += "/DependInfo.cmake"; + cmSystemTools::ConvertToUnixSlashes(tname); + cmakefileStream << " \"" << tname.c_str() << "\"\n"; + } + } + } + cmakefileStream << " )\n"; +} + +//---------------------------------------------------------------------------- +void +cmGlobalUnixMakefileGenerator3 +::WriteDirectoryRule2(std::ostream& ruleFileStream, + cmLocalUnixMakefileGenerator3* lg, + const char* pass, bool check_all, + bool check_relink) +{ + // Get the relative path to the subdirectory from the top. + std::string makeTarget = lg->GetMakefile()->GetStartOutputDirectory(); + makeTarget += "/"; + makeTarget += pass; + + // The directory-level rule should depend on the target-level rules + // for all targets in the directory. + std::vector depends; + for(cmTargets::iterator l = lg->GetMakefile()->GetTargets().begin(); + l != lg->GetMakefile()->GetTargets().end(); ++l) + { + if((l->second.GetType() == cmTarget::EXECUTABLE) || + (l->second.GetType() == cmTarget::STATIC_LIBRARY) || + (l->second.GetType() == cmTarget::SHARED_LIBRARY) || + (l->second.GetType() == cmTarget::MODULE_LIBRARY) || + (l->second.GetType() == cmTarget::UTILITY)) + { + // Add this to the list of depends rules in this directory. + if((!check_all || !l->second.GetPropertyAsBool("EXCLUDE_FROM_ALL")) && + (!check_relink || l->second.NeedRelinkBeforeInstall())) + { + std::string tname = lg->GetRelativeTargetDirectory(l->second); + tname += "/"; + tname += pass; + depends.push_back(tname); + } + } + } + + // The directory-level rule should depend on the directory-level + // rules of the subdirectories. + for(std::vector::iterator sdi = + lg->GetChildren().begin(); sdi != lg->GetChildren().end(); ++sdi) + { + cmLocalUnixMakefileGenerator3* slg = + static_cast(*sdi); + std::string subdir = slg->GetMakefile()->GetStartOutputDirectory(); + subdir += "/"; + subdir += pass; + depends.push_back(subdir); + } + + // Work-around for makes that drop rules that have no dependencies + // or commands. + if(depends.empty() && this->EmptyRuleHackDepends != "") + { + depends.push_back(this->EmptyRuleHackDepends); + } + + // Write the rule. + std::string doc = "Convenience name for \""; + doc += pass; + doc += "\" pass in the directory."; + std::vector no_commands; + lg->WriteMakeRule(ruleFileStream, doc.c_str(), + makeTarget.c_str(), depends, no_commands, true); +} + +//---------------------------------------------------------------------------- +void +cmGlobalUnixMakefileGenerator3 +::WriteDirectoryRules2(std::ostream& ruleFileStream, + cmLocalUnixMakefileGenerator3* lg) +{ + // Only subdirectories need these rules. + if(!lg->GetParent()) + { + return; + } + + // Begin the directory-level rules section. + std::string dir = lg->GetMakefile()->GetStartOutputDirectory(); + dir = lg->Convert(dir.c_str(), cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE); + lg->WriteDivider(ruleFileStream); + ruleFileStream + << "# Directory level rules for directory " + << dir << "\n\n"; + + // Write directory-level rules for "all". + this->WriteDirectoryRule2(ruleFileStream, lg, "all", true, false); + + // Write directory-level rules for "clean". + this->WriteDirectoryRule2(ruleFileStream, lg, "clean", false, false); + + // Write directory-level rules for "preinstall". + this->WriteDirectoryRule2(ruleFileStream, lg, "preinstall", true, true); +} + + +std::string cmGlobalUnixMakefileGenerator3 +::GenerateBuildCommand(const char* makeProgram, const char *projectName, + const char* additionalOptions, const char *targetName, + const char* config, bool ignoreErrors, bool fast) +{ + // Project name and config are not used yet. + (void)projectName; + (void)config; + + std::string makeCommand = + cmSystemTools::ConvertToUnixOutputPath(makeProgram); + + // Since we have full control over the invocation of nmake, let us + // make it quiet. + if ( strcmp(this->GetName(), "NMake Makefiles") == 0 ) + { + makeCommand += " /NOLOGO "; + } + if ( ignoreErrors ) + { + makeCommand += " -i"; + } + if ( additionalOptions ) + { + makeCommand += " "; + makeCommand += additionalOptions; + } + if ( targetName && strlen(targetName)) + { + cmLocalUnixMakefileGenerator3 *lg; + if (this->LocalGenerators.size()) + { + lg = static_cast + (this->LocalGenerators[0]); + } + else + { + lg = static_cast + (this->CreateLocalGenerator()); + // set the Start directories + lg->GetMakefile()->SetStartDirectory + (this->CMakeInstance->GetStartDirectory()); + lg->GetMakefile()->SetStartOutputDirectory + (this->CMakeInstance->GetStartOutputDirectory()); + lg->GetMakefile()->MakeStartDirectoriesCurrent(); + } + + makeCommand += " \""; + std::string tname = targetName; + if(fast) + { + tname += "/fast"; + } + tname = lg->Convert(tname.c_str(),cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE); + makeCommand += tname.c_str(); + makeCommand += "\""; + if (!this->LocalGenerators.size()) + { + delete lg; + } + } + return makeCommand; +} + +//---------------------------------------------------------------------------- +void +cmGlobalUnixMakefileGenerator3 +::WriteConvenienceRules(std::ostream& ruleFileStream, + std::set &emitted) +{ + std::vector depends; + std::vector commands; + + depends.push_back("cmake_check_build_system"); + + // write the target convenience rules + unsigned int i; + cmLocalUnixMakefileGenerator3 *lg; + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + lg = static_cast + (this->LocalGenerators[i]); + // for each target Generate the rule files for each target. + cmTargets& targets = lg->GetMakefile()->GetTargets(); + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + // Don't emit the same rule twice (e.g. two targets with the same + // simple name) + if(t->second.GetName() && + strlen(t->second.GetName()) && + emitted.insert(t->second.GetName()).second && + // Handle user targets here. Global targets are handled in + // the local generator on a per-directory basis. + ((t->second.GetType() == cmTarget::EXECUTABLE) || + (t->second.GetType() == cmTarget::STATIC_LIBRARY) || + (t->second.GetType() == cmTarget::SHARED_LIBRARY) || + (t->second.GetType() == cmTarget::MODULE_LIBRARY) || + (t->second.GetType() == cmTarget::UTILITY))) + { + // Add a rule to build the target by name. + lg->WriteDivider(ruleFileStream); + ruleFileStream + << "# Target rules for targets named " + << t->second.GetName() << "\n\n"; + + // Write the rule. + commands.clear(); + std::string tmp = cmake::GetCMakeFilesDirectoryPostSlash(); + tmp += "Makefile2"; + commands.push_back(lg->GetRecursiveMakeCall + (tmp.c_str(),t->second.GetName())); + depends.clear(); + depends.push_back("cmake_check_build_system"); + lg->WriteMakeRule(ruleFileStream, + "Build rule for target.", + t->second.GetName(), depends, commands, + true); + + // Add a fast rule to build the target + std::string localName = lg->GetRelativeTargetDirectory(t->second); + std::string makefileName; + makefileName = localName; + makefileName += "/build.make"; + depends.clear(); + commands.clear(); + std::string makeTargetName = localName; + makeTargetName += "/build"; + localName = t->second.GetName(); + localName += "/fast"; + commands.push_back(lg->GetRecursiveMakeCall + (makefileName.c_str(), makeTargetName.c_str())); + lg->WriteMakeRule(ruleFileStream, "fast build rule for target.", + localName.c_str(), depends, commands, true); + + // Add a local name for the rule to relink the target before + // installation. + if(t->second.NeedRelinkBeforeInstall()) + { + makeTargetName = lg->GetRelativeTargetDirectory(t->second); + makeTargetName += "/preinstall"; + localName = t->second.GetName(); + localName += "/preinstall"; + depends.clear(); + commands.clear(); + commands.push_back(lg->GetRecursiveMakeCall + (makefileName.c_str(), makeTargetName.c_str())); + lg->WriteMakeRule(ruleFileStream, + "Manual pre-install relink rule for target.", + localName.c_str(), depends, commands, true); + } + } + } + } +} + + +//---------------------------------------------------------------------------- +void +cmGlobalUnixMakefileGenerator3 +::WriteConvenienceRules2(std::ostream& ruleFileStream, + cmLocalUnixMakefileGenerator3 *lg) +{ + std::vector depends; + std::vector commands; + std::string localName; + std::string makeTargetName; + + + // write the directory level rules for this local gen + this->WriteDirectoryRules2(ruleFileStream,lg); + + depends.push_back("cmake_check_build_system"); + + // for each target Generate the rule files for each target. + cmTargets& targets = lg->GetMakefile()->GetTargets(); + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + if (t->second.GetName() + && strlen(t->second.GetName()) + && ((t->second.GetType() == cmTarget::EXECUTABLE) + || (t->second.GetType() == cmTarget::STATIC_LIBRARY) + || (t->second.GetType() == cmTarget::SHARED_LIBRARY) + || (t->second.GetType() == cmTarget::MODULE_LIBRARY) + || (t->second.GetType() == cmTarget::UTILITY))) + { + std::string makefileName; + // Add a rule to build the target by name. + localName = lg->GetRelativeTargetDirectory(t->second); + makefileName = localName; + makefileName += "/build.make"; + + bool needRequiresStep = this->NeedRequiresStep(t->second); + + lg->WriteDivider(ruleFileStream); + ruleFileStream + << "# Target rules for target " + << localName << "\n\n"; + + commands.clear(); + makeTargetName = localName; + makeTargetName += "/depend"; + commands.push_back(lg->GetRecursiveMakeCall + (makefileName.c_str(),makeTargetName.c_str())); + + // add requires if we need it for this generator + if (needRequiresStep) + { + makeTargetName = localName; + makeTargetName += "/requires"; + commands.push_back(lg->GetRecursiveMakeCall + (makefileName.c_str(),makeTargetName.c_str())); + } + makeTargetName = localName; + makeTargetName += "/build"; + commands.push_back(lg->GetRecursiveMakeCall + (makefileName.c_str(),makeTargetName.c_str())); + + // Write the rule. + localName += "/all"; + depends.clear(); + + std::string progressDir = + lg->GetMakefile()->GetHomeOutputDirectory(); + progressDir += cmake::GetCMakeFilesDirectory(); + { + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report "; + // all target counts + progCmd << lg->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + progCmd << " "; + std::vector &progFiles = lg->ProgressFiles[t->first]; + for (std::vector::iterator i = progFiles.begin(); + i != progFiles.end(); ++i) + { + progCmd << " " << *i; + } + commands.push_back(progCmd.str()); + } + progressDir = "Built target "; + progressDir += t->first; + lg->AppendEcho(commands,progressDir.c_str()); + + this->AppendGlobalTargetDepends(depends,t->second); + lg->WriteMakeRule(ruleFileStream, "All Build rule for target.", + localName.c_str(), depends, commands, true); + + // add the all/all dependency + if(!this->IsExcluded(this->LocalGenerators[0], t->second)) + { + depends.clear(); + depends.push_back(localName); + commands.clear(); + lg->WriteMakeRule(ruleFileStream, "Include target in all.", + "all", depends, commands, true); + } + + // Write the rule. + commands.clear(); + progressDir = lg->GetMakefile()->GetHomeOutputDirectory(); + progressDir += cmake::GetCMakeFilesDirectory(); + + { + // TODO: Convert the total progress count to a make variable. + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; + // # in target + progCmd << lg->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + // + std::set emitted; + progCmd << " " + << this->GetTargetTotalNumberOfActions(t->second, + emitted); + commands.push_back(progCmd.str()); + } + std::string tmp = cmake::GetCMakeFilesDirectoryPostSlash(); + tmp += "Makefile2"; + commands.push_back(lg->GetRecursiveMakeCall + (tmp.c_str(),localName.c_str())); + { + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0 + progCmd << lg->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + progCmd << " 0"; + commands.push_back(progCmd.str()); + } + depends.clear(); + depends.push_back("cmake_check_build_system"); + localName = lg->GetRelativeTargetDirectory(t->second); + localName += "/rule"; + lg->WriteMakeRule(ruleFileStream, + "Build rule for subdir invocation for target.", + localName.c_str(), depends, commands, true); + + // Add a target with the canonical name (no prefix, suffix or path). + commands.clear(); + depends.clear(); + depends.push_back(localName); + lg->WriteMakeRule(ruleFileStream, "Convenience name for target.", + t->second.GetName(), depends, commands, true); + + // Add rules to prepare the target for installation. + if(t->second.NeedRelinkBeforeInstall()) + { + localName = lg->GetRelativeTargetDirectory(t->second); + localName += "/preinstall"; + depends.clear(); + commands.clear(); + commands.push_back(lg->GetRecursiveMakeCall + (makefileName.c_str(), localName.c_str())); + lg->WriteMakeRule(ruleFileStream, + "Pre-install relink rule for target.", + localName.c_str(), depends, commands, true); + + if(!this->IsExcluded(this->LocalGenerators[0], t->second)) + { + depends.clear(); + depends.push_back(localName); + commands.clear(); + lg->WriteMakeRule(ruleFileStream, "Prepare target for install.", + "preinstall", depends, commands, true); + } + } + + // add the clean rule + localName = lg->GetRelativeTargetDirectory(t->second); + makeTargetName = localName; + makeTargetName += "/clean"; + depends.clear(); + commands.clear(); + commands.push_back(lg->GetRecursiveMakeCall + (makefileName.c_str(), makeTargetName.c_str())); + lg->WriteMakeRule(ruleFileStream, "clean rule for target.", + makeTargetName.c_str(), depends, commands, true); + commands.clear(); + depends.push_back(makeTargetName); + lg->WriteMakeRule(ruleFileStream, "clean rule for target.", + "clean", depends, commands, true); + } + } +} + +//---------------------------------------------------------------------------- +int cmGlobalUnixMakefileGenerator3 +::GetTargetTotalNumberOfActions(cmTarget & target, + std::set &emitted) +{ + // do not double count + int result = 0; + + if(emitted.insert(target.GetName()).second) + { + cmLocalUnixMakefileGenerator3 *lg = + static_cast + (target.GetMakefile()->GetLocalGenerator()); + result = static_cast(lg->ProgressFiles[target.GetName()].size()); + + TargetDependSet & depends = this->GetTargetDirectDepends(target); + + TargetDependSet::iterator i; + for (i = depends.begin(); i != depends.end(); ++i) + { + result += this->GetTargetTotalNumberOfActions(**i, emitted); + } + } + + return result; +} + +unsigned long cmGlobalUnixMakefileGenerator3 +::GetNumberOfProgressActionsInAll(cmLocalUnixMakefileGenerator3 *lg) +{ + unsigned long result = 0; + std::set& targets = this->LocalGeneratorToTargetMap[lg]; + for(std::set::iterator t = targets.begin(); + t != targets.end(); ++t) + { + cmTarget * target = *t; + cmLocalUnixMakefileGenerator3 *lg3 = + static_cast + (target->GetMakefile()->GetLocalGenerator()); + std::vector &progFiles = lg3->ProgressFiles[target->GetName()]; + result += static_cast(progFiles.size()); + } + return result; +} + + +//---------------------------------------------------------------------------- +void +cmGlobalUnixMakefileGenerator3 +::AppendGlobalTargetDepends(std::vector& depends, + cmTarget& target) +{ + TargetDependSet const& depends_set = this->GetTargetDirectDepends(target); + for(TargetDependSet::const_iterator i = depends_set.begin(); + i != depends_set.end(); ++i) + { + // Create the target-level dependency. + cmTarget const* dep = *i; + cmLocalUnixMakefileGenerator3* lg3 = + static_cast + (dep->GetMakefile()->GetLocalGenerator()); + std::string tgtName = lg3->GetRelativeTargetDirectory(*dep); + tgtName += "/all"; + depends.push_back(tgtName); + } +} + +//---------------------------------------------------------------------------- +void cmGlobalUnixMakefileGenerator3::WriteHelpRule +(std::ostream& ruleFileStream, cmLocalUnixMakefileGenerator3 *lg) +{ + // add the help target + std::string path; + std::vector no_depends; + std::vector commands; + lg->AppendEcho(commands,"The following are some of the valid targets " + "for this Makefile:"); + lg->AppendEcho(commands,"... all (the default if no target is provided)"); + lg->AppendEcho(commands,"... clean"); + lg->AppendEcho(commands,"... depend"); + + // Keep track of targets already listed. + std::set emittedTargets; + + // for each local generator + unsigned int i; + cmLocalUnixMakefileGenerator3 *lg2; + for (i = 0; i < this->LocalGenerators.size(); ++i) + { + lg2 = + static_cast(this->LocalGenerators[i]); + // for the passed in makefile or if this is the top Makefile wripte out + // the targets + if (lg2 == lg || !lg->GetParent()) + { + // for each target Generate the rule files for each target. + cmTargets& targets = lg2->GetMakefile()->GetTargets(); + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + if((t->second.GetType() == cmTarget::EXECUTABLE) || + (t->second.GetType() == cmTarget::STATIC_LIBRARY) || + (t->second.GetType() == cmTarget::SHARED_LIBRARY) || + (t->second.GetType() == cmTarget::MODULE_LIBRARY) || + (t->second.GetType() == cmTarget::GLOBAL_TARGET) || + (t->second.GetType() == cmTarget::UTILITY)) + { + if(emittedTargets.insert(t->second.GetName()).second) + { + path = "... "; + path += t->second.GetName(); + lg->AppendEcho(commands,path.c_str()); + } + } + } + std::vector const& localHelp = lg->GetLocalHelp(); + for(std::vector::const_iterator o = localHelp.begin(); + o != localHelp.end(); ++o) + { + path = "... "; + path += *o; + lg->AppendEcho(commands, path.c_str()); + } + } + } + lg->WriteMakeRule(ruleFileStream, "Help Target", + "help:", + no_depends, commands, true); + ruleFileStream << "\n\n"; +} + + +bool cmGlobalUnixMakefileGenerator3 +::NeedRequiresStep(cmTarget const& target) +{ + std::set languages; + target.GetLanguages(languages); + for(std::set::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + std::string var = "CMAKE_NEEDS_REQUIRES_STEP_"; + var += *l; + var += "_FLAG"; + if(target.GetMakefile()->GetDefinition(var.c_str())) + { + return true; + } + } + return false; +} diff --git a/CMakeLua/Source/cmGlobalUnixMakefileGenerator3.h b/CMakeLua/Source/cmGlobalUnixMakefileGenerator3.h new file mode 100644 index 0000000..7b2b3cd --- /dev/null +++ b/CMakeLua/Source/cmGlobalUnixMakefileGenerator3.h @@ -0,0 +1,181 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator3 + Module: $RCSfile: cmGlobalUnixMakefileGenerator3.h,v $ + Language: C++ + Date: $Date: 2008/01/31 03:56:34 $ + Version: $Revision: 1.54 $ + + Copyright (c) 2005 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalUnixMakefileGenerator3_h +#define cmGlobalUnixMakefileGenerator3_h + +#include "cmGlobalGenerator.h" + +class cmGeneratedFileStream; +class cmLocalUnixMakefileGenerator3; + +/** \class cmGlobalUnixMakefileGenerator3 + * \brief Write a Unix makefiles. + * + * cmGlobalUnixMakefileGenerator3 manages UNIX build process for a tree + + + The basic approach of this generator is to produce Makefiles that will all + be run with the current working directory set to the Home Output + directory. The one exception to this is the subdirectory Makefiles which are + created as a convenience and just cd up to the Home Output directory and + invoke the main Makefiles. + + The make process starts with Makefile. Makefile should only contain the + targets the user is likely to invoke directly from a make command line. No + internal targets should be in this file. Makefile2 contains the internal + targets that are required to make the process work. + + Makefile2 in turn will recursively make targets in the correct order. Each + target has its own directory .dir and its own makefile build.make in + that directory. Also in that directory is a couple makefiles per source file + used by the target. Typically these are named source.obj.build.make and + source.obj.build.depend.make. The source.obj.build.make contains the rules + for building, cleaning, and computing dependencies for the given source + file. The build.depend.make contains additional dependencies that were + computed during dependency scanning. An additional file called + source.obj.depend is used as a marker to indicate when dependencies must be + rescanned. + + Rules for custom commands follow the same model as rules for source files. + + */ + +class cmGlobalUnixMakefileGenerator3 : public cmGlobalGenerator +{ +public: + cmGlobalUnixMakefileGenerator3(); + static cmGlobalGenerator* New() { + return new cmGlobalUnixMakefileGenerator3; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalUnixMakefileGenerator3::GetActualName();} + static const char* GetActualName() {return "Unix Makefiles";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator3 + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); + + /** + * Generate the all required files for building this project/tree. This + * basically creates a series of LocalGenerators for each directory and + * requests that they Generate. + */ + virtual void Generate(); + + + void WriteMainCMakefileLanguageRules(cmGeneratedFileStream& cmakefileStream, + std::vector &); + + // write out the help rule listing the valid targets + void WriteHelpRule(std::ostream& ruleFileStream, + cmLocalUnixMakefileGenerator3 *); + + // write the top lvel target rules + void WriteConvenienceRules(std::ostream& ruleFileStream, + std::set &emitted); + + /** Get the command to use for a target that has no rule. This is + used for multiple output dependencies and for cmake_force. */ + std::string GetEmptyRuleHackCommand() { return this->EmptyRuleHackCommand; } + + /** Get the fake dependency to use when a rule has no real commands + or dependencies. */ + std::string GetEmptyRuleHackDepends() { return this->EmptyRuleHackDepends; } + + // change the build command for speed + virtual std::string GenerateBuildCommand + (const char* makeProgram, + const char *projectName, const char* additionalOptions, + const char *targetName, + const char* config, bool ignoreErrors, bool fast); + + // returns some progress informaiton + int GetTargetTotalNumberOfActions(cmTarget & target, + std::set &emitted); + unsigned long GetNumberOfProgressActionsInAll + (cmLocalUnixMakefileGenerator3 *lg); + + /** + * If true, the CMake variable CMAKE_VERBOSE_MAKEFILES doesn't have effect + * anymore. Set it to true when writing a generator where short output + * doesn't make sense, e.g. because the full output is parsed by an + * IDE/editor. + */ + bool GetForceVerboseMakefiles() { return this->ForceVerboseMakefiles; } + void SetForceVerboseMakefiles(bool enable) + {this->ForceVerboseMakefiles=enable;} + +protected: + void WriteMainMakefile2(); + void WriteMainCMakefile(); + + void WriteConvenienceRules2(std::ostream& ruleFileStream, + cmLocalUnixMakefileGenerator3*); + + void WriteDirectoryRule2(std::ostream& ruleFileStream, + cmLocalUnixMakefileGenerator3* lg, + const char* pass, bool check_all, + bool check_relink); + void WriteDirectoryRules2(std::ostream& ruleFileStream, + cmLocalUnixMakefileGenerator3* lg); + + void AppendGlobalTargetDepends(std::vector& depends, + cmTarget& target); + + // does this generator need a requires step for any of its targets + bool NeedRequiresStep(cmTarget const&); + + // Setup target names + virtual const char* GetAllTargetName() { return "all"; } + virtual const char* GetInstallTargetName() { return "install"; } + virtual const char* GetInstallLocalTargetName() { return "install/local"; } + virtual const char* GetInstallStripTargetName() { return "install/strip"; } + virtual const char* GetPreinstallTargetName() { return "preinstall"; } + virtual const char* GetTestTargetName() { return "test"; } + virtual const char* GetPackageTargetName() { return "package"; } + virtual const char* GetPackageSourceTargetName(){ return "package_source"; } + virtual const char* GetEditCacheTargetName() { return "edit_cache"; } + virtual const char* GetRebuildCacheTargetName() { return "rebuild_cache"; } + virtual const char* GetCleanTargetName() { return "clean"; } + + // Some make programs (Borland) do not keep a rule if there are no + // dependencies or commands. This is a problem for creating rules + // that might not do anything but might have other dependencies + // added later. If non-empty this variable holds a fake dependency + // that can be added. + std::string EmptyRuleHackDepends; + + // Some make programs (Watcom) do not like rules with no commands. + // If non-empty this variable holds a bogus command that may be put + // in the rule to satisfy the make program. + std::string EmptyRuleHackCommand; + + std::map TargetSourceFileCount; + bool ForceVerboseMakefiles; +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudio6Generator.cxx b/CMakeLua/Source/cmGlobalVisualStudio6Generator.cxx new file mode 100644 index 0000000..7750008 --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio6Generator.cxx @@ -0,0 +1,505 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio6Generator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.75 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalVisualStudio6Generator.h" +#include "cmLocalVisualStudio6Generator.h" +#include "cmMakefile.h" +#include "cmake.h" + +cmGlobalVisualStudio6Generator::cmGlobalVisualStudio6Generator() +{ + this->FindMakeProgramFile = "CMakeVS6FindMake.cmake"; +} + +void cmGlobalVisualStudio6Generator +::EnableLanguage(std::vectorconst& lang, + cmMakefile *mf, + bool optional) +{ + mf->AddDefinition("CMAKE_GENERATOR_CC", "cl"); + mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl"); + mf->AddDefinition("CMAKE_GENERATOR_RC", "rc"); + mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1"); + mf->AddDefinition("CMAKE_GENERATOR_Fortran", "ifort"); + mf->AddDefinition("MSVC60", "1"); + this->GenerateConfigurations(mf); + this->cmGlobalGenerator::EnableLanguage(lang, mf, optional); +} + +void cmGlobalVisualStudio6Generator::GenerateConfigurations(cmMakefile* mf) +{ + std::string fname= mf->GetRequiredDefinition("CMAKE_ROOT"); + const char* def= mf->GetDefinition( "MSPROJECT_TEMPLATE_DIRECTORY"); + if(def) + { + fname = def; + } + else + { + fname += "/Templates"; + } + fname += "/CMakeVisualStudio6Configurations.cmake"; + if(!mf->ReadListFile(mf->GetCurrentListFile(), fname.c_str())) + { + cmSystemTools::Error("Cannot open ", fname.c_str(), + ". Please copy this file from the main " + "CMake/Templates directory and edit it for " + "your build configurations."); + } + else if(!mf->GetDefinition("CMAKE_CONFIGURATION_TYPES")) + { + cmSystemTools::Error("CMAKE_CONFIGURATION_TYPES not set by ", + fname.c_str(), + ". Please copy this file from the main " + "CMake/Templates directory and edit it for " + "your build configurations."); + } +} + +std::string cmGlobalVisualStudio6Generator +::GenerateBuildCommand(const char* makeProgram, + const char *projectName, + const char* additionalOptions, + const char *targetName, + const char* config, + bool ignoreErrors, + bool) +{ + // Ingoring errors is not implemented in visual studio 6 + (void) ignoreErrors; + + // now build the test + std::vector mp; + mp.push_back("[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio" + "\\6.0\\Setup;VsCommonDir]/MSDev98/Bin"); + cmSystemTools::ExpandRegistryValues(mp[0]); + std::string originalCommand = makeProgram; + std::string makeCommand = + cmSystemTools::FindProgram(makeProgram, mp); + if(makeCommand.size() == 0) + { + std::string e = "Generator cannot find Visual Studio 6 msdev program \""; + e += originalCommand; + e += "\" specified by CMAKE_MAKE_PROGRAM cache entry. "; + e += "Please fix the setting."; + cmSystemTools::Error(e.c_str()); + return ""; + } + makeCommand = cmSystemTools::ConvertToOutputPath(makeCommand.c_str()); + + // if there are spaces in the makeCommand, assume a full path + // and convert it to a path with no spaces in it as the + // RunSingleCommand does not like spaces +#if defined(_WIN32) && !defined(__CYGWIN__) + if(makeCommand.find(' ') != std::string::npos) + { + cmSystemTools::GetShortPath(makeCommand.c_str(), makeCommand); + } +#endif + makeCommand += " "; + makeCommand += projectName; + makeCommand += ".dsw /MAKE \""; + bool clean = false; + if ( targetName && strcmp(targetName, "clean") == 0 ) + { + clean = true; + targetName = "ALL_BUILD"; + } + if (targetName && strlen(targetName)) + { + makeCommand += targetName; + } + else + { + makeCommand += "ALL_BUILD"; + } + makeCommand += " - "; + if(config && strlen(config)) + { + makeCommand += config; + } + else + { + makeCommand += "Debug"; + } + if(clean) + { + makeCommand += "\" /CLEAN"; + } + else + { + makeCommand += "\" /BUILD"; + } + if ( additionalOptions ) + { + makeCommand += " "; + makeCommand += additionalOptions; + } + return makeCommand; +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalVisualStudio6Generator::CreateLocalGenerator() +{ + cmLocalGenerator *lg = new cmLocalVisualStudio6Generator; + lg->SetGlobalGenerator(this); + return lg; +} + + +void cmGlobalVisualStudio6Generator::Generate() +{ + // first do the superclass method + this->cmGlobalVisualStudioGenerator::Generate(); + + // Now write out the DSW + this->OutputDSWFile(); +} + +// Write a DSW file to the stream +void cmGlobalVisualStudio6Generator +::WriteDSWFile(std::ostream& fout,cmLocalGenerator* root, + std::vector& generators) +{ + // Write out the header for a DSW file + this->WriteDSWHeader(fout); + + // Get the home directory with the trailing slash + std::string homedir = root->GetMakefile()->GetStartOutputDirectory(); + homedir += "/"; + + unsigned int i; + bool doneAllBuild = false; + bool doneRunTests = false; + bool doneInstall = false; + bool doneEditCache = false; + bool doneRebuildCache = false; + bool donePackage = false; + + for(i = 0; i < generators.size(); ++i) + { + if(this->IsExcluded(root, generators[i])) + { + continue; + } + cmMakefile* mf = generators[i]->GetMakefile(); + + // Get the source directory from the makefile + std::string dir = mf->GetStartOutputDirectory(); + // remove the home directory and / from the source directory + // this gives a relative path + cmSystemTools::ReplaceString(dir, homedir.c_str(), ""); + + // Get the list of create dsp files names from the LocalGenerator, more + // than one dsp could have been created per input CMakeLists.txt file + // for each target + std::vector dspnames = + static_cast(generators[i]) + ->GetCreatedProjectNames(); + cmTargets &tgts = generators[i]->GetMakefile()->GetTargets(); + std::vector::iterator si = dspnames.begin(); + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l) + { + // special handling for the current makefile + if(mf == generators[0]->GetMakefile()) + { + dir = "."; // no subdirectory for project generated + // if this is the special ALL_BUILD utility, then + // make it depend on every other non UTILITY project. + // This is done by adding the names to the GetUtilities + // vector on the makefile + if(l->first == "ALL_BUILD" && !doneAllBuild) + { + unsigned int j; + for(j = 0; j < generators.size(); ++j) + { + cmTargets &atgts = generators[j]->GetMakefile()->GetTargets(); + for(cmTargets::iterator al = atgts.begin(); + al != atgts.end(); ++al) + { + if (!al->second.GetPropertyAsBool("EXCLUDE_FROM_ALL")) + { + if (al->second.GetType() == cmTarget::UTILITY || + al->second.GetType() == cmTarget::GLOBAL_TARGET) + { + l->second.AddUtility(al->first.c_str()); + } + else + { + l->second.AddLinkLibrary(al->first, cmTarget::GENERAL); + } + } + } + } + } + } + // Write the project into the DSW file + if (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + cmCustomCommand cc = l->second.GetPostBuildCommands()[0]; + const cmCustomCommandLines& cmds = cc.GetCommandLines(); + std::string project = cmds[0][0]; + std::string location = cmds[0][1]; + this->WriteExternalProject(fout, project.c_str(), + location.c_str(), cc.GetDepends()); + } + else + { + bool skip = false; + // skip ALL_BUILD and RUN_TESTS if they have already been added + if(l->first == "ALL_BUILD" ) + { + if(doneAllBuild) + { + skip = true; + } + else + { + doneAllBuild = true; + } + } + if(l->first == "INSTALL") + { + if(doneInstall) + { + skip = true; + } + else + { + doneInstall = true; + } + } + if(l->first == "RUN_TESTS") + { + if(doneRunTests) + { + skip = true; + } + else + { + doneRunTests = true; + } + } + if(l->first == "EDIT_CACHE") + { + if(doneEditCache) + { + skip = true; + } + else + { + doneEditCache = true; + } + } + if(l->first == "REBUILD_CACHE") + { + if(doneRebuildCache) + { + skip = true; + } + else + { + doneRebuildCache = true; + } + } + if(l->first == "PACKAGE") + { + if(donePackage) + { + skip = true; + } + else + { + donePackage = true; + } + } + if(!skip) + { + this->WriteProject(fout, si->c_str(), dir.c_str(),l->second); + } + ++si; + } + } + } + + // Write the footer for the DSW file + this->WriteDSWFooter(fout); +} + +void cmGlobalVisualStudio6Generator +::OutputDSWFile(cmLocalGenerator* root, + std::vector& generators) +{ + if(generators.size() == 0) + { + return; + } + std::string fname = root->GetMakefile()->GetStartOutputDirectory(); + fname += "/"; + fname += root->GetMakefile()->GetProjectName(); + fname += ".dsw"; + std::ofstream fout(fname.c_str()); + if(!fout) + { + cmSystemTools::Error("Error can not open DSW file for write: ", + fname.c_str()); + cmSystemTools::ReportLastSystemError(""); + return; + } + this->WriteDSWFile(fout, root, generators); +} + +// output the DSW file +void cmGlobalVisualStudio6Generator::OutputDSWFile() +{ + std::map >::iterator it; + for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it) + { + this->OutputDSWFile(it->second[0], it->second); + } +} + +// Write a dsp file into the DSW file, +// Note, that dependencies from executables to +// the libraries it uses are also done here +void cmGlobalVisualStudio6Generator::WriteProject(std::ostream& fout, + const char* dspname, + const char* dir, + cmTarget& target) +{ + fout << "#########################################################" + "######################\n\n"; + fout << "Project: \"" << dspname << "\"=" + << dir << "\\" << dspname << ".dsp - Package Owner=<4>\n\n"; + fout << "Package=<5>\n{{{\n}}}\n\n"; + fout << "Package=<4>\n"; + fout << "{{{\n"; + + // insert Begin Project Dependency Project_Dep_Name project stuff here + if (target.GetType() != cmTarget::STATIC_LIBRARY) + { + cmTarget::LinkLibraryVectorType::const_iterator j, jend; + j = target.GetLinkLibraries().begin(); + jend = target.GetLinkLibraries().end(); + for(;j!= jend; ++j) + { + if(j->first != dspname) + { + // is the library part of this DSW ? If so add dependency + if(this->FindTarget(0, j->first.c_str())) + { + fout << "Begin Project Dependency\n"; + fout << "Project_Dep_Name " << j->first.c_str() << "\n"; + fout << "End Project Dependency\n"; + } + } + } + } + + std::set::const_iterator i, end; + // write utility dependencies. + i = target.GetUtilities().begin(); + end = target.GetUtilities().end(); + for(;i!= end; ++i) + { + if(*i != dspname) + { + std::string depName = this->GetUtilityForTarget(target, i->c_str()); + fout << "Begin Project Dependency\n"; + fout << "Project_Dep_Name " << depName << "\n"; + fout << "End Project Dependency\n"; + } + } + fout << "}}}\n\n"; +} + + +// Write a dsp file into the DSW file, +// Note, that dependencies from executables to +// the libraries it uses are also done here +void cmGlobalVisualStudio6Generator::WriteExternalProject(std::ostream& fout, + const char* name, + const char* location, + const std::vector& dependencies) +{ + fout << "#########################################################" + "######################\n\n"; + fout << "Project: \"" << name << "\"=" + << location << " - Package Owner=<4>\n\n"; + fout << "Package=<5>\n{{{\n}}}\n\n"; + fout << "Package=<4>\n"; + fout << "{{{\n"; + + + std::vector::const_iterator i, end; + // write dependencies. + i = dependencies.begin(); + end = dependencies.end(); + for(;i!= end; ++i) + { + fout << "Begin Project Dependency\n"; + fout << "Project_Dep_Name " << *i << "\n"; + fout << "End Project Dependency\n"; + } + fout << "}}}\n\n"; +} + + + +// Standard end of dsw file +void cmGlobalVisualStudio6Generator::WriteDSWFooter(std::ostream& fout) +{ + fout << "######################################################" + "#########################\n\n"; + fout << "Global:\n\n"; + fout << "Package=<5>\n{{{\n}}}\n\n"; + fout << "Package=<3>\n{{{\n}}}\n\n"; + fout << "#####################################################" + "##########################\n\n"; +} + + +// ouput standard header for dsw file +void cmGlobalVisualStudio6Generator::WriteDSWHeader(std::ostream& fout) +{ + fout << "Microsoft Developer Studio Workspace File, Format Version 6.00\n"; + fout << "# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\n\n"; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio6Generator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio 6 project files."; + entry.Full = ""; +} + +//---------------------------------------------------------------------------- +void +cmGlobalVisualStudio6Generator +::AppendDirectoryForConfig(const char* prefix, + const char* config, + const char* suffix, + std::string& dir) +{ + if(config) + { + dir += prefix; + dir += config; + dir += suffix; + } +} diff --git a/CMakeLua/Source/cmGlobalVisualStudio6Generator.h b/CMakeLua/Source/cmGlobalVisualStudio6Generator.h new file mode 100644 index 0000000..d3a5b0c --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio6Generator.h @@ -0,0 +1,103 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio6Generator.h,v $ + Language: C++ + Date: $Date: 2007/06/28 13:09:26 $ + Version: $Revision: 1.29 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudio6Generator_h +#define cmGlobalVisualStudio6Generator_h + +#include "cmGlobalVisualStudioGenerator.h" + +class cmTarget; + +/** \class cmGlobalVisualStudio6Generator + * \brief Write a Unix makefiles. + * + * cmGlobalVisualStudio6Generator manages UNIX build process for a tree + */ +class cmGlobalVisualStudio6Generator : public cmGlobalVisualStudioGenerator +{ +public: + cmGlobalVisualStudio6Generator(); + static cmGlobalGenerator* New() { + return new cmGlobalVisualStudio6Generator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio6Generator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 6";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); + + /** + * Try running cmake and building a file. This is used for dynalically + * loaded commands, not as part of the usual build process. + */ + virtual std::string GenerateBuildCommand(const char* makeProgram, + const char *projectName, + const char* additionalOptions, + const char *targetName, + const char* config, + bool ignoreErrors, + bool fast); + + /** + * Generate the all required files for building this project/tree. This + * basically creates a series of LocalGenerators for each directory and + * requests that they Generate. + */ + virtual void Generate(); + + /** + * Generate the DSW workspace file. + */ + virtual void OutputDSWFile(); + virtual void OutputDSWFile(cmLocalGenerator* root, + std::vector& generators); + virtual void WriteDSWFile(std::ostream& fout, + cmLocalGenerator* root, + std::vector& generators); + + /** Append the subdirectory for the given configuration. */ + virtual void AppendDirectoryForConfig(const char* prefix, + const char* config, + const char* suffix, + std::string& dir); + + ///! What is the configurations directory variable called? + virtual const char* GetCMakeCFGInitDirectory() { return "$(IntDir)"; } +private: + void GenerateConfigurations(cmMakefile* mf); + void WriteDSWFile(std::ostream& fout); + void WriteDSWHeader(std::ostream& fout); + void WriteProject(std::ostream& fout, + const char* name, const char* path, cmTarget &t); + void WriteExternalProject(std::ostream& fout, + const char* name, const char* path, + const std::vector& dependencies); + void WriteDSWFooter(std::ostream& fout); +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudio71Generator.cxx b/CMakeLua/Source/cmGlobalVisualStudio71Generator.cxx new file mode 100644 index 0000000..dfa3a8d --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio71Generator.cxx @@ -0,0 +1,270 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio71Generator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 17:04:38 $ + Version: $Revision: 1.47 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "windows.h" // this must be first to define GetCurrentDirectory +#include "cmGlobalVisualStudio71Generator.h" +#include "cmLocalVisualStudio7Generator.h" +#include "cmMakefile.h" +#include "cmake.h" + + + +cmGlobalVisualStudio71Generator::cmGlobalVisualStudio71Generator() +{ + this->FindMakeProgramFile = "CMakeVS71FindMake.cmake"; + this->ProjectConfigurationSectionName = "ProjectConfiguration"; +} + + + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalVisualStudio71Generator::CreateLocalGenerator() +{ + cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator; + lg->SetVersion71(); + lg->SetExtraFlagTable(this->GetExtraFlagTableVS7()); + lg->SetGlobalGenerator(this); + return lg; +} + +void cmGlobalVisualStudio71Generator::AddPlatformDefinitions(cmMakefile* mf) +{ + mf->AddDefinition("MSVC71", "1"); +} + + +void cmGlobalVisualStudio71Generator +::WriteSLNFile(std::ostream& fout, + cmLocalGenerator* root, + std::vector& generators) +{ + // Write out the header for a SLN file + this->WriteSLNHeader(fout); + + // collect the set of targets for this project by + // tracing depends of all targets. + // also collect the set of targets that are explicitly + // in this project. + cmGlobalGenerator::TargetDependSet projectTargets; + cmGlobalGenerator::TargetDependSet originalTargets; + this->GetTargetSets(projectTargets, + originalTargets, + root, generators); + this->WriteTargetsToSolution(fout, root, projectTargets, originalTargets); + // Write out the configurations information for the solution + fout << "Global\n"; + // Write out the configurations for the solution + this->WriteSolutionConfigurations(fout); + fout << "\tGlobalSection(" << this->ProjectConfigurationSectionName + << ") = postSolution\n"; + // Write out the configurations for all the targets in the project + this->WriteTargetConfigurations(fout, root, projectTargets); + fout << "\tEndGlobalSection\n"; + // Write the footer for the SLN file + this->WriteSLNFooter(fout); +} + + +void +cmGlobalVisualStudio71Generator +::WriteSolutionConfigurations(std::ostream& fout) +{ + fout << "\tGlobalSection(SolutionConfiguration) = preSolution\n"; + for(std::vector::iterator i = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + fout << "\t\t" << *i << " = " << *i << "\n"; + } + fout << "\tEndGlobalSection\n"; +} + +// Write a dsp file into the SLN file, +// Note, that dependencies from executables to +// the libraries it uses are also done here +void +cmGlobalVisualStudio71Generator::WriteProject(std::ostream& fout, + const char* dspname, + const char* dir, + cmTarget& t) +{ + fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" + << dspname << "\", \"" + << this->ConvertToSolutionPath(dir) + << "\\" << dspname << ".vcproj\", \"{" + << this->GetGUID(dspname) << "}\"\n"; + fout << "\tProjectSection(ProjectDependencies) = postProject\n"; + this->WriteProjectDepends(fout, dspname, dir, t); + fout << "\tEndProjectSection\n"; + + fout <<"EndProject\n"; +} + + + +// Write a dsp file into the SLN file, +// Note, that dependencies from executables to +// the libraries it uses are also done here +void +cmGlobalVisualStudio71Generator +::WriteProjectDepends(std::ostream& fout, + const char* dspname, + const char*, cmTarget& target) +{ +#if 0 + // Create inter-target dependencies in the solution file. For VS + // 7.1 and below we cannot let static libraries depend directly on + // targets to which they "link" because the librarian tool will copy + // the targets into the static library. See + // cmGlobalVisualStudioGenerator::FixUtilityDependsForTarget for a + // work-around. VS 8 and above do not have this problem. + if (!this->VSLinksDependencies() || + target.GetType() != cmTarget::STATIC_LIBRARY); +#else + if (target.GetType() != cmTarget::STATIC_LIBRARY) +#endif + { + cmTarget::LinkLibraryVectorType::const_iterator j, jend; + j = target.GetLinkLibraries().begin(); + jend = target.GetLinkLibraries().end(); + for(;j!= jend; ++j) + { + if(j->first != dspname) + { + // is the library part of this SLN ? If so add dependency + // find target anywhere because all depend libraries are + // brought in as well + if(this->FindTarget(0, j->first.c_str())) + { + fout << "\t\t{" << this->GetGUID(j->first.c_str()) << "} = {" + << this->GetGUID(j->first.c_str()) << "}\n"; + } + } + } + } + + std::set::const_iterator i, end; + // write utility dependencies. + i = target.GetUtilities().begin(); + end = target.GetUtilities().end(); + for(;i!= end; ++i) + { + if(*i != dspname) + { + std::string name = this->GetUtilityForTarget(target, i->c_str()); + std::string guid = this->GetGUID(name.c_str()); + if(guid.size() == 0) + { + std::string m = "Target: "; + m += target.GetName(); + m += " depends on unknown target: "; + m += name; + cmSystemTools::Error(m.c_str()); + } + + fout << "\t\t{" << guid << "} = {" << guid << "}\n"; + } + } +} + +// Write a dsp file into the SLN file, Note, that dependencies from +// executables to the libraries it uses are also done here +void cmGlobalVisualStudio71Generator +::WriteExternalProject(std::ostream& fout, + const char* name, + const char* location, + const std::vector& depends) +{ + std::cout << "WriteExternalProject vs71\n"; + fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" + << name << "\", \"" + << this->ConvertToSolutionPath(location) << "\", \"{" + << this->GetGUID(name) + << "}\"\n"; + + // write out the dependencies here VS 7.1 includes dependencies with the + // project instead of in the global section + if(!depends.empty()) + { + fout << "\tProjectSection(ProjectDependencies) = postProject\n"; + std::vector::const_iterator it; + for(it = depends.begin(); it != depends.end(); ++it) + { + if(it->size() > 0) + { + fout << "\t\t{" + << this->GetGUID(it->c_str()) + << "} = {" + << this->GetGUID(it->c_str()) + << "}\n"; + } + } + fout << "\tEndProjectSection\n"; + } + + fout << "EndProject\n"; + + +} + + +// Write a dsp file into the SLN file, Note, that dependencies from +// executables to the libraries it uses are also done here +void cmGlobalVisualStudio71Generator +::WriteProjectConfigurations(std::ostream& fout, const char* name, + bool partOfDefaultBuild) +{ + std::string guid = this->GetGUID(name); + for(std::vector::iterator i = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + fout << "\t\t{" << guid << "}." << *i + << ".ActiveCfg = " << *i << "|Win32\n"; + if(partOfDefaultBuild) + { + fout << "\t\t{" << guid << "}." << *i + << ".Build.0 = " << *i << "|Win32\n"; + } + } +} + + + + +// Standard end of dsw file +void cmGlobalVisualStudio71Generator::WriteSLNFooter(std::ostream& fout) +{ + fout << "\tGlobalSection(ExtensibilityGlobals) = postSolution\n" + << "\tEndGlobalSection\n" + << "\tGlobalSection(ExtensibilityAddIns) = postSolution\n" + << "\tEndGlobalSection\n" + << "EndGlobal\n"; +} + + +// ouput standard header for dsw file +void cmGlobalVisualStudio71Generator::WriteSLNHeader(std::ostream& fout) +{ + fout << "Microsoft Visual Studio Solution File, Format Version 8.00\n"; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio71Generator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio .NET 2003 project files."; + entry.Full = ""; +} diff --git a/CMakeLua/Source/cmGlobalVisualStudio71Generator.h b/CMakeLua/Source/cmGlobalVisualStudio71Generator.h new file mode 100644 index 0000000..dd1cd92 --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio71Generator.h @@ -0,0 +1,68 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio71Generator.h,v $ + Language: C++ + Date: $Date: 2008/01/30 17:04:38 $ + Version: $Revision: 1.17 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudio71Generator_h +#define cmGlobalVisualStudio71Generator_h + +#include "cmGlobalVisualStudio7Generator.h" + + +/** \class cmGlobalVisualStudio71Generator + * \brief Write a Unix makefiles. + * + * cmGlobalVisualStudio71Generator manages UNIX build process for a tree + */ +class cmGlobalVisualStudio71Generator : public cmGlobalVisualStudio7Generator +{ +public: + cmGlobalVisualStudio71Generator(); + static cmGlobalGenerator* New() + { return new cmGlobalVisualStudio71Generator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio71Generator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 7 .NET 2003";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + +protected: + virtual void AddPlatformDefinitions(cmMakefile* mf); + virtual void WriteSLNFile(std::ostream& fout, + cmLocalGenerator* root, + std::vector& generators); + virtual void WriteSolutionConfigurations(std::ostream& fout); + virtual void WriteProject(std::ostream& fout, + const char* name, const char* path, cmTarget &t); + virtual void WriteProjectDepends(std::ostream& fout, + const char* name, const char* path, cmTarget &t); + virtual void WriteProjectConfigurations(std::ostream& fout, + const char* name, + bool partOfDefaultBuild); + virtual void WriteExternalProject(std::ostream& fout, + const char* name, + const char* path, + const std::vector& depends); + virtual void WriteSLNFooter(std::ostream& fout); + virtual void WriteSLNHeader(std::ostream& fout); + + std::string ProjectConfigurationSectionName; +}; +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudio7Generator.cxx b/CMakeLua/Source/cmGlobalVisualStudio7Generator.cxx new file mode 100644 index 0000000..5b7eff7 --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio7Generator.cxx @@ -0,0 +1,748 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio7Generator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 21:22:51 $ + Version: $Revision: 1.98 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "windows.h" // this must be first to define GetCurrentDirectory +#include "cmGlobalVisualStudio7Generator.h" +#include "cmGeneratedFileStream.h" +#include "cmLocalVisualStudio7Generator.h" +#include "cmMakefile.h" +#include "cmake.h" + +cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator() +{ + this->FindMakeProgramFile = "CMakeVS7FindMake.cmake"; +} + + +void cmGlobalVisualStudio7Generator +::EnableLanguage(std::vectorconst & lang, + cmMakefile *mf, bool optional) +{ + mf->AddDefinition("CMAKE_GENERATOR_CC", "cl"); + mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl"); + mf->AddDefinition("CMAKE_GENERATOR_RC", "rc"); + mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1"); + mf->AddDefinition("CMAKE_GENERATOR_Fortran", "ifort"); + + this->AddPlatformDefinitions(mf); + + // Create list of configurations requested by user's cache, if any. + this->cmGlobalGenerator::EnableLanguage(lang, mf, optional); + this->GenerateConfigurations(mf); + + // if this environment variable is set, then copy it to + // a static cache entry. It will be used by + // cmLocalGenerator::ConstructScript, to add an extra PATH + // to all custom commands. This is because the VS IDE + // does not use the environment it is run in, and this allows + // for running commands and using dll's that the IDE environment + // does not know about. + const char* extraPath = cmSystemTools::GetEnv("CMAKE_MSVCIDE_RUN_PATH"); + if(extraPath) + { + mf->AddCacheDefinition + ("CMAKE_MSVCIDE_RUN_PATH", extraPath, + "Saved environment variable CMAKE_MSVCIDE_RUN_PATH", + cmCacheManager::STATIC); + } + +} + +void cmGlobalVisualStudio7Generator::AddPlatformDefinitions(cmMakefile* mf) +{ + mf->AddDefinition("MSVC70", "1"); +} + +std::string cmGlobalVisualStudio7Generator +::GenerateBuildCommand(const char* makeProgram, + const char *projectName, + const char* additionalOptions, const char *targetName, + const char* config, bool ignoreErrors, bool) +{ + // Ingoring errors is not implemented in visual studio 6 + (void) ignoreErrors; + + // now build the test + std::string makeCommand = + cmSystemTools::ConvertToOutputPath(makeProgram); + std::string lowerCaseCommand = makeCommand; + cmSystemTools::LowerCase(lowerCaseCommand); + + // if there are spaces in the makeCommand, assume a full path + // and convert it to a path with no spaces in it as the + // RunSingleCommand does not like spaces +#if defined(_WIN32) && !defined(__CYGWIN__) + if(makeCommand.find(' ') != std::string::npos) + { + cmSystemTools::GetShortPath(makeCommand.c_str(), makeCommand); + } +#endif + makeCommand += " "; + makeCommand += projectName; + makeCommand += ".sln "; + bool clean = false; + if ( targetName && strcmp(targetName, "clean") == 0 ) + { + clean = true; + targetName = "ALL_BUILD"; + } + if(clean) + { + makeCommand += "/clean "; + } + else + { + makeCommand += "/build "; + } + + if(config && strlen(config)) + { + makeCommand += config; + } + else + { + makeCommand += "Debug"; + } + makeCommand += " /project "; + + if (targetName && strlen(targetName)) + { + makeCommand += targetName; + } + else + { + makeCommand += "ALL_BUILD"; + } + if ( additionalOptions ) + { + makeCommand += " "; + makeCommand += additionalOptions; + } + return makeCommand; +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalVisualStudio7Generator::CreateLocalGenerator() +{ + cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator; + lg->SetExtraFlagTable(this->GetExtraFlagTableVS7()); + lg->SetGlobalGenerator(this); + return lg; +} + +void cmGlobalVisualStudio7Generator::GenerateConfigurations(cmMakefile* mf) +{ + // process the configurations + const char* ct + = this->CMakeInstance->GetCacheDefinition("CMAKE_CONFIGURATION_TYPES"); + if ( ct ) + { + std::vector argsOut; + cmSystemTools::ExpandListArgument(ct, argsOut); + for(std::vector::iterator i = argsOut.begin(); + i != argsOut.end(); ++i) + { + if(std::find(this->Configurations.begin(), + this->Configurations.end(), + *i) == this->Configurations.end()) + { + this->Configurations.push_back(*i); + } + } + } + // default to at least Debug and Release + if(this->Configurations.size() == 0) + { + this->Configurations.push_back("Debug"); + this->Configurations.push_back("Release"); + } + + // Reset the entry to have a semi-colon separated list. + std::string configs = this->Configurations[0]; + for(unsigned int i=1; i < this->Configurations.size(); ++i) + { + configs += ";"; + configs += this->Configurations[i]; + } + + mf->AddCacheDefinition( + "CMAKE_CONFIGURATION_TYPES", + configs.c_str(), + "Semicolon separated list of supported configuration types, " + "only supports Debug, Release, MinSizeRel, and RelWithDebInfo, " + "anything else will be ignored.", + cmCacheManager::STRING); +} + +void cmGlobalVisualStudio7Generator::Generate() +{ + // first do the superclass method + this->cmGlobalVisualStudioGenerator::Generate(); + + // Now write out the DSW + this->OutputSLNFile(); + + // If any solution or project files changed during the generation, + // tell Visual Studio to reload them... + if(!cmSystemTools::GetErrorOccuredFlag()) + { + this->CallVisualStudioMacro(MacroReload); + } +} + +void cmGlobalVisualStudio7Generator +::OutputSLNFile(cmLocalGenerator* root, + std::vector& generators) +{ + if(generators.size() == 0) + { + return; + } + this->CurrentProject = root->GetMakefile()->GetProjectName(); + std::string fname = root->GetMakefile()->GetStartOutputDirectory(); + fname += "/"; + fname += root->GetMakefile()->GetProjectName(); + fname += ".sln"; + cmGeneratedFileStream fout(fname.c_str()); + fout.SetCopyIfDifferent(true); + if(!fout) + { + return; + } + this->WriteSLNFile(fout, root, generators); + if (fout.Close()) + { + this->FileReplacedDuringGenerate(fname); + } +} + +// output the SLN file +void cmGlobalVisualStudio7Generator::OutputSLNFile() +{ + std::map >::iterator it; + for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it) + { + this->OutputSLNFile(it->second[0], it->second); + } +} + + +void cmGlobalVisualStudio7Generator::AddAllBuildDepends( + cmLocalGenerator* root, + cmTarget* target, + cmGlobalGenerator::TargetDependSet& originalTargets) +{ + // if this is the special ALL_BUILD utility, then + // make it depend on every other non UTILITY project. + for(cmGlobalGenerator::TargetDependSet::iterator ot = + originalTargets.begin(); ot != originalTargets.end(); ++ot) + { + cmTarget* t = const_cast(*ot); + if(!this->IsExcluded(root, *t)) + { + if (t->GetType() == cmTarget::UTILITY || + t->GetType() == cmTarget::GLOBAL_TARGET) + { + target->AddUtility(t->GetName()); + } + else + { + target->AddLinkLibrary(t->GetName(),cmTarget::GENERAL); + } + } + } +} + +void cmGlobalVisualStudio7Generator::WriteTargetConfigurations( + std::ostream& fout, + cmLocalGenerator* root, + cmGlobalGenerator::TargetDependSet& projectTargets) +{ + // loop over again and write out configurations for each target + // in the solution + for(cmGlobalGenerator::TargetDependSet::iterator tt = + projectTargets.begin(); tt != projectTargets.end(); ++tt) + { + cmTarget* target = const_cast(*tt); + if (strncmp(target->GetName(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + cmCustomCommand cc = target->GetPostBuildCommands()[0]; + const cmCustomCommandLines& cmds = cc.GetCommandLines(); + std::string project = cmds[0][0]; + this->WriteProjectConfigurations(fout, project.c_str(), + true); + } + else + { + bool partOfDefaultBuild = this->IsPartOfDefaultBuild( + root->GetMakefile()->GetProjectName(), target); + const char *vcprojName = + target->GetProperty("GENERATOR_FILE_NAME"); + if (vcprojName) + { + this->WriteProjectConfigurations(fout, vcprojName, + partOfDefaultBuild); + } + } + } +} + + +void cmGlobalVisualStudio7Generator::WriteTargetsToSolution( + std::ostream& fout, + cmLocalGenerator* root, + cmGlobalGenerator::TargetDependSet& projectTargets, + cmGlobalGenerator::TargetDependSet& originalTargets + ) +{ + std::string rootdir = root->GetMakefile()->GetStartOutputDirectory(); + rootdir += "/"; + for(cmGlobalGenerator::TargetDependSet::iterator tt = + projectTargets.begin(); tt != projectTargets.end(); ++tt) + { + cmTarget* target = const_cast(*tt); + cmMakefile* mf = target->GetMakefile(); + // look for the all_build rule and add depends to all + // of the original targets (none that were "pulled" into this project) + if(mf == root->GetMakefile() && + strcmp(target->GetName(), "ALL_BUILD") == 0) + { + this->AddAllBuildDepends(root, target, originalTargets); + } + // handle external vc project files + if (strncmp(target->GetName(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + cmCustomCommand cc = target->GetPostBuildCommands()[0]; + const cmCustomCommandLines& cmds = cc.GetCommandLines(); + std::string project = cmds[0][0]; + std::string location = cmds[0][1]; + this->WriteExternalProject(fout, project.c_str(), + location.c_str(), cc.GetDepends()); + } + else + { + bool skip = false; + // if it is a global target or the check build system target + // then only use the one that is for the root + if(target->GetType() == cmTarget::GLOBAL_TARGET + || !strcmp(target->GetName(), CMAKE_CHECK_BUILD_SYSTEM_TARGET)) + { + if(target->GetMakefile() != root->GetMakefile()) + { + skip = true; + } + } + // if not skipping the project then write it into the + // solution + if(!skip) + { + const char *vcprojName = + target->GetProperty("GENERATOR_FILE_NAME"); + if(vcprojName) + { + cmMakefile* tmf = target->GetMakefile(); + std::string dir = tmf->GetStartOutputDirectory(); + dir = root->Convert(dir.c_str(), + cmLocalGenerator::START_OUTPUT); + this->WriteProject(fout, vcprojName, dir.c_str(), + *target); + } + } + } + } +} + + +void cmGlobalVisualStudio7Generator::WriteTargetDepends( + std::ostream& fout, + cmGlobalGenerator::TargetDependSet& projectTargets + ) +{ + for(cmGlobalGenerator::TargetDependSet::iterator tt = + projectTargets.begin(); tt != projectTargets.end(); ++tt) + { + cmTarget* target = const_cast(*tt); + cmMakefile* mf = target->GetMakefile(); + if (strncmp(target->GetName(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + cmCustomCommand cc = target->GetPostBuildCommands()[0]; + const cmCustomCommandLines& cmds = cc.GetCommandLines(); + std::string name = cmds[0][0]; + std::vector depends = cc.GetDepends(); + std::vector::iterator iter; + int depcount = 0; + for(iter = depends.begin(); iter != depends.end(); ++iter) + { + std::string guid = this->GetGUID(iter->c_str()); + if(guid.size() == 0) + { + std::string m = "Target: "; + m += target->GetName(); + m += " depends on unknown target: "; + m += iter->c_str(); + cmSystemTools::Error(m.c_str()); + } + + fout << "\t\t{" << this->GetGUID(name.c_str()) + << "}." << depcount << " = {" << guid.c_str() << "}\n"; + depcount++; + } + } + else + { + const char *vcprojName = + target->GetProperty("GENERATOR_FILE_NAME"); + if (vcprojName) + { + std::string dir = mf->GetStartDirectory(); + this->WriteProjectDepends(fout, vcprojName, + dir.c_str(), *target); + } + } + } +} +// Write a SLN file to the stream +void cmGlobalVisualStudio7Generator +::WriteSLNFile(std::ostream& fout, + cmLocalGenerator* root, + std::vector& generators) +{ + // Write out the header for a SLN file + this->WriteSLNHeader(fout); + + // collect the set of targets for this project by + // tracing depends of all targets. + // also collect the set of targets that are explicitly + // in this project. + cmGlobalGenerator::TargetDependSet projectTargets; + cmGlobalGenerator::TargetDependSet originalTargets; + this->GetTargetSets(projectTargets, + originalTargets, + root, generators); + this->WriteTargetsToSolution(fout, root, projectTargets, originalTargets); + // Write out the configurations information for the solution + fout << "Global\n" + << "\tGlobalSection(SolutionConfiguration) = preSolution\n"; + + int c = 0; + for(std::vector::iterator i = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + fout << "\t\tConfigName." << c << " = " << *i << "\n"; + c++; + } + fout << "\tEndGlobalSection\n"; + // Write out project(target) depends + fout << "\tGlobalSection(ProjectDependencies) = postSolution\n"; + this->WriteTargetDepends(fout, projectTargets); + fout << "\tEndGlobalSection\n"; + + // Write out the configurations for all the targets in the project + fout << "\tGlobalSection(ProjectConfiguration) = postSolution\n"; + this->WriteTargetConfigurations(fout, root, projectTargets); + fout << "\tEndGlobalSection\n"; + + // Write the footer for the SLN file + this->WriteSLNFooter(fout); +} + +//---------------------------------------------------------------------------- +std::string +cmGlobalVisualStudio7Generator::ConvertToSolutionPath(const char* path) +{ + // Convert to backslashes. Do not use ConvertToOutputPath because + // we will add quoting ourselves, and we know these projects always + // use windows slashes. + std::string d = path; + std::string::size_type pos = 0; + while((pos = d.find('/', pos)) != d.npos) + { + d[pos++] = '\\'; + } + return d; +} + +// Write a dsp file into the SLN file, +// Note, that dependencies from executables to +// the libraries it uses are also done here +void cmGlobalVisualStudio7Generator::WriteProject(std::ostream& fout, + const char* dspname, + const char* dir, cmTarget&) +{ + fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" + << dspname << "\", \"" + << this->ConvertToSolutionPath(dir) + << "\\" << dspname << ".vcproj\", \"{" + << this->GetGUID(dspname) << "}\"\nEndProject\n"; +} + + + +// Write a dsp file into the SLN file, +// Note, that dependencies from executables to +// the libraries it uses are also done here +void +cmGlobalVisualStudio7Generator +::WriteProjectDepends(std::ostream& fout, + const char* dspname, + const char*, cmTarget& target) +{ + int depcount = 0; + // insert Begin Project Dependency Project_Dep_Name project stuff here + if (target.GetType() != cmTarget::STATIC_LIBRARY) + { + cmTarget::LinkLibraryVectorType::const_iterator j, jend; + j = target.GetLinkLibraries().begin(); + jend = target.GetLinkLibraries().end(); + for(;j!= jend; ++j) + { + if(j->first != dspname) + { + // is the library part of this SLN ? If so add dependency + if(this->FindTarget(0, j->first.c_str())) + { + std::string guid = this->GetGUID(j->first.c_str()); + if(guid.size() == 0) + { + std::string m = "Target: "; + m += dspname; + m += " depends on unknown target: "; + m += j->first.c_str(); + cmSystemTools::Error(m.c_str()); + } + fout << "\t\t{" << this->GetGUID(dspname) << "}." + << depcount << " = {" << guid << "}\n"; + depcount++; + } + } + } + } + + std::set::const_iterator i, end; + // write utility dependencies. + i = target.GetUtilities().begin(); + end = target.GetUtilities().end(); + for(;i!= end; ++i) + { + if(*i != dspname) + { + std::string name = this->GetUtilityForTarget(target, i->c_str()); + std::string guid = this->GetGUID(name.c_str()); + if(guid.size() == 0) + { + std::string m = "Target: "; + m += dspname; + m += " depends on unknown target: "; + m += name.c_str(); + cmSystemTools::Error(m.c_str()); + } + + fout << "\t\t{" << this->GetGUID(dspname) << "}." << depcount << " = {" + << guid << "}\n"; + depcount++; + } + } +} + + +// Write a dsp file into the SLN file, Note, that dependencies from +// executables to the libraries it uses are also done here +void cmGlobalVisualStudio7Generator +::WriteProjectConfigurations(std::ostream& fout, const char* name, + bool partOfDefaultBuild) +{ + std::string guid = this->GetGUID(name); + for(std::vector::iterator i = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + fout << "\t\t{" << guid << "}." << *i + << ".ActiveCfg = " << *i << "|Win32\n"; + if(partOfDefaultBuild) + { + fout << "\t\t{" << guid << "}." << *i + << ".Build.0 = " << *i << "|Win32\n"; + } + } +} + + + +// Write a dsp file into the SLN file, +// Note, that dependencies from executables to +// the libraries it uses are also done here +void cmGlobalVisualStudio7Generator::WriteExternalProject(std::ostream& fout, + const char* name, + const char* location, + const std::vector&) +{ + std::cout << "WriteExternalProject vs7\n"; + std::string d = cmSystemTools::ConvertToOutputPath(location); + fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" + << name << "\", \"" + << this->ConvertToSolutionPath(location) << "\", \"{" + << this->GetGUID(name) + << "}\"\n"; + fout << "EndProject\n"; +} + + + +// Standard end of dsw file +void cmGlobalVisualStudio7Generator::WriteSLNFooter(std::ostream& fout) +{ + fout << "\tGlobalSection(ExtensibilityGlobals) = postSolution\n" + << "\tEndGlobalSection\n" + << "\tGlobalSection(ExtensibilityAddIns) = postSolution\n" + << "\tEndGlobalSection\n" + << "EndGlobal\n"; +} + + +// ouput standard header for dsw file +void cmGlobalVisualStudio7Generator::WriteSLNHeader(std::ostream& fout) +{ + fout << "Microsoft Visual Studio Solution File, Format Version 7.00\n"; +} + +std::string cmGlobalVisualStudio7Generator::GetGUID(const char* name) +{ + std::string guidStoreName = name; + guidStoreName += "_GUID_CMAKE"; + const char* storedGUID = + this->CMakeInstance->GetCacheDefinition(guidStoreName.c_str()); + if(storedGUID) + { + return std::string(storedGUID); + } + cmSystemTools::Error("Unknown Target referenced : ", + name); + return ""; +} + + +void cmGlobalVisualStudio7Generator::CreateGUID(const char* name) +{ + std::string guidStoreName = name; + guidStoreName += "_GUID_CMAKE"; + if(this->CMakeInstance->GetCacheDefinition(guidStoreName.c_str())) + { + return; + } + std::string ret; + UUID uid; + unsigned char *uidstr; + UuidCreate(&uid); + UuidToString(&uid,&uidstr); + ret = reinterpret_cast(uidstr); + RpcStringFree(&uidstr); + ret = cmSystemTools::UpperCase(ret); + this->CMakeInstance->AddCacheEntry(guidStoreName.c_str(), + ret.c_str(), "Stored GUID", + cmCacheManager::INTERNAL); +} + +std::vector *cmGlobalVisualStudio7Generator::GetConfigurations() +{ + return &this->Configurations; +}; + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio7Generator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio .NET 2002 project files."; + entry.Full = ""; +} + +// make sure "special" targets have GUID's +void cmGlobalVisualStudio7Generator::Configure() +{ + cmGlobalGenerator::Configure(); + this->CreateGUID("ALL_BUILD"); + this->CreateGUID("INSTALL"); + this->CreateGUID("RUN_TESTS"); + this->CreateGUID("EDIT_CACHE"); + this->CreateGUID("REBUILD_CACHE"); + this->CreateGUID("PACKAGE"); +} + +//---------------------------------------------------------------------------- +void +cmGlobalVisualStudio7Generator +::AppendDirectoryForConfig(const char* prefix, + const char* config, + const char* suffix, + std::string& dir) +{ + if(config) + { + dir += prefix; + dir += config; + dir += suffix; + } +} + +bool cmGlobalVisualStudio7Generator::IsPartOfDefaultBuild(const char* project, + cmTarget* target) +{ + if(target->GetPropertyAsBool("EXCLUDE_FROM_DEFAULT_BUILD")) + { + return false; + } + // if it is a utilitiy target then only make it part of the + // default build if another target depends on it + int type = target->GetType(); + if (type == cmTarget::GLOBAL_TARGET) + { + return false; + } + if(type == cmTarget::UTILITY) + { + return this->IsDependedOn(project, target); + } + // default is to be part of the build + return true; +} + +//---------------------------------------------------------------------------- +static cmVS7FlagTable cmVS7ExtraFlagTable[] = +{ + // Precompiled header and related options. Note that the + // UsePrecompiledHeader entries are marked as "Continue" so that the + // corresponding PrecompiledHeaderThrough entry can be found. + {"UsePrecompiledHeader", "YX", "Automatically Generate", "2", + cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue}, + {"PrecompiledHeaderThrough", "YX", "Precompiled Header Name", "", + cmVS7FlagTable::UserValueRequired}, + {"UsePrecompiledHeader", "Yu", "Use Precompiled Header", "3", + cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue}, + {"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "", + cmVS7FlagTable::UserValueRequired}, + + // Exception handling mode. If no entries match, it will be FALSE. + {"ExceptionHandling", "GX", "enable c++ exceptions", "TRUE", 0}, + {"ExceptionHandling", "EHsc", "enable c++ exceptions", "TRUE", 0}, + // The EHa option does not have an IDE setting. Let it go to false, + // and have EHa passed on the command line by leaving out the table + // entry. + + {0,0,0,0,0} +}; +cmVS7FlagTable const* cmGlobalVisualStudio7Generator::GetExtraFlagTableVS7() +{ + return cmVS7ExtraFlagTable; +} diff --git a/CMakeLua/Source/cmGlobalVisualStudio7Generator.h b/CMakeLua/Source/cmGlobalVisualStudio7Generator.h new file mode 100644 index 0000000..01d1d6b --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio7Generator.h @@ -0,0 +1,156 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio7Generator.h,v $ + Language: C++ + Date: $Date: 2008/01/31 21:38:45 $ + Version: $Revision: 1.45 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudio7Generator_h +#define cmGlobalVisualStudio7Generator_h + +#include "cmGlobalVisualStudioGenerator.h" + +class cmTarget; +struct cmVS7FlagTable; + +/** \class cmGlobalVisualStudio7Generator + * \brief Write a Unix makefiles. + * + * cmGlobalVisualStudio7Generator manages UNIX build process for a tree + */ +class cmGlobalVisualStudio7Generator : public cmGlobalVisualStudioGenerator +{ +public: + cmGlobalVisualStudio7Generator(); + static cmGlobalGenerator* New() { + return new cmGlobalVisualStudio7Generator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio7Generator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 7";} + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); + + /** + * Try running cmake and building a file. This is used for dynalically + * loaded commands, not as part of the usual build process. + */ + virtual std::string GenerateBuildCommand(const char* makeProgram, + const char *projectName, + const char* additionalOptions, + const char *targetName, + const char* config, + bool ignoreErrors, + bool fast); + + /** + * Generate the all required files for building this project/tree. This + * basically creates a series of LocalGenerators for each directory and + * requests that they Generate. + */ + virtual void Generate(); + + /** + * Generate the DSW workspace file. + */ + virtual void OutputSLNFile(); + + /** + * Get the list of configurations + */ + std::vector *GetConfigurations(); + + ///! Create a GUID or get an existing one. + void CreateGUID(const char* name); + std::string GetGUID(const char* name); + + ///! do configure step + virtual void Configure(); + + /** Append the subdirectory for the given configuration. */ + virtual void AppendDirectoryForConfig(const char* prefix, + const char* config, + const char* suffix, + std::string& dir); + + ///! What is the configurations directory variable called? + virtual const char* GetCMakeCFGInitDirectory() { return "$(OutDir)"; } + +protected: + static cmVS7FlagTable const* GetExtraFlagTableVS7(); + virtual void OutputSLNFile(cmLocalGenerator* root, + std::vector& generators); + virtual void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root, + std::vector& generators); + virtual void WriteProject(std::ostream& fout, + const char* name, const char* path, cmTarget &t); + virtual void WriteProjectDepends(std::ostream& fout, + const char* name, const char* path, cmTarget &t); + virtual void WriteProjectConfigurations(std::ostream& fout, + const char* name, + bool partOfDefaultBuild); + virtual void WriteSLNFooter(std::ostream& fout); + virtual void WriteSLNHeader(std::ostream& fout); + virtual void AddPlatformDefinitions(cmMakefile* mf); + + virtual void WriteTargetsToSolution( + std::ostream& fout, + cmLocalGenerator* root, + cmGlobalGenerator::TargetDependSet& projectTargets, + cmGlobalGenerator::TargetDependSet& originalTargets); + virtual void WriteTargetDepends( + std::ostream& fout, + cmGlobalGenerator::TargetDependSet& projectTargets); + virtual void WriteTargetConfigurations( + std::ostream& fout, + cmLocalGenerator* root, + cmGlobalGenerator::TargetDependSet& projectTargets); + + void AddAllBuildDepends(cmLocalGenerator* root, + cmTarget* target, + cmGlobalGenerator::TargetDependSet& targets); + + void GenerateConfigurations(cmMakefile* mf); + + virtual void WriteExternalProject(std::ostream& fout, + const char* name, + const char* path, + const std::vector& + dependencies); + + std::string ConvertToSolutionPath(const char* path); + + bool IsPartOfDefaultBuild(const char* project, + cmTarget* target); + std::vector Configurations; + std::map GUIDMap; + + // Set during OutputSLNFile with the name of the current project. + // There is one SLN file per project. + std::string CurrentProject; +}; + +#define CMAKE_CHECK_BUILD_SYSTEM_TARGET "ZERO_CHECK" + +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudio8Generator.cxx b/CMakeLua/Source/cmGlobalVisualStudio8Generator.cxx new file mode 100644 index 0000000..b2fbc0e --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio8Generator.cxx @@ -0,0 +1,326 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio8Generator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.34 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "windows.h" // this must be first to define GetCurrentDirectory +#include "cmGlobalVisualStudio8Generator.h" +#include "cmLocalVisualStudio7Generator.h" +#include "cmMakefile.h" +#include "cmake.h" + + + +cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator() +{ + this->FindMakeProgramFile = "CMakeVS8FindMake.cmake"; + this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms"; + this->PlatformName = "Win32"; +} + + + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalVisualStudio8Generator::CreateLocalGenerator() +{ + cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator; + lg->SetVersion8(); + lg->SetExtraFlagTable(this->GetExtraFlagTableVS8()); + lg->SetGlobalGenerator(this); + return lg; +} + + +// ouput standard header for dsw file +void cmGlobalVisualStudio8Generator::WriteSLNHeader(std::ostream& fout) +{ + fout << "Microsoft Visual Studio Solution File, Format Version 9.00\n"; + fout << "# Visual Studio 2005\n"; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio8Generator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio .NET 2005 project files."; + entry.Full = ""; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio8Generator::AddPlatformDefinitions(cmMakefile* mf) +{ + mf->AddDefinition("MSVC80", "1"); +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio8Generator::Configure() +{ + this->cmGlobalVisualStudio7Generator::Configure(); + this->CreateGUID(CMAKE_CHECK_BUILD_SYSTEM_TARGET); +} + +//---------------------------------------------------------------------------- +std::string cmGlobalVisualStudio8Generator::GetUserMacrosDirectory() +{ + // Some VS8 sp0 versions cannot run macros. + // See http://support.microsoft.com/kb/928209 + const char* vc8sp1Registry = + "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\" + "InstalledProducts\\KB926601;"; + const char* vc8exSP1Registry = + "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\" + "InstalledProducts\\KB926748;"; + std::string vc8sp1; + if (!cmSystemTools::ReadRegistryValue(vc8sp1Registry, vc8sp1) && + !cmSystemTools::ReadRegistryValue(vc8exSP1Registry, vc8sp1)) + { + return ""; + } + + std::string base; + std::string path; + + // base begins with the VisualStudioProjectsLocation reg value... + if (cmSystemTools::ReadRegistryValue( + "HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\8.0;" + "VisualStudioProjectsLocation", + base)) + { + cmSystemTools::ConvertToUnixSlashes(base); + + // 7.0 macros folder: + //path = base + "/VSMacros"; + + // 7.1 macros folder: + //path = base + "/VSMacros71"; + + // 8.0 macros folder: + path = base + "/VSMacros80"; + } + + // path is (correctly) still empty if we did not read the base value from + // the Registry value + return path; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio8Generator::Generate() +{ + // Add a special target on which all other targets depend that + // checks the build system and optionally re-runs CMake. + const char* no_working_directory = 0; + std::vector no_depends; + std::map >::iterator it; + for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it) + { + std::vector& generators = it->second; + if(!generators.empty()) + { + // Add the build-system check target to the first local + // generator of this project. + cmLocalVisualStudio7Generator* lg = + static_cast(generators[0]); + cmMakefile* mf = lg->GetMakefile(); + std::string cmake_command = mf->GetRequiredDefinition("CMAKE_COMMAND"); + cmCustomCommandLines noCommandLines; + mf->AddUtilityCommand(CMAKE_CHECK_BUILD_SYSTEM_TARGET, false, + no_working_directory, no_depends, + noCommandLines); + cmTarget* tgt = mf->FindTarget(CMAKE_CHECK_BUILD_SYSTEM_TARGET); + if(!tgt) + { + cmSystemTools::Error("Error adding target " + CMAKE_CHECK_BUILD_SYSTEM_TARGET); + continue; + } + + // Add a custom rule to re-run CMake if any input files changed. + const char* suppRegenRule = + mf->GetDefinition("CMAKE_SUPPRESS_REGENERATION"); + if(!cmSystemTools::IsOn(suppRegenRule)) + { + // Collect the input files used to generate all targets in this + // project. + std::vector listFiles; + for(unsigned int j = 0; j < generators.size(); ++j) + { + cmMakefile* lmf = generators[j]->GetMakefile(); + listFiles.insert(listFiles.end(), lmf->GetListFiles().begin(), + lmf->GetListFiles().end()); + } + // Sort the list of input files and remove duplicates. + std::sort(listFiles.begin(), listFiles.end(), + std::less()); + std::vector::iterator new_end = + std::unique(listFiles.begin(), listFiles.end()); + listFiles.erase(new_end, listFiles.end()); + + // Create a rule to re-run CMake. + std::string stampName = cmake::GetCMakeFilesDirectoryPostSlash(); + stampName += "generate.stamp"; + const char* dsprule = mf->GetRequiredDefinition("CMAKE_COMMAND"); + cmCustomCommandLine commandLine; + commandLine.push_back(dsprule); + std::string argH = "-H"; + argH += lg->Convert(mf->GetHomeDirectory(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED, true); + commandLine.push_back(argH); + std::string argB = "-B"; + argB += lg->Convert(mf->GetHomeOutputDirectory(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED, true); + commandLine.push_back(argB); + commandLine.push_back("--check-stamp-file"); + commandLine.push_back(stampName.c_str()); + commandLine.push_back("--vs-solution-file"); + commandLine.push_back("\"$(SolutionPath)\""); + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + // Add the rule. Note that we cannot use the CMakeLists.txt + // file as the main dependency because it would get + // overwritten by the CreateVCProjBuildRule. + // (this could be avoided with per-target source files) + const char* no_main_dependency = 0; + const char* no_working_directory = 0; + mf->AddCustomCommandToOutput( + stampName.c_str(), listFiles, + no_main_dependency, commandLines, "Checking Build System", + no_working_directory, true); + std::string ruleName = stampName; + ruleName += ".rule"; + if(cmSourceFile* file = mf->GetSource(ruleName.c_str())) + { + tgt->AddSourceFile(file); + } + else + { + cmSystemTools::Error("Error adding rule for ", stampName.c_str()); + } + } + } + } + + // Now perform the main generation. + this->cmGlobalVisualStudio7Generator::Generate(); +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio8Generator::WriteSLNFile( + std::ostream& fout, cmLocalGenerator* root, + std::vector& generators) +{ + // Make all targets depend on their respective project's build + // system check target. + unsigned int i; + for(i = 0; i < generators.size(); ++i) + { + if(this->IsExcluded(root, generators[i])) + { + continue; + } + cmMakefile* mf = generators[i]->GetMakefile(); + cmTargets& tgts = mf->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l) + { + if(l->first == CMAKE_CHECK_BUILD_SYSTEM_TARGET) + { + for(unsigned int j = 0; j < generators.size(); ++j) + { + // Every target in all generators should depend on this target. + cmMakefile* lmf = generators[j]->GetMakefile(); + cmTargets &atgts = lmf->GetTargets(); + for(cmTargets::iterator al = atgts.begin(); al != atgts.end(); ++al) + { + al->second.AddUtility(l->first.c_str()); + } + } + } + } + } + + // Now write the solution file. + this->cmGlobalVisualStudio71Generator::WriteSLNFile(fout, root, generators); +} + +//---------------------------------------------------------------------------- +void +cmGlobalVisualStudio8Generator +::WriteSolutionConfigurations(std::ostream& fout) +{ + fout << "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n"; + for(std::vector::iterator i = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + fout << "\t\t" << *i << "|" << this->PlatformName << " = " << *i << "|" + << this->PlatformName << "\n"; + } + fout << "\tEndGlobalSection\n"; +} + +//---------------------------------------------------------------------------- +void +cmGlobalVisualStudio8Generator +::WriteProjectConfigurations(std::ostream& fout, const char* name, + bool partOfDefaultBuild) +{ + std::string guid = this->GetGUID(name); + for(std::vector::iterator i = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + fout << "\t\t{" << guid << "}." << *i + << "|" << this->PlatformName << ".ActiveCfg = " + << *i << "|" << this->PlatformName << "\n"; + if(partOfDefaultBuild) + { + fout << "\t\t{" << guid << "}." << *i + << "|" << this->PlatformName << ".Build.0 = " + << *i << "|" << this->PlatformName << "\n"; + } + } +} + +//---------------------------------------------------------------------------- +static cmVS7FlagTable cmVS8ExtraFlagTable[] = +{ + {"CallingConvention", "Gd", "cdecl", "0", 0 }, + {"CallingConvention", "Gr", "fastcall", "1", 0 }, + {"CallingConvention", "Gz", "stdcall", "2", 0 }, + + {"Detect64BitPortabilityProblems", "Wp64", + "Detect 64Bit Portability Problems", "true", 0 }, + {"ErrorReporting", "errorReport:prompt", "Report immediately", "1", 0 }, + {"ErrorReporting", "errorReport:queue", "Queue for next login", "2", 0 }, + // Precompiled header and related options. Note that the + // UsePrecompiledHeader entries are marked as "Continue" so that the + // corresponding PrecompiledHeaderThrough entry can be found. + {"UsePrecompiledHeader", "Yu", "Use Precompiled Header", "2", + cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue}, + {"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "", + cmVS7FlagTable::UserValueRequired}, + // There is no YX option in the VS8 IDE. + + // Exception handling mode. If no entries match, it will be FALSE. + {"ExceptionHandling", "GX", "enable c++ exceptions", "1", 0}, + {"ExceptionHandling", "EHsc", "enable c++ exceptions", "1", 0}, + {"ExceptionHandling", "EHa", "enable SEH exceptions", "2", 0}, + + {0,0,0,0,0} +}; +cmVS7FlagTable const* cmGlobalVisualStudio8Generator::GetExtraFlagTableVS8() +{ + return cmVS8ExtraFlagTable; +} diff --git a/CMakeLua/Source/cmGlobalVisualStudio8Generator.h b/CMakeLua/Source/cmGlobalVisualStudio8Generator.h new file mode 100644 index 0000000..144bd5a --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio8Generator.h @@ -0,0 +1,75 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio8Generator.h,v $ + Language: C++ + Date: $Date: 2007/12/21 20:04:06 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudio8Generator_h +#define cmGlobalVisualStudio8Generator_h + +#include "cmGlobalVisualStudio71Generator.h" + + +/** \class cmGlobalVisualStudio8Generator + * \brief Write a Unix makefiles. + * + * cmGlobalVisualStudio8Generator manages UNIX build process for a tree + */ +class cmGlobalVisualStudio8Generator : public cmGlobalVisualStudio71Generator +{ +public: + cmGlobalVisualStudio8Generator(); + static cmGlobalGenerator* New() { + return new cmGlobalVisualStudio8Generator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio8Generator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 8 2005";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Override Configure and Generate to add the build-system check + * target. + */ + virtual void Configure(); + virtual void Generate(); + + /** + * Where does this version of Visual Studio look for macros for the + * current user? Returns the empty string if this version of Visual + * Studio does not implement support for VB macros. + */ + virtual std::string GetUserMacrosDirectory(); + +protected: + + virtual bool VSLinksDependencies() const { return false; } + + static cmVS7FlagTable const* GetExtraFlagTableVS8(); + virtual void AddPlatformDefinitions(cmMakefile* mf); + virtual void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root, + std::vector& generators); + virtual void WriteSLNHeader(std::ostream& fout); + virtual void WriteSolutionConfigurations(std::ostream& fout); + virtual void WriteProjectConfigurations(std::ostream& fout, + const char* name, + bool partOfDefaultBuild); + std::string PlatformName; // Win32 or x64 +}; +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.cxx b/CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.cxx new file mode 100644 index 0000000..895800d --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.cxx @@ -0,0 +1,56 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio8Win64Generator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "windows.h" // this must be first to define GetCurrentDirectory +#include "cmGlobalVisualStudio8Win64Generator.h" +#include "cmLocalVisualStudio7Generator.h" +#include "cmMakefile.h" +#include "cmake.h" + + + +cmGlobalVisualStudio8Win64Generator::cmGlobalVisualStudio8Win64Generator() +{ + this->PlatformName = "x64"; +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalVisualStudio8Win64Generator::CreateLocalGenerator() +{ + cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator; + lg->SetVersion8(); + lg->SetPlatformName(this->PlatformName.c_str()); + lg->SetExtraFlagTable(this->GetExtraFlagTableVS8()); + lg->SetGlobalGenerator(this); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio8Win64Generator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio .NET 2005 Win64 project files."; + entry.Full = ""; +} + +void cmGlobalVisualStudio8Win64Generator +::EnableLanguage(std::vectorconst & lang, + cmMakefile *mf, bool optional) +{ + mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE"); + cmGlobalVisualStudio8Generator::EnableLanguage(lang, mf, optional); +} diff --git a/CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.h b/CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.h new file mode 100644 index 0000000..ac60a00 --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio8Win64Generator.h @@ -0,0 +1,54 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio8Win64Generator.h,v $ + Language: C++ + Date: $Date: 2007/06/28 13:09:26 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudio8Win64Generator_h +#define cmGlobalVisualStudio8Win64Generator_h + +#include "cmGlobalVisualStudio8Generator.h" + + +/** \class cmGlobalVisualStudio8Win64Generator + * \brief Write a Unix makefiles. + * + * cmGlobalVisualStudio8Win64Generator manages UNIX build process for a tree + */ +class cmGlobalVisualStudio8Win64Generator : + public cmGlobalVisualStudio8Generator +{ +public: + cmGlobalVisualStudio8Win64Generator(); + static cmGlobalGenerator* New() { + return new cmGlobalVisualStudio8Win64Generator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio8Win64Generator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 8 2005 Win64";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! create the correct local generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); +}; +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudio9Generator.cxx b/CMakeLua/Source/cmGlobalVisualStudio9Generator.cxx new file mode 100755 index 0000000..ef94e0d --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio9Generator.cxx @@ -0,0 +1,94 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio9Generator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/18 19:34:48 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "windows.h" // this must be first to define GetCurrentDirectory +#include "cmGlobalVisualStudio9Generator.h" +#include "cmLocalVisualStudio7Generator.h" +#include "cmMakefile.h" +#include "cmake.h" + + + +cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator() +{ + this->FindMakeProgramFile = "CMakeVS9FindMake.cmake"; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio9Generator::AddPlatformDefinitions(cmMakefile* mf) +{ + mf->AddDefinition("MSVC90", "1"); +} + +void cmGlobalVisualStudio9Generator::WriteSLNHeader(std::ostream& fout) +{ + fout << "Microsoft Visual Studio Solution File, Format Version 10.00\n"; + fout << "# Visual Studio 2008\n"; +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalVisualStudio9Generator::CreateLocalGenerator() +{ + cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator; + lg->SetVersion9(); + lg->SetExtraFlagTable(this->GetExtraFlagTableVS8()); + lg->SetGlobalGenerator(this); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio9Generator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio 9 2008 project files."; + entry.Full = ""; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio9Generator +::EnableLanguage(std::vectorconst & lang, + cmMakefile *mf, bool optional) +{ + cmGlobalVisualStudio8Generator::EnableLanguage(lang, mf, optional); +} + +//---------------------------------------------------------------------------- +std::string cmGlobalVisualStudio9Generator::GetUserMacrosDirectory() +{ + std::string base; + std::string path; + + // base begins with the VisualStudioProjectsLocation reg value... + if (cmSystemTools::ReadRegistryValue( + "HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\9.0;" + "VisualStudioProjectsLocation", + base)) + { + cmSystemTools::ConvertToUnixSlashes(base); + + // 9.0 macros folder: + path = base + "/VSMacros80"; + // *NOT* a typo; right now in Visual Studio 2008 beta the macros + // folder is VSMacros80... They may change it to 90 before final + // release of 2008 or they may not... we'll have to keep our eyes + // on it + } + + // path is (correctly) still empty if we did not read the base value from + // the Registry value + return path; +} diff --git a/CMakeLua/Source/cmGlobalVisualStudio9Generator.h b/CMakeLua/Source/cmGlobalVisualStudio9Generator.h new file mode 100755 index 0000000..9bb151c --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio9Generator.h @@ -0,0 +1,63 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudio9Generator.h,v $ + Language: C++ + Date: $Date: 2008/01/18 19:34:48 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudio9Generator_h +#define cmGlobalVisualStudio9Generator_h + +#include "cmGlobalVisualStudio8Generator.h" + + +/** \class cmGlobalVisualStudio9Generator + * \brief Write a Unix makefiles. + * + * cmGlobalVisualStudio9Generator manages UNIX build process for a tree + */ +class cmGlobalVisualStudio9Generator : + public cmGlobalVisualStudio8Generator +{ +public: + cmGlobalVisualStudio9Generator(); + static cmGlobalGenerator* New() { + return new cmGlobalVisualStudio9Generator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio9Generator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 9 2008";} + virtual void AddPlatformDefinitions(cmMakefile* mf); + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! create the correct local generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); + virtual void WriteSLNHeader(std::ostream& fout); + + /** + * Where does this version of Visual Studio look for macros for the + * current user? Returns the empty string if this version of Visual + * Studio does not implement support for VB macros. + */ + virtual std::string GetUserMacrosDirectory(); +}; +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.cxx b/CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.cxx new file mode 100755 index 0000000..1b0f33c --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.cxx @@ -0,0 +1,53 @@ +/*========================================================================= + +Program: CMake - Cross-Platform Makefile Generator +Module: $RCSfile: cmGlobalVisualStudio9Win64Generator.cxx,v $ +Language: C++ +Date: $Date: 2007/12/17 19:43:11 $ +Version: $Revision: 1.1 $ + +Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalVisualStudio9Win64Generator.h" +#include "cmLocalVisualStudio7Generator.h" +#include "cmMakefile.h" + + +cmGlobalVisualStudio9Win64Generator::cmGlobalVisualStudio9Win64Generator() +{ + this->PlatformName = "x64"; +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalVisualStudio9Win64Generator::CreateLocalGenerator() +{ + cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator; + lg->SetVersion9(); + lg->SetPlatformName(this->PlatformName.c_str()); + lg->SetExtraFlagTable(this->GetExtraFlagTableVS8()); + lg->SetGlobalGenerator(this); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio9Win64Generator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio 9 2008 Win64 project files."; + entry.Full = ""; +} + +void cmGlobalVisualStudio9Win64Generator +::EnableLanguage(std::vectorconst & lang, + cmMakefile *mf, bool optional) +{ + mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE"); + cmGlobalVisualStudio9Generator::EnableLanguage(lang, mf, optional); +} diff --git a/CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.h b/CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.h new file mode 100755 index 0000000..f4c9738 --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudio9Win64Generator.h @@ -0,0 +1,54 @@ +/*========================================================================= + +Program: CMake - Cross-Platform Makefile Generator +Module: $RCSfile: cmGlobalVisualStudio9Win64Generator.h,v $ +Language: C++ +Date: $Date: 2007/12/17 19:43:11 $ +Version: $Revision: 1.1 $ + +Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudio9Win64Generator_h +#define cmGlobalVisualStudio9Win64Generator_h + +#include "cmGlobalVisualStudio9Generator.h" + + +/** \class cmGlobalVisualStudio8Win64Generator + * \brief Write a Unix makefiles. + * + * cmGlobalVisualStudio8Win64Generator manages UNIX build process for a tree + */ +class cmGlobalVisualStudio9Win64Generator : + public cmGlobalVisualStudio9Generator +{ +public: + cmGlobalVisualStudio9Win64Generator(); + static cmGlobalGenerator* New() { + return new cmGlobalVisualStudio9Win64Generator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio9Win64Generator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 9 2008 Win64";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! create the correct local generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); +}; +#endif diff --git a/CMakeLua/Source/cmGlobalVisualStudioGenerator.cxx b/CMakeLua/Source/cmGlobalVisualStudioGenerator.cxx new file mode 100755 index 0000000..294bd07 --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudioGenerator.cxx @@ -0,0 +1,696 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudioGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalVisualStudioGenerator.h" + +#include "cmCallVisualStudioMacro.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" +#include "cmTarget.h" + +//---------------------------------------------------------------------------- +cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator() +{ +} + +//---------------------------------------------------------------------------- +cmGlobalVisualStudioGenerator::~cmGlobalVisualStudioGenerator() +{ +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudioGenerator::Generate() +{ + // Add a special target that depends on ALL projects for easy build + // of one configuration only. + const char* no_working_dir = 0; + std::vector no_depends; + cmCustomCommandLines no_commands; + std::map >::iterator it; + for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it) + { + std::vector& gen = it->second; + // add the ALL_BUILD to the first local generator of each project + if(gen.size()) + { + // Use no actual command lines so that the target itself is not + // considered always out of date. + gen[0]->GetMakefile()-> + AddUtilityCommand("ALL_BUILD", true, no_working_dir, + no_depends, no_commands, false, + "Build all projects"); + } + } + + // Fix utility dependencies to avoid linking to libraries. + this->FixUtilityDepends(); + + // Configure CMake Visual Studio macros, for this user on this version + // of Visual Studio. + this->ConfigureCMakeVisualStudioMacros(); + + // Run all the local generators. + this->cmGlobalGenerator::Generate(); +} + +//---------------------------------------------------------------------------- +bool IsVisualStudioMacrosFileRegistered(const std::string& macrosFile, + std::string& nextAvailableSubKeyName); + +void RegisterVisualStudioMacros(const std::string& macrosFile); + +//---------------------------------------------------------------------------- +#define CMAKE_VSMACROS_FILENAME \ + "CMakeVSMacros1.vsmacros" + +#define CMAKE_VSMACROS_RELOAD_MACRONAME \ + "Macros.CMakeVSMacros1.Macros.ReloadProjects" + +#define CMAKE_VSMACROS_STOP_MACRONAME \ + "Macros.CMakeVSMacros1.Macros.StopBuild" + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudioGenerator::ConfigureCMakeVisualStudioMacros() +{ + cmMakefile* mf = this->LocalGenerators[0]->GetMakefile(); + std::string dir = this->GetUserMacrosDirectory(); + + if (mf != 0 && dir != "") + { + std::string src = mf->GetRequiredDefinition("CMAKE_ROOT"); + src += "/Templates/" CMAKE_VSMACROS_FILENAME; + + std::string dst = dir + "/CMakeMacros/" CMAKE_VSMACROS_FILENAME; + + // Copy the macros file to the user directory only if the + // destination does not exist or the source location is newer. + // This will allow the user to edit the macros for development + // purposes but newer versions distributed with CMake will replace + // older versions in user directories. + int res; + if(!cmSystemTools::FileTimeCompare(src.c_str(), dst.c_str(), &res) || + res > 0) + { + if (!cmSystemTools::CopyFileAlways(src.c_str(), dst.c_str())) + { + std::ostringstream oss; + oss << "Could not copy from: " << src << std::endl; + oss << " to: " << dst << std::endl; + cmSystemTools::Message(oss.str().c_str(), "Warning"); + } + } + + RegisterVisualStudioMacros(dst); + } +} + +//---------------------------------------------------------------------------- +void +cmGlobalVisualStudioGenerator +::CallVisualStudioMacro(MacroName m, + const char* vsSolutionFile) +{ + // If any solution or project files changed during the generation, + // tell Visual Studio to reload them... + cmMakefile* mf = this->LocalGenerators[0]->GetMakefile(); + std::string dir = this->GetUserMacrosDirectory(); + + // Only really try to call the macro if: + // - mf is non-NULL + // - there is a UserMacrosDirectory + // - the CMake vsmacros file exists + // - the CMake vsmacros file is registered + // - there were .sln/.vcproj files changed during generation + // + if (mf != 0 && dir != "") + { + std::string macrosFile = dir + "/CMakeMacros/" CMAKE_VSMACROS_FILENAME; + std::string nextSubkeyName; + if (cmSystemTools::FileExists(macrosFile.c_str()) && + IsVisualStudioMacrosFileRegistered(macrosFile, nextSubkeyName) + ) + { + std::string topLevelSlnName; + if(vsSolutionFile) + { + topLevelSlnName = vsSolutionFile; + } + else + { + topLevelSlnName = mf->GetStartOutputDirectory(); + topLevelSlnName += "/"; + topLevelSlnName += mf->GetProjectName(); + topLevelSlnName += ".sln"; + } + + if(m == MacroReload) + { + std::vector filenames; + this->GetFilesReplacedDuringGenerate(filenames); + if (filenames.size() > 0) + { + // Convert vector to semi-colon delimited string of filenames: + std::string projects; + std::vector::iterator it = filenames.begin(); + if (it != filenames.end()) + { + projects = *it; + ++it; + } + for (; it != filenames.end(); ++it) + { + projects += ";"; + projects += *it; + } + cmCallVisualStudioMacro::CallMacro + (topLevelSlnName, CMAKE_VSMACROS_RELOAD_MACRONAME, projects); + } + } + else if(m == MacroStop) + { + cmCallVisualStudioMacro::CallMacro(topLevelSlnName, + CMAKE_VSMACROS_STOP_MACRONAME, ""); + } + } + } +} + +//---------------------------------------------------------------------------- +std::string cmGlobalVisualStudioGenerator::GetUserMacrosDirectory() +{ + return ""; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudioGenerator::FixUtilityDepends() +{ + // Skip for VS versions 8 and above. + if(!this->VSLinksDependencies()) + { + return; + } + + // For VS versions before 8: + // + // When a target that links contains a project-level dependency on a + // library target that library is automatically linked. In order to + // allow utility-style project-level dependencies that do not + // actually link we need to automatically insert an intermediate + // custom target. + // + // Here we edit the utility dependencies of a target to add the + // intermediate custom target when necessary. + for(unsigned i = 0; i < this->LocalGenerators.size(); ++i) + { + cmTargets* targets = + &(this->LocalGenerators[i]->GetMakefile()->GetTargets()); + for(cmTargets::iterator tarIt = targets->begin(); + tarIt != targets->end(); ++tarIt) + { + this->FixUtilityDependsForTarget(tarIt->second); + } + } +} + +//---------------------------------------------------------------------------- +void +cmGlobalVisualStudioGenerator::FixUtilityDependsForTarget(cmTarget& target) +{ + // Only targets that link need to be fixed. + if(target.GetType() != cmTarget::STATIC_LIBRARY && + target.GetType() != cmTarget::SHARED_LIBRARY && + target.GetType() != cmTarget::MODULE_LIBRARY && + target.GetType() != cmTarget::EXECUTABLE) + { + return; + } + +#if 0 + // This feature makes a mess in SLN files for VS 7.1 and below. It + // creates an extra target for every target that is "linked" by a + // static library. Without this feature static libraries do not + // wait until their "link" dependencies are built to build. This is + // not a problem 99.9% of the time, and projects that do have the + // problem can enable this work-around by using add_dependencies. + + // Static libraries cannot depend directly on the targets to which + // they link because VS will copy those targets into the library + // (for VS < 8). To work around the problem we copy the + // dependencies to be utility dependencies so that the work-around + // below is used. + if(target.GetType() == cmTarget::STATIC_LIBRARY) + { + cmTarget::LinkLibraryVectorType const& libs = target.GetLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator i = libs.begin(); + i != libs.end(); ++i) + { + if(cmTarget* depTarget = this->FindTarget(0, i->first.c_str(), false)) + { + target.AddUtility(depTarget->GetName()); + } + } + } +#endif + + // Look at each utility dependency. + for(std::set::const_iterator ui = + target.GetUtilities().begin(); + ui != target.GetUtilities().end(); ++ui) + { + if(cmTarget* depTarget = this->FindTarget(0, ui->c_str())) + { + if(depTarget->GetType() == cmTarget::STATIC_LIBRARY || + depTarget->GetType() == cmTarget::SHARED_LIBRARY || + depTarget->GetType() == cmTarget::MODULE_LIBRARY) + { + // This utility dependency will cause an attempt to link. If + // the depender does not already link the dependee we need an + // intermediate target. + if(!this->CheckTargetLinks(target, ui->c_str())) + { + this->CreateUtilityDependTarget(*depTarget); + } + } + } + } +} + +//---------------------------------------------------------------------------- +void +cmGlobalVisualStudioGenerator::CreateUtilityDependTarget(cmTarget& target) +{ + // This target is a library on which a utility dependency exists. + // We need to create an intermediate custom target to hook up the + // dependency without causing a link. + const char* altName = target.GetProperty("ALTERNATIVE_DEPENDENCY_NAME"); + if(!altName) + { + // Create the intermediate utility target. + std::string altNameStr = target.GetName(); + altNameStr += "_UTILITY"; + const std::vector no_depends; + cmCustomCommandLines no_commands; + const char* no_working_dir = 0; + const char* no_comment = 0; + target.GetMakefile()->AddUtilityCommand(altNameStr.c_str(), true, + no_working_dir, no_depends, + no_commands, false, no_comment); + target.SetProperty("ALTERNATIVE_DEPENDENCY_NAME", altNameStr.c_str()); + + // Most targets have a GUID created in ConfigureFinalPass. Since + // that has already been called, create one for this target now. + this->CreateGUID(altNameStr.c_str()); + + // The intermediate target should depend on the original target. + if(cmTarget* alt = this->FindTarget(0, altNameStr.c_str())) + { + alt->AddUtility(target.GetName()); + } + } +} + +//---------------------------------------------------------------------------- +bool cmGlobalVisualStudioGenerator::CheckTargetLinks(cmTarget& target, + const char* name) +{ + // Return whether the given target links to a target with the given name. + if(target.GetType() == cmTarget::STATIC_LIBRARY) + { + // Static libraries never link to anything. + return false; + } + cmTarget::LinkLibraryVectorType const& libs = target.GetLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator i = libs.begin(); + i != libs.end(); ++i) + { + if(i->first == name) + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +const char* +cmGlobalVisualStudioGenerator::GetUtilityForTarget(cmTarget& target, + const char* name) +{ + // Handle the external MS project special case. + if(strncmp(name, "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + // Note from Ken: + // kind of weird removing the first 27 letters. my + // recommendatsions: use cmCustomCommand::GetCommand() to get the + // project name or get rid of the target name starting with + // "INCLUDE_EXTERNAL_MSPROJECT_" and use another indicator/flag + // somewhere. These external project names shouldn't conflict + // with cmake target names anyways. + return name+27; + } + + // Possibly depend on an intermediate utility target to avoid + // linking. + if(target.GetType() == cmTarget::STATIC_LIBRARY || + target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY || + target.GetType() == cmTarget::EXECUTABLE) + { + // The depender is a target that links. Lookup the dependee to + // see if it provides an alternative dependency name. + if(cmTarget* depTarget = this->FindTarget(0, name)) + { + // Check for an alternative name created by FixUtilityDepends. + if(const char* altName = + depTarget->GetProperty("ALTERNATIVE_DEPENDENCY_NAME")) + { + // The alternative name is needed only if the depender does + // not really link to the dependee. + if(!this->CheckTargetLinks(target, name)) + { + return altName; + } + } + } + } + + // No special case. Just use the original dependency name. + return name; +} + +//---------------------------------------------------------------------------- +#include + +//---------------------------------------------------------------------------- +bool IsVisualStudioMacrosFileRegistered(const std::string& macrosFile, + std::string& nextAvailableSubKeyName) +{ + bool macrosRegistered = false; + + std::string s1; + std::string s2; + + // Make lowercase local copies, convert to Unix slashes, and + // see if the resulting strings are the same: + s1 = cmSystemTools::LowerCase(macrosFile); + cmSystemTools::ConvertToUnixSlashes(s1); + + std::string keyname; + HKEY hkey = NULL; + LONG result = ERROR_SUCCESS; + DWORD index = 0; + + keyname = + "Software\\Microsoft\\VisualStudio\\8.0\\vsmacros\\OtherProjects7"; + hkey = NULL; + result = RegOpenKeyEx(HKEY_CURRENT_USER, keyname.c_str(), + 0, KEY_READ, &hkey); + if (ERROR_SUCCESS == result) + { + // Iterate the subkeys and look for the values of interest in each subkey: + CHAR subkeyname[256]; + DWORD cch_subkeyname = sizeof(subkeyname)/sizeof(subkeyname[0]); + CHAR keyclass[256]; + DWORD cch_keyclass = sizeof(keyclass)/sizeof(keyclass[0]); + FILETIME lastWriteTime; + lastWriteTime.dwHighDateTime = 0; + lastWriteTime.dwLowDateTime = 0; + + while (ERROR_SUCCESS == RegEnumKeyEx(hkey, index, subkeyname, + &cch_subkeyname, + 0, keyclass, &cch_keyclass, &lastWriteTime)) + { + // Open the subkey and query the values of interest: + HKEY hsubkey = NULL; + result = RegOpenKeyEx(hkey, subkeyname, 0, KEY_READ, &hsubkey); + if (ERROR_SUCCESS == result) + { + DWORD valueType = REG_SZ; + CHAR data1[256]; + DWORD cch_data1 = sizeof(data1)/sizeof(data1[0]); + RegQueryValueEx(hsubkey, "Path", 0, &valueType, + (LPBYTE) &data1[0], &cch_data1); + + DWORD data2 = 0; + DWORD cch_data2 = sizeof(data2); + RegQueryValueEx(hsubkey, "Security", 0, &valueType, + (LPBYTE) &data2, &cch_data2); + + DWORD data3 = 0; + DWORD cch_data3 = sizeof(data3); + RegQueryValueEx(hsubkey, "StorageFormat", 0, &valueType, + (LPBYTE) &data3, &cch_data3); + + s2 = cmSystemTools::LowerCase(data1); + cmSystemTools::ConvertToUnixSlashes(s2); + if (s2 == s1) + { + macrosRegistered = true; + } + + std::string fullname(data1); + std::string filename; + std::string filepath; + std::string filepathname; + std::string filepathpath; + if (cmSystemTools::FileExists(fullname.c_str())) + { + filename = cmSystemTools::GetFilenameName(fullname); + filepath = cmSystemTools::GetFilenamePath(fullname); + filepathname = cmSystemTools::GetFilenameName(filepath); + filepathpath = cmSystemTools::GetFilenamePath(filepath); + } + + //std::cout << keyname << "\\" << subkeyname << ":" << std::endl; + //std::cout << " Path: " << data1 << std::endl; + //std::cout << " Security: " << data2 << std::endl; + //std::cout << " StorageFormat: " << data3 << std::endl; + //std::cout << " filename: " << filename << std::endl; + //std::cout << " filepath: " << filepath << std::endl; + //std::cout << " filepathname: " << filepathname << std::endl; + //std::cout << " filepathpath: " << filepathpath << std::endl; + //std::cout << std::endl; + + RegCloseKey(hsubkey); + } + else + { + std::cout << "error opening subkey: " << subkeyname << std::endl; + std::cout << std::endl; + } + + ++index; + cch_subkeyname = sizeof(subkeyname)/sizeof(subkeyname[0]); + cch_keyclass = sizeof(keyclass)/sizeof(keyclass[0]); + lastWriteTime.dwHighDateTime = 0; + lastWriteTime.dwLowDateTime = 0; + } + + RegCloseKey(hkey); + } + else + { + std::cout << "error opening key: " << keyname << std::endl; + std::cout << std::endl; + } + + + // Pass back next available sub key name, assuming sub keys always + // follow the expected naming scheme. Expected naming scheme is that + // the subkeys of OtherProjects7 is 0 to n-1, so it's ok to use "n" + // as the name of the next subkey. + std::ostringstream ossNext; + ossNext << index; + nextAvailableSubKeyName = ossNext.str(); + + + keyname = + "Software\\Microsoft\\VisualStudio\\8.0\\vsmacros\\RecordingProject7"; + hkey = NULL; + result = RegOpenKeyEx(HKEY_CURRENT_USER, keyname.c_str(), + 0, KEY_READ, &hkey); + if (ERROR_SUCCESS == result) + { + DWORD valueType = REG_SZ; + CHAR data1[256]; + DWORD cch_data1 = sizeof(data1)/sizeof(data1[0]); + RegQueryValueEx(hkey, "Path", 0, &valueType, + (LPBYTE) &data1[0], &cch_data1); + + DWORD data2 = 0; + DWORD cch_data2 = sizeof(data2); + RegQueryValueEx(hkey, "Security", 0, &valueType, + (LPBYTE) &data2, &cch_data2); + + DWORD data3 = 0; + DWORD cch_data3 = sizeof(data3); + RegQueryValueEx(hkey, "StorageFormat", 0, &valueType, + (LPBYTE) &data3, &cch_data3); + + s2 = cmSystemTools::LowerCase(data1); + cmSystemTools::ConvertToUnixSlashes(s2); + if (s2 == s1) + { + macrosRegistered = true; + } + + //std::cout << keyname << ":" << std::endl; + //std::cout << " Path: " << data1 << std::endl; + //std::cout << " Security: " << data2 << std::endl; + //std::cout << " StorageFormat: " << data3 << std::endl; + //std::cout << std::endl; + + RegCloseKey(hkey); + } + else + { + std::cout << "error opening key: " << keyname << std::endl; + std::cout << std::endl; + } + + return macrosRegistered; +} + +//---------------------------------------------------------------------------- +void WriteVSMacrosFileRegistryEntry( + const std::string& nextAvailableSubKeyName, + const std::string& macrosFile) +{ + std::string keyname = + "Software\\Microsoft\\VisualStudio\\8.0\\vsmacros\\OtherProjects7"; + HKEY hkey = NULL; + LONG result = RegOpenKeyEx(HKEY_CURRENT_USER, keyname.c_str(), 0, + KEY_READ|KEY_WRITE, &hkey); + if (ERROR_SUCCESS == result) + { + // Create the subkey and set the values of interest: + HKEY hsubkey = NULL; + result = RegCreateKeyEx(hkey, nextAvailableSubKeyName.c_str(), 0, "", 0, + KEY_READ|KEY_WRITE, 0, &hsubkey, 0); + if (ERROR_SUCCESS == result) + { + DWORD dw = 0; + + std::string s(macrosFile); + cmSystemTools::ReplaceString(s, "/", "\\"); + + result = RegSetValueEx(hsubkey, "Path", 0, REG_SZ, (LPBYTE) s.c_str(), + static_cast(strlen(s.c_str()) + 1)); + if (ERROR_SUCCESS != result) + { + std::cout << "error result 1: " << result << std::endl; + std::cout << std::endl; + } + + // Security value is always "1" for sample macros files (seems to be "2" + // if you put the file somewhere outside the standard VSMacros folder) + dw = 1; + result = RegSetValueEx(hsubkey, "Security", + 0, REG_DWORD, (LPBYTE) &dw, sizeof(DWORD)); + if (ERROR_SUCCESS != result) + { + std::cout << "error result 2: " << result << std::endl; + std::cout << std::endl; + } + + // StorageFormat value is always "0" for sample macros files + dw = 0; + result = RegSetValueEx(hsubkey, "StorageFormat", + 0, REG_DWORD, (LPBYTE) &dw, sizeof(DWORD)); + if (ERROR_SUCCESS != result) + { + std::cout << "error result 3: " << result << std::endl; + std::cout << std::endl; + } + + RegCloseKey(hsubkey); + } + else + { + std::cout << "error creating subkey: " + << nextAvailableSubKeyName << std::endl; + std::cout << std::endl; + } + RegCloseKey(hkey); + } + else + { + std::cout << "error opening key: " << keyname << std::endl; + std::cout << std::endl; + } +} + +//---------------------------------------------------------------------------- +void RegisterVisualStudioMacros(const std::string& macrosFile) +{ + bool macrosRegistered; + std::string nextAvailableSubKeyName; + + macrosRegistered = IsVisualStudioMacrosFileRegistered(macrosFile, + nextAvailableSubKeyName); + + if (!macrosRegistered) + { + int count = cmCallVisualStudioMacro:: + GetNumberOfRunningVisualStudioInstances("ALL"); + + // Only register the macros file if there are *no* instances of Visual + // Studio running. If we register it while one is running, first, it has + // no effect on the running instance; second, and worse, Visual Studio + // removes our newly added registration entry when it quits. Instead, + // emit a warning asking the user to exit all running Visual Studio + // instances... + // + if (0 != count) + { + std::ostringstream oss; + oss << "Could not register CMake's Visual Studio macros file '" + << CMAKE_VSMACROS_FILENAME "' while Visual Studio is running." + << " Please exit all running instances of Visual Studio before" + << " continuing." << std::endl + << std::endl + << "CMake needs to register Visual Studio macros when its macros" + << " file is updated or when it detects that its current macros file" + << " is no longer registered with Visual Studio." + << std::endl; + cmSystemTools::Message(oss.str().c_str(), "Warning"); + + // Count them again now that the warning is over. In the case of a GUI + // warning, the user may have gone to close Visual Studio and then come + // back to the CMake GUI and clicked ok on the above warning. If so, + // then register the macros *now* if the count is *now* 0... + // + count = cmCallVisualStudioMacro:: + GetNumberOfRunningVisualStudioInstances("ALL"); + + // Also re-get the nextAvailableSubKeyName in case Visual Studio + // wrote out new registered macros information as it was exiting: + // + if (0 == count) + { + IsVisualStudioMacrosFileRegistered(macrosFile, + nextAvailableSubKeyName); + } + } + + // Do another if check - 'count' may have changed inside the above if: + // + if (0 == count) + { + WriteVSMacrosFileRegistryEntry(nextAvailableSubKeyName, macrosFile); + } + } +} diff --git a/CMakeLua/Source/cmGlobalVisualStudioGenerator.h b/CMakeLua/Source/cmGlobalVisualStudioGenerator.h new file mode 100644 index 0000000..cab3fd7 --- /dev/null +++ b/CMakeLua/Source/cmGlobalVisualStudioGenerator.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalVisualStudioGenerator.h,v $ + Language: C++ + Date: $Date: 2007/12/21 20:04:06 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalVisualStudioGenerator_h +#define cmGlobalVisualStudioGenerator_h + +#include "cmGlobalGenerator.h" + +/** \class cmGlobalVisualStudioGenerator + * \brief Base class for global Visual Studio generators. + * + * cmGlobalVisualStudioGenerator provides functionality common to all + * global Visual Studio generators. + */ +class cmGlobalVisualStudioGenerator : public cmGlobalGenerator +{ +public: + cmGlobalVisualStudioGenerator(); + virtual ~cmGlobalVisualStudioGenerator(); + + /** + * Basic generate implementation for all VS generators. + */ + virtual void Generate(); + + /** + * Configure CMake's Visual Studio macros file into the user's Visual + * Studio macros directory. + */ + virtual void ConfigureCMakeVisualStudioMacros(); + + /** + * Where does this version of Visual Studio look for macros for the + * current user? Returns the empty string if this version of Visual + * Studio does not implement support for VB macros. + */ + virtual std::string GetUserMacrosDirectory(); + + enum MacroName {MacroReload, MacroStop}; + + /** + * Call the ReloadProjects macro if necessary based on + * GetFilesReplacedDuringGenerate results. + */ + virtual void CallVisualStudioMacro(MacroName m, + const char* vsSolutionFile = 0); + +protected: + virtual void CreateGUID(const char*) {} + void FixUtilityDepends(); + const char* GetUtilityForTarget(cmTarget& target, const char*); + + // Does this VS version link targets to each other if there are + // dependencies in the SLN file? This was done for VS versions + // below 8. + virtual bool VSLinksDependencies() const { return true; } + +private: + void FixUtilityDependsForTarget(cmTarget& target); + void CreateUtilityDependTarget(cmTarget& target); + bool CheckTargetLinks(cmTarget& target, const char* name); +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalWatcomWMakeGenerator.cxx b/CMakeLua/Source/cmGlobalWatcomWMakeGenerator.cxx new file mode 100644 index 0000000..a872657 --- /dev/null +++ b/CMakeLua/Source/cmGlobalWatcomWMakeGenerator.cxx @@ -0,0 +1,71 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalWatcomWMakeGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalWatcomWMakeGenerator.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" + +cmGlobalWatcomWMakeGenerator::cmGlobalWatcomWMakeGenerator() +{ + this->FindMakeProgramFile = "CMakeFindWMake.cmake"; + this->ForceUnixPaths = false; + this->ToolSupportsColor = true; + this->NeedSymbolicMark = true; + this->EmptyRuleHackCommand = "@cd ."; +} + +void cmGlobalWatcomWMakeGenerator +::EnableLanguage(std::vectorconst& l, + cmMakefile *mf, + bool optional) +{ + // pick a default + mf->AddDefinition("WATCOM", "1"); + mf->AddDefinition("CMAKE_QUOTE_INCLUDE_PATHS", "1"); + mf->AddDefinition("CMAKE_MANGLE_OBJECT_FILE_NAMES", "1"); + mf->AddDefinition("CMAKE_MAKE_LINE_CONTINUE", "&"); + mf->AddDefinition("CMAKE_MAKE_SYMBOLIC_RULE", ".SYMBOLIC"); + mf->AddDefinition("CMAKE_NO_QUOTED_OBJECTS", "1"); + mf->AddDefinition("CMAKE_GENERATOR_CC", "wcl386"); + mf->AddDefinition("CMAKE_GENERATOR_CXX", "wcl386"); + this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalWatcomWMakeGenerator::CreateLocalGenerator() +{ + cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3; + lg->SetSilentNoColon(true); + lg->SetDefineWindowsNULL(true); + lg->SetWindowsShell(true); + lg->SetWatcomWMake(true); + lg->SetMakeSilentFlag("-s -h"); + lg->SetGlobalGenerator(this); + lg->SetIgnoreLibPrefix(true); + lg->SetPassMakeflags(false); + lg->SetUnixCD(false); + lg->SetIncludeDirective("!include"); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalWatcomWMakeGenerator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Watcom WMake makefiles."; + entry.Full = ""; +} diff --git a/CMakeLua/Source/cmGlobalWatcomWMakeGenerator.h b/CMakeLua/Source/cmGlobalWatcomWMakeGenerator.h new file mode 100644 index 0000000..57503f2 --- /dev/null +++ b/CMakeLua/Source/cmGlobalWatcomWMakeGenerator.h @@ -0,0 +1,51 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalWatcomWMakeGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/09 19:57:30 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalWatcomWMakeGenerator_h +#define cmGlobalWatcomWMakeGenerator_h + +#include "cmGlobalUnixMakefileGenerator3.h" + +/** \class cmGlobalWatcomWMakeGenerator + * \brief Write a NMake makefiles. + * + * cmGlobalWatcomWMakeGenerator manages nmake build process for a tree + */ +class cmGlobalWatcomWMakeGenerator : public cmGlobalUnixMakefileGenerator3 +{ +public: + cmGlobalWatcomWMakeGenerator(); + static cmGlobalGenerator* New() { return new cmGlobalWatcomWMakeGenerator; } + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalWatcomWMakeGenerator::GetActualName();} + static const char* GetActualName() {return "Watcom WMake";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalXCode21Generator.cxx b/CMakeLua/Source/cmGlobalXCode21Generator.cxx new file mode 100644 index 0000000..e0e7f25 --- /dev/null +++ b/CMakeLua/Source/cmGlobalXCode21Generator.cxx @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalXCode21Generator.cxx,v $ + Language: C++ + Date: $Date: 2007/08/14 15:45:14 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalXCode21Generator.h" +#include "cmXCode21Object.h" + +//---------------------------------------------------------------------------- +cmGlobalXCode21Generator::cmGlobalXCode21Generator() +{ + this->XcodeVersion = 21; +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCode21Generator::WriteXCodePBXProj(std::ostream& fout, + cmLocalGenerator* , + std::vector& ) +{ + fout << "// !$*UTF8*$!\n"; + fout << "{\n"; + cmXCode21Object::Indent(1, fout); + fout << "archiveVersion = 1;\n"; + cmXCode21Object::Indent(1, fout); + fout << "classes = {\n"; + cmXCode21Object::Indent(1, fout); + fout << "};\n"; + cmXCode21Object::Indent(1, fout); + fout << "objectVersion = 42;\n"; + cmXCode21Object::PrintList(this->XCodeObjects, fout); + cmXCode21Object::Indent(1, fout); + fout << "rootObject = " << this->RootObject->GetId() + << " /* Project object */;\n"; + fout << "}\n"; +} diff --git a/CMakeLua/Source/cmGlobalXCode21Generator.h b/CMakeLua/Source/cmGlobalXCode21Generator.h new file mode 100644 index 0000000..572d1f3 --- /dev/null +++ b/CMakeLua/Source/cmGlobalXCode21Generator.h @@ -0,0 +1,41 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalXCode21Generator.h,v $ + Language: C++ + Date: $Date: 2006/05/11 15:47:03 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalXCode21Generator_h +#define cmGlobalXCode21Generator_h + +#include "cmGlobalXCodeGenerator.h" + +/** \class cmGlobalXCode21Generator + * \brief Write Mac XCode projects + * + * cmGlobalXCode21Generator manages UNIX build process for a tree + */ +class cmGlobalXCode21Generator : public cmGlobalXCodeGenerator +{ +public: + cmGlobalXCode21Generator(); + static cmGlobalGenerator* New() { return new cmGlobalXCode21Generator; } + virtual void WriteXCodePBXProj(std::ostream& fout, + cmLocalGenerator* root, + std::vector& generators); + + ///! What is the configurations directory variable called? + virtual const char* GetCMakeCFGInitDirectory() { + return "$(CONFIGURATION)"; } +}; + +#endif diff --git a/CMakeLua/Source/cmGlobalXCodeGenerator.cxx b/CMakeLua/Source/cmGlobalXCodeGenerator.cxx new file mode 100644 index 0000000..f871594 --- /dev/null +++ b/CMakeLua/Source/cmGlobalXCodeGenerator.cxx @@ -0,0 +1,2975 @@ +/*========================================================================= + +Program: CMake - Cross-Platform Makefile Generator +Module: $RCSfile: cmGlobalXCodeGenerator.cxx,v $ +Language: C++ +Date: $Date: 2008/01/29 20:07:33 $ +Version: $Revision: 1.183 $ + +Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalXCodeGenerator.h" +#include "cmGlobalXCode21Generator.h" +#include "cmLocalXCodeGenerator.h" +#include "cmMakefile.h" +#include "cmXCodeObject.h" +#include "cmXCode21Object.h" +#include "cmake.h" +#include "cmGeneratedFileStream.h" +#include "cmComputeLinkInformation.h" +#include "cmSourceFile.h" + +//---------------------------------------------------------------------------- +#if defined(CMAKE_BUILD_WITH_CMAKE) +#include "cmXMLParser.h" + +// parse the xml file storing the installed version of Xcode on +// the machine +class cmXcodeVersionParser : public cmXMLParser +{ +public: + void StartElement(const char* , const char** ) + { + this->Data = ""; + } + void EndElement(const char* name) + { + if(strcmp(name, "key") == 0) + { + this->Key = this->Data; + } + else if(strcmp(name, "string") == 0) + { + if(this->Key == "CFBundleShortVersionString") + { + this->Version = (int)(10.0 * atof(this->Data.c_str())); + } + } + } + void CharacterDataHandler(const char* data, int length) + { + this->Data.append(data, length); + } + int Version; + std::string Key; + std::string Data; +}; +#endif + +//---------------------------------------------------------------------------- +cmGlobalXCodeGenerator::cmGlobalXCodeGenerator() +{ + this->FindMakeProgramFile = "CMakeFindXCode.cmake"; + this->RootObject = 0; + this->MainGroupChildren = 0; + this->SourcesGroupChildren = 0; + this->ResourcesGroupChildren = 0; + this->CurrentMakefile = 0; + this->CurrentLocalGenerator = 0; + this->XcodeVersion = 15; +} + +//---------------------------------------------------------------------------- +cmGlobalGenerator* cmGlobalXCodeGenerator::New() +{ +#if defined(CMAKE_BUILD_WITH_CMAKE) + cmXcodeVersionParser parser; + parser.ParseFile + ("/Developer/Applications/Xcode.app/Contents/version.plist"); + if(parser.Version == 15) + { + return new cmGlobalXCodeGenerator; + } + else if (parser.Version == 20) + { + cmSystemTools::Message("Xcode 2.0 not really supported by cmake, " + "using Xcode 15 generator\n"); + return new cmGlobalXCodeGenerator; + } + cmGlobalXCodeGenerator* ret = new cmGlobalXCode21Generator; + ret->SetVersion(parser.Version); + return ret; +#else + std::cerr << "CMake should be built with cmake to use XCode, " + "default to Xcode 1.5\n"; + return new cmGlobalXCodeGenerator; +#endif +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::EnableLanguage(std::vectorconst& + lang, + cmMakefile * mf, bool optional) +{ + mf->AddDefinition("XCODE","1"); + if(this->XcodeVersion == 15) + { + } + else + { + mf->AddCacheDefinition( + "CMAKE_CONFIGURATION_TYPES", + "Debug;Release;MinSizeRel;RelWithDebInfo", + "Semicolon separated list of supported configuration types, " + "only supports Debug, Release, MinSizeRel, and RelWithDebInfo, " + "anything else will be ignored.", + cmCacheManager::STRING); + } + mf->AddDefinition("CMAKE_GENERATOR_CC", "gcc"); + mf->AddDefinition("CMAKE_GENERATOR_CXX", "g++"); + mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1"); + // initialize Architectures so it can be used by + // GetTargetObjectFileDirectories + this->cmGlobalGenerator::EnableLanguage(lang, mf, optional); + const char* osxArch = + mf->GetDefinition("CMAKE_OSX_ARCHITECTURES"); + const char* sysroot = + mf->GetDefinition("CMAKE_OSX_SYSROOT"); + if(osxArch && sysroot) + { + this->Architectures.clear(); + cmSystemTools::ExpandListArgument(std::string(osxArch), + this->Architectures); + } +} + +//---------------------------------------------------------------------------- +std::string cmGlobalXCodeGenerator +::GenerateBuildCommand(const char* makeProgram, + const char *projectName, + const char* additionalOptions, + const char *targetName, + const char* config, + bool ignoreErrors, + bool) +{ + // Config is not used yet + (void) ignoreErrors; + + // now build the test + if(makeProgram == 0 || !strlen(makeProgram)) + { + cmSystemTools::Error( + "Generator cannot find the appropriate make command."); + return ""; + } + std::string makeCommand = + cmSystemTools::ConvertToOutputPath(makeProgram); + std::string lowerCaseCommand = makeCommand; + cmSystemTools::LowerCase(lowerCaseCommand); + + makeCommand += " -project "; + makeCommand += projectName; + makeCommand += ".xcode"; + if(this->XcodeVersion > 20) + { + makeCommand += "proj"; + } + + bool clean = false; + if ( targetName && strcmp(targetName, "clean") == 0 ) + { + clean = true; + targetName = "ALL_BUILD"; + } + if(clean) + { + makeCommand += " clean"; + } + else + { + makeCommand += " build"; + } + makeCommand += " -target "; + // if it is a null string for config don't use it + if(config && *config == 0) + { + config = 0; + } + if (targetName && strlen(targetName)) + { + makeCommand += targetName; + } + else + { + makeCommand += "ALL_BUILD"; + } + if(this->XcodeVersion == 15) + { + makeCommand += " -buildstyle Development "; + } + else + { + makeCommand += " -configuration "; + makeCommand += config?config:"Debug"; + } + if ( additionalOptions ) + { + makeCommand += " "; + makeCommand += additionalOptions; + } + return makeCommand; +} + +//---------------------------------------------------------------------------- +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalXCodeGenerator::CreateLocalGenerator() +{ + cmLocalGenerator *lg = new cmLocalXCodeGenerator; + lg->SetGlobalGenerator(this); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::Generate() +{ + std::map >::iterator it; + // make sure extra targets are added before calling + // the parent generate which will call trace depends + for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it) + { + cmLocalGenerator* root = it->second[0]; + this->SetGenerationRoot(root); + // add ALL_BUILD, INSTALL, etc + this->AddExtraTargets(root, it->second); + } + this->cmGlobalGenerator::Generate(); + for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it) + { + cmLocalGenerator* root = it->second[0]; + this->SetGenerationRoot(root); + // now create the project + this->OutputXCodeProject(root, it->second); + } +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::SetGenerationRoot(cmLocalGenerator* root) +{ + this->CurrentProject = root->GetMakefile()->GetProjectName(); + this->SetCurrentLocalGenerator(root); + std::string outDir = this->CurrentMakefile->GetHomeOutputDirectory(); + outDir =cmSystemTools::CollapseFullPath(outDir.c_str()); + cmSystemTools::SplitPath(outDir.c_str(), + this->ProjectOutputDirectoryComponents); + + this->CurrentXCodeHackMakefile = + root->GetMakefile()->GetCurrentOutputDirectory(); + this->CurrentXCodeHackMakefile += "/CMakeScripts"; + cmSystemTools::MakeDirectory(this->CurrentXCodeHackMakefile.c_str()); + this->CurrentXCodeHackMakefile += "/XCODE_DEPEND_HELPER.make"; +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root, + std::vector& gens) +{ + cmMakefile* mf = root->GetMakefile(); + + // Add ALL_BUILD + const char* no_working_directory = 0; + std::vector no_depends; + mf->AddUtilityCommand("ALL_BUILD", true, no_depends, + no_working_directory, + "echo", "Build all projects"); + cmTarget* allbuild = mf->FindTarget("ALL_BUILD"); + + // Add XCODE depend helper + std::string dir = mf->GetCurrentOutputDirectory(); + cmCustomCommandLine makecommand; + makecommand.push_back("make"); + makecommand.push_back("-C"); + makecommand.push_back(dir.c_str()); + makecommand.push_back("-f"); + makecommand.push_back(this->CurrentXCodeHackMakefile.c_str()); + if(this->XcodeVersion > 20) + { + makecommand.push_back("all.$(CONFIGURATION)"); + } + cmCustomCommandLines commandLines; + commandLines.push_back(makecommand); + // Add Re-Run CMake rules + this->CreateReRunCMakeFile(root); + + // now make the allbuild depend on all the non-utility targets + // in the project + for(std::vector::iterator i = gens.begin(); + i != gens.end(); ++i) + { + cmLocalGenerator* lg = *i; + if(this->IsExcluded(root, *i)) + { + continue; + } + cmTargets& tgts = lg->GetMakefile()->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); l++) + { + cmTarget& target = l->second; + // make all exe, shared libs and modules + // run the depend check makefile as a post build rule + // this will make sure that when the next target is built + // things are up-to-date + if((target.GetType() == cmTarget::EXECUTABLE || + target.GetType() == cmTarget::STATIC_LIBRARY || + target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY)) + { + lg->GetMakefile()->AddCustomCommandToTarget(target.GetName(), + no_depends, + commandLines, + cmTarget::POST_BUILD, + "Depend check for xcode", + dir.c_str()); + + } + if(!target.GetPropertyAsBool("EXCLUDE_FROM_ALL")) + { + allbuild->AddUtility(target.GetName()); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::CreateReRunCMakeFile(cmLocalGenerator* root) +{ + cmMakefile* mf = root->GetMakefile(); + std::vector lfiles = mf->GetListFiles(); + // sort the array + std::sort(lfiles.begin(), lfiles.end(), std::less()); + std::vector::iterator new_end = + std::unique(lfiles.begin(), lfiles.end()); + lfiles.erase(new_end, lfiles.end()); + std::string dir = mf->GetHomeOutputDirectory(); + this->CurrentReRunCMakeMakefile = dir; + this->CurrentReRunCMakeMakefile += "/CMakeScripts"; + cmSystemTools::MakeDirectory(this->CurrentReRunCMakeMakefile.c_str()); + this->CurrentReRunCMakeMakefile += "/ReRunCMake.make"; + cmGeneratedFileStream makefileStream + (this->CurrentReRunCMakeMakefile.c_str()); + makefileStream.SetCopyIfDifferent(true); + makefileStream << "# Generated by CMake, DO NOT EDIT\n"; + makefileStream << cmake::GetCMakeFilesDirectoryPostSlash(); + makefileStream << "cmake.check_cache: "; + for(std::vector::const_iterator i = lfiles.begin(); + i != lfiles.end(); ++i) + { + makefileStream << "\\\n" << this->ConvertToRelativeForMake(i->c_str()); + } + std::string cmake = mf->GetRequiredDefinition("CMAKE_COMMAND"); + makefileStream << "\n\t" << this->ConvertToRelativeForMake(cmake.c_str()) + << " -H" << this->ConvertToRelativeForMake( + mf->GetHomeDirectory()) + << " -B" << this->ConvertToRelativeForMake( + mf->GetHomeOutputDirectory()) << "\n"; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::ClearXCodeObjects() +{ + this->TargetDoneSet.clear(); + for(unsigned int i = 0; i < this->XCodeObjects.size(); ++i) + { + delete this->XCodeObjects[i]; + } + this->XCodeObjects.clear(); + this->GroupMap.clear(); + this->GroupNameMap.clear(); + this->TargetGroup.clear(); + this->FileRefs.clear(); +} + +//---------------------------------------------------------------------------- +cmXCodeObject* +cmGlobalXCodeGenerator::CreateObject(cmXCodeObject::PBXType ptype) +{ + cmXCodeObject* obj; + if(this->XcodeVersion == 15) + { + obj = new cmXCodeObject(ptype, cmXCodeObject::OBJECT); + } + else + { + obj = new cmXCode21Object(ptype, cmXCodeObject::OBJECT); + } + this->XCodeObjects.push_back(obj); + return obj; +} + +//---------------------------------------------------------------------------- +cmXCodeObject* +cmGlobalXCodeGenerator::CreateObject(cmXCodeObject::Type type) +{ + cmXCodeObject* obj = new cmXCodeObject(cmXCodeObject::None, type); + this->XCodeObjects.push_back(obj); + return obj; +} + +//---------------------------------------------------------------------------- +cmXCodeObject* +cmGlobalXCodeGenerator::CreateString(const char* s) +{ + cmXCodeObject* obj = this->CreateObject(cmXCodeObject::STRING); + obj->SetString(s); + return obj; +} + +//---------------------------------------------------------------------------- +cmXCodeObject* cmGlobalXCodeGenerator +::CreateObjectReference(cmXCodeObject* ref) +{ + cmXCodeObject* obj = this->CreateObject(cmXCodeObject::OBJECT_REF); + obj->SetObject(ref); + return obj; +} + +//---------------------------------------------------------------------------- +cmStdString GetGroupMapKey(cmTarget& cmtarget, cmSourceFile* sf) +{ + cmStdString key(cmtarget.GetName()); + key += "-"; + key += sf->GetFullPath(); + return key; +} + +//---------------------------------------------------------------------------- +cmXCodeObject* +cmGlobalXCodeGenerator::CreateXCodeSourceFile(cmLocalGenerator* lg, + cmSourceFile* sf, + cmTarget& cmtarget) +{ + // Add flags from target and source file properties. + std::string flags; + if(cmtarget.GetProperty("COMPILE_FLAGS")) + { + lg->AppendFlags(flags, cmtarget.GetProperty("COMPILE_FLAGS")); + } + lg->AppendFlags(flags, sf->GetProperty("COMPILE_FLAGS")); + cmSystemTools::ReplaceString(flags, "\"", "\\\""); + + // Add per-source definitions. + this->AppendDefines(flags, sf->GetProperty("COMPILE_DEFINITIONS"), true); + + // Using a map and the full path guarantees that we will always get the same + // fileRef object for any given full path. + // + std::string fname = sf->GetFullPath(); + cmXCodeObject* fileRef = this->FileRefs[fname]; + if(!fileRef) + { + fileRef = this->CreateObject(cmXCodeObject::PBXFileReference); + std::string comment = fname; + comment += " in "; + //std::string gname = group->GetObject("name")->GetString(); + //comment += gname.substr(1, gname.size()-2); + fileRef->SetComment(fname.c_str()); + + this->FileRefs[fname] = fileRef; + } + + cmStdString key = GetGroupMapKey(cmtarget, sf); + cmXCodeObject* group = this->GroupMap[key]; + cmXCodeObject* children = group->GetObject("children"); + if (!children->HasObject(fileRef)) + { + children->AddObject(fileRef); + } + + cmXCodeObject* buildFile = this->CreateObject(cmXCodeObject::PBXBuildFile); + buildFile->SetComment(fileRef->GetComment()); + buildFile->AddAttribute("fileRef", this->CreateObjectReference(fileRef)); + + cmXCodeObject* settings = + this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + settings->AddAttribute("COMPILER_FLAGS", this->CreateString(flags.c_str())); + + // Is this a resource file in this target? Add it to the resources group... + // + cmTarget::SourceFileFlags tsFlags = cmtarget.GetTargetSourceFileFlags(sf); + bool isResource = tsFlags.Resource; + + // Is this a "private" or "public" framework header file? + // Set the ATTRIBUTES attribute appropriately... + // + if(cmtarget.IsFrameworkOnApple()) + { + if(tsFlags.PrivateHeader) + { + cmXCodeObject* attrs = this->CreateObject(cmXCodeObject::OBJECT_LIST); + attrs->AddObject(this->CreateString("Private")); + settings->AddAttribute("ATTRIBUTES", attrs); + isResource = true; + } + else if(tsFlags.PublicHeader) + { + cmXCodeObject* attrs = this->CreateObject(cmXCodeObject::OBJECT_LIST); + attrs->AddObject(this->CreateString("Public")); + settings->AddAttribute("ATTRIBUTES", attrs); + isResource = true; + } + } + + // Add the fileRef to the top level Resources group/folder if it is not + // already there. + // + if(isResource && this->ResourcesGroupChildren && + !this->ResourcesGroupChildren->HasObject(fileRef)) + { + this->ResourcesGroupChildren->AddObject(fileRef); + } + + buildFile->AddAttribute("settings", settings); + fileRef->AddAttribute("fileEncoding", this->CreateString("4")); + const char* lang = + this->CurrentLocalGenerator->GetSourceFileLanguage(*sf); + std::string sourcecode = "sourcecode"; + std::string ext = sf->GetExtension(); + ext = cmSystemTools::LowerCase(ext); + if(ext == "o") + { + sourcecode = "compiled.mach-o.objfile"; + } + else if(ext == "mm") + { + sourcecode += ".cpp.objcpp"; + } + else if(ext == "m") + { + sourcecode += ".cpp.objc"; + } + else if(ext == "plist") + { + sourcecode += ".text.plist"; + } + else if(!lang) + { + sourcecode += ext; + sourcecode += "."; + sourcecode += ext; + } + else if(strcmp(lang, "C") == 0) + { + sourcecode += ".c.c"; + } + else if(strcmp(lang, "CXX") == 0) + { + sourcecode += ".cpp.cpp"; + } + else + { + sourcecode += ext; + sourcecode += "."; + sourcecode += ext; + } + fileRef->AddAttribute("lastKnownFileType", + this->CreateString(sourcecode.c_str())); + std::string path = + this->ConvertToRelativeForXCode(sf->GetFullPath().c_str()); + std::string dir; + std::string file; + cmSystemTools::SplitProgramPath(sf->GetFullPath().c_str(), + dir, file); + + fileRef->AddAttribute("name", this->CreateString(file.c_str())); + fileRef->AddAttribute("path", this->CreateString(path.c_str())); + if(this->XcodeVersion == 15) + { + fileRef->AddAttribute("refType", this->CreateString("4")); + } + if(path.size() > 1 && path[0] == '.' && path[1] == '.') + { + fileRef->AddAttribute("sourceTree", this->CreateString("")); + } + else + { + fileRef->AddAttribute("sourceTree", this->CreateString("")); + } + return buildFile; +} + +//---------------------------------------------------------------------------- +bool cmGlobalXCodeGenerator::SpecialTargetEmitted(std::string const& tname) +{ + if(tname == "ALL_BUILD" || tname == "XCODE_DEPEND_HELPER" || + tname == "install" || tname == "package" || tname == "RUN_TESTS" ) + { + if(this->TargetDoneSet.find(tname) != this->TargetDoneSet.end()) + { + return true; + } + this->TargetDoneSet.insert(tname); + return false; + } + return false; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::SetCurrentLocalGenerator(cmLocalGenerator* gen) +{ + this->CurrentLocalGenerator = gen; + this->CurrentMakefile = gen->GetMakefile(); + std::string outdir = + cmSystemTools::CollapseFullPath(this->CurrentMakefile-> + GetCurrentOutputDirectory()); + cmSystemTools::SplitPath(outdir.c_str(), + this->CurrentOutputDirectoryComponents); + + // Select the current set of configuration types. + this->CurrentConfigurationTypes.clear(); + if(this->XcodeVersion > 20) + { + if(const char* types = + this->CurrentMakefile->GetDefinition("CMAKE_CONFIGURATION_TYPES")) + { + cmSystemTools::ExpandListArgument(types, + this->CurrentConfigurationTypes); + } + } + if(this->CurrentConfigurationTypes.empty()) + { + if(const char* buildType = + this->CurrentMakefile->GetDefinition("CMAKE_BUILD_TYPE")) + { + this->CurrentConfigurationTypes.push_back(buildType); + } + else + { + this->CurrentConfigurationTypes.push_back(""); + } + } +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCodeGenerator::CreateXCodeTargets(cmLocalGenerator* gen, + std::vector& + targets) +{ + this->SetCurrentLocalGenerator(gen); + cmTargets &tgts = this->CurrentMakefile->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); l++) + { + cmTarget& cmtarget = l->second; + + // make sure ALL_BUILD, INSTALL, etc are only done once + if(this->SpecialTargetEmitted(l->first.c_str())) + { + continue; + } + + if(cmtarget.GetType() == cmTarget::UTILITY || + cmtarget.GetType() == cmTarget::GLOBAL_TARGET) + { + targets.push_back(this->CreateUtilityTarget(cmtarget)); + continue; + } + + // organize the sources + std::vector const &classes = cmtarget.GetSourceFiles(); + std::vector externalObjFiles; + std::vector headerFiles; + std::vector resourceFiles; + std::vector sourceFiles; + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); ++i) + { + cmXCodeObject* xsf = + this->CreateXCodeSourceFile(this->CurrentLocalGenerator, + *i, cmtarget); + cmXCodeObject* fr = xsf->GetObject("fileRef"); + cmXCodeObject* filetype = + fr->GetObject()->GetObject("lastKnownFileType"); + + cmTarget::SourceFileFlags tsFlags = + cmtarget.GetTargetSourceFileFlags(*i); + + if(strcmp(filetype->GetString(), "\"compiled.mach-o.objfile\"") == 0) + { + externalObjFiles.push_back(xsf); + } + else if((*i)->GetPropertyAsBool("HEADER_FILE_ONLY")) + { + headerFiles.push_back(xsf); + } + else if(tsFlags.Resource) + { + resourceFiles.push_back(xsf); + } + else + { + sourceFiles.push_back(xsf); + } + } + + // some build phases only apply to bundles and/or frameworks + bool isFrameworkTarget = cmtarget.IsFrameworkOnApple(); + bool isBundleTarget = cmtarget.GetPropertyAsBool("MACOSX_BUNDLE"); + + cmXCodeObject* buildFiles = 0; + + // create source build phase + cmXCodeObject* sourceBuildPhase = 0; + if (!sourceFiles.empty()) + { + sourceBuildPhase = + this->CreateObject(cmXCodeObject::PBXSourcesBuildPhase); + sourceBuildPhase->SetComment("Sources"); + sourceBuildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + for(std::vector::iterator i = sourceFiles.begin(); + i != sourceFiles.end(); ++i) + { + buildFiles->AddObject(*i); + } + sourceBuildPhase->AddAttribute("files", buildFiles); + sourceBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", + this->CreateString("0")); + } + + // create header build phase - only for framework targets + cmXCodeObject* headerBuildPhase = 0; + if (!headerFiles.empty() && isFrameworkTarget) + { + headerBuildPhase = + this->CreateObject(cmXCodeObject::PBXHeadersBuildPhase); + headerBuildPhase->SetComment("Headers"); + headerBuildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + for(std::vector::iterator i = headerFiles.begin(); + i != headerFiles.end(); ++i) + { + buildFiles->AddObject(*i); + } + headerBuildPhase->AddAttribute("files", buildFiles); + headerBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", + this->CreateString("0")); + } + + // create resource build phase - only for framework or bundle targets + cmXCodeObject* resourceBuildPhase = 0; + if (!resourceFiles.empty() && (isFrameworkTarget || isBundleTarget)) + { + resourceBuildPhase = + this->CreateObject(cmXCodeObject::PBXResourcesBuildPhase); + resourceBuildPhase->SetComment("Resources"); + resourceBuildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + for(std::vector::iterator i = resourceFiles.begin(); + i != resourceFiles.end(); ++i) + { + buildFiles->AddObject(*i); + } + resourceBuildPhase->AddAttribute("files", buildFiles); + resourceBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", + this->CreateString("0")); + } + + // create vector of "non-resource content file" build phases - only for + // framework or bundle targets + std::vector contentBuildPhases; + if (isFrameworkTarget || isBundleTarget) + { + typedef std::map > + mapOfVectorOfSourceFiles; + mapOfVectorOfSourceFiles bundleFiles; + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); ++i) + { + const char* contentLoc = (*i)->GetProperty("MACOSX_PACKAGE_LOCATION"); + if ( !contentLoc || cmStdString(contentLoc) == "Resources" ) + { + continue; + } + bundleFiles[contentLoc].push_back(*i); + } + mapOfVectorOfSourceFiles::iterator mit; + for ( mit = bundleFiles.begin(); mit != bundleFiles.end(); ++ mit ) + { + cmXCodeObject* copyFilesBuildPhase = + this->CreateObject(cmXCodeObject::PBXCopyFilesBuildPhase); + copyFilesBuildPhase->SetComment("Copy files"); + copyFilesBuildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + copyFilesBuildPhase->AddAttribute("dstSubfolderSpec", + this->CreateString("6")); + cmOStringStream ostr; + if ( mit->first != "MacOS" ) + { + ostr << "../" << mit->first.c_str(); + } + copyFilesBuildPhase->AddAttribute("dstPath", + this->CreateString(ostr.str().c_str())); + copyFilesBuildPhase->AddAttribute( + "runOnlyForDeploymentPostprocessing", this->CreateString("0")); + buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + copyFilesBuildPhase->AddAttribute("files", buildFiles); + std::vector::iterator sfIt; + for ( sfIt = mit->second.begin(); sfIt != mit->second.end(); ++ sfIt ) + { + cmXCodeObject* xsf = + this->CreateXCodeSourceFile(this->CurrentLocalGenerator, + *sfIt, cmtarget); + buildFiles->AddObject(xsf); + } + contentBuildPhases.push_back(copyFilesBuildPhase); + } + } + + // create framework build phase + cmXCodeObject* frameworkBuildPhase = 0; + if (!externalObjFiles.empty()) + { + frameworkBuildPhase = + this->CreateObject(cmXCodeObject::PBXFrameworksBuildPhase); + frameworkBuildPhase->SetComment("Frameworks"); + frameworkBuildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + frameworkBuildPhase->AddAttribute("files", buildFiles); + for(std::vector::iterator i = externalObjFiles.begin(); + i != externalObjFiles.end(); ++i) + { + buildFiles->AddObject(*i); + } + frameworkBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", + this->CreateString("0")); + } + + // create list of build phases and create the XCode target + cmXCodeObject* buildPhases = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + + this->CreateCustomCommands(buildPhases, sourceBuildPhase, + headerBuildPhase, resourceBuildPhase, + contentBuildPhases, + frameworkBuildPhase, cmtarget); + + targets.push_back(this->CreateXCodeTarget(cmtarget, buildPhases)); + } +} + +//---------------------------------------------------------------------------- +cmXCodeObject* +cmGlobalXCodeGenerator::CreateBuildPhase(const char* name, + const char* name2, + cmTarget& cmtarget, + const std::vector& + commands) +{ + if(commands.size() == 0 && strcmp(name, "CMake ReRun") != 0) + { + return 0; + } + cmXCodeObject* buildPhase = + this->CreateObject(cmXCodeObject::PBXShellScriptBuildPhase); + buildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + cmXCodeObject* buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + buildPhase->AddAttribute("files", buildFiles); + buildPhase->AddAttribute("name", + this->CreateString(name)); + buildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", + this->CreateString("0")); + buildPhase->AddAttribute("shellPath", + this->CreateString("/bin/sh")); + this->AddCommandsToBuildPhase(buildPhase, cmtarget, commands, + name2); + return buildPhase; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::CreateCustomCommands(cmXCodeObject* buildPhases, + cmXCodeObject* + sourceBuildPhase, + cmXCodeObject* + headerBuildPhase, + cmXCodeObject* + resourceBuildPhase, + std::vector + contentBuildPhases, + cmXCodeObject* + frameworkBuildPhase, + cmTarget& cmtarget) +{ + std::vector const & prebuild + = cmtarget.GetPreBuildCommands(); + std::vector const & prelink + = cmtarget.GetPreLinkCommands(); + std::vector const & postbuild + = cmtarget.GetPostBuildCommands(); + std::vectorconst &classes = cmtarget.GetSourceFiles(); + // add all the sources + std::vector commands; + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); ++i) + { + if((*i)->GetCustomCommand()) + { + commands.push_back(*(*i)->GetCustomCommand()); + } + } + std::vector reruncom; + cmXCodeObject* cmakeReRunPhase = + this->CreateBuildPhase("CMake ReRun", "cmakeReRunPhase", + cmtarget, reruncom); + buildPhases->AddObject(cmakeReRunPhase); + // create prebuild phase + cmXCodeObject* cmakeRulesBuildPhase = + this->CreateBuildPhase("CMake Rules", + "cmakeRulesBuildPhase", + cmtarget, commands); + // create prebuild phase + cmXCodeObject* preBuildPhase = + this->CreateBuildPhase("CMake PreBuild Rules", "preBuildCommands", + cmtarget, prebuild); + // create prelink phase + cmXCodeObject* preLinkPhase = + this->CreateBuildPhase("CMake PreLink Rules", "preLinkCommands", + cmtarget, prelink); + // create postbuild phase + cmXCodeObject* postBuildPhase = + this->CreateBuildPhase("CMake PostBuild Rules", "postBuildPhase", + cmtarget, postbuild); + + // The order here is the order they will be built in. + // The order "headers, resources, sources" mimics a native project generated + // from an xcode template... + // + if(preBuildPhase) + { + buildPhases->AddObject(preBuildPhase); + } + if(cmakeRulesBuildPhase) + { + buildPhases->AddObject(cmakeRulesBuildPhase); + } + if(headerBuildPhase) + { + buildPhases->AddObject(headerBuildPhase); + } + if(resourceBuildPhase) + { + buildPhases->AddObject(resourceBuildPhase); + } + std::vector::iterator cit; + for (cit = contentBuildPhases.begin(); cit != contentBuildPhases.end(); + ++cit) + { + buildPhases->AddObject(*cit); + } + if(sourceBuildPhase) + { + buildPhases->AddObject(sourceBuildPhase); + } + if(preLinkPhase) + { + buildPhases->AddObject(preLinkPhase); + } + if(frameworkBuildPhase) + { + buildPhases->AddObject(frameworkBuildPhase); + } + if(postBuildPhase) + { + buildPhases->AddObject(postBuildPhase); + } +} + +//---------------------------------------------------------------------------- +std::string cmGlobalXCodeGenerator::ExtractFlag(const char* flag, + std::string& flags) +{ + std::string retFlag; + std::string::size_type pos = flags.find(flag); + if(pos != flags.npos) + { + while(pos < flags.size() && flags[pos] != ' ') + { + retFlag += flags[pos]; + flags[pos] = ' '; + pos++; + } + } + return retFlag; +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCodeGenerator::AddCommandsToBuildPhase(cmXCodeObject* buildphase, + cmTarget& target, + std::vector + const & commands, + const char* name) +{ + if(strcmp(name, "cmakeReRunPhase") == 0) + { + std::string cdir = this->CurrentMakefile->GetHomeOutputDirectory(); + cdir = this->ConvertToRelativeForMake(cdir.c_str()); + std::string makecmd = "make -C "; + makecmd += cdir; + makecmd += " -f "; + makecmd += + this->ConvertToRelativeForMake(this->CurrentReRunCMakeMakefile.c_str()); + cmSystemTools::ReplaceString(makecmd, "\\ ", "\\\\ "); + buildphase->AddAttribute("shellScript", + this->CreateString(makecmd.c_str())); + return; + } + + // collect multiple outputs of custom commands into a set + // which will be used for every configuration + std::map multipleOutputPairs; + for(std::vector::const_iterator i = commands.begin(); + i != commands.end(); ++i) + { + cmCustomCommand const& cc = *i; + if(!cc.GetCommandLines().empty()) + { + const std::vector& outputs = cc.GetOutputs(); + if(!outputs.empty()) + { + // If there are more than one outputs treat the + // first as the primary output and make the rest depend on it. + std::vector::const_iterator o = outputs.begin(); + std::string primaryOutput = this->ConvertToRelativeForMake(o->c_str()); + for(++o; o != outputs.end(); ++o) + { + std::string currentOutput=this->ConvertToRelativeForMake(o->c_str()); + multipleOutputPairs[currentOutput] = primaryOutput; + } + } + } + } + + std::string dir = this->CurrentMakefile->GetCurrentOutputDirectory(); + dir += "/CMakeScripts"; + cmSystemTools::MakeDirectory(dir.c_str()); + std::string makefile = dir; + makefile += "/"; + makefile += target.GetName(); + makefile += "_"; + makefile += name; + makefile += ".make"; + + for (std::vector::const_iterator currentConfig= + this->CurrentConfigurationTypes.begin(); + currentConfig!=this->CurrentConfigurationTypes.end(); + currentConfig++ ) + { + this->CreateCustomRulesMakefile(makefile.c_str(), + target, + commands, + currentConfig->c_str(), + multipleOutputPairs); + } + + std::string cdir = this->CurrentMakefile->GetCurrentOutputDirectory(); + cdir = this->ConvertToRelativeForXCode(cdir.c_str()); + std::string makecmd = "make -C "; + makecmd += cdir; + makecmd += " -f "; + makecmd += this->ConvertToRelativeForMake( + (makefile+"$CONFIGURATION").c_str()); + if(!multipleOutputPairs.empty()) + { + makecmd += " cmake_check_multiple_outputs"; + } + makecmd += " all"; + cmSystemTools::ReplaceString(makecmd, "\\ ", "\\\\ "); + buildphase->AddAttribute("shellScript", + this->CreateString(makecmd.c_str())); +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator +::CreateCustomRulesMakefile(const char* makefileBasename, + cmTarget& target, + std::vector + const & commands, + const char* configName, + const std::map& multipleOutputPairs + ) +{ + std::string makefileName=makefileBasename; + makefileName+=configName; + cmGeneratedFileStream makefileStream(makefileName.c_str()); + if(!makefileStream) + { + return; + } + makefileStream.SetCopyIfDifferent(true); + makefileStream << "# Generated by CMake, DO NOT EDIT\n"; + makefileStream << "# Custom rules for " << target.GetName() << "\n"; + + // have all depend on all outputs + makefileStream << "all: "; + std::map tname; + int count = 0; + for(std::vector::const_iterator i = commands.begin(); + i != commands.end(); ++i) + { + cmCustomCommand const& cc = *i; + if(!cc.GetCommandLines().empty()) + { + const std::vector& outputs = cc.GetOutputs(); + if(!outputs.empty()) + { + for(std::vector::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) + { + makefileStream + << "\\\n\t" << this->ConvertToRelativeForMake(o->c_str()); + } + } + else + { + cmOStringStream str; + str << "_buildpart_" << count++ ; + tname[&cc] = std::string(target.GetName()) + str.str(); + makefileStream << "\\\n\t" << tname[&cc]; + } + } + } + makefileStream << "\n\n"; + for(std::vector::const_iterator i = commands.begin(); + i != commands.end(); ++i) + { + cmCustomCommand const& cc = *i; + if(!cc.GetCommandLines().empty()) + { + bool escapeOldStyle = cc.GetEscapeOldStyle(); + bool escapeAllowMakeVars = cc.GetEscapeAllowMakeVars(); + makefileStream << "\n"; + const std::vector& outputs = cc.GetOutputs(); + if(!outputs.empty()) + { + // There is at least one output, start the rule for it + std::string primary_output = + this->ConvertToRelativeForMake(outputs.begin()->c_str()); + makefileStream << primary_output << ": "; + } + else + { + // There are no outputs. Use the generated force rule name. + makefileStream << tname[&cc] << ": "; + } + for(std::vector::const_iterator d = + cc.GetDepends().begin(); + d != cc.GetDepends().end(); ++d) + { + std::string dep = + this->CurrentLocalGenerator->GetRealDependency(d->c_str(), + configName); + makefileStream << "\\\n" << this + ->ConvertToRelativeForMake(dep.c_str()); + } + makefileStream << "\n"; + + if(const char* comment = cc.GetComment()) + { + std::string echo_cmd = "echo "; + echo_cmd += (this->CurrentLocalGenerator-> + EscapeForShell(comment, escapeAllowMakeVars)); + makefileStream << "\t" << echo_cmd.c_str() << "\n"; + } + + // Add each command line to the set of commands. + for(cmCustomCommandLines::const_iterator cl = + cc.GetCommandLines().begin(); + cl != cc.GetCommandLines().end(); ++cl) + { + // Build the command line in a single string. + const cmCustomCommandLine& commandLine = *cl; + std::string cmd2 = this->CurrentLocalGenerator + ->GetRealLocation(commandLine[0].c_str(), configName); + + cmSystemTools::ReplaceString(cmd2, "/./", "/"); + cmd2 = this->ConvertToRelativeForMake(cmd2.c_str()); + std::string cmd; + if(cc.GetWorkingDirectory()) + { + cmd += "cd "; + cmd += this->ConvertToRelativeForMake(cc.GetWorkingDirectory()); + cmd += " && "; + } + cmd += cmd2; + for(unsigned int j=1; j < commandLine.size(); ++j) + { + cmd += " "; + if(escapeOldStyle) + { + cmd += (this->CurrentLocalGenerator + ->EscapeForShellOldStyle(commandLine[j].c_str())); + } + else + { + cmd += (this->CurrentLocalGenerator-> + EscapeForShell(commandLine[j].c_str(), + escapeAllowMakeVars)); + } + } + makefileStream << "\t" << cmd.c_str() << "\n"; + } + } + } + + // Add rules to deal with multiple outputs of custom commands. + if(!multipleOutputPairs.empty()) + { + makefileStream << + "\n# Dependencies of multiple outputs to their primary outputs \n"; + + for(std::map::const_iterator o = + multipleOutputPairs.begin(); o != multipleOutputPairs.end(); ++o) + { + makefileStream << o->first << ": " << o->second << "\n"; + } + + makefileStream << + "\n" + "cmake_check_multiple_outputs:\n"; + for(std::map::const_iterator o = + multipleOutputPairs.begin(); o != multipleOutputPairs.end(); ++o) + { + makefileStream << "\t@if [ ! -f " + << o->first << " ]; then rm -f " + << o->second << "; fi\n"; + } + } +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target, + cmXCodeObject* buildSettings, + std::string& fileType, + std::string& productType, + std::string& productName, + const char* configName) +{ + std::string flags; + std::string defFlags; + bool shared = ((target.GetType() == cmTarget::SHARED_LIBRARY) || + (target.GetType() == cmTarget::MODULE_LIBRARY)); + + const char* lang = target.GetLinkerLanguage(this); + std::string cflags; + if(lang) + { + // for c++ projects get the c flags as well + if(strcmp(lang, "CXX") == 0) + { + this->CurrentLocalGenerator->AddLanguageFlags(cflags, "C", configName); + this->CurrentLocalGenerator->AddSharedFlags(cflags, lang, shared); + } + + // Add language-specific flags. + this->CurrentLocalGenerator->AddLanguageFlags(flags, lang, configName); + + // Add shared-library flags if needed. + this->CurrentLocalGenerator->AddSharedFlags(flags, lang, shared); + } + + // Add define flags + this->CurrentLocalGenerator-> + AppendFlags(defFlags, + this->CurrentMakefile->GetDefineFlags()); + cmSystemTools::ReplaceString(defFlags, "\"", "\\\""); + cmSystemTools::ReplaceString(flags, "\"", "\\\""); + cmSystemTools::ReplaceString(cflags, "\"", "\\\""); + + // Add preprocessor definitions for this target and configuration. + std::string ppDefs; + if(this->XcodeVersion > 15) + { + this->AppendDefines(ppDefs, "CMAKE_INTDIR=\"$(CONFIGURATION)\""); + } + if(const char* exportMacro = target.GetExportMacro()) + { + // Add the export symbol definition for shared library objects. + this->AppendDefines(ppDefs, exportMacro); + } + this->AppendDefines + (ppDefs, this->CurrentMakefile->GetProperty("COMPILE_DEFINITIONS")); + this->AppendDefines(ppDefs, target.GetProperty("COMPILE_DEFINITIONS")); + if(configName) + { + std::string defVarName = "COMPILE_DEFINITIONS_"; + defVarName += cmSystemTools::UpperCase(configName); + this->AppendDefines + (ppDefs, this->CurrentMakefile->GetProperty(defVarName.c_str())); + this->AppendDefines(ppDefs, target.GetProperty(defVarName.c_str())); + } + buildSettings->AddAttribute + ("GCC_PREPROCESSOR_DEFINITIONS", this->CreateString(ppDefs.c_str())); + + std::string extraLinkOptions; + if(target.GetType() == cmTarget::EXECUTABLE) + { + extraLinkOptions = + this->CurrentMakefile->GetRequiredDefinition("CMAKE_EXE_LINKER_FLAGS"); + } + if(target.GetType() == cmTarget::SHARED_LIBRARY) + { + extraLinkOptions = this->CurrentMakefile-> + GetRequiredDefinition("CMAKE_SHARED_LINKER_FLAGS"); + } + if(target.GetType() == cmTarget::MODULE_LIBRARY) + { + extraLinkOptions = this->CurrentMakefile-> + GetRequiredDefinition("CMAKE_MODULE_LINKER_FLAGS"); + } + + const char* targetLinkFlags = target.GetProperty("LINK_FLAGS"); + if(targetLinkFlags) + { + extraLinkOptions += " "; + extraLinkOptions += targetLinkFlags; + } + + // The product name is the full name of the target for this configuration. + productName = target.GetFullName(configName); + + // Get the product name components. + std::string pnprefix; + std::string pnbase; + std::string pnsuffix; + target.GetFullNameComponents(pnprefix, pnbase, pnsuffix, configName); + + // Store the product name for all target types. + buildSettings->AddAttribute("PRODUCT_NAME", + this->CreateString(pnbase.c_str())); + + // Set attributes to specify the proper name for the target. + if(target.GetType() == cmTarget::STATIC_LIBRARY || + target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY || + target.GetType() == cmTarget::EXECUTABLE) + { + std::string pndir = target.GetDirectory(); + if(target.IsFrameworkOnApple()) + { + pndir += "/.."; + pndir = cmSystemTools::CollapseFullPath(pndir.c_str()); + } + buildSettings->AddAttribute("SYMROOT", + this->CreateString(pndir.c_str())); + buildSettings->AddAttribute("EXECUTABLE_PREFIX", + this->CreateString(pnprefix.c_str())); + buildSettings->AddAttribute("EXECUTABLE_SUFFIX", + this->CreateString(pnsuffix.c_str())); + } + + // Handle settings for each target type. + switch(target.GetType()) + { + case cmTarget::STATIC_LIBRARY: + { + fileType = "archive.ar"; + productType = "com.apple.product-type.library.static"; + + buildSettings->AddAttribute("LIBRARY_STYLE", + this->CreateString("STATIC")); + break; + } + + case cmTarget::MODULE_LIBRARY: + { + buildSettings->AddAttribute("LIBRARY_STYLE", + this->CreateString("BUNDLE")); + if(this->XcodeVersion >= 22) + { + fileType = "compiled.mach-o.executable"; + productType = "com.apple.product-type.tool"; + + buildSettings->AddAttribute("MACH_O_TYPE", + this->CreateString("mh_bundle")); + buildSettings->AddAttribute("GCC_DYNAMIC_NO_PIC", + this->CreateString("NO")); + // Add the flags to create an executable. + std::string createFlags = + this->LookupFlags("CMAKE_", lang, "_LINK_FLAGS", ""); + if(!createFlags.empty()) + { + extraLinkOptions += " "; + extraLinkOptions += createFlags; + } + } + else + { + fileType = "compiled.mach-o.dylib"; + productType = "com.apple.product-type.library.dynamic"; + + // Add the flags to create a module. + std::string createFlags = + this->LookupFlags("CMAKE_SHARED_MODULE_CREATE_", lang, "_FLAGS", + "-bundle"); + if(!createFlags.empty()) + { + extraLinkOptions += " "; + extraLinkOptions += createFlags; + } + } + break; + } + case cmTarget::SHARED_LIBRARY: + { + if(target.GetPropertyAsBool("FRAMEWORK")) + { + fileType = "wrapper.framework"; + productType = "com.apple.product-type.framework"; + + const char* version = target.GetProperty("FRAMEWORK_VERSION"); + if(!version) + { + version = target.GetProperty("VERSION"); + } + if(!version) + { + version = "A"; + } + buildSettings->AddAttribute("FRAMEWORK_VERSION", + this->CreateString(version)); + } + else + { + fileType = "compiled.mach-o.dylib"; + productType = "com.apple.product-type.library.dynamic"; + + // Add the flags to create a shared library. + std::string createFlags = + this->LookupFlags("CMAKE_SHARED_LIBRARY_CREATE_", lang, "_FLAGS", + "-dynamiclib"); + if(!createFlags.empty()) + { + extraLinkOptions += " "; + extraLinkOptions += createFlags; + } + } + + buildSettings->AddAttribute("LIBRARY_STYLE", + this->CreateString("DYNAMIC")); + buildSettings->AddAttribute("DYLIB_COMPATIBILITY_VERSION", + this->CreateString("1")); + buildSettings->AddAttribute("DYLIB_CURRENT_VERSION", + this->CreateString("1")); + break; + } + case cmTarget::EXECUTABLE: + { + fileType = "compiled.mach-o.executable"; + + // Add the flags to create an executable. + std::string createFlags = + this->LookupFlags("CMAKE_", lang, "_LINK_FLAGS", ""); + if(!createFlags.empty()) + { + extraLinkOptions += " "; + extraLinkOptions += createFlags; + } + + // Handle bundles and normal executables separately. + if(target.GetPropertyAsBool("MACOSX_BUNDLE")) + { + productType = "com.apple.product-type.application"; + std::string f1 = + this->CurrentMakefile->GetModulesFile("MacOSXBundleInfo.plist.in"); + if ( f1.size() == 0 ) + { + cmSystemTools::Error("could not find Mac OSX bundle template file."); + } + std::string f2 = this->CurrentMakefile->GetCurrentOutputDirectory(); + f2 += "/Info.plist"; + this->CurrentMakefile->ConfigureFile(f1.c_str(), f2.c_str(), + false, false, false); + std::string path = + this->ConvertToRelativeForXCode(f2.c_str()); + buildSettings->AddAttribute("INFOPLIST_FILE", + this->CreateString(path.c_str())); + + } + else + { + productType = "com.apple.product-type.tool"; + } + } + break; + default: + break; + } + if(this->XcodeVersion >= 22) + { + buildSettings->AddAttribute("PREBINDING", + this->CreateString("NO")); + } + std::string dirs; + std::vector includes; + this->CurrentLocalGenerator->GetIncludeDirectories(includes); + std::string fdirs; + std::set emitted; + emitted.insert("/System/Library/Frameworks"); + for(std::vector::iterator i = includes.begin(); + i != includes.end(); ++i) + { + if(this->NameResolvesToFramework(i->c_str())) + { + std::string frameworkDir = *i; + frameworkDir += "/../"; + frameworkDir = cmSystemTools::CollapseFullPath(frameworkDir.c_str()); + if(emitted.insert(frameworkDir).second) + { + fdirs += this->XCodeEscapePath(frameworkDir.c_str()); + fdirs += " "; + } + } + else + { + std::string incpath = + this->XCodeEscapePath(i->c_str()); + dirs += incpath + " "; + } + } + std::vector& frameworks = target.GetFrameworks(); + if(frameworks.size()) + { + for(std::vector::iterator fmIt = frameworks.begin(); + fmIt != frameworks.end(); ++fmIt) + { + if(emitted.insert(*fmIt).second) + { + fdirs += this->XCodeEscapePath(fmIt->c_str()); + fdirs += " "; + } + } + } + if(fdirs.size()) + { + buildSettings->AddAttribute("FRAMEWORK_SEARCH_PATHS", + this->CreateString(fdirs.c_str())); + } + if(dirs.size()) + { + buildSettings->AddAttribute("HEADER_SEARCH_PATHS", + this->CreateString(dirs.c_str())); + } + std::string oflagc = this->ExtractFlag("-O", cflags); + char optLevel[2]; + optLevel[0] = '0'; + optLevel[1] = 0; + if(oflagc.size() == 3) + { + optLevel[0] = oflagc[2]; + } + if(oflagc.size() == 2) + { + optLevel[0] = '1'; + } + std::string oflag = this->ExtractFlag("-O", flags); + if(oflag.size() == 3) + { + optLevel[0] = oflag[2]; + } + if(oflag.size() == 2) + { + optLevel[0] = '1'; + } + std::string gflagc = this->ExtractFlag("-g", cflags); + // put back gdwarf-2 if used since there is no way + // to represent it in the gui, but we still want debug yes + if(gflagc == "-gdwarf-2") + { + cflags += " "; + cflags += gflagc; + } + std::string gflag = this->ExtractFlag("-g", flags); + if(gflag == "-gdwarf-2") + { + flags += " "; + flags += gflag; + } + const char* debugStr = "YES"; + if(gflagc.size() ==0 && gflag.size() == 0) + { + debugStr = "NO"; + } + + // Convert "XCODE_ATTRIBUTE_*" properties directly. + { + cmPropertyMap const& props = target.GetProperties(); + for(cmPropertyMap::const_iterator i = props.begin(); + i != props.end(); ++i) + { + if(i->first.find("XCODE_ATTRIBUTE_") == 0) + { + buildSettings->AddAttribute(i->first.substr(16).c_str(), + this->CreateString(i->second.GetValue())); + } + } + } + + buildSettings->AddAttribute("GCC_GENERATE_DEBUGGING_SYMBOLS", + this->CreateString(debugStr)); + buildSettings->AddAttribute("GCC_OPTIMIZATION_LEVEL", + this->CreateString(optLevel)); + buildSettings->AddAttribute("OPTIMIZATION_CFLAGS", + this->CreateString(oflagc.c_str())); + buildSettings->AddAttribute("GCC_SYMBOLS_PRIVATE_EXTERN", + this->CreateString("NO")); + buildSettings->AddAttribute("GCC_INLINES_ARE_PRIVATE_EXTERN", + this->CreateString("NO")); + if(lang && strcmp(lang, "CXX") == 0) + { + flags += " "; + flags += defFlags; + buildSettings->AddAttribute("OTHER_CPLUSPLUSFLAGS", + this->CreateString(flags.c_str())); + cflags += " "; + cflags += defFlags; + buildSettings->AddAttribute("OTHER_CFLAGS", + this->CreateString(cflags.c_str())); + + } + else + { + flags += " "; + flags += defFlags; + buildSettings->AddAttribute("OTHER_CFLAGS", + this->CreateString(flags.c_str())); + } + + // Create the INSTALL_PATH attribute. + std::string install_name_dir; + if(target.GetType() == cmTarget::SHARED_LIBRARY) + { + // Get the install_name directory for the build tree. + install_name_dir = target.GetInstallNameDirForBuildTree(configName); + if(target.GetPropertyAsBool("FRAMEWORK")) + { + if(install_name_dir.find(".framework") != install_name_dir.npos) + { + install_name_dir = install_name_dir + "/.."; + install_name_dir = + cmSystemTools::CollapseFullPath(install_name_dir.c_str()); + //std::cerr << "new install name " << install_name_dir << "\n"; + } + } + + if(install_name_dir.empty()) + { + // Xcode will not pass the -install_name option at all if INSTALL_PATH + // is not given or is empty. We must explicitly put the flag in the + // link flags to create an install_name with just the library soname. + extraLinkOptions += " -install_name "; + extraLinkOptions += productName; + } + else + { + // Convert to a path for the native build tool. + cmSystemTools::ConvertToUnixSlashes(install_name_dir); + // do not escape spaces on this since it is only a single path + } + } + buildSettings->AddAttribute("INSTALL_PATH", + this->CreateString(install_name_dir.c_str())); + + buildSettings->AddAttribute("OTHER_LDFLAGS", + this->CreateString(extraLinkOptions.c_str())); + buildSettings->AddAttribute("OTHER_REZFLAGS", + this->CreateString("")); + buildSettings->AddAttribute("SECTORDER_FLAGS", + this->CreateString("")); + buildSettings->AddAttribute("USE_HEADERMAP", + this->CreateString("NO")); + buildSettings->AddAttribute("WARNING_CFLAGS", + this->CreateString( + "-Wmost -Wno-four-char-constants" + " -Wno-unknown-pragmas")); +} + +//---------------------------------------------------------------------------- +cmXCodeObject* +cmGlobalXCodeGenerator::CreateUtilityTarget(cmTarget& cmtarget) +{ + cmXCodeObject* shellBuildPhase = + this->CreateObject(cmXCodeObject::PBXShellScriptBuildPhase); + shellBuildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + cmXCodeObject* buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + shellBuildPhase->AddAttribute("files", buildFiles); + cmXCodeObject* inputPaths = this->CreateObject(cmXCodeObject::OBJECT_LIST); + shellBuildPhase->AddAttribute("inputPaths", inputPaths); + cmXCodeObject* outputPaths = this->CreateObject(cmXCodeObject::OBJECT_LIST); + shellBuildPhase->AddAttribute("outputPaths", outputPaths); + shellBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", + this->CreateString("0")); + shellBuildPhase->AddAttribute("shellPath", + this->CreateString("/bin/sh")); + shellBuildPhase->AddAttribute("shellScript", + this->CreateString( + "# shell script goes here\nexit 0")); + cmXCodeObject* target = + this->CreateObject(cmXCodeObject::PBXAggregateTarget); + target->SetComment(cmtarget.GetName()); + cmXCodeObject* buildPhases = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + std::vector emptyContentVector; + this->CreateCustomCommands(buildPhases, 0, 0, 0, emptyContentVector, 0, + cmtarget); + target->AddAttribute("buildPhases", buildPhases); + cmXCodeObject* buildSettings = + this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + std::string fileTypeString; + std::string productTypeString; + std::string productName; + const char* globalConfig = 0; + if(this->XcodeVersion > 20) + { + this->AddConfigurations(target, cmtarget); + } + else + { + globalConfig = this->CurrentMakefile->GetDefinition("CMAKE_BUILD_TYPE"); + } + this->CreateBuildSettings(cmtarget, + buildSettings, fileTypeString, + productTypeString, productName, globalConfig); + target->AddAttribute("buildSettings", buildSettings); + cmXCodeObject* dependencies = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + target->AddAttribute("dependencies", dependencies); + target->AddAttribute("name", this->CreateString(productName.c_str())); + target->AddAttribute("productName",this->CreateString(productName.c_str())); + target->SetTarget(&cmtarget); + return target; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::AddConfigurations(cmXCodeObject* target, + cmTarget& cmtarget) +{ + std::string configTypes = + this->CurrentMakefile->GetRequiredDefinition("CMAKE_CONFIGURATION_TYPES"); + std::vector configVectorIn; + std::vector configVector; + configVectorIn.push_back(configTypes); + cmSystemTools::ExpandList(configVectorIn, configVector); + cmXCodeObject* configlist = + this->CreateObject(cmXCodeObject::XCConfigurationList); + cmXCodeObject* buildConfigurations = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + configlist->AddAttribute("buildConfigurations", buildConfigurations); + std::string comment = "Build configuration list for "; + comment += cmXCodeObject::PBXTypeNames[target->GetIsA()]; + comment += " \""; + comment += cmtarget.GetName(); + comment += "\""; + configlist->SetComment(comment.c_str()); + target->AddAttribute("buildConfigurationList", + this->CreateObjectReference(configlist)); + for(unsigned int i = 0; i < configVector.size(); ++i) + { + cmXCodeObject* config = + this->CreateObject(cmXCodeObject::XCBuildConfiguration); + buildConfigurations->AddObject(config); + cmXCodeObject* buildSettings = + this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + std::string fileTypeString; + std::string productTypeString; + std::string productName; + this->CreateBuildSettings(cmtarget, + buildSettings, fileTypeString, + productTypeString, productName, + configVector[i].c_str()); + config->AddAttribute("name", this->CreateString(configVector[i].c_str())); + config->SetComment(configVector[i].c_str()); + config->AddAttribute("buildSettings", buildSettings); + } + if(configVector.size()) + { + configlist->AddAttribute("defaultConfigurationName", + this->CreateString(configVector[0].c_str())); + configlist->AddAttribute("defaultConfigurationIsVisible", + this->CreateString("0")); + } +} + +//---------------------------------------------------------------------------- +cmXCodeObject* +cmGlobalXCodeGenerator::CreateXCodeTarget(cmTarget& cmtarget, + cmXCodeObject* buildPhases) +{ + cmXCodeObject* target = + this->CreateObject(cmXCodeObject::PBXNativeTarget); + target->AddAttribute("buildPhases", buildPhases); + cmXCodeObject* buildRules = this->CreateObject(cmXCodeObject::OBJECT_LIST); + target->AddAttribute("buildRules", buildRules); + cmXCodeObject* buildSettings = + this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + std::string fileTypeString; + std::string productTypeString; + std::string productName; + const char* globalConfig = 0; + if(this->XcodeVersion > 20) + { + this->AddConfigurations(target, cmtarget); + } + else + { + globalConfig = this->CurrentMakefile->GetDefinition("CMAKE_BUILD_TYPE"); + } + this->CreateBuildSettings(cmtarget, + buildSettings, fileTypeString, + productTypeString, productName, globalConfig); + target->AddAttribute("buildSettings", buildSettings); + cmXCodeObject* dependencies = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + target->AddAttribute("dependencies", dependencies); + target->AddAttribute("name", this->CreateString(productName.c_str())); + target->AddAttribute("productName",this->CreateString(productName.c_str())); + + cmXCodeObject* fileRef = + this->CreateObject(cmXCodeObject::PBXFileReference); + fileRef->AddAttribute("explicitFileType", + this->CreateString(fileTypeString.c_str())); + fileRef->AddAttribute("path", this->CreateString(productName.c_str())); + fileRef->AddAttribute("refType", this->CreateString("0")); + fileRef->AddAttribute("sourceTree", + this->CreateString("BUILT_PRODUCTS_DIR")); + fileRef->SetComment(cmtarget.GetName()); + target->AddAttribute("productReference", + this->CreateObjectReference(fileRef)); + target->AddAttribute("productType", + this->CreateString(productTypeString.c_str())); + target->SetTarget(&cmtarget); + return target; +} + +//---------------------------------------------------------------------------- +cmXCodeObject* cmGlobalXCodeGenerator::FindXCodeTarget(cmTarget* t) +{ + if(!t) + { + return 0; + } + for(std::vector::iterator i = this->XCodeObjects.begin(); + i != this->XCodeObjects.end(); ++i) + { + cmXCodeObject* o = *i; + if(o->GetTarget() == t) + { + return o; + } + } + return 0; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::AddDependTarget(cmXCodeObject* target, + cmXCodeObject* dependTarget) +{ + // make sure a target does not depend on itself + if(target == dependTarget) + { + return; + } + // now avoid circular references if dependTarget already + // depends on target then skip it. Circular references crashes + // xcode + cmXCodeObject* dependTargetDepends = + dependTarget->GetObject("dependencies"); + if(dependTargetDepends) + { + if(dependTargetDepends->HasObject(target->GetPBXTargetDependency())) + { + return; + } + } + + cmXCodeObject* targetdep = dependTarget->GetPBXTargetDependency(); + if(!targetdep) + { + cmXCodeObject* container = + this->CreateObject(cmXCodeObject::PBXContainerItemProxy); + container->SetComment("PBXContainerItemProxy"); + container->AddAttribute("containerPortal", + this->CreateObjectReference(this->RootObject)); + container->AddAttribute("proxyType", this->CreateString("1")); + container->AddAttribute("remoteGlobalIDString", + this->CreateObjectReference(dependTarget)); + container->AddAttribute("remoteInfo", + this->CreateString( + dependTarget->GetTarget()->GetName())); + targetdep = + this->CreateObject(cmXCodeObject::PBXTargetDependency); + targetdep->SetComment("PBXTargetDependency"); + targetdep->AddAttribute("target", + this->CreateObjectReference(dependTarget)); + targetdep->AddAttribute("targetProxy", + this->CreateObjectReference(container)); + dependTarget->SetPBXTargetDependency(targetdep); + } + + cmXCodeObject* depends = target->GetObject("dependencies"); + if(!depends) + { + cmSystemTools:: + Error("target does not have dependencies attribute error.."); + + } + else + { + depends->AddUniqueObject(targetdep); + } +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::AppendOrAddBuildSetting(cmXCodeObject* settings, + const char* attribute, + const char* value) +{ + if(settings) + { + cmXCodeObject* attr = settings->GetObject(attribute); + if(!attr) + { + settings->AddAttribute(attribute, this->CreateString(value)); + } + else + { + std::string oldValue = attr->GetString(); + + // unescape escaped quotes internal to the string: + cmSystemTools::ReplaceString(oldValue, "\\\"", "\""); + + // remove surrounding quotes, if any: + std::string::size_type len = oldValue.length(); + if(oldValue[0] == '\"' && oldValue[len-1] == '\"') + { + oldValue = oldValue.substr(1, len-2); + } + + oldValue += " "; + oldValue += value; + + // SetString automatically escapes internal quotes and then surrounds + // the result with quotes if necessary... + attr->SetString(oldValue.c_str()); + } + } +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator +::AppendBuildSettingAttribute(cmXCodeObject* target, + const char* attribute, + const char* value, + const char* configName) +{ + if(this->XcodeVersion < 21) + { + // There is only one configuration. Add the setting to the buildSettings + // of the target. + this->AppendOrAddBuildSetting(target->GetObject("buildSettings"), + attribute, value); + } + else + { + // There are multiple configurations. Add the setting to the + // buildSettings of the configuration name given. + cmXCodeObject* configurationList = + target->GetObject("buildConfigurationList")->GetObject(); + cmXCodeObject* buildConfigs = + configurationList->GetObject("buildConfigurations"); + std::vector list = buildConfigs->GetObjectList(); + // each configuration and the target itself has a buildSettings in it + //list.push_back(target); + for(std::vector::iterator i = list.begin(); + i != list.end(); ++i) + { + if(configName) + { + if(strcmp((*i)->GetObject("name")->GetString(), configName) == 0) + { + cmXCodeObject* settings = (*i)->GetObject("buildSettings"); + this->AppendOrAddBuildSetting(settings, attribute, value); + } + } + else + { + cmXCodeObject* settings = (*i)->GetObject("buildSettings"); + this->AppendOrAddBuildSetting(settings, attribute, value); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator +::AddDependAndLinkInformation(cmXCodeObject* target) +{ + cmTarget* cmtarget = target->GetTarget(); + if(!cmtarget) + { + cmSystemTools::Error("Error no target on xobject\n"); + return; + } + + // Add dependencies on other CMake targets. + { + // Keep track of dependencies already listed. + std::set emitted; + + // A target should not depend on itself. + emitted.insert(cmtarget->GetName()); + + // Loop over all library dependencies. + const cmTarget::LinkLibraryVectorType& tlibs = + cmtarget->GetLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator lib = tlibs.begin(); + lib != tlibs.end(); ++lib) + { + // Don't emit the same library twice for this target. + if(emitted.insert(lib->first).second) + { + // Add this dependency. + cmTarget* t = this->FindTarget(this->CurrentProject.c_str(), + lib->first.c_str()); + cmXCodeObject* dptarget = this->FindXCodeTarget(t); + if(dptarget) + { + this->AddDependTarget(target, dptarget); + } + } + } + } + + // write utility dependencies. + for(std::set::const_iterator i + = cmtarget->GetUtilities().begin(); + i != cmtarget->GetUtilities().end(); ++i) + { + cmTarget* t = this->FindTarget(this->CurrentProject.c_str(), + i->c_str()); + // if the target is in this project then make target depend + // on it. It may not be in this project if this is a sub + // project from the top. + if(t) + { + cmXCodeObject* dptarget = this->FindXCodeTarget(t); + if(dptarget) + { + this->AddDependTarget(target, dptarget); + } + else + { + std::string m = "Error Utility: "; + m += i->c_str(); + m += "\n"; + m += "cmtarget "; + if(t) + { + m += t->GetName(); + } + m += "\n"; + m += "Is on the target "; + m += cmtarget->GetName(); + m += "\n"; + m += "But it has no xcode target created yet??\n"; + m += "Current project is "; + m += this->CurrentProject.c_str(); + cmSystemTools::Error(m.c_str()); + } + } + } + + // Loop over configuration types and set per-configuration info. + for(std::vector::iterator i = + this->CurrentConfigurationTypes.begin(); + i != this->CurrentConfigurationTypes.end(); ++i) + { + // Get the current configuration name. + const char* configName = i->c_str(); + if(!*configName) + { + configName = 0; + } + + // Compute the link library and directory information. + cmComputeLinkInformation* pcli = cmtarget->GetLinkInformation(configName); + if(!pcli) + { + continue; + } + cmComputeLinkInformation& cli = *pcli; + + // Add dependencies directly on library files. + { + std::vector const& libDeps = cli.GetDepends(); + for(std::vector::const_iterator j = libDeps.begin(); + j != libDeps.end(); ++j) + { + target->AddDependLibrary(configName, j->c_str()); + } + } + + // add the library search paths + { + std::vector const& libDirs = cli.GetDirectories(); + std::string linkDirs; + for(std::vector::const_iterator libDir = libDirs.begin(); + libDir != libDirs.end(); ++libDir) + { + if(libDir->size() && *libDir != "/usr/lib") + { + if(this->XcodeVersion > 15) + { + // now add the same one but append $(CONFIGURATION) to it: + linkDirs += " "; + linkDirs += this->XCodeEscapePath( + (*libDir + "/$(CONFIGURATION)").c_str()); + } + linkDirs += " "; + linkDirs += this->XCodeEscapePath(libDir->c_str()); + } + } + this->AppendBuildSettingAttribute(target, "LIBRARY_SEARCH_PATHS", + linkDirs.c_str(), configName); + } + + // add the framework search paths + { + const char* sep = ""; + std::string fdirs; + std::vector const& fwDirs = cli.GetFrameworkPaths(); + for(std::vector::const_iterator fdi = fwDirs.begin(); + fdi != fwDirs.end(); ++fdi) + { + fdirs += sep; + sep = " "; + fdirs += this->XCodeEscapePath(fdi->c_str()); + } + if(!fdirs.empty()) + { + this->AppendBuildSettingAttribute(target, "FRAMEWORK_SEARCH_PATHS", + fdirs.c_str(), configName); + } + } + + // now add the link libraries + if(cmtarget->GetType() != cmTarget::STATIC_LIBRARY) + { + std::string linkLibs; + const char* sep = ""; + typedef cmComputeLinkInformation::ItemVector ItemVector; + ItemVector const& libNames = cli.GetItems(); + for(ItemVector::const_iterator li = libNames.begin(); + li != libNames.end(); ++li) + { + linkLibs += sep; + sep = " "; + if(li->IsPath) + { + linkLibs += this->XCodeEscapePath(li->Value.c_str()); + } + else + { + linkLibs += li->Value; + } + } + this->AppendBuildSettingAttribute(target, "OTHER_LDFLAGS", + linkLibs.c_str(), configName); + } + } +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::CreateGroups(cmLocalGenerator* root, + std::vector& + generators) +{ + for(std::vector::iterator i = generators.begin(); + i != generators.end(); ++i) + { + if(this->IsExcluded(root, *i)) + { + continue; + } + cmMakefile* mf = (*i)->GetMakefile(); + std::vector sourceGroups = mf->GetSourceGroups(); + cmTargets &tgts = mf->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); l++) + { + cmTarget& cmtarget = l->second; + + // Same skipping logic here as in CreateXCodeTargets so that we do not + // end up with (empty anyhow) ALL_BUILD and XCODE_DEPEND_HELPER source + // groups: + // + if(cmtarget.GetType() == cmTarget::UTILITY || + cmtarget.GetType() == cmTarget::GLOBAL_TARGET) + { + continue; + } + + // add the soon to be generated Info.plist file as a source for a + // MACOSX_BUNDLE file + if(cmtarget.GetPropertyAsBool("MACOSX_BUNDLE")) + { + std::string plistFile = + this->CurrentMakefile->GetCurrentOutputDirectory(); + plistFile += "/Info.plist"; + cmSourceFile* sf = + this->CurrentMakefile->GetOrCreateSource(plistFile.c_str(), true); + cmtarget.AddSourceFile(sf); + } + + std::vector classes = cmtarget.GetSourceFiles(); + + for(std::vector::const_iterator s = classes.begin(); + s != classes.end(); s++) + { + cmSourceFile* sf = *s; + // Add the file to the list of sources. + std::string const& source = sf->GetFullPath(); + cmSourceGroup& sourceGroup = + mf->FindSourceGroup(source.c_str(), sourceGroups); + cmXCodeObject* pbxgroup = + this->CreateOrGetPBXGroup(cmtarget, &sourceGroup); + cmStdString key = GetGroupMapKey(cmtarget, sf); + this->GroupMap[key] = pbxgroup; + } + } + } +} + +//---------------------------------------------------------------------------- +cmXCodeObject* cmGlobalXCodeGenerator +::CreateOrGetPBXGroup(cmTarget& cmtarget, cmSourceGroup* sg) +{ + cmStdString s = cmtarget.GetName(); + s += "/"; + s += sg->GetName(); + std::map::iterator i = + this->GroupNameMap.find(s); + if(i != this->GroupNameMap.end()) + { + return i->second; + } + i = this->TargetGroup.find(cmtarget.GetName()); + cmXCodeObject* tgroup = 0; + if(i != this->TargetGroup.end()) + { + tgroup = i->second; + } + else + { + tgroup = this->CreateObject(cmXCodeObject::PBXGroup); + this->TargetGroup[cmtarget.GetName()] = tgroup; + cmXCodeObject* tgroupChildren = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + tgroup->AddAttribute("name", this->CreateString(cmtarget.GetName())); + tgroup->AddAttribute("children", tgroupChildren); + if(this->XcodeVersion == 15) + { + tgroup->AddAttribute("refType", this->CreateString("4")); + } + tgroup->AddAttribute("sourceTree", this->CreateString("")); + this->SourcesGroupChildren->AddObject(tgroup); + } + + // If it's the default source group (empty name) then put the source file + // directly in the tgroup... + // + if (cmStdString(sg->GetName()) == "") + { + this->GroupNameMap[s] = tgroup; + return tgroup; + } + + cmXCodeObject* tgroupChildren = tgroup->GetObject("children"); + cmXCodeObject* group = this->CreateObject(cmXCodeObject::PBXGroup); + cmXCodeObject* groupChildren = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + group->AddAttribute("name", this->CreateString(sg->GetName())); + group->AddAttribute("children", groupChildren); + if(this->XcodeVersion == 15) + { + group->AddAttribute("refType", this->CreateString("4")); + } + group->AddAttribute("sourceTree", this->CreateString("")); + tgroupChildren->AddObject(group); + this->GroupNameMap[s] = group; + return group; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator +::CreateXCodeObjects(cmLocalGenerator* root, + std::vector& + generators) +{ + this->ClearXCodeObjects(); + this->RootObject = 0; + this->SourcesGroupChildren = 0; + this->ResourcesGroupChildren = 0; + this->MainGroupChildren = 0; + cmXCodeObject* group = this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + group->AddAttribute("COPY_PHASE_STRIP", this->CreateString("NO")); + cmXCodeObject* developBuildStyle = + this->CreateObject(cmXCodeObject::PBXBuildStyle); + cmXCodeObject* listObjs = this->CreateObject(cmXCodeObject::OBJECT_LIST); + if(this->XcodeVersion == 15) + { + developBuildStyle->AddAttribute("name", + this->CreateString("Development")); + developBuildStyle->AddAttribute("buildSettings", group); + listObjs->AddObject(developBuildStyle); + group = this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + group->AddAttribute("COPY_PHASE_STRIP", this->CreateString("YES")); + cmXCodeObject* deployBuildStyle = + this->CreateObject(cmXCodeObject::PBXBuildStyle); + deployBuildStyle->AddAttribute("name", this->CreateString("Deployment")); + deployBuildStyle->AddAttribute("buildSettings", group); + listObjs->AddObject(deployBuildStyle); + } + else + { + for(unsigned int i = 0; i < this->CurrentConfigurationTypes.size(); ++i) + { + cmXCodeObject* buildStyle = + this->CreateObject(cmXCodeObject::PBXBuildStyle); + const char* name = this->CurrentConfigurationTypes[i].c_str(); + buildStyle->AddAttribute("name", this->CreateString(name)); + buildStyle->SetComment(name); + cmXCodeObject* sgroup = + this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + sgroup->AddAttribute("COPY_PHASE_STRIP", this->CreateString("NO")); + buildStyle->AddAttribute("buildSettings", sgroup); + listObjs->AddObject(buildStyle); + } + } + + cmXCodeObject* mainGroup = this->CreateObject(cmXCodeObject::PBXGroup); + this->MainGroupChildren = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + mainGroup->AddAttribute("children", this->MainGroupChildren); + if(this->XcodeVersion == 15) + { + mainGroup->AddAttribute("refType", this->CreateString("4")); + } + mainGroup->AddAttribute("sourceTree", this->CreateString("")); + + cmXCodeObject* sourcesGroup = this->CreateObject(cmXCodeObject::PBXGroup); + this->SourcesGroupChildren = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + sourcesGroup->AddAttribute("name", this->CreateString("Sources")); + sourcesGroup->AddAttribute("children", this->SourcesGroupChildren); + if(this->XcodeVersion == 15) + { + sourcesGroup->AddAttribute("refType", this->CreateString("4")); + } + sourcesGroup->AddAttribute("sourceTree", this->CreateString("")); + this->MainGroupChildren->AddObject(sourcesGroup); + + cmXCodeObject* resourcesGroup = this->CreateObject(cmXCodeObject::PBXGroup); + this->ResourcesGroupChildren = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + resourcesGroup->AddAttribute("name", this->CreateString("Resources")); + resourcesGroup->AddAttribute("children", this->ResourcesGroupChildren); + if(this->XcodeVersion == 15) + { + resourcesGroup->AddAttribute("refType", this->CreateString("4")); + } + resourcesGroup->AddAttribute("sourceTree", this->CreateString("")); + this->MainGroupChildren->AddObject(resourcesGroup); + + // now create the cmake groups + this->CreateGroups(root, generators); + + cmXCodeObject* productGroup = this->CreateObject(cmXCodeObject::PBXGroup); + productGroup->AddAttribute("name", this->CreateString("Products")); + if(this->XcodeVersion == 15) + { + productGroup->AddAttribute("refType", this->CreateString("4")); + } + productGroup->AddAttribute("sourceTree", this->CreateString("")); + cmXCodeObject* productGroupChildren = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + productGroup->AddAttribute("children", productGroupChildren); + this->MainGroupChildren->AddObject(productGroup); + + + this->RootObject = this->CreateObject(cmXCodeObject::PBXProject); + this->RootObject->SetComment("Project object"); + group = this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + this->RootObject->AddAttribute("mainGroup", + this->CreateObjectReference(mainGroup)); + this->RootObject->AddAttribute("buildSettings", group); + this->RootObject->AddAttribute("buildStyles", listObjs); + this->RootObject->AddAttribute("hasScannedForEncodings", + this->CreateString("0")); + cmXCodeObject* configlist = + this->CreateObject(cmXCodeObject::XCConfigurationList); + cmXCodeObject* buildConfigurations = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + std::vector configs; + if(this->XcodeVersion == 15) + { + cmXCodeObject* configDebug = + this->CreateObject(cmXCodeObject::XCBuildConfiguration); + configDebug->AddAttribute("name", this->CreateString("Debug")); + configs.push_back(configDebug); + cmXCodeObject* configRelease = + this->CreateObject(cmXCodeObject::XCBuildConfiguration); + configRelease->AddAttribute("name", this->CreateString("Release")); + configs.push_back(configRelease); + } + else + { + for(unsigned int i = 0; i < this->CurrentConfigurationTypes.size(); ++i) + { + const char* name = this->CurrentConfigurationTypes[i].c_str(); + cmXCodeObject* config = + this->CreateObject(cmXCodeObject::XCBuildConfiguration); + config->AddAttribute("name", this->CreateString(name)); + configs.push_back(config); + } + } + for(std::vector::iterator c = configs.begin(); + c != configs.end(); ++c) + { + buildConfigurations->AddObject(*c); + } + configlist->AddAttribute("buildConfigurations", buildConfigurations); + + std::string comment = "Build configuration list for PBXProject "; + comment += " \""; + comment += this->CurrentProject; + comment += "\""; + configlist->SetComment(comment.c_str()); + configlist->AddAttribute("defaultConfigurationIsVisible", + this->CreateString("0")); + configlist->AddAttribute("defaultConfigurationName", + this->CreateString("Debug")); + cmXCodeObject* buildSettings = + this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP); + const char* osxArch = + this->CurrentMakefile->GetDefinition("CMAKE_OSX_ARCHITECTURES"); + const char* sysroot = + this->CurrentMakefile->GetDefinition("CMAKE_OSX_SYSROOT"); + if(osxArch && sysroot) + { + // recompute this as it may have been changed since enable language + this->Architectures.clear(); + cmSystemTools::ExpandListArgument(std::string(osxArch), + this->Architectures); + if(this->Architectures.size() > 1) + { + buildSettings->AddAttribute("SDKROOT", + this->CreateString(sysroot)); + std::string archString; + for( std::vector::iterator i = + this->Architectures.begin(); + i != this->Architectures.end(); ++i) + { + archString += *i; + archString += " "; + } + buildSettings->AddAttribute("ARCHS", + this->CreateString(archString.c_str())); + } + } + for( std::vector::iterator i = configs.begin(); + i != configs.end(); ++i) + { + (*i)->AddAttribute("buildSettings", buildSettings); + } + this->RootObject->AddAttribute("buildConfigurationList", + this->CreateObjectReference(configlist)); + + std::vector targets; + for(std::vector::iterator i = generators.begin(); + i != generators.end(); ++i) + { + if(!this->IsExcluded(root, *i)) + { + this->CreateXCodeTargets(*i, targets); + } + } + // loop over all targets and add link and depend info + for(std::vector::iterator i = targets.begin(); + i != targets.end(); ++i) + { + cmXCodeObject* t = *i; + this->AddDependAndLinkInformation(t); + } + // now create xcode depend hack makefile + this->CreateXCodeDependHackTarget(targets); + // now add all targets to the root object + cmXCodeObject* allTargets = this->CreateObject(cmXCodeObject::OBJECT_LIST); + for(std::vector::iterator i = targets.begin(); + i != targets.end(); ++i) + { + cmXCodeObject* t = *i; + allTargets->AddObject(t); + cmXCodeObject* productRef = t->GetObject("productReference"); + if(productRef) + { + productGroupChildren->AddObject(productRef->GetObject()); + } + } + this->RootObject->AddAttribute("targets", allTargets); +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCodeGenerator::CreateXCodeDependHackTarget( + std::vector& targets) +{ + cmGeneratedFileStream + makefileStream(this->CurrentXCodeHackMakefile.c_str()); + if(!makefileStream) + { + cmSystemTools::Error("Could not create", + this->CurrentXCodeHackMakefile.c_str()); + return; + } + makefileStream.SetCopyIfDifferent(true); + // one more pass for external depend information not handled + // correctly by xcode + makefileStream << "# DO NOT EDIT\n"; + makefileStream << "# This makefile makes sure all linkable targets are\n"; + makefileStream << "# up-to-date with anything they link to, avoiding a " + "bug in XCode 1.5\n"; + for(std::vector::const_iterator + ct = this->CurrentConfigurationTypes.begin(); + ct != this->CurrentConfigurationTypes.end(); ++ct) + { + if(this->XcodeVersion < 21 || ct->empty()) + { + makefileStream << "all: "; + } + else + { + makefileStream << "all." << *ct << ": "; + } + const char* configName = 0; + if(!ct->empty()) + { + configName = ct->c_str(); + } + for(std::vector::iterator i = targets.begin(); + i != targets.end(); ++i) + { + cmXCodeObject* target = *i; + cmTarget* t =target->GetTarget(); + if(t->GetType() == cmTarget::EXECUTABLE || + t->GetType() == cmTarget::SHARED_LIBRARY || + t->GetType() == cmTarget::MODULE_LIBRARY) + { + makefileStream << "\\\n\t" << + this->ConvertToRelativeForMake( + t->GetFullPath(configName).c_str()); + } + } + makefileStream << "\n\n"; + } + makefileStream + << "# For each target create a dummy rule " + "so the target does not have to exist\n"; + std::set emitted; + for(std::vector::iterator i = targets.begin(); + i != targets.end(); ++i) + { + cmXCodeObject* target = *i; + std::map const& deplibs = + target->GetDependLibraries(); + for(std::map::const_iterator ci + = deplibs.begin(); ci != deplibs.end(); ++ci) + { + for(cmXCodeObject::StringVec::const_iterator d = ci->second.begin(); + d != ci->second.end(); ++d) + { + if(emitted.insert(*d).second) + { + makefileStream << + this->ConvertToRelativeForMake(d->c_str()) << ":\n"; + } + } + } + } + makefileStream << "\n\n"; + + // Write rules to help Xcode relink things at the right time. + makefileStream << + "# Rules to remove targets that are older than anything to which they\n" + "# link. This forces Xcode to relink the targets from scratch. It\n" + "# does not seem to check these dependencies itself.\n"; + for(std::vector::const_iterator + ct = this->CurrentConfigurationTypes.begin(); + ct != this->CurrentConfigurationTypes.end(); ++ct) + { + const char* configName = 0; + if(!ct->empty()) + { + configName = ct->c_str(); + } + for(std::vector::iterator i = targets.begin(); + i != targets.end(); ++i) + { + cmXCodeObject* target = *i; + cmTarget* t =target->GetTarget(); + if(t->GetType() == cmTarget::EXECUTABLE || + t->GetType() == cmTarget::SHARED_LIBRARY || + t->GetType() == cmTarget::MODULE_LIBRARY) + { + // Create a rule for this target. + std::string tfull = t->GetFullPath(configName); + makefileStream << this->ConvertToRelativeForMake(tfull.c_str()) + << ":"; + + // List dependencies if any exist. + std::map::const_iterator + x = target->GetDependLibraries().find(*ct); + if(x != target->GetDependLibraries().end()) + { + std::vector const& deplibs = x->second; + for(std::vector::const_iterator d = deplibs.begin(); + d != deplibs.end(); ++d) + { + makefileStream << "\\\n\t" << + this->ConvertToRelativeForMake(d->c_str()); + } + } + // Write the action to remove the target if it is out of date. + makefileStream << "\n"; + makefileStream << "\t/bin/rm -f " + << this->ConvertToRelativeForMake(tfull.c_str()) + << "\n"; + // if building for more than one architecture + // then remove those exectuables as well + if(this->Architectures.size() > 1) + { + std::string universal = t->GetDirectory(); + universal += "/"; + universal += this->CurrentMakefile->GetProjectName(); + universal += ".build/"; + universal += configName; + universal += "/"; + universal += t->GetName(); + universal += ".build/Objects-normal/"; + for( std::vector::iterator arch = + this->Architectures.begin(); + arch != this->Architectures.end(); ++arch) + { + std::string universalFile = universal; + universalFile += *arch; + universalFile += "/"; + universalFile += t->GetName(); + makefileStream << "\t/bin/rm -f " + << + this->ConvertToRelativeForMake(universalFile.c_str()) + << "\n"; + } + } + makefileStream << "\n\n"; + } + } + } +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCodeGenerator::OutputXCodeProject(cmLocalGenerator* root, + std::vector& + generators) +{ + if(generators.size() == 0) + { + return; + } + // Skip local generators that are excluded from this project. + for(std::vector::iterator g = generators.begin(); + g != generators.end(); ++g) + { + if(this->IsExcluded(root, *g)) + { + continue; + } + } + + this->CreateXCodeObjects(root, + generators); + std::string xcodeDir = root->GetMakefile()->GetStartOutputDirectory(); + xcodeDir += "/"; + xcodeDir += root->GetMakefile()->GetProjectName(); + xcodeDir += ".xcode"; + if(this->XcodeVersion > 20) + { + xcodeDir += "proj"; + } + cmSystemTools::MakeDirectory(xcodeDir.c_str()); + std::string xcodeProjFile = xcodeDir + "/project.pbxproj"; + cmGeneratedFileStream fout(xcodeProjFile.c_str()); + fout.SetCopyIfDifferent(true); + if(!fout) + { + return; + } + this->WriteXCodePBXProj(fout, root, generators); + this->ClearXCodeObjects(); +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCodeGenerator::WriteXCodePBXProj(std::ostream& fout, + cmLocalGenerator* , + std::vector& ) +{ + fout << "// !$*UTF8*$!\n"; + fout << "{\n"; + cmXCodeObject::Indent(1, fout); + fout << "archiveVersion = 1;\n"; + cmXCodeObject::Indent(1, fout); + fout << "classes = {\n"; + cmXCodeObject::Indent(1, fout); + fout << "};\n"; + cmXCodeObject::Indent(1, fout); + fout << "objectVersion = 39;\n"; + cmXCodeObject::PrintList(this->XCodeObjects, fout); + cmXCodeObject::Indent(1, fout); + fout << "rootObject = " << this->RootObject->GetId() << ";\n"; + fout << "}\n"; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::GetDocumentation(cmDocumentationEntry& entry) + const +{ + entry.Name = this->GetName(); + entry.Brief = "Generate XCode project files."; + entry.Full = ""; +} + +//---------------------------------------------------------------------------- +std::string cmGlobalXCodeGenerator::ConvertToRelativeForMake(const char* p) +{ + if ( !this->CurrentMakefile->IsOn("CMAKE_USE_RELATIVE_PATHS") ) + { + return cmSystemTools::ConvertToOutputPath(p); + } + else + { + std::string ret = + this->CurrentLocalGenerator-> + ConvertToRelativePath(this->CurrentOutputDirectoryComponents, p); + return cmSystemTools::ConvertToOutputPath(ret.c_str()); + } +} + +//---------------------------------------------------------------------------- +std::string cmGlobalXCodeGenerator::ConvertToRelativeForXCode(const char* p) +{ + if ( !this->CurrentMakefile->IsOn("CMAKE_USE_RELATIVE_PATHS") ) + { + return cmSystemTools::ConvertToOutputPath(p); + } + else + { + std::string ret = + this->CurrentLocalGenerator-> + ConvertToRelativePath(this->ProjectOutputDirectoryComponents, p); + return cmSystemTools::ConvertToOutputPath(ret.c_str()); + } +} + +//---------------------------------------------------------------------------- +std::string cmGlobalXCodeGenerator::XCodeEscapePath(const char* p) +{ + std::string ret = p; + if(ret.find(' ') != ret.npos) + { + std::string t = ret; + ret = "\""; + ret += t; + ret += "\""; + } + return ret; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator:: +GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs) +{ + std::string dir = this->CurrentMakefile->GetCurrentOutputDirectory(); + dir += "/"; + dir += this->CurrentMakefile->GetProjectName(); + dir += ".build/"; + dir += this->GetCMakeCFGInitDirectory(); + dir += "/"; + if(target->GetType() != cmTarget::EXECUTABLE) + { + dir += "lib"; + } + dir += target->GetName(); + if(target->GetType() == cmTarget::STATIC_LIBRARY) + { + dir += ".a"; + } + if(target->GetType() == cmTarget::SHARED_LIBRARY) + { + dir += ".dylib"; + } + if(target->GetType() == cmTarget::MODULE_LIBRARY) + { + dir += ".so"; + } + dir += ".build/Objects-normal/"; + std::string dirsave = dir; + if(this->Architectures.size()) + { + for(std::vector::iterator i = this->Architectures.begin(); + i != this->Architectures.end(); ++i) + { + dir += *i; + dirs.push_back(dir); + dir = dirsave; + } + } + else + { + dirs.push_back(dir); + } +} + +//---------------------------------------------------------------------------- +void +cmGlobalXCodeGenerator +::AppendDirectoryForConfig(const char* prefix, + const char* config, + const char* suffix, + std::string& dir) +{ + if(this->XcodeVersion > 20) + { + if(config) + { + if(dir.find(".framework") != dir.npos) + { + // Remove trailing slashes (so that the rfind does not find the one at + // the very end...!) + // + cmSystemTools::ConvertToUnixSlashes(dir); + std::string::size_type pos = dir.rfind("/"); + std::string framework = dir.substr(pos); + std::string newDir = dir.substr(0, pos); + newDir += "/"; + newDir += config; + dir = newDir; + dir += framework; + } + else + { + dir += prefix; + dir += config; + dir += suffix; + } + } + } +} + +//---------------------------------------------------------------------------- +std::string cmGlobalXCodeGenerator::LookupFlags(const char* varNamePrefix, + const char* varNameLang, + const char* varNameSuffix, + const char* default_flags) +{ + if(varNameLang) + { + std::string varName = varNamePrefix; + varName += varNameLang; + varName += varNameSuffix; + if(const char* varValue = + this->CurrentMakefile->GetDefinition(varName.c_str())) + { + if(*varValue) + { + return varValue; + } + } + } + return default_flags; +} + +//---------------------------------------------------------------------------- +void cmGlobalXCodeGenerator::AppendDefines(std::string& defs, + const char* defines_list, + bool dflag) +{ + // Skip this if there are no definitions. + if(!defines_list) + { + return; + } + + // Expand the list of definitions. + std::vector defines; + cmSystemTools::ExpandListArgument(defines_list, defines); + + // GCC_PREPROCESSOR_DEFINITIONS is a space-separated list of definitions. + // We escape everything as follows: + // - Place each definition in single quotes '' + // - Escape a single quote as \\' + // - Escape a backslash as \\\\ since it itself is an escape + // Note that in the code below we need one more level of escapes for + // C string syntax in this source file. + const char* sep = defs.empty()? "" : " "; + for(std::vector::const_iterator di = defines.begin(); + di != defines.end(); ++di) + { + // Separate from previous definition. + defs += sep; + sep = " "; + + // Open single quote. + defs += "'"; + + // Add -D flag if requested. + if(dflag) + { + defs += "-D"; + } + + // Escaped definition string. + for(const char* c = di->c_str(); *c; ++c) + { + if(*c == '\'') + { + defs += "\\\\'"; + } + else if(*c == '\\') + { + defs += "\\\\\\\\"; + } + else + { + defs += *c; + } + } + + // Close single quote. + defs += "'"; + } +} diff --git a/CMakeLua/Source/cmGlobalXCodeGenerator.h b/CMakeLua/Source/cmGlobalXCodeGenerator.h new file mode 100644 index 0000000..cf4726b --- /dev/null +++ b/CMakeLua/Source/cmGlobalXCodeGenerator.h @@ -0,0 +1,206 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmGlobalXCodeGenerator.h,v $ + Language: C++ + Date: $Date: 2008/01/14 14:20:57 $ + Version: $Revision: 1.52 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalXCodeGenerator_h +#define cmGlobalXCodeGenerator_h + +#include "cmGlobalGenerator.h" +#include "cmXCodeObject.h" +#include "cmCustomCommand.h" +class cmTarget; +class cmSourceFile; +class cmSourceGroup; + + +/** \class cmGlobalXCodeGenerator + * \brief Write a Unix makefiles. + * + * cmGlobalXCodeGenerator manages UNIX build process for a tree + */ +class cmGlobalXCodeGenerator : public cmGlobalGenerator +{ +public: + cmGlobalXCodeGenerator(); + static cmGlobalGenerator* New(); + + void SetVersion(int v) { this->XcodeVersion = v;} + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalXCodeGenerator::GetActualName();} + static const char* GetActualName() {return "Xcode";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void EnableLanguage(std::vectorconst& languages, + cmMakefile *, bool optional); + /** + * Try running cmake and building a file. This is used for dynalically + * loaded commands, not as part of the usual build process. + */ + virtual std::string GenerateBuildCommand(const char* makeProgram, + const char *projectName, + const char* additionalOptions, + const char *targetName, + const char* config, + bool ignoreErrors, + bool fast); + + /** + * Generate the all required files for building this project/tree. This + * basically creates a series of LocalGenerators for each directory and + * requests that they Generate. + */ + virtual void Generate(); + + /** Append the subdirectory for the given configuration. */ + virtual void AppendDirectoryForConfig(const char* prefix, + const char* config, + const char* suffix, + std::string& dir); + + ///! What is the configurations directory variable called? + virtual const char* GetCMakeCFGInitDirectory() { return "."; } + + void GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs); + void SetCurrentLocalGenerator(cmLocalGenerator*); +private: + cmXCodeObject* CreateOrGetPBXGroup(cmTarget& cmtarget, + cmSourceGroup* sg); + void CreateGroups(cmLocalGenerator* root, + std::vector& + generators); + std::string XCodeEscapePath(const char* p); + std::string ConvertToRelativeForXCode(const char* p); + std::string ConvertToRelativeForMake(const char* p); + void CreateCustomCommands(cmXCodeObject* buildPhases, + cmXCodeObject* sourceBuildPhase, + cmXCodeObject* headerBuildPhase, + cmXCodeObject* resourceBuildPhase, + std::vector contentBuildPhases, + cmXCodeObject* frameworkBuildPhase, + cmTarget& cmtarget); + + void AddCommandsToBuildPhase(cmXCodeObject* buildphase, + cmTarget& target, + std::vector + const & commands, + const char* commandFileName); + + void CreateCustomRulesMakefile(const char* makefileBasename, + cmTarget& target, + std::vector const & commands, + const char* configName, + const std::map& + multipleOutputPairs + ); + + cmXCodeObject* FindXCodeTarget(cmTarget*); + // create cmXCodeObject from these functions so that memory can be managed + // correctly. All objects created are stored in this->XCodeObjects. + cmXCodeObject* CreateObject(cmXCodeObject::PBXType ptype); + cmXCodeObject* CreateObject(cmXCodeObject::Type type); + cmXCodeObject* CreateString(const char* s); + cmXCodeObject* CreateObjectReference(cmXCodeObject*); + cmXCodeObject* CreateXCodeTarget(cmTarget& target, + cmXCodeObject* buildPhases); + void AddConfigurations(cmXCodeObject* target, + cmTarget& cmtarget); + void AppendOrAddBuildSetting(cmXCodeObject* settings, const char* attr, + const char* value); + void AppendBuildSettingAttribute(cmXCodeObject* target, const char* attr, + const char* value, const char* configName); + cmXCodeObject* CreateUtilityTarget(cmTarget& target); + void AddDependAndLinkInformation(cmXCodeObject* target); + void CreateBuildSettings(cmTarget& target, + cmXCodeObject* buildSettings, + std::string& fileType, + std::string& productType, + std::string& projectName, + const char* buildType); + std::string ExtractFlag(const char* flag, std::string& flags); + // delete all objects in the this->XCodeObjects vector. + void ClearXCodeObjects(); + void CreateXCodeObjects(cmLocalGenerator* root, + std::vector& generators); + void OutputXCodeProject(cmLocalGenerator* root, + std::vector& generators); + virtual void WriteXCodePBXProj(std::ostream& fout, + cmLocalGenerator* root, + std::vector& generators); + cmXCodeObject* CreateXCodeSourceFile(cmLocalGenerator* gen, + cmSourceFile* sf, + cmTarget& cmtarget); + void CreateXCodeTargets(cmLocalGenerator* gen, + std::vector&); + void AddDependTarget(cmXCodeObject* target, + cmXCodeObject* dependTarget); + void CreateXCodeDependHackTarget(std::vector& targets); + bool SpecialTargetEmitted(std::string const& tname); + void SetGenerationRoot(cmLocalGenerator* root); + void AddExtraTargets(cmLocalGenerator* root, + std::vector& gens); + cmXCodeObject* CreateBuildPhase(const char* name, + const char* name2, + cmTarget& cmtarget, + const std::vector&); + void CreateReRunCMakeFile(cmLocalGenerator* root); + + std::string LookupFlags(const char* varNamePrefix, + const char* varNameLang, + const char* varNameSuffix, + const char* default_flags); + + void AppendDefines(std::string& defs, const char* defines_list, + bool dflag = false); + +protected: + virtual const char* GetInstallTargetName() { return "install"; } + virtual const char* GetPackageTargetName() { return "package"; } + + int XcodeVersion; + std::vector XCodeObjects; + cmXCodeObject* RootObject; +private: + cmXCodeObject* MainGroupChildren; + cmXCodeObject* SourcesGroupChildren; + cmXCodeObject* ResourcesGroupChildren; + cmMakefile* CurrentMakefile; + cmLocalGenerator* CurrentLocalGenerator; + std::vector CurrentConfigurationTypes; + std::string CurrentReRunCMakeMakefile; + std::string CurrentXCodeHackMakefile; + std::string CurrentProject; + std::set TargetDoneSet; + std::vector CurrentOutputDirectoryComponents; + std::vector ProjectOutputDirectoryComponents; + std::map GroupMap; + std::map GroupNameMap; + std::map TargetGroup; + std::map FileRefs; + std::vector Architectures; +}; + +#endif diff --git a/CMakeLua/Source/cmHexFileConverter.cxx b/CMakeLua/Source/cmHexFileConverter.cxx new file mode 100644 index 0000000..5e15f91 --- /dev/null +++ b/CMakeLua/Source/cmHexFileConverter.cxx @@ -0,0 +1,267 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmHexFileConverter.cxx,v $ + Language: C++ + Date: $Date: 2007/07/20 12:36:16 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmHexFileConverter.h" + +#include +#include + +#define INTEL_HEX_MIN_LINE_LENGTH (1+8 +2) +#define INTEL_HEX_MAX_LINE_LENGTH (1+8+(256*2)+2) +#define MOTOROLA_SREC_MIN_LINE_LENGTH (2+2+4 +2) +#define MOTOROLA_SREC_MAX_LINE_LENGTH (2+2+8+(256*2)+2) + +// might go to SystemTools ? +static bool cm_IsHexChar(char c) +{ + return (((c >= '0') && (c <= '9')) + || ((c >= 'a') && (c <= 'f')) + || ((c >= 'A') && (c <= 'F'))); +} + +static unsigned int ChompStrlen(const char* line) +{ + if (line == 0) + { + return 0; + } + unsigned int length = static_cast(strlen(line)); + if ((line[length-1] == '\n') || (line[length-1] == '\r')) + { + length--; + } + if ((line[length-1] == '\n') || (line[length-1] == '\r')) + { + length--; + } + return length; +} + +static bool OutputBin(FILE* file, const char * buf, + unsigned int startIndex, unsigned int stopIndex) +{ + bool success = true; + char hexNumber[3]; + hexNumber[2] = '\0'; + char outBuf[256]; + unsigned int outBufCount = 0; + for (unsigned int i = startIndex; i < stopIndex; i += 2) + { + hexNumber[0] = buf[i]; + hexNumber[1] = buf[i+1]; + unsigned int convertedByte = 0; + if (sscanf(hexNumber, "%x", &convertedByte) != 1) + { + success = false; + break; + } + outBuf[outBufCount] = convertedByte & 0xff; + outBufCount++; + } + if (success) + { + success = (fwrite(outBuf, 1, outBufCount, file)==outBufCount); + } + return success; +} + +// see http://www.die.net/doc/linux/man/man5/srec.5.html +static bool ConvertMotorolaSrecLine(const char* buf, FILE* outFile) +{ + unsigned int slen = ChompStrlen(buf); + if ((slen < MOTOROLA_SREC_MIN_LINE_LENGTH) + || (slen > MOTOROLA_SREC_MAX_LINE_LENGTH)) + { + return false; + } + + // line length must be even + if (slen % 2 == 1) + { + return false; + } + + if (buf[0] != 'S') + { + return false; + } + + unsigned int dataStart = 0; + // ignore extra address records + if ((buf[1] == '5') || (buf[1] == '7') || (buf[1] == '8') || (buf[1] == '9')) + { + return true; + } + else if (buf[1] == '1') + { + dataStart = 8; + } + else if (buf[1] == '2') + { + dataStart = 10; + } + else if (buf[1] == '3') + { + dataStart = 12; + } + else // unknown record type + { + return false; + } + + // ignore the last two bytes (checksum) + return OutputBin(outFile, buf, dataStart, slen - 2); +} + +// see http://en.wikipedia.org/wiki/Intel_hex +static bool ConvertIntelHexLine(const char* buf, FILE* outFile) +{ + unsigned int slen = ChompStrlen(buf); + if ((slen < INTEL_HEX_MIN_LINE_LENGTH) + || (slen > INTEL_HEX_MAX_LINE_LENGTH)) + { + return false; + } + + // line length must be odd + if (slen % 2 == 0) + { + return false; + } + + if ((buf[0] != ':') || (buf[7] != '0')) + { + return false; + } + + unsigned int dataStart = 0; + if ((buf[8] == '0') || (buf[8] == '1')) + { + dataStart = 9; + } + // ignore extra address records + else if ((buf[8] == '2') || (buf[8] == '3') || (buf[8] == '4') + || (buf[8] == '5')) + { + return true; + } + else // unknown record type + { + return false; + } + +// ignore the last two bytes (checksum) + return OutputBin(outFile, buf, dataStart, slen - 2); +} + +cmHexFileConverter::FileType cmHexFileConverter::DetermineFileType( + const char* inFileName) +{ + char buf[1024]; + FILE* inFile = fopen(inFileName, "rb"); + if (inFile == 0) + { + return Binary; + } + + fgets(buf, 1024, inFile); + fclose(inFile); + FileType type = Binary; + unsigned int minLineLength = 0; + unsigned int maxLineLength = 0; + if (buf[0] == ':') // might be an intel hex file + { + type = IntelHex; + minLineLength = INTEL_HEX_MIN_LINE_LENGTH; + maxLineLength = INTEL_HEX_MAX_LINE_LENGTH; + } + else if (buf[0] == 'S') // might be a motorola srec file + { + type = MotorolaSrec; + minLineLength = MOTOROLA_SREC_MIN_LINE_LENGTH; + maxLineLength = MOTOROLA_SREC_MAX_LINE_LENGTH; + } + else + { + return Binary; + } + + unsigned int slen = ChompStrlen(buf); + if ((slen < minLineLength) || (slen > maxLineLength)) + { + return Binary; + } + + for (unsigned int i = 1; i < slen; i++) + { + if (!cm_IsHexChar(buf[i])) + { + return Binary; + } + } + return type; +} + +bool cmHexFileConverter::TryConvert(const char* inFileName, + const char* outFileName) +{ + FileType type = DetermineFileType(inFileName); + if (type == Binary) + { + return false; + } + + // try to open the file + FILE* inFile = fopen(inFileName, "rb"); + FILE* outFile = fopen(outFileName, "wb"); + if ((inFile == 0) || (outFile == 0)) + { + if (inFile != 0) + { + fclose(inFile); + } + if (outFile != 0) + { + fclose(outFile); + } + return false; + } + + // convert them line by line + bool success = false; + char buf[1024]; + while (fgets(buf, 1024, inFile) != 0) + { + if (type == MotorolaSrec) + { + success = ConvertMotorolaSrecLine(buf, outFile); + } + else if (type == IntelHex) + { + success = ConvertIntelHexLine(buf, outFile); + } + if (success == false) + { + break; + } + } + + // close them again + fclose(inFile); + fclose(outFile); + return success; +} + diff --git a/CMakeLua/Source/cmHexFileConverter.h b/CMakeLua/Source/cmHexFileConverter.h new file mode 100644 index 0000000..dcec832 --- /dev/null +++ b/CMakeLua/Source/cmHexFileConverter.h @@ -0,0 +1,33 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmHexFileConverter.h,v $ + Language: C++ + Date: $Date: 2007/05/25 19:22:22 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmHexFileConverter_h +#define cmHexFileConverter_h + +/** \class cmHexFileConverter + * \brief Can detects Intel Hex and Motorola S-record files and convert them + * to binary files. + * + */ +class cmHexFileConverter +{ +public: + enum FileType {Binary, IntelHex, MotorolaSrec}; + static FileType DetermineFileType(const char* inFileName); + static bool TryConvert(const char* inFileName, const char* outFileName); +}; + +#endif diff --git a/CMakeLua/Source/cmIfCommand.cxx b/CMakeLua/Source/cmIfCommand.cxx new file mode 100644 index 0000000..77be651 --- /dev/null +++ b/CMakeLua/Source/cmIfCommand.cxx @@ -0,0 +1,695 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIfCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.82 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmIfCommand.h" +#include "cmStringCommand.h" + +#include // required for atof +#include +#include + +bool cmIfFunctionBlocker:: +IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf, + cmExecutionStatus &inStatus) +{ + // Prevent recusion and don't let this blocker block its own + // commands. + if (this->Executing) + { + return false; + } + + // we start by recording all the functions + if (!cmSystemTools::Strucmp(lff.Name.c_str(),"if")) + { + this->ScopeDepth++; + } + if (!cmSystemTools::Strucmp(lff.Name.c_str(),"endif")) + { + this->ScopeDepth--; + // if this is the endif for this if statement, then start executing + if (!this->ScopeDepth) + { + // execute the functions for the true parts of the if statement + this->Executing = true; + cmExecutionStatus status; + int scopeDepth = 0; + for(unsigned int c = 0; c < this->Functions.size(); ++c) + { + // keep track of scope depth + if (!cmSystemTools::Strucmp(this->Functions[c].Name.c_str(),"if")) + { + scopeDepth++; + } + if (!cmSystemTools::Strucmp(this->Functions[c].Name.c_str(),"endif")) + { + scopeDepth--; + } + // watch for our state change + if (scopeDepth == 0 && + !cmSystemTools::Strucmp(this->Functions[c].Name.c_str(),"else")) + { + this->IsBlocking = this->HasRun; + this->HasRun = true; + } + else if (scopeDepth == 0 && !cmSystemTools::Strucmp + (this->Functions[c].Name.c_str(),"elseif")) + { + if (this->HasRun) + { + this->IsBlocking = true; + } + else + { + char* errorString = 0; + + std::vector expandedArguments; + mf.ExpandArguments(this->Functions[c].Arguments, + expandedArguments); + bool isTrue = + cmIfCommand::IsTrue(expandedArguments,&errorString,&mf); + + if (errorString) + { + std::string err = "had incorrect arguments: "; + unsigned int i; + for(i =0; i < this->Functions[c].Arguments.size(); ++i) + { + err += (this->Functions[c].Arguments[i].Quoted?"\"":""); + err += this->Functions[c].Arguments[i].Value; + err += (this->Functions[c].Arguments[i].Quoted?"\"":""); + err += " "; + } + err += "("; + err += errorString; + err += ")."; + cmSystemTools::Error(err.c_str()); + delete [] errorString; + return false; + } + + if (isTrue) + { + this->IsBlocking = false; + this->HasRun = true; + } + } + } + + // should we execute? + else if (!this->IsBlocking) + { + status.Clear(); + mf.ExecuteCommand(this->Functions[c],status); + if (status.GetReturnInvoked()) + { + inStatus.SetReturnInvoked(true); + mf.RemoveFunctionBlocker(lff); + return true; + } + if (status.GetBreakInvoked()) + { + inStatus.SetBreakInvoked(true); + mf.RemoveFunctionBlocker(lff); + return true; + } + } + } + mf.RemoveFunctionBlocker(lff); + return true; + } + } + + // record the command + this->Functions.push_back(lff); + + // always return true + return true; +} + +bool cmIfFunctionBlocker::ShouldRemove(const cmListFileFunction& lff, + cmMakefile& mf) +{ + if (!cmSystemTools::Strucmp(lff.Name.c_str(),"endif")) + { + if (cmSystemTools::IsOn + (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS")) + || lff.Arguments == this->Args) + { + return true; + } + } + + return false; +} + +void cmIfFunctionBlocker:: +ScopeEnded(cmMakefile &mf) +{ + std::string errmsg = "The end of a CMakeLists file was reached with an " + "IF statement that was not closed properly.\nWithin the directory: "; + errmsg += mf.GetCurrentDirectory(); + errmsg += "\nThe arguments are: "; + for(std::vector::const_iterator j = this->Args.begin(); + j != this->Args.end(); ++j) + { + errmsg += (j->Quoted?"\"":""); + errmsg += j->Value; + errmsg += (j->Quoted?"\"":""); + errmsg += " "; + } + cmSystemTools::Message(errmsg.c_str(), "Warning"); +} + +bool cmIfCommand +::InvokeInitialPass(const std::vector& args, + cmExecutionStatus &) +{ + char* errorString = 0; + + std::vector expandedArguments; + this->Makefile->ExpandArguments(args, expandedArguments); + bool isTrue = + cmIfCommand::IsTrue(expandedArguments,&errorString,this->Makefile); + + if (errorString) + { + std::string err = "had incorrect arguments: "; + unsigned int i; + for(i =0; i < args.size(); ++i) + { + err += (args[i].Quoted?"\"":""); + err += args[i].Value; + err += (args[i].Quoted?"\"":""); + err += " "; + } + err += "("; + err += errorString; + err += ")."; + this->SetError(err.c_str()); + delete [] errorString; + return false; + } + + cmIfFunctionBlocker *f = new cmIfFunctionBlocker(); + // if is isn't true block the commands + f->ScopeDepth = 1; + f->IsBlocking = !isTrue; + if (isTrue) + { + f->HasRun = true; + } + f->Args = args; + this->Makefile->AddFunctionBlocker(f); + + return true; +} + +namespace +{ + void IncrementArguments(std::list &newArgs, + std::list::iterator &argP1, + std::list::iterator &argP2) + { + if (argP1 != newArgs.end()) + { + argP1++; + argP2 = argP1; + if (argP1 != newArgs.end()) + { + argP2++; + } + } + } +} + + +// order of operations, +// IS_DIRECTORY EXISTS COMMAND DEFINED +// MATCHES LESS GREATER EQUAL STRLESS STRGREATER STREQUAL +// AND OR +// +// There is an issue on whether the arguments should be values of references, +// for example IF (FOO AND BAR) should that compare the strings FOO and BAR +// or should it really do IF (${FOO} AND ${BAR}) Currently IS_DIRECTORY +// EXISTS COMMAND and DEFINED all take values. EQUAL, LESS and GREATER can +// take numeric values or variable names. STRLESS and STRGREATER take +// variable names but if the variable name is not found it will use the name +// directly. AND OR take variables or the values 0 or 1. + + +bool cmIfCommand::IsTrue(const std::vector &args, + char **errorString, cmMakefile *makefile) +{ + // check for the different signatures + const char *def; + const char *def2; + const char* msg = "Unknown arguments specified"; + *errorString = new char[strlen(msg) + 1]; + strcpy(*errorString, msg); + + // handle empty invocation + if (args.size() < 1) + { + delete [] *errorString; + *errorString = 0; + return false; + } + + // store the reduced args in this vector + std::list newArgs; + int reducible; + unsigned int i; + + // copy to the list structure + for(i = 0; i < args.size(); ++i) + { + newArgs.push_back(args[i]); + } + std::list::iterator argP1; + std::list::iterator argP2; + + // now loop through the arguments and see if we can reduce any of them + // we do this multiple times. Once for each level of precedence + do + { + reducible = 0; + std::list::iterator arg = newArgs.begin(); + while (arg != newArgs.end()) + { + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + // does a file exist + if (*arg == "EXISTS" && argP1 != newArgs.end()) + { + if(cmSystemTools::FileExists((argP1)->c_str())) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + // does a directory with this name exist + if (*arg == "IS_DIRECTORY" && argP1 != newArgs.end()) + { + if(cmSystemTools::FileIsDirectory((argP1)->c_str())) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + // is the given path an absolute path ? + if (*arg == "IS_ABSOLUTE" && argP1 != newArgs.end()) + { + if(cmSystemTools::FileIsFullPath((argP1)->c_str())) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + // does a command exist + if (*arg == "COMMAND" && argP1 != newArgs.end()) + { + if(makefile->CommandExists((argP1)->c_str())) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + // is a variable defined + if (*arg == "DEFINED" && argP1 != newArgs.end()) + { + size_t argP1len = argP1->size(); + bool bdef = false; + if(argP1len > 4 && argP1->substr(0, 4) == "ENV{" && + argP1->operator[](argP1len-1) == '}') + { + std::string env = argP1->substr(4, argP1len-5); + bdef = cmSystemTools::GetEnv(env.c_str())?true:false; + } + else + { + bdef = makefile->IsDefinitionSet((argP1)->c_str()); + } + if(bdef) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + ++arg; + } + } + while (reducible); + + + // now loop through the arguments and see if we can reduce any of them + // we do this multiple times. Once for each level of precedence + do + { + reducible = 0; + std::list::iterator arg = newArgs.begin(); + + while (arg != newArgs.end()) + { + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + if (argP1 != newArgs.end() && argP2 != newArgs.end() && + *(argP1) == "MATCHES") + { + def = cmIfCommand::GetVariableOrString(arg->c_str(), makefile); + const char* rex = (argP2)->c_str(); + cmStringCommand::ClearMatches(makefile); + cmsys::RegularExpression regEntry; + if ( !regEntry.compile(rex) ) + { + cmOStringStream error; + error << "Regular expression \"" << rex << "\" cannot compile"; + delete [] *errorString; + *errorString = new char[error.str().size() + 1]; + strcpy(*errorString, error.str().c_str()); + return false; + } + if (regEntry.find(def)) + { + cmStringCommand::StoreMatches(makefile, regEntry); + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP2); + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + + if (argP1 != newArgs.end() && *arg == "MATCHES") + { + *arg = "0"; + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + + if (argP1 != newArgs.end() && argP2 != newArgs.end() && + (*(argP1) == "LESS" || *(argP1) == "GREATER" || + *(argP1) == "EQUAL")) + { + def = cmIfCommand::GetVariableOrString(arg->c_str(), makefile); + def2 = cmIfCommand::GetVariableOrString((argP2)->c_str(), makefile); + double lhs; + double rhs; + if(sscanf(def, "%lg", &lhs) != 1 || + sscanf(def2, "%lg", &rhs) != 1) + { + *arg = "0"; + } + else if (*(argP1) == "LESS") + { + if(lhs < rhs) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + } + else if (*(argP1) == "GREATER") + { + if(lhs > rhs) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + } + else + { + if(lhs == rhs) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + } + newArgs.erase(argP2); + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + + if (argP1 != newArgs.end() && argP2 != newArgs.end() && + (*(argP1) == "STRLESS" || + *(argP1) == "STREQUAL" || + *(argP1) == "STRGREATER")) + { + def = cmIfCommand::GetVariableOrString(arg->c_str(), makefile); + def2 = cmIfCommand::GetVariableOrString((argP2)->c_str(), makefile); + int val = strcmp(def,def2); + int result; + if (*(argP1) == "STRLESS") + { + result = (val < 0); + } + else if (*(argP1) == "STRGREATER") + { + result = (val > 0); + } + else // strequal + { + result = (val == 0); + } + if(result) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP2); + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + + // is file A newer than file B + if (argP1 != newArgs.end() && argP2 != newArgs.end() && + *(argP1) == "IS_NEWER_THAN") + { + int fileIsNewer=0; + bool success=cmSystemTools::FileTimeCompare(arg->c_str(), + (argP2)->c_str(), + &fileIsNewer); + if(success==false || fileIsNewer==1 || fileIsNewer==0) + { + *arg = "1"; + } + else + { + *arg = "0"; + } + newArgs.erase(argP2); + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + + ++arg; + } + } + while (reducible); + + + // now loop through the arguments and see if we can reduce any of them + // we do this multiple times. Once for each level of precedence + do + { + reducible = 0; + std::list::iterator arg = newArgs.begin(); + while (arg != newArgs.end()) + { + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + if (argP1 != newArgs.end() && *arg == "NOT") + { + def = cmIfCommand::GetVariableOrNumber((argP1)->c_str(), makefile); + if(!cmSystemTools::IsOff(def)) + { + *arg = "0"; + } + else + { + *arg = "1"; + } + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + ++arg; + } + } + while (reducible); + + // now loop through the arguments and see if we can reduce any of them + // we do this multiple times. Once for each level of precedence + do + { + reducible = 0; + std::list::iterator arg = newArgs.begin(); + while (arg != newArgs.end()) + { + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + if (argP1 != newArgs.end() && *(argP1) == "AND" && + argP2 != newArgs.end()) + { + def = cmIfCommand::GetVariableOrNumber(arg->c_str(), makefile); + def2 = cmIfCommand::GetVariableOrNumber((argP2)->c_str(), makefile); + if(cmSystemTools::IsOff(def) || cmSystemTools::IsOff(def2)) + { + *arg = "0"; + } + else + { + *arg = "1"; + } + newArgs.erase(argP2); + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + + if (argP1 != newArgs.end() && *(argP1) == "OR" && + argP2 != newArgs.end()) + { + def = cmIfCommand::GetVariableOrNumber(arg->c_str(), makefile); + def2 = cmIfCommand::GetVariableOrNumber((argP2)->c_str(), makefile); + if(cmSystemTools::IsOff(def) && cmSystemTools::IsOff(def2)) + { + *arg = "0"; + } + else + { + *arg = "1"; + } + newArgs.erase(argP2); + newArgs.erase(argP1); + argP1 = arg; + IncrementArguments(newArgs,argP1,argP2); + reducible = 1; + } + + ++arg; + } + } + while (reducible); + + // now at the end there should only be one argument left + if (newArgs.size() == 1) + { + delete [] *errorString; + *errorString = 0; + if (*newArgs.begin() == "0") + { + return false; + } + if (*newArgs.begin() == "1") + { + return true; + } + def = makefile->GetDefinition(args[0].c_str()); + if(cmSystemTools::IsOff(def)) + { + return false; + } + } + + return true; +} + +const char* cmIfCommand::GetVariableOrString(const char* str, + const cmMakefile* mf) +{ + const char* def = mf->GetDefinition(str); + if(!def) + { + def = str; + } + return def; +} + +const char* cmIfCommand::GetVariableOrNumber(const char* str, + const cmMakefile* mf) +{ + const char* def = mf->GetDefinition(str); + if(!def) + { + if (atoi(str)) + { + def = str; + } + } + return def; +} diff --git a/CMakeLua/Source/cmIfCommand.h b/CMakeLua/Source/cmIfCommand.h new file mode 100644 index 0000000..e819232 --- /dev/null +++ b/CMakeLua/Source/cmIfCommand.h @@ -0,0 +1,197 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIfCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.45 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmIfCommand_h +#define cmIfCommand_h + +#include "cmCommand.h" +#include "cmFunctionBlocker.h" + +/** \class cmIfFunctionBlocker + * \brief subclass of function blocker + * + * + */ +class cmIfFunctionBlocker : public cmFunctionBlocker +{ +public: + cmIfFunctionBlocker() { + this->HasRun = false; this->ScopeDepth = 0; this->Executing = false;} + virtual ~cmIfFunctionBlocker() {} + virtual bool IsFunctionBlocked(const cmListFileFunction& lff, + cmMakefile &mf, + cmExecutionStatus &); + virtual bool ShouldRemove(const cmListFileFunction& lff, + cmMakefile &mf); + virtual void ScopeEnded(cmMakefile &mf); + + std::vector Args; + std::vector Functions; + bool IsBlocking; + bool HasRun; + unsigned int ScopeDepth; + bool Executing; +}; + +/** \class cmIfCommand + * \brief starts an if block + * + * cmIfCommand starts an if block + */ +class cmIfCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmIfCommand; + } + + /** + * This overrides the default InvokeInitialPass implementation. + * It records the arguments before expansion. + */ + virtual bool InvokeInitialPass(const std::vector& args, + cmExecutionStatus &); + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &) { return false;}; + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "if";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Conditionally execute a group of commands."; + } + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " if(expression)\n" + " # then section.\n" + " COMMAND1(ARGS ...)\n" + " COMMAND2(ARGS ...)\n" + " ...\n" + " elseif(expression2)\n" + " # elseif section.\n" + " COMMAND1(ARGS ...)\n" + " COMMAND2(ARGS ...)\n" + " ...\n" + " else(expression)\n" + " # else section.\n" + " COMMAND1(ARGS ...)\n" + " COMMAND2(ARGS ...)\n" + " ...\n" + " endif(expression)\n" + "Evaluates the given expression. If the result is true, the commands " + "in the THEN section are invoked. Otherwise, the commands in the " + "else section are invoked. The elseif and else sections are " + "optional. You may have multiple elseif clauses. Note that " + "the same expression must be given to if, and endif. Long " + "expressions can be used and the order or precedence is that the " + "EXISTS, COMMAND, and DEFINED operators will be evaluated first. " + "Then any EQUAL, LESS, GREATER, STRLESS, STRGREATER, STREQUAL, MATCHES " + "will be evaluated. Then NOT operators and finally AND, OR operators " + "will be evaluated. Possible expressions are:\n" + " if(variable)\n" + "True if the variable's value is not empty, 0, N, NO, OFF, FALSE, " + "NOTFOUND, or -NOTFOUND.\n" + " if(NOT variable)\n" + "True if the variable's value is empty, 0, N, NO, OFF, FALSE, " + "NOTFOUND, or -NOTFOUND.\n" + " if(variable1 AND variable2)\n" + "True if both variables would be considered true individually.\n" + " if(variable1 OR variable2)\n" + "True if either variable would be considered true individually.\n" + " if(COMMAND command-name)\n" + "True if the given name is a command that can be invoked.\n" + " if(EXISTS file-name)\n" + " if(EXISTS directory-name)\n" + "True if the named file or directory exists. " + "Behavior is well-defined only for full paths.\n" + " if(file1 IS_NEWER_THAN file2)\n" + "True if file1 is newer than file2 or if one of the two files " + "doesn't exist. " + "Behavior is well-defined only for full paths.\n" + " if(IS_DIRECTORY directory-name)\n" + "True if the given name is a directory. " + "Behavior is well-defined only for full paths.\n" + " if(IS_ABSOLUTE path)\n" + "True if the given path is an absolute path.\n " + " if(variable MATCHES regex)\n" + " if(string MATCHES regex)\n" + "True if the given string or variable's value matches the given " + "regular expression.\n" + " if(variable LESS number)\n" + " if(string LESS number)\n" + " if(variable GREATER number)\n" + " if(string GREATER number)\n" + " if(variable EQUAL number)\n" + " if(string EQUAL number)\n" + "True if the given string or variable's value is a valid number and " + "the inequality or equality is true.\n" + " if(variable STRLESS string)\n" + " if(string STRLESS string)\n" + " if(variable STRGREATER string)\n" + " if(string STRGREATER string)\n" + " if(variable STREQUAL string)\n" + " if(string STREQUAL string)\n" + "True if the given string or variable's value is lexicographically " + "less (or greater, or equal) than the string on the right.\n" + " if(DEFINED variable)\n" + "True if the given variable is defined. It does not matter if the " + "variable is true or false just if it has been set."; + } + + // this is a shared function for both If and Else to determine if the + // arguments were valid, and if so, was the response true. If there is + // an error, the errorString will be set. + static bool IsTrue(const std::vector &args, + char** errorString, cmMakefile *mf); + + // Get a definition from the makefile. If it doesn't exist, + // return the original string. + static const char* GetVariableOrString(const char* str, + const cmMakefile* mf); + static const char* GetVariableOrNumber(const char* str, + const cmMakefile* mf); + + + cmTypeMacro(cmIfCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmIncludeCommand.cxx b/CMakeLua/Source/cmIncludeCommand.cxx new file mode 100644 index 0000000..395a9d7 --- /dev/null +++ b/CMakeLua/Source/cmIncludeCommand.cxx @@ -0,0 +1,106 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmIncludeCommand.h" + + +// cmIncludeCommand +bool cmIncludeCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if (args.size()< 1 || args.size() > 4) + { + this->SetError("called with wrong number of arguments. " + "Include only takes one file."); + return false; + } + bool optional = false; + std::string fname = args[0]; + std::string resultVarName; + + for (unsigned int i=1; iSetError("called with invalid arguments: OPTIONAL used twice"); + return false; + } + optional = true; + } + else if(args[i] == "RESULT_VARIABLE") + { + if (resultVarName.size() > 0) + { + this->SetError("called with invalid arguments: " + "only one result variable allowed"); + return false; + } + if(++i < args.size()) + { + resultVarName = args[i]; + } + else + { + this->SetError("called with no value for RESULT_VARIABLE."); + return false; + } + } + else if(i > 1) // compat.: in previous cmake versions the second + // parameter was ignore if it wasn't "OPTIONAL" + { + std::string errorText = "called with invalid argument: "; + errorText += args[i]; + this->SetError(errorText.c_str()); + return false; + } + } + + if(!cmSystemTools::FileIsFullPath(fname.c_str())) + { + // Not a path. Maybe module. + std::string module = fname; + module += ".cmake"; + std::string mfile = this->Makefile->GetModulesFile(module.c_str()); + if ( mfile.size() ) + { + fname = mfile.c_str(); + } + } + std::string fullFilePath; + bool readit = + this->Makefile->ReadListFile( this->Makefile->GetCurrentListFile(), + fname.c_str(), &fullFilePath ); + + // add the location of the included file if a result variable was given + if (resultVarName.size()) + { + this->Makefile->AddDefinition(resultVarName.c_str(), + readit?fullFilePath.c_str():"NOTFOUND"); + } + + if(!optional && !readit && !cmSystemTools::GetFatalErrorOccured()) + { + std::string m = "Could not find include file: "; + m += fname; + this->SetError(m.c_str()); + return false; + } + return true; +} + + diff --git a/CMakeLua/Source/cmIncludeCommand.h b/CMakeLua/Source/cmIncludeCommand.h new file mode 100644 index 0000000..4a45566 --- /dev/null +++ b/CMakeLua/Source/cmIncludeCommand.h @@ -0,0 +1,89 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.17 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmIncludeCommand_h +#define cmIncludeCommand_h + +#include "cmCommand.h" + +/** \class cmIncludeCommand + * \brief + * + * cmIncludeCommand defines a list of distant + * files that can be "included" in the current list file. + * In almost every sense, this is identical to a C/C++ + * #include command. Arguments are first expended as usual. + */ +class cmIncludeCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmIncludeCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "include";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Read CMake listfile code from the given file."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " include(file1 [OPTIONAL] [RESULT_VARIABLE ])\n" + " include(module [OPTIONAL] [RESULT_VARIABLE ])\n" + "Reads CMake listfile code from the given file. Commands in the file " + "are processed immediately as if they were written in place of the " + "include command. If OPTIONAL is present, then no error " + "is raised if the file does not exist. If RESULT_VARIABLE is given " + "the variable will be set to the full filename which " + "has been included or NOTFOUND if it failed.\n" + "If a module is specified instead of a file, the file with name " + ".cmake is searched in the CMAKE_MODULE_PATH."; + } + + cmTypeMacro(cmIncludeCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmIncludeDirectoryCommand.cxx b/CMakeLua/Source/cmIncludeDirectoryCommand.cxx new file mode 100644 index 0000000..465ba61 --- /dev/null +++ b/CMakeLua/Source/cmIncludeDirectoryCommand.cxx @@ -0,0 +1,141 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeDirectoryCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.27 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmIncludeDirectoryCommand.h" + +// cmIncludeDirectoryCommand +bool cmIncludeDirectoryCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + return true; + } + + std::vector::const_iterator i = args.begin(); + + bool before = this->Makefile->IsOn("CMAKE_INCLUDE_DIRECTORIES_BEFORE"); + bool system = false; + + if ((*i) == "BEFORE") + { + before = true; + ++i; + } + else if ((*i) == "AFTER") + { + before = false; + ++i; + } + + for(; i != args.end(); ++i) + { + if(*i == "SYSTEM") + { + system = true; + continue; + } + if(i->size() == 0) + { + const char* versionValue = + this->Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + const char* errorMessage + = "Empty Include Directory Passed into INCLUDE_DIRECTORIES command."; + if(atof(versionValue) < 2.5) + { + cmSystemTools::Error(errorMessage); + } + else + { + this->SetError(errorMessage); + return 0; + } + } + + this->AddDirectory(i->c_str(),before,system); + + } + return true; +} + +// do a lot of cleanup on the arguments because this is one place where folks +// sometimes take the output of a program and pass it directly into this +// command not thinking that a single argument could be filled with spaces +// and newlines etc liek below: +// +// " /foo/bar +// /boo/hoo /dingle/berry " +// +// ideally that should be three seperate arguments but when sucking the +// output from a program and passing it into a command the cleanup doesn't +// always happen +// +void cmIncludeDirectoryCommand::AddDirectory(const char *i, + bool before, + bool system) +{ + // break apart any line feed arguments + std::string ret = i; + std::string::size_type pos = 0; + if((pos = ret.find('\n', pos)) != std::string::npos) + { + if (pos) + { + this->AddDirectory(ret.substr(0,pos).c_str(), before, system); + } + if (ret.size()-pos-1) + { + this->AddDirectory(ret.substr(pos+1,ret.size()-pos-1).c_str(), + before, system); + } + return; + } + + // remove any leading or trailing spaces and \r + pos = ret.size()-1; + while(ret[pos] == ' ' || ret[pos] == '\r') + { + ret.erase(pos); + pos--; + } + pos = 0; + while(ret.size() && ret[pos] == ' ' || ret[pos] == '\r') + { + ret.erase(pos,1); + } + if (!ret.size()) + { + return; + } + + if (!cmSystemTools::IsOff(ret.c_str())) + { + cmSystemTools::ConvertToUnixSlashes(ret); + if(!cmSystemTools::FileIsFullPath(ret.c_str())) + { + std::string tmp = this->Makefile->GetStartDirectory(); + tmp += "/"; + tmp += ret; + ret = tmp; + } + } + this->Makefile->AddIncludeDirectory(ret.c_str(), before); + if(system) + { + this->Makefile->AddSystemIncludeDirectory(ret.c_str()); + } +} + diff --git a/CMakeLua/Source/cmIncludeDirectoryCommand.h b/CMakeLua/Source/cmIncludeDirectoryCommand.h new file mode 100644 index 0000000..1673c0e --- /dev/null +++ b/CMakeLua/Source/cmIncludeDirectoryCommand.h @@ -0,0 +1,86 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeDirectoryCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmIncludeDirectoryCommand_h +#define cmIncludeDirectoryCommand_h + +#include "cmCommand.h" + +/** \class cmIncludeDirectoryCommand + * \brief Add include directories to the build. + * + * cmIncludeDirectoryCommand is used to specify directory locations + * to search for included files. + */ +class cmIncludeDirectoryCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmIncludeDirectoryCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "include_directories";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Add include directories to the build."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " include_directories([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...)\n" + "Add the given directories to those searched by the compiler for " + "include files. By default the directories are appended onto " + "the current list of directories. This default behavior can be " + "changed by setting CMAKE_include_directories_BEFORE to ON. " + "By using BEFORE or AFTER you can select between appending and " + "prepending, independent from the default. " + "If the SYSTEM option is given the compiler will be told that the " + "directories are meant as system include directories on some " + "platforms."; + } + + cmTypeMacro(cmIncludeDirectoryCommand, cmCommand); + +protected: + // used internally + void AddDirectory(const char *arg, bool before, bool system); +}; + + + +#endif diff --git a/CMakeLua/Source/cmIncludeExternalMSProjectCommand.cxx b/CMakeLua/Source/cmIncludeExternalMSProjectCommand.cxx new file mode 100644 index 0000000..b3ecbc2 --- /dev/null +++ b/CMakeLua/Source/cmIncludeExternalMSProjectCommand.cxx @@ -0,0 +1,67 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeExternalMSProjectCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmIncludeExternalMSProjectCommand.h" + +// cmIncludeExternalMSProjectCommand +bool cmIncludeExternalMSProjectCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2) + { + this->SetError("INCLUDE_EXTERNAL_MSPROJECT called with incorrect " + "number of arguments"); + return false; + } +// only compile this for win32 to avoid coverage errors +#ifdef _WIN32 + if(this->Makefile->GetDefinition("WIN32")) + { + std::string location = args[1]; + + std::vector depends; + if (args.size() > 2) + { + for (unsigned int i=2; iMakefile->AddNewTarget(cmTarget::UTILITY, + utility_name.c_str()); + target->SetProperty("EXCLUDE_FROM_ALL","FALSE"); + std::vector no_outputs; + cmCustomCommandLines commandLines; + cmCustomCommandLine commandLine; + commandLine.push_back(args[0]); + commandLine.push_back(path); + commandLines.push_back(commandLine); + cmCustomCommand cc(no_outputs, depends, commandLines, 0, 0); + target->GetPostBuildCommands().push_back(cc); + } +#endif + return true; +} diff --git a/CMakeLua/Source/cmIncludeExternalMSProjectCommand.h b/CMakeLua/Source/cmIncludeExternalMSProjectCommand.h new file mode 100644 index 0000000..bbb37eb --- /dev/null +++ b/CMakeLua/Source/cmIncludeExternalMSProjectCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeExternalMSProjectCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmIncludeExternalMSProjectCommand_h +#define cmIncludeExternalMSProjectCommand_h + +#include "cmCommand.h" + +/** \class cmIncludeExternalMSProjectCommand + * \brief Specify an external MS project file for inclusion in the workspace. + * + * cmIncludeExternalMSProjectCommand is used to specify an externally + * generated Microsoft project file for inclusion in the default workspace + * generated by CMake. + */ +class cmIncludeExternalMSProjectCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmIncludeExternalMSProjectCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "include_external_msproject";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Include an external Microsoft project file in a workspace."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " include_external_msproject(projectname location\n" + " dep1 dep2 ...)\n" + "Includes an external Microsoft project in the generated workspace " + "file. Currently does nothing on UNIX."; + } + + cmTypeMacro(cmIncludeExternalMSProjectCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmIncludeRegularExpressionCommand.cxx b/CMakeLua/Source/cmIncludeRegularExpressionCommand.cxx new file mode 100644 index 0000000..481e922 --- /dev/null +++ b/CMakeLua/Source/cmIncludeRegularExpressionCommand.cxx @@ -0,0 +1,37 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeRegularExpressionCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmIncludeRegularExpressionCommand.h" + +// cmIncludeRegularExpressionCommand +bool cmIncludeRegularExpressionCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if((args.size() < 1) || (args.size() > 2)) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + this->Makefile->SetIncludeRegularExpression(args[0].c_str()); + + if(args.size() > 1) + { + this->Makefile->SetComplainRegularExpression(args[1].c_str()); + } + + return true; +} + diff --git a/CMakeLua/Source/cmIncludeRegularExpressionCommand.h b/CMakeLua/Source/cmIncludeRegularExpressionCommand.h new file mode 100644 index 0000000..ef87545 --- /dev/null +++ b/CMakeLua/Source/cmIncludeRegularExpressionCommand.h @@ -0,0 +1,80 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmIncludeRegularExpressionCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmIncludeRegularExpressionCommand_h +#define cmIncludeRegularExpressionCommand_h + +#include "cmCommand.h" + +/** \class cmIncludeRegularExpressionCommand + * \brief Set the regular expression for following #includes. + * + * cmIncludeRegularExpressionCommand is used to specify the regular expression + * that determines whether to follow a #include file in dependency checking. + */ +class cmIncludeRegularExpressionCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmIncludeRegularExpressionCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "include_regular_expression";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set the regular expression used for dependency checking."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " include_regular_expression(regex_match [regex_complain])\n" + "Set the regular expressions used in dependency checking. Only files " + "matching regex_match will be traced as dependencies. Only files " + "matching regex_complain will generate warnings if they cannot be " + "found " + "(standard header paths are not searched). The defaults are:\n" + " regex_match = \"^.*$\" (match everything)\n" + " regex_complain = \"^$\" (match empty string only)"; + } + + cmTypeMacro(cmIncludeRegularExpressionCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmInstallCommand.cxx b/CMakeLua/Source/cmInstallCommand.cxx new file mode 100644 index 0000000..3189d74 --- /dev/null +++ b/CMakeLua/Source/cmInstallCommand.cxx @@ -0,0 +1,1207 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 19:46:16 $ + Version: $Revision: 1.42 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallCommand.h" + +#include "cmInstallDirectoryGenerator.h" +#include "cmInstallFilesGenerator.h" +#include "cmInstallScriptGenerator.h" +#include "cmInstallTargetGenerator.h" +#include "cmInstallExportGenerator.h" +#include "cmInstallCommandArguments.h" + +#include + +static cmInstallTargetGenerator* CreateInstallTargetGenerator(cmTarget& target, + const cmInstallCommandArguments& args, bool impLib, bool forceOpt = false) +{ + return new cmInstallTargetGenerator(target, args.GetDestination().c_str(), + impLib, args.GetPermissions().c_str(), + args.GetConfigurations(), args.GetComponent().c_str(), + args.GetOptional() || forceOpt); +} + +static cmInstallFilesGenerator* CreateInstallFilesGenerator( + const std::vector& absFiles, + const cmInstallCommandArguments& args, bool programs) +{ + return new cmInstallFilesGenerator(absFiles, args.GetDestination().c_str(), + programs, args.GetPermissions().c_str(), + args.GetConfigurations(), args.GetComponent().c_str(), + args.GetRename().c_str(), args.GetOptional()); +} + + +// cmInstallCommand +bool cmInstallCommand::InitialPass(std::vector const& args, + cmExecutionStatus &) +{ + // Allow calling with no arguments so that arguments may be built up + // using a variable that may be left empty. + if(args.empty()) + { + return true; + } + + // Enable the install target. + this->Makefile->GetLocalGenerator() + ->GetGlobalGenerator()->EnableInstallTarget(); + + // Switch among the command modes. + if(args[0] == "SCRIPT") + { + return this->HandleScriptMode(args); + } + else if(args[0] == "CODE") + { + return this->HandleScriptMode(args); + } + else if(args[0] == "TARGETS") + { + return this->HandleTargetsMode(args); + } + else if(args[0] == "FILES") + { + return this->HandleFilesMode(args); + } + else if(args[0] == "PROGRAMS") + { + return this->HandleFilesMode(args); + } + else if(args[0] == "DIRECTORY") + { + return this->HandleDirectoryMode(args); + } + else if(args[0] == "EXPORT") + { + return this->HandleExportMode(args); + } + + // Unknown mode. + cmStdString e = "called with unknown mode "; + e += args[0]; + this->SetError(e.c_str()); + return false; +} + +//---------------------------------------------------------------------------- +bool cmInstallCommand::HandleScriptMode(std::vector const& args) +{ + std::string component("Unspecified"); + int componentCount = 0; + bool doing_script = false; + bool doing_code = false; + + // Scan the args once for COMPONENT. Only allow one. + // + for(size_t i=0; i < args.size(); ++i) + { + if(args[i] == "COMPONENT" && i+1 < args.size()) + { + ++componentCount; + ++i; + component = args[i]; + } + } + + if(componentCount>1) + { + this->SetError("given more than one COMPONENT for the SCRIPT or CODE " + "signature of the INSTALL command. " + "Use multiple INSTALL commands with one COMPONENT each."); + return false; + } + + // Scan the args again, this time adding install generators each time we + // encounter a SCRIPT or CODE arg: + // + for(size_t i=0; i < args.size(); ++i) + { + if(args[i] == "SCRIPT") + { + doing_script = true; + doing_code = false; + } + else if(args[i] == "CODE") + { + doing_script = false; + doing_code = true; + } + else if(args[i] == "COMPONENT") + { + doing_script = false; + doing_code = false; + } + else if(doing_script) + { + doing_script = false; + std::string script = args[i]; + if(!cmSystemTools::FileIsFullPath(script.c_str())) + { + script = this->Makefile->GetCurrentDirectory(); + script += "/"; + script += args[i]; + } + if(cmSystemTools::FileIsDirectory(script.c_str())) + { + this->SetError("given a directory as value of SCRIPT argument."); + return false; + } + this->Makefile->AddInstallGenerator( + new cmInstallScriptGenerator(script.c_str(), false, + component.c_str())); + } + else if(doing_code) + { + doing_code = false; + std::string code = args[i]; + this->Makefile->AddInstallGenerator( + new cmInstallScriptGenerator(code.c_str(), true, + component.c_str())); + } + } + + if(doing_script) + { + this->SetError("given no value for SCRIPT argument."); + return false; + } + if(doing_code) + { + this->SetError("given no value for CODE argument."); + return false; + } + + //Tell the global generator about any installation component names specified. + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(component.c_str()); + + return true; +} + + +/*struct InstallPart +{ + InstallPart(cmCommandArgumentsHelper* helper, const char* key, + cmCommandArgumentGroup* group); + cmCAStringVector argVector; + cmInstallCommandArguments args; +};*/ + +//---------------------------------------------------------------------------- +bool cmInstallCommand::HandleTargetsMode(std::vector const& args) +{ + // This is the TARGETS mode. + std::vector targets; + + cmCommandArgumentsHelper argHelper; + cmCommandArgumentGroup group; + cmCAStringVector genericArgVector (&argHelper,0); + cmCAStringVector archiveArgVector (&argHelper,"ARCHIVE",&group); + cmCAStringVector libraryArgVector (&argHelper,"LIBRARY",&group); + cmCAStringVector runtimeArgVector (&argHelper,"RUNTIME",&group); + cmCAStringVector frameworkArgVector (&argHelper,"FRAMEWORK",&group); + cmCAStringVector bundleArgVector (&argHelper,"BUNDLE",&group); + cmCAStringVector privateHeaderArgVector(&argHelper,"PRIVATE_HEADER",&group); + cmCAStringVector publicHeaderArgVector (&argHelper,"PUBLIC_HEADER",&group); + cmCAStringVector resourceArgVector (&argHelper,"RESOURCE",&group); + genericArgVector.Follows(0); + group.Follows(&genericArgVector); + + argHelper.Parse(&args, 0); + + std::vector unknownArgs; + cmInstallCommandArguments genericArgs; + cmCAStringVector targetList(&genericArgs.Parser, "TARGETS"); + cmCAString exports(&genericArgs.Parser,"EXPORT", &genericArgs.ArgumentGroup); + targetList.Follows(0); + genericArgs.ArgumentGroup.Follows(&targetList); + genericArgs.Parse(&genericArgVector.GetVector(), &unknownArgs); + bool success = genericArgs.Finalize(); + + cmInstallCommandArguments archiveArgs; + cmInstallCommandArguments libraryArgs; + cmInstallCommandArguments runtimeArgs; + cmInstallCommandArguments frameworkArgs; + cmInstallCommandArguments bundleArgs; + cmInstallCommandArguments privateHeaderArgs; + cmInstallCommandArguments publicHeaderArgs; + cmInstallCommandArguments resourceArgs; + + archiveArgs.Parse (&archiveArgVector.GetVector(), &unknownArgs); + libraryArgs.Parse (&libraryArgVector.GetVector(), &unknownArgs); + runtimeArgs.Parse (&runtimeArgVector.GetVector(), &unknownArgs); + frameworkArgs.Parse (&frameworkArgVector.GetVector(), &unknownArgs); + bundleArgs.Parse (&bundleArgVector.GetVector(), &unknownArgs); + privateHeaderArgs.Parse(&privateHeaderArgVector.GetVector(), &unknownArgs); + publicHeaderArgs.Parse (&publicHeaderArgVector.GetVector(), &unknownArgs); + resourceArgs.Parse (&resourceArgVector.GetVector(), &unknownArgs); + + if(!unknownArgs.empty()) + { + // Unknown argument. + cmOStringStream e; + e << "TARGETS given unknown argument \"" << unknownArgs[0] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + + // apply generic args + archiveArgs.SetGenericArguments(&genericArgs); + libraryArgs.SetGenericArguments(&genericArgs); + runtimeArgs.SetGenericArguments(&genericArgs); + frameworkArgs.SetGenericArguments(&genericArgs); + bundleArgs.SetGenericArguments(&genericArgs); + privateHeaderArgs.SetGenericArguments(&genericArgs); + publicHeaderArgs.SetGenericArguments(&genericArgs); + resourceArgs.SetGenericArguments(&genericArgs); + + success = success && archiveArgs.Finalize(); + success = success && libraryArgs.Finalize(); + success = success && runtimeArgs.Finalize(); + success = success && frameworkArgs.Finalize(); + success = success && bundleArgs.Finalize(); + success = success && privateHeaderArgs.Finalize(); + success = success && publicHeaderArgs.Finalize(); + success = success && resourceArgs.Finalize(); + + if(!success) + { + return false; + } + + // Check if there is something to do. + if(targetList.GetVector().empty()) + { + return true; + } + + // Check whether this is a DLL platform. + bool dll_platform = (this->Makefile->IsOn("WIN32") || + this->Makefile->IsOn("CYGWIN") || + this->Makefile->IsOn("MINGW")); + + for(std::vector::const_iterator + targetIt=targetList.GetVector().begin(); + targetIt!=targetList.GetVector().end(); + ++targetIt) + { + // Lookup this target in the current directory. + if(cmTarget* target=this->Makefile->FindTarget(targetIt->c_str())) + { + // Found the target. Check its type. + if(target->GetType() != cmTarget::EXECUTABLE && + target->GetType() != cmTarget::STATIC_LIBRARY && + target->GetType() != cmTarget::SHARED_LIBRARY && + target->GetType() != cmTarget::MODULE_LIBRARY) + { + cmOStringStream e; + e << "TARGETS given target \"" << (*targetIt) + << "\" which is not an executable, library, or module."; + this->SetError(e.str().c_str()); + return false; + } + // Store the target in the list to be installed. + targets.push_back(target); + } + else + { + // Did not find the target. + cmOStringStream e; + e << "TARGETS given target \"" << (*targetIt) + << "\" which does not exist in this directory."; + this->SetError(e.str().c_str()); + return false; + } + } + + // Generate install script code to install the given targets. + for(std::vector::iterator ti = targets.begin(); + ti != targets.end(); ++ti) + { + // Handle each target type. + cmTarget& target = *(*ti); + cmInstallTargetGenerator* archiveGenerator = 0; + cmInstallTargetGenerator* libraryGenerator = 0; + cmInstallTargetGenerator* runtimeGenerator = 0; + cmInstallTargetGenerator* frameworkGenerator = 0; + cmInstallTargetGenerator* bundleGenerator = 0; + cmInstallFilesGenerator* privateHeaderGenerator = 0; + cmInstallFilesGenerator* publicHeaderGenerator = 0; + cmInstallFilesGenerator* resourceGenerator = 0; + + switch(target.GetType()) + { + case cmTarget::SHARED_LIBRARY: + { + // Shared libraries are handled differently on DLL and non-DLL + // platforms. All windows platforms are DLL platforms including + // cygwin. Currently no other platform is a DLL platform. + if(dll_platform) + { + // This is a DLL platform. + if(!archiveArgs.GetDestination().empty()) + { + // The import library uses the ARCHIVE properties. + archiveGenerator = CreateInstallTargetGenerator(target, + archiveArgs, true); + } + if(!runtimeArgs.GetDestination().empty()) + { + // The DLL uses the RUNTIME properties. + runtimeGenerator = CreateInstallTargetGenerator(target, + runtimeArgs, false); + } + if ((archiveGenerator==0) && (runtimeGenerator==0)) + { + this->SetError("Library TARGETS given no DESTINATION!"); + return false; + } + } + else + { + // This is a non-DLL platform. + // If it is marked with FRAMEWORK property use the FRAMEWORK set of + // INSTALL properties. Otherwise, use the LIBRARY properties. + if(target.IsFrameworkOnApple()) + { + // Use the FRAMEWORK properties. + if (!frameworkArgs.GetDestination().empty()) + { + frameworkGenerator = CreateInstallTargetGenerator(target, + frameworkArgs, false); + } + else + { + cmOStringStream e; + e << "TARGETS given no FRAMEWORK DESTINATION for shared library " + "FRAMEWORK target \"" << target.GetName() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + else + { + // The shared library uses the LIBRARY properties. + if (!libraryArgs.GetDestination().empty()) + { + libraryGenerator = CreateInstallTargetGenerator(target, + libraryArgs, false); + } + else + { + cmOStringStream e; + e << "TARGETS given no LIBRARY DESTINATION for shared library " + "target \"" << target.GetName() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + } + } + break; + case cmTarget::STATIC_LIBRARY: + { + // Static libraries use ARCHIVE properties. + if (!archiveArgs.GetDestination().empty()) + { + archiveGenerator = CreateInstallTargetGenerator(target, archiveArgs, + false); + } + else + { + cmOStringStream e; + e << "TARGETS given no ARCHIVE DESTINATION for static library " + "target \"" << target.GetName() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + break; + case cmTarget::MODULE_LIBRARY: + { + // Modules use LIBRARY properties. + if (!libraryArgs.GetDestination().empty()) + { + libraryGenerator = CreateInstallTargetGenerator(target, libraryArgs, + false); + } + else + { + cmOStringStream e; + e << "TARGETS given no LIBRARY DESTINATION for module target \"" + << target.GetName() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + break; + case cmTarget::EXECUTABLE: + { + if(target.IsAppBundleOnApple()) + { + // Application bundles use the BUNDLE properties. + if (!bundleArgs.GetDestination().empty()) + { + bundleGenerator = CreateInstallTargetGenerator(target, bundleArgs, + false); + } + else + { + cmOStringStream e; + e << "TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE " + "executable target \"" << target.GetName() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + else + { + // Executables use the RUNTIME properties. + if (!runtimeArgs.GetDestination().empty()) + { + runtimeGenerator = CreateInstallTargetGenerator(target, + runtimeArgs, false); + } + else + { + cmOStringStream e; + e << "TARGETS given no RUNTIME DESTINATION for executable " + "target \"" << target.GetName() << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + + // On DLL platforms an executable may also have an import + // library. Install it to the archive destination if it + // exists. + if(dll_platform && !archiveArgs.GetDestination().empty() && + target.IsExecutableWithExports()) + { + // The import library uses the ARCHIVE properties. + archiveGenerator = CreateInstallTargetGenerator(target, + archiveArgs, true, true); + } + } + break; + default: + // This should never happen due to the above type check. + // Ignore the case. + break; + } + +// if(target.GetProperty("ASSOCIATED_FILES"); + + // These well-known sets of files are installed *automatically* for FRAMEWORK + // SHARED library targets on the Mac as part of installing the FRAMEWORK. + // For other target types or on other platforms, they are not installed + // automatically and so we need to create install files generators for them. + // + bool createInstallGeneratorsForTargetFileSets = true; + + if(target.IsFrameworkOnApple()) + { + createInstallGeneratorsForTargetFileSets = false; + } + + if(createInstallGeneratorsForTargetFileSets) + { + const char* files = target.GetProperty("PRIVATE_HEADER"); + if ((files) && (*files)) + { + std::vector relFiles; + cmSystemTools::ExpandListArgument(files, relFiles); + std::vector absFiles; + if (!this->MakeFilesFullPath("PRIVATE_HEADER", relFiles, absFiles)) + { + return false; + } + + // Create the files install generator. + if (!privateHeaderArgs.GetDestination().empty()) + { + privateHeaderGenerator = CreateInstallFilesGenerator(absFiles, + privateHeaderArgs, false); + } + else + { + cmOStringStream e; + e << "INSTALL TARGETS - target " << target.GetName() << " has " + << "PRIVATE_HEADER files but no PRIVATE_HEADER DESTINATION."; + cmSystemTools::Message(e.str().c_str(), "Warning"); + } + } + + files = target.GetProperty("PUBLIC_HEADER"); + if ((files) && (*files)) + { + std::vector relFiles; + cmSystemTools::ExpandListArgument(files, relFiles); + std::vector absFiles; + if (!this->MakeFilesFullPath("PUBLIC_HEADER", relFiles, absFiles)) + { + return false; + } + + // Create the files install generator. + if (!publicHeaderArgs.GetDestination().empty()) + { + publicHeaderGenerator = CreateInstallFilesGenerator(absFiles, + publicHeaderArgs, false); + } + else + { + cmOStringStream e; + e << "INSTALL TARGETS - target " << target.GetName() << " has " + << "PUBLIC_HEADER files but no PUBLIC_HEADER DESTINATION."; + cmSystemTools::Message(e.str().c_str(), "Warning"); + } + } + + files = target.GetProperty("RESOURCE"); + if ((files) && (*files)) + { + std::vector relFiles; + cmSystemTools::ExpandListArgument(files, relFiles); + std::vector absFiles; + if (!this->MakeFilesFullPath("RESOURCE", relFiles, absFiles)) + { + return false; + } + + // Create the files install generator. + if (!resourceArgs.GetDestination().empty()) + { + resourceGenerator = CreateInstallFilesGenerator(absFiles, + resourceArgs, false); + } + else + { + cmOStringStream e; + e << "INSTALL TARGETS - target " << target.GetName() << " has " + << "RESOURCE files but no RESOURCE DESTINATION."; + cmSystemTools::Message(e.str().c_str(), "Warning"); + } + } + } + + this->Makefile->AddInstallGenerator(archiveGenerator); + this->Makefile->AddInstallGenerator(libraryGenerator); + this->Makefile->AddInstallGenerator(runtimeGenerator); + this->Makefile->AddInstallGenerator(frameworkGenerator); + this->Makefile->AddInstallGenerator(bundleGenerator); + this->Makefile->AddInstallGenerator(privateHeaderGenerator); + this->Makefile->AddInstallGenerator(publicHeaderGenerator); + this->Makefile->AddInstallGenerator(resourceGenerator); + + if (!exports.GetString().empty()) + { + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddTargetToExports(exports.GetCString(), &target, + archiveGenerator, runtimeGenerator, + libraryGenerator, frameworkGenerator, + bundleGenerator, publicHeaderGenerator); + } + } + + // Tell the global generator about any installation component names specified + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(archiveArgs.GetComponent().c_str()); + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(libraryArgs.GetComponent().c_str()); + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(runtimeArgs.GetComponent().c_str()); + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(frameworkArgs.GetComponent().c_str()); + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(bundleArgs.GetComponent().c_str()); + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(privateHeaderArgs.GetComponent().c_str()); + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(publicHeaderArgs.GetComponent().c_str()); + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(resourceArgs.GetComponent().c_str()); + + return true; +} + +//---------------------------------------------------------------------------- +bool cmInstallCommand::HandleFilesMode(std::vector const& args) +{ + // This is the FILES mode. + bool programs = (args[0] == "PROGRAMS"); + cmInstallCommandArguments ica; + cmCAStringVector files(&ica.Parser, programs ? "PROGRAMS" : "FILES"); + files.Follows(0); + ica.ArgumentGroup.Follows(&files); + std::vector unknownArgs; + ica.Parse(&args, &unknownArgs); + + if(!unknownArgs.empty()) + { + // Unknown argument. + cmOStringStream e; + e << args[0] << " given unknown argument \"" << unknownArgs[0] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + + // Check if there is something to do. + if(files.GetVector().empty()) + { + return true; + } + + if(!ica.GetRename().empty() && files.GetVector().size() > 1) + { + // The rename option works only with one file. + cmOStringStream e; + e << args[0] << " given RENAME option with more than one file."; + this->SetError(e.str().c_str()); + return false; + } + + std::vector absFiles; + if (!this->MakeFilesFullPath(args[0].c_str(), files.GetVector(), absFiles)) + { + return false; + } + + if (!ica.Finalize()) + { + return false; + } + + if(ica.GetDestination().empty()) + { + // A destination is required. + cmOStringStream e; + e << args[0] << " given no DESTINATION!"; + this->SetError(e.str().c_str()); + return false; + } + + // Create the files install generator. + this->Makefile->AddInstallGenerator( + CreateInstallFilesGenerator(absFiles, ica, programs)); + + //Tell the global generator about any installation component names specified. + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(ica.GetComponent().c_str()); + + return true; +} + +//---------------------------------------------------------------------------- +bool +cmInstallCommand::HandleDirectoryMode(std::vector const& args) +{ + bool doing_dirs = true; + bool doing_destination = false; + bool doing_pattern = false; + bool doing_regex = false; + bool doing_permissions_file = false; + bool doing_permissions_dir = false; + bool doing_permissions_match = false; + bool doing_configurations = false; + bool doing_component = false; + bool in_match_mode = false; + std::vector dirs; + const char* destination = 0; + std::string permissions_file; + std::string permissions_dir; + std::vector configurations; + std::string component = "Unspecified"; + std::string literal_args; + for(unsigned int i=1; i < args.size(); ++i) + { + if(args[i] == "DESTINATION") + { + if(in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" after PATTERN or REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + // Switch to setting the destination property. + doing_dirs = false; + doing_destination = true; + doing_pattern = false; + doing_regex = false; + doing_permissions_file = false; + doing_permissions_dir = false; + doing_configurations = false; + doing_component = false; + } + else if(args[i] == "PATTERN") + { + // Switch to a new pattern match rule. + doing_dirs = false; + doing_destination = false; + doing_pattern = true; + doing_regex = false; + doing_permissions_file = false; + doing_permissions_dir = false; + doing_permissions_match = false; + doing_configurations = false; + doing_component = false; + in_match_mode = true; + } + else if(args[i] == "REGEX") + { + // Switch to a new regex match rule. + doing_dirs = false; + doing_destination = false; + doing_pattern = false; + doing_regex = true; + doing_permissions_file = false; + doing_permissions_dir = false; + doing_permissions_match = false; + doing_configurations = false; + doing_component = false; + in_match_mode = true; + } + else if(args[i] == "EXCLUDE") + { + // Add this property to the current match rule. + if(!in_match_mode || doing_pattern || doing_regex) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" before a PATTERN or REGEX is given."; + this->SetError(e.str().c_str()); + return false; + } + literal_args += " EXCLUDE"; + doing_permissions_match = false; + } + else if(args[i] == "PERMISSIONS") + { + if(!in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" before a PATTERN or REGEX is given."; + this->SetError(e.str().c_str()); + return false; + } + + // Switch to setting the current match permissions property. + literal_args += " PERMISSIONS"; + doing_permissions_match = true; + } + else if(args[i] == "FILE_PERMISSIONS") + { + if(in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" after PATTERN or REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + // Switch to setting the file permissions property. + doing_dirs = false; + doing_destination = false; + doing_pattern = false; + doing_regex = false; + doing_permissions_file = true; + doing_permissions_dir = false; + doing_configurations = false; + doing_component = false; + } + else if(args[i] == "DIRECTORY_PERMISSIONS") + { + if(in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" after PATTERN or REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + // Switch to setting the directory permissions property. + doing_dirs = false; + doing_destination = false; + doing_pattern = false; + doing_regex = false; + doing_permissions_file = false; + doing_permissions_dir = true; + doing_configurations = false; + doing_component = false; + } + else if(args[i] == "USE_SOURCE_PERMISSIONS") + { + if(in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" after PATTERN or REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + // Add this option literally. + doing_dirs = false; + doing_destination = false; + doing_pattern = false; + doing_regex = false; + doing_permissions_file = false; + doing_permissions_dir = false; + doing_configurations = false; + doing_component = false; + literal_args += " USE_SOURCE_PERMISSIONS"; + } + else if(args[i] == "FILES_MATCHING") + { + if(in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" after PATTERN or REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + // Add this option literally. + doing_dirs = false; + doing_destination = false; + doing_pattern = false; + doing_regex = false; + doing_permissions_file = false; + doing_permissions_dir = false; + doing_permissions_match = false; + doing_configurations = false; + doing_component = false; + literal_args += " FILES_MATCHING"; + } + else if(args[i] == "CONFIGURATIONS") + { + if(in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" after PATTERN or REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + // Switch to setting the configurations property. + doing_dirs = false; + doing_destination = false; + doing_pattern = false; + doing_regex = false; + doing_permissions_file = false; + doing_permissions_dir = false; + doing_configurations = true; + doing_component = false; + } + else if(args[i] == "COMPONENT") + { + if(in_match_mode) + { + cmOStringStream e; + e << args[0] << " does not allow \"" + << args[i] << "\" after PATTERN or REGEX."; + this->SetError(e.str().c_str()); + return false; + } + + // Switch to setting the component property. + doing_dirs = false; + doing_destination = false; + doing_pattern = false; + doing_regex = false; + doing_permissions_file = false; + doing_permissions_dir = false; + doing_configurations = false; + doing_component = true; + } + else if(doing_dirs) + { + // Convert this directory to a full path. + std::string dir = args[i]; + if(!cmSystemTools::FileIsFullPath(dir.c_str())) + { + dir = this->Makefile->GetCurrentDirectory(); + dir += "/"; + dir += args[i]; + } + + // Make sure the name is a directory. + if(cmSystemTools::FileExists(dir.c_str()) && + !cmSystemTools::FileIsDirectory(dir.c_str())) + { + cmOStringStream e; + e << args[0] << " given non-directory \"" + << args[i] << "\" to install."; + this->SetError(e.str().c_str()); + return false; + } + + // Store the directory for installation. + dirs.push_back(dir); + } + else if(doing_configurations) + { + configurations.push_back(args[i]); + } + else if(doing_destination) + { + destination = args[i].c_str(); + doing_destination = false; + } + else if(doing_pattern) + { + // Convert the pattern to a regular expression. Require a + // leading slash and trailing end-of-string in the matched + // string to make sure the pattern matches only whole file + // names. + literal_args += " REGEX \"/"; + std::string regex = cmsys::Glob::PatternToRegex(args[i], false); + cmSystemTools::ReplaceString(regex, "\\", "\\\\"); + literal_args += regex; + literal_args += "$\""; + doing_pattern = false; + } + else if(doing_regex) + { + literal_args += " REGEX \""; + // Match rules are case-insensitive on some platforms. +#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) + std::string regex = cmSystemTools::LowerCase(args[i]); +#else + std::string regex = args[i]; +#endif + cmSystemTools::ReplaceString(regex, "\\", "\\\\"); + literal_args += regex; + literal_args += "\""; + doing_regex = false; + } + else if(doing_component) + { + component = args[i]; + doing_component = false; + } + else if(doing_permissions_file) + { + // Check the requested permission. + if(!cmInstallCommandArguments::CheckPermissions(args[i],permissions_file)) + { + cmOStringStream e; + e << args[0] << " given invalid file permission \"" + << args[i] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + else if(doing_permissions_dir) + { + // Check the requested permission. + if(!cmInstallCommandArguments::CheckPermissions(args[i],permissions_dir)) + { + cmOStringStream e; + e << args[0] << " given invalid directory permission \"" + << args[i] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + else if(doing_permissions_match) + { + // Check the requested permission. + if(!cmInstallCommandArguments::CheckPermissions(args[i], literal_args)) + { + cmOStringStream e; + e << args[0] << " given invalid permission \"" + << args[i] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + else + { + // Unknown argument. + cmOStringStream e; + e << args[0] << " given unknown argument \"" << args[i] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + + // Support installing an empty directory. + if(dirs.empty() && destination) + { + dirs.push_back(""); + } + + // Check if there is something to do. + if(dirs.empty()) + { + return true; + } + if(!destination) + { + // A destination is required. + cmOStringStream e; + e << args[0] << " given no DESTINATION!"; + this->SetError(e.str().c_str()); + return false; + } + + // Create the directory install generator. + this->Makefile->AddInstallGenerator( + new cmInstallDirectoryGenerator(dirs, destination, + permissions_file.c_str(), + permissions_dir.c_str(), + configurations, + component.c_str(), + literal_args.c_str())); + + // Tell the global generator about any installation component names + // specified. + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->AddInstallComponent(component.c_str()); + + return true; +} + +//---------------------------------------------------------------------------- +bool cmInstallCommand::HandleExportMode(std::vector const& args) +{ + // This is the EXPORT mode. + cmInstallCommandArguments ica; + cmCAString exp(&ica.Parser, "EXPORT"); + cmCAString name_space(&ica.Parser, "NAMESPACE", &ica.ArgumentGroup); + cmCAString filename(&ica.Parser, "FILE", &ica.ArgumentGroup); + exp.Follows(0); + + ica.ArgumentGroup.Follows(&exp); + std::vector unknownArgs; + ica.Parse(&args, &unknownArgs); + + if (!unknownArgs.empty()) + { + // Unknown argument. + cmOStringStream e; + e << args[0] << " given unknown argument \"" << unknownArgs[0] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + + if (!ica.Finalize()) + { + return false; + } + + // Make sure there is a destination. + if(ica.GetDestination().empty()) + { + // A destination is required. + cmOStringStream e; + e << args[0] << " given no DESTINATION!"; + this->SetError(e.str().c_str()); + return false; + } + + // Check the file name. + std::string fname = filename.GetString(); + if(fname.find_first_of(":/\\") != fname.npos) + { + cmOStringStream e; + e << args[0] << " given invalid export file name \"" << fname << "\". " + << "The FILE argument may not contain a path. " + << "Specify the path in the DESTINATION argument."; + this->SetError(e.str().c_str()); + return false; + } + + // Check the file extension. + if(!fname.empty() && + cmSystemTools::GetFilenameLastExtension(fname) != ".cmake") + { + cmOStringStream e; + e << args[0] << " given invalid export file name \"" << fname << "\". " + << "The FILE argument must specify a name ending in \".cmake\"."; + this->SetError(e.str().c_str()); + return false; + } + + // Construct the file name. + if(fname.empty()) + { + fname = exp.GetString(); + fname += ".cmake"; + + if(fname.find_first_of(":/\\") != fname.npos) + { + cmOStringStream e; + e << args[0] << " given export name \"" << exp.GetString() << "\". " + << "This name cannot be safely converted to a file name. " + << "Specify a different export name or use the FILE option to set " + << "a file name explicitly."; + this->SetError(e.str().c_str()); + return false; + } + } + + // Create the export install generator. + cmInstallExportGenerator* exportGenerator = + new cmInstallExportGenerator( + exp.GetCString(), ica.GetDestination().c_str(), + ica.GetPermissions().c_str(), ica.GetConfigurations(), + ica.GetComponent().c_str(), fname.c_str(), + name_space.GetCString(), this->Makefile); + this->Makefile->AddInstallGenerator(exportGenerator); + + return true; +} + +bool cmInstallCommand::MakeFilesFullPath(const char* modeName, + const std::vector& relFiles, + std::vector& absFiles) +{ + for(std::vector::const_iterator fileIt = relFiles.begin(); + fileIt != relFiles.end(); + ++fileIt) + { + std::string file = (*fileIt); + if(!cmSystemTools::FileIsFullPath(file.c_str())) + { + file = this->Makefile->GetCurrentDirectory(); + file += "/"; + file += *fileIt; + } + + // Make sure the file is not a directory. + if(cmSystemTools::FileIsDirectory(file.c_str())) + { + cmOStringStream e; + e << modeName << " given directory \"" << (*fileIt) << "\" to install."; + this->SetError(e.str().c_str()); + return false; + } + // Store the file for installation. + absFiles.push_back(file); + } + return true; +} diff --git a/CMakeLua/Source/cmInstallCommand.h b/CMakeLua/Source/cmInstallCommand.h new file mode 100644 index 0000000..1ba84bc --- /dev/null +++ b/CMakeLua/Source/cmInstallCommand.h @@ -0,0 +1,333 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/28 20:12:12 $ + Version: $Revision: 1.28 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallCommand_h +#define cmInstallCommand_h + +#include "cmCommand.h" + +/** \class cmInstallCommand + * \brief Specifies where to install some files + * + * cmInstallCommand is a general-purpose interface command for + * specifying install rules. + */ +class cmInstallCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmInstallCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "install";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Specify rules to run at install time."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "This command generates installation rules for a project. " + "Rules specified by calls to this command within a source directory " + "are executed in order during installation. " + "The order across directories is not defined." + "\n" + "There are multiple signatures for this command. Some of them define " + "installation properties for files and targets. Properties common to " + "multiple signatures are covered here but they are valid only for " + "signatures that specify them.\n" + "DESTINATION arguments specify " + "the directory on disk to which a file will be installed. " + "If a full path (with a leading slash or drive letter) is given it " + "is used directly. If a relative path is given it is interpreted " + "relative to the value of CMAKE_INSTALL_PREFIX.\n" + "PERMISSIONS arguments specify permissions for installed files. " + "Valid permissions are " + "OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, " + "GROUP_READ, GROUP_WRITE, GROUP_EXECUTE, " + "WORLD_READ, WORLD_WRITE, WORLD_EXECUTE, " + "SETUID, and SETGID. " + "Permissions that do not make sense on certain platforms are ignored " + "on those platforms.\n" + "The CONFIGURATIONS argument specifies a list of build configurations " + "for which the install rule applies (Debug, Release, etc.).\n" + "The COMPONENT argument specifies an installation component name " + "with which the install rule is associated, such as \"runtime\" or " + "\"development\". During component-specific installation only " + "install rules associated with the given component name will be " + "executed. During a full installation all components are installed.\n" + "The RENAME argument specifies a name for an installed file that " + "may be different from the original file. Renaming is allowed only " + "when a single file is installed by the command.\n" + "The OPTIONAL argument specifies that it is not an error if the " + "file to be installed does not exist. " + "\n" + "The TARGETS signature:\n" + " install(TARGETS targets... [EXPORT ]\n" + " [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|\n" + " PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]\n" + " [DESTINATION

    ]\n" + " [PERMISSIONS permissions...]\n" + " [CONFIGURATIONS [Debug|Release|...]]\n" + " [COMPONENT ]\n" + " [OPTIONAL]\n" + " ] [...])\n" + "The TARGETS form specifies rules for installing targets from a " + "project. There are five kinds of target files that may be " + "installed: archive, library, runtime, framework, and bundle. " + + "Executables are treated as runtime targets, except that those " + "marked with the MACOSX_BUNDLE property are treated as bundle " + "targets on OS X. " + "Static libraries are always treated as archive targets. " + "Module libraries are always treated as library targets. " + "For non-DLL platforms shared libraries are treated as library " + "targets, except that those marked with the FRAMEWORK property " + "are treated as framework targets on OS X. " + "For DLL platforms the DLL part of a shared library is treated as " + "a runtime target and the corresponding import library is treated as " + "an archive target. " + "All Windows-based systems including Cygwin are DLL platforms. " + "The ARCHIVE, LIBRARY, RUNTIME, and FRAMEWORK " + "arguments change the type of target to which the subsequent " + "properties " + "apply. If none is given the installation properties apply to " + "all target types. If only one is given then only targets of that " + "type will be installed (which can be used to install just a DLL or " + "just an import library)." + "\n" + "The PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE arguments cause " + "subsequent properties to be applied to installing a FRAMEWORK " + "shared library target's associated files on non-Apple platforms. " + "Rules defined by these arguments are ignored on Apple platforms " + "because the associated files are installed into the appropriate " + "locations inside the framework folder. " + "See documentation of the PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE " + "target properties for details." + "\n" + "One or more groups of properties may be specified in a single call " + "to the TARGETS form of this command. A target may be installed more " + "than once to different locations. Consider hypothetical " + "targets \"myExe\", \"mySharedLib\", and \"myStaticLib\". The code\n" + " install(TARGETS myExe mySharedLib myStaticLib\n" + " RUNTIME DESTINATION bin\n" + " LIBRARY DESTINATION lib\n" + " ARCHIVE DESTINATION lib/static)\n" + " install(TARGETS mySharedLib DESTINATION /some/full/path)\n" + "will install myExe to /bin and myStaticLib to " + "/lib/static. " + "On non-DLL platforms mySharedLib will be installed to /lib " + "and /some/full/path. On DLL platforms the mySharedLib DLL will be " + "installed to /bin and /some/full/path and its import library " + "will be installed to /lib/static and /some/full/path. " + "On non-DLL platforms mySharedLib will be installed to /lib " + "and /some/full/path." + "\n" + "The EXPORT option associates the installed target files with an " + "export called . " + "It must appear before any RUNTIME, LIBRARY, or ARCHIVE options. " + "See documentation of the install(EXPORT ...) signature below for " + "details." + "\n" + "Installing a target with EXCLUDE_FROM_ALL set to true has " + "undefined behavior." + "\n" + "The FILES signature:\n" + " install(FILES files... DESTINATION \n" + " [PERMISSIONS permissions...]\n" + " [CONFIGURATIONS [Debug|Release|...]]\n" + " [COMPONENT ]\n" + " [RENAME ] [OPTIONAL])\n" + "The FILES form specifies rules for installing files for a " + "project. File names given as relative paths are interpreted with " + "respect to the current source directory. Files installed by this " + "form are by default given permissions OWNER_WRITE, OWNER_READ, " + "GROUP_READ, and WORLD_READ if no PERMISSIONS argument is given." + "\n" + "The PROGRAMS signature:\n" + " install(PROGRAMS files... DESTINATION \n" + " [PERMISSIONS permissions...]\n" + " [CONFIGURATIONS [Debug|Release|...]]\n" + " [COMPONENT ]\n" + " [RENAME ] [OPTIONAL])\n" + "The PROGRAMS form is identical to the FILES form except that the " + "default permissions for the installed file also include " + "OWNER_EXECUTE, GROUP_EXECUTE, and WORLD_EXECUTE. " + "This form is intended to install programs that are not targets, " + "such as shell scripts. Use the TARGETS form to install targets " + "built within the project." + "\n" + "The DIRECTORY signature:\n" + " install(DIRECTORY dirs... DESTINATION \n" + " [FILE_PERMISSIONS permissions...]\n" + " [DIRECTORY_PERMISSIONS permissions...]\n" + " [USE_SOURCE_PERMISSIONS]\n" + " [CONFIGURATIONS [Debug|Release|...]]\n" + " [COMPONENT ] [FILES_MATCHING]\n" + " [[PATTERN | REGEX ]\n" + " [EXCLUDE] [PERMISSIONS permissions...]] [...])\n" + "The DIRECTORY form installs contents of one or more directories " + "to a given destination. " + "The directory structure is copied verbatim to the destination. " + "The last component of each directory name is appended to the " + "destination directory but a trailing slash may be used to " + "avoid this because it leaves the last component empty. " + "Directory names given as relative paths are interpreted with " + "respect to the current source directory. " + "If no input directory names are given the destination directory " + "will be created but nothing will be installed into it. " + "The FILE_PERMISSIONS and DIRECTORY_PERMISSIONS options specify " + "permissions given to files and directories in the destination. " + "If USE_SOURCE_PERMISSIONS is specified and FILE_PERMISSIONS is not, " + "file permissions will be copied from the source directory structure. " + "If no permissions are specified files will be given the default " + "permissions specified in the FILES form of the command, and the " + "directories will be given the default permissions specified in the " + "PROGRAMS form of the command.\n" + + "Installation of directories may be controlled with fine granularity " + "using the PATTERN or REGEX options. These \"match\" options specify a " + "globbing pattern or regular expression to match directories or files " + "encountered within input directories. They may be used to apply " + "certain options (see below) to a subset of the files and directories " + "encountered. " + "The full path to each input file or directory " + "(with forward slashes) is matched against the expression. " + "A PATTERN will match only complete file names: the portion of the " + "full path matching the pattern must occur at the end of the file name " + "and be preceded by a slash. " + "A REGEX will match any portion of the full path but it may use " + "'/' and '$' to simulate the PATTERN behavior. " + "By default all files and directories are installed whether " + "or not they are matched. " + "The FILES_MATCHING option may be given before the first match option " + "to disable installation of files (but not directories) not matched by " + "any expression. For example, the code\n" + " install(DIRECTORY src/ DESTINATION include/myproj\n" + " FILES_MATCHING PATTERN \"*.h\")\n" + "will extract and install header files from a source tree.\n" + "Some options may follow a PATTERN or REGEX expression and are " + "applied only to files or directories matching them. " + "The EXCLUDE option will skip the matched file or directory. " + "The PERMISSIONS option overrides the permissions setting for the " + "matched file or directory. " + "For example the code\n" + " install(DIRECTORY icons scripts/ DESTINATION share/myproj\n" + " PATTERN \"CVS\" EXCLUDE\n" + " PATTERN \"scripts/*\"\n" + " PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ\n" + " GROUP_EXECUTE GROUP_READ)\n" + "will install the icons directory to share/myproj/icons and the " + "scripts directory to share/myproj. The icons will get default file " + "permissions, the scripts will be given specific permissions, and " + "any CVS directories will be excluded." + "\n" + "The SCRIPT and CODE signature:\n" + " install([[SCRIPT ] [CODE ]] [...])\n" + "The SCRIPT form will invoke the given CMake script files during " + "installation. If the script file name is a relative path " + "it will be interpreted with respect to the current source directory. " + "The CODE form will invoke the given CMake code during installation. " + "Code is specified as a single argument inside a double-quoted string. " + "For example, the code\n" + " install(CODE \"MESSAGE(\\\"Sample install message.\\\")\")\n" + "will print a message during installation.\n" + "" + "The EXPORT signature:\n" + " install(EXPORT DESTINATION \n" + " [NAMESPACE ] [FILE .cmake]\n" + " [PERMISSIONS permissions...]\n" + " [CONFIGURATIONS [Debug|Release|...]]\n" + " [COMPONENT ])\n" + "The EXPORT form generates and installs a CMake file containing code " + "to import targets from the installation tree into another project. " + "Target installations are associated with the export " + "using the EXPORT option of the install(TARGETS ...) signature " + "documented above. The NAMESPACE option will prepend to " + "the target names as they are written to the import file. " + "By default the generated file will be called .cmake but " + "the FILE option may be used to specify a different name. The value " + "given to the FILE option must be a file name with the \".cmake\" " + "extension. " + "If a CONFIGURATIONS option is given then the file will only be " + "installed when one of the named configurations is installed. " + "Additionally, the generated import file will reference only the " + "matching target configurations. " + "If a COMPONENT option is specified that does not match that given " + "to the targets associated with the behavior is " + "undefined. " + "If a library target is included in the export but " + "a target to which it links is not included the behavior is " + "unspecified." + "\n" + "The EXPORT form is useful to help outside projects use targets built " + "and installed by the current project. For example, the code\n" + " install(TARGETS myexe EXPORT myproj DESTINATION bin)\n" + " install(EXPORT myproj NAMESPACE mp_ DESTINATION lib/myproj)\n" + "will install the executable myexe to /bin and code to import " + "it in the file \"/lib/myproj/myproj.cmake\". " + "An outside project may load this file with the include command " + "and reference the myexe executable from the installation tree using " + "the imported target name mp_myexe as if the target were built " + "in its own tree." + "\n" + "NOTE: This command supercedes the INSTALL_TARGETS command and the " + "target properties PRE_INSTALL_SCRIPT and POST_INSTALL_SCRIPT. " + "It also replaces the FILES forms of the INSTALL_FILES and " + "INSTALL_PROGRAMS commands. " + "The processing order of these install rules relative to those " + "generated by INSTALL_TARGETS, INSTALL_FILES, and INSTALL_PROGRAMS " + "commands is not defined.\n" + ; + } + + cmTypeMacro(cmInstallCommand, cmCommand); + +private: + bool HandleScriptMode(std::vector const& args); + bool HandleTargetsMode(std::vector const& args); + bool HandleFilesMode(std::vector const& args); + bool HandleDirectoryMode(std::vector const& args); + bool HandleExportMode(std::vector const& args); + bool MakeFilesFullPath(const char* modeName, + const std::vector& relFiles, + std::vector& absFiles); +}; + + +#endif diff --git a/CMakeLua/Source/cmInstallCommandArguments.cxx b/CMakeLua/Source/cmInstallCommandArguments.cxx new file mode 100644 index 0000000..206908d --- /dev/null +++ b/CMakeLua/Source/cmInstallCommandArguments.cxx @@ -0,0 +1,176 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallCommandArguments.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallCommandArguments.h" +#include "cmSystemTools.h" + +// Table of valid permissions. +const char* cmInstallCommandArguments::PermissionsTable[] = +{ + "OWNER_READ", "OWNER_WRITE", "OWNER_EXECUTE", + "GROUP_READ", "GROUP_WRITE", "GROUP_EXECUTE", + "WORLD_READ", "WORLD_WRITE", "WORLD_EXECUTE", + "SETUID", "SETGID", 0 +}; + +const std::string cmInstallCommandArguments::EmptyString; + +cmInstallCommandArguments::cmInstallCommandArguments() +:Parser() +,ArgumentGroup() +,Destination (&Parser, "DESTINATION" , &ArgumentGroup) +,Component (&Parser, "COMPONENT" , &ArgumentGroup) +,Rename (&Parser, "RENAME" , &ArgumentGroup) +,Permissions (&Parser, "PERMISSIONS" , &ArgumentGroup) +,Configurations(&Parser, "CONFIGURATIONS", &ArgumentGroup) +,Optional (&Parser, "OPTIONAL" , &ArgumentGroup) +,GenericArguments(0) +{ + this->Component.SetDefaultString("Unspecified"); +} + +const std::string& cmInstallCommandArguments::GetDestination() const +{ + if (!this->DestinationString.empty()) + { + return this->DestinationString; + } + if (this->GenericArguments!=0) + { + return this->GenericArguments->GetDestination(); + } + return this->EmptyString; +} + +const std::string& cmInstallCommandArguments::GetComponent() const +{ + if (!this->Component.GetString().empty()) + { + return this->Component.GetString(); + } + if (this->GenericArguments!=0) + { + return this->GenericArguments->GetComponent(); + } + return this->EmptyString; +} + +const std::string& cmInstallCommandArguments::GetRename() const +{ + if (!this->Rename.GetString().empty()) + { + return this->Rename.GetString(); + } + if (this->GenericArguments!=0) + { + return this->GenericArguments->GetRename(); + } + return this->EmptyString; +} + +const std::string& cmInstallCommandArguments::GetPermissions() const +{ + if (!this->PermissionsString.empty()) + { + return this->PermissionsString; + } + if (this->GenericArguments!=0) + { + return this->GenericArguments->GetPermissions(); + } + return this->EmptyString; +} + +bool cmInstallCommandArguments::GetOptional() const +{ + if (this->Optional.IsEnabled()) + { + return true; + } + if (this->GenericArguments!=0) + { + return this->GenericArguments->GetOptional(); + } + return false; +} + +const std::vector& + cmInstallCommandArguments::GetConfigurations() const +{ + if (!this->Configurations.GetVector().empty()) + { + return this->Configurations.GetVector(); + } + if (this->GenericArguments!=0) + { + return this->GenericArguments->GetConfigurations(); + } + return this->Configurations.GetVector(); +} + + +bool cmInstallCommandArguments::Finalize() +{ + if (!this->CheckPermissions()) + { + return false; + } + this->DestinationString = this->Destination.GetString(); + cmSystemTools::ConvertToUnixSlashes(this->DestinationString); + return true; +} + +void cmInstallCommandArguments::Parse(const std::vector* args, + std::vector* unconsumedArgs) +{ + this->Parser.Parse(args, unconsumedArgs); +} + + +bool cmInstallCommandArguments::CheckPermissions() +{ + this->PermissionsString = ""; + for(std::vector::const_iterator + permIt = this->Permissions.GetVector().begin(); + permIt != this->Permissions.GetVector().end(); + ++permIt) + { + if (!this->CheckPermissions(*permIt, this->PermissionsString)) + { + return false; + } + } + return true; +} + +bool cmInstallCommandArguments::CheckPermissions( + const std::string& onePermission, std::string& permissions) +{ + // Check the permission against the table. + for(const char** valid = cmInstallCommandArguments::PermissionsTable; + *valid; ++valid) + { + if(onePermission == *valid) + { + // This is a valid permission. + permissions += " "; + permissions += onePermission; + return true; + } + } + // This is not a valid permission. + return false; +} diff --git a/CMakeLua/Source/cmInstallCommandArguments.h b/CMakeLua/Source/cmInstallCommandArguments.h new file mode 100644 index 0000000..fae492b --- /dev/null +++ b/CMakeLua/Source/cmInstallCommandArguments.h @@ -0,0 +1,67 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallCommandArguments.h,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmInstallCommandArguments_h +#define cmInstallCommandArguments_h + +#include "cmStandardIncludes.h" +#include "cmCommandArgumentsHelper.h" + +class cmInstallCommandArguments +{ + public: + cmInstallCommandArguments(); + void SetGenericArguments(cmInstallCommandArguments* args) + {this->GenericArguments = args;} + void Parse(const std::vector* args, + std::vector* unconsumedArgs); + + // Compute destination path.and check permissions + bool Finalize(); + + const std::string& GetDestination() const; + const std::string& GetComponent() const; + const std::string& GetRename() const; + const std::string& GetPermissions() const; + const std::vector& GetConfigurations() const; + bool GetOptional() const; + + // once HandleDirectoryMode() is also switched to using + // cmInstallCommandArguments then these two functions can become non-static + // private member functions without arguments + static bool CheckPermissions(const std::string& onePerm, + std::string& perm); + cmCommandArgumentsHelper Parser; + cmCommandArgumentGroup ArgumentGroup; + private: + cmCAString Destination; + cmCAString Component; + cmCAString Rename; + cmCAStringVector Permissions; + cmCAStringVector Configurations; + cmCAEnabler Optional; + + std::string DestinationString; + std::string PermissionsString; + + cmInstallCommandArguments* GenericArguments; + static const char* PermissionsTable[]; + static const std::string EmptyString; + bool CheckPermissions(); +}; + +#endif diff --git a/CMakeLua/Source/cmInstallDirectoryGenerator.cxx b/CMakeLua/Source/cmInstallDirectoryGenerator.cxx new file mode 100644 index 0000000..bf1dac4 --- /dev/null +++ b/CMakeLua/Source/cmInstallDirectoryGenerator.cxx @@ -0,0 +1,58 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallDirectoryGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallDirectoryGenerator.h" + +#include "cmTarget.h" + +//---------------------------------------------------------------------------- +cmInstallDirectoryGenerator +::cmInstallDirectoryGenerator(std::vector const& dirs, + const char* dest, + const char* file_permissions, + const char* dir_permissions, + std::vector const& configurations, + const char* component, + const char* literal_args): + cmInstallGenerator(dest, configurations, component), Directories(dirs), + FilePermissions(file_permissions), DirPermissions(dir_permissions), + LiteralArguments(literal_args) +{ +} + +//---------------------------------------------------------------------------- +cmInstallDirectoryGenerator +::~cmInstallDirectoryGenerator() +{ +} + +//---------------------------------------------------------------------------- +void +cmInstallDirectoryGenerator::GenerateScriptActions(std::ostream& os, + Indent const& indent) +{ + // Write code to install the directories. + bool not_optional = false; + const char* no_properties = 0; + const char* no_rename = 0; + this->AddInstallRule(os, cmTarget::INSTALL_DIRECTORY, + this->Directories, + not_optional, no_properties, + this->FilePermissions.c_str(), + this->DirPermissions.c_str(), + no_rename, this->LiteralArguments.c_str(), + indent); +} diff --git a/CMakeLua/Source/cmInstallDirectoryGenerator.h b/CMakeLua/Source/cmInstallDirectoryGenerator.h new file mode 100644 index 0000000..91f3655 --- /dev/null +++ b/CMakeLua/Source/cmInstallDirectoryGenerator.h @@ -0,0 +1,46 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallDirectoryGenerator.h,v $ + Language: C++ + Date: $Date: 2007/07/02 18:56:57 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallDirectoryGenerator_h +#define cmInstallDirectoryGenerator_h + +#include "cmInstallGenerator.h" + +/** \class cmInstallDirectoryGenerator + * \brief Generate directory installation rules. + */ +class cmInstallDirectoryGenerator: public cmInstallGenerator +{ +public: + cmInstallDirectoryGenerator(std::vector const& dirs, + const char* dest, + const char* file_permissions, + const char* dir_permissions, + std::vector const& configurations, + const char* component, + const char* literal_args); + virtual ~cmInstallDirectoryGenerator(); + +protected: + typedef cmInstallGeneratorIndent Indent; + virtual void GenerateScriptActions(std::ostream& os, Indent const& indent); + std::vector Directories; + std::string FilePermissions; + std::string DirPermissions; + std::string LiteralArguments; +}; + +#endif diff --git a/CMakeLua/Source/cmInstallExportGenerator.cxx b/CMakeLua/Source/cmInstallExportGenerator.cxx new file mode 100644 index 0000000..ef6d0cb --- /dev/null +++ b/CMakeLua/Source/cmInstallExportGenerator.cxx @@ -0,0 +1,211 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallExportGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallExportGenerator.h" + +#include + +#include "cmake.h" +#include "cmInstallTargetGenerator.h" +#include "cmGeneratedFileStream.h" +#include "cmTarget.h" +#include "cmMakefile.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" + +#include "cmInstallFilesGenerator.h" + +#include "cmExportInstallFileGenerator.h" + +//---------------------------------------------------------------------------- +cmInstallExportGenerator::cmInstallExportGenerator( + const char* name, + const char* destination, + const char* file_permissions, + std::vector const& configurations, + const char* component, + const char* filename, const char* name_space, + cmMakefile* mf) + :cmInstallGenerator(destination, configurations, component) + ,Name(name) + ,FilePermissions(file_permissions) + ,FileName(filename) + ,Namespace(name_space) + ,Makefile(mf) +{ + this->EFGen = new cmExportInstallFileGenerator(this); +} + +//---------------------------------------------------------------------------- +cmInstallExportGenerator::~cmInstallExportGenerator() +{ + delete this->EFGen; +} + +//---------------------------------------------------------------------------- +void cmInstallExportGenerator::ComputeTempDir() +{ + // Choose a temporary directory in which to generate the import + // files to be installed. + this->TempDir = this->Makefile->GetCurrentOutputDirectory(); + this->TempDir += cmake::GetCMakeFilesDirectory(); + this->TempDir += "/Export"; + if(this->Destination.empty()) + { + return; + } + else + { + this->TempDir += "/"; + } + + // Enforce a maximum length. + bool useMD5 = false; +#if defined(_WIN32) || defined(__CYGWIN__) + std::string::size_type const max_total_len = 250; +#else + std::string::size_type const max_total_len = 1000; +#endif + if(this->TempDir.size() < max_total_len) + { + // Keep the total path length below the limit. + std::string::size_type max_len = max_total_len - this->TempDir.size(); + if(this->Destination.size() > max_len) + { + useMD5 = true; + } + } + else + { + useMD5 = true; + } + if(useMD5) + { + // Replace the destination path with a hash to keep it short. + this->TempDir += + cmSystemTools::ComputeStringMD5(this->Destination.c_str()); + } + else + { + std::string dest = this->Destination; + // Avoid unix full paths. + if(dest[0] == '/') + { + dest[0] = '_'; + } + // Avoid windows full paths by removing colons. + cmSystemTools::ReplaceString(dest, ":", "_"); + // Avoid relative paths that go up the tree. + cmSystemTools::ReplaceString(dest, "../", "__/"); + // Avoid spaces. + cmSystemTools::ReplaceString(dest, " ", "_"); + this->TempDir += dest; + } +} + +//---------------------------------------------------------------------------- +void cmInstallExportGenerator::GenerateScript(std::ostream& os) +{ + // Get the export set requested. + ExportSet const* exportSet = + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() + ->GetExportSet(this->Name.c_str()); + + // Skip empty sets. + if(!exportSet) + { + cmOStringStream e; + e << "INSTALL(EXPORT) given unknown export \"" << this->Name << "\""; + cmSystemTools::Error(e.str().c_str()); + return; + } + + // Create the temporary directory in which to store the files. + this->ComputeTempDir(); + cmSystemTools::MakeDirectory(this->TempDir.c_str()); + + // Construct a temporary location for the file. + this->MainImportFile = this->TempDir; + this->MainImportFile += "/"; + this->MainImportFile += this->FileName; + + // Generate the import file for this export set. + this->EFGen->SetName(this->Name.c_str()); + this->EFGen->SetExportSet(exportSet); + this->EFGen->SetExportFile(this->MainImportFile.c_str()); + this->EFGen->SetNamespace(this->Namespace.c_str()); + if(this->ConfigurationTypes->empty()) + { + if(this->ConfigurationName && *this->ConfigurationName) + { + this->EFGen->AddConfiguration(this->ConfigurationName); + } + else + { + this->EFGen->AddConfiguration(""); + } + } + else + { + for(std::vector::const_iterator + ci = this->ConfigurationTypes->begin(); + ci != this->ConfigurationTypes->end(); ++ci) + { + this->EFGen->AddConfiguration(ci->c_str()); + } + } + this->EFGen->GenerateImportFile(); + + // Perform the main install script generation. + this->cmInstallGenerator::GenerateScript(os); +} + +//---------------------------------------------------------------------------- +void +cmInstallExportGenerator::GenerateScriptConfigs(std::ostream& os, + Indent const& indent) +{ + // Create the main install rules first. + this->cmInstallGenerator::GenerateScriptConfigs(os, indent); + + // Now create a configuration-specific install rule for the import + // file of each configuration. + std::vector files; + for(std::map::const_iterator + i = this->EFGen->GetConfigImportFiles().begin(); + i != this->EFGen->GetConfigImportFiles().end(); ++i) + { + files.push_back(i->second); + std::string config_test = this->CreateConfigTest(i->first.c_str()); + os << indent << "IF(" << config_test << ")\n"; + this->AddInstallRule(os, cmTarget::INSTALL_FILES, files, false, 0, + this->FilePermissions.c_str(), 0, 0, 0, + indent.Next()); + os << indent << "ENDIF(" << config_test << ")\n"; + files.clear(); + } +} + +//---------------------------------------------------------------------------- +void cmInstallExportGenerator::GenerateScriptActions(std::ostream& os, + Indent const& indent) +{ + // Install the main export file. + std::vector files; + files.push_back(this->MainImportFile); + this->AddInstallRule(os, cmTarget::INSTALL_FILES, files, false, 0, + this->FilePermissions.c_str(), 0, 0, 0, indent); +} diff --git a/CMakeLua/Source/cmInstallExportGenerator.h b/CMakeLua/Source/cmInstallExportGenerator.h new file mode 100644 index 0000000..d2087e5 --- /dev/null +++ b/CMakeLua/Source/cmInstallExportGenerator.h @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallExportGenerator.h,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallExportGenerator_h +#define cmInstallExportGenerator_h + +#include "cmInstallGenerator.h" + +class cmExportInstallFileGenerator; +class cmInstallFilesGenerator; +class cmInstallTargetGenerator; +class cmTarget; +class cmTargetExport; +class cmMakefile; + +/** \class cmInstallExportGenerator + * \brief Generate rules for creating an export files. + */ +class cmInstallExportGenerator: public cmInstallGenerator +{ +public: + cmInstallExportGenerator(const char* name, + const char* dest, const char* file_permissions, + const std::vector& configurations, + const char* component, + const char* filename, const char* name_space, + cmMakefile* mf); + ~cmInstallExportGenerator(); +protected: + typedef std::vector ExportSet; + + typedef cmInstallGeneratorIndent Indent; + virtual void GenerateScript(std::ostream& os); + virtual void GenerateScriptConfigs(std::ostream& os, Indent const& indent); + virtual void GenerateScriptActions(std::ostream& os, Indent const& indent); + void GenerateImportFile(ExportSet const* exportSet); + void GenerateImportFile(const char* config, ExportSet const* exportSet); + void ComputeTempDir(); + + std::string Name; + std::string FilePermissions; + std::string FileName; + std::string Namespace; + cmMakefile* Makefile; + + std::string TempDir; + std::string MainImportFile; + cmExportInstallFileGenerator* EFGen; +}; + +#endif diff --git a/CMakeLua/Source/cmInstallFilesCommand.cxx b/CMakeLua/Source/cmInstallFilesCommand.cxx new file mode 100644 index 0000000..15161b2 --- /dev/null +++ b/CMakeLua/Source/cmInstallFilesCommand.cxx @@ -0,0 +1,177 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallFilesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.29 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallFilesCommand.h" + +#include "cmInstallFilesGenerator.h" + +// cmExecutableCommand +bool cmInstallFilesCommand +::InitialPass(std::vector const& argsIn, cmExecutionStatus &) +{ + if(argsIn.size() < 2) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Enable the install target. + this->Makefile->GetLocalGenerator() + ->GetGlobalGenerator()->EnableInstallTarget(); + + std::vector args; + this->Makefile->ExpandSourceListArguments(argsIn, args, 2); + + this->Destination = args[0]; + + if((args.size() > 1) && (args[1] == "FILES")) + { + this->IsFilesForm = true; + for(std::vector::const_iterator s = args.begin()+2; + s != args.end(); ++s) + { + // Find the source location for each file listed. + std::string f = this->FindInstallSource(s->c_str()); + this->Files.push_back(f); + } + this->CreateInstallGenerator(); + } + else + { + this->IsFilesForm = false; + std::vector::const_iterator s = args.begin(); + for (++s;s != args.end(); ++s) + { + this->FinalArgs.push_back(*s); + } + } + + return true; +} + +void cmInstallFilesCommand::FinalPass() +{ + // No final pass for "FILES" form of arguments. + if(this->IsFilesForm) + { + return; + } + + std::string testf; + std::string ext = this->FinalArgs[0]; + + // two different options + if (this->FinalArgs.size() > 1) + { + // now put the files into the list + std::vector::iterator s = this->FinalArgs.begin(); + ++s; + // for each argument, get the files + for (;s != this->FinalArgs.end(); ++s) + { + // replace any variables + std::string temps = *s; + if (cmSystemTools::GetFilenamePath(temps).size() > 0) + { + testf = cmSystemTools::GetFilenamePath(temps) + "/" + + cmSystemTools::GetFilenameWithoutLastExtension(temps) + ext; + } + else + { + testf = cmSystemTools::GetFilenameWithoutLastExtension(temps) + ext; + } + + // add to the result + this->Files.push_back(this->FindInstallSource(testf.c_str())); + } + } + else // reg exp list + { + std::vector files; + std::string regex = this->FinalArgs[0].c_str(); + cmSystemTools::Glob(this->Makefile->GetCurrentDirectory(), + regex.c_str(), files); + + std::vector::iterator s = files.begin(); + // for each argument, get the files + for (;s != files.end(); ++s) + { + this->Files.push_back(this->FindInstallSource(s->c_str())); + } + } + + this->CreateInstallGenerator(); +} + +void cmInstallFilesCommand::CreateInstallGenerator() const +{ + // Construct the destination. This command always installs under + // the prefix. We skip the leading slash given by the user. + std::string destination = this->Destination.substr(1); + cmSystemTools::ConvertToUnixSlashes(destination); + + // Use a file install generator. + const char* no_permissions = ""; + const char* no_rename = ""; + const char* no_component = ""; + std::vector no_configurations; + this->Makefile->AddInstallGenerator( + new cmInstallFilesGenerator(this->Files, + destination.c_str(), false, + no_permissions, no_configurations, + no_component, no_rename)); +} + + +/** + * Find a file in the build or source tree for installation given a + * relative path from the CMakeLists.txt file. This will favor files + * present in the build tree. If a full path is given, it is just + * returned. + */ +std::string cmInstallFilesCommand::FindInstallSource(const char* name) const +{ + if(cmSystemTools::FileIsFullPath(name)) + { + // This is a full path. + return name; + } + + // This is a relative path. + std::string tb = this->Makefile->GetCurrentOutputDirectory(); + tb += "/"; + tb += name; + std::string ts = this->Makefile->GetCurrentDirectory(); + ts += "/"; + ts += name; + + if(cmSystemTools::FileExists(tb.c_str())) + { + // The file exists in the binary tree. Use it. + return tb; + } + else if(cmSystemTools::FileExists(ts.c_str())) + { + // The file exists in the source tree. Use it. + return ts; + } + else + { + // The file doesn't exist. Assume it will be present in the + // binary tree when the install occurs. + return tb; + } +} diff --git a/CMakeLua/Source/cmInstallFilesCommand.h b/CMakeLua/Source/cmInstallFilesCommand.h new file mode 100644 index 0000000..1334cb9 --- /dev/null +++ b/CMakeLua/Source/cmInstallFilesCommand.h @@ -0,0 +1,118 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallFilesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallFilesCommand_h +#define cmInstallFilesCommand_h + +#include "cmCommand.h" + +/** \class cmInstallFilesCommand + * \brief Specifies where to install some files + * + * cmInstallFilesCommand specifies the relative path where a list of + * files should be installed. + */ +class cmInstallFilesCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmInstallFilesCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "install_files";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Deprecated. Use the install(FILES ) command instead."; + } + + /** + * This is called at the end after all the information + * specified by the command is accumulated. Most commands do + * not implement this method. At this point, reading and + * writing to the cache can be done. + */ + virtual void FinalPass(); + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "This command has been superceded by the install command. It " + "is provided for compatibility with older CMake code. " + "The FILES form is directly replaced by the FILES form of the " + "install command. The regexp form can be expressed " + "more clearly using the GLOB form of the file command.\n" + " install_files( extension file file ...)\n" + "Create rules to install the listed files with the given extension " + "into the given directory. " + "Only files existing in the current source tree or its corresponding " + "location in the binary tree may be listed. " + "If a file specified already has an extension, that extension will be " + "removed first. This is useful for providing lists of source files " + "such as foo.cxx when you want the corresponding foo.h to be " + "installed. A typical extension is '.h'.\n" + " install_files( regexp)\n" + "Any files in the current source directory that match the regular " + "expression will be installed.\n" + " install_files( FILES file file ...)\n" + "Any files listed after the FILES keyword will be " + "installed explicitly from the names given. Full paths are allowed in " + "this form.\n" + "The directory is relative to the installation prefix, which " + "is stored in the variable CMAKE_INSTALL_PREFIX."; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmInstallFilesCommand, cmCommand); + +protected: + void CreateInstallGenerator() const; + std::string FindInstallSource(const char* name) const; + + private: + std::vector FinalArgs; + bool IsFilesForm; + std::string Destination; + std::vector Files; +}; + + +#endif diff --git a/CMakeLua/Source/cmInstallFilesGenerator.cxx b/CMakeLua/Source/cmInstallFilesGenerator.cxx new file mode 100644 index 0000000..d14c653 --- /dev/null +++ b/CMakeLua/Source/cmInstallFilesGenerator.cxx @@ -0,0 +1,58 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallFilesGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallFilesGenerator.h" + +#include "cmTarget.h" + +//---------------------------------------------------------------------------- +cmInstallFilesGenerator +::cmInstallFilesGenerator(std::vector const& files, + const char* dest, bool programs, + const char* file_permissions, + std::vector const& configurations, + const char* component, + const char* rename, + bool optional): + cmInstallGenerator(dest, configurations, component), + Files(files), Programs(programs), + FilePermissions(file_permissions), + Rename(rename), Optional(optional) +{ +} + +//---------------------------------------------------------------------------- +cmInstallFilesGenerator +::~cmInstallFilesGenerator() +{ +} + +//---------------------------------------------------------------------------- +void cmInstallFilesGenerator::GenerateScriptActions(std::ostream& os, + Indent const& indent) +{ + // Write code to install the files. + const char* no_properties = 0; + const char* no_dir_permissions = 0; + this->AddInstallRule(os, + (this->Programs + ? cmTarget::INSTALL_PROGRAMS + : cmTarget::INSTALL_FILES), + this->Files, + this->Optional, no_properties, + this->FilePermissions.c_str(), no_dir_permissions, + this->Rename.c_str(), 0, indent); +} diff --git a/CMakeLua/Source/cmInstallFilesGenerator.h b/CMakeLua/Source/cmInstallFilesGenerator.h new file mode 100644 index 0000000..33706dc --- /dev/null +++ b/CMakeLua/Source/cmInstallFilesGenerator.h @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallFilesGenerator.h,v $ + Language: C++ + Date: $Date: 2007/07/02 18:56:57 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallFilesGenerator_h +#define cmInstallFilesGenerator_h + +#include "cmInstallGenerator.h" + +/** \class cmInstallFilesGenerator + * \brief Generate file installation rules. + */ +class cmInstallFilesGenerator: public cmInstallGenerator +{ +public: + cmInstallFilesGenerator(std::vector const& files, + const char* dest, bool programs, + const char* file_permissions, + std::vector const& configurations, + const char* component, + const char* rename, + bool optional = false); + virtual ~cmInstallFilesGenerator(); + +protected: + typedef cmInstallGeneratorIndent Indent; + virtual void GenerateScriptActions(std::ostream& os, Indent const& indent); + std::vector Files; + bool Programs; + std::string FilePermissions; + std::string Rename; + bool Optional; +}; + +#endif diff --git a/CMakeLua/Source/cmInstallGenerator.cxx b/CMakeLua/Source/cmInstallGenerator.cxx new file mode 100644 index 0000000..ca3984b --- /dev/null +++ b/CMakeLua/Source/cmInstallGenerator.cxx @@ -0,0 +1,277 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallGenerator.h" + +#include "cmSystemTools.h" +#include "cmTarget.h" + +//---------------------------------------------------------------------------- +cmInstallGenerator +::cmInstallGenerator(const char* destination, + std::vector const& configurations, + const char* component): + Destination(destination? destination:""), + Configurations(configurations), + Component(component? component:""), + ConfigurationName(0), + ConfigurationTypes(0) +{ +} + +//---------------------------------------------------------------------------- +cmInstallGenerator +::~cmInstallGenerator() +{ +} + +//---------------------------------------------------------------------------- +void +cmInstallGenerator +::Generate(std::ostream& os, const char* config, + std::vector const& configurationTypes) +{ + this->ConfigurationName = config; + this->ConfigurationTypes = &configurationTypes; + this->GenerateScript(os); + this->ConfigurationName = 0; + this->ConfigurationTypes = 0; +} + +//---------------------------------------------------------------------------- +void cmInstallGenerator +::AddInstallRule( + std::ostream& os, + int type, + std::vector const& files, + bool optional /* = false */, + const char* properties /* = 0 */, + const char* permissions_file /* = 0 */, + const char* permissions_dir /* = 0 */, + const char* rename /* = 0 */, + const char* literal_args /* = 0 */, + cmInstallGeneratorIndent const& indent + ) +{ + // Use the FILE command to install the file. + std::string stype; + switch(type) + { + case cmTarget::INSTALL_DIRECTORY:stype = "DIRECTORY"; break; + case cmTarget::INSTALL_PROGRAMS: stype = "PROGRAM"; break; + case cmTarget::EXECUTABLE: stype = "EXECUTABLE"; break; + case cmTarget::STATIC_LIBRARY: stype = "STATIC_LIBRARY"; break; + case cmTarget::SHARED_LIBRARY: stype = "SHARED_LIBRARY"; break; + case cmTarget::MODULE_LIBRARY: stype = "MODULE"; break; + case cmTarget::INSTALL_FILES: + default: stype = "FILE"; break; + } + os << indent; + std::string dest = this->GetInstallDestination(); + os << "FILE(INSTALL DESTINATION \"" << dest << "\" TYPE " << stype.c_str(); + if(optional) + { + os << " OPTIONAL"; + } + if(properties && *properties) + { + os << " PROPERTIES" << properties; + } + if(permissions_file && *permissions_file) + { + os << " PERMISSIONS" << permissions_file; + } + if(permissions_dir && *permissions_dir) + { + os << " DIR_PERMISSIONS" << permissions_dir; + } + if(rename && *rename) + { + os << " RENAME \"" << rename << "\""; + } + os << " FILES"; + if(files.size() == 1) + { + os << " \"" << files[0] << "\""; + } + else + { + for(std::vector::const_iterator fi = files.begin(); + fi != files.end(); ++fi) + { + os << "\n" << indent << " \"" << *fi << "\""; + } + os << "\n" << indent << " "; + if(!(literal_args && *literal_args)) + { + os << " "; + } + } + if(literal_args && *literal_args) + { + os << literal_args; + } + os << ")\n"; +} + +//---------------------------------------------------------------------------- +static void cmInstallGeneratorEncodeConfig(const char* config, + std::string& result) +{ + for(const char* c = config; *c; ++c) + { + if(*c >= 'a' && *c <= 'z') + { + result += "["; + result += *c + ('A' - 'a'); + result += *c; + result += "]"; + } + else if(*c >= 'A' && *c <= 'Z') + { + result += "["; + result += *c; + result += *c + ('a' - 'A'); + result += "]"; + } + else + { + result += *c; + } + } +} + +//---------------------------------------------------------------------------- +std::string +cmInstallGenerator::CreateConfigTest(const char* config) +{ + std::string result = "\"${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^("; + if(config && *config) + { + cmInstallGeneratorEncodeConfig(config, result); + } + result += ")$\""; + return result; +} + +//---------------------------------------------------------------------------- +std::string +cmInstallGenerator::CreateConfigTest(std::vector const& configs) +{ + std::string result = "\"${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^("; + const char* sep = ""; + for(std::vector::const_iterator ci = configs.begin(); + ci != configs.end(); ++ci) + { + result += sep; + sep = "|"; + cmInstallGeneratorEncodeConfig(ci->c_str(), result); + } + result += ")$\""; + return result; +} + +//---------------------------------------------------------------------------- +std::string +cmInstallGenerator::CreateComponentTest(const char* component) +{ + std::string result = "NOT CMAKE_INSTALL_COMPONENT OR " + "\"${CMAKE_INSTALL_COMPONENT}\" MATCHES \"^("; + result += component; + result += ")$\""; + return result; +} + +//---------------------------------------------------------------------------- +void cmInstallGenerator::GenerateScript(std::ostream& os) +{ + // Track indentation. + Indent indent; + + // Begin this block of installation. + std::string component_test = + this->CreateComponentTest(this->Component.c_str()); + os << indent << "IF(" << component_test << ")\n"; + + // Generate the script possibly with per-configuration code. + this->GenerateScriptConfigs(os, indent.Next()); + + // End this block of installation. + os << indent << "ENDIF(" << component_test << ")\n\n"; +} + +//---------------------------------------------------------------------------- +void +cmInstallGenerator::GenerateScriptConfigs(std::ostream& os, + Indent const& indent) +{ + if(this->Configurations.empty()) + { + // This rule is for all configurations. + this->GenerateScriptActions(os, indent); + } + else + { + // Generate a per-configuration block. + std::string config_test = this->CreateConfigTest(this->Configurations); + os << indent << "IF(" << config_test << ")\n"; + this->GenerateScriptActions(os, indent.Next()); + os << indent << "ENDIF(" << config_test << ")\n"; + } +} + +//---------------------------------------------------------------------------- +void cmInstallGenerator::GenerateScriptActions(std::ostream&, Indent const&) +{ + // No actions for this generator. +} + +//---------------------------------------------------------------------------- +bool cmInstallGenerator::InstallsForConfig(const char* config) +{ + // If this is not a configuration-specific rule then we install. + if(this->Configurations.empty()) + { + return true; + } + + // This is a configuration-specific rule. Check if the config + // matches this rule. + std::string config_upper = cmSystemTools::UpperCase(config?config:""); + for(std::vector::const_iterator i = + this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + if(cmSystemTools::UpperCase(*i) == config_upper) + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +std::string cmInstallGenerator::GetInstallDestination() const +{ + std::string result; + if(!this->Destination.empty() && + !cmSystemTools::FileIsFullPath(this->Destination.c_str())) + { + result = "${CMAKE_INSTALL_PREFIX}/"; + } + result += this->Destination; + return result; +} diff --git a/CMakeLua/Source/cmInstallGenerator.h b/CMakeLua/Source/cmInstallGenerator.h new file mode 100644 index 0000000..b2dfee5 --- /dev/null +++ b/CMakeLua/Source/cmInstallGenerator.h @@ -0,0 +1,109 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallGenerator.h,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallGenerator_h +#define cmInstallGenerator_h + +#include "cmStandardIncludes.h" + +class cmLocalGenerator; + +class cmInstallGeneratorIndent +{ +public: + cmInstallGeneratorIndent(): Level(0) {} + cmInstallGeneratorIndent(int level): Level(level) {} + void Write(std::ostream& os) const + { + for(int i=0; i < this->Level; ++i) + { + os << " "; + } + } + cmInstallGeneratorIndent Next(int step = 2) const + { + return cmInstallGeneratorIndent(this->Level + step); + } +private: + int Level; +}; +inline std::ostream& operator<<(std::ostream& os, + cmInstallGeneratorIndent const& indent) +{ + indent.Write(os); + return os; +} + +/** \class cmInstallGenerator + * \brief Support class for generating install scripts. + * + */ +class cmInstallGenerator +{ +public: + cmInstallGenerator(const char* destination, + std::vector const& configurations, + const char* component); + virtual ~cmInstallGenerator(); + + void Generate(std::ostream& os, const char* config, + std::vector const& configurationTypes); + + void AddInstallRule( + std::ostream& os, int type, + std::vector const& files, + bool optional = false, + const char* properties = 0, + const char* permissions_file = 0, + const char* permissions_dir = 0, + const char* rename = 0, + const char* literal_args = 0, + cmInstallGeneratorIndent const& indent = cmInstallGeneratorIndent() + ); + + const char* GetDestination() const + { return this->Destination.c_str(); } + const std::vector& GetConfigurations() const + { return this->Configurations; } + + /** Get the install destination as it should appear in the + installation script. */ + std::string GetInstallDestination() const; + + /** Test if this generator installs something for a given configuration. */ + bool InstallsForConfig(const char*); + +protected: + typedef cmInstallGeneratorIndent Indent; + virtual void GenerateScript(std::ostream& os); + virtual void GenerateScriptConfigs(std::ostream& os, Indent const& indent); + virtual void GenerateScriptActions(std::ostream& os, Indent const& indent); + + std::string CreateConfigTest(const char* config); + std::string CreateConfigTest(std::vector const& configs); + std::string CreateComponentTest(const char* component); + + // Information shared by most generator types. + std::string Destination; + std::vector const Configurations; + std::string Component; + + // Information used during generation. + const char* ConfigurationName; + std::vector const* ConfigurationTypes; +}; + +#endif diff --git a/CMakeLua/Source/cmInstallProgramsCommand.cxx b/CMakeLua/Source/cmInstallProgramsCommand.cxx new file mode 100644 index 0000000..7a9e0ed --- /dev/null +++ b/CMakeLua/Source/cmInstallProgramsCommand.cxx @@ -0,0 +1,138 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallProgramsCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:35 $ + Version: $Revision: 1.21 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallProgramsCommand.h" + +// cmExecutableCommand +bool cmInstallProgramsCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Enable the install target. + this->Makefile->GetLocalGenerator() + ->GetGlobalGenerator()->EnableInstallTarget(); + + this->Destination = args[0]; + + std::vector::const_iterator s = args.begin(); + for (++s;s != args.end(); ++s) + { + this->FinalArgs.push_back(*s); + } + + return true; +} + +void cmInstallProgramsCommand::FinalPass() +{ + bool files_mode = false; + if(!this->FinalArgs.empty() && this->FinalArgs[0] == "FILES") + { + files_mode = true; + } + + // two different options + if (this->FinalArgs.size() > 1 || files_mode) + { + // for each argument, get the programs + std::vector::iterator s = this->FinalArgs.begin(); + if(files_mode) + { + // Skip the FILES argument in files mode. + ++s; + } + for(;s != this->FinalArgs.end(); ++s) + { + // add to the result + this->Files.push_back(this->FindInstallSource(s->c_str())); + } + } + else // reg exp list + { + std::vector programs; + cmSystemTools::Glob(this->Makefile->GetCurrentDirectory(), + this->FinalArgs[0].c_str(), programs); + + std::vector::iterator s = programs.begin(); + // for each argument, get the programs + for (;s != programs.end(); ++s) + { + this->Files.push_back(this->FindInstallSource(s->c_str())); + } + } + + // Construct the destination. This command always installs under + // the prefix. We skip the leading slash given by the user. + std::string destination = this->Destination.substr(1); + cmSystemTools::ConvertToUnixSlashes(destination); + + // Use a file install generator. + const char* no_permissions = ""; + const char* no_rename = ""; + const char* no_component = ""; + std::vector no_configurations; + this->Makefile->AddInstallGenerator( + new cmInstallFilesGenerator(this->Files, + destination.c_str(), true, + no_permissions, no_configurations, + no_component, no_rename)); +} + +/** + * Find a file in the build or source tree for installation given a + * relative path from the CMakeLists.txt file. This will favor files + * present in the build tree. If a full path is given, it is just + * returned. + */ +std::string cmInstallProgramsCommand +::FindInstallSource(const char* name) const +{ + if(cmSystemTools::FileIsFullPath(name)) + { + // This is a full path. + return name; + } + + // This is a relative path. + std::string tb = this->Makefile->GetCurrentOutputDirectory(); + tb += "/"; + tb += name; + std::string ts = this->Makefile->GetCurrentDirectory(); + ts += "/"; + ts += name; + + if(cmSystemTools::FileExists(tb.c_str())) + { + // The file exists in the binary tree. Use it. + return tb; + } + else if(cmSystemTools::FileExists(ts.c_str())) + { + // The file exists in the source tree. Use it. + return ts; + } + else + { + // The file doesn't exist. Assume it will be present in the + // binary tree when the install occurs. + return tb; + } +} diff --git a/CMakeLua/Source/cmInstallProgramsCommand.h b/CMakeLua/Source/cmInstallProgramsCommand.h new file mode 100644 index 0000000..ced0b4d --- /dev/null +++ b/CMakeLua/Source/cmInstallProgramsCommand.h @@ -0,0 +1,111 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallProgramsCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallProgramsCommand_h +#define cmInstallProgramsCommand_h + +#include "cmCommand.h" + +/** \class cmInstallProgramsCommand + * \brief Specifies where to install some programs + * + * cmInstallProgramsCommand specifies the relative path where a list of + * programs should be installed. + */ +class cmInstallProgramsCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmInstallProgramsCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "install_programs";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Deprecated. Use the install(PROGRAMS ) command instead."; + } + + /** + * This is called at the end after all the information + * specified by the command is accumulated. Most commands do + * not implement this method. At this point, reading and + * writing to the cache can be done. + */ + virtual void FinalPass(); + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "This command has been superceded by the install command. It " + "is provided for compatibility with older CMake code. " + "The FILES form is directly replaced by the PROGRAMS form of the " + "INSTALL command. The regexp form can be expressed more clearly " + "using the GLOB form of the FILE command.\n" + " install_programs( file1 file2 [file3 ...])\n" + " install_programs( FILES file1 [file2 ...])\n" + "Create rules to install the listed programs into the given directory. " + "Use the FILES argument to guarantee that the file list version of " + "the command will be used even when there is only one argument.\n" + " install_programs( regexp)\n" + "In the second form any program in the current source directory that " + "matches the regular expression will be installed.\n" + "This command is intended to install programs that are not built " + "by cmake, such as shell scripts. See the TARGETS form of " + "the INSTALL command to " + "create installation rules for targets built by cmake.\n" + "The directory is relative to the installation prefix, which " + "is stored in the variable CMAKE_INSTALL_PREFIX."; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmInstallProgramsCommand, cmCommand); + +protected: + std::string FindInstallSource(const char* name) const; +private: + std::vector FinalArgs; + std::string Destination; + std::vector Files; +}; + + +#endif diff --git a/CMakeLua/Source/cmInstallScriptGenerator.cxx b/CMakeLua/Source/cmInstallScriptGenerator.cxx new file mode 100644 index 0000000..de9eae6 --- /dev/null +++ b/CMakeLua/Source/cmInstallScriptGenerator.cxx @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallScriptGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/10/15 11:08:10 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallScriptGenerator.h" + +//---------------------------------------------------------------------------- +cmInstallScriptGenerator +::cmInstallScriptGenerator(const char* script, bool code, + const char* component) : + cmInstallGenerator(0, std::vector(), component), + Script(script), Code(code) +{ +} + +//---------------------------------------------------------------------------- +cmInstallScriptGenerator +::~cmInstallScriptGenerator() +{ +} + +//---------------------------------------------------------------------------- +void cmInstallScriptGenerator::GenerateScript(std::ostream& os) +{ + Indent indent; + std::string component_test = + this->CreateComponentTest(this->Component.c_str()); + os << indent << "IF(" << component_test << ")\n"; + + if(this->Code) + { + os << indent.Next() << this->Script << "\n"; + } + else + { + os << indent.Next() << "INCLUDE(\"" << this->Script << "\")\n"; + } + + os << indent << "ENDIF(" << component_test << ")\n\n"; +} diff --git a/CMakeLua/Source/cmInstallScriptGenerator.h b/CMakeLua/Source/cmInstallScriptGenerator.h new file mode 100644 index 0000000..9318841 --- /dev/null +++ b/CMakeLua/Source/cmInstallScriptGenerator.h @@ -0,0 +1,38 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallScriptGenerator.h,v $ + Language: C++ + Date: $Date: 2007/10/15 11:08:10 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallScriptGenerator_h +#define cmInstallScriptGenerator_h + +#include "cmInstallGenerator.h" + +/** \class cmInstallScriptGenerator + * \brief Generate target installation rules. + */ +class cmInstallScriptGenerator: public cmInstallGenerator +{ +public: + cmInstallScriptGenerator(const char* script, bool code, + const char* component); + virtual ~cmInstallScriptGenerator(); + +protected: + virtual void GenerateScript(std::ostream& os); + std::string Script; + bool Code; +}; + +#endif diff --git a/CMakeLua/Source/cmInstallTargetGenerator.cxx b/CMakeLua/Source/cmInstallTargetGenerator.cxx new file mode 100644 index 0000000..ec67ca7 --- /dev/null +++ b/CMakeLua/Source/cmInstallTargetGenerator.cxx @@ -0,0 +1,564 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallTargetGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 18:08:12 $ + Version: $Revision: 1.56 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallTargetGenerator.h" + +#include "cmComputeLinkInformation.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" +#include "cmake.h" + +// TODO: +// - Skip IF(EXISTS) checks if nothing is done with the installed file + +//---------------------------------------------------------------------------- +cmInstallTargetGenerator +::cmInstallTargetGenerator(cmTarget& t, const char* dest, bool implib, + const char* file_permissions, + std::vector const& configurations, + const char* component, bool optional): + cmInstallGenerator(dest, configurations, component), Target(&t), + ImportLibrary(implib), FilePermissions(file_permissions), Optional(optional) +{ + this->Target->SetHaveInstallRule(true); +} + +//---------------------------------------------------------------------------- +cmInstallTargetGenerator +::~cmInstallTargetGenerator() +{ +} + +//---------------------------------------------------------------------------- +void cmInstallTargetGenerator::GenerateScript(std::ostream& os) +{ + // Warn if installing an exclude-from-all target. + if(this->Target->GetPropertyAsBool("EXCLUDE_FROM_ALL")) + { + cmOStringStream msg; + msg << "WARNING: Target \"" << this->Target->GetName() + << "\" has EXCLUDE_FROM_ALL set and will not be built by default " + << "but an install rule has been provided for it. CMake does " + << "not define behavior for this case."; + cmSystemTools::Message(msg.str().c_str(), "Warning"); + } + + // Track indentation. + Indent indent; + + // Begin this block of installation. + std::string component_test = + this->CreateComponentTest(this->Component.c_str()); + os << indent << "IF(" << component_test << ")\n"; + + // Compute the build tree directory from which to copy the target. + std::string fromDir; + if(this->Target->NeedRelinkBeforeInstall()) + { + fromDir = this->Target->GetMakefile()->GetStartOutputDirectory(); + fromDir += cmake::GetCMakeFilesDirectory(); + fromDir += "/CMakeRelink.dir/"; + } + else + { + fromDir = this->Target->GetDirectory(0, this->ImportLibrary); + fromDir += "/"; + } + + // Generate a portion of the script for each configuration. + if(this->ConfigurationTypes->empty()) + { + this->GenerateScriptForConfig(os, fromDir.c_str(), + this->ConfigurationName, + indent.Next()); + } + else + { + for(std::vector::const_iterator i = + this->ConfigurationTypes->begin(); + i != this->ConfigurationTypes->end(); ++i) + { + this->GenerateScriptForConfig(os, fromDir.c_str(), i->c_str(), + indent.Next()); + } + } + + // End this block of installation. + os << indent << "ENDIF(" << component_test << ")\n\n"; +} + +//---------------------------------------------------------------------------- +void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os, + const char* fromDir, + const char* config, + Indent const& indent) +{ + // Compute the per-configuration directory containing the files. + std::string fromDirConfig = fromDir; + this->Target->GetMakefile()->GetLocalGenerator()->GetGlobalGenerator() + ->AppendDirectoryForConfig("", config, "/", fromDirConfig); + + if(config && *config) + { + // Skip this configuration for config-specific installation that + // does not match it. + if(!this->InstallsForConfig(config)) + { + return; + } + + // Generate a per-configuration block. + std::string config_test = this->CreateConfigTest(config); + os << indent << "IF(" << config_test << ")\n"; + this->GenerateScriptForConfigDir(os, fromDirConfig.c_str(), config, + indent.Next()); + os << indent << "ENDIF(" << config_test << ")\n"; + } + else + { + this->GenerateScriptForConfigDir(os, fromDirConfig.c_str(), config, + indent); + } +} + +//---------------------------------------------------------------------------- +void +cmInstallTargetGenerator +::GenerateScriptForConfigDir(std::ostream& os, + const char* fromDirConfig, + const char* config, + Indent const& indent) +{ + // Compute the full path to the main installed file for this target. + std::string toInstallPath = this->GetInstallDestination(); + toInstallPath += "/"; + toInstallPath += this->GetInstallFilename(this->Target, config, + this->ImportLibrary, false); + + // Compute the list of files to install for this target. + std::vector files; + std::string literal_args; + cmTarget::TargetType type = this->Target->GetType(); + if(type == cmTarget::EXECUTABLE) + { + std::string targetName; + std::string targetNameReal; + std::string targetNameImport; + std::string targetNamePDB; + this->Target->GetExecutableNames(targetName, targetNameReal, + targetNameImport, targetNamePDB, + config); + if(this->ImportLibrary) + { + std::string from1 = fromDirConfig; + from1 += targetNameImport; + files.push_back(from1); + + // An import library looks like a static library. + type = cmTarget::STATIC_LIBRARY; + } + else + { + std::string from1 = fromDirConfig; + from1 += targetName; + + // Handle OSX Bundles. + if(this->Target->IsAppBundleOnApple()) + { + // Compute the source locations of the bundle executable and + // Info.plist file. + from1 += ".app"; + files.push_back(from1); + type = cmTarget::INSTALL_DIRECTORY; + // Need to apply install_name_tool and stripping to binary + // inside bundle. + toInstallPath += ".app/Contents/MacOS/"; + toInstallPath += this->GetInstallFilename(this->Target, config, + this->ImportLibrary, false); + literal_args += " USE_SOURCE_PERMISSIONS"; + } + else + { + files.push_back(from1); + if(targetNameReal != targetName) + { + std::string from2 = fromDirConfig; + from2 += targetNameReal; + files.push_back(from2); + } + } + } + } + else + { + std::string targetName; + std::string targetNameSO; + std::string targetNameReal; + std::string targetNameImport; + std::string targetNamePDB; + this->Target->GetLibraryNames(targetName, targetNameSO, targetNameReal, + targetNameImport, targetNamePDB, + config); + if(this->ImportLibrary) + { + std::string from1 = fromDirConfig; + from1 += targetNameImport; + files.push_back(from1); + + // An import library looks like a static library. + type = cmTarget::STATIC_LIBRARY; + } + else if(this->Target->IsFrameworkOnApple()) + { + // Compute the build tree location of the framework directory + std::string from1 = fromDirConfig; + // Remove trailing slashes... so that from1 ends with ".framework": + // + cmSystemTools::ConvertToUnixSlashes(from1); + files.push_back(from1); + + type = cmTarget::INSTALL_DIRECTORY; + + // Need to apply install_name_tool and stripping to binary + // inside framework. + toInstallPath += ".framework/"; + toInstallPath += this->GetInstallFilename(this->Target, config, + this->ImportLibrary, false); + + literal_args += " USE_SOURCE_PERMISSIONS"; + } + else + { + std::string from1 = fromDirConfig; + from1 += targetName; + files.push_back(from1); + if(targetNameSO != targetName) + { + std::string from2 = fromDirConfig; + from2 += targetNameSO; + files.push_back(from2); + } + if(targetNameReal != targetName && + targetNameReal != targetNameSO) + { + std::string from3 = fromDirConfig; + from3 += targetNameReal; + files.push_back(from3); + } + } + } + + // Write code to install the target file. + const char* no_dir_permissions = 0; + const char* no_rename = 0; + const char* no_properties = 0; + bool optional = this->Optional || this->ImportLibrary; + this->AddInstallRule(os, type, files, + optional, no_properties, + this->FilePermissions.c_str(), no_dir_permissions, + no_rename, literal_args.c_str(), + indent); + + std::string toDestDirPath = "$ENV{DESTDIR}"; + if(toInstallPath[0] != '/') + { + toDestDirPath += "/"; + } + toDestDirPath += toInstallPath; + + os << indent << "IF(EXISTS \"" << toDestDirPath << "\")\n"; + this->AddInstallNamePatchRule(os, indent.Next(), config, toDestDirPath); + this->AddChrpathPatchRule(os, indent.Next(), config, toDestDirPath); + this->AddRanlibRule(os, indent.Next(), type, toDestDirPath); + this->AddStripRule(os, indent.Next(), type, toDestDirPath); + os << indent << "ENDIF(EXISTS \"" << toDestDirPath << "\")\n"; +} + +//---------------------------------------------------------------------------- +std::string +cmInstallTargetGenerator::GetInstallFilename(const char* config) const +{ + return + cmInstallTargetGenerator::GetInstallFilename(this->Target, config, + this->ImportLibrary, false); +} + +//---------------------------------------------------------------------------- +std::string cmInstallTargetGenerator::GetInstallFilename(cmTarget* target, + const char* config, + bool implib, + bool useSOName) +{ + std::string fname; + // Compute the name of the library. + if(target->GetType() == cmTarget::EXECUTABLE) + { + std::string targetName; + std::string targetNameReal; + std::string targetNameImport; + std::string targetNamePDB; + target->GetExecutableNames(targetName, targetNameReal, + targetNameImport, targetNamePDB, + config); + if(implib) + { + // Use the import library name. + fname = targetNameImport; + } + else + { + // Use the canonical name. + fname = targetName; + } + } + else + { + std::string targetName; + std::string targetNameSO; + std::string targetNameReal; + std::string targetNameImport; + std::string targetNamePDB; + target->GetLibraryNames(targetName, targetNameSO, targetNameReal, + targetNameImport, targetNamePDB, config); + if(implib) + { + // Use the import library name. + fname = targetNameImport; + } + else if(useSOName) + { + // Use the soname. + fname = targetNameSO; + } + else + { + // Use the canonical name. + fname = targetName; + } + } + + return fname; +} + +//---------------------------------------------------------------------------- +void +cmInstallTargetGenerator +::AddInstallNamePatchRule(std::ostream& os, Indent const& indent, + const char* config, std::string const& toDestDirPath) +{ + if(this->ImportLibrary || + !(this->Target->GetType() == cmTarget::SHARED_LIBRARY || + this->Target->GetType() == cmTarget::MODULE_LIBRARY || + this->Target->GetType() == cmTarget::EXECUTABLE)) + { + return; + } + + // Fix the install_name settings in installed binaries. + std::string installNameTool = + this->Target->GetMakefile()->GetSafeDefinition("CMAKE_INSTALL_NAME_TOOL"); + + if(!installNameTool.size()) + { + return; + } + + // Build a map of build-tree install_name to install-tree install_name for + // shared libraries linked to this target. + std::map install_name_remap; + if(cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config)) + { + std::set const& sharedLibs = cli->GetSharedLibrariesLinked(); + for(std::set::const_iterator j = sharedLibs.begin(); + j != sharedLibs.end(); ++j) + { + // If the build tree and install tree use different path + // components of the install_name field then we need to create a + // mapping to be applied after installation. + cmTarget* tgt = *j; + std::string for_build = tgt->GetInstallNameDirForBuildTree(config); + std::string for_install = tgt->GetInstallNameDirForInstallTree(config); + if(for_build != for_install) + { + // The directory portions differ. Append the filename to + // create the mapping. + std::string fname = + this->GetInstallFilename(tgt, config, false, true); + + // Map from the build-tree install_name. + for_build += fname; + + // Map to the install-tree install_name. + for_install += fname; + + // Store the mapping entry. + install_name_remap[for_build] = for_install; + } + } + } + + // Edit the install_name of the target itself if necessary. + std::string new_id; + if(this->Target->GetType() == cmTarget::SHARED_LIBRARY) + { + std::string for_build = + this->Target->GetInstallNameDirForBuildTree(config); + std::string for_install = + this->Target->GetInstallNameDirForInstallTree(config); + + if(this->Target->IsFrameworkOnApple() && for_install.empty()) + { + // Frameworks seem to have an id corresponding to their own full + // path. + // ... + // for_install = fullDestPath_without_DESTDIR_or_name; + } + + // If the install name will change on installation set the new id + // on the installed file. + if(for_build != for_install) + { + // Prepare to refer to the install-tree install_name. + new_id = for_install; + new_id += this->GetInstallFilename(this->Target, config, + this->ImportLibrary, true); + } + } + + // Write a rule to run install_name_tool to set the install-tree + // install_name value and references. + if(!new_id.empty() || !install_name_remap.empty()) + { + os << indent << "EXECUTE_PROCESS(COMMAND \"" << installNameTool; + os << "\""; + if(!new_id.empty()) + { + os << "\n" << indent << " -id \"" << new_id << "\""; + } + for(std::map::const_iterator + i = install_name_remap.begin(); + i != install_name_remap.end(); ++i) + { + os << "\n" << indent << " -change \"" + << i->first << "\" \"" << i->second << "\""; + } + os << "\n" << indent << " \"" << toDestDirPath << "\")\n"; + } +} + +//---------------------------------------------------------------------------- +void +cmInstallTargetGenerator +::AddChrpathPatchRule(std::ostream& os, Indent const& indent, + const char* config, std::string const& toDestDirPath) +{ + if(this->ImportLibrary || + !(this->Target->GetType() == cmTarget::SHARED_LIBRARY || + this->Target->GetType() == cmTarget::MODULE_LIBRARY || + this->Target->GetType() == cmTarget::EXECUTABLE)) + { + return; + } + + if(!this->Target->IsChrpathUsed()) + { + return; + } + + // Get the link information for this target. + // It can provide the RPATH. + cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config); + if(!cli) + { + return; + } + + // Get the install RPATH from the link information. + std::string newRpath = cli->GetChrpathString(); + + // Fix the RPATH in installed ELF binaries using chrpath. + std::string chrpathTool = cli->GetChrpathTool(); + + // Write a rule to run chrpath to set the install-tree RPATH + os << indent << "EXECUTE_PROCESS(COMMAND \"" << chrpathTool; + os << "\" -r \"" << newRpath << "\" \"" << toDestDirPath << "\")\n"; +} + +//---------------------------------------------------------------------------- +void +cmInstallTargetGenerator::AddStripRule(std::ostream& os, + Indent const& indent, + cmTarget::TargetType type, + const std::string& toDestDirPath) +{ + + // don't strip static libraries, because it removes the only symbol table + // they have so you can't link to them anymore + if(type == cmTarget::STATIC_LIBRARY) + { + return; + } + + // Don't handle OSX Bundles. + if(this->Target->GetMakefile()->IsOn("APPLE") && + this->Target->GetPropertyAsBool("MACOSX_BUNDLE")) + { + return; + } + + if(! this->Target->GetMakefile()->IsSet("CMAKE_STRIP")) + { + return; + } + + os << indent << "IF(CMAKE_INSTALL_DO_STRIP)\n"; + os << indent << " EXECUTE_PROCESS(COMMAND \"" + << this->Target->GetMakefile()->GetDefinition("CMAKE_STRIP") + << "\" \"" << toDestDirPath << "\")\n"; + os << indent << "ENDIF(CMAKE_INSTALL_DO_STRIP)\n"; +} + +//---------------------------------------------------------------------------- +void +cmInstallTargetGenerator::AddRanlibRule(std::ostream& os, + Indent const& indent, + cmTarget::TargetType type, + const std::string& toDestDirPath) +{ + // Static libraries need ranlib on this platform. + if(type != cmTarget::STATIC_LIBRARY) + { + return; + } + + // Perform post-installation processing on the file depending + // on its type. + if(!this->Target->GetMakefile()->IsOn("APPLE")) + { + return; + } + + std::string ranlib = + this->Target->GetMakefile()->GetRequiredDefinition("CMAKE_RANLIB"); + if(ranlib.empty()) + { + return; + } + + os << indent << "EXECUTE_PROCESS(COMMAND \"" + << ranlib << "\" \"" << toDestDirPath << "\")\n"; +} diff --git a/CMakeLua/Source/cmInstallTargetGenerator.h b/CMakeLua/Source/cmInstallTargetGenerator.h new file mode 100644 index 0000000..1675bc2 --- /dev/null +++ b/CMakeLua/Source/cmInstallTargetGenerator.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallTargetGenerator.h,v $ + Language: C++ + Date: $Date: 2008/01/29 20:07:33 $ + Version: $Revision: 1.22 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallTargetGenerator_h +#define cmInstallTargetGenerator_h + +#include "cmInstallGenerator.h" +#include "cmTarget.h" + +/** \class cmInstallTargetGenerator + * \brief Generate target installation rules. + */ +class cmInstallTargetGenerator: public cmInstallGenerator +{ +public: + cmInstallTargetGenerator( + cmTarget& t, const char* dest, bool implib, + const char* file_permissions = "", + std::vector const& configurations + = std::vector(), + const char* component = "", + bool optional = false + ); + virtual ~cmInstallTargetGenerator(); + + std::string GetInstallFilename(const char* config) const; + static std::string GetInstallFilename(cmTarget*target, const char* config, + bool implib, bool useSOName); + + cmTarget* GetTarget() const { return this->Target; } + bool IsImportLibrary() const { return this->ImportLibrary; } + +protected: + typedef cmInstallGeneratorIndent Indent; + virtual void GenerateScript(std::ostream& os); + void GenerateScriptForConfig(std::ostream& os, + const char* fromDir, + const char* config, + Indent const& indent); + void GenerateScriptForConfigDir(std::ostream& os, + const char* fromDirConfig, + const char* config, + Indent const& indent); + void AddInstallNamePatchRule(std::ostream& os, Indent const& indent, + const char* config, + const std::string& toDestDirPath); + void AddChrpathPatchRule(std::ostream& os, Indent const& indent, + const char* config, + std::string const& toDestDirPath); + + void AddStripRule(std::ostream& os, Indent const& indent, + cmTarget::TargetType type, + const std::string& toDestDirPath); + void AddRanlibRule(std::ostream& os, Indent const& indent, + cmTarget::TargetType type, + const std::string& toDestDirPath); + + cmTarget* Target; + bool ImportLibrary; + std::string FilePermissions; + bool Optional; +}; + +#endif diff --git a/CMakeLua/Source/cmInstallTargetsCommand.cxx b/CMakeLua/Source/cmInstallTargetsCommand.cxx new file mode 100644 index 0000000..19da951 --- /dev/null +++ b/CMakeLua/Source/cmInstallTargetsCommand.cxx @@ -0,0 +1,67 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallTargetsCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmInstallTargetsCommand.h" + +// cmExecutableCommand +bool cmInstallTargetsCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Enable the install target. + this->Makefile->GetLocalGenerator() + ->GetGlobalGenerator()->EnableInstallTarget(); + + cmTargets &tgts = this->Makefile->GetTargets(); + std::vector::const_iterator s = args.begin(); + ++s; + std::string runtime_dir = "/bin"; + for (;s != args.end(); ++s) + { + if (*s == "RUNTIME_DIRECTORY") + { + ++s; + if ( s == args.end() ) + { + this->SetError("called with RUNTIME_DIRECTORY but no actual " + "directory"); + return false; + } + + runtime_dir = *s; + } + else if (tgts.find(*s) != tgts.end()) + { + tgts[*s].SetInstallPath(args[0].c_str()); + tgts[*s].SetRuntimeInstallPath(runtime_dir.c_str()); + tgts[*s].SetHaveInstallRule(true); + } + else + { + std::string str = "Cannot find target: \"" + *s + "\" to install."; + this->SetError(str.c_str()); + return false; + } + } + + return true; +} + diff --git a/CMakeLua/Source/cmInstallTargetsCommand.h b/CMakeLua/Source/cmInstallTargetsCommand.h new file mode 100644 index 0000000..11c7e04 --- /dev/null +++ b/CMakeLua/Source/cmInstallTargetsCommand.h @@ -0,0 +1,86 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmInstallTargetsCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmInstallTargetsCommand_h +#define cmInstallTargetsCommand_h + +#include "cmCommand.h" + +/** \class cmInstallTargetsCommand + * \brief Specifies where to install some targets + * + * cmInstallTargetsCommand specifies the relative path where a list of + * targets should be installed. The targets can be executables or + * libraries. + */ +class cmInstallTargetsCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmInstallTargetsCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "install_targets";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Deprecated. Use the install(TARGETS ) command instead."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "This command has been superceded by the install command. It " + "is provided for compatibility with older CMake code.\n" + " install_targets( [RUNTIME_DIRECTORY dir] target target)\n" + "Create rules to install the listed targets into the given directory. " + "The directory is relative to the installation prefix, which " + "is stored in the variable CMAKE_INSTALL_PREFIX. If RUNTIME_DIRECTORY " + "is specified, then on systems with special runtime files " + "(Windows DLL), the files will be copied to that directory."; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmInstallTargetsCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmLinkDirectoriesCommand.cxx b/CMakeLua/Source/cmLinkDirectoriesCommand.cxx new file mode 100644 index 0000000..afd03af --- /dev/null +++ b/CMakeLua/Source/cmLinkDirectoriesCommand.cxx @@ -0,0 +1,37 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLinkDirectoriesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLinkDirectoriesCommand.h" + +// cmLinkDirectoriesCommand +bool cmLinkDirectoriesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + return true; + } + + for(std::vector::const_iterator i = args.begin(); + i != args.end(); ++i) + { + std::string unixPath = *i; + cmSystemTools::ConvertToUnixSlashes(unixPath); + this->Makefile->AddLinkDirectory(unixPath.c_str()); + } + return true; +} + diff --git a/CMakeLua/Source/cmLinkDirectoriesCommand.h b/CMakeLua/Source/cmLinkDirectoriesCommand.h new file mode 100644 index 0000000..da10f73 --- /dev/null +++ b/CMakeLua/Source/cmLinkDirectoriesCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLinkDirectoriesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLinkDirectoriesCommand_h +#define cmLinkDirectoriesCommand_h + +#include "cmCommand.h" + +/** \class cmLinkDirectoriesCommand + * \brief Define a list of directories containing files to link. + * + * cmLinkDirectoriesCommand is used to specify a list + * of directories containing files to link into executable(s). + * Note that the command supports the use of CMake built-in variables + * such as CMAKE_BINARY_DIR and CMAKE_SOURCE_DIR. + */ +class cmLinkDirectoriesCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmLinkDirectoriesCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "link_directories";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Specify directories in which the linker will look for libraries."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " link_directories(directory1 directory2 ...)\n" + "Specify the paths in which the linker should search for libraries. " + "The command will apply only to targets created after it is called."; + } + + cmTypeMacro(cmLinkDirectoriesCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmLinkLibrariesCommand.cxx b/CMakeLua/Source/cmLinkLibrariesCommand.cxx new file mode 100644 index 0000000..cc51642 --- /dev/null +++ b/CMakeLua/Source/cmLinkLibrariesCommand.cxx @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLinkLibrariesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.24 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLinkLibrariesCommand.h" + +// cmLinkLibrariesCommand +bool cmLinkLibrariesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + return true; + } + // add libraries, nothe that there is an optional prefix + // of debug and optimized than can be used + for(std::vector::const_iterator i = args.begin(); + i != args.end(); ++i) + { + if (*i == "debug") + { + ++i; + if(i == args.end()) + { + this->SetError("The \"debug\" argument must be followed by " + "a library"); + return false; + } + this->Makefile->AddLinkLibrary(i->c_str(), + cmTarget::DEBUG); + } + else if (*i == "optimized") + { + ++i; + if(i == args.end()) + { + this->SetError("The \"optimized\" argument must be followed by " + "a library"); + return false; + } + this->Makefile->AddLinkLibrary(i->c_str(), + cmTarget::OPTIMIZED); + } + else + { + this->Makefile->AddLinkLibrary(i->c_str()); + } + } + + return true; +} + diff --git a/CMakeLua/Source/cmLinkLibrariesCommand.h b/CMakeLua/Source/cmLinkLibrariesCommand.h new file mode 100644 index 0000000..b34779c --- /dev/null +++ b/CMakeLua/Source/cmLinkLibrariesCommand.h @@ -0,0 +1,88 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLinkLibrariesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLinkLibrariesCommand_h +#define cmLinkLibrariesCommand_h + +#include "cmCommand.h" + +/** \class cmLinkLibrariesCommand + * \brief Specify a list of libraries to link into executables. + * + * cmLinkLibrariesCommand is used to specify a list of libraries to link + * into executable(s) or shared objects. The names of the libraries + * should be those defined by the LIBRARY(library) command(s). + */ +class cmLinkLibrariesCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmLinkLibrariesCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "link_libraries";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Deprecated. Use the target_link_libraries() command instead."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "Link libraries to all targets added later.\n" + " link_libraries(library1 library2 ...)\n" + "Specify a list of libraries to be linked into " + "any following targets (typically added with the add_executable " + "or add_library calls). This command is passed " + "down to all subdirectories. " + "The debug and optimized strings may be used to indicate that " + "the next library listed is to be used only for that specific " + "type of build."; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmLinkLibrariesCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmListCommand.cxx b/CMakeLua/Source/cmListCommand.cxx new file mode 100644 index 0000000..1da59e1 --- /dev/null +++ b/CMakeLua/Source/cmListCommand.cxx @@ -0,0 +1,499 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmListCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.17 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmListCommand.h" +#include +#include + +#include // required for atoi +#include +//---------------------------------------------------------------------------- +bool cmListCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1) + { + this->SetError("must be called with at least one argument."); + return false; + } + + const std::string &subCommand = args[0]; + if(subCommand == "LENGTH") + { + return this->HandleLengthCommand(args); + } + if(subCommand == "GET") + { + return this->HandleGetCommand(args); + } + if(subCommand == "APPEND") + { + return this->HandleAppendCommand(args); + } + if(subCommand == "FIND") + { + return this->HandleFindCommand(args); + } + if(subCommand == "INSERT") + { + return this->HandleInsertCommand(args); + } + if(subCommand == "REMOVE_AT") + { + return this->HandleRemoveAtCommand(args); + } + if(subCommand == "REMOVE_ITEM") + { + return this->HandleRemoveItemCommand(args); + } + if(subCommand == "SORT") + { + return this->HandleSortCommand(args); + } + if(subCommand == "REVERSE") + { + return this->HandleReverseCommand(args); + } + + std::string e = "does not recognize sub-command "+subCommand; + this->SetError(e.c_str()); + return false; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::GetListString(std::string& listString, const char* var) +{ + if ( !var ) + { + return false; + } + // get the old value + const char* cacheValue + = this->Makefile->GetDefinition(var); + if(!cacheValue) + { + return false; + } + listString = cacheValue; + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::GetList(std::vector& list, const char* var) +{ + std::string listString; + if ( !this->GetListString(listString, var) ) + { + return false; + } + // expand the variable + cmSystemTools::ExpandListArgument(listString, list); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::HandleLengthCommand(std::vector const& args) +{ + if(args.size() != 3) + { + this->SetError("sub-command LENGTH requires two arguments."); + return false; + } + + const std::string& listName = args[1]; + const std::string& variableName = args[args.size() - 1]; + std::vector varArgsExpanded; + // do not check the return value here + // if the list var is not found varArgsExpanded will have size 0 + // and we will return 0 + this->GetList(varArgsExpanded, listName.c_str()); + size_t length = varArgsExpanded.size(); + char buffer[1024]; + sprintf(buffer, "%d", static_cast(length)); + + this->Makefile->AddDefinition(variableName.c_str(), buffer); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::HandleGetCommand(std::vector const& args) +{ + if(args.size() < 4) + { + this->SetError("sub-command GET requires at least three arguments."); + return false; + } + + const std::string& listName = args[1]; + const std::string& variableName = args[args.size() - 1]; + // expand the variable + std::vector varArgsExpanded; + if ( !this->GetList(varArgsExpanded, listName.c_str()) ) + { + this->Makefile->AddDefinition(variableName.c_str(), "NOTFOUND"); + return true; + } + + std::string value; + size_t cc; + for ( cc = 2; cc < args.size()-1; cc ++ ) + { + int item = atoi(args[cc].c_str()); + if (value.size()) + { + value += ";"; + } + size_t nitem = varArgsExpanded.size(); + if ( item < 0 ) + { + item = (int)nitem + item; + } + if ( item < 0 || nitem <= (size_t)item ) + { + cmOStringStream str; + str << "index: " << item << " out of range (-" + << varArgsExpanded.size() << ", " + << varArgsExpanded.size()-1 << ")"; + this->SetError(str.str().c_str()); + return false; + } + value += varArgsExpanded[item]; + } + + this->Makefile->AddDefinition(variableName.c_str(), value.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::HandleAppendCommand(std::vector const& args) +{ + if(args.size() < 2) + { + this->SetError("sub-command APPEND requires at least one argument."); + return false; + } + + // Skip if nothing to append. + if(args.size() < 3) + { + return true; + } + + const std::string& listName = args[1]; + // expand the variable + std::string listString; + this->GetListString(listString, listName.c_str()); + size_t cc; + for ( cc = 2; cc < args.size(); ++ cc ) + { + if ( listString.size() ) + { + listString += ";"; + } + listString += args[cc]; + } + + this->Makefile->AddDefinition(listName.c_str(), listString.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::HandleFindCommand(std::vector const& args) +{ + if(args.size() != 4) + { + this->SetError("sub-command FIND requires three arguments."); + return false; + } + + const std::string& listName = args[1]; + const std::string& variableName = args[args.size() - 1]; + // expand the variable + std::vector varArgsExpanded; + if ( !this->GetList(varArgsExpanded, listName.c_str()) ) + { + this->Makefile->AddDefinition(variableName.c_str(), "-1"); + return true; + } + + std::vector::iterator it; + unsigned int index = 0; + for ( it = varArgsExpanded.begin(); it != varArgsExpanded.end(); ++ it ) + { + if ( *it == args[2] ) + { + char indexString[32]; + sprintf(indexString, "%d", index); + this->Makefile->AddDefinition(variableName.c_str(), indexString); + return true; + } + index++; + } + + this->Makefile->AddDefinition(variableName.c_str(), "-1"); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::HandleInsertCommand(std::vector const& args) +{ + if(args.size() < 4) + { + this->SetError("sub-command INSERT requires at least three arguments."); + return false; + } + + const std::string& listName = args[1]; + + // expand the variable + int item = atoi(args[2].c_str()); + std::vector varArgsExpanded; + if ( !this->GetList(varArgsExpanded, listName.c_str()) && item != 0) + { + cmOStringStream str; + str << "index: " << item << " out of range (0, 0)"; + this->SetError(str.str().c_str()); + return false; + } + + if ( varArgsExpanded.size() != 0 ) + { + size_t nitem = varArgsExpanded.size(); + if ( item < 0 ) + { + item = (int)nitem + item; + } + if ( item < 0 || nitem <= (size_t)item ) + { + cmOStringStream str; + str << "index: " << item << " out of range (-" + << varArgsExpanded.size() << ", " + << (varArgsExpanded.size() == 0?0:(varArgsExpanded.size()-1)) << ")"; + this->SetError(str.str().c_str()); + return false; + } + } + size_t cc; + size_t cnt = 0; + for ( cc = 3; cc < args.size(); ++ cc ) + { + varArgsExpanded.insert(varArgsExpanded.begin()+item+cnt, args[cc]); + cnt ++; + } + + std::string value; + for ( cc = 0; cc < varArgsExpanded.size(); cc ++ ) + { + if (value.size()) + { + value += ";"; + } + value += varArgsExpanded[cc]; + } + + this->Makefile->AddDefinition(listName.c_str(), value.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand +::HandleRemoveItemCommand(std::vector const& args) +{ + if(args.size() < 3) + { + this->SetError("sub-command REMOVE_ITEM requires two or more arguments."); + return false; + } + + const std::string& listName = args[1]; + // expand the variable + std::vector varArgsExpanded; + if ( !this->GetList(varArgsExpanded, listName.c_str()) ) + { + this->SetError("sub-command REMOVE_ITEM requires list to be present."); + return false; + } + + size_t cc; + for ( cc = 2; cc < args.size(); ++ cc ) + { + size_t kk = 0; + while ( kk < varArgsExpanded.size() ) + { + if ( varArgsExpanded[kk] == args[cc] ) + { + varArgsExpanded.erase(varArgsExpanded.begin()+kk); + } + else + { + kk ++; + } + } + } + + std::string value; + for ( cc = 0; cc < varArgsExpanded.size(); cc ++ ) + { + if (value.size()) + { + value += ";"; + } + value += varArgsExpanded[cc]; + } + + this->Makefile->AddDefinition(listName.c_str(), value.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand +::HandleReverseCommand(std::vector const& args) +{ + if(args.size() < 2) + { + this->SetError("sub-command REVERSE requires a list as an argument."); + return false; + } + + const std::string& listName = args[1]; + // expand the variable + std::vector varArgsExpanded; + if ( !this->GetList(varArgsExpanded, listName.c_str()) ) + { + this->SetError("sub-command REVERSE requires list to be present."); + return false; + } + + std::string value; + std::vector::reverse_iterator it; + for ( it = varArgsExpanded.rbegin(); it != varArgsExpanded.rend(); ++ it ) + { + if (value.size()) + { + value += ";"; + } + value += it->c_str(); + } + + this->Makefile->AddDefinition(listName.c_str(), value.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand +::HandleSortCommand(std::vector const& args) +{ + if(args.size() < 2) + { + this->SetError("sub-command SORT requires a list as an argument."); + return false; + } + + const std::string& listName = args[1]; + // expand the variable + std::vector varArgsExpanded; + if ( !this->GetList(varArgsExpanded, listName.c_str()) ) + { + this->SetError("sub-command SORT requires list to be present."); + return false; + } + + std::sort(varArgsExpanded.begin(), varArgsExpanded.end()); + + std::string value; + std::vector::iterator it; + for ( it = varArgsExpanded.begin(); it != varArgsExpanded.end(); ++ it ) + { + if (value.size()) + { + value += ";"; + } + value += it->c_str(); + } + + this->Makefile->AddDefinition(listName.c_str(), value.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmListCommand::HandleRemoveAtCommand( + std::vector const& args) +{ + if(args.size() < 3) + { + this->SetError("sub-command REMOVE_AT requires at least " + "two arguments."); + return false; + } + + const std::string& listName = args[1]; + // expand the variable + std::vector varArgsExpanded; + if ( !this->GetList(varArgsExpanded, listName.c_str()) ) + { + this->SetError("sub-command REMOVE_AT requires list to be present."); + return false; + } + + size_t cc; + std::vector removed; + for ( cc = 2; cc < args.size(); ++ cc ) + { + int item = atoi(args[cc].c_str()); + size_t nitem = varArgsExpanded.size(); + if ( item < 0 ) + { + item = (int)nitem + item; + } + if ( item < 0 || nitem <= (size_t)item ) + { + cmOStringStream str; + str << "index: " << item << " out of range (-" + << varArgsExpanded.size() << ", " + << varArgsExpanded.size()-1 << ")"; + this->SetError(str.str().c_str()); + return false; + } + removed.push_back(static_cast(item)); + } + + std::string value; + for ( cc = 0; cc < varArgsExpanded.size(); ++ cc ) + { + size_t kk; + bool found = false; + for ( kk = 0; kk < removed.size(); ++ kk ) + { + if ( cc == removed[kk] ) + { + found = true; + } + } + + if ( !found ) + { + if (value.size()) + { + value += ";"; + } + value += varArgsExpanded[cc]; + } + } + + this->Makefile->AddDefinition(listName.c_str(), value.c_str()); + return true; +} + diff --git a/CMakeLua/Source/cmListCommand.h b/CMakeLua/Source/cmListCommand.h new file mode 100644 index 0000000..b93fbe1 --- /dev/null +++ b/CMakeLua/Source/cmListCommand.h @@ -0,0 +1,122 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmListCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmListCommand_h +#define cmListCommand_h + +#include "cmCommand.h" + +/** \class cmListCommand + * \brief Common list operations + * + */ +class cmListCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmListCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "list";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "List operations."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " list(LENGTH )\n" + " list(GET [ ...] " + ")\n" + " list(APPEND [ ...])\n" + " list(FIND )\n" + " list(INSERT [ ...])\n" + " list(REMOVE_ITEM [ ...])\n" + " list(REMOVE_AT [ ...])\n" + " list(REVERSE )\n" + " list(SORT )\n" + "LENGTH will return a given list's length.\n" + "GET will return list of elements specified by indices from the list.\n" + "APPEND will append elements to the list.\n" + "FIND will return the index of the element specified in the list or -1 " + "if it wasn't found.\n" + "INSERT will insert elements to the list to the specified location.\n" + "REMOVE_AT and REMOVE_ITEM will remove items from the list. The " + "difference is that REMOVE_ITEM will remove the given items, while " + "REMOVE_AT will remove the items at the given indices.\n" + "REVERSE reverses the contents of the list in-place.\n" + "SORT sorts the list in-place alphabetically.\n" + "NOTES: A list in cmake is a ; separated group of strings. " + "To create a list the set command can be used. For example, " + "set(var a b c d e) creates a list with a;b;c;d;e, and " + "set(var \"a b c d e\") creates a string or a list with one " + "item in it.\n" + "When specifying index values, if is 0 or" + " greater, it is indexed from the " + "beginning of the list, with 0 representing the first list element. " + "If is -1 or lesser, it is indexed from the end of " + "the list, with -1 representing the last list element. Be careful " + "when counting with negative indices: they do not start from 0. " + "-0 is equivalent to 0, the first list element.\n" + ; + } + + cmTypeMacro(cmListCommand, cmCommand); +protected: + bool HandleLengthCommand(std::vector const& args); + bool HandleGetCommand(std::vector const& args); + bool HandleAppendCommand(std::vector const& args); + bool HandleFindCommand(std::vector const& args); + bool HandleInsertCommand(std::vector const& args); + bool HandleRemoveAtCommand(std::vector const& args); + bool HandleRemoveItemCommand(std::vector const& args); + bool HandleSortCommand(std::vector const& args); + bool HandleReverseCommand(std::vector const& args); + + + bool GetList(std::vector& list, const char* var); + bool GetListString(std::string& listString, const char* var); +}; + + +#endif diff --git a/CMakeLua/Source/cmListFileCache.cxx b/CMakeLua/Source/cmListFileCache.cxx new file mode 100644 index 0000000..3f8f98e --- /dev/null +++ b/CMakeLua/Source/cmListFileCache.cxx @@ -0,0 +1,222 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmListFileCache.cxx,v $ + Language: C++ + Date: $Date: 2007/11/19 18:42:05 $ + Version: $Revision: 1.30 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmListFileCache.h" + +#include "cmListFileLexer.h" +#include "cmSystemTools.h" + +#include + +#ifdef __BORLANDC__ +# pragma warn -8060 /* possibly incorrect assignment */ +#endif + +bool cmListFileCacheParseFunction(cmListFileLexer* lexer, + cmListFileFunction& function, + const char* filename); + +bool cmListFile::ParseFile(const char* filename, bool requireProjectCommand) +{ + if(!cmSystemTools::FileExists(filename)) + { + return false; + } + + // Create the scanner. + cmListFileLexer* lexer = cmListFileLexer_New(); + if(!lexer) + { + cmSystemTools::Error("cmListFileCache: error allocating lexer "); + return false; + } + + // Open the file. + if(!cmListFileLexer_SetFileName(lexer, filename)) + { + cmListFileLexer_Delete(lexer); + cmSystemTools::Error("cmListFileCache: error can not open file ", + filename); + return false; + } + + // Use a simple recursive-descent parser to process the token + // stream. + this->ModifiedTime = cmSystemTools::ModifiedTime(filename); + bool parseError = false; + bool haveNewline = true; + cmListFileLexer_Token* token; + while(!parseError && (token = cmListFileLexer_Scan(lexer))) + { + if(token->type == cmListFileLexer_Token_Newline) + { + haveNewline = true; + } + else if(token->type == cmListFileLexer_Token_Identifier) + { + if(haveNewline) + { + haveNewline = false; + cmListFileFunction inFunction; + inFunction.Name = token->text; + inFunction.FilePath = filename; + inFunction.Line = token->line; + if(cmListFileCacheParseFunction(lexer, inFunction, filename)) + { + this->Functions.push_back(inFunction); + } + else + { + parseError = true; + } + } + else + { + cmOStringStream error; + error << "Error in cmake code at\n" + << filename << ":" << token->line << ":\n" + << "Parse error. Expected a newline, got " + << cmListFileLexer_GetTypeAsString(lexer, token->type) + << " with text \"" << token->text << "\"."; + cmSystemTools::Error(error.str().c_str()); + parseError = true; + } + } + else + { + cmOStringStream error; + error << "Error in cmake code at\n" + << filename << ":" << token->line << ":\n" + << "Parse error. Expected a command name, got " + << cmListFileLexer_GetTypeAsString(lexer, token->type) + << " with text \"" + << token->text << "\"."; + cmSystemTools::Error(error.str().c_str()); + parseError = true; + } + } + if (parseError) + { + this->ModifiedTime = 0; + } + + cmListFileLexer_Delete(lexer); + + if(requireProjectCommand) + { + bool hasProject = false; + // search for a project command + for(std::vector::iterator i + = this->Functions.begin(); + i != this->Functions.end(); ++i) + { + if(cmSystemTools::LowerCase(i->Name) == "project") + { + hasProject = true; + break; + } + } + // if no project command is found, add one + if(!hasProject) + { + cmListFileFunction project; + project.Name = "PROJECT"; + cmListFileArgument prj("Project", false, filename, 0); + project.Arguments.push_back(prj); + this->Functions.insert(this->Functions.begin(),project); + } + } + if(parseError) + { + return false; + } + return true; +} + +bool cmListFileCacheParseFunction(cmListFileLexer* lexer, + cmListFileFunction& function, + const char* filename) +{ + // Command name has already been parsed. Read the left paren. + cmListFileLexer_Token* token; + if(!(token = cmListFileLexer_Scan(lexer))) + { + cmOStringStream error; + error << "Error in cmake code at\n" + << filename << ":" << cmListFileLexer_GetCurrentLine(lexer) << ":\n" + << "Parse error. Function missing opening \"(\"."; + cmSystemTools::Error(error.str().c_str()); + return false; + } + if(token->type != cmListFileLexer_Token_ParenLeft) + { + cmOStringStream error; + error << "Error in cmake code at\n" + << filename << ":" << cmListFileLexer_GetCurrentLine(lexer) << ":\n" + << "Parse error. Expected \"(\", got " + << cmListFileLexer_GetTypeAsString(lexer, token->type) + << " with text \"" << token->text << "\"."; + cmSystemTools::Error(error.str().c_str()); + return false; + } + + // Arguments. + unsigned long lastLine = cmListFileLexer_GetCurrentLine(lexer); + while((token = cmListFileLexer_Scan(lexer))) + { + if(token->type == cmListFileLexer_Token_ParenRight) + { + return true; + } + else if(token->type == cmListFileLexer_Token_Identifier || + token->type == cmListFileLexer_Token_ArgumentUnquoted) + { + cmListFileArgument a(token->text, + false, filename, token->line); + function.Arguments.push_back(a); + } + else if(token->type == cmListFileLexer_Token_ArgumentQuoted) + { + cmListFileArgument a(token->text, + true, filename, token->line); + function.Arguments.push_back(a); + } + else if(token->type != cmListFileLexer_Token_Newline) + { + // Error. + cmOStringStream error; + error << "Error in cmake code at\n" + << filename << ":" << cmListFileLexer_GetCurrentLine(lexer) + << ":\n" + << "Parse error. Function missing ending \")\". " + << "Instead found " + << cmListFileLexer_GetTypeAsString(lexer, token->type) + << " with text \"" << token->text << "\"."; + cmSystemTools::Error(error.str().c_str()); + return false; + } + lastLine = cmListFileLexer_GetCurrentLine(lexer); + } + + cmOStringStream error; + error << "Error in cmake code at\n" + << filename << ":" << lastLine << ":\n" + << "Parse error. Function missing ending \")\". " + << "End of file reached."; + cmSystemTools::Error(error.str().c_str()); + + return false; +} diff --git a/CMakeLua/Source/cmListFileCache.h b/CMakeLua/Source/cmListFileCache.h new file mode 100644 index 0000000..bdfa0f5 --- /dev/null +++ b/CMakeLua/Source/cmListFileCache.h @@ -0,0 +1,71 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmListFileCache.h,v $ + Language: C++ + Date: $Date: 2007/05/11 12:36:05 $ + Version: $Revision: 1.18 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmListFileCache_h +#define cmListFileCache_h + +#include "cmStandardIncludes.h" + +/** \class cmListFileCache + * \brief A class to cache list file contents. + * + * cmListFileCache is a class used to cache the contents of parsed + * cmake list files. + */ + +struct cmListFileArgument +{ + cmListFileArgument(): Value(), Quoted(false), FilePath(0), Line(0) {} + cmListFileArgument(const cmListFileArgument& r): + Value(r.Value), Quoted(r.Quoted), FilePath(r.FilePath), Line(r.Line) {} + cmListFileArgument(const std::string& v, bool q, const char* file, + long line): Value(v), Quoted(q), + FilePath(file), Line(line) {} + bool operator == (const cmListFileArgument& r) const + { + return (this->Value == r.Value) && (this->Quoted == r.Quoted); + } + bool operator != (const cmListFileArgument& r) const + { + return !(*this == r); + } + std::string Value; + bool Quoted; + const char* FilePath; + long Line; +}; + +struct cmListFileFunction +{ + std::string Name; + std::vector Arguments; + std::string FilePath; + long Line; +}; + +struct cmListFile +{ + cmListFile() + :ModifiedTime(0) + { + } + bool ParseFile(const char* path, bool requireProjectCommand); + + long int ModifiedTime; + std::vector Functions; +}; + +#endif diff --git a/CMakeLua/Source/cmListFileLexer.c b/CMakeLua/Source/cmListFileLexer.c new file mode 100644 index 0000000..d878867 --- /dev/null +++ b/CMakeLua/Source/cmListFileLexer.c @@ -0,0 +1,2321 @@ +#line 2 "cmListFileLexer.c" + +#line 4 "cmListFileLexer.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 31 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +int cmListFileLexer_yylex_init (yyscan_t* scanner); + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yyg->yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yyg->yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE cmListFileLexer_yyrestart(yyin ,yyscanner ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires + * access to the local variable yy_act. Since yyless() is a macro, it would break + * existing scanners that call yyless() from OUTSIDE cmListFileLexer_yylex. + * One obvious solution it to make yy_act a global. I tried that, and saw + * a 5% performance hit in a non-yylineno scanner, because yy_act is + * normally declared as a register variable-- so it is not worth it. + */ + #define YY_LESS_LINENO(n) \ + do { \ + int yyl;\ + for ( yyl = n; yyl < yyleng; ++yyl )\ + if ( yytext[yyl] == '\n' )\ + --yylineno;\ + }while(0) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = yyg->yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef unsigned int yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via cmListFileLexer_yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ + ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] + +void cmListFileLexer_yyrestart (FILE *input_file ,yyscan_t yyscanner ); +void cmListFileLexer_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmListFileLexer_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); +void cmListFileLexer_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmListFileLexer_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); +void cmListFileLexer_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); +void cmListFileLexer_yypop_buffer_state (yyscan_t yyscanner ); + +static void cmListFileLexer_yyensure_buffer_stack (yyscan_t yyscanner ); +static void cmListFileLexer_yy_load_buffer_state (yyscan_t yyscanner ); +static void cmListFileLexer_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); + +#define YY_FLUSH_BUFFER cmListFileLexer_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) + +YY_BUFFER_STATE cmListFileLexer_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmListFileLexer_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmListFileLexer_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); + +void *cmListFileLexer_yyalloc (yy_size_t ,yyscan_t yyscanner ); +void *cmListFileLexer_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +void cmListFileLexer_yyfree (void * ,yyscan_t yyscanner ); + +#define yy_new_buffer cmListFileLexer_yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + cmListFileLexer_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmListFileLexer_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + cmListFileLexer_yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + cmListFileLexer_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define cmListFileLexer_yywrap(n) 1 +#define YY_SKIP_YYWRAP + +typedef unsigned char YY_CHAR; + +typedef int yy_state_type; + +#define yytext_ptr yytext_r + +static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); +static int yy_get_next_buffer (yyscan_t yyscanner ); +static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yyg->yytext_ptr = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + yyg->yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yyg->yy_c_buf_p = yy_cp; + +#define YY_NUM_RULES 14 +#define YY_END_OF_BUFFER 15 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[39] = + { 0, + 0, 0, 0, 0, 15, 6, 12, 1, 7, 2, + 6, 3, 4, 6, 13, 8, 9, 10, 11, 6, + 0, 6, 0, 2, 0, 5, 6, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 5, 6, 7, 1, 1, 1, 8, + 9, 1, 1, 1, 1, 1, 1, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, + 1, 1, 1, 1, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 1, 12, 1, 1, 11, 1, 11, 11, 11, 11, + + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[13] = + { 0, + 1, 1, 2, 1, 3, 1, 1, 1, 4, 4, + 4, 1 + } ; + +static yyconst flex_int16_t yy_base[48] = + { 0, + 0, 0, 10, 20, 34, 32, 89, 89, 89, 0, + 23, 89, 89, 35, 0, 18, 89, 89, 44, 0, + 49, 21, 0, 0, 19, 0, 0, 15, 59, 0, + 18, 0, 15, 12, 11, 10, 9, 89, 64, 68, + 72, 76, 80, 13, 84, 12, 10 + } ; + +static yyconst flex_int16_t yy_def[48] = + { 0, + 38, 1, 39, 39, 38, 38, 38, 38, 38, 40, + 6, 38, 38, 6, 41, 42, 38, 38, 42, 6, + 38, 6, 43, 40, 44, 14, 6, 42, 42, 21, + 21, 45, 46, 44, 47, 46, 47, 0, 38, 38, + 38, 38, 38, 38, 38, 38, 38 + } ; + +static yyconst flex_int16_t yy_nxt[102] = + { 0, + 6, 7, 8, 7, 9, 10, 11, 12, 13, 6, + 14, 15, 17, 37, 18, 36, 34, 30, 20, 30, + 27, 19, 17, 20, 18, 35, 29, 27, 33, 29, + 25, 19, 20, 38, 38, 38, 21, 38, 22, 38, + 38, 20, 20, 23, 26, 26, 28, 38, 28, 30, + 30, 38, 38, 20, 38, 31, 38, 38, 30, 30, + 32, 28, 38, 28, 16, 16, 16, 16, 24, 38, + 24, 24, 27, 38, 27, 27, 28, 38, 38, 28, + 20, 38, 20, 20, 30, 38, 30, 30, 5, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + + 38 + } ; + +static yyconst flex_int16_t yy_chk[102] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 47, 3, 46, 44, 37, 36, 35, + 34, 3, 4, 33, 4, 31, 28, 25, 22, 16, + 11, 4, 6, 5, 0, 0, 6, 0, 6, 0, + 0, 6, 6, 6, 14, 14, 19, 0, 19, 21, + 21, 0, 0, 21, 0, 21, 0, 0, 21, 21, + 21, 29, 0, 29, 39, 39, 39, 39, 40, 0, + 40, 40, 41, 0, 41, 41, 42, 0, 0, 42, + 43, 0, 43, 43, 45, 0, 45, 45, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + + 38 + } ; + +/* Table of booleans, true if rule could match eol. */ +static yyconst flex_int32_t yy_rule_can_match_eol[15] = + { 0, +1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, }; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +#line 1 "cmListFileLexer.in.l" +#line 2 "cmListFileLexer.in.l" +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmListFileLexer.c,v $ + Language: C++ + Date: $Date: 2006/08/09 13:45:04 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmListFileLexer_yy -ocmListFileLexer.c cmListFileLexer.in.l + +Modify cmListFileLexer.c: + - remove TABs + - remove the yyunput function + - add a statement "(void)yyscanner;" to the top of these methods: + yy_fatal_error, cmListFileLexer_yyalloc, cmListFileLexer_yyrealloc, cmListFileLexer_yyfree + - remove all YY_BREAK lines occurring right after return statements + - remove the isatty forward declaration + +*/ + +#include "cmStandardLexer.h" + +/* Setup the proper cmListFileLexer_yylex declaration. */ +#define YY_EXTRA_TYPE cmListFileLexer* +#define YY_DECL int cmListFileLexer_yylex (yyscan_t yyscanner, cmListFileLexer* lexer) + +#include "cmListFileLexer.h" + +/*--------------------------------------------------------------------------*/ +struct cmListFileLexer_s +{ + cmListFileLexer_Token token; + int line; + int column; + int size; + FILE* file; + char* string_buffer; + char* string_position; + int string_left; + yyscan_t scanner; +}; + +static void cmListFileLexerSetToken(cmListFileLexer* lexer, const char* text, + int length); +static void cmListFileLexerAppend(cmListFileLexer* lexer, const char* text, + int length); +static int cmListFileLexerInput(cmListFileLexer* lexer, char* buffer, + size_t bufferSize); +static void cmListFileLexerInit(cmListFileLexer* lexer); +static void cmListFileLexerDestroy(cmListFileLexer* lexer); + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = cmListFileLexerInput(cmListFileLexer_yyget_extra(yyscanner), buf, max_size); } + +/*--------------------------------------------------------------------------*/ + +#line 568 "cmListFileLexer.c" + +#define INITIAL 0 +#define STRING 1 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Holds the entire state of the reentrant scanner. */ +struct yyguts_t + { + + /* User-defined. Not touched by flex. */ + YY_EXTRA_TYPE yyextra_r; + + /* The rest are the same as the globals declared in the non-reentrant scanner. */ + FILE *yyin_r, *yyout_r; + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + char yy_hold_char; + int yy_n_chars; + int yyleng_r; + char *yy_c_buf_p; + int yy_init; + int yy_start; + int yy_did_buffer_switch_on_eof; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int *yy_start_stack; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + int yylineno_r; + int yy_flex_debug_r; + + char *yytext_r; + int yy_more_flag; + int yy_more_len; + + }; /* end struct yyguts_t */ + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int cmListFileLexer_yylex_destroy (yyscan_t yyscanner ); + +int cmListFileLexer_yyget_debug (yyscan_t yyscanner ); + +void cmListFileLexer_yyset_debug (int debug_flag ,yyscan_t yyscanner ); + +YY_EXTRA_TYPE cmListFileLexer_yyget_extra (yyscan_t yyscanner ); + +void cmListFileLexer_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); + +FILE *cmListFileLexer_yyget_in (yyscan_t yyscanner ); + +void cmListFileLexer_yyset_in (FILE * in_str ,yyscan_t yyscanner ); + +FILE *cmListFileLexer_yyget_out (yyscan_t yyscanner ); + +void cmListFileLexer_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +int cmListFileLexer_yyget_leng (yyscan_t yyscanner ); + +char *cmListFileLexer_yyget_text (yyscan_t yyscanner ); + +int cmListFileLexer_yyget_lineno (yyscan_t yyscanner ); + +void cmListFileLexer_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int cmListFileLexer_yywrap (yyscan_t yyscanner ); +#else +extern int cmListFileLexer_yywrap (yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (yyscan_t yyscanner ); +#else +static int input (yyscan_t yyscanner ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int cmListFileLexer_yylex (yyscan_t yyscanner); + +#define YY_DECL int cmListFileLexer_yylex (yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + +#line 100 "cmListFileLexer.in.l" + + +#line 787 "cmListFileLexer.c" + + if ( yyg->yy_init ) + { + yyg->yy_init = 0; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yyg->yy_start ) + yyg->yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + cmListFileLexer_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmListFileLexer_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmListFileLexer_yy_load_buffer_state(yyscanner ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 39 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 89 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + + if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) + { + int yyl; + for ( yyl = 0; yyl < yyleng; ++yyl ) + if ( yytext[yyl] == '\n' ) + + do{ yylineno++; + yycolumn=0; + }while(0) +; + } + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; + +case 1: +/* rule 1 can match eol */ +YY_RULE_SETUP +#line 102 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_Newline; + cmListFileLexerSetToken(lexer, yytext, yyleng); + ++lexer->line; + lexer->column = 1; + return 1; +} +case 2: +YY_RULE_SETUP +#line 110 "cmListFileLexer.in.l" +{ + lexer->column += yyleng; +} + YY_BREAK +case 3: +YY_RULE_SETUP +#line 114 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_ParenLeft; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} +case 4: +YY_RULE_SETUP +#line 121 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_ParenRight; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} +case 5: +YY_RULE_SETUP +#line 128 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_Identifier; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} +case 6: +YY_RULE_SETUP +#line 135 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_ArgumentUnquoted; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} +case 7: +YY_RULE_SETUP +#line 142 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_ArgumentQuoted; + cmListFileLexerSetToken(lexer, "", 0); + lexer->column += yyleng; + BEGIN(STRING); +} + YY_BREAK +case 8: +/* rule 8 can match eol */ +YY_RULE_SETUP +#line 149 "cmListFileLexer.in.l" +{ + cmListFileLexerAppend(lexer, yytext, yyleng); + lexer->column += yyleng; +} + YY_BREAK +case 9: +/* rule 9 can match eol */ +YY_RULE_SETUP +#line 154 "cmListFileLexer.in.l" +{ + cmListFileLexerAppend(lexer, yytext, yyleng); + ++lexer->line; + lexer->column = 1; +} + YY_BREAK +case 10: +YY_RULE_SETUP +#line 160 "cmListFileLexer.in.l" +{ + lexer->column += yyleng; + BEGIN(INITIAL); + return 1; +} +case 11: +YY_RULE_SETUP +#line 166 "cmListFileLexer.in.l" +{ + cmListFileLexerAppend(lexer, yytext, yyleng); + lexer->column += yyleng; +} + YY_BREAK +case YY_STATE_EOF(STRING): +#line 171 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_BadString; + BEGIN(INITIAL); + return 1; +} +case 12: +YY_RULE_SETUP +#line 177 "cmListFileLexer.in.l" +{ + lexer->column += yyleng; +} + YY_BREAK +case 13: +YY_RULE_SETUP +#line 181 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_BadCharacter; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} +case YY_STATE_EOF(INITIAL): +#line 188 "cmListFileLexer.in.l" +{ + lexer->token.type = cmListFileLexer_Token_None; + cmListFileLexerSetToken(lexer, 0, 0); + return 0; +} +case 14: +YY_RULE_SETUP +#line 194 "cmListFileLexer.in.l" +ECHO; + YY_BREAK +#line 1025 "cmListFileLexer.c" + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * cmListFileLexer_yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yyg->yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yyg->yy_c_buf_p; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if ( cmListFileLexer_yywrap(yyscanner ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of cmListFileLexer_yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = yyg->yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; + + else + { + size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + cmListFileLexer_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if ( yyg->yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + cmListFileLexer_yyrestart(yyin ,yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_current_state = yyg->yy_start; + + for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 39 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +{ + register int yy_is_jam; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + register char *yy_cp = yyg->yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 39 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 38); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (yyscan_t yyscanner) +#else + static int input (yyscan_t yyscanner) +#endif + +{ + int c; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + cmListFileLexer_yyrestart(yyin ,yyscanner); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( cmListFileLexer_yywrap(yyscanner ) ) + return EOF; + + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(yyscanner); +#else + return input(yyscanner); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; + + if ( c == '\n' ) + + do{ yylineno++; + yycolumn=0; + }while(0) +; + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * @param yyscanner The scanner object. + * @note This function does not reset the start condition to @c INITIAL . + */ + void cmListFileLexer_yyrestart (FILE * input_file , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! YY_CURRENT_BUFFER ){ + cmListFileLexer_yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + cmListFileLexer_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + } + + cmListFileLexer_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); + cmListFileLexer_yy_load_buffer_state(yyscanner ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * @param yyscanner The scanner object. + */ + void cmListFileLexer_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* TODO. We should be able to replace this entire function body + * with + * cmListFileLexer_yypop_buffer_state(); + * cmListFileLexer_yypush_buffer_state(new_buffer); + */ + cmListFileLexer_yyensure_buffer_stack (yyscanner); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + cmListFileLexer_yy_load_buffer_state(yyscanner ); + + /* We don't actually know whether we did this switch during + * EOF (cmListFileLexer_yywrap()) processing, but the only time this flag + * is looked at is after cmListFileLexer_yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; +} + +static void cmListFileLexer_yy_load_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * @param yyscanner The scanner object. + * @return the allocated buffer state. + */ + YY_BUFFER_STATE cmListFileLexer_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) cmListFileLexer_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmListFileLexer_yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) cmListFileLexer_yyalloc(b->yy_buf_size + 2 ,yyscanner ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmListFileLexer_yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + cmListFileLexer_yy_init_buffer(b,file ,yyscanner); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with cmListFileLexer_yy_create_buffer() + * @param yyscanner The scanner object. + */ + void cmListFileLexer_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + cmListFileLexer_yyfree((void *) b->yy_ch_buf ,yyscanner ); + + cmListFileLexer_yyfree((void *) b ,yyscanner ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a cmListFileLexer_yyrestart() or at EOF. + */ + static void cmListFileLexer_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) + +{ + int oerrno = errno; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + cmListFileLexer_yy_flush_buffer(b ,yyscanner); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then cmListFileLexer_yy_init_buffer was _probably_ + * called from cmListFileLexer_yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * @param yyscanner The scanner object. + */ + void cmListFileLexer_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + cmListFileLexer_yy_load_buffer_state(yyscanner ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * @param yyscanner The scanner object. + */ +void cmListFileLexer_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (new_buffer == NULL) + return; + + cmListFileLexer_yyensure_buffer_stack(yyscanner); + + /* This block is copied from cmListFileLexer_yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from cmListFileLexer_yy_switch_to_buffer. */ + cmListFileLexer_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * @param yyscanner The scanner object. + */ +void cmListFileLexer_yypop_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + cmListFileLexer_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) { + cmListFileLexer_yy_load_buffer_state(yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void cmListFileLexer_yyensure_buffer_stack (yyscan_t yyscanner) +{ + int num_to_alloc; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (!yyg->yy_buffer_stack) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmListFileLexer_yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state**)cmListFileLexer_yyrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + + /* zero only the new slots.*/ + memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); + yyg->yy_buffer_stack_max = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmListFileLexer_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) cmListFileLexer_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in cmListFileLexer_yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + cmListFileLexer_yy_switch_to_buffer(b ,yyscanner ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to cmListFileLexer_yylex() will + * scan from a @e copy of @a str. + * @param str a NUL-terminated string to scan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * cmListFileLexer_yy_scan_bytes() instead. + */ +YY_BUFFER_STATE cmListFileLexer_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner) +{ + + return cmListFileLexer_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner); +} + +/** Setup the input buffer state to scan the given bytes. The next call to cmListFileLexer_yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE cmListFileLexer_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = len + 2; + buf = (char *) cmListFileLexer_yyalloc(n ,yyscanner ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in cmListFileLexer_yy_scan_bytes()" ); + + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; + + buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + + b = cmListFileLexer_yy_scan_buffer(buf,n ,yyscanner); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in cmListFileLexer_yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) +{ + (void)yyscanner; + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = yyg->yy_hold_char; \ + yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ + yyg->yy_hold_char = *yyg->yy_c_buf_p; \ + *yyg->yy_c_buf_p = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the user-defined data for this scanner. + * @param yyscanner The scanner object. + */ +YY_EXTRA_TYPE cmListFileLexer_yyget_extra (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyextra; +} + +/** Get the current line number. + * @param yyscanner The scanner object. + */ +int cmListFileLexer_yyget_lineno (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yylineno; +} + +/** Get the current column number. + * @param yyscanner The scanner object. + */ +int cmListFileLexer_yyget_column (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yycolumn; +} + +/** Get the input stream. + * @param yyscanner The scanner object. + */ +FILE *cmListFileLexer_yyget_in (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyin; +} + +/** Get the output stream. + * @param yyscanner The scanner object. + */ +FILE *cmListFileLexer_yyget_out (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyout; +} + +/** Get the length of the current token. + * @param yyscanner The scanner object. + */ +int cmListFileLexer_yyget_leng (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyleng; +} + +/** Get the current token. + * @param yyscanner The scanner object. + */ + +char *cmListFileLexer_yyget_text (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yytext; +} + +/** Set the user-defined data. This data is never touched by the scanner. + * @param user_defined The data to be associated with this scanner. + * @param yyscanner The scanner object. + */ +void cmListFileLexer_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyextra = user_defined ; +} + +/** Set the current line number. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmListFileLexer_yyset_lineno (int line_number , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmListFileLexer_yyset_lineno called with no buffer" , yyscanner); + + yylineno = line_number; +} + +/** Set the current column. + * @param line_number + * @param yyscanner The scanner object. + */ +void cmListFileLexer_yyset_column (int column_no , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* column is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + yy_fatal_error( "cmListFileLexer_yyset_column called with no buffer" , yyscanner); + + yycolumn = column_no; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * @param yyscanner The scanner object. + * @see cmListFileLexer_yy_switch_to_buffer + */ +void cmListFileLexer_yyset_in (FILE * in_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyin = in_str ; +} + +void cmListFileLexer_yyset_out (FILE * out_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyout = out_str ; +} + +int cmListFileLexer_yyget_debug (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yy_flex_debug; +} + +void cmListFileLexer_yyset_debug (int bdebug , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yy_flex_debug = bdebug ; +} + +/* Accessor methods for yylval and yylloc */ + +static int yy_init_globals (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + /* Initialization is the same as for the non-reentrant scanner. + This function is called once per scanner lifetime. */ + + yyg->yy_buffer_stack = 0; + yyg->yy_buffer_stack_top = 0; + yyg->yy_buffer_stack_max = 0; + yyg->yy_c_buf_p = (char *) 0; + yyg->yy_init = 1; + yyg->yy_start = 0; + yyg->yy_start_stack_ptr = 0; + yyg->yy_start_stack_depth = 0; + yyg->yy_start_stack = (int *) 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * cmListFileLexer_yylex_init() + */ + return 0; +} + +/* User-visible API */ + +/* cmListFileLexer_yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. + */ + +int cmListFileLexer_yylex_init(yyscan_t* ptr_yy_globals) + +{ + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) cmListFileLexer_yyalloc ( sizeof( struct yyguts_t ), NULL ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + memset(*ptr_yy_globals,0,sizeof(struct yyguts_t)); + + return yy_init_globals ( *ptr_yy_globals ); +} + +/* cmListFileLexer_yylex_destroy is for both reentrant and non-reentrant scanners. */ +int cmListFileLexer_yylex_destroy (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + cmListFileLexer_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); + YY_CURRENT_BUFFER_LVALUE = NULL; + cmListFileLexer_yypop_buffer_state(yyscanner); + } + + /* Destroy the stack itself. */ + cmListFileLexer_yyfree(yyg->yy_buffer_stack ,yyscanner); + yyg->yy_buffer_stack = NULL; + + /* Destroy the start condition stack. */ + cmListFileLexer_yyfree(yyg->yy_start_stack ,yyscanner ); + yyg->yy_start_stack = NULL; + + /* Destroy the main struct (reentrant only). */ + cmListFileLexer_yyfree ( yyscanner , yyscanner ); + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +{ + register int i; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +{ + register int n; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *cmListFileLexer_yyalloc (yy_size_t size , yyscan_t yyscanner) +{ + (void)yyscanner; + return (void *) malloc( size ); +} + +void *cmListFileLexer_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + (void)yyscanner; + return (void *) realloc( (char *) ptr, size ); +} + +void cmListFileLexer_yyfree (void * ptr , yyscan_t yyscanner) +{ + (void)yyscanner; + free( (char *) ptr ); /* see cmListFileLexer_yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef yytext_ptr +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif +#line 194 "cmListFileLexer.in.l" + + + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerSetToken(cmListFileLexer* lexer, const char* text, + int length) +{ + /* Set the token line and column number. */ + lexer->token.line = lexer->line; + lexer->token.column = lexer->column; + + /* Use the same buffer if possible. */ + if(lexer->token.text) + { + if(text && length < lexer->size) + { + strcpy(lexer->token.text, text); + lexer->token.length = length; + return; + } + free(lexer->token.text); + lexer->token.text = 0; + lexer->size = 0; + } + + /* Need to extend the buffer. */ + if(text) + { + lexer->token.text = strdup(text); + lexer->token.length = length; + lexer->size = length+1; + } + else + { + lexer->token.length = 0; + } +} + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerAppend(cmListFileLexer* lexer, const char* text, + int length) +{ + char* temp; + int newSize; + + /* If the appended text will fit in the buffer, do not reallocate. */ + newSize = lexer->token.length + length + 1; + if(lexer->token.text && newSize <= lexer->size) + { + strcpy(lexer->token.text+lexer->token.length, text); + lexer->token.length += length; + return; + } + + /* We need to extend the buffer. */ + temp = malloc(newSize); + if(lexer->token.text) + { + memcpy(temp, lexer->token.text, lexer->token.length); + free(lexer->token.text); + } + memcpy(temp+lexer->token.length, text, length); + temp[lexer->token.length+length] = 0; + lexer->token.text = temp; + lexer->token.length += length; + lexer->size = newSize; +} + +/*--------------------------------------------------------------------------*/ +static int cmListFileLexerInput(cmListFileLexer* lexer, char* buffer, + size_t bufferSize) +{ + if(lexer) + { + if(lexer->file) + { + return (int)fread(buffer, 1, bufferSize, lexer->file); + } + else if(lexer->string_left) + { + int length = lexer->string_left; + if((int)bufferSize < length) { length = (int)bufferSize; } + memcpy(buffer, lexer->string_position, length); + lexer->string_position += length; + lexer->string_left -= length; + return length; + } + } + return 0; +} + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerInit(cmListFileLexer* lexer) +{ + if(lexer->file || lexer->string_buffer) + { + cmListFileLexer_yylex_init(&lexer->scanner); + cmListFileLexer_yyset_extra(lexer, lexer->scanner); + } +} + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerDestroy(cmListFileLexer* lexer) +{ + if(lexer->file || lexer->string_buffer) + { + cmListFileLexer_yylex_destroy(lexer->scanner); + if(lexer->file) + { + fclose(lexer->file); + lexer->file = 0; + } + if(lexer->string_buffer) + { + free(lexer->string_buffer); + lexer->string_buffer = 0; + lexer->string_left = 0; + lexer->string_position = 0; + } + } +} + +/*--------------------------------------------------------------------------*/ +cmListFileLexer* cmListFileLexer_New() +{ + cmListFileLexer* lexer = (cmListFileLexer*)malloc(sizeof(cmListFileLexer)); + if(!lexer) + { + return 0; + } + memset(lexer, 0, sizeof(*lexer)); + lexer->line = 1; + lexer->column = 1; + return lexer; +} + +/*--------------------------------------------------------------------------*/ +void cmListFileLexer_Delete(cmListFileLexer* lexer) +{ + cmListFileLexer_SetFileName(lexer, 0); + free(lexer); +} + +/*--------------------------------------------------------------------------*/ +int cmListFileLexer_SetFileName(cmListFileLexer* lexer, const char* name) +{ + int result = 1; + cmListFileLexerDestroy(lexer); + if(name) + { + lexer->file = fopen(name, "r"); + if(!lexer->file) + { + result = 0; + } + } + cmListFileLexerInit(lexer); + return result; +} + +/*--------------------------------------------------------------------------*/ +int cmListFileLexer_SetString(cmListFileLexer* lexer, const char* text) +{ + int result = 1; + cmListFileLexerDestroy(lexer); + if(text) + { + int length = (int)strlen(text); + lexer->string_buffer = (char*)malloc(length+1); + if(lexer->string_buffer) + { + strcpy(lexer->string_buffer, text); + lexer->string_position = lexer->string_buffer; + lexer->string_left = length; + } + else + { + result = 0; + } + } + cmListFileLexerInit(lexer); + return result; +} + +/*--------------------------------------------------------------------------*/ +cmListFileLexer_Token* cmListFileLexer_Scan(cmListFileLexer* lexer) +{ + if(!lexer->file) + { + return 0; + } + if(cmListFileLexer_yylex(lexer->scanner, lexer)) + { + return &lexer->token; + } + else + { + cmListFileLexer_SetFileName(lexer, 0); + return 0; + } +} + +/*--------------------------------------------------------------------------*/ +long cmListFileLexer_GetCurrentLine(cmListFileLexer* lexer) +{ + if(lexer->file) + { + return lexer->line; + } + else + { + return 0; + } +} + +/*--------------------------------------------------------------------------*/ +long cmListFileLexer_GetCurrentColumn(cmListFileLexer* lexer) +{ + if(lexer->file) + { + return lexer->column; + } + else + { + return 0; + } +} + +/*--------------------------------------------------------------------------*/ +const char* cmListFileLexer_GetTypeAsString(cmListFileLexer* lexer, + cmListFileLexer_Type type) +{ + (void)lexer; + switch(type) + { + case cmListFileLexer_Token_None: return "nothing"; + case cmListFileLexer_Token_Newline: return "newline"; + case cmListFileLexer_Token_Identifier: return "identifier"; + case cmListFileLexer_Token_ParenLeft: return "left paren"; + case cmListFileLexer_Token_ParenRight: return "right paren"; + case cmListFileLexer_Token_ArgumentUnquoted: return "unquoted argument"; + case cmListFileLexer_Token_ArgumentQuoted: return "quoted argument"; + case cmListFileLexer_Token_BadCharacter: return "bad character"; + case cmListFileLexer_Token_BadString: return "unterminated string"; + } + return "unknown token"; +} diff --git a/CMakeLua/Source/cmListFileLexer.h b/CMakeLua/Source/cmListFileLexer.h new file mode 100644 index 0000000..cf962d5 --- /dev/null +++ b/CMakeLua/Source/cmListFileLexer.h @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmListFileLexer.h,v $ + Language: C++ + Date: $Date: 2004/08/31 22:39:42 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmListFileLexer_h +#define cmListFileLexer_h + +typedef enum cmListFileLexer_Type_e +{ + cmListFileLexer_Token_None, + cmListFileLexer_Token_Newline, + cmListFileLexer_Token_Identifier, + cmListFileLexer_Token_ParenLeft, + cmListFileLexer_Token_ParenRight, + cmListFileLexer_Token_ArgumentUnquoted, + cmListFileLexer_Token_ArgumentQuoted, + cmListFileLexer_Token_BadCharacter, + cmListFileLexer_Token_BadString +} cmListFileLexer_Type; + +typedef struct cmListFileLexer_Token_s cmListFileLexer_Token; +struct cmListFileLexer_Token_s +{ + cmListFileLexer_Type type; + char* text; + int length; + int line; + int column; +}; + +typedef struct cmListFileLexer_s cmListFileLexer; + +#ifdef __cplusplus +extern "C" +{ +#endif + +cmListFileLexer* cmListFileLexer_New(); +int cmListFileLexer_SetFileName(cmListFileLexer*, const char*); +int cmListFileLexer_SetString(cmListFileLexer*, const char*); +cmListFileLexer_Token* cmListFileLexer_Scan(cmListFileLexer*); +long cmListFileLexer_GetCurrentLine(cmListFileLexer*); +long cmListFileLexer_GetCurrentColumn(cmListFileLexer*); +const char* cmListFileLexer_GetTypeAsString(cmListFileLexer*, + cmListFileLexer_Type); +void cmListFileLexer_Delete(cmListFileLexer*); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/CMakeLua/Source/cmListFileLexer.in.l b/CMakeLua/Source/cmListFileLexer.in.l new file mode 100644 index 0000000..415dbd1 --- /dev/null +++ b/CMakeLua/Source/cmListFileLexer.in.l @@ -0,0 +1,422 @@ +%{ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmListFileLexer.in.l,v $ + Language: C++ + Date: $Date: 2006/08/09 13:45:04 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/* + +This file must be translated to C and modified to build everywhere. + +Run flex like this: + + flex --prefix=cmListFileLexer_yy -ocmListFileLexer.c cmListFileLexer.in.l + +Modify cmListFileLexer.c: + - remove TABs + - remove the yyunput function + - add a statement "(void)yyscanner;" to the top of these methods: + yy_fatal_error, cmListFileLexer_yyalloc, cmListFileLexer_yyrealloc, cmListFileLexer_yyfree + - remove all YY_BREAK lines occurring right after return statements + - remove the isatty forward declaration + +*/ + +#include "cmStandardLexer.h" + +/* Setup the proper cmListFileLexer_yylex declaration. */ +#define YY_EXTRA_TYPE cmListFileLexer* +#define YY_DECL int cmListFileLexer_yylex (yyscan_t yyscanner, cmListFileLexer* lexer) + +#include "cmListFileLexer.h" + +/*--------------------------------------------------------------------------*/ +struct cmListFileLexer_s +{ + cmListFileLexer_Token token; + int line; + int column; + int size; + FILE* file; + char* string_buffer; + char* string_position; + int string_left; + yyscan_t scanner; +}; + +static void cmListFileLexerSetToken(cmListFileLexer* lexer, const char* text, + int length); +static void cmListFileLexerAppend(cmListFileLexer* lexer, const char* text, + int length); +static int cmListFileLexerInput(cmListFileLexer* lexer, char* buffer, + size_t bufferSize); +static void cmListFileLexerInit(cmListFileLexer* lexer); +static void cmListFileLexerDestroy(cmListFileLexer* lexer); + +/* Replace the lexer input function. */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { result = cmListFileLexerInput(cmListFileLexer_yyget_extra(yyscanner), buf, max_size); } + +/*--------------------------------------------------------------------------*/ +%} + +%option reentrant +%option yylineno +%option noyywrap +%pointer +%x STRING + +MAKEVAR \$\([A-Za-z0-9_]*\) + +%% + +\n { + lexer->token.type = cmListFileLexer_Token_Newline; + cmListFileLexerSetToken(lexer, yytext, yyleng); + ++lexer->line; + lexer->column = 1; + return 1; +} + +#.* { + lexer->column += yyleng; +} + +\( { + lexer->token.type = cmListFileLexer_Token_ParenLeft; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} + +\) { + lexer->token.type = cmListFileLexer_Token_ParenRight; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} + +[A-Za-z_][A-Za-z0-9_]+ { + lexer->token.type = cmListFileLexer_Token_Identifier; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} + +({MAKEVAR}|[^ \t\r\n\(\)#\\\"]|\\.)({MAKEVAR}|[^ \t\r\n\(\)#\\\"]|\\.|\"({MAKEVAR}|[^\r\n\(\)#\\\"]|\\.)*\")* { + lexer->token.type = cmListFileLexer_Token_ArgumentUnquoted; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} + +\" { + lexer->token.type = cmListFileLexer_Token_ArgumentQuoted; + cmListFileLexerSetToken(lexer, "", 0); + lexer->column += yyleng; + BEGIN(STRING); +} + +([^\\\n\"]|\\(.|\n))+ { + cmListFileLexerAppend(lexer, yytext, yyleng); + lexer->column += yyleng; +} + +\n { + cmListFileLexerAppend(lexer, yytext, yyleng); + ++lexer->line; + lexer->column = 1; +} + +\" { + lexer->column += yyleng; + BEGIN(INITIAL); + return 1; +} + +. { + cmListFileLexerAppend(lexer, yytext, yyleng); + lexer->column += yyleng; +} + +<> { + lexer->token.type = cmListFileLexer_Token_BadString; + BEGIN(INITIAL); + return 1; +} + +[ \t\r] { + lexer->column += yyleng; +} + +. { + lexer->token.type = cmListFileLexer_Token_BadCharacter; + cmListFileLexerSetToken(lexer, yytext, yyleng); + lexer->column += yyleng; + return 1; +} + +<> { + lexer->token.type = cmListFileLexer_Token_None; + cmListFileLexerSetToken(lexer, 0, 0); + return 0; +} + +%% + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerSetToken(cmListFileLexer* lexer, const char* text, + int length) +{ + /* Set the token line and column number. */ + lexer->token.line = lexer->line; + lexer->token.column = lexer->column; + + /* Use the same buffer if possible. */ + if(lexer->token.text) + { + if(text && length < lexer->size) + { + strcpy(lexer->token.text, text); + lexer->token.length = length; + return; + } + free(lexer->token.text); + lexer->token.text = 0; + lexer->size = 0; + } + + /* Need to extend the buffer. */ + if(text) + { + lexer->token.text = strdup(text); + lexer->token.length = length; + lexer->size = length+1; + } + else + { + lexer->token.length = 0; + } +} + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerAppend(cmListFileLexer* lexer, const char* text, + int length) +{ + char* temp; + int newSize; + + /* If the appended text will fit in the buffer, do not reallocate. */ + newSize = lexer->token.length + length + 1; + if(lexer->token.text && newSize <= lexer->size) + { + strcpy(lexer->token.text+lexer->token.length, text); + lexer->token.length += length; + return; + } + + /* We need to extend the buffer. */ + temp = malloc(newSize); + if(lexer->token.text) + { + memcpy(temp, lexer->token.text, lexer->token.length); + free(lexer->token.text); + } + memcpy(temp+lexer->token.length, text, length); + temp[lexer->token.length+length] = 0; + lexer->token.text = temp; + lexer->token.length += length; + lexer->size = newSize; +} + +/*--------------------------------------------------------------------------*/ +static int cmListFileLexerInput(cmListFileLexer* lexer, char* buffer, + size_t bufferSize) +{ + if(lexer) + { + if(lexer->file) + { + return (int)fread(buffer, 1, bufferSize, lexer->file); + } + else if(lexer->string_left) + { + int length = lexer->string_left; + if((int)bufferSize < length) { length = (int)bufferSize; } + memcpy(buffer, lexer->string_position, length); + lexer->string_position += length; + lexer->string_left -= length; + return length; + } + } + return 0; +} + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerInit(cmListFileLexer* lexer) +{ + if(lexer->file || lexer->string_buffer) + { + cmListFileLexer_yylex_init(&lexer->scanner); + cmListFileLexer_yyset_extra(lexer, lexer->scanner); + } +} + +/*--------------------------------------------------------------------------*/ +static void cmListFileLexerDestroy(cmListFileLexer* lexer) +{ + if(lexer->file || lexer->string_buffer) + { + cmListFileLexer_yylex_destroy(lexer->scanner); + if(lexer->file) + { + fclose(lexer->file); + lexer->file = 0; + } + if(lexer->string_buffer) + { + free(lexer->string_buffer); + lexer->string_buffer = 0; + lexer->string_left = 0; + lexer->string_position = 0; + } + } +} + +/*--------------------------------------------------------------------------*/ +cmListFileLexer* cmListFileLexer_New() +{ + cmListFileLexer* lexer = (cmListFileLexer*)malloc(sizeof(cmListFileLexer)); + if(!lexer) + { + return 0; + } + memset(lexer, 0, sizeof(*lexer)); + lexer->line = 1; + lexer->column = 1; + return lexer; +} + +/*--------------------------------------------------------------------------*/ +void cmListFileLexer_Delete(cmListFileLexer* lexer) +{ + cmListFileLexer_SetFileName(lexer, 0); + free(lexer); +} + +/*--------------------------------------------------------------------------*/ +int cmListFileLexer_SetFileName(cmListFileLexer* lexer, const char* name) +{ + int result = 1; + cmListFileLexerDestroy(lexer); + if(name) + { + lexer->file = fopen(name, "r"); + if(!lexer->file) + { + result = 0; + } + } + cmListFileLexerInit(lexer); + return result; +} + +/*--------------------------------------------------------------------------*/ +int cmListFileLexer_SetString(cmListFileLexer* lexer, const char* text) +{ + int result = 1; + cmListFileLexerDestroy(lexer); + if(text) + { + int length = (int)strlen(text); + lexer->string_buffer = (char*)malloc(length+1); + if(lexer->string_buffer) + { + strcpy(lexer->string_buffer, text); + lexer->string_position = lexer->string_buffer; + lexer->string_left = length; + } + else + { + result = 0; + } + } + cmListFileLexerInit(lexer); + return result; +} + +/*--------------------------------------------------------------------------*/ +cmListFileLexer_Token* cmListFileLexer_Scan(cmListFileLexer* lexer) +{ + if(!lexer->file) + { + return 0; + } + if(cmListFileLexer_yylex(lexer->scanner, lexer)) + { + return &lexer->token; + } + else + { + cmListFileLexer_SetFileName(lexer, 0); + return 0; + } +} + +/*--------------------------------------------------------------------------*/ +long cmListFileLexer_GetCurrentLine(cmListFileLexer* lexer) +{ + if(lexer->file) + { + return lexer->line; + } + else + { + return 0; + } +} + +/*--------------------------------------------------------------------------*/ +long cmListFileLexer_GetCurrentColumn(cmListFileLexer* lexer) +{ + if(lexer->file) + { + return lexer->column; + } + else + { + return 0; + } +} + +/*--------------------------------------------------------------------------*/ +const char* cmListFileLexer_GetTypeAsString(cmListFileLexer* lexer, + cmListFileLexer_Type type) +{ + (void)lexer; + switch(type) + { + case cmListFileLexer_Token_None: return "nothing"; + case cmListFileLexer_Token_Newline: return "newline"; + case cmListFileLexer_Token_Identifier: return "identifier"; + case cmListFileLexer_Token_ParenLeft: return "left paren"; + case cmListFileLexer_Token_ParenRight: return "right paren"; + case cmListFileLexer_Token_ArgumentUnquoted: return "unquoted argument"; + case cmListFileLexer_Token_ArgumentQuoted: return "quoted argument"; + case cmListFileLexer_Token_BadCharacter: return "bad character"; + case cmListFileLexer_Token_BadString: return "unterminated string"; + } + return "unknown token"; +} diff --git a/CMakeLua/Source/cmLoadCacheCommand.cxx b/CMakeLua/Source/cmLoadCacheCommand.cxx new file mode 100644 index 0000000..c698a80 --- /dev/null +++ b/CMakeLua/Source/cmLoadCacheCommand.cxx @@ -0,0 +1,235 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLoadCacheCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLoadCacheCommand.h" + +#include + +// cmLoadCacheCommand +bool cmLoadCacheCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if (args.size()< 1) + { + this->SetError("called with wrong number of arguments."); + } + + if(args.size() >= 2 && args[1] == "READ_WITH_PREFIX") + { + return this->ReadWithPrefix(args); + } + + // Cache entries to be excluded from the import list. + // If this set is empty, all cache entries are brought in + // and they can not be overridden. + bool excludeFiles=false; + unsigned int i; + std::set excludes; + + for(i=0; i includes; + + for(i=0; iMakefile->GetCacheManager()->LoadCache(args[i].c_str(), false, + excludes, includes); + } + + + return true; +} + +//---------------------------------------------------------------------------- +bool cmLoadCacheCommand::ReadWithPrefix(std::vector const& args) +{ + // Make sure we have a prefix. + if(args.size() < 3) + { + this->SetError("READ_WITH_PREFIX form must specify a prefix."); + return false; + } + + // Make sure the cache file exists. + std::string cacheFile = args[0]+"/CMakeCache.txt"; + if(!cmSystemTools::FileExists(cacheFile.c_str())) + { + std::string e = "Cannot load cache file from " + cacheFile; + this->SetError(e.c_str()); + return false; + } + + // Prepare the table of variables to read. + this->Prefix = args[2]; + for(unsigned int i=3; i < args.size(); ++i) + { + this->VariablesToRead.insert(args[i]); + } + + // Read the cache file. + std::ifstream fin(cacheFile.c_str()); + + // This is a big hack read loop to overcome a buggy ifstream + // implementation on HP-UX. This should work on all platforms even + // for small buffer sizes. + const int bufferSize = 4096; + char buffer[bufferSize]; + std::string line; + while(fin) + { + // Read a block of the file. + fin.read(buffer, bufferSize); + if(fin.gcount()) + { + // Parse for newlines directly. + const char* i = buffer; + const char* end = buffer+fin.gcount(); + while(i != end) + { + const char* begin = i; + while(i != end && *i != '\n') { ++i; } + if(i == begin || *(i-1) != '\r') + { + // Include this portion of the line. + line += std::string(begin, i-begin); + } + else + { + // Include this portion of the line. + // Don't include the \r in a \r\n pair. + line += std::string(begin, i-1-begin); + } + if(i != end) + { + // Completed a line. + this->CheckLine(line.c_str()); + line = ""; + + // Skip the newline character. + ++i; + } + } + } + } + if(line.length()) + { + // Partial last line. + this->CheckLine(line.c_str()); + } + + return true; +} + +//---------------------------------------------------------------------------- +void cmLoadCacheCommand::CheckLine(const char* line) +{ + // Check one line of the cache file. + std::string var; + std::string value; + if(this->ParseEntry(line, var, value)) + { + // Found a real entry. See if this one was requested. + if(this->VariablesToRead.find(var) != this->VariablesToRead.end()) + { + // This was requested. Set this variable locally with the given + // prefix. + var = this->Prefix + var; + if(value.length()) + { + this->Makefile->AddDefinition(var.c_str(), value.c_str()); + } + else + { + this->Makefile->RemoveDefinition(var.c_str()); + } + } + } +} + +//---------------------------------------------------------------------------- +bool cmLoadCacheCommand::ParseEntry(const char* entry, std::string& var, + std::string& value) +{ + // input line is: key:type=value + cmsys::RegularExpression reg("^([^:]*):([^=]*)=(.*[^\t ]|[\t ]*)[\t ]*$"); + // input line is: "key":type=value + cmsys::RegularExpression + regQuoted("^\"([^\"]*)\":([^=]*)=(.*[^\t ]|[\t ]*)[\t ]*$"); + bool flag = false; + if(regQuoted.find(entry)) + { + var = regQuoted.match(1); + value = regQuoted.match(3); + flag = true; + } + else if (reg.find(entry)) + { + var = reg.match(1); + value = reg.match(3); + flag = true; + } + + // if value is enclosed in single quotes ('foo') then remove them + // it is used to enclose trailing space or tab + if (flag && + value.size() >= 2 && + value[0] == '\'' && + value[value.size() - 1] == '\'') + { + value = value.substr(1, value.size() - 2); + } + return flag; +} diff --git a/CMakeLua/Source/cmLoadCacheCommand.h b/CMakeLua/Source/cmLoadCacheCommand.h new file mode 100644 index 0000000..7701018 --- /dev/null +++ b/CMakeLua/Source/cmLoadCacheCommand.h @@ -0,0 +1,95 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLoadCacheCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLoadCacheCommand_h +#define cmLoadCacheCommand_h + +#include "cmCommand.h" + +/** \class cmLoadCacheCommand + * \brief load a cache file + * + * cmLoadCacheCommand loads the non internal values of a cache file + */ +class cmLoadCacheCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmLoadCacheCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "load_cache";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Load in the values from another project's CMake cache."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " load_cache(pathToCacheFile READ_WITH_PREFIX\n" + " prefix entry1...)\n" + "Read the cache and store the requested entries in variables with " + "their name prefixed with the given prefix. " + "This only reads the values, and does not create entries in the local " + "project's cache.\n" + " load_cache(pathToCacheFile [EXCLUDE entry1...]\n" + " [INCLUDE_INTERNALS entry1...])\n" + "Load in the values from another cache and store them in the local " + "project's cache as internal entries. This is useful for a project " + "that depends on another project built in a different tree. " + "EXCLUDE option can be used to provide a list of entries to be " + "excluded. " + "INCLUDE_INTERNALS can be used to provide a list of internal entries " + "to be included. Normally, no internal entries are brought in. Use " + "of this form of the command is strongly discouraged, but it is " + "provided for backward compatibility."; + } + + cmTypeMacro(cmLoadCacheCommand, cmCommand); +protected: + + std::set VariablesToRead; + std::string Prefix; + + bool ReadWithPrefix(std::vector const& args); + void CheckLine(const char* line); + bool ParseEntry(const char* entry, std::string& var, std::string& value); +}; + + +#endif diff --git a/CMakeLua/Source/cmLoadCommandCommand.cxx b/CMakeLua/Source/cmLoadCommandCommand.cxx new file mode 100644 index 0000000..a0fdf8b --- /dev/null +++ b/CMakeLua/Source/cmLoadCommandCommand.cxx @@ -0,0 +1,318 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLoadCommandCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.29 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLoadCommandCommand.h" +#include "cmCPluginAPI.h" +#include "cmCPluginAPI.cxx" +#include "cmDynamicLoader.h" + +#include + +#include + +#ifdef __QNX__ +# include /* for malloc/free on QNX */ +#endif + +#include +extern "C" void TrapsForSignalsCFunction(int sig); + + +// a class for loadabple commands +class cmLoadedCommand : public cmCommand +{ +public: + cmLoadedCommand() { + memset(&this->info,0,sizeof(this->info)); + this->info.CAPI = &cmStaticCAPI; + } + + ///! clean up any memory allocated by the plugin + ~cmLoadedCommand(); + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmLoadedCommand *newC = new cmLoadedCommand; + // we must copy when we clone + memcpy(&newC->info,&this->info,sizeof(info)); + return newC; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &); + + /** + * This is called at the end after all the information + * specified by the command is accumulated. Most commands do + * not implement this method. At this point, reading and + * writing to the cache can be done. + */ + virtual void FinalPass(); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return info.Name; } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + if (this->info.GetTerseDocumentation) + { + cmLoadedCommand::InstallSignalHandlers(info.Name); + const char* ret = info.GetTerseDocumentation(); + cmLoadedCommand::InstallSignalHandlers(info.Name, 1); + return ret; + } + else + { + return "LoadedCommand without any additional documentation"; + } + } + static const char* LastName; + static void TrapsForSignals(int sig) + { + fprintf(stderr, "CMake loaded command %s crashed with signal: %d.\n", + cmLoadedCommand::LastName, sig); + } + static void InstallSignalHandlers(const char* name, int remove = 0) + { + cmLoadedCommand::LastName = name; + if(!name) + { + cmLoadedCommand::LastName = "????"; + } + + if(!remove) + { + signal(SIGSEGV, TrapsForSignalsCFunction); +#ifdef SIGBUS + signal(SIGBUS, TrapsForSignalsCFunction); +#endif + signal(SIGILL, TrapsForSignalsCFunction); + } + else + { + signal(SIGSEGV, 0); +#ifdef SIGBUS + signal(SIGBUS, 0); +#endif + signal(SIGILL, 0); + } + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + if (this->info.GetFullDocumentation) + { + cmLoadedCommand::InstallSignalHandlers(info.Name); + const char* ret = info.GetFullDocumentation(); + cmLoadedCommand::InstallSignalHandlers(info.Name, 1); + return ret; + } + else + { + return "LoadedCommand without any additional documentation"; + } + } + + cmTypeMacro(cmLoadedCommand, cmCommand); + + cmLoadedCommandInfo info; +}; + +extern "C" void TrapsForSignalsCFunction(int sig) +{ + cmLoadedCommand::TrapsForSignals(sig); +} + + +const char* cmLoadedCommand::LastName = 0; + +bool cmLoadedCommand::InitialPass(std::vector const& args, + cmExecutionStatus &) +{ + if (!info.InitialPass) + { + return true; + } + + // clear the error string + if (this->info.Error) + { + free(this->info.Error); + } + + // create argc and argv and then invoke the command + int argc = static_cast (args.size()); + char **argv = 0; + if (argc) + { + argv = (char **)malloc(argc*sizeof(char *)); + } + int i; + for (i = 0; i < argc; ++i) + { + argv[i] = strdup(args[i].c_str()); + } + cmLoadedCommand::InstallSignalHandlers(info.Name); + int result = info.InitialPass((void *)&info, + (void *)this->Makefile,argc,argv); + cmLoadedCommand::InstallSignalHandlers(info.Name, 1); + cmFreeArguments(argc,argv); + + if (result) + { + return true; + } + + /* Initial Pass must have failed so set the error string */ + if (this->info.Error) + { + this->SetError(this->info.Error); + } + return false; +} + +void cmLoadedCommand::FinalPass() +{ + if (this->info.FinalPass) + { + cmLoadedCommand::InstallSignalHandlers(info.Name); + this->info.FinalPass((void *)&this->info,(void *)this->Makefile); + cmLoadedCommand::InstallSignalHandlers(info.Name, 1); + } +} + +cmLoadedCommand::~cmLoadedCommand() +{ + if (this->info.Destructor) + { + cmLoadedCommand::InstallSignalHandlers(info.Name); + this->info.Destructor((void *)&this->info); + cmLoadedCommand::InstallSignalHandlers(info.Name, 1); + } + if (this->info.Error) + { + free(this->info.Error); + } +} + +// cmLoadCommandCommand +bool cmLoadCommandCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + return true; + } + + // Construct a variable to report what file was loaded, if any. + // Start by removing the definition in case of failure. + std::string reportVar = "CMAKE_LOADED_COMMAND_"; + reportVar += args[0]; + this->Makefile->RemoveDefinition(reportVar.c_str()); + + // the file must exist + std::string moduleName = + this->Makefile->GetRequiredDefinition("CMAKE_SHARED_MODULE_PREFIX"); + moduleName += "cm" + args[0]; + moduleName += + this->Makefile->GetRequiredDefinition("CMAKE_SHARED_MODULE_SUFFIX"); + + // search for the file + std::vector path; + for (unsigned int j = 1; j < args.size(); j++) + { + // expand variables + std::string exp = args[j]; + cmSystemTools::ExpandRegistryValues(exp); + + // Glob the entry in case of wildcards. + cmSystemTools::GlobDirs(exp.c_str(), path); + } + + // Try to find the program. + std::string fullPath = cmSystemTools::FindFile(moduleName.c_str(), path); + if (fullPath == "") + { + cmOStringStream e; + e << "Attempt to load command failed from file \"" + << moduleName << "\""; + this->SetError(e.str().c_str()); + return false; + } + + // try loading the shared library / dll + cmsys::DynamicLoader::LibraryHandle lib + = cmDynamicLoader::OpenLibrary(fullPath.c_str()); + if(!lib) + { + std::string err = "Attempt to load the library "; + err += fullPath + " failed."; + const char* error = cmsys::DynamicLoader::LastError(); + if ( error ) + { + err += " Additional error info is:\n"; + err += error; + } + this->SetError(err.c_str()); + return false; + } + + // Report what file was loaded for this command. + this->Makefile->AddDefinition(reportVar.c_str(), fullPath.c_str()); + + // find the init function + std::string initFuncName = args[0] + "Init"; + CM_INIT_FUNCTION initFunction + = (CM_INIT_FUNCTION) + cmsys::DynamicLoader::GetSymbolAddress(lib, initFuncName.c_str()); + if ( !initFunction ) + { + initFuncName = "_"; + initFuncName += args[0]; + initFuncName += "Init"; + initFunction = (CM_INIT_FUNCTION)( + cmsys::DynamicLoader::GetSymbolAddress(lib, initFuncName.c_str())); + } + // if the symbol is found call it to set the name on the + // function blocker + if(initFunction) + { + // create a function blocker and set it up + cmLoadedCommand *f = new cmLoadedCommand(); + (*initFunction)(&f->info); + this->Makefile->AddCommand(f); + return true; + } + this->SetError("Attempt to load command failed. " + "No init function found."); + return false; +} + diff --git a/CMakeLua/Source/cmLoadCommandCommand.h b/CMakeLua/Source/cmLoadCommandCommand.h new file mode 100644 index 0000000..ae769ac --- /dev/null +++ b/CMakeLua/Source/cmLoadCommandCommand.h @@ -0,0 +1,80 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLoadCommandCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLoadCommandCommand_h +#define cmLoadCommandCommand_h + +#include "cmCommand.h" + +/** \class cmLoadCommandCommand + * \brief Load in a Command plugin + * + * cmLoadCommandCommand loads a command into CMake + */ +class cmLoadCommandCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmLoadCommandCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "load_command";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Load a command into a running CMake."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " load_command(COMMAND_NAME [loc2 ...])\n" + "The given locations are searched for a library whose name is " + "cmCOMMAND_NAME. If found, it is loaded as a module and the command " + "is added to the set of available CMake commands. Usually, " + "TRY_COMPILE is used before this command to compile the module. " + "If the command is successfully loaded a variable named\n" + " CMAKE_LOADED_COMMAND_\n" + "will be set to the full path of the module that was loaded. " + "Otherwise the variable will not be set."; + } + + cmTypeMacro(cmLoadCommandCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmLocalGenerator.cxx b/CMakeLua/Source/cmLocalGenerator.cxx new file mode 100644 index 0000000..74de693 --- /dev/null +++ b/CMakeLua/Source/cmLocalGenerator.cxx @@ -0,0 +1,2734 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.264 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLocalGenerator.h" + +#include "cmComputeLinkInformation.h" +#include "cmGeneratedFileStream.h" +#include "cmGlobalGenerator.h" +#include "cmInstallGenerator.h" +#include "cmInstallFilesGenerator.h" +#include "cmInstallScriptGenerator.h" +#include "cmInstallTargetGenerator.h" +#include "cmMakefile.h" +#include "cmSourceFile.h" +#include "cmTest.h" +#include "cmake.h" + +#if defined(CMAKE_BUILD_WITH_CMAKE) +# define CM_LG_ENCODE_OBJECT_NAMES +# include +#endif + +#include + +#include // for isalpha + +#include + +cmLocalGenerator::cmLocalGenerator() +{ + this->Makefile = new cmMakefile; + this->Makefile->SetLocalGenerator(this); + this->Parent = 0; + this->WindowsShell = false; + this->WindowsVSIDE = false; + this->WatcomWMake = false; + this->MinGWMake = false; + this->NMake = false; + this->MSYSShell = false; + this->LinkScriptShell = false; + this->IgnoreLibPrefix = false; + this->UseRelativePaths = false; + this->Configured = false; + this->EmitUniversalBinaryFlags = true; + this->IsMakefileGenerator = false; + this->RelativePathsConfigured = false; + this->PathConversionsSetup = false; + this->BackwardsCompatibility = 0; + this->BackwardsCompatibilityFinal = false; +} + +cmLocalGenerator::~cmLocalGenerator() +{ + delete this->Makefile; +} + +void cmLocalGenerator::Configure() +{ + cmLocalGenerator* previousLg = + this->GetGlobalGenerator()->GetCurrentLocalGenerator(); + this->GetGlobalGenerator()->SetCurrentLocalGenerator(this); + + // make sure the CMakeFiles dir is there + std::string filesDir = this->Makefile->GetStartOutputDirectory(); + filesDir += cmake::GetCMakeFilesDirectory(); + cmSystemTools::MakeDirectory(filesDir.c_str()); + + // find & read the list file + std::string currentStart = this->Makefile->GetStartDirectory(); + currentStart += "/CMakeLists.txt"; + this->Makefile->ReadListFile(currentStart.c_str()); + + // at the end of the ReadListFile handle any old style subdirs + // first get all the subdirectories + std::vector subdirs = this->GetChildren(); + + // for each subdir recurse + std::vector::iterator sdi = subdirs.begin(); + for (; sdi != subdirs.end(); ++sdi) + { + if (!(*sdi)->Configured) + { + this->Makefile->ConfigureSubDirectory(*sdi); + } + } + + // Check whether relative paths should be used for optionally + // relative paths. + this->UseRelativePaths = this->Makefile->IsOn("CMAKE_USE_RELATIVE_PATHS"); + + this->Configured = true; + + this->GetGlobalGenerator()->SetCurrentLocalGenerator(previousLg); +} + +void cmLocalGenerator::SetupPathConversions() +{ + // Setup the current output directory components for use by + // Convert + std::string outdir; + outdir = + cmSystemTools::CollapseFullPath(this->Makefile->GetHomeDirectory()); + cmSystemTools::SplitPath(outdir.c_str(), this->HomeDirectoryComponents); + outdir = + cmSystemTools::CollapseFullPath(this->Makefile->GetStartDirectory()); + cmSystemTools::SplitPath(outdir.c_str(), this->StartDirectoryComponents); + + outdir = cmSystemTools::CollapseFullPath + (this->Makefile->GetHomeOutputDirectory()); + cmSystemTools::SplitPath(outdir.c_str(), + this->HomeOutputDirectoryComponents); + + outdir = cmSystemTools::CollapseFullPath + (this->Makefile->GetStartOutputDirectory()); + cmSystemTools::SplitPath(outdir.c_str(), + this->StartOutputDirectoryComponents); +} + + +void cmLocalGenerator::SetGlobalGenerator(cmGlobalGenerator *gg) +{ + this->GlobalGenerator = gg; + + // setup the home directories + this->Makefile->GetProperties().SetCMakeInstance(gg->GetCMakeInstance()); + this->Makefile->SetHomeDirectory( + gg->GetCMakeInstance()->GetHomeDirectory()); + this->Makefile->SetHomeOutputDirectory( + gg->GetCMakeInstance()->GetHomeOutputDirectory()); +} + +void cmLocalGenerator::ConfigureFinalPass() +{ + this->Makefile->ConfigureFinalPass(); +} + +void cmLocalGenerator::TraceDependencies() +{ + // Generate the rule files for each target. + cmTargets& targets = this->Makefile->GetTargets(); + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + // INCLUDE_EXTERNAL_MSPROJECT command only affects the workspace + // so don't build a projectfile for it + if (strncmp(t->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) != 0) + { + const char* projectFilename = 0; + if (this->IsMakefileGenerator == false) // only use of this variable + { + projectFilename = t->second.GetName(); + } + t->second.TraceDependencies(projectFilename); + } + } +} + +void cmLocalGenerator::GenerateTestFiles() +{ + if ( !this->Makefile->IsOn("CMAKE_TESTING_ENABLED") ) + { + return; + } + std::string file = this->Makefile->GetStartOutputDirectory(); + file += "/"; + file += "CTestTestfile.cmake"; + + cmGeneratedFileStream fout(file.c_str()); + fout.SetCopyIfDifferent(true); + + fout << "# CMake generated Testfile for " << std::endl + << "# Source directory: " + << this->Makefile->GetStartDirectory() << std::endl + << "# Build directory: " + << this->Makefile->GetStartOutputDirectory() << std::endl + << "# " << std::endl + << "# This file replicates the SUBDIRS() and ADD_TEST() commands " + << "from the source" << std::endl + << "# tree CMakeLists.txt file, skipping any SUBDIRS() or " + << "ADD_TEST() commands" << std::endl + << "# that are excluded by CMake control structures, i.e. IF() " + << "commands." << std::endl; + + const char* testIncludeFile = + this->Makefile->GetProperty("TEST_INCLUDE_FILE"); + if ( testIncludeFile ) + { + fout << "INCLUDE(\"" << testIncludeFile << "\")" << std::endl; + } + + const std::vector *tests = this->Makefile->GetTests(); + std::vector::const_iterator it; + for ( it = tests->begin(); it != tests->end(); ++ it ) + { + cmTest* test = *it; + fout << "ADD_TEST("; + fout << test->GetName() << " \"" << test->GetCommand() << "\""; + + std::vector::const_iterator argit; + for (argit = test->GetArguments().begin(); + argit != test->GetArguments().end(); ++argit) + { + // Just double-quote all arguments so they are re-parsed + // correctly by the test system. + fout << " \""; + for(std::string::const_iterator c = argit->begin(); + c != argit->end(); ++c) + { + // Escape quotes within arguments. We should escape + // backslashes too but we cannot because it makes the result + // inconsistent with previous behavior of this command. + if((*c == '"')) + { + fout << '\\'; + } + fout << *c; + } + fout << "\""; + } + fout << ")" << std::endl; + cmPropertyMap::const_iterator pit; + cmPropertyMap* mpit = &test->GetProperties(); + if ( mpit->size() ) + { + fout << "SET_TESTS_PROPERTIES(" << test->GetName() << " PROPERTIES "; + for ( pit = mpit->begin(); pit != mpit->end(); ++ pit ) + { + fout << " " << pit->first.c_str() << " \""; + const char* value = pit->second.GetValue(); + for ( ; *value; ++ value ) + { + switch ( *value ) + { + case '\\': + case '"': + case ' ': + case '#': + case '(': + case ')': + case '$': + case '^': + fout << "\\" << *value; + break; + case '\t': + fout << "\\t"; + break; + case '\n': + fout << "\\n"; + break; + case '\r': + fout << "\\r"; + break; + default: + fout << *value; + } + } + fout << "\""; + } + fout << ")" << std::endl; + } + } + if ( this->Children.size()) + { + size_t i; + for(i = 0; i < this->Children.size(); ++i) + { + fout << "SUBDIRS("; + std::string outP = + this->Children[i]->GetMakefile()->GetStartOutputDirectory(); + fout << this->Convert(outP.c_str(),START_OUTPUT); + fout << ")" << std::endl; + } + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::GenerateInstallRules() +{ + // Compute the install prefix. + const char* prefix = this->Makefile->GetDefinition("CMAKE_INSTALL_PREFIX"); +#if defined(_WIN32) && !defined(__CYGWIN__) + std::string prefix_win32; + if(!prefix) + { + if(!cmSystemTools::GetEnv("SystemDrive", prefix_win32)) + { + prefix_win32 = "C:"; + } + const char* project_name = this->Makefile->GetDefinition("PROJECT_NAME"); + if(project_name && project_name[0]) + { + prefix_win32 += "/Program Files/"; + prefix_win32 += project_name; + } + else + { + prefix_win32 += "/InstalledCMakeProject"; + } + prefix = prefix_win32.c_str(); + } +#else + if (!prefix) + { + prefix = "/usr/local"; + } +#endif + + // Compute the set of configurations. + std::vector configurationTypes; + if(const char* types = + this->Makefile->GetDefinition("CMAKE_CONFIGURATION_TYPES")) + { + cmSystemTools::ExpandListArgument(types, configurationTypes); + } + const char* config = 0; + if(configurationTypes.empty()) + { + config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE"); + } + + // Choose a default install configuration. + const char* default_config = config; + const char* default_order[] = {"RELEASE", "MINSIZEREL", + "RELWITHDEBINFO", "DEBUG", 0}; + for(const char** c = default_order; *c && !default_config; ++c) + { + for(std::vector::iterator i = configurationTypes.begin(); + i != configurationTypes.end(); ++i) + { + if(cmSystemTools::UpperCase(*i) == *c) + { + default_config = i->c_str(); + } + } + } + if(!default_config && !configurationTypes.empty()) + { + default_config = configurationTypes[0].c_str(); + } + if(!default_config) + { + default_config = "Release"; + } + + // Create the install script file. + std::string file = this->Makefile->GetStartOutputDirectory(); + std::string homedir = this->Makefile->GetHomeOutputDirectory(); + std::string currdir = this->Makefile->GetCurrentOutputDirectory(); + cmSystemTools::ConvertToUnixSlashes(file); + cmSystemTools::ConvertToUnixSlashes(homedir); + cmSystemTools::ConvertToUnixSlashes(currdir); + int toplevel_install = 0; + if ( currdir == homedir ) + { + toplevel_install = 1; + } + file += "/cmake_install.cmake"; + cmGeneratedFileStream fout(file.c_str()); + fout.SetCopyIfDifferent(true); + + // Write the header. + fout << "# Install script for directory: " + << this->Makefile->GetCurrentDirectory() << std::endl << std::endl; + fout << "# Set the install prefix" << std::endl + << "IF(NOT DEFINED CMAKE_INSTALL_PREFIX)" << std::endl + << " SET(CMAKE_INSTALL_PREFIX \"" << prefix << "\")" << std::endl + << "ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)" << std::endl + << "STRING(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX " + << "\"${CMAKE_INSTALL_PREFIX}\")" << std::endl + << std::endl; + + // Write support code for generating per-configuration install rules. + fout << + "# Set the install configuration name.\n" + "IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n" + " IF(BUILD_TYPE)\n" + " STRING(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n" + " CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n" + " ELSE(BUILD_TYPE)\n" + " SET(CMAKE_INSTALL_CONFIG_NAME \"" << default_config << "\")\n" + " ENDIF(BUILD_TYPE)\n" + " MESSAGE(STATUS \"Install configuration: " + "\\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\n" + "ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n" + "\n"; + + // Write support code for dealing with component-specific installs. + fout << + "# Set the component getting installed.\n" + "IF(NOT CMAKE_INSTALL_COMPONENT)\n" + " IF(COMPONENT)\n" + " MESSAGE(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n" + " SET(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n" + " ELSE(COMPONENT)\n" + " SET(CMAKE_INSTALL_COMPONENT)\n" + " ENDIF(COMPONENT)\n" + "ENDIF(NOT CMAKE_INSTALL_COMPONENT)\n" + "\n"; + + // Copy user-specified install options to the install code. + if(const char* so_no_exe = + this->Makefile->GetDefinition("CMAKE_INSTALL_SO_NO_EXE")) + { + fout << + "# Install shared libraries without execute permission?\n" + "IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n" + " SET(CMAKE_INSTALL_SO_NO_EXE \"" << so_no_exe << "\")\n" + "ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n" + "\n"; + } + + // Ask each install generator to write its code. + std::vector const& installers = + this->Makefile->GetInstallGenerators(); + for(std::vector::const_iterator + gi = installers.begin(); + gi != installers.end(); ++gi) + { + (*gi)->Generate(fout, config, configurationTypes); + } + + // Write rules from old-style specification stored in targets. + this->GenerateTargetInstallRules(fout, config, configurationTypes); + + // Include install scripts from subdirectories. + if(!this->Children.empty()) + { + fout << "IF(NOT CMAKE_INSTALL_LOCAL_ONLY)\n"; + fout << " # Include the install script for each subdirectory.\n"; + for(std::vector::const_iterator + ci = this->Children.begin(); ci != this->Children.end(); ++ci) + { + if(!(*ci)->GetMakefile()->GetPropertyAsBool("EXCLUDE_FROM_ALL")) + { + std::string odir = (*ci)->GetMakefile()->GetStartOutputDirectory(); + cmSystemTools::ConvertToUnixSlashes(odir); + fout << " INCLUDE(\"" << odir.c_str() + << "/cmake_install.cmake\")" << std::endl; + } + } + fout << "\n"; + fout << "ENDIF(NOT CMAKE_INSTALL_LOCAL_ONLY)\n\n"; + } + + // Record the install manifest. + if ( toplevel_install ) + { + fout << + "IF(CMAKE_INSTALL_COMPONENT)\n" + " SET(CMAKE_INSTALL_MANIFEST \"install_manifest_" + "${CMAKE_INSTALL_COMPONENT}.txt\")\n" + "ELSE(CMAKE_INSTALL_COMPONENT)\n" + " SET(CMAKE_INSTALL_MANIFEST \"install_manifest.txt\")\n" + "ENDIF(CMAKE_INSTALL_COMPONENT)\n\n"; + fout + << "FILE(WRITE \"" + << homedir.c_str() << "/${CMAKE_INSTALL_MANIFEST}\" " + << "\"\")" << std::endl; + fout + << "FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES})" << std::endl + << " FILE(APPEND \"" + << homedir.c_str() << "/${CMAKE_INSTALL_MANIFEST}\" " + << "\"${file}\\n\")" << std::endl + << "ENDFOREACH(file)" << std::endl; + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::GenerateTargetManifest() +{ + // Collect the set of configuration types. + std::vector configNames; + if(const char* configurationTypes = + this->Makefile->GetDefinition("CMAKE_CONFIGURATION_TYPES")) + { + cmSystemTools::ExpandListArgument(configurationTypes, configNames); + } + else if(const char* buildType = + this->Makefile->GetDefinition("CMAKE_BUILD_TYPE")) + { + if(*buildType) + { + configNames.push_back(buildType); + } + } + + // Add our targets to the manifest for each configuration. + cmTargets& targets = this->Makefile->GetTargets(); + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + cmTarget& target = t->second; + if(configNames.empty()) + { + target.GenerateTargetManifest(0); + } + else + { + for(std::vector::iterator ci = configNames.begin(); + ci != configNames.end(); ++ci) + { + const char* config = ci->c_str(); + target.GenerateTargetManifest(config); + } + } + } +} + +void cmLocalGenerator::AddCustomCommandToCreateObject(const char* ofname, + const char* lang, + cmSourceFile& source, + cmTarget& ) +{ + std::string objectDir = cmSystemTools::GetFilenamePath(std::string(ofname)); + objectDir = this->Convert(objectDir.c_str(),START_OUTPUT,SHELL); + std::string objectFile = this->Convert(ofname,START_OUTPUT,SHELL); + std::string sourceFile = + this->Convert(source.GetFullPath().c_str(),START_OUTPUT,SHELL,true); + std::string varString = "CMAKE_"; + varString += lang; + varString += "_COMPILE_OBJECT"; + std::vector rules; + rules.push_back(this->Makefile->GetRequiredDefinition(varString.c_str())); + varString = "CMAKE_"; + varString += lang; + varString += "_FLAGS"; + std::string flags; + flags += this->Makefile->GetSafeDefinition(varString.c_str()); + flags += " "; + flags += this->GetIncludeFlags(lang); + + // Construct the command lines. + cmCustomCommandLines commandLines; + std::vector commands; + cmSystemTools::ExpandList(rules, commands); + cmLocalGenerator::RuleVariables vars; + vars.Language = lang; + vars.Source = sourceFile.c_str(); + vars.Object = objectFile.c_str(); + vars.ObjectDir = objectDir.c_str(); + vars.Flags = flags.c_str(); + for(std::vector::iterator i = commands.begin(); + i != commands.end(); ++i) + { + // Expand the full command line string. + this->ExpandRuleVariables(*i, vars); + + // Parse the string to get the custom command line. + cmCustomCommandLine commandLine; + std::vector cmd = cmSystemTools::ParseArguments(i->c_str()); + for(std::vector::iterator a = cmd.begin(); + a != cmd.end(); ++a) + { + commandLine.push_back(*a); + } + + // Store this command line. + commandLines.push_back(commandLine); + } + + // Check for extra object-file dependencies. + std::vector depends; + const char* additionalDeps = source.GetProperty("OBJECT_DEPENDS"); + if(additionalDeps) + { + cmSystemTools::ExpandListArgument(additionalDeps, depends); + } + + // Generate a meaningful comment for the command. + std::string comment = "Building "; + comment += lang; + comment += " object "; + comment += this->Convert(ofname, START_OUTPUT); + + // Add the custom command to build the object file. + this->Makefile->AddCustomCommandToOutput( + ofname, + depends, + source.GetFullPath().c_str(), + commandLines, + comment.c_str(), + this->Makefile->GetStartOutputDirectory() + ); +} + +void cmLocalGenerator::AddBuildTargetRule(const char* llang, cmTarget& target) +{ + cmStdString objs; + std::vector objVector; + // Add all the sources outputs to the depends of the target + std::vector const& classes = target.GetSourceFiles(); + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); ++i) + { + cmSourceFile* sf = *i; + if(!sf->GetCustomCommand() && + !sf->GetPropertyAsBool("HEADER_FILE_ONLY") && + !sf->GetPropertyAsBool("EXTERNAL_OBJECT")) + { + std::string::size_type dir_len = 0; + dir_len += strlen(this->Makefile->GetCurrentOutputDirectory()); + dir_len += 1; + std::string obj = this->GetObjectFileNameWithoutTarget(*sf, dir_len); + if(!obj.empty()) + { + std::string ofname = this->Makefile->GetCurrentOutputDirectory(); + ofname += "/"; + ofname += obj; + objVector.push_back(ofname); + this->AddCustomCommandToCreateObject(ofname.c_str(), + llang, *(*i), target); + objs += this->Convert(ofname.c_str(),START_OUTPUT,MAKEFILE); + objs += " "; + } + } + } + std::string createRule = "CMAKE_"; + createRule += llang; + createRule += target.GetCreateRuleVariable(); + std::string targetName = target.GetFullName(); + // Executable : + // Shared Library: + // Static Library: + // Shared Module: + std::string linkLibs; // should be set + std::string flags; // should be set + std::string linkFlags; // should be set + this->GetTargetFlags(linkLibs, flags, linkFlags, target); + cmLocalGenerator::RuleVariables vars; + vars.Language = llang; + vars.Objects = objs.c_str(); + vars.ObjectDir = "."; + vars.Target = targetName.c_str(); + vars.LinkLibraries = linkLibs.c_str(); + vars.Flags = flags.c_str(); + vars.LinkFlags = linkFlags.c_str(); + + std::string langFlags; + this->AddLanguageFlags(langFlags, llang, 0); + vars.LanguageCompileFlags = langFlags.c_str(); + + cmCustomCommandLines commandLines; + std::vector rules; + rules.push_back(this->Makefile->GetRequiredDefinition(createRule.c_str())); + std::vector commands; + cmSystemTools::ExpandList(rules, commands); + for(std::vector::iterator i = commands.begin(); + i != commands.end(); ++i) + { + // Expand the full command line string. + this->ExpandRuleVariables(*i, vars); + // Parse the string to get the custom command line. + cmCustomCommandLine commandLine; + std::vector cmd = cmSystemTools::ParseArguments(i->c_str()); + for(std::vector::iterator a = cmd.begin(); + a != cmd.end(); ++a) + { + commandLine.push_back(*a); + } + + // Store this command line. + commandLines.push_back(commandLine); + } + std::string targetFullPath = target.GetFullPath(); + // Generate a meaningful comment for the command. + std::string comment = "Linking "; + comment += llang; + comment += " target "; + comment += this->Convert(targetFullPath.c_str(), START_OUTPUT); + this->Makefile->AddCustomCommandToOutput( + targetFullPath.c_str(), + objVector, + 0, + commandLines, + comment.c_str(), + this->Makefile->GetStartOutputDirectory() + ); + target.AddSourceFile + (this->Makefile->GetSource(targetFullPath.c_str())); +} + + +void cmLocalGenerator +::CreateCustomTargetsAndCommands(std::set const& lang) +{ + cmTargets &tgts = this->Makefile->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); + l != tgts.end(); l++) + { + cmTarget& target = l->second; + switch(target.GetType()) + { + case cmTarget::STATIC_LIBRARY: + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + case cmTarget::EXECUTABLE: + { + const char* llang = + target.GetLinkerLanguage(this->GetGlobalGenerator()); + if(!llang) + { + cmSystemTools::Error + ("CMake can not determine linker language for target:", + target.GetName()); + return; + } + // if the language is not in the set lang then create custom + // commands to build the target + if(lang.count(llang) == 0) + { + this->AddBuildTargetRule(llang, target); + } + } + break; + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + case cmTarget::INSTALL_FILES: + case cmTarget::INSTALL_PROGRAMS: + case cmTarget::INSTALL_DIRECTORY: + break; + } + } +} + +// List of variables that are replaced when +// rules are expanced. These variables are +// replaced in the form with GetSafeDefinition(var). +// ${LANG} is replaced in the variable first with all enabled +// languages. +static const char* ruleReplaceVars[] = +{ + "CMAKE_${LANG}_COMPILER", + "CMAKE_SHARED_LIBRARY_CREATE_${LANG}_FLAGS", + "CMAKE_SHARED_MODULE_CREATE_${LANG}_FLAGS", + "CMAKE_SHARED_MODULE_${LANG}_FLAGS", + "CMAKE_SHARED_LIBRARY_${LANG}_FLAGS", + "CMAKE_${LANG}_LINK_FLAGS", + "CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG", + "CMAKE_${LANG}_ARCHIVE", + "CMAKE_AR", + "CMAKE_CURRENT_SOURCE_DIR", + "CMAKE_CURRENT_BINARY_DIR", + "CMAKE_RANLIB", + "CMAKE_LINKER", + 0 +}; + +std::string +cmLocalGenerator::ExpandRuleVariable(std::string const& variable, + const RuleVariables& replaceValues) +{ + if(replaceValues.LinkFlags) + { + if(variable == "LINK_FLAGS") + { + return replaceValues.LinkFlags; + } + } + if(replaceValues.Flags) + { + if(variable == "FLAGS") + { + return replaceValues.Flags; + } + } + + if(replaceValues.Source) + { + if(variable == "SOURCE") + { + return replaceValues.Source; + } + } + if(replaceValues.PreprocessedSource) + { + if(variable == "PREPROCESSED_SOURCE") + { + return replaceValues.PreprocessedSource; + } + } + if(replaceValues.AssemblySource) + { + if(variable == "ASSEMBLY_SOURCE") + { + return replaceValues.AssemblySource; + } + } + if(replaceValues.Object) + { + if(variable == "OBJECT") + { + return replaceValues.Object; + } + } + if(replaceValues.ObjectDir) + { + if(variable == "OBJECT_DIR") + { + return replaceValues.ObjectDir; + } + } + if(replaceValues.Objects) + { + if(variable == "OBJECTS") + { + return replaceValues.Objects; + } + } + if(replaceValues.ObjectsQuoted) + { + if(variable == "OBJECTS_QUOTED") + { + return replaceValues.ObjectsQuoted; + } + } + if(replaceValues.Defines && variable == "DEFINES") + { + return replaceValues.Defines; + } + if(replaceValues.TargetPDB ) + { + if(variable == "TARGET_PDB") + { + return replaceValues.TargetPDB; + } + } + + if(replaceValues.Target) + { + if(variable == "TARGET_QUOTED") + { + std::string targetQuoted = replaceValues.Target; + if(targetQuoted.size() && targetQuoted[0] != '\"') + { + targetQuoted = '\"'; + targetQuoted += replaceValues.Target; + targetQuoted += '\"'; + } + return targetQuoted; + } + if(replaceValues.LanguageCompileFlags) + { + if(variable == "LANGUAGE_COMPILE_FLAGS") + { + return replaceValues.LanguageCompileFlags; + } + } + if(replaceValues.Target) + { + if(variable == "TARGET") + { + return replaceValues.Target; + } + } + if(variable == "TARGET_IMPLIB") + { + return this->TargetImplib; + } + if(variable == "TARGET_VERSION_MAJOR") + { + if(replaceValues.TargetVersionMajor) + { + return replaceValues.TargetVersionMajor; + } + else + { + return "0"; + } + } + if(variable == "TARGET_VERSION_MINOR") + { + if(replaceValues.TargetVersionMinor) + { + return replaceValues.TargetVersionMinor; + } + else + { + return "0"; + } + } + if(replaceValues.Target) + { + if(variable == "TARGET_BASE") + { + // Strip the last extension off the target name. + std::string targetBase = replaceValues.Target; + std::string::size_type pos = targetBase.rfind("."); + if(pos != targetBase.npos) + { + return targetBase.substr(0, pos); + } + else + { + return targetBase; + } + } + } + } + if(replaceValues.TargetSOName) + { + if(variable == "TARGET_SONAME") + { + if(replaceValues.Language) + { + std::string name = "CMAKE_SHARED_LIBRARY_SONAME_"; + name += replaceValues.Language; + name += "_FLAG"; + if(this->Makefile->GetDefinition(name.c_str())) + { + return replaceValues.TargetSOName; + } + } + return ""; + } + } + if(replaceValues.TargetInstallNameDir) + { + if(variable == "TARGET_INSTALLNAME_DIR") + { + return replaceValues.TargetInstallNameDir; + } + } + if(replaceValues.LinkLibraries) + { + if(variable == "LINK_LIBRARIES") + { + return replaceValues.LinkLibraries; + } + } + std::vector enabledLanguages; + this->GlobalGenerator->GetEnabledLanguages(enabledLanguages); + // loop over language specific replace variables + int pos = 0; + while(ruleReplaceVars[pos]) + { + for(std::vector::iterator i = enabledLanguages.begin(); + i != enabledLanguages.end(); ++i) + { + const char* lang = i->c_str(); + std::string actualReplace = ruleReplaceVars[pos]; + // If this is the compiler then look for the extra variable + // _COMPILER_ARG1 which must be the first argument to the compiler + const char* compilerArg1 = 0; + if(actualReplace == "CMAKE_${LANG}_COMPILER") + { + std::string arg1 = actualReplace + "_ARG1"; + cmSystemTools::ReplaceString(arg1, "${LANG}", lang); + compilerArg1 = this->Makefile->GetDefinition(arg1.c_str()); + } + if(actualReplace.find("${LANG}") != actualReplace.npos) + { + cmSystemTools::ReplaceString(actualReplace, "${LANG}", lang); + } + if(actualReplace == variable) + { + std::string replace = + this->Makefile->GetSafeDefinition(variable.c_str()); + // if the variable is not a FLAG then treat it like a path + if(variable.find("_FLAG") == variable.npos) + { + std::string ret = this->ConvertToOutputForExisting(replace.c_str()); + // if there is a required first argument to the compiler add it + // to the compiler string + if(compilerArg1) + { + ret += " "; + ret += compilerArg1; + } + return ret; + } + return replace; + } + } + pos++; + } + return variable; +} + + +void +cmLocalGenerator::ExpandRuleVariables(std::string& s, + const RuleVariables& replaceValues) +{ + std::vector enabledLanguages; + this->GlobalGenerator->GetEnabledLanguages(enabledLanguages); + std::string::size_type start = s.find('<'); + // no variables to expand + if(start == s.npos) + { + return; + } + std::string::size_type pos = 0; + std::string expandedInput; + while(start != s.npos && start < s.size()-2) + { + std::string::size_type end = s.find('>', start); + // if we find a < with no > we are done + if(end == s.npos) + { + return; + } + char c = s[start+1]; + // if the next char after the < is not A-Za-z then + // skip it and try to find the next < in the string + if(!isalpha(c)) + { + start = s.find('<', start+1); + } + else + { + // extract the var + std::string var = s.substr(start+1, end - start-1); + std::string replace = this->ExpandRuleVariable(var, + replaceValues); + expandedInput += s.substr(pos, start-pos); + expandedInput += replace; + // move to next one + start = s.find('<', start+var.size()+2); + pos = end+1; + } + } + // add the rest of the input + expandedInput += s.substr(pos, s.size()-pos); + s = expandedInput; +} + + +std::string +cmLocalGenerator::ConvertToOutputForExisting(const char* p) +{ + std::string ret = p; + if(this->WindowsShell && ret.find(' ') != ret.npos + && cmSystemTools::FileExists(p)) + { + if(cmSystemTools::GetShortPath(p, ret)) + { + return this->Convert(ret.c_str(), NONE, SHELL, true); + } + } + return this->Convert(p, START_OUTPUT, SHELL, true); +} + +const char* cmLocalGenerator::GetIncludeFlags(const char* lang) +{ + if(!lang) + { + return ""; + } + if(this->LanguageToIncludeFlags.count(lang)) + { + return this->LanguageToIncludeFlags[lang].c_str(); + } + cmOStringStream includeFlags; + std::vector includes; + this->GetIncludeDirectories(includes); + std::vector::iterator i; + + std::string flagVar = "CMAKE_INCLUDE_FLAG_"; + flagVar += lang; + const char* includeFlag = + this->Makefile->GetSafeDefinition(flagVar.c_str()); + flagVar = "CMAKE_INCLUDE_FLAG_SEP_"; + flagVar += lang; + const char* sep = this->Makefile->GetDefinition(flagVar.c_str()); + bool quotePaths = false; + if(this->Makefile->GetDefinition("CMAKE_QUOTE_INCLUDE_PATHS")) + { + quotePaths = true; + } + bool repeatFlag = true; + // should the include flag be repeated like ie. -IA -IB + if(!sep) + { + sep = " "; + } + else + { + // if there is a separator then the flag is not repeated but is only + // given once i.e. -classpath a:b:c + repeatFlag = false; + } + + // Support special system include flag if it is available and the + // normal flag is repeated for each directory. + std::string sysFlagVar = "CMAKE_INCLUDE_SYSTEM_FLAG_"; + sysFlagVar += lang; + const char* sysIncludeFlag = 0; + if(repeatFlag) + { + sysIncludeFlag = this->Makefile->GetDefinition(sysFlagVar.c_str()); + } + + bool flagUsed = false; + std::set emitted; +#ifdef __APPLE__ + emitted.insert("/System/Library/Frameworks"); +#endif + for(i = includes.begin(); i != includes.end(); ++i) + { +#ifdef __APPLE__ + if(cmSystemTools::IsPathToFramework(i->c_str())) + { + std::string frameworkDir = *i; + frameworkDir += "/../"; + frameworkDir = cmSystemTools::CollapseFullPath(frameworkDir.c_str()); + if(emitted.insert(frameworkDir).second) + { + includeFlags + << "-F" + << this->ConvertToOutputForExisting(frameworkDir.c_str()) << " "; + } + continue; + } +#endif + std::string include = *i; + if(!flagUsed || repeatFlag) + { + if(sysIncludeFlag && + this->Makefile->IsSystemIncludeDirectory(i->c_str())) + { + includeFlags << sysIncludeFlag; + } + else + { + includeFlags << includeFlag; + } + flagUsed = true; + } + std::string includePath = this->ConvertToOutputForExisting(i->c_str()); + if(quotePaths && includePath.size() && includePath[0] != '\"') + { + includeFlags << "\""; + } + includeFlags << includePath; + if(quotePaths && includePath.size() && includePath[0] != '\"') + { + includeFlags << "\""; + } + includeFlags << sep; + } + std::string flags = includeFlags.str(); + // remove trailing separators + if((sep[0] != ' ') && flags[flags.size()-1] == sep[0]) + { + flags[flags.size()-1] = ' '; + } + std::string defineFlags = this->Makefile->GetDefineFlags(); + flags += defineFlags; + this->LanguageToIncludeFlags[lang] = flags; + + // Use this temorary variable for the return value to work-around a + // bogus GCC 2.95 warning. + const char* ret = this->LanguageToIncludeFlags[lang].c_str(); + return ret; +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::GetIncludeDirectories(std::vector& dirs, + bool filter_system_dirs) +{ + // Need to decide whether to automatically include the source and + // binary directories at the beginning of the include path. + bool includeSourceDir = false; + bool includeBinaryDir = false; + + // When automatic include directories are requested for a build then + // include the source and binary directories at the beginning of the + // include path to approximate include file behavior for an + // in-source build. This does not account for the case of a source + // file in a subdirectory of the current source directory but we + // cannot fix this because not all native build tools support + // per-source-file include paths. + if(this->Makefile->IsOn("CMAKE_INCLUDE_CURRENT_DIR")) + { + includeSourceDir = true; + includeBinaryDir = true; + } + + // CMake versions below 2.0 would add the source tree to the -I path + // automatically. Preserve compatibility. + const char* versionValue = + this->Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + int major = 0; + int minor = 0; + if(versionValue && sscanf(versionValue, "%d.%d", &major, &minor) != 2) + { + versionValue = 0; + } + if(versionValue && major < 2) + { + includeSourceDir = true; + } + + // Hack for VTK 4.0 - 4.4 which depend on the old behavior but do + // not set the backwards compatibility level automatically. + const char* vtkSourceDir = + this->Makefile->GetDefinition("VTK_SOURCE_DIR"); + if(vtkSourceDir) + { + const char* vtk_major = + this->Makefile->GetDefinition("VTK_MAJOR_VERSION"); + const char* vtk_minor = + this->Makefile->GetDefinition("VTK_MINOR_VERSION"); + vtk_major = vtk_major? vtk_major : "4"; + vtk_minor = vtk_minor? vtk_minor : "4"; + int vmajor = 0; + int vminor = 0; + if(sscanf(vtk_major, "%d", &vmajor) && + sscanf(vtk_minor, "%d", &vminor) && vmajor == 4 && vminor <= 4) + { + includeSourceDir = true; + } + } + + // Do not repeat an include path. + std::set emitted; + + // Store the automatic include paths. + if(includeBinaryDir) + { + dirs.push_back(this->Makefile->GetStartOutputDirectory()); + emitted.insert(this->Makefile->GetStartOutputDirectory()); + } + if(includeSourceDir) + { + if(emitted.find(this->Makefile->GetStartDirectory()) == emitted.end()) + { + dirs.push_back(this->Makefile->GetStartDirectory()); + emitted.insert(this->Makefile->GetStartDirectory()); + } + } + + if(filter_system_dirs) + { + // Do not explicitly add the standard include path "/usr/include". + // This can cause problems with certain standard library + // implementations because the wrong headers may be found first. + emitted.insert("/usr/include"); + if(const char* implicitIncludes = this->Makefile->GetDefinition + ("CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES")) + { + std::vector implicitIncludeVec; + cmSystemTools::ExpandListArgument(implicitIncludes, implicitIncludeVec); + for(unsigned int k = 0; k < implicitIncludeVec.size(); ++k) + { + emitted.insert(implicitIncludeVec[k]); + } + } + } + + // Get the project-specified include directories. + std::vector& includes = + this->Makefile->GetIncludeDirectories(); + + // Support putting all the in-project include directories first if + // it is requested by the project. + if(this->Makefile->IsOn("CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE")) + { + const char* topSourceDir = this->Makefile->GetHomeDirectory(); + const char* topBinaryDir = this->Makefile->GetHomeOutputDirectory(); + for(std::vector::iterator i = includes.begin(); + i != includes.end(); ++i) + { + // Emit this directory only if it is a subdirectory of the + // top-level source or binary tree. + if(cmSystemTools::ComparePath(i->c_str(), topSourceDir) || + cmSystemTools::ComparePath(i->c_str(), topBinaryDir) || + cmSystemTools::IsSubDirectory(i->c_str(), topSourceDir) || + cmSystemTools::IsSubDirectory(i->c_str(), topBinaryDir)) + { + if(emitted.insert(*i).second) + { + dirs.push_back(*i); + } + } + } + } + + // Construct the final ordered include directory list. + for(std::vector::iterator i = includes.begin(); + i != includes.end(); ++i) + { + if(emitted.insert(*i).second) + { + dirs.push_back(*i); + } + } +} + +void cmLocalGenerator::GetTargetFlags(std::string& linkLibs, + std::string& flags, + std::string& linkFlags, + cmTarget& target) +{ + std::string buildType = + this->Makefile->GetSafeDefinition("CMAKE_BUILD_TYPE"); + buildType = cmSystemTools::UpperCase(buildType); + const char* libraryLinkVariable = + "CMAKE_SHARED_LINKER_FLAGS"; // default to shared library + + switch(target.GetType()) + { + case cmTarget::STATIC_LIBRARY: + { + const char* targetLinkFlags = + target.GetProperty("STATIC_LIBRARY_FLAGS"); + if(targetLinkFlags) + { + linkFlags += targetLinkFlags; + linkFlags += " "; + } + } + break; + case cmTarget::MODULE_LIBRARY: + libraryLinkVariable = "CMAKE_MODULE_LINKER_FLAGS"; + case cmTarget::SHARED_LIBRARY: + { + linkFlags = this->Makefile->GetSafeDefinition(libraryLinkVariable); + linkFlags += " "; + if(buildType.size()) + { + std::string build = libraryLinkVariable; + build += "_"; + build += buildType; + linkFlags += this->Makefile->GetSafeDefinition(build.c_str()); + linkFlags += " "; + } + if(this->Makefile->IsOn("WIN32") && + !(this->Makefile->IsOn("CYGWIN") || this->Makefile->IsOn("MINGW"))) + { + const std::vector& sources = target.GetSourceFiles(); + for(std::vector::const_iterator i = sources.begin(); + i != sources.end(); ++i) + { + cmSourceFile* sf = *i; + if(sf->GetExtension() == "def") + { + linkFlags += + this->Makefile->GetSafeDefinition("CMAKE_LINK_DEF_FILE_FLAG"); + linkFlags += this->Convert(sf->GetFullPath().c_str(), + START_OUTPUT, SHELL); + linkFlags += " "; + } + } + } + const char* targetLinkFlags = target.GetProperty("LINK_FLAGS"); + if(targetLinkFlags) + { + linkFlags += targetLinkFlags; + linkFlags += " "; + std::string configLinkFlags = targetLinkFlags; + configLinkFlags += buildType; + targetLinkFlags = target.GetProperty(configLinkFlags.c_str()); + if(targetLinkFlags) + { + linkFlags += targetLinkFlags; + linkFlags += " "; + } + } + cmOStringStream linklibsStr; + this->OutputLinkLibraries(linklibsStr, target, false); + linkLibs = linklibsStr.str(); + } + break; + case cmTarget::EXECUTABLE: + { + linkFlags += + this->Makefile->GetSafeDefinition("CMAKE_EXE_LINKER_FLAGS"); + linkFlags += " "; + if(buildType.size()) + { + std::string build = "CMAKE_EXE_LINKER_FLAGS_"; + build += buildType; + linkFlags += this->Makefile->GetSafeDefinition(build.c_str()); + linkFlags += " "; + } + const char* linkLanguage = + target.GetLinkerLanguage(this->GetGlobalGenerator()); + if(!linkLanguage) + { + cmSystemTools::Error + ("CMake can not determine linker language for target:", + target.GetName()); + return; + } + std::string langVar = "CMAKE_"; + langVar += linkLanguage; + std::string flagsVar = langVar + "_FLAGS"; + std::string sharedFlagsVar = "CMAKE_SHARED_LIBRARY_"; + sharedFlagsVar += linkLanguage; + sharedFlagsVar += "_FLAGS"; + flags += this->Makefile->GetSafeDefinition(flagsVar.c_str()); + flags += " "; + flags += this->Makefile->GetSafeDefinition(sharedFlagsVar.c_str()); + flags += " "; + cmOStringStream linklibs; + this->OutputLinkLibraries(linklibs, target, false); + linkLibs = linklibs.str(); + if(cmSystemTools::IsOn + (this->Makefile->GetDefinition("BUILD_SHARED_LIBS"))) + { + std::string sFlagVar = std::string("CMAKE_SHARED_BUILD_") + + linkLanguage + std::string("_FLAGS"); + linkFlags += this->Makefile->GetSafeDefinition(sFlagVar.c_str()); + linkFlags += " "; + } + if ( target.GetPropertyAsBool("WIN32_EXECUTABLE") ) + { + linkFlags += + this->Makefile->GetSafeDefinition("CMAKE_CREATE_WIN32_EXE"); + linkFlags += " "; + } + else + { + linkFlags += + this->Makefile->GetSafeDefinition("CMAKE_CREATE_CONSOLE_EXE"); + linkFlags += " "; + } + const char* targetLinkFlags = target.GetProperty("LINK_FLAGS"); + if(targetLinkFlags) + { + linkFlags += targetLinkFlags; + linkFlags += " "; + std::string configLinkFlags = targetLinkFlags; + configLinkFlags += buildType; + targetLinkFlags = target.GetProperty(configLinkFlags.c_str()); + if(targetLinkFlags) + { + linkFlags += targetLinkFlags; + linkFlags += " "; + } + } + } + break; + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + case cmTarget::INSTALL_FILES: + case cmTarget::INSTALL_PROGRAMS: + case cmTarget::INSTALL_DIRECTORY: + break; + } +} + +std::string cmLocalGenerator::ConvertToLinkReference(std::string const& lib) +{ +#if defined(_WIN32) && !defined(__CYGWIN__) + // Work-ardound command line parsing limitations in MSVC 6.0 and + // Watcom. + if(this->Makefile->IsOn("MSVC60") || this->Makefile->IsOn("WATCOM")) + { + // Search for the last space. + std::string::size_type pos = lib.rfind(' '); + if(pos != lib.npos) + { + // Find the slash after the last space, if any. + pos = lib.find('/', pos); + + // Convert the portion of the path with a space to a short path. + std::string sp; + if(cmSystemTools::GetShortPath(lib.substr(0, pos).c_str(), sp)) + { + // Append the rest of the path with no space. + sp += lib.substr(pos); + + // Convert to an output path. + return this->Convert(sp.c_str(), NONE, SHELL); + } + } + } +#endif + + // Normal behavior. + return this->Convert(lib.c_str(), START_OUTPUT, SHELL); +} + +/** + * Output the linking rules on a command line. For executables, + * targetLibrary should be a NULL pointer. For libraries, it should point + * to the name of the library. This will not link a library against itself. + */ +void cmLocalGenerator::OutputLinkLibraries(std::ostream& fout, + cmTarget& tgt, + bool relink) +{ + const char* config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE"); + cmComputeLinkInformation* pcli = tgt.GetLinkInformation(config); + if(!pcli) + { + return; + } + cmComputeLinkInformation& cli = *pcli; + + // Collect library linking flags command line options. + std::string linkLibs; + + const char* linkLanguage = cli.GetLinkLanguage(); + + std::string libPathFlag = + this->Makefile->GetRequiredDefinition("CMAKE_LIBRARY_PATH_FLAG"); + std::string libPathTerminator = + this->Makefile->GetSafeDefinition("CMAKE_LIBRARY_PATH_TERMINATOR"); + + // Flags to link an executable to shared libraries. + std::string linkFlagsVar = "CMAKE_SHARED_LIBRARY_LINK_"; + linkFlagsVar += linkLanguage; + linkFlagsVar += "_FLAGS"; + if( tgt.GetType() == cmTarget::EXECUTABLE ) + { + linkLibs = this->Makefile->GetSafeDefinition(linkFlagsVar.c_str()); + linkLibs += " "; + } + + // Append the framework search path flags. + std::vector const& fwDirs = cli.GetFrameworkPaths(); + for(std::vector::const_iterator fdi = fwDirs.begin(); + fdi != fwDirs.end(); ++fdi) + { + linkLibs += "-F"; + linkLibs += this->Convert(fdi->c_str(), NONE, SHELL, false); + linkLibs += " "; + } + + // Append the library search path flags. + std::vector const& libDirs = cli.GetDirectories(); + for(std::vector::const_iterator libDir = libDirs.begin(); + libDir != libDirs.end(); ++libDir) + { + std::string libpath = this->ConvertToOutputForExisting(libDir->c_str()); + linkLibs += libPathFlag; + linkLibs += libpath; + linkLibs += libPathTerminator; + linkLibs += " "; + } + + // Append the link items. + typedef cmComputeLinkInformation::ItemVector ItemVector; + ItemVector const& items = cli.GetItems(); + for(ItemVector::const_iterator li = items.begin(); li != items.end(); ++li) + { + if(li->IsPath) + { + linkLibs += this->ConvertToLinkReference(li->Value); + } + else + { + linkLibs += li->Value; + } + linkLibs += " "; + } + + // Write the library flags to the build rule. + fout << linkLibs; + + // Get the RPATH entries. + std::vector runtimeDirs; + cli.GetRPath(runtimeDirs, relink); + + // Check what kind of rpath flags to use. + if(cli.GetRuntimeSep().empty()) + { + // Each rpath entry gets its own option ("-R a -R b -R c") + std::string rpath; + for(std::vector::iterator ri = runtimeDirs.begin(); + ri != runtimeDirs.end(); ++ri) + { + rpath += cli.GetRuntimeFlag(); + rpath += this->Convert(ri->c_str(), FULL, SHELL, false); + rpath += " "; + } + fout << rpath; + } + else + { + // All rpath entries are combined ("-Wl,-rpath,a:b:c"). + std::string rpath = cli.GetRPathString(relink); + + // If not relinking, make sure the rpath string is long enough to + // support a subsequent chrpath on installation. + if(!relink) + { + std::string::size_type minLength = cli.GetChrpathString().size(); + while(rpath.size() < minLength) + { + rpath += cli.GetRuntimeSep(); + } + } + + // Store the rpath option in the stream. + if(!rpath.empty()) + { + fout << cli.GetRuntimeFlag(); + fout << this->EscapeForShell(rpath.c_str(), true); + fout << " "; + } + } + + // Add the linker runtime search path if any. + std::string rpath_link = cli.GetRPathLinkString(); + if(!cli.GetRPathLinkFlag().empty() && !rpath_link.empty()) + { + fout << cli.GetRPathLinkFlag(); + fout << this->EscapeForShell(rpath_link.c_str(), true); + fout << " "; + } + + // Add standard libraries for this language. + std::string standardLibsVar = "CMAKE_"; + standardLibsVar += cli.GetLinkLanguage(); + standardLibsVar += "_STANDARD_LIBRARIES"; + if(const char* stdLibs = + this->Makefile->GetDefinition(standardLibsVar.c_str())) + { + fout << stdLibs << " "; + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AddLanguageFlags(std::string& flags, + const char* lang, + const char* config) +{ + // Add language-specific flags. + std::string flagsVar = "CMAKE_"; + flagsVar += lang; + flagsVar += "_FLAGS"; + if(this->EmitUniversalBinaryFlags) + { + const char* osxArch = + this->Makefile->GetDefinition("CMAKE_OSX_ARCHITECTURES"); + const char* sysroot = + this->Makefile->GetDefinition("CMAKE_OSX_SYSROOT"); + if(osxArch && sysroot && lang && lang[0] =='C') + { + std::vector archs; + cmSystemTools::ExpandListArgument(std::string(osxArch), + archs); + bool addArchFlag = true; + if(archs.size() == 1) + { + const char* archOrig = + this->Makefile->GetSafeDefinition("CMAKE_OSX_ARCHITECTURES_DEFAULT"); + if(archs[0] == archOrig) + { + addArchFlag = false; + } + } + // if there is more than one arch add the -arch and + // -isysroot flags, or if there is one arch flag, but + // it is not the default -arch flag for the system, then + // add it. Otherwize do not add -arch and -isysroot + if(addArchFlag) + { + for( std::vector::iterator i = archs.begin(); + i != archs.end(); ++i) + { + flags += " -arch "; + flags += *i; + } + flags += " -isysroot "; + flags += sysroot; + } + } + } + this->AddConfigVariableFlags(flags, flagsVar.c_str(), config); +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::GetRealDependency(const char* inName, + const char* config) +{ + // Older CMake code may specify the dependency using the target + // output file rather than the target name. Such code would have + // been written before there was support for target properties that + // modify the name so stripping down to just the file name should + // produce the target name in this case. + std::string name = cmSystemTools::GetFilenameName(inName); + if(cmSystemTools::GetFilenameLastExtension(name) == ".exe") + { + name = cmSystemTools::GetFilenameWithoutLastExtension(name); + } + + // Look for a CMake target with the given name. + if(cmTarget* target = this->Makefile->FindTargetToUse(name.c_str())) + { + // make sure it is not just a coincidence that the target name + // found is part of the inName + if(cmSystemTools::FileIsFullPath(inName)) + { + std::string tLocation = target->GetLocation(config); + tLocation = cmSystemTools::GetFilenamePath(tLocation); + std::string depLocation = cmSystemTools::GetFilenamePath( + std::string(inName)); + depLocation = cmSystemTools::CollapseFullPath(depLocation.c_str()); + tLocation = cmSystemTools::CollapseFullPath(tLocation.c_str()); + if(depLocation != tLocation) + { + // it is a full path to a depend that has the same name + // as a target but is in a different location so do not use + // the target as the depend + return inName; + } + } + switch (target->GetType()) + { + case cmTarget::EXECUTABLE: + case cmTarget::STATIC_LIBRARY: + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + { + // Get the location of the target's output file and depend on it. + if(const char* location = target->GetLocation(config)) + { + return location; + } + } + break; + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + // Depending on a utility target may not work but just trust + // the user to have given a valid name. + return inName; + case cmTarget::INSTALL_FILES: + case cmTarget::INSTALL_PROGRAMS: + case cmTarget::INSTALL_DIRECTORY: + break; + } + } + + // The name was not that of a CMake target. It must name a file. + if(cmSystemTools::FileIsFullPath(inName)) + { + // This is a full path. Return it as given. + return inName; + } + // Treat the name as relative to the source directory in which it + // was given. + name = this->Makefile->GetCurrentDirectory(); + name += "/"; + name += inName; + return name; +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::GetRealLocation(const char* inName, + const char* config) +{ + std::string outName=inName; + // Look for a CMake target with the given name, which is an executable + // and which can be run + cmTarget* target = this->Makefile->FindTargetToUse(inName); + if ((target != 0) + && (target->GetType() == cmTarget::EXECUTABLE) + && ((this->Makefile->IsOn("CMAKE_CROSSCOMPILING") == false) + || (target->IsImported() == true))) + { + outName = target->GetLocation( config ); + } + return outName; +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AddSharedFlags(std::string& flags, + const char* lang, + bool shared) +{ + std::string flagsVar; + + // Add flags for dealing with shared libraries for this language. + if(shared) + { + flagsVar = "CMAKE_SHARED_LIBRARY_"; + flagsVar += lang; + flagsVar += "_FLAGS"; + this->AppendFlags(flags, this->Makefile->GetDefinition(flagsVar.c_str())); + } + + // Add flags specific to shared builds. + if(cmSystemTools::IsOn(this->Makefile->GetDefinition("BUILD_SHARED_LIBS"))) + { + flagsVar = "CMAKE_SHARED_BUILD_"; + flagsVar += lang; + flagsVar += "_FLAGS"; + this->AppendFlags(flags, this->Makefile->GetDefinition(flagsVar.c_str())); + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AddConfigVariableFlags(std::string& flags, + const char* var, + const char* config) +{ + // Add the flags from the variable itself. + std::string flagsVar = var; + this->AppendFlags(flags, this->Makefile->GetDefinition(flagsVar.c_str())); + // Add the flags from the build-type specific variable. + if(config && *config) + { + flagsVar += "_"; + flagsVar += cmSystemTools::UpperCase(config); + this->AppendFlags(flags, this->Makefile->GetDefinition(flagsVar.c_str())); + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AppendFlags(std::string& flags, + const char* newFlags) +{ + if(newFlags && *newFlags) + { + std::string newf = newFlags; + if(flags.size()) + { + flags += " "; + } + flags += newFlags; + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::AppendDefines(std::string& defines, + const char* defines_list, + const char* lang) +{ + // Short-circuit if there are no definitions. + if(!defines_list) + { + return; + } + + // Expand the list of definitions. + std::vector defines_vec; + cmSystemTools::ExpandListArgument(defines_list, defines_vec); + + // Short-circuit if there are no definitions. + if(defines_vec.empty()) + { + return; + } + + // Lookup the define flag for the current language. + std::string dflag = "-D"; + if(lang) + { + std::string defineFlagVar = "CMAKE_"; + defineFlagVar += lang; + defineFlagVar += "_DEFINE_FLAG"; + const char* df = this->Makefile->GetDefinition(defineFlagVar.c_str()); + if(df && *df) + { + dflag = df; + } + } + + // Add each definition to the command line with appropriate escapes. + const char* dsep = defines.empty()? "" : " "; + for(std::vector::const_iterator di = defines_vec.begin(); + di != defines_vec.end(); ++di) + { + // Skip unsupported definitions. + if(!this->CheckDefinition(*di)) + { + continue; + } + + // Separate from previous definitions. + defines += dsep; + dsep = " "; + + // Append the definition with proper escaping. + defines += dflag; + if(this->WatcomWMake) + { + // The Watcom compiler does its own command line parsing instead + // of using the windows shell rules. Definitions are one of + // -DNAME + // -DNAME= + // -DNAME="c-string with spaces and other characters(?@#$)" + // + // Watcom will properly parse each of these cases from the + // command line without any escapes. However we still have to + // get the '$' and '#' characters through WMake as '$$' and + // '$#'. + for(const char* c = di->c_str(); *c; ++c) + { + if(*c == '$' || *c == '#') + { + defines += '$'; + } + defines += *c; + } + } + else + { + // Make the definition appear properly on the command line. + defines += this->EscapeForShell(di->c_str(), true); + } + } +} + +//---------------------------------------------------------------------------- +std::string +cmLocalGenerator::ConstructComment(const cmCustomCommand& cc, + const char* default_comment) +{ + // Check for a comment provided with the command. + if(cc.GetComment()) + { + return cc.GetComment(); + } + + // Construct a reasonable default comment if possible. + if(!cc.GetOutputs().empty()) + { + std::string comment; + comment = "Generating "; + const char* sep = ""; + for(std::vector::const_iterator o = cc.GetOutputs().begin(); + o != cc.GetOutputs().end(); ++o) + { + comment += sep; + comment += this->Convert(o->c_str(), cmLocalGenerator::START_OUTPUT); + sep = ", "; + } + return comment; + } + + // Otherwise use the provided default. + return default_comment; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalGenerator::ConvertToOptionallyRelativeOutputPath(const char* remote) +{ + return this->Convert(remote, START_OUTPUT, SHELL, true); +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::Convert(const char* source, + RelativeRoot relative, + OutputFormat output, + bool optional) +{ + // Make sure the relative path conversion components are set. + if(!this->PathConversionsSetup) + { + this->SetupPathConversions(); + this->PathConversionsSetup = true; + } + + // Convert the path to a relative path. + std::string result = source; + + if (!optional || this->UseRelativePaths) + { + switch (relative) + { + case HOME: + //result = cmSystemTools::CollapseFullPath(result.c_str()); + result = this->ConvertToRelativePath(this->HomeDirectoryComponents, + result.c_str()); + break; + case START: + //result = cmSystemTools::CollapseFullPath(result.c_str()); + result = this->ConvertToRelativePath(this->StartDirectoryComponents, + result.c_str()); + break; + case HOME_OUTPUT: + //result = cmSystemTools::CollapseFullPath(result.c_str()); + result = + this->ConvertToRelativePath(this->HomeOutputDirectoryComponents, + result.c_str()); + break; + case START_OUTPUT: + //result = cmSystemTools::CollapseFullPath(result.c_str()); + result = + this->ConvertToRelativePath(this->StartOutputDirectoryComponents, + result.c_str()); + break; + case FULL: + result = cmSystemTools::CollapseFullPath(result.c_str()); + break; + case NONE: + break; + } + } + // Now convert it to an output path. + if (output == MAKEFILE) + { + result = cmSystemTools::ConvertToOutputPath(result.c_str()); + } + else if( output == SHELL) + { + // For the MSYS shell convert drive letters to posix paths, so + // that c:/some/path becomes /c/some/path. This is needed to + // avoid problems with the shell path translation. + if(this->MSYSShell && !this->LinkScriptShell) + { + if(result.size() > 2 && result[1] == ':') + { + result[1] = result[0]; + result[0] = '/'; + } + } + if(this->WindowsShell) + { + std::string::size_type pos = 0; + while((pos = result.find('/', pos)) != std::string::npos) + { + result[pos] = '\\'; + pos++; + } + } + result = this->EscapeForShell(result.c_str(), true, false); + } + return result; +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::FindRelativePathTopSource() +{ + // Relative path conversion within a single tree managed by CMake is + // safe. We can use our parent relative path top if and only if + // this is a subdirectory of that top. + if(cmLocalGenerator* parent = this->GetParent()) + { + std::string parentTop = parent->FindRelativePathTopSource(); + if(cmSystemTools::IsSubDirectory( + this->Makefile->GetStartDirectory(), parentTop.c_str())) + { + return parentTop; + } + } + + // Otherwise this directory itself is the new top. + return this->Makefile->GetStartDirectory(); +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::FindRelativePathTopBinary() +{ + // Relative path conversion within a single tree managed by CMake is + // safe. We can use our parent relative path top if and only if + // this is a subdirectory of that top. + if(cmLocalGenerator* parent = this->GetParent()) + { + std::string parentTop = parent->FindRelativePathTopBinary(); + if(cmSystemTools::IsSubDirectory( + this->Makefile->GetStartOutputDirectory(), parentTop.c_str())) + { + return parentTop; + } + } + + // Otherwise this directory itself is the new top. + return this->Makefile->GetStartOutputDirectory(); +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::ConfigureRelativePaths() +{ + // Relative path conversion inside the source tree is not used to + // construct relative paths passed to build tools so it is safe to + // even when the source is a network path. + std::string source = this->FindRelativePathTopSource(); + this->RelativePathTopSource = source; + + // The current working directory on Windows cannot be a network + // path. Therefore relative paths cannot work when the binary tree + // is a network path. + std::string binary = this->FindRelativePathTopBinary(); + if(binary.size() < 2 || binary.substr(0, 2) != "//") + { + this->RelativePathTopBinary = binary; + } + else + { + this->RelativePathTopBinary = ""; + } +} + +//---------------------------------------------------------------------------- +static bool cmLocalGeneratorNotAbove(const char* a, const char* b) +{ + return (cmSystemTools::ComparePath(a, b) || + cmSystemTools::IsSubDirectory(a, b)); +} + +//---------------------------------------------------------------------------- +std::string +cmLocalGenerator::ConvertToRelativePath(const std::vector& local, + const char* in_remote) +{ + // The path should never be quoted. + assert(in_remote[0] != '\"'); + + // The local path should never have a trailing slash. + assert(local.size() > 0 && !(local[local.size()-1] == "")); + + // If the path is already relative then just return the path. + if(!cmSystemTools::FileIsFullPath(in_remote)) + { + return in_remote; + } + + // Make sure relative path conversion is configured. + if(!this->RelativePathsConfigured) + { + this->ConfigureRelativePaths(); + this->RelativePathsConfigured = true; + } + + // Skip conversion if the path and local are not both in the source + // or both in the binary tree. + std::string local_path = cmSystemTools::JoinPath(local); + if(!((cmLocalGeneratorNotAbove(local_path.c_str(), + this->RelativePathTopBinary.c_str()) && + cmLocalGeneratorNotAbove(in_remote, + this->RelativePathTopBinary.c_str())) || + (cmLocalGeneratorNotAbove(local_path.c_str(), + this->RelativePathTopSource.c_str()) && + cmLocalGeneratorNotAbove(in_remote, + this->RelativePathTopSource.c_str())))) + { + return in_remote; + } + + // Identify the longest shared path component between the remote + // path and the local path. + std::vector remote; + cmSystemTools::SplitPath(in_remote, remote); + unsigned int common=0; + while(common < remote.size() && + common < local.size() && + cmSystemTools::ComparePath(remote[common].c_str(), + local[common].c_str())) + { + ++common; + } + + // If no part of the path is in common then return the full path. + if(common == 0) + { + return in_remote; + } + + // If the entire path is in common then just return a ".". + if(common == remote.size() && + common == local.size()) + { + return "."; + } + + // If the entire path is in common except for a trailing slash then + // just return a "./". + if(common+1 == remote.size() && + remote[common].size() == 0 && + common == local.size()) + { + return "./"; + } + + // Construct the relative path. + std::string relative; + + // First add enough ../ to get up to the level of the shared portion + // of the path. Leave off the trailing slash. Note that the last + // component of local will never be empty because local should never + // have a trailing slash. + for(unsigned int i=common; i < local.size(); ++i) + { + relative += ".."; + if(i < local.size()-1) + { + relative += "/"; + } + } + + // Now add the portion of the destination path that is not included + // in the shared portion of the path. Add a slash the first time + // only if there was already something in the path. If there was a + // trailing slash in the input then the last iteration of the loop + // will add a slash followed by an empty string which will preserve + // the trailing slash in the output. + for(unsigned int i=common; i < remote.size(); ++i) + { + if(relative.size() > 0) + { + relative += "/"; + } + relative += remote[i]; + } + + // Finally return the path. + return relative; +} + +//---------------------------------------------------------------------------- +void +cmLocalGenerator +::GenerateTargetInstallRules( + std::ostream& os, const char* config, + std::vector const& configurationTypes) +{ + // Convert the old-style install specification from each target to + // an install generator and run it. + cmTargets& tgts = this->Makefile->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l) + { + // Include the user-specified pre-install script for this target. + if(const char* preinstall = l->second.GetProperty("PRE_INSTALL_SCRIPT")) + { + cmInstallScriptGenerator g(preinstall, false, 0); + g.Generate(os, config, configurationTypes); + } + + // Install this target if a destination is given. + if(l->second.GetInstallPath() != "") + { + // Compute the full install destination. Note that converting + // to unix slashes also removes any trailing slash. + // We also skip over the leading slash given by the user. + std::string destination = l->second.GetInstallPath().substr(1); + cmSystemTools::ConvertToUnixSlashes(destination); + + // Generate the proper install generator for this target type. + switch(l->second.GetType()) + { + case cmTarget::EXECUTABLE: + case cmTarget::STATIC_LIBRARY: + case cmTarget::MODULE_LIBRARY: + { + // Use a target install generator. + cmInstallTargetGenerator g(l->second, destination.c_str(), false); + g.Generate(os, config, configurationTypes); + } + break; + case cmTarget::SHARED_LIBRARY: + { +#if defined(_WIN32) || defined(__CYGWIN__) + // Special code to handle DLL. Install the import library + // to the normal destination and the DLL to the runtime + // destination. + cmInstallTargetGenerator g1(l->second, destination.c_str(), true); + g1.Generate(os, config, configurationTypes); + // We also skip over the leading slash given by the user. + destination = l->second.GetRuntimeInstallPath().substr(1); + cmSystemTools::ConvertToUnixSlashes(destination); + cmInstallTargetGenerator g2(l->second, destination.c_str(), false); + g2.Generate(os, config, configurationTypes); +#else + // Use a target install generator. + cmInstallTargetGenerator g(l->second, destination.c_str(), false); + g.Generate(os, config, configurationTypes); +#endif + } + break; + default: + break; + } + } + + // Include the user-specified post-install script for this target. + if(const char* postinstall = l->second.GetProperty("POST_INSTALL_SCRIPT")) + { + cmInstallScriptGenerator g(postinstall, false, 0); + g.Generate(os, config, configurationTypes); + } + } +} + +#if defined(CM_LG_ENCODE_OBJECT_NAMES) +static std::string cmLocalGeneratorMD5(const char* input) +{ + char md5out[32]; + cmsysMD5* md5 = cmsysMD5_New(); + cmsysMD5_Initialize(md5); + cmsysMD5_Append(md5, reinterpret_cast(input), -1); + cmsysMD5_FinalizeHex(md5, md5out); + cmsysMD5_Delete(md5); + return std::string(md5out, 32); +} + +static bool +cmLocalGeneratorShortenObjectName(std::string& objName, + std::string::size_type max_len) +{ + // Replace the beginning of the path portion of the object name with + // its own md5 sum. + std::string::size_type pos = objName.find('/', objName.size()-max_len+32); + if(pos != objName.npos) + { + std::string md5name = cmLocalGeneratorMD5(objName.substr(0, pos).c_str()); + md5name += objName.substr(pos); + objName = md5name; + + // The object name is now short enough. + return true; + } + else + { + // The object name could not be shortened enough. + return false; + } +} + +static bool cmLocalGeneratorCheckObjectName(std::string& objName, + std::string::size_type dir_len) +{ + // Choose a maximum file name length. +#if defined(_WIN32) || defined(__CYGWIN__) + std::string::size_type const max_total_len = 250; +#else + std::string::size_type const max_total_len = 1000; +#endif + + // Enforce the maximum file name length if possible. + std::string::size_type max_obj_len = max_total_len; + if(dir_len < max_total_len) + { + max_obj_len = max_total_len - dir_len; + if(objName.size() > max_obj_len) + { + // The current object file name is too long. Try to shorten it. + return cmLocalGeneratorShortenObjectName(objName, max_obj_len); + } + else + { + // The object file name is short enough. + return true; + } + } + else + { + // The build directory in which the object will be stored is + // already too deep. + return false; + } +} +#endif + +//---------------------------------------------------------------------------- +std::string& +cmLocalGenerator +::CreateSafeUniqueObjectFileName(const char* sin, + std::string::size_type dir_len) +{ + // Look for an existing mapped name for this object file. + std::map::iterator it = + this->UniqueObjectNamesMap.find(sin); + + // If no entry exists create one. + if(it == this->UniqueObjectNamesMap.end()) + { + // Start with the original name. + std::string ssin = sin; + + // Avoid full paths by removing leading slashes. + std::string::size_type pos = 0; + for(;pos < ssin.size() && ssin[pos] == '/'; ++pos); + ssin = ssin.substr(pos); + + // Avoid full paths by removing colons. + cmSystemTools::ReplaceString(ssin, ":", "_"); + + // Avoid relative paths that go up the tree. + cmSystemTools::ReplaceString(ssin, "../", "__/"); + + // Avoid spaces. + cmSystemTools::ReplaceString(ssin, " ", "_"); + + // Mangle the name if necessary. + if(this->Makefile->IsOn("CMAKE_MANGLE_OBJECT_FILE_NAMES")) + { + bool done; + int cc = 0; + char rpstr[100]; + sprintf(rpstr, "_p_"); + cmSystemTools::ReplaceString(ssin, "+", rpstr); + std::string sssin = sin; + do + { + done = true; + for ( it = this->UniqueObjectNamesMap.begin(); + it != this->UniqueObjectNamesMap.end(); + ++ it ) + { + if ( it->second == ssin ) + { + done = false; + } + } + if ( done ) + { + break; + } + sssin = ssin; + cmSystemTools::ReplaceString(ssin, "_p_", rpstr); + sprintf(rpstr, "_p%d_", cc++); + } + while ( !done ); + } + +#if defined(CM_LG_ENCODE_OBJECT_NAMES) + cmLocalGeneratorCheckObjectName(ssin, dir_len); +#else + (void)dir_len; +#endif + + // Insert the newly mapped object file name. + std::map::value_type e(sin, ssin); + it = this->UniqueObjectNamesMap.insert(e).first; + } + + // Return the map entry. + return it->second; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalGenerator +::GetObjectFileNameWithoutTarget(const cmSourceFile& source, + std::string::size_type dir_len, + bool* hasSourceExtension) +{ + // Construct the object file name using the full path to the source + // file which is its only unique identification. + const char* fullPath = source.GetFullPath().c_str(); + + // Try referencing the source relative to the source tree. + std::string relFromSource = this->Convert(fullPath, START); + assert(!relFromSource.empty()); + bool relSource = !cmSystemTools::FileIsFullPath(relFromSource.c_str()); + bool subSource = relSource && relFromSource[0] != '.'; + + // Try referencing the source relative to the binary tree. + std::string relFromBinary = this->Convert(fullPath, START_OUTPUT); + assert(!relFromBinary.empty()); + bool relBinary = !cmSystemTools::FileIsFullPath(relFromBinary.c_str()); + bool subBinary = relBinary && relFromBinary[0] != '.'; + + // Select a nice-looking reference to the source file to construct + // the object file name. + std::string objectName; + if((relSource && !relBinary) || (subSource && !subBinary)) + { + objectName = relFromSource; + } + else if((relBinary && !relSource) || (subBinary && !subSource)) + { + objectName = relFromBinary; + } + else if(relFromBinary.length() < relFromSource.length()) + { + objectName = relFromBinary; + } + else + { + objectName = relFromSource; + } + + // if it is still a full path check for the try compile case + // try compile never have in source sources, and should not + // have conflicting source file names in the same target + if(cmSystemTools::FileIsFullPath(objectName.c_str())) + { + if(this->GetGlobalGenerator()->GetCMakeInstance()->GetIsInTryCompile()) + { + objectName = cmSystemTools::GetFilenameName(source.GetFullPath()); + } + } + + // Replace the original source file extension with the object file + // extension. + bool keptSourceExtension = true; + if(!source.GetPropertyAsBool("KEEP_EXTENSION")) + { + // Decide whether this language wants to replace the source + // extension with the object extension. For CMake 2.4 + // compatibility do this by default. + bool replaceExt = this->NeedBackwardsCompatibility(2, 4); + if(!replaceExt) + { + std::string repVar = "CMAKE_"; + repVar += source.GetLanguage(); + repVar += "_OUTPUT_EXTENSION_REPLACE"; + replaceExt = this->Makefile->IsOn(repVar.c_str()); + } + + // Remove the source extension if it is to be replaced. + if(replaceExt) + { + keptSourceExtension = false; + std::string::size_type dot_pos = objectName.rfind("."); + if(dot_pos != std::string::npos) + { + objectName = objectName.substr(0, dot_pos); + } + } + + // Store the new extension. + objectName += + this->GlobalGenerator->GetLanguageOutputExtension(source); + } + if(hasSourceExtension) + { + *hasSourceExtension = keptSourceExtension; + } + + // Convert to a safe name. + return this->CreateSafeUniqueObjectFileName(objectName.c_str(), dir_len); +} + +//---------------------------------------------------------------------------- +const char* +cmLocalGenerator +::GetSourceFileLanguage(const cmSourceFile& source) +{ + return source.GetLanguage(); +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::EscapeForShellOldStyle(const char* str) +{ + std::string result; + bool forceOn = cmSystemTools::GetForceUnixPaths(); + if(forceOn && this->WindowsShell) + { + cmSystemTools::SetForceUnixPaths(false); + } + result = cmSystemTools::EscapeSpaces(str); + if(forceOn && this->WindowsShell) + { + cmSystemTools::SetForceUnixPaths(true); + } + return result; +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::EscapeForShell(const char* str, bool makeVars, + bool forEcho) +{ + // Compute the flags for the target shell environment. + int flags = 0; + if(this->WindowsVSIDE) + { + flags |= cmsysSystem_Shell_Flag_VSIDE; + } + else + { + flags |= cmsysSystem_Shell_Flag_Make; + } + if(makeVars) + { + flags |= cmsysSystem_Shell_Flag_AllowMakeVariables; + } + if(forEcho) + { + flags |= cmsysSystem_Shell_Flag_EchoWindows; + } + if(this->WatcomWMake) + { + flags |= cmsysSystem_Shell_Flag_WatcomWMake; + } + if(this->MinGWMake) + { + flags |= cmsysSystem_Shell_Flag_MinGWMake; + } + if(this->NMake) + { + flags |= cmsysSystem_Shell_Flag_NMake; + } + + // Compute the buffer size needed. + int size = (this->WindowsShell ? + cmsysSystem_Shell_GetArgumentSizeForWindows(str, flags) : + cmsysSystem_Shell_GetArgumentSizeForUnix(str, flags)); + + // Compute the shell argument itself. + std::vector arg(size); + if(this->WindowsShell) + { + cmsysSystem_Shell_GetArgumentForWindows(str, &arg[0], flags); + } + else + { + cmsysSystem_Shell_GetArgumentForUnix(str, &arg[0], flags); + } + return std::string(&arg[0]); +} + +//---------------------------------------------------------------------------- +std::string cmLocalGenerator::EscapeForCMake(const char* str) +{ + // Always double-quote the argument to take care of most escapes. + std::string result = "\""; + for(const char* c = str; *c; ++c) + { + if(*c == '"') + { + // Escape the double quote to avoid ending the argument. + result += "\\\""; + } + else if(*c == '$') + { + // Escape the dollar to avoid expanding variables. + result += "\\$"; + } + else if(*c == '\\') + { + // Escape the backslash to avoid other escapes. + result += "\\\\"; + } + else + { + // Other characters will be parsed correctly. + result += *c; + } + } + result += "\""; + return result; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalGenerator::GetTargetDirectory(cmTarget const&) const +{ + cmSystemTools::Error("GetTargetDirectory" + " called on cmLocalGenerator"); + return ""; +} + + +//---------------------------------------------------------------------------- +void +cmLocalGenerator::GetTargetObjectFileDirectories(cmTarget* , + std::vector& + ) +{ + cmSystemTools::Error("GetTargetObjectFileDirectories" + " called on cmLocalGenerator"); +} + +//---------------------------------------------------------------------------- +unsigned int cmLocalGenerator::GetBackwardsCompatibility() +{ + // The computed version may change until the project is fully + // configured. + if(!this->BackwardsCompatibilityFinal) + { + unsigned int major = 0; + unsigned int minor = 0; + unsigned int patch = 0; + if(const char* value + = this->Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY")) + { + switch(sscanf(value, "%u.%u.%u", &major, &minor, &patch)) + { + case 2: patch = 0; break; + case 1: minor = 0; patch = 0; break; + default: break; + } + } + this->BackwardsCompatibility = CMake_VERSION_ENCODE(major, minor, patch); + this->BackwardsCompatibilityFinal = this->Configured; + } + + return this->BackwardsCompatibility; +} + +//---------------------------------------------------------------------------- +bool cmLocalGenerator::NeedBackwardsCompatibility(unsigned int major, + unsigned int minor, + unsigned int patch) +{ + // Compatibility is needed if CMAKE_BACKWARDS_COMPATIBILITY is set + // equal to or lower than the given version. + unsigned int actual_compat = this->GetBackwardsCompatibility(); + return (actual_compat && + actual_compat <= CMake_VERSION_ENCODE(major, minor, patch)); +} + +//---------------------------------------------------------------------------- +bool cmLocalGenerator::CheckDefinition(std::string const& define) const +{ + // Many compilers do not support -DNAME(arg)=sdf so we disable it. + bool function_style = false; + for(const char* c = define.c_str(); *c && *c != '='; ++c) + { + if(*c == '(') + { + function_style = true; + break; + } + } + if(function_style) + { + cmOStringStream e; + e << "WARNING: Function-style preprocessor definitions may not be " + << "passed on the compiler command line because many compilers " + << "do not support it.\n" + << "CMake is dropping a preprocessor definition: " << define << "\n" + << "Consider defining the macro in a (configured) header file.\n"; + cmSystemTools::Message(e.str().c_str()); + return false; + } + + // Many compilers do not support # in the value so we disable it. + if(define.find_first_of("#") != define.npos) + { + cmOStringStream e; + e << "WARNING: Peprocessor definitions containing '#' may not be " + << "passed on the compiler command line because many compilers " + << "do not support it.\n" + << "CMake is dropping a preprocessor definition: " << define << "\n" + << "Consider defining the macro in a (configured) header file.\n"; + cmSystemTools::Message(e.str().c_str()); + return false; + } + + // Assume it is supported. + return true; +} diff --git a/CMakeLua/Source/cmLocalGenerator.h b/CMakeLua/Source/cmLocalGenerator.h new file mode 100644 index 0000000..962f832 --- /dev/null +++ b/CMakeLua/Source/cmLocalGenerator.h @@ -0,0 +1,377 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalGenerator.h,v $ + Language: C++ + Date: $Date: 2008/01/30 02:16:49 $ + Version: $Revision: 1.102 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLocalGenerator_h +#define cmLocalGenerator_h + +#include "cmStandardIncludes.h" + +class cmMakefile; +class cmGlobalGenerator; +class cmTarget; +class cmTargetManifest; +class cmSourceFile; +class cmCustomCommand; + +/** \class cmLocalGenerator + * \brief Create required build files for a directory. + * + * Subclasses of this abstract class generate makefiles, DSP, etc for various + * platforms. This class should never be constructued directly. A + * GlobalGenerator will create it and invoke the appropriate commands on it. + */ +class cmLocalGenerator +{ +public: + cmLocalGenerator(); + virtual ~cmLocalGenerator(); + + /** + * Generate the makefile for this directory. + */ + virtual void Generate() {} + + /** + * Process the CMakeLists files for this directory to fill in the + * Makefile ivar + */ + virtual void Configure(); + + /** + * Calls TraceVSDependencies() on all targets of this generator. + */ + virtual void TraceDependencies(); + + virtual void AddHelperCommands() {} + + /** + * Perform any final calculations prior to generation + */ + virtual void ConfigureFinalPass(); + + /** + * Generate the install rules files in this directory. + */ + virtual void GenerateInstallRules(); + + /** + * Generate the test files for tests. + */ + virtual void GenerateTestFiles(); + + /** + * Generate a manifest of target files that will be built. + */ + virtual void GenerateTargetManifest(); + + ///! Get the makefile for this generator + cmMakefile *GetMakefile() { + return this->Makefile; }; + + ///! Get the makefile for this generator, const version + const cmMakefile *GetMakefile() const { + return this->Makefile; }; + + ///! Get the GlobalGenerator this is associated with + cmGlobalGenerator *GetGlobalGenerator() { + return this->GlobalGenerator; }; + + ///! Set the Global Generator, done on creation by the GlobalGenerator + void SetGlobalGenerator(cmGlobalGenerator *gg); + + /** + * Convert something to something else. This is a centralized coversion + * routine used by the generators to handle relative paths and the like. + * The flags determine what is actually done. + * + * relative: treat the argument as a directory and convert it to make it + * relative or full or unchanged. If relative (HOME, START etc) then that + * specifies what it should be relative to. + * + * output: make the result suitable for output to a... + * + * optional: should any relative path operation be controlled by the rel + * path setting + */ + enum RelativeRoot { NONE, FULL, HOME, START, HOME_OUTPUT, START_OUTPUT }; + enum OutputFormat { UNCHANGED, MAKEFILE, SHELL }; + std::string Convert(const char* source, + RelativeRoot relative, + OutputFormat output = UNCHANGED, + bool optional = false); + + /** + * Convert the given path to an output path that is optionally + * relative based on the cache option CMAKE_USE_RELATIVE_PATHS. The + * remote path must use forward slashes and not already be escaped + * or quoted. + */ + std::string ConvertToOptionallyRelativeOutputPath(const char* remote); + + ///! set/get the parent generator + cmLocalGenerator* GetParent(){return this->Parent;} + void SetParent(cmLocalGenerator* g) { this->Parent = g; g->AddChild(this); } + + ///! set/get the children + void AddChild(cmLocalGenerator* g) { this->Children.push_back(g); } + std::vector& GetChildren() { return this->Children; }; + + + void AddLanguageFlags(std::string& flags, const char* lang, + const char* config); + void AddSharedFlags(std::string& flags, const char* lang, bool shared); + void AddConfigVariableFlags(std::string& flags, const char* var, + const char* config); + virtual void AppendFlags(std::string& flags, const char* newFlags); + ///! Get the include flags for the current makefile and language + const char* GetIncludeFlags(const char* lang); + + /** + * Encode a list of preprocessor definitions for the compiler + * command line. + */ + void AppendDefines(std::string& defines, const char* defines_list, + const char* lang); + + /** Translate a dependency as given in CMake code to the name to + appear in a generated build file. If the given name is that of + a CMake target it will be transformed to the real output + location of that target for the given configuration. If the + given name is the full path to a file it will be returned. + Otherwise the name is treated as a relative path with respect to + the source directory of this generator. This should only be + used for dependencies of custom commands. */ + std::string GetRealDependency(const char* name, const char* config); + + /** Translate a command as given in CMake code to the location of the + executable if the command is the name of a CMake executable target. + If that's not the case, just return the original name. */ + std::string GetRealLocation(const char* inName, const char* config); + + ///! for existing files convert to output path and short path if spaces + std::string ConvertToOutputForExisting(const char* p); + + /** Called from command-line hook to clear dependencies. */ + virtual void ClearDependencies(cmMakefile* /* mf */, + bool /* verbose */) {} + + /** Called from command-line hook to update dependencies. */ + virtual bool UpdateDependencies(const char* /* tgtInfo */, + bool /*verbose*/, + bool /*color*/) + { return true; } + + /** Get the include flags for the current makefile and language. */ + void GetIncludeDirectories(std::vector& dirs, + bool filter_system_dirs = true); + + /** Compute the language used to compile the given source file. */ + const char* GetSourceFileLanguage(const cmSourceFile& source); + + // Create a struct to hold the varibles passed into + // ExpandRuleVariables + struct RuleVariables + { + RuleVariables() + { + memset(this, 0, sizeof(*this)); + } + const char* TargetPDB; + const char* TargetVersionMajor; + const char* TargetVersionMinor; + const char* Language; + const char* Objects; + const char* Target; + const char* LinkLibraries; + const char* Source; + const char* AssemblySource; + const char* PreprocessedSource; + const char* Object; + const char* ObjectDir; + const char* Flags; + const char* ObjectsQuoted; + const char* TargetSOName; + const char* TargetInstallNameDir; + const char* LinkFlags; + const char* LanguageCompileFlags; + const char* Defines; + }; + + /** Set whether to treat conversions to SHELL as a link script shell. */ + void SetLinkScriptShell(bool b) { this->LinkScriptShell = b; } + + /** Escape the given string to be used as a command line argument in + the native build system shell. Optionally allow the build + system to replace make variable references. Optionally adjust + escapes for the special case of passing to the native echo + command. */ + std::string EscapeForShell(const char* str, bool makeVars = false, + bool forEcho = false); + + /** Backwards-compatibility version of EscapeForShell. */ + std::string EscapeForShellOldStyle(const char* str); + + /** Escape the given string as an argument in a CMake script. */ + std::string EscapeForCMake(const char* str); + + /** Return the directories into which object files will be put. + * There maybe more than one for fat binary systems like OSX. + */ + virtual void + GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs); + + /** + * Convert the given remote path to a relative path with respect to + * the given local path. The local path must be given in component + * form (see SystemTools::SplitPath) without a trailing slash. The + * remote path must use forward slashes and not already be escaped + * or quoted. + */ + std::string ConvertToRelativePath(const std::vector& local, + const char* remote); + + /** + * Get the relative path from the generator output directory to a + * per-target support directory. + */ + virtual std::string GetTargetDirectory(cmTarget const& target) const; + + /** + * Get the level of backwards compatibility requested by the project + * in this directory. This is the value of the CMake variable + * CMAKE_BACKWARDS_COMPATIBILITY whose format is + * "major.minor[.patch]". The returned integer is encoded as + * + * CMake_VERSION_ENCODE(major, minor, patch) + * + * and is monotonically increasing with the CMake version. + */ + unsigned int GetBackwardsCompatibility(); + + /** + * Test whether compatibility is set to a given version or lower. + */ + bool NeedBackwardsCompatibility(unsigned int major, + unsigned int minor, + unsigned int patch = 0xFFu); +protected: + /** Construct a comment for a custom command. */ + std::string ConstructComment(const cmCustomCommand& cc, + const char* default_comment = ""); + + /** Fill out these strings for the given target. Libraries to link, + * flags, and linkflags. */ + void GetTargetFlags(std::string& linkLibs, + std::string& flags, + std::string& linkFlags, + cmTarget&target); + + ///! put all the libraries for a target on into the given stream + virtual void OutputLinkLibraries(std::ostream&, cmTarget&, bool relink); + + // Expand rule variables in CMake of the type found in language rules + void ExpandRuleVariables(std::string& string, + const RuleVariables& replaceValues); + // Expand rule variables in a single string + std::string ExpandRuleVariable(std::string const& variable, + const RuleVariables& replaceValues); + + /** Convert a target to a utility target for unsupported + * languages of a generator */ + void AddBuildTargetRule(const char* llang, cmTarget& target); + ///! add a custom command to build a .o file that is part of a target + void AddCustomCommandToCreateObject(const char* ofname, + const char* lang, + cmSourceFile& source, + cmTarget& target); + // Create Custom Targets and commands for unsupported languages + // The set passed in should contain the languages supported by the + // generator directly. Any targets containing files that are not + // of the types listed will be compiled as custom commands and added + // to a custom target. + void CreateCustomTargetsAndCommands(std::set const&); + + // Handle old-style install rules stored in the targets. + void GenerateTargetInstallRules( + std::ostream& os, const char* config, + std::vector const& configurationTypes); + + // Compute object file names. + std::string GetObjectFileNameWithoutTarget(const cmSourceFile& source, + std::string::size_type dir_len, + bool* hasSourceExtension = 0); + std::string& CreateSafeUniqueObjectFileName(const char* sin, + std::string::size_type dir_len); + + void ConfigureRelativePaths(); + std::string FindRelativePathTopSource(); + std::string FindRelativePathTopBinary(); + void SetupPathConversions(); + + std::string ConvertToLinkReference(std::string const& lib); + + /** Check whether the native build system supports the given + definition. Issues a warning. */ + virtual bool CheckDefinition(std::string const& define) const; + + cmMakefile *Makefile; + cmGlobalGenerator *GlobalGenerator; + // members used for relative path function ConvertToMakefilePath + std::string RelativePathToSourceDir; + std::string RelativePathToBinaryDir; + std::vector HomeDirectoryComponents; + std::vector StartDirectoryComponents; + std::vector HomeOutputDirectoryComponents; + std::vector StartOutputDirectoryComponents; + cmLocalGenerator* Parent; + std::vector Children; + std::map LanguageToIncludeFlags; + std::map UniqueObjectNamesMap; + bool WindowsShell; + bool WindowsVSIDE; + bool WatcomWMake; + bool MinGWMake; + bool NMake; + bool ForceUnixPath; + bool MSYSShell; + bool LinkScriptShell; + bool UseRelativePaths; + bool IgnoreLibPrefix; + bool Configured; + bool EmitUniversalBinaryFlags; + // A type flag is not nice. It's used only in TraceDependencies(). + bool IsMakefileGenerator; + // Hack for ExpandRuleVariable until object-oriented version is + // committed. + std::string TargetImplib; + + // The top-most directories for relative path conversion. Both the + // source and destination location of a relative path conversion + // must be underneath one of these directories (both under source or + // both under binary) in order for the relative path to be evaluated + // safely by the build tools. + std::string RelativePathTopSource; + std::string RelativePathTopBinary; + bool RelativePathsConfigured; + bool PathConversionsSetup; + + unsigned int BackwardsCompatibility; + bool BackwardsCompatibilityFinal; +}; + +#endif diff --git a/CMakeLua/Source/cmLocalUnixMakefileGenerator3.cxx b/CMakeLua/Source/cmLocalUnixMakefileGenerator3.cxx new file mode 100644 index 0000000..72b4664 --- /dev/null +++ b/CMakeLua/Source/cmLocalUnixMakefileGenerator3.cxx @@ -0,0 +1,2198 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalUnixMakefileGenerator3.cxx,v $ + Language: C++ + Date: $Date: 2008/01/18 15:25:25 $ + Version: $Revision: 1.235 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLocalUnixMakefileGenerator3.h" + +#include "cmDepends.h" +#include "cmGeneratedFileStream.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmMakefileTargetGenerator.h" +#include "cmSourceFile.h" +#include "cmake.h" +#include "cmVersion.h" + +// Include dependency scanners for supported languages. Only the +// C/C++ scanner is needed for bootstrapping CMake. +#include "cmDependsC.h" +#ifdef CMAKE_BUILD_WITH_CMAKE +# include "cmDependsFortran.h" +# include "cmDependsJava.h" +# include +#endif + +#include // auto_ptr +#include + +//---------------------------------------------------------------------------- +// Helper function used below. +static std::string cmSplitExtension(std::string const& in, std::string& base) +{ + std::string ext; + std::string::size_type dot_pos = in.rfind("."); + if(dot_pos != std::string::npos) + { + // Remove the extension first in case &base == &in. + ext = in.substr(dot_pos, std::string::npos); + base = in.substr(0, dot_pos); + } + else + { + base = in; + } + return ext; +} + +//---------------------------------------------------------------------------- +cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3() +{ + this->SilentNoColon = false; + this->WindowsShell = false; + this->IncludeDirective = "include"; + this->MakefileVariableSize = 0; + this->IgnoreLibPrefix = false; + this->PassMakeflags = false; + this->DefineWindowsNULL = false; + this->UnixCD = true; + this->ColorMakefile = false; + this->SkipPreprocessedSourceRules = false; + this->SkipAssemblySourceRules = false; + this->NativeEchoCommand = "@echo "; + this->NativeEchoWindows = true; + this->MakeCommandEscapeTargetTwice = false; + this->IsMakefileGenerator = true; + this->BorlandMakeCurlyHack = false; +} + +//---------------------------------------------------------------------------- +cmLocalUnixMakefileGenerator3::~cmLocalUnixMakefileGenerator3() +{ +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::Configure() +{ + // Compute the path to use when referencing the current output + // directory from the top output directory. + this->HomeRelativeOutputPath = + this->Convert(this->Makefile->GetStartOutputDirectory(), HOME_OUTPUT); + if(this->HomeRelativeOutputPath == ".") + { + this->HomeRelativeOutputPath = ""; + } + if(!this->HomeRelativeOutputPath.empty()) + { + this->HomeRelativeOutputPath += "/"; + } + this->cmLocalGenerator::Configure(); +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::Generate() +{ + // Store the configuration name that will be generated. + if(const char* config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE")) + { + // Use the build type given by the user. + this->ConfigurationName = config; + } + else + { + // No configuration type given. + this->ConfigurationName = ""; + } + + // Record whether some options are enabled to avoid checking many + // times later. + this->ColorMakefile = this->Makefile->IsOn("CMAKE_COLOR_MAKEFILE"); + this->SkipPreprocessedSourceRules = + this->Makefile->IsOn("CMAKE_SKIP_PREPROCESSED_SOURCE_RULES"); + this->SkipAssemblySourceRules = + this->Makefile->IsOn("CMAKE_SKIP_ASSEMBLY_SOURCE_RULES"); + + // Generate the rule files for each target. + cmTargets& targets = this->Makefile->GetTargets(); + std::string empty; + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + cmMakefileTargetGenerator *tg = + cmMakefileTargetGenerator::New(this, t->first, &(t->second)); + if (tg) + { + this->TargetGenerators.push_back(tg); + tg->WriteRuleFiles(); + } + } + + // write the local Makefile + this->WriteLocalMakefile(); + + // Write the cmake file with information for this directory. + this->WriteDirectoryInformationFile(); +} + +//---------------------------------------------------------------------------- +// return info about progress actions +unsigned long cmLocalUnixMakefileGenerator3::GetNumberOfProgressActions() +{ + unsigned long result = 0; + + for (std::vector::iterator mtgIter = + this->TargetGenerators.begin(); + mtgIter != this->TargetGenerators.end(); ++mtgIter) + { + result += (*mtgIter)->GetNumberOfProgressActions(); + } + return result; +} + +//---------------------------------------------------------------------------- +// return info about progress actions +unsigned long cmLocalUnixMakefileGenerator3 +::GetNumberOfProgressActionsForTarget(const char *name) +{ + for (std::vector::iterator mtgIter = + this->TargetGenerators.begin(); + mtgIter != this->TargetGenerators.end(); ++mtgIter) + { + if (!strcmp(name,(*mtgIter)->GetTargetName())) + { + return (*mtgIter)->GetNumberOfProgressActions(); + } + } + return 0; +} + + +//---------------------------------------------------------------------------- +// writes the progreess variables and also closes out the targets +void cmLocalUnixMakefileGenerator3 +::WriteProgressVariables(unsigned long total, + unsigned long ¤t) +{ + // delete the makefile target generator objects + for (std::vector::iterator mtgIter = + this->TargetGenerators.begin(); + mtgIter != this->TargetGenerators.end(); ++mtgIter) + { + (*mtgIter)->WriteProgressVariables(total,current); + delete *mtgIter; + } + this->TargetGenerators.clear(); +} + +void cmLocalUnixMakefileGenerator3::WriteAllProgressVariable() +{ + // write the top level progress for the all target + std::string progressFile = cmake::GetCMakeFilesDirectory(); + progressFile += "/progress.make"; + std::string progressFileNameFull = + this->ConvertToFullPath(progressFile.c_str()); + cmGeneratedFileStream ruleFileStream(progressFileNameFull.c_str()); + if(!ruleFileStream) + { + return; + } + + cmGlobalUnixMakefileGenerator3 *gg = + static_cast(this->GlobalGenerator); + + ruleFileStream << gg->GetNumberOfProgressActionsInAll(this) << "\n"; +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::WriteLocalMakefile() +{ + // generate the includes + std::string ruleFileName = "Makefile"; + + // Open the rule file. This should be copy-if-different because the + // rules may depend on this file itself. + std::string ruleFileNameFull = this->ConvertToFullPath(ruleFileName); + cmGeneratedFileStream ruleFileStream(ruleFileNameFull.c_str()); + if(!ruleFileStream) + { + return; + } + // always write the top makefile + if (this->Parent) + { + ruleFileStream.SetCopyIfDifferent(true); + } + + // write the all rules + this->WriteLocalAllRules(ruleFileStream); + + // only write local targets unless at the top Keep track of targets already + // listed. + std::set emittedTargets; + if (this->Parent) + { + // write our targets, and while doing it collect up the object + // file rules + this->WriteLocalMakefileTargets(ruleFileStream,emittedTargets); + } + else + { + cmGlobalUnixMakefileGenerator3 *gg = + static_cast(this->GlobalGenerator); + gg->WriteConvenienceRules(ruleFileStream,emittedTargets); + } + + bool do_preprocess_rules = + this->GetCreatePreprocessedSourceRules(); + bool do_assembly_rules = + this->GetCreateAssemblySourceRules(); + + // now write out the object rules + // for each object file name + for (std::map::iterator lo = + this->LocalObjectFiles.begin(); + lo != this->LocalObjectFiles.end(); ++lo) + { + // Add a convenience rule for building the object file. + this->WriteObjectConvenienceRule(ruleFileStream, + "target to build an object file", + lo->first.c_str(), lo->second); + + // Check whether preprocessing and assembly rules make sense. + // They make sense only for C and C++ sources. + bool lang_is_c_or_cxx = false; + for(std::vector::const_iterator ei = + lo->second.begin(); ei != lo->second.end(); ++ei) + { + if(ei->Language == "C" || ei->Language == "CXX") + { + lang_is_c_or_cxx = true; + } + } + + // Add convenience rules for preprocessed and assembly files. + if(lang_is_c_or_cxx && (do_preprocess_rules || do_assembly_rules)) + { + std::string::size_type dot_pos = lo->first.rfind("."); + std::string base = lo->first.substr(0, dot_pos); + if(do_preprocess_rules) + { + this->WriteObjectConvenienceRule( + ruleFileStream, "target to preprocess a source file", + (base + ".i").c_str(), lo->second); + } + if(do_assembly_rules) + { + this->WriteObjectConvenienceRule( + ruleFileStream, "target to generate assembly for a file", + (base + ".s").c_str(), lo->second); + } + } + } + + // add a help target as long as there isn;t a real target named help + if(emittedTargets.insert("help").second) + { + cmGlobalUnixMakefileGenerator3 *gg = + static_cast(this->GlobalGenerator); + gg->WriteHelpRule(ruleFileStream,this); + } + + this->WriteSpecialTargetsBottom(ruleFileStream); +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::WriteObjectConvenienceRule(std::ostream& ruleFileStream, + const char* comment, const char* output, + LocalObjectInfo const& info) +{ + // If the rule includes the source file extension then create a + // version that has the extension removed. The help should include + // only the version without source extension. + bool inHelp = true; + if(info.HasSourceExtension) + { + // Remove the last extension. This should be kept. + std::string outBase1 = output; + std::string outExt1 = cmSplitExtension(outBase1, outBase1); + + // Now remove the source extension and put back the last + // extension. + std::string outNoExt; + cmSplitExtension(outBase1, outNoExt); + outNoExt += outExt1; + + // Add a rule to drive the rule below. + std::vector depends; + depends.push_back(output); + std::vector no_commands; + this->WriteMakeRule(ruleFileStream, 0, + outNoExt.c_str(), depends, no_commands, true, true); + inHelp = false; + } + + // Recursively make the rule for each target using the object file. + std::vector commands; + for(std::vector::const_iterator t = info.begin(); + t != info.end(); ++t) + { + std::string tgtMakefileName = + this->GetRelativeTargetDirectory(*(t->Target)); + std::string targetName = tgtMakefileName; + tgtMakefileName += "/build.make"; + targetName += "/"; + targetName += output; + commands.push_back( + this->GetRecursiveMakeCall(tgtMakefileName.c_str(), targetName.c_str()) + ); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + } + + // Write the rule to the makefile. + std::vector no_depends; + this->WriteMakeRule(ruleFileStream, comment, + output, no_depends, commands, true, inHelp); +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3 +::WriteLocalMakefileTargets(std::ostream& ruleFileStream, + std::set &emitted) +{ + std::vector depends; + std::vector commands; + + // for each target we just provide a rule to cd up to the top and do a make + // on the target + cmTargets& targets = this->Makefile->GetTargets(); + std::string localName; + for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) + { + if((t->second.GetType() == cmTarget::EXECUTABLE) || + (t->second.GetType() == cmTarget::STATIC_LIBRARY) || + (t->second.GetType() == cmTarget::SHARED_LIBRARY) || + (t->second.GetType() == cmTarget::MODULE_LIBRARY) || + (t->second.GetType() == cmTarget::UTILITY)) + { + emitted.insert(t->second.GetName()); + + // for subdirs add a rule to build this specific target by name. + localName = this->GetRelativeTargetDirectory(t->second); + localName += "/rule"; + commands.clear(); + depends.clear(); + + // Build the target for this pass. + std::string makefile2 = cmake::GetCMakeFilesDirectoryPostSlash(); + makefile2 += "Makefile2"; + commands.push_back(this->GetRecursiveMakeCall + (makefile2.c_str(),localName.c_str())); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + this->WriteMakeRule(ruleFileStream, "Convenience name for target.", + localName.c_str(), depends, commands, true); + + // Add a target with the canonical name (no prefix, suffix or path). + if(localName != t->second.GetName()) + { + commands.clear(); + depends.push_back(localName); + this->WriteMakeRule(ruleFileStream, "Convenience name for target.", + t->second.GetName(), depends, commands, true); + } + + // Add a fast rule to build the target + std::string makefileName = this->GetRelativeTargetDirectory(t->second); + makefileName += "/build.make"; + // make sure the makefile name is suitable for a makefile + std::string makeTargetName = + this->GetRelativeTargetDirectory(t->second); + makeTargetName += "/build"; + localName = t->second.GetName(); + localName += "/fast"; + depends.clear(); + commands.clear(); + commands.push_back(this->GetRecursiveMakeCall + (makefileName.c_str(), makeTargetName.c_str())); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + this->WriteMakeRule(ruleFileStream, "fast build rule for target.", + localName.c_str(), depends, commands, true); + + // Add a local name for the rule to relink the target before + // installation. + if(t->second.NeedRelinkBeforeInstall()) + { + makeTargetName = this->GetRelativeTargetDirectory(t->second); + makeTargetName += "/preinstall"; + localName = t->second.GetName(); + localName += "/preinstall"; + depends.clear(); + commands.clear(); + commands.push_back(this->GetRecursiveMakeCall + (makefile2.c_str(), makeTargetName.c_str())); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + this->WriteMakeRule(ruleFileStream, + "Manual pre-install relink rule for target.", + localName.c_str(), depends, commands, true); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::WriteDirectoryInformationFile() +{ + std::string infoFileName = this->Makefile->GetStartOutputDirectory(); + infoFileName += cmake::GetCMakeFilesDirectory(); + infoFileName += "/CMakeDirectoryInformation.cmake"; + + // Open the output file. + cmGeneratedFileStream infoFileStream(infoFileName.c_str()); + if(!infoFileStream) + { + return; + } + + // Write the do not edit header. + this->WriteDisclaimer(infoFileStream); + + // Setup relative path conversion tops. + infoFileStream + << "# Relative path conversion top directories.\n" + << "SET(CMAKE_RELATIVE_PATH_TOP_SOURCE \"" << this->RelativePathTopSource + << "\")\n" + << "SET(CMAKE_RELATIVE_PATH_TOP_BINARY \"" << this->RelativePathTopBinary + << "\")\n" + << "\n"; + + // Tell the dependency scanner to use unix paths if necessary. + if(cmSystemTools::GetForceUnixPaths()) + { + infoFileStream + << "# Force unix paths in dependencies.\n" + << "SET(CMAKE_FORCE_UNIX_PATHS 1)\n" + << "\n"; + } + + // Store the include search path for this directory. + infoFileStream + << "# The C and CXX include file search paths:\n"; + infoFileStream + << "SET(CMAKE_C_INCLUDE_PATH\n"; + std::vector includeDirs; + this->GetIncludeDirectories(includeDirs, false); + for(std::vector::iterator i = includeDirs.begin(); + i != includeDirs.end(); ++i) + { + infoFileStream + << " \"" << this->Convert(i->c_str(),HOME_OUTPUT).c_str() << "\"\n"; + } + infoFileStream + << " )\n"; + infoFileStream + << "SET(CMAKE_CXX_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH})\n"; + infoFileStream + << "SET(CMAKE_Fortran_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH})\n"; + + // Store the include regular expressions for this directory. + infoFileStream + << "\n" + << "# The C and CXX include file regular expressions for " + << "this directory.\n"; + infoFileStream + << "SET(CMAKE_C_INCLUDE_REGEX_SCAN "; + this->WriteCMakeArgument(infoFileStream, + this->Makefile->GetIncludeRegularExpression()); + infoFileStream + << ")\n"; + infoFileStream + << "SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "; + this->WriteCMakeArgument(infoFileStream, + this->Makefile->GetComplainRegularExpression()); + infoFileStream + << ")\n"; + infoFileStream + << "SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\n"; + infoFileStream + << "SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN " + "${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalUnixMakefileGenerator3 +::ConvertToFullPath(const std::string& localPath) +{ + std::string dir = this->Makefile->GetStartOutputDirectory(); + dir += "/"; + dir += localPath; + return dir; +} + + +const std::string &cmLocalUnixMakefileGenerator3::GetHomeRelativeOutputPath() +{ + return this->HomeRelativeOutputPath; +} + + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::WriteMakeRule(std::ostream& os, + const char* comment, + const char* target, + const std::vector& depends, + const std::vector& commands, + bool symbolic, + bool in_help) +{ + // Make sure there is a target. + if(!target || !*target) + { + cmSystemTools::Error("No target for WriteMakeRule! called with comment: ", + comment); + return; + } + + std::string replace; + + // Write the comment describing the rule in the makefile. + if(comment) + { + replace = comment; + std::string::size_type lpos = 0; + std::string::size_type rpos; + while((rpos = replace.find('\n', lpos)) != std::string::npos) + { + os << "# " << replace.substr(lpos, rpos-lpos) << "\n"; + lpos = rpos+1; + } + os << "# " << replace.substr(lpos) << "\n"; + } + + // Construct the left hand side of the rule. + replace = target; + std::string tgt = this->Convert(replace.c_str(),HOME_OUTPUT,MAKEFILE); + const char* space = ""; + if(tgt.size() == 1) + { + // Add a space before the ":" to avoid drive letter confusion on + // Windows. + space = " "; + } + + // Mark the rule as symbolic if requested. + if(symbolic) + { + if(const char* sym = + this->Makefile->GetDefinition("CMAKE_MAKE_SYMBOLIC_RULE")) + { + os << tgt.c_str() << space << ": " << sym << "\n"; + } + } + + // Write the rule. + if(depends.empty()) + { + // No dependencies. The commands will always run. + os << tgt.c_str() << space << ":\n"; + } + else + { + // Split dependencies into multiple rule lines. This allows for + // very long dependency lists even on older make implementations. + for(std::vector::const_iterator dep = depends.begin(); + dep != depends.end(); ++dep) + { + replace = *dep; + replace = this->Convert(replace.c_str(),HOME_OUTPUT,MAKEFILE); + os << tgt.c_str() << space << ": " << replace.c_str() << "\n"; + } + } + + // Write the list of commands. + for(std::vector::const_iterator i = commands.begin(); + i != commands.end(); ++i) + { + replace = *i; + os << "\t" << replace.c_str() << "\n"; + } + os << "\n"; + + // Add the output to the local help if requested. + if(in_help) + { + this->LocalHelp.push_back(target); + } +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::WriteMakeVariables(std::ostream& makefileStream) +{ + this->WriteDivider(makefileStream); + makefileStream + << "# Set environment variables for the build.\n" + << "\n"; + if(this->DefineWindowsNULL) + { + makefileStream + << "!IF \"$(OS)\" == \"Windows_NT\"\n" + << "NULL=\n" + << "!ELSE\n" + << "NULL=nul\n" + << "!ENDIF\n"; + } + if(this->WindowsShell) + { + makefileStream + << "SHELL = cmd.exe\n" + << "\n"; + } + else + { + makefileStream + << "# The shell in which to execute make rules.\n" + << "SHELL = /bin/sh\n" + << "\n"; + } + + std::string cmakecommand = + this->Makefile->GetRequiredDefinition("CMAKE_COMMAND"); + makefileStream + << "# The CMake executable.\n" + << "CMAKE_COMMAND = " + << this->Convert(cmakecommand.c_str(), FULL, SHELL).c_str() + << "\n" + << "\n"; + makefileStream + << "# The command to remove a file.\n" + << "RM = " + << this->Convert(cmakecommand.c_str(),FULL,SHELL).c_str() + << " -E remove -f\n" + << "\n"; + + if(this->Makefile->GetDefinition("CMAKE_EDIT_COMMAND")) + { + makefileStream + << "# The program to use to edit the cache.\n" + << "CMAKE_EDIT_COMMAND = " + << (this->ConvertToOutputForExisting( + this->Makefile->GetDefinition("CMAKE_EDIT_COMMAND"))) << "\n" + << "\n"; + } + + makefileStream + << "# The top-level source directory on which CMake was run.\n" + << "CMAKE_SOURCE_DIR = " + << this->Convert(this->Makefile->GetHomeDirectory(), FULL, SHELL) + << "\n" + << "\n"; + makefileStream + << "# The top-level build directory on which CMake was run.\n" + << "CMAKE_BINARY_DIR = " + << this->Convert(this->Makefile->GetHomeOutputDirectory(), FULL, SHELL) + << "\n" + << "\n"; +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::WriteSpecialTargetsTop(std::ostream& makefileStream) +{ + this->WriteDivider(makefileStream); + makefileStream + << "# Special targets provided by cmake.\n" + << "\n"; + + std::vector no_commands; + std::vector no_depends; + + // Special target to cleanup operation of make tool. + // This should be the first target except for the default_target in + // the interface Makefile. + this->WriteMakeRule( + makefileStream, "Disable implicit rules so canoncical targets will work.", + ".SUFFIXES", no_depends, no_commands, false); + + // Add a fake suffix to keep HP happy. Must be max 32 chars for SGI make. + std::vector depends; + depends.push_back(".hpux_make_needs_suffix_list"); + this->WriteMakeRule(makefileStream, 0, + ".SUFFIXES", depends, no_commands, false); + + cmGlobalUnixMakefileGenerator3* gg = + static_cast(this->GlobalGenerator); + // Write special target to silence make output. This must be after + // the default target in case VERBOSE is set (which changes the + // name). The setting of CMAKE_VERBOSE_MAKEFILE to ON will cause a + // "VERBOSE=1" to be added as a make variable which will change the + // name of this special target. This gives a make-time choice to + // the user. + if((this->Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE")) + || (gg->GetForceVerboseMakefiles())) + { + makefileStream + << "# Produce verbose output by default.\n" + << "VERBOSE = 1\n" + << "\n"; + } + if(this->SilentNoColon) + { + makefileStream << "$(VERBOSE).SILENT\n"; + } + else + { + this->WriteMakeRule(makefileStream, + "Suppress display of executed commands.", + "$(VERBOSE).SILENT", + no_depends, + no_commands, false); + } + + // Work-around for makes that drop rules that have no dependencies + // or commands. + std::string hack = gg->GetEmptyRuleHackDepends(); + if(!hack.empty()) + { + no_depends.push_back(hack); + } + std::string hack_cmd = gg->GetEmptyRuleHackCommand(); + if(!hack_cmd.empty()) + { + no_commands.push_back(hack_cmd); + } + + // Special symbolic target that never exists to force dependers to + // run their rules. + this->WriteMakeRule + (makefileStream, + "A target that is always out of date.", + "cmake_force", no_depends, no_commands, true); + + // Variables for reference by other rules. + this->WriteMakeVariables(makefileStream); +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3 +::WriteSpecialTargetsBottom(std::ostream& makefileStream) +{ + this->WriteDivider(makefileStream); + makefileStream + << "# Special targets to cleanup operation of make.\n" + << "\n"; + + // Write special "cmake_check_build_system" target to run cmake with + // the --check-build-system flag. + { + // Build command to run CMake to check if anything needs regenerating. + std::string cmakefileName = cmake::GetCMakeFilesDirectoryPostSlash(); + cmakefileName += "Makefile.cmake"; + std::string runRule = + "$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)"; + runRule += " --check-build-system "; + runRule += this->Convert(cmakefileName.c_str(),NONE,SHELL); + runRule += " 0"; + + std::vector no_depends; + std::vector commands; + commands.push_back(runRule); + if(this->Parent) + { + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + } + this->WriteMakeRule(makefileStream, + "Special rule to run CMake to check the build system " + "integrity.\n" + "No rule that depends on this can have " + "commands that come from listfiles\n" + "because they might be regenerated.", + "cmake_check_build_system", + no_depends, + commands, true); + } +} + + + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::WriteConvenienceRule(std::ostream& ruleFileStream, + const char* realTarget, + const char* helpTarget) +{ + // A rule is only needed if the names are different. + if(strcmp(realTarget, helpTarget) != 0) + { + // The helper target depends on the real target. + std::vector depends; + depends.push_back(realTarget); + + // There are no commands. + std::vector no_commands; + + // Write the rule. + this->WriteMakeRule(ruleFileStream, "Convenience name for target.", + helpTarget, depends, no_commands, true); + } +} + + +//---------------------------------------------------------------------------- +std::string +cmLocalUnixMakefileGenerator3 +::GetRelativeTargetDirectory(cmTarget const& target) +{ + std::string dir = this->HomeRelativeOutputPath; + dir += this->GetTargetDirectory(target); + return this->Convert(dir.c_str(),NONE,UNCHANGED); +} + + + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::AppendFlags(std::string& flags, + const char* newFlags) +{ + if(this->WatcomWMake && newFlags && *newFlags) + { + std::string newf = newFlags; + if(newf.find("\\\"") != newf.npos) + { + cmSystemTools::ReplaceString(newf, "\\\"", "\""); + this->cmLocalGenerator::AppendFlags(flags, newf.c_str()); + return; + } + } + this->cmLocalGenerator::AppendFlags(flags, newFlags); +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::AppendRuleDepend(std::vector& depends, + const char* ruleFileName) +{ + // Add a dependency on the rule file itself unless an option to skip + // it is specifically enabled by the user or project. + const char* nodep = + this->Makefile->GetDefinition("CMAKE_SKIP_RULE_DEPENDENCY"); + if(!nodep || cmSystemTools::IsOff(nodep)) + { + depends.push_back(ruleFileName); + } +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::AppendCustomDepends(std::vector& depends, + const std::vector& ccs) +{ + for(std::vector::const_iterator i = ccs.begin(); + i != ccs.end(); ++i) + { + this->AppendCustomDepend(depends, *i); + } +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::AppendCustomDepend(std::vector& depends, + const cmCustomCommand& cc) +{ + for(std::vector::const_iterator d = cc.GetDepends().begin(); + d != cc.GetDepends().end(); ++d) + { + // Lookup the real name of the dependency in case it is a CMake target. + std::string dep = this->GetRealDependency + (d->c_str(), this->ConfigurationName.c_str()); + depends.push_back(dep); + } +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::AppendCustomCommands(std::vector& commands, + const std::vector& ccs) +{ + for(std::vector::const_iterator i = ccs.begin(); + i != ccs.end(); ++i) + { + this->AppendCustomCommand(commands, *i, true); + } +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::AppendCustomCommand(std::vector& commands, + const cmCustomCommand& cc, bool echo_comment) +{ + // Optionally create a command to display the custom command's + // comment text. This is used for pre-build, pre-link, and + // post-build command comments. Custom build step commands have + // their comments generated elsewhere. + if(echo_comment) + { + const char* comment = cc.GetComment(); + if(comment && *comment) + { + this->AppendEcho(commands, comment, + cmLocalUnixMakefileGenerator3::EchoGenerate); + } + } + + // if the command specified a working directory use it. + const char* dir = this->Makefile->GetStartOutputDirectory(); + const char* workingDir = cc.GetWorkingDirectory(); + if(workingDir) + { + dir = workingDir; + } + bool escapeOldStyle = cc.GetEscapeOldStyle(); + bool escapeAllowMakeVars = cc.GetEscapeAllowMakeVars(); + + // Add each command line to the set of commands. + std::vector commands1; + for(cmCustomCommandLines::const_iterator cl = cc.GetCommandLines().begin(); + cl != cc.GetCommandLines().end(); ++cl) + { + // Build the command line in a single string. + const cmCustomCommandLine& commandLine = *cl; + std::string cmd = GetRealLocation(commandLine[0].c_str(), + this->ConfigurationName.c_str()); + if (cmd.size()) + { + cmSystemTools::ReplaceString(cmd, "/./", "/"); + // Convert the command to a relative path only if the current + // working directory will be the start-output directory. + bool had_slash = cmd.find("/") != cmd.npos; + if(!workingDir) + { + cmd = this->Convert(cmd.c_str(),START_OUTPUT); + } + bool has_slash = cmd.find("/") != cmd.npos; + if(had_slash && !has_slash) + { + // This command was specified as a path to a file in the + // current directory. Add a leading "./" so it can run + // without the current directory being in the search path. + cmd = "./" + cmd; + } + cmd = this->Convert(cmd.c_str(),NONE,SHELL); + for(unsigned int j=1; j < commandLine.size(); ++j) + { + cmd += " "; + if(escapeOldStyle) + { + cmd += this->EscapeForShellOldStyle(commandLine[j].c_str()); + } + else + { + cmd += this->EscapeForShell(commandLine[j].c_str(), + escapeAllowMakeVars); + } + } + if(this->BorlandMakeCurlyHack) + { + // Borland Make has a very strange bug. If the first curly + // brace anywhere in the command string is a left curly, it + // must be written {{} instead of just {. Otherwise some + // curly braces are removed. The hack can be skipped if the + // first curly brace is the last character. + std::string::size_type lcurly = cmd.find("{"); + if(lcurly != cmd.npos && lcurly < (cmd.size()-1)) + { + std::string::size_type rcurly = cmd.find("}"); + if(rcurly == cmd.npos || rcurly > lcurly) + { + // The first curly is a left curly. Use the hack. + std::string hack_cmd = cmd.substr(0, lcurly); + hack_cmd += "{{}"; + hack_cmd += cmd.substr(lcurly+1); + cmd = hack_cmd; + } + } + } + commands1.push_back(cmd); + } + } + + // Setup the proper working directory for the commands. + this->CreateCDCommand(commands1, dir, + this->Makefile->GetHomeOutputDirectory()); + + // push back the custom commands + commands.insert(commands.end(), commands1.begin(), commands1.end()); +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::AppendCleanCommand(std::vector& commands, + const std::vector& files, + cmTarget& target, const char* filename) +{ + if(!files.empty()) + { + std::string cleanfile = this->Makefile->GetCurrentOutputDirectory(); + cleanfile += "/"; + cleanfile += this->GetTargetDirectory(target); + cleanfile += "/cmake_clean"; + if(filename) + { + cleanfile += "_"; + cleanfile += filename; + } + cleanfile += ".cmake"; + std::string cleanfilePath = this->Convert(cleanfile.c_str(), FULL); + std::ofstream fout(cleanfilePath.c_str()); + if(!fout) + { + cmSystemTools::Error("Could not create ", cleanfilePath.c_str()); + } + fout << "FILE(REMOVE\n"; + std::string remove = "$(CMAKE_COMMAND) -P "; + remove += this->Convert(cleanfile.c_str(), START_OUTPUT, SHELL); + for(std::vector::const_iterator f = files.begin(); + f != files.end(); ++f) + { + fout << "\"" << this->Convert(f->c_str(),START_OUTPUT,UNCHANGED) + << "\"\n"; + } + fout << ")\n"; + commands.push_back(remove); + + // For the main clean rule add per-language cleaning. + if(!filename) + { + // Get the set of source languages in the target. + std::set languages; + target.GetLanguages(languages); + fout << "\n" + << "# Per-language clean rules from dependency scanning.\n" + << "FOREACH(lang"; + for(std::set::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + fout << " " << *l; + } + fout << ")\n" + << " INCLUDE(" << this->GetTargetDirectory(target) + << "/cmake_clean_${lang}.cmake OPTIONAL)\n" + << "ENDFOREACH(lang)\n"; + } + } +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3::AppendEcho(std::vector& commands, + const char* text, + EchoColor color) +{ + // Choose the color for the text. + std::string color_name; +#ifdef CMAKE_BUILD_WITH_CMAKE + if(this->GlobalGenerator->GetToolSupportsColor() && this->ColorMakefile) + { + // See cmake::ExecuteEchoColor in cmake.cxx for these options. + // This color set is readable on both black and white backgrounds. + switch(color) + { + case EchoNormal: + break; + case EchoDepend: + color_name = "--magenta --bold "; + break; + case EchoBuild: + color_name = "--green "; + break; + case EchoLink: + color_name = "--red --bold "; + break; + case EchoGenerate: + color_name = "--blue --bold "; + break; + case EchoGlobal: + color_name = "--cyan "; + break; + } + } +#else + (void)color; +#endif + + // Echo one line at a time. + std::string line; + line.reserve(200); + for(const char* c = text;; ++c) + { + if(*c == '\n' || *c == '\0') + { + // Avoid writing a blank last line on end-of-string. + if(*c != '\0' || !line.empty()) + { + // Add a command to echo this line. + std::string cmd; + if(color_name.empty()) + { + // Use the native echo command. + cmd = this->NativeEchoCommand; + cmd += this->EscapeForShell(line.c_str(), false, + this->NativeEchoWindows); + } + else + { + // Use cmake to echo the text in color. + cmd = "@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) "; + cmd += color_name; + cmd += this->EscapeForShell(line.c_str()); + } + commands.push_back(cmd); + } + + // Reset the line to emtpy. + line = ""; + + // Terminate on end-of-string. + if(*c == '\0') + { + return; + } + } + else if(*c != '\r') + { + // Append this character to the current line. + line += *c; + } + } +} + +//---------------------------------------------------------------------------- +std::string +cmLocalUnixMakefileGenerator3 +::CreateMakeVariable(const char* sin, const char* s2in) +{ + std::string s = sin; + std::string s2 = s2in; + std::string unmodified = s; + unmodified += s2; + // if there is no restriction on the length of make variables + // and there are no "." charactors in the string, then return the + // unmodified combination. + if((!this->MakefileVariableSize && unmodified.find('.') == s.npos) + && (!this->MakefileVariableSize && unmodified.find('-') == s.npos)) + { + return unmodified; + } + + // see if the variable has been defined before and return + // the modified version of the variable + std::map::iterator i = + this->MakeVariableMap.find(unmodified); + if(i != this->MakeVariableMap.end()) + { + return i->second; + } + // start with the unmodified variable + std::string ret = unmodified; + // if this there is no value for this->MakefileVariableSize then + // the string must have bad characters in it + if(!this->MakefileVariableSize) + { + cmSystemTools::ReplaceString(ret, ".", "_"); + cmSystemTools::ReplaceString(ret, "-", "__"); + int ni = 0; + char buffer[5]; + // make sure the _ version is not already used, if + // it is used then add number to the end of the variable + while(this->ShortMakeVariableMap.count(ret) && ni < 1000) + { + ++ni; + sprintf(buffer, "%04d", ni); + ret = unmodified + buffer; + } + this->ShortMakeVariableMap[ret] = "1"; + this->MakeVariableMap[unmodified] = ret; + return ret; + } + + // if the string is greater the 32 chars it is an invalid vairable name + // for borland make + if(static_cast(ret.size()) > this->MakefileVariableSize) + { + int keep = this->MakefileVariableSize - 8; + int size = keep + 3; + std::string str1 = s; + std::string str2 = s2; + // we must shorten the combined string by 4 charactors + // keep no more than 24 charactors from the second string + if(static_cast(str2.size()) > keep) + { + str2 = str2.substr(0, keep); + } + if(static_cast(str1.size()) + static_cast(str2.size()) > size) + { + str1 = str1.substr(0, size - str2.size()); + } + char buffer[5]; + int ni = 0; + sprintf(buffer, "%04d", ni); + ret = str1 + str2 + buffer; + while(this->ShortMakeVariableMap.count(ret) && ni < 1000) + { + ++ni; + sprintf(buffer, "%04d", ni); + ret = str1 + str2 + buffer; + } + if(ni == 1000) + { + cmSystemTools::Error("Borland makefile variable length too long"); + return unmodified; + } + // once an unused variable is found + this->ShortMakeVariableMap[ret] = "1"; + } + // always make an entry into the unmodified to variable map + this->MakeVariableMap[unmodified] = ret; + return ret; +} + +//---------------------------------------------------------------------------- +bool cmLocalUnixMakefileGenerator3::UpdateDependencies(const char* tgtInfo, + bool verbose, + bool color) +{ + // read in the target info file + if(!this->Makefile->ReadListFile(0, tgtInfo) || + cmSystemTools::GetErrorOccuredFlag()) + { + cmSystemTools::Error("Target DependInfo.cmake file not found"); + } + + // Check if any multiple output pairs have a missing file. + this->CheckMultipleOutputs(verbose); + + std::string dir = cmSystemTools::GetFilenamePath(tgtInfo); + std::string internalDependFile = dir + "/depend.internal"; + std::string dependFile = dir + "/depend.make"; + + // Check the implicit dependencies to see if they are up to date. + // The build.make file may have explicit dependencies for the object + // files but these will not affect the scanning process so they need + // not be considered. + cmDependsC checker; + checker.SetVerbose(verbose); + checker.SetFileComparison + (this->GlobalGenerator->GetCMakeInstance()->GetFileComparison()); + if(!checker.Check(dependFile.c_str(), internalDependFile.c_str())) + { + // The dependencies must be regenerated. + std::string targetName = cmSystemTools::GetFilenameName(dir); + targetName = targetName.substr(0, targetName.length()-4); + std::string message = "Scanning dependencies of target "; + message += targetName; +#ifdef CMAKE_BUILD_WITH_CMAKE + cmSystemTools::MakefileColorEcho( + cmsysTerminal_Color_ForegroundMagenta | + cmsysTerminal_Color_ForegroundBold, + message.c_str(), true, color); +#else + fprintf(stdout, "%s\n", message.c_str()); +#endif + + return this->ScanDependencies(dir.c_str()); + } + else + { + // The dependencies are already up-to-date. + return true; + } +} + +//---------------------------------------------------------------------------- +bool +cmLocalUnixMakefileGenerator3 +::ScanDependencies(const char* targetDir) +{ + // Read the directory information file. + cmMakefile* mf = this->Makefile; + bool haveDirectoryInfo = false; + std::string dirInfoFile = this->Makefile->GetStartOutputDirectory(); + dirInfoFile += cmake::GetCMakeFilesDirectory(); + dirInfoFile += "/CMakeDirectoryInformation.cmake"; + if(mf->ReadListFile(0, dirInfoFile.c_str()) && + !cmSystemTools::GetErrorOccuredFlag()) + { + haveDirectoryInfo = true; + } + + // Lookup useful directory information. + if(haveDirectoryInfo) + { + // Test whether we need to force Unix paths. + if(const char* force = mf->GetDefinition("CMAKE_FORCE_UNIX_PATHS")) + { + if(!cmSystemTools::IsOff(force)) + { + cmSystemTools::SetForceUnixPaths(true); + } + } + + // Setup relative path top directories. + this->RelativePathsConfigured = true; + if(const char* relativePathTopSource = + mf->GetDefinition("CMAKE_RELATIVE_PATH_TOP_SOURCE")) + { + this->RelativePathTopSource = relativePathTopSource; + } + if(const char* relativePathTopBinary = + mf->GetDefinition("CMAKE_RELATIVE_PATH_TOP_BINARY")) + { + this->RelativePathTopBinary = relativePathTopBinary; + } + } + else + { + cmSystemTools::Error("Directory Information file not found"); + } + + // create the file stream for the depends file + std::string dir = targetDir; + + // Open the rule file. This should be copy-if-different because the + // rules may depend on this file itself. + std::string ruleFileNameFull = dir; + ruleFileNameFull += "/depend.make"; + cmGeneratedFileStream ruleFileStream(ruleFileNameFull.c_str()); + ruleFileStream.SetCopyIfDifferent(true); + if(!ruleFileStream) + { + return false; + } + std::string internalRuleFileNameFull = dir; + internalRuleFileNameFull += "/depend.internal"; + cmGeneratedFileStream + internalRuleFileStream(internalRuleFileNameFull.c_str()); + internalRuleFileStream.SetCopyIfDifferent(true); + if(!internalRuleFileStream) + { + return false; + } + + this->WriteDisclaimer(ruleFileStream); + this->WriteDisclaimer(internalRuleFileStream); + + // for each language we need to scan, scan it + const char *langStr = mf->GetSafeDefinition("CMAKE_DEPENDS_LANGUAGES"); + std::vector langs; + cmSystemTools::ExpandListArgument(langStr, langs); + for (std::vector::iterator li = + langs.begin(); li != langs.end(); ++li) + { + // construct the checker + std::string lang = li->c_str(); + + // Get the set of include directories. + std::vector includes; + if(haveDirectoryInfo) + { + std::string includePathVar = "CMAKE_"; + includePathVar += lang; + includePathVar += "_INCLUDE_PATH"; + if(const char* includePath = mf->GetDefinition(includePathVar.c_str())) + { + cmSystemTools::ExpandListArgument(includePath, includes); + } + } + + // Get the include file regular expression. + std::string includeRegexScan = "^.*$"; + std::string includeRegexComplain = "^$"; + if(haveDirectoryInfo) + { + std::string scanRegexVar = "CMAKE_"; + scanRegexVar += lang; + scanRegexVar += "_INCLUDE_REGEX_SCAN"; + if(const char* scanRegex = mf->GetDefinition(scanRegexVar.c_str())) + { + includeRegexScan = scanRegex; + } + std::string complainRegexVar = "CMAKE_"; + complainRegexVar += lang; + complainRegexVar += "_INCLUDE_REGEX_COMPLAIN"; + if(const char* complainRegex = + mf->GetDefinition(complainRegexVar.c_str())) + { + includeRegexComplain = complainRegex; + } + } + + // Create the scanner for this language + cmDepends *scanner = 0; + if(lang == "C" || lang == "CXX" || lang == "RC") + { + std::string includeCacheFileName = dir; + includeCacheFileName += "/"; + includeCacheFileName += lang; + includeCacheFileName += ".includecache"; + + // TODO: Handle RC (resource files) dependencies correctly. + scanner = new cmDependsC(includes, + includeRegexScan.c_str(), + includeRegexComplain.c_str(), + includeCacheFileName); + } +#ifdef CMAKE_BUILD_WITH_CMAKE + else if(lang == "Fortran") + { + std::vector defines; + if(const char* c_defines = + mf->GetDefinition("CMAKE_TARGET_DEFINITIONS")) + { + cmSystemTools::ExpandListArgument(c_defines, defines); + } + + scanner = new cmDependsFortran(includes, defines); + } + else if(lang == "Java") + { + scanner = new cmDependsJava(); + } +#endif + + if (scanner) + { + scanner->SetLocalGenerator(this); + scanner->SetFileComparison + (this->GlobalGenerator->GetCMakeInstance()->GetFileComparison()); + scanner->SetLanguage(lang.c_str()); + scanner->SetTargetDirectory(dir.c_str()); + scanner->Write(ruleFileStream, internalRuleFileStream); + + // free the scanner for this language + delete scanner; + } + } + + return true; +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::CheckMultipleOutputs(bool verbose) +{ + cmMakefile* mf = this->Makefile; + + // Get the string listing the multiple output pairs. + const char* pairs_string = mf->GetDefinition("CMAKE_MULTIPLE_OUTPUT_PAIRS"); + if(!pairs_string) + { + return; + } + + // Convert the string to a list and preserve empty entries. + std::vector pairs; + cmSystemTools::ExpandListArgument(pairs_string, pairs, true); + for(std::vector::const_iterator i = pairs.begin(); + i != pairs.end(); ++i) + { + const std::string& depender = *i; + if(++i != pairs.end()) + { + const std::string& dependee = *i; + + // If the depender is missing then delete the dependee to make + // sure both will be regenerated. + if(cmSystemTools::FileExists(dependee.c_str()) && + !cmSystemTools::FileExists(depender.c_str())) + { + if(verbose) + { + cmOStringStream msg; + msg << "Deleting primary custom command output \"" << dependee + << "\" because another output \"" + << depender << "\" does not exist." << std::endl; + cmSystemTools::Stdout(msg.str().c_str()); + } + cmSystemTools::RemoveFile(dependee.c_str()); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3 +::WriteLocalAllRules(std::ostream& ruleFileStream) +{ + this->WriteDisclaimer(ruleFileStream); + + // Write the main entry point target. This must be the VERY first + // target so that make with no arguments will run it. + { + // Just depend on the all target to drive the build. + std::vector depends; + std::vector no_commands; + depends.push_back("all"); + + // Write the rule. + this->WriteMakeRule(ruleFileStream, + "Default target executed when no arguments are " + "given to make.", + "default_target", + depends, + no_commands, true); + } + + this->WriteSpecialTargetsTop(ruleFileStream); + + // Include the progress variables for the target. + // Write all global targets + this->WriteDivider(ruleFileStream); + ruleFileStream + << "# Targets provided globally by CMake.\n" + << "\n"; + cmTargets* targets = &(this->Makefile->GetTargets()); + cmTargets::iterator glIt; + for ( glIt = targets->begin(); glIt != targets->end(); ++ glIt ) + { + if ( glIt->second.GetType() == cmTarget::GLOBAL_TARGET ) + { + std::string targetString = "Special rule for the target " + glIt->first; + std::vector commands; + std::vector depends; + + const char* text = glIt->second.GetProperty("EchoString"); + if ( !text ) + { + text = "Running external command ..."; + } + std::set::const_iterator dit; + for ( dit = glIt->second.GetUtilities().begin(); + dit != glIt->second.GetUtilities().end(); + ++ dit ) + { + depends.push_back(dit->c_str()); + } + this->AppendEcho(commands, text, + cmLocalUnixMakefileGenerator3::EchoGlobal); + + // Global targets store their rules in pre- and post-build commands. + this->AppendCustomDepends(depends, + glIt->second.GetPreBuildCommands()); + this->AppendCustomDepends(depends, + glIt->second.GetPostBuildCommands()); + this->AppendCustomCommands(commands, + glIt->second.GetPreBuildCommands()); + this->AppendCustomCommands(commands, + glIt->second.GetPostBuildCommands()); + std::string targetName = glIt->second.GetName(); + this->WriteMakeRule(ruleFileStream, targetString.c_str(), + targetName.c_str(), depends, commands, true); + + // Provide a "/fast" version of the target. + depends.clear(); + if((targetName == "install") + || (targetName == "install_local") + || (targetName == "install_strip")) + { + // Provide a fast install target that does not depend on all + // but has the same command. + depends.push_back("preinstall/fast"); + } + else + { + // Just forward to the real target so at least it will work. + depends.push_back(targetName); + commands.clear(); + } + targetName += "/fast"; + this->WriteMakeRule(ruleFileStream, targetString.c_str(), + targetName.c_str(), depends, commands, true); + } + } + + std::vector depends; + std::vector commands; + + // Write the all rule. + std::string dir; + std::string recursiveTarget = this->Makefile->GetStartOutputDirectory(); + recursiveTarget += "/all"; + + depends.push_back("cmake_check_build_system"); + + std::string progressDir = this->Makefile->GetHomeOutputDirectory(); + progressDir += cmake::GetCMakeFilesDirectory(); + { + cmOStringStream progCmd; + progCmd << + "$(CMAKE_COMMAND) -E cmake_progress_start "; + progCmd << this->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + + std::string progressFile = cmake::GetCMakeFilesDirectory(); + progressFile += "/progress.make"; + std::string progressFileNameFull = + this->ConvertToFullPath(progressFile.c_str()); + progCmd << " " << this->Convert(progressFileNameFull.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + commands.push_back(progCmd.str()); + } + std::string mf2Dir = cmake::GetCMakeFilesDirectoryPostSlash(); + mf2Dir += "Makefile2"; + commands.push_back(this->GetRecursiveMakeCall(mf2Dir.c_str(), + recursiveTarget.c_str())); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + { + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0 + progCmd << this->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + progCmd << " 0"; + commands.push_back(progCmd.str()); + } + this->WriteMakeRule(ruleFileStream, "The main all target", "all", + depends, commands, true); + + // Write the clean rule. + recursiveTarget = this->Makefile->GetStartOutputDirectory(); + recursiveTarget += "/clean"; + commands.clear(); + depends.clear(); + commands.push_back(this->GetRecursiveMakeCall(mf2Dir.c_str(), + recursiveTarget.c_str())); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + this->WriteMakeRule(ruleFileStream, "The main clean target", "clean", + depends, commands, true); + commands.clear(); + depends.clear(); + depends.push_back("clean"); + this->WriteMakeRule(ruleFileStream, "The main clean target", "clean/fast", + depends, commands, true); + + // Write the preinstall rule. + recursiveTarget = this->Makefile->GetStartOutputDirectory(); + recursiveTarget += "/preinstall"; + commands.clear(); + depends.clear(); + const char* noall = + this->Makefile->GetDefinition("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"); + if(!noall || cmSystemTools::IsOff(noall)) + { + // Drive the build before installing. + depends.push_back("all"); + } + else + { + // At least make sure the build system is up to date. + depends.push_back("cmake_check_build_system"); + } + commands.push_back + (this->GetRecursiveMakeCall(mf2Dir.c_str(), recursiveTarget.c_str())); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + this->WriteMakeRule(ruleFileStream, "Prepare targets for installation.", + "preinstall", depends, commands, true); + depends.clear(); + this->WriteMakeRule(ruleFileStream, "Prepare targets for installation.", + "preinstall/fast", depends, commands, true); + + // write the depend rule, really a recompute depends rule + depends.clear(); + commands.clear(); + std::string cmakefileName = cmake::GetCMakeFilesDirectoryPostSlash(); + cmakefileName += "Makefile.cmake"; + std::string runRule = + "$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)"; + runRule += " --check-build-system "; + runRule += this->Convert(cmakefileName.c_str(),cmLocalGenerator::NONE, + cmLocalGenerator::SHELL); + runRule += " 1"; + commands.push_back(runRule); + this->CreateCDCommand(commands, + this->Makefile->GetHomeOutputDirectory(), + this->Makefile->GetStartOutputDirectory()); + this->WriteMakeRule(ruleFileStream, "clear depends", + "depend", + depends, commands, true); +} + + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::ClearDependencies(cmMakefile* mf, + bool verbose) +{ + // Get the list of target files to check + const char* infoDef = mf->GetDefinition("CMAKE_DEPEND_INFO_FILES"); + if(!infoDef) + { + return; + } + std::vector files; + cmSystemTools::ExpandListArgument(infoDef, files); + + // Each depend information file corresponds to a target. Clear the + // dependencies for that target. + cmDepends clearer; + clearer.SetVerbose(verbose); + for(std::vector::iterator l = files.begin(); + l != files.end(); ++l) + { + std::string dir = cmSystemTools::GetFilenamePath(l->c_str()); + + // Clear the implicit dependency makefile. + std::string dependFile = dir + "/depend.make"; + clearer.Clear(dependFile.c_str()); + + // Remove the internal dependency check file to force + // regeneration. + std::string internalDependFile = dir + "/depend.internal"; + cmSystemTools::RemoveFile(internalDependFile.c_str()); + } +} + + +void cmLocalUnixMakefileGenerator3 +::WriteDependLanguageInfo(std::ostream& cmakefileStream, cmTarget &target) +{ + ImplicitDependLanguageMap const& implicitLangs = + this->GetImplicitDepends(target); + + // list the languages + cmakefileStream + << "# The set of languages for which implicit dependencies are needed:\n"; + cmakefileStream + << "SET(CMAKE_DEPENDS_LANGUAGES\n"; + for(ImplicitDependLanguageMap::const_iterator + l = implicitLangs.begin(); l != implicitLangs.end(); ++l) + { + cmakefileStream << " \"" << l->first.c_str() << "\"\n"; + } + cmakefileStream << " )\n"; + + // now list the files for each language + cmakefileStream + << "# The set of files for implicit dependencies of each language:\n"; + for(ImplicitDependLanguageMap::const_iterator + l = implicitLangs.begin(); l != implicitLangs.end(); ++l) + { + cmakefileStream + << "SET(CMAKE_DEPENDS_CHECK_" << l->first.c_str() << "\n"; + ImplicitDependFileMap const& implicitPairs = l->second; + + // for each file pair + for(ImplicitDependFileMap::const_iterator pi = implicitPairs.begin(); + pi != implicitPairs.end(); ++pi) + { + cmakefileStream << " \"" << pi->second << "\" "; + cmakefileStream << "\"" << pi->first << "\"\n"; + } + cmakefileStream << " )\n"; + + // Tell the dependency scanner what compiler is used. + std::string cidVar = "CMAKE_"; + cidVar += l->first; + cidVar += "_COMPILER_ID"; + const char* cid = this->Makefile->GetDefinition(cidVar.c_str()); + if(cid && *cid) + { + cmakefileStream + << "SET(CMAKE_" << l->first.c_str() << "_COMPILER_ID \"" + << cid << "\")\n"; + } + } + + // Build a list of preprocessor definitions for the target. + std::vector defines; + { + std::string defPropName = "COMPILE_DEFINITIONS_"; + defPropName += cmSystemTools::UpperCase(this->ConfigurationName); + if(const char* ddefs = this->Makefile->GetProperty("COMPILE_DEFINITIONS")) + { + cmSystemTools::ExpandListArgument(ddefs, defines); + } + if(const char* cdefs = target.GetProperty("COMPILE_DEFINITIONS")) + { + cmSystemTools::ExpandListArgument(cdefs, defines); + } + if(const char* dcdefs = this->Makefile->GetProperty(defPropName.c_str())) + { + cmSystemTools::ExpandListArgument(dcdefs, defines); + } + if(const char* ccdefs = target.GetProperty(defPropName.c_str())) + { + cmSystemTools::ExpandListArgument(ccdefs, defines); + } + } + if(!defines.empty()) + { + cmakefileStream + << "\n" + << "# Preprocessor definitions for this target.\n" + << "SET(CMAKE_TARGET_DEFINITIONS\n"; + for(std::vector::const_iterator di = defines.begin(); + di != defines.end(); ++di) + { + cmakefileStream + << " " << this->EscapeForCMake(di->c_str()) << "\n"; + } + cmakefileStream + << " )\n"; + } +} + +//---------------------------------------------------------------------------- +std::string +cmLocalUnixMakefileGenerator3 +::GetObjectFileName(cmTarget& target, + const cmSourceFile& source, + std::string* nameWithoutTargetDir, + bool* hasSourceExtension) +{ + if(const char* fileTargetDirectory = + source.GetProperty("MACOSX_PACKAGE_LOCATION")) + { + // Special handling for OSX package files. + std::string objectName = + this->GetObjectFileNameWithoutTarget(source, 0, + hasSourceExtension); + if(nameWithoutTargetDir) + { + *nameWithoutTargetDir = objectName; + } + objectName = cmSystemTools::GetFilenameName(objectName.c_str()); + std::string targetName; + std::string targetNameReal; + std::string targetNameImport; + std::string targetNamePDB; + target.GetExecutableNames(targetName, targetNameReal, targetNameImport, + targetNamePDB, this->ConfigurationName.c_str()); + std::string obj; + + // Construct the full path version of the names. + // + // If target is a MACOSX_BUNDLE target, then the package location is + // relative to "${targetDir}/${targetName}.app/Contents"... else it is + // relative to "${targetDir}"... + // + obj = target.GetDirectory(); + obj += "/"; + if ( target.GetPropertyAsBool("MACOSX_BUNDLE") ) + { + obj += targetName + ".app/Contents/"; + } + else + { + // Emit warning here...? MACOSX_PACKAGE_LOCATION is "most useful" in a + // MACOSX_BUNDLE... + } + obj += fileTargetDirectory; + + // Object names are specified relative to the current build dir. + obj = this->Convert(obj.c_str(), START_OUTPUT); + obj += "/"; + obj += objectName; + return obj; + } + else + { + // Start with the target directory. + std::string obj = this->GetTargetDirectory(target); + obj += "/"; + + // Get the object file name without the target directory. + std::string::size_type dir_len = 0; + dir_len += strlen(this->Makefile->GetCurrentOutputDirectory()); + dir_len += 1; + dir_len += obj.size(); + std::string objectName = + this->GetObjectFileNameWithoutTarget(source, dir_len, + hasSourceExtension); + if(nameWithoutTargetDir) + { + *nameWithoutTargetDir = objectName; + } + + // Append the object name to the target directory. + obj += objectName; + return obj; + } +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::WriteDisclaimer(std::ostream& os) +{ + os + << "# CMAKE generated file: DO NOT EDIT!\n" + << "# Generated by \"" << this->GlobalGenerator->GetName() << "\"" + << " Generator, CMake Version " + << cmVersion::GetMajorVersion() << "." + << cmVersion::GetMinorVersion() << "\n\n"; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalUnixMakefileGenerator3 +::GetRecursiveMakeCall(const char *makefile, const char* tgt) +{ + // Call make on the given file. + std::string cmd; + cmd += "$(MAKE) -f "; + cmd += this->Convert(makefile,NONE,SHELL); + cmd += " "; + + // Passg down verbosity level. + if(this->GetMakeSilentFlag().size()) + { + cmd += this->GetMakeSilentFlag(); + cmd += " "; + } + + // Most unix makes will pass the command line flags to make down to + // sub-invoked makes via an environment variable. However, some + // makes do not support that, so you have to pass the flags + // explicitly. + if(this->GetPassMakeflags()) + { + cmd += "-$(MAKEFLAGS) "; + } + + // Add the target. + if (tgt && tgt[0] != '\0') + { + // The make target is always relative to the top of the build tree. + std::string tgt2 = this->Convert(tgt, HOME_OUTPUT); + + // The target may have been written with windows paths. + cmSystemTools::ConvertToOutputSlashes(tgt2); + + // Escape one extra time if the make tool requires it. + if(this->MakeCommandEscapeTargetTwice) + { + tgt2 = this->EscapeForShell(tgt2.c_str(), true, false); + } + + // The target name is now a string that should be passed verbatim + // on the command line. + cmd += this->EscapeForShell(tgt2.c_str(), true, false); + } + return cmd; +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3::WriteDivider(std::ostream& os) +{ + os + << "#======================================" + << "=======================================\n"; +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3 +::WriteCMakeArgument(std::ostream& os, const char* s) +{ + // Write the given string to the stream with escaping to get it back + // into CMake through the lexical scanner. + os << "\""; + for(const char* c = s; *c; ++c) + { + if(*c == '\\') + { + os << "\\\\"; + } + else if(*c == '"') + { + os << "\\\""; + } + else + { + os << *c; + } + } + os << "\""; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalUnixMakefileGenerator3::ConvertToQuotedOutputPath(const char* p) +{ + + // Split the path into its components. + std::vector components; + cmSystemTools::SplitPath(p, components); + + // Return an empty path if there are no components. + if(components.empty()) + { + return "\"\""; + } + + // Choose a slash direction and fix root component. + const char* slash = "/"; +#if defined(_WIN32) && !defined(__CYGWIN__) + if(!cmSystemTools::GetForceUnixPaths()) + { + slash = "\\"; + for(std::string::iterator i = components[0].begin(); + i != components[0].end(); ++i) + { + if(*i == '/') + { + *i = '\\'; + } + } + } +#endif + + // Begin the quoted result with the root component. + std::string result = "\""; + result += components[0]; + + // Now add the rest of the components separated by the proper slash + // direction for this platform. + bool first = true; + for(unsigned int i=1; i < components.size(); ++i) + { + // Only the last component can be empty to avoid double slashes. + if(components[i].length() > 0 || (i == (components.size()-1))) + { + if(!first) + { + result += slash; + } + result += components[i]; + first = false; + } + } + + // Close the quoted result. + result += "\""; + + return result; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalUnixMakefileGenerator3 +::GetTargetDirectory(cmTarget const& target) const +{ + std::string dir = cmake::GetCMakeFilesDirectoryPostSlash(); + dir += target.GetName(); + dir += ".dir"; + return dir; +} + +//---------------------------------------------------------------------------- +cmLocalUnixMakefileGenerator3::ImplicitDependLanguageMap const& +cmLocalUnixMakefileGenerator3::GetImplicitDepends(cmTarget const& tgt) +{ + return this->ImplicitDepends[tgt.GetName()]; +} + +//---------------------------------------------------------------------------- +void +cmLocalUnixMakefileGenerator3::AddImplicitDepends(cmTarget const& tgt, + const char* lang, + const char* obj, + const char* src) +{ + this->ImplicitDepends[tgt.GetName()][lang][obj] = src; +} + +//---------------------------------------------------------------------------- +void cmLocalUnixMakefileGenerator3 +::CreateCDCommand(std::vector& commands, const char *tgtDir, + const char *retDir) +{ + // do we need to cd? + if (!strcmp(tgtDir,retDir)) + { + return; + } + + if(!this->UnixCD) + { + // On Windows we must perform each step separately and then change + // back because the shell keeps the working directory between + // commands. + std::string cmd = "cd "; + cmd += this->ConvertToOutputForExisting(tgtDir); + commands.insert(commands.begin(),cmd); + + // Change back to the starting directory. Any trailing slash must be + // removed to avoid problems with Borland Make. + std::string back = retDir; + if(back.size() && back[back.size()-1] == '/') + { + back = back.substr(0, back.size()-1); + } + cmd = "cd "; + cmd += this->ConvertToOutputForExisting(back.c_str()); + commands.push_back(cmd); + } + else + { + // On UNIX we must construct a single shell command to change + // directory and build because make resets the directory between + // each command. + std::vector::iterator i = commands.begin(); + for (; i != commands.end(); ++i) + { + std::string cmd = "cd "; + cmd += this->ConvertToOutputForExisting(tgtDir); + cmd += " && "; + cmd += *i; + *i = cmd; + } + } +} + + +void cmLocalUnixMakefileGenerator3 +::GetTargetObjectFileDirectories(cmTarget* target, + std::vector& dirs) +{ + std::string dir = this->Makefile->GetCurrentOutputDirectory(); + dir += "/"; + dir += this->GetTargetDirectory(*target); + dirs.push_back(dir); +} diff --git a/CMakeLua/Source/cmLocalUnixMakefileGenerator3.h b/CMakeLua/Source/cmLocalUnixMakefileGenerator3.h new file mode 100644 index 0000000..6c716d7 --- /dev/null +++ b/CMakeLua/Source/cmLocalUnixMakefileGenerator3.h @@ -0,0 +1,384 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalUnixMakefileGenerator3.h,v $ + Language: C++ + Date: $Date: 2008/01/13 21:36:20 $ + Version: $Revision: 1.82 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLocalUnixMakefileGenerator3_h +#define cmLocalUnixMakefileGenerator3_h + +#include "cmLocalGenerator.h" + +class cmCustomCommand; +class cmDependInformation; +class cmDepends; +class cmMakefileTargetGenerator; +class cmTarget; +class cmSourceFile; + +/** \class cmLocalUnixMakefileGenerator3 + * \brief Write a LocalUnix makefiles. + * + * cmLocalUnixMakefileGenerator3 produces a LocalUnix makefile from its + * member Makefile. + */ +class cmLocalUnixMakefileGenerator3 : public cmLocalGenerator +{ +public: + cmLocalUnixMakefileGenerator3(); + virtual ~cmLocalUnixMakefileGenerator3(); + + /** + * Process the CMakeLists files for this directory to fill in the + * Makefile ivar + */ + virtual void Configure(); + + /** + * Generate the makefile for this directory. + */ + virtual void Generate(); + + + // this returns the relative path between the HomeOutputDirectory and this + // local generators StartOutputDirectory + const std::string &GetHomeRelativeOutputPath(); + + // Write out a make rule + void WriteMakeRule(std::ostream& os, + const char* comment, + const char* target, + const std::vector& depends, + const std::vector& commands, + bool symbolic, + bool in_help = false); + + // write the main variables used by the makefiles + void WriteMakeVariables(std::ostream& makefileStream); + + // write the progress variables used by the makefiles + void WriteProgressVariables(unsigned long total, unsigned long ¤t); + void WriteAllProgressVariable(); + + /** + * If true, then explicitly pass MAKEFLAGS on the make all target for makes + * that do not use environment variables. + * + */ + void SetPassMakeflags(bool s){this->PassMakeflags = s;} + bool GetPassMakeflags() { return this->PassMakeflags; } + + /** + * Set the flag used to keep the make program silent. + */ + void SetMakeSilentFlag(const char* s) { this->MakeSilentFlag = s; } + std::string &GetMakeSilentFlag() { return this->MakeSilentFlag; } + + /** + * Set to true if the shell being used is the windows shell. + * This controls if statements in the makefile and the SHELL variable. + * The default is false. + */ + void SetWindowsShell(bool v) {this->WindowsShell = v;} + + /** + * Set to true if the make tool being used is Watcom WMake. + */ + void SetWatcomWMake(bool v) {this->WatcomWMake = v;} + + /** + * Set to true if the make tool being used is MinGW Make. + */ + void SetMinGWMake(bool v) {this->MinGWMake = v;} + + /** + * Set to true if the make tool being used is NMake. + */ + void SetNMake(bool v) {this->NMake = v;} + + /** + * Set to true if the shell being used is the MSYS shell. + * This controls if statements in the makefile and the SHELL variable. + * The default is false. + */ + void SetMSYSShell(bool v) {this->MSYSShell = v;} + + /** + * If set to true, then NULL is set to nil for non Windows_NT. + * This uses make syntax used by nmake and borland. + * The default is false. + */ + void SetDefineWindowsNULL(bool v) {this->DefineWindowsNULL = v;} + + /** + * If set to true, cd dir && command is used to + * run commands in a different directory. + */ + void SetUnixCD(bool v) {this->UnixCD = v;} + + /** + * Set Support Verbose Variable. If true, then .SILENT will + * be not end with : i.e. .SILENT: or .SILENT + */ + void SetSilentNoColon(bool v) {this->SilentNoColon = v;} + + /** + * Set the command to use for native make shell echo. The value + * should include all parts of the command up to the beginning of + * the message (including a whitespace separator). + */ + void SetNativeEchoCommand(const char* cmd, bool isWindows) + { this->NativeEchoCommand = cmd; this->NativeEchoWindows = isWindows; } + + /** + * Set the string used to include one makefile into another default + * is include. + */ + void SetIncludeDirective(const char* s) { this->IncludeDirective = s; } + const char *GetIncludeDirective() { return this->IncludeDirective.c_str(); } + + /** + * Set max makefile variable size, default is 0 which means unlimited. + */ + void SetMakefileVariableSize(int s) { this->MakefileVariableSize = s; } + + /** + * If ignore lib prefix is true, then do not strip lib from the name + * of a library. + */ + void SetIgnoreLibPrefix(bool s) { this->IgnoreLibPrefix = s; } + + /** + * Set whether passing a make target on a command line requires an + * extra level of escapes. + */ + void SetMakeCommandEscapeTargetTwice(bool b) + { this->MakeCommandEscapeTargetTwice = b; } + + /** + * Set whether the Borland curly brace command line hack should be + * applied. + */ + void SetBorlandMakeCurlyHack(bool b) + { this->BorlandMakeCurlyHack = b; } + + // used in writing out Cmake files such as WriteDirectoryInformation + static void WriteCMakeArgument(std::ostream& os, const char* s); + + /** creates the common disclainer text at the top of each makefile */ + void WriteDisclaimer(std::ostream& os); + + // write a comment line #====... in the stream + void WriteDivider(std::ostream& os); + + /** used to create a recursive make call */ + std::string GetRecursiveMakeCall(const char *makefile, const char* tgt); + + // append flags to a string + virtual void AppendFlags(std::string& flags, const char* newFlags); + + // append an echo command + enum EchoColor { EchoNormal, EchoDepend, EchoBuild, EchoLink, + EchoGenerate, EchoGlobal }; + void AppendEcho(std::vector& commands, const char* text, + EchoColor color = EchoNormal); + + virtual std::string GetTargetDirectory(cmTarget const& target) const; + + // create a command that cds to the start dir then runs the commands + void CreateCDCommand(std::vector& commands, + const char *targetDir, const char *returnDir); + + static std::string ConvertToQuotedOutputPath(const char* p); + + std::string CreateMakeVariable(const char* sin, const char* s2in); + + /** Called from command-line hook to bring dependencies up to date + for a target. */ + virtual bool UpdateDependencies(const char* tgtInfo, + bool verbose, bool color); + + /** Called from command-line hook to clear dependencies. */ + virtual void ClearDependencies(cmMakefile* mf, bool verbose); + + /** write some extra rules such as make test etc */ + void WriteSpecialTargetsTop(std::ostream& makefileStream); + void WriteSpecialTargetsBottom(std::ostream& makefileStream); + + std::string GetRelativeTargetDirectory(cmTarget const& target); + + // File pairs for implicit dependency scanning. The key of the map + // is the depender and the value is the explicit dependee. + struct ImplicitDependFileMap: public std::map {}; + struct ImplicitDependLanguageMap: + public std::map {}; + struct ImplicitDependTargetMap: + public std::map {}; + ImplicitDependLanguageMap const& GetImplicitDepends(cmTarget const& tgt); + + void AddImplicitDepends(cmTarget const& tgt, const char* lang, + const char* obj, const char* src); + + void AppendGlobalTargetDepends(std::vector& depends, + cmTarget& target); + + // write the target rules for the local Makefile into the stream + void WriteLocalAllRules(std::ostream& ruleFileStream); + + struct LocalObjectEntry + { + cmTarget* Target; + std::string Language; + LocalObjectEntry(): Target(0), Language() {} + LocalObjectEntry(cmTarget* t, const char* lang): + Target(t), Language(lang) {} + }; + struct LocalObjectInfo: public std::vector + { + bool HasSourceExtension; + }; + std::map const& GetLocalObjectFiles() + { return this->LocalObjectFiles;} + + std::vector const& GetLocalHelp() { return this->LocalHelp; } + + // return info about progress actions + unsigned long GetNumberOfProgressActions(); + unsigned long GetNumberOfProgressActionsForTarget(const char *); + + /** Get whether to create rules to generate preprocessed and + assembly sources. This could be converted to a variable lookup + later. */ + bool GetCreatePreprocessedSourceRules() + { + return !this->SkipPreprocessedSourceRules; + } + bool GetCreateAssemblySourceRules() + { + return !this->SkipAssemblySourceRules; + } + // Get the directories into which the .o files will go for this target + void GetTargetObjectFileDirectories(cmTarget* target, + std::vector& dirs); +protected: + void WriteLocalMakefile(); + + + // write the target rules for the local Makefile into the stream + void WriteLocalMakefileTargets(std::ostream& ruleFileStream, + std::set &emitted); + + // this method Writes the Directory informaiton files + void WriteDirectoryInformationFile(); + + + // write the depend info + void WriteDependLanguageInfo(std::ostream& cmakefileStream, cmTarget &tgt); + + // write the local help rule + void WriteHelpRule(std::ostream& ruleFileStream); + + // this converts a file name that is relative to the StartOuputDirectory + // into a full path + std::string ConvertToFullPath(const std::string& localPath); + + + void WriteConvenienceRule(std::ostream& ruleFileStream, + const char* realTarget, + const char* helpTarget); + + void WriteTargetDependRule(std::ostream& ruleFileStream, + cmTarget& target); + void WriteTargetCleanRule(std::ostream& ruleFileStream, + cmTarget& target, + const std::vector& files); + void WriteTargetRequiresRule(std::ostream& ruleFileStream, + cmTarget& target, + const std::vector& objects); + void WriteObjectConvenienceRule(std::ostream& ruleFileStream, + const char* comment, const char* output, + LocalObjectInfo const& info); + + std::string GetObjectFileName(cmTarget& target, + const cmSourceFile& source, + std::string* nameWithoutTargetDir = 0, + bool* hasSourceExtension = 0); + + void AppendRuleDepend(std::vector& depends, + const char* ruleFileName); + void AppendCustomDepends(std::vector& depends, + const std::vector& ccs); + void AppendCustomDepend(std::vector& depends, + const cmCustomCommand& cc); + void AppendCustomCommands(std::vector& commands, + const std::vector& ccs); + void AppendCustomCommand(std::vector& commands, + const cmCustomCommand& cc, + bool echo_comment=false); + void AppendCleanCommand(std::vector& commands, + const std::vector& files, + cmTarget& target, const char* filename =0); + + std::map > ProgressFiles; + + // Helper methods for dependeny updates. + bool ScanDependencies(const char* targetDir); + void CheckMultipleOutputs(bool verbose); + +private: + friend class cmMakefileTargetGenerator; + friend class cmMakefileExecutableTargetGenerator; + friend class cmMakefileLibraryTargetGenerator; + friend class cmMakefileUtilityTargetGenerator; + friend class cmGlobalUnixMakefileGenerator3; + + ImplicitDependTargetMap ImplicitDepends; + + //========================================================================== + // Configuration settings. + int MakefileVariableSize; + std::string IncludeDirective; + std::string MakeSilentFlag; + std::string ConfigurationName; + std::string NativeEchoCommand; + bool NativeEchoWindows; + bool DefineWindowsNULL; + bool UnixCD; + bool PassMakeflags; + bool SilentNoColon; + bool MakeCommandEscapeTargetTwice; + bool BorlandMakeCurlyHack; + //========================================================================== + + std::string HomeRelativeOutputPath; + + /* Copy the setting of CMAKE_COLOR_MAKEFILE from the makefile at the + beginning of generation to avoid many duplicate lookups. */ + bool ColorMakefile; + + /* Copy the setting of CMAKE_SKIP_PREPROCESSED_SOURCE_RULES and + CMAKE_SKIP_ASSEMBLY_SOURCE_RULES at the beginning of generation to + avoid many duplicate lookups. */ + bool SkipPreprocessedSourceRules; + bool SkipAssemblySourceRules; + + std::map LocalObjectFiles; + std::vector LocalHelp; + + /* does the work for each target */ + std::vector TargetGenerators; + std::map MakeVariableMap; + std::map ShortMakeVariableMap; +}; + +#endif diff --git a/CMakeLua/Source/cmLocalVisualStudio6Generator.cxx b/CMakeLua/Source/cmLocalVisualStudio6Generator.cxx new file mode 100644 index 0000000..75eb8e2 --- /dev/null +++ b/CMakeLua/Source/cmLocalVisualStudio6Generator.cxx @@ -0,0 +1,1683 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalVisualStudio6Generator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/29 22:30:34 $ + Version: $Revision: 1.141 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalGenerator.h" +#include "cmLocalVisualStudio6Generator.h" +#include "cmMakefile.h" +#include "cmSystemTools.h" +#include "cmSourceFile.h" +#include "cmCacheManager.h" +#include "cmake.h" + +#include "cmComputeLinkInformation.h" + +#include + +cmLocalVisualStudio6Generator::cmLocalVisualStudio6Generator() +{ +} + +cmLocalVisualStudio6Generator::~cmLocalVisualStudio6Generator() +{ +} + +void cmLocalVisualStudio6Generator::AddHelperCommands() +{ + std::set lang; + lang.insert("C"); + lang.insert("CXX"); + this->CreateCustomTargetsAndCommands(lang); +} + +void cmLocalVisualStudio6Generator::Generate() +{ + this->OutputDSPFile(); +} + +void cmLocalVisualStudio6Generator::OutputDSPFile() +{ + // If not an in source build, then create the output directory + if(strcmp(this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeDirectory()) != 0) + { + if(!cmSystemTools::MakeDirectory + (this->Makefile->GetStartOutputDirectory())) + { + cmSystemTools::Error("Error creating directory ", + this->Makefile->GetStartOutputDirectory()); + } + } + + // Setup /I and /LIBPATH options for the resulting DSP file. VS 6 + // truncates long include paths so make it as short as possible if + // the length threatents this problem. + unsigned int maxIncludeLength = 3000; + bool useShortPath = false; + for(int j=0; j < 2; ++j) + { + std::vector includes; + this->GetIncludeDirectories(includes); + std::vector::iterator i; + for(i = includes.begin(); i != includes.end(); ++i) + { + std::string tmp = + this->ConvertToOptionallyRelativeOutputPath(i->c_str()); + if(useShortPath) + { + cmSystemTools::GetShortPath(tmp.c_str(), tmp); + } + this->IncludeOptions += " /I "; + + // quote if not already quoted + if (tmp[0] != '"') + { + this->IncludeOptions += "\""; + this->IncludeOptions += tmp; + this->IncludeOptions += "\""; + } + else + { + this->IncludeOptions += tmp; + } + } + if(j == 0 && this->IncludeOptions.size() > maxIncludeLength) + { + this->IncludeOptions = ""; + useShortPath = true; + } + else + { + break; + } + } + + // Create the DSP or set of DSP's for libraries and executables + + // clear project names + this->CreatedProjectNames.clear(); + cmTargets &tgts = this->Makefile->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); + l != tgts.end(); l++) + { + // Add a rule to regenerate the build system when the target + // specification source changes. + const char* suppRegenRule = + this->Makefile->GetDefinition("CMAKE_SUPPRESS_REGENERATION"); + if (!cmSystemTools::IsOn(suppRegenRule)) + { + this->AddDSPBuildRule(l->second); + } + } + + // build any targets + for(cmTargets::iterator l = tgts.begin(); + l != tgts.end(); l++) + { + switch(l->second.GetType()) + { + case cmTarget::STATIC_LIBRARY: + this->SetBuildType(STATIC_LIBRARY, l->first.c_str(), l->second); + break; + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + this->SetBuildType(DLL, l->first.c_str(), l->second); + break; + case cmTarget::EXECUTABLE: + this->SetBuildType(EXECUTABLE,l->first.c_str(), l->second); + break; + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + this->SetBuildType(UTILITY, l->first.c_str(), l->second); + break; + default: + cmSystemTools::Error("Bad target type", l->first.c_str()); + break; + } + // INCLUDE_EXTERNAL_MSPROJECT command only affects the workspace + // so don't build a projectfile for it + if (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) != 0) + { + // check to see if the dsp is going into a sub-directory + std::string::size_type pos = l->first.rfind('/'); + if(pos != std::string::npos) + { + std::string dir = this->Makefile->GetStartOutputDirectory(); + dir += "/"; + dir += l->first.substr(0, pos); + if(!cmSystemTools::MakeDirectory(dir.c_str())) + { + cmSystemTools::Error("Error creating directory ", dir.c_str()); + } + } + this->CreateSingleDSP(l->first.c_str(),l->second); + } + } +} + +void cmLocalVisualStudio6Generator::CreateSingleDSP(const char *lname, + cmTarget &target) +{ + // add to the list of projects + std::string pname = lname; + this->CreatedProjectNames.push_back(pname); + // create the dsp.cmake file + std::string fname; + fname = this->Makefile->GetStartOutputDirectory(); + fname += "/"; + fname += lname; + fname += ".dsp"; + // save the name of the real dsp file + std::string realDSP = fname; + fname += ".cmake"; + std::ofstream fout(fname.c_str()); + if(!fout) + { + cmSystemTools::Error("Error Writing ", fname.c_str()); + cmSystemTools::ReportLastSystemError(""); + } + this->WriteDSPFile(fout,lname,target); + fout.close(); + // if the dsp file has changed, then write it. + cmSystemTools::CopyFileIfDifferent(fname.c_str(), realDSP.c_str()); +} + + +void cmLocalVisualStudio6Generator::AddDSPBuildRule(cmTarget& tgt) +{ + std::string dspname = tgt.GetName(); + dspname += ".dsp.cmake"; + const char* dsprule = + this->Makefile->GetRequiredDefinition("CMAKE_COMMAND"); + cmCustomCommandLine commandLine; + commandLine.push_back(dsprule); + std::string makefileIn = this->Makefile->GetStartDirectory(); + makefileIn += "/"; + makefileIn += "CMakeLists.txt"; + std::string comment = "Building Custom Rule "; + comment += makefileIn; + std::string args; + args = "-H"; + args += this->Convert(this->Makefile->GetHomeDirectory(), + START_OUTPUT, UNCHANGED, true); + commandLine.push_back(args); + args = "-B"; + args += + this->Convert(this->Makefile->GetHomeOutputDirectory(), + START_OUTPUT, UNCHANGED, true); + commandLine.push_back(args); + + std::vector const& listFiles = this->Makefile->GetListFiles(); + + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + const char* no_working_directory = 0; + this->Makefile->AddCustomCommandToOutput(dspname.c_str(), listFiles, + makefileIn.c_str(), commandLines, + comment.c_str(), + no_working_directory, true); + if(cmSourceFile* file = this->Makefile->GetSource(makefileIn.c_str())) + { + tgt.AddSourceFile(file); + } + else + { + cmSystemTools::Error("Error adding rule for ", makefileIn.c_str()); + } +} + + +void cmLocalVisualStudio6Generator::WriteDSPFile(std::ostream& fout, + const char *libName, + cmTarget &target) +{ + // For utility targets need custom command since pre- and post- + // build does not do anything in Visual Studio 6. In order for the + // rules to run in the correct order as custom commands, we need + // special care for dependencies. The first rule must depend on all + // the dependencies of all the rules. The later rules must each + // depend only on the previous rule. + if ((target.GetType() == cmTarget::UTILITY || + target.GetType() == cmTarget::GLOBAL_TARGET) && + (!target.GetPreBuildCommands().empty() || + !target.GetPostBuildCommands().empty())) + { + // Accumulate the dependencies of all the commands. + std::vector depends; + for (std::vector::const_iterator cr = + target.GetPreBuildCommands().begin(); + cr != target.GetPreBuildCommands().end(); ++cr) + { + depends.insert(depends.end(), + cr->GetDepends().begin(), cr->GetDepends().end()); + } + for (std::vector::const_iterator cr = + target.GetPostBuildCommands().begin(); + cr != target.GetPostBuildCommands().end(); ++cr) + { + depends.insert(depends.end(), + cr->GetDepends().begin(), cr->GetDepends().end()); + } + + // Add the pre- and post-build commands in order. + int count = 1; + for (std::vector::const_iterator cr = + target.GetPreBuildCommands().begin(); + cr != target.GetPreBuildCommands().end(); ++cr) + { + this->AddUtilityCommandHack(target, count++, depends, *cr); + } + for (std::vector::const_iterator cr = + target.GetPostBuildCommands().begin(); + cr != target.GetPostBuildCommands().end(); ++cr) + { + this->AddUtilityCommandHack(target, count++, depends, *cr); + } + } + + // trace the visual studio dependencies + std::string name = libName; + name += ".dsp.cmake"; + + // We may be modifying the source groups temporarily, so make a copy. + std::vector sourceGroups = this->Makefile->GetSourceGroups(); + + // get the classes from the source lists then add them to the groups + std::vector const & classes = target.GetSourceFiles(); + + // now all of the source files have been properly assigned to the target + // now stick them into source groups using the reg expressions + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); i++) + { + // Add the file to the list of sources. + std::string source = (*i)->GetFullPath(); + cmSourceGroup& sourceGroup = + this->Makefile->FindSourceGroup(source.c_str(), sourceGroups); + sourceGroup.AssignSource(*i); + // while we are at it, if it is a .rule file then for visual studio 6 we + // must generate it + if ((*i)->GetExtension() == "rule") + { + if(!cmSystemTools::FileExists(source.c_str())) + { + cmSystemTools::ReplaceString(source, "$(IntDir)/", ""); +#if defined(_WIN32) || defined(__CYGWIN__) + std::ofstream fout(source.c_str(), + std::ios::binary | std::ios::out + | std::ios::trunc); +#else + std::ofstream fout(source.c_str(), + std::ios::out | std::ios::trunc); +#endif + if(fout) + { + fout.write("# generated from CMake",22); + fout.flush(); + fout.close(); + } + } + } + } + + // Compute which sources need unique object computation. + this->ComputeObjectNameRequirements(sourceGroups); + + // Write the DSP file's header. + this->WriteDSPHeader(fout, libName, target, sourceGroups); + + + // Loop through every source group. + for(std::vector::const_iterator sg = sourceGroups.begin(); + sg != sourceGroups.end(); ++sg) + { + this->WriteGroup(&(*sg), target, fout, libName); + } + + // Write the DSP file's footer. + this->WriteDSPFooter(fout); +} + +void cmLocalVisualStudio6Generator +::WriteGroup(const cmSourceGroup *sg, cmTarget& target, + std::ostream &fout, const char *libName) +{ + const std::vector &sourceFiles = + sg->GetSourceFiles(); + // If the group is empty, don't write it at all. + + if(sourceFiles.empty()) + { + return; + } + + // If the group has a name, write the header. + std::string name = sg->GetName(); + if(name != "") + { + this->WriteDSPBeginGroup(fout, name.c_str(), ""); + } + + // Compute the maximum length of a configuration name. + std::string::size_type config_len_max = 0; + for(std::vector::iterator i = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + // Strip the subdirectory name out of the configuration name. + std::string config = this->GetConfigName(*i); + if(config.size() > config_len_max) + { + config_len_max = config.size(); + } + } + + // Compute the maximum length of the full path to the intermediate + // files directory for any configuration. This is used to construct + // object file names that do not produce paths that are too long. + std::string::size_type dir_len = 0; + dir_len += strlen(this->Makefile->GetCurrentOutputDirectory()); + dir_len += 1; + dir_len += config_len_max; + dir_len += 1; + + // Loop through each source in the source group. + for(std::vector::const_iterator sf = + sourceFiles.begin(); sf != sourceFiles.end(); ++sf) + { + std::string source = (*sf)->GetFullPath(); + const cmCustomCommand *command = + (*sf)->GetCustomCommand(); + std::string compileFlags; + std::vector depends; + std::string objectNameDir; + if(this->NeedObjectName.find(*sf) != this->NeedObjectName.end()) + { + objectNameDir = + cmSystemTools::GetFilenamePath( + this->GetObjectFileNameWithoutTarget(*(*sf), dir_len)); + } + + // Add per-source file flags. + if(const char* cflags = (*sf)->GetProperty("COMPILE_FLAGS")) + { + compileFlags += cflags; + } + + const char* lang = this->GetSourceFileLanguage(*(*sf)); + if(lang) + { + if(strcmp(lang, "CXX") == 0) + { + // force a C++ file type + compileFlags += " /TP "; + } + else if(strcmp(lang, "C") == 0) + { + // force to c file type + compileFlags += " /TC "; + } + } + + // Add per-source and per-configuration preprocessor definitions. + std::map cdmap; + this->AppendDefines(compileFlags, + (*sf)->GetProperty("COMPILE_DEFINITIONS"), lang); + if(const char* cdefs = (*sf)->GetProperty("COMPILE_DEFINITIONS_DEBUG")) + { + this->AppendDefines(cdmap["DEBUG"], cdefs, lang); + } + if(const char* cdefs = (*sf)->GetProperty("COMPILE_DEFINITIONS_RELEASE")) + { + this->AppendDefines(cdmap["RELEASE"], cdefs, lang); + } + if(const char* cdefs = + (*sf)->GetProperty("COMPILE_DEFINITIONS_MINSIZEREL")) + { + this->AppendDefines(cdmap["MINSIZEREL"], cdefs, lang); + } + if(const char* cdefs = + (*sf)->GetProperty("COMPILE_DEFINITIONS_RELWITHDEBINFO")) + { + this->AppendDefines(cdmap["RELWITHDEBINFO"], cdefs, lang); + } + + bool excludedFromBuild = + (lang && (*sf)->GetPropertyAsBool("HEADER_FILE_ONLY")); + + // Check for extra object-file dependencies. + const char* dependsValue = (*sf)->GetProperty("OBJECT_DEPENDS"); + if(dependsValue) + { + cmSystemTools::ExpandListArgument(dependsValue, depends); + } + if (source != libName || target.GetType() == cmTarget::UTILITY || + target.GetType() == cmTarget::GLOBAL_TARGET) + { + fout << "# Begin Source File\n\n"; + + // Tell MS-Dev what the source is. If the compiler knows how to + // build it, then it will. + fout << "SOURCE=" << + this->ConvertToOptionallyRelativeOutputPath(source.c_str()) << "\n\n"; + if(!depends.empty()) + { + // Write out the dependencies for the rule. + fout << "USERDEP__HACK="; + for(std::vector::const_iterator d = depends.begin(); + d != depends.end(); ++d) + { + fout << "\\\n\t" << + this->ConvertToOptionallyRelativeOutputPath(d->c_str()); + } + fout << "\n"; + } + if (command) + { + const char* flags = compileFlags.size() ? compileFlags.c_str(): 0; + this->WriteCustomRule(fout, source.c_str(), *command, flags); + } + else if(!compileFlags.empty() || !objectNameDir.empty() || + excludedFromBuild || !cdmap.empty()) + { + for(std::vector::iterator i + = this->Configurations.begin(); + i != this->Configurations.end(); ++i) + { + // Strip the subdirectory name out of the configuration name. + std::string config = this->GetConfigName(*i); + if (i == this->Configurations.begin()) + { + fout << "!IF \"$(CFG)\" == " << i->c_str() << std::endl; + } + else + { + fout << "!ELSEIF \"$(CFG)\" == " << i->c_str() << std::endl; + } + if(excludedFromBuild) + { + fout << "# PROP Exclude_From_Build 1\n"; + } + if(!compileFlags.empty()) + { + fout << "\n# ADD CPP " << compileFlags << "\n\n"; + } + std::map::iterator cdi = + cdmap.find(cmSystemTools::UpperCase(config)); + if(cdi != cdmap.end() && !cdi->second.empty()) + { + fout << "\n# ADD CPP " << cdi->second << "\n\n"; + } + if(!objectNameDir.empty()) + { + // Setup an alternate object file directory. + fout << "\n# PROP Intermediate_Dir \"" + << config << "/" << objectNameDir << "\"\n\n"; + } + } + fout << "!ENDIF\n\n"; + } + fout << "# End Source File\n"; + } + } + + std::vector children = sg->GetGroupChildren(); + + for(unsigned int i=0;iWriteGroup(&children[i], target, fout, libName); + } + + + + + // If the group has a name, write the footer. + if(name != "") + { + this->WriteDSPEndGroup(fout); + } + +} + + +void +cmLocalVisualStudio6Generator +::AddUtilityCommandHack(cmTarget& target, int count, + std::vector& depends, + const cmCustomCommand& origCommand) +{ + // Create a fake output that forces the rule to run. + char* output = new char[(strlen(this->Makefile->GetStartOutputDirectory()) + + strlen(target.GetName()) + 30)]; + sprintf(output,"%s/%s_force_%i", this->Makefile->GetStartOutputDirectory(), + target.GetName(), count); + std::string comment = this->ConstructComment(origCommand, ""); + + // Add the rule with the given dependencies and commands. + const char* no_main_dependency = 0; + this->Makefile->AddCustomCommandToOutput(output, + depends, + no_main_dependency, + origCommand.GetCommandLines(), + comment.c_str(), + origCommand.GetWorkingDirectory()); + + // Replace the dependencies with the output of this rule so that the + // next rule added will run after this one. + depends.clear(); + depends.push_back(output); + + // Add a source file representing this output to the project. + cmSourceFile* outsf = this->Makefile->GetSourceFileWithOutput(output); + target.AddSourceFile(outsf); + + // Free the fake output name. + delete [] output; +} + +void +cmLocalVisualStudio6Generator +::WriteCustomRule(std::ostream& fout, + const char* source, + const cmCustomCommand& command, + const char* flags) +{ + std::string comment = + this->ConstructComment(command, "Building Custom Rule $(InputPath)"); + if(comment == "") + { + comment = ""; + } + + // Write the rule for each configuration. + std::vector::iterator i; + for(i = this->Configurations.begin(); i != this->Configurations.end(); ++i) + { + std::string config = this->GetConfigName(*i); + std::string script = + this->ConstructScript(command.GetCommandLines(), + command.GetWorkingDirectory(), + config.c_str(), + command.GetEscapeOldStyle(), + command.GetEscapeAllowMakeVars(), + "\\\n\t"); + + if (i == this->Configurations.begin()) + { + fout << "!IF \"$(CFG)\" == " << i->c_str() << std::endl; + } + else + { + fout << "!ELSEIF \"$(CFG)\" == " << i->c_str() << std::endl; + } + if(flags) + { + fout << "\n# ADD CPP " << flags << "\n\n"; + } + // Write out the dependencies for the rule. + fout << "USERDEP__HACK="; + for(std::vector::const_iterator d = + command.GetDepends().begin(); + d != command.GetDepends().end(); + ++d) + { + // Lookup the real name of the dependency in case it is a CMake target. + std::string dep = this->GetRealDependency(d->c_str(), + config.c_str()); + fout << "\\\n\t" << + this->ConvertToOptionallyRelativeOutputPath(dep.c_str()); + } + fout << "\n"; + + fout << "# PROP Ignore_Default_Tool 1\n"; + fout << "# Begin Custom Build -"; + if(!comment.empty()) + { + fout << " " << comment.c_str(); + } + fout << "\n\n"; + if(command.GetOutputs().empty()) + { + fout << source + << "_force : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"\n\t"; + fout << script.c_str() << "\n\n"; + } + else + { + for(std::vector::const_iterator o = + command.GetOutputs().begin(); + o != command.GetOutputs().end(); + ++o) + { + // Write a rule for every output generated by this command. + fout << this->ConvertToOptionallyRelativeOutputPath(o->c_str()) + << " : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"\n\t"; + fout << script.c_str() << "\n\n"; + } + } + fout << "# End Custom Build\n\n"; + } + + fout << "!ENDIF\n\n"; +} + + +void cmLocalVisualStudio6Generator::WriteDSPBeginGroup(std::ostream& fout, + const char* group, + const char* filter) +{ + fout << "# Begin Group \"" << group << "\"\n" + "# PROP Default_Filter \"" << filter << "\"\n"; +} + + +void cmLocalVisualStudio6Generator::WriteDSPEndGroup(std::ostream& fout) +{ + fout << "# End Group\n"; +} + + + + +void cmLocalVisualStudio6Generator::SetBuildType(BuildType b, + const char* libName, + cmTarget& target) +{ + std::string root= this->Makefile->GetRequiredDefinition("CMAKE_ROOT"); + const char *def= + this->Makefile->GetDefinition( "MSPROJECT_TEMPLATE_DIRECTORY"); + + if( def) + { + root = def; + } + else + { + root += "/Templates"; + } + + switch(b) + { + case STATIC_LIBRARY: + this->DSPHeaderTemplate = root; + this->DSPHeaderTemplate += "/staticLibHeader.dsptemplate"; + this->DSPFooterTemplate = root; + this->DSPFooterTemplate += "/staticLibFooter.dsptemplate"; + break; + case DLL: + this->DSPHeaderTemplate = root; + this->DSPHeaderTemplate += "/DLLHeader.dsptemplate"; + this->DSPFooterTemplate = root; + this->DSPFooterTemplate += "/DLLFooter.dsptemplate"; + break; + case EXECUTABLE: + if ( target.GetPropertyAsBool("WIN32_EXECUTABLE") ) + { + this->DSPHeaderTemplate = root; + this->DSPHeaderTemplate += "/EXEWinHeader.dsptemplate"; + this->DSPFooterTemplate = root; + this->DSPFooterTemplate += "/EXEFooter.dsptemplate"; + } + else + { + this->DSPHeaderTemplate = root; + this->DSPHeaderTemplate += "/EXEHeader.dsptemplate"; + this->DSPFooterTemplate = root; + this->DSPFooterTemplate += "/EXEFooter.dsptemplate"; + } + break; + case UTILITY: + this->DSPHeaderTemplate = root; + this->DSPHeaderTemplate += "/UtilityHeader.dsptemplate"; + this->DSPFooterTemplate = root; + this->DSPFooterTemplate += "/UtilityFooter.dsptemplate"; + break; + } + + // once the build type is set, determine what configurations are + // possible + std::ifstream fin(this->DSPHeaderTemplate.c_str()); + + cmsys::RegularExpression reg("# Name "); + if(!fin) + { + cmSystemTools::Error("Error Reading ", this->DSPHeaderTemplate.c_str()); + } + + // reset this->Configurations + this->Configurations.erase(this->Configurations.begin(), + this->Configurations.end()); + // now add all the configurations possible + std::string line; + while(cmSystemTools::GetLineFromStream(fin, line)) + { + cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME",libName); + if (reg.find(line)) + { + this->Configurations.push_back(line.substr(reg.end())); + } + } +} + +// look for custom rules on a target and collect them together +std::string +cmLocalVisualStudio6Generator::CreateTargetRules(cmTarget &target, + const char* configName, + const char * /* libName */) +{ + std::string customRuleCode = ""; + + if (target.GetType() >= cmTarget::UTILITY ) + { + return customRuleCode; + } + + // are there any rules? + if (target.GetPreBuildCommands().size() + + target.GetPreLinkCommands().size() + + target.GetPostBuildCommands().size() == 0) + { + return customRuleCode; + } + + customRuleCode = "# Begin Special Build Tool\n"; + + // Write the pre-build and pre-link together (VS6 does not support + // both). Make sure no continuation character is put on the last + // line. + int prelink_total = (static_cast(target.GetPreBuildCommands().size())+ + static_cast(target.GetPreLinkCommands().size())); + int prelink_count = 0; + if(prelink_total > 0) + { + // header stuff + customRuleCode += "PreLink_Cmds="; + } + for (std::vector::const_iterator cr = + target.GetPreBuildCommands().begin(); + cr != target.GetPreBuildCommands().end(); ++cr) + { + if(prelink_count++ > 0) + { + customRuleCode += "\\\n\t"; + } + customRuleCode += this->ConstructScript(cr->GetCommandLines(), + cr->GetWorkingDirectory(), + configName, + cr->GetEscapeOldStyle(), + cr->GetEscapeAllowMakeVars(), + "\\\n\t"); + } + for (std::vector::const_iterator cr = + target.GetPreLinkCommands().begin(); + cr != target.GetPreLinkCommands().end(); ++cr) + { + if(prelink_count++ > 0) + { + customRuleCode += "\\\n\t"; + } + customRuleCode += this->ConstructScript(cr->GetCommandLines(), + cr->GetWorkingDirectory(), + configName, + cr->GetEscapeOldStyle(), + cr->GetEscapeAllowMakeVars(), + "\\\n\t"); + } + if(prelink_total > 0) + { + customRuleCode += "\n"; + } + + // Write the post-build rules. Make sure no continuation character + // is put on the last line. + int postbuild_total = + static_cast(target.GetPostBuildCommands().size()); + int postbuild_count = 0; + if(postbuild_total > 0) + { + customRuleCode += "PostBuild_Cmds="; + } + for (std::vector::const_iterator cr = + target.GetPostBuildCommands().begin(); + cr != target.GetPostBuildCommands().end(); ++cr) + { + if(postbuild_count++ > 0) + { + customRuleCode += "\\\n\t"; + } + customRuleCode += this->ConstructScript(cr->GetCommandLines(), + cr->GetWorkingDirectory(), + configName, + cr->GetEscapeOldStyle(), + cr->GetEscapeAllowMakeVars(), + "\\\n\t"); + } + if(postbuild_total > 0) + { + customRuleCode += "\n"; + } + + customRuleCode += "# End Special Build Tool\n"; + return customRuleCode; +} + + +inline std::string removeQuotes(const std::string& s) +{ + if(s[0] == '\"' && s[s.size()-1] == '\"') + { + return s.substr(1, s.size()-2); + } + return s; +} + +// Code in blocks surrounded by a test for this definition is needed +// only for compatibility with user project's replacement DSP +// templates. The CMake templates no longer use them. +#define CM_USE_OLD_VS6 + +void cmLocalVisualStudio6Generator +::WriteDSPHeader(std::ostream& fout, + const char *libName, cmTarget &target, + std::vector &) +{ + // Lookup the output directory for the target. + std::string outPath = target.GetDirectory(); + +#ifdef CM_USE_OLD_VS6 + // Lookup the library and executable output directories. + std::string libPath; + if(this->Makefile->GetDefinition("LIBRARY_OUTPUT_PATH")) + { + libPath = this->Makefile->GetDefinition("LIBRARY_OUTPUT_PATH"); + } + std::string exePath; + if(this->Makefile->GetDefinition("EXECUTABLE_OUTPUT_PATH")) + { + exePath = this->Makefile->GetDefinition("EXECUTABLE_OUTPUT_PATH"); + } + + // Make sure there are trailing slashes. + if(!libPath.empty()) + { + if(libPath[libPath.size()-1] != '/') + { + libPath += "/"; + } + } + if(!exePath.empty()) + { + if(exePath[exePath.size()-1] != '/') + { + exePath += "/"; + } + } + + std::set pathEmitted; + + // determine the link directories + std::string libOptions; + std::string libDebugOptions; + std::string libOptimizedOptions; + + std::string libMultiLineOptions; + std::string libMultiLineOptionsForDebug; + std::string libMultiLineDebugOptions; + std::string libMultiLineOptimizedOptions; + + if(libPath.size()) + { + std::string lpath = + this->ConvertToOptionallyRelativeOutputPath(libPath.c_str()); + if(lpath.size() == 0) + { + lpath = "."; + } + std::string lpathIntDir = libPath + "$(INTDIR)"; + lpathIntDir = + this->ConvertToOptionallyRelativeOutputPath(lpathIntDir.c_str()); + if(pathEmitted.insert(lpath).second) + { + libOptions += " /LIBPATH:"; + libOptions += lpathIntDir; + libOptions += " "; + libOptions += " /LIBPATH:"; + libOptions += lpath; + libOptions += " "; + libMultiLineOptions += "# ADD LINK32 /LIBPATH:"; + libMultiLineOptions += lpathIntDir; + libMultiLineOptions += " "; + libMultiLineOptions += " /LIBPATH:"; + libMultiLineOptions += lpath; + libMultiLineOptions += " \n"; + libMultiLineOptionsForDebug += "# ADD LINK32 /LIBPATH:"; + libMultiLineOptionsForDebug += lpathIntDir; + libMultiLineOptionsForDebug += " "; + libMultiLineOptionsForDebug += " /LIBPATH:"; + libMultiLineOptionsForDebug += lpath; + libMultiLineOptionsForDebug += " \n"; + } + } + if(exePath.size()) + { + std::string lpath = + this->ConvertToOptionallyRelativeOutputPath(exePath.c_str()); + if(lpath.size() == 0) + { + lpath = "."; + } + std::string lpathIntDir = exePath + "$(INTDIR)"; + lpathIntDir = + this->ConvertToOptionallyRelativeOutputPath(lpathIntDir.c_str()); + + if(pathEmitted.insert(lpath).second) + { + libOptions += " /LIBPATH:"; + libOptions += lpathIntDir; + libOptions += " "; + libOptions += " /LIBPATH:"; + libOptions += lpath; + libOptions += " "; + libMultiLineOptions += "# ADD LINK32 /LIBPATH:"; + libMultiLineOptions += lpathIntDir; + libMultiLineOptions += " "; + libMultiLineOptions += " /LIBPATH:"; + libMultiLineOptions += lpath; + libMultiLineOptions += " \n"; + libMultiLineOptionsForDebug += "# ADD LINK32 /LIBPATH:"; + libMultiLineOptionsForDebug += lpathIntDir; + libMultiLineOptionsForDebug += " "; + libMultiLineOptionsForDebug += " /LIBPATH:"; + libMultiLineOptionsForDebug += lpath; + libMultiLineOptionsForDebug += " \n"; + } + } + std::vector::const_iterator i; + const std::vector& libdirs = target.GetLinkDirectories(); + for(i = libdirs.begin(); i != libdirs.end(); ++i) + { + std::string path = *i; + if(path[path.size()-1] != '/') + { + path += "/"; + } + std::string lpath = + this->ConvertToOptionallyRelativeOutputPath(path.c_str()); + if(lpath.size() == 0) + { + lpath = "."; + } + std::string lpathIntDir = path + "$(INTDIR)"; + lpathIntDir = + this->ConvertToOptionallyRelativeOutputPath(lpathIntDir.c_str()); + if(pathEmitted.insert(lpath).second) + { + libOptions += " /LIBPATH:"; + libOptions += lpathIntDir; + libOptions += " "; + libOptions += " /LIBPATH:"; + libOptions += lpath; + libOptions += " "; + + libMultiLineOptions += "# ADD LINK32 /LIBPATH:"; + libMultiLineOptions += lpathIntDir; + libMultiLineOptions += " "; + libMultiLineOptions += " /LIBPATH:"; + libMultiLineOptions += lpath; + libMultiLineOptions += " \n"; + libMultiLineOptionsForDebug += "# ADD LINK32 /LIBPATH:"; + libMultiLineOptionsForDebug += lpathIntDir; + libMultiLineOptionsForDebug += " "; + libMultiLineOptionsForDebug += " /LIBPATH:"; + libMultiLineOptionsForDebug += lpath; + libMultiLineOptionsForDebug += " \n"; + } + } + // find link libraries + const cmTarget::LinkLibraryVectorType& libs = target.GetLinkLibraries(); + cmTarget::LinkLibraryVectorType::const_iterator j; + for(j = libs.begin(); j != libs.end(); ++j) + { + // add libraries to executables and dlls (but never include + // a library in a library, bad recursion) + // NEVER LINK STATIC LIBRARIES TO OTHER STATIC LIBRARIES + if ((target.GetType() != cmTarget::SHARED_LIBRARY + && target.GetType() != cmTarget::STATIC_LIBRARY + && target.GetType() != cmTarget::MODULE_LIBRARY) || + (target.GetType()==cmTarget::SHARED_LIBRARY && libName != j->first) || + (target.GetType()==cmTarget::MODULE_LIBRARY && libName != j->first)) + { + // Compute the proper name to use to link this library. + std::string lib; + std::string libDebug; + cmTarget* tgt = this->GlobalGenerator->FindTarget(0, j->first.c_str()); + if(tgt) + { + lib = cmSystemTools::GetFilenameWithoutExtension + (tgt->GetFullName().c_str()); + libDebug = cmSystemTools::GetFilenameWithoutExtension + (tgt->GetFullName("Debug").c_str()); + lib += ".lib"; + libDebug += ".lib"; + } + else + { + lib = j->first.c_str(); + libDebug = j->first.c_str(); + if(j->first.find(".lib") == std::string::npos) + { + lib += ".lib"; + libDebug += ".lib"; + } + } + lib = this->ConvertToOptionallyRelativeOutputPath(lib.c_str()); + libDebug = + this->ConvertToOptionallyRelativeOutputPath(libDebug.c_str()); + + if (j->second == cmTarget::GENERAL) + { + libOptions += " "; + libOptions += lib; + libMultiLineOptions += "# ADD LINK32 "; + libMultiLineOptions += lib; + libMultiLineOptions += "\n"; + libMultiLineOptionsForDebug += "# ADD LINK32 "; + libMultiLineOptionsForDebug += libDebug; + libMultiLineOptionsForDebug += "\n"; + } + if (j->second == cmTarget::DEBUG) + { + libDebugOptions += " "; + libDebugOptions += lib; + + libMultiLineDebugOptions += "# ADD LINK32 "; + libMultiLineDebugOptions += libDebug; + libMultiLineDebugOptions += "\n"; + } + if (j->second == cmTarget::OPTIMIZED) + { + libOptimizedOptions += " "; + libOptimizedOptions += lib; + + libMultiLineOptimizedOptions += "# ADD LINK32 "; + libMultiLineOptimizedOptions += lib; + libMultiLineOptimizedOptions += "\n"; + } + } + } +#endif + + // Get extra linker options for this target type. + std::string extraLinkOptions; + if(target.GetType() == cmTarget::EXECUTABLE) + { + extraLinkOptions = + this->Makefile->GetRequiredDefinition("CMAKE_EXE_LINKER_FLAGS"); + } + if(target.GetType() == cmTarget::SHARED_LIBRARY) + { + extraLinkOptions = + this->Makefile->GetRequiredDefinition("CMAKE_SHARED_LINKER_FLAGS"); + } + if(target.GetType() == cmTarget::MODULE_LIBRARY) + { + extraLinkOptions = + this->Makefile->GetRequiredDefinition("CMAKE_MODULE_LINKER_FLAGS"); + } + + // Get extra linker options for this target. + if(const char* targetLinkFlags = target.GetProperty("LINK_FLAGS")) + { + extraLinkOptions += " "; + extraLinkOptions += targetLinkFlags; + } + + // Get standard libraries for this language. + if(target.GetType() >= cmTarget::EXECUTABLE && + target.GetType() <= cmTarget::MODULE_LIBRARY) + { + // Get the language to use for linking. + const char* linkLanguage = + target.GetLinkerLanguage(this->GetGlobalGenerator()); + if(!linkLanguage) + { + cmSystemTools::Error + ("CMake can not determine linker language for target:", + target.GetName()); + return; + } + + // Compute the variable name to lookup standard libraries for this + // language. + std::string standardLibsVar = "CMAKE_"; + standardLibsVar += linkLanguage; + standardLibsVar += "_STANDARD_LIBRARIES"; + + // Add standard libraries. + if(const char* stdLibs = + this->Makefile->GetDefinition(standardLibsVar.c_str())) + { + extraLinkOptions += " "; + extraLinkOptions += stdLibs; + } + } + + // Compute version number information. + std::string targetVersionFlag; + if(target.GetType() == cmTarget::EXECUTABLE || + target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY) + { + int major; + int minor; + target.GetTargetVersion(major, minor); + cmOStringStream targetVersionStream; + targetVersionStream << "/version:" << major << "." << minor; + targetVersionFlag = targetVersionStream.str(); + } + + // Compute the real name of the target. + std::string outputName = + "(OUTPUT_NAME is for libraries and executables only)"; + std::string outputNameDebug = outputName; + std::string outputNameRelease = outputName; + std::string outputNameMinSizeRel = outputName; + std::string outputNameRelWithDebInfo = outputName; + if(target.GetType() == cmTarget::EXECUTABLE || + target.GetType() == cmTarget::STATIC_LIBRARY || + target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY) + { + outputName = target.GetFullName(); + outputNameDebug = target.GetFullName("Debug"); + outputNameRelease = target.GetFullName("Release"); + outputNameMinSizeRel = target.GetFullName("MinSizeRel"); + outputNameRelWithDebInfo = target.GetFullName("RelWithDebInfo"); + } + + // Compute the proper link information for the target. + std::string optionsDebug; + std::string optionsRelease; + std::string optionsMinSizeRel; + std::string optionsRelWithDebInfo; + if(target.GetType() == cmTarget::EXECUTABLE || + target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY) + { + this->ComputeLinkOptions(target, "Debug", extraLinkOptions, + optionsDebug); + this->ComputeLinkOptions(target, "Release", extraLinkOptions, + optionsRelease); + this->ComputeLinkOptions(target, "MinSizeRel", extraLinkOptions, + optionsMinSizeRel); + this->ComputeLinkOptions(target, "RelWithDebInfo", extraLinkOptions, + optionsRelWithDebInfo); + } + + // Compute the path of the import library. + std::string targetImplibFlagDebug; + std::string targetImplibFlagRelease; + std::string targetImplibFlagMinSizeRel; + std::string targetImplibFlagRelWithDebInfo; + if(target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY || + target.GetType() == cmTarget::EXECUTABLE) + { + std::string fullPathImpDebug = target.GetDirectory("Debug", true); + std::string fullPathImpRelease = target.GetDirectory("Release", true); + std::string fullPathImpMinSizeRel = + target.GetDirectory("MinSizeRel", true); + std::string fullPathImpRelWithDebInfo = + target.GetDirectory("RelWithDebInfo", true); + fullPathImpDebug += "/"; + fullPathImpRelease += "/"; + fullPathImpMinSizeRel += "/"; + fullPathImpRelWithDebInfo += "/"; + fullPathImpDebug += target.GetFullName("Debug", true); + fullPathImpRelease += target.GetFullName("Release", true); + fullPathImpMinSizeRel += target.GetFullName("MinSizeRel", true); + fullPathImpRelWithDebInfo += target.GetFullName("RelWithDebInfo", true); + + targetImplibFlagDebug = "/implib:"; + targetImplibFlagRelease = "/implib:"; + targetImplibFlagMinSizeRel = "/implib:"; + targetImplibFlagRelWithDebInfo = "/implib:"; + targetImplibFlagDebug += + this->ConvertToOptionallyRelativeOutputPath(fullPathImpDebug.c_str()); + targetImplibFlagRelease += + this->ConvertToOptionallyRelativeOutputPath(fullPathImpRelease.c_str()); + targetImplibFlagMinSizeRel += + this->ConvertToOptionallyRelativeOutputPath( + fullPathImpMinSizeRel.c_str()); + targetImplibFlagRelWithDebInfo += + this->ConvertToOptionallyRelativeOutputPath( + fullPathImpRelWithDebInfo.c_str()); + } + +#ifdef CM_USE_OLD_VS6 + // Compute link information for the target. + if(extraLinkOptions.size()) + { + libOptions += " "; + libOptions += extraLinkOptions; + libOptions += " "; + libMultiLineOptions += "# ADD LINK32 "; + libMultiLineOptions += extraLinkOptions; + libMultiLineOptions += " \n"; + libMultiLineOptionsForDebug += "# ADD LINK32 "; + libMultiLineOptionsForDebug += extraLinkOptions; + libMultiLineOptionsForDebug += " \n"; + } +#endif + + // are there any custom rules on the target itself + // only if the target is a lib or exe + std::string customRuleCodeRelease + = this->CreateTargetRules(target, "RELEASE", libName); + std::string customRuleCodeDebug + = this->CreateTargetRules(target, "DEBUG", libName); + std::string customRuleCodeMinSizeRel + = this->CreateTargetRules(target, "MINSIZEREL", libName); + std::string customRuleCodeRelWithDebInfo + = this->CreateTargetRules(target, "RELWITHDEBINFO", libName); + + std::ifstream fin(this->DSPHeaderTemplate.c_str()); + if(!fin) + { + cmSystemTools::Error("Error Reading ", this->DSPHeaderTemplate.c_str()); + } + std::string staticLibOptions; + if(target.GetType() == cmTarget::STATIC_LIBRARY ) + { + if(const char* libflags = target.GetProperty("STATIC_LIBRARY_FLAGS")) + { + staticLibOptions = libflags; + } + } + + // Add the export symbol definition for shared library objects. + std::string exportSymbol; + if(const char* exportMacro = target.GetExportMacro()) + { + exportSymbol = exportMacro; + } + + std::string line; + while(cmSystemTools::GetLineFromStream(fin, line)) + { + const char* mfcFlag = this->Makefile->GetDefinition("CMAKE_MFC_FLAG"); + if(!mfcFlag) + { + mfcFlag = "0"; + } + cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME_EXPORTS", + exportSymbol.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_MFC_FLAG", + mfcFlag); + if(target.GetType() == cmTarget::STATIC_LIBRARY ) + { + cmSystemTools::ReplaceString(line, "CM_STATIC_LIB_ARGS", + staticLibOptions.c_str()); + } + if(this->Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE")) + { + cmSystemTools::ReplaceString(line, "/nologo", ""); + } + +#ifdef CM_USE_OLD_VS6 + cmSystemTools::ReplaceString(line, "CM_LIBRARIES", + libOptions.c_str()); + cmSystemTools::ReplaceString(line, "CM_DEBUG_LIBRARIES", + libDebugOptions.c_str()); + cmSystemTools::ReplaceString(line, "CM_OPTIMIZED_LIBRARIES", + libOptimizedOptions.c_str()); + cmSystemTools::ReplaceString(line, "CM_MULTILINE_LIBRARIES_FOR_DEBUG", + libMultiLineOptionsForDebug.c_str()); + cmSystemTools::ReplaceString(line, "CM_MULTILINE_LIBRARIES", + libMultiLineOptions.c_str()); + cmSystemTools::ReplaceString(line, "CM_MULTILINE_DEBUG_LIBRARIES", + libMultiLineDebugOptions.c_str()); + cmSystemTools::ReplaceString(line, "CM_MULTILINE_OPTIMIZED_LIBRARIES", + libMultiLineOptimizedOptions.c_str()); +#endif + + // Substitute the rules for custom command. When specifying just the + // target name for the command the command can be different for + // different configs + cmSystemTools::ReplaceString(line, "CMAKE_CUSTOM_RULE_CODE_RELEASE", + customRuleCodeRelease.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_CUSTOM_RULE_CODE_DEBUG", + customRuleCodeDebug.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_CUSTOM_RULE_CODE_MINSIZEREL", + customRuleCodeMinSizeRel.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_CUSTOM_RULE_CODE_RELWITHDEBINFO", + customRuleCodeRelWithDebInfo.c_str()); + + // Substitute the real output name into the template. + cmSystemTools::ReplaceString(line, "OUTPUT_NAME_DEBUG", + outputNameDebug.c_str()); + cmSystemTools::ReplaceString(line, "OUTPUT_NAME_RELEASE", + outputNameRelease.c_str()); + cmSystemTools::ReplaceString(line, "OUTPUT_NAME_MINSIZEREL", + outputNameMinSizeRel.c_str()); + cmSystemTools::ReplaceString(line, "OUTPUT_NAME_RELWITHDEBINFO", + outputNameRelWithDebInfo.c_str()); + cmSystemTools::ReplaceString(line, "OUTPUT_NAME", outputName.c_str()); + + // Substitute the proper link information into the template. + cmSystemTools::ReplaceString(line, "CM_MULTILINE_OPTIONS_DEBUG", + optionsDebug.c_str()); + cmSystemTools::ReplaceString(line, "CM_MULTILINE_OPTIONS_RELEASE", + optionsRelease.c_str()); + cmSystemTools::ReplaceString(line, "CM_MULTILINE_OPTIONS_MINSIZEREL", + optionsMinSizeRel.c_str()); + cmSystemTools::ReplaceString(line, "CM_MULTILINE_OPTIONS_RELWITHDEBINFO", + optionsRelWithDebInfo.c_str()); + + cmSystemTools::ReplaceString(line, "BUILD_INCLUDES", + this->IncludeOptions.c_str()); + cmSystemTools::ReplaceString(line, "TARGET_VERSION_FLAG", + targetVersionFlag.c_str()); + cmSystemTools::ReplaceString(line, "TARGET_IMPLIB_FLAG_DEBUG", + targetImplibFlagDebug.c_str()); + cmSystemTools::ReplaceString(line, "TARGET_IMPLIB_FLAG_RELEASE", + targetImplibFlagRelease.c_str()); + cmSystemTools::ReplaceString(line, "TARGET_IMPLIB_FLAG_MINSIZEREL", + targetImplibFlagMinSizeRel.c_str()); + cmSystemTools::ReplaceString(line, "TARGET_IMPLIB_FLAG_RELWITHDEBINFO", + targetImplibFlagRelWithDebInfo.c_str()); + cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME",libName); +#ifdef CM_USE_OLD_VS6 + // because LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH + // are already quoted in the template file, + // we need to remove the quotes here, we still need + // to convert to output path for unix to win32 conversion + cmSystemTools::ReplaceString + (line, "LIBRARY_OUTPUT_PATH", + removeQuotes(this->ConvertToOptionallyRelativeOutputPath + (libPath.c_str())).c_str()); + cmSystemTools::ReplaceString + (line, "EXECUTABLE_OUTPUT_PATH", + removeQuotes(this->ConvertToOptionallyRelativeOutputPath + (exePath.c_str())).c_str()); +#endif + cmSystemTools::ReplaceString + (line, "OUTPUT_DIRECTORY", + removeQuotes(this->ConvertToOptionallyRelativeOutputPath + (outPath.c_str())).c_str()); + + cmSystemTools::ReplaceString(line, + "EXTRA_DEFINES", + this->Makefile->GetDefineFlags()); + const char* debugPostfix + = this->Makefile->GetDefinition("CMAKE_DEBUG_POSTFIX"); + cmSystemTools::ReplaceString(line, "DEBUG_POSTFIX", + debugPostfix?debugPostfix:""); + // store flags for each configuration + std::string flags = " "; + std::string flagsRelease = " "; + std::string flagsMinSize = " "; + std::string flagsDebug = " "; + std::string flagsDebugRel = " "; + if(target.GetType() >= cmTarget::EXECUTABLE && + target.GetType() <= cmTarget::MODULE_LIBRARY) + { + const char* linkLanguage = + target.GetLinkerLanguage(this->GetGlobalGenerator()); + if(!linkLanguage) + { + cmSystemTools::Error + ("CMake can not determine linker language for target:", + target.GetName()); + return; + } + // if CXX is on and the target contains cxx code then add the cxx flags + std::string baseFlagVar = "CMAKE_"; + baseFlagVar += linkLanguage; + baseFlagVar += "_FLAGS"; + flags = this->Makefile->GetSafeDefinition(baseFlagVar.c_str()); + + std::string flagVar = baseFlagVar + "_RELEASE"; + flagsRelease = this->Makefile->GetSafeDefinition(flagVar.c_str()); + flagsRelease += " -DCMAKE_INTDIR=\\\"Release\\\" "; + if(const char* targetLinkFlags = + target.GetProperty("LINK_FLAGS_RELEASE")) + { + flagsRelease += targetLinkFlags; + flagsRelease += " "; + } + flagVar = baseFlagVar + "_MINSIZEREL"; + flagsMinSize = this->Makefile->GetSafeDefinition(flagVar.c_str()); + flagsMinSize += " -DCMAKE_INTDIR=\\\"MinSizeRel\\\" "; + if(const char* targetLinkFlags = + target.GetProperty("LINK_FLAGS_MINSIZEREL")) + { + flagsMinSize += targetLinkFlags; + flagsMinSize += " "; + } + + flagVar = baseFlagVar + "_DEBUG"; + flagsDebug = this->Makefile->GetSafeDefinition(flagVar.c_str()); + flagsDebug += " -DCMAKE_INTDIR=\\\"Debug\\\" "; + if(const char* targetLinkFlags = target.GetProperty("LINK_FLAGS_DEBUG")) + { + flagsDebug += targetLinkFlags; + flagsDebug += " "; + } + + flagVar = baseFlagVar + "_RELWITHDEBINFO"; + flagsDebugRel = this->Makefile->GetSafeDefinition(flagVar.c_str()); + flagsDebugRel += " -DCMAKE_INTDIR=\\\"RelWithDebInfo\\\" "; + if(const char* targetLinkFlags = + target.GetProperty("LINK_FLAGS_RELWITHDEBINFO")) + { + flagsDebugRel += targetLinkFlags; + flagsDebugRel += " "; + } + + } + + // if unicode is not found, then add -D_MBCS + std::string defs = this->Makefile->GetDefineFlags(); + if(flags.find("D_UNICODE") == flags.npos && + defs.find("D_UNICODE") == flags.npos) + { + flags += " /D \"_MBCS\""; + } + + // Add per-target flags. + if(const char* targetFlags = target.GetProperty("COMPILE_FLAGS")) + { + flags += " "; + flags += targetFlags; + } + + // Add per-target and per-configuration preprocessor definitions. + this->AppendDefines + (flags, this->Makefile->GetProperty("COMPILE_DEFINITIONS"), 0); + this->AppendDefines(flags, target.GetProperty("COMPILE_DEFINITIONS"), 0); + this->AppendDefines + (flagsDebug, + this->Makefile->GetProperty("COMPILE_DEFINITIONS_DEBUG"), 0); + this->AppendDefines(flagsDebug, + target.GetProperty("COMPILE_DEFINITIONS_DEBUG"), 0); + this->AppendDefines + (flagsRelease, + this->Makefile->GetProperty("COMPILE_DEFINITIONS_RELEASE"), 0); + this->AppendDefines(flagsRelease, + target.GetProperty("COMPILE_DEFINITIONS_RELEASE"), 0); + this->AppendDefines + (flagsMinSize, + this->Makefile->GetProperty("COMPILE_DEFINITIONS_MINSIZEREL"), 0); + this->AppendDefines + (flagsMinSize, + target.GetProperty("COMPILE_DEFINITIONS_MINSIZEREL"), 0); + this->AppendDefines + (flagsDebugRel, + this->Makefile->GetProperty("COMPILE_DEFINITIONS_RELWITHDEBINFO"), 0); + this->AppendDefines + (flagsDebugRel, + target.GetProperty("COMPILE_DEFINITIONS_RELWITHDEBINFO"), 0); + + // The template files have CXX FLAGS in them, that need to be replaced. + // There are not separate CXX and C template files, so we use the same + // variable names. The previous code sets up flags* variables to contain + // the correct C or CXX flags + cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_MINSIZEREL", + flagsMinSize.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_DEBUG", + flagsDebug.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + flagsDebugRel.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_RELEASE", + flagsRelease.c_str()); + cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS", flags.c_str()); + fout << line.c_str() << std::endl; + } +} + +void cmLocalVisualStudio6Generator::WriteDSPFooter(std::ostream& fout) +{ + std::ifstream fin(this->DSPFooterTemplate.c_str()); + if(!fin) + { + cmSystemTools::Error("Error Reading ", + this->DSPFooterTemplate.c_str()); + } + std::string line; + while(cmSystemTools::GetLineFromStream(fin, line)) + { + fout << line << std::endl; + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio6Generator +::ComputeLinkOptions(cmTarget& target, + const char* configName, + const std::string extraOptions, + std::string& options) +{ + // Compute the link information for this configuration. + cmComputeLinkInformation* pcli = target.GetLinkInformation(configName); + if(!pcli) + { + return; + } + cmComputeLinkInformation& cli = *pcli; + typedef cmComputeLinkInformation::ItemVector ItemVector; + ItemVector const& linkLibs = cli.GetItems(); + std::vector const& linkDirs = cli.GetDirectories(); + + // Build the link options code. + for(std::vector::const_iterator d = linkDirs.begin(); + d != linkDirs.end(); ++d) + { + std::string dir = *d; + if(!dir.empty()) + { + if(dir[dir.size()-1] != '/') + { + dir += "/"; + } + dir += "$(IntDir)"; + options += "# ADD LINK32 /LIBPATH:"; + options += this->ConvertToOptionallyRelativeOutputPath(dir.c_str()); + options += " /LIBPATH:"; + options += this->ConvertToOptionallyRelativeOutputPath(d->c_str()); + options += "\n"; + } + } + for(ItemVector::const_iterator l = linkLibs.begin(); + l != linkLibs.end(); ++l) + { + options += "# ADD LINK32 "; + if(l->IsPath) + { + options += + this->ConvertToOptionallyRelativeOutputPath(l->Value.c_str()); + } + else + { + options += l->Value; + } + options += "\n"; + } + + // Add extra options if any. + if(!extraOptions.empty()) + { + options += "# ADD LINK32 "; + options += extraOptions; + options += "\n"; + } +} + +std::string +cmLocalVisualStudio6Generator +::GetTargetDirectory(cmTarget const&) const +{ + // No per-target directory for this generator (yet). + return ""; +} + +void cmLocalVisualStudio6Generator +::GetTargetObjectFileDirectories(cmTarget* , + std::vector& + dirs) +{ + std::string dir = this->Makefile->GetCurrentOutputDirectory(); + dir += "/"; + dir += this->GetGlobalGenerator()->GetCMakeCFGInitDirectory(); + dirs.push_back(dir); +} + +std::string +cmLocalVisualStudio6Generator +::GetConfigName(std::string const& configuration) const +{ + // Strip the subdirectory name out of the configuration name. + std::string config = configuration; + std::string::size_type pos = config.find_last_of(" "); + config = config.substr(pos+1, std::string::npos); + config = config.substr(0, config.size()-1); + return config; +} + +//---------------------------------------------------------------------------- +bool +cmLocalVisualStudio6Generator +::CheckDefinition(std::string const& define) const +{ + // Perform the standard check first. + if(!this->cmLocalGenerator::CheckDefinition(define)) + { + return false; + } + + // Now do the VS6-specific check. + if(define.find_first_of("=") != define.npos) + { + cmOStringStream e; + e << "WARNING: The VS6 IDE does not support preprocessor definitions " + << "with values.\n" + << "CMake is dropping a preprocessor definition: " << define << "\n" + << "Consider defining the macro in a (configured) header file.\n"; + cmSystemTools::Message(e.str().c_str()); + return false; + } + + // Assume it is supported. + return true; +} diff --git a/CMakeLua/Source/cmLocalVisualStudio6Generator.h b/CMakeLua/Source/cmLocalVisualStudio6Generator.h new file mode 100644 index 0000000..c6e9101 --- /dev/null +++ b/CMakeLua/Source/cmLocalVisualStudio6Generator.h @@ -0,0 +1,112 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalVisualStudio6Generator.h,v $ + Language: C++ + Date: $Date: 2008/01/29 22:30:34 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLocalVisualStudio6Generator_h +#define cmLocalVisualStudio6Generator_h + +#include "cmLocalVisualStudioGenerator.h" + +class cmTarget; +class cmSourceFile; +class cmSourceGroup; +class cmCustomCommand; + +/** \class cmLocalVisualStudio6Generator + * \brief Write a LocalUnix makefiles. + * + * cmLocalVisualStudio6Generator produces a LocalUnix makefile from its + * member this->Makefile. + */ +class cmLocalVisualStudio6Generator : public cmLocalVisualStudioGenerator +{ +public: + ///! Set cache only and recurse to false by default. + cmLocalVisualStudio6Generator(); + + virtual ~cmLocalVisualStudio6Generator(); + + virtual void AddHelperCommands(); + + /** + * Generate the makefile for this directory. + */ + virtual void Generate(); + + void OutputDSPFile(); + + enum BuildType {STATIC_LIBRARY, DLL, EXECUTABLE, WIN32_EXECUTABLE, UTILITY}; + + /** + * Specify the type of the build: static, dll, or executable. + */ + void SetBuildType(BuildType, const char* libName, cmTarget&); + + /** + * Return array of created DSP names in a STL vector. + * Each executable must have its own dsp. + */ + std::vector GetCreatedProjectNames() + { + return this->CreatedProjectNames; + } + virtual std::string GetTargetDirectory(cmTarget const& target) const; + void GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs); +private: + std::string DSPHeaderTemplate; + std::string DSPFooterTemplate; + std::vector CreatedProjectNames; + + void CreateSingleDSP(const char *lname, cmTarget &tgt); + void WriteDSPFile(std::ostream& fout, const char *libName, + cmTarget &tgt); + void WriteDSPBeginGroup(std::ostream& fout, + const char* group, + const char* filter); + void WriteDSPEndGroup(std::ostream& fout); + + void WriteDSPHeader(std::ostream& fout, const char *libName, + cmTarget &tgt, std::vector &sgs); + + void WriteDSPFooter(std::ostream& fout); + void AddDSPBuildRule(cmTarget& tgt); + void WriteCustomRule(std::ostream& fout, + const char* source, + const cmCustomCommand& command, + const char* flags); + void AddUtilityCommandHack(cmTarget& target, int count, + std::vector& depends, + const cmCustomCommand& origCommand); + void WriteGroup(const cmSourceGroup *sg, cmTarget& target, + std::ostream &fout, const char *libName); + std::string CreateTargetRules(cmTarget &target, + const char* configName, + const char *libName); + void ComputeLinkOptions(cmTarget& target, const char* configName, + const std::string extraOptions, + std::string& options); + std::string IncludeOptions; + std::vector Configurations; + + std::string GetConfigName(std::string const& configuration) const; + + // Special definition check for VS6. + virtual bool CheckDefinition(std::string const& define) const; +}; + +#endif + diff --git a/CMakeLua/Source/cmLocalVisualStudio7Generator.cxx b/CMakeLua/Source/cmLocalVisualStudio7Generator.cxx new file mode 100644 index 0000000..96ea89f --- /dev/null +++ b/CMakeLua/Source/cmLocalVisualStudio7Generator.cxx @@ -0,0 +1,2050 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalVisualStudio7Generator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 17:04:38 $ + Version: $Revision: 1.217 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalVisualStudio7Generator.h" +#include "cmLocalVisualStudio7Generator.h" +#include "cmXMLParser.h" +#include +#include "cmMakefile.h" +#include "cmSystemTools.h" +#include "cmSourceFile.h" +#include "cmCacheManager.h" +#include "cmake.h" + +#include "cmComputeLinkInformation.h" +#include "cmGeneratedFileStream.h" + +#include + +#include // for isspace + +class cmLocalVisualStudio7GeneratorInternals +{ +public: + cmLocalVisualStudio7GeneratorInternals(cmLocalVisualStudio7Generator* e): + LocalGenerator(e) {} + typedef cmComputeLinkInformation::ItemVector ItemVector; + void OutputLibraries(std::ostream& fout, ItemVector const& libs); +private: + cmLocalVisualStudio7Generator* LocalGenerator; +}; + +extern cmVS7FlagTable cmLocalVisualStudio7GeneratorFlagTable[]; + +//---------------------------------------------------------------------------- +cmLocalVisualStudio7Generator::cmLocalVisualStudio7Generator() +{ + this->Version = 7; + this->PlatformName = "Win32"; + this->ExtraFlagTable = 0; + this->Internal = new cmLocalVisualStudio7GeneratorInternals(this); +} + +cmLocalVisualStudio7Generator::~cmLocalVisualStudio7Generator() +{ + delete this->Internal; +} + +void cmLocalVisualStudio7Generator::AddHelperCommands() +{ + std::set lang; + lang.insert("C"); + lang.insert("CXX"); + lang.insert("RC"); + lang.insert("IDL"); + lang.insert("DEF"); + this->CreateCustomTargetsAndCommands(lang); + this->FixGlobalTargets(); +} + +void cmLocalVisualStudio7Generator::Generate() +{ + this->WriteProjectFiles(); + this->WriteStampFiles(); +} + +void cmLocalVisualStudio7Generator::FixGlobalTargets() +{ + // Visual Studio .NET 2003 Service Pack 1 will not run post-build + // commands for targets in which no sources are built. Add dummy + // rules to force these targets to build. + cmTargets &tgts = this->Makefile->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); + l != tgts.end(); l++) + { + cmTarget& tgt = l->second; + if(tgt.GetType() == cmTarget::GLOBAL_TARGET) + { + std::vector no_depends; + cmCustomCommandLine force_command; + force_command.push_back("cd"); + force_command.push_back("."); + cmCustomCommandLines force_commands; + force_commands.push_back(force_command); + const char* no_main_dependency = 0; + std::string force = this->Makefile->GetStartOutputDirectory(); + force += cmake::GetCMakeFilesDirectory(); + force += "/"; + force += tgt.GetName(); + force += "_force"; + this->Makefile->AddCustomCommandToOutput(force.c_str(), no_depends, + no_main_dependency, + force_commands, " ", 0, true); + if(cmSourceFile* file = + this->Makefile->GetSourceFileWithOutput(force.c_str())) + { + tgt.AddSourceFile(file); + } + } + } +} + +// TODO +// for CommandLine= need to repleace quotes with " +// write out configurations +void cmLocalVisualStudio7Generator::WriteProjectFiles() +{ + // If not an in source build, then create the output directory + if(strcmp(this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeDirectory()) != 0) + { + if(!cmSystemTools::MakeDirectory + (this->Makefile->GetStartOutputDirectory())) + { + cmSystemTools::Error("Error creating directory ", + this->Makefile->GetStartOutputDirectory()); + } + } + + // Get the set of targets in this directory. + cmTargets &tgts = this->Makefile->GetTargets(); + + // Create the regeneration custom rule. + if(!this->Makefile->IsOn("CMAKE_SUPPRESS_REGENERATION")) + { + // Create a rule to regenerate the build system when the target + // specification source changes. + if(cmSourceFile* sf = this->CreateVCProjBuildRule()) + { + // Add the rule to targets that need it. + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l) + { + if(l->first != CMAKE_CHECK_BUILD_SYSTEM_TARGET) + { + l->second.AddSourceFile(sf); + } + } + } + } + + // Create the project file for each target. + for(cmTargets::iterator l = tgts.begin(); + l != tgts.end(); l++) + { + // INCLUDE_EXTERNAL_MSPROJECT command only affects the workspace + // so don't build a projectfile for it + if (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) != 0) + { + this->CreateSingleVCProj(l->first.c_str(),l->second); + } + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7Generator::WriteStampFiles() +{ + // Touch a timestamp file used to determine when the project file is + // out of date. + std::string stampName = this->Makefile->GetStartOutputDirectory(); + stampName += cmake::GetCMakeFilesDirectory(); + cmSystemTools::MakeDirectory(stampName.c_str()); + stampName += "/"; + stampName += "generate.stamp"; + std::ofstream stamp(stampName.c_str()); + stamp << "# CMake generation timestamp file this directory.\n"; + + // Create a helper file so CMake can determine when it is run + // through the rule created by CreateVCProjBuildRule whether it + // really needs to regenerate the project. This file lists its own + // dependencies. If any file listed in it is newer than itself then + // CMake must rerun. Otherwise the project files are up to date and + // the stamp file can just be touched. + std::string depName = stampName; + depName += ".depend"; + std::ofstream depFile(depName.c_str()); + depFile << "# CMake generation dependency list for this directory.\n"; + std::vector const& listFiles = this->Makefile->GetListFiles(); + for(std::vector::const_iterator lf = listFiles.begin(); + lf != listFiles.end(); ++lf) + { + depFile << *lf << std::endl; + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7Generator +::CreateSingleVCProj(const char *lname, cmTarget &target) +{ + // add to the list of projects + std::string pname = lname; + target.SetProperty("GENERATOR_FILE_NAME",lname); + // create the dsp.cmake file + std::string fname; + fname = this->Makefile->GetStartOutputDirectory(); + fname += "/"; + fname += lname; + fname += ".vcproj"; + + // Generate the project file and replace it atomically with + // copy-if-different. We use a separate timestamp so that the IDE + // does not reload project files unnecessarily. + cmGeneratedFileStream fout(fname.c_str()); + fout.SetCopyIfDifferent(true); + this->WriteVCProjFile(fout,lname,target); + if (fout.Close()) + { + this->GlobalGenerator->FileReplacedDuringGenerate(fname); + } +} + +//---------------------------------------------------------------------------- +cmSourceFile* cmLocalVisualStudio7Generator::CreateVCProjBuildRule() +{ + std::string stampName = cmake::GetCMakeFilesDirectoryPostSlash(); + stampName += "generate.stamp"; + const char* dsprule = + this->Makefile->GetRequiredDefinition("CMAKE_COMMAND"); + cmCustomCommandLine commandLine; + commandLine.push_back(dsprule); + std::string makefileIn = this->Makefile->GetStartDirectory(); + makefileIn += "/"; + makefileIn += "CMakeLists.txt"; + makefileIn = cmSystemTools::CollapseFullPath(makefileIn.c_str()); + std::string comment = "Building Custom Rule "; + comment += makefileIn; + std::string args; + args = "-H"; + args += this->Convert(this->Makefile->GetHomeDirectory(), + START_OUTPUT, UNCHANGED, true); + commandLine.push_back(args); + args = "-B"; + args += + this->Convert(this->Makefile->GetHomeOutputDirectory(), + START_OUTPUT, UNCHANGED, true); + commandLine.push_back(args); + commandLine.push_back("--check-stamp-file"); + commandLine.push_back(stampName.c_str()); + + std::vector const& listFiles = this->Makefile->GetListFiles(); + + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + const char* no_working_directory = 0; + this->Makefile->AddCustomCommandToOutput(stampName.c_str(), listFiles, + makefileIn.c_str(), commandLines, + comment.c_str(), + no_working_directory, true); + if(cmSourceFile* file = this->Makefile->GetSource(makefileIn.c_str())) + { + return file; + } + else + { + cmSystemTools::Error("Error adding rule for ", makefileIn.c_str()); + return 0; + } +} + +void cmLocalVisualStudio7Generator::WriteConfigurations(std::ostream& fout, + const char *libName, + cmTarget &target) +{ + std::vector *configs = + static_cast + (this->GlobalGenerator)->GetConfigurations(); + + fout << "\t\n"; + for( std::vector::iterator i = configs->begin(); + i != configs->end(); ++i) + { + this->WriteConfiguration(fout, i->c_str(), libName, target); + } + fout << "\t\n"; +} + +// fill the table here currently the comment field is not used for +// anything other than documentation NOTE: Make sure the longer +// commandFlag comes FIRST! +cmVS7FlagTable cmLocalVisualStudio7GeneratorFlagTable[] = +{ + // option flags (some flags map to the same option) + {"BasicRuntimeChecks", "GZ", "Stack frame checks", "1", 0}, + {"BasicRuntimeChecks", "RTCsu", + "Both stack and uninitialized checks", "3", 0}, + {"BasicRuntimeChecks", "RTCs", "Stack frame checks", "1", 0}, + {"BasicRuntimeChecks", "RTCu", "Uninitialized Variables ", "2", 0}, + {"BasicRuntimeChecks", "RTC1", + "Both stack and uninitialized checks", "3", 0}, + {"DebugInformationFormat", "Z7", "debug format", "1", 0}, + {"DebugInformationFormat", "Zd", "debug format", "2", 0}, + {"DebugInformationFormat", "Zi", "debug format", "3", 0}, + {"DebugInformationFormat", "ZI", "debug format", "4", 0}, + {"EnableEnhancedInstructionSet", "arch:SSE2", + "Use sse2 instructions", "2", 0}, + {"EnableEnhancedInstructionSet", "arch:SSE", + "Use sse instructions", "1", 0}, + {"FavorSizeOrSpeed", "Ot", "Favor fast code", "1", 0}, + {"FavorSizeOrSpeed", "Os", "Favor small code", "2", 0}, + {"CompileAs", "TC", "Compile as c code", "1", 0}, + {"CompileAs", "TP", "Compile as c++ code", "2", 0}, + {"Optimization", "Od", "Non Debug", "0", 0}, + {"Optimization", "O1", "Min Size", "1", 0}, + {"Optimization", "O2", "Max Speed", "2", 0}, + {"Optimization", "Ox", "Max Optimization", "3", 0}, + {"OptimizeForProcessor", "GB", "Blended processor mode", "0", 0}, + {"OptimizeForProcessor", "G5", "Pentium", "1", 0}, + {"OptimizeForProcessor", "G6", "PPro PII PIII", "2", 0}, + {"OptimizeForProcessor", "G7", "Pentium 4 or Athlon", "3", 0}, + {"InlineFunctionExpansion", "Ob0", "no inlines", "0", 0}, + {"InlineFunctionExpansion", "Ob1", "when inline keyword", "1", 0}, + {"InlineFunctionExpansion", "Ob2", "any time you can inline", "2", 0}, + {"RuntimeLibrary", "MTd", "Multithreded debug", "1", 0}, + {"RuntimeLibrary", "MT", "Multithreded", "0", 0}, + {"RuntimeLibrary", "MDd", "Multithreded dll debug", "3", 0}, + {"RuntimeLibrary", "MD", "Multithreded dll", "2", 0}, + {"RuntimeLibrary", "MLd", "Sinble Thread debug", "5", 0}, + {"RuntimeLibrary", "ML", "Sinble Thread", "4", 0}, + {"StructMemberAlignment", "Zp16", "struct align 16 byte ", "5", 0}, + {"StructMemberAlignment", "Zp1", "struct align 1 byte ", "1", 0}, + {"StructMemberAlignment", "Zp2", "struct align 2 byte ", "2", 0}, + {"StructMemberAlignment", "Zp4", "struct align 4 byte ", "3", 0}, + {"StructMemberAlignment", "Zp8", "struct align 8 byte ", "4", 0}, + {"WarningLevel", "W1", "Warning level", "1", 0}, + {"WarningLevel", "W2", "Warning level", "2", 0}, + {"WarningLevel", "W3", "Warning level", "3", 0}, + {"WarningLevel", "W4", "Warning level", "4", 0}, + + // Precompiled header and related options. Note that the + // UsePrecompiledHeader entries are marked as "Continue" so that the + // corresponding PrecompiledHeaderThrough entry can be found. + {"UsePrecompiledHeader", "Yc", "Create Precompiled Header", "1", + cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue}, + {"PrecompiledHeaderThrough", "Yc", "Precompiled Header Name", "", + cmVS7FlagTable::UserValueRequired}, + {"PrecompiledHeaderFile", "Fp", "Generated Precompiled Header", "", + cmVS7FlagTable::UserValue}, + // The YX and Yu options are in a per-global-generator table because + // their values differ based on the VS IDE version. + {"ForcedIncludeFiles", "FI", "Forced include files", "", + cmVS7FlagTable::UserValueRequired}, + + // boolean flags + {"BufferSecurityCheck", "GS", "Buffer security check", "TRUE", 0}, + {"EnableFibreSafeOptimization", "GT", "OmitFramePointers", "TRUE", 0}, + {"EnableFunctionLevelLinking", "Gy", + "EnableFunctionLevelLinking", "TRUE", 0}, + {"EnableIntrinsicFunctions", "Oi", "EnableIntrinsicFunctions", "TRUE", 0}, + {"GlobalOptimizations", "Og", "Global Optimize", "TRUE", 0}, + {"ImproveFloatingPointConsistency", "Op", + "ImproveFloatingPointConsistency", "TRUE", 0}, + {"MinimalRebuild", "Gm", "minimal rebuild", "TRUE", 0}, + {"OmitFramePointers", "Oy", "OmitFramePointers", "TRUE", 0}, + {"OptimizeForWindowsApplication", "GA", "Optimize for windows", "TRUE", 0}, + {"RuntimeTypeInfo", "GR", + "Turn on Run time type information for c++", "TRUE", 0}, + {"SmallerTypeCheck", "RTCc", "smaller type check", "TRUE", 0}, + {"SuppressStartupBanner", "nologo", "SuppressStartupBanner", "TRUE", 0}, + {"WarnAsError", "WX", "Treat warnings as errors", "TRUE", 0}, + {0,0,0,0,0} +}; + +cmVS7FlagTable cmLocalVisualStudio7GeneratorLinkFlagTable[] = +{ + // option flags (some flags map to the same option) + {"GenerateManifest", "MANIFEST:NO", + "disable manifest generation", "FALSE", 0}, + {"GenerateManifest", "MANIFEST", "enable manifest generation", "TRUE", 0}, + {"LinkIncremental", "INCREMENTAL:NO", "link incremental", "1", 0}, + {"LinkIncremental", "INCREMENTAL:YES", "link incremental", "2", 0}, + {"IgnoreDefaultLibraryNames", "NODEFAULTLIB:", "default libs to ignore", "", + cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable}, + {"IgnoreAllDefaultLibraries", "NODEFAULTLIB", "ignore all default libs", + "TRUE", 0}, + {"ModuleDefinitionFile", "DEF:", "add an export def file", "", + cmVS7FlagTable::UserValue}, + {0,0,0,0,0} +}; + +//---------------------------------------------------------------------------- +class cmLocalVisualStudio7GeneratorOptions +{ +public: + // Construct an options table for a given tool. + enum Tool + { + Compiler, + Linker + }; + cmLocalVisualStudio7GeneratorOptions(cmLocalVisualStudio7Generator* lg, + Tool tool, + cmVS7FlagTable const* extraTable = 0); + + // Store options from command line flags. + void Parse(const char* flags); + + // Fix the ExceptionHandling option to default to off. + void FixExceptionHandlingDefault(); + + // Store options for verbose builds. + void SetVerboseMakefile(bool verbose); + + // Store definitions and flags. + void AddDefine(const std::string& define); + void AddDefines(const char* defines); + void AddFlag(const char* flag, const char* value); + + // Check for specific options. + bool UsingUnicode(); + + bool IsDebug(); + // Write options to output. + void OutputPreprocessorDefinitions(std::ostream& fout, + const char* prefix, + const char* suffix); + void OutputFlagMap(std::ostream& fout, const char* indent); + void OutputAdditionalOptions(std::ostream& fout, + const char* prefix, + const char* suffix); + +private: + cmLocalVisualStudio7Generator* LocalGenerator; + + // create a map of xml tags to the values they should have in the output + // for example, "BufferSecurityCheck" = "TRUE" + // first fill this table with the values for the configuration + // Debug, Release, etc, + // Then parse the command line flags specified in CMAKE_CXX_FLAGS + // and CMAKE_C_FLAGS + // and overwrite or add new values to this map + std::map FlagMap; + + // Preprocessor definitions. + std::vector Defines; + + // Unrecognized flags that get no special handling. + cmStdString FlagString; + + Tool CurrentTool; + bool DoingDefine; + cmVS7FlagTable const* FlagTable; + cmVS7FlagTable const* ExtraFlagTable; + void HandleFlag(const char* flag); + bool CheckFlagTable(cmVS7FlagTable const* table, const char* flag, + bool& flag_handled); +}; + +void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout, + const char* configName, + const char *libName, + cmTarget &target) +{ + const char* mfcFlag = this->Makefile->GetDefinition("CMAKE_MFC_FLAG"); + if(!mfcFlag) + { + mfcFlag = "0"; + } + fout << "\t\tPlatformName << "\"\n" + << "\t\t\tOutputDirectory=\"" << configName << "\"\n"; + // This is an internal type to Visual Studio, it seems that: + // 4 == static library + // 2 == dll + // 1 == executable + // 10 == utility + const char* configType = "10"; + switch(target.GetType()) + { + case cmTarget::STATIC_LIBRARY: + configType = "4"; + break; + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + configType = "2"; + break; + case cmTarget::EXECUTABLE: + configType = "1"; + break; + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + configType = "10"; + default: + break; + } + + std::string flags; + if(strcmp(configType, "10") != 0) + { + const char* linkLanguage = + target.GetLinkerLanguage(this->GetGlobalGenerator()); + if(!linkLanguage) + { + cmSystemTools::Error + ("CMake can not determine linker language for target:", + target.GetName()); + return; + } + if(strcmp(linkLanguage, "C") == 0 || strcmp(linkLanguage, "CXX") == 0) + { + std::string baseFlagVar = "CMAKE_"; + baseFlagVar += linkLanguage; + baseFlagVar += "_FLAGS"; + flags = this->Makefile->GetRequiredDefinition(baseFlagVar.c_str()); + std::string flagVar = baseFlagVar + std::string("_") + + cmSystemTools::UpperCase(configName); + flags += " "; + flags += this->Makefile->GetRequiredDefinition(flagVar.c_str()); + } + // set the correct language + if(strcmp(linkLanguage, "C") == 0) + { + flags += " /TC "; + } + if(strcmp(linkLanguage, "CXX") == 0) + { + flags += " /TP "; + } + } + + // Add the target-specific flags. + if(const char* targetFlags = target.GetProperty("COMPILE_FLAGS")) + { + flags += " "; + flags += targetFlags; + } + + std::string configUpper = cmSystemTools::UpperCase(configName); + std::string defPropName = "COMPILE_DEFINITIONS_"; + defPropName += configUpper; + + // Get preprocessor definitions for this directory. + std::string defineFlags = this->Makefile->GetDefineFlags(); + + // Construct a set of build options for this target. + Options targetOptions(this, Options::Compiler, this->ExtraFlagTable); + targetOptions.FixExceptionHandlingDefault(); + targetOptions.Parse(flags.c_str()); + targetOptions.Parse(defineFlags.c_str()); + targetOptions.AddDefines + (this->Makefile->GetProperty("COMPILE_DEFINITIONS")); + targetOptions.AddDefines(target.GetProperty("COMPILE_DEFINITIONS")); + targetOptions.AddDefines(this->Makefile->GetProperty(defPropName.c_str())); + targetOptions.AddDefines(target.GetProperty(defPropName.c_str())); + targetOptions.SetVerboseMakefile( + this->Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE")); + + // Add a definition for the configuration name. + std::string configDefine = "CMAKE_INTDIR=\""; + configDefine += configName; + configDefine += "\""; + targetOptions.AddDefine(configDefine); + + // Add the export symbol definition for shared library objects. + if(const char* exportMacro = target.GetExportMacro()) + { + targetOptions.AddDefine(exportMacro); + } + + // The intermediate directory name consists of a directory for the + // target and a subdirectory for the configuration name. + std::string intermediateDir = this->GetTargetDirectory(target); + intermediateDir += "/"; + intermediateDir += configName; + fout << "\t\t\tIntermediateDirectory=\"" + << this->ConvertToXMLOutputPath(intermediateDir.c_str()) + << "\"\n" + << "\t\t\tConfigurationType=\"" << configType << "\"\n" + << "\t\t\tUseOfMFC=\"" << mfcFlag << "\"\n" + << "\t\t\tATLMinimizesCRunTimeLibraryUsage=\"FALSE\"\n"; + + // If unicode is enabled change the character set to unicode, if not + // then default to MBCS. + if(targetOptions.UsingUnicode()) + { + fout << "\t\t\tCharacterSet=\"1\">\n"; + } + else + { + fout << "\t\t\tCharacterSet=\"2\">\n"; + } + + fout << "\t\t\t includes; + this->GetIncludeDirectories(includes); + std::vector::iterator i = includes.begin(); + for(;i != includes.end(); ++i) + { + std::string ipath = this->ConvertToXMLOutputPath(i->c_str()); + fout << ipath << ";"; + } + fout << "\"\n"; + targetOptions.OutputFlagMap(fout, "\t\t\t\t"); + targetOptions.OutputPreprocessorDefinitions(fout, "\t\t\t\t", "\n"); + fout << "\t\t\t\tAssemblerListingLocation=\"" << configName << "\"\n"; + fout << "\t\t\t\tObjectFile=\"$(IntDir)\\\"\n"; + if(target.GetType() == cmTarget::EXECUTABLE || + target.GetType() == cmTarget::STATIC_LIBRARY || + target.GetType() == cmTarget::SHARED_LIBRARY || + target.GetType() == cmTarget::MODULE_LIBRARY) + { + // We need to specify a program database file name even for + // non-debug configurations because VS still creates .idb files. + fout << "\t\t\t\tProgramDataBaseFileName=\"" + << target.GetDirectory(configName) << "/" + << target.GetPDBName(configName) << "\"\n"; + } + fout << "/>\n"; // end of \n"; + fout << "\t\t\tConvertToXMLOutputPath(i->c_str()); + fout << ipath << ";"; + } + // add the -D flags to the RC tool + fout << "\""; + targetOptions.OutputPreprocessorDefinitions(fout, "\n\t\t\t\t", ""); + fout << "/>\n"; + + fout << "\t\t\tPlatformName == "x64" ) + { + fout << "\t\t\t\tTargetEnvironment=\"3\"\n"; + } + else if( this->PlatformName == "ia64" ) + { + fout << "\t\t\t\tTargetEnvironment=\"2\"\n"; + } + else + { + fout << "\t\t\t\tTargetEnvironment=\"1\"\n"; + } + fout << "\t\t\t\tGenerateStublessProxies=\"TRUE\"\n"; + fout << "\t\t\t\tTypeLibraryName=\"$(InputName).tlb\"\n"; + fout << "\t\t\t\tOutputDirectory=\"$(IntDir)\"\n"; + fout << "\t\t\t\tHeaderFileName=\"$(InputName).h\"\n"; + fout << "\t\t\t\tDLLDataFileName=\"\"\n"; + fout << "\t\t\t\tInterfaceIdentifierFileName=\"$(InputName)_i.c\"\n"; + fout << "\t\t\t\tProxyFileName=\"$(InputName)_p.c\"/>\n"; + // end of Version >= 8 ) + { + fout << "\t\t\t\n"; + } + + this->OutputTargetRules(fout, configName, target, libName); + this->OutputBuildTool(fout, configName, target, targetOptions.IsDebug()); + fout << "\t\t\n"; +} + +//---------------------------------------------------------------------------- +std::string +cmLocalVisualStudio7Generator +::GetBuildTypeLinkerFlags(std::string rootLinkerFlags, const char* configName) +{ + std::string configTypeUpper = cmSystemTools::UpperCase(configName); + std::string extraLinkOptionsBuildTypeDef = + rootLinkerFlags + "_" + configTypeUpper; + + std::string extraLinkOptionsBuildType = + this->Makefile->GetRequiredDefinition + (extraLinkOptionsBuildTypeDef.c_str()); + + return extraLinkOptionsBuildType; +} + +void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout, + const char* configName, + cmTarget &target, + bool isDebug) +{ + std::string temp; + std::string extraLinkOptions; + if(target.GetType() == cmTarget::EXECUTABLE) + { + extraLinkOptions = + this->Makefile->GetRequiredDefinition("CMAKE_EXE_LINKER_FLAGS") + + std::string(" ") + + GetBuildTypeLinkerFlags("CMAKE_EXE_LINKER_FLAGS", configName); + } + if(target.GetType() == cmTarget::SHARED_LIBRARY) + { + extraLinkOptions = + this->Makefile->GetRequiredDefinition("CMAKE_SHARED_LINKER_FLAGS") + + std::string(" ") + + GetBuildTypeLinkerFlags("CMAKE_SHARED_LINKER_FLAGS", configName); + } + if(target.GetType() == cmTarget::MODULE_LIBRARY) + { + extraLinkOptions = + this->Makefile->GetRequiredDefinition("CMAKE_MODULE_LINKER_FLAGS") + + std::string(" ") + + GetBuildTypeLinkerFlags("CMAKE_MODULE_LINKER_FLAGS", configName); + } + + const char* targetLinkFlags = target.GetProperty("LINK_FLAGS"); + if(targetLinkFlags) + { + extraLinkOptions += " "; + extraLinkOptions += targetLinkFlags; + } + std::string configTypeUpper = cmSystemTools::UpperCase(configName); + std::string linkFlagsConfig = "LINK_FLAGS_"; + linkFlagsConfig += configTypeUpper; + targetLinkFlags = target.GetProperty(linkFlagsConfig.c_str()); + if(targetLinkFlags) + { + extraLinkOptions += " "; + extraLinkOptions += targetLinkFlags; + } + Options linkOptions(this, Options::Linker); + linkOptions.Parse(extraLinkOptions.c_str()); + switch(target.GetType()) + { + case cmTarget::STATIC_LIBRARY: + { + std::string targetNameFull = target.GetFullName(configName); + std::string libpath = target.GetDirectory(configName); + libpath += "/"; + libpath += targetNameFull; + fout << "\t\t\tConvertToXMLOutputPathSingle(libpath.c_str()) << "\"/>\n"; + break; + } + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + { + std::string targetName; + std::string targetNameSO; + std::string targetNameFull; + std::string targetNameImport; + std::string targetNamePDB; + target.GetLibraryNames(targetName, targetNameSO, targetNameFull, + targetNameImport, targetNamePDB, configName); + + // Compute the link library and directory information. + cmComputeLinkInformation* pcli = target.GetLinkInformation(configName); + if(!pcli) + { + return; + } + cmComputeLinkInformation& cli = *pcli; + const char* linkLanguage = cli.GetLinkLanguage(); + + // Compute the variable name to lookup standard libraries for this + // language. + std::string standardLibsVar = "CMAKE_"; + standardLibsVar += linkLanguage; + standardLibsVar += "_STANDARD_LIBRARIES"; + + fout << "\t\t\tMakefile->GetSafeDefinition(standardLibsVar.c_str()) + << " "; + this->Internal->OutputLibraries(fout, cli.GetItems()); + fout << "\"\n"; + temp = target.GetDirectory(configName); + temp += "/"; + temp += targetNameFull; + fout << "\t\t\t\tOutputFile=\"" + << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n"; + this->WriteTargetVersionAttribute(fout, target); + linkOptions.OutputFlagMap(fout, "\t\t\t\t"); + fout << "\t\t\t\tAdditionalLibraryDirectories=\""; + this->OutputLibraryDirectories(fout, cli.GetDirectories()); + fout << "\"\n"; + this->OutputModuleDefinitionFile(fout, target); + temp = target.GetDirectory(configName); + temp += "/"; + temp += targetNamePDB; + fout << "\t\t\t\tProgramDataBaseFile=\"" << + this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n"; + if(isDebug) + { + fout << "\t\t\t\tGenerateDebugInformation=\"TRUE\"\n"; + } + std::string stackVar = "CMAKE_"; + stackVar += linkLanguage; + stackVar += "_STACK_SIZE"; + const char* stackVal = this->Makefile->GetDefinition(stackVar.c_str()); + if(stackVal) + { + fout << "\t\t\t\tStackReserveSize=\"" << stackVal << "\"\n"; + } + temp = target.GetDirectory(configName, true); + temp += "/"; + temp += targetNameImport; + fout << "\t\t\t\tImportLibrary=\"" + << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"/>\n"; + } + break; + case cmTarget::EXECUTABLE: + { + std::string targetName; + std::string targetNameFull; + std::string targetNameImport; + std::string targetNamePDB; + target.GetExecutableNames(targetName, targetNameFull, + targetNameImport, targetNamePDB, configName); + + // Compute the link library and directory information. + cmComputeLinkInformation* pcli = target.GetLinkInformation(configName); + if(!pcli) + { + return; + } + cmComputeLinkInformation& cli = *pcli; + const char* linkLanguage = cli.GetLinkLanguage(); + + // Compute the variable name to lookup standard libraries for this + // language. + std::string standardLibsVar = "CMAKE_"; + standardLibsVar += linkLanguage; + standardLibsVar += "_STANDARD_LIBRARIES"; + + fout << "\t\t\tMakefile->GetSafeDefinition(standardLibsVar.c_str()) + << " "; + this->Internal->OutputLibraries(fout, cli.GetItems()); + fout << "\"\n"; + temp = target.GetDirectory(configName); + temp += "/"; + temp += targetNameFull; + fout << "\t\t\t\tOutputFile=\"" + << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n"; + this->WriteTargetVersionAttribute(fout, target); + linkOptions.OutputFlagMap(fout, "\t\t\t\t"); + fout << "\t\t\t\tAdditionalLibraryDirectories=\""; + this->OutputLibraryDirectories(fout, cli.GetDirectories()); + fout << "\"\n"; + fout << "\t\t\t\tProgramDataBaseFile=\"" + << target.GetDirectory(configName) << "/" << targetNamePDB + << "\"\n"; + if(isDebug) + { + fout << "\t\t\t\tGenerateDebugInformation=\"TRUE\"\n"; + } + if ( target.GetPropertyAsBool("WIN32_EXECUTABLE") ) + { + fout << "\t\t\t\tSubSystem=\"2\"\n"; + } + else + { + fout << "\t\t\t\tSubSystem=\"1\"\n"; + } + std::string stackVar = "CMAKE_"; + stackVar += linkLanguage; + stackVar += "_STACK_SIZE"; + const char* stackVal = this->Makefile->GetDefinition(stackVar.c_str()); + if(stackVal) + { + fout << "\t\t\t\tStackReserveSize=\"" << stackVal << "\""; + } + temp = target.GetDirectory(configName, true); + temp += "/"; + temp += targetNameImport; + fout << "\t\t\t\tImportLibrary=\"" + << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"/>\n"; + break; + } + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + break; + } +} + +//---------------------------------------------------------------------------- +void +cmLocalVisualStudio7Generator +::WriteTargetVersionAttribute(std::ostream& fout, cmTarget& target) +{ + int major; + int minor; + target.GetTargetVersion(major, minor); + fout << "\t\t\t\tVersion=\"" << major << "." << minor << "\"\n"; +} + +void cmLocalVisualStudio7Generator +::OutputModuleDefinitionFile(std::ostream& fout, + cmTarget &target) +{ + std::vector const& classes = target.GetSourceFiles(); + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); i++) + { + cmSourceFile* sf = *i; + if(cmSystemTools::UpperCase(sf->GetExtension()) == "DEF") + { + fout << "\t\t\t\tModuleDefinitionFile=\"" + << this->ConvertToXMLOutputPath(sf->GetFullPath().c_str()) + << "\"\n"; + return; + } + } + +} + +//---------------------------------------------------------------------------- +void +cmLocalVisualStudio7GeneratorInternals +::OutputLibraries(std::ostream& fout, ItemVector const& libs) +{ + cmLocalVisualStudio7Generator* lg = this->LocalGenerator; + for(ItemVector::const_iterator l = libs.begin(); l != libs.end(); ++l) + { + if(l->IsPath) + { + std::string rel = lg->Convert(l->Value.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED); + fout << lg->ConvertToXMLOutputPath(rel.c_str()) << " "; + } + else + { + fout << l->Value << " "; + } + } +} + +//---------------------------------------------------------------------------- +void +cmLocalVisualStudio7Generator +::OutputLibraryDirectories(std::ostream& fout, + std::vector const& dirs) +{ + const char* comma = ""; + for(std::vector::const_iterator d = dirs.begin(); + d != dirs.end(); ++d) + { + // Remove any trailing slash and skip empty paths. + std::string dir = *d; + if(dir[dir.size()-1] == '/') + { + dir = dir.substr(0, dir.size()-1); + } + if(dir.empty()) + { + continue; + } + + // Switch to a relative path specification if it is shorter. + if(cmSystemTools::FileIsFullPath(dir.c_str())) + { + std::string rel = this->Convert(dir.c_str(), START_OUTPUT, UNCHANGED); + if(rel.size() < dir.size()) + { + dir = rel; + } + } + + // First search a configuration-specific subdirectory and then the + // original directory. + fout << comma << this->ConvertToXMLOutputPath((dir+"/$(OutDir)").c_str()) + << "," << this->ConvertToXMLOutputPath(dir.c_str()); + comma = ","; + } +} + +void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout, + const char *libName, + cmTarget &target) +{ + // get the configurations + std::vector *configs = + static_cast + (this->GlobalGenerator)->GetConfigurations(); + + // We may be modifying the source groups temporarily, so make a copy. + std::vector sourceGroups = this->Makefile->GetSourceGroups(); + + // get the classes from the source lists then add them to the groups + std::vectorconst & classes = target.GetSourceFiles(); + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); i++) + { + // Add the file to the list of sources. + std::string source = (*i)->GetFullPath(); + if(cmSystemTools::UpperCase((*i)->GetExtension()) == "DEF") + { + this->ModuleDefinitionFile = (*i)->GetFullPath(); + } + cmSourceGroup& sourceGroup = + this->Makefile->FindSourceGroup(source.c_str(), sourceGroups); + sourceGroup.AssignSource(*i); + } + + // Compute which sources need unique object computation. + this->ComputeObjectNameRequirements(sourceGroups); + + // open the project + this->WriteProjectStart(fout, libName, target, sourceGroups); + // write the configuration information + this->WriteConfigurations(fout, libName, target); + + fout << "\t\n"; + + + // Loop through every source group. + for(unsigned int i = 0; i < sourceGroups.size(); ++i) + { + cmSourceGroup sg = sourceGroups[i]; + this->WriteGroup(&sg, target, fout, libName, configs); + } + + //} + + fout << "\t\n"; + + // Write the VCProj file's footer. + this->WriteVCProjFooter(fout); +} + +struct cmLVS7GFileConfig +{ + std::string ObjectName; + std::string CompileFlags; + std::string CompileDefs; + std::string CompileDefsConfig; + std::string AdditionalDeps; + bool ExcludedFromBuild; +}; + +class cmLocalVisualStudio7GeneratorFCInfo +{ +public: + cmLocalVisualStudio7GeneratorFCInfo(cmLocalVisualStudio7Generator* lg, + cmTarget& target, + cmSourceFile const& sf, + std::vector* configs, + std::string::size_type dir_len); + std::map FileConfigMap; +}; + +cmLocalVisualStudio7GeneratorFCInfo +::cmLocalVisualStudio7GeneratorFCInfo(cmLocalVisualStudio7Generator* lg, + cmTarget& target, + cmSourceFile const& sf, + std::vector* configs, + std::string::size_type dir_len) +{ + std::string objectName; + if(lg->NeedObjectName.find(&sf) != lg->NeedObjectName.end()) + { + objectName = lg->GetObjectFileNameWithoutTarget(sf, dir_len); + } + + // Compute per-source, per-config information. + for(std::vector::iterator i = configs->begin(); + i != configs->end(); ++i) + { + std::string configUpper = cmSystemTools::UpperCase(*i); + cmLVS7GFileConfig fc; + bool needfc = false; + if(!objectName.empty()) + { + fc.ObjectName = objectName; + needfc = true; + } + if(const char* cflags = sf.GetProperty("COMPILE_FLAGS")) + { + fc.CompileFlags = cflags; + needfc = true; + } + if(const char* cdefs = sf.GetProperty("COMPILE_DEFINITIONS")) + { + fc.CompileDefs = cdefs; + needfc = true; + } + std::string defPropName = "COMPILE_DEFINITIONS_"; + defPropName += configUpper; + if(const char* ccdefs = sf.GetProperty(defPropName.c_str())) + { + fc.CompileDefsConfig = ccdefs; + needfc = true; + } + + // Check for extra object-file dependencies. + if(const char* deps = sf.GetProperty("OBJECT_DEPENDS")) + { + std::vector depends; + cmSystemTools::ExpandListArgument(deps, depends); + const char* sep = ""; + for(std::vector::iterator j = depends.begin(); + j != depends.end(); ++j) + { + fc.AdditionalDeps += sep; + fc.AdditionalDeps += lg->ConvertToXMLOutputPath(j->c_str()); + sep = ";"; + needfc = true; + } + } + + const char* lang = + lg->GlobalGenerator->GetLanguageFromExtension + (sf.GetExtension().c_str()); + const char* sourceLang = lg->GetSourceFileLanguage(sf); + const char* linkLanguage = target.GetLinkerLanguage + (lg->GetGlobalGenerator()); + bool needForceLang = false; + // source file does not match its extension language + if(lang && sourceLang && strcmp(lang, sourceLang) != 0) + { + needForceLang = true; + lang = sourceLang; + } + // If lang is set, the compiler will generate code automatically. + // If HEADER_FILE_ONLY is set, we must suppress this generation in + // the project file + fc.ExcludedFromBuild = + (lang && sf.GetPropertyAsBool("HEADER_FILE_ONLY")); + if(fc.ExcludedFromBuild) + { + needfc = true; + } + + // if the source file does not match the linker language + // then force c or c++ + if(needForceLang || (linkLanguage && lang + && strcmp(lang, linkLanguage) != 0)) + { + if(strcmp(lang, "CXX") == 0) + { + // force a C++ file type + fc.CompileFlags += " /TP "; + needfc = true; + } + else if(strcmp(lang, "C") == 0) + { + // force to c + fc.CompileFlags += " /TC "; + needfc = true; + } + } + + if(needfc) + { + this->FileConfigMap[*i] = fc; + } + } +} + +void cmLocalVisualStudio7Generator +::WriteGroup(const cmSourceGroup *sg, cmTarget& target, + std::ostream &fout, const char *libName, + std::vector *configs) +{ + const std::vector &sourceFiles = + sg->GetSourceFiles(); + // If the group is empty, don't write it at all. + if(sourceFiles.empty() && sg->GetGroupChildren().empty()) + { + return; + } + + // If the group has a name, write the header. + std::string name = sg->GetName(); + if(name != "") + { + this->WriteVCProjBeginGroup(fout, name.c_str(), ""); + } + + // Compute the maximum length of a configuration name. + std::string::size_type config_len_max = 0; + for(std::vector::iterator i = configs->begin(); + i != configs->end(); ++i) + { + if(i->size() > config_len_max) + { + config_len_max = i->size(); + } + } + + // Compute the maximum length of the full path to the intermediate + // files directory for any configuration. This is used to construct + // object file names that do not produce paths that are too long. + std::string::size_type dir_len = 0; + dir_len += strlen(this->Makefile->GetCurrentOutputDirectory()); + dir_len += 1; + dir_len += this->GetTargetDirectory(target).size(); + dir_len += 1; + dir_len += config_len_max; + dir_len += 1; + + // Loop through each source in the source group. + std::string objectName; + for(std::vector::const_iterator sf = + sourceFiles.begin(); sf != sourceFiles.end(); ++sf) + { + std::string source = (*sf)->GetFullPath(); + FCInfo fcinfo(this, target, *(*sf), configs, dir_len); + + if (source != libName || target.GetType() == cmTarget::UTILITY || + target.GetType() == cmTarget::GLOBAL_TARGET ) + { + fout << "\t\t\tConvertToXMLOutputPathSingle(source.c_str()); + // Tell MS-Dev what the source is. If the compiler knows how to + // build it, then it will. + fout << "\t\t\t\tRelativePath=\"" << d << "\">\n"; + if(cmCustomCommand const* command = (*sf)->GetCustomCommand()) + { + this->WriteCustomRule(fout, source.c_str(), *command, fcinfo); + } + else if(!fcinfo.FileConfigMap.empty()) + { + const char* aCompilerTool = "VCCLCompilerTool"; + std::string ext = (*sf)->GetExtension(); + ext = cmSystemTools::LowerCase(ext); + if(ext == "idl") + { + aCompilerTool = "VCMIDLTool"; + } + if(ext == "rc") + { + aCompilerTool = "VCResourceCompilerTool"; + } + if(ext == "def") + { + aCompilerTool = "VCCustomBuildTool"; + } + for(std::map::const_iterator + fci = fcinfo.FileConfigMap.begin(); + fci != fcinfo.FileConfigMap.end(); ++fci) + { + cmLVS7GFileConfig const& fc = fci->second; + fout << "\t\t\t\tfirst + << "|" << this->PlatformName << "\""; + if(fc.ExcludedFromBuild) + { + fout << " ExcludedFromBuild=\"true\""; + } + fout << ">\n"; + fout << "\t\t\t\t\tExtraFlagTable); + fileOptions.Parse(fc.CompileFlags.c_str()); + fileOptions.AddDefines(fc.CompileDefs.c_str()); + fileOptions.AddDefines(fc.CompileDefsConfig.c_str()); + fileOptions.OutputAdditionalOptions(fout, "\t\t\t\t\t", "\n"); + fileOptions.OutputFlagMap(fout, "\t\t\t\t\t"); + fileOptions.OutputPreprocessorDefinitions(fout, + "\t\t\t\t\t", "\n"); + } + if(!fc.AdditionalDeps.empty()) + { + fout << "\t\t\t\t\tAdditionalDependencies=\"" + << fc.AdditionalDeps.c_str() << "\"\n"; + } + if(!fc.ObjectName.empty()) + { + fout << "\t\t\t\t\tObjectFile=\"$(IntDir)/" + << fc.ObjectName.c_str() << "\"\n"; + } + fout << "\t\t\t\t\t/>\n" + << "\t\t\t\t\n"; + } + } + fout << "\t\t\t\n"; + } + } + + std::vector children = sg->GetGroupChildren(); + + for(unsigned int i=0;iWriteGroup(&children[i], target, fout, libName, configs); + } + + // If the group has a name, write the footer. + if(name != "") + { + this->WriteVCProjEndGroup(fout); + } +} + +void cmLocalVisualStudio7Generator:: +WriteCustomRule(std::ostream& fout, + const char* source, + const cmCustomCommand& command, + FCInfo& fcinfo) +{ + std::string comment = this->ConstructComment(command); + + // Write the rule for each configuration. + std::vector::iterator i; + std::vector *configs = + static_cast + (this->GlobalGenerator)->GetConfigurations(); + + for(i = configs->begin(); i != configs->end(); ++i) + { + cmLVS7GFileConfig const& fc = fcinfo.FileConfigMap[*i]; + fout << "\t\t\t\tPlatformName << "\">\n"; + if(!fc.CompileFlags.empty()) + { + fout << "\t\t\t\t\tEscapeForXML(fc.CompileFlags.c_str()) << "\"/>\n"; + } + + std::string script = + this->ConstructScript(command.GetCommandLines(), + command.GetWorkingDirectory(), + i->c_str(), + command.GetEscapeOldStyle(), + command.GetEscapeAllowMakeVars()); + fout << "\t\t\t\t\tEscapeForXML(comment.c_str()) << "\"\n" + << "\t\t\t\t\tCommandLine=\"" + << this->EscapeForXML(script.c_str()) << "\"\n" + << "\t\t\t\t\tAdditionalDependencies=\""; + if(command.GetDepends().empty()) + { + // There are no real dependencies. Produce an artificial one to + // make sure the rule runs reliably. + if(!cmSystemTools::FileExists(source)) + { + std::ofstream depout(source); + depout << "Artificial dependency for a custom command.\n"; + } + fout << this->ConvertToXMLOutputPath(source); + } + else + { + // Write out the dependencies for the rule. + for(std::vector::const_iterator d = + command.GetDepends().begin(); + d != command.GetDepends().end(); + ++d) + { + // Get the real name of the dependency in case it is a CMake target. + std::string dep = this->GetRealDependency(d->c_str(), i->c_str()); + fout << this->ConvertToXMLOutputPath(dep.c_str()) + << ";"; + } + } + fout << "\"\n"; + fout << "\t\t\t\t\tOutputs=\""; + if(command.GetOutputs().empty()) + { + fout << source << "_force"; + } + else + { + // Write a rule for the output generated by this command. + const char* sep = ""; + for(std::vector::const_iterator o = + command.GetOutputs().begin(); + o != command.GetOutputs().end(); + ++o) + { + fout << sep << this->ConvertToXMLOutputPathSingle(o->c_str()); + sep = ";"; + } + } + fout << "\"/>\n"; + fout << "\t\t\t\t\n"; + } +} + + +void cmLocalVisualStudio7Generator::WriteVCProjBeginGroup(std::ostream& fout, + const char* group, + const char* ) +{ + fout << "\t\t\n"; +} + + +void cmLocalVisualStudio7Generator::WriteVCProjEndGroup(std::ostream& fout) +{ + fout << "\t\t\n"; +} + + +// look for custom rules on a target and collect them together +void cmLocalVisualStudio7Generator +::OutputTargetRules(std::ostream& fout, + const char* configName, + cmTarget &target, + const char * /*libName*/) +{ + if (target.GetType() > cmTarget::GLOBAL_TARGET) + { + return; + } + + // add the pre build rules + fout << "\t\t\t::const_iterator cr = + target.GetPreBuildCommands().begin(); + cr != target.GetPreBuildCommands().end(); ++cr) + { + if(!init) + { + const char* comment = cr->GetComment(); + if(comment && *comment) + { + fout << "\nDescription=\"" + << this->EscapeForXML(comment) << "\""; + } + fout << "\nCommandLine=\""; + init = true; + } + else + { + fout << this->EscapeForXML("\n"); + } + std::string script = + this->ConstructScript(cr->GetCommandLines(), + cr->GetWorkingDirectory(), + configName, + cr->GetEscapeOldStyle(), + cr->GetEscapeAllowMakeVars()); + fout << this->EscapeForXML(script.c_str()).c_str(); + } + if (init) + { + fout << "\""; + } + fout << "/>\n"; + + // add the pre Link rules + fout << "\t\t\t::const_iterator cr = + target.GetPreLinkCommands().begin(); + cr != target.GetPreLinkCommands().end(); ++cr) + { + if(!init) + { + const char* comment = cr->GetComment(); + if(comment && *comment) + { + fout << "\nDescription=\"" + << this->EscapeForXML(comment) << "\""; + } + fout << "\nCommandLine=\""; + init = true; + } + else + { + fout << this->EscapeForXML("\n"); + } + std::string script = + this->ConstructScript(cr->GetCommandLines(), + cr->GetWorkingDirectory(), + configName, + cr->GetEscapeOldStyle(), + cr->GetEscapeAllowMakeVars()); + fout << this->EscapeForXML(script.c_str()).c_str(); + } + if (init) + { + fout << "\""; + } + fout << "/>\n"; + + // add the PostBuild rules + fout << "\t\t\t::const_iterator cr = + target.GetPostBuildCommands().begin(); + cr != target.GetPostBuildCommands().end(); ++cr) + { + if(!init) + { + const char* comment = cr->GetComment(); + if(comment && *comment) + { + fout << "\nDescription=\"" + << this->EscapeForXML(comment) << "\""; + } + fout << "\nCommandLine=\""; + init = true; + } + else + { + fout << this->EscapeForXML("\n"); + } + std::string script = + this->ConstructScript(cr->GetCommandLines(), + cr->GetWorkingDirectory(), + configName, + cr->GetEscapeOldStyle(), + cr->GetEscapeAllowMakeVars()); + fout << this->EscapeForXML(script.c_str()).c_str(); + } + if (init) + { + fout << "\""; + } + fout << "/>\n"; +} + +void +cmLocalVisualStudio7Generator::WriteProjectStart(std::ostream& fout, + const char *libName, + cmTarget & target, + std::vector &) +{ + fout << "\n" + << "Version == 71) + { + fout << "\tVersion=\"7.10\"\n"; + } + else + { + fout << "\tVersion=\"" << this->Version << ".00\"\n"; + } + const char* projLabel = target.GetProperty("PROJECT_LABEL"); + if(!projLabel) + { + projLabel = libName; + } + const char* keyword = target.GetProperty("VS_KEYWORD"); + if(!keyword) + { + keyword = "Win32Proj"; + } + cmGlobalVisualStudio7Generator* gg = + static_cast(this->GlobalGenerator); + fout << "\tName=\"" << projLabel << "\"\n"; + if(this->Version >= 8) + { + fout << "\tProjectGUID=\"{" << gg->GetGUID(libName) << "}\"\n"; + } + fout << "\tSccProjectName=\"\"\n" + << "\tSccLocalPath=\"\"\n" + << "\tKeyword=\"" << keyword << "\">\n" + << "\t\n" + << "\t\tPlatformName << "\"/>\n" + << "\t\n"; +} + + +void cmLocalVisualStudio7Generator::WriteVCProjFooter(std::ostream& fout) +{ + fout << "\t\n" + << "\t\n" + << "\n"; +} + +std::string cmLocalVisualStudio7GeneratorEscapeForXML(const char* s) +{ + std::string ret = s; + cmSystemTools::ReplaceString(ret, "&", "&"); + cmSystemTools::ReplaceString(ret, "\"", """); + cmSystemTools::ReplaceString(ret, "<", "<"); + cmSystemTools::ReplaceString(ret, ">", ">"); + cmSystemTools::ReplaceString(ret, "\n", " "); + return ret; +} + +std::string cmLocalVisualStudio7Generator::EscapeForXML(const char* s) +{ + return cmLocalVisualStudio7GeneratorEscapeForXML(s); +} + +std::string cmLocalVisualStudio7Generator +::ConvertToXMLOutputPath(const char* path) +{ + std::string ret = this->ConvertToOptionallyRelativeOutputPath(path); + cmSystemTools::ReplaceString(ret, "&", "&"); + cmSystemTools::ReplaceString(ret, "\"", """); + cmSystemTools::ReplaceString(ret, "<", "<"); + cmSystemTools::ReplaceString(ret, ">", ">"); + return ret; +} + +std::string cmLocalVisualStudio7Generator +::ConvertToXMLOutputPathSingle(const char* path) +{ + std::string ret = this->ConvertToOptionallyRelativeOutputPath(path); + cmSystemTools::ReplaceString(ret, "\"", ""); + cmSystemTools::ReplaceString(ret, "&", "&"); + cmSystemTools::ReplaceString(ret, "<", "<"); + cmSystemTools::ReplaceString(ret, ">", ">"); + return ret; +} + + +// This class is used to parse an existing vs 7 project +// and extract the GUID +class cmVS7XMLParser : public cmXMLParser +{ +public: + virtual void EndElement(const char* /* name */) + { + } + virtual void StartElement(const char* name, const char** atts) + { + // once the GUID is found do nothing + if(this->GUID.size()) + { + return; + } + int i =0; + if(strcmp("VisualStudioProject", name) == 0) + { + while(atts[i]) + { + if(strcmp(atts[i], "ProjectGUID") == 0) + { + if(atts[i+1]) + { + this->GUID = atts[i+1]; + this->GUID = this->GUID.substr(1, this->GUID.size()-2); + } + else + { + this->GUID = ""; + } + return; + } + ++i; + } + } + } + int InitializeParser() + { + int ret = cmXMLParser::InitializeParser(); + if(ret == 0) + { + return ret; + } + // visual studio projects have a strange encoding, but it is + // really utf-8 + XML_SetEncoding(static_cast(this->Parser), "utf-8"); + return 1; + } + std::string GUID; +}; + +void cmLocalVisualStudio7Generator::ReadAndStoreExternalGUID( + const char* name, + const char* path) +{ + cmVS7XMLParser parser; + parser.ParseFile(path); + // if we can not find a GUID then create one + if(parser.GUID.size() == 0) + { + cmGlobalVisualStudio7Generator* gg = + static_cast(this->GlobalGenerator); + gg->CreateGUID(name); + return; + } + std::string guidStoreName = name; + guidStoreName += "_GUID_CMAKE"; + // save the GUID in the cache + this->GlobalGenerator->GetCMakeInstance()-> + AddCacheEntry(guidStoreName.c_str(), + parser.GUID.c_str(), + "Stored GUID", + cmCacheManager::INTERNAL); +} + + +void cmLocalVisualStudio7Generator::ConfigureFinalPass() +{ + cmLocalGenerator::ConfigureFinalPass(); + cmTargets &tgts = this->Makefile->GetTargets(); + + cmGlobalVisualStudio7Generator* gg = + static_cast(this->GlobalGenerator); + for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); l++) + { + if (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + cmCustomCommand cc = l->second.GetPostBuildCommands()[0]; + const cmCustomCommandLines& cmds = cc.GetCommandLines(); + std::string project_name = cmds[0][0]; + this->ReadAndStoreExternalGUID(project_name.c_str(), + cmds[0][1].c_str()); + } + else + { + gg->CreateGUID(l->first.c_str()); + } + } + +} + +//---------------------------------------------------------------------------- +std::string cmLocalVisualStudio7Generator +::GetTargetDirectory(cmTarget const& target) const +{ + std::string dir; + dir += target.GetName(); + dir += ".dir"; + return dir; +} + +//---------------------------------------------------------------------------- +cmLocalVisualStudio7GeneratorOptions +::cmLocalVisualStudio7GeneratorOptions(cmLocalVisualStudio7Generator* lg, + Tool tool, + cmVS7FlagTable const* extraTable): + LocalGenerator(lg), CurrentTool(tool), + DoingDefine(false), FlagTable(0), ExtraFlagTable(extraTable) +{ + // Choose the flag table for the requested tool. + switch(tool) + { + case Compiler: + this->FlagTable = cmLocalVisualStudio7GeneratorFlagTable; break; + case Linker: + this->FlagTable = cmLocalVisualStudio7GeneratorLinkFlagTable; break; + default: break; + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7GeneratorOptions::FixExceptionHandlingDefault() +{ + // Exception handling is on by default because the platform file has + // "/EHsc" in the flags. Normally, that will override this + // initialization to off, but the user has the option of removing + // the flag to disable exception handling. When the user does + // remove the flag we need to override the IDE default of on. + this->FlagMap["ExceptionHandling"] = "FALSE"; +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7GeneratorOptions::SetVerboseMakefile(bool verbose) +{ + // If verbose makefiles have been requested and the /nologo option + // was not given explicitly in the flags we want to add an attribute + // to the generated project to disable logo suppression. Otherwise + // the GUI default is to enable suppression. + if(verbose && + this->FlagMap.find("SuppressStartupBanner") == this->FlagMap.end()) + { + this->FlagMap["SuppressStartupBanner"] = "FALSE"; + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7GeneratorOptions::AddDefine(const std::string& def) +{ + this->Defines.push_back(def); +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7GeneratorOptions::AddDefines(const char* defines) +{ + if(defines) + { + // Expand the list of definitions. + cmSystemTools::ExpandListArgument(defines, this->Defines); + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7GeneratorOptions::AddFlag(const char* flag, + const char* value) +{ + this->FlagMap[flag] = value; +} + + +bool cmLocalVisualStudio7GeneratorOptions::IsDebug() +{ + return this->FlagMap.find("DebugInformationFormat") != this->FlagMap.end(); +} + +//---------------------------------------------------------------------------- +bool cmLocalVisualStudio7GeneratorOptions::UsingUnicode() +{ + // Look for the a _UNICODE definition. + for(std::vector::const_iterator di = this->Defines.begin(); + di != this->Defines.end(); ++di) + { + if(*di == "_UNICODE") + { + return true; + } + } + return false; +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7GeneratorOptions::Parse(const char* flags) +{ + // Parse the input string as a windows command line since the string + // is intended for writing directly into the build files. + std::vector args; + cmSystemTools::ParseWindowsCommandLine(flags, args); + + // Process flags that need to be represented specially in the IDE + // project file. + for(std::vector::iterator ai = args.begin(); + ai != args.end(); ++ai) + { + this->HandleFlag(ai->c_str()); + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudio7GeneratorOptions::HandleFlag(const char* flag) +{ + // If the last option was -D then this option is the definition. + if(this->DoingDefine) + { + this->DoingDefine = false; + this->Defines.push_back(flag); + return; + } + + // Look for known arguments. + if(flag[0] == '-' || flag[0] == '/') + { + // Look for preprocessor definitions. + if(this->CurrentTool == Compiler && flag[1] == 'D') + { + if(flag[2] == '\0') + { + // The next argument will have the definition. + this->DoingDefine = true; + } + else + { + // Store this definition. + this->Defines.push_back(flag+2); + } + return; + } + + // Look through the available flag tables. + bool flag_handled = false; + if(this->FlagTable && + this->CheckFlagTable(this->FlagTable, flag, flag_handled)) + { + return; + } + if(this->ExtraFlagTable && + this->CheckFlagTable(this->ExtraFlagTable, flag, flag_handled)) + { + return; + } + + // If any map entry handled the flag we are done. + if(flag_handled) + { + return; + } + } + // This option is not known. Store it in the output flags. + this->FlagString += " "; + this->FlagString += + cmSystemTools::EscapeWindowsShellArgument(flag, + cmsysSystem_Shell_Flag_VSIDE); +} + +//---------------------------------------------------------------------------- +bool +cmLocalVisualStudio7GeneratorOptions +::CheckFlagTable(cmVS7FlagTable const* table, const char* flag, + bool& flag_handled) +{ + // Look for an entry in the flag table matching this flag. + for(cmVS7FlagTable const* entry = table; entry->IDEName; ++entry) + { + bool entry_found = false; + if(entry->special & cmVS7FlagTable::UserValue) + { + // This flag table entry accepts a user-specified value. If + // the entry specifies UserRequired we must match only if a + // non-empty value is given. + int n = static_cast(strlen(entry->commandFlag)); + if(strncmp(flag+1, entry->commandFlag, n) == 0 && + (!(entry->special & cmVS7FlagTable::UserRequired) || + static_cast(strlen(flag+1)) > n)) + { + if(entry->special & cmVS7FlagTable::UserIgnored) + { + // Ignore the user-specified value. + this->FlagMap[entry->IDEName] = entry->value; + } + else if(entry->special & cmVS7FlagTable::SemicolonAppendable) + { + const char *new_value = flag+1+n; + + std::map::iterator itr; + itr = this->FlagMap.find(entry->IDEName); + if(itr != this->FlagMap.end()) + { + // Append to old value (if present) with semicolons; + itr->second += ";"; + itr->second += new_value; + } + else + { + this->FlagMap[entry->IDEName] = new_value; + } + } + else + { + // Use the user-specified value. + this->FlagMap[entry->IDEName] = flag+1+n; + } + entry_found = true; + } + } + else if(strcmp(flag+1, entry->commandFlag) == 0) + { + // This flag table entry provides a fixed value. + this->FlagMap[entry->IDEName] = entry->value; + entry_found = true; + } + + // If the flag has been handled by an entry not requesting a + // search continuation we are done. + if(entry_found && !(entry->special & cmVS7FlagTable::Continue)) + { + return true; + } + + // If the entry was found the flag has been handled. + flag_handled = flag_handled || entry_found; + } + + return false; +} + +//---------------------------------------------------------------------------- +void +cmLocalVisualStudio7GeneratorOptions +::OutputPreprocessorDefinitions(std::ostream& fout, + const char* prefix, + const char* suffix) +{ + if(this->Defines.empty()) + { + return; + } + + fout << prefix << "PreprocessorDefinitions=\""; + const char* comma = ""; + for(std::vector::const_iterator di = this->Defines.begin(); + di != this->Defines.end(); ++di) + { + // Escape the definition for the compiler. + std::string define = + this->LocalGenerator->EscapeForShell(di->c_str(), true); + + // Escape this flag for the IDE. + define = cmLocalVisualStudio7GeneratorEscapeForXML(define.c_str()); + + // Store the flag in the project file. + fout << comma << define; + comma = ","; + } + fout << "\"" << suffix; +} + +//---------------------------------------------------------------------------- +void +cmLocalVisualStudio7GeneratorOptions +::OutputFlagMap(std::ostream& fout, const char* indent) +{ + for(std::map::iterator m = this->FlagMap.begin(); + m != this->FlagMap.end(); ++m) + { + fout << indent << m->first << "=\"" << m->second << "\"\n"; + } +} + +//---------------------------------------------------------------------------- +void +cmLocalVisualStudio7GeneratorOptions +::OutputAdditionalOptions(std::ostream& fout, + const char* prefix, + const char* suffix) +{ + if(!this->FlagString.empty()) + { + fout << prefix << "AdditionalOptions=\""; + fout << + cmLocalVisualStudio7GeneratorEscapeForXML(this->FlagString.c_str()); + fout << "\"" << suffix; + } +} +void cmLocalVisualStudio7Generator:: +GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs) +{ + std::string dir = this->Makefile->GetCurrentOutputDirectory(); + dir += "/"; + dir += this->GetTargetDirectory(*target); + dir += "/"; + dir += this->GetGlobalGenerator()->GetCMakeCFGInitDirectory(); + dirs.push_back(dir); +} diff --git a/CMakeLua/Source/cmLocalVisualStudio7Generator.h b/CMakeLua/Source/cmLocalVisualStudio7Generator.h new file mode 100644 index 0000000..5795622 --- /dev/null +++ b/CMakeLua/Source/cmLocalVisualStudio7Generator.h @@ -0,0 +1,157 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalVisualStudio7Generator.h,v $ + Language: C++ + Date: $Date: 2008/01/30 17:04:38 $ + Version: $Revision: 1.50 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLocalVisualStudio7Generator_h +#define cmLocalVisualStudio7Generator_h + +#include "cmLocalVisualStudioGenerator.h" + +class cmTarget; +class cmSourceFile; +class cmCustomCommand; +class cmSourceGroup; +struct cmVS7FlagTable; + +class cmLocalVisualStudio7GeneratorOptions; +class cmLocalVisualStudio7GeneratorFCInfo; +class cmLocalVisualStudio7GeneratorInternals; + +/** \class cmLocalVisualStudio7Generator + * \brief Write Visual Studio .NET project files. + * + * cmLocalVisualStudio7Generator produces a Visual Studio .NET project + * file for each target in its directory. + */ +class cmLocalVisualStudio7Generator : public cmLocalVisualStudioGenerator +{ +public: + ///! Set cache only and recurse to false by default. + cmLocalVisualStudio7Generator(); + + virtual ~cmLocalVisualStudio7Generator(); + + virtual void AddHelperCommands(); + + /** + * Generate the makefile for this directory. + */ + virtual void Generate(); + + enum BuildType {STATIC_LIBRARY, DLL, EXECUTABLE, WIN32_EXECUTABLE, UTILITY}; + + /** + * Specify the type of the build: static, dll, or executable. + */ + void SetBuildType(BuildType,const char *name); + + void SetVersion71() {this->Version = 71;} + void SetVersion8() {this->Version = 8;} + void SetVersion9() {this->Version = 9;} + void SetPlatformName(const char* n) { this->PlatformName = n;} + virtual void ConfigureFinalPass(); + void GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs); + + void SetExtraFlagTable(cmVS7FlagTable const* table) + { this->ExtraFlagTable = table; } +private: + typedef cmLocalVisualStudio7GeneratorOptions Options; + typedef cmLocalVisualStudio7GeneratorFCInfo FCInfo; + void ReadAndStoreExternalGUID(const char* name, + const char* path); + std::string GetBuildTypeLinkerFlags(std::string rootLinkerFlags, + const char* configName); + void FixGlobalTargets(); + void WriteProjectFiles(); + void WriteStampFiles(); + void WriteVCProjHeader(std::ostream& fout, const char *libName, + cmTarget &tgt, std::vector &sgs); + void WriteVCProjFooter(std::ostream& fout); + void CreateSingleVCProj(const char *lname, cmTarget &tgt); + void WriteVCProjFile(std::ostream& fout, const char *libName, + cmTarget &tgt); + cmSourceFile* CreateVCProjBuildRule(); + void WriteConfigurations(std::ostream& fout, + const char *libName, cmTarget &tgt); + void WriteConfiguration(std::ostream& fout, + const char* configName, + const char* libName, cmTarget &tgt); + std::string EscapeForXML(const char* s); + std::string ConvertToXMLOutputPath(const char* path); + std::string ConvertToXMLOutputPathSingle(const char* path); + void OutputTargetRules(std::ostream& fout, const char* configName, + cmTarget &target, const char *libName); + void OutputBuildTool(std::ostream& fout, const char* configName, + cmTarget& t, bool debug); + void OutputLibraryDirectories(std::ostream& fout, + std::vector const& dirs); + void OutputModuleDefinitionFile(std::ostream& fout, cmTarget &target); + void WriteProjectStart(std::ostream& fout, const char *libName, + cmTarget &tgt, std::vector &sgs); + void WriteVCProjBeginGroup(std::ostream& fout, + const char* group, + const char* filter); + void WriteVCProjEndGroup(std::ostream& fout); + + void WriteCustomRule(std::ostream& fout, + const char* source, + const cmCustomCommand& command, + FCInfo& fcinfo); + void WriteTargetVersionAttribute(std::ostream& fout, cmTarget& target); + + void WriteGroup(const cmSourceGroup *sg, + cmTarget& target, std::ostream &fout, + const char *libName, std::vector *configs); + virtual std::string GetTargetDirectory(cmTarget const&) const; + + friend class cmLocalVisualStudio7GeneratorFCInfo; + friend class cmLocalVisualStudio7GeneratorInternals; + + cmVS7FlagTable const* ExtraFlagTable; + std::string ModuleDefinitionFile; + int Version; + std::string PlatformName; // Win32 or x64 + cmLocalVisualStudio7GeneratorInternals* Internal; +}; + +// This is a table mapping XML tag IDE names to command line options +struct cmVS7FlagTable +{ + const char* IDEName; // name used in the IDE xml file + const char* commandFlag; // command line flag + const char* comment; // comment + const char* value; // string value + unsigned int special; // flags for special handling requests + enum + { + UserValue = (1<<0), // flag contains a user-specified value + UserIgnored = (1<<1), // ignore any user value + UserRequired = (1<<2), // match only when user value is non-empty + Continue = (1<<3), // continue looking for matching entries + SemicolonAppendable = (1<<4), // a flag that if specified multiple times + // should have its value appended to the + // old value with semicolons (e.g. + // /NODEFAULTLIB: => + // IgnoreDefaultLibraryNames) + + UserValueIgnored = UserValue | UserIgnored, + UserValueRequired = UserValue | UserRequired + }; +}; + +#endif + diff --git a/CMakeLua/Source/cmLocalVisualStudioGenerator.cxx b/CMakeLua/Source/cmLocalVisualStudioGenerator.cxx new file mode 100755 index 0000000..cfbde53 --- /dev/null +++ b/CMakeLua/Source/cmLocalVisualStudioGenerator.cxx @@ -0,0 +1,211 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalVisualStudioGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/15 19:00:52 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLocalVisualStudioGenerator.h" +#include "cmGlobalGenerator.h" +#include "cmMakefile.h" +#include "cmSourceFile.h" +#include "cmSystemTools.h" +#include "windows.h" + +//---------------------------------------------------------------------------- +cmLocalVisualStudioGenerator::cmLocalVisualStudioGenerator() +{ + this->WindowsShell = true; + this->WindowsVSIDE = true; +} + +//---------------------------------------------------------------------------- +cmLocalVisualStudioGenerator::~cmLocalVisualStudioGenerator() +{ +} + +//---------------------------------------------------------------------------- +bool cmLocalVisualStudioGenerator::SourceFileCompiles(const cmSourceFile* sf) +{ + // Identify the language of the source file. + if(const char* lang = this->GetSourceFileLanguage(*sf)) + { + // Check whether this source will actually be compiled. + return (!sf->GetCustomCommand() && + !sf->GetPropertyAsBool("HEADER_FILE_ONLY") && + !sf->GetPropertyAsBool("EXTERNAL_OBJECT")); + } + else + { + // Unknown source file language. Assume it will not be compiled. + return false; + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudioGenerator::CountObjectNames( + const std::vector& groups, + std::map& counts) +{ + for(unsigned int i = 0; i < groups.size(); ++i) + { + cmSourceGroup sg = groups[i]; + std::vector const& srcs = sg.GetSourceFiles(); + for(std::vector::const_iterator s = srcs.begin(); + s != srcs.end(); ++s) + { + const cmSourceFile* sf = *s; + if(this->SourceFileCompiles(sf)) + { + std::string objectName = cmSystemTools::LowerCase( + cmSystemTools::GetFilenameWithoutLastExtension( + sf->GetFullPath())); + objectName += ".obj"; + counts[objectName] += 1; + } + } + this->CountObjectNames(sg.GetGroupChildren(), counts); + } +} + +//---------------------------------------------------------------------------- +void cmLocalVisualStudioGenerator::InsertNeedObjectNames( + const std::vector& groups, + std::map& count) +{ + for(unsigned int i = 0; i < groups.size(); ++i) + { + cmSourceGroup sg = groups[i]; + std::vector const& srcs = sg.GetSourceFiles(); + for(std::vector::const_iterator s = srcs.begin(); + s != srcs.end(); ++s) + { + const cmSourceFile* sf = *s; + if(this->SourceFileCompiles(sf)) + { + std::string objectName = cmSystemTools::LowerCase( + cmSystemTools::GetFilenameWithoutLastExtension(sf->GetFullPath())); + objectName += ".obj"; + if(count[objectName] > 1) + { + this->NeedObjectName.insert(sf); + } + } + } + this->InsertNeedObjectNames(sg.GetGroupChildren(), count); + } +} + + +//---------------------------------------------------------------------------- +void cmLocalVisualStudioGenerator::ComputeObjectNameRequirements +(std::vector const& sourceGroups) +{ + // Clear the current set of requirements. + this->NeedObjectName.clear(); + + // Count the number of object files with each name. Note that + // windows file names are not case sensitive. + std::map objectNameCounts; + this->CountObjectNames(sourceGroups, objectNameCounts); + + // For all source files producing duplicate names we need unique + // object name computation. + this->InsertNeedObjectNames(sourceGroups, objectNameCounts); +} + +//---------------------------------------------------------------------------- +std::string +cmLocalVisualStudioGenerator +::ConstructScript(const cmCustomCommandLines& commandLines, + const char* workingDirectory, + const char* configName, + bool escapeOldStyle, + bool escapeAllowMakeVars, + const char* newline_text) +{ + // Avoid leading or trailing newlines. + const char* newline = ""; + + // Store the script in a string. + std::string script; + if(workingDirectory) + { + // Change the working directory. + script += newline; + newline = newline_text; + script += "cd "; + script += this->Convert(workingDirectory, START_OUTPUT, SHELL); + + // Change the working drive. + if(workingDirectory[0] && workingDirectory[1] == ':') + { + script += newline; + newline = newline_text; + script += workingDirectory[0]; + script += workingDirectory[1]; + } + } + // for visual studio IDE add extra stuff to the PATH + // if CMAKE_MSVCIDE_RUN_PATH is set. + if(this->Makefile->GetDefinition("MSVC_IDE")) + { + const char* extraPath = + this->Makefile->GetDefinition("CMAKE_MSVCIDE_RUN_PATH"); + if(extraPath) + { + script += newline; + newline = newline_text; + script += "set PATH="; + script += extraPath; + script += ";%PATH%"; + } + } + // Write each command on a single line. + for(cmCustomCommandLines::const_iterator cl = commandLines.begin(); + cl != commandLines.end(); ++cl) + { + // Start a new line. + script += newline; + newline = newline_text; + + // Start with the command name. + const cmCustomCommandLine& commandLine = *cl; + std::string commandName = this->GetRealLocation(commandLine[0].c_str(), + configName); + if(!workingDirectory) + { + script += this->Convert(commandName.c_str(),START_OUTPUT,SHELL); + } + else + { + script += this->Convert(commandName.c_str(),NONE,SHELL); + } + + // Add the arguments. + for(unsigned int j=1;j < commandLine.size(); ++j) + { + script += " "; + if(escapeOldStyle) + { + script += this->EscapeForShellOldStyle(commandLine[j].c_str()); + } + else + { + script += this->EscapeForShell(commandLine[j].c_str(), + escapeAllowMakeVars); + } + } + } + return script; +} + diff --git a/CMakeLua/Source/cmLocalVisualStudioGenerator.h b/CMakeLua/Source/cmLocalVisualStudioGenerator.h new file mode 100644 index 0000000..0fc164e --- /dev/null +++ b/CMakeLua/Source/cmLocalVisualStudioGenerator.h @@ -0,0 +1,57 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalVisualStudioGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/27 21:05:43 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLocalVisualStudioGenerator_h +#define cmLocalVisualStudioGenerator_h + +#include "cmLocalGenerator.h" + +class cmSourceFile; +class cmSourceGroup; + +/** \class cmLocalVisualStudioGenerator + * \brief Base class for Visual Studio generators. + * + * cmLocalVisualStudioGenerator provides functionality common to all + * Visual Studio generators. + */ +class cmLocalVisualStudioGenerator : public cmLocalGenerator +{ +public: + cmLocalVisualStudioGenerator(); + virtual ~cmLocalVisualStudioGenerator(); +protected: + + /** Construct a script from the given list of command lines. */ + std::string ConstructScript(const cmCustomCommandLines& commandLines, + const char* workingDirectory, + const char* configName, + bool escapeOldStyle, + bool escapeAllowMakeVars, + const char* newline = "\n"); + + // Safe object file name generation. + void ComputeObjectNameRequirements(std::vector const&); + bool SourceFileCompiles(const cmSourceFile* sf); + void CountObjectNames(const std::vector& groups, + std::map& count); + void InsertNeedObjectNames(const std::vector& groups, + std::map& count); + + std::set NeedObjectName; +}; + +#endif diff --git a/CMakeLua/Source/cmLocalXCodeGenerator.cxx b/CMakeLua/Source/cmLocalXCodeGenerator.cxx new file mode 100644 index 0000000..17e29e2 --- /dev/null +++ b/CMakeLua/Source/cmLocalXCodeGenerator.cxx @@ -0,0 +1,53 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalXCodeGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/08/14 15:45:14 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmLocalXCodeGenerator.h" +#include "cmGlobalXCodeGenerator.h" +#include "cmSourceFile.h" + +//---------------------------------------------------------------------------- +cmLocalXCodeGenerator::cmLocalXCodeGenerator() +{ + // the global generator does this, so do not + // put these flags into the language flags + this->EmitUniversalBinaryFlags = false; +} + +//---------------------------------------------------------------------------- +cmLocalXCodeGenerator::~cmLocalXCodeGenerator() +{ +} + +//---------------------------------------------------------------------------- +std::string +cmLocalXCodeGenerator::GetTargetDirectory(cmTarget const&) const +{ + // No per-target directory for this generator (yet). + return ""; +} + +//---------------------------------------------------------------------------- +void cmLocalXCodeGenerator:: +GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs) +{ + cmGlobalXCodeGenerator* g = + (cmGlobalXCodeGenerator*)this->GetGlobalGenerator(); + g->SetCurrentLocalGenerator(this); + g->GetTargetObjectFileDirectories(target, + dirs); +} diff --git a/CMakeLua/Source/cmLocalXCodeGenerator.h b/CMakeLua/Source/cmLocalXCodeGenerator.h new file mode 100644 index 0000000..d658a77 --- /dev/null +++ b/CMakeLua/Source/cmLocalXCodeGenerator.h @@ -0,0 +1,44 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmLocalXCodeGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/01 19:25:40 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLocalXCodeGenerator_h +#define cmLocalXCodeGenerator_h + +#include "cmLocalGenerator.h" + +/** \class cmLocalXCodeGenerator + * \brief Write a local Xcode project + * + * cmLocalXCodeGenerator produces a LocalUnix makefile from its + * member Makefile. + */ +class cmLocalXCodeGenerator : public cmLocalGenerator +{ +public: + ///! Set cache only and recurse to false by default. + cmLocalXCodeGenerator(); + + virtual ~cmLocalXCodeGenerator(); + void GetTargetObjectFileDirectories(cmTarget* target, + std::vector& + dirs); + virtual std::string GetTargetDirectory(cmTarget const& target) const; +private: + +}; + +#endif + diff --git a/CMakeLua/Source/cmMacroCommand.cxx b/CMakeLua/Source/cmMacroCommand.cxx new file mode 100644 index 0000000..86a3723 --- /dev/null +++ b/CMakeLua/Source/cmMacroCommand.cxx @@ -0,0 +1,374 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMacroCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.34 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMacroCommand.h" + +#include "cmake.h" + +// define the class for macro commands +class cmMacroHelperCommand : public cmCommand +{ +public: + cmMacroHelperCommand() {} + + ///! clean up any memory allocated by the macro + ~cmMacroHelperCommand() {}; + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + cmMacroHelperCommand *newC = new cmMacroHelperCommand; + // we must copy when we clone + newC->Args = this->Args; + newC->Functions = this->Functions; + return newC; + } + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InvokeInitialPass(const std::vector& args, + cmExecutionStatus &); + + virtual bool InitialPass(std::vector const&, + cmExecutionStatus &) { return false; }; + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return this->Args[0].c_str(); } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + std::string docs = "Macro named: "; + docs += this->GetName(); + return docs.c_str(); + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return this->GetTerseDocumentation(); + } + + cmTypeMacro(cmMacroHelperCommand, cmCommand); + + std::vector Args; + std::vector Functions; +}; + + +bool cmMacroHelperCommand::InvokeInitialPass +(const std::vector& args, + cmExecutionStatus &inStatus) +{ + // Expand the argument list to the macro. + std::vector expandedArgs; + this->Makefile->ExpandArguments(args, expandedArgs); + + std::string tmps; + cmListFileArgument arg; + std::string variable; + + // make sure the number of arguments passed is at least the number + // required by the signature + if (expandedArgs.size() < this->Args.size() - 1) + { + std::string errorMsg = + "Macro invoked with incorrect arguments for macro named: "; + errorMsg += this->Args[0]; + this->SetError(errorMsg.c_str()); + return false; + } + + // set the value of argc + cmOStringStream argcDefStream; + argcDefStream << expandedArgs.size(); + std::string argcDef = argcDefStream.str(); + + // declare varuiables for ARGV ARGN but do not compute until needed + std::string argvDef; + std::string argnDef; + bool argnDefInitialized = false; + bool argvDefInitialized = false; + + // Invoke all the functions that were collected in the block. + cmListFileFunction newLFF; + // for each function + for(unsigned int c = 0; c < this->Functions.size(); ++c) + { + // Replace the formal arguments and then invoke the command. + newLFF.Arguments.clear(); + newLFF.Arguments.reserve(this->Functions[c].Arguments.size()); + newLFF.Name = this->Functions[c].Name; + newLFF.FilePath = this->Functions[c].FilePath; + newLFF.Line = this->Functions[c].Line; + const char* def = this->Makefile->GetDefinition + ("CMAKE_MACRO_REPORT_DEFINITION_LOCATION"); + bool macroReportLocation = false; + if(def && !cmSystemTools::IsOff(def)) + { + macroReportLocation = true; + } + + // for each argument of the current function + for (std::vector::const_iterator k = + this->Functions[c].Arguments.begin(); + k != this->Functions[c].Arguments.end(); ++k) + { + tmps = k->Value; + // replace formal arguments + for (unsigned int j = 1; j < this->Args.size(); ++j) + { + variable = "${"; + variable += this->Args[j]; + variable += "}"; + cmSystemTools::ReplaceString(tmps, variable.c_str(), + expandedArgs[j-1].c_str()); + } + // replace argc + cmSystemTools::ReplaceString(tmps, "${ARGC}",argcDef.c_str()); + + // repleace ARGN + if (tmps.find("${ARGN}") != std::string::npos) + { + if (!argnDefInitialized) + { + std::vector::const_iterator eit; + std::vector::size_type cnt = 0; + for ( eit = expandedArgs.begin(); eit != expandedArgs.end(); ++eit ) + { + if ( cnt >= this->Args.size()-1 ) + { + if ( argnDef.size() > 0 ) + { + argnDef += ";"; + } + argnDef += *eit; + } + cnt ++; + } + argnDefInitialized = true; + } + cmSystemTools::ReplaceString(tmps, "${ARGN}", argnDef.c_str()); + } + + // if the current argument of the current function has ${ARGV in it + // then try replacing ARGV values + if (tmps.find("${ARGV") != std::string::npos) + { + char argvName[60]; + + // repleace ARGV, compute it only once + if (!argvDefInitialized) + { + std::vector::const_iterator eit; + for ( eit = expandedArgs.begin(); eit != expandedArgs.end(); ++eit ) + { + if ( argvDef.size() > 0 ) + { + argvDef += ";"; + } + argvDef += *eit; + } + argvDefInitialized = true; + } + cmSystemTools::ReplaceString(tmps, "${ARGV}", argvDef.c_str()); + + // also replace the ARGV1 ARGV2 ... etc + for (unsigned int t = 0; t < expandedArgs.size(); ++t) + { + sprintf(argvName,"${ARGV%i}",t); + cmSystemTools::ReplaceString(tmps, argvName, + expandedArgs[t].c_str()); + } + } + + arg.Value = tmps; + arg.Quoted = k->Quoted; + if(macroReportLocation) + { + // Report the location of the argument where the macro was + // defined. + arg.FilePath = k->FilePath; + arg.Line = k->Line; + } + else + { + // Report the location of the argument where the macro was + // invoked. + if (args.size()) + { + arg.FilePath = args[0].FilePath; + arg.Line = args[0].Line; + } + else + { + arg.FilePath = "Unknown"; + arg.Line = 0; + } + } + newLFF.Arguments.push_back(arg); + } + cmExecutionStatus status; + if(!this->Makefile->ExecuteCommand(newLFF,status)) + { + if(args.size()) + { + arg.FilePath = args[0].FilePath; + arg.Line = args[0].Line; + } + else + { + arg.FilePath = "Unknown"; + arg.Line = 0; + } + cmOStringStream error; + error << "Error in cmake code at\n" + << arg.FilePath << ":" << arg.Line << ":\n" + << "A command failed during the invocation of macro \"" + << this->Args[0].c_str() << "\"."; + cmSystemTools::Error(error.str().c_str()); + return false; + } + if (status.GetReturnInvoked()) + { + inStatus.SetReturnInvoked(true); + return true; + } + if (status.GetBreakInvoked()) + { + inStatus.SetBreakInvoked(true); + return true; + } + } + return true; +} + +bool cmMacroFunctionBlocker:: +IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf, + cmExecutionStatus &) +{ + // record commands until we hit the ENDMACRO + // at the ENDMACRO call we shift gears and start looking for invocations + if(!cmSystemTools::Strucmp(lff.Name.c_str(),"macro")) + { + this->Depth++; + } + else if(!cmSystemTools::Strucmp(lff.Name.c_str(),"endmacro")) + { + // if this is the endmacro for this macro then execute + if (!this->Depth) + { + std::string name = this->Args[0]; + std::vector::size_type cc; + name += "("; + for ( cc = 0; cc < this->Args.size(); cc ++ ) + { + name += " " + this->Args[cc]; + } + name += " )"; + mf.AddMacro(this->Args[0].c_str(), name.c_str()); + // create a new command and add it to cmake + cmMacroHelperCommand *f = new cmMacroHelperCommand(); + f->Args = this->Args; + f->Functions = this->Functions; + std::string newName = "_" + this->Args[0]; + mf.GetCMakeInstance()->RenameCommand(this->Args[0].c_str(), + newName.c_str()); + mf.AddCommand(f); + + // remove the function blocker now that the macro is defined + mf.RemoveFunctionBlocker(lff); + return true; + } + else + { + // decrement for each nested macro that ends + this->Depth--; + } + } + + // if it wasn't an endmacro and we are not executing then we must be + // recording + this->Functions.push_back(lff); + return true; +} + + +bool cmMacroFunctionBlocker:: +ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf) +{ + if(!cmSystemTools::Strucmp(lff.Name.c_str(),"endmacro")) + { + std::vector expandedArguments; + mf.ExpandArguments(lff.Arguments, expandedArguments); + if ((!expandedArguments.empty() && + (expandedArguments[0] == this->Args[0])) + || cmSystemTools::IsOn + (mf.GetPropertyOrDefinition("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS"))) + { + return true; + } + } + + return false; +} + +void cmMacroFunctionBlocker:: +ScopeEnded(cmMakefile &mf) +{ + // macros should end with an EndMacro + cmSystemTools::Error( + "The end of a CMakeLists file was reached with a MACRO statement that " + "was not closed properly. Within the directory: ", + mf.GetCurrentDirectory(), " with macro ", + this->Args[0].c_str()); +} + +bool cmMacroCommand::InitialPass(std::vector const& args, + cmExecutionStatus &) +{ + if(args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // create a function blocker + cmMacroFunctionBlocker *f = new cmMacroFunctionBlocker(); + for(std::vector::const_iterator j = args.begin(); + j != args.end(); ++j) + { + f->Args.push_back(*j); + } + this->Makefile->AddFunctionBlocker(f); + return true; +} + diff --git a/CMakeLua/Source/cmMacroCommand.h b/CMakeLua/Source/cmMacroCommand.h new file mode 100644 index 0000000..999e26e --- /dev/null +++ b/CMakeLua/Source/cmMacroCommand.h @@ -0,0 +1,122 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMacroCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMacroCommand_h +#define cmMacroCommand_h + +#include "cmCommand.h" +#include "cmFunctionBlocker.h" + +/** \class cmMacroFunctionBlocker + * \brief subclass of function blocker + * + * + */ +class cmMacroFunctionBlocker : public cmFunctionBlocker +{ +public: + cmMacroFunctionBlocker() {this->Depth=0;} + virtual ~cmMacroFunctionBlocker() {} + virtual bool IsFunctionBlocked(const cmListFileFunction&, + cmMakefile &mf, + cmExecutionStatus &); + virtual bool ShouldRemove(const cmListFileFunction&, cmMakefile &mf); + virtual void ScopeEnded(cmMakefile &mf); + + std::vector Args; + std::vector Functions; + int Depth; +}; + +/** \class cmMacroCommand + * \brief starts an if block + * + * cmMacroCommand starts an if block + */ +class cmMacroCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmMacroCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "macro";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Start recording a macro for later invocation as a command."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " macro( [arg1 [arg2 [arg3 ...]]])\n" + " COMMAND1(ARGS ...)\n" + " COMMAND2(ARGS ...)\n" + " ...\n" + " endmacro()\n" + "Define a macro named that takes arguments named " + "arg1 arg2 arg3 (...). Commands listed after macro, " + "but before the matching endmacro, are not invoked until the macro " + "is invoked. When it is invoked, the commands recorded in the " + "macro are first modified by replacing formal parameters (${arg1}) " + "with the arguments passed, and then invoked as normal commands. In " + "addition to referencing the formal parameters you can reference " + "the values ${ARGC} which will be set to the number of arguments " + "passed into the function as well as ${ARGV0} ${ARGV1} ${ARGV2} " + "... which " + "will have the actual values of the arguments passed in. This " + "facilitates creating macros with optional arguments. Additionally " + "${ARGV} holds the list of all arguments given to the macro and " + "${ARGN} " + "holds the list of argument pass the last expected argument. " + "Note that the parameters to a macro and values such as ARGN " + "are not variables in the usual CMake sense. They are string " + "replacements much like the c preprocessor would do with a " + "macro. If you want true CMake variables you should look at " + "the function command."; + } + + cmTypeMacro(cmMacroCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmMakeDepend.cxx b/CMakeLua/Source/cmMakeDepend.cxx new file mode 100644 index 0000000..a25731f --- /dev/null +++ b/CMakeLua/Source/cmMakeDepend.cxx @@ -0,0 +1,398 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakeDepend.cxx,v $ + Language: C++ + Date: $Date: 2007/12/15 01:31:27 $ + Version: $Revision: 1.46 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMakeDepend.h" +#include "cmSystemTools.h" + +#include + +void cmDependInformation::AddDependencies(cmDependInformation* info) +{ + if(this != info) + { + this->DependencySet.insert(info); + } +} + +cmMakeDepend::cmMakeDepend() +{ + this->Verbose = false; + this->IncludeFileRegularExpression.compile("^.*$"); + this->ComplainFileRegularExpression.compile("^$"); +} + + +cmMakeDepend::~cmMakeDepend() +{ + for(DependInformationMapType::iterator i = + this->DependInformationMap.begin(); + i != this->DependInformationMap.end(); ++i) + { + delete i->second; + } +} + + +// Set the makefile that depends will be made from. +// The pointer is kept so the cmSourceFile array can +// be updated with the depend information in the cmMakefile. + +void cmMakeDepend::SetMakefile(cmMakefile* makefile) +{ + this->Makefile = makefile; + + // Now extract the include file regular expression from the makefile. + this->IncludeFileRegularExpression.compile( + this->Makefile->IncludeFileRegularExpression.c_str()); + this->ComplainFileRegularExpression.compile( + this->Makefile->ComplainFileRegularExpression.c_str()); + + // Now extract any include paths from the makefile flags + const std::vector& includes = + this->Makefile->GetIncludeDirectories(); + for(std::vector::const_iterator j = includes.begin(); + j != includes.end(); ++j) + { + std::string path = *j; + this->Makefile->ExpandVariablesInString(path); + this->AddSearchPath(path.c_str()); + } +} + + +const cmDependInformation* cmMakeDepend::FindDependencies(const char* file) +{ + cmDependInformation* info = this->GetDependInformation(file,0); + this->GenerateDependInformation(info); + return info; +} + +void cmMakeDepend::GenerateDependInformation(cmDependInformation* info) +{ + // If dependencies are already done, stop now. + if(info->DependDone) + { + return; + } + else + { + // Make sure we don't visit the same file more than once. + info->DependDone = true; + } + const char* path = info->FullPath.c_str(); + if(!path) + { + cmSystemTools::Error( + "Attempt to find dependencies for file without path!"); + return; + } + + bool found = false; + + // If the file exists, use it to find dependency information. + if(cmSystemTools::FileExists(path, true)) + { + // Use the real file to find its dependencies. + this->DependWalk(info); + found = true; + } + + + // See if the cmSourceFile for it has any files specified as + // dependency hints. + if(info->SourceFile != 0) + { + + // Get the cmSourceFile corresponding to this. + const cmSourceFile& cFile = *(info->SourceFile); + // See if there are any hints for finding dependencies for the missing + // file. + if(!cFile.GetDepends().empty()) + { + // Dependency hints have been given. Use them to begin the + // recursion. + for(std::vector::const_iterator file = + cFile.GetDepends().begin(); file != cFile.GetDepends().end(); + ++file) + { + this->AddDependency(info, file->c_str()); + } + + // Found dependency information. We are done. + found = true; + } + } + + if(!found) + { + // Try to find the file amongst the sources + cmSourceFile *srcFile = this->Makefile->GetSource + (cmSystemTools::GetFilenameWithoutExtension(path).c_str()); + if (srcFile) + { + if (srcFile->GetFullPath() == path) + { + found=true; + } + else + { + //try to guess which include path to use + for(std::vector::iterator t = + this->IncludeDirectories.begin(); + t != this->IncludeDirectories.end(); ++t) + { + std::string incpath = *t; + if (incpath.size() && incpath[incpath.size() - 1] != '/') + { + incpath = incpath + "/"; + } + incpath = incpath + path; + if (srcFile->GetFullPath() == incpath) + { + // set the path to the guessed path + info->FullPath = incpath; + found=true; + } + } + } + } + } + + if(!found) + { + // Couldn't find any dependency information. + if(this->ComplainFileRegularExpression.find(info->IncludeName.c_str())) + { + cmSystemTools::Error("error cannot find dependencies for ", path); + } + else + { + // Destroy the name of the file so that it won't be output as a + // dependency. + info->FullPath = ""; + } + } +} + +// This function actually reads the file specified and scans it for +// #include directives +void cmMakeDepend::DependWalk(cmDependInformation* info) +{ + cmsys::RegularExpression includeLine + ("^[ \t]*#[ \t]*include[ \t]*[<\"]([^\">]+)[\">]"); + std::ifstream fin(info->FullPath.c_str()); + if(!fin) + { + cmSystemTools::Error("Cannot open ", info->FullPath.c_str()); + return; + } + + // TODO: Write real read loop (see cmSystemTools::CopyFile). + std::string line; + while( cmSystemTools::GetLineFromStream(fin, line) ) + { + if(includeLine.find(line.c_str())) + { + // extract the file being included + std::string includeFile = includeLine.match(1); + // see if the include matches the regular expression + if(!this->IncludeFileRegularExpression.find(includeFile)) + { + if(this->Verbose) + { + std::string message = "Skipping "; + message += includeFile; + message += " for file "; + message += info->FullPath.c_str(); + cmSystemTools::Error(message.c_str(), 0); + } + continue; + } + + // Add this file and all its dependencies. + this->AddDependency(info, includeFile.c_str()); + } + } +} + + +void cmMakeDepend::AddDependency(cmDependInformation* info, const char* file) +{ + cmDependInformation* dependInfo = + this->GetDependInformation(file, info->PathOnly.c_str()); + this->GenerateDependInformation(dependInfo); + info->AddDependencies(dependInfo); +} + +cmDependInformation* cmMakeDepend::GetDependInformation(const char* file, + const char *extraPath) +{ + // Get the full path for the file so that lookup is unambiguous. + std::string fullPath = this->FullPath(file, extraPath); + + // Try to find the file's instance of cmDependInformation. + DependInformationMapType::const_iterator result = + this->DependInformationMap.find(fullPath); + if(result != this->DependInformationMap.end()) + { + // Found an instance, return it. + return result->second; + } + else + { + // Didn't find an instance. Create a new one and save it. + cmDependInformation* info = new cmDependInformation; + info->FullPath = fullPath; + info->PathOnly = cmSystemTools::GetFilenamePath(fullPath.c_str()); + info->IncludeName = file; + this->DependInformationMap[fullPath] = info; + return info; + } +} + + +void cmMakeDepend::GenerateMakefileDependencies() +{ + // Now create cmDependInformation objects for files in the directory + cmTargets &tgts = this->Makefile->GetTargets(); + for(cmTargets::iterator l = tgts.begin(); + l != tgts.end(); l++) + { + const std::vector &classes = l->second.GetSourceFiles(); + for(std::vector::const_iterator i = classes.begin(); + i != classes.end(); ++i) + { + if(!(*i)->GetPropertyAsBool("HEADER_FILE_ONLY")) + { + cmDependInformation* info = + this->GetDependInformation((*i)->GetFullPath().c_str(),0); + this->AddFileToSearchPath(info->FullPath.c_str()); + info->SourceFile = *i; + this->GenerateDependInformation(info); + } + } + } +} + + +// find the full path to fname by searching the this->IncludeDirectories array +std::string cmMakeDepend::FullPath(const char* fname, const char *extraPath) +{ + DirectoryToFileToPathMapType::iterator m; + if(extraPath) + { + m = this->DirectoryToFileToPathMap.find(extraPath); + } + else + { + m = this->DirectoryToFileToPathMap.find(""); + } + + if(m != this->DirectoryToFileToPathMap.end()) + { + FileToPathMapType& map = m->second; + FileToPathMapType::iterator p = map.find(fname); + if(p != map.end()) + { + return p->second; + } + } + + if(cmSystemTools::FileExists(fname, true)) + { + std::string fp = cmSystemTools::CollapseFullPath(fname); + this->DirectoryToFileToPathMap[extraPath? extraPath: ""][fname] = fp; + return fp; + } + + for(std::vector::iterator i = this->IncludeDirectories.begin(); + i != this->IncludeDirectories.end(); ++i) + { + std::string path = *i; + if (path.size() && path[path.size() - 1] != '/') + { + path = path + "/"; + } + path = path + fname; + if(cmSystemTools::FileExists(path.c_str(), true) + && !cmSystemTools::FileIsDirectory(path.c_str())) + { + std::string fp = cmSystemTools::CollapseFullPath(path.c_str()); + this->DirectoryToFileToPathMap[extraPath? extraPath: ""][fname] = fp; + return fp; + } + } + + if (extraPath) + { + std::string path = extraPath; + if (path.size() && path[path.size() - 1] != '/') + { + path = path + "/"; + } + path = path + fname; + if(cmSystemTools::FileExists(path.c_str(), true) + && !cmSystemTools::FileIsDirectory(path.c_str())) + { + std::string fp = cmSystemTools::CollapseFullPath(path.c_str()); + this->DirectoryToFileToPathMap[extraPath][fname] = fp; + return fp; + } + } + + // Couldn't find the file. + return std::string(fname); +} + +// Add a directory to the search path +void cmMakeDepend::AddSearchPath(const char* path) +{ + this->IncludeDirectories.push_back(path); +} + +// Add a directory to the search path +void cmMakeDepend::AddFileToSearchPath(const char* file) +{ + std::string filepath = file; + std::string::size_type pos = filepath.rfind('/'); + if(pos != std::string::npos) + { + std::string path = filepath.substr(0, pos); + if(std::find(this->IncludeDirectories.begin(), + this->IncludeDirectories.end(), path) + == this->IncludeDirectories.end()) + { + this->IncludeDirectories.push_back(path); + return; + } + } +} + +const cmDependInformation* +cmMakeDepend::GetDependInformationForSourceFile(const cmSourceFile &sf) const +{ + for(DependInformationMapType::const_iterator i = + this->DependInformationMap.begin(); + i != this->DependInformationMap.end(); ++i) + { + const cmDependInformation* info = i->second; + if(info->SourceFile == &sf) + { + return info; + } + } + return 0; +} diff --git a/CMakeLua/Source/cmMakeDepend.h b/CMakeLua/Source/cmMakeDepend.h new file mode 100644 index 0000000..3c99f57 --- /dev/null +++ b/CMakeLua/Source/cmMakeDepend.h @@ -0,0 +1,172 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakeDepend.h,v $ + Language: C++ + Date: $Date: 2006/05/12 16:29:09 $ + Version: $Revision: 1.24 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMakeDepend_h +#define cmMakeDepend_h + +#include "cmMakefile.h" +#include "cmSourceFile.h" + +#include + +/** \class cmDependInformation + * \brief Store dependency information for a single source file. + * + * This structure stores the depend information for a single source file. + */ +class cmDependInformation +{ +public: + /** + * Construct with dependency generation marked not done; instance + * not placed in cmMakefile's list. + */ + cmDependInformation(): DependDone(false), SourceFile(0) {} + + /** + * The set of files on which this one depends. + */ + typedef std::set DependencySetType; + DependencySetType DependencySet; + + /** + * This flag indicates whether dependency checking has been + * performed for this file. + */ + bool DependDone; + + /** + * If this object corresponds to a cmSourceFile instance, this points + * to it. + */ + const cmSourceFile *SourceFile; + + /** + * Full path to this file. + */ + std::string FullPath; + + /** + * Full path not including file name. + */ + std::string PathOnly; + + /** + * Name used to #include this file. + */ + std::string IncludeName; + + /** + * This method adds the dependencies of another file to this one. + */ + void AddDependencies(cmDependInformation*); +}; + + +// cmMakeDepend is used to generate dependancy information for +// the classes in a makefile +class cmMakeDepend +{ +public: + /** + * Construct the object with verbose turned off. + */ + cmMakeDepend(); + + /** + * Destructor. + */ + virtual ~cmMakeDepend(); + + /** + * Set the makefile that is used as a source of classes. + */ + virtual void SetMakefile(cmMakefile* makefile); + + /** + * Get the depend info struct for a source file + */ + const cmDependInformation + *GetDependInformationForSourceFile(const cmSourceFile &sf) const; + + /** + * Add a directory to the search path for include files. + */ + virtual void AddSearchPath(const char*); + + /** + * Generate dependencies for all the sources of all the targets + * in the makefile. + */ + void GenerateMakefileDependencies(); + + /** + * Generate dependencies for the file given. Returns a pointer to + * the cmDependInformation object for the file. + */ + const cmDependInformation* FindDependencies(const char* file); + +protected: + /** + * Add a source file to the search path. + */ + void AddFileToSearchPath(const char* filepath); + + /** + * Compute the depend information for this class. + */ + virtual void DependWalk(cmDependInformation* info); + + /** + * Add a dependency. Possibly walk it for more dependencies. + */ + virtual void AddDependency(cmDependInformation* info, const char* file); + + /** + * Fill in the given object with dependency information. If the + * information is already complete, nothing is done. + */ + void GenerateDependInformation(cmDependInformation* info); + + /** + * Get an instance of cmDependInformation corresponding to the given file + * name. + */ + cmDependInformation* GetDependInformation(const char* file, + const char *extraPath); + + /** + * Find the full path name for the given file name. + * This uses the include directories. + * TODO: Cache path conversions to reduce FileExists calls. + */ + std::string FullPath(const char *filename, const char *extraPath); + + cmMakefile* Makefile; + bool Verbose; + cmsys::RegularExpression IncludeFileRegularExpression; + cmsys::RegularExpression ComplainFileRegularExpression; + std::vector IncludeDirectories; + typedef std::map FileToPathMapType; + typedef std::map + DirectoryToFileToPathMapType; + typedef std::map + DependInformationMapType; + DependInformationMapType DependInformationMap; + DirectoryToFileToPathMapType DirectoryToFileToPathMap; +}; + +#endif diff --git a/CMakeLua/Source/cmMakeDirectoryCommand.cxx b/CMakeLua/Source/cmMakeDirectoryCommand.cxx new file mode 100644 index 0000000..62dfad7 --- /dev/null +++ b/CMakeLua/Source/cmMakeDirectoryCommand.cxx @@ -0,0 +1,39 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakeDirectoryCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.10 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMakeDirectoryCommand.h" + +// cmMakeDirectoryCommand +bool cmMakeDirectoryCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() != 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + if ( !this->Makefile->CanIWriteThisFile(args[0].c_str()) ) + { + std::string e = "attempted to create a directory: " + args[0] + + " into a source directory."; + this->SetError(e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + cmSystemTools::MakeDirectory(args[0].c_str()); + return true; +} + diff --git a/CMakeLua/Source/cmMakeDirectoryCommand.h b/CMakeLua/Source/cmMakeDirectoryCommand.h new file mode 100644 index 0000000..2c88d43 --- /dev/null +++ b/CMakeLua/Source/cmMakeDirectoryCommand.h @@ -0,0 +1,90 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakeDirectoryCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.13 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMakeDirectoryCommand_h +#define cmMakeDirectoryCommand_h + +#include "cmCommand.h" + +/** \class cmMakeDirectoryCommand + * \brief Specify auxiliary source code directories. + * + * cmMakeDirectoryCommand specifies source code directories + * that must be built as part of this build process. This directories + * are not recursively processed like the SUBDIR command (cmSubdirCommand). + * A side effect of this command is to create a subdirectory in the build + * directory structure. + */ +class cmMakeDirectoryCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmMakeDirectoryCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "make_directory";} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Deprecated. Use the file(MAKE_DIRECTORY ) command instead."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " make_directory(directory)\n" + "Creates the specified directory. Full paths should be given. Any " + "parent directories that do not exist will also be created. Use with " + "care."; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmMakeDirectoryCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmMakefile.cxx b/CMakeLua/Source/cmMakefile.cxx new file mode 100644 index 0000000..ebbabf0 --- /dev/null +++ b/CMakeLua/Source/cmMakefile.cxx @@ -0,0 +1,3125 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefile.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 13:37:38 $ + Version: $Revision: 1.432 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMakefile.h" +#include "cmVersion.h" +#include "cmCommand.h" +#include "cmSourceFile.h" +#include "cmSourceFileLocation.h" +#include "cmSystemTools.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmCommands.h" +#include "cmCacheManager.h" +#include "cmFunctionBlocker.h" +#include "cmListFileCache.h" +#include "cmCommandArgumentParserHelper.h" +#include "cmTest.h" +#ifdef CMAKE_BUILD_WITH_CMAKE +# include "cmVariableWatch.h" +#endif +#include "cmInstallGenerator.h" +#include "cmake.h" +#include // required for atoi + +#include + +#include + +#include // for isspace + +// default is not to be building executables +cmMakefile::cmMakefile() +{ + this->DefinitionStack.push_back(DefinitionMap()); + + // Setup the default include file regular expression (match everything). + this->IncludeFileRegularExpression = "^.*$"; + // Setup the default include complaint regular expression (match nothing). + this->ComplainFileRegularExpression = "^$"; + // Source and header file extensions that we can handle + + // Set up a list of source and header extensions + // these are used to find files when the extension + // is not given + // The "c" extension MUST precede the "C" extension. + this->SourceFileExtensions.push_back( "c" ); + this->SourceFileExtensions.push_back( "C" ); + + this->SourceFileExtensions.push_back( "c++" ); + this->SourceFileExtensions.push_back( "cc" ); + this->SourceFileExtensions.push_back( "cpp" ); + this->SourceFileExtensions.push_back( "cxx" ); + this->SourceFileExtensions.push_back( "m" ); + this->SourceFileExtensions.push_back( "M" ); + this->SourceFileExtensions.push_back( "mm" ); + + this->HeaderFileExtensions.push_back( "h" ); + this->HeaderFileExtensions.push_back( "hh" ); + this->HeaderFileExtensions.push_back( "h++" ); + this->HeaderFileExtensions.push_back( "hm" ); + this->HeaderFileExtensions.push_back( "hpp" ); + this->HeaderFileExtensions.push_back( "hxx" ); + this->HeaderFileExtensions.push_back( "in" ); + this->HeaderFileExtensions.push_back( "txx" ); + + this->DefineFlags = " "; + this->LocalGenerator = 0; + +#if defined(CMAKE_BUILD_WITH_CMAKE) + this->AddSourceGroup("", "^.*$"); + this->AddSourceGroup + ("Source Files", + "\\.(C|M|c|c\\+\\+|cc|cpp|cxx|m|mm|rc|def|r|odl|idl|hpj|bat)$"); + this->AddSourceGroup("Header Files", + "\\.(h|hh|h\\+\\+|hm|hpp|hxx|in|txx|inl)$"); + this->AddSourceGroup("CMake Rules", "\\.rule$"); + this->AddSourceGroup("Resources", "\\.plist$"); +#endif + this->AddDefaultDefinitions(); + this->Initialize(); + this->PreOrder = false; +} + +cmMakefile::cmMakefile(const cmMakefile& mf) +{ + this->Prefix = mf.Prefix; + this->AuxSourceDirectories = mf.AuxSourceDirectories; + this->cmStartDirectory = mf.cmStartDirectory; + this->StartOutputDirectory = mf.StartOutputDirectory; + this->cmHomeDirectory = mf.cmHomeDirectory; + this->HomeOutputDirectory = mf.HomeOutputDirectory; + this->cmCurrentListFile = mf.cmCurrentListFile; + this->ProjectName = mf.ProjectName; + this->Targets = mf.Targets; + this->SourceFiles = mf.SourceFiles; + this->Tests = mf.Tests; + this->IncludeDirectories = mf.IncludeDirectories; + this->LinkDirectories = mf.LinkDirectories; + this->SystemIncludeDirectories = mf.SystemIncludeDirectories; + this->ListFiles = mf.ListFiles; + this->OutputFiles = mf.OutputFiles; + this->LinkLibraries = mf.LinkLibraries; + this->InstallGenerators = mf.InstallGenerators; + this->IncludeFileRegularExpression = mf.IncludeFileRegularExpression; + this->ComplainFileRegularExpression = mf.ComplainFileRegularExpression; + this->SourceFileExtensions = mf.SourceFileExtensions; + this->HeaderFileExtensions = mf.HeaderFileExtensions; + this->DefineFlags = mf.DefineFlags; + +#if defined(CMAKE_BUILD_WITH_CMAKE) + this->SourceGroups = mf.SourceGroups; +#endif + + this->DefinitionStack.push_back(mf.DefinitionStack.back()); + this->LocalGenerator = mf.LocalGenerator; + this->FunctionBlockers = mf.FunctionBlockers; + this->DataMap = mf.DataMap; + this->MacrosMap = mf.MacrosMap; + this->SubDirectoryOrder = mf.SubDirectoryOrder; + this->TemporaryDefinitionKey = mf.TemporaryDefinitionKey; + this->Properties = mf.Properties; + this->PreOrder = mf.PreOrder; + this->ListFileStack = mf.ListFileStack; + this->Initialize(); +} + +//---------------------------------------------------------------------------- +void cmMakefile::Initialize() +{ + this->cmDefineRegex.compile("#cmakedefine[ \t]+([A-Za-z_0-9]*)"); + this->cmDefine01Regex.compile("#cmakedefine01[ \t]+([A-Za-z_0-9]*)"); + this->cmAtVarRegex.compile("(@[A-Za-z_0-9/.+-]+@)"); +} + +unsigned int cmMakefile::GetCacheMajorVersion() +{ + return this->GetCacheManager()->GetCacheMajorVersion(); +} + +unsigned int cmMakefile::GetCacheMinorVersion() +{ + return this->GetCacheManager()->GetCacheMinorVersion(); +} + +bool cmMakefile::NeedCacheCompatibility(int major, int minor) +{ + return this->GetCacheManager()->NeedCacheCompatibility(major, minor); +} + +cmMakefile::~cmMakefile() +{ + for(std::vector::iterator + i = this->InstallGenerators.begin(); + i != this->InstallGenerators.end(); ++i) + { + delete *i; + } + for(std::vector::iterator i = this->SourceFiles.begin(); + i != this->SourceFiles.end(); ++i) + { + delete *i; + } + for(std::vector::iterator i = this->Tests.begin(); + i != this->Tests.end(); ++i) + { + delete *i; + } + for(std::vector::iterator + i = this->ImportedTargetsOwned.begin(); + i != this->ImportedTargetsOwned.end(); ++i) + { + delete *i; + } + for(unsigned int i=0; i < this->UsedCommands.size(); i++) + { + delete this->UsedCommands[i]; + } + for(DataMapType::const_iterator d = this->DataMap.begin(); + d != this->DataMap.end(); ++d) + { + if(d->second) + { + delete d->second; + } + } + std::list::iterator pos; + for (pos = this->FunctionBlockers.begin(); + pos != this->FunctionBlockers.end(); ++pos) + { + cmFunctionBlocker* b = *pos; + delete b; + } + this->FunctionBlockers.clear(); +} + +void cmMakefile::PrintStringVector(const char* s, + const std::vector& v) const +{ + std::cout << s << ": ( \n"; + for(std::vector::const_iterator i = v.begin(); + i != v.end(); ++i) + { + std::cout << (*i).c_str() << " "; + } + std::cout << " )\n"; +} + +void cmMakefile +::PrintStringVector(const char* s, + const std::vector >& v) const +{ + std::cout << s << ": ( \n"; + for(std::vector >::const_iterator i + = v.begin(); i != v.end(); ++i) + { + std::cout << i->first.c_str() << " " << i->second; + } + std::cout << " )\n"; +} + + +// call print on all the classes in the makefile +void cmMakefile::Print() +{ + // print the class lists + std::cout << "classes:\n"; + + std::cout << " this->Targets: "; + for (cmTargets::iterator l = this->Targets.begin(); + l != this->Targets.end(); l++) + { + std::cout << l->first << std::endl; + } + + std::cout << " this->StartOutputDirectory; " << + this->StartOutputDirectory.c_str() << std::endl; + std::cout << " this->HomeOutputDirectory; " << + this->HomeOutputDirectory.c_str() << std::endl; + std::cout << " this->cmStartDirectory; " << + this->cmStartDirectory.c_str() << std::endl; + std::cout << " this->cmHomeDirectory; " << + this->cmHomeDirectory.c_str() << std::endl; + std::cout << " this->ProjectName; " + << this->ProjectName.c_str() << std::endl; + this->PrintStringVector("this->IncludeDirectories;", + this->IncludeDirectories); + this->PrintStringVector("this->LinkDirectories", this->LinkDirectories); +#if defined(CMAKE_BUILD_WITH_CMAKE) + for( std::vector::const_iterator i = + this->SourceGroups.begin(); i != this->SourceGroups.end(); ++i) + { + std::cout << "Source Group: " << i->GetName() << std::endl; + } +#endif +} + +bool cmMakefile::CommandExists(const char* name) const +{ + return this->GetCMakeInstance()->CommandExists(name); +} + +bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff, + cmExecutionStatus &status) +{ + bool result = true; + + // quick return if blocked + if(this->IsFunctionBlocked(lff,status)) + { + // No error. + return result; + } + + std::string name = lff.Name; + + // execute the command + cmCommand *rm = + this->GetCMakeInstance()->GetCommand(name.c_str()); + if(rm) + { + const char* versionValue + = this->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + int major = 0; + int minor = 0; + if ( versionValue ) + { + sscanf(versionValue, "%d.%d", &major, &minor); + } + if ( rm->IsDeprecated(major, minor) ) + { + cmOStringStream error; + error << "Error in cmake code at\n" + << lff.FilePath << ":" << lff.Line << ":\n" + << rm->GetError() << std::endl + << " Called from: " << this->GetListFileStack().c_str(); + cmSystemTools::Error(error.str().c_str()); + return false; + } + cmCommand* usedCommand = rm->Clone(); + usedCommand->SetMakefile(this); + bool keepCommand = false; + if(usedCommand->GetEnabled() && !cmSystemTools::GetFatalErrorOccured() && + (!this->GetCMakeInstance()->GetScriptMode() || + usedCommand->IsScriptable())) + { + if(!usedCommand->InvokeInitialPass(lff.Arguments,status)) + { + cmOStringStream error; + error << "Error in cmake code at\n" + << lff.FilePath << ":" << lff.Line << ":\n" + << usedCommand->GetError() << std::endl + << " Called from: " << this->GetListFileStack().c_str(); + cmSystemTools::Error(error.str().c_str()); + result = false; + if ( this->GetCMakeInstance()->GetScriptMode() ) + { + cmSystemTools::SetFatalErrorOccured(); + } + } + else + { + // use the command + keepCommand = true; + this->UsedCommands.push_back(usedCommand); + } + } + else if ( this->GetCMakeInstance()->GetScriptMode() + && !usedCommand->IsScriptable() ) + { + cmOStringStream error; + error << "Error in cmake code at\n" + << lff.FilePath << ":" << lff.Line << ":\n" + << "Command " << usedCommand->GetName() + << "() is not scriptable" << std::endl; + cmSystemTools::Error(error.str().c_str()); + result = false; + cmSystemTools::SetFatalErrorOccured(); + } + // if the Cloned command was not used + // then delete it + if(!keepCommand) + { + delete usedCommand; + } + } + else + { + if(!cmSystemTools::GetFatalErrorOccured()) + { + cmOStringStream error; + error << "Error in cmake code at\n" + << lff.FilePath << ":" << lff.Line << ":\n" + << "Unknown CMake command \"" << lff.Name.c_str() << "\"."; + cmSystemTools::Error(error.str().c_str()); + result = false; + cmSystemTools::SetFatalErrorOccured(); + } + } + + return result; +} + +// Parse the given CMakeLists.txt file executing all commands +// +bool cmMakefile::ReadListFile(const char* filename_in, + const char *external_in, + std::string* fullPath) +{ + std::string currentParentFile + = this->GetSafeDefinition("CMAKE_PARENT_LIST_FILE"); + std::string currentFile + = this->GetSafeDefinition("CMAKE_CURRENT_LIST_FILE"); + this->AddDefinition("CMAKE_PARENT_LIST_FILE", filename_in); + + // used to watch for blockers going out of scope + // e.g. mismatched IF statement + std::set originalBlockers; + + const char* external = 0; + std::string external_abs; + + const char* filename = filename_in; + std::string filename_abs; + + if (external_in) + { + external_abs = + cmSystemTools::CollapseFullPath(external_in, + this->cmStartDirectory.c_str()); + external = external_abs.c_str(); + if (filename_in) + { + filename_abs = + cmSystemTools::CollapseFullPath(filename_in, + this->cmStartDirectory.c_str()); + filename = filename_abs.c_str(); + } + } + + // keep track of the current file being read + if (filename) + { + if(this->cmCurrentListFile != filename) + { + this->cmCurrentListFile = filename; + } + // loop over current function blockers and record them + std::list::iterator pos; + for (pos = this->FunctionBlockers.begin(); + pos != this->FunctionBlockers.end(); ++pos) + { + originalBlockers.insert(*pos); + } + } + + // Now read the input file + const char *filenametoread= filename; + + if( external) + { + filenametoread= external; + } + + this->AddDefinition("CMAKE_CURRENT_LIST_FILE", filenametoread); + + // try to see if the list file is the top most + // list file for a project, and if it is, then it + // must have a project command. If there is not + // one, then cmake will provide one via the + // cmListFileCache class. + bool requireProjectCommand = false; + if(!external && this->cmStartDirectory == this->cmHomeDirectory) + { + if(cmSystemTools::LowerCase( + cmSystemTools::GetFilenameName(filename)) == "cmakelists.txt") + { + requireProjectCommand = true; + } + } + + // push the listfile onto the stack + this->ListFileStack.push_back(filenametoread); + if(fullPath!=0) + { + *fullPath=filenametoread; + } + cmListFile cacheFile; + if( !cacheFile.ParseFile(filenametoread, requireProjectCommand) ) + { + // pop the listfile off the stack + this->ListFileStack.pop_back(); + if(fullPath!=0) + { + *fullPath = ""; + } + this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str()); + this->AddDefinition("CMAKE_CURRENT_LIST_FILE", currentFile.c_str()); + return false; + } + // add this list file to the list of dependencies + this->ListFiles.push_back( filenametoread); + const size_t numberFunctions = cacheFile.Functions.size(); + for(size_t i =0; i < numberFunctions; ++i) + { + cmExecutionStatus status; + this->ExecuteCommand(cacheFile.Functions[i],status); + if (status.GetReturnInvoked() || + cmSystemTools::GetFatalErrorOccured() ) + { + // pop the listfile off the stack + this->ListFileStack.pop_back(); + this->AddDefinition("CMAKE_PARENT_LIST_FILE", + currentParentFile.c_str()); + this->AddDefinition("CMAKE_CURRENT_LIST_FILE", currentFile.c_str()); + return true; + } + } + + // send scope ended to and function blockers + if (filename) + { + // loop over all function blockers to see if any block this command + std::list::iterator pos; + for (pos = this->FunctionBlockers.begin(); + pos != this->FunctionBlockers.end(); ++pos) + { + // if this blocker was not in the original then send a + // scope ended message + if (originalBlockers.find(*pos) == originalBlockers.end()) + { + (*pos)->ScopeEnded(*this); + } + } + } + + this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str()); + this->AddDefinition("CMAKE_CURRENT_LIST_FILE", currentFile.c_str()); + + // pop the listfile off the stack + this->ListFileStack.pop_back(); + + return true; +} + + +void cmMakefile::AddCommand(cmCommand* wg) +{ + this->GetCMakeInstance()->AddCommand(wg); +} + +// Set the make file +void cmMakefile::SetLocalGenerator(cmLocalGenerator* lg) +{ + this->LocalGenerator = lg; +} + +void cmMakefile::FinalPass() +{ + // do all the variable expansions here + this->ExpandVariables(); + + // give all the commands a chance to do something + // after the file has been parsed before generation + for(std::vector::iterator i = this->UsedCommands.begin(); + i != this->UsedCommands.end(); ++i) + { + (*i)->FinalPass(); + } + +} + +// Generate the output file +void cmMakefile::ConfigureFinalPass() +{ + this->FinalPass(); + const char* oldValue + = this->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + if (oldValue && atof(oldValue) <= 1.2) + { + cmSystemTools::Error("You have requested backwards compatibility " + "with CMake version 1.2 or earlier. This version " + "of CMake only supports backwards compatibility " + "with CMake 1.4 or later. For compatibility with " + "1.2 or earlier please use CMake 2.0"); + } + for (cmTargets::iterator l = this->Targets.begin(); + l != this->Targets.end(); l++) + { + l->second.AnalyzeLibDependencies(*this); + } +} + +//---------------------------------------------------------------------------- +void +cmMakefile::AddCustomCommandToTarget(const char* target, + const std::vector& depends, + const cmCustomCommandLines& commandLines, + cmTarget::CustomCommandType type, + const char* comment, + const char* workingDir, + bool escapeOldStyle) +{ + // Find the target to which to add the custom command. + cmTargets::iterator ti = this->Targets.find(target); + if(ti != this->Targets.end()) + { + // Add the command to the appropriate build step for the target. + std::vector no_output; + cmCustomCommand cc(no_output, depends, commandLines, comment, workingDir); + cc.SetEscapeOldStyle(escapeOldStyle); + switch(type) + { + case cmTarget::PRE_BUILD: + ti->second.GetPreBuildCommands().push_back(cc); + break; + case cmTarget::PRE_LINK: + ti->second.GetPreLinkCommands().push_back(cc); + break; + case cmTarget::POST_BUILD: + ti->second.GetPostBuildCommands().push_back(cc); + break; + } + } +} + +//---------------------------------------------------------------------------- +void +cmMakefile::AddCustomCommandToOutput(const std::vector& outputs, + const std::vector& depends, + const char* main_dependency, + const cmCustomCommandLines& commandLines, + const char* comment, + const char* workingDir, + bool replace, + bool escapeOldStyle) +{ + // Make sure there is at least one output. + if(outputs.empty()) + { + cmSystemTools::Error("Attempt to add a custom rule with no output!"); + return; + } + + // Choose a source file on which to store the custom command. + cmSourceFile* file = 0; + if(main_dependency && main_dependency[0]) + { + // The main dependency was specified. Use it unless a different + // custom command already used it. + file = this->GetSource(main_dependency); + if(file && file->GetCustomCommand() && !replace) + { + // The main dependency already has a custom command. + if(commandLines == file->GetCustomCommand()->GetCommandLines()) + { + // The existing custom command is identical. Silently ignore + // the duplicate. + return; + } + else + { + // The existing custom command is different. We need to + // generate a rule file for this new command. + file = 0; + } + } + else + { + // The main dependency does not have a custom command or we are + // allowed to replace it. Use it to store the command. + file = this->GetOrCreateSource(main_dependency); + } + } + + // Generate a rule file if the main dependency is not available. + if(!file) + { + // Construct a rule file associated with the first output produced. + std::string outName = outputs[0]; + outName += ".rule"; + + // Check if the rule file already exists. + file = this->GetSource(outName.c_str()); + if(file && file->GetCustomCommand() && !replace) + { + // The rule file already exists. + if(commandLines != file->GetCustomCommand()->GetCommandLines()) + { + cmSystemTools::Error("Attempt to add a custom rule to output \"", + outName.c_str(), + "\" which already has a custom rule."); + } + return; + } + + // Create a cmSourceFile for the rule file. + file = this->GetOrCreateSource(outName.c_str(), true); + } + + // Always create the output sources and mark them generated. + for(std::vector::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) + { + if(cmSourceFile* out = this->GetOrCreateSource(o->c_str(), true)) + { + out->SetProperty("GENERATED", "1"); + } + } + + // Construct a complete list of dependencies. + std::vector depends2(depends); + if(main_dependency && main_dependency[0]) + { + depends2.push_back(main_dependency); + } + + // Attach the custom command to the file. + if(file) + { + cmCustomCommand* cc = + new cmCustomCommand(outputs, depends2, commandLines, + comment, workingDir); + cc->SetEscapeOldStyle(escapeOldStyle); + file->SetCustomCommand(cc); + } +} + +//---------------------------------------------------------------------------- +void +cmMakefile::AddCustomCommandToOutput(const char* output, + const std::vector& depends, + const char* main_dependency, + const cmCustomCommandLines& commandLines, + const char* comment, + const char* workingDir, + bool replace, + bool escapeOldStyle) +{ + std::vector outputs; + outputs.push_back(output); + this->AddCustomCommandToOutput(outputs, depends, main_dependency, + commandLines, comment, workingDir, + replace, escapeOldStyle); +} + +//---------------------------------------------------------------------------- +void +cmMakefile::AddCustomCommandOldStyle(const char* target, + const std::vector& outputs, + const std::vector& depends, + const char* source, + const cmCustomCommandLines& commandLines, + const char* comment) +{ + // Translate the old-style signature to one of the new-style + // signatures. + if(strcmp(source, target) == 0) + { + // In the old-style signature if the source and target were the + // same then it added a post-build rule to the target. Preserve + // this behavior. + this->AddCustomCommandToTarget(target, depends, commandLines, + cmTarget::POST_BUILD, comment, 0); + return; + } + + // Each output must get its own copy of this rule. + cmsys::RegularExpression sourceFiles("\\.(C|M|c|c\\+\\+|cc|cpp|cxx|m|mm|" + "rc|def|r|odl|idl|hpj|bat|h|h\\+\\+|" + "hm|hpp|hxx|in|txx|inl)$"); + for(std::vector::const_iterator oi = outputs.begin(); + oi != outputs.end(); ++oi) + { + // Get the name of this output. + const char* output = oi->c_str(); + + // Choose whether to use a main dependency. + if(sourceFiles.find(source)) + { + // The source looks like a real file. Use it as the main dependency. + this->AddCustomCommandToOutput(output, depends, source, + commandLines, comment, 0); + } + else + { + // The source may not be a real file. Do not use a main dependency. + const char* no_main_dependency = 0; + std::vector depends2 = depends; + depends2.push_back(source); + this->AddCustomCommandToOutput(output, depends2, no_main_dependency, + commandLines, comment, 0); + } + + // If the rule was added to the source (and not a .rule file), + // then add the source to the target to make sure the rule is + // included. + std::string sname = output; + sname += ".rule"; + if(!this->GetSource(sname.c_str())) + { + if (this->Targets.find(target) != this->Targets.end()) + { + this->Targets[target].AddSource(source); + } + else + { + cmSystemTools::Error("Attempt to add a custom rule to a target " + "that does not exist yet for target ", target); + return; + } + } + } +} + +//---------------------------------------------------------------------------- +void cmMakefile::AddUtilityCommand(const char* utilityName, + bool excludeFromAll, + const std::vector& depends, + const char* workingDirectory, + const char* command, + const char* arg1, + const char* arg2, + const char* arg3, + const char* arg4) +{ + // Construct the command line for the custom command. + cmCustomCommandLine commandLine; + commandLine.push_back(command); + if(arg1) + { + commandLine.push_back(arg1); + } + if(arg2) + { + commandLine.push_back(arg2); + } + if(arg3) + { + commandLine.push_back(arg3); + } + if(arg4) + { + commandLine.push_back(arg4); + } + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + // Call the real signature of this method. + this->AddUtilityCommand(utilityName, excludeFromAll, workingDirectory, + depends, commandLines); +} + +//---------------------------------------------------------------------------- +void cmMakefile::AddUtilityCommand(const char* utilityName, + bool excludeFromAll, + const char* workingDirectory, + const std::vector& depends, + const cmCustomCommandLines& commandLines, + bool escapeOldStyle, const char* comment) +{ + // Create a target instance for this utility. + cmTarget* target = this->AddNewTarget(cmTarget::UTILITY, utilityName); + if (excludeFromAll) + { + target->SetProperty("EXCLUDE_FROM_ALL", "TRUE"); + } + if(!comment) + { + // Use an empty comment to avoid generation of default comment. + comment = ""; + } + + // Store the custom command in the target. + std::string force = this->GetStartOutputDirectory(); + force += cmake::GetCMakeFilesDirectory(); + force += "/"; + force += utilityName; + const char* no_main_dependency = 0; + bool no_replace = false; + this->AddCustomCommandToOutput(force.c_str(), depends, + no_main_dependency, + commandLines, comment, + workingDirectory, no_replace, + escapeOldStyle); + cmSourceFile* sf = target->AddSource(force.c_str()); + + // The output is not actually created so mark it symbolic. + if(sf) + { + sf->SetProperty("SYMBOLIC", "1"); + } + else + { + cmSystemTools::Error("Could not get source file entry for ", + force.c_str()); + } +} + +void cmMakefile::AddDefineFlag(const char* flag) +{ + if (!flag) + { + return; + } + + // If this is really a definition, update COMPILE_DEFINITIONS. + if(this->ParseDefineFlag(flag, false)) + { + return; + } + + // remove any \n\r + std::string ret = flag; + std::string::size_type pos = 0; + while((pos = ret.find('\n', pos)) != std::string::npos) + { + ret[pos] = ' '; + pos++; + } + pos = 0; + while((pos = ret.find('\r', pos)) != std::string::npos) + { + ret[pos] = ' '; + pos++; + } + + this->DefineFlags += " "; + this->DefineFlags += ret; +} + + +void cmMakefile::RemoveDefineFlag(const char* flag) +{ + // Check the length of the flag to remove. + std::string::size_type len = strlen(flag); + if(len < 1) + { + return; + } + + // If this is really a definition, update COMPILE_DEFINITIONS. + if(this->ParseDefineFlag(flag, true)) + { + return; + } + + // Remove all instances of the flag that are surrounded by + // whitespace or the beginning/end of the string. + for(std::string::size_type lpos = this->DefineFlags.find(flag, 0); + lpos != std::string::npos; lpos = this->DefineFlags.find(flag, lpos)) + { + std::string::size_type rpos = lpos + len; + if((lpos <= 0 || isspace(this->DefineFlags[lpos-1])) && + (rpos >= this->DefineFlags.size() || isspace(this->DefineFlags[rpos]))) + { + this->DefineFlags.erase(lpos, len); + } + else + { + ++lpos; + } + } +} + +bool cmMakefile::ParseDefineFlag(std::string const& def, bool remove) +{ + // Create a regular expression to match valid definitions. + // Definitions with non-trivial values must not be matched because + // escaping them could break compatibility with escapes added by + // users. + static cmsys::RegularExpression + regex("^[-/]D[A-Za-z_][A-Za-z0-9_]*(=[A-Za-z0-9_.]+)?$"); + + // Make sure the definition matches. + if(!regex.find(def.c_str())) + { + return false; + } + + // VS6 IDE does not support definitions with values. + if((strcmp(this->LocalGenerator->GetGlobalGenerator()->GetName(), + "Visual Studio 6") == 0) && + (def.find("=") != def.npos)) + { + return false; + } + + // Get the definition part after the flag. + const char* define = def.c_str() + 2; + + if(remove) + { + if(const char* cdefs = this->GetProperty("COMPILE_DEFINITIONS")) + { + // Expand the list. + std::vector defs; + cmSystemTools::ExpandListArgument(cdefs, defs); + + // Recompose the list without the definition. + std::string ndefs; + const char* sep = ""; + for(std::vector::const_iterator di = defs.begin(); + di != defs.end(); ++di) + { + if(*di != define) + { + ndefs += sep; + sep = ";"; + ndefs += *di; + } + } + + // Store the new list. + this->SetProperty("COMPILE_DEFINITIONS", ndefs.c_str()); + } + } + else + { + // Append the definition to the directory property. + this->AppendProperty("COMPILE_DEFINITIONS", define); + } + + return true; +} + +void cmMakefile::AddLinkLibrary(const char* lib, + cmTarget::LinkLibraryType llt) +{ + cmTarget::LibraryID tmp; + tmp.first = lib; + tmp.second = llt; + this->LinkLibraries.push_back(tmp); +} + +void cmMakefile::AddLinkLibraryForTarget(const char *target, + const char* lib, + cmTarget::LinkLibraryType llt) +{ + cmTargets::iterator i = this->Targets.find(target); + if ( i != this->Targets.end()) + { + cmTarget* tgt = + this->GetCMakeInstance()->GetGlobalGenerator()->FindTarget(0,lib); + if(tgt) + { + bool allowModules = true; + const char* versionValue + = this->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + if (versionValue && (atof(versionValue) >= 2.4) ) + { + allowModules = false; + } + // if it is not a static or shared library then you can not link to it + if(!((tgt->GetType() == cmTarget::STATIC_LIBRARY) || + (tgt->GetType() == cmTarget::SHARED_LIBRARY) || + tgt->IsExecutableWithExports())) + { + cmOStringStream e; + e << "Attempt to add link target " << lib << " of type: " + << cmTarget::TargetTypeNames[static_cast(tgt->GetType())] + << "\nto target " << target + << ". One can only link to STATIC or SHARED libraries, or " + << "to executables with the ENABLE_EXPORTS property set."; + // in older versions of cmake linking to modules was allowed + if( tgt->GetType() == cmTarget::MODULE_LIBRARY ) + { + e << + "\nTo allow linking of modules set " + "CMAKE_BACKWARDS_COMPATIBILITY to 2.2 or lower\n"; + } + // if no modules are allowed then this is always an error + if(!allowModules || + // if we allow modules but the type is not a module then it is + // still an error + (allowModules && tgt->GetType() != cmTarget::MODULE_LIBRARY)) + { + cmSystemTools::Error(e.str().c_str()); + } + } + } + i->second.AddLinkLibrary( *this, target, lib, llt ); + } + else + { + cmOStringStream e; + e << "Attempt to add link library \"" + << lib << "\" to target \"" + << target << "\" which is not built by this project."; + cmSystemTools::Error(e.str().c_str()); + } +} + +void cmMakefile::AddLinkDirectoryForTarget(const char *target, + const char* d) +{ + cmTargets::iterator i = this->Targets.find(target); + if ( i != this->Targets.end()) + { + i->second.AddLinkDirectory( d ); + } + else + { + cmSystemTools::Error + ("Attempt to add link directories to non-existant target: ", + target, " for directory ", d); + } +} + +void cmMakefile::AddLinkLibrary(const char* lib) +{ + this->AddLinkLibrary(lib,cmTarget::GENERAL); +} + +void cmMakefile::AddLinkDirectory(const char* dir) +{ + // Don't add a link directory that is already present. Yes, this + // linear search results in n^2 behavior, but n won't be getting + // much bigger than 20. We cannot use a set because of order + // dependency of the link search path. + + if(!dir) + { + return; + } + // remove trailing slashes + if(dir[strlen(dir)-1] == '/') + { + std::string newdir = dir; + newdir = newdir.substr(0, newdir.size()-1); + if(std::find(this->LinkDirectories.begin(), + this->LinkDirectories.end(), + newdir.c_str()) == this->LinkDirectories.end()) + { + this->LinkDirectories.push_back(newdir); + } + } + else + { + if(std::find(this->LinkDirectories.begin(), + this->LinkDirectories.end(), dir) + == this->LinkDirectories.end()) + { + this->LinkDirectories.push_back(dir); + } + } +} + +void cmMakefile::InitializeFromParent() +{ + cmMakefile *parent = this->LocalGenerator->GetParent()->GetMakefile(); + + // copy the definitions + this->DefinitionStack.front() = parent->DefinitionStack.back(); + + // copy include paths + this->IncludeDirectories = parent->IncludeDirectories; + this->SystemIncludeDirectories = parent->SystemIncludeDirectories; + + // define flags + this->DefineFlags = parent->DefineFlags; + + // compile definitions property and per-config versions + { + this->SetProperty("COMPILE_DEFINITIONS", + parent->GetProperty("COMPILE_DEFINITIONS")); + std::vector configs; + if(const char* configTypes = + this->GetDefinition("CMAKE_CONFIGURATION_TYPES")) + { + cmSystemTools::ExpandListArgument(configTypes, configs); + } + else if(const char* buildType = + this->GetDefinition("CMAKE_BUILD_TYPE")) + { + configs.push_back(buildType); + } + for(std::vector::const_iterator ci = configs.begin(); + ci != configs.end(); ++ci) + { + std::string defPropName = "COMPILE_DEFINITIONS_"; + defPropName += cmSystemTools::UpperCase(*ci); + this->SetProperty(defPropName.c_str(), + parent->GetProperty(defPropName.c_str())); + } + } + + // link libraries + this->LinkLibraries = parent->LinkLibraries; + + // link directories + this->LinkDirectories = parent->LinkDirectories; + + // the initial project name + this->ProjectName = parent->ProjectName; + + // Copy include regular expressions. + this->IncludeFileRegularExpression = parent->IncludeFileRegularExpression; + this->ComplainFileRegularExpression = parent->ComplainFileRegularExpression; + + // Imported targets. + this->ImportedTargets = parent->ImportedTargets; +} + +void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2) +{ + // copy our variables from the child makefile + lg2->GetMakefile()->InitializeFromParent(); + lg2->GetMakefile()->MakeStartDirectoriesCurrent(); + if (this->GetCMakeInstance()->GetDebugOutput()) + { + std::string msg=" Entering "; + msg += lg2->GetMakefile()->GetCurrentDirectory(); + cmSystemTools::Message(msg.c_str()); + } + // finally configure the subdir + lg2->Configure(); + if (this->GetCMakeInstance()->GetDebugOutput()) + { + std::string msg=" Returning to "; + msg += this->GetCurrentDirectory(); + cmSystemTools::Message(msg.c_str()); + } +} + +void cmMakefile::AddSubDirectory(const char* sub, + bool excludeFromAll, bool preorder) +{ + // the source path must be made full if it isn't already + std::string srcPath = sub; + if (!cmSystemTools::FileIsFullPath(srcPath.c_str())) + { + srcPath = this->GetCurrentDirectory(); + srcPath += "/"; + srcPath += sub; + } + + // binary path must be made full if it isn't already + std::string binPath = sub; + if (!cmSystemTools::FileIsFullPath(binPath.c_str())) + { + binPath = this->GetCurrentOutputDirectory(); + binPath += "/"; + binPath += sub; + } + + + this->AddSubDirectory(srcPath.c_str(), binPath.c_str(), + excludeFromAll, preorder, false); +} + + +void cmMakefile::AddSubDirectory(const char* srcPath, const char *binPath, + bool excludeFromAll, bool preorder, + bool immediate) +{ + std::vector& children = + this->LocalGenerator->GetChildren(); + // has this directory already been added? If so error + unsigned int i; + for (i = 0; i < children.size(); ++i) + { + if (srcPath == children[i]->GetMakefile()->GetStartDirectory()) + { + cmSystemTools::Error + ("Attempt to add subdirectory multiple times for directory.\n", + srcPath); + return; + } + } + + // create a new local generator and set its parent + cmLocalGenerator *lg2 = + this->LocalGenerator->GetGlobalGenerator()->CreateLocalGenerator(); + lg2->SetParent(this->LocalGenerator); + this->LocalGenerator->GetGlobalGenerator()->AddLocalGenerator(lg2); + + // set the subdirs start dirs + lg2->GetMakefile()->SetStartDirectory(srcPath); + lg2->GetMakefile()->SetStartOutputDirectory(binPath); + if(excludeFromAll) + { + lg2->GetMakefile()->SetProperty("EXCLUDE_FROM_ALL", "TRUE"); + } + lg2->GetMakefile()->SetPreOrder(preorder); + + if (immediate) + { + this->ConfigureSubDirectory(lg2); + } +} + +void cmMakefile::AddIncludeDirectory(const char* inc, bool before) +{ + // if there is a newline then break it into multiple arguments + if (!inc) + { + return; + } + + // Don't add an include directory that is already present. Yes, + // this linear search results in n^2 behavior, but n won't be + // getting much bigger than 20. We cannot use a set because of + // order dependency of the include path. + std::vector::iterator i = + std::find(this->IncludeDirectories.begin(), + this->IncludeDirectories.end(), inc); + if(i == this->IncludeDirectories.end()) + { + if (before) + { + // WARNING: this *is* expensive (linear time) since it's a vector + this->IncludeDirectories.insert(this->IncludeDirectories.begin(), inc); + } + else + { + this->IncludeDirectories.push_back(inc); + } + } + else + { + if(before) + { + // if this before and already in the path then remove it + this->IncludeDirectories.erase(i); + // WARNING: this *is* expensive (linear time) since it's a vector + this->IncludeDirectories.insert(this->IncludeDirectories.begin(), inc); + } + } +} + +//---------------------------------------------------------------------------- +void cmMakefile::AddSystemIncludeDirectory(const char* dir) +{ + this->SystemIncludeDirectories.insert(dir); +} + +//---------------------------------------------------------------------------- +bool cmMakefile::IsSystemIncludeDirectory(const char* dir) +{ + return (this->SystemIncludeDirectories.find(dir) != + this->SystemIncludeDirectories.end()); +} + +void cmMakefile::AddDefinition(const char* name, const char* value) +{ + if (!value ) + { + return; + } + +#ifdef CMAKE_STRICT + if (this->GetCMakeInstance()) + { + this->GetCMakeInstance()-> + RecordPropertyAccess(name,cmProperty::VARIABLE); + } +#endif + + this->TemporaryDefinitionKey = name; + this->DefinitionStack.back()[this->TemporaryDefinitionKey] = value; + +#ifdef CMAKE_BUILD_WITH_CMAKE + cmVariableWatch* vv = this->GetVariableWatch(); + if ( vv ) + { + vv->VariableAccessed(this->TemporaryDefinitionKey, + cmVariableWatch::VARIABLE_MODIFIED_ACCESS, + value, + this); + } +#endif +} + + +void cmMakefile::AddCacheDefinition(const char* name, const char* value, + const char* doc, + cmCacheManager::CacheEntryType type) +{ + const char* val = value; + cmCacheManager::CacheIterator it = + this->GetCacheManager()->GetCacheIterator(name); + if(!it.IsAtEnd() && (it.GetType() == cmCacheManager::UNINITIALIZED) && + it.Initialized()) + { + val = it.GetValue(); + if ( type == cmCacheManager::PATH || type == cmCacheManager::FILEPATH ) + { + std::vector::size_type cc; + std::vector files; + std::string nvalue = ""; + cmSystemTools::ExpandListArgument(val, files); + for ( cc = 0; cc < files.size(); cc ++ ) + { + files[cc] = cmSystemTools::CollapseFullPath(files[cc].c_str()); + if ( cc > 0 ) + { + nvalue += ";"; + } + nvalue += files[cc]; + } + + this->GetCacheManager()->AddCacheEntry(name, nvalue.c_str(), doc, type); + val = it.GetValue(); + } + + } + this->GetCacheManager()->AddCacheEntry(name, val, doc, type); + // if there was a definition then remove it + this->DefinitionStack.back().erase( DefinitionMap::key_type(name)); +} + + +void cmMakefile::AddDefinition(const char* name, bool value) +{ + if(value) + { + this->DefinitionStack.back() + .erase( DefinitionMap::key_type(name)); + this->DefinitionStack.back() + .insert(DefinitionMap::value_type(name, "ON")); + } + else + { + this->DefinitionStack.back() + .erase( DefinitionMap::key_type(name)); + this->DefinitionStack.back() + .insert(DefinitionMap::value_type(name, "OFF")); + } +#ifdef CMAKE_BUILD_WITH_CMAKE + cmVariableWatch* vv = this->GetVariableWatch(); + if ( vv ) + { + vv->VariableAccessed(name, cmVariableWatch::VARIABLE_MODIFIED_ACCESS, + value?"ON":"OFF", this); + } +#endif +} + + +void cmMakefile::AddCacheDefinition(const char* name, + bool value, + const char* doc) +{ + bool val = value; + cmCacheManager::CacheIterator it = + this->GetCacheManager()->GetCacheIterator(name); + if(!it.IsAtEnd() && (it.GetType() == cmCacheManager::UNINITIALIZED) && + it.Initialized()) + { + val = it.GetValueAsBool(); + } + this->GetCacheManager()->AddCacheEntry(name, val, doc); + this->AddDefinition(name, val); +} + +void cmMakefile::RemoveDefinition(const char* name) +{ + this->DefinitionStack.back().erase(DefinitionMap::key_type(name)); +#ifdef CMAKE_BUILD_WITH_CMAKE + cmVariableWatch* vv = this->GetVariableWatch(); + if ( vv ) + { + vv->VariableAccessed(name, cmVariableWatch::VARIABLE_REMOVED_ACCESS, + 0, this); + } +#endif +} + +void cmMakefile::SetProjectName(const char* p) +{ + this->ProjectName = p; +} + + +void cmMakefile::AddGlobalLinkInformation(const char* name, cmTarget& target) +{ + // for these targets do not add anything + switch(target.GetType()) + { + case cmTarget::UTILITY: + case cmTarget::GLOBAL_TARGET: + return; + default:; + } + std::vector::iterator j; + for(j = this->LinkDirectories.begin(); + j != this->LinkDirectories.end(); ++j) + { + target.AddLinkDirectory(j->c_str()); + } + target.MergeLinkLibraries( *this, name, this->LinkLibraries ); +} + + +void cmMakefile::AddLibrary(const char* lname, cmTarget::TargetType type, + const std::vector &srcs, + bool excludeFromAll) +{ + // wrong type ? default to STATIC + if ( (type != cmTarget::STATIC_LIBRARY) + && (type != cmTarget::SHARED_LIBRARY) + && (type != cmTarget::MODULE_LIBRARY)) + { + type = cmTarget::STATIC_LIBRARY; + } + + cmTarget* target = this->AddNewTarget(type, lname); + // Clear its dependencies. Otherwise, dependencies might persist + // over changes in CMakeLists.txt, making the information stale and + // hence useless. + target->ClearDependencyInformation( *this, lname ); + if(excludeFromAll) + { + target->SetProperty("EXCLUDE_FROM_ALL", "TRUE"); + } + target->AddSources(srcs); + this->AddGlobalLinkInformation(lname, *target); +} + +cmTarget* cmMakefile::AddExecutable(const char *exeName, + const std::vector &srcs, + bool excludeFromAll) +{ + cmTarget* target = this->AddNewTarget(cmTarget::EXECUTABLE, exeName); + if(excludeFromAll) + { + target->SetProperty("EXCLUDE_FROM_ALL", "TRUE"); + } + target->AddSources(srcs); + this->AddGlobalLinkInformation(exeName, *target); + return target; +} + +//---------------------------------------------------------------------------- +cmTarget* +cmMakefile::AddNewTarget(cmTarget::TargetType type, const char* name) +{ + cmTargets::iterator it; + cmTarget target; + target.SetType(type, name); + target.SetMakefile(this); + it=this->Targets.insert( + cmTargets::value_type(target.GetName(), target)).first; + this->LocalGenerator->GetGlobalGenerator()->AddTarget(*it); + return &it->second; +} + +cmSourceFile *cmMakefile::GetSourceFileWithOutput(const char *cname) +{ + std::string name = cname; + std::string out; + + // look through all the source files that have custom commands + // and see if the custom command has the passed source file as an output + // keep in mind the possible .rule extension that may be tacked on + for(std::vector::const_iterator i = + this->SourceFiles.begin(); i != this->SourceFiles.end(); ++i) + { + // does this source file have a custom command? + if ((*i)->GetCustomCommand()) + { + // is the output of the custom command match the source files name + const std::vector& outputs = + (*i)->GetCustomCommand()->GetOutputs(); + for(std::vector::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) + { + out = *o; + std::string::size_type pos = out.rfind(name); + // If the output matches exactly + if (pos != out.npos && + pos == out.size() - name.size() && + (pos ==0 || out[pos-1] == '/')) + { + return *i; + } + } + } + } + + // otherwise return NULL + return 0; +} + +#if defined(CMAKE_BUILD_WITH_CMAKE) +cmSourceGroup* cmMakefile::GetSourceGroup(const std::vector&name) +{ + cmSourceGroup* sg = 0; + + // first look for source group starting with the same as the one we wants + for (std::vector::iterator sgIt = this->SourceGroups.begin(); + sgIt != this->SourceGroups.end(); ++sgIt) + + { + std::string sgName = sgIt->GetName(); + if(sgName == name[0]) + { + sg = &(*sgIt); + break; + } + } + + if(sg != 0) + { + // iterate through its children to find match source group + for(unsigned int i=1; ilookupChild(name[i].c_str()); + if(sg == 0) + { + break; + } + } + } + return sg; +} + + void cmMakefile::AddSourceGroup(const char* name, + const char* regex) +{ + if (name) + { + std::vector nameVector; + nameVector.push_back(name); + AddSourceGroup(nameVector, regex); + } +} + +void cmMakefile::AddSourceGroup(const std::vector& name, + const char* regex) +{ + cmSourceGroup* sg = 0; + std::vector currentName; + int i = 0; + const int lastElement = static_cast(name.size()-1); + for(i=lastElement; i>=0; --i) + { + currentName.assign(name.begin(), name.begin()+i+1); + sg = this->GetSourceGroup(currentName); + if(sg != 0) + { + break; + } + } + + // i now contains the index of the last found component + if(i==lastElement) + { + // group already exists, replace its regular expression + if ( regex ) + { + // We only want to set the regular expression. If there are already + // source files in the group, we don't want to remove them. + sg->SetGroupRegex(regex); + } + return; + } + else if(i==-1) + { + // group does not exists nor belong to any existing group + // add its first component + this->SourceGroups.push_back(cmSourceGroup(name[0].c_str(), regex)); + sg = this->GetSourceGroup(currentName); + i = 0; // last component found + } + + // build the whole source group path + for(++i; i<=lastElement; ++i) + { + sg->AddChild(cmSourceGroup(name[i].c_str(), 0)); + sg = sg->lookupChild(name[i].c_str()); + } + + sg->SetGroupRegex(regex); +} + +#endif + +void cmMakefile::AddExtraDirectory(const char* dir) +{ + this->AuxSourceDirectories.push_back(dir); +} + + +// expance CMAKE_BINARY_DIR and CMAKE_SOURCE_DIR in the +// include and library directories. + +void cmMakefile::ExpandVariables() +{ + // Now expand variables in the include and link strings + for(std::vector::iterator d = this->IncludeDirectories.begin(); + d != this->IncludeDirectories.end(); ++d) + { + this->ExpandVariablesInString(*d, true, true); + } + for(std::vector::iterator d = this->LinkDirectories.begin(); + d != this->LinkDirectories.end(); ++d) + { + this->ExpandVariablesInString(*d, true, true); + } + for(cmTarget::LinkLibraryVectorType::iterator l = + this->LinkLibraries.begin(); + l != this->LinkLibraries.end(); ++l) + { + this->ExpandVariablesInString(l->first, true, true); + } +} + +bool cmMakefile::IsOn(const char* name) const +{ + const char* value = this->GetDefinition(name); + return cmSystemTools::IsOn(value); +} + +bool cmMakefile::IsSet(const char* name) const +{ + const char* value = this->GetDefinition(name); + if ( !value ) + { + return false; + } + + if ( ! *value ) + { + return false; + } + + if ( cmSystemTools::IsNOTFOUND(value) ) + { + return false; + } + + return true; +} + +bool cmMakefile::CanIWriteThisFile(const char* fileName) +{ + if ( !this->IsOn("CMAKE_DISABLE_SOURCE_CHANGES") ) + { + return true; + } + // If we are doing an in-source build, than the test will always fail + if ( cmSystemTools::SameFile(this->GetHomeDirectory(), + this->GetHomeOutputDirectory()) ) + { + if ( this->IsOn("CMAKE_DISABLE_IN_SOURCE_BUILD") ) + { + return false; + } + return true; + } + + // Check if this is subdirectory of the source tree but not a + // subdirectory of a build tree + if ( cmSystemTools::IsSubDirectory(fileName, + this->GetHomeDirectory()) && + !cmSystemTools::IsSubDirectory(fileName, + this->GetHomeOutputDirectory()) ) + { + return false; + } + return true; +} + +const char* cmMakefile::GetRequiredDefinition(const char* name) const +{ + const char* ret = this->GetDefinition(name); + if(!ret) + { + cmSystemTools::Error("Error required internal CMake variable not " + "set, cmake may be not be built correctly.\n", + "Missing variable is:\n", + name); + return ""; + } + return ret; +} + +bool cmMakefile::IsDefinitionSet(const char* name) const +{ + const char* def = 0; + DefinitionMap::const_iterator pos = + this->DefinitionStack.back().find(name); + if(pos != this->DefinitionStack.back().end()) + { + def = (*pos).second.c_str(); + } + else + { + def = this->GetCacheManager()->GetCacheValue(name); + } +#ifdef CMAKE_BUILD_WITH_CMAKE + if(cmVariableWatch* vv = this->GetVariableWatch()) + { + if(!def) + { + vv->VariableAccessed + (name, cmVariableWatch::UNKNOWN_VARIABLE_DEFINED_ACCESS, + def, this); + } + } +#endif + return def?true:false; +} + +const char* cmMakefile::GetDefinition(const char* name) const +{ +#ifdef CMAKE_STRICT + if (this->GetCMakeInstance()) + { + this->GetCMakeInstance()-> + RecordPropertyAccess(name,cmProperty::VARIABLE); + } +#endif + const char* def = 0; + DefinitionMap::const_iterator pos = + this->DefinitionStack.back().find(name); + if(pos != this->DefinitionStack.back().end()) + { + def = (*pos).second.c_str(); + } + else + { + def = this->GetCacheManager()->GetCacheValue(name); + } +#ifdef CMAKE_BUILD_WITH_CMAKE + cmVariableWatch* vv = this->GetVariableWatch(); + if ( vv ) + { + if ( def ) + { + vv->VariableAccessed(name, cmVariableWatch::VARIABLE_READ_ACCESS, + def, this); + } + else + { + // are unknown access allowed + DefinitionMap::const_iterator pos2 = + this->DefinitionStack.back() + .find("CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS"); + if (pos2 != this->DefinitionStack.back().end() && + cmSystemTools::IsOn((*pos2).second.c_str())) + { + vv->VariableAccessed(name, + cmVariableWatch::ALLOWED_UNKNOWN_VARIABLE_READ_ACCESS, def, this); + } + else + { + vv->VariableAccessed(name, + cmVariableWatch::UNKNOWN_VARIABLE_READ_ACCESS, def, this); + } + } + } +#endif + return def; +} + +const char* cmMakefile::GetSafeDefinition(const char* def) const +{ + const char* ret = this->GetDefinition(def); + if(!ret) + { + return ""; + } + return ret; +} + +std::vector cmMakefile +::GetDefinitions(int cacheonly /* = 0 */) const +{ + std::map definitions; + if ( !cacheonly ) + { + DefinitionMap::const_iterator it; + for ( it = this->DefinitionStack.back().begin(); + it != this->DefinitionStack.back().end(); it ++ ) + { + definitions[it->first] = 1; + } + } + cmCacheManager::CacheIterator cit = + this->GetCacheManager()->GetCacheIterator(); + for ( cit.Begin(); !cit.IsAtEnd(); cit.Next() ) + { + definitions[cit.GetName()] = 1; + } + + std::vector res; + + std::map::iterator fit; + for ( fit = definitions.begin(); fit != definitions.end(); fit ++ ) + { + res.push_back(fit->first); + } + return res; +} + + +const char *cmMakefile::ExpandVariablesInString(std::string& source) +{ + return this->ExpandVariablesInString(source, false, false); +} + +const char *cmMakefile::ExpandVariablesInString(std::string& source, + bool escapeQuotes, + bool noEscapes, + bool atOnly, + const char* filename, + long line, + bool removeEmpty, + bool replaceAt) +{ + if ( source.empty() || source.find_first_of("$@\\") == source.npos) + { + return source.c_str(); + } + + // Special-case the @ONLY mode. + if(atOnly) + { + if(!noEscapes || !removeEmpty || !replaceAt) + { + // This case should never be called. At-only is for + // configure-file/string which always does no escapes. + abort(); + } + + // Store an original copy of the input. + std::string input = source; + + // Start with empty output. + source = ""; + + // Look for one @VAR@ at a time. + const char* in = input.c_str(); + while(this->cmAtVarRegex.find(in)) + { + // Get the range of the string to replace. + const char* first = in + this->cmAtVarRegex.start(); + const char* last = in + this->cmAtVarRegex.end(); + + // Store the unchanged part of the string now. + source.append(in, first-in); + + // Lookup the definition of VAR. + std::string var(first+1, last-first-2); + if(const char* val = this->GetDefinition(var.c_str())) + { + // Store the value in the output escaping as requested. + if(escapeQuotes) + { + source.append(cmSystemTools::EscapeQuotes(val)); + } + else + { + source.append(val); + } + } + + // Continue looking for @VAR@ further along the string. + in = last; + } + + // Append the rest of the unchanged part of the string. + source.append(in); + + return source.c_str(); + } + + // This method replaces ${VAR} and @VAR@ where VAR is looked up + // with GetDefinition(), if not found in the map, nothing is expanded. + // It also supports the $ENV{VAR} syntax where VAR is looked up in + // the current environment variables. + + cmCommandArgumentParserHelper parser; + parser.SetMakefile(this); + parser.SetLineFile(line, filename); + parser.SetEscapeQuotes(escapeQuotes); + parser.SetNoEscapeMode(noEscapes); + parser.SetReplaceAtSyntax(replaceAt); + parser.SetRemoveEmpty(removeEmpty); + int res = parser.ParseString(source.c_str(), 0); + if ( res ) + { + source = parser.GetResult(); + } + else + { + cmOStringStream error; + error << "Syntax error in cmake code at\n" + << (filename?filename:"(no filename given)") + << ":" << line << ":\n" + << parser.GetError() << ", when parsing string \"" + << source.c_str() << "\""; + const char* versionValue + = this->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + int major = 0; + int minor = 0; + if ( versionValue ) + { + sscanf(versionValue, "%d.%d", &major, &minor); + } + if ( major < 2 || major == 2 && minor < 1 ) + { + cmSystemTools::Error(error.str().c_str()); + cmSystemTools::SetFatalErrorOccured(); + return source.c_str(); + } + else + { + cmSystemTools::Message(error.str().c_str()); + } + } + return source.c_str(); +} + +void cmMakefile::RemoveVariablesInString(std::string& source, + bool atOnly) const +{ + if(!atOnly) + { + cmsys::RegularExpression var("(\\${[A-Za-z_0-9]*})"); + while (var.find(source)) + { + source.erase(var.start(),var.end() - var.start()); + } + } + + if(!atOnly) + { + cmsys::RegularExpression varb("(\\$ENV{[A-Za-z_0-9]*})"); + while (varb.find(source)) + { + source.erase(varb.start(),varb.end() - varb.start()); + } + } + cmsys::RegularExpression var2("(@[A-Za-z_0-9]*@)"); + while (var2.find(source)) + { + source.erase(var2.start(),var2.end() - var2.start()); + } +} + +/** + * Add the default definitions to the makefile. These values must not + * be dependent on anything that isn't known when this cmMakefile instance + * is constructed. + */ +void cmMakefile::AddDefaultDefinitions() +{ +/* Up to CMake 2.4 here only WIN32, UNIX and APPLE were set. + With CMake must separate between target and host platform. In most cases + the tests for WIN32, UNIX and APPLE will be for the target system, so an + additional set of variables for the host system is required -> + CMAKE_HOST_WIN32, CMAKE_HOST_UNIX, CMAKE_HOST_APPLE. + WIN32, UNIX and APPLE are now set in the platform files in + Modules/Platforms/. + To keep cmake scripts (-P) and custom language and compiler modules + working, these variables are still also set here in this place, but they + will be reset in CMakeSystemSpecificInformation.cmake before the platform + files are executed. */ +#if defined(_WIN32) || defined(__CYGWIN__) + this->AddDefinition("WIN32", "1"); + this->AddDefinition("CMAKE_HOST_WIN32", "1"); +#else + this->AddDefinition("UNIX", "1"); + this->AddDefinition("CMAKE_HOST_UNIX", "1"); +#endif + // Cygwin is more like unix so enable the unix commands +#if defined(__CYGWIN__) + this->AddDefinition("UNIX", "1"); + this->AddDefinition("CMAKE_HOST_UNIX", "1"); +#endif +#if defined(__APPLE__) + this->AddDefinition("APPLE", "1"); + this->AddDefinition("CMAKE_HOST_APPLE", "1"); +#endif + + char temp[1024]; + sprintf(temp, "%d", cmVersion::GetMinorVersion()); + this->AddDefinition("CMAKE_MINOR_VERSION", temp); + sprintf(temp, "%d", cmVersion::GetMajorVersion()); + this->AddDefinition("CMAKE_MAJOR_VERSION", temp); + sprintf(temp, "%d", cmVersion::GetPatchVersion()); + this->AddDefinition("CMAKE_PATCH_VERSION", temp); + + this->AddDefinition("CMAKE_FILES_DIRECTORY", + cmake::GetCMakeFilesDirectory()); +} + +#if defined(CMAKE_BUILD_WITH_CMAKE) +/** + * Find a source group whose regular expression matches the filename + * part of the given source name. Search backward through the list of + * source groups, and take the first matching group found. This way + * non-inherited SOURCE_GROUP commands will have precedence over + * inherited ones. + */ +cmSourceGroup& +cmMakefile::FindSourceGroup(const char* source, + std::vector &groups) +{ + // First search for a group that lists the file explicitly. + for(std::vector::reverse_iterator sg = groups.rbegin(); + sg != groups.rend(); ++sg) + { + cmSourceGroup *result = sg->MatchChildrenFiles(source); + if(result) + { + return *result; + } + } + + // Now search for a group whose regex matches the file. + for(std::vector::reverse_iterator sg = groups.rbegin(); + sg != groups.rend(); ++sg) + { + cmSourceGroup *result = sg->MatchChildrenRegex(source); + if(result) + { + return *result; + } + } + + + // Shouldn't get here, but just in case, return the default group. + return groups.front(); +} +#endif + +bool cmMakefile::IsFunctionBlocked(const cmListFileFunction& lff, + cmExecutionStatus &status) +{ + // if there are no blockers get out of here + if (this->FunctionBlockers.begin() == this->FunctionBlockers.end()) + { + return false; + } + + // loop over all function blockers to see if any block this command + // evaluate in reverse, this is critical for balanced IF statements etc + std::list::reverse_iterator pos; + for (pos = this->FunctionBlockers.rbegin(); + pos != this->FunctionBlockers.rend(); ++pos) + { + if((*pos)->IsFunctionBlocked(lff, *this, status)) + { + return true; + } + } + + return false; +} + +void cmMakefile::ExpandArguments( + std::vector const& inArgs, + std::vector& outArgs) +{ + std::vector::const_iterator i; + std::string value; + outArgs.reserve(inArgs.size()); + for(i = inArgs.begin(); i != inArgs.end(); ++i) + { + // Expand the variables in the argument. + value = i->Value; + this->ExpandVariablesInString(value, false, false, false, + i->FilePath, i->Line, + false, true); + + // If the argument is quoted, it should be one argument. + // Otherwise, it may be a list of arguments. + if(i->Quoted) + { + outArgs.push_back(value); + } + else + { + cmSystemTools::ExpandListArgument(value, outArgs); + } + } +} + +void cmMakefile::RemoveFunctionBlocker(const cmListFileFunction& lff) +{ + // loop over all function blockers to see if any block this command + std::list::reverse_iterator pos; + for (pos = this->FunctionBlockers.rbegin(); + pos != this->FunctionBlockers.rend(); ++pos) + { + if ((*pos)->ShouldRemove(lff, *this)) + { + cmFunctionBlocker* b = *pos; + this->FunctionBlockers.remove(b); + delete b; + break; + } + } + + return; +} + +void cmMakefile::SetHomeDirectory(const char* dir) +{ + this->cmHomeDirectory = dir; + cmSystemTools::ConvertToUnixSlashes(this->cmHomeDirectory); + this->AddDefinition("CMAKE_SOURCE_DIR", this->GetHomeDirectory()); + if ( !this->GetDefinition("CMAKE_CURRENT_SOURCE_DIR") ) + { + this->AddDefinition("CMAKE_CURRENT_SOURCE_DIR", this->GetHomeDirectory()); + } +} + +void cmMakefile::SetHomeOutputDirectory(const char* lib) +{ + this->HomeOutputDirectory = lib; + cmSystemTools::ConvertToUnixSlashes(this->HomeOutputDirectory); + this->AddDefinition("CMAKE_BINARY_DIR", this->GetHomeOutputDirectory()); + if ( !this->GetDefinition("CMAKE_CURRENT_BINARY_DIR") ) + { + this->AddDefinition("CMAKE_CURRENT_BINARY_DIR", + this->GetHomeOutputDirectory()); + } +} + + +/** + * Register the given cmData instance with its own name. + */ +void cmMakefile::RegisterData(cmData* data) +{ + std::string name = data->GetName(); + DataMapType::const_iterator d = this->DataMap.find(name); + if((d != this->DataMap.end()) && (d->second != 0) && (d->second != data)) + { + delete d->second; + } + this->DataMap[name] = data; +} + + +/** + * Register the given cmData instance with the given name. This can be used + * to register a NULL pointer. + */ +void cmMakefile::RegisterData(const char* name, cmData* data) +{ + DataMapType::const_iterator d = this->DataMap.find(name); + if((d != this->DataMap.end()) && (d->second != 0) && (d->second != data)) + { + delete d->second; + } + this->DataMap[name] = data; +} + + +/** + * Lookup a cmData instance previously registered with the given name. If + * the instance cannot be found, return NULL. + */ +cmData* cmMakefile::LookupData(const char* name) const +{ + DataMapType::const_iterator d = this->DataMap.find(name); + if(d != this->DataMap.end()) + { + return d->second; + } + else + { + return 0; + } +} + +//---------------------------------------------------------------------------- +cmSourceFile* cmMakefile::GetSource(const char* sourceName) +{ + cmSourceFileLocation sfl(this, sourceName); + for(std::vector::const_iterator + sfi = this->SourceFiles.begin(); + sfi != this->SourceFiles.end(); ++sfi) + { + cmSourceFile* sf = *sfi; + if(sf->Matches(sfl)) + { + return sf; + } + } + return 0; +} + +//---------------------------------------------------------------------------- +cmSourceFile* cmMakefile::GetOrCreateSource(const char* sourceName, + bool generated) +{ + if(cmSourceFile* esf = this->GetSource(sourceName)) + { + return esf; + } + else + { + cmSourceFile* sf = new cmSourceFile(this, sourceName); + if(generated) + { + sf->SetProperty("GENERATED", "1"); + } + this->SourceFiles.push_back(sf); + return sf; + } +} + +void cmMakefile::EnableLanguage(std::vector const & lang, + bool optional) +{ + this->AddDefinition("CMAKE_CFG_INTDIR", + this->LocalGenerator->GetGlobalGenerator()->GetCMakeCFGInitDirectory()); + this->LocalGenerator->GetGlobalGenerator()->EnableLanguage(lang, this, + optional); +} + +void cmMakefile::ExpandSourceListArguments( + std::vector const& arguments, + std::vector& newargs, unsigned int /* start */) +{ + // now expand the args + unsigned int i; + for(i = 0; i < arguments.size(); ++i) + { + // List expansion will have been done already. + newargs.push_back(arguments[i]); + } +} + +int cmMakefile::TryCompile(const char *srcdir, const char *bindir, + const char *projectName, const char *targetName, + const std::vector *cmakeArgs, + std::string *output) +{ + // does the binary directory exist ? If not create it... + if (!cmSystemTools::FileIsDirectory(bindir)) + { + cmSystemTools::MakeDirectory(bindir); + } + + // change to the tests directory and run cmake + // use the cmake object instead of calling cmake + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(bindir); + + // make sure the same generator is used + // use this program as the cmake to be run, it should not + // be run that way but the cmake object requires a vailid path + std::string cmakeCommand = this->GetDefinition("CMAKE_COMMAND"); + cmake cm; + cm.SetIsInTryCompile(true); + cmGlobalGenerator *gg = cm.CreateGlobalGenerator + (this->LocalGenerator->GetGlobalGenerator()->GetName()); + if (!gg) + { + cmSystemTools::Error( + "Internal CMake error, TryCompile bad GlobalGenerator"); + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + return 1; + } + cm.SetGlobalGenerator(gg); + + // do a configure + cm.SetHomeDirectory(srcdir); + cm.SetHomeOutputDirectory(bindir); + cm.SetStartDirectory(srcdir); + cm.SetStartOutputDirectory(bindir); + cm.SetCMakeCommand(cmakeCommand.c_str()); + cm.LoadCache(); + // if cmake args were provided then pass them in + if (cmakeArgs) + { + cm.SetCacheArgs(*cmakeArgs); + } + // to save time we pass the EnableLanguage info directly + gg->EnableLanguagesFromGenerator + (this->LocalGenerator->GetGlobalGenerator()); + + if (cm.Configure() != 0) + { + cmSystemTools::Error( + "Internal CMake error, TryCompile configure of cmake failed"); + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + return 1; + } + + if (cm.Generate() != 0) + { + cmSystemTools::Error( + "Internal CMake error, TryCompile generation of cmake failed"); + // return to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + return 1; + } + + // finally call the generator to actually build the resulting project + int ret = + this->LocalGenerator->GetGlobalGenerator()->TryCompile(srcdir,bindir, + projectName, + targetName, + output, + this); + + cmSystemTools::ChangeDirectory(cwd.c_str()); + return ret; +} + +cmake *cmMakefile::GetCMakeInstance() const +{ + if ( this->LocalGenerator && this->LocalGenerator->GetGlobalGenerator() ) + { + return this->LocalGenerator->GetGlobalGenerator()->GetCMakeInstance(); + } + return 0; +} + +#ifdef CMAKE_BUILD_WITH_CMAKE +cmVariableWatch *cmMakefile::GetVariableWatch() const +{ + if ( this->GetCMakeInstance() && + this->GetCMakeInstance()->GetVariableWatch() ) + { + return this->GetCMakeInstance()->GetVariableWatch(); + } + return 0; +} +#endif + +void cmMakefile::AddMacro(const char* name, const char* signature) +{ + if ( !name || !signature ) + { + return; + } + this->MacrosMap[name] = signature; +} + +void cmMakefile::GetListOfMacros(std::string& macros) +{ + StringStringMap::iterator it; + macros = ""; + int cc = 0; + for ( it = this->MacrosMap.begin(); it != this->MacrosMap.end(); ++it ) + { + if ( cc > 0 ) + { + macros += ";"; + } + macros += it->first; + cc ++; + } +} + +cmCacheManager *cmMakefile::GetCacheManager() const +{ + return this->GetCMakeInstance()->GetCacheManager(); +} + +void cmMakefile::DisplayStatus(const char* message, float s) +{ + this->GetLocalGenerator()->GetGlobalGenerator() + ->GetCMakeInstance()->UpdateProgress(message, s); +} + +std::string cmMakefile::GetModulesFile(const char* filename) +{ + std::vector modulePath; + const char* def = this->GetDefinition("CMAKE_MODULE_PATH"); + if(def) + { + cmSystemTools::ExpandListArgument(def, modulePath); + } + + // Also search in the standard modules location. + def = this->GetDefinition("CMAKE_ROOT"); + if(def) + { + std::string rootModules = def; + rootModules += "/Modules"; + modulePath.push_back(rootModules); + } + //std::string Look through the possible module directories. + for(std::vector::iterator i = modulePath.begin(); + i != modulePath.end(); ++i) + { + std::string itempl = *i; + cmSystemTools::ConvertToUnixSlashes(itempl); + itempl += "/"; + itempl += filename; + if(cmSystemTools::FileExists(itempl.c_str())) + { + return itempl; + } + } + return ""; +} + +void cmMakefile::ConfigureString(const std::string& input, + std::string& output, bool atOnly, + bool escapeQuotes) +{ + // Split input to handle one line at a time. + std::string::const_iterator lineStart = input.begin(); + while(lineStart != input.end()) + { + // Find the end of this line. + std::string::const_iterator lineEnd = lineStart; + while(lineEnd != input.end() && *lineEnd != '\n') + { + ++lineEnd; + } + + // Copy the line. + std::string line(lineStart, lineEnd); + + // Skip the newline character. + bool haveNewline = (lineEnd != input.end()); + if(haveNewline) + { + ++lineEnd; + } + + // Replace #cmakedefine instances. + if(this->cmDefineRegex.find(line)) + { + const char* def = + this->GetDefinition(this->cmDefineRegex.match(1).c_str()); + if(!cmSystemTools::IsOff(def)) + { + cmSystemTools::ReplaceString(line, "#cmakedefine", "#define"); + output += line; + } + else + { + output += "/* #undef "; + output += this->cmDefineRegex.match(1); + output += " */"; + } + } + else if(this->cmDefine01Regex.find(line)) + { + const char* def = + this->GetDefinition(this->cmDefine01Regex.match(1).c_str()); + cmSystemTools::ReplaceString(line, "#cmakedefine01", "#define"); + output += line; + if(!cmSystemTools::IsOff(def)) + { + output += " 1"; + } + else + { + output += " 0"; + } + } + else + { + output += line; + } + + if(haveNewline) + { + output += "\n"; + } + + // Move to the next line. + lineStart = lineEnd; + } + + // Perform variable replacements. + this->ExpandVariablesInString(output, escapeQuotes, true, + atOnly, 0, -1, true); +} + +int cmMakefile::ConfigureFile(const char* infile, const char* outfile, + bool copyonly, bool atOnly, bool escapeQuotes) +{ + int res = 1; + if ( !this->CanIWriteThisFile(outfile) ) + { + cmSystemTools::Error("Attempt to write file: ", + outfile, " into a source directory."); + return 0; + } + if ( !cmSystemTools::FileExists(infile) ) + { + cmSystemTools::Error("File ", infile, " does not exist."); + return 0; + } + std::string soutfile = outfile; + std::string sinfile = infile; + this->AddCMakeDependFile(infile); + cmSystemTools::ConvertToUnixSlashes(soutfile); + mode_t perm = 0; + cmSystemTools::GetPermissions(sinfile.c_str(), perm); + std::string::size_type pos = soutfile.rfind('/'); + if(pos != std::string::npos) + { + std::string path = soutfile.substr(0, pos); + cmSystemTools::MakeDirectory(path.c_str()); + } + + if(copyonly) + { + if ( !cmSystemTools::CopyFileIfDifferent(sinfile.c_str(), + soutfile.c_str())) + { + return 0; + } + } + else + { + std::string tempOutputFile = soutfile; + tempOutputFile += ".tmp"; + std::ofstream fout(tempOutputFile.c_str()); + if(!fout) + { + cmSystemTools::Error( + "Could not open file for write in copy operation ", + tempOutputFile.c_str()); + cmSystemTools::ReportLastSystemError(""); + return 0; + } + std::ifstream fin(sinfile.c_str()); + if(!fin) + { + cmSystemTools::Error("Could not open file for read in copy operation ", + sinfile.c_str()); + return 0; + } + + // now copy input to output and expand variables in the + // input file at the same time + std::string inLine; + std::string outLine; + while( cmSystemTools::GetLineFromStream(fin, inLine) ) + { + outLine = ""; + this->ConfigureString(inLine, outLine, atOnly, escapeQuotes); + fout << outLine.c_str() << "\n"; + } + // close the files before attempting to copy + fin.close(); + fout.close(); + if ( !cmSystemTools::CopyFileIfDifferent(tempOutputFile.c_str(), + soutfile.c_str()) ) + { + res = 0; + } + else + { + cmSystemTools::SetPermissions(soutfile.c_str(), perm); + } + cmSystemTools::RemoveFile(tempOutputFile.c_str()); + } + return res; +} + +void cmMakefile::AddWrittenFile(const char* file) +{ this->GetCMakeInstance()->AddWrittenFile(file); } + +bool cmMakefile::HasWrittenFile(const char* file) +{ return this->GetCMakeInstance()->HasWrittenFile(file); } + +bool cmMakefile::CheckInfiniteLoops() +{ + std::vector::iterator it; + for ( it = this->ListFiles.begin(); + it != this->ListFiles.end(); + ++ it ) + { + if ( this->HasWrittenFile(it->c_str()) ) + { + cmOStringStream str; + str << "File " << it->c_str() << + " is written by WRITE_FILE (or FILE WRITE) command and should " + "not be used as input to CMake. Please use CONFIGURE_FILE to " + "be safe. Refer to the note next to FILE WRITE command."; + cmSystemTools::Error(str.str().c_str()); + return false; + } + } + return true; +} + +void cmMakefile::SetProperty(const char* prop, const char* value) +{ + if (!prop) + { + return; + } + + // handle special props + std::string propname = prop; + if ( propname == "INCLUDE_DIRECTORIES" ) + { + std::vector varArgsExpanded; + cmSystemTools::ExpandListArgument(value, varArgsExpanded); + this->SetIncludeDirectories(varArgsExpanded); + return; + } + + if ( propname == "LINK_DIRECTORIES" ) + { + std::vector varArgsExpanded; + cmSystemTools::ExpandListArgument(value, varArgsExpanded); + this->SetLinkDirectories(varArgsExpanded); + return; + } + + if ( propname == "INCLUDE_REGULAR_EXPRESSION" ) + { + this->SetIncludeRegularExpression(value); + return; + } + + if ( propname == "ADDITIONAL_MAKE_CLEAN_FILES" ) + { + // This property is not inherrited + if ( strcmp(this->GetCurrentDirectory(), + this->GetStartDirectory()) != 0 ) + { + return; + } + } + + this->Properties.SetProperty(prop,value,cmProperty::DIRECTORY); +} + +void cmMakefile::AppendProperty(const char* prop, const char* value) +{ + if (!prop) + { + return; + } + + // handle special props + std::string propname = prop; + if ( propname == "INCLUDE_DIRECTORIES" ) + { + std::vector varArgsExpanded; + cmSystemTools::ExpandListArgument(value, varArgsExpanded); + for(std::vector::const_iterator vi = varArgsExpanded.begin(); + vi != varArgsExpanded.end(); ++vi) + { + this->AddIncludeDirectory(vi->c_str()); + } + return; + } + + if ( propname == "LINK_DIRECTORIES" ) + { + std::vector varArgsExpanded; + cmSystemTools::ExpandListArgument(value, varArgsExpanded); + for(std::vector::const_iterator vi = varArgsExpanded.begin(); + vi != varArgsExpanded.end(); ++vi) + { + this->AddLinkDirectory(vi->c_str()); + } + return; + } + + this->Properties.AppendProperty(prop,value,cmProperty::DIRECTORY); +} + +const char *cmMakefile::GetPropertyOrDefinition(const char* prop) +{ + const char *ret = this->GetProperty(prop, cmProperty::DIRECTORY); + if (!ret) + { + ret = this->GetDefinition(prop); + } + return ret; +} + +const char *cmMakefile::GetProperty(const char* prop) +{ + return this->GetProperty(prop, cmProperty::DIRECTORY); +} + +const char *cmMakefile::GetProperty(const char* prop, + cmProperty::ScopeType scope) +{ + // watch for specific properties + static std::string output; + output = ""; + if (!strcmp("PARENT_DIRECTORY",prop)) + { + output = this->LocalGenerator->GetParent() + ->GetMakefile()->GetStartDirectory(); + return output.c_str(); + } + else if (!strcmp("INCLUDE_REGULAR_EXPRESSION",prop) ) + { + output = this->GetIncludeRegularExpression(); + return output.c_str(); + } + else if (!strcmp("LISTFILE_STACK",prop)) + { + for (std::deque::iterator i = this->ListFileStack.begin(); + i != this->ListFileStack.end(); ++i) + { + if (i != this->ListFileStack.begin()) + { + output += ";"; + } + output += *i; + } + return output.c_str(); + } + else if (!strcmp("VARIABLES",prop) || !strcmp("CACHE_VARIABLES",prop)) + { + int cacheonly = 0; + if ( !strcmp("CACHE_VARIABLES",prop) ) + { + cacheonly = 1; + } + std::vector vars = this->GetDefinitions(cacheonly); + for (unsigned int cc = 0; cc < vars.size(); cc ++ ) + { + if ( cc > 0 ) + { + output += ";"; + } + output += vars[cc]; + } + return output.c_str(); + } + else if (!strcmp("MACROS",prop)) + { + this->GetListOfMacros(output); + return output.c_str(); + } + else if (!strcmp("DEFINITIONS",prop)) + { + output = this->GetDefineFlags(); + return output.c_str(); + } + else if (!strcmp("INCLUDE_DIRECTORIES",prop) ) + { + cmOStringStream str; + for (std::vector::const_iterator + it = this->GetIncludeDirectories().begin(); + it != this->GetIncludeDirectories().end(); + ++ it ) + { + if ( it != this->GetIncludeDirectories().begin()) + { + str << ";"; + } + str << it->c_str(); + } + output = str.str(); + return output.c_str(); + } + else if (!strcmp("LINK_DIRECTORIES",prop)) + { + cmOStringStream str; + for (std::vector::const_iterator + it = this->GetLinkDirectories().begin(); + it != this->GetLinkDirectories().end(); + ++ it ) + { + if ( it != this->GetLinkDirectories().begin()) + { + str << ";"; + } + str << it->c_str(); + } + output = str.str(); + return output.c_str(); + } + + bool chain = false; + const char *retVal = + this->Properties.GetPropertyValue(prop, scope, chain); + if (chain) + { + if(this->LocalGenerator->GetParent()) + { + return this->LocalGenerator->GetParent()->GetMakefile()-> + GetProperty(prop, scope); + } + return this->GetCMakeInstance()->GetProperty(prop,scope); + } + + return retVal; +} + +bool cmMakefile::GetPropertyAsBool(const char* prop) +{ + return cmSystemTools::IsOn(this->GetProperty(prop)); +} + + +cmTarget* cmMakefile::FindTarget(const char* name) +{ + cmTargets& tgts = this->GetTargets(); + + cmTargets::iterator i = tgts.find ( name ); + if ( i != tgts.end() ) + { + return &i->second; + } + + return 0; +} + +cmTest* cmMakefile::CreateTest(const char* testName) +{ + if ( !testName ) + { + return 0; + } + cmTest* test = this->GetTest(testName); + if ( test ) + { + return test; + } + test = new cmTest; + test->SetName(testName); + test->SetMakefile(this); + this->Tests.push_back(test); + return test; +} + +cmTest* cmMakefile::GetTest(const char* testName) const +{ + if ( !testName ) + { + return 0; + } + std::vector::const_iterator it; + for ( it = this->Tests.begin(); it != this->Tests.end(); ++ it ) + { + if ( strcmp((*it)->GetName(), testName) == 0 ) + { + return *it; + } + } + return 0; +} + +const std::vector *cmMakefile::GetTests() const +{ + return &this->Tests; +} + +std::vector *cmMakefile::GetTests() +{ + return &this->Tests; +} + +std::string cmMakefile::GetListFileStack() +{ + cmOStringStream tmp; + size_t depth = this->ListFileStack.size(); + if (depth > 0) + { + std::deque::iterator it = this->ListFileStack.end(); + do + { + if (depth != this->ListFileStack.size()) + { + tmp << "\n "; + } + --it; + tmp << "["; + tmp << depth; + tmp << "]\t"; + tmp << *it; + depth--; + } + while (it != this->ListFileStack.begin()); + } + return tmp.str(); +} + + +void cmMakefile::PushScope() +{ + // Get the index of the next stack entry. + std::vector::size_type index = this->DefinitionStack.size(); + + // Allocate a new stack entry. + this->DefinitionStack.push_back(DefinitionMap()); + + // Copy the previous top to the new top. + this->DefinitionStack[index] = this->DefinitionStack[index-1]; +} + +void cmMakefile::PopScope() +{ + this->DefinitionStack.pop_back(); +} + +void cmMakefile::RaiseScope(const char *var, const char *varDef) +{ + if (!var || !strlen(var)) + { + return; + } + + // multiple scopes in this directory? + if (this->DefinitionStack.size() > 1) + { + if(varDef) + { + this->DefinitionStack[this->DefinitionStack.size()-2][var] = varDef; + } + else + { + this->DefinitionStack[this->DefinitionStack.size()-2].erase(var); + } + } + // otherwise do the parent (if one exists) + else if (this->LocalGenerator->GetParent()) + { + cmMakefile *parent = this->LocalGenerator->GetParent()->GetMakefile(); + if (parent) + { + if(varDef) + { + parent->AddDefinition(var,varDef); + } + else + { + parent->RemoveDefinition(var); + } + } + } +} + + +// define properties +void cmMakefile::DefineProperties(cmake *cm) +{ + cm->DefineProperty + ("ADDITIONAL_MAKE_CLEAN_FILES", cmProperty::DIRECTORY, + "Additional files to clean during the make clean stage.", + "A list of files that will be cleaned as a part of the " + "\"make clean\" stage. "); + + cm->DefineProperty + ("CLEAN_NO_CUSTOM", cmProperty::DIRECTORY, + "Should the output of custom commands be left.", + "If this is true then the outputs of custom commands for this " + "directory will not be removed during the \"make clean\" stage. "); + + cm->DefineProperty + ("CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS", cmProperty::DIRECTORY, + "Allow loops to have non-matching closing statements.", + "If this is set then the closing statement of control " + "structures in CMake will not require an exact match to the " + "opening statement. For example IF(foo) will not require " + "ENDIF(foo) but simple ENDIF() will work.", + true); + + cm->DefineProperty + ("LISTFILE_STACK", cmProperty::DIRECTORY, + "The current stack of listfiles being processed.", + "This property is mainly useful when trying to debug errors " + "in your CMake scripts. It returns a list of what list files " + "are currently being processed, in order. So if one listfile " + "does an INCLUDE command then that is effectively pushing " + "the included listfile onto the stack."); + + cm->DefineProperty + ("TEST_INCLUDE_FILE", cmProperty::DIRECTORY, + "A cmake file that will be included when ctest is run.", + "If you specify TEST_INCLUDE_FILE, that file will be " + "included and processed when ctest is run on the directory."); + + cm->DefineProperty + ("COMPILE_DEFINITIONS", cmProperty::DIRECTORY, + "Preprocessor definitions for compiling a directory's sources.", + "The COMPILE_DEFINITIONS property may be set to a list of preprocessor " + "definitions using the syntax VAR or VAR=value. Function-style " + "definitions are not supported. CMake will automatically escape " + "the value correctly for the native build system (note that CMake " + "language syntax may require escapes to specify some values). " + "This property may be set on a per-configuration basis using the name " + "COMPILE_DEFINITIONS_ where is an upper-case name " + "(ex. \"COMPILE_DEFINITIONS_DEBUG\"). " + "This property will be initialized in each directory by its value " + "in the directory's parent.\n" + "CMake will automatically drop some definitions that " + "are not supported by the native build tool. " + "The VS6 IDE does not support definitions with values " + "(but NMake does).\n" + "Dislaimer: Most native build tools have poor support for escaping " + "certain values. CMake has work-arounds for many cases but some " + "values may just not be possible to pass correctly. If a value " + "does not seem to be escaped correctly, do not attempt to " + "work-around the problem by adding escape sequences to the value. " + "Your work-around may break in a future version of CMake that " + "has improved escape support. Instead consider defining the macro " + "in a (configured) header file. Then report the limitation."); + + cm->DefineProperty + ("COMPILE_DEFINITIONS_", cmProperty::DIRECTORY, + "Per-configuration preprocessor definitions in a directory.", + "This is the configuration-specific version of COMPILE_DEFINITIONS. " + "This property will be initialized in each directory by its value " + "in the directory's parent.\n"); + + cm->DefineProperty + ("EXCLUDE_FROM_ALL", cmProperty::DIRECTORY, + "Exclude the directory from the all target of its parent.", + "A property on a directory that indicates if its targets are excluded " + "from the default build target. If it is not, then with a Makefile " + "for example typing make will cause the targets to be built. " + "The same concept applies to the default build of other generators.", + false); +} + +//---------------------------------------------------------------------------- +cmTarget* +cmMakefile::AddImportedTarget(const char* name, cmTarget::TargetType type) +{ + // Create the target. + cmsys::auto_ptr target(new cmTarget); + target->SetType(type, name); + target->SetMakefile(this); + target->MarkAsImported(); + + // Add to the set of available imported targets. + this->ImportedTargets[name] = target.get(); + + // Transfer ownership to this cmMakefile object. + this->ImportedTargetsOwned.push_back(target.get()); + return target.release(); +} + +//---------------------------------------------------------------------------- +cmTarget* cmMakefile::FindTargetToUse(const char* name) +{ + // Look for an imported target. These take priority because they + // are more local in scope and do not have to be globally unique. + std::map::const_iterator + imported = this->ImportedTargets.find(name); + if(imported != this->ImportedTargets.end()) + { + return imported->second; + } + + // Look for a target built in this project. + return this->LocalGenerator->GetGlobalGenerator()->FindTarget(0, name); +} diff --git a/CMakeLua/Source/cmMakefile.h b/CMakeLua/Source/cmMakefile.h new file mode 100644 index 0000000..fff16ff --- /dev/null +++ b/CMakeLua/Source/cmMakefile.h @@ -0,0 +1,854 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefile.h,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:36 $ + Version: $Revision: 1.222 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMakefile_h +#define cmMakefile_h + +#include "cmCacheManager.h" +#include "cmData.h" +#include "cmExecutionStatus.h" +#include "cmListFileCache.h" +#include "cmPropertyMap.h" +#include "cmSystemTools.h" +#include "cmTarget.h" + +#if defined(CMAKE_BUILD_WITH_CMAKE) +#include "cmSourceGroup.h" +#endif + +#include + +class cmFunctionBlocker; +class cmCommand; +class cmInstallGenerator; +class cmLocalGenerator; +class cmMakeDepend; +class cmSourceFile; +class cmTest; +class cmVariableWatch; +class cmake; + +/** \class cmMakefile + * \brief Process the input CMakeLists.txt file. + * + * Process and store into memory the input CMakeLists.txt file. + * Each CMakeLists.txt file is parsed and the commands found there + * are added into the build process. + */ +class cmMakefile +{ +public: + /** + * Return the major and minor version of the cmake that + * was used to write the currently loaded cache, note + * this method will not work before the cache is loaded. + */ + unsigned int GetCacheMajorVersion(); + unsigned int GetCacheMinorVersion(); + + /** Return whether compatibility features needed for a version of + the cache or lower should be enabled. */ + bool NeedCacheCompatibility(int major, int minor); + + /** + * Construct an empty makefile. + */ + cmMakefile(); + cmMakefile(const cmMakefile& mf); + + /** + * Destructor. + */ + ~cmMakefile(); + + /** + * Read and parse a CMakeLists.txt file. + */ + bool ReadListFile(const char* listfile, + const char* external= 0, + std::string* fullPath= 0); + + /** + * Add a function blocker to this makefile + */ + void AddFunctionBlocker(cmFunctionBlocker *fb) + { this->FunctionBlockers.push_back(fb);} + void RemoveFunctionBlocker(cmFunctionBlocker *fb) + { this->FunctionBlockers.remove(fb);} + void RemoveFunctionBlocker(const cmListFileFunction& lff); + + /** + * Add file to the written file list. These file should not be in the list + * of dependencies because they cause infinite loops. + */ + void AddWrittenFile(const char* file); + bool HasWrittenFile(const char* file); + + /** + * Check if there are any infinite loops + */ + bool CheckInfiniteLoops(); + + /** + * Try running cmake and building a file. This is used for dynalically + * loaded commands, not as part of the usual build process. + */ + int TryCompile(const char *srcdir, const char *bindir, + const char *projectName, const char *targetName, + const std::vector *cmakeArgs, + std::string *output); + + /** + * Specify the makefile generator. This is platform/compiler + * dependent, although the interface is through a generic + * superclass. + */ + void SetLocalGenerator(cmLocalGenerator*); + + ///! Get the current makefile generator. + cmLocalGenerator* GetLocalGenerator() + { return this->LocalGenerator;} + + /** + * Perform FinalPass, Library dependency analysis etc before output of the + * makefile. + */ + void ConfigureFinalPass(); + + /** + * run the final pass on all commands. + */ + void FinalPass(); + + /** + * Print the object state to std::cout. + */ + void Print(); + + /** Add a custom command to the build. */ + void AddCustomCommandToTarget(const char* target, + const std::vector& depends, + const cmCustomCommandLines& commandLines, + cmTarget::CustomCommandType type, + const char* comment, const char* workingDir, + bool escapeOldStyle = true); + void AddCustomCommandToOutput(const std::vector& outputs, + const std::vector& depends, + const char* main_dependency, + const cmCustomCommandLines& commandLines, + const char* comment, const char* workingDir, + bool replace = false, + bool escapeOldStyle = true); + void AddCustomCommandToOutput(const char* output, + const std::vector& depends, + const char* main_dependency, + const cmCustomCommandLines& commandLines, + const char* comment, const char* workingDir, + bool replace = false, + bool escapeOldStyle = true); + void AddCustomCommandOldStyle(const char* target, + const std::vector& outputs, + const std::vector& depends, + const char* source, + const cmCustomCommandLines& commandLines, + const char* comment); + + /** + * Add a define flag to the build. + */ + void AddDefineFlag(const char* definition); + void RemoveDefineFlag(const char* definition); + + /** Create a new imported target with the name and type given. */ + cmTarget* AddImportedTarget(const char* name, cmTarget::TargetType type); + + cmTarget* AddNewTarget(cmTarget::TargetType type, const char* name); + + /** + * Add an executable to the build. + */ + cmTarget* AddExecutable(const char *exename, + const std::vector &srcs, + bool excludeFromAll = false); + + /** + * Add a utility to the build. A utiltity target is a command that + * is run every time the target is built. + */ + void AddUtilityCommand(const char* utilityName, bool excludeFromAll, + const std::vector& depends, + const char* workingDirectory, + const char* command, + const char* arg1=0, + const char* arg2=0, + const char* arg3=0, + const char* arg4=0); + void AddUtilityCommand(const char* utilityName, bool excludeFromAll, + const char* workingDirectory, + const std::vector& depends, + const cmCustomCommandLines& commandLines, + bool escapeOldStyle = true, + const char* comment = 0); + + /** + * Add a link library to the build. + */ + void AddLinkLibrary(const char*); + void AddLinkLibrary(const char*, cmTarget::LinkLibraryType type); + void AddLinkLibraryForTarget(const char *tgt, const char*, + cmTarget::LinkLibraryType type); + void AddLinkDirectoryForTarget(const char *tgt, const char* d); + + /** + * Add a link directory to the build. + */ + void AddLinkDirectory(const char*); + + /** + * Get the list of link directories + */ + std::vector& GetLinkDirectories() + { + return this->LinkDirectories; + } + const std::vector& GetLinkDirectories() const + { + return this->LinkDirectories; + } + void SetLinkDirectories(const std::vector& vec) + { + this->LinkDirectories = vec; + } + + /** + * Add a subdirectory to the build. + */ + void AddSubDirectory(const char*, bool excludeFromAll=false, + bool preorder = false); + void AddSubDirectory(const char* fullSrcDir,const char *fullBinDir, + bool excludeFromAll, bool preorder, + bool immediate); + + /** + * Configure a subdirectory + */ + void ConfigureSubDirectory(cmLocalGenerator *); + + /** + * Add an include directory to the build. + */ + void AddIncludeDirectory(const char*, bool before = false); + + /** + * Add a variable definition to the build. This variable + * can be used in CMake to refer to lists, directories, etc. + */ + void AddDefinition(const char* name, const char* value); + ///! Add a definition to this makefile and the global cmake cache. + void AddCacheDefinition(const char* name, const char* value, + const char* doc, + cmCacheManager::CacheEntryType type); + + /** + * Add bool variable definition to the build. + */ + void AddDefinition(const char* name, bool); + ///! Add a definition to this makefile and the global cmake cache. + void AddCacheDefinition(const char* name, bool, const char* doc); + + /** + * Remove a variable definition from the build. This is not valid + * for cache entries, and will only affect the current makefile. + */ + void RemoveDefinition(const char* name); + + /** + * Specify the name of the project for this build. + */ + void SetProjectName(const char*); + + /** + * Get the name of the project for this build. + */ + const char* GetProjectName() const + { + return this->ProjectName.c_str(); + } + + /** + * Set the name of the library. + */ + void AddLibrary(const char *libname, cmTarget::TargetType type, + const std::vector &srcs, + bool excludeFromAll = false); + +#if defined(CMAKE_BUILD_WITH_CMAKE) + /** + * Add a root source group for consideration when adding a new source. + */ + void AddSourceGroup(const char* name, const char* regex=0); + + /** + * Add a source group for consideration when adding a new source. + * name is tokenized. + */ + void AddSourceGroup(const std::vector& name, + const char* regex=0); + +#endif + + /** + * Add an auxiliary directory to the build. + */ + void AddExtraDirectory(const char* dir); + + + /** + * Add an auxiliary directory to the build. + */ + void MakeStartDirectoriesCurrent() + { + this->AddDefinition("CMAKE_CURRENT_SOURCE_DIR", + this->cmStartDirectory.c_str()); + this->AddDefinition("CMAKE_CURRENT_BINARY_DIR", + this->StartOutputDirectory.c_str()); + } + + //@{ + /** + * Set/Get the home directory (or output directory) in the project. The + * home directory is the top directory of the project. It is where + * CMakeSetup or configure was run. Remember that CMake processes + * CMakeLists files by recursing up the tree starting at the StartDirectory + * and going up until it reaches the HomeDirectory. + */ + void SetHomeDirectory(const char* dir); + const char* GetHomeDirectory() const + { + return this->cmHomeDirectory.c_str(); + } + void SetHomeOutputDirectory(const char* lib); + const char* GetHomeOutputDirectory() const + { + return this->HomeOutputDirectory.c_str(); + } + //@} + + //@{ + /** + * Set/Get the start directory (or output directory). The start directory + * is the directory of the CMakeLists.txt file that started the current + * round of processing. Remember that CMake processes CMakeLists files by + * recursing up the tree starting at the StartDirectory and going up until + * it reaches the HomeDirectory. + */ + void SetStartDirectory(const char* dir) + { + this->cmStartDirectory = dir; + cmSystemTools::ConvertToUnixSlashes(this->cmStartDirectory); + this->cmStartDirectory = + cmSystemTools::CollapseFullPath(this->cmStartDirectory.c_str()); + this->AddDefinition("CMAKE_CURRENT_SOURCE_DIR", + this->cmStartDirectory.c_str()); + } + const char* GetStartDirectory() const + { + return this->cmStartDirectory.c_str(); + } + void SetStartOutputDirectory(const char* lib) + { + this->StartOutputDirectory = lib; + cmSystemTools::ConvertToUnixSlashes(this->StartOutputDirectory); + this->StartOutputDirectory = + cmSystemTools::CollapseFullPath(this->StartOutputDirectory.c_str()); + cmSystemTools::MakeDirectory(this->StartOutputDirectory.c_str()); + this->AddDefinition("CMAKE_CURRENT_BINARY_DIR", + this->StartOutputDirectory.c_str()); + } + const char* GetStartOutputDirectory() const + { + return this->StartOutputDirectory.c_str(); + } + //@} + + const char* GetCurrentDirectory() const + { + return this->cmStartDirectory.c_str(); + } + const char* GetCurrentOutputDirectory() const + { + return this->StartOutputDirectory.c_str(); + } + + /* Get the current CMakeLists.txt file that is being processed. This + * is just used in order to be able to 'branch' from one file to a second + * transparently */ + const char* GetCurrentListFile() const + { + return this->cmCurrentListFile.c_str(); + } + + //@} + + /** + * Set a regular expression that include files must match + * in order to be considered as part of the depend information. + */ + void SetIncludeRegularExpression(const char* regex) + { + this->IncludeFileRegularExpression = regex; + } + const char* GetIncludeRegularExpression() + { + return this->IncludeFileRegularExpression.c_str(); + } + + /** + * Set a regular expression that include files that are not found + * must match in order to be considered a problem. + */ + void SetComplainRegularExpression(const char* regex) + { + this->ComplainFileRegularExpression = regex; + } + const char* GetComplainRegularExpression() + { + return this->ComplainFileRegularExpression.c_str(); + } + + /** + * Get the list of targets + */ + cmTargets &GetTargets() { return this->Targets; } + /** + * Get the list of targets, const version + */ + const cmTargets &GetTargets() const { return this->Targets; } + + cmTarget* FindTarget(const char* name); + + /** Find a target to use in place of the given name. The target + returned may be imported or built within the project. */ + cmTarget* FindTargetToUse(const char* name); + + /** + * Get a list of include directories in the build. + */ + std::vector& GetIncludeDirectories() + { + return this->IncludeDirectories; + } + const std::vector& GetIncludeDirectories() const + { + return this->IncludeDirectories; + } + void SetIncludeDirectories(const std::vector& vec) + { + this->IncludeDirectories = vec; + } + + /** + * Mark include directories as system directories. + */ + void AddSystemIncludeDirectory(const char* dir); + bool IsSystemIncludeDirectory(const char* dir); + + /** Expand out any arguements in the vector that have ; separated + * strings into multiple arguements. A new vector is created + * containing the expanded versions of all arguments in argsIn. + * This method differes from the one in cmSystemTools in that if + * the CmakeLists file is version 1.2 or earlier it will check for + * source lists being used without ${} around them + */ + void ExpandSourceListArguments(std::vector const& argsIn, + std::vector& argsOut, + unsigned int startArgumentIndex); + + /** Get a cmSourceFile pointer for a given source name, if the name is + * not found, then a null pointer is returned. + */ + cmSourceFile* GetSource(const char* sourceName); + + /** Get a cmSourceFile pointer for a given source name, if the name is + * not found, then create the source file and return it. generated + * indicates if it is a generated file, this is used in determining + * how to create the source file instance e.g. name + */ + cmSourceFile* GetOrCreateSource(const char* sourceName, + bool generated = false); + + /** + * Obtain a list of auxiliary source directories. + */ + std::vector& GetAuxSourceDirectories() + {return this->AuxSourceDirectories;} + + //@{ + /** + * Return a list of extensions associated with source and header + * files + */ + const std::vector& GetSourceExtensions() const + {return this->SourceFileExtensions;} + const std::vector& GetHeaderExtensions() const + {return this->HeaderFileExtensions;} + //@} + + /** + * Given a variable name, return its value (as a string). + * If the variable is not found in this makefile instance, the + * cache is then queried. + */ + const char* GetDefinition(const char*) const; + const char* GetSafeDefinition(const char*) const; + const char* GetRequiredDefinition(const char* name) const; + bool IsDefinitionSet(const char*) const; + /** + * Get the list of all variables in the current space. If argument + * cacheonly is specified and is greater than 0, then only cache + * variables will be listed. + */ + std::vector GetDefinitions(int cacheonly=0) const; + + /** Test a boolean cache entry to see if it is true or false, + * returns false if no entry defined. + */ + bool IsOn(const char* name) const; + bool IsSet(const char* name) const; + + /** + * Get a list of preprocessor define flags. + */ + const char* GetDefineFlags() + {return this->DefineFlags.c_str();} + + /** + * Make sure CMake can write this file + */ + bool CanIWriteThisFile(const char* fileName); + + /** + * Get the vector of used command instances. + */ + const std::vector& GetUsedCommands() const + {return this->UsedCommands;} + +#if defined(CMAKE_BUILD_WITH_CMAKE) + /** + * Get the vector source groups. + */ + const std::vector& GetSourceGroups() const + { return this->SourceGroups; } + + /** + * Get the source group + */ + cmSourceGroup* GetSourceGroup(const std::vector&name); +#endif + + /** + * Get the vector of list files on which this makefile depends + */ + const std::vector& GetListFiles() const + { return this->ListFiles; } + ///! When the file changes cmake will be re-run from the build system. + void AddCMakeDependFile(const char* file) + { this->ListFiles.push_back(file);} + + /** + * Get the list file stack as a string + */ + std::string GetListFileStack(); + + /** + * Get the vector of files created by this makefile + */ + const std::vector& GetOutputFiles() const + { return this->OutputFiles; } + void AddCMakeOutputFile(const char* file) + { this->OutputFiles.push_back(file);} + + /** + * Expand all defined variables in the string. + * Defined variables come from the this->Definitions map. + * They are expanded with ${var} where var is the + * entry in the this->Definitions map. Also @var@ is + * expanded to match autoconf style expansions. + */ + const char *ExpandVariablesInString(std::string& source); + const char *ExpandVariablesInString(std::string& source, bool escapeQuotes, + bool noEscapes, + bool atOnly = false, + const char* filename = 0, + long line = -1, + bool removeEmpty = false, + bool replaceAt = true); + + /** + * Remove any remaining variables in the string. Anything with ${var} or + * @var@ will be removed. + */ + void RemoveVariablesInString(std::string& source, + bool atOnly = false) const; + + /** + * Expand variables in the makefiles ivars such as link directories etc + */ + void ExpandVariables(); + + /** + * Replace variables and #cmakedefine lines in the given string. + * See cmConfigureFileCommand for details. + */ + void ConfigureString(const std::string& input, std::string& output, + bool atOnly, bool escapeQuotes); + + /** + * Copy file but change lines acording to ConfigureString + */ + int ConfigureFile(const char* infile, const char* outfile, + bool copyonly, bool atOnly, bool escapeQuotes); + +#if defined(CMAKE_BUILD_WITH_CMAKE) + /** + * find what source group this source is in + */ + cmSourceGroup& FindSourceGroup(const char* source, + std::vector &groups); +#endif + + void RegisterData(cmData*); + void RegisterData(const char*, cmData*); + cmData* LookupData(const char*) const; + + /** + * Execute a single CMake command. Returns true if the command + * succeeded or false if it failed. + */ + bool ExecuteCommand(const cmListFileFunction& lff, + cmExecutionStatus &status); + + /** Check if a command exists. */ + bool CommandExists(const char* name) const; + + /** + * Add a command to this cmake instance + */ + void AddCommand(cmCommand* ); + + ///! Enable support for named language, if nil then all languages are + ///enabled. + void EnableLanguage(std::vectorconst& languages, bool optional); + + /** + * Set/Get the name of the parent directories CMakeLists file + * given a current CMakeLists file name + */ + cmCacheManager *GetCacheManager() const; + + /** + * Get the variable watch. This is used to determine when certain variables + * are accessed. + */ +#ifdef CMAKE_BUILD_WITH_CMAKE + cmVariableWatch* GetVariableWatch() const; +#endif + + ///! Display progress or status message. + void DisplayStatus(const char*, float); + + /** + * Expand the given list file arguments into the full set after + * variable replacement and list expansion. + */ + void ExpandArguments(std::vector const& inArgs, + std::vector& outArgs); + /** + * Get the instance + */ + cmake *GetCMakeInstance() const; + + /** + * Get all the source files this makefile knows about + */ + const std::vector &GetSourceFiles() const + {return this->SourceFiles;} + std::vector &GetSourceFiles() {return this->SourceFiles;} + + /** + * Is there a source file that has the provided source file as an output? + * if so then return it + */ + cmSourceFile *GetSourceFileWithOutput(const char *outName); + + /** + * Add a macro to the list of macros. The arguments should be name of the + * macro and a documentation signature of it + */ + void AddMacro(const char* name, const char* signature); + + ///! Add a new cmTest to the list of tests for this makefile. + cmTest* CreateTest(const char* testName); + + /** Get a cmTest pointer for a given test name, if the name is + * not found, then a null pointer is returned. + */ + cmTest* GetTest(const char* testName) const; + const std::vector *GetTests() const; + std::vector *GetTests(); + + /** + * Get a list of macros as a ; separated string + */ + void GetListOfMacros(std::string& macros); + + /** + * Return a location of a file in cmake or custom modules directory + */ + std::string GetModulesFile(const char* name); + + ///! Set/Get a property of this directory + void SetProperty(const char *prop, const char *value); + void AppendProperty(const char *prop, const char *value); + const char *GetProperty(const char *prop); + const char *GetPropertyOrDefinition(const char *prop); + const char *GetProperty(const char *prop, cmProperty::ScopeType scope); + bool GetPropertyAsBool(const char *prop); + + // Get the properties + cmPropertyMap &GetProperties() { return this->Properties; }; + + typedef std::map DefinitionMap; + ///! Initialize a makefile from its parent + void InitializeFromParent(); + + ///! Set/Get the preorder flag + void SetPreOrder(bool p) { this->PreOrder = p; } + bool GetPreOrder() const { return this->PreOrder; } + + void AddInstallGenerator(cmInstallGenerator* g) + { if(g) this->InstallGenerators.push_back(g); } + std::vector& GetInstallGenerators() + { return this->InstallGenerators; } + + // Define the properties + static void DefineProperties(cmake *cm); + + // push and pop variable scopes + void PushScope(); + void PopScope(); + void RaiseScope(const char *var, const char *value); + +protected: + // add link libraries and directories to the target + void AddGlobalLinkInformation(const char* name, cmTarget& target); + + std::string Prefix; + std::vector AuxSourceDirectories; // + + std::string cmStartDirectory; + std::string StartOutputDirectory; + std::string cmHomeDirectory; + std::string HomeOutputDirectory; + std::string cmCurrentListFile; + + std::string ProjectName; // project name + + // libraries, classes, and executables + cmTargets Targets; + std::vector SourceFiles; + + // Tests + std::vector Tests; + + // The include and link-library paths. These may have order + // dependency, so they must be vectors (not set). + std::vector IncludeDirectories; + std::vector LinkDirectories; + + // The set of include directories that are marked as system include + // directories. + std::set SystemIncludeDirectories; + + std::vector ListFiles; // list of command files loaded + std::vector OutputFiles; // list of command files loaded + + + cmTarget::LinkLibraryVectorType LinkLibraries; + + std::vector InstallGenerators; + + std::string IncludeFileRegularExpression; + std::string ComplainFileRegularExpression; + std::vector SourceFileExtensions; + std::vector HeaderFileExtensions; + std::string DefineFlags; + +#if defined(CMAKE_BUILD_WITH_CMAKE) + std::vector SourceGroups; +#endif + + std::vector DefinitionStack; + std::vector UsedCommands; + cmLocalGenerator* LocalGenerator; + bool IsFunctionBlocked(const cmListFileFunction& lff, + cmExecutionStatus &status); + +private: + void Initialize(); + + bool ParseDefineFlag(std::string const& definition, bool remove); + + void ReadSources(std::ifstream& fin, bool t); + friend class cmMakeDepend; // make depend needs direct access + // to the Sources array + void PrintStringVector(const char* s, const + std::vector >& v) const; + void PrintStringVector(const char* s, + const std::vector& v) const; + + void AddDefaultDefinitions(); + std::list FunctionBlockers; + + typedef std::map DataMapType; + DataMapType DataMap; + + typedef std::map StringStringMap; + StringStringMap MacrosMap; + + std::map SubDirectoryOrder; + // used in AddDefinition for performance improvement + DefinitionMap::key_type TemporaryDefinitionKey; + + cmsys::RegularExpression cmDefineRegex; + cmsys::RegularExpression cmDefine01Regex; + cmsys::RegularExpression cmAtVarRegex; + + cmPropertyMap Properties; + + // should this makefile be processed before or after processing the parent + bool PreOrder; + + // stack of list files being read + std::deque ListFileStack; + + cmTarget* FindBasicTarget(const char* name); + std::vector ImportedTargetsOwned; + std::map ImportedTargets; +}; + + +#endif diff --git a/CMakeLua/Source/cmMakefileExecutableTargetGenerator.cxx b/CMakeLua/Source/cmMakefileExecutableTargetGenerator.cxx new file mode 100644 index 0000000..a447b98 --- /dev/null +++ b/CMakeLua/Source/cmMakefileExecutableTargetGenerator.cxx @@ -0,0 +1,507 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileExecutableTargetGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 02:16:49 $ + Version: $Revision: 1.41 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMakefileExecutableTargetGenerator.h" + +#include "cmGeneratedFileStream.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmSourceFile.h" +#include "cmTarget.h" +#include "cmake.h" + +//---------------------------------------------------------------------------- +cmMakefileExecutableTargetGenerator::cmMakefileExecutableTargetGenerator() +{ + this->CustomCommandDriver = OnDepends; +} + +//---------------------------------------------------------------------------- +void cmMakefileExecutableTargetGenerator::WriteRuleFiles() +{ + // create the build.make file and directory, put in the common blocks + this->CreateRuleFile(); + + // write rules used to help build object files + this->WriteCommonCodeRules(); + + // write in rules for object files and custom commands + this->WriteTargetBuildRules(); + + // write the per-target per-language flags + this->WriteTargetLanguageFlags(); + + // write the link rules + this->WriteExecutableRule(false); + if(this->Target->NeedRelinkBeforeInstall()) + { + // Write rules to link an installable version of the target. + this->WriteExecutableRule(true); + } + + // Write the requires target. + this->WriteTargetRequiresRules(); + + // Write clean target + this->WriteTargetCleanRules(); + + // Write the dependency generation rule. This must be done last so + // that multiple output pair information is available. + this->WriteTargetDependRules(); + + // close the streams + this->CloseFileStreams(); +} + + + +//---------------------------------------------------------------------------- +void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) +{ + std::vector commands; + + std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath(); + std::string objTarget; + + // Build list of dependencies. + std::vector depends; + for(std::vector::const_iterator obj = this->Objects.begin(); + obj != this->Objects.end(); ++obj) + { + objTarget = relPath; + // Handle extra content on Mac bundles + if ( this->ExtraContent.find(*obj) != this->ExtraContent.end() ) + { + objTarget = ""; + } + objTarget += *obj; + depends.push_back(objTarget); + } + + // Add dependencies on targets that must be built first. + this->AppendTargetDepends(depends); + + // Add a dependency on the rule file itself. + this->LocalGenerator->AppendRuleDepend(depends, + this->BuildFileNameFull.c_str()); + + for(std::vector::const_iterator obj = + this->ExternalObjects.begin(); + obj != this->ExternalObjects.end(); ++obj) + { + depends.push_back(*obj); + } + + // from here up is the same for exe or lib + + // Get the name of the executable to generate. + std::string targetName; + std::string targetNameReal; + std::string targetNameImport; + std::string targetNamePDB; + this->Target->GetExecutableNames + (targetName, targetNameReal, targetNameImport, targetNamePDB, + this->LocalGenerator->ConfigurationName.c_str()); + + // Construct the full path version of the names. + std::string outpath = this->Target->GetDirectory(); + outpath += "/"; +#ifdef __APPLE__ + if(this->Target->GetPropertyAsBool("MACOSX_BUNDLE")) + { + // Compute bundle directory names. + std::string macdir = outpath; + macdir += targetName; + macdir += ".app/Contents/"; + outpath = macdir; + outpath += "MacOS"; + cmSystemTools::MakeDirectory(outpath.c_str()); + outpath += "/"; + + // Make bundle directories + std::string f1 = + this->Makefile->GetModulesFile("MacOSXBundleInfo.plist.in"); + if ( f1.size() == 0 ) + { + cmSystemTools::Error("could not find Mac OSX bundle template file."); + } + + std::vector::const_iterator sourceIt; + for ( sourceIt = this->Target->GetSourceFiles().begin(); + sourceIt != this->Target->GetSourceFiles().end(); + ++ sourceIt ) + { + const char* subDir = + (*sourceIt)->GetProperty("MACOSX_PACKAGE_LOCATION"); + if ( subDir ) + { + std::string newDir = macdir; + newDir += subDir; + if ( !cmSystemTools::MakeDirectory(newDir.c_str()) ) + { + cmSystemTools::Error("Cannot create a subdirectory for \"", + newDir.c_str(), "\"."); + return; + } + } + } + + // Configure the Info.plist file. Note that it needs the executable name + // to be set. + std::string f2 = macdir + "Info.plist"; + this->Makefile->AddDefinition("MACOSX_BUNDLE_EXECUTABLE_NAME", + targetName.c_str()); + this->Makefile->ConfigureFile(f1.c_str(), f2.c_str(), + false, false, false); + } +#endif + std::string outpathImp; + if(relink) + { + outpath = this->Makefile->GetStartOutputDirectory(); + outpath += cmake::GetCMakeFilesDirectory(); + outpath += "/CMakeRelink.dir"; + cmSystemTools::MakeDirectory(outpath.c_str()); + outpath += "/"; + if(!targetNameImport.empty()) + { + outpathImp = outpath; + } + } + else + { + if(!targetNameImport.empty()) + { + outpathImp = this->Target->GetDirectory(0, true); + outpathImp += "/"; + } + } + std::string targetFullPath = outpath + targetName; + std::string targetFullPathReal = outpath + targetNameReal; + std::string targetFullPathPDB = outpath + targetNamePDB; + std::string targetFullPathImport = outpathImp + targetNameImport; + std::string targetOutPathPDB = + this->Convert(targetFullPathPDB.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + // Convert to the output path to use in constructing commands. + std::string targetOutPath = + this->Convert(targetFullPath.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + std::string targetOutPathReal = + this->Convert(targetFullPathReal.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + std::string targetOutPathImport = + this->Convert(targetFullPathImport.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + + // Get the language to use for linking this executable. + const char* linkLanguage = + this->Target->GetLinkerLanguage(this->GlobalGenerator); + + // Make sure we have a link language. + if(!linkLanguage) + { + cmSystemTools::Error("Cannot determine link language for target \"", + this->Target->GetName(), "\"."); + return; + } + + // Add the link message. + std::string buildEcho = "Linking "; + buildEcho += linkLanguage; + buildEcho += " executable "; + buildEcho += targetOutPath; + this->LocalGenerator->AppendEcho(commands, buildEcho.c_str(), + cmLocalUnixMakefileGenerator3::EchoLink); + + // Build a list of compiler flags and linker flags. + std::string flags; + std::string linkFlags; + + // Add flags to deal with shared libraries. Any library being + // linked in might be shared, so always use shared flags for an + // executable. + this->LocalGenerator->AddSharedFlags(linkFlags, linkLanguage, true); + + // Add flags to create an executable. + this->LocalGenerator-> + AddConfigVariableFlags(linkFlags, "CMAKE_EXE_LINKER_FLAGS", + this->LocalGenerator->ConfigurationName.c_str()); + + + if(this->Target->GetPropertyAsBool("WIN32_EXECUTABLE")) + { + this->LocalGenerator->AppendFlags + (linkFlags, this->Makefile->GetDefinition("CMAKE_CREATE_WIN32_EXE")); + } + else + { + this->LocalGenerator->AppendFlags + (linkFlags, this->Makefile->GetDefinition("CMAKE_CREATE_CONSOLE_EXE")); + } + + // Add symbol export flags if necessary. + if(this->Target->IsExecutableWithExports()) + { + std::string export_flag_var = "CMAKE_EXE_EXPORTS_"; + export_flag_var += linkLanguage; + export_flag_var += "_FLAG"; + this->LocalGenerator->AppendFlags + (linkFlags, this->Makefile->GetDefinition(export_flag_var.c_str())); + } + + // Add language-specific flags. + this->LocalGenerator + ->AddLanguageFlags(flags, linkLanguage, + this->LocalGenerator->ConfigurationName.c_str()); + + // Add target-specific linker flags. + this->LocalGenerator->AppendFlags + (linkFlags, this->Target->GetProperty("LINK_FLAGS")); + std::string linkFlagsConfig = "LINK_FLAGS_"; + linkFlagsConfig += + cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str()); + this->LocalGenerator->AppendFlags + (linkFlags, this->Target->GetProperty(linkFlagsConfig.c_str())); + + // Construct a list of files associated with this executable that + // may need to be cleaned. + std::vector exeCleanFiles; + { + std::string cleanName; + std::string cleanRealName; + std::string cleanImportName; + std::string cleanPDBName; + this->Target->GetExecutableCleanNames + (cleanName, cleanRealName, cleanImportName, cleanPDBName, + this->LocalGenerator->ConfigurationName.c_str()); + + std::string cleanFullName = outpath + cleanName; + std::string cleanFullRealName = outpath + cleanRealName; + std::string cleanFullPDBName = outpath + cleanPDBName; + std::string cleanFullImportName = outpathImp + cleanImportName; + exeCleanFiles.push_back(this->Convert(cleanFullName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); +#ifdef _WIN32 + // There may be a manifest file for this target. Add it to the + // clean set just in case. + exeCleanFiles.push_back(this->Convert((cleanFullName+".manifest").c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); +#endif + if(cleanRealName != cleanName) + { + exeCleanFiles.push_back(this->Convert(cleanFullRealName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + if(!cleanImportName.empty()) + { + exeCleanFiles.push_back(this->Convert(cleanFullImportName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + + // List the PDB for cleaning only when the whole target is + // cleaned. We do not want to delete the .pdb file just before + // linking the target. + this->CleanFiles.push_back + (this->Convert(cleanFullPDBName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + + // Add the pre-build and pre-link rules building but not when relinking. + if(!relink) + { + this->LocalGenerator + ->AppendCustomCommands(commands, this->Target->GetPreBuildCommands()); + this->LocalGenerator + ->AppendCustomCommands(commands, this->Target->GetPreLinkCommands()); + } + + // Determine whether a link script will be used. + bool useLinkScript = this->GlobalGenerator->GetUseLinkScript(); + + // Construct the main link rule. + std::vector real_link_commands; + std::string linkRuleVar = "CMAKE_"; + linkRuleVar += linkLanguage; + linkRuleVar += "_LINK_EXECUTABLE"; + std::string linkRule = + this->Makefile->GetRequiredDefinition(linkRuleVar.c_str()); + std::vector commands1; + cmSystemTools::ExpandListArgument(linkRule, real_link_commands); + if(this->Target->IsExecutableWithExports()) + { + // If a separate rule for creating an import library is specified + // add it now. + std::string implibRuleVar = "CMAKE_"; + implibRuleVar += linkLanguage; + implibRuleVar += "_CREATE_IMPORT_LIBRARY"; + if(const char* rule = + this->Makefile->GetDefinition(implibRuleVar.c_str())) + { + cmSystemTools::ExpandListArgument(rule, real_link_commands); + } + } + + // Expand the rule variables. + { + // Set path conversion for link script shells. + this->LocalGenerator->SetLinkScriptShell(useLinkScript); + + // Collect up flags to link in needed libraries. + cmOStringStream linklibs; + this->LocalGenerator->OutputLinkLibraries(linklibs, *this->Target, relink); + + // Construct object file lists that may be needed to expand the + // rule. + std::string variableName; + std::string variableNameExternal; + this->WriteObjectsVariable(variableName, variableNameExternal); + std::string buildObjs; + if(useLinkScript) + { + this->WriteObjectsString(buildObjs); + } + else + { + buildObjs = "$("; + buildObjs += variableName; + buildObjs += ") $("; + buildObjs += variableNameExternal; + buildObjs += ")"; + } + std::string cleanObjs = "$("; + cleanObjs += variableName; + cleanObjs += ")"; + + cmLocalGenerator::RuleVariables vars; + vars.Language = linkLanguage; + vars.Objects = buildObjs.c_str(); + vars.Target = targetOutPathReal.c_str(); + vars.TargetPDB = targetOutPathPDB.c_str(); + + // Setup the target version. + std::string targetVersionMajor; + std::string targetVersionMinor; + { + cmOStringStream majorStream; + cmOStringStream minorStream; + int major; + int minor; + this->Target->GetTargetVersion(major, minor); + majorStream << major; + minorStream << minor; + targetVersionMajor = majorStream.str(); + targetVersionMinor = minorStream.str(); + } + vars.TargetVersionMajor = targetVersionMajor.c_str(); + vars.TargetVersionMinor = targetVersionMinor.c_str(); + + std::string linkString = linklibs.str(); + vars.LinkLibraries = linkString.c_str(); + vars.Flags = flags.c_str(); + vars.LinkFlags = linkFlags.c_str(); + // Expand placeholders in the commands. + this->LocalGenerator->TargetImplib = targetOutPathImport; + for(std::vector::iterator i = real_link_commands.begin(); + i != real_link_commands.end(); ++i) + { + this->LocalGenerator->ExpandRuleVariables(*i, vars); + } + this->LocalGenerator->TargetImplib = ""; + + // Restore path conversion to normal shells. + this->LocalGenerator->SetLinkScriptShell(false); + } + + // Optionally convert the build rule to use a script to avoid long + // command lines in the make shell. + if(useLinkScript) + { + // Use a link script. + const char* name = (relink? "relink.txt" : "link.txt"); + this->CreateLinkScript(name, real_link_commands, commands1); + } + else + { + // No link script. Just use the link rule directly. + commands1 = real_link_commands; + } + this->LocalGenerator->CreateCDCommand + (commands1, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), commands1.begin(), commands1.end()); + commands1.clear(); + + // Add a rule to create necessary symlinks for the library. + if(targetOutPath != targetOutPathReal) + { + std::string symlink = "$(CMAKE_COMMAND) -E cmake_symlink_executable "; + symlink += targetOutPathReal; + symlink += " "; + symlink += targetOutPath; + commands1.push_back(symlink); + this->LocalGenerator->CreateCDCommand(commands1, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), commands1.begin(), commands1.end()); + commands1.clear(); + } + + // Add the post-build rules when building but not when relinking. + if(!relink) + { + this->LocalGenerator-> + AppendCustomCommands(commands, this->Target->GetPostBuildCommands()); + } + + // Write the build rule. + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, + 0, + targetFullPathReal.c_str(), + depends, commands, false); + + // The symlink name for the target should depend on the real target + // so if the target version changes it rebuilds and recreates the + // symlink. + if(targetFullPath != targetFullPathReal) + { + depends.clear(); + commands.clear(); + depends.push_back(targetFullPathReal.c_str()); + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + targetFullPath.c_str(), + depends, commands, false); + } + + // Write the main driver rule to build everything in this target. + this->WriteTargetDriverRule(targetFullPath.c_str(), relink); + + // Clean all the possible executable names and symlinks. + this->CleanFiles.insert(this->CleanFiles.end(), + exeCleanFiles.begin(), + exeCleanFiles.end()); +} diff --git a/CMakeLua/Source/cmMakefileExecutableTargetGenerator.h b/CMakeLua/Source/cmMakefileExecutableTargetGenerator.h new file mode 100644 index 0000000..44244aa --- /dev/null +++ b/CMakeLua/Source/cmMakefileExecutableTargetGenerator.h @@ -0,0 +1,36 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileExecutableTargetGenerator.h,v $ + Language: C++ + Date: $Date: 2006/09/28 20:40:35 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMakefileExecutableTargetGenerator_h +#define cmMakefileExecutableTargetGenerator_h + +#include "cmMakefileTargetGenerator.h" + +class cmMakefileExecutableTargetGenerator: public cmMakefileTargetGenerator +{ +public: + cmMakefileExecutableTargetGenerator(); + + /* the main entry point for this class. Writes the Makefiles associated + with this target */ + virtual void WriteRuleFiles(); + +protected: + virtual void WriteExecutableRule(bool relink); + +}; + +#endif diff --git a/CMakeLua/Source/cmMakefileLibraryTargetGenerator.cxx b/CMakeLua/Source/cmMakefileLibraryTargetGenerator.cxx new file mode 100644 index 0000000..6984bd6 --- /dev/null +++ b/CMakeLua/Source/cmMakefileLibraryTargetGenerator.cxx @@ -0,0 +1,951 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileLibraryTargetGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 02:16:49 $ + Version: $Revision: 1.53 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMakefileLibraryTargetGenerator.h" + +#include "cmGeneratedFileStream.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmSourceFile.h" +#include "cmTarget.h" +#include "cmake.h" + +#include // auto_ptr + +//---------------------------------------------------------------------------- +cmMakefileLibraryTargetGenerator::cmMakefileLibraryTargetGenerator() +{ + this->CustomCommandDriver = OnDepends; +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::WriteRuleFiles() +{ + // create the build.make file and directory, put in the common blocks + this->CreateRuleFile(); + + // write rules used to help build object files + this->WriteCommonCodeRules(); + + // write in rules for object files and custom commands + this->WriteTargetBuildRules(); + + // write the per-target per-language flags + this->WriteTargetLanguageFlags(); + + // write the link rules + // Write the rule for this target type. + switch(this->Target->GetType()) + { + case cmTarget::STATIC_LIBRARY: + this->WriteStaticLibraryRules(); + break; + case cmTarget::SHARED_LIBRARY: + this->WriteSharedLibraryRules(false); + if(this->Target->NeedRelinkBeforeInstall()) + { + // Write rules to link an installable version of the target. + this->WriteSharedLibraryRules(true); + } + break; + case cmTarget::MODULE_LIBRARY: + this->WriteModuleLibraryRules(false); + if(this->Target->NeedRelinkBeforeInstall()) + { + // Write rules to link an installable version of the target. + this->WriteModuleLibraryRules(true); + } + break; + default: + // If language is not known, this is an error. + cmSystemTools::Error("Unknown Library Type"); + break; + } + + // Write the requires target. + this->WriteTargetRequiresRules(); + + // Write clean target + this->WriteTargetCleanRules(); + + // Write the dependency generation rule. This must be done last so + // that multiple output pair information is available. + this->WriteTargetDependRules(); + + // close the streams + this->CloseFileStreams(); +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules() +{ + const char* linkLanguage = + this->Target->GetLinkerLanguage(this->GlobalGenerator); + std::string linkRuleVar = "CMAKE_"; + if (linkLanguage) + { + linkRuleVar += linkLanguage; + } + linkRuleVar += "_CREATE_STATIC_LIBRARY"; + + std::string extraFlags; + this->LocalGenerator->AppendFlags + (extraFlags,this->Target->GetProperty("STATIC_LIBRARY_FLAGS")); + this->WriteLibraryRules(linkRuleVar.c_str(), extraFlags.c_str(), false); +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules(bool relink) +{ + if(this->Target->IsFrameworkOnApple()) + { + this->WriteFrameworkRules(relink); + return; + } + const char* linkLanguage = + this->Target->GetLinkerLanguage(this->GlobalGenerator); + std::string linkRuleVar = "CMAKE_"; + if (linkLanguage) + { + linkRuleVar += linkLanguage; + } + linkRuleVar += "_CREATE_SHARED_LIBRARY"; + + std::string extraFlags; + this->LocalGenerator->AppendFlags + (extraFlags, this->Target->GetProperty("LINK_FLAGS")); + std::string linkFlagsConfig = "LINK_FLAGS_"; + linkFlagsConfig += + cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str()); + this->LocalGenerator->AppendFlags + (extraFlags, this->Target->GetProperty(linkFlagsConfig.c_str())); + + this->LocalGenerator->AddConfigVariableFlags + (extraFlags, "CMAKE_SHARED_LINKER_FLAGS", + this->LocalGenerator->ConfigurationName.c_str()); + if(this->Makefile->IsOn("WIN32") && !(this->Makefile->IsOn("CYGWIN") + || this->Makefile->IsOn("MINGW"))) + { + const std::vector& sources = + this->Target->GetSourceFiles(); + for(std::vector::const_iterator i = sources.begin(); + i != sources.end(); ++i) + { + cmSourceFile* sf = *i; + if(sf->GetExtension() == "def") + { + extraFlags += " "; + extraFlags += + this->Makefile->GetSafeDefinition("CMAKE_LINK_DEF_FILE_FLAG"); + extraFlags += + this->Convert(sf->GetFullPath().c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + } + } + } + this->WriteLibraryRules(linkRuleVar.c_str(), extraFlags.c_str(), relink); +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::WriteModuleLibraryRules(bool relink) +{ + const char* linkLanguage = + this->Target->GetLinkerLanguage(this->GlobalGenerator); + std::string linkRuleVar = "CMAKE_"; + if (linkLanguage) + { + linkRuleVar += linkLanguage; + } + linkRuleVar += "_CREATE_SHARED_MODULE"; + + std::string extraFlags; + this->LocalGenerator->AppendFlags(extraFlags, + this->Target->GetProperty("LINK_FLAGS")); + std::string linkFlagsConfig = "LINK_FLAGS_"; + linkFlagsConfig += + cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str()); + this->LocalGenerator->AppendFlags + (extraFlags, this->Target->GetProperty(linkFlagsConfig.c_str())); + this->LocalGenerator->AddConfigVariableFlags + (extraFlags, "CMAKE_MODULE_LINKER_FLAGS", + this->LocalGenerator->ConfigurationName.c_str()); + + // TODO: .def files should be supported here also. + this->WriteLibraryRules(linkRuleVar.c_str(), extraFlags.c_str(), relink); +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::WriteFrameworkRules(bool relink) +{ + const char* linkLanguage = + this->Target->GetLinkerLanguage(this->GlobalGenerator); + std::string linkRuleVar = "CMAKE_"; + if (linkLanguage) + { + linkRuleVar += linkLanguage; + } + linkRuleVar += "_CREATE_MACOSX_FRAMEWORK"; + + std::string extraFlags; + this->LocalGenerator->AppendFlags(extraFlags, + this->Target->GetProperty("LINK_FLAGS")); + std::string linkFlagsConfig = "LINK_FLAGS_"; + linkFlagsConfig += + cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str()); + this->LocalGenerator->AppendFlags + (extraFlags, this->Target->GetProperty(linkFlagsConfig.c_str())); + this->LocalGenerator->AddConfigVariableFlags + (extraFlags, "CMAKE_MACOSX_FRAMEWORK_LINKER_FLAGS", + this->LocalGenerator->ConfigurationName.c_str()); + + // TODO: .def files should be supported here also. + this->WriteLibraryRules(linkRuleVar.c_str(), extraFlags.c_str(), relink); +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::CreateFrameworkLinksAndDirs( + std::string& targetName, + std::string& outpath, + const char* version) +{ + std::string symlink; + std::string symlink2; + // Make foo.framework/Versions + std::string dir = outpath; + dir += "Versions"; + cmSystemTools::MakeDirectory(dir.c_str()); + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + // cd foo.framework to setup symlinks with relative paths + cmSystemTools::ChangeDirectory((outpath+"Versions").c_str()); + // Current -> version + symlink = version; + symlink2 = "Current"; + cmSystemTools::RemoveFile("Current"); + cmSystemTools::CreateSymlink(symlink.c_str(), symlink2.c_str()); + this->Makefile->AddCMakeOutputFile((outpath + "Versions/Current").c_str()); + // change to top level of framework to create next set of symlinks + cmSystemTools::ChangeDirectory(outpath.c_str()); + // foo -> Versions/Current/foo + symlink = "Versions/Current/"; + symlink += targetName; + symlink2 = targetName; + cmSystemTools::CreateSymlink(symlink.c_str(), symlink2.c_str()); + this->Makefile->AddCMakeOutputFile((outpath + targetName).c_str()); + // Resources -> Versions/Current/Resources + symlink = "Versions/Current/Resources"; + symlink2 = "Resources"; + cmSystemTools::CreateSymlink(symlink.c_str(), symlink2.c_str()); + this->Makefile->AddCMakeOutputFile((outpath + "Resources").c_str()); + // Headers -> Versions/Current/Headers + symlink = "Versions/Current/Headers"; + symlink2 = "Headers"; + cmSystemTools::CreateSymlink(symlink.c_str(), symlink2.c_str()); + this->Makefile->AddCMakeOutputFile((outpath + "Headers").c_str()); + // PrivateHeaders -> Versions/Current/PrivateHeaders + symlink = "Versions/Current/PrivateHeaders"; + symlink2 = "PrivateHeaders"; + cmSystemTools::CreateSymlink(symlink.c_str(), symlink2.c_str()); + this->Makefile->AddCMakeOutputFile((outpath + "PrivateHeaders").c_str()); + // go back to where we were + cmSystemTools::ChangeDirectory(cwd.c_str()); +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::CopyFrameworkSources( + std::string& targetName, + std::string& outpath, + const char* /*version*/ , + const char* propertyName, + const char* subdir) +{ + std::string fullOutput = outpath + targetName; + cmCustomCommandLines commandLines; + std::vector depends; + const std::vector& sources = + this->Target->GetSourceFiles(); + + std::string propName(propertyName); + + for(std::vector::const_iterator i = sources.begin(); + i != sources.end(); ++i) + { + cmSourceFile* sf = *i; + + if(!sf) + { + cmSystemTools::Error( + "could not find framework source file", ""); + continue; + } + + cmTarget::SourceFileFlags tsFlags = + this->Target->GetTargetSourceFileFlags(sf); + + // If processing public headers, skip headers also marked with the private + // property. Private wins. + // + if(tsFlags.PrivateHeader && (propName == "PUBLIC_HEADER")) + { + continue; + } + + if(tsFlags.PrivateHeader && (propName == "PRIVATE_HEADER") || + tsFlags.PublicHeader && (propName == "PUBLIC_HEADER") || + tsFlags.Resource && (propName == "RESOURCE")) + { + cmCustomCommandLine line; + std::string dest = outpath + subdir + "/"; + dest += cmSystemTools::GetFilenameName(sf->GetFullPath()); + line.push_back("$(CMAKE_COMMAND)"); + line.push_back("-E"); + line.push_back("copy_if_different"); + line.push_back(sf->GetFullPath()); + depends.push_back(sf->GetFullPath()); + line.push_back(dest); + commandLines.push_back(line); + // make sure the target gets rebuilt if any of the headers is removed + this->GenerateExtraOutput(dest.c_str(), fullOutput.c_str()); + } + } + + // add a set of prebuild commands to run on the target + if(!commandLines.empty()) + { + this->Makefile-> + AddCustomCommandToTarget(this->Target->GetName(), + depends, + commandLines, + cmTarget::PRE_BUILD, + "copy files", + this->Makefile->GetCurrentOutputDirectory()); + } +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::CreateFramework( + std::string& targetName, + std::string& outpath) +{ + std::string macdir = outpath; + const char* version = this->Target->GetProperty("FRAMEWORK_VERSION"); + if(!version) + { + version = this->Target->GetProperty("VERSION"); + } + if(!version) + { + version = "A"; + } + // create the symbolic links and directories + this->CreateFrameworkLinksAndDirs(targetName, + outpath, + version); + macdir += "Versions/"; + macdir += version; + macdir += "/"; + outpath += "Versions/"; + outpath += version; + outpath += "/"; + + //cmSystemTools::MakeDirectory((macdir + "Libraries").c_str()); + cmSystemTools::MakeDirectory((macdir + "Headers").c_str()); + // Configure the Info.plist file. Note that it needs the executable name + // to be set + std::string rsrcDir = macdir + "Resources/"; + cmSystemTools::MakeDirectory(rsrcDir.c_str()); + this->Makefile->AddDefinition("MACOSX_FRAMEWORK_NAME", + targetName.c_str()); + std::string f1 = + this->Makefile->GetModulesFile("MacOSXFrameworkInfo.plist.in"); + if ( f1.size() == 0 ) + { + cmSystemTools::Error( + "could not find Mac OSX framework Info.plist template file."); + } + std::string f2 = rsrcDir + "Info.plist"; + this->Makefile->ConfigureFile(f1.c_str(), f2.c_str(), + false, false, false); + + this->CopyFrameworkSources(targetName, outpath, version, + "PRIVATE_HEADER", "PrivateHeaders"); + + this->CopyFrameworkSources(targetName, outpath, version, + "PUBLIC_HEADER", "Headers"); + + this->CopyFrameworkSources(targetName, outpath, version, + "RESOURCE", "Resources"); +} + +//---------------------------------------------------------------------------- +void cmMakefileLibraryTargetGenerator::WriteLibraryRules +(const char* linkRuleVar, const char* extraFlags, bool relink) +{ + // TODO: Merge the methods that call this method to avoid + // code duplication. + std::vector commands; + + std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath(); + std::string objTarget; + + // Build list of dependencies. + std::vector depends; + for(std::vector::const_iterator obj = this->Objects.begin(); + obj != this->Objects.end(); ++obj) + { + objTarget = relPath; + objTarget += *obj; + depends.push_back(objTarget); + } + + // Add dependencies on targets that must be built first. + this->AppendTargetDepends(depends); + + // Add a dependency on the rule file itself. + this->LocalGenerator->AppendRuleDepend(depends, + this->BuildFileNameFull.c_str()); + + for(std::vector::const_iterator obj + = this->ExternalObjects.begin(); + obj != this->ExternalObjects.end(); ++obj) + { + depends.push_back(*obj); + } + + // Get the language to use for linking this library. + const char* linkLanguage = + this->Target->GetLinkerLanguage(this->GlobalGenerator); + + // Make sure we have a link language. + if(!linkLanguage) + { + cmSystemTools::Error("Cannot determine link language for target \"", + this->Target->GetName(), "\"."); + return; + } + + // Create set of linking flags. + std::string linkFlags; + this->LocalGenerator->AppendFlags(linkFlags, extraFlags); + + // Construct the name of the library. + std::string targetName; + std::string targetNameSO; + std::string targetNameReal; + std::string targetNameImport; + std::string targetNamePDB; + this->Target->GetLibraryNames( + targetName, targetNameSO, targetNameReal, targetNameImport, targetNamePDB, + this->LocalGenerator->ConfigurationName.c_str()); + + // Construct the full path version of the names. + std::string outpath; + std::string outpathImp; + if(relink) + { + outpath = this->Makefile->GetStartOutputDirectory(); + outpath += cmake::GetCMakeFilesDirectory(); + outpath += "/CMakeRelink.dir"; + cmSystemTools::MakeDirectory(outpath.c_str()); + outpath += "/"; + if(!targetNameImport.empty()) + { + outpathImp = outpath; + } + } + else + { + outpath = this->Target->GetDirectory(); + outpath += "/"; + if(!targetNameImport.empty()) + { + outpathImp = this->Target->GetDirectory(0, true); + outpathImp += "/"; + } + } + + // If we're creating a framework, place the output into a framework directory + if(this->Target->IsFrameworkOnApple()) + { + this->CreateFramework(targetName, outpath); + } + + std::string targetFullPath = outpath + targetName; + std::string targetFullPathPDB = outpath + targetNamePDB; + std::string targetFullPathSO = outpath + targetNameSO; + std::string targetFullPathReal = outpath + targetNameReal; + std::string targetFullPathImport = outpathImp + targetNameImport; + + // Construct the output path version of the names for use in command + // arguments. + std::string targetOutPathPDB = + this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + std::string targetOutPath = + this->Convert(targetFullPath.c_str(),cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + std::string targetOutPathSO = + this->Convert(targetFullPathSO.c_str(),cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + std::string targetOutPathReal = + this->Convert(targetFullPathReal.c_str(),cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + std::string targetOutPathImport = + this->Convert(targetFullPathImport.c_str(),cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + + // Add the link message. + std::string buildEcho = "Linking "; + buildEcho += linkLanguage; + const char* forbiddenFlagVar = 0; + switch(this->Target->GetType()) + { + case cmTarget::STATIC_LIBRARY: + buildEcho += " static library "; + break; + case cmTarget::SHARED_LIBRARY: + forbiddenFlagVar = "_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS"; + buildEcho += " shared library "; + break; + case cmTarget::MODULE_LIBRARY: + forbiddenFlagVar = "_CREATE_SHARED_MODULE_FORBIDDEN_FLAGS"; + buildEcho += " shared module "; + break; + default: + buildEcho += " library "; + break; + } + buildEcho += targetOutPath.c_str(); + this->LocalGenerator->AppendEcho(commands, buildEcho.c_str(), + cmLocalUnixMakefileGenerator3::EchoLink); + + // Construct a list of files associated with this library that may + // need to be cleaned. + std::vector libCleanFiles; + if(this->Target->GetPropertyAsBool("CLEAN_DIRECT_OUTPUT")) + { + // The user has requested that only the files directly built + // by this target be cleaned instead of all possible names. + libCleanFiles.push_back(this->Convert(targetFullPath.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + if(targetNameReal != targetName) + { + libCleanFiles.push_back(this->Convert(targetFullPathReal.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + if(targetNameSO != targetName && + targetNameSO != targetNameReal) + { + libCleanFiles.push_back(this->Convert(targetFullPathSO.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + if(!targetNameImport.empty()) + { + libCleanFiles.push_back(this->Convert(targetFullPathImport.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + } + else + { + // This target may switch between static and shared based + // on a user option or the BUILD_SHARED_LIBS switch. Clean + // all possible names. + std::string cleanStaticName; + std::string cleanSharedName; + std::string cleanSharedSOName; + std::string cleanSharedRealName; + std::string cleanImportName; + std::string cleanPDBName; + this->Target->GetLibraryCleanNames( + cleanStaticName, + cleanSharedName, + cleanSharedSOName, + cleanSharedRealName, + cleanImportName, + cleanPDBName, + this->LocalGenerator->ConfigurationName.c_str()); + std::string cleanFullStaticName = outpath + cleanStaticName; + std::string cleanFullSharedName = outpath + cleanSharedName; + std::string cleanFullSharedSOName = outpath + cleanSharedSOName; + std::string cleanFullSharedRealName = outpath + cleanSharedRealName; + std::string cleanFullImportName = outpathImp + cleanImportName; + std::string cleanFullPDBName = outpath + cleanPDBName; + libCleanFiles.push_back + (this->Convert(cleanFullStaticName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + if(cleanSharedRealName != cleanStaticName) + { + libCleanFiles.push_back(this->Convert(cleanFullSharedRealName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + if(cleanSharedSOName != cleanStaticName && + cleanSharedSOName != cleanSharedRealName) + { + libCleanFiles.push_back(this->Convert(cleanFullSharedSOName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + if(cleanSharedName != cleanStaticName && + cleanSharedName != cleanSharedSOName && + cleanSharedName != cleanSharedRealName) + { + libCleanFiles.push_back(this->Convert(cleanFullSharedName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + if(!cleanImportName.empty()) + { + libCleanFiles.push_back(this->Convert(cleanFullImportName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + + // List the PDB for cleaning only when the whole target is + // cleaned. We do not want to delete the .pdb file just before + // linking the target. + this->CleanFiles.push_back + (this->Convert(cleanFullPDBName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + +#ifdef _WIN32 + // There may be a manifest file for this target. Add it to the + // clean set just in case. + if(this->Target->GetType() != cmTarget::STATIC_LIBRARY) + { + libCleanFiles.push_back( + this->Convert((targetFullPath+".manifest").c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } +#endif + + std::vector commands1; + // Add a command to remove any existing files for this library. + // for static libs only + if(this->Target->GetType() == cmTarget::STATIC_LIBRARY) + { + this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles, + *this->Target, "target"); + this->LocalGenerator->CreateCDCommand + (commands1, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), commands1.begin(), commands1.end()); + commands1.clear(); + } + + // Add the pre-build and pre-link rules building but not when relinking. + if(!relink) + { + this->LocalGenerator + ->AppendCustomCommands(commands, this->Target->GetPreBuildCommands()); + this->LocalGenerator + ->AppendCustomCommands(commands, this->Target->GetPreLinkCommands()); + } + + // Determine whether a link script will be used. + bool useLinkScript = this->GlobalGenerator->GetUseLinkScript(); + + // For static libraries there might be archiving rules. + std::vector archiveCreateCommands; + std::vector archiveAppendCommands; + std::vector archiveFinishCommands; + std::string::size_type archiveCommandLimit = std::string::npos; + if(this->Target->GetType() == cmTarget::STATIC_LIBRARY) + { + std::string arCreateVar = "CMAKE_"; + arCreateVar += linkLanguage; + arCreateVar += "_ARCHIVE_CREATE"; + if(const char* rule = this->Makefile->GetDefinition(arCreateVar.c_str())) + { + cmSystemTools::ExpandListArgument(rule, archiveCreateCommands); + } + std::string arAppendVar = "CMAKE_"; + arAppendVar += linkLanguage; + arAppendVar += "_ARCHIVE_APPEND"; + if(const char* rule = this->Makefile->GetDefinition(arAppendVar.c_str())) + { + cmSystemTools::ExpandListArgument(rule, archiveAppendCommands); + } + std::string arFinishVar = "CMAKE_"; + arFinishVar += linkLanguage; + arFinishVar += "_ARCHIVE_FINISH"; + if(const char* rule = this->Makefile->GetDefinition(arFinishVar.c_str())) + { + cmSystemTools::ExpandListArgument(rule, archiveFinishCommands); + } + } + + // Decide whether to use archiving rules. + bool useArchiveRules = + !archiveCreateCommands.empty() && !archiveAppendCommands.empty(); + if(useArchiveRules) + { + // Archiving rules are always run with a link script. + useLinkScript = true; + + // Limit the length of individual object lists to less than the + // 32K command line length limit on Windows. We could make this a + // platform file variable but this should work everywhere. + archiveCommandLimit = 30000; + } + + // Expand the rule variables. + std::vector real_link_commands; + { + // Set path conversion for link script shells. + this->LocalGenerator->SetLinkScriptShell(useLinkScript); + + // Collect up flags to link in needed libraries. + cmOStringStream linklibs; + this->LocalGenerator->OutputLinkLibraries(linklibs, *this->Target, relink); + + // Construct object file lists that may be needed to expand the + // rule. + std::string variableName; + std::string variableNameExternal; + this->WriteObjectsVariable(variableName, variableNameExternal); + std::string buildObjs; + if(useLinkScript) + { + if(!useArchiveRules) + { + this->WriteObjectsString(buildObjs); + } + } + else + { + buildObjs = "$("; + buildObjs += variableName; + buildObjs += ") $("; + buildObjs += variableNameExternal; + buildObjs += ")"; + } + std::string cleanObjs = "$("; + cleanObjs += variableName; + cleanObjs += ")"; + cmLocalGenerator::RuleVariables vars; + vars.TargetPDB = targetOutPathPDB.c_str(); + + // Setup the target version. + std::string targetVersionMajor; + std::string targetVersionMinor; + { + cmOStringStream majorStream; + cmOStringStream minorStream; + int major; + int minor; + this->Target->GetTargetVersion(major, minor); + majorStream << major; + minorStream << minor; + targetVersionMajor = majorStream.str(); + targetVersionMinor = minorStream.str(); + } + vars.TargetVersionMajor = targetVersionMajor.c_str(); + vars.TargetVersionMinor = targetVersionMinor.c_str(); + + vars.Language = linkLanguage; + vars.Objects = buildObjs.c_str(); + std::string objdir = cmake::GetCMakeFilesDirectoryPostSlash(); + objdir += this->Target->GetName(); + objdir += ".dir"; + vars.ObjectDir = objdir.c_str(); + vars.Target = targetOutPathReal.c_str(); + std::string linkString = linklibs.str(); + vars.LinkLibraries = linkString.c_str(); + vars.ObjectsQuoted = buildObjs.c_str(); + vars.TargetSOName= targetNameSO.c_str(); + vars.LinkFlags = linkFlags.c_str(); + + // Compute the directory portion of the install_name setting. + std::string install_name_dir; + if(this->Target->GetType() == cmTarget::SHARED_LIBRARY) + { + // Get the install_name directory for the build tree. + const char* config = this->LocalGenerator->ConfigurationName.c_str(); + install_name_dir = this->Target->GetInstallNameDirForBuildTree(config); + + // Set the rule variable replacement value. + if(install_name_dir.empty()) + { + vars.TargetInstallNameDir = ""; + } + else + { + // Convert to a path for the native build tool. + install_name_dir = + this->LocalGenerator->Convert(install_name_dir.c_str(), + cmLocalGenerator::NONE, + cmLocalGenerator::SHELL, false); + vars.TargetInstallNameDir = install_name_dir.c_str(); + } + } + std::string langFlags; + this->LocalGenerator + ->AddLanguageFlags(langFlags, linkLanguage, + this->LocalGenerator->ConfigurationName.c_str()); + // remove any language flags that might not work with the + // particular os + if(forbiddenFlagVar) + { + this->RemoveForbiddenFlags(forbiddenFlagVar, + linkLanguage, langFlags); + } + vars.LanguageCompileFlags = langFlags.c_str(); + + // Construct the main link rule and expand placeholders. + this->LocalGenerator->TargetImplib = targetOutPathImport; + if(useArchiveRules) + { + // Construct the individual object list strings. + std::vector object_strings; + this->WriteObjectsStrings(object_strings, archiveCommandLimit); + + // Create the archive with the first set of objects. + std::vector::iterator osi = object_strings.begin(); + { + vars.Objects = osi->c_str(); + for(std::vector::const_iterator + i = archiveCreateCommands.begin(); + i != archiveCreateCommands.end(); ++i) + { + std::string cmd = *i; + this->LocalGenerator->ExpandRuleVariables(cmd, vars); + real_link_commands.push_back(cmd); + } + } + // Append to the archive with the other object sets. + for(++osi; osi != object_strings.end(); ++osi) + { + vars.Objects = osi->c_str(); + for(std::vector::const_iterator + i = archiveAppendCommands.begin(); + i != archiveAppendCommands.end(); ++i) + { + std::string cmd = *i; + this->LocalGenerator->ExpandRuleVariables(cmd, vars); + real_link_commands.push_back(cmd); + } + } + // Finish the archive. + vars.Objects = ""; + for(std::vector::const_iterator + i = archiveFinishCommands.begin(); + i != archiveFinishCommands.end(); ++i) + { + std::string cmd = *i; + this->LocalGenerator->ExpandRuleVariables(cmd, vars); + real_link_commands.push_back(cmd); + } + } + else + { + // Get the set of commands. + std::string linkRule = this->Makefile->GetRequiredDefinition(linkRuleVar); + cmSystemTools::ExpandListArgument(linkRule, real_link_commands); + + // Expand placeholders. + for(std::vector::iterator i = real_link_commands.begin(); + i != real_link_commands.end(); ++i) + { + this->LocalGenerator->ExpandRuleVariables(*i, vars); + } + } + this->LocalGenerator->TargetImplib = ""; + + // Restore path conversion to normal shells. + this->LocalGenerator->SetLinkScriptShell(false); + } + + // Optionally convert the build rule to use a script to avoid long + // command lines in the make shell. + if(useLinkScript) + { + // Use a link script. + const char* name = (relink? "relink.txt" : "link.txt"); + this->CreateLinkScript(name, real_link_commands, commands1); + } + else + { + // No link script. Just use the link rule directly. + commands1 = real_link_commands; + } + this->LocalGenerator->CreateCDCommand + (commands1, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), commands1.begin(), commands1.end()); + commands1.clear(); + + // Add a rule to create necessary symlinks for the library. + if(targetOutPath != targetOutPathReal) + { + std::string symlink = "$(CMAKE_COMMAND) -E cmake_symlink_library "; + symlink += targetOutPathReal; + symlink += " "; + symlink += targetOutPathSO; + symlink += " "; + symlink += targetOutPath; + commands1.push_back(symlink); + this->LocalGenerator->CreateCDCommand(commands1, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), commands1.begin(), commands1.end()); + commands1.clear(); + } + // Add the post-build rules when building but not when relinking. + if(!relink) + { + this->LocalGenerator-> + AppendCustomCommands(commands, this->Target->GetPostBuildCommands()); + } + + // Write the build rule. + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + targetFullPathReal.c_str(), + depends, commands, false); + + // Some targets have more than one output file. Create rules to + // drive the build if any extra outputs are missing. + std::vector extraOutputs; + if(targetNameSO != targetNameReal) + { + this->GenerateExtraOutput(targetFullPathSO.c_str(), + targetFullPathReal.c_str()); + } + if(targetName != targetNameSO && + targetName != targetNameReal) + { + this->GenerateExtraOutput(targetFullPath.c_str(), + targetFullPathReal.c_str()); + } + + // Write the main driver rule to build everything in this target. + this->WriteTargetDriverRule(targetFullPath.c_str(), relink); + + // Clean all the possible library names and symlinks. + this->CleanFiles.insert(this->CleanFiles.end(), + libCleanFiles.begin(),libCleanFiles.end()); +} diff --git a/CMakeLua/Source/cmMakefileLibraryTargetGenerator.h b/CMakeLua/Source/cmMakefileLibraryTargetGenerator.h new file mode 100644 index 0000000..66fe2e4 --- /dev/null +++ b/CMakeLua/Source/cmMakefileLibraryTargetGenerator.h @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileLibraryTargetGenerator.h,v $ + Language: C++ + Date: $Date: 2007/08/14 18:12:08 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMakefileLibraryTargetGenerator_h +#define cmMakefileLibraryTargetGenerator_h + +#include "cmMakefileTargetGenerator.h" + +class cmMakefileLibraryTargetGenerator: + public cmMakefileTargetGenerator +{ +public: + cmMakefileLibraryTargetGenerator(); + + /* the main entry point for this class. Writes the Makefiles associated + with this target */ + virtual void WriteRuleFiles(); + +protected: + void WriteStaticLibraryRules(); + void WriteSharedLibraryRules(bool relink); + void WriteModuleLibraryRules(bool relink); + void WriteLibraryRules(const char *linkRule, const char *extraFlags, + bool relink); + // MacOSX Framework support methods + void WriteFrameworkRules(bool relink); + void CreateFramework(std::string& targetName, + std::string& outpath); + void CreateFrameworkLinksAndDirs(std::string& targetName, + std::string& outpath, + const char* version); + void CopyFrameworkSources(std::string& targetName, + std::string& outpath, + const char* version, + const char* propertyName, + const char* subdir); +}; + +#endif diff --git a/CMakeLua/Source/cmMakefileTargetGenerator.cxx b/CMakeLua/Source/cmMakefileTargetGenerator.cxx new file mode 100644 index 0000000..d06974a --- /dev/null +++ b/CMakeLua/Source/cmMakefileTargetGenerator.cxx @@ -0,0 +1,1624 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileTargetGenerator.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 01:46:25 $ + Version: $Revision: 1.88 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMakefileTargetGenerator.h" + +#include "cmGeneratedFileStream.h" +#include "cmGlobalGenerator.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmSourceFile.h" +#include "cmTarget.h" +#include "cmake.h" + +#include "cmMakefileExecutableTargetGenerator.h" +#include "cmMakefileLibraryTargetGenerator.h" +#include "cmMakefileUtilityTargetGenerator.h" + + +cmMakefileTargetGenerator::cmMakefileTargetGenerator() +{ + this->BuildFileStream = 0; + this->InfoFileStream = 0; + this->FlagFileStream = 0; + this->CustomCommandDriver = OnBuild; + this->FortranModuleDirectoryComputed = false; +} + +cmMakefileTargetGenerator * +cmMakefileTargetGenerator::New(cmLocalUnixMakefileGenerator3 *lg, + cmStdString tgtName, cmTarget *tgt) +{ + cmMakefileTargetGenerator *result = 0; + + switch (tgt->GetType()) + { + case cmTarget::EXECUTABLE: + result = new cmMakefileExecutableTargetGenerator; + break; + case cmTarget::STATIC_LIBRARY: + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + result = new cmMakefileLibraryTargetGenerator; + break; + case cmTarget::UTILITY: + result = new cmMakefileUtilityTargetGenerator; + break; + default: + return result; + // break; /* unreachable */ + } + + result->TargetName = tgtName; + result->Target = tgt; + result->LocalGenerator = lg; + result->GlobalGenerator = + static_cast(lg->GetGlobalGenerator()); + result->Makefile = lg->GetMakefile(); + return result; +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::CreateRuleFile() +{ + // Create a directory for this target. + this->TargetBuildDirectory = + this->LocalGenerator->GetTargetDirectory(*this->Target); + this->TargetBuildDirectoryFull = + this->LocalGenerator->ConvertToFullPath(this->TargetBuildDirectory); + cmSystemTools::MakeDirectory(this->TargetBuildDirectoryFull.c_str()); + + // Construct the rule file name. + this->BuildFileName = this->TargetBuildDirectory; + this->BuildFileName += "/build.make"; + this->BuildFileNameFull = this->TargetBuildDirectoryFull; + this->BuildFileNameFull += "/build.make"; + + // Construct the rule file name. + this->ProgressFileName = this->TargetBuildDirectory; + this->ProgressFileName += "/progress.make"; + this->ProgressFileNameFull = this->TargetBuildDirectoryFull; + this->ProgressFileNameFull += "/progress.make"; + + // reset the progress count + this->NumberOfProgressActions = 0; + + // Open the rule file. This should be copy-if-different because the + // rules may depend on this file itself. + this->BuildFileStream = + new cmGeneratedFileStream(this->BuildFileNameFull.c_str()); + this->BuildFileStream->SetCopyIfDifferent(true); + if(!this->BuildFileStream) + { + return; + } + this->LocalGenerator->WriteDisclaimer(*this->BuildFileStream); + this->LocalGenerator->WriteSpecialTargetsTop(*this->BuildFileStream); +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteTargetBuildRules() +{ + // write the custom commands for this target + // Look for files registered for cleaning in this directory. + if(const char* additional_clean_files = + this->Makefile->GetProperty + ("ADDITIONAL_MAKE_CLEAN_FILES")) + { + cmSystemTools::ExpandListArgument(additional_clean_files, + this->CleanFiles); + } + + // add custom commands to the clean rules? + const char* clean_no_custom = + this->Makefile->GetProperty("CLEAN_NO_CUSTOM"); + bool clean = cmSystemTools::IsOff(clean_no_custom); + + // First generate the object rule files. Save a list of all object + // files for this target. + const std::vector& sources = this->Target->GetSourceFiles(); + for(std::vector::const_iterator source = sources.begin(); + source != sources.end(); ++source) + { + if(cmCustomCommand* cc = (*source)->GetCustomCommand()) + { + this->GenerateCustomRuleFile(*cc); + if (clean) + { + const std::vector& outputs = cc->GetOutputs(); + for(std::vector::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) + { + this->CleanFiles.push_back + (this->Convert(o->c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::UNCHANGED)); + } + } + } + else if(!(*source)->GetPropertyAsBool("HEADER_FILE_ONLY")) + { + if(!this->GlobalGenerator->IgnoreFile + ((*source)->GetExtension().c_str())) + { + // Generate this object file's rule file. + this->WriteObjectRuleFiles(*(*source)); + } + else if((*source)->GetPropertyAsBool("EXTERNAL_OBJECT")) + { + // This is an external object file. Just add it. + this->ExternalObjects.push_back((*source)->GetFullPath()); + } + else + { + // We only get here if a source file is not an external object + // and has an extension that is listed as an ignored file type + // for this language. No message or diagnosis should be + // given. + } + } + } +} + + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteCommonCodeRules() +{ + // Include the dependencies for the target. + std::string dependFileNameFull = this->TargetBuildDirectoryFull; + dependFileNameFull += "/depend.make"; + *this->BuildFileStream + << "# Include any dependencies generated for this target.\n" + << this->LocalGenerator->IncludeDirective << " " + << this->Convert(dependFileNameFull.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE) + << "\n\n"; + + // Include the progress variables for the target. + *this->BuildFileStream + << "# Include the progress variables for this target.\n" + << this->LocalGenerator->IncludeDirective << " " + << this->Convert(this->ProgressFileNameFull.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE) + << "\n\n"; + + // make sure the depend file exists + if (!cmSystemTools::FileExists(dependFileNameFull.c_str())) + { + // Write an empty dependency file. + cmGeneratedFileStream depFileStream(dependFileNameFull.c_str()); + depFileStream + << "# Empty dependencies file for " << this->Target->GetName() << ".\n" + << "# This may be replaced when dependencies are built." << std::endl; + } + + // Open the flags file. This should be copy-if-different because the + // rules may depend on this file itself. + this->FlagFileNameFull = this->TargetBuildDirectoryFull; + this->FlagFileNameFull += "/flags.make"; + this->FlagFileStream = + new cmGeneratedFileStream(this->FlagFileNameFull.c_str()); + this->FlagFileStream->SetCopyIfDifferent(true); + if(!this->FlagFileStream) + { + return; + } + this->LocalGenerator->WriteDisclaimer(*this->FlagFileStream); + + // Include the flags for the target. + *this->BuildFileStream + << "# Include the compile flags for this target's objects.\n" + << this->LocalGenerator->IncludeDirective << " " + << this->Convert(this->FlagFileNameFull.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::MAKEFILE) + << "\n\n"; +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteTargetLanguageFlags() +{ + // write language flags for target + std::set languages; + this->Target->GetLanguages(languages); + // put the compiler in the rules.make file so that if it changes + // things rebuild + for(std::set::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + cmStdString compiler = "CMAKE_"; + compiler += *l; + compiler += "_COMPILER"; + *this->FlagFileStream << "# compile " << l->c_str() << " with " << + this->Makefile->GetSafeDefinition(compiler.c_str()) << "\n"; + } + + for(std::set::const_iterator l = languages.begin(); + l != languages.end(); ++l) + { + const char *lang = l->c_str(); + std::string flags; + std::string defines; + bool shared = ((this->Target->GetType() == cmTarget::SHARED_LIBRARY) || + (this->Target->GetType() == cmTarget::MODULE_LIBRARY)); + + // Add the export symbol definition for shared library objects. + if(const char* exportMacro = this->Target->GetExportMacro()) + { + flags += "-D"; + flags += exportMacro; + } + + // Add preprocessor definitions for this target and configuration. + this->LocalGenerator->AppendDefines + (defines, this->Makefile->GetProperty("COMPILE_DEFINITIONS"), lang); + this->LocalGenerator->AppendDefines + (defines, this->Target->GetProperty("COMPILE_DEFINITIONS"), lang); + std::string defPropName = "COMPILE_DEFINITIONS_"; + defPropName += + cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName); + this->LocalGenerator->AppendDefines + (defines, this->Makefile->GetProperty(defPropName.c_str()), lang); + this->LocalGenerator->AppendDefines + (defines, this->Target->GetProperty(defPropName.c_str()), lang); + + // Add language-specific flags. + this->LocalGenerator + ->AddLanguageFlags(flags, lang, + this->LocalGenerator->ConfigurationName.c_str()); + + // Fortran-specific flags computed for this target. + if(*l == "Fortran") + { + this->AddFortranFlags(flags); + } + + // Add shared-library flags if needed. + this->LocalGenerator->AddSharedFlags(flags, lang, shared); + + // Add include directory flags. + this->LocalGenerator-> + AppendFlags(flags, this->LocalGenerator->GetIncludeFlags(lang)); + // Add include directory flags. + this->LocalGenerator-> + AppendFlags(flags,this->GetFrameworkFlags().c_str()); + + *this->FlagFileStream << lang << "_FLAGS = " << flags << "\n\n"; + *this->FlagFileStream << lang << "_DEFINES = " << defines << "\n\n"; + } + + // Add target-specific flags. + if(this->Target->GetProperty("COMPILE_FLAGS")) + { + std::string flags; + this->LocalGenerator->AppendFlags + (flags, this->Target->GetProperty("COMPILE_FLAGS")); + *this->FlagFileStream << "# TARGET_FLAGS = " << flags << "\n\n"; + } +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteObjectRuleFiles(cmSourceFile& source) +{ + // Identify the language of the source file. + const char* lang = this->LocalGenerator->GetSourceFileLanguage(source); + if(!lang) + { + // don't know anything about this file so skip it + return; + } + + // Get the full path name of the object file. + bool hasSourceExtension; + std::string objNoTargetDir; + std::string obj = + this->LocalGenerator->GetObjectFileName(*this->Target, source, + &objNoTargetDir, + &hasSourceExtension); + + // Avoid generating duplicate rules. + if(this->ObjectFiles.find(obj) == this->ObjectFiles.end()) + { + this->ObjectFiles.insert(obj); + } + else + { + cmOStringStream err; + err << "Warning: Source file \"" + << source.GetFullPath() + << "\" is listed multiple times for target \"" + << this->Target->GetName() + << "\"."; + cmSystemTools::Message(err.str().c_str(), "Warning"); + return; + } + + // Create the directory containing the object file. This may be a + // subdirectory under the target's directory. + std::string dir = cmSystemTools::GetFilenamePath(obj.c_str()); + cmSystemTools::MakeDirectory + (this->LocalGenerator->ConvertToFullPath(dir).c_str()); + + // Save this in the target's list of object files. + if ( source.GetPropertyAsBool("EXTRA_CONTENT") ) + { + this->ExtraContent.insert(obj); + } + this->Objects.push_back(obj); + this->CleanFiles.push_back(obj); + + // TODO: Remove + //std::string relativeObj + //= this->LocalGenerator->GetHomeRelativeOutputPath(); + //relativeObj += obj; + + // we compute some depends when writing the depend.make that we will also + // use in the build.make, same with depMakeFile + std::vector depends; + std::string depMakeFile; + + // generate the build rule file + this->WriteObjectBuildFile(obj, lang, source, depends); + + // The object file should be checked for dependency integrity. + std::string objFullPath = this->Makefile->GetCurrentOutputDirectory(); + objFullPath += "/"; + objFullPath += obj; + objFullPath = + this->Convert(objFullPath.c_str(), cmLocalGenerator::FULL); + std::string srcFullPath = + this->Convert(source.GetFullPath().c_str(), cmLocalGenerator::FULL); + this->LocalGenerator-> + AddImplicitDepends(*this->Target, lang, + objFullPath.c_str(), + srcFullPath.c_str()); + + // add this to the list of objects for this local generator + if(cmSystemTools::FileIsFullPath(objNoTargetDir.c_str())) + { + objNoTargetDir = cmSystemTools::GetFilenameName(objNoTargetDir); + } + cmLocalUnixMakefileGenerator3::LocalObjectInfo& info = + this->LocalGenerator->LocalObjectFiles[objNoTargetDir]; + info.HasSourceExtension = hasSourceExtension; + info.push_back( + cmLocalUnixMakefileGenerator3::LocalObjectEntry(this->Target, lang) + ); +} + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::WriteObjectBuildFile(std::string &obj, + const char *lang, + cmSourceFile& source, + std::vector& depends) +{ + this->LocalGenerator->AppendRuleDepend(depends, + this->FlagFileNameFull.c_str()); + + // generate the depend scanning rule + this->WriteObjectDependRules(source, depends); + + std::string relativeObj = this->LocalGenerator->GetHomeRelativeOutputPath(); + if ( source.GetPropertyAsBool("MACOSX_CONTENT") ) + { + relativeObj = ""; + } + relativeObj += obj; + // Write the build rule. + + // Build the set of compiler flags. + std::string flags; + + // Add language-specific flags. + std::string langFlags = "$("; + langFlags += lang; + langFlags += "_FLAGS)"; + this->LocalGenerator->AppendFlags(flags, langFlags.c_str()); + + // Add target-specific flags. + if(this->Target->GetProperty("COMPILE_FLAGS")) + { + this->LocalGenerator->AppendFlags + (flags, this->Target->GetProperty("COMPILE_FLAGS")); + } + + // Add flags from source file properties. + if (source.GetProperty("COMPILE_FLAGS")) + { + this->LocalGenerator->AppendFlags + (flags, source.GetProperty("COMPILE_FLAGS")); + *this->FlagFileStream << "# Custom flags: " + << relativeObj << "_FLAGS = " + << source.GetProperty("COMPILE_FLAGS") + << "\n" + << "\n"; + } + + // Add language-specific defines. + std::string defines = "$("; + defines += lang; + defines += "_DEFINES)"; + + // Add source-sepcific preprocessor definitions. + if(const char* compile_defs = source.GetProperty("COMPILE_DEFINITIONS")) + { + this->LocalGenerator->AppendDefines(defines, compile_defs, lang); + *this->FlagFileStream << "# Custom defines: " + << relativeObj << "_DEFINES = " + << compile_defs << "\n" + << "\n"; + } + std::string configUpper = + cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName); + std::string defPropName = "COMPILE_DEFINITIONS_"; + defPropName += configUpper; + if(const char* config_compile_defs = + source.GetProperty(defPropName.c_str())) + { + this->LocalGenerator->AppendDefines(defines, config_compile_defs, lang); + *this->FlagFileStream + << "# Custom defines: " + << relativeObj << "_DEFINES_" << configUpper + << " = " << config_compile_defs << "\n" + << "\n"; + } + + // Get the output paths for source and object files. + std::string sourceFile = source.GetFullPath(); + if(this->LocalGenerator->UseRelativePaths) + { + sourceFile = this->Convert(sourceFile.c_str(), + cmLocalGenerator::HOME_OUTPUT); + } + sourceFile = this->Convert(sourceFile.c_str(), + cmLocalGenerator::NONE, + cmLocalGenerator::SHELL); + std::string objectFile = this->Convert(obj.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + + // Construct the build message. + std::vector no_commands; + std::vector commands; + + // add in a progress call if needed + std::string progressDir = this->Makefile->GetHomeOutputDirectory(); + progressDir += cmake::GetCMakeFilesDirectory(); + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report "; + progCmd << this->LocalGenerator->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + this->NumberOfProgressActions++; + progCmd << " $(CMAKE_PROGRESS_" + << this->NumberOfProgressActions + << ")"; + commands.push_back(progCmd.str()); + + std::string buildEcho = "Building "; + buildEcho += lang; + buildEcho += " object "; + buildEcho += relativeObj; + this->LocalGenerator->AppendEcho(commands, buildEcho.c_str(), + cmLocalUnixMakefileGenerator3::EchoBuild); + + // Construct the compile rules. + std::string compileRuleVar = "CMAKE_"; + compileRuleVar += lang; + compileRuleVar += "_COMPILE_OBJECT"; + std::string compileRule = + this->Makefile->GetRequiredDefinition(compileRuleVar.c_str()); + std::vector compileCommands; + cmSystemTools::ExpandListArgument(compileRule, compileCommands); + + // Change the command working directory to the local build tree. + this->LocalGenerator->CreateCDCommand + (compileCommands, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), + compileCommands.begin(), compileCommands.end()); + + std::string targetOutPathPDB; + { + std::string targetFullPathPDB; + const char* configName = this->LocalGenerator->ConfigurationName.c_str(); + if(this->Target->GetType() == cmTarget::EXECUTABLE || + this->Target->GetType() == cmTarget::STATIC_LIBRARY || + this->Target->GetType() == cmTarget::SHARED_LIBRARY || + this->Target->GetType() == cmTarget::MODULE_LIBRARY) + { + targetFullPathPDB = this->Target->GetDirectory(); + targetFullPathPDB += "/"; + targetFullPathPDB += this->Target->GetPDBName(configName); + } + targetOutPathPDB = + this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + } + cmLocalGenerator::RuleVariables vars; + vars.Language = lang; + vars.TargetPDB = targetOutPathPDB.c_str(); + vars.Source = sourceFile.c_str(); + std::string shellObj = + this->Convert(obj.c_str(), + cmLocalGenerator::NONE, + cmLocalGenerator::SHELL).c_str(); + vars.Object = shellObj.c_str(); + std::string objectDir = cmSystemTools::GetFilenamePath(obj); + vars.ObjectDir = objectDir.c_str(); + vars.Flags = flags.c_str(); + vars.Defines = defines.c_str(); + + // Expand placeholders in the commands. + for(std::vector::iterator i = commands.begin(); + i != commands.end(); ++i) + { + this->LocalGenerator->ExpandRuleVariables(*i, vars); + } + + + // Write the rule. + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + relativeObj.c_str(), + depends, commands, false); + + // Check for extra outputs created by the compilation. + if(const char* extra_outputs_str = + source.GetProperty("OBJECT_OUTPUTS")) + { + std::vector extra_outputs; + cmSystemTools::ExpandListArgument(extra_outputs_str, extra_outputs); + for(std::vector::const_iterator eoi = extra_outputs.begin(); + eoi != extra_outputs.end(); ++eoi) + { + // Register this as an extra output for the object file rule. + // This will cause the object file to be rebuilt if the extra + // output is missing. + this->GenerateExtraOutput(eoi->c_str(), relativeObj.c_str(), false); + + // Register this as an extra file to clean. + this->CleanFiles.push_back(eoi->c_str()); + } + } + + bool lang_is_c_or_cxx = ((strcmp(lang, "C") == 0) || + (strcmp(lang, "CXX") == 0)); + bool do_preprocess_rules = lang_is_c_or_cxx && + this->LocalGenerator->GetCreatePreprocessedSourceRules(); + bool do_assembly_rules = lang_is_c_or_cxx && + this->LocalGenerator->GetCreateAssemblySourceRules(); + if(do_preprocess_rules || do_assembly_rules) + { + std::vector force_depends; + force_depends.push_back("cmake_force"); + std::string::size_type dot_pos = relativeObj.rfind("."); + std::string relativeObjBase = relativeObj.substr(0, dot_pos); + dot_pos = obj.rfind("."); + std::string objBase = obj.substr(0, dot_pos); + + if(do_preprocess_rules) + { + commands.clear(); + std::string relativeObjI = relativeObjBase + ".i"; + std::string objI = objBase + ".i"; + + std::string preprocessEcho = "Preprocessing "; + preprocessEcho += lang; + preprocessEcho += " source to "; + preprocessEcho += objI; + this->LocalGenerator->AppendEcho( + commands, preprocessEcho.c_str(), + cmLocalUnixMakefileGenerator3::EchoBuild + ); + + std::string preprocessRuleVar = "CMAKE_"; + preprocessRuleVar += lang; + preprocessRuleVar += "_CREATE_PREPROCESSED_SOURCE"; + if(const char* preprocessRule = + this->Makefile->GetDefinition(preprocessRuleVar.c_str())) + { + std::vector preprocessCommands; + cmSystemTools::ExpandListArgument(preprocessRule, preprocessCommands); + this->LocalGenerator->CreateCDCommand + (preprocessCommands, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), + preprocessCommands.begin(), + preprocessCommands.end()); + + std::string shellObjI = + this->Convert(objI.c_str(), + cmLocalGenerator::NONE, + cmLocalGenerator::SHELL).c_str(); + vars.PreprocessedSource = shellObjI.c_str(); + + // Expand placeholders in the commands. + for(std::vector::iterator i = commands.begin(); + i != commands.end(); ++i) + { + this->LocalGenerator->ExpandRuleVariables(*i, vars); + } + } + else + { + std::string cmd = "$(CMAKE_COMMAND) -E cmake_unimplemented_variable "; + cmd += preprocessRuleVar; + commands.push_back(cmd); + } + + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + relativeObjI.c_str(), + force_depends, commands, false); + } + + if(do_assembly_rules) + { + commands.clear(); + std::string relativeObjS = relativeObjBase + ".s"; + std::string objS = objBase + ".s"; + + std::string assemblyEcho = "Compiling "; + assemblyEcho += lang; + assemblyEcho += " source to assembly "; + assemblyEcho += objS; + this->LocalGenerator->AppendEcho( + commands, assemblyEcho.c_str(), + cmLocalUnixMakefileGenerator3::EchoBuild + ); + + std::string assemblyRuleVar = "CMAKE_"; + assemblyRuleVar += lang; + assemblyRuleVar += "_CREATE_ASSEMBLY_SOURCE"; + if(const char* assemblyRule = + this->Makefile->GetDefinition(assemblyRuleVar.c_str())) + { + std::vector assemblyCommands; + cmSystemTools::ExpandListArgument(assemblyRule, assemblyCommands); + this->LocalGenerator->CreateCDCommand + (assemblyCommands, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), + assemblyCommands.begin(), + assemblyCommands.end()); + + std::string shellObjS = + this->Convert(objS.c_str(), + cmLocalGenerator::NONE, + cmLocalGenerator::SHELL).c_str(); + vars.AssemblySource = shellObjS.c_str(); + + // Expand placeholders in the commands. + for(std::vector::iterator i = commands.begin(); + i != commands.end(); ++i) + { + this->LocalGenerator->ExpandRuleVariables(*i, vars); + } + } + else + { + std::string cmd = "$(CMAKE_COMMAND) -E cmake_unimplemented_variable "; + cmd += assemblyRuleVar; + commands.push_back(cmd); + } + + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + relativeObjS.c_str(), + force_depends, commands, false); + } + } + + // If the language needs provides-requires mode, create the + // corresponding targets. + std::string objectRequires = relativeObj; + objectRequires += ".requires"; + std::vector p_depends; + // always provide an empty requires target + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + objectRequires.c_str(), p_depends, + no_commands, true); + + // write a build rule to recursively build what this obj provides + std::string objectProvides = relativeObj; + objectProvides += ".provides"; + std::string temp = relativeObj; + temp += ".provides.build"; + std::vector r_commands; + std::string tgtMakefileName = + this->LocalGenerator->GetRelativeTargetDirectory(*this->Target); + tgtMakefileName += "/build.make"; + r_commands.push_back + (this->LocalGenerator->GetRecursiveMakeCall(tgtMakefileName.c_str(), + temp.c_str())); + + p_depends.clear(); + p_depends.push_back(objectRequires); + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + objectProvides.c_str(), p_depends, + r_commands, true); + + // write the provides.build rule dependency on the obj file + p_depends.clear(); + p_depends.push_back(relativeObj); + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + temp.c_str(), p_depends, no_commands, + true); +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteTargetRequiresRules() +{ + std::vector depends; + std::vector no_commands; + + // Construct the name of the dependency generation target. + std::string depTarget = + this->LocalGenerator->GetRelativeTargetDirectory(*this->Target); + depTarget += "/requires"; + + // This target drives dependency generation for all object files. + std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath(); + std::string objTarget; + for(std::vector::const_iterator obj = this->Objects.begin(); + obj != this->Objects.end(); ++obj) + { + objTarget = relPath; + objTarget += *obj; + objTarget += ".requires"; + depends.push_back(objTarget); + } + + // Write the rule. + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + depTarget.c_str(), + depends, no_commands, true); +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteTargetCleanRules() +{ + std::vector depends; + std::vector commands; + + // Construct the clean target name. + std::string cleanTarget = + this->LocalGenerator->GetRelativeTargetDirectory(*this->Target); + cleanTarget += "/clean"; + + // Construct the clean command. + this->LocalGenerator->AppendCleanCommand(commands, this->CleanFiles, + *this->Target); + this->LocalGenerator->CreateCDCommand + (commands, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + + // Write the rule. + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + cleanTarget.c_str(), + depends, commands, true); +} + + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteTargetDependRules() +{ + // must write the targets depend info file + std::string dir = this->LocalGenerator->GetTargetDirectory(*this->Target); + this->InfoFileNameFull = dir; + this->InfoFileNameFull += "/DependInfo.cmake"; + this->InfoFileNameFull = + this->LocalGenerator->ConvertToFullPath(this->InfoFileNameFull); + this->InfoFileStream = + new cmGeneratedFileStream(this->InfoFileNameFull.c_str()); + this->InfoFileStream->SetCopyIfDifferent(true); + if(!*this->InfoFileStream) + { + return; + } + this->LocalGenerator-> + WriteDependLanguageInfo(*this->InfoFileStream,*this->Target); + + // Store multiple output pairs in the depend info file. + if(!this->MultipleOutputPairs.empty()) + { + *this->InfoFileStream + << "\n" + << "# Pairs of files generated by the same build rule.\n" + << "SET(CMAKE_MULTIPLE_OUTPUT_PAIRS\n"; + for(MultipleOutputPairsType::const_iterator pi = + this->MultipleOutputPairs.begin(); + pi != this->MultipleOutputPairs.end(); ++pi) + { + *this->InfoFileStream << " \"" << pi->first << "\" \"" + << pi->second << "\"\n"; + } + *this->InfoFileStream << " )\n\n"; + } + + // Store list of targets linked directly or transitively. + { + *this->InfoFileStream + << "\n" + << "# Targets to which this target links.\n" + << "SET(CMAKE_TARGET_LINKED_INFO_FILES\n"; + cmGlobalGenerator* gg = this->GlobalGenerator; + std::set emitted; + cmTarget::LinkLibraryVectorType const& libs = + this->Target->GetLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator j = libs.begin(); + j != libs.end(); ++j) + { + if(cmTarget const* linkee = gg->FindTarget(0, j->first.c_str())) + { + if(emitted.insert(linkee).second) + { + cmMakefile* mf = linkee->GetMakefile(); + cmLocalGenerator* lg = mf->GetLocalGenerator(); + std::string di = mf->GetStartOutputDirectory(); + di += "/"; + di += lg->GetTargetDirectory(*linkee); + di += "/DependInfo.cmake"; + *this->InfoFileStream << " \"" << di << "\"\n"; + } + } + } + *this->InfoFileStream + << " )\n"; + } + + // Check for a target-specific module output directory. + if(const char* mdir = this->GetFortranModuleDirectory()) + { + *this->InfoFileStream + << "\n" + << "# Fortran module output directory.\n" + << "SET(CMAKE_Fortran_TARGET_MODULE_DIR \"" << mdir << "\")\n"; + } + + // and now write the rule to use it + std::vector depends; + std::vector commands; + + // Construct the name of the dependency generation target. + std::string depTarget = + this->LocalGenerator->GetRelativeTargetDirectory(*this->Target); + depTarget += "/depend"; + + // Add a command to call CMake to scan dependencies. CMake will + // touch the corresponding depends file after scanning dependencies. + cmOStringStream depCmd; + // TODO: Account for source file properties and directory-level + // definitions when scanning for dependencies. +#if !defined(_WIN32) || defined(__CYGWIN__) + // This platform supports symlinks, so cmSystemTools will translate + // paths. Make sure PWD is set to the original name of the home + // output directory to help cmSystemTools to create the same + // translation table for the dependency scanning process. + depCmd << "cd " + << (this->LocalGenerator->Convert( + this->Makefile->GetHomeOutputDirectory(), + cmLocalGenerator::FULL, cmLocalGenerator::SHELL)) + << " && "; +#endif + // Generate a call this signature: + // + // cmake -E cmake_depends + // + // + // --color=$(COLOR) + // + // This gives the dependency scanner enough information to recreate + // the state of our local generator sufficiently for its needs. + depCmd << "$(CMAKE_COMMAND) -E cmake_depends \"" + << this->GlobalGenerator->GetName() << "\" " + << this->Convert(this->Makefile->GetHomeDirectory(), + cmLocalGenerator::FULL, cmLocalGenerator::SHELL) + << " " + << this->Convert(this->Makefile->GetStartDirectory(), + cmLocalGenerator::FULL, cmLocalGenerator::SHELL) + << " " + << this->Convert(this->Makefile->GetHomeOutputDirectory(), + cmLocalGenerator::FULL, cmLocalGenerator::SHELL) + << " " + << this->Convert(this->Makefile->GetStartOutputDirectory(), + cmLocalGenerator::FULL, cmLocalGenerator::SHELL) + << " " + << this->Convert(this->InfoFileNameFull.c_str(), + cmLocalGenerator::FULL, cmLocalGenerator::SHELL) + << " --color=$(COLOR)"; + commands.push_back(depCmd.str()); + + // Make sure all custom command outputs in this target are built. + if(this->CustomCommandDriver == OnDepends) + { + this->DriveCustomCommands(depends); + } + + // Write the rule. + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + depTarget.c_str(), + depends, commands, true); +} + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::DriveCustomCommands(std::vector& depends) +{ + // Depend on all custom command outputs. + const std::vector& sources = + this->Target->GetSourceFiles(); + for(std::vector::const_iterator source = sources.begin(); + source != sources.end(); ++source) + { + if(cmCustomCommand* cc = (*source)->GetCustomCommand()) + { + const std::vector& outputs = cc->GetOutputs(); + for(std::vector::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) + { + depends.push_back(*o); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator +::WriteObjectDependRules(cmSourceFile& source, + std::vector& depends) +{ + // Create the list of dependencies known at cmake time. These are + // shared between the object file and dependency scanning rule. + depends.push_back(source.GetFullPath()); + if(const char* objectDeps = source.GetProperty("OBJECT_DEPENDS")) + { + std::vector deps; + cmSystemTools::ExpandListArgument(objectDeps, deps); + for(std::vector::iterator i = deps.begin(); + i != deps.end(); ++i) + { + depends.push_back(i->c_str()); + } + } +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator +::GenerateCustomRuleFile(const cmCustomCommand& cc) +{ + // Collect the commands. + std::vector commands; + std::string comment = this->LocalGenerator->ConstructComment(cc); + if(!comment.empty()) + { + // add in a progress call if needed + std::string progressDir = this->Makefile->GetHomeOutputDirectory(); + progressDir += cmake::GetCMakeFilesDirectory(); + cmOStringStream progCmd; + progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report "; + progCmd << this->LocalGenerator->Convert(progressDir.c_str(), + cmLocalGenerator::FULL, + cmLocalGenerator::SHELL); + this->NumberOfProgressActions++; + progCmd << " $(CMAKE_PROGRESS_" + << this->NumberOfProgressActions + << ")"; + commands.push_back(progCmd.str()); + this->LocalGenerator + ->AppendEcho(commands, comment.c_str(), + cmLocalUnixMakefileGenerator3::EchoGenerate); + } + this->LocalGenerator->AppendCustomCommand(commands, cc); + + // Collect the dependencies. + std::vector depends; + this->LocalGenerator->AppendCustomDepend(depends, cc); + + // Add a dependency on the rule file itself. + this->LocalGenerator->AppendRuleDepend(depends, + this->BuildFileNameFull.c_str()); + + // Check whether we need to bother checking for a symbolic output. + bool need_symbolic = this->GlobalGenerator->GetNeedSymbolicMark(); + + // Write the rule. + const std::vector& outputs = cc.GetOutputs(); + std::vector::const_iterator o = outputs.begin(); + { + bool symbolic = false; + if(need_symbolic) + { + if(cmSourceFile* sf = this->Makefile->GetSource(o->c_str())) + { + symbolic = sf->GetPropertyAsBool("SYMBOLIC"); + } + } + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + o->c_str(), depends, commands, + symbolic); + } + + // Write rules to drive building any outputs beyond the first. + const char* in = o->c_str(); + for(++o; o != outputs.end(); ++o) + { + bool symbolic = false; + if(need_symbolic) + { + if(cmSourceFile* sf = this->Makefile->GetSource(o->c_str())) + { + symbolic = sf->GetPropertyAsBool("SYMBOLIC"); + } + } + this->GenerateExtraOutput(o->c_str(), in, symbolic); + } + + // Setup implicit dependency scanning. + for(cmCustomCommand::ImplicitDependsList::const_iterator + idi = cc.GetImplicitDepends().begin(); + idi != cc.GetImplicitDepends().end(); ++idi) + { + std::string objFullPath = + this->Convert(outputs[0].c_str(), cmLocalGenerator::FULL); + std::string srcFullPath = + this->Convert(idi->second.c_str(), cmLocalGenerator::FULL); + this->LocalGenerator-> + AddImplicitDepends(*this->Target, idi->first.c_str(), + objFullPath.c_str(), + srcFullPath.c_str()); + } +} + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::GenerateExtraOutput(const char* out, const char* in, bool symbolic) +{ + // Add a rule to build the primary output if the extra output needs + // to be created. + std::vector commands; + std::vector depends; + std::string emptyCommand = this->GlobalGenerator->GetEmptyRuleHackCommand(); + if(!emptyCommand.empty()) + { + commands.push_back(emptyCommand); + } + depends.push_back(in); + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + out, depends, commands, + symbolic); + + // Register the extra output as paired with the first output so that + // the check-build-system step will remove the primary output if any + // extra outputs are missing. This forces the rule to regenerate + // all outputs. + this->AddMultipleOutputPair(out, in); +} + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::WriteObjectsVariable(std::string& variableName, + std::string& variableNameExternal) +{ + // Write a make variable assignment that lists all objects for the + // target. + variableName = + this->LocalGenerator->CreateMakeVariable(this->Target->GetName(), + "_OBJECTS"); + *this->BuildFileStream + << "# Object files for target " << this->Target->GetName() << "\n" + << variableName.c_str() << " ="; + std::string object; + const char* objName = + this->Makefile->GetDefinition("CMAKE_NO_QUOTED_OBJECTS"); + const char* lineContinue = + this->Makefile->GetDefinition("CMAKE_MAKE_LINE_CONTINUE"); + if(!lineContinue) + { + lineContinue = "\\"; + } + for(std::vector::const_iterator i = this->Objects.begin(); + i != this->Objects.end(); ++i) + { + if ( this->ExtraContent.find(i->c_str()) != this->ExtraContent.end() ) + { + continue; + } + *this->BuildFileStream << " " << lineContinue << "\n"; + if(objName) + { + *this->BuildFileStream << + this->Convert(i->c_str(), cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::MAKEFILE); + } + else + { + *this->BuildFileStream << + this->LocalGenerator->ConvertToQuotedOutputPath(i->c_str()); + } + } + *this->BuildFileStream << "\n"; + + // Write a make variable assignment that lists all external objects + // for the target. + variableNameExternal = + this->LocalGenerator->CreateMakeVariable(this->Target->GetName(), + "_EXTERNAL_OBJECTS"); + *this->BuildFileStream + << "\n" + << "# External object files for target " + << this->Target->GetName() << "\n" + << variableNameExternal.c_str() << " ="; + for(std::vector::const_iterator i = + this->ExternalObjects.begin(); + i != this->ExternalObjects.end(); ++i) + { + object = this->Convert(i->c_str(),cmLocalGenerator::START_OUTPUT); + *this->BuildFileStream + << " " << lineContinue << "\n" + << this->Makefile->GetSafeDefinition("CMAKE_OBJECT_NAME"); + if(objName) + { + *this->BuildFileStream << + this->Convert(i->c_str(), cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::MAKEFILE); + } + else + { + *this->BuildFileStream << + this->LocalGenerator->ConvertToQuotedOutputPath(i->c_str()); + } + } + *this->BuildFileStream << "\n" << "\n"; +} + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::WriteObjectsString(std::string& buildObjs) +{ + std::vector objStrings; + this->WriteObjectsStrings(objStrings); + buildObjs = objStrings[0]; +} + +//---------------------------------------------------------------------------- +class cmMakefileTargetGeneratorObjectStrings +{ +public: + cmMakefileTargetGeneratorObjectStrings(std::vector& strings, + cmMakefile* mf, + cmLocalUnixMakefileGenerator3* lg, + std::string::size_type limit): + Strings(strings), Makefile(mf), LocalGenerator(lg), LengthLimit(limit) + { + this->NoQuotes = mf->IsOn("CMAKE_NO_QUOTED_OBJECTS"); + this->Space = ""; + } + void Feed(std::string const& obj) + { + // Construct the name of the next object. + if(this->NoQuotes) + { + this->NextObject = + this->LocalGenerator->Convert(obj.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + } + else + { + this->NextObject = + this->LocalGenerator->ConvertToQuotedOutputPath(obj.c_str()); + } + + // Roll over to next string if the limit will be exceeded. + if(this->LengthLimit != std::string::npos && + (this->CurrentString.length() + 1 + this->NextObject.length() + > this->LengthLimit)) + { + this->Strings.push_back(this->CurrentString); + this->CurrentString = ""; + this->Space = ""; + } + + // Separate from previous object. + this->CurrentString += this->Space; + this->Space = " "; + + // Append this object. + this->CurrentString += this->NextObject; + } + void Done() + { + this->Strings.push_back(this->CurrentString); + } +private: + std::vector& Strings; + cmMakefile* Makefile; + cmLocalUnixMakefileGenerator3* LocalGenerator; + std::string::size_type LengthLimit; + bool NoQuotes; + std::string CurrentString; + std::string NextObject; + const char* Space; +}; + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::WriteObjectsStrings(std::vector& objStrings, + std::string::size_type limit) +{ + cmMakefileTargetGeneratorObjectStrings + helper(objStrings, this->Makefile, this->LocalGenerator, limit); + for(std::vector::const_iterator i = this->Objects.begin(); + i != this->Objects.end(); ++i) + { + if ( this->ExtraContent.find(i->c_str()) != this->ExtraContent.end() ) + { + continue; + } + helper.Feed(*i); + } + for(std::vector::const_iterator i = + this->ExternalObjects.begin(); + i != this->ExternalObjects.end(); ++i) + { + helper.Feed(*i); + } + helper.Done(); +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteTargetDriverRule(const char* main_output, + bool relink) +{ + // Compute the name of the driver target. + std::string dir = + this->LocalGenerator->GetRelativeTargetDirectory(*this->Target); + std::string buildTargetRuleName = dir; + buildTargetRuleName += relink?"/preinstall":"/build"; + buildTargetRuleName = this->Convert(buildTargetRuleName.c_str(), + cmLocalGenerator::HOME_OUTPUT, + cmLocalGenerator::UNCHANGED); + + // Build the list of target outputs to drive. + std::vector depends; + if(main_output) + { + depends.push_back(main_output); + } + + const char* comment = 0; + if(relink) + { + // Setup the comment for the preinstall driver. + comment = "Rule to relink during preinstall."; + } + else + { + // Setup the comment for the main build driver. + comment = "Rule to build all files generated by this target."; + + // Make sure all custom command outputs in this target are built. + if(this->CustomCommandDriver == OnBuild) + { + this->DriveCustomCommands(depends); + } + } + + // Write the driver rule. + std::vector no_commands; + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, comment, + buildTargetRuleName.c_str(), + depends, no_commands, true); +} + +//---------------------------------------------------------------------------- +std::string cmMakefileTargetGenerator::GetFrameworkFlags() +{ +#ifndef __APPLE__ + return std::string(); +#else + std::set emitted; + emitted.insert("/System/Library/Frameworks"); + std::vector includes; + this->LocalGenerator->GetIncludeDirectories(includes); + std::vector::iterator i; + // check all include directories for frameworks as this + // will already have added a -F for the framework + for(i = includes.begin(); i != includes.end(); ++i) + { + if(this->Target->NameResolvesToFramework(i->c_str())) + { + std::string frameworkDir = *i; + frameworkDir += "/../"; + frameworkDir = cmSystemTools::CollapseFullPath(frameworkDir.c_str()); + emitted.insert(frameworkDir); + } + } + + std::string flags; + std::vector& frameworks = this->Target->GetFrameworks(); + for(i = frameworks.begin(); + i != frameworks.end(); ++i) + { + if(emitted.insert(*i).second) + { + flags += "-F"; + flags += this->LocalGenerator->ConvertToOutputForExisting(i->c_str()); + flags += " "; + } + } + return flags; +#endif +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator +::AppendTargetDepends(std::vector& depends) +{ + // Static libraries never depend on anything for linking. + if(this->Target->GetType() == cmTarget::STATIC_LIBRARY) + { + return; + } + // Compute which library configuration to link. + cmTarget::LinkLibraryType linkType = cmTarget::OPTIMIZED; + if(cmSystemTools::UpperCase( + this->LocalGenerator->ConfigurationName.c_str()) == "DEBUG") + { + linkType = cmTarget::DEBUG; + } + // Keep track of dependencies already listed. + std::set emitted; + + // A target should not depend on itself. + emitted.insert(this->Target->GetName()); + + // Loop over all library dependencies. + const cmTarget::LinkLibraryVectorType& tlibs = + this->Target->GetLinkLibraries(); + for(cmTarget::LinkLibraryVectorType::const_iterator lib = tlibs.begin(); + lib != tlibs.end(); ++lib) + { + // skip the library if it is not general and the link type + // does not match the current target + if(lib->second != cmTarget::GENERAL && + lib->second != linkType) + { + continue; + } + + // Don't emit the same library twice for this target. + if(emitted.insert(lib->first).second) + { + // Depend on other CMake targets. + if(cmTarget* tgt = + this->GlobalGenerator->FindTarget(0, lib->first.c_str())) + { + if(const char* location = + tgt->GetLocation(this->LocalGenerator->ConfigurationName.c_str())) + { + depends.push_back(location); + } + } + // depend on full path libs as well + else if(cmSystemTools::FileIsFullPath(lib->first.c_str())) + { + depends.push_back(lib->first.c_str()); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator +::CloseFileStreams() +{ + delete this->BuildFileStream; + delete this->InfoFileStream; + delete this->FlagFileStream; +} + +void cmMakefileTargetGenerator::RemoveForbiddenFlags(const char* flagVar, + const char* linkLang, + std::string& linkFlags) +{ + // check for language flags that are not allowed at link time, and + // remove them, -w on darwin for gcc -w -dynamiclib sends -w to libtool + // which fails, there may be more] + + std::string removeFlags = "CMAKE_"; + removeFlags += linkLang; + removeFlags += flagVar; + std::string removeflags = + this->Makefile->GetSafeDefinition(removeFlags.c_str()); + std::vector removeList; + cmSystemTools::ExpandListArgument(removeflags, removeList); + for(std::vector::iterator i = removeList.begin(); + i != removeList.end(); ++i) + { + cmSystemTools::ReplaceString(linkFlags, i->c_str(), ""); + } +} + +void cmMakefileTargetGenerator::WriteProgressVariables(unsigned long total, + unsigned long ¤t) +{ + cmGeneratedFileStream *progressFileStream = + new cmGeneratedFileStream(this->ProgressFileNameFull.c_str()); + if(!progressFileStream) + { + return; + } + + unsigned long num; + unsigned long i; + for (i = 1; i <= this->NumberOfProgressActions; ++i) + { + *progressFileStream + << "CMAKE_PROGRESS_" << i << " = "; + if (total <= 100) + { + num = i + current; + *progressFileStream << num; + this->LocalGenerator->ProgressFiles[this->Target->GetName()] + .push_back(num); + } + else if (((i+current)*100)/total > ((i-1+current)*100)/total) + { + num = ((i+current)*100)/total; + *progressFileStream << num; + this->LocalGenerator->ProgressFiles[this->Target->GetName()] + .push_back(num); + } + *progressFileStream << "\n"; + } + *progressFileStream << "\n"; + current += this->NumberOfProgressActions; + delete progressFileStream; +} + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::AddMultipleOutputPair(const char* depender, const char* dependee) +{ + MultipleOutputPairsType::value_type p(depender, dependee); + this->MultipleOutputPairs.insert(p); +} + +//---------------------------------------------------------------------------- +void +cmMakefileTargetGenerator +::CreateLinkScript(const char* name, + std::vector const& link_commands, + std::vector& makefile_commands) +{ + // Create the link script file. + std::string linkScriptName = this->TargetBuildDirectoryFull; + linkScriptName += "/"; + linkScriptName += name; + cmGeneratedFileStream linkScriptStream(linkScriptName.c_str()); + for(std::vector::const_iterator cmd = link_commands.begin(); + cmd != link_commands.end(); ++cmd) + { + // Do not write out empty commands or commands beginning in the + // shell no-op ":". + if(!cmd->empty() && (*cmd)[0] != ':') + { + linkScriptStream << *cmd << "\n"; + } + } + + // Create the makefile command to invoke the link script. + std::string link_command = "$(CMAKE_COMMAND) -E cmake_link_script "; + link_command += this->Convert(linkScriptName.c_str(), + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + link_command += " --verbose=$(VERBOSE)"; + makefile_commands.push_back(link_command); +} + +//---------------------------------------------------------------------------- +const char* cmMakefileTargetGenerator::GetFortranModuleDirectory() +{ + // Compute the module directory. + if(!this->FortranModuleDirectoryComputed) + { + const char* target_mod_dir = + this->Target->GetProperty("Fortran_MODULE_DIRECTORY"); + const char* moddir_flag = + this->Makefile->GetDefinition("CMAKE_Fortran_MODDIR_FLAG"); + if(target_mod_dir && moddir_flag) + { + // Compute the full path to the module directory. + if(cmSystemTools::FileIsFullPath(target_mod_dir)) + { + // Already a full path. + this->FortranModuleDirectory = target_mod_dir; + } + else + { + // Interpret relative to the current output directory. + this->FortranModuleDirectory = + this->Makefile->GetCurrentOutputDirectory(); + this->FortranModuleDirectory += "/"; + this->FortranModuleDirectory += target_mod_dir; + } + + // Make sure the module output directory exists. + cmSystemTools::MakeDirectory(this->FortranModuleDirectory.c_str()); + } + this->FortranModuleDirectoryComputed = true; + } + + // Return the computed directory. + if(this->FortranModuleDirectory.empty()) + { + return 0; + } + else + { + return this->FortranModuleDirectory.c_str(); + } +} + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::AddFortranFlags(std::string& flags) +{ + // Add a module output directory flag if necessary. + if(const char* mod_dir = this->GetFortranModuleDirectory()) + { + const char* moddir_flag = + this->Makefile->GetRequiredDefinition("CMAKE_Fortran_MODDIR_FLAG"); + std::string modflag = moddir_flag; + modflag += this->Convert(mod_dir, + cmLocalGenerator::START_OUTPUT, + cmLocalGenerator::SHELL); + this->LocalGenerator->AppendFlags(flags, modflag.c_str()); + } + + // If there is a separate module path flag then duplicate the + // include path with it. This compiler does not search the include + // path for modules. + if(const char* modpath_flag = + this->Makefile->GetDefinition("CMAKE_Fortran_MODPATH_FLAG")) + { + std::vector includes; + this->LocalGenerator->GetIncludeDirectories(includes); + for(std::vector::const_iterator idi = includes.begin(); + idi != includes.end(); ++idi) + { + std::string flg = modpath_flag; + flg += this->Convert(idi->c_str(), + cmLocalGenerator::NONE, + cmLocalGenerator::SHELL); + this->LocalGenerator->AppendFlags(flags, flg.c_str()); + } + } +} diff --git a/CMakeLua/Source/cmMakefileTargetGenerator.h b/CMakeLua/Source/cmMakefileTargetGenerator.h new file mode 100644 index 0000000..31ea2a6 --- /dev/null +++ b/CMakeLua/Source/cmMakefileTargetGenerator.h @@ -0,0 +1,211 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileTargetGenerator.h,v $ + Language: C++ + Date: $Date: 2008/01/30 01:46:25 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMakefileTargetGenerator_h +#define cmMakefileTargetGenerator_h + +#include "cmLocalUnixMakefileGenerator3.h" + +class cmCustomCommand; +class cmDependInformation; +class cmDepends; +class cmGeneratedFileStream; +class cmGlobalUnixMakefileGenerator3; +class cmLocalUnixMakefileGenerator3; +class cmMakefile; +class cmTarget; +class cmSourceFile; + +/** \class cmMakefileTargetGenerator + * \brief Support Routines for writing makefiles + * + */ +class cmMakefileTargetGenerator +{ +public: + // constructor to set the ivars + cmMakefileTargetGenerator(); + virtual ~cmMakefileTargetGenerator() {}; + + // construct using this factory call + static cmMakefileTargetGenerator *New(cmLocalUnixMakefileGenerator3 *lg, + cmStdString tgtName, + cmTarget *tgt); + + /* the main entry point for this class. Writes the Makefiles associated + with this target */ + virtual void WriteRuleFiles() = 0; + + /* the main entry point for this class. Writes the Makefiles associated + with this target */ + virtual void WriteProgressVariables(unsigned long total, + unsigned long ¤t); + + /* return the number of actions that have progress reporting on them */ + virtual unsigned long GetNumberOfProgressActions() { + return this->NumberOfProgressActions;} + + const char *GetTargetName() { return this->TargetName.c_str(); } + cmTarget* GetTarget() { return this->Target;} +protected: + + // create the file and directory etc + void CreateRuleFile(); + + // outputs the rules for object files and custom commands used by + // this target + void WriteTargetBuildRules(); + + // write some common code at the top of build.make + void WriteCommonCodeRules(); + void WriteTargetLanguageFlags(); + + // write the provide require rules for this target + void WriteTargetRequiresRules(); + + // write the clean rules for this target + void WriteTargetCleanRules(); + + // write the depend rules for this target + void WriteTargetDependRules(); + + // write the rules for an object + void WriteObjectRuleFiles(cmSourceFile& source); + + // write the build rule for an object + void WriteObjectBuildFile(std::string &obj, + const char *lang, + cmSourceFile& source, + std::vector& depends); + + // write the depend.make file for an object + void WriteObjectDependRules(cmSourceFile& source, + std::vector& depends); + + // write the build rule for a custom command + void GenerateCustomRuleFile(const cmCustomCommand& cc); + + // write a rule to drive building of more than one output from + // another rule + void GenerateExtraOutput(const char* out, const char* in, + bool symbolic = false); + + // write out the variable that lists the objects for this target + void WriteObjectsVariable(std::string& variableName, + std::string& variableNameExternal); + void WriteObjectsString(std::string& buildObjs); + void WriteObjectsStrings(std::vector& objStrings, + std::string::size_type limit = std::string::npos); + + // write the driver rule to build target outputs + void WriteTargetDriverRule(const char* main_output, bool relink); + + void DriveCustomCommands(std::vector& depends); + + // Return the a string with -F flags on apple + std::string GetFrameworkFlags(); + + // append intertarget dependencies + void AppendTargetDepends(std::vector& depends); + + /** In order to support parallel builds for custom commands with + multiple outputs the outputs are given a serial order, and only + the first output actually has the build rule. Other outputs + just depend on the first one. The check-build-system step must + remove a dependee if the depender is missing to make sure both + are regenerated properly. This method is used by the local + makefile generators to register such pairs. */ + void AddMultipleOutputPair(const char* depender, const char* dependee); + + /** Create a script to hold link rules and a command to invoke the + script at build time. */ + void CreateLinkScript(const char* name, + std::vector const& link_commands, + std::vector& makefile_commands); + + virtual void CloseFileStreams(); + void RemoveForbiddenFlags(const char* flagVar, const char* linkLang, + std::string& linkFlags); + cmStdString TargetName; + cmTarget *Target; + cmLocalUnixMakefileGenerator3 *LocalGenerator; + cmGlobalUnixMakefileGenerator3 *GlobalGenerator; + cmMakefile *Makefile; + + enum CustomCommandDriveType { OnBuild, OnDepends, OnUtility }; + CustomCommandDriveType CustomCommandDriver; + + // the full path to the build file + std::string BuildFileName; + std::string BuildFileNameFull; + + // the full path to the progress file + std::string ProgressFileName; + std::string ProgressFileNameFull; + unsigned long NumberOfProgressActions; + + // the path to the directory the build file is in + std::string TargetBuildDirectory; + std::string TargetBuildDirectoryFull; + + // the stream for the build file + cmGeneratedFileStream *BuildFileStream; + + // the stream for the flag file + std::string FlagFileNameFull; + cmGeneratedFileStream *FlagFileStream; + + // the stream for the info file + std::string InfoFileNameFull; + cmGeneratedFileStream *InfoFileStream; + + // files to clean + std::vector CleanFiles; + + // objects used by this target + std::vector Objects; + std::vector ExternalObjects; + std::set ExtraContent; + + // Set of object file names that will be built in this directory. + std::set ObjectFiles; + + typedef std::map MultipleOutputPairsType; + MultipleOutputPairsType MultipleOutputPairs; + + // Target-wide Fortran module output directory. + bool FortranModuleDirectoryComputed; + std::string FortranModuleDirectory; + const char* GetFortranModuleDirectory(); + + // Compute target-specific Fortran language flags. + void AddFortranFlags(std::string& flags); + + //================================================================== + // Convenience routines that do nothing more than forward to + // implementaitons + std::string Convert(const char* source, + cmLocalGenerator::RelativeRoot relative, + cmLocalGenerator::OutputFormat output = + cmLocalGenerator::UNCHANGED, + bool optional = false) + { + return this->LocalGenerator->Convert(source, relative, output, optional); + } + +}; + +#endif diff --git a/CMakeLua/Source/cmMakefileUtilityTargetGenerator.cxx b/CMakeLua/Source/cmMakefileUtilityTargetGenerator.cxx new file mode 100644 index 0000000..077ddbe --- /dev/null +++ b/CMakeLua/Source/cmMakefileUtilityTargetGenerator.cxx @@ -0,0 +1,99 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileUtilityTargetGenerator.cxx,v $ + Language: C++ + Date: $Date: 2007/12/21 17:22:12 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMakefileUtilityTargetGenerator.h" + +#include "cmGeneratedFileStream.h" +#include "cmGlobalUnixMakefileGenerator3.h" +#include "cmLocalUnixMakefileGenerator3.h" +#include "cmMakefile.h" +#include "cmSourceFile.h" +#include "cmTarget.h" + +//---------------------------------------------------------------------------- +cmMakefileUtilityTargetGenerator::cmMakefileUtilityTargetGenerator() +{ + this->CustomCommandDriver = OnUtility; +} + +//---------------------------------------------------------------------------- +void cmMakefileUtilityTargetGenerator::WriteRuleFiles() +{ + this->CreateRuleFile(); + + *this->BuildFileStream + << "# Utility rule file for " << this->Target->GetName() << ".\n\n"; + + // write the custom commands for this target + this->WriteTargetBuildRules(); + + // Collect the commands and dependencies. + std::vector commands; + std::vector depends; + + // Utility targets store their rules in pre- and post-build commands. + this->LocalGenerator->AppendCustomDepends + (depends, this->Target->GetPreBuildCommands()); + + this->LocalGenerator->AppendCustomDepends + (depends, this->Target->GetPostBuildCommands()); + + this->LocalGenerator->AppendCustomCommands + (commands, this->Target->GetPreBuildCommands()); + + // Depend on all custom command outputs for sources + this->DriveCustomCommands(depends); + + this->LocalGenerator->AppendCustomCommands + (commands, this->Target->GetPostBuildCommands()); + + // Add dependencies on targets that must be built first. + this->AppendTargetDepends(depends); + + // Add a dependency on the rule file itself. + this->LocalGenerator->AppendRuleDepend(depends, + this->BuildFileNameFull.c_str()); + + // If the rule is empty add the special empty rule dependency needed + // by some make tools. + if(depends.empty() && commands.empty()) + { + std::string hack = this->GlobalGenerator->GetEmptyRuleHackDepends(); + if(!hack.empty()) + { + depends.push_back(hack); + } + } + + // Write the rule. + this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0, + this->Target->GetName(), + depends, commands, true); + + // Write the main driver rule to build everything in this target. + this->WriteTargetDriverRule(this->Target->GetName(), false); + + // Write clean target + this->WriteTargetCleanRules(); + + // Write the dependency generation rule. This must be done last so + // that multiple output pair information is available. + this->WriteTargetDependRules(); + + // close the streams + this->CloseFileStreams(); +} + diff --git a/CMakeLua/Source/cmMakefileUtilityTargetGenerator.h b/CMakeLua/Source/cmMakefileUtilityTargetGenerator.h new file mode 100644 index 0000000..6346f8e --- /dev/null +++ b/CMakeLua/Source/cmMakefileUtilityTargetGenerator.h @@ -0,0 +1,36 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMakefileUtilityTargetGenerator.h,v $ + Language: C++ + Date: $Date: 2007/03/02 19:31:04 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMakefileUtilityTargetGenerator_h +#define cmMakefileUtilityTargetGenerator_h + +#include "cmMakefileTargetGenerator.h" + +class cmMakefileUtilityTargetGenerator: + public cmMakefileTargetGenerator +{ +public: + cmMakefileUtilityTargetGenerator(); + + /* the main entry point for this class. Writes the Makefiles associated + with this target */ + virtual void WriteRuleFiles(); + +protected: + +}; + +#endif diff --git a/CMakeLua/Source/cmMarkAsAdvancedCommand.cxx b/CMakeLua/Source/cmMarkAsAdvancedCommand.cxx new file mode 100644 index 0000000..a502253 --- /dev/null +++ b/CMakeLua/Source/cmMarkAsAdvancedCommand.cxx @@ -0,0 +1,67 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMarkAsAdvancedCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMarkAsAdvancedCommand.h" + +// cmMarkAsAdvancedCommand +bool cmMarkAsAdvancedCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + unsigned int i =0; + const char* value = "1"; + bool overwrite = false; + if(args[0] == "CLEAR" || args[0] == "FORCE") + { + overwrite = true; + if(args[0] == "CLEAR") + { + value = "0"; + } + i = 1; + } + for(; i < args.size(); ++i) + { + std::string variable = args[i]; + cmCacheManager* manager = this->Makefile->GetCacheManager(); + cmCacheManager::CacheIterator it = + manager->GetCacheIterator(variable.c_str()); + if ( it.IsAtEnd() ) + { + this->Makefile->GetCacheManager() + ->AddCacheEntry(variable.c_str(), 0, 0, + cmCacheManager::UNINITIALIZED); + overwrite = true; + } + it.Find(variable.c_str()); + if ( it.IsAtEnd() ) + { + cmSystemTools::Error("This should never happen..."); + return false; + } + if ( !it.PropertyExists("ADVANCED") || overwrite ) + { + it.SetProperty("ADVANCED", value); + } + } + return true; +} + diff --git a/CMakeLua/Source/cmMarkAsAdvancedCommand.h b/CMakeLua/Source/cmMarkAsAdvancedCommand.h new file mode 100644 index 0000000..4293cfc --- /dev/null +++ b/CMakeLua/Source/cmMarkAsAdvancedCommand.h @@ -0,0 +1,90 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMarkAsAdvancedCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMarkAsAdvancedCommand_h +#define cmMarkAsAdvancedCommand_h + +#include "cmCommand.h" + +/** \class cmMarkAsAdvancedCommand + * \brief MarkAsAdvanced a CMAKE variable + * + * cmMarkAsAdvancedCommand sets a variable to a value with expansion. + */ +class cmMarkAsAdvancedCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmMarkAsAdvancedCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "mark_as_advanced";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Mark cmake cached variables as advanced."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " mark_as_advanced([CLEAR|FORCE] VAR VAR2 VAR...)\n" + "Mark the named cached variables as advanced. An advanced variable " + "will not be displayed in any of the cmake GUIs unless the show " + "advanced option is on. " + "If CLEAR is the first argument advanced variables are changed back " + "to unadvanced. " + "If FORCE is the first argument, then the variable is made advanced. " + "If neither FORCE nor CLEAR is specified, new values will be marked as " + "advanced, but if the variable already has an advanced/non-advanced " + "state, it will not be changed.\n" + "It does nothing in script mode."; + } + + /** + * This determines if the command is invoked when in script mode. + * mark_as_advanced() will have no effect in script mode, but this will + * make many of the modules usable in cmake/ctest scripts, (among them + * FindUnixMake.cmake used by the CTEST_BUILD command. + */ + virtual bool IsScriptable() { return true; } + + cmTypeMacro(cmMarkAsAdvancedCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmMathCommand.cxx b/CMakeLua/Source/cmMathCommand.cxx new file mode 100644 index 0000000..149ac0c --- /dev/null +++ b/CMakeLua/Source/cmMathCommand.cxx @@ -0,0 +1,66 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMathCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMathCommand.h" + +#include "cmExprParserHelper.h" + +//---------------------------------------------------------------------------- +bool cmMathCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if ( args.size() < 1 ) + { + this->SetError("must be called with at least one argument."); + return false; + } + const std::string &subCommand = args[0]; + if(subCommand == "EXPR") + { + return this->HandleExprCommand(args); + } + std::string e = "does not recognize sub-command "+subCommand; + this->SetError(e.c_str()); + return false; +} + +//---------------------------------------------------------------------------- +bool cmMathCommand::HandleExprCommand(std::vector const& args) +{ + if ( args.size() != 3 ) + { + this->SetError("EXPR called with incorrect arguments."); + return false; + } + + const std::string& outputVariable = args[1]; + const std::string& expression = args[2]; + + cmExprParserHelper helper; + if ( !helper.ParseString(expression.c_str(), 0) ) + { + std::string e = "cannot parse the expression: \""+expression+"\": "; + e += helper.GetError(); + this->SetError(e.c_str()); + return false; + } + + char buffer[1024]; + sprintf(buffer, "%d", helper.GetResult()); + + this->Makefile->AddDefinition(outputVariable.c_str(), buffer); + return true; +} diff --git a/CMakeLua/Source/cmMathCommand.h b/CMakeLua/Source/cmMathCommand.h new file mode 100644 index 0000000..c88bd6f --- /dev/null +++ b/CMakeLua/Source/cmMathCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMathCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMathCommand_h +#define cmMathCommand_h + +#include "cmCommand.h" + +/** \class cmMathCommand + * \brief Common string operations + * + */ +class cmMathCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmMathCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "math";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Mathematical expressions."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " math(EXPR )\n" + "EXPR evaluates mathematical expression and return result in the " + "output variable. Example mathematical expression is " + "'5 * ( 10 + 13 )'. Supported operators are " + "+ - * / % | & ^ ~ << >> * / %. They have the same meaning " + " as they do in c code."; + } + + cmTypeMacro(cmMathCommand, cmCommand); +protected: + + bool HandleExprCommand(std::vector const& args); +}; + + +#endif + diff --git a/CMakeLua/Source/cmMessageCommand.cxx b/CMakeLua/Source/cmMessageCommand.cxx new file mode 100644 index 0000000..e9bea81 --- /dev/null +++ b/CMakeLua/Source/cmMessageCommand.cxx @@ -0,0 +1,82 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMessageCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.22 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmMessageCommand.h" + +// cmLibraryCommand +bool cmMessageCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::string message; + std::vector::const_iterator i = args.begin(); + + bool send_error = false; + bool fatal_error = false; + bool status = false; + if (*i == "SEND_ERROR") + { + send_error = true; + ++i; + } + else + { + if (*i == "STATUS") + { + status = true; + ++i; + } + else + { + if (*i == "FATAL_ERROR") + { + fatal_error = true; + ++i; + } + } + } + + for(;i != args.end(); ++i) + { + message += *i; + } + + if (send_error || fatal_error) + { + cmSystemTools::Error(message.c_str()); + } + else + { + if (status) + { + this->Makefile->DisplayStatus(message.c_str(), -1); + } + else + { + cmSystemTools::Message(message.c_str()); + } + } + if(fatal_error ) + { + cmSystemTools::SetFatalErrorOccured(); + } + return true; +} + diff --git a/CMakeLua/Source/cmMessageCommand.h b/CMakeLua/Source/cmMessageCommand.h new file mode 100644 index 0000000..a15484d --- /dev/null +++ b/CMakeLua/Source/cmMessageCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmMessageCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmMessageCommand_h +#define cmMessageCommand_h + +#include "cmCommand.h" + +/** \class cmMessageCommand + * \brief Displays a message to the user + * + */ +class cmMessageCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmMessageCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "message";} + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Display a message to the user."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " message([SEND_ERROR | STATUS | FATAL_ERROR]\n" + " \"message to display\" ...)\n" + "By default the message is displayed in a pop up window (CMakeSetup), " + "or in the stdout of cmake, or the error section of ccmake. " + "If the first argument is " + "SEND_ERROR then an error is raised, and the generate phase will " + "be skipped. If the first argument is FATAL_ERROR, all processing " + "is halted. If the first argument is STATUS then the message is " + "displayed in the progress line for the GUI, or with a -- in the " + "command line cmake."; + } + + cmTypeMacro(cmMessageCommand, cmCommand); +}; + + +#endif diff --git a/CMakeLua/Source/cmObject.h b/CMakeLua/Source/cmObject.h new file mode 100644 index 0000000..7cb2b45 --- /dev/null +++ b/CMakeLua/Source/cmObject.h @@ -0,0 +1,56 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmObject.h,v $ + Language: C++ + Date: $Date: 2006/05/12 17:39:34 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmObject_h +#define cmObject_h + +#include "cmStandardIncludes.h" + +/** \class cmObject + * \brief Superclass for all commands and other classes in CMake. + * + * cmObject is the base class for all classes in CMake. It defines some + * methods such as GetNameOfClass, IsA, SafeDownCast. + */ +class cmObject +{ +public: + /** + * Need virtual destructor to destroy real command type. + */ + virtual ~cmObject() {} + + /** + * The class name of the command. + */ + virtual const char* GetNameOfClass() = 0; + + /** + * Returns true if this class is the given class, or a subclass of it. + */ + static bool IsTypeOf(const char *type) + { return !strcmp("cmObject", type); } + + /** + * Returns true if this object is an instance of the given class or + * a subclass of it. + */ + virtual bool IsA(const char *type) + { return cmObject::IsTypeOf(type); } +}; + +#endif + diff --git a/CMakeLua/Source/cmOptionCommand.cxx b/CMakeLua/Source/cmOptionCommand.cxx new file mode 100644 index 0000000..1320b2b --- /dev/null +++ b/CMakeLua/Source/cmOptionCommand.cxx @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmOptionCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmOptionCommand.h" + +// cmOptionCommand +bool cmOptionCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + bool argError = false; + if(args.size() < 2) + { + argError = true; + } + // for VTK 4.0 we have to support the option command with more than 3 + // arguments if CMAKE_MINIMUM_REQUIRED_VERSION is not defined, if + // CMAKE_MINIMUM_REQUIRED_VERSION is defined, then we can have stricter + // checking. + if(this->Makefile->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION")) + { + if(args.size() > 3) + { + argError = true; + } + } + if(argError) + { + std::string m = "called with incorrect number of arguments: "; + for(size_t i =0; i < args.size(); ++i) + { + m += args[i]; + m += " "; + } + this->SetError(m.c_str()); + return false; + } + + std::string initialValue = "Off"; + // Now check and see if the value has been stored in the cache + // already, if so use that value and don't look for the program + cmCacheManager::CacheIterator it = + this->Makefile->GetCacheManager()->GetCacheIterator(args[0].c_str()); + if(!it.IsAtEnd()) + { + if ( it.GetType() != cmCacheManager::UNINITIALIZED ) + { + it.SetProperty("HELPSTRING", args[1].c_str()); + return true; + } + if ( it.GetValue() ) + { + initialValue = it.GetValue(); + } + } + if(args.size() == 3) + { + initialValue = args[2]; + } + this->Makefile->AddCacheDefinition(args[0].c_str(), + cmSystemTools::IsOn(initialValue.c_str()), + args[1].c_str()); + + return true; +} diff --git a/CMakeLua/Source/cmOptionCommand.h b/CMakeLua/Source/cmOptionCommand.h new file mode 100644 index 0000000..996632f --- /dev/null +++ b/CMakeLua/Source/cmOptionCommand.h @@ -0,0 +1,80 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmOptionCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmOptionCommand_h +#define cmOptionCommand_h + +#include "cmCommand.h" + +/** \class cmOptionCommand + * \brief Provide an option to the user + * + * cmOptionCommand provides an option for the user to select + */ +class cmOptionCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmOptionCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "option";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Provides an option that the user can optionally select."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " option( \"help string describing option\"\n" + " [initial value])\n" + "Provide an option for the user to select as ON or OFF. If no " + "initial value is provided, OFF is used."; + } + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + cmTypeMacro(cmOptionCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmOrderRuntimeDirectories.cxx b/CMakeLua/Source/cmOrderRuntimeDirectories.cxx new file mode 100644 index 0000000..7170f84 --- /dev/null +++ b/CMakeLua/Source/cmOrderRuntimeDirectories.cxx @@ -0,0 +1,325 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmOrderRuntimeDirectories.cxx,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmOrderRuntimeDirectories.h" + +#include "cmGlobalGenerator.h" +#include "cmSystemTools.h" + +#include + +/* +Directory ordering computation. + - Useful to compute a safe runtime library path order + - Need runtime path for supporting INSTALL_RPATH_USE_LINK_PATH + - Need runtime path at link time to pickup transitive link dependencies + for shared libraries. +*/ + +//---------------------------------------------------------------------------- +cmOrderRuntimeDirectories::cmOrderRuntimeDirectories(cmGlobalGenerator* gg, + const char* name, + const char* purpose) +{ + this->GlobalGenerator = gg; + this->Name = name; + this->Purpose = purpose; + this->Computed = false; +} + +//---------------------------------------------------------------------------- +std::vector const& cmOrderRuntimeDirectories::GetRuntimePath() +{ + if(!this->Computed) + { + this->Computed = true; + this->CollectRuntimeDirectories(); + this->FindConflictingLibraries(); + this->OrderRuntimeSearchPath(); + } + return this->RuntimeSearchPath; +} + +//---------------------------------------------------------------------------- +void cmOrderRuntimeDirectories::AddLibrary(std::string const& fullPath, + const char* soname) +{ + // Add the runtime information at most once. + if(this->LibraryRuntimeInfoEmmitted.insert(fullPath).second) + { + // Construct the runtime information entry for this library. + LibraryRuntimeEntry entry; + entry.FileName = cmSystemTools::GetFilenameName(fullPath); + entry.SOName = soname? soname : ""; + entry.Directory = cmSystemTools::GetFilenamePath(fullPath); + this->LibraryRuntimeInfo.push_back(entry); + } + else + { + // This can happen if the same library is linked multiple times. + // In that case the runtime information check need be done only + // once anyway. For shared libs we could add a check in AddItem + // to not repeat them. + } +} + +//---------------------------------------------------------------------------- +void +cmOrderRuntimeDirectories +::AddDirectories(std::vector const& extra) +{ + this->UserDirectories.insert(this->UserDirectories.end(), + extra.begin(), extra.end()); +} + +//---------------------------------------------------------------------------- +void cmOrderRuntimeDirectories::CollectRuntimeDirectories() +{ + // Get all directories that should be in the runtime search path. + + // Add directories containing libraries. + for(std::vector::iterator + ei = this->LibraryRuntimeInfo.begin(); + ei != this->LibraryRuntimeInfo.end(); ++ei) + { + ei->DirectoryIndex = this->AddRuntimeDirectory(ei->Directory); + } + + // Add link directories specified for inclusion. + for(std::vector::const_iterator + di = this->UserDirectories.begin(); + di != this->UserDirectories.end(); ++di) + { + this->AddRuntimeDirectory(*di); + } +} + +//---------------------------------------------------------------------------- +int cmOrderRuntimeDirectories::AddRuntimeDirectory(std::string const& dir) +{ + // Add the runtime directory with a unique index. + std::map::iterator i = + this->RuntimeDirectoryIndex.find(dir); + if(i == this->RuntimeDirectoryIndex.end()) + { + std::map::value_type + entry(dir, static_cast(this->RuntimeDirectories.size())); + i = this->RuntimeDirectoryIndex.insert(entry).first; + this->RuntimeDirectories.push_back(dir); + } + + return i->second; +} + +//---------------------------------------------------------------------------- +struct cmOrderRuntimeDirectoriesCompare +{ + typedef std::pair RuntimeConflictPair; + + // The conflict pair is unique based on just the directory + // (first). The second element is only used for displaying + // information about why the entry is present. + bool operator()(RuntimeConflictPair const& l, + RuntimeConflictPair const& r) + { + return l.first == r.first; + } +}; + +//---------------------------------------------------------------------------- +void cmOrderRuntimeDirectories::FindConflictingLibraries() +{ + // Allocate the conflict graph. + this->RuntimeConflictGraph.resize(this->RuntimeDirectories.size()); + this->RuntimeDirectoryVisited.resize(this->RuntimeDirectories.size(), 0); + + // Find all runtime directories providing each library. + for(unsigned int lri = 0; lri < this->LibraryRuntimeInfo.size(); ++lri) + { + this->FindDirectoriesForLib(lri); + } + + // Clean up the conflict graph representation. + for(std::vector::iterator + i = this->RuntimeConflictGraph.begin(); + i != this->RuntimeConflictGraph.end(); ++i) + { + // Sort the outgoing edges for each graph node so that the + // original order will be preserved as much as possible. + std::sort(i->begin(), i->end()); + + // Make the edge list unique so cycle detection will be reliable. + RuntimeConflictList::iterator last = + std::unique(i->begin(), i->end(), cmOrderRuntimeDirectoriesCompare()); + i->erase(last, i->end()); + } +} + +//---------------------------------------------------------------------------- +void cmOrderRuntimeDirectories::FindDirectoriesForLib(unsigned int lri) +{ + // Search through the runtime directories to find those providing + // this library. + LibraryRuntimeEntry& re = this->LibraryRuntimeInfo[lri]; + for(unsigned int i = 0; i < this->RuntimeDirectories.size(); ++i) + { + // Skip the directory that is supposed to provide the library. + if(this->RuntimeDirectories[i] == re.Directory) + { + continue; + } + + // Determine which type of check to do. + if(!re.SOName.empty()) + { + // We have the library soname. Check if it will be found. + std::string file = this->RuntimeDirectories[i]; + file += "/"; + file += re.SOName; + std::set const& files = + (this->GlobalGenerator + ->GetDirectoryContent(this->RuntimeDirectories[i], false)); + if((std::set::const_iterator(files.find(re.SOName)) != + files.end()) || + cmSystemTools::FileExists(file.c_str(), true)) + { + // The library will be found in this directory but this is not + // the directory named for it. Add an entry to make sure the + // desired directory comes before this one. + RuntimeConflictPair p(re.DirectoryIndex, lri); + this->RuntimeConflictGraph[i].push_back(p); + } + } + else + { + // We do not have the soname. Look for files in the directory + // that may conflict. + std::set const& files = + (this->GlobalGenerator + ->GetDirectoryContent(this->RuntimeDirectories[i], true)); + + // Get the set of files that might conflict. Since we do not + // know the soname just look at all files that start with the + // file name. Usually the soname starts with the library name. + std::string base = re.FileName; + std::set::const_iterator first = files.lower_bound(base); + ++base[base.size()-1]; + std::set::const_iterator last = files.upper_bound(base); + bool found = false; + for(std::set::const_iterator fi = first; + !found && fi != last; ++fi) + { + found = true; + } + + if(found) + { + // The library may be found in this directory but this is not + // the directory named for it. Add an entry to make sure the + // desired directory comes before this one. + RuntimeConflictPair p(re.DirectoryIndex, lri); + this->RuntimeConflictGraph[i].push_back(p); + } + } + } +} + +//---------------------------------------------------------------------------- +void cmOrderRuntimeDirectories::OrderRuntimeSearchPath() +{ + // Allow a cycle to be diagnosed once. + this->CycleDiagnosed = false; + this->WalkId = 0; + + // Iterate through the directories in the original order. + for(unsigned int i=0; i < this->RuntimeDirectories.size(); ++i) + { + // Start a new DFS from this node. + ++this->WalkId; + this->VisitRuntimeDirectory(i); + } +} + +//---------------------------------------------------------------------------- +void cmOrderRuntimeDirectories::VisitRuntimeDirectory(unsigned int i) +{ + // Skip nodes already visited. + if(this->RuntimeDirectoryVisited[i]) + { + if(this->RuntimeDirectoryVisited[i] == this->WalkId) + { + // We have reached a node previously visited on this DFS. + // There is a cycle. + this->DiagnoseCycle(); + } + return; + } + + // We are now visiting this node so mark it. + this->RuntimeDirectoryVisited[i] = this->WalkId; + + // Visit the neighbors of the node first. + RuntimeConflictList const& clist = this->RuntimeConflictGraph[i]; + for(RuntimeConflictList::const_iterator j = clist.begin(); + j != clist.end(); ++j) + { + this->VisitRuntimeDirectory(j->first); + } + + // Now that all directories required to come before this one have + // been emmitted, emit this directory. + this->RuntimeSearchPath.push_back(this->RuntimeDirectories[i]); +} + +//---------------------------------------------------------------------------- +void cmOrderRuntimeDirectories::DiagnoseCycle() +{ + // Report the cycle at most once. + if(this->CycleDiagnosed) + { + return; + } + this->CycleDiagnosed = true; + + // Construct the message. + cmOStringStream e; + e << "WARNING: Cannot generate a safe " << this->Purpose + << " for target " << this->Name + << " because there is a cycle in the constraint graph:\n"; + + // Display the conflict graph. + for(unsigned int i=0; i < this->RuntimeConflictGraph.size(); ++i) + { + RuntimeConflictList const& clist = this->RuntimeConflictGraph[i]; + e << "dir " << i << " is [" << this->RuntimeDirectories[i] << "]\n"; + for(RuntimeConflictList::const_iterator j = clist.begin(); + j != clist.end(); ++j) + { + e << " dir " << j->first << " must precede it due to ["; + LibraryRuntimeEntry const& re = this->LibraryRuntimeInfo[j->second]; + if(re.SOName.empty()) + { + e << re.FileName; + } + else + { + e << re.SOName; + } + e << "]\n"; + } + } + cmSystemTools::Message(e.str().c_str()); +} diff --git a/CMakeLua/Source/cmOrderRuntimeDirectories.h b/CMakeLua/Source/cmOrderRuntimeDirectories.h new file mode 100644 index 0000000..c561386 --- /dev/null +++ b/CMakeLua/Source/cmOrderRuntimeDirectories.h @@ -0,0 +1,88 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmOrderRuntimeDirectories.h,v $ + Language: C++ + Date: $Date: 2008/02/01 13:56:00 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmOrderRuntimeDirectories_h +#define cmOrderRuntimeDirectories_h + +#include "cmStandardIncludes.h" + +class cmGlobalGenerator; + +/** \class cmOrderRuntimeDirectories + * \brief Compute a safe runtime path order for a set of shared libraries. + */ +class cmOrderRuntimeDirectories +{ +public: + cmOrderRuntimeDirectories(cmGlobalGenerator* gg, const char* name, + const char* purpose); + void AddLibrary(std::string const& fullPath, const char* soname = 0); + void AddDirectories(std::vector const& extra); + + std::vector const& GetRuntimePath(); +private: + cmGlobalGenerator* GlobalGenerator; + std::string Name; + std::string Purpose; + + bool Computed; + + std::vector RuntimeSearchPath; + + // Runtime path computation. + struct LibraryRuntimeEntry + { + // The file name of the library. + std::string FileName; + + // The soname of the shared library if it is known. + std::string SOName; + + // The directory in which the library is supposed to be found. + std::string Directory; + + // The index assigned to the directory. + int DirectoryIndex; + }; + bool RuntimeSearchPathComputed; + std::vector LibraryRuntimeInfo; + std::vector UserDirectories; + std::set LibraryRuntimeInfoEmmitted; + std::vector RuntimeDirectories; + std::map RuntimeDirectoryIndex; + std::vector RuntimeDirectoryVisited; + void CollectRuntimeDirectories(); + int AddRuntimeDirectory(std::string const& dir); + void FindConflictingLibraries(); + void FindDirectoriesForLib(unsigned int lri); + void OrderRuntimeSearchPath(); + void VisitRuntimeDirectory(unsigned int i); + void DiagnoseCycle(); + bool CycleDiagnosed; + int WalkId; + + // Adjacency-list representation of runtime path ordering graph. + // This maps from directory to those that must come *before* it. + // Each entry that must come before is a pair. The first element is + // the index of the directory that must come first. The second + // element is the index of the runtime library that added the + // constraint. + typedef std::pair RuntimeConflictPair; + struct RuntimeConflictList: public std::vector {}; + std::vector RuntimeConflictGraph; +}; + +#endif diff --git a/CMakeLua/Source/cmOutputRequiredFilesCommand.cxx b/CMakeLua/Source/cmOutputRequiredFilesCommand.cxx new file mode 100644 index 0000000..8ebc2a1 --- /dev/null +++ b/CMakeLua/Source/cmOutputRequiredFilesCommand.cxx @@ -0,0 +1,238 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmOutputRequiredFilesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmOutputRequiredFilesCommand.h" +#include "cmMakeDepend.h" + +class cmLBDepend : public cmMakeDepend +{ + /** + * Compute the depend information for this class. + */ + virtual void DependWalk(cmDependInformation* info); +}; + +void cmLBDepend::DependWalk(cmDependInformation* info) +{ + std::ifstream fin(info->FullPath.c_str()); + if(!fin) + { + cmSystemTools::Error("error can not open ", info->FullPath.c_str()); + return; + } + + std::string line; + while(cmSystemTools::GetLineFromStream(fin, line)) + { + if(!strncmp(line.c_str(), "#include", 8)) + { + // if it is an include line then create a string class + std::string currentline = line; + size_t qstart = currentline.find('\"', 8); + size_t qend; + // if a quote is not found look for a < + if(qstart == std::string::npos) + { + qstart = currentline.find('<', 8); + // if a < is not found then move on + if(qstart == std::string::npos) + { + cmSystemTools::Error("unknown include directive ", + currentline.c_str() ); + continue; + } + else + { + qend = currentline.find('>', qstart+1); + } + } + else + { + qend = currentline.find('\"', qstart+1); + } + // extract the file being included + std::string includeFile = currentline.substr(qstart+1, qend - qstart-1); + // see if the include matches the regular expression + if(!this->IncludeFileRegularExpression.find(includeFile)) + { + if(this->Verbose) + { + std::string message = "Skipping "; + message += includeFile; + message += " for file "; + message += info->FullPath.c_str(); + cmSystemTools::Error(message.c_str(), 0); + } + continue; + } + + // Add this file and all its dependencies. + this->AddDependency(info, includeFile.c_str()); + /// add the cxx file if it exists + std::string cxxFile = includeFile; + std::string::size_type pos = cxxFile.rfind('.'); + if(pos != std::string::npos) + { + std::string root = cxxFile.substr(0, pos); + cxxFile = root + ".cxx"; + bool found = false; + // try jumping to .cxx .cpp and .c in order + if(cmSystemTools::FileExists(cxxFile.c_str())) + { + found = true; + } + for(std::vector::iterator i = + this->IncludeDirectories.begin(); + i != this->IncludeDirectories.end(); ++i) + { + std::string path = *i; + path = path + "/"; + path = path + cxxFile; + if(cmSystemTools::FileExists(path.c_str())) + { + found = true; + } + } + if (!found) + { + cxxFile = root + ".cpp"; + if(cmSystemTools::FileExists(cxxFile.c_str())) + { + found = true; + } + for(std::vector::iterator i = + this->IncludeDirectories.begin(); + i != this->IncludeDirectories.end(); ++i) + { + std::string path = *i; + path = path + "/"; + path = path + cxxFile; + if(cmSystemTools::FileExists(path.c_str())) + { + found = true; + } + } + } + if (!found) + { + cxxFile = root + ".c"; + if(cmSystemTools::FileExists(cxxFile.c_str())) + { + found = true; + } + for(std::vector::iterator i = + this->IncludeDirectories.begin(); + i != this->IncludeDirectories.end(); ++i) + { + std::string path = *i; + path = path + "/"; + path = path + cxxFile; + if(cmSystemTools::FileExists(path.c_str())) + { + found = true; + } + } + } + if (!found) + { + cxxFile = root + ".txx"; + if(cmSystemTools::FileExists(cxxFile.c_str())) + { + found = true; + } + for(std::vector::iterator i = + this->IncludeDirectories.begin(); + i != this->IncludeDirectories.end(); ++i) + { + std::string path = *i; + path = path + "/"; + path = path + cxxFile; + if(cmSystemTools::FileExists(path.c_str())) + { + found = true; + } + } + } + if (found) + { + this->AddDependency(info, cxxFile.c_str()); + } + } + } + } +} + +// cmOutputRequiredFilesCommand +bool cmOutputRequiredFilesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() != 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // store the arg for final pass + this->File = args[0]; + this->OutputFile = args[1]; + + // compute the list of files + cmLBDepend md; + md.SetMakefile(this->Makefile); + md.AddSearchPath(this->Makefile->GetStartDirectory()); + // find the depends for a file + const cmDependInformation *info = md.FindDependencies(this->File.c_str()); + if (info) + { + // write them out + FILE *fout = fopen(this->OutputFile.c_str(),"w"); + std::set visited; + this->ListDependencies(info,fout, &visited); + fclose(fout); + } + + return true; +} + +void cmOutputRequiredFilesCommand:: +ListDependencies(cmDependInformation const *info, + FILE *fout, + std::set *visited) +{ + // add info to the visited set + visited->insert(info); + // now recurse with info's dependencies + for(cmDependInformation::DependencySetType::const_iterator d = + info->DependencySet.begin(); + d != info->DependencySet.end(); ++d) + { + if (visited->find(*d) == visited->end()) + { + if(info->FullPath != "") + { + std::string tmp = (*d)->FullPath; + std::string::size_type pos = tmp.rfind('.'); + if(pos != std::string::npos && (tmp.substr(pos) != ".h")) + { + tmp = tmp.substr(0, pos); + fprintf(fout,"%s\n",(*d)->FullPath.c_str()); + } + } + this->ListDependencies(*d,fout,visited); + } + } +} + diff --git a/CMakeLua/Source/cmOutputRequiredFilesCommand.h b/CMakeLua/Source/cmOutputRequiredFilesCommand.h new file mode 100644 index 0000000..5a21f19 --- /dev/null +++ b/CMakeLua/Source/cmOutputRequiredFilesCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmOutputRequiredFilesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.12 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmOutputRequiredFilesCommand_h +#define cmOutputRequiredFilesCommand_h + +#include "cmCommand.h" +#include "cmMakeDepend.h" + +/** \class cmOutputRequiredFilesCommand + * \brief Output a list of required files for a source file + * + */ +class cmOutputRequiredFilesCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmOutputRequiredFilesCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "output_required_files";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return + "Output a list of required source files for a specified source file."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " output_required_files(srcfile outputfile)\n" + "Outputs a list of all the source files that are required by the " + "specified srcfile. This list is written into outputfile. This is " + "similar to writing out the dependencies for srcfile except that it " + "jumps from .h files into .cxx, .c and .cpp files if possible."; + } + + cmTypeMacro(cmOutputRequiredFilesCommand, cmCommand); + void ListDependencies(cmDependInformation const *info, + FILE *fout, + std::set *visited); + +private: + std::string File; + std::string OutputFile; +}; + + + +#endif diff --git a/CMakeLua/Source/cmProjectCommand.cxx b/CMakeLua/Source/cmProjectCommand.cxx new file mode 100644 index 0000000..b3b887f --- /dev/null +++ b/CMakeLua/Source/cmProjectCommand.cxx @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmProjectCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.25 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmProjectCommand.h" + +// cmProjectCommand +bool cmProjectCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("PROJECT called with incorrect number of arguments"); + return false; + } + this->Makefile->SetProjectName(args[0].c_str()); + + std::string bindir = args[0]; + bindir += "_BINARY_DIR"; + std::string srcdir = args[0]; + srcdir += "_SOURCE_DIR"; + + this->Makefile->AddCacheDefinition + (bindir.c_str(), + this->Makefile->GetCurrentOutputDirectory(), + "Value Computed by CMake", cmCacheManager::STATIC); + this->Makefile->AddCacheDefinition + (srcdir.c_str(), + this->Makefile->GetCurrentDirectory(), + "Value Computed by CMake", cmCacheManager::STATIC); + + bindir = "PROJECT_BINARY_DIR"; + srcdir = "PROJECT_SOURCE_DIR"; + + this->Makefile->AddDefinition(bindir.c_str(), + this->Makefile->GetCurrentOutputDirectory()); + this->Makefile->AddDefinition(srcdir.c_str(), + this->Makefile->GetCurrentDirectory()); + + this->Makefile->AddDefinition("PROJECT_NAME", args[0].c_str()); + + // Set the CMAKE_PROJECT_NAME variable to be the highest-level + // project name in the tree. This is always the first PROJECT + // command encountered. + if(!this->Makefile->GetDefinition("CMAKE_PROJECT_NAME")) + { + this->Makefile->AddDefinition("CMAKE_PROJECT_NAME", args[0].c_str()); + } + + std::vector languages; + if(args.size() > 1) + { + for(size_t i =1; i < args.size(); ++i) + { + languages.push_back(args[i]); + } + } + else + { + // if no language is specified do c and c++ + languages.push_back("C"); + languages.push_back("CXX"); + } + this->Makefile->EnableLanguage(languages, false); + return true; +} + diff --git a/CMakeLua/Source/cmProjectCommand.h b/CMakeLua/Source/cmProjectCommand.h new file mode 100644 index 0000000..7ba5df1 --- /dev/null +++ b/CMakeLua/Source/cmProjectCommand.h @@ -0,0 +1,82 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmProjectCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmProjectCommand_h +#define cmProjectCommand_h + +#include "cmCommand.h" + +/** \class cmProjectCommand + * \brief Specify the name for this build project. + * + * cmProjectCommand is used to specify a name for this build project. + * It is defined once per set of CMakeList.txt files (including + * all subdirectories). Currently it just sets the name of the workspace + * file for Microsoft Visual C++ + */ +class cmProjectCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmProjectCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "project";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set a name for the entire project."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " project(projectname [CXX] [C] [Java])\n" + "Sets the name of the project. " + "This creates the variables projectname_BINARY_DIR and " + "projectname_SOURCE_DIR. " + "Optionally you can specify which languages your project supports. " + "By default all languages are supported. If you do not have a " + "C++ compiler, but want" + " to build a c program with cmake, then use this option."; + } + + cmTypeMacro(cmProjectCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmProperty.cxx b/CMakeLua/Source/cmProperty.cxx new file mode 100755 index 0000000..00c33b8 --- /dev/null +++ b/CMakeLua/Source/cmProperty.cxx @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmProperty.cxx,v $ + Language: C++ + Date: $Date: 2008/01/17 23:13:55 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmProperty.h" +#include "cmSystemTools.h" + +void cmProperty::Set(const char *name, const char *value) +{ + this->Name = name; + this->Value = value; + this->ValueHasBeenSet = true; +} + +void cmProperty::Append(const char *name, const char *value) +{ + this->Name = name; + if(!this->Value.empty() && *value) + { + this->Value += ";"; + } + this->Value += value; + this->ValueHasBeenSet = true; +} + +const char *cmProperty::GetValue() const +{ + if (this->ValueHasBeenSet) + { + return this->Value.c_str(); + } + return 0; +} diff --git a/CMakeLua/Source/cmProperty.h b/CMakeLua/Source/cmProperty.h new file mode 100755 index 0000000..85dbf1f --- /dev/null +++ b/CMakeLua/Source/cmProperty.h @@ -0,0 +1,46 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmProperty.h,v $ + Language: C++ + Date: $Date: 2008/01/17 23:13:55 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmProperty_h +#define cmProperty_h + +#include "cmStandardIncludes.h" + +class cmProperty +{ +public: + enum ScopeType { TARGET, SOURCE_FILE, DIRECTORY, GLOBAL, + TEST, VARIABLE, CACHED_VARIABLE }; + + // set this property + void Set(const char *name, const char *value); + + // append to this property + void Append(const char *name, const char *value); + + // get the value + const char *GetValue() const; + + // construct with the value not set + cmProperty() { this->ValueHasBeenSet = false; }; + +protected: + std::string Name; + std::string Value; + bool ValueHasBeenSet; +}; + +#endif diff --git a/CMakeLua/Source/cmPropertyDefinition.cxx b/CMakeLua/Source/cmPropertyDefinition.cxx new file mode 100755 index 0000000..0a3b29d --- /dev/null +++ b/CMakeLua/Source/cmPropertyDefinition.cxx @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmPropertyDefinition.cxx,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmPropertyDefinition.h" +#include "cmSystemTools.h" + +cmDocumentationEntry cmPropertyDefinition::GetDocumentation() const +{ + cmDocumentationEntry e; + e.Name = this->Name; + e.Brief = this->ShortDescription; + e.Full = this->FullDescription; + return e; +} + +void cmPropertyDefinition +::DefineProperty(const char *name, cmProperty::ScopeType scope, + const char *shortDescription, + const char *fullDescription, + const char *sec, + bool chain) +{ + this->Name = name; + this->Scope = scope; + this->Chained = chain; + if (shortDescription) + { + this->ShortDescription = shortDescription; + } + if (fullDescription) + { + this->FullDescription = fullDescription; + } + if (sec) + { + this->DocumentationSection = sec; + } +} + diff --git a/CMakeLua/Source/cmPropertyDefinition.h b/CMakeLua/Source/cmPropertyDefinition.h new file mode 100755 index 0000000..308bdc7 --- /dev/null +++ b/CMakeLua/Source/cmPropertyDefinition.h @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmPropertyDefinition.h,v $ + Language: C++ + Date: $Date: 2007/10/24 18:43:10 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmPropertyDefinition_h +#define cmPropertyDefinition_h + +#include "cmProperty.h" + +class cmPropertyDefinition +{ +public: + // Define this property + void DefineProperty(const char *name, cmProperty::ScopeType scope, + const char *ShortDescription, + const char *FullDescription, + const char *DocumentationSection, + bool chained); + + // get the documentation string + cmDocumentationEntry GetDocumentation() const; + + // basic constructor + cmPropertyDefinition() { this->Chained = false; }; + + // is it chained? + bool IsChained() {return this->Chained; }; + + // Get the section if any + const std::string &GetDocumentationSection() const { + return this->DocumentationSection; }; + + // get the scope + cmProperty::ScopeType GetScope() const { + return this->Scope; }; + + // get the docs + const std::string &GetShortDescription() const { + return this->ShortDescription; }; + const std::string &GetFullDescription() const { + return this->FullDescription; }; + +protected: + std::string Name; + std::string ShortDescription; + std::string FullDescription; + std::string DocumentationSection; + cmProperty::ScopeType Scope; + bool Chained; +}; + +#endif diff --git a/CMakeLua/Source/cmPropertyDefinitionMap.cxx b/CMakeLua/Source/cmPropertyDefinitionMap.cxx new file mode 100755 index 0000000..d6abff5 --- /dev/null +++ b/CMakeLua/Source/cmPropertyDefinitionMap.cxx @@ -0,0 +1,127 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmPropertyDefinitionMap.cxx,v $ + Language: C++ + Date: $Date: 2007/10/23 14:40:49 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmPropertyDefinitionMap.h" +#include "cmSystemTools.h" +#include "cmDocumentationSection.h" + +void cmPropertyDefinitionMap +::DefineProperty(const char *name, cmProperty::ScopeType scope, + const char *ShortDescription, + const char *FullDescription, + const char *DocumentationSection, + bool chain) +{ + if (!name) + { + return; + } + + cmPropertyDefinitionMap::iterator it = this->find(name); + cmPropertyDefinition *prop; + if (it == this->end()) + { + prop = &(*this)[name]; + prop->DefineProperty(name,scope,ShortDescription, FullDescription, + DocumentationSection, chain); + } +} + +void cmPropertyDefinitionMap +::GetPropertiesDocumentation(std::map& v) const +{ + for(cmPropertyDefinitionMap::const_iterator j = this->begin(); + j != this->end(); ++j) + { + // add a section if needed + std::string secName = j->second.GetDocumentationSection(); + // if a section was not specified then use the scope + if (!secName.size()) + { + switch (j->second.GetScope()) + { + case cmProperty::GLOBAL: + secName = "Properties of Global Scope"; + break; + case cmProperty::TARGET: + secName = "Properties on Targets"; + break; + case cmProperty::SOURCE_FILE: + secName = "Properties on Source Files"; + break; + case cmProperty::DIRECTORY: + secName = "Properties on Directories"; + break; + case cmProperty::TEST: + secName = "Properties on Tests"; + break; + case cmProperty::VARIABLE: + secName = "Variables"; + break; + case cmProperty::CACHED_VARIABLE: + secName = "Cached Variables"; + break; + default: + secName = "Properties of Unknown Scope"; + break; + } + } + if (!v[secName]) + { + v[secName] = new + cmDocumentationSection(secName.c_str(), + cmSystemTools::UpperCase(secName).c_str()); + } + cmDocumentationEntry e = j->second.GetDocumentation(); + if (e.Brief.size() || e.Full.size()) + { + v[secName]->Append(e); + } + } +} + +bool cmPropertyDefinitionMap::IsPropertyDefined(const char *name) +{ + if (!name) + { + return false; + } + + cmPropertyDefinitionMap::iterator it = this->find(name); + if (it == this->end()) + { + return false; + } + + return true; +} + +bool cmPropertyDefinitionMap::IsPropertyChained(const char *name) +{ + if (!name) + { + return false; + } + + cmPropertyDefinitionMap::iterator it = this->find(name); + if (it == this->end()) + { + return false; + } + + return it->second.IsChained(); +} diff --git a/CMakeLua/Source/cmPropertyDefinitionMap.h b/CMakeLua/Source/cmPropertyDefinitionMap.h new file mode 100755 index 0000000..16ef6c4 --- /dev/null +++ b/CMakeLua/Source/cmPropertyDefinitionMap.h @@ -0,0 +1,46 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmPropertyDefinitionMap.h,v $ + Language: C++ + Date: $Date: 2007/10/22 16:48:39 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmPropertyDefinitionMap_h +#define cmPropertyDefinitionMap_h + +#include "cmPropertyDefinition.h" + +class cmDocumentationSection; + +class cmPropertyDefinitionMap : +public std::map +{ +public: + // define the property + void DefineProperty(const char *name, cmProperty::ScopeType scope, + const char *ShortDescription, + const char *FullDescription, + const char *DocumentaitonSection, + bool chain); + + // has a named property been defined + bool IsPropertyDefined(const char *name); + + // is a named property set to chain + bool IsPropertyChained(const char *name); + + void GetPropertiesDocumentation(std::map&) const; +}; + +#endif + diff --git a/CMakeLua/Source/cmPropertyMap.cxx b/CMakeLua/Source/cmPropertyMap.cxx new file mode 100755 index 0000000..53fbae3 --- /dev/null +++ b/CMakeLua/Source/cmPropertyMap.cxx @@ -0,0 +1,128 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmPropertyMap.cxx,v $ + Language: C++ + Date: $Date: 2008/01/17 23:13:55 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmPropertyMap.h" +#include "cmSystemTools.h" +#include "cmake.h" + +cmProperty *cmPropertyMap::GetOrCreateProperty(const char *name) +{ + cmPropertyMap::iterator it = this->find(name); + cmProperty *prop; + if (it == this->end()) + { + prop = &(*this)[name]; + } + else + { + prop = &(it->second); + } + return prop; +} + +void cmPropertyMap::SetProperty(const char *name, const char *value, + cmProperty::ScopeType scope) +{ + if (!name) + { + return; + } + if(!value) + { + this->erase(name); + return; + } +#ifdef CMAKE_STRICT + if (!this->CMakeInstance) + { + cmSystemTools::Error("CMakeInstance not set on a property map!"); + abort(); + } + else + { + this->CMakeInstance->RecordPropertyAccess(name,scope); + } +#else + (void)scope; +#endif + + cmProperty *prop = this->GetOrCreateProperty(name); + prop->Set(name,value); +} + +void cmPropertyMap::AppendProperty(const char* name, const char* value, + cmProperty::ScopeType scope) +{ + // Skip if nothing to append. + if(!name || !value || !*value) + { + return; + } +#ifdef CMAKE_STRICT + if (!this->CMakeInstance) + { + cmSystemTools::Error("CMakeInstance not set on a property map!"); + abort(); + } + else + { + this->CMakeInstance->RecordPropertyAccess(name,scope); + } +#else + (void)scope; +#endif + + cmProperty *prop = this->GetOrCreateProperty(name); + prop->Append(name,value); +} + +const char *cmPropertyMap +::GetPropertyValue(const char *name, + cmProperty::ScopeType scope, + bool &chain) const +{ + chain = false; + if (!name) + { + return 0; + } + + // has the property been defined? +#ifdef CMAKE_STRICT + if (!this->CMakeInstance) + { + cmSystemTools::Error("CMakeInstance not set on a property map!"); + abort(); + } + else + { + this->CMakeInstance->RecordPropertyAccess(name,scope); + } +#endif + + cmPropertyMap::const_iterator it = this->find(name); + if (it == this->end()) + { + // should we chain up? + if (this->CMakeInstance) + { + chain = this->CMakeInstance->IsPropertyChained(name,scope); + } + return 0; + } + return it->second.GetValue(); +} + diff --git a/CMakeLua/Source/cmPropertyMap.h b/CMakeLua/Source/cmPropertyMap.h new file mode 100755 index 0000000..3cd1f71 --- /dev/null +++ b/CMakeLua/Source/cmPropertyMap.h @@ -0,0 +1,48 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmPropertyMap.h,v $ + Language: C++ + Date: $Date: 2008/01/17 23:13:55 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmPropertyMap_h +#define cmPropertyMap_h + +#include "cmProperty.h" + +class cmake; + +class cmPropertyMap : public std::map +{ +public: + cmProperty *GetOrCreateProperty(const char *name); + + void SetProperty(const char *name, const char *value, + cmProperty::ScopeType scope); + + void AppendProperty(const char* name, const char* value, + cmProperty::ScopeType scope); + + const char *GetPropertyValue(const char *name, + cmProperty::ScopeType scope, + bool &chain) const; + + void SetCMakeInstance(cmake *cm) { this->CMakeInstance = cm; }; + + cmPropertyMap() { this->CMakeInstance = 0;}; + +private: + cmake *CMakeInstance; +}; + +#endif + diff --git a/CMakeLua/Source/cmQTWrapCPPCommand.cxx b/CMakeLua/Source/cmQTWrapCPPCommand.cxx new file mode 100644 index 0000000..843898d --- /dev/null +++ b/CMakeLua/Source/cmQTWrapCPPCommand.cxx @@ -0,0 +1,120 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmQTWrapCPPCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.27 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmQTWrapCPPCommand.h" + +// cmQTWrapCPPCommand +bool cmQTWrapCPPCommand::InitialPass(std::vector const& argsIn, + cmExecutionStatus &) +{ + if(argsIn.size() < 3 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // This command supports source list inputs for compatibility. + std::vector args; + this->Makefile->ExpandSourceListArguments(argsIn, args, 2); + + // Get the moc executable to run in the custom command. + const char* moc_exe = + this->Makefile->GetRequiredDefinition("QT_MOC_EXECUTABLE"); + + // Get the variable holding the list of sources. + std::string const& sourceList = args[1]; + std::string sourceListValue = + this->Makefile->GetSafeDefinition(sourceList.c_str()); + + // Create a rule for all sources listed. + for(std::vector::iterator j = (args.begin() + 2); + j != args.end(); ++j) + { + cmSourceFile *curr = this->Makefile->GetSource(j->c_str()); + // if we should wrap the class + if(!(curr && curr->GetPropertyAsBool("WRAP_EXCLUDE"))) + { + // Compute the name of the file to generate. + std::string srcName = + cmSystemTools::GetFilenameWithoutLastExtension(*j); + std::string newName = this->Makefile->GetCurrentOutputDirectory(); + newName += "/moc_"; + newName += srcName; + newName += ".cxx"; + cmSourceFile* sf = + this->Makefile->GetOrCreateSource(newName.c_str(), true); + if (curr) + { + sf->SetProperty("ABSTRACT", curr->GetProperty("ABSTRACT")); + } + + // Compute the name of the header from which to generate the file. + std::string hname; + if(cmSystemTools::FileIsFullPath(j->c_str())) + { + hname = *j; + } + else + { + if(curr && curr->GetPropertyAsBool("GENERATED")) + { + hname = this->Makefile->GetCurrentOutputDirectory(); + } + else + { + hname = this->Makefile->GetCurrentDirectory(); + } + hname += "/"; + hname += *j; + } + + // Append the generated source file to the list. + if(!sourceListValue.empty()) + { + sourceListValue += ";"; + } + sourceListValue += newName; + + // Create the custom command to generate the file. + cmCustomCommandLine commandLine; + commandLine.push_back(moc_exe); + commandLine.push_back("-o"); + commandLine.push_back(newName); + commandLine.push_back(hname); + + cmCustomCommandLines commandLines; + commandLines.push_back(commandLine); + + std::vector depends; + depends.push_back(moc_exe); + depends.push_back(hname); + + const char* no_main_dependency = 0; + const char* no_working_dir = 0; + this->Makefile->AddCustomCommandToOutput(newName.c_str(), + depends, + no_main_dependency, + commandLines, + "Qt Wrapped File", + no_working_dir); + } + } + + // Store the final list of source files. + this->Makefile->AddDefinition(sourceList.c_str(), + sourceListValue.c_str()); + return true; +} diff --git a/CMakeLua/Source/cmQTWrapCPPCommand.h b/CMakeLua/Source/cmQTWrapCPPCommand.h new file mode 100644 index 0000000..8cb3ce0 --- /dev/null +++ b/CMakeLua/Source/cmQTWrapCPPCommand.h @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmQTWrapCPPCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmQTWrapCPPCommand_h +#define cmQTWrapCPPCommand_h + +#include "cmCommand.h" + +#include "cmSourceFile.h" + +/** \class cmQTWrapCPPCommand + * \brief Create moc file rules for QT classes + * + * cmQTWrapCPPCommand is used to create wrappers for QT classes into + * normal C++ + */ +class cmQTWrapCPPCommand : public cmCommand +{ +public: + cmTypeMacro(cmQTWrapCPPCommand, cmCommand); + + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmQTWrapCPPCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "qt_wrap_cpp";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Create Qt Wrappers."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " qt_wrap_cpp(resultingLibraryName DestName\n" + " SourceLists ...)\n" + "Produce moc files for all the .h files listed in the SourceLists. " + "The moc files will be added to the library using the DestName " + "source list."; + } +}; + + + +#endif diff --git a/CMakeLua/Source/cmQTWrapUICommand.cxx b/CMakeLua/Source/cmQTWrapUICommand.cxx new file mode 100644 index 0000000..0a78cb5 --- /dev/null +++ b/CMakeLua/Source/cmQTWrapUICommand.cxx @@ -0,0 +1,171 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmQTWrapUICommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.26 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmQTWrapUICommand.h" + +// cmQTWrapUICommand +bool cmQTWrapUICommand::InitialPass(std::vector const& argsIn, + cmExecutionStatus &) +{ + if(argsIn.size() < 4 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // This command supports source list inputs for compatibility. + std::vector args; + this->Makefile->ExpandSourceListArguments(argsIn, args, 3); + + // Get the uic and moc executables to run in the custom commands. + const char* uic_exe = + this->Makefile->GetRequiredDefinition("QT_UIC_EXECUTABLE"); + const char* moc_exe = + this->Makefile->GetRequiredDefinition("QT_MOC_EXECUTABLE"); + + // Get the variable holding the list of sources. + std::string const& headerList = args[1]; + std::string const& sourceList = args[2]; + std::string headerListValue = + this->Makefile->GetSafeDefinition(headerList.c_str()); + std::string sourceListValue = + this->Makefile->GetSafeDefinition(sourceList.c_str()); + + // Create rules for all sources listed. + for(std::vector::iterator j = (args.begin() + 3); + j != args.end(); ++j) + { + cmSourceFile *curr = this->Makefile->GetSource(j->c_str()); + // if we should wrap the class + if(!(curr && curr->GetPropertyAsBool("WRAP_EXCLUDE"))) + { + // Compute the name of the files to generate. + std::string srcName = + cmSystemTools::GetFilenameWithoutLastExtension(*j); + std::string hName = this->Makefile->GetCurrentOutputDirectory(); + hName += "/"; + hName += srcName; + hName += ".h"; + std::string cxxName = this->Makefile->GetCurrentOutputDirectory(); + cxxName += "/"; + cxxName += srcName; + cxxName += ".cxx"; + std::string mocName = this->Makefile->GetCurrentOutputDirectory(); + mocName += "/moc_"; + mocName += srcName; + mocName += ".cxx"; + + // Compute the name of the ui file from which to generate others. + std::string uiName; + if(cmSystemTools::FileIsFullPath(j->c_str())) + { + uiName = *j; + } + else + { + if(curr && curr->GetPropertyAsBool("GENERATED")) + { + uiName = this->Makefile->GetCurrentOutputDirectory(); + } + else + { + uiName = this->Makefile->GetCurrentDirectory(); + } + uiName += "/"; + uiName += *j; + } + + // create the list of headers + if(!headerListValue.empty()) + { + headerListValue += ";"; + } + headerListValue += hName; + + // create the list of sources + if(!sourceListValue.empty()) + { + sourceListValue += ";"; + } + sourceListValue += cxxName; + sourceListValue += ";"; + sourceListValue += mocName; + + // set up .ui to .h and .cxx command + cmCustomCommandLine hCommand; + hCommand.push_back(uic_exe); + hCommand.push_back("-o"); + hCommand.push_back(hName); + hCommand.push_back(uiName); + cmCustomCommandLines hCommandLines; + hCommandLines.push_back(hCommand); + + cmCustomCommandLine cxxCommand; + cxxCommand.push_back(uic_exe); + cxxCommand.push_back("-impl"); + cxxCommand.push_back(hName); + cxxCommand.push_back("-o"); + cxxCommand.push_back(cxxName); + cxxCommand.push_back(uiName); + cmCustomCommandLines cxxCommandLines; + cxxCommandLines.push_back(cxxCommand); + + cmCustomCommandLine mocCommand; + mocCommand.push_back(moc_exe); + mocCommand.push_back("-o"); + mocCommand.push_back(mocName); + mocCommand.push_back(hName); + cmCustomCommandLines mocCommandLines; + mocCommandLines.push_back(mocCommand); + + std::vector depends; + depends.push_back(uiName); + const char* no_main_dependency = 0; + const char* no_comment = 0; + const char* no_working_dir = 0; + this->Makefile->AddCustomCommandToOutput(hName.c_str(), + depends, + no_main_dependency, + hCommandLines, + no_comment, + no_working_dir); + + depends.push_back(hName); + this->Makefile->AddCustomCommandToOutput(cxxName.c_str(), + depends, + no_main_dependency, + cxxCommandLines, + no_comment, + no_working_dir); + + depends.clear(); + depends.push_back(hName); + this->Makefile->AddCustomCommandToOutput(mocName.c_str(), + depends, + no_main_dependency, + mocCommandLines, + no_comment, + no_working_dir); + } + } + + // Store the final list of source files and headers. + this->Makefile->AddDefinition(sourceList.c_str(), + sourceListValue.c_str()); + this->Makefile->AddDefinition(headerList.c_str(), + headerListValue.c_str()); + return true; +} diff --git a/CMakeLua/Source/cmQTWrapUICommand.h b/CMakeLua/Source/cmQTWrapUICommand.h new file mode 100644 index 0000000..1648fe0 --- /dev/null +++ b/CMakeLua/Source/cmQTWrapUICommand.h @@ -0,0 +1,80 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmQTWrapUICommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmQTWrapUICommand_h +#define cmQTWrapUICommand_h + +#include "cmCommand.h" + +#include "cmSourceFile.h" + +/** \class cmQTWrapUICommand + * \brief Create .h and .cxx files rules for QT user interfaces files + * + * cmQTWrapUICommand is used to create wrappers for QT classes into normal C++ + */ +class cmQTWrapUICommand : public cmCommand +{ +public: + cmTypeMacro(cmQTWrapUICommand, cmCommand); + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmQTWrapUICommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "qt_wrap_ui";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Create Qt user interfaces Wrappers."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " qt_wrap_ui(resultingLibraryName HeadersDestName\n" + " SourcesDestName SourceLists ...)\n" + "Produce .h and .cxx files for all the .ui files listed " + "in the SourceLists. " + "The .h files will be added to the library using the HeadersDestName" + "source list. " + "The .cxx files will be added to the library using the SourcesDestName" + "source list."; + } +}; + + + +#endif diff --git a/CMakeLua/Source/cmRemoveCommand.cxx b/CMakeLua/Source/cmRemoveCommand.cxx new file mode 100644 index 0000000..ae18cb5 --- /dev/null +++ b/CMakeLua/Source/cmRemoveCommand.cxx @@ -0,0 +1,81 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmRemoveCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmRemoveCommand.h" + +// cmRemoveCommand +bool cmRemoveCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1) + { + return true; + } + + const char* variable = args[0].c_str(); // VAR is always first + // get the old value + const char* cacheValue + = this->Makefile->GetDefinition(variable); + + // if there is no old value then return + if (!cacheValue) + { + return true; + } + + // expand the variable + std::vector varArgsExpanded; + cmSystemTools::ExpandListArgument(cacheValue, varArgsExpanded); + + // expand the args + // check for REMOVE(VAR v1 v2 ... vn) + std::vector argsExpanded; + std::vector temp; + for(unsigned int j = 1; j < args.size(); ++j) + { + temp.push_back(args[j]); + } + cmSystemTools::ExpandList(temp, argsExpanded); + + // now create the new value + std::string value; + for(unsigned int j = 0; j < varArgsExpanded.size(); ++j) + { + int found = 0; + for(unsigned int k = 0; k < argsExpanded.size(); ++k) + { + if (varArgsExpanded[j] == argsExpanded[k]) + { + found = 1; + break; + } + } + if (!found) + { + if (value.size()) + { + value += ";"; + } + value += varArgsExpanded[j]; + } + } + + // add the definition + this->Makefile->AddDefinition(variable, value.c_str()); + + return true; +} + diff --git a/CMakeLua/Source/cmRemoveCommand.h b/CMakeLua/Source/cmRemoveCommand.h new file mode 100644 index 0000000..1192ac6 --- /dev/null +++ b/CMakeLua/Source/cmRemoveCommand.h @@ -0,0 +1,86 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmRemoveCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmRemoveCommand_h +#define cmRemoveCommand_h + +#include "cmCommand.h" + +/** \class cmRemoveCommand + * \brief Set a CMAKE variable + * + * cmRemoveCommand sets a variable to a value with expansion. + */ +class cmRemoveCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmRemoveCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "remove";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Deprecated. Use the list(REMOVE_ITEM ) command instead."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " remove(VAR VALUE VALUE ...)\n" + "Removes VALUE from the variable VAR. " + "This is typically used to remove entries from a vector " + "(e.g. semicolon separated list). VALUE is expanded."; + } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } + + cmTypeMacro(cmRemoveCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmRemoveDefinitionsCommand.cxx b/CMakeLua/Source/cmRemoveDefinitionsCommand.cxx new file mode 100644 index 0000000..87c67ef --- /dev/null +++ b/CMakeLua/Source/cmRemoveDefinitionsCommand.cxx @@ -0,0 +1,36 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmRemoveDefinitionsCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmRemoveDefinitionsCommand.h" + +// cmRemoveDefinitionsCommand +bool cmRemoveDefinitionsCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + // it is OK to have no arguments + if(args.size() < 1 ) + { + return true; + } + + for(std::vector::const_iterator i = args.begin(); + i != args.end(); ++i) + { + this->Makefile->RemoveDefineFlag(i->c_str()); + } + return true; +} + diff --git a/CMakeLua/Source/cmRemoveDefinitionsCommand.h b/CMakeLua/Source/cmRemoveDefinitionsCommand.h new file mode 100644 index 0000000..ee6562f --- /dev/null +++ b/CMakeLua/Source/cmRemoveDefinitionsCommand.h @@ -0,0 +1,76 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmRemoveDefinitionsCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmRemoveDefinitionsCommand_h +#define cmRemoveDefinitionsCommand_h + +#include "cmCommand.h" + +/** \class cmRemoveDefinitionsCommand + * \brief Specify a list of compiler defines + * + * cmRemoveDefinitionsCommand specifies a list of compiler defines. + * These defines will + * be removed from the compile command. + */ +class cmRemoveDefinitionsCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmRemoveDefinitionsCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "remove_definitions";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Removes -D define flags added by add_definitions."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " remove_definitions(-DFOO -DBAR ...)\n" + "Removes flags (added by add_definitions) from the compiler command " + "line for sources in the current directory and below."; + } + + cmTypeMacro(cmRemoveDefinitionsCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmReturnCommand.cxx b/CMakeLua/Source/cmReturnCommand.cxx new file mode 100755 index 0000000..b6b024b --- /dev/null +++ b/CMakeLua/Source/cmReturnCommand.cxx @@ -0,0 +1,26 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmReturnCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:28:26 $ + Version: $Revision: 1.1 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmReturnCommand.h" + +// cmReturnCommand +bool cmReturnCommand::InitialPass(std::vector const&, + cmExecutionStatus &status) +{ + status.SetReturnInvoked(true); + return true; +} + diff --git a/CMakeLua/Source/cmReturnCommand.h b/CMakeLua/Source/cmReturnCommand.h new file mode 100755 index 0000000..a25c67e --- /dev/null +++ b/CMakeLua/Source/cmReturnCommand.h @@ -0,0 +1,82 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmReturnCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 23:34:19 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmReturnCommand_h +#define cmReturnCommand_h + +#include "cmCommand.h" + +/** \class cmReturnCommand + * \brief Return from a directory or function + * + * cmReturnCommand returns from a directory or function + */ +class cmReturnCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmReturnCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "return";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Return from a directory or function."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " return()\n" + "Returns from a directory or function. When this command is " + "encountered, it caused process of the current function or " + "directory to stop and control is return to the caller of the " + "function, or the parent directory if any. Note that a macro " + "is not a function and does not handle return like a function does."; + } + + cmTypeMacro(cmReturnCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSeparateArgumentsCommand.cxx b/CMakeLua/Source/cmSeparateArgumentsCommand.cxx new file mode 100644 index 0000000..a0658f3 --- /dev/null +++ b/CMakeLua/Source/cmSeparateArgumentsCommand.cxx @@ -0,0 +1,38 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSeparateArgumentsCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.6 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSeparateArgumentsCommand.h" + +// cmSeparateArgumentsCommand +bool cmSeparateArgumentsCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() != 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + const char* cacheValue = this->Makefile->GetDefinition(args[0].c_str()); + if(!cacheValue) + { + return true; + } + std::string value = cacheValue; + cmSystemTools::ReplaceString(value," ", ";"); + this->Makefile->AddDefinition(args[0].c_str(), value.c_str()); + return true; +} + diff --git a/CMakeLua/Source/cmSeparateArgumentsCommand.h b/CMakeLua/Source/cmSeparateArgumentsCommand.h new file mode 100644 index 0000000..4e0f752 --- /dev/null +++ b/CMakeLua/Source/cmSeparateArgumentsCommand.h @@ -0,0 +1,81 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSeparateArgumentsCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSeparateArgumentsCommand_h +#define cmSeparateArgumentsCommand_h + +#include "cmCommand.h" + +/** \class cmSeparateArgumentsCommand + * \brief SeparateArguments a CMAKE variable + * + * cmSeparateArgumentsCommand sets a variable to a value with expansion. + */ +class cmSeparateArgumentsCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmSeparateArgumentsCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "separate_arguments";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return + "Split space separated arguments into a semi-colon separated list."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " separate_arguments(VARIABLE)\n" + "Convert the value of VARIABLE to a semi-colon separated list. " + "All spaces are replaced with ';'. This helps with generating " + "command lines."; + } + + cmTypeMacro(cmSeparateArgumentsCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSetCommand.cxx b/CMakeLua/Source/cmSetCommand.cxx new file mode 100644 index 0000000..44b6074 --- /dev/null +++ b/CMakeLua/Source/cmSetCommand.cxx @@ -0,0 +1,193 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.32 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSetCommand.h" + +// cmSetCommand +bool cmSetCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // watch for ENV signatures + const char* variable = args[0].c_str(); // VAR is always first + if (!strncmp(variable,"ENV{",4) && strlen(variable) > 5) + { + // what is the variable name + char *varName = new char [strlen(variable)]; + strncpy(varName,variable+4,strlen(variable)-5); + varName[strlen(variable)-5] = '\0'; + std::string putEnvArg = varName; + putEnvArg += "="; + + // what is the current value if any + const char *currValue = getenv(varName); + delete [] varName; + + // will it be set to something, then set it + if (args.size() > 1 && args[1].size()) + { + // but only if it is different from current value + if (!currValue || strcmp(currValue,args[1].c_str())) + { + putEnvArg += args[1]; + cmSystemTools::PutEnv(putEnvArg.c_str()); + } + return true; + } + + // if it will be cleared, then clear it if it isn;t already clear + if (currValue) + { + cmSystemTools::PutEnv(putEnvArg.c_str()); + } + return true; + } + + // SET (VAR) // Removes the definition of VAR. + if (args.size() == 1) + { + this->Makefile->RemoveDefinition(args[0].c_str()); + return true; + } + + // here are the remaining options + // SET (VAR value ) + // SET (VAR CACHE TYPE "doc String" [FORCE]) + // SET (VAR value CACHE TYPE "doc string" [FORCE]) + std::string value; // optional + bool cache = false; // optional + bool force = false; // optional + bool parentScope = false; + cmCacheManager::CacheEntryType type + = cmCacheManager::STRING; // required if cache + const char* docstring = 0; // required if cache + std::string::size_type cacheStart = 0; + + unsigned int ignoreLastArgs = 0; + // look for PARENT_SCOPE argument + if (args.size() > 1 && args[args.size()-1] == "PARENT_SCOPE") + { + parentScope = true; + ignoreLastArgs++; + } + else + { + // look for FORCE argument + if (args.size() > 4 && args[args.size()-1] == "FORCE") + { + force = true; + ignoreLastArgs++; + } + + // check for cache signature + if (args.size() > 3 && args[args.size() - 3 - (force ? 1 : 0)] == "CACHE") + { + cache = true; + ignoreLastArgs+=3; + } + } + + // collect any values into a single semi-colon seperated value list + if(static_cast(args.size()) > + static_cast(1 + ignoreLastArgs)) + { + value = args[1]; + size_t endPos = args.size() - ignoreLastArgs; + for(size_t i = 2; i < endPos; ++i) + { + value += ";"; + value += args[i]; + } + } + + if (parentScope) + { + if (value.empty()) + { + this->Makefile->RaiseScope(variable, 0); + } + else + { + this->Makefile->RaiseScope(variable, value.c_str()); + } + return true; + } + + + // we should be nice and try to catch some simple screwups if the last or + // next to last args are CACHE then they screwed up. If they used FORCE + // without CACHE they screwed up + if (args[args.size() - 1] == "CACHE" || + args.size() > 1 && args[args.size() - 2] == "CACHE" || + force && !cache) + { + std::string message; + message += "Syntax error in SET:\n"; + message += "See the help for the SET command:\n"; + message += "SET ("; + for(std::vector::const_iterator i = args.begin(); + i != args.end(); ++i) + { + message += *i; + } + message += ")\n"; + this->SetError(message.c_str()); + return false; + } + + if(cache) + { + cacheStart = args.size() - 3 - (force ? 1 : 0); + type = cmCacheManager::StringToType(args[cacheStart+1].c_str()); + docstring = args[cacheStart+2].c_str(); + } + + // see if this is already in the cache + cmCacheManager::CacheIterator it = + this->Makefile->GetCacheManager()->GetCacheIterator(variable); + if(!it.IsAtEnd() && (it.GetType() != cmCacheManager::UNINITIALIZED)) + { + // if the set is trying to CACHE the value but the value + // is already in the cache and the type is not internal + // then leave now without setting any definitions in the cache + // or the makefile + if(cache && type != cmCacheManager::INTERNAL && !force) + { + return true; + } + } + + // if it is meant to be in the cache then define it in the cache + if(cache) + { + this->Makefile->AddCacheDefinition(variable, + value.c_str(), + docstring, + type); + } + else + { + // add the definition + this->Makefile->AddDefinition(variable, value.c_str()); + } + return true; +} + diff --git a/CMakeLua/Source/cmSetCommand.h b/CMakeLua/Source/cmSetCommand.h new file mode 100644 index 0000000..838e063 --- /dev/null +++ b/CMakeLua/Source/cmSetCommand.h @@ -0,0 +1,105 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSetCommand_h +#define cmSetCommand_h + +#include "cmCommand.h" + +/** \class cmSetCommand + * \brief Set a CMAKE variable + * + * cmSetCommand sets a variable to a value with expansion. + */ +class cmSetCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmSetCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "set";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set a CMAKE variable to a given value."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " set( [[CACHE [FORCE]] | " + "PARENT_SCOPE])\n" + "Within CMake sets to the value . is expanded" + " before is set to it. If CACHE is present, then the " + " is put in the cache. and are then " + "required. is used by the CMake GUI to choose a widget with " + "which the user sets a value. The value for may be one of\n" + " FILEPATH = File chooser dialog.\n" + " PATH = Directory chooser dialog.\n" + " STRING = Arbitrary string.\n" + " BOOL = Boolean ON/OFF checkbox.\n" + " INTERNAL = No GUI entry (used for persistent variables).\n" + "If is INTERNAL, then the is always written into the " + "cache, replacing any values existing in the cache. If it is not a " + "cache variable, then this always writes into the current makefile. The " + "FORCE option will overwrite the cache value removing any changes by " + "the user.\n" + "If PARENT_SCOPE is present, the variable will be set in the scope " + "above the current scope. Each new directory or function creates a new " + "scope. This command will set the value of a variable into the parent " + "directory or calling function (whichever is applicable to the case at " + "hand) If VALUE is not specified then the variable is removed from the " + "parent scope.\n" + " set( ... )\n" + "In this case is set to a semicolon separated list of " + "values.\n" + " can be an environment variable such as:\n" + " set( ENV{PATH} /home/martink )\n" + "in which case the environment variable will be set."; + } + + cmTypeMacro(cmSetCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSetDirectoryPropertiesCommand.cxx b/CMakeLua/Source/cmSetDirectoryPropertiesCommand.cxx new file mode 100644 index 0000000..e44d569 --- /dev/null +++ b/CMakeLua/Source/cmSetDirectoryPropertiesCommand.cxx @@ -0,0 +1,75 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetDirectoryPropertiesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSetDirectoryPropertiesCommand.h" + +#include "cmake.h" + +// cmSetDirectoryPropertiesCommand +bool cmSetDirectoryPropertiesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::string errors; + bool ret = + cmSetDirectoryPropertiesCommand::RunCommand(this->Makefile, + args.begin() + 1, + args.end(), errors); + if (!ret) + { + this->SetError(errors.c_str()); + } + return ret; +} + +bool cmSetDirectoryPropertiesCommand +::RunCommand(cmMakefile *mf, + std::vector::const_iterator ait, + std::vector::const_iterator aitend, + std::string &errors) +{ + for (; ait != aitend; ait += 2 ) + { + if ( ait +1 == aitend) + { + errors = "Wrong number of arguments"; + return false; + } + const std::string& prop = *ait; + const std::string& value = *(ait+1); + if ( prop == "VARIABLES" ) + { + errors = + "Variables and cache variables should be set using SET command"; + return false; + } + else if ( prop == "MACROS" ) + { + errors = + "Commands and macros cannot be set using SET_CMAKE_PROPERTIES"; + return false; + } + mf->SetProperty(prop.c_str(), value.c_str()); + } + + return true; +} + diff --git a/CMakeLua/Source/cmSetDirectoryPropertiesCommand.h b/CMakeLua/Source/cmSetDirectoryPropertiesCommand.h new file mode 100644 index 0000000..6360f52 --- /dev/null +++ b/CMakeLua/Source/cmSetDirectoryPropertiesCommand.h @@ -0,0 +1,83 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetDirectoryPropertiesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSetDirectoryPropertiesCommand_h +#define cmSetDirectoryPropertiesCommand_h + +#include "cmCommand.h" + +class cmSetDirectoryPropertiesCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmSetDirectoryPropertiesCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "set_directory_properties";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set a property of the directory."; + } + + /** + * Static entry point for use by other commands + */ + static bool RunCommand(cmMakefile *mf, + std::vector::const_iterator ait, + std::vector::const_iterator aitend, + std::string &errors); + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " set_directory_properties(PROPERTIES prop1 value1 prop2 value2)\n" + "Set a property for the current directory and subdirectories. If the " + "property is not found, CMake will report an error. The properties " + "include: INCLUDE_DIRECTORIES, LINK_DIRECTORIES, " + "INCLUDE_REGULAR_EXPRESSION, and ADDITIONAL_MAKE_CLEAN_FILES.\n" + "ADDITIONAL_MAKE_CLEAN_FILES is a list of files that will be cleaned " + "as a part of \"make clean\" stage."; + } + + cmTypeMacro(cmSetDirectoryPropertiesCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSetPropertyCommand.cxx b/CMakeLua/Source/cmSetPropertyCommand.cxx new file mode 100644 index 0000000..f296db2 --- /dev/null +++ b/CMakeLua/Source/cmSetPropertyCommand.cxx @@ -0,0 +1,361 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetPropertyCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:36 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSetPropertyCommand.h" +#include "cmSetTargetPropertiesCommand.h" +#include "cmSetTestsPropertiesCommand.h" +#include "cmSetSourceFilesPropertiesCommand.h" + +//---------------------------------------------------------------------------- +cmSetPropertyCommand::cmSetPropertyCommand() +{ + this->AppendMode = false; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // Get the scope on which to set the property. + std::vector::const_iterator arg = args.begin(); + cmProperty::ScopeType scope; + if(*arg == "GLOBAL") + { + scope = cmProperty::GLOBAL; + } + else if(*arg == "DIRECTORY") + { + scope = cmProperty::DIRECTORY; + } + else if(*arg == "TARGET") + { + scope = cmProperty::TARGET; + } + else if(*arg == "SOURCE") + { + scope = cmProperty::SOURCE_FILE; + } + else if(*arg == "TEST") + { + scope = cmProperty::TEST; + } + else + { + cmOStringStream e; + e << "given invalid scope " << *arg << ". " + << "Valid scopes are GLOBAL, DIRECTORY, TARGET, SOURCE, TEST."; + this->SetError(e.str().c_str()); + return false; + } + + // Parse the rest of the arguments up to the values. + enum Doing { DoingNone, DoingNames, DoingProperty, DoingValues }; + Doing doing = DoingNames; + const char* sep = ""; + for(++arg; arg != args.end(); ++arg) + { + if(*arg == "PROPERTY") + { + doing = DoingProperty; + } + else if(*arg == "APPEND") + { + doing = DoingNone; + this->AppendMode = true; + } + else if(doing == DoingNames) + { + this->Names.insert(*arg); + } + else if(doing == DoingProperty) + { + this->PropertyName = *arg; + doing = DoingValues; + } + else if(doing == DoingValues) + { + this->PropertyValue += sep; + sep = ";"; + this->PropertyValue += *arg; + } + else + { + cmOStringStream e; + e << "given invalid argument \"" << *arg << "\"."; + this->SetError(e.str().c_str()); + return false; + } + } + + // Make sure a property name was found. + if(this->PropertyName.empty()) + { + this->SetError("not given a PROPERTY argument."); + return false; + } + + // Dispatch property setting. + switch(scope) + { + case cmProperty::GLOBAL: return this->HandleGlobalMode(); + case cmProperty::DIRECTORY: return this->HandleDirectoryMode(); + case cmProperty::TARGET: return this->HandleTargetMode(); + case cmProperty::SOURCE_FILE: return this->HandleSourceMode(); + case cmProperty::TEST: return this->HandleTestMode(); + + case cmProperty::VARIABLE: + case cmProperty::CACHED_VARIABLE: + break; // should never happen + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleGlobalMode() +{ + if(!this->Names.empty()) + { + this->SetError("given names for GLOBAL scope."); + return false; + } + + // Set or append the property. + cmake* cm = this->Makefile->GetCMakeInstance(); + const char* name = this->PropertyName.c_str(); + if(this->AppendMode) + { + cm->AppendProperty(name, this->PropertyValue.c_str()); + } + else + { + cm->SetProperty(name, this->PropertyValue.c_str()); + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleDirectoryMode() +{ + if(this->Names.size() > 1) + { + this->SetError("allows at most one name for DIRECTORY scope."); + return false; + } + + // Default to the current directory. + cmMakefile* mf = this->Makefile; + + // Lookup the directory if given. + if(!this->Names.empty()) + { + // Construct the directory name. Interpret relative paths with + // respect to the current directory. + std::string dir = *this->Names.begin(); + if(!cmSystemTools::FileIsFullPath(dir.c_str())) + { + dir = this->Makefile->GetCurrentDirectory(); + dir += "/"; + dir += *this->Names.begin(); + } + + // The local generators are associated with collapsed paths. + dir = cmSystemTools::CollapseFullPath(dir.c_str()); + + // Lookup the generator. + if(cmLocalGenerator* lg = + (this->Makefile->GetLocalGenerator() + ->GetGlobalGenerator()->FindLocalGenerator(dir.c_str()))) + { + // Use the makefile for the directory found. + mf = lg->GetMakefile(); + } + else + { + // Could not find the directory. + this->SetError + ("DIRECTORY scope provided but requested directory was not found. " + "This could be because the directory argument was invalid or, " + "it is valid but has not been processed yet."); + return false; + } + } + + // Set or append the property. + const char* name = this->PropertyName.c_str(); + if(this->AppendMode) + { + mf->AppendProperty(name, this->PropertyValue.c_str()); + } + else + { + mf->SetProperty(name, this->PropertyValue.c_str()); + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleTargetMode() +{ + for(std::set::const_iterator ni = this->Names.begin(); + ni != this->Names.end(); ++ni) + { + if(cmTarget* target = this->Makefile->FindTargetToUse(ni->c_str())) + { + // Handle the current target. + if(!this->HandleTarget(target)) + { + return false; + } + } + else + { + cmOStringStream e; + e << "could not find TARGET " << *ni + << ". Perhaps it has not yet been created."; + this->SetError(e.str().c_str()); + return false; + } + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleTarget(cmTarget* target) +{ + // Set or append the property. + const char* name = this->PropertyName.c_str(); + if(this->AppendMode) + { + target->AppendProperty(name, this->PropertyValue.c_str()); + } + else + { + target->SetProperty(name, this->PropertyValue.c_str()); + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleSourceMode() +{ + for(std::set::const_iterator ni = this->Names.begin(); + ni != this->Names.end(); ++ni) + { + // Get the source file. + if(cmSourceFile* sf = this->Makefile->GetOrCreateSource(ni->c_str())) + { + if(!this->HandleSource(sf)) + { + return false; + } + } + else + { + cmOStringStream e; + e << "given SOURCE name that could not be found or created: " << *ni; + this->SetError(e.str().c_str()); + return false; + } + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleSource(cmSourceFile* sf) +{ + // Set or append the property. + const char* name = this->PropertyName.c_str(); + if(this->AppendMode) + { + sf->AppendProperty(name, this->PropertyValue.c_str()); + } + else + { + sf->SetProperty(name, this->PropertyValue.c_str()); + } + + // TODO: MACOSX_PACKAGE_LOCATION special case in + // cmSetSourceFilesPropertiesCommand + // The logic should be moved to cmSourceFile. + + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleTestMode() +{ + // Loop over all tests looking for matching names. + std::vector const& tests = *this->Makefile->GetTests(); + for(std::vector::const_iterator ti = tests.begin(); + ti != tests.end(); ++ti) + { + cmTest* test = *ti; + std::set::iterator ni = + this->Names.find(test->GetName()); + if(ni != this->Names.end()) + { + if(this->HandleTest(test)) + { + this->Names.erase(ni); + } + else + { + return false; + } + } + } + + // Names that are still left were not found. + if(!this->Names.empty()) + { + cmOStringStream e; + e << "given TEST names that do not exist:\n"; + for(std::set::const_iterator ni = this->Names.begin(); + ni != this->Names.end(); ++ni) + { + e << " " << *ni << "\n"; + } + this->SetError(e.str().c_str()); + return false; + } + return true; +} + +//---------------------------------------------------------------------------- +bool cmSetPropertyCommand::HandleTest(cmTest* test) +{ + // Set or append the property. + const char* name = this->PropertyName.c_str(); + if(this->AppendMode) + { + test->AppendProperty(name, this->PropertyValue.c_str()); + } + else + { + test->SetProperty(name, this->PropertyValue.c_str()); + } + + return true; +} diff --git a/CMakeLua/Source/cmSetPropertyCommand.h b/CMakeLua/Source/cmSetPropertyCommand.h new file mode 100644 index 0000000..3d226d5 --- /dev/null +++ b/CMakeLua/Source/cmSetPropertyCommand.h @@ -0,0 +1,110 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetPropertyCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.3 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSetsPropertiesCommand_h +#define cmSetsPropertiesCommand_h + +#include "cmCommand.h" + +class cmSetPropertyCommand : public cmCommand +{ +public: + cmSetPropertyCommand(); + + virtual cmCommand* Clone() + { + return new cmSetPropertyCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "set_property";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set a named property in a given scope."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " set_property(\n" + " [APPEND]\n" + " PROPERTY [value1 [value2 ...]])\n" + "Set one property on zero or more objects of a scope. " + "The first argument determines the scope in which the property " + "is set. It must be one of the following:\n" + "GLOBAL scope is unique and does not accept a name.\n" + "DIRECTORY scope defaults to the current directory but another " + "directory (already processed by CMake) may be named by full or " + "relative path.\n" + "TARGET scope may name zero or more existing targets.\n" + "SOURCE scope may name zero or more source files.\n" + "TEST scope may name zero or more existing tests.\n" + "The required PROPERTY option is immediately followed by the name " + "of the property to set. Remaining arguments are used to " + "compose the property value in the form of a semicolon-separated " + "list. " + "If the APPEND option is given the list is appended to any " + "existing property value." + ; + } + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + cmTypeMacro(cmSetPropertyCommand, cmCommand); + +private: + std::set Names; + std::string PropertyName; + std::string PropertyValue; + bool AppendMode; + + // Implementation of each property type. + bool HandleGlobalMode(); + bool HandleDirectoryMode(); + bool HandleTargetMode(); + bool HandleTarget(cmTarget* target); + bool HandleSourceMode(); + bool HandleSource(cmSourceFile* sf); + bool HandleTestMode(); + bool HandleTest(cmTest* test); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSetSourceFilesPropertiesCommand.cxx b/CMakeLua/Source/cmSetSourceFilesPropertiesCommand.cxx new file mode 100644 index 0000000..9fcd88e --- /dev/null +++ b/CMakeLua/Source/cmSetSourceFilesPropertiesCommand.cxx @@ -0,0 +1,199 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetSourceFilesPropertiesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.18 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSetSourceFilesPropertiesCommand.h" + +#include "cmSourceFile.h" + +// cmSetSourceFilesPropertiesCommand +bool cmSetSourceFilesPropertiesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // break the arguments into source file names and properties + int numFiles = 0; + std::vector::const_iterator j; + j = args.begin(); + // old style allows for specifier before PROPERTIES keyword + while (*j != "ABSTRACT" && + *j != "WRAP_EXCLUDE" && + *j != "GENERATED" && + *j != "COMPILE_FLAGS" && + *j != "OBJECT_DEPENDS" && + *j != "PROPERTIES") + { + numFiles++; + ++j; + } + + // now call the worker function + std::string errors; + bool ret = + cmSetSourceFilesPropertiesCommand + ::RunCommand(this->Makefile, + args.begin(), + args.begin() + numFiles, + args.begin() + numFiles, + args.end(), errors); + if (!ret) + { + this->SetError(errors.c_str()); + } + return ret; +} + +bool cmSetSourceFilesPropertiesCommand +::RunCommand(cmMakefile *mf, + std::vector::const_iterator filebeg, + std::vector::const_iterator fileend, + std::vector::const_iterator propbeg, + std::vector::const_iterator propend, + std::string &errors) +{ + std::vector propertyPairs; + bool generated = false; + std::vector::const_iterator j; + // build the property pairs + for(j= propbeg; j != propend;++j) + { + // old style allows for specifier before PROPERTIES keyword + if(*j == "ABSTRACT") + { + propertyPairs.push_back("ABSTRACT"); + propertyPairs.push_back("1"); + } + else if(*j == "WRAP_EXCLUDE") + { + propertyPairs.push_back("WRAP_EXCLUDE"); + propertyPairs.push_back("1"); + } + else if(*j == "GENERATED") + { + generated = true; + propertyPairs.push_back("GENERATED"); + propertyPairs.push_back("1"); + } + else if(*j == "COMPILE_FLAGS") + { + propertyPairs.push_back("COMPILE_FLAGS"); + ++j; + if(j == propend) + { + errors = "called with incorrect number of arguments " + "COMPILE_FLAGS with no flags"; + return false; + } + propertyPairs.push_back(*j); + } + else if(*j == "OBJECT_DEPENDS") + { + propertyPairs.push_back("OBJECT_DEPENDS"); + ++j; + if(j == propend) + { + errors = "called with incorrect number of arguments " + "OBJECT_DEPENDS with no dependencies"; + return false; + } + propertyPairs.push_back(*j); + } + else if(*j == "PROPERTIES") + { + // now loop through the rest of the arguments, new style + ++j; + bool dontPush = false; + while (j != propend) + { + propertyPairs.push_back(*j); + if(*j == "GENERATED") + { + ++j; + if(j != propend && cmSystemTools::IsOn(j->c_str())) + { + generated = true; + } + } + else if(*j == "MACOSX_PACKAGE_LOCATION") + { + ++j; + if(j == propend) + { + errors = "called with incorrect number of arguments " + "MACOSX_PACKAGE_LOCATION with no flags"; + return false; + } + propertyPairs.push_back(*j); + propertyPairs.push_back("EXTRA_CONTENT"); + propertyPairs.push_back("1"); + propertyPairs.push_back("MACOSX_CONTENT"); + propertyPairs.push_back("1"); + propertyPairs.push_back("KEEP_EXTENSION"); + propertyPairs.push_back("1"); + propertyPairs.push_back("LANGUAGE"); + propertyPairs.push_back("MacOSX_Content"); + dontPush = true; + } + else + { + ++j; + } + if(j == propend) + { + errors = "called with incorrect number of arguments."; + return false; + } + if ( !dontPush ) + { + propertyPairs.push_back(*j); + } + ++j; + dontPush = false; + } + // break out of the loop because j is already == end + break; + } + else + { + errors = "called with illegal arguments, maybe missing a " + "PROPERTIES specifier?"; + return false; + } + } + + // now loop over all the files + for(j= filebeg; j != fileend;++j) + { + // get the source file + cmSourceFile* sf = + mf->GetOrCreateSource(j->c_str(), generated); + if(sf) + { + // now loop through all the props and set them + unsigned int k; + for (k = 0; k < propertyPairs.size(); k = k + 2) + { + sf->SetProperty(propertyPairs[k].c_str(),propertyPairs[k+1].c_str()); + } + } + } + return true; +} + diff --git a/CMakeLua/Source/cmSetSourceFilesPropertiesCommand.h b/CMakeLua/Source/cmSetSourceFilesPropertiesCommand.h new file mode 100644 index 0000000..d4cdb3e --- /dev/null +++ b/CMakeLua/Source/cmSetSourceFilesPropertiesCommand.h @@ -0,0 +1,100 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetSourceFilesPropertiesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.15 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSetSourceFilesPropertiesCommand_h +#define cmSetSourceFilesPropertiesCommand_h + +#include "cmCommand.h" + +class cmSetSourceFilesPropertiesCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmSetSourceFilesPropertiesCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "set_source_files_properties";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Source files can have properties that affect how they are built."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " set_source_files_properties(file1 file2 ...\n" + " PROPERTIES prop1 value1\n" + " prop2 value2 ...)\n" + "Set properties on a file. The syntax for the command is to list all " + "the files you want " + "to change, and then provide the values you want to set next. You " + "can make up your own properties as well. " + "The following are used by CMake. " + "The ABSTRACT flag (boolean) is used by some class wrapping " + "commands. " + "If WRAP_EXCLUDE (boolean) is true then many wrapping commands " + "will ignore this file. If GENERATED (boolean) is true then it " + "is not an error if this source file does not exist when it is " + "added to a target. Obviously, " + "it must be created (presumably by a custom command) before the " + "target is built. " + "If the HEADER_FILE_ONLY (boolean) property is true then dependency " + "information is not created for that file (this is set " + "automatically, based on the file's name's extension and is probably " + "only used by Makefiles). " + "OBJECT_DEPENDS (string) adds dependencies to the object file. " + "COMPILE_FLAGS (string) is passed to the compiler as additional " + "command line arguments when the source file is compiled. " + "LANGUAGE (string) CXX|C will change the default compiler used " + "to compile the source file. The languages used need to be enabled " + "in the PROJECT command. " + "If SYMBOLIC (boolean) is set to true the build system will be " + "informed that the source file is not actually created on disk but " + "instead used as a symbolic name for a build rule."; + + } + + cmTypeMacro(cmSetSourceFilesPropertiesCommand, cmCommand); + + static bool RunCommand(cmMakefile *mf, + std::vector::const_iterator filebeg, + std::vector::const_iterator fileend, + std::vector::const_iterator propbeg, + std::vector::const_iterator propend, + std::string &errors); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSetTargetPropertiesCommand.cxx b/CMakeLua/Source/cmSetTargetPropertiesCommand.cxx new file mode 100644 index 0000000..185ff23 --- /dev/null +++ b/CMakeLua/Source/cmSetTargetPropertiesCommand.cxx @@ -0,0 +1,114 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetTargetPropertiesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/28 13:38:36 $ + Version: $Revision: 1.9 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSetTargetPropertiesCommand.h" +#include "cmLocalGenerator.h" +#include "cmGlobalGenerator.h" + +// cmSetTargetPropertiesCommand +bool cmSetTargetPropertiesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 2 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // first collect up the list of files + std::vector propertyPairs; + bool doingFiles = true; + int numFiles = 0; + std::vector::const_iterator j; + for(j= args.begin(); j != args.end();++j) + { + if(*j == "PROPERTIES") + { + doingFiles = false; + // now loop through the rest of the arguments, new style + ++j; + while (j != args.end()) + { + propertyPairs.push_back(*j); + ++j; + if(j == args.end()) + { + this->SetError("called with incorrect number of arguments."); + return false; + } + propertyPairs.push_back(*j); + ++j; + } + // break out of the loop because j is already == end + break; + } + else if (doingFiles) + { + numFiles++; + } + else + { + this->SetError("called with illegal arguments, maybe missing " + "a PROPERTIES specifier?"); + return false; + } + } + if(propertyPairs.size() == 0) + { + this->SetError("called with illegal arguments, maybe missing " + "a PROPERTIES specifier?"); + return false; + } + + // now loop over all the targets + int i; + for(i = 0; i < numFiles; ++i) + { + bool ret = cmSetTargetPropertiesCommand::SetOneTarget + (args[i].c_str(),propertyPairs,this->Makefile); + if (!ret) + { + std::string message = "Can not find target to add properties to: "; + message += args[i]; + this->SetError(message.c_str()); + return false; + } + } + return true; +} + +bool cmSetTargetPropertiesCommand +::SetOneTarget(const char *tname, + std::vector &propertyPairs, + cmMakefile *mf) +{ + if(cmTarget* target = mf->FindTargetToUse(tname)) + { + // now loop through all the props and set them + unsigned int k; + for (k = 0; k < propertyPairs.size(); k = k + 2) + { + target->SetProperty(propertyPairs[k].c_str(), + propertyPairs[k+1].c_str()); + } + } + // if file is not already in the makefile, then add it + else + { + return false; + } + return true; +} diff --git a/CMakeLua/Source/cmSetTargetPropertiesCommand.h b/CMakeLua/Source/cmSetTargetPropertiesCommand.h new file mode 100644 index 0000000..ef84730 --- /dev/null +++ b/CMakeLua/Source/cmSetTargetPropertiesCommand.h @@ -0,0 +1,172 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetTargetPropertiesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.31 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSetTargetsPropertiesCommand_h +#define cmSetTargetsPropertiesCommand_h + +#include "cmCommand.h" + +class cmSetTargetPropertiesCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmSetTargetPropertiesCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "set_target_properties";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Targets can have properties that affect how they are built."; + } + + /** + * Used by this command and cmSetPropertiesCommand + */ + static bool SetOneTarget(const char *tname, + std::vector &propertyPairs, + cmMakefile *mf); + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " set_target_properties(target1 target2 ...\n" + " PROPERTIES prop1 value1\n" + " prop2 value2 ...)\n" + "Set properties on a target. The syntax for the command is to " + "list all the files you want " + "to change, and then provide the values you want to set next. " + "You can use any prop value pair you want and " + "extract it later with the GET_TARGET_PROPERTY command.\n" + "Properties that affect the name of a target's output file are " + "as follows. " + "The PREFIX and SUFFIX properties override the default target name " + "prefix (such as \"lib\") and suffix (such as \".so\"). " + "IMPORT_PREFIX and IMPORT_SUFFIX are the equivalent properties for " + "the import library corresponding to a DLL " + "(for SHARED library targets). " + "OUTPUT_NAME sets the real name of a target when it is built and " + "can be used to help create two targets of the same name even though " + "CMake requires unique logical target names. There is also a " + "_OUTPUT_NAME that can set the output name on a " + "per-configuration basis. " + "_POSTFIX sets a postfix for the real name of the target " + "when it is built under the configuration named by " + "(in upper-case, such as \"DEBUG_POSTFIX\"). The value of " + "this property is initialized when the target is created to the " + "value of the variable CMAKE__POSTFIX (except for executable " + "targets because earlier CMake versions which did not use this " + "variable for executables)." + "\n" + "The LINK_FLAGS property can be used to add extra flags to the " + "link step of a target. LINK_FLAGS_ will add to the " + "configuration , " + "for example, DEBUG, RELEASE, MINSIZEREL, RELWITHDEBINFO. " + "DEFINE_SYMBOL sets the name of the preprocessor symbol defined when " + "compiling sources in a shared library. " + "If not set here then it is set to target_EXPORTS by default " + "(with some substitutions if the target is not a valid C " + "identifier). This is useful for headers to know whether they are " + "being included from inside their library our outside to properly " + "setup dllexport/dllimport decorations. " + "The COMPILE_FLAGS property sets additional compiler flags used " + "to build sources within the target. It may also be used to pass " + "additional preprocessor definitions." + "\n" + "The LINKER_LANGUAGE property is used to change the tool " + "used to link an executable or shared library. The default is " + "set the language to match the files in the library. CXX and C " + "are common values for this property." + "\n" + "For shared libraries VERSION and SOVERSION can be used to specify " + "the build version and api version respectively. When building or " + "installing appropriate symlinks are created if the platform " + "supports symlinks and the linker supports so-names. " + "If only one of both is specified the missing is assumed to have " + "the same version number. " + "For executables VERSION can be used to specify the build version. " + "When building or installing appropriate symlinks are created if " + "the platform supports symlinks. " + "For shared libraries and executables on Windows the VERSION " + "attribute is parsed to extract a \"major.minor\" version number. " + "These numbers are used as the image version of the binary. " + "\n" + "There are a few properties used to specify RPATH rules. " + "INSTALL_RPATH is a semicolon-separated list specifying the rpath " + "to use in installed targets (for platforms that support it). " + "INSTALL_RPATH_USE_LINK_PATH is a boolean that if set to true will " + "append directories in the linker search path and outside the " + "project to the INSTALL_RPATH. " + "SKIP_BUILD_RPATH is a boolean specifying whether to skip automatic " + "generation of an rpath allowing the target to run from the " + "build tree. " + "BUILD_WITH_INSTALL_RPATH is a boolean specifying whether to link " + "the target in the build tree with the INSTALL_RPATH. This takes " + "precedence over SKIP_BUILD_RPATH and avoids the need for relinking " + "before installation. INSTALL_NAME_DIR is a string specifying the " + "directory portion of the \"install_name\" field of shared libraries " + "on Mac OSX to use in the installed targets. " + "When the target is created the values of " + "the variables CMAKE_INSTALL_RPATH, " + "CMAKE_INSTALL_RPATH_USE_LINK_PATH, CMAKE_SKIP_BUILD_RPATH, " + "CMAKE_BUILD_WITH_INSTALL_RPATH, and CMAKE_INSTALL_NAME_DIR " + "are used to initialize these properties.\n" + "PROJECT_LABEL can be used to change the name of " + "the target in an IDE like visual studio. VS_KEYWORD can be set " + "to change the visual studio keyword, for example QT integration " + "works better if this is set to Qt4VSv1.0.\n" + "When a library is built CMake by default generates code to remove " + "any existing library using all possible names. This is needed " + "to support libraries that switch between STATIC and SHARED by " + "a user option. However when using OUTPUT_NAME to build a static " + "and shared library of the same name using different logical target " + "names the two targets will remove each other's files. This can be " + "prevented by setting the CLEAN_DIRECT_OUTPUT property to 1.\n" + "The PRE_INSTALL_SCRIPT and POST_INSTALL_SCRIPT properties are the " + "old way to specify CMake scripts to run before and after " + "installing a target. They are used only when the old " + "INSTALL_TARGETS command is used to install the target. Use the " + "INSTALL command instead." + "\n" + "The EXCLUDE_FROM_DEFAULT_BUILD property is used by the visual " + "studio generators. If it is set to 1 the target will not be " + "part of the default build when you select \"Build Solution\"." + ; + } + + cmTypeMacro(cmSetTargetPropertiesCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSetTestsPropertiesCommand.cxx b/CMakeLua/Source/cmSetTestsPropertiesCommand.cxx new file mode 100644 index 0000000..325a2d1 --- /dev/null +++ b/CMakeLua/Source/cmSetTestsPropertiesCommand.cxx @@ -0,0 +1,135 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetTestsPropertiesCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSetTestsPropertiesCommand.h" + +#include "cmake.h" +#include "cmTest.h" + +// cmSetTestsPropertiesCommand +bool cmSetTestsPropertiesCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + // first collect up the list of files + std::vector propertyPairs; + bool doingFiles = true; + int numFiles = 0; + std::vector::const_iterator j; + for(j= args.begin(); j != args.end();++j) + { + if(*j == "PROPERTIES") + { + doingFiles = false; + // now loop through the rest of the arguments, new style + ++j; + while (j != args.end()) + { + propertyPairs.push_back(*j); + ++j; + if(j == args.end()) + { + this->SetError("called with incorrect number of arguments."); + return false; + } + propertyPairs.push_back(*j); + ++j; + } + // break out of the loop because j is already == end + break; + } + else if (doingFiles) + { + numFiles++; + } + else + { + this->SetError("called with illegal arguments, maybe " + "missing a PROPERTIES specifier?"); + return false; + } + } + if(propertyPairs.size() == 0) + { + this->SetError("called with illegal arguments, maybe " + "missing a PROPERTIES specifier?"); + return false; + } + + + // now loop over all the targets + int i; + for(i = 0; i < numFiles; ++i) + { + std::string errors; + bool ret = + cmSetTestsPropertiesCommand::SetOneTest(args[i].c_str(), + propertyPairs, + this->Makefile, errors); + if (!ret) + { + this->SetError(errors.c_str()); + return ret; + } + } + + return true; +} + + +bool cmSetTestsPropertiesCommand +::SetOneTest(const char *tname, + std::vector &propertyPairs, + cmMakefile *mf, std::string &errors) +{ + std::vector &tests = *mf->GetTests(); + // now loop over all the targets + unsigned int k; + bool found = false; + // if the file is already in the makefile just set properites on it + std::vector::iterator it; + for ( it = tests.begin(); it != tests.end(); ++ it ) + { + cmTest* test = *it; + if ( !strcmp(test->GetName(),tname )) + { + // now loop through all the props and set them + for (k = 0; k < propertyPairs.size(); k = k + 2) + { + test->SetProperty(propertyPairs[k].c_str(), + propertyPairs[k+1].c_str()); + } + found = true; + break; + } + } + + // if file is not already in the makefile, then add it + if ( ! found ) + { + errors = "Can not find test to add properties to: "; + errors += tname; + return false; + } + + return true; +} + diff --git a/CMakeLua/Source/cmSetTestsPropertiesCommand.h b/CMakeLua/Source/cmSetTestsPropertiesCommand.h new file mode 100644 index 0000000..c36e8bc --- /dev/null +++ b/CMakeLua/Source/cmSetTestsPropertiesCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSetTestsPropertiesCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.8 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSetTestsPropertiesCommand_h +#define cmSetTestsPropertiesCommand_h + +#include "cmCommand.h" + +class cmSetTestsPropertiesCommand : public cmCommand +{ +public: + virtual cmCommand* Clone() + { + return new cmSetTestsPropertiesCommand; + } + + /** + * This is called when the command is first encountered in + * the input file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "set_tests_properties";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set a property of the tests."; + } + + /** + * Longer documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2" + " value2)\n" + "Set a property for the tests. If the property is not found, CMake " + "will report an error. The properties include:\n" + "WILL_FAIL: If set to true, this will invert the pass/fail flag of the" + " test.\n" + "PASS_REGULAR_EXPRESSION: If set, the test output will be checked " + "against the specified regular expressions and at least one of the" + " regular " + "expressions has to match, otherwise the test will fail.\n" + " Example: PASS_REGULAR_EXPRESSION \"TestPassed;All ok\"\n" + "FAIL_REGULAR_EXPRESSION: If set, if the output will match to one of " + "specified regular expressions, the test will fail.\n" + " Example: PASS_REGULAR_EXPRESSION \"[^a-z]Error;ERROR;Failed\"\n" + "Both PASS_REGULAR_EXPRESSION and FAIL_REGULAR_EXPRESSION expect a " + "list of regular expressions.\n"; + } + + cmTypeMacro(cmSetTestsPropertiesCommand, cmCommand); + + static bool SetOneTest(const char *tname, + std::vector &propertyPairs, + cmMakefile *mf, + std::string &errors); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSiteNameCommand.cxx b/CMakeLua/Source/cmSiteNameCommand.cxx new file mode 100644 index 0000000..7d511c8 --- /dev/null +++ b/CMakeLua/Source/cmSiteNameCommand.cxx @@ -0,0 +1,100 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSiteNameCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.24 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSiteNameCommand.h" + +#include + +// cmSiteNameCommand +bool cmSiteNameCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() != 1 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::vector paths; + paths.push_back("/usr/bsd"); + paths.push_back("/usr/sbin"); + paths.push_back("/usr/bin"); + paths.push_back("/bin"); + paths.push_back("/sbin"); + paths.push_back("/usr/local/bin"); + + const char* cacheValue + = this->Makefile->GetDefinition(args[0].c_str()); + if(cacheValue) + { + return true; + } + + const char *temp = this->Makefile->GetDefinition("HOSTNAME"); + std::string hostname_cmd; + if(temp) + { + hostname_cmd = temp; + } + else + { + hostname_cmd = cmSystemTools::FindProgram("hostname", paths); + } + + std::string siteName = "unknown"; +#if defined(_WIN32) && !defined(__CYGWIN__) + std::string host; + if(cmSystemTools::ReadRegistryValue + ("HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\" + "Control\\ComputerName\\ComputerName;ComputerName", host)) + { + siteName = host; + } +#else + // try to find the hostname for this computer + if (!cmSystemTools::IsOff(hostname_cmd.c_str())) + { + std::string host; + cmSystemTools::RunSingleCommand(hostname_cmd.c_str(), + &host, 0, 0, false); + + // got the hostname + if (host.length()) + { + // remove any white space from the host name + std::string hostRegExp = "[ \t\n\r]*([^\t\n\r ]*)[ \t\n\r]*"; + cmsys::RegularExpression hostReg (hostRegExp.c_str()); + if (hostReg.find(host.c_str())) + { + // strip whitespace + host = hostReg.match(1); + } + + if(host.length()) + { + siteName = host; + } + } + } +#endif + this->Makefile-> + AddCacheDefinition(args[0].c_str(), + siteName.c_str(), + "Name of the computer/site where compile is being run", + cmCacheManager::STRING); + + return true; +} + diff --git a/CMakeLua/Source/cmSiteNameCommand.h b/CMakeLua/Source/cmSiteNameCommand.h new file mode 100644 index 0000000..9633226 --- /dev/null +++ b/CMakeLua/Source/cmSiteNameCommand.h @@ -0,0 +1,77 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSiteNameCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.11 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSiteNameCommand_h +#define cmSiteNameCommand_h + +#include "cmCommand.h" + +/** \class cmSiteNameCommand + * \brief SiteName a CMAKE variable + * + * cmSiteNameCommand sets a variable to a value with expansion. + */ +class cmSiteNameCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmSiteNameCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * This determines if the command is invoked when in script mode. + */ + virtual bool IsScriptable() { return true; } + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "site_name";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Set the given variable to the name of the computer."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " site_name(variable)\n"; + } + + cmTypeMacro(cmSiteNameCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmSourceFile.cxx b/CMakeLua/Source/cmSourceFile.cxx new file mode 100644 index 0000000..64342f3 --- /dev/null +++ b/CMakeLua/Source/cmSourceFile.cxx @@ -0,0 +1,512 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceFile.cxx,v $ + Language: C++ + Date: $Date: 2008/01/30 16:21:54 $ + Version: $Revision: 1.45 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSourceFile.h" + +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" +#include "cmSystemTools.h" +#include "cmake.h" + +//---------------------------------------------------------------------------- +cmSourceFile::cmSourceFile(cmMakefile* mf, const char* name): + Location(mf, name) +{ + this->CustomCommand = 0; + this->Properties.SetCMakeInstance(mf->GetCMakeInstance()); + this->FindFullPathFailed = false; +} + +//---------------------------------------------------------------------------- +cmSourceFile::~cmSourceFile() +{ + this->SetCustomCommand(0); +} + +//---------------------------------------------------------------------------- +std::string const& cmSourceFile::GetExtension() const +{ + return this->Extension; +} + +//---------------------------------------------------------------------------- +const char* cmSourceFile::GetLanguage() +{ + // Compute the final location of the file if necessary. + if(this->FullPath.empty()) + { + this->GetFullPath(); + } + + // Now try to determine the language. + return static_cast(this)->GetLanguage(); +} + +//---------------------------------------------------------------------------- +const char* cmSourceFile::GetLanguage() const +{ + // If the language was set explicitly by the user then use it. + if(const char* lang = this->GetProperty("LANGUAGE")) + { + return lang; + } + + // If the language was determined from the source file extension use it. + if(!this->Language.empty()) + { + return this->Language.c_str(); + } + + // The language is not known. + return 0; +} + +//---------------------------------------------------------------------------- +cmSourceFileLocation const& cmSourceFile::GetLocation() const +{ + return this->Location; +} + +//---------------------------------------------------------------------------- +std::string const& cmSourceFile::GetFullPath() +{ + if(this->FullPath.empty()) + { + if(this->FindFullPath()) + { + this->CheckExtension(); + } + } + return this->FullPath; +} + +//---------------------------------------------------------------------------- +std::string const& cmSourceFile::GetFullPath() const +{ + return this->FullPath; +} + +//---------------------------------------------------------------------------- +bool cmSourceFile::FindFullPath() +{ + // If thie method has already failed once do not try again. + if(this->FindFullPathFailed) + { + return false; + } + + // If the file is generated compute the location without checking on + // disk. + if(this->GetPropertyAsBool("GENERATED")) + { + // The file is either already a full path or is relative to the + // build directory for the target. + this->Location.DirectoryUseBinary(); + this->FullPath = this->Location.GetDirectory(); + this->FullPath += "/"; + this->FullPath += this->Location.GetName(); + return true; + } + + // The file is not generated. It must exist on disk. + cmMakefile* mf = this->Location.GetMakefile(); + const char* tryDirs[3] = {0, 0, 0}; + if(this->Location.DirectoryIsAmbiguous()) + { + tryDirs[0] = mf->GetCurrentDirectory(); + tryDirs[1] = mf->GetCurrentOutputDirectory(); + } + else + { + tryDirs[0] = ""; + } + const std::vector& srcExts = mf->GetSourceExtensions(); + const std::vector& hdrExts = mf->GetHeaderExtensions(); + for(const char* const* di = tryDirs; *di; ++di) + { + std::string tryPath = this->Location.GetDirectory(); + if(!tryPath.empty()) + { + tryPath += "/"; + } + tryPath += this->Location.GetName(); + tryPath = cmSystemTools::CollapseFullPath(tryPath.c_str(), *di); + if(this->TryFullPath(tryPath.c_str(), 0)) + { + return true; + } + for(std::vector::const_iterator ei = srcExts.begin(); + ei != srcExts.end(); ++ei) + { + if(this->TryFullPath(tryPath.c_str(), ei->c_str())) + { + return true; + } + } + for(std::vector::const_iterator ei = hdrExts.begin(); + ei != hdrExts.end(); ++ei) + { + if(this->TryFullPath(tryPath.c_str(), ei->c_str())) + { + return true; + } + } + } + + cmOStringStream e; + e << "Cannot find source file \"" << this->Location.GetName() << "\""; + e << "\n\nTried extensions"; + for(std::vector::const_iterator ext = srcExts.begin(); + ext != srcExts.end(); ++ext) + { + e << " ." << *ext; + } + for(std::vector::const_iterator ext = hdrExts.begin(); + ext != hdrExts.end(); ++ext) + { + e << " ." << *ext; + } + cmSystemTools::Error(e.str().c_str()); + this->FindFullPathFailed = true; + return false; +} + +//---------------------------------------------------------------------------- +bool cmSourceFile::TryFullPath(const char* tp, const char* ext) +{ + std::string tryPath = tp; + if(ext && *ext) + { + tryPath += "."; + tryPath += ext; + } + if(cmSystemTools::FileExists(tryPath.c_str())) + { + this->FullPath = tryPath; + return true; + } + return false; +} + +//---------------------------------------------------------------------------- +void cmSourceFile::CheckExtension() +{ + // Compute the extension. + std::string realExt = + cmSystemTools::GetFilenameLastExtension(this->FullPath); + if(!realExt.empty()) + { + // Store the extension without the leading '.'. + this->Extension = realExt.substr(1); + } + + // Look for object files. + if(this->Extension == "obj" || + this->Extension == "o" || + this->Extension == "lo") + { + this->SetProperty("EXTERNAL_OBJECT", "1"); + } + + // Look for header files. + cmMakefile* mf = this->Location.GetMakefile(); + const std::vector& hdrExts = mf->GetHeaderExtensions(); + if(std::find(hdrExts.begin(), hdrExts.end(), this->Extension) == + hdrExts.end()) + { + // This is not a known header file extension. Mark it as not a + // header unless the user has already explicitly set the property. + if(!this->GetProperty("HEADER_FILE_ONLY")) + { + this->SetProperty("HEADER_FILE_ONLY", "0"); + } + } + else + { + // This is a known header file extension. The source cannot be compiled. + this->SetProperty("HEADER_FILE_ONLY", "1"); + } + + // Try to identify the source file language from the extension. + cmGlobalGenerator* gg = mf->GetLocalGenerator()->GetGlobalGenerator(); + if(const char* l = gg->GetLanguageFromExtension(this->Extension.c_str())) + { + this->Language = l; + } +} + +//---------------------------------------------------------------------------- +bool cmSourceFile::Matches(cmSourceFileLocation const& loc) +{ + return this->Location.Matches(loc); +} + +//---------------------------------------------------------------------------- +void cmSourceFile::SetProperty(const char* prop, const char* value) +{ + if (!prop) + { + return; + } + if (!value) + { + value = "NOTFOUND"; + } + + this->Properties.SetProperty(prop, value, cmProperty::SOURCE_FILE); +} + +//---------------------------------------------------------------------------- +void cmSourceFile::AppendProperty(const char* prop, const char* value) +{ + if (!prop) + { + return; + } + this->Properties.AppendProperty(prop, value, cmProperty::SOURCE_FILE); +} + +//---------------------------------------------------------------------------- +const char* cmSourceFile::GetPropertyForUser(const char *prop) +{ + // This method is a consequence of design history and backwards + // compatibility. GetProperty is (and should be) a const method. + // Computed properties should not be stored back in the property map + // but instead reference information already known. If they need to + // cache information in a mutable ivar to provide the return string + // safely then so be it. + // + // The LOCATION property is particularly problematic. The CMake + // language has very loose restrictions on the names that will match + // a given source file (for historical reasons). Implementing + // lookups correctly with such loose naming requires the + // cmSourceFileLocation class to commit to a particular full path to + // the source file as late as possible. If the users requests the + // LOCATION property we must commit now. + if(strcmp(prop, "LOCATION") == 0) + { + // Commit to a location. + this->GetFullPath(); + } + + // Perform the normal property lookup. + return this->GetProperty(prop); +} + +//---------------------------------------------------------------------------- +const char* cmSourceFile::GetProperty(const char* prop) const +{ + // Check for computed properties. + if(strcmp(prop, "LOCATION") == 0) + { + if(this->FullPath.empty()) + { + return 0; + } + else + { + return this->FullPath.c_str(); + } + } + + bool chain = false; + const char *retVal = + this->Properties.GetPropertyValue(prop, cmProperty::SOURCE_FILE, chain); + if (chain) + { + cmMakefile* mf = this->Location.GetMakefile(); + return mf->GetProperty(prop,cmProperty::SOURCE_FILE); + } + + return retVal; +} + +//---------------------------------------------------------------------------- +bool cmSourceFile::GetPropertyAsBool(const char* prop) const +{ + return cmSystemTools::IsOn(this->GetProperty(prop)); +} + +//---------------------------------------------------------------------------- +cmCustomCommand* cmSourceFile::GetCustomCommand() +{ + return this->CustomCommand; +} + +//---------------------------------------------------------------------------- +cmCustomCommand const* cmSourceFile::GetCustomCommand() const +{ + return this->CustomCommand; +} + +//---------------------------------------------------------------------------- +void cmSourceFile::SetCustomCommand(cmCustomCommand* cc) +{ + cmCustomCommand* old = this->CustomCommand; + this->CustomCommand = cc; + delete old; +} + +//---------------------------------------------------------------------------- +void cmSourceFile::DefineProperties(cmake *cm) +{ + // define properties + cm->DefineProperty + ("ABSTRACT", cmProperty::SOURCE_FILE, + "Is this source file an abstract class.", + "A property on a source file that indicates if the source file " + "represents a class that is abstract. This only makes sense for " + "languages that have a notion of an abstract class and it is " + "only used by some tools that wrap classes into other languages."); + + cm->DefineProperty + ("COMPILE_FLAGS", cmProperty::SOURCE_FILE, + "Additional flags to be added when compiling this source file.", + "These flags will be added to the list of compile flags when " + "this source file builds. Use COMPILE_DEFINITIONS to pass additional " + "preprocessor definitions."); + + cm->DefineProperty + ("COMPILE_DEFINITIONS", cmProperty::SOURCE_FILE, + "Preprocessor definitions for compiling a source file.", + "The COMPILE_DEFINITIONS property may be set to a list of preprocessor " + "definitions using the syntax VAR or VAR=value. Function-style " + "definitions are not supported. CMake will automatically escape " + "the value correctly for the native build system (note that CMake " + "language syntax may require escapes to specify some values). " + "This property may be set on a per-configuration basis using the name " + "COMPILE_DEFINITIONS_ where is an upper-case name " + "(ex. \"COMPILE_DEFINITIONS_DEBUG\").\n" + "CMake will automatically drop some definitions that " + "are not supported by the native build tool. " + "The VS6 IDE does not support definitions with values " + "(but NMake does). Xcode does not support per-configuration " + "definitions on source files.\n" + "Dislaimer: Most native build tools have poor support for escaping " + "certain values. CMake has work-arounds for many cases but some " + "values may just not be possible to pass correctly. If a value " + "does not seem to be escaped correctly, do not attempt to " + "work-around the problem by adding escape sequences to the value. " + "Your work-around may break in a future version of CMake that " + "has improved escape support. Instead consider defining the macro " + "in a (configured) header file. Then report the limitation."); + + + cm->DefineProperty + ("COMPILE_DEFINITIONS_", cmProperty::SOURCE_FILE, + "Per-configuration preprocessor definitions on a source file.", + "This is the configuration-specific version of " + "COMPILE_DEFINITIONS. Note that Xcode does not support " + "per-configuration source file flags so this property will " + "be ignored by the Xcode generator."); + + cm->DefineProperty + ("EXTERNAL_OBJECT", cmProperty::SOURCE_FILE, + "If set to true then this is an object file.", + "If this property is set to true then the source file " + "is really an object file and should not be compiled. " + "It will still be linked into the target though."); + + cm->DefineProperty + ("EXTRA_CONTENT", cmProperty::SOURCE_FILE, + "Is this file part of a target's extra content.", + "If this property is set, the source file will be added to the " + "target's list of extra content. This is used by makefile " + "generators for some sort of Mac budle framework support."); + + cm->DefineProperty + ("GENERATED", cmProperty::SOURCE_FILE, + "Is this source file generated as part of the build process.", + "If a source file is generated by the build process CMake will " + "handle it differently in temrs of dependency checking etc. " + "Otherwise having a non-existent source file could create problems."); + + cm->DefineProperty + ("HEADER_FILE_ONLY", cmProperty::SOURCE_FILE, + "Is this source file only a header file.", + "A property on a source file that indicates if the source file " + "is a header file with no associated implementation. This is " + "set automatically based on the file extension and is used by " + "CMake to determine is certain dependency information should be " + "computed."); + + cm->DefineProperty + ("KEEP_EXTENSION", cmProperty::SOURCE_FILE, + "Make the output file have the same extension as the source file.", + "If this property is set then the file extension of the output " + "file will be the same as that of the source file. Normally " + "the output file extension is computed based on the language " + "of the source file, for example .cxx will go to a .o extension."); + + cm->DefineProperty + ("LANGUAGE", cmProperty::SOURCE_FILE, + "What programming language is the file.", + "A property that can be set to indicate what programming language " + "the source file is. If it is not set the language is determined " + "based on the file extension. Typical values are CXX C etc."); + + cm->DefineProperty + ("LOCATION", cmProperty::SOURCE_FILE, + "The full path to a source file.", + "A read only property on a SOURCE FILE that contains the full path " + "to the source file."); + + cm->DefineProperty + ("MACOSX_PACKAGE_LOCATION", cmProperty::SOURCE_FILE, + "Location for MACOSX bundles and frameworks.", + "MACOSX_PACKAGE_LOCATION is the property of a file within a mac osx " + "bundle or framework that specifies where this file should be " + "copied. This makes sense for things like icons and other " + "resources."); + + cm->DefineProperty + ("MACOSX_CONTENT", cmProperty::SOURCE_FILE, + "If true then this is part of a MACOSX bundle or framework.", + "MACOSX_CONTENT is a flag that if true this file will be copied " + "to the bundle or framework."); + + cm->DefineProperty + ("OBJECT_DEPENDS", cmProperty::SOURCE_FILE, + "Additional dependencies.", + "Additional dependencies that should be checked as part of " + "building this source file."); + + cm->DefineProperty + ("OBJECT_OUTPUTS", cmProperty::SOURCE_FILE, + "Additional outputs for a Makefile rule.", + "Additional outputs created by compilation of this source file. " + "If any of these outputs is missing the object will be recompiled. " + "This is supported only on Makefile generators and will be ignored " + "on other generators."); + + cm->DefineProperty + ("SYMBOLIC", cmProperty::SOURCE_FILE, + "Is this just a name for a rule.", + "If SYMBOLIC (boolean) is set to true the build system will be " + "informed that the source file is not actually created on disk but " + "instead used as a symbolic name for a build rule."); + + cm->DefineProperty + ("WRAP_EXCLUDE", cmProperty::SOURCE_FILE, + "Exclude this source file from any code wrapping techniques.", + "Some packages can wrap source files into alternate languages " + "to provide additional functionality. For example, C++ code " + "can be wrapped into Java or Python etc using SWIG etc. " + "If WRAP_EXCLUDE is set to true (1 etc) that indicates then " + "this source file should not be wrapped."); +} + diff --git a/CMakeLua/Source/cmSourceFile.h b/CMakeLua/Source/cmSourceFile.h new file mode 100644 index 0000000..dfd517a --- /dev/null +++ b/CMakeLua/Source/cmSourceFile.h @@ -0,0 +1,123 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceFile.h,v $ + Language: C++ + Date: $Date: 2008/01/30 16:21:54 $ + Version: $Revision: 1.25 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSourceFile_h +#define cmSourceFile_h + +#include "cmSourceFileLocation.h" +#include "cmCustomCommand.h" +#include "cmPropertyMap.h" + +class cmake; + +/** \class cmSourceFile + * \brief Represent a class loaded from a makefile. + * + * cmSourceFile is represents a class loaded from + * a makefile. + */ +class cmSourceFile +{ +public: + /** + * Construct with the makefile storing the source and the initial + * name referencing it. + */ + cmSourceFile(cmMakefile* mf, const char* name); + + ~cmSourceFile(); + + /** + * Get the list of the custom commands for this source file + */ + cmCustomCommand* GetCustomCommand(); + cmCustomCommand const* GetCustomCommand() const; + void SetCustomCommand(cmCustomCommand *cc); + + ///! Set/Get a property of this source file + void SetProperty(const char *prop, const char *value); + void AppendProperty(const char* prop, const char* value); + const char *GetProperty(const char *prop) const; + bool GetPropertyAsBool(const char *prop) const; + + /** Implement getting a property when called from a CMake language + command like get_property or get_source_file_property. */ + const char* GetPropertyForUser(const char *prop); + + /** + * The full path to the file. The non-const version of this method + * may attempt to locate the file on disk and finalize its location. + * The const version of this method may return an empty string if + * the non-const version has not yet been called (yes this is a + * horrible interface, but is necessary for backwards + * compatibility). + */ + std::string const& GetFullPath(); + std::string const& GetFullPath() const; + + /** + * Get the information currently known about the source file + * location without attempting to locate the file as GetFullPath + * would. See cmSourceFileLocation documentation. + */ + cmSourceFileLocation const& GetLocation() const; + + /** + * Get the file extension of this source file. + */ + std::string const& GetExtension() const; + + /** + * Get the language of the compiler to use for this source file. + */ + const char* GetLanguage(); + const char* GetLanguage() const; + + /** + * Return the vector that holds the list of dependencies + */ + const std::vector &GetDepends() const {return this->Depends;} + void AddDepend(const char* d) { this->Depends.push_back(d); } + + // Get the properties + cmPropertyMap &GetProperties() { return this->Properties; }; + + // Define the properties + static void DefineProperties(cmake *cm); + + /** + * Check whether the given source file location could refer to this + * source. + */ + bool Matches(cmSourceFileLocation const&); + +private: + cmSourceFileLocation Location; + cmPropertyMap Properties; + cmCustomCommand* CustomCommand; + std::string Extension; + std::string Language; + std::string FullPath; + bool FindFullPathFailed; + + bool FindFullPath(); + bool TryFullPath(const char* tryPath, const char* ext); + void CheckExtension(); + + std::vector Depends; +}; + +#endif diff --git a/CMakeLua/Source/cmSourceFileLocation.cxx b/CMakeLua/Source/cmSourceFileLocation.cxx new file mode 100644 index 0000000..fa54002 --- /dev/null +++ b/CMakeLua/Source/cmSourceFileLocation.cxx @@ -0,0 +1,212 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceFileLocation.cxx,v $ + Language: C++ + Date: $Date: 2007/06/18 15:59:23 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSourceFileLocation.h" + +#include "cmMakefile.h" +#include "cmSystemTools.h" + +//---------------------------------------------------------------------------- +cmSourceFileLocation +::cmSourceFileLocation(cmMakefile* mf, const char* name): Makefile(mf) +{ + this->AmbiguousDirectory = !cmSystemTools::FileIsFullPath(name); + this->AmbiguousExtension = true; + this->Directory = cmSystemTools::GetFilenamePath(name); + this->Name = cmSystemTools::GetFilenameName(name); + this->UpdateExtension(name); +} + +//---------------------------------------------------------------------------- +void cmSourceFileLocation::Update(const char* name) +{ + if(this->AmbiguousDirectory) + { + this->UpdateDirectory(name); + } + if(this->AmbiguousExtension) + { + this->UpdateExtension(name); + } +} + +//---------------------------------------------------------------------------- +void cmSourceFileLocation::Update(cmSourceFileLocation const& loc) +{ + if(this->AmbiguousDirectory && !loc.AmbiguousDirectory) + { + this->Directory = loc.Directory; + this->AmbiguousDirectory = false; + } + if(this->AmbiguousExtension && !loc.AmbiguousExtension) + { + this->Name = loc.Name; + this->AmbiguousExtension = false; + } +} + +//---------------------------------------------------------------------------- +void cmSourceFileLocation::DirectoryUseSource() +{ + if(this->AmbiguousDirectory) + { + this->Directory = + cmSystemTools::CollapseFullPath( + this->Directory.c_str(), this->Makefile->GetCurrentDirectory()); + this->AmbiguousDirectory = false; + } +} + +//---------------------------------------------------------------------------- +void cmSourceFileLocation::DirectoryUseBinary() +{ + if(this->AmbiguousDirectory) + { + this->Directory = + cmSystemTools::CollapseFullPath( + this->Directory.c_str(), this->Makefile->GetCurrentOutputDirectory()); + this->AmbiguousDirectory = false; + } +} + +//---------------------------------------------------------------------------- +void cmSourceFileLocation::UpdateExtension(const char* name) +{ + // Check the extension. + std::string ext = cmSystemTools::GetFilenameLastExtension(name); + if(!ext.empty()) { ext = ext.substr(1); } + + // TODO: Let enable-language specify extensions for each language. + cmMakefile const* mf = this->Makefile; + const std::vector& srcExts = mf->GetSourceExtensions(); + const std::vector& hdrExts = mf->GetHeaderExtensions(); + if(std::find(srcExts.begin(), srcExts.end(), ext) != srcExts.end() || + std::find(hdrExts.begin(), hdrExts.end(), ext) != hdrExts.end()) + { + // This is a known extension. Use the given filename with extension. + this->Name = cmSystemTools::GetFilenameName(name); + this->AmbiguousExtension = false; + } +} + +//---------------------------------------------------------------------------- +void cmSourceFileLocation::UpdateDirectory(const char* name) +{ + // If a full path was given we know the directory. + if(cmSystemTools::FileIsFullPath(name)) + { + this->Directory = cmSystemTools::GetFilenamePath(name); + this->AmbiguousDirectory = false; + } +} + +//---------------------------------------------------------------------------- +bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc) +{ + if(this->AmbiguousExtension || loc.AmbiguousExtension) + { + // Need to compare without the file extension. + std::string thisName; + if(this->AmbiguousExtension) + { + thisName = this->Name; + } + else + { + thisName = cmSystemTools::GetFilenameWithoutLastExtension(this->Name); + } + std::string locName; + if(loc.AmbiguousExtension) + { + locName = loc.Name; + } + else + { + locName = cmSystemTools::GetFilenameWithoutLastExtension(loc.Name); + } + if(thisName != locName) + { + return false; + } + } + else + { + // Compare with extension. + if(this->Name != loc.Name) + { + return false; + } + } + + if(!this->AmbiguousDirectory && !loc.AmbiguousDirectory) + { + // Both sides have absolute directories. + if(this->Directory != loc.Directory) + { + return false; + } + } + else if(this->AmbiguousDirectory && loc.AmbiguousDirectory && + this->Makefile == loc.Makefile) + { + // Both sides have directories relative to the same location. + if(this->Directory != loc.Directory) + { + return false; + } + } + else if(this->AmbiguousDirectory && loc.AmbiguousDirectory) + { + // Each side has a directory relative to a different location. + // This can occur when referencing a source file from a different + // directory. This is not yet allowed. + abort(); + } + else if(this->AmbiguousDirectory) + { + // Compare possible directory combinations. + std::string srcDir = + cmSystemTools::CollapseFullPath( + this->Directory.c_str(), this->Makefile->GetCurrentDirectory()); + std::string binDir = + cmSystemTools::CollapseFullPath( + this->Directory.c_str(), this->Makefile->GetCurrentOutputDirectory()); + if(srcDir != loc.Directory && + binDir != loc.Directory) + { + return false; + } + } + else if(loc.AmbiguousDirectory) + { + // Compare possible directory combinations. + std::string srcDir = + cmSystemTools::CollapseFullPath( + loc.Directory.c_str(), loc.Makefile->GetCurrentDirectory()); + std::string binDir = + cmSystemTools::CollapseFullPath( + loc.Directory.c_str(), loc.Makefile->GetCurrentOutputDirectory()); + if(srcDir != this->Directory && + binDir != this->Directory) + { + return false; + } + } + + // File locations match. + this->Update(loc); + return true; +} diff --git a/CMakeLua/Source/cmSourceFileLocation.h b/CMakeLua/Source/cmSourceFileLocation.h new file mode 100644 index 0000000..e1cb281 --- /dev/null +++ b/CMakeLua/Source/cmSourceFileLocation.h @@ -0,0 +1,104 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceFileLocation.h,v $ + Language: C++ + Date: $Date: 2007/06/18 15:59:23 $ + Version: $Revision: 1.2 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSourceFileLocation_h +#define cmSourceFileLocation_h + +#include "cmStandardIncludes.h" + +class cmMakefile; + +/** \class cmSourceFileLocation + * \brief cmSourceFileLocation tracks knowledge about a source file location + * + * Source files can be referenced by a variety of names. The + * directory and/or extension may be omitted leading to a certain + * level of ambiguity about the source file location. This class is + * used by cmSourceFile to keep track of what is known about the + * source file location. Each reference may add some information + * about the directory or extension of the file. + */ +class cmSourceFileLocation +{ +public: + /** + * Construct for a source file created in a given cmMakefile + * instance with an initial name. + */ + cmSourceFileLocation(cmMakefile* mf, const char* name); + + /** + * Return whether the givne source file location could refers to the + * same source file as this location given the level of ambiguity in + * each location. + */ + bool Matches(cmSourceFileLocation const& loc); + + /** + * Explicity state that the source file is located in the source tree. + */ + void DirectoryUseSource(); + + /** + * Explicity state that the source file is located in the build tree. + */ + void DirectoryUseBinary(); + + /** + * Return whether the directory containing the source is ambiguous. + */ + bool DirectoryIsAmbiguous() const { return this->AmbiguousDirectory; } + + /** + * Return whether the extension of the source name is ambiguous. + */ + bool ExtensionIsAmbiguous() const { return this->AmbiguousExtension; } + + /** + * Get the directory containing the file as best is currently known. + * If DirectoryIsAmbiguous() returns false this will be a full path. + * Otherwise it will be a relative path (possibly empty) that is + * either with respect to the source or build tree. + */ + const char* GetDirectory() const { return this->Directory.c_str(); } + + /** + * Get the file name as best is currently known. If + * ExtensionIsAmbiguous() returns true this name may not be the + * final name (but could be). Otherwise the returned name is the + * final name. + */ + const char* GetName() const { return this->Name.c_str(); } + + /** + * Get the cmMakefile instance for which the source file was created. + */ + cmMakefile* GetMakefile() const { return this->Makefile; } +private: + cmMakefile* Makefile; + bool AmbiguousDirectory; + bool AmbiguousExtension; + std::string Directory; + std::string Name; + + // Update the location with additional knowledge. + void Update(cmSourceFileLocation const& loc); + void Update(const char* name); + void UpdateExtension(const char* name); + void UpdateDirectory(const char* name); +}; + +#endif diff --git a/CMakeLua/Source/cmSourceGroup.cxx b/CMakeLua/Source/cmSourceGroup.cxx new file mode 100644 index 0000000..9d22455 --- /dev/null +++ b/CMakeLua/Source/cmSourceGroup.cxx @@ -0,0 +1,160 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceGroup.cxx,v $ + Language: C++ + Date: $Date: 2007/08/24 18:21:49 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSourceGroup.h" + +//---------------------------------------------------------------------------- +cmSourceGroup::cmSourceGroup(const char* name, const char* regex): Name(name) +{ + this->SetGroupRegex(regex); +} + +//---------------------------------------------------------------------------- +void cmSourceGroup::SetGroupRegex(const char* regex) +{ + if(regex) + { + this->GroupRegex.compile(regex); + } + else + { + this->GroupRegex.compile("^$"); + } +} + +//---------------------------------------------------------------------------- +void cmSourceGroup::AddGroupFile(const char* name) +{ + this->GroupFiles.insert(name); +} + +//---------------------------------------------------------------------------- +const char* cmSourceGroup::GetName() const +{ + return this->Name.c_str(); +} + +//---------------------------------------------------------------------------- +bool cmSourceGroup::MatchesRegex(const char* name) +{ + return this->GroupRegex.find(name); +} + +//---------------------------------------------------------------------------- +bool cmSourceGroup::MatchesFiles(const char* name) +{ + std::set::const_iterator i = this->GroupFiles.find(name); + if(i != this->GroupFiles.end()) + { + return true; + } + return false; +} + +//---------------------------------------------------------------------------- +void cmSourceGroup::AssignSource(const cmSourceFile* sf) +{ + this->SourceFiles.push_back(sf); +} + +//---------------------------------------------------------------------------- +const std::vector& cmSourceGroup::GetSourceFiles() const +{ + return this->SourceFiles; +} + +//---------------------------------------------------------------------------- +std::vector& cmSourceGroup::GetSourceFiles() +{ + return this->SourceFiles; +} + +//---------------------------------------------------------------------------- +void cmSourceGroup::AddChild(cmSourceGroup child) +{ + this->GroupChildren.push_back(child); +} + +//---------------------------------------------------------------------------- +cmSourceGroup *cmSourceGroup::lookupChild(const char* name) +{ + // initializing iterators + std::vector::iterator iter = this->GroupChildren.begin(); + std::vector::iterator end = this->GroupChildren.end(); + + // st + for(;iter!=end; ++iter) + { + std::string sgName = iter->GetName(); + + // look if descenened is the one were looking for + if(sgName == name) + { + return &(*iter); // if it so return it + } + } + + // if no child with this name was found return NULL + return NULL; +} + +cmSourceGroup *cmSourceGroup::MatchChildrenFiles(const char *name) +{ + // initializing iterators + std::vector::iterator iter = this->GroupChildren.begin(); + std::vector::iterator end = this->GroupChildren.end(); + + if(this->MatchesFiles(name)) + { + return this; + } + for(;iter!=end;++iter) + { + cmSourceGroup *result = iter->MatchChildrenFiles(name); + if(result) + { + return result; + } + } + return 0; +} + + +cmSourceGroup *cmSourceGroup::MatchChildrenRegex(const char *name) +{ + // initializing iterators + std::vector::iterator iter = this->GroupChildren.begin(); + std::vector::iterator end = this->GroupChildren.end(); + + if(this->MatchesRegex(name)) + { + return this; + } + for(;iter!=end; ++iter) + { + cmSourceGroup *result = iter->MatchChildrenRegex(name); + if(result) + { + return result; + } + } + return 0; +} + +std::vector cmSourceGroup::GetGroupChildren() const +{ + return this->GroupChildren; +} diff --git a/CMakeLua/Source/cmSourceGroup.h b/CMakeLua/Source/cmSourceGroup.h new file mode 100644 index 0000000..062c5a5 --- /dev/null +++ b/CMakeLua/Source/cmSourceGroup.h @@ -0,0 +1,126 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceGroup.h,v $ + Language: C++ + Date: $Date: 2006/03/15 16:02:07 $ + Version: $Revision: 1.19 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSourceGroup_h +#define cmSourceGroup_h + +#include "cmStandardIncludes.h" +#include + +class cmSourceFile; + +/** \class cmSourceGroup + * \brief Hold a group of sources as specified by a SOURCE_GROUP command. + * + * cmSourceGroup holds a regular expression and a list of files. When + * local generators are about to generate the rules for a target's + * files, the set of source groups is consulted to group files + * together. A file is placed into the last source group that lists + * the file by name. If no group lists the file, it is placed into + * the last group whose regex matches it. + */ +class cmSourceGroup +{ +public: + cmSourceGroup(const char* name, const char* regex); + ~cmSourceGroup() {} + + /** + * Set the regular expression for this group. + */ + void SetGroupRegex(const char* regex); + + /** + * Add a file name to the explicit list of files for this group. + */ + void AddGroupFile(const char* name); + + /** + * Add child to this sourcegroup + */ + void AddChild(cmSourceGroup child); + + /** + * Looks up child and returns it + */ + cmSourceGroup *lookupChild(const char *name); + + /** + * Get the name of this group. + */ + const char* GetName() const; + + /** + * Check if the given name matches this group's regex. + */ + bool MatchesRegex(const char* name); + + /** + * Check if the given name matches this group's explicit file list. + */ + bool MatchesFiles(const char* name); + + /** + * Check if the given name matches this group's explicit file list + * in children. + */ + cmSourceGroup *MatchChildrenFiles(const char *name); + + /** + * Check if the given name matches this group's regex in children. + */ + cmSourceGroup *MatchChildrenRegex(const char *name); + + /** + * Assign the given source file to this group. Used only by + * generators. + */ + void AssignSource(const cmSourceFile* sf); + + /** + * Get the list of the source files that have been assigned to this + * source group. + */ + const std::vector& GetSourceFiles() const; + std::vector& GetSourceFiles(); + + std::vector GetGroupChildren() const; +private: + /** + * The name of the source group. + */ + std::string Name; + + /** + * The regular expression matching the files in the group. + */ + cmsys::RegularExpression GroupRegex; + + /** + * Set of file names explicitly added to this group. + */ + std::set GroupFiles; + + /** + * Vector of all source files that have been assigned to + * this group. + */ + std::vector SourceFiles; + + std::vector GroupChildren; +}; + +#endif diff --git a/CMakeLua/Source/cmSourceGroupCommand.cxx b/CMakeLua/Source/cmSourceGroupCommand.cxx new file mode 100644 index 0000000..5b198f3 --- /dev/null +++ b/CMakeLua/Source/cmSourceGroupCommand.cxx @@ -0,0 +1,137 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceGroupCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.20 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSourceGroupCommand.h" + +inline std::vector tokenize(const std::string& str, + const std::string& sep) +{ + std::vector tokens; + std::string::size_type tokend = 0; + + do + { + std::string::size_type tokstart=str.find_first_not_of(sep, tokend); + if (tokstart==std::string::npos) + { + break; // no more tokens + } + tokend=str.find_first_of(sep,tokstart); + if (tokend==std::string::npos) + { + tokens.push_back(str.substr(tokstart)); + } + else + { + tokens.push_back(str.substr(tokstart,tokend-tokstart)); + } + } while (tokend!=std::string::npos); + + if (tokens.empty()) + { + tokens.push_back(""); + } + return tokens; +} + +// cmSourceGroupCommand +bool cmSourceGroupCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + + std::string delimiter = "\\"; + if(this->Makefile->GetDefinition("SOURCE_GROUP_DELIMITER")) + { + delimiter = this->Makefile->GetDefinition("SOURCE_GROUP_DELIMITER"); + } + + std::vector folders = tokenize(args[0], delimiter); + + cmSourceGroup* sg = 0; + sg = this->Makefile->GetSourceGroup(folders); + if(!sg) + { + this->Makefile->AddSourceGroup(folders); + sg = this->Makefile->GetSourceGroup(folders); + } + + if(!sg) + { + this->SetError("Could not create or find source group"); + return false; + } + // If only two arguments are given, the pre-1.8 version of the + // command is being invoked. + if(args.size() == 2 && args[1] != "FILES") + { + sg->SetGroupRegex(args[1].c_str()); + return true; + } + + // Process arguments. + bool doingFiles = false; + for(unsigned int i=1; i < args.size(); ++i) + { + if(args[i] == "REGULAR_EXPRESSION") + { + // Next argument must specify the regex. + if(i+1 < args.size()) + { + ++i; + sg->SetGroupRegex(args[i].c_str()); + } + else + { + this->SetError("REGULAR_EXPRESSION argument given without a regex."); + return false; + } + doingFiles = false; + } + else if(args[i] == "FILES") + { + // Next arguments will specify files. + doingFiles = true; + } + else if(doingFiles) + { + // Convert name to full path and add to the group's list. + std::string src = args[i].c_str(); + if(!cmSystemTools::FileIsFullPath(src.c_str())) + { + src = this->Makefile->GetCurrentDirectory(); + src += "/"; + src += args[i]; + } + src = cmSystemTools::CollapseFullPath(src.c_str()); + sg->AddGroupFile(src.c_str()); + } + else + { + cmOStringStream err; + err << "Unknown argument \"" << args[i].c_str() << "\". " + << "Perhaps the FILES keyword is missing.\n"; + this->SetError(err.str().c_str()); + return false; + } + } + + return true; +} diff --git a/CMakeLua/Source/cmSourceGroupCommand.h b/CMakeLua/Source/cmSourceGroupCommand.h new file mode 100644 index 0000000..d0e5a2e --- /dev/null +++ b/CMakeLua/Source/cmSourceGroupCommand.h @@ -0,0 +1,86 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmSourceGroupCommand.h,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.16 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmSourceGroupCommand_h +#define cmSourceGroupCommand_h + +#include "cmCommand.h" + +/** \class cmSourceGroupCommand + * \brief Adds a cmSourceGroup to the cmMakefile. + * + * cmSourceGroupCommand is used to define cmSourceGroups which split up + * source files in to named, organized groups in the generated makefiles. + */ +class cmSourceGroupCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmSourceGroupCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool InitialPass(std::vector const& args, + cmExecutionStatus &status); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "source_group";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Define a grouping for sources in the makefile."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + " source_group(name [REGULAR_EXPRESSION regex] " + "[FILES src1 src2 ...])\n" + "Defines a group into which sources will be placed in project files. " + "This is mainly used to setup file tabs in Visual Studio. " + "Any file whose name is listed or matches the regular expression will " + "be placed in this group. If a file matches multiple groups, the LAST " + "group that explicitly lists the file will be favored, if any. If no " + "group explicitly lists the file, the LAST group whose regular " + "expression matches the file will be favored.\n" + "The name of the group may contain backslashes to specify subgroups:\n" + " source_group(outer\\\\inner ...)\n" + "For backwards compatibility, this command is also supports the " + "format:\n" + " source_group(name regex)"; + } + + cmTypeMacro(cmSourceGroupCommand, cmCommand); +}; + + + +#endif diff --git a/CMakeLua/Source/cmStandardIncludes.h b/CMakeLua/Source/cmStandardIncludes.h new file mode 100644 index 0000000..4633e76 --- /dev/null +++ b/CMakeLua/Source/cmStandardIncludes.h @@ -0,0 +1,384 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmStandardIncludes.h,v $ + Language: C++ + Date: $Date: 2007/12/29 04:07:14 $ + Version: $Revision: 1.71 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/** + * Include header files as a function of the build process, compiler, + * and operating system. + */ +#ifndef cmStandardIncludes_h +#define cmStandardIncludes_h + +#define CMAKE_TO_STRING(x) CMAKE_TO_STRING0(x) +#define CMAKE_TO_STRING0(x) #x + +// include configure generated header to define CMAKE_NO_ANSI_STREAM_HEADERS, +// CMAKE_NO_STD_NAMESPACE, and other macros. +#include "cmConfigure.h" +#include + +#define CMake_VERSION \ + CMAKE_TO_STRING(CMake_VERSION_MAJOR) "." \ + CMAKE_TO_STRING(CMake_VERSION_MINOR) + +#define CMake_VERSION_FULL \ + CMAKE_TO_STRING(CMake_VERSION_MAJOR) "." \ + CMAKE_TO_STRING(CMake_VERSION_MINOR) "." \ + CMAKE_TO_STRING(CMake_VERSION_PATCH) + +#define CMake_VERSION_ENCODE(major, minor, patch) \ + ((major)*0x10000u + (minor)*0x100u + (patch)) + +#ifdef _MSC_VER +#pragma warning ( disable : 4786 ) +#pragma warning ( disable : 4503 ) +#pragma warning ( disable : 4512 ) /* operator=() could not be generated */ +#define CMAKE_NO_ANSI_FOR_SCOPE +#endif + +#ifdef __BORLANDC__ +#pragma warn -8030 /* Temporary used for parameter */ +#endif + +#ifdef __ICL +#pragma warning ( disable : 985 ) +#endif + +#include // Work-around for SGI MIPSpro 7.4.2m header bug + +// This is a hack to prevent warnings about these functions being +// declared but not referenced. +#if defined(__sgi) && !defined(__GNUC__) +# include +class cmStandardIncludesHack +{ +public: + enum + { + Ref1 = sizeof(cfgetospeed(0)), + Ref2 = sizeof(cfgetispeed(0)), + Ref3 = sizeof(tcgetattr(0, 0)), + Ref4 = sizeof(tcsetattr(0, 0, 0)), + Ref5 = sizeof(cfsetospeed(0,0)), + Ref6 = sizeof(cfsetispeed(0,0)) + }; +}; +#endif + +// Include stream compatibility layer from KWSys. +// This is needed to work with large file support +// on some platforms whose stream operators do not +// support the large integer types. +#if defined(CMAKE_BUILD_WITH_CMAKE) +# include +#endif + +// Avoid warnings in system headers. +#if defined(_MSC_VER) +# pragma warning (push,1) +#endif + +#ifndef CMAKE_NO_ANSI_STREAM_HEADERS +# include +# include +# include +#else +# include +# include +# include +#endif + +#if !defined(CMAKE_NO_ANSI_STRING_STREAM) +# include +#elif !defined(CMAKE_NO_ANSI_STREAM_HEADERS) +# include +#else +# include +#endif + +// we must have stl with the standard include style +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(_MSC_VER) +# pragma warning(pop) +#endif + +// include the "c" string header +#include +#include +#include + +// Borland C++ defines several of the stdlib.h and string.h symbols in +// sub-headers search.h and mem.h. These sub-headers have using +// declarations to pull functions from the std namespace to the global +// namespace, but they are defined only if the header was not included +// through the C++-style cstdlib or cstring header. These outer +// headers are included by the streams library in C++-style and +// include blockers are put in place that prevent including the +// C-style versions from ever including the sub-headers. Therefore we +// have to include the sub-headers here to get the using declarations. +#if defined(__BORLANDC__) +# include /* mem... functions from string.h */ +# include /* search functions from stdlib.h */ +#endif + + +#if !defined(_WIN32) && defined(__COMO__) +// Hack for como strict mode to avoid defining _SVID_SOURCE or _BSD_SOURCE. +extern "C" +{ +extern FILE *popen (__const char *__command, __const char *__modes) __THROW; +extern int pclose (FILE *__stream) __THROW; +extern char *realpath (__const char *__restrict __name, + char *__restrict __resolved) __THROW; +extern char *strdup (__const char *__s) __THROW; +extern int putenv (char *__string) __THROW; +} +#endif + +// if std:: is not supported, then just #define it away +#ifdef CMAKE_NO_STD_NAMESPACE +#define std +#endif + +// if the compiler does not support ansi for scoping of vars use a +// #define hack +#ifdef CMAKE_NO_ANSI_FOR_SCOPE +#define for if(false) {} else for +#endif + +// check for the 720 compiler on the SGI +// which has some strange properties that I don't think are worth +// checking for in a general way in configure +#if defined(__sgi) && !defined(__GNUC__) +# if (_COMPILER_VERSION >= 730) +# define CM_SGI_CC_730 +# elif (_COMPILER_VERSION >= 720) +# define CM_HAS_STD_BUT_NOT_FOR_IOSTREAM +# endif +#endif + +#ifdef __DECCXX_VER +# if __DECCXX_VER <= 60390008 +# define CM_HAS_STD_BUT_NOT_FOR_IOSTREAM +# endif +#endif + +#if defined( _MSC_VER ) +typedef unsigned short mode_t; +#endif + + +#ifdef CM_HAS_STD_BUT_NOT_FOR_IOSTREAM +// some compilers have std:: but not for the stream library, +// so we have to bring it into the std namespace by hand. +namespace std { +using ::ostream; +using ::istream; +using ::ios; +using ::cout; +using ::cerr; +using ::cin; +using ::ifstream; +using ::ofstream; + +#if !defined(CMAKE_NO_ANSI_STRING_STREAM) + using ::ostringstream; + using ::istringstream; +#else + using ::ostrstream; + using ::istrstream; +#endif + +using ::endl; +using ::ends; +using ::flush; +using ::dec; +using ::hex; +using ::setw; +using ::setiosflags; +using ::setfill; +using ::setprecision; +} +// The string class is missing these operators so add them +#if !defined(cmsys_STL_STRING_NEQ_CHAR_DEFINED) +# define cmsys_STL_STRING_NO_NEQ_CHAR +inline bool operator!=(std::string const& a, const char* b) +{ return !(a==std::string(b)); } +#endif + +inline bool operator==(std::string const& a, const char* b) +{ return (a==std::string(b)); } +# endif // end CM_SGI_CC_720 + +#if defined(__sgi) && !defined(__GNUC__) +# pragma set woff 1375 /* base class destructor not virtual */ +#endif + +// use this class to shrink the size of symbols in .o files +// std::string is really basic_string<....lots of stuff....> +// when combined with a map or set, the symbols can be > 2000 chars! +#include +typedef cmsys::String cmStdString; + +// Define cmOStringStream and cmIStringStream wrappers to hide +// differences between std::stringstream and the old strstream. +#if !defined(CMAKE_NO_ANSI_STRING_STREAM) +class cmOStringStream: public std::ostringstream +{ +public: + cmOStringStream() {} +private: + cmOStringStream(const cmOStringStream&); + void operator=(const cmOStringStream&); +}; +class cmIStringStream: public std::istringstream +{ +public: + typedef std::istringstream Superclass; + cmIStringStream() {} + cmIStringStream(const std::string& s): Superclass(s) {} +private: + cmIStringStream(const cmIStringStream&); + void operator=(const cmIStringStream&); +}; +#else +class cmOStrStreamCleanup +{ +public: + cmOStrStreamCleanup(std::ostrstream& ostr): OStrStream(ostr) {} + ~cmOStrStreamCleanup() { this->OStrStream.rdbuf()->freeze(0); } + static void IgnoreUnusedVariable(const cmOStrStreamCleanup&) {} +protected: + std::ostrstream& OStrStream; +}; + +class cmOStringStream: public std::ostrstream +{ +public: + typedef std::ostrstream Superclass; + cmOStringStream() {} + std::string str() + { + cmOStrStreamCleanup cleanup(*this); + cmOStrStreamCleanup::IgnoreUnusedVariable(cleanup); + int pcount = this->pcount(); + const char* ptr = this->Superclass::str(); + return std::string(ptr?ptr:"", pcount); + } +private: + cmOStringStream(const cmOStringStream&); + void operator=(const cmOStringStream&); +}; + +class cmIStringStream: private std::string, public std::istrstream +{ +public: + typedef std::string StdString; + typedef std::istrstream IStrStream; + cmIStringStream(): StdString(), IStrStream(StdString::c_str()) {} + cmIStringStream(const std::string& s): + StdString(s), IStrStream(StdString::c_str()) {} + std::string str() const { return *this; } + void str(const std::string& s) + { + // Very dangerous. If this throws, the object is hosed. When the + // destructor is later called, the program is hosed too. + this->~cmIStringStream(); + new (this) cmIStringStream(s); + } +private: + cmIStringStream(const cmIStringStream&); + void operator=(const cmIStringStream&); +}; +#endif + +/* Poison this operator to avoid common mistakes. */ +extern void operator << (std::ostream&, const cmOStringStream&); + +/** Standard documentation entry for cmDocumentation's formatting. */ +struct cmDocumentationEntry +{ + std::string Name; + std::string Brief; + std::string Full; + cmDocumentationEntry(){}; + cmDocumentationEntry(const char *doc[3]) + { if (doc[0]) this->Name = doc[0]; + if (doc[1]) this->Brief = doc[1]; + if (doc[2]) this->Full = doc[2]; }; + cmDocumentationEntry(const char *n, const char *b, const char *f) + { if (n) this->Name = n; if (b) this->Brief = b; if (f) this->Full = f; }; +}; + +/** Data structure to represent a single command line. */ +class cmCustomCommandLine: public std::vector +{ +public: + typedef std::vector Superclass; + typedef Superclass::iterator iterator; + typedef Superclass::const_iterator const_iterator; +}; + +/** Data structure to represent a list of command lines. */ +class cmCustomCommandLines: public std::vector +{ +public: + typedef std::vector Superclass; + typedef Superclass::iterator iterator; + typedef Superclass::const_iterator const_iterator; +}; + +#if defined(__sgi) && !defined(__GNUC__) +# pragma reset woff 1375 /* base class destructor not virtual */ +#endif + +// All subclasses of cmCommand or cmCTestGenericHandler should +// invoke this macro. +#define cmTypeMacro(thisClass,superclass) \ +virtual const char* GetNameOfClass() { return #thisClass; } \ +typedef superclass Superclass; \ +static bool IsTypeOf(const char *type) \ +{ \ + if ( !strcmp(#thisClass,type) ) \ + { \ + return true; \ + } \ + return Superclass::IsTypeOf(type); \ +} \ +virtual bool IsA(const char *type) \ +{ \ + return thisClass::IsTypeOf(type); \ +} \ +static thisClass* SafeDownCast(cmObject *c) \ +{ \ + if ( c && c->IsA(#thisClass) ) \ + { \ + return static_cast(c); \ + } \ + return 0;\ +} + + + +#endif diff --git a/CMakeLua/Source/cmStandardLexer.h b/CMakeLua/Source/cmStandardLexer.h new file mode 100644 index 0000000..e19326b --- /dev/null +++ b/CMakeLua/Source/cmStandardLexer.h @@ -0,0 +1,78 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmStandardLexer.h,v $ + Language: C++ + Date: $Date: 2006/08/24 13:34:53 $ + Version: $Revision: 1.4 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmStandardLexer_h +#define cmStandardLexer_h + +/* Disable some warnings. */ +#if defined(_MSC_VER) +# pragma warning ( disable : 4127 ) +# pragma warning ( disable : 4131 ) +# pragma warning ( disable : 4244 ) +# pragma warning ( disable : 4251 ) +# pragma warning ( disable : 4267 ) +# pragma warning ( disable : 4305 ) +# pragma warning ( disable : 4309 ) +# pragma warning ( disable : 4706 ) +# pragma warning ( disable : 4786 ) +#endif + +#if defined(__BORLANDC__) +# pragma warn -8008 /* condition always returns true */ +# pragma warn -8066 /* unreachable code */ +#endif + +/* Borland system header defines these macros without first undef-ing them. */ +#if defined(__BORLANDC__) && __BORLANDC__ >= 0x580 +# undef INT8_MIN +# undef INT16_MIN +# undef INT32_MIN +# undef INT8_MAX +# undef INT16_MAX +# undef INT32_MAX +# undef UINT8_MAX +# undef UINT16_MAX +# undef UINT32_MAX +# include +#endif + +/* Make sure SGI termios does not define ECHO differently. */ +#if defined(__sgi) && !defined(__GNUC__) +# include +# undef ECHO +#endif + +/* Define isatty on windows. */ +#if defined(_WIN32) && !defined(__CYGWIN__) +# include +# if defined( _MSC_VER ) +# define isatty _isatty +# endif +# define YY_NO_UNISTD_H 1 +#endif + +/* Make sure malloc and free are available on QNX. */ +#ifdef __QNX__ +# include +#endif + +/* Disable features we do not need. */ +#define YY_NEVER_INTERACTIVE 1 +#define YY_NO_INPUT 1 +#define YY_NO_UNPUT 1 +#define ECHO + +#endif diff --git a/CMakeLua/Source/cmStringCommand.cxx b/CMakeLua/Source/cmStringCommand.cxx new file mode 100644 index 0000000..fbea47a --- /dev/null +++ b/CMakeLua/Source/cmStringCommand.cxx @@ -0,0 +1,764 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmStringCommand.cxx,v $ + Language: C++ + Date: $Date: 2008/01/23 15:27:59 $ + Version: $Revision: 1.27 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmStringCommand.h" +#include +#include + +#include // required for atoi +#include +#include + +//---------------------------------------------------------------------------- +bool cmStringCommand +::InitialPass(std::vector const& args, cmExecutionStatus &) +{ + if(args.size() < 1) + { + this->SetError("must be called with at least one argument."); + return false; + } + + const std::string &subCommand = args[0]; + if(subCommand == "REGEX") + { + return this->HandleRegexCommand(args); + } + else if(subCommand == "REPLACE") + { + return this->HandleReplaceCommand(args); + } + else if(subCommand == "TOLOWER") + { + return this->HandleToUpperLowerCommand(args, false); + } + else if(subCommand == "TOUPPER") + { + return this->HandleToUpperLowerCommand(args, true); + } + else if(subCommand == "COMPARE") + { + return this->HandleCompareCommand(args); + } + else if(subCommand == "ASCII") + { + return this->HandleAsciiCommand(args); + } + else if(subCommand == "CONFIGURE") + { + return this->HandleConfigureCommand(args); + } + else if(subCommand == "LENGTH") + { + return this->HandleLengthCommand(args); + } + else if(subCommand == "SUBSTRING") + { + return this->HandleSubstringCommand(args); + } + else if(subCommand == "STRIP") + { + return this->HandleStripCommand(args); + } + else if(subCommand == "RANDOM") + { + return this->HandleRandomCommand(args); + } + + std::string e = "does not recognize sub-command "+subCommand; + this->SetError(e.c_str()); + return false; +} + +//---------------------------------------------------------------------------- +bool cmStringCommand::HandleToUpperLowerCommand( + std::vector const& args, bool toUpper) +{ + if ( args.size() < 3 ) + { + this->SetError("no output variable specified"); + return false; + } + + std::string outvar = args[2]; + std::string output; + + if (toUpper) + { + output = cmSystemTools::UpperCase(args[1]); + } + else + { + output = cmSystemTools::LowerCase(args[1]); + } + + // Store the output in the provided variable. + this->Makefile->AddDefinition(outvar.c_str(), output.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmStringCommand::HandleAsciiCommand(std::vector const& args) +{ + if ( args.size() < 3 ) + { + this->SetError("No output variable specified"); + return false; + } + std::string::size_type cc; + std::string outvar = args[args.size()-1]; + std::string output = ""; + for ( cc = 1; cc < args.size()-1; cc ++ ) + { + int ch = atoi(args[cc].c_str()); + if ( ch > 0 && ch < 256 ) + { + output += static_cast(ch); + } + else + { + std::string error = "Character with code "; + error += ch; + error += " does not exist."; + this->SetError(error.c_str()); + return false; + } + } + // Store the output in the provided variable. + this->Makefile->AddDefinition(outvar.c_str(), output.c_str()); + return true; +} + +//---------------------------------------------------------------------------- +bool cmStringCommand::HandleConfigureCommand( + std::vector const& args) +{ + if ( args.size() < 2 ) + { + this->SetError("No input string specified."); + return false; + } + else if ( args.size() < 3 ) + { + this->SetError("No output variable specified."); + return false; + } + + // Parse options. + bool escapeQuotes = false; + bool atOnly = false; + for(unsigned int i = 3; i < args.size(); ++i) + { + if(args[i] == "@ONLY") + { + atOnly = true; + } + else if(args[i] == "ESCAPE_QUOTES") + { + escapeQuotes = true; + } + else + { + cmOStringStream err; + err << "Unrecognized argument \"" << args[i] << "\""; + this->SetError(err.str().c_str()); + return false; + } + } + + // Configure the string. + std::string output; + this->Makefile->ConfigureString(args[1], output, atOnly, escapeQuotes); + + // Store the output in the provided variable. + this->Makefile->AddDefinition(args[2].c_str(), output.c_str()); + + return true; +} + +//---------------------------------------------------------------------------- +bool cmStringCommand::HandleRegexCommand(std::vector const& args) +{ + if(args.size() < 2) + { + this->SetError("sub-command REGEX requires a mode to be specified."); + return false; + } + std::string mode = args[1]; + if(mode == "MATCH") + { + if(args.size() < 5) + { + this->SetError("sub-command REGEX, mode MATCH needs " + "at least 5 arguments total to command."); + return false; + } + return this->RegexMatch(args); + } + else if(mode == "MATCHALL") + { + if(args.size() < 5) + { + this->SetError("sub-command REGEX, mode MATCHALL needs " + "at least 5 arguments total to command."); + return false; + } + return this->RegexMatchAll(args); + } + else if(mode == "REPLACE") + { + if(args.size() < 6) + { + this->SetError("sub-command REGEX, mode MATCH needs " + "at least 6 arguments total to command."); + return false; + } + return this->RegexReplace(args); + } + + std::string e = "sub-command REGEX does not recognize mode "+mode; + this->SetError(e.c_str()); + return false; +} + +//---------------------------------------------------------------------------- +bool cmStringCommand::RegexMatch(std::vector const& args) +{ + //"STRING(REGEX MATCH + //

    Documentation for commands of CMake " << tmp << "

    \n"; + f << "
      \n"; + for(RegisteredCommandsMap::iterator j = this->Commands.begin(); + j != this->Commands.end(); ++j) + { + name = (*j).second->GetName(); + terse = (*j).second->GetTerseDocumentation(); + full = (*j).second->GetFullDocumentation(); + f << "
    • " << name << " - " << terse << std::endl + << "
      Usage: " << full << "
    • " << std::endl << std::endl; + } + f << "
    \n"; +#else + (void)f; +#endif + return 1; +} + +void cmake::AddDefaultCommands() +{ + std::list commands; + GetBootstrapCommands(commands); + GetPredefinedCommands(commands); + for(std::list::iterator i = commands.begin(); + i != commands.end(); ++i) + { + this->AddCommand(*i); + } +} + +void cmake::AddDefaultGenerators() +{ +#if defined(_WIN32) && !defined(__CYGWIN__) +# if !defined(CMAKE_BOOT_MINGW) + this->Generators[cmGlobalVisualStudio6Generator::GetActualName()] = + &cmGlobalVisualStudio6Generator::New; + this->Generators[cmGlobalVisualStudio7Generator::GetActualName()] = + &cmGlobalVisualStudio7Generator::New; + this->Generators[cmGlobalVisualStudio71Generator::GetActualName()] = + &cmGlobalVisualStudio71Generator::New; + this->Generators[cmGlobalVisualStudio8Generator::GetActualName()] = + &cmGlobalVisualStudio8Generator::New; + this->Generators[cmGlobalVisualStudio9Generator::GetActualName()] = + &cmGlobalVisualStudio9Generator::New; + this->Generators[cmGlobalVisualStudio9Win64Generator::GetActualName()] = + &cmGlobalVisualStudio9Win64Generator::New; + this->Generators[cmGlobalVisualStudio8Win64Generator::GetActualName()] = + &cmGlobalVisualStudio8Win64Generator::New; + this->Generators[cmGlobalBorlandMakefileGenerator::GetActualName()] = + &cmGlobalBorlandMakefileGenerator::New; + this->Generators[cmGlobalNMakeMakefileGenerator::GetActualName()] = + &cmGlobalNMakeMakefileGenerator::New; + this->Generators[cmGlobalWatcomWMakeGenerator::GetActualName()] = + &cmGlobalWatcomWMakeGenerator::New; +# endif + this->Generators[cmGlobalMSYSMakefileGenerator::GetActualName()] = + &cmGlobalMSYSMakefileGenerator::New; + this->Generators[cmGlobalMinGWMakefileGenerator::GetActualName()] = + &cmGlobalMinGWMakefileGenerator::New; +#endif + this->Generators[cmGlobalUnixMakefileGenerator3::GetActualName()] = + &cmGlobalUnixMakefileGenerator3::New; +#ifdef CMAKE_USE_XCODE + this->Generators[cmGlobalXCodeGenerator::GetActualName()] = + &cmGlobalXCodeGenerator::New; +#endif +} + +int cmake::LoadCache() +{ + // could we not read the cache + if (!this->CacheManager->LoadCache(this->GetHomeOutputDirectory())) + { + // if it does exist, but isn;t readable then warn the user + std::string cacheFile = this->GetHomeOutputDirectory(); + cacheFile += "/CMakeCache.txt"; + if(cmSystemTools::FileExists(cacheFile.c_str())) + { + cmSystemTools::Error( + "There is a CMakeCache.txt file for the current binary tree but " + "cmake does not have permission to read it. Please check the " + "permissions of the directory you are trying to run CMake on."); + return -1; + } + } + + if (this->CMakeCommand.size() < 2) + { + cmSystemTools::Error( + "cmake command was not specified prior to loading the cache in " + "cmake.cxx"); + return -1; + } + + // setup CMAKE_ROOT and CMAKE_COMMAND + if(!this->AddCMakePaths()) + { + return -3; + } + + // set the default BACKWARDS compatibility to the current version + if(!this->CacheManager->GetCacheValue("CMAKE_BACKWARDS_COMPATIBILITY")) + { + char ver[256]; + sprintf(ver,"%i.%i",cmVersion::GetMajorVersion(), + cmVersion::GetMinorVersion()); + this->CacheManager->AddCacheEntry + ("CMAKE_BACKWARDS_COMPATIBILITY",ver, + "For backwards compatibility, what version of CMake commands and " + "syntax should this version of CMake allow.", + cmCacheManager::STRING); + } + + return 0; +} + +void cmake::SetProgressCallback(ProgressCallbackType f, void *cd) +{ + this->ProgressCallback = f; + this->ProgressCallbackClientData = cd; +} + +void cmake::UpdateProgress(const char *msg, float prog) +{ + if(this->ProgressCallback && !this->InTryCompile) + { + (*this->ProgressCallback)(msg, prog, this->ProgressCallbackClientData); + return; + } +} + +void cmake::GetCommandDocumentation(std::vector& v, + bool withCurrentCommands, + bool withCompatCommands) const +{ + for(RegisteredCommandsMap::const_iterator j = this->Commands.begin(); + j != this->Commands.end(); ++j) + { + if ((( withCompatCommands == false) && ( (*j).second->IsDiscouraged())) + || ((withCurrentCommands == false) && (!(*j).second->IsDiscouraged()))) + { + continue; + } + + cmDocumentationEntry e((*j).second->GetName(), + (*j).second->GetTerseDocumentation(), + (*j).second->GetFullDocumentation()); + v.push_back(e); + } +} + +void cmake::GetPropertiesDocumentation(std::map& v) +{ + // loop over the properties and put them into the doc structure + std::map::iterator i; + i = this->PropertyDefinitions.begin(); + for (;i != this->PropertyDefinitions.end(); ++i) + { + i->second.GetPropertiesDocumentation(v); + } +} + +void cmake::GetGeneratorDocumentation(std::vector& v) +{ + for(RegisteredGeneratorsMap::const_iterator i = this->Generators.begin(); + i != this->Generators.end(); ++i) + { + cmDocumentationEntry e; + cmGlobalGenerator* generator = (i->second)(); + generator->GetDocumentation(e); + delete generator; + v.push_back(e); + } + for(RegisteredExtraGeneratorsMap::const_iterator + i = this->ExtraGenerators.begin(); i != this->ExtraGenerators.end(); ++i) + { + cmDocumentationEntry e; + cmExternalMakefileProjectGenerator* generator = (i->second)(); + generator->GetDocumentation(e, i->first.c_str()); + e.Name = i->first; + delete generator; + v.push_back(e); + } +} + +void cmake::AddWrittenFile(const char* file) +{ + this->WrittenFiles.insert(file); +} + +bool cmake::HasWrittenFile(const char* file) +{ + return this->WrittenFiles.find(file) != this->WrittenFiles.end(); +} + +void cmake::CleanupWrittenFiles() +{ + this->WrittenFiles.clear(); +} + +void cmake::UpdateConversionPathTable() +{ + // Update the path conversion table with any specified file: + const char* tablepath = + this->CacheManager->GetCacheValue("CMAKE_PATH_TRANSLATION_FILE"); + + if(tablepath) + { + std::ifstream table( tablepath ); + if(!table) + { + cmSystemTools::Error("CMAKE_PATH_TRANSLATION_FILE set to ", tablepath, + ". CMake can not open file."); + cmSystemTools::ReportLastSystemError("CMake can not open file."); + } + else + { + std::string a, b; + while(!table.eof()) + { + // two entries per line + table >> a; table >> b; + cmSystemTools::AddTranslationPath( a.c_str(), b.c_str()); + } + } + } +} + +//---------------------------------------------------------------------------- +int cmake::CheckBuildSystem() +{ + // We do not need to rerun CMake. Check dependency integrity. Use + // the make system's VERBOSE environment variable to enable verbose + // output. + bool verbose = cmSystemTools::GetEnv("VERBOSE") != 0; + + // This method will check the integrity of the build system if the + // option was given on the command line. It reads the given file to + // determine whether CMake should rerun. + + // If no file is provided for the check, we have to rerun. + if(this->CheckBuildSystemArgument.size() == 0) + { + if(verbose) + { + cmOStringStream msg; + msg << "Re-run cmake no build system arguments\n"; + cmSystemTools::Stdout(msg.str().c_str()); + } + return 1; + } + + // If the file provided does not exist, we have to rerun. + if(!cmSystemTools::FileExists(this->CheckBuildSystemArgument.c_str())) + { + if(verbose) + { + cmOStringStream msg; + msg << "Re-run cmake missing file: " + << this->CheckBuildSystemArgument.c_str() << "\n"; + cmSystemTools::Stdout(msg.str().c_str()); + } + return 1; + } + + // Read the rerun check file and use it to decide whether to do the + // global generate. + cmake cm; + cmGlobalGenerator gg; + gg.SetCMakeInstance(&cm); + std::auto_ptr lg(gg.CreateLocalGenerator()); + lg->SetGlobalGenerator(&gg); + cmMakefile* mf = lg->GetMakefile(); + if(!mf->ReadListFile(0, this->CheckBuildSystemArgument.c_str()) || + cmSystemTools::GetErrorOccuredFlag()) + { + if(verbose) + { + cmOStringStream msg; + msg << "Re-run cmake error reading : " + << this->CheckBuildSystemArgument.c_str() << "\n"; + cmSystemTools::Stdout(msg.str().c_str()); + } + // There was an error reading the file. Just rerun. + return 1; + } + + if(this->ClearBuildSystem) + { + // Get the generator used for this build system. + const char* genName = mf->GetDefinition("CMAKE_DEPENDS_GENERATOR"); + if(!genName || genName[0] == '\0') + { + genName = "Unix Makefiles"; + } + + // Create the generator and use it to clear the dependencies. + std::auto_ptr + ggd(this->CreateGlobalGenerator(genName)); + if(ggd.get()) + { + std::auto_ptr lgd(ggd->CreateLocalGenerator()); + lgd->SetGlobalGenerator(ggd.get()); + lgd->ClearDependencies(mf, verbose); + } + } + + // Get the set of dependencies and outputs. + std::vector depends; + std::vector outputs; + const char* dependsStr = mf->GetDefinition("CMAKE_MAKEFILE_DEPENDS"); + const char* outputsStr = mf->GetDefinition("CMAKE_MAKEFILE_OUTPUTS"); + if(dependsStr && outputsStr) + { + cmSystemTools::ExpandListArgument(dependsStr, depends); + cmSystemTools::ExpandListArgument(outputsStr, outputs); + } + if(depends.empty() || outputs.empty()) + { + // Not enough information was provided to do the test. Just rerun. + if(verbose) + { + cmOStringStream msg; + msg << "Re-run cmake no CMAKE_MAKEFILE_DEPENDS " + "or CMAKE_MAKEFILE_OUTPUTS :\n"; + cmSystemTools::Stdout(msg.str().c_str()); + } + return 1; + } + + // Find find the newest dependency. + std::vector::iterator dep = depends.begin(); + std::string dep_newest = *dep++; + for(;dep != depends.end(); ++dep) + { + int result = 0; + if(this->FileComparison->FileTimeCompare(dep_newest.c_str(), + dep->c_str(), &result)) + { + if(result < 0) + { + dep_newest = *dep; + } + } + else + { + if(verbose) + { + cmOStringStream msg; + msg << "Re-run cmake: build system dependency is missing\n"; + cmSystemTools::Stdout(msg.str().c_str()); + } + return 1; + } + } + + // Find find the oldest output. + std::vector::iterator out = outputs.begin(); + std::string out_oldest = *out++; + for(;out != outputs.end(); ++out) + { + int result = 0; + if(this->FileComparison->FileTimeCompare(out_oldest.c_str(), + out->c_str(), &result)) + { + if(result > 0) + { + out_oldest = *out; + } + } + else + { + if(verbose) + { + cmOStringStream msg; + msg << "Re-run cmake: build system output is missing\n"; + cmSystemTools::Stdout(msg.str().c_str()); + } + return 1; + } + } + + // If any output is older than any dependency then rerun. + { + int result = 0; + if(!this->FileComparison->FileTimeCompare(out_oldest.c_str(), + dep_newest.c_str(), + &result) || + result < 0) + { + if(verbose) + { + cmOStringStream msg; + msg << "Re-run cmake file: " << out_oldest.c_str() + << " older than: " << dep_newest.c_str() << "\n"; + cmSystemTools::Stdout(msg.str().c_str()); + } + return 1; + } + } + + // No need to rerun. + return 0; +} + +//---------------------------------------------------------------------------- +void cmake::TruncateOutputLog(const char* fname) +{ + std::string fullPath = this->GetHomeOutputDirectory(); + fullPath += "/"; + fullPath += fname; + struct stat st; + if ( ::stat(fullPath.c_str(), &st) ) + { + return; + } + if ( !this->CacheManager->GetCacheValue("CMAKE_CACHEFILE_DIR") ) + { + cmSystemTools::RemoveFile(fullPath.c_str()); + return; + } + off_t fsize = st.st_size; + const off_t maxFileSize = 50 * 1024; + if ( fsize < maxFileSize ) + { + //TODO: truncate file + return; + } +} + +inline std::string removeQuotes(const std::string& s) +{ + if(s[0] == '\"' && s[s.size()-1] == '\"') + { + return s.substr(1, s.size()-2); + } + return s; +} + +std::string cmake::FindCMakeProgram(const char* name) const +{ + std::string path; + if ((name) && (*name)) + { + const cmMakefile* mf + = this->GetGlobalGenerator()->GetLocalGenerators()[0]->GetMakefile(); +#ifdef CMAKE_BUILD_WITH_CMAKE + path = mf->GetRequiredDefinition("CMAKE_COMMAND"); + path = removeQuotes(path); + path = cmSystemTools::GetFilenamePath(path.c_str()); + path += "/"; + path += name; + path += cmSystemTools::GetExecutableExtension(); + if(!cmSystemTools::FileExists(path.c_str())) + { + path = mf->GetRequiredDefinition("CMAKE_COMMAND"); + path = cmSystemTools::GetFilenamePath(path.c_str()); + path += "/Debug/"; + path += name; + path += cmSystemTools::GetExecutableExtension(); + } + if(!cmSystemTools::FileExists(path.c_str())) + { + path = mf->GetRequiredDefinition("CMAKE_COMMAND"); + path = cmSystemTools::GetFilenamePath(path.c_str()); + path += "/Release/"; + path += name; + path += cmSystemTools::GetExecutableExtension(); + } +#else + // Only for bootstrap + path += mf->GetSafeDefinition("EXECUTABLE_OUTPUT_PATH"); + path += "/"; + path += name; + path += cmSystemTools::GetExecutableExtension(); +#endif + } + return path; +} + +const char* cmake::GetCTestCommand() +{ + if ( this->CTestCommand.empty() ) + { + this->CTestCommand = this->FindCMakeProgram("ctest"); + } + if ( this->CTestCommand.empty() ) + { + cmSystemTools::Error("Cannot find the CTest executable"); + this->CTestCommand = "CTEST-COMMAND-NOT-FOUND"; + } + return this->CTestCommand.c_str(); +} + +const char* cmake::GetCPackCommand() +{ + if ( this->CPackCommand.empty() ) + { + this->CPackCommand = this->FindCMakeProgram("cpack"); + } + if ( this->CPackCommand.empty() ) + { + cmSystemTools::Error("Cannot find the CPack executable"); + this->CPackCommand = "CPACK-COMMAND-NOT-FOUND"; + } + return this->CPackCommand.c_str(); +} + +void cmake::GenerateGraphViz(const char* fileName) const +{ + cmGeneratedFileStream str(fileName); + if ( !str ) + { + return; + } + cmake cm; + cmGlobalGenerator ggi; + ggi.SetCMakeInstance(&cm); + std::auto_ptr lg(ggi.CreateLocalGenerator()); + lg->SetGlobalGenerator(&ggi); + cmMakefile *mf = lg->GetMakefile(); + + std::string infile = this->GetHomeOutputDirectory(); + infile += "/CMakeGraphVizOptions.cmake"; + if ( !cmSystemTools::FileExists(infile.c_str()) ) + { + infile = this->GetHomeDirectory(); + infile += "/CMakeGraphVizOptions.cmake"; + if ( !cmSystemTools::FileExists(infile.c_str()) ) + { + infile = ""; + } + } + + if ( !infile.empty() ) + { + if ( !mf->ReadListFile(0, infile.c_str()) ) + { + cmSystemTools::Error("Problem opening GraphViz options file: ", + infile.c_str()); + return; + } + std::cout << "Read GraphViz options file: " << infile.c_str() + << std::endl; + } + +#define __set_if_not_set(var, value, cmakeDefinition) \ + const char* var = mf->GetDefinition(cmakeDefinition); \ + if ( !var ) \ + { \ + var = value; \ + } + __set_if_not_set(graphType, "digraph", "GRAPHVIZ_GRAPH_TYPE"); + __set_if_not_set(graphName, "GG", "GRAPHVIZ_GRAPH_NAME"); + __set_if_not_set(graphHeader, "node [\n fontsize = \"12\"\n];", + "GRAPHVIZ_GRAPH_HEADER"); + __set_if_not_set(graphNodePrefix, "node", "GRAPHVIZ_NODE_PREFIX"); + const char* ignoreTargets = mf->GetDefinition("GRAPHVIZ_IGNORE_TARGETS"); + std::set ignoreTargetsSet; + if ( ignoreTargets ) + { + std::vector ignoreTargetsVector; + cmSystemTools::ExpandListArgument(ignoreTargets,ignoreTargetsVector); + std::vector::iterator itvIt; + for ( itvIt = ignoreTargetsVector.begin(); + itvIt != ignoreTargetsVector.end(); + ++ itvIt ) + { + ignoreTargetsSet.insert(itvIt->c_str()); + } + } + + str << graphType << " " << graphName << " {" << std::endl; + str << graphHeader << std::endl; + + const cmGlobalGenerator* gg = this->GetGlobalGenerator(); + const std::vector& localGenerators = + gg->GetLocalGenerators(); + std::vector::const_iterator lit; + // for target deps + // 1 - cmake target + // 2 - external target + // 0 - no deps + std::map targetDeps; + std::map targetPtrs; + std::map targetNamesNodes; + int cnt = 0; + // First pass get the list of all cmake targets + for ( lit = localGenerators.begin(); lit != localGenerators.end(); ++ lit ) + { + const cmTargets* targets = &((*lit)->GetMakefile()->GetTargets()); + cmTargets::const_iterator tit; + for ( tit = targets->begin(); tit != targets->end(); ++ tit ) + { + const char* realTargetName = tit->first.c_str(); + if ( ignoreTargetsSet.find(realTargetName) != ignoreTargetsSet.end() ) + { + // Skip ignored targets + continue; + } + //std::cout << "Found target: " << tit->first.c_str() << std::endl; + cmOStringStream ostr; + ostr << graphNodePrefix << cnt++; + targetNamesNodes[realTargetName] = ostr.str(); + targetPtrs[realTargetName] = &tit->second; + } + } + // Ok, now find all the stuff we link to that is not in cmake + for ( lit = localGenerators.begin(); lit != localGenerators.end(); ++ lit ) + { + const cmTargets* targets = &((*lit)->GetMakefile()->GetTargets()); + cmTargets::const_iterator tit; + for ( tit = targets->begin(); tit != targets->end(); ++ tit ) + { + const cmTarget::LinkLibraryVectorType* ll + = &(tit->second.GetOriginalLinkLibraries()); + cmTarget::LinkLibraryVectorType::const_iterator llit; + const char* realTargetName = tit->first.c_str(); + if ( ignoreTargetsSet.find(realTargetName) != ignoreTargetsSet.end() ) + { + // Skip ignored targets + continue; + } + if ( ll->size() > 0 ) + { + targetDeps[realTargetName] = 1; + } + for ( llit = ll->begin(); llit != ll->end(); ++ llit ) + { + const char* libName = llit->first.c_str(); + std::map::const_iterator tarIt + = targetNamesNodes.find(libName); + if ( ignoreTargetsSet.find(libName) != ignoreTargetsSet.end() ) + { + // Skip ignored targets + continue; + } + if ( tarIt == targetNamesNodes.end() ) + { + cmOStringStream ostr; + ostr << graphNodePrefix << cnt++; + targetDeps[libName] = 2; + targetNamesNodes[libName] = ostr.str(); + //str << " \"" << ostr.c_str() << "\" [ label=\"" << libName + //<< "\" shape=\"ellipse\"];" << std::endl; + } + else + { + std::map::const_iterator depIt + = targetDeps.find(libName); + if ( depIt == targetDeps.end() ) + { + targetDeps[libName] = 1; + } + } + } + } + } + + // Write out nodes + std::map::const_iterator depIt; + for ( depIt = targetDeps.begin(); depIt != targetDeps.end(); ++ depIt ) + { + const char* newTargetName = depIt->first.c_str(); + std::map::const_iterator tarIt + = targetNamesNodes.find(newTargetName); + if ( tarIt == targetNamesNodes.end() ) + { + // We should not be here. + std::cout << __LINE__ << " Cannot find library: " << newTargetName + << " even though it was added in the previous pass" << std::endl; + abort(); + } + + str << " \"" << tarIt->second.c_str() << "\" [ label=\"" + << newTargetName << "\" shape=\""; + if ( depIt->second == 1 ) + { + std::map::const_iterator tarTypeIt = + targetPtrs.find(newTargetName); + if ( tarTypeIt == targetPtrs.end() ) + { + // We should not be here. + std::cout << __LINE__ << " Cannot find library: " << newTargetName + << " even though it was added in the previous pass" << std::endl; + abort(); + } + const cmTarget* tg = tarTypeIt->second; + switch ( tg->GetType() ) + { + case cmTarget::EXECUTABLE: + str << "house"; + break; + case cmTarget::STATIC_LIBRARY: + str << "diamond"; + break; + case cmTarget::SHARED_LIBRARY: + str << "polygon"; + break; + case cmTarget::MODULE_LIBRARY: + str << "octagon"; + break; + default: + str << "box"; + } + } + else + { + str << "ellipse"; + } + str << "\"];" << std::endl; + } + + // Now generate the connectivity + for ( lit = localGenerators.begin(); lit != localGenerators.end(); ++ lit ) + { + const cmTargets* targets = &((*lit)->GetMakefile()->GetTargets()); + cmTargets::const_iterator tit; + for ( tit = targets->begin(); tit != targets->end(); ++ tit ) + { + std::map::iterator dependIt + = targetDeps.find(tit->first.c_str()); + if ( dependIt == targetDeps.end() ) + { + continue; + } + std::map::iterator cmakeTarIt + = targetNamesNodes.find(tit->first.c_str()); + const cmTarget::LinkLibraryVectorType* ll + = &(tit->second.GetOriginalLinkLibraries()); + cmTarget::LinkLibraryVectorType::const_iterator llit; + for ( llit = ll->begin(); llit != ll->end(); ++ llit ) + { + const char* libName = llit->first.c_str(); + std::map::const_iterator tarIt + = targetNamesNodes.find(libName); + if ( tarIt == targetNamesNodes.end() ) + { + // We should not be here. + std::cout << __LINE__ << " Cannot find library: " << libName + << " even though it was added in the previous pass" << std::endl; + abort(); + } + str << " \"" << cmakeTarIt->second.c_str() << "\" -> \"" + << tarIt->second.c_str() << "\"" << std::endl; + } + } + } + + // TODO: Use dotted or something for external libraries + //str << " \"node0\":f4 -> \"node12\"[color=\"#0000ff\" style=dotted]" + //<< std::endl; + // + str << "}" << std::endl; +} + +//---------------------------------------------------------------------------- +#ifdef CMAKE_BUILD_WITH_CMAKE +int cmake::ExecuteEchoColor(std::vector& args) +{ + // The arguments are + // argv[0] == + // argv[1] == cmake_echo_color + + bool enabled = true; + int color = cmsysTerminal_Color_Normal; + bool newline = true; + for(unsigned int i=2; i < args.size(); ++i) + { + if(args[i].find("--switch=") == 0) + { + // Enable or disable color based on the switch value. + std::string value = args[i].substr(9); + if(!value.empty()) + { + if(cmSystemTools::IsOn(value.c_str())) + { + enabled = true; + } + else + { + enabled = false; + } + } + } + else if(args[i] == "--normal") + { + color = cmsysTerminal_Color_Normal; + } + else if(args[i] == "--black") + { + color = cmsysTerminal_Color_ForegroundBlack; + } + else if(args[i] == "--red") + { + color = cmsysTerminal_Color_ForegroundRed; + } + else if(args[i] == "--green") + { + color = cmsysTerminal_Color_ForegroundGreen; + } + else if(args[i] == "--yellow") + { + color = cmsysTerminal_Color_ForegroundYellow; + } + else if(args[i] == "--blue") + { + color = cmsysTerminal_Color_ForegroundBlue; + } + else if(args[i] == "--magenta") + { + color = cmsysTerminal_Color_ForegroundMagenta; + } + else if(args[i] == "--cyan") + { + color = cmsysTerminal_Color_ForegroundCyan; + } + else if(args[i] == "--white") + { + color = cmsysTerminal_Color_ForegroundWhite; + } + else if(args[i] == "--bold") + { + color |= cmsysTerminal_Color_ForegroundBold; + } + else if(args[i] == "--no-newline") + { + newline = false; + } + else if(args[i] == "--newline") + { + newline = true; + } + else + { + // Color is enabled. Print with the current color. + cmSystemTools::MakefileColorEcho(color, args[i].c_str(), + newline, enabled); + } + } + + return 0; +} +#else +int cmake::ExecuteEchoColor(std::vector&) +{ + return 1; +} +#endif + +//---------------------------------------------------------------------------- +int cmake::ExecuteLinkScript(std::vector& args) +{ + // The arguments are + // argv[0] == + // argv[1] == cmake_link_script + // argv[2] == + // argv[3] == --verbose=? + bool verbose = false; + if(args.size() >= 4) + { + if(args[3].find("--verbose=") == 0) + { + if(!cmSystemTools::IsOff(args[3].substr(10).c_str())) + { + verbose = true; + } + } + } + + // Allocate a process instance. + cmsysProcess* cp = cmsysProcess_New(); + if(!cp) + { + std::cerr << "Error allocating process instance in link script." + << std::endl; + return 1; + } + + // Children should share stdout and stderr with this process. + cmsysProcess_SetPipeShared(cp, cmsysProcess_Pipe_STDOUT, 1); + cmsysProcess_SetPipeShared(cp, cmsysProcess_Pipe_STDERR, 1); + + // Run the command lines verbatim. + cmsysProcess_SetOption(cp, cmsysProcess_Option_Verbatim, 1); + + // Read command lines from the script. + std::ifstream fin(args[2].c_str()); + if(!fin) + { + std::cerr << "Error opening link script \"" + << args[2] << "\"" << std::endl; + return 1; + } + + // Run one command at a time. + std::string command; + int result = 0; + while(result == 0 && cmSystemTools::GetLineFromStream(fin, command)) + { + // Setup this command line. + const char* cmd[2] = {command.c_str(), 0}; + cmsysProcess_SetCommand(cp, cmd); + + // Report the command if verbose output is enabled. + if(verbose) + { + std::cout << command << std::endl; + } + + // Run the command and wait for it to exit. + cmsysProcess_Execute(cp); + cmsysProcess_WaitForExit(cp, 0); + + // Report failure if any. + switch(cmsysProcess_GetState(cp)) + { + case cmsysProcess_State_Exited: + { + int value = cmsysProcess_GetExitValue(cp); + if(value != 0) + { + result = value; + } + } + break; + case cmsysProcess_State_Exception: + std::cerr << "Error running link command: " + << cmsysProcess_GetExceptionString(cp) << std::endl; + result = 1; + break; + case cmsysProcess_State_Error: + std::cerr << "Error running link command: " + << cmsysProcess_GetErrorString(cp) << std::endl; + result = 2; + break; + default: + break; + }; + } + + // Free the process instance. + cmsysProcess_Delete(cp); + + // Return the final resulting return value. + return result; +} + +void cmake::DefineProperties(cmake *cm) +{ + cm->DefineProperty + ("REPORT_UNDEFINED_PROPERTIES", cmProperty::GLOBAL, + "If set, report any undefined properties to this file.", + "If this property is set to a filename then when CMake runs " + "it will report any properties or variables that were accessed " + "but not defined into the filename specified in this property." + ); + + cm->DefineProperty + ("TARGET_SUPPORTS_SHARED_LIBS", cmProperty::GLOBAL, + "Does the target platform support shared libraries.", + "TARGET_SUPPORTS_SHARED_LIBS is a boolean specifying whether the target " + "platform supports shared libraries. Basically all current general " + "general purpose OS do so, the exception are usually embedded systems " + "with no or special OSs."); + cm->DefineProperty + ("FIND_LIBRARY_USE_LIB64_PATHS", cmProperty::GLOBAL, + "Whether FIND_LIBRARY should automatically search lib64 directories.", + "FIND_LIBRARY_USE_LIB64_PATHS is a boolean specifying whether the " + "FIND_LIBRARY command should automatically search the lib64 variant of " + "directories called lib in the search path when building 64-bit " + "binaries."); + cm->DefineProperty + ("ENABLED_FEATURES", cmProperty::GLOBAL, + "List of features which are enabled during the CMake run.", + "List of features which are enabled during the CMake run. Be default " + "it contains the names of all packages which were found. This is " + "determined using the _FOUND variables. Packages which are " + "searched QUIET are not listed. A project can add its own features to " + "this list.This property is used by the macros in FeatureSummary.cmake."); + cm->DefineProperty + ("DISABLED_FEATURES", cmProperty::GLOBAL, + "List of features which are disabled during the CMake run.", + "List of features which are disabled during the CMake run. Be default " + "it contains the names of all packages which were not found. This is " + "determined using the _FOUND variables. Packages which are " + "searched QUIET are not listed. A project can add its own features to " + "this list.This property is used by the macros in FeatureSummary.cmake."); + cm->DefineProperty + ("PACKAGES_FOUND", cmProperty::GLOBAL, + "List of packages which were found during the CMake run.", + "List of packages which were found during the CMake run. Whether a " + "package has been found is determined using the _FOUND variables."); + cm->DefineProperty + ("PACKAGES_NOT_FOUND", cmProperty::GLOBAL, + "List of packages which were not found during the CMake run.", + "List of packages which were not found during the CMake run. Whether a " + "package has been found is determined using the _FOUND variables."); + + cm->DefineProperty + ("PACKAGES_NOT_FOUND", cmProperty::GLOBAL, + "List of packages which were not found during the CMake run.", + "List of packages which were not found during the CMake run. Whether a " + "package has been found is determined using the _FOUND variables."); + cm->DefineProperty( + "__CMAKE_DELETE_CACHE_CHANGE_VARS_", cmProperty::GLOBAL, + "Internal property", + "Used to detect compiler changes, Do not set."); + + // ================================================================ + // define variables as well + // ================================================================ + cmDocumentVariables::DefineVariables(cm); +} + + +void cmake::DefineProperty(const char *name, cmProperty::ScopeType scope, + const char *ShortDescription, + const char *FullDescription, + bool chained, const char *docSection) +{ + this->PropertyDefinitions[scope].DefineProperty(name,scope,ShortDescription, + FullDescription, + docSection, + chained); +} + +cmPropertyDefinition *cmake +::GetPropertyDefinition(const char *name, + cmProperty::ScopeType scope) +{ + if (this->IsPropertyDefined(name,scope)) + { + return &(this->PropertyDefinitions[scope][name]); + } + return 0; +} + +void cmake::RecordPropertyAccess(const char *name, + cmProperty::ScopeType scope) +{ + this->AccessedProperties.insert + (std::pair(name,scope)); +} + +void cmake::ReportUndefinedPropertyAccesses(const char *filename) +{ + FILE *progFile = fopen(filename,"w"); + if (!progFile || !this->GlobalGenerator) + { + return; + } + + // what are the enabled languages? + std::vector enLangs; + this->GlobalGenerator->GetEnabledLanguages(enLangs); + + // Common configuration names. + // TODO: Compute current configuration(s). + std::vector enConfigs; + enConfigs.push_back(""); + enConfigs.push_back("DEBUG"); + enConfigs.push_back("RELEASE"); + enConfigs.push_back("MINSIZEREL"); + enConfigs.push_back("RELWITHDEBINFO"); + + // take all the defined properties and add definitions for all the enabled + // languages + std::set > aliasedProperties; + std::map::iterator i; + i = this->PropertyDefinitions.begin(); + for (;i != this->PropertyDefinitions.end(); ++i) + { + cmPropertyDefinitionMap::iterator j; + for (j = i->second.begin(); j != i->second.end(); ++j) + { + // TODO: What if both and appear? + if (j->first.find("") != std::string::npos) + { + std::vector::const_iterator k; + for (k = enConfigs.begin(); k != enConfigs.end(); ++k) + { + std::string tmp = j->first; + cmSystemTools::ReplaceString(tmp, "", k->c_str()); + // add alias + aliasedProperties.insert + (std::pair(tmp,i->first)); + } + } + if (j->first.find("") != std::string::npos) + { + std::vector::const_iterator k; + for (k = enLangs.begin(); k != enLangs.end(); ++k) + { + std::string tmp = j->first; + cmSystemTools::ReplaceString(tmp, "", k->c_str()); + // add alias + aliasedProperties.insert + (std::pair(tmp,i->first)); + } + } + } + } + + std::set >::const_iterator ap; + ap = this->AccessedProperties.begin(); + for (;ap != this->AccessedProperties.end(); ++ap) + { + if (!this->IsPropertyDefined(ap->first.c_str(),ap->second) && + aliasedProperties.find(std::pair + (ap->first,ap->second)) == + aliasedProperties.end()) + { + const char *scopeStr = ""; + switch (ap->second) + { + case cmProperty::TARGET: + scopeStr = "TARGET"; + break; + case cmProperty::SOURCE_FILE: + scopeStr = "SOURCE_FILE"; + break; + case cmProperty::DIRECTORY: + scopeStr = "DIRECTORY"; + break; + case cmProperty::TEST: + scopeStr = "TEST"; + break; + case cmProperty::VARIABLE: + scopeStr = "VARIABLE"; + break; + case cmProperty::CACHED_VARIABLE: + scopeStr = "CACHED_VARIABLE"; + break; + default: + scopeStr = "unknown"; + break; + } + fprintf(progFile,"%s with scope %s\n",ap->first.c_str(),scopeStr); + } + } + fclose(progFile); +} + +bool cmake::IsPropertyDefined(const char *name, cmProperty::ScopeType scope) +{ + return this->PropertyDefinitions[scope].IsPropertyDefined(name); +} + +bool cmake::IsPropertyChained(const char *name, cmProperty::ScopeType scope) +{ + return this->PropertyDefinitions[scope].IsPropertyChained(name); +} + +void cmake::SetProperty(const char* prop, const char* value) +{ + if (!prop) + { + return; + } + if (!value) + { + value = "NOTFOUND"; + } + + this->Properties.SetProperty(prop, value, cmProperty::GLOBAL); +} + +void cmake::AppendProperty(const char* prop, const char* value) +{ + if (!prop) + { + return; + } + this->Properties.AppendProperty(prop, value, cmProperty::GLOBAL); +} + +const char *cmake::GetProperty(const char* prop) +{ + return this->GetProperty(prop, cmProperty::GLOBAL); +} + +const char *cmake::GetProperty(const char* prop, cmProperty::ScopeType scope) +{ + bool chain = false; + + // watch for special properties + std::string propname = prop; + std::string output = ""; + if ( propname == "CACHE_VARIABLES" ) + { + cmCacheManager::CacheIterator cit = + this->GetCacheManager()->GetCacheIterator(); + for ( cit.Begin(); !cit.IsAtEnd(); cit.Next() ) + { + if ( output.size() ) + { + output += ";"; + } + output += cit.GetName(); + } + this->SetProperty("CACHE_VARIABLES", output.c_str()); + } + else if ( propname == "COMMANDS" ) + { + cmake::RegisteredCommandsMap::iterator cmds + = this->GetCommands()->begin(); + for (unsigned int cc=0 ; cmds != this->GetCommands()->end(); ++ cmds ) + { + if ( cc > 0 ) + { + output += ";"; + } + output += cmds->first.c_str(); + cc++; + } + this->SetProperty("COMMANDS",output.c_str()); + } + + return this->Properties.GetPropertyValue(prop, scope, chain); +} + +bool cmake::GetPropertyAsBool(const char* prop) +{ + return cmSystemTools::IsOn(this->GetProperty(prop)); +} + +int cmake::GetSystemInformation(std::vector& args) +{ + // so create the directory + std::string resultFile; + std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); + std::string destPath = cwd + "/__cmake_systeminformation"; + cmSystemTools::RemoveADirectory(destPath.c_str()); + if (!cmSystemTools::MakeDirectory(destPath.c_str())) + { + std::cerr << "Error: --system-information must be run from a " + "writable directory!\n"; + return 1; + } + + // process the arguments + bool writeToStdout = true; + for(unsigned int i=1; i < args.size(); ++i) + { + std::string arg = args[i]; + if(arg.find("-V",0) == 0) + { + this->Verbose = true; + } + else if(arg.find("-G",0) == 0) + { + std::string value = arg.substr(2); + if(value.size() == 0) + { + ++i; + if(i >= args.size()) + { + cmSystemTools::Error("No generator specified for -G"); + return -1; + } + value = args[i]; + } + cmGlobalGenerator* gen = + this->CreateGlobalGenerator(value.c_str()); + if(!gen) + { + cmSystemTools::Error("Could not create named generator ", + value.c_str()); + } + else + { + this->SetGlobalGenerator(gen); + } + } + // no option assume it is the output file + else + { + if (!cmSystemTools::FileIsFullPath(arg.c_str())) + { + resultFile = cwd; + resultFile += "/"; + } + resultFile += arg; + writeToStdout = false; + } + } + + + // we have to find the module directory, so we can copy the files + this->AddCMakePaths(); + std::string modulesPath = + this->CacheManager->GetCacheValue("CMAKE_ROOT"); + modulesPath += "/Modules"; + std::string inFile = modulesPath; + inFile += "/SystemInformation.cmake"; + std::string outFile = destPath; + outFile += "/CMakeLists.txt"; + + // Copy file + if(!cmSystemTools::cmCopyFile(inFile.c_str(), outFile.c_str())) + { + std::cerr << "Error copying file \"" << inFile.c_str() + << "\" to \"" << outFile.c_str() << "\".\n"; + return 1; + } + + // do we write to a file or to stdout? + if (resultFile.size() == 0) + { + resultFile = cwd; + resultFile += "/__cmake_systeminformation/results.txt"; + } + + // now run cmake on the CMakeLists file + cmSystemTools::ChangeDirectory(destPath.c_str()); + std::vector args2; + args2.push_back(args[0]); + args2.push_back(destPath); + std::string resultArg = "-DRESULT_FILE="; + resultArg += resultFile; + args2.push_back(resultArg); + int res = this->Run(args2, false); + + if (res != 0) + { + std::cerr << "Error: --system-information failed on internal CMake!\n"; + return res; + } + + // change back to the original directory + cmSystemTools::ChangeDirectory(cwd.c_str()); + + // echo results to stdout if needed + if (writeToStdout) + { + FILE* fin = fopen(resultFile.c_str(), "r"); + if(fin) + { + const int bufferSize = 4096; + char buffer[bufferSize]; + size_t n; + while((n = fread(buffer, 1, bufferSize, fin)) > 0) + { + for(char* c = buffer; c < buffer+n; ++c) + { + putc(*c, stdout); + } + fflush(stdout); + } + fclose(fin); + } + } + + // clean up the directory + cmSystemTools::RemoveADirectory(destPath.c_str()); + return 0; +} + +//---------------------------------------------------------------------------- +static bool cmakeCheckStampFile(const char* stampName) +{ + // If the stamp file still exists then it must really be out of + // date. + if(cmSystemTools::FileExists(stampName)) + { + return false; + } + + // The stamp file does not exist. Use the stamp dependencies to + // determine whether it is really out of date. This works in + // conjunction with cmLocalVisualStudio7Generator to avoid + // repeatedly re-running CMake when the user rebuilds the entire + // solution. + std::string stampDepends = stampName; + stampDepends += ".depend"; +#if defined(_WIN32) || defined(__CYGWIN__) + std::ifstream fin(stampDepends.c_str(), std::ios::in | std::ios::binary); +#else + std::ifstream fin(stampDepends.c_str(), std::ios::in); +#endif + if(!fin) + { + // The stamp dependencies file cannot be read. Just assume the + // build system is really out of date. + return false; + } + + // Compare the stamp dependencies against the dependency file itself. + cmFileTimeComparison ftc; + std::string dep; + while(cmSystemTools::GetLineFromStream(fin, dep)) + { + int result; + if(dep.length() >= 1 && dep[0] != '#' && + (!ftc.FileTimeCompare(stampDepends.c_str(), dep.c_str(), &result) + || result < 0)) + { + // The stamp depends file is older than this dependency. The + // build system is really out of date. + return false; + } + } + + // The build system is up to date. The stamp file has been removed + // by the VS IDE due to a "rebuild" request. Just restore it. + std::ofstream stamp(stampName); + stamp << "# CMake generation timestamp file this directory.\n"; + if(stamp) + { + // Notify the user why CMake is not re-running. It is safe to + // just print to stdout here because this code is only reachable + // through an undocumented flag used by the VS generator. + std::cout << "CMake does not need to re-run because the " + << "generation timestamp is up-to-date.\n"; + return true; + } + else + { + cmSystemTools::Error("Cannot restore timestamp ", stampName); + return false; + } +} + +// For visual studio 2005 and newer manifest files need to be embeded into +// exe and dll's. This code does that in such a way that incremental linking +// still works. +int cmake::VisualStudioLink(std::vector& args, int type) +{ + if(args.size() < 2) + { + return -1; + } + bool verbose = false; + if(cmSystemTools::GetEnv("VERBOSE")) + { + verbose = true; + } + std::vector expandedArgs; + for(std::vector::iterator i = args.begin(); + i != args.end(); ++i) + { + // check for nmake temporary files + if((*i)[0] == '@') + { + std::ifstream fin(i->substr(1).c_str()); + std::string line; + while(cmSystemTools::GetLineFromStream(fin, + line)) + { + cmSystemTools::ParseWindowsCommandLine(line.c_str(), expandedArgs); + } + } + else + { + expandedArgs.push_back(*i); + } + } + // figure out if this is an incremental link or not and run the correct + // link function. + for(std::vector::iterator i = expandedArgs.begin(); + i != expandedArgs.end(); ++i) + { + if(cmSystemTools::Strucmp(i->c_str(), "/INCREMENTAL:YES") == 0) + { + if(verbose) + { + std::cout << "Visual Studio Incremental Link\n"; + } + return cmake::VisualStudioLinkIncremental(expandedArgs, type, verbose); + } + } + if(verbose) + { + std::cout << "Visual Studio Non-Incremental Link\n"; + } + return cmake::VisualStudioLinkNonIncremental(expandedArgs, type, verbose); +} + +int cmake::ParseVisualStudioLinkCommand(std::vector& args, + std::vector& command, + std::string& targetName) +{ + std::vector::iterator i = args.begin(); + i++; // skip -E + i++; // skip vs_link_dll or vs_link_exe + command.push_back(*i); + i++; // move past link command + for(; i != args.end(); ++i) + { + command.push_back(*i); + if(i->find("/Fe") == 0) + { + targetName = i->substr(3); + } + if(i->find("/out:") == 0) + { + targetName = i->substr(5); + } + } + if(targetName.size() == 0 || command.size() == 0) + { + return -1; + } + return 0; +} + +bool cmake::RunCommand(const char* comment, + std::vector& command, + bool verbose, + int* retCodeOut) +{ + if(verbose) + { + std::cout << comment << ":\n"; + for(std::vector::iterator i = command.begin(); + i != command.end(); ++i) + { + std::cout << i->c_str() << " "; + } + std::cout << "\n"; + } + std::string output; + int retCode =0; + // use rc command to create .res file + cmSystemTools::RunSingleCommand(command, + &output, + &retCode); + if(verbose) + { + std::cout << output << "\n"; + } + // if retCodeOut is requested then always return true + // and set the retCodeOut to retCode + if(retCodeOut) + { + *retCodeOut = retCode; + return true; + } + if(retCode != 0) + { + std::cout << comment << " failed. with " << retCode << "\n"; + } + return retCode == 0; +} + +int cmake::VisualStudioLinkIncremental(std::vector& args, + int type, bool verbose) +{ + // This follows the steps listed here: + // http://blogs.msdn.com/zakramer/archive/2006/05/22/603558.aspx + + // 1. Compiler compiles the application and generates the *.obj files. + // 2. An empty manifest file is generated if this is a clean build and if + // not the previous one is reused. + // 3. The resource compiler (rc.exe) compiles the *.manifest file to a + // *.res file. + // 4. Linker generates the binary (EXE or DLL) with the /incremental + // switch and embeds the dummy manifest file. The linker also generates + // the real manifest file based on the binaries that your binary depends + // on. + // 5. The manifest tool (mt.exe) is then used to generate the final + // manifest. + + // If the final manifest is changed, then 6 and 7 are run, if not + // they are skipped, and it is done. + + // 6. The resource compiler is invoked one more time. + // 7. Finally, the Linker does another incremental link, but since the + // only thing that has changed is the *.res file that contains the + // manifest it is a short link. + std::vector linkCommand; + std::string targetName; + if(cmake::ParseVisualStudioLinkCommand(args, linkCommand, targetName) == -1) + { + return -1; + } + std::string manifestArg = "/MANIFESTFILE:"; + std::vector rcCommand; + rcCommand.push_back(cmSystemTools::FindProgram("rc.exe")); + std::vector mtCommand; + mtCommand.push_back(cmSystemTools::FindProgram("mt.exe")); + std::string tempManifest; + tempManifest = targetName; + tempManifest += ".intermediate.manifest"; + std::string resourceInputFile = targetName; + resourceInputFile += ".resource.txt"; + if(verbose) + { + std::cout << "Create " << resourceInputFile.c_str() << "\n"; + } + // Create input file for rc command + std::ofstream fout(resourceInputFile.c_str()); + if(!fout) + { + return -1; + } + std::string manifestFile = targetName; + manifestFile += ".embed.manifest"; + std::string fullPath= cmSystemTools::CollapseFullPath(manifestFile.c_str()); + fout << type << " /* CREATEPROCESS_MANIFEST_RESOURCE_ID " + "*/ 24 /* RT_MANIFEST */ " << "\"" << fullPath.c_str() << "\""; + fout.close(); + manifestArg += tempManifest; + // add the manifest arg to the linkCommand + linkCommand.push_back(manifestArg); + // if manifestFile is not yet created, create an + // empty one + if(!cmSystemTools::FileExists(manifestFile.c_str())) + { + if(verbose) + { + std::cout << "Create empty: " << manifestFile.c_str() << "\n"; + } + std::ofstream foutTmp(manifestFile.c_str()); + } + std::string resourceFile = manifestFile; + resourceFile += ".res"; + // add the resource file to the end of the link command + linkCommand.push_back(resourceFile); + std::string outputOpt = "/fo"; + outputOpt += resourceFile; + rcCommand.push_back(outputOpt); + rcCommand.push_back(resourceInputFile); + // Run rc command to create resource + if(!cmake::RunCommand("RC Pass 1", rcCommand, verbose)) + { + return -1; + } + // Now run the link command to link and create manifest + if(!cmake::RunCommand("LINK Pass 1", linkCommand, verbose)) + { + return -1; + } + // create mt command + std::string outArg("/out:"); + outArg+= manifestFile; + mtCommand.push_back("/nologo"); + mtCommand.push_back(outArg); + mtCommand.push_back("/notify_update"); + mtCommand.push_back("/manifest"); + mtCommand.push_back(tempManifest); + // now run mt.exe to create the final manifest file + int mtRet =0; + cmake::RunCommand("MT", mtCommand, verbose, &mtRet); + // if mt returns 0, then the manifest was not changed and + // we do not need to do another link step + if(mtRet == 0) + { + return 0; + } + // check for magic mt return value if mt returns the magic number + // 1090650113 then it means that it updated the manifest file and we need + // to do the final link. If mt has any value other than 0 or 1090650113 + // then there was some problem with the command itself and there was an + // error so return the error code back out of cmake so make can report it. + if(mtRet != 1090650113) + { + return mtRet; + } + // update the resource file with the new manifest from the mt command. + if(!cmake::RunCommand("RC Pass 2", rcCommand, verbose)) + { + return -1; + } + // Run the final incremental link that will put the new manifest resource + // into the file incrementally. + if(!cmake::RunCommand("FINAL LINK", linkCommand, verbose)) + { + return -1; + } + return 0; +} + +int cmake::VisualStudioLinkNonIncremental(std::vector& args, + int type, + bool verbose) +{ + std::vector linkCommand; + std::string targetName; + if(cmake::ParseVisualStudioLinkCommand(args, linkCommand, targetName) == -1) + { + return -1; + } + // Run the link command as given + if(!cmake::RunCommand("LINK", linkCommand, verbose)) + { + return -1; + } + std::vector mtCommand; + mtCommand.push_back(cmSystemTools::FindProgram("mt.exe")); + mtCommand.push_back("/nologo"); + mtCommand.push_back("/manifest"); + std::string manifestFile = targetName; + manifestFile += ".manifest"; + mtCommand.push_back(manifestFile); + std::string outresource = "/outputresource:"; + outresource += targetName; + outresource += ";#"; + if(type == 1) + { + outresource += "1"; + } + else if(type == 2) + { + outresource += "2"; + } + mtCommand.push_back(outresource); + // Now use the mt tool to embed the manifest into the exe or dll + if(!cmake::RunCommand("MT", mtCommand, verbose)) + { + return -1; + } + return 0; +} diff --git a/CMakeLua/Source/cmake.h b/CMakeLua/Source/cmake.h new file mode 100644 index 0000000..ca0d1a9 --- /dev/null +++ b/CMakeLua/Source/cmake.h @@ -0,0 +1,467 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmake.h,v $ + Language: C++ + Date: $Date: 2008/01/17 23:13:55 $ + Version: $Revision: 1.99 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// This class represents a cmake invocation. It is the top level class when +// running cmake. Most cmake based GUIS should primarily create an instance +// of this class and communicate with it. +// +// The basic process for a GUI is as follows: +// +// 1) Create a cmake instance +// 2) Set the Home & Start directories, generator, and cmake command. this +// can be done using the Set methods or by using SetArgs and passing in +// command line arguments. +// 3) Load the cache by calling LoadCache (duh) +// 4) if you are using command line arguments with -D or -C flags then +// call SetCacheArgs (or if for some other reason you want to modify the +// cache, do it now. +// 5) Finally call Configure +// 6) Let the user change values and go back to step 5 +// 7) call Generate +// +// If your GUI allows the user to change the start & home directories then +// you must at a minimum redo steps 2 through 7. +// + + +#ifndef cmake_h +#define cmake_h + +#include "cmSystemTools.h" +#include "cmPropertyDefinitionMap.h" +#include "cmPropertyMap.h" + +class cmGlobalGenerator; +class cmLocalGenerator; +class cmCacheManager; +class cmMakefile; +class cmCommand; +class cmVariableWatch; +class cmFileTimeComparison; +class cmExternalMakefileProjectGenerator; +class cmDocumentationSection; + +class cmake +{ + public: + typedef std::map RegisteredCommandsMap; + + ///! construct an instance of cmake + cmake(); + ///! destruct an instance of cmake + ~cmake(); + + ///! construct an instance of cmake + static const char *GetCMakeFilesDirectory() {return "/CMakeFiles";}; + static const char *GetCMakeFilesDirectoryPostSlash() { + return "CMakeFiles/";}; + + //@{ + /** + * Set/Get the home directory (or output directory) in the project. The + * home directory is the top directory of the project. It is where + * cmake was run. Remember that CMake processes + * CMakeLists files by recursing up the tree starting at the StartDirectory + * and going up until it reaches the HomeDirectory. + */ + void SetHomeDirectory(const char* dir); + const char* GetHomeDirectory() const + { + return this->cmHomeDirectory.c_str(); + } + void SetHomeOutputDirectory(const char* lib); + const char* GetHomeOutputDirectory() const + { + return this->HomeOutputDirectory.c_str(); + } + //@} + + //@{ + /** + * Set/Get the start directory (or output directory). The start directory + * is the directory of the CMakeLists.txt file that started the current + * round of processing. Remember that CMake processes CMakeLists files by + * recursing up the tree starting at the StartDirectory and going up until + * it reaches the HomeDirectory. + */ + void SetStartDirectory(const char* dir) + { + this->cmStartDirectory = dir; + cmSystemTools::ConvertToUnixSlashes(this->cmStartDirectory); + } + const char* GetStartDirectory() const + { + return this->cmStartDirectory.c_str(); + } + void SetStartOutputDirectory(const char* lib) + { + this->StartOutputDirectory = lib; + cmSystemTools::ConvertToUnixSlashes(this->StartOutputDirectory); + } + const char* GetStartOutputDirectory() const + { + return this->StartOutputDirectory.c_str(); + } + //@} + + /** + * Dump documentation to a file. If 0 is returned, the + * operation failed. + */ + int DumpDocumentationToFile(std::ostream&); + + /** + * Handle a command line invocation of cmake. + */ + int Run(const std::vector&args) + { return this->Run(args, false); } + int Run(const std::vector&args, bool noconfigure); + + /** + * Run the global generator Generate step. + */ + int Generate(); + + /** + * Configure the cmMakefiles. This routine will create a GlobalGenerator if + * one has not already been set. It will then Call Configure on the + * GlobalGenerator. This in turn will read in an process all the CMakeList + * files for the tree. It will not produce any actual Makefiles, or + * workspaces. Generate does that. */ + int Configure(); + int ActualConfigure(); + + /** + * Configure the cmMakefiles. This routine will create a GlobalGenerator if + * one has not already been set. It will then Call Configure on the + * GlobalGenerator. This in turn will read in an process all the CMakeList + * files for the tree. It will not produce any actual Makefiles, or + * workspaces. Generate does that. */ + int LoadCache(); + void PreLoadCMakeFiles(); + + ///! Create a GlobalGenerator + cmGlobalGenerator* CreateGlobalGenerator(const char* name); + + ///! Return the global generator assigned to this instance of cmake + cmGlobalGenerator* GetGlobalGenerator() { return this->GlobalGenerator; } + ///! Return the global generator assigned to this instance of cmake, const + const cmGlobalGenerator* GetGlobalGenerator() const + { return this->GlobalGenerator; } + + ///! Return the global generator assigned to this instance of cmake + void SetGlobalGenerator(cmGlobalGenerator *); + + ///! Get the names of the current registered generators + void GetRegisteredGenerators(std::vector& names); + + ///! get the cmCachemManager used by this invocation of cmake + cmCacheManager *GetCacheManager() { return this->CacheManager; } + + ///! set the cmake command this instance of cmake should use + void SetCMakeCommand(const char* cmd) { this->CMakeCommand = cmd; } + + /** + * Given a variable name, return its value (as a string). + */ + const char* GetCacheDefinition(const char*) const; + ///! Add an entry into the cache + void AddCacheEntry(const char* key, const char* value, + const char* helpString, + int type); + /** + * Execute commands during the build process. Supports options such + * as echo, remove file etc. + */ + static int ExecuteCMakeCommand(std::vector&); + + /** + * Get the system information and write it to the file specified + */ + int GetSystemInformation(std::vector&); + + /** + * Add a command to this cmake instance + */ + void AddCommand(cmCommand* ); + void RenameCommand(const char* oldName, const char* newName); + void RemoveCommand(const char* name); + void RemoveUnscriptableCommands(); + + /** + * Get a command by its name + */ + cmCommand *GetCommand(const char *name); + + /** Get list of all commands */ + RegisteredCommandsMap* GetCommands() { return &this->Commands; } + + /** Check if a command exists. */ + bool CommandExists(const char* name) const; + + ///! Parse command line arguments + void SetArgs(const std::vector&); + + ///! Is this cmake running as a result of a TRY_COMPILE command + bool GetIsInTryCompile() { return this->InTryCompile; } + + ///! Is this cmake running as a result of a TRY_COMPILE command + void SetIsInTryCompile(bool i) { this->InTryCompile = i; } + + ///! Parse command line arguments that might set cache values + bool SetCacheArgs(const std::vector&); + + typedef void (*ProgressCallbackType) + (const char*msg, float progress, void *); + /** + * Set the function used by GUI's to receive progress updates + * Function gets passed: message as a const char*, a progress + * amount ranging from 0 to 1.0 and client data. The progress + * number provided may be negative in cases where a message is + * to be displayed without any progress percentage. + */ + void SetProgressCallback(ProgressCallbackType f, void* clientData=0); + + ///! this is called by generators to update the progress + void UpdateProgress(const char *msg, float prog); + + + ///! Get the variable watch object + cmVariableWatch* GetVariableWatch() { return this->VariableWatch; } + + /** Get the documentation entries for the supported commands. + * If withCurrentCommands is true, the documentation for the + * recommended set of commands is included. + * If withCompatCommands is true, the documentation for discouraged + * (compatibility) commands is included. + * You probably don't want to set both to false. + */ + void GetCommandDocumentation(std::vector& entries, + bool withCurrentCommands = true, + bool withCompatCommands = true) const; + void GetPropertiesDocumentation(std::map&); + void GetGeneratorDocumentation(std::vector&); + + ///! Set/Get a property of this target file + void SetProperty(const char *prop, const char *value); + void AppendProperty(const char *prop, const char *value); + const char *GetProperty(const char *prop); + const char *GetProperty(const char *prop, cmProperty::ScopeType scope); + bool GetPropertyAsBool(const char *prop); + + // Get the properties + cmPropertyMap &GetProperties() { return this->Properties; }; + + ///! Do all the checks before running configure + int DoPreConfigureChecks(); + + /** + * Set and get the script mode option. In script mode there is no + * generator and no cache. Also, language are not enabled, so + * add_executable and things do not do anything. + */ + void SetScriptMode(bool mode) { this->ScriptMode = mode; } + bool GetScriptMode() { return this->ScriptMode; } + + ///! Debug the try compile stuff by not delelting the files + bool GetDebugTryCompile(){return this->DebugTryCompile;} + void DebugTryCompileOn(){this->DebugTryCompile = true;} + + ///! Get the list of files written by CMake using FILE(WRITE / WRITE_FILE + void AddWrittenFile(const char* file); + bool HasWrittenFile(const char* file); + void CleanupWrittenFiles(); + + /** + * Generate CMAKE_ROOT and CMAKE_COMMAND cache entries + */ + int AddCMakePaths(); + + /** + * Get the file comparison class + */ + cmFileTimeComparison* GetFileComparison() { return this->FileComparison; } + + /** + * Get the path to ctest + */ + const char* GetCTestCommand(); + const char* GetCPackCommand(); + const char* GetCMakeCommand() const { return this->CMakeCommand.c_str(); } + + // Do we want debug output during the cmake run. + bool GetDebugOutput() { return this->DebugOutput; } + void DebugOutputOn() { this->DebugOutput = true;} + + // Define a property + void DefineProperty(const char *name, cmProperty::ScopeType scope, + const char *ShortDescription, + const char *FullDescription, + bool chain = false, + const char *variableGroup = 0); + + // get property definition + cmPropertyDefinition *GetPropertyDefinition + (const char *name, cmProperty::ScopeType scope); + + // Is a property defined? + bool IsPropertyDefined(const char *name, cmProperty::ScopeType scope); + bool IsPropertyChained(const char *name, cmProperty::ScopeType scope); + + // record accesses of properties and variables + void RecordPropertyAccess(const char *name, cmProperty::ScopeType scope); + void ReportUndefinedPropertyAccesses(const char *filename); + + // Define the properties + static void DefineProperties(cmake *cm); + +protected: + int HandleDeleteCacheVariables(const char* var); + cmPropertyMap Properties; + std::set > AccessedProperties; + + std::map + PropertyDefinitions; + + typedef + cmExternalMakefileProjectGenerator* (*CreateExtraGeneratorFunctionType)(); + typedef std::map RegisteredExtraGeneratorsMap; + + typedef cmGlobalGenerator* (*CreateGeneratorFunctionType)(); + typedef std::map RegisteredGeneratorsMap; + RegisteredCommandsMap Commands; + RegisteredGeneratorsMap Generators; + RegisteredExtraGeneratorsMap ExtraGenerators; + void AddDefaultCommands(); + void AddDefaultGenerators(); + void AddDefaultExtraGenerators(); + void AddExtraGenerator(const char* name, + CreateExtraGeneratorFunctionType newFunction); + + cmGlobalGenerator *GlobalGenerator; + cmCacheManager *CacheManager; + std::string cmHomeDirectory; + std::string HomeOutputDirectory; + std::string cmStartDirectory; + std::string StartOutputDirectory; + + std::set WrittenFiles; + + ///! return true if the same cmake was used to make the cache. + bool CacheVersionMatches(); + ///! read in a cmake list file to initialize the cache + void ReadListFile(const char *path); + + ///! Check if CMAKE_CACHEFILE_DIR is set. If it is not, delete the log file. + /// If it is set, truncate it to 50kb + void TruncateOutputLog(const char* fname); + + /** + * Method called to check build system integrity at build time. + * Returns 1 if CMake should rerun and 0 otherwise. + */ + int CheckBuildSystem(); + + void SetDirectoriesFromFile(const char* arg); + + //! Make sure all commands are what they say they are and there is no + //macros. + void CleanupCommandsAndMacros(); + + void GenerateGraphViz(const char* fileName) const; + + static int ExecuteEchoColor(std::vector& args); + static int ExecuteLinkScript(std::vector& args); + static int VisualStudioLink(std::vector& args, int type); + static int VisualStudioLinkIncremental(std::vector& args, + int type, + bool verbose); + static int VisualStudioLinkNonIncremental(std::vector& args, + int type, + bool verbose); + static int ParseVisualStudioLinkCommand(std::vector& args, + std::vector& command, + std::string& targetName); + static bool RunCommand(const char* comment, + std::vector& command, + bool verbose, + int* retCodeOut = 0); + cmVariableWatch* VariableWatch; + + ///! Find the full path to one of the cmake programs like ctest, cpack, etc. + std::string FindCMakeProgram(const char* name) const; +private: + ProgressCallbackType ProgressCallback; + void* ProgressCallbackClientData; + bool Verbose; + bool InTryCompile; + bool ScriptMode; + bool DebugOutput; + std::string CMakeCommand; + std::string CXXEnvironment; + std::string CCEnvironment; + std::string CheckBuildSystemArgument; + std::string CheckStampFile; + std::string VSSolutionFile; + std::string CTestCommand; + std::string CPackCommand; + bool ClearBuildSystem; + bool DebugTryCompile; + cmFileTimeComparison* FileComparison; + std::string GraphVizFile; + + void UpdateConversionPathTable(); +}; + +#define CMAKE_STANDARD_OPTIONS_TABLE \ + {"-C ", "Pre-load a script to populate the cache.", \ + "When cmake is first run in an empty build tree, it creates a " \ + "CMakeCache.txt file and populates it with customizable settings " \ + "for the project. This option may be used to specify a file from " \ + "which to load cache entries before the first pass through " \ + "the project's cmake listfiles. The loaded entries take priority " \ + "over the project's default values. The given file should be a CMake " \ + "script containing SET commands that use the CACHE option, " \ + "not a cache-format file."}, \ + {"-D :=", "Create a cmake cache entry.", \ + "When cmake is first run in an empty build tree, it creates a " \ + "CMakeCache.txt file and populates it with customizable settings " \ + "for the project. This option may be used to specify a setting " \ + "that takes priority over the project's default value. The option " \ + "may be repeated for as many cache entries as desired."}, \ + {"-U ", "Remove matching entries from CMake cache.", \ + "This option may be used to remove one or more variables from the " \ + "CMakeCache.txt file, globbing expressions using * and ? are supported. "\ + "The option may be repeated for as many cache entries as desired.\n" \ + "Use with care, you can make your CMakeCache.txt non-working."}, \ + {"-G ", "Specify a makefile generator.", \ + "CMake may support multiple native build systems on certain platforms. " \ + "A makefile generator is responsible for generating a particular build " \ + "system. Possible generator names are specified in the Generators " \ + "section."} + +#define CMAKE_STANDARD_INTRODUCTION \ + {0, \ + "CMake is a cross-platform build system generator. Projects " \ + "specify their build process with platform-independent CMake listfiles " \ + "included in each directory of a source tree with the name " \ + "CMakeLists.txt. " \ + "Users build a project by using CMake to generate a build system " \ + "for a native tool on their platform.", 0} +#endif diff --git a/CMakeLua/Source/cmakemain.cxx b/CMakeLua/Source/cmakemain.cxx new file mode 100644 index 0000000..fc211c5 --- /dev/null +++ b/CMakeLua/Source/cmakemain.cxx @@ -0,0 +1,503 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmakemain.cxx,v $ + Language: C++ + Date: $Date: 2007/12/13 22:56:49 $ + Version: $Revision: 1.76 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +// include these first, otherwise there will be problems on Windows +// with GetCurrentDirectory() being redefined +#ifdef CMAKE_BUILD_WITH_CMAKE +#include "cmDynamicLoader.h" +#include "cmDocumentation.h" +#endif + +#include "cmake.h" +#include "cmCacheManager.h" +#include "cmListFileCache.h" +#include "cmakewizard.h" +#include "cmSourceFile.h" +#include "cmGlobalGenerator.h" +#include "cmLocalGenerator.h" +#include "cmMakefile.h" + +#ifdef CMAKE_BUILD_WITH_CMAKE +//---------------------------------------------------------------------------- +static const char * cmDocumentationName[][3] = +{ + {0, + " cmake - Cross-Platform Makefile Generator.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationUsage[][3] = +{ + {0, + " cmake [options] \n" + " cmake [options] ", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationDescription[][3] = +{ + {0, + "The \"cmake\" executable is the CMake command-line interface. It may " + "be used to configure projects in scripts. Project configuration " + "settings " + "may be specified on the command line with the -D option. The -i option " + "will cause cmake to interactively prompt for such settings.", 0}, + CMAKE_STANDARD_INTRODUCTION, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationOptions[][3] = +{ + CMAKE_STANDARD_OPTIONS_TABLE, + {"-E", "CMake command mode.", + "For true platform independence, CMake provides a list of commands " + "that can be used on all systems. Run with -E help for the usage " + "information."}, + {"-i", "Run in wizard mode.", + "Wizard mode runs cmake interactively without a GUI. The user is " + "prompted to answer questions about the project configuration. " + "The answers are used to set cmake cache values."}, + {"-L[A][H]", "List non-advanced cached variables.", + "List cache variables will run CMake and list all the variables from the " + "CMake cache that are not marked as INTERNAL or ADVANCED. This will " + "effectively display current CMake settings, which can be then changed " + "with -D option. Changing some of the variable may result in more " + "variables being created. If A is specified, then it will display also " + "advanced variables. If H is specified, it will also display help for " + "each variable."}, + {"-N", "View mode only.", + "Only load the cache. Do not actually run configure and generate steps."}, + {"-P ", "Process script mode.", + "Process the given cmake file as a script written in the CMake language. " + "No configure or generate step is performed and the cache is not" + " modified. If variables are defined using -D, this must be done " + "before the -P argument."}, + {"--graphviz=[file]", "Generate graphviz of dependencies.", + "Generate a graphviz input file that will contain all the library and " + "executable dependencies in the project."}, + {"--system-information [file]", "Dump information about this system.", + "Dump a wide range of information about the current system. If run " + "from the top of a binary tree for a CMake project it will dump " + "additional information such as the cache, log files etc."}, + {"--debug-trycompile", "Do not delete the try compile directories..", + "Do not delete the files and directories created for try_compile calls. " + "This is useful in debugging failed try_compiles."}, + {"--debug-output", "Put cmake in a debug mode.", + "Print extra stuff during the cmake run like stack traces with " + "message(send_error ) calls."}, + {"--help-command cmd [file]", "Print help for a single command and exit.", + "Full documentation specific to the given command is displayed. " + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-command-list [file]", "List available listfile commands and exit.", + "The list contains all commands for which help may be obtained by using " + "the --help-command argument followed by a command name. " + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-commands [file]", "Print help for all commands and exit.", + "Full documentation specific for all current command is displayed." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-compatcommands [file]", "Print help for compatibility commands. ", + "Full documentation specific for all compatibility commands is displayed." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-module module [file]", "Print help for a single module and exit.", + "Full documentation specific to the given module is displayed." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-module-list [file]", "List available modules and exit.", + "The list contains all modules for which help may be obtained by using " + "the --help-module argument followed by a module name. " + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-modules [file]", "Print help for all modules and exit.", + "Full documentation for all modules is displayed. " + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-custom-modules [file]" , "Print help for all custom modules and " + "exit.", + "Full documentation for all custom modules is displayed. " + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-property prop [file]", + "Print help for a single property and exit.", + "Full documentation specific to the given property is displayed." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-property-list [file]", "List available properties and exit.", + "The list contains all properties for which help may be obtained by using " + "the --help-property argument followed by a property name. If a file is " + "specified, the help is written into it." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-properties [file]", "Print help for all properties and exit.", + "Full documentation for all properties is displayed." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-variable var [file]", + "Print help for a single variable and exit.", + "Full documentation specific to the given variable is displayed." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-variable-list [file]", "List documented variables and exit.", + "The list contains all variables for which help may be obtained by using " + "the --help-variable argument followed by a variable name. If a file is " + "specified, the help is written into it." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {"--help-variables [file]", "Print help for all variables and exit.", + "Full documentation for all variables is displayed." + "If a file is specified, the documentation is written into and the output " + "format is determined depending on the filename suffix. Supported are man " + "page, HTML and plain text."}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationSeeAlso[][3] = +{ + {0, "ccmake", 0}, + {0, "ctest", 0}, + {0, 0, 0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationNOTE[][3] = +{ + {0, + "CMake no longer configures a project when run with no arguments. " + "In order to configure the project in the current directory, run\n" + " cmake .", 0}, + {0,0,0} +}; +#endif + +int do_cmake(int ac, char** av); + +static cmMakefile* cmakemainGetMakefile(void *clientdata) +{ + cmake* cm = (cmake *)clientdata; + if(cm && cm->GetDebugOutput()) + { + cmGlobalGenerator* gg=cm->GetGlobalGenerator(); + if (gg) + { + cmLocalGenerator* lg=gg->GetCurrentLocalGenerator(); + if (lg) + { + cmMakefile* mf = lg->GetMakefile(); + return mf; + } + } + } + return 0; +} + +static std::string cmakemainGetStack(void *clientdata) +{ + std::string msg; + cmMakefile* mf=cmakemainGetMakefile(clientdata); + if (mf) + { + msg = mf->GetListFileStack(); + if (!msg.empty()) + { + msg = "\n Called from: " + msg; + } + } + + return msg; +} + +static void cmakemainErrorCallback(const char* m, const char*, bool&, + void *clientdata) +{ + std::cerr << m << cmakemainGetStack(clientdata) << std::endl << std::flush; +} + +static void cmakemainProgressCallback(const char *m, float prog, + void* clientdata) +{ + cmMakefile* mf = cmakemainGetMakefile(clientdata); + std::string dir; + if ((mf) && (strstr(m, "Configuring")==m) && (prog<0)) + { + dir = " "; + dir += mf->GetCurrentDirectory(); + } + else if ((mf) && (strstr(m, "Generating")==m)) + { + dir = " "; + dir += mf->GetCurrentOutputDirectory(); + } + + if ((prog < 0) || (!dir.empty())) + { + std::cout << "-- " << m << dir << cmakemainGetStack(clientdata)< args; + for(int i =0; i < ac; ++i) + { + args.push_back(av[i]); + } + hcm.SetCacheArgs(args); + const char* modulePath = hcm.GetCacheDefinition("CMAKE_MODULE_PATH"); + if (modulePath) + { + doc.SetCMakeModulePath(modulePath); + } + + std::vector commands; + std::vector compatCommands; + std::vector generators; + std::map propDocs; + + hcm.GetCommandDocumentation(commands, true, false); + hcm.GetCommandDocumentation(compatCommands, false, true); + hcm.GetPropertiesDocumentation(propDocs); + hcm.GetGeneratorDocumentation(generators); + + doc.SetName("cmake"); + doc.SetSection("Name",cmDocumentationName); + doc.SetSection("Usage",cmDocumentationUsage); + doc.SetSection("Description",cmDocumentationDescription); + doc.AppendSection("Generators",generators); + doc.PrependSection("Options",cmDocumentationOptions); + doc.SetSection("Commands",commands); + doc.AppendSection("Compatibility Commands",compatCommands); + doc.SetSections(propDocs); + + cmDocumentationEntry e; + e.Brief = + "variables defined by cmake, that give information about the project, " + "and cmake"; + doc.PrependSection("Variables that Provide Information",e); + + doc.SetSeeAlsoList(cmDocumentationSeeAlso); + int result = doc.PrintRequestedDocumentation(std::cout)? 0:1; + + // If we were run with no arguments, but a CMakeLists.txt file + // exists, the user may have been trying to use the old behavior + // of cmake to build a project in-source. Print a message + // explaining the change to standard error and return an error + // condition in case the program is running from a script. + if((ac == 1) && cmSystemTools::FileExists("CMakeLists.txt")) + { + doc.ClearSections(); + doc.SetSection("NOTE", cmDocumentationNOTE); + doc.Print(cmDocumentation::UsageForm, std::cerr); + return 1; + } + return result; + } +#else + if ( nocwd || ac == 1 ) + { + std::cout << + "Bootstrap CMake should not be used outside CMake build process." + << std::endl; + return 0; + } +#endif + + bool wiz = false; + bool sysinfo = false; + bool command = false; + bool list_cached = false; + bool list_all_cached = false; + bool list_help = false; + bool view_only = false; + bool script_mode = false; + std::vector args; + for(int i =0; i < ac; ++i) + { + if(strcmp(av[i], "-i") == 0) + { + wiz = true; + } + else if(!command && strcmp(av[i], "--system-information") == 0) + { + sysinfo = true; + } + // if command has already been set, then + // do not eat the -E + else if (!command && strcmp(av[i], "-E") == 0) + { + command = true; + } + else if (strcmp(av[i], "-N") == 0) + { + view_only = true; + } + else if (strcmp(av[i], "-L") == 0) + { + list_cached = true; + } + else if (strcmp(av[i], "-LA") == 0) + { + list_all_cached = true; + } + else if (strcmp(av[i], "-LH") == 0) + { + list_cached = true; + list_help = true; + } + else if (strcmp(av[i], "-LAH") == 0) + { + list_all_cached = true; + list_help = true; + } + else if (strncmp(av[i], "-P", strlen("-P")) == 0) + { + if ( i == ac -1 ) + { + cmSystemTools::Error("No script specified for argument -P"); + } + else + { + script_mode = true; + args.push_back(av[i]); + i++; + args.push_back(av[i]); + } + } + else + { + args.push_back(av[i]); + } + } + + if(command) + { + int ret = cmake::ExecuteCMakeCommand(args); + return ret; + } + if (wiz) + { + cmakewizard wizard; + return wizard.RunWizard(args); + } + if (sysinfo) + { + cmake cm; + int ret = cm.GetSystemInformation(args); + return ret; + } + cmake cm; + cmSystemTools::SetErrorCallback(cmakemainErrorCallback, (void *)&cm); + cm.SetProgressCallback(cmakemainProgressCallback, (void *)&cm); + cm.SetScriptMode(script_mode); + + int res = cm.Run(args, view_only); + if ( list_cached || list_all_cached ) + { + cmCacheManager::CacheIterator it = + cm.GetCacheManager()->GetCacheIterator(); + std::cout << "-- Cache values" << std::endl; + for ( it.Begin(); !it.IsAtEnd(); it.Next() ) + { + cmCacheManager::CacheEntryType t = it.GetType(); + if ( t != cmCacheManager::INTERNAL && t != cmCacheManager::STATIC && + t != cmCacheManager::UNINITIALIZED ) + { + bool advanced = it.PropertyExists("ADVANCED"); + if ( list_all_cached || !advanced) + { + if ( list_help ) + { + std::cout << "// " << it.GetProperty("HELPSTRING") << std::endl; + } + std::cout << it.GetName() << ":" << + cmCacheManager::TypeToString(it.GetType()) + << "=" << it.GetValue() << std::endl; + if ( list_help ) + { + std::cout << std::endl; + } + } + } + } + } + + // Always return a non-negative value. Windows tools do not always + // interpret negative return values as errors. + if(res != 0) + { + return 1; + } + else + { + return 0; + } +} + diff --git a/CMakeLua/Source/cmaketest.h.in b/CMakeLua/Source/cmaketest.h.in new file mode 100644 index 0000000..4c1aea3 --- /dev/null +++ b/CMakeLua/Source/cmaketest.h.in @@ -0,0 +1,21 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmaketest.h.in,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.7 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#define CMAKE_BINARY_DIR "${CMake_BINARY_DIR}" +#define EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}" +#define MAKEPROGRAM "${MAKEPROGRAM}" +#define CMAKE_GENERATOR "${CMAKE_GENERATOR}" +#define DART_MAKECOMMAND "${MAKECOMMAND}" diff --git a/CMakeLua/Source/cmakewizard.cxx b/CMakeLua/Source/cmakewizard.cxx new file mode 100644 index 0000000..33ac76e --- /dev/null +++ b/CMakeLua/Source/cmakewizard.cxx @@ -0,0 +1,159 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmakewizard.cxx,v $ + Language: C++ + Date: $Date: 2006/03/15 16:02:07 $ + Version: $Revision: 1.23 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmakewizard.h" +#include "cmake.h" +#include "cmCacheManager.h" + +cmakewizard::cmakewizard() +{ + this->ShowAdvanced = false; +} + + +void cmakewizard::AskUser(const char* key, + cmCacheManager::CacheIterator& iter) +{ + printf("Variable Name: %s\n", key); + const char* helpstring = iter.GetProperty("HELPSTRING"); + printf("Description: %s\n", (helpstring?helpstring:"(none)")); + printf("Current Value: %s\n", iter.GetValue()); + printf("New Value (Enter to keep current value): "); + char buffer[4096]; + buffer[0] = 0; + fgets(buffer, sizeof(buffer)-1, stdin); + + if(strlen(buffer) > 0) + { + std::string sbuffer = buffer; + std::string::size_type pos = sbuffer.find_last_not_of(" \n\r\t"); + std::string value = ""; + if ( pos != std::string::npos ) + { + value = sbuffer.substr(0, pos+1); + } + + if ( value.size() > 0 ) + { + if(iter.GetType() == cmCacheManager::PATH || + iter.GetType() == cmCacheManager::FILEPATH) + { + cmSystemTools::ConvertToUnixSlashes(value); + } + if(iter.GetType() == cmCacheManager::BOOL) + { + if(!cmSystemTools::IsOn(value.c_str())) + { + value = "OFF"; + } + } + iter.SetValue(value.c_str()); + } + } + printf("\n"); +} + +bool cmakewizard::AskAdvanced() +{ + printf("Would you like to see advanced options? [No]:"); + char buffer[4096]; + buffer[0] = 0; + fgets(buffer, sizeof(buffer)-1, stdin); + if(buffer[0]) + { + if(buffer[0] == 'y' || buffer[0] == 'Y') + { + return true; + } + } + return false; +} + + +void cmakewizard::ShowMessage(const char* m) +{ + printf("%s\n", m); +} + + + +int cmakewizard::RunWizard(std::vector const& args) +{ + this->ShowAdvanced = this->AskAdvanced(); + cmSystemTools::DisableRunCommandOutput(); + cmake make; + make.SetArgs(args); + make.SetCMakeCommand(args[0].c_str()); + make.LoadCache(); + make.SetCacheArgs(args); + std::map askedCache; + bool asked = false; + // continue asking questions until no new questions are asked + do + { + asked = false; + // run cmake + this->ShowMessage( + "Please wait while cmake processes CMakeLists.txt files....\n"); + + make.Configure(); + this->ShowMessage("\n"); + // load the cache from disk + cmCacheManager *cachem = make.GetCacheManager(); + cachem->LoadCache(make.GetHomeOutputDirectory()); + cmCacheManager::CacheIterator i = cachem->NewIterator(); + // iterate over all entries in the cache + for(;!i.IsAtEnd(); i.Next()) + { + std::string key = i.GetName(); + if( i.GetType() == cmCacheManager::INTERNAL || + i.GetType() == cmCacheManager::STATIC || + i.GetType() == cmCacheManager::UNINITIALIZED ) + { + continue; + } + if(askedCache.count(key)) + { + std::string& e = askedCache.find(key)->second; + if(e != i.GetValue()) + { + if(this->ShowAdvanced || !i.GetPropertyAsBool("ADVANCED")) + { + this->AskUser(key.c_str(), i); + asked = true; + } + } + } + else + { + if(this->ShowAdvanced || !i.GetPropertyAsBool("ADVANCED")) + { + this->AskUser(key.c_str(), i); + asked = true; + } + } + askedCache[key] = i.GetValue(); + } + cachem->SaveCache(make.GetHomeOutputDirectory()); + } + while(asked); + if(make.Generate() == 0) + { + this->ShowMessage("CMake complete, run make to build project.\n"); + return 0; + } + return 1; +} diff --git a/CMakeLua/Source/cmakewizard.h b/CMakeLua/Source/cmakewizard.h new file mode 100644 index 0000000..5e9205f --- /dev/null +++ b/CMakeLua/Source/cmakewizard.h @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmakewizard.h,v $ + Language: C++ + Date: $Date: 2006/03/15 16:02:08 $ + Version: $Revision: 1.14 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + + +#include "cmMakefile.h" + +class cmakewizard +{ +public: + cmakewizard(); + virtual ~cmakewizard() {} + /** + * Prompt the user to see if they want to see advanced entries. + */ + virtual bool AskAdvanced(); + + /** + * Prompt the User for a new value for key, the answer is put in entry. + */ + virtual void AskUser(const char* key, cmCacheManager::CacheIterator& iter); + ///! Show a message to wait for cmake to run. + virtual void ShowMessage(const char*); + + /** + * Run cmake in wizard mode. This will coninue to ask the user questions + * until there are no more entries in the cache. + */ + int RunWizard(std::vectorconst& args); + +private: + bool ShowAdvanced; +}; + diff --git a/CMakeLua/Source/cmakexbuild.cxx b/CMakeLua/Source/cmakexbuild.cxx new file mode 100755 index 0000000..1d53cb5 --- /dev/null +++ b/CMakeLua/Source/cmakexbuild.cxx @@ -0,0 +1,97 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmakexbuild.cxx,v $ + Language: C++ + Date: $Date: 2007/07/27 14:55:24 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include +#include "cmStandardIncludes.h" +#include "cmSystemTools.h" + +// This is a wrapper program for xcodebuild +// it calls xcodebuild, and does two things +// it removes much of the output, all the setevn +// stuff. Also, it checks for the text file busy +// error, and re-runs xcodebuild until that error does +// not show up. + +int RunXCode(std::vector& argv, bool& hitbug) +{ + hitbug = false; + cmsysProcess* cp = cmsysProcess_New(); + cmsysProcess_SetCommand(cp, &*argv.begin()); + cmsysProcess_SetTimeout(cp, 0); + cmsysProcess_Execute(cp); + std::vector out; + std::vector err; + std::string line; + int pipe = cmSystemTools::WaitForLine(cp, line, 100.0, out, err); + while(pipe != cmsysProcess_Pipe_None) + { + if(line.find("/bin/sh: bad interpreter: Text file busy") + != line.npos) + { + hitbug = true; + std::cerr << "Hit xcodebuild bug : " << line << "\n"; + } + // if the bug is hit, no more output should be generated + // because it may contain bogus errors + // also remove all output with setenv in it to tone down + // the verbosity of xcodebuild + if(!hitbug && (line.find("setenv") == line.npos)) + { + if(pipe == cmsysProcess_Pipe_STDERR) + { + std::cerr << line << "\n"; + } + else if(pipe == cmsysProcess_Pipe_STDOUT) + { + std::cout << line << "\n"; + } + } + pipe = cmSystemTools::WaitForLine(cp, line, 100, out, err); + } + cmsysProcess_WaitForExit(cp, 0); + if(cmsysProcess_GetState(cp) == cmsysProcess_State_Exited) + { + return cmsysProcess_GetExitValue(cp); + } + if(cmsysProcess_GetState(cp) == cmsysProcess_State_Error) + { + return -1; + } + return -1; +} + +int main(int ac, char*av[]) +{ + std::vector argv; + argv.push_back("xcodebuild"); + for(int i =1; i < ac; i++) + { + argv.push_back(av[i]); + } + argv.push_back(0); + bool hitbug = true; + int ret = 0; + while(hitbug) + { + ret = RunXCode(argv, hitbug); + } + if(ret < 0) + { + return 255; + } + return ret; +} + diff --git a/CMakeLua/Source/cmw9xcom.cxx b/CMakeLua/Source/cmw9xcom.cxx new file mode 100644 index 0000000..082f603 --- /dev/null +++ b/CMakeLua/Source/cmw9xcom.cxx @@ -0,0 +1,50 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: cmw9xcom.cxx,v $ + Language: C++ + Date: $Date: 2002/12/11 16:49:08 $ + Version: $Revision: 1.5 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmSystemTools.h" +#include "cmWin32ProcessExecution.h" + +// this is a test driver program for cmake. +int main (int argc, char *argv[]) +{ + cmSystemTools::EnableMSVCDebugHook(); + if ( argc <= 1 ) + { + std::cerr << "Usage: " << argv[0] << " executable" << std::endl; + return 1; + } + std::string arg = argv[1]; + if ( (arg.find_first_of(" ") != arg.npos) && + (arg.find_first_of("\"") == arg.npos) ) + { + arg = "\"" + arg + "\""; + } + std::string command = arg; + int cc; + for ( cc = 2; cc < argc; cc ++ ) + { + std::string arg = argv[cc]; + if ( (arg.find_first_of(" ") != arg.npos) && + (arg.find_first_of("\"") == arg.npos) ) + { + arg = "\"" + arg + "\""; + } + command += " "; + command += arg; + } + + return cmWin32ProcessExecution::Windows9xHack(command.c_str()); +} diff --git a/CMakeLua/Source/ctest.cxx b/CMakeLua/Source/ctest.cxx new file mode 100644 index 0000000..57f8920 --- /dev/null +++ b/CMakeLua/Source/ctest.cxx @@ -0,0 +1,279 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile: ctest.cxx,v $ + Language: C++ + Date: $Date: 2008/01/31 16:43:44 $ + Version: $Revision: 1.102 $ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmCTest.h" +#include "cmSystemTools.h" + +// Need these for documentation support. +#include "cmake.h" +#include "cmDocumentation.h" + +#include "CTest/cmCTestScriptHandler.h" +//---------------------------------------------------------------------------- +static const char * cmDocumentationName[][3] = +{ + {0, + " ctest - Testing driver provided by CMake.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationUsage[][3] = +{ + {0, + " ctest [options]", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationDescription[][3] = +{ + {0, + "The \"ctest\" executable is the CMake test driver program. " + "CMake-generated build trees created for projects that use " + "the ENABLE_TESTING and ADD_TEST commands have testing support. " + "This program will run the tests and report results.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const char * cmDocumentationOptions[][3] = +{ + {"-C , --build-config ", "Choose configuration to test.", + "Some CMake-generated build trees can have multiple build configurations " + "in the same tree. This option can be used to specify which one should " + "be tested. Example configurations are \"Debug\" and \"Release\"."}, + {"-V,--verbose", "Enable verbose output from tests.", + "Test output is normally suppressed and only summary information is " + "displayed. This option will show all test output."}, + {"-VV,--extra-verbose", "Enable more verbose output from tests.", + "Test output is normally suppressed and only summary information is " + "displayed. This option will show even more test output."}, + {"--debug", "Displaying more verbose internals of CTest.", + "This feature will result in large number of output that is mostly " + "useful for debugging dashboard problems."}, + {"-Q,--quiet", "Make ctest quiet.", + "This option will suppress all the output. The output log file will " + "still be generated if the --output-log is specified. Options such " + "as --verbose, --extra-verbose, and --debug are ignored if --quiet is " + "specified."}, + {"-O , --output-log ", "Output to log file", + "This option tells ctest to write all its output to a log file."}, + {"-N,--show-only", "Disable actual execution of tests.", + "This option tells ctest to list the tests that would be run but not " + "actually run them. Useful in conjunction with the -R and -E options."}, + {"-R , --tests-regex ", "Run tests matching regular " + "expression.", + "This option tells ctest to run only the tests whose names match the " + "given regular expression."}, + {"-E , --exclude-regex ", "Exclude tests matching regular " + "expression.", + "This option tells ctest to NOT run the tests whose names match the " + "given regular expression."}, + {"-D , --dashboard ", "Execute dashboard test", + "This option tells ctest to perform act as a Dart client and perform " + "a dashboard test. All tests are , where Mode can be " + "Experimental, Nightly, and Continuous, and Test can be Start, Update, " + "Configure, Build, Test, Coverage, and Submit."}, + {"-M , --test-model ", "Sets the model for a dashboard", + "This option tells ctest to act as a Dart client " + "where the TestModel can be Experimental, " + "Nightly, and Continuous. Combining -M and -T is similar to -D"}, + {"-T , --test-action ", "Sets the dashboard action to " + "perform", + "This option tells ctest to act as a Dart client " + "and perform some action such as start, build, test etc. " + "Combining -M and -T is similar to -D"}, + {"--track ", "Specify the track to submit dashboard to", + "Submit dashboard to specified track instead of default one. By " + "default, the dashboard is submitted to Nightly, Experimental, or " + "Continuous track, but by specifying this option, the track can be " + "arbitrary."}, + {"-S

    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

  4. QpjN?qPKN2Ee~Q+Wvd>WYFPndS=T_uSh#bY1P4=J>!AJ&t z-svhIUg19>{hD6E&co9V12T%PB~8?<(l9~o0V|zNo~_~PR#*Z$Yzg=+`2MFv-*y$ z315ito#$+pyR_!;845OpUx+*Aq}x3R+1=&CbkpSdt9DLm;pXbom#@8EUcNl2sc?$K z5I&*AxPDywZK9eDd^`zv^6w34QcmV_>86BsOQEwkVeNRu#6X+SnAN0rCFyLRy|)rO zEU{?vM%WLO*Y*Pt{&#U!IK$wWI>tmM%YEuP45}+VIRldo@t8iyl_iZiCp1E zOz?)s6hnF2tKd|!S*~!k`K@VBGe%DP6){u(ddt0~bRgd?{R{*kzWx~HXB7SGOXa$z zidluc+?VSr9O#orU8r~u5~^IyhH<+>FMKS>WmiSDbxIMv7@^fY#JxeeW&dkrjjV>a z6A4uM;>lZ<^ujCj0=O7may~x2dZjW~XXtny?KQY$_o_Nd<&LYo8qW4wbJmbX6<6>V mOx+rD?qh&fX?#>;R$ugn=#=h>btKYS&GUUR>;4T<_4glHzOmi_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/libtar.h.i b/CMakeLua/.hg/store/data/_utilities/cmtar/libtar.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f102545dc2084e526a34d4875c5101197ade932b GIT binary patch literal 2690 zcwPa53Vrne0RRC2000000183?03p`^0000000061|NsC0|NsBH24^L8=Ti|mrs%8z zO%urGnRycc00000000000001ZoUIyZbK5rdyM6`g%+``B*|F1P(z?m6<0^^9j+L>U zZo6rQLy@3}6+~(Q(2jci_k9ls2_9CQIGWTHfp_CwcJ=D%C*8oD&Ts ziJ+2-YZ~vthTh|Bu0pYwk}*kX7*jzK#wkg1VYl!hLa}iOK6UbwfWQALSP|{fxOi?v z3Rmkwl4%AsR-s~fMy_a-W;xFnj7kz_F`2|gq_;v&ENtK2&?L>}p5Y^I6P|P5R*1VATUypuNRAgl5WQY9OdqA_8CB0s6 ze@F^RlY)~d&p@gS&I}ZFYFz~{&Sod4m(%}D2z(wN9C};l$8RQQlXKiSc=*uUczZE< zIsMgbJ$~$My*d8%?eW!XyVtLXeCOj0v|z8!-w~8LlW=fSy9k;y;o-uU5x|18+4(D^ z6kPrG79`z0+ih*1P0vr=_UW!>kQajJ(+8J<(^n}a=z!KQr4mJ?3PF*XdBN?#Z1?`` z5fY^Uo`oy=9t`l|$gQmMn7)5ny%#L@Ul;XP$^HQRLl0fCRedE&m$F#-NX`)D0yyrn zLy~a8qW4d#1*`6Rk9eWc9(gN^)=EsTSK)ti;fsK45G}Q}wE&}kd=F>tt%Y&SvPDgy z;UX&no@bgivDB9TYz#g(&89FCxQxd?0|)ZWtLXQ=~u4*ECCtEDF@1f1R^< zNTQJQAP!YHG67))8zI6-A1uHgHONFf#~A9Q;{i)N=>QP~xX`V9aRE6R=uZ3_!PIRG zo!~7p6&>x%+JP$rlwb8}R0>t!aibEv{EEw-Jk@vHXvhX<+Jg{6K?2n+QMpZq_^f;b zGF$4r11kwhwswzb_!OFlM5}tlka^saIuYz=d4nw@bE96%bZiN)tE4~D*;NFMr0mF%Nyu^ zLiC8(4`Rvf%@ow z!y%-fdLWFNu`=peFRa2t=PjMKMt+zKj0mf6NkN1LdvrOdh9M^NYnB(1Z^kGGjUnaB zNU*iag)d|h*Tuy3B)+@2cNbXaqAljq`$iC*@m%!?*C1eg|LOrEfPbKCfGHv#3e#>v zs3M0DWrKWyP6P6ZM&AJS(rH1%tXLCFk{Tc2bhfroK_V#a*D*n%cx|n4thIrtG|mm& zUFQ;tD20A@uSWn%EQ%F{e(pzngO767ex@^;wVst7dSsPbK*;PIPYeL@@X#3?BLiyT zWOz+2oPJ=&f+a1DMkq3jItW5sv9k62^D^WD1h%K<9Y zY+j0LGqabCP-?vzAW|QMg`zhgzeAYyhyA`9jGtrJji0;9Js9|_UIWoLS`PY1VB}u{ z1|8h=S!`ifHUwY95AA^h@0%kJT`t$W%L7Y|&gEg-MI%}}A3*RzhWRS_Acg`WR%j6u zBcNNYM7$2Bmlu;)pg7pYsIR+`z49va>=^+7eKYyprNqDfBDcXFe-7};?EIBncL#$C6+hp8+s*5nXXNbs6j==hb>(4syYddNj&}Lmo9$=-(9-PE z^1G8_4TdMLFSauTfKG;p_$3TqoPEMD0MN-05x<1t&(lw62mqZ75%Dv91>NlK9_&2J z$Iy3BD1sbXi{|C4%6MG>M?Q;qs1wsixD?R;CKiVi9`r??xH za-uP?nFy1bKf%!V2){z4!GfwF5)m@EMLjcX7&MXa8o31vw_7-Rkg)|x@3*krtYHhH z1L?%YnZze>5u}CdCMbwo!|h8^WNvlbPN(4J1f|eqJ_PRy!SVM>R0CM58Bj z#%VyJDI1Wbb?cDe7%ZxoVkk)a$ow5e06UHS& z*E?_u7v2rrwV`Vb;Ubqsl=SJxh_02s54iKv^ZD{fn*NZ8d==odyfl)%7vUOQ3v6R= zS?a07$PEuhnlxlPs1~aNZsT(tZh+EZ0zI2AALVd$W0C+zUjVQWlWA9Ud{iQg)cwN4 zM2DpRE8r%=pc~#ex+H@y_IDA`pD6!gVqvyjnw(KAwU{Ld6*N;-iz>S)#!TE!un7$N zaYt-z!H}EP=OG{f#NXW!^qt_dFcOyJ+l^>0Vfqp%N92aW*-*SIm)12metn(v#$`8@ z^DY~I@;>Ph1A;*vg9&~|x^UTek zEoZNnG-AVomD(Wz{`tGJv#}WmfEIC`ex0b3x~j5$@Ujsy(tqIAW6H41bf_f#KC*`Mi-}amgPin%^lq3IdejW?$(*-2gEpH))P_ wR8ZO}haDZ_en*}M_xFdI@Tv{g@r(W6<eb-k^9XO$6$(E9bHkM`Bjn&408?>=q z6i5PrCRgUd6e;lHOOyP2XJ(h=QsPB+f)@2dOmlZ<=W=G|471mRBPR^z@;Z&gOa{v| zIfC9^r?c1V^m+hq!sSCGue}6DuV4Q(csU%tgv&tQiYS)J1B7!p^?ezHGKQZ+J96pG zMU=*g5OJ-5-|XlHPIlpan0UPD*!O`q#Sn>DM7P4-1zh39qqEcVi?_$;Z)d;1pZ;?C z*U`+gV{g}i0nh^^_LVOn3e!Xed?}wY?|_2{|2;}&>g)i)9+aX)q6?g`LPS zfD7SxLFk9qQp8{fE==9j;U(LLb5u(@+Nv5C*a=)lS9V|z-gqe9me)atocT-!j-R>$ z4%Up>Q{Lb84qJAixP*2!Zd>=2FXM#$RX!Rgt_;hUiYN*~y>0G_IhtdDfR#d{_jooOd#`R7Yx=L^FzNVs$ZO`~kq9R0ZDFONr zE)%(sf1^p5Fq{PD&yRyEnE=W{+hejg4Prz;?nXCM*j>8S@$3kCH{ziW<}nD;#Y{ye zCfgB~Fk}y0qp2b)He+B(;|UDM<~qrc;|{*UlNQQ{$pqeAo}G0&q_g(qkawU_U`ZCi zs=yBuc=2)g0-iqy2?y}%eVIe@WGuOmZybVddGIjm@#IKAB&9? z%LL)B55rFtf;a`+FgpuGki;2cNg#^3LLXuI624f_D$JvB!C~JZfQHbTMZ#e!`~bp&XNf6pf2 z#jYB4mBYHtshzuMaH!gJr8ufw%o=BO!PPZ(sA|S0l+( zR5w89y=rFH*fZ#lEQK&vG)j9~WW3L%a-^yx_lJ3y1}?uHs<)WIl!jy$!Micv?(3Q$ zgRiy~*%?+rRH)^PGI%cKiI-*Y3w) z%TU4V8@*LMb3@9DRu;XY0Uu)hrHY&F%>az=I(23-9F$fX10M>BpZZ|7LXtOB&{#LV zFu&e^I`;c2ieS60)ckPE@I7pCq!A5H8bt&QZJ)L6cKZq%L=r}2hnZZY@REVqkp^si z;5N|Q4Fdsp5^1qkYTI3jTZIx?hb-2x&zaQe07~`9TvJ{1n>}83u;U5mhJ08uqSk>q zpeA|ZYw%TIW*v1;z@4cr|5W0z&M!~*4Ejc4GlO96peEqeL$3@zf}gILE2)chw}gQ2 z5_5A(SOLIYWG|OYuwjVStcSbA>1#01m`ev}Qj2~;2#YXM#J_JUxTTy%zFyU?V0W#J z#udJ%jV~*xIbcRlKVQB;xe=7mWNfNRSl#r?qExI`=>S`g5SX66`}6p$LLHWOpzaKQ88Cu}mH~>ilGcxp7F==b9o_aU*df&3v;*9j1JAG6y5MUgqin|hRG{ofp_*lxW) zOY4kO^`_-30UI3)J90dBuf&3EC-PQ+ddXH%eJY5s-AIKOcEYDtxG)t|T4^atT9XZ_ zaBFGmgZeCN=vfl?}QzuNfq}t`P9OW}?@pv1%&qdAvb#a8&lu z)L29bq01aG%Q~(nK`Cv&XUb}=_-eY~Gp@^zwE)95-;op;j7r{OYi(}20AE!kQ7h;uUu`hWd z;EDwskwnRwvmAU8!XhjJ^~#Un64~N`k*Wm(U&3{E;|qUsw!!Uvz7_)l^G7a%s0bOn zc_ht&Mt^^Eykiz_CuvsawC!MR{Cv|`n#+(Ub)qcGL}I3`Lbig-tMjwv+r{bm;=|?O zM{w3=TxgEn!7$=CYLJPLuLjnHwzHJVY)Pt?Lk|_Hp1{|dOcO37%LusJgolG&8??Wd zFp5%d@Oc3A0CRYM{qEgt@TCWDp)Y;I8cNG<8ORL-8a4cdAQQNGfGD+$!l;8)wO=nz zkzkPt7}CJxnAYv)cq!PO;x@>bFBu|<17l!uiUvv(h{u+tvXyVOE6NJ1$Y1BII~6l1dA8=QIrJ3!!hLie=J$G&h@;R5zUB9{1HJ< zabT!Tj_upIg@%@~C}(Zcwooj!>*0yVAG3k8QiC(sAk7Aq;g%}iX|xe&#%I&%zG!wtHZM2*=Beqo9(T~Q1+Rl$>nmv}r*wd(3bJ19( zT|h2zUe_tmr(Mjfg+?%U6=*=59I6R~!cZW}5dzLLL=}WpI6clmOpXP+mz7=8p2Lym z&>ITvLC~xeUqowi=o!WxTE z!u)QNME#Igi~d^RjdpRXayE&rC`VqeIEKL3xU0NL5#O+kk}Tr~ays~~u@xf6Gz;T# zhY!%(cF0}}y;eaz`1Qk3af{!SFh|VnT_+;%85<2!Q@4N*`!V&W6EYCexJDc|AVh=We0YQLoHarcoKL);mg=kwz(C_e7J$UpAs$UF=-eukmVoP;Va zi}qNkxbR{f3{51&*i!^@3ssSXtO|#s)sF(0^N4hHI#r#)pML5TcY8FbH2)eDt3IWJ zv^5G|6ZK$3yje>CtPr%bM3oxvUwWE~`O*hPzH&jXH_{%(I3?|#(v01fsqJG?Dq-Fr zjc#ESlXt%1at3>DgxkYOD5hq`+Bq4mh8imZnAYTX)G#&9?>R^-=0qYjb4{czm^v$Q z^SKJrCRlYS%lJ^b`V#nttGDCjc1A6AMLkay760TEwyOdi;VMgn+=Y4zI*o+3LdTe1 z6QBw-vz@Zf$Jo$tWuUW$HGdmq6z}cGU>%NV?8ZeU2XQSqh^yp)Uc^;?WpgVM-PRl4 zP^VY1iTLmarh4vY!xn}Q{V-C#;Ev%5!b6h?swjQ=Du)}sUbAfMOcOcFq%JmZ81l$~ zOZ)m@D|}BmNb5wRYu?}AuOWxnX}WZfANevpgXE9Ne%zGF6}EW>?C7?WN1wQPgz6R- zZ?~1F*-Jypx+5ERdatI<(C5pb#(LAxU0KbPS$#!g?k-XL3#!G6c^F1)+|=z3IqOnB z(^F#wsEs%BGqh~7a{)n-WfURS6ZcmKfR~3nJLxMSp zp^mUyozYf5SMyJgonAW{ebs_ub=lez3a^kwZaF{_+h|{_jFBR);E8q>3q<9K zwSv>j61!8)ug)`-{7qxA`P^ipiazq(L*&91Zv*SQX^6D19ar_c)VI6JX_z=}tv;jL zwh9x~@6yyNO3iJJ*|`&J#Wd1I<49=#(4%;|*X>j~F{ElGlQoW7+0-aW4z-QAC5fq0 zm{2YK9(@)?y=Rl9kMR()qefOg5{*QyL{hzJsJ!f?mIXij9YuYOA-V^eq>CDwG{BQ0 z|89sX4!#qj))8(4w6w~v1{7MAtY zu;9}e^pC0*HUj;i`gIuxpnq>vBZzBCFiAFzrW%lO`k%w;(ch;3o!Oz0Og^P!YX09# zx`mO{O2(JCOBAFJL;Ot*%B*aD0PQ=wN9BT!?dWmJVO4jm8>W&vQ$Vss}pK zYv%Ckxb5tYQ-Bpq zA;PDf1($AbMR)rXx2v>ko#M{)5X)yWn6HZdMviE%?tsQ1?1R&Ksu)5QijGc{s%I=q zb-(BgZ!;1{D6hl&l$po#0+}jPXE1Ua*Nth~_PYve<=ek}}nh~?X6K{+<3pvBb7^>Th4nU=h9?=W`?&8=#W%6sTDk85G$SN zr9=xtg>W5afqx|ucp#KAD4cAGh;Z;^7D9>HRZPbVxl|*L?SYI`h*5)U)q~s70ZB-O z-9nrv{&=^K0+@XDr%L&iCZtAM3P6;pz(-=7Sq#Bx2+^TQ8J0F2cJdYzOi@whqyph_ z9P%*+U1pSp1g!eyX^}hPm$Rrlm#LZ7OVd5lM#DHyZ+hgTbSrK{+B?kOYj1vgEbw_a|`H-BlaqsCZqkh#E5ZrX|LJWcg< zMa$AVM^@T0*=Bi8XN(Evw5#Y!!!*Ci>eg^2w`q=7bElkY4227^XZE(Eol;3xpT2p# zJ%@{kR70^l)pIXB5J~4UDvKf2R0>RT_#KzOuSX}%Fg#vs5S#&ML|EH7-8muAF077JRjJU-ux-N#;ACNkzL=M(iSf<^i1f4 zhXxM}qF@7RmzU4~A0_X;cScDdi8E9)&hLCbhH~nmoLNr^Wg48;E*|ekGu_Aai^R}Skm#O4^u~_H-^f&CBbUT|i zh=tkwE>IK((><=*YL7JX_>K1uEbmSJ9{Dc!rdv8`n?qNZB};uGiLfrR;2HB(zoZMJ zf@fTN1jy9d=?+%SlC+UoxPwkR?dYzwDUIBqty5?gD{$m;b*8*kG)7f9 zW^Jl|PdnK{j-!uXGR+;v3XAjG-*i)AAKVff2PcnSJ3g+~i4%(in`Ji9g7VL|kY4|_ zM)Tu}^p>>I%l6a8GA?bjv5MO}(Z=$;7TUOPjshaGB#&R!TC`eLj>gUxvd47pyV*jz zVnEmd!;c3;nUHEW?3Qu=sP&lot@-@4joLhUJ1jXT$<_JoTCK)f*>SCbcWGy7uA@|1 zX=e%OU(!xm7|8AtLuUldS6s`HuK+Sd4H6^@m#zBHwvf^Wu!AV_`;(p`TaDCgALYRI zd{@%rQM8htVQH_Sd?V?p+~RfkRDb?MAx|uop%%?mANm>)YE~-Hm>K z6D|Yyo^j#I8H5u!_B=NTT>+m$liRd1=CP2BiKPloO@0UaJ-7(vRDp(`2MQ#BGr{;h zvwJ8|vM`oWEPEDo!EJ-gKRy(Ozpb-nxP1#c2Ec#1XW94Zn<|;@)((3=q$CaoJ=b@o$hOCw zU^L#}GmZ|1`v(`JvQi<@GpDSV7y(g?ujixVZ^p^_AsTl!JUuW@hu@H!7+x<1*e(>^ zhpyd_Q$wX*8xJp_E%nA@0|0A8XwB>3D@kzwQcdhM^#LJBGSQj79uE=L}2`6`GtyY~q;?(N1=FJK5U$&7A8E$UX~tkzTVKDyWuM zR?CT@n>CikHF0rXra3hN+r%1$8*p@|JI44k6kQf84YtsJEi`gd3&*n#HN+2zT}O;ca88`bas-%X+Gc2k1+ z-JYs#QvnT6%(YKzitUoxSJJ(&);DejuexWj14$lR5(6*9gAMKIVNfhOJd7h~JA9D! za@83PNxy`1)Wk_9%9vQt#ptuE+FRi!$0^k>0I7wcdezEGR!JY)zVvfd?Z}ijg zxufBq2gYc8@p*iFdXV8r4MzQHeT#y`Ji$m3212HK{4kJHaYd*7Q6;kZ#iZJ6erC5c z;A065!-yxd84X|JEbaK$Q}WoMVZ|LgWT?J^k5_tx@^KpE=}rQg(@!q z)Dfg7p-@ugp{p$$9o7)1XZAQ{N1dN?)ZvMv4kx}-aug-Cj^>5dL2`H3;q#v6;ul;k zsaasoIh)x8kW?(4PA&C0`H%SG$j&tux+Mj)x?9+4v!Pi=cc2J)vH#$8&z4EN#z)5S zXz%C(?IEC=emeOBr%C+sX4l%ZJM=@Aq<&=Ah4Q7eMmGT|sEcIoh&&CNC5fR?^_9c91S5Iex5UnjFm$NfA#tV_IeH>8I;$^!>D4 zZzpG2y(N}ZaC#c0+`#TGG*cVWB+QA`HHvST8HUu+H5^9t8Yo}|@a{AY&n|UXSy^@s m&oz;15!6zaTa-NYE`Q>EDyJ`&bPH+th`Fln|Nj83^~41|q{u`7 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/tar.h.i b/CMakeLua/.hg/store/data/_utilities/cmtar/tar.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8089e040f37354c679cfc42ef50b9d1bf50b2958 GIT binary patch literal 1437 zcwPaW1!DRD0RRC20000000mtD01N#90000000061|NsC0|NsBN{~KlTu?!Bn2h~!j zeGgS-;0cug00000000000001ZoV8ZllA=fueebWxn4XBfgrn%VbLo9q#8N8;!KI)b zBQ|1&hO(^~1Ou>p{QJ!;@IsHh^R&JQ)X9@4PbO7#ZUNppvK)xv9h70-UbUW}+wMcp zFy42JPaWeU7@zO@{kv`#!p8{M&keiEwemTVH?0q63`?CjvO&8^K1=8wk)5+T;gh4=IUWv;!2spK;}PWB6skx(*jr9=m&fWb5*P;@l>U8 zl!wc*1w4)RX*?OLqGC~53Sk<od=l33PR ztd=SYiK7LiZ6ouwDoNQU&z@9F5?5iV4OwPMl0B>Rkt&E41r@|Xacf!L(RH`|LYlU- z)}(D&Z;KLLD?`*utl>lUL`!vBbTYk6jB)9kpc+n~zgIDA=N)T-7Y&YqLCXsO!-0%Y+LM?#Q2;9s|6ddG0+QvLOr>xX8d` zW9Ik*OlJs|>-ZiY1itGD`2O7#7;tq(OGITl3t(So9uopw5BPLubL2r{&vbmw1inFz zWd}pVdRnvLoja$(sfpRytD9^Api!0xdu5EIk38+9U6qs#$AiRQr8TsjYyIpiL* ze5&VoWua@R&TfI2F^kg$`^vBs(_6G^TEYGf5QK}wHZ-T^7>m39jV;&`EAZHq1fvlm z7zm&HfzM#ZL;g=n$aZJTM#e#p?lDR`Gnzfk37|`ndF5)_bi{-PLP-t{q#?Y z1&57oj;>pbR$U^RbHQ$~Wn2(|SDEMLLf07R@~K&lH@)VmPusKL%7!`|Q zXo@sD!$D|G(xVd>?!#n@dyn2)XeZol7=s{0?h7Uk<$83TvzMM*|}k(*vfr=c|tO2F{vz2i*G#XRX3KjBx9&cD%4@ z$G|=&?^gkXB*WwV92no^1Ne^$JXE=iaHrlifFnL~>+(NTIC^rHlirCM`tjGos6zuf z6b}8t(_&4Bbk(1C@Kp5=m$ImQ!R?EH4@s@jH*h3~T*wmWAs%k>r;Ms^lV;4gj_IAo zjQ>04-v6p&y8D>ZBB1_}4b=SO5mPj2a0fH1+$6Z>3Gpilzwe$?>|hf;_i+EK;Jq3? z$5TwchR40us^Hxk&U87lBV?FIt5@R2M^z}Rq3SWuwwo8|6ICdysp=g5s0wAhqUubX rd!owdH@(uI9ZmG9Dx>$pt26i$RYvzUul8{lm-t1ZmKXm5fx3Hq+=9=b literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmtar/util.c.i b/CMakeLua/.hg/store/data/_utilities/cmtar/util.c.i new file mode 100644 index 0000000000000000000000000000000000000000..a7c89dc7e6661a357d35c7d97dcd0bc572253882 GIT binary patch literal 1513 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 CFjbrY literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..117b2244598d8cf041f3c1f33f13a22d001325bc GIT binary patch literal 1427 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 Kw)sCWNir7fk9Wra literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_xml_rpc_cpp.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/_xml_rpc_cpp.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ad03e85c9c8d871ac9bd17f2e65660a515cd81a5 GIT binary patch literal 4267 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 A4*&oF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/casprintf.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/casprintf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..66634fcf932d52d8d1110f57c2b1cff2bb4b08fe GIT binary patch literal 367 zcwS>*WME_f14exy{?7pA{D*=mg?)codn>c^1pH*JUO%awu+Ae z(f9vEnquAv1l{Pfo?2GVwRp-pTj}c)gEt@H+jRN7{nC?(ImzbsFJC@a7rocYCYy6j zzWs4tebvSMs_pmp%-?=KS}{y@&%5(gFW2}lS1y?${6yQ2cf&^cns%0NUEhS;;=a$A zlo_aHuy7`qhlr;ZBg3^4+4F8Y6qZc<&}Vq1&z7z2o7(Nyd!H$7Y?yMgecPi;GZGZ` zZ0zM0?sBX9)^o5-%IxNGhI2i##mo9@H%#QnZBq?c<+@X-wfyp?sNx^J*A^u_W&Rfv zH0#x(8>vR>J9;FyvT05aDS8lcGc-YKhsIKu#@IvkfjOML*WME`~fO8BCj2Tci<9{glHQh*i!h7k%zWtsx>3w{uy}kt<3`n42PO1OttiuKZ zdtPg^)flh*ELfJoyiSv|?T%P@l(o{P6qT71>S{w{#Dj0`ePggb)%b4oQCq$BUtg|W zk{m2Qn|ZHFz_r}c6)w|4a(~u0-*~>G=a~N|&m=w>hb3!0C6!#*k6tR7ckz6f+uIz6 zJ!OIqU!^VnaE>W+iL`od#6s?fL!Ch}4C&^dw0>`37I$uZzU=P7%_YrO<>zospLX`4 zwEeqttDT-yPptj#F{McLVq3)D_$!B69RL5>^D=tji5o2c4o_rRUGhJ>Q?!O@KTGLn E0F=df7XSbN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/linklist.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/linklist.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2a9ac9a8b642792ecbe9a28ad0568ac895e37a00 GIT binary patch literal 1121 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 CIWAHF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__amconfig.h.in.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__amconfig.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..bff2ad53261486736ffdc6577db65af2aa6644bd GIT binary patch literal 561 zcwPZ90?z#a0RRC20000000Hp;00gT50000000061|NsC0|NsAFS%rKQJVv%=Y%U9- zb7f4%I{wN400000000000001ZoRySaZ`v>vhVSz$jE_Uq?-l&+$K?kahYectEwM=~D5uOe3^jY&bJNO(HRfNMxmpdtnt>}wcw zBbCAdBuW-wG6aJ~ncEo-z@^2Ai-)H3$d#!OWYV^{&#|{&&4PKn@ZG7uy}O5kP$hwj z#^p@0-6N-|>~O#!=LbuZpwRLt0ym&#fxt)&CvLJ=7%FXuU}T?Tlbuz?9#vz(@QArA?f3}58IB!iJcKDG zT(rS{RzmYsAR7Qr;8E9lZ0ZvADEo2_!`j)l-FAPX4ZEv==D#sEFzKF?zpbrVEi1^# zu?wovq)Jw$hNKeIa4FvLTe#o-IP|0WcKvM=!sM;C{+F}eaI+0o(X5~RBClpSQ7vdu z-b}Ld!j<>D>8*Qp)%j5yMpW8tUWUXT3M4##Z|Ay|MN@Zc@6*dddwGLkPso~b`BBJ^ zFrEd=VExK@t=vX&NlpGAs9^0y%QvXLavgP|8Brg^?7W4$JtKN`{qjkAKx03~y&|fH zyU%%7x&Iep8GH@b-jg5okhAVED^j%og_6(%N%6vC<9bi-+=og3GI9O@*3*6!SnCgz literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__array.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__array.c.i new file mode 100644 index 0000000000000000000000000000000000000000..8dc61e055452e810547e8aa985e44a2c43b96bb9 GIT binary patch literal 2057 zcwPYs2=?~?0RRC20000000+qc02%WD0000000061|NsC0|NsBJ&Nq}9AQz+9j5XB$ z)Dk7ymioK^00000000000001ZoV8eObDKsG{;prKbtkQ)U^#BT)p2GpI@wGRsDSLa zosNpc$-XH94KGgJj{kdij~4-wEH`nOjDzm>p4)x)<@Pw~gBGnHV{vz%f(VyUyz){J zg&-2}Qb_MP@X&{7DPNZ&;LtzmbWZx`ul02LeSlA6bz2ZKo z_xB=P1ewp_=XW1(rzbu5x6=W9#1gvs5S*WbIW>%)9H&P@ zc6(=XfCmY$NgschrH^Y4-<=b|$nVU(ov@i|+v@Fe2>(`diTH=l(z;d-j=*^(Ku>`^ zX5$OP(mu`{{WsRItFOQhl}7U*TKrY)Mo*J~k^%gi@-R){9G=}vvrLznuJiK!su$vE zvrU`VEoOGGLr)ea;x6PqCQpjC=%LU5K5Ixceqe$@w-7_y-kp_e;QfZ*GkE*981A*U z+h(jFOr(5;;ZYIydjasr+17e8yb#}I^Jr^N#p2ImIbY_>`=;_^p9WhAciB{Lt&6%=X0 zgJo|(KrYS|qlpy8AHoN3nerGHie%7vP2G>N%(J7ORSgcMZc^FZUl&g98fSQ(1t}%`&up_zi+5I`WImK|x zn5QVRafg$w*D+79*T5yKHMSQqeD>l{gm+XkFr_kl7pcHJ`3If<;Kjn52Rs>+p2-oV zPdYmyftlA72dI3(U32mCJjk4n;EjF$+>7u2*n%IzhG&_`8 z?SOBwjA0vQ>tCvV0988vu=KJZokfd97RTJ*lwMRNi$gd*-5l!exzZC=$!&#$w_ao8 zH>0p?M@1D66J=+y-yijPEdJkB^4F#t+UMZO3p`xPR5aE%l+98pcc5w7P%=w+I?ElA zch4#JyA2B^Qw=a?+m@}s(RKYSD36k(7qnuDtl!VKMq8n_yBzE-&^FtNkXzHjQKUw1 zPwRL@?{_4<6{oG9=Fl0k6)s=j1lG3IO<7-yAZv?b_AYHZq_#9C;B}L+DKl|xk|;MiYhQt0cBy%t{8UkRwN9x& zAXgSWf$S2NakPS?2F{UJGkZaraoQtf9ie*Gds z58t_(g{HrW>{6gnMOwMuEGTzK*w@sPFD@tbBC>^6wY)p71Xanb9l2%a{O%R(Z@H=nWuU?_Y6$F2=d!{>r+P2 z&y_UG7&@tc)$3|K`03rdQH;?|}2@fu;&BI{8_MWnC<|A}{O^ARfVNww2~Jb;3;-fhSfx zmgN4ltq5*dW296B?esIcpMDcvikohMiU(ibxq9n# zi(8yzpibQ@%LdgP0-dh5elc||+krp-R2`K6@kg2>B-OkH_GyA$vIDq4A5RP&VQ#1q zF=7OozI8sQ{vYX}MtNW8FnD*HUOZ0@_{))(FPT)~@iUdZ8P-dn*+h>8?rJ zjYvV5sJ5$XQ$w|3GPNg`BhkpLq3&pgs*l-l0H_3R4D1^F1aPiY!>F5y{~A_aFw{`J zFeH@R2CW?GHq%@(XY-~ZXQ-T^fHPs5PA}{eLrYZqRw-Z|_UjadaFWo5>R7!*+qwr> zL5FBln~h0dlm(XgGxGVDM){F&{T^jl&Gc`uD76IMp4(p-EbcY1=eCHeWR@yj~=98~bxBRsh nx{CBD=p#^v*E%U*2xA;LdJ!|$h>)DAc2%%1znc69?1y!T{;B?0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__authcookie.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__authcookie.c.i new file mode 100644 index 0000000000000000000000000000000000000000..6458e011bf71c49f3769064116fb5ff71581ce14 GIT binary patch literal 1388 zcwPZ)1(W&!0RRC20000000k@n01DFp0000000061|NsC0|NsAlYiIpjH*Qtt+x$r4 z-UdyA)vYoB00000000000001ZoV8X_Z`(Eye)q39WGHGIg41Tj9-4KSEYmSjS@I+* zsWA+yEYUGnSu#W^X*TS??~amUr)jsn%rI=4cl_?V?@mXbkHIMq50$#z)i88MaPjKZ z1#BMRce&mETsD>bobHn1R!$08Pr%M|FuocpsbzI1v&mpQ#y12qQ@XCyrm0m~KvHDT zXbGwSjWDS+I~!Fb)dOtHYOgK0SM?6c%6ykiO(^>^Q(KiLgkeEaNjS)Auj*Q6aHz^V zmEoe^B{hCX#L4sWUKO{HmPMxMkR}v5x0m%>TECurK}|!s?K!1ohMtYCF`YU=u7sLw z$~!W3vJeQqin3Ozw9rFo$PtfVj$uuDPdQ=GG*8rCR-_SJJSTzyPZa5iV4hingD0s}@LV!=ZQ{kgcY0|vNW1^zXku^CL)Xk=hVV&Mm1doyr+PXv4#2|ozo z<3~G0|CcYxL`b%`2KHeUurLHXz?UnRBMjmOwkJ3XE#RKxMlKZ5$2D6;;fH{KFIj$Vk49U3`ge&H7TCfic zGqHoU)xn1Bmk6EENN6*AX;35(Xu6%zM5){IREV$+l z3opU-LnBxeG7EzU+k{6HR13|xo<<=zx^YjiAc$6i``(Cv7XA$igJf+yJu@2np2-zga~N5D0=nTL8)3zG zNDjP>d}FUoj*&^9YK7d|-V9%~Ok?)+b4?^Dcj6Wx&Fme{1`V$zR4+h_< zBF!5dcW0mXd38u*oEKYlJK3F`*nZS?maENV_tVooRerfu;Z&i$XSfFNd<2Sv)NJE%YD4b%k&eB>++KkH3OZ4s$U*o7Q>h18+%Yw5P`t1vSX2G$DUt`>&KgE88HHAUSUCB0ymOs3STj#jD zF5*Jo=cD`|ml6X&lpiNVg^NNK(9U%^v{#Z`I$)?QLox@Ui}e1Z|7H>q&_9ip}CBTgFq@ zcizV|w{WtCrl?jcSVz0B$+3;GC|{C%XG&y(bjJ=2Ubc59r%akDc2?0G-WnH$z0yW{ u_AtfUO3GnRZK-Et0h`Uti~dQ)KWR->z^ydFpV2%sV1EPUHA%ZpCYYZ9 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__base64.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__base64.c.i new file mode 100644 index 0000000000000000000000000000000000000000..4e215a555e4bb5ce621e7c5e30257238e1131ff8 GIT binary patch literal 3428 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 G;HUU_jX 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__cgi.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__cgi.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f716a2a4ebf8e42e600690215cb8111301e26ff4 GIT binary patch literal 1435 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 Z#dfDM*K}w|=2gIpui7EY{|8w;yaL;Z)=K~Y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__client.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__client.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c5d3a954768595a0be0935d5a4f5a44d627e36d2 GIT binary patch literal 3346 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__client__int.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__client__int.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a0b9391c11bd04ab456fd88fe61c702b1822d73b GIT binary patch literal 1647 zcwPZ-29Wsx0RRC20000000u7r01ur20000000061|NsC0|NsAqj2GV@RoQPi-|X1s z8=h>hlkWxq00000000000001ZoXuBVZ`(E$eb=wJNFVY6*J-!61$$6rITqkpo+KyD zlgdbROiUIHQi_`m{qH-Mk{i2ULxHSV(4?|R-h0luU-bFe?=Se{(YJm+tShrA@}g3* zZgN#O!s1y@L^#kjw@a!QI@Jvx~4`S5*n@sv|XuUb>LBcfX7-?u=2^dvl-~klTi<= z2Je^Jtc5cQAEN0F)+Onsdt@5J7gg%)-1EFwYFPs+QU30Fn#_Ydm`33&%Om_wa_?0~ z;~UHL)*0aQd0uR)*7C2{(WRr{i2n9ofrDDo`Pu#!V&AqgZP8HP3uvWzlqP2(aEw!> zSP4UCyM@+N7yGYQO|!}Gg;hl^+Gcg(eZ25IxCx9DjU+*}+){VesY^x{+LVZoYF1b- zp#4rIwcTjb zP_*7ua*b^4(rMY&1wYs!w!NUsbHu(bs27O7mN(zKFC@cQK`RVN%D~k ztvs_cLXS}EPmtr43I7xs=9>bTO|Aw^4i z((N&h)w+RYRX?}`jap0HHUs{^hK|>&s+2`K)TKS9jWA*@5piTjRlyjkhZ@dH){ADk zVYetqe|EQrp9+D^?u3y|i*!-zwJa5KuX-Zo@(M_VaV~33KwukzVgM=>(`!_dvtjpB z?oq4KJ8Y58WzH^h)7E*fCY_*@baD-L1aq{oJ!Yp}JtS@2^^#}kXf@L1I)}%-aXjP) z)i83aVGc#_&@uXN0zz&75PCY{Ek6esA&2&&4hC`3X@y{h_e#P@a4@mLX^{ zC!DC+;~wxmoPB8(0)wiunloAyg+^CUb|p(je*ff9?kWV05z=gQ$75GmJn1TRzuj*C zhoW(WKV_3kr_MEoiahX1V8h%|;Ux+CR2M6wYu(!3rR$w;NDEA(M^WLt8w-%IYz<=+ z)Tv{;)VmkOpFE`7x|@y%HGs1G40Pu+ciwUU%G(;JTqq9e;rTLf5}eX6Z{ED+FpZV5 z4b7!A1B&WmNIuKV+bpBvapD>k(?}pXrmDJcUHG6d_g4<1)vdvWhu_?*T9_v;wYBYs zp*HS+goUl(8l;x0aKmHZ6hyaOtA_R482yO5QQ4(|yO-z+&6ic;M0K|!SDJhdUG+D9 zemndOnq`H1Oohe(S+^i*xY^fx)1cTX!bb3ewyp{}=wgFpZrIGTTSxB@6Py;6KuH-F z=U=`A0*8Bw?0|r0*%tCY!a^O(-cqTH_IX<4+&SW*Ie!TkLTMC=_*r-tFgCnT!;$;7 zYnwHO+3sG$7b6~};>nFfGy>#9$+uRNk2c5+titq~E4$;|*c~i*MsCp(%NHmPKKTLYW2A z#VDFx4G30f7H2e#uA>awvUtGm*wB|JDIU{xm;@7i^e>}nl-)T%<0zZ4yDPOe%Xh;A7#}wY+zD()FpHBB_;@<(w%Mb|t%c(Qv+<@gM zO2QyxI?qo5Gy}NlfYNywMEnrG3&F%s?gqWtH2h<*W)Csmo!vUORzH<*NPz%d=zFee{(+yu2 z!X#PDvnZaOvY|hgLNK7)Nr?9eOX^hfS&J0v1sPl0 z+X=7GGutCev+!yfU4^qC0Oh?xpU)MUbnW?weLzFzw-sDTfubm{sHr`{p)G=FFXJM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__config.h.in.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__config.h.in.i new file mode 100644 index 0000000000000000000000000000000000000000..219c8a689da685420ad1da221a3dd11f14803e93 GIT binary patch literal 1119 zcwPZt1fcr>0RRC20000000bWZ00@@=0000000061|NsC0|NsBzL08iw0I-F4oyBp& zVeIpaI~B4300000000000001ZoPAZ>a^g4;efL-Nkg5SvESa5so7oEv@ocDKA%!7i zo>an?u{O5EN-_*Hwg0}|vbiOxeX`WjIepYO-(17DvM`&3C0b>2-OoW1Aw!EkW z=1Znz|SC+b%LivK?+NaN6zq6l4?Yxs8XRz zu2LeZRAcB<2)Juouo`v(60RVX_+GWHq|ITM3k8WTH?lwzu2KOj;dVkO;%Q~Pu%bn@ zNPtn<7>$Zc*h!arC4}e)*Ec~B++4#_K(03^O&_9gNE9!R$@D}i-`6Cxb2&Np5hSmv z7FM+#Qv6d%d?-hm8slU)B9Zu5D;x#F>dfsZM(Ax-$s+C1s>F;DN$vNi1o#F;^Cb77 z#+0O0xx)0Nn8X6L8tdg>NtF~8zP|NJa4W#mj3Nq*UDO@R84IrJP``N=98VuZHXg-u zHi}s|n}uIt@Y2HWqA#OKG(b#3k7$7RVa)LAaQc9lv(4bdeIGtX$aTA1E?FFp>Dq?<2j@Tfs^TgA|o`^%&w*1|1UWnH~ep1tj|>{Gg=)M&A0wg35DQf zDKID)WGH1(NQ?PXsqF*4)$KP_jW|86T+=iyG>xSi!Q5v*2jE>ZT01@@U3mZgFnv39 zl)5CLQP_m75rXJT@M-M)YF#RIKmYyGRLIp!o54~d8^F05=xnXp;F-(1$8J2DfE|~F ztL3~Tc#S{7U!zZwC_tAYclf)~$@9lcYl^cxacBd;R8R@BBu8VX3(fx{I3yHqr_(Xb zd7-u)Oc4IMae$j^Q21-^!MVl%T6>sJ%xM>bAE?j>R~ZGJShz@SrO~Ps$~`u}+fL2l lab0-#8+_=(A26RSBKQPf!f_mZ4*vC}-_%X>{STLO&M;}|7>NJ? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__curl__transport.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__curl__transport.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ce6c2cc0fd1d56df186d8164634687102a799c34 GIT binary patch literal 5383 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__curl__transport.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__curl__transport.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4c28456083a83a2c039c2d92b0df7937556c68ba GIT binary patch literal 189 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 GYXe8NW{o@m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__expat.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__expat.c.i new file mode 100644 index 0000000000000000000000000000000000000000..fa728aba586ec3c5944a6572a80edb1d959366c0 GIT binary patch literal 3612 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__int.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__int.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9a7a4f1e5c6aadcdc892dc63965fa3acd324aa8a GIT binary patch literal 1601 zcwPZP2EO?K0RRC20000000sd701c=B0000000061|NsC0|Ns9>EYlp5NOOqdTVXou zP&!ney3=6*00000000000001ZoV8X>bJ|D{z4I%&l0$5Y#re3cYY##QqbiJ8efZ;~ z2x%}=5gKYVGNDrW@B4ZrY;2R=OO{HonCW@_`t_R`UG)F@jh`O<>hpb5>TRCpr4*G( zWo3rz-tWw8bH{60(^_PO(6o}JphB!jvQ51V);`#3+AfrUdxBI!T3t) zO=i&mo|$%GRghZQMnaPNwYpRXX+!`TuJ6uRDa#QZPQ>@@|(joI3yQsv*CsCSewm)Z$x|6D$GXzJW}X)^cSVC<#0?$iknX>J8=vOQHo z6zttxRgVyqRHGrImeoT?K_T}pUuPQSv=hJ1-cNUVeW1{Kp!XAGxDIC1_5MdEdo3R- zWM^>tCidw%tJjyu$gMg0m^(GxX$KWsTqd#<(DseVw0Mvh+IN|)q41?uy@fr{{Zv#L znpm7l16Z?GMSXG(Rb@?Sx|ow8TP81Uq*eyeT5L-`sHCBtH0xf!-=0JnP6@NtYS*q?i5+EijfSE)KKQUL+7LY1{v9@V zx3x#kI9&wT;9f{)XYADeIeq*-_MGv^^CssY%!9qd7S$kew<*tHo7%J;>{I)r%$A}Y z(3=DQL@3Y(Z{nVO!EJhqn~Cbdtj{lB@+brpQv1ltboNsCZfz^!;uk9&t+TzWpm=5K z(*PNV*!3?eH~?+3Z(@OMVc0;Y^pMrIF|U`OTt9(dKS&|K_VHP;xQ4~Yigq;$Kg13QOHujETL-5%G$JE&Nd25lStTOBr zzKZIBH5n;w|Ek6?3hqX^lDWO722e-PR_Kj11})oa^@t0Tjn-XXD+O!s_&7mL?NwPb z3a`U{_>-SM4PQ~K`Nr!w<*GnrgCe!C=RKolOZCW8ogxf^Po<2^#h~30CGZ&LIqhKw z9C1R@yv%S`Yu1Q9za@f%M~WPXpw6Pn#s9>myRAB;Lgmc{_RJ1VyFfpby(I9mAhgWN z`dN6}Fa|y@!xr~th_@g?Rkjg_7mBPwS9N<2D1)~j_Jh3+aCR#VZ(tVC8-=5(t=ZHE zTF4A<(F)UTl{Jp29rv{}3-Rg7R>4xq9@1=*s{A)i(SR4#E9Rs~xNx_7!y%5*vJa$I@%#ZIa zp@|>QIo*T_(!vR2-%VytNQ)#~1d&DKvc`Vo&K&>R8xIL2keIw1Zyr-Lb!M~UGV$+4 zl_L)fozcuf*)*tf?1!Ekb2-mXE;IwV*?^*j=lcBM-Fc|Q3GW9TY~=l&APAF;Hg>L^ zE7W%OAF7}sZW4Oe%ojRD$ta5bIEg*F3W9OOP=JrT@Wyw&=#pkZWCcqiZ-6ARW77i# zYGE4Bqa^aJZuZ^@lSS+Y^K%B82DcCfWF4#?TaAOctr;2x;XUKB9<~Jox}AC$4_Q*H zn!{Q|P|uAS?I;pip=W$lEX}>EnSbTYU5{r22D!U$_k#5gpEx;*x(gnJ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__libxml2.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__libxml2.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7fecedca282f0660f01d390dc89554757be69e1a GIT binary patch literal 3645 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 PfH2o@QlN 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 K`}{Z9-yr$&*~x|g literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__pthreads.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__pthreads.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ebef4e2b2ad1efc68da0eec8ac447a1ac4cefb3e GIT binary patch literal 1317 zcwPY|1={)m0RRC20000000iX#01E;D0000000061|NsC0|NsABL_|NG_gC@QYm8x= zuRzRb%+hlJ00000000000001ZoV8ZpZ{kJ}e&?^4Dh~$;!Tor@cx z3+LEN*w)x+y-p6D`oDK(Z3xMcRH|Bp?8P(l%{Sl7u9*zMt#*5@?l%Vd?f^c%fBymQ z_ApbrHn5aZkARoi7@VR2>sEu7wbTzXANPhs{6ZviRU57D8l$Qb(lUppmY_O7of4AI2}J)ljVuoU$rM&jyRs(xk|hP}95WflQqu1cINk zGAffJ^iVYvh(|C_X>EDWIbqVQNYz$q(g;5ONCXp}C~_czb>n_xdGv}@R=MrxH7^^@?nVFY|yhAr;X7-D>0rdvr|EcFJvN-%rk3wM&{0eMv* z%e>M!8)!x7ZDl01HJkcC3p3+v!5YnNm36f?kJQ(0SfJj?j79}R70r;QAt~E&scYf| z7K|?OoC^@)EWU9f2Dn~E;WhV|2h&?LGH{Z39!B5<9=Kr;M|_&ZVI<(|S4W`#yLV(F zBqz89_GK9{ApisTV(D{)LEOj*V$K9^l)&{9j|W#HKokhV7<|6qF}lU!h|&?zkC710 zV8J4Hjz66#_j!D43C(yMP`VirgryV3+)aEZf@KmdLt)XVERPGi98-$L0mSf$4!=EhXc)5=B7keojPv1Bf%1^dFV5+}MHb+Cf{ zmY@?F3C(jB&K1_y{|8mDA#M_}1@T24L^2gIkCT|eRTz4Lpb%cL=$gAsT!J48D_A1f z2$RH)O^+z37MgKAO$4{P@gQbVlq_Q&1_J_`hc_q;l65fJvl@qitr;~6qg%oyJ!}g` za5HE4JR(W0Y7S{3P(3#$v=dLvih9N;#X`WYe163OmytCjpc^jO06WG7Iq){~jdN>j zOlgBoL#1*ULVtL0 zTsLJl=(mptPii-1t?q5_V701Eo~8J=;#m+3`Uf&b8UDk?48gI9)EBm2i*!myN& ztL_)~M#mC?UW~PQAqouXe(LoseQi>0>~hrcNcBB3IY%TdGg+Jv!O(kYIx6R5{-{*> zTErpY5ILBpJ`a%Nzm;tBM$&UZ?IfyFnf}Y+9By}~TD<*vuII@xw4$D8+-54O?9X$_ b-->CVX>H6z!z;5qC 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__serialize.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__serialize.c.i new file mode 100644 index 0000000000000000000000000000000000000000..bd01b5553ebe39ed4a39774a635308be8b409a2e GIT binary patch literal 4581 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 Pc{$eY+s^+2Me*kzyt~;u literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a116e3c21528aaa55757e1ff2ed8ad4f21693798 GIT binary patch literal 2894 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server__abyss.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server__abyss.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7468d126f1a0cd91ec7202edd36a46c3078ba03c GIT binary patch literal 7187 zcwPY$9PHx&0RRC20000002|W)0Az~*0000000061|NsC0|Ns9kKAu|4Oenw@CvDHa zn%d6cTsZ*%00000000000001Zob5bobK|&?-~B7FO3heuB-!4b-P#(Dos(sH%vxE} z=`oMXrWA^VB*qk}<-;0HGXMR$8vqGXl_Mkvd`ac8b=A&fe+Le5q^ zT)J`09kvRCd)I*<@xqGX9}aLlFIc<&oY{fzxHu?6C^&A(7B|*|fC0JWepF?OE=Uhe#v#{Wc;n zp+*sf2&~gd0J-PEg^5*4NKRlUOYX;(+O%WXj{w?3wzOg%x|SDZgr^Nd!1^+1aX&QK z2;TeFk|QpJdIGzOU^a*^n{wm_z$;+fcY+Xj16l#}GKe`7YmOs@7R(I1#b(efRv87e zc#ZoinT16wZX>I}P#1Y9L?-bCyF?M<#RwSwGrBQ{Y}mUVy>AT+2EY4*-aGTkxMG(d zq0wNi@#v;EV6E;IYxlaNfq6L|^#()s_rJG>(Esodn-Ef~`;i$R`U7J)WH7+I?RQK7 z18@he?#MKTASm5-XMAOL-_{vGVcp({blxI!=dxwnwtwHM=zi?Hl;Bb!m3Y z(MLk)+8lLpx@$y`^;?6H*&cUV1J)l8`n@4R!)0BW!*-`--Wpd;21vlf%y?&XM{Ic0 z>U8vF!vAusyfgsA)@6r4(KN8iD|2A9N4T8qR~u*s$aU&$*f-iH{xCimu#(o`V_kwB z8vi|pPSA+Zu3ERPx3ISA15|+xX^#iSE#eDw7>+N8BXcw!8SHJZcQr&%0Dfo;-kEJ< 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 VRM%E4@cw-)g-yU#{|hvH90c3@doln3 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server__abyss.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__server__abyss.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3b2e50fb007aa70da49f715492a806d942580b32 GIT binary patch literal 2862 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 H^+8@Jy-q>m literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__support.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__support.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0c4575c10298c82c09b6b09db972cb8c1595d7e0 GIT binary patch literal 3239 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 Z?Ds@RS<>L@%GIlqYPv;h;=lS0Bktf2JwgBg literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__transport.c.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__transport.c.i new file mode 100644 index 0000000000000000000000000000000000000000..56504d11b7380002077c50318f937f112dea0041 GIT binary patch literal 1954 zcwPab2VM980RRC20000000&|K02Frs0000000061|NsC0|Ns9{&;|jc2O&ztWXprI za!8_x(5K1(00000000000001ZoV{3WbDKyK{_bDVN$NI|N|C(TFI)B{RS0353j!UW zIIg=Z7Qx73gFwei9PL*A`#n8?g!K|{a(An8q+zD}>F%d{dWH;pq^9dl7Tqrk>Zo0M zeSZEU%{O!vWqCnUA+kQ{NiZNKj!BB;l!;tqpF}t~>-F$Qwg{uV$f9{!L}@~P5>lB9 ziW17xG7E&9nMaAAZD^5ZtGrJSQL&^nlfP+MFv=jL|1Q6SNlDDk=&Q(mG2& zMIi>o(l78OfD^~*LzLW8kS1ZoN;#vj-bxe~JpOU8=UPtbqVXw6Lr9hgG82UlUm4Y( zr=NJKW`sfTNzx(;L?04SPBHKpW@lE0_t+;G4Prl9iHtd-*N2Y4V2hE)5yTmmaPI%( z3sq6pNMRb3E0Gj_le8i7kzzfgm0yS~^5c9*yi6Dax5JRZ{WKsK^NGI_?2B~0L{=GQ z!~W7-a6Q1UltdDy8EONofL^7Apep7fZ`^`q)D|tUTt%6ui{gRvS{DoDYY}j%KsDkT z%D709s$BA%{UQm*U+#_WkYioBw~DP1##7sRuaC7cjqb3hkuq~{ESnT_OsZwNwmzD< zmhI3lzbFpmU%uoeMpDc>(mqUW&2b0{`ebV8fB~+pn69ol*eIrI%*MKT-6x=sX}M(R z6WxWFYxUV2108CTbwv}+R&VgAjC4bH@1#Rlx@)qzD|V2kitXy^%usBa&g`k>NHh*> ztUIcq=o4)`AUFZTq`lWnmz*2LFxp|_?@^Q^4IU~ZLqbV2h;ppkn(A^myO9dc;GEGX zXR4_>53~;&B2nzSehuqrf1g1Ji;Ol_CdxHp>pZ~<5~9v*ZNmP72WK{NT-}|y8eLn~ z*kLHZJDUAoS2gF749k&(%^a-{Bd#LN0|jhh8ROB+(Is!X>1wt;o4UGXb{Xi#x&<+C zR)O|da%`D0W^iQLcZ|z?$Q1PH_C~|J&6G;k6z0MKd#cN5ElF4fpKdEyGPP?%zt&7u z<5i1+ZgofNB4fJ40(xcnR=JZg&SdzUEBICoTcz8V872LSl<|9=ov(#a2aaCXjCI9G z&P=_j*&k4Ecy{(8N`kmVyL2>qqjkVG2`s@W&pRHPu72&*ss+S-gCFm>S zfuxRSYPb7~D<54h=;YCFqDx-&EcJk=-9wCssucq7A7-{H}_(hbe?cx0eNJg>V& ztO94wrO;VDO*uEnfP$r;?NB}tXVvmtgZT3{&V<^4T(dv3oqZjt#(zD_efFf-wYoGPvd=)9=; zW6nKv(WF>V{R4qxtDR426jHA%O&Wgik&V?on$N0Do)0TCgMgydI*#PoBAYQFrS^j# z6&{W|&(AkWu=FbV&bs>b3hGs(?%D5>iK=jDo1i?pXJXrU=c<^kpq8YVaq?jBhyeU z5b7&Fmp~NmMSjfZY+I-|>{55D{`+>+e1KueV&1@DA`LgrEOFJMz|TcaOk<sh0}p+kG;7f04yoCs(u7Y7FCi237=sxK&~I2YUJD%E_=E8}7(hVUpa11`Z9&D8`_ z(4_I#6ybMjV*B(%1=HQ`k}tA^CidtR`kIMGc!B8S4gAIp^I?gDe3OaD_VxDxaR|1K*&p4Egj?Cf)1ao6S5S8q-6x%k@lKqu%_l1&QVyxHYvU;0pg zABWYCI)4bZ|2eA0wZ9GI^83uYeiVO)c~;w+H~jn$n6KoXw$(Y2vo=V#iuoG}*w6TP zdLTi%l_!6Y13oP?(Oer|hR3(`@TC5Nm8JRaX(M=@EVJZr{Y$Igw)dIK?>PAL32)U= zTFRHM`<1+Ph%8I-0-oavP`wmZj_!`H9_4r?ibH`0j!(PO zz?Zs}*1P^s>ePQipYD-N?a4;ezDTBvV?y0FQ~!N?Z)A?Q`TtpyZ=KzXwADWwk;mEB z6I7u5-+-r20^ZCgx?$D(zt+)Dwb4`kjlDnIP)DV=9qFiz?ds#>`U%9k!<;~@S05wp oHv6NS)se$ZCgzj{w*Rexe*;;kOrGlGUpIV;fg^q8Kj(w#x z9zHwa)u&bf00000000000001ZoXuC;a+^pHedjBB?T6SZt(0Wn;@Sszvakk8hG^pY{ zgSdpCf@&o|WD(>``M8V|0fVt}8ZWa*ECKwRh2hwm&mGltZOh^Q+*eL8~OlD^X-{qMg83!k1N1hZTfDlK2$*#nVs{i>%^B zkd^DasBmID`15D|l)(UChYia*3#H=Kb}ca6FbN8of^vkGKhf)0ArB<{CXXXH8&n+! zKSY@-aek%%{#rRjwt)fc{X!&FVLfc@p|p&%3J(7o%ViSWmyKyN5UzsaFlew|XF)37 zY`no_qDGDV;j97b+}N*zEJ}oJpI=Dx<2pnFq4I4j#4*^8-~KqEA4d+#Z5FQlFi+Qs z*h&4o0-vyPgyBFdbeob?r2bu!hkx(v3W4xhDQ?na-;}cVB5kiSEOAx%h4@mV2H&fM zULnAbNVP|`6a{9pi~k9}89%N-pUUGd{-ct2=FQvinErj#T^3#yj;#KLVE;3{-YUT{ z*g@aAD@VE16p_^_RB~28?b~ys{&Gb{dT-AyDTO`u z`1aglPh;47yHLLU($jA)&t;gkhaff`*lqmML-3WRqAS8SpMFti88#1o(?-bUp?p<3 zC10_^QZ%unxpRC?IxBr#S1HfXH{sFXOF=eqz`XxCpf zz0Y?-B&=SDhv`ZOTn^18yEmKjAWjYhLtbT-!NQsReyuttGcP}Zl_gsl2Ry7q2HU*G zlYAqftiw>0<+4tat}7I;O6y8I{zjq8t)&q6=nS{d_H<|% zz}W#tFra^jy>twkr}O`aYn}Zhwq3(}sPX=`n;rMB0%zJee0=}@1Ke$478i(b3sDS# zW#I@^3{#qwwBysU6VWoI_#6=-jUv9QWlu}1xh@5Eicsct5ehkS7iU4S1-fjMLwJa* z6=1VY|KpBIC~1z2;!y4YLkJ21xJjgORiS9>BHzT3RIk0DEb}DEAE@+kYmQ=B?1Vz! zrK0*o&mTt5sFk#2T25h(*NC*12Ury#S3(W$@(oS3inPhg@+uAmo?a`wAayJ6$*l}; zpA$O8-3(8Qf;57UFNvVTo+2F)j5Df{+^^vRO_VKCl!tYSXIIcAZH)QIalQb&4vHcU zlJZG-nJ@zGharReV+0(>sgv)nj6scAC73Pog*!p@fV^_LSLOxQ2F@aMn&Yw9#9Wmf zE%c1F1xuW6qAc@e^+0)Tiv`NH2&q)?)0k?gpd!hdaw+MCFaili|L{3;!L?=_SFH~C zY&+H!o9a`T+~TATs>kP+1FAU%%`&;eCLXsO7e0ShU9^Aqj;07nHE%(`u^ruY0Y6|1 z+h7QTxOmg$Om}gin3~~Dac>v`qJU{}FxY}|G~?Eg+!4^rFTt9@LU*(|zN!;uFn%iu z%@{Yy-HZr=tvZ}(o}oHmdyZ|n5{<%|GFLNHw$P^|KoaN}^ef%u;LcUU=!c1a_M)8V z$WWaa5=y$kD5uQPHBR9?J!z;Jk~4`Lmxo3;NoZ4bpLP&bY^QxU{UPOHc^!>dqC@boT-b%aww8u0BL3T$Sz-1=Yf7 ze4cnNle#gJ>yG2uoLS~M0nM#z6b8wv`1Mq3Y?(4<)W~vf377PcDHy`_T*q;TB$cYE zq=k#>X`Ik{mgp7rDW*N z=8ft1r55l200000000000001Zob6ltbJ|F@{@s5?kEbdD2S1Z|QgM=98APHQ48BOj z$(>5EvS^ITLSpqWVRv%>_WPaFEhK?S>{)wjr)nt*E9&mk=hfeNNZH>J&1klW{i{hT zYR$ShIyg8KmkVLWz9)Y5N25Jq1cBfQiHKz);~P2J+uGT|SM=q`Ptw@G%u+uJg&U4U zmPp};B8jrtlYHmW58Zen#!);?8e;CJ6A{JyH_B3?GL1(5*!Ntb(GYGd#Z1OiKTYLG z%;M zv!21KL}o$!ic3lU0KOt2!%-B&H!up)(=@RW+1e9e0vikSquF(Y{lVyT%3|VMk@D08hsJ4# zN%1z2vSsznrbFTsS54>)%yk;VJ~x{dU6`LtNMiIqH#Aw>{GS0PVUVb`j5FgsWUKu^ zD=;Iu@AXYHrhOthJ)0Fau+0WGaSYxbRG=*k zzMui;M}o#-8vEa(7S+Qz^sAQE!J_b%Q8bpz5ZvSOZs3FG{nUR6ZiY1 zQr4P5y0D?WrbE<9GqEf5>6C;OUGsg%dT(}{CXM!p(1m52by&=@X@aG8zA!$si~|;* zYz5xbWyy6LY*Asgh0*$G5%YR7{J^%f&-B_v$sRO6XzlNbo&Bw?t^J+15B1@L_35m$ z+dprLfz#f7B?hS<0DUB#;D_C(kJIjlG9ioVNKLE%j3Gg#f zA!&i20=)AkV3%GTw#yzo2<&zwCaDt^Z?JjoA7@+;iW5dV-dg>E`e zxJfx0GcNofkXLSin>hdYOPg~};E>a?fMO1sS2C2bONm^T@TnE&G7d!I#r`a1AnQWq@)*L>4CgRR}s{0gH+M7u4T18m=%e{$^M!23QXNmZH638o=V_} z54fPPFpW^$DBwmi5h8?RLgI4vqEa0S9ZOD@?1LFQ1C1q7u715}I*r0$p=vG^@$$wG zP#i_GfSJBr%#cJ7A!G%hqC!w2y$p5KLdleXbP2<8ap@AZNR`Pf&Mx>(_tLMaCPgBM zGdI4@67g#`3B{Y~HU9k7^`?7KeD$sjfO$&9&sg##ulbOcqHhrwJTDQcvM|Rq{4+{*e_R|Q$~IMWoVs62hlvtexUQ&i z%37~@r*VaJwy}(s^<^$BD`#0v8uV@9-FEi{t1D@w(ti`E_oWoiIvwv>42N<#Z*xyO4JAG%mUqd=d#Q z*aoGkWXn(`H+j}_c&zq9wK0jZV1!c*I1uh^CSC5tsJx(Dcl=b+7zq3#yk zzP>W8V^n7GG?+zM#Y$GP%%|SdCC*Z<BdI=5I{(tnTH2WW4Rt$;j@Iz>vqL?M=k-S@ zqm>5?2?QU!;;=$U6~eJ&RYU7=qqa=A{>%#tVCFLVp)d}w_EcdMEoV^i2ZV}-m)UsC z=L|&oAB5MW+wP##+2b{8hlYTsMqXaFkj}?r-}6yKz=4sAUm;xJmW&&MJ=o{^SZ~qb zJ@~#WW|2>_U|1KxmCe;5$QOBeud4eT zqbE@?QuPD{8(pLq{*6N&!l7^EE@7t|s?Gy}V-!u;B3Ra59RYi* zG|z8nH8*(LEJ{vzn0cp?u|Y%*`S(Z-<($mD6GiINS*L&A92&N5_8lC`kHg-tHRz;% za?9|!)2HF3I&Pa(tNoPw@slUwrz-!y|6Y+-eQKromFacOBf!T7q5yRh@xIwa#T#=E zN41wAcH&=B0uU;A8F3RpRiZi!&pl*22b!F(uIW;%t+;_h48N=S;?2^Ob)6>hQYaOZ zmkRjJ|8i0cjsc%MN8sXK-tOMr$$FjNw?}fluRQ# ze>_30O24+;dRi5AO&c7e2$g% zTXwsQrF(rB3q9XpA!VAvLJwdn3Oy^+j_zeq#0+uU$kCt4)(6_whevK^`CE;#|7U4(vKq2#L8|8LkZ|@hpc}swUj2XYU zzO7sEn2K2CeEBL$(S9k~E_c^R-q0;NuAA)tW^-#({rU2U;`eekSK?y`iY${N*d7FTNmznTJb`m2hj)$CB;{!Ldl&z@1Am#V!gGwL_5uKIw9 zSiRO%ba%?lH)_hEyjn6r3{*ZR^|CBXpB=^C0ipJWgBbY*`a=W2D+QqNXlyui6}{zi}H|;!d58 z;&b<&NAdYi_hZ?pDED6Y#1&MFRtfjE)GrRrx5u*_@0dozx%codAm}QuVl8@PCAO>e zydK-mpZ|p_mMn}-DHBjcXyGd&S^D%W16HIfno7bB^H#ZsE6@t zk#fN`Hh0!_U3JFqc;T8?vOoUN5jQwy(GpN_vd${dW0vVYie3bEhk4?Xqobi4tyIFx zX$0M>^{UCLTNd1O^sYXgSUqY^$IKfpq=AXr=v%=f^;-N$<@?T7C}!^v_ekkAw?N`xMP-^w(=;&(?ivVE1s%# z>5e|wk&qjY>=)6z+Qlmw#$DtUHMFz{#2F4VhJq_6ci+DSG44+d^Q EMEitZS^xk5 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__xmlparser.h.i b/CMakeLua/.hg/store/data/_utilities/cmxmlrpc/xmlrpc__xmlparser.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2d10b3f368fbcd463303a11230fd7c71f727bfb8 GIT binary patch literal 1653 zcwPZ@28#Ir0RRC20000000uPx01ux40000000061|NsC0|NsB#Dg1#zq7OKGKFD9B zQeEI33nM}R00000000000001ZoV8b7Puo}!eebWBeF7pkw7V~>t@gn<4qPe3S${y0 zR-zaChFq;<|N`)k+0HaO``}oH;XhW_&s#udH^py6qL+Ct21|Z5mTQm~8xRG{P^1CbLaj+q+F`%Yt-~(WWtE3u?+u zof^4wXA52LXj#_l#-XikS5(&WzudHpvMw{bw5etchjeYIGWFWFt;wjW%Lkj`qFw10 z9|kyiUT$r1Pia|XmNzww!u!^y{e!PRj-OF$s9f$jrDcYd8#q~;R)Z^}>bvrRAN7hb z2!4vPwW)Ei!Zwrxk6{jG#l5GTU^LCOU7MOUqF-MUfx&?ydm`{N+ko8LaG}o29w{r+ z&Ds>L-Usaz@hI`UrnPQOZFSxpgqMIZ@X!r$?zb_;xL@eCVJ<>_gQzmhj``A^;d}tE zl1!16HF5(_0lh9;L!HlUv!?~i$Sqppapz@IF54}~wNDmmDwA@mV5{XEsyRuDE?t_2 zd69teM|`0oih^l;?S?+#dJzU!YT{4m>;?~ga+CNX2+5sK$P4CisLql&2qXIP#f`B3 z=!hRNk~_a4|MMdBqlmCUT`pz{Fu)Dnd93^h2W9Tfl8Kt1I|LM(2QkgmrHZjE4jeYe zKreSvFr`aB^e*t#JySCk-w2_pisx)@$^>cQhOzRJnH$m~2^T>mXzbQRMc&L+m;Pi- zAOXYVU-|Qxq6>F68@h?#CtjZUVCbIB1WL@n%ZUnoFJ^ZRR~|G2xtT-J!uJ$k_@8}v z;)XX)4;%S^C0K-qj5cvE-E;VM`~y`G5HAV+OXdq5qU0=!Rh+~=od>}rVkp2zet4xk zKl((oAQHin$ai2QcEvnUpcWqE`Yef*=%(heABM>yR>Ay)fi8k;2m`V%c27j(U@ksG zqaeItT-HNE;L!DjkNY7@Dyq4xMFjP{n9&9+VHJAD17~UOpU>2}Klglo8Zgkciu@Bq zOhvpvb(XK)8}Ts__c>PJ)?E%#*O7>lnvy%YQcS*Ij68@`pEJRfk)p)A=+z(7==9yY zcc-I2f7Xv2EcXsIK&LHzzMRoQ<3QJF5~vwVopO2kxz=JX0!y2leKq1Lhw|8SuzSN? zU%2`(sY*zVX^Q$#lv_uDq?#O-^Otp%8!mz{+1tpO=~fd2MB&|_vU2A^Q!iSPmIdsskLmhRb_j_k zjn(c#^?G9Q)*N9nC=3)tdjavfN^eE}ak?K6q(M}rNYCQ~Y!;p39IpqBGQNT3lttyf zVNmC@27Mzh(ZIT}KG)^IeoT{6`b-zDm03H|2D9!ik0N}N^b+QK;^qm|O0zMv5ad={ zmpd74PC2Y}Q*Ivp1CgaIY_q~Tz5ut51lOktzRM0XSyeW&9~QSO+nT2062~Dxjl`*Ybn`*y8}sB04kMIyg`v|AbKBA1 zACBI)JXo>o8G{__oX4>H73!gkc+f@$=x%o89Rs^vy)8g?cOo2KSi5cPzh-Ze18j>l z-(=kojAN#A!IYHZrMK;C7~jmSms!~P`2W-Jc_d%W$Jdzh{@N7ZA^YUs=v$j#;r%8Z zNUHcx?>{mxpfIJYP4N%sE4Ld72^a19pnh9c?{kA=a%e_sDM|}YjaLC%AVsvzaY&Gi zTg&gL9l$)n;LCuGK?|t5+E+Y~uF%c!-hgb*cao4?;^nmw9k9YHl)cOO^{J*5Ny|0< zMbRxgevfCUk9*fMo`mO7MF|^sM&>ZWhr`DPZ*Pb6WC*W2neg*=;ma>2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/._no_dart_coverage.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/._no_dart_coverage.i new file mode 100644 index 0000000000000000000000000000000000000000..006ba46be0e9e03257c257780c3d779995f5476d GIT binary patch literal 104 zcwS>*WME`~01Y5khq4*}LqXZR)+HYjcM6u>MQ9FicQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/_c_make_lists.txt.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/_c_make_lists.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..9e56be32c824708c5b9de1feffa22fc943cc14f4 GIT binary patch literal 589 zcwPZb07is8!T9xSHPr%inD_22FhAP!QZ(mxXJ}@ zV6$%_uXpc~2?cCZn^#pU?hQsMnx~OZGxWBkC`oWk+|eKJ`*>tGH1%HR97-X1FMg0> z<0NS1_MT~w7&EMpTt7c~IoMsAH;u(Q@5zFflC`{p+k>dPCkR!RtZBX6vG`Iqu+^N~ z`2p;emF?hR-wJ7mtiR6EhfqcR(HIv6v=s->tOKSB@N|B5-qyBqzDA0sHM62L=?GZ} zwS}f)nirug<+Zf@Hn=0hHtb5CLOl>9a())^&@v+l6d6mudp@pHv2rkz#iPkpG bTOY=j+bY|&OiL7HtE|N> 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmzlib/_r_e_a_d_m_e.i b/CMakeLua/.hg/store/data/_utilities/cmzlib/_r_e_a_d_m_e.i new file mode 100644 index 0000000000000000000000000000000000000000..a052ff432440f74382d5534d7083864448b074de GIT binary patch literal 2714 zcwPaT3T5>G0RRC200000018?F02V+10000000061|NsC0|NsAdYf5PF-!isUhlrYB zq-Igg-5v7)00000000000001ZoP}6jbJVyJefO{E;)Sp^Vol9A*L;o<)Fds>p`1G0Nlm1JftwOXf7pYERjoSnX)lf{Px9bcSZzJGaj zb$aoR@ZtN#`+sNI_f9S8AV16>l5!-dky={O(JE^ECXo)*PwwaS(Bb#81^*t+Cj-jw@q zp7z4I(Vqu1ijNNBqe|AD@N#;Z30tL#s+x47w@S1`Bqz_>T8;r7QU@Z++io8AD!= zy7Y*IBU2~*e~M1DH83O8;eU>;F+SObb|8OUH@W$d-m z4P3BRmc9e$7CJyWS-Sg}UTGCPEkm5LyYNxo$*$)8{M0ZvaRUK(of&PJScP*+IruHd zL5pn5ewKYO!2+MlyW_S%o-w+__oKlY#JQh=KwW26;epc5+cAYQ-a_~+Y%v3Sb1tqW z+so-xlWUFjbg#!}!Q?XvFWCsry~oeTt_qlioav48Sue^~Y3Xu$g^xaJ_3bI$%L~M` zR?TQ-GIEE#xa0ilLPCz4Svb=^PAe!S0gY)o0)whxHw`QbP+{j3M5xA1PWCrjt&$2-Im4dZK z`ny&#-Qq#3R)+lGMadNc&LF1zrZ~@x&5%L}z~$M?#nnp+ioKTPSBpRX{<{36Wr?F!b^{Eb3o!7VL~3h#-s6ovQc}tgKgf&$2v8XTz)H@UP4uUTy%C7e z!ILNdf(E!zG7fZNb2>50<$XtQke^y~&xp&?a65_MWRQ#4mIO~htxVI4ptr%LA}x

  5. 4;ALQUXV<7=ar;seiIT z3;(+Q%Dw-d+4wJ9`EShkmKI}u)fSh)XD&7?r%`pgwLAOG{#dVTwL#TOFjTv}W^jVk zY4>Ld+DsCFQ7+WC`QNJRr#)aLmCH^e0gJcfk17VAak2`RkeG8TLE1yFy4?Pun;Y|Gj_3Q#Wa}3Qd7+chKE*y^bB#piH!E zLz)!1iQ9N2c4RxWy|MrO-gA;RumaNE$`>d0`}%p`+-G7YBR+#57@VJf7#;^Fjc52S zB(HDz?O*q4KpUR?1nw`u53Y{mqgLN|Xtz@b!7UU&$n_Q1r^PR7 z)bfU&gWxGeU&%K5=M(4GfF5xN*@$zXvXvI|*uu`B1$&2wzr!x46`q(D-2mK_|B9+M6phBxNg5nFXsL zH{1iF^dMD{n9+)$;AWOj6JcU+V-c#8k*_ouo+Km-`2;tG=^Vx-L>`erhE@wpi&4^$ zszt2QJA{ZONtxwZq9Visi6Vtidyr%4Xh-b4uT+${I*=a>&&J*eltg2o*&oAj+=MAJ z!g%m`I5|1LoWSS)#YKNKxq|ce&>vlqun)u0I}E=-Wg7T0)7+qP4I<4F!J|s&^I>#^ z-m7cDJF#~Id!2nsuHXFbfxq_()9q+~|7h=kfLOutGK1&H_3J)cnqxYX(JwiFQ5@M+f_@8kH3(cSJlfoJgrPo%BB)2ji=8Fd3e?{M$0k2 zZ{ZKPVM)&Gly0N9p(IYED;a8p8MEmy`=mHA2U`?pz8v zugaq|*8xFE;utU94`6?SQ#zLv-zo=; zMUSv@X4oNT*pfX!z_1WUj3H?@W|aJCriJ0fc_BtBxl40MNS0K1nU%C`Stz%S4DV zzFfDOjRvApT>#JeU#ctM>2P!mue#mtLx;iS%LJM)4-XHU4?|j@i3Y48bWMPo1xK3~ zIM9yZo&lr&*)i;O_h0_BTd2gNgXX#}#zm}8aHJ)?hlbD`>_^c?BW5nyBqTybK;0{t z;xbdVD0f4kF3j{iPr0<~3yzY>s;F&I#Haw!B_%d1@_ce}c}$bozdv-^18U8Mz5uIY zXPfQV<(Xw(fQ#pzRfvQ5fWvRZXe-q_FyQ@oH14wYBfuaYIO9|BoLv{ocb) zp&^ezIp>ywxwDnMl3lH(xEm!Rs0*2C&VQBy?QOInhFY^E*`~2frw7@nDg6gNnP=O$ zkQ@{G4zIvgKwktQNHyBvRMBG H0(70Zjc^4@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/curl.copyright.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/curl.copyright.i new file mode 100644 index 0000000000000000000000000000000000000000..b0c2d226c15c129f115a6f16be7d523ca55ddecf GIT binary patch literal 787 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 CpfnHw literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/easy.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/easy.h.i new file mode 100644 index 0000000000000000000000000000000000000000..09e20340f0878ba01fecb07187a402f615b144c4 GIT binary patch literal 1324 zcwPZ41=IQf0RRC20000000is+01IXS0000000061|NsC0|Ns9cZQ~T}ewe3Nd7*eA z*uNS|LrkOq00000000000001ZoUK-2Z`(Ey{qA3JX!;=uRJ+YKY|V;chLf&FSEq4vxRw)uUs2@Jiz+#f5wHc?fAIQ%`$ItnbnEglJ)(zQ zKGI=yNxLX7b;knpPVmefk=O3e{S1u8?RPX~jnaaF(D!63JpA7tAS^vkgPw3{m=vQ!(g zb)aCW@tlxYCbYD3B%%gf}mvtUErE(T;squ`*4)Z;z=dU6>5tobQ+}IA~MY z!=tWAXXn$=<@oJvd@<=(F8Qy9eSlP@R;nVgcS{wwQMittf(VLxFRN=%p%rG)n5-40 zs8Zmt>>yybXqIdOy?HmC(HtV7+QtaNXGN7Ym@#)2vr;)AfLThA_TJ^T5osS{GDtem za>Q@5+|C8HUv9R=6Qv)wmr0+i}wSI^Un*D>r)VMKcp8Pbix(GM9fIUNsQqP54}R$BsyiBrZG z>`)wJ38ghv@Y^=*;)acEoN`1bK`Nf`)+GR-pbg4$=@bzi32cv_xyMQEEMz5KvD ixBna1YxLvuqTU(sZJGA#dEfc=@25kpyZ;9Q=7+bwOO%WN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/mprintf.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/mprintf.h.i new file mode 100644 index 0000000000000000000000000000000000000000..aa8c3bd08312e3f0196aee3363b1758dd3f7387d GIT binary patch literal 1173 zcwPaO1Zw*L0RRC20000000Wr-017z(0000000061|NsC0|NsB7dw25#@6N+2S6f3- zWnYF4^~vA>00000000000001ZoUK-WZ`(Ey{a>HrU>8^tXi}1)?V1I}JjZE`W=`NZ z$N~fqXz^rmkVt`~Y-dfs`;M{{S8;xBl_8TR@7_B;9*^#dL~=|ZiuxDhljzU0@o+Rb zjy`)`8Wj>ZC&HZ{_js@a&puK0M)Xiyd7NqWH^%m1>nOT~)rY*UseO(lgtg0Uv<=U@ z+`?An64fk+t{+9u5na33+*jy4uOru`5pr{$eO26OF-t9M^|xW~!-rqtXV~A}edogw zlL9k1w ztDrRKgR}G@S6n2nB~fUwD5se)slSeh=p+x727_7Vu*grKS%r>pUQ6UVGbku(VO?XC zG>&SKs=Q@LS~`@Z)RKru3o_!0r1qhtW27tNYV{38t!pLnquaBNmxGcN40L+uFg)+T zlo?@sxExMCpI%JhvNs<0Mw2TzJ%--s%7J|uj*e*i1(9jMWueg!xdxFJnLyrfz8UfZ z$O|o`O@h>)!(OoOvg>`g`%Ad@mh$ajfB%3wq{IyjmIb^aw;%U}p4SyJ&PtAOXe?)X z7Nj5BV?xmoggYP+IZ2VwGLDBQ188}7R(aELLy0S0bbR9?D~)?ST$22xU%vxiy)H^h z5YMYB*x;|pU_7Fvx8M+>T8yojHk*c0reTK|b7p-Af?)f%N8FOyZxva>T{6B7!8FX3 z$Fxim)c*lRJ_uvPKNwj$Fv|?(%%-mgo$go%H$xuM73vy~1jx`+72I%_hzC3e&}RH2CA< z6J7UknWBVgDKZNSsx#|JSYU(37F3~K!E5$wo2sOY-JL+Sj?ONUu}7C6SMn#qVYDM; zM`x8~BsHCDDy37T>MrEW0p;%0-vwKvHf^+ECZdaguPvHHx$AsqgPFlitkz+C0H~dS zO)*)+$Tp7L0BYlGOt&{+o@@pp??tjf!CD4v1ED=XXYHjtSU|t6XRFrLI|3 zXRKgkU|_CqXrymwqF`udWnf@sYNn8ppO%)Jn5W=cQJ|p0#lXOR1%ertDl3%crKF}Q nKn&r6ansQF#c2F8bb;bLbQS1)bR)|!v?QXdfC&HqJs(TN*S;n= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/multi.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/multi.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bb7cc92270baf8af90e788895b260eafee44cfd9 GIT binary patch literal 4013 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/types.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/curl/types.h.i new file mode 100644 index 0000000000000000000000000000000000000000..723f1cde17ba1045519936a124c1ea52ea3eaea3 GIT binary patch literal 80 zcwS>*WME`~00AK8hq4*}LqY0Rp3t2dzu(5$|5n)E_WYmeUDKlsNT5_-OCc}6M4_}e KHAO*7p9=tdUKiK^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/curlx.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/curlx.h.i new file mode 100644 index 0000000000000000000000000000000000000000..43a4baf5738757e3dc33b9ff2d42b834158236bd GIT binary patch literal 1394 zcwPZ=1&#Uu0RRC20000000lAt01dbR0000000061|NsC0|NsBRl&bUZg(1`E^=IgQ z5xDF5(cj(x00000000000001ZoUK<~Z`(K!eD|+dBn6rjuHB@#j|N3?zBIiWmve(8 zMK3@BftILkF3 zskH3$Oke!GXGAaP$tUo?0Uo^ljH|-@CqwrzItYGH{exLw@qWt4ly*~o1jqFBlpl2D zrv#0axBMLhPZ|2kzVV+a&-@zjCwefAXP%pUQ>gpI(b4%aoxFMTJH4dSSFe5@(|e(n zOzFl+y_CiMnBGRd=Z{3J*Apw>jY&EZ>7=2$O_U{TVz&~7Bz&hTl-kOOgr!K@uuw}h zlqQ!*id8D<{L|IleDT+qR*4D|CfS&hY+}kZqC`}Z3K>dO)f~Af9GMu?K^`gVKv+6u z^aQpgIay?uIoP~Ntszkfm5L<{2}g-@`PpymC7iN*}099}EO zFKe`AQ>(;eJs`AXmbff53_%NkA_J+%R3dQ-5B95XO*FcCkssZjoxc$o4QJ?Jc0==< z16m5J?3ljHZ$Ezed`n+u*VnVf?HzskK(oaill?tkyvOz{7%NDw^Fmq}FGyv1s$|sK zd^V5Hh!tN?l5s^RlT(hZ-=?o#Pfvb9w4I%vo}IjA9X52a&gmH@{k&&7LfK$9-ur5T z04j_#*2}JRn3f1i1WHPY6f7gFg&jx`EI?K&l3q;jfAFH-0v&R|**fBykzKbBJ#Abk zR3*}2$v~Q2&Bp|}8N_7P!I76DH7ImD2JF6-*r&1x;Y^5KSxU@Osq=oPN`J$CEjJ|c z+>(k(OBpfU((g3ZeAujw-m=+gmKRF9c#^z>8g=e)AUK7Ei#mG4t^z#)>{fxG;W;`U zp{R8It>?&1%Lxfg9LoZ3*6iuV%eA2uk7GF*jIk_*C^j#d4%C%E-mnxAlCHOm1B9vk zUZT(>2fT!CyYFW^&~Ee|jWh7fb$GTNT_VWSuCIySU<*Au9-}5Xq#`z(UH95xBygn5 zY{?=P$X`MCC|jCcQu=-}>bv4pCaZQqVCi(AXgEt{4us)U47~+N}Hrw{29qc&{U{GPLNe z6O0yS#ZJTJ8iZKXB9mKVonZ0aa)6+MEoEr3Hiy_xR&&V}KQmnL8yVvgV(*d&N~=%_ zpG{}2{_Egg;*_d(?Iu|1$mco)twf=Ocj9=5YU8EXqwB7E$C`Uc*GRqNjln)(8-E_M zW#0qoK1x3X%POmzMbzoHZ4ZG1++#4&Ly3n$RUcJ70<(RK4}*G`haqtf6F=gU9q8}~ ztdDvG)VJ6+IX7dzf?h0Ue_mcRx6Z5U`Qr8ihxoj`bkt;AKc&O1MYcVBiX8ZYE{ceY zNnI+tq3`by9BG|1g(@8T7{+mA9ZK+o<_^{ITU*ckDS+z(pG1Yw7RQRvu1yw+W13HY zQ(ptT`Drd(m`v!iZaf1|hPsYXzIlZLsUQ4PuPnH}xVoI3Uocm_qzRYILr)h|t6lS>p@2~Y!4Z#Aw{*vA%+OC-LO{r&W5gcan_E;{o!~xZu{eQZ(I)mdWfj{fNF1i z;6k4=>A^Hfh$1woxa$9OtbwZdw5dHNTx;o40ijlY*H(<7 A=>Px# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/dict.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/dict.c.i new file mode 100644 index 0000000000000000000000000000000000000000..b6de4f4c4159f1c4d7f0c817e01219366fd69666 GIT binary patch literal 2229 zcwPau2uk+=0RRC20000000?ye02~?s0000000061|NsC0|NsAW!tsEF02A`@vU^u( zEjSLv7!oM}00000000000001ZoaI=1Q`<-q|KFdY&a+SKO+fyF4TK#_fdgRvbx4UYv3ol-d`sd(< zpGx977XMHoWl_<;S`E=~FXd zZ*5=_+@P7Mn#_3uiI~YpH)ep}1MaafVLrGC_$={aKE)dzf}As$@qj`1>iV`n{Mm-b zIrrwIWGPZe<{}Mzn7bbt#LQ#-qt+3*u>>(gaa8W}M54k}auGJsHUr7xMM65ryc;9} z+>b5~+$kDzCCsIaj$17+je}+uLCY6j((>{YH0N?rM01OdEZilCNP-lQCd>xnv|%B9 zKBG@e3KFAq8t`OpmmZYyE*2F= z%q3}=rE!RcFc-+=3rw{QY3Q?9F{|iv6IotWlDC$p^w$RwqBBtMjG;fS!_-Z9V#BZf z$;H*p1b*#|MxEj07Ou{rGrT2b@A|_tEI&tMF|bcj%n~#n17Ab|XMS$;yS{&nc0Aei z?2mBRY*TCf&^kD39sUiQ?YP}OK0Kl{ETQ))g6~k~+g+_%?Jqp^g4AbFPnb-j=Dbd{ z876H8-J8+CIqQ!*KMi{L*`3sCtzFpP$FPS-ZE&L~7Swo1K~;sOH;MGQXwKhONHGr| zR%yN)uhRlPtY$vf17Q8x@xvFy6!mr;Yt*49JwuWbcEaH)C?{S z&+9UF!(_(d3Ny}E=+CnG%4s-24+IP=oHAzrPAPVisz5@CV^ElUa4xS${o&-?8TGCQ zoo)|sI1z+Fq%k64=n?KCRY7Q|X*&dNBB5YY+b7#IQ+8ZYQD3ly z&!*{v@`q-Jd*IF87RY%$AUq3&cH6KAhm8{|fa}w$ z!1N*1)575)CMSG=-&iathf2Fr(SYBTeiZ6>9%hT!aBq#yyX|)SHLgZgL1;JIHmxkI zY``SyOfVw7;-(CABtAUiqN(NQnfIFUUK<2*#=_*G(|LaNWl_eEYE|;sphP#|)hQg5 ztVr71%Uz}*z|zuhPT{DHhqKSQwo^E4|3HL77RpCEcRM>(=AFCx8s%=MQJTs!{+=qj zw|5VkA@}U5wwWjIg`A^&exJ1krX^;~QiUc?;>&8C_1#mgMk~-0*z#TK9-`+x?TIkN z3Q-HeF5TEL6(Yc<#qygiO@mPOFst51kt^p$!=pAlT2M`NzvU0ms4LmSa_vDV=Y(+? z8CuyX2LFaa8s|XUIf*Qs*#FhAY`S1Jf-`dbM=nA z**@u~l$`yy^i{b{iPS65kw9N&K24`$qTBc9{n2=$cjvvTRF*2t6f%;Y{kQ18g5x56 zq*csjsB)J|?}-#a;1s^EvVUMKY8KCxa#b(noQ!UIDu0Na0@0sl4<}qGk((rszB$G>lMBlHf@2bJm{roAv@}rPgbLOzavEPA@Id8Ub|&2m8xsB-6EmwM zHTDmU5!x==-XPolQsJWw!bc=bF)3+kR?H2m@aAzQzjM6P(33?`5l1zTznd+Rss=i3Q;x-LHIaHfX;Nr+ISvubR+C zGWM=~uDUXBQtOps zZDgu5jL*R9X5w6(JD0u7tI=(?7Bsq{W`+6c*k);*vK36(TQRfV9rSy{3DjZG|4F?) z4Lg@Tye$d8^hV?U)e!1;@m*Nou1O6eJj3wU1hs;~ouUxgx_^nkNbd9e%0uE;iGGgv zpEv!9;I)ib~hGOw-kI=YCP|b_lN}+%>3WQq}VlAeu zuQf40(2(QXx6fJc9N+D#TR_vQDdvrFR7 zwix~oz*{%(m!S7oz_*6uuf^kSJTJp>1wsG(nEFMaYNBceN>TP+QbnbfiAsvacz4D( z6Mm9!O7*ZrDf->O;y~}-`q6uSe*)Zm_coN`L-odtC}V_QK7t)sdsF_;C*)hsNZHcQ zv6PLhgED}6rBGkrf0YjWFZQ6>h1;W9+vd7}3O=hK_>O+4&_7sWQ?LDIkFEU&;I64Q DUsPRE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/dict.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/dict.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7562518b9bfad44c1efa72363e8f946fc8cf47eb GIT binary patch literal 656 zcwPaJ0&o2Q0RRC20000000K||00iv-0000000061|NsC0|NsA#P$ibE*@3;BR0`YX zWX|;85nL|-00000000000001ZoUK${PunmQeebV0qC7yAHM9tAbZA;v*ryLq01hI1?0e#Ypb4fkE6jcI_KwK@Cn_Mld}kyLMtjT_M~TIpCeqz+VedZ zt5w_4w+Q4RiuNYeBv%g3WPT|uf%}C@Njs7d4w77I)r<#9!{>xd6@~&RY>GwL9mpPTD;~ch4nBQ!#TNB&U3=bE2G=YP4HyrF60RGqHqRcAygq| zOe8#V@5^2srGBy^DiX!AzoD|*0@@gIAqMnwYbsT+$)2J`y0MV#{C~RSM`n32%gkPR*JVn5-L1mF)BXY qsnMEGxfEWY6$TMz#uR8tqv`nT8^|R5c^A%*CTZR=Tk{tg9bi3&XEq7| literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/easy.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/easy.c.i new file mode 100644 index 0000000000000000000000000000000000000000..ea76244a4a0dd5b974c08eea67ac603fdda4f88f GIT binary patch literal 6985 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 b{BU^qU{}1+qJA+yeAf$VVfOz5=@jO>=#(MQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/easyif.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/easyif.h.i new file mode 100644 index 0000000000000000000000000000000000000000..96547550b581e4b11c43e79ff036762870210b73 GIT binary patch literal 765 zcwPbh0s{R20RRC20000000O-L00yoA0000000061|NsC0|NsA5>p<^h@ET24WS4(j z;cCj%s-1WM00000000000001ZoW)gNPunmMfA6O_0S{1xgcfas4o#~H8`Y+QXc4M} zWI6GLcuVZacG70z!|$Ay!6rsunC7Z=a=PCipU>{LOqIYC7&{wI=i^W8yt7U3QsL83 z)P23tfi7$utofi^KRrWdKeWeBOv5k?o6^YP?! z0Eg+(G7CIf$a9GI_XOK_qlyqvW9kVdjcotC^FLf;XT`2Tns}F#w+#K%s?9{Y*un zU|Gevv{~@zh~$)rv;m8G?zspj(XOl`OxGm}d>WMGS~@>jt*nS5JAhE7%TjalP&!b-fT9Fyp8ctz6-GZ1~X#=}kfELqj z^Y-3%{-lsfx>f!uWxqh=v7_s&uZbq3Ek4nzM&p>%Orcw7^Zg|sotN)88cD_tbmJ;b v(F9=S4`dEUrKkjQPC-fsQctk$T!1J>7wdd8YE~P literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/escape.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/escape.c.i new file mode 100644 index 0000000000000000000000000000000000000000..d1375521073857e5f19ee624057981e7906c4a74 GIT binary patch literal 1923 zcwPa62YmPd0RRC20000000%<=024I;0000000061|NsC0|NsA0ZCc4ybf$}db6AIf zMzu&39AI+*00000000000001ZoXuEmbK5o&{;prKR_mCQX}zWCT`bEzpX0Qergp}1 zuE`}H4n=|@dKADTK*?(D|K44Iq$pQOI@jLZ(Y8ba`}*wS0q9=m&%0XCfzMvP`SbC@ zZ=>-#mp`#k@0Rxcd$2#K^#Q*>=cET4m3!ZX&#T;nV^sXo%L(24{^uNhpxEf6N17je zy2TMxBh7P}t#dw4G&tuj44yy#D;&YF-~ZZ!7lGg`g{fv@#`3ubCy^QXTN2#ebrn1H zfN2QQZfWW!;R=+D^(x32;C;$NCKQVxP!KT{=6r?^T!2m(#5`qie)am@IT#7FGW}sQVP-KJL2dR<}ECZef zGjtSaNVLw5d%dv8({7nTFOs3^g%t$dL@(-W-eDk%U=1?Upd}QFc|ejLEM&xE`bJQ2 zFe_#$SBbZY2;GUOCv#9NP01GOai(nO45lSS9*IGQQFBdSN(x1;R*76}2_lwcB`$J- zjt~nJiX=kqK_McR8)1`u<)XyZfc(+&Y~qbT3JeC?XH%F=+b|0hS04O0x%uwu%?dP^8| zhtynu>GhxX2G6kFj)%kJ!BYZa4HtJAe2H3r-qmZhdL6hh{teiLu))Ba>sP=;h?Nv` z>PSLD%$04VxDX+=mBQ}R2s#8H*vfQPn#wRBz^nqLeEH_pE8sEV$MPHpWQaYMBM1N# z!53VFX%R7KE3}q%llErlB-Cq!COK^mVS|=kdfL!FQ99ysTNH;p*4h7=d267M>^lry3A{PhF5EE2WWLX)9Nr&Ne|~lOkBjT+s=SDLJ~s8e(hafV3-!W2j&N z4o$iisZr|-CU8%|VXWsEw;hVZF`uppCwBIPa$B^Wmo>9#;fRf>3jWAog1c$T96NJ# zP{nG<~Y`M|}eR(XP`WzL#1|J*IpZ^}GBa4YWy z5<|JjGunbcR|)>%7=|Mfq3w&nhIuYm$~L`T;Z~<`H8ZpKAEYTRaRe4g9roY8-5A4! zN_(dkkBxUIJFG*F>ap!!$(co7;O4hMzc#(skZu|Vh;zmqDqch3QK_oIhx(4CNPbN# zruYpXzg2oLjrZ}sBZ%z=r`W#>L>sx+rNq9NH>v{xZ}#$AhiSYhjMutf4g8a+q9Kc!tOK96QSN$3~=kgS01$Y z_xJn5w{7AucT_8sGKb@*)}JlaR&CMmPX#d{9v|)Db<_PDFNcS>V@pew5xZ0m4{7Y7 zwIzIutYlUTogM|ANa{6J0zibggQshP|9wnd5`UxUk1i7GNEEYNPLDN_mo#3IH}Zpa zKgr;`m~R(r|CXFniAS-7-Tn7?8CO5-(fZ!W!Ip22j%@0u(ElXmItTj)FdkDI5mip6 zZ(mHlo!peDydT`|93I|oQ>p1A{KfS`sRt1YIl_mh`Z>qt8%vC3MMu;C$Y0%Y21ryu zv+tkYj+&#L2IrI#{aZ|+4(!q7pfNdoJUOJve!Wg`)Cy~vI#vV;BBRg2*PG>J0CTpg z?owgvj7_QWTQH;ynDP1Cy#L_gd-&`bo@m!dbmg)8|C1-EpvK>&{?7FxuHziuu|2Z5ply~Zba>u^ty(x z-T`g7pw>#Wh3YY}|_=cGnbiT J`meDguON8sxRC$= literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/escape.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/escape.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c9934bd80f3776e277bdb334fcbc4b4223bea35a GIT binary patch literal 670 zcwPaX0%83C0RRC20000000LeB00ig&0000000061|NsC0|NsB1m5Ly)_Y9=3+X~k8 zOXaLwW-HhL00000000000001ZoUK${Yuhjseb28rw0&rcXE!PPXeeVL&DPM8mL{bH z3P!Q7V+}9!Qq!NI zR&x4&qlHuK9cgo?Ja}#p_tyNR%>O$(O<%CR81>BaK9U4)keBoX`ynqlZXoH7<3rwCUEKM^SHco_tz<^pQ4Zmdlgq4}@r%^(C83at(7(H%4o5#C ztV)@cp~%M6aHXkLj#4ZMmNJsdZH-D;4^uFli|5jLE?9eMbj;iYPj=x#jX*DyGZ0H5 zm6$P+@F=~nx=E7NR>iv=B)Q34lD%3GmwxekH&Yg}5F41v!yD9&B81Ec3zN$t%xnq= zt9quSE2B3>OsDh2SU6HD)MA_@x0Oy9?<|T!8Y)&TeVCllE>NvXv-m5Ky$n@~+G-|Z zFE}YTY;}a1za85oH@knO*!kL+{NLkw)0@L+7K4M{7{l=aX2MAq;b}OzzI&YDsrT^E z8%?IT`;Ojd8j9TvM^}9OlF2M+U0HHWZXp+yl9a!49u4y@_~b=JaTzVqjys{bJ|}1A zN&6$WTes8cw$FnR8w}PJju`cRBjMi$1`U1Vb*;Br@c3{G(itD5o`;4EM(DZQ_EAym zEOeFQ=JV`11T?Lh#!|{;BKWlhgdL9_Z*L)sU>{k_0h4iyS@r;60j<^{Y3`TSFRoc# EafAUri~s-t literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/file.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/file.c.i new file mode 100644 index 0000000000000000000000000000000000000000..0a25cad7465c6d5e63ae248fa2747dd9de27eea4 GIT binary patch literal 4158 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/file.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/file.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d89831b327cfe3733d4f16b2091b8fc93d0b2fb1 GIT binary patch literal 668 zcwPaV0%QFE0RRC20000000LY900l7s0000000061|NsC0|Ns9E1z^uEJvbtbDQ|!! zIqchboF1P500000000000001ZoUK&RZrU&uedjBVN*`L3kwP_XWz{rB+ZC;%RiUbo zDp@9W8c&HG*$xG%AHVAmh9R-5(pn0wmsht$y4nn%bss%kL4WCJ*Dwi1D-p$98UlCq1 zm1KcrZ7R6TRJlOLml9ScQY|+eCAS_XB{-1_EoRV(Sy2P}xC<D6T$MN^%*Tzm)o$*U(Zl@>yBJT0Kj|_FH%cpH5+led+72vqctmDYbh;Cx zHJx(7Jx3?P!k8Q#VYEE{_6CZDf8K#^s~ZyXsNlY`?+`WMH@OJWmYR0mHv9#xsdvq^ Cy)nlC literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/formdata.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/formdata.c.i new file mode 100644 index 0000000000000000000000000000000000000000..e7d485d2c1cf97a5022c238b3b8abba9f794313a GIT binary patch literal 12302 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/formdata.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/formdata.h.i new file mode 100644 index 0000000000000000000000000000000000000000..26951a68ff5e927b61e21ee8f687998f516eb4b7 GIT binary patch literal 1386 zcwPZ&1(o^$0RRC20000000k-l01R~i0000000061|NsC0|NsAyE&QyI6HF6_Y8s%S zmv#EJ_%td200000000000001ZoUK-2Z`(Ey{qA3JXbaR9RJ%zrY>kUyUec__x}->4 z6afkdv~;q#P^3mucD%L!eRq^(D~*eMse)J*efRG8?%h#OWv(;KAxX|Jul_olEoRBP z!Bbk18t*R-Cee?(1`xrcR}%gcy67G}K3MZNrv9*Xl6-;YkGww9{jneu*t>j5M)0`H z7Z?VYq>b{1zbDCKfj)C?{4rtA&k28}6>?+GQ&VlNTooRMrz1Fe{rVSp0mm<2{v5-Z z&=M6~d(=y`s~Fy7Vdb|%+}({G{u%>%5Ng~)Eeh$tncQ!LMWF9Wrl=ieARJ`qQY)AA zAT{^`A(sl_^zy^a{Nj%oHib+J2HBb#Tw!XJK_S)%7E_e#2BQ+zgUQLAz%%JQ0oGm` zJ*L)$;p2)@t{zzd@&7~_3#ek^R}i; z9QCthp2KDtv7hP=n-=`EKYb&h#AvK>$1Jyg-<=&^16AaMg?&tLMfB>%D{_VDLSvUQ1#v|JU#Gh1@FG~ZP&Zf z2ZY|*9!DAKuUv_h+dD7oJV!g-u@w4)C!V3HLlWhdY-}2mn3=$2T`42(YoM|FHa%*r z4SNJ)IK-kmoI>ldn8;!bb839ULh^CYiAa4d)c1wa>t3l8iK9s{BosL42kw#CRE|%n z#Bmcw9a#klgQ&RQ457MFX)JO3b+7eyR_Hss;RC-Yen>=rCw%r+h9*kHp9hR-kMwIRn3@z_COwTDa$s1K=Tz5->pN;X zCFk}TjsVMA34S#Q1FNb3j*hFq0}2F&U$HR zXeoJ%?W$u7hT})ZAMr6h88kc{N_1^x)`+HxI~F2RG;gox#hm|c=v9TLRq)~8gYOPB sRVefUUG;U?vu@6@&io5xq64~Sn5T3m$b2yPABs-95nmRV>;M1& literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.c.i new file mode 100644 index 0000000000000000000000000000000000000000..2cbe129709458ee91dd92a9c35428011eebdd746 GIT binary patch literal 29555 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/ftp.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7e2b1fd8f5b09f623c5f4d7e415b7905cafc5c6a GIT binary patch literal 816 zcwPZ81JC>b0RRC20000000Qs;00;X30000000061|NsC0|NsAj!6=wFBq#XGSpYHW zBtoS+!90cl00000000000001ZoUK)BZ`v>v{m!qrD*e!+Ea^kjR#r`8eWF#g0;&qB zl4ar>;w`Zw+o3S^$L~4~MN^^dQAfd#+;h(L@q?yJl)wZSJ0IS#%SMwrQsHwyYQ0@) zKnpe&R=tc0)fM8#=jd#X2yM6iTBvR&8=d4!z`!fKUc-)3x+(7n&i z|3n^n&wP_c2_;YK&$Qz_F-CzNCCM z3oU*Q03Glwtf_{nv|x4O9=JiEb|zy~76ot%0&Q&Mm^xB{OA!*8A)H*_jJmyx03K2q zr=Dc4OR%XfGXW`|A{dNOPM>T+xoAxHMT<&ma;ywo$yWAWU8UJev_ElJhy}!hzFJS`5HP29RqZ6JL`lG+315 zOxiS9W<+vIMB0GGEc0B1lW3n(M;O!=1wIT4%33;KS*@&>dPsHtTOfJqS(4Hy5+W}s zNNBP;fRYZ4se-H7FC=PTE0fnQ&oW;DT2V5v)fqr{umxjor48V&JG{KU9l~9w-|zH> zBe*_?PH*JNzIA)2wEU994B)IVXi40F%!^E-SZHo{MH>=VglRB^{qUgLS<&8MwEv#= zTKnLjy?^Lkn8VqufNg@jU5OfvW__ug-1e{7X?M{1dUfXSlZGFNwIHKtH!w7YVWcB2lv7Xp-Zg*qR^Rj5KSEHBL~w z%Yvm4Xz^rmph$tF9D7av_Z?-)af$``QW-Ys)7^WIcTbA@-|q^b4=-Lx{Y~hiwXV1_ z`X5Z)|7R!3J#0QybxZ3@Br!ae+$TMFx#S+YbxG2&9Q%EeyhL>CwfUdeSKcOmOA#vb zm8ZH~8?ne8bWeM*|Mu-K@DmINgEt|(XG)-isY5kKvk2js*OA|Hwpv9N--Un<2bF1 zjG7a~T&Ffp+ZIH*E4HV(At41@gDxF74VA?Zd}auR<|6YeHHCs@HJ8HX;iDp=Q#{rN zEK2FIs7|2WNJp49Eed@al%!fXzgVrTr@G5^@g$LY=~1%EC?cX>P!iYF>JTc$(bUQH z>064XuXU539nYg)4qA~I=!~W?o_1i)tgs$uQS{_bf=iut!OBhRa=CL+_B5y4cEAC2eVUPq0RcK9v|d5uNHOKI_5+gq&YLt|A6jHExRds#K9)C zWJY*%_kypjtmJw;IT$9_r)L4sqvOaiF!}uP;}PkS7TdHsi!y2)n$6!AqrZ}?(d_)o z5yX9H|9O*ShRk>;$YxoT19h~i>N_k-IBAC4-D)|a1dllQLN{OE4qp3!$e>&2|8P>v z=>`79MDwP()2W2fszBwYb(?LS8hVrvtoRpo)}?)~_st>d8MJCB;TbWW+uwcl3TTXJ zQFc4$mltQ9aGM1uCot&2*Pwl4ZooLE>7Fx8S;-tG%fi+&Jmy2A1bnxY28n9na(c{_ zGg|I;={a4EO`2spt5)fzgS}r#F|W#+_pqH~UGWe!zVOCM8vG~b@UGb6HtzB2AA40RRC20000000_GP02_z^0000000061|NsC0|NsA=4OtFnP+gz+LRnsu zuccnPrimE<00000000000001ZoUK@GbKAHP{;prK@!jMkk1W|qukG2fdpes+G?qnI zq@22!4hJGZ31^CA0njhki{kv)~&*5+fPd>p0MJ_F&AEP)+#Qb3fQ4 z7e01|!_L6H1-lEK!7YJZ_68T|eu2s)@W)hgg~}y}SsDo*lsbRx1;;SqTEt<}@|*W? z)OthF^|$un+xF4V7;ndK-W(sjB}+Vk^_aqsDE9q+?ON>z5&KaVaM)8^XK8D?x77BI zqM-l=uW7`=Sz0uoERD=0?~(d_L*ld; zNgpRQ9EKtXXWENZlq7dqidcsyi)KHGV@mPWR*Y^fS*${g^=gmOn37)Z6Em(-9sO!`CoBT$G#=8^ zOktivewZol;^ZMFUl33T^&AYRj0s-rr<6Bpv|ogh^B4LS>X%xP?qJmKFHeLs%t)RR zf3D0$^8aRB=@)w9Y*yG^l^tksOm;v)V|n)FN$pE*C4!2zxFLX=M!YxZ+D1F-lvq4v zbd}@G*9yis3v&yG^;dc5lOHNJ_^or{bw`79w`UK$&hY){${M&v2q$Bru+C_UrkOTO zyLu4XpBhKLE)C(ix7XHH$GL0(*&*N|%OZWevpVF<6rbDGbKD{BGP(Sc8PJQ!3i;%m z3OktyGLxjq!|Ca=NIvCVSpbYBXLrvD_3bJha>tdUVwK^gU&7Bl%G|@T>?Sk&~y&G%T>)vAK8};1{>lDxVExe1gd@ePf zOYs(rTJQw1E%;qb`d;4}ymvo*qbn#WctP|vioV5OMoqR^&Ct5&4Y#c3=j)+7_wNRM zZjT1r91$i_lsrU<&!_~llV#}mw_)?lZ|RHE{g&L*yXm-_;D}@@#XZyLI&9gxM|MW& zw$4qb*WYD_WSO3t0?!tj_P=g-2R7U8ZpgOdS;OJL-sC2Yb8jWe<5I@S=Iv*6Rc;f` zHj+yhrmZU**FtY#RUzjGK68`81?}+|Z~R=DYf;@?LAJz`ec7`X=g1dvecTrX-xacp zMybJz*lbVHWepD$<$056X^$*BXvwBsoo>fBa64OX=9wedvWm%5m?#)6>~ID%X;7r0K=kY&1Tfq?er?PAE+; za>>ElMF$6XHPYsra%}fN1G}>3CuRQ6kTiY7_QR07W^G~rhy>5D$8;b62YbX`14~=A zld$JrUsJmaO@^N&K=0D9-4^Q{o;b?oSC1o9AN+)~X7<={;2AA}|FzEl}$M-sw8lFO`G@E@h&3qr0+!fj$E;28WS1^*1bI<9 z1F;gS6blv-9)ov;g`*68c*lk$x>`!Di3c^JBkoWBP@+n zd05#MPFD4zRIZ4gTVg#e6Jz11ECUzg6uE8hglX$h6v|L>+scQ<8SR49Lt&OL3fauS zlGj$V5Szh8(y-SNYJQe%Q`{W?Nuo8jarv+J^W3k5(cBE)4W<}P-(ew~auIGvv&+fN z47Y>p>%n+7$K)J?@jQ@yAB|7>{uPT^(7LkZSlmJ_t5T7C(%c=%KJLjYotwCbR_MmP zFkYXM!=t48kq55d>-D=w!HEsd))jUc_I8nUhBwzgG9%d%zWB6lWseVD^D{l=u6ceg qS)GUEKngD+1VnfTAyh_)<9PqeZ!}7)*LWDy*&)r7()k5>m|oM4jXkaa literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.c.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.c.i new file mode 100644 index 0000000000000000000000000000000000000000..7996a3179b81875c20567109c7db39357219c3a5 GIT binary patch literal 6428 zcwPY<8RO;v0RRC20000002tf=08M8A0000000061|NsC0|Ns9>Zs>_J6dYqq1L>Z! zSy_GzhyLaO00000000000001ZoXtFKd)qdW-~B5PcaumyS(4rBUe`|2Q)M~P6UX*r z*-djz9zGNaNjy`emLRQYxB2fkF8~Qhl$^BvaNcb!k-*GgFz*<+bMV*w?1=;M=#NML zdGG_jX~uPy{;v%3`q7^EyWs!9tdH>fF(e&PP5IqxipQt?E*dn&(^y{MXU}^K(MO~W z|LNe&j~;%6Com0X_S3~Gi>9+&H2O_(^pAi1C=SJOxBFi$apotHjKwII$yjF7mUt1; zlmDLipFg*ieAN;%7k=EPvy&tPo_z!**`(r@l=VF%Ui<3?#D6+V%SI`O5Ky?Dcg7z$*m#g^zgv|Yw zNEf-tQ&A|{5;(FY=4lvB@Ha389xjS;9I08Wq6p9>VJFRml5vc%U|u8@lP<+bv#5o` z!~&>}a{Q&zL?No>ES)<8ftLtnQe+7r0$#wNFa=h(M3ICtqrtR#gF^F_n7nm+Dtbea zCP0kX?~TN8v@gcKid0LyAKt#Xy1Nzcdp9?|%i9m)>Rj|LKOnHT!^<<+{s@p|LVjLk zQUUTzMDs-)$zw~p!Fb*+Q%eXo$mLYqaQ%nPL7XHj=o1Wti<5+Li`Qp z{B=K_y}b@mF-nUp&=NNRBK5N7fBKB7@Ym3X2 zULz>rmQX65%A_3_Ih7BE>B?NlIOV@rpb6N4!m4E z_*q24ny(g8B>o&khLnZ&jh299v=Ekxl7Jwr#8Sd`CMk#zY=TU3oO9Ifwtq#uz=Q8# zXk5VR_Lac1V_ZcI~Y za4&Ofp2Y*u{?N~T=0e4oB%HX9NNC+byzS02ut;Fv{9L+^gEUFNQ@}&fIVhz{KNWd2 zmnp~*Y>rJr%ro}BgC$0Z6yCe*o8jf{xpyl4du9);%uBgNJvy!eg(anf(VH5 zN)Y|{`8B*c8~l9t8bNgq%)*?3q9dn)&HP{@Zg0z(%oFHWZ(uD1aT5-})SjD|P? z%7dAoi35e(A7MX5_H7dQG^s6Rgk5M{VejBXe4#_ zQZN+lSrd(ccrQtU0$yxIQ09{z&u2dSX0ti~<`;3UKpX-eXGZAn<8(>>s35AR5CfD} z)E}c@lY0j-&1YhN68lrN4@;gFb1+Wq^Vpxl!*P^nezrnruyqfhNCLG}EWxn|Ha8xO zNYoUDt9)Y_|!i)|Z{ z%g_0iVF(=d5OB^HOr^$@&tcyD)Nx9$-`x)14ZIs?6zuXuX1EIY@=`Rc`OWE^;Af3z zgrFs!@n~XUtfZO5FpVehUrRjg z9*6KjJpIp*KA)8T2w2p|WZ#*&!7tj?<$dU{e#_^FukyLKgwH=&pAU~t{{G1Y!Y}9W zaue1(P4bz61z&2Xt|V;Ue?TDF?bf{pyP4HujFP&?O0sN6$s}cdf(IejvB}#~V<|c_ zdIG^6#B9F!`2qqHjK3j>?4Tw$GI`hp>l&(=e=jYY)xW#BpwP2?X~aWE3uF!t@XHqY zq#vy~iiKb3-@9g@Dx!mmAc6S2Yv4FdV-Xe@-)WK@EvV5q5LX;|_zJ%;LvxV@r+e@b z(iV2rS%6Z_WLs-zXiXXm6DN%Z4tyy%O!Wp{?{#l@3E46v!)tFKRvO&g++E)e&YDe) zMTj^>f5{P-2MN+kaW**b-Cf*z{j1B%LI2i6jfE`d)SfW&!K(WToV})mXmPk8o;@>i z0Zv{&)QFlTKOM~5h94YtyIluSInV$s*CQ|tM4wAB0EFE^E>#s%>ijQFKn?*3WF|T1 zi}NUkELFm@P@(*lasVveKt}{M#S4r4rX?a<7Uiynhkh}u!jSR7j|+71kf1o^fC(4# zBA5|ij6!nU0Kpqj5nF8vpd}-bKY$UOH1y{rT{fCVSr=J4#iXqzpnQG!89D(nKP8J7D2?loS$U8N%tu z7!<59FE1AM22K1ZF0BzJrCN4S&o%D-=4m-xJ4&=G1Mlj3aMQaTUR@d?ADnG$3@IYV z6_kQBSa;Dj{8k!>Pg^ZS{b+%~def4g(~4n$@D(u1W)m!ZOz8w9++a_2H8px(HDuDw-x# zzt+Tn0|Vy*Dc)&Gs0IXZ3yAJP)S_guF&Uh4G+Cir$_r(oHg)x zQFv;h#B?-d#Cv4*boxrADOD^mcULG;4@aVbvIOe=@cmCsCfo^k09G5=L%RSb9R&-G z!7qcG5gJ~ccwB3EOdSg2Z>)uCw1nz-|J!T~+U*$FfuV{of(#g@Wr+y3BUjuPEPTLF z&&=^~h6G3D$Exv6`$rX9?y-#{n%V|DZcRzp06GEw%Pr~#|NA{OnT8;YlXSERJWv=- z_Io6ckk^t*QQ1&?uo|{tZ9q#r)q)yZIkGDYaeuVRgIEmDKX|>1i>vo+9e+9U`aLuS zCeYiqSx6PB87+#O#9u*}`KjaRw?nCM9C~jzscNog z^z|g~5HF4eHdGh(c_AS`-VuiM`U9}lKljeghZlp>`uM|H%_Id$gLp?+J4i<(Pu0dU zvY=JFl%}oT!z4oW1d~N&PGk3d%-w@H!b6k|Ri|21y*it8yL3et!@=ckrQo}iTNm<5 zoyMRp3%=Q4QLdK|<&dF(mDgTDugo~Sdcuv}zJu^pmwbhGvUqH{!3tC!J+5@dR_bnx z=T|L*v5zo1rc_LW#JHEvO{!g|qcLTyJD0ijNtL+P(^woJ@|i_btZLKo3s2)RHBOW8 z6w(bWd&ATo1xNgPWeV&xhk@at^wP)bHGZ0d#SmDw2ch&ux4qjfP{=}+>orcbYC@Vn z$UVn~BUB@C@M5R+yO%4reU=VwH-o}OVk=(t20)4@FChr~Y3IQngn2jEtWMV@Bm(IlsqIwIS4?$Y>*vZ82g z%!ZlG+A2Xwa3-e^O6x=PwF5VOE@n=}uor~nsJ)BULd~kPi;~~&xsZK~u|6GQt=-e( zxFkMKmyp_%O&Ck&eJcJXGwkD#i9WCk>W&wy27w)GA@CIu-4ZV)dUNXB8DpH9Nxk1K z*iAei3uY2IiTw_xa1PH*`%U1(d)`Q7@dE2ol=}g>Wb$=tT%I^#@xny^6e_jEGbbg` z-#Ha%TJa;$GKG-5q5{YAY2uT$z)_E24+FbgEqo1?g-J(xa+|^ zDWVW|?I)9mygLbi_!CaZzsm9XusStLC zHHk8nJL9#K(zHm~i?l|yfEqlF)*jn9epPG^B$5zH`I4yl>UgdnE4!J z2>Xjpu(j(F52^y}`oPAdbeseEjvmyDU!JXyMqbXA4boPdhy~$i>bdSA8akb90f7$? zi-)uoO>X7GlL8VcJ-F;j!IKSi?Q;m<7@R)wsEcxFu9t)C7IT^T7%$3LVjF_O^2ahl zvCW=`fHP%aK9xGaU4yqK^uYZn!1lo$+!D57&8rZ(z|IX2(K+fh_%J^U9Z9qqfe{Hx z32}rZM1Rf5XCMV41zu)RNNrtnG>{BtcTUad8%-m`+rm&ioMiae5@M$qrDb?$iPsWH zv-y8Ed2wh!b@y?5=DxbeJ=nUlRKhBYNG_0PWpstP=J4{D-o@~&(#ai(YrRrht2SFo zbMPao1hb$mIN9Xd%%kb`PjwGZ_7jltU7;%F&tH=_e{{@8E#2om$iXeQ_oskey=6eW zt5KC?`-%1p_EfH^6`6FypR#_>33piwE#c~8P1bq{2NQw*32egk;9cpa`gYF9fqDW& zKDatn;>wM$tEXg+;aH<2rKMd(tFAK7bfR*<#D9Q+x_HZdES7qf@X@)1i8o$(V0~;f z8vNDp3{V_*L4)4CySnr)d+#1i6ZB8FMJHj@Z;d_{%@5UO(T-ZjPCI|jdl#dxMW`41 zm7|~8p0g^H)YP&j;2r2Bt$)d_P>AScqX4w6UbVxKahx1YEP=Ab^f^`=#?$18_J>H`HMc$7E_p7DGP85>K99T)!RuD&*%}CW;#7Z^*1* zu{_~y1pN)@5tqT?q?We5gMBF{Hc1r-zufprag?*LeuZaTFC+3 zuVz~;9{5e++7A2cL~dBeU0WOyzggIQbS;k6e-tNcK}dK+W!iKNZieX%Z$6FaBQS;|?MFb}0 zh?qnb-)*tDi+it}X^ZPK3@bJp!9KbPN`?Pqy$r39+3*P==>m}Sk^BM07l!zx#9=;(3FCi!5f zAIN-q)Bx!!SK0h&qO?-15C?*N90SSTS7Wdw)kX1b3}k`+c0TgFdNzKAIWhs%obKz; zk%y5`(EuClCo5foz&7hDkEkY8f?WTuJO&{0b?9+W&1wqeuawxoyt}yAN3(Cj^s9H* z9zI0>$@bE;e$`kcgRx}9f|~j(jAYBTQn4W-JJc4D6yKi>M(w&)(zwk9mXF=FZIDId zwo>%2*RPnZ1P2U2&FD?lG9&d_kW$oF_@)~bKHPn`hRANwAsjd~r-Sx}Jt1WBdPaFkBCNl5`9wSfMbrgo5w9}_bD|#_uw}sf=wfzMMx7SK9FL)#Er_gkFcUbK z8Z2;sy#~9hE^2~`t({YQRD7rBNiiS83aRD+@nr+z!b1pEnqs`l`3!LL-UD4&`KET| z$GeWX*JLi|wQtuiR2Z7amT(vkt%9D*>U@U z83lOHhrgbH^4#;q!>ff%xB(LIV>PX$3xj{G&f{%cx=;#=L`{oC6yMh1#;LWd7)%W$ zmfzgM9?`8u>iW_xdDX_bn`X8~@AY^kw+=1S=h2(HTkq!V{f$-$)1<}zaVsVh8rRgH zCYf~Gd^UjS1Gz0*wv|CO>+gPQ!)~z5RUBsJ@0!%P8h*56_>sA_u&YrJPlIL!woWeD z@|PE3>GJEnlnc&)5A>;_NI{fDqu=jCq~4G5N=6^zcNC-k%!dWW&ArWwN{9ndY?qbw zen8?3w&O`v#Ch4ACv#9W(5~(`_Wa@G5UU_&sx~DF9wnEJci41yblm;qoWo$(Bo$G{ z5>FMR(l@BNc_E$Ti%{3fs_cB8h90b2UnC}5Cb9S3=Uqati=|Ys8d*+9LfE;y^rIXr z1$>BCGceNmIq+nWCW>khg`(SWFm?Mps-UpPW-?)G84^qlQ*NP?R4W3Q7czg2UHS{% zF`;KE97#Yhm}$4GQ^Q?m*Jv=e6+gi(u$!1*(by{eXIj$vhkFP4g7DA1vlhxRnS!&c z_hmo4-Iq>yUv0GTk5b4dxrdwYdZNofe!$`*E~pV_sKYxdPpgROHif(RZ&%`2yf@q# z-3Z<3&c3SRR$fblpb;|%t6yA!)CIE!^_AEc9=1gSHCF47 zMFX`hI=k=yrI-huZX1Sy*-I|SpW5Let=#hNL(YBaZu*kXPN@d6l-0EXvR&A)@|;G{ zfahrCu%ChMi(jF&r(@D;9wkO|DndhSNUDuk+B}$}+Va4*#6^FWWeYl5jlRjfkzEq5~4Ue#U7v)e#uO;mQ8eU+wF&7a#v94}_9&N>Y!|+Gan>E4;P+Lfd#ta!8VI zw{)A-a;l;dwvY}|bV8Az4YB{azQHdD}9y-#0QE5s2&(;*T8Ohog7p}HO ze2ViVleybBP=(!iJ4)gKGCKUw+%vKic*_FO3Uc-nVb`xPLvu q-1xT#!s7L{n~r@ggb(EmeDo|$rh)%{05yG=e*_5k`~Lv@hUNIi%UW;% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.h.i b/CMakeLua/.hg/store/data/_utilities/cmcurl/gtls.h.i new file mode 100644 index 0000000000000000000000000000000000000000..bc783abac6891c9dc4dfd33f21215319b53292b1 GIT binary patch literal 954 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

    dP>BK4j00{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.in.l.i b/CMakeLua/.hg/store/data/_source/cm_depends_fortran_lexer.in.l.i new file mode 100644 index 0000000000000000000000000000000000000000..d8ef084f18ab5202086928241e20d7e4e0cc8db4 GIT binary patch literal 2079 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 B`)~jN literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser.h.i new file mode 100644 index 0000000000000000000000000000000000000000..23da56ae7e944701eccd6539906861adb65e193d GIT binary patch literal 1108 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 SeqHaks0|l+qIgwvqyGZO#~$hc literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser_tokens.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_fortran_parser_tokens.h.i new file mode 100644 index 0000000000000000000000000000000000000000..43810604ac3182be61ba6fb7b21da9a31e51749e GIT binary patch literal 1466 zcwPaz1x5M*0RRC20000000nvg01Y_+0000000061|NsC0|NsA3GGUnHpB=Bb-uyU= zc?nskol0c@00000000000001ZoP}50ZsJG~edjA`6KO6HlK{B@Li^xw8*2$5Y<9#` z)Yxs@ig6>i32Uw9-?yrL!8Vy$9;|Sxy82YrsWQ2{0Rx_ek|7*eq9eh$9sRu5&j89l+Rr(CdHu>zoI<=F3=vq zJ623k$(w*AzOa~hMj#L5^_9Y~FoA%@XWx&rJtyT-2k3HN9xwqPV`54t5d^U1a8%qo z22Bcq&hW#uzc1D{81oJMFjgyLZf^$Y9QzWj{GF$v#QqQnjEreSEQ}MZ2t{}quZG|8 zi1BRBOnXBqOiX(|wk((|R;aY4v9itKdS84=STplwK zs5I>jc2Oa>zy+VZbL^(W#XB-%;Go?8zf-!Tfed##NpwD!aR9=DP{vI-MFPbU%gY{W zE!Nc6gvT~|vG6Ux%3Cq|V~mOLF#aTvGSbz4mMW$bF9x(a?RM*1`<{fqwv6+v84B}I z2kr>u&Hr)uA-#pPyJrbF5l1DUPr#xbD&i!gx3t5K46#a~qML9KV`>G%j%W2KPduo6 zqEY%K-K2piBn8PvAeX;ZrQ=I1ViSi7bOllL#TnFK_?eWZc;Ercc+hn_-G>+n9hJaS z#HXM@G}GB5dF9hUqrp>&F)B%oI2OzZkXndMc;`XVq{itQ=^>_|1;U+N2{6~)t7*Xt78yj?pg=B6*yf7957D=T#?XlGJ{m0 zZfW~m%9tYL6OvD<*6;eBK+Lv5DmX2)>F8M( zRqEa8^6hblW1yRZpSMt+fNj%~@O{b$aULG`kR%0G6Vxr|I-XgYL$_T4GtW*L zoR2cJmR~`k`%pLJEV_?%i$kd^{U}fE* z>I%H3J5=5INLhENy84++V5qvvEd~5oKaeU6Raf!P(QcLNBt?5QG;{9PU{YNL(!EC2 z)j;jpse-!8sJe@qq!hXjmxh!@_aZ|b=&6ooT)LOI_U~Qb8KY{FneI?^1^kijP<4g9 zfX*3f-I40(gNqmb$QG@Oo7SQ&3!gq+g0H59jUD2Tvhk=v3z7EqF{J&Tc{HvAir;I) zm9ro51Ik%VWEA6XoTYw=-X>QK+M>+7El_}{^;lgVGl zY`6Nq3YyJ|f0gZX$mtBuZ;&KWdWGlt;e~RmB)&!Qofr>_pSkpIbR%{O_08w^&qV>C U{h=9){kLh%$ePabf7E>GVUOwCJ^%m! literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java.cxx.i b/CMakeLua/.hg/store/data/_source/cm_depends_java.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..28885912438320a2d2c470c3a7ca102434d9c979 GIT binary patch literal 711 zcwPa=0yzBu0RRC20000000M^q00q+k0000000061|NsC0|Ns9fR#3^3by@Wj!_SSD zyfLQY!)0^;00000000000001ZoV`@vPunmMe(zs#>(FSSByA;x7Q{mq3hmZHm4+d- z?ZG(L#v-vR+i5|-{`Q@d2`Jj$*sLhAzq|YHNAB$J9KF?QGytYrEi@|v0Ei~+24N2( zt&G{5=FHBOF2JF4kt3XugP#wE(sd}b@=@!Q+Z3bsgj z%;chE3#T6K?hhh09SgJikaFJiCI+Fpk5s9WU7qWCMz${gra(c7I+wmLkh2(jeA~ZLIbhJUut2oMo@Brrp0NLEbxqJ*fE-S z;3d$ZUNbfg0!5vUtoYE`Ji5REe80L@z?9l`B25N83=C&d3b~-ZGnPq?ZYssR^^V-Y z!voOgTlWVX9l`eZ?smIs>-*}x(E&j)&|2wMGa@==D_R=O=MH_^Xgt4l%&`BS-~4EfDQxvKQVM*6RaegP%Ruq7k;TV4PF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_java.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ed8e44c9b8fc88dec2b7323b1396c0748d57534d GIT binary patch literal 844 zcwPZa1GD@90RRC20000000RsF00uVz0000000061|NsC0|Ns9eI$`#YK5LY$3!6&B zTR&^z#$jXt00000000000001ZoUK%CPunmM{+?fP0)(LJ5?TpO3*tkU!RW?I)fN!a zq{(%zjfG=pwv(=!w%@+9!^;Zn%S1j@&7Gge&pmgSq;vRMPZR-+j9wU4rT~zgv0H?< zkQr_5+mU2$u1yI(Iu{b*6Dl;!X+y9xo!1gQ3bw}C#OG7szM!B+KP8<|P>sYqLmBre~+g)y?6uJ|ErbQD=RpzB|6EvS z#H@Ch!}V}_a&b9@!TAkb560uc`Sj)hmckXfc7P44mc$hVEh{MqLp+8lw*ozfv!ii# zLZHEi;puRCl|U@Ar%)JQIvE# z@Rdtu?K&m`iqDLoJK88Jz5>gcq8Sbq`cu#%{q$1TfP}q3l|og|q~MRy=x5Z1QnJ=7 z$O`1QLM_NK>zMK;Dx`)v4Yx`!gWI!O$ec#NAg2{tfnp`KK;=H!c8I2tc1}=FD&`89 z8(qGLBvv1G%q-9a@zhk(4(qyib`PREeOJP`nn@Z^8o=7KcoHs=sk#DN&qCRxx-z;# zBUkr?%^mRfb7nf~ND$`1gan2(q*$VIur$Jv84164r9_(Q+;7|WnyScQMy;snqHt~e z*F7_>C0r98AG#*c?r>UP2fSbgI@a(m{2lNHbc2J|{p}-2-pgs5X_hC|7>MGn3j W{)>C~e=NU9*Cv6)Jo*C$fdNAaK8r5^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.cxx.i b/CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e4c4478cec471478d7582592b20896012a10088a GIT binary patch literal 18473 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.h.i new file mode 100644 index 0000000000000000000000000000000000000000..966ce35eb94a7181bf730e2d4e53e568ec53ff0d GIT binary patch literal 3074 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 QW9rKPZGe^j3;orA+i2kWnE(I) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.in.l.i b/CMakeLua/.hg/store/data/_source/cm_depends_java_lexer.in.l.i new file mode 100644 index 0000000000000000000000000000000000000000..45386dd873e5768ad606c16275050e4f2ee0f4f0 GIT binary patch literal 2281 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 D_XcCT literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java_parser.cxx.i b/CMakeLua/.hg/store/data/_source/cm_depends_java_parser.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..13cfed05430eb85ed86b79fb46a708441aa148fb GIT binary patch literal 30620 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java_parser.y.i b/CMakeLua/.hg/store/data/_source/cm_depends_java_parser.y.i new file mode 100644 index 0000000000000000000000000000000000000000..5f74315bef535567d56efd4b3450730ab7afb443 GIT binary patch literal 5548 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 Fh-2(NE=T|X literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java_parser_helper.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_java_parser_helper.h.i new file mode 100644 index 0000000000000000000000000000000000000000..eec833f04a75496dfbcb454bbf6778bdaf6427b1 GIT binary patch literal 1359 zcwPZd1+e-60RRC20000000j>K01Yqz0000000061|NsC0|NsAC{FIu^zsUHh9Cgj6 z@_tmjKMs-r00000000000001ZoUK+}Zz4AoeV<=(wOLh!%|eo@l{$1Iu@kakOA-X6 z+enp=@m#>ojAvwfNNAM)_Fmf)U`U{SSRRrY``$C>+%LOX|Mb0nK>*NK*-WuC1c2y@ z-6MR2NM%}o>?h1jGnIl}or(nE3rbYXWQyFbvbadldcpfaG_?C6@bnyWl(GKG7Oc;d zMsoGYi*vvXcA3o5+IWr!GaQyS>@$t{i60_VpcnYYztP>(N~c9)y`^g#lck z1dn3ofA03WqdQCXqC2|o42N)WGk`Yq+k;Uzy6v?G zB~t%((7zdW8eXc!Ws_`yz*k|EnGqbd6O(3^w6x{G48@&PeYYa4H-iH)l`&3t*Uxwk z!2wwaiTjKKLXtcwVuW`*9U3NMrsA$&(vA7MV1;sbHyqvdJG;@s(7%nAIc|H6yTkE$ zC!%O}&NuePoj*o{_IN*Tebd2$P+U#be7syH_*g4HRtI`rup~dC2hEuroAQCW@h}LQ z^*a2?6Q=d?lgW?KT(6a_c%9rKxQy$#S!{J4g0L zNGzn4yta$x$nQI8Zk9Etm-@yF;*tVW4b<9;I$s&bxI&gE8%#UWYpSi6NM@h$dpe$U zH_hpY*ei92CMuL7nWa<3I=`PC!V{H(&>zpLc9b#NZNYO;&FYs|fEGcaDU^H@sKLjS zH4@;Uwn#-;I-zJ)1CUN$kt*$o6z%RK^#ZtyRJs2KsoOlJM88FdEKiQMOZ(K*9IIL2-`7(WrxuU6Ruf`Ew{S))lG;qxJFGUe@WCEZyH!l&u;alGA&69OsZ6$K4a|2 z+NrAUCU`kI_WmkGtLS8U+)4=Mho0YaE2!$MR^!%g7;5o1j_q6rH zc3az-A_`}4;|`S_7MrRodEaMPZSx(v%7T4WjMYTCe>8CT{b~r820iEOmu@B9nsj?X zS3)*PR?9u6Jx(`nRh{W@F!Pr+y82Es{hEo((AnyA(axZp!$Q6^NqO9@*QDsRTm*`ANx%qPj?mGTZQH47Mr5ub|tjlc^Fs5|Awk4K_-jb9|u-0 Rm1=N6hpU(d!N0i6PZmwNku(4R literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_depends_java_parser_tokens.h.i b/CMakeLua/.hg/store/data/_source/cm_depends_java_parser_tokens.h.i new file mode 100644 index 0000000000000000000000000000000000000000..f81f9d071a8242163202845922a1d70aea1582d9 GIT binary patch literal 2245 zcwS9Vc{r4N8&=LoCl!)yipXA!gi>@wV=c*Ewk(Z(UuUd!*^RyI3~3lkMl*~U;&cp? zM6!*M?F?hm7@e`^%;3!1_nqtdo`2r^eSY_I-_QN<9N{^_^Rten@bF05{}=NdIs9LZ z_&s1uzWI@G`bu#@x1#BM#xJ^jJpWg)ij)#&@XUL$fnIt`Nt0<)drdP|_DRkD;uBf> z?BN+jHFj;7n@`-GfaFTA&y)KL-!(N8u6yEQUuGuLKMujYMzRvO>4G1` zj`j>xO{&{t#hEAS6|T)~-DFq}B+ZL@Qgh7&t3+Os?)KfUir@47V0kCu)HH{99kCI= zS5~1@PFJUZRcthH<$?Mx8CWX1&5dMpu=HF{lhY~glG!+Mt7Emn`b-ESsfsn zUX0O~Wc%O04mHPZWQhvPsaA%>ph)MkcHjm1anpcM}&_j+(}zm&HjzLGZr?N)-YSr`dTtv2ayk@21;0+L|1~m3XWO`o6Gd2w~mk zI`i=|d;fsc1I>yFkfJb4aRM;qoVfA}-UsBO^OGl9EW-pL2Ivx=UU#iRJNwEJt=n}O z6($L!5h*OZ25wojA08&g#`ryjl*j)TYNhwZ+TOv%S-jJ2H-9Mzy>fuwC?YBQXLcP9 zo=dOHU&ZGvag?GU@xAwUb;4uYDa3c;{6-yN7z}ost+iB^p8q*A1w~^$zg;gXw1C*$ z^h|JrZYXz)cjCHB<}y4-!r;qM92Sivh*BK*&;zYb}64?`hHCCUJ04?-&PJYti9*B4L+tv+UZ4bjMfHZu%p;sQ>-P?Vy&%t z`08c6T!)nDcx+Y_xg2;j4jN z%xuSCx}UpDvEP;T^hOm{dMm>O9CiN4&}APtIR)x>*${7Q&4!hCZFJMh4tC5V1kok( zZ&qA{;lueNgHLj&E`m=hp+cz3UI7Nb|{f8}M;I`OL1 zID@GPTzya8uTH!!a?NQmD8IyUJ2OF#`S1%IIV@HT;UUv7krAJprG2>`TopX^WZH%L zupU$%`60pQ8%VN$OwK}(x|^#VXD50U72Vky5juvt+Y(B)p?jKs4~<@}e@c?dUp5pt zo90xsk}cbIIPdDRdE&6Ri-7r>zX9^G7#D4MI#u7u;zER(D{r%}N1uPSHYl%~&v9Iv z_4?n2nhgA8TU~}WKz7~alArM!_!Gvs3fZah+@@ADReKav2#A3pe*y1KfSB-_v`@DA zqV{N6T^m=C0r>^s;%VH5bi=sBu5L^};O4^>H|7O~wM4nJm)67Ft_23hwHyL0+nxaG zc9*!4R)v5%LYWI!{eWSMVqjIsPgn~KYYcLsiwGBX2^rZ8dk%4bZ@w08GgkQd(8N_W zj^xtu*X|`+=vL#`4JHAj^Y7kpKT)9)1VAJZ4CECB{i!|b7<~=MvI-Rd679+$t*Y@k zs0jm;<{j`dd3-|g!SWN@{1qsrFNW|#C~i7BJ{byO#YyZuyQQ>Nrs2iVW3%U)6Y zAn~pLI5PYq881F(*Gu0XZbhk&Iy(3pV+r|*vR*W zsoS^NnWxTdOo#cF=!@+=6?Z}wz8PkRu#QJWo4ac6iQ(dxU>dTFUdaJF_9C^2NuE|o LJm3#zuqFQiEQ*Fy literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_document_variables.cxx.i b/CMakeLua/.hg/store/data/_source/cm_document_variables.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..786b6c22974001125a010278b7cb2548669ab3ef GIT binary patch literal 10601 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_document_variables.h.i b/CMakeLua/.hg/store/data/_source/cm_document_variables.h.i new file mode 100644 index 0000000000000000000000000000000000000000..534c88ed98cfc8a4989b7a1a7df01fe6b1922124 GIT binary patch literal 546 zcwS>*WME_f1I9-T49xiqP|klSs0)+Llc`E}npm}~*5rxK%U%6ZCmE1H#hkU1eDiM` z@U*@EC(3fkdG@xlJG?g@B(R_N6i@!y^mxmO%zzv#F*WZ-7i;adzu!I2O_1AmcU80E z%cs9PmPqp0@4foTreSLs``K9>43k)Y_Z9GWh8?@Jo^`R;OSU_?M_CVvPgxx?=QWz#EXFyYvqyULOFdsQa=2 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation.cxx.i b/CMakeLua/.hg/store/data/_source/cm_documentation.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f8a63a10fc160cce72f25120e73a63dd92b99474 GIT binary patch literal 9258 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation.h.i b/CMakeLua/.hg/store/data/_source/cm_documentation.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e39c38486496ba96585ab1bb16c9c84d2f0e599f GIT binary patch literal 1949 zcwPaW2V(dD0RRC20000000&(F02%iH0000000061|NsC0|Ns9JSJdJ*7F^dAcP+ib zhRmYcEZ(vJ00000000000001ZoUK@UZxcBX|39B%1gJ_wNGNcJltQIk+R}(Vq9g?& zgpj-IBo@2tJ=>d5A?~x^jJ?lfNgGO4nqbd+#=jZ6+j{$_ei{vck&<)8!X5w&F4#8? z&tRaW*3U)(Gc&0|pw*cOIK1N#SIkI-Y!}i`0#01;WIUMAeh<9xSb9mwBg2f4QD@O! z!V@GuXVE-ib0Qx+eToam%s5`;cHdt-fBw3A@Vxut6&(E4d--?o)oaW8fh&!odR7l# z3iqFb&dUSb#{GeeZ z*IX^R-$7{;&I^eh^WA_{urMa>b-Sz8s^f(ii;h(D?%DL>yjzeiOc(%03w&;v2y};R z!=LFwXwY(IEdu=R3vHCRNeuVl<8XR*bv=dtPlwaXlgR{5ug1`aQGYxg4zADp<5be< zdOW(CoOGP4B$wUDB?m7LVAclaJP8W9V*j+uuE4)v{W{J<*k0;V+_3x#x2-5xf6HX7Yl z3kG)GNSM20&cUx7W&li?V_wtPgE+Yfgtxwa5+xz&bh|y$T_tGlAL1hZ{#U!v?ZO$> zkYuMhZO| z^M4br5ezEsgGK}he7NCGg2#fu0Tkr`;6}>8`FG_EX`(3d&TFH?kv8Bhm}}$N<#?n_>7%kxezH4r%LP5j^KFd6IaDCb|?KC!+`w zz$qeTf|2wXM%MEZ1uF^}f?$j|NUa4iH0GX|iQL9CFy-tbJAxMm4OU9vS&7yHwk6$aFrv4m`m}Q3&Lh|8}rVFf~wpp(qIE=!!`vIZmihYwPK)CTVLea z+04%)z)}jIBwQj>vz&aAf?7&C7-)wLnICHh9E}xNY8jP=3}Q%j+cgld0Mv$Ku017e z4YVPxg*G*nexPO5vJ{X?#z8ApQ5IbOsfVOJ;N6P&}o2yb=vzIbZ5_>-H3+XcZBlRW>4;%E1F$=kK_o z&r>DCQ*=Hm#)DFe*|UMkCWTmuC0)i#rjdyB+_*%#(G#oG@CgbCQe!GM&q!b!eu1M^ ztZStq*@nC|sFL+U>UsriIlG)iNUqUvyyrCS-KW>fuRMEr3s+n1+osXkJ1I>frI_nxD8ci%>3PsMSu?J8@8j?8J~(+)g}|THT2=4WQVOEeqbRX4-~4 za5upnd1Z+3xt+D>(d(?lv{~PGph^LLwPO;e4?6CRDoDO_7rco@?dHDQ%RL)vcLS@S zFy8uex(1X{9|}>2+0Om$9<3vqc(Pu6n01{(aykyI2~RikW?H*ZbhToeo3c?y>8ms1 zdJ_3LRXW(FZf8W!1iemG8~oyCEVyQ?6-l|=((VIDI>lQKYli9r|BfbR%SbLCggAnp?!bIBs;>gL)m1o zxl{NE@UtkOG>RKO9c{X4qxY+4%vKi5d}SLoy|@DXxfk^XPG9)%UbGZ{$dYg;wMA<8 j0#c%1i%q3qvtF`MQFX)_02ag)`Nwz@6SKzunoy7P4wbhR literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation_formatter.cxx.i b/CMakeLua/.hg/store/data/_source/cm_documentation_formatter.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..2fc2f19c72248123c36032671ce34a701d53b5d8 GIT binary patch literal 825 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_h_t_m_l.cxx.i b/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_h_t_m_l.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0a0e358693d1fb20b6e89bdef3d3d724d277a9a7 GIT binary patch literal 1797 zcwPYo2m1H`0RRC20000000zYX02bB&0000000061|NsC0|NsAr##7C9&_$*-wB3Q) zrYFsO@-Axt00000000000001ZoW)psPuoZk|39B%npWfi*c9nhHLtrgg@O(!3gN0= zsnFtVVhh{rTWC06Y9wR;G&}Nq4j*{PB~wBo+p!o!dIOx`y>KQ04;53M z2=|ejDaGZ%;P}XLZg01y@Ctd4SU8@rF>&`cH*w-UQ$`dDGvnQzoj3OD*Y@rk95#M= z+t}UJtbcGBqvVF(mQOwN^4fZXR3!IAbSJ&BtDx%CNXRby?x`Cl`4$|8jz#~mruRe` z3#q(GU;%V}A2eGGlE++5`OrdXXPnO^TIyDTkl-p6HEjFl=EiaYM8*YD9wn#U82Cf%FEJj)*!12(FmGrJAiVxw_;o#uo`2e~npW#!t-|wCbJ~!dU zQ?8gO;8Pxgk)mAW4INZ5X-bhgY6)M=OSFO18cIj87@19UQn4!Y_vTVSI2Gap`;Ebfj$Z zwbDI;Y}>}^_(LdxA++c@t~mJUdO**^jgZ#{V3U8tyle_X$<;)LP^~)9X+x!3fsGAt zpoQZeB3-8fS}$r_eh^X-8(JGnJ)i)$Qc9kOfJH50-_mcC?cunSu*OYXl?=aBT9vQRhVq85n&kyT zCn1cBgpGv2f~Y{b2o0%qB|At#5-L|s$kxaUhg2UC>~xCbOs%F}cd!4^%oDL}B8D;N zLsK3Bv4K_#oTh#;VQR)R{a;E~qfPQlmXHp!E4qAJ?tDEwI zr(*7ptPJFGi-9ZosC`k^!GJ1P7XZmL!{LiI>Dt7-ocz{n^MYWiJGHrolYKABNsQ@Y z$01|^PeID58|w+h@fe+}{=X^Nve{hAzNx6BPb6ZGqySUoF2@BW$fe2)Cm8q+3q#CU zbLNK8L>U1lk8{OYdkno*T6cCe8tbUlTIoT0m7)>FuPR;(LQ0K>#v?fimjgXlolS{0 z;IBMKVIww!hq$!M$lWGcyiwJ>%zc%j@9uUmJc)|onMl1X6HP~p2_w6+IMcF`?IJAa za=~n@t(u|~AzKC2_d+G_I1aq5ocQTZ6q1i_fUYD> zE?{Hn4lm1dXW`0BoO6j$P_3mI+q&ws95Ljb1YK$?y?DEmWz(Li**c+$LTb%L zZCbV#)v{42=2^=|%`&;OPJQ$k(Tbz>kK(!=ccC1>v*O6SsMX=#EzGlVG$z z@%^V^L>-n#lSLT?#H|khilbbjnT4Z z6p6)Te9Bpp93`h%U$VWI8>iyY@U$m?fKW?d4v-X{NG3tKCQ39{GhbDRD|7X~F_1|% zmMn6g$GS&Md#Yj2-yJ^{j|0wze6cOF>r`aw_P+BoB(78{#HK86g3m4V{JpTOLog;=g;*Q6B z|BkwP`dUYgd;lojn{so9)n9Z*VuB~<{Ib%95yNV1s%Ak2v=Zs_O`7nc$d3I$-K7@5 zEjAW-exaK}Cy1&MUR2yIx=Q#wtk&I{zL4*%>KVxBwf9+ad6YY%MmjDsbS&7Kgj2U4K$IWrsK`-~AgNW4*@6g7e>NI= z>0Sw2%p3|eFT~t&!`)q8I2Ke3u~a>89~^x34-foy8xFq&pT7m4zE{*gXe{dn)ladM z^~a&t=3U+n_2S0Jc}mcXcAQ8XeoI;kgL^Pgk>{Sa+7Gp|+K?=A51^A}P|++Hv}j6< zJyx3{J}7#0O`r{=M2o=pm&>IW<(wB!o4N18^Bu_+T3V*;12_0VP7*kq7Y_$H18Rg@Jm!bX%& zNvK$ucu+4{FWq58SA7&Qnr8J!h*Du%phV8+(NY`)n)@F`z75)P7%%aAT63VyccP~l zId9M4doKpNGW9gBmBcpKdh#muKAtsx#s-sBvEt{Zo~RIB(>fJl1YgmM^nDWCqoun= eoz_DgxK3Rgi3QsCsoZf}ZK8^0()b5)RSVZ5xmK0{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_man.cxx.i b/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_man.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..81c1bd08a17fe9e58166eeb418d0484840995e13 GIT binary patch literal 984 zcwPb611J0d0RRC20000000Wo+017Gq0000000061|NsC0|NsB95-3;;q1%BNS@)hY z6WMBc+Xy!R00000000000001ZoW)jaPvbZg{hnWOH#?vd+635lU|5w-nN~|7YQv6@ zkdR5-#@fWLY`29${P(%G({|_xmeC@uKP0iQ&+&bn+$7q0|5n5E01_!Cl2kDObOz)f z3N7eJp;Rj=i5?4Cfmt21lEO#IsU%uRgbhSKE2%-jyJ2T!>@j532a(Mx$~DnU@KZz+ zt*IOk9%grU%{jb7=o#UY8JQSxXLlDDJ`nAgkjp(E?Ct#)?e9eg2eAKZ{PXYePk&hG z-&86jj_s**&fH`_`~|IO?uhBVWRpTekTnd+0sO`Ef=JqgKF>mPRo31STnVY!tO^0z zWeFChKvG5JoaQ02jVN6+hWbu}kWgqnjiYF>ScF-Hi3x?AM7?xy7Ol4yx+(!v2RYS* zl`1s8;YbUnK#8&S2=F;)N=tS-(=>-q{j_&+nL_*g3O==m!}fW4bqEWl3o+9`=ahqE z(FJ0wX~__TM3QiQ4`K|1?y%ECRQsfV)=#gDv#0&^ygM4f>BSJ*khF(szjJxk9@b3B z)UZK}od@LN#5<)+0j&>rKWQ4cp2+JclZX+yPE1YPM{6W0av{ zpJ~u&)bNKTO`VW5!3?a^YS&I&jy5U&T+Oo^tYpxL{T;vYG>hhaW~y~;i@y{^9$>-2 zpij{0@eb24nNyjVlZ{!Y}%6--NTHc!8 zX(w+>ZaOWWKt=eCv7lhg&A9)hLB#QpPD_%}k=-9G_cyU-*S@{t-G=Q_w<27X^*d5P zB*BmGw0M*F|Nr2Z;d@ckdc*PBboMC8vEy#`xbM#8W-(kMR}EmZBf>sh`>rM6bR(hI z;5suY(QET(ld_5i{?-X>c(eM7e7UoE>MSKlkgYkth?g(nQlGJFC0 GpZiQiByuHKYX|#1h zZ#jZ_5o_`Q00000000000001ZoUN2iPvbBUhVT6qBS5GWNT9pgkDxtdL!s5SP^DoJ zCuEXIV{Kwr_M`L4KR&9pS^#6Cr$!VW00blP2Voxq zqpjT^=Ympg3aCa?nIoK{LL*2UmW^~$=2)pL)f=fRP{j=!m2o{nuT@v6N6*LseSX<0;$sz_Bq38~D z3Zq^a^jYQq91I81Rb}>M5S{fV6F4~!!H2OQMuXsD=!Z+v_#zyiPkK(X)ru=_^c*36 zOrz2yW3=^V3SF62X?>)eciz>9m0`ziZOT+7n8Nj%61vV>n;at*z8A(g73XDwun`v% z5-JfU88k!I$u?dFyiKaZ+)f9ATv!XFVP>SFI#J1U1qcg;P%z`7=4A3_;##rBB6u(> zZ*m#03~JrCnh1{%YYnNrb5xbrTpB7x{yMU!%EEeHCE&|T)w{jJ2dpeLHSlh`=Q}~A zQ7g#opn@JfJU21dGU49}C##PlLDQ}mgg6tX14`ER0 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_text.cxx.i b/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_text.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..16ab3bd961bf3593194caa24c615854933a7a556 GIT binary patch literal 1587 zcwPZB2F&>Y0RRC20000000r{^01}7*0000000061|NsC0|Ns9dhOTd#Hbhw!L1mf1 z$jD)Oezpbx00000000000001ZoUK=DZyGri{m!qrWvgT$VMwyob{CRVlqN0OBt<|s zs#K|(%own0Y~(SJY?S}L_u4be46ioZj-t%NzQ@Ne+I<>tKsb4)!r6pL6Bw@K zC0Yl@Fg;-R#t-lB59ja_ZLb13ngt`WZXX=rhj)Q-PzdIpPmYdW*N>0tCns?HN8{C> zjo<&WrvESPw=_4;D5@WTl*<10O?e;8a})w8K% zGZBE?LBveJMeLJrcn!uphFA@)M}W@}kB#PcGs7ad?F>GA{4{{p&1bl6^?I$F!RIC{ zxEZUN0XAn69EusE?PMxA8X=Glq}% z`i;v_%pwNmojMwqx6kae(0Yb*O1nTBja{Q&rL=V%#|~-EEsxCDd;L0j?Z^nHdgXGZ z^jLZ-mF9{^JHw&WXmmA~Ch^#dP1I;8R09hpd!XV&cS6|}qF~J`WMU0_v3uBNH4bzY zWH4dm9snPD?uDj2+W#ts)6>MdT>G)B{LJ}ZWVx9wX8oai`HNhRJW-@Lr!6CM+?Ud) zE8D)1Mn9ax9=>ai>O6CLPDt?IGjriayb8ghV!iL8p(JS8uiUsC2WpDA$qN1*8*zzf zN#M}ni)@t1h{g^M)HKg2(yXSn^Bdf!AM<~iSE(fCk132LqKp*MJ)NA8l2Aec&*R#8 zCNuP_oSg5<94o0*XOV|8vY>C#%b_2BMR}nQsY&AA)EwOmNvDJ4L%h2WCm z&W)b2RJwVCsnIlwW=*K#3yBVIE2>LyHmhxw=ajE(@nL|cvx!E#V!BAx`f>*QU*!Jk zO6wcRpy+@8RGxDlfex@)nT~(WVQfB$?JVU)*j8dTkye4$viZL@)n{qp$h*SrC+EzD zpx}u=&)_Zb_UB34%vik+b{YE#Y)3M}-h@jCWa2KqhSmvcREGSXS{H7jv0o~Jid5ZH zr4TVOI)kHTE=c->D8qtQ?bwj(*jyErM=%Sj*7R*jr>)=E>&C=d_%#e-bBZ(1kt8jc z^j3*?dBtt^N@4n+NyCNhnK1j)uIQ0mr!6hU*bjSEk&jDaDbTU&vm`OKP}=sHMG7du zg$tPkM#J77(CtMMZTWZDuT(*WiI7hvgX?-Z6sZjcmgT&3MRP*lE2BUsl2oPuY` zsX3-=UXI>3$Bm=PTFpY_TXdXY;{vXq)fElrAU0JK9CHg*a?*RuJtO*!GVUNPL9~QL zrzUlZ3BWKIYBjMmPBs1pP_x+1ETY^!KmhSH2(k6YYHk(^7kAF$UqCX#hQV#r&zZXP znNm|Ei2y5!uLe82WN0n9C*sTe96+G%JSRA~+(AcVZ;;<0HLdnrN z2|M3<6f=fb#qr~cEnWWph7Ki@adoZ0MXfG&2HRlm#v>>f}q*W7WlgO;d&8CKm zqIdaH%z5t0C$>U)&fG2>cEQUVmHC)?h`)dhmov5=zalNd72(^P*=zuJug`!hvyIiiA;)fi;>8=nGB l(o|Cnvw6|6Ochrb%8hX4MOa^#9> literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_text.h.i b/CMakeLua/.hg/store/data/_source/cm_documentation_formatter_text.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3ef6d54edcfcca1c1492ee889c30915ed6c4d409 GIT binary patch literal 760 zcwPbc0tfv70RRC20000000OuG00vh80000000061|NsC0|NsAFZzou~XxMcp((25N zy#8WVVbsPu zS{buHD;efWS71kTQF8dnCD#ml8$aTW6 z(JA&8utm-ZlkQ&KZ^X58yaTFYr%l{ru!sNmRdlV)o<2Z(+(+GT+`B4%EXA?iVC(X{H*=am>x~*C+yHX1d z=|dW&LXmRQZl+Q;XqmTXN_nSUy;~g)+}@_hWyW*3TvtPvMQ@WtLh?6t1e9snWE?iq zDn=$Vrn9gcGETAaT(BC|%G|*Kf|3~nsG!zDVw`F%C7%d8Rx_-~vJqVLi8IBVah8Zr!8KIdmsBSeI zpc~F+2NT#K@Ff$2F&z=y-`}T$Q)V(QV$1f`!^3Ztqr*zI3P)eP+IR2Ej}-bFl_qL0 zjf)eWeH^(pvXa@CqbJ1&Lj%RIWJ#*D^cmQn?y7sA4yDx>7%J6aG0yN_oQkVvX z8r1|Nm)LrUD@NDM3`hk-V@6)3GM!G{Frm`8QVl8>!PRAD7(JeZ;j<{BdkBg1dHbadR6$^ZFj{n%!>mI=DZEDK|qoHh>cpkg=E{VUtnJ z2}DGS3G)Q94_B?Oe?h3`&-P_IxVK`@+QD_J*Mqa0E;OOj>;`TB_OjW{nL4-K&P}i7 zW~o|U_9!O^;j)ZE8XlrflS!l%E&6F&sqU23hmGQ1#c@7!5ys;Pp|E|BhK0?pJq%N6 z5yZ%2m1NXj+-2ShBP2yQWaIf%B^c)% z)*u*kHstdF00000000000001ZoUK&fPunmMe$QWV0)$F|1iEQIg7%PQWmIdSO4A{p zkV!6$wZyLMOAA8$?>i@GAT-Jgen>99`#yjEd`{5+_FlvD0H#JSjHp8Zh$rF?!Xd;) zTYEUI1QpuU;ARV1A^b#zMvyiPo9Mi$(4k-_iDxb!LRSCKSyQ7TK~k$zMhhY|b1N3; zmj^4@Vdz+>MZ*&ej`#O@;)kG)iMhIXaCG!JI6evn133N^e*6-C_}W5$qp?gJwyWYw zb|1(7fU}&A_43ZhMM==h_8iFoeo0yjg9k8DneU#q&Bt0Et(bP zKC{gbpBR0*CC~;+qGcEa>-E~tYBt8#W)YmFlX37=T2fsBTL(Fkkd^hFHXdmyEm&Q& zih$!>S~BvcAq38~D z0h3`8pD`->J{phGD<}4Jl%5Y~GdR6SAcAR>q@#E~j*>^F={%WU%!YoqRmUrC^a>&S zXQR?2GqmkyYVAa;qCHghop<$ajo1&oZCR)s3%K6cMAxOa%~ew2+l5T2vZ~1uwq7eu z@s^Kk%kzSMAL2?_3#4Ibq@vc3{5cAQg~o9M$1a=cx)v&jisi70yos!(*eDD_ST;A6 z%w8>XqP%;rs|xw3HuClMPF#Dfq@hMsFKdUYscjfK2wz`v@7^8@SC+aScx&AAm7vC` zSBP5)j`if>xr&vRIsaMM#u;X=yk{v7L(T1uqTU5<5B|G+E9~V`j}*ILyI>=<6s8YK U)X26xuru4Ja#?tP0fGymOp0Yb`2YX_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation_section.cxx.i b/CMakeLua/.hg/store/data/_source/cm_documentation_section.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..1e77fb4e4187b33b527a3c9189f2f8961f341686 GIT binary patch literal 846 zcwPZc1F`%70RRC20000000RyH01CbU0000000061|NsC0|NsBbD0FSOZ@T}W2|00000000000001ZoV`|UPvSrj{@!0PQ9tn70)Dty4wD}0Ne-0&o-u}8 zmUc@ww!6*l0vf}Azu6X*Gw8|5xg>O7=6QDJnHi{4YHe#+7C=vmi6n^&0PQn!OQ8yF zDU_=AVxmJK6EM3Wiz$4koJyjFMA(@KrZF`r*z30k=G+B8ITHRfp& zQMVg-ipOn{-b*%#G!*=zA!)!5rsqV`3Us({n{Sn!w*^;1YBo)5056UqgDH?yQ8}Z5 zjcfx-pBZg^r$I=Fv`$^ena}68pP(kTkQ3*0c-D2EO(UJefT}@2HDR%`jc+)H5mTT< zn0W*^517)Dji;IhaMc-}UR(~rJHLi2uiy91hu2M*GaZSk20Ei0auyvSHc4ZKAS9B6 z>w6F(oE`Vur-<^tb-JD5wQ=^OGdw>Y4B+IV4<7Wq{;<=&?0WqrQ}43hyBHkXd8me$ zjKz$C|0E+9n)y^^!6d>s%}q6AiN&b4R)ZzS+GX62rvZhXR|+WFu`J7Rs#_e^Ot9dU zf^}UlO(_owK9-6GKOz!J0ny}UbhAGyS`Vlp;~E&Wpw`62Ji_uXWEO06Q%4h{@q?A; zjH&A3F~@9EWv5dW{TdVhw(#O=V{rdOQ5#kAJZ&fLL`iIQCBOfnoi*ft`(}h1b$8^GYp;$42 ztPHRMI9Gy*l7Py0 zDDf7F%5VE1ODKeFD4}U{X|s6hAarLb)5iWRaocz3QSlA^$zfY|XWe~3lN8@OTJTV- Y;Ahc%qxUk?tjl(>23TnQ22{5Hev+?{+yDRo literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_documentation_section.h.i b/CMakeLua/.hg/store/data/_source/cm_documentation_section.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a8d8891bffd96b9bf82d3b9b2d1a7131ade7dbf5 GIT binary patch literal 1135 zcwPZ-1d#gx0RRC20000000b`p019{j0000000061|NsC0|NsB78g^rcT9S}#x(R+y zl=@O3yh_^u00000000000001ZoV8YMZ`(Ey{;pqfXo|vi9Vste3n)tqPjwn&PGZ>3 zil8V0TB0nX5-E_By&&j+-;tCP$#K&S==33xk9W^KclR9apm+MK9?t`qNU@Zp2mv6v zAm1qLLnMV#`;(mLRLBC1HDx)4Pn1(hw2&BfA(ASmCJJ6oqnSAmAuc|OxGE^uL^Hu> zG&cYItiOVn7&9h(S&^lQieA4)!$+bW1cJEtql1HY!Qnx0^ac)p3yZ%iw%|F%BMGGhO6>J%fa5!gA#s zZurbIra+0*G6H;0n9`ChDoqpkJer?hUC&`~c>|vZ)9K)HescnArZZ7#pexG3q38@_ zi!x^zgg}yTeFq|ii{Ugn$Ed*{qw#2dW5}M3=9k0S49>2mFo4NmIv+*Xnp{sO zSF@q-N;SA-AyyRPhc zj0b}7IIj{4FXCdR2~UVjM$V-C>_zLmg>h!9(o`BRF9={P*84ejJ;##KoRXN@F2t46 zqJX3hR-qU4dMGRO;UtGRC(5X(G(zH<@g)#Yj-VNmX>!s`j6&-{gnCdw{iSbnSSOaI zRHD~Iv}QU-FUH&FCLR@1qDb6mlz|L9$7FY_ynC;#7CDPU6oTO&Ns4=iRIzQ&rEjHY z$d@!`SQ#gU>p(&Hex0xo3H41f_(7shjC-ab&WP+;gg!Ja2z80Zu9ahGUOUFA+sDhs zo^&=I?skCt@90`{J|_wYzcYZ^^l3qHMM#q1T4;eiGP|~EyfoX!aE*!*m*s<_ybvOX zks2CXr&|-d$KmNpatpBke#mh_Q9IN*oj`*?lv5%%=~dl_m0*cGLCE_pl-Su@DAP?k z>RN0?(%`-k#FCjSpfTx9;~V|_M78bO)-Z;=DpVL6joZk&Rt$cqwqxw4r@I4j7&i8U z2aU&-Ru9ULZ}BR_lEd2GH0~^zKq>5MxoM%cn8ZRbwY=MILaS7zlQ3N2fsnsH;fulV z;T86wZh2=%t*x1~s13@J@&r{?)7a8cbHvVdqwgIwUO9}e&D@qjS*h%HLE>*6=i)d# zh5Z+mQU|#!3*-1zraN0YM(}RGj`A0D$#~9s|y@V4RpQGb2a! z!*1ar^uB!ka{RS>@{9*>UKY?>v_Ga8TXV$A){<1B*t%Vx(0!ydaY4^#S(;xJW-7RYCtJ39UmwiR7PQ$B?>qK-4|B5A`v*ZJWX^b( BBz^z@ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_dump_documentation.cxx.i b/CMakeLua/.hg/store/data/_source/cm_dump_documentation.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..30dd6bd25172eaf8f8c091551ed662a79d3426d0 GIT binary patch literal 1568 zcwPY@2H*Jr0RRC20000000kNV01u1+0000000061|NsC0|Ns9~CH|}Mr^V(>tk5}1I}ig#4Z4M zUGjxO89dH}C=Vhcr;Nv-MyFv!;R8)5Cz5e=>#|82QRM}1hTcfcyAZ^!G+wk=kj6BT zM20MJg2%_w65gQ8B}rx}nJFjl?OPmZ5osb|40B(vR)4S5s+D>jYQMR^{^7p+Q@ehm zTwpL)uSS=ld8j!xHI4HgTRib_HkVKciYiJSK8Esva9V;+5;*EA^t{Is!MF_5*a2up z5ok97oC?a9bmCyN5vALRj(n8BILxJ7xRuJo!-EsVh={}Zta9OZFDqNqxr`$~%wR$# z2_xaC-0|Mj>=5W~T`PU722<4om66lg9 zV4}!5`o@bWL?;ZyNg|(sO`+Q!dKc)`{Ht@>@vl{~=N-S-9*y9nnSqvvE;h;ZiJEl|>m)x@@g6fVa#hJ2-ijw7Y3!&$>*p{DqI5#RHocnL*524YMR9g_ za!oevRH>A|{FgoI#DIGp5?>5-V;jBnnJ;mmr*Zar5^s%JLtmi*SjovOxi zV5yF2KpeXS)m6#Fz`vEXYW#qLt^{uRudV1t=}3YQjQ=0Ww>0w>>h@R(K9cX&J}BeX zMkdoBmE=Cs+npuR6ObiJf*DCPZST`Cnt-h%Nlqzl$BtCyslXks`Y5T8$odkdxJ2ch zp_(E2_Zz-#v)65YY~PLiX0O#8w(dGTf7owbd48wg`{6+LHHKmjM7vxjQB=l4%UOL` zi-tq<8YgqymJEcPpe!O(=UaS^Gu;XksVSyJy0Fdd1TcW&SW%~e0bQ3(QI9Dq&=lti z*?a@1!)f6sHCWWj`K+(nC7_(c=_%M#Y%BH)b7KqCYP4OTZkq$qRu=1U+W0oH8(>s8 zh(}tne8wW-xSWQ{hS#v6ANIErBG<^u zThahe?bDn|JCXe9{YFwvkkI)+rDulrtP7c4(HQnec!DLfk--h&GpiX)T8EO92{#^C zMz3uH1DbCn*LBt6YIZ$P(2HRy&WOqpR-wjl5eNSZMJKq^-zC_~O_>icH(AIP?7E5y zNSwH&8?CLa4Yt*Wwc4@<&Ac@$eP*gG7_Jzq`~sR4&;LmuUbmiQ?_%HDH*L6iliN4l z20ezmtaFj6|nAdv?t>P@&-w zd^FK=fah7KYc4^?xUY3PPorq-^%_ZERydTf&2vt~Ue>+5@?~!STK(2hzD@lO^iL_^ z&hSeccC*WkJ&gq2f#4NqQ|NAlHS#eDlY+V-LCFAqf~R|?1$%Y16LsQuN1wbFy-#Ns zjD0bhcBETyws~E}-w_(AdyKL<{BeFtu!8lmL;`pZwcVEDAht7z7X`Assf|l;?1U}C z*%?&xP2E{T@|0#EXUo(x`>hA;q>anf$BoUzYJInX`z62Xp^y3A@yz`8R;!KoX|OUv zj_GEF6kqLgj_&`=5B(02cUW0}17X#-TmS$700kNV00000h5!H$y#N3J00000CjbBd z0RR90|FeF$+z$Rq{r~^~00000000000C=2ZU|=}Gz`!WTz`)?C zpx}~Nl4_*@1}YG?k%57^zM+x6p|OIIk(H^Lm5HT-3YUUHSZYymW_}(>u}V;CStf*I zsApsVlxASyJp#cDh6)PFxxtmiC8@a~`T04;R#tAAc`2?HsmY}!iAg!BE}2EC$tC$k Sl^Tg<(FU=a)?5HuSta_9%>Ehx literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_dynamic_loader.cxx.i b/CMakeLua/.hg/store/data/_source/cm_dynamic_loader.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5ceb90415d697d8809cd6f3aa90fac477a1439e1 GIT binary patch literal 1019 zcwPbf0|fj40RRC20000000X-K01T`E0000000061|NsC0|NsB5v~2kmz}kZ z(tjA7L!hMA=RHBqSgHi<>X-`#pIFKiHBw<(S4O#DHVfYNgMr;A5GEhzDNT6Tku+k; z4<8@TrtlWSJ2ai-bYc^N(^FjdNKKKA`Nii(z5c#d|F!n+Jv17m{(;ngbE$tarMXOr zJBdws@#UT0_<-BEAINO3_#`$^39A;R0iU^stKEJeQ!SO@dEx`KgaDVO zK{3tLltn(G4H#P^`sUGqR1h1Jky>pwoB3gaYWPx3YB$4fr?w7_O(FpGf`}Q)h4yW2 z_zYvNLCdkL2=H^nwNZSO8y3Nr_VDKJeh97G2l&$J_glBahbGLpiDhnpO<7uim>5%& zOmNIW97R(z2RVlBRX@1Fq}CtpPJ8%ZYrSp{Z?6UexW4N{3wo{oupQiYTKxj3ci->b z4X*rxsD-5?Ib{$&iI_^mL#7>-MB0*5>jG*}cI5QaymwOb-taUOdBouLwsGRuo)-$L z^|qw~8ph1~>Sg&z@Q@&>Z)FjcY7@7nl1JdaU!y%MAzr_MFsAARGHT*8C&_X((Q{46 z1`;71K2lW8Z)h3`_KU+DNhz=q%pTYmf?bPT$3@lKP-_;?g507ucp+h_Iw!U~w7j8d z=%T$$@u_VwmlqL|(Cqgx8JK8*MocG16?|C;*`?XR<5y=ly#*d#9#ghT$SM;qpuQuO zkR2C}rdW8M6RSLLzY&hN0c7?pI3^ZiD;6I^1zU~l^UDq66lRI5P<2N9>J^=CFl}MXO811T*Zw=xe%GJUkp1FPp3zuLLKx^UbRRM{UwRP*uuir9t00 zTZK<6;xhL)7vOwM}L;I=22&E{!CeT{{p$x7@4oe?34fi literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_dynamic_loader.h.i b/CMakeLua/.hg/store/data/_source/cm_dynamic_loader.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5ec0bd5e71fb2b3e9cc86cd5d3afa03736a69245 GIT binary patch literal 827 zcwPZJ1H}9Q0RRC20000000R2}00v6{0000000061|NsC0|NsBhcGhqdn6h?uQ^ZX? zlc>}>WaX;>00000000000001ZoUK&bYTG~%eb-kEO(=2NNKOi+QJR9PIE|@q*h)*D z!g@8fmP)%~cV)+f_S-wFO>;3Rv=BWAX=cuuGe@(E_D^5x3Ic$MR!hyQ7y!~C`+;x( zsaD1uOiE@KN>|{b3sE9`L5Z4Kr3p4vc~hc8!R|DjxqJ+~I@?HA2|iFPM;#V#SFlUP z116UZTe|Y}%^M1wG3&8}_RmM%?)#|wE;@VQ+h81|;= z1%Z;!{Xsvwa$3*(*{C<0!TER!2~3h{)=w`7$tRVN5P>Q)` zTA*oZX1z4)k4JEZhHFtfu`a$%Tx+!wIZel)rcGe;5}!6HsZPk{pDvE$zLBd`4yhFx zS&CoMsECcZXM^cS-bMB} zoo)-fV0yoE68vrW^Rh98ACqyq(;>Py!h8FmV5LOv0jaCqbF^fNMNVhe@oibZ*MZxg zClvqne1gDY<$iU~K=0H)jlS-jw4z7Kw#OeU`Y!%I)oN3<{~4eDC){b-L79t1@EbN% F1($R6i#PxP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_else_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_else_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ca68b376ddc86c272006aa00e2b761bdb9681969 GIT binary patch literal 862 zcwS>*WME_f112*D2Ih|tHUr~-D0t?3p);%bUTRm!ilgtBT%NGZ@ah}}Bv3JDZP4wk zI|c%^-@|!s2NZ2J=jObU$-M5d$+GIh-^`u_ZcNV&jE-9JG0*Ac{_-chzRa~f21!e1 z7MDD$XnL&weya_CLS{*>i#U^mjj+AoIR&#@w>GD0XRP&Qe^;g(-IBlJ0>`DcMB~`6 zx>h1GDTVJoDNc#K6xCCDoip_3)617%it+8J&ui@%=#$Ol_=&ByO+t>Qke*v|1ZUV5rp-uTM>d+k~5^}fQ=8xX8uU|>;$COStD2}*Si0#khC8aK>dQ2O-Ls`$?3 z!b|q@pr*Q3KX0x>1|l`D*2O*2^$HcZ?e2N<9mDIlBxss<@;iO|potbJ!qtc>zn2*d}chcgwcDwl9S#e9a zH-0ia@PXN2){l$d-oOS literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_else_command.h.i b/CMakeLua/.hg/store/data/_source/cm_else_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0161022cbf8d6151199ebeb167eb1616c6fca504 GIT binary patch literal 1149 zcwPa01cLhj0RRC20000000U3}00&0^0000000061|NsC0|Ns9C-f=0~75{^hnZF?& zS!ZD!&3q&P00000000000001ZoUK%CYuhjo{_bCKq+_I6XSaJ{;B14;YuB)(4T-x^ z7z{-|$D*=iBsp0r`|ms1O`9wkW3XV1qkDVq(Q_B|-u!wL~8UPo~Mt+hgG6skE5rvSca?i=!nxA=eR8 zi<&LGbMovN9eiZ2jilK2`^E9`o9N`29yoa&zj_nDdf9}2L1TqhaZ?4CqWyCco_I6a z6J6aJu_zpL`JvD90zM13Vg`?3sCek#wy`H#S#6xC%Mf57B{X3c3|cfx%tFdGLww8_ zx*ra-fx@{ej-u6S74njp2(?*6=jnJ9J-QaIlt5fThK>noLywJqX(23Foi~VpzB6H+ z5%bz%249Ei`Q=p#gNtkUI+#ue7wL5$R>Bp!c7RJ%&}MN3#g>&66hw&(Q|=aY4&&2l za!yf$55v(gz4lg*pt4R7 zM72Tnxckee+m4)l_n;l_k;5~dk+$+6?PBXi@a;z23>6w zC|qr$>o?Y)!9F0IN$F)&kh(TXds8lqCEY2mYvs_8mr!l6cWidUh~#UV!SM6Gi+8TI zq=^$wFgYRCy4GcJyhPva+veNLUoGCZG&}`n7WS~ei(NEZBVMdc&As4x5n0X|`^RegZe1pIX zW_q+Y-34XbtlUAmuTFov^sMHbH0~hNye?6>`?32=?v$1!e%uV%tCP;mF+&^AH|48C z<@cdhzR?ZMhn=;405-vm{WkbFU}v?Izv0?})h;IJK!d4^KPuYDe$5|#Q=PSOy{!o2 zdRDek@-n@xaLl;T-K|+TdYmEB*-w&Ma6nTo^57RExjKIU00003Pyhe`006B300(^l z0000000BV&00030|NsBh$n|AcTIUZ`I6=V{-=1JT3yuKbzfO= PO&C$XXS?7Fa#A^FTY?=y literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_else_if_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_else_if_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..f0dc61d483e33910addb403b857f0a358dcd496d GIT binary patch literal 833 zcwS>*WME_f111Ru2IjR8HUr~-DDZvlpQdwe+Jh&%w{YETXk2)Ox4(n|2~^Bk8x)&= z+kmI$`+9{c+V)8!a)Fll<|Yw=6q9#8cPev_~)(Qoz-?}zS`d3|^D#M`qTY_Ta;QU0O#Qh_JV zX_eRgyW7?ukBZFoC|k=fV9NW&fSXNsmTj2b=BFL{J$AN&8O){^^>~^NKYTDTV zgUS;MO|DZ!GxyAKyBWXis8O`dlg@gXs~@|z-cz3PKPO~XO6NBDWmo;S6lE)P)IMK% zFX!hu=J#_$QZI*cG+&<`%x{yww)At=(nAKJla^$N9l90lJ?BR9N$sCI`{!=Wsy=;L z!~6aDJ@NBC``uc7TSn8+ZT4lyB?>d2d0IVOH*d0R>E$w+jc>y?$!!ZeaPEbyl!Q$0 z@Bcg!bI!c~@r-}>B&+6s4|2}*vi)3`pd9h##_zX(85aji=fF}F5Ud2It0&N8FRsZ{$s8>&MuOhUzDmh^Dk~`6nKi7u3G)PxeghK)Vx|((Xm~_b>R)OpeqV_Aseg% z3*?ihILvnV9ChS#rDT3$4*!ES&yE`~d|;F4VSLcALwJcr8AtWGOC>XxL>_uJm5W0s({|Er=S$~WG literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_else_if_command.h.i b/CMakeLua/.hg/store/data/_source/cm_else_if_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..c5bdbd00efab1993f77f3381dfc150d312a96d65 GIT binary patch literal 1149 zcwPa01cLhj0RRC20000000UA000&$E0000000061|NsC0|Ns9f87N2mWjFjuYVwQw z#0rXPt^ZK~00000000000001ZoUK%UYuhjo{okMBNXJOC&ThMofwK)VuU*5EHYDyw zVK5Z=9E-}5k>q5h?7Qz|H*J!wL~8U&!)-D+hgG6skAuE6J3@}Wnpo!glFVD zVro&dg?CS0yr6@R%(bx;-F_b*9=?f=4(WlT*YU}l_~ca+`UQ;@TE$HrT#EM3QFu&N zGAFvaHDXaX=<O z7`h)0w1L98DvqMnY8CR5s0g)LMCa*v6g|2Yu9QGzL57YAX+w{VerX{rSe-YBfW9+f zoe}feVFq7^>G|bV3WJMl_&S(Q2N&seA6CK@x^{p|RM2K|1;v(?6cj{>3{&nFbPnUw zX>v|cgAc>eFunF*&xYy6>1+mPms1$PWH3#K$<=5uz0Wkcnocffr(xTw&&%d|iNGId zRN4uSwrQr+9<=fzV2*gFuKt_!dQq?^a+P7et(xyeutSLK0DK6^_p~K4!p>={F z>h<6om(1GjxB$p9H-c)R$}BJiB8R!u{Dw^4x)rd?Eedw#h8U`PE(IsUy4+pR9>qjD zq4L!CS}D-OU@45NnIzH`iJ|5+Pz~MwI{1AN!d0-;)nk!;1X|NNJ|fl%xmi?_&$7P)mKYZbB%q z+=$ANbhAG~va`mA&827YZcQFt1@@mXg`il8e%dw*Gn(oOxyVJs%p)P5j~$oi8w6f3 z)1xKoE-2$>Z_v(aDYuY40oE=m=)gUyF8-)!NBh0M|4nt)=Joy} zlz>%0RR90|JYi#0;kB$^?Q;B?J1L(FRmc&EC2ui00000000000C=2r zjZF%|Fc5`DaFtWcqKJanKZ+W~m4fa>!F`OO1Zo1AY3XS^j3@CZ)^_a&!@S`Q?*YIY zU?c$Gh`3j5B=$su&XQymCuyAJm=-cy%3_U?K)jhi*1O+xbTN$`j&zZCF2MNJ&8N$3 z5gQx0Ru$g8ukhq7TUDJE(UkZhWn(n^u*WME_f1E#|a46FqZHUr~-D9|&JTa{_DZ`$+Kg(kmmuh2$2j!3A68P6YGn;>BsH-=le}hO@o#BKNJgV zYWm*q{BCtG@%v)8wQL5{k`z7PF*{f&eCN>RSQ@a(G|lCF>zRY=&S^UDaO#_sp~#!7 zu&HTb>On^tKb?2Zv)t#Lk@&_LFOt%@@I>(;WAoYyi>Skm3->CtNtn$}dnkT!YS+b; z&*ql>-hJKfqm})GAFJ>Gds*)1^-6w97uUP#>W^lH$sd1b-YjJyvfABK+?&_$)&?cn zAHHAPJZzfe{9}KIsLFAzYq_%JL~KKYp++W`iq@3uGck+J9BV>LzBaQdCa(N?>ieFv zX^)rf^z71pa%i_7TkZSO*Fn#Dd~PW?`)UNQ>pk0(;wh?OsISaqe165HN$0qFCGUKh z^!lPnV?qVDxuXpG;V0ij%tG{C7cyQyu`uYO_u;eQJyMedC$+qG7buo+DXhqiIOw|m zzIR^khUt4#Bz)BhEV~pN3I){n7Tn^0wDwYkRKNS=6KmH*#Tp4`x0FnG(=+i6oSIgY z*!*mpY=>E;`8vBbocw!lrJo88OX2uhE4yXQ^{jc@*B{I>R=g2+;d}L*EUz0gG@feA z{rOKS`0}yzr+20`>YwW^UiU>@p=hDhR`tnCgF@DX4dS)3I5R>mEYJh%vRRD?mu_1kngNi$?gF8-pTheB)+`vefw|u+uy!* zTXjCTzS~)|_~VEB|6;rDhAx~|ZanGU^yPch?QTbhr~Y{Q{;E~|ec5wgmZD8{Bpk$jnr=xIgbg$vjnO*{Hb1mGO4hz6j~dFIt*@ChR2thjQIi E09HW9%>V!Z literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_enable_language_command.h.i b/CMakeLua/.hg/store/data/_source/cm_enable_language_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..43b1fc47ce4a566558be65c72584e6f51e5cb42e GIT binary patch literal 1619 zcwSYMYd8}M9EUfTn9AlZ)Jba-!jP$O%nX@`YUF+!)2cINYnUWMDfbE6OfCtz)Q7ucYbdjPt5l*-BJoSF~KmU)v_sa_a0)T)YNVxz2prW5Y0J!>#X^@Rd68K%r zDO=(oEZA$~i_&l~;5Q=kt8sxOja`uC4sHUP6nqRa3@{Fx@ArgJJ=^5Cg_-lmX zietl$jg>F$FW3=_1~uhhz}v>WI5?l2_Go$&K;YrGu=crEE_AURYl?wrG1JL6mMTqW*eE>*hpPwHfp*? zsFQm??y{q-%zUQtk2r{{%-i3&z{8PRwlemdkBw^npDm^gMqU#wHC$Q)qYj?!4<#nv zqMBesq#dTf41EW$-KGeqR(?e+Q=07-zExz>`Q^Y&iz6M%QdK-%8;{z0|GZRD&m8AH z(FS71o@EjS^2&-O3sp=F&UNCGeFn_^Aa_s9mo*zw8_;;r_UnuBPqOS-hHpTq+-E%3 zv?_@PJG^xlz2I}ltc)|tF|8J}eoeJgozcC&nLTa8IQE(7D7?0sVL|3aXJe-XIL5Bm zI2H07eIy(CIIecK6!B2VT>c_Eo;rqo#)3_~j*F?VD3Wr% zZ|LVQ3=ps(qiG2$+ch(@D8Y=Aw3mEwPr5HD<3e-kW-gGwmLDDiZrLQNeST-)A(L>f?KQ99K6XNHg?(sVd@$rhWgNR+$=M`_)ZMA0=Cw!J=){SMChM>GTwSw> zm<7a(;dc-Ex-)IBE*EV&y{LS9cmpMzcv`_rP>y3-juIwW4_8Yl?)Y)@stzblyssP> z19fiK*a;F|5{6A^`kh={MNc(U;oJlPxGPuy)}zj6BThGp*NcnEdCeNm3j#U1%LJ+8#_c z7N%YQD9o->?KXIHML(txLz2IU!EukaEHtI;R(r}e2dkW-DS>55{J0h!Uv_Hw?-hG1 z9TOfyzt1VVL-Kv9h}9Lj^knZ~X{(TRY3TZh*2#hVtPT*^xqEIpG+EMq`PvF*DeS!_ zl_$2uV8EfvH@t zz&WENQ-RR;7FX{-i=Ia7m;09XVRP>&PQqhrYgW6)arSNMoDWmEVW(2&l9{=%?Jr~F z+n|zjS7L(ZAY2N)szfS}-!$Q8FYvVK32IU9_GQ2?huNB_M#7!a~;dTLs}mo>|JrvwFrA z`9664%xlK$AfyS#aq)tdA2~P)>Z{CIi-@JnO`CXk_e9o&BvN1LS$cNayAvFDz+z>G v!)_0fXwL6a4XEY$ur$}jED>jIeKl))D{;x!=+%D#SWT56P literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_enable_testing_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_enable_testing_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..d41672da691c2aa4e24868a34cf4e26058345cc8 GIT binary patch literal 889 zcwS>*WME_f113)f1{O95n}P8^6fEBHg!Nq1H@^m-y8G5?r%NZB`{k`ro?-urZADo}u zd0kv{{-kHYhsTSjJ!jO}vdSdeiJ>F?jrbvsq_sVgx-6Tsmr560H5KOw*9bITZE`Se zRSv6_$eYxUm%ch{%yQW@^?*$8(@kBWmklC+9ld<{qS!YM)6`8_kxvUgK2#Ldn{jud zz}dWd8@c%`kM$2e(f08>^s&%l-j@sWSMY`#z0p6Sdw;LbpOfZU!S-RZ)6cHHb*Rp; zMCW+H;oRdUa*kTu_icUe_fIwPioR!N=b*y!#ei9g_m%E6yN$Yn_a$n7r#NP=SbMj{ z@j~g`c$1W_^(CS)&o^g&DBH5FmthmH*Ongc$GdN4JT)~>xUy?LM@D>6vT6KQG4CDz zpI_hJEwkt+^Bwm{v9q7sgJ0}e8=B3yT_f>$QuZM;>4TguF0(v;^JMXER_R{PDLQxg zWs~}X!*R=g+C=I-{AAY5Ar?4o`Nz8^r~Vn~zT0&4t@9Nk7H3a8SrPO#QPGBDkAIBVB3(hY_bMyo{*S!JO`xeL;k%nsy}ImvbM&7@Cy8^45kb(TBHwyk_J&3L22 zx7y^D8;&+D`+4vE-R)DaO5W7${cH0j&gO->^xVI{XS<~bM#k;v-cejqFK~X*>?el) z(<-g@SNS}<_|s&kgbc4*^Fz&rrnkZ->)d^`^84-I%oPi4-@uX}5NrS@L>Fi}bOe#0 zggE7?kWBZv)f=|P34G|>aWhQF(?|<7A@=$?avd@di1~PJGye@|O|GQbUV+UOf&68;TX40BiR3W}YooGVuy9eU`F z<@sJU-BXhb@?M?Lk5WB(?RK2?s=ejym!#Y;+8n5VcstI^>`DBt2@8%TnsC=e1=%P7 E0E@Jaxc~qF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_enable_testing_command.h.i b/CMakeLua/.hg/store/data/_source/cm_enable_testing_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b804242fc1c2c41167075714158a3fc48f61a219 GIT binary patch literal 1681 zcwSZ1X*?Tt9LMpvhQyhwYe`*=nyRZLm1+^Ur9(GDF-bd(QrgB5k*?+r8buofRjVV; zjMAcxVrZEoh`D2tv?wa-80uKpb+6a_w{m&mDbojYc zws%6;2;unS%yCa{2L^rc$GijJKSktKxkuelHIv(qvgm@8ePcN?Q#AH1j6ej(7g;HR zMRO}O-IDv5xT^KZS6e6-_UfI}TPO!qPCi=)Rh>^-=e4NZ7(Q6X@7v0^y;^9*`H2G} zt+xykiLBF;lSHkaX>=}lVG->h^Qdty!7PXsRJ!g&cprn{apDHfrqLM57hukfVW@uc zb3J-5Z|&^~<^n@oO^xeO#D(H-T9DpbF}j#fTn0KhmgMbM^QIhFV9se-aJqR&=_WBLbkYUWQzT>O~E zY^Xvuw{-dLkWIl(iC7#ed3nvM3a2^Q;N8{l~%JrFixk(sY?4&97k-!bes(eHYe}3}9jnZ-BTQIh#?7ti;sdPZ`=v0t?Dj+uJ-x?KrT z)~&X9#u~cAvqxy&cTWs78a%fhE`h}>{cylvG#(c=QrjJEksDcRKPaw_->q2@#Kl*l z$3W+Qpbz!$ABosD?0DLFpRc52)=J`kCmVy&QJQ7Yx2{V795hGxT}Immqe5RjL~O4?;HuflNgpKFKSl|LN4ikNfDK_gMixi|qjyRjC}J5&~n~M%BFrPm98d z`~Tk;cA*{EVW>dPkAv>V5S6X1rjaTEN1Y=D+CWa=sf**67Rb2=kE8r%2EGuMl#~SA z2G|_|oY6R@@MY4uVXG|LngLLH*4GL&Jqkyt-dt#OWyZryttO)<7A^Y54+Ym z|Jd<~wyN^AcRx~3;3vv=D=8(NvR|DooJjQfB`G#+@La$urIr+P_;W6AY9W)iLOWU? OH*r1pwooz0#N{ufq!-!% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_end_for_each_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_end_for_each_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..5d393083180b55906005533848af177246bb7184 GIT binary patch literal 879 zcwS>*WME_f113)f1{O64n}P8^6s&o7GG=u~qBry6xbpAv-Iwm&3jWN11S;mN4T{a5 zZ6H$nJUk}#>J@(v?X^KC!#V>mEqLnPvgXy|?7Rb7HzwwKtj_#jdwogt>XrRl1&m_m zKQ2CRd+_7-{-}BE8?LOnvWAmUVctgf7UPbsM$d90jdus`V*FmNoYfLNWyQ?USqa9W zTTHD)WKuq!y6XJESE+mBCCbNMQgU5kD4;I)w%A8hu(ws z4c5y(iUggk{ccuk8+J(}*Y)-fhQL^7e&Yof7rfi>p)$)w#W#Q{S5LG~La6 z{<)3k<5az7PrKP{>)o|)UvZe`*f_28)(=1FwR?ovdTxE`YWUV_5Z2v(Es3!_(=KvN zamTao1>&iZCgLG1w|ZurE2`_!VM)J z>nBq#t=}_q(#7Piv?ZsvIcBb3>7M!Kx$^tz&t*iPy{T$7yBPKIu%n9N%=;5EJw^Oq zq||d)zOBi~bZ0hfnlkAn&$g)Cz{3goFK?UvIQ^lm=h@w&+gV={7di$!y3wsNz3ow~ zloZp1r+Z$xyKMJV^#0*L&)z~xFid%(_l*s=9-R37wz8ffcBVryEC~X^GGIasgr-AB z5D7|%EE37S4v`Drh0Q*o@GQ=%DWA{oA!GA@Es-b<>Vy2av-+_RcAM*c4BO$ zN8q5WS0ii5YS-+p>+h03eyL zM}+r~7;WwQsbntKrUd^s7ZTx5RA`vfhTJAPt0a0acsonx-W~xj2PzwCGhn<(bXhW$ zg~i1h-jc(Zsb$5M-X(eWj$V9XuJNY`&GYr;<;ULDC0%g!OZ4Gm^x@~)^=~v*Xcg7D za4niYSK-w)naQ5$)sqp+!oe9o_ff9lFX1-K;025n5B=TN_CzbIjT2QF0>n~6?PkHC zMYF~%q-b-*L&VU1b)XFt&aI+eZ?oBiyrh1F+AMoF>15nH94%ZafjR~mIwqtIJvREK zg|J|CULyi}&V+SFEGmZ?d>*AYclRm8w-4|+p3UOh^q~(M;R;) z)yHKEy++{sHY)7|M_U(DY7bg@CNM{hr>cG!|GK^4jmTAoc^h^9DS|g-5(;0jlC$En z$`Crd-1Dsy1ifw-zHrH`ZSxF(tP3M3E2_)_Qy_9!NX;L~|vkM8@!yXaj=q*i!# z-VFJp7?e#DUyPB1z31v?E(bimBADp8Ss z7D!0334vc%Oxc<#r)U>iOZYC_nRS$9jlSYvc{wI^3~8Oj+vvYH9r@|p<85mlXHt4m z6r`1-W_eRCj3pH*t}Erx&?%uBXMeEXcRro1W$t&_tC-u-*3VwdYPp9A&)c@=Oj_)} z>~D>k_5+%dcx^qKP9TfAJ==1G0?Un9Ig(-aDmXi@&#;B`^MBrrok)azIL(isSc!gf z94BV9p;pL6F6tf~TH`y@LOWk7@Pe5xeHGj-MLf>jA+dNu5Z5{<4VYJ)lWHAgn%Cpq zE|vetkkTgrKOMWYGQBgXRSJ@j`x3Y1`L5Di+J}QUxoPwpc6R)K$*PIpcmEIEu#)lw z+jr2K)e9YfLvPMVD)i;?S~>rsI=dsgt-OP~6aP!VyiA`~IAPrAvlek*9288#`PL6; zTT*6`2mb<#iH@EC00003pa1{>0079@DV|vk7D-i=c(Rk}u&)c`>#}3;M$k|1iV+9{_v;92^5ci+HPr6mC`Sa#K|o z!>S%OBdo`&nW*t4mIdO1BHQ49j>|{t?QW>g>rq|<9DZbf<)<6O-bP8<;Zq0>Ti=Hl zYP}V!-GgR6VOc8GlaUawOgFPE_tw!(T&0e@T%!q|WpGyDUozd@E14vjWG-3~^T7Krmi-jl%o43%{i}XoF}_8T6g@s`$246R-^4a!anP_=PXGV_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_end_function_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_end_function_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..eefa821496dbf502f1e2f9211496f968adad5cf8 GIT binary patch literal 881 zcwS>*WME_f114_<1{Pfin}Ov&6copkmJ2pwoG` z4FvYQ))vbPc%peUuaUt^+9C9f+lu%JPuVPuE=4IRO=R0SNm%6XcfF?yoLw@9n;i-* z58u4W*|)#`$|swKr5Be9`f@OQ^s!NxD z*(Dkl9*?K4Zl7SD9O@G_b@COhYre`M51;q!2*qshW{JH)muPnh(# zuB5I`kjMStPjQL3mU#U`7gx0Zb4#9S{AT`PzjyU*|0b-C>HGTa{>Q@MSNz2lWs)eP2VG2iyq^Eui_!rkV}ac*hs%8+I|n794& z=Qi1oTQ!?!=a})vtq;3$<-k10MwOJ@+U33BVV>M!`Bkn5emg}OecGq0^T6z6p4e-i zML%WlxMfP6-MriThUcmh?*>_|8=C`;-bjn~W;2{9*fq}~Kf%oJv9z13{iMuEcP%$g zR+-%&u02C1s3SpgX{6Bl<$=G>Y>8QZ`e@dh_tB+$9>tY&{Os=antbNsx3eaYq1 z5Ajah{c8h@9Q!@>m7jL$3b4IDwp^;>-rj3pcR&1e$RKcT-2oTRNsHpRviWsI6K^D* zbNoBaJa}8xp_e^AH_cYO=-M4J%}&0u-sbtrE$QLfOEwzblHpTgef;xlif#Yq6vOAM z{~G6P-@NFl?D->JVyE|U-;mnt%G|tnb^i4St&enN`S+e(Y5L;up@t_nI@3e-gj$RL z#u|OIUH{ASW3|^Rp?~2o`1|xEGbY>=&2h>7cYkGbf>5+M*Q1E#<*NCIPY z1d*Vm_`ueB0!Q)9FRYcnq~-^)9%{`ybr>}%=K3DwI%FVH{V4arLHmk!Ly;r7Qx}Q} zvWT+Fxg4xs$*-BGyC(l|{Fn7>s!RnuJUkd4uwIa6I>1=CdWK4!;QuWrHo4Avx^hNh zoQL7`qe724K6>?sy%+e`>W1a3IM8^krDs^ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_end_function_command.h.i b/CMakeLua/.hg/store/data/_source/cm_end_function_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ff27cf112a9d788cffcd10be551d8e730f6e8927 GIT binary patch literal 1272 zcwPbc1PA*70RRC20000000Wu;00>I}00000000F4|NsC0|Ns9C`d1>YNaim)?&h}l ze6`dbE7_y~00000000000001ZoUK)DYvV=`{;pp!_>SWEa#G?J0&-h$eRgANC&pHK z1P;o2HL{khcFpd}z7X!ecUJOSdJ6Chm4C*T2zNLX4|m zxDoZA>+qVaWFF}Cvk|M@L7QKAkS_cs+?E-=?bS1g4 zV0Bh80(wq`bw(^phbep>C%5+x3H0wC;d6gJ@82blJ=hAD>(T*kP(h92a`G+KQjik? z8K&Gb=nSUA`QVnk`hSckeh+rJdktt7Ho8Nh?1I%(s=Y`eF0eiGp_`Qz>SRqw`N5yd#@X_?DU66_;g- z(Bj2m;95Ztbvp2cOJ;4OYXD?k8bN_kr52b1k-<`G{zN8kZSrb58wGDiff&~1QVI?S za=}Ybzly0BMACPpQ%?x}7;J=bC6m+(MKe-z5?j>;-zC1wukwlLemJ~G@4!H6h3$*F z(=XNCpev06h1*7wz3R}n;FQn(28|IZ9+BgCtTy@y$4WTCB94EsvT!idTHdO zn3HOGQznchEh(-`<==aBI zU`Bgtja+1+s?o7DzA_DS=TilqGt;4OgS#Wd)5tB7OST)f)>#D>CFdkv2dU;&e|Nj( zKSCt*A;3?kE{(I^8dgFDNz{FgyZn4v>Fu6Vt>Lh>SHSDJn)|JaR6DbL7#$E{w$ z&;mHAPMg$1pCB)ni!Z9RKeJ!Y2g3Ue@R~9&lIJx}88^D!r0~n5j7dG;dI7CX3NEtX zUsVp5*8l(j00Wu;00000-T(jyu>b%700001K>z>%0RR90|B|73Q!M1+lv;MNLHzs#x$KEqG7U zv4mz5$V?W&3ci((;A@$-M+^GH!2dJD{2u^(1N4po;1O}6g%s{o?tN2LSHr3vHWyfr zRCB3D*H{*aFBI7ZzdbHz)Y*Ng&zrmjIQjzU_wvtA#Lh-Z+TkJuhg08$HBG%0tKG9^ zK4DoZ)sc}9Z%q4SSstvTySPd%dAUUsJj>v$z`tbL`!_O4GRR!CB*ww%IJ5NEc`^@d iez6>;*m;&{{pw%!hl=q%lBDSIRXe8fNAUxKXJS|%!EHbQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_end_if_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_end_if_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a91343aa2ccbb18de74e94f05731fa2cec4d064d GIT binary patch literal 990 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_end_macro_command.h.i b/CMakeLua/.hg/store/data/_source/cm_end_macro_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2acd570dd3e5009ec1690349855e77af8e4d6fd5 GIT binary patch literal 1266 zcwPbW1P%KD0RRC20000000Wc&00<`l0000000061|NsC0|NsA;XZQXGMH;`QR7OW{ zcYju+N#I}r00000000000001ZoUK)DYuiW={;pp!xaDx%R7%nw1^Mp4r#csNc4BPj zN}zD8S0j7LYS-+p?1s?)-r1GkVmllMHA2Xmw`ZQ6XOy&l|5?8%0vH-SGptMjARDkp zg!hmcZSDJ^WUkPr1pl@W65%gYXqeN6!Uj68B>E_LJIco1o&qnsDjzUzbf(LasXU&a zFX1h@_nDeiY~};9ckk%MXXff?im#uqE-pSLmlt%w<*(_-PwB@GA@mn2F+(DC{`6O5Hw{RJ`fn2cRzv7?E`%2j7FW?$wM1f!p(K%0GFts&f?}2TP~!aAWCGI za!;TO7<5P34MlbS?Dcz-2M_kTH@WSO$8dc&f({Hjqe(Bj?{`M)OvC%p@NV3V>sEbU zHq}c6zNJxVCpg;BOsPF+<;Q?I;+?wsX~Wk_qBo*YITpur^Y1)*Lk6Mnq>TaPPG;;RKUI->lOxLkG;vsuC4xW{QLp z>lFBH!ITZtafo%QwS=Q|P3x%25`DkF@v={fxTgKlS!e&F=Hr($kM|UDoJr}0FeiQN zQRPjAFqV{~xUQ5#LtaAF!QL?}IA6{NY5S%1D(2H@!?PE#nr&gi^P2R6NsH~5{07Xl z6VQ}2&DKxS0b~*AS+^q;SZ>6^k@WIc!P#-}VN>Z(|9NxhG(y;h!}>vIjc(8Q95y?+hPsjbOR&70JS{NjxOpV$^PO%YsTD!x z9t0IUi)ZmT9wKeBG+;h__(c`<9{_v<92^0_J>rcPQn*pM%}rIE52||546z=mW~@dR zSQdzLifn`bJuYX|+3irD4f7V@@GJW#|NKPkY?P!OK8N6N>bvklQ*Xs;_o$hVSr$rl zWF*8((>_?1JL~8=u2M^0uFwR}(myTmKbiLSl}wTh@+4XkWB+85S$gyA%meR#Sawrv cGE206wO9SFVtk7vDSBLL$29pU)z>% literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_end_while_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_end_while_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..64ed702af25521cbeb59901dbfedc6bfd62904a4 GIT binary patch literal 874 zcwS>*WME_f111*+1{Mhjn}P8^6!fu(AAPz_ZF=Jit_zO@#qW7^buDH<0u^)C2F2#j zHV~$+2yM zYxH8*gMm_cIrrQ5bh>O@yMizEvO(aEpN}6$vb(c*%+QDqi}I+b^0LpHA^G8m!4>hz zCzqQ4eB!Ha@b`_s-piK@?E^FQTJO(qm6f+!_Kvl5rR=G{lOLs~Cd`qKp2Yp*;Mqn^ zo92io>uO)`llNM<)M!s`Ov8e83)?dTRs@zt>^QQ`u_m?T>|(~13yjjDQx_lAWP@D_yP`5XR;FY#Sc@2Jn9;T2?7n9#N=iptDw%dRyH05Ng=U&=!Da&(vr+mE~VYyGf+s`gRXUD@eamH(p-xAq(Khf{! zpGoGNGi{Vz7M$AVn7A&}ZsFPE$bMvBF_11_KoRX{-OEwOOnEl_|+3k5~ zydleaE1h!A|d?5bNKi$))f3nHBA|LLFXI(ZPFmTut z^mvQu{Gy6we*b-}&en2Wkgr(xSB*1p);YTsCbPD#@w>Eh;^Wx@vYOk@23>W3Td`jI omdW>RYKOH$u37Y{G5%{@Rqh|8`+GOHcb=@<;|IL&ZW}WL02Ka>9RL6T literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_end_while_command.h.i b/CMakeLua/.hg/store/data/_source/cm_end_while_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d098c3f65958fc08905c40e94e27eef5e053a816 GIT binary patch literal 1269 zcwPbZ1Pc2A0RRC20000000WZ%00=1n0000000061|NsC0|NsA6SL0pY=;l-X9^u7G zq_#Y+SSI`c00000000000001ZoUK)DYuiW={;pp!xaDx%R7!d+1^Mp4r#g)}J2AF$ zAy7EhtC6*2wQF`)c0=fYzgfv|u^o~ojC&|>?W8h_9W%mU=C%P<|%EID& z32(`L$ke=Ib03hrdq*$6FxNy=eDnO_;^K33c|kw8{1kuu9Dn?^4*eUA6?DtYl8~;>n14;h@dWe3B3FmvAd)@Eit;hyHGBd!m)q#)+y70eVtG9cICxMYF^# zq-;~fUB=LTcc2Xv&Mo37TCG+gFNus$n|XAdj)u|BwQ!{bq6;!~Oh_AgY;>iCuwZpw zBLaHPgmp&DDu)@|57O(~yA*mi4{+a`OnNuzLl;)U6}obOOH|NgaRtSe3n?gw5*eo4 z6X+a9{Yi37QN2G0!$JDs!Cnp0oBnhPSGN=B!MHa`2g%*AH(6&I-%ZB1(|*{r>hrRh zULx=Pg(bmnB+Jjbp445O{sjHthe4QwGBXX5tempn-6u}!Z2!$tY6sWkYGK3Z{ zx1-hyf~eDhZ(K5KkK+O$+sp{6hbptcVCAhKwO)|Tn~!2ndPc!36(EL1HIstF7FF;Z zG_PW!pV0Y3=rltieBz}ru40ntS2PwCCvnxp`-9=@#_E`e?pxFf*@8RHT|25>9MV z;P(Ynww{ketTU}89HnbpM^%>S`~8iVL(;?*q3o@*|IzUA%bCY}ia5@s^in8DA$wGL zQ!b1p?I^A*<3I(`f5wFJU#`!i48F={b`YyD#~zG1FE+ zQ_?&W{QMBIsOed^BNSL}#KMvIvRA>`Y3;*i(x3kG=Fn+`unULv5fm%Y?~DDyjP}w3 zxyVJ$(T*C=%!#4%tpYEY>ClJ3-B8B;$}Lh#t&-M3`_qbZQmcbZ^ZIbti{wA@r?mC) z%YMkoDR1=~fl9*d8(cT%Io-;3CN+NyTbtQ`IZ-3O;r<`At4hiPWJkc7WeY8U4KHmH z34Lk2O3uEi*2ZD8g&U|F$-e~4%k*i1BgTzxA4&Rrr(2TCk8VKQk!p%O_!lOjiBbRn z000A%000000O9}u2$cW;000000YLx&00960|Nls_jmorHJbX=F0dW8=ST%J*IY$5h z0000000000004NLjgG-e13?UiBj{!EA#zxX1+lv;tvVG!P_f`a6iTn-G?u~H8JJ`i zLB0AUK8nxdGdOOK7W9Xo{2?Lv0N@i~YZm~n5ihim!d~S%H&t~!s_Id5i1k=CM{0b6 zWq~-S$Ts+&5W*=B-%mZZ-2B%TlS1 zjD&b<+8fJqWgVTzRcgu08Jgf(2Kxp6CDUF$lSz_6?nO&t9B^NU(@eCp$j(&o`ip2Y fOP^Vy^{anDYOq zs_hDyV8FU0Mz%xStNPz>948?O=@s4f!$qq!*fWoxd1mbKHb3;<>M4}~#)7W}@j3u7 zxFmm3Xuv>lDH~&#s1+9;=+PB(DSV|q6-04?ZkK!+xKw+=J9{wE^Br)!;RAId!~yp_ z;x8@d;i0~Rcj$9L{B=Oq+G|j&;lLSD1_D9M_erbuvDx~)*=|Amk520&{tI1isE~~N zop3q2W9CQOIyu2NyUyXEkv78x<|Csg90vKqtv$3Y~J7BTaJg4SX``|=hMrJ=H7IpJQq+jSW-op zD=p0ppXr84kbD&~0{mVwsRUaDiZ0>XXnKAD6#DfiKrK^kLk$r=!8_qHjk? zUS?zN6qIGWuLGhsrP*k89GtE(W4dc#P`JO7KIo^eginH&{|A7uL_F zoUxcZN=3aX=cq1Dm72}MvMVjnqHw0u8Tm{x;*N=w6{&DwM;)x{PvN)Di@!caDSWBk z0}*RkEj^)ZY*o=eEXn?+l`4FKHdI43pGqb*_pV8c{ok3xSJ( zA9xEYbkYzj@Tjk3x!Mf@1XY3XVMSa?&B!ypQ=IlLdOD16$#Gn>g5KVd`3l(w`0hcg zo5R48+6HRABZ85IOB19G+0oow8Z!-Hh!#WS=F$*YJ{7IqTmkE~y1-Dvl%QRx)mU24 zNbm3L2lRSS#vL-AP3Jd#d({7YF)SO?*ceR2wOTj&S*VPDUSS!V9BQFNkXStHSNKiQ z52-?>&?`?eG|U;r1$7Fo#D4Gb28C5zTycTv=P=kv`F~d=gJvpjpMdAIJef?|!|BYv z!c1PwelCr#Fe=XUF=@$gLOK19YKlIl-q$H zHK;LB8>4jVhvm$1EyU_(VA5n$W0?kFSZj3(c|;5BEyFV$xh%L$?-LB{xNQIbT)EaOdBtI}sm>FW|W307ehJ zgo3d~EBCU9{+1scCo#uX_HaN9v+5BLS$amMSkM?RAD*szZ4MdyN}ThMRXs#*gx|Gx z6r5>1@qgkPr~T#f3_tZ9nEMBNJ1M4Ux!j(4PLlm<`-}GFh6q>$s}&XB+pYM#ky|9M zRuwZ*hw^XBa=fXIqMctop=}UTbzDlira4hCf`0&PevI${00004yZ`_I0062001sFI z0000000BV&00030|NsBsCzadA6szWff*RS0e}y{Yykij z;+2zRI4YiUk!6Q8%hO_qdC7`BD~}jQh)?OfvgS9A?{ZL6$+uw_M*#C>Fa@Z1S=*t| zx3?6vv#sO$VzuU`i5RPlBE`F!d%yD3Fg8d*)}6-e$tlyGQCQd=yy8r+H literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_exec_program_command.h.i b/CMakeLua/.hg/store/data/_source/cm_exec_program_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..38047d5f707d690e792863fde1840a825fea9745 GIT binary patch literal 1630 zcwPZs2BG-?0RRC20000000lAt01Qw70000000061|NsC0|Ns94$s!7oXmnk)Ev7j4 zE{e7tKpkTM00000000000001ZoUK;k5*Rc_ zFQ%Dkpkq%r_6JBd`@dgR_rT2VqUI6_;bXe1`qk@Kue;Ow`**z>4S=!HOT&sT0Q4`} zR}PP%Z?v_K$C9~)HU-erg^(QHaK#OC+F;nF&b{Om1rI0vDUEj_D+b?rR%Yz$qF^dd zR_zTu#E217OV5@R(|_~`A6zgO6JUz?`|Qb+=bfid@C{G@>OOnkefDPveb0>*T6M!> zd?VtYr^(qF4&!)VuXjc)R}N0HQ_6A%{|L8bhPPp;vV=Zu81HLkwQ<512|!Ou2w@fs zx7=)ao?x~q=T*kUeRrS@tejhSJDu%zn`8wNl4!H+yiG4hooedJ6%vp#$hl)e+Jvy- zD_sc-Rxbh~z~8yB&WO2pJckd%^zFM@3cah3@S!)E^sds6=dcxSrM&~b;R<3Fx5C(B zEd>T)BEyv1fnLDnVA6k!QN35g(J=i;U|$c@tHE>%uis6e2jku(9rkCV-lWVlo=wK@ zrh_DwN_p8_Z#ZNJ8kKe;<2DpiXacQB3d|w#Sk-S6V5`%3AQmd;i=*24vT8iQF`@X6 zhA~`a(&rqSS*5sUqtR)#;BzLKwMRo6fWvbmaN+U^^1vLhJh#BWF|*_joDS^Fy^uNB zoproGfwU<2Skf|D0srpIuaZPn;M-fi@DjEw-07Y6u+<(XN`bA2p_mfvnrDJZ3W_;x z9Bv9_9h0)%Y-9P7Gu3Va;jkKLp8)CoF$K_twVz9o!GXEPbt69NqEL`Ql1l}Y!A2P8 znM9%B!p3K41wkTIUsjSIVmkPFn7q&4g1*#>pPWV+UWZS^oi_>;-yQ{d9wyy1j^W9$ zbm|2nu7-ey7Q$F;9+hdY95*;is2EHWgU^ky2W{wX@~-=^=UPj&4dIaaF>-ifUEb|( zI2HXO{H7jO%a@UjKLB^eo)X^MSUD(GaB9>#MrPx#E=0gqK_Wy)IHV;YTQSo@7j{>e z@jzqAV3Q+xU)GVm=K0M%Amlq7$tbX$kiW%U&V<_NuX{cblFf`*J8b{_hwRvCn8W6h z;9T!F6Q#k=?`+!CXBoDtgIs66;L4R=@{3ASbbfwO4>>BI=xflt;A_J(JWFykx0#LR zM#P}i5;y2+784w*#i5c=lg$nUwbLA z0AGTpzomq3Nu{|@7FGONRS%#ph?7CJ%BNhIAmbfv^L8b&6*-OZ>fc-Ow_cxmlQ&a% zfg%sJS&FETzx-Jwo^In=`sICZGVHw?4dBIwnV$ws2I*{ag#n}4e)ef?dV1K?P!38L zp;IZuj$RY%=nT7BgB=P^Aavv*RV_`%C`UX?sw%NfgbPQu_B898*C?(wy16R{4!P#s zVRsQPz7*ab3k2@=Nohuewu4)Ax;nCQ-;(|H0pD{}Hl+^t54<7Z?Zr{A&guM?;k4j3 zV{4A-8J*sTWFbs`BR)f>#au{%mo>W7ftI*bdDY&;d#z25 zn(KwIczzkYGUrEJB)V*MJZ43@Tk}hn8GUl>ByCp*F`iO4=XiDEDi@2!f3ZT>J^%m! z00lAt00000tN;KEh5!Hn00001K>z>%0RR90|DF}b@0pE3o>DJ=g{}1x0YdS5cmMzZ z00000000000C=2rO*;z0KoooyHmN+qE0&-j<|9E}#Yzi1QLwXE*Ci~(EbMy;xsAv1 zTCPd$z%Vl~%mBa#U^D@M6XHR!k=R2FK2Otil4eQ1#H^6{N){Uw5#r5wvabG>#l^IC z2-za^Luei+0ZUUk4$P_v(f|Me literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_execute_process_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_execute_process_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..47089aad50c9eb87ab6442fb25691961ab95dc24 GIT binary patch literal 3121 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_execute_process_command.h.i b/CMakeLua/.hg/store/data/_source/cm_execute_process_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0829ed93743afc6c5b6916f5dcc5a8f8ef8a7559 GIT binary patch literal 1987 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 Cux>E` literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_export_build_file_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_export_build_file_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..71b4820aacf9b9fbed29136ed1f54f6330735420 GIT binary patch literal 2864 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 W8=d#kP{pl$Ki;+s0<4qG!T$v+2L?<4 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_export_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_export_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..0ea141c1d70ab4867d84e79253aaee4a329b4aab GIT binary patch literal 4174 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 Ld$hz+&FcRFTNKIQ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_export_command.h.i b/CMakeLua/.hg/store/data/_source/cm_export_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1d8cad887d5d7d7a17eb4bd6b9965a6468ec1f2a GIT binary patch literal 2858 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_export_file_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_export_file_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ab2538006e7a13aced535b6136a51c4c291d06ed GIT binary patch literal 2982 zcwU{Ac{CJyAI8TrWNdToJ0oL_kQgEBL{gSy5829O&#uU1ELTQ@!DJn4V~Md9#!^g- zY}sl=mML*_+qhSgrrzOo&w2Z!bI*Cde>~^+=ks}<@A>`!EC3e3{s09506vBPzFB;K z9893lt5!D?>Rc?W65gu3KGkcowg&j0i7jq)O0uQFzzpLupSA|4NmPpL2`*s~g5OgI zY2Zx0JESBsLa>%-wK*K^RyUitBl$9LJ}>{z5?!;lcB9aMSB4V`S8mWRX1`@IwAR8X zgtD2uP&z7vmdi6ER1V!`WImr_39onGrql*iCaIJ!%9K?%kKAvHfZd$!0H zo(3H2X<_VniQRPFs>qD>ch0k0~HA{VgRc?K*5KBh4cbv{_9EX+oprc^E z%F9P=dB^CCDa z&g+b2-p2E;T0Q9FO{NUoT#l_-gyq&f*FSqxB*1O%zW%@^o=cjMmnh5IS z@1ZSzmx>vJKJ_uzq*)6JW#{Kr__%QdRf?Vu8faGKR=uc`vDE`h4Av~tEi~&{yjFTw z6jWZTp1OSR7+TzC6-nd#tQkJk>?mh%YE`OM#brLhPSTW76GF3u;oMxG70VZDomZ^v zPsr|;^|VJH6KS`%PhE%1iWsY4@{sF7ZOzSbDjf?I zjQX&aers&lN~8X<#NK2BSFYAmW-04{$2BB|-1Uzu)W{+69^nK%6;0vPo-3MP4Yo zdGui-i?OIyTv%>b^VJmKl}>!j_4u+*V}*;d{(K7X8-(iAj5!Sh)AxV#zvJq@VH zjeLiNHWXRy#9ml*s;h z{85I3=g3NF&7Wx?DIPRmUVG`z=@som`7vC2=s8%#866Pw}B1DYSXrW=!`S>u8YCT zu!)%A$(;I4b@!^85rs=lp_%P$^O9Ys_f`ksn8(2W6LtUmOY`a4oSf|JV{Hqw32D9Ql~d1>{Kp&iyG5`ZezFw zkG+$g_JO_zcm?b6)8Y}Gcd3-1km7ec7qC7`kS2<)QLOU~Z;n%OSs6avom&pRHlLnw z$8{oOfLWjFo$QxL1q~=4c2aSn=+*9kKh<)J@|!Z|V@bPpdVcL!3})+t#-`muV!yU% zJQa?te~@MUM)Z|!%BxDlfQ+4^;%u3R{yC=1NnoDTGY2O%U{Ci>>Zb6>jB)feba-b1 z?D%pQ`V0NU?$0OH*V`NRsJ~yizrTMOU%s5DQj5| zPJdsZi*-ihO{xEfbrjP#HUsku>pcHh4+Nrq;rME~_A62Fs9Zz&oxHNL%4HY3J9i6K zi^_5kV?cmZ6LkMe;}G5V)B^zU>m7g~n8LaT!cKhs$wLSDm9|B@(?-zkwcJz@`WXa; zHUd310i%X=v6iuLu&`E!vDouDGgDK?P4k68_-N{));ffg(>~-NNSxsuAYEGHmHo{q z9T6pemt{J=+C=5SXQL&4Bjb?jNbas}@*996xgSq(x0ufvw|w_(%8r9WxhQ)id@_B%9wV*cb4v zPU~tDUh6*GOiH?7BU}1Tdqi@$FRU?Ri#?p(I&mLN<&R^MpQ8zA+}AE~g9 z$fx${eJjxC^O>|d3pLsPK2hL@3Dwp`#i(iwq-yL(E5b%`ZtPsp+rHk=Z<`Yu8}Gk& z(tUArY%@cg9*e17R6S4B9u#NwK3g_35XFN)a+$)u7l>!w7e1re(yLrvVLpU5@0r5( z-146T`Pa23;*oefmcU$V;xE>kgSpnre{-x#n;c92>`%w3fF2Q`rJX=J9C{KLM`eN2 zfdn`dM<7d(p(;*JWGEaLw*jKi9)4$5}FU+Jc2x5_lrz&h+jj&N6UE+^T|+MU!y zQP8-%*lfVTFi)}$8xvS3#1+J4HUp zy;|}}R&;UsZo}2Tu<(cc{@vIP$T>{fT~zRqrK+>Ut-sGur&1_kq}rUUo<*(*Jw>`* zQ^;d^l1}f|k#0ZOdz5@kydZ-mO5BaI2gb#<&sV|>1#u7xfhin&q0G%CuWho~PmXE^ z)%Wsm!eP^!g+GV#FCAl;H6!svECGj2PX0y5EPEZdvagDi;LfgKR`59~T8Q Ie9%Mw2fT?n`2YX_ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_export_install_file_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_export_install_file_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..4050f2eb117ba4bba241131cf8dab3b8dc6eab3b GIT binary patch literal 4358 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 SmjclMLwBmCH5UM;DK>mtIAb{g literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_export_library_dependencies.cxx.i b/CMakeLua/.hg/store/data/_source/cm_export_library_dependencies.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e2c9d97ad830a0f28f285349d33626b6a698e81e GIT binary patch literal 1695 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_export_library_dependencies.h.i b/CMakeLua/.hg/store/data/_source/cm_export_library_dependencies.h.i new file mode 100644 index 0000000000000000000000000000000000000000..62cc3e5521f950df1350434b229c12944d6c120f GIT binary patch literal 1774 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 CoF&Bo literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_expr_parser.cxx.i b/CMakeLua/.hg/store/data/_source/cm_expr_parser.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..dceef5d6491c65d165f08570741efa09bae6a01c GIT binary patch literal 10870 zcwPZ^Dv8wq0RRC20000004g>B0Fv(j0000000061|NsC0|NsA6X8+NUgMQcHWX?xo zoT1-tKVbO)00000000000001Zob7%4bK1zV@bA?5BWAsiKmrc5#i#3|*>FMd|>F()iJ$)>W#Ool5 zLNWK^#E+|D=8b(ZT#7fHEBU6e{o?ulcw30aPfMkzk45j3KlM}HL`UI8agZ{fi|J|kk z?unDw_eC$7r1xIzi<4*(j=eNM$fx0GyM(a%w?QK2adZ=VGXZ~2ut_4DG{rJnh>;hH z*dGT;8VAEg>Wd&1UO0XV=+B~YFj*oTC`@PRnc$DI$f0z$%Q0g1AgBA&5`=2)wOV7zcC zre1357LV2pYAk|~I=_wPFo0Wt2}8OMrc*KW#Uk-1izyKwDvLi(`)@C<`r@c_E&e#_ zc8@y!>n6=y1aJL2pFst)`7{8?FpSs>(#(wGr(}ah84YQa4Zqu>2 z_3nI_&5*Xk+CU)i3p>#D(>R|m?MqybBN8e+*cL*FGb%6 z68YkC>WzF+6TJmO*xjuYrC&!$inY&=M17~xXw(|J_2*S_)jKk4>L`IRBy)ch0M7oy z$e(i$_qQ|$$j||F0KYKMfVfPq&L9L#J?e*^VdmyAd04$lY(MjsIPc60)>}Q#v5(9% zN{PD^bLDV>*#{iQWA1w$d($!sHFGz%clK~*2t706KY+?93=V*GgVC)Qk3}!_rqh{6 zWeG9eWQn2#JBvVm1R)@lM6i&jQ-6%zeEgXB&>#&)j~+>JWYH9OK3UF&(G(VlKM6ua z-JeGHiid_ifMiZsE|Gn&ud6uk-dz-oc@&cv5I`JYAPW?Bp*I7$GKYEIR+Lh}#5f9l zUNy+R(+KcHD0f~Qc*CimR8dgCV3uM=!Z1Q1a38?jKx6-54#J43OFhlJQ5+?5Mtqm^CN7-UK?jPX~}r^#qx53mFP ziLKMlN%yq#rri@49fWYzYj;KG=)5g@mq)Gk7E{s?J6*)Udy@%c2pkb2)o8pxBlzD9 zEl7ktiU2!k_9HAfIWOhGd9OA2z1^*peiX1Gy_=b*fs|3a(O?h6-t+p7s0iqA5yrj; ze1qj0q91}BCwxxFKCs1P>8uJy_eV*M>+9F2y^D@$xVsw8aJFLaxAs}Pf6*Bb1-6#3 z+ij1wsNLlv_9g2j*=8X1+7kQ~ZHmYfG+Ei2XT8for`DF*x7$kHHGJ=9a;L) zD(#=1x2g15-6}mk{r&W~O~nlx#Kkd{?O0{Kx2Grlv-U}!-t1=IbWh*B~VH32;6gfl%1>d*KMl$yn&^k zn`)^m{?Nn(QaXi9OdzFG%ESaxI;E1BKuQ+`5EDr0lo?_IDf4fbm_SPBl|@V-rSr-r zCXmu?)bc`YVgf1MGA1UHvcwAr)pKI|Nf0L~3bPb9Y}$p!{%GpO zw$Q>Rhkw^URO>ET0Xu++ZJm3cP=RW}&X?3col0RRoe3-@m4&ss6l4ylpV4?R^|6)s zsoUz|`vWN-E?E;8Jv>zJ#7|K7%nNT8-VN4nJ$V8J$FLI}@Vfnp{{} z>>untJE%XSroXcqb3onrcL6^%w(%{zwoIE*g)A5GTR<9-QV&nVgxE3X3lt5g zn^3a^)h|B=B^GyjRE{;o?erliXM=Lb)p-rwJEk7huL?I^x^`nG?5_S96pO=nZm zIvjmjX(&oZ%UB9uR{t5u3LD^S3;+g{vjR|F-ua}wGZ8`i08KqH`ah^(zyTgBr=`D* z?|_e=J}#B|TC<)lfb&5OOJQ`$l=KwX3tA-a$vO&h+d7NFFkEKj>kzATl_$$HK4 z{sFcI_L?DyVUiMh1{Gcm25&D1UaO^y9Mr^8umXtea#x>vL#=@&i#Z^kAnTV(QsD!3 zo&-0j{2&DB3IKR$YIp*)26&8y|K*QzS{HCd4-}iD?$J4PmVj9fi`v$O+V9r9ZFjpD zT~rlc11AY1sa>6<{7@19mK(EDIok9>!>o#jiltw?@lz%pEMx`h#!mZ|2gkYJEwi?C2ya{(mJs%pG3J~T(d_jsi>n42Cpx= zXRwvG1_Mx1EvrY=UZC3xVE-<4d$6Qn7YWJL0ZR2kxpoqin7HPoe=ZN^1%d%Wj03Xb zz3IKT#7zecHn7g(g)M3xUi% zY3+fr*QoE1t#=jT2*pi=9PEMRSuog4)B3Z0YTASCY;-G-YkWc)NC7)!NG<_yF-_4C zrUk{ie<3;^5|~2E(8TF)htMUtDPmY;IXi?{%(g+8=jyhxszJcEGK@fgvY91WHgUKn zBLM;OA}lUnEi(NnT70W27}RiI_(A(l%2EVW#4o=T6c0{&w2VQCJ+73{(m}Lfkt@;B zG+n|PB~wTV6`(;hOd_yhM=(cC?XN^#WE^|l#Ys zaxt~fkIv36T26f~5;Jc)jYhf+8O3H(4#GQ-=82$69%^Y^zp3CLC5&rGx`dQ)7mDqA z{iD`zgDcp&sna7wBv|#ro(p`-crpg~UJXuiqA;!?QRZ4iJY6P158hTbf-a#7C1~Gt zu2{&fYC9O9VwVQtz(CPR8f@jV$k2r6MS2vx5$a-ZTCGQk_~_5(u!9AY+Ata~A1OJ- zA|!_iPJa0^jVodti9Zn-H-G%JDL#w)TU1la^~wsW4Fi zq~mEYgx#8S1k2l(b@fSPEo@K!vpwjGB={eHklN%aCT$_(nh~32Ai>ZNBDL|FGRv^M zqK#AqL2lVKY~pYgfL$( zK)TO{%3Zw(ac^EOc^#vJD7gh&k)$Wc%A^S;N>(nHcl7+ZsTVp zj6^)Rif>5k^uuUzbBll7MqoX8=$J<|lBz&8fy6wLzXP02yL7Swr`Om0cCXyg6I#Z< z9~<;E)hgnNP=#vSs_;Ip%z`IHBdwVIp>=W9=}T1^&l97WIO$%T<0$$UZNT~^=PPJt$bwUEu7;y!dF$fxI=_NhOc9qg#4A^BX-Z(zazCny6F>>i zRu?#2H7X;>fWJmC46ABc)_tr=^SF#}kbiBd`Gu}58iJtG|FG;&_fdeJc@rdfe5u98 zav3zudt4H*QUh@)>P>tH!mUb;@-NHfJdJC=_Lwm82LvOqaiwXu zpjW^iPKz8|(t15!9KNV8>(s0eS!Wx_|Wgtera>!^%SJ>`O#Cbc)l%_8o%+BY=9V z(^yp&jpwp;r=MvWM&ZiVSXsQ3ExT7|?M&NvG4*qexSrUluWm;)$~6Q=>toB^Jvr2V z_o&l5!*xe)u?hm=15J5CC1-(*^JI=zJ{qDCd(pClyy_gcPkxjxB>SAi0b-T(0%%&;t1%c8HV)af1Oh7*K-&H8h|G18O`gq4(p*z&O}Rk+|%>?ST%_Ar0b`)JmzJa%2O% zRw{+m-IQtpjX;Z`7}IO0wSi7Ck8hJgb)xRjVBa3H8l4=LEMx-gsE8a;bh&`bce(N| z7w&T59vAL$;T{+6bK$;PliI26$qgvw6JwBD1f_bipM9S&h(B7_tBLb1x>;;!FgjQor5h}s7$Fs{o|k*pPorMvpI!c;ku_LSG?*6}yoefl+8a!U#txV7 z?(ok(|IkD?_PCH&Ph*b@_Z$49LfjhrFG?oP%$7Apr#fuMbk5uFd)Mc$FV1S6tMdniHuXtJRw#2Abkq zKf$oJs$z={8u5>x=oAsBkBVhDo%)-i=+pxR&ut-@woKHVu6c2+{?svYP636+nbsyI zPSvtP;Z)H@SN(O=(cs@>&kZ4g47fDF$BS*b#($d|+D0 zCyz;#+y)bBinPYxi8o5AV%=d7eJFI%Y_Jy0Y#}N?nKmC}N+YFXGyV+H2NPsc*9F4I7 z!LijSU859A#>>n^k)|lLcI0Zls%gV{+UTcPO?B3QR8W+j{z7RB^rLlGh0&g^TIhx5 zOzE48{>A%Fzui42>Gx%|5=e+qJ`N3QE;BhA(t4A^;Bsj(mlngW+gWYTa}3hOLp(nj z#laA`#o@4gG-Inj=$v*=0MEVkgPUi#qsFAwKYO;UQbTg)!d<*IC6!fECXsx~LSO$= zjFE%bI#jY4;a@f?>c^Uq9B+J)Ip$f`aKS6t?J}%z)?DowH?SlRP5%2Fiy%UO;9f*h zLQ5Nm5l-p&4uy3JyAK{u=k$6kK9CkWUgCI5pES6#FJ=jvq^6Be(sO_(Jn&YXaE6f~YY{#*o z+#Oaj$1Yddl}|==I5I;Sx^;U`Ro0uV@ zeT|fH1d$v|jwp&|u1IqA5ZBq^5Jl}6JK3Q+8?5pq$njgttJlBiWdt4uER+MKd^+cM z6@jX9l1O1^d?b0E|I#Lyq*0+?M6Jqa1%xQ%D5G4tei3&QRm5|t;}Cr_cT{5ybLZ4O zg^||roFDC+a)Tu4xSN7I>@!^|#dxAY#W{B8!*QpA6+-)E&>Wss1XBfWtp`R1&DVyP z+0kWCY4hl^mBD3pP}n+LvjFU~Nn@iq_ZUCnY?bM6QxiOJ zbb96vmj-Jpbla_q-`mJzK5G4Tby=p{4OQ_w2GTpREcrMVJn6>3 zLd5}^1#q$9?br~@8Wp>KLClMa{?LrXI8<_>DO`!}(LyE0a788d4jkGC=nBt#*a_%2 z7nc;sQV30wcIb^hE#?I^a#1T-Oh#1UK=Uy_25pXQFK^ju$^lM2#>*iBVlm&UG!5d! zTFoMG1z6cpG)C)@E2iNtqSnQ6o17wY&%`Lz0jgJ5XB3^%0z+I~vQ`$Mj-DzH{YfP6 zwRq;nwMV|uu%hqAsE9usxGk^j@^Wht$9|YrMfWzTijIl3E2~$PZ92*rkSkUok3iMR z`^E>WysGGvZ8VCei&>a&#N`Ferk?3aH|u;b<*VAro^oxtyy8X{oweT~xlux)Jo!kM z&L6219lmsfc=64`iVZdQA@qGQhpYgT@3Ld`7_O(PUA2eWoh}W66`xPNbUEYw!A;T6|x>pg}HYG`O$s_@vwqQoOKl%lE1{lS{TzjL>?d z3}P!~x}j7VW)IjaNS-@|SMYB@_maA$|x^JbA(em5jVFK*i5^f+EqXG*@&@3|so_ ztmy&A+_F4*Er;BPAshbv)^(gEs03fBqE0riR8~oxZ&)L^BDy|06s1$>mbBHYvo>YK ziDVe#(3hSe+(*8FbN>cD<^B~(_!tRYR4X{rt*)vf(M(f^<+wON7O*Wd+;GE)g0T5W zn45lB#VTFwmu{pJyAGG^NBbE@M_S6y3z){Osw+VmCf-%4a(~2$cvs7aCVBKS^y%1z zC!?xv$pkSbX#nj{<#e%bEyzF+g}12V^5F0YzMH_87*;M3-YDextaxu)eptC)YQKt~ z6Ie8EvxdUqLw+%J+s9X}wp>kJoU5WGv}*C_W#i5|!D$vO6cQUDx-I323OC@iLv%?N z9h-ExGW93uK?*`JF1;z({9~1Dht6YwRrzM~>7_BgsnF;?~`6MuxBZV`p-L1VGa6#0DbYwy*Y+1 zBQ+{ol0Jf_I4F6fI6=ZvnvM}=dO;!O-}o_f0~G+>U}Ve>+Y_b1@)bc%yTe1gPp$80 zt8zQ8B=^d`-)rY0(2f43;!##zEk-wNJoUqZD`sb>uhkthQ{3yL0g}00tAGdti}nJ# zH%0m0IHyB+1Eh=iI&9bR5G!w-yo>u)8@n0F_Zk$!#aD;*49!RL zDY9llvj)mJN+eJa!=R8p0WHYFbOn7%eU?nFP7thD}9X_RaO4&$W^3y(H5^x@$v1 z$+G?bB1sD=nyDg0LCgPVL@&8SH#9dd%%yI3SfXx4t(vB1N0Fd=Fb^*pSJt zr9~vwv*Pw9T?ig!Fbq4^)EvHHf=Ds(V!K~TuPb#Esq@JD;poI|=F7vT_VTc0CVec{ z4QS(@aH^99qi0u0P?N zik88h-o^`|uJ3RXJwHx3ZTS>)o13&Z41}U)IjIpJWzJ~%aPmr)g_;vB54|Fln}^1G zZ+Q&JOJ}*6u>xztiRW-grp~-+cj>aU)3=@RCf~EYD{;SfnSPxb*sFaetd7G4g?GUF zT8-=n{G(DTISDFEf`~)gWnz!RqyeEFkf=^deP)2jRwe@nZc;LZhmfbpA_mlp3%ocxkYjdgvKZyDywoRDt$Nw zzvF=6u5wzx?MTA@hx}!_KTz{XX`nEpVj@3tfgh{5@l%RMs>;mv#q%apuG2R_{)-d$ zLi_mwzrV7L^ND}beJMF(6ySs!Vq(csIfKOhG$~J>AU_+zBdU+B>5`M7>^6{gPaNS; z!>mm_v2)k9fdRkq`KV#UaS|*hZ1-(y?LKJxW^!RE6V3=FmPd>qIi3)oMpG+d*_}X0 zo#PF9Xerg9hc1k8X+p$naq*Lt;(&Vu3v~&Dl3wm$%y&Usd=}m<{i~^fGYOZ!d`9i z4JEzg+%=?^4a_pFV26=C3O5Iun^{V>m9kGYnR-KQLg}T{#`A-*VN*dLO}fWV)GY1A z5=?B*yj+@kIHlswxT%vA>QL-7SAfhy%<2lNX0v3i!Icb-hoe@0J;6Do#38jUXWmsb z2|3SVIdjxuV@79*oF9?XQk7QGTI42%MO|gptGk3!DhqwYk(*W}EgR?oCGAihhgw-6 zxkklep=x`Qh@=EZdbac z9l#8=n(I*M;HPy`lnA($2O)mTNg5#Bv*nvM9jy(JHr?qXe%NI@uz{-yO17#BNLA<{ zQv3sRpIT$)&o$8zJSAIHmK>_9zRy8Ee36?R{B+Gr-(|%lj8Z=u`zd8ump4v92j(Mi z7&${Uib2SE2MMmtqOU}q(-TnAyjN87ufK%4;slQ$SPE0iViq zS|D}qPA(R6-OSoYF>g?oyD#UG?x<*ffB{Jw$ye3T3xBIg#!v_&{2jg;bCK)othjXyXGBxe<4M~|O8 zF}v5)b^uV4ROM7toq{|bNtaqvc$1XAV+m$O)qJ0gKiNfuW+UB2%(^$hNa=!FEo1G= zDU;Ks?7QYSMat#2B^7TE#_Bk7BJkznQrSzhd(QV6tF-M|M-FNw$gABec7?jLkPLrk zIQff&;h{^xfY;wKfh#@A)&Hfz5&GO-+S!PqyjE)bLtfE^dLvxuQj4Gj0=)LMj6-SP z;jd1Fd@mKh3&egFdyX9cG*6gvp#Jm|!2YT6NI5w#)JG86jv+o6 zOm;+{wa|Gbp+ng&v`ju|fl*0`{mC0o3}KBYm{K1E$UV>8Js7U!1 zFOCSm%*h{R9lJqrW-9m|5Q%{IjT%kO2NnUD2r}YD+LX*`TIfn?LEaXzb5PR7)@N^O zzxMpJORjtNhrX|W*kmPdGuD2kaiU$!c$h(=<4Rp!p3`R8`pMJYw_1+@b8AMI8 z7yTV^Q$l&}=|Ds&Wa!>$w|+A|YuN{XnEX&Ei~c{zJ{AWuR6+H=RG<7F;z0z3>kcFO zm^m>#El6p=X1kyY(_kj_La7ODf=evW+j3~vwPF-0wYz?CU|!e|Mr5KMYOEE3p$JTC z|6wkc%HxnFqG9`Tn&Eu+X8#ftRNs#1N==HY|n95p;>E*;GhA0G6f*jN1-{X5H~*6zU%pLOx)42t>_ zH_pBJD%cH7NBm~H8DJ6iIucV409YF@XfvnhjuX`9HLS5=gCDfH>sS_YwWyO)6_yPx zFooi3l$#cDvW@2}qDY^>dV!|JqI~us#(vAqt@F3y1P)EuRFX*C1#!9nlT}8|`VY6>0%Ie1o)s#5 z^Io6p6oj*{>SoKhU5!W33O6|vySamR*!1{_HV&j)VB!T+6{CZvz**NkJI*{3(~@V$ z(%ToLT7|KBBIoUPSBJtQ@G3jgr!Wc1s)07rWF2bX%D$#5fg-k45{iGq< zGF5(O?E9uUKjGN_ffD389B{X3LU<@dh!=r6zZmCB=7v$z1~*!ijL3>ZgsY7Dz*o~NVU&ugF*h6dxUe) zA%^~lq9ub=rB1>$!BaoGon+%-aw1(z^OBP8-!IRL1iG4_tVGXkJca9oYp!#MXwkdT zG2!|nKzlnDD$I4oQQY5n9>!}|Cxye+t5e3oGWI!9+gGenT8kPUuSV$%k~WAwp+Z$+ z(?C;+r%X&I(WJC>-+(3KC}Cw#Y!spRqrO3_!yCU=X7T{6xF;NgJkQYqM&CqncUV>r zS`?B_TO7<+X}ZJTk=GqgFj6+XjqxL@@>ajxcobOy6Xr&-)y Mz2{Nf)>qmFfpY+kti;0lf~=%9 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_expr_parser_helper.h.i b/CMakeLua/.hg/store/data/_source/cm_expr_parser_helper.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5fce9a54ada4765b4f894808b7c6c89cee01c88c GIT binary patch literal 999 zcwPbL0~q`O0RRC20000000XB000*1^0000000061|NsC0|Ns9?Qf-J|6WCcY`cF7~ zUI>>A*Z5)p00000000000001ZoUK(&Z{s!)z3W#DHhXZqiJYY99^`fbui|WsI*uVJ z-5Mxh(9+muOOXOe$#H}9w|7W6vGdW}>R^yFZ{7?aXXsw{*B|u-0l-wNm1boG0Pzj` z8{rgUt&BOH3TBr|m*A{RE)c$X@mM2MTI(C zpEU51@M9)dHCwre_|qpcTr%5+6G6MaI6M2?JNv13{xh6^j?ONkvvVK%J8Hv~jC?9= zc)K|dFUU*oSXEoiS8EHM{MeCPz;E1cn8p(r$vkww#`|L>jnbCaWe6}30(_VOjZ|-g zMM!KZ;+`?I_ZF0fwY62$>uolhFfU1sQ0Z0gI=dP7_RzI01(04)pk-W`(A7p?w&n(m zTKbBB)&)0K^F?j3fbXO1`t~k^!DI&C2T3xRWV1eOxLvE-0yZe2WwC3DEi1t(h=??k zb_;3=H^U^prl`T!(Rh^2T(MW9Y%)w!xVlYX0MkK|jpDoUAlWfZ?~>_lIt<&RI$pL= z4MP4bqg0mXX#8PH<%*WB511w0=~O?g`?|g0h%aS<%Xb=QzJ}n4TwLP2-hg6dF6si| zLtdtq$%5%()S67V{t!He&t_>hn-1ThiK2FwZ7X~YpO4b{as_{}hEdXlZyTN%& z**SK=f8TcmEulB3G+lDl$!XY0`Zd#Cm-)m48q|wDe2n)aN$2ads71YOQ6;++MU2*YNve5erTmEZIy45cyp^sn9r$j(#vJ6G;iFq>%~rO(L$og@PBabt_-|3 zU+d)(^;DVuOW>i`xr{BMsKK269e!~oeSurwJ9~r^Bd)bZ>CgCNx|8&*m_b8tCR>PS zGd=nXWpFR@l(O0vmrx0ozY^!=y~F~UtgE(J4%%d=`zr~Z=o41@3cU8t@KmWko@q~h VplCmMB-SGuCB6*k`ws!wa;ksc^S%H8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_expr_parser_tokens.h.i b/CMakeLua/.hg/store/data/_source/cm_expr_parser_tokens.h.i new file mode 100644 index 0000000000000000000000000000000000000000..3514366d6bb28a827c1b82ff3c85066a1451c570 GIT binary patch literal 1078 zcwPZE1j+jV0RRC20000000Z^_00@u(0000000061|NsC0|Ns9573#vC_+G5%v9aB$ z2=As5iqJm*00000000000001ZoQ0L&Z<|OE$KU-|%qdcpL?khGQpd9H0oyo1=U)Qc z)=$wI2749EB3Q>or~BV;cA+*jY0JaLd}nud<})+o?iwr@@?0d4vMk5UfISNlHU&J* zSCz%Qee6Aiw*c37t=8Q&c&`|vJRN~ZWUyvIa1--a)FMx|aO84VIxt`)(jw#AorKHL z6`1|Ud!q%Qe)J7m`)va{?RL4EdhO`7tJiy&WQgF2NFG^+FcF6&WRfe-P7>U&Db93XQYng)sX=d;s60lAj6R7GUJdfH4*&@c-SLLRia=7f6vQQy zD$Wca)UN=F{Yut7NF7#(5_pEko+$A4a| ze6Z$g_-eVXHTTy8T{%Hke8bWe-={Gr&y+^S5?K%tHT#;G}^cwa+x{O9g7;Gqvb5+a0U%mRcP z@D9pDx7*gFha#71_soKJ$283wv)k?&u=1?)Oj$YQkf#`MiW$ELn3gvjce)0up*dYZ ze<@L}yR4c{o=~Jr-=p8Daw!#0Z8vn=?^&VhUiL!Gda84Vs(AvbyX!}Dy^DpaPcepJ zdH3(yTaQt4YHstkbFV6+!#ii}i&v^h`F_D8nz;zpYk%>NO-;D8TNhONh$q+($uk{Y zQqX!lwTqH~de4jfM#Lc5M&+K1GUcc7P>neVJ#ry#4%;n-rhL)!nusH?jVN92%Xmn~ zqWzR>P^^(^PB+0fQod!|zV8?-Jkp$~2AqAKkPCZTMIB}_uuP)nGEvY}Qm z31!m-!6cLo?F^GpzPFSx31!1ngGneGraDYQ**xYdlnqJ2B$N&9o8H&VQ^6#ZO|68f zP^yO}2L7rhB!tWL+Eep!1)n~BAip@?%h(>#ci0|ZwNy8&VWY8uYQx|>ZAFpmcCRdI w+{7jqG3N9Em4nlN67}&2Gj>e${GMm^-GyL&XeQWS9BZnqWl!kme-tv8nj2UPC;$Ke literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_external_makefile_project_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_external_makefile_project_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..e5e80932288c4b97c1df7a26a9a3ef2b10adc4e8 GIT binary patch literal 914 zcwPaL18w{O0RRC20000000UA000_bW0000000061|NsC0|Ns9Y=L?RIR9dw8eS06f zC-nQ%K)0I!00000000000001ZoUK*;Z{kJ}{oQ}XTzWb|AcniDs^lDzsGART`9MH= zimK|g*n_>Ty^GdkAd2pP@2o$F0PwHG zUkFFw8=YlG(?rlpn-uKoN+t;BsL%+~hSRQem?vnn;O)$x+qefodb%StN+fj-qyLEk z?K9nAx9e}Un~kp*cgL`m6ziM-H>jXQp_p^ibs{;5 zfs9ae4|)Yxr!)V8v&O$nE+>mSOZIHCxIUfF;p}DxW0;O-i-~`GIi6KW)7#nfW`63H zQZ24n>J37$w^3=50cM4mR9n)@c7`DKomG9eemopF&JR)rNgg766d4zRZ9Hi#9=xK( z;seLYDD*t*s)}CGm7eDtSblVrbmEmG{14*j<);HDx7Vqp#;O7v1ZV)nlk4|in5 z9(Wl{75mAMyl`FkFc|p^D;@ z!$wd_HnjneuE3VynANmh- ol%%7R%Ao%9c7MyoC2Ul*JredsY>;^R(l_4ep?#VE1`a})CYjK}BLDyZ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_external_makefile_project_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_external_makefile_project_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..aa0ac9f0ef97fcb6820edc2b51cfb997cf52129d GIT binary patch literal 1187 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_extra_code_blocks_generator.h.i b/CMakeLua/.hg/store/data/_source/cm_extra_code_blocks_generator.h.i new file mode 100644 index 0000000000000000000000000000000000000000..30d3c0c6777e34f5e11b12a09c3585905268f5c5 GIT binary patch literal 1042 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 Ma{EUOS& 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%0Dg>2JVJY-+l?gd17{PC!M{pSeWsq>QnQ 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 Let7h57L)%2)>&<) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_file_command.h.i b/CMakeLua/.hg/store/data/_source/cm_file_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..05ff8f47ec6dfac19a585eb250982dfdc136130e GIT binary patch literal 3404 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 YZrMm`{ZQG2NN~Z&Tkcb$^khB$1#?JHBme*a literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_file_time_comparison.cxx.i b/CMakeLua/.hg/store/data/_source/cm_file_time_comparison.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..562e4552c314d2e2ddc655856e3f430fa040660a GIT binary patch literal 2578 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_base.cxx.i b/CMakeLua/.hg/store/data/_source/cm_find_base.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..6fbabe5b36fefb430d3bed8c435dd66fe7db1d68 GIT binary patch literal 9496 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 Q##R3eu)a}rKP_5hRO}8400000 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_common.cxx.i b/CMakeLua/.hg/store/data/_source/cm_find_common.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..74146e12b7e24bdd73408d5b264b31d7fed8ab30 GIT binary patch literal 3473 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_common.h.i b/CMakeLua/.hg/store/data/_source/cm_find_common.h.i new file mode 100644 index 0000000000000000000000000000000000000000..78cb34eb155765362836dbd35354a3d3ca1a3152 GIT binary patch literal 1153 zcwPa41b+Jf0RRC20000000cn*01Q(A00000009F3|NsC0|NsA)WgTHkTohbMh_!8w zg~`>qdR4Cg00000000000001ZoUK-EZ`w!@{_bBfYO0D*YC`U$J3(8?A)!G>2*Tu= zNGC7S+xgu#B0J>M? zfx!ppDyj8{Q9{g2suZkr#uEl#m|%(+snG38MtQ=l7rY&JL#uBCO?zBKU74m*_;F(a zZ_#o<#5^Z+YukPQ9tG#b6prXxyq}(&{MkHdHCul`>-YA_Y5TX9bN!ns&829&L)d~B zA1&W%QQeieSA*u(G&X4hSSg5@Aw1E(jSZhk%r$5^ za}fc)M_e1lr@3JfeCSElzM5o}aKj=^HY^=ThWOxyV(7PT(0Ha_$>344i!MFe#-Hb=q;e}r$YGKJ# zE*Q|Vh(a1pnRcn9(uOQ-|B1n>V@|Kex_Z+);xiGk*$!duWA6xMT(HMtG#50{*(~(0cU5EG}<@4 zrwKzFvV59w3T1t~?_MElWBaSNwc`#-{(CB->136$D?*j5Rke*RDB5|Ml7>;FaNE+H zi9Cg|l*Zu z!=R^_Pr{lrsTD zUMC1wz`ig{36lJJMeMWBdDDL`UP36hL$-c-;jo{~^HtJ(hS=-G_PQLN)?ry~rgSLR z3&0-G*-A@>Kb9fmxRSz-^CNY*(uSq`_0GL8Dm2~?`W?EpwOs~GZ|&EWbAMDhJ(n~u z?|58eBe&@~2N-Ym)*-fz`wBqt4H|9w~X=m%x&r4`1=Iy%Sa9$f|d7wp`Ra*MrXm%h#oll9G;$qrzait2WrEW47-2fn)e?^{>g}7 z!eh1CYQC&3?3Q~@axfJTFQjg?PoIpVXT zZyzlv4YjqaFbFoAjb94N!&iD4Op4hwc-~rD(Eud|6jV%2aWk&tH6Zb2CZ9S1G;8((C-n?@M*M>_M#&%BL8mvb;po z6(f{0EnO!tOTklB@790&f%l2avS}-X!Q1Ak2e06KYb=UFDTR7V%yOE>Jv$#3ruXUTz;UavB) literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_file_command.h.i b/CMakeLua/.hg/store/data/_source/cm_find_file_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..38823eeec0c4c3733c368de43a514aff7c46b622 GIT binary patch literal 849 zcwPZf1Frl40RRC20000000R*K00v_K0000000061|NsC0|Ns9u$Nrytd}o4{Idn>l zX((C9UnB+q00000000000001ZoUK&bPTN2befL+4LLWj(ZJ@1?67|6~P@)ou64MH) zQngu+<5lflYcB~1@$a2obCu~^Ez7b!d(NDhIlIZ|%m2Ef2w<+&TC-*h0NITFLHGcf zR>pjo*UXkmH{k!4qDJ_J5;e0*6KtjmSEEP4yG6G2@iFk`RLJ6#-ZRxSOcrsqw}E%G z{G7?PV`~q{-oK|G$INzU!gue7`};@9!9Lw^@Ok{{X#DA8fc`*jgp%Ws2{)qqIEWAT zDNON9wYOTVD+@!u>sb!ryRciPaSx`F$Np(TJX6vrZG~%MfV8e5zzk?Ks5e-|#I{6y zW{mBP1*M^~wjC$QcDs#vL*0m#UMFYy>^ym1TG^%s>K7DfnW#O) zN@WE{6N+h+7cIRHn5D*3RsYR>qa@l9r7W=Q8|QZw?NC5Sd^1Ks$!k|247%`~+3Lx2 zgD6TyBlyK@W=tO+0mW8YP~PJ%1*7Ui2&@8wO!F#K&m`ata%b6!?B8}fgYP6LceKD-j$zITU_b<78V&E0iBRcWy1@(aF?jBhNG}z*|Kko*U`{-p2 zOUF6c(n6uQ^ZkF=F+H)b6XbNh;qgnzo9YK%c<4gu=;#V_C!;a&QsTjL9iiL#ZHqI; bwHo#+-s_KwW^q4>=-NS9h%)*M@P7cxQWK^x literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_library_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_find_library_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..b41e89d2c90dbadc7c150fc7fa6abe3ce58a532a GIT binary patch literal 6749 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 SWy8Zd%}HOQ0P@|4WBw1;5<{T? literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_library_command.h.i b/CMakeLua/.hg/store/data/_source/cm_find_library_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..76f272e48131418d79b0197fcc6c48a797afd113 GIT binary patch literal 1945 zcwUv1X;ji_8;AdZIY#a&xaLUe02XF0nWnhpf?H~qd*PdsOQtkq>o_stI-htL zCFH2*`~YI*nG2?#+^4C7plaqxoU87)9sE9!%hoQqc2Qc|`P}DwWP&;tXT;(XhWy1f z-%=#FNV8>coj2&~Voto=tiIXs@M6QYM#o~UPyLQZF2f(N6(^Qi&Jk*UpAkUjFKC((vVFn4f**>!vAl*FeWLK zd~!~! zFh^d-+Q?WtB~Bvrh~~dXAi+)WKI@%@R3}hr$I|?Cm|{h7%EtpYdtCP|ttwmg(VB>9 zyU`PYp}3*sFdSGVH@wR>4TDeK-^1E!v21lKb1ubXA%^if6a!00wE12|OsCv+>mE|OVpbRo{r|B=H+mZj=?kSAS9`sKb5+> zVxNCL^tkc%P;rflT+8WpSAr=f#aGQR9h5qz-mvhs6&P(oy*&sI+vXyhp=zZ7qmM=I zNpl#`N9jP6Y!1H5e#q9iKTf%)T~(kdEKpCbGNwbCT`=2lpJ%F21|NTJjpfdl^4Dx*~2ESt`EB68ivsOX`n1N6MVTi-S0~Hv&D&= z9o;ou+0M9r&Rt$1G`bV*AG)uL$vonhh;QA)=*3g6cScA>1TGbBdm1tu@X2u?Z79aQ7E#?-H=?CF!>gXf2t+sJw#g}JxzQ__BdW;rg z+O+gAoDX85gSCpC$$u_M#V@?AUQ~mZPJRlf9u`n% z^q_;{|Ji5!=o(w0TY`aNVf6)Im$vkawxy;4!CKc${D*9khE7b+#`8kF8Lv_D5|*Q3 zgvu&J6dXVLN0z0PC{6UxW}q$B`+A}e{PzuO2P}v6`bnIJL9CC8MPd4jFB5$NkGJaP z@sKG%qkOrV@}vD?iF5kuGydOl~fdoXe)MNi;T{3@s!(2FCaj2^V*`vE6-Q zf{ZdwRGo~Fzd^v`dm!Uy%b2oIXyg(d1=@+Wkbvrv<6SS>WHbgurLUAUCgZU_}>Qk;XK?Um8dbakl>V7Oo?v*D4wfm8#ycEzLxeXZ$A9UONHvAF*(*DDv>DM{ix4tfOoi?~ z0qnjuZ?&lxiIi7yQC2UKhY7|Kf5s84R4??pTvj4rtQ zA4-ybyE{xfbLW%dtr0CNwjJ>Pp|MVQ`NXL-aYOMr_%OoKGNB&*IOX`5Fz8W@wQ)I0 z?9?TQS_pp;JB|-)be+~ElF>KJvwy`dC!V6R8Yj7&@tb>?7keH(g9mu+H(KZ2VzYt$ zz0{Sk>FO?RkabsImtOKaFj`lQ$7`)~GHX`7gU$ZZ^`Fcvm#MBy4@6fbppY4rF!hsf z-;va6Whx6I9j&e;yAbT7Wn~pna)kQ4ZtA-|D^_-NoMBKs!22o>F-ugQM!7gIpA@(GNwFm2d%pJ8-&qBZ2$lO literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_package_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_find_package_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..7d64a833c74e6a1ffce9cc5488ec0f7be0834db8 GIT binary patch literal 20141 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 I2iuKr}`#mx`3Swp~Jar@;Z!4aa@0V*-?RI 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 M@8A~@-&1P$KR^^$=>Px# literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_path_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_find_path_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..650212fae27492af6bc7285a55f7086b000ce641 GIT binary patch literal 3427 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 RR@@OrH15?Q_yRkWIPw}wTO|Mh literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_program_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_find_program_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..184e5622fbda93c552b647c960a5fb5b3328415f GIT binary patch literal 2610 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 IHZ@cK14UTu!~g&Q literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_find_program_command.h.i b/CMakeLua/.hg/store/data/_source/cm_find_program_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..807a0ae85460156b87d866944c91bd24cb52eb4c GIT binary patch literal 1266 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 VMg_HEFs-Rzt6*Tw1pu<=I2vlm1^@s6 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_function_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_function_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..29fb3becf0a5cc2632412d6883be77e0eff4d2f9 GIT binary patch literal 3700 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_function_command.h.i b/CMakeLua/.hg/store/data/_source/cm_function_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a228e04013e1bc77b3d84cd75edb9975ed5adf5e GIT binary patch literal 2032 zcwSYMdpr{gABTrr=8|bl$+e|px!))EiDTn92uBnOm8CVxCb^VbQzW-(E)!vgS+3y} zXKr(8O^rB?>q>`_;}UaOo8Gr`-uLr4=lSFN`ThBO{&@f*01?1nh-U%-a_|1W0b*bO zhaUZDErFCl8gzF1#XWRqz+T@o2k;MKOK5%a9z~@rVi; zNJbH zazA;=Y-oqLuF5ieOfHP{IM`cgxWO>qWFHmI@AL|VmNO~6tNT~sv7=x9j9J_1UEY8a%*R3#Fev$pu$u=q ztX@E5wAqqTdZYUgcZsKY8|$*A5^HY^hbh5?PfL4SpTkV2u&vxj82~H-(pt&wq!vba;F@d@?!3w;;qI!(B*#uEp8YeyP&JRQG+FGqw) zgMG^2jxf#QYi9)Tvh6sx?x@cla&t8)TLLKw+$uj?wiTw@%?~spPCB`U)1&5+5K6kf zV`Cf=<7~ItpkA$}bjVah+fu9N_=5S}x;C1O*q+xK?!)nJd1{k#G{#NZdP|pQ8q9NA zUmEv5Uycv?ITJ#|9R}jxN2D3jB=j+@!0i-9La4IxaDD|TU*`N=DbXat3xv3F25qPp zfK)3TGEz17(NRv<^NlZ#&aWc|nZ#rbUA2X!KFUz;@|4#p(yxZ+rRihI@RLK(3U5Q! zP7KI9W!}%g<{*6wiNYL;oNx!Cn`8J5kP3PMOr%IDx!N@$G@a6ez>cmjZD*2V)cQ|kWm4eTA937ic<*f5PD(sxixpp!UCCo(I2%i9zy2k@+UnvMOimasG z^sdLtA#>xuY}16kmX<-WtagRm=)Y5S-L`dYbatlj~?oqv{mH4@h$u^bF3<7 zV6?c#yPX$yyTpFlJYybz#;Wc??nD)rLF>X)outVxVmHK_pJ)(*-fJ8A|Dp6_@sylO zPTI82JLx}vj6N9QX&(HTS@pI-$<7ZlV`v#-jrBXMRnp$WJ^kfwsPz^LE$r5uXKdlL zTrvYkCr=@FEbd{ggX~n^G?2o^cO_Gut~CF@;{T=nA1#;qHs4zQ6ScIoek56gOI2~A zs^$Y>tDS29Zn<-&t#pqAC~d$Zmhio6x#rbGMJ*a+9I{O%^)bSfbCIj>&vqnB-UwBc zT-Zq8+a++F&5FTn1^AWss%06~4{ef8KQB)Zs;M?yKr~gt|0RRqO{M$yv@!Nd! z&a1P`KD5m1uvNg*MbQ`W;#EV#|Mt$x_Ckp{%BDjJhz*bMJcHJO`dbKDe=_?{Vdv6(eew z9rt|vLF?y-hkf@h5(fI0%MvFUkp1x5l2^}zT#i)#(ey>5d(?%B#&fc?e@cy5v=c2$ z5Gx6G;jpwCOd~5xkrfsj2tt7F_JxU$eckP2Vixw5I=%NFnh2sxiw+-YmGKV8{s$H; B#{U2S literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_generated_file_stream.cxx.i b/CMakeLua/.hg/store/data/_source/cm_generated_file_stream.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..98d552f5365c9e0c065f4b70e9d9ee55624431ba GIT binary patch literal 2620 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_generated_file_stream.h.i b/CMakeLua/.hg/store/data/_source/cm_generated_file_stream.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d177bce58edfee37f40b48b8ef323d52faa65f28 GIT binary patch literal 1830 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 Eo5|VJ)&Kwi literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_directory_property_command.h.i b/CMakeLua/.hg/store/data/_source/cm_get_directory_property_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e3325f4309deead8346ab8c35b0efedd8c0f6ff9 GIT binary patch literal 1408 zcwPa31%LVg0RRC20000000dS50143m0000000061|NsC0|NsAKs9nT>>;d}o>}AOK z|Dg98BnbQf00000000000001ZoUK)VZ`(Ey{okMB;1)yTx^mKW2%u~OR9Q)c_!nfQ zt+5RTO;I*ci4-VGo)PrB?4FK+# zd|~hwTqX1T?JOZWmMR7FHs%R~TPBzyS}F`1%cw}0iGtUGJ2&e#(Dat+Ay=yh z6Q1Oj;f9}Z!*j@GTrmQCj(DyWUlp1~@W~JFrVk-FlLdTog20)Ci)+|&y^)0mRx$xK zir!#snk5{A5J(ZBcOYXJdx3k0QO*Z{(*PWpIYH>V4vt%^-&EjS;>+CZDbTubIS7SFsU@8g|P(Ds5_qOrx~#~=)B^wh*dV>ZqC8B$ZxD<1hqcsGTh0sjl zE-vce$|E8}*oZ~;Y_7i59As@<;O)SzZ|%80XbDX(`cmVyOi>IwTG+{Bj)2lL9GgQ{Y)SRf~3rN zznz$1k7bPVm{)?-Q*DHuW?J}p-s*rrH$?St!08DhwljCvOfRED-Im$DaNX-uGV_8` z^qYoA(jsL-?_1;t*+QIWY}gJtwa|eCZUq8|%%5BPrHQ{ZCFeMUp(B z^bJ$*e*km=zAe$&M;tVN4gJ7#!)dTEZ2xJFaQ?UG9wD9_FIF)U&KYf_=QlzDjLkG$nPblm&CxemNZ*x)YuV7jLja7U<1hoRVS_Vd#mvA}q%J!5sy3n0j!h@#{d8T00dS500000ssI2A z2LJ#700001K>z>%0RR90|Gtv%`aAGpjxshd)bT6Uae~Q`)Bpeg00000000000C=2r zjm-+eFc5@S@YE;pxQ9{{#QsRJM)9PeH&O5&V<>@|Kz3Vt@F9I9V?F!9va`%G0|0M; z(F6dFhgnxuW26Pf7J8PYt?e7zOv+& OFri`3Hqi$P=s2ld2Bfk8 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_filename_component_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_get_filename_component_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..a3b60e4591d31bffd8019cfb1d4c649e5d36926e GIT binary patch literal 1567 zcwPY?2H^Ps0RRC20000000jjA01j6G0000000061|NsC0|Ns9#uXB`W>tVz1^dCxI zD(!aof2a%q00000000000001ZoUK-CZ{j!<{m!qr!;VH!XrP^)N(<9jWm0I-mWM(* z-Kwf8HyE&**vNKh*-`)dUMGZv^fet7wcyyk51(^#uNymu@AWB_07g>GBnevp;PlBY zgCzVjpmoeUK95IYJE9qHJh>N z4=NQCycNf#OO`zBS$hY#jO&hAtR$PwHB|hn@v;y9FnvcPtwWFdmibokx+Ay}QnM(u z0PG-u*i3<>ipnLOSmwTqj7h4XZaywV+lEHoOu1yMz(dX!vGLH zm{3hvpe&Oce!MwTpu{xJ2yi@MN=tSVX*z-Po_8`l^S~Zlz`5+x1-Qd<&wzOJ3&NL&zh$vN2deUkwsgKhC8jlTUeD)1t z;!1x4B4?^v`iYRTX~jHPiv33`Rrm^@t1-|&O9^jG?S30m-H}qrO4%ntU?@a}5msMF zi7|jj;SH6BPjnT9n3XD5+pz;lbtE}VNuX#l^I(L9CwAu4zXePk6cWj%F_%jcL=@&k z!3{<6D9j(jF&;1a#Gli|m;{oN$*OMblz>PXDG;65KR(srA^ZuSl4D#yWfz9BODsM1&;$=Hm@xI8bPj9*9XT8ay~Hjhb`Wb zE;Sf>-Qn5bD7Ueio>xuy<8fo>OOr)$OFIpR$BuFQ@?GM)Pc zGU3vhdAV0{DyouNR*NoUT5NPyTv#NfIbA|>5_I+x$Vaw!vW0k(F=kdsCnxj~(ev$0 zlCx73)T00cyWe?hfC2vha)6OLJa+B=RtzjImB^H69!pgNJKS#r!&fOM!8X)ttVr%! zrI&2W`L*pHkIU)aY&Y(&)!Ny^v{HzXndFTiqbrpFyK3i_A4_sxjMZDOdv8~Y znB)y^src)VbNuorp{AbK%xma({`KC6y13 z5KCMysfY{IKg^hErOdQ?yyM^l_EvmH@!kPUXOmhOlhlD9VRc41DiKMaV&9f=KUi65 zeJWNYbCjOyMnSOk(rpS`QNCMMW?f>QD3wl<$59%;Qf+7Y{}3BmG+gLaUcs4u6VEk7 zs!?t~o=vmNEoB97y1kO=JH^NmK|mIYW>6!B4DVFR+*T;I19Nq-UKBy<<9Xl;3dr%C zhmcB%&dU+M<>HQGH(GaiC_@d_ifKR9mC>*e>Y1+lTU`;2a<6D=i)Nd$QYb$ubww%I zlZj&*UDi4`#8fh0n?jNgnoefLrChGVqt*g{BR6r3KH+#A0001*000hb000000003&00000|NsC0FC)Uutt!!J5MKG7zYEsH zR=t&@000000000000000c$_7Sy$ZrW5QJCk@(MOvgrFcM7YWftth7ic3iik42nTwB z+fDFQd@Y~I{0t0y!wdreKY+yw04l_b7E3rOo;lC5Lz<~H-=iuhFR3_U93eh!VAuL_ z9N%s4=Ad?}9BP229sC_ni7M~J>DNs&uUTrM-WqAcX=0Y(d~-(AdX@xrXn2d}ef?O| R$?*9QEgfUBiT*vuE)Ioi+vETM literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_filename_component_command.h.i b/CMakeLua/.hg/store/data/_source/cm_get_filename_component_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..23f3ec98b82aa8622f17e31d165fb1ad8133ffc4 GIT binary patch literal 1606 zcwPZU2D$kF0RRC20000000kNV01T@D0000000061|NsC0|Ns9JbtQWWws@jpywvyG zqrrS(X{d7m00000000000001ZoUK-2Z`(Ey{qA3JaErlq9XaVb6mYfys_P_1?TdSAwpm<(%s{`yLU$pdVf9E(`o_Cv|4GF4FO;@ zWuG`4z(^}&4rVE{vCA1P^+wxY;9 z06$H^xf#&haJ}Y{hiD7V8${23wxBd5*5<>(V6)kHVTPIUlwJ+ag6a97F->fi0_F}P zZkb4pN8IoU5@Eoo*f9cJN5WVwmWAaJyqg4PmsbJ!7uWF4pU?e^;QAOg!X~P)z}H+t ziDDD<&GJ;B69Q=_?JcMnrsMhO488nUlk-V%O=M3d!Nqv7fRoEP_%QS5!DMuG?$5VK zv#a^+axwPGPzjeU)tW%oUGWyU;=(E_wvYJr^43K*E2hawgs=4We3X=e~` z0Z=nNa(WPz%Fdv$A{AJ+aQm__SWK&6g&R>Fa%Pi0VG%?h_-D%{iJgi{uNqx6UmTSJ zrCjsDGGk(YAygPbUMy1ztx8qvORIb}M6F=TNHM)q!7hTe(6(SHMj%ncMTld;sf5^X zqw<{30Do)a3cUxT6bW>?r4qlmU(IcyB}l$`nC-E%{?@vWSjf_p`Xa%0*`Y$8VxbKt zOopnEmTR;UvUDaxH~h}AAC2pD%Hdu9OQljAA;Jol&M>PTW2514%_;gn-J1GYuKq65 z@*6O{GTr05OmQ%9ouQ18bo@P0A=m0t6@-vrLM?KO{TKa^l36$#woECfU#e7MVfgW# zOz~1eYJX#9DuKJqGzp=6+*3*l5WBJS?oMkU`=LcFOPrhU9mW>JJ8wyA|k zg++!2+sX2i-2yxZ`0HJldzIAwN#E`@OS_U4z%IinO}+od?gVkaBX@^eIe?)JaDSpY zZ<(f?0yP0GKFD_C^MhyR2WMaXSBuN@t6==~!k>=6j{gbV;^y7>R}kKh{L$I?V|T}P zfjO+m;DlQ8dO$&kHthCY4ogjSXs_x`4bcp#4)WP^xI4!>Te@8;QWbr_0o%?PS3I^f zD#gLTqsL{ux8x4>7nGBYg^9ZD=9vM!Qq*d2Oyq$K#h`M zr%2U6S&e5rHhpF5xfa9mw&JE7Bs`XW8*6n3PM03b%uqI_ss+?ql%5vqPDdNOL z-gS@moh9B^iqyiIX+h0T7Bv`)qB0WK<}6IOx2J)}RNnmZbnZ{#{dRHV&rcWN>lK21 z{GY<3Eav6yl;%-I2g{0;M;XRA$K9l&@XW2TJOjg-4wJH;D3ls2<*}s+w{3d*j%vVc z@A1Xt<#YkWOp|u1k1o@4C$F+TxDQggid6M!+_$W1&gHQHbnP>EbF&RttW{QOa2u+V zF6qqRp;C_GGLIhAr(AViFg#~?Bj0H?wvXe`1rlp0A|9)UzN24~`)&Y+S#X>4DGRmg zJa`)Sn^PT6x^H;c;nj=FNW`sw0rL^;&;S4c00kNV00000tN;KE;Q#;t00001K>z>% z0RR90|16((U@6yZ+NF%hCNt}(B&5?JtpET300000000000C=2rjZF%|Fc5{ug`3{M z-7HE`5c{J=jp9ld?nJ?TjG+W-0-0&)!90jZGPY|!80HOccn<(R0HX;2oDq+bwZNWu z&_$MQ(kxGlCFZ3l)}q{E93kGdC*$nzIlk)F3`f4mSHT7t`!Mei+99^ab0cefI9KD@ z8aA@NNTMn6Q;1e8c7ES$VsC79K;g)5s!}u#A6|%k}l8Hp?h$G zqwgeK*Tl1wadrC1)XMkHMnMDOv$7sZlbqO~{Lz={awpJj@$(Wqm(Hn>#7c6&3I4gd z1<-LI@7uPo(mCqH^JG7f)2QHk2xug+ZBlP&e|sDl zu{OW3-?zll^IJ_kvKtJU0zFz(iuw-5=ZCa_e(qlD&n%R(Ft^?8ALn&k+#u+$!3_t7 zx|8dhv(Np08i&_M%}9QFP_LM-UR51n6f2 zJm3k?d2*iVLvMfYMTP@*A@5do}{%JWBp z2sJD^V#SW}2_+{Y0Ij|)akHS#1fPS3oy=1diydqpv$1YI^wr&&$z`LLFN%9eCWdX8 zqlow301hZro9ceN3E*Cbim!Qgp6(HPW=B?v*s*BGq&8f6^Y`7MkkWO`*7Riax_Qag zwvWp=sJ8r@UO{T~kIbM?!we6%nsn`Kl?orL@&hBl^TVZ}l)#yq5n;bof+|&{N!p{) zH}JKHT-M1x?r`FUmXyzMi|wZ^VddiE_Ms3Xrib*jdt*DM+*&~b9ANw{8tTdQu};ym z;?`2Nr-?LN!qkTfl#i&!N2KJpVg>Aupb zXRt!l0TcVA8fOeWsqc$MTU#8H?`=OrWF22nI((FkV#G(bNK7c@0)-)J&|cVf!qYFe z_#dH1hA98(pUIl4Xi|h!KNt2*53eX1xufGYlJ7$=G(xM0DJURy9fOUFsBJrL;5)DH?PjJtD#T7i z&WyOb^FE6-#0d6wIQhV|78QxAa8+D{q&f=cP(0w|AZ8tUu)qX5LEU|OSv%U<=R-oE zd?SbaT065mNknu=?w~Mfc_-ynT0!jA%8smAjk1*Ya3Gy z{N-7s4e1Nm;%?i`MZ7c2_3>YjZ1@GL*7Oc~ov zq=QiZk&<|y?KcCxy5wnT{nD}_=BYp_W8qxlN04{qM9;hytVHfYtAEI0gy%~{9POBI z98tX$neeIadrK(h7}EQ_fTKMLT9aukvCD+i4rl7>TKObBxQEi5erXuGYknwuqIvP5 zY4h{*brBAEbbKeLCk0kTLMJ%F`;Znxy+&=uYoee_xEXKvbk#i+`#_3WC?p>lT%B4x zDM#2Kpu1+eH2mRUB+TUf2d9`K%mz|);jjTw2~4)P(p$%c@zxx!TL#+NEI#vOkzf(9 z`88nnBI;xAsq~WAI^kCU4tIW<(R53%v-O02rpk-rTvHkW@U7kIg1!i!dc(NyL?yHv+jeCblq`9w zz{QZ=?lpBox1vGr&p03!`Fe<9Ay8W~X$hQ%7!!)ZO)5CUa#!Uz^u4m#i@*SfGVxl% zQ7c&zdM&!?h@bq-I`ZW|Kk`0mrebdi)*~0J>_{RLm9)i8%ncHvd*;qNV*Y^h$Q?WV z^CkXdmp#hIr2EUHd&#Or<#4X#FiPd@y!U$JvVdSR=#u=11VwY~X>kO-OfE~dj)J%I{ao>t%<>9cG;Ryqs9?A?vE40vKkqzOL1FPjMXx{$vRVT7 zLyK&5Yt~$ZwhVwrkD{MwwBA4Ya{6t6`bu5QMBneQ6|eXRl=xQ3;eQGW03fUf0JviR zZ7I^f{fe}gt_6zKl^ zEMoQ9Mfxi(d|Ha*&@_BwX`M)1$o)aA^>qDx|9%WJ_B?9k-3klV6@i0JUl!V&R6g?d z^u1Iyo{=+_Qw*6i_1wVj4ctAb#Bu52y0J=do}DRNXa)zo;$ zqCQ9|tZqva+seO~EO(K8)%M+^x23#X50;Ct=U82bNil?X>@bG&{I>Myxk{7bNAV~7 zPVC8(zUO^eb&rrc&A%_d3=(Q);`%&v*y`Hwvl<@IcQG_jR}nyO`dtFOT({tsDdiW7 z*ur&mYIA9)$~1jbZy9gC@#roUCMxoPCr2rc5bN5^%pqiDHasmpwj(0!U?w3)_NWpH^Nx&BRT2oCV-{MC`N7&ITf3jzY+3C@?mD-QGM!vxFWP-*Ouc9wMn;y_ymg;*w^pX`*5kX&ymv|= z*HK_+^J7;#cplO^ZbL`bezPs6PGksU_A<&tCfr}@D?v7*Dg=XcwARB zWe~aIwTJw5MUX!*4Y1lG6R~OcHCZJ1p)ywb6hu>uTOkXjeJTONCKZ>DH;Y}j*bu0g zbV31EVI(z@pEnm3Y~u6lvqh;EjUcyPJ-FO_L|&B7kt`#p!u^-kB8&IBRV8achHhX6DDHgx6!o(;@eB)5ACzr2w^TS3d zVHJ5x9-Ev~ItFJuXjvP^>ZsLLG+y?UP>1tT`7{{zFgdC_`eE$MFs`8KKs;nC7M_>* zke(rBPmXfv0wxma4ZO>#?u=g4q!~MRFRXwvEZuat&gZ`W{4&=>f{-rlm1rfLFc#7W zYh3iHLEo_bJU!TEcb_Sa{&X#Eg6ERppk%(;-m(Zh4)oTDgpF<%eA)`-cp>$Y2PA1--g3wOC9;t+>5T z^mg_9L5}BPnQ8wZpOB-!cq0A{sv|>K=-&StEKoyfL%zI=K=a48qn;oWq(?xqYjV@+u(zCn%#v+XOs4P8s@Oy*(e@* z&gC~<%`?DcTbeUo)70IUG41p2E-_c`vS3_|Nd*kPC-?3$mbW(SNVJvyGES!NoeAUn z7qQkJS%vcLS$?HPXNARv)RS9=sUV*|?3~OZm9m=KG$x-^p)JBB(E~&BKD(c5-ae60 zfZ+j2sUtV1#^jV5_n@~to#`OM6cwL`9jGkWKR&+7DAM$B#bE*gxF{)MbBmQaB?pV} zKkJdn-=xw#2WPmo!Z{356W-+)TvIo@f4u}6;g-Nxf<_duA}JRX*VV zX|3742Q-_z)Ezi`vuUaFJ+8;O=?W2e-v%kJ6W|vBTqNc!q^j^C-2Ao0*qn_cc z5hHHk>%1yb;;%DkgP#yj#Z#nC#?hU-rCq{9b}jnt zORBza`G6S(%(kvZh1KMqHAD^*ltA?}Gy+*|X zok!SEKHEpZ0(*g89jy3P;=!O9B&^{t3G&pYsv_&Prxi0%LZ2JV_VmQ{iP literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_property_command.h.i b/CMakeLua/.hg/store/data/_source/cm_get_property_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..962c64f1fc16a20729ecc2010bf2c433a1156045 GIT binary patch literal 2348 zcwSZ3`9Bkm9|!PJ%Qa_7`e4o_P3DZSNbZFRMZ++C%uVD-l&JJ|Shw}OK`SyK0zMt0*ugCizcs(C)02_b}@K25$0svg9|Gfchhre?wG{bm( z=-~UlFd7lLfH_#`#k>amUqW+hY+bzOH3fd;J1b){izs*UnyeijFy@c6@@!ii`gppH*2NPM@zJe0V1SbEkdRB<1RPi?pM`j{ ziUESTly3#vzbffI`W#N}RBzyAL#i?9Wo3k|L5qF5i2wHf%-m?#IF|QE^aQ6IM=%T( zw>VF3FR;h)*|3UxR2ux>CW-fJ9Vo8iusRQ{0tbKK!r@jQZ?V*dLkFwVDqipO2?VD)T_-EJPD$pE$xsyr0ZQ?HcElYd)QDIh-JV#AQ+4Sq zZ?rqQna}Cg6j}|1tgFZSmF+0+hVZWsCrKZkk8Fu)dYN4bo#B>KgKEflBNwCft`uiC zS{7Jmfr@4_tbW>R^38LcxpRUP(#;YxqH#uKv5;cNcHAyaz$lEO@gVpnuI8fCcDWsA zM5a+i^^C_?%87xvjQ3n*>(AKh%te9|VMD)IrE9Yw_@q7k2!$)|5)RU`5SA_(6!uCL z^_n)TrMf7|eay-(sdeV1K~TOnW$3<8qtJvMG%9;dKlxmoaqrc={2bX7ckdE86BHP9 z+g@p(0Ucs)eKM|7X8#e8L1&y$y@<+;#3PNaRSZ2!bPTjL{SVHLYyAGoMy6agaTs@< zfBR-QIDMd>PUOxQ^w=;aK^}H-YYne}x7t@%|%p77GDc?_CQD0RK(TeyCdHZt{WXuw@*oxX{9c zR!*`ptksz&)m-4zaceWyefL?=O*=3o?hev7vFdKCl8aM-MSgvsz_B-T{Eu3 z)R&dCZjKTiAKm!yg%iQMBlFLf+>4tY{afhwn{r z2`@Nf;;Ob!rWWkCd|s>iI%9ZXGZzz3lgJnRDK#_Ws?VBsutuAN6-0XNfa8t9knjKC z_`ACS0DkyyJwU(u7at}UbWsz5rHtl>ed9wK^1>CJZ18{ck!N@4JEJscfe=|*VDtE>oWV3^64Gy>)9mum{)I25+8q*w&tq%W@KzpQ6zIGk_lY(W3fUt%tKq((ALwb7PCpyYHWaN;hF|PA9GH-Kv|nzygudYW>kRPlRfsS-ij)V&O7v=$fnj0e%$B;RG%49Em8aIC8H*oVQa&8(k?V&p2;CBv67+mj zPl;-B$^0T@U$55x6nPebZjR~l+P=Wh@5+FjH+YM;sM6t(YQIQFYyjnQmaE@2GeE|} zo|ya9X1fp0UHy9BE4$WtN;2mF)oqoq;59HN5wrBX)VN2Iq z?1HGKQ?hSvsXM-!huH67?atNw@@reGpXl|FsXg(Uwb{fMms8z3T`ia=p>^I+p_1jvF&5mZEVE0^Q7CC+C^Xu7U>LZi zzHo&6O-DpEgK&}yN8k}podz{0jPzOLB$QUoxoM=U$u4_KvtQPqAsqUno?<@Y+L zGx{i@`h1E!B$Auz*)y^hesvY$$Uu(cG%qik;efl~E%+S=_0=jrXsc9w`83UE9k?u_ G8Sod`@Ob_J literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_source_file_property_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_get_source_file_property_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..c3e3d2e001e935d650ac743cf8ec9cfd19bb24e0 GIT binary patch literal 1823 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 literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_target_property_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_get_target_property_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..6879e477d1ac06148a254905f241f08202570a53 GIT binary patch literal 1266 zcwS>*WME_f1E%*346IKfYzD^vP_QbjKWXL%-4k~X79?hiy_Pe3Q~Q|#2~^Bk8~on? zwt>LkdHWw-Td1jPlG%M@i@}6V0Slt)SMoY@_)ea^W98N(>vER2D*pREckZ;NWs1H^ z@=DKZ-rwC_F229;Q&|6FhMuJ-R5Y0wI@q3wx2m}WXWUeCn`Pat-FcxopZi3ESG` zjvf&idwFW=_r_IwHtwr%O8b{;^WyjJE3JA(4$l>q&e{-D=_YOWu}L!^DNmGfUhuLl zDVu{Xi>#~u`1FNVTR{c$^@k}!e2-@*M;PxFSjx6*k&KquUWc5GXC#{@cnGa~?|3Hh z!d#c>9bEgr{o4EEScmQVqle#>a6Mnl*U0wB1)p+Bg z2{t!Rw5D-}Zky>Oaq&(L%f%PgWna^(Z+w{hy+^%rX3&bgn_RkQJ^o?0?&cSH$#Xs( zf2Nx9G|8pUnpopArRXBtQp0VFIQ71YSDOhxys0_sz|?;X9*bU`V@}(&GuzJQXkGAj zzW06)1YTV`!M=PJcktO@k!w?fJho4pU}LU)h;vbH=LDhE4Eo)YQ`6!+!o;Rzhpv{7 zX7Vi6v^?XvErX7`G#H*9RvZPrTMy>@W(r;2H+TYue< ziP8CXXWiN^erXmi!>U!s%KthfcM6+m&*_E z*dAUS$$l_)OWEmS2C=$52Xl`lRo!fpo4@R{{E}zc`>)CLJ^Fm{>W4L9^$UNyPIW*2 zlUYve;v85;0fLRd?D7+uTO2_oD7z%M9Ll##@#&wZc4yaTXHDCKcYY$iFw%v{>JX!#efYlZ?9^X20h9xz{c#o*Ao z<64fW+2sE_MUu>fibDDV{X#55CtE&~e00*S=-~gp&wFck)lYEN4C1};ZrM_m(&qws z8L!qpUECLbdbh+ovrpBcucCf?FAI4pYh8OgbCKLf*OkjnWgaa`eDvZ^X{TDnBc{ns zY@XXIBR@a*^7+6l`4(6E-%R)ZSuukg&Ab5Y_DMhw?}d6enE_fxa0P3;VUJL_ddtxG zs#L&D56hUX?5G}2PDrpgf8c<|!2<^#tX%M5QpBXJr3`FZ0^24wHn#3-T)1yyYtzDw zQ#ZCw-MF%eYkHGYL{?y7TAiH7Mz4UZNVS&a73moqQ_>O=IGG-CJ2=l35iz=KGO5^E zsQXf|_ZAVaOWq?3GwyS KV>rB6s}BG@!aZLA literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_target_property_command.h.i b/CMakeLua/.hg/store/data/_source/cm_get_target_property_command.h.i new file mode 100644 index 0000000000000000000000000000000000000000..5765ea734c4ee588ed595cb69c1bf69f77d93823 GIT binary patch literal 1610 zcwPZY2DSMB0RRC20000000kic01Ny80000000061|NsC0|Ns9w_t4Rb)i8v|A+uZ|r4ZNpiW~sR$+bWya4u^LWOc_MgA%(`W!plw2s1cLBg3 zl5Y%7!B%LrW6kntUTJ+d@c@JN>Srf%hU?8Yx|7y4HOQEGQyvRL( zUY3C~)1a7UYQI+JXwZyk{faGgVOh*GPGM))cx;qYU8HQql_^NJUu}b*Nx@pj zC83WcttcW>C;@`4UpegDZT?}U(P_8spj`?Czm#N|&2EZGw`rkUe7KZwrBM!o%0d{X za2FS)vD1ZEqFC%z^xR~phI%e#hWh7*lWc-Sw6ux4-4&yFoj&{u>%lnE z9+q3yn&*d9O$$mf%?4sgi<}9w)#Se%6=4NomvxiF+C( z4k?gg!PI{QbX8>86Fe_yX*&RD0=z&@>lW{HIk&@nd@q`NvsdGBrHR3cWW_GCyRE3X znjei~DN}5mh2mt6eF4u$FN5c%SU|9N6e2#cd+MIn9INh}fktFT!hLfzj;_YD(dB&; zUCp#xc@ikcQiOZ0NzK#lJQslWTt}<6+e%w#BtF~Ve}shhXgYqQQ7{-?Yms9$UC*m0*q!027m19B$3F zRVi#M_=Xe2Kt&A2!)#-)wb$<4f^$Wo=FB3E@!A5CjOxSK622&u(-KtB>IN-LUa>^* zr<7=HjJlwyy}kE$pfY9B5`o!T*c9?rE!63&lCh$;M@qU`)g% zEk4y7ZCHM~g+gIz`@9t8AvI^*cKc;UD4vBY&KL~G;%1xfw!GEJ#G{QR+G*o}(LIGn zEx&GKE88*hg79vqPw6ac{fa54Ok~J~%)T>P7G>i^aEXZREe`X?}rP#*q6 zFt`YN;T?`|dSU-^Kd!kLjxT3Hf4?+~+*=0UZ6ov&1P@n(pg*-wn`&Ybj<3Vs@FjAq z=0u6h9n^}5<%ft(b*Hq1gs4h+&s1OKA(pP5309VoIjia*EtJCgy>ENkJr`XcK5P~= zkC4M5p-Q&?`E78re_~(*{((IhA2m$GJZbz5z5uv>000001t9w}}FY000000000000000c${^O!3x4K z5JXq-)DQ5yhf)-ZZ6ZaD;zQ2+n{ literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_get_test_property_command.cxx.i b/CMakeLua/.hg/store/data/_source/cm_get_test_property_command.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..d16f0d3622f89b228b96a269970597f388bb2761 GIT binary patch literal 1007 zcwS>*WME_f1E&2946OYSHUr~-DDbq|w5TZ}UtuRp&ZdR)>l;5@*4Af00u^)CPR{qg zZ6I*${`25DRwi3p)p9RZTx1Fo;|h6gzx1VmQ$~^S_KnkSOntk>;7IxXo0)7mkB+J= z(kgoQ?&r@xb6%UCw|iA6(=byc+w+qg155I!$xhr%np3jQ8Z8QUdX}(Ads^U*MRU9s zwYuDlP;qtZ<>EV(koU>9ZUFY}R7uHQ@Ui&y!jT3SM0 z`=0+?wtKGh^A}y(Pj2n*JEr`8smaw!winVWA;Qx%uYYOtpJK%7wI;{C;dP6q?#)dX zOd4k=me|I+Jn+wZc#Pk@@H#E|%|byZ;GCZRbAU+uL<6 zsN>Duob~2Ue2gcZ?FcG0@yhJU&Fq=}@5;KfXMX&W$$jKi&!%*J)kB*^)#$5d+gIPv zkIFxwDdT+D>hF^&&B?1u?Uq+5ES>N*%4gG=GXm~C`;Iwz-C?PisK3&L*)?op@Vd~o z7q>HbmMU7V@mQ82Sy{GPLXoPw%_3*9`6?gvxtaR4 zJ%8@|*j3>v=KmU(R2}|yBrHLAeScxxBP#Vld>?!W%lmKk|L>&u&v_x~HNsa<|iv};Dpl*tv%M+N_| zUFO-kAC~ZeU;{AuFM_6iM-T~0{^6WC&tpXm%>MG;c)YY+F05(i`_rh&U)A>@*C7Lu z>PNZd@827^IF`)rigMxCdX>APVtuq^>)NUNwlBQ@u>7Zg7%z*EkPt%!^A;aEFV=3t}6i~JSo|-hq?8LB@ z76A$bG#o}x-_g#03e;Q ze-K8H8g1=pE}1K|slksHLLz)Xg@!q82sYDsE77Ci^&(yR`2=|V0bPdH5ov?QZBt#> zOyyB^xQ5q+nle?ktn|3_%^Mnc&soA8;lkDQ^I)m}$4SX6e7URq8<`g!+Nw25l#XZyfdNIFRo<;pp zJuh47H3HvDtJZnLgBZT5RKxp z%@IOg?~NA*0hi3$7m<)a)2^i8utx=VK|hpGu-3x3mdS_NA*50(931qayz8C@U27C5 z+`PEaX}9o;H$*%f`j2663%WUz(&x0IRQqJ`du=pT2xG|vitAQ6G_*>n9^AP>HDnQA zeNi_UKT^EXT9WI96HLx21Ow~xBv~V;3jV!&_ZC#;pR}E_?iXODv3<>{;TtP9)M$YzKx4Ft;GB9114%aVGOQyfF_Z5o z1$CP}%~rQm6{KU^_^R)IOrr{AGujCld7j7F;dMrfXN(&?c&P{vAL^K#{)Nm=eFIf4 zir_zJ1WZ@}00003XaE2J005}~00)i$0000000BV&00030|Ns97;=r<@MHxH5Vh{=R zuWbp|+9zcI00000000000001ZoOO-O3c@fDgjev?s}JBFN>LE|BSnqkNkMO-;627r z0yTl`w)7o+DPw!~gJox#Wd;B~0HX;2oDq+bwZNWu&_$MQ(kxGl73QTV)}q{E93eim zC*$nzIlk%E3`f2!g9|X8hLIt&Lu`%bM%MUruEvWsY-D|vL^I--5Up11{Jz)3-q`AZ j%30zBrLSla;eXWo)M?dlsJ^r0hA^Ri&v(%m<~cZKhD#vF literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_borland_makefile_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_borland_makefile_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..739d5599933851b0bcba29dc31f9f70cb72a996d GIT binary patch literal 1070 zcwPZ61kw8d0RRC20000000Zs-00~_H0000000061|NsC0|Ns9LM{lmFH>)MdNo?Fu z)b#QJBd?7B00000000000001ZoUK*gQ`sRd5*xzJUF#NRj1wT!kYsG9 zl&6kjD~<-)@jVN|Lz%;NOsY z3LWsJP^vTGM9+oH!0gT$r*K7cDv1^n-EKrua%#NbZQzH-?n0bhaWNzOLP$>XWaGH? zv*U+{qb0mW{~^iKlB6br|NcF0^oXv*VZi#idwl%2b8_r-yKwTC`{xJu^ke1vl}g1# z?pCSklGQIKcJ~9C(e8_4Em^wI(2fsGlrDT>dPO8Xf%w)M)oNwO8CGcvnL5|e&CuCF7dqpB1VTbJVO-hf zY`CHYQ=r7WIuYP=!jzV5R%)8S?I5}yPb2U~cW~&V`-JF)i9IJ=(VaaKf`?^M;H)cOaBSll zXj$$driu<(ejmn?6?zxo-&U)&6fAjB*)7-Y=VZp|M%Qhn6W3kR7>%E+XEWq^dLE`KcP{IL;fq(kb4lK!6*WK)Q(mq$s2) zBr{ems^R^lPePh)g+CWg5!)J)i5xx>+3t11@586KM?n5R-sS3tP zs-6X?8QYOzxZby$I{jX|lHSwAzQ{7S%?R^0Op+4e?9K*XGXIfh5(X z%n@5l+i^OtxPJSlKppl(TxK-a)iu9RkhUgX^cRMl;aI*ws0 z4FVKcP}0~UmLdg`vTFqS_Z>>UBtTpDp@LyhXT3z6YrH4Ocp!h zo)?t;6+9#Mn8{_smX4pictH~%nC-+!t{Y#RpT7yuUxycO;nknf`Mc=ibxZw%+HfVK zc4J)e?&VeRhE{1gQT0aiWoe<8pE;2W_{{B^Y3##D=7IY+?Rui5QQGpR3IJjuprskm zXi%@P2uN*?cu)-NHw#KbX>A>a;d;Fe@`@}5N-x99^lBU)prx$@Q1+le%eXLsi;bSN zyxS~Hb$K}%N^%u?RT)o-gsKlD!dLKe6wd-q<4i>M-wiT2J0gff;+|Dd~H^V*x}F(c|2Sb|Qm^M@FCS@)!p9+YL^3N57LcCnVt<`TpKeq4K6e zY1_*KG|-!^Kk5VrgWyj2U~;8+;UqphX7}>y$@|cWJ?}KP85lfDX`+#}6)IFtlKZ`Y z)l_A*=5E!hE|M-)Pul%H;nmm)9IDLkl%LMJGU=?lGw>lLpCnGb5Ow9Qt=SlhRohCs zP6DRMOJLL+Da+K=1kW_nn~sj(EK1ks`%v4G_A5*uvJFM7bb%Vs=0R)qJ9!&QmI>T_ zZ+gZSQMAIGg8Zu;yY4HO|Fj8v4q}Tl{jNR!@X4$FSJ9_floFt7XM_pz{y_FmQ5JmR J{SVM7e%y*G(2@WE literal 0 HcwPel00001 diff --git a/CMakeLua/.hg/store/data/_source/cm_global_generator.cxx.i b/CMakeLua/.hg/store/data/_source/cm_global_generator.cxx.i new file mode 100644 index 0000000000000000000000000000000000000000..ea9c7c8b3b0c49898d9bf900253e847f936c0d57 GIT binary patch literal 19535 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

jmPut~hTY5uY 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